PluginProbe
Visualizer – Tables & Charts Manager with Built-in AI Generator / 3.7.9
Visualizer – Tables & Charts Manager with Built-in AI Generator v3.7.9
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 3.10.4 All 148 releases
← All changes | classes/Visualizer/Render/Sidebar.php +35 -305 4.0.33.7.9 View file →
@@ -124,14 +124,9 @@
124 124 self::_renderTextAreaItem(
125 125 esc_html__( 'Chart Description', 'visualizer' ),
126 126 'description',
127 127 $this->description,
128 - sprintf(
129 - // translators: %1$s - HTML link tag, %2$s - HTML closing link tag.
130 - esc_html__( 'Description to display in the structured data schema as explained %1$shere%2$s', 'visualizer' ),
131 - '<a href="https://developers.google.com/search/docs/data-types/dataset#dataset" target="_blank">',
132 - '</a>'
133 - )
128 + 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>' )
134 129 );
135 130 }
136 131
137 132 /**
@@ -138,17 +133,9 @@
138 133 * Add the correct description for the manual configuration box.
139 134 */
140 135 protected function _renderManualConfigDescription() {
141 136 self::_renderSectionStart();
142 - self::_renderSectionDescription(
143 - '<span class="viz-gvlink">' . sprintf(
144 - // translators: %1$s - HTML link tag, %2$s - HTML closing link tag, %3$s - HTML link tag, %4$s - HTML closing link tag.
145 - __( 'Configure the graph by providing configuration variables right from the %1$sGoogle Visualization API%2$s. You can refer to %3$sCommon Snippets%4$s for examples.', 'visualizer' ), '<a href="https://developers.google.com/chart/interactive/docs/gallery/?#configuration-options" target="_blank">',
146 - '</a>',
147 - '<a href="https://docs.themeisle.com/article/728-manual-configuration" target="_blank">',
148 - '</a>'
149 - ) . '</span>'
150 - );
137 + self::_renderSectionDescription( '<span class="viz-gvlink">' . sprintf( __( 'Configure the graph by providing configuration variables right from the %1$sGoogle Visualization API%2$s. You can refer to to some examples %3$shere%4$s.', 'visualizer' ), '<a href="https://developers.google.com/chart/interactive/docs/gallery/?#configuration-options" target="_blank">', '</a>', '<a href="https://docs.themeisle.com/article/728-manual-configuration" target="_blank">', '</a>' ) . '</span>' );
151 138 }
152 139
153 140 /**
154 141 * Add the correct example for the manual configuration box.
@@ -153,18 +140,17 @@
153 140 /**
154 141 * Add the correct example for the manual configuration box.
155 142 */
156 143 protected function _renderManualConfigExample() {
157 - return json_encode(
158 - array(
159 - 'vAxis' => array(
160 - 'ticks' => array( 5, 10, 15, 20 ),
161 - 'titleTextStyle' => array( 'color' => 'red' ),
162 - 'textPosition' => 'in',
163 - ),
164 - ),
165 - JSON_PRETTY_PRINT
166 - );
144 + return '{
145 + "vAxis": {
146 + "ticks": [5, 10, 15, 20],
147 + "titleTextStyle": {
148 + "color": "red"
149 + },
150 + "textPosition": "in"
151 + }
152 + }';
167 153 }
168 154
169 155 /**
170 156 * Renders chart advanced settings group.
@@ -171,12 +157,9 @@
171 157 *
172 158 * @access protected
173 159 */
174 160 protected function _renderAdvancedSettings() {
175 - // Chart control settings.
176 - $this->_renderChartControlsGroup();
177 -
178 - if ( Visualizer_Module_Admin::proFeaturesEnabled() ) {
161 + if ( Visualizer_Module_Admin::proFeaturesLocked() ) {
179 162 self::_renderGroupStart( esc_html__( 'Frontend Actions', 'visualizer' ) );
180 163 } else {
181 164 self::_renderGroupStart( esc_html__( 'Frontend Actions', 'visualizer' ) . '<span class="dashicons dashicons-lock"></span>', '', apply_filters( 'visualizer_pro_upsell_class', 'only-pro-feature', 'chart-frontend-actions' ), 'vz-frontend-actions' );
182 165 echo '<div style="position: relative">';
@@ -185,10 +168,10 @@
185 168 self::_renderSectionDescription( esc_html__( 'Configure frontend actions that need to be shown.', 'visualizer' ) );
186 169 self::_renderSectionEnd();
187 170
188 171 $this->_renderActionSettings();
189 - if ( ! Visualizer_Module_Admin::proFeaturesEnabled() ) {
190 - echo apply_filters( 'visualizer_pro_upsell', '', 'frontend-actions' );
172 + if ( ! Visualizer_Module_Admin::proFeaturesLocked() ) {
173 + echo apply_filters( 'visualizer_pro_upsell', '', 'chart-permissions' );
191 174 echo '</div>';
192 175 }
193 176 self::_renderGroupEnd();
194 177
@@ -198,11 +181,10 @@
198 181 esc_html__( 'Configuration', 'visualizer' ),
199 182 'manual',
200 183 $this->manual,
201 184 sprintf(
202 - // translators: %s - JSON example.
203 - esc_html__( 'Provide a valid JSON configuration object. Example: %s', 'visualizer' ),
204 - '<code class="viz-manual-config-example">' . esc_html( $this->_renderManualConfigExample() ) . '</code>'
185 + esc_html__( 'One per line in valid JSON (key:value) format e.g. %s', 'visualizer' ),
186 + '<br><code>' . $this->_renderManualConfigExample() . '</code>'
205 187 ),
206 188 '',
207 189 array( 'rows' => 5 )
208 190 );
@@ -208,8 +190,9 @@
208 190 );
209 191
210 192 self::_renderSectionEnd();
211 193 self::_renderGroupEnd();
194 +
212 195 }
213 196
214 197 /**
215 198 * Renders chart action buttons group.
@@ -220,9 +203,9 @@
220 203 global $wp_version;
221 204 $disable_actions = version_compare( $wp_version, '4.7.0', '<' );
222 205 // default open this section when not testing through cypress because cypress expects to click and open each section
223 206 // and may not like finding a section is already open.
224 - self::_renderSectionStart( esc_html__( 'Actions', 'visualizer' ), ! defined( 'TI_E2E_TESTING' ) );
207 + self::_renderSectionStart( esc_html__( 'Actions', 'visualizer' ), ! defined( 'TI_CYPRESS_TESTING' ) );
225 208 self::_renderCheckboxItem(
226 209 esc_html__( 'Print', 'visualizer' ),
227 210 'actions[]',
228 211 isset( $this->actions ) && in_array( 'print', $this->actions, true ) ? true : false,
@@ -275,9 +258,9 @@
275 258 */
276 259 private static function is_excel_enabled() {
277 260 $vendor_file = VISUALIZER_ABSPATH . '/vendor/autoload.php';
278 261 if ( is_readable( $vendor_file ) ) {
279 - include_once $vendor_file;
262 + include_once( $vendor_file );
280 263 }
281 264
282 265 if ( version_compare( phpversion(), '5.6.0', '<' ) ) {
283 266 do_action( 'themeisle_log_event', Visualizer_Plugin::NAME, sprintf( 'PHP version %s not supported', phpversion() ), 'error', __FILE__, __LINE__ );
@@ -283,9 +266,9 @@
283 266 do_action( 'themeisle_log_event', Visualizer_Plugin::NAME, sprintf( 'PHP version %s not supported', phpversion() ), 'error', __FILE__, __LINE__ );
284 267 return false;
285 268 }
286 269
287 - return class_exists( 'OpenSpout\Writer\Common\Creator\WriterEntityFactory' ) && extension_loaded( 'zip' ) && extension_loaded( 'xml' ) && extension_loaded( 'fileinfo' );
270 + return class_exists( 'PhpOffice\PhpSpreadsheet\Spreadsheet' ) && extension_loaded( 'zip' ) && extension_loaded( 'xml' ) && extension_loaded( 'fileinfo' );
288 271 }
289 272
290 273 /**
291 274 * Renders select item.
@@ -312,9 +295,9 @@
312 295 }
313 296 echo '<div class="viz-section-item">';
314 297 echo '<a class="more-info" href="javascript:;">[?]</a>';
315 298 echo '<b>', $title, '</b>';
316 - echo '<select class="control-select ', implode( ' ', $classes ), '" name="', $name, '" ', ( $multiple ? 'multiple' : '' ), ' ', $atts, '>';
299 + echo '<select class="control-select ', implode( ' ', $classes ) , '" name="', $name, '" ', ( $multiple ? 'multiple' : '' ), ' ' , $atts, '>';
317 300 foreach ( $options as $key => $label ) {
318 301 // phpcs:ignore WordPress.PHP.StrictInArray.MissingTrueStrict
319 302 $extra = $multiple && is_array( $value ) ? ( in_array( $key, $value ) ? 'selected' : '' ) : selected( $key, $value, false );
320 303 echo '<option value="', $key, '"', $extra, '>';
@@ -335,15 +318,15 @@
335 318 * @access protected
336 319 * @param string $title The title of the select item.
337 320 * @param string $name The name of the select item.
338 321 * @param string $value The actual value of the select item.
339 - * @param string $default_color The default value of the color picker.
322 + * @param string $default The default value of the color picker.
340 323 */
341 - protected static function _renderColorPickerItem( $title, $name, $value, $default_color ) {
324 + protected static function _renderColorPickerItem( $title, $name, $value, $default ) {
342 325 echo '<div class="viz-section-item">';
343 326 echo '<b>', $title, '</b>';
344 327 echo '<div>';
345 - echo '<input type="text" class="color-picker-hex color-picker" data-alpha-enabled="true" name="', $name, '" maxlength="7" placeholder="', esc_attr__( 'Hex Color Code', 'visualizer' ), '" value="', is_null( $value ) ? $default_color : esc_attr( $value ), '" data-default-color="', $default_color, '">';
328 + echo '<input type="text" class="color-picker-hex color-picker" data-alpha-enabled="true" name="', $name, '" maxlength="7" placeholder="', esc_attr__( 'Hex Value', 'visualizer' ), '" value="', is_null( $value ) ? $default : esc_attr( $value ), '" data-default-color="', $default, '">';
346 329 echo '</div>';
347 330 echo '</div>';
348 331 }
349 332
@@ -361,9 +344,9 @@
361 344 * @param string $placeholder The placeholder for the input.
362 345 * @param string $type The type for the input (out of number, email, tel etc., default is text).
363 346 * @param array $custom_attributes The custom attributes.
364 347 */
365 - protected static function _renderTextItem( $title, $name, $value, $desc, $placeholder = '', $type = 'text', $custom_attributes = array(), $extra_class = array() ) {
348 + protected static function _renderTextItem( $title, $name, $value, $desc, $placeholder = '', $type = 'text', $custom_attributes = array() ) {
366 349 $attributes = '';
367 350 if ( $custom_attributes ) {
368 351 foreach ( $custom_attributes as $k => $v ) {
369 352 $attributes .= ' ' . $k . '="' . esc_attr( $v ) . '"';
@@ -368,10 +351,9 @@
368 351 foreach ( $custom_attributes as $k => $v ) {
369 352 $attributes .= ' ' . $k . '="' . esc_attr( $v ) . '"';
370 353 }
371 354 }
372 - $extra_class[] = 'viz-section-item';
373 - echo '<div class="' . esc_attr( implode( ' ', $extra_class ) ) . '">';
355 + echo '<div class="viz-section-item">';
374 356 echo '<a class="more-info" href="javascript:;">[?]</a>';
375 357 echo '<b>', $title, '</b>';
376 358 echo '<input type="', $type, '" class="control-text" ', $attributes, ' name="', $name, '" value="', esc_attr( $value ), '" placeholder="', $placeholder, '">';
377 359 echo '<p class="viz-section-description">', $desc, '</p>';
@@ -386,12 +368,12 @@
386 368 * @static
387 369 * @access public
388 370 * @param string $title The title of this group.
389 371 * @param string $html Any additional HTML.
390 - * @param string $extra_class Any additional classes.
372 + * @param string $class Any additional classes.
391 373 */
392 - public static function _renderGroupStart( $title, $html = '', $extra_class = '', $id = '' ) {
393 - echo '<li id="' . $id . '" class="viz-group ' . $extra_class . '">';
374 + public static function _renderGroupStart( $title, $html = '', $class = '', $id = '' ) {
375 + echo '<li id="' . $id . '" class="viz-group ' . $class . '">';
394 376 echo '<h3 class="viz-group-title">', $title, '</h3>';
395 377 echo $html;
396 378 echo '<ul class="viz-group-content">';
397 379 }
@@ -474,14 +456,9 @@
474 456 self::_renderTextItem(
475 457 esc_html__( 'Number Format', 'visualizer' ),
476 458 'series[' . $index . '][format]',
477 459 isset( $this->series[ $index ]['format'] ) ? $this->series[ $index ]['format'] : '',
478 - sprintf(
479 - // translators: %1$s - HTML link tag, %2$s - HTML closing link tag.
480 - esc_html__( 'Enter custom format pattern to apply to this series value, similar to the %1$sICU pattern set%2$s. Use something like #,### to get 1,234 as output, or $# to add dollar sign before digits. Note: Using the &#37; percentage format will multiply your values by 100.', 'visualizer' ),
481 - '<a href="http://icu-project.org/apiref/icu4c/classDecimalFormat.html#_details" target="_blank">',
482 - '</a>'
483 - ),
460 + sprintf( esc_html__( 'Enter custom format pattern to apply to this series value, similar to the %1$sICU pattern set%2$s. Use something like #,### to get 1,234 as output, or $# to add dollar sign before digits. Pay attention that if you use &#37; percentage format then your values will be multiplied by 100.', 'visualizer' ), '<a href="http://icu-project.org/apiref/icu4c/classDecimalFormat.html#_details" target="_blank">', '</a>' ),
484 461 '#,###.##'
485 462 );
486 463 break;
487 464 case 'date':
@@ -490,14 +467,9 @@
490 467 self::_renderTextItem(
491 468 esc_html__( 'Date Format', 'visualizer' ),
492 469 'series[' . $index . '][format]',
493 470 isset( $this->series[ $index ]['format'] ) ? $this->series[ $index ]['format'] : '',
494 - sprintf(
495 - // translators: %1$s - HTML link tag, %2$s - HTML closing link tag.
496 - esc_html__( 'Enter custom format pattern to apply to this series value, similar to the %1$sICU date and time format%2$s.', 'visualizer' ),
497 - '<a href="https://unicode-org.github.io/icu/userguide/format_parse/datetime/#datetime-format-syntax" target="_blank">',
498 - '</a>'
499 - ),
471 + sprintf( esc_html__( 'Enter custom format pattern to apply to this series value, similar to the %1$sICU date and time format%2$s.', 'visualizer' ), '<a href="http://userguide.icu-project.org/formatparse/datetime#TOC-Date-Time-Format-Syntax" target="_blank">', '</a>' ),
500 472 'eeee, dd LLLL yyyy'
501 473 );
502 474 break;
503 475 }
@@ -505,13 +477,14 @@
505 477
506 478 /**
507 479 * Render a checkbox item
508 480 */
509 - protected static function _renderCheckboxItem( $title, $name, $value, $default_value, $desc, $disabled = false ) {
481 + protected static function _renderCheckboxItem( $title, $name, $value, $default, $desc, $disabled = false ) {
510 482 echo '<div class="viz-section-item">';
511 483 echo '<a class="more-info" href="javascript:;">[?]</a>';
512 484 echo '<b>', $title, '</b>';
513 - echo '<input type="checkbox" class="control-check" value="', $default_value, '" name="', $name, '" ', ( $value ? 'checked' : '' ), ' ', ( $disabled ? 'disabled=disabled' : '' ), '>';
485 + // phpcs:ignore WordPress.PHP.StrictComparisons.LooseComparison
486 + echo '<input type="checkbox" class="control-check" value="', $default, '" name="', $name, '" ', ( $value == $default ? 'checked' : '' ), ' ', ( $disabled ? 'disabled=disabled' : '' ), '>';
514 487 echo '<p class="viz-section-description">', $desc, '</p>';
515 488 echo '</div>';
516 489 }
517 490
@@ -550,8 +523,9 @@
550 523
551 524 if ( in_array( 'numeral', $libs, true ) && ! wp_script_is( 'numeral', 'registered' ) ) {
552 525 wp_register_script( 'numeral', VISUALIZER_ABSURL . 'js/lib/numeral.min.js', array(), Visualizer_Plugin::VERSION );
553 526 }
527 +
554 528 }
555 529
556 530 /**
557 531 * Renders save chart as image setting group.
@@ -590,251 +564,7 @@
590 564 'yes',
591 565 esc_html__( 'To enable lazy chart rendering.', 'visualizer' ),
592 566 false
593 567 );
594 - self::_renderSectionEnd();
595 - }
596 -
597 - /**
598 - * Renders chart controls group.
599 - *
600 - * @access protected
601 - */
602 - protected function _renderChartControlsGroup() {
603 - if ( 'google' !== $this->getLibrary() ) {
604 - return;
605 - }
606 - if ( Visualizer_Module_Admin::proFeaturesEnabled() ) {
607 - self::_renderGroupStart( esc_html__( 'Chart Data Filter Configuration', 'visualizer' ) );
608 - } else {
609 - 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' );
610 - echo '<div style="position: relative">';
611 - }
612 - self::_renderSectionStart();
613 - self::_renderSectionDescription(
614 - '<span class="viz-gvlink">' . sprintf(
615 - // translators: %1$s - HTML link tag, %2$s - HTML closing link tag.
616 - __( 'Configure the data filter controls by providing configuration variables right from the %1$sChart Controls API%2$s. ', 'visualizer' ),
617 - '<a href="https://developers.google.com/chart/interactive/docs/gallery/controls#controls-gallery" target="_blank">',
618 - '</a>'
619 - ) . '</span>'
620 - );
621 - self::_renderSectionEnd();
622 - $this->_renderChartControlsSettings();
623 - if ( ! Visualizer_Module_Admin::proFeaturesEnabled() ) {
624 - echo apply_filters( 'visualizer_pro_upsell', '', 'data-filter-configuration' );
625 - echo '</div>';
626 - }
627 - self::_renderGroupEnd();
628 - }
629 -
630 - /**
631 - * Renders chart controls setting.
632 - *
633 - * @access protected
634 - */
635 - protected function _renderChartControlsSettings() {
636 -
637 - self::_renderSectionStart( esc_html__( 'Options', 'visualizer' ), false );
638 - $control_type = ! empty( $this->controls['controlType'] ) ? $this->controls['controlType'] : '';
639 -
640 - self::_renderSelectItem(
641 - esc_html__( 'Filter Type', 'visualizer' ),
642 - 'controls[controlType]',
643 - $control_type,
644 - array(
645 - '' => '',
646 - 'StringFilter' => esc_html__( 'String Filter', 'visualizer' ),
647 - 'NumberRangeFilter' => esc_html__( 'Number Range Filter', 'visualizer' ),
648 - 'CategoryFilter' => esc_html__( 'Category Filter', 'visualizer' ),
649 - 'ChartRangeFilter' => esc_html__( 'Chart Range Filter', 'visualizer' ),
650 - 'DateRangeFilter' => esc_html__( 'Date Range Filter', 'visualizer' ),
651 - ),
652 - '',
653 - false,
654 - array( 'vz-controls-opt' )
655 - );
656 -
657 - $column_index = array( 'false' => '' );
658 - $column_label = array( 'false' => '' );
659 - if ( ! empty( $this->__series ) ) {
660 - foreach ( $this->__series as $key => $column ) {
661 - $column_type = isset( $column['type'] ) ? $column['type'] : '';
662 - $label = isset( $column['label'] ) ? $column['label'] : '';
663 - $column_label[ $label ] = $label;
664 - $column_index[ $key ] = sprintf(
665 - // translators: %1$d - the column key, %2$s - the column type.
666 - __( '%1$d — Column Type: %2$s ', 'visualizer' ),
667 - $key,
668 - ucfirst( $column_type )
669 - );
670 - }
671 - }
672 -
673 - self::_renderSelectItem(
674 - esc_html__( 'Filter By Column Index', 'visualizer' ),
675 - 'controls[filterColumnIndex]',
676 - isset( $this->controls['filterColumnIndex'] ) ? $this->controls['filterColumnIndex'] : '',
677 - $column_index,
678 - '',
679 - false,
680 - array( 'vz-controls-opt' )
681 - );
682 -
683 - self::_renderSelectItem(
684 - esc_html__( 'Filter By Column Label', 'visualizer' ),
685 - 'controls[filterColumnLabel]',
686 - ! empty( $this->controls['filterColumnLabel'] ) ? $this->controls['filterColumnLabel'] : '',
687 - $column_label,
688 - '',
689 - false,
690 - array( 'vz-controls-opt' )
691 - );
692 -
693 - self::_renderSelectItem(
694 - esc_html__( 'Use Formatted Value', 'visualizer' ),
695 - 'controls[useFormattedValue]',
696 - ! empty( $this->controls['useFormattedValue'] ) ? $this->controls['useFormattedValue'] : '',
697 - array(
698 - 'false' => esc_html__( 'False', 'visualizer' ),
699 - 'true' => esc_html__( 'True', 'visualizer' ),
700 - ),
701 - '',
702 - false
703 - );
704 -
705 - self::_renderTextItem(
706 - esc_html__( 'Min Value', 'visualizer' ),
707 - 'controls[minValue]',
708 - ! empty( $this->controls['minValue'] ) ? $this->controls['minValue'] : '',
709 - esc_html__( 'Minimum allowed value for the range lower extent.', 'visualizer' ),
710 - '',
711 - 'text'
712 - );
713 -
714 - self::_renderTextItem(
715 - esc_html__( 'Max Value', 'visualizer' ),
716 - 'controls[maxValue]',
717 - ! empty( $this->controls['maxValue'] ) ? $this->controls['maxValue'] : '',
718 - esc_html__( 'Maximum allowed value for the range higher extent.', 'visualizer' ),
719 - '',
720 - 'text'
721 - );
722 -
723 - self::_renderSelectItem(
724 - esc_html__( 'Match Type', 'visualizer' ),
725 - 'controls[matchType]',
726 - ! empty( $this->controls['matchType'] ) ? $this->controls['matchType'] : '',
727 - array(
728 - 'prefix' => esc_html__( 'Prefix', 'visualizer' ),
729 - 'exact' => esc_html__( 'Exact', 'visualizer' ),
730 - 'any' => esc_html__( 'Any', 'visualizer' ),
731 - ),
732 - '',
733 - false
734 - );
735 -
736 - self::_renderSelectItem(
737 - esc_html__( 'Case Sensitive', 'visualizer' ),
738 - 'controls[caseSensitive]',
739 - ! empty( $this->controls['caseSensitive'] ) ? $this->controls['caseSensitive'] : '',
740 - array(
741 - 'false' => esc_html__( 'False', 'visualizer' ),
742 - 'true' => esc_html__( 'True', 'visualizer' ),
743 - ),
744 - '',
745 - false
746 - );
747 -
748 - self::_renderSectionEnd();
749 -
750 - self::_renderSectionStart( esc_html__( 'UI Options', 'visualizer' ), false );
751 -
752 - self::_renderTextItem(
753 - esc_html__( 'Label', 'visualizer' ),
754 - 'controls[ui][label]',
755 - ! empty( $this->controls['ui']['label'] ) ? $this->controls['ui']['label'] : '',
756 - '',
757 - '',
758 - 'text'
759 - );
760 -
761 - self::_renderTextItem(
762 - esc_html__( 'Label Separator', 'visualizer' ),
763 - 'controls[ui][labelSeparator]',
764 - ! empty( $this->controls['ui']['labelSeparator'] ) ? $this->controls['ui']['labelSeparator'] : '',
765 - '',
766 - '',
767 - 'text'
768 - );
769 -
770 - self::_renderTextItem(
771 - esc_html__( 'Caption', 'visualizer' ),
772 - 'controls[ui][caption]',
773 - ! empty( $this->controls['ui']['caption'] ) ? $this->controls['ui']['caption'] : '',
774 - '',
775 - '',
776 - 'text'
777 - );
778 -
779 - self::_renderSelectItem(
780 - esc_html__( 'Label Stacking', 'visualizer' ),
781 - 'controls[ui][labelStacking]',
782 - ! empty( $this->controls['ui']['labelStacking'] ) ? $this->controls['ui']['labelStacking'] : '',
783 - array(
784 - 'horizontal' => esc_html__( 'Horizontal', 'visualizer' ),
785 - 'vertical' => esc_html__( 'Vertical', 'visualizer' ),
786 - ),
787 - '',
788 - false
789 - );
790 -
791 - self::_renderSelectItem(
792 - esc_html__( 'Orientation', 'visualizer' ),
793 - 'controls[ui][orientation]',
794 - ! empty( $this->controls['ui']['orientation'] ) ? $this->controls['ui']['orientation'] : '',
795 - array(
796 - 'horizontal' => esc_html__( 'Horizontal', 'visualizer' ),
797 - 'vertical' => esc_html__( 'Vertical', 'visualizer' ),
798 - ),
799 - '',
800 - false
801 - );
802 -
803 - self::_renderSelectItem(
804 - esc_html__( 'Show Range Values', 'visualizer' ),
805 - 'controls[showRangeValues]',
806 - ! empty( $this->controls['showRangeValues'] ) ? $this->controls['showRangeValues'] : '',
807 - array(
808 - 'true' => esc_html__( 'True', 'visualizer' ),
809 - 'false' => esc_html__( 'False', 'visualizer' ),
810 - ),
811 - '',
812 - false
813 - );
814 -
815 - self::_renderSelectItem(
816 - esc_html__( 'Allow Multiple', 'visualizer' ),
817 - 'controls[allowMultiple]',
818 - ! empty( $this->controls['allowMultiple'] ) ? $this->controls['allowMultiple'] : '',
819 - array(
820 - 'true' => esc_html__( 'True', 'visualizer' ),
821 - 'false' => esc_html__( 'False', 'visualizer' ),
822 - ),
823 - '',
824 - false
825 - );
826 -
827 - self::_renderSelectItem(
828 - esc_html__( 'Allow Typing', 'visualizer' ),
829 - 'controls[allowTyping]',
830 - ! empty( $this->controls['allowTyping'] ) ? $this->controls['allowTyping'] : '',
831 - array(
832 - 'true' => esc_html__( 'True', 'visualizer' ),
833 - 'false' => esc_html__( 'False', 'visualizer' ),
834 - ),
835 - '',
836 - false
837 - );
838 568 self::_renderSectionEnd();
839 569 }
840 570 }