< 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: 16
Uncovered lines: 0
Coverable lines: 16
Total lines: 64
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%
OnInitialized()100%11100%
get_ButtonStyle()100%11100%
get_ButtonText()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    <span class="button-text">@ButtonText</span>
 1812    @if (!string.IsNullOrEmpty(AssistiveText))
 1813    {
 14        <span id="@AriaDescribedBy" class="nhsuk-u-visually-hidden"> @AssistiveText</span> <!-- Hidden element for scree
 1815    }
 16</button>
 17
 18@code {
 19
 20    /// <summary>
 21    ///  Guid generated on creation to link elements for screen readers
 22    /// </summary>
 23    private string _ariaDescribedBy;
 3624    public string AriaDescribedBy => _ariaDescribedBy;
 25
 26    protected override void OnInitialized()
 1827    {
 1828        _ariaDescribedBy = $"assistive-text-{Guid.NewGuid()}";
 1829    }
 30
 31    /// <summary>
 32    /// Button Options
 33    ///</summary>
 34    [Parameter]
 5435    public TELButtonStyle ButtonStyle { get; set; } = TELButtonStyle.Primary; // Default to Generic
 36
 37    [EditorRequired, Parameter]
 3638    public required string ButtonText { get; set; }
 39
 5440    [Parameter] public string AdditionalCssClasses { get; set; } = ""; // Custom CSS classes for additional styling
 41
 42    [Parameter]
 3643    public bool PreventDoubleClick { get; set; } = false;
 44
 45    /// <summary>
 46    /// Assisitive
 47    /// </summary>
 48    // This property is public, satisfying the interface, but not a Parameter because I wanted to force it to be used in
 3649    public string AriaRole { get; set; } = "Button"; // Set to button by default
 50
 51    [EditorRequired, Parameter]
 3652    public required string AriaLabel { get; set; }
 53
 54    [EditorRequired, Parameter]
 5455    public required string AssistiveText { get; set; }
 56
 57    // Tab index for keyboard navigation
 58    [EditorRequired, Parameter]
 5459    public required int TabIndex { get; set; } = 0;
 60
 61    [EditorRequired, Parameter]
 3662    public required string ToolTipTitle { get; set; }
 63
 64}