X-Git-Url: http://git.shiar.nl/sheet.git/blobdiff_plain/972bfa6b61c2168aac48bd123c8523d195a273b6..dd0fba64e720055cf4733f422efef687a16d49fa:/browser.plp diff --git a/browser.plp b/browser.plp index 5380cef..beff4a9 100644 --- a/browser.plp +++ b/browser.plp @@ -29,6 +29,10 @@ $_->{verrelease} = { my %CSTATS = ( 'n' => 'l1', + 'n d' => 'l2', + 'n x d' => 'l2 ex', + 'p d' => 'l2', + 'a d' => 'l2', 'y' => 'l5', 'y x' => 'l5 ex', 'a' => 'l3', @@ -46,6 +50,7 @@ my %DSTATS = ( j => 'javascript required', a => 'partial', y => 'supported', + d => 'disabled by default', x => sub { join(' ', 'requires prefix', @@ -307,7 +312,8 @@ sub saystatuscol { sub saybrowsercols { my ($id, $browser) = @_; - my $data = $caniuse->{data}->{$id}->{stats}->{$browser}; + my $feature = $caniuse->{data}->{$id}; + my $data = $feature->{stats}->{$browser}; if (ref $data eq 'ARRAY') { # special case for unsupported my $release = $caniuse->{agents}->{$browser}->{verrelease}; @@ -328,7 +334,22 @@ sub saybrowsercols { ); unless (!defined $prev or $prev ~~ $compare) { my $usage = sum(@{ $canihas->{$browser} }{ map { @{$_} } @span }); - printf '%s', + + # strip #\d note references from support class + my @notes; + push @notes, $feature->{notes_by_num}->{$1} + while $prev =~ s/\h \# (\d+) \b//x; + + # prepare version hover details + my $title = sprintf('%.1f%% %s', $usage * $usagepct, join(', ', + map { ref $_ eq 'CODE' ? $_->($browser) : $_ } + map { $DSTATS{$_} // () } + map { split / /, $_ } + $prev + )); + $title .= "\n".EscapeHTML($_) for @notes; + + printf('%s', join(' ', X => $CSTATS{$prev}, !$usage ? ('p0') : ('p', @@ -338,13 +359,9 @@ sub saybrowsercols { sprintf('pp%02d', $usage / $usagemax), ), scalar @span, - sprintf('%.1f%% %s', $usage * $usagepct, join(', ', - map { ref $_ eq 'CODE' ? $_->($browser) : $_ } - map { $DSTATS{$_} // () } - map { split / /, $_ } - $prev - )), + $title, showversions($span[0]->[0], @span > 1 ? ($span[-1]->[-1]) : ()), + ); undef $prev; @span = (); } @@ -399,7 +416,7 @@ sub showversions {
supported partial - external (js/plugin) + optional missing unknown prefixed