< Summary

Information
Class: TELBlazor.Components.Components.BaseComponents.TELButtonSubComponent
Assembly: TELBlazor.Components
File(s): /home/runner/work/TELBlazor/TELBlazor/TELBlazor.Components/Components/BaseComponents/TELButtonSubComponent.razor
Line coverage
100%
Covered lines: 12
Uncovered lines: 0
Coverable lines: 12
Total lines: 62
Line coverage: 100%
Branch coverage
100%
Covered branches: 2
Total branches: 2
Branch coverage: 100%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
BuildRenderTree(...)100%22100%
get_AriaDescribedBy()100%11100%
get_ButtonStyle()100%11100%
get_ButtonText()100%11100%
get_DisableButton()100%11100%
get_AdditionalCssClasses()100%11100%
get_PreventDoubleClick()100%11100%
get_AriaRole()100%11100%
get_AriaLabel()100%11100%
get_AssistiveText()100%11100%
get_TabIndex()100%11100%
get_ToolTipTitle()100%11100%

File(s)

/home/runner/work/TELBlazor/TELBlazor/TELBlazor.Components/Components/BaseComponents/TELButtonSubComponent.razor

#LineLine coverage
 1@inherits TELComponentBase
 2@implements IAccessibleComponent
 3
 4<button type="submit"
 5    class="@ButtonStyle.ToCssClass() @AdditionalCssClasses"
 6    aria-label="@AriaLabel"
 7    role="@AriaRole"
 8    aria-describedby="@AriaDescribedBy"
 9    title="@ToolTipTitle"
 10    tabindex="@TabIndex"
 11    disabled="@DisableButton"
 12>
 13    <span class="button-text">@ButtonText</span>
 1814    @if (!string.IsNullOrEmpty(AssistiveText))
 15    {
 16        <span id="@AriaDescribedBy" class="nhsuk-u-visually-hidden"> @AssistiveText</span> <!-- Hidden element for scree
 17    }
 18</button>
 19
 20@code {
 21
 22    /// <summary>
 23    ///  Guid generated on creation to link elements for screen readers
 24    /// </summary>
 5425    public string AriaDescribedBy {get;} = $"assistive-text-{Guid.NewGuid()}";
 26
 27    /// <summary>
 28    /// Button Options
 29    ///</summary>
 30    [Parameter]
 3631    public TELButtonStyle ButtonStyle { get; set; } = TELButtonStyle.Primary; // Default to Generic
 32
 33    [EditorRequired, Parameter]
 3634    public required string ButtonText { get; set; }
 35
 3636    [Parameter] public bool DisableButton { get; set; } = false; // Disable the button if true
 37
 5438    [Parameter] public string AdditionalCssClasses { get; set; } = ""; // Custom CSS classes for additional styling
 39
 40    [Parameter]
 1841    public bool PreventDoubleClick { get; set; } = false;
 42
 43    /// <summary>
 44    /// Assisitive
 45    /// </summary>
 46    // This property is public, satisfying the interface, but not a Parameter because I wanted to force it to be used in
 3647    public string AriaRole { get; set; } = "Button"; // Set to button by default
 48
 49    [EditorRequired, Parameter]
 3650    public required string AriaLabel { get; set; }
 51
 52    [EditorRequired, Parameter]
 5453    public required string AssistiveText { get; set; }
 54
 55    // Tab index for keyboard navigation
 56    [EditorRequired, Parameter]
 3657    public required int TabIndex { get; set; } = 0;
 58
 59    [EditorRequired, Parameter]
 3660    public required string ToolTipTitle { get; set; }
 61
 62}