CSS-Prepare

 view release on metacpan or  search on metacpan

lib/CSS/Prepare/Property/BorderRadius.pm  view on Meta::CPAN

package CSS::Prepare::Property::BorderRadius;

use Modern::Perl;
use CSS::Prepare::Property::Expansions;
use CSS::Prepare::Property::Values;

my $get_border_radius_values = qr{ 
        (?'h1' $individual_border_radius_value )
        (?: \s+ (?'h2' $individual_border_radius_value ) )?
        (?: \s+ (?'h3' $individual_border_radius_value ) )?
        (?: \s+ (?'h4' $individual_border_radius_value ) )?
        (?:
            \s* / \s*
            (?'v1' $individual_border_radius_value )
            (?: \s+ (?'v2' $individual_border_radius_value ) )?
            (?: \s+ (?'v3' $individual_border_radius_value ) )?
            (?: \s+ (?'v4' $individual_border_radius_value ) )?
        )?
    }x;



sub parse {
    my $self        = shift;
    my $has_hack    = shift;
    my $location    = shift;
    my %declaration = @_;
    
    my $property = $declaration{'property'};
    my $value    = $declaration{'value'};
    my %canonical;
    my @errors;
    
    foreach my $corner ( @standard_corners ) {
        my $check = "border-${corner}-radius";
        
        if ( $check eq $property ) {
            if ( $value =~ m{^ $border_radius_corner_value $}x ) {
                $canonical{ $check } = $value;
            }
            else {
                push @errors, {
                        error => "invalid ${check} property: '${value}'"
                    };
                
            }
        }
    }
    
    if ( 'border-radius' eq $property ) {
        if ( $value =~ m{^ $get_border_radius_values $}x ) {
            my %match = %+;
            
            my @matches;
            map { push @matches, $match{$_} if defined $match{$_} }
                qw( h1 h2 h3 h4 );
            my @horizontal = expand_corner_values( @matches );
            
            undef @matches;
            map { push @matches, $match{$_} if defined $match{$_} }
                qw( v1 v2 v3 v4 );
            my @vertical = expand_corner_values( @matches );
            

 view all matches for this distribution
 view release on metacpan -  search on metacpan

( run in 1.053 second using v1.00-cache-2.02-grep-82fe00e-cpan-2c419f77a38b )