PluginProbe
King Addons for Elementor – 80+ Elementor Widgets, 4 000+ Elementor Templates, WooCommerce, Mega Menu, Popup Builder / 51.1.65
King Addons for Elementor – 80+ Elementor Widgets, 4 000+ Elementor Templates, WooCommerce, Mega Menu, Popup Builder v51.1.65
51.1.83 51.1.82 51.1.81 51.1.79 51.1.78 51.1.77 51.1.76 51.1.74 51.1.75 51.1.65 51.1.64 51.1.63 trunk 51.1.14 51.1.2 51.1.35 51.1.36 51.1.37 51.1.38 51.1.39 51.1.44 51.1.45 51.1.46 51.1.47 51.1.49 All 37 releases
king-addons / includes / controls / Animations / Button_Animations.php

Button_Animations.php in King Addons for Elementor – 80+ Elementor Widgets, 4 000+ Elementor Templates, WooCommerce, Mega Menu, Popup Builder 51.1.65, at includes/controls/Animations/Button_Animations.php

200 lines 12.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace King_Addons\Button_Animations;
4
5 use Elementor\Base_Data_Control;
6
7 if (!defined('ABSPATH')) {
8 exit; // Exit if accessed directly.
9 }
10
11 class Button_Animations extends Base_Data_Control
12 {
13
14 private static ?array $_animations = null;
15
16 public function get_type(): string
17 {
18 return 'king-addons-button-animations';
19 }
20
21 public static function get_animations(): array
22 {
23 // Return early if already set
24 if (null !== self::$_animations) {
25 return self::$_animations;
26 }
27
28 $is_premium = king_addons_freemius()->can_use_premium_code__premium_only();
29
30 $pro_placeholders = [
31 'pro-king-addons-button-berlin' => esc_html__('Berlin + Text (Pro)', 'king-addons'),
32 'pro-king-addons-button-madrid-left' => esc_html__('Madrid Left + Text (Pro)', 'king-addons'),
33 'pro-king-addons-button-madrid-right' => esc_html__('Madrid Right + Text (Pro)', 'king-addons'),
34 'pro-king-addons-button-london-left' => esc_html__('London Left (Pro)', 'king-addons'),
35 'pro-king-addons-button-rome-left' => esc_html__('Rome Left (Pro)', 'king-addons'),
36
37 ];
38 $pro_real = [
39 'king-addons-button-berlin' => esc_html__('Berlin + Text', 'king-addons'),
40 'king-addons-button-madrid-left' => esc_html__('Madrid Left + Text', 'king-addons'),
41 'king-addons-button-madrid-right' => esc_html__('Madrid Right + Text', 'king-addons'),
42 'king-addons-button-london-left' => esc_html__('London Left', 'king-addons'),
43 'king-addons-button-rome-left' => esc_html__('Rome Left', 'king-addons'),
44 ];
45
46 $animation_pro_or_free = $is_premium ? $pro_real : $pro_placeholders;
47
48 // Animations
49 $animations_group = array_merge(
50 $animation_pro_or_free,
51 [
52 'king-addons-button-london-right' => esc_html__('London Right', 'king-addons'),
53 'king-addons-button-rome-right' => esc_html__('Rome Right', 'king-addons'),
54 'king-addons-button-paris' => esc_html__('Paris', 'king-addons'),
55 'king-addons-button-oslo' => esc_html__('Oslo', 'king-addons'),
56 ]
57 );
58
59 // 2D Animations
60 $animations_2d = [
61 'elementor-animation-backward' => esc_html__('Backward', 'king-addons'),
62 'elementor-animation-bob' => esc_html__('Bob', 'king-addons'),
63 'elementor-animation-bounce-in' => esc_html__('Bounce In', 'king-addons'),
64 'elementor-animation-bounce-out' => esc_html__('Bounce Out', 'king-addons'),
65 'elementor-animation-buzz' => esc_html__('Buzz', 'king-addons'),
66 'elementor-animation-buzz-out' => esc_html__('Buzz Out', 'king-addons'),
67 'elementor-animation-float' => esc_html__('Float', 'king-addons'),
68 'elementor-animation-forward' => esc_html__('Forward', 'king-addons'),
69 'elementor-animation-grow' => esc_html__('Grow', 'king-addons'),
70 'elementor-animation-grow-rotate' => esc_html__('Grow Rotate', 'king-addons'),
71 'elementor-animation-hang' => esc_html__('Hang', 'king-addons'),
72 'elementor-animation-pop' => esc_html__('Pop', 'king-addons'),
73 'elementor-animation-pulse' => esc_html__('Pulse', 'king-addons'),
74 'elementor-animation-pulse-grow' => esc_html__('Pulse Grow', 'king-addons'),
75 'elementor-animation-pulse-shrink' => esc_html__('Pulse Shrink', 'king-addons'),
76 'elementor-animation-push' => esc_html__('Push', 'king-addons'),
77 'elementor-animation-rotate' => esc_html__('Rotate', 'king-addons'),
78 'elementor-animation-shrink' => esc_html__('Shrink', 'king-addons'),
79 'elementor-animation-sink' => esc_html__('Sink', 'king-addons'),
80 'elementor-animation-skew' => esc_html__('Skew', 'king-addons'),
81 'elementor-animation-skew-backward' => esc_html__('Skew Backward', 'king-addons'),
82 'elementor-animation-skew-forward' => esc_html__('Skew Forward', 'king-addons'),
83 'elementor-animation-wobble-bottom' => esc_html__('Wobble Bottom', 'king-addons'),
84 'elementor-animation-wobble-horizontal' => esc_html__('Wobble Horizontal', 'king-addons'),
85 'elementor-animation-wobble-skew' => esc_html__('Wobble Skew', 'king-addons'),
86 'elementor-animation-wobble-to-bottom-right' => esc_html__('Wobble To Bottom Right', 'king-addons'),
87 'elementor-animation-wobble-to-top-right' => esc_html__('Wobble To Top Right', 'king-addons'),
88 'elementor-animation-wobble-top' => esc_html__('Wobble Top', 'king-addons'),
89 'elementor-animation-wobble-vertical' => esc_html__('Wobble Vertical', 'king-addons'),
90 ];
91
92 // Background Animations
93 $pro_real_animations_BG = [
94 'king-addons-button-none' => esc_html__('None', 'king-addons'),
95 'king-addons-button-bounce-to-bottom' => esc_html__('Bounce To Bottom', 'king-addons'),
96 'king-addons-button-bounce-to-left' => esc_html__('Bounce To Left', 'king-addons'),
97 'king-addons-button-bounce-to-right' => esc_html__('Bounce To Right', 'king-addons'),
98 'king-addons-button-bounce-to-top' => esc_html__('Bounce To Top', 'king-addons'),
99 'king-addons-button-overline-from-center' => esc_html__('Overline From Center', 'king-addons'),
100 'king-addons-button-overline-from-left' => esc_html__('Overline From Left', 'king-addons'),
101 'king-addons-button-overline-from-right' => esc_html__('Overline From Right', 'king-addons'),
102 'king-addons-button-overline-reveal' => esc_html__('Overline Reveal', 'king-addons'),
103 'king-addons-button-radial-in' => esc_html__('Radial In', 'king-addons'),
104 'king-addons-button-radial-out' => esc_html__('Radial Out', 'king-addons'),
105 'king-addons-button-rectangle-in' => esc_html__('Rectangle In', 'king-addons'),
106 'king-addons-button-rectangle-out' => esc_html__('Rectangle Out', 'king-addons'),
107 'king-addons-button-shutter-in-horizontal' => esc_html__('Shutter In Horizontal', 'king-addons'),
108 'king-addons-button-shutter-in-vertical' => esc_html__('Shutter In Vertical', 'king-addons'),
109 'king-addons-button-shutter-out-horizontal' => esc_html__('Shutter Out Horizontal', 'king-addons'),
110 'king-addons-button-shutter-out-vertical' => esc_html__('Shutter Out Vertical', 'king-addons'),
111 'king-addons-button-sweep-to-bottom' => esc_html__('Sweep To Bottom', 'king-addons'),
112 'king-addons-button-sweep-to-left' => esc_html__('Sweep To Left', 'king-addons'),
113 'king-addons-button-sweep-to-right' => esc_html__('Sweep To Right', 'king-addons'),
114 'king-addons-button-sweep-to-top' => esc_html__('Sweep To top', 'king-addons'),
115 'king-addons-button-underline-from-center' => esc_html__('Underline From Center', 'king-addons'),
116 'king-addons-button-underline-from-left' => esc_html__('Underline From Left', 'king-addons'),
117 'king-addons-button-underline-from-right' => esc_html__('Underline From Right', 'king-addons'),
118 'king-addons-button-underline-reveal' => esc_html__('Underline Reveal', 'king-addons'),
119 ];
120
121 $pro_placeholders_animations_BG = [
122 'king-addons-button-none' => esc_html__('None', 'king-addons'),
123 'king-addons-button-bounce-to-bottom' => esc_html__('Bounce To Bottom', 'king-addons'),
124 'pro-king-addons-button-bounce-to-left' => esc_html__('Bounce To Left (Pro)', 'king-addons'),
125 'pro-king-addons-button-bounce-to-right' => esc_html__('Bounce To Right (Pro)', 'king-addons'),
126 'pro-king-addons-button-bounce-to-top' => esc_html__('Bounce To Top (Pro)', 'king-addons'),
127 'king-addons-button-overline-from-center' => esc_html__('Overline From Center', 'king-addons'),
128 'pro-king-addons-button-overline-from-left' => esc_html__('Overline From Left (Pro)', 'king-addons'),
129 'pro-king-addons-button-overline-from-right' => esc_html__('Overline From Right (Pro)', 'king-addons'),
130 'pro-king-addons-button-overline-reveal' => esc_html__('Overline Reveal (Pro)', 'king-addons'),
131 'king-addons-button-radial-in' => esc_html__('Radial In', 'king-addons'),
132 'pro-king-addons-button-radial-out' => esc_html__('Radial Out (Pro)', 'king-addons'),
133 'king-addons-button-rectangle-in' => esc_html__('Rectangle In', 'king-addons'),
134 'pro-king-addons-button-rectangle-out' => esc_html__('Rectangle Out (Pro)', 'king-addons'),
135 'king-addons-button-shutter-in-horizontal' => esc_html__('Shutter In Horizontal', 'king-addons'),
136 'pro-king-addons-button-shutter-in-vertical' => esc_html__('Shutter In Vertical (Pro)', 'king-addons'),
137 'pro-king-addons-button-shutter-out-horizontal' => esc_html__('Shutter Out Horizontal (Pro)', 'king-addons'),
138 'pro-king-addons-button-shutter-out-vertical' => esc_html__('Shutter Out Vertical (Pro)', 'king-addons'),
139 'pro-king-addons-button-sweep-to-bottom' => esc_html__('Sweep To Bottom (Pro)', 'king-addons'),
140 'pro-king-addons-button-sweep-to-left' => esc_html__('Sweep To Left (Pro)', 'king-addons'),
141 'pro-king-addons-button-sweep-to-right' => esc_html__('Sweep To Right (Pro)', 'king-addons'),
142 'king-addons-button-sweep-to-top' => esc_html__('Sweep To top', 'king-addons'),
143 'king-addons-button-underline-from-center' => esc_html__('Underline From Center', 'king-addons'),
144 'pro-king-addons-button-underline-from-left' => esc_html__('Underline From Left (Pro)', 'king-addons'),
145 'pro-king-addons-button-underline-from-right' => esc_html__('Underline From Right (Pro)', 'king-addons'),
146 'pro-king-addons-button-underline-reveal' => esc_html__('Underline Reveal (Pro)', 'king-addons'),
147 ];
148
149 $animations_bg = $is_premium ? $pro_real_animations_BG : $pro_placeholders_animations_BG;
150
151 self::$_animations = [
152 'Background Animations' => $animations_bg,
153 'Animations' => $animations_group,
154 '2D Animations' => $animations_2d,
155 ];
156
157 return self::$_animations;
158 }
159
160 public function content_template(): void
161 {
162 $control_uid = $this->get_control_uid();
163 ?>
164 <div class="elementor-control-field">
165 <label for="<?php echo esc_attr($control_uid); ?>" class="elementor-control-title">
166 {{{ data.label }}}
167 </label>
168 <div class="elementor-control-input-wrapper">
169 <select id="<?php echo esc_attr($control_uid); ?>" data-setting="{{ data.name }}">
170 <?php foreach (self::get_animations() as $animations_group_name => $animations_group) : ?>
171 <optgroup label="<?php echo esc_attr($animations_group_name); ?>">
172 <?php foreach ($animations_group as $animation_name => $animation_title) : ?>
173 <option value="<?php echo esc_attr($animation_name); ?>">
174 <?php echo esc_html($animation_title); ?>
175 </option>
176 <?php endforeach; ?>
177 </optgroup>
178 <?php endforeach; ?>
179 </select>
180 </div>
181 </div>
182 <# if ( data.description ) { #>
183 <div class="elementor-control-field-description">
184 {{{ data.description }}}
185 </div>
186 <# } #>
187 <?php
188 }
189
190 public static function get_assets($setting): array
191 {
192 if (!$setting || 'none' === $setting || !str_contains($setting, 'elementor-animation')) {
193 return [];
194 }
195
196 return [
197 'styles' => ['e-animation-' . str_replace('elementor-animation-', '', $setting)],
198 ];
199 }
200 }