The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Data::HTML::Button - Data object for HTML button element.

SYNOPSIS

 use Data::HTML::Button;

 my $obj = Data::HTML::Button->new(%params);
 my $autofocus = $obj->autofocus;
 my $css_class = $obj->css_class;
 my $data = $obj->data;
 my $data_type = $obj->data_type;
 my $disabled = $obj->disabled;
 my $form = $obj->form;
 my $form_enctype = $obj->form_enctype;
 my $form_method = $obj->form_method;
 my $id = $obj->id;
 my $label = $obj->label;
 my $name = $obj->name;
 my $type = $obj->type;
 my $value = $obj->value;

METHODS

new

 my $obj = Data::HTML::Button->new(%params);

Constructor.

Returns instance of object.

  • autofocus

    Button autofocus flag.

    Default value is 0.

  • css_class

    Button CSS class.

    Default value is undef.

  • data

    Button data content. It's reference to array. Data type of data is described in 'data_type' parameter.

    Default value is [].

  • data_type

    Button data type for content.

    Possible value are: plain tags

    Default value is 'plain'.

  • disabled

    Button autofocus flag.

    Default value is 0.

  • form

    Button form id.

    Default value is undef.

  • form_enctype

    Button form encoding. It's valuable for 'submit' type.

    Possible values are: application/x-www-form-urlencoded multipart/form-data text/plain

    Default value is undef.

  • form_method

    Button form method. It's valuable for 'submit' type.

    Possible values are: get post

    Default value is 'get'.

  • id

    Button identifier.

    Default value is undef.

  • label

    Button label.

    Default value is undef.

  • name

    Button name.

    Default value is undef.

  • type

    Button element type.

    Possible types: button reset submit

    Default value is 'button'.

  • value

    Button value.

    Default value is undef.

autofocus

 my $autofocus = $obj->autofocus;

Get button autofocus flag.

Returns bool value (1/0).

css_class

 my $css_class = $obj->css_class;

Get CSS class for button.

Returns string.

data

 my $data = $obj->data;

Get data inside button element.

Returns reference to array.

data_type

 my $data_type = $obj->data_type;

Get button data type.

Returns string.

disabled

 my $disabled = $obj->disabled;

Get button disabled flag.

Returns bool value (1/0).

form

 my $form = $obj->form;

Get button form id.

Returns string.

form_enctype

 my $form_enctype = $obj->form_enctype;

Get button form enctype.

Returns string.

form_method

 my $form_method = $obj->form_method;

Get button form method.

Returns string.

id

 my $id = $obj->id;

Get button identifier.

Returns string.

label

 my $label = $obj->label;

Get button label.

Returns string.

name

 my $name = $obj->name;

Get button name.

Returns string.

type

 my $type = $obj->type;

Get button type.

Returns string.

value

 my $value = $obj->value;

Get button value.

Returns string.

ERRORS

 new():
         Parameter 'autofocus' must be a bool (0/1).
                Value: %s
         Parameter 'data_type' has bad value.
         Parameter 'disabled' must be a bool (0/1).
                Value: %s
         Parameter 'form_enctype' has bad value.
                 Value: %s
         Parameter 'form_method' has bad value.
         Parameter 'type' has bad value.

EXAMPLE1

 use strict;
 use warnings;

 use Data::HTML::Button;

 my $obj = Data::HTML::Button->new;

 # Print out.
 print 'Data type: '.$obj->data_type."\n";
 print 'Form method: '.$obj->form_method."\n";
 print 'Type: '.$obj->type."\n";

 # Output:
 # Data type: plain
 # Form method: get
 # Type: button

EXAMPLE2

 use strict;
 use warnings;

 use Data::HTML::Button;
 use Tags::Output::Raw;

 my $obj = Data::HTML::Button->new(
         # Tags(3pm) structure.
         'data' => [
                 ['b', 'span'],
                 ['d', 'Button'],
                 ['e', 'span'],
         ],
         'data_type' => 'tags',
 );

 my $tags = Tags::Output::Raw->new;

 # Serialize data to output.
 $tags->put(@{$obj->data});
 my $data = $tags->flush(1);

 # Print out.
 print 'Data (serialized): '.$data."\n";
 print 'Data type: '.$obj->data_type."\n";
 print 'Form method: '.$obj->form_method."\n";
 print 'Type: '.$obj->type."\n";

 # Output:
 # Data (serialized): <span>Button</span>
 # Data type: tags
 # Form method: get
 # Type: button

EXAMPLE3

 use strict;
 use warnings;

 use Data::HTML::Button;

 my $obj = Data::HTML::Button->new(
         # Plain content.
         'data' => [
                 'Button',
         ],
         'data_type' => 'plain',
 );

 # Serialize data to output.
 my $data = join ' ', @{$obj->data};

 # Print out.
 print 'Data: '.$data."\n";
 print 'Data type: '.$obj->data_type."\n";
 print 'Form method: '.$obj->form_method."\n";
 print 'Type: '.$obj->type."\n";

 # Output:
 # Data: Button
 # Data type: plain
 # Form method: get
 # Type: button

DEPENDENCIES

Error::Pure, List::Util, Mo, Mo::utils, Readonly.

REPOSITORY

https://github.com/michal-josef-spacek/Data-HTML-Button

AUTHOR

Michal Josef Špaček mailto:skim@cpan.org

http://skim.cz

LICENSE AND COPYRIGHT

© 2022 Michal Josef Špaček

BSD 2-Clause License

VERSION

0.01