Version Description
Download this release
Release Info
Developer | themeisle |
Plugin | WordPress Charts and Graphs Lite |
Version | 3.8.0 |
Comparing to | |
See all releases |
Code changes from version 3.7.12 to 3.8.0
- CHANGELOG.md +4 -0
- classes/Visualizer/Module/Chart.php +1 -1
- classes/Visualizer/Module/Frontend.php +17 -1
- classes/Visualizer/Plugin.php +1 -1
- classes/Visualizer/Render/Library.php +19 -3
- classes/Visualizer/Render/Page/Data.php +7 -0
- classes/Visualizer/Render/Sidebar.php +238 -2
- css/frame.css +11 -2
- css/library.css +11 -0
- css/media.css +1 -1
- index.php +1 -1
- js/preview.js +17 -1
- js/render-facade.js +1 -1
- js/render-google.js +54 -3
- readme.txt +7 -0
- vendor/autoload.php +1 -1
- vendor/composer/autoload_real.php +7 -7
- vendor/composer/autoload_static.php +5 -5
- vendor/composer/installed.php +6 -6
CHANGELOG.md
CHANGED
@@ -1,3 +1,7 @@
|
|
|
|
|
|
|
|
|
|
1 |
##### [Version 3.7.12](https://github.com/Codeinwp/visualizer/compare/v3.7.11...v3.7.12) (2022-09-07)
|
2 |
|
3 |
- Fixed compatibility issue with some themes and plugins [#933](https://github.com/Codeinwp/visualizer/issues/933)
|
1 |
+
#### [Version 3.8.0](https://github.com/Codeinwp/visualizer/compare/v3.7.12...v3.8.0) (2022-09-21)
|
2 |
+
|
3 |
+
- Add data filter support for the charts
|
4 |
+
|
5 |
##### [Version 3.7.12](https://github.com/Codeinwp/visualizer/compare/v3.7.11...v3.7.12) (2022-09-07)
|
6 |
|
7 |
- Fixed compatibility issue with some themes and plugins [#933](https://github.com/Codeinwp/visualizer/issues/933)
|
classes/Visualizer/Module/Chart.php
CHANGED
@@ -737,7 +737,7 @@ class Visualizer_Module_Chart extends Visualizer_Module {
|
|
737 |
$title = $this->_chart->ID;
|
738 |
}
|
739 |
$settings['internal_title'] = $title;
|
740 |
-
$settings_label = $settings['pieResidueSliceLabel'];
|
741 |
if ( empty( $settings_label ) ) {
|
742 |
$settings['pieResidueSliceLabel'] = esc_html__( 'Other', 'visualizer' );
|
743 |
} else {
|
737 |
$title = $this->_chart->ID;
|
738 |
}
|
739 |
$settings['internal_title'] = $title;
|
740 |
+
$settings_label = isset( $settings['pieResidueSliceLabel'] ) ? $settings['pieResidueSliceLabel'] : '';
|
741 |
if ( empty( $settings_label ) ) {
|
742 |
$settings['pieResidueSliceLabel'] = esc_html__( 'Other', 'visualizer' );
|
743 |
} else {
|
classes/Visualizer/Module/Frontend.php
CHANGED
@@ -395,6 +395,19 @@ class Visualizer_Module_Frontend extends Visualizer_Module {
|
|
395 |
unset( $settings['chart-img'] );
|
396 |
}
|
397 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
398 |
// add chart to the array
|
399 |
$this->_charts[ $id ] = array(
|
400 |
'type' => $type,
|
@@ -478,8 +491,11 @@ class Visualizer_Module_Frontend extends Visualizer_Module {
|
|
478 |
if ( $type === 'tabular' ) {
|
479 |
$prefix = 'T' . 'a' . 'bl' . 'e';
|
480 |
}
|
|
|
|
|
|
|
481 |
// return placeholder div
|
482 |
-
return '<div class="' . $container_class . '">' . $actions_div . '<div id="' . $id . '"' . $this->getHtmlAttributes( $attributes ) . '></div>' . $this->addSchema( $chart->ID ) . ( ! Visualizer_Module::is_pro() ? ( '<' . 'di' . 'v st' . 'yl' . 'e="' . 'op' . 'a' . 'ci' . 't' . 'y:' . '0' . '.7' . ';t' . 'ex' . 't-a' . 'li' . 'gn:' . 'ri' . 'gh' . 't;b' . 'o' . 'tto' . 'm: 1' . '0px; z-i' . 'nd' . 'ex:1' . '00' . '0; ' . 'le' . 'ft' . ':2' . '0px' . '; fo' . 'nt-si' . 'ze: 1' . '4px">' . $prefix . ' b' . 'y' . ' <a ' . 'h' . 're' . 'f="ht' . 'tp' . 's:/' . '/t' . 'he' . 'me' . 'i' . 'sl' . 'e' . '.c' . 'om' . '/p' . 'lu' . 'gi' . 'ns' . '/v' . 'i' . 'su' . 'al' . 'iz' . 'er' . '-c' . 'ha' . 'rts' . '-a' . 'nd' . '-gr' . 'ap' . 'hs' . '/" t' . 'arg' . 'et="' . '_bl' . 'an' . 'k" re' . 'l=' . '"no' . 'fol' . 'l' . 'ow"' . '>V' . 'is' . 'u' . 'a' . 'l' . 'i' . 'z' . 'e' . 'r' . '</' . 'a' . '>' . '<' . '/' . 'd' . 'i' . 'v' . '>' ) : '' ) . '</div>';
|
483 |
}
|
484 |
|
485 |
/**
|
395 |
unset( $settings['chart-img'] );
|
396 |
}
|
397 |
|
398 |
+
$enable_controls = false;
|
399 |
+
if ( isset( $settings['controls'] ) && ! empty( $settings['controls']['controlType'] ) ) {
|
400 |
+
$column_index = $settings['controls']['filterColumnIndex'];
|
401 |
+
$column_label = $settings['controls']['filterColumnLabel'];
|
402 |
+
if ( 'false' !== $column_index || 'false' !== $column_label ) {
|
403 |
+
$enable_controls = true;
|
404 |
+
}
|
405 |
+
}
|
406 |
+
|
407 |
+
if ( ! $enable_controls ) {
|
408 |
+
unset( $settings['controls'] );
|
409 |
+
}
|
410 |
+
|
411 |
// add chart to the array
|
412 |
$this->_charts[ $id ] = array(
|
413 |
'type' => $type,
|
491 |
if ( $type === 'tabular' ) {
|
492 |
$prefix = 'T' . 'a' . 'bl' . 'e';
|
493 |
}
|
494 |
+
if ( Visualizer_Module::is_pro() && $enable_controls ) {
|
495 |
+
$actions_div .= '<div id="control_wrapper_' . $id . '"></div>';
|
496 |
+
}
|
497 |
// return placeholder div
|
498 |
+
return '<div class="' . $container_class . '" id="chart_wrapper_' . $id . '">' . $actions_div . '<div id="' . $id . '"' . $this->getHtmlAttributes( $attributes ) . '></div>' . $this->addSchema( $chart->ID ) . ( ! Visualizer_Module::is_pro() ? ( '<' . 'di' . 'v st' . 'yl' . 'e="' . 'op' . 'a' . 'ci' . 't' . 'y:' . '0' . '.7' . ';t' . 'ex' . 't-a' . 'li' . 'gn:' . 'ri' . 'gh' . 't;b' . 'o' . 'tto' . 'm: 1' . '0px; z-i' . 'nd' . 'ex:1' . '00' . '0; ' . 'le' . 'ft' . ':2' . '0px' . '; fo' . 'nt-si' . 'ze: 1' . '4px">' . $prefix . ' b' . 'y' . ' <a ' . 'h' . 're' . 'f="ht' . 'tp' . 's:/' . '/t' . 'he' . 'me' . 'i' . 'sl' . 'e' . '.c' . 'om' . '/p' . 'lu' . 'gi' . 'ns' . '/v' . 'i' . 'su' . 'al' . 'iz' . 'er' . '-c' . 'ha' . 'rts' . '-a' . 'nd' . '-gr' . 'ap' . 'hs' . '/" t' . 'arg' . 'et="' . '_bl' . 'an' . 'k" re' . 'l=' . '"no' . 'fol' . 'l' . 'ow"' . '>V' . 'is' . 'u' . 'a' . 'l' . 'i' . 'z' . 'e' . 'r' . '</' . 'a' . '>' . '<' . '/' . 'd' . 'i' . 'v' . '>' ) : '' ) . '</div>';
|
499 |
}
|
500 |
|
501 |
/**
|
classes/Visualizer/Plugin.php
CHANGED
@@ -28,7 +28,7 @@
|
|
28 |
class Visualizer_Plugin {
|
29 |
|
30 |
const NAME = 'visualizer';
|
31 |
-
const VERSION = '3.
|
32 |
|
33 |
// custom post types
|
34 |
const CPT_VISUALIZER = 'visualizer';
|
28 |
class Visualizer_Plugin {
|
29 |
|
30 |
const NAME = 'visualizer';
|
31 |
+
const VERSION = '3.8.0';
|
32 |
|
33 |
// custom post types
|
34 |
const CPT_VISUALIZER = 'visualizer';
|
classes/Visualizer/Render/Library.php
CHANGED
@@ -233,11 +233,20 @@ class Visualizer_Render_Library extends Visualizer_Render {
|
|
233 |
foreach ( $this->charts as $placeholder_id => $chart ) {
|
234 |
// show the sidebar after the first 3 charts.
|
235 |
$count++;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
236 |
if ( 3 === $count ) {
|
237 |
$this->_renderSidebar();
|
238 |
-
$this->_renderChartBox( $placeholder_id, $chart['id'] );
|
239 |
} else {
|
240 |
-
$this->_renderChartBox( $placeholder_id, $chart['id'] );
|
241 |
}
|
242 |
}
|
243 |
// show the sidebar if there are less than 3 charts.
|
@@ -282,7 +291,7 @@ class Visualizer_Render_Library extends Visualizer_Render {
|
|
282 |
* @param string $placeholder_id The placeholder's id for the chart.
|
283 |
* @param int $chart_id The id of the chart.
|
284 |
*/
|
285 |
-
private function _renderChartBox( $placeholder_id, $chart_id ) {
|
286 |
$settings = get_post_meta( $chart_id, Visualizer_Plugin::CF_SETTINGS );
|
287 |
$title = '#' . $chart_id;
|
288 |
if ( ! empty( $settings[0]['title'] ) ) {
|
@@ -336,9 +345,16 @@ class Visualizer_Render_Library extends Visualizer_Render {
|
|
336 |
}
|
337 |
$shortcode = sprintf( '[visualizer id="%s" lazy="no" class=""]', $chart_id );
|
338 |
echo '<div class="items"><div class="visualizer-chart"><div class="visualizer-chart-title">', esc_html( $title ), '</div>';
|
|
|
|
|
|
|
|
|
339 |
echo '<div id="', $placeholder_id, '" class="visualizer-chart-canvas">';
|
340 |
echo '<img src="', VISUALIZER_ABSURL, 'images/ajax-loader.gif" class="loader">';
|
341 |
echo '</div>';
|
|
|
|
|
|
|
342 |
echo '<div class="visualizer-chart-footer visualizer-clearfix">';
|
343 |
echo '<a class="visualizer-chart-action visualizer-chart-delete" href="', $delete_url, '" title="', esc_attr__( 'Delete', 'visualizer' ), '" onclick="return showNotice.warn();"></a>';
|
344 |
echo '<a class="visualizer-chart-action visualizer-chart-clone" href="', $clone_url, '" title="', esc_attr__( 'Clone', 'visualizer' ), '"></a>';
|
233 |
foreach ( $this->charts as $placeholder_id => $chart ) {
|
234 |
// show the sidebar after the first 3 charts.
|
235 |
$count++;
|
236 |
+
$enable_controls = false;
|
237 |
+
$settings = isset( $chart['settings'] ) ? $chart['settings'] : array();
|
238 |
+
if ( ! empty( $settings['controls']['controlType'] ) ) {
|
239 |
+
$column_index = $settings['controls']['filterColumnIndex'];
|
240 |
+
$column_label = $settings['controls']['filterColumnLabel'];
|
241 |
+
if ( 'false' !== $column_index || 'false' !== $column_label ) {
|
242 |
+
$enable_controls = true;
|
243 |
+
}
|
244 |
+
}
|
245 |
if ( 3 === $count ) {
|
246 |
$this->_renderSidebar();
|
247 |
+
$this->_renderChartBox( $placeholder_id, $chart['id'], $enable_controls );
|
248 |
} else {
|
249 |
+
$this->_renderChartBox( $placeholder_id, $chart['id'], $enable_controls );
|
250 |
}
|
251 |
}
|
252 |
// show the sidebar if there are less than 3 charts.
|
291 |
* @param string $placeholder_id The placeholder's id for the chart.
|
292 |
* @param int $chart_id The id of the chart.
|
293 |
*/
|
294 |
+
private function _renderChartBox( $placeholder_id, $chart_id, $with_filter = false ) {
|
295 |
$settings = get_post_meta( $chart_id, Visualizer_Plugin::CF_SETTINGS );
|
296 |
$title = '#' . $chart_id;
|
297 |
if ( ! empty( $settings[0]['title'] ) ) {
|
345 |
}
|
346 |
$shortcode = sprintf( '[visualizer id="%s" lazy="no" class=""]', $chart_id );
|
347 |
echo '<div class="items"><div class="visualizer-chart"><div class="visualizer-chart-title">', esc_html( $title ), '</div>';
|
348 |
+
if ( Visualizer_Module::is_pro() && $with_filter ) {
|
349 |
+
echo '<div id="chart_wrapper_' . $placeholder_id . '">';
|
350 |
+
echo '<div id="control_wrapper_' . $placeholder_id . '" class="vz-library-chart-filter"></div>';
|
351 |
+
}
|
352 |
echo '<div id="', $placeholder_id, '" class="visualizer-chart-canvas">';
|
353 |
echo '<img src="', VISUALIZER_ABSURL, 'images/ajax-loader.gif" class="loader">';
|
354 |
echo '</div>';
|
355 |
+
if ( Visualizer_Module::is_pro() && $with_filter ) {
|
356 |
+
echo '</div>';
|
357 |
+
}
|
358 |
echo '<div class="visualizer-chart-footer visualizer-clearfix">';
|
359 |
echo '<a class="visualizer-chart-action visualizer-chart-delete" href="', $delete_url, '" title="', esc_attr__( 'Delete', 'visualizer' ), '" onclick="return showNotice.warn();"></a>';
|
360 |
echo '<a class="visualizer-chart-action visualizer-chart-clone" href="', $clone_url, '" title="', esc_attr__( 'Clone', 'visualizer' ), '"></a>';
|
classes/Visualizer/Render/Page/Data.php
CHANGED
@@ -57,9 +57,16 @@ class Visualizer_Render_Page_Data extends Visualizer_Render_Page {
|
|
57 |
$this->add_additional_content();
|
58 |
|
59 |
// Added by Ash/Upwork
|
|
|
|
|
|
|
|
|
60 |
echo '<div id="canvas">';
|
61 |
echo '<img src="', VISUALIZER_ABSURL, 'images/ajax-loader.gif" class="loader">';
|
62 |
echo '</div>';
|
|
|
|
|
|
|
63 |
echo $this->custom_css;
|
64 |
}
|
65 |
|
57 |
$this->add_additional_content();
|
58 |
|
59 |
// Added by Ash/Upwork
|
60 |
+
if ( Visualizer_Module::is_pro() ) {
|
61 |
+
echo '<div id="chart_wrapper_canvas">';
|
62 |
+
echo '<div id="control_wrapper_canvas"></div>';
|
63 |
+
}
|
64 |
echo '<div id="canvas">';
|
65 |
echo '<img src="', VISUALIZER_ABSURL, 'images/ajax-loader.gif" class="loader">';
|
66 |
echo '</div>';
|
67 |
+
if ( Visualizer_Module::is_pro() ) {
|
68 |
+
echo '</div>';
|
69 |
+
}
|
70 |
echo $this->custom_css;
|
71 |
}
|
72 |
|
classes/Visualizer/Render/Sidebar.php
CHANGED
@@ -158,6 +158,9 @@ abstract class Visualizer_Render_Sidebar extends Visualizer_Render {
|
|
158 |
* @access protected
|
159 |
*/
|
160 |
protected function _renderAdvancedSettings() {
|
|
|
|
|
|
|
161 |
if ( Visualizer_Module_Admin::proFeaturesLocked() ) {
|
162 |
self::_renderGroupStart( esc_html__( 'Frontend Actions', 'visualizer' ) );
|
163 |
} else {
|
@@ -345,14 +348,15 @@ abstract class Visualizer_Render_Sidebar extends Visualizer_Render {
|
|
345 |
* @param string $type The type for the input (out of number, email, tel etc., default is text).
|
346 |
* @param array $custom_attributes The custom attributes.
|
347 |
*/
|
348 |
-
protected static function _renderTextItem( $title, $name, $value, $desc, $placeholder = '', $type = 'text', $custom_attributes = array() ) {
|
349 |
$attributes = '';
|
350 |
if ( $custom_attributes ) {
|
351 |
foreach ( $custom_attributes as $k => $v ) {
|
352 |
$attributes .= ' ' . $k . '="' . esc_attr( $v ) . '"';
|
353 |
}
|
354 |
}
|
355 |
-
|
|
|
356 |
echo '<a class="more-info" href="javascript:;">[?]</a>';
|
357 |
echo '<b>', $title, '</b>';
|
358 |
echo '<input type="', $type, '" class="control-text" ', $attributes, ' name="', $name, '" value="', esc_attr( $value ), '" placeholder="', $placeholder, '">';
|
@@ -567,4 +571,236 @@ abstract class Visualizer_Render_Sidebar extends Visualizer_Render {
|
|
567 |
);
|
568 |
self::_renderSectionEnd();
|
569 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
570 |
}
|
158 |
* @access protected
|
159 |
*/
|
160 |
protected function _renderAdvancedSettings() {
|
161 |
+
// Chart control settings.
|
162 |
+
$this->_renderChartControlsGroup();
|
163 |
+
|
164 |
if ( Visualizer_Module_Admin::proFeaturesLocked() ) {
|
165 |
self::_renderGroupStart( esc_html__( 'Frontend Actions', 'visualizer' ) );
|
166 |
} else {
|
348 |
* @param string $type The type for the input (out of number, email, tel etc., default is text).
|
349 |
* @param array $custom_attributes The custom attributes.
|
350 |
*/
|
351 |
+
protected static function _renderTextItem( $title, $name, $value, $desc, $placeholder = '', $type = 'text', $custom_attributes = array(), $extra_class = array() ) {
|
352 |
$attributes = '';
|
353 |
if ( $custom_attributes ) {
|
354 |
foreach ( $custom_attributes as $k => $v ) {
|
355 |
$attributes .= ' ' . $k . '="' . esc_attr( $v ) . '"';
|
356 |
}
|
357 |
}
|
358 |
+
$extra_class[] = 'viz-section-item';
|
359 |
+
echo '<div class="' . esc_attr( implode( ' ', $extra_class ) ) . '">';
|
360 |
echo '<a class="more-info" href="javascript:;">[?]</a>';
|
361 |
echo '<b>', $title, '</b>';
|
362 |
echo '<input type="', $type, '" class="control-text" ', $attributes, ' name="', $name, '" value="', esc_attr( $value ), '" placeholder="', $placeholder, '">';
|
571 |
);
|
572 |
self::_renderSectionEnd();
|
573 |
}
|
574 |
+
|
575 |
+
/**
|
576 |
+
* Renders chart controls group.
|
577 |
+
*
|
578 |
+
* @access protected
|
579 |
+
*/
|
580 |
+
protected function _renderChartControlsGroup() {
|
581 |
+
if ( 'google' !== $this->getLibrary() ) {
|
582 |
+
return;
|
583 |
+
}
|
584 |
+
if ( Visualizer_Module_Admin::proFeaturesLocked() ) {
|
585 |
+
self::_renderGroupStart( esc_html__( 'Chart Data Filter Configuration', 'visualizer' ) );
|
586 |
+
} else {
|
587 |
+
self::_renderGroupStart( esc_html__( 'Chart Data Filter Configuration', 'visualizer' ) . '<span class="dashicons dashicons-lock"></span>', '', apply_filters( 'visualizer_pro_upsell_class', 'only-pro-feature', 'chart-filter-controls' ), 'vz-data-controls' );
|
588 |
+
echo '<div style="position: relative">';
|
589 |
+
}
|
590 |
+
self::_renderSectionStart();
|
591 |
+
self::_renderSectionDescription( '<span class="viz-gvlink">' . sprintf( __( 'Configure the data filter controls by providing configuration variables right from the %1$sChart Controls API%2$s. ', 'visualizer' ), '<a href="https://developers.google.com/chart/interactive/docs/gallery/controls#controls-gallery" target="_blank">', '</a>' ) . '</span>' );
|
592 |
+
self::_renderSectionEnd();
|
593 |
+
$this->_renderChartControlsSettings();
|
594 |
+
if ( ! Visualizer_Module_Admin::proFeaturesLocked() ) {
|
595 |
+
echo apply_filters( 'visualizer_pro_upsell', '', 'chart-permissions' );
|
596 |
+
echo '</div>';
|
597 |
+
}
|
598 |
+
self::_renderGroupEnd();
|
599 |
+
}
|
600 |
+
|
601 |
+
/**
|
602 |
+
* Renders chart controls setting.
|
603 |
+
*
|
604 |
+
* @access protected
|
605 |
+
*/
|
606 |
+
protected function _renderChartControlsSettings() {
|
607 |
+
|
608 |
+
self::_renderSectionStart( esc_html__( 'Options', 'visualizer' ), false );
|
609 |
+
$control_type = ! empty( $this->controls['controlType'] ) ? $this->controls['controlType'] : '';
|
610 |
+
|
611 |
+
self::_renderSelectItem(
|
612 |
+
esc_html__( 'Filter Type', 'visualizer' ),
|
613 |
+
'controls[controlType]',
|
614 |
+
$control_type,
|
615 |
+
array(
|
616 |
+
'' => '',
|
617 |
+
'StringFilter' => esc_html__( 'String Filter', 'visualizer' ),
|
618 |
+
'NumberRangeFilter' => esc_html__( 'Number Range Filter', 'visualizer' ),
|
619 |
+
'CategoryFilter' => esc_html__( 'Category Filter', 'visualizer' ),
|
620 |
+
'ChartRangeFilter' => esc_html__( 'Chart Range Filter', 'visualizer' ),
|
621 |
+
'DateRangeFilter' => esc_html__( 'Date Range Filter', 'visualizer' ),
|
622 |
+
),
|
623 |
+
'',
|
624 |
+
false,
|
625 |
+
array( 'vz-controls-opt' )
|
626 |
+
);
|
627 |
+
|
628 |
+
$column_index = [ 'false' => '' ];
|
629 |
+
$column_label = [ 'false' => '' ];
|
630 |
+
if ( ! empty( $this->__series ) ) {
|
631 |
+
foreach ( $this->__series as $key => $column ) {
|
632 |
+
$column_type = isset( $column['type'] ) ? $column['type'] : '';
|
633 |
+
$label = isset( $column['label'] ) ? $column['label'] : '';
|
634 |
+
$column_label[ $label ] = $label;
|
635 |
+
$column_index[ $key ] = sprintf( __( '%1$d — Column Type: %2$s ', 'visualizer' ), $key, ucfirst( $column_type ) );
|
636 |
+
}
|
637 |
+
}
|
638 |
+
|
639 |
+
self::_renderSelectItem(
|
640 |
+
esc_html__( 'Filter By Column Index', 'visualizer' ),
|
641 |
+
'controls[filterColumnIndex]',
|
642 |
+
isset( $this->controls['filterColumnIndex'] ) ? $this->controls['filterColumnIndex'] : '',
|
643 |
+
$column_index,
|
644 |
+
'',
|
645 |
+
false,
|
646 |
+
array( 'vz-controls-opt' )
|
647 |
+
);
|
648 |
+
|
649 |
+
self::_renderSelectItem(
|
650 |
+
esc_html__( 'Filter By Column Label', 'visualizer' ),
|
651 |
+
'controls[filterColumnLabel]',
|
652 |
+
! empty( $this->controls['filterColumnLabel'] ) ? $this->controls['filterColumnLabel'] : '',
|
653 |
+
$column_label,
|
654 |
+
'',
|
655 |
+
false,
|
656 |
+
array( 'vz-controls-opt' )
|
657 |
+
);
|
658 |
+
|
659 |
+
self::_renderSelectItem(
|
660 |
+
esc_html__( 'Use Formatted Value', 'visualizer' ),
|
661 |
+
'controls[useFormattedValue]',
|
662 |
+
! empty( $this->controls['useFormattedValue'] ) ? $this->controls['useFormattedValue'] : '',
|
663 |
+
array(
|
664 |
+
'false' => esc_html__( 'False', 'visualizer' ),
|
665 |
+
'true' => esc_html__( 'True', 'visualizer' ),
|
666 |
+
),
|
667 |
+
'',
|
668 |
+
false
|
669 |
+
);
|
670 |
+
|
671 |
+
self::_renderTextItem(
|
672 |
+
esc_html__( 'Min Value', 'visualizer' ),
|
673 |
+
'controls[minValue]',
|
674 |
+
! empty( $this->controls['minValue'] ) ? $this->controls['minValue'] : '',
|
675 |
+
esc_html__( 'Minimum allowed value for the range lower extent.', 'visualizer' ),
|
676 |
+
'',
|
677 |
+
'text'
|
678 |
+
);
|
679 |
+
|
680 |
+
self::_renderTextItem(
|
681 |
+
esc_html__( 'Max Value', 'visualizer' ),
|
682 |
+
'controls[maxValue]',
|
683 |
+
! empty( $this->controls['maxValue'] ) ? $this->controls['maxValue'] : '',
|
684 |
+
esc_html__( 'Maximum allowed value for the range higher extent.', 'visualizer' ),
|
685 |
+
'',
|
686 |
+
'text'
|
687 |
+
);
|
688 |
+
|
689 |
+
self::_renderSelectItem(
|
690 |
+
esc_html__( 'Match Type', 'visualizer' ),
|
691 |
+
'controls[matchType]',
|
692 |
+
! empty( $this->controls['matchType'] ) ? $this->controls['matchType'] : '',
|
693 |
+
array(
|
694 |
+
'prefix' => esc_html__( 'Prefix', 'visualizer' ),
|
695 |
+
'exact' => esc_html__( 'Exact', 'visualizer' ),
|
696 |
+
'any' => esc_html__( 'Any', 'visualizer' ),
|
697 |
+
),
|
698 |
+
'',
|
699 |
+
false
|
700 |
+
);
|
701 |
+
|
702 |
+
self::_renderSelectItem(
|
703 |
+
esc_html__( 'Case Sensitive', 'visualizer' ),
|
704 |
+
'controls[caseSensitive]',
|
705 |
+
! empty( $this->controls['caseSensitive'] ) ? $this->controls['caseSensitive'] : '',
|
706 |
+
array(
|
707 |
+
'false' => esc_html__( 'False', 'visualizer' ),
|
708 |
+
'true' => esc_html__( 'True', 'visualizer' ),
|
709 |
+
),
|
710 |
+
'',
|
711 |
+
false
|
712 |
+
);
|
713 |
+
|
714 |
+
self::_renderSectionEnd();
|
715 |
+
|
716 |
+
self::_renderSectionStart( esc_html__( 'UI Options', 'visualizer' ), false );
|
717 |
+
|
718 |
+
self::_renderTextItem(
|
719 |
+
esc_html__( 'Label', 'visualizer' ),
|
720 |
+
'controls[ui][label]',
|
721 |
+
! empty( $this->controls['ui']['label'] ) ? $this->controls['ui']['label'] : '',
|
722 |
+
'',
|
723 |
+
'',
|
724 |
+
'text'
|
725 |
+
);
|
726 |
+
|
727 |
+
self::_renderTextItem(
|
728 |
+
esc_html__( 'Label Separator', 'visualizer' ),
|
729 |
+
'controls[ui][labelSeparator]',
|
730 |
+
! empty( $this->controls['ui']['labelSeparator'] ) ? $this->controls['ui']['labelSeparator'] : '',
|
731 |
+
'',
|
732 |
+
'',
|
733 |
+
'text'
|
734 |
+
);
|
735 |
+
|
736 |
+
self::_renderTextItem(
|
737 |
+
esc_html__( 'Caption', 'visualizer' ),
|
738 |
+
'controls[ui][caption]',
|
739 |
+
! empty( $this->controls['ui']['caption'] ) ? $this->controls['ui']['caption'] : '',
|
740 |
+
'',
|
741 |
+
'',
|
742 |
+
'text'
|
743 |
+
);
|
744 |
+
|
745 |
+
self::_renderSelectItem(
|
746 |
+
esc_html__( 'Label Stacking', 'visualizer' ),
|
747 |
+
'controls[ui][labelStacking]',
|
748 |
+
! empty( $this->controls['ui']['labelStacking'] ) ? $this->controls['ui']['labelStacking'] : '',
|
749 |
+
array(
|
750 |
+
'horizontal' => esc_html__( 'Horizontal', 'visualizer' ),
|
751 |
+
'vertical' => esc_html__( 'Vertical', 'visualizer' ),
|
752 |
+
),
|
753 |
+
'',
|
754 |
+
false
|
755 |
+
);
|
756 |
+
|
757 |
+
self::_renderSelectItem(
|
758 |
+
esc_html__( 'Orientation', 'visualizer' ),
|
759 |
+
'controls[ui][orientation]',
|
760 |
+
! empty( $this->controls['ui']['orientation'] ) ? $this->controls['ui']['orientation'] : '',
|
761 |
+
array(
|
762 |
+
'horizontal' => esc_html__( 'Horizontal', 'visualizer' ),
|
763 |
+
'vertical' => esc_html__( 'Vertical', 'visualizer' ),
|
764 |
+
),
|
765 |
+
'',
|
766 |
+
false
|
767 |
+
);
|
768 |
+
|
769 |
+
self::_renderSelectItem(
|
770 |
+
esc_html__( 'Show Range Values', 'visualizer' ),
|
771 |
+
'controls[showRangeValues]',
|
772 |
+
! empty( $this->controls['showRangeValues'] ) ? $this->controls['showRangeValues'] : '',
|
773 |
+
array(
|
774 |
+
'true' => esc_html__( 'True', 'visualizer' ),
|
775 |
+
'false' => esc_html__( 'False', 'visualizer' ),
|
776 |
+
),
|
777 |
+
'',
|
778 |
+
false
|
779 |
+
);
|
780 |
+
|
781 |
+
self::_renderSelectItem(
|
782 |
+
esc_html__( 'Allow Multiple', 'visualizer' ),
|
783 |
+
'controls[allowMultiple]',
|
784 |
+
! empty( $this->controls['allowMultiple'] ) ? $this->controls['allowMultiple'] : '',
|
785 |
+
array(
|
786 |
+
'true' => esc_html__( 'True', 'visualizer' ),
|
787 |
+
'false' => esc_html__( 'False', 'visualizer' ),
|
788 |
+
),
|
789 |
+
'',
|
790 |
+
false
|
791 |
+
);
|
792 |
+
|
793 |
+
self::_renderSelectItem(
|
794 |
+
esc_html__( 'Allow Typing', 'visualizer' ),
|
795 |
+
'controls[allowTyping]',
|
796 |
+
! empty( $this->controls['allowTyping'] ) ? $this->controls['allowTyping'] : '',
|
797 |
+
array(
|
798 |
+
'true' => esc_html__( 'True', 'visualizer' ),
|
799 |
+
'false' => esc_html__( 'False', 'visualizer' ),
|
800 |
+
),
|
801 |
+
'',
|
802 |
+
false
|
803 |
+
);
|
804 |
+
self::_renderSectionEnd();
|
805 |
+
}
|
806 |
}
|
css/frame.css
CHANGED
@@ -17,7 +17,16 @@
|
|
17 |
bottom: 10px;
|
18 |
left: 10px;
|
19 |
}
|
20 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
21 |
.loader {
|
22 |
position: absolute;
|
23 |
top: 50%;
|
@@ -1528,6 +1537,6 @@ canvas.chartjs-render-monitor {
|
|
1528 |
/******************************************************************************/
|
1529 |
/******************************** Frontend Actions ***********************************/
|
1530 |
/******************************************************************************/
|
1531 |
-
#vz-frontend-actions .only-pro-inner {
|
1532 |
text-align: center;
|
1533 |
}
|
17 |
bottom: 10px;
|
18 |
left: 10px;
|
19 |
}
|
20 |
+
#control_wrapper_canvas:not(:empty) {
|
21 |
+
margin: 15px 0 0 5px;
|
22 |
+
}
|
23 |
+
#control_wrapper_canvas:not(:empty) + #canvas {
|
24 |
+
top: 55px;
|
25 |
+
left: 50px;
|
26 |
+
}
|
27 |
+
.goog-combobox input {
|
28 |
+
min-height: auto;
|
29 |
+
}
|
30 |
.loader {
|
31 |
position: absolute;
|
32 |
top: 50%;
|
1537 |
/******************************************************************************/
|
1538 |
/******************************** Frontend Actions ***********************************/
|
1539 |
/******************************************************************************/
|
1540 |
+
#vz-frontend-actions .only-pro-inner, #vz-data-controls .only-pro-inner {
|
1541 |
text-align: center;
|
1542 |
}
|
css/library.css
CHANGED
@@ -424,6 +424,17 @@ div#visualizer-types ul, div#visualizer-types form p {
|
|
424 |
color: red;
|
425 |
cursor: pointer;
|
426 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
427 |
@media (-webkit-min-device-pixel-ratio: 2) and (min-width: 1000px) and (max-width: 1600px) {
|
428 |
#visualizer-sidebar.one-columns .visualizer-sidebar-box ul li:nth-child(+n+7) {
|
429 |
display: none;
|
424 |
color: red;
|
425 |
cursor: pointer;
|
426 |
}
|
427 |
+
.goog-combobox input {
|
428 |
+
min-height: auto;
|
429 |
+
}
|
430 |
+
.vz-library-chart-filter:not(:empty) {
|
431 |
+
background-color: #ffffff;
|
432 |
+
padding: 5px 0 5px 5px;
|
433 |
+
border: 1px solid #ddd;
|
434 |
+
}
|
435 |
+
.google-visualization-controls-rangefilter {
|
436 |
+
white-space: inherit !important;
|
437 |
+
}
|
438 |
@media (-webkit-min-device-pixel-ratio: 2) and (min-width: 1000px) and (max-width: 1600px) {
|
439 |
#visualizer-sidebar.one-columns .visualizer-sidebar-box ul li:nth-child(+n+7) {
|
440 |
display: none;
|
css/media.css
CHANGED
@@ -1,5 +1,5 @@
|
|
1 |
/*
|
2 |
-
Version: 3.
|
3 |
*/
|
4 |
#visualizer-library-view {
|
5 |
padding: 30px 10px 10px 30px;
|
1 |
/*
|
2 |
+
Version: 3.8.0
|
3 |
*/
|
4 |
#visualizer-library-view {
|
5 |
padding: 30px 10px 10px 30px;
|
index.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
Plugin Name: Visualizer: Tables and Charts for WordPress
|
4 |
Plugin URI: https://themeisle.com/plugins/visualizer-charts-and-graphs-lite/
|
5 |
Description: A simple, easy to use and quite powerful tool to create, manage and embed interactive charts into your WordPress posts and pages. The plugin uses Google Visualization API to render charts, which supports cross-browser compatibility (adopting VML for older IE versions) and cross-platform portability to iOS and new Android releases.
|
6 |
-
Version: 3.
|
7 |
Author: Themeisle
|
8 |
Author URI: http://themeisle.com
|
9 |
Requires at least: 3.5
|
3 |
Plugin Name: Visualizer: Tables and Charts for WordPress
|
4 |
Plugin URI: https://themeisle.com/plugins/visualizer-charts-and-graphs-lite/
|
5 |
Description: A simple, easy to use and quite powerful tool to create, manage and embed interactive charts into your WordPress posts and pages. The plugin uses Google Visualization API to render charts, which supports cross-browser compatibility (adopting VML for older IE versions) and cross-platform portability to iOS and new Android releases.
|
6 |
+
Version: 3.8.0
|
7 |
Author: Themeisle
|
8 |
Author URI: http://themeisle.com
|
9 |
Requires at least: 3.5
|
js/preview.js
CHANGED
@@ -25,6 +25,21 @@
|
|
25 |
vizSettingsHaveChanged(false);
|
26 |
};
|
27 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
28 |
$('#settings-button').click(function() {
|
29 |
$('#settings-form').submit();
|
30 |
});
|
@@ -42,6 +57,7 @@
|
|
42 |
// this portion captures if the settings have changed so that tabs can handle that information.
|
43 |
|
44 |
function updateChart() {
|
|
|
45 |
clearTimeout(timeout);
|
46 |
timeout = setTimeout(function() {
|
47 |
var settings = $('#settings-form').serializeObject();
|
@@ -52,7 +68,7 @@
|
|
52 |
v.charts.canvas.settings = settings;
|
53 |
$('body').trigger('visualizer:render:currentchart:update', {visualizer: v});
|
54 |
vizSettingsHaveChanged(true);
|
55 |
-
},
|
56 |
}
|
57 |
|
58 |
function validateJSON() {
|
25 |
vizSettingsHaveChanged(false);
|
26 |
};
|
27 |
|
28 |
+
// Update google chart filter control.
|
29 |
+
window.vizUpdateFilterControl = function() {
|
30 |
+
$( '#control_wrapper_canvas' ).removeClass( 'no-filter' );
|
31 |
+
var controlsOpt = $( '.vz-controls-opt' ).map(
|
32 |
+
function() {
|
33 |
+
var val = $(this).val();
|
34 |
+
return '' !== val && 'false' !== val ? val : false ;
|
35 |
+
}
|
36 |
+
).get();
|
37 |
+
controlsOpt = controlsOpt.filter( function(el) { return el; } );
|
38 |
+
if ( controlsOpt.length === 0 ) {
|
39 |
+
$( '#control_wrapper_canvas' ).addClass( 'no-filter' ).html('');
|
40 |
+
}
|
41 |
+
}
|
42 |
+
|
43 |
$('#settings-button').click(function() {
|
44 |
$('#settings-form').submit();
|
45 |
});
|
57 |
// this portion captures if the settings have changed so that tabs can handle that information.
|
58 |
|
59 |
function updateChart() {
|
60 |
+
vizUpdateFilterControl();
|
61 |
clearTimeout(timeout);
|
62 |
timeout = setTimeout(function() {
|
63 |
var settings = $('#settings-form').serializeObject();
|
68 |
v.charts.canvas.settings = settings;
|
69 |
$('body').trigger('visualizer:render:currentchart:update', {visualizer: v});
|
70 |
vizSettingsHaveChanged(true);
|
71 |
+
}, 1500);
|
72 |
}
|
73 |
|
74 |
function validateJSON() {
|
js/render-facade.js
CHANGED
@@ -136,7 +136,7 @@ var vizClipboard1=null;
|
|
136 |
|
137 |
function displayChartsOnFrontEnd() {
|
138 |
// display all charts that are NOT to be lazy-loaded.
|
139 |
-
$( 'div.viz-facade-loaded:not(.visualizer-lazy):empty' ).removeClass( 'viz-facade-loaded' );
|
140 |
$('div.visualizer-front:not(.visualizer-lazy):not(.viz-facade-loaded)').each(function(index, element){
|
141 |
if ( $(element).is(':visible') ) {
|
142 |
var id = $(element).addClass('viz-facade-loaded').attr('id');
|
136 |
|
137 |
function displayChartsOnFrontEnd() {
|
138 |
// display all charts that are NOT to be lazy-loaded.
|
139 |
+
$( 'div.viz-facade-loaded:not(.visualizer-lazy):not(.visualizer-cw-error):empty' ).removeClass( 'viz-facade-loaded' );
|
140 |
$('div.visualizer-front:not(.visualizer-lazy):not(.viz-facade-loaded)').each(function(index, element){
|
141 |
if ( $(element).is(':visible') ) {
|
142 |
var id = $(element).addClass('viz-facade-loaded').attr('id');
|
js/render-google.js
CHANGED
@@ -4,6 +4,7 @@
|
|
4 |
|
5 |
// this will store the images for each chart rendered.
|
6 |
var __visualizer_chart_images = [];
|
|
|
7 |
|
8 |
(function($) {
|
9 |
var gv;
|
@@ -74,7 +75,41 @@ var __visualizer_chart_images = [];
|
|
74 |
break;
|
75 |
}
|
76 |
|
77 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
78 |
}
|
79 |
|
80 |
if (settings['animation'] && parseInt(settings['animation']['startup']) === 1)
|
@@ -329,6 +364,7 @@ var __visualizer_chart_images = [];
|
|
329 |
|
330 |
gv.events.addListener(render, 'ready', function () {
|
331 |
var arr = id.split('-');
|
|
|
332 |
__visualizer_chart_images[ arr[0] + '-' + arr[1] ] = '';
|
333 |
|
334 |
if (render.container && $(render.container).is(':visible')) {
|
@@ -362,8 +398,22 @@ var __visualizer_chart_images = [];
|
|
362 |
}
|
363 |
});
|
364 |
|
365 |
-
|
366 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
367 |
}
|
368 |
|
369 |
function format_data(id, table, type, format, index) {
|
@@ -509,6 +559,7 @@ var __visualizer_chart_images = [];
|
|
509 |
|
510 |
objects = {};
|
511 |
if ( 'object' === typeof google ) {
|
|
|
512 |
google.load( 'visualization', 'current', {packages: $chart_types, mapsApiKey: v.map_api_key, 'language' : v.language,
|
513 |
callback: function () {
|
514 |
gv = google.visualization;
|
4 |
|
5 |
// this will store the images for each chart rendered.
|
6 |
var __visualizer_chart_images = [];
|
7 |
+
var chartWrapperError = [];
|
8 |
|
9 |
(function($) {
|
10 |
var gv;
|
75 |
break;
|
76 |
}
|
77 |
|
78 |
+
var controlWrapperElement = document.getElementById( "control_wrapper_" + id ) || null;
|
79 |
+
var withControlMode = typeof settings.controls !== 'undefined' && controlWrapperElement ? true : false;
|
80 |
+
|
81 |
+
if ( $( controlWrapperElement ).hasClass( 'no-filter' ) ) {
|
82 |
+
withControlMode = false;
|
83 |
+
}
|
84 |
+
if ( withControlMode ) {
|
85 |
+
// Chart wrapper.
|
86 |
+
render = new gv.ChartWrapper({
|
87 |
+
'chartType': render,
|
88 |
+
'containerId': id,
|
89 |
+
});
|
90 |
+
// Chart dashboard wrapper.
|
91 |
+
var chartWrapperElement = document.getElementById( "chart_wrapper_" + id ) || null;
|
92 |
+
var chartWrapper = new gv.Dashboard( chartWrapperElement );
|
93 |
+
|
94 |
+
// Error Handler.
|
95 |
+
gv.events.addListener(chartWrapper, 'error', function ( err ) {
|
96 |
+
if ( chartWrapperError.length === 0 ) {
|
97 |
+
chartWrapperError.push( err );
|
98 |
+
gv.errors.removeError( err.id );
|
99 |
+
var chartContainer = $( chartWrapperElement ).find( '.visualizer-front' );
|
100 |
+
if ( chartContainer && chartContainer.is(':visible')) {
|
101 |
+
if (chartContainer.parents('div').next( '#sidebar' ).length === 0) {
|
102 |
+
chartContainer.addClass( 'visualizer-chart-loaded' ).addClass( 'visualizer-cw-error' );
|
103 |
+
$( chartWrapperElement ).addClass( 'visualizer-cw-error' );
|
104 |
+
}
|
105 |
+
}
|
106 |
+
} else {
|
107 |
+
gv.errors.removeError( err.id );
|
108 |
+
}
|
109 |
+
} );
|
110 |
+
} else {
|
111 |
+
render = new gv[render](container);
|
112 |
+
}
|
113 |
}
|
114 |
|
115 |
if (settings['animation'] && parseInt(settings['animation']['startup']) === 1)
|
364 |
|
365 |
gv.events.addListener(render, 'ready', function () {
|
366 |
var arr = id.split('-');
|
367 |
+
render = typeof render.getChart !== 'undefined' ? render.getChart() : render;
|
368 |
__visualizer_chart_images[ arr[0] + '-' + arr[1] ] = '';
|
369 |
|
370 |
if (render.container && $(render.container).is(':visible')) {
|
398 |
}
|
399 |
});
|
400 |
|
401 |
+
if ( withControlMode ) {
|
402 |
+
// Create a control wrapper, passing some options.
|
403 |
+
var controlWrapper = new gv.ControlWrapper( {
|
404 |
+
containerId: 'control_wrapper_' + id,
|
405 |
+
controlType: settings.controls.controlType,
|
406 |
+
'options': settings.controls,
|
407 |
+
} );
|
408 |
+
|
409 |
+
$('body').trigger('visualizer:chart:settings:extend', {id: id, chart: chart, settings: settings, data: table});
|
410 |
+
render.setOptions(settings);
|
411 |
+
chartWrapper.bind(controlWrapper, render);
|
412 |
+
chartWrapper.draw(table);
|
413 |
+
} else {
|
414 |
+
$('body').trigger('visualizer:chart:settings:extend', {id: id, chart: chart, settings: settings, data: table});
|
415 |
+
render.draw(table, settings);
|
416 |
+
}
|
417 |
}
|
418 |
|
419 |
function format_data(id, table, type, format, index) {
|
559 |
|
560 |
objects = {};
|
561 |
if ( 'object' === typeof google ) {
|
562 |
+
$chart_types.push( 'controls' );
|
563 |
google.load( 'visualization', 'current', {packages: $chart_types, mapsApiKey: v.map_api_key, 'language' : v.language,
|
564 |
callback: function () {
|
565 |
gv = google.visualization;
|
readme.txt
CHANGED
@@ -163,6 +163,13 @@ Pay attention that to turn your shortcodes into graphs, your theme has to have `
|
|
163 |
|
164 |
== Changelog ==
|
165 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
166 |
##### [Version 3.7.12](https://github.com/Codeinwp/visualizer/compare/v3.7.11...v3.7.12) (2022-09-07)
|
167 |
|
168 |
- Fixed compatibility issue with some themes and plugins [#933](https://github.com/Codeinwp/visualizer/issues/933)
|
163 |
|
164 |
== Changelog ==
|
165 |
|
166 |
+
#### [Version 3.8.0](https://github.com/Codeinwp/visualizer/compare/v3.7.12...v3.8.0) (2022-09-21)
|
167 |
+
|
168 |
+
- Add data filter support for the charts
|
169 |
+
|
170 |
+
|
171 |
+
|
172 |
+
|
173 |
##### [Version 3.7.12](https://github.com/Codeinwp/visualizer/compare/v3.7.11...v3.7.12) (2022-09-07)
|
174 |
|
175 |
- Fixed compatibility issue with some themes and plugins [#933](https://github.com/Codeinwp/visualizer/issues/933)
|
vendor/autoload.php
CHANGED
@@ -9,4 +9,4 @@ if (PHP_VERSION_ID < 50600) {
|
|
9 |
|
10 |
require_once __DIR__ . '/composer/autoload_real.php';
|
11 |
|
12 |
-
return
|
9 |
|
10 |
require_once __DIR__ . '/composer/autoload_real.php';
|
11 |
|
12 |
+
return ComposerAutoloaderInit3e3d69c83300df91e8287efcde552641::getLoader();
|
vendor/composer/autoload_real.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
|
3 |
// autoload_real.php @generated by Composer
|
4 |
|
5 |
-
class
|
6 |
{
|
7 |
private static $loader;
|
8 |
|
@@ -24,18 +24,18 @@ class ComposerAutoloaderInit029ba404fa8b9712b812578058163e47
|
|
24 |
|
25 |
require __DIR__ . '/platform_check.php';
|
26 |
|
27 |
-
spl_autoload_register(array('
|
28 |
self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__));
|
29 |
-
spl_autoload_unregister(array('
|
30 |
|
31 |
require __DIR__ . '/autoload_static.php';
|
32 |
-
call_user_func(\Composer\Autoload\
|
33 |
|
34 |
$loader->register(true);
|
35 |
|
36 |
-
$includeFiles = \Composer\Autoload\
|
37 |
foreach ($includeFiles as $fileIdentifier => $file) {
|
38 |
-
|
39 |
}
|
40 |
|
41 |
return $loader;
|
@@ -47,7 +47,7 @@ class ComposerAutoloaderInit029ba404fa8b9712b812578058163e47
|
|
47 |
* @param string $file
|
48 |
* @return void
|
49 |
*/
|
50 |
-
function
|
51 |
{
|
52 |
if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
|
53 |
$GLOBALS['__composer_autoload_files'][$fileIdentifier] = true;
|
2 |
|
3 |
// autoload_real.php @generated by Composer
|
4 |
|
5 |
+
class ComposerAutoloaderInit3e3d69c83300df91e8287efcde552641
|
6 |
{
|
7 |
private static $loader;
|
8 |
|
24 |
|
25 |
require __DIR__ . '/platform_check.php';
|
26 |
|
27 |
+
spl_autoload_register(array('ComposerAutoloaderInit3e3d69c83300df91e8287efcde552641', 'loadClassLoader'), true, true);
|
28 |
self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__));
|
29 |
+
spl_autoload_unregister(array('ComposerAutoloaderInit3e3d69c83300df91e8287efcde552641', 'loadClassLoader'));
|
30 |
|
31 |
require __DIR__ . '/autoload_static.php';
|
32 |
+
call_user_func(\Composer\Autoload\ComposerStaticInit3e3d69c83300df91e8287efcde552641::getInitializer($loader));
|
33 |
|
34 |
$loader->register(true);
|
35 |
|
36 |
+
$includeFiles = \Composer\Autoload\ComposerStaticInit3e3d69c83300df91e8287efcde552641::$files;
|
37 |
foreach ($includeFiles as $fileIdentifier => $file) {
|
38 |
+
composerRequire3e3d69c83300df91e8287efcde552641($fileIdentifier, $file);
|
39 |
}
|
40 |
|
41 |
return $loader;
|
47 |
* @param string $file
|
48 |
* @return void
|
49 |
*/
|
50 |
+
function composerRequire3e3d69c83300df91e8287efcde552641($fileIdentifier, $file)
|
51 |
{
|
52 |
if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
|
53 |
$GLOBALS['__composer_autoload_files'][$fileIdentifier] = true;
|
vendor/composer/autoload_static.php
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
|
5 |
namespace Composer\Autoload;
|
6 |
|
7 |
-
class
|
8 |
{
|
9 |
public static $files = array (
|
10 |
'abede361264e2ae69ec1eee813a101af' => __DIR__ . '/..' . '/markbaker/complex/classes/src/functions/abs.php',
|
@@ -356,10 +356,10 @@ class ComposerStaticInit029ba404fa8b9712b812578058163e47
|
|
356 |
public static function getInitializer(ClassLoader $loader)
|
357 |
{
|
358 |
return \Closure::bind(function () use ($loader) {
|
359 |
-
$loader->prefixLengthsPsr4 =
|
360 |
-
$loader->prefixDirsPsr4 =
|
361 |
-
$loader->prefixesPsr0 =
|
362 |
-
$loader->classMap =
|
363 |
|
364 |
}, null, ClassLoader::class);
|
365 |
}
|
4 |
|
5 |
namespace Composer\Autoload;
|
6 |
|
7 |
+
class ComposerStaticInit3e3d69c83300df91e8287efcde552641
|
8 |
{
|
9 |
public static $files = array (
|
10 |
'abede361264e2ae69ec1eee813a101af' => __DIR__ . '/..' . '/markbaker/complex/classes/src/functions/abs.php',
|
356 |
public static function getInitializer(ClassLoader $loader)
|
357 |
{
|
358 |
return \Closure::bind(function () use ($loader) {
|
359 |
+
$loader->prefixLengthsPsr4 = ComposerStaticInit3e3d69c83300df91e8287efcde552641::$prefixLengthsPsr4;
|
360 |
+
$loader->prefixDirsPsr4 = ComposerStaticInit3e3d69c83300df91e8287efcde552641::$prefixDirsPsr4;
|
361 |
+
$loader->prefixesPsr0 = ComposerStaticInit3e3d69c83300df91e8287efcde552641::$prefixesPsr0;
|
362 |
+
$loader->classMap = ComposerStaticInit3e3d69c83300df91e8287efcde552641::$classMap;
|
363 |
|
364 |
}, null, ClassLoader::class);
|
365 |
}
|
vendor/composer/installed.php
CHANGED
@@ -1,9 +1,9 @@
|
|
1 |
<?php return array(
|
2 |
'root' => array(
|
3 |
'name' => 'codeinwp/visualizer',
|
4 |
-
'pretty_version' => 'v3.
|
5 |
-
'version' => '3.
|
6 |
-
'reference' => '
|
7 |
'type' => 'wordpress-plugin',
|
8 |
'install_path' => __DIR__ . '/../../',
|
9 |
'aliases' => array(),
|
@@ -20,9 +20,9 @@
|
|
20 |
'dev_requirement' => false,
|
21 |
),
|
22 |
'codeinwp/visualizer' => array(
|
23 |
-
'pretty_version' => 'v3.
|
24 |
-
'version' => '3.
|
25 |
-
'reference' => '
|
26 |
'type' => 'wordpress-plugin',
|
27 |
'install_path' => __DIR__ . '/../../',
|
28 |
'aliases' => array(),
|
1 |
<?php return array(
|
2 |
'root' => array(
|
3 |
'name' => 'codeinwp/visualizer',
|
4 |
+
'pretty_version' => 'v3.8.0',
|
5 |
+
'version' => '3.8.0.0',
|
6 |
+
'reference' => '39af88c37fe57aefde0901c99788cd8c02631bee',
|
7 |
'type' => 'wordpress-plugin',
|
8 |
'install_path' => __DIR__ . '/../../',
|
9 |
'aliases' => array(),
|
20 |
'dev_requirement' => false,
|
21 |
),
|
22 |
'codeinwp/visualizer' => array(
|
23 |
+
'pretty_version' => 'v3.8.0',
|
24 |
+
'version' => '3.8.0.0',
|
25 |
+
'reference' => '39af88c37fe57aefde0901c99788cd8c02631bee',
|
26 |
'type' => 'wordpress-plugin',
|
27 |
'install_path' => __DIR__ . '/../../',
|
28 |
'aliases' => array(),
|