| Server IP : 65.108.144.40 / Your IP : 216.73.217.165 Web Server : Apache/2.4.52 (Ubuntu) System : Linux ubuntu-8gb-hel1-1 5.15.0-173-generic #183-Ubuntu SMP Fri Mar 6 13:29:34 UTC 2026 x86_64 User : dev ( 1000) PHP Version : 8.2.30 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /var/www/html/pia/wp-content/plugins/premium-addons-pro/widgets/ |
Upload File : |
<?php
/**
* Class: Premium_Tables
* Name: Table
* Slug: premium-tables-addon
*/
namespace PremiumAddonsPro\Widgets;
// Elementor Classes.
use Elementor\Widget_Base;
use Elementor\Repeater;
use Elementor\Controls_Manager;
use Elementor\Core\Kits\Documents\Tabs\Global_Colors;
use Elementor\Core\Kits\Documents\Tabs\Global_Typography;
use Elementor\Group_Control_Border;
use Elementor\Group_Control_Typography;
use Elementor\Group_Control_Box_Shadow;
use Elementor\Group_Control_Text_Shadow;
use Elementor\Group_Control_Background;
// PremiumAddons Classes.
use PremiumAddons\Includes\Helper_Functions;
use PremiumAddons\Includes\Controls\Premium_Post_Filter;
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
/**
* Class Premium_Tables
*/
class Premium_Tables extends Widget_Base {
/**
* Retrieve Widget Name.
*
* @since 1.0.0
* @access public
*/
public function get_name() {
return 'premium-tables-addon';
}
/**
* Retrieve Widget Title.
*
* @since 1.0.0
* @access public
*/
public function get_title() {
return __( 'Table', 'premium-addons-pro' );
}
/**
* Retrieve Widget Icon.
*
* @since 1.0.0
* @access public
*
* @return string widget icon.
*/
public function get_icon() {
return 'pa-pro-table';
}
/**
* Retrieve Widget Categories.
*
* @since 1.5.1
* @access public
*
* @return array Widget categories.
*/
public function get_categories() {
return array( 'premium-elements' );
}
/**
* Retrieve Widget Keywords.
*
* @since 1.0.0
* @access public
*
* @return string Widget keywords.
*/
public function get_keywords() {
return array( 'pa', 'premium', 'premium table', 'sheet', 'data', 'advanced', 'dynamic', 'comparison', 'csv', 'google' );
}
protected function is_dynamic_content():bool {
return false;
}
/**
* Widget preview refresh button.
*
* @since 1.0.0
* @access public
*/
public function is_reload_preview_required() {
return true;
}
/**
* Retrieve Widget Dependent CSS.
*
* @since 1.0.0
* @access public
*
* @return array CSS script handles.
*/
public function get_style_depends() {
return array(
'premium-addons',
'premium-pro',
);
}
/**
* Retrieve Widget Dependent JS.
*
* @since 1.0.0
* @access public
*
* @return array JS script handles.
*/
public function get_script_depends() {
return array(
'table-sorter',
'lottie-js',
'premium-pro',
);
}
/**
* Retrieve Widget Support URL.
*
* @access public
*
* @return string support URL.
*/
public function get_custom_help_url() {
return 'https://premiumaddons.com/support/';
}
public function has_widget_inner_wrapper(): bool {
return true;
}
/**
* Get Repeater Controls
*
* @since 0.0.1
* @access protected
*
* @param object $repeater repeater object.
* @param array $condition controls condition.
*/
protected function get_repeater_controls( $repeater, $condition = array() ) {
$repeater->add_control(
'premium_table_text',
array(
'label' => __( 'Text', 'premium-addons-pro' ),
'type' => Controls_Manager::TEXT,
'dynamic' => array( 'active' => true ),
'placeholder' => 'Text',
'condition' => array_merge( $condition, array() ),
)
);
$repeater->add_control(
'text_color',
array(
'label' => __( 'Text Color', 'premium-addons-pro' ),
'type' => Controls_Manager::COLOR,
'global' => false,
'selectors' => array(
'{{WRAPPER}} {{CURRENT_ITEM}} .premium-table-text' => 'color: {{VALUE}} !important;',
),
'condition' => array_merge( $condition, array() ),
)
);
$repeater->add_group_control(
Group_Control_Typography::get_type(),
array(
'name' => 'cell_typography',
'global' => array(
'default' => Global_Typography::TYPOGRAPHY_PRIMARY,
),
'selector' => '{{WRAPPER}} .premium-table .premium-table-row th{{CURRENT_ITEM}}.premium-table-cell .premium-table-text, {{WRAPPER}} .premium-table .premium-table-row td{{CURRENT_ITEM}}.premium-table-cell .premium-table-text',
)
);
$repeater->add_control(
'premium_table_icon_selector',
array(
'label' => __( 'Icon Type', 'premium-addons-pro' ),
'type' => Controls_Manager::SELECT,
'default' => 'font-awesome-icon',
'separator' => 'before',
'label_block' => true,
'options' => array(
'font-awesome-icon' => __( 'Font Awesome Icon', 'premium-addons-pro' ),
'custom-image' => __( 'Custom Image', 'premium-addons-pro' ),
'animation' => __( 'Lottie Animation', 'premium-addons-pro' ),
),
'condition' => array_merge( $condition, array() ),
)
);
$repeater->add_control(
'premium_table_cell_icon',
array(
'label' => __( 'Icon', 'premium-addons-pro' ),
'type' => Controls_Manager::ICON,
'label_block' => true,
'condition' => array_merge(
$condition,
array(
'premium_table_icon_selector' => 'font-awesome-icon',
)
),
)
);
$repeater->add_control(
'premium_table_cell_icon_img',
array(
'label' => __( 'Upload Image', 'premium-addons-pro' ),
'type' => Controls_Manager::MEDIA,
'dynamic' => array( 'active' => true ),
'condition' => array_merge(
$condition,
array(
'premium_table_icon_selector' => 'custom-image',
)
),
)
);
$repeater->add_control(
'lottie_url',
array(
'label' => __( 'Animation JSON URL', 'premium-addons-pro' ),
'type' => Controls_Manager::TEXT,
'dynamic' => array( 'active' => true ),
'description' => 'Get JSON code URL from <a href="https://lottiefiles.com/" target="_blank">here</a>',
'label_block' => true,
'condition' => array(
'premium_table_icon_selector' => 'animation',
),
)
);
$repeater->add_control(
'lottie_loop',
array(
'label' => __( 'Loop', 'premium-addons-pro' ),
'type' => Controls_Manager::SWITCHER,
'return_value' => 'true',
'default' => 'true',
'condition' => array(
'premium_table_icon_selector' => 'animation',
),
)
);
$repeater->add_control(
'lottie_reverse',
array(
'label' => __( 'Reverse', 'premium-addons-pro' ),
'type' => Controls_Manager::SWITCHER,
'return_value' => 'true',
'condition' => array(
'premium_table_icon_selector' => 'animation',
),
)
);
$repeater->add_control(
'premium_table_cell_icon_align',
array(
'label' => __( 'Icon Position', 'premium-addons-pro' ),
'type' => Controls_Manager::SELECT,
'default' => 'before',
'options' => array(
'top' => __( 'Top', 'premium-addons-pro' ),
'before' => __( 'Before', 'premium-addons-pro' ),
'after' => __( 'After', 'premium-addons-pro' ),
),
'condition' => array_merge( $condition, array() ),
'label_block' => true,
)
);
$repeater->add_control(
'icon_size',
array(
'label' => __( 'Icon Size', 'premium-addons-pro' ),
'type' => Controls_Manager::SLIDER,
'size_units' => array( 'px', 'em', '%' ),
'condition' => array_merge( $condition, array() ),
'range' => array(
'px' => array(
'min' => 1,
'max' => 150,
),
'em' => array(
'min' => 1,
'max' => 15,
),
),
'selectors' => array(
'{{WRAPPER}} {{CURRENT_ITEM}} .premium-table-text i' => 'font-size: {{SIZE}}{{UNIT}}',
'{{WRAPPER}} {{CURRENT_ITEM}} .premium-table-text img, {{WRAPPER}} {{CURRENT_ITEM}} .premium-table-text svg' => 'width: {{SIZE}}{{UNIT}} !important; height: {{SIZE}}{{UNIT}} !important',
),
)
);
$repeater->add_control(
'icon_color',
array(
'label' => __( 'Icon Color', 'premium-addons-pro' ),
'type' => Controls_Manager::COLOR,
'selectors' => array(
'{{WRAPPER}} {{CURRENT_ITEM}} .premium-table-text i' => 'color: {{VALUE}} !important',
),
'condition' => array_merge(
$condition,
array(
'premium_table_icon_selector' => 'font-awesome-icon',
)
),
)
);
$repeater->add_control(
'premium_table_cell_icon_spacing',
array(
'label' => __( 'Icon Spacing', 'premium-addons-pro' ),
'type' => Controls_Manager::SLIDER,
'condition' => array_merge( $condition, array() ),
'selectors' => array(
'{{WRAPPER}}.premium-table-dir-rtl {{CURRENT_ITEM}} .premium-table-text .premium-table-cell-icon-after, {{WRAPPER}}.premium-table-dir-ltr {{CURRENT_ITEM}} .premium-table-text .premium-table-cell-icon-before' => 'margin-right: {{SIZE}}px',
'{{WRAPPER}}.premium-table-dir-ltr {{CURRENT_ITEM}} .premium-table-text .premium-table-cell-icon-after, {{WRAPPER}}.premium-table-dir-rtl {{CURRENT_ITEM}} .premium-table-text .premium-table-cell-icon-before' => 'margin-left: {{SIZE}}px',
'{{WRAPPER}} {{CURRENT_ITEM}} .premium-table-text.premium-table-cell-top .premium-table-cell-icon-top' => 'margin-bottom: {{SIZE}}px',
),
'separator' => 'below',
)
);
$repeater->add_control(
'premium_table_cell_row_span',
array(
'label' => __( 'Row Span', 'premium-addons-pro' ),
'type' => Controls_Manager::NUMBER,
'title' => __( 'Enter the number of rows for the cell', 'premium-addons-pro' ),
'separator' => 'before',
'default' => 1,
'min' => 1,
'max' => 10,
'condition' => array_merge( $condition, array() ),
)
);
$repeater->add_control(
'premium_table_cell_span',
array(
'label' => __( 'Column Span', 'premium-addons-pro' ),
'type' => Controls_Manager::NUMBER,
'title' => __( 'Enter the number of columns for the cell', 'premium-addons-pro' ),
'default' => 1,
'min' => 1,
'max' => 10,
'condition' => array_merge( $condition, array() ),
)
);
$repeater->add_responsive_control(
'premium_table_cell_align',
array(
'label' => __( 'Alignment', 'premium-addons-pro' ),
'type' => Controls_Manager::CHOOSE,
'separator' => 'before',
'options' => array(
'left' => array(
'title' => __( 'Left', 'premium-addons-pro' ),
'icon' => 'eicon-text-align-left',
),
'center' => array(
'title' => __( 'Center', 'premium-addons-pro' ),
'icon' => 'eicon-text-align-center',
),
'right' => array(
'title' => __( 'Right', 'premium-addons-pro' ),
'icon' => 'eicon-text-align-right',
),
),
'selectors_dictionary' => array(
'left' => 'justify-content: flex-start; text-align: left',
'center' => 'justify-content: center; text-align: center',
'right' => 'justify-content: flex-end; text-align: right',
),
'default' => 'left',
'selectors' => array(
'{{WRAPPER}} {{CURRENT_ITEM}} .premium-table-text' => '{{VALUE}};',
),
'condition' => array_merge(
$condition,
array(
'premium_table_cell_icon_align!' => 'top',
)
),
)
);
$repeater->add_responsive_control(
'premium_table_cell_top_align',
array(
'label' => __( 'Alignment', 'premium-addons-pro' ),
'type' => Controls_Manager::CHOOSE,
'options' => array(
'flex-start' => array(
'title' => __( 'Left', 'premium-addons-pro' ),
'icon' => 'eicon-text-align-left',
),
'center' => array(
'title' => __( 'Center', 'premium-addons-pro' ),
'icon' => 'eicon-text-align-center',
),
'flex-end' => array(
'title' => __( 'Right', 'premium-addons-pro' ),
'icon' => 'eicon-text-align-right',
),
),
'default' => 'left',
'selectors' => array(
'{{WRAPPER}} {{CURRENT_ITEM}} .premium-table-cell-top' => 'align-items: {{VALUE}};',
),
'condition' => array_merge(
$condition,
array(
'premium_table_cell_icon_align' => 'top',
)
),
)
);
}
/**
* Register Table controls.
*
* @since 1.0.0
* @access protected
*/
protected function register_controls() { // phpcs:ignore PSR2.Methods.MethodDeclaration.Underscore
$this->start_controls_section(
'premium_table_data_section',
array(
'label' => __( 'Data', 'premium-addons-pro' ),
)
);
$this->add_control(
'premium_table_data_type',
array(
'label' => __( 'Data Type', 'premium-addons-pro' ),
'type' => Controls_Manager::SELECT,
'options' => array(
'custom' => __( 'Custom', 'premium-addons-pro' ),
'csv' => 'CSV' . __( ' File', 'premium-addons-pro' ),
),
'default' => 'custom',
)
);
$this->add_control(
'premium_table_csv_type',
array(
'label' => __( 'File Type', 'premium-addons-pro' ),
'type' => Controls_Manager::SELECT,
'options' => array(
'file' => __( 'Upload FIle', 'premium-addons-pro' ),
'url' => __( 'Remote File', 'premium-addons-pro' ),
),
'condition' => array(
'premium_table_data_type' => 'csv',
),
'default' => 'file',
)
);
$this->add_control(
'premium_table_separator',
array(
'label' => __( 'Data Separator', 'premium-addons-pro' ),
'type' => Controls_Manager::TEXT,
'description' => __( 'Separator between cells data', 'premium-addons-pro' ),
'label_block' => true,
'default' => ',',
'condition' => array(
'premium_table_data_type' => 'csv',
),
)
);
$this->add_control(
'premium_table_csv',
array(
'label' => __( 'Upload CSV File', 'premium-addons-pro' ),
'type' => Controls_Manager::MEDIA,
'dynamic' => array( 'active' => true ),
'media_type' => array(),
'condition' => array(
'premium_table_data_type' => 'csv',
'premium_table_csv_type' => 'file',
),
)
);
$this->add_control(
'premium_table_csv_url',
array(
'label' => __( 'File URL', 'premium-addons-pro' ),
'type' => Controls_Manager::TEXT,
'dynamic' => array( 'active' => true ),
'label_block' => true,
'condition' => array(
'premium_table_data_type' => 'csv',
'premium_table_csv_type' => 'url',
),
)
);
$this->add_control(
'premium_table_csv_first_row',
array(
'label' => __( 'Render First Row As', 'premium-addons-pro' ),
'description' => __( 'Choose whether to render the first row as table head or not', 'premium-addons-pro' ),
'type' => Controls_Manager::SELECT,
'options' => array(
'head' => __( 'Header', 'premium-addons-pro' ),
'body' => __( 'Body', 'premium-addons-pro' ),
),
'default' => 'head',
'condition' => array(
'premium_table_data_type' => 'csv',
),
)
);
$this->add_control(
'reload',
array(
'label' => __( 'Refresh Cached Data Once Every', 'premium-addons-pro' ),
'type' => Controls_Manager::SELECT,
'options' => array(
'nocache' => __( 'No Cache', 'premium-addons-pro' ),
'minutes' => __( 'Five Minutes', 'premium-addons-pro' ),
'hour' => __( 'Hour', 'premium-addons-pro' ),
'day' => __( 'Day', 'premium-addons-pro' ),
'week' => __( 'Week', 'premium-addons-pro' ),
'month' => __( 'Month', 'premium-addons-pro' ),
'year' => __( 'Year', 'premium-addons-pro' ),
),
'default' => 'hour',
'condition' => array(
'premium_table_data_type' => 'csv',
),
)
);
$this->end_controls_section();
$this->start_controls_section(
'premium_table_head_section',
array(
'label' => __( 'Header', 'premium-addons-pro' ),
'condition' => array(
'premium_table_data_type' => 'custom',
),
)
);
$head_repeater = new Repeater();
$this->get_repeater_controls( $head_repeater, array() );
$head_repeater->add_control(
'head_link_switcher',
array(
'label' => __( 'Link', 'premium-addons-pro' ),
'type' => Controls_Manager::SWITCHER,
)
);
$head_repeater->add_control(
'head_link_selection',
array(
'label' => __( 'Link Type', 'premium-addons-pro' ),
'type' => Controls_Manager::SELECT,
'options' => array(
'url' => __( 'URL', 'premium-addons-pro' ),
'link' => __( 'Existing Page', 'premium-addons-pro' ),
),
'default' => 'url',
'label_block' => true,
'condition' => array(
'head_link_switcher' => 'yes',
),
)
);
$head_repeater->add_control(
'head_link',
array(
'label' => __( 'Link', 'premium-addons-pro' ),
'type' => Controls_Manager::URL,
'dynamic' => array( 'active' => true ),
'default' => array(
'url' => '#',
),
'placeholder' => 'https://premiumaddons.com/',
'label_block' => true,
'separator' => 'after',
'condition' => array(
'head_link_switcher' => 'yes',
'head_link_selection' => 'url',
),
)
);
$head_repeater->add_control(
'head_existing_link',
array(
'label' => __( 'Existing Page', 'premium-addons-for-elementor' ),
'type' => Premium_Post_Filter::TYPE,
'label_block' => true,
'multiple' => false,
'source' => array( 'post', 'page' ),
'condition' => array(
'head_link_switcher' => 'yes',
'head_link_selection' => 'link',
),
)
);
$this->add_control(
'premium_table_head_repeater',
array(
'label' => __( 'Cell', 'premium-addons-pro' ),
'type' => Controls_Manager::REPEATER,
'fields' => $head_repeater->get_controls(),
'default' => array(
array(
'premium_table_text' => __( 'First Head', 'premium-addons-pro' ),
),
array(
'premium_table_text' => __( 'Second Head', 'premium-addons-pro' ),
),
array(
'premium_table_text' => __( 'Third Head', 'premium-addons-pro' ),
),
),
'title_field' => '{{{ premium_table_text }}}',
'prevent_empty' => false,
)
);
$this->end_controls_section();
$this->start_controls_section(
'premium_table_body_section',
array(
'label' => __( 'Body', 'premium-addons-pro' ),
'condition' => array(
'premium_table_data_type' => 'custom',
),
)
);
$body_repeater = new Repeater();
$body_repeater->add_control(
'premium_table_elem_type',
array(
'label' => __( 'Type', 'premium-addons-pro' ),
'type' => Controls_Manager::SELECT,
'options' => array(
'cell' => __( 'Cell', 'premium-addons-pro' ),
'row' => __( 'Row', 'premium-addons-pro' ),
),
'default' => 'cell',
)
);
$body_repeater->add_control(
'premium_table_cell_type',
array(
'label' => __( 'Cell Type', 'premium-addons-pro' ),
'type' => Controls_Manager::SELECT,
'options' => array(
'td' => __( 'Body', 'premium-addons-pro' ),
'th' => __( 'Head', 'premium-addons-pro' ),
),
'default' => 'td',
'condition' => array(
'premium_table_elem_type' => 'cell',
),
)
);
$this->get_repeater_controls( $body_repeater, array( 'premium_table_elem_type' => 'cell' ) );
$body_repeater->add_control(
'premium_table_link_switcher',
array(
'label' => __( 'Link', 'premium-addons-pro' ),
'type' => Controls_Manager::SWITCHER,
'condition' => array(
'premium_table_elem_type' => 'cell',
),
)
);
$body_repeater->add_control(
'premium_table_link_selection',
array(
'label' => __( 'Link Type', 'premium-addons-pro' ),
'type' => Controls_Manager::SELECT,
'options' => array(
'url' => __( 'URL', 'premium-addons-pro' ),
'link' => __( 'Existing Page', 'premium-addons-pro' ),
),
'default' => 'url',
'label_block' => true,
'condition' => array(
'premium_table_link_switcher' => 'yes',
'premium_table_elem_type' => 'cell',
),
)
);
$body_repeater->add_control(
'premium_table_link',
array(
'label' => __( 'Link', 'premium-addons-pro' ),
'type' => Controls_Manager::URL,
'dynamic' => array( 'active' => true ),
'default' => array(
'url' => '#',
),
'placeholder' => 'https://premiumaddons.com/',
'label_block' => true,
'separator' => 'after',
'condition' => array(
'premium_table_elem_type' => 'cell',
'premium_table_link_switcher' => 'yes',
'premium_table_link_selection' => 'url',
),
)
);
$body_repeater->add_control(
'premium_table_existing_link',
array(
'label' => __( 'Existing Page', 'premium-addons-for-elementor' ),
'type' => Premium_Post_Filter::TYPE,
'label_block' => true,
'multiple' => false,
'source' => array( 'post', 'page' ),
'condition' => array(
'premium_table_elem_type' => 'cell',
'premium_table_link_switcher' => 'yes',
'premium_table_link_selection' => 'link',
),
)
);
$this->add_control(
'premium_table_body_repeater',
array(
'label' => __( 'Rows', 'premium-addons-pro' ),
'type' => Controls_Manager::REPEATER,
'default' => array(
array(
'premium_table_elem_type' => 'row',
),
array(
'premium_table_elem_type' => 'cell',
'premium_table_text' => __( 'Column #1', 'premium-addons-pro' ),
),
array(
'premium_table_elem_type' => 'cell',
'premium_table_text' => __( 'Column #2', 'premium-addons-pro' ),
),
array(
'premium_table_elem_type' => 'cell',
'premium_table_text' => __( 'Column #3', 'premium-addons-pro' ),
),
array(
'premium_table_elem_type' => 'row',
),
array(
'premium_table_elem_type' => 'cell',
'premium_table_text' => __( 'Column #1', 'premium-addons-pro' ),
),
array(
'premium_table_elem_type' => 'cell',
'premium_table_text' => __( 'Column #2', 'premium-addons-pro' ),
),
array(
'premium_table_elem_type' => 'cell',
'premium_table_text' => __( 'Column #3', 'premium-addons-pro' ),
),
),
'fields' => $body_repeater->get_controls(),
'title_field' => '{{ premium_table_elem_type }}: {{{ premium_table_text }}}',
'prevent_empty' => false,
)
);
$this->end_controls_section();
$this->start_controls_section(
'premium_table_display',
array(
'label' => __( 'Display Options', 'premium-addons-pro' ),
)
);
$this->add_control(
'premium_table_layout',
array(
'label' => __( 'Table Layout', 'premium-addons-pro' ),
'type' => Controls_Manager::SELECT,
'options' => array(
'auto' => __( 'Auto', 'premium-addons-pro' ),
'fixed' => __( 'Fixed', 'premium-addons-pro' ),
),
'default' => 'auto',
'selectors' => array(
'{{WRAPPER}} .premium-table' => 'table-layout: {{VALUE}}',
),
)
);
$this->add_responsive_control(
'premium_table_width',
array(
'label' => __( 'Width', 'premium-addons-pro' ),
'type' => Controls_Manager::SLIDER,
'size_units' => array( 'px', '%', 'custom' ),
'range' => array(
'px' => array(
'min' => 1,
'max' => 700,
),
),
'selectors' => array(
'{{WRAPPER}} .elementor-widget-container' => 'width: {{SIZE}}{{UNIT}}',
),
)
);
$this->add_control(
'img_size',
array(
'label' => __( 'Icons Size', 'premium-addons-pro' ),
'type' => Controls_Manager::SLIDER,
'size_units' => array( 'px', 'em', '%' ),
'range' => array(
'px' => array(
'min' => 1,
'max' => 150,
),
'em' => array(
'min' => 1,
'max' => 15,
),
),
'condition' => array(
'premium_table_data_type' => 'csv'
),
'selectors' => array(
'{{WRAPPER}} .premium-table-text i' => 'font-size: {{SIZE}}{{UNIT}}',
'{{WRAPPER}} .premium-table-text img, {{WRAPPER}} .premium-table-text svg' => 'width: {{SIZE}}{{UNIT}} !important; height: {{SIZE}}{{UNIT}} !important',
),
)
);
$this->add_control(
'premium_table_blur',
array(
'label' => __( 'Blur On Hover', 'premium-addons-pro' ),
'type' => Controls_Manager::SWITCHER,
'description' => sprintf( '<span style="font-weight: bold">%s</span>', __( 'You will need to set rows text hover color from style tab', 'premium-addons-pro' ) ),
)
);
$this->add_control(
'premium_table_responsive',
array(
'label' => __( 'Responsive', 'premium-addons-pro' ),
'type' => Controls_Manager::SWITCHER,
'description' => __( 'Enables scroll on mobile.', 'premium-addons-pro' ),
'frontend_available' => true,
)
);
$this->add_responsive_control(
'premium_table_align',
array(
'label' => __( 'Table Alignment', 'premium-addons-pro' ),
'type' => Controls_Manager::CHOOSE,
'options' => array(
'flex-start' => array(
'title' => __( 'Left', 'premium-addons-pro' ),
'icon' => 'eicon-text-align-left',
),
'center' => array(
'title' => __( 'Center', 'premium-addons-pro' ),
'icon' => 'eicon-text-align-center',
),
'flex-end' => array(
'title' => __( 'Right', 'premium-addons-pro' ),
'icon' => 'eicon-text-align-right',
),
),
'default' => 'center',
'selectors' => array(
'{{WRAPPER}}' => 'justify-content: {{VALUE}};',
),
)
);
$this->end_controls_section();
$this->start_controls_section(
'premium_table_advanced',
array(
'label' => __( 'Advanced Settings', 'premium-addons-pro' ),
)
);
$this->add_control(
'premium_table_sort',
array(
'label' => __( 'Sortable', 'premium-addons-pro' ),
'type' => Controls_Manager::SWITCHER,
'description' => __( 'Enables sorting with respect to the table heads.', 'premium-addons-pro' ),
'frontend_available' => true,
'condition' => array(
'premium_table_data_type!' => 'csv',
),
)
);
$this->add_control(
'us_numbers',
array(
'label' => __( 'US Numbers Format', 'premium-addons-pro' ),
'type' => Controls_Manager::SWITCHER,
'description' => __( 'Enable this if you are using US formatted numbers. For instance, 1,234,567.89', 'premium-addons-pro' ),
'frontend_available' => true,
'condition' => array(
'premium_table_sort' => 'yes',
'premium_table_data_type!' => 'csv',
),
)
);
$this->add_control(
'premium_table_sort_mob',
array(
'label' => __( 'Sort on Mobile', 'premium-addons-pro' ),
'type' => Controls_Manager::SWITCHER,
'frontend_available' => true,
'condition' => array(
'premium_table_sort' => 'yes',
),
)
);
$this->add_control(
'premium_table_search',
array(
'label' => __( 'Search', 'premium-addons-pro' ),
'type' => Controls_Manager::SWITCHER,
'description' => __( 'Enables searching through the table using rows\' first cell keyword.', 'premium-addons-pro' ),
'frontend_available' => true,
)
);
$this->add_control(
'premium_table_search_placeholder',
array(
'label' => __( 'Placeholder', 'premium-addons-pro' ),
'type' => Controls_Manager::TEXT,
'dynamic' => array( 'active' => true ),
'default' => __( 'Live Search...', 'premium-addons-pro' ),
'condition' => array(
'premium_table_search' => 'yes',
),
)
);
$this->add_control(
'premium_table_records',
array(
'label' => __( 'Show Records', 'premium-addons-pro' ),
'type' => Controls_Manager::SWITCHER,
'description' => __( 'Shows a dropdown to control number of records', 'premium-addons-pro' ),
'condition' => array(
'premium_table_data_type' => 'custom',
),
'frontend_available' => true,
)
);
$this->add_control(
'premium_table_records_label',
array(
'label' => __( 'Label', 'premium-addons-pro' ),
'type' => Controls_Manager::TEXT,
'dynamic' => array( 'active' => true ),
'default' => __( 'Show Records:', 'premium-addons-pro' ),
'condition' => array(
'premium_table_records' => 'yes',
),
)
);
$this->add_responsive_control(
'premium_table_search_align',
array(
'label' => __( 'Search Alignment', 'premium-addons-pro' ),
'type' => Controls_Manager::CHOOSE,
'options' => array(
'left' => array(
'title' => __( 'Left', 'premium-addons-pro' ),
'icon' => 'eicon-text-align-left',
),
'center' => array(
'title' => __( 'Center', 'premium-addons-pro' ),
'icon' => 'eicon-text-align-center',
),
'right' => array(
'title' => __( 'Right', 'premium-addons-pro' ),
'icon' => 'eicon-text-align-right',
),
),
'default' => 'right',
'selectors' => array(
'{{WRAPPER}} .premium-table-search-wrap' => 'text-align: {{VALUE}};',
),
'condition' => array(
'premium_table_search' => 'yes',
'premium_table_records!' => 'yes',
),
)
);
$this->add_responsive_control(
'premium_table_records_align',
array(
'label' => __( 'Show Records Alignment', 'premium-addons-pro' ),
'type' => Controls_Manager::CHOOSE,
'options' => array(
'left' => array(
'title' => __( 'Left', 'premium-addons-pro' ),
'icon' => 'eicon-text-align-left',
),
'center' => array(
'title' => __( 'Center', 'premium-addons-pro' ),
'icon' => 'eicon-text-align-center',
),
'right' => array(
'title' => __( 'Right', 'premium-addons-pro' ),
'icon' => 'eicon-text-align-right',
),
),
'default' => 'right',
'selectors' => array(
'{{WRAPPER}} .premium-table-records-wrap' => 'text-align: {{VALUE}};',
),
'condition' => array(
'premium_table_records' => 'yes',
'premium_table_search!' => 'yes',
),
)
);
$this->add_control(
'pagination',
array(
'label' => __( 'Pagination', 'premium-addons-pro' ),
'type' => Controls_Manager::SWITCHER,
'description' => __( 'Please note that pagination works only on frontend', 'premium-addons-pro' ),
)
);
$this->add_control(
'rows_per_page',
array(
'label' => esc_html__( 'Rows Per Page', 'premium-addons-pro' ),
'type' => Controls_Manager::NUMBER,
'min' => 1,
'default' => 5,
'condition' => array(
'pagination' => 'yes',
),
)
);
$this->add_responsive_control(
'pagination_align',
array(
'label' => __( 'Pagination Alignment', 'premium-addons-pro' ),
'type' => Controls_Manager::CHOOSE,
'options' => array(
'flex-start' => array(
'title' => __( 'Left', 'premium-addons-pro' ),
'icon' => 'eicon-text-align-left',
),
'center' => array(
'title' => __( 'Center', 'premium-addons-pro' ),
'icon' => 'eicon-text-align-center',
),
'flex-end' => array(
'title' => __( 'Right', 'premium-addons-pro' ),
'icon' => 'eicon-text-align-right',
),
),
'default' => 'center',
'selectors' => array(
'{{WRAPPER}} .premium-table-pagination-list' => 'justify-content: {{VALUE}}',
),
'condition' => array(
'pagination' => 'yes',
),
)
);
$this->add_control(
'premium_table_search_dir',
array(
'label' => __( 'Direction', 'premium-addons-pro' ),
'type' => Controls_Manager::CHOOSE,
'prefix_class' => 'premium-table-dir-',
'options' => array(
'ltr' => array(
'title' => __( 'LTR', 'premium-addons-pro' ),
'icon' => 'eicon-arrow-right',
),
'rtl' => array(
'title' => __( 'RTL', 'premium-addons-pro' ),
'icon' => 'eicon-arrow-left',
),
),
'selectors' => array(
'{{WRAPPER}} .premium-table-wrap' => 'direction: {{VALUE}};',
),
'default' => 'ltr',
)
);
$this->end_controls_section();
$this->start_controls_section(
'section_pa_docs',
array(
'label' => __( 'Help & Docs', 'premium-addons-pro' ),
)
);
$docs = array(
'https://premiumaddons.com/docs/table-widget-tutorial' => __( 'Getting started »', 'premium-addons-pro' ),
'https://premiumaddons.com/docs/importing-table-widget-data-from-csv-file/' => __( 'How to import data from CSV file »', 'premium-addons-pro' ),
'https://premiumaddons.com/docs/how-to-add-links-to-csv-file-in-premium-elementor-table-widget/' => __( 'How to add links/images to CSV file »', 'premium-addons-pro' ),
'https://premiumaddons.com/docs/add-google-sheets-to-elementor-table-widget-tutorial' => __( 'How to import data from Google Spreadsheet »', 'premium-addons-pro' ),
);
$doc_index = 1;
foreach ( $docs as $url => $title ) {
$doc_url = Helper_Functions::get_campaign_link( $url, 'tables-widget', 'wp-editor', 'get-support' );
$this->add_control(
'doc_' . $doc_index,
array(
'type' => Controls_Manager::RAW_HTML,
'raw' => sprintf( '<a href="%s" target="_blank">%s</a>', $doc_url, $title ),
'content_classes' => 'editor-pa-doc',
)
);
$doc_index++;
}
$this->end_controls_section();
$this->start_controls_section(
'premium_table_head_style',
array(
'label' => __( 'Head', 'premium-addons-pro' ),
'tab' => Controls_Manager::TAB_STYLE,
)
);
$this->start_controls_tabs( 'premium_table_head_style_tabs' );
$this->start_controls_tab(
'premium_table_odd_head_odd_style',
array(
'label' => __( 'Odd', 'premium-addons-pro' ),
)
);
$this->add_control(
'premium_table_odd_head_color',
array(
'label' => __( 'Text Color', 'premium-addons-pro' ),
'type' => Controls_Manager::COLOR,
'global' => array(
'default' => Global_Colors::COLOR_PRIMARY,
),
'selectors' => array(
'{{WRAPPER}} .premium-table .premium-table-row th.premium-table-cell:nth-child(odd) .premium-table-text' => 'color: {{VALUE}};',
),
)
);
$this->add_control(
'premium_table_odd_head_hover_color',
array(
'label' => __( 'Text Hover Color', 'premium-addons-pro' ),
'type' => Controls_Manager::COLOR,
'global' => array(
'default' => Global_Colors::COLOR_PRIMARY,
),
'selectors' => array(
'{{WRAPPER}} .premium-table .premium-table-row th.premium-table-cell:nth-child(odd) .premium-table-text:hover' => 'color: {{VALUE}};',
),
)
);
$this->add_control(
'premium_table_odd_head_icon_color',
array(
'label' => __( 'Icon Color', 'premium-addons-pro' ),
'type' => Controls_Manager::COLOR,
'global' => array(
'default' => Global_Colors::COLOR_PRIMARY,
),
'selectors' => array(
'{{WRAPPER}} .premium-table .premium-table-row th.premium-table-cell:nth-child(odd) .premium-table-text i' => 'color: {{VALUE}};',
),
'condition' => array(
'premium_table_data_type' => 'custom',
),
)
);
$this->add_group_control(
Group_Control_Typography::get_type(),
array(
'name' => 'premium_table_odd_head_typo',
'global' => array(
'default' => Global_Typography::TYPOGRAPHY_PRIMARY,
),
'selector' => '{{WRAPPER}} .premium-table .premium-table-row th.premium-table-cell:nth-child(odd) .premium-table-text',
)
);
$this->add_group_control(
Group_Control_Text_Shadow::get_type(),
array(
'name' => 'premium_table_odd_head_text_shadow',
'selector' => '{{WRAPPER}} .premium-table .premium-table-row th.premium-table-cell:nth-child(odd) .premium-table-text',
)
);
$this->add_control(
'premium_table_odd_head_background_popover',
array(
'label' => __( 'Background', 'premium-addons-pro' ),
'type' => Controls_Manager::POPOVER_TOGGLE,
)
);
$this->start_popover();
$this->add_control(
'premium_table_odd_head_background_heading',
array(
'label' => __( 'Normal', 'premium-addons-pro' ),
'type' => Controls_Manager::HEADING,
)
);
$this->add_group_control(
Group_Control_Background::get_type(),
array(
'name' => 'premium_table_odd_head_background',
'types' => array( 'classic', 'gradient' ),
'selector' => '{{WRAPPER}} .premium-table .premium-table-row th.premium-table-cell:nth-child(odd)',
)
);
$this->add_control(
'premium_table_odd_head_hover_background_heading',
array(
'label' => __( 'Hover', 'premium-addons-pro' ),
'type' => Controls_Manager::HEADING,
)
);
$this->add_group_control(
Group_Control_Background::get_type(),
array(
'name' => 'premium_table_odd_head_hover_background',
'types' => array( 'classic', 'gradient' ),
'selector' => '{{WRAPPER}} .premium-table .premium-table-row th.premium-table-cell:nth-child(odd):hover',
)
);
$this->end_popover();
$this->add_responsive_control(
'premium_table_odd_head_align',
array(
'label' => __( 'Alignment', 'premium-addons-pro' ),
'type' => Controls_Manager::CHOOSE,
'options' => array(
'left' => array(
'title' => __( 'Left', 'premium-addons-pro' ),
'icon' => 'eicon-text-align-left',
),
'center' => array(
'title' => __( 'Center', 'premium-addons-pro' ),
'icon' => 'eicon-text-align-center',
),
'right' => array(
'title' => __( 'Right', 'premium-addons-pro' ),
'icon' => 'eicon-text-align-right',
),
),
'default' => 'left',
'selectors_dictionary' => array(
'left' => 'justify-content: flex-start; text-align: left',
'center' => 'justify-content: center; text-align: center',
'right' => 'justify-content: flex-end; text-align: right',
),
'selectors' => array(
'{{WRAPPER}} .premium-table .premium-table-row th.premium-table-cell:nth-child(odd) .premium-table-text' => '{{VALUE}};',
),
'condition' => array(
'premium_table_data_type' => 'csv',
),
)
);
$this->end_controls_tab();
$this->start_controls_tab(
'premium_table_head_even_style',
array(
'label' => __( 'Even', 'premium-addons-pro' ),
)
);
$this->add_control(
'premium_table_even_head_color',
array(
'label' => __( 'Text Color', 'premium-addons-pro' ),
'type' => Controls_Manager::COLOR,
'global' => array(
'default' => Global_Colors::COLOR_PRIMARY,
),
'selectors' => array(
'{{WRAPPER}} .premium-table .premium-table-row th.premium-table-cell:nth-child(even) .premium-table-text' => 'color: {{VALUE}};',
),
)
);
$this->add_control(
'premium_table_even_head_hover_color',
array(
'label' => __( 'Text Hover Color', 'premium-addons-pro' ),
'type' => Controls_Manager::COLOR,
'global' => array(
'default' => Global_Colors::COLOR_PRIMARY,
),
'selectors' => array(
'{{WRAPPER}} .premium-table .premium-table-row th.premium-table-cell:nth-child(even) .premium-table-text:hover' => 'color: {{VALUE}};',
),
)
);
$this->add_control(
'premium_table_even_head_icon_color',
array(
'label' => __( 'Icon Color', 'premium-addons-pro' ),
'type' => Controls_Manager::COLOR,
'global' => array(
'default' => Global_Colors::COLOR_PRIMARY,
),
'selectors' => array(
'{{WRAPPER}} .premium-table .premium-table-row th.premium-table-cell:nth-child(even) .premium-table-text i' => 'color: {{VALUE}};',
),
'condition' => array(
'premium_table_data_type' => 'custom',
),
)
);
$this->add_group_control(
Group_Control_Typography::get_type(),
array(
'name' => 'premium_table_even_head_typo',
'global' => array(
'default' => Global_Typography::TYPOGRAPHY_PRIMARY,
),
'selector' => '{{WRAPPER}} .premium-table .premium-table-row th.premium-table-cell:nth-child(even) .premium-table-text',
)
);
$this->add_group_control(
Group_Control_Text_Shadow::get_type(),
array(
'name' => 'premium_table_even_head_text_shadow',
'selector' => '{{WRAPPER}} .premium-table .premium-table-row th.premium-table-cell:nth-child(even) .premium-table-text',
)
);
$this->add_control(
'premium_table_even_head_background_popover',
array(
'label' => __( 'Background', 'premium-addons-pro' ),
'type' => Controls_Manager::POPOVER_TOGGLE,
)
);
$this->start_popover();
$this->add_control(
'premium_table_even_head_background_heading',
array(
'label' => __( 'Normal', 'premium-addons-pro' ),
'type' => Controls_Manager::HEADING,
)
);
$this->add_group_control(
Group_Control_Background::get_type(),
array(
'name' => 'premium_table_even_head_background',
'types' => array( 'classic', 'gradient' ),
'selector' => '{{WRAPPER}} .premium-table .premium-table-row th.premium-table-cell:nth-child(even)',
)
);
$this->add_control(
'premium_table_even_head_hover_background_heading',
array(
'label' => __( 'Hover', 'premium-addons-pro' ),
'type' => Controls_Manager::HEADING,
)
);
$this->add_group_control(
Group_Control_Background::get_type(),
array(
'name' => 'premium_table_even_head_hover_background',
'types' => array( 'classic', 'gradient' ),
'selector' => '{{WRAPPER}} .premium-table .premium-table-row th.premium-table-cell:nth-child(even):hover',
)
);
$this->end_popover();
$this->add_responsive_control(
'premium_table_even_head_align',
array(
'label' => __( 'Alignment', 'premium-addons-pro' ),
'type' => Controls_Manager::CHOOSE,
'options' => array(
'left' => array(
'title' => __( 'Left', 'premium-addons-pro' ),
'icon' => 'eicon-text-align-left',
),
'center' => array(
'title' => __( 'Center', 'premium-addons-pro' ),
'icon' => 'eicon-text-align-center',
),
'right' => array(
'title' => __( 'Right', 'premium-addons-pro' ),
'icon' => 'eicon-text-align-right',
),
),
'default' => 'left',
'selectors_dictionary' => array(
'left' => 'justify-content: flex-start; text-align: left',
'center' => 'justify-content: center; text-align: center',
'right' => 'justify-content: flex-end; text-align: right',
),
'selectors' => array(
'{{WRAPPER}} .premium-table .premium-table-row th.premium-table-cell:nth-child(even) .premium-table-text' => '{{VALUE}};',
),
'condition' => array(
'premium_table_data_type' => 'csv',
),
)
);
$this->end_controls_tab();
$this->end_controls_tabs();
$this->add_group_control(
Group_Control_Border::get_type(),
array(
'name' => 'premium_table_head_rows_border',
'selector' => '{{WRAPPER}} .premium-table .premium-table-row th.premium-table-cell',
'separator' => 'before',
)
);
$this->add_responsive_control(
'premium_table_head_padding',
array(
'label' => __( 'Padding', 'premium-addons-pro' ),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => array( 'px', 'em', '%' ),
'selectors' => array(
'{{WRAPPER}} .premium-table .premium-table-row th.premium-table-cell .premium-table-text' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
),
)
);
$this->end_controls_section();
$this->start_controls_section(
'premium_table_row_style',
array(
'label' => __( 'Rows', 'premium-addons-pro' ),
'tab' => Controls_Manager::TAB_STYLE,
)
);
$this->start_controls_tabs( 'premium_table_row_style_tabs' );
$this->start_controls_tab(
'premium_table_odd_row_odd_style',
array(
'label' => __( 'Odd', 'premium-addons-pro' ),
)
);
$this->add_control(
'premium_table_odd_row_color',
array(
'label' => __( 'Text Color', 'premium-addons-pro' ),
'type' => Controls_Manager::COLOR,
'global' => array(
'default' => Global_Colors::COLOR_SECONDARY,
),
'selectors' => array(
'{{WRAPPER}} .premium-table tbody tr:nth-of-type(odd) .premium-table-cell .premium-table-text' => 'color: {{VALUE}};',
'{{WRAPPER}} .premium-table-blur tbody:hover tr:nth-of-type(odd) .premium-table-text' => 'text-shadow: 0 0 3px {{VALUE}};',
),
)
);
$this->add_control(
'premium_table_odd_row_hover_color',
array(
'label' => __( 'Text Hover Color', 'premium-addons-pro' ),
'type' => Controls_Manager::COLOR,
'global' => array(
'default' => Global_Colors::COLOR_SECONDARY,
),
'selectors' => array(
'{{WRAPPER}} .premium-table tbody tr:nth-of-type(odd) .premium-table-cell .premium-table-text:hover' => 'color: {{VALUE}};',
'{{WRAPPER}} .premium-table-blur tbody:hover tr:nth-of-type(odd):hover .premium-table-text' => 'text-shadow: none !important; color: {{VALUE}} !important;',
),
)
);
$this->add_control(
'premium_table_row_row_icon_color',
array(
'label' => __( 'Icon Color', 'premium-addons-pro' ),
'type' => Controls_Manager::COLOR,
'global' => array(
'default' => Global_Colors::COLOR_SECONDARY,
),
'selectors' => array(
'{{WRAPPER}} .premium-table tbody tr:nth-of-type(odd) .premium-table-cell .premium-table-text i' => 'color: {{VALUE}};',
),
'condition' => array(
'premium_table_data_type' => 'custom',
),
)
);
$this->add_group_control(
Group_Control_Typography::get_type(),
array(
'name' => 'premium_table_odd_row_typo',
'global' => array(
'default' => Global_Typography::TYPOGRAPHY_PRIMARY,
),
'selector' => '{{WRAPPER}} .premium-table tbody tr:nth-of-type(odd) .premium-table-cell .premium-table-text',
)
);
$this->add_group_control(
Group_Control_Text_Shadow::get_type(),
array(
'name' => 'premium_table_odd_row_text_shadow',
'selector' => '{{WRAPPER}} .premium-table tbody tr:nth-of-type(odd) .premium-table-cell .premium-table-text',
)
);
$this->add_control(
'premium_table_odd_row_background_popover',
array(
'label' => __( 'Background', 'premium-addons-pro' ),
'type' => Controls_Manager::POPOVER_TOGGLE,
)
);
$this->start_popover();
$this->add_control(
'premium_table_odd_row_background_heading',
array(
'label' => __( 'Normal', 'premium-addons-pro' ),
'type' => Controls_Manager::HEADING,
)
);
$this->add_group_control(
Group_Control_Background::get_type(),
array(
'name' => 'premium_table_odd_row_background',
'types' => array( 'classic', 'gradient' ),
'selector' => '{{WRAPPER}} .premium-table tbody tr:nth-of-type(odd) .premium-table-cell',
)
);
$this->add_control(
'premium_table_odd_row_hover_background_heading',
array(
'label' => __( 'Hover', 'premium-addons-pro' ),
'type' => Controls_Manager::HEADING,
)
);
$this->add_group_control(
Group_Control_Background::get_type(),
array(
'name' => 'premium_table_odd_row_hover_background',
'types' => array( 'classic', 'gradient' ),
'selector' => '{{WRAPPER}} .premium-table tbody tr:nth-of-type(odd) .premium-table-cell:hover',
)
);
$this->end_popover();
$this->end_controls_tab();
$this->start_controls_tab(
'premium_table_row_even_style',
array(
'label' => __( 'Even', 'premium-addons-pro' ),
)
);
$this->add_control(
'premium_table_even_row_color',
array(
'label' => __( 'Text Color', 'premium-addons-pro' ),
'type' => Controls_Manager::COLOR,
'global' => array(
'default' => Global_Colors::COLOR_SECONDARY,
),
'selectors' => array(
'{{WRAPPER}} .premium-table tbody tr:nth-of-type(even) .premium-table-cell .premium-table-text' => 'color: {{VALUE}};',
'{{WRAPPER}} .premium-table-blur tbody:hover tr:nth-of-type(even) .premium-table-text' => 'text-shadow: 0 0 3px {{VALUE}};',
),
)
);
$this->add_control(
'premium_table_even_row_hover_color',
array(
'label' => __( 'Text Hover Color', 'premium-addons-pro' ),
'type' => Controls_Manager::COLOR,
'global' => array(
'default' => Global_Colors::COLOR_SECONDARY,
),
'selectors' => array(
'{{WRAPPER}} .premium-table tbody tr:nth-of-type(even) .premium-table-cell .premium-table-text:hover' => 'color: {{VALUE}};',
'{{WRAPPER}} .premium-table-blur tbody:hover tr:nth-of-type(even):hover .premium-table-text' => 'text-shadow: none !important; color: {{VALUE}} !important;',
),
)
);
$this->add_control(
'premium_table_row_even_icon_color',
array(
'label' => __( 'Icon Color', 'premium-addons-pro' ),
'type' => Controls_Manager::COLOR,
'global' => array(
'default' => Global_Colors::COLOR_SECONDARY,
),
'selectors' => array(
'{{WRAPPER}} .premium-table tbody tr:nth-of-type(even) .premium-table-cell .premium-table-text i' => 'color: {{VALUE}};',
),
'condition' => array(
'premium_table_data_type' => 'custom',
),
)
);
$this->add_group_control(
Group_Control_Typography::get_type(),
array(
'name' => 'premium_table_even_row_typo',
'global' => array(
'default' => Global_Typography::TYPOGRAPHY_PRIMARY,
),
'selector' => '{{WRAPPER}} .premium-table tbody tr:nth-of-type(even) .premium-table-cell .premium-table-text',
)
);
$this->add_group_control(
Group_Control_Text_Shadow::get_type(),
array(
'name' => 'premium_table_even_row_text_shadow',
'selector' => '{{WRAPPER}} .premium-table tbody tr:nth-of-type(even) .premium-table-cell .premium-table-text',
)
);
$this->add_control(
'premium_table_even_row_background_popover',
array(
'label' => __( 'Background', 'premium-addons-pro' ),
'type' => Controls_Manager::POPOVER_TOGGLE,
)
);
$this->start_popover();
$this->add_control(
'premium_table_even_row_background_heading',
array(
'label' => __( 'Normal', 'premium-addons-pro' ),
'type' => Controls_Manager::HEADING,
)
);
$this->add_group_control(
Group_Control_Background::get_type(),
array(
'name' => 'premium_table_even_row_background',
'types' => array( 'classic', 'gradient' ),
'selector' => '{{WRAPPER}} .premium-table tbody tr:nth-of-type(even) .premium-table-cell',
)
);
$this->add_control(
'premium_table_even_row_hover_background_heading',
array(
'label' => __( 'Hover', 'premium-addons-pro' ),
'type' => Controls_Manager::HEADING,
)
);
$this->add_group_control(
Group_Control_Background::get_type(),
array(
'name' => 'premium_table_even_row_hover_background',
'types' => array( 'classic', 'gradient' ),
'selector' => '{{WRAPPER}} .premium-table tbody tr:nth-of-type(even) .premium-table-cell:hover',
)
);
$this->end_popover();
$this->end_controls_tab();
$this->end_controls_tabs();
$this->add_group_control(
Group_Control_Border::get_type(),
array(
'name' => 'premium_table_row_border',
'separator' => 'before',
'selector' => '{{WRAPPER}} .premium-table .premium-table-row td.premium-table-cell',
)
);
$this->add_responsive_control(
'premium_table_odd_row_padding',
array(
'label' => __( 'Padding', 'premium-addons-pro' ),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => array( 'px', 'em', '%' ),
'selectors' => array(
'{{WRAPPER}} .premium-table .premium-table-row td.premium-table-cell .premium-table-text' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
),
)
);
$this->end_controls_section();
$this->start_controls_section(
'premium_table_col_style',
array(
'label' => __( 'Columns', 'premium-addons-pro' ),
'tab' => Controls_Manager::TAB_STYLE,
)
);
$this->start_controls_tabs( 'premium_table_col_style_tabs' );
$this->start_controls_tab(
'premium_table_odd_col_odd_style',
array(
'label' => __( 'Odd', 'premium-addons-pro' ),
)
);
$this->add_control(
'premium_table_odd_col_background_popover',
array(
'label' => __( 'Background', 'premium-addons-pro' ),
'type' => Controls_Manager::POPOVER_TOGGLE,
)
);
$this->start_popover();
$this->add_control(
'premium_table_odd_col_background_heading',
array(
'label' => __( 'Normal', 'premium-addons-pro' ),
'type' => Controls_Manager::HEADING,
)
);
$this->add_group_control(
Group_Control_Background::get_type(),
array(
'name' => 'premium_table_odd_col_background',
'types' => array( 'classic', 'gradient' ),
'selector' => '{{WRAPPER}} .premium-table .premium-table-row .premium-table-cell:nth-child(odd)',
)
);
$this->add_control(
'premium_table_odd_col_hover_background_heading',
array(
'label' => __( 'Hover', 'premium-addons-pro' ),
'type' => Controls_Manager::HEADING,
)
);
$this->add_group_control(
Group_Control_Background::get_type(),
array(
'name' => 'premium_table_odd_col_hover_background',
'types' => array( 'classic', 'gradient' ),
'selector' => '{{WRAPPER}} .premium-table .premium-table-row .premium-table-cell:nth-child(odd):hover',
)
);
$this->end_popover();
$this->add_responsive_control(
'premium_table_odd_col_align',
array(
'label' => __( 'Alignment', 'premium-addons-pro' ),
'type' => Controls_Manager::CHOOSE,
'options' => array(
'left' => array(
'title' => __( 'Left', 'premium-addons-pro' ),
'icon' => 'eicon-text-align-left',
),
'center' => array(
'title' => __( 'Center', 'premium-addons-pro' ),
'icon' => 'eicon-text-align-center',
),
'right' => array(
'title' => __( 'Right', 'premium-addons-pro' ),
'icon' => 'eicon-text-align-right',
),
),
'default' => 'left',
'selectors_dictionary' => array(
'left' => 'justify-content: flex-start; text-align: left',
'center' => 'justify-content: center; text-align: center',
'right' => 'justify-content: flex-end; text-align: right',
),
'selectors' => array(
'{{WRAPPER}} .premium-table .premium-table-row .premium-table-cell:nth-child(odd) .premium-table-text' => '{{VALUE}};',
),
'condition' => array(
'premium_table_data_type' => 'csv',
),
)
);
$this->end_controls_tab();
$this->start_controls_tab(
'premium_table_col_even_style',
array(
'label' => __( 'Even', 'premium-addons-pro' ),
)
);
$this->add_control(
'premium_table_even_col_background_popover',
array(
'label' => __( 'Background', 'premium-addons-pro' ),
'type' => Controls_Manager::POPOVER_TOGGLE,
)
);
$this->start_popover();
$this->add_control(
'premium_table_even_col_background_heading',
array(
'label' => __( 'Normal', 'premium-addons-pro' ),
'type' => Controls_Manager::HEADING,
)
);
$this->add_group_control(
Group_Control_Background::get_type(),
array(
'name' => 'premium_table_even_col_background',
'types' => array( 'classic', 'gradient' ),
'selector' => '{{WRAPPER}} .premium-table .premium-table-row .premium-table-cell:nth-child(even)',
)
);
$this->add_control(
'premium_table_even_col_hover_background_heading',
array(
'label' => __( 'Hover', 'premium-addons-pro' ),
'type' => Controls_Manager::HEADING,
)
);
$this->add_group_control(
Group_Control_Background::get_type(),
array(
'name' => 'premium_table_even_col_hover_background',
'types' => array( 'classic', 'gradient' ),
'selector' => '{{WRAPPER}} .premium-table .premium-table-row .premium-table-cell:nth-child(even):hover',
)
);
$this->end_popover();
$this->add_responsive_control(
'premium_table_even_col_align',
array(
'label' => __( 'Alignment', 'premium-addons-pro' ),
'type' => Controls_Manager::CHOOSE,
'options' => array(
'left' => array(
'title' => __( 'Left', 'premium-addons-pro' ),
'icon' => 'eicon-text-align-left',
),
'center' => array(
'title' => __( 'Center', 'premium-addons-pro' ),
'icon' => 'eicon-text-align-center',
),
'right' => array(
'title' => __( 'Right', 'premium-addons-pro' ),
'icon' => 'eicon-text-align-right',
),
),
'default' => 'left',
'selectors_dictionary' => array(
'left' => 'justify-content: flex-start; text-align: left',
'center' => 'justify-content: center; text-align: center',
'right' => 'justify-content: flex-end; text-align: right',
),
'selectors' => array(
'{{WRAPPER}} .premium-table .premium-table-row td.premium-table-cell:nth-child(even) .premium-table-text' => '{{VALUE}};',
),
'condition' => array(
'premium_table_data_type' => 'csv',
),
)
);
$this->end_controls_tab();
$this->end_controls_tabs();
$this->end_controls_section();
$this->start_controls_section(
'premium_table_sort_style',
array(
'label' => __( 'Sort', 'premium-addons-pro' ),
'tab' => Controls_Manager::TAB_STYLE,
'condition' => array(
'premium_table_sort' => 'yes',
'premium_table_data_type!' => 'csv',
),
)
);
$this->add_control(
'premium_table_sort_color',
array(
'label' => __( 'Color', 'premium-addons-pro' ),
'type' => Controls_Manager::COLOR,
'global' => array(
'default' => Global_Colors::COLOR_SECONDARY,
),
'selectors' => array(
'{{WRAPPER}} .premium-table thead .premium-table-cell .premium-table-sort-icon:before' => 'color: {{VALUE}};',
),
)
);
$this->add_control(
'premium_table_sort_hover_color',
array(
'label' => __( 'Hover Color', 'premium-addons-pro' ),
'type' => Controls_Manager::COLOR,
'global' => array(
'default' => Global_Colors::COLOR_SECONDARY,
),
'selectors' => array(
'{{WRAPPER}} .premium-table thead .premium-table-cell:hover .premium-table-sort-icon:before' => 'color: {{VALUE}};',
),
)
);
$this->add_control(
'premium_table_sort_background',
array(
'label' => __( 'Background', 'premium-addons-pro' ),
'type' => Controls_Manager::COLOR,
'global' => array(
'default' => Global_Colors::COLOR_PRIMARY,
),
'selectors' => array(
'{{WRAPPER}} .premium-table thead .premium-table-cell .premium-table-sort-icon:before' => 'background: {{VALUE}};',
),
)
);
$this->add_group_control(
Group_Control_Border::get_type(),
array(
'name' => 'premium_table_sort_border',
'selector' => '{{WRAPPER}} .premium-table thead .premium-table-cell .premium-table-sort-icon:before',
)
);
$this->add_control(
'premium_table_sort_border_radius',
array(
'label' => __( 'Border Radius', 'premium-addons-pro' ),
'type' => Controls_Manager::SLIDER,
'size_units' => array( 'px', '%', 'em' ),
'selectors' => array(
'{{WRAPPER}} .premium-table thead .premium-table-cell .premium-table-sort-icon:before' => 'border-radius: {{SIZE}}{{UNIT}};',
),
)
);
$this->add_group_control(
Group_Control_Text_Shadow::get_type(),
array(
'name' => 'premium_table_sort_box_shadow',
'selector' => '{{WRAPPER}} .premium-table thead .premium-table-cell .premium-table-sort-icon:before',
)
);
$this->add_responsive_control(
'premium_table_sort_padding',
array(
'label' => __( 'Padding', 'premium-addons-pro' ),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => array( 'px', 'em', '%' ),
'selectors' => array(
'{{WRAPPER}} .premium-table thead .premium-table-cell .premium-table-sort-icon:before' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
),
)
);
$this->end_controls_section();
$this->start_controls_section(
'premium_table_search_style',
array(
'label' => __( 'Search', 'premium-addons-pro' ),
'tab' => Controls_Manager::TAB_STYLE,
'condition' => array(
'premium_table_search' => 'yes',
),
)
);
$this->add_responsive_control(
'premium_table_search_width',
array(
'label' => __( 'Width', 'premium-addons-pro' ),
'type' => Controls_Manager::SLIDER,
'size_units' => array( 'px', 'em', '%', 'custom' ),
'range' => array(
'px' => array(
'min' => 1,
'max' => 300,
),
'em' => array(
'min' => 1,
'max' => 20,
),
),
'selectors' => array(
'{{WRAPPER}} .premium-table-search-field, {{WRAPPER}} .premium-table-filter-records .premium-table-search-wrap' => 'width: {{SIZE}}{{UNIT}};',
),
)
);
$this->add_control(
'premium_table_search_color',
array(
'label' => __( 'Input Text Color', 'premium-addons-pro' ),
'type' => Controls_Manager::COLOR,
'global' => array(
'default' => Global_Colors::COLOR_PRIMARY,
),
'selectors' => array(
'{{WRAPPER}} .premium-table-search-field' => 'color: {{VALUE}};',
),
)
);
$this->add_group_control(
Group_Control_Background::get_type(),
array(
'name' => 'premium_table_search_background',
'types' => array( 'classic', 'gradient' ),
'selector' => '{{WRAPPER}} .premium-table-search-field',
)
);
$this->add_group_control(
Group_Control_Border::get_type(),
array(
'name' => 'premium_table_search_border',
'selector' => '{{WRAPPER}} .premium-table-search-field',
)
);
$this->add_control(
'premium_table_search_border_radius',
array(
'label' => __( 'Border Radius', 'premium-addons-pro' ),
'type' => Controls_Manager::SLIDER,
'size_units' => array( 'px', '%', 'em' ),
'selectors' => array(
'{{WRAPPER}} .premium-table-search-field' => 'border-radius: {{SIZE}}{{UNIT}};',
),
)
);
$this->add_group_control(
Group_Control_Box_Shadow::get_type(),
array(
'name' => 'premium_table_container_search_shadow',
'selector' => '{{WRAPPER}} .premium-table-search-field',
)
);
$this->add_responsive_control(
'premium_table_search_margin',
array(
'label' => __( 'Margin', 'premium-addons-pro' ),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => array( 'px', 'em', '%' ),
'selectors' => array(
'{{WRAPPER}} .premium-table-search-field' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
),
)
);
$this->add_responsive_control(
'premium_table_search_padding',
array(
'label' => __( 'Padding', 'premium-addons-pro' ),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => array( 'px', 'em', '%' ),
'selectors' => array(
'{{WRAPPER}} .premium-table-search-field' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
),
)
);
$this->end_controls_section();
$this->start_controls_section(
'premium_table_records_style',
array(
'label' => __( 'Records', 'premium-addons-pro' ),
'tab' => Controls_Manager::TAB_STYLE,
'condition' => array(
'premium_table_records' => 'yes',
),
)
);
$this->add_responsive_control(
'premium_table_records_width',
array(
'label' => __( 'Width', 'premium-addons-pro' ),
'type' => Controls_Manager::SLIDER,
'size_units' => array( 'px', 'em', '%', 'custom' ),
'range' => array(
'px' => array(
'min' => 50,
'max' => 300,
),
'em' => array(
'min' => 1,
'max' => 20,
),
),
'selectors' => array(
'{{WRAPPER}} .premium-table-records-box' => 'width: {{SIZE}}{{UNIT}};',
),
)
);
$this->add_control(
'premium_table_filters_color',
array(
'label' => __( 'Options Color', 'premium-addons-pro' ),
'type' => Controls_Manager::COLOR,
'global' => array(
'default' => Global_Colors::COLOR_PRIMARY,
),
'selectors' => array(
'{{WRAPPER}} .premium-table-records-box' => 'color: {{VALUE}};',
),
)
);
$this->add_group_control(
Group_Control_Background::get_type(),
array(
'name' => 'premium_table_records_background',
'types' => array( 'classic', 'gradient' ),
'selector' => '{{WRAPPER}} .premium-table-records-box',
)
);
$this->add_group_control(
Group_Control_Border::get_type(),
array(
'name' => 'premium_table_records_border',
'selector' => '{{WRAPPER}} .premium-table-records-box',
)
);
$this->add_control(
'premium_table_records_border_radius',
array(
'label' => __( 'Border Radius', 'premium-addons-pro' ),
'type' => Controls_Manager::SLIDER,
'size_units' => array( 'px', '%', 'em' ),
'selectors' => array(
'{{WRAPPER}} .premium-table-records-box' => 'border-radius: {{SIZE}}{{UNIT}};',
),
)
);
$this->add_group_control(
Group_Control_Box_Shadow::get_type(),
array(
'name' => 'premium_table_records_shadow',
'selector' => '{{WRAPPER}} .premium-table-records-box',
)
);
$this->add_responsive_control(
'premium_table_records_margin',
array(
'label' => __( 'Select Margin', 'premium-addons-pro' ),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => array( 'px', 'em', '%' ),
'selectors' => array(
'{{WRAPPER}} .premium-table-records-box' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
),
)
);
$this->add_responsive_control(
'premium_table_records_box_margin',
array(
'label' => __( 'Box Margin', 'premium-addons-pro' ),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => array( 'px', 'em', '%' ),
'selectors' => array(
'{{WRAPPER}} .premium-table-records-wrap' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
),
)
);
$this->add_responsive_control(
'premium_table_records_padding',
array(
'label' => __( 'Padding', 'premium-addons-pro' ),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => array( 'px', 'em', '%' ),
'selectors' => array(
'{{WRAPPER}} .premium-table-records-box' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
),
)
);
$this->end_controls_section();
$this->start_controls_section(
'pagination_style',
array(
'label' => __( 'Pagination', 'premium-addons-pro' ),
'tab' => Controls_Manager::TAB_STYLE,
'condition' => array(
'pagination' => 'yes',
),
)
);
$this->add_group_control(
Group_Control_Typography::get_type(),
array(
'name' => 'pagination_typography',
'global' => array(
'default' => Global_Typography::TYPOGRAPHY_ACCENT,
),
'selector' => '{{WRAPPER}} .premium-table-pagination ul li > .page-numbers',
)
);
$this->add_responsive_control(
'pagination_margin',
array(
'label' => __( 'Margin', 'premium-addons-pro' ),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => array( 'px', 'em', '%' ),
'selectors' => array(
'{{WRAPPER}} .premium-table-pagination' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}}',
),
)
);
$this->add_responsive_control(
'pagination_padding',
array(
'label' => __( 'Numbers Padding', 'premium-addons-pro' ),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => array( 'px', 'em', '%' ),
'selectors' => array(
'{{WRAPPER}} .premium-table-pagination ul li .page-numbers' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}}',
),
)
);
$this->start_controls_tabs( 'pagination_style_tabs' );
$this->start_controls_tab(
'pagination_style_normal',
array(
'label' => __( 'Normal', 'premium-addons-pro' ),
)
);
$this->add_control(
'pagination_color',
array(
'label' => __( 'Color', 'premium-addons-pro' ),
'type' => Controls_Manager::COLOR,
'selectors' => array(
'{{WRAPPER}} .premium-table-pagination ul li .page-numbers' => 'color: {{VALUE}}',
),
)
);
$this->add_control(
'pagination_background',
array(
'label' => __( 'Background Color', 'premium-addons-pro' ),
'type' => Controls_Manager::COLOR,
'selectors' => array(
'{{WRAPPER}} .premium-table-pagination ul li .page-numbers' => 'background-color: {{VALUE}}',
),
)
);
$this->add_group_control(
Group_Control_Border::get_type(),
array(
'name' => 'pagination_border',
'selector' => '{{WRAPPER}} .premium-table-pagination ul li .page-numbers',
)
);
$this->add_control(
'pagination_radius',
array(
'label' => __( 'Border Radius', 'premium-addons-pro' ),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => array( 'px', 'em', '%' ),
'selectors' => array(
'{{WRAPPER}} .premium-table-pagination ul li .page-numbers' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}}',
),
)
);
$this->end_controls_tab();
$this->start_controls_tab(
'pagination_style_hover',
array(
'label' => __( 'Hover', 'premium-addons-pro' ),
)
);
$this->add_control(
'pagination_hover_color',
array(
'label' => __( 'Color', 'premium-addons-pro' ),
'type' => Controls_Manager::COLOR,
'selectors' => array(
'{{WRAPPER}} .premium-table-pagination ul li .page-numbers:hover' => 'color: {{VALUE}};',
),
)
);
$this->add_control(
'pagination_hover_background',
array(
'label' => __( 'Background Color', 'premium-addons-pro' ),
'type' => Controls_Manager::COLOR,
'selectors' => array(
'{{WRAPPER}} .premium-table-pagination ul li .page-numbers:hover' => 'background-color: {{VALUE}};',
),
)
);
$this->add_group_control(
Group_Control_Border::get_type(),
array(
'name' => 'pagination_hover_border',
'selector' => '{{WRAPPER}} .premium-table-pagination ul li .page-numbers:hover',
)
);
$this->add_control(
'pagination_hover_radius',
array(
'label' => __( 'Border Radius', 'premium-addons-pro' ),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => array( 'px', 'em', '%' ),
'selectors' => array(
'{{WRAPPER}} .premium-table-pagination ul li .page-numbers:hover' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}}',
),
)
);
$this->end_controls_tab();
$this->start_controls_tab(
'pagination_style_active',
array(
'label' => __( 'Active', 'premium-addons-pro' ),
)
);
$this->add_control(
'pagination_active_color',
array(
'label' => __( 'Color', 'premium-addons-pro' ),
'type' => Controls_Manager::COLOR,
'selectors' => array(
'{{WRAPPER}} .premium-table-pagination ul li a.current' => 'color: {{VALUE}};',
),
)
);
$this->add_control(
'pagination_active_background',
array(
'label' => __( 'Background Color', 'premium-addons-pro' ),
'type' => Controls_Manager::COLOR,
'selectors' => array(
'{{WRAPPER}} .premium-table-pagination ul li a.current' => 'background-color: {{VALUE}};',
),
)
);
$this->add_group_control(
Group_Control_Border::get_type(),
array(
'name' => 'pagination_active_border',
'selector' => '{{WRAPPER}} .premium-table-pagination ul li a.current',
)
);
$this->add_control(
'pagination_active_radius',
array(
'label' => __( 'Border Radius', 'premium-addons-pro' ),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => array( 'px', 'em', '%' ),
'selectors' => array(
'{{WRAPPER}} .premium-table-pagination ul li a.current' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}}',
),
)
);
$this->end_controls_tab();
$this->end_controls_tabs();
$this->end_controls_section();
$this->start_controls_section(
'premium_table_style',
array(
'label' => __( 'Table', 'premium-addons-pro' ),
'tab' => Controls_Manager::TAB_STYLE,
)
);
$this->add_group_control(
Group_Control_Background::get_type(),
array(
'name' => 'premium_table_background',
'types' => array( 'classic', 'gradient' ),
'selector' => '{{WRAPPER}} .premium-table',
)
);
$this->add_group_control(
Group_Control_Border::get_type(),
array(
'name' => 'premium_table_border',
'selector' => '{{WRAPPER}} .premium-table',
)
);
$this->add_control(
'premium_table_border_radius',
array(
'label' => __( 'Border Radius', 'premium-addons-pro' ),
'type' => Controls_Manager::SLIDER,
'size_units' => array( 'px', '%', 'em' ),
'selectors' => array(
'{{WRAPPER}} .premium-table' => 'border-radius: {{SIZE}}{{UNIT}};',
),
)
);
$this->add_group_control(
Group_Control_Box_Shadow::get_type(),
array(
'name' => 'premium_table_box_shadow',
'selector' => '{{WRAPPER}} .premium-table',
)
);
$this->end_controls_section();
}
/**
* Render Table head output on the frontend.
*
* Written in PHP and used to generate the final HTML.
*
* @since 1.0.0
* @access protected
*/
protected function render_table_head() {
$settings = $this->get_settings_for_display();
$head = '';
$this->add_render_attribute( 'table_head', 'class', 'premium-table-head' );
$this->add_render_attribute( 'table_row', 'class', 'premium-table-row' );
?>
<thead <?php echo wp_kses_post( $this->get_render_attribute_string( 'table_head' ) ); ?>>
<tr <?php echo wp_kses_post( $this->get_render_attribute_string( 'table_row' ) ); ?>>
<?php
if ( 'custom' === $settings['premium_table_data_type'] ) {
foreach ( $settings['premium_table_head_repeater'] as $index => $head_cell ) {
$html_tag = 'span';
$head_cell_text = $this->get_repeater_setting_key( 'premium_table_text', 'premium_table_head_repeater', $index );
if ( 'yes' === $head_cell['head_link_switcher'] ) {
$html_tag = 'a';
if ( 'url' === $head_cell['head_link_selection'] ) {
$this->add_link_attributes( 'head-text-' . $index, $head_cell['head_link'] );
} else {
$this->add_render_attribute( 'head-text-' . $index, 'href', get_permalink( $head_cell['head_existing_link'] ) );
}
}
$this->add_render_attribute(
'head-cell-' . $index,
'class',
array(
'premium-table-cell',
'elementor-repeater-item-' . $head_cell['_id'],
)
);
$this->add_render_attribute( 'head-text-' . $index, 'class', 'premium-table-text' );
if ( 'top' === $head_cell['premium_table_cell_icon_align'] ) {
$this->add_render_attribute( 'head-text-' . $index, 'class', 'premium-table-cell-top' );
}
if ( $head_cell['premium_table_cell_span'] > 1 ) {
$this->add_render_attribute( 'head-cell-' . $index, 'colspan', $head_cell['premium_table_cell_span'] );
}
if ( $head_cell['premium_table_cell_row_span'] > 1 ) {
$this->add_render_attribute( 'head-cell-' . $index, 'rowspan', $head_cell['premium_table_cell_row_span'] );
}
$head .= '<th ' . $this->get_render_attribute_string( 'head-cell-' . $index ) . '>';
$head .= '<' . $html_tag . ' ' . $this->get_render_attribute_string( 'head-text-' . $index ) . '>';
if ( ! empty( $head_cell['premium_table_cell_icon'] ) || ! empty( $head_cell['premium_table_cell_icon_img']['url'] ) || ! empty( $head_cell['lottie_url'] ) ) {
$head_icon_type = $head_cell['premium_table_icon_selector'];
$this->add_render_attribute( 'cell-icon-' . $index, 'class', 'premium-table-cell-icon-' . $head_cell['premium_table_cell_icon_align'] );
$this->add_render_attribute( 'head-text-' . $index, 'class', 'premium-table-text' );
$head .= '<span ' . $this->get_render_attribute_string( 'cell-icon-' . $index ) . '>';
if ( 'font-awesome-icon' === $head_icon_type ) {
$head .= '<i class="' . esc_attr( $head_cell['premium_table_cell_icon'] ) . '"></i>';
} elseif ( 'custom-image' === $head_icon_type ) {
$head .= '<img src="' . esc_attr( $head_cell['premium_table_cell_icon_img']['url'] ) . '">';
} else {
$this->add_render_attribute(
'head_lottie_' . $index,
array(
'class' => array(
'premium-table-head-lottie',
'premium-lottie-animation',
),
'data-lottie-url' => $head_cell['lottie_url'],
'data-lottie-loop' => $head_cell['lottie_loop'],
'data-lottie-reverse' => $head_cell['lottie_reverse'],
)
);
$head .= '<div ' . $this->get_render_attribute_string( 'head_lottie_' . $index ) . '></div>';
}
$head .= '</span>';
}
$head .= $head_cell['premium_table_text'];
if ( 'yes' === $settings['premium_table_sort'] ) {
$head .= '<span class="premium-table-sort-icon premium-icon-sort fa fa-sort"></span>';
$head .= '<span class="premium-table-sort-icon premium-icon-sort-up fa fa-sort-up"></span>';
$head .= '<span class="premium-table-sort-icon premium-icon-sort-down fa fa-sort-down"></span>';
}
$head .= '</' . $html_tag . '>';
$head .= '</th>';
}
echo wp_kses_post( $head );
}
?>
</tr>
</thead>
<?php
}
/**
* Is First Elem Row
*
* Check if the first cell type is set to row.
*
* @since 1.0.0
* @access protected
*/
protected function is_first_elem_row() {
$settings = $this->get_settings();
if ( 'row' === $settings['premium_table_body_repeater'][0]['premium_table_elem_type'] ) {
return false;
}
return true;
}
/**
* Render Table Body output on the frontend.
*
* Written in PHP and used to generate the final HTML.
*
* @since 1.0.0
* @access protected
*/
protected function render_table_body() {
$settings = $this->get_settings_for_display();
$body = '';
$counter = 1;
$cell_counter = 0;
$row_count = count( $settings['premium_table_body_repeater'] );
$this->add_render_attribute( 'table_body', 'class', 'premium-table-body' );
$this->add_render_attribute( 'table_row', 'class', 'premium-table-row' );
?>
<tbody <?php echo wp_kses_post( $this->get_render_attribute_string( 'table_body' ) ); ?>>
<?php if ( $this->is_first_elem_row() ) { ?>
<tr <?php echo wp_kses_post( $this->get_render_attribute_string( 'table_row' ) ); ?>
<?php } ?>
<?php
foreach ( $settings['premium_table_body_repeater'] as $index => $elem ) {
$html_tag = 'span';
$body_cell_text = $this->get_repeater_setting_key( 'premium_table_text', 'premium_table_body_repeater', $index );
if ( 'yes' === $elem['premium_table_link_switcher'] ) {
$html_tag = 'a';
if ( 'url' === $elem['premium_table_link_selection'] ) {
$this->add_link_attributes( 'body-cell-text-' . $counter, $elem['premium_table_link'] );
} else {
$this->add_render_attribute( 'body-cell-text-' . $counter, 'href', get_permalink( $elem['premium_table_existing_link'] ) );
}
}
if ( 'cell' === $elem['premium_table_elem_type'] ) {
$this->add_render_attribute( 'body-cell-' . $counter, 'class', 'premium-table-cell' );
$this->add_render_attribute( 'body-cell-' . $counter, 'class', 'elementor-repeater-item-' . $elem['_id'] );
$this->add_render_attribute( 'body-cell-text-' . $counter, 'class', 'premium-table-text' );
if ( 'top' === $elem['premium_table_cell_icon_align'] ) {
$this->add_render_attribute( 'body-cell-text-' . $counter, 'class', 'premium-table-cell-top' );
}
if ( $elem['premium_table_cell_span'] > 1 ) {
$this->add_render_attribute( 'body-cell-' . $counter, 'colspan', $elem['premium_table_cell_span'] );
}
if ( $elem['premium_table_cell_row_span'] > 1 ) {
$this->add_render_attribute( 'body-cell-' . $counter, 'rowspan', $elem['premium_table_cell_row_span'] );
}
$body .= '<' . $elem['premium_table_cell_type'] . ' ' . $this->get_render_attribute_string( 'body-cell-' . $counter ) . '>';
$body .= '<' . $html_tag . ' ' . $this->get_render_attribute_string( 'body-cell-text-' . $counter ) . '>';
if ( ! empty( $elem['premium_table_cell_icon'] ) || ! empty( $elem['premium_table_cell_icon_img']['url'] ) || ! empty( $elem['lottie_url'] ) ) {
$body_icon_type = $elem['premium_table_icon_selector'];
$this->add_render_attribute( 'cell-icon-' . $counter, 'class', 'premium-table-cell-icon-' . $elem['premium_table_cell_icon_align'] );
$body .= '<span ' . $this->get_render_attribute_string( 'cell-icon-' . $counter ) . '>';
if ( 'font-awesome-icon' === $body_icon_type ) {
$body .= '<i class="' . esc_attr( $elem['premium_table_cell_icon'] ) . '"></i>';
} elseif ( 'custom-image' === $body_icon_type ) {
$body .= '<img src="' . esc_attr( $elem['premium_table_cell_icon_img']['url'] ) . '">';
} else {
$this->add_render_attribute(
'body_lottie_' . $index,
array(
'class' => array(
'premium-table-body-lottie',
'premium-lottie-animation',
),
'data-lottie-url' => $elem['lottie_url'],
'data-lottie-loop' => $elem['lottie_loop'],
'data-lottie-reverse' => $elem['lottie_reverse'],
)
);
$body .= '<div ' . $this->get_render_attribute_string( 'body_lottie_' . $index ) . '></div>';
}
$body .= '</span>';
}
$body .= $elem['premium_table_text'];
// $body .= '</span>';
$body .= '</' . $html_tag . '>';
$body .= '</' . $elem['premium_table_cell_type'] . '>';
} else {
$this->add_render_attribute( 'body-row-' . $counter, 'class', 'premium-table-row' );
$this->add_render_attribute( 'body-row-' . $counter, 'class', 'elementor-repeater-item-' . $elem['_id'] );
if ( $counter > 1 && $counter < $row_count ) {
$body .= '</tr><tr ' . $this->get_render_attribute_string( 'body-row-' . $counter ) . '>';
} elseif ( 1 === $counter && false === $this->is_first_elem_row() ) {
$body .= '<tr ' . $this->get_render_attribute_string( 'body-row-' . $counter ) . '>';
}
$cell_counter = 0;
}
$counter++;
}
echo wp_kses_post( $body );
?>
</tr>
</tbody>
<?php
}
/**
* Render Table output on the frontend.
*
* Written in PHP and used to generate the final HTML.
*
* @since 1.0.0
* @access protected
*/
protected function render() {
$settings = $this->get_settings_for_display();
$this->add_render_attribute( 'table_wrap', 'class', 'premium-table-wrap' );
if ( 'yes' === $settings['premium_table_responsive'] ) {
$this->add_render_attribute( 'table_wrap', 'class', 'premium-table-responsive' );
}
if ( 'yes' === $settings['premium_table_records'] && 'yes' === $settings['premium_table_search'] ) {
$this->add_render_attribute( 'table_wrap', 'class', 'premium-table-filter-records' );
}
$this->add_render_attribute( 'table', 'class', 'premium-table' );
if ( 'yes' === $settings['premium_table_search'] ) {
$this->add_render_attribute( 'table', 'class', 'premium-table-search' );
}
if ( 'yes' === $settings['premium_table_blur'] ) {
$this->add_render_attribute( 'table', 'class', 'premium-table-blur' );
}
if ( 'yes' === $settings['premium_table_sort'] ) {
$this->add_render_attribute( 'table', 'class', 'premium-table-sort' );
}
$table_settings = array(
'sort' => ( 'yes' === $settings['premium_table_sort'] ) ? true : false,
'usNumbers' => ( 'yes' === $settings['us_numbers'] ) ? true : false,
'sortMob' => ( 'yes' === $settings['premium_table_sort_mob'] ) ? true : false,
'search' => ( 'yes' === $settings['premium_table_search'] ) ? true : false,
'records' => ( 'yes' === $settings['premium_table_records'] ) ? true : false,
'dataType' => $settings['premium_table_data_type'],
'csvFile' => ( 'file' === $settings['premium_table_csv_type'] ) ? $settings['premium_table_csv']['url'] : $settings['premium_table_csv_url'],
'firstRow' => $settings['premium_table_csv_first_row'],
'separator' => $settings['premium_table_separator'],
'pagination' => $settings['pagination'],
'rows' => intval( $settings['rows_per_page'] ),
);
if ( 'csv' === $settings['premium_table_data_type'] ) {
$table_settings['id'] = $this->get_id();
$table_settings['reload'] = $settings['reload'];
}
$this->add_render_attribute( 'table', 'data-settings', wp_json_encode( $table_settings ) );
if ( 'yes' === $settings['premium_table_search'] ) {
$this->add_render_attribute( 'search', 'class', 'premium-table-search-field' );
$this->add_render_attribute( 'search', 'type', 'text' );
$this->add_render_attribute( 'search', 'placeholder', $settings['premium_table_search_placeholder'] );
}
?>
<div <?php echo wp_kses_post( $this->get_render_attribute_string( 'table_wrap' ) ); ?>>
<?php if ( 'yes' === $settings['premium_table_search'] || 'yes' === $settings['premium_table_records'] ) : ?>
<div class="premium-table-filter">
<?php if ( 'yes' === $settings['premium_table_search'] ) : ?>
<div class="premium-table-search-wrap">
<input <?php echo wp_kses_post( $this->get_render_attribute_string( 'search' ) ); ?>>
</div>
<?php endif; ?>
<?php if ( 'yes' === $settings['premium_table_records'] && 'custom' === $settings['premium_table_data_type'] ) : ?>
<div class="premium-table-records-wrap">
<label class="premium-table-label-records">
<?php echo wp_kses_post( $settings['premium_table_records_label'] ); ?>
</label>
<select class="premium-table-records-box">
<?php
$rows = 0;
foreach ( $settings['premium_table_body_repeater'] as $element ) {
if ( 'row' === $element['premium_table_elem_type'] ) {
$rows++;
if ( 1 === $rows ) {
?>
<option value="1" selected="selected"><?php echo esc_html( __( 'All', 'premium-addons-pro' ) ); ?></option>
<?php } else { ?>
<option value="<?php echo esc_attr( $rows ); ?>"><?php echo wp_kses_post( $rows - 1 ); ?></option>
<?php
}
}
}
?>
</select>
</div>
<?php endif; ?>
</div>
<?php endif; ?>
<table <?php echo wp_kses_post( $this->get_render_attribute_string( 'table' ) ); ?> >
<?php
if ( ! empty( $settings['premium_table_head_repeater'] ) ) :
$this->render_table_head();
endif;
if ( ! empty( $settings['premium_table_body_repeater'] ) ) :
$this->render_table_body();
endif;
?>
</table>
</div>
<?php if ( 'yes' === $settings['pagination'] ) { ?>
<div class="premium-table-pagination">
<ul class="premium-table-pagination-list page-numbers">
<li><a href="#" class="page-numbers prev" data-page="0">«</a></li>
<li><a href="#" class="page-numbers next" data-page="last">»</a></li>
</ul>
</div>
<?php
}
}
/**
* Render Table widget output in the editor.
*
* Written as a Backbone JavaScript template and used to generate the live preview.
*
* @since 1.0.0
* @access protected
*/
protected function content_template() {
?>
<#
view.addRenderAttribute('table_wrap', 'class', 'premium-table-wrap');
if( 'yes' == settings.premium_table_responsive ){
view.addRenderAttribute('table_wrap', 'class', 'premium-table-responsive');
}
if( 'yes' === settings.premium_table_records && 'yes' === settings.premium_table_search ) {
view.addRenderAttribute('table_wrap', 'class', 'premium-table-filter-records');
}
view.addRenderAttribute('table', 'class', 'premium-table');
if( 'yes' === settings.premium_table_search ){
view.addRenderAttribute('table', 'class', 'premium-table-search');
}
if( 'yes' === settings.premium_table_blur){
view.addRenderAttribute('table', 'class', 'premium-table-blur');
}
if( 'yes' === settings.premium_table_sort ){
view.addRenderAttribute('table', 'class', 'premium-table-sort');
}
var tableSettings = {};
tableSettings.sort = 'yes' === settings.premium_table_sort ? true : false;
tableSettings.usNumbers = 'yes' === settings.us_numbers ? true : false;
tableSettings.sortMob = 'yes' === settings.premium_table_sort_mob ? true : false;
tableSettings.search = 'yes' === settings.premium_table_search ? true : false;
tableSettings.records = 'yes' === settings.premium_table_records ? true : false;
tableSettings.dataType = settings.premium_table_data_type;
tableSettings.csvFile = 'file' === settings.premium_table_csv_type ? settings.premium_table_csv.url : settings.premium_table_csv_url;
tableSettings.firstRow = settings.premium_table_csv_first_row;
tableSettings.separator = settings.premium_table_separator;
tableSettings.pagination = settings.pagination;
tableSettings.rows = settings.rows_per_page;
if( 'csv' === settings.premium_table_data_type ) {
tableSettings.id = view.getID();
tableSettings.reload = settings.reload;
}
view.addRenderAttribute('table', 'data-settings', JSON.stringify(tableSettings));
if( 'yes' === settings.premium_table_search ) {
view.addRenderAttribute('search', 'class', 'premium-table-search-field' );
view.addRenderAttribute('search', 'type', 'text' );
view.addRenderAttribute('search', 'placeholder', settings.premium_table_search_placeholder );
}
function renderTableHead() {
var head = '';
view.addRenderAttribute('table_head', 'class', 'premium-table-head');
view.addRenderAttribute('table_row', 'class', 'premium-table-row');
#>
<thead {{{ view.getRenderAttributeString('table_head') }}}>
<tr {{{ view.getRenderAttributeString('table_row') }}}>
<#
if( 'custom' == settings.premium_table_data_type ) {
_.each( settings.premium_table_head_repeater, function( headCell, index ) {
var htmlTag = 'span',
headCellText = view.getRepeaterSettingKey('premium_table_text', 'premium_table_head_repeater', index);
if( 'yes' == headCell.head_link_switcher ) {
htmlTag = 'a';
if( 'url' === headCell.head_link_selection ) {
view.addRenderAttribute( 'head-text-' + index, 'href', headCell.head_link.url );
} else {
view.addRenderAttribute( 'head-text-' + index, 'href', headCell.head_existing_link );
}
}
view.addRenderAttribute('head-cell-' + index , 'class', 'premium-table-cell');
view.addRenderAttribute('head-cell-' + index , 'class', 'elementor-repeater-item-' + headCell._id );
view.addRenderAttribute('head-text-' + index, 'class', 'premium-table-text');
if( 'top' === headCell.premium_table_cell_icon_align ) {
view.addRenderAttribute('head-text-' + index, 'class', 'premium-table-cell-top');
}
view.addRenderAttribute(headCellText, 'class', 'premium-table-inner');
view.addInlineEditingAttributes(headCellText, 'basic');
if( headCell.premium_table_cell_span > 1 ){
view.addRenderAttribute('head-cell-' + index, 'colspan', headCell.premium_table_cell_span);
}
if( headCell.premium_table_cell_row_span > 1 ){
view.addRenderAttribute('head-cell-' + index, 'rowspan', headCell.premium_table_cell_row_span);
}
#>
<th {{{ view.getRenderAttributeString( 'head-cell-' + index ) }}}>
<{{{htmlTag}}} {{{ view.getRenderAttributeString( 'head-text-' + index ) }}}>
<# if( '' != headCell.premium_table_cell_icon || '' != headCell.premium_table_cell_icon_img.url || '' != headCell.lottie_url ){
var headIconType = headCell.premium_table_icon_selector;
view.addRenderAttribute('cell-icon-' + index , 'class', 'premium-table-cell-icon-' + headCell.premium_table_cell_icon_align);
view.addRenderAttribute('head-text-' + index, 'class', 'premium-table-text');
#>
<span {{{ view.getRenderAttributeString( 'cell-icon-' + index ) }}}>
<# if( headIconType === 'font-awesome-icon' ){ #>
<i class="{{ headCell.premium_table_cell_icon }}"></i>
<# } else if( headIconType === 'custom-image' ) { #>
<img src="{{ headCell.premium_table_cell_icon_img.url }}">
<# } else {
view.addRenderAttribute( 'head_lottie_' + index, 'class', [ 'premium-table-head-lottie', 'premium-lottie-animation' ] );
view.addRenderAttribute( 'head_lottie_' + index, 'data-lottie-url', headCell.lottie_url );
view.addRenderAttribute( 'head_lottie_' + index, 'data-lottie-loop', headCell.lottie_loop );
view.addRenderAttribute( 'head_lottie_' + index, 'data-lottie-reverse', headCell.lottie_reverse );
#>
<div {{{ view.getRenderAttributeString( 'head_lottie_' + index ) }}}></div>
<# } #>
</span>
<# } #>
<span {{{ view.getRenderAttributeString( headCellText ) }}}>{{{ headCell.premium_table_text }}}</span>
<# if ( 'yes' === settings.premium_table_sort ) { #>
<span class="premium-table-sort-icon premium-icon-sort fa fa-sort"></span>
<span class="premium-table-sort-icon premium-icon-sort-up fa fa-sort-up"></span>
<span class="premium-table-sort-icon premium-icon-sort-down fa fa-sort-down"></span>
<# } #>
</{{{htmlTag}}}>
</th>
<#
} )
}
#>
</tr>
</thead>
<# }
function isFirstElemRow() {
if ( 'row' === settings.premium_table_body_repeater[0].premium_table_elem_type )
return false;
return true;
}
function renderTableBody(){
var counter = 1,
cellCounter = 0;
rowCount = settings.premium_table_body_repeater.length;
view.addRenderAttribute('table_body', 'class', 'premium-table-body');
view.addRenderAttribute('table_row', 'class', 'premium-table-row');
#>
<tbody {{{ view.getRenderAttributeString('table_body') }}}>
<# if( isFirstElemRow() ) { #>
<tr {{{ view.getRenderAttributeString('table_row') }}}>
<# } #>
<#
_.each( settings.premium_table_body_repeater, function( bodyCell, index ) {
var htmlTag = 'span',
bodyCellText = view.getRepeaterSettingKey('premium_table_text', 'premium_table_body_repeater', index);
if( 'yes' == bodyCell.premium_table_link_switcher ) {
htmlTag = 'a';
if( 'url' === bodyCell.premium_table_link_selection ) {
view.addRenderAttribute('body-cell-text-' + counter, 'href', bodyCell.premium_table_link.url);
} else {
view.addRenderAttribute('body-cell-text-' + counter, 'href', bodyCell.premium_table_existing_link);
}
}
if( 'cell' == bodyCell.premium_table_elem_type ) {
view.addRenderAttribute('body-cell-' + counter , 'class', 'premium-table-cell');
view.addRenderAttribute('body-cell-' + counter , 'class', 'elementor-repeater-item-' + bodyCell._id);
view.addRenderAttribute('body-cell-text-' + counter, 'class', 'premium-table-text');
if( 'top' == bodyCell.premium_table_cell_icon_align ){
view.addRenderAttribute('body-cell-text-' + counter, 'class', 'premium-table-cell-top');
}
view.addRenderAttribute(bodyCellText, 'class', 'premium-table-inner');
view.addInlineEditingAttributes(bodyCellText, 'basic');
if( bodyCell.premium_table_cell_span > 1 ){
view.addRenderAttribute('body-cell-' + counter, 'colspan', bodyCell.premium_table_cell_span);
}
if( bodyCell.premium_table_cell_row_span > 1 ){
view.addRenderAttribute('body-cell-' + counter, 'rowspan', bodyCell.premium_table_cell_row_span);
}
#>
<{{{bodyCell.premium_table_cell_type}}} {{{ view.getRenderAttributeString('body-cell-' + counter) }}}>
<{{{htmlTag}}} {{{ view.getRenderAttributeString('body-cell-text-' + counter) }}} >
<# if( '' != bodyCell.premium_table_cell_icon || '' != bodyCell.premium_table_cell_icon_img.url || '' != bodyCell.lottie_url ) {
var bodyIconType = bodyCell.premium_table_icon_selector;
view.addRenderAttribute('cell-icon-' + counter , 'class', 'premium-table-cell-icon-' + bodyCell.premium_table_cell_icon_align);
#>
<span {{{ view.getRenderAttributeString('cell-icon-' + counter) }}}>
<# if( bodyIconType === 'font-awesome-icon' ){ #>
<i class="{{ bodyCell.premium_table_cell_icon }}"></i>
<# } else if( 'custom-image' === bodyIconType ) { #>
<img src="{{ bodyCell.premium_table_cell_icon_img.url }}">
<# } else{
view.addRenderAttribute( 'body_lottie_' + index, 'class', [ 'premium-table-body-lottie', 'premium-lottie-animation' ] );
view.addRenderAttribute( 'body_lottie_' + index, 'data-lottie-url', bodyCell.lottie_url );
view.addRenderAttribute( 'body_lottie_' + index, 'data-lottie-loop', bodyCell.lottie_loop );
view.addRenderAttribute( 'body_lottie_' + index, 'data-lottie-reverse', bodyCell.lottie_reverse );
#>
<div {{{ view.getRenderAttributeString( 'body_lottie_' + index ) }}}></div>
<# } #>
</span>
<# } #>
<span {{{ view.getRenderAttributeString(bodyCellText) }}}> {{{bodyCell.premium_table_text}}}</span>
</span>
</{{{htmlTag}}}>
</{{{bodyCell.premium_table_cell_type}}}>
<# } else {
view.addRenderAttribute( 'body-row-' + counter, 'class', 'premium-table-row' );
view.addRenderAttribute( 'body-row-' + counter, 'class', 'elementor-repeater-item-' + bodyCell._id );
if ( counter > 1 && counter < rowCount ) { #>
</tr><tr {{{ view.getRenderAttributeString( 'body-row-' + counter ) }}}>
<# } else if ( counter === 1 && false === isFirstElemRow() ) { #>
<tr {{{ view.getRenderAttributeString( 'body-row-' + counter ) }}}>
<# }
cellCounter = 0;
}
counter++;
})
#>
<# }
#>
<div {{{ view.getRenderAttributeString('table_wrap') }}}>
<div class="premium-table-filter">
<# if( 'yes' == settings.premium_table_search ) { #>
<div class="premium-table-search-wrap">
<input {{{ view.getRenderAttributeString('search') }}}>
</div>
<# } #>
<# if( 'yes' == settings.premium_table_records && 'custom' === settings.premium_table_data_type ) { #>
<div class="premium-table-records-wrap">
<label class="premium-table-label-records">{{{ settings.premium_table_records_label }}}</label>
<select class="premium-table-records-box">
<#
var rows = 0;
_.each( settings.premium_table_body_repeater, function( element, index ) {
if( 'row' === element.premium_table_elem_type ) {
rows++;
if( 1 === rows ) { #>
<option value="1" selected="selected"><?php echo esc_html( __( 'All', 'premium-addons-pro' ) ); ?></option>
<# } else { #>
<option value="{{rows}}">{{{ rows - 1 }}}</option>
<# }
}
} )
#>
</select>
</div>
<# } #>
</div>
<table {{{ view.getRenderAttributeString('table') }}}>
<# if( '' != settings.premium_table_head_repeater )
renderTableHead();
if( '' != settings.premium_table_body_repeater )
renderTableBody();
#>
</table>
</div>
<# if ( settings.pagination === 'yes' ) { #>
<div class="premium-table-pagination">
<ul class="premium-table-pagination-list page-numbers">
<li><a href="#" class="page-numbers prev" data-page="0">«</a></li>
<li><a href="#" class="page-numbers next" data-page="last">»</a></li>
</ul>
</div>
<# } #>
<?php
}
}