package {$package_name};
use Moose;
use MooseX::ExtraArgs;
use Moose::Util::TypeConstraints qw(enum union);
if (!defined Moose::Util::TypeConstraints::find_type_constraint('PDL')) \{
Moose::Util::TypeConstraints::type('PDL');
\}
{$used_modules}
# VERSION
# ABSTRACT: This attribute is one of the possible options for the trace {$trace_name}.
=encoding utf-8
=head1 SYNOPSIS
# EXAMPLE: examples/traces/{$trace_name}.pl
=head1 DESCRIPTION
This attribute is part of the possible options for the trace {$trace_name}.
This file has been autogenerated from the official plotly.js source.
If you like Plotly, please support them: L<https://plot.ly/>
Open source announcement: L<https://plot.ly/javascript/open-source-announcement/>
Full reference: L<https://plot.ly/javascript/reference/#{$trace_name}>
=head1 DISCLAIMER
This is an unofficial Plotly Perl module. Currently I'm not affiliated in any way with Plotly.
But I think plotly.js is a great library and I want to use it with perl.
=head1 METHODS
=cut
=head2 TO_JSON
Serialize the trace to JSON. This method should be called only by L<JSON> serializer.
=cut
sub TO_JSON \{
my $self = shift;
my $extra_args = $self->extra_args // \{\};
my $meta = $self->meta;
my %hash = %$self;
for my $name (sort keys %hash) \{
my $attr = $meta->get_attribute($name);
if (defined $attr) \{
my $value = $hash\{$name\};
my $type = $attr->type_constraint;
if ($type && $type->equals('Bool')) \{
$hash\{$name\} = $value ? \1 : \ 0;
\}
\}
\}
%hash = (%hash, %$extra_args);
delete $hash\{'extra_args'\};
if ($self->can('type') && (!defined $hash\{'type'\})) \{
$hash\{type\} = $self->type();
\}
return \%hash;
\}
=head1 ATTRIBUTES
=over
=cut