Elementor Essential Addons - Version 1.0.0

Version Description

Initial stable realese

=

Download this release

Release Info

Developer codetic
Plugin Icon 128x128 Elementor Essential Addons
Version 1.0.0
Comparing to
See all releases

Version 1.0.0

assets/css/essential-addons-elementor.css ADDED
@@ -0,0 +1,1439 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ General Styles : Essential Addons for Elementor Lite;
3
+ */
4
+
5
+ .clearfix::before, .clearfix::after {
6
+ content: " ";
7
+ display: table;
8
+ clear: both;
9
+ }
10
+
11
+ /* Common Styles for slider elements */
12
+
13
+ .eael-testimonial-slider .slick-prev, .eael-testimonial-slider .slick-next,
14
+ .eael-team-slider .slick-prev, .eael-team-slider .slick-next,
15
+ .eael-logo-carousel .slick-prev, .eael-logo-carousel .slick-next,
16
+ .eael-post-carousel .slick-prev, .eael-post-carousel .slick-next,
17
+ .eael-product-carousel .slick-prev, .eael-product-carousel .slick-next {
18
+ border-radius: 3px;
19
+ height: 30px;
20
+ position: absolute;
21
+ text-shadow: none;
22
+ top: calc(50% - 15px);
23
+ width: 30px;
24
+ }
25
+
26
+ .eael-testimonial-slider .slick-prev::before, .eael-testimonial-slider .slick-next::before,
27
+ .eael-logo-carousel .slick-prev::before, .eael-logo-carousel .slick-next::before,
28
+ .eael-team-slider .slick-prev::before, .eael-team-slider .slick-next::before,
29
+ .eael-post-carousel .slick-prev::before, .eael-post-carousel .slick-next::before,
30
+ .eael-product-carousel .slick-prev::before, .eael-product-carousel .slick-next::before {
31
+ font-family: "FontAwesome";
32
+ font-size: 20px;
33
+ opacity: 0.75;
34
+ text-align: center;
35
+ }
36
+
37
+ .eael-testimonial-slider .slick-prev:hover::before, .eael-testimonial-slider .slick-next:hover::before,
38
+ .eael-logo-carousel .slick-prev:hover::before, .eael-logo-carousel .slick-next:hover::before,
39
+ .eael-team-slider .slick-prev:hover::before, .eael-team-slider .slick-next:hover::before,
40
+ .eael-post-carousel .slick-prev:hover::before, .eael-post-carousel .slick-next:hover::before,
41
+ .eael-product-carousel .slick-prev:hover::before, .eael-product-carousel .slick-next:hover::before {
42
+ opacity: 1;
43
+ }
44
+
45
+ .eael-testimonial-slider .slick-prev::before,
46
+ .eael-logo-carousel .slick-prev::before,
47
+ .eael-team-slider .slick-prev::before,
48
+ .eael-post-carousel .slick-prev::before,
49
+ .eael-product-carousel .slick-prev::before {
50
+ content: "\f104";
51
+ padding-right: 3px;
52
+ }
53
+
54
+ .eael-testimonial-slider .slick-next::before,
55
+ .eael-logo-carousel .slick-next::before,
56
+ .eael-team-slider .slick-next::before,
57
+ .eael-post-carousel .slick-next::before,
58
+ .eael-product-carousel .slick-next::before {
59
+ content: "\f105";
60
+ padding-left: 4px;
61
+ }
62
+
63
+ .eael-testimonial-slider .slick-dots li button::before,
64
+ .eael-logo-carousel .slick-dots li button::before,
65
+ .eael-team-slider .slick-dots li button::before,
66
+ .eael-post-carousel .slick-dots li button::before,
67
+ .eael-product-carousel .slick-dots li button::before {
68
+ font-size: 12px;
69
+ opacity: 0.5;
70
+ }
71
+
72
+ .eael-testimonial-slider .slick-dots li.slick-active button::before,
73
+ .eael-logo-carousel .slick-dots li.slick-active button::before,
74
+ .eael-team-slider .slick-dots li.slick-active button::before,
75
+ .eael-post-carousel .slick-dots li.slick-active button::before,
76
+ .eael-product-carousel .slick-dots li.slick-active button::before {
77
+ font-size: 18px;
78
+ opacity: 1;
79
+ }
80
+
81
+ .eael-testimonial-slider .slick-prev,
82
+ .eael-team-slider .slick-prev,
83
+ .eael-logo-carousel .slick-prev,
84
+ .eael-post-carousel .slick-prev,
85
+ .eael-product-carousel .slick-prev {
86
+ left: -50px;
87
+ }
88
+
89
+ .eael-testimonial-slider .slick-next,
90
+ .eael-team-slider .slick-next,
91
+ .eael-logo-carousel .slick-next,
92
+ .eael-post-carousel .slick-next,
93
+ .eael-product-carousel .slick-next {
94
+ right: -50px;
95
+ }
96
+
97
+
98
+ .eael-testimonial-slider.nav-top-left .slick-prev,
99
+ .eael-team-slider.nav-top-left .slick-prev,
100
+ .eael-logo-carousel.nav-top-left .slick-prev,
101
+ .eael-post-carousel.nav-top-left .slick-prev,
102
+ .eael-product-carousel.nav-top-left .slick-prev {
103
+ left: 10px;
104
+ top: 20px;
105
+ }
106
+
107
+ .eael-testimonial-slider.nav-top-left .slick-next,
108
+ .eael-team-slider.nav-top-left .slick-next,
109
+ .eael-logo-carousel.nav-top-left .slick-next,
110
+ .eael-post-carousel.nav-top-left .slick-next,
111
+ .eael-product-carousel.nav-top-left .slick-next {
112
+ left: 45px;
113
+ top: 20px;
114
+ }
115
+
116
+ .eael-testimonial-slider.nav-top-right .slick-prev,
117
+ .eael-team-slider.nav-top-right .slick-prev,
118
+ .eael-logo-carousel.nav-top-right .slick-prev,
119
+ .eael-post-carousel.nav-top-right .slick-prev,
120
+ .eael-product-carousel.nav-top-right .slick-prev {
121
+ left: auto;
122
+ right: 45px;
123
+ top: 20px;
124
+ }
125
+
126
+ .eael-testimonial-slider.nav-top-right .slick-next,
127
+ .eael-team-slider.nav-top-right .slick-next,
128
+ .eael-logo-carousel.nav-top-right .slick-next,
129
+ .eael-post-carousel.nav-top-right .slick-next,
130
+ .eael-product-carousel.nav-top-right .slick-next {
131
+ left: auto;
132
+ right: 10px;
133
+ top: 20px;
134
+ }
135
+
136
+ .eael-testimonial-slider.nav-top-left, .eael-testimonial-slider.nav-top-right,
137
+ .eael-team-slider.nav-top-left, .eael-team-slider.nav-top-right,
138
+ .eael-logo-carousel.nav-top-left, .eael-logo-carousel.nav-top-right,
139
+ .eael-post-carousel.nav-top-left, .eael-post-carousel.nav-top-right,
140
+ .eael-product-carousel.nav-top-left, .eael-product-carousel.nav-top-right {
141
+ padding-top: 40px;
142
+ }
143
+
144
+ .eael-testimonial-slider .slick-dots,
145
+ .eael-team-slider .slick-dots,
146
+ .eael-logo-carousel .slick-dots,
147
+ .eael-post-carousel .slick-dots,
148
+ .eael-product-carousel .slick-dots {
149
+ bottom: -40px;
150
+ }
151
+
152
+ .eael-testimonial-slider .slick-dotted.slick-slider,
153
+ .eael-team-slider .slick-dotted.slick-slider,
154
+ .eael-logo-carousel .slick-dotted.slick-slider,
155
+ .eael-post-carousel .slick-dotted.slick-slider,
156
+ .eael-product-carousel .slick-dotted.slick-slider{
157
+ margin-bottom: 30px;
158
+ }
159
+
160
+ /*
161
+ ==== FANCY TEXT STYLES ======
162
+ */
163
+ .eael-fancy-text-strings {
164
+ display:inline-block;
165
+ }
166
+
167
+ .morphext > .animated {
168
+ display: inline-block;
169
+ }
170
+
171
+ .typed-cursor {
172
+ opacity: 1;
173
+ -webkit-animation: blink_cursor 0.7s infinite;
174
+ -moz-animation: blink_cursor 0.7s infinite;
175
+ animation: blink_cursor 0.7s infinite;
176
+ }
177
+ @keyframes blink_cursor{
178
+ 0% { opacity:1; }
179
+ 50% { opacity:0; }
180
+ 100% { opacity:1; }
181
+ }
182
+ @-webkit-keyframes blink_cursor{
183
+ 0% { opacity:1; }
184
+ 50% { opacity:0; }
185
+ 100% { opacity:1; }
186
+ }
187
+ @-moz-keyframes blink_cursor{
188
+ 0% { opacity:1; }
189
+ 50% { opacity:0; }
190
+ 100% { opacity:1; }
191
+ }
192
+
193
+
194
+
195
+ /* Creative Button styles */
196
+
197
+ .eael-creative-button-align-center {
198
+ text-align: center;
199
+ }
200
+
201
+ .eael-creative-button-align-center .eael-creative-button {
202
+ float: none;
203
+ display: inline-block;
204
+ }
205
+
206
+ .eael-creative-button-align-left .eael-creative-button {
207
+ float: left;
208
+ }
209
+ .eael-creative-button-align-right .eael-creative-button {
210
+ float: right;
211
+ }
212
+ .eael-creative-button-align-justify .eael-creative-button {
213
+ display: block;
214
+ float: none;
215
+ }
216
+
217
+ .eael-creative-button {
218
+ float: left;
219
+ min-width: 150px;
220
+ text-align: center;
221
+ vertical-align: middle;
222
+ position: relative;
223
+ z-index: 1;
224
+ -webkit-backface-visibility: hidden;
225
+ -moz-osx-font-smoothing: grayscale;
226
+ }
227
+ .eael-creative-button:focus {
228
+ outline: none;
229
+ }
230
+ .eael-creative-button > span {
231
+ vertical-align: middle;
232
+ }
233
+
234
+ .eael-creative-button {
235
+ border-radius: 2px;
236
+ padding: 20px 30px;
237
+ font-size: 16px;
238
+ line-height: 1;
239
+ }
240
+
241
+ /* Individual eael-creative-button styles */
242
+
243
+ /* Winona */
244
+ .eael-creative-button--winona {
245
+ overflow: hidden;
246
+ padding: 0!important;
247
+ -webkit-transition: border-color 0.3s, background-color 0.3s;
248
+ transition: border-color 0.3s, background-color 0.3s;
249
+ -webkit-transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1);
250
+ transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1);
251
+ }
252
+ .eael-creative-button--winona::after {
253
+ content: attr(data-text);
254
+ position: absolute;
255
+ width: 100%;
256
+ height: 100%;
257
+ top: 0;
258
+ left: 0;
259
+ opacity: 0;
260
+ -webkit-transform: translate3d(0, 25%, 0);
261
+ transform: translate3d(0, 25%, 0);
262
+ }
263
+ .eael-creative-button--winona > span {
264
+ display: block;
265
+ }
266
+ .eael-creative-button--winona::after,
267
+ .eael-creative-button--winona > span {
268
+ padding: 1em 2em;
269
+ -webkit-transition: -webkit-transform 0.3s, opacity 0.3s;
270
+ transition: transform 0.3s, opacity 0.3s;
271
+ -webkit-transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1);
272
+ transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1);
273
+ }
274
+ .eael-creative-button--winona:hover::after {
275
+ opacity: 1;
276
+ -webkit-transform: translate3d(0, 0, 0);
277
+ transform: translate3d(0, 0, 0);
278
+ }
279
+ .eael-creative-button--winona:hover > span {
280
+ opacity: 0;
281
+ -webkit-transform: translate3d(0, -25%, 0);
282
+ transform: translate3d(0, -25%, 0);
283
+ }
284
+
285
+ /* Ujarak */
286
+ .eael-creative-button--ujarak {
287
+ -webkit-transition: border-color 0.4s, color 0.4s;
288
+ transition: border-color 0.4s, color 0.4s;
289
+ }
290
+
291
+ .eael-creative-button--ujarak::before {
292
+ content: '';
293
+ position: absolute;
294
+ top: 0;
295
+ left: 0;
296
+ width: 100%;
297
+ height: 100%;
298
+ z-index: -1;
299
+ opacity: 0;
300
+ -webkit-transform: scale3d(0.7, 1, 1);
301
+ transform: scale3d(0.7, 1, 1);
302
+ -webkit-transition: -webkit-transform 0.4s, opacity 0.4s;
303
+ transition: transform 0.4s, opacity 0.4s;
304
+ -webkit-transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1);
305
+ transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1);
306
+ }
307
+
308
+ .eael-creative-button--ujarak,
309
+ .eael-creative-button--ujarak::before {
310
+ -webkit-transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1);
311
+ transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1);
312
+ }
313
+
314
+ .eael-creative-button--ujarak:hover::before {
315
+ opacity: 1;
316
+ -webkit-transform: translate3d(0, 0, 0);
317
+ transform: translate3d(0, 0, 0);
318
+ }
319
+
320
+ /* Wayra */
321
+ .eael-creative-button--wayra {
322
+ overflow: hidden;
323
+ -webkit-transition: border-color 0.3s, color 0.3s;
324
+ transition: border-color 0.3s, color 0.3s;
325
+ -webkit-transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1);
326
+ transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1);
327
+ }
328
+ .eael-creative-button--wayra::before {
329
+ content: '';
330
+ position: absolute;
331
+ top: 0;
332
+ left: 0;
333
+ width: 150%;
334
+ height: 100%;
335
+ z-index: -1;
336
+ -webkit-transform: rotate3d(0, 0, 1, -45deg) translate3d(0, -3em, 0);
337
+ transform: rotate3d(0, 0, 1, -45deg) translate3d(0, -3em, 0);
338
+ -webkit-transform-origin: 0% 100%;
339
+ transform-origin: 0% 100%;
340
+ -webkit-transition: -webkit-transform 0.3s, opacity 0.3s, background-color 0.3s;
341
+ transition: transform 0.3s, opacity 0.3s, background-color 0.3s;
342
+ }
343
+
344
+ .eael-creative-button--wayra:hover::before {
345
+ opacity: 1;
346
+ -webkit-transform: rotate3d(0, 0, 1, 0deg);
347
+ transform: rotate3d(0, 0, 1, 0deg);
348
+ -webkit-transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1);
349
+ transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1);
350
+ }
351
+
352
+ /* Tamaya */
353
+
354
+ .eael-creative-button--tamaya {
355
+ overflow: hidden;
356
+ }
357
+
358
+ .eael-creative-button--tamaya::before,
359
+ .eael-creative-button--tamaya::after {
360
+ content: attr(data-text);
361
+ position: absolute;
362
+ width: 100%;
363
+ height: 50%;
364
+ left: 0;
365
+ overflow: hidden;
366
+ -webkit-transition: -webkit-transform 0.3s;
367
+ transition: transform 0.3s;
368
+ -webkit-transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1);
369
+ transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1);
370
+ }
371
+
372
+ .eael-creative-button--tamaya::before {
373
+ top: 0;
374
+ padding: 20px 30px;
375
+ }
376
+
377
+ .eael-creative-button--tamaya::after {
378
+ bottom: 0;
379
+ line-height: 0;
380
+ }
381
+ .eael-creative-button--tamaya:hover::after {
382
+ bottom: -1px;
383
+ }
384
+ .eael-creative-button--tamaya > span {
385
+ display: block;
386
+ -webkit-transform: scale3d(0.2, 0.2, 1);
387
+ transform: scale3d(0.2, 0.2, 1);
388
+ opacity: 0;
389
+ -webkit-transition: -webkit-transform 0.3s, opacity 0.3s;
390
+ transition: transform 0.3s, opacity 0.3s;
391
+ -webkit-transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1);
392
+ transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1);
393
+ }
394
+ .eael-creative-button--tamaya:hover::before {
395
+ -webkit-transform: translate3d(0, -100%, 0);
396
+ transform: translate3d(0, -100%, 0);
397
+ }
398
+ .eael-creative-button--tamaya:hover::after {
399
+ -webkit-transform: translate3d(0, 100%, 0);
400
+ transform: translate3d(0, 100%, 0);
401
+ }
402
+ .eael-creative-button--tamaya:hover > span {
403
+ opacity: 1;
404
+ -webkit-transform: scale3d(1, 1, 1);
405
+ transform: scale3d(1, 1, 1);
406
+ }
407
+
408
+ /* Rayen */
409
+ .eael-creative-button--rayen {
410
+ overflow: hidden;
411
+ padding: 0!important;
412
+ }
413
+
414
+ .eael-creative-button--rayen::before {
415
+ content: attr(data-text);
416
+ position: absolute;
417
+ top: 0;
418
+ left: 0;
419
+ width: 100%;
420
+ height: 100%;
421
+ -webkit-transform: translate3d(-100%, 0, 0);
422
+ transform: translate3d(-100%, 0, 0);
423
+ }
424
+
425
+ .eael-creative-button--rayen > span {
426
+ display: block;
427
+ }
428
+ .eael-creative-button--rayen::before,
429
+ .eael-creative-button--rayen > span {
430
+ padding: 1em 2em;
431
+ -webkit-transition: -webkit-transform 0.3s;
432
+ transition: transform 0.3s;
433
+ -webkit-transition-timing-function: cubic-bezier(0.75, 0, 0.125, 1);
434
+ transition-timing-function: cubic-bezier(0.75, 0, 0.125, 1);
435
+ }
436
+ .eael-creative-button--rayen:hover::before {
437
+ -webkit-transform: translate3d(0, 0, 0);
438
+ transform: translate3d(0, 0, 0);
439
+ }
440
+ .eael-creative-button--rayen:hover > span {
441
+ -webkit-transform: translate3d(0, 100%, 0);
442
+ transform: translate3d(0, 100%, 0);
443
+ }
444
+
445
+ /* Countdown Styles */
446
+
447
+ .eael-countdown-items {
448
+ list-style: none;
449
+ margin: 0;
450
+ padding: 0;
451
+ display: table;
452
+ table-layout: fixed;
453
+ width: 100%;
454
+ }
455
+
456
+ .eael-countdown-items > li {
457
+ list-style: none;
458
+ margin: 0;
459
+ padding: 0;
460
+ display: table-cell;
461
+ position: relative;
462
+ }
463
+
464
+ .eael-countdown-item > div {
465
+ text-align: center;
466
+ padding: 20px;
467
+ }
468
+
469
+ .eael-countdown-label-block .eael-countdown-digits, .eael-countdown-label-block .eael-countdown-label {
470
+ display: block;
471
+ text-align: center;
472
+ }
473
+
474
+ .eael-countdown-digits {
475
+ font-size: 54px;
476
+ line-height: 1;
477
+ }
478
+
479
+ .eael-countdown-label {
480
+ font-size: 18px;
481
+ line-height: 1;
482
+ }
483
+
484
+ .eael-countdown-show-separator .eael-countdown-digits::after {
485
+ content: ":";
486
+ position: absolute;
487
+ left: 98%;
488
+ z-index: 9999;
489
+ }
490
+
491
+ .eael-countdown-item:last-child .eael-countdown-digits::after {
492
+ display: none;
493
+ }
494
+
495
+
496
+ /* Post Timeline Styles */
497
+
498
+ .eael-post-timeline {
499
+ margin-bottom: 0;
500
+ min-height: 100%;
501
+ overflow: hidden;
502
+ position: relative;
503
+ }
504
+
505
+ .eael-timeline-column {
506
+ width: 50%;
507
+ margin-left: 0;
508
+ float: left;
509
+ margin-top: 0 !important;
510
+ }
511
+
512
+ .eael-timeline-post {
513
+ position: relative;
514
+ }
515
+ .eael-timeline-post:after {
516
+ background-color: rgba(83, 85, 86, .2);
517
+ content: "";
518
+ width: 2px;
519
+ height: 245px;
520
+ position: absolute;
521
+ right: 0;
522
+ top: 70px;
523
+ }
524
+ .eael-timeline-post:nth-child(2n):after {
525
+ display: none;
526
+ }
527
+ .eael-timeline-bullet {
528
+ background-color: #9fa9af;
529
+ border: 5px solid #fff;
530
+ border-radius: 50%;
531
+ box-shadow: 0 1px 0 1px rgba(0, 0, 0, 0.1);
532
+ content: "";
533
+ height: 20px;
534
+ position: absolute;
535
+ right: -9px;
536
+ top: 60px;
537
+ width: 20px;
538
+ z-index: 3;
539
+ cursor: pointer;
540
+ }
541
+ .eael-timeline-post:nth-child(2n) .eael-timeline-bullet {
542
+ background-color: #9fa9af;
543
+ border: 5px solid #fff;
544
+ border-radius: 50%;
545
+ bottom: 36px;
546
+ content: "";
547
+ height: 20px;
548
+ left: -11px;
549
+ position: absolute;
550
+ top: 300px;
551
+ width: 20px;
552
+ z-index: 3;
553
+ }
554
+ .eael-timeline-post-inner {
555
+ background: linear-gradient(45deg, #3f3f46 0%, #05abe0 100%) repeat scroll 0 0 rgba(0, 0, 0, 0);
556
+ border: 8px solid #e5eaed;
557
+ box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.15);
558
+ float: right;
559
+ margin: 30px 40px 30px auto;
560
+ position: relative;
561
+ height: 320px;
562
+ width: 480px;
563
+ }
564
+ .eael-timeline-post:nth-child(even) .eael-timeline-post-inner {
565
+ float: left;
566
+ margin-left: 40px;
567
+ }
568
+ .eael-timeline-post-inner:after {
569
+ border-color: transparent transparent transparent #e5eaed;
570
+ border-style: solid;
571
+ border-width: 15px;
572
+ content: "";
573
+ height: 0;
574
+ position: absolute;
575
+ right: -36px;
576
+ top: 17px;
577
+ width: 0;
578
+ }
579
+ .eael-timeline-post:nth-child(2n) .eael-timeline-post-inner:after {
580
+ border-color: transparent #e5eaed transparent transparent;
581
+ border-style: solid;
582
+ border-width: 15px;
583
+ content: "";
584
+ height: 0;
585
+ left: -36px;
586
+ position: absolute;
587
+ top: 257px;
588
+ width: 0;
589
+ }
590
+
591
+ .eael-timeline-post:nth-child(2n) .eael-timeline-post-inner::after {
592
+ border-left-color: transparent !important;
593
+ }
594
+
595
+ .eael-timeline-post p {
596
+ margin: 1.6rem 0 0 0;
597
+ font-size: 0.9em;
598
+ line-height: 1.6em;
599
+ }
600
+ .eael-timeline-post-image {
601
+ background-size: 100% auto;
602
+ background-repeat: no-repeat;
603
+ display: block;
604
+ height: 100%;
605
+ overflow: hidden;
606
+ position: relative;
607
+ opacity: .6;
608
+ -webkit-transition: all .3s;
609
+ -moz-transition: all .3s;
610
+ transition: all .3s;
611
+ }
612
+ .eael-timeline-post-title {
613
+ bottom: 40px;
614
+ position: absolute;
615
+ width: 100%;
616
+ }
617
+ .eael-timeline-post-title h2 {
618
+ color: #fff;
619
+ font-size: 20px;
620
+ font-weight: bold;
621
+ letter-spacing: 1px;
622
+ line-height: 24px;
623
+ padding: 0 25px;
624
+ text-align: left;
625
+ text-transform: uppercase;
626
+ }
627
+ .eael-timeline-post-excerpt {
628
+ opacity: 0;
629
+ position: absolute;
630
+ top: 0;
631
+ left: 0;
632
+ -webkit-transition: all .3s;
633
+ -moz-transition: all .3s;
634
+ transition: all .3s;
635
+ }
636
+ .eael-timeline-post-excerpt p {
637
+ color: #fff;
638
+ font-size: 14px;
639
+ padding: 25px;
640
+ }
641
+ .eael-timeline-post-inner:hover .eael-timeline-post-excerpt {
642
+ opacity: 1;
643
+ top: 10px;
644
+ }
645
+ .eael-timeline-post-inner:hover .eael-timeline-post-image {
646
+ opacity: .3;
647
+ }
648
+ .eael-timeline-post time {
649
+ opacity: 0;
650
+ background-color: rgba(0, 0, 0, .7);
651
+ color: #fff;
652
+ font-size: 10px;
653
+ border-radius: 20px;
654
+ position: absolute;
655
+ right: -97px;
656
+ width: 100px;
657
+ height: 30px;
658
+ line-height: 30px;
659
+ text-align: center;
660
+ top: 50px;
661
+ z-index: 99;
662
+ -webkit-transition: all .5s;
663
+ -moz-transition: all .5s;
664
+ transition: all .5s;
665
+ }
666
+ .eael-timeline-post:nth-child(2n) time {
667
+ background-color: rgba(0, 0, 0, 0.7);
668
+ border-radius: 20px;
669
+ color: #fff;
670
+ font-size: 10px;
671
+ height: 30px;
672
+ left: -99px;
673
+ line-height: 30px;
674
+ position: absolute;
675
+ text-align: center;
676
+ top: 290px;
677
+ width: 100px;
678
+ z-index: 99;
679
+ }
680
+ .eael-timeline-post time:before {
681
+ border-bottom: 5px solid rgba(0, 0, 0, 0.7);
682
+ border-left: 5px solid transparent;
683
+ border-right: 5px solid transparent;
684
+ content: "";
685
+ height: 0;
686
+ left: 45px;
687
+ position: absolute;
688
+ top: -5px;
689
+ width: 0;
690
+ }
691
+ .eael-timeline-post:hover time {
692
+ opacity: 1;
693
+ }
694
+
695
+ /* Responsive Style for Post Timeline */
696
+
697
+ @media only screen and (max-width: 1366px) {
698
+ .eael-timeline-post-title h2 {
699
+ font-size: 0.8em;
700
+ }
701
+ .eael-timeline-post-excerpt p {
702
+ font-size: 13px;
703
+ }
704
+ }
705
+ @media only screen and (max-width: 1169px) {
706
+ .eael-timeline-post-inner {
707
+ height: 320px;
708
+ width: 420px;
709
+ }
710
+ }
711
+ @media only screen and (max-width: 992px) {
712
+ .eael-post-timeline {
713
+ margin-left: 0;
714
+ }
715
+ .eael-timeline-bullet,
716
+ .eael-timeline-post:after,
717
+ .eael-timeline-post:before,
718
+ .eael-timeline-post-inner:after {
719
+ display: none;
720
+ }
721
+ .eael-timeline-post {
722
+ display: inline-block;
723
+ float: left !important;
724
+ width: 50% !important;
725
+ margin: 15px auto;
726
+ }
727
+ .eael-timeline-post-inner {
728
+ height: 320px;
729
+ padding-bottom: 30px;
730
+ width: 420px;
731
+ }
732
+ .eael-timeline-post-title {
733
+ bottom: 50px;
734
+ }
735
+ .eael-timeline-post-title h2 {
736
+ font-size: 0.8em;
737
+ line-height: 1.2em;
738
+ }
739
+ .eael-timeline-post .eael-timeline-post-inner {
740
+ margin: 0 10px auto 0;
741
+ width: 90%;
742
+ }
743
+ .eael-timeline-post:nth-child(2n) .eael-timeline-post-inner {
744
+ margin: 0 auto 0 10px;
745
+ width: 90%;
746
+ }
747
+ .eael-timeline-post-excerpt {
748
+ opacity: 0!important;
749
+ }
750
+ .eael-timeline-post-image {
751
+ opacity: .3;
752
+ }
753
+ .eael-timeline-post time,
754
+ .eael-timeline-post:nth-child(2n) time {
755
+ background-color: #fff;
756
+ border-radius: 0;
757
+ color: #444;
758
+ font-size: 12px;
759
+ text-transform: uppercase;
760
+ left: 0;
761
+ opacity: 1;
762
+ padding-top: 3px;
763
+ top: 275px;
764
+ width: 100%;
765
+ }
766
+ time:before {
767
+ display: none;
768
+ }
769
+ }
770
+ @media only screen and (max-width: 767px) {
771
+ .eael-timeline-post {
772
+ display: block;
773
+ float: none !important;
774
+ margin: 20px auto;
775
+ width: 100% !important;
776
+ }
777
+ .eael-timeline-post .eael-timeline-post-inner,
778
+ .eael-timeline-post:nth-child(2n) .eael-timeline-post-inner {
779
+ display: block;
780
+ float: none;
781
+ margin: 0 auto;
782
+ width: 90%;
783
+ }
784
+ }
785
+ @media only screen and (max-width: 479px) {
786
+ .eael-timeline-post .eael-timeline-post-inner,
787
+ .eael-timeline-post:nth-child(2n) .eael-timeline-post-inner {
788
+ height: 250px;
789
+ margin: 0 auto;
790
+ width: 95%;
791
+ }
792
+ .eael-timeline-post time,
793
+ .eael-timeline-post:nth-child(2n) time {
794
+ top: 205px;
795
+ }
796
+ }
797
+
798
+ /* Team Members Styles */
799
+
800
+
801
+ .eael-team-item {
802
+ overflow: hidden;
803
+ position: relative;
804
+ }
805
+
806
+ .team-avatar-rounded figure img {
807
+ border-radius: 50%;
808
+ height: auto;
809
+ }
810
+ .eael-team-image > figure {
811
+ margin: 0;
812
+ padding: 0;
813
+ }
814
+
815
+ .eael-team-image > figure img {
816
+ display: block;
817
+ margin: 0 auto;
818
+ }
819
+
820
+ .eael-team-item .eael-team-content {
821
+ padding: 10px;
822
+ }
823
+
824
+ .eael-team-item .eael-team-member-name {
825
+ font-size: 20px;
826
+ font-weight: bold;
827
+ letter-spacing: 0.05em;
828
+ margin: 5px 0;
829
+ text-transform: uppercase;
830
+ }
831
+
832
+ .eael-team-item .eael-team-member-position {
833
+ font-size: 14px;
834
+ font-weight: normal;
835
+ letter-spacing: 0.05em;
836
+ margin: 5px 0 10px;
837
+ text-transform: uppercase;
838
+ }
839
+
840
+ .eael-team-item .eael-team-content,
841
+ .eael-team-item .eael-team-content .eael-team-text {
842
+ font-size: 14px;
843
+ line-height: 1.5;
844
+ }
845
+
846
+ .eael-team-content > ul {
847
+ margin: 0;
848
+ padding: 0;
849
+ }
850
+
851
+ .eael-team-content li {
852
+ display: inline-block;
853
+ list-style: outside none none;
854
+ margin-right: 10px;
855
+ text-align: center;
856
+ }
857
+
858
+ .eael-team-content li a {
859
+ font-size: 2.5rem;
860
+ }
861
+ .eael-team-align-left .eael-team-item .eael-team-member-name,
862
+ .eael-team-align-left .eael-team-item .eael-team-member-position,
863
+ .eael-team-align-left .eael-team-item .eael-team-text,
864
+ .eael-team-align-left .eael-team-item .eael-team-content p,
865
+ .eael-team-align-left .eael-team-item .eael-team-content ul,
866
+ .eael-team-align-left .eael-team-item .eael-team-content li{
867
+ text-align: left;
868
+ }
869
+ .eael-team-align-right .eael-team-item .eael-team-member-name,
870
+ .eael-team-align-right .eael-team-item .eael-team-member-position,
871
+ .eael-team-align-right .eael-team-item .eael-team-text,
872
+ .eael-team-align-right .eael-team-item .eael-team-content p,
873
+ .eael-team-align-right .eael-team-item .eael-team-content ul,
874
+ .eael-team-align-right .eael-team-item .eael-team-content li{
875
+ text-align: right;
876
+ }
877
+ .eael-team-align-centered .eael-team-item .eael-team-member-name,
878
+ .eael-team-align-centered .eael-team-item .eael-team-member-position,
879
+ .eael-team-align-centered .eael-team-item .eael-team-text,
880
+ .eael-team-align-centered .eael-team-item .eael-team-content p,
881
+ .eael-team-align-centered .eael-team-item .eael-team-content ul,
882
+ .eael-team-align-centered .eael-team-item .eael-team-content li{
883
+ text-align: center;
884
+ }
885
+
886
+ .eael-team-item.eael-team-members-overlay .eael-team-content {
887
+ bottom: 10px;
888
+ left: 10px;
889
+ margin-bottom: 0;
890
+ padding-top: 15%;
891
+ opacity: 0;
892
+ overflow: hidden;
893
+ text-overflow: ellipsis;
894
+ position: absolute;
895
+ right: 10px;
896
+ top: 10px;
897
+ -webkit-transition: all 0.615s cubic-bezier(0.19, 1, 0.22, 1) 0s;
898
+ transition: all 0.615s cubic-bezier(0.19, 1, 0.22, 1) 0s;
899
+ }
900
+
901
+ .eael-team-item.eael-team-members-overlay:hover .eael-team-content {
902
+ opacity: 1;
903
+ }
904
+
905
+ .eael-team-member-social-link > a {
906
+ display: inline-block;
907
+ -webkit-transition: all 0.3s cubic-bezier(0.19, 1, 0.22, 1) 0s;
908
+ transition: all 0.3s cubic-bezier(0.19, 1, 0.22, 1) 0s;
909
+ }
910
+ .eael-team-member-social-link > a:focus {
911
+ outline: none;
912
+ }
913
+
914
+
915
+ /* Testimonials Styles */
916
+
917
+ .eael-testimonial-slider {
918
+ position: relative;
919
+ }
920
+
921
+ /* Default styles */
922
+
923
+ .eael-testimonial-image img {
924
+ max-width: 100%;
925
+ }
926
+
927
+ .eael-testimonial-image {
928
+ padding: 10px 10px 10px 20px;
929
+ }
930
+
931
+ .eael-testimonial-image > figure {
932
+ display: block;
933
+ margin: 0;
934
+ }
935
+
936
+ .testimonial-avatar-rounded figure img {
937
+ border-radius: 50%;
938
+ height: auto;
939
+ }
940
+
941
+ .eael-testimonial-content {
942
+ margin: 0;
943
+ padding: 10px 20px 50px;
944
+ }
945
+
946
+ .eael-testimonial-item > figure {
947
+ margin: 0 auto;
948
+ padding: 0 20px;
949
+ }
950
+
951
+ .eael-testimonial-item .center-text {
952
+ text-align: center;
953
+ }
954
+ .eael-testimonial-item .right-text {
955
+ text-align: right;
956
+ }
957
+ .eael-testimonial-item .left-text {
958
+ text-align: left;
959
+ }
960
+ .eael-testimonial-item .justify-text {
961
+ text-align: justify;
962
+ }
963
+
964
+
965
+ /* Default aligned */
966
+
967
+ .eael-testimonial-content .eael-testimonial-text {
968
+ font-size: 100%;
969
+ font-style: italic;
970
+ line-height: 1.5;
971
+ margin-bottom: 10px;
972
+ }
973
+
974
+ .eael-testimonial-content .eael-testimonial-user {
975
+ float: left;
976
+ font-family: inherit;
977
+ font-size: 105%;
978
+ font-style: italic;
979
+ font-weight: normal;
980
+ line-height: 1.5;
981
+ margin-bottom: 0;
982
+ margin-right: 5px;
983
+ }
984
+
985
+ .eael-testimonial-content .eael-testimonial-user-company {
986
+ float: left;
987
+ font-family: inherit;
988
+ font-size: 90%;
989
+ font-style: italic;
990
+ font-weight: lighter;
991
+ line-height: 1.75;
992
+ margin-bottom: 0;
993
+ margin-top: 1px;
994
+ }
995
+
996
+ .eael-testimonial-image {
997
+ position: relative;
998
+ }
999
+
1000
+ .eael-testimonial-image .eael-testimonial-quote::after {
1001
+ color: inherit!important;
1002
+ content: "\f10e";
1003
+ font-family: "FontAwesome";
1004
+ font-size: 200%;
1005
+ position: absolute;
1006
+ right: 20px;
1007
+ top: 10px;
1008
+ }
1009
+
1010
+
1011
+ /* Left align */
1012
+
1013
+ .eael-testimonial-align-left .eael-testimonial-content,
1014
+ .eael-testimonial-align-left .eael-testimonial-user,
1015
+ .eael-testimonial-align-left .eael-testimonial-user-company {
1016
+ text-align: left;
1017
+ }
1018
+
1019
+ .eael-testimonial-align-left .eael-testimonial-image {
1020
+ float: left;
1021
+ width: 30%;
1022
+ }
1023
+
1024
+ .eael-testimonial-align-left .eael-testimonial-content {
1025
+ float: left;
1026
+ margin-top: 20px;
1027
+ position: relative;
1028
+ width: 70%;
1029
+ }
1030
+
1031
+ .eael-testimonial-align-left .eael-testimonial-image .eael-testimonial-quote {
1032
+ display: none;
1033
+ }
1034
+
1035
+ .eael-testimonial-align-left .eael-testimonial-quote::before {
1036
+ color: inherit;
1037
+ content: "\f10e";
1038
+ font-family: "FontAwesome";
1039
+ font-size: 28px;
1040
+ right: 20px;
1041
+ position: absolute;
1042
+ top: 0;
1043
+ }
1044
+
1045
+ .eael-testimonial-align-left .eael-testimonial-text {
1046
+ padding-right: 25px;
1047
+ }
1048
+ .eael-testimonial-align-left .eael-testimonial-content {
1049
+ margin: 0;
1050
+ padding: 10px 25px 30px 10px;
1051
+ }
1052
+
1053
+ /* Center align */
1054
+
1055
+ .eael-testimonial-align-centered .eael-testimonial-content .eael-testimonial-text {
1056
+ text-align: center;
1057
+ }
1058
+
1059
+ .eael-testimonial-align-centered .eael-testimonial-user,
1060
+ .eael-testimonial-align-centered .eael-testimonial-user-company {
1061
+ float: none;
1062
+ text-align: center;
1063
+ }
1064
+
1065
+ .eael-testimonial-align-centered .eael-testimonial-image > figure img {
1066
+ display: block;
1067
+ margin-left: auto !important;
1068
+ margin-right: auto !important;
1069
+ }
1070
+
1071
+ /* Right align */
1072
+
1073
+ .eael-testimonial-align-right .eael-testimonial-content,
1074
+ .eael-testimonial-align-right .eael-testimonial-user,
1075
+ .eael-testimonial-align-right .eael-testimonial-user-company {
1076
+ text-align: right;
1077
+ }
1078
+
1079
+ .eael-testimonial-align-right .eael-testimonial-image {
1080
+ float: right;
1081
+ width: 30%;
1082
+ }
1083
+
1084
+ .eael-testimonial-align-right .eael-testimonial-content {
1085
+ float: right;
1086
+ margin-top: 20px;
1087
+ position: relative;
1088
+ width: 70%;
1089
+ }
1090
+
1091
+ .eael-testimonial-align-right .eael-testimonial-image .eael-testimonial-quote {
1092
+ display: none;
1093
+ }
1094
+
1095
+ .eael-testimonial-align-right .eael-testimonial-quote::before {
1096
+ color: inherit;
1097
+ content: "\f10d";
1098
+ font-family: "FontAwesome";
1099
+ font-size: 28px;
1100
+ left: 20px;
1101
+ position: absolute;
1102
+ top: 0;
1103
+ }
1104
+
1105
+ .eael-testimonial-align-right .eael-testimonial-text {
1106
+ padding-left: 30px;
1107
+ }
1108
+
1109
+ .eael-testimonial-align-right .eael-testimonial-user,
1110
+ .eael-testimonial-align-right .eael-testimonial-user-company {
1111
+ float: none;
1112
+ text-align: right;
1113
+ }
1114
+
1115
+ .eael-testimonial-align-right .eael-testimonial-content {
1116
+ padding: 10px 10px 30px 25px;
1117
+ }
1118
+
1119
+
1120
+ /* Product Styles */
1121
+
1122
+ .eael-product-carousel .woocommerce li.product {
1123
+ background-color: #fff;
1124
+ border-radius: 0;
1125
+ box-shadow: none;
1126
+ }
1127
+
1128
+ .hide_rating .woocommerce .star-rating-container,
1129
+ .hide_rating .woocommerce .star-rating {
1130
+ display: none !important;
1131
+ }
1132
+
1133
+ .eael-product-carousel .woocommerce ul.products li.product h3 {
1134
+ padding: 0.5em;
1135
+ }
1136
+
1137
+ .eael-product-carousel .woocommerce .products .star-rating {
1138
+ display: block;
1139
+ float: none;
1140
+ margin: 10px auto;
1141
+ }
1142
+
1143
+
1144
+ body:not(.x-ethos):not(.x-integrity):not(.x-renew):not(.x-icon) .eael-product-carousel .woocommerce li.product .button {
1145
+ box-shadow: none;
1146
+ display: block;
1147
+ left: auto;
1148
+ margin: 15px;
1149
+ padding: 0.45em 0.5em 0.575em;
1150
+ position: relative;
1151
+ right: auto;
1152
+ text-shadow: none;
1153
+ top: auto;
1154
+ }
1155
+
1156
+ /* Product Simple and Reveal Style */
1157
+
1158
+ .eael-product-carousel:not(.eael-product-no-style) .woocommerce li.product .entry-featured {
1159
+ background-color: transparent;
1160
+ border: medium none;
1161
+ box-shadow: none;
1162
+ padding: 0;
1163
+ }
1164
+
1165
+ .eael-product-carousel.eael-product-simple .woocommerce li.product .entry-wrap, .eael-product-carousel.eael-product-reveal .woocommerce li.product .entry-wrap {
1166
+ background-color: transparent;
1167
+ bottom: auto;
1168
+ box-shadow: none;
1169
+ padding: 15px 0 0;
1170
+ position: relative;
1171
+ text-align: center;
1172
+ top: auto;
1173
+ }
1174
+
1175
+ .eael-product-carousel.eael-product-simple .woocommerce li.product .entry-header h3,
1176
+ .eael-product-carousel.eael-product-reveal .woocommerce li.product .entry-header h3 {
1177
+ font-size: 14px;
1178
+ line-height: 1.2;
1179
+ margin: 0 0 5px;
1180
+ padding-bottom: 0.5em;
1181
+ }
1182
+ .eael-product-carousel.eael-product-simple .woocommerce li.product .entry-header h3 a,
1183
+ .eael-product-carousel.eael-product-reveal .woocommerce li.product .entry-header h3 a {
1184
+ color: #272727;
1185
+ font-weight: normal;
1186
+ letter-spacing: 0.01rem;
1187
+ text-transform: uppercase;
1188
+ }
1189
+
1190
+ .eael-product-carousel.eael-product-simple .woocommerce li.product .price > .amount,
1191
+ .eael-product-carousel.eael-product-simple .woocommerce li.product .entry-header .price > .amount,
1192
+ .eael-product-carousel.eael-product-simple .woocommerce li.product .entry-header .price > ins > .amount,
1193
+ .eael-product-carousel.eael-product-reveal .woocommerce li.product .entry-header .price > .amount,
1194
+ .eael-product-carousel.eael-product-reveal .woocommerce li.product .entry-header .price > ins > .amount {
1195
+ color: #272727;
1196
+ font-size: 18px;
1197
+ font-weight: normal;
1198
+ }
1199
+
1200
+ .eael-product-carousel.eael-product-simple .woocommerce li.product .entry-wrap::before,
1201
+ .eael-product-carousel.eael-product-reveal .woocommerce li.product .entry-wrap::before {
1202
+ display: none;
1203
+ }
1204
+
1205
+ .eael-product-carousel:not(.eael-product-no-style) .woocommerce li.product .entry-header .button {
1206
+ background-color: transparent;
1207
+ border: 1px solid rgba(0, 0, 0, 0.5);
1208
+ border-radius: 0;
1209
+ box-shadow: none;
1210
+ color: #272727;
1211
+ display: block;
1212
+ font-size: 14px;
1213
+ left: auto;
1214
+ margin: 20px auto;
1215
+ opacity: 1;
1216
+ position: relative;
1217
+ right: auto;
1218
+ text-shadow: none;
1219
+ top: auto;
1220
+ width: 80%;
1221
+ }
1222
+
1223
+
1224
+ .eael-product-carousel:not(.eael-product-no-style) .woocommerce li.product .entry-header .button:hover {
1225
+ background-color: #e74c3c;
1226
+ border: 1px solid #e74c3c;
1227
+ color: #fff;
1228
+ }
1229
+
1230
+ .eael-product-carousel.eael-product-simple .woocommerce li.product .star-rating-container {
1231
+ background-color: transparent;
1232
+ left: auto;
1233
+ opacity: 1;
1234
+ position: relative;
1235
+ right: auto;
1236
+ top: 5px;
1237
+ display: block;
1238
+ margin: 0 auto;
1239
+ width: 110px;
1240
+ }
1241
+
1242
+ .eael-product-carousel.eael-product-simple .woocommerce li.product .star-rating-container .star-rating::before,
1243
+ .eael-product-carousel.eael-product-reveal .woocommerce li.product .star-rating-container .star-rating::before {
1244
+ color: #f2b01e;
1245
+ }
1246
+
1247
+ .eael-product-carousel.eael-product-simple .woocommerce li.product .star-rating-container .star-rating span::before,
1248
+ .eael-product-carousel.eael-product-reveal .woocommerce li.product .star-rating-container .star-rating span::before {
1249
+ color: #f2b01e;
1250
+ }
1251
+
1252
+ .eael-product-carousel:not(.eael-product-no-style) .onsale{
1253
+ border-radius: 0;
1254
+ box-shadow: none;
1255
+ display: block;
1256
+ font-size: 14px;
1257
+ height: 100px;
1258
+ letter-spacing: 0;
1259
+ line-height: 160px;
1260
+ position: absolute;
1261
+ text-align: center;
1262
+ text-shadow: 0 1px 1px rgba(0, 0, 0, 0.6);
1263
+ text-transform: uppercase;
1264
+ transform: rotate(-45deg);
1265
+ width: 200px;
1266
+ z-index: 1;
1267
+ }
1268
+
1269
+ .eael-product-carousel:not(.eael-product-no-style) .woocommerce li.product .onsale {
1270
+ left: -95px;
1271
+ top: -45px;
1272
+ }
1273
+
1274
+ .eael-product-carousel .woocommerce ul.products {
1275
+ margin: 0 0 30px;
1276
+ }
1277
+
1278
+ /* Product Reveal Styles */
1279
+
1280
+ .eael-product-carousel .woocommerce li.product {
1281
+ background-color: #fff;
1282
+ float: left;
1283
+ overflow: hidden;
1284
+ padding: 0;
1285
+ position: relative;
1286
+ text-align: center;
1287
+ }
1288
+
1289
+
1290
+ .eael-product-carousel.eael-product-reveal .woocommerce li.product .entry-wrap {
1291
+ bottom: -63px;
1292
+ margin-top: -63px;
1293
+ position: relative;
1294
+ top: auto;
1295
+ -webkit-transition: all 0.615s cubic-bezier(0.19, 1, 0.22, 1) 0s;
1296
+ transition: all 0.615s cubic-bezier(0.19, 1, 0.22, 1) 0s
1297
+ }
1298
+ .eael-product-carousel.eael-product-reveal .woocommerce li.product:hover .entry-wrap {
1299
+ bottom: 0;
1300
+ }
1301
+
1302
+ .eael-product-carousel.eael-product-reveal .woocommerce li.product:hover .entry-wrap::before {
1303
+ background-color: #fff;
1304
+ display: block;
1305
+ }
1306
+
1307
+ .eael-product-carousel.eael-product-reveal .woocommerce li.product .star-rating-container {
1308
+ background-color: rgba(255, 255, 255, 0.9);
1309
+ left: auto;
1310
+ opacity: 0;
1311
+ position: absolute;
1312
+ right: 10px;
1313
+ top: 10px;
1314
+ }
1315
+
1316
+ .eael-product-carousel.eael-product-reveal .woocommerce li.product:hover .star-rating-container {
1317
+ opacity: 1;
1318
+ }
1319
+
1320
+ /* Product Overlay Styles */
1321
+
1322
+ .eael-product-carousel.eael-product-overlay .woocommerce li.product .entry-wrap {
1323
+ bottom: auto;
1324
+ font-size: 14px;
1325
+ left: 0;
1326
+ padding: 0;
1327
+ position: absolute;
1328
+ right: 0;
1329
+ top: calc(100% - 4em);
1330
+ transition: all 0.615s cubic-bezier(0.19, 1, 0.22, 1) 0s;
1331
+ }
1332
+ .eael-product-carousel.eael-product-overlay .woocommerce li.product .entry-wrap {
1333
+ background-color: rgba(0, 0, 0, 0.5);
1334
+ bottom: auto;
1335
+ font-size: 14px;
1336
+ left: 0;
1337
+ padding: 0;
1338
+ position: absolute;
1339
+ right: 0;
1340
+ text-align: center;
1341
+ top: calc(100% - 4em);
1342
+ -webkit-transition: all 0.615s cubic-bezier(0.19, 1, 0.22, 1) 0s;
1343
+ transition: all 0.615s cubic-bezier(0.19, 1, 0.22, 1) 0s;
1344
+ }
1345
+
1346
+ .eael-product-carousel.eael-product-overlay .woocommerce li.product .entry-wrap::before {
1347
+ background-color: rgba(0, 0, 0, 0.5);
1348
+ content: "";
1349
+ display: block;
1350
+ height: 50em;
1351
+ left: 0;
1352
+ position: absolute;
1353
+ right: 0;
1354
+ top: 0;
1355
+ transition: all 0.615s cubic-bezier(0.19, 1, 0.22, 1) 0s;
1356
+ z-index: 0;
1357
+ }
1358
+
1359
+ .eael-product-carousel.eael-product-overlay .woocommerce li.product:hover .entry-wrap::before {
1360
+ background-color: rgba(0, 0, 0, 0.75);
1361
+ }
1362
+
1363
+ .eael-product-carousel.eael-product-overlay .woocommerce li.product .entry-header {
1364
+ position: relative;
1365
+ }
1366
+ .eael-product-carousel.eael-product-overlay .woocommerce li.product .entry-header h3 {
1367
+ font-size: 14px;
1368
+ line-height: 1;
1369
+ margin: 0;
1370
+ overflow: hidden;
1371
+ padding: 1.5em;
1372
+ text-overflow: ellipsis;
1373
+ text-transform: uppercase;
1374
+ white-space: nowrap;
1375
+ }
1376
+ .eael-product-carousel.eael-product-overlay .woocommerce li.product .entry-header h3 a {
1377
+ color: #fff;
1378
+ }
1379
+ .eael-product-carousel.eael-product-overlay .woocommerce li.product .price > del,
1380
+ .eael-product-carousel.eael-product-overlay .woocommerce li.product .entry-header .price > del{
1381
+ display: none;
1382
+ }
1383
+ .eael-product-carousel.eael-product-overlay .woocommerce li.product .entry-header .price > .amount, .woocommerce li.product .entry-header .price > ins > .amount {
1384
+ color: #fff;
1385
+ font-size: 24px;
1386
+ }
1387
+
1388
+ .eael-product-carousel.eael-product-overlay .woocommerce li.product .added_to_cart {
1389
+ display: none;
1390
+ }
1391
+ .eael-product-carousel.eael-product-overlay .woocommerce li.product:hover .entry-wrap {
1392
+ top: calc(100% - 10.385em);
1393
+ }
1394
+ .eael-product-carousel.eael-product-overlay .woocommerce li.product:hover .entry-wrap::before {
1395
+ background-color: rgba(0, 0, 0, 0.75);
1396
+ }
1397
+ .eael-product-carousel.eael-product-overlay .woocommerce li.product:hover .star-rating-container {
1398
+ opacity: 1;
1399
+ }
1400
+
1401
+
1402
+ /* Contact Form 7 Styles */
1403
+
1404
+ .eael-contact-form-container input, .eael-contact-form-container textarea {
1405
+ height: auto;
1406
+ padding: 10px;
1407
+ }
1408
+
1409
+ .eael-contact-form-align-center .eael-contact-form-container, .eael-contact-form-btn-align-center .eael-contact-form-container input.wpcf7-submit {
1410
+ margin-left: auto !important;
1411
+ margin-right: auto !important;
1412
+ display: block;
1413
+ float: none;
1414
+ }
1415
+
1416
+ .eael-contact-form-align-left .eael-contact-form-container, .eael-contact-form-btn-align-left .eael-contact-form-container input.wpcf7-submit {
1417
+ float: left;
1418
+ width: auto;
1419
+ }
1420
+
1421
+ .eael-contact-form-align-right .eael-contact-form-container, .eael-contact-form-btn-align-right .eael-contact-form-container input.wpcf7-submit {
1422
+ float: right;
1423
+ width: auto;
1424
+ }
1425
+
1426
+ .eael-contact-form-container textarea, .eael-contact-form-container input[type="text"], .eael-contact-form-container input[type="password"], .eael-contact-form-container input[type="datetime"], .eael-contact-form-container input[type="datetime-local"], .eael-contact-form-container input[type="date"], .eael-contact-form-container input[type="month"], .eael-contact-form-container input[type="time"], .eael-contact-form-container input[type="week"], .eael-contact-form-container input[type="number"], .eael-contact-form-container input[type="email"], .eael-contact-form-container input[type="url"], .eael-contact-form-container input[type="search"], .eael-contact-form-container input[type="tel"], .eael-contact-form-container input[type="color"], .eael-contact-form-container .uneditable-input {
1427
+ -webkit-transition: border linear 0.2s,box-shadow linear 0.2s;
1428
+ transition: border linear 0.2s,box-shadow linear 0.2s;
1429
+ }
1430
+
1431
+ .eael-contact-form-container .wpcf7-form::before, .eael-contact-form-container .wpcf7-form::after {
1432
+ content: " ";
1433
+ clear: both;
1434
+ display: table;
1435
+ }
1436
+
1437
+ .eael-contact-form-container .wpcf7-response-output {
1438
+ clear: both;
1439
+ }
assets/js/countdown.min.js ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
1
+ /*!
2
+ * Countdown v0.1.0
3
+ * https://github.com/fengyuanchen/countdown
4
+ *
5
+ * Copyright 2014 Fengyuan Chen
6
+ * Released under the MIT license
7
+ */
8
+
9
+ !function(a){"function"==typeof define&&define.amd?define(["jquery"],a):a(jQuery)}(function(a){"use strict";var b=function(c,d){this.$element=a(c),this.defaults=a.extend({},b.defaults,this.$element.data(),a.isPlainObject(d)?d:{}),this.init()};b.prototype={constructor:b,init:function(){var a=this.$element.html(),b=new Date(this.defaults.date||a);b.getTime()&&(this.content=a,this.date=b,this.find(),this.defaults.autoStart&&this.start())},find:function(){var a=this.$element;this.$days=a.find("[data-days]"),this.$hours=a.find("[data-hours]"),this.$minutes=a.find("[data-minutes]"),this.$seconds=a.find("[data-seconds]"),this.$days.length+this.$hours.length+this.$minutes.length+this.$seconds.length>0&&(this.found=!0)},reset:function(){this.found?(this.output("days"),this.output("hours"),this.output("minutes"),this.output("seconds")):this.output()},ready:function(){var a,b=this.date,c=100,d=1e3,e=6e4,f=36e5,g=864e5,h={};return b?(a=b.getTime()-(new Date).getTime(),0>=a?(this.end(),!1):(h.days=a,h.hours=h.days%g,h.minutes=h.hours%f,h.seconds=h.minutes%e,h.milliseconds=h.seconds%d,this.days=Math.floor(h.days/g),this.hours=Math.floor(h.hours/f),this.minutes=Math.floor(h.minutes/e),this.seconds=Math.floor(h.seconds/d),this.deciseconds=Math.floor(h.milliseconds/c),!0)):!1},start:function(){!this.active&&this.ready()&&(this.active=!0,this.reset(),this.autoUpdate=this.defaults.fast?setInterval(a.proxy(this.fastUpdate,this),100):setInterval(a.proxy(this.update,this),1e3))},stop:function(){this.active&&(this.active=!1,clearInterval(this.autoUpdate))},end:function(){this.date&&(this.stop(),this.days=0,this.hours=0,this.minutes=0,this.seconds=0,this.deciseconds=0,this.reset(),this.defaults.end())},destroy:function(){this.date&&(this.stop(),this.$days=null,this.$hours=null,this.$minutes=null,this.$seconds=null,this.$element.empty().html(this.content),this.$element.removeData("countdown"))},fastUpdate:function(){--this.deciseconds>=0?this.output("deciseconds"):(this.deciseconds=9,this.update())},update:function(){--this.seconds>=0?this.output("seconds"):(this.seconds=59,--this.minutes>=0?this.output("minutes"):(this.minutes=59,--this.hours>=0?this.output("hours"):(this.hours=23,--this.days>=0?this.output("days"):this.end())))},output:function(a){if(!this.found)return void this.$element.empty().html(this.template());switch(a){case"deciseconds":this.$seconds.text(this.getSecondsText());break;case"seconds":this.$seconds.text(this.seconds);break;case"minutes":this.$minutes.text(this.minutes);break;case"hours":this.$hours.text(this.hours);break;case"days":this.$days.text(this.days)}},template:function(){return this.defaults.text.replace("%s",this.days).replace("%s",this.hours).replace("%s",this.minutes).replace("%s",this.getSecondsText())},getSecondsText:function(){return this.active&&this.defaults.fast?this.seconds+"."+this.deciseconds:this.seconds}},b.defaults={autoStart:!0,date:null,fast:!1,end:a.noop,text:"%s days, %s hours, %s minutes, %s seconds"},b.setDefaults=function(c){a.extend(b.defaults,c)},a.fn.countdown=function(c){return this.each(function(){var d=a(this),e=d.data("countdown");e||d.data("countdown",e=new b(this,c)),"string"==typeof c&&a.isFunction(e[c])&&e[c]()})},a.fn.countdown.constructor=b,a.fn.countdown.setDefaults=b.setDefaults,a(function(){a("[countdown]").countdown()})});
assets/js/fancy-text.js ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
1
+ /* https://github.com/mattboldt/typed.js/ */
2
+ !function(t,s,e){"use strict";var i=function(t,s){var i=this;this.el=t,this.options={},Object.keys(r).forEach(function(t){i.options[t]=r[t]}),Object.keys(s).forEach(function(t){i.options[t]=s[t]}),this.isInput="input"===this.el.tagName.toLowerCase(),this.attr=this.options.attr,this.showCursor=!this.isInput&&this.options.showCursor,this.elContent=this.attr?this.el.getAttribute(this.attr):this.el.textContent,this.contentType=this.options.contentType,this.typeSpeed=this.options.typeSpeed,this.startDelay=this.options.startDelay,this.backSpeed=this.options.backSpeed,this.backDelay=this.options.backDelay,e&&this.options.stringsElement instanceof e?this.stringsElement=this.options.stringsElement[0]:this.stringsElement=this.options.stringsElement,this.strings=this.options.strings,this.strPos=0,this.arrayPos=0,this.stopNum=0,this.loop=this.options.loop,this.loopCount=this.options.loopCount,this.curLoop=0,this.stop=!1,this.cursorChar=this.options.cursorChar,this.shuffle=this.options.shuffle,this.sequence=[],this.build()};i.prototype={constructor:i,init:function(){var t=this;t.timeout=setTimeout(function(){for(var s=0;s<t.strings.length;++s)t.sequence[s]=s;t.shuffle&&(t.sequence=t.shuffleArray(t.sequence)),t.typewrite(t.strings[t.sequence[t.arrayPos]],t.strPos)},t.startDelay)},build:function(){var t=this;if(this.showCursor===!0&&(this.cursor=s.createElement("span"),this.cursor.className="typed-cursor",this.cursor.innerHTML=this.cursorChar,this.el.parentNode&&this.el.parentNode.insertBefore(this.cursor,this.el.nextSibling)),this.stringsElement){this.strings=[],this.stringsElement.style.display="none";var e=Array.prototype.slice.apply(this.stringsElement.children);e.forEach(function(s){t.strings.push(s.innerHTML)})}this.init()},typewrite:function(t,s){if(this.stop!==!0){var e=Math.round(70*Math.random())+this.typeSpeed,i=this;i.timeout=setTimeout(function(){var e=0,r=t.substr(s);if("^"===r.charAt(0)){var o=1;/^\^\d+/.test(r)&&(r=/\d+/.exec(r)[0],o+=r.length,e=parseInt(r)),t=t.substring(0,s)+t.substring(s+o)}if("html"===i.contentType){var n=t.substr(s).charAt(0);if("<"===n||"&"===n){var a="",h="";for(h="<"===n?">":";";t.substr(s+1).charAt(0)!==h&&(a+=t.substr(s).charAt(0),s++,!(s+1>t.length)););s++,a+=h}}i.timeout=setTimeout(function(){if(s===t.length){if(i.options.onStringTyped(i.arrayPos),i.arrayPos===i.strings.length-1&&(i.options.callback(),i.curLoop++,i.loop===!1||i.curLoop===i.loopCount))return;i.timeout=setTimeout(function(){i.backspace(t,s)},i.backDelay)}else{0===s&&i.options.preStringTyped(i.arrayPos);var e=t.substr(0,s+1);i.attr?i.el.setAttribute(i.attr,e):i.isInput?i.el.value=e:"html"===i.contentType?i.el.innerHTML=e:i.el.textContent=e,s++,i.typewrite(t,s)}},e)},e)}},backspace:function(t,s){if(this.stop!==!0){var e=Math.round(70*Math.random())+this.backSpeed,i=this;i.timeout=setTimeout(function(){if("html"===i.contentType&&">"===t.substr(s).charAt(0)){for(var e="";"<"!==t.substr(s-1).charAt(0)&&(e-=t.substr(s).charAt(0),s--,!(s<0)););s--,e+="<"}var r=t.substr(0,s);i.attr?i.el.setAttribute(i.attr,r):i.isInput?i.el.value=r:"html"===i.contentType?i.el.innerHTML=r:i.el.textContent=r,s>i.stopNum?(s--,i.backspace(t,s)):s<=i.stopNum&&(i.arrayPos++,i.arrayPos===i.strings.length?(i.arrayPos=0,i.shuffle&&(i.sequence=i.shuffleArray(i.sequence)),i.init()):i.typewrite(i.strings[i.sequence[i.arrayPos]],s))},e)}},shuffleArray:function(t){var s,e,i=t.length;if(i)for(;--i;)e=Math.floor(Math.random()*(i+1)),s=t[e],t[e]=t[i],t[i]=s;return t},reset:function(){var t=this;clearInterval(t.timeout);this.el.getAttribute("id");this.el.textContent="","undefined"!=typeof this.cursor&&"undefined"!=typeof this.cursor.parentNode&&this.cursor.parentNode.removeChild(this.cursor),this.strPos=0,this.arrayPos=0,this.curLoop=0,this.options.resetCallback()}},i["new"]=function(t,e){var r=Array.prototype.slice.apply(s.querySelectorAll(t));r.forEach(function(t){var s=t._typed,r="object"==typeof e&&e;s&&s.reset(),t._typed=s=new i(t,r),"string"==typeof e&&s[e]()})},e&&(e.fn.typed=function(t){return this.each(function(){var s=e(this),r=s.data("typed"),o="object"==typeof t&&t;r&&r.reset(),s.data("typed",r=new i(this,o)),"string"==typeof t&&r[t]()})}),t.Typed=i;var r={strings:["These are the default values...","You know what you should do?","Use your own!","Have a great day!"],stringsElement:null,typeSpeed:0,startDelay:0,backSpeed:0,shuffle:!1,backDelay:500,loop:!1,loopCount:!1,showCursor:!0,cursorChar:"|",attr:null,contentType:"html",callback:function(){},preStringTyped:function(){},onStringTyped:function(){},resetCallback:function(){}}}(window,document,window.jQuery);
3
+
4
+ /*! Morphext - v2.4.4 https://github.com/MrSaints/Morphext - 2015-05-21 */
5
+ !function(a){"use strict";function b(b,c){this.element=a(b),this.settings=a.extend({},d,c),this._defaults=d,this._init()}var c="Morphext",d={animation:"bounceIn",separator:",",speed:2e3,complete:a.noop};b.prototype={_init:function(){var b=this;this.phrases=[],this.element.addClass("morphext"),a.each(this.element.text().split(this.settings.separator),function(c,d){b.phrases.push(a.trim(d))}),this.index=-1,this.animate(),this.start()},animate:function(){this.index=++this.index%this.phrases.length,this.element[0].innerHTML='<span class="animated '+this.settings.animation+'">'+this.phrases[this.index]+"</span>",a.isFunction(this.settings.complete)&&this.settings.complete.call(this)},start:function(){var a=this;this._interval=setInterval(function(){a.animate()},this.settings.speed)},stop:function(){this._interval=clearInterval(this._interval)}},a.fn[c]=function(d){return this.each(function(){a.data(this,"plugin_"+c)||a.data(this,"plugin_"+c,new b(this,d))})}}(jQuery);
elements/contact-form-7/contact-form-7.php ADDED
@@ -0,0 +1,665 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace Elementor;
3
+
4
+ if ( ! defined( 'ABSPATH' ) ) exit; // If this file is called directly, abort.
5
+
6
+
7
+ class Widget_Eael_Contact_Form extends Widget_Base {
8
+
9
+ public function get_name() {
10
+ return 'eael-contact-form';
11
+ }
12
+
13
+ public function get_title() {
14
+ return esc_html__( 'EA Contact Form 7', 'essential-addons-elementor' );
15
+ }
16
+
17
+ public function get_icon() {
18
+ return 'fa fa-envelope-o';
19
+ }
20
+
21
+ public function get_categories() {
22
+ return [ 'essential-addons-elementor' ];
23
+ }
24
+
25
+ protected function _register_controls() {
26
+
27
+
28
+ $this->start_controls_section(
29
+ 'eael_section_wpcf7_form',
30
+ [
31
+ 'label' => esc_html__( 'Contact Form', 'essential-addons-elementor' )
32
+ ]
33
+ );
34
+
35
+
36
+
37
+ $this->add_control(
38
+ 'eael_wpcf7_form',
39
+ [
40
+ 'label' => esc_html__( 'Select your contact form 7', 'essential-addons-elementor' ),
41
+ 'label_block' => true,
42
+ 'type' => Controls_Manager::SELECT,
43
+ 'options' => eael_select_contact_form(),
44
+ ]
45
+ );
46
+
47
+
48
+ $this->end_controls_section();
49
+
50
+
51
+ $this->start_controls_section(
52
+ 'eael_section_contact_form_styles',
53
+ [
54
+ 'label' => esc_html__( 'Form Container Styles', 'essential-addons-elementor' ),
55
+ 'tab' => Controls_Manager::TAB_STYLE
56
+ ]
57
+ );
58
+
59
+ $this->add_control(
60
+ 'eael_contact_form_background',
61
+ [
62
+ 'label' => esc_html__( 'Form Background Color', 'essential-addons-elementor' ),
63
+ 'type' => Controls_Manager::COLOR,
64
+ 'selectors' => [
65
+ '{{WRAPPER}} .eael-contact-form-container' => 'background: {{VALUE}};',
66
+ ],
67
+ ]
68
+ );
69
+
70
+ $this->add_responsive_control(
71
+ 'eael_contact_form_alignment',
72
+ [
73
+ 'label' => esc_html__( 'Form Alignment', 'essential-addons-elementor' ),
74
+ 'type' => Controls_Manager::CHOOSE,
75
+ 'label_block' => true,
76
+ 'options' => [
77
+ 'default' => [
78
+ 'title' => __( 'Default', 'essential-addons-elementor' ),
79
+ 'icon' => 'fa fa-ban',
80
+ ],
81
+ 'left' => [
82
+ 'title' => esc_html__( 'Left', 'essential-addons-elementor' ),
83
+ 'icon' => 'fa fa-align-left',
84
+ ],
85
+ 'center' => [
86
+ 'title' => esc_html__( 'Center', 'essential-addons-elementor' ),
87
+ 'icon' => 'fa fa-align-center',
88
+ ],
89
+ 'right' => [
90
+ 'title' => esc_html__( 'Right', 'essential-addons-elementor' ),
91
+ 'icon' => 'fa fa-align-right',
92
+ ],
93
+ ],
94
+ 'default' => 'default',
95
+ 'prefix_class' => 'eael-contact-form-align-',
96
+ ]
97
+ );
98
+
99
+ $this->add_responsive_control(
100
+ 'eael_contact_form_width',
101
+ [
102
+ 'label' => esc_html__( 'Form Width', 'essential-addons-elementor' ),
103
+ 'type' => Controls_Manager::SLIDER,
104
+ 'size_units' => [ 'px', 'em', '%' ],
105
+ 'range' => [
106
+ 'px' => [
107
+ 'min' => 10,
108
+ 'max' => 1500,
109
+ ],
110
+ 'em' => [
111
+ 'min' => 1,
112
+ 'max' => 80,
113
+ ],
114
+ ],
115
+ 'selectors' => [
116
+ '{{WRAPPER}} .eael-contact-form-container' => 'width: {{SIZE}}{{UNIT}};',
117
+ ],
118
+ ]
119
+ );
120
+
121
+ $this->add_responsive_control(
122
+ 'eael_contact_form_max_width',
123
+ [
124
+ 'label' => esc_html__( 'Form Max Width', 'essential-addons-elementor' ),
125
+ 'type' => Controls_Manager::SLIDER,
126
+ 'size_units' => [ 'px', 'em', '%' ],
127
+ 'range' => [
128
+ 'px' => [
129
+ 'min' => 10,
130
+ 'max' => 1500,
131
+ ],
132
+ 'em' => [
133
+ 'min' => 1,
134
+ 'max' => 80,
135
+ ],
136
+ ],
137
+ 'selectors' => [
138
+ '{{WRAPPER}} .eael-contact-form-container' => 'max-width: {{SIZE}}{{UNIT}};',
139
+ ],
140
+ ]
141
+ );
142
+
143
+
144
+ $this->add_responsive_control(
145
+ 'eael_contact_form_margin',
146
+ [
147
+ 'label' => esc_html__( 'Form Margin', 'essential-addons-elementor' ),
148
+ 'type' => Controls_Manager::DIMENSIONS,
149
+ 'size_units' => [ 'px', 'em', '%' ],
150
+ 'selectors' => [
151
+ '{{WRAPPER}} .eael-contact-form-container' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
152
+ ],
153
+ ]
154
+ );
155
+
156
+ $this->add_responsive_control(
157
+ 'eael_contact_form_padding',
158
+ [
159
+ 'label' => esc_html__( 'Form Padding', 'essential-addons-elementor' ),
160
+ 'type' => Controls_Manager::DIMENSIONS,
161
+ 'size_units' => [ 'px', 'em', '%' ],
162
+ 'selectors' => [
163
+ '{{WRAPPER}} .eael-contact-form-container' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
164
+ ],
165
+ ]
166
+ );
167
+
168
+
169
+ $this->add_control(
170
+ 'eael_contact_form_border_radius',
171
+ [
172
+ 'label' => esc_html__( 'Border Radius', 'essential-addons-elementor' ),
173
+ 'type' => Controls_Manager::DIMENSIONS,
174
+ 'separator' => 'before',
175
+ 'size_units' => [ 'px' ],
176
+ 'selectors' => [
177
+ '{{WRAPPER}} .eael-contact-form-container' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
178
+ ],
179
+ ]
180
+ );
181
+
182
+
183
+ $this->add_group_control(
184
+ Group_Control_Border::get_type(),
185
+ [
186
+ 'name' => 'eael_contact_form_border',
187
+ 'selector' => '{{WRAPPER}} .eael-contact-form-container',
188
+ ]
189
+ );
190
+
191
+
192
+ $this->add_group_control(
193
+ Group_Control_Box_Shadow::get_type(),
194
+ [
195
+ 'name' => 'eael_contact_form_box_shadow',
196
+ 'selector' => '{{WRAPPER}} .eael-contact-form-container',
197
+ ]
198
+ );
199
+
200
+ $this->end_controls_section();
201
+
202
+
203
+
204
+ $this->start_controls_section(
205
+ 'eael_section_contact_form_field_styles',
206
+ [
207
+ 'label' => esc_html__( 'Form Fields Styles', 'essential-addons-elementor' ),
208
+ 'tab' => Controls_Manager::TAB_STYLE
209
+ ]
210
+ );
211
+
212
+ $this->add_control(
213
+ 'eael_contact_form_input_background',
214
+ [
215
+ 'label' => esc_html__( 'Input Field Background', 'essential-addons-elementor' ),
216
+ 'type' => Controls_Manager::COLOR,
217
+ 'selectors' => [
218
+ '{{WRAPPER}} .eael-contact-form-container input.wpcf7-text, {{WRAPPER}} .eael-contact-form-container textarea.wpcf7-textarea' => 'background: {{VALUE}};',
219
+ ],
220
+ ]
221
+ );
222
+
223
+
224
+ $this->add_responsive_control(
225
+ 'eael_contact_form_input_width',
226
+ [
227
+ 'label' => esc_html__( 'Input Width', 'essential-addons-elementor' ),
228
+ 'type' => Controls_Manager::SLIDER,
229
+ 'size_units' => [ 'px', 'em', '%' ],
230
+ 'range' => [
231
+ 'px' => [
232
+ 'min' => 10,
233
+ 'max' => 1500,
234
+ ],
235
+ 'em' => [
236
+ 'min' => 1,
237
+ 'max' => 80,
238
+ ],
239
+ ],
240
+ 'selectors' => [
241
+ '{{WRAPPER}} .eael-contact-form-container input.wpcf7-text' => 'width: {{SIZE}}{{UNIT}};',
242
+ ],
243
+ ]
244
+ );
245
+
246
+ $this->add_responsive_control(
247
+ 'eael_contact_form_textarea_width',
248
+ [
249
+ 'label' => esc_html__( 'Textarea Width', 'essential-addons-elementor' ),
250
+ 'type' => Controls_Manager::SLIDER,
251
+ 'size_units' => [ 'px', 'em', '%' ],
252
+ 'range' => [
253
+ 'px' => [
254
+ 'min' => 10,
255
+ 'max' => 1500,
256
+ ],
257
+ 'em' => [
258
+ 'min' => 1,
259
+ 'max' => 80,
260
+ ],
261
+ ],
262
+ 'selectors' => [
263
+ '{{WRAPPER}} .eael-contact-form-container textarea.wpcf7-textarea' => 'width: {{SIZE}}{{UNIT}};',
264
+ ],
265
+ ]
266
+ );
267
+
268
+ $this->add_responsive_control(
269
+ 'eael_contact_form_input_padding',
270
+ [
271
+ 'label' => esc_html__( 'Fields Padding', 'essential-addons-elementor' ),
272
+ 'type' => Controls_Manager::DIMENSIONS,
273
+ 'size_units' => [ 'px', 'em', '%' ],
274
+ 'selectors' => [
275
+ '{{WRAPPER}} .eael-contact-form-container input.wpcf7-text, {{WRAPPER}} .eael-contact-form-container textarea.wpcf7-textarea' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
276
+ ],
277
+ ]
278
+ );
279
+
280
+
281
+
282
+ $this->add_control(
283
+ 'eael_contact_form_input_border_radius',
284
+ [
285
+ 'label' => esc_html__( 'Border Radius', 'essential-addons-elementor' ),
286
+ 'type' => Controls_Manager::DIMENSIONS,
287
+ 'separator' => 'before',
288
+ 'size_units' => [ 'px' ],
289
+ 'selectors' => [
290
+ '{{WRAPPER}} .eael-contact-form-container input.wpcf7-text, {{WRAPPER}} .eael-contact-form-container textarea.wpcf7-textarea' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
291
+ ],
292
+ ]
293
+ );
294
+
295
+
296
+ $this->add_group_control(
297
+ Group_Control_Border::get_type(),
298
+ [
299
+ 'name' => 'eael_contact_form_input_border',
300
+ 'selector' => '{{WRAPPER}} .eael-contact-form-container input.wpcf7-text, {{WRAPPER}} .eael-contact-form-container textarea.wpcf7-textarea',
301
+ ]
302
+ );
303
+
304
+
305
+ $this->add_group_control(
306
+ Group_Control_Box_Shadow::get_type(),
307
+ [
308
+ 'name' => 'eael_contact_form_input_box_shadow',
309
+ 'selector' => '{{WRAPPER}} .eael-contact-form-container input.wpcf7-text, {{WRAPPER}} .eael-contact-form-container textarea.wpcf7-textarea',
310
+ ]
311
+ );
312
+
313
+ $this->add_control(
314
+ 'eael_contact_form_focus_heading',
315
+ [
316
+ 'type' => Controls_Manager::HEADING,
317
+ 'label' => esc_html__( 'Focus State Style', 'essential-addons-elementor' ),
318
+ 'separator' => 'before',
319
+ ]
320
+ );
321
+
322
+
323
+ $this->add_group_control(
324
+ Group_Control_Box_Shadow::get_type(),
325
+ [
326
+ 'name' => 'eael_contact_form_input_focus_box_shadow',
327
+ 'selector' => '{{WRAPPER}} .eael-contact-form-container input.wpcf7-text:focus, {{WRAPPER}} .eael-contact-form-container textarea.wpcf7-textarea:focus',
328
+ ]
329
+ );
330
+
331
+ $this->add_control(
332
+ 'eael_contact_form_input_focus_border',
333
+ [
334
+ 'label' => esc_html__( 'Border Color', 'essential-addons-elementor' ),
335
+ 'type' => Controls_Manager::COLOR,
336
+ 'selectors' => [
337
+ 'body {{WRAPPER}} .eael-contact-form-container input.wpcf7-text:focus, body {{WRAPPER}} .eael-contact-form-container textarea.wpcf7-textarea:focus' => 'border-color: {{VALUE}};',
338
+ ],
339
+ ]
340
+ );
341
+
342
+
343
+
344
+ $this->end_controls_section();
345
+
346
+
347
+ $this->start_controls_section(
348
+ 'eael_section_contact_form_typography',
349
+ [
350
+ 'label' => esc_html__( 'Color & Typography', 'essential-addons-elementor' ),
351
+ 'tab' => Controls_Manager::TAB_STYLE
352
+ ]
353
+ );
354
+
355
+
356
+ $this->add_control(
357
+ 'eael_contact_form_label_color',
358
+ [
359
+ 'label' => esc_html__( 'Label Color', 'essential-addons-elementor' ),
360
+ 'type' => Controls_Manager::COLOR,
361
+ 'selectors' => [
362
+ '{{WRAPPER}} .eael-contact-form-container, {{WRAPPER}} .eael-contact-form-container .wpcf7-form label' => 'color: {{VALUE}};',
363
+ ],
364
+ ]
365
+ );
366
+
367
+ $this->add_control(
368
+ 'eael_contact_form_field_color',
369
+ [
370
+ 'label' => esc_html__( 'Field Font Color', 'essential-addons-elementor' ),
371
+ 'type' => Controls_Manager::COLOR,
372
+ 'selectors' => [
373
+ '{{WRAPPER}} .eael-contact-form-container input.wpcf7-text, {{WRAPPER}} .eael-contact-form-container textarea.wpcf7-textarea' => 'color: {{VALUE}};',
374
+ ],
375
+ ]
376
+ );
377
+
378
+ $this->add_control(
379
+ 'eael_contact_form_placeholder_color',
380
+ [
381
+ 'label' => esc_html__( 'Placeholder Font Color', 'essential-addons-elementor' ),
382
+ 'type' => Controls_Manager::COLOR,
383
+ 'selectors' => [
384
+ '{{WRAPPER}} .eael-contact-form-container ::-webkit-input-placeholder' => 'color: {{VALUE}};',
385
+ '{{WRAPPER}} .eael-contact-form-container ::-moz-placeholder' => 'color: {{VALUE}};',
386
+ '{{WRAPPER}} .eael-contact-form-container ::-ms-input-placeholder' => 'color: {{VALUE}};',
387
+ ],
388
+ ]
389
+ );
390
+
391
+
392
+ $this->add_control(
393
+ 'eael_contact_form_label_heading',
394
+ [
395
+ 'type' => Controls_Manager::HEADING,
396
+ 'label' => esc_html__( 'Label Typography', 'essential-addons-elementor' ),
397
+ 'separator' => 'before',
398
+ ]
399
+ );
400
+
401
+ $this->add_group_control(
402
+ Group_Control_Typography::get_type(),
403
+ [
404
+ 'name' => 'eael_contact_form_label_typography',
405
+ 'selector' => '{{WRAPPER}} .eael-contact-form-container, {{WRAPPER}} .eael-contact-form-container .wpcf7-form label',
406
+ ]
407
+ );
408
+
409
+
410
+ $this->add_control(
411
+ 'eael_contact_form_heading_input_field',
412
+ [
413
+ 'type' => Controls_Manager::HEADING,
414
+ 'label' => esc_html__( 'Input Fields Typography', 'essential-addons-elementor' ),
415
+ 'separator' => 'before',
416
+ ]
417
+ );
418
+
419
+ $this->add_group_control(
420
+ Group_Control_Typography::get_type(),
421
+ [
422
+ 'name' => 'eael_contact_form_input_field_typography',
423
+ 'selector' => '{{WRAPPER}} .eael-contact-form-container input.wpcf7-text, {{WRAPPER}} .eael-contact-form-container textarea.wpcf7-textarea',
424
+ ]
425
+ );
426
+
427
+ $this->end_controls_section();
428
+
429
+
430
+
431
+ $this->start_controls_section(
432
+ 'eael_section_contact_form_submit_button_styles',
433
+ [
434
+ 'label' => esc_html__( 'Submit Button Styles', 'essential-addons-elementor' ),
435
+ 'tab' => Controls_Manager::TAB_STYLE
436
+ ]
437
+ );
438
+
439
+ $this->add_responsive_control(
440
+ 'eael_contact_form_submit_btn_width',
441
+ [
442
+ 'label' => esc_html__( 'Button Width', 'essential-addons-elementor' ),
443
+ 'type' => Controls_Manager::SLIDER,
444
+ 'size_units' => [ 'px', 'em', '%' ],
445
+ 'range' => [
446
+ 'px' => [
447
+ 'min' => 10,
448
+ 'max' => 1500,
449
+ ],
450
+ 'em' => [
451
+ 'min' => 1,
452
+ 'max' => 80,
453
+ ],
454
+ ],
455
+ 'selectors' => [
456
+ '{{WRAPPER}} .eael-contact-form-container input.wpcf7-submit' => 'width: {{SIZE}}{{UNIT}};',
457
+ ],
458
+ ]
459
+ );
460
+
461
+ $this->add_responsive_control(
462
+ 'eael_contact_form_submit_btn_alignment',
463
+ [
464
+ 'label' => esc_html__( 'Button Alignment', 'essential-addons-elementor' ),
465
+ 'type' => Controls_Manager::CHOOSE,
466
+ 'label_block' => true,
467
+ 'options' => [
468
+ 'default' => [
469
+ 'title' => __( 'Default', 'essential-addons-elementor' ),
470
+ 'icon' => 'fa fa-ban',
471
+ ],
472
+ 'left' => [
473
+ 'title' => esc_html__( 'Left', 'essential-addons-elementor' ),
474
+ 'icon' => 'fa fa-align-left',
475
+ ],
476
+ 'center' => [
477
+ 'title' => esc_html__( 'Center', 'essential-addons-elementor' ),
478
+ 'icon' => 'fa fa-align-center',
479
+ ],
480
+ 'right' => [
481
+ 'title' => esc_html__( 'Right', 'essential-addons-elementor' ),
482
+ 'icon' => 'fa fa-align-right',
483
+ ],
484
+ ],
485
+ 'default' => 'default',
486
+ 'prefix_class' => 'eael-contact-form-btn-align-',
487
+ ]
488
+ );
489
+
490
+ $this->add_group_control(
491
+ Group_Control_Typography::get_type(),
492
+ [
493
+ 'name' => 'eael_contact_form_submit_btn_typography',
494
+ 'scheme' => Scheme_Typography::TYPOGRAPHY_1,
495
+ 'selector' => '{{WRAPPER}} .eael-contact-form-container input.wpcf7-submit',
496
+ ]
497
+ );
498
+
499
+ $this->add_responsive_control(
500
+ 'eael_contact_form_submit_btn_margin',
501
+ [
502
+ 'label' => esc_html__( 'Margin', 'essential-addons-elementor' ),
503
+ 'type' => Controls_Manager::DIMENSIONS,
504
+ 'size_units' => [ 'px', 'em', '%' ],
505
+ 'selectors' => [
506
+ '{{WRAPPER}} .eael-contact-form-container input.wpcf7-submit' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
507
+ ],
508
+ ]
509
+ );
510
+
511
+
512
+ $this->add_responsive_control(
513
+ 'eael_contact_form_submit_btn_padding',
514
+ [
515
+ 'label' => esc_html__( 'Padding', 'essential-addons-elementor' ),
516
+ 'type' => Controls_Manager::DIMENSIONS,
517
+ 'size_units' => [ 'px', 'em', '%' ],
518
+ 'selectors' => [
519
+ '{{WRAPPER}} .eael-contact-form-container input.wpcf7-submit' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
520
+ ],
521
+ ]
522
+ );
523
+
524
+
525
+
526
+ $this->start_controls_tabs( 'eael_contact_form_submit_button_tabs' );
527
+
528
+ $this->start_controls_tab( 'normal', [ 'label' => esc_html__( 'Normal', 'essential-addons-elementor' ) ] );
529
+
530
+ $this->add_control(
531
+ 'eael_contact_form_submit_btn_text_color',
532
+ [
533
+ 'label' => esc_html__( 'Text Color', 'essential-addons-elementor' ),
534
+ 'type' => Controls_Manager::COLOR,
535
+ 'selectors' => [
536
+ '{{WRAPPER}} .eael-contact-form-container input.wpcf7-submit' => 'color: {{VALUE}};',
537
+ ],
538
+ ]
539
+ );
540
+
541
+
542
+
543
+ $this->add_control(
544
+ 'eael_contact_form_submit_btn_background_color',
545
+ [
546
+ 'label' => esc_html__( 'Background Color', 'essential-addons-elementor' ),
547
+ 'type' => Controls_Manager::COLOR,
548
+ 'selectors' => [
549
+ '{{WRAPPER}} .eael-contact-form-container input.wpcf7-submit' => 'background-color: {{VALUE}};',
550
+ ],
551
+ ]
552
+ );
553
+
554
+ $this->add_group_control(
555
+ Group_Control_Border::get_type(),
556
+ [
557
+ 'name' => 'eael_contact_form_submit_btn_border',
558
+ 'selector' => '{{WRAPPER}} .eael-contact-form-container input.wpcf7-submit',
559
+ ]
560
+ );
561
+
562
+ $this->add_control(
563
+ 'eael_contact_form_submit_btn_border_radius',
564
+ [
565
+ 'label' => esc_html__( 'Border Radius', 'essential-addons-elementor' ),
566
+ 'type' => Controls_Manager::SLIDER,
567
+ 'range' => [
568
+ 'px' => [
569
+ 'max' => 100,
570
+ ],
571
+ ],
572
+ 'selectors' => [
573
+ '{{WRAPPER}} .eael-contact-form-container input.wpcf7-submit' => 'border-radius: {{SIZE}}px;',
574
+ ],
575
+ ]
576
+ );
577
+
578
+
579
+
580
+ $this->end_controls_tab();
581
+
582
+ $this->start_controls_tab( 'eael_contact_form_submit_btn_hover', [ 'label' => esc_html__( 'Hover', 'essential-addons-elementor' ) ] );
583
+
584
+ $this->add_control(
585
+ 'eael_contact_form_submit_btn_hover_text_color',
586
+ [
587
+ 'label' => esc_html__( 'Text Color', 'essential-addons-elementor' ),
588
+ 'type' => Controls_Manager::COLOR,
589
+ 'selectors' => [
590
+ '{{WRAPPER}} .eael-contact-form-container input.wpcf7-submit:hover' => 'color: {{VALUE}};',
591
+ ],
592
+ ]
593
+ );
594
+
595
+ $this->add_control(
596
+ 'eael_contact_form_submit_btn_hover_background_color',
597
+ [
598
+ 'label' => esc_html__( 'Background Color', 'essential-addons-elementor' ),
599
+ 'type' => Controls_Manager::COLOR,
600
+ 'selectors' => [
601
+ '{{WRAPPER}} .eael-contact-form-container input.wpcf7-submit:hover' => 'background-color: {{VALUE}};',
602
+ ],
603
+ ]
604
+ );
605
+
606
+ $this->add_control(
607
+ 'eael_contact_form_submit_btn_hover_border_color',
608
+ [
609
+ 'label' => esc_html__( 'Border Color', 'essential-addons-elementor' ),
610
+ 'type' => Controls_Manager::COLOR,
611
+ 'selectors' => [
612
+ '{{WRAPPER}} .eael-contact-form-container input.wpcf7-submit:hover' => 'border-color: {{VALUE}};',
613
+ ],
614
+ ]
615
+ );
616
+
617
+ $this->end_controls_tab();
618
+
619
+ $this->end_controls_tabs();
620
+
621
+
622
+ $this->add_group_control(
623
+ Group_Control_Box_Shadow::get_type(),
624
+ [
625
+ 'name' => 'eael_contact_form_submit_btn_box_shadow',
626
+ 'selector' => '{{WRAPPER}} .eael-contact-form-container input.wpcf7-submit',
627
+ ]
628
+ );
629
+
630
+
631
+ $this->end_controls_section();
632
+
633
+
634
+ }
635
+
636
+
637
+ protected function render( ) {
638
+
639
+ $settings = $this->get_settings();
640
+
641
+
642
+ ?>
643
+
644
+
645
+ <?php if ( ! empty( $settings['eael_wpcf7_form'] ) ) : ?>
646
+ <div class="eael-contact-form-container">
647
+ <?php echo do_shortcode( '[contact-form-7 id="' . $settings['eael_wpcf7_form'] . '" ]' ); ?>
648
+ </div>
649
+ <?php endif; ?>
650
+
651
+ <?php
652
+
653
+ }
654
+
655
+ protected function content_template() {''
656
+
657
+ ?>
658
+
659
+
660
+ <?php
661
+ }
662
+ }
663
+
664
+
665
+ Plugin::instance()->widgets_manager->register_widget_type( new Widget_Eael_Contact_Form() );
elements/countdown/countdown.php ADDED
@@ -0,0 +1,468 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace Elementor;
3
+
4
+ if ( ! defined( 'ABSPATH' ) ) exit; // If this file is called directly, abort.
5
+
6
+
7
+ class Widget_Eael_Countdown extends Widget_Base {
8
+
9
+ public function get_name() {
10
+ return 'eael-countdown';
11
+ }
12
+
13
+ public function get_title() {
14
+ return esc_html__( 'EA Countdown', 'essential-addons-elementor' );
15
+ }
16
+
17
+ public function get_icon() {
18
+ return 'eicon-countdown';
19
+ }
20
+
21
+ public function get_categories() {
22
+ return [ 'essential-addons-elementor' ];
23
+ }
24
+
25
+
26
+ protected function _register_controls() {
27
+
28
+
29
+ $this->start_controls_section(
30
+ 'eael_section_countdown_settings_general',
31
+ [
32
+ 'label' => esc_html__( 'Countdown Settings', 'essential-addons-elementor' )
33
+ ]
34
+ );
35
+
36
+ $this->add_control(
37
+ 'eael_countdown_due_time',
38
+ [
39
+ 'label' => esc_html__( 'Countdown Due Date', 'essential-addons-elementor' ),
40
+ 'type' => Controls_Manager::DATE_TIME,
41
+ 'default' => date("Y-m-d", strtotime("+ 1 day")),
42
+ 'description' => esc_html__( 'Set the due date and time', 'essential-addons-elementor' ),
43
+ ]
44
+ );
45
+
46
+ $this->add_control(
47
+ 'eael_countdown_label_view',
48
+ [
49
+ 'label' => esc_html__( 'Label Position', 'essential-addons-elementor' ),
50
+ 'type' => Controls_Manager::SELECT,
51
+ 'default' => 'eael-countdown-label-block',
52
+ 'options' => [
53
+ 'eael-countdown-label-block' => esc_html__( 'Block', 'essential-addons-elementor' ),
54
+ 'eael-countdown-label-inline' => esc_html__( 'Inline', 'essential-addons-elementor' ),
55
+ ],
56
+ ]
57
+ );
58
+
59
+ $this->add_responsive_control(
60
+ 'eael_countdown_label_padding_left',
61
+ [
62
+ 'label' => esc_html__( 'Left spacing for Labels', 'essential-addons-elementor' ),
63
+ 'type' => Controls_Manager::SLIDER,
64
+ 'description' => esc_html__( 'Use when you select inline labels', 'essential-addons-elementor' ),
65
+ 'range' => [
66
+ 'px' => [
67
+ 'min' => 0,
68
+ 'max' => 100,
69
+ ],
70
+ ],
71
+ 'selectors' => [
72
+ '{{WRAPPER}} .eael-countdown-label' => 'padding-left:{{SIZE}}px;',
73
+ ],
74
+ 'condition' => [
75
+ 'eael_countdown_label_view' => 'eael-countdown-label-inline',
76
+ ],
77
+ ]
78
+ );
79
+
80
+
81
+ $this->end_controls_section();
82
+
83
+ $this->start_controls_section(
84
+ 'eael_section_countdown_settings_content',
85
+ [
86
+ 'label' => esc_html__( 'Content Settings', 'essential-addons-elementor' )
87
+ ]
88
+ );
89
+
90
+
91
+ $this->add_control(
92
+ 'eael_countdown_days',
93
+ [
94
+ 'label' => esc_html__( 'Display Days', 'essential-addons-elementor' ),
95
+ 'type' => Controls_Manager::SWITCHER,
96
+ 'return_value' => 'yes',
97
+ 'default' => 'yes',
98
+ ]
99
+ );
100
+
101
+ $this->add_control(
102
+ 'eael_countdown_days_label',
103
+ [
104
+ 'label' => esc_html__( 'Custom Label for Days', 'essential-addons-elementor' ),
105
+ 'type' => Controls_Manager::TEXT,
106
+ 'default' => esc_html__( 'Days', 'essential-addons-elementor' ),
107
+ 'description' => esc_html__( 'Leave blank to hide', 'essential-addons-elementor' ),
108
+ 'condition' => [
109
+ 'eael_countdown_days' => 'yes',
110
+ ],
111
+ ]
112
+ );
113
+
114
+
115
+ $this->add_control(
116
+ 'eael_countdown_hours',
117
+ [
118
+ 'label' => esc_html__( 'Display Hours', 'essential-addons-elementor' ),
119
+ 'type' => Controls_Manager::SWITCHER,
120
+ 'return_value' => 'yes',
121
+ 'default' => 'yes',
122
+ ]
123
+ );
124
+
125
+ $this->add_control(
126
+ 'eael_countdown_hours_label',
127
+ [
128
+ 'label' => esc_html__( 'Custom Label for Hours', 'essential-addons-elementor' ),
129
+ 'type' => Controls_Manager::TEXT,
130
+ 'default' => esc_html__( 'Hours', 'essential-addons-elementor' ),
131
+ 'description' => esc_html__( 'Leave blank to hide', 'essential-addons-elementor' ),
132
+ 'condition' => [
133
+ 'eael_countdown_hours' => 'yes',
134
+ ],
135
+ ]
136
+ );
137
+
138
+ $this->add_control(
139
+ 'eael_countdown_minutes',
140
+ [
141
+ 'label' => esc_html__( 'Display Minutes', 'essential-addons-elementor' ),
142
+ 'type' => Controls_Manager::SWITCHER,
143
+ 'return_value' => 'yes',
144
+ 'default' => 'yes',
145
+ ]
146
+ );
147
+
148
+ $this->add_control(
149
+ 'eael_countdown_minutes_label',
150
+ [
151
+ 'label' => esc_html__( 'Custom Label for Minutes', 'essential-addons-elementor' ),
152
+ 'type' => Controls_Manager::TEXT,
153
+ 'default' => esc_html__( 'Minutes', 'essential-addons-elementor' ),
154
+ 'description' => esc_html__( 'Leave blank to hide', 'essential-addons-elementor' ),
155
+ 'condition' => [
156
+ 'eael_countdown_minutes' => 'yes',
157
+ ],
158
+ ]
159
+ );
160
+
161
+ $this->add_control(
162
+ 'eael_countdown_seconds',
163
+ [
164
+ 'label' => esc_html__( 'Display Seconds', 'essential-addons-elementor' ),
165
+ 'type' => Controls_Manager::SWITCHER,
166
+ 'return_value' => 'yes',
167
+ 'default' => 'yes',
168
+ ]
169
+ );
170
+
171
+ $this->add_control(
172
+ 'eael_countdown_seconds_label',
173
+ [
174
+ 'label' => esc_html__( 'Custom Label for Seconds', 'essential-addons-elementor' ),
175
+ 'type' => Controls_Manager::TEXT,
176
+ 'default' => esc_html__( 'Seconds', 'essential-addons-elementor' ),
177
+ 'description' => esc_html__( 'Leave blank to hide', 'essential-addons-elementor' ),
178
+ 'condition' => [
179
+ 'eael_countdown_seconds' => 'yes',
180
+ ],
181
+ ]
182
+ );
183
+
184
+ $this->add_control(
185
+ 'eael_countdown_separator_heading',
186
+ [
187
+ 'label' => __( 'Countdown Separator', 'essential-addons-elementor' ),
188
+ 'type' => Controls_Manager::HEADING,
189
+ ]
190
+ );
191
+
192
+ $this->add_control(
193
+ 'eael_countdown_separator',
194
+ [
195
+ 'label' => esc_html__( 'Display Separator', 'essential-addons-elementor' ),
196
+ 'type' => Controls_Manager::SWITCHER,
197
+ 'return_value' => 'eael-countdown-show-separator',
198
+ 'default' => '',
199
+ ]
200
+ );
201
+
202
+ $this->add_control(
203
+ 'eael_countdown_separator_color',
204
+ [
205
+ 'label' => esc_html__( 'Separator Color', 'essential-addons-elementor' ),
206
+ 'type' => Controls_Manager::COLOR,
207
+ 'default' => '',
208
+ 'condition' => [
209
+ 'eael_countdown_separator' => 'eael-countdown-show-separator',
210
+ ],
211
+ 'selectors' => [
212
+ '{{WRAPPER}} .eael-countdown-digits::after' => 'color: {{VALUE}};',
213
+ ],
214
+ ]
215
+ );
216
+
217
+ $this->add_group_control(
218
+ Group_Control_Typography::get_type(),
219
+ [
220
+ 'name' => 'eael_countdown_separator_typography',
221
+ 'scheme' => Scheme_Typography::TYPOGRAPHY_2,
222
+ 'selector' => '{{WRAPPER}} .eael-countdown-digits::after',
223
+ 'condition' => [
224
+ 'eael_countdown_separator' => 'eael-countdown-show-separator',
225
+ ],
226
+ ]
227
+ );
228
+
229
+
230
+ $this->end_controls_section();
231
+
232
+
233
+ $this->start_controls_section(
234
+ 'eael_section_countdown_styles_general',
235
+ [
236
+ 'label' => esc_html__( 'Countdown Styles', 'essential-addons-elementor' ),
237
+ 'tab' => Controls_Manager::TAB_STYLE
238
+ ]
239
+ );
240
+
241
+ $this->add_control(
242
+ 'eael_countdown_background',
243
+ [
244
+ 'label' => esc_html__( 'Box Background Color', 'essential-addons-elementor' ),
245
+ 'type' => Controls_Manager::COLOR,
246
+ 'default' => '#262625',
247
+ 'selectors' => [
248
+ '{{WRAPPER}} .eael-countdown-item > div' => 'background: {{VALUE}};',
249
+ ],
250
+ ]
251
+ );
252
+
253
+ $this->add_responsive_control(
254
+ 'eael_countdown_spacing',
255
+ [
256
+ 'label' => esc_html__( 'Space Between Boxes', 'essential-addons-elementor' ),
257
+ 'type' => Controls_Manager::SLIDER,
258
+ 'default' => [
259
+ 'size' => 15,
260
+ ],
261
+ 'range' => [
262
+ 'px' => [
263
+ 'min' => 0,
264
+ 'max' => 100,
265
+ ],
266
+ ],
267
+ 'selectors' => [
268
+ '{{WRAPPER}} .eael-countdown-item > div' => 'margin-right:{{SIZE}}px; margin-left:{{SIZE}}px;',
269
+ '{{WRAPPER}} .eael-countdown-container' => 'margin-right: -{{SIZE}}px; margin-left: -{{SIZE}}px;',
270
+ ],
271
+ ]
272
+ );
273
+
274
+ $this->add_responsive_control(
275
+ 'eael_countdown_container_margin_bottom',
276
+ [
277
+ 'label' => esc_html__( 'Space Below Container', 'essential-addons-elementor' ),
278
+ 'type' => Controls_Manager::SLIDER,
279
+ 'default' => [
280
+ 'size' => 0,
281
+ ],
282
+ 'range' => [
283
+ 'px' => [
284
+ 'min' => 0,
285
+ 'max' => 100,
286
+ ],
287
+ ],
288
+ 'selectors' => [
289
+ '{{WRAPPER}} .eael-countdown-container' => 'margin-bottom:{{SIZE}}px;',
290
+ ],
291
+ ]
292
+ );
293
+
294
+ $this->add_responsive_control(
295
+ 'eael_countdown_box_padding',
296
+ [
297
+ 'label' => esc_html__( 'Padding', 'essential-addons-elementor' ),
298
+ 'type' => Controls_Manager::DIMENSIONS,
299
+ 'size_units' => [ 'px', '%', 'em' ],
300
+ 'selectors' => [
301
+ '{{WRAPPER}} .eael-countdown-item > div' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
302
+ ],
303
+ ]
304
+ );
305
+
306
+ $this->add_group_control(
307
+ Group_Control_Border::get_type(),
308
+ [
309
+ 'name' => 'eael_countdown_box_border',
310
+ 'label' => esc_html__( 'Border', 'essential-addons-elementor' ),
311
+ 'selector' => '{{WRAPPER}} .eael-countdown-item > div',
312
+ ]
313
+ );
314
+
315
+ $this->add_control(
316
+ 'eael_countdown_box_border_radius',
317
+ [
318
+ 'label' => esc_html__( 'Border Radius', 'essential-addons-elementor' ),
319
+ 'type' => Controls_Manager::DIMENSIONS,
320
+ 'selectors' => [
321
+ '{{WRAPPER}} .eael-countdown-item > div' => 'border-radius: {{TOP}}px {{RIGHT}}px {{BOTTOM}}px {{LEFT}}px;',
322
+ ],
323
+ ]
324
+ );
325
+
326
+ $this->end_controls_section();
327
+
328
+
329
+ $this->start_controls_section(
330
+ 'eael_section_countdown_styles_content',
331
+ [
332
+ 'label' => esc_html__( 'Color &amp; Typography', 'essential-addons-elementor' ),
333
+ 'tab' => Controls_Manager::TAB_STYLE
334
+ ]
335
+ );
336
+
337
+ $this->add_control(
338
+ 'eael_countdown_digits_heading',
339
+ [
340
+ 'label' => __( 'Countdown Digits', 'essential-addons-elementor' ),
341
+ 'type' => Controls_Manager::HEADING,
342
+ ]
343
+ );
344
+
345
+ $this->add_control(
346
+ 'eael_countdown_digits_color',
347
+ [
348
+ 'label' => esc_html__( 'Digits Color', 'essential-addons-elementor' ),
349
+ 'type' => Controls_Manager::COLOR,
350
+ 'default' => '#fec503',
351
+ 'selectors' => [
352
+ '{{WRAPPER}} .eael-countdown-digits' => 'color: {{VALUE}};',
353
+ ],
354
+ ]
355
+ );
356
+
357
+ $this->add_group_control(
358
+ Group_Control_Typography::get_type(),
359
+ [
360
+ 'name' => 'eael_countdown_digit_typography',
361
+ 'scheme' => Scheme_Typography::TYPOGRAPHY_2,
362
+ 'selector' => '{{WRAPPER}} .eael-countdown-digits',
363
+ ]
364
+ );
365
+
366
+ $this->add_control(
367
+ 'eael_countdown_label_heading',
368
+ [
369
+ 'label' => __( 'Countdown Labels', 'essential-addons-elementor' ),
370
+ 'type' => Controls_Manager::HEADING,
371
+ ]
372
+ );
373
+
374
+ $this->add_control(
375
+ 'eael_countdown_label_color',
376
+ [
377
+ 'label' => esc_html__( 'Label Color', 'essential-addons-elementor' ),
378
+ 'type' => Controls_Manager::COLOR,
379
+ 'default' => '#ffffff',
380
+ 'selectors' => [
381
+ '{{WRAPPER}} .eael-countdown-label' => 'color: {{VALUE}};',
382
+ ],
383
+ ]
384
+ );
385
+
386
+ $this->add_group_control(
387
+ Group_Control_Typography::get_type(),
388
+ [
389
+ 'name' => 'eael_countdown_label_typography',
390
+ 'scheme' => Scheme_Typography::TYPOGRAPHY_2,
391
+ 'selector' => '{{WRAPPER}} .eael-countdown-label',
392
+ ]
393
+ );
394
+
395
+
396
+ $this->end_controls_section();
397
+
398
+
399
+
400
+ $this->start_controls_section(
401
+ 'eael_section_countdown_styles_individual',
402
+ [
403
+ 'label' => esc_html__( 'Individual Box Styling', 'essential-addons-elementor' ),
404
+ 'tab' => Controls_Manager::TAB_STYLE
405
+ ]
406
+ );
407
+
408
+
409
+ $this->add_control(
410
+ 'eael_countdown_individual_heading',
411
+ [
412
+ 'label' => __( 'Get Pro version to avail this feature.', 'essential-addons-elementor' ),
413
+ 'type' => Controls_Manager::HEADING,
414
+ ]
415
+ );
416
+
417
+
418
+ $this->end_controls_section();
419
+
420
+
421
+ }
422
+
423
+
424
+ protected function render( ) {
425
+
426
+ $settings = $this->get_settings();
427
+
428
+ $get_due_date = esc_attr($settings['eael_countdown_due_time']);
429
+ $due_date = date("M d Y G:i:s", strtotime($get_due_date));
430
+
431
+
432
+ ?>
433
+
434
+ <div class="eael-countdown-wrapper">
435
+ <div class="eael-countdown-container <?php echo esc_attr($settings['eael_countdown_label_view'] ); ?> <?php echo esc_attr($settings['eael_countdown_separator'] ); ?>">
436
+ <ul id="eael-countdown-<?php echo esc_attr($this->get_id()); ?>" class="eael-countdown-items" data-date="<?php echo esc_attr($due_date) ; ?>">
437
+ <?php if ( ! empty( $settings['eael_countdown_days'] ) ) : ?><li class="eael-countdown-item"><div class="eael-countdown-days"><span data-days class="eael-countdown-digits">00</span><?php if ( ! empty( $settings['eael_countdown_days_label'] ) ) : ?><span class="eael-countdown-label"><?php echo esc_attr($settings['eael_countdown_days_label'] ); ?></span><?php endif; ?></div></li><?php endif; ?>
438
+ <?php if ( ! empty( $settings['eael_countdown_hours'] ) ) : ?><li class="eael-countdown-item"><div class="eael-countdown-hours"><span data-hours class="eael-countdown-digits">00</span><?php if ( ! empty( $settings['eael_countdown_hours_label'] ) ) : ?><span class="eael-countdown-label"><?php echo esc_attr($settings['eael_countdown_hours_label'] ); ?></span><?php endif; ?></div></li><?php endif; ?>
439
+ <?php if ( ! empty( $settings['eael_countdown_minutes'] ) ) : ?><li class="eael-countdown-item"><div class="eael-countdown-minutes"><span data-minutes class="eael-countdown-digits">00</span><?php if ( ! empty( $settings['eael_countdown_minutes_label'] ) ) : ?><span class="eael-countdown-label"><?php echo esc_attr($settings['eael_countdown_minutes_label'] ); ?></span><?php endif; ?></div></li><?php endif; ?>
440
+ <?php if ( ! empty( $settings['eael_countdown_seconds'] ) ) : ?><li class="eael-countdown-item"><div class="eael-countdown-seconds"><span data-seconds class="eael-countdown-digits">00</span><?php if ( ! empty( $settings['eael_countdown_seconds_label'] ) ) : ?><span class="eael-countdown-label"><?php echo esc_attr($settings['eael_countdown_seconds_label'] ); ?></span><?php endif; ?></div></li><?php endif; ?>
441
+ </ul>
442
+ <div class="clearfix"></div>
443
+ </div>
444
+ </div>
445
+
446
+
447
+ <script type="text/javascript">
448
+ jQuery(document).ready(function($) {
449
+ 'use strict';
450
+ $("#eael-countdown-<?php echo esc_attr($this->get_id()); ?>").countdown();
451
+ });
452
+ </script>
453
+
454
+ <?php
455
+
456
+ }
457
+
458
+ protected function content_template() {
459
+
460
+ ?>
461
+
462
+
463
+ <?php
464
+ }
465
+ }
466
+
467
+
468
+ Plugin::instance()->widgets_manager->register_widget_type( new Widget_Eael_Countdown() );
elements/creative-button/creative-button.php ADDED
@@ -0,0 +1,447 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace Elementor;
3
+
4
+
5
+ if ( ! defined( 'ABSPATH' ) ) exit; // If this file is called directly, abort.
6
+
7
+
8
+ class Widget_Eael_Creative_Button extends Widget_Base {
9
+
10
+
11
+ public function get_name() {
12
+ return 'eael-creative-button';
13
+ }
14
+
15
+ public function get_title() {
16
+ return esc_html__( 'EA Creative Button', 'essential-addons-elementor' );
17
+ }
18
+
19
+ public function get_icon() {
20
+ return 'eicon-button';
21
+ }
22
+
23
+ public function get_categories() {
24
+ return [ 'essential-addons-elementor' ];
25
+ }
26
+
27
+
28
+ protected function _register_controls() {
29
+
30
+ // Content Controls
31
+ $this->start_controls_section(
32
+ 'eael_section_creative_button_content',
33
+ [
34
+ 'label' => esc_html__( 'Button Content', 'essential-addons-elementor' )
35
+ ]
36
+ );
37
+
38
+
39
+ $this->add_control(
40
+ 'creative_button_text',
41
+ [
42
+ 'label' => __( 'Button Text', 'essential-addons-elementor' ),
43
+ 'type' => Controls_Manager::TEXT,
44
+ 'label_block' => true,
45
+ 'default' => 'Click Me!',
46
+ 'placeholder' => __( 'Enter button text', 'essential-addons-elementor' ),
47
+ 'title' => __( 'Enter button text here', 'essential-addons-elementor' ),
48
+ ]
49
+ );
50
+
51
+ $this->add_control(
52
+ 'creative_button_secondary_text',
53
+ [
54
+ 'label' => __( 'Button Secondary Text', 'essential-addons-elementor' ),
55
+ 'type' => Controls_Manager::TEXT,
56
+ 'label_block' => true,
57
+ 'default' => 'Go!',
58
+ 'placeholder' => __( 'Enter button secondary text', 'essential-addons-elementor' ),
59
+ 'title' => __( 'Enter button secondary text here', 'essential-addons-elementor' ),
60
+ ]
61
+ );
62
+
63
+
64
+ $this->add_control(
65
+ 'creative_button_link_url',
66
+ [
67
+ 'label' => __( 'Link URL', 'essential-addons-elementor' ),
68
+ 'type' => Controls_Manager::TEXT,
69
+ 'label_block' => true,
70
+ 'default' => '#',
71
+ 'placeholder' => __( 'Enter link URL for the button', 'essential-addons-elementor' ),
72
+ 'title' => __( 'Enter heading for the button', 'essential-addons-elementor' ),
73
+ ]
74
+ );
75
+
76
+ $this->add_control(
77
+ 'creative_button_link_target',
78
+ [
79
+ 'label' => esc_html__( 'Open in new window?', 'essential-addons-elementor' ),
80
+ 'type' => Controls_Manager::SWITCHER,
81
+ 'label_on' => __( '_blank', 'essential-addons-elementor' ),
82
+ 'label_off' => __( '_self', 'essential-addons-elementor' ),
83
+ 'default' => '_self',
84
+ ]
85
+ );
86
+
87
+ $this->add_responsive_control(
88
+ 'eael_creative_button_alignment',
89
+ [
90
+ 'label' => esc_html__( 'Button Alignment', 'essential-addons-elementor' ),
91
+ 'type' => Controls_Manager::CHOOSE,
92
+ 'label_block' => true,
93
+ 'options' => [
94
+ 'left' => [
95
+ 'title' => esc_html__( 'Left', 'essential-addons-elementor' ),
96
+ 'icon' => 'fa fa-align-left',
97
+ ],
98
+ 'center' => [
99
+ 'title' => esc_html__( 'Center', 'essential-addons-elementor' ),
100
+ 'icon' => 'fa fa-align-center',
101
+ ],
102
+ 'right' => [
103
+ 'title' => esc_html__( 'Right', 'essential-addons-elementor' ),
104
+ 'icon' => 'fa fa-align-right',
105
+ ],
106
+ 'justify' => [
107
+ 'title' => __( 'Justified', 'essential-addons-elementor' ),
108
+ 'icon' => 'fa fa-align-justify',
109
+ ],
110
+ ],
111
+ 'default' => '',
112
+ 'prefix_class' => 'eael-creative-button-align-',
113
+ ]
114
+ );
115
+
116
+ $this->add_control(
117
+ 'eael_creative_button_icon',
118
+ [
119
+ 'label' => esc_html__( 'Icon', 'essential-addons-elementor' ),
120
+ 'type' => Controls_Manager::ICON,
121
+ ]
122
+ );
123
+
124
+ $this->add_control(
125
+ 'eael_creative_button_icon_alignment',
126
+ [
127
+ 'label' => esc_html__( 'Icon Position', 'essential-addons-elementor' ),
128
+ 'type' => Controls_Manager::SELECT,
129
+ 'default' => 'left',
130
+ 'options' => [
131
+ 'left' => esc_html__( 'Before', 'essential-addons-elementor' ),
132
+ 'right' => esc_html__( 'After', 'essential-addons-elementor' ),
133
+ ],
134
+ 'condition' => [
135
+ 'eael_creative_button_icon!' => '',
136
+ ],
137
+ ]
138
+ );
139
+
140
+
141
+ $this->add_control(
142
+ 'eael_creative_button_icon_indent',
143
+ [
144
+ 'label' => esc_html__( 'Icon Spacing', 'essential-addons-elementor' ),
145
+ 'type' => Controls_Manager::SLIDER,
146
+ 'range' => [
147
+ 'px' => [
148
+ 'max' => 60,
149
+ ],
150
+ ],
151
+ 'condition' => [
152
+ 'eael_creative_button_icon!' => '',
153
+ ],
154
+ 'selectors' => [
155
+ '{{WRAPPER}} .eael-creative-button-icon-right' => 'margin-left: {{SIZE}}px;',
156
+ '{{WRAPPER}} .eael-creative-button-icon-left' => 'margin-right: {{SIZE}}px;',
157
+ '{{WRAPPER}} .eael-creative-button--shikoba i' => 'left: -{{SIZE}}px;',
158
+ ],
159
+ ]
160
+ );
161
+
162
+ $this->end_controls_section();
163
+
164
+
165
+
166
+ // Style Controls
167
+ $this->start_controls_section(
168
+ 'eael_section_creative_button_settings',
169
+ [
170
+ 'label' => esc_html__( 'Button Effects &amp; Styles', 'essential-addons-elementor' ),
171
+ 'tab' => Controls_Manager::TAB_STYLE
172
+ ]
173
+ );
174
+
175
+ $this->add_control(
176
+ 'creative_button_effect',
177
+ [
178
+ 'label' => esc_html__( 'Set Button Effect', 'essential-addons-elementor' ),
179
+ 'type' => Controls_Manager::SELECT,
180
+ 'default' => 'eael-creative-button--default',
181
+ 'options' => [
182
+ 'eael-creative-button--default' => esc_html__( 'Default', 'essential-addons-elementor' ),
183
+ 'eael-creative-button--winona' => esc_html__( 'Winona', 'essential-addons-elementor' ),
184
+ 'eael-creative-button--ujarak' => esc_html__( 'Ujarak', 'essential-addons-elementor' ),
185
+ 'eael-creative-button--wayra' => esc_html__( 'Wayra', 'essential-addons-elementor' ),
186
+ 'eael-creative-button--tamaya' => esc_html__( 'Tamaya', 'essential-addons-elementor' ),
187
+ 'eael-creative-button--rayen' => esc_html__( 'Rayen', 'essential-addons-elementor' ),
188
+ ],
189
+ 'description' => 'More effects on <a href="https://essential-addons.com/elementor/buy.php">Pro version</a>'
190
+ ]
191
+ );
192
+
193
+
194
+
195
+ $this->add_group_control(
196
+ Group_Control_Typography::get_type(),
197
+ [
198
+ 'name' => 'eael_creative_button_typography',
199
+ 'scheme' => Scheme_Typography::TYPOGRAPHY_1,
200
+ 'selector' => '{{WRAPPER}} .eael-creative-button',
201
+ ]
202
+ );
203
+
204
+ $this->add_responsive_control(
205
+ 'eael_creative_button_padding',
206
+ [
207
+ 'label' => esc_html__( 'Button Padding', 'essential-addons-elementor' ),
208
+ 'type' => Controls_Manager::DIMENSIONS,
209
+ 'size_units' => [ 'px', 'em', '%' ],
210
+ ]
211
+ );
212
+
213
+
214
+
215
+ $this->start_controls_tabs( 'eael_creative_button_tabs' );
216
+
217
+ $this->start_controls_tab( 'normal', [ 'label' => esc_html__( 'Normal', 'essential-addons-elementor' ) ] );
218
+
219
+ $this->add_control(
220
+ 'eael_creative_button_text_color',
221
+ [
222
+ 'label' => esc_html__( 'Text Color', 'essential-addons-elementor' ),
223
+ 'type' => Controls_Manager::COLOR,
224
+ 'default' => '#ffffff',
225
+ ]
226
+ );
227
+
228
+
229
+
230
+ $this->add_control(
231
+ 'eael_creative_button_background_color',
232
+ [
233
+ 'label' => esc_html__( 'Background Color', 'essential-addons-elementor' ),
234
+ 'type' => Controls_Manager::COLOR,
235
+ 'default' => '#333333',
236
+ ]
237
+ );
238
+
239
+ $this->add_group_control(
240
+ Group_Control_Border::get_type(),
241
+ [
242
+ 'name' => 'eael_creative_button_border',
243
+ 'selector' => '{{WRAPPER}} .eael-creative-button',
244
+ ]
245
+ );
246
+
247
+ $this->add_control(
248
+ 'eael_creative_button_border_radius',
249
+ [
250
+ 'label' => esc_html__( 'Border Radius', 'essential-addons-elementor' ),
251
+ 'type' => Controls_Manager::SLIDER,
252
+ 'range' => [
253
+ 'px' => [
254
+ 'max' => 100,
255
+ ],
256
+ ],
257
+ 'selectors' => [
258
+ '{{WRAPPER}} .eael-creative-button' => 'border-radius: {{SIZE}}px;',
259
+ '{{WRAPPER}} .eael-creative-button::before' => 'border-radius: {{SIZE}}px;',
260
+ '{{WRAPPER}} .eael-creative-button::after' => 'border-radius: {{SIZE}}px;',
261
+ ],
262
+ ]
263
+ );
264
+
265
+
266
+
267
+ $this->end_controls_tab();
268
+
269
+ $this->start_controls_tab( 'eael_creative_button_hover', [ 'label' => esc_html__( 'Hover', 'essential-addons-elementor' ) ] );
270
+
271
+ $this->add_control(
272
+ 'eael_creative_button_hover_text_color',
273
+ [
274
+ 'label' => esc_html__( 'Text Color', 'essential-addons-elementor' ),
275
+ 'type' => Controls_Manager::COLOR,
276
+ 'default' => '#ffffff',
277
+ ]
278
+ );
279
+
280
+ $this->add_control(
281
+ 'eael_creative_button_hover_background_color',
282
+ [
283
+ 'label' => esc_html__( 'Background Color', 'essential-addons-elementor' ),
284
+ 'type' => Controls_Manager::COLOR,
285
+ 'default' => '#f54',
286
+ ]
287
+ );
288
+
289
+ $this->add_control(
290
+ 'eael_creative_button_hover_border_color',
291
+ [
292
+ 'label' => esc_html__( 'Border Color', 'essential-addons-elementor' ),
293
+ 'type' => Controls_Manager::COLOR,
294
+ 'default' => '',
295
+ 'selectors' => [
296
+ '{{WRAPPER}} .eael-creative-button:hover' => 'border-color: {{VALUE}};',
297
+ '{{WRAPPER}} .eael-creative-button.eael-creative-button--wapasha::before' => 'border-color: {{VALUE}};',
298
+ '{{WRAPPER}} .eael-creative-button.eael-creative-button--antiman::before' => 'border-color: {{VALUE}};',
299
+ '{{WRAPPER}} .eael-creative-button.eael-creative-button--pipaluk::before' => 'border-color: {{VALUE}};',
300
+ '{{WRAPPER}} .eael-creative-button.eael-creative-button--quidel::before' => 'background-color: {{VALUE}};',
301
+ ],
302
+ ]
303
+ );
304
+
305
+ $this->end_controls_tab();
306
+
307
+ $this->end_controls_tabs();
308
+
309
+
310
+ $this->add_group_control(
311
+ Group_Control_Box_Shadow::get_type(),
312
+ [
313
+ 'name' => 'button_box_shadow',
314
+ 'selector' => '{{WRAPPER}} .eael-creative-button',
315
+ ]
316
+ );
317
+
318
+
319
+ $this->end_controls_section();
320
+
321
+
322
+ $this->end_controls_section();
323
+
324
+
325
+ }
326
+
327
+
328
+ protected function render( ) {
329
+
330
+
331
+ $settings = $this->get_settings();
332
+ $creative_button_image = $this->get_settings( 'creative_button_image' );
333
+ $button_padding = $this->get_settings( 'eael_creative_button_padding' );
334
+
335
+ ?>
336
+
337
+
338
+ <a id="eael-creative-button-<?php echo esc_attr($this->get_id()); ?>" class="eael-creative-button <?php echo esc_attr($settings['creative_button_effect'] ); ?>"
339
+ href="<?php echo esc_attr($settings['creative_button_link_url'] ); ?>" target="<?php echo esc_attr($settings['creative_button_link_target'] ); ?>" data-text="<?php echo esc_attr($settings['creative_button_secondary_text'] ); ?>">
340
+ <span>
341
+ <?php if ( ! empty( $settings['eael_creative_button_icon'] ) && $settings['eael_creative_button_icon_alignment'] == 'left' ) : ?>
342
+ <i class="<?php echo esc_attr($settings['eael_creative_button_icon'] ); ?> eael-creative-button-icon-left" aria-hidden="true"></i>
343
+ <?php endif; ?>
344
+
345
+ <?php echo $settings['creative_button_text'];?>
346
+
347
+ <?php if ( ! empty( $settings['eael_creative_button_icon'] ) && $settings['eael_creative_button_icon_alignment'] == 'right' ) : ?>
348
+ <i class="<?php echo esc_attr($settings['eael_creative_button_icon'] ); ?> eael-creative-button-icon-right" aria-hidden="true"></i>
349
+ <?php endif; ?>
350
+ </span>
351
+ </a>
352
+
353
+ <style type="text/css">
354
+
355
+ a#eael-creative-button-<?php echo esc_attr($this->get_id()); ?> {
356
+ color: <?php echo esc_attr($settings['eael_creative_button_text_color'] ); ?>;
357
+ padding: <?php echo $button_padding['top'] . $button_padding['unit'] .' '. $button_padding['right'] . $button_padding['unit'] .' '. $button_padding['bottom'] . $button_padding['unit'] .' '. $button_padding['left'] . $button_padding['unit'] ?>;
358
+ background-color: <?php echo esc_attr($settings['eael_creative_button_background_color'] ); ?>;
359
+ }
360
+
361
+ a#eael-creative-button-<?php echo esc_attr($this->get_id()); ?>:hover {
362
+ color: <?php echo esc_attr($settings['eael_creative_button_hover_text_color'] ); ?>;
363
+ background-color: <?php echo esc_attr($settings['eael_creative_button_hover_background_color'] ); ?>;
364
+ }
365
+
366
+
367
+ <?php if ( $settings['creative_button_effect'] == 'eael-creative-button--winona' ): ?>
368
+
369
+ a#eael-creative-button-<?php echo esc_attr($this->get_id()); ?>.eael-creative-button--winona::after,
370
+ a#eael-creative-button-<?php echo esc_attr($this->get_id()); ?>.eael-creative-button--winona > span {
371
+ padding: <?php echo $button_padding['top'] . $button_padding['unit'] .' '. $button_padding['right'] . $button_padding['unit'] .' '. $button_padding['bottom'] . $button_padding['unit'] .' '. $button_padding['left'] . $button_padding['unit'] ?>;
372
+ }
373
+ a#eael-creative-button-<?php echo esc_attr($this->get_id()); ?>.eael-creative-button--winona::after {
374
+ color: <?php echo esc_attr($settings['eael_creative_button_hover_text_color'] ); ?>;
375
+ }
376
+
377
+ <?php elseif ( $settings['creative_button_effect'] == 'eael-creative-button--ujarak' ): ?>
378
+
379
+
380
+ a#eael-creative-button-<?php echo esc_attr($this->get_id()); ?>.eael-creative-button--ujarak:hover {
381
+ background-color: <?php echo esc_attr($settings['eael_creative_button_background_color'] ); ?>;
382
+ }
383
+ a#eael-creative-button-<?php echo esc_attr($this->get_id()); ?>.eael-creative-button--ujarak::before {
384
+ background-color: <?php echo esc_attr($settings['eael_creative_button_hover_background_color'] ); ?>;
385
+ }
386
+
387
+ <?php elseif ( $settings['creative_button_effect'] == 'eael-creative-button--wayra' ): ?>
388
+
389
+ a#eael-creative-button-<?php echo esc_attr($this->get_id()); ?>.eael-creative-button--wayra:hover {
390
+ background-color: <?php echo esc_attr($settings['eael_creative_button_background_color'] ); ?>;
391
+ }
392
+ a#eael-creative-button-<?php echo esc_attr($this->get_id()); ?>.eael-creative-button--wayra:hover::before {
393
+ background-color: <?php echo esc_attr($settings['eael_creative_button_hover_background_color'] ); ?>;
394
+ }
395
+
396
+ <?php elseif ( $settings['creative_button_effect'] == 'eael-creative-button--tamaya' ): ?>
397
+
398
+ a#eael-creative-button-<?php echo esc_attr($this->get_id()); ?>.eael-creative-button--tamaya::before,
399
+ a#eael-creative-button-<?php echo esc_attr($this->get_id()); ?>.eael-creative-button--tamaya::after {
400
+ background-color: <?php echo esc_attr($settings['eael_creative_button_background_color'] ); ?>;
401
+ color: <?php echo esc_attr($settings['eael_creative_button_text_color'] ); ?>;
402
+ }
403
+
404
+ a#eael-creative-button-<?php echo esc_attr($this->get_id()); ?>.eael-creative-button--tamaya:hover {
405
+ background-color: <?php echo esc_attr($settings['eael_creative_button_hover_background_color'] ); ?>;
406
+ }
407
+
408
+ a#eael-creative-button-<?php echo esc_attr($this->get_id()); ?>.eael-creative-button--tamaya::before {
409
+ padding: <?php echo $button_padding['top'] . $button_padding['unit'] .' '. $button_padding['right'] . $button_padding['unit'] .' '. $button_padding['bottom'] . $button_padding['unit'] .' '. $button_padding['left'] . $button_padding['unit'] ?>;
410
+ }
411
+
412
+ <?php elseif ( $settings['creative_button_effect'] == 'eael-creative-button--rayen' ): ?>
413
+
414
+ a#eael-creative-button-<?php echo esc_attr($this->get_id()); ?>.eael-creative-button--rayen:hover {
415
+ background-color: <?php echo esc_attr($settings['eael_creative_button_background_color'] ); ?>;
416
+ }
417
+ a#eael-creative-button-<?php echo esc_attr($this->get_id()); ?>.eael-creative-button--rayen::before {
418
+ background-color: <?php echo esc_attr($settings['eael_creative_button_hover_background_color'] ); ?>;
419
+ }
420
+ a#eael-creative-button-<?php echo esc_attr($this->get_id()); ?>.eael-creative-button--rayen::before,
421
+ a#eael-creative-button-<?php echo esc_attr($this->get_id()); ?>.eael-creative-button--rayen > span {
422
+ padding: <?php echo $button_padding['top'] . $button_padding['unit'] .' '. $button_padding['right'] . $button_padding['unit'] .' '. $button_padding['bottom'] . $button_padding['unit'] .' '. $button_padding['left'] . $button_padding['unit'] ?>;
423
+ }
424
+
425
+ <?php else: ?>
426
+
427
+
428
+ <?php endif; ?>
429
+
430
+ </style>
431
+
432
+
433
+ <?php
434
+
435
+ }
436
+
437
+ protected function content_template() {
438
+
439
+ ?>
440
+
441
+
442
+ <?php
443
+ }
444
+ }
445
+
446
+
447
+ Plugin::instance()->widgets_manager->register_widget_type( new Widget_Eael_Creative_Button() );
elements/fancy-text/fancy-text.php ADDED
@@ -0,0 +1,453 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace Elementor;
3
+
4
+
5
+ if ( ! defined( 'ABSPATH' ) ) exit; // If this file is called directly, abort.
6
+
7
+
8
+ class Widget_Eael_Fancy_Text extends Widget_Base {
9
+
10
+
11
+ public function get_name() {
12
+ return 'eael-fancy-text';
13
+ }
14
+
15
+ public function get_title() {
16
+ return esc_html__( 'EA Fancy Text', 'essential-addons-elementor' );
17
+ }
18
+
19
+ public function get_icon() {
20
+ return 'eicon-animation-text';
21
+ }
22
+
23
+ public function get_categories() {
24
+ return [ 'essential-addons-elementor' ];
25
+ }
26
+
27
+
28
+ protected function _register_controls() {
29
+
30
+ // Content Controls
31
+ $this->start_controls_section(
32
+ 'eael_fancy_text_content',
33
+ [
34
+ 'label' => esc_html__( 'Fancy Text', 'essential-addons-elementor' )
35
+ ]
36
+ );
37
+
38
+
39
+ $this->add_control(
40
+ 'eael_fancy_text_prefix',
41
+ [
42
+ 'label' => esc_html__( 'Prefix Text', 'essential-addons-elementor' ),
43
+ 'placeholder' => esc_html__( 'Place your prefix text', 'essential-addons-elementor' ),
44
+ 'type' => Controls_Manager::TEXTAREA,
45
+ 'default' => esc_html__( 'This is the ', 'essential-addons-elementor' ),
46
+ ]
47
+ );
48
+
49
+ $this->add_control(
50
+ 'eael_fancy_text_strings',
51
+ [
52
+ 'label' => esc_html__( 'Fancy Text Strings', 'essential-addons-elementor' ),
53
+ 'type' => Controls_Manager::REPEATER,
54
+ 'default' => [
55
+ [
56
+ 'eael_fancy_text_strings_text_field' => esc_html__( 'first string', 'essential-addons-elementor' ),
57
+ ],
58
+ [
59
+ 'eael_fancy_text_strings_text_field' => esc_html__( 'second string', 'essential-addons-elementor' ),
60
+ ],
61
+ [
62
+ 'eael_fancy_text_strings_text_field' => esc_html__( 'third string', 'essential-addons-elementor' ),
63
+ ],
64
+ ],
65
+ 'fields' => [
66
+ [
67
+ 'name' => 'eael_fancy_text_strings_text_field',
68
+ 'label' => esc_html__( 'Fancy String', 'essential-addons-elementor' ),
69
+ 'type' => Controls_Manager::TEXT,
70
+ 'label_block' => true,
71
+ ],
72
+ ],
73
+ 'title_field' => '{{{ eael_fancy_text_strings_text_field }}}',
74
+ ]
75
+ );
76
+
77
+
78
+ $this->add_control(
79
+ 'eael_fancy_text_suffix',
80
+ [
81
+ 'label' => esc_html__( 'Suffix Text', 'essential-addons-elementor' ),
82
+ 'placeholder' => esc_html__( 'Place your suffix text', 'essential-addons-elementor' ),
83
+ 'type' => Controls_Manager::TEXTAREA,
84
+ 'default' => esc_html__( ' of the sentence.', 'essential-addons-elementor' ),
85
+ ]
86
+ );
87
+
88
+
89
+
90
+ $this->end_controls_section();
91
+
92
+ // Settings Control
93
+ $this->start_controls_section(
94
+ 'eael_fancy_text_settings',
95
+ [
96
+ 'label' => esc_html__( 'Fancy Text Settings', 'essential-addons-elementor' )
97
+ ]
98
+ );
99
+
100
+ $this->add_responsive_control(
101
+ 'eael_fancy_text_alignment',
102
+ [
103
+ 'label' => esc_html__( 'Alignment', 'essential-addons-elementor' ),
104
+ 'type' => Controls_Manager::CHOOSE,
105
+ 'options' => [
106
+ 'left' => [
107
+ 'title' => esc_html__( 'Left', 'essential-addons-elementor' ),
108
+ 'icon' => 'fa fa-align-left',
109
+ ],
110
+ 'center' => [
111
+ 'title' => esc_html__( 'Center', 'essential-addons-elementor' ),
112
+ 'icon' => 'fa fa-align-center',
113
+ ],
114
+ 'right' => [
115
+ 'title' => esc_html__( 'Right', 'essential-addons-elementor' ),
116
+ 'icon' => 'fa fa-align-right',
117
+ ],
118
+ ],
119
+ 'default' => 'center',
120
+ 'selectors' => [
121
+ '{{WRAPPER}} .eael-fancy-text-container' => 'text-align: {{VALUE}}',
122
+ ],
123
+ ]
124
+ );
125
+
126
+ $this->add_control(
127
+ 'eael_fancy_text_transition_type',
128
+ [
129
+ 'label' => esc_html__( 'Animation Type', 'essential-addons-elementor' ),
130
+ 'type' => Controls_Manager::SELECT,
131
+ 'default' => 'typing',
132
+ 'options' => [
133
+ 'typing' => esc_html__( 'Typing', 'essential-addons-elementor' ),
134
+ 'fadeIn' => esc_html__( 'Fade', 'essential-addons-elementor' ),
135
+ 'fadeInUp' => esc_html__( 'Fade Up', 'essential-addons-elementor' ),
136
+ 'fadeInDown' => esc_html__( 'Fade Down', 'essential-addons-elementor' ),
137
+ 'fadeInLeft' => esc_html__( 'Fade Left', 'essential-addons-elementor' ),
138
+ 'fadeInRight' => esc_html__( 'Fade Right', 'essential-addons-elementor' ),
139
+ 'zoomIn' => esc_html__( 'Zoom', 'essential-addons-elementor' ),
140
+ 'bounceIn' => esc_html__( 'Bounce', 'essential-addons-elementor' ),
141
+ 'swing' => esc_html__( 'Swing', 'essential-addons-elementor' ),
142
+ ],
143
+ ]
144
+ );
145
+
146
+
147
+ $this->add_control(
148
+ 'eael_fancy_text_speed',
149
+ [
150
+ 'label' => esc_html__( 'Typing Speed', 'essential-addons-elementor' ),
151
+ 'type' => Controls_Manager::NUMBER,
152
+ 'default' => '50',
153
+ 'condition' => [
154
+ 'eael_fancy_text_transition_type' => 'typing',
155
+ ],
156
+ ]
157
+ );
158
+
159
+ $this->add_control(
160
+ 'eael_fancy_text_delay',
161
+ [
162
+ 'label' => esc_html__( 'Delay on Change', 'essential-addons-elementor' ),
163
+ 'type' => Controls_Manager::NUMBER,
164
+ 'default' => '2500'
165
+ ]
166
+ );
167
+
168
+ $this->add_control(
169
+ 'eael_fancy_text_loop',
170
+ [
171
+ 'label' => esc_html__( 'Loop the Typing', 'essential-addons-elementor' ),
172
+ 'type' => Controls_Manager::SWITCHER,
173
+ 'return_value' => 'yes',
174
+ 'default' => 'yes',
175
+ 'condition' => [
176
+ 'eael_fancy_text_transition_type' => 'typing',
177
+ ],
178
+ ]
179
+ );
180
+
181
+ $this->add_control(
182
+ 'eael_fancy_text_cursor',
183
+ [
184
+ 'label' => esc_html__( 'Display Type Cursor', 'essential-addons-elementor' ),
185
+ 'type' => Controls_Manager::SWITCHER,
186
+ 'return_value' => 'yes',
187
+ 'default' => 'yes',
188
+ 'condition' => [
189
+ 'eael_fancy_text_transition_type' => 'typing',
190
+ ],
191
+ ]
192
+ );
193
+
194
+
195
+ $this->end_controls_section();
196
+
197
+
198
+
199
+ $this->start_controls_section(
200
+ 'eael_fancy_text_prefix_styles',
201
+ [
202
+ 'label' => esc_html__( 'Prefix Text Styles', 'essential-addons-elementor' ),
203
+ 'tab' => Controls_Manager::TAB_STYLE
204
+ ]
205
+ );
206
+
207
+ $this->add_control(
208
+ 'eael_fancy_text_prefix_color',
209
+ [
210
+ 'label' => esc_html__( 'Prefix Text Color', 'essential-addons-elementor' ),
211
+ 'type' => Controls_Manager::COLOR,
212
+ 'selectors' => [
213
+ '{{WRAPPER}} .eael-fancy-text-prefix' => 'color: {{VALUE}};',
214
+ ],
215
+ ]
216
+ );
217
+
218
+ $this->add_group_control(
219
+ Group_Control_Typography::get_type(),
220
+ [
221
+ 'name' => 'typography',
222
+ 'scheme' => Scheme_Typography::TYPOGRAPHY_1,
223
+ 'selector' => '{{WRAPPER}} .eael-fancy-text-prefix',
224
+ ]
225
+ );
226
+
227
+
228
+ $this->end_controls_section();
229
+
230
+
231
+
232
+ $this->start_controls_section(
233
+ 'eael_fancy_text_strings_styles',
234
+ [
235
+ 'label' => esc_html__( 'Fancy Text Styles', 'essential-addons-elementor' ),
236
+ 'tab' => Controls_Manager::TAB_STYLE
237
+ ]
238
+ );
239
+
240
+ $this->add_control(
241
+ 'eael_fancy_text_strings_color',
242
+ [
243
+ 'label' => esc_html__( 'Fancy Text Color', 'essential-addons-elementor' ),
244
+ 'type' => Controls_Manager::COLOR,
245
+ 'selectors' => [
246
+ '{{WRAPPER}} .eael-fancy-text-strings' => 'color: {{VALUE}};',
247
+ ],
248
+ ]
249
+ );
250
+
251
+ $this->add_group_control(
252
+ Group_Control_Typography::get_type(),
253
+ [
254
+ 'name' => 'eael_fancy_text_strings_typography',
255
+ 'scheme' => Scheme_Typography::TYPOGRAPHY_1,
256
+ 'selector' => '{{WRAPPER}} .eael-fancy-text-strings, {{WRAPPER}} .typed-cursor',
257
+ ]
258
+ );
259
+
260
+ $this->add_control(
261
+ 'eael_fancy_text_strings_background_color',
262
+ [
263
+ 'label' => esc_html__( 'Background', 'essential-addons-elementor' ),
264
+ 'type' => Controls_Manager::COLOR,
265
+ 'default' => '',
266
+ 'selectors' => [
267
+ '{{WRAPPER}} .eael-fancy-text-strings' => 'background: {{VALUE}};',
268
+ ],
269
+ ]
270
+ );
271
+
272
+ $this->add_control(
273
+ 'eael_fancy_text_cursor_color',
274
+ [
275
+ 'label' => esc_html__( 'Typing Cursor Color', 'essential-addons-elementor' ),
276
+ 'type' => Controls_Manager::COLOR,
277
+ 'selectors' => [
278
+ '{{WRAPPER}} .typed-cursor' => 'color: {{VALUE}};',
279
+ ],
280
+ 'condition' => [
281
+ 'eael_fancy_text_cursor' => 'yes',
282
+ ],
283
+ ]
284
+ );
285
+
286
+ $this->add_responsive_control(
287
+ 'eael_fancy_text_strings_padding',
288
+ [
289
+ 'label' => esc_html__( 'Padding', 'essential-addons-elementor' ),
290
+ 'type' => Controls_Manager::DIMENSIONS,
291
+ 'size_units' => [ 'px', 'em', '%' ],
292
+ 'selectors' => [
293
+ '{{WRAPPER}} .eael-fancy-text-strings' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
294
+ ],
295
+ ]
296
+ );
297
+
298
+ $this->add_responsive_control(
299
+ 'eael_fancy_text_strings_margin',
300
+ [
301
+ 'label' => esc_html__( 'Margin', 'essential-addons-elementor' ),
302
+ 'type' => Controls_Manager::DIMENSIONS,
303
+ 'size_units' => [ 'px', 'em', '%' ],
304
+ 'selectors' => [
305
+ '{{WRAPPER}} .eael-fancy-text-strings' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
306
+ ],
307
+ ]
308
+ );
309
+
310
+
311
+
312
+ $this->add_group_control(
313
+ Group_Control_Border::get_type(),
314
+ [
315
+ 'name' => 'eael_fancy_text_strings_border',
316
+ 'selector' => '{{WRAPPER}} .eael-fancy-text-strings',
317
+ ]
318
+ );
319
+
320
+
321
+ $this->add_control(
322
+ 'eael_fancy_text_strings_border_radius',
323
+ [
324
+ 'label' => esc_html__( 'Border Radius', 'essential-addons-elementor' ),
325
+ 'type' => Controls_Manager::SLIDER,
326
+ 'range' => [
327
+ 'px' => [
328
+ 'min' => 0,
329
+ 'max' => 100,
330
+ ],
331
+ ],
332
+ 'selectors' => [
333
+ '{{WRAPPER}} .eael-fancy-text-strings' => 'border-radius: {{SIZE}}{{UNIT}};',
334
+ ],
335
+ ]
336
+ );
337
+
338
+
339
+ $this->end_controls_section();
340
+
341
+
342
+
343
+ $this->start_controls_section(
344
+ 'eael_fancy_text_suffix_styles',
345
+ [
346
+ 'label' => esc_html__( 'Suffix Text Styles', 'essential-addons-elementor' ),
347
+ 'tab' => Controls_Manager::TAB_STYLE
348
+ ]
349
+ );
350
+
351
+ $this->add_control(
352
+ 'eael_fancy_text_suffix_color',
353
+ [
354
+ 'label' => esc_html__( 'Suffix Text Color', 'essential-addons-elementor' ),
355
+ 'type' => Controls_Manager::COLOR,
356
+ 'selectors' => [
357
+ '{{WRAPPER}} .eael-fancy-text-suffix' => 'color: {{VALUE}};',
358
+ ],
359
+ ]
360
+ );
361
+
362
+ $this->add_group_control(
363
+ Group_Control_Typography::get_type(),
364
+ [
365
+ 'name' => 'ending_typography',
366
+ 'scheme' => Scheme_Typography::TYPOGRAPHY_1,
367
+ 'selector' => '{{WRAPPER}} .eael-fancy-text-suffix',
368
+ ]
369
+ );
370
+
371
+
372
+ $this->end_controls_section();
373
+
374
+ }
375
+
376
+
377
+ protected function render( ) {
378
+
379
+
380
+ $settings = $this->get_settings();
381
+
382
+
383
+ ?>
384
+
385
+ <div class="eael-fancy-text-container">
386
+ <?php if ( ! empty( $settings['eael_fancy_text_prefix'] ) ) : ?><span class="eael-fancy-text-prefix"><?php echo wp_kses(($settings['eael_fancy_text_prefix'] ), true ); ?> </span><?php endif; ?>
387
+
388
+ <?php if ( $settings['eael_fancy_text_transition_type'] == 'fancy' ) : ?>
389
+ <span id="eael-fancy-text-<?php echo esc_attr($this->get_id()); ?>" class="eael-fancy-text-strings"></span>
390
+ <?php endif; ?>
391
+
392
+ <?php if ( $settings['eael_fancy_text_transition_type'] != 'fancy' ) : ?>
393
+ <span id="eael-fancy-text-<?php echo esc_attr($this->get_id()); ?>" class="eael-fancy-text-strings"><?php
394
+ $eael_fancy_text_strings_list = "";
395
+ foreach ( $settings['eael_fancy_text_strings'] as $item ) {
396
+ $eael_fancy_text_strings_list .= $item['eael_fancy_text_strings_text_field'] . ', ';
397
+ }
398
+ echo rtrim($eael_fancy_text_strings_list, ", "); ?></span>
399
+ <?php endif; ?>
400
+
401
+ <?php if ( ! empty( $settings['eael_fancy_text_suffix'] ) ) : ?><span class="eael-fancy-text-suffix"> <?php echo wp_kses(($settings['eael_fancy_text_suffix'] ), true ); ?> </span><?php endif; ?>
402
+ </div><!-- close .eael-fancy-text-container -->
403
+
404
+ <div class="clearfix"></div>
405
+
406
+ <?php if ( $settings['eael_fancy_text_transition_type'] == 'typing' ) : ?>
407
+ <script type="text/javascript">
408
+ jQuery(document).ready(function($) {
409
+ 'use strict';
410
+ $("#eael-fancy-text-<?php echo esc_attr($this->get_id()); ?>").typed({
411
+ strings: [<?php foreach ( $settings['eael_fancy_text_strings'] as $item ) : ?><?php if ( ! empty( $item['eael_fancy_text_strings_text_field'] ) ) : ?>"<?php echo esc_attr($item['eael_fancy_text_strings_text_field'] ); ?>",<?php endif; ?><?php endforeach; ?>],
412
+ typeSpeed: <?php echo esc_attr($settings['eael_fancy_text_speed'] ); ?>,
413
+ backSpeed: 0,
414
+ startDelay: 300,
415
+ backDelay: <?php echo esc_attr($settings['eael_fancy_text_delay'] ); ?>,
416
+ showCursor: <?php if ( ! empty( $settings['eael_fancy_text_cursor'] ) ) : ?>true<?php else: ?>false<?php endif; ?>,
417
+ loop: <?php if ( ! empty( $settings['eael_fancy_text_loop'] ) ) : ?>true<?php else: ?>false<?php endif; ?>,
418
+ });
419
+ });
420
+ </script>
421
+ <?php endif; ?>
422
+
423
+ <?php if ( $settings['eael_fancy_text_transition_type'] != 'typing' ) : ?>
424
+ <script type="text/javascript">
425
+ jQuery(document).ready(function($) {
426
+ 'use strict';
427
+ $("#eael-fancy-text-<?php echo esc_attr($this->get_id()); ?>").Morphext({
428
+ animation: "<?php echo esc_attr($settings['eael_fancy_text_transition_type'] ); ?>",
429
+ separator: ",",
430
+ speed: <?php echo esc_attr($settings['eael_fancy_text_delay'] ); ?>,
431
+ complete: function () {
432
+ // Overrides default empty function
433
+ }
434
+ });
435
+ });
436
+ </script>
437
+ <?php endif; ?>
438
+
439
+ <?php
440
+
441
+ }
442
+
443
+ protected function content_template() {
444
+
445
+ ?>
446
+
447
+
448
+ <?php
449
+ }
450
+ }
451
+
452
+
453
+ Plugin::instance()->widgets_manager->register_widget_type( new Widget_Eael_Fancy_Text() );
elements/post-timeline/post-timeline.php ADDED
@@ -0,0 +1,493 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace Elementor;
3
+
4
+ if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
5
+
6
+ class Widget_PostTimeline extends Widget_Base {
7
+
8
+ public function get_name() {
9
+ return 'eael-post-timeline';
10
+ }
11
+
12
+ public function get_title() {
13
+ return __( 'EA Post Timeline', 'essential-addons-elementor' );
14
+ }
15
+
16
+ public function get_icon() {
17
+ return 'eicon-post-list';
18
+ }
19
+
20
+ public function get_categories() {
21
+ return [ 'essential-addons-elementor' ];
22
+ }
23
+
24
+ protected function _register_controls() {
25
+ $this->start_controls_section(
26
+ 'eael_section_post_timeline_filters',
27
+ [
28
+ 'label' => __( 'Post Settings', 'essential-addons-elementor' )
29
+ ]
30
+ );
31
+
32
+
33
+ $this->add_control(
34
+ 'eael_post_type',
35
+ [
36
+ 'label' => __( 'Post Type', 'essential-addons-elementor' ),
37
+ 'type' => Controls_Manager::SELECT,
38
+ 'options' => eael_get_post_types(),
39
+ 'default' => 'post',
40
+
41
+ ]
42
+ );
43
+
44
+ $this->add_control(
45
+ 'category',
46
+ [
47
+ 'label' => __( 'Categories', 'essential-addons-elementor' ),
48
+ 'type' => Controls_Manager::SELECT2,
49
+ 'label_block' => true,
50
+ 'multiple' => true,
51
+ 'options' => eael_post_type_categories(),
52
+ 'condition' => [
53
+ 'eael_post_type' => 'post'
54
+ ]
55
+ ]
56
+ );
57
+
58
+
59
+ $this->add_control(
60
+ 'eael_posts_count',
61
+ [
62
+ 'label' => __( 'Number of Posts', 'essential-addons-elementor' ),
63
+ 'type' => Controls_Manager::NUMBER,
64
+ 'default' => '4'
65
+ ]
66
+ );
67
+
68
+ $this->add_control(
69
+ 'eael_post_offset',
70
+ [
71
+ 'label' => __( 'Post Offset', 'essential-addons-elementor' ),
72
+ 'type' => Controls_Manager::NUMBER,
73
+ 'default' => '0'
74
+ ]
75
+ );
76
+
77
+ $this->add_control(
78
+ 'eael_post_orderby',
79
+ [
80
+ 'label' => __( 'Order By', 'essential-addons-elementor' ),
81
+ 'type' => Controls_Manager::SELECT,
82
+ 'options' => eael_get_post_orderby_options(),
83
+ 'default' => 'date',
84
+
85
+ ]
86
+ );
87
+
88
+ $this->add_control(
89
+ 'eael_post_order',
90
+ [
91
+ 'label' => __( 'Order', 'essential-addons-elementor' ),
92
+ 'type' => Controls_Manager::SELECT,
93
+ 'options' => [
94
+ 'asc' => 'Ascending',
95
+ 'desc' => 'Descending'
96
+ ],
97
+ 'default' => 'desc',
98
+
99
+ ]
100
+ );
101
+
102
+ $this->end_controls_section();
103
+
104
+ $this->start_controls_section(
105
+ 'eael_section_post_timeline_layout',
106
+ [
107
+ 'label' => __( 'Layout Settings', 'essential-addons-elementor' )
108
+ ]
109
+ );
110
+
111
+
112
+ $this->add_control(
113
+ 'eael_show_image',
114
+ [
115
+ 'label' => __( 'Show Image', 'essential-addons-elementor' ),
116
+ 'type' => Controls_Manager::CHOOSE,
117
+ 'options' => [
118
+ '1' => [
119
+ 'title' => __( 'Yes', 'essential-addons-elementor' ),
120
+ 'icon' => 'fa fa-check',
121
+ ],
122
+ '0' => [
123
+ 'title' => __( 'No', 'essential-addons-elementor' ),
124
+ 'icon' => 'fa fa-ban',
125
+ ]
126
+ ],
127
+ 'default' => '1'
128
+ ]
129
+ );
130
+ $this->add_group_control(
131
+ Group_Control_Image_Size::get_type(),
132
+ [
133
+ 'name' => 'image',
134
+ 'exclude' => [ 'custom' ],
135
+ 'default' => 'medium',
136
+ 'condition' => [
137
+ 'eael_show_image' => '1',
138
+ ]
139
+ ]
140
+ );
141
+
142
+
143
+ $this->add_control(
144
+ 'eael_show_title',
145
+ [
146
+ 'label' => __( 'Show Title', 'essential-addons-elementor' ),
147
+ 'type' => Controls_Manager::CHOOSE,
148
+ 'options' => [
149
+ '1' => [
150
+ 'title' => __( 'Yes', 'essential-addons-elementor' ),
151
+ 'icon' => 'fa fa-check',
152
+ ],
153
+ '0' => [
154
+ 'title' => __( 'No', 'essential-addons-elementor' ),
155
+ 'icon' => 'fa fa-ban',
156
+ ]
157
+ ],
158
+ 'default' => '1'
159
+ ]
160
+ );
161
+
162
+ $this->add_control(
163
+ 'eael_show_excerpt',
164
+ [
165
+ 'label' => __( 'Show excerpt', 'essential-addons-elementor' ),
166
+ 'type' => Controls_Manager::CHOOSE,
167
+ 'options' => [
168
+ '1' => [
169
+ 'title' => __( 'Yes', 'essential-addons-elementor' ),
170
+ 'icon' => 'fa fa-check',
171
+ ],
172
+ '0' => [
173
+ 'title' => __( 'No', 'essential-addons-elementor' ),
174
+ 'icon' => 'fa fa-ban',
175
+ ]
176
+ ],
177
+ 'default' => '1'
178
+ ]
179
+ );
180
+
181
+ $this->add_control(
182
+ 'eael_excerpt_length',
183
+ [
184
+ 'label' => __( 'Excerpt Words', 'essential-addons-elementor' ),
185
+ 'type' => Controls_Manager::NUMBER,
186
+ 'default' => '10',
187
+ 'condition' => [
188
+ 'eael_show_excerpt' => '1',
189
+ ]
190
+
191
+ ]
192
+ );
193
+
194
+
195
+ $this->end_controls_section();
196
+
197
+ $this->start_controls_section(
198
+ 'eael_section_post_timeline_style',
199
+ [
200
+ 'label' => __( 'Timeline Style', 'essential-addons-elementor' ),
201
+ 'tab' => Controls_Manager::TAB_STYLE
202
+ ]
203
+ );
204
+
205
+ $this->add_control(
206
+ 'eael_timeline_overlay_color',
207
+ [
208
+ 'label' => __( 'Overlay Color', 'essential-addons-elementor' ),
209
+ 'type' => Controls_Manager::COLOR,
210
+ 'description' => __('Leave blank or Clear to use default gradient overlay', 'essential-addons-elementor'),
211
+ 'default' => 'linear-gradient(45deg, #3f3f46 0%, #05abe0 100%) repeat scroll 0 0 rgba(0, 0, 0, 0)',
212
+ 'selectors' => [
213
+ '{{WRAPPER}} .eael-timeline-post-inner' => 'background: {{VALUE}}',
214
+ ]
215
+
216
+ ]
217
+ );
218
+
219
+ $this->add_control(
220
+ 'eael_timeline_bullet_color',
221
+ [
222
+ 'label' => __( 'Timeline Bullet Color', 'essential-addons-elementor' ),
223
+ 'type' => Controls_Manager::COLOR,
224
+ 'default'=> '#9fa9af',
225
+ 'selectors' => [
226
+ '{{WRAPPER}} .eael-timeline-bullet' => 'background-color: {{VALUE}};',
227
+ ]
228
+
229
+ ]
230
+ );
231
+
232
+ $this->add_control(
233
+ 'eael_timeline_bullet_border_color',
234
+ [
235
+ 'label' => __( 'Timeline Bullet Border Color', 'essential-addons-elementor' ),
236
+ 'type' => Controls_Manager::COLOR,
237
+ 'default'=> '#fff',
238
+ 'selectors' => [
239
+ '{{WRAPPER}} .eael-timeline-bullet' => 'border-color: {{VALUE}};',
240
+ ]
241
+
242
+ ]
243
+ );
244
+
245
+ $this->add_control(
246
+ 'eael_timeline_vertical_line_color',
247
+ [
248
+ 'label' => __( 'Timeline Vertical Line Color', 'essential-addons-elementor' ),
249
+ 'type' => Controls_Manager::COLOR,
250
+ 'default'=> 'rgba(83, 85, 86, .2)',
251
+ 'selectors' => [
252
+ '{{WRAPPER}} .eael-timeline-post:after' => 'background-color: {{VALUE}};',
253
+ ]
254
+
255
+ ]
256
+ );
257
+
258
+ $this->add_control(
259
+ 'eael_timeline_border_color',
260
+ [
261
+ 'label' => __( 'Border & Arrow Color', 'essential-addons-elementor' ),
262
+ 'type' => Controls_Manager::COLOR,
263
+ 'default'=> '#ffffff',
264
+ 'selectors' => [
265
+ '{{WRAPPER}} .eael-timeline-post-inner' => 'border-color: {{VALUE}};',
266
+ '{{WRAPPER}} .eael-timeline-post-inner::after' => 'border-left-color: {{VALUE}};',
267
+ '{{WRAPPER}} .eael-timeline-post:nth-child(2n) .eael-timeline-post-inner::after' => 'border-right-color: {{VALUE}};',
268
+ ]
269
+
270
+ ]
271
+ );
272
+
273
+ $this->add_control(
274
+ 'eael_timeline_date_background_color',
275
+ [
276
+ 'label' => __( 'Date Background Color', 'essential-addons-elementor' ),
277
+ 'type' => Controls_Manager::COLOR,
278
+ 'default'=> 'rgba(0, 0, 0, 0.7)',
279
+ 'selectors' => [
280
+ '{{WRAPPER}} .eael-timeline-post time' => 'background-color: {{VALUE}};',
281
+ '{{WRAPPER}} .eael-timeline-post time::before' => 'border-bottom-color: {{VALUE}};',
282
+ ]
283
+
284
+ ]
285
+ );
286
+
287
+ $this->add_control(
288
+ 'eael_timeline_date_color',
289
+ [
290
+ 'label' => __( 'Date Text Color', 'essential-addons-elementor' ),
291
+ 'type' => Controls_Manager::COLOR,
292
+ 'default'=> '#fff',
293
+ 'selectors' => [
294
+ '{{WRAPPER}} .eael-timeline-post time' => 'color: {{VALUE}};',
295
+ ]
296
+
297
+ ]
298
+ );
299
+
300
+
301
+ $this->end_controls_section();
302
+
303
+ $this->start_controls_section(
304
+ 'eael_section_typography',
305
+ [
306
+ 'label' => __( 'Typography', 'essential-addons-elementor' ),
307
+ 'tab' => Controls_Manager::TAB_STYLE
308
+ ]
309
+ );
310
+
311
+ $this->add_control(
312
+ 'eael_timeline_title_style',
313
+ [
314
+ 'label' => __( 'Title Style', 'essential-addons-elementor' ),
315
+ 'type' => Controls_Manager::HEADING,
316
+ 'separator' => 'before',
317
+ ]
318
+ );
319
+
320
+ $this->add_control(
321
+ 'eael_timeline_title_color',
322
+ [
323
+ 'label' => __( 'Title Color', 'essential-addons-elementor' ),
324
+ 'type' => Controls_Manager::COLOR,
325
+ 'default'=> '#fff',
326
+ 'selectors' => [
327
+ '{{WRAPPER}} .eael-timeline-post-title h2' => 'color: {{VALUE}};',
328
+ ]
329
+
330
+ ]
331
+ );
332
+
333
+ $this->add_responsive_control(
334
+ 'eael_timeline_title_alignment',
335
+ [
336
+ 'label' => __( 'Title Alignment', 'essential-addons-elementor' ),
337
+ 'type' => Controls_Manager::CHOOSE,
338
+ 'options' => [
339
+ 'left' => [
340
+ 'title' => __( 'Left', 'essential-addons-elementor' ),
341
+ 'icon' => 'fa fa-align-left',
342
+ ],
343
+ 'center' => [
344
+ 'title' => __( 'Center', 'essential-addons-elementor' ),
345
+ 'icon' => 'fa fa-align-center',
346
+ ],
347
+ 'right' => [
348
+ 'title' => __( 'Right', 'essential-addons-elementor' ),
349
+ 'icon' => 'fa fa-align-right',
350
+ ]
351
+ ],
352
+ 'selectors' => [
353
+ '{{WRAPPER}} .eael-timeline-post-title h2' => 'text-align: {{VALUE}};',
354
+ ]
355
+ ]
356
+ );
357
+
358
+ $this->add_group_control(
359
+ Group_Control_Typography::get_type(),
360
+ [
361
+ 'name' => 'eael_timeline_title_typography',
362
+ 'label' => __( 'Typography', 'essential-addons-elementor' ),
363
+ 'scheme' => Scheme_Typography::TYPOGRAPHY_1,
364
+ 'selector' => '{{WRAPPER}} .eael-timeline-post-title h2',
365
+ ]
366
+ );
367
+
368
+ $this->add_control(
369
+ 'eael_timeline_excerpt_style',
370
+ [
371
+ 'label' => __( 'Excerpt Style', 'essential-addons-elementor' ),
372
+ 'type' => Controls_Manager::HEADING,
373
+ 'separator' => 'before',
374
+ ]
375
+ );
376
+
377
+ $this->add_control(
378
+ 'eael_timeline_excerpt_color',
379
+ [
380
+ 'label' => __( 'Excerpt Color', 'essential-addons-elementor' ),
381
+ 'type' => Controls_Manager::COLOR,
382
+ 'default'=> '#ffffff',
383
+ 'selectors' => [
384
+ '{{WRAPPER}} .eael-timeline-post-excerpt p' => 'color: {{VALUE}};',
385
+ ]
386
+ ]
387
+ );
388
+
389
+ $this->add_responsive_control(
390
+ 'eael_timeline_excerpt_alignment',
391
+ [
392
+ 'label' => __( 'Excerpt Alignment', 'essential-addons-elementor' ),
393
+ 'type' => Controls_Manager::CHOOSE,
394
+ 'options' => [
395
+ 'left' => [
396
+ 'title' => __( 'Left', 'essential-addons-elementor' ),
397
+ 'icon' => 'fa fa-align-left',
398
+ ],
399
+ 'center' => [
400
+ 'title' => __( 'Center', 'essential-addons-elementor' ),
401
+ 'icon' => 'fa fa-align-center',
402
+ ],
403
+ 'right' => [
404
+ 'title' => __( 'Right', 'essential-addons-elementor' ),
405
+ 'icon' => 'fa fa-align-right',
406
+ ],
407
+ 'justify' => [
408
+ 'title' => __( 'Justified', 'essential-addons-elementor' ),
409
+ 'icon' => 'fa fa-align-justify',
410
+ ],
411
+ ],
412
+ 'selectors' => [
413
+ '{{WRAPPER}} .eael-timeline-post-excerpt p' => 'text-align: {{VALUE}};',
414
+ ],
415
+ ]
416
+ );
417
+
418
+ $this->add_group_control(
419
+ Group_Control_Typography::get_type(),
420
+ [
421
+ 'name' => 'eael_timeline_excerpt_typography',
422
+ 'label' => __( 'excerpt Typography', 'essential-addons-elementor' ),
423
+ 'scheme' => Scheme_Typography::TYPOGRAPHY_3,
424
+ 'selector' => '{{WRAPPER}} .eael-timeline-post-excerpt p',
425
+ ]
426
+ );
427
+
428
+
429
+ $this->end_controls_section();
430
+
431
+ }
432
+
433
+
434
+ protected function render( ) {
435
+ $settings = $this->get_settings();
436
+
437
+ $post_args = eael_get_post_settings($settings);
438
+
439
+ $posts = eael_get_post_data($post_args);
440
+
441
+ ?>
442
+
443
+ <div id="eael-post-timeline-<?php echo esc_attr($this->get_id()); ?>" class="eael-post-timeline">
444
+ <div class="eael-post-timeline">
445
+ <?php
446
+ if(count($posts)){
447
+ global $post;
448
+ ?>
449
+ <?php
450
+ foreach($posts as $post){
451
+ setup_postdata($post);
452
+ ?>
453
+ <article class="eael-timeline-post eael-timeline-column">
454
+ <div class="eael-timeline-bullet"></div>
455
+ <div class="eael-timeline-post-inner">
456
+ <a class="eael-timeline-post-link" href="<?php echo get_permalink(); ?>" title="<?php the_title(); ?>">
457
+ <time datetime="<?php echo get_the_date(); ?>"><?php echo get_the_date(); ?></time>
458
+ <div class="eael-timeline-post-image" <?php if($settings['eael_show_image'] == 1){ ?> style="background-image: url('<?php echo wp_get_attachment_image_url(get_post_thumbnail_id(), $settings['image_size'])?>');" <?php } ?>></div>
459
+ <?php if($settings['eael_show_excerpt']){ ?>
460
+ <div class="eael-timeline-post-excerpt">
461
+ <p><?php echo eael_get_excerpt_by_id(get_the_ID(),$settings['eael_excerpt_length']);?></p>
462
+ </div>
463
+ <?php } ?>
464
+
465
+ <?php if($settings['eael_show_title']){ ?>
466
+ <div class="eael-timeline-post-title">
467
+ <h2><?php the_title(); ?></h2>
468
+ </div>
469
+ <?php } ?>
470
+ </a>
471
+ </div>
472
+ </article>
473
+ <?php
474
+ }
475
+ wp_reset_postdata();
476
+ ?>
477
+ <?php
478
+ }
479
+ ?>
480
+ </div>
481
+ </div>
482
+
483
+
484
+ <?php
485
+ }
486
+
487
+ protected function content_template() {
488
+ ?>
489
+
490
+ <?php
491
+ }
492
+ }
493
+ Plugin::instance()->widgets_manager->register_widget_type( new Widget_PostTimeline() );
elements/product-grid/product-grid.php ADDED
@@ -0,0 +1,472 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace Elementor;
3
+
4
+
5
+ if ( ! defined( 'ABSPATH' ) ) exit; // If this file is called directly, abort.
6
+
7
+
8
+ class Widget_Eael_Product_Grid extends Widget_Base {
9
+
10
+
11
+ public function get_name() {
12
+ return 'eicon-woocommerce';
13
+ }
14
+
15
+ public function get_title() {
16
+ return esc_html__( 'EA Product Grid', 'essential-addons-elementor' );
17
+ }
18
+
19
+ public function get_icon() {
20
+ return 'eicon-woocommerce';
21
+ }
22
+
23
+ public function get_categories() {
24
+ return [ 'essential-addons-elementor' ];
25
+ }
26
+
27
+
28
+ protected function _register_controls() {
29
+
30
+ // Content Controls
31
+ $this->start_controls_section(
32
+ 'eael_section_product_grid_settings',
33
+ [
34
+ 'label' => esc_html__( 'Product Settings', 'essential-addons-elementor' )
35
+ ]
36
+ );
37
+
38
+ $this->add_control(
39
+ 'eael_product_grid_product_filter',
40
+ [
41
+ 'label' => esc_html__( 'Filter By', 'essential-addons-elementor' ),
42
+ 'type' => Controls_Manager::SELECT,
43
+ 'default' => 'recent-products',
44
+ 'options' => [
45
+ 'recent-products' => esc_html__( 'Recent Products', 'essential-addons-elementor' ),
46
+ 'featured-products' => esc_html__( 'Featured Products', 'essential-addons-elementor' ),
47
+ 'best-selling-products' => esc_html__( 'Best Selling Products', 'essential-addons-elementor' ),
48
+ 'sale-products' => esc_html__( 'Sale Products', 'essential-addons-elementor' ),
49
+ 'top-products' => esc_html__( 'Top Rated Products', 'essential-addons-elementor' ),
50
+ ],
51
+ ]
52
+ );
53
+
54
+ $this->add_control(
55
+ 'eael_product_grid_column',
56
+ [
57
+ 'label' => esc_html__( 'Columns', 'essential-addons-elementor' ),
58
+ 'type' => Controls_Manager::SELECT,
59
+ 'default' => '4',
60
+ 'options' => [
61
+ '1' => esc_html__( '1', 'essential-addons-elementor' ),
62
+ '2' => esc_html__( '2', 'essential-addons-elementor' ),
63
+ '3' => esc_html__( '3', 'essential-addons-elementor' ),
64
+ '4' => esc_html__( '4', 'essential-addons-elementor' ),
65
+ '5' => esc_html__( '5', 'essential-addons-elementor' ),
66
+ '6' => esc_html__( '6', 'essential-addons-elementor' ),
67
+ ],
68
+ ]
69
+ );
70
+
71
+ $this->add_control(
72
+ 'eael_product_grid_products_count',
73
+ [
74
+ 'label' => __( 'Products Count', 'essential-addons-elementor' ),
75
+ 'type' => Controls_Manager::NUMBER,
76
+ 'default' => 4,
77
+ 'min' => 1,
78
+ 'max' => 1000,
79
+ 'step' => 1,
80
+ ]
81
+ );
82
+
83
+
84
+ $this->add_control(
85
+ 'eael_product_grid_categories',
86
+ [
87
+ 'label' => esc_html__( 'Product Categories', 'essential-addons-elementor' ),
88
+ 'type' => Controls_Manager::SELECT2,
89
+ 'label_block' => true,
90
+ 'multiple' => true,
91
+ 'options' => eael_woocommerce_product_categories(),
92
+ ]
93
+ );
94
+
95
+ // $this->add_control(
96
+ // 'eael_product_grid_style_preset',
97
+ // [
98
+ // 'label' => esc_html__( 'Style Preset', 'essential-addons-elementor' ),
99
+ // 'type' => Controls_Manager::SELECT,
100
+ // 'default' => 'eael-product-simple',
101
+ // 'options' => [
102
+ // 'eael-product-simple' => esc_html__( 'Simple Style', 'essential-addons-elementor' ),
103
+ // 'eael-product-reveal' => esc_html__( 'Reveal Style', 'essential-addons-elementor' ),
104
+ // 'eael-product-overlay' => esc_html__( 'Overlay Style', 'essential-addons-elementor' ),
105
+ // 'eacs-product-default' => esc_html__( 'None (Use Theme Style)', 'essential-addons-elementor' ),
106
+ // ],
107
+ // ]
108
+ // );
109
+
110
+ $this->add_control(
111
+ 'eael_product_grid_rating',
112
+ [
113
+ 'label' => esc_html__( 'Show Product Rating?', 'essential-addons-elementor' ),
114
+ 'type' => Controls_Manager::SWITCHER,
115
+ 'return_value' => 'yes',
116
+ 'default' => 'yes',
117
+ ]
118
+ );
119
+
120
+ $this->end_controls_section();
121
+
122
+
123
+ $this->start_controls_section(
124
+ 'eael_product_grid_styles',
125
+ [
126
+ 'label' => esc_html__( 'Products Styles', 'essential-addons-elementor' ),
127
+ 'tab' => Controls_Manager::TAB_STYLE
128
+ ]
129
+ );
130
+
131
+ $this->add_control(
132
+ 'eael_product_grid_background_color',
133
+ [
134
+ 'label' => esc_html__( 'Content Background Color', 'essential-addons-elementor' ),
135
+ 'type' => Controls_Manager::COLOR,
136
+ 'default' => '#fff',
137
+ 'selectors' => [
138
+ '{{WRAPPER}} .eael-product-grid .woocommerce ul.products li.product' => 'background-color: {{VALUE}};',
139
+ ],
140
+ ]
141
+ );
142
+
143
+ $this->add_group_control(
144
+ Group_Control_Border::get_type(),
145
+ [
146
+ 'name' => 'eael_peoduct_grid_border',
147
+ 'selector' => '{{WRAPPER}} .eael-product-grid .woocommerce ul.products li.product',
148
+ ]
149
+ );
150
+
151
+ $this->add_control(
152
+ 'eael_peoduct_grid_border_radius',
153
+ [
154
+ 'label' => esc_html__( 'Border Radius', 'essential-addons-elementor' ),
155
+ 'type' => Controls_Manager::DIMENSIONS,
156
+ 'selectors' => [
157
+ '{{WRAPPER}} .eael-product-grid .woocommerce ul.products li.product' => 'border-radius: {{TOP}}px {{RIGHT}}px {{BOTTOM}}px {{LEFT}}px;',
158
+ ],
159
+ ]
160
+ );
161
+
162
+
163
+ $this->end_controls_section();
164
+
165
+
166
+ $this->start_controls_section(
167
+ 'eael_section_product_grid_typography',
168
+ [
169
+ 'label' => esc_html__( 'Color &amp; Typography', 'essential-addons-elementor' ),
170
+ 'tab' => Controls_Manager::TAB_STYLE
171
+ ]
172
+ );
173
+
174
+ $this->add_control(
175
+ 'eael_product_grid_product_title_heading',
176
+ [
177
+ 'label' => __( 'Product Title', 'essential-addons-elementor' ),
178
+ 'type' => Controls_Manager::HEADING,
179
+ ]
180
+ );
181
+
182
+ $this->add_control(
183
+ 'eael_product_grid_product_title_color',
184
+ [
185
+ 'label' => esc_html__( 'Product Title Color', 'essential-addons-elementor' ),
186
+ 'type' => Controls_Manager::COLOR,
187
+ 'default' => '#272727',
188
+ 'selectors' => [
189
+ '{{WRAPPER}} .eael-product-grid .woocommerce ul.products li.product .woocommerce-loop-product__title' => 'color: {{VALUE}};',
190
+ ],
191
+ ]
192
+ );
193
+
194
+ $this->add_group_control(
195
+ Group_Control_Typography::get_type(),
196
+ [
197
+ 'name' => 'eael_product_grid_product_title_typography',
198
+ 'selector' => '{{WRAPPER}} .eael-product-grid .woocommerce ul.products li.product .woocommerce-loop-product__title',
199
+ ]
200
+ );
201
+
202
+ $this->add_control(
203
+ 'eael_product_grid_product_price_heading',
204
+ [
205
+ 'label' => __( 'Product Price', 'essential-addons-elementor' ),
206
+ 'type' => Controls_Manager::HEADING,
207
+ ]
208
+ );
209
+
210
+
211
+ $this->add_control(
212
+ 'eael_product_grid_product_price_color',
213
+ [
214
+ 'label' => esc_html__( 'Product Price Color', 'essential-addons-elementor' ),
215
+ 'type' => Controls_Manager::COLOR,
216
+ 'default' => '#272727',
217
+ 'selectors' => [
218
+ '{{WRAPPER}} .eael-product-grid .woocommerce ul.products li.product .price' => 'color: {{VALUE}};',
219
+ ],
220
+ ]
221
+ );
222
+
223
+ $this->add_group_control(
224
+ Group_Control_Typography::get_type(),
225
+ [
226
+ 'name' => 'eael_product_grid_product_price_typography',
227
+ 'selector' => '{{WRAPPER}} .eael-product-grid .woocommerce ul.products li.product .price',
228
+ ]
229
+ );
230
+
231
+ $this->add_control(
232
+ 'eael_product_grid_product_rating_heading',
233
+ [
234
+ 'label' => __( 'Star Rating', 'essential-addons-elementor' ),
235
+ 'type' => Controls_Manager::HEADING,
236
+ ]
237
+ );
238
+
239
+ $this->add_control(
240
+ 'eael_product_grid_product_rating_color',
241
+ [
242
+ 'label' => esc_html__( 'Rating Color', 'essential-addons-elementor' ),
243
+ 'type' => Controls_Manager::COLOR,
244
+ 'default' => '#f2b01e',
245
+ 'selectors' => [
246
+ '{{WRAPPER}} .eael-product-grid .woocommerce .star-rating::before' => 'color: {{VALUE}};',
247
+ '{{WRAPPER}} .eael-product-grid .woocommerce .star-rating span::before' => 'color: {{VALUE}};',
248
+ ],
249
+ ]
250
+ );
251
+
252
+ $this->add_group_control(
253
+ Group_Control_Typography::get_type(),
254
+ [
255
+ 'name' => 'eael_product_grid_product_rating_typography',
256
+ 'selector' => '{{WRAPPER}} .eael-product-grid .woocommerce ul.products li.product .star-rating',
257
+ ]
258
+ );
259
+
260
+ $this->add_control(
261
+ 'eael_product_grid_sale_badge_heading',
262
+ [
263
+ 'label' => __( 'Sale Badge', 'essential-addons-elementor' ),
264
+ 'type' => Controls_Manager::HEADING,
265
+ ]
266
+ );
267
+
268
+ $this->add_control(
269
+ 'eael_product_grid_sale_badge_color',
270
+ [
271
+ 'label' => esc_html__( 'Sale Badge Color', 'essential-addons-elementor' ),
272
+ 'type' => Controls_Manager::COLOR,
273
+ 'default' => '#fff',
274
+ 'selectors' => [
275
+ '{{WRAPPER}} .eael-product-grid:not(.eael-product-no-style) .onsale' => 'color: {{VALUE}};',
276
+ ],
277
+ ]
278
+ );
279
+
280
+ $this->add_control(
281
+ 'eael_product_grid_sale_badge_background',
282
+ [
283
+ 'label' => esc_html__( 'Sale Badge Background', 'essential-addons-elementor' ),
284
+ 'type' => Controls_Manager::COLOR,
285
+ 'default' => '#ff2a13',
286
+ 'selectors' => [
287
+ '{{WRAPPER}} .eael-product-grid:not(.eael-product-no-style) .onsale' => 'background-color: {{VALUE}};',
288
+ ],
289
+ ]
290
+ );
291
+
292
+ $this->add_group_control(
293
+ Group_Control_Typography::get_type(),
294
+ [
295
+ 'name' => 'eael_product_grid_sale_badge_typography',
296
+ 'selector' => '{{WRAPPER}} .eael-product-grid:not(.eael-product-no-style) .onsale',
297
+ ]
298
+ );
299
+
300
+
301
+ $this->end_controls_section();
302
+
303
+
304
+ $this->start_controls_section(
305
+ 'eael_section_product_grid_add_to_cart_styles',
306
+ [
307
+ 'label' => esc_html__( 'Add to Cart Button Styles', 'essential-addons-elementor' ),
308
+ 'tab' => Controls_Manager::TAB_STYLE
309
+ ]
310
+ );
311
+
312
+
313
+ $this->start_controls_tabs( 'eael_product_grid_add_to_cart_style_tabs' );
314
+
315
+ $this->start_controls_tab( 'normal', [ 'label' => esc_html__( 'Normal', 'essential-addons-elementor' ) ] );
316
+
317
+ $this->add_control(
318
+ 'eael_product_grid_add_to_cart_color',
319
+ [
320
+ 'label' => esc_html__( 'Button Color', 'essential-addons-elementor' ),
321
+ 'type' => Controls_Manager::COLOR,
322
+ 'default' => '#333',
323
+ 'selectors' => [
324
+ '{{WRAPPER}} .eael-product-grid .woocommerce li.product .button.add_to_cart_button' => 'color: {{VALUE}};',
325
+ ],
326
+ ]
327
+ );
328
+
329
+ $this->add_control(
330
+ 'eael_product_grid_add_to_cart_background',
331
+ [
332
+ 'label' => esc_html__( 'Button Background Color', 'essential-addons-elementor' ),
333
+ 'type' => Controls_Manager::COLOR,
334
+ 'default' => '#fff',
335
+ 'selectors' => [
336
+ '{{WRAPPER}} .eael-product-grid .woocommerce li.product .button.add_to_cart_button' => 'background-color: {{VALUE}};',
337
+ ],
338
+ ]
339
+ );
340
+
341
+ $this->add_group_control(
342
+ Group_Control_Border::get_type(),
343
+ [
344
+ 'name' => 'eael_product_grid_add_to_cart_border',
345
+ 'selector' => '{{WRAPPER}} .eael-product-grid .woocommerce li.product .button.add_to_cart_button',
346
+ ]
347
+ );
348
+
349
+ $this->add_group_control(
350
+ Group_Control_Typography::get_type(),
351
+ [
352
+ 'name' => 'eael_product_grid_add_to_cart_typography',
353
+ 'selector' => '{{WRAPPER}} .eael-product-grid .woocommerce li.product .button.add_to_cart_button',
354
+ ]
355
+ );
356
+
357
+ $this->end_controls_tab();
358
+
359
+ $this->start_controls_tab( 'eael_product_grid_add_to_cart_hover_styles', [ 'label' => esc_html__( 'Hover', 'essential-addons-elementor' ) ] );
360
+
361
+ $this->add_control(
362
+ 'eael_product_grid_add_to_cart_hover_color',
363
+ [
364
+ 'label' => esc_html__( 'Button Color', 'essential-addons-elementor' ),
365
+ 'type' => Controls_Manager::COLOR,
366
+ 'default' => '#333',
367
+ 'selectors' => [
368
+ '{{WRAPPER}} .eael-product-grid .woocommerce li.product .button.add_to_cart_button:hover' => 'color: {{VALUE}};',
369
+ ],
370
+ ]
371
+ );
372
+
373
+ $this->add_control(
374
+ 'eael_product_grid_add_to_cart_hover_background',
375
+ [
376
+ 'label' => esc_html__( 'Button Background Color', 'essential-addons-elementor' ),
377
+ 'type' => Controls_Manager::COLOR,
378
+ 'default' => '#f9f9f9',
379
+ 'selectors' => [
380
+ '{{WRAPPER}} .eael-product-grid .woocommerce li.product .button.add_to_cart_button:hover' => 'background-color: {{VALUE}};',
381
+ ],
382
+ ]
383
+ );
384
+
385
+ $this->add_control(
386
+ 'eael_product_grid_add_to_cart_hover_border_color',
387
+ [
388
+ 'label' => esc_html__( 'Border Color', 'essential-addons-elementor' ),
389
+ 'type' => Controls_Manager::COLOR,
390
+ 'default' => '',
391
+ 'selectors' => [
392
+ '{{WRAPPER}} .eael-product-grid .woocommerce li.product .button.add_to_cart_button:hover' => 'border-color: {{VALUE}};',
393
+ ],
394
+ ]
395
+ );
396
+
397
+
398
+ $this->end_controls_tab();
399
+
400
+ $this->end_controls_tabs();
401
+
402
+
403
+ $this->end_controls_section();
404
+
405
+
406
+ }
407
+
408
+
409
+ protected function render( ) {
410
+
411
+
412
+ $settings = $this->get_settings();
413
+
414
+ $product_count = $this->get_settings( 'eael_product_grid_products_count' );
415
+ $columns = $this->get_settings( 'eael_product_grid_column' );
416
+ $show_rating = ( ($settings['eael_product_grid_rating'] == 'yes') ? "show_rating" : "hide_rating" );
417
+ $product_grid_classes = $show_rating;
418
+
419
+ $get_product_categories = $settings['eael_product_grid_categories']; // get custom field value
420
+ if($get_product_categories >= 1 ) {
421
+ $category_ids = implode(', ', $get_product_categories);
422
+ } else {
423
+ $category_ids = '';
424
+ }
425
+
426
+ ?>
427
+
428
+
429
+
430
+ <div id="eael-product-grid-<?php echo esc_attr($this->get_id()); ?>" class="eael-product-carousel eael-product-grid <?php echo $product_grid_classes; ?>">
431
+
432
+ <?php if ( ($settings['eael_product_grid_product_filter']) == 'recent-products' ) : ?>
433
+
434
+ <?php echo do_shortcode("[recent_products per_page=\"$product_count\" columns=\"$columns\" category=\"$category_ids\"]") ?>
435
+
436
+ <?php elseif ( ($settings['eael_product_grid_product_filter']) == 'featured-products' ) : ?>
437
+
438
+ <?php echo do_shortcode("[featured_products per_page=\"$product_count\" columns=\"$columns\" category=\"$category\"]") ?>
439
+
440
+ <?php elseif ( ($settings['eael_product_grid_product_filter']) == 'best-selling-products' ) : ?>
441
+
442
+ <?php echo do_shortcode("[best_selling_products per_page=\"$product_count\" columns=\"$columns\" category=\"$category\"]") ?>
443
+
444
+ <?php elseif ( ($settings['eael_product_grid_product_filter']) == 'sale-products' ) : ?>
445
+
446
+ <?php echo do_shortcode("[sale_products per_page=\"$product_count\" columns=\"$columns\" category=\"$category\"]") ?>
447
+
448
+ <?php else: ?>
449
+
450
+ <?php echo do_shortcode("[top_rated_products per_page=\"$product_count\" columns=\"$columns\" category=\"$category\"]") ?>
451
+
452
+ <?php endif; ?>
453
+
454
+ <div class="clearfix"></div>
455
+ </div>
456
+
457
+
458
+ <?php
459
+
460
+ }
461
+
462
+ protected function content_template() {
463
+
464
+ ?>
465
+
466
+
467
+ <?php
468
+ }
469
+ }
470
+
471
+
472
+ Plugin::instance()->widgets_manager->register_widget_type( new Widget_Eael_Product_Grid() );
elements/team-members/team-members.php ADDED
@@ -0,0 +1,720 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace Elementor;
3
+
4
+ if ( ! defined( 'ABSPATH' ) ) exit; // If this file is called directly, abort.
5
+
6
+
7
+ class Widget_Eael_Team_Member extends Widget_Base {
8
+
9
+ public function get_name() {
10
+ return 'eael-team-member';
11
+ }
12
+
13
+ public function get_title() {
14
+ return esc_html__( 'EA Team Member', 'essential-addons-elementor' );
15
+ }
16
+
17
+ public function get_icon() {
18
+ return 'eicon-person';
19
+ }
20
+
21
+ public function get_categories() {
22
+ return [ 'essential-addons-elementor' ];
23
+ }
24
+
25
+
26
+ protected function _register_controls() {
27
+
28
+
29
+ $this->start_controls_section(
30
+ 'eael_section_team_member_image',
31
+ [
32
+ 'label' => esc_html__( 'Team Member Image', 'essential-addons-elementor' )
33
+ ]
34
+ );
35
+
36
+
37
+ $this->add_control(
38
+ 'eael_team_member_image',
39
+ [
40
+ 'label' => __( 'Team Member Avatar', 'essential-addons-elementor' ),
41
+ 'type' => Controls_Manager::MEDIA,
42
+ 'default' => [
43
+ 'url' => Utils::get_placeholder_image_src(),
44
+ ],
45
+ ]
46
+ );
47
+
48
+
49
+ $this->add_group_control(
50
+ Group_Control_Image_Size::get_type(),
51
+ [
52
+ 'name' => 'thumbnail',
53
+ 'default' => 'full',
54
+ 'condition' => [
55
+ 'eael_team_member_image[url]!' => '',
56
+ ],
57
+ ]
58
+ );
59
+
60
+
61
+ $this->end_controls_section();
62
+
63
+ $this->start_controls_section(
64
+ 'eael_section_team_member_content',
65
+ [
66
+ 'label' => esc_html__( 'Team Member Content', 'essential-addons-elementor' )
67
+ ]
68
+ );
69
+
70
+
71
+ $this->add_control(
72
+ 'eael_team_member_name',
73
+ [
74
+ 'label' => esc_html__( 'Name', 'essential-addons-elementor' ),
75
+ 'type' => Controls_Manager::TEXT,
76
+ 'default' => esc_html__( 'John Doe', 'essential-addons-elementor' ),
77
+ ]
78
+ );
79
+
80
+ $this->add_control(
81
+ 'eael_team_member_job_title',
82
+ [
83
+ 'label' => esc_html__( 'Job Position', 'essential-addons-elementor' ),
84
+ 'type' => Controls_Manager::TEXT,
85
+ 'default' => esc_html__( 'Software Engineer', 'essential-addons-elementor' ),
86
+ ]
87
+ );
88
+
89
+ $this->add_control(
90
+ 'eael_team_member_description',
91
+ [
92
+ 'label' => esc_html__( 'Description', 'essential-addons-elementor' ),
93
+ 'type' => Controls_Manager::TEXTAREA,
94
+ 'default' => esc_html__( 'Add team member description here. Remove the text if not necessary.', 'essential-addons-elementor' ),
95
+ ]
96
+ );
97
+
98
+
99
+ $this->end_controls_section();
100
+
101
+
102
+ $this->start_controls_section(
103
+ 'eael_section_team_member_social_profiles',
104
+ [
105
+ 'label' => esc_html__( 'Social Profiles', 'essential-addons-elementor' )
106
+ ]
107
+ );
108
+
109
+ $this->add_control(
110
+ 'eael_team_member_enable_social_profiles',
111
+ [
112
+ 'label' => esc_html__( 'Display Social Profiles?', 'essential-addons-elementor' ),
113
+ 'type' => Controls_Manager::SWITCHER,
114
+ 'default' => 'yes',
115
+ ]
116
+ );
117
+
118
+
119
+ $this->add_control(
120
+ 'eael_team_member_social_profile_links',
121
+ [
122
+ 'type' => Controls_Manager::REPEATER,
123
+ 'condition' => [
124
+ 'eael_team_member_enable_social_profiles!' => '',
125
+ ],
126
+ 'default' => [
127
+ [
128
+ 'social' => 'fa fa-facebook',
129
+ ],
130
+ [
131
+ 'social' => 'fa fa-twitter',
132
+ ],
133
+ [
134
+ 'social' => 'fa fa-google-plus',
135
+ ],
136
+ [
137
+ 'social' => 'fa fa-linkedin',
138
+ ],
139
+ ],
140
+ 'fields' => [
141
+ [
142
+ 'name' => 'social',
143
+ 'label' => esc_html__( 'Icon', 'essential-addons-elementor' ),
144
+ 'type' => Controls_Manager::ICON,
145
+ 'label_block' => true,
146
+ 'default' => 'fa fa-wordpress',
147
+ 'include' => [
148
+ 'fa fa-apple',
149
+ 'fa fa-behance',
150
+ 'fa fa-bitbucket',
151
+ 'fa fa-codepen',
152
+ 'fa fa-delicious',
153
+ 'fa fa-digg',
154
+ 'fa fa-dribbble',
155
+ 'fa fa-envelope',
156
+ 'fa fa-facebook',
157
+ 'fa fa-flickr',
158
+ 'fa fa-foursquare',
159
+ 'fa fa-github',
160
+ 'fa fa-google-plus',
161
+ 'fa fa-houzz',
162
+ 'fa fa-instagram',
163
+ 'fa fa-jsfiddle',
164
+ 'fa fa-linkedin',
165
+ 'fa fa-medium',
166
+ 'fa fa-pinterest',
167
+ 'fa fa-product-hunt',
168
+ 'fa fa-reddit',
169
+ 'fa fa-shopping-cart',
170
+ 'fa fa-slideshare',
171
+ 'fa fa-snapchat',
172
+ 'fa fa-soundcloud',
173
+ 'fa fa-spotify',
174
+ 'fa fa-stack-overflow',
175
+ 'fa fa-tripadvisor',
176
+ 'fa fa-tumblr',
177
+ 'fa fa-twitch',
178
+ 'fa fa-twitter',
179
+ 'fa fa-vimeo',
180
+ 'fa fa-vk',
181
+ 'fa fa-whatsapp',
182
+ 'fa fa-wordpress',
183
+ 'fa fa-xing',
184
+ 'fa fa-yelp',
185
+ 'fa fa-youtube',
186
+ ],
187
+ ],
188
+ [
189
+ 'name' => 'link',
190
+ 'label' => esc_html__( 'Link', 'essential-addons-elementor' ),
191
+ 'type' => Controls_Manager::URL,
192
+ 'label_block' => true,
193
+ 'default' => [
194
+ 'url' => '',
195
+ 'is_external' => 'true',
196
+ ],
197
+ 'placeholder' => esc_html__( 'Place URL here', 'essential-addons-elementor' ),
198
+ ],
199
+ ],
200
+ 'title_field' => '<i class="{{ social }}"></i> {{{ social.replace( \'fa fa-\', \'\' ).replace( \'-\', \' \' ).replace( /\b\w/g, function( letter ){ return letter.toUpperCase() } ) }}}',
201
+ ]
202
+ );
203
+
204
+ $this->end_controls_section();
205
+
206
+
207
+ $this->start_controls_section(
208
+ 'eael_section_team_members_styles_general',
209
+ [
210
+ 'label' => esc_html__( 'Team Member Styles', 'essential-addons-elementor' ),
211
+ 'tab' => Controls_Manager::TAB_STYLE
212
+ ]
213
+ );
214
+
215
+
216
+ $this->add_control(
217
+ 'eael_team_members_preset',
218
+ [
219
+ 'label' => esc_html__( 'Style Preset', 'essential-addons-elementor' ),
220
+ 'type' => Controls_Manager::SELECT,
221
+ 'default' => 'eael-team-members-simple',
222
+ 'options' => [
223
+ 'eael-team-members-simple' => esc_html__( 'Simple Style', 'essential-addons-elementor' ),
224
+ 'eael-team-members-overlay' => esc_html__( 'Overlay Style', 'essential-addons-elementor' ),
225
+ ],
226
+ ]
227
+ );
228
+
229
+ $this->add_control(
230
+ 'eael_team_members_overlay_background',
231
+ [
232
+ 'label' => esc_html__( 'Overlay Color', 'essential-addons-elementor' ),
233
+ 'type' => Controls_Manager::COLOR,
234
+ 'default' => 'rgba(255,255,255,0.8)',
235
+ 'selectors' => [
236
+ '{{WRAPPER}} .eael-team-members-overlay .eael-team-content' => 'background-color: {{VALUE}};',
237
+ ],
238
+ 'condition' => [
239
+ 'eael_team_members_preset' => 'eael-team-members-overlay',
240
+ ],
241
+ ]
242
+ );
243
+
244
+ $this->add_control(
245
+ 'eael_team_members_background',
246
+ [
247
+ 'label' => esc_html__( 'Content Background Color', 'essential-addons-elementor' ),
248
+ 'type' => Controls_Manager::COLOR,
249
+ 'default' => '',
250
+ 'selectors' => [
251
+ '{{WRAPPER}} .eael-team-item .eael-team-content' => 'background-color: {{VALUE}};',
252
+ ],
253
+ ]
254
+ );
255
+
256
+ $this->add_control(
257
+ 'eael_team_members_alignment',
258
+ [
259
+ 'label' => esc_html__( 'Set Alignment', 'essential-addons-elementor' ),
260
+ 'type' => Controls_Manager::CHOOSE,
261
+ 'label_block' => true,
262
+ 'options' => [
263
+ 'default' => [
264
+ 'title' => __( 'Default', 'essential-addons-elementor' ),
265
+ 'icon' => 'fa fa-ban',
266
+ ],
267
+ 'left' => [
268
+ 'title' => esc_html__( 'Left', 'essential-addons-elementor' ),
269
+ 'icon' => 'fa fa-align-left',
270
+ ],
271
+ 'centered' => [
272
+ 'title' => esc_html__( 'Center', 'essential-addons-elementor' ),
273
+ 'icon' => 'fa fa-align-center',
274
+ ],
275
+ 'right' => [
276
+ 'title' => esc_html__( 'Right', 'essential-addons-elementor' ),
277
+ 'icon' => 'fa fa-align-right',
278
+ ],
279
+ ],
280
+ 'default' => 'eael-team-align-default',
281
+ 'prefix_class' => 'eael-team-align-',
282
+ ]
283
+ );
284
+
285
+ $this->add_responsive_control(
286
+ 'eael_team_members_padding',
287
+ [
288
+ 'label' => esc_html__( 'Content Padding', 'essential-addons-elementor' ),
289
+ 'type' => Controls_Manager::DIMENSIONS,
290
+ 'size_units' => [ 'px', '%', 'em' ],
291
+ 'selectors' => [
292
+ '{{WRAPPER}} .eael-team-item .eael-team-content' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
293
+ ],
294
+ ]
295
+ );
296
+
297
+ $this->add_group_control(
298
+ Group_Control_Border::get_type(),
299
+ [
300
+ 'name' => 'eael_team_members_border',
301
+ 'label' => esc_html__( 'Border', 'essential-addons-elementor' ),
302
+ 'selector' => '{{WRAPPER}} .eael-team-item',
303
+ ]
304
+ );
305
+
306
+ $this->add_control(
307
+ 'eael_team_members_border_radius',
308
+ [
309
+ 'label' => esc_html__( 'Border Radius', 'essential-addons-elementor' ),
310
+ 'type' => Controls_Manager::DIMENSIONS,
311
+ 'selectors' => [
312
+ '{{WRAPPER}} .eael-team-item' => 'border-radius: {{TOP}}px {{RIGHT}}px {{BOTTOM}}px {{LEFT}}px;',
313
+ ],
314
+ ]
315
+ );
316
+
317
+ $this->end_controls_section();
318
+
319
+
320
+ $this->start_controls_section(
321
+ 'eael_section_team_members_image_styles',
322
+ [
323
+ 'label' => esc_html__( 'Team Member Image Style', 'essential-addons-elementor' ),
324
+ 'tab' => Controls_Manager::TAB_STYLE
325
+ ]
326
+ );
327
+
328
+ $this->add_responsive_control(
329
+ 'eael_team_members_image_width',
330
+ [
331
+ 'label' => esc_html__( 'Image Width', 'essential-addons-elementor' ),
332
+ 'type' => Controls_Manager::SLIDER,
333
+ 'default' => [
334
+ 'size' => 100,
335
+ 'unit' => '%',
336
+ ],
337
+ 'range' => [
338
+ '%' => [
339
+ 'min' => 0,
340
+ 'max' => 100,
341
+ ],
342
+ 'px' => [
343
+ 'min' => 0,
344
+ 'max' => 1000,
345
+ ],
346
+ ],
347
+ 'size_units' => [ '%', 'px' ],
348
+ 'selectors' => [
349
+ '{{WRAPPER}} .eael-team-item figure img' => 'width:{{SIZE}}{{UNIT}};',
350
+ ],
351
+ ]
352
+ );
353
+
354
+
355
+ $this->add_responsive_control(
356
+ 'eael_team_members_image_margin',
357
+ [
358
+ 'label' => esc_html__( 'Margin', 'essential-addons-elementor' ),
359
+ 'type' => Controls_Manager::DIMENSIONS,
360
+ 'size_units' => [ 'px', '%' ],
361
+ 'selectors' => [
362
+ '{{WRAPPER}} .eael-team-item figure img' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
363
+ ],
364
+ ]
365
+ );
366
+
367
+ $this->add_responsive_control(
368
+ 'eael_team_members_image_padding',
369
+ [
370
+ 'label' => esc_html__( 'Padding', 'essential-addons-elementor' ),
371
+ 'type' => Controls_Manager::DIMENSIONS,
372
+ 'size_units' => [ 'px', '%', 'em' ],
373
+ 'selectors' => [
374
+ '{{WRAPPER}} .eael-team-item figure img' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
375
+ ],
376
+ ]
377
+ );
378
+
379
+
380
+ $this->add_group_control(
381
+ Group_Control_Border::get_type(),
382
+ [
383
+ 'name' => 'eael_team_members_image_border',
384
+ 'label' => esc_html__( 'Border', 'essential-addons-elementor' ),
385
+ 'selector' => '{{WRAPPER}} .eael-team-item figure img',
386
+ ]
387
+ );
388
+
389
+ $this->add_control(
390
+ 'eael_team_members_image_rounded',
391
+ [
392
+ 'label' => esc_html__( 'Rounded Avatar?', 'essential-addons-elementor' ),
393
+ 'type' => Controls_Manager::SWITCHER,
394
+ 'return_value' => 'team-avatar-rounded',
395
+ 'default' => '',
396
+ ]
397
+ );
398
+
399
+
400
+ $this->add_control(
401
+ 'eael_team_members_image_border_radius',
402
+ [
403
+ 'label' => esc_html__( 'Border Radius', 'essential-addons-elementor' ),
404
+ 'type' => Controls_Manager::DIMENSIONS,
405
+ 'selectors' => [
406
+ '{{WRAPPER}} .eael-team-item figure img' => 'border-radius: {{TOP}}px {{RIGHT}}px {{BOTTOM}}px {{LEFT}}px;',
407
+ ],
408
+ 'condition' => [
409
+ 'eael_team_members_image_rounded!' => 'team-avatar-rounded',
410
+ ],
411
+ ]
412
+ );
413
+
414
+ $this->end_controls_section();
415
+
416
+
417
+ $this->start_controls_section(
418
+ 'eael_section_team_members_typography',
419
+ [
420
+ 'label' => esc_html__( 'Color &amp; Typography', 'essential-addons-elementor' ),
421
+ 'tab' => Controls_Manager::TAB_STYLE
422
+ ]
423
+ );
424
+
425
+ $this->add_control(
426
+ 'eael_team_members_name_heading',
427
+ [
428
+ 'label' => __( 'Member Name', 'essential-addons-elementor' ),
429
+ 'type' => Controls_Manager::HEADING,
430
+ ]
431
+ );
432
+
433
+ $this->add_control(
434
+ 'eael_team_members_name_color',
435
+ [
436
+ 'label' => esc_html__( 'Member Name Color', 'essential-addons-elementor' ),
437
+ 'type' => Controls_Manager::COLOR,
438
+ 'default' => '#272727',
439
+ 'selectors' => [
440
+ '{{WRAPPER}} .eael-team-item .eael-team-member-name' => 'color: {{VALUE}};',
441
+ ],
442
+ ]
443
+ );
444
+
445
+ $this->add_group_control(
446
+ Group_Control_Typography::get_type(),
447
+ [
448
+ 'name' => 'eael_team_members_name_typography',
449
+ 'selector' => '{{WRAPPER}} .eael-team-item .eael-team-member-name',
450
+ ]
451
+ );
452
+
453
+ $this->add_control(
454
+ 'eael_team_members_position_heading',
455
+ [
456
+ 'label' => __( 'Member Job Position', 'essential-addons-elementor' ),
457
+ 'type' => Controls_Manager::HEADING,
458
+ ]
459
+ );
460
+
461
+ $this->add_control(
462
+ 'eael_team_members_position_color',
463
+ [
464
+ 'label' => esc_html__( 'Job Position Color', 'essential-addons-elementor' ),
465
+ 'type' => Controls_Manager::COLOR,
466
+ 'default' => '#272727',
467
+ 'selectors' => [
468
+ '{{WRAPPER}} .eael-team-item .eael-team-member-position' => 'color: {{VALUE}};',
469
+ ],
470
+ ]
471
+ );
472
+
473
+ $this->add_group_control(
474
+ Group_Control_Typography::get_type(),
475
+ [
476
+ 'name' => 'eael_team_members_position_typography',
477
+ 'selector' => '{{WRAPPER}} .eael-team-item .eael-team-member-position',
478
+ ]
479
+ );
480
+
481
+ $this->add_control(
482
+ 'eael_team_members_description_heading',
483
+ [
484
+ 'label' => __( 'Member Description', 'essential-addons-elementor' ),
485
+ 'type' => Controls_Manager::HEADING,
486
+ ]
487
+ );
488
+
489
+ $this->add_control(
490
+ 'eael_team_members_description_color',
491
+ [
492
+ 'label' => esc_html__( 'Description Color', 'essential-addons-elementor' ),
493
+ 'type' => Controls_Manager::COLOR,
494
+ 'default' => '#272727',
495
+ 'selectors' => [
496
+ '{{WRAPPER}} .eael-team-item .eael-team-content .eael-team-text' => 'color: {{VALUE}};',
497
+ ],
498
+ ]
499
+ );
500
+
501
+ $this->add_group_control(
502
+ Group_Control_Typography::get_type(),
503
+ [
504
+ 'name' => 'eael_team_members_description_typography',
505
+ 'selector' => '{{WRAPPER}} .eael-team-item .eael-team-content .eael-team-text',
506
+ ]
507
+ );
508
+
509
+
510
+ $this->end_controls_section();
511
+
512
+
513
+ $this->start_controls_section(
514
+ 'eael_section_team_members_social_profiles_styles',
515
+ [
516
+ 'label' => esc_html__( 'Social Profiles Style', 'essential-addons-elementor' ),
517
+ 'tab' => Controls_Manager::TAB_STYLE
518
+ ]
519
+ );
520
+
521
+
522
+ $this->add_control(
523
+ 'eael_team_members_social_icon_size',
524
+ [
525
+ 'label' => esc_html__( 'Icon Size', 'essential-addons-elementor' ),
526
+ 'type' => Controls_Manager::SLIDER,
527
+ 'range' => [
528
+ 'px' => [
529
+ 'min' => 0,
530
+ 'max' => 200,
531
+ ],
532
+ ],
533
+ 'selectors' => [
534
+ '{{WRAPPER}} .eael-team-member-social-link > a' => 'width: {{SIZE}}px; height: {{SIZE}}px; line-height: {{SIZE}}px;',
535
+ ],
536
+ ]
537
+ );
538
+
539
+ $this->add_responsive_control(
540
+ 'eael_team_members_social_profiles_padding',
541
+ [
542
+ 'label' => esc_html__( 'Social Profiles Spacing', 'essential-addons-elementor' ),
543
+ 'type' => Controls_Manager::DIMENSIONS,
544
+ 'size_units' => [ 'px', '%', 'em' ],
545
+ 'selectors' => [
546
+ '{{WRAPPER}} .eael-team-content > .eael-team-member-social-profiles' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
547
+ ],
548
+ ]
549
+ );
550
+
551
+
552
+ $this->start_controls_tabs( 'eael_team_members_social_icons_style_tabs' );
553
+
554
+ $this->start_controls_tab( 'normal', [ 'label' => esc_html__( 'Normal', 'essential-addons-elementor' ) ] );
555
+
556
+ $this->add_control(
557
+ 'eael_team_members_social_icon_color',
558
+ [
559
+ 'label' => esc_html__( 'Icon Color', 'essential-addons-elementor' ),
560
+ 'type' => Controls_Manager::COLOR,
561
+ 'default' => '#f1ba63',
562
+ 'selectors' => [
563
+ '{{WRAPPER}} .eael-team-member-social-link > a' => 'color: {{VALUE}};',
564
+ ],
565
+ ]
566
+ );
567
+
568
+
569
+ $this->add_control(
570
+ 'eael_team_members_social_icon_background',
571
+ [
572
+ 'label' => esc_html__( 'Background Color', 'essential-addons-elementor' ),
573
+ 'type' => Controls_Manager::COLOR,
574
+ 'default' => '',
575
+ 'selectors' => [
576
+ '{{WRAPPER}} .eael-team-member-social-link > a' => 'background-color: {{VALUE}};',
577
+ ],
578
+ ]
579
+ );
580
+
581
+ $this->add_group_control(
582
+ Group_Control_Border::get_type(),
583
+ [
584
+ 'name' => 'eael_team_members_social_icon_border',
585
+ 'selector' => '{{WRAPPER}} .eael-team-member-social-link > a',
586
+ ]
587
+ );
588
+
589
+ $this->add_control(
590
+ 'eael_team_members_social_icon_border_radius',
591
+ [
592
+ 'label' => esc_html__( 'Border Radius', 'essential-addons-elementor' ),
593
+ 'type' => Controls_Manager::SLIDER,
594
+ 'range' => [
595
+ 'px' => [
596
+ 'max' => 100,
597
+ ],
598
+ ],
599
+ 'selectors' => [
600
+ '{{WRAPPER}} .eael-team-member-social-link > a' => 'border-radius: {{SIZE}}px;',
601
+ ],
602
+ ]
603
+ );
604
+
605
+ $this->add_group_control(
606
+ Group_Control_Typography::get_type(),
607
+ [
608
+ 'name' => 'eael_team_members_social_icon_typography',
609
+ 'selector' => '{{WRAPPER}} .eael-team-member-social-link > a',
610
+ ]
611
+ );
612
+
613
+
614
+ $this->end_controls_tab();
615
+
616
+ $this->start_controls_tab( 'eael_team_members_social_icon_hover', [ 'label' => esc_html__( 'Hover', 'essential-addons-elementor' ) ] );
617
+
618
+ $this->add_control(
619
+ 'eael_team_members_social_icon_hover_color',
620
+ [
621
+ 'label' => esc_html__( 'Icon Hover Color', 'essential-addons-elementor' ),
622
+ 'type' => Controls_Manager::COLOR,
623
+ 'default' => '#ad8647',
624
+ 'selectors' => [
625
+ '{{WRAPPER}} .eael-team-member-social-link > a:hover' => 'color: {{VALUE}};',
626
+ ],
627
+ ]
628
+ );
629
+
630
+ $this->add_control(
631
+ 'eael_team_members_social_icon_hover_background',
632
+ [
633
+ 'label' => esc_html__( 'Hover Background Color', 'essential-addons-elementor' ),
634
+ 'type' => Controls_Manager::COLOR,
635
+ 'default' => '',
636
+ 'selectors' => [
637
+ '{{WRAPPER}} .eael-team-member-social-link > a:hover' => 'background-color: {{VALUE}};',
638
+ ],
639
+ ]
640
+ );
641
+
642
+ $this->add_control(
643
+ 'eael_team_members_social_icon_hover_border_color',
644
+ [
645
+ 'label' => esc_html__( 'Hover Border Color', 'essential-addons-elementor' ),
646
+ 'type' => Controls_Manager::COLOR,
647
+ 'default' => '',
648
+ 'selectors' => [
649
+ '{{WRAPPER}} .eael-team-member-social-link > a:hover' => 'border-color: {{VALUE}};',
650
+ ],
651
+ ]
652
+ );
653
+
654
+ $this->end_controls_tab();
655
+
656
+ $this->end_controls_tabs();
657
+
658
+
659
+ $this->end_controls_section();
660
+
661
+
662
+ }
663
+
664
+
665
+ protected function render( ) {
666
+
667
+ $settings = $this->get_settings();
668
+ $team_member_image = $this->get_settings( 'eael_team_member_image' );
669
+ $team_member_image_url = Group_Control_Image_Size::get_attachment_image_src( $team_member_image['id'], 'thumbnail', $settings );
670
+ $team_member_classes = $this->get_settings('eael_team_members_preset') . " " . $this->get_settings('eael_team_members_image_rounded');
671
+
672
+ ?>
673
+
674
+
675
+ <div id="eael-team-member-<?php echo esc_attr($this->get_id()); ?>" class="eael-team-item <?php echo $team_member_classes; ?>">
676
+ <div class="eael-team-item-inner">
677
+ <div class="eael-team-image">
678
+ <figure>
679
+ <img src="<?php echo esc_url($team_member_image_url);?>" alt="<?php echo $settings['eael_team_member_name'];?>">
680
+ </figure>
681
+ </div>
682
+
683
+ <div class="eael-team-content">
684
+ <h3 class="eael-team-member-name"><?php echo $settings['eael_team_member_name']; ?></h3>
685
+ <h4 class="eael-team-member-position"><?php echo $settings['eael_team_member_job_title']; ?></h4>
686
+
687
+ <?php if ( ! empty( $settings['eael_team_member_enable_social_profiles'] ) ): ?>
688
+ <ul class="eael-team-member-social-profiles">
689
+ <?php foreach ( $settings['eael_team_member_social_profile_links'] as $item ) : ?>
690
+ <?php if ( ! empty( $item['social'] ) ) : ?>
691
+ <?php $target = $item['link']['is_external'] ? ' target="_blank"' : ''; ?>
692
+ <li class="eael-team-member-social-link">
693
+ <a href="<?php echo esc_attr( $item['link']['url'] ); ?>"<?php echo $target; ?>><i class="<?php echo esc_attr($item['social'] ); ?>"></i></a>
694
+ </li>
695
+ <?php endif; ?>
696
+ <?php endforeach; ?>
697
+ </ul>
698
+ <?php endif; ?>
699
+
700
+ <p class="eael-team-text"><?php echo $settings['eael_team_member_description']; ?></p>
701
+ </div>
702
+ </div>
703
+ </div>
704
+
705
+
706
+ <?php
707
+
708
+ }
709
+
710
+ protected function content_template() {
711
+
712
+ ?>
713
+
714
+
715
+ <?php
716
+ }
717
+ }
718
+
719
+
720
+ Plugin::instance()->widgets_manager->register_widget_type( new Widget_Eael_Team_Member() );
elements/testimonials/testimonials.php ADDED
@@ -0,0 +1,476 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace Elementor;
3
+
4
+ if ( ! defined( 'ABSPATH' ) ) exit; // If this file is called directly, abort.
5
+
6
+
7
+ class Widget_Eael_Testimonial extends Widget_Base {
8
+
9
+ public function get_name() {
10
+ return 'eael-testimonial';
11
+ }
12
+
13
+ public function get_title() {
14
+ return esc_html__( 'EA Testimonial', 'essential-addons-elementor' );
15
+ }
16
+
17
+ public function get_icon() {
18
+ return 'eicon-testimonial';
19
+ }
20
+
21
+ public function get_categories() {
22
+ return [ 'essential-addons-elementor' ];
23
+ }
24
+
25
+
26
+ protected function _register_controls() {
27
+
28
+
29
+ $this->start_controls_section(
30
+ 'eael_section_testimonial_image',
31
+ [
32
+ 'label' => esc_html__( 'Testimonial Image', 'essential-addons-elementor' )
33
+ ]
34
+ );
35
+
36
+ $this->add_control(
37
+ 'eael_testimonial_enable_avatar',
38
+ [
39
+ 'label' => esc_html__( 'Display Avatar?', 'essential-addons-elementor' ),
40
+ 'type' => Controls_Manager::SWITCHER,
41
+ 'default' => 'yes',
42
+ ]
43
+ );
44
+
45
+ $this->add_control(
46
+ 'eael_testimonial_image',
47
+ [
48
+ 'label' => __( 'Testimonial Avatar', 'essential-addons-elementor' ),
49
+ 'type' => Controls_Manager::MEDIA,
50
+ 'default' => [
51
+ 'url' => Utils::get_placeholder_image_src(),
52
+ ],
53
+ 'condition' => [
54
+ 'eael_testimonial_enable_avatar' => 'yes',
55
+ ],
56
+ ]
57
+ );
58
+
59
+
60
+ $this->add_group_control(
61
+ Group_Control_Image_Size::get_type(),
62
+ [
63
+ 'name' => 'thumbnail',
64
+ 'default' => 'thumbnail',
65
+ 'condition' => [
66
+ 'eael_testimonial_image[url]!' => '',
67
+ 'eael_testimonial_enable_avatar' => 'yes',
68
+ ],
69
+ ]
70
+ );
71
+
72
+
73
+ $this->end_controls_section();
74
+
75
+ $this->start_controls_section(
76
+ 'eael_section_testimonial_content',
77
+ [
78
+ 'label' => esc_html__( 'Testimonial Content', 'essential-addons-elementor' )
79
+ ]
80
+ );
81
+
82
+
83
+ $this->add_control(
84
+ 'eael_testimonial_name',
85
+ [
86
+ 'label' => esc_html__( 'User Name', 'essential-addons-elementor' ),
87
+ 'type' => Controls_Manager::TEXT,
88
+ 'default' => esc_html__( 'John Doe', 'essential-addons-elementor' ),
89
+ ]
90
+ );
91
+
92
+ $this->add_control(
93
+ 'eael_testimonial_company_title',
94
+ [
95
+ 'label' => esc_html__( 'Company Name', 'essential-addons-elementor' ),
96
+ 'type' => Controls_Manager::TEXT,
97
+ 'default' => esc_html__( 'Codetic', 'essential-addons-elementor' ),
98
+ ]
99
+ );
100
+
101
+ $this->add_control(
102
+ 'eael_testimonial_description',
103
+ [
104
+ 'label' => esc_html__( 'Testimonial Description', 'essential-addons-elementor' ),
105
+ 'type' => Controls_Manager::TEXTAREA,
106
+ 'default' => esc_html__( 'Add testimonial description here. Edit and place your own text.', 'essential-addons-elementor' ),
107
+ ]
108
+ );
109
+
110
+
111
+ $this->end_controls_section();
112
+
113
+
114
+
115
+ $this->start_controls_section(
116
+ 'eael_section_testimonial_styles_general',
117
+ [
118
+ 'label' => esc_html__( 'Testimonial Styles', 'essential-addons-elementor' ),
119
+ 'tab' => Controls_Manager::TAB_STYLE
120
+ ]
121
+ );
122
+
123
+ $this->add_control(
124
+ 'eael_testimonial_background',
125
+ [
126
+ 'label' => esc_html__( 'Testimonial Background Color', 'essential-addons-elementor' ),
127
+ 'type' => Controls_Manager::COLOR,
128
+ 'default' => '',
129
+ 'selectors' => [
130
+ '{{WRAPPER}} .eael-testimonial-item' => 'background-color: {{VALUE}};',
131
+ ],
132
+ ]
133
+ );
134
+
135
+ $this->add_control(
136
+ 'eael_testimonial_alignment',
137
+ [
138
+ 'label' => esc_html__( 'Set Alignment', 'essential-addons-elementor' ),
139
+ 'type' => Controls_Manager::CHOOSE,
140
+ 'label_block' => true,
141
+ 'options' => [
142
+ 'eael-testimonial-align-default' => [
143
+ 'title' => __( 'Default', 'essential-addons-elementor' ),
144
+ 'icon' => 'fa fa-ban',
145
+ ],
146
+ 'eael-testimonial-align-left' => [
147
+ 'title' => esc_html__( 'Left', 'essential-addons-elementor' ),
148
+ 'icon' => 'fa fa-align-left',
149
+ ],
150
+ 'eael-testimonial-align-centered' => [
151
+ 'title' => esc_html__( 'Center', 'essential-addons-elementor' ),
152
+ 'icon' => 'fa fa-align-center',
153
+ ],
154
+ 'eael-testimonial-align-right' => [
155
+ 'title' => esc_html__( 'Right', 'essential-addons-elementor' ),
156
+ 'icon' => 'fa fa-align-right',
157
+ ],
158
+ ],
159
+ 'default' => 'eael-testimonial-align-default',
160
+ ]
161
+ );
162
+
163
+ $this->add_control(
164
+ 'eael_testimonial_user_display_block',
165
+ [
166
+ 'label' => esc_html__( 'Display User & Company Block?', 'essential-addons-elementor' ),
167
+ 'type' => Controls_Manager::SWITCHER,
168
+ 'return_value' => 'yes',
169
+ 'default' => '',
170
+ ]
171
+ );
172
+
173
+ $this->add_responsive_control(
174
+ 'eael_testimonial_padding',
175
+ [
176
+ 'label' => esc_html__( 'Padding', 'essential-addons-elementor' ),
177
+ 'type' => Controls_Manager::DIMENSIONS,
178
+ 'size_units' => [ 'px', '%', 'em' ],
179
+ 'selectors' => [
180
+ '{{WRAPPER}} .eael-testimonial-item' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
181
+ ],
182
+ ]
183
+ );
184
+
185
+ $this->add_group_control(
186
+ Group_Control_Border::get_type(),
187
+ [
188
+ 'name' => 'eael_testimonial_border',
189
+ 'label' => esc_html__( 'Border', 'essential-addons-elementor' ),
190
+ 'selector' => '{{WRAPPER}} .eael-testimonial-item',
191
+ ]
192
+ );
193
+
194
+ $this->add_control(
195
+ 'eael_testimonial_border_radius',
196
+ [
197
+ 'label' => esc_html__( 'Border Radius', 'essential-addons-elementor' ),
198
+ 'type' => Controls_Manager::DIMENSIONS,
199
+ 'selectors' => [
200
+ '{{WRAPPER}} .eael-testimonial-item' => 'border-radius: {{TOP}}px {{RIGHT}}px {{BOTTOM}}px {{LEFT}}px;',
201
+ ],
202
+ ]
203
+ );
204
+
205
+ $this->end_controls_section();
206
+
207
+
208
+ $this->start_controls_section(
209
+ 'eael_section_testimonial_image_styles',
210
+ [
211
+ 'label' => esc_html__( 'Testimonial Image Style', 'essential-addons-elementor' ),
212
+ 'tab' => Controls_Manager::TAB_STYLE
213
+ ]
214
+ );
215
+
216
+ $this->add_responsive_control(
217
+ 'eael_testimonial_image_width',
218
+ [
219
+ 'label' => esc_html__( 'Image Width', 'essential-addons-elementor' ),
220
+ 'type' => Controls_Manager::SLIDER,
221
+ 'default' => [
222
+ 'size' => 150,
223
+ 'unit' => 'px',
224
+ ],
225
+ 'range' => [
226
+ '%' => [
227
+ 'min' => 0,
228
+ 'max' => 100,
229
+ ],
230
+ 'px' => [
231
+ 'min' => 0,
232
+ 'max' => 1000,
233
+ ],
234
+ ],
235
+ 'size_units' => [ '%', 'px' ],
236
+ 'selectors' => [
237
+ '{{WRAPPER}} .eael-testimonial-image img' => 'width:{{SIZE}}{{UNIT}};',
238
+ ],
239
+ ]
240
+ );
241
+
242
+
243
+ $this->add_responsive_control(
244
+ 'eael_testimonial_image_margin',
245
+ [
246
+ 'label' => esc_html__( 'Margin', 'essential-addons-elementor' ),
247
+ 'type' => Controls_Manager::DIMENSIONS,
248
+ 'size_units' => [ 'px', '%' ],
249
+ 'selectors' => [
250
+ '{{WRAPPER}} .eael-testimonial-image img' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
251
+ ],
252
+ ]
253
+ );
254
+
255
+ $this->add_responsive_control(
256
+ 'eael_testimonial_image_padding',
257
+ [
258
+ 'label' => esc_html__( 'Padding', 'essential-addons-elementor' ),
259
+ 'type' => Controls_Manager::DIMENSIONS,
260
+ 'size_units' => [ 'px', '%', 'em' ],
261
+ 'selectors' => [
262
+ '{{WRAPPER}} .eael-testimonial-image img' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
263
+ ],
264
+ ]
265
+ );
266
+
267
+
268
+ $this->add_group_control(
269
+ Group_Control_Border::get_type(),
270
+ [
271
+ 'name' => 'eael_testimonial_image_border',
272
+ 'label' => esc_html__( 'Border', 'essential-addons-elementor' ),
273
+ 'selector' => '{{WRAPPER}} .eael-testimonial-image img',
274
+ ]
275
+ );
276
+
277
+ $this->add_control(
278
+ 'eael_testimonial_image_rounded',
279
+ [
280
+ 'label' => esc_html__( 'Rounded Avatar?', 'essential-addons-elementor' ),
281
+ 'type' => Controls_Manager::SWITCHER,
282
+ 'return_value' => 'testimonial-avatar-rounded',
283
+ 'default' => '',
284
+ ]
285
+ );
286
+
287
+
288
+ $this->add_control(
289
+ 'eael_testimonial_image_border_radius',
290
+ [
291
+ 'label' => esc_html__( 'Border Radius', 'essential-addons-elementor' ),
292
+ 'type' => Controls_Manager::DIMENSIONS,
293
+ 'selectors' => [
294
+ '{{WRAPPER}} .eael-testimonial-image img' => 'border-radius: {{TOP}}px {{RIGHT}}px {{BOTTOM}}px {{LEFT}}px;',
295
+ ],
296
+ 'condition' => [
297
+ 'eael_testimonial_image_rounded!' => 'testimonial-avatar-rounded',
298
+ ],
299
+ ]
300
+ );
301
+
302
+ $this->end_controls_section();
303
+
304
+
305
+ $this->start_controls_section(
306
+ 'eael_section_testimonial_typography',
307
+ [
308
+ 'label' => esc_html__( 'Color &amp; Typography', 'essential-addons-elementor' ),
309
+ 'tab' => Controls_Manager::TAB_STYLE
310
+ ]
311
+ );
312
+
313
+ $this->add_control(
314
+ 'eael_testimonial_name_heading',
315
+ [
316
+ 'label' => __( 'User Name', 'essential-addons-elementor' ),
317
+ 'type' => Controls_Manager::HEADING,
318
+ ]
319
+ );
320
+
321
+ $this->add_control(
322
+ 'eael_testimonial_name_color',
323
+ [
324
+ 'label' => esc_html__( 'User Name Color', 'essential-addons-elementor' ),
325
+ 'type' => Controls_Manager::COLOR,
326
+ 'default' => '#272727',
327
+ 'selectors' => [
328
+ '{{WRAPPER}} .eael-testimonial-content .eael-testimonial-user' => 'color: {{VALUE}};',
329
+ ],
330
+ ]
331
+ );
332
+
333
+ $this->add_group_control(
334
+ Group_Control_Typography::get_type(),
335
+ [
336
+ 'name' => 'eael_testimonial_name_typography',
337
+ 'selector' => '{{WRAPPER}} .eael-testimonial-content .eael-testimonial-user',
338
+ ]
339
+ );
340
+
341
+ $this->add_control(
342
+ 'eael_testimonial_company_heading',
343
+ [
344
+ 'label' => __( 'Company Name', 'essential-addons-elementor' ),
345
+ 'type' => Controls_Manager::HEADING,
346
+ ]
347
+ );
348
+
349
+
350
+ $this->add_control(
351
+ 'eael_testimonial_company_color',
352
+ [
353
+ 'label' => esc_html__( 'Company Color', 'essential-addons-elementor' ),
354
+ 'type' => Controls_Manager::COLOR,
355
+ 'default' => '#272727',
356
+ 'selectors' => [
357
+ '{{WRAPPER}} .eael-testimonial-content .eael-testimonial-user-company' => 'color: {{VALUE}};',
358
+ ],
359
+ ]
360
+ );
361
+
362
+ $this->add_group_control(
363
+ Group_Control_Typography::get_type(),
364
+ [
365
+ 'name' => 'eael_testimonial_position_typography',
366
+ 'selector' => '{{WRAPPER}} .eael-testimonial-content .eael-testimonial-user-company',
367
+ ]
368
+ );
369
+
370
+ $this->add_control(
371
+ 'eael_testimonial_description_heading',
372
+ [
373
+ 'label' => __( 'Testimonial Text', 'essential-addons-elementor' ),
374
+ 'type' => Controls_Manager::HEADING,
375
+ ]
376
+ );
377
+
378
+ $this->add_control(
379
+ 'eael_testimonial_description_color',
380
+ [
381
+ 'label' => esc_html__( 'Testimonial Text Color', 'essential-addons-elementor' ),
382
+ 'type' => Controls_Manager::COLOR,
383
+ 'default' => '#7a7a7a',
384
+ 'selectors' => [
385
+ '{{WRAPPER}} .eael-testimonial-content .eael-testimonial-text' => 'color: {{VALUE}};',
386
+ ],
387
+ ]
388
+ );
389
+
390
+ $this->add_group_control(
391
+ Group_Control_Typography::get_type(),
392
+ [
393
+ 'name' => 'eael_testimonial_description_typography',
394
+ 'selector' => '{{WRAPPER}} .eael-testimonial-content .eael-testimonial-text',
395
+ ]
396
+ );
397
+
398
+ $this->add_control(
399
+ 'eael_testimonial_quotation_heading',
400
+ [
401
+ 'label' => __( 'Quotation Mark', 'essential-addons-elementor' ),
402
+ 'type' => Controls_Manager::HEADING,
403
+ ]
404
+ );
405
+
406
+ $this->add_control(
407
+ 'eael_testimonial_quotation_color',
408
+ [
409
+ 'label' => esc_html__( 'Quotation Mark Color', 'essential-addons-elementor' ),
410
+ 'type' => Controls_Manager::COLOR,
411
+ 'default' => 'rgba(0,0,0,0.15)',
412
+ 'selectors' => [
413
+ '{{WRAPPER}} .eael-testimonial-quote' => 'color: {{VALUE}};',
414
+ ],
415
+ ]
416
+ );
417
+
418
+ $this->add_group_control(
419
+ Group_Control_Typography::get_type(),
420
+ [
421
+ 'name' => 'eael_testimonial_quotation_typography',
422
+ 'selector' => '{{WRAPPER}} .eael-testimonial-quote',
423
+ ]
424
+ );
425
+
426
+
427
+ $this->end_controls_section();
428
+
429
+
430
+ }
431
+
432
+
433
+ protected function render( ) {
434
+
435
+ $settings = $this->get_settings();
436
+ $testimonial_image = $this->get_settings( 'eael_testimonial_image' );
437
+ $testimonial_image_url = Group_Control_Image_Size::get_attachment_image_src( $testimonial_image['id'], 'thumbnail', $settings );
438
+ $testimonial_classes = $this->get_settings('eael_testimonial_image_rounded') . " " . $this->get_settings('eael_testimonial_alignment');
439
+
440
+
441
+ ?>
442
+
443
+
444
+ <div id="eael-testimonial-<?php echo esc_attr($this->get_id()); ?>" class="eael-testimonial-item clearfix <?php echo $testimonial_classes; ?>">
445
+
446
+ <div class="eael-testimonial-image">
447
+ <span class="eael-testimonial-quote"></span>
448
+ <figure>
449
+ <img src="<?php echo esc_url($testimonial_image_url);?>" alt="<?php echo $settings['eael_testimonial_name'];?>">
450
+ </figure>
451
+ </div>
452
+
453
+ <div class="eael-testimonial-content">
454
+ <span class="eael-testimonial-quote"></span>
455
+ <p class="eael-testimonial-text"><?php echo $settings['eael_testimonial_description']; ?></p>
456
+ <p class="eael-testimonial-user" <?php if ( ! empty( $settings['eael_testimonial_user_display_block'] ) ) : ?> style="display: block; float: none;"<?php endif;?>><?php echo $settings['eael_testimonial_name']; ?></p>
457
+ <p class="eael-testimonial-user-company"><?php echo $settings['eael_testimonial_company_title']; ?></p>
458
+ </div>
459
+ </div>
460
+
461
+
462
+ <?php
463
+
464
+ }
465
+
466
+ protected function content_template() {
467
+
468
+ ?>
469
+
470
+
471
+ <?php
472
+ }
473
+ }
474
+
475
+
476
+ Plugin::instance()->widgets_manager->register_widget_type( new Widget_Eael_Testimonial() );
essential_adons_elementor.php ADDED
@@ -0,0 +1,49 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Plugin Name: Essential Addons for Elementor Lite
4
+ * Description: Elements bundle for Elementor page builder plugin for WordPress. <a href="https://essential-addons.com/elementor/buy.php">Get Premium version</a>
5
+ * Plugin URI: https://essential-addons.com/elementor/
6
+ * Author: Codetic
7
+ * Version: 1.0.0
8
+ * Author URI: http://www.codetic.net
9
+ *
10
+ * Text Domain: essential-addons-elementor
11
+ */
12
+
13
+ if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
14
+
15
+ define( 'ESSENTIAL_ADDONS_EL_URL', plugins_url( '/', __FILE__ ) );
16
+ define( 'ESSENTIAL_ADDONS_EL_PATH', plugin_dir_path( __FILE__ ) );
17
+
18
+
19
+ require_once ESSENTIAL_ADDONS_EL_PATH.'includes/elementor-helper.php';
20
+ require_once ESSENTIAL_ADDONS_EL_PATH.'includes/queries.php';
21
+
22
+ function add_eael_elements(){
23
+
24
+ // load elements
25
+ require_once ESSENTIAL_ADDONS_EL_PATH.'elements/post-timeline/post-timeline.php';
26
+ require_once ESSENTIAL_ADDONS_EL_PATH.'elements/fancy-text/fancy-text.php';
27
+ require_once ESSENTIAL_ADDONS_EL_PATH.'elements/creative-button/creative-button.php';
28
+ require_once ESSENTIAL_ADDONS_EL_PATH.'elements/countdown/countdown.php';
29
+ require_once ESSENTIAL_ADDONS_EL_PATH.'elements/team-members/team-members.php';
30
+ require_once ESSENTIAL_ADDONS_EL_PATH.'elements/testimonials/testimonials.php';
31
+
32
+ if ( function_exists( 'WC' ) ) {
33
+ require_once ESSENTIAL_ADDONS_EL_PATH.'elements/product-grid/product-grid.php';
34
+ }
35
+
36
+ if ( function_exists( 'wpcf7' ) ) {
37
+ require_once ESSENTIAL_ADDONS_EL_PATH.'elements/contact-form-7/contact-form-7.php';
38
+ }
39
+ }
40
+ add_action('elementor/widgets/widgets_registered','add_eael_elements');
41
+
42
+
43
+ function essential_addons_el_enqueue(){
44
+ wp_enqueue_style('essential_addons_elementor-css',ESSENTIAL_ADDONS_EL_URL.'assets/css/essential-addons-elementor.css');
45
+ wp_enqueue_script('essential_addons_elementor-fancy-text-js',ESSENTIAL_ADDONS_EL_URL.'assets/js/fancy-text.js', array('jquery'),'1.0', true);
46
+ wp_enqueue_script('essential_addons_elementor-countdown-js',ESSENTIAL_ADDONS_EL_URL.'assets/js/countdown.min.js', array('jquery'),'1.0', true);
47
+ }
48
+ add_action( 'wp_enqueue_scripts', 'essential_addons_el_enqueue' );
49
+
includes/elementor-helper.php ADDED
@@ -0,0 +1,17 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace Elementor;
3
+
4
+ function eael_elementor_init(){
5
+ Plugin::instance()->elements_manager->add_category(
6
+ 'essential-addons-elementor',
7
+ [
8
+ 'title' => 'Essential Addons for Elementor',
9
+ 'icon' => 'font'
10
+ ],
11
+ 1
12
+ );
13
+ }
14
+ add_action('elementor/init','Elementor\eael_elementor_init');
15
+
16
+
17
+
includes/queries.php ADDED
@@ -0,0 +1,191 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+
4
+ function eael_get_post_data($args){
5
+ $defaults = array(
6
+ 'posts_per_page' => 5,
7
+ 'offset' => 0,
8
+ 'category' => '',
9
+ 'category_name' => '',
10
+ 'orderby' => 'date',
11
+ 'order' => 'DESC',
12
+ 'include' => '',
13
+ 'exclude' => '',
14
+ 'meta_key' => '',
15
+ 'meta_value' => '',
16
+ 'post_type' => 'post',
17
+ 'post_mime_type' => '',
18
+ 'post_parent' => '',
19
+ 'author' => '',
20
+ 'author_name' => '',
21
+ 'post_status' => 'publish',
22
+ 'suppress_filters' => true
23
+ );
24
+
25
+ $atts = wp_parse_args($args,$defaults);
26
+
27
+ $posts = get_posts($atts);
28
+
29
+ return $posts;
30
+ }
31
+
32
+
33
+ function eael_get_post_types(){
34
+
35
+ $eael_cpts = get_post_types( array( 'public' => true, 'show_in_nav_menus' => true ) );
36
+ $eael_exclude_cpts = array( 'elementor_library', 'attachment', 'product' );
37
+
38
+ foreach ( $eael_exclude_cpts as $exclude_cpt ) {
39
+ unset($eael_cpts[$exclude_cpt]);
40
+ }
41
+
42
+ $post_types = array_merge($eael_cpts);
43
+ return $post_types;
44
+ }
45
+
46
+
47
+ function eael_get_post_settings($settings){
48
+ $post_args['post_type'] = $settings['eael_post_type'];
49
+
50
+ if($settings['eael_post_type'] == 'post'){
51
+ $post_args['category'] = $settings['category'];
52
+ }
53
+
54
+ $post_args['posts_per_page'] = $settings['eael_posts_count'];
55
+ $post_args['offset'] = $settings['eael_post_offset'];
56
+ $post_args['orderby'] = $settings['eael_post_orderby'];
57
+ $post_args['order'] = $settings['eael_post_order'];
58
+
59
+ return $post_args;
60
+ }
61
+
62
+ function eael_get_excerpt_by_id($post_id,$excerpt_length){
63
+ $the_post = get_post($post_id); //Gets post ID
64
+
65
+ $the_excerpt = null;
66
+ if ($the_post)
67
+ {
68
+ $the_excerpt = $the_post->post_excerpt ? $the_post->post_excerpt : $the_post->post_content;
69
+ }
70
+
71
+ $the_excerpt = strip_tags(strip_shortcodes($the_excerpt)); //Strips tags and images
72
+ $words = explode(' ', $the_excerpt, $excerpt_length + 1);
73
+
74
+ if(count($words) > $excerpt_length) :
75
+ array_pop($words);
76
+ array_push($words, '…');
77
+ $the_excerpt = implode(' ', $words);
78
+ endif;
79
+
80
+ return $the_excerpt;
81
+ }
82
+
83
+ function eael_get_thumbnail_sizes(){
84
+ $sizes = get_intermediate_image_sizes();
85
+ foreach($sizes as $s){
86
+ $ret[$s] = $s;
87
+ }
88
+
89
+ return $ret;
90
+ }
91
+
92
+ function eael_get_post_orderby_options(){
93
+ $orderby = array(
94
+ 'ID' => 'Post ID',
95
+ 'author' => 'Post Author',
96
+ 'title' => 'Title',
97
+ 'date' => 'Date',
98
+ 'modified' => 'Last Modified Date',
99
+ 'parent' => 'Parent Id',
100
+ 'rand' => 'Random',
101
+ 'comment_count' => 'Comment Count',
102
+ 'menu_order' => 'Menu Order',
103
+ );
104
+
105
+ return $orderby;
106
+ }
107
+
108
+ function eael_post_type_categories(){
109
+ $terms = get_terms( array(
110
+ 'taxonomy' => 'category',
111
+ 'hide_empty' => true,
112
+ ));
113
+
114
+ if ( ! empty( $terms ) && ! is_wp_error( $terms ) ){
115
+ foreach ( $terms as $term ) {
116
+ $options[ $term->term_id ] = $term->name;
117
+ }
118
+ }
119
+
120
+ return $options;
121
+ }
122
+
123
+
124
+ //Product Queries
125
+
126
+ function eael_woocommerce_product_categories(){
127
+ $terms = get_terms( array(
128
+ 'taxonomy' => 'product_cat',
129
+ 'hide_empty' => true,
130
+ ));
131
+
132
+ if ( ! empty( $terms ) && ! is_wp_error( $terms ) ){
133
+ foreach ( $terms as $term ) {
134
+ $options[ $term->slug ] = $term->name;
135
+ }
136
+ return $options;
137
+ }
138
+
139
+
140
+ }
141
+
142
+ function eael_woocommerce_product_get_product_by_id(){
143
+ $postlist = get_posts(array(
144
+ 'post_type' => 'product',
145
+ 'showposts' => 9999,
146
+ ));
147
+ $posts = array();
148
+
149
+ if ( ! empty( $postlist ) && ! is_wp_error( $postlist ) ){
150
+ foreach ( $postlist as $post ) {
151
+ $options[ $post->ID ] = $post->post_title;
152
+ }
153
+ return $options;
154
+
155
+ }
156
+ }
157
+
158
+ function eael_woocommerce_product_categories_by_id(){
159
+ $terms = get_terms( array(
160
+ 'taxonomy' => 'product_cat',
161
+ 'hide_empty' => true,
162
+ ));
163
+
164
+ if ( ! empty( $terms ) && ! is_wp_error( $terms ) ){
165
+ foreach ( $terms as $term ) {
166
+ $options[ $term->term_id ] = $term->name;
167
+ }
168
+ return $options;
169
+ }
170
+
171
+ }
172
+
173
+ // Get Contact Form 7 forms
174
+
175
+ if ( function_exists( 'wpcf7' ) ) {
176
+ function eael_select_contact_form(){
177
+ $wpcf7_form_list = get_posts(array(
178
+ 'post_type' => 'wpcf7_contact_form',
179
+ 'showposts' => 999,
180
+ ));
181
+ $posts = array();
182
+
183
+ if ( ! empty( $wpcf7_form_list ) && ! is_wp_error( $wpcf7_form_list ) ){
184
+ foreach ( $wpcf7_form_list as $post ) {
185
+ $options[ $post->ID ] = $post->post_title;
186
+ }
187
+ return $options;
188
+ }
189
+ }
190
+ }
191
+
readme.txt ADDED
@@ -0,0 +1,83 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ === Essential Addons for Elementor Lite ===
2
+ Contributors: Codetic
3
+ Tags: elementor, elements, widgets, page builder, builder, visual editor, wordpress page builder
4
+ Requires at least: 4.0
5
+ Tested up to: 4.8
6
+ Stable tag: 1.0.0
7
+ License: GPLv3
8
+ License URI: https://opensource.org/licenses/GPL-3.0
9
+
10
+ Essential bundle of elements for Elementor Page Builder.
11
+
12
+ == Description ==
13
+
14
+ Bundle of elements for Elementor Page Builder. Lots of useful and premium elements to complete your website quickly.
15
+
16
+
17
+ <a href="https://codetic.net/essential-addons-elementor/" rel="nofollow">Check the demos</a>
18
+
19
+
20
+ ### Features
21
+
22
+ * 8+ Stunning Elements
23
+ * Fully Customizable
24
+ * Unlimited Design Options
25
+ * Lightweight and Fast
26
+
27
+
28
+ ### Available Elements
29
+
30
+ * Post Timeline
31
+ * Fancy Text
32
+ * Creative Buttons
33
+ * Countdown
34
+ * Testimonials
35
+ * Team Members
36
+ * WooCommerce Product Grid
37
+ * Contact Form 7
38
+
39
+ ### More elements on <a href="https://essential-addons.com/elementor/buy.php">Premium Version</a>
40
+
41
+ * Lightbox & Modal
42
+ * Instagram Feed/Gallery
43
+ * Testimonial Slider
44
+ * Image Comparison
45
+ * Interactive Promo
46
+
47
+
48
+ == Installation ==
49
+
50
+ Note : This plugin works with Elementor. Make sure you have <a href="https://wordpress.org/plugins/elementor/" rel="nofollow">Elementor</a> installed.
51
+
52
+
53
+ 1. Upload the plugin folder to the `/wp-content/plugins/` directory, or install the plugin through the WordPress plugins screen directly.
54
+ 2. Activate the plugin through the 'Plugins' screen in WordPress
55
+ 3. You can type "EA" on your element tabs within Elementor editor and all the avialable elements will appear.
56
+ 4. Also you can see them under the category "Essential Addons for Elementor" on your element/widget list.
57
+
58
+ == Frequently Asked Questions ==
59
+
60
+ = Can I use the plugin without Elementor Page Builder? =
61
+
62
+ No. You cannot use without Elementor since it's an addon for Elementor.
63
+
64
+ = Does it work with any theme? =
65
+
66
+ Absolutely! It will work with any theme where Elementor works.
67
+
68
+ = What if I update to Premium version? =
69
+
70
+ Your existing elements/content will work with premium version. So you won't lose your developed contents.
71
+
72
+ == Screenshots ==
73
+
74
+
75
+
76
+ == Changelog ==
77
+
78
+ = 1.0.0 =
79
+
80
+ Initial stable realese
81
+
82
+
83
+ == Upgrade Notice ==