From 48cc198d0d835422a6cc414d36288e10868cee43 Mon Sep 17 00:00:00 2001 From: kentico-ericd Date: Mon, 2 Dec 2024 13:33:46 -0700 Subject: [PATCH 1/2] update namespace, set dependency version 29.1.0+ --- .editorconfig | 352 +++++ .markdownlint.json | 5 + Directory.Build.props | 47 + Directory.Packages.props | 16 + global.json | 7 + nuget.config | 14 + src/DependingFieldComponentsConstants.cs | 40 +- src/Directory.Build.props | 8 - .../CheckboxInputDependsOnFieldAttribute.cs | 11 +- .../CheckboxInputDependsOnFieldComponent.cs | 46 +- .../DateTimeInputDependsOnFieldAttribute.cs | 11 +- .../DateTimeInputDependsOnFieldComponent.cs | 91 +- .../DependsOnPropertyProperties.cs | 21 +- .../DropdownInputDependsOnFieldAttribute.cs | 11 +- .../DropdownInputDependsOnFieldComponent.cs | 102 +- .../DropdownInputDependsOnFieldProperties.cs | 23 +- .../IDependsOnPropertyProperties.cs | 27 +- .../NumberInputDependsOnFieldAttribute.cs | 11 +- .../NumberInputDependsOnFieldComponent.cs | 77 +- .../NumberInputDependsOnFieldProperties.cs | 17 +- .../RadioGroupInputDependsOnFieldAttribute.cs | 11 +- .../RadioGroupInputDependsOnFieldComponent.cs | 110 +- ...RadioGroupInputDependsOnFieldProperties.cs | 23 +- .../TextInputDependsOnFieldAttribute.cs | 11 +- .../TextInputDependsOnFieldComponent.cs | 63 +- .../TextInputDependsOnFieldProperties.cs | 17 +- src/KeyValueOptionsParser.cs | 64 +- .../DependingFieldVisibilityCondition.cs | 84 +- src/Xperience.DependingFieldComponents.csproj | 23 +- src/editorconfig.txt | 1245 ----------------- src/packages.lock.json | 914 ++++++++++++ 31 files changed, 1740 insertions(+), 1762 deletions(-) create mode 100644 .editorconfig create mode 100644 .markdownlint.json create mode 100644 Directory.Build.props create mode 100644 Directory.Packages.props create mode 100644 global.json create mode 100644 nuget.config delete mode 100644 src/Directory.Build.props delete mode 100644 src/editorconfig.txt create mode 100644 src/packages.lock.json diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..cb0d588 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,352 @@ +# Severity levels of analyzers https://docs.microsoft.com/en-us/visualstudio/code-quality/roslyn-analyzers-overview?view=vs-2019#severity-levels-of-analyzers + +root = true + +[*.cs] +end_of_line = crlf +indent_size = 4 +indent_style = space +insert_final_newline = true + +# Formatting Rules + +## IDE0055: Fix formatting +dotnet_diagnostic.IDE0055.severity = error + +dotnet_sort_system_directives_first = true +dotnet_separate_import_directive_groups = true + +## C# Formatting Rules https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/style-rules/formatting-rules + +### Newline options +csharp_new_line_before_open_brace = all +csharp_new_line_before_else = true +csharp_new_line_before_catch = true +csharp_new_line_before_finally = true +csharp_new_line_before_members_in_object_initializers = true +csharp_new_line_before_members_in_anonymous_types = true +csharp_new_line_between_query_expression_clauses = true + +### Indentation options +csharp_indent_case_contents = true +csharp_indent_switch_labels = true +csharp_indent_labels = one_less_than_current +csharp_indent_block_contents = true +csharp_indent_braces = false +csharp_indent_case_contents_when_block = false + +### Spacing options +csharp_space_after_cast = false +csharp_space_after_keywords_in_control_flow_statements = true +csharp_space_between_parentheses = false +csharp_space_before_colon_in_inheritance_clause = true +csharp_space_after_colon_in_inheritance_clause = true +csharp_space_around_binary_operators = before_and_after +csharp_space_between_method_declaration_parameter_list_parentheses = false +csharp_space_between_method_declaration_empty_parameter_list_parentheses = false +csharp_space_between_method_declaration_name_and_open_parenthesis = false +csharp_space_between_method_call_parameter_list_parentheses = false +csharp_space_between_method_call_empty_parameter_list_parentheses = false +csharp_space_between_method_call_name_and_opening_parenthesis = false +csharp_space_after_comma = true +csharp_space_before_comma = false +csharp_space_after_dot = false +csharp_space_before_dot = false +csharp_space_after_semicolon_in_for_statement = true +csharp_space_before_semicolon_in_for_statement = false +csharp_space_around_declaration_statements = false +csharp_space_before_open_square_brackets = false +csharp_space_between_empty_square_brackets = false +csharp_space_between_square_brackets = false + +### Wrap options +csharp_preserve_single_line_statements = false +csharp_preserve_single_line_blocks = true + +### Using directive options +csharp_using_directive_placement = outside_namespace:error +dotnet_diagnostic.IDE0065.severity = error + +# Code Style Rules + +## .NET Code Style + +dotnet_style_qualification_for_event = false : error +dotnet_style_qualification_for_field = false : error +dotnet_style_qualification_for_method = false : error +dotnet_style_qualification_for_property = false : error +dotnet_diagnostic.IDE0003.severity = error +dotnet_diagnostic.IDE0009.severity = error + +dotnet_style_predefined_type_for_locals_parameters_members = true : error +dotnet_style_predefined_type_for_member_access = true : error +dotnet_diagnostic.IDE0049.severity = error + +dotnet_style_require_accessibility_modifiers = always : error +dotnet_diagnostic.IDE0040.severity = error + +dotnet_style_readonly_field = true : error +dotnet_diagnostic.IDE0044.severity = error + +dotnet_style_parentheses_in_arithmetic_binary_operators = always_for_clarity : warning +dotnet_style_parentheses_in_relational_binary_operators = always_for_clarity : warning +dotnet_style_parentheses_in_other_binary_operators = always_for_clarity : warning +dotnet_style_parentheses_in_other_operators = always_for_clarity : warning +dotnet_diagnostic.IDE0047.severity = warning +dotnet_diagnostic.IDE0048.severity = warning + +dotnet_style_object_initializer = true : error +dotnet_diagnostic.IDE0017.severity = error + +dotnet_style_explicit_tuple_names = true : error +dotnet_diagnostic.IDE0033.severity = error + +csharp_prefer_simple_default_expression = true:error +dotnet_diagnostic.IDE0034.severity = error + +dotnet_style_prefer_inferred_tuple_names = true : error +dotnet_style_prefer_inferred_anonymous_type_member_names = true : error +dotnet_diagnostic.IDE0037.severity = error + +dotnet_style_prefer_conditional_expression_over_assignment = true : error +dotnet_diagnostic.IDE0045.severity = error + +dotnet_style_prefer_conditional_expression_over_return = true : silent +dotnet_diagnostic.IDE0046.severity = refactoring + +dotnet_style_prefer_compound_assignment = true : error +dotnet_diagnostic.IDE0054.severity = error +dotnet_diagnostic.IDE0074.severity = error + +dotnet_style_prefer_simplified_boolean_expressions = true : warning +dotnet_diagnostic.IDE0075.severity = warning + +dotnet_style_coalesce_expression = true : error +dotnet_diagnostic.IDE0029.severity = error +dotnet_diagnostic.IDE0030.severity = error + +dotnet_style_null_propagation = true : error +dotnet_diagnostic.IDE0031.severity = error + +dotnet_style_prefer_is_null_check_over_reference_equality_method = true : error +dotnet_diagnostic.IDE0041.severity = error + +dotnet_style_collection_initializer = true : error +dotnet_diagnostic.IDE0028.severity = error + +dotnet_style_prefer_auto_properties = true : warning +dotnet_diagnostic.IDE0032.severity = warning + +dotnet_code_quality_unused_parameters = all : error +dotnet_diagnostic.IDE0060.severity = error + +dotnet_remove_unnecessary_suppression_exclusions = none : warning +dotnet_diagnostic.IDE0079.severity = warning + +dotnet_style_prefer_simplified_interpolation = true : error +dotnet_diagnostic.IDE0071.severity = error + +## Rules without Style Options + +# IDE0010: Add missing cases +dotnet_diagnostic.IDE0010.severity = error + +# IDE0001: Simplify name +dotnet_diagnostic.IDE0001.severity = error + +# IDE0002: Simplify member access +dotnet_diagnostic.IDE0002.severity = error + +# IDE0004: Remove unnecessary cast +dotnet_diagnostic.IDE0004.severity = error + +# IDE0005: Using directive is unnecessary. +dotnet_diagnostic.IDE0005.severity = error + +# IDE0100: Remove redundant equality +dotnet_diagnostic.IDE0100.severity = error + +# IDE0035: Remove unreachable code +dotnet_diagnostic.IDE0035.severity = warning + +# IDE0051: Remove unused private member +dotnet_diagnostic.IDE0051.severity = warning + +# IDE0052: Remove unread private member +dotnet_diagnostic.IDE0052.severity = warning + +# IDE0058: Remove unnecessary expression value +dotnet_diagnostic.IDE0058.severity = refactoring + +# IDE0059: Remove unnecessary value assignment +dotnet_diagnostic.IDE0059.severity = warning + +# IDE0070: Use 'System.HashCode.Combine' +dotnet_diagnostic.IDE0070.severity = error + +## C# Code style + +csharp_style_pattern_local_over_anonymous_function = true : suggestion +dotnet_diagnostic.IDE0039.severity = refactoring + +csharp_style_deconstructed_variable_declaration = true : warning +dotnet_diagnostic.IDE0042.severity = warning + +csharp_style_implicit_object_creation_when_type_is_apparent = true +dotnet_diagnostic.IDE0090.severity = error + +csharp_style_conditional_delegate_call = true : error +dotnet_diagnostic.IDE1005.severity = error + +csharp_style_throw_expression = true:error +dotnet_diagnostic.IDE0016.severity = error + +csharp_preferred_modifier_order = public, private, protected, internal, static, extern, new, virtual, abstract, sealed, override, readonly, unsafe, volatile, async : warning +dotnet_diagnostic.IDE0036.severity = warning + +csharp_prefer_static_local_function = true +dotnet_diagnostic.IDE0062.severity = warning + +csharp_style_inlined_variable_declaration = true : error +dotnet_diagnostic.IDE0018.severity = error + +csharp_style_var_elsewhere = true : error +csharp_style_var_for_built_in_types = false : error +csharp_style_var_when_type_is_apparent = true : error +dotnet_diagnostic.IDE0007.severity = error +dotnet_diagnostic.IDE0008.severity = error + +csharp_style_expression_bodied_constructors = true:error +dotnet_diagnostic.IDE0021.severity = error + +csharp_style_expression_bodied_methods = true:error +dotnet_diagnostic.IDE0022.severity = error + +csharp_style_expression_bodied_operators = true:error +dotnet_diagnostic.IDE0023.severity = error +dotnet_diagnostic.IDE0024.severity = error + +csharp_style_expression_bodied_properties = true:error +dotnet_diagnostic.IDE0025.severity = error + +csharp_style_expression_bodied_indexers = true:error +dotnet_diagnostic.IDE0026.severity = error + +csharp_style_expression_bodied_accessors = true:error +dotnet_diagnostic.IDE0027.severity = error + +csharp_style_expression_bodied_lambdas = true:error +dotnet_diagnostic.IDE0053.severity = error + +csharp_style_expression_bodied_local_functions = true:error +dotnet_diagnostic.IDE0061.severity = error + +csharp_style_pattern_matching_over_as_with_null_check = true : error +dotnet_diagnostic.IDE0019.severity = error + +csharp_style_pattern_matching_over_is_with_cast_check = true : error +dotnet_diagnostic.IDE0020.severity = error + +csharp_style_prefer_switch_expression = true : error +dotnet_diagnostic.IDE0066.severity = error + +csharp_style_prefer_pattern_matching = true : error +dotnet_diagnostic.IDE0078.severity = error + +csharp_style_prefer_not_pattern = true : error +dotnet_diagnostic.IDE0083.severity = error + +csharp_prefer_braces = true:error +dotnet_diagnostic.IDE0011.severity = error + +csharp_prefer_simple_using_statement = true:error +dotnet_diagnostic.IDE0063.severity = error + +csharp_style_prefer_index_operator = true : warning +dotnet_diagnostic.IDE0056.severity = warning + +csharp_style_prefer_range_operator = true : warning +dotnet_diagnostic.IDE0057.severity = warning + +csharp_style_namespace_declarations = file_scoped:error +dotnet_diagnostic.IDE0161.severity = error + +csharp_style_prefer_null_check_over_type_check = true:warning +dotnet_diagnostic.IDE0150.severity = error + +## Rules without Style Options + +# IDE0050: Convert anonymous type to tuple +dotnet_diagnostic.IDE0050.severity = warning + +# IDE0064: Make readonly fields writable +dotnet_diagnostic.IDE0064.severity = error + +# IDE0072: Add missing cases to switch expression +dotnet_diagnostic.IDE0072.severity = error + +# IDE0082: Convert typeof to nameof +dotnet_diagnostic.IDE0082.severity = error + +# IDE0080: Remove unnecessary suppression operator +dotnet_diagnostic.IDE0080.severity = error + +# IDE0110: Remove unnecessary discard +dotnet_diagnostic.IDE0110.severity = warning + +# IDE1006: Naming Styles +dotnet_diagnostic.IDE1006.severity = error + +# Naming Conventions +dotnet_naming_symbols.const_field_symbols.applicable_kinds = field +dotnet_naming_symbols.const_field_symbols.required_modifiers = const +dotnet_naming_symbols.const_field_symbols.applicable_accessibilities = * +dotnet_naming_style.const_field_symbols.capitalization = pascal_case + +dotnet_naming_rule.const_fields_must_be_pascal_case.severity = error +dotnet_naming_rule.const_fields_must_be_pascal_case.symbols = const_field_symbols +dotnet_naming_rule.const_fields_must_be_pascal_case.style = const_field_symbols + +dotnet_naming_symbols.private_field_symbol.applicable_kinds = field +dotnet_naming_symbols.private_field_symbol.applicable_accessibilities = private +dotnet_naming_style.private_field_style.capitalization = camel_case +dotnet_naming_rule.private_fields_are_camel_case.severity = warning +dotnet_naming_rule.private_fields_are_camel_case.symbols = private_field_symbol +dotnet_naming_rule.private_fields_are_camel_case.style = private_field_style + +dotnet_naming_symbols.non_private_field_symbol.applicable_kinds = field +dotnet_naming_symbols.non_private_field_symbol.applicable_accessibilities = public,internal,friend,protected,protected_internal,protected_friend +dotnet_naming_style.non_private_field_style.capitalization = pascal_case +dotnet_naming_rule.non_private_fields_are_pascal_case.severity = warning +dotnet_naming_rule.non_private_fields_are_pascal_case.symbols = non_private_field_symbol +dotnet_naming_rule.non_private_fields_are_pascal_case.style = const_field_symbols + +dotnet_naming_symbols.parameter_symbol.applicable_kinds = parameter +dotnet_naming_style.parameter_style.capitalization = camel_case +dotnet_naming_rule.parameters_are_camel_case.severity = warning +dotnet_naming_rule.parameters_are_camel_case.symbols = parameter_symbol +dotnet_naming_rule.parameters_are_camel_case.style = private_field_style + +dotnet_naming_symbols.non_interface_type_symbol.applicable_kinds = class,struct,enum,delegate +dotnet_naming_style.non_interface_type_style.capitalization = pascal_case +dotnet_naming_rule.non_interface_types_are_pascal_case.severity = error +dotnet_naming_rule.non_interface_types_are_pascal_case.symbols = non_interface_type_symbol +dotnet_naming_rule.non_interface_types_are_pascal_case.style = const_field_symbols + +dotnet_naming_symbols.interface_type_symbol.applicable_kinds = interface +dotnet_naming_style.interface_type_style.capitalization = pascal_case +dotnet_naming_style.interface_type_style.required_prefix = I +dotnet_naming_rule.interface_types_must_be_prefixed_with_i.severity = error +dotnet_naming_rule.interface_types_must_be_prefixed_with_I.symbols = interface_type_symbol +dotnet_naming_rule.interface_types_must_be_prefixed_with_i.style = interface_type_style + +dotnet_naming_symbols.member_symbol.applicable_kinds = method,property,event +dotnet_naming_style.member_style.capitalization = pascal_case +dotnet_naming_rule.members_are_pascal_case.severity = error +dotnet_naming_rule.members_are_pascal_case.symbols = member_symbol +dotnet_naming_rule.members_are_pascal_case.style = const_field_symbols +csharp_style_prefer_method_group_conversion = true:silent +csharp_style_prefer_top_level_statements = true:silent + +dotnet_style_prefer_collection_expression = true:suggestion +dotnet_style_namespace_match_folder = true:suggestion \ No newline at end of file diff --git a/.markdownlint.json b/.markdownlint.json new file mode 100644 index 0000000..4b0a92f --- /dev/null +++ b/.markdownlint.json @@ -0,0 +1,5 @@ +{ + "MD013": false, + "MD024": false, + "no-inline-html": false +} diff --git a/Directory.Build.props b/Directory.Build.props new file mode 100644 index 0000000..5cd68cd --- /dev/null +++ b/Directory.Build.props @@ -0,0 +1,47 @@ + + + + Eric Dugre + 1.1.0 + + A collection of Xperience by Kentico form components whose visibility depend on the value of another field + MIT + https://github.com/kentico-ericd/xperience-depending-field-components + https://github.com/kentico-ericd/xperience-depending-field-components/releases + icon.png + README.md + kentico;xperience;tasks + + + + + + + + + net6.0 + enable + enable + nullable + true + true + true + true + $(NoWarn);1591;S3267 + false + + + + true + true + snupkg + + + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + + diff --git a/Directory.Packages.props b/Directory.Packages.props new file mode 100644 index 0000000..131035f --- /dev/null +++ b/Directory.Packages.props @@ -0,0 +1,16 @@ + + + true + false + true + true + + + + + + + + + + \ No newline at end of file diff --git a/global.json b/global.json new file mode 100644 index 0000000..6772307 --- /dev/null +++ b/global.json @@ -0,0 +1,7 @@ +{ + "sdk": { + "version": "8.0.101", + "rollForward": "latestMajor", + "allowPrerelease": false + } +} \ No newline at end of file diff --git a/nuget.config b/nuget.config new file mode 100644 index 0000000..3f0577b --- /dev/null +++ b/nuget.config @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/src/DependingFieldComponentsConstants.cs b/src/DependingFieldComponentsConstants.cs index 14bcc89..a29906c 100644 --- a/src/DependingFieldComponentsConstants.cs +++ b/src/DependingFieldComponentsConstants.cs @@ -1,32 +1,28 @@ -using CMS; +namespace XperienceCommunity.DependingFieldComponents; -[assembly: AssemblyDiscoverable] -namespace Xperience.DependingFieldComponents +public static class DependingFieldComponentsConstants { - public static class DependingFieldComponentsConstants - { - public const string TEXTINPUT_IDENTIFIER = "Xperience.DependingFieldComponents.TextInput"; - public const string TEXTINPUT_FIELDDESCRIPTION = "Text input with field dependency"; + public const string TEXTINPUT_IDENTIFIER = "Xperience.DependingFieldComponents.TextInput"; + public const string TEXTINPUT_FIELDDESCRIPTION = "Text input with field dependency"; - public const string NUMBERINPUT_IDENTIFIER = "Xperience.DependingFieldComponents.NumberInput"; - public const string NUMBERINPUT_FIELDDESCRIPTION = "Number input with field dependency"; + public const string NUMBERINPUT_IDENTIFIER = "Xperience.DependingFieldComponents.NumberInput"; + public const string NUMBERINPUT_FIELDDESCRIPTION = "Number input with field dependency"; - public const string RADIOGROUP_IDENTIFIER = "Xperience.DependingFieldComponents.RadioGroupInput"; - public const string RADIOGROUP_FIELDDESCRIPTION = "Radio button group with field dependency"; + public const string RADIOGROUP_IDENTIFIER = "Xperience.DependingFieldComponents.RadioGroupInput"; + public const string RADIOGROUP_FIELDDESCRIPTION = "Radio button group with field dependency"; - public const string DROPDOWNINPUT_IDENTIFIER = "Xperience.DependingFieldComponents.DropdownInput"; - public const string DROPDOWNINPUT_FIELDDESCRIPTION = "Dropdown selector with field dependency"; + public const string DROPDOWNINPUT_IDENTIFIER = "Xperience.DependingFieldComponents.DropdownInput"; + public const string DROPDOWNINPUT_FIELDDESCRIPTION = "Dropdown selector with field dependency"; - public const string CHECKBOXINPUT_IDENTIFIER = "Xperience.DependingFieldComponents.CheckboxInput"; - public const string CHECKBOXINPUT_FIELDDESCRIPTION = "Checkbox with field dependency"; + public const string CHECKBOXINPUT_IDENTIFIER = "Xperience.DependingFieldComponents.CheckboxInput"; + public const string CHECKBOXINPUT_FIELDDESCRIPTION = "Checkbox with field dependency"; - public const string DATETIMEINPUT_IDENTIFIER = "Xperience.DependingFieldComponents.DateTimeInput"; - public const string DATETIMEINPUT_FIELDDESCRIPTION = "Datetime input with field dependency"; + public const string DATETIMEINPUT_IDENTIFIER = "Xperience.DependingFieldComponents.DateTimeInput"; + public const string DATETIMEINPUT_FIELDDESCRIPTION = "Datetime input with field dependency"; - public const string PROPERTY_DEPENDSON_LABEL = "Depends on"; - public const string PROPERTY_DEPENDSON_TOOLTIP = "The name of the field that determines this field's visibility"; + public const string PROPERTY_DEPENDSON_LABEL = "Depends on"; + public const string PROPERTY_DEPENDSON_TOOLTIP = "The name of the field that determines this field's visibility"; - public const string PROPERTY_EXPECTEDVALUE_LABEL = "Expected value"; - public const string PROPERTY_EXPECTEDVALUE_TOOLTIP = "The value of the depending field which will reveal this field"; - } + public const string PROPERTY_EXPECTEDVALUE_LABEL = "Expected value"; + public const string PROPERTY_EXPECTEDVALUE_TOOLTIP = "The value of the depending field which will reveal this field"; } diff --git a/src/Directory.Build.props b/src/Directory.Build.props deleted file mode 100644 index c4e5978..0000000 --- a/src/Directory.Build.props +++ /dev/null @@ -1,8 +0,0 @@ - - - - all - runtime; build; native; contentfiles; analyzers; buildtransitive - - - \ No newline at end of file diff --git a/src/FormComponents/CheckboxInputDependsOnFieldComponent/CheckboxInputDependsOnFieldAttribute.cs b/src/FormComponents/CheckboxInputDependsOnFieldComponent/CheckboxInputDependsOnFieldAttribute.cs index 23ced48..a9d9939 100644 --- a/src/FormComponents/CheckboxInputDependsOnFieldComponent/CheckboxInputDependsOnFieldAttribute.cs +++ b/src/FormComponents/CheckboxInputDependsOnFieldComponent/CheckboxInputDependsOnFieldAttribute.cs @@ -1,12 +1,11 @@ using Kentico.Xperience.Admin.Base.FormAnnotations; -namespace Xperience.DependingFieldComponents.FormComponents.CheckboxInputDependsOnFieldComponent +namespace XperienceCommunity.DependingFieldComponents.FormComponents.CheckboxInputDependsOnFieldComponent; + +public class CheckboxInputDependsOnFieldAttribute : FormComponentAttribute, IDependsOnPropertyProperties { - public class CheckboxInputDependsOnFieldAttribute : FormComponentAttribute, IDependsOnPropertyProperties - { - public string? DependsOn { get; set; } + public string? DependsOn { get; set; } - public string? ExpectedValue { get; set; } - } + public string? ExpectedValue { get; set; } } diff --git a/src/FormComponents/CheckboxInputDependsOnFieldComponent/CheckboxInputDependsOnFieldComponent.cs b/src/FormComponents/CheckboxInputDependsOnFieldComponent/CheckboxInputDependsOnFieldComponent.cs index b51f262..ffaf929 100644 --- a/src/FormComponents/CheckboxInputDependsOnFieldComponent/CheckboxInputDependsOnFieldComponent.cs +++ b/src/FormComponents/CheckboxInputDependsOnFieldComponent/CheckboxInputDependsOnFieldComponent.cs @@ -1,34 +1,36 @@ using Kentico.Xperience.Admin.Base.Forms; -using Xperience.DependingFieldComponents; -using Xperience.DependingFieldComponents.FormComponents.CheckboxInputDependsOnFieldComponent; -using Xperience.DependingFieldComponents.VisibilityConditions; +using XperienceCommunity.DependingFieldComponents; +using XperienceCommunity.DependingFieldComponents.FormComponents.CheckboxInputDependsOnFieldComponent; +using XperienceCommunity.DependingFieldComponents.VisibilityConditions; -[assembly: RegisterFormComponent(DependingFieldComponentsConstants.CHECKBOXINPUT_IDENTIFIER, typeof(CheckboxInputDependsOnFieldComponent), DependingFieldComponentsConstants.CHECKBOXINPUT_FIELDDESCRIPTION)] -namespace Xperience.DependingFieldComponents.FormComponents.CheckboxInputDependsOnFieldComponent +[assembly: RegisterFormComponent( + DependingFieldComponentsConstants.CHECKBOXINPUT_IDENTIFIER, + typeof(CheckboxInputDependsOnFieldComponent), + DependingFieldComponentsConstants.CHECKBOXINPUT_FIELDDESCRIPTION)] +namespace XperienceCommunity.DependingFieldComponents.FormComponents.CheckboxInputDependsOnFieldComponent; + +/// +/// A form component which can be configured to appear based on the value of another field. +/// +[ComponentAttribute(typeof(CheckboxInputDependsOnFieldAttribute))] +public class CheckboxInputDependsOnFieldComponent : FormComponent { + public override string ClientComponentName => "@kentico/xperience-admin-base/Checkbox"; + + /// - /// A form component which can be configured to appear based on the value of another field. + /// Initializes a new instance of /// - [ComponentAttribute(typeof(CheckboxInputDependsOnFieldAttribute))] - public class CheckboxInputDependsOnFieldComponent : FormComponent + public CheckboxInputDependsOnFieldComponent() { - public override string ClientComponentName => "@kentico/xperience-admin-base/Checkbox"; - - - /// - /// Initializes a new instance of - /// - public CheckboxInputDependsOnFieldComponent() - { - } + } - protected override void ConfigureComponent() - { - DependingFieldVisibilityCondition.Configure(this); + protected override void ConfigureComponent() + { + DependingFieldVisibilityCondition.Configure(this); - base.ConfigureComponent(); - } + base.ConfigureComponent(); } } diff --git a/src/FormComponents/DateTimeInputDependsOnFieldComponent/DateTimeInputDependsOnFieldAttribute.cs b/src/FormComponents/DateTimeInputDependsOnFieldComponent/DateTimeInputDependsOnFieldAttribute.cs index 1b45a53..6c50947 100644 --- a/src/FormComponents/DateTimeInputDependsOnFieldComponent/DateTimeInputDependsOnFieldAttribute.cs +++ b/src/FormComponents/DateTimeInputDependsOnFieldComponent/DateTimeInputDependsOnFieldAttribute.cs @@ -1,12 +1,11 @@ using Kentico.Xperience.Admin.Base.FormAnnotations; -namespace Xperience.DependingFieldComponents.FormComponents.DateTimeInputDependsOnFieldComponent +namespace XperienceCommunity.DependingFieldComponents.FormComponents.DateTimeInputDependsOnFieldComponent; + +public class DateTimeInputDependsOnFieldAttribute : FormComponentAttribute, IDependsOnPropertyProperties { - public class DateTimeInputDependsOnFieldAttribute : FormComponentAttribute, IDependsOnPropertyProperties - { - public string? DependsOn { get; set; } + public string? DependsOn { get; set; } - public string? ExpectedValue { get; set; } - } + public string? ExpectedValue { get; set; } } diff --git a/src/FormComponents/DateTimeInputDependsOnFieldComponent/DateTimeInputDependsOnFieldComponent.cs b/src/FormComponents/DateTimeInputDependsOnFieldComponent/DateTimeInputDependsOnFieldComponent.cs index 8f942e8..0007374 100644 --- a/src/FormComponents/DateTimeInputDependsOnFieldComponent/DateTimeInputDependsOnFieldComponent.cs +++ b/src/FormComponents/DateTimeInputDependsOnFieldComponent/DateTimeInputDependsOnFieldComponent.cs @@ -1,82 +1,33 @@ using CMS.Core; using CMS.Core.Internal; -using Kentico.Xperience.Admin.Base; using Kentico.Xperience.Admin.Base.Forms; using Kentico.Xperience.Admin.Base.Forms.Internal; -using System.Globalization; - -using Xperience.DependingFieldComponents; -using Xperience.DependingFieldComponents.FormComponents.DateTimeInputDependsOnFieldComponent; -using Xperience.DependingFieldComponents.VisibilityConditions; - -[assembly: RegisterFormComponent(DependingFieldComponentsConstants.DATETIMEINPUT_IDENTIFIER, typeof(DateTimeInputDependsOnFieldComponent), DependingFieldComponentsConstants.DATETIMEINPUT_FIELDDESCRIPTION)] - -namespace Xperience.DependingFieldComponents.FormComponents.DateTimeInputDependsOnFieldComponent +using XperienceCommunity.DependingFieldComponents; +using XperienceCommunity.DependingFieldComponents.FormComponents.DateTimeInputDependsOnFieldComponent; +using XperienceCommunity.DependingFieldComponents.VisibilityConditions; + +[assembly: RegisterFormComponent( + DependingFieldComponentsConstants.DATETIMEINPUT_IDENTIFIER, + typeof(DateTimeInputDependsOnFieldComponent), + DependingFieldComponentsConstants.DATETIMEINPUT_FIELDDESCRIPTION)] +namespace XperienceCommunity.DependingFieldComponents.FormComponents.DateTimeInputDependsOnFieldComponent; + +/// +/// A form component which can be configured to appear based on the value of another field. +/// +[ComponentAttribute(typeof(DateTimeInputDependsOnFieldAttribute))] +public class DateTimeInputDependsOnFieldComponent(ILocalizationService localizationService, IDateTimeNowService dateTimeService) : + DateTimeInputComponentBase(localizationService, dateTimeService) { - /// - /// A form component which can be configured to appear based on the value of another field. - /// - [ComponentAttribute(typeof(DateTimeInputDependsOnFieldAttribute))] - public class DateTimeInputDependsOnFieldComponent : DateInputComponentBase - { - private const int YEARS_OFFSET = 2000; - private const string DATE_TIME_FORMAT = "MM/DD/YYYY hh:mm AM/PM"; - - - public override string ClientComponentName => "@kentico/xperience-admin-base/DateTimeInput"; - - - /// - /// Initializes a new instance of . - /// - public DateTimeInputDependsOnFieldComponent(ILocalizationService localizationService, IDateTimeNowService dateTimeService) - : base(localizationService, dateTimeService) - { - Properties.ExplanationText = string.Format(localizationService.GetString("base.forms.datetimeinput.explanation"), DATE_TIME_FORMAT); - - AddValidationRule(new DateFormatValidationRule(localizationService, DATE_TIME_FORMAT)); - } + public override string ClientComponentName => "@kentico/xperience-admin-base/DateTimeInput"; - protected override void ConfigureComponent() - { - DependingFieldVisibilityCondition.Configure(this); - - base.ConfigureComponent(); - } - - - public override void AddValidationRule(IValidationRule validationRule) - { - if (validationRule is DateFormatValidationRule) - { - ValidationRules.Insert(0, validationRule); - } - else - { - base.AddValidationRule(validationRule); - } - } - - - public override void SetValue(DateTime? value) - { - if (value.HasValue && value.Value == default) - { - value = value.Value.AddYears(YEARS_OFFSET); - } - - base.SetValue(value); - } - - - protected override Task> ValidateDateValueInternal(ValidateDateTimeValueCommandArguments arguments) - { - var result = DateTime.TryParseExact(arguments.Value, dateTimeFormatString.Value, CultureInfo.InvariantCulture, DateTimeStyles.AssumeLocal, out _); + protected override void ConfigureComponent() + { + DependingFieldVisibilityCondition.Configure(this); - return Task.FromResult(ResponseFrom(new ValidateDateTimeValueCommandResult { IsValid = result })); - } + base.ConfigureComponent(); } } diff --git a/src/FormComponents/DependsOnPropertyProperties.cs b/src/FormComponents/DependsOnPropertyProperties.cs index 4584e49..f1225d0 100644 --- a/src/FormComponents/DependsOnPropertyProperties.cs +++ b/src/FormComponents/DependsOnPropertyProperties.cs @@ -1,15 +1,20 @@ using Kentico.Xperience.Admin.Base.FormAnnotations; using Kentico.Xperience.Admin.Base.Forms; -namespace Xperience.DependingFieldComponents.FormComponents +namespace XperienceCommunity.DependingFieldComponents.FormComponents; + +public class DependsOnPropertyProperties : FormComponentProperties, IDependsOnPropertyProperties { - public class DependsOnPropertyProperties : FormComponentProperties, IDependsOnPropertyProperties - { - [TextInputComponent(Label = DependingFieldComponentsConstants.PROPERTY_DEPENDSON_LABEL, Tooltip = DependingFieldComponentsConstants.PROPERTY_DEPENDSON_TOOLTIP, Order = 1)] - public string? DependsOn { get; set; } + [TextInputComponent( + Label = DependingFieldComponentsConstants.PROPERTY_DEPENDSON_LABEL, + Tooltip = DependingFieldComponentsConstants.PROPERTY_DEPENDSON_TOOLTIP, + Order = 1)] + public string? DependsOn { get; set; } - [TextInputComponent(Label = DependingFieldComponentsConstants.PROPERTY_EXPECTEDVALUE_LABEL, Tooltip = DependingFieldComponentsConstants.PROPERTY_EXPECTEDVALUE_TOOLTIP, Order = 2)] - public string? ExpectedValue { get; set; } - } + [TextInputComponent( + Label = DependingFieldComponentsConstants.PROPERTY_EXPECTEDVALUE_LABEL, + Tooltip = DependingFieldComponentsConstants.PROPERTY_EXPECTEDVALUE_TOOLTIP, + Order = 2)] + public string? ExpectedValue { get; set; } } diff --git a/src/FormComponents/DropdownInputDependsOnFieldComponent/DropdownInputDependsOnFieldAttribute.cs b/src/FormComponents/DropdownInputDependsOnFieldComponent/DropdownInputDependsOnFieldAttribute.cs index 6002b44..2d788af 100644 --- a/src/FormComponents/DropdownInputDependsOnFieldComponent/DropdownInputDependsOnFieldAttribute.cs +++ b/src/FormComponents/DropdownInputDependsOnFieldComponent/DropdownInputDependsOnFieldAttribute.cs @@ -1,12 +1,11 @@ using Kentico.Xperience.Admin.Base.FormAnnotations; -namespace Xperience.DependingFieldComponents.FormComponents.DropdownInputDependsOnFieldComponent +namespace XperienceCommunity.DependingFieldComponents.FormComponents.DropdownInputDependsOnFieldComponent; + +public class DropdownInputDependsOnFieldAttribute : FormComponentAttribute, IDependsOnPropertyProperties { - public class DropdownInputDependsOnFieldAttribute : FormComponentAttribute, IDependsOnPropertyProperties - { - public string? DependsOn { get; set; } + public string? DependsOn { get; set; } - public string? ExpectedValue { get; set; } - } + public string? ExpectedValue { get; set; } } diff --git a/src/FormComponents/DropdownInputDependsOnFieldComponent/DropdownInputDependsOnFieldComponent.cs b/src/FormComponents/DropdownInputDependsOnFieldComponent/DropdownInputDependsOnFieldComponent.cs index 28533a5..7fd9efe 100644 --- a/src/FormComponents/DropdownInputDependsOnFieldComponent/DropdownInputDependsOnFieldComponent.cs +++ b/src/FormComponents/DropdownInputDependsOnFieldComponent/DropdownInputDependsOnFieldComponent.cs @@ -3,78 +3,66 @@ using Kentico.Xperience.Admin.Base.FormAnnotations; using Kentico.Xperience.Admin.Base.Forms; -using Xperience.DependingFieldComponents; -using Xperience.DependingFieldComponents.FormComponents.DropdownInputDependsOnFieldComponent; -using Xperience.DependingFieldComponents.VisibilityConditions; - -[assembly: RegisterFormComponent(DependingFieldComponentsConstants.DROPDOWNINPUT_IDENTIFIER, typeof(DropdownInputDependsOnFieldComponent), DependingFieldComponentsConstants.DROPDOWNINPUT_FIELDDESCRIPTION)] - -namespace Xperience.DependingFieldComponents.FormComponents.DropdownInputDependsOnFieldComponent +using XperienceCommunity.DependingFieldComponents; +using XperienceCommunity.DependingFieldComponents.FormComponents.DropdownInputDependsOnFieldComponent; +using XperienceCommunity.DependingFieldComponents.VisibilityConditions; + +[assembly: RegisterFormComponent( + DependingFieldComponentsConstants.DROPDOWNINPUT_IDENTIFIER, + typeof(DropdownInputDependsOnFieldComponent), + DependingFieldComponentsConstants.DROPDOWNINPUT_FIELDDESCRIPTION)] +namespace XperienceCommunity.DependingFieldComponents.FormComponents.DropdownInputDependsOnFieldComponent; + +/// +/// A form component which can be configured to appear based on the value of another field. +/// +[ComponentAttribute(typeof(DropdownInputDependsOnFieldAttribute))] +public class DropdownInputDependsOnFieldComponent(ILocalizationService localizationService) : + FormComponent { - /// - /// A form component which can be configured to appear based on the value of another field. - /// - [ComponentAttribute(typeof(DropdownInputDependsOnFieldAttribute))] - public class DropdownInputDependsOnFieldComponent : FormComponent - { - private readonly ILocalizationService localizationService; - + public override string ClientComponentName => "@kentico/xperience-admin-base/DropDownSelector"; - public override string ClientComponentName => "@kentico/xperience-admin-base/DropDownSelector"; + public override string GetValue() + { + string value = base.GetValue(); + var options = GetOptions(); - /// - /// Initializes a new instance of . - /// - public DropdownInputDependsOnFieldComponent(ILocalizationService localizationService) - { - this.localizationService = localizationService ?? throw new ArgumentNullException(nameof(localizationService)); - } + return options?.FirstOrDefault(o => o.Value == value)?.Value ?? string.Empty; + } - public override string GetValue() - { - var value = base.GetValue(); - var options = GetOptions(); + protected override void ConfigureComponent() + { + DependingFieldVisibilityCondition.Configure(this); - return options?.FirstOrDefault(o => o.Value == value)?.Value ?? String.Empty; - } + base.ConfigureComponent(); + } - protected override void ConfigureComponent() - { - DependingFieldVisibilityCondition.Configure(this); + protected override async Task ConfigureClientProperties(DropDownClientProperties clientProperties) + { + clientProperties.Placeholder = !string.IsNullOrEmpty(Properties.Placeholder) ? + localizationService.LocalizeString(Properties.Placeholder) : localizationService.GetString("base.forms.dropdown.placeholder"); + clientProperties.Options = GetOptions(); - base.ConfigureComponent(); - } + await base.ConfigureClientProperties(clientProperties); + } - protected override async Task ConfigureClientProperties(DropDownClientProperties clientProperties) + private IEnumerable GetOptions() + { + if (Properties.OptionsItems != null) { - clientProperties.Placeholder = !String.IsNullOrEmpty(Properties.Placeholder) ? localizationService.LocalizeString(Properties.Placeholder) : localizationService.GetString("base.forms.dropdown.placeholder"); - clientProperties.Options = GetOptions(); - - await base.ConfigureClientProperties(clientProperties); + return Properties.OptionsItems; } - - private IEnumerable GetOptions() - { - if (Properties.OptionsItems != null) - { - return Properties.OptionsItems; - } - - return KeyValueOptionsParser.ParseDataSource( - Properties.Options ?? String.Empty, - (value, text) => new DropDownOptionItem { Value = value, Text = localizationService.LocalizeString(text) } - ); - } + return KeyValueOptionsParser.ParseDataSource( + Properties.Options ?? string.Empty, + (value, text) => new DropDownOptionItem { Value = value, Text = localizationService.LocalizeString(text) } + ); + } - internal string GetSelectedValue() - { - return base.GetValue(); - } - } + internal string GetSelectedValue() => base.GetValue(); } diff --git a/src/FormComponents/DropdownInputDependsOnFieldComponent/DropdownInputDependsOnFieldProperties.cs b/src/FormComponents/DropdownInputDependsOnFieldComponent/DropdownInputDependsOnFieldProperties.cs index 04b715e..40bb1cf 100644 --- a/src/FormComponents/DropdownInputDependsOnFieldComponent/DropdownInputDependsOnFieldProperties.cs +++ b/src/FormComponents/DropdownInputDependsOnFieldComponent/DropdownInputDependsOnFieldProperties.cs @@ -1,20 +1,19 @@ using Kentico.Xperience.Admin.Base.FormAnnotations; -namespace Xperience.DependingFieldComponents.FormComponents.DropdownInputDependsOnFieldComponent +namespace XperienceCommunity.DependingFieldComponents.FormComponents.DropdownInputDependsOnFieldComponent; + +/// +/// Properties for the component. +/// +public class DropdownInputDependsOnFieldProperties : DependsOnPropertyProperties { - /// - /// Properties for the component. - /// - public class DropdownInputDependsOnFieldProperties : DependsOnPropertyProperties - { - public IEnumerable? OptionsItems { get; set; } + public IEnumerable? OptionsItems { get; set; } - [TextAreaComponent(Label = "{$base.forms.dropdown.options.label$}", ExplanationText = "{$base.forms.dropdown.options.explanation$}")] - public string? Options { get; set; } + [TextAreaComponent(Label = "{$base.forms.dropdown.options.label$}", ExplanationText = "{$base.forms.dropdown.options.explanation$}")] + public string? Options { get; set; } - [TextInputComponent(Label = "{$base.forms.dropdown.placeholder.label$}", Tooltip = "{$base.forms.dropdown.placeholder.tooltip$}")] - public string? Placeholder { get; set; } - } + [TextInputComponent(Label = "{$base.forms.dropdown.placeholder.label$}", Tooltip = "{$base.forms.dropdown.placeholder.tooltip$}")] + public string? Placeholder { get; set; } } diff --git a/src/FormComponents/IDependsOnPropertyProperties.cs b/src/FormComponents/IDependsOnPropertyProperties.cs index f8cef2c..1401c21 100644 --- a/src/FormComponents/IDependsOnPropertyProperties.cs +++ b/src/FormComponents/IDependsOnPropertyProperties.cs @@ -1,21 +1,20 @@ -using Xperience.DependingFieldComponents.VisibilityConditions; +using XperienceCommunity.DependingFieldComponents.VisibilityConditions; -namespace Xperience.DependingFieldComponents.FormComponents +namespace XperienceCommunity.DependingFieldComponents.FormComponents; + +/// +/// Contains common form component properties used within the +/// +public interface IDependsOnPropertyProperties { /// - /// Contains common form component properties used within the + /// The name of the property that determines whether the component is visible. /// - public interface IDependsOnPropertyProperties - { - /// - /// The name of the property that determines whether the component is visible. - /// - public string? DependsOn { get; set; } + public string? DependsOn { get; set; } - /// - /// The value of the property specified by which will reveal the depending property. - /// - public string? ExpectedValue { get; set; } - } + /// + /// The value of the property specified by which will reveal the depending property. + /// + public string? ExpectedValue { get; set; } } diff --git a/src/FormComponents/NumberInputDependsOnFieldComponent/NumberInputDependsOnFieldAttribute.cs b/src/FormComponents/NumberInputDependsOnFieldComponent/NumberInputDependsOnFieldAttribute.cs index adc84e4..7422a30 100644 --- a/src/FormComponents/NumberInputDependsOnFieldComponent/NumberInputDependsOnFieldAttribute.cs +++ b/src/FormComponents/NumberInputDependsOnFieldComponent/NumberInputDependsOnFieldAttribute.cs @@ -1,12 +1,11 @@ using Kentico.Xperience.Admin.Base.FormAnnotations; -namespace Xperience.DependingFieldComponents.FormComponents.NumberInputDependsOnFieldComponent +namespace XperienceCommunity.DependingFieldComponents.FormComponents.NumberInputDependsOnFieldComponent; + +public class NumberInputDependsOnFieldAttribute : FormComponentAttribute, IDependsOnPropertyProperties { - public class NumberInputDependsOnFieldAttribute : FormComponentAttribute, IDependsOnPropertyProperties - { - public string? DependsOn { get; set; } + public string? DependsOn { get; set; } - public string? ExpectedValue { get; set; } - } + public string? ExpectedValue { get; set; } } diff --git a/src/FormComponents/NumberInputDependsOnFieldComponent/NumberInputDependsOnFieldComponent.cs b/src/FormComponents/NumberInputDependsOnFieldComponent/NumberInputDependsOnFieldComponent.cs index 69b021f..e4c1258 100644 --- a/src/FormComponents/NumberInputDependsOnFieldComponent/NumberInputDependsOnFieldComponent.cs +++ b/src/FormComponents/NumberInputDependsOnFieldComponent/NumberInputDependsOnFieldComponent.cs @@ -2,59 +2,48 @@ using Kentico.Xperience.Admin.Base.Forms; -using Xperience.DependingFieldComponents; -using Xperience.DependingFieldComponents.FormComponents.NumberInputDependsOnFieldComponent; -using Xperience.DependingFieldComponents.VisibilityConditions; - -[assembly: RegisterFormComponent(DependingFieldComponentsConstants.NUMBERINPUT_IDENTIFIER, typeof(NumberInputDependsOnFieldComponent), DependingFieldComponentsConstants.NUMBERINPUT_FIELDDESCRIPTION)] - -namespace Xperience.DependingFieldComponents.FormComponents.NumberInputDependsOnFieldComponent +using XperienceCommunity.DependingFieldComponents; +using XperienceCommunity.DependingFieldComponents.FormComponents.NumberInputDependsOnFieldComponent; +using XperienceCommunity.DependingFieldComponents.VisibilityConditions; + +[assembly: RegisterFormComponent(DependingFieldComponentsConstants.NUMBERINPUT_IDENTIFIER, + typeof(NumberInputDependsOnFieldComponent), + DependingFieldComponentsConstants.NUMBERINPUT_FIELDDESCRIPTION)] +namespace XperienceCommunity.DependingFieldComponents.FormComponents.NumberInputDependsOnFieldComponent; + +/// +/// A form component which can be configured to appear based on the value of another field. +/// +[ComponentAttribute(typeof(NumberInputDependsOnFieldAttribute))] +public class NumberInputDependsOnFieldComponent(ILocalizationService localizationService) : + FormComponent { - /// - /// A form component which can be configured to appear based on the value of another field. - /// - [ComponentAttribute(typeof(NumberInputDependsOnFieldAttribute))] - public class NumberInputDependsOnFieldComponent : FormComponent - { - private readonly ILocalizationService localizationService; + public override string ClientComponentName => "@kentico/xperience-admin-base/NumberInput"; - public override string ClientComponentName => "@kentico/xperience-admin-base/NumberInput"; - - - /// - /// Initializes a new instance of . - /// - public NumberInputDependsOnFieldComponent(ILocalizationService localizationService) : base(localizationService) + protected override void ConfigureComponent() + { + var maxRule = new MaximumIntegerValueValidationRule(localizationService) { - this.localizationService = localizationService ?? throw new ArgumentNullException(nameof(localizationService)); - } - - - protected override void ConfigureComponent() + Properties = { MaxValue = int.MaxValue }, + }; + var minRule = new MinimumIntegerValueValidationRule(localizationService) { - var maxRule = new MaximumIntegerValueValidationRule(localizationService) - { - Properties = { MaxValue = Int32.MaxValue }, - }; - var minRule = new MinimumIntegerValueValidationRule(localizationService) - { - Properties = { MinValue = Int32.MinValue }, - }; + Properties = { MinValue = int.MinValue }, + }; - AddValidationRule(maxRule); - AddValidationRule(minRule); - DependingFieldVisibilityCondition.Configure(this); + AddValidationRule(maxRule); + AddValidationRule(minRule); + DependingFieldVisibilityCondition.Configure(this); - base.ConfigureComponent(); - } + base.ConfigureComponent(); + } - protected override Task ConfigureClientProperties(NumberInputClientProperties clientProperties) - { - clientProperties.WatermarkText = localizationService.LocalizeString(Properties.WatermarkText); + protected override Task ConfigureClientProperties(NumberInputClientProperties clientProperties) + { + clientProperties.WatermarkText = localizationService.LocalizeString(Properties.WatermarkText); - return base.ConfigureClientProperties(clientProperties); - } + return base.ConfigureClientProperties(clientProperties); } } diff --git a/src/FormComponents/NumberInputDependsOnFieldComponent/NumberInputDependsOnFieldProperties.cs b/src/FormComponents/NumberInputDependsOnFieldComponent/NumberInputDependsOnFieldProperties.cs index fefdd6c..8de3709 100644 --- a/src/FormComponents/NumberInputDependsOnFieldComponent/NumberInputDependsOnFieldProperties.cs +++ b/src/FormComponents/NumberInputDependsOnFieldComponent/NumberInputDependsOnFieldProperties.cs @@ -1,14 +1,13 @@ using Kentico.Xperience.Admin.Base.FormAnnotations; using Kentico.Xperience.Admin.Base.Forms; -namespace Xperience.DependingFieldComponents.FormComponents.NumberInputDependsOnFieldComponent +namespace XperienceCommunity.DependingFieldComponents.FormComponents.NumberInputDependsOnFieldComponent; + +/// +/// Properties for the component. +/// +public class NumberInputDependsOnFieldProperties : DependsOnPropertyProperties { - /// - /// Properties for the component. - /// - public class NumberInputDependsOnFieldProperties : DependsOnPropertyProperties - { - [TextInputComponent(Label = "{$base.forms.numberinput.watermark.label$}", Tooltip = "{$base.forms.numberinput.watermark.tooltip$}")] - public string? WatermarkText { get; set; } - } + [TextInputComponent(Label = "{$base.forms.numberinput.watermark.label$}", Tooltip = "{$base.forms.numberinput.watermark.tooltip$}")] + public string? WatermarkText { get; set; } } diff --git a/src/FormComponents/RadioGroupInputDependsOnFieldComponent/RadioGroupInputDependsOnFieldAttribute.cs b/src/FormComponents/RadioGroupInputDependsOnFieldComponent/RadioGroupInputDependsOnFieldAttribute.cs index 69b1a6b..c5a0004 100644 --- a/src/FormComponents/RadioGroupInputDependsOnFieldComponent/RadioGroupInputDependsOnFieldAttribute.cs +++ b/src/FormComponents/RadioGroupInputDependsOnFieldComponent/RadioGroupInputDependsOnFieldAttribute.cs @@ -1,12 +1,11 @@ using Kentico.Xperience.Admin.Base.FormAnnotations; -namespace Xperience.DependingFieldComponents.FormComponents.RadioGroupInputDependsOnFieldComponent +namespace XperienceCommunity.DependingFieldComponents.FormComponents.RadioGroupInputDependsOnFieldComponent; + +public class RadioGroupInputDependsOnFieldAttribute : FormComponentAttribute, IDependsOnPropertyProperties { - public class RadioGroupInputDependsOnFieldAttribute : FormComponentAttribute, IDependsOnPropertyProperties - { - public string? DependsOn { get; set; } + public string? DependsOn { get; set; } - public string? ExpectedValue { get; set; } - } + public string? ExpectedValue { get; set; } } diff --git a/src/FormComponents/RadioGroupInputDependsOnFieldComponent/RadioGroupInputDependsOnFieldComponent.cs b/src/FormComponents/RadioGroupInputDependsOnFieldComponent/RadioGroupInputDependsOnFieldComponent.cs index f43ee5b..bbb4f89 100644 --- a/src/FormComponents/RadioGroupInputDependsOnFieldComponent/RadioGroupInputDependsOnFieldComponent.cs +++ b/src/FormComponents/RadioGroupInputDependsOnFieldComponent/RadioGroupInputDependsOnFieldComponent.cs @@ -2,86 +2,72 @@ using Kentico.Xperience.Admin.Base.Forms; -using Xperience.DependingFieldComponents; -using Xperience.DependingFieldComponents.FormComponents.RadioGroupInputDependsOnFieldComponent; -using Xperience.DependingFieldComponents.VisibilityConditions; - -[assembly: RegisterFormComponent(DependingFieldComponentsConstants.RADIOGROUP_IDENTIFIER, typeof(RadioGroupInputDependsOnFieldComponent), DependingFieldComponentsConstants.RADIOGROUP_FIELDDESCRIPTION)] - -namespace Xperience.DependingFieldComponents.FormComponents.RadioGroupInputDependsOnFieldComponent +using XperienceCommunity.DependingFieldComponents; +using XperienceCommunity.DependingFieldComponents.FormComponents.RadioGroupInputDependsOnFieldComponent; +using XperienceCommunity.DependingFieldComponents.VisibilityConditions; + +[assembly: RegisterFormComponent(DependingFieldComponentsConstants.RADIOGROUP_IDENTIFIER, + typeof(RadioGroupInputDependsOnFieldComponent), + DependingFieldComponentsConstants.RADIOGROUP_FIELDDESCRIPTION)] +namespace XperienceCommunity.DependingFieldComponents.FormComponents.RadioGroupInputDependsOnFieldComponent; + +/// +/// A form component which can be configured to appear based on the value of another field. +/// +[ComponentAttribute(typeof(RadioGroupInputDependsOnFieldAttribute))] +public class RadioGroupInputDependsOnFieldComponent(ILocalizationService localizationService) : + FormComponent { - /// - /// A form component which can be configured to appear based on the value of another field. - /// - [ComponentAttribute(typeof(RadioGroupInputDependsOnFieldAttribute))] - public class RadioGroupInputDependsOnFieldComponent : FormComponent - { - private readonly ILocalizationService localizationService; - + public override string ClientComponentName => "@kentico/xperience-admin-base/RadioGroup"; - public override string ClientComponentName => "@kentico/xperience-admin-base/RadioGroup"; + protected override void ConfigureComponent() + { + DependingFieldVisibilityCondition.Configure(this); - /// - /// Initializes a new instance of . - /// - public RadioGroupInputDependsOnFieldComponent(ILocalizationService localizationService) - { - this.localizationService = localizationService ?? throw new ArgumentNullException(nameof(localizationService)); - } - - - protected override void ConfigureComponent() - { - DependingFieldVisibilityCondition.Configure(this); - - base.ConfigureComponent(); - } + base.ConfigureComponent(); + } - protected override Task ConfigureClientProperties(RadioGroupClientProperties clientProperties) - { - clientProperties.Options = GetOptions(); - clientProperties.Value = GetClientValue(); - clientProperties.Inline = Properties.Inline; - clientProperties.AriaLabel = localizationService.LocalizeString(Properties.AriaLabel); + protected override Task ConfigureClientProperties(RadioGroupClientProperties clientProperties) + { + clientProperties.Options = GetOptions(); + clientProperties.Value = GetClientValue(); + clientProperties.Inline = Properties.Inline; + clientProperties.AriaLabel = localizationService.LocalizeString(Properties.AriaLabel); - return base.ConfigureClientProperties(clientProperties); - } + return base.ConfigureClientProperties(clientProperties); + } - public override string GetValue() - { - var value = base.GetValue(); + public override string GetValue() + { + string value = base.GetValue(); - return GetOptions()?.FirstOrDefault(o => o.Value == value)?.Value ?? String.Empty; - } + return GetOptions()?.FirstOrDefault(o => o.Value == value)?.Value ?? string.Empty; + } - private IEnumerable GetOptions() - { - return KeyValueOptionsParser.ParseDataSource( - Properties.Options, - (value, text) => new RadioButton { Value = value, Label = localizationService.LocalizeString(text) } - ); - } + private IEnumerable GetOptions() => KeyValueOptionsParser.ParseDataSource( + Properties.Options ?? string.Empty, + (value, text) => new RadioButton { Value = value, Label = localizationService.LocalizeString(text) } + ); - private string GetClientValue() + private string GetClientValue() + { + string value = GetValue(); + if (string.IsNullOrEmpty(value)) { - var value = GetValue(); - if (string.IsNullOrEmpty(value)) + var options = GetOptions(); + if (!options.Any()) { - var options = GetOptions(); - if (!options.Any()) - { - return string.Empty; - } - - return options.First().Value; + return string.Empty; } - return value; + return options.First().Value; } + + return value; } } diff --git a/src/FormComponents/RadioGroupInputDependsOnFieldComponent/RadioGroupInputDependsOnFieldProperties.cs b/src/FormComponents/RadioGroupInputDependsOnFieldComponent/RadioGroupInputDependsOnFieldProperties.cs index f72c0fc..679104b 100644 --- a/src/FormComponents/RadioGroupInputDependsOnFieldComponent/RadioGroupInputDependsOnFieldProperties.cs +++ b/src/FormComponents/RadioGroupInputDependsOnFieldComponent/RadioGroupInputDependsOnFieldProperties.cs @@ -1,21 +1,20 @@ using Kentico.Xperience.Admin.Base.FormAnnotations; using Kentico.Xperience.Admin.Base.Forms; -namespace Xperience.DependingFieldComponents.FormComponents.RadioGroupInputDependsOnFieldComponent +namespace XperienceCommunity.DependingFieldComponents.FormComponents.RadioGroupInputDependsOnFieldComponent; + +/// +/// Properties for the component. +/// +public class RadioGroupInputDependsOnFieldProperties : DependsOnPropertyProperties { - /// - /// Properties for the component. - /// - public class RadioGroupInputDependsOnFieldProperties : DependsOnPropertyProperties - { - [TextAreaComponent(Label = "{$base.forms.radiogroup.options.label$}", ExplanationText = "{$base.forms.radiogroup.options.explanation$}")] - public string? Options { get; set; } + [TextAreaComponent(Label = "{$base.forms.radiogroup.options.label$}", ExplanationText = "{$base.forms.radiogroup.options.explanation$}")] + public string? Options { get; set; } - [CheckBoxComponent(Label = "{$base.forms.radiogroup.inline.label$}", Tooltip = "{$base.forms.radiogroup.inline.tooltip$}")] - public bool Inline { get; set; } + [CheckBoxComponent(Label = "{$base.forms.radiogroup.inline.label$}", Tooltip = "{$base.forms.radiogroup.inline.tooltip$}")] + public bool Inline { get; set; } - public string? AriaLabel { get; set; } - } + public string? AriaLabel { get; set; } } diff --git a/src/FormComponents/TextInputDependsOnFieldComponent/TextInputDependsOnFieldAttribute.cs b/src/FormComponents/TextInputDependsOnFieldComponent/TextInputDependsOnFieldAttribute.cs index 9e8c4ca..a6398f8 100644 --- a/src/FormComponents/TextInputDependsOnFieldComponent/TextInputDependsOnFieldAttribute.cs +++ b/src/FormComponents/TextInputDependsOnFieldComponent/TextInputDependsOnFieldAttribute.cs @@ -1,12 +1,11 @@ using Kentico.Xperience.Admin.Base.FormAnnotations; -namespace Xperience.DependingFieldComponents.FormComponents.TextInputDependsOnFieldComponent +namespace XperienceCommunity.DependingFieldComponents.FormComponents.TextInputDependsOnFieldComponent; + +public class TextInputDependsOnFieldAttribute : FormComponentAttribute, IDependsOnPropertyProperties { - public class TextInputDependsOnFieldAttribute : FormComponentAttribute, IDependsOnPropertyProperties - { - public string? DependsOn { get; set; } + public string? DependsOn { get; set; } - public string? ExpectedValue { get; set; } - } + public string? ExpectedValue { get; set; } } diff --git a/src/FormComponents/TextInputDependsOnFieldComponent/TextInputDependsOnFieldComponent.cs b/src/FormComponents/TextInputDependsOnFieldComponent/TextInputDependsOnFieldComponent.cs index 240e651..1e91669 100644 --- a/src/FormComponents/TextInputDependsOnFieldComponent/TextInputDependsOnFieldComponent.cs +++ b/src/FormComponents/TextInputDependsOnFieldComponent/TextInputDependsOnFieldComponent.cs @@ -2,48 +2,39 @@ using Kentico.Xperience.Admin.Base.Forms; -using Xperience.DependingFieldComponents; -using Xperience.DependingFieldComponents.FormComponents.TextInputDependsOnFieldComponent; -using Xperience.DependingFieldComponents.VisibilityConditions; - -[assembly: RegisterFormComponent(DependingFieldComponentsConstants.TEXTINPUT_IDENTIFIER, typeof(TextInputDependsOnFieldComponent), DependingFieldComponentsConstants.TEXTINPUT_FIELDDESCRIPTION)] - -namespace Xperience.DependingFieldComponents.FormComponents.TextInputDependsOnFieldComponent +using XperienceCommunity.DependingFieldComponents; +using XperienceCommunity.DependingFieldComponents.FormComponents.TextInputDependsOnFieldComponent; +using XperienceCommunity.DependingFieldComponents.VisibilityConditions; + +[assembly: RegisterFormComponent( + DependingFieldComponentsConstants.TEXTINPUT_IDENTIFIER, + typeof(TextInputDependsOnFieldComponent), + DependingFieldComponentsConstants.TEXTINPUT_FIELDDESCRIPTION)] + +namespace XperienceCommunity.DependingFieldComponents.FormComponents.TextInputDependsOnFieldComponent; + +/// +/// A form component which can be configured to appear based on the value of another field. +/// +[ComponentAttribute(typeof(TextInputDependsOnFieldAttribute))] +public class TextInputDependsOnFieldComponent(ILocalizationService localizationService) : + FormComponent { - /// - /// A form component which can be configured to appear based on the value of another field. - /// - [ComponentAttribute(typeof(TextInputDependsOnFieldAttribute))] - public class TextInputDependsOnFieldComponent : FormComponent - { - private readonly ILocalizationService localizationService; - - - public override string ClientComponentName => "@kentico/xperience-admin-base/TextInput"; + public override string ClientComponentName => "@kentico/xperience-admin-base/TextInput"; - /// - /// Initializes a new instance of . - /// - public TextInputDependsOnFieldComponent(ILocalizationService localizationService) : base(localizationService) - { - this.localizationService = localizationService ?? throw new ArgumentNullException(nameof(localizationService)); - } - - - protected override void ConfigureComponent() - { - DependingFieldVisibilityCondition.Configure(this); + protected override void ConfigureComponent() + { + DependingFieldVisibilityCondition.Configure(this); - base.ConfigureComponent(); - } + base.ConfigureComponent(); + } - protected override Task ConfigureClientProperties(TextInputClientProperties clientProperties) - { - clientProperties.WatermarkText = localizationService.LocalizeString(Properties.WatermarkText); + protected override Task ConfigureClientProperties(TextInputClientProperties clientProperties) + { + clientProperties.WatermarkText = localizationService.LocalizeString(Properties.WatermarkText); - return base.ConfigureClientProperties(clientProperties); - } + return base.ConfigureClientProperties(clientProperties); } } diff --git a/src/FormComponents/TextInputDependsOnFieldComponent/TextInputDependsOnFieldProperties.cs b/src/FormComponents/TextInputDependsOnFieldComponent/TextInputDependsOnFieldProperties.cs index 7469ea0..cb2044f 100644 --- a/src/FormComponents/TextInputDependsOnFieldComponent/TextInputDependsOnFieldProperties.cs +++ b/src/FormComponents/TextInputDependsOnFieldComponent/TextInputDependsOnFieldProperties.cs @@ -1,13 +1,12 @@ using Kentico.Xperience.Admin.Base.FormAnnotations; -namespace Xperience.DependingFieldComponents.FormComponents.TextInputDependsOnFieldComponent +namespace XperienceCommunity.DependingFieldComponents.FormComponents.TextInputDependsOnFieldComponent; + +/// +/// Properties for the component. +/// +public class TextInputDependsOnFieldProperties : DependsOnPropertyProperties { - /// - /// Properties for the component. - /// - public class TextInputDependsOnFieldProperties : DependsOnPropertyProperties - { - [TextInputComponent(Label = "{$base.forms.textinput.watermark.label$}", Tooltip = "{$base.forms.textinput.watermark.tooltip$}")] - public string? WatermarkText { get; set; } - } + [TextInputComponent(Label = "{$base.forms.textinput.watermark.label$}", Tooltip = "{$base.forms.textinput.watermark.tooltip$}")] + public string? WatermarkText { get; set; } } diff --git a/src/KeyValueOptionsParser.cs b/src/KeyValueOptionsParser.cs index 304f29b..1e67864 100644 --- a/src/KeyValueOptionsParser.cs +++ b/src/KeyValueOptionsParser.cs @@ -1,44 +1,42 @@ -namespace Xperience.DependingFieldComponents +namespace XperienceCommunity.DependingFieldComponents; + +internal static class KeyValueOptionsParser { - internal static class KeyValueOptionsParser - { - /// - /// Describes a function to create an item. - /// - /// The value of the item. - /// The display text of the item. - internal delegate T ItemActivator(string value, string text); + /// + /// Describes a function to create an item. + /// + /// The value of the item. + /// The display text of the item. + internal delegate T ItemActivator(string value, string text); - /// - /// Parses given by and semicolon character. - /// - internal static IEnumerable ParseDataSource(string dataSource, ItemActivator activator) - { - var source = dataSource ?? string.Empty; - source = source.Trim(); + /// + /// Parses given by and semicolon character. + /// + internal static IEnumerable ParseDataSource(string dataSource, ItemActivator activator) + { + string source = dataSource ?? string.Empty; + source = source.Trim(); - var lines = source.Split(new[] { Environment.NewLine, "\r\n", "\n" }, StringSplitOptions.RemoveEmptyEntries); - foreach (var line in lines) + string[] lines = source.Split(new[] { Environment.NewLine, "\r\n", "\n" }, StringSplitOptions.RemoveEmptyEntries); + foreach (string line in lines) + { + string[] items = line.Trim().Split(';'); + if (items.Length == 0) { - var items = line.Trim().Split(';'); - - if (items.Length == 0) - { - continue; - } + continue; + } - if (items.Length == 1) - { - yield return activator(items[0], items[0]); - continue; - } + if (items.Length == 1) + { + yield return activator(items[0], items[0]); + continue; + } - var value = items[0]; - var text = items[1]; + string value = items[0]; + string text = items[1]; - yield return activator(value, text); - } + yield return activator(value, text); } } } diff --git a/src/VisibilityConditions/DependingFieldVisibilityCondition.cs b/src/VisibilityConditions/DependingFieldVisibilityCondition.cs index 464ea5c..129a3eb 100644 --- a/src/VisibilityConditions/DependingFieldVisibilityCondition.cs +++ b/src/VisibilityConditions/DependingFieldVisibilityCondition.cs @@ -2,66 +2,52 @@ using Kentico.Xperience.Admin.Base.Forms; -using Xperience.DependingFieldComponents.FormComponents; +using XperienceCommunity.DependingFieldComponents.FormComponents; -namespace Xperience.DependingFieldComponents.VisibilityConditions -{ - /// - /// A visibility condition that toggles the visibility of a field depending on the value of another field. - /// - public class DependingFieldVisibilityCondition : VisibilityConditionWithDependency - { - private readonly string dependsOn; - private readonly string expectedValue; - - - public override IEnumerable DependsOnFields => new string[] { dependsOn }; - - - /// - /// Initializes a new instance of . - /// - /// The name of the field that determines whether the component is visible. - /// The value of the field specified by which will reveal the depending field. - public DependingFieldVisibilityCondition(string dependsOn, string expectedValue) - { - this.dependsOn = dependsOn; - this.expectedValue = expectedValue; - } +namespace XperienceCommunity.DependingFieldComponents.VisibilityConditions; +/// +/// A visibility condition that toggles the visibility of a field depending on the value of another field. +/// +/// The name of the field that determines whether the component is visible. +/// The value of the field specified by which will reveal the depending +/// field. +public class DependingFieldVisibilityCondition(string dependsOn, string expectedValue) : VisibilityConditionWithDependency +{ + public override IEnumerable DependsOnFields => new string[] { dependsOn }; - public override bool Evaluate(IFormFieldValueProvider formFieldValueProvider) + public override bool Evaluate(IFormFieldValueProvider formFieldValueProvider) + { + if (formFieldValueProvider.TryGet(dependsOn, out object? fieldValue)) { - if (formFieldValueProvider.TryGet(dependsOn, out var fieldValue)) + if (fieldValue is null) { - if (fieldValue is null) - { - return false; - } - - var stringRepresentation = ValidationHelper.GetString(fieldValue, String.Empty); - if (!String.IsNullOrEmpty(stringRepresentation)) - { - return stringRepresentation.Equals(expectedValue); - } + return false; } - return true; + string stringRepresentation = ValidationHelper.GetString(fieldValue, string.Empty); + if (!string.IsNullOrEmpty(stringRepresentation)) + { + return stringRepresentation.Equals(expectedValue); + } } + return true; + } + - /// - /// Applies a visibility condition if the required conditions are met. - /// - /// The form component to apply the visibility condition to. - public static void Configure(FormComponent component) - where TProps : DependsOnPropertyProperties, new() - where TClientProps : FormComponentClientProperties, new() + /// + /// Applies a visibility condition if the required conditions are met. + /// + /// The form component to apply the visibility condition to. + public static void Configure(FormComponent component) + where TProps : DependsOnPropertyProperties, new() + where TClientProps : FormComponentClientProperties, new() + { + if (!string.IsNullOrEmpty(component.Properties.DependsOn) && component.Properties.ExpectedValue is not null) { - if (!String.IsNullOrEmpty(component.Properties.DependsOn) && component.Properties.ExpectedValue is not null) - { - component.AddVisibilityCondition(new DependingFieldVisibilityCondition(component.Properties.DependsOn, component.Properties.ExpectedValue)); - } + component.AddVisibilityCondition(new DependingFieldVisibilityCondition(component.Properties.DependsOn, + component.Properties.ExpectedValue)); } } } diff --git a/src/Xperience.DependingFieldComponents.csproj b/src/Xperience.DependingFieldComponents.csproj index d5d903a..109c0ab 100644 --- a/src/Xperience.DependingFieldComponents.csproj +++ b/src/Xperience.DependingFieldComponents.csproj @@ -1,25 +1,20 @@  - - 1.1.0 - Eric Dugre - Kentico - Xperience by Kentico - A collection of Xperience by Kentico form components whose visibility depend on the value of another field - icon.png - net6.0 - enable - enable - true + XperienceCommunity.DependingFieldComponents + $(NoWarn);S1075 + latest + + + disable - - + - + + diff --git a/src/editorconfig.txt b/src/editorconfig.txt deleted file mode 100644 index 09c62a8..0000000 --- a/src/editorconfig.txt +++ /dev/null @@ -1,1245 +0,0 @@ -root = true - -[*.cs] - -# ===== Active SonarLint rules ===== - -# [Category: Bug] -# S2757: "=+" should not be used instead of "+=" -dotnet_diagnostic.S2757.severity = warning - -# S3168: "async" methods should not return "void" -dotnet_diagnostic.S3168.severity = warning - -# S3397: "base.Equals" should not be used to check for reference equality in "Equals" if "base" is not "object" -dotnet_diagnostic.S3397.severity = warning - -# S1206: "Equals(Object)" and "GetHashCode()" should be overridden in pairs -dotnet_diagnostic.S1206.severity = warning - -# S2328: "GetHashCode" should not reference mutable fields -dotnet_diagnostic.S2328.severity = warning - -# S2997: "IDisposables" created in a "using" statement should not be returned -dotnet_diagnostic.S2997.severity = warning - -# S2930: "IDisposables" should be disposed -dotnet_diagnostic.S2930.severity = warning - -# S2688: "NaN" should not be used in comparisons -dotnet_diagnostic.S2688.severity = warning - -# S2995: "Object.ReferenceEquals" should not be used for value types -dotnet_diagnostic.S2995.severity = warning - -# S3869: "SafeHandle.DangerousGetHandle" should not be called -dotnet_diagnostic.S3869.severity = warning - -# S3456: "string.ToCharArray()" should not be called redundantly -dotnet_diagnostic.S3456.severity = warning - -# S2996: "ThreadStatic" fields should not be initialized -dotnet_diagnostic.S2996.severity = warning - -# S3005: "ThreadStatic" should not be used on non-static fields -dotnet_diagnostic.S3005.severity = warning - -# S2225: "ToString()" method should not return null -dotnet_diagnostic.S2225.severity = warning - -# S2251: A "for" loop update clause should move the counter in the right direction -dotnet_diagnostic.S2251.severity = warning - -# S3923: All branches in a conditional structure should not have exactly the same implementation -dotnet_diagnostic.S3923.severity = warning - -# S3244: Anonymous delegates should not be used to unsubscribe from Events -dotnet_diagnostic.S3244.severity = warning - -# S3343: Caller information parameters should come at the end of the parameter list -dotnet_diagnostic.S3343.severity = warning - -# S4583: Calls to delegate's method "BeginInvoke" should be paired with calls to "EndInvoke" -dotnet_diagnostic.S4583.severity = warning - -# S3249: Classes directly extending "object" should not call "base" in "GetHashCode" or "Equals" -dotnet_diagnostic.S3249.severity = warning - -# S3453: Classes should not have only "private" constructors -dotnet_diagnostic.S3453.severity = warning - -# S4143: Collection elements should not be replaced unconditionally -dotnet_diagnostic.S4143.severity = warning - -# S3981: Collection sizes and array length comparisons should make sense -dotnet_diagnostic.S3981.severity = warning - -# S2114: Collections should not be passed as arguments to their own methods -dotnet_diagnostic.S2114.severity = warning - -# S2275: Composite format strings should not lead to unexpected behavior at runtime -dotnet_diagnostic.S2275.severity = warning - -# S2583: Conditionally executed code should be reachable -dotnet_diagnostic.S2583.severity = warning - -# S3172: Delegates should not be subtracted -dotnet_diagnostic.S3172.severity = warning - -# S3926: Deserialization methods should be provided for "OptionalField" members -dotnet_diagnostic.S3926.severity = warning - -# S1048: Destructors should not throw exceptions -dotnet_diagnostic.S1048.severity = warning - -# S2761: Doubled prefix operators "!!" and "~~" should not be used -dotnet_diagnostic.S2761.severity = warning - -# S4158: Empty collections should not be accessed or iterated -dotnet_diagnostic.S4158.severity = warning - -# S3655: Empty nullable value should not be accessed -dotnet_diagnostic.S3655.severity = warning - -# S3984: Exceptions should not be created without being thrown -dotnet_diagnostic.S3984.severity = warning - -# S3346: Expressions used in "Debug.Assert" should not produce side effects -dotnet_diagnostic.S3346.severity = warning - -# S2345: Flags enumerations should explicitly initialize all their members -dotnet_diagnostic.S2345.severity = warning - -# S2252: For-loop conditions should be true at least once -dotnet_diagnostic.S2252.severity = warning - -# S4275: Getters and setters should access the expected fields -dotnet_diagnostic.S4275.severity = warning - -# S1764: Identical expressions should not be used on both sides of a binary operator -dotnet_diagnostic.S1764.severity = warning - -# S2183: Integral numbers should not be shifted by zero or more than their number of bits-1 -dotnet_diagnostic.S2183.severity = warning - -# S1751: Loops with at most one iteration should be refactored -dotnet_diagnostic.S1751.severity = warning - -# S3603: Methods with "Pure" attribute should return a value -dotnet_diagnostic.S3603.severity = warning - -# S3887: Mutable, non-private fields should not be "readonly" -dotnet_diagnostic.S3887.severity = warning - -# S3889: Neither "Thread.Resume" nor "Thread.Suspend" should be used -dotnet_diagnostic.S3889.severity = warning - -# S4586: Non-async "Task/Task" methods should not return null -dotnet_diagnostic.S4586.severity = warning - -# S2259: Null pointers should not be dereferenced -dotnet_diagnostic.S2259.severity = warning - -# S3610: Nullable type comparison should not be redundant -dotnet_diagnostic.S3610.severity = warning - -# S1848: Objects should not be created to be dropped immediately without being used -dotnet_diagnostic.S1848.severity = warning - -# S3598: One-way "OperationContract" methods should have "void" return type -dotnet_diagnostic.S3598.severity = warning - -# S3466: Optional parameters should be passed to "base" calls -dotnet_diagnostic.S3466.severity = warning - -# S2934: Property assignments should not be made for "readonly" fields not constrained to reference types -dotnet_diagnostic.S2934.severity = warning - -# S2190: Recursion should not be infinite -dotnet_diagnostic.S2190.severity = warning - -# S1862: Related "if/else if" statements should not have the same condition -dotnet_diagnostic.S1862.severity = warning - -# S2184: Results of integer division should not be assigned to floating point variables -dotnet_diagnostic.S2184.severity = warning - -# S2201: Return values from functions without side effects should not be ignored -dotnet_diagnostic.S2201.severity = warning - -# S3449: Right operands of shift operators should be integers -dotnet_diagnostic.S3449.severity = warning - -# S3927: Serialization event handlers should be implemented correctly -dotnet_diagnostic.S3927.severity = warning - -# S2551: Shared resources should not be used for locking -dotnet_diagnostic.S2551.severity = warning - -# S2857: SQL keywords should be delimited by whitespace -dotnet_diagnostic.S2857.severity = warning - -# S3263: Static fields should appear in the order they must be initialized -dotnet_diagnostic.S3263.severity = warning - -# S3464: Type inheritance should not be recursive -dotnet_diagnostic.S3464.severity = warning - -# S3903: Types should be defined in named namespaces -dotnet_diagnostic.S3903.severity = warning - -# S2123: Values should not be uselessly incremented -dotnet_diagnostic.S2123.severity = warning - -# S1656: Variables should not be self-assigned -dotnet_diagnostic.S1656.severity = warning - -# S2306: "async" and "await" should not be used as identifiers -dotnet_diagnostic.S2306.severity = warning - - -# [Category: Security] -# S3884: "CoSetProxyBlanket" and "CoInitializeSecurity" should not be used -dotnet_diagnostic.S3884.severity = warning - -# S2115: A secure password should be used when connecting to a database -dotnet_diagnostic.S2115.severity = warning - -# S5547: Cipher algorithms should be robust -dotnet_diagnostic.S5547.severity = warning - -# S3329: Cipher Block Chaining IVs should be unpredictable -dotnet_diagnostic.S3329.severity = warning - -# S5542: Encryption algorithms should be used with secure mode and padding scheme -dotnet_diagnostic.S5542.severity = warning - -# S5445: Insecure temporary file creation methods should not be used -dotnet_diagnostic.S5445.severity = warning - -# S5659: JWT should be signed and verified with strong cipher algorithms -dotnet_diagnostic.S5659.severity = warning - -# S4433: LDAP connections should be authenticated -dotnet_diagnostic.S4433.severity = warning - -# S4211: Members should not have conflicting transparency annotations -dotnet_diagnostic.S4211.severity = warning - -# S4423: Weak SSL/TLS protocols should not be used -dotnet_diagnostic.S4423.severity = warning - -# S2755: XML parsers should not be vulnerable to XXE attacks -dotnet_diagnostic.S2755.severity = warning - -# S2053: Hashes should include an unpredictable salt -dotnet_diagnostic.S2053.severity = warning - -# S4830: Server certificates should be verified during SSL/TLS connections -dotnet_diagnostic.S4830.severity = warning - -# S4426: Cryptographic keys should be robust -dotnet_diagnostic.S4426.severity = warning - -# S5773: Types allowed to be deserialized should be restricted -dotnet_diagnostic.S5773.severity = warning - - -# [Category: Security Hotspot] -# S5693: Allowing requests with excessive content length is security-sensitive -dotnet_diagnostic.S5693.severity = warning - -# S4792: Configuring loggers is security-sensitive -dotnet_diagnostic.S4792.severity = warning - -# S3330: Creating cookies without the "HttpOnly" flag is security-sensitive -dotnet_diagnostic.S3330.severity = warning - -# S2092: Creating cookies without the "secure" flag is security-sensitive -dotnet_diagnostic.S2092.severity = warning - -# S4507: Delivering code in production with debug features activated is security-sensitive -dotnet_diagnostic.S4507.severity = warning - -# S5766: Deserializing objects without performing data validation is security-sensitive -dotnet_diagnostic.S5766.severity = warning - -# S5753: Disabling ASP.NET "Request Validation" feature is security-sensitive -dotnet_diagnostic.S5753.severity = warning - -# S4502: Disabling CSRF protections is security-sensitive -dotnet_diagnostic.S4502.severity = warning - -# S5042: Expanding archive files without controlling resource consumption is security-sensitive -dotnet_diagnostic.S5042.severity = warning - -# S2077: Formatting SQL queries is security-sensitive -dotnet_diagnostic.S2077.severity = warning - -# S2068: Hard-coded credentials are security-sensitive -dotnet_diagnostic.S2068.severity = warning - -# S5122: Having a permissive Cross-Origin Resource Sharing policy is security-sensitive -dotnet_diagnostic.S5122.severity = warning - -# S4036: Searching OS commands in PATH is security-sensitive -dotnet_diagnostic.S4036.severity = warning - -# S2612: Setting loose file permissions is security-sensitive -dotnet_diagnostic.S2612.severity = warning - -# S5332: Using clear-text protocols is security-sensitive -dotnet_diagnostic.S5332.severity = warning - -# S1313: Using hardcoded IP addresses is security-sensitive -dotnet_diagnostic.S1313.severity = warning - -# S2257: Using non-standard cryptographic algorithms is security-sensitive -dotnet_diagnostic.S2257.severity = warning - -# S2245: Using pseudorandom number generators (PRNGs) is security-sensitive -dotnet_diagnostic.S2245.severity = warning - -# S5443: Using publicly writable directories is security-sensitive -dotnet_diagnostic.S5443.severity = warning - -# S4790: Using weak hashing algorithms is security-sensitive -dotnet_diagnostic.S4790.severity = warning - - -# [Category: Code Smell] -# S3451: "[DefaultValue]" should not be used when "[DefaultParameterValue]" is meant -dotnet_diagnostic.S3451.severity = warning - -# S3447: "[Optional]" should not be used on "ref" or "out" parameters -dotnet_diagnostic.S3447.severity = warning - -# S1155: "Any()" should be used to test for emptiness -dotnet_diagnostic.S1155.severity = warning - -# S2737: "catch" clauses should do more than rethrow -dotnet_diagnostic.S2737.severity = warning - -# S4524: "default" clauses should be first or last -dotnet_diagnostic.S4524.severity = warning - -# S3217: "Explicit" conversions of "foreach" loops should not be used -dotnet_diagnostic.S3217.severity = warning - -# S3971: "GC.SuppressFinalize" should not be called -dotnet_diagnostic.S3971.severity = warning - -# S907: "goto" statement should not be used -dotnet_diagnostic.S907.severity = warning - -# S2692: "IndexOf" checks should not be for positive numbers -dotnet_diagnostic.S2692.severity = warning - -# S3060: "is" should not be used with "this" -dotnet_diagnostic.S3060.severity = warning - -# S1123: "Obsolete" attributes should include explanations -dotnet_diagnostic.S1123.severity = warning - -# S4214: "P/Invoke" methods should not be visible -dotnet_diagnostic.S4214.severity = warning - -# S4061: "params" should be used instead of "varargs" -dotnet_diagnostic.S4061.severity = warning - -# S3262: "params" should be used on overrides -dotnet_diagnostic.S3262.severity = warning - -# S3600: "params" should not be introduced on overrides -dotnet_diagnostic.S3600.severity = warning - -# S3597: "ServiceContract" and "OperationContract" attributes should be used together -dotnet_diagnostic.S3597.severity = warning - -# S3963: "static" fields should be initialized inline -dotnet_diagnostic.S3963.severity = warning - -# S3256: "string.IsNullOrEmpty" should be used -dotnet_diagnostic.S3256.severity = warning - -# S1479: "switch" statements should not have too many "case" clauses -dotnet_diagnostic.S1479.severity = warning - -# S5034: "ValueTask" should be consumed correctly -dotnet_diagnostic.S5034.severity = warning - -# S1264: A "while" loop should be used instead of a "for" loop -dotnet_diagnostic.S1264.severity = warning - -# S3973: A conditionally executed single line should be denoted by indentation -dotnet_diagnostic.S3973.severity = warning - -# S3904: Assemblies should have version information -dotnet_diagnostic.S3904.severity = warning - -# S3415: Assertion arguments should be passed in the correct order -dotnet_diagnostic.S3415.severity = warning - -# S4019: Base class methods should not be hidden -dotnet_diagnostic.S4019.severity = warning - -# S1940: Boolean checks should not be inverted -dotnet_diagnostic.S1940.severity = warning - -# S3236: Caller information arguments should not be provided explicitly -dotnet_diagnostic.S3236.severity = warning - -# S3897: Classes that provide "Equals()" should implement "IEquatable" -dotnet_diagnostic.S3897.severity = warning - -# S3457: Composite format strings should be used correctly -dotnet_diagnostic.S3457.severity = warning - -# S3972: Conditionals should start on new lines -dotnet_diagnostic.S3972.severity = warning - -# S1116: Empty statements should be removed -dotnet_diagnostic.S1116.severity = warning - -# S3264: Events should be invoked -dotnet_diagnostic.S3264.severity = warning - -# S3445: Exceptions should not be explicitly rethrown -dotnet_diagnostic.S3445.severity = warning - -# S1163: Exceptions should not be thrown in finally blocks -dotnet_diagnostic.S1163.severity = warning - -# S2290: Field-like events should not be virtual -dotnet_diagnostic.S2290.severity = warning - -# S2346: Flags enumerations zero-value members should be named "warning" -dotnet_diagnostic.S2346.severity = warning - -# S3251: Implementations should be provided for "partial" methods -dotnet_diagnostic.S3251.severity = warning - -# S1944: Inappropriate casts should not be made -dotnet_diagnostic.S1944.severity = warning - -# S4015: Inherited member visibility should not be decreased -dotnet_diagnostic.S4015.severity = warning - -# S3444: Interfaces should not simply inherit from base interfaces with colliding members -dotnet_diagnostic.S3444.severity = warning - -# S818: Literal suffixes should be upper case -dotnet_diagnostic.S818.severity = warning - -# S3400: Methods should not return constants -dotnet_diagnostic.S3400.severity = warning - -# S2681: Multiline blocks should be enclosed in curly braces -dotnet_diagnostic.S2681.severity = warning - -# S3169: Multiple "OrderBy" calls should not be used -dotnet_diagnostic.S3169.severity = warning - -# S3261: Namespaces should not be empty -dotnet_diagnostic.S3261.severity = warning - -# S4200: Native methods should be wrapped -dotnet_diagnostic.S4200.severity = warning - -# S1199: Nested code blocks should not be used -dotnet_diagnostic.S1199.severity = warning - -# S4070: Non-flags enums should not be marked with "FlagsAttribute" -dotnet_diagnostic.S4070.severity = warning - -# S3265: Non-flags enums should not be used in bitwise operations -dotnet_diagnostic.S3265.severity = warning - -# S4201: Null checks should not be used with "is" -dotnet_diagnostic.S4201.severity = warning - -# S3966: Objects should not be disposed more than once -dotnet_diagnostic.S3966.severity = warning - -# S2291: Overflow checking should not be disabled for "Enumerable.Sum" -dotnet_diagnostic.S2291.severity = warning - -# S1185: Overriding members should do more than simply call the same member in the base class -dotnet_diagnostic.S1185.severity = warning - -# S2234: Parameters should be passed in the correct order -dotnet_diagnostic.S2234.severity = warning - -# S3450: Parameters with "[DefaultParameterValue]" attributes should also be marked "[Optional]" -dotnet_diagnostic.S3450.severity = warning - -# S1905: Redundant casts should not be used -dotnet_diagnostic.S1905.severity = warning - -# S1110: Redundant pairs of parentheses should be removed -dotnet_diagnostic.S1110.severity = warning - -# S2437: Silly bit operations should not be performed -dotnet_diagnostic.S2437.severity = warning - -# S3010: Static fields should not be updated in constructors -dotnet_diagnostic.S3010.severity = warning - -# S4635: String offset-based methods should be preferred for finding substrings from offsets -dotnet_diagnostic.S4635.severity = warning - -# S3998: Threads should not lock on objects with weak identity -dotnet_diagnostic.S3998.severity = warning - -# S1134: Track uses of "FIXME" tags -dotnet_diagnostic.S1134.severity = warning - -# S1135: Track uses of "TODO" tags -dotnet_diagnostic.S1135.severity = warning - -# S1871: Two branches in a conditional structure should not have exactly the same implementation -dotnet_diagnostic.S1871.severity = warning - -# S3443: Type should not be examined on "System.Type" instances -dotnet_diagnostic.S3443.severity = warning - -# S3459: Unassigned members should be removed -dotnet_diagnostic.S3459.severity = warning - -# S3440: Variables should not be checked against the values they're about to be assigned -dotnet_diagnostic.S3440.severity = warning - -# S2479: Whitespace and control characters in string literals should be explicit -dotnet_diagnostic.S2479.severity = warning - -# S2376: Write-only properties should not be used -dotnet_diagnostic.S2376.severity = warning - -# S3442: "abstract" classes should not have "public" constructors -dotnet_diagnostic.S3442.severity = warning - -# S3885: "Assembly.Load" should be used -dotnet_diagnostic.S3885.severity = warning - -# S1210: "Equals" and the comparison operators should be overridden when implementing "IComparable" -dotnet_diagnostic.S1210.severity = warning - -# S1215: "GC.Collect" should not be called -dotnet_diagnostic.S1215.severity = warning - -# S3881: "IDisposable" should be implemented correctly -dotnet_diagnostic.S3881.severity = warning - -# S2971: "IEnumerable" LINQs should be simplified -dotnet_diagnostic.S2971.severity = warning - -# S3925: "ISerializable" should be implemented correctly -dotnet_diagnostic.S3925.severity = warning - -# S4581: "new Guid()" should not be used -dotnet_diagnostic.S4581.severity = warning - -# S3875: "operator==" should not be overloaded on reference types -dotnet_diagnostic.S3875.severity = warning - -# S3237: "value" parameters should be used -dotnet_diagnostic.S3237.severity = warning - -# S1121: Assignments should not be made from within sub-expressions -dotnet_diagnostic.S1121.severity = warning - -# S3376: Attribute, EventArgs, and Exception type names should end with the type being extended -dotnet_diagnostic.S3376.severity = warning - -# S2589: Boolean expressions should not be gratuitous -dotnet_diagnostic.S2589.severity = warning - -# S4035: Classes implementing "IEquatable" should be sealed -dotnet_diagnostic.S4035.severity = warning - -# S3776: Cognitive Complexity of methods should not be too high -dotnet_diagnostic.S3776.severity = warning - -# S1066: Collapsible "if" statements should be merged -dotnet_diagnostic.S1066.severity = warning - -# S1699: Constructors should only call non-overridable methods -dotnet_diagnostic.S1699.severity = warning - -# S2372: Exceptions should not be thrown from property getters -dotnet_diagnostic.S2372.severity = warning - -# S3877: Exceptions should not be thrown from unexpected methods -dotnet_diagnostic.S3877.severity = warning - -# S1104: Fields should not have public accessibility -dotnet_diagnostic.S1104.severity = warning - -# S2933: Fields that are only assigned in the constructor should be "readonly" -dotnet_diagnostic.S2933.severity = warning - -# S112: General exceptions should never be thrown -dotnet_diagnostic.S112.severity = warning - -# S2486: Generic exceptions should not be ignored -dotnet_diagnostic.S2486.severity = warning - -# S3246: Generic type parameters should be co/contravariant when possible -dotnet_diagnostic.S3246.severity = warning - -# S1939: Inheritance list should not be redundant -dotnet_diagnostic.S1939.severity = warning - -# S110: Inheritance tree of classes should not be too deep -dotnet_diagnostic.S110.severity = warning - -# S3218: Inner class members should not shadow outer class "static" or type members -dotnet_diagnostic.S3218.severity = warning - -# S2696: Instance members should not write to "static" fields -dotnet_diagnostic.S2696.severity = warning - -# S3626: Jump statements should not be redundant -dotnet_diagnostic.S3626.severity = warning - -# S1117: Local variables should not shadow class fields -dotnet_diagnostic.S1117.severity = warning - -# S3267: Loops should be simplified with "LINQ" expressions -dotnet_diagnostic.S3267.severity = warning - -# S3604: Member initializer values should not be redundant -dotnet_diagnostic.S3604.severity = warning - -# S3220: Method calls should not resolve ambiguously to overloads with "params" -dotnet_diagnostic.S3220.severity = warning - -# S4136: Method overloads should be grouped together -dotnet_diagnostic.S4136.severity = warning - -# S3427: Method overloads with default parameter values should not overlap -dotnet_diagnostic.S3427.severity = warning - -# S1006: Method overrides should not change parameter defaults -dotnet_diagnostic.S1006.severity = warning - -# S2953: Methods named "Dispose" should implement "IDisposable.Dispose" -dotnet_diagnostic.S2953.severity = warning - -# S1186: Methods should not be empty -dotnet_diagnostic.S1186.severity = warning - -# S4144: Methods should not have identical implementations -dotnet_diagnostic.S4144.severity = warning - -# S107: Methods should not have too many parameters -dotnet_diagnostic.S107.severity = warning - -# S3241: Methods should not return values that are never used -dotnet_diagnostic.S3241.severity = warning - -# S2386: Mutable fields should not be "public static" -dotnet_diagnostic.S2386.severity = warning - -# S108: Nested blocks of code should not be left empty -dotnet_diagnostic.S108.severity = warning - -# S2223: Non-constant static fields should not be visible -dotnet_diagnostic.S2223.severity = warning - -# S3260: Non-derived "private" classes and records should be "sealed" -dotnet_diagnostic.S3260.severity = warning - -# S927: Parameter names should match base declaration and other partial definitions -dotnet_diagnostic.S927.severity = warning - -# S3928: Parameter names used into ArgumentException constructors should match an existing one -dotnet_diagnostic.S3928.severity = warning - -# S4457: Parameter validation in "async"/"await" methods should be wrapped -dotnet_diagnostic.S4457.severity = warning - -# S4456: Parameter validation in yielding methods should be wrapped -dotnet_diagnostic.S4456.severity = warning - -# S1450: Private fields only used as local variables in methods should become local variables -dotnet_diagnostic.S1450.severity = warning - -# S2365: Properties should not make collection or array copies -dotnet_diagnostic.S2365.severity = warning - -# S2368: Public methods should not have multidimensional array parameters -dotnet_diagnostic.S2368.severity = warning - -# S3011: Reflection should not be used to increase accessibility of classes, methods, or fields -dotnet_diagnostic.S3011.severity = warning - -# S2219: Runtime type checking should be simplified -dotnet_diagnostic.S2219.severity = warning - -# S125: Sections of code should not be commented out -dotnet_diagnostic.S125.severity = warning - -# S2178: Short-circuit logic should be used in boolean contexts -dotnet_diagnostic.S2178.severity = warning - -# S2743: Static fields should not be used in generic types -dotnet_diagnostic.S2743.severity = warning - -# S1643: Strings should not be concatenated using '+' in a loop -dotnet_diagnostic.S1643.severity = warning - -# S3358: Ternary operators should not be nested -dotnet_diagnostic.S3358.severity = warning - -# S3433: Test method signatures should be correct -dotnet_diagnostic.S3433.severity = warning - -# S2187: TestCases should contain tests -dotnet_diagnostic.S2187.severity = warning - -# S2699: Tests should include assertions -dotnet_diagnostic.S2699.severity = warning - -# S1607: Tests should not be ignored -dotnet_diagnostic.S1607.severity = warning - -# S2292: Trivial properties should be auto-implemented -dotnet_diagnostic.S2292.severity = warning - -# S2436: Types and methods should not have too many generic parameters -dotnet_diagnostic.S2436.severity = warning - -# S101: Types should be named in PascalCase -dotnet_diagnostic.S101.severity = warning - -# S4487: Unread "private" fields should be removed -dotnet_diagnostic.S4487.severity = warning - -# S1854: Unused assignments should be removed -dotnet_diagnostic.S1854.severity = warning - -# S1481: Unused local variables should be removed -dotnet_diagnostic.S1481.severity = warning - -# S1172: Unused method parameters should be removed -dotnet_diagnostic.S1172.severity = warning - -# S1144: Unused private types or members should be removed -dotnet_diagnostic.S1144.severity = warning - -# S2326: Unused type parameters should be removed -dotnet_diagnostic.S2326.severity = warning - -# S1075: URIs should not be hardcoded -dotnet_diagnostic.S1075.severity = warning - -# S1118: Utility classes should not have public constructors -dotnet_diagnostic.S1118.severity = warning - -# S2376: Write-only properties should not be used -dotnet_diagnostic.S2376.severity = warning - -# S1125: Boolean literals should not be redundant -dotnet_diagnostic.S1125.severity = warning - - -# ===== Inactive SonarLint rules (must be explicitly turned off) ===== - -# [Category: Bug] (All these are excluded because they're not applicable to our solution) -# S4428: "PartCreationPolicyAttribute" should be used with "ExportAttribute" -dotnet_diagnostic.S4428.severity = none - -# S4260: "ConstructorArgument" parameters should exist in constructors -dotnet_diagnostic.S4260.severity = none - -# S4277: "Shared" parts should not be created with "new" -dotnet_diagnostic.S4277.severity = none - -# S4159: Classes should implement their "ExportAttribute" interfaces -dotnet_diagnostic.S4159.severity = none - -# S4210: Windows Forms entry points should be marked with STAThread -dotnet_diagnostic.S4210.severity = none - - -# [Uncategorized] -# S6287: HTTP responses should not be vulnerable to session fixation -dotnet_diagnostic.S6287.severity = none - -# S6096: Extracting archives should not lead to zip slip vulnerabilities -dotnet_diagnostic.S6096.severity = none - -# S5334: Dynamic code execution should not be vulnerable to injection attacks -dotnet_diagnostic.S5334.severity = none - -# S5146: HTTP request redirections should not be open to forging attacks -dotnet_diagnostic.S5146.severity = none - -# S5135: Deserialization should not be vulnerable to injection attacks -dotnet_diagnostic.S5135.severity = none - -# S5131: Endpoints should not be vulnerable to reflected cross-site scripting (XSS) attacks -dotnet_diagnostic.S5131.severity = none - -# S3649: Database queries should not be vulnerable to injection attacks -dotnet_diagnostic.S3649.severity = none - -# S2091: XPath expressions should not be vulnerable to injection attacks -dotnet_diagnostic.S2091.severity = none - -# S2083: I/O function calls should not be vulnerable to path injection attacks -dotnet_diagnostic.S2083.severity = none - -# S2078: LDAP queries should not be vulnerable to injection attacks -dotnet_diagnostic.S2078.severity = none - -# S2076: OS commands should not be vulnerable to command injection attacks -dotnet_diagnostic.S2076.severity = none - -# S6424: Azure Functions: Restrictions on entity interfaces -dotnet_diagnostic.S6424.severity = none - -# S6422: Calls to "async" methods should not be blocking in Azure Functions -dotnet_diagnostic.S6422.severity = none - -# S2631: Regular expressions should not be vulnerable to Denial of Service attacks -dotnet_diagnostic.S2631.severity = none - -# S2222: Locks should be released -dotnet_diagnostic.S2222.severity = none - -# S5144: Server-side requests should not be vulnerable to forging attacks -dotnet_diagnostic.S5144.severity = none - -# S6350: Constructing arguments of system commands from user input is security-sensitive -dotnet_diagnostic.S6350.severity = none - -# S6420: Reuse client instances rather than creating new ones with each Azure Function invocation -dotnet_diagnostic.S6420.severity = none - -# S6419: Azure Functions should be stateless -dotnet_diagnostic.S6419.severity = none - -# S5883: OS commands should not be vulnerable to argument injection attacks -dotnet_diagnostic.S5883.severity = none - -# S5145: Logging should not be vulnerable to injection attacks -dotnet_diagnostic.S5145.severity = none - -# S2931: Classes with "IDisposable" members should implement "IDisposable" -dotnet_diagnostic.S2931.severity = none - -# S4462: Calls to "async" methods should not be blocking -dotnet_diagnostic.S4462.severity = none - -# S2387: Child class fields should not shadow parent class fields -dotnet_diagnostic.S2387.severity = none - -# S1451: Track lack of copyright and license headers -dotnet_diagnostic.S1451.severity = none - -# S1147: Exit methods should not be called -dotnet_diagnostic.S1147.severity = none - -# S2952: Classes should "Dispose" of members from the classes' own "Dispose" methods -dotnet_diagnostic.S2952.severity = none - -# S4829: Reading the Standard Input is security-sensitive -dotnet_diagnostic.S4829.severity = none - -# S4823: Using command line arguments is security-sensitive -dotnet_diagnostic.S4823.severity = none - -# S4818: Using Sockets is security-sensitive -dotnet_diagnostic.S4818.severity = none - -# S4787: Encrypting data is security-sensitive -dotnet_diagnostic.S4787.severity = none - -# S4784: Using regular expressions is security-sensitive -dotnet_diagnostic.S4784.severity = none - -# S4039: Interface methods should be callable by derived types -dotnet_diagnostic.S4039.severity = none - -# S4025: Child class fields should not differ from parent class fields only by capitalization -dotnet_diagnostic.S4025.severity = none - -# S4000: Pointers to unmanaged memory should not be visible -dotnet_diagnostic.S4000.severity = none - -# S3937: Number patterns should be regular -dotnet_diagnostic.S3937.severity = none - -# S3874: "out" and "ref" parameters should not be used -dotnet_diagnostic.S3874.severity = none - -# S3353: Unchanged local variables should be "const" -dotnet_diagnostic.S3353.severity = none - -# S3216: "ConfigureAwait(false)" should be used -dotnet_diagnostic.S3216.severity = none - -# S3215: "interface" instances should not be cast to concrete types -dotnet_diagnostic.S3215.severity = none - -# S2701: Literal boolean values should not be used in assertions -dotnet_diagnostic.S2701.severity = none - -# S2360: Optional parameters should not be used -dotnet_diagnostic.S2360.severity = none - -# S2339: Public constant members should not be used -dotnet_diagnostic.S2339.severity = none - -# S2330: Array covariance should not be used -dotnet_diagnostic.S2330.severity = none - -# S2302: "nameof" should be used -dotnet_diagnostic.S2302.severity = none - -# S2197: Modulus results should not be checked for direct equality -dotnet_diagnostic.S2197.severity = none - -# S1994: "for" loop increment clauses should modify the loops' counters -dotnet_diagnostic.S1994.severity = none - -# S1821: "switch" statements should not be nested -dotnet_diagnostic.S1821.severity = none - -# S1541: Methods and properties should not be too complex -dotnet_diagnostic.S1541.severity = none - -# S134: Control flow statements "if", "switch", "for", "foreach", "while", "do" and "try" should not be nested too deeply -dotnet_diagnostic.S134.severity = none - -# S131: "switch/Select" statements should contain a "default/Case Else" clauses -dotnet_diagnostic.S131.severity = none - -# S126: "if ... else if" constructs should end with "else" clauses -dotnet_diagnostic.S126.severity = none - -# S121: Control structures should use curly braces -dotnet_diagnostic.S121.severity = none - -# S1067: Expressions should not be too complex -dotnet_diagnostic.S1067.severity = none - -# S4564: ASP.NET HTTP request validation feature should not be disabled -dotnet_diagnostic.S4564.severity = none - -# S4212: Serialization constructors should be secured -dotnet_diagnostic.S4212.severity = none - -# S3949: Calculations should not overflow -dotnet_diagnostic.S3949.severity = none - -# S1244: Floating point numbers should not be tested for equality -dotnet_diagnostic.S1244.severity = none - -# S881: Increment (++) and decrement (--) operators should not be used in a method call or mixed with other operators in an expression -dotnet_diagnostic.S881.severity = none - -# S6423: Azure Functions should log all failures -dotnet_diagnostic.S6423.severity = none - -# S6421: Azure Functions should use Structured Error Handling -dotnet_diagnostic.S6421.severity = none - -# S6354: Use a testable date/time provider -dotnet_diagnostic.S6354.severity = none - -# S4059: Property names should not match get methods -dotnet_diagnostic.S4059.severity = none - -# S4057: Locales should be set for data types -dotnet_diagnostic.S4057.severity = none - -# S4055: Literals should not be passed as localized parameters -dotnet_diagnostic.S4055.severity = none - -# S4050: Operators should be overloaded consistently -dotnet_diagnostic.S4050.severity = none - -# S4017: Method signatures should not contain nested generic types -dotnet_diagnostic.S4017.severity = none - -# S4016: Enumeration members should not be named "Reserved" -dotnet_diagnostic.S4016.severity = none - -# S4005: "System.Uri" arguments should be used instead of strings -dotnet_diagnostic.S4005.severity = none - -# S4004: Collection properties should be readonly -dotnet_diagnostic.S4004.severity = none - -# S4002: Disposable types should declare finalizers -dotnet_diagnostic.S4002.severity = none - -# S3997: String URI overloads should call "System.Uri" overloads -dotnet_diagnostic.S3997.severity = none - -# S3996: URI properties should not be strings -dotnet_diagnostic.S3996.severity = none - -# S3995: URI return values should not be strings -dotnet_diagnostic.S3995.severity = none - -# S3994: URI Parameters should not be strings -dotnet_diagnostic.S3994.severity = none - -# S3993: Custom attributes should be marked with "System.AttributeUsageAttribute" -dotnet_diagnostic.S3993.severity = none - -# S3992: Assemblies should explicitly specify COM visibility -dotnet_diagnostic.S3992.severity = none - -# S3990: Assemblies should be marked as CLS compliant -dotnet_diagnostic.S3990.severity = none - -# S3956: "Generic.List" instances should not be part of public APIs -dotnet_diagnostic.S3956.severity = none - -# S3909: Collections should implement the generic interface -dotnet_diagnostic.S3909.severity = none - -# S3908: Generic event handlers should be used -dotnet_diagnostic.S3908.severity = none - -# S3906: Event Handlers should have the correct signature -dotnet_diagnostic.S3906.severity = none - -# S3902: "Assembly.GetExecutingAssembly" should not be called -dotnet_diagnostic.S3902.severity = none - -# S3900: Arguments of public methods should be validated against null -dotnet_diagnostic.S3900.severity = none - -# S3898: Value types should implement "IEquatable" -dotnet_diagnostic.S3898.severity = none - -# S3880: Finalizers should not be empty -dotnet_diagnostic.S3880.severity = none - -# S3431: "[ExpectedException]" should not be used -dotnet_diagnostic.S3431.severity = none - -# S3366: "this" should not be exposed from constructors -dotnet_diagnostic.S3366.severity = none - -# S3059: Types should not have members with visibility set higher than the type's visibility -dotnet_diagnostic.S3059.severity = none - -# S2357: Fields should be private -dotnet_diagnostic.S2357.severity = none - -# S2327: "try" statements with identical "catch" and/or "finally" blocks should be merged -dotnet_diagnostic.S2327.severity = none - -# S1696: NullReferenceException should not be caught -dotnet_diagnostic.S1696.severity = none - -# S138: Functions should not have too many lines of code -dotnet_diagnostic.S138.severity = none - -# S127: "for" loop stop conditions should be invariant -dotnet_diagnostic.S127.severity = none - -# S122: Statements should be on separate lines -dotnet_diagnostic.S122.severity = none - -# S1200: Classes should not be coupled to too many other classes (Single Responsibility Principle) -dotnet_diagnostic.S1200.severity = none - -# S1151: "switch case" clauses should not have too many lines of code -dotnet_diagnostic.S1151.severity = none - -# S109: Magic numbers should not be used -dotnet_diagnostic.S109.severity = none - -# S106: Standard outputs should not be used directly to log anything -dotnet_diagnostic.S106.severity = none - -# S104: Files should not have too many lines of code -dotnet_diagnostic.S104.severity = none - -# S103: Lines should not be too long -dotnet_diagnostic.S103.severity = none - -# S5167: HTTP response headers should not be vulnerable to injection attacks -dotnet_diagnostic.S5167.severity = none - -# S2228: Console logging should not be used -dotnet_diagnostic.S2228.severity = none - -# S2955: Generic parameters not constrained to reference types should not be compared to "null" -dotnet_diagnostic.S2955.severity = none - -# S2674: The length returned from a stream read should be checked -dotnet_diagnostic.S2674.severity = none - -# S1226: Method parameters, caught exceptions and foreach variables' initial values should not be ignored -dotnet_diagnostic.S1226.severity = none - -# S4834: Controlling permissions is security-sensitive -dotnet_diagnostic.S4834.severity = none - -# S2255: Writing cookies is security-sensitive -dotnet_diagnostic.S2255.severity = none - -# S4261: Methods should be named according to their synchronicities -dotnet_diagnostic.S4261.severity = none - -# S4226: Extensions should be in separate namespaces -dotnet_diagnostic.S4226.severity = none - -# S4225: Extension methods should not extend "object" -dotnet_diagnostic.S4225.severity = none - -# S4069: Operator overloads should have named alternatives -dotnet_diagnostic.S4069.severity = none - -# S4060: Non-abstract attributes should be sealed -dotnet_diagnostic.S4060.severity = none - -# S4058: Overloads with a "StringComparison" parameter should be used -dotnet_diagnostic.S4058.severity = none - -# S4056: Overloads with a "CultureInfo" or an "IFormatProvider" parameter should be used -dotnet_diagnostic.S4056.severity = none - -# S4052: Types should not extend outdated base types -dotnet_diagnostic.S4052.severity = none - -# S4049: Properties should be preferred -dotnet_diagnostic.S4049.severity = none - -# S4047: Generics should be used when appropriate -dotnet_diagnostic.S4047.severity = none - -# S4041: Type names should not match namespaces -dotnet_diagnostic.S4041.severity = none - -# S4040: Strings should be normalized to uppercase -dotnet_diagnostic.S4040.severity = none - -# S4027: Exceptions should provide standard constructors -dotnet_diagnostic.S4027.severity = none - -# S4026: Assemblies should be marked with "NeutralResourcesLanguageAttribute" -dotnet_diagnostic.S4026.severity = none - -# S4023: Interfaces should not be empty -dotnet_diagnostic.S4023.severity = none - -# S4022: Enumerations should have "Int32" storage -dotnet_diagnostic.S4022.severity = none - -# S4018: Generic methods should provide type parameters -dotnet_diagnostic.S4018.severity = none - -# S3967: Multidimensional arrays should not be used -dotnet_diagnostic.S3967.severity = none - -# S3962: "static readonly" constants should be "const" instead -dotnet_diagnostic.S3962.severity = none - -# S3876: Strings or integral types should be used for indexers -dotnet_diagnostic.S3876.severity = none - -# S3872: Parameter names should not duplicate the names of their methods -dotnet_diagnostic.S3872.severity = none - -# S3717: Track use of "NotImplementedException" -dotnet_diagnostic.S3717.severity = none - -# S3532: Empty "default" clauses should be removed -dotnet_diagnostic.S3532.severity = none - -# S3441: Redundant property names should be omitted in anonymous classes -dotnet_diagnostic.S3441.severity = none - -# S3257: Declarations and initializations should be as concise as possible -dotnet_diagnostic.S3257.severity = none - -# S3254: Default parameter values should not be passed as arguments -dotnet_diagnostic.S3254.severity = none - -# S3253: Constructor and destructor declarations should not be redundant -dotnet_diagnostic.S3253.severity = none - -# S3242: Method parameters should be declared with base types -dotnet_diagnostic.S3242.severity = none - -# S3240: The simplest possible condition syntax should be used -dotnet_diagnostic.S3240.severity = none - -# S3235: Redundant parentheses should not be used -dotnet_diagnostic.S3235.severity = none - -# S3234: "GC.SuppressFinalize" should not be invoked for types without destructors -dotnet_diagnostic.S3234.severity = none - -# S3052: Members should not be initialized to default values -dotnet_diagnostic.S3052.severity = none - -# S2760: Sequential tests should not check the same condition -dotnet_diagnostic.S2760.severity = none - -# S2333: Redundant modifiers should not be used -dotnet_diagnostic.S2333.severity = none - -# S2325: Methods and properties that don't access instance data should be static -dotnet_diagnostic.S2325.severity = none - -# S2221: "Exception" should not be caught when not required by called methods -dotnet_diagnostic.S2221.severity = none - -# S2156: "sealed" classes should not have "protected" members -dotnet_diagnostic.S2156.severity = none - -# S2148: Underscores should be used to make large numbers readable -dotnet_diagnostic.S2148.severity = none - -# S1858: "ToString()" calls should not be redundant -dotnet_diagnostic.S1858.severity = none - -# S1698: "=" should not be used when "Equals" is overridden -dotnet_diagnostic.S1698.severity = none - -# S1694: An abstract class should have both abstract and concrete methods -dotnet_diagnostic.S1694.severity = none - -# S1659: Multiple variables should not be declared on the same line -dotnet_diagnostic.S1659.severity = none - -# S1449: Culture should be specified for "string" operations -dotnet_diagnostic.S1449.severity = none - -# S1301: "switch" statements should have at least 3 "case" clauses -dotnet_diagnostic.S1301.severity = none - -# S1227: break statements should not be used except for switch cases -dotnet_diagnostic.S1227.severity = none - -# S1192: String literals should not be duplicated -dotnet_diagnostic.S1192.severity = none - -# S113: Files should contain an empty newline at the end -dotnet_diagnostic.S113.severity = none - -# S1128: Unused "using" should be removed -dotnet_diagnostic.S1128.severity = none - -# S1109: A close curly brace should be located at the beginning of a line -dotnet_diagnostic.S1109.severity = none - -# S105: Tabulation characters should not be used -dotnet_diagnostic.S105.severity = none - -# S100: Methods and properties should be named in PascalCase -dotnet_diagnostic.S100.severity = none - -# S1309: Track uses of in-source issue suppressions -dotnet_diagnostic.S1309.severity = none \ No newline at end of file diff --git a/src/packages.lock.json b/src/packages.lock.json new file mode 100644 index 0000000..5ecc2d6 --- /dev/null +++ b/src/packages.lock.json @@ -0,0 +1,914 @@ +{ + "version": 2, + "dependencies": { + "net6.0": { + "Kentico.Xperience.Admin": { + "type": "Direct", + "requested": "[29.1.0, )", + "resolved": "29.1.0", + "contentHash": "SwaFa3lgOMPYKYj6AVz6jQK6OgpzvUSE0HRk2D4Q4xwJx5PH0aRNVfraZi++pBl6smJalY0+aIubQVCFs0QU9g==", + "dependencies": { + "Kentico.Aira.Client": "1.0.25", + "Kentico.Xperience.WebApp": "[29.1.0]", + "Microsoft.AspNetCore.SpaServices.Extensions": "6.0.29", + "Microsoft.Extensions.FileProviders.Embedded": "6.0.29" + } + }, + "Kentico.Xperience.WebApp": { + "type": "Direct", + "requested": "[29.1.0, )", + "resolved": "29.1.0", + "contentHash": "VlD9m+k/lv4fYSTXXIhybs/n8fI/7GGAIKycdgHaWIxGsNDAmrbpRZ5MKG2K/+xF+aHAH/w8qOq1XnJAdEpklQ==", + "dependencies": { + "CommandLineParser": "2.9.1", + "HotChocolate.AspNetCore": "13.9.4", + "HotChocolate.Data": "13.9.4", + "HtmlSanitizer": "8.0.865", + "Kentico.Xperience.Core": "[29.1.0]", + "Microsoft.Extensions.Caching.Memory": "6.0.1", + "Microsoft.Extensions.FileProviders.Embedded": "6.0.29", + "Microsoft.Extensions.Localization": "6.0.29" + } + }, + "SonarAnalyzer.CSharp": { + "type": "Direct", + "requested": "[9.6.0.74858, )", + "resolved": "9.6.0.74858", + "contentHash": "tBwiOBYcoSyHVUejjz6iH3VOpSFx7gJSuQ3695BQaoqQBcqy0IeRsKAk5FAR4fbm3QLyEM9bimKk1l038TFN2w==" + }, + "AngleSharp": { + "type": "Transitive", + "resolved": "0.17.1", + "contentHash": "5MPI4bbixlwxb0W/smOMeIR+QlxMy5/5jD+WnIAw4pBC+7AhLPe5bS3cLgQMJyvd6q0A48sG+uYOt/ep406GLA==", + "dependencies": { + "System.Buffers": "4.5.1", + "System.Text.Encoding.CodePages": "6.0.0" + } + }, + "AngleSharp.Css": { + "type": "Transitive", + "resolved": "0.17.0", + "contentHash": "bg0AcugmX6BFEi/DHG61QrwRU8iuiX4H8LZehdIzYdqOM/dgb3BsCTzNIcc1XADn4+xfQEdVwJYTSwUxroL4vg==", + "dependencies": { + "AngleSharp": "[0.17.0, 0.18.0)" + } + }, + "Azure.Core": { + "type": "Transitive", + "resolved": "1.35.0", + "contentHash": "hENcx03Jyuqv05F4RBEPbxz29UrM3Nbhnr6Wl6NQpoU9BCIbL3XLentrxDCTrH54NLS11Exxi/o8MYgT/cnKFA==", + "dependencies": { + "Microsoft.Bcl.AsyncInterfaces": "1.1.1", + "System.Diagnostics.DiagnosticSource": "6.0.1", + "System.Memory.Data": "1.0.2", + "System.Numerics.Vectors": "4.5.0", + "System.Text.Encodings.Web": "4.7.2", + "System.Text.Json": "4.7.2", + "System.Threading.Tasks.Extensions": "4.5.4" + } + }, + "Azure.Identity": { + "type": "Transitive", + "resolved": "1.10.3", + "contentHash": "l1Xm2MWOF2Mzcwuarlw8kWQXLZk3UeB55aQXVyjj23aBfDwOZ3gu5GP2kJ6KlmZeZv2TCzw7x4L3V36iNr3gww==", + "dependencies": { + "Azure.Core": "1.35.0", + "Microsoft.Identity.Client": "4.56.0", + "Microsoft.Identity.Client.Extensions.Msal": "4.56.0", + "System.Memory": "4.5.4", + "System.Security.Cryptography.ProtectedData": "4.7.0", + "System.Text.Json": "4.7.2", + "System.Threading.Tasks.Extensions": "4.5.4" + } + }, + "BananaCakePop.Middleware": { + "type": "Transitive", + "resolved": "16.0.1", + "contentHash": "i/LDG7Lw2ln1WM7GaMyNDWHExtN15/O/xgcX8lhBK6FZFPBnlq6FJW4GuS3vs0UpLB1TvX2tcOenMlXjcMZq0g==", + "dependencies": { + "Yarp.ReverseProxy": "2.1.0" + } + }, + "BouncyCastle.Cryptography": { + "type": "Transitive", + "resolved": "2.3.0", + "contentHash": "IaVIiYxZLaBulveGDRUx/pBoW/Rc8QeXGF5u2E8xL8RWhVKCgfmtX9NUyGRbnSqnbFQU2zyP3MkXIdH+jUuQBw==" + }, + "CommandLineParser": { + "type": "Transitive", + "resolved": "2.9.1", + "contentHash": "OE0sl1/sQ37bjVsPKKtwQlWDgqaxWgtme3xZz7JssWUzg5JpMIyHgCTY9MVMxOg48fJ1AgGT3tgdH5m/kQ5xhA==" + }, + "GreenDonut": { + "type": "Transitive", + "resolved": "13.9.4", + "contentHash": "jkD4OWSR2CmdfyrO55/m/s2onSaAar/XpCMYQGo1y+qjcaEq93cgc8HL/i8hRdV4mVgfpW60DELREYZrBaiZSw==", + "dependencies": { + "Microsoft.Extensions.ObjectPool": "6.0.0", + "System.Diagnostics.DiagnosticSource": "6.0.0", + "System.Threading.Tasks.Extensions": "4.5.0" + } + }, + "HotChocolate": { + "type": "Transitive", + "resolved": "13.9.4", + "contentHash": "4tXT2Y6U3p1h1egdS3K2qu2re0QmxJH+2thYhKfDDXZaErfod6H1NVHZIBOTw4nFdgzpL8FiFUQuvzekEsNYmA==", + "dependencies": { + "HotChocolate.Authorization": "13.9.4", + "HotChocolate.Execution": "13.9.4", + "HotChocolate.Fetching": "13.9.4", + "HotChocolate.Types": "13.9.4", + "HotChocolate.Types.CursorPagination": "13.9.4", + "HotChocolate.Types.Mutations": "13.9.4", + "HotChocolate.Types.OffsetPagination": "13.9.4", + "HotChocolate.Validation": "13.9.4" + } + }, + "HotChocolate.Abstractions": { + "type": "Transitive", + "resolved": "13.9.4", + "contentHash": "82LweGM6vtF4Wc8NmbnNwZE8PeDOWHuY9oIR8zdi/O9XayaAFy2B5bIE5QFszlqTlaiRLW9y8NpCXQkAe0mVHQ==", + "dependencies": { + "HotChocolate.Language": "13.9.4", + "Microsoft.Bcl.AsyncInterfaces": "6.0.0", + "System.Collections.Immutable": "6.0.0" + } + }, + "HotChocolate.AspNetCore": { + "type": "Transitive", + "resolved": "13.9.4", + "contentHash": "kW32o45UlqThLmS8rsukZjKUX2g3zNM8LhQmcS2AnFdCcCg4zWFhlR1UW1BEBv6QLsldaxJVEw5kuvwuLXSIGw==", + "dependencies": { + "BananaCakePop.Middleware": "16.0.1", + "HotChocolate": "13.9.4", + "HotChocolate.Subscriptions.InMemory": "13.9.4", + "HotChocolate.Transport.Sockets": "13.9.4", + "HotChocolate.Types.Scalars.Upload": "13.9.4", + "HotChocolate.Utilities.DependencyInjection": "13.9.4" + } + }, + "HotChocolate.Authorization": { + "type": "Transitive", + "resolved": "13.9.4", + "contentHash": "sU8nUTOHYwEAaZCnneMCzJs/rG+OtBme1cy+DaT3qxq9Oe6kD/kF1q1jRJjSa1juG/anOcmlu9haZZT0hotZ+g==", + "dependencies": { + "HotChocolate.Execution": "13.9.4" + } + }, + "HotChocolate.Data": { + "type": "Transitive", + "resolved": "13.9.4", + "contentHash": "G2Y6FIkkrUEjmL7ECFrgYf+gU/YRj+i27kyl+JPZxweaN01aiDBhFTTjQhqG+Q59gVZ9V/AMeV4zOLNC2aJpAg==", + "dependencies": { + "HotChocolate.Execution": "13.9.4", + "HotChocolate.Types.CursorPagination": "13.9.4" + } + }, + "HotChocolate.Execution": { + "type": "Transitive", + "resolved": "13.9.4", + "contentHash": "0CsRwTnG3T6nCpgXK/LI2/yn1vvHPIVDZ/NiRz01JCb4tBzsh6v1yGgT8siRhPaoBHlfryUiTbc/Rv1pp9drvw==", + "dependencies": { + "HotChocolate.Abstractions": "13.9.4", + "HotChocolate.Execution.Abstractions": "13.9.4", + "HotChocolate.Fetching": "13.9.4", + "HotChocolate.Types": "13.9.4", + "HotChocolate.Utilities.DependencyInjection": "13.9.4", + "HotChocolate.Validation": "13.9.4", + "Microsoft.Extensions.DependencyInjection": "6.0.0", + "System.Threading.Channels": "6.0.0" + } + }, + "HotChocolate.Execution.Abstractions": { + "type": "Transitive", + "resolved": "13.9.4", + "contentHash": "hEIfNnbcsUtjXQSn37IL6LbN+iKUNcBt+4+hdb5EY2NUEmvZDwawsuNXzX/9UeE138xB/zdTkJu6p10cP6oHGQ==", + "dependencies": { + "HotChocolate.Abstractions": "13.9.4", + "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0" + } + }, + "HotChocolate.Fetching": { + "type": "Transitive", + "resolved": "13.9.4", + "contentHash": "3eh6WCocFbJ1Dtcg1oHmpNKcytwI/ZANQUv3mpsRtTT13wE7yXbzPXrZlBcWPFYv0NeJQ2v0kk4wAmRdYxyaYg==", + "dependencies": { + "GreenDonut": "13.9.4", + "HotChocolate.Types": "13.9.4" + } + }, + "HotChocolate.Language": { + "type": "Transitive", + "resolved": "13.9.4", + "contentHash": "ez1eHzpSz7+Fn+aqG62h6kKaOfktmMwUjaT9M5NWS5LqC81n/8HG4lr8UmbGywbEU9optCWo5GfICNpQItAHaw==", + "dependencies": { + "HotChocolate.Language.SyntaxTree": "13.9.4", + "HotChocolate.Language.Utf8": "13.9.4", + "HotChocolate.Language.Visitors": "13.9.4", + "HotChocolate.Language.Web": "13.9.4" + } + }, + "HotChocolate.Language.SyntaxTree": { + "type": "Transitive", + "resolved": "13.9.4", + "contentHash": "mPfX23AflbB8nhvC3hAYn93r940UHwRmhZ5jXQ3yTHZOYZhlgJypa+4I5KF/CnTFrB36tWmA3LgXnN3pJ/VMvA==", + "dependencies": { + "Microsoft.Extensions.ObjectPool": "6.0.0" + } + }, + "HotChocolate.Language.Utf8": { + "type": "Transitive", + "resolved": "13.9.4", + "contentHash": "+4GYr3eFPY3b2OZjByHKyOKlpY+bUGnwk0S39RW3z4KRRgv5NkYjPdI+O2iaVbIWBoJXBnb7QlEQWIj64FbbqA==", + "dependencies": { + "HotChocolate.Language.SyntaxTree": "13.9.4" + } + }, + "HotChocolate.Language.Visitors": { + "type": "Transitive", + "resolved": "13.9.4", + "contentHash": "yJjnKtNw1gnze50n0vrsod+dS1AK8iGIgEbm9aKvIyLIaSVSQnvx5sXhX21JzKEJV7SegnvVbQdf1zhjOwTlEQ==", + "dependencies": { + "HotChocolate.Language.SyntaxTree": "13.9.4" + } + }, + "HotChocolate.Language.Web": { + "type": "Transitive", + "resolved": "13.9.4", + "contentHash": "aa4ybXm9DdTpjcLvT6FfTPBYTz5xvYsg96J8OaVS0LSKeACHNrBRoF5qP5/cD01UXwSgdr19HqAki1H5D6gRtw==", + "dependencies": { + "HotChocolate.Language.Utf8": "13.9.4" + } + }, + "HotChocolate.Subscriptions": { + "type": "Transitive", + "resolved": "13.9.4", + "contentHash": "DRU8lN9sMhqVBAa4p/W47pvclrS+SBSzO9sWYbwDiO6OE/B3SlYSDE+Tqy66YAfcNHqFnx/Cx+rd7Kcc06nllw==", + "dependencies": { + "HotChocolate.Abstractions": "13.9.4", + "HotChocolate.Execution.Abstractions": "13.9.4" + } + }, + "HotChocolate.Subscriptions.InMemory": { + "type": "Transitive", + "resolved": "13.9.4", + "contentHash": "EUOHzVtVbMWQOPjCWGGmYXvIUM4K5rAYbGk6yO+76T+nVefZw/NgVb1lOx9Ii3Eo+cVBwEliPaJte7vm+HSRlA==", + "dependencies": { + "HotChocolate.Execution.Abstractions": "13.9.4", + "HotChocolate.Subscriptions": "13.9.4", + "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0" + } + }, + "HotChocolate.Transport.Sockets": { + "type": "Transitive", + "resolved": "13.9.4", + "contentHash": "tzLIUlpoadoAwDyPNRjtvtx0soe+fLMO//7IE/d49QFj5J/FM6pTzTuvAo7JafsmC+UU5uRGykTKXup9xdtLeA==", + "dependencies": { + "System.IO.Pipelines": "6.0.0" + } + }, + "HotChocolate.Types": { + "type": "Transitive", + "resolved": "13.9.4", + "contentHash": "Q7XywadsAIm1hf1v+YBMOe1fbjQYAtL+NNlPk7hgumUYVz5iSY/9WYwomMZl80id0Q1aP63hzOoEDY90Em6TrQ==", + "dependencies": { + "HotChocolate.Abstractions": "13.9.4", + "HotChocolate.Types.Shared": "13.9.4", + "HotChocolate.Utilities": "13.9.4", + "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", + "Microsoft.Extensions.ObjectPool": "6.0.0", + "System.ComponentModel.Annotations": "5.0.0", + "System.Text.Json": "6.0.7" + } + }, + "HotChocolate.Types.CursorPagination": { + "type": "Transitive", + "resolved": "13.9.4", + "contentHash": "sm7ZghRSWQQrde5aa7VZhi/QhSbuzB7yS4jUd5/CB9AOX3WFKjJ3uitY7crWV9scLxcDgaaiAwglF7wWFvubhw==", + "dependencies": { + "HotChocolate.Execution": "13.9.4", + "HotChocolate.Types": "13.9.4" + } + }, + "HotChocolate.Types.Mutations": { + "type": "Transitive", + "resolved": "13.9.4", + "contentHash": "pndQvOY8CnoefzKQNCNaJ++r1gf4JbvKC3c3lf6jimqEE/UJMlE935JXwZCGxnUSJ6Npb14sVoOWGM6Kl5myEA==", + "dependencies": { + "HotChocolate.Execution": "13.9.4", + "HotChocolate.Types": "13.9.4" + } + }, + "HotChocolate.Types.OffsetPagination": { + "type": "Transitive", + "resolved": "13.9.4", + "contentHash": "J4o/p/HRFNQCsApy1LFlwITVHtGaUlLLhismyi5QRL7CTwC5Lk1or5KlPYufyYgbs9X3BkASlmpr9vGmg+6Ypg==", + "dependencies": { + "HotChocolate.Execution": "13.9.4", + "HotChocolate.Types": "13.9.4" + } + }, + "HotChocolate.Types.Scalars.Upload": { + "type": "Transitive", + "resolved": "13.9.4", + "contentHash": "AAZLF9M6h80uh3BZjhaAbS3kch0+bDmetdki7bdo5HYiYRN2tuTT1+YblhfBzoh7726mROOtYRvk7h4DQBLWHw==", + "dependencies": { + "HotChocolate.Types": "13.9.4" + } + }, + "HotChocolate.Types.Shared": { + "type": "Transitive", + "resolved": "13.9.4", + "contentHash": "GqaSuucguc1OBH6sg52C1RobCvry8Fzm69r2QSzTHzSJVLBXAC0HNthkVl3GpuWW3c221fM+Yh9UiFfKNaeJ3w==", + "dependencies": { + "HotChocolate.Language.SyntaxTree": "13.9.4" + } + }, + "HotChocolate.Utilities": { + "type": "Transitive", + "resolved": "13.9.4", + "contentHash": "g0kRiYho/nxA/QRkBY9n9ZjDqPEby3A33coBvFvkkfXXYRLyFr1P6XE3ZRt3ob35AxbvnWmXYxM3aUZR5u1mfg==" + }, + "HotChocolate.Utilities.DependencyInjection": { + "type": "Transitive", + "resolved": "13.9.4", + "contentHash": "a4SeiruZOBatY4QOksJ8Zlux0vN6s1KW1ydjWPUCcdgANDkDae/+zsbPLNNxiDhkpYovDVQW7gRYkgWoZ8vGKg==", + "dependencies": { + "Microsoft.Extensions.DependencyInjection": "6.0.0" + } + }, + "HotChocolate.Validation": { + "type": "Transitive", + "resolved": "13.9.4", + "contentHash": "G0xU8wTZegjCBeiFdlHAQ8+27e1LVDwucjwmULZq1NdbH8EQJQnvjYOvM4XYaIhdqNi8Kn9AvUT2FM5LcBFhiQ==", + "dependencies": { + "HotChocolate.Types": "13.9.4", + "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", + "Microsoft.Extensions.Options": "6.0.0" + } + }, + "HtmlSanitizer": { + "type": "Transitive", + "resolved": "8.0.865", + "contentHash": "jzgltCjgTMbTLVfeHYU3ocxJrqRDVdkXYYGTOKVBnpQffaRB/4Hr0R6jKxBBH8UudQSgACp8j3lsD46weyeDJg==", + "dependencies": { + "AngleSharp": "[0.17.1]", + "AngleSharp.Css": "[0.17.0]", + "System.Collections.Immutable": "8.0.0" + } + }, + "Kentico.Aira.Client": { + "type": "Transitive", + "resolved": "1.0.25", + "contentHash": "Hu3xxl89ZWWU6iGkpnTCIXE/L3DNU+i/ZUZaRESYP6BJANlThPRFCIkrDwNx+daAsda5B/n5iApFzk5nH6qPOA==", + "dependencies": { + "Microsoft.Extensions.DependencyInjection": "6.0.1", + "Microsoft.Extensions.Http": "6.0.0", + "Microsoft.Extensions.Options": "6.0.0", + "Microsoft.Extensions.Options.ConfigurationExtensions": "6.0.0", + "System.IdentityModel.Tokens.Jwt": "7.3.1" + } + }, + "Kentico.Xperience.Core": { + "type": "Transitive", + "resolved": "29.1.0", + "contentHash": "fjJBjuKVH+Sli0g0fb9+4si3r0+N7OW3ISCesq48FDOceAgU/oFy4Vsskm0dlOFA6jHKWX5E8t/ETaWXLMGZbQ==", + "dependencies": { + "AngleSharp": "0.17.1", + "MailKit": "4.5.0", + "Microsoft.Data.SqlClient": "5.2.0", + "Microsoft.Extensions.Caching.Memory": "6.0.1", + "Microsoft.Extensions.Configuration": "6.0.1", + "Microsoft.Extensions.Configuration.Binder": "6.0.0", + "Microsoft.Extensions.DependencyInjection": "6.0.1", + "Microsoft.Extensions.FileProviders.Physical": "6.0.0", + "Microsoft.Extensions.Hosting.Abstractions": "6.0.0", + "Microsoft.Extensions.Localization": "6.0.29", + "Microsoft.Extensions.Options.ConfigurationExtensions": "6.0.0", + "Mono.Cecil": "0.11.5", + "Newtonsoft.Json": "13.0.3", + "System.CodeDom": "8.0.0" + } + }, + "MailKit": { + "type": "Transitive", + "resolved": "4.5.0", + "contentHash": "EaXHODUdIV5oPdWvBJGazwaEpKt1LI/H/S//EEozANYCsfOSKHntX+Skk2kW616lSQp+fkRTmSjk0CYxEuOyEA==", + "dependencies": { + "MimeKit": "4.5.0" + } + }, + "Microsoft.AspNetCore.SpaServices.Extensions": { + "type": "Transitive", + "resolved": "6.0.29", + "contentHash": "2LeomoSAHbVBEffWwZS4cFLAQsPw2UK4gfNcajssV/cMM5/i61d8LwAdTcGHVmgF5e0zOz/25B06fk3iymD4VA==", + "dependencies": { + "Microsoft.Extensions.FileProviders.Physical": "6.0.0" + } + }, + "Microsoft.Bcl.AsyncInterfaces": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "UcSjPsst+DfAdJGVDsu346FX0ci0ah+lw3WRtn18NUwEqRt70HaOQ7lI72vy3+1LxtqI3T5GWwV39rQSrCzAeg==" + }, + "Microsoft.Bcl.TimeProvider": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "f5Kr5JepAbiGo7uDmhgvMqhntwxqXNn6/IpTBSSI4cuHhgnJGrLxFRhMjVpRkLPp6zJXO0/G0l3j9p9zSJxa+w==", + "dependencies": { + "Microsoft.Bcl.AsyncInterfaces": "6.0.0" + } + }, + "Microsoft.Data.SqlClient": { + "type": "Transitive", + "resolved": "5.2.0", + "contentHash": "3alfyqRN3ELRtdvU1dGtLBRNQqprr3TJ0WrUJfMISPwg1nPUN2P3Lelah68IKWuV27Ceb7ig95hWNHFTSXfxMg==", + "dependencies": { + "Azure.Identity": "1.10.3", + "Microsoft.Data.SqlClient.SNI.runtime": "5.2.0", + "Microsoft.Identity.Client": "4.56.0", + "Microsoft.IdentityModel.JsonWebTokens": "6.35.0", + "Microsoft.IdentityModel.Protocols.OpenIdConnect": "6.35.0", + "Microsoft.SqlServer.Server": "1.0.0", + "System.Configuration.ConfigurationManager": "6.0.1", + "System.Runtime.Caching": "6.0.0" + } + }, + "Microsoft.Data.SqlClient.SNI.runtime": { + "type": "Transitive", + "resolved": "5.2.0", + "contentHash": "po1jhvFd+8pbfvJR/puh+fkHi0GRanAdvayh/0e47yaM6CXWZ6opUjCMFuYlAnD2LcbyvQE7fPJKvogmaUcN+w==" + }, + "Microsoft.Extensions.Caching.Abstractions": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "bcz5sSFJbganH0+YrfvIjJDIcKNW7TL07C4d1eTmXy/wOt52iz4LVogJb6pazs7W0+74j0YpXFErvp++Aq5Bsw==", + "dependencies": { + "Microsoft.Extensions.Primitives": "6.0.0" + } + }, + "Microsoft.Extensions.Caching.Memory": { + "type": "Transitive", + "resolved": "6.0.1", + "contentHash": "B4y+Cev05eMcjf1na0v9gza6GUtahXbtY1JCypIgx3B4Ea/KAgsWyXEmW4q6zMbmTMtKzmPVk09rvFJirvMwTg==", + "dependencies": { + "Microsoft.Extensions.Caching.Abstractions": "6.0.0", + "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", + "Microsoft.Extensions.Logging.Abstractions": "6.0.0", + "Microsoft.Extensions.Options": "6.0.0", + "Microsoft.Extensions.Primitives": "6.0.0" + } + }, + "Microsoft.Extensions.Configuration": { + "type": "Transitive", + "resolved": "6.0.1", + "contentHash": "BUyFU9t+HzlSE7ri4B+AQN2BgTgHv/uM82s5ZkgU1BApyzWzIl48nDsG5wR1t0pniNuuyTBzG3qCW8152/NtSw==", + "dependencies": { + "Microsoft.Extensions.Configuration.Abstractions": "6.0.0", + "Microsoft.Extensions.Primitives": "6.0.0" + } + }, + "Microsoft.Extensions.Configuration.Abstractions": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "qWzV9o+ZRWq+pGm+1dF+R7qTgTYoXvbyowRoBxQJGfqTpqDun2eteerjRQhq5PQ/14S+lqto3Ft4gYaRyl4rdQ==", + "dependencies": { + "Microsoft.Extensions.Primitives": "6.0.0" + } + }, + "Microsoft.Extensions.Configuration.Binder": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "b3ErKzND8LIC7o08QAVlKfaEIYEvLJbtmVbFZVBRXeu9YkKfSSzLZfR1SUfQPBIy9mKLhEtJgGYImkcMNaKE0A==", + "dependencies": { + "Microsoft.Extensions.Configuration.Abstractions": "6.0.0" + } + }, + "Microsoft.Extensions.DependencyInjection": { + "type": "Transitive", + "resolved": "6.0.1", + "contentHash": "vWXPg3HJQIpZkENn1KWq8SfbqVujVD7S7vIAyFXXqK5xkf1Vho+vG0bLBCHxU36lD1cLLtmGpfYf0B3MYFi9tQ==", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } + }, + "Microsoft.Extensions.DependencyInjection.Abstractions": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "xlzi2IYREJH3/m6+lUrQlujzX8wDitm4QGnUu6kUXTQAWPuZY8i+ticFJbzfqaetLA6KR/rO6Ew/HuYD+bxifg==" + }, + "Microsoft.Extensions.FileProviders.Abstractions": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "0pd4/fho0gC12rQswaGQxbU34jOS1TPS8lZPpkFCH68ppQjHNHYle9iRuHeev1LhrJ94YPvzcRd8UmIuFk23Qw==", + "dependencies": { + "Microsoft.Extensions.Primitives": "6.0.0" + } + }, + "Microsoft.Extensions.FileProviders.Embedded": { + "type": "Transitive", + "resolved": "6.0.29", + "contentHash": "ih7lIqCUXsG4+CNNcPs67TBOe3Yd/HMdBBVP3BhvdZkJEUilhvUK69FB7ZPsiZKel08GkOh2qFXqZsWWPa/lPQ==", + "dependencies": { + "Microsoft.Extensions.FileProviders.Abstractions": "6.0.0" + } + }, + "Microsoft.Extensions.FileProviders.Physical": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "QvkL7l0nM8udt3gfyu0Vw8bbCXblxaKOl7c2oBfgGy4LCURRaL9XWZX1FWJrQc43oMokVneVxH38iz+bY1sbhg==", + "dependencies": { + "Microsoft.Extensions.FileProviders.Abstractions": "6.0.0", + "Microsoft.Extensions.FileSystemGlobbing": "6.0.0", + "Microsoft.Extensions.Primitives": "6.0.0" + } + }, + "Microsoft.Extensions.FileSystemGlobbing": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "ip8jnL1aPiaPeKINCqaTEbvBFDmVx9dXQEBZ2HOBRXPD1eabGNqP/bKlsIcp7U2lGxiXd5xIhoFcmY8nM4Hdiw==" + }, + "Microsoft.Extensions.Hosting.Abstractions": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "GcT5l2CYXL6Sa27KCSh0TixsRfADUgth+ojQSD5EkzisZxmGFh7CwzkcYuGwvmXLjr27uWRNrJ2vuuEjMhU05Q==", + "dependencies": { + "Microsoft.Extensions.Configuration.Abstractions": "6.0.0", + "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", + "Microsoft.Extensions.FileProviders.Abstractions": "6.0.0" + } + }, + "Microsoft.Extensions.Http": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "15+pa2G0bAMHbHewaQIdr/y6ag2H3yh4rd9hTXavtWDzQBkvpe2RMqFg8BxDpcQWssmjmBApGPcw93QRz6YcMg==", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", + "Microsoft.Extensions.Logging": "6.0.0", + "Microsoft.Extensions.Logging.Abstractions": "6.0.0", + "Microsoft.Extensions.Options": "6.0.0" + } + }, + "Microsoft.Extensions.Localization": { + "type": "Transitive", + "resolved": "6.0.29", + "contentHash": "cZ5Tx6NtTZFzk+PWW2icApat7agQiMIFIsohsmHmz/scKRfAI/5XTa9lpZMwKowQBZm+ap0RwAJmQ2/5xoL+VQ==", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", + "Microsoft.Extensions.Localization.Abstractions": "6.0.29", + "Microsoft.Extensions.Logging.Abstractions": "6.0.4", + "Microsoft.Extensions.Options": "6.0.0" + } + }, + "Microsoft.Extensions.Localization.Abstractions": { + "type": "Transitive", + "resolved": "6.0.29", + "contentHash": "4HVhh+V/7H2VMgFI8EP1kLgLpeRqm1kQOlXjHk4MHCVD5/pgWOTTbLEz9pdXymQQf/eRg1vNK8tG2MZstBHhlw==" + }, + "Microsoft.Extensions.Logging": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "eIbyj40QDg1NDz0HBW0S5f3wrLVnKWnDJ/JtZ+yJDFnDj90VoPuoPmFkeaXrtu+0cKm5GRAwoDf+dBWXK0TUdg==", + "dependencies": { + "Microsoft.Extensions.DependencyInjection": "6.0.0", + "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", + "Microsoft.Extensions.Logging.Abstractions": "6.0.0", + "Microsoft.Extensions.Options": "6.0.0", + "System.Diagnostics.DiagnosticSource": "6.0.0" + } + }, + "Microsoft.Extensions.Logging.Abstractions": { + "type": "Transitive", + "resolved": "6.0.4", + "contentHash": "K14wYgwOfKVELrUh5eBqlC8Wvo9vvhS3ZhIvcswV2uS/ubkTRPSQsN557EZiYUSSoZNxizG+alN4wjtdyLdcyw==" + }, + "Microsoft.Extensions.ObjectPool": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "7hR9FU0JJHOCLmn/Ary31pLLAhlzoMptBKs5CJmNUzD87dXjl+/NqVkyCTl6cT2JAfTK0G39HpvCOv1fhsX3BQ==" + }, + "Microsoft.Extensions.Options": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "dzXN0+V1AyjOe2xcJ86Qbo233KHuLEY0njf/P2Kw8SfJU+d45HNS2ctJdnEnrWbM9Ye2eFgaC5Mj9otRMU6IsQ==", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", + "Microsoft.Extensions.Primitives": "6.0.0" + } + }, + "Microsoft.Extensions.Options.ConfigurationExtensions": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "bXWINbTn0vC0FYc9GaQTISbxhQLAMrvtbuvD9N6JelEaIS/Pr62wUCinrq5bf1WRBGczt1v4wDhxFtVFNcMdUQ==", + "dependencies": { + "Microsoft.Extensions.Configuration.Abstractions": "6.0.0", + "Microsoft.Extensions.Configuration.Binder": "6.0.0", + "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", + "Microsoft.Extensions.Options": "6.0.0", + "Microsoft.Extensions.Primitives": "6.0.0" + } + }, + "Microsoft.Extensions.Primitives": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "9+PnzmQFfEFNR9J2aDTfJGGupShHjOuGw4VUv+JB044biSHrnmCIMD+mJHmb2H7YryrfBEXDurxQ47gJZdCKNQ==", + "dependencies": { + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } + }, + "Microsoft.Identity.Client": { + "type": "Transitive", + "resolved": "4.56.0", + "contentHash": "rr4zbidvHy9r4NvOAs5hdd964Ao2A0pAeFBJKR95u1CJAVzbd1p6tPTXUZ+5ld0cfThiVSGvz6UHwY6JjraTpA==", + "dependencies": { + "Microsoft.IdentityModel.Abstractions": "6.22.0" + } + }, + "Microsoft.Identity.Client.Extensions.Msal": { + "type": "Transitive", + "resolved": "4.56.0", + "contentHash": "H12YAzEGK55vZ+QpxUzozhW8ZZtgPDuWvgA0JbdIR9UhMUplj29JhIgE2imuH8W2Nw9D8JKygR1uxRFtpSNcrg==", + "dependencies": { + "Microsoft.Identity.Client": "4.56.0", + "System.IO.FileSystem.AccessControl": "5.0.0", + "System.Security.Cryptography.ProtectedData": "4.5.0" + } + }, + "Microsoft.IdentityModel.Abstractions": { + "type": "Transitive", + "resolved": "7.3.1", + "contentHash": "gIw8Sr5ZpuzKFBTfJonh2F54DivTzm5IIK15QB4Y6uE30uQdEO1NnCojTC/b6sWZoZzD0sdBa6SqwMXhucD+nA==" + }, + "Microsoft.IdentityModel.JsonWebTokens": { + "type": "Transitive", + "resolved": "7.3.1", + "contentHash": "mXA6AoaD5uZqtsKghgRiupBhyXNii8p9F2BjNLnDGud0tZLS5+4Fio2YAGjFXhnkc80CqgQ61X5U1gUNnDEoKQ==", + "dependencies": { + "Microsoft.IdentityModel.Tokens": "7.3.1" + } + }, + "Microsoft.IdentityModel.Logging": { + "type": "Transitive", + "resolved": "7.3.1", + "contentHash": "uPt2aiRUCbcOc0Wk+dDCSClFfPNs3S3Z7fmy50MoxJ1mGmtVUDMpyRJeYzZ/16x4rL19T+g2zrzjcWoitp5+gQ==", + "dependencies": { + "Microsoft.IdentityModel.Abstractions": "7.3.1" + } + }, + "Microsoft.IdentityModel.Protocols": { + "type": "Transitive", + "resolved": "6.35.0", + "contentHash": "BPQhlDzdFvv1PzaUxNSk+VEPwezlDEVADIKmyxubw7IiELK18uJ06RQ9QKKkds30XI+gDu9n8j24XQ8w7fjWcg==", + "dependencies": { + "Microsoft.IdentityModel.Logging": "6.35.0", + "Microsoft.IdentityModel.Tokens": "6.35.0" + } + }, + "Microsoft.IdentityModel.Protocols.OpenIdConnect": { + "type": "Transitive", + "resolved": "6.35.0", + "contentHash": "LMtVqnECCCdSmyFoCOxIE5tXQqkOLrvGrL7OxHg41DIm1bpWtaCdGyVcTAfOQpJXvzND9zUKIN/lhngPkYR8vg==", + "dependencies": { + "Microsoft.IdentityModel.Protocols": "6.35.0", + "System.IdentityModel.Tokens.Jwt": "6.35.0" + } + }, + "Microsoft.IdentityModel.Tokens": { + "type": "Transitive", + "resolved": "7.3.1", + "contentHash": "/c/p8/3CAH706c0ii5uTgSb/8M/jwyuurtdMeKTBeKFU9aA+EZrLu1M8aaS3CSlGaxoxsoaxr4/+KXykgQ4VgQ==", + "dependencies": { + "Microsoft.IdentityModel.Logging": "7.3.1" + } + }, + "Microsoft.SqlServer.Server": { + "type": "Transitive", + "resolved": "1.0.0", + "contentHash": "N4KeF3cpcm1PUHym1RmakkzfkEv3GRMyofVv40uXsQhCQeglr2OHNcUk2WOG51AKpGO8ynGpo9M/kFXSzghwug==" + }, + "Microsoft.Win32.SystemEvents": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "hqTM5628jSsQiv+HGpiq3WKBl2c8v1KZfby2J6Pr7pEPlK9waPdgEO6b8A/+/xn/yZ9ulv8HuqK71ONy2tg67A==" + }, + "MimeKit": { + "type": "Transitive", + "resolved": "4.5.0", + "contentHash": "OYn8b8b66J4mgtDzoImepiUtdkJOAVGoTj/ghzJ+az4wVixA5L5Z8GmgFhRvQ1btAIwZh/d9zvZLCALndQdz5w==", + "dependencies": { + "BouncyCastle.Cryptography": "2.3.0", + "System.Security.Cryptography.Pkcs": "8.0.0" + } + }, + "Mono.Cecil": { + "type": "Transitive", + "resolved": "0.11.5", + "contentHash": "fxfX+0JGTZ8YQeu1MYjbBiK2CYTSzDyEeIixt+yqKKTn7FW8rv7JMY70qevup4ZJfD7Kk/VG/jDzQQTpfch87g==" + }, + "Newtonsoft.Json": { + "type": "Transitive", + "resolved": "13.0.3", + "contentHash": "HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ==" + }, + "System.Buffers": { + "type": "Transitive", + "resolved": "4.5.1", + "contentHash": "Rw7ijyl1qqRS0YQD/WycNst8hUUMgrMH4FCn1nNm27M4VxchZ1js3fVjQaANHO5f3sN4isvP4a+Met9Y4YomAg==" + }, + "System.CodeDom": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "WTlRjL6KWIMr/pAaq3rYqh0TJlzpouaQ/W1eelssHgtlwHAH25jXTkUphTYx9HaIIf7XA6qs/0+YhtLEQRkJ+Q==" + }, + "System.Collections.Immutable": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "AurL6Y5BA1WotzlEvVaIDpqzpIPvYnnldxru8oXJU2yFxFUy3+pNXjXd1ymO+RA0rq0+590Q8gaz2l3Sr7fmqg==", + "dependencies": { + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } + }, + "System.ComponentModel.Annotations": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "dMkqfy2el8A8/I76n2Hi1oBFEbG1SfxD2l5nhwXV3XjlnOmwxJlQbYpJH4W51odnU9sARCSAgv7S3CyAFMkpYg==" + }, + "System.Configuration.ConfigurationManager": { + "type": "Transitive", + "resolved": "6.0.1", + "contentHash": "jXw9MlUu/kRfEU0WyTptAVueupqIeE3/rl0EZDMlf8pcvJnitQ8HeVEp69rZdaStXwTV72boi/Bhw8lOeO+U2w==", + "dependencies": { + "System.Security.Cryptography.ProtectedData": "6.0.0", + "System.Security.Permissions": "6.0.0" + } + }, + "System.Diagnostics.DiagnosticSource": { + "type": "Transitive", + "resolved": "6.0.1", + "contentHash": "KiLYDu2k2J82Q9BJpWiuQqCkFjRBWVq4jDzKKWawVi9KWzyD0XG3cmfX0vqTQlL14Wi9EufJrbL0+KCLTbqWiQ==", + "dependencies": { + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } + }, + "System.Drawing.Common": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "NfuoKUiP2nUWwKZN6twGqXioIe1zVD0RIj2t976A+czLHr2nY454RwwXs6JU9Htc6mwqL6Dn/nEL3dpVf2jOhg==", + "dependencies": { + "Microsoft.Win32.SystemEvents": "6.0.0" + } + }, + "System.Formats.Asn1": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "AJukBuLoe3QeAF+mfaRKQb2dgyrvt340iMBHYv+VdBzCUM06IxGlvl0o/uPOS7lHnXPN6u8fFRHSHudx5aTi8w==" + }, + "System.IdentityModel.Tokens.Jwt": { + "type": "Transitive", + "resolved": "7.3.1", + "contentHash": "iE8biOWyAC1NnYcZGcgXErNACvIQ6Gcmg5s28gsjVbyyYdF9NdKsYzAPAsO3KGK86EQjpToI1AO82XbG8chkzA==", + "dependencies": { + "Microsoft.IdentityModel.JsonWebTokens": "7.3.1", + "Microsoft.IdentityModel.Tokens": "7.3.1" + } + }, + "System.IO.FileSystem.AccessControl": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "SxHB3nuNrpptVk+vZ/F+7OHEpoHUIKKMl02bUmYHQr1r+glbZQxs7pRtsf4ENO29TVm2TH3AEeep2fJcy92oYw==", + "dependencies": { + "System.Security.AccessControl": "5.0.0", + "System.Security.Principal.Windows": "5.0.0" + } + }, + "System.IO.Hashing": { + "type": "Transitive", + "resolved": "7.0.0", + "contentHash": "sDnWM0N3AMCa86LrKTWeF3BZLD2sgWyYUc7HL6z4+xyDZNQRwzmxbo4qP2rX2MqC+Sy1/gOSRDah5ltxY5jPxw==" + }, + "System.IO.Pipelines": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "mXX66shZ4xLlI3vNLaJ0lt8OIZdmXTvIqXRdQX5HLVGSkLhINLsVhyZuX2UdRFnOGkqnwmMUs40pIIQ7mna4+A==" + }, + "System.Memory": { + "type": "Transitive", + "resolved": "4.5.4", + "contentHash": "1MbJTHS1lZ4bS4FmsJjnuGJOu88ZzTT2rLvrhW7Ygic+pC0NWA+3hgAen0HRdsocuQXCkUTdFn9yHJJhsijDXw==" + }, + "System.Memory.Data": { + "type": "Transitive", + "resolved": "1.0.2", + "contentHash": "JGkzeqgBsiZwKJZ1IxPNsDFZDhUvuEdX8L8BDC8N3KOj+6zMcNU28CNN59TpZE/VJYy9cP+5M+sbxtWJx3/xtw==", + "dependencies": { + "System.Text.Encodings.Web": "4.7.2", + "System.Text.Json": "4.6.0" + } + }, + "System.Numerics.Vectors": { + "type": "Transitive", + "resolved": "4.5.0", + "contentHash": "QQTlPTl06J/iiDbJCiepZ4H//BVraReU4O4EoRw1U02H5TLUIT7xn3GnDp9AXPSlJUDyFs4uWjWafNX6WrAojQ==" + }, + "System.Runtime.Caching": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "E0e03kUp5X2k+UAoVl6efmI7uU7JRBWi5EIdlQ7cr0NpBGjHG4fWII35PgsBY9T4fJQ8E4QPsL0rKksU9gcL5A==", + "dependencies": { + "System.Configuration.ConfigurationManager": "6.0.0" + } + }, + "System.Runtime.CompilerServices.Unsafe": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==" + }, + "System.Security.AccessControl": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "AUADIc0LIEQe7MzC+I0cl0rAT8RrTAKFHl53yHjEUzNVIaUlhFY11vc2ebiVJzVBuOzun6F7FBA+8KAbGTTedQ==" + }, + "System.Security.Cryptography.Pkcs": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "ULmp3xoOwNYjOYp4JZ2NK/6NdTgiN1GQXzVVN1njQ7LOZ0d0B9vyMnhyqbIi9Qw4JXj1JgCsitkTShboHRx7Eg==", + "dependencies": { + "System.Formats.Asn1": "8.0.0" + } + }, + "System.Security.Cryptography.ProtectedData": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "rp1gMNEZpvx9vP0JW0oHLxlf8oSiQgtno77Y4PLUBjSiDYoD77Y8uXHr1Ea5XG4/pIKhqAdxZ8v8OTUtqo9PeQ==" + }, + "System.Security.Permissions": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "T/uuc7AklkDoxmcJ7LGkyX1CcSviZuLCa4jg3PekfJ7SU0niF0IVTXwUiNVP9DSpzou2PpxJ+eNY2IfDM90ZCg==", + "dependencies": { + "System.Security.AccessControl": "6.0.0", + "System.Windows.Extensions": "6.0.0" + } + }, + "System.Security.Principal.Windows": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" + }, + "System.Text.Encoding.CodePages": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "ZFCILZuOvtKPauZ/j/swhvw68ZRi9ATCfvGbk1QfydmcXBkIWecWKn/250UH7rahZ5OoDBaiAudJtPvLwzw85A==", + "dependencies": { + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } + }, + "System.Text.Encodings.Web": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "Vg8eB5Tawm1IFqj4TVK1czJX89rhFxJo9ELqc/Eiq0eXy13RK00eubyU6TJE6y+GQXjyV5gSfiewDUZjQgSE0w==", + "dependencies": { + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } + }, + "System.Text.Json": { + "type": "Transitive", + "resolved": "6.0.7", + "contentHash": "/Tf/9XjprpHolbcDOrxsKVYy/mUG/FS7aGd9YUgBVEiHeQH4kAE0T1sMbde7q6B5xcrNUsJ5iW7D1RvHudQNqA==", + "dependencies": { + "System.Runtime.CompilerServices.Unsafe": "6.0.0", + "System.Text.Encodings.Web": "6.0.0" + } + }, + "System.Threading.Channels": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "TY8/9+tI0mNaUMgntOxxaq2ndTkdXqLSxvPmas7XEqOlv9lQtB7wLjYGd756lOaO7Dvb5r/WXhluM+0Xe87v5Q==" + }, + "System.Threading.Tasks.Extensions": { + "type": "Transitive", + "resolved": "4.5.4", + "contentHash": "zteT+G8xuGu6mS+mzDzYXbzS7rd3K6Fjb9RiZlYlJPam2/hU7JCBZBVEcywNuR+oZ1ncTvc/cq0faRr3P01OVg==" + }, + "System.Windows.Extensions": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "IXoJOXIqc39AIe+CIR7koBtRGMiCt/LPM3lI+PELtDIy9XdyeSrwXFdWV9dzJ2Awl0paLWUaknLxFQ5HpHZUog==", + "dependencies": { + "System.Drawing.Common": "6.0.0" + } + }, + "Yarp.ReverseProxy": { + "type": "Transitive", + "resolved": "2.1.0", + "contentHash": "VgRuCBxmh5ND4VuFhvIN3AAeoxFhYkS2hNINk6AVCrOVTlpk7OwdrTXi8NHACfqfhDL+/oYCZrF9RxN+yiYnEg==", + "dependencies": { + "Microsoft.Bcl.TimeProvider": "8.0.0", + "System.Collections.Immutable": "8.0.0", + "System.IO.Hashing": "7.0.0" + } + } + } + } +} \ No newline at end of file From b71fae14c8de7e648bbe6bfaad9c4a6b3cbb8e98 Mon Sep 17 00:00:00 2001 From: kentico-ericd Date: Mon, 2 Dec 2024 13:43:39 -0700 Subject: [PATCH 2/2] set version 2.0.0, update README.md, change package name, change component identifiers --- Directory.Build.props | 2 +- README.md | 15 +++++++-------- src/DependingFieldComponentsConstants.cs | 12 ++++++------ ...enceCommunity.DependingFieldComponents.csproj} | 0 4 files changed, 14 insertions(+), 15 deletions(-) rename src/{Xperience.DependingFieldComponents.csproj => XperienceCommunity.DependingFieldComponents.csproj} (100%) diff --git a/Directory.Build.props b/Directory.Build.props index 5cd68cd..607e28f 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -2,7 +2,7 @@ Eric Dugre - 1.1.0 + 2.0.0 A collection of Xperience by Kentico form components whose visibility depend on the value of another field MIT diff --git a/README.md b/README.md index c528e32..a477044 100644 --- a/README.md +++ b/README.md @@ -1,18 +1,17 @@ -[![Nuget](https://img.shields.io/nuget/v/Xperience.DependingFieldComponents)](https://www.nuget.org/packages/Xperience.DependingFieldComponents#versions-body-tab) -[![build](https://github.com/kentico-ericd/xperience-depending-field-components/actions/workflows/build.yml/badge.svg)](https://github.com/kentico-ericd/xperience-depending-field-components/actions/workflows/build.yml) +# Xperience Community: Depending field components -# Xperience by Kentico depending field components +[![Nuget](https://img.shields.io/nuget/v/XperienceCommunity.DependingFieldComponents)](https://www.nuget.org/packages/XperienceCommunity.DependingFieldComponents#versions-body-tab) +[![build](https://github.com/kentico-ericd/xperience-community-depending-field-components/actions/workflows/build.yml/badge.svg)](https://github.com/kentico-ericd/xperience-community-depending-field-components/actions/workflows/build.yml) When editing content, often developers will want to hide a field's input based on the value of another field. For example, if an article _might_ contain a link to an external site, there will be a checkbox called "Has external link." If the checkbox is not checked, the text input for the external link should be hidden. This project adds custom form components to Xperience by Kentico which allows developers to configure depending field functionality directly in the UI or code. These form components can be used in content types and widget properties. -## Compatibility +## Library Version Matrix -The following Xperience by Kentico versions have been tested and are supported by this project: - -- 27.y.z -- 28.y.z +| Xperience Version | Library Version | +| ------------------- | ----------------- | +| >= 29.1.0 | >= 2.0.0 | ## Components diff --git a/src/DependingFieldComponentsConstants.cs b/src/DependingFieldComponentsConstants.cs index a29906c..3e33e0e 100644 --- a/src/DependingFieldComponentsConstants.cs +++ b/src/DependingFieldComponentsConstants.cs @@ -2,22 +2,22 @@ public static class DependingFieldComponentsConstants { - public const string TEXTINPUT_IDENTIFIER = "Xperience.DependingFieldComponents.TextInput"; + public const string TEXTINPUT_IDENTIFIER = "XperienceCommunity.DependingFieldComponents.TextInput"; public const string TEXTINPUT_FIELDDESCRIPTION = "Text input with field dependency"; - public const string NUMBERINPUT_IDENTIFIER = "Xperience.DependingFieldComponents.NumberInput"; + public const string NUMBERINPUT_IDENTIFIER = "XperienceCommunity.DependingFieldComponents.NumberInput"; public const string NUMBERINPUT_FIELDDESCRIPTION = "Number input with field dependency"; - public const string RADIOGROUP_IDENTIFIER = "Xperience.DependingFieldComponents.RadioGroupInput"; + public const string RADIOGROUP_IDENTIFIER = "XperienceCommunity.DependingFieldComponents.RadioGroupInput"; public const string RADIOGROUP_FIELDDESCRIPTION = "Radio button group with field dependency"; - public const string DROPDOWNINPUT_IDENTIFIER = "Xperience.DependingFieldComponents.DropdownInput"; + public const string DROPDOWNINPUT_IDENTIFIER = "XperienceCommunity.DependingFieldComponents.DropdownInput"; public const string DROPDOWNINPUT_FIELDDESCRIPTION = "Dropdown selector with field dependency"; - public const string CHECKBOXINPUT_IDENTIFIER = "Xperience.DependingFieldComponents.CheckboxInput"; + public const string CHECKBOXINPUT_IDENTIFIER = "XperienceCommunity.DependingFieldComponents.CheckboxInput"; public const string CHECKBOXINPUT_FIELDDESCRIPTION = "Checkbox with field dependency"; - public const string DATETIMEINPUT_IDENTIFIER = "Xperience.DependingFieldComponents.DateTimeInput"; + public const string DATETIMEINPUT_IDENTIFIER = "XperienceCommunity.DependingFieldComponents.DateTimeInput"; public const string DATETIMEINPUT_FIELDDESCRIPTION = "Datetime input with field dependency"; public const string PROPERTY_DEPENDSON_LABEL = "Depends on"; diff --git a/src/Xperience.DependingFieldComponents.csproj b/src/XperienceCommunity.DependingFieldComponents.csproj similarity index 100% rename from src/Xperience.DependingFieldComponents.csproj rename to src/XperienceCommunity.DependingFieldComponents.csproj