File Coverage

blib/lib/Chart/Plotly/Trace/Funnel/Legendgrouptitle.pm
Criterion Covered Total %
statement 12 28 42.8
branch 0 8 0.0
condition 0 8 0.0
subroutine 4 5 80.0
pod 1 1 100.0
total 17 50 34.0


line stmt bran cond sub pod time code
1             use Moose;
2 1     1   7 use MooseX::ExtraArgs;
  1         2  
  1         8  
3 1     1   6239 use Moose::Util::TypeConstraints qw(enum union);
  1         3  
  1         7  
4 1     1   1972 if ( !defined Moose::Util::TypeConstraints::find_type_constraint('PDL') ) {
  1         2  
  1         11  
5             Moose::Util::TypeConstraints::type('PDL');
6             }
7              
8             use Chart::Plotly::Trace::Funnel::Legendgrouptitle::Font;
9 1     1   1210  
  1         3  
  1         243  
10             our $VERSION = '0.042'; # VERSION
11              
12             # ABSTRACT: This attribute is one of the possible options for the trace funnel.
13              
14             my $self = shift;
15             my $extra_args = $self->extra_args // {};
16 0     0 1   my $meta = $self->meta;
17 0   0       my %hash = %$self;
18 0           for my $name ( sort keys %hash ) {
19 0           my $attr = $meta->get_attribute($name);
20 0           if ( defined $attr ) {
21 0           my $value = $hash{$name};
22 0 0         my $type = $attr->type_constraint;
23 0           if ( $type && $type->equals('Bool') ) {
24 0           $hash{$name} = $value ? \1 : \0;
25 0 0 0       }
26 0 0         }
27             }
28             %hash = ( %hash, %$extra_args );
29             delete $hash{'extra_args'};
30 0           if ( $self->can('type') && ( !defined $hash{'type'} ) ) {
31 0           $hash{type} = $self->type();
32 0 0 0       }
33 0           return \%hash;
34             }
35 0            
36             has font => ( is => "rw",
37             isa => "Maybe[HashRef]|Chart::Plotly::Trace::Funnel::Legendgrouptitle::Font", );
38              
39             has text => ( is => "rw",
40             isa => "Str",
41             documentation => "Sets the title of the legend group.",
42             );
43              
44             __PACKAGE__->meta->make_immutable();
45             1;
46              
47              
48             =pod
49              
50             =encoding utf-8
51              
52             =head1 NAME
53              
54             Chart::Plotly::Trace::Funnel::Legendgrouptitle - This attribute is one of the possible options for the trace funnel.
55              
56             =head1 VERSION
57              
58             version 0.042
59              
60             =head1 SYNOPSIS
61              
62             use Chart::Plotly;
63             use Chart::Plotly::Plot;
64             use JSON;
65             use Chart::Plotly::Trace::Funnel;
66            
67             # Example from https://github.com/plotly/plotly.js/blob/b93e3a5a83b6561ac6258a59f274b5fc87630c3e/test/image/mocks/funnel_11.json
68             my $trace1 = Chart::Plotly::Trace::Funnel->new({'orientation' => 'v', 'marker' => {'color' => 'rgb(255, 102, 97)', }, 'y' => [13.23, 22.7, 26.06, ], 'x' => ['Half Dose', 'Full Dose', 'Double Dose', ], 'name' => 'Orange Juice', });
69            
70             my $trace2 = Chart::Plotly::Trace::Funnel->new({'name' => 'Vitamin C', 'marker' => {'color' => 'rgb(0, 196, 200)', }, 'y' => [7.98, 16.77, 26.14, ], 'x' => ['Half Dose', 'Full Dose', 'Double Dose', ], 'orientation' => 'v', });
71            
72             my $trace3 = Chart::Plotly::Trace::Funnel->new({'name' => 'Std Dev - OJ', 'x' => ['Half Dose', 'Full Dose', 'Double Dose', ], 'y' => [1.4102837, 1.236752, 0.8396031, ], 'visible' => JSON::false, 'orientation' => 'v', });
73            
74             my $trace4 = Chart::Plotly::Trace::Funnel->new({'y' => [0.868562, 0.7954104, 1.5171757, ], 'x' => ['Half Dose', 'Full Dose', 'Double Dose', ], 'name' => 'Std Dev - VC', 'orientation' => 'v', 'visible' => JSON::false, });
75            
76            
77             my $plot = Chart::Plotly::Plot->new(
78             traces => [$trace1, $trace2, $trace3, $trace4, ],
79             layout =>
80             {'autosize' => JSON::false, 'hidesources' => JSON::false, 'plot_bgcolor' => 'rgb(217, 217, 217)', 'font' => {'color' => '#000', 'size' => 12, 'family' => 'Arial, sans-serif', }, 'width' => 600, 'separators' => '.,', 'legend' => {'xanchor' => 'left', 'font' => {'size' => 16, 'family' => '', 'color' => 'rgb(0, 0, 0)', }, 'bgcolor' => 'rgba(255, 255, 255, 0)', 'bordercolor' => 'rgba(0, 0, 0, 0)', 'yanchor' => 'auto', 'x' => 1.02, 'y' => 0.931907250442406, 'borderwidth' => 1, 'traceorder' => 'normal', }, 'funnelgroupgap' => 0, 'funnelgap' => 0.2, 'annotations' => [{'tag' => '', 'yatype' => 'linear', 'showarrow' => JSON::false, 'xanchor' => 'auto', 'bgcolor' => 'rgba(0,0,0,0)', 'arrowhead' => 1, 'yref' => 'paper', 'ax' => -10, 'align' => 'center', 'yanchor' => 'auto', 'xatype' => 'category', 'bordercolor' => '', 'ref' => 'paper', 'text' => '<b>Supplement</b>', 'x' => 1.3479735318445, 'y' => 0.998214285714286, 'opacity' => 1, 'arrowwidth' => 0, 'font' => {'size' => 18, 'family' => '', 'color' => '', }, 'ay' => -26.7109375, 'arrowcolor' => '', 'borderpad' => 1, 'borderwidth' => 1, 'xref' => 'paper', 'arrowsize' => 1, }, ], 'height' => 440, 'dragmode' => 'zoom', 'hovermode' => 'x', 'paper_bgcolor' => '#fff', 'boxmode' => 'overlay', 'showlegend' => JSON::true, 'titlefont' => {'family' => '', 'size' => 16, 'color' => '', }, 'title' => 'Grouped Funnel Chart', 'margin' => {'r' => 0, 't' => 80, 'b' => 80, 'l' => 80, 'autoexpand' => JSON::true, 'pad' => 2, }, 'yaxis' => {'gridcolor' => 'rgb(255, 255, 255)', 'autotick' => JSON::true, 'ticks' => '', 'tickfont' => {'color' => '', 'size' => 16, 'family' => '', }, 'mirror' => JSON::true, 'tickangle' => 0, 'domain' => [0, 1, ], 'anchor' => 'x', 'showgrid' => JSON::true, 'exponentformat' => 'e', 'tick0' => 0, 'showticklabels' => JSON::true, 'nticks' => 0, 'zerolinewidth' => 1, 'zeroline' => JSON::false, 'position' => 0, 'range' => [0, 29.1128165263158, ], 'dtick' => 5, 'showexponent' => 'all', 'showline' => JSON::false, 'linecolor' => '#000', 'type' => 'linear', 'linewidth' => 0.1, 'overlaying' => JSON::false, 'ticklen' => 5, 'rangemode' => 'normal', 'tickwidth' => 1, 'tickcolor' => '#000', 'title' => 'Length', 'autorange' => JSON::true, 'titlefont' => {'size' => 16, 'family' => '', 'color' => '', }, 'zerolinecolor' => '#000', 'gridwidth' => 1.9, }, 'funnelmode' => 'group', 'xaxis' => {'ticks' => '', 'autotick' => JSON::true, 'gridcolor' => 'rgb(255, 255, 255)', 'tickfont' => {'color' => '', 'family' => '', 'size' => 16, }, 'mirror' => JSON::true, 'anchor' => 'y', 'tickangle' => 0, 'domain' => [0, 1, ], 'showgrid' => JSON::true, 'exponentformat' => 'e', 'tick0' => 0, 'showticklabels' => JSON::true, 'range' => [-0.5, 2.5, ], 'nticks' => 0, 'zerolinewidth' => 1, 'zeroline' => JSON::false, 'position' => 0, 'showexponent' => 'all', 'dtick' => 1, 'showline' => JSON::false, 'type' => 'category', 'linecolor' => '#000', 'overlaying' => JSON::false, 'linewidth' => 0.1, 'ticklen' => 5, 'rangemode' => 'normal', 'titlefont' => {'size' => 16, 'family' => '', 'color' => '', }, 'autorange' => JSON::true, 'title' => 'Dose (mg)', 'tickwidth' => 1, 'tickcolor' => '#000', 'gridwidth' => 1.9, 'zerolinecolor' => '#000', }, }
81             );
82            
83             Chart::Plotly::show_plot($plot);
84              
85             =head1 DESCRIPTION
86              
87             This attribute is part of the possible options for the trace funnel.
88              
89             This file has been autogenerated from the official plotly.js source.
90              
91             If you like Plotly, please support them: L<https://plot.ly/>
92             Open source announcement: L<https://plot.ly/javascript/open-source-announcement/>
93              
94             Full reference: L<https://plot.ly/javascript/reference/#funnel>
95              
96             =head1 DISCLAIMER
97              
98             This is an unofficial Plotly Perl module. Currently I'm not affiliated in any way with Plotly.
99             But I think plotly.js is a great library and I want to use it with perl.
100              
101             =head1 METHODS
102              
103             =head2 TO_JSON
104              
105             Serialize the trace to JSON. This method should be called only by L<JSON> serializer.
106              
107             =head1 ATTRIBUTES
108              
109             =over
110              
111             =item * font
112              
113             =item * text
114              
115             Sets the title of the legend group.
116              
117             =back
118              
119             =head1 AUTHOR
120              
121             Pablo Rodríguez González <pablo.rodriguez.gonzalez@gmail.com>
122              
123             =head1 COPYRIGHT AND LICENSE
124              
125             This software is Copyright (c) 2022 by Pablo Rodríguez González.
126              
127             This is free software, licensed under:
128              
129             The MIT (X11) License
130              
131             =cut