view release on metacpan or search on metacpan
lib/HTML/D3.pm view on Meta::CPAN
use warnings;
use JSON::MaybeXS;
use Scalar::Util;
# TODO: add animated tooltips to charts with legends
=head1 NAME
HTML::D3 - A simple Perl module for generating charts using D3.js.
lib/HTML/D3.pm view on Meta::CPAN
HTML
return $html;
}
=head2 render_multi_series_line_chart_with_legends
$html = $chart->render_multi_series_line_chart_with_legends($data);
Generates HTML and JavaScript code to render a chart of many lines with animated mouseover tooltips.
Accepts the following arguments:
lib/HTML/D3.pm view on Meta::CPAN
Returns a string containing the HTML and JavaScript code for the chart.
=cut
sub render_multi_series_line_chart_with_legends {
my($self, $data) = @_;
# Validate input data
die 'Data must be an array of hashes' unless ref($data) eq 'ARRAY';
lib/HTML/D3.pm view on Meta::CPAN
pointer-events: none;
opacity: 0;
transform: translateY(-10px);
transition: opacity 0.2s ease-in-out, transform 0.2s ease-in-out;
}
.legend {
font-size: 12px;
cursor: pointer;
}
.legend rect {
stroke-width: 1;
stroke: #ccc;
}
</style>
</head>
lib/HTML/D3.pm view on Meta::CPAN
const height = $self->{height} - margin.top - margin.bottom;
const chart = svg.append("g")
.attr("transform", `translate(\${margin.left},\${margin.top})`);
const legendArea = svg.append("g")
.attr("transform", `translate(\${width + margin.left + 20},\${margin.top})`);
// Extract all labels and flatten them into a unique array
const allLabels = Array.from(new Set(data.flatMap(series => series.data.map(d => d.label))));
lib/HTML/D3.pm view on Meta::CPAN
tooltip.style("opacity", 0)
.style("transform", "translateY(-10px)");
});
});
// Add legend
data.forEach((series, i) => {
const legend = legendArea.append("g")
.attr("transform", `translate(0, \${i * 20})`)
.attr("class", "legend");
legend.append("rect")
.attr("width", 12)
.attr("height", 12)
.attr("fill", color(i));
legend.append("text")
.attr("x", 20)
.attr("y", 10)
.text(series.name)
.style("alignment-baseline", "middle");
// Optional: Interactive legend for toggling visibility (uncomment to use)
// legend.on("click", () => {
// const visible = d3.selectAll(\`path.line-\${i}\`).style("opacity") === "1" ? 0 : 1;
// d3.selectAll(\`path.line-\${i}\`).style("opacity", visible);
// d3.selectAll(\`circle.series-\${i}\`).style("opacity", visible);
// });
});
lib/HTML/D3.pm view on Meta::CPAN
HTML
return $html;
}
sub render_multi_series_line_chart_with_interactive_legends
{
my ($self, $data) = @_;
# Validate input data
die 'Data must be an array of hashes' unless ref($data) eq 'ARRAY';
lib/HTML/D3.pm view on Meta::CPAN
pointer-events: none;
opacity: 0;
transform: translateY(-10px);
transition: opacity 0.2s ease-in-out, transform 0.2s ease-in-out;
}
.legend {
font-size: 12px;
cursor: pointer;
}
.legend rect {
stroke-width: 1;
stroke: #ccc;
}
</style>
</head>
lib/HTML/D3.pm view on Meta::CPAN
const height = $self->{height} - margin.top - margin.bottom;
const chart = svg.append("g")
.attr("transform", `translate(\${margin.left},\${margin.top})`);
const legendArea = svg.append("g")
.attr("transform", `translate(\${width + margin.left + 20},\${margin.top})`);
// Extract all labels and flatten them into a unique array
const allLabels = Array.from(new Set(data.flatMap(series => series.data.map(d => d.label))));
lib/HTML/D3.pm view on Meta::CPAN
tooltip.style("opacity", 0)
.style("transform", "translateY(-10px)");
});
});
// Add legend with interactivity
data.forEach((series, i) => {
const legend = legendArea.append("g")
.attr("transform", `translate(0, \${i * 20})`)
.attr("class", "legend")
.on("click", () => {
const isVisible = d3.selectAll(\`path.line-\${i}\`).style("opacity") === "1";
// Toggle visibility
d3.selectAll(\`path.line-\${i}\`).style("opacity", isVisible ? 0 : 1);
d3.selectAll(\`circle.series-\${i}\`).style("opacity", isVisible ? 0 : 1);
// Dim legend if series is hidden
legend.select("text").style("opacity", isVisible ? 0.5 : 1);
});
legend.append("rect")
.attr("width", 12)
.attr("height", 12)
.attr("fill", color(i));
legend.append("text")
.attr("x", 20)
.attr("y", 10)
.text(series.name)
.style("alignment-baseline", "middle");
});
view all matches for this distribution
view release on metacpan or search on metacpan
lib/HTML/DOM/Element.pm view on Meta::CPAN
input => 'HTML::DOM::Element::Input',
textarea=> 'HTML::DOM::Element::TextArea',
button => 'HTML::DOM::Element::Button',
label => 'HTML::DOM::Element::Label',
fieldset=> 'HTML::DOM::Element::FieldSet',
legend => 'HTML::DOM::Element::Legend',
ul => 'HTML::DOM::Element::UL',
ol => 'HTML::DOM::Element::OL',
dl => 'HTML::DOM::Element::DL',
dir => 'HTML::DOM::Element::Dir',
menu => 'HTML::DOM::Element::Menu',
view all matches for this distribution
view release on metacpan or search on metacpan
share/html-4-0-1-loose.dtd view on Meta::CPAN
<!ELEMENT FIELDSET - - (#PCDATA,LEGEND,(%flow;)*) -- form control group -->
<!ATTLIST FIELDSET
%attrs; -- %coreattrs, %i18n, %events --
>
<!ELEMENT LEGEND - - (%inline;)* -- fieldset legend -->
<!ENTITY % LAlign "(top|bottom|left|right)">
<!ATTLIST LEGEND
%attrs; -- %coreattrs, %i18n, %events --
accesskey %Character; #IMPLIED -- accessibility key character --
view all matches for this distribution
view release on metacpan or search on metacpan
lib/HTML/Defang.pm view on Meta::CPAN
use Encode;
my $HasScalarReadonly = 0;
BEGIN { eval "use Scalar::Readonly qw(readonly_on);" && ($HasScalarReadonly = 1); }
our @FormTags = qw(form input textarea select option button fieldset label legend multicol nextid optgroup);
# Some regexps for matching HTML tags + key=value attributes
my $AttrKeyStartLineRE = qr/(?:[^=<>\s\/\\]{1,}|[\/](?!\s*>))/;
my $AttrKeyRE = qr/(?<=[\s'"\/])$AttrKeyStartLineRE/;
my $AttrValRE = qr/[^>\s'"`][^>\s]*|'[^']*?'|"[^"]*?"|`[^`]*?`/;
lib/HTML/Defang.pm view on Meta::CPAN
"label" => # FORM
{
"for" => "alnum",
},
"layer" => 0,
"legend" => 1, # FORM
"li" => {
"value" => "integer",
},
"listing" => 0,
"map" => 1,
view all matches for this distribution
view release on metacpan or search on metacpan
t/etc/css/reset.css view on Meta::CPAN
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
view all matches for this distribution
view release on metacpan or search on metacpan
lib/HTML/Detoxifier.pm view on Meta::CPAN
button => undef,
fieldset => undef,
form => undef,
input => undef,
label => undef,
legend => undef,
optgroup => undef,
option => undef,
select => undef,
textarea => undef
},
lib/HTML/Detoxifier.pm view on Meta::CPAN
img => undef,
input => undef,
ins => undef,
kbd => undef,
label => undef,
legend => undef,
li => undef,
link => undef,
map => undef,
marquee => undef,
meta => undef,
view all matches for this distribution
view release on metacpan or search on metacpan
lib/HTML/Element/Tiny.pm view on Meta::CPAN
BEGIN {
# @TAGS =
# qw( a abbr acronym address area b base bdo big blockquote body br
# button caption cite code col colgroup dd del div dfn dl dt em
# fieldset form frame frameset h1 h2 h3 h4 h5 h6 head hr html i
# iframe img input ins kbd label legend li link map meta noframes
# noscript object ol optgroup option p param pre q samp script select
# small span strong style sub sup table tbody td textarea tfoot th
# thead title tr tt ul var );
%DEFAULT_CLOSED = map { $_ => 1 }
qw( area base br col frame hr img input meta param link );
view all matches for this distribution
view release on metacpan or search on metacpan
AllowAll.pm view on Meta::CPAN
[ "em", "embed" ],
[ "fieldset", "frameset", "font", "form" ],
[ "h1", "h2", "h3", "h4", "h5", "h6", "head", "hr", "html" ],
[ "i", "iframe", "img", "input", "ins" ],
[ "kbd" ],
[ "label", "legend", "li", "link" ],
[ "map", "meta" ],
[ "nobr", "noscript" ],
[ "object", "ol", "optgroup", "option" ],
[ "p", "param", "pre" ],
[ "q" ],
view all matches for this distribution
view release on metacpan or search on metacpan
t/html/tv2.html view on Meta::CPAN
<span class="tv2_feed_title ">
<span class="tv2_feed_date">13.38</span>
Norsk skilærer hetses for pakistansk «kebabsang»
</span>
</a>
<a class="even" href="http://www.tv2.no/sport/fotball/england/premierleague/dette-er-legendariske-kevin-keegan-3962106.html" title="Dobbel gullballvinner, engelsk landslagskaptein og tidligere landslagssjef på plass i TV 2..." target="_self">
<span class="tv2_feed_title ">
<span class="tv2_feed_date">13.26</span>
Dette er legendariske Kevin Keegan
</span>
</a>
<a class="odd" href="http://www.tv2.no/sport/vintersport/kvalm-bjoerndalen-sloeyfet-pressemoete-ole-einar-sitter-paa-potta-3963168.html" title="- Ole Einar er på potta, sier skiskyttercoach Arne Idland" target="_self">
<span class="tv2_feed_title ">
<span class="tv2_feed_date">13.18</span>
view all matches for this distribution
view release on metacpan or search on metacpan
ok( $f[1]->find_input("t") );
$f = HTML::Form->parse( <<EOT, "http://www.example.com" );
<form ACTION="http://example.com/">
<fieldset>
<legend>Radio Buttons with Labels</legend>
<label>
<input type=radio name=r0 value=0 />zero
</label>
<label>one
<input type=radio name=r1 value=1>
view all matches for this distribution
view release on metacpan or search on metacpan
lib/HTML/FormBuilder/FieldSet.pm view on Meta::CPAN
#####################################################################
sub _build_fieldset_foreword {
my $self = shift;
my $data = $self->{data};
# fieldset legend
my $legend = '';
if (defined $data->{'legend'}) {
$legend = qq{<legend>$data->{legend}</legend>};
undef $data->{'legend'};
}
# header at the top of the fieldset
my $header = '';
if (defined $data->{'header'}) {
lib/HTML/FormBuilder/FieldSet.pm view on Meta::CPAN
if (defined $data->{'comment'}) {
$comment = qq{<div class="$self->{classes}{comment}"><p>$data->{comment}</p></div>};
undef $data->{'comment'};
}
return $legend . $header . $comment;
}
#####################################################################
# Usage : $self->_wrap_fieldset($fieldset_html)
# Purpose : wrap fieldset html by template
view all matches for this distribution
view release on metacpan or search on metacpan
FormEngine/Skin.pm view on Meta::CPAN
$templ{_textarea} = '<textarea name="<&NAME&>" id="<&ID&>" cols="<&COLS&>" rows="<&ROWS&>" <&#readonly&> <&TEXTAREA_XP&>><&#value&></textarea>';
$templ{_hidden} = '<input type="hidden" name="<&NAME&>" id="<&ID&>" value="<&#value&>" <&HIDDEN_XP&>/>';
$templ{hidden} = '<&_hidden&>';
$templ{_fieldset} = '
<fieldset>
<legend><&LEGEND&></legend>
<table border=0><~
<tr><&TEMPL&></tr>~TEMPL~>
</table>
</fieldset>';
$templ{_templ} = '<~<&TEMPL&>~TEMPL~>';
view all matches for this distribution
view release on metacpan or search on metacpan
lib/HTML/FormFu/ExtJS.pm view on Meta::CPAN
for ( @{ $self->get_elements() } ) {
next if ( $_->type eq "Submit" || $_->type eq "Button" );
tie my %obj, 'Tie::Hash::Indexed';
if ( $_->type eq "Fieldset" ) {
%obj =
( items => \ext_items($_), title => $_->legend, autoHeight => 1 );
} elsif ( $_->type eq "SimpleTable" ) {
my @tr = grep { $_->tag eq "tr" } @{ $_->get_elements() };
my @items;
push( @items, ext_items($_) ) for (@tr);
view all matches for this distribution
view release on metacpan or search on metacpan
lib/HTML/FormFu/Element/Block.pm view on Meta::CPAN
$render->{tag},
process_attrs( $render->{attributes} ),
;
}
if ( defined $render->{legend} ) {
$html .=
sprintf "\n<legend%s>%s</legend>",
defined( $render->{legend_attributes} )
? process_attrs( $render->{legend_attributes} )
: '',
$render->{legend};
}
# block template
$html .= "\n";
view all matches for this distribution
view release on metacpan or search on metacpan
t/lib/BookDB/Form/Widget/Wrapper/Para.pm view on Meta::CPAN
my $class = $self->render_class( $result );
my $output = qq{\n<p $class>};
if ( $self->has_flag('is_compound' ) ) {
$output .= '<fieldset class="' . $self->html_name . '">';
$output .= '<legend>' . $self->label . '</legend>';
}
elsif ( !$self->has_flag('no_render_label') && $self->label ) {
$output .= $self->render_label;
}
$output .= $rendered_widget;
view all matches for this distribution
view release on metacpan or search on metacpan
lib/HTML/FormHandler/Render/Simple.pm view on Meta::CPAN
$wrapper_tag ||= $field->has_flag('is_repeatable') ? 'fieldset' : 'div';
my $attrs = process_attrs($field->wrapper_attributes);
$output .= qq{<$wrapper_tag$attrs>};
if( $wrapper_tag eq 'fieldset' ) {
$output .= '<legend>' . $field->loc_label . '</legend>';
}
elsif ( ! $field->get_tag('label_none') && $field->do_label && length( $field->label ) > 0 ) {
$output .= "\n" . $self->render_label($field);
}
view all matches for this distribution
view release on metacpan or search on metacpan
examples/template/form.tt view on Meta::CPAN
[% MACRO form_header BLOCK %]
<form name="[% id %]" id="[% id %]" method="post" action="[% action %]" class="form-horizontal[% IF jquery_validate %] jquery-validate-form[% END %]">
<fieldset>
<legend>[% legend %]</legend>
[% IF form.errors %]
<div class="alert alert-error">
<a class="close" data-dismiss="alert">Ã</a>
<p>
<b>There was a problem, please check the highlighted fields in the form below</b>
view all matches for this distribution
view release on metacpan or search on metacpan
lib/HTML/FormTemplate.pm view on Meta::CPAN
=head1 PROPERTIES FOR USER-INPUT VALIDATION
In cases where user input has been evaluated to be in error, a visual cue is
provided to the user in the form of a question mark ("?") that this is so.
You need to make your own legend explaining this where appropriate.
See bad_input_marker(). Note that any empty strings are filtered from the
user input prior to any validation checks are done.
=head2 is_required
This boolean property is an assertion that the field must be filled in by the
user, or otherwise there is an error condition. A visual cue is provided to
the user in the form of an asterisk ("*") that this is so. You need to make
your own legend explaining this where appropriate. See required_field_marker().
=head2 req_min_count, req_max_count
These numerical properties are assertions of how few or many members of field
groups must be filled in or options selected by the user, or otherwise there is
lib/HTML/FormTemplate.pm view on Meta::CPAN
=head2 is_private
This boolean property results in a visual cue provided to the user in the form
of a tilde ("~"), that you don't intend to make the contents of that field
public. You need to make your own legend explaining this where appropriate.
See private_field_marker().
=head2 exclude_in_echo
This boolean property is an assertion that this field's value will
view all matches for this distribution
view release on metacpan or search on metacpan
lib/HTML/FormsDj.pm view on Meta::CPAN
$htmlfields .= $this->_p_field($field);
}
$html .= $this->_fieldset(
join(' ', @{$fieldset->{classes}}),
$fieldset->{id},
$fieldset->{legend},
$htmlfields
);
}
}
lib/HTML/FormsDj.pm view on Meta::CPAN
foreach my $fieldset (@{$this->{meta}->{fieldsets}}) {
my $htmlfields;
foreach my $field (@{$fieldset->{fields}}) {
$htmlfields .= $this->_tr_field($field);
}
$html .= $this->_table($fieldset->{id}, $htmlfields, $fieldset->{legend});
}
}
return $html;
}
lib/HTML/FormsDj.pm view on Meta::CPAN
return sprintf qq(<tr id="%s"><td class="%s tdlabel">%s</td><td class="%s tdinput">%s</td></tr>\n),
$id, $class, $label, $class, $input;
}
sub _table {
my($this, $id, $cdata, $legend) = @_;
my $html = sprintf qq(<table id="%s">), $id;
if ($legend) {
$html .= sprintf qq(<thead><tr><td colspan="2">%s</td></tr></thead>\n), $legend;
}
$html .= sprintf qq(<tbody>%s</tbody></table>\n), $cdata;
return $html;
}
lib/HTML/FormsDj.pm view on Meta::CPAN
if (! exists $fieldset->{classes}) {
$fieldset->{classes} = [ qw(formfieldset) ];
}
if (! exists $fieldset->{legend}) {
$fieldset->{legend} = qq();
}
my @normalized;
foreach my $field (@{$fieldset->{fields}}) {
if (! exists $field->{field}) {
lib/HTML/FormsDj.pm view on Meta::CPAN
return;
}
sub _fieldset {
my($this, $class, $id, $legend, $cdata) = @_;
return sprintf qq(<fieldset class="%s" id="%s"><legend>%s</legend>\n%s\n</fieldset>\n),
$class, $id, $legend, $cdata;
}
sub _p_field {
my($this, $field) = @_;
return $this->_p(
lib/HTML/FormsDj.pm view on Meta::CPAN
meta => {
fieldsets => [
{
name => 'titleset',
description => 'Enter book title data here',
legend => 'Book Title',
fields => [
{
field => 'title',
label => 'Enter a book title',
message => 'A book title must be at least 4 characters long',
lib/HTML/FormsDj.pm view on Meta::CPAN
]
},
{
name => 'authorset',
description => 'Enter book author data here',
legend => 'Book Author',
fields => [
{
field => 'author',
label => 'Enter an author name',
message => 'A book title must be at least 4 characters long',
lib/HTML/FormsDj.pm view on Meta::CPAN
there is just one more level in the definition. A fieldset
is just a list of groups of fields. It is defined as a list
(an arrayref) which contains hashes, one hash per fieldset.
Each fieldset hash consists of some parameters, like a B<name>
or a B<legend> plus a list of fields, which is exactly defined
as in the B<meta> parameter B<fields> as seen above.
The output of the form is just devided into fieldsets, which
is a HTML tag as well. Each fieldset will have a title, the B<legend>
parameter, an (optional) B<description> and a B<name>.
This is the very same as the META subclass in django forms
is working.
view all matches for this distribution
view release on metacpan or search on metacpan
lib/HTML/GMap.pm view on Meta::CPAN
croak("Cannot create session!");
}
$self->session_id($session->id);
$self->session($session);
$self->legend_field1($params{legend_field1});
$self->legend_field2($params{legend_field2});
my $max_hires_display =
exists $params{max_hires_display}
? $params{max_hires_display}
: 100;
lib/HTML/GMap.pm view on Meta::CPAN
# Function :
# Arguments : \@info ([$icon_url, $label, $count], ...)
# Returns : $html
# Notes :
sub generate_piechart_legend_html {
my ($self, $info_ref) = @_;
my @sorted_info = sort {
if ( ($a->[1] eq 'Clustered' || $a->[1] eq 'Other')
&& ($b->[1] eq 'Clustered' || $b->[1] eq 'Other')) {
lib/HTML/GMap.pm view on Meta::CPAN
# Function :
# Arguments : \%markers
# Returns : $html
# Notes :
sub generate_hires_legend_html {
my ($self, $rows_ref, $type) = @_;
my $legend_field1 = $self->legend_field1;
my $legend_field2 = $self->legend_field2;
my $temp_dir_eq = $self->temp_dir_eq;
my $session_id = $self->session_id;
my $multiples_icon_url =
"$temp_dir_eq/Multiple-icon-$session_id-0-0-0.png";
my $legend_info;
my @legend_markers;
if ($type eq 'hires') {
$legend_info = qq[(The coordinates with overlapping data points
are displayed as <img src="$multiples_icon_url">.)];
my %legend_markers;
foreach my $key (keys %$rows_ref) {
foreach my $row_ref (@{$rows_ref->{$key}->{rows}}) {
my $icon_url = $row_ref->{icon_url};
my $legend_field1_value = $row_ref->{$legend_field1};
my $legend_field2_value = $row_ref->{$legend_field2};
$legend_markers{$icon_url}{count}++;
$legend_markers{$icon_url}{text} = join(
'; ',
map { s/^(.{5}).+/$1 .../; $_; } $legend_field1_value,
$legend_field2_value
);
}
}
foreach my $icon_url (
sort { $legend_markers{$b}{count} <=> $legend_markers{$a}{count} }
keys %legend_markers
) {
my $text = $legend_markers{$icon_url}{text};
push @legend_markers,
{ icon_url => $icon_url,
icon_size => 11,
text => $text,
};
}
}
else {
$legend_info = qq[];
@legend_markers = @$rows_ref;
}
my $html;
$html .= qq[<table>\n];
$html .= qq[<tr>\n];
$html .= qq[<td colspan="2">
$legend_info<br/>
</td>\n];
$html .= qq[</tr>\n];
foreach my $legend_marker (@legend_markers) {
my $icon_url = $legend_marker->{icon_url};
my $icon_size = $legend_marker->{icon_size};
my $text = $legend_marker->{text};
$html .= qq[<tr>\n];
$html .= qq[<td align="left">
<img height="$icon_size" src="$icon_url"/> $text
</td>\n];
$html .= qq[</tr>\n];
lib/HTML/GMap.pm view on Meta::CPAN
sub generate_hires_details_html {
my ($self, $key_ref) = @_;
my $data_ref = $key_ref->{rows};
my $legend_field1 = $self->legend_field1;
my $legend_field2 = $self->legend_field2;
my $session = $self->session;
my $temp_dir_eq = $self->temp_dir_eq;
my %icon_urls;
my $total_count = 0;
foreach my $row_ref (@$data_ref) {
my $icon_url = $row_ref->{icon_url};
my $legend_field1_value = $row_ref->{$legend_field1};
my $legend_field2_value = $row_ref->{$legend_field2};
$icon_urls{$icon_url}{count}++;
$icon_urls{$icon_url}{text} = join(
'; ', map { s/^(.{5}).+/$1 .../; $_; } $legend_field1_value,
$legend_field2_value
);
$total_count++;
}
lib/HTML/GMap.pm view on Meta::CPAN
my ($self, $value) = @_;
$self->{install_dir_eq} = $value if @_ > 1;
return $self->{install_dir_eq};
}
sub legend_field1 {
my ($self, $value) = @_;
$self->{legend_field1} = $value if @_ > 1;
return $self->{legend_field1};
}
sub legend_field2 {
my ($self, $value) = @_;
$self->{legend_field2} = $value if @_ > 1;
return $self->{legend_field2};
}
sub max_hires_display {
my ($self, $value) = @_;
$self->{max_hires_display} = $value if @_ > 1;
lib/HTML/GMap.pm view on Meta::CPAN
# HTML variables
cgi_header => $cgi_header,
header => $self->_content($self->header),
footer => $self->_content($self->footer),
page_title => $self->page_title,
legend => undef,
param_fields_with_values => \@param_fields_with_values,
messages => $self->messages,
gmap_key => $self->gmap_key,
gmap_main_css_file_eq => $gmap_main_css_file_eq,
gmap_main_js_file_eq => $gmap_main_js_file_eq,
lib/HTML/GMap.pm view on Meta::CPAN
sub _generate_hires_xml_data {
my ($self, $data_ref) = @_;
my @base_sql_fields = @{$self->base_sql_fields};
my $legend_field1 = $self->legend_field1;
my $legend_field2 = $self->legend_field2;
my $session = $self->session;
my $temp_dir = $self->temp_dir;
my $temp_dir_eq = $self->temp_dir_eq;
my $session_id = $self->session_id;
lib/HTML/GMap.pm view on Meta::CPAN
if (scalar(keys %$markers_ref) > $max_hires_display) {
($markers_ref, $max_data_count) = $self->_cluster_data($data_ref);
$self->_add_hires_icon_urls($markers_ref);
my $lowres_legend_marker_count = 5;
my $density_icon_prefix = "Density-icon-$session_id";
my $icon = GD::Icons->new(
shape_keys => [":default"],
shape_values => ["_large_square"],
color_keys => [":default"],
color_values => ["#0009ff"],
sval_keys => [0 .. $lowres_legend_marker_count - 1],
icon_dir => $temp_dir,
icon_prefix => $density_icon_prefix,
);
$icon->generate_icons;
my @lowres_legend_markers;
foreach my $i (0 .. $lowres_legend_marker_count - 1) {
my $icon_url = "$temp_dir_eq/$density_icon_prefix-0-0-$i.png";
my $text =
int($i * $max_data_count / $lowres_legend_marker_count) + 1
. ' to '
. int(($i + 1) * $max_data_count / $lowres_legend_marker_count)
. ' points';
my $icon_size = 22;
push @lowres_legend_markers,
{ icon_url => $icon_url,
icon_size => $icon_size,
text => $text,
};
}
lib/HTML/GMap.pm view on Meta::CPAN
my $data_count = scalar(@$data_ref);
my $density_icon_index =
int(($data_count / $max_data_count) *
($lowres_legend_marker_count - 1));
my $icon_url =
"$temp_dir_eq/$density_icon_prefix-0-0-$density_icon_index.png";
my $icon_size = 22;
my $details_on_click =
lib/HTML/GMap.pm view on Meta::CPAN
longitude => $longitude,
icon_url => $icon_url,
icon_size => $icon_size,
details_on_click => $details_on_click,
messages_on_click => '',
legend_on_click => '',
};
push(@{$xml_ref->{marker}}, $row_ref);
}
my $legend = $self->generate_hires_legend_html(
\@lowres_legend_markers,
'lowres'
);
my $meta_data_ref = {
messages_by_default => $self->messages,
details_by_default => '[Click an icon for details ...]',
legend_by_default => $legend,
};
push(@{$xml_ref->{meta_data}}, $meta_data_ref);
}
# Else
lib/HTML/GMap.pm view on Meta::CPAN
longitude => $longitude,
icon_url => $icon_url,
icon_size => $icon_size,
details_on_click => $details_on_click,
messages_on_click => '',
legend_on_click => '',
};
push(@{$xml_ref->{marker}}, $row_ref);
}
my $legend = $self->generate_hires_legend_html($markers_ref, 'hires');
my $meta_data_ref = {
messages_by_default => $self->messages,
details_by_default => '[Click icons for details ...]',
legend_by_default => $legend
};
push(@{$xml_ref->{meta_data}}, $meta_data_ref);
}
return $xml_ref;
lib/HTML/GMap.pm view on Meta::CPAN
# Notes : This is a private method.
sub _add_hires_icon_urls {
my ($self, $markers_ref) = @_;
my $legend_field1 = $self->legend_field1;
my $legend_field2 = $self->legend_field2;
my $session = $self->session;
my $hires_shape_keys = $self->hires_shape_keys;
my $hires_shape_values = $self->hires_shape_values;
lib/HTML/GMap.pm view on Meta::CPAN
my $temp_dir = $self->temp_dir;
my $temp_dir_eq = $self->temp_dir_eq;
my $session_id = $self->session_id;
# Create icon set and store in row_refs
my %legend_field1_values;
my %legend_field2_values;
foreach my $key (keys %{$markers_ref}) {
my $data_ref = $markers_ref->{$key}->{rows};
foreach my $row_ref (@$data_ref) {
$legend_field1_values{$row_ref->{$legend_field1}} = 1
if exists $row_ref->{$legend_field1};
$legend_field2_values{$row_ref->{$legend_field2}} = 1
if exists $row_ref->{$legend_field2};
}
}
my @legend_field1_values = sort keys %legend_field1_values;
my @legend_field2_values = sort keys %legend_field2_values;
my $small_icon_prefix = "Small-icon-$session_id";
my $icon = GD::Icons->new(
color_keys => $hires_color_keys ? $hires_color_keys : \@legend_field2_values,
color_values => $hires_color_values,
shape_keys => $hires_shape_keys ? $hires_shape_keys : \@legend_field1_values,
shape_values => $hires_shape_values,
sval_keys => [":default"],
icon_dir => $temp_dir,
icon_prefix => $small_icon_prefix,
);
lib/HTML/GMap.pm view on Meta::CPAN
foreach my $key (keys %{$markers_ref}) {
my $data_ref = $markers_ref->{$key}->{rows};
foreach my $row_ref (@$data_ref) {
$row_ref->{icon_url} = "$temp_dir_eq/"
. $icon->icon(
$row_ref->{$legend_field1},
$row_ref->{$legend_field2}, ':default' # GD::Icons uses first color, then shape
);
}
}
return 1;
lib/HTML/GMap.pm view on Meta::CPAN
longitude => $longitude,
icon_url => $icon_url,
icon_size => $icon_size,
details_on_click => $details_on_click,
messages_on_click => '',
legend_on_click => '',
};
push(@{$xml_ref->{marker}}, $row_ref);
}
my $legend_info =
$self->_generate_piechart_legend_info(\%all_cluster_values);
my $legend = $self->generate_piechart_legend_html($legend_info);
my $meta_data_ref = {
messages_by_default => $self->messages,
details_by_default => '[Click a pie chart for details ...]',
legend_by_default => $legend
};
push(@{$xml_ref->{meta_data}}, $meta_data_ref);
return $xml_ref;
}
lib/HTML/GMap.pm view on Meta::CPAN
# Function :
# Arguments : \%all_cluster_values (key: $label, value: count), \%color_table (key: $label, value: color)
# Returns : $html
# Notes :
sub _generate_piechart_legend_info {
my ($self, $data_ref) = @_;
my $session = $self->session;
my $color_table_ref = $session->param('color_table');
my $temp_dir = $self->temp_dir;
my $temp_dir_eq = $self->temp_dir_eq;
my @legend_data;
foreach my $label (
sort { $data_ref->{$b} <=> $data_ref->{$a} }
keys %{$data_ref}
) {
lib/HTML/GMap.pm view on Meta::CPAN
$graph->set(
'3d' => 0,
'labelclr' => 0,
'axislabelclr' => 0,
'legendclr' => 0,
'valuesclr' => 0,
'textclr' => 0,
'start_angle' => 180,
'accentclr' => 'dgray',
'dclrs' => [$color, 'white'],
lib/HTML/GMap.pm view on Meta::CPAN
binmode IMG;
print IMG $icon->png;
close IMG;
}
push @legend_data, [$icon_url, $label, $count];
}
return \@legend_data;
}
# Function :
# Arguments : $data_ref (an array ref of two equal-length arrays is needed)
# Returns : 1
lib/HTML/GMap.pm view on Meta::CPAN
$graph->set(
'3d' => 0,
'labelclr' => 0,
'axislabelclr' => 0,
'legendclr' => 0,
'valuesclr' => 0,
'textclr' => 0,
'start_angle' => 180,
'accentclr' => 'dgray',
'dclrs' => $color_ref,
lib/HTML/GMap.pm view on Meta::CPAN
'Longitude',
'Store Name',
'Pharmacy',
'Open 24 Hours',
],
legend_field1 => 'pharmacy',
legend_field2 => 'open24',
param_fields => {
pharmacy => ['all:All', 'Yes', 'No'],
open24 => ['all:All', 'Yes', 'No'],
},
gmap_key => $gmap_key,
lib/HTML/GMap.pm view on Meta::CPAN
base_sql_table Base SQL table (or table join) to build final scalar
SQL queries from
base_sql_fields Fields that will be retrieved by the arrayref
SQL statement
base_output_headers Headers that will be output in results arrayref
legend_field1 For hires display, first field to fold on scalar
(Required only for xml-hires)
legend_field2 For hires display, second field to fold on scalar
(Required only for xml-hires)
cluster_field For pie chart display, the field to fold on scalar
(Required only for xml-piechart)
param_fields Param fields to include as filters arrayref
gmap_key Google Maps API key scalar
view all matches for this distribution
view release on metacpan or search on metacpan
lib/HTML/GUI/fieldset.pm view on Meta::CPAN
$styleProp{display} = 'none';
}
$tagProp{style} = $self->getStyleContent(\%styleProp);
$tagProp{id} = $self->{id};
my $legendHtml = '';
if (exists $self->{label}){
$legendHtml = $self->getHtmlTag("legend",
undef,
$self->escapeHtml($self->{label}));
}
return $self->getHtmlTag( "fieldset",
\%tagProp,
$legendHtml
.$self->SUPER::getHtml()) ;
}
view all matches for this distribution
view release on metacpan or search on metacpan
lib/HTML/HTML5/Builder.pm view on Meta::CPAN
basefont bb bdo bgsound big blink blockquote body br button canvas
caption center cite code col colgroup command datagrid datalist
dd del details dfn dialog dir div dl dt em embed fieldset figure
figcaption font footer form frame frameset h1 h2 h3 h4 h5 h6
head header hgroup hr html i iframe img input ins isindex kbd
keygen label legend li link listing map mark marquee menu meta
meter nav nobr noembed noframes noscript object ol optgroup
option output p param plaintext pre progress q rp rt ruby s
samp script select section small source spacer span strike
strong style sub sup summary table tbody td textarea tfoot th
thead time title tr track tt u ul var video wbr xmp
lib/HTML/HTML5/Builder.pm view on Meta::CPAN
@conforming = qw{
a abbr address area article aside audio b base bb bdo blockquote
body br button canvas caption cite code col colgroup command
datagrid datalist dd del details dfn dialog div dl dt em embed
fieldset figure footer form h1 h2 h3 h4 h5 h6 head header hr html
i iframe img input ins kbd label legend li mark menu
meter nav noscript object ol optgroup option output p param
pre progress rp rt ruby samp script section select small source
span strong style sup table tbody td textarea tfoot th thead
title tr ul var video
};
view all matches for this distribution
view release on metacpan or search on metacpan
lib/HTML/HTML5/DOM.pm view on Meta::CPAN
};
our @ELEMENTS;
BEGIN {
@ELEMENTS = map { sprintf('{%s}%s', HTML::HTML5::DOM->XHTML_NS, $_) }
qw/legend/;
}
use XML::LibXML::Augment 0
-names => [@ELEMENTS],
-isa => ['HTML::HTML5::DOM::HTMLElement'];
view all matches for this distribution
view release on metacpan or search on metacpan
lib/HTML/HTML5/ToText.pm view on Meta::CPAN
input kbd label mark meter nobr progress q rp rt ruby s
samp small span strike strong sub sup time tt u var wbr];
my @block = qw[address applet article aside audio blockquote body caption
center colgroup datalist del dir div dd details dl dt
fieldset figcaption figure footer form frameset h1 h2 h3
h4 h5 h6 head header hgroup html iframe ins legend li
listing map marquee menu nav noembed noframes noscript
object ol optgroup option p pre select section source summary
table tbody td tfoot th thead title tr track ul video];
{
view all matches for this distribution
view release on metacpan or search on metacpan
lib/auto/HTML/JQuery/static/js/jquery.min.js view on Meta::CPAN
{},i;if(f&&a.length){e=0;for(var o=a.length;e<o;e++){i=a[e];j[i]||(j[i]=c.expr.match.POS.test(i)?c(i,b||this.context):i)}for(;f&&f.ownerDocument&&f!==b;){for(i in j){e=j[i];if(e.jquery?e.index(f)>-1:c(f).is(e)){d.push({selector:i,elem:f});delete j[i]...
"string")return c.inArray(this[0],a?c(a):this.parent().children());return c.inArray(a.jquery?a[0]:a,this)},add:function(a,b){a=typeof a==="string"?c(a,b||this.context):c.makeArray(a);b=c.merge(this.get(),a);return this.pushStack(qa(a[0])||qa(b[0])?b:...
d)},next:function(a){return c.nth(a,2,"nextSibling")},prev:function(a){return c.nth(a,2,"previousSibling")},nextAll:function(a){return c.dir(a,"nextSibling")},prevAll:function(a){return c.dir(a,"previousSibling")},nextUntil:function(a,b,d){return c.d...
a.contentDocument||a.contentWindow.document:c.makeArray(a.childNodes)}},function(a,b){c.fn[a]=function(d,f){var e=c.map(this,b,d);eb.test(a)||(f=d);if(f&&typeof f==="string")e=c.filter(f,e);e=this.length>1?c.unique(e):e;if((this.length>1||gb.test(f))...
1&&f.push(a);a=a[b]}return f},nth:function(a,b,d){b=b||1;for(var f=0;a;a=a[d])if(a.nodeType===1&&++f===b)break;return a},sibling:function(a,b){for(var d=[];a;a=a.nextSibling)a.nodeType===1&&a!==b&&d.push(a);return d}});var Ja=/ jQuery\d+="(?:\d+|null...
a:b+"></"+d+">"},F={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<tab...
c(this);d.text(a.call(this,b,d.text()))});if(typeof a!=="object"&&a!==w)return this.empty().append((this[0]&&this[0].ownerDocument||s).createTextNode(a));return c.text(this)},wrapAll:function(a){if(c.isFunction(a))return this.each(function(d){c(this)...
wrapInner:function(a){if(c.isFunction(a))return this.each(function(b){c(this).wrapInner(a.call(this,b))});return this.each(function(){var b=c(this),d=b.contents();d.length?d.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){c(thi...
prepend:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefo...
this.nextSibling)});else if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,c(arguments[0]).toArray());return a}},remove:function(a,b){for(var d=0,f;(f=this[d])!=null;d++)if(!a||c.filter(a,[f]).length){if(!b&&f.nodeType=...
return this},clone:function(a){var b=this.map(function(){if(!c.support.noCloneEvent&&!c.isXMLDoc(this)){var d=this.outerHTML,f=this.ownerDocument;if(!d){d=f.createElement("div");d.appendChild(this.cloneNode(true));d=d.innerHTML}return c.clean([d.repl...
view all matches for this distribution
view release on metacpan or search on metacpan
lib/HTML/Laundry/Rules.pm view on Meta::CPAN
my @acceptable = qw(
a abbr acronym address area b bdo big blockquote
br button caption center cite code col colgroup dd
del dfn dir div dl dt em fieldset font form
h1 h2 h3 h4 h5 h6 hr i img input ins kbd
label legend li map menu ol optgroup option p
pre q s samp select small span strike strong
sub sup table tbody td textarea tfoot th thead
tr tt u ul var wbr
);
my %acceptable = map { ( $_, 1 ) } @acceptable;
view all matches for this distribution
view release on metacpan or search on metacpan
lib/HTML/Lint/HTML4.pm view on Meta::CPAN
img => _hash( @std, qw( align alt border height hspace ismap longdesc name src usemap vspace width ) ),
input => _hash( @std, qw( accept accesskey align alt border checked disabled maxlength name onblur onchange onfocus onselect readonly size src tabindex type usemap value ) ),
ins => _hash( @std, qw( cite datetime ) ),
isindex => _hash( @core, @i18n, qw( prompt ) ),
label => _hash( @std, qw( accesskey for onblur onfocus ) ),
legend => _hash( @std, qw( accesskey align ) ),
li => _hash( @std, qw( type value ) ),
'link' => _hash( @std, qw( charset href hreflang media rel rev target type ) ),
'map' => _hash( @std, qw( name ) ),
menu => _hash( @std, qw( compact ) ),
meta => _hash( @i18n, qw( content http-equiv name scheme ) ),
view all matches for this distribution
view release on metacpan or search on metacpan
examples/misc/example2.pl view on Meta::CPAN
</div>
</div>
<div class="figure">
<img class="image" src="photo.jpeg" alt="">
<p class="legend">
<a rel="tag" href="http://en.wikipedia.org/wiki/Photography">Photo</a>
of <span class="subject">Albert Einstein</span> by
<span class="vcard credit">
<span class="fn">Paul Ehrenfest</span>
(<span class="role">photographer</span>)
view all matches for this distribution
view release on metacpan or search on metacpan
source/myhtml/tag_init.c view on Meta::CPAN
MyHTML_TAG_CATEGORIES_ORDINARY, MyHTML_TAG_CATEGORIES_ORDINARY,
MyHTML_TAG_CATEGORIES_ORDINARY, MyHTML_TAG_CATEGORIES_ORDINARY,
MyHTML_TAG_CATEGORIES_ORDINARY
}
},
{MyHTML_TAG_LEGEND, "legend", 6, MyHTML_TOKENIZER_STATE_DATA,
{
MyHTML_TAG_CATEGORIES_ORDINARY, MyHTML_TAG_CATEGORIES_ORDINARY,
MyHTML_TAG_CATEGORIES_ORDINARY, MyHTML_TAG_CATEGORIES_ORDINARY,
MyHTML_TAG_CATEGORIES_ORDINARY, MyHTML_TAG_CATEGORIES_ORDINARY,
MyHTML_TAG_CATEGORIES_ORDINARY
view all matches for this distribution