<?php
//Register Counter Widget
ct_add_custom_widget(
array(
'name' => 'ct_counter',
'title' => esc_html__('Case Counter', 'itfirm'),
'icon' => 'eicon-counter-circle',
'categories' => array(Case_Theme_Core::CT_CATEGORY_NAME),
'scripts' => array(
'elementor-waypoints',
'jquery-numerator',
'ct-counter-widget-js',
'ct-inline-css-js',
),
'params' => array(
'sections' => array(
array(
'name' => 'layout_section',
'label' => esc_html__('Layout', 'itfirm' ),
'tab' => \Elementor\Controls_Manager::TAB_LAYOUT,
'controls' => array(
array(
'name' => 'layout',
'label' => esc_html__('Templates', 'itfirm' ),
'type' => Case_Theme_Core::LAYOUT_CONTROL,
'prefix_class' => 'ct-counter-layout',
'default' => '1',
'options' => [
'1' => [
'label' => esc_html__('Layout 1', 'itfirm' ),
'image' => get_template_directory_uri() . '/elementor/templates/widgets/ct_counter/layout-image/layout1.jpg'
],
'2' => [
'label' => esc_html__('Layout 2', 'itfirm' ),
'image' => get_template_directory_uri() . '/elementor/templates/widgets/ct_counter/layout-image/layout2.jpg'
],
],
),
),
),
array(
'name' => 'section_counter',
'label' => esc_html__('Counter', 'itfirm'),
'tab' => \Elementor\Controls_Manager::TAB_CONTENT,
'controls' => array(
array(
'name' => 'style_l1',
'label' => esc_html__('Style', 'itfirm' ),
'type' => \Elementor\Controls_Manager::SELECT,
'options' => [
'style1' => 'Style 1',
'style2' => 'Style 2',
'style3' => 'Style 3',
'style4' => 'Style 4',
],
'default' => 'style1',
'condition' => [
'layout' => '1',
],
),
array(
'name' => 'style_l2',
'label' => esc_html__('Style', 'itfirm' ),
'type' => \Elementor\Controls_Manager::SELECT,
'options' => [
'style1' => 'Style 1',
'style2' => 'Style 2',
],
'default' => 'style1',
'condition' => [
'layout' => '2',
],
),
array(
'name' => 'ct_icon_type',
'label' => esc_html__('Icon Type', 'itfirm' ),
'type' => \Elementor\Controls_Manager::SELECT,
'options' => [
'icon' => 'Icon',
'image' => 'Image',
],
'default' => 'icon',
),
array(
'name' => 'counter_icon',
'label' => esc_html__('Icon', 'itfirm' ),
'type' => \Elementor\Controls_Manager::ICONS,
'fa4compatibility' => 'icon',
'condition' => [
'ct_icon_type' => 'icon',
],
),
array(
'name' => 'icon_image',
'label' => esc_html__( 'Icon Image', 'itfirm' ),
'type' => \Elementor\Controls_Manager::MEDIA,
'description' => esc_html__('Select image icon.', 'itfirm'),
'condition' => [
'ct_icon_type' => 'image',
],
),
array(
'name' => 'starting_number',
'label' => esc_html__('Starting Number', 'itfirm'),
'type' => \Elementor\Controls_Manager::NUMBER,
'default' => 1,
),
array(
'name' => 'ending_number',
'label' => esc_html__('Ending Number', 'itfirm'),
'type' => \Elementor\Controls_Manager::NUMBER,
'default' => 100,
),
array(
'name' => 'prefix',
'label' => esc_html__('Number Prefix', 'itfirm'),
'type' => \Elementor\Controls_Manager::TEXT,
'default' => '',
),
array(
'name' => 'suffix',
'label' => esc_html__('Number Suffix', 'itfirm'),
'type' => \Elementor\Controls_Manager::TEXT,
'default' => '',
),
array(
'name' => 'duration',
'label' => esc_html__('Animation Duration', 'itfirm'),
'type' => \Elementor\Controls_Manager::NUMBER,
'default' => 2000,
'min' => 100,
'step' => 100,
),
array(
'name' => 'thousand_separator',
'label' => esc_html__('Thousand Separator', 'itfirm'),
'type' => \Elementor\Controls_Manager::SWITCHER,
'default' => 'false',
),
array(
'name' => 'thousand_separator_char',
'label' => esc_html__('Separator', 'itfirm'),
'type' => \Elementor\Controls_Manager::SELECT,
'condition' => [
'thousand_separator' => 'true',
],
'options' => [
',' => 'Default',
'.' => 'Dot',
' ' => 'Space',
'' => 'None',
],
'default' => ',',
),
array(
'name' => 'title',
'label' => esc_html__('Title', 'itfirm'),
'type' => \Elementor\Controls_Manager::TEXT,
'label_block' => true,
),
array(
'name' => 'ct_animate',
'label' => esc_html__('Case Animate', 'itfirm' ),
'type' => \Elementor\Controls_Manager::SELECT,
'options' => itfirm_animate(),
'default' => '',
),
array(
'name' => 'ct_animate_delay',
'label' => esc_html__('Animate Delay', 'itfirm' ),
'type' => \Elementor\Controls_Manager::TEXT,
'default' => '0',
'description' => 'Enter number. Default 0ms',
),
),
),
array(
'name' => 'section_icon',
'label' => esc_html__('Icon', 'itfirm' ),
'tab' => \Elementor\Controls_Manager::TAB_STYLE,
'controls' => array(
array(
'name' => 'icon_color',
'label' => esc_html__('Color', 'itfirm' ),
'type' => \Elementor\Controls_Manager::COLOR,
'selectors' => [
'{{WRAPPER}} .ct-counter .ct-counter-icon i' => 'color: {{VALUE}};',
],
),
array(
'name' => 'icon_color_gr',
'label' => esc_html__('Color Gradient', 'itfirm' ),
'type' => \Elementor\Controls_Manager::COLOR,
'condition' => [
'layout' => '2',
],
),
array(
'name' => 'icon_typography',
'type' => \Elementor\Group_Control_Typography::get_type(),
'control_type' => 'group',
'selector' => '{{WRAPPER}} .ct-counter .ct-counter-icon i',
),
array(
'name' => 'icon_box_color',
'label' => esc_html__('Box Color', 'itfirm' ),
'type' => \Elementor\Controls_Manager::COLOR,
'selectors' => [
'{{WRAPPER}} .ct-counter-layout2 .ct-counter-hexagon.hexagon-main::before, {{WRAPPER}} .ct-counter-layout2 .ct-counter-hexagon.hexagon-bg::before' => 'background: {{VALUE}};',
],
'condition' => [
'layout' => '2',
],
),
),
),
array(
'name' => 'section_number',
'label' => esc_html__('Number', 'itfirm' ),
'tab' => \Elementor\Controls_Manager::TAB_STYLE,
'controls' => array(
array(
'name' => 'number_color',
'label' => esc_html__('Color', 'itfirm' ),
'type' => \Elementor\Controls_Manager::COLOR,
'selectors' => [
'{{WRAPPER}} .ct-counter .ct-counter-number-value' => 'color: {{VALUE}};',
],
),
array(
'name' => 'number_typography',
'type' => \Elementor\Group_Control_Typography::get_type(),
'control_type' => 'group',
'selector' => '{{WRAPPER}} .ct-counter .ct-counter-number-value',
),
array(
'name' => 'prefix_color',
'label' => esc_html__('Prefix + Suffix Color', 'itfirm' ),
'type' => \Elementor\Controls_Manager::COLOR,
'selectors' => [
'{{WRAPPER}} .ct-counter-number .ct-counter-number-prefix' => 'color: {{VALUE}};',
'{{WRAPPER}} .ct-counter-number .ct-counter-number-suffix' => 'color: {{VALUE}};',
],
),
array(
'name' => 'suffix_typography',
'type' => \Elementor\Group_Control_Typography::get_type(),
'control_type' => 'group',
'label' => esc_html__('Prefix + Suffix Typography', 'itfirm' ),
'selector' => '{{WRAPPER}} .ct-counter .ct-counter-number .ct-counter-number-suffix, {{WRAPPER}} .ct-counter .ct-counter-number .ct-counter-number-prefix',
),
array(
'name' => 'number_space_Top',
'label' => esc_html__('Top Spacer', 'itfirm' ),
'type' => \Elementor\Controls_Manager::SLIDER,
'control_type' => 'responsive',
'size_units' => [ 'px' ],
'default' => [
'size' => 0,
],
'range' => [
'px' => [
'min' => 0,
'max' => 300,
],
],
'selectors' => [
'{{WRAPPER}} .ct-counter-layout1 .ct-counter-number' => 'margin-top: {{SIZE}}{{UNIT}};',
],
'condition' => [
'layout' => '1',
],
),
),
),
array(
'name' => 'section_title',
'label' => esc_html__('Title', 'itfirm' ),
'tab' => \Elementor\Controls_Manager::TAB_STYLE,
'controls' => array(
array(
'name' => 'title_color',
'label' => esc_html__('Color', 'itfirm' ),
'type' => \Elementor\Controls_Manager::COLOR,
'selectors' => [
'{{WRAPPER}} .ct-counter-title' => 'color: {{VALUE}};',
],
),
array(
'name' => 'typography_title',
'type' => \Elementor\Group_Control_Typography::get_type(),
'control_type' => 'group',
'selector' => '{{WRAPPER}} .ct-counter-title',
),
array(
'name' => 'title_space_top',
'label' => esc_html__('Top Spacer', 'itfirm' ),
'type' => \Elementor\Controls_Manager::SLIDER,
'control_type' => 'responsive',
'size_units' => [ 'px' ],
'default' => [
'size' => 0,
],
'range' => [
'px' => [
'min' => 0,
'max' => 300,
],
],
'selectors' => [
'{{WRAPPER}} .ct-counter .ct-counter-title' => 'margin-top: {{SIZE}}{{UNIT}};',
],
),
array(
'name' => 'title_space_bottom',
'label' => esc_html__('Bottom Spacer', 'itfirm' ),
'type' => \Elementor\Controls_Manager::SLIDER,
'control_type' => 'responsive',
'size_units' => [ 'px' ],
'default' => [
'size' => 0,
],
'range' => [
'px' => [
'min' => 0,
'max' => 300,
],
],
'selectors' => [
'{{WRAPPER}} .ct-counter .ct-counter-title' => 'margin-bottom: {{SIZE}}{{UNIT}};',
],
),
),
),
),
),
),
get_template_directory() . '/elementor/core/widgets/'
);