WordPress Charts and Graphs Lite - Version 3.7.2

Version Description

Download this release

Release Info

Developer themeisle
Plugin Icon WordPress Charts and Graphs Lite
Version 3.7.2
Comparing to
See all releases

Code changes from version 3.7.1 to 3.7.2

CHANGELOG.md CHANGED
@@ -1,3 +1,11 @@
 
 
 
 
 
 
 
 
1
  ##### [Version 3.7.1](https://github.com/Codeinwp/visualizer/compare/v3.7.0...v3.7.1) (2021-11-17)
2
 
3
  - [Feat] Allow charts to render in dashboard areas via 3rd party plugins like Dashboard Widgets Suite
1
+ ##### [Version 3.7.2](https://github.com/Codeinwp/visualizer/compare/v3.7.1...v3.7.2) (2021-12-20)
2
+
3
+ - Add latest chartJS library support in the bar chart
4
+ - Fix horizontal axis showing date format in Bar chart
5
+ - Fix orientation rotate issue in mobile
6
+ - CSS performance improvements
7
+ - Improve JS performance
8
+
9
  ##### [Version 3.7.1](https://github.com/Codeinwp/visualizer/compare/v3.7.0...v3.7.1) (2021-11-17)
10
 
11
  - [Feat] Allow charts to render in dashboard areas via 3rd party plugins like Dashboard Widgets Suite
classes/Visualizer/Module.php CHANGED
@@ -604,30 +604,29 @@ class Visualizer_Module {
604
  protected function get_inline_custom_css( $id, $settings ) {
605
  $css = '';
606
 
607
- $arguments = array( '', $settings );
608
- if ( ! isset( $settings['customcss'] ) ) {
609
- return $arguments;
610
- }
611
-
612
  $classes = array();
613
  $css = '<style type="text/css" name="visualizer-custom-css" id="customcss-' . $id . '">';
614
- foreach ( $settings['customcss'] as $name => $element ) {
615
- $attributes = array();
616
- foreach ( $element as $property => $value ) {
617
- $attributes[] = $this->handle_css_property( $property, $value );
618
- }
619
- $class_name = $id . $name;
620
- $properties = implode( ' !important; ', array_filter( $attributes ) );
621
- if ( ! empty( $properties ) ) {
622
- $css .= '.' . $class_name . ' {' . $properties . ' !important;}';
623
- $classes[ $name ] = $class_name;
 
 
624
  }
 
625
  }
626
- $css .= '</style>';
627
 
628
- $settings['cssClassNames'] = $classes;
 
 
629
 
630
- $arguments = array( $css, $settings );
631
  apply_filters_ref_array( 'visualizer_inline_css', array( &$arguments ) );
632
 
633
  return $arguments;
604
  protected function get_inline_custom_css( $id, $settings ) {
605
  $css = '';
606
 
 
 
 
 
 
607
  $classes = array();
608
  $css = '<style type="text/css" name="visualizer-custom-css" id="customcss-' . $id . '">';
609
+ if ( ! empty( $settings['customcss'] ) ) {
610
+ foreach ( $settings['customcss'] as $name => $element ) {
611
+ $attributes = array();
612
+ foreach ( $element as $property => $value ) {
613
+ $attributes[] = $this->handle_css_property( $property, $value );
614
+ }
615
+ $class_name = $id . $name;
616
+ $properties = implode( ' !important; ', array_filter( $attributes ) );
617
+ if ( ! empty( $properties ) ) {
618
+ $css .= '.' . $class_name . ' {' . $properties . ' !important;}';
619
+ $classes[ $name ] = $class_name;
620
+ }
621
  }
622
+ $settings['cssClassNames'] = $classes;
623
  }
 
624
 
625
+ $img_path = VISUALIZER_ABSURL . 'images';
626
+ $css .= ".locker,.locker-loader{position:absolute;top:0;left:0;width:100%;height:100%}.locker{z-index:1000;opacity:.8;background-color:#fff;-ms-filter:\"progid:DXImageTransform.Microsoft.Alpha(Opacity=80)\";filter:alpha(opacity=80)}.locker-loader{z-index:1001;background:url($img_path/ajax-loader.gif) no-repeat center center}.dt-button{display:none!important}.visualizer-front-container.visualizer-lazy-render{content-visibility: auto;}";
627
+ $css .= '</style>';
628
 
629
+ $arguments = array( $css, $settings );
630
  apply_filters_ref_array( 'visualizer_inline_css', array( &$arguments ) );
631
 
632
  return $arguments;
classes/Visualizer/Module/Chart.php CHANGED
@@ -528,6 +528,7 @@ class Visualizer_Module_Chart extends Visualizer_Module {
528
  }
529
 
530
  $_POST['save_chart_image'] = isset( $_POST['save_chart_image'] ) && 'yes' === $_POST['save_chart_image'] ? true : false;
 
531
 
532
  if ( isset( $_POST['chart-img'] ) && ! empty( $_POST['chart-img'] ) ) {
533
  $attachment_id = $this->save_chart_image( $_POST['chart-img'], $chart_id, $_POST['save_chart_image'] );
528
  }
529
 
530
  $_POST['save_chart_image'] = isset( $_POST['save_chart_image'] ) && 'yes' === $_POST['save_chart_image'] ? true : false;
531
+ $_POST['lazy_load_chart'] = isset( $_POST['lazy_load_chart'] ) && 'yes' === $_POST['lazy_load_chart'] ? true : false;
532
 
533
  if ( isset( $_POST['chart-img'] ) && ! empty( $_POST['chart-img'] ) ) {
534
  $attachment_id = $this->save_chart_image( $_POST['chart-img'], $chart_id, $_POST['save_chart_image'] );
classes/Visualizer/Module/Frontend.php CHANGED
@@ -41,6 +41,14 @@ class Visualizer_Module_Frontend extends Visualizer_Module {
41
  */
42
  private $_charts = array();
43
 
 
 
 
 
 
 
 
 
44
  /**
45
  * Constructor.
46
  *
@@ -53,6 +61,7 @@ class Visualizer_Module_Frontend extends Visualizer_Module {
53
  public function __construct( Visualizer_Plugin $plugin ) {
54
  parent::__construct( $plugin );
55
 
 
56
  $this->_addAction( 'wp_enqueue_scripts', 'enqueueScripts' );
57
  $this->_addAction( 'load-index.php', 'enqueueScripts' );
58
  $this->_addAction( 'visualizer_enqueue_scripts', 'enqueueScripts' );
@@ -81,14 +90,32 @@ class Visualizer_Module_Frontend extends Visualizer_Module {
81
  if ( is_admin() ) {
82
  return $tag;
83
  }
84
-
85
- $scripts = array( 'google-jsapi', 'visualizer-render-google-lib', 'visualizer-render-google' );
86
-
87
- foreach ( $scripts as $async ) {
88
  if ( $async === $handle ) {
89
- $tag = str_replace( ' src', ' defer="defer" src', $tag );
 
 
 
 
 
 
 
 
 
 
 
90
  break;
91
  }
 
 
 
 
 
 
 
 
92
  }
93
  return $tag;
94
  }
@@ -244,7 +271,6 @@ class Visualizer_Module_Frontend extends Visualizer_Module {
244
  */
245
  public function enqueueScripts() {
246
  wp_register_script( 'visualizer-customization', $this->get_user_customization_js(), array(), null, true );
247
- wp_register_style( 'visualizer-front', VISUALIZER_ABSURL . 'css/front.css', array(), Visualizer_Plugin::VERSION );
248
  do_action( 'visualizer_pro_frontend_load_resources' );
249
  }
250
 
@@ -329,6 +355,14 @@ class Visualizer_Module_Frontend extends Visualizer_Module {
329
  // handle settings filter hooks
330
  $settings = apply_filters( Visualizer_Plugin::FILTER_GET_CHART_SETTINGS, $settings, $chart->ID, $type );
331
 
 
 
 
 
 
 
 
 
332
  // handle data filter hooks
333
  $data = self::get_chart_data( $chart, $type );
334
 
@@ -435,10 +469,9 @@ class Visualizer_Module_Frontend extends Visualizer_Module {
435
  )
436
  );
437
  }
438
- wp_enqueue_style( 'visualizer-front' );
439
 
440
  // return placeholder div
441
- return $actions_div . '<div id="' . $id . '"' . $this->getHtmlAttributes( $attributes ) . '></div>' . $this->addSchema( $chart->ID );
442
  }
443
 
444
  /**
@@ -608,4 +641,42 @@ class Visualizer_Module_Frontend extends Visualizer_Module {
608
 
609
  return false;
610
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
611
  }
41
  */
42
  private $_charts = array();
43
 
44
+ /**
45
+ * Lazy render script.
46
+ *
47
+ * @access private
48
+ * @var bool
49
+ */
50
+ private $lazy_render_script = false;
51
+
52
  /**
53
  * Constructor.
54
  *
61
  public function __construct( Visualizer_Plugin $plugin ) {
62
  parent::__construct( $plugin );
63
 
64
+ $this->_addAction( 'wp_print_footer_scripts', 'printFooterScripts' );
65
  $this->_addAction( 'wp_enqueue_scripts', 'enqueueScripts' );
66
  $this->_addAction( 'load-index.php', 'enqueueScripts' );
67
  $this->_addAction( 'visualizer_enqueue_scripts', 'enqueueScripts' );
90
  if ( is_admin() ) {
91
  return $tag;
92
  }
93
+ // Async scripts.
94
+ $async_scripts = array( 'google-jsapi', 'chartjs', 'visualizer-datatables' );
95
+ foreach ( $async_scripts as $async ) {
 
96
  if ( $async === $handle ) {
97
+ $tag = str_replace( ' src', ' async src', $tag );
98
+ break;
99
+ }
100
+ };
101
+
102
+ // Async scripts.
103
+ $scripts = array( 'dom-to-image' );
104
+ foreach ( array( 'async', 'defer' ) as $attr ) {
105
+ if ( wp_scripts()->get_data( $handle, $attr ) ) {
106
+ break;
107
+ }
108
+ if ( in_array( $handle, $async_scripts, true ) || false === strpos( $handle, 'visualizer-' ) ) {
109
  break;
110
  }
111
+ if ( ! preg_match( ":\s$attr(=|>|\s):", $tag ) ) {
112
+ $tag = preg_replace( ':(?=></script>):', " $attr", $tag, 1 );
113
+ if ( $this->lazy_render_script ) {
114
+ $tag = str_replace( ' src', ' data-visualizer-script', $tag );
115
+ }
116
+ }
117
+ // Only allow async or defer, not both.
118
+ break;
119
  }
120
  return $tag;
121
  }
271
  */
272
  public function enqueueScripts() {
273
  wp_register_script( 'visualizer-customization', $this->get_user_customization_js(), array(), null, true );
 
274
  do_action( 'visualizer_pro_frontend_load_resources' );
275
  }
276
 
355
  // handle settings filter hooks
356
  $settings = apply_filters( Visualizer_Plugin::FILTER_GET_CHART_SETTINGS, $settings, $chart->ID, $type );
357
 
358
+ $lazy_load = isset( $settings['lazy_load_chart'] ) ? $settings['lazy_load_chart'] : false;
359
+ $lazy_load = apply_filters( 'visualizer_lazy_load_chart', $lazy_load, $chart->ID );
360
+ $container_class = 'visualizer-front-container';
361
+ if ( $lazy_load ) {
362
+ $this->lazy_render_script = true;
363
+ $container_class .= ' visualizer-lazy-render';
364
+ }
365
+
366
  // handle data filter hooks
367
  $data = self::get_chart_data( $chart, $type );
368
 
469
  )
470
  );
471
  }
 
472
 
473
  // return placeholder div
474
+ return '<div class="' . $container_class . '">' . $actions_div . '<div id="' . $id . '"' . $this->getHtmlAttributes( $attributes ) . '></div>' . $this->addSchema( $chart->ID ) . '</div>';
475
  }
476
 
477
  /**
641
 
642
  return false;
643
  }
644
+
645
+ /**
646
+ * Print footer script.
647
+ */
648
+ public function printFooterScripts() {
649
+ if ( $this->lazy_render_script ) {
650
+ ?>
651
+ <script type="text/javascript">
652
+ var visualizerUserInteractionEvents = [
653
+ "mouseover",
654
+ "keydown",
655
+ "touchmove",
656
+ "touchstart"
657
+ ];
658
+
659
+ visualizerUserInteractionEvents.forEach(function(event) {
660
+ window.addEventListener(event, visualizerTriggerScriptLoader, { passive: true });
661
+ });
662
+
663
+ function visualizerTriggerScriptLoader() {
664
+ visualizerLoadScripts();
665
+ visualizerUserInteractionEvents.forEach(function(event) {
666
+ window.removeEventListener(event, visualizerTriggerScriptLoader, { passive: true });
667
+ });
668
+ }
669
+
670
+ function visualizerLoadScripts() {
671
+ document.querySelectorAll("script[data-visualizer-script]").forEach(function(elem) {
672
+ jQuery.getScript( elem.getAttribute("data-visualizer-script"), function() {
673
+ elem.setAttribute("src", elem.getAttribute("data-visualizer-script"));
674
+ elem.removeAttribute("data-visualizer-script");
675
+ } );
676
+ });
677
+ }
678
+ </script>
679
+ <?php
680
+ }
681
+ }
682
  }
classes/Visualizer/Plugin.php CHANGED
@@ -28,7 +28,7 @@
28
  class Visualizer_Plugin {
29
 
30
  const NAME = 'visualizer';
31
- const VERSION = '3.7.1';
32
 
33
  // custom post types
34
  const CPT_VISUALIZER = 'visualizer';
28
  class Visualizer_Plugin {
29
 
30
  const NAME = 'visualizer';
31
+ const VERSION = '3.7.2';
32
 
33
  // custom post types
34
  const CPT_VISUALIZER = 'visualizer';
classes/Visualizer/Render/Sidebar.php CHANGED
@@ -517,19 +517,38 @@ abstract class Visualizer_Render_Sidebar extends Visualizer_Render {
517
  * @access protected
518
  */
519
  protected function _renderChartImageSettings() {
520
- // Default enable if amp is active.
521
- $is_amp = function_exists( 'amp_is_enabled' ) && amp_is_enabled();
522
- $this->save_chart_image = null === $this->save_chart_image && $is_amp ? true : $this->save_chart_image;
523
-
524
- self::_renderSectionStart( esc_html__( 'Save chart as an image inside Media Library', 'visualizer' ), false );
525
- self::_renderCheckboxItem(
526
- esc_html__( 'Save inside media library?', 'visualizer' ),
527
- 'save_chart_image',
528
- $this->save_chart_image ? true : false,
529
- 'yes',
530
- esc_html__( 'To enable save the image as an inside media library.', 'visualizer' ),
531
- false
532
- );
533
- self::_renderSectionEnd();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
534
  }
535
  }
517
  * @access protected
518
  */
519
  protected function _renderChartImageSettings() {
520
+ // Default enable if amp is active.
521
+ $is_amp = function_exists( 'amp_is_enabled' ) && amp_is_enabled();
522
+ $this->save_chart_image = null === $this->save_chart_image && $is_amp ? true : $this->save_chart_image;
523
+
524
+ $is_create_chart = true;
525
+ if ( filter_input( INPUT_GET, 'library', FILTER_VALIDATE_BOOLEAN ) ) {
526
+ if ( filter_input( INPUT_GET, 'action' ) === Visualizer_Plugin::ACTION_EDIT_CHART ) {
527
+ $is_create_chart = false;
528
+ }
529
+ }
530
+ $this->lazy_load_chart = null === $this->lazy_load_chart && $is_create_chart ? true : $this->lazy_load_chart;
531
+
532
+ self::_renderSectionStart( esc_html__( 'Save chart as an image inside Media Library', 'visualizer' ), false );
533
+ self::_renderCheckboxItem(
534
+ esc_html__( 'Save inside media library?', 'visualizer' ),
535
+ 'save_chart_image',
536
+ $this->save_chart_image ? true : false,
537
+ 'yes',
538
+ esc_html__( 'To enable save the image as an inside media library.', 'visualizer' ),
539
+ false
540
+ );
541
+ self::_renderSectionEnd();
542
+
543
+ self::_renderSectionStart( esc_html__( 'Lazy rendering of chart', 'visualizer' ), false );
544
+ self::_renderCheckboxItem(
545
+ esc_html__( 'Enable lazy rendering of chart?', 'visualizer' ),
546
+ 'lazy_load_chart',
547
+ $this->lazy_load_chart ? true : false,
548
+ 'yes',
549
+ esc_html__( 'To enable lazy chart rendering.', 'visualizer' ),
550
+ false
551
+ );
552
+ self::_renderSectionEnd();
553
  }
554
  }
classes/Visualizer/Source/Query.php CHANGED
@@ -115,7 +115,6 @@ class Visualizer_Source_Query extends Visualizer_Source {
115
  $wpdb->hide_errors();
116
  // @codingStandardsIgnoreStart
117
  $rows = $wpdb->get_results( $this->_query, $results_as_numeric_array ? ARRAY_N : ARRAY_A );
118
- do_action( 'themeisle_log_event', Visualizer_Plugin::NAME, sprintf( 'Firing query %s to get results %s with error %s', $this->_query, print_r( $rows, true ), print_r( $wpdb->last_error, true ) ), 'debug', __FILE__, __LINE__ );
119
  // @codingStandardsIgnoreEnd
120
  $wpdb->show_errors();
121
 
@@ -145,6 +144,9 @@ class Visualizer_Source_Query extends Visualizer_Source {
145
  $this->_error = $wpdb->last_error;
146
  }
147
  }
 
 
 
148
  if ( $as_html ) {
149
  $results = $this->html( $headers, $results );
150
  } else {
115
  $wpdb->hide_errors();
116
  // @codingStandardsIgnoreStart
117
  $rows = $wpdb->get_results( $this->_query, $results_as_numeric_array ? ARRAY_N : ARRAY_A );
 
118
  // @codingStandardsIgnoreEnd
119
  $wpdb->show_errors();
120
 
144
  $this->_error = $wpdb->last_error;
145
  }
146
  }
147
+ // Query log.
148
+ do_action( 'themeisle_log_event', Visualizer_Plugin::NAME, sprintf( 'Firing query %s to get results %s with error %s', $this->_query, print_r( $rows, true ), print_r( $wpdb->last_error, true ) ), 'debug', __FILE__, __LINE__ );
149
+
150
  if ( $as_html ) {
151
  $results = $this->html( $headers, $results );
152
  } else {
css/front.css CHANGED
@@ -24,4 +24,8 @@
24
  /* datatables */
25
  .dt-button {
26
  display: none !important;
27
- }
 
 
 
 
24
  /* datatables */
25
  .dt-button {
26
  display: none !important;
27
+ }
28
+
29
+ .visualizer-front-container.visualizer-lazy-render {
30
+ content-visibility: auto;
31
+ }
css/media.css CHANGED
@@ -1,5 +1,5 @@
1
  /*
2
- Version: 3.7.1
3
  */
4
  #visualizer-library-view {
5
  padding: 30px 10px 10px 30px;
1
  /*
2
+ Version: 3.7.2
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.1
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.7.2
7
  Author: Themeisle
8
  Author URI: http://themeisle.com
9
  Requires at least: 3.5
js/render-chartjs.js CHANGED
@@ -47,7 +47,8 @@
47
  type = 'bar';
48
  break;
49
  case 'bar':
50
- type = 'horizontalBar';
 
51
  break;
52
  case 'pie':
53
  // donut is not a setting but a separate chart type.
@@ -200,10 +201,24 @@
200
  if(typeof settings['yAxes'] !== 'undefined' && typeof settings['xAxes'] !== 'undefined'){
201
  // stacking has to be defined on both axes.
202
  if(typeof settings['yAxes']['stacked_bool'] !== 'undefined'){
203
- settings['xAxes']['stacked_bool'] = 'true';
204
  }
205
  if(typeof settings['xAxes']['stacked_bool'] !== 'undefined'){
206
- settings['yAxes']['stacked_bool'] = 'true';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
207
  }
208
  }
209
  configureAxes(settings, 'yAxes', chart);
@@ -275,6 +290,54 @@
275
  var $axis = $scales['scales'][axis];
276
 
277
  $axis.push($features);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
278
  $.extend(settings, $scales);
279
 
280
  // to prevent duplication, indicates that the axis has been set.
@@ -288,12 +351,12 @@
288
  var format = settings[axis + '_format'];
289
  switch(axis){
290
  case 'xAxes':
291
- settings.scales.xAxes[0].ticks.callback = function(value, index, values){
292
  return format_datum(value, format);
293
  };
294
  break;
295
  case 'yAxes':
296
- settings.scales.yAxes[0].ticks.callback = function(value, index, values){
297
  return format_datum(value, format);
298
  };
299
  break;
47
  type = 'bar';
48
  break;
49
  case 'bar':
50
+ type = 'bar';
51
+ settings.indexAxis = 'y';
52
  break;
53
  case 'pie':
54
  // donut is not a setting but a separate chart type.
201
  if(typeof settings['yAxes'] !== 'undefined' && typeof settings['xAxes'] !== 'undefined'){
202
  // stacking has to be defined on both axes.
203
  if(typeof settings['yAxes']['stacked_bool'] !== 'undefined'){
204
+ settings['yAxes']['stacked_bool'] = 'true';
205
  }
206
  if(typeof settings['xAxes']['stacked_bool'] !== 'undefined'){
207
+ settings['xAxes']['stacked_bool'] = 'true';
208
+ }
209
+ // Bar percentage.
210
+ if (typeof settings['yAxes']['barPercentage_int'] !=='undefined' && ''!== settings['yAxes']['barPercentage_int']){
211
+ settings['barPercentage'] = settings['yAxes']['barPercentage_int'];
212
+ }
213
+ if (typeof settings['xAxes']['barPercentage_int'] !=='undefined' && ''!== settings['xAxes']['barPercentage_int']){
214
+ settings['barPercentage'] = settings['xAxes']['barPercentage_int'];
215
+ }
216
+ // Bar thickness.
217
+ if (typeof settings['yAxes']['barThickness'] !=='undefined' && ''!== settings['yAxes']['barThickness']){
218
+ settings['barThickness'] = settings['yAxes']['barThickness'];
219
+ }
220
+ if (typeof settings['xAxes']['barThickness'] !=='undefined' && ''!== settings['xAxes']['barThickness']){
221
+ settings['barThickness'] = settings['xAxes']['barThickness'];
222
  }
223
  }
224
  configureAxes(settings, 'yAxes', chart);
290
  var $axis = $scales['scales'][axis];
291
 
292
  $axis.push($features);
293
+ // Migrate xAxes settings to v3.0+
294
+ if ( $scales.scales && $scales.scales.xAxes ) {
295
+ for (var x in $scales.scales.xAxes) {
296
+ $scales.scales.x = {
297
+ display: $scales.scales.xAxes[x].scaleLabel.display,
298
+ title: {
299
+ display:true,
300
+ text: $scales.scales.xAxes[x].scaleLabel.labelString,
301
+ color: $scales.scales.xAxes[x].scaleLabel.fontColor,
302
+ font: {
303
+ family: $scales.scales.xAxes[x].scaleLabel.fontFamily,
304
+ size: $scales.scales.xAxes[x].scaleLabel.fontSize
305
+ }
306
+ },
307
+ suggestedMax: $scales.scales.xAxes[x].ticks.suggestedMax || '',
308
+ suggestedMin: $scales.scales.xAxes[x].ticks.suggestedMin || '',
309
+ ticks: {
310
+ maxTicksLimit: $scales.scales.xAxes[x].ticks.maxTicksLimit
311
+ },
312
+ stacked: $scales.scales.xAxes[x].stacked || false
313
+ }
314
+ }
315
+ delete $scales.scales.xAxes;
316
+ }
317
+ // Migrate yAxes settings to v3.0+
318
+ if ( $scales.scales && $scales.scales.yAxes ) {
319
+ for (var y in $scales.scales.yAxes) {
320
+ $scales.scales.y = {
321
+ display: $scales.scales.yAxes[y].scaleLabel.display,
322
+ title: {
323
+ display:true,
324
+ text: $scales.scales.yAxes[y].scaleLabel.labelString,
325
+ color: $scales.scales.yAxes[y].scaleLabel.fontColor,
326
+ font: {
327
+ family: $scales.scales.yAxes[y].scaleLabel.fontFamily,
328
+ size: $scales.scales.yAxes[y].scaleLabel.fontSize
329
+ }
330
+ },
331
+ suggestedMax: $scales.scales.yAxes[y].ticks.suggestedMax || '',
332
+ suggestedMin: $scales.scales.yAxes[y].ticks.suggestedMin || '',
333
+ ticks: {
334
+ maxTicksLimit: $scales.scales.yAxes[y].ticks.maxTicksLimit
335
+ },
336
+ stacked: $scales.scales.yAxes[y].stacked || false
337
+ }
338
+ }
339
+ delete $scales.scales.yAxes;
340
+ }
341
  $.extend(settings, $scales);
342
 
343
  // to prevent duplication, indicates that the axis has been set.
351
  var format = settings[axis + '_format'];
352
  switch(axis){
353
  case 'xAxes':
354
+ settings.scales.x.ticks.callback = function(value, index, values){
355
  return format_datum(value, format);
356
  };
357
  break;
358
  case 'yAxes':
359
+ settings.scales.y.ticks.callback = function(value, index, values){
360
  return format_datum(value, format);
361
  };
362
  break;
js/render-facade.js CHANGED
@@ -119,7 +119,7 @@
119
  */
120
  function showChart(id) {
121
  // clone the visualizer object so that the original object is not affected.
122
- var viz = Object.assign({}, visualizer);
123
  if(id){
124
  viz.id = id;
125
  }
@@ -128,6 +128,7 @@
128
 
129
  function displayChartsOnFrontEnd() {
130
  // display all charts that are NOT to be lazy-loaded.
 
131
  $('div.visualizer-front:not(.visualizer-lazy):not(.viz-facade-loaded)').each(function(index, element){
132
  var id = $(element).addClass('viz-facade-loaded').attr('id');
133
  showChart(id);
119
  */
120
  function showChart(id) {
121
  // clone the visualizer object so that the original object is not affected.
122
+ var viz = Object.assign(visualizer, window.visualizer || {});
123
  if(id){
124
  viz.id = id;
125
  }
128
 
129
  function displayChartsOnFrontEnd() {
130
  // display all charts that are NOT to be lazy-loaded.
131
+ $( 'div.viz-facade-loaded:not(.visualizer-lazy):empty' ).removeClass( 'viz-facade-loaded' );
132
  $('div.visualizer-front:not(.visualizer-lazy):not(.viz-facade-loaded)').each(function(index, element){
133
  var id = $(element).addClass('viz-facade-loaded').attr('id');
134
  showChart(id);
js/render-google.js CHANGED
@@ -227,6 +227,10 @@ var __visualizer_chart_images = [];
227
  delete axis.viewWindow[property];
228
  }
229
  }
 
 
 
 
230
  }
231
 
232
  if(settings.hAxis){
@@ -235,9 +239,6 @@ var __visualizer_chart_images = [];
235
  settings.hAxis.textStyle = {color: settings.hAxis.textStyle};
236
  }
237
  }
238
- if(settings.hAxis.format == ''){
239
- settings.hAxis.format = 'YYYY-MM-dd';
240
- }
241
  }
242
 
243
  if(settings.vAxis){
@@ -428,12 +429,13 @@ var __visualizer_chart_images = [];
428
  }, 500 );
429
  }
430
 
431
- $( window ).on( 'orientationchange', function( event ) {
432
- $( '.visualizer-chart-loaded' ).removeClass( 'visualizer-chart-loaded' );
433
- } );
434
  });
435
 
436
  $(window).on('load', function(){
 
437
  resizeHiddenContainers(true);
438
  });
439
 
227
  delete axis.viewWindow[property];
228
  }
229
  }
230
+
231
+ if(settings.hAxis && settings.hAxis.format == ''){
232
+ settings.hAxis.format = 'YYYY-MM-dd';
233
+ }
234
  }
235
 
236
  if(settings.hAxis){
239
  settings.hAxis.textStyle = {color: settings.hAxis.textStyle};
240
  }
241
  }
 
 
 
242
  }
243
 
244
  if(settings.vAxis){
429
  }, 500 );
430
  }
431
 
432
+ window.addEventListener( 'orientationchange', function() {
433
+ $( '.visualizer-chart-loaded' ).removeClass( 'visualizer-chart-loaded' ).resize();
434
+ }, false);
435
  });
436
 
437
  $(window).on('load', function(){
438
+ $( '.visualizer-front:not(.visualizer-chart-loaded)' ).resize();
439
  resizeHiddenContainers(true);
440
  });
441
 
readme.txt CHANGED
@@ -163,6 +163,17 @@ Pay attention that to turn your shortcodes into graphs, your theme has to have `
163
 
164
  == Changelog ==
165
 
 
 
 
 
 
 
 
 
 
 
 
166
  ##### [Version 3.7.1](https://github.com/Codeinwp/visualizer/compare/v3.7.0...v3.7.1) (2021-11-17)
167
 
168
  - [Feat] Allow charts to render in dashboard areas via 3rd party plugins like Dashboard Widgets Suite
163
 
164
  == Changelog ==
165
 
166
+ ##### [Version 3.7.2](https://github.com/Codeinwp/visualizer/compare/v3.7.1...v3.7.2) (2021-12-20)
167
+
168
+ - Add latest chartJS library support in the bar chart
169
+ - Fix horizontal axis showing date format in Bar chart
170
+ - Fix orientation rotate issue in mobile
171
+ - CSS performance improvements
172
+ - Improve JS performance
173
+
174
+
175
+
176
+
177
  ##### [Version 3.7.1](https://github.com/Codeinwp/visualizer/compare/v3.7.0...v3.7.1) (2021-11-17)
178
 
179
  - [Feat] Allow charts to render in dashboard areas via 3rd party plugins like Dashboard Widgets Suite
vendor/autoload.php CHANGED
@@ -4,4 +4,4 @@
4
 
5
  require_once __DIR__ . '/composer/autoload_real.php';
6
 
7
- return ComposerAutoloaderInita768ab60d81b70ba8100d7aae31509bb::getLoader();
4
 
5
  require_once __DIR__ . '/composer/autoload_real.php';
6
 
7
+ return ComposerAutoloaderInit63c36cc06fbf3a1a8a3437781015b86d::getLoader();
vendor/composer/autoload_files.php CHANGED
@@ -6,22 +6,6 @@ $vendorDir = dirname(dirname(__FILE__));
6
  $baseDir = dirname($vendorDir);
7
 
8
  return array(
9
- '3af723442581d6c310bf44543f9f5c60' => $vendorDir . '/markbaker/matrix/classes/src/Functions/adjoint.php',
10
- 'd803221834c8b57fec95debb5406a797' => $vendorDir . '/markbaker/matrix/classes/src/Functions/antidiagonal.php',
11
- '4714cafbd3be4c72c274a25eae9396bb' => $vendorDir . '/markbaker/matrix/classes/src/Functions/cofactors.php',
12
- '89719dc7c77436609d1c1c31f0797b8f' => $vendorDir . '/markbaker/matrix/classes/src/Functions/determinant.php',
13
- 'c28af79ec7730859d83f2d4310b8dd0b' => $vendorDir . '/markbaker/matrix/classes/src/Functions/diagonal.php',
14
- 'c5d82bf1ac485e445f911e55789ab4e6' => $vendorDir . '/markbaker/matrix/classes/src/Functions/identity.php',
15
- '0d2d594de24a247f7a33499e933aa21e' => $vendorDir . '/markbaker/matrix/classes/src/Functions/inverse.php',
16
- 'f37c25880804a014ef40c8bffbab1b10' => $vendorDir . '/markbaker/matrix/classes/src/Functions/minors.php',
17
- 'd6e4e42171df0dbea253b3067fefda38' => $vendorDir . '/markbaker/matrix/classes/src/Functions/trace.php',
18
- '2c9b19fa954fd3e6fcc7e7a1383caddd' => $vendorDir . '/markbaker/matrix/classes/src/Functions/transpose.php',
19
- '0a538fc9b897450ec362480ebbebe94f' => $vendorDir . '/markbaker/matrix/classes/src/Operations/add.php',
20
- 'f0843f7f4089ec2343c7445544356385' => $vendorDir . '/markbaker/matrix/classes/src/Operations/directsum.php',
21
- 'ad3e8c29aa16d134661a414265677b61' => $vendorDir . '/markbaker/matrix/classes/src/Operations/subtract.php',
22
- '8d37dad4703fab45bfec9dd0bbf3278e' => $vendorDir . '/markbaker/matrix/classes/src/Operations/multiply.php',
23
- '4888a6f58c08148ebe17682f9ce9b2a8' => $vendorDir . '/markbaker/matrix/classes/src/Operations/divideby.php',
24
- 'eef6fa3879d3efa347cd24d5eb348f85' => $vendorDir . '/markbaker/matrix/classes/src/Operations/divideinto.php',
25
  'abede361264e2ae69ec1eee813a101af' => $vendorDir . '/markbaker/complex/classes/src/functions/abs.php',
26
  '21a5860fbef5be28db5ddfbc3cca67c4' => $vendorDir . '/markbaker/complex/classes/src/functions/acos.php',
27
  '1546e3f9d127f2a9bb2d1b6c31c26ef1' => $vendorDir . '/markbaker/complex/classes/src/functions/acosh.php',
@@ -64,6 +48,22 @@ return array(
64
  '883af48563631547925fa4c3b48ead07' => $vendorDir . '/markbaker/complex/classes/src/operations/multiply.php',
65
  'f190e3308e6ca23234a2875edc985c03' => $vendorDir . '/markbaker/complex/classes/src/operations/divideby.php',
66
  'ac9e33ce6841aa5bf5d16d465a2f03a7' => $vendorDir . '/markbaker/complex/classes/src/operations/divideinto.php',
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
67
  '546a0158460e038361bb95e23e62fb24' => $vendorDir . '/codeinwp/themeisle-sdk/load.php',
68
  'bac2fbb5843340437cc43704be908cf9' => $vendorDir . '/phpoffice/phpspreadsheet/src/Bootstrap.php',
69
  );
6
  $baseDir = dirname($vendorDir);
7
 
8
  return array(
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9
  'abede361264e2ae69ec1eee813a101af' => $vendorDir . '/markbaker/complex/classes/src/functions/abs.php',
10
  '21a5860fbef5be28db5ddfbc3cca67c4' => $vendorDir . '/markbaker/complex/classes/src/functions/acos.php',
11
  '1546e3f9d127f2a9bb2d1b6c31c26ef1' => $vendorDir . '/markbaker/complex/classes/src/functions/acosh.php',
48
  '883af48563631547925fa4c3b48ead07' => $vendorDir . '/markbaker/complex/classes/src/operations/multiply.php',
49
  'f190e3308e6ca23234a2875edc985c03' => $vendorDir . '/markbaker/complex/classes/src/operations/divideby.php',
50
  'ac9e33ce6841aa5bf5d16d465a2f03a7' => $vendorDir . '/markbaker/complex/classes/src/operations/divideinto.php',
51
+ '3af723442581d6c310bf44543f9f5c60' => $vendorDir . '/markbaker/matrix/classes/src/Functions/adjoint.php',
52
+ 'd803221834c8b57fec95debb5406a797' => $vendorDir . '/markbaker/matrix/classes/src/Functions/antidiagonal.php',
53
+ '4714cafbd3be4c72c274a25eae9396bb' => $vendorDir . '/markbaker/matrix/classes/src/Functions/cofactors.php',
54
+ '89719dc7c77436609d1c1c31f0797b8f' => $vendorDir . '/markbaker/matrix/classes/src/Functions/determinant.php',
55
+ 'c28af79ec7730859d83f2d4310b8dd0b' => $vendorDir . '/markbaker/matrix/classes/src/Functions/diagonal.php',
56
+ 'c5d82bf1ac485e445f911e55789ab4e6' => $vendorDir . '/markbaker/matrix/classes/src/Functions/identity.php',
57
+ '0d2d594de24a247f7a33499e933aa21e' => $vendorDir . '/markbaker/matrix/classes/src/Functions/inverse.php',
58
+ 'f37c25880804a014ef40c8bffbab1b10' => $vendorDir . '/markbaker/matrix/classes/src/Functions/minors.php',
59
+ 'd6e4e42171df0dbea253b3067fefda38' => $vendorDir . '/markbaker/matrix/classes/src/Functions/trace.php',
60
+ '2c9b19fa954fd3e6fcc7e7a1383caddd' => $vendorDir . '/markbaker/matrix/classes/src/Functions/transpose.php',
61
+ '0a538fc9b897450ec362480ebbebe94f' => $vendorDir . '/markbaker/matrix/classes/src/Operations/add.php',
62
+ 'f0843f7f4089ec2343c7445544356385' => $vendorDir . '/markbaker/matrix/classes/src/Operations/directsum.php',
63
+ 'ad3e8c29aa16d134661a414265677b61' => $vendorDir . '/markbaker/matrix/classes/src/Operations/subtract.php',
64
+ '8d37dad4703fab45bfec9dd0bbf3278e' => $vendorDir . '/markbaker/matrix/classes/src/Operations/multiply.php',
65
+ '4888a6f58c08148ebe17682f9ce9b2a8' => $vendorDir . '/markbaker/matrix/classes/src/Operations/divideby.php',
66
+ 'eef6fa3879d3efa347cd24d5eb348f85' => $vendorDir . '/markbaker/matrix/classes/src/Operations/divideinto.php',
67
  '546a0158460e038361bb95e23e62fb24' => $vendorDir . '/codeinwp/themeisle-sdk/load.php',
68
  'bac2fbb5843340437cc43704be908cf9' => $vendorDir . '/phpoffice/phpspreadsheet/src/Bootstrap.php',
69
  );
vendor/composer/autoload_real.php CHANGED
@@ -2,7 +2,7 @@
2
 
3
  // autoload_real.php @generated by Composer
4
 
5
- class ComposerAutoloaderInita768ab60d81b70ba8100d7aae31509bb
6
  {
7
  private static $loader;
8
 
@@ -24,15 +24,15 @@ class ComposerAutoloaderInita768ab60d81b70ba8100d7aae31509bb
24
 
25
  require __DIR__ . '/platform_check.php';
26
 
27
- spl_autoload_register(array('ComposerAutoloaderInita768ab60d81b70ba8100d7aae31509bb', 'loadClassLoader'), true, true);
28
  self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__)));
29
- spl_autoload_unregister(array('ComposerAutoloaderInita768ab60d81b70ba8100d7aae31509bb', 'loadClassLoader'));
30
 
31
  $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
32
  if ($useStaticLoader) {
33
  require __DIR__ . '/autoload_static.php';
34
 
35
- call_user_func(\Composer\Autoload\ComposerStaticInita768ab60d81b70ba8100d7aae31509bb::getInitializer($loader));
36
  } else {
37
  $map = require __DIR__ . '/autoload_namespaces.php';
38
  foreach ($map as $namespace => $path) {
@@ -53,19 +53,19 @@ class ComposerAutoloaderInita768ab60d81b70ba8100d7aae31509bb
53
  $loader->register(true);
54
 
55
  if ($useStaticLoader) {
56
- $includeFiles = Composer\Autoload\ComposerStaticInita768ab60d81b70ba8100d7aae31509bb::$files;
57
  } else {
58
  $includeFiles = require __DIR__ . '/autoload_files.php';
59
  }
60
  foreach ($includeFiles as $fileIdentifier => $file) {
61
- composerRequirea768ab60d81b70ba8100d7aae31509bb($fileIdentifier, $file);
62
  }
63
 
64
  return $loader;
65
  }
66
  }
67
 
68
- function composerRequirea768ab60d81b70ba8100d7aae31509bb($fileIdentifier, $file)
69
  {
70
  if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
71
  require $file;
2
 
3
  // autoload_real.php @generated by Composer
4
 
5
+ class ComposerAutoloaderInit63c36cc06fbf3a1a8a3437781015b86d
6
  {
7
  private static $loader;
8
 
24
 
25
  require __DIR__ . '/platform_check.php';
26
 
27
+ spl_autoload_register(array('ComposerAutoloaderInit63c36cc06fbf3a1a8a3437781015b86d', 'loadClassLoader'), true, true);
28
  self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__)));
29
+ spl_autoload_unregister(array('ComposerAutoloaderInit63c36cc06fbf3a1a8a3437781015b86d', 'loadClassLoader'));
30
 
31
  $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
32
  if ($useStaticLoader) {
33
  require __DIR__ . '/autoload_static.php';
34
 
35
+ call_user_func(\Composer\Autoload\ComposerStaticInit63c36cc06fbf3a1a8a3437781015b86d::getInitializer($loader));
36
  } else {
37
  $map = require __DIR__ . '/autoload_namespaces.php';
38
  foreach ($map as $namespace => $path) {
53
  $loader->register(true);
54
 
55
  if ($useStaticLoader) {
56
+ $includeFiles = Composer\Autoload\ComposerStaticInit63c36cc06fbf3a1a8a3437781015b86d::$files;
57
  } else {
58
  $includeFiles = require __DIR__ . '/autoload_files.php';
59
  }
60
  foreach ($includeFiles as $fileIdentifier => $file) {
61
+ composerRequire63c36cc06fbf3a1a8a3437781015b86d($fileIdentifier, $file);
62
  }
63
 
64
  return $loader;
65
  }
66
  }
67
 
68
+ function composerRequire63c36cc06fbf3a1a8a3437781015b86d($fileIdentifier, $file)
69
  {
70
  if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
71
  require $file;
vendor/composer/autoload_static.php CHANGED
@@ -4,25 +4,9 @@
4
 
5
  namespace Composer\Autoload;
6
 
7
- class ComposerStaticInita768ab60d81b70ba8100d7aae31509bb
8
  {
9
  public static $files = array (
10
- '3af723442581d6c310bf44543f9f5c60' => __DIR__ . '/..' . '/markbaker/matrix/classes/src/Functions/adjoint.php',
11
- 'd803221834c8b57fec95debb5406a797' => __DIR__ . '/..' . '/markbaker/matrix/classes/src/Functions/antidiagonal.php',
12
- '4714cafbd3be4c72c274a25eae9396bb' => __DIR__ . '/..' . '/markbaker/matrix/classes/src/Functions/cofactors.php',
13
- '89719dc7c77436609d1c1c31f0797b8f' => __DIR__ . '/..' . '/markbaker/matrix/classes/src/Functions/determinant.php',
14
- 'c28af79ec7730859d83f2d4310b8dd0b' => __DIR__ . '/..' . '/markbaker/matrix/classes/src/Functions/diagonal.php',
15
- 'c5d82bf1ac485e445f911e55789ab4e6' => __DIR__ . '/..' . '/markbaker/matrix/classes/src/Functions/identity.php',
16
- '0d2d594de24a247f7a33499e933aa21e' => __DIR__ . '/..' . '/markbaker/matrix/classes/src/Functions/inverse.php',
17
- 'f37c25880804a014ef40c8bffbab1b10' => __DIR__ . '/..' . '/markbaker/matrix/classes/src/Functions/minors.php',
18
- 'd6e4e42171df0dbea253b3067fefda38' => __DIR__ . '/..' . '/markbaker/matrix/classes/src/Functions/trace.php',
19
- '2c9b19fa954fd3e6fcc7e7a1383caddd' => __DIR__ . '/..' . '/markbaker/matrix/classes/src/Functions/transpose.php',
20
- '0a538fc9b897450ec362480ebbebe94f' => __DIR__ . '/..' . '/markbaker/matrix/classes/src/Operations/add.php',
21
- 'f0843f7f4089ec2343c7445544356385' => __DIR__ . '/..' . '/markbaker/matrix/classes/src/Operations/directsum.php',
22
- 'ad3e8c29aa16d134661a414265677b61' => __DIR__ . '/..' . '/markbaker/matrix/classes/src/Operations/subtract.php',
23
- '8d37dad4703fab45bfec9dd0bbf3278e' => __DIR__ . '/..' . '/markbaker/matrix/classes/src/Operations/multiply.php',
24
- '4888a6f58c08148ebe17682f9ce9b2a8' => __DIR__ . '/..' . '/markbaker/matrix/classes/src/Operations/divideby.php',
25
- 'eef6fa3879d3efa347cd24d5eb348f85' => __DIR__ . '/..' . '/markbaker/matrix/classes/src/Operations/divideinto.php',
26
  'abede361264e2ae69ec1eee813a101af' => __DIR__ . '/..' . '/markbaker/complex/classes/src/functions/abs.php',
27
  '21a5860fbef5be28db5ddfbc3cca67c4' => __DIR__ . '/..' . '/markbaker/complex/classes/src/functions/acos.php',
28
  '1546e3f9d127f2a9bb2d1b6c31c26ef1' => __DIR__ . '/..' . '/markbaker/complex/classes/src/functions/acosh.php',
@@ -65,6 +49,22 @@ class ComposerStaticInita768ab60d81b70ba8100d7aae31509bb
65
  '883af48563631547925fa4c3b48ead07' => __DIR__ . '/..' . '/markbaker/complex/classes/src/operations/multiply.php',
66
  'f190e3308e6ca23234a2875edc985c03' => __DIR__ . '/..' . '/markbaker/complex/classes/src/operations/divideby.php',
67
  'ac9e33ce6841aa5bf5d16d465a2f03a7' => __DIR__ . '/..' . '/markbaker/complex/classes/src/operations/divideinto.php',
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
68
  '546a0158460e038361bb95e23e62fb24' => __DIR__ . '/..' . '/codeinwp/themeisle-sdk/load.php',
69
  'bac2fbb5843340437cc43704be908cf9' => __DIR__ . '/..' . '/phpoffice/phpspreadsheet/src/Bootstrap.php',
70
  );
@@ -356,10 +356,10 @@ class ComposerStaticInita768ab60d81b70ba8100d7aae31509bb
356
  public static function getInitializer(ClassLoader $loader)
357
  {
358
  return \Closure::bind(function () use ($loader) {
359
- $loader->prefixLengthsPsr4 = ComposerStaticInita768ab60d81b70ba8100d7aae31509bb::$prefixLengthsPsr4;
360
- $loader->prefixDirsPsr4 = ComposerStaticInita768ab60d81b70ba8100d7aae31509bb::$prefixDirsPsr4;
361
- $loader->prefixesPsr0 = ComposerStaticInita768ab60d81b70ba8100d7aae31509bb::$prefixesPsr0;
362
- $loader->classMap = ComposerStaticInita768ab60d81b70ba8100d7aae31509bb::$classMap;
363
 
364
  }, null, ClassLoader::class);
365
  }
4
 
5
  namespace Composer\Autoload;
6
 
7
+ class ComposerStaticInit63c36cc06fbf3a1a8a3437781015b86d
8
  {
9
  public static $files = array (
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
10
  'abede361264e2ae69ec1eee813a101af' => __DIR__ . '/..' . '/markbaker/complex/classes/src/functions/abs.php',
11
  '21a5860fbef5be28db5ddfbc3cca67c4' => __DIR__ . '/..' . '/markbaker/complex/classes/src/functions/acos.php',
12
  '1546e3f9d127f2a9bb2d1b6c31c26ef1' => __DIR__ . '/..' . '/markbaker/complex/classes/src/functions/acosh.php',
49
  '883af48563631547925fa4c3b48ead07' => __DIR__ . '/..' . '/markbaker/complex/classes/src/operations/multiply.php',
50
  'f190e3308e6ca23234a2875edc985c03' => __DIR__ . '/..' . '/markbaker/complex/classes/src/operations/divideby.php',
51
  'ac9e33ce6841aa5bf5d16d465a2f03a7' => __DIR__ . '/..' . '/markbaker/complex/classes/src/operations/divideinto.php',
52
+ '3af723442581d6c310bf44543f9f5c60' => __DIR__ . '/..' . '/markbaker/matrix/classes/src/Functions/adjoint.php',
53
+ 'd803221834c8b57fec95debb5406a797' => __DIR__ . '/..' . '/markbaker/matrix/classes/src/Functions/antidiagonal.php',
54
+ '4714cafbd3be4c72c274a25eae9396bb' => __DIR__ . '/..' . '/markbaker/matrix/classes/src/Functions/cofactors.php',
55
+ '89719dc7c77436609d1c1c31f0797b8f' => __DIR__ . '/..' . '/markbaker/matrix/classes/src/Functions/determinant.php',
56
+ 'c28af79ec7730859d83f2d4310b8dd0b' => __DIR__ . '/..' . '/markbaker/matrix/classes/src/Functions/diagonal.php',
57
+ 'c5d82bf1ac485e445f911e55789ab4e6' => __DIR__ . '/..' . '/markbaker/matrix/classes/src/Functions/identity.php',
58
+ '0d2d594de24a247f7a33499e933aa21e' => __DIR__ . '/..' . '/markbaker/matrix/classes/src/Functions/inverse.php',
59
+ 'f37c25880804a014ef40c8bffbab1b10' => __DIR__ . '/..' . '/markbaker/matrix/classes/src/Functions/minors.php',
60
+ 'd6e4e42171df0dbea253b3067fefda38' => __DIR__ . '/..' . '/markbaker/matrix/classes/src/Functions/trace.php',
61
+ '2c9b19fa954fd3e6fcc7e7a1383caddd' => __DIR__ . '/..' . '/markbaker/matrix/classes/src/Functions/transpose.php',
62
+ '0a538fc9b897450ec362480ebbebe94f' => __DIR__ . '/..' . '/markbaker/matrix/classes/src/Operations/add.php',
63
+ 'f0843f7f4089ec2343c7445544356385' => __DIR__ . '/..' . '/markbaker/matrix/classes/src/Operations/directsum.php',
64
+ 'ad3e8c29aa16d134661a414265677b61' => __DIR__ . '/..' . '/markbaker/matrix/classes/src/Operations/subtract.php',
65
+ '8d37dad4703fab45bfec9dd0bbf3278e' => __DIR__ . '/..' . '/markbaker/matrix/classes/src/Operations/multiply.php',
66
+ '4888a6f58c08148ebe17682f9ce9b2a8' => __DIR__ . '/..' . '/markbaker/matrix/classes/src/Operations/divideby.php',
67
+ 'eef6fa3879d3efa347cd24d5eb348f85' => __DIR__ . '/..' . '/markbaker/matrix/classes/src/Operations/divideinto.php',
68
  '546a0158460e038361bb95e23e62fb24' => __DIR__ . '/..' . '/codeinwp/themeisle-sdk/load.php',
69
  'bac2fbb5843340437cc43704be908cf9' => __DIR__ . '/..' . '/phpoffice/phpspreadsheet/src/Bootstrap.php',
70
  );
356
  public static function getInitializer(ClassLoader $loader)
357
  {
358
  return \Closure::bind(function () use ($loader) {
359
+ $loader->prefixLengthsPsr4 = ComposerStaticInit63c36cc06fbf3a1a8a3437781015b86d::$prefixLengthsPsr4;
360
+ $loader->prefixDirsPsr4 = ComposerStaticInit63c36cc06fbf3a1a8a3437781015b86d::$prefixDirsPsr4;
361
+ $loader->prefixesPsr0 = ComposerStaticInit63c36cc06fbf3a1a8a3437781015b86d::$prefixesPsr0;
362
+ $loader->classMap = ComposerStaticInit63c36cc06fbf3a1a8a3437781015b86d::$classMap;
363
 
364
  }, null, ClassLoader::class);
365
  }
vendor/composer/installed.php CHANGED
@@ -1,11 +1,11 @@
1
  <?php return array(
2
  'root' => array(
3
- 'pretty_version' => 'v3.7.1',
4
- 'version' => '3.7.1.0',
5
  'type' => 'wordpress-plugin',
6
  'install_path' => __DIR__ . '/../../',
7
  'aliases' => array(),
8
- 'reference' => 'ee4a0215b10c32dac1ea248add336f910d7a5d43',
9
  'name' => 'codeinwp/visualizer',
10
  'dev' => false,
11
  ),
@@ -20,12 +20,12 @@
20
  'dev_requirement' => false,
21
  ),
22
  'codeinwp/visualizer' => array(
23
- 'pretty_version' => 'v3.7.1',
24
- 'version' => '3.7.1.0',
25
  'type' => 'wordpress-plugin',
26
  'install_path' => __DIR__ . '/../../',
27
  'aliases' => array(),
28
- 'reference' => 'ee4a0215b10c32dac1ea248add336f910d7a5d43',
29
  'dev_requirement' => false,
30
  ),
31
  'markbaker/complex' => array(
1
  <?php return array(
2
  'root' => array(
3
+ 'pretty_version' => 'v3.7.2',
4
+ 'version' => '3.7.2.0',
5
  'type' => 'wordpress-plugin',
6
  'install_path' => __DIR__ . '/../../',
7
  'aliases' => array(),
8
+ 'reference' => '3f5a59ede4b44a5e93fce01458a0e9af9fa92965',
9
  'name' => 'codeinwp/visualizer',
10
  'dev' => false,
11
  ),
20
  'dev_requirement' => false,
21
  ),
22
  'codeinwp/visualizer' => array(
23
+ 'pretty_version' => 'v3.7.2',
24
+ 'version' => '3.7.2.0',
25
  'type' => 'wordpress-plugin',
26
  'install_path' => __DIR__ . '/../../',
27
  'aliases' => array(),
28
+ 'reference' => '3f5a59ede4b44a5e93fce01458a0e9af9fa92965',
29
  'dev_requirement' => false,
30
  ),
31
  'markbaker/complex' => array(