File Coverage

blib/lib/Chart/Plotly/Trace/Funnel/Marker/Colorbar/Title.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             package Chart::Plotly::Trace::Funnel::Marker::Colorbar::Title;
2 1     1   6 use Moose;
  1         2  
  1         5  
3 1     1   5387 use MooseX::ExtraArgs;
  1         2  
  1         6  
4 1     1   1737 use Moose::Util::TypeConstraints qw(enum union);
  1         3  
  1         7  
5             if ( !defined Moose::Util::TypeConstraints::find_type_constraint('PDL') ) {
6             Moose::Util::TypeConstraints::type('PDL');
7             }
8              
9 1     1   935 use Chart::Plotly::Trace::Funnel::Marker::Colorbar::Title::Font;
  1         4  
  1         259  
10              
11             our $VERSION = '0.039'; # VERSION
12              
13             # ABSTRACT: This attribute is one of the possible options for the trace funnel.
14              
15             sub TO_JSON {
16 0     0 1   my $self = shift;
17 0   0       my $extra_args = $self->extra_args // {};
18 0           my $meta = $self->meta;
19 0           my %hash = %$self;
20 0           for my $name ( sort keys %hash ) {
21 0           my $attr = $meta->get_attribute($name);
22 0 0         if ( defined $attr ) {
23 0           my $value = $hash{$name};
24 0           my $type = $attr->type_constraint;
25 0 0 0       if ( $type && $type->equals('Bool') ) {
26 0 0         $hash{$name} = $value ? \1 : \0;
27             }
28             }
29             }
30 0           %hash = ( %hash, %$extra_args );
31 0           delete $hash{'extra_args'};
32 0 0 0       if ( $self->can('type') && ( !defined $hash{'type'} ) ) {
33 0           $hash{type} = $self->type();
34             }
35 0           return \%hash;
36             }
37              
38             has font => ( is => "rw",
39             isa => "Maybe[HashRef]|Chart::Plotly::Trace::Funnel::Marker::Colorbar::Title::Font", );
40              
41             has side => (
42             is => "rw",
43             isa => enum( [ "right", "top", "bottom" ] ),
44             documentation =>
45             "Determines the location of color bar's title with respect to the color bar. Note that the title's location used to be set by the now deprecated `titleside` attribute.",
46             );
47              
48             has text => (
49             is => "rw",
50             isa => "Str",
51             documentation =>
52             "Sets the title of the color bar. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.",
53             );
54              
55             __PACKAGE__->meta->make_immutable();
56             1;
57              
58             __END__
59              
60             =pod
61              
62             =encoding utf-8
63              
64             =head1 NAME
65              
66             Chart::Plotly::Trace::Funnel::Marker::Colorbar::Title - This attribute is one of the possible options for the trace funnel.
67              
68             =head1 VERSION
69              
70             version 0.039
71              
72             =head1 SYNOPSIS
73              
74             use Chart::Plotly;
75             use Chart::Plotly::Plot;
76             use JSON;
77             use Chart::Plotly::Trace::Funnel;
78            
79             # Example from https://github.com/plotly/plotly.js/blob/b93e3a5a83b6561ac6258a59f274b5fc87630c3e/test/image/mocks/funnel_11.json
80             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', });
81            
82             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', });
83            
84             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', });
85            
86             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, });
87            
88            
89             my $plot = Chart::Plotly::Plot->new(
90             traces => [$trace1, $trace2, $trace3, $trace4, ],
91             layout =>
92             {'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', }, }
93             );
94            
95             Chart::Plotly::show_plot($plot);
96              
97             =head1 DESCRIPTION
98              
99             This attribute is part of the possible options for the trace funnel.
100              
101             This file has been autogenerated from the official plotly.js source.
102              
103             If you like Plotly, please support them: L<https://plot.ly/>
104             Open source announcement: L<https://plot.ly/javascript/open-source-announcement/>
105              
106             Full reference: L<https://plot.ly/javascript/reference/#funnel>
107              
108             =head1 DISCLAIMER
109              
110             This is an unofficial Plotly Perl module. Currently I'm not affiliated in any way with Plotly.
111             But I think plotly.js is a great library and I want to use it with perl.
112              
113             =head1 METHODS
114              
115             =head2 TO_JSON
116              
117             Serialize the trace to JSON. This method should be called only by L<JSON> serializer.
118              
119             =head1 ATTRIBUTES
120              
121             =over
122              
123             =item * font
124              
125             =item * side
126              
127             Determines the location of color bar's title with respect to the color bar. Note that the title's location used to be set by the now deprecated `titleside` attribute.
128              
129             =item * text
130              
131             Sets the title of the color bar. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.
132              
133             =back
134              
135             =head1 AUTHOR
136              
137             Pablo Rodríguez González <pablo.rodriguez.gonzalez@gmail.com>
138              
139             =head1 COPYRIGHT AND LICENSE
140              
141             This software is Copyright (c) 2020 by Pablo Rodríguez González.
142              
143             This is free software, licensed under:
144              
145             The MIT (X11) License
146              
147             =cut