PluginProbe
Visualizer – Tables & Charts Manager with Built-in AI Generator / 3.4.4
Visualizer – Tables & Charts Manager with Built-in AI Generator v3.4.4
4.0.8 4.0.7 4.0.6 4.0.5 4.0.4 4.0.3 3.0.5 3.0.6 3.0.7 3.0.8 3.0.9 3.1.0 3.1.1 3.1.2 3.1.3 3.10.0 3.10.1 3.10.10 3.10.11 3.10.12 3.10.13 3.10.14 3.10.15 3.10.2 3.10.3 All 149 releases
← All changes | js/library.js +13 -217 4.0.43.4.4 View file →
@@ -32,38 +32,18 @@
32 32 }
33 33 });
34 34 })(wp.media.view);
35 35
36 -function createPopupProBlocker( $ , e ) {
37 - if ( ! visualizer.is_pro_user && e.target.classList.contains('viz-is-pro-chart') ) {
38 - $("#overlay-visualizer").css("display", "block");
39 - $(".vizualizer-renew-notice-popup").css("display", "block");
40 - return true;
41 - }
42 - return false;
43 -}
44 -
45 36 (function ($, vmv, vu) {
46 37 var resizeTimeout;
47 38
48 39 $.fn.adjust = function () {
49 - if ( $( '#visualizer-library' ).hasClass( 'view-list' ) ) {
50 - return this;
51 - }
52 40 return $(this).each(function () {
53 41 var width = $('#visualizer-library').width(),
54 42 margin = width * 0.02;
55 43
56 44 width *= 0.305;
57 - $(this).prev( '.visualizer-chart-title' ).width(width - 14);
58 - var ChartHeight = width * 0.93;
59 - if ( $( '.visualizer-nochart-canvas' ).length === 0 ) {
60 - ChartHeight = width * 0.78;
61 - if ( $( '#visualizer-sidebar' ).hasClass('one-columns') ) {
62 - ChartHeight = width * 0.92;
63 - }
64 - }
65 - $(this).width(width).height( ChartHeight );
45 + $(this).width(width - 14).height(width * 0.75).parent().css('margin-right', margin + 'px').css('margin-bottom', margin + 'px');
66 46 });
67 47 };
68 48
69 49 $('.visualizer-chart-canvas').adjust();
@@ -68,8 +48,10 @@
68 48
69 49 $('.visualizer-chart-canvas').adjust();
70 50
71 51 $(document).ready(function () {
52 + $('.visualizer-chart, .visualizer-library-pagination').fadeIn(500);
53 +
72 54 // clears the filters in the library form and submits.
73 55 $('#viz-lib-reset').on('click', function(e){
74 56 e.preventDefault();
75 57 $(this).parent('form')[0].reset();
@@ -87,92 +69,27 @@
87 69 });
88 70 $(this).parent('form').submit();
89 71 });
90 72
91 - // Copy shortcode when clicking the code display in list view.
92 - $( document ).on( 'click', '.viz-shortcode-display', function () {
93 - var text = $( this ).text();
94 - var el = this;
95 -
96 - // Fallback copy method using a temporary textarea. Returns true on success.
97 - var fallbackCopy = function ( value ) {
98 - var ta = document.createElement( 'textarea' );
99 - ta.value = value;
100 - document.body.appendChild( ta );
101 - ta.select();
102 - var succeeded = false;
103 - try {
104 - succeeded = document.execCommand( 'copy' );
105 - } catch ( e ) {
106 - succeeded = false;
107 - }
108 - document.body.removeChild( ta );
109 - return succeeded;
110 - };
111 -
112 - // Apply temporary "copied" feedback.
113 - var showCopiedFeedback = function () {
114 - $( el ).addClass( 'viz-shortcode-copied' );
115 - setTimeout( function () {
116 - $( el ).removeClass( 'viz-shortcode-copied' );
117 - }, 1200 );
118 - };
119 -
120 - if ( navigator.clipboard && navigator.clipboard.writeText ) {
121 - navigator.clipboard.writeText( text ).then( function () {
122 - // Clipboard API succeeded.
123 - showCopiedFeedback();
124 - } ).catch( function () {
125 - // Clipboard API failed; fall back to textarea method.
126 - if ( fallbackCopy( text ) ) {
127 - showCopiedFeedback();
128 - }
129 - } );
130 - } else {
131 - // No Clipboard API; use fallback directly.
132 - if ( fallbackCopy( text ) ) {
133 - showCopiedFeedback();
134 - }
135 - }
136 - } );
137 -
138 - $('.visualizer-chart-shortcode').click(function (event) {
139 -
140 - if ( createPopupProBlocker( $, event ) ) {
141 - event.preventDefault();
142 - event.stopPropagation();
143 - return;
144 - }
145 -
73 + $('.visualizer-chart-shortcode').click(function (e) {
146 74 var range, selection;
147 75
148 76 if (window.getSelection && document.createRange) {
149 77 selection = window.getSelection();
150 78 range = document.createRange();
151 - range.selectNodeContents(event.target);
79 + range.selectNodeContents(e.target);
152 80 selection.removeAllRanges();
153 81 selection.addRange(range);
154 82 } else if (document.selection && document.body.createTextRange) {
155 83 range = document.body.createTextRange();
156 - range.moveToElementText(event.target);
84 + range.moveToElementText(e.target);
157 85 range.select();
158 86 }
159 87 });
160 88
161 - $( '.visualizer-languages-list' ).on( 'click', '[data-lang_code]', function() {
162 - if ( $(this).find( 'i' ).hasClass( 'otgs-ico-add' ) ) {
163 - vu.create = vu.create + '&lang=' + $(this).data('lang_code') + '&parent_chart_id=' + $(this).data('chart');
164 - $('.add-new-chart').click();
165 - } else {
166 - vu.edit = vu.edit + '&lang=' + $(this).data('lang_code') + '&chart=' + $(this).data('chart');
167 - $('.visualizer-chart-edit').click();
168 - }
169 - } );
170 -
171 - function openClassicBuilder() {
89 + $('.add-new-chart').click(function () {
172 90 var wnd = window,
173 91 view = new vmv.Chart({action: vu.create});
174 - vu.create = vu.create.replace(/[\?&]lang=[^&]+/, '').replace(/[\?&]parent_chart_id=[^&]+/, '');
175 92
176 93 window.parent.addEventListener('message', function(event){
177 94 switch(event.data) {
178 95 case 'visualizer:mediaframe:close':
@@ -187,92 +104,16 @@
187 104 wnd.send_to_editor = function () {
188 105 wnd.location.href = vu.base.replace(/type=[a-zA-Z]*/, '').replace(/vaction/, '');
189 106 };
190 107 view.open();
191 - }
192 108
193 - function closeAddNewMenus() {
194 - $('.viz-add-new-group').removeClass('is-open');
195 - $('.viz-add-new-toggle').attr('aria-expanded', 'false');
196 - $('.viz-add-new-menu').attr('aria-hidden', 'true');
197 - }
198 -
199 - $(document).on('click', function() {
200 - closeAddNewMenus();
201 - });
202 -
203 - $(document).on('click', '.viz-add-new-toggle', function(event) {
204 - event.preventDefault();
205 - event.stopPropagation();
206 - event.stopImmediatePropagation();
207 - var $group = $(this).closest('.viz-add-new-group');
208 - var isOpen = $group.hasClass('is-open');
209 - closeAddNewMenus();
210 - if ( ! isOpen ) {
211 - $group.addClass('is-open');
212 - $(this).attr('aria-expanded', 'true');
213 - $group.find('.viz-add-new-menu').attr('aria-hidden', 'false');
214 - }
215 109 return false;
216 110 });
217 111
218 - $(document).on('click', '.viz-add-new-item', function(event) {
219 - event.preventDefault();
220 - event.stopPropagation();
221 - event.stopImmediatePropagation();
222 - var builder = $(this).data('viz-builder');
223 - closeAddNewMenus();
112 + $('.visualizer-chart-edit').click(function () {
113 + var wnd = window,
114 + view = new vmv.Chart({action: vu.edit + '&chart=' + $(this).attr('data-chart')});
224 115
225 - if ( builder === 'ai' ) {
226 - if ( typeof window.vizOpenAIBuilderNew === 'function' ) {
227 - window.vizOpenAIBuilderNew();
228 - return;
229 - }
230 - if ( typeof window.vizOpenChartChooser === 'function' ) {
231 - var classicCallback = function() {
232 - openClassicBuilder();
233 - };
234 - window.vizOpenChartChooser( classicCallback );
235 - return;
236 - }
237 - }
238 -
239 - openClassicBuilder();
240 - });
241 -
242 - $('.add-new-chart').click(function () {
243 - // Hook for the React chart builder chooser modal.
244 - // If the React app is loaded it sets window.vizOpenChartChooser and handles routing.
245 - // It will call the classicCallback if the user picks the Classic Builder.
246 - if (typeof window.vizOpenChartChooser === 'function') {
247 - var classicCallback = function() {
248 - openClassicBuilder();
249 - };
250 - window.vizOpenChartChooser(classicCallback);
251 - return false;
252 - }
253 - openClassicBuilder();
254 - return false;
255 - });
256 -
257 - $('.visualizer-chart-edit').click(function (event) {
258 -
259 - if ( createPopupProBlocker( $, event ) ) {
260 - return;
261 - }
262 -
263 - // D3/AI charts open in the AI Builder instead of the classic modal.
264 - if ( $(this).data('library') === 'd3' && typeof window.vizOpenAIBuilderEdit === 'function' ) {
265 - window.vizOpenAIBuilderEdit( $(this).attr('data-chart') );
266 - return false;
267 - }
268 -
269 - var wnd = window;
270 - var view = new vmv.Chart( {
271 - action: vu.edit.indexOf('&chart') != -1 ? vu.edit : vu.edit + '&chart=' + $(this).attr('data-chart')
272 - } );
273 - vu.edit = vu.edit.replace(/[\?&]lang=[^&]+/, '');
274 -
275 116 wnd.send_to_editor = function () {
276 117 wnd.location.href = wnd.location.href.replace(/vaction/, '');
277 118 };
278 119
@@ -279,20 +120,10 @@
279 120 view.open();
280 121
281 122 return false;
282 123 });
283 - $(".visualizer-chart-clone").on("click", function ( event ) {
284 - if ( createPopupProBlocker( $, event ) ) {
285 - event.preventDefault();
286 - }
287 - });
288 124
289 - $(".visualizer-chart-export").on("click", function (event) {
290 -
291 - if ( createPopupProBlocker( $, event ) ) {
292 - return;
293 - }
294 -
125 + $(".visualizer-chart-export").on("click", function () {
295 126 $.ajax({
296 127 url: $(this).attr("data-chart"),
297 128 method: "get",
298 129 success: function (data, textStatus, jqXHR) {
@@ -311,12 +142,9 @@
311 142 });
312 143 return false;
313 144 });
314 145
315 - $(".visualizer-chart-image").on("click", function (event) {
316 - if ( createPopupProBlocker( $, event ) ) {
317 - return;
318 - }
146 + $(".visualizer-chart-image").on("click", function () {
319 147 $('body').trigger('visualizer:action:specificchart', {action: 'image', id: $(this).attr("data-chart"), data: null, dataObj: {name: $(this).attr("data-chart-title")}});
320 148 return false;
321 149 });
322 150
@@ -324,14 +152,8 @@
324 152 if(location.href.indexOf('vaction=addnew') !== -1){
325 153 $('.add-new-chart').first().trigger('click');
326 154 }
327 155
328 - //if vaction=edit is found as a GET request parameter, show the modal.
329 - if(location.href.indexOf('vaction=edit') !== -1 && location.href.indexOf('chart=') !== -1){
330 - const chartId = location.href.split('chart=')[1].split('&')[0];
331 - $('.visualizer-chart-edit').attr('data-chart', chartId).trigger('click');
332 - }
333 -
334 156 $(window).resize(function () {
335 157 clearTimeout(resizeTimeout);
336 158 resizeTimeout = setTimeout(function () {
337 159 $('.visualizer-chart-canvas').adjust();
@@ -340,32 +162,6 @@
340 162
341 163 $('.visualizer-error i.error').on('click', function(){
342 164 alert( $(this).attr('data-viz-error') );
343 165 });
344 - $('.visualizer-chart:not(.visualizer-chart-display), .visualizer-library-pagination').fadeIn(500);
345 166 });
346 -})(jQuery, visualizer.media.view, visualizer.urls);
347 -
348 -
349 -document.querySelectorAll('.visualizer-chart').forEach(function (chart) {
350 - const translatable = chart.querySelector('.visualizer-languages-list');
351 - if ( ! translatable ) {
352 - return;
353 - }
354 -
355 - const chartId = chart.querySelector('.visualizer-chart-canvas')?.id?.replace('visualizer-', '');
356 -
357 - if ( ! chartId ) {
358 - return;
359 - }
360 -
361 - const translatableActions = translatable.querySelectorAll('[data-lang_code]');
362 - translatableActions.forEach(function (action) {
363 - action.addEventListener('click', function () {
364 - window?.tiTrk?.with('visualizer')?.add({
365 - feature: 'chart-library',
366 - featureComponent: 'chart-language-translations-used',
367 - groupId: chartId,
368 - });
369 - });
370 - });
371 -});
167 +})(jQuery, visualizer.media.view, visualizer.urls);