File Coverage

blib/lib/Moonshine/Bootstrap/Component/PanelHeader.pm
Criterion Covered Total %
statement 12 12 100.0
branch 2 2 100.0
condition 1 2 50.0
subroutine 3 3 100.0
pod n/a
total 18 19 94.7


line stmt bran cond sub pod time code
1             package Moonshine::Bootstrap::Component::PanelHeader;
2              
3 6     6   206963 use Moonshine::Magic;
  6         146928  
  6         55  
4 6     6   3806 use Params::Validate qw/HASHREF/;
  6         16  
  6         600  
5              
6             extends (
7             'Moonshine::Bootstrap::Component',
8             'Moonshine::Bootstrap::Component::PanelTitle',
9             );
10              
11             has(
12             panel_header_spec => sub {
13             {
14             tag => { default => 'div' },
15             class_base => { default => 'panel-heading' },
16             title => { build => 1, optional => 1, type => HASHREF },
17             };
18             }
19             );
20              
21             sub panel_header {
22 11     11   13001 my ($self) = shift;
23              
24 11   50     180 my ( $base_args, $build_args ) = $self->validate_build(
25             {
26             params => $_[0] // {},
27             spec => $self->panel_header_spec,
28             }
29             );
30              
31 11         172 my $base_element = Moonshine::Element->new($base_args);
32              
33 11 100       27481 if ( $build_args->{title} ) {
34             $base_element->add_child(
35             $self->panel_title($build_args->{title})
36 2         34 );
37             }
38              
39 11         5138 return $base_element;
40             }
41              
42             1;
43              
44             __END__