PNG  IHDR;IDATxܻn0K )(pA 7LeG{ §㻢|ذaÆ 6lذaÆ 6lذaÆ 6lom$^yذag5bÆ 6lذaÆ 6lذa{ 6lذaÆ `}HFkm,mӪôô! x|'ܢ˟;E:9&ᶒ}{v]n&6 h_tڠ͵-ҫZ;Z$.Pkž)!o>}leQfJTu іچ\X=8Rن4`Vwl>nG^is"ms$ui?wbs[m6K4O.4%/bC%t Mז -lG6mrz2s%9s@-k9=)kB5\+͂Zsٲ Rn~GRC wIcIn7jJhۛNCS|j08yiHKֶۛkɈ+;SzL/F*\Ԕ#"5m2[S=gnaPeғL lذaÆ 6l^ḵaÆ 6lذaÆ 6lذa; _ذaÆ 6lذaÆ 6lذaÆ RIENDB` package Term::Table::CellStack; use strict; use warnings; our $VERSION = '0.023'; use Term::Table::HashBase qw/-cells -idx/; use List::Util qw/max/; sub init { my $self = shift; $self->{+CELLS} ||= []; } sub add_cell { my $self = shift; push @{$self->{+CELLS}} => @_; } sub add_cells { my $self = shift; push @{$self->{+CELLS}} => @_; } sub sanitize { my $self = shift; $_->sanitize(@_) for @{$self->{+CELLS}}; } sub mark_tail { my $self = shift; $_->mark_tail(@_) for @{$self->{+CELLS}}; } my @proxy = qw{ border_left border_right border_color value_color reset_color border_left_width border_right_width }; for my $meth (@proxy) { no strict 'refs'; *$meth = sub { my $self = shift; $self->{+CELLS}->[$self->{+IDX}]->$meth; }; } for my $meth (qw{value_width width}) { no strict 'refs'; *$meth = sub { my $self = shift; return max(map { $_->$meth } @{$self->{+CELLS}}); }; } sub next { my $self = shift; my ($cw) = @_; while ($self->{+IDX} < @{$self->{+CELLS}}) { my $cell = $self->{+CELLS}->[$self->{+IDX}]; my $lw = $cell->border_left_width; my $rw = $cell->border_right_width; my $vw = $cw - $lw - $rw; my $it = $cell->break->next($vw); return ($it, $vw) if $it; $self->{+IDX}++; } return; } sub break { $_[0] } sub reset { my $self = shift; $self->{+IDX} = 0; $_->reset for @{$self->{+CELLS}}; } 1; __END__ =pod =encoding UTF-8 =head1 NAME Term::Table::CellStack - Combine several cells into one (vertical) =head1 DESCRIPTION This package is used to represent a merged-cell in a table (vertical). =head1 SOURCE The source code repository for Term-Table can be found at F. =head1 MAINTAINERS =over 4 =item Chad Granum Eexodist@cpan.orgE =back =head1 AUTHORS =over 4 =item Chad Granum Eexodist@cpan.orgE =back =head1 COPYRIGHT Copyright 2016 Chad Granum Eexodist@cpan.orgE. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See F =cut