WordPress Charts and Graphs Lite - Version 3.5.1

Version Description

Download this release

Release Info

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

Code changes from version 3.5.0 to 3.5.1

CHANGELOG.md CHANGED
@@ -1,38 +1,49 @@
1
- #### [Version 3.5.0](https://github.com/Codeinwp/visualizer/compare/v3.4.11...v3.5.0) (2021-04-28)
2
 
3
 
4
- - Permissions tab disappears after a user modifies a chart's data [#728](https://github.com/Codeinwp/visualizer/issues/728)
5
- - Conflict with Edit Flow plugin
6
- - Improve compatibility with Ninja Forms
7
- - Fix for color for Minor Grid Lines not working
8
-
9
- #### Features
10
- - Add support for key:value header to access JSON endpoints
11
- - Option to download CSV data of the chart without the row with series type
12
-
13
- ### v3.4.11 - 2021-02-16
14
- **Changes:**
15
- * Development
16
-
17
- ### v3.4.10 - 2020-12-09
18
- **Changes:**
19
- * [Fix] Compatibility with Composer 2.0
20
-
21
- ### v3.4.9 - 2020-11-26
22
- **Changes:**
23
- * [Fix] Pie chart slices offset problem in the Gutenberg editor
24
- * [Fix] Warning is thrown when remote file is used as source
25
- * [Fix] Bubble chart legend position not working in the Gutenberg editor
26
-
27
- ### v3.4.8 - 2020-09-29
28
- **Changes:**
29
- * [Fix] Option to edit charts imported from JSON
30
 
31
- ### v3.4.7 - 2020-09-21
32
- **Changes:**
33
- * - [Fix] Import from JSON: Reordering columns only reorders the label, not the associated data
34
- * - [Fix] numberFormat option doesn't apply in Bar charts when using annotations
35
- * - [Fix] Google GEO chart is not rendering if 3rd data column is added
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
36
 
37
  ### v3.4.6 - 2020-08-11
38
  **Changes:**
1
+ ##### [Version 3.5.1](https://github.com/Codeinwp/visualizer/compare/v3.5.0...v3.5.1) (2021-05-25)
2
 
3
 
4
+ - Fix compatibility with 3rd party plugins which use the same js library as Visualizer [#801](https://github.com/Codeinwp/visualizer/issues/801)
5
+ - Fix fatal error when a new chart is created on PHP 8 [#795](https://github.com/Codeinwp/visualizer/issues/795)
6
+ - Chart doesn't get refreshed automatically when the JSON endpoint is used as the data source
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7
 
8
+ #### Features:
9
+ - Adds option to add schema.org Dataset for license and creator [#794](https://github.com/Codeinwp/visualizer/issues/794)
10
+
11
+ #### [Version 3.5.0](https://github.com/Codeinwp/visualizer/compare/v3.4.11...v3.5.0) (2021-04-28)
12
+
13
+ #### Fixes
14
+
15
+ - Permissions tab disappears after a user modifies a chart's data
16
+ - Conflict with Edit Flow plugin
17
+ - Improve compatibility with Ninja Forms
18
+ - Fix for color for Minor Grid Lines not working
19
+
20
+ #### Features
21
+ - Add support for key:value header to access JSON endpoints
22
+ - Option to download CSV data of the chart without the row with series type
23
+
24
+ ### v3.4.11 - 2021-02-16
25
+ **Changes:**
26
+ * Development
27
+
28
+ ### v3.4.10 - 2020-12-09
29
+ **Changes:**
30
+ * [Fix] Compatibility with Composer 2.0
31
+
32
+ ### v3.4.9 - 2020-11-26
33
+ **Changes:**
34
+ * [Fix] Pie chart slices offset problem in the Gutenberg editor
35
+ * [Fix] Warning is thrown when remote file is used as source
36
+ * [Fix] Bubble chart legend position not working in the Gutenberg editor
37
+
38
+ ### v3.4.8 - 2020-09-29
39
+ **Changes:**
40
+ * [Fix] Option to edit charts imported from JSON
41
+
42
+ ### v3.4.7 - 2020-09-21
43
+ **Changes:**
44
+ * - [Fix] Import from JSON: Reordering columns only reorders the label, not the associated data
45
+ * - [Fix] numberFormat option doesn't apply in Bar charts when using annotations
46
+ * - [Fix] Google GEO chart is not rendering if 3rd data column is added
47
 
48
  ### v3.4.6 - 2020-08-11
49
  **Changes:**
CONTRIBUTING.md ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ## Releasing
2
+
3
+ This repository uses conventional [changelog commit](https://github.com/Codeinwp/conventional-changelog-simple-preset) messages to trigger release
4
+
5
+ How to release a new version:
6
+
7
+ - Clone the master branch
8
+ - Do your changes
9
+ - Send a PR to master and merge it using the following subject message
10
+ - `release: <release short description>` - for patch release
11
+ - `release(minor): <release short description>` - for minor release
12
+ - `release(major): <release short description>` - for major release
13
+ The release notes will inherit the body of the commit message which triggered the release. For more details check the [simple-preset](https://github.com/Codeinwp/conventional-changelog-simple-preset) that we use.
classes/Visualizer/Module/Chart.php CHANGED
@@ -139,6 +139,10 @@ class Visualizer_Module_Chart extends Visualizer_Module {
139
 
140
  if ( -1 < $time ) {
141
  add_post_meta( $chart_id, Visualizer_Plugin::CF_JSON_SCHEDULE, $time );
 
 
 
 
142
  }
143
  wp_send_json_success();
144
  }
139
 
140
  if ( -1 < $time ) {
141
  add_post_meta( $chart_id, Visualizer_Plugin::CF_JSON_SCHEDULE, $time );
142
+ // Update schedules.
143
+ $schedules = get_option( Visualizer_Plugin::CF_JSON_SCHEDULE, array() );
144
+ $schedules[ $chart_id ] = time() + $time * HOUR_IN_SECONDS;
145
+ update_option( Visualizer_Plugin::CF_JSON_SCHEDULE, $schedules );
146
  }
147
  wp_send_json_success();
148
  }
classes/Visualizer/Module/Frontend.php CHANGED
@@ -484,13 +484,48 @@ class Visualizer_Module_Frontend extends Visualizer_Module {
484
  return '';
485
  }
486
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
487
  $schema = apply_filters(
488
  'visualizer_schema',
489
  '{
490
  "@context":"https://schema.org/",
491
  "@type":"Dataset",
492
  "name":"' . esc_html( $title ) . '",
493
- "description":"' . esc_html( $desc ) . '"
 
 
 
 
 
494
  }',
495
  $id
496
  );
484
  return '';
485
  }
486
 
487
+ $license = '';
488
+ if ( isset( $settings['license'] ) && ! empty( $settings['license'] ) ) {
489
+ $license = $settings['license'];
490
+ if ( is_array( $license ) ) {
491
+ $license = $settings['license']['text'];
492
+ }
493
+ }
494
+ $license = apply_filters( 'visualizer_schema_license', $license, $id );
495
+ if ( empty( $license ) ) {
496
+ if ( $show_errors ) {
497
+ return "<!-- Not showing structured data for chart $id because license is empty -->";
498
+ }
499
+ return '';
500
+ }
501
+
502
+ $creator = '';
503
+ if ( isset( $settings['creator'] ) && ! empty( $settings['creator'] ) ) {
504
+ $creator = $settings['creator'];
505
+ if ( is_array( $creator ) ) {
506
+ $creator = $settings['creator']['text'];
507
+ }
508
+ }
509
+ $creator = apply_filters( 'visualizer_schema_creator', $creator, $id );
510
+ if ( empty( $creator ) ) {
511
+ if ( $show_errors ) {
512
+ return "<!-- Not showing structured data for chart $id because creator is empty -->";
513
+ }
514
+ return '';
515
+ }
516
+
517
  $schema = apply_filters(
518
  'visualizer_schema',
519
  '{
520
  "@context":"https://schema.org/",
521
  "@type":"Dataset",
522
  "name":"' . esc_html( $title ) . '",
523
+ "description":"' . esc_html( $desc ) . '",
524
+ "license": "' . esc_html( $license ) . '",
525
+ "creator": {
526
+ "@type": "Person",
527
+ "name": "' . esc_html( $creator ) . '"
528
+ }
529
  }',
530
  $id
531
  );
classes/Visualizer/Plugin.php CHANGED
@@ -28,7 +28,7 @@
28
  class Visualizer_Plugin {
29
 
30
  const NAME = 'visualizer';
31
- const VERSION = '3.5.0';
32
 
33
  // custom post types
34
  const CPT_VISUALIZER = 'visualizer';
28
  class Visualizer_Plugin {
29
 
30
  const NAME = 'visualizer';
31
+ const VERSION = '3.5.1';
32
 
33
  // custom post types
34
  const CPT_VISUALIZER = 'visualizer';
classes/Visualizer/Render/Sidebar/ChartJS.php CHANGED
@@ -296,6 +296,20 @@ abstract class Visualizer_Render_Sidebar_ChartJS extends Visualizer_Render_Sideb
296
 
297
  $this->_renderAnimationSettings();
298
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
299
  self::_renderGroupEnd();
300
  }
301
 
296
 
297
  $this->_renderAnimationSettings();
298
 
299
+ self::_renderSectionStart( esc_html__( 'License & Creator', 'visualizer' ), false );
300
+ self::_renderTextItem(
301
+ esc_html__( 'License', 'visualizer' ),
302
+ 'license',
303
+ $this->license,
304
+ ''
305
+ );
306
+ self::_renderTextItem(
307
+ esc_html__( 'Creator', 'visualizer' ),
308
+ 'creator',
309
+ $this->creator,
310
+ ''
311
+ );
312
+ self::_renderSectionEnd();
313
  self::_renderGroupEnd();
314
  }
315
 
classes/Visualizer/Render/Sidebar/Google.php CHANGED
@@ -208,7 +208,7 @@ abstract class Visualizer_Render_Sidebar_Google extends Visualizer_Render_Sideba
208
  self::_renderSelectItem(
209
  esc_html__( 'Position', 'visualizer' ),
210
  'legend[position]',
211
- $this->legend['position'],
212
  $this->_legendPositions,
213
  esc_html__( 'Determines where to place the legend, compared to the chart area.', 'visualizer' )
214
  );
@@ -216,7 +216,7 @@ abstract class Visualizer_Render_Sidebar_Google extends Visualizer_Render_Sideba
216
  self::_renderSelectItem(
217
  esc_html__( 'Alignment', 'visualizer' ),
218
  'legend[alignment]',
219
- $this->legend['alignment'],
220
  $this->_alignments,
221
  esc_html__( 'Determines the alignment of the legend.', 'visualizer' )
222
  );
@@ -234,7 +234,20 @@ abstract class Visualizer_Render_Sidebar_Google extends Visualizer_Render_Sideba
234
  self::_renderSectionEnd();
235
 
236
  $this->_renderAnimationSettings();
237
-
 
 
 
 
 
 
 
 
 
 
 
 
 
238
  do_action( 'visualizer_chart_settings', get_class( $this ), $this->_data, 'general', array( 'generic' => true ) );
239
 
240
  self::_renderGroupEnd();
@@ -393,10 +406,12 @@ abstract class Visualizer_Render_Sidebar_Google extends Visualizer_Render_Sideba
393
  echo '<table class="viz-section-table" cellspacing="0" cellpadding="0" border="0">';
394
  echo '<tr>';
395
  echo '<td class="viz-section-table-column">';
396
- echo '<input type="text" name="chartArea[left]" class="control-text" value="', $this->chartArea['left'] || $this->chartArea['left'] === '0' ? esc_attr( $this->chartArea['left'] ) : '', '" placeholder="20%">';
 
397
  echo '</td>';
398
  echo '<td class="viz-section-table-column">';
399
- echo '<input type="text" name="chartArea[top]" class="control-text" value="', $this->chartArea['top'] || $this->chartArea['top'] === '0' ? esc_attr( $this->chartArea['top'] ) : '', '" placeholder="20%">';
 
400
  echo '</td>';
401
  echo '</tr>';
402
  echo '</table>';
208
  self::_renderSelectItem(
209
  esc_html__( 'Position', 'visualizer' ),
210
  'legend[position]',
211
+ isset( $this->legend['position'] ) ? $this->legend['position'] : '',
212
  $this->_legendPositions,
213
  esc_html__( 'Determines where to place the legend, compared to the chart area.', 'visualizer' )
214
  );
216
  self::_renderSelectItem(
217
  esc_html__( 'Alignment', 'visualizer' ),
218
  'legend[alignment]',
219
+ isset( $this->legend['alignment'] ) ? $this->legend['alignment'] : '',
220
  $this->_alignments,
221
  esc_html__( 'Determines the alignment of the legend.', 'visualizer' )
222
  );
234
  self::_renderSectionEnd();
235
 
236
  $this->_renderAnimationSettings();
237
+ self::_renderSectionStart( esc_html__( 'License & Creator', 'visualizer' ), false );
238
+ self::_renderTextItem(
239
+ esc_html__( 'License', 'visualizer' ),
240
+ 'license',
241
+ $this->license,
242
+ ''
243
+ );
244
+ self::_renderTextItem(
245
+ esc_html__( 'Creator', 'visualizer' ),
246
+ 'creator',
247
+ $this->creator,
248
+ ''
249
+ );
250
+ self::_renderSectionEnd();
251
  do_action( 'visualizer_chart_settings', get_class( $this ), $this->_data, 'general', array( 'generic' => true ) );
252
 
253
  self::_renderGroupEnd();
406
  echo '<table class="viz-section-table" cellspacing="0" cellpadding="0" border="0">';
407
  echo '<tr>';
408
  echo '<td class="viz-section-table-column">';
409
+ $chartarea_left = isset( $this->chartArea['left'] ) ? $this->chartArea['left'] : '';
410
+ echo '<input type="text" name="chartArea[left]" class="control-text" value="', $chartarea_left || '0' === $chartarea_left ? esc_attr( $chartarea_left ) : '', '" placeholder="20%">';
411
  echo '</td>';
412
  echo '<td class="viz-section-table-column">';
413
+ $chartarea_top = isset( $this->chartArea['top'] ) ? $this->chartArea['top'] : '';
414
+ echo '<input type="text" name="chartArea[top]" class="control-text" value="', $chartarea_top || '0' === $chartarea_top ? esc_attr( $chartarea_top ) : '', '" placeholder="20%">';
415
  echo '</td>';
416
  echo '</tr>';
417
  echo '</table>';
classes/Visualizer/Render/Sidebar/Type/GoogleCharts/Gauge.php CHANGED
@@ -78,6 +78,28 @@ class Visualizer_Render_Sidebar_Type_GoogleCharts_Gauge extends Visualizer_Rende
78
  $this->title,
79
  esc_html__( 'Text to display in the back-end admin area.', 'visualizer' )
80
  );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
81
  self::_renderSectionEnd();
82
 
83
  self::_renderGroupEnd();
78
  $this->title,
79
  esc_html__( 'Text to display in the back-end admin area.', 'visualizer' )
80
  );
81
+
82
+ self::_renderTextAreaItem(
83
+ esc_html__( 'Chart Description', 'visualizer' ),
84
+ 'description',
85
+ $this->description,
86
+ sprintf( esc_html__( 'Description to display in the structured data schema as explained %1$shere%2$s', 'visualizer' ), '<a href="https://developers.google.com/search/docs/data-types/dataset#dataset" target="_blank">', '</a>' )
87
+ );
88
+ self::_renderSectionEnd();
89
+
90
+ self::_renderSectionStart( esc_html__( 'License & Creator', 'visualizer' ), false );
91
+ self::_renderTextItem(
92
+ esc_html__( 'License', 'visualizer' ),
93
+ 'license',
94
+ $this->license,
95
+ ''
96
+ );
97
+ self::_renderTextItem(
98
+ esc_html__( 'Creator', 'visualizer' ),
99
+ 'creator',
100
+ $this->creator,
101
+ ''
102
+ );
103
  self::_renderSectionEnd();
104
 
105
  self::_renderGroupEnd();
classes/Visualizer/Render/Sidebar/Type/GoogleCharts/Geo.php CHANGED
@@ -64,6 +64,27 @@ class Visualizer_Render_Sidebar_Type_GoogleCharts_Geo extends Visualizer_Render_
64
  $this->title,
65
  esc_html__( 'Text to display in the back-end admin area.', 'visualizer' )
66
  );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
67
  self::_renderSectionEnd();
68
  self::_renderGroupEnd();
69
  }
64
  $this->title,
65
  esc_html__( 'Text to display in the back-end admin area.', 'visualizer' )
66
  );
67
+ self::_renderTextAreaItem(
68
+ esc_html__( 'Chart Description', 'visualizer' ),
69
+ 'description',
70
+ $this->description,
71
+ sprintf( esc_html__( 'Description to display in the structured data schema as explained %1$shere%2$s', 'visualizer' ), '<a href="https://developers.google.com/search/docs/data-types/dataset#dataset" target="_blank">', '</a>' )
72
+ );
73
+ self::_renderSectionEnd();
74
+
75
+ self::_renderSectionStart( esc_html__( 'License & Creator', 'visualizer' ), false );
76
+ self::_renderTextItem(
77
+ esc_html__( 'License', 'visualizer' ),
78
+ 'license',
79
+ $this->license,
80
+ ''
81
+ );
82
+ self::_renderTextItem(
83
+ esc_html__( 'Creator', 'visualizer' ),
84
+ 'creator',
85
+ $this->creator,
86
+ ''
87
+ );
88
  self::_renderSectionEnd();
89
  self::_renderGroupEnd();
90
  }
classes/Visualizer/Render/Sidebar/Type/GoogleCharts/Tabular.php CHANGED
@@ -73,8 +73,28 @@ class Visualizer_Render_Sidebar_Type_GoogleCharts_Tabular extends Visualizer_Ren
73
  $this->title,
74
  esc_html__( 'Text to display in the back-end admin area.', 'visualizer' )
75
  );
 
 
 
 
 
 
76
  self::_renderSectionEnd();
77
- self::_renderGroupEnd();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
78
  }
79
 
80
  /**
73
  $this->title,
74
  esc_html__( 'Text to display in the back-end admin area.', 'visualizer' )
75
  );
76
+ self::_renderTextAreaItem(
77
+ esc_html__( 'Chart Description', 'visualizer' ),
78
+ 'description',
79
+ $this->description,
80
+ sprintf( esc_html__( 'Description to display in the structured data schema as explained %1$shere%2$s', 'visualizer' ), '<a href="https://developers.google.com/search/docs/data-types/dataset#dataset" target="_blank">', '</a>' )
81
+ );
82
  self::_renderSectionEnd();
83
+
84
+ self::_renderSectionStart( esc_html__( 'License & Creator', 'visualizer' ), false );
85
+ self::_renderTextItem(
86
+ esc_html__( 'License', 'visualizer' ),
87
+ 'license',
88
+ $this->license,
89
+ ''
90
+ );
91
+ self::_renderTextItem(
92
+ esc_html__( 'Creator', 'visualizer' ),
93
+ 'creator',
94
+ $this->creator,
95
+ ''
96
+ );
97
+ self::_renderGroupEnd();
98
  }
99
 
100
  /**
classes/Visualizer/Source.php CHANGED
@@ -335,7 +335,7 @@ abstract class Visualizer_Source {
335
  *
336
  * @return string|null
337
  */
338
- private static final function determine_date_format( $value, $type ) {
339
  if ( version_compare( phpversion(), '5.3.0', '<' ) ) {
340
  do_action( 'themeisle_log_event', Visualizer_Plugin::NAME, sprintf( 'PHP version %s not supported', phpversion() ), 'error', __FILE__, __LINE__ );
341
  return null;
335
  *
336
  * @return string|null
337
  */
338
+ private static function determine_date_format( $value, $type ) {
339
  if ( version_compare( phpversion(), '5.3.0', '<' ) ) {
340
  do_action( 'themeisle_log_event', Visualizer_Plugin::NAME, sprintf( 'PHP version %s not supported', phpversion() ), 'error', __FILE__, __LINE__ );
341
  return null;
css/media.css CHANGED
@@ -1,5 +1,5 @@
1
  /*
2
- Version: 3.5.0
3
  */
4
  #visualizer-library-view {
5
  padding: 30px 10px 10px 30px;
1
  /*
2
+ Version: 3.5.1
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.5.0
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.5.1
7
  Author: Themeisle
8
  Author URI: http://themeisle.com
9
  Requires at least: 3.5
js/media.js CHANGED
@@ -5,7 +5,7 @@
5
  wpmvtv = wpmv.toolbar.visualizer;
6
  mediaFrame = wpmv.MediaFrame.Post;
7
 
8
- g.charts.load("current", { packages: ["corechart", "geochart", "gauge", "table", "timeline"] });
9
 
10
  wpmv.MediaFrame.Post = mediaFrame.extend({
11
  initialize: function() {
5
  wpmvtv = wpmv.toolbar.visualizer;
6
  mediaFrame = wpmv.MediaFrame.Post;
7
 
8
+ g.load('visualization', 'current', { packages: ["corechart", "geochart", "gauge", "table", "timeline"] });
9
 
10
  wpmv.MediaFrame.Post = mediaFrame.extend({
11
  initialize: function() {
js/render-google.js CHANGED
@@ -451,14 +451,15 @@ var __visualizer_chart_images = [];
451
  }
452
 
453
  objects = {};
454
- google.charts.load("current", {packages: $chart_types, mapsApiKey: v.map_api_key, 'language' : v.language});
455
- google.charts.setOnLoadCallback(function() {
456
- gv = google.visualization;
457
- all_charts = v.charts;
458
- if(v.is_front == true && typeof v.id !== 'undefined'){ // jshint ignore:line
459
- renderChart(v.id);
460
- } else {
461
- render();
 
462
  }
463
  });
464
  });
451
  }
452
 
453
  objects = {};
454
+ google.load( 'visualization', 'current', {packages: $chart_types, mapsApiKey: v.map_api_key, 'language' : v.language,
455
+ callback: function () {
456
+ gv = google.visualization;
457
+ all_charts = v.charts;
458
+ if(v.is_front == true && typeof v.id !== 'undefined'){ // jshint ignore:line
459
+ renderChart(v.id);
460
+ } else {
461
+ render();
462
+ }
463
  }
464
  });
465
  });
readme.txt CHANGED
@@ -163,10 +163,23 @@ Pay attention that to turn your shortcodes into graphs, your theme has to have `
163
 
164
  == Changelog ==
165
 
166
- #### [Version 3.5.0](https://github.com/Codeinwp/visualizer/compare/v3.4.11...v3.5.0) (2021-04-28)
 
 
 
 
 
 
 
 
 
167
 
168
 
169
- - Permissions tab disappears after a user modifies a chart's data [#728](https://github.com/Codeinwp/visualizer/issues/728)
 
 
 
 
170
  - Conflict with Edit Flow plugin
171
  - Improve compatibility with Ninja Forms
172
  - Fix for color for Minor Grid Lines not working
163
 
164
  == Changelog ==
165
 
166
+ ##### [Version 3.5.1](https://github.com/Codeinwp/visualizer/compare/v3.5.0...v3.5.1) (2021-05-25)
167
+
168
+
169
+ - Fix compatibility with 3rd party plugins which use the same js library as Visualizer [#801](https://github.com/Codeinwp/visualizer/issues/801)
170
+ - Fix fatal error when a new chart is created on PHP 8 [#795](https://github.com/Codeinwp/visualizer/issues/795)
171
+ - Chart doesn't get refreshed automatically when the JSON endpoint is used as the data source
172
+
173
+ #### Features:
174
+ - Adds option to add schema.org Dataset for license and creator [#794](https://github.com/Codeinwp/visualizer/issues/794)
175
+
176
 
177
 
178
+
179
+ #### [Version 3.5.0](https://github.com/Codeinwp/visualizer/compare/v3.4.11...v3.5.0) (2021-04-28)
180
+
181
+ #### Fixes
182
+ - Permissions tab disappears after a user modifies a chart's data
183
  - Conflict with Edit Flow plugin
184
  - Improve compatibility with Ninja Forms
185
  - Fix for color for Minor Grid Lines not working
vendor/autoload.php CHANGED
@@ -4,4 +4,4 @@
4
 
5
  require_once __DIR__ . '/composer/autoload_real.php';
6
 
7
- return ComposerAutoloaderInita5d4a1562bec7851477ef68657e5f83c::getLoader();
4
 
5
  require_once __DIR__ . '/composer/autoload_real.php';
6
 
7
+ return ComposerAutoloaderInit1eba1ddd47060c611330d99eb3e283d6::getLoader();
vendor/composer/InstalledVersions.php CHANGED
@@ -20,17 +20,19 @@ use Composer\Semver\VersionParser;
20
 
21
 
22
 
 
 
23
  class InstalledVersions
24
  {
25
  private static $installed = array (
26
  'root' =>
27
  array (
28
- 'pretty_version' => 'v3.5.0',
29
- 'version' => '3.5.0.0',
30
  'aliases' =>
31
  array (
32
  ),
33
- 'reference' => 'ee600874a63be6b0904df2b2d1ae67f8b03b7cf2',
34
  'name' => 'codeinwp/visualizer',
35
  ),
36
  'versions' =>
@@ -47,12 +49,12 @@ private static $installed = array (
47
  ),
48
  'codeinwp/visualizer' =>
49
  array (
50
- 'pretty_version' => 'v3.5.0',
51
- 'version' => '3.5.0.0',
52
  'aliases' =>
53
  array (
54
  ),
55
- 'reference' => 'ee600874a63be6b0904df2b2d1ae67f8b03b7cf2',
56
  ),
57
  'markbaker/complex' =>
58
  array (
@@ -117,7 +119,6 @@ foreach (self::getInstalled() as $installed) {
117
  $packages[] = array_keys($installed['versions']);
118
  }
119
 
120
-
121
  if (1 === \count($packages)) {
122
  return $packages[0];
123
  }
@@ -313,6 +314,7 @@ self::$installedByVendor = array();
313
 
314
 
315
 
 
316
  private static function getInstalled()
317
  {
318
  if (null === self::$canGetVendors) {
20
 
21
 
22
 
23
+
24
+
25
  class InstalledVersions
26
  {
27
  private static $installed = array (
28
  'root' =>
29
  array (
30
+ 'pretty_version' => 'v3.5.1',
31
+ 'version' => '3.5.1.0',
32
  'aliases' =>
33
  array (
34
  ),
35
+ 'reference' => 'a944634a1c82d0cd30fc4a5651d4b5932d06e79f',
36
  'name' => 'codeinwp/visualizer',
37
  ),
38
  'versions' =>
49
  ),
50
  'codeinwp/visualizer' =>
51
  array (
52
+ 'pretty_version' => 'v3.5.1',
53
+ 'version' => '3.5.1.0',
54
  'aliases' =>
55
  array (
56
  ),
57
+ 'reference' => 'a944634a1c82d0cd30fc4a5651d4b5932d06e79f',
58
  ),
59
  'markbaker/complex' =>
60
  array (
119
  $packages[] = array_keys($installed['versions']);
120
  }
121
 
 
122
  if (1 === \count($packages)) {
123
  return $packages[0];
124
  }
314
 
315
 
316
 
317
+
318
  private static function getInstalled()
319
  {
320
  if (null === self::$canGetVendors) {
vendor/composer/autoload_real.php CHANGED
@@ -2,7 +2,7 @@
2
 
3
  // autoload_real.php @generated by Composer
4
 
5
- class ComposerAutoloaderInita5d4a1562bec7851477ef68657e5f83c
6
  {
7
  private static $loader;
8
 
@@ -24,15 +24,15 @@ class ComposerAutoloaderInita5d4a1562bec7851477ef68657e5f83c
24
 
25
  require __DIR__ . '/platform_check.php';
26
 
27
- spl_autoload_register(array('ComposerAutoloaderInita5d4a1562bec7851477ef68657e5f83c', 'loadClassLoader'), true, true);
28
  self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__)));
29
- spl_autoload_unregister(array('ComposerAutoloaderInita5d4a1562bec7851477ef68657e5f83c', '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\ComposerStaticInita5d4a1562bec7851477ef68657e5f83c::getInitializer($loader));
36
  } else {
37
  $map = require __DIR__ . '/autoload_namespaces.php';
38
  foreach ($map as $namespace => $path) {
@@ -53,19 +53,19 @@ class ComposerAutoloaderInita5d4a1562bec7851477ef68657e5f83c
53
  $loader->register(true);
54
 
55
  if ($useStaticLoader) {
56
- $includeFiles = Composer\Autoload\ComposerStaticInita5d4a1562bec7851477ef68657e5f83c::$files;
57
  } else {
58
  $includeFiles = require __DIR__ . '/autoload_files.php';
59
  }
60
  foreach ($includeFiles as $fileIdentifier => $file) {
61
- composerRequirea5d4a1562bec7851477ef68657e5f83c($fileIdentifier, $file);
62
  }
63
 
64
  return $loader;
65
  }
66
  }
67
 
68
- function composerRequirea5d4a1562bec7851477ef68657e5f83c($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 ComposerAutoloaderInit1eba1ddd47060c611330d99eb3e283d6
6
  {
7
  private static $loader;
8
 
24
 
25
  require __DIR__ . '/platform_check.php';
26
 
27
+ spl_autoload_register(array('ComposerAutoloaderInit1eba1ddd47060c611330d99eb3e283d6', 'loadClassLoader'), true, true);
28
  self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__)));
29
+ spl_autoload_unregister(array('ComposerAutoloaderInit1eba1ddd47060c611330d99eb3e283d6', '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\ComposerStaticInit1eba1ddd47060c611330d99eb3e283d6::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\ComposerStaticInit1eba1ddd47060c611330d99eb3e283d6::$files;
57
  } else {
58
  $includeFiles = require __DIR__ . '/autoload_files.php';
59
  }
60
  foreach ($includeFiles as $fileIdentifier => $file) {
61
+ composerRequire1eba1ddd47060c611330d99eb3e283d6($fileIdentifier, $file);
62
  }
63
 
64
  return $loader;
65
  }
66
  }
67
 
68
+ function composerRequire1eba1ddd47060c611330d99eb3e283d6($fileIdentifier, $file)
69
  {
70
  if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
71
  require $file;
vendor/composer/autoload_static.php CHANGED
@@ -4,7 +4,7 @@
4
 
5
  namespace Composer\Autoload;
6
 
7
- class ComposerStaticInita5d4a1562bec7851477ef68657e5f83c
8
  {
9
  public static $files = array (
10
  '3af723442581d6c310bf44543f9f5c60' => __DIR__ . '/..' . '/markbaker/matrix/classes/src/Functions/adjoint.php',
@@ -356,10 +356,10 @@ class ComposerStaticInita5d4a1562bec7851477ef68657e5f83c
356
  public static function getInitializer(ClassLoader $loader)
357
  {
358
  return \Closure::bind(function () use ($loader) {
359
- $loader->prefixLengthsPsr4 = ComposerStaticInita5d4a1562bec7851477ef68657e5f83c::$prefixLengthsPsr4;
360
- $loader->prefixDirsPsr4 = ComposerStaticInita5d4a1562bec7851477ef68657e5f83c::$prefixDirsPsr4;
361
- $loader->prefixesPsr0 = ComposerStaticInita5d4a1562bec7851477ef68657e5f83c::$prefixesPsr0;
362
- $loader->classMap = ComposerStaticInita5d4a1562bec7851477ef68657e5f83c::$classMap;
363
 
364
  }, null, ClassLoader::class);
365
  }
4
 
5
  namespace Composer\Autoload;
6
 
7
+ class ComposerStaticInit1eba1ddd47060c611330d99eb3e283d6
8
  {
9
  public static $files = array (
10
  '3af723442581d6c310bf44543f9f5c60' => __DIR__ . '/..' . '/markbaker/matrix/classes/src/Functions/adjoint.php',
356
  public static function getInitializer(ClassLoader $loader)
357
  {
358
  return \Closure::bind(function () use ($loader) {
359
+ $loader->prefixLengthsPsr4 = ComposerStaticInit1eba1ddd47060c611330d99eb3e283d6::$prefixLengthsPsr4;
360
+ $loader->prefixDirsPsr4 = ComposerStaticInit1eba1ddd47060c611330d99eb3e283d6::$prefixDirsPsr4;
361
+ $loader->prefixesPsr0 = ComposerStaticInit1eba1ddd47060c611330d99eb3e283d6::$prefixesPsr0;
362
+ $loader->classMap = ComposerStaticInit1eba1ddd47060c611330d99eb3e283d6::$classMap;
363
 
364
  }, null, ClassLoader::class);
365
  }
vendor/composer/installed.php CHANGED
@@ -1,12 +1,12 @@
1
  <?php return array (
2
  'root' =>
3
  array (
4
- 'pretty_version' => 'v3.5.0',
5
- 'version' => '3.5.0.0',
6
  'aliases' =>
7
  array (
8
  ),
9
- 'reference' => 'ee600874a63be6b0904df2b2d1ae67f8b03b7cf2',
10
  'name' => 'codeinwp/visualizer',
11
  ),
12
  'versions' =>
@@ -23,12 +23,12 @@
23
  ),
24
  'codeinwp/visualizer' =>
25
  array (
26
- 'pretty_version' => 'v3.5.0',
27
- 'version' => '3.5.0.0',
28
  'aliases' =>
29
  array (
30
  ),
31
- 'reference' => 'ee600874a63be6b0904df2b2d1ae67f8b03b7cf2',
32
  ),
33
  'markbaker/complex' =>
34
  array (
1
  <?php return array (
2
  'root' =>
3
  array (
4
+ 'pretty_version' => 'v3.5.1',
5
+ 'version' => '3.5.1.0',
6
  'aliases' =>
7
  array (
8
  ),
9
+ 'reference' => 'a944634a1c82d0cd30fc4a5651d4b5932d06e79f',
10
  'name' => 'codeinwp/visualizer',
11
  ),
12
  'versions' =>
23
  ),
24
  'codeinwp/visualizer' =>
25
  array (
26
+ 'pretty_version' => 'v3.5.1',
27
+ 'version' => '3.5.1.0',
28
  'aliases' =>
29
  array (
30
  ),
31
+ 'reference' => 'a944634a1c82d0cd30fc4a5651d4b5932d06e79f',
32
  ),
33
  'markbaker/complex' =>
34
  array (