Elementor Addon Elements - Version 1.7.2

Version Description

  • Enhancement : Added Support for RTL
  • Fixed : Shape Separator missing shapes added
  • Fixed : Link Custom Attribute bug
  • Fixed : Animated Text Overflow bug
  • Tweak : Custom Offset option added in Timeline widget
  • Tweak : Added option to trigger on mouseover in Info Cirlce widget
Download this release

Release Info

Developer wpvibes
Plugin Icon 128x128 Elementor Addon Elements
Version 1.7.2
Comparing to
See all releases

Code changes from version 1.7.1 to 1.7.2

Files changed (63) hide show
  1. assets/css/eae.css +4260 -3292
  2. assets/css/eae.min.css +1 -1
  3. assets/js/eae.js +29 -14
  4. assets/js/eae.min.js +1 -1
  5. elementor-addon-elements.php +25 -21
  6. freemius/README.md +72 -43
  7. freemius/assets/css/admin/account.css +1 -1
  8. freemius/assets/css/admin/add-ons.css +1 -1
  9. freemius/assets/css/admin/common.css +2 -2
  10. freemius/assets/css/admin/connect.css +1 -1
  11. freemius/assets/css/admin/debug.css +1 -1
  12. freemius/assets/css/admin/dialog-boxes.css +1 -1
  13. freemius/assets/css/admin/plugins.css +1 -0
  14. freemius/assets/css/customizer.css +1 -1
  15. freemius/config.php +4 -1
  16. freemius/includes/class-freemius.php +2418 -375
  17. freemius/includes/class-fs-api.php +1 -1
  18. freemius/includes/class-fs-plugin-updater.php +81 -8
  19. freemius/includes/class-fs-storage.php +46 -40
  20. freemius/includes/customizer/class-fs-customizer-support-section.php +2 -2
  21. freemius/includes/customizer/class-fs-customizer-upsell-control.php +5 -1
  22. freemius/includes/entities/class-fs-entity.php +10 -0
  23. freemius/includes/entities/class-fs-payment.php +2 -2
  24. freemius/includes/entities/class-fs-plugin-license.php +40 -0
  25. freemius/includes/entities/class-fs-plugin.php +5 -0
  26. freemius/includes/entities/class-fs-pricing.php +16 -0
  27. freemius/includes/entities/class-fs-site.php +7 -4
  28. freemius/includes/entities/class-fs-subscription.php +136 -114
  29. freemius/includes/fs-core-functions.php +282 -217
  30. freemius/includes/fs-essential-functions.php +42 -21
  31. freemius/includes/fs-plugin-info-dialog.php +62 -28
  32. freemius/includes/i18n.php +2 -0
  33. freemius/includes/managers/class-fs-admin-menu-manager.php +59 -33
  34. freemius/includes/managers/class-fs-cache-manager.php +1 -1
  35. freemius/includes/managers/class-fs-option-manager.php +35 -11
  36. freemius/includes/managers/class-fs-plugin-manager.php +3 -3
  37. freemius/includes/sdk/FreemiusBase.php +1 -1
  38. freemius/includes/sdk/FreemiusWordPress.php +20 -12
  39. freemius/includes/supplements/fs-essential-functions-1.1.7.1.php +1 -1
  40. freemius/languages/freemius-cs_CZ.mo +0 -0
  41. freemius/languages/freemius-da_DK.mo +0 -0
  42. freemius/languages/freemius-en.mo +0 -0
  43. freemius/languages/freemius-es_ES.mo +0 -0
  44. freemius/languages/freemius-fr_FR.mo +0 -0
  45. freemius/languages/freemius-he_IL.mo +0 -0
  46. freemius/languages/freemius-hu_HU.mo +0 -0
  47. freemius/languages/freemius-it_IT.mo +0 -0
  48. freemius/languages/freemius-ja.mo +0 -0
  49. freemius/languages/freemius-nl_NL.mo +0 -0
  50. freemius/languages/freemius-ru_RU.mo +0 -0
  51. freemius/languages/freemius-ta.mo +0 -0
  52. freemius/languages/freemius-zh_CN.mo +0 -0
  53. freemius/languages/freemius.pot +630 -489
  54. freemius/package.json +1 -1
  55. freemius/start.php +9 -1
  56. freemius/templates/account.php +308 -144
  57. freemius/templates/account/partials/addon.php +125 -86
  58. freemius/templates/account/partials/site.php +45 -29
  59. freemius/templates/account/payments.php +1 -1
  60. freemius/templates/add-ons.php +67 -6
  61. freemius/templates/auto-installation.php +1 -1
  62. freemius/templates/connect.php +85 -30
  63. freemius/templates/debug.php +49 -27
assets/css/eae.css CHANGED
@@ -1,376 +1,530 @@
1
- .elementor-widget-wts-textseparator .elementor-widget-container{
2
- overflow:hidden;
3
  }
4
- .wts-eae-textseparator{
5
- align-items: center;
6
- display: flex;
7
- flex-flow: row nowrap; margin:auto;
 
 
 
 
8
  }
9
 
10
  .eae-separator-icon-inner i {
11
- height: 1em;
12
- width: 1em; text-align:center;
13
- position: relative;
14
- display: block;
 
15
  }
16
 
17
- .eae-separator-icon-inner i:before{
18
- position: absolute;
19
- left : 50%;
20
- -webkit-transform: translateX(-50%);
21
- -moz-transform: translateX(-50%);
22
- -ms-transform: translateX(-50%);
23
- -o-transform: translateX(-50%);
24
- transform: translateX(-50%);
25
  }
26
  .wts-eae-textseparator .eae-sep-holder {
27
- flex: 1 1 auto;
28
- height: 1px;
29
- min-width: 10%;
30
- position: relative;
31
  }
32
 
33
- .wts-eae-textseparator .eae-sep-holder .eae-sep-lines{
34
- border-top-width: 1px;
35
- display: block;
36
- height: 1px;
37
- position: relative;
38
- top: 1px;
39
- width: 100%;
40
  }
41
 
42
- .eae-separator-title{
43
- margin:0;
44
- -moz-box-flex: 0;
45
- flex: 0 1 auto;
46
- line-height: 1em;
47
- margin: 0;
48
- overflow-wrap: break-word;
49
  }
50
 
51
- .sep-align-right .sep-right{
52
- display: none;
53
  }
54
 
55
- .sep-align-left .sep-left{
56
- display: none;
57
  }
58
 
59
- .eae-icon-view-stacked i{ color:#FFF; }
60
- .eae-icon-view-framed .eae-separator-icon-inner{ border:1px solid; }
61
- .eae-icon-shape-circle .eae-separator-icon-inner{ border-radius:50%; }
62
- .eae-separator-icon-wrapper, .eae-separator-title{ margin:0 5px !important; }
63
- .eae-separator-icon-inner{ line-height: 1; }
64
-
 
 
 
 
 
 
 
 
 
 
65
 
66
  /**
67
  Price Table Css
68
  **/
69
- .wts-price-box-wrapper .eae-pt-heading, .wts-price-box-wrapper .eae-pt-sub-heading{ margin:5px 0; text-align: center; }
 
 
 
 
70
  .plan-price-shape {
71
- display: table;
72
- height: 6em;
73
- margin: auto;
74
- width: 6em;
75
  }
76
 
77
- .eae-pt-price-box-shape-circle .plan-price-shape, .eae-pt-price-box-shape-square .plan-price-shape{ border: 1px solid; }
78
- .eae-pt-price-box-shape-circle .plan-price-shape{ border-radius:50%; }
79
- .plan-price-block{ padding:10px 0; }
 
 
 
 
 
 
 
80
  .plan-price-shape-inner {
81
- display: table-cell;
82
- vertical-align: middle; padding: 10px;
 
83
  }
84
  .plan-price-shape-inner > span {
85
- display: block;
86
- font-size: 1em; text-align:center;
 
87
  }
88
 
89
  .eae-pt-feature-list {
90
- list-style: outside none none;
91
- text-align: center; margin:10px 0;
 
 
 
 
 
 
 
 
 
92
  }
93
- .eae-pt-button-wrapper > a{ text-align:center; display:inline-block; line-height: 1}
94
- .eae-pt-button-wrapper{ text-align: center;}
95
 
96
- .wts-price-box-wrapper .heading-wrapper, .wts-price-box-wrapper .plan-features-wrapper{ padding:10px 5px;}
97
- .eae-pt-button-wrapper{ padding:15px 0; }
98
- .eae-pt-button-wrapper a{ padding:5px 15px; border-radius:3px; }
99
- .eae-pt-align-icon-right{ float:right; }
100
- .strike-feature{ text-decoration: line-through; }
 
 
 
 
 
 
 
 
 
 
 
 
101
 
102
  /**
103
  Flip Box CSS
104
  **/
105
- .eae-flip-box{
106
- width: 100%;
107
- text-align: center;
108
- }
109
- .eae-flip-box-wrapper{
110
- display: inline-block;
111
- width: 100%;
112
- }
113
- .eae-flip-box-inner{ width:100%; height:200px; position:relative;
114
- -webkit-transform-style: preserve-3d;
115
- -moz-transform-style: preserve-3d;
116
- -ms-transform-style: preserve-3d;
117
- transform-style: preserve-3d;
118
  }
119
-
120
- .eae-flip-box-inner .eae-flip-box-front, .eae-flip-box-inner .eae-flip-box-back{
121
- width:100%; height:100%; position: absolute; top:0; left:0; text-align:center; padding: 10px;
122
- -webkit-backface-visibility: hidden;
123
- -moz-backface-visibility: hidden;
124
- -ms-backface-visibility: hidden;
125
- backface-visibility: hidden;
126
-
127
- -webkit-transition: all 0.6s ease 0s;
128
- -moz-transition: all 0.6s ease 0s;
129
- -ms-transition: all 0.6s ease 0s;
130
- -o-transition: all 0.6s ease 0s;
131
- transition: all 0.6s ease 0s;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
132
  }
133
  .eae-flip-box-front {
134
- z-index: 2;
135
  }
136
  .eae-flip-box-back {
137
- z-index: 1;
138
  }
139
 
140
- .eae-fb-animate-vertical .eae-flip-box-inner .eae-flip-box-front{ -webkit-transform:perspective(1000px) rotateX(0deg); -ms-transform:perspective(1000px) rotateX(0deg); transform:perspective(1000px) rotateX(0deg); }
141
- .eae-fb-animate-vertical .eae-flip-box-inner .eae-flip-box-back{ -webkit-transform:perspective(1000px) rotateX(180deg); transform:perspective(1000px) rotateX(180deg); -ms-transform:perspective(1000px) rotateX(180deg); }
142
- .eae-fb-animate-vertical .eae-flip-box-inner:hover .eae-flip-box-front{ -webkit-transform:perspective(1000px) rotateX(180deg); transform:perspective(1000px) rotateX(180deg); -ms-transform:perspective(1000px) rotateX(180deg); }
143
- .eae-fb-animate-vertical .eae-flip-box-inner:hover .eae-flip-box-back{ -webkit-transform:perspective(1000px) rotateX(0deg); transform:perspective(1000px) rotateX(0deg); -ms-transform:perspective(1000px) rotateX(0deg); }
144
-
145
-
146
- .eae-fb-animate-horizontal .eae-flip-box-inner .eae-flip-box-front{ -webkit-transform:perspective(1000px) rotateY(0deg); transform:perspective(1000px) rotateY(0deg); -ms-transform:perspective(1000px) rotateY(0deg); }
147
- .eae-fb-animate-horizontal .eae-flip-box-inner .eae-flip-box-back{ -webkit-transform:perspective(1000px) rotateY(180deg); transform:perspective(1000px) rotateY(180deg); -ms-transform:perspective(1000px) rotateY(180deg); }
148
- .eae-fb-animate-horizontal .eae-flip-box-inner:hover .eae-flip-box-front{ -webkit-transform:perspective(1000px) rotateY(180deg); transform:perspective(1000px) rotateY(180deg); -ms-transform:perspective(1000px) rotateY(180deg); }
149
- .eae-fb-animate-horizontal .eae-flip-box-inner:hover .eae-flip-box-back{ -webkit-transform:perspective(1000px) rotateY(0deg); transform:perspective(1000px) rotateY(0deg); -ms-transform:perspective(1000px) rotateY(0deg); }
 
 
 
 
 
 
 
 
 
 
150
 
151
- .eae-fb-animate-fade .eae-flip-box-inner .eae-flip-box-front{opacity:1;}
152
- .eae-fb-animate-fade .eae-flip-box-inner .eae-flip-box-back{opacity:0;}
153
- .eae-fb-animate-fade .eae-flip-box-inner:hover .eae-flip-box-front{opacity:0;}
154
- .eae-fb-animate-fade .eae-flip-box-inner:hover .eae-flip-box-back{opacity:1;}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
155
 
 
 
 
 
 
 
 
 
 
 
 
 
156
 
157
  .eae-flip-box-wrapper:hover .eae-flip-box-back,
158
  .eae-flip-box-wrapper:focus .eae-flip-box-back {
159
- z-index: 2;
160
  }
161
  .eae-flip-box-wrapper:hover .eae-flip-box-front,
162
  .eae-flip-box-wrapper:focus .eae-flip-box-front {
163
- z-index: 1;
164
  }
165
  .fade .eae-flip-box-wrapper .eae-flip-box-front {
166
- opacity: 1;
167
- transition: 1s;
168
  }
169
  .fade .eae-flip-box-wrapper .eae-flip-box-back {
170
- opacity: 0;
171
- transition: 1s;
172
  }
173
  .fade .eae-flip-box-wrapper:hover .eae-flip-box-front,
174
  .fade .eae-flip-box-wrapper:focus .eae-flip-box-front {
175
- opacity: 0;
176
  }
177
  .fade .eae-flip-box-wrapper:hover .eae-flip-box-back,
178
  .fade .eae-flip-box-wrapper:focus .eae-flip-box-back {
179
- opacity: 1;
180
  }
181
 
182
  .eae-fb-animate-flip .eae-flip-box-wrapper {
183
- perspective: 800px;
184
  }
185
- .eae-fb-animate-flip .eae-flip-box-inner{
186
- transform-style: preserve-3d;
187
- transform: rotateX(0) rotateY(0) rotateZ(0);
188
- transition: 1s;
189
  }
190
  .eae-fb-animate-flip .eae-flip-box-front {
191
- transform: translate3d(0,0,1px);
192
  }
193
  .eae-fb-animate-flip .eae-flip-box-back {
194
- transform: rotateY(180deg) translate3d(0,0,0);
195
  }
196
  .eae-fb-animate-flip .eae-flip-box-wrapper:hover .eae-flip-box-inner,
197
- .eae-fb-animate-flip .eae-flip-box-wrapper:focus .eae-flip-box-inner{
198
- transform: rotateY(180deg);
199
  }
200
  .up .eae-flip-box-front {
201
- transform: translate3d(0,0,1px);
202
  }
203
  .up .eae-flip-box-back {
204
- transform: rotateX(180deg) translate3d(0,0,0);
205
  }
206
  .up .eae-flip-box-wrapper:hover .eae-flip-box-inner,
207
- .up .eae-flip-box-wrapper:focus .eae-flip-box-inner{
208
- transform: rotateX(180deg);
209
  }
210
 
211
  .box .eae-flip-box-front {
212
- transform: translate3d(0,0,100px) scale(0.85,0.85);
213
  }
214
  .box .eae-flip-box-back {
215
- transform: rotateY(180deg) translate3d(0,0,100px) scale(0.85,0.85);
216
  }
217
  .box.up .eae-flip-box-back {
218
- transform: rotateX(180deg) translate3d(0,0,100px) scale(0.85,0.85);
219
  }
220
 
221
- .hideback .eae-flip-box-front, .hideback .eae-flip-box-back {
222
- backface-visibility: hidden;
 
223
  }
224
  .eae-fb-animate-nananana .eae-flip-box-wrapper {
225
-
226
-
227
  }
228
  .eae-fb-animate-nananana .eae-flip-box-wrapper:hover .eae-flip-box-front,
229
  .eae-fb-animate-nananana .eae-flip-box-wrapper:focus .eae-flip-box-front {
230
- z-index: 10;
231
- animation: batman 1s 2 alternate linear;
232
  }
233
 
234
-
235
  /* Cube Animation */
236
 
237
- .eae-fb-animate-flipcard .eae-flip-box-front, .eae-fb-animate-flipcard .eae-flip-box-back{
238
- transition: transform 0.4s ease;
239
- transform-origin: center center -150px;
240
- -webkit-transform-origin: center center -150px;
 
241
  }
242
 
243
  /* top to down */
244
 
245
  .flipcard-rotate-top-down .eae-flip-box-front {
246
- transform: perspective(0px) rotateX(0deg) rotateY(0deg) rotateZ(0deg);
247
  }
248
  .flipcard-rotate-top-down .eae-flip-box-back {
249
- transform: perspective(0px) rotateX(90deg) rotateY(0deg) rotateZ(0deg);
250
  }
251
- .eae-fb-animate-flipcard.flipcard-rotate-top-down .eae-flip-box-wrapper:hover .eae-flip-box-front {
252
- transform: perspective(0px) rotateX(-90deg) rotateY(0) rotateZ(0deg);
 
 
253
  }
254
- .eae-fb-animate-flipcard.flipcard-rotate-top-down .eae-flip-box-wrapper:hover .eae-flip-box-back {
255
- z-index: 99999;
256
- transform: perspective(0px) rotateX(0deg) rotateY(0deg) rotateZ(0);
 
 
257
  }
258
 
259
-
260
  /* down to top */
261
  .flipcard-rotate-down-top .eae-flip-box-front {
262
- transform: perspective(0px) rotateX(0deg) rotateY(0deg) rotateZ(0deg);
263
  }
264
  .flipcard-rotate-down-top .eae-flip-box-back {
265
- transform: perspective(0px) rotateX(-90deg) rotateY(0deg) rotateZ(0deg);
266
  }
267
- .eae-fb-animate-flipcard.flipcard-rotate-down-top .eae-flip-box-wrapper:hover .eae-flip-box-front {
268
- transform: perspective(0px) rotateX(90deg) rotateY(0) rotateZ(0deg);
 
 
269
  }
270
- .eae-fb-animate-flipcard.flipcard-rotate-down-top .eae-flip-box-wrapper:hover .eae-flip-box-back {
271
- z-index: 99999;
272
- transform: perspective(0px) rotateX(0deg) rotateY(0deg) rotateZ(0deg);
 
 
273
  }
274
 
275
  /* left to right */
276
 
277
  .flipcard-rotate-left-right .eae-flip-box-front {
278
- transform: perspective(0px) rotateX(0deg) rotateY(0deg) rotateZ(0deg);
279
  }
280
  .flipcard-rotate-left-right .eae-flip-box-back {
281
- transform: perspective(0px) rotateX(0deg) rotateY(-90deg) rotateZ(0deg);
282
  }
283
- .eae-fb-animate-flipcard.flipcard-rotate-left-right .eae-flip-box-wrapper:hover .eae-flip-box-front {
284
- transform: perspective(0px) rotateX(0deg) rotateY(90deg) rotateZ(0deg);
 
 
285
  }
286
- .eae-fb-animate-flipcard.flipcard-rotate-left-right .eae-flip-box-wrapper:hover .eae-flip-box-back {
287
- z-index: 99999;
288
- transform: perspective(0px) rotateX(0deg) rotateY(0deg) rotateZ(0deg);
 
 
289
  }
290
 
291
  /* right to left */
292
 
293
  .flipcard-rotate-right-left .eae-flip-box-front {
294
- transform: perspective(0px) rotateX(0deg) rotateY(0deg) rotateZ(0deg);
295
  }
296
  .flipcard-rotate-right-left .eae-flip-box-back {
297
- transform: perspective(0px) rotateX(0deg) rotateY(90deg) rotateZ(0deg);
298
  }
299
- .eae-fb-animate-flipcard.flipcard-rotate-right-left .eae-flip-box-wrapper:hover .eae-flip-box-front {
300
- transform: perspective(0px) rotateX(0deg) rotateY(-90deg) rotateZ(0deg);
 
 
301
  }
302
- .eae-fb-animate-flipcard.flipcard-rotate-right-left .eae-flip-box-wrapper:hover .eae-flip-box-back {
303
- z-index: 99999;
304
- transform: perspective(0px) rotateX(0deg) rotateY(0deg) rotateZ(0deg);
 
 
305
  }
306
 
307
  @keyframes batman {
308
- 0% { transform: scale(1,1) rotateZ(0); }
309
- 100% {
310
- transform: scale(0,0) rotateZ(720deg);
311
- opacity: 0;
312
- }
 
 
313
  }
314
 
 
 
 
 
 
 
 
 
315
 
316
- .eae-flip-box-front i, .eae-flip-box-back i{ font-size:32px; height:1em; width:1em;
317
- position: relative;
318
- display: block; }
319
-
320
- .eae-flip-box-front i:before, .eae-flip-box-back i:before{
321
- position: absolute;
322
- left: 50%;
323
- -webkit-transform: translate(-50%);
324
- -moz-transform: translate(-50%);
325
- -ms-transform: translate(-50%);
326
- -o-transform: translate(-50%);
327
- transform: translate(-50%);
 
 
 
 
 
 
 
 
328
  }
329
- .eae-fb-icon-view-framed{ border:1px solid #92BE43; }
330
- .eae-fb-icon-shape-circle{ border-radius:50%; }
331
- .eae-flip-box-wrapper .icon-wrapper{ display:inline-block; padding:10px; line-height: 1; }
332
 
333
- .eae-flip-box-wrapper .front-icon-title, .eae-flip-box-wrapper .back-icon-title{ margin:10px auto; color:#FFF; }
 
 
 
 
334
 
335
- .eae-flip-box-wrapper .flipbox-content { display: block; position: relative; top: 50%; transform: translateY(-50%); -ms-transform: translateY(-50%) }
336
- .flipbox-content p{ margin-bottom: 10px; }
337
- .eae-fb-button{ display:inline-block; padding: 5px 10px; }
 
 
 
 
 
 
 
 
 
 
 
338
 
339
- .eae-flip-box-front{ background:#A0CE4E; }
340
- .eae-flip-box-back{ background:#73B9DC; }
 
 
 
 
341
 
342
  @media only screen and (max-width: 768px) {
343
-
344
- .flipbox-content, .eae-flip-box-front, .eae-flip-box-back{
345
- cursor:pointer;
346
- overflow: visible !important;
347
- transform-style: preserve-3d;
348
- -webkit-transform-style: preserve-3d;
349
- }
 
350
  }
351
  /**
352
  Shape Separator
353
  **/
354
- .elementor-widget-wts-shape-separator svg{ display: block; }
 
 
355
 
356
  /**
357
  Post List
358
  **/
359
- .wts-eae-pl-wrapper ul{
360
- margin:0;
 
 
 
 
 
 
 
 
 
 
 
361
  }
362
- .wts-eae-pl-wrapper ul li{
363
- list-style: none;
364
- overflow: hidden; margin-bottom:10px;
365
  }
366
- .eae-pl-img-align-none .eae-pl-image-wrapper a{ text-align: center; }
367
- .eae-pl-title{ margin:0; }
368
- .eae-pl-title a{ display:block; }
369
 
370
- .eae-pl-readmore a{ display:inline-block;
371
- border-radius: 2px;
372
- color: #fff;
373
- padding: 4px 8px;
 
374
  }
375
 
376
  /**
@@ -381,140 +535,159 @@ Primary style
381
  -------------------------------- */
382
 
383
  .eae-at-animation-text-wrapper {
384
- display: inline-block;
385
- position: relative;
386
- text-align: left;
387
  }
 
388
  .eae-at-animation-text-wrapper .eae-at-animation-text {
389
- display: inline-block;
390
- position: absolute;
391
- white-space: nowrap;
392
- left: 0;
393
- top: 0;
 
 
 
394
  }
 
395
  .eae-at-animation-text-wrapper .eae-at-animation-text.is-visible {
396
- position: relative;
397
  }
398
  .no-js .eae-at-animation-text-wrapper .eae-at-animation-text {
399
- opacity: 0;
400
  }
401
  .no-js .eae-at-animation-text-wrapper .eae-at-animation-text.is-visible {
402
- opacity: 1;
403
  }
404
 
405
- .eae-animtext-wrapper{ font-size:40px; }
406
-
 
407
 
408
  /**
409
  Animated Text Styles
410
  **/
411
  .eae-st-rest-text {
412
- display: inline-block;
413
  }
414
  .eae-st-split-text {
415
- display: inline-block;
416
  }
417
 
 
 
 
 
 
 
 
 
 
 
 
 
 
418
  /* --------------------------------
419
  xtype
420
  -------------------------------- */
421
  .eae-at-animation.type .eae-at-animation-text-wrapper {
422
- vertical-align: bottom;
423
- overflow: hidden;
424
  }
425
  .eae-at-animation.type .eae-at-animation-text-wrapper::after {
426
- /* vertical bar */
427
- content: '';
428
- position: absolute;
429
- right: 0;
430
- top: 50%;
431
- bottom: auto;
432
- -webkit-transform: translateY(-50%);
433
- -moz-transform: translateY(-50%);
434
- -ms-transform: translateY(-50%);
435
- -o-transform: translateY(-50%);
436
- transform: translateY(-50%);
437
- height: 90%;
438
- width: 1px;
439
  }
440
  .eae-at-animation.type .eae-at-animation-text-wrapper.waiting::after {
441
- -webkit-animation: cd-pulse 1s infinite;
442
- -moz-animation: cd-pulse 1s infinite;
443
- animation: cd-pulse 1s infinite;
444
  }
445
 
446
  .eae-at-animation.type .eae-at-animation-text-wrapper.selected::after {
447
- visibility: hidden;
448
  }
449
 
450
  .eae-at-animation.type .eae-at-animation-text {
451
- visibility: hidden;
452
  }
453
  .eae-at-animation.type .eae-at-animation-text.is-visible {
454
- visibility: visible;
455
  }
456
  .eae-at-animation.type i {
457
- position: absolute;
458
- visibility: hidden;
459
  }
460
  .eae-at-animation.type i.in {
461
- position: relative;
462
- visibility: visible;
463
  }
464
 
465
  @-webkit-keyframes cd-pulse {
466
- 0% {
467
- -webkit-transform: translateY(-50%) scale(1);
468
- opacity: 1;
469
- }
470
- 40% {
471
- -webkit-transform: translateY(-50%) scale(0.9);
472
- opacity: 0;
473
- }
474
- 100% {
475
- -webkit-transform: translateY(-50%) scale(0);
476
- opacity: 0;
477
- }
478
  }
479
  @-moz-keyframes cd-pulse {
480
- 0% {
481
- -moz-transform: translateY(-50%) scale(1);
482
- opacity: 1;
483
- }
484
- 40% {
485
- -moz-transform: translateY(-50%) scale(0.9);
486
- opacity: 0;
487
- }
488
- 100% {
489
- -moz-transform: translateY(-50%) scale(0);
490
- opacity: 0;
491
- }
492
  }
493
  @keyframes cd-pulse {
494
- 0% {
495
- -webkit-transform: translateY(-50%) scale(1);
496
- -moz-transform: translateY(-50%) scale(1);
497
- -ms-transform: translateY(-50%) scale(1);
498
- -o-transform: translateY(-50%) scale(1);
499
- transform: translateY(-50%) scale(1);
500
- opacity: 1;
501
- }
502
- 40% {
503
- -webkit-transform: translateY(-50%) scale(0.9);
504
- -moz-transform: translateY(-50%) scale(0.9);
505
- -ms-transform: translateY(-50%) scale(0.9);
506
- -o-transform: translateY(-50%) scale(0.9);
507
- transform: translateY(-50%) scale(0.9);
508
- opacity: 0;
509
- }
510
- 100% {
511
- -webkit-transform: translateY(-50%) scale(0);
512
- -moz-transform: translateY(-50%) scale(0);
513
- -ms-transform: translateY(-50%) scale(0);
514
- -o-transform: translateY(-50%) scale(0);
515
- transform: translateY(-50%) scale(0);
516
- opacity: 0;
517
- }
518
  }
519
 
520
  /**
@@ -524,119 +697,117 @@ xtype
524
  Primary style
525
  -------------------------------- */
526
  .eae-img-comp-container {
527
- width: 100%;
528
- position: relative;
529
- text-align: center;
530
  }
531
  .eae-img-comp-container img {
532
- vertical-align: middle ;
533
  }
534
  .eae-img-comp-img {
535
- /*position: absolute;
536
  width: 100%;
537
  height: 100%;
538
  overflow:hidden;*/
539
 
540
- position: absolute;
541
- top: 0px;
542
- left: 0px;
543
- height: 100%;
544
- width: 100%;
545
- overflow: hidden;
546
- transform: translateZ(0px);
547
- backface-visibility: hidden;
548
  }
549
- .eae-img-comp-img img{
550
- display: block;
551
- max-width: 100%;
552
- width: 100%;
553
  }
554
  .eae-img-comp-slider {
555
- position: absolute;
556
- z-index:9;
557
- /*set the appearance of the slider:*/
558
- width: 40px;
559
- height: 40px;
560
- background-color: #2196F3;
561
- opacity: 1.0;
562
- border-radius: 50%;
563
- }
564
- .icon-horizontal{
565
- cursor: ew-resize;
566
- }
567
- .icon-vertical{
568
- cursor: n-resize;
569
- }
570
-
571
- .eae-img-comp-overlay{
572
-
573
- }
574
- .mode-horizontal .eae-img-comp-overlay img{
575
- position: absolute;
576
- left: 0;
577
- top: 0;
578
- display: block;
579
- width: auto;
580
- height: 100%!important;
581
- max-width: none!important;
582
- }
583
-
584
- .mode-vertical .eae-img-comp-overlay img{
585
- position: absolute;
586
- left: 0;
587
- top: 0;
588
- display: block;
589
- width: 100%;
590
- height: auto !important;
591
- max-width: none!important;
592
- }
593
-
594
-
595
- .eae-slider-icon , .eae-img-comp-slider svg{
596
- top: 50%;
597
- transform: translateY(-50%) translateX(-50%);
598
- position: absolute;
599
- left: 50%;
600
- color:white;
601
- }
602
- .elementor-widget-wts-ab-image{
603
- text-align: center;
604
  }
605
- .elementor-widget-wts-ab-image .elementor-widget-container{
606
- display: inline-block;
607
- margin: 0 auto !important;
608
- overflow: hidden;
609
  }
610
 
611
- .eae-text-before{
612
- position: absolute!important;
613
- padding: 10px;
614
- transition: transform .3s .7s,opacity .3s .7s;
615
- color: #d36118;
616
- z-index: 0;
617
- background: rgba(255,255,255,0.5);
618
- margin: 20px;
619
  }
620
 
621
- .eae-text-after{
622
- position: absolute!important;
623
- padding: 10px;
624
- transition: transform .3s .7s,opacity .3s .7s;
625
- color: #d36118;
626
- z-index: 0;
627
- background: rgba(255,255,255,0.5);
628
- margin: 20px;
629
  }
630
 
631
  /* Test CSS */
632
 
633
- .divTest{
634
- display: inline-block;
635
- background-color: #00a0d2;
636
- padding: 20px;
637
  }
638
 
639
-
640
  /*.eae-particle-wrapper{*/
641
  /* width:100%;*/
642
  /* height:100%;*/
@@ -645,1171 +816,1292 @@ Primary style
645
  /* top:0;*/
646
  /*}*/
647
 
648
-
649
  /*.particles-js-canvas-el{ height:100%; position:absolute; }*/
650
 
651
- .eae-particle-wrapper{
652
- position: absolute;
653
- left:0;
654
- top:0;
655
-
656
  }
657
- .eae-particle-wrapper.eae-particle-area{
658
- width:100%;
659
- height:100%;
660
  }
661
 
662
- body:not(.elementor-editor-active) .eae-particle-wrapper{
663
- width:100%;
664
- height:100%;
665
  }
666
 
667
- body:not(.elementor-editor-active) .eae-particle-wrapper .particles-js-canvas-el{ height:100%; position:absolute; z-index: 0;}
668
-
 
 
 
 
 
669
 
670
  /**
671
  BG Slider
672
  **/
673
- .eae-section-bs{ position: absolute; width: 100%; height: 100%; top:0;}
674
- .eae-section-bs-inner{ width: 100%; height: 100% !important; }
675
-
 
 
 
 
 
 
 
676
 
677
  /**
678
  Popup
679
  **/
680
  .eae-popup.mfp-bg {
681
- top: 0;
682
- left: 0;
683
- width: 100%;
684
- height: 100%;
685
- z-index: 1042;
686
- overflow: hidden;
687
- position: fixed;
688
- background: #0b0b0b;
689
- opacity: 0.8; }
 
690
 
691
- .eae-popup-link{
692
- padding : 12px 24px;
693
- color: #fff;
694
- display: inline-flex;
695
- line-height: 1;
696
  }
697
 
698
- .eae-popup-link svg{
699
- fill : #fff;
700
  }
701
- .eae-popup-link:hover{
702
- color: #fff;
703
  }
704
  .eae-popup.mfp-wrap {
705
- top: 0;
706
- left: 0;
707
- width: 100%;
708
- height: 100%;
709
- z-index: 1043;
710
- position: fixed;
711
- outline: none !important;
712
- -webkit-backface-visibility: hidden; }
 
713
 
714
  .eae-popup .mfp-container {
715
- text-align: center;
716
- position: absolute;
717
- width: 100%;
718
- height: 100%;
719
- left: 0;
720
- top: 0;
721
- padding: 0 8px;
722
- box-sizing: border-box; }
 
723
 
724
  .eae-popup .mfp-container:before {
725
- content: '';
726
- display: inline-block;
727
- height: 100%;
728
- vertical-align: middle; }
 
729
 
730
  .eae-popup .mfp-align-top .mfp-container:before {
731
- display: none; }
 
732
 
733
  .eae-popup .mfp-content {
734
- position: relative;
735
- display: inline-block;
736
- vertical-align: middle;
737
- margin: 0 auto;
738
- text-align: left;
739
- z-index: 1045;
740
-
741
  }
742
- .eae-modal-content{
743
- padding: 20px;
744
  }
745
- .eae-pop-btn-align-left .eae-popup-wrapper{
746
- text-align: left;
747
  }
748
- .eae-pop-btn-align-right .eae-popup-wrapper{
749
- text-align: right;
750
  }
751
- .eae-pop-btn-align-center .eae-popup-wrapper{
752
- text-align: center;
753
  }
754
- .eae-pop-btn-align-justify .eae-popup-wrapper{
755
- text-align: center;
756
  }
757
- .eae-pop-btn-align-justify .eae-popup-wrapper a{
758
- display: block;
759
  }
760
  .eae-popup .mfp-inline-holder .mfp-content,
761
  .eae-popup .mfp-ajax-holder .mfp-content {
762
- width: 50%;
763
- background-color: #fff;
764
- cursor: auto;
765
- overflow: hidden;
766
  }
767
 
768
  .eae-popup .mfp-ajax-cur {
769
- cursor: progress; }
 
770
 
771
- .eae-popup .mfp-zoom-out-cur, .eae-popup .mfp-zoom-out-cur .mfp-image-holder .eae-close {
772
- cursor: -moz-zoom-out;
773
- cursor: -webkit-zoom-out;
774
- cursor: zoom-out; }
 
 
775
 
776
  .eae-popup .mfp-zoom {
777
- cursor: pointer;
778
- cursor: -webkit-zoom-in;
779
- cursor: -moz-zoom-in;
780
- cursor: zoom-in; }
 
781
 
782
  .eae-popup.mfp-auto-cursor .mfp-content {
783
- cursor: auto; }
 
784
 
785
  .eae-popup .eae-close,
786
  .eae-popup .mfp-arrow,
787
  .eae-popup .mfp-preloader,
788
  .eae-popup .mfp-counter {
789
- -webkit-user-select: none;
790
- -moz-user-select: none;
791
- user-select: none; }
 
792
 
793
  .mfp-loading.mfp-figure {
794
- display: none; }
 
795
 
796
  .mfp-hide {
797
- display: none !important; }
 
798
 
799
  .eae-popup .mfp-preloader {
800
- color: #CCC;
801
- position: absolute;
802
- top: 50%;
803
- width: auto;
804
- text-align: center;
805
- margin-top: -0.8em;
806
- left: 8px;
807
- right: 8px;
808
- z-index: 1044; }
 
809
  .eae-popup .mfp-preloader a {
810
- color: #CCC; }
 
811
  .eae-popup .mfp-preloader a:hover {
812
- color: #FFF; }
 
813
 
814
  .mfp-s-ready .mfp-preloader {
815
- display: none; }
 
816
 
817
  .mfp-s-error .mfp-content {
818
- display: none; }
 
819
 
820
  button.eae-close,
821
  button.mfp-arrow {
822
- overflow: visible;
823
- cursor: pointer;
824
- background: transparent;
825
- border: 0;
826
- -webkit-appearance: none;
827
- display: block;
828
- outline: none;
829
- padding: 0;
830
- z-index: 1046;
831
- box-shadow: none;
832
- touch-action: manipulation; }
 
833
 
834
  button::-moz-focus-inner {
835
- padding: 0;
836
- border: 0; }
 
837
 
838
  .eae-popup .eae-close {
839
- width: 28px;
840
- height: 28px;
841
- line-height: 1em;
842
- position: absolute;
843
- right: 10px;
844
- top: 10px;
845
- text-decoration: none;
846
- text-align: center;
847
- opacity: 1.00;
848
- color: #FFF;
849
- font-size: 28px;
850
- z-index: 1500;
851
  }
852
  .eae-close:hover,
853
  .eae-close:focus {
854
- opacity: 1;
855
- cursor: pointer;
856
  }
857
  .eae-close:active {
858
- top: 1px; }
859
- .eae-close:before{
860
- top: 50%;
861
- left: 50%;
862
- position: absolute;
863
- transform: translate(-50%,-50%);
 
864
  }
865
  .eae-popup.eae-close-btn-in .eae-close {
866
- color: #fff;
867
  }
868
 
869
  .mfp-image-holder .eae-close,
870
  .mfp-iframe-holder .eae-close {
871
- color: #FFF;
872
- right: -6px;
873
- text-align: right;
874
- padding-right: 6px;
875
- width: 100%; }
 
876
 
877
  .mfp-counter {
878
- position: absolute;
879
- top: 0;
880
- right: 0;
881
- color: #CCC;
882
- font-size: 12px;
883
- line-height: 18px;
884
- white-space: nowrap; }
 
885
 
886
  .mfp-arrow {
887
- position: absolute;
888
- opacity: 0.65;
889
- margin: 0;
890
- top: 50%;
891
- margin-top: -55px;
892
- padding: 0;
893
- width: 90px;
894
- height: 110px;
895
- -webkit-tap-highlight-color: transparent; }
 
896
  .mfp-arrow:active {
897
- margin-top: -54px; }
 
898
  .mfp-arrow:hover,
899
  .mfp-arrow:focus {
900
- opacity: 1; }
 
901
  .mfp-arrow:before,
902
  .mfp-arrow:after {
903
- content: '';
904
- display: block;
905
- width: 0;
906
- height: 0;
907
- position: absolute;
908
- left: 0;
909
- top: 0;
910
- margin-top: 35px;
911
- margin-left: 35px;
912
- border: medium inset transparent; }
 
913
  .mfp-arrow:after {
914
- border-top-width: 13px;
915
- border-bottom-width: 13px;
916
- top: 8px; }
 
917
  .mfp-arrow:before {
918
- border-top-width: 21px;
919
- border-bottom-width: 21px;
920
- opacity: 0.7; }
 
921
 
922
  .mfp-arrow-left {
923
- left: 0; }
 
924
  .mfp-arrow-left:after {
925
- border-right: 17px solid #FFF;
926
- margin-left: 31px; }
 
927
  .mfp-arrow-left:before {
928
- margin-left: 25px;
929
- border-right: 27px solid #3F3F3F; }
 
930
 
931
  .mfp-arrow-right {
932
- right: 0; }
 
933
  .mfp-arrow-right:after {
934
- border-left: 17px solid #FFF;
935
- margin-left: 39px; }
 
936
  .mfp-arrow-right:before {
937
- border-left: 27px solid #3F3F3F; }
 
938
 
939
  .mfp-iframe-holder {
940
- padding-top: 40px;
941
- padding-bottom: 40px; }
 
942
  .mfp-iframe-holder .mfp-content {
943
- line-height: 0;
944
- width: 100%;
945
- max-width: 900px; }
 
946
  .mfp-iframe-holder .eae-close {
947
- top: -40px; }
 
948
 
949
  .mfp-iframe-scaler {
950
- width: 100%;
951
- height: 0;
952
- overflow: hidden;
953
- padding-top: 56.25%; }
 
954
  .mfp-iframe-scaler iframe {
955
- position: absolute;
956
- display: block;
957
- top: 0;
958
- left: 0;
959
- width: 100%;
960
- height: 100%;
961
- box-shadow: 0 0 8px rgba(0, 0, 0, 0.6);
962
- background: #000; }
 
963
 
964
  /* Main image in popup */
965
  img.mfp-img {
966
- width: auto;
967
- max-width: 100%;
968
- height: auto;
969
- display: block;
970
- line-height: 0;
971
- box-sizing: border-box;
972
- padding: 40px 0 40px;
973
- margin: 0 auto; }
 
974
 
975
  /* The shadow behind the image */
976
  .eae-popup .mfp-figure {
977
- line-height: 0; }
 
978
  .eae-popup .mfp-figure:after {
979
- content: '';
980
- position: absolute;
981
- left: 0;
982
- top: 40px;
983
- bottom: 40px;
984
- display: block;
985
- right: 0;
986
- width: auto;
987
- height: auto;
988
- z-index: -1;
989
- box-shadow: 0 0 8px rgba(0, 0, 0, 0.6);
990
- background: #444; }
 
991
  .eae-popup .mfp-figure small {
992
- color: #BDBDBD;
993
- display: block;
994
- font-size: 12px;
995
- line-height: 14px; }
 
996
  .eae-popup .mfp-figure figure {
997
- margin: 0; }
 
998
 
999
  .eae-popup .mfp-bottom-bar {
1000
- margin-top: -36px;
1001
- position: absolute;
1002
- top: 100%;
1003
- left: 0;
1004
- width: 100%;
1005
- cursor: auto; }
 
1006
 
1007
  .eae-popup .mfp-title {
1008
- text-align: left;
1009
- line-height: 1;
1010
- word-wrap: break-word;
1011
- color: #ffffff;
1012
- background-color: #4054b2;
1013
- padding: 20px 20px 20px 20px;
1014
  }
1015
 
1016
  .eae-popup .mfp-image-holder .mfp-content {
1017
- max-width: 100%; }
 
1018
 
1019
  .eae-popup .mfp-gallery .mfp-image-holder .mfp-figure {
1020
- cursor: pointer; }
 
1021
 
1022
- @media screen and (max-width: 800px) and (orientation: landscape), screen and (max-height: 300px) {
1023
- /**
 
1024
  * Remove all paddings around the image on small screen
1025
  */
1026
- .mfp-img-mobile .mfp-image-holder {
1027
- padding-left: 0;
1028
- padding-right: 0; }
1029
- .mfp-img-mobile img.mfp-img {
1030
- padding: 0; }
1031
- .mfp-img-mobile .mfp-figure:after {
1032
- top: 0;
1033
- bottom: 0; }
1034
- .mfp-img-mobile .mfp-figure small {
1035
- display: inline;
1036
- margin-left: 5px; }
1037
- .mfp-img-mobile .mfp-bottom-bar {
1038
- background: rgba(0, 0, 0, 0.6);
1039
- bottom: 0;
1040
- margin: 0;
1041
- top: auto;
1042
- padding: 3px 5px;
1043
- position: fixed;
1044
- box-sizing: border-box; }
1045
- .mfp-img-mobile .mfp-bottom-bar:empty {
1046
- padding: 0; }
1047
- .mfp-img-mobile .mfp-counter {
1048
- right: 5px;
1049
- top: 3px; }
1050
- .mfp-img-mobile .eae-close {
1051
- top: 0;
1052
- right: 0;
1053
- width: 35px;
1054
- height: 35px;
1055
- line-height: 35px;
1056
- background: rgba(0, 0, 0, 0.6);
1057
- position: fixed;
1058
- text-align: center;
1059
- padding: 0; } }
1060
-
 
 
 
 
 
 
 
 
1061
 
1062
- .elementor-element.eae-animated-gradient-yes,.elementor-element.eae-animated-gradient-yes .animated-gradient {
1063
- background-size: 400% 400% !important;
1064
- -webkit-animation: AnimateGradient 15s ease-in-out infinite;
1065
- -moz-animation: AnimateGradient 15s ease-in-out infinite;
1066
- animation: AnimateGradient 15s ease-in-out infinite;
 
1067
  }
1068
- .animated-gradient{
1069
- position: absolute;
1070
- top: 0;
1071
- left: 0;
1072
- height: 100%;
1073
- width: 100%;
1074
  }
1075
  @-webkit-keyframes AnimateGradient {
1076
- 0% {
1077
- background-position: 0% 50%
1078
- }
1079
- 50% {
1080
- background-position: 100% 50%
1081
- }
1082
- 100% {
1083
- background-position: 0% 50%
1084
- }
1085
  }
1086
  @-moz-keyframes AnimateGradient {
1087
- 0% {
1088
- background-position: 0% 50%
1089
- }
1090
- 50% {
1091
- background-position: 100% 50%
1092
- }
1093
- 100% {
1094
- background-position: 0% 50%
1095
- }
1096
  }
1097
  @keyframes AnimateGradient {
1098
- 0% {
1099
- background-position: 0% 50%
1100
- }
1101
- 50% {
1102
- background-position: 100% 50%
1103
- }
1104
- 100% {
1105
- background-position: 0% 50%
1106
- }
1107
  }
1108
 
1109
  /*--------------------------------Testimonial Slider----------------------------*/
1110
 
1111
- .eae-swiper-outer-wrapper .swiper-slide{
1112
- height: auto;
1113
- overflow: inherit;
1114
  }
1115
- .eae-swiper-outer-wrapper .swiper-slide-wrapper , .eae-swiper-outer-wrapper .testimonial-wrapper{
1116
- height: 100%;
 
1117
  }
1118
 
1119
  .eae-grid {
1120
- display: flex;
1121
- flex-wrap: wrap;
1122
- flex-direction: row;
1123
  }
1124
  .eae-masonry- .eae-grid-item {
1125
- position: relative;
1126
- height: 100%;
1127
  }
1128
- .eae-masonry- .eae-grid-item .testimonial-wrapper{
1129
- height: 100%;
1130
  }
1131
- .eae-grid-container {
1132
- transition: 0.1s all ease;
1133
  }
1134
- .eae-grid-container{
1135
- display: inline-block;
1136
  }
1137
 
1138
- .wrapper .content{
1139
- margin: 10px 0;
1140
- }/*------------------------skin-2------------------*/
1141
- .skin-2.testimonial-wrapper{
1142
- display: flex;
1143
- flex-direction: column;
1144
- background-color: #9c989821;
1145
- min-height: 300px;
1146
- padding: 10px 20px;
1147
- box-shadow: 0 0 5px rgba(0, 0, 0, 0.15);
1148
- color : #696969;
1149
- }
1150
- .skin-2 .content-wrapper{
1151
- padding: 10px;
1152
- position: relative;
1153
- background-color: #fff;
1154
- border-radius: 10px;
1155
- color: #77778E;
1156
-
1157
- }
1158
- .skin-2 i.before-content , .skin-2 i.after-content{
1159
- position: absolute;
1160
- }
1161
- .skin-2 i.before-content{
1162
- top : 10px;
1163
- left : 20px;
1164
- }
1165
- .skin-2 i.after-content{
1166
- bottom : 10px;
1167
- right: 20px;
1168
- }
1169
- .skin-2 blockquote{
1170
- position: relative;
1171
- font-size: 14px;
1172
- padding: 10px;
1173
- font-weight: 500;
1174
- text-align: left;
1175
- margin: 0;
1176
- line-height: 1.6em;
1177
- font-style: italic;
1178
- }
1179
- .skin-2 blockquote::before , .skin-2 blockquote::after{
1180
- font-family: 'FontAwesome';
1181
- content: "\201C";
1182
- position: absolute;
1183
- font-size: 50px;
1184
- opacity: 0.3;
1185
- font-style: normal;
1186
- }
1187
-
1188
- .skin-2 blockquote::before{
1189
- top : 10px;
1190
- left: 20px;
1191
- }
1192
- .skin-2 blockquote::after{
1193
- content: "\201D";
1194
- right: 20px;
1195
-
1196
- }
1197
- .skin-2 .image-wrapper{
1198
- position: relative;
1199
- max-width: 100%;
1200
- text-align: center;
1201
  }
1202
- .skin-2 img{
1203
- width: 100px;
1204
- border-radius: 25%
1205
  }
1206
- .skin-2 .detail-wrapper{
1207
- text-align : center;
1208
  }
1209
- .skin-2 .rating-wrapper , .skin-2 .title , .skin-2 .designation , .skin-2 .company{
1210
- padding: 5px 0;
 
 
 
1211
  }
1212
- .skin-2 .rating-wrapper{
1213
- color : #000080;
1214
  }
1215
 
1216
- .skin-2 .title{
1217
- font-weight: 800;
1218
- color: #000000;
1219
  }
1220
- .skin-2 blockquote p{
1221
- margin : 10px 0 !important;
1222
  }
1223
 
1224
  /*------------------------skin-1------------------*/
1225
 
1226
- .skin-1.testimonial-wrapper{
1227
- display: flex;
1228
- flex-direction: column;
1229
- background-color: #ffffff;
1230
- box-shadow: 0 0 5px rgba(0, 0, 0, 0.15);
1231
- color : black;
1232
- }
1233
- .skin-1 .content-wrapper{
1234
- order : 0;
1235
- }
1236
- .skin-1 .image-wrapper{
1237
- order : 1;
1238
- text-align: center;
1239
- margin: 15px 0;
1240
- }
1241
- .skin-1 .detail-wrapper{
1242
- order : 2;
1243
- }
1244
- .skin-1 .content-wrapper{
1245
- padding: 10px;
1246
- position: relative;
1247
- }
1248
- .skin-1 i.before-content , .skin-1 i.after-content{
1249
- position: absolute;
1250
- }
1251
- .skin-1 i.before-content{
1252
- top : 10px;
1253
- left : 20px;
1254
- }
1255
- .skin-1 i.after-content{
1256
- bottom : 10px;
1257
- right: 20px;
1258
- }
1259
- .skin-1 blockquote{
1260
- position: relative;
1261
- background-color: #ffffff;
1262
- font-size: 14px;
1263
- padding: 10px;
1264
- font-weight: 500;
1265
- text-align: left;
1266
- margin: 0;
1267
- line-height: 1.6em;
1268
- font-style: italic;
1269
- }
1270
- .skin-1 blockquote::before , .skin-1 blockquote::after{
1271
- font-family: 'FontAwesome';
1272
- content: "\201C";
1273
- position: absolute;
1274
- font-size: 50px;
1275
- opacity: 0.3;
1276
- font-style: normal;
1277
- }
1278
-
1279
- .skin-1 blockquote::before{
1280
- top : 10px;
1281
- left: 20px;
1282
- }
1283
- .skin-1 blockquote::after{
1284
- content: "\201D";
1285
- right: 20px;
1286
-
1287
- }
1288
- .skin-1 .image-wrapper{
1289
- position: relative;
1290
- max-width: 100%;
1291
  }
1292
- .skin-1 img{
1293
- width: 100px;
1294
- height: auto;
1295
- border-radius: 50%;
1296
  }
1297
- .skin-1 .detail-wrapper{
1298
- display: flex;
1299
- flex-direction: row-reverse;
1300
- justify-content: space-between;
1301
- padding: 10px;
1302
- background-color: rgba(157,163,156,0.18);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1303
  }
1304
- .skin-1 .rating-wrapper , .skin-1 .title , .skin-1 .designation{
1305
- margin: 0 5px;
 
 
1306
  }
1307
- .skin-1 .title-wrapper{
1308
- display: flex;
1309
- flex-direction: row;
1310
  }
1311
- .skin-1 .rating-wrapper{
1312
- color : #fecc1f;
1313
  }
1314
 
1315
  /*------------------------skin-4------------------*/
1316
 
1317
- .skin-4.testimonial-wrapper{
1318
- flex-direction: column;
1319
- display: flex;
1320
- background-color: #bfbfb6bd;
1321
- min-height: 300px;
1322
- padding: 10px 0;
1323
- box-shadow: 0 0 5px rgba(0, 0, 0, 0.15);
1324
- color : #77778E;
1325
- }
1326
- .skin-4 .content-wrapper{
1327
- padding: 10px;
1328
- position: relative;
1329
- }
1330
- .skin-4 .content-wrapper{
1331
- order : 2;
1332
- color: #3C3C3C;
1333
- }
1334
- .skin-4 i.before-content , .skin-4 i.after-content{
1335
- position: absolute;
1336
- }
1337
- .skin-4 i.before-content{
1338
- top : 10px;
1339
- left : 20px;
1340
- }
1341
- .skin-4 i.after-content{
1342
- bottom : 10px;
1343
- right: 20px;
1344
- }
1345
- .skin-4 blockquote{
1346
- position: relative;
1347
- font-size: 14px;
1348
- padding: 10px;
1349
- font-weight: 500;
1350
- text-align: left;
1351
- margin: 0;
1352
- line-height: 1.6em;
1353
- font-style: italic;
1354
- }
1355
- .skin-4 blockquote::before , .skin-4 blockquote::after{
1356
- font-family: 'FontAwesome';
1357
- content: "\201C";
1358
- position: absolute;
1359
- font-size: 50px;
1360
- opacity: 0.3;
1361
- font-style: normal;
1362
- }
1363
-
1364
- .skin-4 blockquote::before{
1365
- top : 10px;
1366
- left: 20px;
1367
- }
1368
- .skin-4 blockquote::after{
1369
- content: "\201D";
1370
- right: 20px;
1371
-
1372
- }
1373
- .skin-4 .image-wrapper{
1374
- position: relative;
1375
- max-width: 100%;
1376
- text-align: center;
 
1377
  }
1378
- .skin-4 img{
1379
- width: 100px;
1380
- border-radius: 50%
1381
  }
1382
- .skin-4 .detail-wrapper{
1383
- text-align : center;
1384
  }
1385
- .skin-4 .rating-wrapper , .skin-2 .title , .skin-2 .designation{
1386
- padding: 5px 0;
 
 
1387
  }
1388
- .skin-4 .rating-wrapper{
1389
- color : #690A69;
1390
  }
1391
 
1392
- .skin-4 .title{
1393
- font-weight: 800;
1394
- color: #000000;
1395
  }
1396
 
1397
  /*------------------------skin-3------------------*/
1398
 
1399
- .skin-3.testimonial-wrapper{
1400
- display: flex;
1401
- flex-direction: row;
1402
- background-color: #9c989821;
1403
- box-shadow: 0 0 5px rgba(0, 0, 0, 0.15);
1404
- color : black;
1405
- overflow: hidden;
1406
- }
1407
- .skin-3 .content-section{
1408
- display: flex;
1409
- flex-direction: column;
1410
- align-self: center;
1411
- }
1412
- .skin-3 .content-wrapper{
1413
- padding: 10px;
1414
- position: relative;
1415
- }
1416
- .skin-3 i.before-content , .skin-2 i.after-content{
1417
- position: absolute;
1418
- }
1419
- .skin-3 i.before-content{
1420
- top : 10px;
1421
- left : 20px;
1422
- }
1423
- .skin-3 i.after-content{
1424
- bottom : 10px;
1425
- right: 20px;
1426
- }
1427
- .skin-3 blockquote{
1428
- position: relative;
1429
- font-size: 18px;
1430
- padding: 10px;
1431
- font-weight: 500;
1432
- text-align: left;
1433
- margin: 0;
1434
- line-height: 1.6em;
1435
- font-style: italic;
1436
- }
1437
- .skin-3 blockquote::before , .skin-3 blockquote::after{
1438
- font-family: 'FontAwesome';
1439
- content: "\201C";
1440
- position: absolute;
1441
- font-size: 50px;
1442
- opacity: 0.3;
1443
- font-style: normal;
1444
- }
1445
-
1446
- .skin-3 blockquote::before{
1447
- top : 10px;
1448
- left: 20px;
1449
- }
1450
- .skin-3 blockquote::after{
1451
- content: "\201D";
1452
- right: 20px;
1453
-
1454
- }
1455
- .skin-3 .image-wrapper{
1456
- position: relative;
1457
- max-width: 30%;
1458
- max-height: 250px;
1459
- text-align: center;
1460
- align-self: center;
1461
- }
1462
- .skin-3 img{
1463
- width: 100%;
1464
- }
1465
- .testimonial-wrapper .skin-3 .eae-person-avatar{ border-radius: 50% ;
1466
- }
1467
- .skin-3 .detail-wrapper{
1468
- text-align : left;
1469
- padding-left: 20px;
1470
- }
1471
- .skin-3 .rating-wrapper , .skin-3 .title , .skin-3 .designation{
1472
- padding: 3px 0;
1473
- }
1474
- .skin-3 .rating-wrapper{
1475
- color : #800040;
1476
- }
1477
-
1478
- .skin-3 .title{
1479
- font-weight: 800;
1480
- }
1481
- .eae-swiper-outer-wrapper .swiper-button-prev{
1482
- -webkit-mask: url(arrow-left.svg) no-repeat 100% 100%;
1483
- mask: url(arrow-left.svg) no-repeat 100% 100%;
1484
- -webkit-mask-size: cover;
1485
- mask-size: cover;
1486
- background-image: none;
1487
- background-color: #007aff;
1488
- transform: translateY(-50%);
1489
- margin-top:0px;
1490
-
1491
- }
1492
- .eae-swiper-outer-wrapper .swiper-container-rtl .swiper-button-prev{
1493
- -webkit-mask: url(arrow-right.svg) no-repeat 100% 100%;
1494
- mask: url(arrow-right.svg) no-repeat 100% 100%;
1495
- }
1496
- .eae-swiper-outer-wrapper .swiper-button-next{
1497
- -webkit-mask: url(arrow-right.svg) no-repeat 100% 100%;
1498
- mask: url(arrow-right.svg) no-repeat 100% 100%;
1499
- -webkit-mask-size: cover;
1500
- mask-size: cover;
1501
- background-image: none;
1502
- background-color: #007aff;
1503
- transform: translateY(-50%);
1504
- margin-top:0px;
1505
- }
1506
- .eae-swiper-outer-wrapper .swiper-container-rtl .swiper-button-next{
1507
- -webkit-mask: url(arrow-left.svg) no-repeat 100% 100%;
1508
- mask: url(arrow-left.svg) no-repeat 100% 100%;
1509
- }
1510
- .elementor-widget-wts-testimonial-slider .eae-swiper-outer-wrapper .swiper-button-prev, .elementor-widget-wts-testimonial-slider .eae-swiper-outer-wrapper .swiper-button-next{
1511
- -webkit-mask: none;
1512
- mask: none;
1513
- -webkit-mask-size: unset;
1514
- mask-size: unset;
1515
- background-image: none;
1516
- background-color: unset;
1517
- width: auto;
1518
- height: auto;
1519
- transform: translateY(-50%);
1520
- margin-top:0px;
1521
- }
1522
-
1523
- .swiper-container .swiper-button-next i, .swiper-container .swiper-button-prev i{
1524
- width: 1em;
1525
- height: 1em;
1526
- text-align: center;
1527
- position: relative;
1528
- }
1529
-
1530
- .elementor-widget-wts-testimonial-slider .eae-swiper-outer-wrapper .eae-swiper-button-wrapper{ position: absolute; height: auto; line-height: 0; }
1531
-
1532
- .eae-hpos-right.eae-vpos-top .eae-swiper-button-wrapper{
1533
- bottom: auto; top: 0; width: auto; right: 0;
1534
- }
1535
- .eae-vpos-top.eae-hpos-left .eae-swiper-button-wrapper{
1536
- bottom: auto; top: 0; width: auto; left: 0;
1537
- }
1538
- .eeae-hpos-right.eae-vpos-bottom .eae-swiper-button-wrapper{
1539
- bottom: 0; top: auto; width: auto; right: 0;
1540
- }
1541
- .eae-vpos-bottom.eae-hpos-left .eae-swiper-button-wrapper{
1542
- bottom: 0; top: auto; width: auto; left: 0;
1543
- }
1544
- .eae-hpos-right.eae-vpos-middle .eae-swiper-button-wrapper{
1545
- bottom: auto; top: 50%; width: auto; right: 0;
1546
- }
1547
- .eae-hpos-left.eae-vpos-middle .eae-swiper-button-wrapper{
1548
- bottom: auto; top: 50%; width: auto; left: 0;
1549
- }
1550
-
1551
- .eae-hpos-right .swiper-button-prev, .eae-hpos-left .swiper-button-prev, .eae-hpos-right .swiper-button-next, .eae-hpos-left .swiper-button-next {
1552
- position: relative;
1553
- display: inline-block;
1554
- right: auto;
1555
- left: auto;
1556
- }
1557
-
1558
- .eae-hpos-right.eae-vpos-bottom .swiper-button-prev, .eae-hpos-right.eae-vpos-bottom .swiper-button-next {
1559
- top: auto;
1560
- bottom: 0;
1561
- transform: unset;
1562
- }
1563
- .eae-hpos-right.eae-vpos-top .swiper-button-next, .eae-hpos-right.eae-vpos-top .swiper-button-prev {
1564
- top: 0;
1565
- bottom: auto;
1566
- transform: unset;
1567
- }
1568
- .eae-hpos-left.eae-vpos-top .swiper-button-prev, .eae-hpos-left.eae-vpos-top .swiper-button-next {
1569
- top: 0;
1570
- bottom: auto;
1571
- transform: unset;
1572
- }
1573
- .eae-hpos-left.eae-vpos-bottom .swiper-button-next, .eae-hpos-left.eae-vpos-bottom .swiper-button-prev {
1574
- top: auto;
1575
- bottom: 0;
1576
- transform: unset;
1577
- }
1578
- .eae-hpos-center.eae-vpos-bottom .swiper-button-next, .eae-hpos-center.eae-vpos-bottom .swiper-button-prev {
1579
- top: auto;
1580
- bottom: 0;
1581
- transform: unset;
1582
  }
1583
- .eae-hpos-center.eae-vpos-top .swiper-button-next, .eae-hpos-center.eae-vpos-top .swiper-button-prev {
1584
- top: 0;
1585
- bottom: auto;
1586
- transform: unset;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1587
  }
1588
 
1589
-
1590
  @media all and (max-width: 900px) {
1591
- .mfp-arrow {
1592
- -webkit-transform: scale(0.75);
1593
- transform: scale(0.75); }
1594
- .mfp-arrow-left {
1595
- -webkit-transform-origin: 0;
1596
- transform-origin: 0; }
1597
- .mfp-arrow-right {
1598
- -webkit-transform-origin: 100%;
1599
- transform-origin: 100%; }
1600
- .mfp-container {
1601
- padding-left: 6px;
1602
- padding-right: 6px; }
 
 
 
 
1603
  }
1604
 
1605
  /* Info Circle */
1606
  .eae-info-circle {
1607
- position: relative;
1608
- width: 90%;
1609
- margin: 0 auto;
1610
- border-radius: 50%;
1611
- display: block;
1612
  }
1613
-
1614
- .eae-info-circle:before {
1615
- content: '';
1616
- display: block;
1617
- position: absolute;
1618
- top: 4%;
1619
- left: 4%;
1620
- width: 92%;
1621
- height: 92%;
1622
- border-radius: 50%;
1623
- z-index: 1;
1624
- -webkit-box-sizing: border-box;
1625
- -moz-box-sizing: border-box;
1626
- box-sizing: border-box;
1627
- pointer-events: none;
1628
  }
1629
 
1630
  .eae-info-circle:after {
1631
- content: '';
1632
- display: block;
1633
- padding-top: 100%;
1634
  }
1635
 
1636
  .eae-info-circle .eae-ic-icon-wrap {
1637
- position: absolute;
1638
- display: inline-block;
1639
- top: 50%;
1640
- left: 50%;
1641
- z-index: 2;
1642
- line-height: 1em;
1643
- vertical-align: middle;
1644
- overflow: hidden;
1645
- max-width: 100%;
1646
  }
1647
 
1648
  .eae-info-circle .eae-info-circle-item {
1649
- top: 0;
1650
- left: 0;
1651
- width: 100%;
1652
- height: 100%;
1653
- display: block;
1654
- }
1655
-
1656
- .eae-info-circle .eae-info-circle-item.eae-active .eae-info-circle-item__content-wrap {
1657
- visibility: visible;
1658
- opacity: 1;
1659
- display: flex;
 
 
1660
  }
1661
 
1662
  .eae-info-circle .eae-info-circle-item__content-wrap {
1663
- visibility: visible;
1664
- display: none;
1665
- height: 91%;
1666
- width: 91%;
1667
- opacity: 0;
1668
- top: 50%;
1669
- transform: translateY(-50%) translateX(-50%);
1670
- position: absolute;
1671
- left: 50%;
1672
- border-radius: 50%;
1673
- overflow: hidden;
1674
- -webkit-box-sizing: border-box;
1675
- -moz-box-sizing: border-box;
1676
- box-sizing: border-box;
1677
-
1678
  }
1679
 
1680
  .eae-info-circle .eae-info-circle-item__content-wrap:before {
1681
- content: '';
1682
- display: inline-block;
1683
- height: 100%;
1684
- vertical-align: middle;
1685
  }
1686
 
1687
  .eae-info-circle .eae-info-circle-item__content {
1688
- display: inline-block;
1689
- top: 50%;
1690
- transform: translateY(-50%) translateX(-50%);
1691
- position: absolute;
1692
- left: 50%;
1693
- vertical-align: middle;
1694
- z-index: 1;
1695
- max-height: 100%;
1696
- overflow: auto;
1697
- -webkit-box-sizing: border-box;
1698
- -moz-box-sizing: border-box;
1699
- box-sizing: border-box;
1700
- text-align: center;
1701
- width: 75%;
1702
  }
1703
 
1704
-
1705
  /* Mobile */
1706
  @media screen and (max-width: 767px) {
1707
- .eae-info-circle.eae-info-circle .eae-info-circle-item__content-wrap:before {
1708
- display: none;
1709
- }
1710
- .eae-info-circle:before,
1711
- .eae-info-circle:after {
1712
- display: none
1713
- }
1714
 
1715
- .eae-info-circle{
1716
- width: 100% !important;
1717
- }
1718
 
1719
- .eae-info-circle-wrapper:before,
1720
- .eae-info-circle-wrapper:after {
1721
- display: none
1722
- }
1723
- .eae-info-circle .eae-ic-icon-wrap{
1724
- display: block;
1725
- text-align: center;
1726
- position: relative !important;
1727
- left: unset !important;
1728
- margin-left: 0 !important;
1729
- margin-top: 0 !important;
1730
- margin-bottom: 10px;
1731
- }
1732
- .eae-info-circle-item{
1733
- position: relative !important;
1734
- border-radius: 0 !important;
1735
- padding: 0px;
1736
- margin: 10px 0
1737
- }
1738
 
1739
- .eae-info-circle .eae-info-circle-item__content-wrap{
1740
- visibility: visible;
1741
- opacity: 1 !important;
1742
- display: flex !important;
1743
- border-radius: 0 !important;
1744
- border: none !important;
1745
- margin: 0 !important;
1746
- padding-right: 0 !important;
1747
- padding-left: 0 !important;
1748
- padding-bottom: 0 !important;
1749
- width: 100%;
1750
- height: auto;
1751
- line-height: 1.5em;
1752
- position: relative;
1753
- top: unset;
1754
- left: unset;
1755
- transform: unset;
1756
- }
1757
 
1758
- .eae-info-circle .eae-info-circle-item__content{
1759
- position: relative;
1760
- top: unset;
1761
- left: unset;
1762
- transform: unset;
1763
- width: 100%;
1764
- padding: 10px;
1765
- }
1766
  }
1767
 
1768
  /**
1769
  New Icon
1770
  */
1771
- .eae-icon-wrap i{
1772
- height:1.25em;
1773
- width:1.25em;
1774
- line-height: 1.25em;
1775
- display: block;
1776
- }
1777
- .eae-icon-wrap i img{
1778
- top: 50%;
1779
- left: 50%;
1780
- transform: translateX(-50%) translateY(-50%);
1781
- position: absolute;
1782
- }
1783
- .eae-icon{
1784
- display: inline-block;
1785
- text-align: center;
1786
- vertical-align: middle;
1787
- max-width: 100%;
1788
- overflow: hidden;
1789
- padding: 10px;
1790
  }
1791
 
1792
- .eae-icon-shape-circle:not(.elementor-element){
1793
- border-radius:50%;
1794
  }
1795
  .eae-icon-view-framed:not(.elementor-element) {
1796
- border-width:1px;
1797
- border-style:solid;
1798
  }
1799
 
1800
- .eae-icon-wrapper{
1801
- display: flex;
1802
  }
1803
 
1804
- .eae-icon-wrapper .eae-icon{
1805
- position: absolute;
1806
- left: 50%;
1807
- top: 50%;
1808
- transform: translate(-50%, -50%);
1809
- line-height: 1;
1810
  }
1811
 
1812
-
1813
  /**
1814
 
1815
  Timeline CSS
@@ -1817,981 +2109,1344 @@ new comment
1817
 
1818
  **/
1819
 
1820
-
1821
  .eae-timeline {
1822
- position: relative;
1823
- display: inline-block;
1824
- width: 100%;
1825
  }
1826
 
1827
- .eae-timline-progress-bar{
1828
- width: 4px;
1829
- background-color: #F45B69;
1830
- top:0;
1831
- bottom: 50px;
1832
- position: absolute;
1833
- transform: translateX(-50%);
1834
  }
1835
 
1836
- .eae-timeline-item{
1837
- position: relative;
1838
- display: flex;
1839
- flex-direction: row;
1840
- padding-bottom: 50px;
1841
  }
1842
 
1843
- .eae-timeline-item:last-child{
1844
- padding-bottom: 0px !important;
1845
  }
1846
 
1847
  .eae-tl-top .eae-timeline-item {
1848
- align-items: flex-start;
1849
  }
1850
- .eae-tl-top .eae-tl-item-content::before{
1851
- top: 10px;
1852
  }
1853
  .eae-timeline-item.image-position-row-reverse .eae-tl-item-image,
1854
- .eae-timeline-item.image-position-row .eae-tl-item-image{
1855
- margin-top: 0;
1856
- margin-bottom: 0;
1857
  }
1858
 
1859
- .eae-tl-item-meta-wrapper-inner{
1860
- display: none;
1861
  }
1862
  .eae-tl-bottom .eae-timeline-item {
1863
- align-items: flex-end;
1864
  }
1865
- .eae-tl-bottom .eae-tl-item-content::before{
1866
- bottom: 10px;
1867
  }
1868
 
1869
  .eae-tl-center .eae-timeline-item {
1870
- align-items: center;
1871
  }
1872
- .eae-tl-center .eae-tl-item-content::before{
1873
- bottom: calc(50% - 5px);
1874
  }
1875
 
1876
- .eae-layout-center .eae-timline-progress-bar{
1877
- left: 50%;
1878
  }
1879
  .eae-layout-center .eae-timeline-item:nth-child(odd) {
1880
- flex-direction: row-reverse;
1881
  }
1882
- .eae-layout-center .eae-timeline-item:nth-child(odd) .eae-tl-item-meta-wrapper{
1883
- margin-right: 0px;
1884
- margin-left:0px;
1885
- justify-content: flex-start;
1886
  }
1887
- .eae-layout-center .eae-timeline-item:nth-child(odd) .eae-tl-content-wrapper{
1888
- padding-right: 20px;
1889
- padding-left: 0px;
 
 
 
 
 
 
 
1890
  }
1891
- .eae-layout-center .eae-timeline-item:nth-child(even) .eae-tl-content-wrapper{
1892
- padding-right: 0px;
1893
- padding-left: 20px;
 
 
 
 
 
 
 
1894
  }
1895
 
1896
- .eae-layout-left .eae-tl-content-wrapper {
1897
- padding-right: 10px;
1898
- padding-left: 20px;
1899
  }
1900
- .eae-layout-left .eae-timline-progress-bar{
1901
- display: none;
 
 
1902
  }
1903
- .eae-layout-left .eae-tl-item-meta-wrapper{
1904
- display: none;
1905
  }
1906
- .eae-layout-left .eae-tl-item-meta-wrapper-inner{
1907
- display: block;
 
 
 
1908
  }
1909
 
1910
- .eae-layout-right .eae-timline-progress-bar{
1911
- display: none;
1912
  }
1913
- .eae-layout-right .eae-tl-content-wrapper {
1914
- padding-right: 20px;
1915
- padding-left: 10px;
 
 
 
 
 
1916
  }
1917
- .eae-layout-right .eae-tl-icon-wrapper{
1918
- order:3;
 
1919
  }
1920
- .eae-layout-right .eae-tl-item-meta-wrapper{
1921
- display: none;
1922
  }
1923
- .eae-layout-right .eae-tl-item-meta-wrapper-inner{
1924
- display: block;
1925
  }
1926
 
1927
  .eae-tl-item-meta-wrapper {
1928
- flex-grow: 1;
1929
- order: 0;
1930
- flex-basis: 50%;
1931
- flex-direction: initial;
1932
- justify-content: flex-end;
1933
- display: flex;
1934
- align-items: center;
1935
- margin-right: 0px;
1936
  }
1937
- .eae-tl-item-meta{
1938
- padding: 0px 20px;
1939
  }
1940
 
1941
  .eae-tl-icon-wrapper {
1942
- height: auto;
1943
- width: auto;
1944
- flex-grow: 0;
1945
- flex-shrink: 0;
1946
- order: 1;
1947
- margin-left: 0px;
1948
- margin-right: 0px;
1949
- min-width: 10px;
1950
- min-height: 10px;
1951
- border-radius: 999px;
1952
- position: relative;
1953
- display: -ms-flexbox;
1954
- display: flex;
1955
- -ms-flex-align: center;
1956
- align-items: center;
1957
- -ms-flex-pack: center;
1958
- justify-content: center;
1959
  }
1960
 
1961
  .eae-tl-content-wrapper {
1962
- flex-grow: 1;
1963
- order: 2;
1964
- flex-basis: 50%;
1965
- position: relative;
1966
- padding-right: 0px;
1967
- padding-left: 20px;
1968
- }
1969
- .eae-tl-item-content{
1970
- background: #f4f4f4;
1971
- padding: 25px;
1972
- overflow: hidden;
1973
- text-align: center;
1974
- display: flex;
1975
- flex-direction: row;
1976
- }
1977
- .eae-tl-content{
1978
- display: inline-block;
1979
- position: relative;
1980
- padding: 10px;
1981
- width: 100%;
1982
- color: #000;
1983
- }
1984
-
1985
- .image-position-row .eae-timeline .eae-timeline-item:not(.custom-image-style-yes) .eae-content-inner,
1986
- .image-position-row-reverse .eae-timeline .eae-timeline-item:not(.custom-image-style-yes) .eae-content-inner,
1987
- .eae-timeline-item.custom-image-style-yes.image-position-row .eae-content-inner,.eae-timeline-item.custom-image-style-yes.image-position-row-reverse .eae-content-inner
1988
- {
1989
- position: relative;
1990
- left: 50%;
1991
- top: 50%;
1992
- transform: translate(-50%, -50%);
1993
- line-height: 1;
1994
- width: 100%;
 
 
 
 
 
 
 
1995
  }
1996
  .custom-image-style-.image-position-row .eae-content-inner,
1997
  .custom-image-style-.image-position-row-reverse .eae-content-inner,
1998
  .custom-image-style-no.image-position-row .eae-content-inner,
1999
- .custom-image-style-no.image-position-row-reverse .eae-content-inner{
2000
- left: unset;
2001
- top: unset;
2002
- transform: unset;
2003
  }
2004
- .eae-tl-item-image{
2005
- display: inline-block;
2006
  }
2007
 
2008
- .image-position-row .eae-tl-item-image img, .image-position-row-reverse .eae-tl-item-image img{
2009
- object-fit: cover;
2010
- height: 100% !important;
 
2011
  }
2012
- .image-position-row .eae-tl-item-image,.image-position-row-reverse .eae-tl-item-image{
2013
- margin: 0px;
 
2014
  }
2015
- .image-position-column .eae-tl-item-image{
2016
- margin : auto;
2017
  }
2018
  .custom-image-style-no.image-position-column .eae-tl-item-image,
2019
- .custom-image-style-.image-position-column .eae-tl-item-image{
2020
- margin : 0 auto;
2021
  }
2022
 
2023
- .eae-pb-inner-line{
2024
- width: 100%;
2025
- background-color: #3d5ac3;
2026
  }
2027
 
2028
  .eae-tl-item-content::before {
2029
- content: '';
2030
- position: absolute;
2031
- width: 0;
2032
- height: 0;
2033
- border-style: solid;
2034
- border-width: 8px 16px 8px 0;
2035
- border-color: transparent #f4f4f4 transparent transparent;
2036
  }
2037
 
2038
-
2039
- .eae-icon-wrapper{
2040
- display: flex;
2041
  }
2042
 
2043
- .elementor-widget-bpel-timeline .eae-icon-wrapper{
2044
- position: absolute;
2045
- left: 50%;
2046
- top: 50%;
2047
- transform: translate(-50%, -50%);
2048
- line-height: 1;
2049
  }
2050
 
2051
- .eae-tl-read-more{
2052
- display: inline-block;
2053
- padding: 5px;
2054
- border: 2px solid #000000;
2055
  }
2056
- .image-position-row .eae-timeline.eae-timeline-alternate-yes .eae-timeline-item:nth-child(odd):not(.custom-image-style-yes) .eae-tl-item-content{
2057
- flex-direction: row-reverse !important;
 
 
 
2058
  }
2059
- .image-position-row-reverse .eae-timeline.eae-timeline-alternate-yes .eae-timeline-item:nth-child(odd):not(.custom-image-style-yes) .eae-tl-item-content{
2060
- flex-direction: row !important;
 
 
 
2061
  }
2062
  @media screen and (min-width: 1024px) {
2063
- .eae-layout-right .eae-tl-item-content::before,
2064
- .eae-layout-center .eae-timeline-item:nth-child(odd) .eae-tl-item-content::before{
2065
- right: 4px;
2066
- border-width: 8px 0 8px 16px;
2067
- border-color: transparent transparent transparent #f4f4f4;
2068
- }
2069
-
2070
- .eae-layout-left .eae-tl-item-content::before,
2071
- .eae-layout-center .eae-timeline-item:nth-child(even) .eae-tl-item-content::before{
2072
- left: 4px;
2073
- border-width: 8px 16px 8px 0;
2074
- border-color: transparent #f4f4f4 transparent transparent;
2075
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2076
  }
2077
  @media screen and (max-width: 1023px) and (min-width: 768px) {
2078
- .image-position-row .eae-timeline.eae-timeline-alternate-yes .eae-timeline-item:nth-child(odd):not(.custom-image-style-yes) .eae-tl-item-content{
2079
- flex-direction: row-reverse !important;
2080
- }
2081
- .image-position-row-reverse .eae-timeline.eae-timeline-alternate-yes .eae-timeline-item:nth-child(odd):not(.custom-image-style-yes) .eae-tl-item-content{
2082
- flex-direction: row !important;
2083
- }
2084
-
2085
- .eae-tl-res-style-mobile-tablet .eae-tl-item-meta-wrapper{
2086
- display: none;
2087
- }.eae-tl-res-style-mobile-tablet .eae-tl-item-meta-wrapper-inner{
2088
- display: block;
2089
- }
2090
- .eae-tl-res-style-mobile-tablet.eae-tl-res-layout-left .eae-timeline-item{
2091
- flex-direction: row !important;
2092
- }
2093
- .eae-tl-res-style-mobile-tablet.eae-tl-res-layout-right .eae-timeline-item{
2094
- flex-direction: row-reverse !important;
2095
- }
2096
-
2097
- .eae-layout-center.eae-tl-res-style-mobile-tablet.eae-tl-res-layout-left .eae-timeline-item .eae-tl-item-content::before,
2098
- .eae-timeline.eae-layout-center.eae-tl-res-style-mobile .eae-timeline-item:nth-child(even) .eae-tl-item-content::before,
2099
- .eae-layout-left .eae-tl-item-content::before,
2100
- .eae-layout-left .eae-timeline-item .eae-tl-item-content::before{
2101
- left: 4px !important;
2102
- border-width: 8px 16px 8px 0 !important;
2103
- border-color: transparent #f4f4f4 transparent transparent !important;
2104
- }
2105
 
2106
- .eae-layout-right .eae-timeline-item .eae-tl-item-content::before,
2107
- .eae-layout-right .eae-tl-item-content::before,
2108
- .eae-timeline.eae-layout-center.eae-tl-res-style-mobile .eae-timeline-item:nth-child(odd) .eae-tl-item-content::before,
2109
- .eae-layout-center.eae-tl-res-style-mobile-tablet.eae-tl-res-layout-right .eae-timeline-item .eae-tl-item-content::before,
2110
- .eae-tl-res-style-mobile-tablet.eae-tl-res-layout-right .eae-timeline-item .eae-tl-item-content::before{
2111
- right: 4px !important;
2112
- border-width: 8px 0 8px 16px !important;
2113
- border-color: transparent transparent transparent #f4f4f4 !important;
2114
- }
2115
- .eae-tl-res-style-mobile-tablet.eae-layout-center.eae-tl-res-layout-left .eae-timeline-item .eae-tl-content-wrapper{
2116
- padding-right: 0px !important;
2117
- padding-left: 20px !important;
2118
- }
2119
- .eae-tl-res-style-mobile-tablet.eae-layout-center.eae-tl-res-layout-right .eae-timeline-item .eae-tl-content-wrapper{
2120
- padding-right: 20px !important;
2121
- padding-left: 0px !important;
2122
- }
2123
- .eae-tl-res-style-mobile-tablet.eae-layout-center.eae-tl-res-layout-left .eae-timline-progress-bar{
2124
- left: 13px;
2125
- }
2126
- .eae-tl-res-style-mobile-tablet.eae-layout-center.eae-tl-res-layout-right .eae-timline-progress-bar{
2127
- left: calc(100% - 13px);
2128
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2129
  }
2130
 
2131
  @media screen and (max-width: 767px) {
2132
- .eae-tl-item-meta-wrapper{
2133
- display: none;
2134
- }
2135
- .eae-tl-item-meta-wrapper-inner{
2136
- display: block;
2137
- }
2138
-
2139
- .elementor-widget-bpel-timeline:not(.image-position-column) .eae-timeline .eae-tl-item-content{
2140
- flex-direction: column-reverse !important;
2141
- }
2142
- .elementor-widget-bpel-timeline:not(.image-position-column) .eae-tl-content,.eae-tl-item-image{
2143
- width : 100% !important;
2144
- }
2145
- .eae-tl-res-style-mobile.eae-tl-res-layout-left .eae-timeline-item,
2146
- .eae-tl-res-style-mobile-tablet.eae-tl-res-layout-left .eae-timeline-item{
2147
- flex-direction: row !important;
2148
- }
2149
- .eae-tl-res-style-mobile-tablet.eae-tl-res-layout-right .eae-timeline-item,
2150
- .eae-tl-res-style-mobile.eae-tl-res-layout-right .eae-timeline-item{
2151
- flex-direction: row-reverse !important;
2152
- }
2153
-
2154
- .eae-tl-res-style-mobile.eae-tl-res-layout-left .eae-timeline-item .eae-tl-item-content::before,
2155
- .eae-tl-res-style-mobile-tablet.eae-tl-res-layout-left .eae-timeline-item .eae-tl-item-content::before,
2156
- .eae-layout-left .eae-timeline-item .eae-tl-item-content::before,
2157
- .eae-timeline.eae-layout-center.eae-tl-center.eae-tl-res-style-mobile.eae-tl-res-layout-left .eae-timeline-item:nth-child(odd) .eae-tl-item-content::before,
2158
- .eae-timeline.eae-layout-center.eae-tl-center.eae-tl-res-style-mobile-tablet.eae-tl-res-layout-left .eae-timeline-item:nth-child(odd) .eae-tl-item-content::before
2159
- {
2160
- left: 4px !important;
2161
- border-width: 8px 16px 8px 0 !important;
2162
- border-color: transparent #f4f4f4 transparent transparent !important;
2163
- }
2164
- .eae-tl-res-style-mobile-tablet.eae-tl-res-layout-right .eae-timeline-item .eae-tl-item-content::before,
2165
- .eae-tl-res-style-mobile.eae-tl-res-layout-right .eae-timeline-item .eae-tl-item-content::before,
2166
- .eae-layout-right .eae-timeline-item .eae-tl-item-content::before{
2167
- right: 4px !important;
2168
- border-width: 8px 0 8px 16px !important;
2169
- border-color: transparent transparent transparent #f4f4f4 !important;
2170
- }
2171
- .eae-tl-res-style-mobile.eae-layout-center.eae-tl-res-layout-left .eae-timeline-item .eae-tl-content-wrapper,
2172
- .eae-tl-res-style-mobile-tablet.eae-layout-center.eae-tl-res-layout-left .eae-timeline-item .eae-tl-content-wrapper{
2173
- padding-right: 0px !important;
2174
- padding-left: 20px !important;
2175
- }
2176
- .eae-tl-res-style-mobile.eae-layout-center.eae-tl-res-layout-right .eae-timeline-item .eae-tl-content-wrapper,
2177
- .eae-tl-res-style-mobile-tablet.eae-layout-center.eae-tl-res-layout-right .eae-timeline-item .eae-tl-content-wrapper{
2178
- padding-right: 20px !important;
2179
- padding-left: 0px !important;
2180
- }
2181
- .eae-tl-res-style-mobile.eae-layout-center.eae-tl-res-layout-left .eae-timline-progress-bar,
2182
- .eae-tl-res-style-mobile-tablet.eae-layout-center.eae-tl-res-layout-left .eae-timline-progress-bar{
2183
- left: 13px;
2184
- }
2185
- .eae-tl-res-style-mobile.eae-layout-center.eae-tl-res-layout-right .eae-timline-progress-bar,
2186
- .eae-tl-res-style-mobile-tablet.eae-layout-center.eae-tl-res-layout-right .eae-timline-progress-bar{
2187
- left: calc(100% - 13px);
2188
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2189
  }
2190
 
2191
  /** EverGreen Timer **/
2192
 
2193
- [data-element_type="eae-evergreen-timer.skin1"] .eae-evergreen-wrapper{
2194
- display: block;
2195
- text-align: center;
2196
  }
2197
- [data-element_type="eae-evergreen-timer.skin1"] #eaeclockdiv{
2198
- font-family: sans-serif;
2199
- color: #fff;
2200
- display: inline-block;
2201
- font-weight: 100;
2202
- text-align: center;
2203
- font-size: 30px;
2204
  }
2205
 
2206
- [data-element_type="eae-evergreen-timer.skin1"] .eae-time-wrapper{
2207
- padding: 10px;
2208
- border-radius: 3px;
2209
- background: #00BF96;
2210
- display: inline-block;
2211
- overflow: hidden;
2212
  }
2213
 
2214
- [data-element_type="eae-evergreen-timer.skin1"] #eaeclockdiv div > span{
2215
- padding: 15px;
2216
- width: 100% ;
2217
- background: #00816A;
2218
- display: inline-block;
2219
  }
2220
 
2221
- [data-element_type="eae-evergreen-timer.skin1"] .smalltext{
2222
- padding: 7px;
2223
- font-size: 16px;
2224
  }
2225
 
2226
- [data-element_type="eae-evergreen-timer.skin1"] .eae-egt-hide{
2227
- display : none;
2228
  }
2229
 
2230
  .eae-egt-message {
2231
- display: none;
2232
  }
2233
 
2234
- @media screen and (max-width: 767px){
2235
- [data-element_type="eae-evergreen-timer.skin1"] #eaeclockdiv div > span{
2236
- padding: 5px;
2237
- }
2238
 
2239
- [data-element_type="eae-evergreen-timer.skin1"] .eae-time-wrapper {
2240
- padding: 5px;
2241
- }
2242
  }
2243
 
2244
  /* Skin 2 - Flip Clock Css*/
2245
 
2246
  [data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper * {
2247
- -webkit-box-sizing: border-box;
2248
- -moz-box-sizing: border-box;
2249
- -ms-box-sizing: border-box;
2250
- -o-box-sizing: border-box;
2251
- box-sizing: border-box;
2252
- -webkit-backface-visibility: hidden;
2253
- -moz-backface-visibility: hidden;
2254
- -ms-backface-visibility: hidden;
2255
- -o-backface-visibility: hidden;
2256
- backface-visibility: hidden;
2257
- }
2258
- [data-element_type="eae-evergreen-timer.skin2"] .eae-evergreen-wrapper{
2259
- display: inline-block;
2260
- width: 100%;
2261
- text-align: center;
2262
- margin: auto;
2263
  }
2264
- [data-element_type="eae-evergreen-timer.skin2"] .timer-container{
2265
- display: inline-block;
2266
  }
2267
  [data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper a {
2268
- cursor: pointer;
2269
- text-decoration: none;
2270
- color: #ccc;
2271
  }
2272
 
2273
- [data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper a:hover {
2274
- color: #fff;
 
 
2275
  }
2276
 
2277
  [data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper ul {
2278
- list-style: none;
2279
  }
2280
 
2281
- [data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper.clearfix:before,
2282
- [data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper.clearfix:after {
2283
- content: " ";
2284
- display: table;
 
 
2285
  }
2286
 
2287
- [data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper.clearfix:after {
2288
- clear: both;
 
2289
  }
2290
 
2291
- [data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper.clearfix {
2292
- *zoom: 1;
 
2293
  }
2294
 
2295
  /* Main */
2296
  [data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper {
2297
- font: normal 11px "Helvetica Neue", Helvetica, sans-serif;
2298
- -webkit-user-select: none;
2299
- }
2300
-
2301
- [data-element_type="eae-evergreen-timer.skin2"] .flip-clock-meridium {
2302
- background: none !important;
2303
- box-shadow: 0 0 0 !important;
2304
- font-size: 36px !important;
2305
- }
2306
-
2307
- [data-element_type="eae-evergreen-timer.skin2"] .flip-clock-meridium a {
2308
- color: #313333;
2309
- }
2310
-
2311
- [data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper {
2312
- text-align: center;
2313
- position: relative;
2314
- width: 100%;
2315
- margin: 1em;
2316
- }
2317
-
2318
- [data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper:before,
2319
- [data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper:after {
2320
- content: " "; /* 1 */
2321
- display: table; /* 2 */
2322
- }
2323
- [data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper:after {
2324
- clear: both;
2325
- }
2326
-
2327
- /* Skeleton */
2328
- [data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper ul {
2329
- position: relative;
2330
- float: left;
2331
- margin: 5px;
2332
- width: 60px;
2333
- height: 90px;
2334
- font-size: 80px;
2335
- font-weight: bold;
2336
- line-height: 87px;
2337
- border-radius: 6px;
2338
- background: #000;
2339
- }
2340
-
2341
- [data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper ul li {
2342
- z-index: 1;
2343
- position: absolute;
2344
- left: 0;
2345
- top: 0;
2346
- width: 100%;
2347
- height: 100%;
2348
- line-height: 87px;
2349
- text-decoration: none !important;
2350
- }
2351
-
2352
- [data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper ul li:first-child {
2353
- z-index: 2;
2354
- }
2355
-
2356
- [data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper ul li a {
2357
- display: block;
2358
- height: 100%;
2359
- -webkit-perspective: 200px;
2360
- -moz-perspective: 200px;
2361
- perspective: 200px;
2362
- margin: 0 !important;
2363
- overflow: visible !important;
2364
- cursor: default !important;
2365
  }
2366
 
2367
- [data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper ul li a div {
2368
- z-index: 1;
2369
- position: absolute;
2370
- left: 0;
2371
- width: 100%;
2372
- height: 50%;
2373
- font-size: 80px;
2374
- overflow: hidden;
2375
- outline: 1px solid transparent;
2376
  }
2377
 
2378
- [data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper ul li a div .shadow {
2379
- position: absolute;
2380
- width: 100%;
2381
- height: 100%;
2382
- z-index: 2;
2383
  }
2384
 
2385
- [data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper ul li a div.up {
2386
- -webkit-transform-origin: 50% 100%;
2387
- -moz-transform-origin: 50% 100%;
2388
- -ms-transform-origin: 50% 100%;
2389
- -o-transform-origin: 50% 100%;
2390
- transform-origin: 50% 100%;
2391
- top: 0;
2392
  }
2393
 
2394
- [data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper ul li a div.up:after {
2395
- content: "";
2396
- position: absolute;
2397
- top: 44px;
2398
- left: 0;
2399
- z-index: 5;
2400
- width: 100%;
2401
- height: 3px;
2402
- background-color: #000;
2403
- background-color: rgba(0, 0, 0, 0.4);
2404
  }
2405
 
2406
- [data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper ul li a div.down {
2407
- -webkit-transform-origin: 50% 0;
2408
- -moz-transform-origin: 50% 0;
2409
- -ms-transform-origin: 50% 0;
2410
- -o-transform-origin: 50% 0;
2411
- transform-origin: 50% 0;
2412
- bottom: 0;
2413
- border-bottom-left-radius: 6px;
2414
- border-bottom-right-radius: 6px;
 
 
 
2415
  }
2416
 
2417
- [data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper ul li a div div.inn {
2418
- position: absolute;
2419
- left: 0;
2420
- z-index: 1;
2421
- width: 100%;
2422
- height: 200%;
2423
- color: #ccc;
2424
- text-shadow: 0 1px 2px #000;
2425
- text-align: center;
2426
- background-color: #333;
2427
- border-radius: 6px;
2428
- font-size: 70px;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2429
  }
2430
 
2431
- [data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper ul li a div.up div.inn {
2432
- top: 0;
 
 
 
 
 
 
2433
  }
2434
 
2435
- [data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper ul li a div.down div.inn {
2436
- bottom: 0;
 
 
 
 
 
 
2437
  }
2438
 
2439
  /* PLAY */
2440
- [data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper ul.play li.flip-clock-before {
2441
- z-index: 3;
 
 
 
2442
  }
2443
 
2444
  [data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper .flip {
2445
- box-shadow: 0 2px 5px rgba(0, 0, 0, 0.7);
2446
  }
2447
 
2448
- [data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper ul.play li.flip-clock-active {
2449
- -webkit-animation: asd 0.01s 0.49s linear both;
2450
- -moz-animation: asd 0.01s 0.49s linear both;
2451
- animation: asd 0.01s 0.49s linear both;
2452
- z-index: 5;
 
 
 
2453
  }
2454
 
2455
  [data-element_type="eae-evergreen-timer.skin2"] .flip-clock-divider {
2456
- float: left;
2457
- display: inline-block;
2458
- position: relative;
2459
- width: 20px;
2460
- height: 100px;
2461
  }
2462
 
2463
- [data-element_type="eae-evergreen-timer.skin2"] .flip-clock-divider:first-child {
2464
- width: 0;
 
2465
  }
2466
 
2467
  [data-element_type="eae-evergreen-timer.skin2"] .flip-clock-dot {
2468
- display: block;
2469
- background: #323434;
2470
- width: 10px;
2471
- height: 10px;
2472
- position: absolute;
2473
- border-radius: 50%;
2474
- box-shadow: 0 0 5px rgba(0, 0, 0, 0.5);
2475
- left: 5px;
2476
  }
2477
 
2478
- [data-element_type="eae-evergreen-timer.skin2"] .flip-clock-divider .flip-clock-label {
2479
- position: absolute;
2480
- top: -1.5em;
2481
- right: -86px;
2482
- color: black;
2483
- text-shadow: none;
 
 
2484
  }
2485
 
2486
- [data-element_type="eae-evergreen-timer.skin2"] .flip-clock-divider.minutes .flip-clock-label {
2487
- right: -88px;
 
 
2488
  }
2489
 
2490
- [data-element_type="eae-evergreen-timer.skin2"] .flip-clock-divider.seconds .flip-clock-label {
2491
- right: -91px;
 
 
2492
  }
2493
 
2494
  [data-element_type="eae-evergreen-timer.skin2"] .flip-clock-dot.top {
2495
- top: 30%;
2496
  }
2497
 
2498
  [data-element_type="eae-evergreen-timer.skin2"] .flip-clock-dot.bottom {
2499
- bottom: 30%;
2500
  }
2501
 
2502
  @-webkit-keyframes asd {
2503
- 0% {
2504
- z-index: 2;
2505
- }
2506
 
2507
- 100% {
2508
- z-index: 4;
2509
- }
2510
  }
2511
 
2512
  @-moz-keyframes asd {
2513
- 0% {
2514
- z-index: 2;
2515
- }
2516
 
2517
- 100% {
2518
- z-index: 4;
2519
- }
2520
  }
2521
 
2522
  @-o-keyframes asd {
2523
- 0% {
2524
- z-index: 2;
2525
- }
2526
 
2527
- 100% {
2528
- z-index: 4;
2529
- }
2530
  }
2531
 
2532
  @keyframes asd {
2533
- 0% {
2534
- z-index: 2;
2535
- }
2536
 
2537
- 100% {
2538
- z-index: 4;
2539
- }
2540
  }
2541
 
2542
- [data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper ul.play li.flip-clock-active .down {
2543
- z-index: 2;
2544
- -webkit-animation: turn 0.5s 0.5s linear both;
2545
- -moz-animation: turn 0.5s 0.5s linear both;
2546
- animation: turn 0.5s 0.5s linear both;
 
 
 
 
2547
  }
2548
 
2549
  @-webkit-keyframes turn {
2550
- 0% {
2551
- -webkit-transform: rotateX(90deg);
2552
- }
2553
 
2554
- 100% {
2555
- -webkit-transform: rotateX(0deg);
2556
- }
2557
  }
2558
 
2559
  @-moz-keyframes turn {
2560
- 0% {
2561
- -moz-transform: rotateX(90deg);
2562
- }
2563
 
2564
- 100% {
2565
- -moz-transform: rotateX(0deg);
2566
- }
2567
  }
2568
 
2569
  @-o-keyframes turn {
2570
- 0% {
2571
- -o-transform: rotateX(90deg);
2572
- }
2573
 
2574
- 100% {
2575
- -o-transform: rotateX(0deg);
2576
- }
2577
  }
2578
 
2579
  @keyframes turn {
2580
- 0% {
2581
- transform: rotateX(90deg);
2582
- }
2583
 
2584
- 100% {
2585
- transform: rotateX(0deg);
2586
- }
2587
  }
2588
 
2589
- [data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper ul.play li.flip-clock-before .up {
2590
- z-index: 2;
2591
- -webkit-animation: turn2 0.5s linear both;
2592
- -moz-animation: turn2 0.5s linear both;
2593
- animation: turn2 0.5s linear both;
 
 
 
 
2594
  }
2595
 
2596
  @-webkit-keyframes turn2 {
2597
- 0% {
2598
- -webkit-transform: rotateX(0deg);
2599
- }
2600
 
2601
- 100% {
2602
- -webkit-transform: rotateX(-90deg);
2603
- }
2604
  }
2605
 
2606
  @-moz-keyframes turn2 {
2607
- 0% {
2608
- -moz-transform: rotateX(0deg);
2609
- }
2610
 
2611
- 100% {
2612
- -moz-transform: rotateX(-90deg);
2613
- }
2614
  }
2615
 
2616
  @-o-keyframes turn2 {
2617
- 0% {
2618
- -o-transform: rotateX(0deg);
2619
- }
2620
 
2621
- 100% {
2622
- -o-transform: rotateX(-90deg);
2623
- }
2624
  }
2625
 
2626
  @keyframes turn2 {
2627
- 0% {
2628
- transform: rotateX(0deg);
2629
- }
2630
 
2631
- 100% {
2632
- transform: rotateX(-90deg);
2633
- }
2634
  }
2635
 
2636
- [data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper ul li.flip-clock-active {
2637
- z-index: 3;
 
 
 
2638
  }
2639
 
2640
  /* SHADOW */
2641
- [data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper ul.play li.flip-clock-before .up .shadow {
2642
- background: -moz-linear-gradient(top, rgba(0, 0, 0, 0.1) 0%, black 100%);
2643
- background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, rgba(0, 0, 0, 0.1)), color-stop(100%, black));
2644
- background: linear, top, rgba(0, 0, 0, 0.1) 0%, black 100%;
2645
- background: -o-linear-gradient(top, rgba(0, 0, 0, 0.1) 0%, black 100%);
2646
- background: -ms-linear-gradient(top, rgba(0, 0, 0, 0.1) 0%, black 100%);
2647
- background: linear, to bottom, rgba(0, 0, 0, 0.1) 0%, black 100%;
2648
- -webkit-animation: show 0.5s linear both;
2649
- -moz-animation: show 0.5s linear both;
2650
- animation: show 0.5s linear both;
2651
- }
2652
-
2653
- [data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper ul.play li.flip-clock-active .up .shadow {
2654
- background: -moz-linear-gradient(top, rgba(0, 0, 0, 0.1) 0%, black 100%);
2655
- background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, rgba(0, 0, 0, 0.1)), color-stop(100%, black));
2656
- background: linear, top, rgba(0, 0, 0, 0.1) 0%, black 100%;
2657
- background: -o-linear-gradient(top, rgba(0, 0, 0, 0.1) 0%, black 100%);
2658
- background: -ms-linear-gradient(top, rgba(0, 0, 0, 0.1) 0%, black 100%);
2659
- background: linear, to bottom, rgba(0, 0, 0, 0.1) 0%, black 100%;
2660
- -webkit-animation: hide 0.5s 0.3s linear both;
2661
- -moz-animation: hide 0.5s 0.3s linear both;
2662
- animation: hide 0.5s 0.3s linear both;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2663
  }
2664
 
2665
  /*DOWN*/
2666
- [data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper ul.play li.flip-clock-before .down .shadow {
2667
- background: -moz-linear-gradient(top, black 0%, rgba(0, 0, 0, 0.1) 100%);
2668
- background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, black), color-stop(100%, rgba(0, 0, 0, 0.1)));
2669
- background: linear, top, black 0%, rgba(0, 0, 0, 0.1) 100%;
2670
- background: -o-linear-gradient(top, black 0%, rgba(0, 0, 0, 0.1) 100%);
2671
- background: -ms-linear-gradient(top, black 0%, rgba(0, 0, 0, 0.1) 100%);
2672
- background: linear, to bottom, black 0%, rgba(0, 0, 0, 0.1) 100%;
2673
- -webkit-animation: show 0.5s linear both;
2674
- -moz-animation: show 0.5s linear both;
2675
- animation: show 0.5s linear both;
2676
- }
2677
-
2678
- [data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper ul.play li.flip-clock-active .down .shadow {
2679
- background: -moz-linear-gradient(top, black 0%, rgba(0, 0, 0, 0.1) 100%);
2680
- background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, black), color-stop(100%, rgba(0, 0, 0, 0.1)));
2681
- background: linear, top, black 0%, rgba(0, 0, 0, 0.1) 100%;
2682
- background: -o-linear-gradient(top, black 0%, rgba(0, 0, 0, 0.1) 100%);
2683
- background: -ms-linear-gradient(top, black 0%, rgba(0, 0, 0, 0.1) 100%);
2684
- background: linear, to bottom, black 0%, rgba(0, 0, 0, 0.1) 100%;
2685
- -webkit-animation: hide 0.5s 0.3s linear both;
2686
- -moz-animation: hide 0.5s 0.3s linear both;
2687
- animation: hide 0.5s 0.2s linear both;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2688
  }
2689
 
2690
  @-webkit-keyframes show {
2691
- 0% {
2692
- opacity: 0;
2693
- }
2694
 
2695
- 100% {
2696
- opacity: 1;
2697
- }
2698
  }
2699
 
2700
  @-moz-keyframes show {
2701
- 0% {
2702
- opacity: 0;
2703
- }
2704
 
2705
- 100% {
2706
- opacity: 1;
2707
- }
2708
  }
2709
 
2710
  @-o-keyframes show {
2711
- 0% {
2712
- opacity: 0;
2713
- }
2714
 
2715
- 100% {
2716
- opacity: 1;
2717
- }
2718
  }
2719
 
2720
  @keyframes show {
2721
- 0% {
2722
- opacity: 0;
2723
- }
2724
 
2725
- 100% {
2726
- opacity: 1;
2727
- }
2728
  }
2729
 
2730
  @-webkit-keyframes hide {
2731
- 0% {
2732
- opacity: 1;
2733
- }
2734
 
2735
- 100% {
2736
- opacity: 0;
2737
- }
2738
  }
2739
 
2740
  @-moz-keyframes hide {
2741
- 0% {
2742
- opacity: 1;
2743
- }
2744
 
2745
- 100% {
2746
- opacity: 0;
2747
- }
2748
  }
2749
 
2750
  @-o-keyframes hide {
2751
- 0% {
2752
- opacity: 1;
2753
- }
2754
 
2755
- 100% {
2756
- opacity: 0;
2757
- }
2758
  }
2759
 
2760
  @keyframes hide {
2761
- 0% {
2762
- opacity: 1;
2763
- }
2764
 
2765
- 100% {
2766
- opacity: 0;
2767
- }
2768
  }
2769
 
2770
  @media screen and (max-width: 767px) {
2771
- [data-element_type="eae-evergreen-timer.skin2"] .flip-clock-divider{
2772
- width: 15px;
2773
- }
2774
- [data-element_type="eae-evergreen-timer.skin2"] .flip-clock-dot{
2775
- height:5px;
2776
- width: 5px;
2777
-
2778
- }
2779
- [data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper ul {
2780
- height: 40px;
2781
- }
2782
- [data-element_type="eae-evergreen-timer.skin2"] .flip-clock-divider{
2783
- height:50px;
2784
- }
2785
- [data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper ul li{
2786
- line-height: 37px;
2787
- }
2788
- [data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper ul li a div div.inn{
2789
- font-size: 24px;
2790
- }
2791
- [data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper ul{
2792
- margin: 2px;
2793
- }
2794
- /* [data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper ul {
 
 
 
 
 
 
 
 
2795
  position: relative;
2796
  float: left;
2797
  margin: 5px;
@@ -2880,1678 +3535,1991 @@ new comment
2880
  display: block;
2881
  text-align: center;
2882
  }*/
2883
- [data-element_type="eae-evergreen-timer.skin3"] #timer{
2884
- font-family: sans-serif;
2885
- color: #fff;
2886
- display: inline-block;
2887
- font-weight: 100;
2888
- text-align: center;
2889
- font-size: 30px;
2890
  }
2891
- [data-element_type="eae-evergreen-timer.skin3"] .desc{
2892
- display: flex;
2893
- justify-content: center;
2894
-
2895
  }
2896
- [data-element_type="eae-evergreen-timer.skin3"].eae-egt-content-align-right .desc{
2897
- justify-content: flex-end;
 
2898
  }
2899
- [data-element_type="eae-evergreen-timer.skin3"].eae-egt-content-align-left .desc{
2900
- justify-content: flex-start;
 
2901
  }
2902
- [data-element_type="eae-evergreen-timer.skin3"] .desc .egt-time-text{
2903
- display: inline-block;
2904
- padding: 0 50px 0 50px;
2905
  }
2906
 
2907
- [data-element_type="eae-evergreen-timer.skin3"] .eae-time-wrapper{
2908
- padding: 50px;
2909
- border-radius: 3px;
2910
- background: #00BF96;
2911
- display: inline-block;
2912
- overflow: hidden;
2913
- margin: 5px;
2914
- line-height: 1em;
2915
  }
2916
 
2917
  [data-element_type="eae-evergreen-timer.skin3"] #timer span:nth-child(1) {
2918
- background: khaki;
2919
  }
2920
 
2921
  [data-element_type="eae-evergreen-timer.skin3"] #timer span:nth-child(2) {
2922
- background: indianred;
2923
  }
2924
 
2925
  [data-element_type="eae-evergreen-timer.skin3"] #timer span:nth-child(3) {
2926
- background: cadetblue;
2927
  }
2928
 
2929
  [data-element_type="eae-evergreen-timer.skin3"] #timer span:nth-child(4) {
2930
- background: cornflowerblue;
2931
  }
2932
 
2933
  [data-element_type="eae-evergreen-timer.skin3"] .fade {
2934
- animation: flip 0.7s ease forwards;
2935
  }
2936
 
2937
  @keyframes flip {
2938
- 0% {
2939
- transform: rotateY(0) scaleY(1.1);
2940
- opacity: .5;
2941
- }
2942
- 50% {
2943
- transform: rotateY(180deg) scaleY(1.3);
2944
- opacity: 0;
2945
- }
2946
- 100% {
2947
- transform: rotateY(0);
2948
- opacity: 1;
2949
- }
2950
  }
2951
 
2952
  @media screen and (max-width: 767px) {
2953
- [data-element_type="eae-evergreen-timer.skin3"] #timer span{
2954
- font-size: 22px;
2955
- }
2956
- [data-element_type="eae-evergreen-timer.skin2"] .flip-clock-divider .flip-clock-label {
2957
- top: -1.5em;
2958
- right: -42px;
2959
- }
 
 
2960
 
2961
- [data-element_type="eae-evergreen-timer.skin2"] .flip-clock-divider.minutes .flip-clock-label {
2962
- right: -48px;
2963
- }
 
 
2964
 
2965
- [data-element_type="eae-evergreen-timer.skin2"] .flip-clock-divider.seconds .flip-clock-label {
2966
- right: -51px;
2967
- }
 
 
2968
  }
2969
 
2970
  /* Skin 4 - Digit Up Animation */
2971
  [data-element_type="eae-evergreen-timer.skin4"] .eae-evergreen-wrapper {
2972
- width: 100%;
2973
  }
2974
  [data-element_type="eae-evergreen-timer.skin4"] .container {
2975
- margin: 0 auto;
2976
  }
2977
  [data-element_type="eae-evergreen-timer.skin4"] .special {
2978
- position: relative;
2979
- width: 840px;
2980
- height: 47px;
2981
  }
2982
  [data-element_type="eae-evergreen-timer.skin4"] #counter {
2983
- position: absolute;
2984
- z-index: 4000;
2985
  }
2986
  [data-element_type="eae-evergreen-timer.skin4"] .digit-separator {
2987
- position: relative;
2988
- float: left;
2989
- width: 17px;
2990
- height: 44px;
2991
- overflow: hidden;
2992
- background-image: url('../digit-sep-svg.svg');
2993
- background-repeat: no-repeat;
2994
- background-position: 0px 0px;
2995
- background-color: #4054b2;
2996
  }
2997
  [data-element_type="eae-evergreen-timer.skin4"] .digit {
2998
- background-image: url('../digits-svg-alpha.svg');
2999
- background-color: #4054b2;
3000
  }
3001
 
3002
  /* Comparison Table */
3003
 
3004
  .eae-ct-wrapper * {
3005
- box-sizing:border-box;
3006
 
3007
- margin:0;
3008
- outline: 0;
3009
  }
3010
- article.eae-ct-wrapper{
3011
- width:100%;
3012
- max-width:1000px;
3013
- margin:0 auto;
3014
- position:relative;
3015
  }
3016
- .eae-ct-wrapper tbody tr.eae-ct-header td , .eae-ct-wrapper th{
3017
- position: relative;
 
3018
  }
3019
  .eae-ct-wrapper ul {
3020
- display:none;
3021
- top:0px;
3022
- z-index:10;
3023
- padding-bottom:14px;
3024
  }
3025
  .eae-ct-wrapper li {
3026
- list-style:none;
3027
- flex:1;
3028
- position: relative;
3029
  }
3030
  .eae-ct-wrapper li:hover {
3031
- cursor: pointer;
3032
  }
3033
  .eae-ct-wrapper li:last-child {
3034
- /*border-right:1px solid #DDD;*/
3035
  }
3036
  .eae-ct-wrapper .eae-ct-heading {
3037
- width:100%;
3038
- padding: 10px;
3039
- background:#FFF;
3040
- font-size:20px;
3041
- font-weight:bold;
3042
- height:60px;
3043
- color:#999;
3044
- text-align:center;
3045
- }
3046
- .eae-ct-wrapper li.eae-ct-heading .eae-ct-heading-inner{
3047
- position: absolute;
3048
- align-self: center;
3049
- top: 50%;
3050
- left: 50%;
3051
- transform: translate(-50%,-50%);
3052
- width: 100%;
3053
  }
3054
  .eae-ct-wrapper li.eae-ct-heading.active {
3055
- background:#F5F5F5;
3056
  }
3057
- .eae-ct-wrapper table { border-collapse:collapse; table-layout:fixed; width:100%; }
3058
- .eae-ct-wrapper th { background:#F5F5F5; display:none; }
3059
- .eae-ct-wrapper td,.eae-ct-wrapper th {
3060
- height:53px;
3061
- vertical-align: middle;
3062
  }
3063
- .eae-ct-wrapper table{
3064
- border:none;
 
3065
  }
3066
- /*.eae-ct-wrapper table tr td:first-child,.eae-ct-wrapper table tr td:last-child, .eae-ct-wrapper td,.eae-ct-wrapper td,.eae-ct-wrapper th { border:1px solid #DDD; padding:10px; empty-cells:show; }*/
3067
- .eae-ct-wrapper table th , .eae-ct-wrapper table td {
3068
- border:none;
 
3069
  }
3070
- .eae-ct-wrapper table tr td:first-child,.eae-ct-wrapper table tr td:last-child, .eae-ct-wrapper td,.eae-ct-wrapper td,.eae-ct-wrapper th { padding:10px; empty-cells:show; }
3071
- .eae-ct-wrapper td,.eae-ct-wrapper th {
3072
- text-align:center;
3073
  }
3074
- .eae-ct-wrapper td+td, .eae-ct-wrapper th+th {
3075
- text-align:center;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3076
  }
3077
- .eae-ct-wrapper tr:first-child{
3078
- background: none !important;
 
3079
  }
3080
- .eae-ct-wrapper ul li:nth-child(1){
3081
- display: table-cell;
3082
  }
3083
- .eae-ct-wrapper tr td:nth-child(2){
3084
- display: table-cell;
 
 
 
3085
  }
3086
 
3087
  .eae-ct-wrapper td:nth-child(1) {
3088
- display:table-cell;
 
 
 
3089
  }
3090
- .eae-ct-wrapper td{
3091
- display:none;
3092
- }
3093
  .eae-ct-wrapper .sep {
3094
- background:#F5F5F5;
3095
- font-weight:bold;
3096
  }
3097
  .eae-ct-price-wrapper {
3098
- display: flex;
3099
- justify-content: center;
3100
- }
3101
- .eae-ct-tt-type-icon .eae-ct-feature .tooltip{
3102
- float: right;
3103
- }
3104
- .eae-ct-wrapper .tooltiptext::before{
3105
- content: '';
3106
- border-width: 5px 5px 0 5px;
3107
- border-color: #fff;
3108
- border-left-color: transparent;
3109
- border-right-color: transparent;
3110
- border-bottom-color: transparent;
3111
- bottom: -10px;
3112
- width: 0;
3113
- height: 0;
3114
- border-style: solid;
3115
- position: absolute;
3116
- margin: 5px;
3117
- left: 42%;
3118
- }
3119
- .eae-ct-wrapper .eae-ct-price { font-size:28px; font-weight:bold; line-height: 1em;}
3120
- .eae-ct-wrapper .eae-ct-currency { align-self: flex-start; margin-right: 3px}
3121
- .eae-ct-wrapper .eae-ct-fractional-price { align-self: flex-start; margin-left: 3px}
3122
- .eae-ct-wrapper .eae-ct-duration { align-self: flex-start; }
3123
- .eae-ct-wrapper .eae-ct-original-price{
3124
- margin-right: 5px;
3125
- text-decoration: line-through;
3126
- align-self: flex-end;
3127
- }
3128
- .eae-ct-wrapper .tick { font-size:18px; color:#2CA01C; }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3129
  .feature-heading-blank.eae-ct-wrapper .hide {
3130
- border:unset !important;
3131
- background:unset !important;
3132
  }
3133
- .eae-ct-wrapper .hide.eae-ct-hide.eae-fbox-heading{
3134
- border : 0px solid black;
3135
  }
3136
  .eae-ct-ribbons-yes .eae-ct-ribbons-wrapper {
3137
- position: absolute;
3138
- top: 0;
3139
- /* -webkit-transform: rotate(90deg);
3140
  -ms-transform: rotate(90deg);*/
3141
- /* transform: rotate(90deg); */
3142
- width: 100px;
3143
- overflow: hidden;
3144
- height: 100px;
3145
- z-index: 998;
3146
- padding: 8px 12px;
3147
- }
3148
- .eae-ct-ribbons-h-top.eae-ct-ribbons-yes .eae-ct-ribbons-wrapper{
3149
- position: absolute;
3150
- top: 0;
3151
- width: 100%;
3152
- overflow: hidden;
3153
- height: 50px;
3154
- z-index: 999;
3155
- padding: 8px 12px;
3156
- }
3157
- .eae-ct-ribbons-h-top.eae-ct-ribbons-yes .eae-ct-ribbons-wrapper-top{
3158
- background-color: rgba(63,195,135,0.8);
3159
- color: #fff;
3160
- transform: translateY(-100%);
3161
- position: absolute;
3162
- width: 100%;
3163
- top: 0;
3164
- left: 0;
3165
  }
3166
  .eae-ct-ribbons-h-left.eae-ct-ribbons-yes .eae-ct-ribbons-wrapper {
3167
- -webkit-transform: rotate(0);
3168
- -ms-transform: rotate(0);
3169
- transform: rotate(0);
3170
- left: 0;
3171
- right: auto;
3172
  }
3173
  .eae-ct-ribbons-h-right.eae-ct-ribbons-yes .eae-ct-ribbons-wrapper {
3174
- -webkit-transform: rotate(0);
3175
- -ms-transform: rotate(0);
3176
- transform: rotate(90deg);
3177
- left: auto;
3178
- right: 0;
3179
  }
3180
 
3181
  .eae-ct-ribbons-yes .eae-ct-ribbons-wrapper span.eae-ct-ribbons-inner {
3182
- position: absolute;
3183
- text-align: center;
3184
- left: 0;
3185
- top: 0;
3186
- width: 200%;
3187
- -webkit-transform: translateY(-50%) translateX(-50%) translateX(35px) rotate(-45deg);
3188
- -ms-transform: translateY(-50%) translateX(-50%) translateX(35px) rotate(-45deg);
3189
- transform: translateY(-50%) translateX(-50%) translateX(35px) rotate(-45deg);
3190
- margin-top: 35px;
3191
- font-size: 13px;
3192
- line-height: 2;
3193
- font-weight: 800;
3194
- text-transform: uppercase;
3195
- background: rgba(63,195,135,0.8);
3196
- padding: 8px 12px;
3197
- color: #ffffff;
 
 
3198
  }
3199
  .eae-ct-wrapper .tooltip {
3200
- position: relative;
3201
- display: inline-block;
3202
  }
3203
 
3204
  .eae-ct-wrapper .tooltip .tooltiptext {
3205
- visibility: hidden;
3206
- min-width: 120px;
3207
- background-color: black;
3208
- color: #fff;
3209
- text-align: center;
3210
- border-radius: 6px;
3211
- padding: 5px 0;
3212
 
3213
- /* Position the tooltip */
3214
- position: absolute;
3215
- z-index: 1;
3216
- bottom: 120%;
3217
- left: 50%;
3218
- margin-left: -60px;
3219
  }
3220
 
3221
  .eae-ct-wrapper .tooltip:hover .tooltiptext {
3222
- visibility: visible;
3223
  }
3224
- .eae-ct-heading-tooltip{
3225
- text-decoration-line: underline;
3226
- text-decoration-style: dotted;
3227
  }
3228
- .eae-ct-btn{
3229
- padding: 10px 15px 10px 15px;
3230
- color: #fff;
3231
- display: inline-block;
3232
- line-height: 1em;
3233
  }
3234
- .eae-ct-btn:hover{
3235
- color: #fff;
3236
  }
3237
- .eae-ct-wrapper i.fa.fa-check , .eae-ct-wrapper i.fas.fa-check{
3238
- color: #38f146;
 
3239
  }
3240
- .eae-ct-wrapper i.fa.fa-close , .eae-ct-wrapper i.fas.fa-times{
3241
- color: #ff0000;
 
3242
  }
3243
 
3244
- .button-heading-blank.eae-ct-wrapper tr:last-child td:first-child{
3245
- background: none !important; border:none !important;
 
3246
  }
3247
 
3248
- .eae-ct-wrapper tr:last-child{
3249
- background: none !important;
3250
  }
3251
  tbody tr:nth-child(2) {
3252
- background: none !important;
3253
  }
3254
  @media (min-width: 767px) {
3255
- .eae-ct-wrapper td,.eae-ct-wrapper .eae-ct-header {
3256
- width: 330px;
3257
-
3258
- }
3259
- .eae-ct-wrapper td+td,.eae-ct-wrapper th+th {
3260
- width: auto;
3261
- }
 
3262
  }
3263
 
3264
- .eae-tab-format-all .eae-ct-wrapper ul{
3265
- display: flex;
 
 
 
3266
  }
3267
- .hide.eae-ct-hide{display: table-cell;}
3268
  @media (min-width: 1023px) {
3269
- .eae-tab-format-all tbody tr.eae-ct-header {
3270
- display: none;
3271
- }
3272
- .eae-tab-format-tab-mob .eae-ct-wrapper td, .eae-tab-format-tab-mob .eae-ct-wrapper th,
3273
- .eae-tab-format-mobile .eae-ct-wrapper td, .eae-tab-format-mobile .eae-ct-wrapper th {
3274
- display: table-cell !important;
3275
- }
3276
-
3277
- .eae-tab-format-all .hide.eae-ct-hide{display: table-cell;}
3278
- .eae-tab-format-tab-mob .hide.eae-ct-hide , .eae-tab-format-mobile .hide.eae-ct-hide{display: none !important;}
 
 
 
 
 
 
 
3279
  }
3280
  @media (max-width: 1023px) {
3281
- .eae-tab-format-tab-mob .eae-ct-wrapper ul{
3282
- display: flex;
3283
- }
3284
- /*.eae-tab-format-all .eae-ct-wrapper td+td,.eae-tab-format-all .eae-ct-wrapper th+th{*/
3285
- /* display: none;*/
3286
- /*}*/
3287
- .eae-tab-format-all tbody tr.eae-ct-header , .eae-tab-format-tab-mob tbody tr.eae-ct-header {
3288
- display: none;
3289
- }
 
3290
 
3291
- .eae-tab-format-all .hide.eae-ct-hide{display: table-cell;}
3292
- .eae-tab-format-tab-mob .hide.eae-ct-hide{display: table-cell ;}
 
 
 
 
3293
  }
3294
  @media (max-width: 1023px) and (min-width: 768px) {
3295
-
3296
- .eae-tab-format-mobile .eae-ct-wrapper td, .eae-tab-format-mobile .eae-ct-wrapper th {
3297
- display: table-cell !important;
3298
- }
3299
- /*[data-elementor-device-mode='tablet'] .eae-tab-format-mobile .eae-ct-hide.eae-fbox-heading{*/
3300
- /* display: none !important;*/
3301
- /*}*/
3302
-
3303
- .eae-tab-format-all tbody tr.eae-ct-header , .eae-tab-format-tab-mob tbody tr.eae-ct-header {
3304
- display: none;
3305
- }
3306
- .eae-tab-format-tab-mob .hide.eae-ct-hide{display: table-cell;}
 
 
 
3307
  }
3308
  @media (max-width: 767px) {
3309
- .eae-tab-format-mobile .eae-ct-wrapper ul{
3310
- display: flex;
3311
- }
3312
- .eae-tab-format-mobile tbody tr.eae-ct-header{
3313
- display: none;
3314
- }
3315
 
3316
- .eae-tab-format-mobile tbody tr.eae-ct-header , .eae-tab-format-all tbody tr.eae-ct-header{
3317
- display: none;
3318
- }
3319
- .eae-tab-format-mobile .hide.eae-ct-hide{display: table-cell;}
 
 
 
3320
  }
3321
 
3322
  /* Progress Bar */
3323
  .eae-progress-bar-wrapper {
3324
- display: flex;
3325
- flex-direction: column;
3326
- align-items: flex-start;
3327
- margin:15px 0;
3328
  }
3329
 
3330
  .eae-progress-bar-wrapper.eae-progress-bar {
3331
- width: 100%;
3332
- position: relative;
3333
- box-sizing: border-box;
3334
  }
3335
 
3336
  .eae-pb-bar,
3337
  .eae-pb-bar-inner,
3338
  .eae-pb-bar-value,
3339
  .eae-pb-bar-skill {
3340
- box-sizing: border-box;
3341
  }
3342
 
3343
- .eae-pb-bar{
3344
- position: relative;
3345
- height: 100%;
3346
- width: 100%;
3347
- overflow: hidden;
3348
  }
3349
 
3350
  .eae-pb-bar--no-overflow {
3351
- overflow: visible;
3352
  }
3353
 
3354
  .eae-pb-bar-inner {
3355
- position: absolute;
3356
- top: 0;
3357
- left: 0;
3358
- height: 100%;
3359
- -webkit-transform: scaleX(0);
3360
- transform: scaleX(0);
3361
- -webkit-transform-origin: left center;
3362
- transform-origin: left center;
 
 
 
 
 
 
 
 
 
 
3363
  }
3364
  .eae-pb-bar-inner.js-animated {
3365
- transition-property: all;
3366
- transition-duration: 1.5s;
3367
- transition-timing-function: cubic-bezier(0.1, 1.14, 0.31, 1.06);
3368
- transition-delay: 1.5s;
3369
- -webkit-transform: scaleX(1);
3370
- transform: scaleX(1);
 
 
 
 
 
 
 
 
3371
  }
3372
-
3373
  .eae-pb-bar-skill,
3374
  .eae-pb-bar-value {
3375
- font-size: 14px;
3376
- letter-spacing: 1px;
3377
  }
3378
 
3379
- .eae-pb-bar-value--aligned-value {
3380
- -webkit-transform: translateX(-50%);
3381
- transform: translateX(-50%);
 
 
 
 
3382
  }
3383
 
3384
  /* progress bar #1 styles */
3385
- .eae-progress-bar-skin1{
3386
- height: 20px;
3387
- padding: 4px;
3388
- border: 1px solid #dddddd;
3389
- border-radius: 20px;
3390
  }
3391
- .eae-pb-bar-skin1{
3392
- border-radius: 20px;
3393
  }
3394
  .eae-pb-bar-inner-skin1 {
3395
- background-color: #00BFB3;
3396
- background-size: 200%;
3397
- background-position: 0 0;
3398
- border-radius: 20px;
3399
  }
3400
 
3401
  .eae-pb-bar-skill-skin1 {
3402
- position: absolute;
3403
- bottom : 20px;
3404
- left: 0px;
3405
- opacity: 0;
 
 
 
3406
  }
3407
  .eae-pb-bar-skill-skin1.js-animated {
3408
- transition-property: all;
3409
- transition-duration: 0.5s;
3410
- transition-timing-function: linear;
3411
- transition-delay: 0.5s;
3412
- left: 0;
3413
- opacity: 1;
 
 
 
3414
  }
3415
 
3416
  .eae-pb-bar-value-skin1 {
3417
- position: absolute;
3418
- bottom : 20px;
3419
- opacity: 1;
3420
- right: 0;
3421
  }
3422
- .eae-pb-bar-value-skin1.js-animated {
3423
- transition-property: all;
3424
- transition-duration: 0.5s;
3425
- transition-timing-function: linear;
3426
- transition-delay: 0.5s;
3427
- right : 0;
3428
- opacity: 1;
3429
  }
3430
 
3431
-
 
 
 
 
 
 
 
 
 
3432
 
3433
  /* progress bar #2 styles */
3434
  .eae-progress-bar-skin2 {
3435
- height: 15px;
3436
- box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.12), 0 1px 5px 0 rgba(0, 0, 0, 0.2);
3437
- border-radius: 3px;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3438
  }
3439
 
3440
  @-webkit-keyframes progress-2-bg-animation {
3441
- 0% {
3442
- background-position: 0 0, 0 0;
3443
- }
3444
- 100% {
3445
- background-position: 0 0, 42px 0;
3446
- }
3447
  }
3448
 
3449
  @keyframes progress-2-bg-animation {
3450
- 0% {
3451
- background-position: 0 0, 0 0;
3452
- }
3453
- 100% {
3454
- background-position: 0 0, 42px 0;
3455
- }
3456
- }
3457
- .eae-pb-bar-inner-skin2 {
3458
- background-image: linear-gradient(to top, rgba(255, 255, 255, 0.15), rgba(0, 0, 0, 0.2)), linear-gradient(135deg, #5EEB5B, #5EEB5B 33%, #358600 33%, #358600 66%, #5EEB5B 66%);
3459
- background-size: 100% 100%, 42px 100%;
3460
  background-position: 0 0, 0 0;
3461
- border-radius: 3px;
 
 
 
3462
  }
3463
- .eae-pb-bar-inner-skin2.js-animated {
3464
- -webkit-animation: progress-2-bg-animation 1.5s linear 0s infinite;
3465
- animation: progress-2-bg-animation 1.5s linear 0s infinite;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3466
  }
3467
 
3468
  .eae-pb-bar-skill-skin2 {
3469
- position: absolute;
3470
- left: 0;
3471
- opacity: 0;
 
 
 
 
 
3472
  }
 
3473
  .eae-pb-bar-skill-skin2.js-animated {
3474
- transition-property: all;
3475
- transition-duration: 0.5s;
3476
- transition-timing-function: linear;
3477
- transition-delay: 0.5s;
3478
- bottom : 20px;
3479
- opacity: 1;
3480
  }
3481
 
3482
  .eae-pb-bar-value-skin2 {
3483
- position: absolute;
3484
- right: 0;
3485
- opacity: 0;
 
 
3486
  }
 
 
 
 
3487
  .eae-pb-bar-value-skin2.js-animated {
3488
- transition-property: all;
3489
- transition-duration: 0.5s;
3490
- transition-timing-function: linear;
3491
- transition-delay: 0.5s;
3492
- bottom : 20px;
3493
- opacity: 1;
3494
  }
3495
 
3496
  /* Progress Bar Skin 3*/
3497
 
3498
  .eae-progress-bar-skin3 {
3499
- height: 5px;
3500
- background-color: #efefef;
3501
  }
3502
- .eae-pb-bar-value-skin3 , .eae-pb-bar-inner-skin3{
3503
- background-color: #F40076;
 
3504
  }
3505
- .eae-pb-bar-value-skin3:after , .eae-pb-bar-inner:after{
3506
- border-top-color : #F40076;
 
3507
  }
3508
 
3509
  .eae-pb-bar-skill-skin3 {
3510
- position: absolute;
3511
- bottom : 10px;
3512
- left: -10px;
3513
- opacity: 0;
3514
  }
3515
  .eae-pb-bar-skill-skin3.js-animated {
3516
- transition-property: all;
3517
- transition-duration: 0.5s;
3518
- transition-timing-function: linear;
3519
- transition-delay: 0.5s;
3520
- left: 0;
3521
- opacity: 1;
 
 
 
 
 
3522
  }
3523
 
3524
  .eae-pb-bar-value-skin3 {
3525
- position: absolute;
3526
- display: inline-block;
3527
- padding: 0px 8px;
3528
- font-size: 14px;
3529
- color: #fff;
3530
- opacity: 0;
3531
  }
3532
  .eae-pb-bar-value-skin3:after {
3533
- position: absolute;
3534
- left: 50%;
3535
- bottom: -10px;
3536
- display: block;
3537
- width: 0;
3538
- height: 0;
3539
- content: '';
3540
- -webkit-transform: translateX(-50%);
3541
- transform: translateX(-50%);
3542
- border-width: 5px;
3543
- border-style: solid;
3544
- border-color: #F40076 transparent transparent transparent;
3545
  }
3546
  .eae-pb-bar-inner-skin3.js-animated {
3547
- transition-property: all;
3548
- transition-duration: 1.5s;
3549
- transition-timing-function: cubic-bezier(0.1, 1.14, 0.31, 1.06);
3550
- transition-delay: 1.5s;
3551
- -webkit-transform: scaleX(1);
3552
- transform: scaleX(1);
3553
  }
3554
  .eae-pb-bar-value-skin3.js-animated {
3555
- transition-property: all;
3556
- transition-duration: 1.5s;
3557
- transition-timing-function: cubic-bezier(0.1, 1.14, 0.31, 1.06);
3558
- transition-delay: 2s;
3559
- bottom : 14px;
3560
- opacity: 1;
3561
  }
3562
 
3563
  /* Progress Bar Skin 4 */
3564
  .eae-progress-bar-skin4 {
3565
- height: 3px;
3566
- background-color: #efefef;
3567
  }
3568
 
3569
  .eae-pb-bar-inner-skin4 {
3570
- background-color: #000;
3571
  }
3572
  .eae-pb-bar-inner-skin4:after {
3573
- position: absolute;
3574
- top: 50%;
3575
- right: 0;
3576
- display: block;
3577
- width: 8px;
3578
- height: 8px;
3579
- content: '';
3580
- -webkit-transform: translateY(-50%);
3581
- transform: translateY(-50%);
3582
- background-color: #000;
3583
- border-radius: 50%;
 
 
 
 
 
3584
  }
3585
-
3586
  .eae-pb-bar-value-skin4 {
3587
- position: absolute;
3588
- bottom : 2px;
3589
- font-size: 14px;
3590
- opacity: 0;
3591
  }
3592
  .eae-pb-bar-value-skin4.js-animated {
3593
- transition-property: all;
3594
- transition-duration: 1.5s;
3595
- transition-timing-function: linear;
3596
- transition-delay: 1.5s;
3597
- opacity: 1;
3598
  }
3599
 
3600
  .eae-pb-bar-skill-skin4 {
3601
- position: absolute;
3602
- bottom : 2px;
3603
- left: -20px;
3604
- opacity: 0;
3605
  }
3606
  .eae-pb-bar-skill-skin4.js-animated {
3607
- transition-property: all;
3608
- transition-duration: 0.5s;
3609
- transition-timing-function: linear;
3610
- transition-delay: 0.5s;
3611
- left: 0;
3612
- opacity: 1;
 
 
 
 
 
3613
  }
3614
 
3615
  /* Progress Bar Skin 5 */
3616
  .eae-progress-bar-skin5 {
3617
- height: 30px;
3618
- background-color: #f7f7f7;
3619
  }
3620
 
3621
- .eae-pb-bar-inner-skin5{
3622
- background-color: #57B8FF;
3623
  }
3624
 
3625
  .eae-pb-bar-skill-skin5 {
3626
- position: absolute;
3627
- top: 50%;
3628
- left: 10px;
3629
- color: #fff;
3630
- -webkit-transform: translateY(-50%);
3631
- transform: translateY(-50%);
3632
- opacity: 0;
 
 
 
 
 
3633
  }
3634
  .eae-pb-bar-skill-skin5.js-animated {
3635
- transition-property: all;
3636
- transition-duration: 0.5s;
3637
- transition-timing-function: linear;
3638
- transition-delay: .5s;
3639
- opacity: 1;
3640
  }
3641
 
3642
  .eae-pb-bar-value-skin5 {
3643
- position: absolute;
3644
- top: 50%;
3645
- color: #fff;
3646
- -webkit-transform: translateX(-100%) translateX(-10px) translateY(-50%);
3647
- transform: translateX(-100%) translateX(-10px) translateY(-50%);
3648
- opacity: 0;
3649
- z-index: 10;
 
 
 
 
 
 
3650
  }
3651
  .eae-pb-bar-value-skin5.js-animated {
3652
- transition-property: all;
3653
- transition-duration: 1.5s;
3654
- transition-timing-function: linear;
3655
- transition-delay: 1.5s;
3656
- opacity: 1;
3657
  }
3658
 
3659
  /* EAE Dual Button */
3660
- .eae-dual-button-wrapper .eae-button-1-wrapper,.eae-dual-button-wrapper .eae-button-2-wrapper{
3661
- overflow: hidden;
 
3662
  }
3663
 
3664
- .eae-dual-button-wrapper.button-style-horizontal{
3665
- display: flex;
3666
- flex-direction: row;
3667
- position: relative;
3668
  }
3669
- .eae-dual-button-main-wrapper{
3670
- display: flex;
3671
- flex-direction: row;
3672
- justify-content: center;
3673
  }
3674
- .eae-dual-button-wrapper a{
3675
- min-width: 0px;
3676
  }
3677
- .eae-dual-button-wrapper.button-style-vertical{
3678
- display: inline-flex;
3679
- flex-direction: column;
3680
- position: relative;
3681
  }
3682
- .eae-button-1.icon-before, .eae-button-2.icon-before {
3683
- display: flex;
3684
- flex-direction: row;
 
3685
  }
3686
- .eae-button-1.icon-after, .eae-button-2.icon-after{
3687
- display: flex;
3688
- flex-direction: row-reverse;
 
3689
  }
3690
- .eae-button-1-wrapper .eae-button-1,.eae-button-2-wrapper .eae-button-2{
3691
- color: black;
3692
- align-items: center;
 
 
 
 
 
 
3693
  }
3694
- .eae-button-1-wrapper:hover .eae-button-1,.eae-button-2-wrapper:hover .eae-button-2{
3695
- color: black;
 
 
 
 
 
 
3696
  }
3697
  .eae-dual-button-wrapper.button-style-vertical .eae-button-1.icon-before,
3698
  .eae-dual-button-wrapper.button-style-vertical .eae-button-2.icon-before,
3699
  .eae-dual-button-wrapper.button-style-vertical .eae-button-1.icon-after,
3700
- .eae-dual-button-wrapper.button-style-vertical .eae-button-2.icon-after{
3701
- justify-content: center;
3702
  }
3703
- .eae-button-1.icon-up, .eae-button-2.icon-up {
 
3704
  display: flex;
3705
  flex-direction: column;
3706
  text-align: center;
3707
  }
3708
- .eae-button-1.icon-down, .eae-button-2.icon-down{
3709
- display: flex;
3710
- flex-direction: column-reverse;
3711
- text-align: center;
 
3712
  }
3713
  .eae-button-1-wrapper {
3714
- background: lightpink;
3715
- display:flex;
3716
- justify-content: center;
3717
- width: 100%;
3718
- line-height: 1;
3719
- }
3720
- .eae-button-2-wrapper{
3721
- background: orange;
3722
- display:flex;
3723
- justify-content: center;
3724
- width: 100%;
3725
- line-height: 1;
3726
- }
3727
- .eae-button-1.icon-up .icon-wrapper, .eae-button-2.icon-up .icon-wrapper,
3728
- .eae-button-2.icon-down .icon-wrapper, .eae-button-2.icon-down .icon-wrapper {
3729
- text-align: center;
3730
- }
3731
- .eae-button-1.icon-up .eae-button-text, .eae-button-2.icon-up .eae-button-text,
3732
- .eae-button-2.icon-down .eae-button-text, .eae-button-2.icon-down .eae-button-text {
3733
- text-align: center;
3734
- }
3735
- .eae-button-1.icon-before i , .eae-button-2.icon-before i, .eae-button-2.icon-after i{
3736
- align-self: center;
3737
- margin: 0 10px 0 0;
3738
- }
3739
- .eae-button-1.icon-after i,.eae-button-2.icon-after i{
3740
- align-self: center;
3741
- margin: 0 0 0 10px;
3742
- }
3743
- .eae-button-1.icon-up i, .eae-button-1.icon-down i, .eae-button-2.icon-up i, .eae-button-2.icon-down i{
3744
- align-self: center;
3745
- margin: 5px 0;
3746
- }
3747
- .eae-dual-button-wrapper.button-style-horizontal .eae-button-1-wrapper , .eae-dual-button-wrapper.button-style-horizontal .eae-button-2-wrapper{
3748
- padding: 12px 30px;
3749
- }
3750
- .eae-dual-button-wrapper.button-style-vertical .eae-button-1-wrapper , .eae-dual-button-wrapper.button-style-vertical .eae-button-2-wrapper{
3751
- padding: 20px 30px;
3752
  }
3753
- .eae-button1,.eae-button2{
3754
- position: relative;
3755
- display: flex;
 
 
 
 
 
 
 
 
 
3756
  }
3757
-
3758
- .eae-dual-button-wrapper.button-style-horizontal .eae-button1,.eae-dual-button-wrapper.button-style-horizontal .eae-button2{
3759
- min-width:150px;
 
 
3760
  }
3761
- .eae-dual-button-wrapper.button-style-vertical .eae-button1{
3762
- display: flex;
3763
- flex-direction: column;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3764
  }
3765
- .eae-button-separator-wrapper{
3766
 
 
 
 
3767
  }
3768
- .eae-button-separator-wrapper .eae-button-separator{
3769
- width: 40px;
3770
- height: 40px;
3771
- line-height: 40px;
3772
- border-radius: 50%;
3773
- z-index: 1;
3774
- box-shadow: 0 0 0 6px rgba(255,255,255,0.2);
3775
- background: #FAFAF8;
3776
- color: #444;
3777
- text-transform: uppercase;
3778
- text-align: center;
3779
- vertical-align: middle;
3780
- font-weight: 400;
3781
- font-size: 14px;
3782
- position: absolute;
3783
- transform: translateY(-50%);
3784
  }
3785
- .eae-button-separator span{
3786
- position: absolute;
3787
- left: 50%;
3788
- top: 50%;
3789
- transform: translate(-50%, -50%);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3790
  }
 
3791
  /* Sweep to right */
3792
  .eae-sweep-right {
3793
- vertical-align: middle;
3794
- -webkit-transform: perspective(1px) translateZ(0);
3795
- transform: perspective(1px) translateZ(0);
3796
- box-shadow: 0 0 1px rgba(0, 0, 0, 0);
3797
- position: relative;
3798
- -webkit-transition-property: color;
3799
- transition-property: color;
3800
- -webkit-transition-duration: 0.3s;
3801
- transition-duration: 0.3s;
3802
  }
3803
  .eae-sweep-right:before {
3804
- content: "";
3805
- position: absolute;
3806
- z-index: -1;
3807
- top: 0;
3808
- left: 0;
3809
- right: 0;
3810
- bottom: 0;
3811
- background: #2098D1;
3812
- -webkit-transform: scaleX(0);
3813
- transform: scaleX(0);
3814
- -webkit-transform-origin: 0 50%;
3815
- transform-origin: 0 50%;
3816
- -webkit-transition-property: transform;
3817
- transition-property: transform;
3818
- -webkit-transition-duration: 0.3s;
3819
- transition-duration: 0.3s;
3820
- -webkit-transition-timing-function: ease-out;
3821
- transition-timing-function: ease-out;
3822
- }
3823
- .eae-sweep-right:hover, .eae-sweep-right:focus, .eae-sweep-right:active {
3824
- color: white;
3825
- }
3826
- .eae-sweep-right:hover:before, .eae-sweep-right:focus:before, .eae-sweep-right:active:before {
3827
- -webkit-transform: scaleX(1);
3828
- transform: scaleX(1);
 
 
 
 
3829
  }
3830
 
3831
  /* Sweep To Left */
3832
  .eae-sweep-left {
3833
- vertical-align: middle;
3834
- -webkit-transform: perspective(1px) translateZ(0);
3835
- transform: perspective(1px) translateZ(0);
3836
- box-shadow: 0 0 1px rgba(0, 0, 0, 0);
3837
- position: relative;
3838
- -webkit-transition-property: color;
3839
- transition-property: color;
3840
- -webkit-transition-duration: 0.3s;
3841
- transition-duration: 0.3s;
3842
  }
3843
  .eae-sweep-left:before {
3844
- content: "";
3845
- position: absolute;
3846
- z-index: -1;
3847
- top: 0;
3848
- left: 0;
3849
- right: 0;
3850
- bottom: 0;
3851
- background: #2098D1;
3852
- -webkit-transform: scaleX(0);
3853
- transform: scaleX(0);
3854
- -webkit-transform-origin: 100% 50%;
3855
- transform-origin: 100% 50%;
3856
- -webkit-transition-property: transform;
3857
- transition-property: transform;
3858
- -webkit-transition-duration: 0.3s;
3859
- transition-duration: 0.3s;
3860
- -webkit-transition-timing-function: ease-out;
3861
- transition-timing-function: ease-out;
3862
- }
3863
- .eae-sweep-left:hover, .eae-sweep-left:focus, .eae-sweep-left:active {
3864
- color: white;
3865
- }
3866
- .eae-sweep-left:hover:before, .eae-sweep-left:focus:before, .eae-sweep-left:active:before {
3867
- -webkit-transform: scaleX(1);
3868
- transform: scaleX(1);
 
 
 
 
3869
  }
3870
 
3871
  /* Sweep To Bottom */
3872
  .eae-sweep-bottom {
3873
- vertical-align: middle;
3874
- -webkit-transform: perspective(1px) translateZ(0);
3875
- transform: perspective(1px) translateZ(0);
3876
- box-shadow: 0 0 1px rgba(0, 0, 0, 0);
3877
- position: relative;
3878
- -webkit-transition-property: color;
3879
- transition-property: color;
3880
- -webkit-transition-duration: 0.3s;
3881
- transition-duration: 0.3s;
3882
  }
3883
  .eae-sweep-bottom:before {
3884
- content: "";
3885
- position: absolute;
3886
- z-index: -1;
3887
- top: 0;
3888
- left: 0;
3889
- right: 0;
3890
- bottom: 0;
3891
- background: #2098D1;
3892
- -webkit-transform: scaleY(0);
3893
- transform: scaleY(0);
3894
- -webkit-transform-origin: 50% 0;
3895
- transform-origin: 50% 0;
3896
- -webkit-transition-property: transform;
3897
- transition-property: transform;
3898
- -webkit-transition-duration: 0.3s;
3899
- transition-duration: 0.3s;
3900
- -webkit-transition-timing-function: ease-out;
3901
- transition-timing-function: ease-out;
3902
- }
3903
- .eae-sweep-bottom:hover, .eae-sweep-bottom:focus, .eae-sweep-bottom:active {
3904
- color: white;
3905
- }
3906
- .eae-sweep-bottom:hover:before, .eae-sweep-bottom:focus:before, .eae-sweep-bottom:active:before {
3907
- -webkit-transform: scaleY(1);
3908
- transform: scaleY(1);
 
 
 
 
3909
  }
3910
 
3911
  /* Sweep To Top */
3912
  .eae-sweep-top {
3913
- vertical-align: middle;
3914
- -webkit-transform: perspective(1px) translateZ(0);
3915
- transform: perspective(1px) translateZ(0);
3916
- box-shadow: 0 0 1px rgba(0, 0, 0, 0);
3917
- position: relative;
3918
- -webkit-transition-property: color;
3919
- transition-property: color;
3920
- -webkit-transition-duration: 0.3s;
3921
- transition-duration: 0.3s;
3922
  }
3923
  .eae-sweep-top:before {
3924
- content: "";
3925
- position: absolute;
3926
- z-index: -1;
3927
- top: 0;
3928
- left: 0;
3929
- right: 0;
3930
- bottom: 0;
3931
- background: #2098D1;
3932
- -webkit-transform: scaleY(0);
3933
- transform: scaleY(0);
3934
- -webkit-transform-origin: 50% 100%;
3935
- transform-origin: 50% 100%;
3936
- -webkit-transition-property: transform;
3937
- transition-property: transform;
3938
- -webkit-transition-duration: 0.3s;
3939
- transition-duration: 0.3s;
3940
- -webkit-transition-timing-function: ease-out;
3941
- transition-timing-function: ease-out;
3942
- }
3943
- .eae-sweep-top:hover, .eae-sweep-top:focus, .eae-sweep-top:active {
3944
- color: white;
3945
- }
3946
- .eae-sweep-top:hover:before, .eae-sweep-top:focus:before, .eae-sweep-top:active:before {
3947
- -webkit-transform: scaleY(1);
3948
- transform: scaleY(1);
 
 
 
 
3949
  }
3950
 
3951
  /* Bounce To Right */
3952
  .eae-bounce-right {
3953
- vertical-align: middle;
3954
- -webkit-transform: perspective(1px) translateZ(0);
3955
- transform: perspective(1px) translateZ(0);
3956
- box-shadow: 0 0 1px rgba(0, 0, 0, 0);
3957
- position: relative;
3958
- -webkit-transition-property: color;
3959
- transition-property: color;
3960
- -webkit-transition-duration: 0.5s;
3961
- transition-duration: 0.5s;
3962
  }
3963
  .eae-bounce-right:before {
3964
- content: "";
3965
- position: absolute;
3966
- z-index: -1;
3967
- top: 0;
3968
- left: 0;
3969
- right: 0;
3970
- bottom: 0;
3971
- background: #2098D1;
3972
- -webkit-transform: scaleX(0);
3973
- transform: scaleX(0);
3974
- -webkit-transform-origin: 0 50%;
3975
- transform-origin: 0 50%;
3976
- -webkit-transition-property: transform;
3977
- transition-property: transform;
3978
- -webkit-transition-duration: 0.5s;
3979
- transition-duration: 0.5s;
3980
- -webkit-transition-timing-function: ease-out;
3981
- transition-timing-function: ease-out;
3982
- }
3983
- .eae-bounce-right:hover, .eae-bounce-right:focus, .eae-bounce-right:active {
3984
- color: white;
3985
- }
3986
- .eae-bounce-right:hover:before, .eae-bounce-right:focus:before, .eae-bounce-right:active:before {
3987
- -webkit-transform: scaleX(1);
3988
- transform: scaleX(1);
3989
- -webkit-transition-timing-function: cubic-bezier(0.52, 1.64, 0.37, 0.66);
3990
- transition-timing-function: cubic-bezier(0.52, 1.64, 0.37, 0.66);
 
 
 
 
3991
  }
3992
 
3993
  /* Bounce To Left */
3994
  .eae-bounce-left {
3995
- vertical-align: middle;
3996
- -webkit-transform: perspective(1px) translateZ(0);
3997
- transform: perspective(1px) translateZ(0);
3998
- box-shadow: 0 0 1px rgba(0, 0, 0, 0);
3999
- position: relative;
4000
- -webkit-transition-property: color;
4001
- transition-property: color;
4002
- -webkit-transition-duration: 0.5s;
4003
- transition-duration: 0.5s;
4004
  }
4005
  .eae-bounce-left:before {
4006
- content: "";
4007
- position: absolute;
4008
- z-index: -1;
4009
- top: 0;
4010
- left: 0;
4011
- right: 0;
4012
- bottom: 0;
4013
- background: #2098D1;
4014
- -webkit-transform: scaleX(0);
4015
- transform: scaleX(0);
4016
- -webkit-transform-origin: 100% 50%;
4017
- transform-origin: 100% 50%;
4018
- -webkit-transition-property: transform;
4019
- transition-property: transform;
4020
- -webkit-transition-duration: 0.5s;
4021
- transition-duration: 0.5s;
4022
- -webkit-transition-timing-function: ease-out;
4023
- transition-timing-function: ease-out;
4024
- }
4025
- .eae-bounce-left:hover, .eae-bounce-left:focus, .eae-bounce-left:active {
4026
- color: white;
4027
- }
4028
- .eae-bounce-left:hover:before, .eae-bounce-left:focus:before, .eae-bounce-left:active:before {
4029
- -webkit-transform: scaleX(1);
4030
- transform: scaleX(1);
4031
- -webkit-transition-timing-function: cubic-bezier(0.52, 1.64, 0.37, 0.66);
4032
- transition-timing-function: cubic-bezier(0.52, 1.64, 0.37, 0.66);
 
 
 
 
4033
  }
4034
 
4035
  /* Bounce To Bottom */
4036
  .eae-bounce-bottom {
4037
- vertical-align: middle;
4038
- -webkit-transform: perspective(1px) translateZ(0);
4039
- transform: perspective(1px) translateZ(0);
4040
- box-shadow: 0 0 1px rgba(0, 0, 0, 0);
4041
- position: relative;
4042
- -webkit-transition-property: color;
4043
- transition-property: color;
4044
- -webkit-transition-duration: 0.5s;
4045
- transition-duration: 0.5s;
4046
  }
4047
  .eae-bounce-bottom:before {
4048
- content: "";
4049
- position: absolute;
4050
- z-index: -1;
4051
- top: 0;
4052
- left: 0;
4053
- right: 0;
4054
- bottom: 0;
4055
- background: #2098D1;
4056
- -webkit-transform: scaleY(0);
4057
- transform: scaleY(0);
4058
- -webkit-transform-origin: 50% 0;
4059
- transform-origin: 50% 0;
4060
- -webkit-transition-property: transform;
4061
- transition-property: transform;
4062
- -webkit-transition-duration: 0.5s;
4063
- transition-duration: 0.5s;
4064
- -webkit-transition-timing-function: ease-out;
4065
- transition-timing-function: ease-out;
4066
- }
4067
- .eae-bounce-bottom:hover, .eae-bounce-bottom:focus, .eae-bounce-bottom:active {
4068
- color: white;
4069
- }
4070
- .eae-bounce-bottom:hover:before, .eae-bounce-bottom:focus:before, .eae-bounce-bottom:active:before {
4071
- -webkit-transform: scaleY(1);
4072
- transform: scaleY(1);
4073
- -webkit-transition-timing-function: cubic-bezier(0.52, 1.64, 0.37, 0.66);
4074
- transition-timing-function: cubic-bezier(0.52, 1.64, 0.37, 0.66);
 
 
 
 
4075
  }
4076
 
4077
  /* Bounce To Top */
4078
  .eae-bounce-top {
4079
- vertical-align: middle;
4080
- -webkit-transform: perspective(1px) translateZ(0);
4081
- transform: perspective(1px) translateZ(0);
4082
- box-shadow: 0 0 1px rgba(0, 0, 0, 0);
4083
- position: relative;
4084
- -webkit-transition-property: color;
4085
- transition-property: color;
4086
- -webkit-transition-duration: 0.5s;
4087
- transition-duration: 0.5s;
4088
  }
4089
  .eae-bounce-top:before {
4090
- content: "";
4091
- position: absolute;
4092
- z-index: -1;
4093
- top: 0;
4094
- left: 0;
4095
- right: 0;
4096
- bottom: 0;
4097
- background: #2098D1;
4098
- -webkit-transform: scaleY(0);
4099
- transform: scaleY(0);
4100
- -webkit-transform-origin: 50% 100%;
4101
- transform-origin: 50% 100%;
4102
- -webkit-transition-property: transform;
4103
- transition-property: transform;
4104
- -webkit-transition-duration: 0.5s;
4105
- transition-duration: 0.5s;
4106
- -webkit-transition-timing-function: ease-out;
4107
- transition-timing-function: ease-out;
4108
- }
4109
- .eae-bounce-top:hover, .eae-bounce-top:focus, .eae-bounce-top:active {
4110
- color: white;
4111
- }
4112
- .eae-bounce-top:hover:before, .eae-bounce-top:focus:before, .eae-bounce-top:active:before {
4113
- -webkit-transform: scaleY(1);
4114
- transform: scaleY(1);
4115
- -webkit-transition-timing-function: cubic-bezier(0.52, 1.64, 0.37, 0.66);
4116
- transition-timing-function: cubic-bezier(0.52, 1.64, 0.37, 0.66);
 
 
 
 
4117
  }
4118
  /* Google Map */
4119
- .eae-markers .marker{
4120
- display: none;
4121
  }
4122
- .eae-markers p{
4123
- margin-bottom: 0;
4124
  }
4125
 
4126
  /*EAE Filterable Gallery*/
4127
- .eae-fg-wrapper{
4128
- display: flex;
4129
- flex-direction: column;
4130
- overflow: hidden;
4131
  }
4132
- .eae-gallery-filter{
4133
- display: flex;
4134
- flex-direction: row;
4135
- justify-content: center;
4136
- flex-wrap: wrap;
4137
  }
4138
- .eae-filter-label{
4139
- padding: 5px 10px;
4140
- background-color : #A0CE4E;
4141
- color : #fff;
4142
- margin : 0px 3px 0px 3px;
4143
  }
4144
- .eae-filter-label.current{
4145
- background-color: #73B9DC;
4146
  }
4147
 
4148
- .eae-fg-image{
4149
- display: flex;
4150
- flex-wrap: wrap;
4151
- flex-direction: row;
4152
  }
4153
- .eae-fg-wrapper .eae-gallery-item-inner img{
4154
- width: 100%;
4155
- height: auto;
4156
- display: block !important;
4157
- transition: all 0.5s ease;
4158
- -webkit-transition: all 0.5s ease;
4159
  }
4160
 
4161
- .eae-gallery-item{
4162
- height: auto;
4163
-
4164
  }
4165
  .eae-gallery-filter a {
4166
- color: #ffffff;
4167
- text-decoration:none;
4168
  }
4169
  .eae-gallery-filter a.current {
4170
- font-weight:bold;
4171
  }
4172
 
4173
- .eae-gallery-item-inner{
4174
- position: relative;
4175
- overflow: hidden;
4176
  }
4177
 
4178
  /*Overlay Css*/
4179
- .eae-overlay-always .eae-gallery-item .eae-grid-overlay
4180
- {
4181
- display:block;
4182
  }
4183
 
4184
  .eae-overlay-hover .eae-gallery-item-inner:hover .eae-grid-overlay {
4185
- display:block;
4186
  }
4187
- .eae-overlay-hide-on-hover .eae-gallery-item-inner:hover .eae-grid-overlay{
4188
- display: none;
4189
  }
4190
- .eae-overlay-hide-on-hover .eae-grid-overlay{
4191
- display: block;
4192
  }
4193
- .eae-grid-overlay{
4194
- position: absolute;
4195
- top: 0;
4196
- left: 0;
4197
- display: none;
4198
- z-index: 99;
4199
- background: rgba(0,0,0,0.5);
4200
- height: 100%;
4201
- width: 100%;
4202
  }
4203
 
4204
  .eae-grid-overlay-inner {
4205
- display: block;
4206
- position: relative;
4207
- top: 50%;
4208
- left: 50%;
4209
- transform: translate(-50%, -50%);
4210
- text-align: center;
4211
  }
4212
 
4213
  .eae-fg-wrapper .eae-icon-wrapper {
4214
- display: flex;
4215
- justify-content: center;
4216
-
4217
  }
4218
 
4219
-
4220
  /* Overlay Icon*/
4221
- .eae-overlay-caption{
4222
- display: block;
4223
- line-height: 1em;
4224
- margin-top: 15px;
4225
- color : #73B9DC;
4226
- @font: 20 px Arial, sans-serif;
4227
- }
4228
- .eae-overlay-icon{
4229
- line-height: 1em;
4230
- padding:.5em;
4231
- display: inline-block;
4232
- }
4233
- .eae-overlay-icon svg{
4234
- height: auto;
4235
- }
4236
- .eae-icon-view-framed .eae-overlay-icon{
4237
- padding: .5em;
4238
- color: #73B9DC;
4239
- border: 3px solid #73B9DC;
4240
- background-color: transparent;
4241
- }
4242
-
4243
- .eae-icon-view-stacked .eae-overlay-icon{
4244
- padding: .5em;
4245
- color: #FFF;
4246
- background-color: #818a91;
4247
- }
4248
- .eae-hover-direction-effect .eae-grid-overlay{
4249
- position: absolute;
4250
- z-index: 99;
4251
- background: rgba(0,0,0,0.5);
4252
- height: 100%;
4253
- width: 100%;
4254
- }
4255
-
4256
- .eae-fg-wrapper.eae-image-ratio-yes .eae-gallery-item-inner .eae-fg-img-wrapper{
4257
- position: relative;
4258
- top: 0;
4259
- overflow: hidden;
4260
- left: 0;
4261
- right: 0;
4262
- border: 0;
4263
- }
4264
- .eae-fg-wrapper.eae-image-ratio-yes .eae-gallery-item-inner .eae-fg-img-wrapper img{
4265
- height: 100%;
4266
- width: 100%;
4267
- display: block;
4268
- position: absolute;
4269
- top: 0;
4270
- left: 0;
4271
- object-fit: cover;
4272
-
 
 
 
 
4273
  }
4274
 
4275
  /* Ribbons and Badges */
4276
 
4277
- .wts-eae-ribbons-badges-wrapper{
4278
- display: none;
4279
  }
4280
- .wts-eae-enable-ribbons-badges-yes .elementor-column-wrap > .wts-eae-ribbons-badges-wrapper{
4281
- display: block;
 
 
4282
  }
4283
 
4284
  /* Ribbon */
4285
- .wts-eae-enable-ribbons-badges-yes.wts-eae-badge-type-ribbon > .wts-eae-ribbons-badges-wrapper {
4286
- position: absolute;
4287
- top: 0;
4288
- left: auto;
4289
- right: 0;
4290
- /* -webkit-transform: rotate(90deg); */
4291
- -ms-transform: rotate(90deg);
4292
- /* transform: rotate(90deg); */
4293
- width: 150px;
4294
- overflow: hidden;
4295
- height: 150px;
4296
- z-index: 999;
4297
- padding: 8px 12px;
4298
- }
4299
- .wts-eae-badge-h-left.wts-eae-enable-ribbons-badges-yes.wts-eae-badge-type-ribbon > .wts-eae-ribbons-badges-wrapper {
4300
- -webkit-transform: rotate(0);
4301
- -ms-transform: rotate(0);
4302
- transform: rotate(0);
4303
- left: 0;
4304
- right: auto;
4305
- }
4306
- .wts-eae-badge-h-right.wts-eae-enable-ribbons-badges-yes.wts-eae-badge-type-ribbon > .wts-eae-ribbons-badges-wrapper {
4307
- -webkit-transform: rotate(0);
4308
- -ms-transform: rotate(0);
4309
- transform: rotate(90deg);
4310
- left: auto;
4311
- right: 0;
4312
- }
4313
- .wts-eae-enable-ribbons-badges-yes.wts-eae-badge-type-ribbon > .wts-eae-ribbons-badges-wrapper span.wts-eae-ribbons-badges-inner {
4314
- position: absolute;
4315
- text-align: center;
4316
- left: 0;
4317
- top: 0;
4318
- width: 200%;
4319
- -webkit-transform: translateY(-50%) translateX(-50%) translateX(35px) rotate(-45deg);
4320
- -ms-transform: translateY(-50%) translateX(-50%) translateX(35px) rotate(-45deg);
4321
- transform: translateY(-50%) translateX(-50%) translateX(35px) rotate(-45deg);
4322
- margin-top: 35px;
4323
- font-size: 13px;
4324
- line-height: 2;
4325
- font-weight: 800;
4326
- text-transform: uppercase;
4327
- background: rgba(63,195,135,0.8);
4328
- padding: 8px 12px;
 
 
 
 
 
 
 
4329
  }
4330
  /* Ribbon */
4331
 
4332
  /* Sale Badge Badge */
4333
- .wts-eae-enable-ribbons-badges-yes.wts-eae-badge-type-badge > .wts-eae-ribbons-badges-wrapper span.wts-eae-ribbons-badges-inner{
4334
- min-height: 3.236em;
4335
- min-width: 3.236em;
4336
- padding: 0;
4337
- font-size: 1em;
4338
- font-weight: 700;
4339
- position: absolute;
4340
- text-align: center;
4341
- line-height: 3.236;
4342
- top: -.5em;
4343
- left: -.5em;
4344
- margin: 0;
4345
- border-radius: 100%;
4346
- background-color: #77a464;
4347
- color: #fff;
4348
- font-size: .857em;
4349
- z-index: 9;
4350
- }
4351
- .wts-eae-badge-h-left.wts-eae-badge-v-bottom.wts-eae-enable-ribbons-badges-yes > .wts-eae-ribbons-badges-wrapper span.wts-eae-ribbons-badges-inner{
4352
- left: 20px;
4353
- right: auto;
4354
- top: auto;
4355
- bottom: 20px;
4356
- }
4357
- .wts-eae-badge-h-left.wts-eae-badge-v-top.wts-eae-enable-ribbons-badges-yes > .wts-eae-ribbons-badges-wrapper span.wts-eae-ribbons-badges-inner{
4358
- left: 20px;
4359
- right: auto;
4360
- top: 20px;
4361
- bottom: auto;
4362
- }
4363
-
4364
- .wts-eae-badge-h-right.wts-eae-badge-v-bottom.wts-eae-enable-ribbons-badges-yes > .wts-eae-ribbons-badges-wrapper span.wts-eae-ribbons-badges-inner{
4365
- left: auto;
4366
- right: 20px;
4367
- top: auto;
4368
- bottom: 20px;
4369
- }
4370
- .wts-eae-badge-h-right.wts-eae-badge-v-top.wts-eae-enable-ribbons-badges-yes > .wts-eae-ribbons-badges-wrapper span.wts-eae-ribbons-badges-inner{
4371
- left: auto;
4372
- right: 20px;
4373
- top: 20px;
4374
- bottom: auto;
 
 
 
 
 
 
 
 
 
 
4375
  }
4376
 
4377
  /* Sale Badge Badge */
4378
 
4379
-
4380
  /* Icon Migration */
4381
  /* Flipbox */
4382
- .eae-flip-box-front svg , .eae-flip-box-back svg{
4383
- width : 25px;
4384
- height : auto;
 
4385
  }
4386
  /* Text-Separator */
4387
- .wts-eae-textseparator svg{
4388
- width: 25px;
4389
- height: auto;
4390
  }
4391
 
4392
  /* AfterBefore Image Comp */
4393
- .eae-img-comp-slider svg{
4394
- width: 22px;
4395
- height: auto;
4396
  }
4397
 
4398
  /* Model Popup */
4399
- .eae-popup-link svg{
4400
- display: inline-block;
4401
- width: 1em;
4402
  }
4403
 
4404
  .eae-popup svg:hover,
4405
  .eae-popup svg:focus {
4406
- opacity: 1;
4407
- cursor: pointer;
4408
  }
4409
  .eae-popup svg:active {
4410
- top: 1px;
4411
  }
4412
 
4413
- .eae-popup svg.eae-close{
4414
- width: 28px;
4415
- height: 28px;
4416
- line-height: 1em;
4417
- text-decoration: none;
4418
- text-align: center;
4419
- opacity: 1.00;
4420
- background-color: #FFF;
4421
  }
4422
  /* Dual Button */
4423
- .eae-dual-button-wrapper svg{
4424
- width: 1em;
4425
- height: auto;
4426
- display: block;
4427
  }
4428
- eae-button-separator i{
4429
- position: relative;
4430
- display: block;
4431
  }
4432
- .eae-button-1.icon-before svg , .eae-button-2.icon-before svg, .eae-button-2.icon-after svg{
4433
- align-self: center;
4434
- margin: 0 10px 0 0;
 
 
4435
  }
4436
 
4437
- .eae-button-1.icon-after svg,.eae-button-2.icon-after svg{
4438
- align-self: center;
4439
- margin: 0 0 0 10px;
 
4440
  }
4441
- .eae-button-1.icon-up svg, .eae-button-1.icon-down svg, .eae-button-2.icon-up svg, .eae-button-2.icon-down svg{
4442
- align-self: center;
4443
- margin: 5px 0;
 
 
 
4444
  }
4445
 
4446
  /* Price Table */
4447
- .eae-pt-button-wrapper a svg{
4448
- width: 1em;
4449
  }
4450
- .eae-pt-action-button .eae-pt-align-icon-left{
4451
- float : left;
4452
  }
4453
 
4454
- .eae-pt-action-button .eae-pt-align-icon-right{
4455
- float : right;
4456
  }
4457
 
4458
- .eae-icon-wrap svg{
4459
- width : 20px;
4460
- height : auto;
4461
- font-size:20px;
4462
- display : block;
4463
  }
4464
- .eae-info-circle .eae-icon-wrap svg{
4465
- width : 20px;
4466
- height : auto;
4467
- font-size:20px
4468
  }
4469
 
4470
- .eae-icon-view-stacked svg{ fill:#FFF; }
 
 
4471
 
4472
- .ae-link-yes{
4473
- cursor: pointer;
4474
  }
4475
 
4476
  /*unfold-css*/
4477
  .eae-element-unfold-content {
4478
- padding : 10px 0px;
4479
- background-color: #D3D3D3C4;
4480
- /*background: linear-gradient(180deg, #F4EFEF 0%, #F6F6F6 100%);*/
4481
- width: 100%;
4482
- position: absolute;
4483
- left: 0;
4484
- bottom: 0;
4485
- z-index: 999;
4486
- }
4487
-
4488
- a.eae-unfold-link{
4489
- background-color: #61CE70;
4490
- color : #fff;
4491
- display: inline-block;
4492
- overflow : hidden;
4493
  }
4494
  a.eae-unfold-link svg {
4495
- background-color: #fff;
4496
- }
4497
- .eae-unfold-button-icon{
4498
- vertical-align: middle;
4499
- }
4500
-
4501
- .eae-fold-yes.elementor-section .elementor-container, .eae-fold-yes .elementor-column-wrap , .eae-fold-yes.elementor-widget{
4502
- overflow: hidden;
4503
- }
4504
-
4505
- body.elementor-editor-active .elementor.elementor-edit-mode .elementor-element.elementor-section.eae-widget-unfold-yes .elementor-container , body.elementor-editor-preview .elementor.elementor-edit-mode .elementor-element.elementor-section.eae-widget-unfold-yes .elementor-container{
4506
- overflow: hidden;
4507
- }
4508
- body.elementor-editor-active .elementor.elementor-edit-mode .elementor-element.elementor-column.eae-widget-unfold-yes .elementor-column-wrap , body.elementor-editor-preview .elementor.elementor-edit-mode .elementor-element.elementor-column.eae-widget-unfold-yes .elementor-column-wrap{
4509
- overflow: hidden;
4510
- }
4511
- body.elementor-editor-active .elementor.elementor-edit-mode .elementor-element.elementor-widget.eae-widget-unfold-yes , body.elementor-editor-preview .elementor.elementor-edit-mode .elementor-element.elementor-widget.eae-widget-unfold-yes{
4512
- overflow: hidden;
4513
- }
4514
-
4515
- .eae-widget-unfold-yes .elementor-widget-container .eae-fold-yes.eae-rc{
4516
- display : none !important;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4517
  }
4518
 
4519
- .eae-unfold-button-icon svg{
4520
- line-height: 1em;
4521
- text-decoration: none;
4522
- -webkit-mask-repeat: no-repeat !important;
4523
- text-align: center;
4524
- opacity: 1.00;
4525
- }
4526
- .eae-unfold-icon-type-svg .eae-unfold-button-icon, .eae-fold-icon-type-svg .eae-unfold-button-icon{
4527
- -webkit-mask-size: cover !important;
4528
- background-image: none;
4529
- transform: translateY(-50%);
4530
  }
4531
 
4532
- .elementor-section.elementor-section-items-middle.eae-widget-unfold-yes > .elementor-container , .elementor-section.elementor-section-items-bottom.eae-widget-unfold-yes > .elementor-container{
4533
- -webkit-box-align: start;
4534
- -webkit-align-items: flex-start;
4535
- -ms-flex-align: start;
4536
- align-items: start;
4537
- }
4538
- .elementor-section.elementor-section-content-middle.eae-widget-unfold-yes > .elementor-container , .elementor-section.elementor-section-content-bottom.eae-widget-unfold-yes > .elementor-container{
4539
- -webkit-box-align: start;
4540
- -webkit-align-items: flex-start;
4541
- -ms-flex-align: start;
4542
- align-items: start;
4543
  }
4544
 
4545
-
4546
-
4547
- /*Modal Pop Up Button Type Image*/
4548
- .elementor-widget-wts-modal-popup.eae-pop-btn-type-image .eae-popup-link{
4549
- padding:0px;
4550
- background-color: transparent;
4551
- overflow:hidden;
4552
  }
4553
-
4554
- /*Comparision Table Bug Fix elementor*/
4555
- [data-elementor-device-mode='tablet'] .eae-tab-format-mobile .eae-ct-hide.eae-fbox-heading{
4556
- display: none !important;
4557
- }
1
+ .elementor-widget-wts-textseparator .elementor-widget-container {
2
+ overflow: hidden;
3
  }
4
+ .wts-eae-textseparator {
5
+ align-items: center;
6
+ display: flex;
7
+ flex-flow: row nowrap;
8
+ margin: auto;
9
+ }
10
+ body.rtl .wts-eae-textseparator {
11
+ flex-direction: row-reverse;
12
  }
13
 
14
  .eae-separator-icon-inner i {
15
+ height: 1em;
16
+ width: 1em;
17
+ text-align: center;
18
+ position: relative;
19
+ display: block;
20
  }
21
 
22
+ .eae-separator-icon-inner i:before {
23
+ position: absolute;
24
+ left: 50%;
25
+ -webkit-transform: translateX(-50%);
26
+ -moz-transform: translateX(-50%);
27
+ -ms-transform: translateX(-50%);
28
+ -o-transform: translateX(-50%);
29
+ transform: translateX(-50%);
30
  }
31
  .wts-eae-textseparator .eae-sep-holder {
32
+ flex: 1 1 auto;
33
+ height: 1px;
34
+ min-width: 10%;
35
+ position: relative;
36
  }
37
 
38
+ .wts-eae-textseparator .eae-sep-holder .eae-sep-lines {
39
+ border-top-width: 1px;
40
+ display: block;
41
+ height: 1px;
42
+ position: relative;
43
+ top: 1px;
44
+ width: 100%;
45
  }
46
 
47
+ .eae-separator-title {
48
+ margin: 0;
49
+ -moz-box-flex: 0;
50
+ flex: 0 1 auto;
51
+ line-height: 1em;
52
+ margin: 0;
53
+ overflow-wrap: break-word;
54
  }
55
 
56
+ .sep-align-right .sep-right {
57
+ display: none;
58
  }
59
 
60
+ .sep-align-left .sep-left {
61
+ display: none;
62
  }
63
 
64
+ .eae-icon-view-stacked i {
65
+ color: #fff;
66
+ }
67
+ .eae-icon-view-framed .eae-separator-icon-inner {
68
+ border: 1px solid;
69
+ }
70
+ .eae-icon-shape-circle .eae-separator-icon-inner {
71
+ border-radius: 50%;
72
+ }
73
+ .eae-separator-icon-wrapper,
74
+ .eae-separator-title {
75
+ margin: 0 5px !important;
76
+ }
77
+ .eae-separator-icon-inner {
78
+ line-height: 1;
79
+ }
80
 
81
  /**
82
  Price Table Css
83
  **/
84
+ .wts-price-box-wrapper .eae-pt-heading,
85
+ .wts-price-box-wrapper .eae-pt-sub-heading {
86
+ margin: 5px 0;
87
+ text-align: center;
88
+ }
89
  .plan-price-shape {
90
+ display: table;
91
+ height: 6em;
92
+ margin: auto;
93
+ width: 6em;
94
  }
95
 
96
+ .eae-pt-price-box-shape-circle .plan-price-shape,
97
+ .eae-pt-price-box-shape-square .plan-price-shape {
98
+ border: 1px solid;
99
+ }
100
+ .eae-pt-price-box-shape-circle .plan-price-shape {
101
+ border-radius: 50%;
102
+ }
103
+ .plan-price-block {
104
+ padding: 10px 0;
105
+ }
106
  .plan-price-shape-inner {
107
+ display: table-cell;
108
+ vertical-align: middle;
109
+ padding: 10px;
110
  }
111
  .plan-price-shape-inner > span {
112
+ display: block;
113
+ font-size: 1em;
114
+ text-align: center;
115
  }
116
 
117
  .eae-pt-feature-list {
118
+ list-style: outside none none;
119
+ text-align: center;
120
+ margin: 10px 0;
121
+ }
122
+ .eae-pt-button-wrapper > a {
123
+ text-align: center;
124
+ display: inline-block;
125
+ line-height: 1;
126
+ }
127
+ .eae-pt-button-wrapper {
128
+ text-align: center;
129
  }
 
 
130
 
131
+ .wts-price-box-wrapper .heading-wrapper,
132
+ .wts-price-box-wrapper .plan-features-wrapper {
133
+ padding: 10px 5px;
134
+ }
135
+ .eae-pt-button-wrapper {
136
+ padding: 15px 0;
137
+ }
138
+ .eae-pt-button-wrapper a {
139
+ padding: 5px 15px;
140
+ border-radius: 3px;
141
+ }
142
+ .eae-pt-align-icon-right {
143
+ float: right;
144
+ }
145
+ .strike-feature {
146
+ text-decoration: line-through;
147
+ }
148
 
149
  /**
150
  Flip Box CSS
151
  **/
152
+ .eae-flip-box {
153
+ width: 100%;
154
+ text-align: center;
 
 
 
 
 
 
 
 
 
 
155
  }
156
+ .eae-flip-box-wrapper {
157
+ display: inline-block;
158
+ width: 100%;
159
+ }
160
+ .eae-flip-box-inner {
161
+ width: 100%;
162
+ height: 200px;
163
+ position: relative;
164
+ -webkit-transform-style: preserve-3d;
165
+ -moz-transform-style: preserve-3d;
166
+ -ms-transform-style: preserve-3d;
167
+ transform-style: preserve-3d;
168
+ }
169
+
170
+ .eae-flip-box-inner .eae-flip-box-front,
171
+ .eae-flip-box-inner .eae-flip-box-back {
172
+ width: 100%;
173
+ height: 100%;
174
+ position: absolute;
175
+ top: 0;
176
+ left: 0;
177
+ text-align: center;
178
+ padding: 10px;
179
+ -webkit-backface-visibility: hidden;
180
+ -moz-backface-visibility: hidden;
181
+ -ms-backface-visibility: hidden;
182
+ backface-visibility: hidden;
183
+
184
+ -webkit-transition: all 0.6s ease 0s;
185
+ -moz-transition: all 0.6s ease 0s;
186
+ -ms-transition: all 0.6s ease 0s;
187
+ -o-transition: all 0.6s ease 0s;
188
+ transition: all 0.6s ease 0s;
189
  }
190
  .eae-flip-box-front {
191
+ z-index: 2;
192
  }
193
  .eae-flip-box-back {
194
+ z-index: 1;
195
  }
196
 
197
+ .eae-fb-animate-vertical .eae-flip-box-inner .eae-flip-box-front {
198
+ -webkit-transform: perspective(1000px) rotateX(0deg);
199
+ -ms-transform: perspective(1000px) rotateX(0deg);
200
+ transform: perspective(1000px) rotateX(0deg);
201
+ }
202
+ .eae-fb-animate-vertical .eae-flip-box-inner .eae-flip-box-back {
203
+ -webkit-transform: perspective(1000px) rotateX(180deg);
204
+ transform: perspective(1000px) rotateX(180deg);
205
+ -ms-transform: perspective(1000px) rotateX(180deg);
206
+ }
207
+ .eae-fb-animate-vertical .eae-flip-box-inner:hover .eae-flip-box-front {
208
+ -webkit-transform: perspective(1000px) rotateX(180deg);
209
+ transform: perspective(1000px) rotateX(180deg);
210
+ -ms-transform: perspective(1000px) rotateX(180deg);
211
+ }
212
+ .eae-fb-animate-vertical .eae-flip-box-inner:hover .eae-flip-box-back {
213
+ -webkit-transform: perspective(1000px) rotateX(0deg);
214
+ transform: perspective(1000px) rotateX(0deg);
215
+ -ms-transform: perspective(1000px) rotateX(0deg);
216
+ }
217
 
218
+ .eae-fb-animate-horizontal .eae-flip-box-inner .eae-flip-box-front {
219
+ -webkit-transform: perspective(1000px) rotateY(0deg);
220
+ transform: perspective(1000px) rotateY(0deg);
221
+ -ms-transform: perspective(1000px) rotateY(0deg);
222
+ }
223
+ .eae-fb-animate-horizontal .eae-flip-box-inner .eae-flip-box-back {
224
+ -webkit-transform: perspective(1000px) rotateY(180deg);
225
+ transform: perspective(1000px) rotateY(180deg);
226
+ -ms-transform: perspective(1000px) rotateY(180deg);
227
+ }
228
+ .eae-fb-animate-horizontal .eae-flip-box-inner:hover .eae-flip-box-front {
229
+ -webkit-transform: perspective(1000px) rotateY(180deg);
230
+ transform: perspective(1000px) rotateY(180deg);
231
+ -ms-transform: perspective(1000px) rotateY(180deg);
232
+ }
233
+ .eae-fb-animate-horizontal .eae-flip-box-inner:hover .eae-flip-box-back {
234
+ -webkit-transform: perspective(1000px) rotateY(0deg);
235
+ transform: perspective(1000px) rotateY(0deg);
236
+ -ms-transform: perspective(1000px) rotateY(0deg);
237
+ }
238
 
239
+ .eae-fb-animate-fade .eae-flip-box-inner .eae-flip-box-front {
240
+ opacity: 1;
241
+ }
242
+ .eae-fb-animate-fade .eae-flip-box-inner .eae-flip-box-back {
243
+ opacity: 0;
244
+ }
245
+ .eae-fb-animate-fade .eae-flip-box-inner:hover .eae-flip-box-front {
246
+ opacity: 0;
247
+ }
248
+ .eae-fb-animate-fade .eae-flip-box-inner:hover .eae-flip-box-back {
249
+ opacity: 1;
250
+ }
251
 
252
  .eae-flip-box-wrapper:hover .eae-flip-box-back,
253
  .eae-flip-box-wrapper:focus .eae-flip-box-back {
254
+ z-index: 2;
255
  }
256
  .eae-flip-box-wrapper:hover .eae-flip-box-front,
257
  .eae-flip-box-wrapper:focus .eae-flip-box-front {
258
+ z-index: 1;
259
  }
260
  .fade .eae-flip-box-wrapper .eae-flip-box-front {
261
+ opacity: 1;
262
+ transition: 1s;
263
  }
264
  .fade .eae-flip-box-wrapper .eae-flip-box-back {
265
+ opacity: 0;
266
+ transition: 1s;
267
  }
268
  .fade .eae-flip-box-wrapper:hover .eae-flip-box-front,
269
  .fade .eae-flip-box-wrapper:focus .eae-flip-box-front {
270
+ opacity: 0;
271
  }
272
  .fade .eae-flip-box-wrapper:hover .eae-flip-box-back,
273
  .fade .eae-flip-box-wrapper:focus .eae-flip-box-back {
274
+ opacity: 1;
275
  }
276
 
277
  .eae-fb-animate-flip .eae-flip-box-wrapper {
278
+ perspective: 800px;
279
  }
280
+ .eae-fb-animate-flip .eae-flip-box-inner {
281
+ transform-style: preserve-3d;
282
+ transform: rotateX(0) rotateY(0) rotateZ(0);
283
+ transition: 1s;
284
  }
285
  .eae-fb-animate-flip .eae-flip-box-front {
286
+ transform: translate3d(0, 0, 1px);
287
  }
288
  .eae-fb-animate-flip .eae-flip-box-back {
289
+ transform: rotateY(180deg) translate3d(0, 0, 0);
290
  }
291
  .eae-fb-animate-flip .eae-flip-box-wrapper:hover .eae-flip-box-inner,
292
+ .eae-fb-animate-flip .eae-flip-box-wrapper:focus .eae-flip-box-inner {
293
+ transform: rotateY(180deg);
294
  }
295
  .up .eae-flip-box-front {
296
+ transform: translate3d(0, 0, 1px);
297
  }
298
  .up .eae-flip-box-back {
299
+ transform: rotateX(180deg) translate3d(0, 0, 0);
300
  }
301
  .up .eae-flip-box-wrapper:hover .eae-flip-box-inner,
302
+ .up .eae-flip-box-wrapper:focus .eae-flip-box-inner {
303
+ transform: rotateX(180deg);
304
  }
305
 
306
  .box .eae-flip-box-front {
307
+ transform: translate3d(0, 0, 100px) scale(0.85, 0.85);
308
  }
309
  .box .eae-flip-box-back {
310
+ transform: rotateY(180deg) translate3d(0, 0, 100px) scale(0.85, 0.85);
311
  }
312
  .box.up .eae-flip-box-back {
313
+ transform: rotateX(180deg) translate3d(0, 0, 100px) scale(0.85, 0.85);
314
  }
315
 
316
+ .hideback .eae-flip-box-front,
317
+ .hideback .eae-flip-box-back {
318
+ backface-visibility: hidden;
319
  }
320
  .eae-fb-animate-nananana .eae-flip-box-wrapper {
 
 
321
  }
322
  .eae-fb-animate-nananana .eae-flip-box-wrapper:hover .eae-flip-box-front,
323
  .eae-fb-animate-nananana .eae-flip-box-wrapper:focus .eae-flip-box-front {
324
+ z-index: 10;
325
+ animation: batman 1s 2 alternate linear;
326
  }
327
 
 
328
  /* Cube Animation */
329
 
330
+ .eae-fb-animate-flipcard .eae-flip-box-front,
331
+ .eae-fb-animate-flipcard .eae-flip-box-back {
332
+ transition: transform 0.4s ease;
333
+ transform-origin: center center -150px;
334
+ -webkit-transform-origin: center center -150px;
335
  }
336
 
337
  /* top to down */
338
 
339
  .flipcard-rotate-top-down .eae-flip-box-front {
340
+ transform: perspective(0px) rotateX(0deg) rotateY(0deg) rotateZ(0deg);
341
  }
342
  .flipcard-rotate-top-down .eae-flip-box-back {
343
+ transform: perspective(0px) rotateX(90deg) rotateY(0deg) rotateZ(0deg);
344
  }
345
+ .eae-fb-animate-flipcard.flipcard-rotate-top-down
346
+ .eae-flip-box-wrapper:hover
347
+ .eae-flip-box-front {
348
+ transform: perspective(0px) rotateX(-90deg) rotateY(0) rotateZ(0deg);
349
  }
350
+ .eae-fb-animate-flipcard.flipcard-rotate-top-down
351
+ .eae-flip-box-wrapper:hover
352
+ .eae-flip-box-back {
353
+ z-index: 99999;
354
+ transform: perspective(0px) rotateX(0deg) rotateY(0deg) rotateZ(0);
355
  }
356
 
 
357
  /* down to top */
358
  .flipcard-rotate-down-top .eae-flip-box-front {
359
+ transform: perspective(0px) rotateX(0deg) rotateY(0deg) rotateZ(0deg);
360
  }
361
  .flipcard-rotate-down-top .eae-flip-box-back {
362
+ transform: perspective(0px) rotateX(-90deg) rotateY(0deg) rotateZ(0deg);
363
  }
364
+ .eae-fb-animate-flipcard.flipcard-rotate-down-top
365
+ .eae-flip-box-wrapper:hover
366
+ .eae-flip-box-front {
367
+ transform: perspective(0px) rotateX(90deg) rotateY(0) rotateZ(0deg);
368
  }
369
+ .eae-fb-animate-flipcard.flipcard-rotate-down-top
370
+ .eae-flip-box-wrapper:hover
371
+ .eae-flip-box-back {
372
+ z-index: 99999;
373
+ transform: perspective(0px) rotateX(0deg) rotateY(0deg) rotateZ(0deg);
374
  }
375
 
376
  /* left to right */
377
 
378
  .flipcard-rotate-left-right .eae-flip-box-front {
379
+ transform: perspective(0px) rotateX(0deg) rotateY(0deg) rotateZ(0deg);
380
  }
381
  .flipcard-rotate-left-right .eae-flip-box-back {
382
+ transform: perspective(0px) rotateX(0deg) rotateY(-90deg) rotateZ(0deg);
383
  }
384
+ .eae-fb-animate-flipcard.flipcard-rotate-left-right
385
+ .eae-flip-box-wrapper:hover
386
+ .eae-flip-box-front {
387
+ transform: perspective(0px) rotateX(0deg) rotateY(90deg) rotateZ(0deg);
388
  }
389
+ .eae-fb-animate-flipcard.flipcard-rotate-left-right
390
+ .eae-flip-box-wrapper:hover
391
+ .eae-flip-box-back {
392
+ z-index: 99999;
393
+ transform: perspective(0px) rotateX(0deg) rotateY(0deg) rotateZ(0deg);
394
  }
395
 
396
  /* right to left */
397
 
398
  .flipcard-rotate-right-left .eae-flip-box-front {
399
+ transform: perspective(0px) rotateX(0deg) rotateY(0deg) rotateZ(0deg);
400
  }
401
  .flipcard-rotate-right-left .eae-flip-box-back {
402
+ transform: perspective(0px) rotateX(0deg) rotateY(90deg) rotateZ(0deg);
403
  }
404
+ .eae-fb-animate-flipcard.flipcard-rotate-right-left
405
+ .eae-flip-box-wrapper:hover
406
+ .eae-flip-box-front {
407
+ transform: perspective(0px) rotateX(0deg) rotateY(-90deg) rotateZ(0deg);
408
  }
409
+ .eae-fb-animate-flipcard.flipcard-rotate-right-left
410
+ .eae-flip-box-wrapper:hover
411
+ .eae-flip-box-back {
412
+ z-index: 99999;
413
+ transform: perspective(0px) rotateX(0deg) rotateY(0deg) rotateZ(0deg);
414
  }
415
 
416
  @keyframes batman {
417
+ 0% {
418
+ transform: scale(1, 1) rotateZ(0);
419
+ }
420
+ 100% {
421
+ transform: scale(0, 0) rotateZ(720deg);
422
+ opacity: 0;
423
+ }
424
  }
425
 
426
+ .eae-flip-box-front i,
427
+ .eae-flip-box-back i {
428
+ font-size: 32px;
429
+ height: 1em;
430
+ width: 1em;
431
+ position: relative;
432
+ display: block;
433
+ }
434
 
435
+ .eae-flip-box-front i:before,
436
+ .eae-flip-box-back i:before {
437
+ position: absolute;
438
+ left: 50%;
439
+ -webkit-transform: translate(-50%);
440
+ -moz-transform: translate(-50%);
441
+ -ms-transform: translate(-50%);
442
+ -o-transform: translate(-50%);
443
+ transform: translate(-50%);
444
+ }
445
+ .eae-fb-icon-view-framed {
446
+ border: 1px solid #92be43;
447
+ }
448
+ .eae-fb-icon-shape-circle {
449
+ border-radius: 50%;
450
+ }
451
+ .eae-flip-box-wrapper .icon-wrapper {
452
+ display: inline-block;
453
+ padding: 10px;
454
+ line-height: 1;
455
  }
 
 
 
456
 
457
+ .eae-flip-box-wrapper .front-icon-title,
458
+ .eae-flip-box-wrapper .back-icon-title {
459
+ margin: 10px auto;
460
+ color: #fff;
461
+ }
462
 
463
+ .eae-flip-box-wrapper .flipbox-content {
464
+ display: block;
465
+ position: relative;
466
+ top: 50%;
467
+ transform: translateY(-50%);
468
+ -ms-transform: translateY(-50%);
469
+ }
470
+ .flipbox-content p {
471
+ margin-bottom: 10px;
472
+ }
473
+ .eae-fb-button {
474
+ display: inline-block;
475
+ padding: 5px 10px;
476
+ }
477
 
478
+ .eae-flip-box-front {
479
+ background: #a0ce4e;
480
+ }
481
+ .eae-flip-box-back {
482
+ background: #73b9dc;
483
+ }
484
 
485
  @media only screen and (max-width: 768px) {
486
+ .flipbox-content,
487
+ .eae-flip-box-front,
488
+ .eae-flip-box-back {
489
+ cursor: pointer;
490
+ overflow: visible !important;
491
+ transform-style: preserve-3d;
492
+ -webkit-transform-style: preserve-3d;
493
+ }
494
  }
495
  /**
496
  Shape Separator
497
  **/
498
+ .elementor-widget-wts-shape-separator svg {
499
+ display: block;
500
+ }
501
 
502
  /**
503
  Post List
504
  **/
505
+ .wts-eae-pl-wrapper ul {
506
+ margin: 0;
507
+ }
508
+ .wts-eae-pl-wrapper ul li {
509
+ list-style: none;
510
+ overflow: hidden;
511
+ margin-bottom: 10px;
512
+ }
513
+ .eae-pl-img-align-none .eae-pl-image-wrapper a {
514
+ text-align: center;
515
+ }
516
+ .eae-pl-title {
517
+ margin: 0;
518
  }
519
+ .eae-pl-title a {
520
+ display: block;
 
521
  }
 
 
 
522
 
523
+ .eae-pl-readmore a {
524
+ display: inline-block;
525
+ border-radius: 2px;
526
+ color: #fff;
527
+ padding: 4px 8px;
528
  }
529
 
530
  /**
535
  -------------------------------- */
536
 
537
  .eae-at-animation-text-wrapper {
538
+ display: inline-block;
539
+ position: relative;
540
+ text-align: left;
541
  }
542
+
543
  .eae-at-animation-text-wrapper .eae-at-animation-text {
544
+ display: inline-block;
545
+ position: absolute;
546
+ white-space: nowrap;
547
+ left: 0;
548
+ top: 0;
549
+ }
550
+ [data-elementor-device-mode="mobile"] .eae-at-animation-text {
551
+ white-space: normal;
552
  }
553
+
554
  .eae-at-animation-text-wrapper .eae-at-animation-text.is-visible {
555
+ position: relative;
556
  }
557
  .no-js .eae-at-animation-text-wrapper .eae-at-animation-text {
558
+ opacity: 0;
559
  }
560
  .no-js .eae-at-animation-text-wrapper .eae-at-animation-text.is-visible {
561
+ opacity: 1;
562
  }
563
 
564
+ .eae-animtext-wrapper {
565
+ font-size: 40px;
566
+ }
567
 
568
  /**
569
  Animated Text Styles
570
  **/
571
  .eae-st-rest-text {
572
+ display: inline-block;
573
  }
574
  .eae-st-split-text {
575
+ display: inline-block;
576
  }
577
 
578
+ body.rtl .eae-st-transform-text-title {
579
+ display: flex;
580
+ flex-direction: row-reverse;
581
+ }
582
+ body.rtl .eae-text-align-left .eae-st-transform-text-title {
583
+ justify-content: flex-start;
584
+ }
585
+ body.rtl .eae-text-align-right .eae-st-transform-text-title {
586
+ justify-content: flex-end;
587
+ }
588
+ body.rtl .eae-text-align-center .eae-st-transform-text-title {
589
+ justify-content: center;
590
+ }
591
  /* --------------------------------
592
  xtype
593
  -------------------------------- */
594
  .eae-at-animation.type .eae-at-animation-text-wrapper {
595
+ vertical-align: bottom;
596
+ overflow: hidden;
597
  }
598
  .eae-at-animation.type .eae-at-animation-text-wrapper::after {
599
+ /* vertical bar */
600
+ content: "";
601
+ position: absolute;
602
+ right: 0;
603
+ top: 50%;
604
+ bottom: auto;
605
+ -webkit-transform: translateY(-50%);
606
+ -moz-transform: translateY(-50%);
607
+ -ms-transform: translateY(-50%);
608
+ -o-transform: translateY(-50%);
609
+ transform: translateY(-50%);
610
+ height: 90%;
611
+ width: 1px;
612
  }
613
  .eae-at-animation.type .eae-at-animation-text-wrapper.waiting::after {
614
+ -webkit-animation: cd-pulse 1s infinite;
615
+ -moz-animation: cd-pulse 1s infinite;
616
+ animation: cd-pulse 1s infinite;
617
  }
618
 
619
  .eae-at-animation.type .eae-at-animation-text-wrapper.selected::after {
620
+ visibility: hidden;
621
  }
622
 
623
  .eae-at-animation.type .eae-at-animation-text {
624
+ visibility: hidden;
625
  }
626
  .eae-at-animation.type .eae-at-animation-text.is-visible {
627
+ visibility: visible;
628
  }
629
  .eae-at-animation.type i {
630
+ position: absolute;
631
+ visibility: hidden;
632
  }
633
  .eae-at-animation.type i.in {
634
+ position: relative;
635
+ visibility: visible;
636
  }
637
 
638
  @-webkit-keyframes cd-pulse {
639
+ 0% {
640
+ -webkit-transform: translateY(-50%) scale(1);
641
+ opacity: 1;
642
+ }
643
+ 40% {
644
+ -webkit-transform: translateY(-50%) scale(0.9);
645
+ opacity: 0;
646
+ }
647
+ 100% {
648
+ -webkit-transform: translateY(-50%) scale(0);
649
+ opacity: 0;
650
+ }
651
  }
652
  @-moz-keyframes cd-pulse {
653
+ 0% {
654
+ -moz-transform: translateY(-50%) scale(1);
655
+ opacity: 1;
656
+ }
657
+ 40% {
658
+ -moz-transform: translateY(-50%) scale(0.9);
659
+ opacity: 0;
660
+ }
661
+ 100% {
662
+ -moz-transform: translateY(-50%) scale(0);
663
+ opacity: 0;
664
+ }
665
  }
666
  @keyframes cd-pulse {
667
+ 0% {
668
+ -webkit-transform: translateY(-50%) scale(1);
669
+ -moz-transform: translateY(-50%) scale(1);
670
+ -ms-transform: translateY(-50%) scale(1);
671
+ -o-transform: translateY(-50%) scale(1);
672
+ transform: translateY(-50%) scale(1);
673
+ opacity: 1;
674
+ }
675
+ 40% {
676
+ -webkit-transform: translateY(-50%) scale(0.9);
677
+ -moz-transform: translateY(-50%) scale(0.9);
678
+ -ms-transform: translateY(-50%) scale(0.9);
679
+ -o-transform: translateY(-50%) scale(0.9);
680
+ transform: translateY(-50%) scale(0.9);
681
+ opacity: 0;
682
+ }
683
+ 100% {
684
+ -webkit-transform: translateY(-50%) scale(0);
685
+ -moz-transform: translateY(-50%) scale(0);
686
+ -ms-transform: translateY(-50%) scale(0);
687
+ -o-transform: translateY(-50%) scale(0);
688
+ transform: translateY(-50%) scale(0);
689
+ opacity: 0;
690
+ }
691
  }
692
 
693
  /**
697
  Primary style
698
  -------------------------------- */
699
  .eae-img-comp-container {
700
+ width: 100%;
701
+ position: relative;
702
+ text-align: center;
703
  }
704
  .eae-img-comp-container img {
705
+ vertical-align: middle;
706
  }
707
  .eae-img-comp-img {
708
+ /*position: absolute;
709
  width: 100%;
710
  height: 100%;
711
  overflow:hidden;*/
712
 
713
+ position: absolute;
714
+ top: 0px;
715
+ left: 0px;
716
+ height: 100%;
717
+ width: 100%;
718
+ overflow: hidden;
719
+ transform: translateZ(0px);
720
+ backface-visibility: hidden;
721
  }
722
+ .eae-img-comp-img img {
723
+ display: block;
724
+ max-width: 100%;
725
+ width: 100%;
726
  }
727
  .eae-img-comp-slider {
728
+ position: absolute;
729
+ z-index: 9;
730
+ /*set the appearance of the slider:*/
731
+ width: 40px;
732
+ height: 40px;
733
+ background-color: #2196f3;
734
+ opacity: 1;
735
+ border-radius: 50%;
736
+ }
737
+ .icon-horizontal {
738
+ cursor: ew-resize;
739
+ }
740
+ .icon-vertical {
741
+ cursor: n-resize;
742
+ }
743
+
744
+ .eae-img-comp-overlay {
745
+ }
746
+ .mode-horizontal .eae-img-comp-overlay img {
747
+ position: absolute;
748
+ left: 0;
749
+ top: 0;
750
+ display: block;
751
+ width: auto;
752
+ height: 100% !important;
753
+ max-width: none !important;
754
+ }
755
+
756
+ .mode-vertical .eae-img-comp-overlay img {
757
+ position: absolute;
758
+ left: 0;
759
+ top: 0;
760
+ display: block;
761
+ width: 100%;
762
+ height: auto !important;
763
+ max-width: none !important;
764
+ }
765
+
766
+ .eae-slider-icon,
767
+ .eae-img-comp-slider svg {
768
+ top: 50%;
769
+ transform: translateY(-50%) translateX(-50%);
770
+ position: absolute;
771
+ left: 50%;
772
+ color: white;
773
+ }
774
+ .elementor-widget-wts-ab-image {
775
+ text-align: center;
 
776
  }
777
+ .elementor-widget-wts-ab-image .elementor-widget-container {
778
+ display: inline-block;
779
+ margin: 0 auto !important;
780
+ overflow: hidden;
781
  }
782
 
783
+ .eae-text-before {
784
+ position: absolute !important;
785
+ padding: 10px;
786
+ transition: transform 0.3s 0.7s, opacity 0.3s 0.7s;
787
+ color: #d36118;
788
+ z-index: 0;
789
+ background: rgba(255, 255, 255, 0.5);
790
+ margin: 20px;
791
  }
792
 
793
+ .eae-text-after {
794
+ position: absolute !important;
795
+ padding: 10px;
796
+ transition: transform 0.3s 0.7s, opacity 0.3s 0.7s;
797
+ color: #d36118;
798
+ z-index: 0;
799
+ background: rgba(255, 255, 255, 0.5);
800
+ margin: 20px;
801
  }
802
 
803
  /* Test CSS */
804
 
805
+ .divTest {
806
+ display: inline-block;
807
+ background-color: #00a0d2;
808
+ padding: 20px;
809
  }
810
 
 
811
  /*.eae-particle-wrapper{*/
812
  /* width:100%;*/
813
  /* height:100%;*/
816
  /* top:0;*/
817
  /*}*/
818
 
 
819
  /*.particles-js-canvas-el{ height:100%; position:absolute; }*/
820
 
821
+ .eae-particle-wrapper {
822
+ position: absolute;
823
+ left: 0;
824
+ top: 0;
 
825
  }
826
+ .eae-particle-wrapper.eae-particle-area {
827
+ width: 100%;
828
+ height: 100%;
829
  }
830
 
831
+ body:not(.elementor-editor-active) .eae-particle-wrapper {
832
+ width: 100%;
833
+ height: 100%;
834
  }
835
 
836
+ body:not(.elementor-editor-active)
837
+ .eae-particle-wrapper
838
+ .particles-js-canvas-el {
839
+ height: 100%;
840
+ position: absolute;
841
+ z-index: 0;
842
+ }
843
 
844
  /**
845
  BG Slider
846
  **/
847
+ .eae-section-bs {
848
+ position: absolute;
849
+ width: 100%;
850
+ height: 100%;
851
+ top: 0;
852
+ }
853
+ .eae-section-bs-inner {
854
+ width: 100%;
855
+ height: 100% !important;
856
+ }
857
 
858
  /**
859
  Popup
860
  **/
861
  .eae-popup.mfp-bg {
862
+ top: 0;
863
+ left: 0;
864
+ width: 100%;
865
+ height: 100%;
866
+ z-index: 1042;
867
+ overflow: hidden;
868
+ position: fixed;
869
+ background: #0b0b0b;
870
+ opacity: 0.8;
871
+ }
872
 
873
+ .eae-popup-link {
874
+ padding: 12px 24px;
875
+ color: #fff;
876
+ display: inline-flex;
877
+ line-height: 1;
878
  }
879
 
880
+ .eae-popup-link svg {
881
+ fill: #fff;
882
  }
883
+ .eae-popup-link:hover {
884
+ color: #fff;
885
  }
886
  .eae-popup.mfp-wrap {
887
+ top: 0;
888
+ left: 0;
889
+ width: 100%;
890
+ height: 100%;
891
+ z-index: 1043;
892
+ position: fixed;
893
+ outline: none !important;
894
+ -webkit-backface-visibility: hidden;
895
+ }
896
 
897
  .eae-popup .mfp-container {
898
+ text-align: center;
899
+ position: absolute;
900
+ width: 100%;
901
+ height: 100%;
902
+ left: 0;
903
+ top: 0;
904
+ padding: 0 8px;
905
+ box-sizing: border-box;
906
+ }
907
 
908
  .eae-popup .mfp-container:before {
909
+ content: "";
910
+ display: inline-block;
911
+ height: 100%;
912
+ vertical-align: middle;
913
+ }
914
 
915
  .eae-popup .mfp-align-top .mfp-container:before {
916
+ display: none;
917
+ }
918
 
919
  .eae-popup .mfp-content {
920
+ position: relative;
921
+ display: inline-block;
922
+ vertical-align: middle;
923
+ margin: 0 auto;
924
+ text-align: left;
925
+ z-index: 1045;
 
926
  }
927
+ .eae-modal-content {
928
+ padding: 20px;
929
  }
930
+ .eae-pop-btn-align-left .eae-popup-wrapper {
931
+ text-align: left;
932
  }
933
+ .eae-pop-btn-align-right .eae-popup-wrapper {
934
+ text-align: right;
935
  }
936
+ .eae-pop-btn-align-center .eae-popup-wrapper {
937
+ text-align: center;
938
  }
939
+ .eae-pop-btn-align-justify .eae-popup-wrapper {
940
+ text-align: center;
941
  }
942
+ .eae-pop-btn-align-justify .eae-popup-wrapper a {
943
+ display: block;
944
  }
945
  .eae-popup .mfp-inline-holder .mfp-content,
946
  .eae-popup .mfp-ajax-holder .mfp-content {
947
+ width: 50%;
948
+ background-color: #fff;
949
+ cursor: auto;
950
+ overflow: hidden;
951
  }
952
 
953
  .eae-popup .mfp-ajax-cur {
954
+ cursor: progress;
955
+ }
956
 
957
+ .eae-popup .mfp-zoom-out-cur,
958
+ .eae-popup .mfp-zoom-out-cur .mfp-image-holder .eae-close {
959
+ cursor: -moz-zoom-out;
960
+ cursor: -webkit-zoom-out;
961
+ cursor: zoom-out;
962
+ }
963
 
964
  .eae-popup .mfp-zoom {
965
+ cursor: pointer;
966
+ cursor: -webkit-zoom-in;
967
+ cursor: -moz-zoom-in;
968
+ cursor: zoom-in;
969
+ }
970
 
971
  .eae-popup.mfp-auto-cursor .mfp-content {
972
+ cursor: auto;
973
+ }
974
 
975
  .eae-popup .eae-close,
976
  .eae-popup .mfp-arrow,
977
  .eae-popup .mfp-preloader,
978
  .eae-popup .mfp-counter {
979
+ -webkit-user-select: none;
980
+ -moz-user-select: none;
981
+ user-select: none;
982
+ }
983
 
984
  .mfp-loading.mfp-figure {
985
+ display: none;
986
+ }
987
 
988
  .mfp-hide {
989
+ display: none !important;
990
+ }
991
 
992
  .eae-popup .mfp-preloader {
993
+ color: #ccc;
994
+ position: absolute;
995
+ top: 50%;
996
+ width: auto;
997
+ text-align: center;
998
+ margin-top: -0.8em;
999
+ left: 8px;
1000
+ right: 8px;
1001
+ z-index: 1044;
1002
+ }
1003
  .eae-popup .mfp-preloader a {
1004
+ color: #ccc;
1005
+ }
1006
  .eae-popup .mfp-preloader a:hover {
1007
+ color: #fff;
1008
+ }
1009
 
1010
  .mfp-s-ready .mfp-preloader {
1011
+ display: none;
1012
+ }
1013
 
1014
  .mfp-s-error .mfp-content {
1015
+ display: none;
1016
+ }
1017
 
1018
  button.eae-close,
1019
  button.mfp-arrow {
1020
+ overflow: visible;
1021
+ cursor: pointer;
1022
+ background: transparent;
1023
+ border: 0;
1024
+ -webkit-appearance: none;
1025
+ display: block;
1026
+ outline: none;
1027
+ padding: 0;
1028
+ z-index: 1046;
1029
+ box-shadow: none;
1030
+ touch-action: manipulation;
1031
+ }
1032
 
1033
  button::-moz-focus-inner {
1034
+ padding: 0;
1035
+ border: 0;
1036
+ }
1037
 
1038
  .eae-popup .eae-close {
1039
+ width: 28px;
1040
+ height: 28px;
1041
+ line-height: 1em;
1042
+ position: absolute;
1043
+ right: 10px;
1044
+ top: 10px;
1045
+ text-decoration: none;
1046
+ text-align: center;
1047
+ opacity: 1;
1048
+ color: #fff;
1049
+ font-size: 28px;
1050
+ z-index: 1500;
1051
  }
1052
  .eae-close:hover,
1053
  .eae-close:focus {
1054
+ opacity: 1;
1055
+ cursor: pointer;
1056
  }
1057
  .eae-close:active {
1058
+ top: 1px;
1059
+ }
1060
+ .eae-close:before {
1061
+ top: 50%;
1062
+ left: 50%;
1063
+ position: absolute;
1064
+ transform: translate(-50%, -50%);
1065
  }
1066
  .eae-popup.eae-close-btn-in .eae-close {
1067
+ color: #fff;
1068
  }
1069
 
1070
  .mfp-image-holder .eae-close,
1071
  .mfp-iframe-holder .eae-close {
1072
+ color: #fff;
1073
+ right: -6px;
1074
+ text-align: right;
1075
+ padding-right: 6px;
1076
+ width: 100%;
1077
+ }
1078
 
1079
  .mfp-counter {
1080
+ position: absolute;
1081
+ top: 0;
1082
+ right: 0;
1083
+ color: #ccc;
1084
+ font-size: 12px;
1085
+ line-height: 18px;
1086
+ white-space: nowrap;
1087
+ }
1088
 
1089
  .mfp-arrow {
1090
+ position: absolute;
1091
+ opacity: 0.65;
1092
+ margin: 0;
1093
+ top: 50%;
1094
+ margin-top: -55px;
1095
+ padding: 0;
1096
+ width: 90px;
1097
+ height: 110px;
1098
+ -webkit-tap-highlight-color: transparent;
1099
+ }
1100
  .mfp-arrow:active {
1101
+ margin-top: -54px;
1102
+ }
1103
  .mfp-arrow:hover,
1104
  .mfp-arrow:focus {
1105
+ opacity: 1;
1106
+ }
1107
  .mfp-arrow:before,
1108
  .mfp-arrow:after {
1109
+ content: "";
1110
+ display: block;
1111
+ width: 0;
1112
+ height: 0;
1113
+ position: absolute;
1114
+ left: 0;
1115
+ top: 0;
1116
+ margin-top: 35px;
1117
+ margin-left: 35px;
1118
+ border: medium inset transparent;
1119
+ }
1120
  .mfp-arrow:after {
1121
+ border-top-width: 13px;
1122
+ border-bottom-width: 13px;
1123
+ top: 8px;
1124
+ }
1125
  .mfp-arrow:before {
1126
+ border-top-width: 21px;
1127
+ border-bottom-width: 21px;
1128
+ opacity: 0.7;
1129
+ }
1130
 
1131
  .mfp-arrow-left {
1132
+ left: 0;
1133
+ }
1134
  .mfp-arrow-left:after {
1135
+ border-right: 17px solid #fff;
1136
+ margin-left: 31px;
1137
+ }
1138
  .mfp-arrow-left:before {
1139
+ margin-left: 25px;
1140
+ border-right: 27px solid #3f3f3f;
1141
+ }
1142
 
1143
  .mfp-arrow-right {
1144
+ right: 0;
1145
+ }
1146
  .mfp-arrow-right:after {
1147
+ border-left: 17px solid #fff;
1148
+ margin-left: 39px;
1149
+ }
1150
  .mfp-arrow-right:before {
1151
+ border-left: 27px solid #3f3f3f;
1152
+ }
1153
 
1154
  .mfp-iframe-holder {
1155
+ padding-top: 40px;
1156
+ padding-bottom: 40px;
1157
+ }
1158
  .mfp-iframe-holder .mfp-content {
1159
+ line-height: 0;
1160
+ width: 100%;
1161
+ max-width: 900px;
1162
+ }
1163
  .mfp-iframe-holder .eae-close {
1164
+ top: -40px;
1165
+ }
1166
 
1167
  .mfp-iframe-scaler {
1168
+ width: 100%;
1169
+ height: 0;
1170
+ overflow: hidden;
1171
+ padding-top: 56.25%;
1172
+ }
1173
  .mfp-iframe-scaler iframe {
1174
+ position: absolute;
1175
+ display: block;
1176
+ top: 0;
1177
+ left: 0;
1178
+ width: 100%;
1179
+ height: 100%;
1180
+ box-shadow: 0 0 8px rgba(0, 0, 0, 0.6);
1181
+ background: #000;
1182
+ }
1183
 
1184
  /* Main image in popup */
1185
  img.mfp-img {
1186
+ width: auto;
1187
+ max-width: 100%;
1188
+ height: auto;
1189
+ display: block;
1190
+ line-height: 0;
1191
+ box-sizing: border-box;
1192
+ padding: 40px 0 40px;
1193
+ margin: 0 auto;
1194
+ }
1195
 
1196
  /* The shadow behind the image */
1197
  .eae-popup .mfp-figure {
1198
+ line-height: 0;
1199
+ }
1200
  .eae-popup .mfp-figure:after {
1201
+ content: "";
1202
+ position: absolute;
1203
+ left: 0;
1204
+ top: 40px;
1205
+ bottom: 40px;
1206
+ display: block;
1207
+ right: 0;
1208
+ width: auto;
1209
+ height: auto;
1210
+ z-index: -1;
1211
+ box-shadow: 0 0 8px rgba(0, 0, 0, 0.6);
1212
+ background: #444;
1213
+ }
1214
  .eae-popup .mfp-figure small {
1215
+ color: #bdbdbd;
1216
+ display: block;
1217
+ font-size: 12px;
1218
+ line-height: 14px;
1219
+ }
1220
  .eae-popup .mfp-figure figure {
1221
+ margin: 0;
1222
+ }
1223
 
1224
  .eae-popup .mfp-bottom-bar {
1225
+ margin-top: -36px;
1226
+ position: absolute;
1227
+ top: 100%;
1228
+ left: 0;
1229
+ width: 100%;
1230
+ cursor: auto;
1231
+ }
1232
 
1233
  .eae-popup .mfp-title {
1234
+ text-align: left;
1235
+ line-height: 1;
1236
+ word-wrap: break-word;
1237
+ color: #ffffff;
1238
+ background-color: #4054b2;
1239
+ padding: 20px 20px 20px 20px;
1240
  }
1241
 
1242
  .eae-popup .mfp-image-holder .mfp-content {
1243
+ max-width: 100%;
1244
+ }
1245
 
1246
  .eae-popup .mfp-gallery .mfp-image-holder .mfp-figure {
1247
+ cursor: pointer;
1248
+ }
1249
 
1250
+ @media screen and (max-width: 800px) and (orientation: landscape),
1251
+ screen and (max-height: 300px) {
1252
+ /**
1253
  * Remove all paddings around the image on small screen
1254
  */
1255
+ .mfp-img-mobile .mfp-image-holder {
1256
+ padding-left: 0;
1257
+ padding-right: 0;
1258
+ }
1259
+ .mfp-img-mobile img.mfp-img {
1260
+ padding: 0;
1261
+ }
1262
+ .mfp-img-mobile .mfp-figure:after {
1263
+ top: 0;
1264
+ bottom: 0;
1265
+ }
1266
+ .mfp-img-mobile .mfp-figure small {
1267
+ display: inline;
1268
+ margin-left: 5px;
1269
+ }
1270
+ .mfp-img-mobile .mfp-bottom-bar {
1271
+ background: rgba(0, 0, 0, 0.6);
1272
+ bottom: 0;
1273
+ margin: 0;
1274
+ top: auto;
1275
+ padding: 3px 5px;
1276
+ position: fixed;
1277
+ box-sizing: border-box;
1278
+ }
1279
+ .mfp-img-mobile .mfp-bottom-bar:empty {
1280
+ padding: 0;
1281
+ }
1282
+ .mfp-img-mobile .mfp-counter {
1283
+ right: 5px;
1284
+ top: 3px;
1285
+ }
1286
+ .mfp-img-mobile .eae-close {
1287
+ top: 0;
1288
+ right: 0;
1289
+ width: 35px;
1290
+ height: 35px;
1291
+ line-height: 35px;
1292
+ background: rgba(0, 0, 0, 0.6);
1293
+ position: fixed;
1294
+ text-align: center;
1295
+ padding: 0;
1296
+ }
1297
+ }
1298
 
1299
+ .elementor-element.eae-animated-gradient-yes,
1300
+ .elementor-element.eae-animated-gradient-yes .animated-gradient {
1301
+ background-size: 400% 400% !important;
1302
+ -webkit-animation: AnimateGradient 15s ease-in-out infinite;
1303
+ -moz-animation: AnimateGradient 15s ease-in-out infinite;
1304
+ animation: AnimateGradient 15s ease-in-out infinite;
1305
  }
1306
+ .animated-gradient {
1307
+ position: absolute;
1308
+ top: 0;
1309
+ left: 0;
1310
+ height: 100%;
1311
+ width: 100%;
1312
  }
1313
  @-webkit-keyframes AnimateGradient {
1314
+ 0% {
1315
+ background-position: 0% 50%;
1316
+ }
1317
+ 50% {
1318
+ background-position: 100% 50%;
1319
+ }
1320
+ 100% {
1321
+ background-position: 0% 50%;
1322
+ }
1323
  }
1324
  @-moz-keyframes AnimateGradient {
1325
+ 0% {
1326
+ background-position: 0% 50%;
1327
+ }
1328
+ 50% {
1329
+ background-position: 100% 50%;
1330
+ }
1331
+ 100% {
1332
+ background-position: 0% 50%;
1333
+ }
1334
  }
1335
  @keyframes AnimateGradient {
1336
+ 0% {
1337
+ background-position: 0% 50%;
1338
+ }
1339
+ 50% {
1340
+ background-position: 100% 50%;
1341
+ }
1342
+ 100% {
1343
+ background-position: 0% 50%;
1344
+ }
1345
  }
1346
 
1347
  /*--------------------------------Testimonial Slider----------------------------*/
1348
 
1349
+ .eae-swiper-outer-wrapper .swiper-slide {
1350
+ height: auto;
1351
+ overflow: inherit;
1352
  }
1353
+ .eae-swiper-outer-wrapper .swiper-slide-wrapper,
1354
+ .eae-swiper-outer-wrapper .testimonial-wrapper {
1355
+ height: 100%;
1356
  }
1357
 
1358
  .eae-grid {
1359
+ display: flex;
1360
+ flex-wrap: wrap;
1361
+ flex-direction: row;
1362
  }
1363
  .eae-masonry- .eae-grid-item {
1364
+ position: relative;
1365
+ height: 100%;
1366
  }
1367
+ .eae-masonry- .eae-grid-item .testimonial-wrapper {
1368
+ height: 100%;
1369
  }
1370
+ .eae-grid-container {
1371
+ transition: 0.1s all ease;
1372
  }
1373
+ .eae-grid-container {
1374
+ display: inline-block;
1375
  }
1376
 
1377
+ .wrapper .content {
1378
+ margin: 10px 0;
1379
+ } /*------------------------skin-2------------------*/
1380
+ .skin-2.testimonial-wrapper {
1381
+ display: flex;
1382
+ flex-direction: column;
1383
+ background-color: #9c989821;
1384
+ min-height: 300px;
1385
+ padding: 10px 20px;
1386
+ box-shadow: 0 0 5px rgba(0, 0, 0, 0.15);
1387
+ color: #696969;
1388
+ }
1389
+ .skin-2 .content-wrapper {
1390
+ padding: 10px;
1391
+ position: relative;
1392
+ background-color: #fff;
1393
+ border-radius: 10px;
1394
+ color: #77778e;
1395
+ }
1396
+ .skin-2 i.before-content,
1397
+ .skin-2 i.after-content {
1398
+ position: absolute;
1399
+ }
1400
+ .skin-2 i.before-content {
1401
+ top: 10px;
1402
+ left: 20px;
1403
+ }
1404
+ .skin-2 i.after-content {
1405
+ bottom: 10px;
1406
+ right: 20px;
1407
+ }
1408
+ .skin-2 blockquote {
1409
+ position: relative;
1410
+ font-size: 14px;
1411
+ padding: 10px;
1412
+ font-weight: 500;
1413
+ text-align: left;
1414
+ margin: 0;
1415
+ line-height: 1.6em;
1416
+ font-style: italic;
1417
+ }
1418
+ .skin-2 blockquote::before,
1419
+ .skin-2 blockquote::after {
1420
+ font-family: "FontAwesome";
1421
+ content: "\201C";
1422
+ position: absolute;
1423
+ font-size: 50px;
1424
+ opacity: 0.3;
1425
+ font-style: normal;
1426
+ }
1427
+
1428
+ .skin-2 blockquote::before {
1429
+ top: 10px;
1430
+ left: 20px;
1431
+ }
1432
+ .skin-2 blockquote::after {
1433
+ content: "\201D";
1434
+ right: 20px;
1435
+ }
1436
+ .skin-2 .image-wrapper {
1437
+ position: relative;
1438
+ max-width: 100%;
1439
+ text-align: center;
1440
  }
1441
+ .skin-2 img {
1442
+ width: 100px;
1443
+ border-radius: 25%;
1444
  }
1445
+ .skin-2 .detail-wrapper {
1446
+ text-align: center;
1447
  }
1448
+ .skin-2 .rating-wrapper,
1449
+ .skin-2 .title,
1450
+ .skin-2 .designation,
1451
+ .skin-2 .company {
1452
+ padding: 5px 0;
1453
  }
1454
+ .skin-2 .rating-wrapper {
1455
+ color: #000080;
1456
  }
1457
 
1458
+ .skin-2 .title {
1459
+ font-weight: 800;
1460
+ color: #000000;
1461
  }
1462
+ .skin-2 blockquote p {
1463
+ margin: 10px 0 !important;
1464
  }
1465
 
1466
  /*------------------------skin-1------------------*/
1467
 
1468
+ .skin-1.testimonial-wrapper {
1469
+ display: flex;
1470
+ flex-direction: column;
1471
+ background-color: #ffffff;
1472
+ box-shadow: 0 0 5px rgba(0, 0, 0, 0.15);
1473
+ color: black;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1474
  }
1475
+ .skin-1 .content-wrapper {
1476
+ order: 0;
 
 
1477
  }
1478
+ .skin-1 .image-wrapper {
1479
+ order: 1;
1480
+ text-align: center;
1481
+ margin: 15px 0;
1482
+ }
1483
+ .skin-1 .detail-wrapper {
1484
+ order: 2;
1485
+ }
1486
+ .skin-1 .content-wrapper {
1487
+ padding: 10px;
1488
+ position: relative;
1489
+ }
1490
+ .skin-1 i.before-content,
1491
+ .skin-1 i.after-content {
1492
+ position: absolute;
1493
+ }
1494
+ .skin-1 i.before-content {
1495
+ top: 10px;
1496
+ left: 20px;
1497
+ }
1498
+ .skin-1 i.after-content {
1499
+ bottom: 10px;
1500
+ right: 20px;
1501
+ }
1502
+ .skin-1 blockquote {
1503
+ position: relative;
1504
+ background-color: #ffffff;
1505
+ font-size: 14px;
1506
+ padding: 10px;
1507
+ font-weight: 500;
1508
+ text-align: left;
1509
+ margin: 0;
1510
+ line-height: 1.6em;
1511
+ font-style: italic;
1512
+ }
1513
+ .skin-1 blockquote::before,
1514
+ .skin-1 blockquote::after {
1515
+ font-family: "FontAwesome";
1516
+ content: "\201C";
1517
+ position: absolute;
1518
+ font-size: 50px;
1519
+ opacity: 0.3;
1520
+ font-style: normal;
1521
+ }
1522
+
1523
+ .skin-1 blockquote::before {
1524
+ top: 10px;
1525
+ left: 20px;
1526
+ }
1527
+ .skin-1 blockquote::after {
1528
+ content: "\201D";
1529
+ right: 20px;
1530
+ }
1531
+ .skin-1 .image-wrapper {
1532
+ position: relative;
1533
+ max-width: 100%;
1534
+ }
1535
+ .skin-1 img {
1536
+ width: 100px;
1537
+ height: auto;
1538
+ border-radius: 50%;
1539
+ }
1540
+ .skin-1 .detail-wrapper {
1541
+ display: flex;
1542
+ flex-direction: row-reverse;
1543
+ justify-content: space-between;
1544
+ padding: 10px;
1545
+ background-color: rgba(157, 163, 156, 0.18);
1546
  }
1547
+ .skin-1 .rating-wrapper,
1548
+ .skin-1 .title,
1549
+ .skin-1 .designation {
1550
+ margin: 0 5px;
1551
  }
1552
+ .skin-1 .title-wrapper {
1553
+ display: flex;
1554
+ flex-direction: row;
1555
  }
1556
+ .skin-1 .rating-wrapper {
1557
+ color: #fecc1f;
1558
  }
1559
 
1560
  /*------------------------skin-4------------------*/
1561
 
1562
+ .skin-4.testimonial-wrapper {
1563
+ flex-direction: column;
1564
+ display: flex;
1565
+ background-color: #bfbfb6bd;
1566
+ min-height: 300px;
1567
+ padding: 10px 0;
1568
+ box-shadow: 0 0 5px rgba(0, 0, 0, 0.15);
1569
+ color: #77778e;
1570
+ }
1571
+ .skin-4 .content-wrapper {
1572
+ padding: 10px;
1573
+ position: relative;
1574
+ }
1575
+ .skin-4 .content-wrapper {
1576
+ order: 2;
1577
+ color: #3c3c3c;
1578
+ }
1579
+ .skin-4 i.before-content,
1580
+ .skin-4 i.after-content {
1581
+ position: absolute;
1582
+ }
1583
+ .skin-4 i.before-content {
1584
+ top: 10px;
1585
+ left: 20px;
1586
+ }
1587
+ .skin-4 i.after-content {
1588
+ bottom: 10px;
1589
+ right: 20px;
1590
+ }
1591
+ .skin-4 blockquote {
1592
+ position: relative;
1593
+ font-size: 14px;
1594
+ padding: 10px;
1595
+ font-weight: 500;
1596
+ text-align: left;
1597
+ margin: 0;
1598
+ line-height: 1.6em;
1599
+ font-style: italic;
1600
+ }
1601
+ .skin-4 blockquote::before,
1602
+ .skin-4 blockquote::after {
1603
+ font-family: "FontAwesome";
1604
+ content: "\201C";
1605
+ position: absolute;
1606
+ font-size: 50px;
1607
+ opacity: 0.3;
1608
+ font-style: normal;
1609
+ }
1610
+
1611
+ .skin-4 blockquote::before {
1612
+ top: 10px;
1613
+ left: 20px;
1614
+ }
1615
+ .skin-4 blockquote::after {
1616
+ content: "\201D";
1617
+ right: 20px;
1618
+ }
1619
+ .skin-4 .image-wrapper {
1620
+ position: relative;
1621
+ max-width: 100%;
1622
+ text-align: center;
1623
  }
1624
+ .skin-4 img {
1625
+ width: 100px;
1626
+ border-radius: 50%;
1627
  }
1628
+ .skin-4 .detail-wrapper {
1629
+ text-align: center;
1630
  }
1631
+ .skin-4 .rating-wrapper,
1632
+ .skin-2 .title,
1633
+ .skin-2 .designation {
1634
+ padding: 5px 0;
1635
  }
1636
+ .skin-4 .rating-wrapper {
1637
+ color: #690a69;
1638
  }
1639
 
1640
+ .skin-4 .title {
1641
+ font-weight: 800;
1642
+ color: #000000;
1643
  }
1644
 
1645
  /*------------------------skin-3------------------*/
1646
 
1647
+ .skin-3.testimonial-wrapper {
1648
+ display: flex;
1649
+ flex-direction: row;
1650
+ background-color: #9c989821;
1651
+ box-shadow: 0 0 5px rgba(0, 0, 0, 0.15);
1652
+ color: black;
1653
+ overflow: hidden;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1654
  }
1655
+ .skin-3 .content-section {
1656
+ display: flex;
1657
+ flex-direction: column;
1658
+ align-self: center;
1659
+ }
1660
+ .skin-3 .content-wrapper {
1661
+ padding: 10px;
1662
+ position: relative;
1663
+ }
1664
+ .skin-3 i.before-content,
1665
+ .skin-2 i.after-content {
1666
+ position: absolute;
1667
+ }
1668
+ .skin-3 i.before-content {
1669
+ top: 10px;
1670
+ left: 20px;
1671
+ }
1672
+ .skin-3 i.after-content {
1673
+ bottom: 10px;
1674
+ right: 20px;
1675
+ }
1676
+ .skin-3 blockquote {
1677
+ position: relative;
1678
+ font-size: 18px;
1679
+ padding: 10px;
1680
+ font-weight: 500;
1681
+ text-align: left;
1682
+ margin: 0;
1683
+ line-height: 1.6em;
1684
+ font-style: italic;
1685
+ }
1686
+ .skin-3 blockquote::before,
1687
+ .skin-3 blockquote::after {
1688
+ font-family: "FontAwesome";
1689
+ content: "\201C";
1690
+ position: absolute;
1691
+ font-size: 50px;
1692
+ opacity: 0.3;
1693
+ font-style: normal;
1694
+ }
1695
+
1696
+ .skin-3 blockquote::before {
1697
+ top: 10px;
1698
+ left: 20px;
1699
+ }
1700
+ .skin-3 blockquote::after {
1701
+ content: "\201D";
1702
+ right: 20px;
1703
+ }
1704
+ .skin-3 .image-wrapper {
1705
+ position: relative;
1706
+ max-width: 30%;
1707
+ max-height: 250px;
1708
+ text-align: center;
1709
+ align-self: center;
1710
+ }
1711
+ .skin-3 img {
1712
+ width: 100%;
1713
+ }
1714
+ .testimonial-wrapper .skin-3 .eae-person-avatar {
1715
+ border-radius: 50%;
1716
+ }
1717
+ .skin-3 .detail-wrapper {
1718
+ text-align: left;
1719
+ padding-left: 20px;
1720
+ }
1721
+ .skin-3 .rating-wrapper,
1722
+ .skin-3 .title,
1723
+ .skin-3 .designation {
1724
+ padding: 3px 0;
1725
+ }
1726
+ .skin-3 .rating-wrapper {
1727
+ color: #800040;
1728
+ }
1729
+
1730
+ .skin-3 .title {
1731
+ font-weight: 800;
1732
+ }
1733
+ .eae-swiper-outer-wrapper .swiper-button-prev {
1734
+ -webkit-mask: url(arrow-left.svg) no-repeat 100% 100%;
1735
+ mask: url(arrow-left.svg) no-repeat 100% 100%;
1736
+ -webkit-mask-size: cover;
1737
+ mask-size: cover;
1738
+ background-image: none;
1739
+ background-color: #007aff;
1740
+ transform: translateY(-50%);
1741
+ margin-top: 0px;
1742
+ }
1743
+ .eae-swiper-outer-wrapper .swiper-container-rtl .swiper-button-prev {
1744
+ -webkit-mask: url(arrow-right.svg) no-repeat 100% 100%;
1745
+ mask: url(arrow-right.svg) no-repeat 100% 100%;
1746
+ }
1747
+ .eae-swiper-outer-wrapper .swiper-button-next {
1748
+ -webkit-mask: url(arrow-right.svg) no-repeat 100% 100%;
1749
+ mask: url(arrow-right.svg) no-repeat 100% 100%;
1750
+ -webkit-mask-size: cover;
1751
+ mask-size: cover;
1752
+ background-image: none;
1753
+ background-color: #007aff;
1754
+ transform: translateY(-50%);
1755
+ margin-top: 0px;
1756
+ }
1757
+ .eae-swiper-outer-wrapper .swiper-container-rtl .swiper-button-next {
1758
+ -webkit-mask: url(arrow-left.svg) no-repeat 100% 100%;
1759
+ mask: url(arrow-left.svg) no-repeat 100% 100%;
1760
+ }
1761
+ .elementor-widget-wts-testimonial-slider
1762
+ .eae-swiper-outer-wrapper
1763
+ .swiper-button-prev,
1764
+ .elementor-widget-wts-testimonial-slider
1765
+ .eae-swiper-outer-wrapper
1766
+ .swiper-button-next {
1767
+ -webkit-mask: none;
1768
+ mask: none;
1769
+ -webkit-mask-size: unset;
1770
+ mask-size: unset;
1771
+ background-image: none;
1772
+ background-color: unset;
1773
+ width: auto;
1774
+ height: auto;
1775
+ transform: translateY(-50%);
1776
+ margin-top: 0px;
1777
+ }
1778
+
1779
+ .swiper-container .swiper-button-next i,
1780
+ .swiper-container .swiper-button-prev i {
1781
+ width: 1em;
1782
+ height: 1em;
1783
+ text-align: center;
1784
+ position: relative;
1785
+ }
1786
+
1787
+ .elementor-widget-wts-testimonial-slider
1788
+ .eae-swiper-outer-wrapper
1789
+ .eae-swiper-button-wrapper {
1790
+ position: absolute;
1791
+ height: auto;
1792
+ line-height: 0;
1793
+ }
1794
+
1795
+ .eae-hpos-right.eae-vpos-top .eae-swiper-button-wrapper {
1796
+ bottom: auto;
1797
+ top: 0;
1798
+ width: auto;
1799
+ right: 0;
1800
+ }
1801
+ .eae-vpos-top.eae-hpos-left .eae-swiper-button-wrapper {
1802
+ bottom: auto;
1803
+ top: 0;
1804
+ width: auto;
1805
+ left: 0;
1806
+ }
1807
+ .eeae-hpos-right.eae-vpos-bottom .eae-swiper-button-wrapper {
1808
+ bottom: 0;
1809
+ top: auto;
1810
+ width: auto;
1811
+ right: 0;
1812
+ }
1813
+ .eae-vpos-bottom.eae-hpos-left .eae-swiper-button-wrapper {
1814
+ bottom: 0;
1815
+ top: auto;
1816
+ width: auto;
1817
+ left: 0;
1818
+ }
1819
+ .eae-hpos-right.eae-vpos-middle .eae-swiper-button-wrapper {
1820
+ bottom: auto;
1821
+ top: 50%;
1822
+ width: auto;
1823
+ right: 0;
1824
+ }
1825
+ .eae-hpos-left.eae-vpos-middle .eae-swiper-button-wrapper {
1826
+ bottom: auto;
1827
+ top: 50%;
1828
+ width: auto;
1829
+ left: 0;
1830
+ }
1831
+
1832
+ .eae-hpos-right .swiper-button-prev,
1833
+ .eae-hpos-left .swiper-button-prev,
1834
+ .eae-hpos-right .swiper-button-next,
1835
+ .eae-hpos-left .swiper-button-next {
1836
+ position: relative;
1837
+ display: inline-block;
1838
+ right: auto;
1839
+ left: auto;
1840
+ }
1841
+
1842
+ .eae-hpos-right.eae-vpos-bottom .swiper-button-prev,
1843
+ .eae-hpos-right.eae-vpos-bottom .swiper-button-next {
1844
+ top: auto;
1845
+ bottom: 0;
1846
+ transform: unset;
1847
+ }
1848
+ .eae-hpos-right.eae-vpos-top .swiper-button-next,
1849
+ .eae-hpos-right.eae-vpos-top .swiper-button-prev {
1850
+ top: 0;
1851
+ bottom: auto;
1852
+ transform: unset;
1853
+ }
1854
+ .eae-hpos-left.eae-vpos-top .swiper-button-prev,
1855
+ .eae-hpos-left.eae-vpos-top .swiper-button-next {
1856
+ top: 0;
1857
+ bottom: auto;
1858
+ transform: unset;
1859
+ }
1860
+ .eae-hpos-left.eae-vpos-bottom .swiper-button-next,
1861
+ .eae-hpos-left.eae-vpos-bottom .swiper-button-prev {
1862
+ top: auto;
1863
+ bottom: 0;
1864
+ transform: unset;
1865
+ }
1866
+ .eae-hpos-center.eae-vpos-bottom .swiper-button-next,
1867
+ .eae-hpos-center.eae-vpos-bottom .swiper-button-prev {
1868
+ top: auto;
1869
+ bottom: 0;
1870
+ transform: unset;
1871
+ }
1872
+ .eae-hpos-center.eae-vpos-top .swiper-button-next,
1873
+ .eae-hpos-center.eae-vpos-top .swiper-button-prev {
1874
+ top: 0;
1875
+ bottom: auto;
1876
+ transform: unset;
1877
  }
1878
 
 
1879
  @media all and (max-width: 900px) {
1880
+ .mfp-arrow {
1881
+ -webkit-transform: scale(0.75);
1882
+ transform: scale(0.75);
1883
+ }
1884
+ .mfp-arrow-left {
1885
+ -webkit-transform-origin: 0;
1886
+ transform-origin: 0;
1887
+ }
1888
+ .mfp-arrow-right {
1889
+ -webkit-transform-origin: 100%;
1890
+ transform-origin: 100%;
1891
+ }
1892
+ .mfp-container {
1893
+ padding-left: 6px;
1894
+ padding-right: 6px;
1895
+ }
1896
  }
1897
 
1898
  /* Info Circle */
1899
  .eae-info-circle {
1900
+ position: relative;
1901
+ width: 90%;
1902
+ margin: 0 auto;
1903
+ border-radius: 50%;
1904
+ display: block;
1905
  }
1906
+
1907
+ .eae-info-circle:before {
1908
+ content: "";
1909
+ display: block;
1910
+ position: absolute;
1911
+ top: 4%;
1912
+ left: 4%;
1913
+ width: 92%;
1914
+ height: 92%;
1915
+ border-radius: 50%;
1916
+ z-index: 1;
1917
+ -webkit-box-sizing: border-box;
1918
+ -moz-box-sizing: border-box;
1919
+ box-sizing: border-box;
1920
+ pointer-events: none;
1921
  }
1922
 
1923
  .eae-info-circle:after {
1924
+ content: "";
1925
+ display: block;
1926
+ padding-top: 100%;
1927
  }
1928
 
1929
  .eae-info-circle .eae-ic-icon-wrap {
1930
+ position: absolute;
1931
+ display: inline-block;
1932
+ top: 50%;
1933
+ left: 50%;
1934
+ z-index: 2;
1935
+ line-height: 1em;
1936
+ vertical-align: middle;
1937
+ overflow: hidden;
1938
+ max-width: 100%;
1939
  }
1940
 
1941
  .eae-info-circle .eae-info-circle-item {
1942
+ top: 0;
1943
+ left: 0;
1944
+ width: 100%;
1945
+ height: 100%;
1946
+ display: block;
1947
+ }
1948
+
1949
+ .eae-info-circle
1950
+ .eae-info-circle-item.eae-active
1951
+ .eae-info-circle-item__content-wrap {
1952
+ visibility: visible;
1953
+ opacity: 1;
1954
+ display: flex;
1955
  }
1956
 
1957
  .eae-info-circle .eae-info-circle-item__content-wrap {
1958
+ visibility: visible;
1959
+ display: none;
1960
+ height: 91%;
1961
+ width: 91%;
1962
+ opacity: 0;
1963
+ top: 50%;
1964
+ transform: translateY(-50%) translateX(-50%);
1965
+ position: absolute;
1966
+ left: 50%;
1967
+ border-radius: 50%;
1968
+ overflow: hidden;
1969
+ -webkit-box-sizing: border-box;
1970
+ -moz-box-sizing: border-box;
1971
+ box-sizing: border-box;
 
1972
  }
1973
 
1974
  .eae-info-circle .eae-info-circle-item__content-wrap:before {
1975
+ content: "";
1976
+ display: inline-block;
1977
+ height: 100%;
1978
+ vertical-align: middle;
1979
  }
1980
 
1981
  .eae-info-circle .eae-info-circle-item__content {
1982
+ display: inline-block;
1983
+ top: 50%;
1984
+ transform: translateY(-50%) translateX(-50%);
1985
+ position: absolute;
1986
+ left: 50%;
1987
+ vertical-align: middle;
1988
+ z-index: 1;
1989
+ max-height: 100%;
1990
+ overflow: auto;
1991
+ -webkit-box-sizing: border-box;
1992
+ -moz-box-sizing: border-box;
1993
+ box-sizing: border-box;
1994
+ text-align: center;
1995
+ width: 75%;
1996
  }
1997
 
 
1998
  /* Mobile */
1999
  @media screen and (max-width: 767px) {
2000
+ .eae-info-circle.eae-info-circle .eae-info-circle-item__content-wrap:before {
2001
+ display: none;
2002
+ }
2003
+ .eae-info-circle:before,
2004
+ .eae-info-circle:after {
2005
+ display: none;
2006
+ }
2007
 
2008
+ .eae-info-circle {
2009
+ width: 100% !important;
2010
+ }
2011
 
2012
+ .eae-info-circle-wrapper:before,
2013
+ .eae-info-circle-wrapper:after {
2014
+ display: none;
2015
+ }
2016
+ .eae-info-circle .eae-ic-icon-wrap {
2017
+ display: block;
2018
+ text-align: center;
2019
+ position: relative !important;
2020
+ left: unset !important;
2021
+ margin-left: 0 !important;
2022
+ margin-top: 0 !important;
2023
+ margin-bottom: 10px;
2024
+ }
2025
+ .eae-info-circle-item {
2026
+ position: relative !important;
2027
+ border-radius: 0 !important;
2028
+ padding: 0px;
2029
+ margin: 10px 0;
2030
+ }
2031
 
2032
+ .eae-info-circle .eae-info-circle-item__content-wrap {
2033
+ visibility: visible;
2034
+ opacity: 1 !important;
2035
+ display: flex !important;
2036
+ border-radius: 0 !important;
2037
+ border: none !important;
2038
+ margin: 0 !important;
2039
+ padding-right: 0 !important;
2040
+ padding-left: 0 !important;
2041
+ padding-bottom: 0 !important;
2042
+ width: 100%;
2043
+ height: auto;
2044
+ line-height: 1.5em;
2045
+ position: relative;
2046
+ top: unset;
2047
+ left: unset;
2048
+ transform: unset;
2049
+ }
2050
 
2051
+ .eae-info-circle .eae-info-circle-item__content {
2052
+ position: relative;
2053
+ top: unset;
2054
+ left: unset;
2055
+ transform: unset;
2056
+ width: 100%;
2057
+ padding: 10px;
2058
+ }
2059
  }
2060
 
2061
  /**
2062
  New Icon
2063
  */
2064
+ .eae-icon-wrap i {
2065
+ height: 1.25em;
2066
+ width: 1.25em;
2067
+ line-height: 1.25em;
2068
+ display: block;
2069
+ }
2070
+ .eae-icon-wrap i img {
2071
+ top: 50%;
2072
+ left: 50%;
2073
+ transform: translateX(-50%) translateY(-50%);
2074
+ position: absolute;
2075
+ }
2076
+ .eae-icon {
2077
+ display: inline-block;
2078
+ text-align: center;
2079
+ vertical-align: middle;
2080
+ max-width: 100%;
2081
+ overflow: hidden;
2082
+ padding: 10px;
2083
  }
2084
 
2085
+ .eae-icon-shape-circle:not(.elementor-element) {
2086
+ border-radius: 50%;
2087
  }
2088
  .eae-icon-view-framed:not(.elementor-element) {
2089
+ border-width: 1px;
2090
+ border-style: solid;
2091
  }
2092
 
2093
+ .eae-icon-wrapper {
2094
+ display: flex;
2095
  }
2096
 
2097
+ .eae-icon-wrapper .eae-icon {
2098
+ position: absolute;
2099
+ left: 50%;
2100
+ top: 50%;
2101
+ transform: translate(-50%, -50%);
2102
+ line-height: 1;
2103
  }
2104
 
 
2105
  /**
2106
 
2107
  Timeline CSS
2109
 
2110
  **/
2111
 
 
2112
  .eae-timeline {
2113
+ position: relative;
2114
+ display: inline-block;
2115
+ width: 100%;
2116
  }
2117
 
2118
+ .eae-timline-progress-bar {
2119
+ width: 4px;
2120
+ background-color: #f45b69;
2121
+ top: 0;
2122
+ bottom: 50px;
2123
+ position: absolute;
2124
+ transform: translateX(-50%);
2125
  }
2126
 
2127
+ .eae-timeline-item {
2128
+ position: relative;
2129
+ display: flex;
2130
+ flex-direction: row;
2131
+ padding-bottom: 50px;
2132
  }
2133
 
2134
+ .eae-timeline-item:last-child {
2135
+ padding-bottom: 0px !important;
2136
  }
2137
 
2138
  .eae-tl-top .eae-timeline-item {
2139
+ align-items: flex-start;
2140
  }
2141
+ .eae-tl-top .eae-tl-item-content::before {
2142
+ top: 10px;
2143
  }
2144
  .eae-timeline-item.image-position-row-reverse .eae-tl-item-image,
2145
+ .eae-timeline-item.image-position-row .eae-tl-item-image {
2146
+ margin-top: 0;
2147
+ margin-bottom: 0;
2148
  }
2149
 
2150
+ .eae-tl-item-meta-wrapper-inner {
2151
+ display: none;
2152
  }
2153
  .eae-tl-bottom .eae-timeline-item {
2154
+ align-items: flex-end;
2155
  }
2156
+ .eae-tl-bottom .eae-tl-item-content::before {
2157
+ bottom: 10px;
2158
  }
2159
 
2160
  .eae-tl-center .eae-timeline-item {
2161
+ align-items: center;
2162
  }
2163
+ .eae-tl-center .eae-tl-item-content::before {
2164
+ bottom: calc(50% - 5px);
2165
  }
2166
 
2167
+ .eae-layout-center .eae-timline-progress-bar {
2168
+ left: 50%;
2169
  }
2170
  .eae-layout-center .eae-timeline-item:nth-child(odd) {
2171
+ flex-direction: row-reverse;
2172
  }
2173
+ .eae-layout-center .eae-timeline-item:nth-child(odd) .eae-tl-item-meta-wrapper {
2174
+ margin-right: 0px;
2175
+ margin-left: 0px;
2176
+ justify-content: flex-start;
2177
  }
2178
+ body:not(.rtl)[data-elementor-device-mode="tablet"]
2179
+ .eae-layout-center
2180
+ .eae-timeline-item:nth-child(odd)
2181
+ .eae-tl-content-wrapper,
2182
+ body.rtl[data-elementor-device-mode="tablet"]
2183
+ .eae-layout-center
2184
+ .eae-timeline-item:nth-child(even)
2185
+ .eae-tl-content-wrapper {
2186
+ padding-right: 20px;
2187
+ padding-left: 0px;
2188
  }
2189
+ body:not(.rtl)[data-elementor-device-mode="tablet"]
2190
+ .eae-layout-center
2191
+ .eae-timeline-item:nth-child(even)
2192
+ .eae-tl-content-wrapper,
2193
+ body.rtl[data-elementor-device-mode="tablet"]
2194
+ .eae-layout-center
2195
+ .eae-timeline-item:nth-child(odd)
2196
+ .eae-tl-content-wrapper {
2197
+ padding-right: 0px;
2198
+ padding-left: 20px;
2199
  }
2200
 
2201
+ body:not(.rtl) .eae-layout-left .eae-tl-content-wrapper {
2202
+ padding-right: 10px;
2203
+ padding-left: 20px;
2204
  }
2205
+
2206
+ body.rtl .eae-layout-left .eae-tl-content-wrapper {
2207
+ padding-right: 20px;
2208
+ padding-left: 10px;
2209
  }
2210
+ .eae-layout-left .eae-timline-progress-bar {
2211
+ display: none;
2212
  }
2213
+ .eae-layout-left .eae-tl-item-meta-wrapper {
2214
+ display: none;
2215
+ }
2216
+ .eae-layout-left .eae-tl-item-meta-wrapper-inner {
2217
+ display: block;
2218
  }
2219
 
2220
+ .eae-layout-right .eae-timline-progress-bar {
2221
+ display: none;
2222
  }
2223
+ body:not(.rtl) .eae-layout-right .eae-tl-content-wrapper {
2224
+ padding-right: 20px;
2225
+ padding-left: 10px;
2226
+ }
2227
+
2228
+ body.rtl .eae-layout-right .eae-tl-content-wrapper {
2229
+ padding-right: 10px;
2230
+ padding-left: 20px;
2231
  }
2232
+
2233
+ .eae-layout-right .eae-tl-icon-wrapper {
2234
+ order: 3;
2235
  }
2236
+ .eae-layout-right .eae-tl-item-meta-wrapper {
2237
+ display: none;
2238
  }
2239
+ .eae-layout-right .eae-tl-item-meta-wrapper-inner {
2240
+ display: block;
2241
  }
2242
 
2243
  .eae-tl-item-meta-wrapper {
2244
+ flex-grow: 1;
2245
+ order: 0;
2246
+ flex-basis: 50%;
2247
+ flex-direction: initial;
2248
+ justify-content: flex-end;
2249
+ display: flex;
2250
+ align-items: center;
2251
+ margin-right: 0px;
2252
  }
2253
+ .eae-tl-item-meta {
2254
+ padding: 0px 20px;
2255
  }
2256
 
2257
  .eae-tl-icon-wrapper {
2258
+ height: auto;
2259
+ width: auto;
2260
+ flex-grow: 0;
2261
+ flex-shrink: 0;
2262
+ order: 1;
2263
+ margin-left: 0px;
2264
+ margin-right: 0px;
2265
+ min-width: 10px;
2266
+ min-height: 10px;
2267
+ border-radius: 999px;
2268
+ position: relative;
2269
+ display: -ms-flexbox;
2270
+ display: flex;
2271
+ -ms-flex-align: center;
2272
+ align-items: center;
2273
+ -ms-flex-pack: center;
2274
+ justify-content: center;
2275
  }
2276
 
2277
  .eae-tl-content-wrapper {
2278
+ flex-grow: 1;
2279
+ order: 2;
2280
+ flex-basis: 50%;
2281
+ position: relative;
2282
+ padding-right: 0px;
2283
+ padding-left: 20px;
2284
+ }
2285
+ .eae-tl-item-content {
2286
+ background: #f4f4f4;
2287
+ padding: 25px;
2288
+ overflow: hidden;
2289
+ text-align: center;
2290
+ display: flex;
2291
+ flex-direction: row;
2292
+ }
2293
+ .eae-tl-content {
2294
+ display: inline-block;
2295
+ position: relative;
2296
+ padding: 10px;
2297
+ width: 100%;
2298
+ color: #000;
2299
+ }
2300
+
2301
+ .image-position-row
2302
+ .eae-timeline
2303
+ .eae-timeline-item:not(.custom-image-style-yes)
2304
+ .eae-content-inner,
2305
+ .image-position-row-reverse
2306
+ .eae-timeline
2307
+ .eae-timeline-item:not(.custom-image-style-yes)
2308
+ .eae-content-inner,
2309
+ .eae-timeline-item.custom-image-style-yes.image-position-row .eae-content-inner,
2310
+ .eae-timeline-item.custom-image-style-yes.image-position-row-reverse
2311
+ .eae-content-inner {
2312
+ position: relative;
2313
+ left: 50%;
2314
+ top: 50%;
2315
+ transform: translate(-50%, -50%);
2316
+ line-height: 1;
2317
+ width: 100%;
2318
  }
2319
  .custom-image-style-.image-position-row .eae-content-inner,
2320
  .custom-image-style-.image-position-row-reverse .eae-content-inner,
2321
  .custom-image-style-no.image-position-row .eae-content-inner,
2322
+ .custom-image-style-no.image-position-row-reverse .eae-content-inner {
2323
+ left: unset;
2324
+ top: unset;
2325
+ transform: unset;
2326
  }
2327
+ .eae-tl-item-image {
2328
+ display: inline-block;
2329
  }
2330
 
2331
+ .image-position-row .eae-tl-item-image img,
2332
+ .image-position-row-reverse .eae-tl-item-image img {
2333
+ object-fit: cover;
2334
+ height: 100% !important;
2335
  }
2336
+ .image-position-row .eae-tl-item-image,
2337
+ .image-position-row-reverse .eae-tl-item-image {
2338
+ margin: 0px;
2339
  }
2340
+ .image-position-column .eae-tl-item-image {
2341
+ margin: auto;
2342
  }
2343
  .custom-image-style-no.image-position-column .eae-tl-item-image,
2344
+ .custom-image-style-.image-position-column .eae-tl-item-image {
2345
+ margin: 0 auto;
2346
  }
2347
 
2348
+ .eae-pb-inner-line {
2349
+ width: 100%;
2350
+ background-color: #3d5ac3;
2351
  }
2352
 
2353
  .eae-tl-item-content::before {
2354
+ content: "";
2355
+ position: absolute;
2356
+ width: 0;
2357
+ height: 0;
2358
+ border-style: solid;
2359
+ border-width: 8px 16px 8px 0;
2360
+ border-color: transparent #f4f4f4 transparent transparent;
2361
  }
2362
 
2363
+ .eae-icon-wrapper {
2364
+ display: flex;
 
2365
  }
2366
 
2367
+ .elementor-widget-bpel-timeline .eae-icon-wrapper {
2368
+ position: absolute;
2369
+ left: 50%;
2370
+ top: 50%;
2371
+ transform: translate(-50%, -50%);
2372
+ line-height: 1;
2373
  }
2374
 
2375
+ .eae-tl-read-more {
2376
+ display: inline-block;
2377
+ padding: 5px;
2378
+ border: 2px solid #000000;
2379
  }
2380
+ .image-position-row
2381
+ .eae-timeline.eae-timeline-alternate-yes
2382
+ .eae-timeline-item:nth-child(odd):not(.custom-image-style-yes)
2383
+ .eae-tl-item-content {
2384
+ flex-direction: row-reverse !important;
2385
  }
2386
+ .image-position-row-reverse
2387
+ .eae-timeline.eae-timeline-alternate-yes
2388
+ .eae-timeline-item:nth-child(odd):not(.custom-image-style-yes)
2389
+ .eae-tl-item-content {
2390
+ flex-direction: row !important;
2391
  }
2392
  @media screen and (min-width: 1024px) {
2393
+ .eae-layout-center .eae-timeline-item:nth-child(odd) .eae-tl-content-wrapper,
2394
+ body.rtl
2395
+ .eae-layout-center
2396
+ .eae-timeline-item:nth-child(even)
2397
+ .eae-tl-content-wrapper {
2398
+ padding-right: 20px;
2399
+ padding-left: 0px;
2400
+ }
2401
+ .eae-layout-center .eae-timeline-item:nth-child(even) .eae-tl-content-wrapper,
2402
+ body.rtl
2403
+ .eae-layout-center
2404
+ .eae-timeline-item:nth-child(odd)
2405
+ .eae-tl-content-wrapper {
2406
+ padding-right: 0px;
2407
+ padding-left: 20px;
2408
+ }
2409
+
2410
+ .eae-layout-right .eae-tl-item-content::before,
2411
+ .eae-layout-center
2412
+ .eae-timeline-item:nth-child(odd)
2413
+ .eae-tl-item-content::before,
2414
+ body.rtl .eae-layout-left .eae-tl-item-content::before,
2415
+ body.rtl
2416
+ .eae-layout-center
2417
+ .eae-timeline-item:nth-child(even)
2418
+ .eae-tl-item-content::before {
2419
+ right: 4px;
2420
+ left: unset;
2421
+ border-width: 8px 0 8px 16px;
2422
+ border-color: transparent transparent transparent #f4f4f4;
2423
+ }
2424
+
2425
+ .eae-layout-left .eae-tl-item-content::before,
2426
+ .eae-layout-center
2427
+ .eae-timeline-item:nth-child(even)
2428
+ .eae-tl-item-content::before,
2429
+ body.rtl .eae-layout-right .eae-tl-item-content::before,
2430
+ body.rtl
2431
+ .eae-layout-center
2432
+ .eae-timeline-item:nth-child(odd)
2433
+ .eae-tl-item-content::before {
2434
+ left: 4px;
2435
+ right: unset;
2436
+ border-width: 8px 16px 8px 0;
2437
+ border-color: transparent #f4f4f4 transparent transparent;
2438
+ }
2439
  }
2440
  @media screen and (max-width: 1023px) and (min-width: 768px) {
2441
+ .image-position-row
2442
+ .eae-timeline.eae-timeline-alternate-yes
2443
+ .eae-timeline-item:nth-child(odd):not(.custom-image-style-yes)
2444
+ .eae-tl-item-content {
2445
+ flex-direction: row-reverse !important;
2446
+ }
2447
+ .image-position-row-reverse
2448
+ .eae-timeline.eae-timeline-alternate-yes
2449
+ .eae-timeline-item:nth-child(odd):not(.custom-image-style-yes)
2450
+ .eae-tl-item-content {
2451
+ flex-direction: row !important;
2452
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2453
 
2454
+ .eae-tl-res-style-mobile-tablet .eae-tl-item-meta-wrapper {
2455
+ display: none;
2456
+ }
2457
+ .eae-tl-res-style-mobile-tablet .eae-tl-item-meta-wrapper-inner {
2458
+ display: block;
2459
+ }
2460
+ .eae-tl-res-style-mobile-tablet.eae-tl-res-layout-left .eae-timeline-item {
2461
+ flex-direction: row !important;
2462
+ }
2463
+ .eae-tl-res-style-mobile-tablet.eae-tl-res-layout-right .eae-timeline-item {
2464
+ flex-direction: row-reverse !important;
2465
+ }
2466
+
2467
+ .eae-layout-center.eae-tl-res-style-mobile-tablet.eae-tl-res-layout-left
2468
+ .eae-timeline-item
2469
+ .eae-tl-item-content::before,
2470
+ .eae-timeline.eae-layout-center.eae-tl-res-style-mobile
2471
+ .eae-timeline-item:nth-child(even)
2472
+ .eae-tl-item-content::before,
2473
+ body:not(.rtl) .eae-layout-left .eae-tl-item-content::before,
2474
+ body:not(.rtl)
2475
+ .eae-layout-left
2476
+ .eae-timeline-item
2477
+ .eae-tl-item-content::before,
2478
+ body.rtl .eae-layout-right .eae-timeline-item .eae-tl-item-content::before,
2479
+ body.rtl .eae-layout-right .eae-tl-item-content::before,
2480
+ body.rtl
2481
+ .eae-timeline.eae-layout-center.eae-tl-res-style-mobile
2482
+ .eae-timeline-item:nth-child(odd)
2483
+ .eae-tl-item-content::before,
2484
+ body.rtl
2485
+ .eae-layout-center.eae-tl-res-style-mobile-tablet.eae-tl-res-layout-right
2486
+ .eae-timeline-item
2487
+ .eae-tl-item-content::before {
2488
+ left: 4px !important;
2489
+ border-width: 8px 16px 8px 0 !important;
2490
+ border-color: transparent #f4f4f4 transparent transparent !important;
2491
+ }
2492
+ body.rtl
2493
+ .eae-timeline.eae-layout-center.eae-tl-res-style-mobile
2494
+ .eae-timeline-item:nth-child(odd)
2495
+ .eae-tl-item-content::before {
2496
+ left: 4px !important;
2497
+ right: unset !important;
2498
+ border-width: 8px 16px 8px 0 !important;
2499
+ border-color: transparent #f4f4f4 transparent transparent !important;
2500
+ }
2501
+
2502
+ body.rtl .eae-layout-left .eae-tl-item-content::before,
2503
+ body.rtl .eae-layout-left .eae-timeline-item .eae-tl-item-content::before,
2504
+ body:not(.rtl)
2505
+ .eae-layout-right
2506
+ .eae-timeline-item
2507
+ .eae-tl-item-content::before,
2508
+ body:not(.rtl) .eae-layout-right .eae-tl-item-content::before,
2509
+ .eae-timeline.eae-layout-center.eae-tl-res-style-mobile
2510
+ .eae-timeline-item:nth-child(odd)
2511
+ .eae-tl-item-content::before,
2512
+ body:not(.rtl)
2513
+ .eae-layout-center.eae-tl-res-style-mobile-tablet.eae-tl-res-layout-right
2514
+ .eae-timeline-item
2515
+ .eae-tl-item-content::before,
2516
+ body:not(.rtl)
2517
+ .eae-tl-res-style-mobile-tablet.eae-tl-res-layout-right
2518
+ .eae-timeline-item
2519
+ .eae-tl-item-content::before,
2520
+ body.rtl
2521
+ .eae-timeline.eae-layout-center.eae-tl-res-style-mobile
2522
+ .eae-timeline-item:nth-child(even)
2523
+ .eae-tl-item-content::before,
2524
+ body.rtl
2525
+ .eae-layout-center.eae-tl-res-style-mobile-tablet.eae-tl-res-layout-left
2526
+ .eae-timeline-item
2527
+ .eae-tl-item-content::before {
2528
+ right: 4px !important;
2529
+ border-width: 8px 0 8px 16px !important;
2530
+ border-color: transparent transparent transparent #f4f4f4 !important;
2531
+ }
2532
+ body.rtl
2533
+ .eae-tl-res-style-mobile-tablet.eae-layout-center.eae-tl-res-layout-right
2534
+ .eae-timeline-item
2535
+ .eae-tl-content-wrapper,
2536
+ .eae-tl-res-style-mobile-tablet.eae-layout-center.eae-tl-res-layout-left
2537
+ .eae-timeline-item
2538
+ .eae-tl-content-wrapper {
2539
+ padding-right: 0px !important;
2540
+ padding-left: 20px !important;
2541
+ }
2542
+
2543
+ body.rtl
2544
+ .eae-tl-res-style-mobile-tablet.eae-layout-center.eae-tl-res-layout-left
2545
+ .eae-timeline-item
2546
+ .eae-tl-content-wrapper,
2547
+ .eae-tl-res-style-mobile-tablet.eae-layout-center.eae-tl-res-layout-right
2548
+ .eae-timeline-item
2549
+ .eae-tl-content-wrapper {
2550
+ padding-right: 20px !important;
2551
+ padding-left: 0px !important;
2552
+ }
2553
+ .eae-tl-res-style-mobile-tablet.eae-layout-center.eae-tl-res-layout-left
2554
+ .eae-timline-progress-bar {
2555
+ left: 13px;
2556
+ }
2557
+ .eae-tl-res-style-mobile-tablet.eae-layout-center.eae-tl-res-layout-right
2558
+ .eae-timline-progress-bar {
2559
+ left: calc(100% - 13px);
2560
+ }
2561
  }
2562
 
2563
  @media screen and (max-width: 767px) {
2564
+ .eae-tl-item-meta-wrapper {
2565
+ display: none;
2566
+ }
2567
+ .eae-tl-item-meta-wrapper-inner {
2568
+ display: block;
2569
+ }
2570
+
2571
+ .elementor-widget-bpel-timeline:not(.image-position-column)
2572
+ .eae-timeline
2573
+ .eae-tl-item-content {
2574
+ flex-direction: column-reverse !important;
2575
+ }
2576
+ .elementor-widget-bpel-timeline:not(.image-position-column) .eae-tl-content,
2577
+ .eae-tl-item-image {
2578
+ width: 100% !important;
2579
+ }
2580
+ .eae-tl-res-style-mobile.eae-tl-res-layout-left .eae-timeline-item,
2581
+ .eae-tl-res-style-mobile-tablet.eae-tl-res-layout-left .eae-timeline-item {
2582
+ flex-direction: row !important;
2583
+ }
2584
+ .eae-tl-res-style-mobile-tablet.eae-tl-res-layout-right .eae-timeline-item,
2585
+ .eae-tl-res-style-mobile.eae-tl-res-layout-right .eae-timeline-item {
2586
+ flex-direction: row-reverse !important;
2587
+ }
2588
+
2589
+ body:not(.rtl)
2590
+ .eae-tl-res-style-mobile.eae-tl-res-layout-left
2591
+ .eae-timeline-item
2592
+ .eae-tl-item-content::before,
2593
+ body:not(.rtl)
2594
+ .eae-tl-res-style-mobile-tablet.eae-tl-res-layout-left
2595
+ .eae-timeline-item
2596
+ .eae-tl-item-content::before,
2597
+ body:not(.rtl)
2598
+ .eae-layout-left
2599
+ .eae-timeline-item
2600
+ .eae-tl-item-content::before,
2601
+ .eae-timeline.eae-layout-center.eae-tl-center.eae-tl-res-style-mobile.eae-tl-res-layout-left
2602
+ .eae-timeline-item:nth-child(odd)
2603
+ .eae-tl-item-content::before,
2604
+ .eae-timeline.eae-layout-center.eae-tl-center.eae-tl-res-style-mobile-tablet.eae-tl-res-layout-left
2605
+ .eae-timeline-item:nth-child(odd)
2606
+ .eae-tl-item-content::before,
2607
+ body.rtl
2608
+ .eae-timeline.eae-tl-res-style-mobile.eae-tl-res-layout-right
2609
+ .eae-timeline-item
2610
+ .eae-tl-item-content::before,
2611
+ body.rtl
2612
+ .eae-timeline.eae-layout-right
2613
+ .eae-timeline-item
2614
+ .eae-tl-item-content::before {
2615
+ left: 4px !important;
2616
+ border-width: 8px 16px 8px 0 !important;
2617
+ border-color: transparent #f4f4f4 transparent transparent !important;
2618
+ }
2619
+
2620
+ body.rtl
2621
+ .eae-tl-res-style-mobile.eae-tl-res-layout-left
2622
+ .eae-timeline-item
2623
+ .eae-tl-item-content::before,
2624
+ body:not(.rtl)
2625
+ .eae-tl-res-style-mobile-tablet.eae-tl-res-layout-right
2626
+ .eae-timeline-item
2627
+ .eae-tl-item-content::before,
2628
+ body:not(.rtl)
2629
+ .eae-tl-res-style-mobile.eae-tl-res-layout-right
2630
+ .eae-timeline-item
2631
+ .eae-tl-item-content::before,
2632
+ body:not(.rtl)
2633
+ .eae-layout-right
2634
+ .eae-timeline-item
2635
+ .eae-tl-item-content::before,
2636
+ body.rtl .eae-layout-left .eae-timeline-item .eae-tl-item-content::before {
2637
+ right: 4px !important;
2638
+ border-width: 8px 0 8px 16px !important;
2639
+ border-color: transparent transparent transparent #f4f4f4 !important;
2640
+ }
2641
+
2642
+ body:not(.rtl)
2643
+ .eae-tl-res-style-mobile.eae-layout-center.eae-tl-res-layout-left
2644
+ .eae-timeline-item
2645
+ .eae-tl-content-wrapper,
2646
+ body:not(.rtl)
2647
+ .eae-tl-res-style-mobile-tablet.eae-layout-center.eae-tl-res-layout-left
2648
+ .eae-timeline-item
2649
+ .eae-tl-content-wrapper
2650
+ body.rtl
2651
+ .eae-timeline.eae-tl-res-style-mobile.eae-layout-center.eae-tl-res-layout-right
2652
+ .eae-timeline-item
2653
+ .eae-tl-content-wrapper,
2654
+ .eae-timeline.eae-tl-res-style-mobile-tablet.eae-layout-center.eae-tl-res-layout-right
2655
+ .eae-timeline-item
2656
+ .eae-tl-content-wrapper {
2657
+ padding-right: 0px !important;
2658
+ padding-left: 20px !important;
2659
+ }
2660
+ body:not(.rtl)
2661
+ .eae-tl-res-style-mobile.eae-layout-center.eae-tl-res-layout-right
2662
+ .eae-timeline-item
2663
+ .eae-tl-content-wrapper,
2664
+ body:not(.rtl)
2665
+ .eae-tl-res-style-mobile-tablet.eae-layout-center.eae-tl-res-layout-right
2666
+ .eae-timeline-item
2667
+ .eae-tl-content-wrapper,
2668
+ body.rtl
2669
+ .eae-tl-res-style-mobile.eae-layout-center.eae-tl-res-layout-left
2670
+ .eae-timeline-item
2671
+ .eae-tl-content-wrapper,
2672
+ body.rtl
2673
+ .eae-tl-res-style-mobile-tablet.eae-layout-center.eae-tl-res-layout-left
2674
+ .eae-timeline-item
2675
+ .eae-tl-content-wrapper {
2676
+ padding-right: 20px !important;
2677
+ padding-left: 0px !important;
2678
+ }
2679
+ .eae-tl-res-style-mobile.eae-layout-center.eae-tl-res-layout-left
2680
+ .eae-timline-progress-bar,
2681
+ .eae-tl-res-style-mobile-tablet.eae-layout-center.eae-tl-res-layout-left
2682
+ .eae-timline-progress-bar {
2683
+ left: 13px;
2684
+ }
2685
+ .eae-tl-res-style-mobile.eae-layout-center.eae-tl-res-layout-right
2686
+ .eae-timline-progress-bar,
2687
+ .eae-tl-res-style-mobile-tablet.eae-layout-center.eae-tl-res-layout-right
2688
+ .eae-timline-progress-bar {
2689
+ left: calc(100% - 13px);
2690
+ }
2691
+
2692
+ body.rtl
2693
+ .eae-layout-center.eae-timeline.eae-tl-res-style-mobile-tablet.eae-tl-res-layout-right
2694
+ .eae-timeline-item
2695
+ .eae-tl-content-wrapper
2696
+ .eae-tl-item-content::before {
2697
+ left: 4px;
2698
+ right: unset;
2699
+ }
2700
+
2701
+ body.rtl
2702
+ .eae-layout-center.eae-timeline.eae-tl-res-style-mobile-tablet.eae-tl-res-layout-left
2703
+ .eae-timeline-item
2704
+ .eae-tl-content-wrapper
2705
+ .eae-tl-item-content::before {
2706
+ left: unset;
2707
+ right: 4px;
2708
+ border-width: 8px 0 8px 16px !important;
2709
+ border-color: transparent transparent transparent #f4f4f4 !important;
2710
+ }
2711
  }
2712
 
2713
  /** EverGreen Timer **/
2714
 
2715
+ [data-element_type="eae-evergreen-timer.skin1"] .eae-evergreen-wrapper {
2716
+ display: block;
2717
+ text-align: center;
2718
  }
2719
+ [data-element_type="eae-evergreen-timer.skin1"] #eaeclockdiv {
2720
+ font-family: sans-serif;
2721
+ color: #fff;
2722
+ display: inline-block;
2723
+ font-weight: 100;
2724
+ text-align: center;
2725
+ font-size: 30px;
2726
  }
2727
 
2728
+ [data-element_type="eae-evergreen-timer.skin1"] .eae-time-wrapper {
2729
+ padding: 10px;
2730
+ border-radius: 3px;
2731
+ background: #00bf96;
2732
+ display: inline-block;
2733
+ overflow: hidden;
2734
  }
2735
 
2736
+ [data-element_type="eae-evergreen-timer.skin1"] #eaeclockdiv div > span {
2737
+ padding: 15px;
2738
+ width: 100%;
2739
+ background: #00816a;
2740
+ display: inline-block;
2741
  }
2742
 
2743
+ [data-element_type="eae-evergreen-timer.skin1"] .smalltext {
2744
+ padding: 7px;
2745
+ font-size: 16px;
2746
  }
2747
 
2748
+ [data-element_type="eae-evergreen-timer.skin1"] .eae-egt-hide {
2749
+ display: none;
2750
  }
2751
 
2752
  .eae-egt-message {
2753
+ display: none;
2754
  }
2755
 
2756
+ @media screen and (max-width: 767px) {
2757
+ [data-element_type="eae-evergreen-timer.skin1"] #eaeclockdiv div > span {
2758
+ padding: 5px;
2759
+ }
2760
 
2761
+ [data-element_type="eae-evergreen-timer.skin1"] .eae-time-wrapper {
2762
+ padding: 5px;
2763
+ }
2764
  }
2765
 
2766
  /* Skin 2 - Flip Clock Css*/
2767
 
2768
  [data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper * {
2769
+ -webkit-box-sizing: border-box;
2770
+ -moz-box-sizing: border-box;
2771
+ -ms-box-sizing: border-box;
2772
+ -o-box-sizing: border-box;
2773
+ box-sizing: border-box;
2774
+ -webkit-backface-visibility: hidden;
2775
+ -moz-backface-visibility: hidden;
2776
+ -ms-backface-visibility: hidden;
2777
+ -o-backface-visibility: hidden;
2778
+ backface-visibility: hidden;
2779
+ }
2780
+ [data-element_type="eae-evergreen-timer.skin2"] .eae-evergreen-wrapper {
2781
+ display: inline-block;
2782
+ width: 100%;
2783
+ text-align: center;
2784
+ margin: auto;
2785
  }
2786
+ [data-element_type="eae-evergreen-timer.skin2"] .timer-container {
2787
+ display: inline-block;
2788
  }
2789
  [data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper a {
2790
+ cursor: pointer;
2791
+ text-decoration: none;
2792
+ color: #ccc;
2793
  }
2794
 
2795
+ [data-element_type="eae-evergreen-timer.skin2"]
2796
+ .eae-flip-clock-wrapper
2797
+ a:hover {
2798
+ color: #fff;
2799
  }
2800
 
2801
  [data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper ul {
2802
+ list-style: none;
2803
  }
2804
 
2805
+ [data-element_type="eae-evergreen-timer.skin2"]
2806
+ .eae-flip-clock-wrapper.clearfix:before,
2807
+ [data-element_type="eae-evergreen-timer.skin2"]
2808
+ .eae-flip-clock-wrapper.clearfix:after {
2809
+ content: " ";
2810
+ display: table;
2811
  }
2812
 
2813
+ [data-element_type="eae-evergreen-timer.skin2"]
2814
+ .eae-flip-clock-wrapper.clearfix:after {
2815
+ clear: both;
2816
  }
2817
 
2818
+ [data-element_type="eae-evergreen-timer.skin2"]
2819
+ .eae-flip-clock-wrapper.clearfix {
2820
+ *zoom: 1;
2821
  }
2822
 
2823
  /* Main */
2824
  [data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper {
2825
+ font: normal 11px "Helvetica Neue", Helvetica, sans-serif;
2826
+ -webkit-user-select: none;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2827
  }
2828
 
2829
+ [data-element_type="eae-evergreen-timer.skin2"] .flip-clock-meridium {
2830
+ background: none !important;
2831
+ box-shadow: 0 0 0 !important;
2832
+ font-size: 36px !important;
 
 
 
 
 
2833
  }
2834
 
2835
+ [data-element_type="eae-evergreen-timer.skin2"] .flip-clock-meridium a {
2836
+ color: #313333;
 
 
 
2837
  }
2838
 
2839
+ [data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper {
2840
+ text-align: center;
2841
+ position: relative;
2842
+ width: 100%;
2843
+ margin: 1em;
 
 
2844
  }
2845
 
2846
+ [data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper:before,
2847
+ [data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper:after {
2848
+ content: " "; /* 1 */
2849
+ display: table; /* 2 */
2850
+ }
2851
+ [data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper:after {
2852
+ clear: both;
 
 
 
2853
  }
2854
 
2855
+ /* Skeleton */
2856
+ [data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper ul {
2857
+ position: relative;
2858
+ float: left;
2859
+ margin: 5px;
2860
+ width: 60px;
2861
+ height: 90px;
2862
+ font-size: 80px;
2863
+ font-weight: bold;
2864
+ line-height: 87px;
2865
+ border-radius: 6px;
2866
+ background: #000;
2867
  }
2868
 
2869
+ [data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper ul li {
2870
+ z-index: 1;
2871
+ position: absolute;
2872
+ left: 0;
2873
+ top: 0;
2874
+ width: 100%;
2875
+ height: 100%;
2876
+ line-height: 87px;
2877
+ text-decoration: none !important;
2878
+ }
2879
+
2880
+ [data-element_type="eae-evergreen-timer.skin2"]
2881
+ .eae-flip-clock-wrapper
2882
+ ul
2883
+ li:first-child {
2884
+ z-index: 2;
2885
+ }
2886
+
2887
+ [data-element_type="eae-evergreen-timer.skin2"]
2888
+ .eae-flip-clock-wrapper
2889
+ ul
2890
+ li
2891
+ a {
2892
+ display: block;
2893
+ height: 100%;
2894
+ -webkit-perspective: 200px;
2895
+ -moz-perspective: 200px;
2896
+ perspective: 200px;
2897
+ margin: 0 !important;
2898
+ overflow: visible !important;
2899
+ cursor: default !important;
2900
+ }
2901
+
2902
+ [data-element_type="eae-evergreen-timer.skin2"]
2903
+ .eae-flip-clock-wrapper
2904
+ ul
2905
+ li
2906
+ a
2907
+ div {
2908
+ z-index: 1;
2909
+ position: absolute;
2910
+ left: 0;
2911
+ width: 100%;
2912
+ height: 50%;
2913
+ font-size: 80px;
2914
+ overflow: hidden;
2915
+ outline: 1px solid transparent;
2916
+ }
2917
+
2918
+ [data-element_type="eae-evergreen-timer.skin2"]
2919
+ .eae-flip-clock-wrapper
2920
+ ul
2921
+ li
2922
+ a
2923
+ div
2924
+ .shadow {
2925
+ position: absolute;
2926
+ width: 100%;
2927
+ height: 100%;
2928
+ z-index: 2;
2929
+ }
2930
+
2931
+ [data-element_type="eae-evergreen-timer.skin2"]
2932
+ .eae-flip-clock-wrapper
2933
+ ul
2934
+ li
2935
+ a
2936
+ div.up {
2937
+ -webkit-transform-origin: 50% 100%;
2938
+ -moz-transform-origin: 50% 100%;
2939
+ -ms-transform-origin: 50% 100%;
2940
+ -o-transform-origin: 50% 100%;
2941
+ transform-origin: 50% 100%;
2942
+ top: 0;
2943
+ }
2944
+
2945
+ [data-element_type="eae-evergreen-timer.skin2"]
2946
+ .eae-flip-clock-wrapper
2947
+ ul
2948
+ li
2949
+ a
2950
+ div.up:after {
2951
+ content: "";
2952
+ position: absolute;
2953
+ top: 44px;
2954
+ left: 0;
2955
+ z-index: 5;
2956
+ width: 100%;
2957
+ height: 3px;
2958
+ background-color: #000;
2959
+ background-color: rgba(0, 0, 0, 0.4);
2960
+ }
2961
+
2962
+ [data-element_type="eae-evergreen-timer.skin2"]
2963
+ .eae-flip-clock-wrapper
2964
+ ul
2965
+ li
2966
+ a
2967
+ div.down {
2968
+ -webkit-transform-origin: 50% 0;
2969
+ -moz-transform-origin: 50% 0;
2970
+ -ms-transform-origin: 50% 0;
2971
+ -o-transform-origin: 50% 0;
2972
+ transform-origin: 50% 0;
2973
+ bottom: 0;
2974
+ border-bottom-left-radius: 6px;
2975
+ border-bottom-right-radius: 6px;
2976
+ }
2977
+
2978
+ [data-element_type="eae-evergreen-timer.skin2"]
2979
+ .eae-flip-clock-wrapper
2980
+ ul
2981
+ li
2982
+ a
2983
+ div
2984
+ div.inn {
2985
+ position: absolute;
2986
+ left: 0;
2987
+ z-index: 1;
2988
+ width: 100%;
2989
+ height: 200%;
2990
+ color: #ccc;
2991
+ text-shadow: 0 1px 2px #000;
2992
+ text-align: center;
2993
+ background-color: #333;
2994
+ border-radius: 6px;
2995
+ font-size: 70px;
2996
  }
2997
 
2998
+ [data-element_type="eae-evergreen-timer.skin2"]
2999
+ .eae-flip-clock-wrapper
3000
+ ul
3001
+ li
3002
+ a
3003
+ div.up
3004
+ div.inn {
3005
+ top: 0;
3006
  }
3007
 
3008
+ [data-element_type="eae-evergreen-timer.skin2"]
3009
+ .eae-flip-clock-wrapper
3010
+ ul
3011
+ li
3012
+ a
3013
+ div.down
3014
+ div.inn {
3015
+ bottom: 0;
3016
  }
3017
 
3018
  /* PLAY */
3019
+ [data-element_type="eae-evergreen-timer.skin2"]
3020
+ .eae-flip-clock-wrapper
3021
+ ul.play
3022
+ li.flip-clock-before {
3023
+ z-index: 3;
3024
  }
3025
 
3026
  [data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper .flip {
3027
+ box-shadow: 0 2px 5px rgba(0, 0, 0, 0.7);
3028
  }
3029
 
3030
+ [data-element_type="eae-evergreen-timer.skin2"]
3031
+ .eae-flip-clock-wrapper
3032
+ ul.play
3033
+ li.flip-clock-active {
3034
+ -webkit-animation: asd 0.01s 0.49s linear both;
3035
+ -moz-animation: asd 0.01s 0.49s linear both;
3036
+ animation: asd 0.01s 0.49s linear both;
3037
+ z-index: 5;
3038
  }
3039
 
3040
  [data-element_type="eae-evergreen-timer.skin2"] .flip-clock-divider {
3041
+ float: left;
3042
+ display: inline-block;
3043
+ position: relative;
3044
+ width: 20px;
3045
+ height: 100px;
3046
  }
3047
 
3048
+ [data-element_type="eae-evergreen-timer.skin2"]
3049
+ .flip-clock-divider:first-child {
3050
+ width: 0;
3051
  }
3052
 
3053
  [data-element_type="eae-evergreen-timer.skin2"] .flip-clock-dot {
3054
+ display: block;
3055
+ background: #323434;
3056
+ width: 10px;
3057
+ height: 10px;
3058
+ position: absolute;
3059
+ border-radius: 50%;
3060
+ box-shadow: 0 0 5px rgba(0, 0, 0, 0.5);
3061
+ left: 5px;
3062
  }
3063
 
3064
+ [data-element_type="eae-evergreen-timer.skin2"]
3065
+ .flip-clock-divider
3066
+ .flip-clock-label {
3067
+ position: absolute;
3068
+ top: -1.5em;
3069
+ right: -86px;
3070
+ color: black;
3071
+ text-shadow: none;
3072
  }
3073
 
3074
+ [data-element_type="eae-evergreen-timer.skin2"]
3075
+ .flip-clock-divider.minutes
3076
+ .flip-clock-label {
3077
+ right: -88px;
3078
  }
3079
 
3080
+ [data-element_type="eae-evergreen-timer.skin2"]
3081
+ .flip-clock-divider.seconds
3082
+ .flip-clock-label {
3083
+ right: -91px;
3084
  }
3085
 
3086
  [data-element_type="eae-evergreen-timer.skin2"] .flip-clock-dot.top {
3087
+ top: 30%;
3088
  }
3089
 
3090
  [data-element_type="eae-evergreen-timer.skin2"] .flip-clock-dot.bottom {
3091
+ bottom: 30%;
3092
  }
3093
 
3094
  @-webkit-keyframes asd {
3095
+ 0% {
3096
+ z-index: 2;
3097
+ }
3098
 
3099
+ 100% {
3100
+ z-index: 4;
3101
+ }
3102
  }
3103
 
3104
  @-moz-keyframes asd {
3105
+ 0% {
3106
+ z-index: 2;
3107
+ }
3108
 
3109
+ 100% {
3110
+ z-index: 4;
3111
+ }
3112
  }
3113
 
3114
  @-o-keyframes asd {
3115
+ 0% {
3116
+ z-index: 2;
3117
+ }
3118
 
3119
+ 100% {
3120
+ z-index: 4;
3121
+ }
3122
  }
3123
 
3124
  @keyframes asd {
3125
+ 0% {
3126
+ z-index: 2;
3127
+ }
3128
 
3129
+ 100% {
3130
+ z-index: 4;
3131
+ }
3132
  }
3133
 
3134
+ [data-element_type="eae-evergreen-timer.skin2"]
3135
+ .eae-flip-clock-wrapper
3136
+ ul.play
3137
+ li.flip-clock-active
3138
+ .down {
3139
+ z-index: 2;
3140
+ -webkit-animation: turn 0.5s 0.5s linear both;
3141
+ -moz-animation: turn 0.5s 0.5s linear both;
3142
+ animation: turn 0.5s 0.5s linear both;
3143
  }
3144
 
3145
  @-webkit-keyframes turn {
3146
+ 0% {
3147
+ -webkit-transform: rotateX(90deg);
3148
+ }
3149
 
3150
+ 100% {
3151
+ -webkit-transform: rotateX(0deg);
3152
+ }
3153
  }
3154
 
3155
  @-moz-keyframes turn {
3156
+ 0% {
3157
+ -moz-transform: rotateX(90deg);
3158
+ }
3159
 
3160
+ 100% {
3161
+ -moz-transform: rotateX(0deg);
3162
+ }
3163
  }
3164
 
3165
  @-o-keyframes turn {
3166
+ 0% {
3167
+ -o-transform: rotateX(90deg);
3168
+ }
3169
 
3170
+ 100% {
3171
+ -o-transform: rotateX(0deg);
3172
+ }
3173
  }
3174
 
3175
  @keyframes turn {
3176
+ 0% {
3177
+ transform: rotateX(90deg);
3178
+ }
3179
 
3180
+ 100% {
3181
+ transform: rotateX(0deg);
3182
+ }
3183
  }
3184
 
3185
+ [data-element_type="eae-evergreen-timer.skin2"]
3186
+ .eae-flip-clock-wrapper
3187
+ ul.play
3188
+ li.flip-clock-before
3189
+ .up {
3190
+ z-index: 2;
3191
+ -webkit-animation: turn2 0.5s linear both;
3192
+ -moz-animation: turn2 0.5s linear both;
3193
+ animation: turn2 0.5s linear both;
3194
  }
3195
 
3196
  @-webkit-keyframes turn2 {
3197
+ 0% {
3198
+ -webkit-transform: rotateX(0deg);
3199
+ }
3200
 
3201
+ 100% {
3202
+ -webkit-transform: rotateX(-90deg);
3203
+ }
3204
  }
3205
 
3206
  @-moz-keyframes turn2 {
3207
+ 0% {
3208
+ -moz-transform: rotateX(0deg);
3209
+ }
3210
 
3211
+ 100% {
3212
+ -moz-transform: rotateX(-90deg);
3213
+ }
3214
  }
3215
 
3216
  @-o-keyframes turn2 {
3217
+ 0% {
3218
+ -o-transform: rotateX(0deg);
3219
+ }
3220
 
3221
+ 100% {
3222
+ -o-transform: rotateX(-90deg);
3223
+ }
3224
  }
3225
 
3226
  @keyframes turn2 {
3227
+ 0% {
3228
+ transform: rotateX(0deg);
3229
+ }
3230
 
3231
+ 100% {
3232
+ transform: rotateX(-90deg);
3233
+ }
3234
  }
3235
 
3236
+ [data-element_type="eae-evergreen-timer.skin2"]
3237
+ .eae-flip-clock-wrapper
3238
+ ul
3239
+ li.flip-clock-active {
3240
+ z-index: 3;
3241
  }
3242
 
3243
  /* SHADOW */
3244
+ [data-element_type="eae-evergreen-timer.skin2"]
3245
+ .eae-flip-clock-wrapper
3246
+ ul.play
3247
+ li.flip-clock-before
3248
+ .up
3249
+ .shadow {
3250
+ background: -moz-linear-gradient(top, rgba(0, 0, 0, 0.1) 0%, black 100%);
3251
+ background: -webkit-gradient(
3252
+ linear,
3253
+ left top,
3254
+ left bottom,
3255
+ color-stop(0%, rgba(0, 0, 0, 0.1)),
3256
+ color-stop(100%, black)
3257
+ );
3258
+ background: linear, top, rgba(0, 0, 0, 0.1) 0%, black 100%;
3259
+ background: -o-linear-gradient(top, rgba(0, 0, 0, 0.1) 0%, black 100%);
3260
+ background: -ms-linear-gradient(top, rgba(0, 0, 0, 0.1) 0%, black 100%);
3261
+ background: linear, to bottom, rgba(0, 0, 0, 0.1) 0%, black 100%;
3262
+ -webkit-animation: show 0.5s linear both;
3263
+ -moz-animation: show 0.5s linear both;
3264
+ animation: show 0.5s linear both;
3265
+ }
3266
+
3267
+ [data-element_type="eae-evergreen-timer.skin2"]
3268
+ .eae-flip-clock-wrapper
3269
+ ul.play
3270
+ li.flip-clock-active
3271
+ .up
3272
+ .shadow {
3273
+ background: -moz-linear-gradient(top, rgba(0, 0, 0, 0.1) 0%, black 100%);
3274
+ background: -webkit-gradient(
3275
+ linear,
3276
+ left top,
3277
+ left bottom,
3278
+ color-stop(0%, rgba(0, 0, 0, 0.1)),
3279
+ color-stop(100%, black)
3280
+ );
3281
+ background: linear, top, rgba(0, 0, 0, 0.1) 0%, black 100%;
3282
+ background: -o-linear-gradient(top, rgba(0, 0, 0, 0.1) 0%, black 100%);
3283
+ background: -ms-linear-gradient(top, rgba(0, 0, 0, 0.1) 0%, black 100%);
3284
+ background: linear, to bottom, rgba(0, 0, 0, 0.1) 0%, black 100%;
3285
+ -webkit-animation: hide 0.5s 0.3s linear both;
3286
+ -moz-animation: hide 0.5s 0.3s linear both;
3287
+ animation: hide 0.5s 0.3s linear both;
3288
  }
3289
 
3290
  /*DOWN*/
3291
+ [data-element_type="eae-evergreen-timer.skin2"]
3292
+ .eae-flip-clock-wrapper
3293
+ ul.play
3294
+ li.flip-clock-before
3295
+ .down
3296
+ .shadow {
3297
+ background: -moz-linear-gradient(top, black 0%, rgba(0, 0, 0, 0.1) 100%);
3298
+ background: -webkit-gradient(
3299
+ linear,
3300
+ left top,
3301
+ left bottom,
3302
+ color-stop(0%, black),
3303
+ color-stop(100%, rgba(0, 0, 0, 0.1))
3304
+ );
3305
+ background: linear, top, black 0%, rgba(0, 0, 0, 0.1) 100%;
3306
+ background: -o-linear-gradient(top, black 0%, rgba(0, 0, 0, 0.1) 100%);
3307
+ background: -ms-linear-gradient(top, black 0%, rgba(0, 0, 0, 0.1) 100%);
3308
+ background: linear, to bottom, black 0%, rgba(0, 0, 0, 0.1) 100%;
3309
+ -webkit-animation: show 0.5s linear both;
3310
+ -moz-animation: show 0.5s linear both;
3311
+ animation: show 0.5s linear both;
3312
+ }
3313
+
3314
+ [data-element_type="eae-evergreen-timer.skin2"]
3315
+ .eae-flip-clock-wrapper
3316
+ ul.play
3317
+ li.flip-clock-active
3318
+ .down
3319
+ .shadow {
3320
+ background: -moz-linear-gradient(top, black 0%, rgba(0, 0, 0, 0.1) 100%);
3321
+ background: -webkit-gradient(
3322
+ linear,
3323
+ left top,
3324
+ left bottom,
3325
+ color-stop(0%, black),
3326
+ color-stop(100%, rgba(0, 0, 0, 0.1))
3327
+ );
3328
+ background: linear, top, black 0%, rgba(0, 0, 0, 0.1) 100%;
3329
+ background: -o-linear-gradient(top, black 0%, rgba(0, 0, 0, 0.1) 100%);
3330
+ background: -ms-linear-gradient(top, black 0%, rgba(0, 0, 0, 0.1) 100%);
3331
+ background: linear, to bottom, black 0%, rgba(0, 0, 0, 0.1) 100%;
3332
+ -webkit-animation: hide 0.5s 0.3s linear both;
3333
+ -moz-animation: hide 0.5s 0.3s linear both;
3334
+ animation: hide 0.5s 0.2s linear both;
3335
  }
3336
 
3337
  @-webkit-keyframes show {
3338
+ 0% {
3339
+ opacity: 0;
3340
+ }
3341
 
3342
+ 100% {
3343
+ opacity: 1;
3344
+ }
3345
  }
3346
 
3347
  @-moz-keyframes show {
3348
+ 0% {
3349
+ opacity: 0;
3350
+ }
3351
 
3352
+ 100% {
3353
+ opacity: 1;
3354
+ }
3355
  }
3356
 
3357
  @-o-keyframes show {
3358
+ 0% {
3359
+ opacity: 0;
3360
+ }
3361
 
3362
+ 100% {
3363
+ opacity: 1;
3364
+ }
3365
  }
3366
 
3367
  @keyframes show {
3368
+ 0% {
3369
+ opacity: 0;
3370
+ }
3371
 
3372
+ 100% {
3373
+ opacity: 1;
3374
+ }
3375
  }
3376
 
3377
  @-webkit-keyframes hide {
3378
+ 0% {
3379
+ opacity: 1;
3380
+ }
3381
 
3382
+ 100% {
3383
+ opacity: 0;
3384
+ }
3385
  }
3386
 
3387
  @-moz-keyframes hide {
3388
+ 0% {
3389
+ opacity: 1;
3390
+ }
3391
 
3392
+ 100% {
3393
+ opacity: 0;
3394
+ }
3395
  }
3396
 
3397
  @-o-keyframes hide {
3398
+ 0% {
3399
+ opacity: 1;
3400
+ }
3401
 
3402
+ 100% {
3403
+ opacity: 0;
3404
+ }
3405
  }
3406
 
3407
  @keyframes hide {
3408
+ 0% {
3409
+ opacity: 1;
3410
+ }
3411
 
3412
+ 100% {
3413
+ opacity: 0;
3414
+ }
3415
  }
3416
 
3417
  @media screen and (max-width: 767px) {
3418
+ [data-element_type="eae-evergreen-timer.skin2"] .flip-clock-divider {
3419
+ width: 15px;
3420
+ }
3421
+ [data-element_type="eae-evergreen-timer.skin2"] .flip-clock-dot {
3422
+ height: 5px;
3423
+ width: 5px;
3424
+ }
3425
+ [data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper ul {
3426
+ height: 40px;
3427
+ }
3428
+ [data-element_type="eae-evergreen-timer.skin2"] .flip-clock-divider {
3429
+ height: 50px;
3430
+ }
3431
+ [data-element_type="eae-evergreen-timer.skin2"]
3432
+ .eae-flip-clock-wrapper
3433
+ ul
3434
+ li {
3435
+ line-height: 37px;
3436
+ }
3437
+ [data-element_type="eae-evergreen-timer.skin2"]
3438
+ .eae-flip-clock-wrapper
3439
+ ul
3440
+ li
3441
+ a
3442
+ div
3443
+ div.inn {
3444
+ font-size: 24px;
3445
+ }
3446
+ [data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper ul {
3447
+ margin: 2px;
3448
+ }
3449
+ /* [data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper ul {
3450
  position: relative;
3451
  float: left;
3452
  margin: 5px;
3535
  display: block;
3536
  text-align: center;
3537
  }*/
3538
+ [data-element_type="eae-evergreen-timer.skin3"] #timer {
3539
+ font-family: sans-serif;
3540
+ color: #fff;
3541
+ display: inline-block;
3542
+ font-weight: 100;
3543
+ text-align: center;
3544
+ font-size: 30px;
3545
  }
3546
+ [data-element_type="eae-evergreen-timer.skin3"] .desc {
3547
+ display: flex;
3548
+ justify-content: center;
 
3549
  }
3550
+ [data-element_type="eae-evergreen-timer.skin3"].eae-egt-content-align-right
3551
+ .desc {
3552
+ justify-content: flex-end;
3553
  }
3554
+ [data-element_type="eae-evergreen-timer.skin3"].eae-egt-content-align-left
3555
+ .desc {
3556
+ justify-content: flex-start;
3557
  }
3558
+ [data-element_type="eae-evergreen-timer.skin3"] .desc .egt-time-text {
3559
+ display: inline-block;
3560
+ padding: 0 50px 0 50px;
3561
  }
3562
 
3563
+ [data-element_type="eae-evergreen-timer.skin3"] .eae-time-wrapper {
3564
+ padding: 50px;
3565
+ border-radius: 3px;
3566
+ background: #00bf96;
3567
+ display: inline-block;
3568
+ overflow: hidden;
3569
+ margin: 5px;
3570
+ line-height: 1em;
3571
  }
3572
 
3573
  [data-element_type="eae-evergreen-timer.skin3"] #timer span:nth-child(1) {
3574
+ background: khaki;
3575
  }
3576
 
3577
  [data-element_type="eae-evergreen-timer.skin3"] #timer span:nth-child(2) {
3578
+ background: indianred;
3579
  }
3580
 
3581
  [data-element_type="eae-evergreen-timer.skin3"] #timer span:nth-child(3) {
3582
+ background: cadetblue;
3583
  }
3584
 
3585
  [data-element_type="eae-evergreen-timer.skin3"] #timer span:nth-child(4) {
3586
+ background: cornflowerblue;
3587
  }
3588
 
3589
  [data-element_type="eae-evergreen-timer.skin3"] .fade {
3590
+ animation: flip 0.7s ease forwards;
3591
  }
3592
 
3593
  @keyframes flip {
3594
+ 0% {
3595
+ transform: rotateY(0) scaleY(1.1);
3596
+ opacity: 0.5;
3597
+ }
3598
+ 50% {
3599
+ transform: rotateY(180deg) scaleY(1.3);
3600
+ opacity: 0;
3601
+ }
3602
+ 100% {
3603
+ transform: rotateY(0);
3604
+ opacity: 1;
3605
+ }
3606
  }
3607
 
3608
  @media screen and (max-width: 767px) {
3609
+ [data-element_type="eae-evergreen-timer.skin3"] #timer span {
3610
+ font-size: 22px;
3611
+ }
3612
+ [data-element_type="eae-evergreen-timer.skin2"]
3613
+ .flip-clock-divider
3614
+ .flip-clock-label {
3615
+ top: -1.5em;
3616
+ right: -42px;
3617
+ }
3618
 
3619
+ [data-element_type="eae-evergreen-timer.skin2"]
3620
+ .flip-clock-divider.minutes
3621
+ .flip-clock-label {
3622
+ right: -48px;
3623
+ }
3624
 
3625
+ [data-element_type="eae-evergreen-timer.skin2"]
3626
+ .flip-clock-divider.seconds
3627
+ .flip-clock-label {
3628
+ right: -51px;
3629
+ }
3630
  }
3631
 
3632
  /* Skin 4 - Digit Up Animation */
3633
  [data-element_type="eae-evergreen-timer.skin4"] .eae-evergreen-wrapper {
3634
+ width: 100%;
3635
  }
3636
  [data-element_type="eae-evergreen-timer.skin4"] .container {
3637
+ margin: 0 auto;
3638
  }
3639
  [data-element_type="eae-evergreen-timer.skin4"] .special {
3640
+ position: relative;
3641
+ width: 840px;
3642
+ height: 47px;
3643
  }
3644
  [data-element_type="eae-evergreen-timer.skin4"] #counter {
3645
+ position: absolute;
3646
+ z-index: 4000;
3647
  }
3648
  [data-element_type="eae-evergreen-timer.skin4"] .digit-separator {
3649
+ position: relative;
3650
+ float: left;
3651
+ width: 17px;
3652
+ height: 44px;
3653
+ overflow: hidden;
3654
+ background-image: url("../digit-sep-svg.svg");
3655
+ background-repeat: no-repeat;
3656
+ background-position: 0px 0px;
3657
+ background-color: #4054b2;
3658
  }
3659
  [data-element_type="eae-evergreen-timer.skin4"] .digit {
3660
+ background-image: url("../digits-svg-alpha.svg");
3661
+ background-color: #4054b2;
3662
  }
3663
 
3664
  /* Comparison Table */
3665
 
3666
  .eae-ct-wrapper * {
3667
+ box-sizing: border-box;
3668
 
3669
+ margin: 0;
3670
+ outline: 0;
3671
  }
3672
+ article.eae-ct-wrapper {
3673
+ width: 100%;
3674
+ max-width: 1000px;
3675
+ margin: 0 auto;
3676
+ position: relative;
3677
  }
3678
+ .eae-ct-wrapper tbody tr.eae-ct-header td,
3679
+ .eae-ct-wrapper th {
3680
+ position: relative;
3681
  }
3682
  .eae-ct-wrapper ul {
3683
+ display: none;
3684
+ top: 0px;
3685
+ z-index: 10;
3686
+ padding-bottom: 14px;
3687
  }
3688
  .eae-ct-wrapper li {
3689
+ list-style: none;
3690
+ flex: 1;
3691
+ position: relative;
3692
  }
3693
  .eae-ct-wrapper li:hover {
3694
+ cursor: pointer;
3695
  }
3696
  .eae-ct-wrapper li:last-child {
3697
+ /*border-right:1px solid #DDD;*/
3698
  }
3699
  .eae-ct-wrapper .eae-ct-heading {
3700
+ width: 100%;
3701
+ padding: 10px;
3702
+ background: #fff;
3703
+ font-size: 20px;
3704
+ font-weight: bold;
3705
+ height: 60px;
3706
+ color: #999;
3707
+ text-align: center;
3708
+ }
3709
+ .eae-ct-wrapper li.eae-ct-heading .eae-ct-heading-inner {
3710
+ position: absolute;
3711
+ align-self: center;
3712
+ top: 50%;
3713
+ left: 50%;
3714
+ transform: translate(-50%, -50%);
3715
+ width: 100%;
3716
  }
3717
  .eae-ct-wrapper li.eae-ct-heading.active {
3718
+ background: #f5f5f5;
3719
  }
3720
+ .eae-ct-wrapper table {
3721
+ border-collapse: collapse;
3722
+ table-layout: fixed;
3723
+ width: 100%;
 
3724
  }
3725
+ .eae-ct-wrapper th {
3726
+ background: #f5f5f5;
3727
+ display: none;
3728
  }
3729
+ .eae-ct-wrapper td,
3730
+ .eae-ct-wrapper th {
3731
+ height: 53px;
3732
+ vertical-align: middle;
3733
  }
3734
+ .eae-ct-wrapper table {
3735
+ border: none;
 
3736
  }
3737
+ /*.eae-ct-wrapper table tr td:first-child,.eae-ct-wrapper table tr td:last-child, .eae-ct-wrapper td,.eae-ct-wrapper td,.eae-ct-wrapper th { border:1px solid #DDD; padding:10px; empty-cells:show; }*/
3738
+ .eae-ct-wrapper table th,
3739
+ .eae-ct-wrapper table td {
3740
+ border: none;
3741
+ }
3742
+ .eae-ct-wrapper table tr td:first-child,
3743
+ .eae-ct-wrapper table tr td:last-child,
3744
+ .eae-ct-wrapper td,
3745
+ .eae-ct-wrapper td,
3746
+ .eae-ct-wrapper th {
3747
+ padding: 10px;
3748
+ empty-cells: show;
3749
+ }
3750
+ .eae-ct-wrapper td,
3751
+ .eae-ct-wrapper th {
3752
+ text-align: center;
3753
  }
3754
+ .eae-ct-wrapper td + td,
3755
+ .eae-ct-wrapper th + th {
3756
+ text-align: center;
3757
  }
3758
+ .eae-ct-wrapper tr:first-child {
3759
+ background: none !important;
3760
  }
3761
+ .eae-ct-wrapper ul li:nth-child(1) {
3762
+ display: table-cell;
3763
+ }
3764
+ .eae-ct-wrapper tr td:nth-child(2) {
3765
+ display: table-cell;
3766
  }
3767
 
3768
  .eae-ct-wrapper td:nth-child(1) {
3769
+ display: table-cell;
3770
+ }
3771
+ .eae-ct-wrapper td {
3772
+ display: none;
3773
  }
 
 
 
3774
  .eae-ct-wrapper .sep {
3775
+ background: #f5f5f5;
3776
+ font-weight: bold;
3777
  }
3778
  .eae-ct-price-wrapper {
3779
+ display: flex;
3780
+ justify-content: center;
3781
+ }
3782
+ .eae-ct-tt-type-icon .eae-ct-feature .tooltip {
3783
+ float: right;
3784
+ }
3785
+ .eae-ct-wrapper .tooltiptext::before {
3786
+ content: "";
3787
+ border-width: 5px 5px 0 5px;
3788
+ border-color: #fff;
3789
+ border-left-color: transparent;
3790
+ border-right-color: transparent;
3791
+ border-bottom-color: transparent;
3792
+ bottom: -10px;
3793
+ width: 0;
3794
+ height: 0;
3795
+ border-style: solid;
3796
+ position: absolute;
3797
+ margin: 5px;
3798
+ left: 42%;
3799
+ }
3800
+ .eae-ct-wrapper .eae-ct-price {
3801
+ font-size: 28px;
3802
+ font-weight: bold;
3803
+ line-height: 1em;
3804
+ }
3805
+ .eae-ct-wrapper .eae-ct-currency {
3806
+ align-self: flex-start;
3807
+ margin-right: 3px;
3808
+ }
3809
+ .eae-ct-wrapper .eae-ct-fractional-price {
3810
+ align-self: flex-start;
3811
+ margin-left: 3px;
3812
+ }
3813
+ .eae-ct-wrapper .eae-ct-duration {
3814
+ align-self: flex-start;
3815
+ }
3816
+ .eae-ct-wrapper .eae-ct-original-price {
3817
+ margin-right: 5px;
3818
+ text-decoration: line-through;
3819
+ align-self: flex-end;
3820
+ }
3821
+ .eae-ct-wrapper .tick {
3822
+ font-size: 18px;
3823
+ color: #2ca01c;
3824
+ }
3825
  .feature-heading-blank.eae-ct-wrapper .hide {
3826
+ border: unset !important;
3827
+ background: unset !important;
3828
  }
3829
+ .eae-ct-wrapper .hide.eae-ct-hide.eae-fbox-heading {
3830
+ border: 0px solid black;
3831
  }
3832
  .eae-ct-ribbons-yes .eae-ct-ribbons-wrapper {
3833
+ position: absolute;
3834
+ top: 0;
3835
+ /* -webkit-transform: rotate(90deg);
3836
  -ms-transform: rotate(90deg);*/
3837
+ /* transform: rotate(90deg); */
3838
+ width: 100px;
3839
+ overflow: hidden;
3840
+ height: 100px;
3841
+ z-index: 998;
3842
+ padding: 8px 12px;
3843
+ }
3844
+ .eae-ct-ribbons-h-top.eae-ct-ribbons-yes .eae-ct-ribbons-wrapper {
3845
+ position: absolute;
3846
+ top: 0;
3847
+ width: 100%;
3848
+ overflow: hidden;
3849
+ height: 50px;
3850
+ z-index: 999;
3851
+ padding: 8px 12px;
3852
+ }
3853
+ .eae-ct-ribbons-h-top.eae-ct-ribbons-yes .eae-ct-ribbons-wrapper-top {
3854
+ background-color: rgba(63, 195, 135, 0.8);
3855
+ color: #fff;
3856
+ transform: translateY(-100%);
3857
+ position: absolute;
3858
+ width: 100%;
3859
+ top: 0;
3860
+ left: 0;
3861
  }
3862
  .eae-ct-ribbons-h-left.eae-ct-ribbons-yes .eae-ct-ribbons-wrapper {
3863
+ -webkit-transform: rotate(0);
3864
+ -ms-transform: rotate(0);
3865
+ transform: rotate(0);
3866
+ left: 0;
3867
+ right: auto;
3868
  }
3869
  .eae-ct-ribbons-h-right.eae-ct-ribbons-yes .eae-ct-ribbons-wrapper {
3870
+ -webkit-transform: rotate(0);
3871
+ -ms-transform: rotate(0);
3872
+ transform: rotate(90deg);
3873
+ left: auto;
3874
+ right: 0;
3875
  }
3876
 
3877
  .eae-ct-ribbons-yes .eae-ct-ribbons-wrapper span.eae-ct-ribbons-inner {
3878
+ position: absolute;
3879
+ text-align: center;
3880
+ left: 0;
3881
+ top: 0;
3882
+ width: 200%;
3883
+ -webkit-transform: translateY(-50%) translateX(-50%) translateX(35px)
3884
+ rotate(-45deg);
3885
+ -ms-transform: translateY(-50%) translateX(-50%) translateX(35px)
3886
+ rotate(-45deg);
3887
+ transform: translateY(-50%) translateX(-50%) translateX(35px) rotate(-45deg);
3888
+ margin-top: 35px;
3889
+ font-size: 13px;
3890
+ line-height: 2;
3891
+ font-weight: 800;
3892
+ text-transform: uppercase;
3893
+ background: rgba(63, 195, 135, 0.8);
3894
+ padding: 8px 12px;
3895
+ color: #ffffff;
3896
  }
3897
  .eae-ct-wrapper .tooltip {
3898
+ position: relative;
3899
+ display: inline-block;
3900
  }
3901
 
3902
  .eae-ct-wrapper .tooltip .tooltiptext {
3903
+ visibility: hidden;
3904
+ min-width: 120px;
3905
+ background-color: black;
3906
+ color: #fff;
3907
+ text-align: center;
3908
+ border-radius: 6px;
3909
+ padding: 5px 0;
3910
 
3911
+ /* Position the tooltip */
3912
+ position: absolute;
3913
+ z-index: 1;
3914
+ bottom: 120%;
3915
+ left: 50%;
3916
+ margin-left: -60px;
3917
  }
3918
 
3919
  .eae-ct-wrapper .tooltip:hover .tooltiptext {
3920
+ visibility: visible;
3921
  }
3922
+ .eae-ct-heading-tooltip {
3923
+ text-decoration-line: underline;
3924
+ text-decoration-style: dotted;
3925
  }
3926
+ .eae-ct-btn {
3927
+ padding: 10px 15px 10px 15px;
3928
+ color: #fff;
3929
+ display: inline-block;
3930
+ line-height: 1em;
3931
  }
3932
+ .eae-ct-btn:hover {
3933
+ color: #fff;
3934
  }
3935
+ .eae-ct-wrapper i.fa.fa-check,
3936
+ .eae-ct-wrapper i.fas.fa-check {
3937
+ color: #38f146;
3938
  }
3939
+ .eae-ct-wrapper i.fa.fa-close,
3940
+ .eae-ct-wrapper i.fas.fa-times {
3941
+ color: #ff0000;
3942
  }
3943
 
3944
+ .button-heading-blank.eae-ct-wrapper tr:last-child td:first-child {
3945
+ background: none !important;
3946
+ border: none !important;
3947
  }
3948
 
3949
+ .eae-ct-wrapper tr:last-child {
3950
+ background: none !important;
3951
  }
3952
  tbody tr:nth-child(2) {
3953
+ background: none !important;
3954
  }
3955
  @media (min-width: 767px) {
3956
+ .eae-ct-wrapper td,
3957
+ .eae-ct-wrapper .eae-ct-header {
3958
+ width: 330px;
3959
+ }
3960
+ .eae-ct-wrapper td + td,
3961
+ .eae-ct-wrapper th + th {
3962
+ width: auto;
3963
+ }
3964
  }
3965
 
3966
+ .eae-tab-format-all .eae-ct-wrapper ul {
3967
+ display: flex;
3968
+ }
3969
+ .hide.eae-ct-hide {
3970
+ display: table-cell;
3971
  }
 
3972
  @media (min-width: 1023px) {
3973
+ .eae-tab-format-all tbody tr.eae-ct-header {
3974
+ display: none;
3975
+ }
3976
+ .eae-tab-format-tab-mob .eae-ct-wrapper td,
3977
+ .eae-tab-format-tab-mob .eae-ct-wrapper th,
3978
+ .eae-tab-format-mobile .eae-ct-wrapper td,
3979
+ .eae-tab-format-mobile .eae-ct-wrapper th {
3980
+ display: table-cell !important;
3981
+ }
3982
+
3983
+ .eae-tab-format-all .hide.eae-ct-hide {
3984
+ display: table-cell;
3985
+ }
3986
+ .eae-tab-format-tab-mob .hide.eae-ct-hide,
3987
+ .eae-tab-format-mobile .hide.eae-ct-hide {
3988
+ display: none !important;
3989
+ }
3990
  }
3991
  @media (max-width: 1023px) {
3992
+ .eae-tab-format-tab-mob .eae-ct-wrapper ul {
3993
+ display: flex;
3994
+ }
3995
+ /*.eae-tab-format-all .eae-ct-wrapper td+td,.eae-tab-format-all .eae-ct-wrapper th+th{*/
3996
+ /* display: none;*/
3997
+ /*}*/
3998
+ .eae-tab-format-all tbody tr.eae-ct-header,
3999
+ .eae-tab-format-tab-mob tbody tr.eae-ct-header {
4000
+ display: none;
4001
+ }
4002
 
4003
+ .eae-tab-format-all .hide.eae-ct-hide {
4004
+ display: table-cell;
4005
+ }
4006
+ .eae-tab-format-tab-mob .hide.eae-ct-hide {
4007
+ display: table-cell;
4008
+ }
4009
  }
4010
  @media (max-width: 1023px) and (min-width: 768px) {
4011
+ .eae-tab-format-mobile .eae-ct-wrapper td,
4012
+ .eae-tab-format-mobile .eae-ct-wrapper th {
4013
+ display: table-cell !important;
4014
+ }
4015
+ /*[data-elementor-device-mode='tablet'] .eae-tab-format-mobile .eae-ct-hide.eae-fbox-heading{*/
4016
+ /* display: none !important;*/
4017
+ /*}*/
4018
+
4019
+ .eae-tab-format-all tbody tr.eae-ct-header,
4020
+ .eae-tab-format-tab-mob tbody tr.eae-ct-header {
4021
+ display: none;
4022
+ }
4023
+ .eae-tab-format-tab-mob .hide.eae-ct-hide {
4024
+ display: table-cell;
4025
+ }
4026
  }
4027
  @media (max-width: 767px) {
4028
+ .eae-tab-format-mobile .eae-ct-wrapper ul {
4029
+ display: flex;
4030
+ }
4031
+ .eae-tab-format-mobile tbody tr.eae-ct-header {
4032
+ display: none;
4033
+ }
4034
 
4035
+ .eae-tab-format-mobile tbody tr.eae-ct-header,
4036
+ .eae-tab-format-all tbody tr.eae-ct-header {
4037
+ display: none;
4038
+ }
4039
+ .eae-tab-format-mobile .hide.eae-ct-hide {
4040
+ display: table-cell;
4041
+ }
4042
  }
4043
 
4044
  /* Progress Bar */
4045
  .eae-progress-bar-wrapper {
4046
+ display: flex;
4047
+ flex-direction: column;
4048
+ align-items: flex-start;
4049
+ margin: 15px 0;
4050
  }
4051
 
4052
  .eae-progress-bar-wrapper.eae-progress-bar {
4053
+ width: 100%;
4054
+ position: relative;
4055
+ box-sizing: border-box;
4056
  }
4057
 
4058
  .eae-pb-bar,
4059
  .eae-pb-bar-inner,
4060
  .eae-pb-bar-value,
4061
  .eae-pb-bar-skill {
4062
+ box-sizing: border-box;
4063
  }
4064
 
4065
+ .eae-pb-bar {
4066
+ position: relative;
4067
+ height: 100%;
4068
+ width: 100%;
4069
+ overflow: hidden;
4070
  }
4071
 
4072
  .eae-pb-bar--no-overflow {
4073
+ overflow: visible;
4074
  }
4075
 
4076
  .eae-pb-bar-inner {
4077
+ position: absolute;
4078
+ top: 0;
4079
+ left: 0;
4080
+ height: 100%;
4081
+ -webkit-transform: scaleX(0);
4082
+ transform: scaleX(0);
4083
+ -webkit-transform-origin: left center;
4084
+ transform-origin: left center;
4085
+ }
4086
+ body.rtl .eae-pb-bar .eae-pb-bar-inner {
4087
+ position: absolute;
4088
+ top: 0;
4089
+ right: 0 !important;
4090
+ height: 100%;
4091
+ -webkit-transform: scaleX(0);
4092
+ transform: scaleX(0);
4093
+ -webkit-transform-origin: right center;
4094
+ transform-origin: right center;
4095
  }
4096
  .eae-pb-bar-inner.js-animated {
4097
+ transition-property: all;
4098
+ transition-duration: 1.5s;
4099
+ transition-timing-function: cubic-bezier(0.1, 1.14, 0.31, 1.06);
4100
+ transition-delay: 1.5s;
4101
+ -webkit-transform: scaleX(1);
4102
+ transform: scaleX(1);
4103
+ }
4104
+ body.rtl .eae-pb-bar .eae-pb-bar-inner.js-animated {
4105
+ transition-property: all;
4106
+ transition-duration: 1.5s;
4107
+ transition-timing-function: cubic-bezier(0.1, 1.14, 0.31, 1.06);
4108
+ transition-delay: 1.5s;
4109
+ -webkit-transform: scaleX(1);
4110
+ transform: scaleX(1);
4111
  }
 
4112
  .eae-pb-bar-skill,
4113
  .eae-pb-bar-value {
4114
+ font-size: 14px;
4115
+ letter-spacing: 1px;
4116
  }
4117
 
4118
+ body:not(.rtl) .eae-pb-bar-value--aligned-value {
4119
+ -webkit-transform: translateX(-50%);
4120
+ transform: translateX(-50%);
4121
+ }
4122
+ body.rtl .eae-pb-bar-value--aligned-value {
4123
+ -webkit-transform: translateX(50%);
4124
+ transform: translateX(50%);
4125
  }
4126
 
4127
  /* progress bar #1 styles */
4128
+ .eae-progress-bar-skin1 {
4129
+ height: 20px;
4130
+ padding: 4px;
4131
+ border: 1px solid #dddddd;
4132
+ border-radius: 20px;
4133
  }
4134
+ .eae-pb-bar-skin1 {
4135
+ border-radius: 20px;
4136
  }
4137
  .eae-pb-bar-inner-skin1 {
4138
+ background-color: #00bfb3;
4139
+ background-size: 200%;
4140
+ background-position: 0 0;
4141
+ border-radius: 20px;
4142
  }
4143
 
4144
  .eae-pb-bar-skill-skin1 {
4145
+ position: absolute;
4146
+ bottom: 20px;
4147
+ left: 0px;
4148
+ opacity: 0;
4149
+ }
4150
+ body.rtl .eae-pb-bar-skill-skin1 {
4151
+ right: 0px;
4152
  }
4153
  .eae-pb-bar-skill-skin1.js-animated {
4154
+ transition-property: all;
4155
+ transition-duration: 0.5s;
4156
+ transition-timing-function: linear;
4157
+ transition-delay: 0.5s;
4158
+ left: 0;
4159
+ opacity: 1;
4160
+ }
4161
+ body.rtl .eae-pb-bar-skill-skin1.js-animated {
4162
+ right: 0 !important;
4163
  }
4164
 
4165
  .eae-pb-bar-value-skin1 {
4166
+ position: absolute;
4167
+ bottom: 20px;
4168
+ opacity: 1;
 
4169
  }
4170
+ body:not(.rtl) .eae-pb-bar-value-skin1 {
4171
+ right: 0;
4172
+ }
4173
+ body.rtl .eae-pb-bar-value-skin1 {
4174
+ left: 0% !important;
 
 
4175
  }
4176
 
4177
+ .eae-pb-bar-value-skin1.js-animated {
4178
+ transition-property: all;
4179
+ transition-duration: 0.5s;
4180
+ transition-timing-function: linear;
4181
+ transition-delay: 0.5s;
4182
+ opacity: 1;
4183
+ }
4184
+ body:not(.rtl) .eae-pb-bar-value-skin1.js-animated {
4185
+ right: 0;
4186
+ }
4187
 
4188
  /* progress bar #2 styles */
4189
  .eae-progress-bar-skin2 {
4190
+ height: 15px;
4191
+ box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14),
4192
+ 0 3px 1px -2px rgba(0, 0, 0, 0.12), 0 1px 5px 0 rgba(0, 0, 0, 0.2);
4193
+ border-radius: 3px;
4194
+ }
4195
+
4196
+ @-webkit-keyframes progress-2-bg-animation-rtl {
4197
+ 100% {
4198
+ background-position: 0 0, 0 0;
4199
+ }
4200
+ 0% {
4201
+ background-position: 0 0, 42px 0;
4202
+ }
4203
+ }
4204
+
4205
+ @keyframes progress-2-bg-animation-rtl {
4206
+ 100% {
4207
+ background-position: 0 0, 0 0;
4208
+ }
4209
+ 0% {
4210
+ background-position: 0 0, 42px 0;
4211
+ }
4212
  }
4213
 
4214
  @-webkit-keyframes progress-2-bg-animation {
4215
+ 0% {
4216
+ background-position: 0 0, 0 0;
4217
+ }
4218
+ 1000% {
4219
+ background-position: 0 0, 42px 0;
4220
+ }
4221
  }
4222
 
4223
  @keyframes progress-2-bg-animation {
4224
+ 0% {
 
 
 
 
 
 
 
 
 
4225
  background-position: 0 0, 0 0;
4226
+ }
4227
+ 100% {
4228
+ background-position: 0 0, 42px 0;
4229
+ }
4230
  }
4231
+
4232
+ .eae-pb-bar-inner-skin2 {
4233
+ background-image: linear-gradient(
4234
+ to top,
4235
+ rgba(255, 255, 255, 0.15),
4236
+ rgba(0, 0, 0, 0.2)
4237
+ ),
4238
+ linear-gradient(
4239
+ 135deg,
4240
+ #5eeb5b,
4241
+ #5eeb5b 33%,
4242
+ #358600 33%,
4243
+ #358600 66%,
4244
+ #5eeb5b 66%
4245
+ );
4246
+ background-size: 100% 100%, 42px 100%;
4247
+ background-position: 0 0, 0 0;
4248
+ border-radius: 3px;
4249
+ }
4250
+ body:not(.rtl) .eae-pb-bar-inner-skin2.js-animated {
4251
+ -webkit-animation: progress-2-bg-animation 1.5s linear 0s infinite;
4252
+ animation: progress-2-bg-animation 1.5s linear 0s infinite;
4253
+ }
4254
+
4255
+ body.rtl .eae-pb-bar-inner-skin2.js-animated {
4256
+ -webkit-animation: progress-2-bg-animation-rtl 1.5s linear 0s infinite;
4257
+ animation: progress-2-bg-animation-rtl 1.5s linear 0s infinite;
4258
  }
4259
 
4260
  .eae-pb-bar-skill-skin2 {
4261
+ position: absolute;
4262
+ opacity: 0;
4263
+ }
4264
+ body:not(.rtl) .eae-pb-bar-skill-skin2 {
4265
+ left: 0;
4266
+ }
4267
+ body.rtl .eae-pb-bar-skill-skin2 {
4268
+ right: 0;
4269
  }
4270
+
4271
  .eae-pb-bar-skill-skin2.js-animated {
4272
+ transition-property: all;
4273
+ transition-duration: 0.5s;
4274
+ transition-timing-function: linear;
4275
+ transition-delay: 0.5s;
4276
+ bottom: 20px;
4277
+ opacity: 1;
4278
  }
4279
 
4280
  .eae-pb-bar-value-skin2 {
4281
+ position: absolute;
4282
+ opacity: 0;
4283
+ }
4284
+ body:not(.rtl) .eae-pb-bar-value-skin2 {
4285
+ right: 0;
4286
  }
4287
+ body.rtl .eae-pb-bar-value-skin2 {
4288
+ left: 0%;
4289
+ }
4290
+
4291
  .eae-pb-bar-value-skin2.js-animated {
4292
+ transition-property: all;
4293
+ transition-duration: 0.5s;
4294
+ transition-timing-function: linear;
4295
+ transition-delay: 0.5s;
4296
+ bottom: 20px;
4297
+ opacity: 1;
4298
  }
4299
 
4300
  /* Progress Bar Skin 3*/
4301
 
4302
  .eae-progress-bar-skin3 {
4303
+ height: 5px;
4304
+ background-color: #efefef;
4305
  }
4306
+ .eae-pb-bar-value-skin3,
4307
+ .eae-pb-bar-inner-skin3 {
4308
+ background-color: #f40076;
4309
  }
4310
+ .eae-pb-bar-value-skin3:after,
4311
+ .eae-pb-bar-inner:after {
4312
+ border-top-color: #f40076;
4313
  }
4314
 
4315
  .eae-pb-bar-skill-skin3 {
4316
+ position: absolute;
4317
+ bottom: 10px;
4318
+ left: -10px;
4319
+ opacity: 0;
4320
  }
4321
  .eae-pb-bar-skill-skin3.js-animated {
4322
+ transition-property: all;
4323
+ transition-duration: 0.5s;
4324
+ transition-timing-function: linear;
4325
+ transition-delay: 0.5s;
4326
+ opacity: 1;
4327
+ }
4328
+ body:not(.rtl) .eae-pb-bar-skill-skin3.js-animated {
4329
+ left: 0;
4330
+ }
4331
+ body.rtl .eae-pb-bar-skill-skin3.js-animated {
4332
+ right: 0;
4333
  }
4334
 
4335
  .eae-pb-bar-value-skin3 {
4336
+ position: absolute;
4337
+ display: inline-block;
4338
+ padding: 0px 8px;
4339
+ font-size: 14px;
4340
+ color: #fff;
4341
+ opacity: 0;
4342
  }
4343
  .eae-pb-bar-value-skin3:after {
4344
+ position: absolute;
4345
+ left: 50%;
4346
+ bottom: -10px;
4347
+ display: block;
4348
+ width: 0;
4349
+ height: 0;
4350
+ content: "";
4351
+ -webkit-transform: translateX(-50%);
4352
+ transform: translateX(-50%);
4353
+ border-width: 5px;
4354
+ border-style: solid;
4355
+ border-color: #f40076 transparent transparent transparent;
4356
  }
4357
  .eae-pb-bar-inner-skin3.js-animated {
4358
+ transition-property: all;
4359
+ transition-duration: 1.5s;
4360
+ transition-timing-function: cubic-bezier(0.1, 1.14, 0.31, 1.06);
4361
+ transition-delay: 1.5s;
4362
+ -webkit-transform: scaleX(1);
4363
+ transform: scaleX(1);
4364
  }
4365
  .eae-pb-bar-value-skin3.js-animated {
4366
+ transition-property: all;
4367
+ transition-duration: 1.5s;
4368
+ transition-timing-function: cubic-bezier(0.1, 1.14, 0.31, 1.06);
4369
+ transition-delay: 2s;
4370
+ bottom: 14px;
4371
+ opacity: 1;
4372
  }
4373
 
4374
  /* Progress Bar Skin 4 */
4375
  .eae-progress-bar-skin4 {
4376
+ height: 3px;
4377
+ background-color: #efefef;
4378
  }
4379
 
4380
  .eae-pb-bar-inner-skin4 {
4381
+ background-color: #000;
4382
  }
4383
  .eae-pb-bar-inner-skin4:after {
4384
+ position: absolute;
4385
+ top: 50%;
4386
+ display: block;
4387
+ width: 8px;
4388
+ height: 8px;
4389
+ content: "";
4390
+ -webkit-transform: translateY(-50%);
4391
+ transform: translateY(-50%);
4392
+ background-color: #000;
4393
+ border-radius: 50%;
4394
+ }
4395
+ body:not(.rtl) .eae-pb-bar-inner-skin4:after {
4396
+ right: 0;
4397
+ }
4398
+ body.rtl .eae-pb-bar-inner-skin4:after {
4399
+ left: 0;
4400
  }
 
4401
  .eae-pb-bar-value-skin4 {
4402
+ position: absolute;
4403
+ bottom: 2px;
4404
+ font-size: 14px;
4405
+ opacity: 0;
4406
  }
4407
  .eae-pb-bar-value-skin4.js-animated {
4408
+ transition-property: all;
4409
+ transition-duration: 1.5s;
4410
+ transition-timing-function: linear;
4411
+ transition-delay: 1.5s;
4412
+ opacity: 1;
4413
  }
4414
 
4415
  .eae-pb-bar-skill-skin4 {
4416
+ position: absolute;
4417
+ bottom: 2px;
4418
+ left: -20px;
4419
+ opacity: 0;
4420
  }
4421
  .eae-pb-bar-skill-skin4.js-animated {
4422
+ transition-property: all;
4423
+ transition-duration: 0.5s;
4424
+ transition-timing-function: linear;
4425
+ transition-delay: 0.5s;
4426
+ opacity: 1;
4427
+ }
4428
+ body:not(.rtl) .eae-pb-bar-skill-skin4.js-animated {
4429
+ left: 0;
4430
+ }
4431
+ body.rtl .eae-pb-bar-skill-skin4.js-animated {
4432
+ right: 0;
4433
  }
4434
 
4435
  /* Progress Bar Skin 5 */
4436
  .eae-progress-bar-skin5 {
4437
+ height: 30px;
4438
+ background-color: #f7f7f7;
4439
  }
4440
 
4441
+ .eae-pb-bar-inner-skin5 {
4442
+ background-color: #57b8ff;
4443
  }
4444
 
4445
  .eae-pb-bar-skill-skin5 {
4446
+ position: absolute;
4447
+ top: 50%;
4448
+ color: #fff;
4449
+ -webkit-transform: translateY(-50%);
4450
+ transform: translateY(-50%);
4451
+ opacity: 0;
4452
+ }
4453
+ body:not(.rtl) .eae-pb-bar-skill-skin5 {
4454
+ left: 10px;
4455
+ }
4456
+ body:not(.rtl) .eae-pb-bar-skill-skin5 {
4457
+ right: 10px;
4458
  }
4459
  .eae-pb-bar-skill-skin5.js-animated {
4460
+ transition-property: all;
4461
+ transition-duration: 0.5s;
4462
+ transition-timing-function: linear;
4463
+ transition-delay: 0.5s;
4464
+ opacity: 1;
4465
  }
4466
 
4467
  .eae-pb-bar-value-skin5 {
4468
+ position: absolute;
4469
+ top: 50%;
4470
+ color: #fff;
4471
+ opacity: 0;
4472
+ z-index: 10;
4473
+ }
4474
+ body:not(.rtl) .eae-pb-bar-value-skin5 {
4475
+ -webkit-transform: translateX(-100%) translateX(-10px) translateY(-50%);
4476
+ transform: translateX(-100%) translateX(-10px) translateY(-50%);
4477
+ }
4478
+ body.rtl .eae-pb-bar-value-skin5 {
4479
+ -webkit-transform: translateX(100%) translateX(10px) translateY(-50%);
4480
+ transform: translateX(100%) translateX(10px) translateY(-50%);
4481
  }
4482
  .eae-pb-bar-value-skin5.js-animated {
4483
+ transition-property: all;
4484
+ transition-duration: 1.5s;
4485
+ transition-timing-function: linear;
4486
+ transition-delay: 1.5s;
4487
+ opacity: 1;
4488
  }
4489
 
4490
  /* EAE Dual Button */
4491
+ .eae-dual-button-wrapper .eae-button-1-wrapper,
4492
+ .eae-dual-button-wrapper .eae-button-2-wrapper {
4493
+ overflow: hidden;
4494
  }
4495
 
4496
+ .eae-dual-button-wrapper.button-style-horizontal {
4497
+ display: flex;
4498
+ flex-direction: row;
4499
+ position: relative;
4500
  }
4501
+ .eae-dual-button-main-wrapper {
4502
+ display: flex;
4503
+ flex-direction: row;
4504
+ justify-content: center;
4505
  }
4506
+ .eae-dual-button-wrapper a {
4507
+ min-width: 0px;
4508
  }
4509
+ .eae-dual-button-wrapper.button-style-vertical {
4510
+ display: inline-flex;
4511
+ flex-direction: column;
4512
+ position: relative;
4513
  }
4514
+ .eae-button-1.icon-before,
4515
+ .eae-button-2.icon-before {
4516
+ display: flex;
4517
+ flex-direction: row;
4518
  }
4519
+ body.rtl .eae-button-1.icon-before,
4520
+ body.rtl .eae-button-2.icon-before {
4521
+ display: flex;
4522
+ flex-direction: row-reverse;
4523
  }
4524
+ .eae-button-1.icon-after,
4525
+ .eae-button-2.icon-after {
4526
+ display: flex;
4527
+ flex-direction: row-reverse;
4528
+ }
4529
+ body.rtl .eae-button-1.icon-after,
4530
+ body.rtl .eae-button-2.icon-after {
4531
+ display: flex;
4532
+ flex-direction: row;
4533
  }
4534
+ .eae-button-1-wrapper .eae-button-1,
4535
+ .eae-button-2-wrapper .eae-button-2 {
4536
+ color: black;
4537
+ align-items: center;
4538
+ }
4539
+ .eae-button-1-wrapper:hover .eae-button-1,
4540
+ .eae-button-2-wrapper:hover .eae-button-2 {
4541
+ color: black;
4542
  }
4543
  .eae-dual-button-wrapper.button-style-vertical .eae-button-1.icon-before,
4544
  .eae-dual-button-wrapper.button-style-vertical .eae-button-2.icon-before,
4545
  .eae-dual-button-wrapper.button-style-vertical .eae-button-1.icon-after,
4546
+ .eae-dual-button-wrapper.button-style-vertical .eae-button-2.icon-after {
4547
+ justify-content: center;
4548
  }
4549
+ .eae-button-1.icon-up,
4550
+ .eae-button-2.icon-up {
4551
  display: flex;
4552
  flex-direction: column;
4553
  text-align: center;
4554
  }
4555
+ .eae-button-1.icon-down,
4556
+ .eae-button-2.icon-down {
4557
+ display: flex;
4558
+ flex-direction: column-reverse;
4559
+ text-align: center;
4560
  }
4561
  .eae-button-1-wrapper {
4562
+ background: lightpink;
4563
+ display: flex;
4564
+ justify-content: center;
4565
+ width: 100%;
4566
+ line-height: 1;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4567
  }
4568
+ .eae-button-2-wrapper {
4569
+ background: orange;
4570
+ display: flex;
4571
+ justify-content: center;
4572
+ width: 100%;
4573
+ line-height: 1;
4574
+ }
4575
+ .eae-button-1.icon-up .icon-wrapper,
4576
+ .eae-button-2.icon-up .icon-wrapper,
4577
+ .eae-button-2.icon-down .icon-wrapper,
4578
+ .eae-button-2.icon-down .icon-wrapper {
4579
+ text-align: center;
4580
  }
4581
+ .eae-button-1.icon-up .eae-button-text,
4582
+ .eae-button-2.icon-up .eae-button-text,
4583
+ .eae-button-2.icon-down .eae-button-text,
4584
+ .eae-button-2.icon-down .eae-button-text {
4585
+ text-align: center;
4586
  }
4587
+ .eae-button-1.icon-before i,
4588
+ .eae-button-2.icon-before i,
4589
+ .eae-button-2.icon-after i {
4590
+ align-self: center;
4591
+ margin: 0 10px 0 0;
4592
+ }
4593
+ .eae-button-1.icon-after i,
4594
+ .eae-button-2.icon-after i {
4595
+ align-self: center;
4596
+ margin: 0 0 0 10px;
4597
+ }
4598
+ .eae-button-1.icon-up i,
4599
+ .eae-button-1.icon-down i,
4600
+ .eae-button-2.icon-up i,
4601
+ .eae-button-2.icon-down i {
4602
+ align-self: center;
4603
+ margin: 5px 0;
4604
+ }
4605
+ .eae-dual-button-wrapper.button-style-horizontal .eae-button-1-wrapper,
4606
+ .eae-dual-button-wrapper.button-style-horizontal .eae-button-2-wrapper {
4607
+ padding: 12px 30px;
4608
+ }
4609
+ .eae-dual-button-wrapper.button-style-vertical .eae-button-1-wrapper,
4610
+ .eae-dual-button-wrapper.button-style-vertical .eae-button-2-wrapper {
4611
+ padding: 20px 30px;
4612
+ }
4613
+ .eae-button1,
4614
+ .eae-button2 {
4615
+ position: relative;
4616
+ display: flex;
4617
  }
 
4618
 
4619
+ .eae-dual-button-wrapper.button-style-horizontal .eae-button1,
4620
+ .eae-dual-button-wrapper.button-style-horizontal .eae-button2 {
4621
+ min-width: 150px;
4622
  }
4623
+ .eae-dual-button-wrapper.button-style-vertical .eae-button1 {
4624
+ display: flex;
4625
+ flex-direction: column;
 
 
 
 
 
 
 
 
 
 
 
 
 
4626
  }
4627
+ .eae-button-separator-wrapper .eae-button-separator {
4628
+ width: 40px;
4629
+ height: 40px;
4630
+ line-height: 40px;
4631
+ border-radius: 50%;
4632
+ z-index: 1;
4633
+ box-shadow: 0 0 0 6px rgba(255, 255, 255, 0.2);
4634
+ background: #fafaf8;
4635
+ color: #444;
4636
+ text-transform: uppercase;
4637
+ text-align: center;
4638
+ vertical-align: middle;
4639
+ font-weight: 400;
4640
+ font-size: 14px;
4641
+ position: absolute;
4642
+ transform: translateY(-50%);
4643
+ }
4644
+ .eae-button-separator span {
4645
+ position: absolute;
4646
+ left: 50%;
4647
+ top: 50%;
4648
+ transform: translate(-50%, -50%);
4649
+ }
4650
+ body.rtl.elementor-editor-active
4651
+ .eae-dual-button-main-wrapper
4652
+ .button-style-horizontal
4653
+ .eae-button1
4654
+ .eae-button-separator-wrapper.not-rtl
4655
+ .eae-button-separator {
4656
+ display: none !important;
4657
+ }
4658
+ body:not(.rtl).elementor-editor-active
4659
+ .eae-dual-button-main-wrapper
4660
+ .button-style-horizontal
4661
+ .eae-button2
4662
+ .eae-button-separator-wrapper.rtl
4663
+ .eae-button-separator {
4664
+ display: none !important;
4665
  }
4666
+
4667
  /* Sweep to right */
4668
  .eae-sweep-right {
4669
+ vertical-align: middle;
4670
+ -webkit-transform: perspective(1px) translateZ(0);
4671
+ transform: perspective(1px) translateZ(0);
4672
+ box-shadow: 0 0 1px rgba(0, 0, 0, 0);
4673
+ position: relative;
4674
+ -webkit-transition-property: color;
4675
+ transition-property: color;
4676
+ -webkit-transition-duration: 0.3s;
4677
+ transition-duration: 0.3s;
4678
  }
4679
  .eae-sweep-right:before {
4680
+ content: "";
4681
+ position: absolute;
4682
+ z-index: -1;
4683
+ top: 0;
4684
+ left: 0;
4685
+ right: 0;
4686
+ bottom: 0;
4687
+ background: #2098d1;
4688
+ -webkit-transform: scaleX(0);
4689
+ transform: scaleX(0);
4690
+ -webkit-transform-origin: 0 50%;
4691
+ transform-origin: 0 50%;
4692
+ -webkit-transition-property: transform;
4693
+ transition-property: transform;
4694
+ -webkit-transition-duration: 0.3s;
4695
+ transition-duration: 0.3s;
4696
+ -webkit-transition-timing-function: ease-out;
4697
+ transition-timing-function: ease-out;
4698
+ }
4699
+ .eae-sweep-right:hover,
4700
+ .eae-sweep-right:focus,
4701
+ .eae-sweep-right:active {
4702
+ color: white;
4703
+ }
4704
+ .eae-sweep-right:hover:before,
4705
+ .eae-sweep-right:focus:before,
4706
+ .eae-sweep-right:active:before {
4707
+ -webkit-transform: scaleX(1);
4708
+ transform: scaleX(1);
4709
  }
4710
 
4711
  /* Sweep To Left */
4712
  .eae-sweep-left {
4713
+ vertical-align: middle;
4714
+ -webkit-transform: perspective(1px) translateZ(0);
4715
+ transform: perspective(1px) translateZ(0);
4716
+ box-shadow: 0 0 1px rgba(0, 0, 0, 0);
4717
+ position: relative;
4718
+ -webkit-transition-property: color;
4719
+ transition-property: color;
4720
+ -webkit-transition-duration: 0.3s;
4721
+ transition-duration: 0.3s;
4722
  }
4723
  .eae-sweep-left:before {
4724
+ content: "";
4725
+ position: absolute;
4726
+ z-index: -1;
4727
+ top: 0;
4728
+ left: 0;
4729
+ right: 0;
4730
+ bottom: 0;
4731
+ background: #2098d1;
4732
+ -webkit-transform: scaleX(0);
4733
+ transform: scaleX(0);
4734
+ -webkit-transform-origin: 100% 50%;
4735
+ transform-origin: 100% 50%;
4736
+ -webkit-transition-property: transform;
4737
+ transition-property: transform;
4738
+ -webkit-transition-duration: 0.3s;
4739
+ transition-duration: 0.3s;
4740
+ -webkit-transition-timing-function: ease-out;
4741
+ transition-timing-function: ease-out;
4742
+ }
4743
+ .eae-sweep-left:hover,
4744
+ .eae-sweep-left:focus,
4745
+ .eae-sweep-left:active {
4746
+ color: white;
4747
+ }
4748
+ .eae-sweep-left:hover:before,
4749
+ .eae-sweep-left:focus:before,
4750
+ .eae-sweep-left:active:before {
4751
+ -webkit-transform: scaleX(1);
4752
+ transform: scaleX(1);
4753
  }
4754
 
4755
  /* Sweep To Bottom */
4756
  .eae-sweep-bottom {
4757
+ vertical-align: middle;
4758
+ -webkit-transform: perspective(1px) translateZ(0);
4759
+ transform: perspective(1px) translateZ(0);
4760
+ box-shadow: 0 0 1px rgba(0, 0, 0, 0);
4761
+ position: relative;
4762
+ -webkit-transition-property: color;
4763
+ transition-property: color;
4764
+ -webkit-transition-duration: 0.3s;
4765
+ transition-duration: 0.3s;
4766
  }
4767
  .eae-sweep-bottom:before {
4768
+ content: "";
4769
+ position: absolute;
4770
+ z-index: -1;
4771
+ top: 0;
4772
+ left: 0;
4773
+ right: 0;
4774
+ bottom: 0;
4775
+ background: #2098d1;
4776
+ -webkit-transform: scaleY(0);
4777
+ transform: scaleY(0);
4778
+ -webkit-transform-origin: 50% 0;
4779
+ transform-origin: 50% 0;
4780
+ -webkit-transition-property: transform;
4781
+ transition-property: transform;
4782
+ -webkit-transition-duration: 0.3s;
4783
+ transition-duration: 0.3s;
4784
+ -webkit-transition-timing-function: ease-out;
4785
+ transition-timing-function: ease-out;
4786
+ }
4787
+ .eae-sweep-bottom:hover,
4788
+ .eae-sweep-bottom:focus,
4789
+ .eae-sweep-bottom:active {
4790
+ color: white;
4791
+ }
4792
+ .eae-sweep-bottom:hover:before,
4793
+ .eae-sweep-bottom:focus:before,
4794
+ .eae-sweep-bottom:active:before {
4795
+ -webkit-transform: scaleY(1);
4796
+ transform: scaleY(1);
4797
  }
4798
 
4799
  /* Sweep To Top */
4800
  .eae-sweep-top {
4801
+ vertical-align: middle;
4802
+ -webkit-transform: perspective(1px) translateZ(0);
4803
+ transform: perspective(1px) translateZ(0);
4804
+ box-shadow: 0 0 1px rgba(0, 0, 0, 0);
4805
+ position: relative;
4806
+ -webkit-transition-property: color;
4807
+ transition-property: color;
4808
+ -webkit-transition-duration: 0.3s;
4809
+ transition-duration: 0.3s;
4810
  }
4811
  .eae-sweep-top:before {
4812
+ content: "";
4813
+ position: absolute;
4814
+ z-index: -1;
4815
+ top: 0;
4816
+ left: 0;
4817
+ right: 0;
4818
+ bottom: 0;
4819
+ background: #2098d1;
4820
+ -webkit-transform: scaleY(0);
4821
+ transform: scaleY(0);
4822
+ -webkit-transform-origin: 50% 100%;
4823
+ transform-origin: 50% 100%;
4824
+ -webkit-transition-property: transform;
4825
+ transition-property: transform;
4826
+ -webkit-transition-duration: 0.3s;
4827
+ transition-duration: 0.3s;
4828
+ -webkit-transition-timing-function: ease-out;
4829
+ transition-timing-function: ease-out;
4830
+ }
4831
+ .eae-sweep-top:hover,
4832
+ .eae-sweep-top:focus,
4833
+ .eae-sweep-top:active {
4834
+ color: white;
4835
+ }
4836
+ .eae-sweep-top:hover:before,
4837
+ .eae-sweep-top:focus:before,
4838
+ .eae-sweep-top:active:before {
4839
+ -webkit-transform: scaleY(1);
4840
+ transform: scaleY(1);
4841
  }
4842
 
4843
  /* Bounce To Right */
4844
  .eae-bounce-right {
4845
+ vertical-align: middle;
4846
+ -webkit-transform: perspective(1px) translateZ(0);
4847
+ transform: perspective(1px) translateZ(0);
4848
+ box-shadow: 0 0 1px rgba(0, 0, 0, 0);
4849
+ position: relative;
4850
+ -webkit-transition-property: color;
4851
+ transition-property: color;
4852
+ -webkit-transition-duration: 0.5s;
4853
+ transition-duration: 0.5s;
4854
  }
4855
  .eae-bounce-right:before {
4856
+ content: "";
4857
+ position: absolute;
4858
+ z-index: -1;
4859
+ top: 0;
4860
+ left: 0;
4861
+ right: 0;
4862
+ bottom: 0;
4863
+ background: #2098d1;
4864
+ -webkit-transform: scaleX(0);
4865
+ transform: scaleX(0);
4866
+ -webkit-transform-origin: 0 50%;
4867
+ transform-origin: 0 50%;
4868
+ -webkit-transition-property: transform;
4869
+ transition-property: transform;
4870
+ -webkit-transition-duration: 0.5s;
4871
+ transition-duration: 0.5s;
4872
+ -webkit-transition-timing-function: ease-out;
4873
+ transition-timing-function: ease-out;
4874
+ }
4875
+ .eae-bounce-right:hover,
4876
+ .eae-bounce-right:focus,
4877
+ .eae-bounce-right:active {
4878
+ color: white;
4879
+ }
4880
+ .eae-bounce-right:hover:before,
4881
+ .eae-bounce-right:focus:before,
4882
+ .eae-bounce-right:active:before {
4883
+ -webkit-transform: scaleX(1);
4884
+ transform: scaleX(1);
4885
+ -webkit-transition-timing-function: cubic-bezier(0.52, 1.64, 0.37, 0.66);
4886
+ transition-timing-function: cubic-bezier(0.52, 1.64, 0.37, 0.66);
4887
  }
4888
 
4889
  /* Bounce To Left */
4890
  .eae-bounce-left {
4891
+ vertical-align: middle;
4892
+ -webkit-transform: perspective(1px) translateZ(0);
4893
+ transform: perspective(1px) translateZ(0);
4894
+ box-shadow: 0 0 1px rgba(0, 0, 0, 0);
4895
+ position: relative;
4896
+ -webkit-transition-property: color;
4897
+ transition-property: color;
4898
+ -webkit-transition-duration: 0.5s;
4899
+ transition-duration: 0.5s;
4900
  }
4901
  .eae-bounce-left:before {
4902
+ content: "";
4903
+ position: absolute;
4904
+ z-index: -1;
4905
+ top: 0;
4906
+ left: 0;
4907
+ right: 0;
4908
+ bottom: 0;
4909
+ background: #2098d1;
4910
+ -webkit-transform: scaleX(0);
4911
+ transform: scaleX(0);
4912
+ -webkit-transform-origin: 100% 50%;
4913
+ transform-origin: 100% 50%;
4914
+ -webkit-transition-property: transform;
4915
+ transition-property: transform;
4916
+ -webkit-transition-duration: 0.5s;
4917
+ transition-duration: 0.5s;
4918
+ -webkit-transition-timing-function: ease-out;
4919
+ transition-timing-function: ease-out;
4920
+ }
4921
+ .eae-bounce-left:hover,
4922
+ .eae-bounce-left:focus,
4923
+ .eae-bounce-left:active {
4924
+ color: white;
4925
+ }
4926
+ .eae-bounce-left:hover:before,
4927
+ .eae-bounce-left:focus:before,
4928
+ .eae-bounce-left:active:before {
4929
+ -webkit-transform: scaleX(1);
4930
+ transform: scaleX(1);
4931
+ -webkit-transition-timing-function: cubic-bezier(0.52, 1.64, 0.37, 0.66);
4932
+ transition-timing-function: cubic-bezier(0.52, 1.64, 0.37, 0.66);
4933
  }
4934
 
4935
  /* Bounce To Bottom */
4936
  .eae-bounce-bottom {
4937
+ vertical-align: middle;
4938
+ -webkit-transform: perspective(1px) translateZ(0);
4939
+ transform: perspective(1px) translateZ(0);
4940
+ box-shadow: 0 0 1px rgba(0, 0, 0, 0);
4941
+ position: relative;
4942
+ -webkit-transition-property: color;
4943
+ transition-property: color;
4944
+ -webkit-transition-duration: 0.5s;
4945
+ transition-duration: 0.5s;
4946
  }
4947
  .eae-bounce-bottom:before {
4948
+ content: "";
4949
+ position: absolute;
4950
+ z-index: -1;
4951
+ top: 0;
4952
+ left: 0;
4953
+ right: 0;
4954
+ bottom: 0;
4955
+ background: #2098d1;
4956
+ -webkit-transform: scaleY(0);
4957
+ transform: scaleY(0);
4958
+ -webkit-transform-origin: 50% 0;
4959
+ transform-origin: 50% 0;
4960
+ -webkit-transition-property: transform;
4961
+ transition-property: transform;
4962
+ -webkit-transition-duration: 0.5s;
4963
+ transition-duration: 0.5s;
4964
+ -webkit-transition-timing-function: ease-out;
4965
+ transition-timing-function: ease-out;
4966
+ }
4967
+ .eae-bounce-bottom:hover,
4968
+ .eae-bounce-bottom:focus,
4969
+ .eae-bounce-bottom:active {
4970
+ color: white;
4971
+ }
4972
+ .eae-bounce-bottom:hover:before,
4973
+ .eae-bounce-bottom:focus:before,
4974
+ .eae-bounce-bottom:active:before {
4975
+ -webkit-transform: scaleY(1);
4976
+ transform: scaleY(1);
4977
+ -webkit-transition-timing-function: cubic-bezier(0.52, 1.64, 0.37, 0.66);
4978
+ transition-timing-function: cubic-bezier(0.52, 1.64, 0.37, 0.66);
4979
  }
4980
 
4981
  /* Bounce To Top */
4982
  .eae-bounce-top {
4983
+ vertical-align: middle;
4984
+ -webkit-transform: perspective(1px) translateZ(0);
4985
+ transform: perspective(1px) translateZ(0);
4986
+ box-shadow: 0 0 1px rgba(0, 0, 0, 0);
4987
+ position: relative;
4988
+ -webkit-transition-property: color;
4989
+ transition-property: color;
4990
+ -webkit-transition-duration: 0.5s;
4991
+ transition-duration: 0.5s;
4992
  }
4993
  .eae-bounce-top:before {
4994
+ content: "";
4995
+ position: absolute;
4996
+ z-index: -1;
4997
+ top: 0;
4998
+ left: 0;
4999
+ right: 0;
5000
+ bottom: 0;
5001
+ background: #2098d1;
5002
+ -webkit-transform: scaleY(0);
5003
+ transform: scaleY(0);
5004
+ -webkit-transform-origin: 50% 100%;
5005
+ transform-origin: 50% 100%;
5006
+ -webkit-transition-property: transform;
5007
+ transition-property: transform;
5008
+ -webkit-transition-duration: 0.5s;
5009
+ transition-duration: 0.5s;
5010
+ -webkit-transition-timing-function: ease-out;
5011
+ transition-timing-function: ease-out;
5012
+ }
5013
+ .eae-bounce-top:hover,
5014
+ .eae-bounce-top:focus,
5015
+ .eae-bounce-top:active {
5016
+ color: white;
5017
+ }
5018
+ .eae-bounce-top:hover:before,
5019
+ .eae-bounce-top:focus:before,
5020
+ .eae-bounce-top:active:before {
5021
+ -webkit-transform: scaleY(1);
5022
+ transform: scaleY(1);
5023
+ -webkit-transition-timing-function: cubic-bezier(0.52, 1.64, 0.37, 0.66);
5024
+ transition-timing-function: cubic-bezier(0.52, 1.64, 0.37, 0.66);
5025
  }
5026
  /* Google Map */
5027
+ .eae-markers .marker {
5028
+ display: none;
5029
  }
5030
+ .eae-markers p {
5031
+ margin-bottom: 0;
5032
  }
5033
 
5034
  /*EAE Filterable Gallery*/
5035
+ .eae-fg-wrapper {
5036
+ display: flex;
5037
+ flex-direction: column;
5038
+ overflow: hidden;
5039
  }
5040
+ .eae-gallery-filter {
5041
+ display: flex;
5042
+ flex-direction: row;
5043
+ justify-content: center;
5044
+ flex-wrap: wrap;
5045
  }
5046
+ .eae-filter-label {
5047
+ padding: 5px 10px;
5048
+ background-color: #a0ce4e;
5049
+ color: #fff;
5050
+ margin: 0px 3px 0px 3px;
5051
  }
5052
+ .eae-filter-label.current {
5053
+ background-color: #73b9dc;
5054
  }
5055
 
5056
+ .eae-fg-image {
5057
+ display: flex;
5058
+ flex-wrap: wrap;
5059
+ flex-direction: row;
5060
  }
5061
+ .eae-fg-wrapper .eae-gallery-item-inner img {
5062
+ width: 100%;
5063
+ height: auto;
5064
+ display: block !important;
5065
+ transition: all 0.5s ease;
5066
+ -webkit-transition: all 0.5s ease;
5067
  }
5068
 
5069
+ .eae-gallery-item {
5070
+ height: auto;
 
5071
  }
5072
  .eae-gallery-filter a {
5073
+ color: #ffffff;
5074
+ text-decoration: none;
5075
  }
5076
  .eae-gallery-filter a.current {
5077
+ font-weight: bold;
5078
  }
5079
 
5080
+ .eae-gallery-item-inner {
5081
+ position: relative;
5082
+ overflow: hidden;
5083
  }
5084
 
5085
  /*Overlay Css*/
5086
+ .eae-overlay-always .eae-gallery-item .eae-grid-overlay {
5087
+ display: block;
 
5088
  }
5089
 
5090
  .eae-overlay-hover .eae-gallery-item-inner:hover .eae-grid-overlay {
5091
+ display: block;
5092
  }
5093
+ .eae-overlay-hide-on-hover .eae-gallery-item-inner:hover .eae-grid-overlay {
5094
+ display: none;
5095
  }
5096
+ .eae-overlay-hide-on-hover .eae-grid-overlay {
5097
+ display: block;
5098
  }
5099
+ .eae-grid-overlay {
5100
+ position: absolute;
5101
+ top: 0;
5102
+ left: 0;
5103
+ display: none;
5104
+ z-index: 99;
5105
+ background: rgba(0, 0, 0, 0.5);
5106
+ height: 100%;
5107
+ width: 100%;
5108
  }
5109
 
5110
  .eae-grid-overlay-inner {
5111
+ display: block;
5112
+ position: relative;
5113
+ top: 50%;
5114
+ left: 50%;
5115
+ transform: translate(-50%, -50%);
5116
+ text-align: center;
5117
  }
5118
 
5119
  .eae-fg-wrapper .eae-icon-wrapper {
5120
+ display: flex;
5121
+ justify-content: center;
 
5122
  }
5123
 
 
5124
  /* Overlay Icon*/
5125
+ .eae-overlay-caption {
5126
+ display: block;
5127
+ line-height: 1em;
5128
+ margin-top: 15px;
5129
+ color: #73b9dc;
5130
+ @font: 20 px Arial, sans-serif;
5131
+ }
5132
+ .eae-overlay-icon {
5133
+ line-height: 1em;
5134
+ padding: 0.5em;
5135
+ display: inline-block;
5136
+ }
5137
+ .eae-overlay-icon svg {
5138
+ height: auto;
5139
+ }
5140
+ .eae-icon-view-framed .eae-overlay-icon {
5141
+ padding: 0.5em;
5142
+ color: #73b9dc;
5143
+ border: 3px solid #73b9dc;
5144
+ background-color: transparent;
5145
+ }
5146
+
5147
+ .eae-icon-view-stacked .eae-overlay-icon {
5148
+ padding: 0.5em;
5149
+ color: #fff;
5150
+ background-color: #818a91;
5151
+ }
5152
+ .eae-hover-direction-effect .eae-grid-overlay {
5153
+ position: absolute;
5154
+ z-index: 99;
5155
+ background: rgba(0, 0, 0, 0.5);
5156
+ height: 100%;
5157
+ width: 100%;
5158
+ }
5159
+
5160
+ .eae-fg-wrapper.eae-image-ratio-yes
5161
+ .eae-gallery-item-inner
5162
+ .eae-fg-img-wrapper {
5163
+ position: relative;
5164
+ top: 0;
5165
+ overflow: hidden;
5166
+ left: 0;
5167
+ right: 0;
5168
+ border: 0;
5169
+ }
5170
+ .eae-fg-wrapper.eae-image-ratio-yes
5171
+ .eae-gallery-item-inner
5172
+ .eae-fg-img-wrapper
5173
+ img {
5174
+ height: 100%;
5175
+ width: 100%;
5176
+ display: block;
5177
+ position: absolute;
5178
+ top: 0;
5179
+ left: 0;
5180
+ object-fit: cover;
5181
  }
5182
 
5183
  /* Ribbons and Badges */
5184
 
5185
+ .wts-eae-ribbons-badges-wrapper {
5186
+ display: none;
5187
  }
5188
+ .wts-eae-enable-ribbons-badges-yes
5189
+ .elementor-column-wrap
5190
+ > .wts-eae-ribbons-badges-wrapper {
5191
+ display: block;
5192
  }
5193
 
5194
  /* Ribbon */
5195
+ .wts-eae-enable-ribbons-badges-yes.wts-eae-badge-type-ribbon
5196
+ > .wts-eae-ribbons-badges-wrapper {
5197
+ position: absolute;
5198
+ top: 0;
5199
+ left: auto;
5200
+ right: 0;
5201
+ /* -webkit-transform: rotate(90deg); */
5202
+ -ms-transform: rotate(90deg);
5203
+ /* transform: rotate(90deg); */
5204
+ width: 150px;
5205
+ overflow: hidden;
5206
+ height: 150px;
5207
+ z-index: 999;
5208
+ padding: 8px 12px;
5209
+ }
5210
+ .wts-eae-badge-h-left.wts-eae-enable-ribbons-badges-yes.wts-eae-badge-type-ribbon
5211
+ > .wts-eae-ribbons-badges-wrapper {
5212
+ -webkit-transform: rotate(0);
5213
+ -ms-transform: rotate(0);
5214
+ transform: rotate(0);
5215
+ left: 0;
5216
+ right: auto;
5217
+ }
5218
+ .wts-eae-badge-h-right.wts-eae-enable-ribbons-badges-yes.wts-eae-badge-type-ribbon
5219
+ > .wts-eae-ribbons-badges-wrapper {
5220
+ -webkit-transform: rotate(0);
5221
+ -ms-transform: rotate(0);
5222
+ transform: rotate(90deg);
5223
+ left: auto;
5224
+ right: 0;
5225
+ }
5226
+ .wts-eae-enable-ribbons-badges-yes.wts-eae-badge-type-ribbon
5227
+ > .wts-eae-ribbons-badges-wrapper
5228
+ span.wts-eae-ribbons-badges-inner {
5229
+ position: absolute;
5230
+ text-align: center;
5231
+ left: 0;
5232
+ top: 0;
5233
+ width: 200%;
5234
+ -webkit-transform: translateY(-50%) translateX(-50%) translateX(35px)
5235
+ rotate(-45deg);
5236
+ -ms-transform: translateY(-50%) translateX(-50%) translateX(35px)
5237
+ rotate(-45deg);
5238
+ transform: translateY(-50%) translateX(-50%) translateX(35px) rotate(-45deg);
5239
+ margin-top: 35px;
5240
+ font-size: 13px;
5241
+ line-height: 2;
5242
+ font-weight: 800;
5243
+ text-transform: uppercase;
5244
+ background: rgba(63, 195, 135, 0.8);
5245
+ padding: 8px 12px;
5246
  }
5247
  /* Ribbon */
5248
 
5249
  /* Sale Badge Badge */
5250
+ .wts-eae-enable-ribbons-badges-yes.wts-eae-badge-type-badge
5251
+ > .wts-eae-ribbons-badges-wrapper
5252
+ span.wts-eae-ribbons-badges-inner {
5253
+ min-height: 3.236em;
5254
+ min-width: 3.236em;
5255
+ padding: 0;
5256
+ font-size: 1em;
5257
+ font-weight: 700;
5258
+ position: absolute;
5259
+ text-align: center;
5260
+ line-height: 3.236;
5261
+ top: -0.5em;
5262
+ left: -0.5em;
5263
+ margin: 0;
5264
+ border-radius: 100%;
5265
+ background-color: #77a464;
5266
+ color: #fff;
5267
+ font-size: 0.857em;
5268
+ z-index: 9;
5269
+ }
5270
+ .wts-eae-badge-h-left.wts-eae-badge-v-bottom.wts-eae-enable-ribbons-badges-yes
5271
+ > .wts-eae-ribbons-badges-wrapper
5272
+ span.wts-eae-ribbons-badges-inner {
5273
+ left: 20px;
5274
+ right: auto;
5275
+ top: auto;
5276
+ bottom: 20px;
5277
+ }
5278
+ .wts-eae-badge-h-left.wts-eae-badge-v-top.wts-eae-enable-ribbons-badges-yes
5279
+ > .wts-eae-ribbons-badges-wrapper
5280
+ span.wts-eae-ribbons-badges-inner {
5281
+ left: 20px;
5282
+ right: auto;
5283
+ top: 20px;
5284
+ bottom: auto;
5285
+ }
5286
+
5287
+ .wts-eae-badge-h-right.wts-eae-badge-v-bottom.wts-eae-enable-ribbons-badges-yes
5288
+ > .wts-eae-ribbons-badges-wrapper
5289
+ span.wts-eae-ribbons-badges-inner {
5290
+ left: auto;
5291
+ right: 20px;
5292
+ top: auto;
5293
+ bottom: 20px;
5294
+ }
5295
+ .wts-eae-badge-h-right.wts-eae-badge-v-top.wts-eae-enable-ribbons-badges-yes
5296
+ > .wts-eae-ribbons-badges-wrapper
5297
+ span.wts-eae-ribbons-badges-inner {
5298
+ left: auto;
5299
+ right: 20px;
5300
+ top: 20px;
5301
+ bottom: auto;
5302
  }
5303
 
5304
  /* Sale Badge Badge */
5305
 
 
5306
  /* Icon Migration */
5307
  /* Flipbox */
5308
+ .eae-flip-box-front svg,
5309
+ .eae-flip-box-back svg {
5310
+ width: 25px;
5311
+ height: auto;
5312
  }
5313
  /* Text-Separator */
5314
+ .wts-eae-textseparator svg {
5315
+ width: 25px;
5316
+ height: auto;
5317
  }
5318
 
5319
  /* AfterBefore Image Comp */
5320
+ .eae-img-comp-slider svg {
5321
+ width: 22px;
5322
+ height: auto;
5323
  }
5324
 
5325
  /* Model Popup */
5326
+ .eae-popup-link svg {
5327
+ display: inline-block;
5328
+ width: 1em;
5329
  }
5330
 
5331
  .eae-popup svg:hover,
5332
  .eae-popup svg:focus {
5333
+ opacity: 1;
5334
+ cursor: pointer;
5335
  }
5336
  .eae-popup svg:active {
5337
+ top: 1px;
5338
  }
5339
 
5340
+ .eae-popup svg.eae-close {
5341
+ width: 28px;
5342
+ height: 28px;
5343
+ line-height: 1em;
5344
+ text-decoration: none;
5345
+ text-align: center;
5346
+ opacity: 1;
5347
+ background-color: #fff;
5348
  }
5349
  /* Dual Button */
5350
+ .eae-dual-button-wrapper svg {
5351
+ width: 1em;
5352
+ height: auto;
5353
+ display: block;
5354
  }
5355
+ eae-button-separator i {
5356
+ position: relative;
5357
+ display: block;
5358
  }
5359
+ .eae-button-1.icon-before svg,
5360
+ .eae-button-2.icon-before svg,
5361
+ .eae-button-2.icon-after svg {
5362
+ align-self: center;
5363
+ margin: 0 10px 0 0;
5364
  }
5365
 
5366
+ .eae-button-1.icon-after svg,
5367
+ .eae-button-2.icon-after svg {
5368
+ align-self: center;
5369
+ margin: 0 0 0 10px;
5370
  }
5371
+ .eae-button-1.icon-up svg,
5372
+ .eae-button-1.icon-down svg,
5373
+ .eae-button-2.icon-up svg,
5374
+ .eae-button-2.icon-down svg {
5375
+ align-self: center;
5376
+ margin: 5px 0;
5377
  }
5378
 
5379
  /* Price Table */
5380
+ .eae-pt-button-wrapper a svg {
5381
+ width: 1em;
5382
  }
5383
+ .eae-pt-action-button .eae-pt-align-icon-left {
5384
+ float: left;
5385
  }
5386
 
5387
+ .eae-pt-action-button .eae-pt-align-icon-right {
5388
+ float: right;
5389
  }
5390
 
5391
+ .eae-icon-wrap svg {
5392
+ width: 20px;
5393
+ height: auto;
5394
+ font-size: 20px;
5395
+ display: block;
5396
  }
5397
+ .eae-info-circle .eae-icon-wrap svg {
5398
+ width: 20px;
5399
+ height: auto;
5400
+ font-size: 20px;
5401
  }
5402
 
5403
+ .eae-icon-view-stacked svg {
5404
+ fill: #fff;
5405
+ }
5406
 
5407
+ .ae-link-yes {
5408
+ cursor: pointer;
5409
  }
5410
 
5411
  /*unfold-css*/
5412
  .eae-element-unfold-content {
5413
+ padding: 10px 0px;
5414
+ background-color: #d3d3d3c4;
5415
+ /*background: linear-gradient(180deg, #F4EFEF 0%, #F6F6F6 100%);*/
5416
+ width: 100%;
5417
+ position: absolute;
5418
+ left: 0;
5419
+ bottom: 0;
5420
+ z-index: 999;
5421
+ }
5422
+
5423
+ a.eae-unfold-link {
5424
+ background-color: #61ce70;
5425
+ color: #fff;
5426
+ display: inline-block;
5427
+ overflow: hidden;
5428
  }
5429
  a.eae-unfold-link svg {
5430
+ background-color: #fff;
5431
+ }
5432
+ .eae-unfold-button-icon {
5433
+ vertical-align: middle;
5434
+ }
5435
+
5436
+ .eae-fold-yes.elementor-section .elementor-container,
5437
+ .eae-fold-yes .elementor-column-wrap,
5438
+ .eae-fold-yes.elementor-widget {
5439
+ overflow: hidden;
5440
+ }
5441
+
5442
+ body.elementor-editor-active
5443
+ .elementor.elementor-edit-mode
5444
+ .elementor-element.elementor-section.eae-widget-unfold-yes
5445
+ .elementor-container,
5446
+ body.elementor-editor-preview
5447
+ .elementor.elementor-edit-mode
5448
+ .elementor-element.elementor-section.eae-widget-unfold-yes
5449
+ .elementor-container {
5450
+ overflow: hidden;
5451
+ }
5452
+ body.elementor-editor-active
5453
+ .elementor.elementor-edit-mode
5454
+ .elementor-element.elementor-column.eae-widget-unfold-yes
5455
+ .elementor-column-wrap,
5456
+ body.elementor-editor-preview
5457
+ .elementor.elementor-edit-mode
5458
+ .elementor-element.elementor-column.eae-widget-unfold-yes
5459
+ .elementor-column-wrap {
5460
+ overflow: hidden;
5461
+ }
5462
+ body.elementor-editor-active
5463
+ .elementor.elementor-edit-mode
5464
+ .elementor-element.elementor-widget.eae-widget-unfold-yes,
5465
+ body.elementor-editor-preview
5466
+ .elementor.elementor-edit-mode
5467
+ .elementor-element.elementor-widget.eae-widget-unfold-yes {
5468
+ overflow: hidden;
5469
+ }
5470
+
5471
+ .eae-widget-unfold-yes .elementor-widget-container .eae-fold-yes.eae-rc {
5472
+ display: none !important;
5473
+ }
5474
+
5475
+ .eae-unfold-button-icon svg {
5476
+ line-height: 1em;
5477
+ text-decoration: none;
5478
+ -webkit-mask-repeat: no-repeat !important;
5479
+ text-align: center;
5480
+ opacity: 1;
5481
+ }
5482
+ .eae-unfold-icon-type-svg .eae-unfold-button-icon,
5483
+ .eae-fold-icon-type-svg .eae-unfold-button-icon {
5484
+ -webkit-mask-size: cover !important;
5485
+ background-image: none;
5486
+ transform: translateY(-50%);
5487
+ }
5488
+
5489
+ .elementor-section.elementor-section-items-middle.eae-widget-unfold-yes
5490
+ > .elementor-container,
5491
+ .elementor-section.elementor-section-items-bottom.eae-widget-unfold-yes
5492
+ > .elementor-container {
5493
+ -webkit-box-align: start;
5494
+ -webkit-align-items: flex-start;
5495
+ -ms-flex-align: start;
5496
+ align-items: start;
5497
+ }
5498
+ .elementor-section.elementor-section-content-middle.eae-widget-unfold-yes
5499
+ > .elementor-container,
5500
+ .elementor-section.elementor-section-content-bottom.eae-widget-unfold-yes
5501
+ > .elementor-container {
5502
+ -webkit-box-align: start;
5503
+ -webkit-align-items: flex-start;
5504
+ -ms-flex-align: start;
5505
+ align-items: start;
5506
  }
5507
 
5508
+ /*Modal Pop Up Button Type Image*/
5509
+ .elementor-widget-wts-modal-popup.eae-pop-btn-type-image .eae-popup-link {
5510
+ padding: 0px;
5511
+ background-color: transparent;
5512
+ overflow: hidden;
 
 
 
 
 
 
5513
  }
5514
 
5515
+ /*Comparision Table Bug Fix elementor*/
5516
+ [data-elementor-device-mode="tablet"]
5517
+ .eae-tab-format-mobile
5518
+ .eae-ct-hide.eae-fbox-heading {
5519
+ display: none !important;
 
 
 
 
 
 
5520
  }
5521
 
5522
+ /* Timeline Stacked Item Border Size Changed to 0 */
5523
+ .eae-timeline-item .eae-icon-view-stacked {
5524
+ border-width: 0px !important;
 
 
 
 
5525
  }
 
 
 
 
 
assets/css/eae.min.css CHANGED
@@ -1 +1 @@
1
- .elementor-widget-wts-textseparator .elementor-widget-container{overflow:hidden}.wts-eae-textseparator{align-items:center;display:flex;flex-flow:row nowrap;margin:auto}.eae-separator-icon-inner i{height:1em;width:1em;text-align:center;position:relative;display:block}.eae-separator-icon-inner i:before{position:absolute;left:50%;-webkit-transform:translateX(-50%);-moz-transform:translateX(-50%);-ms-transform:translateX(-50%);-o-transform:translateX(-50%);transform:translateX(-50%)}.wts-eae-textseparator .eae-sep-holder{flex:1 1 auto;height:1px;min-width:10%;position:relative}.wts-eae-textseparator .eae-sep-holder .eae-sep-lines{border-top-width:1px;display:block;height:1px;position:relative;top:1px;width:100%}.eae-separator-title{margin:0;-moz-box-flex:0;flex:0 1 auto;line-height:1em;margin:0;overflow-wrap:break-word}.sep-align-right .sep-right{display:none}.sep-align-left .sep-left{display:none}.eae-icon-view-stacked i{color:#fff}.eae-icon-view-framed .eae-separator-icon-inner{border:1px solid}.eae-icon-shape-circle .eae-separator-icon-inner{border-radius:50%}.eae-separator-icon-wrapper,.eae-separator-title{margin:0 5px!important}.eae-separator-icon-inner{line-height:1}.wts-price-box-wrapper .eae-pt-heading,.wts-price-box-wrapper .eae-pt-sub-heading{margin:5px 0;text-align:center}.plan-price-shape{display:table;height:6em;margin:auto;width:6em}.eae-pt-price-box-shape-circle .plan-price-shape,.eae-pt-price-box-shape-square .plan-price-shape{border:1px solid}.eae-pt-price-box-shape-circle .plan-price-shape{border-radius:50%}.plan-price-block{padding:10px 0}.plan-price-shape-inner{display:table-cell;vertical-align:middle;padding:10px}.plan-price-shape-inner>span{display:block;font-size:1em;text-align:center}.eae-pt-feature-list{list-style:outside none none;text-align:center;margin:10px 0}.eae-pt-button-wrapper>a{text-align:center;display:inline-block;line-height:1}.eae-pt-button-wrapper{text-align:center}.wts-price-box-wrapper .heading-wrapper,.wts-price-box-wrapper .plan-features-wrapper{padding:10px 5px}.eae-pt-button-wrapper{padding:15px 0}.eae-pt-button-wrapper a{padding:5px 15px;border-radius:3px}.eae-pt-align-icon-right{float:right}.strike-feature{text-decoration:line-through}.eae-flip-box{width:100%;text-align:center}.eae-flip-box-wrapper{display:inline-block;width:100%}.eae-flip-box-inner{width:100%;height:200px;position:relative;-webkit-transform-style:preserve-3d;-moz-transform-style:preserve-3d;-ms-transform-style:preserve-3d;transform-style:preserve-3d}.eae-flip-box-inner .eae-flip-box-back,.eae-flip-box-inner .eae-flip-box-front{width:100%;height:100%;position:absolute;top:0;left:0;text-align:center;padding:10px;-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;-ms-backface-visibility:hidden;backface-visibility:hidden;-webkit-transition:all .6s ease 0s;-moz-transition:all .6s ease 0s;-ms-transition:all .6s ease 0s;-o-transition:all .6s ease 0s;transition:all .6s ease 0s}.eae-flip-box-front{z-index:2}.eae-flip-box-back{z-index:1}.eae-fb-animate-vertical .eae-flip-box-inner .eae-flip-box-front{-webkit-transform:perspective(1000px) rotateX(0);-ms-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}.eae-fb-animate-vertical .eae-flip-box-inner .eae-flip-box-back{-webkit-transform:perspective(1000px) rotateX(180deg);transform:perspective(1000px) rotateX(180deg);-ms-transform:perspective(1000px) rotateX(180deg)}.eae-fb-animate-vertical .eae-flip-box-inner:hover .eae-flip-box-front{-webkit-transform:perspective(1000px) rotateX(180deg);transform:perspective(1000px) rotateX(180deg);-ms-transform:perspective(1000px) rotateX(180deg)}.eae-fb-animate-vertical .eae-flip-box-inner:hover .eae-flip-box-back{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0);-ms-transform:perspective(1000px) rotateX(0)}.eae-fb-animate-horizontal .eae-flip-box-inner .eae-flip-box-front{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0);-ms-transform:perspective(1000px) rotateY(0)}.eae-fb-animate-horizontal .eae-flip-box-inner .eae-flip-box-back{-webkit-transform:perspective(1000px) rotateY(180deg);transform:perspective(1000px) rotateY(180deg);-ms-transform:perspective(1000px) rotateY(180deg)}.eae-fb-animate-horizontal .eae-flip-box-inner:hover .eae-flip-box-front{-webkit-transform:perspective(1000px) rotateY(180deg);transform:perspective(1000px) rotateY(180deg);-ms-transform:perspective(1000px) rotateY(180deg)}.eae-fb-animate-horizontal .eae-flip-box-inner:hover .eae-flip-box-back{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0);-ms-transform:perspective(1000px) rotateY(0)}.eae-fb-animate-fade .eae-flip-box-inner .eae-flip-box-front{opacity:1}.eae-fb-animate-fade .eae-flip-box-inner .eae-flip-box-back{opacity:0}.eae-fb-animate-fade .eae-flip-box-inner:hover .eae-flip-box-front{opacity:0}.eae-fb-animate-fade .eae-flip-box-inner:hover .eae-flip-box-back{opacity:1}.eae-flip-box-wrapper:focus .eae-flip-box-back,.eae-flip-box-wrapper:hover .eae-flip-box-back{z-index:2}.eae-flip-box-wrapper:focus .eae-flip-box-front,.eae-flip-box-wrapper:hover .eae-flip-box-front{z-index:1}.fade .eae-flip-box-wrapper .eae-flip-box-front{opacity:1;transition:1s}.fade .eae-flip-box-wrapper .eae-flip-box-back{opacity:0;transition:1s}.fade .eae-flip-box-wrapper:focus .eae-flip-box-front,.fade .eae-flip-box-wrapper:hover .eae-flip-box-front{opacity:0}.fade .eae-flip-box-wrapper:focus .eae-flip-box-back,.fade .eae-flip-box-wrapper:hover .eae-flip-box-back{opacity:1}.eae-fb-animate-flip .eae-flip-box-wrapper{perspective:800px}.eae-fb-animate-flip .eae-flip-box-inner{transform-style:preserve-3d;transform:rotateX(0) rotateY(0) rotateZ(0);transition:1s}.eae-fb-animate-flip .eae-flip-box-front{transform:translate3d(0,0,1px)}.eae-fb-animate-flip .eae-flip-box-back{transform:rotateY(180deg) translate3d(0,0,0)}.eae-fb-animate-flip .eae-flip-box-wrapper:focus .eae-flip-box-inner,.eae-fb-animate-flip .eae-flip-box-wrapper:hover .eae-flip-box-inner{transform:rotateY(180deg)}.up .eae-flip-box-front{transform:translate3d(0,0,1px)}.up .eae-flip-box-back{transform:rotateX(180deg) translate3d(0,0,0)}.up .eae-flip-box-wrapper:focus .eae-flip-box-inner,.up .eae-flip-box-wrapper:hover .eae-flip-box-inner{transform:rotateX(180deg)}.box .eae-flip-box-front{transform:translate3d(0,0,100px) scale(.85,.85)}.box .eae-flip-box-back{transform:rotateY(180deg) translate3d(0,0,100px) scale(.85,.85)}.box.up .eae-flip-box-back{transform:rotateX(180deg) translate3d(0,0,100px) scale(.85,.85)}.hideback .eae-flip-box-back,.hideback .eae-flip-box-front{backface-visibility:hidden}.eae-fb-animate-nananana .eae-flip-box-wrapper:focus .eae-flip-box-front,.eae-fb-animate-nananana .eae-flip-box-wrapper:hover .eae-flip-box-front{z-index:10;animation:batman 1s 2 alternate linear}.eae-fb-animate-flipcard .eae-flip-box-back,.eae-fb-animate-flipcard .eae-flip-box-front{transition:transform .4s ease;transform-origin:center center -150px;-webkit-transform-origin:center center -150px}.flipcard-rotate-top-down .eae-flip-box-front{transform:perspective(0) rotateX(0) rotateY(0) rotateZ(0)}.flipcard-rotate-top-down .eae-flip-box-back{transform:perspective(0) rotateX(90deg) rotateY(0) rotateZ(0)}.eae-fb-animate-flipcard.flipcard-rotate-top-down .eae-flip-box-wrapper:hover .eae-flip-box-front{transform:perspective(0) rotateX(-90deg) rotateY(0) rotateZ(0)}.eae-fb-animate-flipcard.flipcard-rotate-top-down .eae-flip-box-wrapper:hover .eae-flip-box-back{z-index:99999;transform:perspective(0) rotateX(0) rotateY(0) rotateZ(0)}.flipcard-rotate-down-top .eae-flip-box-front{transform:perspective(0) rotateX(0) rotateY(0) rotateZ(0)}.flipcard-rotate-down-top .eae-flip-box-back{transform:perspective(0) rotateX(-90deg) rotateY(0) rotateZ(0)}.eae-fb-animate-flipcard.flipcard-rotate-down-top .eae-flip-box-wrapper:hover .eae-flip-box-front{transform:perspective(0) rotateX(90deg) rotateY(0) rotateZ(0)}.eae-fb-animate-flipcard.flipcard-rotate-down-top .eae-flip-box-wrapper:hover .eae-flip-box-back{z-index:99999;transform:perspective(0) rotateX(0) rotateY(0) rotateZ(0)}.flipcard-rotate-left-right .eae-flip-box-front{transform:perspective(0) rotateX(0) rotateY(0) rotateZ(0)}.flipcard-rotate-left-right .eae-flip-box-back{transform:perspective(0) rotateX(0) rotateY(-90deg) rotateZ(0)}.eae-fb-animate-flipcard.flipcard-rotate-left-right .eae-flip-box-wrapper:hover .eae-flip-box-front{transform:perspective(0) rotateX(0) rotateY(90deg) rotateZ(0)}.eae-fb-animate-flipcard.flipcard-rotate-left-right .eae-flip-box-wrapper:hover .eae-flip-box-back{z-index:99999;transform:perspective(0) rotateX(0) rotateY(0) rotateZ(0)}.flipcard-rotate-right-left .eae-flip-box-front{transform:perspective(0) rotateX(0) rotateY(0) rotateZ(0)}.flipcard-rotate-right-left .eae-flip-box-back{transform:perspective(0) rotateX(0) rotateY(90deg) rotateZ(0)}.eae-fb-animate-flipcard.flipcard-rotate-right-left .eae-flip-box-wrapper:hover .eae-flip-box-front{transform:perspective(0) rotateX(0) rotateY(-90deg) rotateZ(0)}.eae-fb-animate-flipcard.flipcard-rotate-right-left .eae-flip-box-wrapper:hover .eae-flip-box-back{z-index:99999;transform:perspective(0) rotateX(0) rotateY(0) rotateZ(0)}@keyframes batman{0%{transform:scale(1,1) rotateZ(0)}100%{transform:scale(0,0) rotateZ(720deg);opacity:0}}.eae-flip-box-back i,.eae-flip-box-front i{font-size:32px;height:1em;width:1em;position:relative;display:block}.eae-flip-box-back i:before,.eae-flip-box-front i:before{position:absolute;left:50%;-webkit-transform:translate(-50%);-moz-transform:translate(-50%);-ms-transform:translate(-50%);-o-transform:translate(-50%);transform:translate(-50%)}.eae-fb-icon-view-framed{border:1px solid #92be43}.eae-fb-icon-shape-circle{border-radius:50%}.eae-flip-box-wrapper .icon-wrapper{display:inline-block;padding:10px;line-height:1}.eae-flip-box-wrapper .back-icon-title,.eae-flip-box-wrapper .front-icon-title{margin:10px auto;color:#fff}.eae-flip-box-wrapper .flipbox-content{display:block;position:relative;top:50%;transform:translateY(-50%);-ms-transform:translateY(-50%)}.flipbox-content p{margin-bottom:10px}.eae-fb-button{display:inline-block;padding:5px 10px}.eae-flip-box-front{background:#a0ce4e}.eae-flip-box-back{background:#73b9dc}@media only screen and (max-width:768px){.eae-flip-box-back,.eae-flip-box-front,.flipbox-content{cursor:pointer;overflow:visible!important;transform-style:preserve-3d;-webkit-transform-style:preserve-3d}}.elementor-widget-wts-shape-separator svg{display:block}.wts-eae-pl-wrapper ul{margin:0}.wts-eae-pl-wrapper ul li{list-style:none;overflow:hidden;margin-bottom:10px}.eae-pl-img-align-none .eae-pl-image-wrapper a{text-align:center}.eae-pl-title{margin:0}.eae-pl-title a{display:block}.eae-pl-readmore a{display:inline-block;border-radius:2px;color:#fff;padding:4px 8px}.eae-at-animation-text-wrapper{display:inline-block;position:relative;text-align:left}.eae-at-animation-text-wrapper .eae-at-animation-text{display:inline-block;position:absolute;white-space:nowrap;left:0;top:0}.eae-at-animation-text-wrapper .eae-at-animation-text.is-visible{position:relative}.no-js .eae-at-animation-text-wrapper .eae-at-animation-text{opacity:0}.no-js .eae-at-animation-text-wrapper .eae-at-animation-text.is-visible{opacity:1}.eae-animtext-wrapper{font-size:40px}.eae-st-rest-text{display:inline-block}.eae-st-split-text{display:inline-block}.eae-at-animation.type .eae-at-animation-text-wrapper{vertical-align:bottom;overflow:hidden}.eae-at-animation.type .eae-at-animation-text-wrapper::after{content:'';position:absolute;right:0;top:50%;bottom:auto;-webkit-transform:translateY(-50%);-moz-transform:translateY(-50%);-ms-transform:translateY(-50%);-o-transform:translateY(-50%);transform:translateY(-50%);height:90%;width:1px}.eae-at-animation.type .eae-at-animation-text-wrapper.waiting::after{-webkit-animation:cd-pulse 1s infinite;-moz-animation:cd-pulse 1s infinite;animation:cd-pulse 1s infinite}.eae-at-animation.type .eae-at-animation-text-wrapper.selected::after{visibility:hidden}.eae-at-animation.type .eae-at-animation-text{visibility:hidden}.eae-at-animation.type .eae-at-animation-text.is-visible{visibility:visible}.eae-at-animation.type i{position:absolute;visibility:hidden}.eae-at-animation.type i.in{position:relative;visibility:visible}@-webkit-keyframes cd-pulse{0%{-webkit-transform:translateY(-50%) scale(1);opacity:1}40%{-webkit-transform:translateY(-50%) scale(.9);opacity:0}100%{-webkit-transform:translateY(-50%) scale(0);opacity:0}}@-moz-keyframes cd-pulse{0%{-moz-transform:translateY(-50%) scale(1);opacity:1}40%{-moz-transform:translateY(-50%) scale(.9);opacity:0}100%{-moz-transform:translateY(-50%) scale(0);opacity:0}}@keyframes cd-pulse{0%{-webkit-transform:translateY(-50%) scale(1);-moz-transform:translateY(-50%) scale(1);-ms-transform:translateY(-50%) scale(1);-o-transform:translateY(-50%) scale(1);transform:translateY(-50%) scale(1);opacity:1}40%{-webkit-transform:translateY(-50%) scale(.9);-moz-transform:translateY(-50%) scale(.9);-ms-transform:translateY(-50%) scale(.9);-o-transform:translateY(-50%) scale(.9);transform:translateY(-50%) scale(.9);opacity:0}100%{-webkit-transform:translateY(-50%) scale(0);-moz-transform:translateY(-50%) scale(0);-ms-transform:translateY(-50%) scale(0);-o-transform:translateY(-50%) scale(0);transform:translateY(-50%) scale(0);opacity:0}}.eae-img-comp-container{width:100%;position:relative;text-align:center}.eae-img-comp-container img{vertical-align:middle}.eae-img-comp-img{position:absolute;top:0;left:0;height:100%;width:100%;overflow:hidden;transform:translateZ(0);backface-visibility:hidden}.eae-img-comp-img img{display:block;max-width:100%;width:100%}.eae-img-comp-slider{position:absolute;z-index:9;width:40px;height:40px;background-color:#2196f3;opacity:1;border-radius:50%}.icon-horizontal{cursor:ew-resize}.icon-vertical{cursor:n-resize}.mode-horizontal .eae-img-comp-overlay img{position:absolute;left:0;top:0;display:block;width:auto;height:100%!important;max-width:none!important}.mode-vertical .eae-img-comp-overlay img{position:absolute;left:0;top:0;display:block;width:100%;height:auto!important;max-width:none!important}.eae-img-comp-slider svg,.eae-slider-icon{top:50%;transform:translateY(-50%) translateX(-50%);position:absolute;left:50%;color:#fff}.elementor-widget-wts-ab-image{text-align:center}.elementor-widget-wts-ab-image .elementor-widget-container{display:inline-block;margin:0 auto!important;overflow:hidden}.eae-text-before{position:absolute!important;padding:10px;transition:transform .3s .7s,opacity .3s .7s;color:#d36118;z-index:0;background:rgba(255,255,255,.5);margin:20px}.eae-text-after{position:absolute!important;padding:10px;transition:transform .3s .7s,opacity .3s .7s;color:#d36118;z-index:0;background:rgba(255,255,255,.5);margin:20px}.divTest{display:inline-block;background-color:#00a0d2;padding:20px}.eae-particle-wrapper{position:absolute;left:0;top:0}.eae-particle-wrapper.eae-particle-area{width:100%;height:100%}body:not(.elementor-editor-active) .eae-particle-wrapper{width:100%;height:100%}body:not(.elementor-editor-active) .eae-particle-wrapper .particles-js-canvas-el{height:100%;position:absolute;z-index:0}.eae-section-bs{position:absolute;width:100%;height:100%;top:0}.eae-section-bs-inner{width:100%;height:100%!important}.eae-popup.mfp-bg{top:0;left:0;width:100%;height:100%;z-index:1042;overflow:hidden;position:fixed;background:#0b0b0b;opacity:.8}.eae-popup-link{padding:12px 24px;color:#fff;display:inline-flex;line-height:1}.eae-popup-link svg{fill:#fff}.eae-popup-link:hover{color:#fff}.eae-popup.mfp-wrap{top:0;left:0;width:100%;height:100%;z-index:1043;position:fixed;outline:0!important;-webkit-backface-visibility:hidden}.eae-popup .mfp-container{text-align:center;position:absolute;width:100%;height:100%;left:0;top:0;padding:0 8px;box-sizing:border-box}.eae-popup .mfp-container:before{content:'';display:inline-block;height:100%;vertical-align:middle}.eae-popup .mfp-align-top .mfp-container:before{display:none}.eae-popup .mfp-content{position:relative;display:inline-block;vertical-align:middle;margin:0 auto;text-align:left;z-index:1045}.eae-modal-content{padding:20px}.eae-pop-btn-align-left .eae-popup-wrapper{text-align:left}.eae-pop-btn-align-right .eae-popup-wrapper{text-align:right}.eae-pop-btn-align-center .eae-popup-wrapper{text-align:center}.eae-pop-btn-align-justify .eae-popup-wrapper{text-align:center}.eae-pop-btn-align-justify .eae-popup-wrapper a{display:block}.eae-popup .mfp-ajax-holder .mfp-content,.eae-popup .mfp-inline-holder .mfp-content{width:50%;background-color:#fff;cursor:auto;overflow:hidden}.eae-popup .mfp-ajax-cur{cursor:progress}.eae-popup .mfp-zoom-out-cur,.eae-popup .mfp-zoom-out-cur .mfp-image-holder .eae-close{cursor:-moz-zoom-out;cursor:-webkit-zoom-out;cursor:zoom-out}.eae-popup .mfp-zoom{cursor:pointer;cursor:-webkit-zoom-in;cursor:-moz-zoom-in;cursor:zoom-in}.eae-popup.mfp-auto-cursor .mfp-content{cursor:auto}.eae-popup .eae-close,.eae-popup .mfp-arrow,.eae-popup .mfp-counter,.eae-popup .mfp-preloader{-webkit-user-select:none;-moz-user-select:none;user-select:none}.mfp-loading.mfp-figure{display:none}.mfp-hide{display:none!important}.eae-popup .mfp-preloader{color:#ccc;position:absolute;top:50%;width:auto;text-align:center;margin-top:-.8em;left:8px;right:8px;z-index:1044}.eae-popup .mfp-preloader a{color:#ccc}.eae-popup .mfp-preloader a:hover{color:#fff}.mfp-s-ready .mfp-preloader{display:none}.mfp-s-error .mfp-content{display:none}button.eae-close,button.mfp-arrow{overflow:visible;cursor:pointer;background:0 0;border:0;-webkit-appearance:none;display:block;outline:0;padding:0;z-index:1046;box-shadow:none;touch-action:manipulation}button::-moz-focus-inner{padding:0;border:0}.eae-popup .eae-close{width:28px;height:28px;line-height:1em;position:absolute;right:10px;top:10px;text-decoration:none;text-align:center;opacity:1;color:#fff;font-size:28px;z-index:1500}.eae-close:focus,.eae-close:hover{opacity:1;cursor:pointer}.eae-close:active{top:1px}.eae-close:before{top:50%;left:50%;position:absolute;transform:translate(-50%,-50%)}.eae-popup.eae-close-btn-in .eae-close{color:#fff}.mfp-iframe-holder .eae-close,.mfp-image-holder .eae-close{color:#fff;right:-6px;text-align:right;padding-right:6px;width:100%}.mfp-counter{position:absolute;top:0;right:0;color:#ccc;font-size:12px;line-height:18px;white-space:nowrap}.mfp-arrow{position:absolute;opacity:.65;margin:0;top:50%;margin-top:-55px;padding:0;width:90px;height:110px;-webkit-tap-highlight-color:transparent}.mfp-arrow:active{margin-top:-54px}.mfp-arrow:focus,.mfp-arrow:hover{opacity:1}.mfp-arrow:after,.mfp-arrow:before{content:'';display:block;width:0;height:0;position:absolute;left:0;top:0;margin-top:35px;margin-left:35px;border:medium inset transparent}.mfp-arrow:after{border-top-width:13px;border-bottom-width:13px;top:8px}.mfp-arrow:before{border-top-width:21px;border-bottom-width:21px;opacity:.7}.mfp-arrow-left{left:0}.mfp-arrow-left:after{border-right:17px solid #fff;margin-left:31px}.mfp-arrow-left:before{margin-left:25px;border-right:27px solid #3f3f3f}.mfp-arrow-right{right:0}.mfp-arrow-right:after{border-left:17px solid #fff;margin-left:39px}.mfp-arrow-right:before{border-left:27px solid #3f3f3f}.mfp-iframe-holder{padding-top:40px;padding-bottom:40px}.mfp-iframe-holder .mfp-content{line-height:0;width:100%;max-width:900px}.mfp-iframe-holder .eae-close{top:-40px}.mfp-iframe-scaler{width:100%;height:0;overflow:hidden;padding-top:56.25%}.mfp-iframe-scaler iframe{position:absolute;display:block;top:0;left:0;width:100%;height:100%;box-shadow:0 0 8px rgba(0,0,0,.6);background:#000}img.mfp-img{width:auto;max-width:100%;height:auto;display:block;line-height:0;box-sizing:border-box;padding:40px 0 40px;margin:0 auto}.eae-popup .mfp-figure{line-height:0}.eae-popup .mfp-figure:after{content:'';position:absolute;left:0;top:40px;bottom:40px;display:block;right:0;width:auto;height:auto;z-index:-1;box-shadow:0 0 8px rgba(0,0,0,.6);background:#444}.eae-popup .mfp-figure small{color:#bdbdbd;display:block;font-size:12px;line-height:14px}.eae-popup .mfp-figure figure{margin:0}.eae-popup .mfp-bottom-bar{margin-top:-36px;position:absolute;top:100%;left:0;width:100%;cursor:auto}.eae-popup .mfp-title{text-align:left;line-height:1;word-wrap:break-word;color:#fff;background-color:#4054b2;padding:20px 20px 20px 20px}.eae-popup .mfp-image-holder .mfp-content{max-width:100%}.eae-popup .mfp-gallery .mfp-image-holder .mfp-figure{cursor:pointer}@media screen and (max-width:800px) and (orientation:landscape),screen and (max-height:300px){.mfp-img-mobile .mfp-image-holder{padding-left:0;padding-right:0}.mfp-img-mobile img.mfp-img{padding:0}.mfp-img-mobile .mfp-figure:after{top:0;bottom:0}.mfp-img-mobile .mfp-figure small{display:inline;margin-left:5px}.mfp-img-mobile .mfp-bottom-bar{background:rgba(0,0,0,.6);bottom:0;margin:0;top:auto;padding:3px 5px;position:fixed;box-sizing:border-box}.mfp-img-mobile .mfp-bottom-bar:empty{padding:0}.mfp-img-mobile .mfp-counter{right:5px;top:3px}.mfp-img-mobile .eae-close{top:0;right:0;width:35px;height:35px;line-height:35px;background:rgba(0,0,0,.6);position:fixed;text-align:center;padding:0}}.elementor-element.eae-animated-gradient-yes,.elementor-element.eae-animated-gradient-yes .animated-gradient{background-size:400% 400%!important;-webkit-animation:AnimateGradient 15s ease-in-out infinite;-moz-animation:AnimateGradient 15s ease-in-out infinite;animation:AnimateGradient 15s ease-in-out infinite}.animated-gradient{position:absolute;top:0;left:0;height:100%;width:100%}@-webkit-keyframes AnimateGradient{0%{background-position:0 50%}50%{background-position:100% 50%}100%{background-position:0 50%}}@-moz-keyframes AnimateGradient{0%{background-position:0 50%}50%{background-position:100% 50%}100%{background-position:0 50%}}@keyframes AnimateGradient{0%{background-position:0 50%}50%{background-position:100% 50%}100%{background-position:0 50%}}.eae-swiper-outer-wrapper .swiper-slide{height:auto;overflow:inherit}.eae-swiper-outer-wrapper .swiper-slide-wrapper,.eae-swiper-outer-wrapper .testimonial-wrapper{height:100%}.eae-grid{display:flex;flex-wrap:wrap;flex-direction:row}.eae-masonry- .eae-grid-item{position:relative;height:100%}.eae-masonry- .eae-grid-item .testimonial-wrapper{height:100%}.eae-grid-container{transition:.1s all ease}.eae-grid-container{display:inline-block}.wrapper .content{margin:10px 0}.skin-2.testimonial-wrapper{display:flex;flex-direction:column;background-color:#9c989821;min-height:300px;padding:10px 20px;box-shadow:0 0 5px rgba(0,0,0,.15);color:#696969}.skin-2 .content-wrapper{padding:10px;position:relative;background-color:#fff;border-radius:10px;color:#77778e}.skin-2 i.after-content,.skin-2 i.before-content{position:absolute}.skin-2 i.before-content{top:10px;left:20px}.skin-2 i.after-content{bottom:10px;right:20px}.skin-2 blockquote{position:relative;font-size:14px;padding:10px;font-weight:500;text-align:left;margin:0;line-height:1.6em;font-style:italic}.skin-2 blockquote::after,.skin-2 blockquote::before{font-family:FontAwesome;content:"\201C";position:absolute;font-size:50px;opacity:.3;font-style:normal}.skin-2 blockquote::before{top:10px;left:20px}.skin-2 blockquote::after{content:"\201D";right:20px}.skin-2 .image-wrapper{position:relative;max-width:100%;text-align:center}.skin-2 img{width:100px;border-radius:25%}.skin-2 .detail-wrapper{text-align:center}.skin-2 .company,.skin-2 .designation,.skin-2 .rating-wrapper,.skin-2 .title{padding:5px 0}.skin-2 .rating-wrapper{color:navy}.skin-2 .title{font-weight:800;color:#000}.skin-2 blockquote p{margin:10px 0!important}.skin-1.testimonial-wrapper{display:flex;flex-direction:column;background-color:#fff;box-shadow:0 0 5px rgba(0,0,0,.15);color:#000}.skin-1 .content-wrapper{order:0}.skin-1 .image-wrapper{order:1;text-align:center;margin:15px 0}.skin-1 .detail-wrapper{order:2}.skin-1 .content-wrapper{padding:10px;position:relative}.skin-1 i.after-content,.skin-1 i.before-content{position:absolute}.skin-1 i.before-content{top:10px;left:20px}.skin-1 i.after-content{bottom:10px;right:20px}.skin-1 blockquote{position:relative;background-color:#fff;font-size:14px;padding:10px;font-weight:500;text-align:left;margin:0;line-height:1.6em;font-style:italic}.skin-1 blockquote::after,.skin-1 blockquote::before{font-family:FontAwesome;content:"\201C";position:absolute;font-size:50px;opacity:.3;font-style:normal}.skin-1 blockquote::before{top:10px;left:20px}.skin-1 blockquote::after{content:"\201D";right:20px}.skin-1 .image-wrapper{position:relative;max-width:100%}.skin-1 img{width:100px;height:auto;border-radius:50%}.skin-1 .detail-wrapper{display:flex;flex-direction:row-reverse;justify-content:space-between;padding:10px;background-color:rgba(157,163,156,.18)}.skin-1 .designation,.skin-1 .rating-wrapper,.skin-1 .title{margin:0 5px}.skin-1 .title-wrapper{display:flex;flex-direction:row}.skin-1 .rating-wrapper{color:#fecc1f}.skin-4.testimonial-wrapper{flex-direction:column;display:flex;background-color:#bfbfb6bd;min-height:300px;padding:10px 0;box-shadow:0 0 5px rgba(0,0,0,.15);color:#77778e}.skin-4 .content-wrapper{padding:10px;position:relative}.skin-4 .content-wrapper{order:2;color:#3c3c3c}.skin-4 i.after-content,.skin-4 i.before-content{position:absolute}.skin-4 i.before-content{top:10px;left:20px}.skin-4 i.after-content{bottom:10px;right:20px}.skin-4 blockquote{position:relative;font-size:14px;padding:10px;font-weight:500;text-align:left;margin:0;line-height:1.6em;font-style:italic}.skin-4 blockquote::after,.skin-4 blockquote::before{font-family:FontAwesome;content:"\201C";position:absolute;font-size:50px;opacity:.3;font-style:normal}.skin-4 blockquote::before{top:10px;left:20px}.skin-4 blockquote::after{content:"\201D";right:20px}.skin-4 .image-wrapper{position:relative;max-width:100%;text-align:center}.skin-4 img{width:100px;border-radius:50%}.skin-4 .detail-wrapper{text-align:center}.skin-2 .designation,.skin-2 .title,.skin-4 .rating-wrapper{padding:5px 0}.skin-4 .rating-wrapper{color:#690a69}.skin-4 .title{font-weight:800;color:#000}.skin-3.testimonial-wrapper{display:flex;flex-direction:row;background-color:#9c989821;box-shadow:0 0 5px rgba(0,0,0,.15);color:#000;overflow:hidden}.skin-3 .content-section{display:flex;flex-direction:column;align-self:center}.skin-3 .content-wrapper{padding:10px;position:relative}.skin-2 i.after-content,.skin-3 i.before-content{position:absolute}.skin-3 i.before-content{top:10px;left:20px}.skin-3 i.after-content{bottom:10px;right:20px}.skin-3 blockquote{position:relative;font-size:18px;padding:10px;font-weight:500;text-align:left;margin:0;line-height:1.6em;font-style:italic}.skin-3 blockquote::after,.skin-3 blockquote::before{font-family:FontAwesome;content:"\201C";position:absolute;font-size:50px;opacity:.3;font-style:normal}.skin-3 blockquote::before{top:10px;left:20px}.skin-3 blockquote::after{content:"\201D";right:20px}.skin-3 .image-wrapper{position:relative;max-width:30%;max-height:250px;text-align:center;align-self:center}.skin-3 img{width:100%}.testimonial-wrapper .skin-3 .eae-person-avatar{border-radius:50%}.skin-3 .detail-wrapper{text-align:left;padding-left:20px}.skin-3 .designation,.skin-3 .rating-wrapper,.skin-3 .title{padding:3px 0}.skin-3 .rating-wrapper{color:#800040}.skin-3 .title{font-weight:800}.eae-swiper-outer-wrapper .swiper-button-prev{-webkit-mask:url(arrow-left.svg) no-repeat 100% 100%;mask:url(arrow-left.svg) no-repeat 100% 100%;-webkit-mask-size:cover;mask-size:cover;background-image:none;background-color:#007aff;transform:translateY(-50%);margin-top:0}.eae-swiper-outer-wrapper .swiper-container-rtl .swiper-button-prev{-webkit-mask:url(arrow-right.svg) no-repeat 100% 100%;mask:url(arrow-right.svg) no-repeat 100% 100%}.eae-swiper-outer-wrapper .swiper-button-next{-webkit-mask:url(arrow-right.svg) no-repeat 100% 100%;mask:url(arrow-right.svg) no-repeat 100% 100%;-webkit-mask-size:cover;mask-size:cover;background-image:none;background-color:#007aff;transform:translateY(-50%);margin-top:0}.eae-swiper-outer-wrapper .swiper-container-rtl .swiper-button-next{-webkit-mask:url(arrow-left.svg) no-repeat 100% 100%;mask:url(arrow-left.svg) no-repeat 100% 100%}.elementor-widget-wts-testimonial-slider .eae-swiper-outer-wrapper .swiper-button-next,.elementor-widget-wts-testimonial-slider .eae-swiper-outer-wrapper .swiper-button-prev{-webkit-mask:none;mask:none;-webkit-mask-size:unset;mask-size:unset;background-image:none;background-color:unset;width:auto;height:auto;transform:translateY(-50%);margin-top:0}.swiper-container .swiper-button-next i,.swiper-container .swiper-button-prev i{width:1em;height:1em;text-align:center;position:relative}.elementor-widget-wts-testimonial-slider .eae-swiper-outer-wrapper .eae-swiper-button-wrapper{position:absolute;height:auto;line-height:0}.eae-hpos-right.eae-vpos-top .eae-swiper-button-wrapper{bottom:auto;top:0;width:auto;right:0}.eae-vpos-top.eae-hpos-left .eae-swiper-button-wrapper{bottom:auto;top:0;width:auto;left:0}.eeae-hpos-right.eae-vpos-bottom .eae-swiper-button-wrapper{bottom:0;top:auto;width:auto;right:0}.eae-vpos-bottom.eae-hpos-left .eae-swiper-button-wrapper{bottom:0;top:auto;width:auto;left:0}.eae-hpos-right.eae-vpos-middle .eae-swiper-button-wrapper{bottom:auto;top:50%;width:auto;right:0}.eae-hpos-left.eae-vpos-middle .eae-swiper-button-wrapper{bottom:auto;top:50%;width:auto;left:0}.eae-hpos-left .swiper-button-next,.eae-hpos-left .swiper-button-prev,.eae-hpos-right .swiper-button-next,.eae-hpos-right .swiper-button-prev{position:relative;display:inline-block;right:auto;left:auto}.eae-hpos-right.eae-vpos-bottom .swiper-button-next,.eae-hpos-right.eae-vpos-bottom .swiper-button-prev{top:auto;bottom:0;transform:unset}.eae-hpos-right.eae-vpos-top .swiper-button-next,.eae-hpos-right.eae-vpos-top .swiper-button-prev{top:0;bottom:auto;transform:unset}.eae-hpos-left.eae-vpos-top .swiper-button-next,.eae-hpos-left.eae-vpos-top .swiper-button-prev{top:0;bottom:auto;transform:unset}.eae-hpos-left.eae-vpos-bottom .swiper-button-next,.eae-hpos-left.eae-vpos-bottom .swiper-button-prev{top:auto;bottom:0;transform:unset}.eae-hpos-center.eae-vpos-bottom .swiper-button-next,.eae-hpos-center.eae-vpos-bottom .swiper-button-prev{top:auto;bottom:0;transform:unset}.eae-hpos-center.eae-vpos-top .swiper-button-next,.eae-hpos-center.eae-vpos-top .swiper-button-prev{top:0;bottom:auto;transform:unset}@media all and (max-width:900px){.mfp-arrow{-webkit-transform:scale(.75);transform:scale(.75)}.mfp-arrow-left{-webkit-transform-origin:0;transform-origin:0}.mfp-arrow-right{-webkit-transform-origin:100%;transform-origin:100%}.mfp-container{padding-left:6px;padding-right:6px}}.eae-info-circle{position:relative;width:90%;margin:0 auto;border-radius:50%;display:block}.eae-info-circle:before{content:'';display:block;position:absolute;top:4%;left:4%;width:92%;height:92%;border-radius:50%;z-index:1;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;pointer-events:none}.eae-info-circle:after{content:'';display:block;padding-top:100%}.eae-info-circle .eae-ic-icon-wrap{position:absolute;display:inline-block;top:50%;left:50%;z-index:2;line-height:1em;vertical-align:middle;overflow:hidden;max-width:100%}.eae-info-circle .eae-info-circle-item{top:0;left:0;width:100%;height:100%;display:block}.eae-info-circle .eae-info-circle-item.eae-active .eae-info-circle-item__content-wrap{visibility:visible;opacity:1;display:flex}.eae-info-circle .eae-info-circle-item__content-wrap{visibility:visible;display:none;height:91%;width:91%;opacity:0;top:50%;transform:translateY(-50%) translateX(-50%);position:absolute;left:50%;border-radius:50%;overflow:hidden;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.eae-info-circle .eae-info-circle-item__content-wrap:before{content:'';display:inline-block;height:100%;vertical-align:middle}.eae-info-circle .eae-info-circle-item__content{display:inline-block;top:50%;transform:translateY(-50%) translateX(-50%);position:absolute;left:50%;vertical-align:middle;z-index:1;max-height:100%;overflow:auto;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;text-align:center;width:75%}@media screen and (max-width:767px){.eae-info-circle.eae-info-circle .eae-info-circle-item__content-wrap:before{display:none}.eae-info-circle:after,.eae-info-circle:before{display:none}.eae-info-circle{width:100%!important}.eae-info-circle-wrapper:after,.eae-info-circle-wrapper:before{display:none}.eae-info-circle .eae-ic-icon-wrap{display:block;text-align:center;position:relative!important;left:unset!important;margin-left:0!important;margin-top:0!important;margin-bottom:10px}.eae-info-circle-item{position:relative!important;border-radius:0!important;padding:0;margin:10px 0}.eae-info-circle .eae-info-circle-item__content-wrap{visibility:visible;opacity:1!important;display:flex!important;border-radius:0!important;border:none!important;margin:0!important;padding-right:0!important;padding-left:0!important;padding-bottom:0!important;width:100%;height:auto;line-height:1.5em;position:relative;top:unset;left:unset;transform:unset}.eae-info-circle .eae-info-circle-item__content{position:relative;top:unset;left:unset;transform:unset;width:100%;padding:10px}}.eae-icon-wrap i{height:1.25em;width:1.25em;line-height:1.25em;display:block}.eae-icon-wrap i img{top:50%;left:50%;transform:translateX(-50%) translateY(-50%);position:absolute}.eae-icon{display:inline-block;text-align:center;vertical-align:middle;max-width:100%;overflow:hidden;padding:10px}.eae-icon-shape-circle:not(.elementor-element){border-radius:50%}.eae-icon-view-framed:not(.elementor-element){border-width:1px;border-style:solid}.eae-icon-wrapper{display:flex}.eae-icon-wrapper .eae-icon{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);line-height:1}.eae-timeline{position:relative;display:inline-block;width:100%}.eae-timline-progress-bar{width:4px;background-color:#f45b69;top:0;bottom:50px;position:absolute;transform:translateX(-50%)}.eae-timeline-item{position:relative;display:flex;flex-direction:row;padding-bottom:50px}.eae-timeline-item:last-child{padding-bottom:0!important}.eae-tl-top .eae-timeline-item{align-items:flex-start}.eae-tl-top .eae-tl-item-content::before{top:10px}.eae-timeline-item.image-position-row .eae-tl-item-image,.eae-timeline-item.image-position-row-reverse .eae-tl-item-image{margin-top:0;margin-bottom:0}.eae-tl-item-meta-wrapper-inner{display:none}.eae-tl-bottom .eae-timeline-item{align-items:flex-end}.eae-tl-bottom .eae-tl-item-content::before{bottom:10px}.eae-tl-center .eae-timeline-item{align-items:center}.eae-tl-center .eae-tl-item-content::before{bottom:calc(50% - 5px)}.eae-layout-center .eae-timline-progress-bar{left:50%}.eae-layout-center .eae-timeline-item:nth-child(odd){flex-direction:row-reverse}.eae-layout-center .eae-timeline-item:nth-child(odd) .eae-tl-item-meta-wrapper{margin-right:0;margin-left:0;justify-content:flex-start}.eae-layout-center .eae-timeline-item:nth-child(odd) .eae-tl-content-wrapper{padding-right:20px;padding-left:0}.eae-layout-center .eae-timeline-item:nth-child(even) .eae-tl-content-wrapper{padding-right:0;padding-left:20px}.eae-layout-left .eae-tl-content-wrapper{padding-right:10px;padding-left:20px}.eae-layout-left .eae-timline-progress-bar{display:none}.eae-layout-left .eae-tl-item-meta-wrapper{display:none}.eae-layout-left .eae-tl-item-meta-wrapper-inner{display:block}.eae-layout-right .eae-timline-progress-bar{display:none}.eae-layout-right .eae-tl-content-wrapper{padding-right:20px;padding-left:10px}.eae-layout-right .eae-tl-icon-wrapper{order:3}.eae-layout-right .eae-tl-item-meta-wrapper{display:none}.eae-layout-right .eae-tl-item-meta-wrapper-inner{display:block}.eae-tl-item-meta-wrapper{flex-grow:1;order:0;flex-basis:50%;flex-direction:initial;justify-content:flex-end;display:flex;align-items:center;margin-right:0}.eae-tl-item-meta{padding:0 20px}.eae-tl-icon-wrapper{height:auto;width:auto;flex-grow:0;flex-shrink:0;order:1;margin-left:0;margin-right:0;min-width:10px;min-height:10px;border-radius:999px;position:relative;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.eae-tl-content-wrapper{flex-grow:1;order:2;flex-basis:50%;position:relative;padding-right:0;padding-left:20px}.eae-tl-item-content{background:#f4f4f4;padding:25px;overflow:hidden;text-align:center;display:flex;flex-direction:row}.eae-tl-content{display:inline-block;position:relative;padding:10px;width:100%;color:#000}.eae-timeline-item.custom-image-style-yes.image-position-row .eae-content-inner,.eae-timeline-item.custom-image-style-yes.image-position-row-reverse .eae-content-inner,.image-position-row .eae-timeline .eae-timeline-item:not(.custom-image-style-yes) .eae-content-inner,.image-position-row-reverse .eae-timeline .eae-timeline-item:not(.custom-image-style-yes) .eae-content-inner{position:relative;left:50%;top:50%;transform:translate(-50%,-50%);line-height:1;width:100%}.custom-image-style-.image-position-row .eae-content-inner,.custom-image-style-.image-position-row-reverse .eae-content-inner,.custom-image-style-no.image-position-row .eae-content-inner,.custom-image-style-no.image-position-row-reverse .eae-content-inner{left:unset;top:unset;transform:unset}.eae-tl-item-image{display:inline-block}.image-position-row .eae-tl-item-image img,.image-position-row-reverse .eae-tl-item-image img{object-fit:cover;height:100%!important}.image-position-row .eae-tl-item-image,.image-position-row-reverse .eae-tl-item-image{margin:0}.image-position-column .eae-tl-item-image{margin:auto}.custom-image-style-.image-position-column .eae-tl-item-image,.custom-image-style-no.image-position-column .eae-tl-item-image{margin:0 auto}.eae-pb-inner-line{width:100%;background-color:#3d5ac3}.eae-tl-item-content::before{content:'';position:absolute;width:0;height:0;border-style:solid;border-width:8px 16px 8px 0;border-color:transparent #f4f4f4 transparent transparent}.eae-icon-wrapper{display:flex}.elementor-widget-bpel-timeline .eae-icon-wrapper{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);line-height:1}.eae-tl-read-more{display:inline-block;padding:5px;border:2px solid #000}.image-position-row .eae-timeline.eae-timeline-alternate-yes .eae-timeline-item:nth-child(odd):not(.custom-image-style-yes) .eae-tl-item-content{flex-direction:row-reverse!important}.image-position-row-reverse .eae-timeline.eae-timeline-alternate-yes .eae-timeline-item:nth-child(odd):not(.custom-image-style-yes) .eae-tl-item-content{flex-direction:row!important}@media screen and (min-width:1024px){.eae-layout-center .eae-timeline-item:nth-child(odd) .eae-tl-item-content::before,.eae-layout-right .eae-tl-item-content::before{right:4px;border-width:8px 0 8px 16px;border-color:transparent transparent transparent #f4f4f4}.eae-layout-center .eae-timeline-item:nth-child(even) .eae-tl-item-content::before,.eae-layout-left .eae-tl-item-content::before{left:4px;border-width:8px 16px 8px 0;border-color:transparent #f4f4f4 transparent transparent}}@media screen and (max-width:1023px) and (min-width:768px){.image-position-row .eae-timeline.eae-timeline-alternate-yes .eae-timeline-item:nth-child(odd):not(.custom-image-style-yes) .eae-tl-item-content{flex-direction:row-reverse!important}.image-position-row-reverse .eae-timeline.eae-timeline-alternate-yes .eae-timeline-item:nth-child(odd):not(.custom-image-style-yes) .eae-tl-item-content{flex-direction:row!important}.eae-tl-res-style-mobile-tablet .eae-tl-item-meta-wrapper{display:none}.eae-tl-res-style-mobile-tablet .eae-tl-item-meta-wrapper-inner{display:block}.eae-tl-res-style-mobile-tablet.eae-tl-res-layout-left .eae-timeline-item{flex-direction:row!important}.eae-tl-res-style-mobile-tablet.eae-tl-res-layout-right .eae-timeline-item{flex-direction:row-reverse!important}.eae-layout-center.eae-tl-res-style-mobile-tablet.eae-tl-res-layout-left .eae-timeline-item .eae-tl-item-content::before,.eae-layout-left .eae-timeline-item .eae-tl-item-content::before,.eae-layout-left .eae-tl-item-content::before,.eae-timeline.eae-layout-center.eae-tl-res-style-mobile .eae-timeline-item:nth-child(even) .eae-tl-item-content::before{left:4px!important;border-width:8px 16px 8px 0!important;border-color:transparent #f4f4f4 transparent transparent!important}.eae-layout-center.eae-tl-res-style-mobile-tablet.eae-tl-res-layout-right .eae-timeline-item .eae-tl-item-content::before,.eae-layout-right .eae-timeline-item .eae-tl-item-content::before,.eae-layout-right .eae-tl-item-content::before,.eae-timeline.eae-layout-center.eae-tl-res-style-mobile .eae-timeline-item:nth-child(odd) .eae-tl-item-content::before,.eae-tl-res-style-mobile-tablet.eae-tl-res-layout-right .eae-timeline-item .eae-tl-item-content::before{right:4px!important;border-width:8px 0 8px 16px!important;border-color:transparent transparent transparent #f4f4f4!important}.eae-tl-res-style-mobile-tablet.eae-layout-center.eae-tl-res-layout-left .eae-timeline-item .eae-tl-content-wrapper{padding-right:0!important;padding-left:20px!important}.eae-tl-res-style-mobile-tablet.eae-layout-center.eae-tl-res-layout-right .eae-timeline-item .eae-tl-content-wrapper{padding-right:20px!important;padding-left:0!important}.eae-tl-res-style-mobile-tablet.eae-layout-center.eae-tl-res-layout-left .eae-timline-progress-bar{left:13px}.eae-tl-res-style-mobile-tablet.eae-layout-center.eae-tl-res-layout-right .eae-timline-progress-bar{left:calc(100% - 13px)}}@media screen and (max-width:767px){.eae-tl-item-meta-wrapper{display:none}.eae-tl-item-meta-wrapper-inner{display:block}.elementor-widget-bpel-timeline:not(.image-position-column) .eae-timeline .eae-tl-item-content{flex-direction:column-reverse!important}.eae-tl-item-image,.elementor-widget-bpel-timeline:not(.image-position-column) .eae-tl-content{width:100%!important}.eae-tl-res-style-mobile-tablet.eae-tl-res-layout-left .eae-timeline-item,.eae-tl-res-style-mobile.eae-tl-res-layout-left .eae-timeline-item{flex-direction:row!important}.eae-tl-res-style-mobile-tablet.eae-tl-res-layout-right .eae-timeline-item,.eae-tl-res-style-mobile.eae-tl-res-layout-right .eae-timeline-item{flex-direction:row-reverse!important}.eae-layout-left .eae-timeline-item .eae-tl-item-content::before,.eae-timeline.eae-layout-center.eae-tl-center.eae-tl-res-style-mobile-tablet.eae-tl-res-layout-left .eae-timeline-item:nth-child(odd) .eae-tl-item-content::before,.eae-timeline.eae-layout-center.eae-tl-center.eae-tl-res-style-mobile.eae-tl-res-layout-left .eae-timeline-item:nth-child(odd) .eae-tl-item-content::before,.eae-tl-res-style-mobile-tablet.eae-tl-res-layout-left .eae-timeline-item .eae-tl-item-content::before,.eae-tl-res-style-mobile.eae-tl-res-layout-left .eae-timeline-item .eae-tl-item-content::before{left:4px!important;border-width:8px 16px 8px 0!important;border-color:transparent #f4f4f4 transparent transparent!important}.eae-layout-right .eae-timeline-item .eae-tl-item-content::before,.eae-tl-res-style-mobile-tablet.eae-tl-res-layout-right .eae-timeline-item .eae-tl-item-content::before,.eae-tl-res-style-mobile.eae-tl-res-layout-right .eae-timeline-item .eae-tl-item-content::before{right:4px!important;border-width:8px 0 8px 16px!important;border-color:transparent transparent transparent #f4f4f4!important}.eae-tl-res-style-mobile-tablet.eae-layout-center.eae-tl-res-layout-left .eae-timeline-item .eae-tl-content-wrapper,.eae-tl-res-style-mobile.eae-layout-center.eae-tl-res-layout-left .eae-timeline-item .eae-tl-content-wrapper{padding-right:0!important;padding-left:20px!important}.eae-tl-res-style-mobile-tablet.eae-layout-center.eae-tl-res-layout-right .eae-timeline-item .eae-tl-content-wrapper,.eae-tl-res-style-mobile.eae-layout-center.eae-tl-res-layout-right .eae-timeline-item .eae-tl-content-wrapper{padding-right:20px!important;padding-left:0!important}.eae-tl-res-style-mobile-tablet.eae-layout-center.eae-tl-res-layout-left .eae-timline-progress-bar,.eae-tl-res-style-mobile.eae-layout-center.eae-tl-res-layout-left .eae-timline-progress-bar{left:13px}.eae-tl-res-style-mobile-tablet.eae-layout-center.eae-tl-res-layout-right .eae-timline-progress-bar,.eae-tl-res-style-mobile.eae-layout-center.eae-tl-res-layout-right .eae-timline-progress-bar{left:calc(100% - 13px)}}[data-element_type="eae-evergreen-timer.skin1"] .eae-evergreen-wrapper{display:block;text-align:center}[data-element_type="eae-evergreen-timer.skin1"] #eaeclockdiv{font-family:sans-serif;color:#fff;display:inline-block;font-weight:100;text-align:center;font-size:30px}[data-element_type="eae-evergreen-timer.skin1"] .eae-time-wrapper{padding:10px;border-radius:3px;background:#00bf96;display:inline-block;overflow:hidden}[data-element_type="eae-evergreen-timer.skin1"] #eaeclockdiv div>span{padding:15px;width:100%;background:#00816a;display:inline-block}[data-element_type="eae-evergreen-timer.skin1"] .smalltext{padding:7px;font-size:16px}[data-element_type="eae-evergreen-timer.skin1"] .eae-egt-hide{display:none}.eae-egt-message{display:none}@media screen and (max-width:767px){[data-element_type="eae-evergreen-timer.skin1"] #eaeclockdiv div>span{padding:5px}[data-element_type="eae-evergreen-timer.skin1"] .eae-time-wrapper{padding:5px}}[data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;-o-box-sizing:border-box;box-sizing:border-box;-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;-ms-backface-visibility:hidden;-o-backface-visibility:hidden;backface-visibility:hidden}[data-element_type="eae-evergreen-timer.skin2"] .eae-evergreen-wrapper{display:inline-block;width:100%;text-align:center;margin:auto}[data-element_type="eae-evergreen-timer.skin2"] .timer-container{display:inline-block}[data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper a{cursor:pointer;text-decoration:none;color:#ccc}[data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper a:hover{color:#fff}[data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper ul{list-style:none}[data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper.clearfix:after,[data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper.clearfix:before{content:" ";display:table}[data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper.clearfix:after{clear:both}[data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper{font:normal 11px "Helvetica Neue",Helvetica,sans-serif;-webkit-user-select:none}[data-element_type="eae-evergreen-timer.skin2"] .flip-clock-meridium{background:0 0!important;box-shadow:0 0 0!important;font-size:36px!important}[data-element_type="eae-evergreen-timer.skin2"] .flip-clock-meridium a{color:#313333}[data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper{text-align:center;position:relative;width:100%;margin:1em}[data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper:after,[data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper:before{content:" ";display:table}[data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper:after{clear:both}[data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper ul{position:relative;float:left;margin:5px;width:60px;height:90px;font-size:80px;font-weight:700;line-height:87px;border-radius:6px;background:#000}[data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper ul li{z-index:1;position:absolute;left:0;top:0;width:100%;height:100%;line-height:87px;text-decoration:none!important}[data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper ul li:first-child{z-index:2}[data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper ul li a{display:block;height:100%;-webkit-perspective:200px;-moz-perspective:200px;perspective:200px;margin:0!important;overflow:visible!important;cursor:default!important}[data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper ul li a div{z-index:1;position:absolute;left:0;width:100%;height:50%;font-size:80px;overflow:hidden;outline:1px solid transparent}[data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper ul li a div .shadow{position:absolute;width:100%;height:100%;z-index:2}[data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper ul li a div.up{-webkit-transform-origin:50% 100%;-moz-transform-origin:50% 100%;-ms-transform-origin:50% 100%;-o-transform-origin:50% 100%;transform-origin:50% 100%;top:0}[data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper ul li a div.up:after{content:"";position:absolute;top:44px;left:0;z-index:5;width:100%;height:3px;background-color:#000;background-color:rgba(0,0,0,.4)}[data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper ul li a div.down{-webkit-transform-origin:50% 0;-moz-transform-origin:50% 0;-ms-transform-origin:50% 0;-o-transform-origin:50% 0;transform-origin:50% 0;bottom:0;border-bottom-left-radius:6px;border-bottom-right-radius:6px}[data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper ul li a div div.inn{position:absolute;left:0;z-index:1;width:100%;height:200%;color:#ccc;text-shadow:0 1px 2px #000;text-align:center;background-color:#333;border-radius:6px;font-size:70px}[data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper ul li a div.up div.inn{top:0}[data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper ul li a div.down div.inn{bottom:0}[data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper ul.play li.flip-clock-before{z-index:3}[data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper .flip{box-shadow:0 2px 5px rgba(0,0,0,.7)}[data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper ul.play li.flip-clock-active{-webkit-animation:asd 10ms .49s linear both;-moz-animation:asd 10ms .49s linear both;animation:asd 10ms .49s linear both;z-index:5}[data-element_type="eae-evergreen-timer.skin2"] .flip-clock-divider{float:left;display:inline-block;position:relative;width:20px;height:100px}[data-element_type="eae-evergreen-timer.skin2"] .flip-clock-divider:first-child{width:0}[data-element_type="eae-evergreen-timer.skin2"] .flip-clock-dot{display:block;background:#323434;width:10px;height:10px;position:absolute;border-radius:50%;box-shadow:0 0 5px rgba(0,0,0,.5);left:5px}[data-element_type="eae-evergreen-timer.skin2"] .flip-clock-divider .flip-clock-label{position:absolute;top:-1.5em;right:-86px;color:#000;text-shadow:none}[data-element_type="eae-evergreen-timer.skin2"] .flip-clock-divider.minutes .flip-clock-label{right:-88px}[data-element_type="eae-evergreen-timer.skin2"] .flip-clock-divider.seconds .flip-clock-label{right:-91px}[data-element_type="eae-evergreen-timer.skin2"] .flip-clock-dot.top{top:30%}[data-element_type="eae-evergreen-timer.skin2"] .flip-clock-dot.bottom{bottom:30%}@-webkit-keyframes asd{0%{z-index:2}100%{z-index:4}}@-moz-keyframes asd{0%{z-index:2}100%{z-index:4}}@-o-keyframes asd{0%{z-index:2}100%{z-index:4}}@keyframes asd{0%{z-index:2}100%{z-index:4}}[data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper ul.play li.flip-clock-active .down{z-index:2;-webkit-animation:turn .5s .5s linear both;-moz-animation:turn .5s .5s linear both;animation:turn .5s .5s linear both}@-webkit-keyframes turn{0%{-webkit-transform:rotateX(90deg)}100%{-webkit-transform:rotateX(0)}}@-moz-keyframes turn{0%{-moz-transform:rotateX(90deg)}100%{-moz-transform:rotateX(0)}}@-o-keyframes turn{0%{-o-transform:rotateX(90deg)}100%{-o-transform:rotateX(0)}}@keyframes turn{0%{transform:rotateX(90deg)}100%{transform:rotateX(0)}}[data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper ul.play li.flip-clock-before .up{z-index:2;-webkit-animation:turn2 .5s linear both;-moz-animation:turn2 .5s linear both;animation:turn2 .5s linear both}@-webkit-keyframes turn2{0%{-webkit-transform:rotateX(0)}100%{-webkit-transform:rotateX(-90deg)}}@-moz-keyframes turn2{0%{-moz-transform:rotateX(0)}100%{-moz-transform:rotateX(-90deg)}}@-o-keyframes turn2{0%{-o-transform:rotateX(0)}100%{-o-transform:rotateX(-90deg)}}@keyframes turn2{0%{transform:rotateX(0)}100%{transform:rotateX(-90deg)}}[data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper ul li.flip-clock-active{z-index:3}[data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper ul.play li.flip-clock-before .up .shadow{background:-moz-linear-gradient(top,rgba(0,0,0,.1) 0,#000 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,rgba(0,0,0,.1)),color-stop(100%,#000));background:linear,top,rgba(0,0,0,.1) 0,#000 100%;background:-o-linear-gradient(top,rgba(0,0,0,.1) 0,#000 100%);background:-ms-linear-gradient(top,rgba(0,0,0,.1) 0,#000 100%);background:linear,to bottom,rgba(0,0,0,.1) 0,#000 100%;-webkit-animation:show .5s linear both;-moz-animation:show .5s linear both;animation:show .5s linear both}[data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper ul.play li.flip-clock-active .up .shadow{background:-moz-linear-gradient(top,rgba(0,0,0,.1) 0,#000 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,rgba(0,0,0,.1)),color-stop(100%,#000));background:linear,top,rgba(0,0,0,.1) 0,#000 100%;background:-o-linear-gradient(top,rgba(0,0,0,.1) 0,#000 100%);background:-ms-linear-gradient(top,rgba(0,0,0,.1) 0,#000 100%);background:linear,to bottom,rgba(0,0,0,.1) 0,#000 100%;-webkit-animation:hide .5s .3s linear both;-moz-animation:hide .5s .3s linear both;animation:hide .5s .3s linear both}[data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper ul.play li.flip-clock-before .down .shadow{background:-moz-linear-gradient(top,#000 0,rgba(0,0,0,.1) 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#000),color-stop(100%,rgba(0,0,0,.1)));background:linear,top,#000 0,rgba(0,0,0,.1) 100%;background:-o-linear-gradient(top,#000 0,rgba(0,0,0,.1) 100%);background:-ms-linear-gradient(top,#000 0,rgba(0,0,0,.1) 100%);background:linear,to bottom,#000 0,rgba(0,0,0,.1) 100%;-webkit-animation:show .5s linear both;-moz-animation:show .5s linear both;animation:show .5s linear both}[data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper ul.play li.flip-clock-active .down .shadow{background:-moz-linear-gradient(top,#000 0,rgba(0,0,0,.1) 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#000),color-stop(100%,rgba(0,0,0,.1)));background:linear,top,#000 0,rgba(0,0,0,.1) 100%;background:-o-linear-gradient(top,#000 0,rgba(0,0,0,.1) 100%);background:-ms-linear-gradient(top,#000 0,rgba(0,0,0,.1) 100%);background:linear,to bottom,#000 0,rgba(0,0,0,.1) 100%;-webkit-animation:hide .5s .3s linear both;-moz-animation:hide .5s .3s linear both;animation:hide .5s .2s linear both}@-webkit-keyframes show{0%{opacity:0}100%{opacity:1}}@-moz-keyframes show{0%{opacity:0}100%{opacity:1}}@-o-keyframes show{0%{opacity:0}100%{opacity:1}}@keyframes show{0%{opacity:0}100%{opacity:1}}@-webkit-keyframes hide{0%{opacity:1}100%{opacity:0}}@-moz-keyframes hide{0%{opacity:1}100%{opacity:0}}@-o-keyframes hide{0%{opacity:1}100%{opacity:0}}@keyframes hide{0%{opacity:1}100%{opacity:0}}@media screen and (max-width:767px){[data-element_type="eae-evergreen-timer.skin2"] .flip-clock-divider{width:15px}[data-element_type="eae-evergreen-timer.skin2"] .flip-clock-dot{height:5px;width:5px}[data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper ul{height:40px}[data-element_type="eae-evergreen-timer.skin2"] .flip-clock-divider{height:50px}[data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper ul li{line-height:37px}[data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper ul li a div div.inn{font-size:24px}[data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper ul{margin:2px}}[data-element_type="eae-evergreen-timer.skin3"] #timer{font-family:sans-serif;color:#fff;display:inline-block;font-weight:100;text-align:center;font-size:30px}[data-element_type="eae-evergreen-timer.skin3"] .desc{display:flex;justify-content:center}[data-element_type="eae-evergreen-timer.skin3"].eae-egt-content-align-right .desc{justify-content:flex-end}[data-element_type="eae-evergreen-timer.skin3"].eae-egt-content-align-left .desc{justify-content:flex-start}[data-element_type="eae-evergreen-timer.skin3"] .desc .egt-time-text{display:inline-block;padding:0 50px 0 50px}[data-element_type="eae-evergreen-timer.skin3"] .eae-time-wrapper{padding:50px;border-radius:3px;background:#00bf96;display:inline-block;overflow:hidden;margin:5px;line-height:1em}[data-element_type="eae-evergreen-timer.skin3"] #timer span:nth-child(1){background:khaki}[data-element_type="eae-evergreen-timer.skin3"] #timer span:nth-child(2){background:#cd5c5c}[data-element_type="eae-evergreen-timer.skin3"] #timer span:nth-child(3){background:#5f9ea0}[data-element_type="eae-evergreen-timer.skin3"] #timer span:nth-child(4){background:#6495ed}[data-element_type="eae-evergreen-timer.skin3"] .fade{animation:flip .7s ease forwards}@keyframes flip{0%{transform:rotateY(0) scaleY(1.1);opacity:.5}50%{transform:rotateY(180deg) scaleY(1.3);opacity:0}100%{transform:rotateY(0);opacity:1}}@media screen and (max-width:767px){[data-element_type="eae-evergreen-timer.skin3"] #timer span{font-size:22px}[data-element_type="eae-evergreen-timer.skin2"] .flip-clock-divider .flip-clock-label{top:-1.5em;right:-42px}[data-element_type="eae-evergreen-timer.skin2"] .flip-clock-divider.minutes .flip-clock-label{right:-48px}[data-element_type="eae-evergreen-timer.skin2"] .flip-clock-divider.seconds .flip-clock-label{right:-51px}}[data-element_type="eae-evergreen-timer.skin4"] .eae-evergreen-wrapper{width:100%}[data-element_type="eae-evergreen-timer.skin4"] .container{margin:0 auto}[data-element_type="eae-evergreen-timer.skin4"] .special{position:relative;width:840px;height:47px}[data-element_type="eae-evergreen-timer.skin4"] #counter{position:absolute;z-index:4000}[data-element_type="eae-evergreen-timer.skin4"] .digit-separator{position:relative;float:left;width:17px;height:44px;overflow:hidden;background-image:url(../digit-sep-svg.svg);background-repeat:no-repeat;background-position:0 0;background-color:#4054b2}[data-element_type="eae-evergreen-timer.skin4"] .digit{background-image:url(../digits-svg-alpha.svg);background-color:#4054b2}.eae-ct-wrapper *{box-sizing:border-box;margin:0;outline:0}article.eae-ct-wrapper{width:100%;max-width:1000px;margin:0 auto;position:relative}.eae-ct-wrapper tbody tr.eae-ct-header td,.eae-ct-wrapper th{position:relative}.eae-ct-wrapper ul{display:none;top:0;z-index:10;padding-bottom:14px}.eae-ct-wrapper li{list-style:none;flex:1;position:relative}.eae-ct-wrapper li:hover{cursor:pointer}.eae-ct-wrapper .eae-ct-heading{width:100%;padding:10px;background:#fff;font-size:20px;font-weight:700;height:60px;color:#999;text-align:center}.eae-ct-wrapper li.eae-ct-heading .eae-ct-heading-inner{position:absolute;align-self:center;top:50%;left:50%;transform:translate(-50%,-50%);width:100%}.eae-ct-wrapper li.eae-ct-heading.active{background:#f5f5f5}.eae-ct-wrapper table{border-collapse:collapse;table-layout:fixed;width:100%}.eae-ct-wrapper th{background:#f5f5f5;display:none}.eae-ct-wrapper td,.eae-ct-wrapper th{height:53px;vertical-align:middle}.eae-ct-wrapper table{border:none}.eae-ct-wrapper table td,.eae-ct-wrapper table th{border:none}.eae-ct-wrapper table tr td:first-child,.eae-ct-wrapper table tr td:last-child,.eae-ct-wrapper td,.eae-ct-wrapper th{padding:10px;empty-cells:show}.eae-ct-wrapper td,.eae-ct-wrapper th{text-align:center}.eae-ct-wrapper td+td,.eae-ct-wrapper th+th{text-align:center}.eae-ct-wrapper tr:first-child{background:0 0!important}.eae-ct-wrapper ul li:nth-child(1){display:table-cell}.eae-ct-wrapper tr td:nth-child(2){display:table-cell}.eae-ct-wrapper td:nth-child(1){display:table-cell}.eae-ct-wrapper td{display:none}.eae-ct-wrapper .sep{background:#f5f5f5;font-weight:700}.eae-ct-price-wrapper{display:flex;justify-content:center}.eae-ct-tt-type-icon .eae-ct-feature .tooltip{float:right}.eae-ct-wrapper .tooltiptext::before{content:'';border-width:5px 5px 0 5px;border-color:#fff;border-left-color:transparent;border-right-color:transparent;border-bottom-color:transparent;bottom:-10px;width:0;height:0;border-style:solid;position:absolute;margin:5px;left:42%}.eae-ct-wrapper .eae-ct-price{font-size:28px;font-weight:700;line-height:1em}.eae-ct-wrapper .eae-ct-currency{align-self:flex-start;margin-right:3px}.eae-ct-wrapper .eae-ct-fractional-price{align-self:flex-start;margin-left:3px}.eae-ct-wrapper .eae-ct-duration{align-self:flex-start}.eae-ct-wrapper .eae-ct-original-price{margin-right:5px;text-decoration:line-through;align-self:flex-end}.eae-ct-wrapper .tick{font-size:18px;color:#2ca01c}.feature-heading-blank.eae-ct-wrapper .hide{border:unset!important;background:unset!important}.eae-ct-wrapper .hide.eae-ct-hide.eae-fbox-heading{border:0 solid #000}.eae-ct-ribbons-yes .eae-ct-ribbons-wrapper{position:absolute;top:0;width:100px;overflow:hidden;height:100px;z-index:998;padding:8px 12px}.eae-ct-ribbons-h-top.eae-ct-ribbons-yes .eae-ct-ribbons-wrapper{position:absolute;top:0;width:100%;overflow:hidden;height:50px;z-index:999;padding:8px 12px}.eae-ct-ribbons-h-top.eae-ct-ribbons-yes .eae-ct-ribbons-wrapper-top{background-color:rgba(63,195,135,.8);color:#fff;transform:translateY(-100%);position:absolute;width:100%;top:0;left:0}.eae-ct-ribbons-h-left.eae-ct-ribbons-yes .eae-ct-ribbons-wrapper{-webkit-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(0);left:0;right:auto}.eae-ct-ribbons-h-right.eae-ct-ribbons-yes .eae-ct-ribbons-wrapper{-webkit-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(90deg);left:auto;right:0}.eae-ct-ribbons-yes .eae-ct-ribbons-wrapper span.eae-ct-ribbons-inner{position:absolute;text-align:center;left:0;top:0;width:200%;-webkit-transform:translateY(-50%) translateX(-50%) translateX(35px) rotate(-45deg);-ms-transform:translateY(-50%) translateX(-50%) translateX(35px) rotate(-45deg);transform:translateY(-50%) translateX(-50%) translateX(35px) rotate(-45deg);margin-top:35px;font-size:13px;line-height:2;font-weight:800;text-transform:uppercase;background:rgba(63,195,135,.8);padding:8px 12px;color:#fff}.eae-ct-wrapper .tooltip{position:relative;display:inline-block}.eae-ct-wrapper .tooltip .tooltiptext{visibility:hidden;min-width:120px;background-color:#000;color:#fff;text-align:center;border-radius:6px;padding:5px 0;position:absolute;z-index:1;bottom:120%;left:50%;margin-left:-60px}.eae-ct-wrapper .tooltip:hover .tooltiptext{visibility:visible}.eae-ct-heading-tooltip{text-decoration-line:underline;text-decoration-style:dotted}.eae-ct-btn{padding:10px 15px 10px 15px;color:#fff;display:inline-block;line-height:1em}.eae-ct-btn:hover{color:#fff}.eae-ct-wrapper i.fa.fa-check,.eae-ct-wrapper i.fas.fa-check{color:#38f146}.eae-ct-wrapper i.fa.fa-close,.eae-ct-wrapper i.fas.fa-times{color:red}.button-heading-blank.eae-ct-wrapper tr:last-child td:first-child{background:0 0!important;border:none!important}.eae-ct-wrapper tr:last-child{background:0 0!important}tbody tr:nth-child(2){background:0 0!important}@media (min-width:767px){.eae-ct-wrapper .eae-ct-header,.eae-ct-wrapper td{width:330px}.eae-ct-wrapper td+td,.eae-ct-wrapper th+th{width:auto}}.eae-tab-format-all .eae-ct-wrapper ul{display:flex}.hide.eae-ct-hide{display:table-cell}@media (min-width:1023px){.eae-tab-format-all tbody tr.eae-ct-header{display:none}.eae-tab-format-mobile .eae-ct-wrapper td,.eae-tab-format-mobile .eae-ct-wrapper th,.eae-tab-format-tab-mob .eae-ct-wrapper td,.eae-tab-format-tab-mob .eae-ct-wrapper th{display:table-cell!important}.eae-tab-format-all .hide.eae-ct-hide{display:table-cell}.eae-tab-format-mobile .hide.eae-ct-hide,.eae-tab-format-tab-mob .hide.eae-ct-hide{display:none!important}}@media (max-width:1023px){.eae-tab-format-tab-mob .eae-ct-wrapper ul{display:flex}.eae-tab-format-all tbody tr.eae-ct-header,.eae-tab-format-tab-mob tbody tr.eae-ct-header{display:none}.eae-tab-format-all .hide.eae-ct-hide{display:table-cell}.eae-tab-format-tab-mob .hide.eae-ct-hide{display:table-cell}}@media (max-width:1023px) and (min-width:768px){.eae-tab-format-mobile .eae-ct-wrapper td,.eae-tab-format-mobile .eae-ct-wrapper th{display:table-cell!important}.eae-tab-format-all tbody tr.eae-ct-header,.eae-tab-format-tab-mob tbody tr.eae-ct-header{display:none}.eae-tab-format-tab-mob .hide.eae-ct-hide{display:table-cell}}@media (max-width:767px){.eae-tab-format-mobile .eae-ct-wrapper ul{display:flex}.eae-tab-format-mobile tbody tr.eae-ct-header{display:none}.eae-tab-format-all tbody tr.eae-ct-header,.eae-tab-format-mobile tbody tr.eae-ct-header{display:none}.eae-tab-format-mobile .hide.eae-ct-hide{display:table-cell}}.eae-progress-bar-wrapper{display:flex;flex-direction:column;align-items:flex-start;margin:15px 0}.eae-progress-bar-wrapper.eae-progress-bar{width:100%;position:relative;box-sizing:border-box}.eae-pb-bar,.eae-pb-bar-inner,.eae-pb-bar-skill,.eae-pb-bar-value{box-sizing:border-box}.eae-pb-bar{position:relative;height:100%;width:100%;overflow:hidden}.eae-pb-bar--no-overflow{overflow:visible}.eae-pb-bar-inner{position:absolute;top:0;left:0;height:100%;-webkit-transform:scaleX(0);transform:scaleX(0);-webkit-transform-origin:left center;transform-origin:left center}.eae-pb-bar-inner.js-animated{transition-property:all;transition-duration:1.5s;transition-timing-function:cubic-bezier(.1,1.14,.31,1.06);transition-delay:1.5s;-webkit-transform:scaleX(1);transform:scaleX(1)}.eae-pb-bar-skill,.eae-pb-bar-value{font-size:14px;letter-spacing:1px}.eae-pb-bar-value--aligned-value{-webkit-transform:translateX(-50%);transform:translateX(-50%)}.eae-progress-bar-skin1{height:20px;padding:4px;border:1px solid #ddd;border-radius:20px}.eae-pb-bar-skin1{border-radius:20px}.eae-pb-bar-inner-skin1{background-color:#00bfb3;background-size:200%;background-position:0 0;border-radius:20px}.eae-pb-bar-skill-skin1{position:absolute;bottom:20px;left:0;opacity:0}.eae-pb-bar-skill-skin1.js-animated{transition-property:all;transition-duration:.5s;transition-timing-function:linear;transition-delay:.5s;left:0;opacity:1}.eae-pb-bar-value-skin1{position:absolute;bottom:20px;opacity:1;right:0}.eae-pb-bar-value-skin1.js-animated{transition-property:all;transition-duration:.5s;transition-timing-function:linear;transition-delay:.5s;right:0;opacity:1}.eae-progress-bar-skin2{height:15px;box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 3px 1px -2px rgba(0,0,0,.12),0 1px 5px 0 rgba(0,0,0,.2);border-radius:3px}@-webkit-keyframes progress-2-bg-animation{0%{background-position:0 0,0 0}100%{background-position:0 0,42px 0}}@keyframes progress-2-bg-animation{0%{background-position:0 0,0 0}100%{background-position:0 0,42px 0}}.eae-pb-bar-inner-skin2{background-image:linear-gradient(to top,rgba(255,255,255,.15),rgba(0,0,0,.2)),linear-gradient(135deg,#5eeb5b,#5eeb5b 33%,#358600 33%,#358600 66%,#5eeb5b 66%);background-size:100% 100%,42px 100%;background-position:0 0,0 0;border-radius:3px}.eae-pb-bar-inner-skin2.js-animated{-webkit-animation:progress-2-bg-animation 1.5s linear 0s infinite;animation:progress-2-bg-animation 1.5s linear 0s infinite}.eae-pb-bar-skill-skin2{position:absolute;left:0;opacity:0}.eae-pb-bar-skill-skin2.js-animated{transition-property:all;transition-duration:.5s;transition-timing-function:linear;transition-delay:.5s;bottom:20px;opacity:1}.eae-pb-bar-value-skin2{position:absolute;right:0;opacity:0}.eae-pb-bar-value-skin2.js-animated{transition-property:all;transition-duration:.5s;transition-timing-function:linear;transition-delay:.5s;bottom:20px;opacity:1}.eae-progress-bar-skin3{height:5px;background-color:#efefef}.eae-pb-bar-inner-skin3,.eae-pb-bar-value-skin3{background-color:#f40076}.eae-pb-bar-inner:after,.eae-pb-bar-value-skin3:after{border-top-color:#f40076}.eae-pb-bar-skill-skin3{position:absolute;bottom:10px;left:-10px;opacity:0}.eae-pb-bar-skill-skin3.js-animated{transition-property:all;transition-duration:.5s;transition-timing-function:linear;transition-delay:.5s;left:0;opacity:1}.eae-pb-bar-value-skin3{position:absolute;display:inline-block;padding:0 8px;font-size:14px;color:#fff;opacity:0}.eae-pb-bar-value-skin3:after{position:absolute;left:50%;bottom:-10px;display:block;width:0;height:0;content:'';-webkit-transform:translateX(-50%);transform:translateX(-50%);border-width:5px;border-style:solid;border-color:#f40076 transparent transparent transparent}.eae-pb-bar-inner-skin3.js-animated{transition-property:all;transition-duration:1.5s;transition-timing-function:cubic-bezier(.1,1.14,.31,1.06);transition-delay:1.5s;-webkit-transform:scaleX(1);transform:scaleX(1)}.eae-pb-bar-value-skin3.js-animated{transition-property:all;transition-duration:1.5s;transition-timing-function:cubic-bezier(.1,1.14,.31,1.06);transition-delay:2s;bottom:14px;opacity:1}.eae-progress-bar-skin4{height:3px;background-color:#efefef}.eae-pb-bar-inner-skin4{background-color:#000}.eae-pb-bar-inner-skin4:after{position:absolute;top:50%;right:0;display:block;width:8px;height:8px;content:'';-webkit-transform:translateY(-50%);transform:translateY(-50%);background-color:#000;border-radius:50%}.eae-pb-bar-value-skin4{position:absolute;bottom:2px;font-size:14px;opacity:0}.eae-pb-bar-value-skin4.js-animated{transition-property:all;transition-duration:1.5s;transition-timing-function:linear;transition-delay:1.5s;opacity:1}.eae-pb-bar-skill-skin4{position:absolute;bottom:2px;left:-20px;opacity:0}.eae-pb-bar-skill-skin4.js-animated{transition-property:all;transition-duration:.5s;transition-timing-function:linear;transition-delay:.5s;left:0;opacity:1}.eae-progress-bar-skin5{height:30px;background-color:#f7f7f7}.eae-pb-bar-inner-skin5{background-color:#57b8ff}.eae-pb-bar-skill-skin5{position:absolute;top:50%;left:10px;color:#fff;-webkit-transform:translateY(-50%);transform:translateY(-50%);opacity:0}.eae-pb-bar-skill-skin5.js-animated{transition-property:all;transition-duration:.5s;transition-timing-function:linear;transition-delay:.5s;opacity:1}.eae-pb-bar-value-skin5{position:absolute;top:50%;color:#fff;-webkit-transform:translateX(-100%) translateX(-10px) translateY(-50%);transform:translateX(-100%) translateX(-10px) translateY(-50%);opacity:0;z-index:10}.eae-pb-bar-value-skin5.js-animated{transition-property:all;transition-duration:1.5s;transition-timing-function:linear;transition-delay:1.5s;opacity:1}.eae-dual-button-wrapper .eae-button-1-wrapper,.eae-dual-button-wrapper .eae-button-2-wrapper{overflow:hidden}.eae-dual-button-wrapper.button-style-horizontal{display:flex;flex-direction:row;position:relative}.eae-dual-button-main-wrapper{display:flex;flex-direction:row;justify-content:center}.eae-dual-button-wrapper a{min-width:0}.eae-dual-button-wrapper.button-style-vertical{display:inline-flex;flex-direction:column;position:relative}.eae-button-1.icon-before,.eae-button-2.icon-before{display:flex;flex-direction:row}.eae-button-1.icon-after,.eae-button-2.icon-after{display:flex;flex-direction:row-reverse}.eae-button-1-wrapper .eae-button-1,.eae-button-2-wrapper .eae-button-2{color:#000;align-items:center}.eae-button-1-wrapper:hover .eae-button-1,.eae-button-2-wrapper:hover .eae-button-2{color:#000}.eae-dual-button-wrapper.button-style-vertical .eae-button-1.icon-after,.eae-dual-button-wrapper.button-style-vertical .eae-button-1.icon-before,.eae-dual-button-wrapper.button-style-vertical .eae-button-2.icon-after,.eae-dual-button-wrapper.button-style-vertical .eae-button-2.icon-before{justify-content:center}.eae-button-1.icon-up,.eae-button-2.icon-up{display:flex;flex-direction:column;text-align:center}.eae-button-1.icon-down,.eae-button-2.icon-down{display:flex;flex-direction:column-reverse;text-align:center}.eae-button-1-wrapper{background:#ffb6c1;display:flex;justify-content:center;width:100%;line-height:1}.eae-button-2-wrapper{background:orange;display:flex;justify-content:center;width:100%;line-height:1}.eae-button-1.icon-up .icon-wrapper,.eae-button-2.icon-down .icon-wrapper,.eae-button-2.icon-up .icon-wrapper{text-align:center}.eae-button-1.icon-up .eae-button-text,.eae-button-2.icon-down .eae-button-text,.eae-button-2.icon-up .eae-button-text{text-align:center}.eae-button-1.icon-before i,.eae-button-2.icon-after i,.eae-button-2.icon-before i{align-self:center;margin:0 10px 0 0}.eae-button-1.icon-after i,.eae-button-2.icon-after i{align-self:center;margin:0 0 0 10px}.eae-button-1.icon-down i,.eae-button-1.icon-up i,.eae-button-2.icon-down i,.eae-button-2.icon-up i{align-self:center;margin:5px 0}.eae-dual-button-wrapper.button-style-horizontal .eae-button-1-wrapper,.eae-dual-button-wrapper.button-style-horizontal .eae-button-2-wrapper{padding:12px 30px}.eae-dual-button-wrapper.button-style-vertical .eae-button-1-wrapper,.eae-dual-button-wrapper.button-style-vertical .eae-button-2-wrapper{padding:20px 30px}.eae-button1,.eae-button2{position:relative;display:flex}.eae-dual-button-wrapper.button-style-horizontal .eae-button1,.eae-dual-button-wrapper.button-style-horizontal .eae-button2{min-width:150px}.eae-dual-button-wrapper.button-style-vertical .eae-button1{display:flex;flex-direction:column}.eae-button-separator-wrapper .eae-button-separator{width:40px;height:40px;line-height:40px;border-radius:50%;z-index:1;box-shadow:0 0 0 6px rgba(255,255,255,.2);background:#fafaf8;color:#444;text-transform:uppercase;text-align:center;vertical-align:middle;font-weight:400;font-size:14px;position:absolute;transform:translateY(-50%)}.eae-button-separator span{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}.eae-sweep-right{vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px transparent;position:relative;-webkit-transition-property:color;transition-property:color;-webkit-transition-duration:.3s;transition-duration:.3s}.eae-sweep-right:before{content:"";position:absolute;z-index:-1;top:0;left:0;right:0;bottom:0;background:#2098d1;-webkit-transform:scaleX(0);transform:scaleX(0);-webkit-transform-origin:0 50%;transform-origin:0 50%;-webkit-transition-property:transform;transition-property:transform;-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-timing-function:ease-out;transition-timing-function:ease-out}.eae-sweep-right:active,.eae-sweep-right:focus,.eae-sweep-right:hover{color:#fff}.eae-sweep-right:active:before,.eae-sweep-right:focus:before,.eae-sweep-right:hover:before{-webkit-transform:scaleX(1);transform:scaleX(1)}.eae-sweep-left{vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px transparent;position:relative;-webkit-transition-property:color;transition-property:color;-webkit-transition-duration:.3s;transition-duration:.3s}.eae-sweep-left:before{content:"";position:absolute;z-index:-1;top:0;left:0;right:0;bottom:0;background:#2098d1;-webkit-transform:scaleX(0);transform:scaleX(0);-webkit-transform-origin:100% 50%;transform-origin:100% 50%;-webkit-transition-property:transform;transition-property:transform;-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-timing-function:ease-out;transition-timing-function:ease-out}.eae-sweep-left:active,.eae-sweep-left:focus,.eae-sweep-left:hover{color:#fff}.eae-sweep-left:active:before,.eae-sweep-left:focus:before,.eae-sweep-left:hover:before{-webkit-transform:scaleX(1);transform:scaleX(1)}.eae-sweep-bottom{vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px transparent;position:relative;-webkit-transition-property:color;transition-property:color;-webkit-transition-duration:.3s;transition-duration:.3s}.eae-sweep-bottom:before{content:"";position:absolute;z-index:-1;top:0;left:0;right:0;bottom:0;background:#2098d1;-webkit-transform:scaleY(0);transform:scaleY(0);-webkit-transform-origin:50% 0;transform-origin:50% 0;-webkit-transition-property:transform;transition-property:transform;-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-timing-function:ease-out;transition-timing-function:ease-out}.eae-sweep-bottom:active,.eae-sweep-bottom:focus,.eae-sweep-bottom:hover{color:#fff}.eae-sweep-bottom:active:before,.eae-sweep-bottom:focus:before,.eae-sweep-bottom:hover:before{-webkit-transform:scaleY(1);transform:scaleY(1)}.eae-sweep-top{vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px transparent;position:relative;-webkit-transition-property:color;transition-property:color;-webkit-transition-duration:.3s;transition-duration:.3s}.eae-sweep-top:before{content:"";position:absolute;z-index:-1;top:0;left:0;right:0;bottom:0;background:#2098d1;-webkit-transform:scaleY(0);transform:scaleY(0);-webkit-transform-origin:50% 100%;transform-origin:50% 100%;-webkit-transition-property:transform;transition-property:transform;-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-timing-function:ease-out;transition-timing-function:ease-out}.eae-sweep-top:active,.eae-sweep-top:focus,.eae-sweep-top:hover{color:#fff}.eae-sweep-top:active:before,.eae-sweep-top:focus:before,.eae-sweep-top:hover:before{-webkit-transform:scaleY(1);transform:scaleY(1)}.eae-bounce-right{vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px transparent;position:relative;-webkit-transition-property:color;transition-property:color;-webkit-transition-duration:.5s;transition-duration:.5s}.eae-bounce-right:before{content:"";position:absolute;z-index:-1;top:0;left:0;right:0;bottom:0;background:#2098d1;-webkit-transform:scaleX(0);transform:scaleX(0);-webkit-transform-origin:0 50%;transform-origin:0 50%;-webkit-transition-property:transform;transition-property:transform;-webkit-transition-duration:.5s;transition-duration:.5s;-webkit-transition-timing-function:ease-out;transition-timing-function:ease-out}.eae-bounce-right:active,.eae-bounce-right:focus,.eae-bounce-right:hover{color:#fff}.eae-bounce-right:active:before,.eae-bounce-right:focus:before,.eae-bounce-right:hover:before{-webkit-transform:scaleX(1);transform:scaleX(1);-webkit-transition-timing-function:cubic-bezier(.52,1.64,.37,.66);transition-timing-function:cubic-bezier(.52,1.64,.37,.66)}.eae-bounce-left{vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px transparent;position:relative;-webkit-transition-property:color;transition-property:color;-webkit-transition-duration:.5s;transition-duration:.5s}.eae-bounce-left:before{content:"";position:absolute;z-index:-1;top:0;left:0;right:0;bottom:0;background:#2098d1;-webkit-transform:scaleX(0);transform:scaleX(0);-webkit-transform-origin:100% 50%;transform-origin:100% 50%;-webkit-transition-property:transform;transition-property:transform;-webkit-transition-duration:.5s;transition-duration:.5s;-webkit-transition-timing-function:ease-out;transition-timing-function:ease-out}.eae-bounce-left:active,.eae-bounce-left:focus,.eae-bounce-left:hover{color:#fff}.eae-bounce-left:active:before,.eae-bounce-left:focus:before,.eae-bounce-left:hover:before{-webkit-transform:scaleX(1);transform:scaleX(1);-webkit-transition-timing-function:cubic-bezier(.52,1.64,.37,.66);transition-timing-function:cubic-bezier(.52,1.64,.37,.66)}.eae-bounce-bottom{vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px transparent;position:relative;-webkit-transition-property:color;transition-property:color;-webkit-transition-duration:.5s;transition-duration:.5s}.eae-bounce-bottom:before{content:"";position:absolute;z-index:-1;top:0;left:0;right:0;bottom:0;background:#2098d1;-webkit-transform:scaleY(0);transform:scaleY(0);-webkit-transform-origin:50% 0;transform-origin:50% 0;-webkit-transition-property:transform;transition-property:transform;-webkit-transition-duration:.5s;transition-duration:.5s;-webkit-transition-timing-function:ease-out;transition-timing-function:ease-out}.eae-bounce-bottom:active,.eae-bounce-bottom:focus,.eae-bounce-bottom:hover{color:#fff}.eae-bounce-bottom:active:before,.eae-bounce-bottom:focus:before,.eae-bounce-bottom:hover:before{-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transition-timing-function:cubic-bezier(.52,1.64,.37,.66);transition-timing-function:cubic-bezier(.52,1.64,.37,.66)}.eae-bounce-top{vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px transparent;position:relative;-webkit-transition-property:color;transition-property:color;-webkit-transition-duration:.5s;transition-duration:.5s}.eae-bounce-top:before{content:"";position:absolute;z-index:-1;top:0;left:0;right:0;bottom:0;background:#2098d1;-webkit-transform:scaleY(0);transform:scaleY(0);-webkit-transform-origin:50% 100%;transform-origin:50% 100%;-webkit-transition-property:transform;transition-property:transform;-webkit-transition-duration:.5s;transition-duration:.5s;-webkit-transition-timing-function:ease-out;transition-timing-function:ease-out}.eae-bounce-top:active,.eae-bounce-top:focus,.eae-bounce-top:hover{color:#fff}.eae-bounce-top:active:before,.eae-bounce-top:focus:before,.eae-bounce-top:hover:before{-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transition-timing-function:cubic-bezier(.52,1.64,.37,.66);transition-timing-function:cubic-bezier(.52,1.64,.37,.66)}.eae-markers .marker{display:none}.eae-markers p{margin-bottom:0}.eae-fg-wrapper{display:flex;flex-direction:column;overflow:hidden}.eae-gallery-filter{display:flex;flex-direction:row;justify-content:center;flex-wrap:wrap}.eae-filter-label{padding:5px 10px;background-color:#a0ce4e;color:#fff;margin:0 3px 0 3px}.eae-filter-label.current{background-color:#73b9dc}.eae-fg-image{display:flex;flex-wrap:wrap;flex-direction:row}.eae-fg-wrapper .eae-gallery-item-inner img{width:100%;height:auto;display:block!important;transition:all .5s ease;-webkit-transition:all .5s ease}.eae-gallery-item{height:auto}.eae-gallery-filter a{color:#fff;text-decoration:none}.eae-gallery-filter a.current{font-weight:700}.eae-gallery-item-inner{position:relative;overflow:hidden}.eae-overlay-always .eae-gallery-item .eae-grid-overlay{display:block}.eae-overlay-hover .eae-gallery-item-inner:hover .eae-grid-overlay{display:block}.eae-overlay-hide-on-hover .eae-gallery-item-inner:hover .eae-grid-overlay{display:none}.eae-overlay-hide-on-hover .eae-grid-overlay{display:block}.eae-grid-overlay{position:absolute;top:0;left:0;display:none;z-index:99;background:rgba(0,0,0,.5);height:100%;width:100%}.eae-grid-overlay-inner{display:block;position:relative;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center}.eae-fg-wrapper .eae-icon-wrapper{display:flex;justify-content:center}.eae-overlay-caption{display:block;line-height:1em;margin-top:15px;color:#73b9dc}.eae-overlay-icon{line-height:1em;padding:.5em;display:inline-block}.eae-overlay-icon svg{height:auto}.eae-icon-view-framed .eae-overlay-icon{padding:.5em;color:#73b9dc;border:3px solid #73b9dc;background-color:transparent}.eae-icon-view-stacked .eae-overlay-icon{padding:.5em;color:#fff;background-color:#818a91}.eae-hover-direction-effect .eae-grid-overlay{position:absolute;z-index:99;background:rgba(0,0,0,.5);height:100%;width:100%}.eae-fg-wrapper.eae-image-ratio-yes .eae-gallery-item-inner .eae-fg-img-wrapper{position:relative;top:0;overflow:hidden;left:0;right:0;border:0}.eae-fg-wrapper.eae-image-ratio-yes .eae-gallery-item-inner .eae-fg-img-wrapper img{height:100%;width:100%;display:block;position:absolute;top:0;left:0;object-fit:cover}.wts-eae-ribbons-badges-wrapper{display:none}.wts-eae-enable-ribbons-badges-yes .elementor-column-wrap>.wts-eae-ribbons-badges-wrapper{display:block}.wts-eae-enable-ribbons-badges-yes.wts-eae-badge-type-ribbon>.wts-eae-ribbons-badges-wrapper{position:absolute;top:0;left:auto;right:0;-ms-transform:rotate(90deg);width:150px;overflow:hidden;height:150px;z-index:999;padding:8px 12px}.wts-eae-badge-h-left.wts-eae-enable-ribbons-badges-yes.wts-eae-badge-type-ribbon>.wts-eae-ribbons-badges-wrapper{-webkit-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(0);left:0;right:auto}.wts-eae-badge-h-right.wts-eae-enable-ribbons-badges-yes.wts-eae-badge-type-ribbon>.wts-eae-ribbons-badges-wrapper{-webkit-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(90deg);left:auto;right:0}.wts-eae-enable-ribbons-badges-yes.wts-eae-badge-type-ribbon>.wts-eae-ribbons-badges-wrapper span.wts-eae-ribbons-badges-inner{position:absolute;text-align:center;left:0;top:0;width:200%;-webkit-transform:translateY(-50%) translateX(-50%) translateX(35px) rotate(-45deg);-ms-transform:translateY(-50%) translateX(-50%) translateX(35px) rotate(-45deg);transform:translateY(-50%) translateX(-50%) translateX(35px) rotate(-45deg);margin-top:35px;font-size:13px;line-height:2;font-weight:800;text-transform:uppercase;background:rgba(63,195,135,.8);padding:8px 12px}.wts-eae-enable-ribbons-badges-yes.wts-eae-badge-type-badge>.wts-eae-ribbons-badges-wrapper span.wts-eae-ribbons-badges-inner{min-height:3.236em;min-width:3.236em;padding:0;font-size:1em;font-weight:700;position:absolute;text-align:center;line-height:3.236;top:-.5em;left:-.5em;margin:0;border-radius:100%;background-color:#77a464;color:#fff;font-size:.857em;z-index:9}.wts-eae-badge-h-left.wts-eae-badge-v-bottom.wts-eae-enable-ribbons-badges-yes>.wts-eae-ribbons-badges-wrapper span.wts-eae-ribbons-badges-inner{left:20px;right:auto;top:auto;bottom:20px}.wts-eae-badge-h-left.wts-eae-badge-v-top.wts-eae-enable-ribbons-badges-yes>.wts-eae-ribbons-badges-wrapper span.wts-eae-ribbons-badges-inner{left:20px;right:auto;top:20px;bottom:auto}.wts-eae-badge-h-right.wts-eae-badge-v-bottom.wts-eae-enable-ribbons-badges-yes>.wts-eae-ribbons-badges-wrapper span.wts-eae-ribbons-badges-inner{left:auto;right:20px;top:auto;bottom:20px}.wts-eae-badge-h-right.wts-eae-badge-v-top.wts-eae-enable-ribbons-badges-yes>.wts-eae-ribbons-badges-wrapper span.wts-eae-ribbons-badges-inner{left:auto;right:20px;top:20px;bottom:auto}.eae-flip-box-back svg,.eae-flip-box-front svg{width:25px;height:auto}.wts-eae-textseparator svg{width:25px;height:auto}.eae-img-comp-slider svg{width:22px;height:auto}.eae-popup-link svg{display:inline-block;width:1em}.eae-popup svg:focus,.eae-popup svg:hover{opacity:1;cursor:pointer}.eae-popup svg:active{top:1px}.eae-popup svg.eae-close{width:28px;height:28px;line-height:1em;text-decoration:none;text-align:center;opacity:1;background-color:#fff}.eae-dual-button-wrapper svg{width:1em;height:auto;display:block}eae-button-separator i{position:relative;display:block}.eae-button-1.icon-before svg,.eae-button-2.icon-after svg,.eae-button-2.icon-before svg{align-self:center;margin:0 10px 0 0}.eae-button-1.icon-after svg,.eae-button-2.icon-after svg{align-self:center;margin:0 0 0 10px}.eae-button-1.icon-down svg,.eae-button-1.icon-up svg,.eae-button-2.icon-down svg,.eae-button-2.icon-up svg{align-self:center;margin:5px 0}.eae-pt-button-wrapper a svg{width:1em}.eae-pt-action-button .eae-pt-align-icon-left{float:left}.eae-pt-action-button .eae-pt-align-icon-right{float:right}.eae-icon-wrap svg{width:20px;height:auto;font-size:20px;display:block}.eae-info-circle .eae-icon-wrap svg{width:20px;height:auto;font-size:20px}.eae-icon-view-stacked svg{fill:#fff}.ae-link-yes{cursor:pointer}.eae-element-unfold-content{padding:10px 0;background-color:#d3d3D3C4;width:100%;position:absolute;left:0;bottom:0;z-index:999}a.eae-unfold-link{background-color:#61ce70;color:#fff;display:inline-block;overflow:hidden}a.eae-unfold-link svg{background-color:#fff}.eae-unfold-button-icon{vertical-align:middle}.eae-fold-yes .elementor-column-wrap,.eae-fold-yes.elementor-section .elementor-container,.eae-fold-yes.elementor-widget{overflow:hidden}body.elementor-editor-active .elementor.elementor-edit-mode .elementor-element.elementor-section.eae-widget-unfold-yes .elementor-container,body.elementor-editor-preview .elementor.elementor-edit-mode .elementor-element.elementor-section.eae-widget-unfold-yes .elementor-container{overflow:hidden}body.elementor-editor-active .elementor.elementor-edit-mode .elementor-element.elementor-column.eae-widget-unfold-yes .elementor-column-wrap,body.elementor-editor-preview .elementor.elementor-edit-mode .elementor-element.elementor-column.eae-widget-unfold-yes .elementor-column-wrap{overflow:hidden}body.elementor-editor-active .elementor.elementor-edit-mode .elementor-element.elementor-widget.eae-widget-unfold-yes,body.elementor-editor-preview .elementor.elementor-edit-mode .elementor-element.elementor-widget.eae-widget-unfold-yes{overflow:hidden}.eae-widget-unfold-yes .elementor-widget-container .eae-fold-yes.eae-rc{display:none!important}.eae-unfold-button-icon svg{line-height:1em;text-decoration:none;-webkit-mask-repeat:no-repeat!important;text-align:center;opacity:1}.eae-fold-icon-type-svg .eae-unfold-button-icon,.eae-unfold-icon-type-svg .eae-unfold-button-icon{-webkit-mask-size:cover!important;background-image:none;transform:translateY(-50%)}.elementor-section.elementor-section-items-bottom.eae-widget-unfold-yes>.elementor-container,.elementor-section.elementor-section-items-middle.eae-widget-unfold-yes>.elementor-container{-webkit-box-align:start;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:start}.elementor-section.elementor-section-content-bottom.eae-widget-unfold-yes>.elementor-container,.elementor-section.elementor-section-content-middle.eae-widget-unfold-yes>.elementor-container{-webkit-box-align:start;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:start}.elementor-widget-wts-modal-popup.eae-pop-btn-type-image .eae-popup-link{padding:0;background-color:transparent;overflow:hidden}[data-elementor-device-mode=tablet] .eae-tab-format-mobile .eae-ct-hide.eae-fbox-heading{display:none!important}
1
+ .elementor-widget-wts-textseparator .elementor-widget-container{overflow:hidden}.wts-eae-textseparator{align-items:center;display:flex;flex-flow:row nowrap;margin:auto}body.rtl .wts-eae-textseparator{flex-direction:row-reverse}.eae-separator-icon-inner i{height:1em;width:1em;text-align:center;position:relative;display:block}.eae-separator-icon-inner i:before{position:absolute;left:50%;-webkit-transform:translateX(-50%);-moz-transform:translateX(-50%);-ms-transform:translateX(-50%);-o-transform:translateX(-50%);transform:translateX(-50%)}.wts-eae-textseparator .eae-sep-holder{flex:1 1 auto;height:1px;min-width:10%;position:relative}.wts-eae-textseparator .eae-sep-holder .eae-sep-lines{border-top-width:1px;display:block;height:1px;position:relative;top:1px;width:100%}.eae-separator-title{margin:0;-moz-box-flex:0;flex:0 1 auto;line-height:1em;margin:0;overflow-wrap:break-word}.sep-align-right .sep-right{display:none}.sep-align-left .sep-left{display:none}.eae-icon-view-stacked i{color:#fff}.eae-icon-view-framed .eae-separator-icon-inner{border:1px solid}.eae-icon-shape-circle .eae-separator-icon-inner{border-radius:50%}.eae-separator-icon-wrapper,.eae-separator-title{margin:0 5px!important}.eae-separator-icon-inner{line-height:1}.wts-price-box-wrapper .eae-pt-heading,.wts-price-box-wrapper .eae-pt-sub-heading{margin:5px 0;text-align:center}.plan-price-shape{display:table;height:6em;margin:auto;width:6em}.eae-pt-price-box-shape-circle .plan-price-shape,.eae-pt-price-box-shape-square .plan-price-shape{border:1px solid}.eae-pt-price-box-shape-circle .plan-price-shape{border-radius:50%}.plan-price-block{padding:10px 0}.plan-price-shape-inner{display:table-cell;vertical-align:middle;padding:10px}.plan-price-shape-inner>span{display:block;font-size:1em;text-align:center}.eae-pt-feature-list{list-style:outside none none;text-align:center;margin:10px 0}.eae-pt-button-wrapper>a{text-align:center;display:inline-block;line-height:1}.eae-pt-button-wrapper{text-align:center}.wts-price-box-wrapper .heading-wrapper,.wts-price-box-wrapper .plan-features-wrapper{padding:10px 5px}.eae-pt-button-wrapper{padding:15px 0}.eae-pt-button-wrapper a{padding:5px 15px;border-radius:3px}.eae-pt-align-icon-right{float:right}.strike-feature{text-decoration:line-through}.eae-flip-box{width:100%;text-align:center}.eae-flip-box-wrapper{display:inline-block;width:100%}.eae-flip-box-inner{width:100%;height:200px;position:relative;-webkit-transform-style:preserve-3d;-moz-transform-style:preserve-3d;-ms-transform-style:preserve-3d;transform-style:preserve-3d}.eae-flip-box-inner .eae-flip-box-back,.eae-flip-box-inner .eae-flip-box-front{width:100%;height:100%;position:absolute;top:0;left:0;text-align:center;padding:10px;-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;-ms-backface-visibility:hidden;backface-visibility:hidden;-webkit-transition:all .6s ease 0s;-moz-transition:all .6s ease 0s;-ms-transition:all .6s ease 0s;-o-transition:all .6s ease 0s;transition:all .6s ease 0s}.eae-flip-box-front{z-index:2}.eae-flip-box-back{z-index:1}.eae-fb-animate-vertical .eae-flip-box-inner .eae-flip-box-front{-webkit-transform:perspective(1000px) rotateX(0);-ms-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}.eae-fb-animate-vertical .eae-flip-box-inner .eae-flip-box-back{-webkit-transform:perspective(1000px) rotateX(180deg);transform:perspective(1000px) rotateX(180deg);-ms-transform:perspective(1000px) rotateX(180deg)}.eae-fb-animate-vertical .eae-flip-box-inner:hover .eae-flip-box-front{-webkit-transform:perspective(1000px) rotateX(180deg);transform:perspective(1000px) rotateX(180deg);-ms-transform:perspective(1000px) rotateX(180deg)}.eae-fb-animate-vertical .eae-flip-box-inner:hover .eae-flip-box-back{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0);-ms-transform:perspective(1000px) rotateX(0)}.eae-fb-animate-horizontal .eae-flip-box-inner .eae-flip-box-front{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0);-ms-transform:perspective(1000px) rotateY(0)}.eae-fb-animate-horizontal .eae-flip-box-inner .eae-flip-box-back{-webkit-transform:perspective(1000px) rotateY(180deg);transform:perspective(1000px) rotateY(180deg);-ms-transform:perspective(1000px) rotateY(180deg)}.eae-fb-animate-horizontal .eae-flip-box-inner:hover .eae-flip-box-front{-webkit-transform:perspective(1000px) rotateY(180deg);transform:perspective(1000px) rotateY(180deg);-ms-transform:perspective(1000px) rotateY(180deg)}.eae-fb-animate-horizontal .eae-flip-box-inner:hover .eae-flip-box-back{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0);-ms-transform:perspective(1000px) rotateY(0)}.eae-fb-animate-fade .eae-flip-box-inner .eae-flip-box-front{opacity:1}.eae-fb-animate-fade .eae-flip-box-inner .eae-flip-box-back{opacity:0}.eae-fb-animate-fade .eae-flip-box-inner:hover .eae-flip-box-front{opacity:0}.eae-fb-animate-fade .eae-flip-box-inner:hover .eae-flip-box-back{opacity:1}.eae-flip-box-wrapper:focus .eae-flip-box-back,.eae-flip-box-wrapper:hover .eae-flip-box-back{z-index:2}.eae-flip-box-wrapper:focus .eae-flip-box-front,.eae-flip-box-wrapper:hover .eae-flip-box-front{z-index:1}.fade .eae-flip-box-wrapper .eae-flip-box-front{opacity:1;transition:1s}.fade .eae-flip-box-wrapper .eae-flip-box-back{opacity:0;transition:1s}.fade .eae-flip-box-wrapper:focus .eae-flip-box-front,.fade .eae-flip-box-wrapper:hover .eae-flip-box-front{opacity:0}.fade .eae-flip-box-wrapper:focus .eae-flip-box-back,.fade .eae-flip-box-wrapper:hover .eae-flip-box-back{opacity:1}.eae-fb-animate-flip .eae-flip-box-wrapper{perspective:800px}.eae-fb-animate-flip .eae-flip-box-inner{transform-style:preserve-3d;transform:rotateX(0) rotateY(0) rotateZ(0);transition:1s}.eae-fb-animate-flip .eae-flip-box-front{transform:translate3d(0,0,1px)}.eae-fb-animate-flip .eae-flip-box-back{transform:rotateY(180deg) translate3d(0,0,0)}.eae-fb-animate-flip .eae-flip-box-wrapper:focus .eae-flip-box-inner,.eae-fb-animate-flip .eae-flip-box-wrapper:hover .eae-flip-box-inner{transform:rotateY(180deg)}.up .eae-flip-box-front{transform:translate3d(0,0,1px)}.up .eae-flip-box-back{transform:rotateX(180deg) translate3d(0,0,0)}.up .eae-flip-box-wrapper:focus .eae-flip-box-inner,.up .eae-flip-box-wrapper:hover .eae-flip-box-inner{transform:rotateX(180deg)}.box .eae-flip-box-front{transform:translate3d(0,0,100px) scale(.85,.85)}.box .eae-flip-box-back{transform:rotateY(180deg) translate3d(0,0,100px) scale(.85,.85)}.box.up .eae-flip-box-back{transform:rotateX(180deg) translate3d(0,0,100px) scale(.85,.85)}.hideback .eae-flip-box-back,.hideback .eae-flip-box-front{backface-visibility:hidden}.eae-fb-animate-nananana .eae-flip-box-wrapper:focus .eae-flip-box-front,.eae-fb-animate-nananana .eae-flip-box-wrapper:hover .eae-flip-box-front{z-index:10;animation:batman 1s 2 alternate linear}.eae-fb-animate-flipcard .eae-flip-box-back,.eae-fb-animate-flipcard .eae-flip-box-front{transition:transform .4s ease;transform-origin:center center -150px;-webkit-transform-origin:center center -150px}.flipcard-rotate-top-down .eae-flip-box-front{transform:perspective(0) rotateX(0) rotateY(0) rotateZ(0)}.flipcard-rotate-top-down .eae-flip-box-back{transform:perspective(0) rotateX(90deg) rotateY(0) rotateZ(0)}.eae-fb-animate-flipcard.flipcard-rotate-top-down .eae-flip-box-wrapper:hover .eae-flip-box-front{transform:perspective(0) rotateX(-90deg) rotateY(0) rotateZ(0)}.eae-fb-animate-flipcard.flipcard-rotate-top-down .eae-flip-box-wrapper:hover .eae-flip-box-back{z-index:99999;transform:perspective(0) rotateX(0) rotateY(0) rotateZ(0)}.flipcard-rotate-down-top .eae-flip-box-front{transform:perspective(0) rotateX(0) rotateY(0) rotateZ(0)}.flipcard-rotate-down-top .eae-flip-box-back{transform:perspective(0) rotateX(-90deg) rotateY(0) rotateZ(0)}.eae-fb-animate-flipcard.flipcard-rotate-down-top .eae-flip-box-wrapper:hover .eae-flip-box-front{transform:perspective(0) rotateX(90deg) rotateY(0) rotateZ(0)}.eae-fb-animate-flipcard.flipcard-rotate-down-top .eae-flip-box-wrapper:hover .eae-flip-box-back{z-index:99999;transform:perspective(0) rotateX(0) rotateY(0) rotateZ(0)}.flipcard-rotate-left-right .eae-flip-box-front{transform:perspective(0) rotateX(0) rotateY(0) rotateZ(0)}.flipcard-rotate-left-right .eae-flip-box-back{transform:perspective(0) rotateX(0) rotateY(-90deg) rotateZ(0)}.eae-fb-animate-flipcard.flipcard-rotate-left-right .eae-flip-box-wrapper:hover .eae-flip-box-front{transform:perspective(0) rotateX(0) rotateY(90deg) rotateZ(0)}.eae-fb-animate-flipcard.flipcard-rotate-left-right .eae-flip-box-wrapper:hover .eae-flip-box-back{z-index:99999;transform:perspective(0) rotateX(0) rotateY(0) rotateZ(0)}.flipcard-rotate-right-left .eae-flip-box-front{transform:perspective(0) rotateX(0) rotateY(0) rotateZ(0)}.flipcard-rotate-right-left .eae-flip-box-back{transform:perspective(0) rotateX(0) rotateY(90deg) rotateZ(0)}.eae-fb-animate-flipcard.flipcard-rotate-right-left .eae-flip-box-wrapper:hover .eae-flip-box-front{transform:perspective(0) rotateX(0) rotateY(-90deg) rotateZ(0)}.eae-fb-animate-flipcard.flipcard-rotate-right-left .eae-flip-box-wrapper:hover .eae-flip-box-back{z-index:99999;transform:perspective(0) rotateX(0) rotateY(0) rotateZ(0)}@keyframes batman{0%{transform:scale(1,1) rotateZ(0)}100%{transform:scale(0,0) rotateZ(720deg);opacity:0}}.eae-flip-box-back i,.eae-flip-box-front i{font-size:32px;height:1em;width:1em;position:relative;display:block}.eae-flip-box-back i:before,.eae-flip-box-front i:before{position:absolute;left:50%;-webkit-transform:translate(-50%);-moz-transform:translate(-50%);-ms-transform:translate(-50%);-o-transform:translate(-50%);transform:translate(-50%)}.eae-fb-icon-view-framed{border:1px solid #92be43}.eae-fb-icon-shape-circle{border-radius:50%}.eae-flip-box-wrapper .icon-wrapper{display:inline-block;padding:10px;line-height:1}.eae-flip-box-wrapper .back-icon-title,.eae-flip-box-wrapper .front-icon-title{margin:10px auto;color:#fff}.eae-flip-box-wrapper .flipbox-content{display:block;position:relative;top:50%;transform:translateY(-50%);-ms-transform:translateY(-50%)}.flipbox-content p{margin-bottom:10px}.eae-fb-button{display:inline-block;padding:5px 10px}.eae-flip-box-front{background:#a0ce4e}.eae-flip-box-back{background:#73b9dc}@media only screen and (max-width:768px){.eae-flip-box-back,.eae-flip-box-front,.flipbox-content{cursor:pointer;overflow:visible!important;transform-style:preserve-3d;-webkit-transform-style:preserve-3d}}.elementor-widget-wts-shape-separator svg{display:block}.wts-eae-pl-wrapper ul{margin:0}.wts-eae-pl-wrapper ul li{list-style:none;overflow:hidden;margin-bottom:10px}.eae-pl-img-align-none .eae-pl-image-wrapper a{text-align:center}.eae-pl-title{margin:0}.eae-pl-title a{display:block}.eae-pl-readmore a{display:inline-block;border-radius:2px;color:#fff;padding:4px 8px}.eae-at-animation-text-wrapper{display:inline-block;position:relative;text-align:left}.eae-at-animation-text-wrapper .eae-at-animation-text{display:inline-block;position:absolute;white-space:nowrap;left:0;top:0}[data-elementor-device-mode=mobile] .eae-at-animation-text{white-space:normal}.eae-at-animation-text-wrapper .eae-at-animation-text.is-visible{position:relative}.no-js .eae-at-animation-text-wrapper .eae-at-animation-text{opacity:0}.no-js .eae-at-animation-text-wrapper .eae-at-animation-text.is-visible{opacity:1}.eae-animtext-wrapper{font-size:40px}.eae-st-rest-text{display:inline-block}.eae-st-split-text{display:inline-block}body.rtl .eae-st-transform-text-title{display:flex;flex-direction:row-reverse}body.rtl .eae-text-align-left .eae-st-transform-text-title{justify-content:flex-start}body.rtl .eae-text-align-right .eae-st-transform-text-title{justify-content:flex-end}body.rtl .eae-text-align-center .eae-st-transform-text-title{justify-content:center}.eae-at-animation.type .eae-at-animation-text-wrapper{vertical-align:bottom;overflow:hidden}.eae-at-animation.type .eae-at-animation-text-wrapper::after{content:"";position:absolute;right:0;top:50%;bottom:auto;-webkit-transform:translateY(-50%);-moz-transform:translateY(-50%);-ms-transform:translateY(-50%);-o-transform:translateY(-50%);transform:translateY(-50%);height:90%;width:1px}.eae-at-animation.type .eae-at-animation-text-wrapper.waiting::after{-webkit-animation:cd-pulse 1s infinite;-moz-animation:cd-pulse 1s infinite;animation:cd-pulse 1s infinite}.eae-at-animation.type .eae-at-animation-text-wrapper.selected::after{visibility:hidden}.eae-at-animation.type .eae-at-animation-text{visibility:hidden}.eae-at-animation.type .eae-at-animation-text.is-visible{visibility:visible}.eae-at-animation.type i{position:absolute;visibility:hidden}.eae-at-animation.type i.in{position:relative;visibility:visible}@-webkit-keyframes cd-pulse{0%{-webkit-transform:translateY(-50%) scale(1);opacity:1}40%{-webkit-transform:translateY(-50%) scale(.9);opacity:0}100%{-webkit-transform:translateY(-50%) scale(0);opacity:0}}@-moz-keyframes cd-pulse{0%{-moz-transform:translateY(-50%) scale(1);opacity:1}40%{-moz-transform:translateY(-50%) scale(.9);opacity:0}100%{-moz-transform:translateY(-50%) scale(0);opacity:0}}@keyframes cd-pulse{0%{-webkit-transform:translateY(-50%) scale(1);-moz-transform:translateY(-50%) scale(1);-ms-transform:translateY(-50%) scale(1);-o-transform:translateY(-50%) scale(1);transform:translateY(-50%) scale(1);opacity:1}40%{-webkit-transform:translateY(-50%) scale(.9);-moz-transform:translateY(-50%) scale(.9);-ms-transform:translateY(-50%) scale(.9);-o-transform:translateY(-50%) scale(.9);transform:translateY(-50%) scale(.9);opacity:0}100%{-webkit-transform:translateY(-50%) scale(0);-moz-transform:translateY(-50%) scale(0);-ms-transform:translateY(-50%) scale(0);-o-transform:translateY(-50%) scale(0);transform:translateY(-50%) scale(0);opacity:0}}.eae-img-comp-container{width:100%;position:relative;text-align:center}.eae-img-comp-container img{vertical-align:middle}.eae-img-comp-img{position:absolute;top:0;left:0;height:100%;width:100%;overflow:hidden;transform:translateZ(0);backface-visibility:hidden}.eae-img-comp-img img{display:block;max-width:100%;width:100%}.eae-img-comp-slider{position:absolute;z-index:9;width:40px;height:40px;background-color:#2196f3;opacity:1;border-radius:50%}.icon-horizontal{cursor:ew-resize}.icon-vertical{cursor:n-resize}.mode-horizontal .eae-img-comp-overlay img{position:absolute;left:0;top:0;display:block;width:auto;height:100%!important;max-width:none!important}.mode-vertical .eae-img-comp-overlay img{position:absolute;left:0;top:0;display:block;width:100%;height:auto!important;max-width:none!important}.eae-img-comp-slider svg,.eae-slider-icon{top:50%;transform:translateY(-50%) translateX(-50%);position:absolute;left:50%;color:#fff}.elementor-widget-wts-ab-image{text-align:center}.elementor-widget-wts-ab-image .elementor-widget-container{display:inline-block;margin:0 auto!important;overflow:hidden}.eae-text-before{position:absolute!important;padding:10px;transition:transform .3s .7s,opacity .3s .7s;color:#d36118;z-index:0;background:rgba(255,255,255,.5);margin:20px}.eae-text-after{position:absolute!important;padding:10px;transition:transform .3s .7s,opacity .3s .7s;color:#d36118;z-index:0;background:rgba(255,255,255,.5);margin:20px}.divTest{display:inline-block;background-color:#00a0d2;padding:20px}.eae-particle-wrapper{position:absolute;left:0;top:0}.eae-particle-wrapper.eae-particle-area{width:100%;height:100%}body:not(.elementor-editor-active) .eae-particle-wrapper{width:100%;height:100%}body:not(.elementor-editor-active) .eae-particle-wrapper .particles-js-canvas-el{height:100%;position:absolute;z-index:0}.eae-section-bs{position:absolute;width:100%;height:100%;top:0}.eae-section-bs-inner{width:100%;height:100%!important}.eae-popup.mfp-bg{top:0;left:0;width:100%;height:100%;z-index:1042;overflow:hidden;position:fixed;background:#0b0b0b;opacity:.8}.eae-popup-link{padding:12px 24px;color:#fff;display:inline-flex;line-height:1}.eae-popup-link svg{fill:#fff}.eae-popup-link:hover{color:#fff}.eae-popup.mfp-wrap{top:0;left:0;width:100%;height:100%;z-index:1043;position:fixed;outline:0!important;-webkit-backface-visibility:hidden}.eae-popup .mfp-container{text-align:center;position:absolute;width:100%;height:100%;left:0;top:0;padding:0 8px;box-sizing:border-box}.eae-popup .mfp-container:before{content:"";display:inline-block;height:100%;vertical-align:middle}.eae-popup .mfp-align-top .mfp-container:before{display:none}.eae-popup .mfp-content{position:relative;display:inline-block;vertical-align:middle;margin:0 auto;text-align:left;z-index:1045}.eae-modal-content{padding:20px}.eae-pop-btn-align-left .eae-popup-wrapper{text-align:left}.eae-pop-btn-align-right .eae-popup-wrapper{text-align:right}.eae-pop-btn-align-center .eae-popup-wrapper{text-align:center}.eae-pop-btn-align-justify .eae-popup-wrapper{text-align:center}.eae-pop-btn-align-justify .eae-popup-wrapper a{display:block}.eae-popup .mfp-ajax-holder .mfp-content,.eae-popup .mfp-inline-holder .mfp-content{width:50%;background-color:#fff;cursor:auto;overflow:hidden}.eae-popup .mfp-ajax-cur{cursor:progress}.eae-popup .mfp-zoom-out-cur,.eae-popup .mfp-zoom-out-cur .mfp-image-holder .eae-close{cursor:-moz-zoom-out;cursor:-webkit-zoom-out;cursor:zoom-out}.eae-popup .mfp-zoom{cursor:pointer;cursor:-webkit-zoom-in;cursor:-moz-zoom-in;cursor:zoom-in}.eae-popup.mfp-auto-cursor .mfp-content{cursor:auto}.eae-popup .eae-close,.eae-popup .mfp-arrow,.eae-popup .mfp-counter,.eae-popup .mfp-preloader{-webkit-user-select:none;-moz-user-select:none;user-select:none}.mfp-loading.mfp-figure{display:none}.mfp-hide{display:none!important}.eae-popup .mfp-preloader{color:#ccc;position:absolute;top:50%;width:auto;text-align:center;margin-top:-.8em;left:8px;right:8px;z-index:1044}.eae-popup .mfp-preloader a{color:#ccc}.eae-popup .mfp-preloader a:hover{color:#fff}.mfp-s-ready .mfp-preloader{display:none}.mfp-s-error .mfp-content{display:none}button.eae-close,button.mfp-arrow{overflow:visible;cursor:pointer;background:0 0;border:0;-webkit-appearance:none;display:block;outline:0;padding:0;z-index:1046;box-shadow:none;touch-action:manipulation}button::-moz-focus-inner{padding:0;border:0}.eae-popup .eae-close{width:28px;height:28px;line-height:1em;position:absolute;right:10px;top:10px;text-decoration:none;text-align:center;opacity:1;color:#fff;font-size:28px;z-index:1500}.eae-close:focus,.eae-close:hover{opacity:1;cursor:pointer}.eae-close:active{top:1px}.eae-close:before{top:50%;left:50%;position:absolute;transform:translate(-50%,-50%)}.eae-popup.eae-close-btn-in .eae-close{color:#fff}.mfp-iframe-holder .eae-close,.mfp-image-holder .eae-close{color:#fff;right:-6px;text-align:right;padding-right:6px;width:100%}.mfp-counter{position:absolute;top:0;right:0;color:#ccc;font-size:12px;line-height:18px;white-space:nowrap}.mfp-arrow{position:absolute;opacity:.65;margin:0;top:50%;margin-top:-55px;padding:0;width:90px;height:110px;-webkit-tap-highlight-color:transparent}.mfp-arrow:active{margin-top:-54px}.mfp-arrow:focus,.mfp-arrow:hover{opacity:1}.mfp-arrow:after,.mfp-arrow:before{content:"";display:block;width:0;height:0;position:absolute;left:0;top:0;margin-top:35px;margin-left:35px;border:medium inset transparent}.mfp-arrow:after{border-top-width:13px;border-bottom-width:13px;top:8px}.mfp-arrow:before{border-top-width:21px;border-bottom-width:21px;opacity:.7}.mfp-arrow-left{left:0}.mfp-arrow-left:after{border-right:17px solid #fff;margin-left:31px}.mfp-arrow-left:before{margin-left:25px;border-right:27px solid #3f3f3f}.mfp-arrow-right{right:0}.mfp-arrow-right:after{border-left:17px solid #fff;margin-left:39px}.mfp-arrow-right:before{border-left:27px solid #3f3f3f}.mfp-iframe-holder{padding-top:40px;padding-bottom:40px}.mfp-iframe-holder .mfp-content{line-height:0;width:100%;max-width:900px}.mfp-iframe-holder .eae-close{top:-40px}.mfp-iframe-scaler{width:100%;height:0;overflow:hidden;padding-top:56.25%}.mfp-iframe-scaler iframe{position:absolute;display:block;top:0;left:0;width:100%;height:100%;box-shadow:0 0 8px rgba(0,0,0,.6);background:#000}img.mfp-img{width:auto;max-width:100%;height:auto;display:block;line-height:0;box-sizing:border-box;padding:40px 0 40px;margin:0 auto}.eae-popup .mfp-figure{line-height:0}.eae-popup .mfp-figure:after{content:"";position:absolute;left:0;top:40px;bottom:40px;display:block;right:0;width:auto;height:auto;z-index:-1;box-shadow:0 0 8px rgba(0,0,0,.6);background:#444}.eae-popup .mfp-figure small{color:#bdbdbd;display:block;font-size:12px;line-height:14px}.eae-popup .mfp-figure figure{margin:0}.eae-popup .mfp-bottom-bar{margin-top:-36px;position:absolute;top:100%;left:0;width:100%;cursor:auto}.eae-popup .mfp-title{text-align:left;line-height:1;word-wrap:break-word;color:#fff;background-color:#4054b2;padding:20px 20px 20px 20px}.eae-popup .mfp-image-holder .mfp-content{max-width:100%}.eae-popup .mfp-gallery .mfp-image-holder .mfp-figure{cursor:pointer}@media screen and (max-width:800px) and (orientation:landscape),screen and (max-height:300px){.mfp-img-mobile .mfp-image-holder{padding-left:0;padding-right:0}.mfp-img-mobile img.mfp-img{padding:0}.mfp-img-mobile .mfp-figure:after{top:0;bottom:0}.mfp-img-mobile .mfp-figure small{display:inline;margin-left:5px}.mfp-img-mobile .mfp-bottom-bar{background:rgba(0,0,0,.6);bottom:0;margin:0;top:auto;padding:3px 5px;position:fixed;box-sizing:border-box}.mfp-img-mobile .mfp-bottom-bar:empty{padding:0}.mfp-img-mobile .mfp-counter{right:5px;top:3px}.mfp-img-mobile .eae-close{top:0;right:0;width:35px;height:35px;line-height:35px;background:rgba(0,0,0,.6);position:fixed;text-align:center;padding:0}}.elementor-element.eae-animated-gradient-yes,.elementor-element.eae-animated-gradient-yes .animated-gradient{background-size:400% 400%!important;-webkit-animation:AnimateGradient 15s ease-in-out infinite;-moz-animation:AnimateGradient 15s ease-in-out infinite;animation:AnimateGradient 15s ease-in-out infinite}.animated-gradient{position:absolute;top:0;left:0;height:100%;width:100%}@-webkit-keyframes AnimateGradient{0%{background-position:0 50%}50%{background-position:100% 50%}100%{background-position:0 50%}}@-moz-keyframes AnimateGradient{0%{background-position:0 50%}50%{background-position:100% 50%}100%{background-position:0 50%}}@keyframes AnimateGradient{0%{background-position:0 50%}50%{background-position:100% 50%}100%{background-position:0 50%}}.eae-swiper-outer-wrapper .swiper-slide{height:auto;overflow:inherit}.eae-swiper-outer-wrapper .swiper-slide-wrapper,.eae-swiper-outer-wrapper .testimonial-wrapper{height:100%}.eae-grid{display:flex;flex-wrap:wrap;flex-direction:row}.eae-masonry- .eae-grid-item{position:relative;height:100%}.eae-masonry- .eae-grid-item .testimonial-wrapper{height:100%}.eae-grid-container{transition:.1s all ease}.eae-grid-container{display:inline-block}.wrapper .content{margin:10px 0}.skin-2.testimonial-wrapper{display:flex;flex-direction:column;background-color:#9c989821;min-height:300px;padding:10px 20px;box-shadow:0 0 5px rgba(0,0,0,.15);color:#696969}.skin-2 .content-wrapper{padding:10px;position:relative;background-color:#fff;border-radius:10px;color:#77778e}.skin-2 i.after-content,.skin-2 i.before-content{position:absolute}.skin-2 i.before-content{top:10px;left:20px}.skin-2 i.after-content{bottom:10px;right:20px}.skin-2 blockquote{position:relative;font-size:14px;padding:10px;font-weight:500;text-align:left;margin:0;line-height:1.6em;font-style:italic}.skin-2 blockquote::after,.skin-2 blockquote::before{font-family:FontAwesome;content:"\201C";position:absolute;font-size:50px;opacity:.3;font-style:normal}.skin-2 blockquote::before{top:10px;left:20px}.skin-2 blockquote::after{content:"\201D";right:20px}.skin-2 .image-wrapper{position:relative;max-width:100%;text-align:center}.skin-2 img{width:100px;border-radius:25%}.skin-2 .detail-wrapper{text-align:center}.skin-2 .company,.skin-2 .designation,.skin-2 .rating-wrapper,.skin-2 .title{padding:5px 0}.skin-2 .rating-wrapper{color:navy}.skin-2 .title{font-weight:800;color:#000}.skin-2 blockquote p{margin:10px 0!important}.skin-1.testimonial-wrapper{display:flex;flex-direction:column;background-color:#fff;box-shadow:0 0 5px rgba(0,0,0,.15);color:#000}.skin-1 .content-wrapper{order:0}.skin-1 .image-wrapper{order:1;text-align:center;margin:15px 0}.skin-1 .detail-wrapper{order:2}.skin-1 .content-wrapper{padding:10px;position:relative}.skin-1 i.after-content,.skin-1 i.before-content{position:absolute}.skin-1 i.before-content{top:10px;left:20px}.skin-1 i.after-content{bottom:10px;right:20px}.skin-1 blockquote{position:relative;background-color:#fff;font-size:14px;padding:10px;font-weight:500;text-align:left;margin:0;line-height:1.6em;font-style:italic}.skin-1 blockquote::after,.skin-1 blockquote::before{font-family:FontAwesome;content:"\201C";position:absolute;font-size:50px;opacity:.3;font-style:normal}.skin-1 blockquote::before{top:10px;left:20px}.skin-1 blockquote::after{content:"\201D";right:20px}.skin-1 .image-wrapper{position:relative;max-width:100%}.skin-1 img{width:100px;height:auto;border-radius:50%}.skin-1 .detail-wrapper{display:flex;flex-direction:row-reverse;justify-content:space-between;padding:10px;background-color:rgba(157,163,156,.18)}.skin-1 .designation,.skin-1 .rating-wrapper,.skin-1 .title{margin:0 5px}.skin-1 .title-wrapper{display:flex;flex-direction:row}.skin-1 .rating-wrapper{color:#fecc1f}.skin-4.testimonial-wrapper{flex-direction:column;display:flex;background-color:#bfbfb6bd;min-height:300px;padding:10px 0;box-shadow:0 0 5px rgba(0,0,0,.15);color:#77778e}.skin-4 .content-wrapper{padding:10px;position:relative}.skin-4 .content-wrapper{order:2;color:#3c3c3c}.skin-4 i.after-content,.skin-4 i.before-content{position:absolute}.skin-4 i.before-content{top:10px;left:20px}.skin-4 i.after-content{bottom:10px;right:20px}.skin-4 blockquote{position:relative;font-size:14px;padding:10px;font-weight:500;text-align:left;margin:0;line-height:1.6em;font-style:italic}.skin-4 blockquote::after,.skin-4 blockquote::before{font-family:FontAwesome;content:"\201C";position:absolute;font-size:50px;opacity:.3;font-style:normal}.skin-4 blockquote::before{top:10px;left:20px}.skin-4 blockquote::after{content:"\201D";right:20px}.skin-4 .image-wrapper{position:relative;max-width:100%;text-align:center}.skin-4 img{width:100px;border-radius:50%}.skin-4 .detail-wrapper{text-align:center}.skin-2 .designation,.skin-2 .title,.skin-4 .rating-wrapper{padding:5px 0}.skin-4 .rating-wrapper{color:#690a69}.skin-4 .title{font-weight:800;color:#000}.skin-3.testimonial-wrapper{display:flex;flex-direction:row;background-color:#9c989821;box-shadow:0 0 5px rgba(0,0,0,.15);color:#000;overflow:hidden}.skin-3 .content-section{display:flex;flex-direction:column;align-self:center}.skin-3 .content-wrapper{padding:10px;position:relative}.skin-2 i.after-content,.skin-3 i.before-content{position:absolute}.skin-3 i.before-content{top:10px;left:20px}.skin-3 i.after-content{bottom:10px;right:20px}.skin-3 blockquote{position:relative;font-size:18px;padding:10px;font-weight:500;text-align:left;margin:0;line-height:1.6em;font-style:italic}.skin-3 blockquote::after,.skin-3 blockquote::before{font-family:FontAwesome;content:"\201C";position:absolute;font-size:50px;opacity:.3;font-style:normal}.skin-3 blockquote::before{top:10px;left:20px}.skin-3 blockquote::after{content:"\201D";right:20px}.skin-3 .image-wrapper{position:relative;max-width:30%;max-height:250px;text-align:center;align-self:center}.skin-3 img{width:100%}.testimonial-wrapper .skin-3 .eae-person-avatar{border-radius:50%}.skin-3 .detail-wrapper{text-align:left;padding-left:20px}.skin-3 .designation,.skin-3 .rating-wrapper,.skin-3 .title{padding:3px 0}.skin-3 .rating-wrapper{color:#800040}.skin-3 .title{font-weight:800}.eae-swiper-outer-wrapper .swiper-button-prev{-webkit-mask:url(arrow-left.svg) no-repeat 100% 100%;mask:url(arrow-left.svg) no-repeat 100% 100%;-webkit-mask-size:cover;mask-size:cover;background-image:none;background-color:#007aff;transform:translateY(-50%);margin-top:0}.eae-swiper-outer-wrapper .swiper-container-rtl .swiper-button-prev{-webkit-mask:url(arrow-right.svg) no-repeat 100% 100%;mask:url(arrow-right.svg) no-repeat 100% 100%}.eae-swiper-outer-wrapper .swiper-button-next{-webkit-mask:url(arrow-right.svg) no-repeat 100% 100%;mask:url(arrow-right.svg) no-repeat 100% 100%;-webkit-mask-size:cover;mask-size:cover;background-image:none;background-color:#007aff;transform:translateY(-50%);margin-top:0}.eae-swiper-outer-wrapper .swiper-container-rtl .swiper-button-next{-webkit-mask:url(arrow-left.svg) no-repeat 100% 100%;mask:url(arrow-left.svg) no-repeat 100% 100%}.elementor-widget-wts-testimonial-slider .eae-swiper-outer-wrapper .swiper-button-next,.elementor-widget-wts-testimonial-slider .eae-swiper-outer-wrapper .swiper-button-prev{-webkit-mask:none;mask:none;-webkit-mask-size:unset;mask-size:unset;background-image:none;background-color:unset;width:auto;height:auto;transform:translateY(-50%);margin-top:0}.swiper-container .swiper-button-next i,.swiper-container .swiper-button-prev i{width:1em;height:1em;text-align:center;position:relative}.elementor-widget-wts-testimonial-slider .eae-swiper-outer-wrapper .eae-swiper-button-wrapper{position:absolute;height:auto;line-height:0}.eae-hpos-right.eae-vpos-top .eae-swiper-button-wrapper{bottom:auto;top:0;width:auto;right:0}.eae-vpos-top.eae-hpos-left .eae-swiper-button-wrapper{bottom:auto;top:0;width:auto;left:0}.eeae-hpos-right.eae-vpos-bottom .eae-swiper-button-wrapper{bottom:0;top:auto;width:auto;right:0}.eae-vpos-bottom.eae-hpos-left .eae-swiper-button-wrapper{bottom:0;top:auto;width:auto;left:0}.eae-hpos-right.eae-vpos-middle .eae-swiper-button-wrapper{bottom:auto;top:50%;width:auto;right:0}.eae-hpos-left.eae-vpos-middle .eae-swiper-button-wrapper{bottom:auto;top:50%;width:auto;left:0}.eae-hpos-left .swiper-button-next,.eae-hpos-left .swiper-button-prev,.eae-hpos-right .swiper-button-next,.eae-hpos-right .swiper-button-prev{position:relative;display:inline-block;right:auto;left:auto}.eae-hpos-right.eae-vpos-bottom .swiper-button-next,.eae-hpos-right.eae-vpos-bottom .swiper-button-prev{top:auto;bottom:0;transform:unset}.eae-hpos-right.eae-vpos-top .swiper-button-next,.eae-hpos-right.eae-vpos-top .swiper-button-prev{top:0;bottom:auto;transform:unset}.eae-hpos-left.eae-vpos-top .swiper-button-next,.eae-hpos-left.eae-vpos-top .swiper-button-prev{top:0;bottom:auto;transform:unset}.eae-hpos-left.eae-vpos-bottom .swiper-button-next,.eae-hpos-left.eae-vpos-bottom .swiper-button-prev{top:auto;bottom:0;transform:unset}.eae-hpos-center.eae-vpos-bottom .swiper-button-next,.eae-hpos-center.eae-vpos-bottom .swiper-button-prev{top:auto;bottom:0;transform:unset}.eae-hpos-center.eae-vpos-top .swiper-button-next,.eae-hpos-center.eae-vpos-top .swiper-button-prev{top:0;bottom:auto;transform:unset}@media all and (max-width:900px){.mfp-arrow{-webkit-transform:scale(.75);transform:scale(.75)}.mfp-arrow-left{-webkit-transform-origin:0;transform-origin:0}.mfp-arrow-right{-webkit-transform-origin:100%;transform-origin:100%}.mfp-container{padding-left:6px;padding-right:6px}}.eae-info-circle{position:relative;width:90%;margin:0 auto;border-radius:50%;display:block}.eae-info-circle:before{content:"";display:block;position:absolute;top:4%;left:4%;width:92%;height:92%;border-radius:50%;z-index:1;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;pointer-events:none}.eae-info-circle:after{content:"";display:block;padding-top:100%}.eae-info-circle .eae-ic-icon-wrap{position:absolute;display:inline-block;top:50%;left:50%;z-index:2;line-height:1em;vertical-align:middle;overflow:hidden;max-width:100%}.eae-info-circle .eae-info-circle-item{top:0;left:0;width:100%;height:100%;display:block}.eae-info-circle .eae-info-circle-item.eae-active .eae-info-circle-item__content-wrap{visibility:visible;opacity:1;display:flex}.eae-info-circle .eae-info-circle-item__content-wrap{visibility:visible;display:none;height:91%;width:91%;opacity:0;top:50%;transform:translateY(-50%) translateX(-50%);position:absolute;left:50%;border-radius:50%;overflow:hidden;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.eae-info-circle .eae-info-circle-item__content-wrap:before{content:"";display:inline-block;height:100%;vertical-align:middle}.eae-info-circle .eae-info-circle-item__content{display:inline-block;top:50%;transform:translateY(-50%) translateX(-50%);position:absolute;left:50%;vertical-align:middle;z-index:1;max-height:100%;overflow:auto;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;text-align:center;width:75%}@media screen and (max-width:767px){.eae-info-circle.eae-info-circle .eae-info-circle-item__content-wrap:before{display:none}.eae-info-circle:after,.eae-info-circle:before{display:none}.eae-info-circle{width:100%!important}.eae-info-circle-wrapper:after,.eae-info-circle-wrapper:before{display:none}.eae-info-circle .eae-ic-icon-wrap{display:block;text-align:center;position:relative!important;left:unset!important;margin-left:0!important;margin-top:0!important;margin-bottom:10px}.eae-info-circle-item{position:relative!important;border-radius:0!important;padding:0;margin:10px 0}.eae-info-circle .eae-info-circle-item__content-wrap{visibility:visible;opacity:1!important;display:flex!important;border-radius:0!important;border:none!important;margin:0!important;padding-right:0!important;padding-left:0!important;padding-bottom:0!important;width:100%;height:auto;line-height:1.5em;position:relative;top:unset;left:unset;transform:unset}.eae-info-circle .eae-info-circle-item__content{position:relative;top:unset;left:unset;transform:unset;width:100%;padding:10px}}.eae-icon-wrap i{height:1.25em;width:1.25em;line-height:1.25em;display:block}.eae-icon-wrap i img{top:50%;left:50%;transform:translateX(-50%) translateY(-50%);position:absolute}.eae-icon{display:inline-block;text-align:center;vertical-align:middle;max-width:100%;overflow:hidden;padding:10px}.eae-icon-shape-circle:not(.elementor-element){border-radius:50%}.eae-icon-view-framed:not(.elementor-element){border-width:1px;border-style:solid}.eae-icon-wrapper{display:flex}.eae-icon-wrapper .eae-icon{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);line-height:1}.eae-timeline{position:relative;display:inline-block;width:100%}.eae-timline-progress-bar{width:4px;background-color:#f45b69;top:0;bottom:50px;position:absolute;transform:translateX(-50%)}.eae-timeline-item{position:relative;display:flex;flex-direction:row;padding-bottom:50px}.eae-timeline-item:last-child{padding-bottom:0!important}.eae-tl-top .eae-timeline-item{align-items:flex-start}.eae-tl-top .eae-tl-item-content::before{top:10px}.eae-timeline-item.image-position-row .eae-tl-item-image,.eae-timeline-item.image-position-row-reverse .eae-tl-item-image{margin-top:0;margin-bottom:0}.eae-tl-item-meta-wrapper-inner{display:none}.eae-tl-bottom .eae-timeline-item{align-items:flex-end}.eae-tl-bottom .eae-tl-item-content::before{bottom:10px}.eae-tl-center .eae-timeline-item{align-items:center}.eae-tl-center .eae-tl-item-content::before{bottom:calc(50% - 5px)}.eae-layout-center .eae-timline-progress-bar{left:50%}.eae-layout-center .eae-timeline-item:nth-child(odd){flex-direction:row-reverse}.eae-layout-center .eae-timeline-item:nth-child(odd) .eae-tl-item-meta-wrapper{margin-right:0;margin-left:0;justify-content:flex-start}body.rtl[data-elementor-device-mode=tablet] .eae-layout-center .eae-timeline-item:nth-child(even) .eae-tl-content-wrapper,body:not(.rtl)[data-elementor-device-mode=tablet] .eae-layout-center .eae-timeline-item:nth-child(odd) .eae-tl-content-wrapper{padding-right:20px;padding-left:0}body.rtl[data-elementor-device-mode=tablet] .eae-layout-center .eae-timeline-item:nth-child(odd) .eae-tl-content-wrapper,body:not(.rtl)[data-elementor-device-mode=tablet] .eae-layout-center .eae-timeline-item:nth-child(even) .eae-tl-content-wrapper{padding-right:0;padding-left:20px}body:not(.rtl) .eae-layout-left .eae-tl-content-wrapper{padding-right:10px;padding-left:20px}body.rtl .eae-layout-left .eae-tl-content-wrapper{padding-right:20px;padding-left:10px}.eae-layout-left .eae-timline-progress-bar{display:none}.eae-layout-left .eae-tl-item-meta-wrapper{display:none}.eae-layout-left .eae-tl-item-meta-wrapper-inner{display:block}.eae-layout-right .eae-timline-progress-bar{display:none}body:not(.rtl) .eae-layout-right .eae-tl-content-wrapper{padding-right:20px;padding-left:10px}body.rtl .eae-layout-right .eae-tl-content-wrapper{padding-right:10px;padding-left:20px}.eae-layout-right .eae-tl-icon-wrapper{order:3}.eae-layout-right .eae-tl-item-meta-wrapper{display:none}.eae-layout-right .eae-tl-item-meta-wrapper-inner{display:block}.eae-tl-item-meta-wrapper{flex-grow:1;order:0;flex-basis:50%;flex-direction:initial;justify-content:flex-end;display:flex;align-items:center;margin-right:0}.eae-tl-item-meta{padding:0 20px}.eae-tl-icon-wrapper{height:auto;width:auto;flex-grow:0;flex-shrink:0;order:1;margin-left:0;margin-right:0;min-width:10px;min-height:10px;border-radius:999px;position:relative;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.eae-tl-content-wrapper{flex-grow:1;order:2;flex-basis:50%;position:relative;padding-right:0;padding-left:20px}.eae-tl-item-content{background:#f4f4f4;padding:25px;overflow:hidden;text-align:center;display:flex;flex-direction:row}.eae-tl-content{display:inline-block;position:relative;padding:10px;width:100%;color:#000}.eae-timeline-item.custom-image-style-yes.image-position-row .eae-content-inner,.eae-timeline-item.custom-image-style-yes.image-position-row-reverse .eae-content-inner,.image-position-row .eae-timeline .eae-timeline-item:not(.custom-image-style-yes) .eae-content-inner,.image-position-row-reverse .eae-timeline .eae-timeline-item:not(.custom-image-style-yes) .eae-content-inner{position:relative;left:50%;top:50%;transform:translate(-50%,-50%);line-height:1;width:100%}.custom-image-style-.image-position-row .eae-content-inner,.custom-image-style-.image-position-row-reverse .eae-content-inner,.custom-image-style-no.image-position-row .eae-content-inner,.custom-image-style-no.image-position-row-reverse .eae-content-inner{left:unset;top:unset;transform:unset}.eae-tl-item-image{display:inline-block}.image-position-row .eae-tl-item-image img,.image-position-row-reverse .eae-tl-item-image img{object-fit:cover;height:100%!important}.image-position-row .eae-tl-item-image,.image-position-row-reverse .eae-tl-item-image{margin:0}.image-position-column .eae-tl-item-image{margin:auto}.custom-image-style-.image-position-column .eae-tl-item-image,.custom-image-style-no.image-position-column .eae-tl-item-image{margin:0 auto}.eae-pb-inner-line{width:100%;background-color:#3d5ac3}.eae-tl-item-content::before{content:"";position:absolute;width:0;height:0;border-style:solid;border-width:8px 16px 8px 0;border-color:transparent #f4f4f4 transparent transparent}.eae-icon-wrapper{display:flex}.elementor-widget-bpel-timeline .eae-icon-wrapper{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);line-height:1}.eae-tl-read-more{display:inline-block;padding:5px;border:2px solid #000}.image-position-row .eae-timeline.eae-timeline-alternate-yes .eae-timeline-item:nth-child(odd):not(.custom-image-style-yes) .eae-tl-item-content{flex-direction:row-reverse!important}.image-position-row-reverse .eae-timeline.eae-timeline-alternate-yes .eae-timeline-item:nth-child(odd):not(.custom-image-style-yes) .eae-tl-item-content{flex-direction:row!important}@media screen and (min-width:1024px){.eae-layout-center .eae-timeline-item:nth-child(odd) .eae-tl-content-wrapper,body.rtl .eae-layout-center .eae-timeline-item:nth-child(even) .eae-tl-content-wrapper{padding-right:20px;padding-left:0}.eae-layout-center .eae-timeline-item:nth-child(even) .eae-tl-content-wrapper,body.rtl .eae-layout-center .eae-timeline-item:nth-child(odd) .eae-tl-content-wrapper{padding-right:0;padding-left:20px}.eae-layout-center .eae-timeline-item:nth-child(odd) .eae-tl-item-content::before,.eae-layout-right .eae-tl-item-content::before,body.rtl .eae-layout-center .eae-timeline-item:nth-child(even) .eae-tl-item-content::before,body.rtl .eae-layout-left .eae-tl-item-content::before{right:4px;left:unset;border-width:8px 0 8px 16px;border-color:transparent transparent transparent #f4f4f4}.eae-layout-center .eae-timeline-item:nth-child(even) .eae-tl-item-content::before,.eae-layout-left .eae-tl-item-content::before,body.rtl .eae-layout-center .eae-timeline-item:nth-child(odd) .eae-tl-item-content::before,body.rtl .eae-layout-right .eae-tl-item-content::before{left:4px;right:unset;border-width:8px 16px 8px 0;border-color:transparent #f4f4f4 transparent transparent}}@media screen and (max-width:1023px) and (min-width:768px){.image-position-row .eae-timeline.eae-timeline-alternate-yes .eae-timeline-item:nth-child(odd):not(.custom-image-style-yes) .eae-tl-item-content{flex-direction:row-reverse!important}.image-position-row-reverse .eae-timeline.eae-timeline-alternate-yes .eae-timeline-item:nth-child(odd):not(.custom-image-style-yes) .eae-tl-item-content{flex-direction:row!important}.eae-tl-res-style-mobile-tablet .eae-tl-item-meta-wrapper{display:none}.eae-tl-res-style-mobile-tablet .eae-tl-item-meta-wrapper-inner{display:block}.eae-tl-res-style-mobile-tablet.eae-tl-res-layout-left .eae-timeline-item{flex-direction:row!important}.eae-tl-res-style-mobile-tablet.eae-tl-res-layout-right .eae-timeline-item{flex-direction:row-reverse!important}.eae-layout-center.eae-tl-res-style-mobile-tablet.eae-tl-res-layout-left .eae-timeline-item .eae-tl-item-content::before,.eae-timeline.eae-layout-center.eae-tl-res-style-mobile .eae-timeline-item:nth-child(even) .eae-tl-item-content::before,body.rtl .eae-layout-center.eae-tl-res-style-mobile-tablet.eae-tl-res-layout-right .eae-timeline-item .eae-tl-item-content::before,body.rtl .eae-layout-right .eae-timeline-item .eae-tl-item-content::before,body.rtl .eae-layout-right .eae-tl-item-content::before,body.rtl .eae-timeline.eae-layout-center.eae-tl-res-style-mobile .eae-timeline-item:nth-child(odd) .eae-tl-item-content::before,body:not(.rtl) .eae-layout-left .eae-timeline-item .eae-tl-item-content::before,body:not(.rtl) .eae-layout-left .eae-tl-item-content::before{left:4px!important;border-width:8px 16px 8px 0!important;border-color:transparent #f4f4f4 transparent transparent!important}body.rtl .eae-timeline.eae-layout-center.eae-tl-res-style-mobile .eae-timeline-item:nth-child(odd) .eae-tl-item-content::before{left:4px!important;right:unset!important;border-width:8px 16px 8px 0!important;border-color:transparent #f4f4f4 transparent transparent!important}.eae-timeline.eae-layout-center.eae-tl-res-style-mobile .eae-timeline-item:nth-child(odd) .eae-tl-item-content::before,body.rtl .eae-layout-center.eae-tl-res-style-mobile-tablet.eae-tl-res-layout-left .eae-timeline-item .eae-tl-item-content::before,body.rtl .eae-layout-left .eae-timeline-item .eae-tl-item-content::before,body.rtl .eae-layout-left .eae-tl-item-content::before,body.rtl .eae-timeline.eae-layout-center.eae-tl-res-style-mobile .eae-timeline-item:nth-child(even) .eae-tl-item-content::before,body:not(.rtl) .eae-layout-center.eae-tl-res-style-mobile-tablet.eae-tl-res-layout-right .eae-timeline-item .eae-tl-item-content::before,body:not(.rtl) .eae-layout-right .eae-timeline-item .eae-tl-item-content::before,body:not(.rtl) .eae-layout-right .eae-tl-item-content::before,body:not(.rtl) .eae-tl-res-style-mobile-tablet.eae-tl-res-layout-right .eae-timeline-item .eae-tl-item-content::before{right:4px!important;border-width:8px 0 8px 16px!important;border-color:transparent transparent transparent #f4f4f4!important}.eae-tl-res-style-mobile-tablet.eae-layout-center.eae-tl-res-layout-left .eae-timeline-item .eae-tl-content-wrapper,body.rtl .eae-tl-res-style-mobile-tablet.eae-layout-center.eae-tl-res-layout-right .eae-timeline-item .eae-tl-content-wrapper{padding-right:0!important;padding-left:20px!important}.eae-tl-res-style-mobile-tablet.eae-layout-center.eae-tl-res-layout-right .eae-timeline-item .eae-tl-content-wrapper,body.rtl .eae-tl-res-style-mobile-tablet.eae-layout-center.eae-tl-res-layout-left .eae-timeline-item .eae-tl-content-wrapper{padding-right:20px!important;padding-left:0!important}.eae-tl-res-style-mobile-tablet.eae-layout-center.eae-tl-res-layout-left .eae-timline-progress-bar{left:13px}.eae-tl-res-style-mobile-tablet.eae-layout-center.eae-tl-res-layout-right .eae-timline-progress-bar{left:calc(100% - 13px)}}@media screen and (max-width:767px){.eae-tl-item-meta-wrapper{display:none}.eae-tl-item-meta-wrapper-inner{display:block}.elementor-widget-bpel-timeline:not(.image-position-column) .eae-timeline .eae-tl-item-content{flex-direction:column-reverse!important}.eae-tl-item-image,.elementor-widget-bpel-timeline:not(.image-position-column) .eae-tl-content{width:100%!important}.eae-tl-res-style-mobile-tablet.eae-tl-res-layout-left .eae-timeline-item,.eae-tl-res-style-mobile.eae-tl-res-layout-left .eae-timeline-item{flex-direction:row!important}.eae-tl-res-style-mobile-tablet.eae-tl-res-layout-right .eae-timeline-item,.eae-tl-res-style-mobile.eae-tl-res-layout-right .eae-timeline-item{flex-direction:row-reverse!important}.eae-timeline.eae-layout-center.eae-tl-center.eae-tl-res-style-mobile-tablet.eae-tl-res-layout-left .eae-timeline-item:nth-child(odd) .eae-tl-item-content::before,.eae-timeline.eae-layout-center.eae-tl-center.eae-tl-res-style-mobile.eae-tl-res-layout-left .eae-timeline-item:nth-child(odd) .eae-tl-item-content::before,body.rtl .eae-timeline.eae-layout-right .eae-timeline-item .eae-tl-item-content::before,body.rtl .eae-timeline.eae-tl-res-style-mobile.eae-tl-res-layout-right .eae-timeline-item .eae-tl-item-content::before,body:not(.rtl) .eae-layout-left .eae-timeline-item .eae-tl-item-content::before,body:not(.rtl) .eae-tl-res-style-mobile-tablet.eae-tl-res-layout-left .eae-timeline-item .eae-tl-item-content::before,body:not(.rtl) .eae-tl-res-style-mobile.eae-tl-res-layout-left .eae-timeline-item .eae-tl-item-content::before{left:4px!important;border-width:8px 16px 8px 0!important;border-color:transparent #f4f4f4 transparent transparent!important}body.rtl .eae-layout-left .eae-timeline-item .eae-tl-item-content::before,body.rtl .eae-tl-res-style-mobile.eae-tl-res-layout-left .eae-timeline-item .eae-tl-item-content::before,body:not(.rtl) .eae-layout-right .eae-timeline-item .eae-tl-item-content::before,body:not(.rtl) .eae-tl-res-style-mobile-tablet.eae-tl-res-layout-right .eae-timeline-item .eae-tl-item-content::before,body:not(.rtl) .eae-tl-res-style-mobile.eae-tl-res-layout-right .eae-timeline-item .eae-tl-item-content::before{right:4px!important;border-width:8px 0 8px 16px!important;border-color:transparent transparent transparent #f4f4f4!important}.eae-timeline.eae-tl-res-style-mobile-tablet.eae-layout-center.eae-tl-res-layout-right .eae-timeline-item .eae-tl-content-wrapper,body:not(.rtl) .eae-tl-res-style-mobile-tablet.eae-layout-center.eae-tl-res-layout-left .eae-timeline-item .eae-tl-content-wrapper body.rtl .eae-timeline.eae-tl-res-style-mobile.eae-layout-center.eae-tl-res-layout-right .eae-timeline-item .eae-tl-content-wrapper,body:not(.rtl) .eae-tl-res-style-mobile.eae-layout-center.eae-tl-res-layout-left .eae-timeline-item .eae-tl-content-wrapper{padding-right:0!important;padding-left:20px!important}body.rtl .eae-tl-res-style-mobile-tablet.eae-layout-center.eae-tl-res-layout-left .eae-timeline-item .eae-tl-content-wrapper,body.rtl .eae-tl-res-style-mobile.eae-layout-center.eae-tl-res-layout-left .eae-timeline-item .eae-tl-content-wrapper,body:not(.rtl) .eae-tl-res-style-mobile-tablet.eae-layout-center.eae-tl-res-layout-right .eae-timeline-item .eae-tl-content-wrapper,body:not(.rtl) .eae-tl-res-style-mobile.eae-layout-center.eae-tl-res-layout-right .eae-timeline-item .eae-tl-content-wrapper{padding-right:20px!important;padding-left:0!important}.eae-tl-res-style-mobile-tablet.eae-layout-center.eae-tl-res-layout-left .eae-timline-progress-bar,.eae-tl-res-style-mobile.eae-layout-center.eae-tl-res-layout-left .eae-timline-progress-bar{left:13px}.eae-tl-res-style-mobile-tablet.eae-layout-center.eae-tl-res-layout-right .eae-timline-progress-bar,.eae-tl-res-style-mobile.eae-layout-center.eae-tl-res-layout-right .eae-timline-progress-bar{left:calc(100% - 13px)}body.rtl .eae-layout-center.eae-timeline.eae-tl-res-style-mobile-tablet.eae-tl-res-layout-right .eae-timeline-item .eae-tl-content-wrapper .eae-tl-item-content::before{left:4px;right:unset}body.rtl .eae-layout-center.eae-timeline.eae-tl-res-style-mobile-tablet.eae-tl-res-layout-left .eae-timeline-item .eae-tl-content-wrapper .eae-tl-item-content::before{left:unset;right:4px;border-width:8px 0 8px 16px!important;border-color:transparent transparent transparent #f4f4f4!important}}[data-element_type="eae-evergreen-timer.skin1"] .eae-evergreen-wrapper{display:block;text-align:center}[data-element_type="eae-evergreen-timer.skin1"] #eaeclockdiv{font-family:sans-serif;color:#fff;display:inline-block;font-weight:100;text-align:center;font-size:30px}[data-element_type="eae-evergreen-timer.skin1"] .eae-time-wrapper{padding:10px;border-radius:3px;background:#00bf96;display:inline-block;overflow:hidden}[data-element_type="eae-evergreen-timer.skin1"] #eaeclockdiv div>span{padding:15px;width:100%;background:#00816a;display:inline-block}[data-element_type="eae-evergreen-timer.skin1"] .smalltext{padding:7px;font-size:16px}[data-element_type="eae-evergreen-timer.skin1"] .eae-egt-hide{display:none}.eae-egt-message{display:none}@media screen and (max-width:767px){[data-element_type="eae-evergreen-timer.skin1"] #eaeclockdiv div>span{padding:5px}[data-element_type="eae-evergreen-timer.skin1"] .eae-time-wrapper{padding:5px}}[data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;-o-box-sizing:border-box;box-sizing:border-box;-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;-ms-backface-visibility:hidden;-o-backface-visibility:hidden;backface-visibility:hidden}[data-element_type="eae-evergreen-timer.skin2"] .eae-evergreen-wrapper{display:inline-block;width:100%;text-align:center;margin:auto}[data-element_type="eae-evergreen-timer.skin2"] .timer-container{display:inline-block}[data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper a{cursor:pointer;text-decoration:none;color:#ccc}[data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper a:hover{color:#fff}[data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper ul{list-style:none}[data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper.clearfix:after,[data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper.clearfix:before{content:" ";display:table}[data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper.clearfix:after{clear:both}[data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper{font:normal 11px "Helvetica Neue",Helvetica,sans-serif;-webkit-user-select:none}[data-element_type="eae-evergreen-timer.skin2"] .flip-clock-meridium{background:0 0!important;box-shadow:0 0 0!important;font-size:36px!important}[data-element_type="eae-evergreen-timer.skin2"] .flip-clock-meridium a{color:#313333}[data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper{text-align:center;position:relative;width:100%;margin:1em}[data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper:after,[data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper:before{content:" ";display:table}[data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper:after{clear:both}[data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper ul{position:relative;float:left;margin:5px;width:60px;height:90px;font-size:80px;font-weight:700;line-height:87px;border-radius:6px;background:#000}[data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper ul li{z-index:1;position:absolute;left:0;top:0;width:100%;height:100%;line-height:87px;text-decoration:none!important}[data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper ul li:first-child{z-index:2}[data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper ul li a{display:block;height:100%;-webkit-perspective:200px;-moz-perspective:200px;perspective:200px;margin:0!important;overflow:visible!important;cursor:default!important}[data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper ul li a div{z-index:1;position:absolute;left:0;width:100%;height:50%;font-size:80px;overflow:hidden;outline:1px solid transparent}[data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper ul li a div .shadow{position:absolute;width:100%;height:100%;z-index:2}[data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper ul li a div.up{-webkit-transform-origin:50% 100%;-moz-transform-origin:50% 100%;-ms-transform-origin:50% 100%;-o-transform-origin:50% 100%;transform-origin:50% 100%;top:0}[data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper ul li a div.up:after{content:"";position:absolute;top:44px;left:0;z-index:5;width:100%;height:3px;background-color:#000;background-color:rgba(0,0,0,.4)}[data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper ul li a div.down{-webkit-transform-origin:50% 0;-moz-transform-origin:50% 0;-ms-transform-origin:50% 0;-o-transform-origin:50% 0;transform-origin:50% 0;bottom:0;border-bottom-left-radius:6px;border-bottom-right-radius:6px}[data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper ul li a div div.inn{position:absolute;left:0;z-index:1;width:100%;height:200%;color:#ccc;text-shadow:0 1px 2px #000;text-align:center;background-color:#333;border-radius:6px;font-size:70px}[data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper ul li a div.up div.inn{top:0}[data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper ul li a div.down div.inn{bottom:0}[data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper ul.play li.flip-clock-before{z-index:3}[data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper .flip{box-shadow:0 2px 5px rgba(0,0,0,.7)}[data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper ul.play li.flip-clock-active{-webkit-animation:asd 10ms .49s linear both;-moz-animation:asd 10ms .49s linear both;animation:asd 10ms .49s linear both;z-index:5}[data-element_type="eae-evergreen-timer.skin2"] .flip-clock-divider{float:left;display:inline-block;position:relative;width:20px;height:100px}[data-element_type="eae-evergreen-timer.skin2"] .flip-clock-divider:first-child{width:0}[data-element_type="eae-evergreen-timer.skin2"] .flip-clock-dot{display:block;background:#323434;width:10px;height:10px;position:absolute;border-radius:50%;box-shadow:0 0 5px rgba(0,0,0,.5);left:5px}[data-element_type="eae-evergreen-timer.skin2"] .flip-clock-divider .flip-clock-label{position:absolute;top:-1.5em;right:-86px;color:#000;text-shadow:none}[data-element_type="eae-evergreen-timer.skin2"] .flip-clock-divider.minutes .flip-clock-label{right:-88px}[data-element_type="eae-evergreen-timer.skin2"] .flip-clock-divider.seconds .flip-clock-label{right:-91px}[data-element_type="eae-evergreen-timer.skin2"] .flip-clock-dot.top{top:30%}[data-element_type="eae-evergreen-timer.skin2"] .flip-clock-dot.bottom{bottom:30%}@-webkit-keyframes asd{0%{z-index:2}100%{z-index:4}}@-moz-keyframes asd{0%{z-index:2}100%{z-index:4}}@-o-keyframes asd{0%{z-index:2}100%{z-index:4}}@keyframes asd{0%{z-index:2}100%{z-index:4}}[data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper ul.play li.flip-clock-active .down{z-index:2;-webkit-animation:turn .5s .5s linear both;-moz-animation:turn .5s .5s linear both;animation:turn .5s .5s linear both}@-webkit-keyframes turn{0%{-webkit-transform:rotateX(90deg)}100%{-webkit-transform:rotateX(0)}}@-moz-keyframes turn{0%{-moz-transform:rotateX(90deg)}100%{-moz-transform:rotateX(0)}}@-o-keyframes turn{0%{-o-transform:rotateX(90deg)}100%{-o-transform:rotateX(0)}}@keyframes turn{0%{transform:rotateX(90deg)}100%{transform:rotateX(0)}}[data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper ul.play li.flip-clock-before .up{z-index:2;-webkit-animation:turn2 .5s linear both;-moz-animation:turn2 .5s linear both;animation:turn2 .5s linear both}@-webkit-keyframes turn2{0%{-webkit-transform:rotateX(0)}100%{-webkit-transform:rotateX(-90deg)}}@-moz-keyframes turn2{0%{-moz-transform:rotateX(0)}100%{-moz-transform:rotateX(-90deg)}}@-o-keyframes turn2{0%{-o-transform:rotateX(0)}100%{-o-transform:rotateX(-90deg)}}@keyframes turn2{0%{transform:rotateX(0)}100%{transform:rotateX(-90deg)}}[data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper ul li.flip-clock-active{z-index:3}[data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper ul.play li.flip-clock-before .up .shadow{background:-moz-linear-gradient(top,rgba(0,0,0,.1) 0,#000 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,rgba(0,0,0,.1)),color-stop(100%,#000));background:linear,top,rgba(0,0,0,.1) 0,#000 100%;background:-o-linear-gradient(top,rgba(0,0,0,.1) 0,#000 100%);background:-ms-linear-gradient(top,rgba(0,0,0,.1) 0,#000 100%);background:linear,to bottom,rgba(0,0,0,.1) 0,#000 100%;-webkit-animation:show .5s linear both;-moz-animation:show .5s linear both;animation:show .5s linear both}[data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper ul.play li.flip-clock-active .up .shadow{background:-moz-linear-gradient(top,rgba(0,0,0,.1) 0,#000 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,rgba(0,0,0,.1)),color-stop(100%,#000));background:linear,top,rgba(0,0,0,.1) 0,#000 100%;background:-o-linear-gradient(top,rgba(0,0,0,.1) 0,#000 100%);background:-ms-linear-gradient(top,rgba(0,0,0,.1) 0,#000 100%);background:linear,to bottom,rgba(0,0,0,.1) 0,#000 100%;-webkit-animation:hide .5s .3s linear both;-moz-animation:hide .5s .3s linear both;animation:hide .5s .3s linear both}[data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper ul.play li.flip-clock-before .down .shadow{background:-moz-linear-gradient(top,#000 0,rgba(0,0,0,.1) 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#000),color-stop(100%,rgba(0,0,0,.1)));background:linear,top,#000 0,rgba(0,0,0,.1) 100%;background:-o-linear-gradient(top,#000 0,rgba(0,0,0,.1) 100%);background:-ms-linear-gradient(top,#000 0,rgba(0,0,0,.1) 100%);background:linear,to bottom,#000 0,rgba(0,0,0,.1) 100%;-webkit-animation:show .5s linear both;-moz-animation:show .5s linear both;animation:show .5s linear both}[data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper ul.play li.flip-clock-active .down .shadow{background:-moz-linear-gradient(top,#000 0,rgba(0,0,0,.1) 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#000),color-stop(100%,rgba(0,0,0,.1)));background:linear,top,#000 0,rgba(0,0,0,.1) 100%;background:-o-linear-gradient(top,#000 0,rgba(0,0,0,.1) 100%);background:-ms-linear-gradient(top,#000 0,rgba(0,0,0,.1) 100%);background:linear,to bottom,#000 0,rgba(0,0,0,.1) 100%;-webkit-animation:hide .5s .3s linear both;-moz-animation:hide .5s .3s linear both;animation:hide .5s .2s linear both}@-webkit-keyframes show{0%{opacity:0}100%{opacity:1}}@-moz-keyframes show{0%{opacity:0}100%{opacity:1}}@-o-keyframes show{0%{opacity:0}100%{opacity:1}}@keyframes show{0%{opacity:0}100%{opacity:1}}@-webkit-keyframes hide{0%{opacity:1}100%{opacity:0}}@-moz-keyframes hide{0%{opacity:1}100%{opacity:0}}@-o-keyframes hide{0%{opacity:1}100%{opacity:0}}@keyframes hide{0%{opacity:1}100%{opacity:0}}@media screen and (max-width:767px){[data-element_type="eae-evergreen-timer.skin2"] .flip-clock-divider{width:15px}[data-element_type="eae-evergreen-timer.skin2"] .flip-clock-dot{height:5px;width:5px}[data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper ul{height:40px}[data-element_type="eae-evergreen-timer.skin2"] .flip-clock-divider{height:50px}[data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper ul li{line-height:37px}[data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper ul li a div div.inn{font-size:24px}[data-element_type="eae-evergreen-timer.skin2"] .eae-flip-clock-wrapper ul{margin:2px}}[data-element_type="eae-evergreen-timer.skin3"] #timer{font-family:sans-serif;color:#fff;display:inline-block;font-weight:100;text-align:center;font-size:30px}[data-element_type="eae-evergreen-timer.skin3"] .desc{display:flex;justify-content:center}[data-element_type="eae-evergreen-timer.skin3"].eae-egt-content-align-right .desc{justify-content:flex-end}[data-element_type="eae-evergreen-timer.skin3"].eae-egt-content-align-left .desc{justify-content:flex-start}[data-element_type="eae-evergreen-timer.skin3"] .desc .egt-time-text{display:inline-block;padding:0 50px 0 50px}[data-element_type="eae-evergreen-timer.skin3"] .eae-time-wrapper{padding:50px;border-radius:3px;background:#00bf96;display:inline-block;overflow:hidden;margin:5px;line-height:1em}[data-element_type="eae-evergreen-timer.skin3"] #timer span:nth-child(1){background:khaki}[data-element_type="eae-evergreen-timer.skin3"] #timer span:nth-child(2){background:#cd5c5c}[data-element_type="eae-evergreen-timer.skin3"] #timer span:nth-child(3){background:#5f9ea0}[data-element_type="eae-evergreen-timer.skin3"] #timer span:nth-child(4){background:#6495ed}[data-element_type="eae-evergreen-timer.skin3"] .fade{animation:flip .7s ease forwards}@keyframes flip{0%{transform:rotateY(0) scaleY(1.1);opacity:.5}50%{transform:rotateY(180deg) scaleY(1.3);opacity:0}100%{transform:rotateY(0);opacity:1}}@media screen and (max-width:767px){[data-element_type="eae-evergreen-timer.skin3"] #timer span{font-size:22px}[data-element_type="eae-evergreen-timer.skin2"] .flip-clock-divider .flip-clock-label{top:-1.5em;right:-42px}[data-element_type="eae-evergreen-timer.skin2"] .flip-clock-divider.minutes .flip-clock-label{right:-48px}[data-element_type="eae-evergreen-timer.skin2"] .flip-clock-divider.seconds .flip-clock-label{right:-51px}}[data-element_type="eae-evergreen-timer.skin4"] .eae-evergreen-wrapper{width:100%}[data-element_type="eae-evergreen-timer.skin4"] .container{margin:0 auto}[data-element_type="eae-evergreen-timer.skin4"] .special{position:relative;width:840px;height:47px}[data-element_type="eae-evergreen-timer.skin4"] #counter{position:absolute;z-index:4000}[data-element_type="eae-evergreen-timer.skin4"] .digit-separator{position:relative;float:left;width:17px;height:44px;overflow:hidden;background-image:url(../digit-sep-svg.svg);background-repeat:no-repeat;background-position:0 0;background-color:#4054b2}[data-element_type="eae-evergreen-timer.skin4"] .digit{background-image:url(../digits-svg-alpha.svg);background-color:#4054b2}.eae-ct-wrapper *{box-sizing:border-box;margin:0;outline:0}article.eae-ct-wrapper{width:100%;max-width:1000px;margin:0 auto;position:relative}.eae-ct-wrapper tbody tr.eae-ct-header td,.eae-ct-wrapper th{position:relative}.eae-ct-wrapper ul{display:none;top:0;z-index:10;padding-bottom:14px}.eae-ct-wrapper li{list-style:none;flex:1;position:relative}.eae-ct-wrapper li:hover{cursor:pointer}.eae-ct-wrapper .eae-ct-heading{width:100%;padding:10px;background:#fff;font-size:20px;font-weight:700;height:60px;color:#999;text-align:center}.eae-ct-wrapper li.eae-ct-heading .eae-ct-heading-inner{position:absolute;align-self:center;top:50%;left:50%;transform:translate(-50%,-50%);width:100%}.eae-ct-wrapper li.eae-ct-heading.active{background:#f5f5f5}.eae-ct-wrapper table{border-collapse:collapse;table-layout:fixed;width:100%}.eae-ct-wrapper th{background:#f5f5f5;display:none}.eae-ct-wrapper td,.eae-ct-wrapper th{height:53px;vertical-align:middle}.eae-ct-wrapper table{border:none}.eae-ct-wrapper table td,.eae-ct-wrapper table th{border:none}.eae-ct-wrapper table tr td:first-child,.eae-ct-wrapper table tr td:last-child,.eae-ct-wrapper td,.eae-ct-wrapper th{padding:10px;empty-cells:show}.eae-ct-wrapper td,.eae-ct-wrapper th{text-align:center}.eae-ct-wrapper td+td,.eae-ct-wrapper th+th{text-align:center}.eae-ct-wrapper tr:first-child{background:0 0!important}.eae-ct-wrapper ul li:nth-child(1){display:table-cell}.eae-ct-wrapper tr td:nth-child(2){display:table-cell}.eae-ct-wrapper td:nth-child(1){display:table-cell}.eae-ct-wrapper td{display:none}.eae-ct-wrapper .sep{background:#f5f5f5;font-weight:700}.eae-ct-price-wrapper{display:flex;justify-content:center}.eae-ct-tt-type-icon .eae-ct-feature .tooltip{float:right}.eae-ct-wrapper .tooltiptext::before{content:"";border-width:5px 5px 0 5px;border-color:#fff;border-left-color:transparent;border-right-color:transparent;border-bottom-color:transparent;bottom:-10px;width:0;height:0;border-style:solid;position:absolute;margin:5px;left:42%}.eae-ct-wrapper .eae-ct-price{font-size:28px;font-weight:700;line-height:1em}.eae-ct-wrapper .eae-ct-currency{align-self:flex-start;margin-right:3px}.eae-ct-wrapper .eae-ct-fractional-price{align-self:flex-start;margin-left:3px}.eae-ct-wrapper .eae-ct-duration{align-self:flex-start}.eae-ct-wrapper .eae-ct-original-price{margin-right:5px;text-decoration:line-through;align-self:flex-end}.eae-ct-wrapper .tick{font-size:18px;color:#2ca01c}.feature-heading-blank.eae-ct-wrapper .hide{border:unset!important;background:unset!important}.eae-ct-wrapper .hide.eae-ct-hide.eae-fbox-heading{border:0 solid #000}.eae-ct-ribbons-yes .eae-ct-ribbons-wrapper{position:absolute;top:0;width:100px;overflow:hidden;height:100px;z-index:998;padding:8px 12px}.eae-ct-ribbons-h-top.eae-ct-ribbons-yes .eae-ct-ribbons-wrapper{position:absolute;top:0;width:100%;overflow:hidden;height:50px;z-index:999;padding:8px 12px}.eae-ct-ribbons-h-top.eae-ct-ribbons-yes .eae-ct-ribbons-wrapper-top{background-color:rgba(63,195,135,.8);color:#fff;transform:translateY(-100%);position:absolute;width:100%;top:0;left:0}.eae-ct-ribbons-h-left.eae-ct-ribbons-yes .eae-ct-ribbons-wrapper{-webkit-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(0);left:0;right:auto}.eae-ct-ribbons-h-right.eae-ct-ribbons-yes .eae-ct-ribbons-wrapper{-webkit-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(90deg);left:auto;right:0}.eae-ct-ribbons-yes .eae-ct-ribbons-wrapper span.eae-ct-ribbons-inner{position:absolute;text-align:center;left:0;top:0;width:200%;-webkit-transform:translateY(-50%) translateX(-50%) translateX(35px) rotate(-45deg);-ms-transform:translateY(-50%) translateX(-50%) translateX(35px) rotate(-45deg);transform:translateY(-50%) translateX(-50%) translateX(35px) rotate(-45deg);margin-top:35px;font-size:13px;line-height:2;font-weight:800;text-transform:uppercase;background:rgba(63,195,135,.8);padding:8px 12px;color:#fff}.eae-ct-wrapper .tooltip{position:relative;display:inline-block}.eae-ct-wrapper .tooltip .tooltiptext{visibility:hidden;min-width:120px;background-color:#000;color:#fff;text-align:center;border-radius:6px;padding:5px 0;position:absolute;z-index:1;bottom:120%;left:50%;margin-left:-60px}.eae-ct-wrapper .tooltip:hover .tooltiptext{visibility:visible}.eae-ct-heading-tooltip{text-decoration-line:underline;text-decoration-style:dotted}.eae-ct-btn{padding:10px 15px 10px 15px;color:#fff;display:inline-block;line-height:1em}.eae-ct-btn:hover{color:#fff}.eae-ct-wrapper i.fa.fa-check,.eae-ct-wrapper i.fas.fa-check{color:#38f146}.eae-ct-wrapper i.fa.fa-close,.eae-ct-wrapper i.fas.fa-times{color:red}.button-heading-blank.eae-ct-wrapper tr:last-child td:first-child{background:0 0!important;border:none!important}.eae-ct-wrapper tr:last-child{background:0 0!important}tbody tr:nth-child(2){background:0 0!important}@media (min-width:767px){.eae-ct-wrapper .eae-ct-header,.eae-ct-wrapper td{width:330px}.eae-ct-wrapper td+td,.eae-ct-wrapper th+th{width:auto}}.eae-tab-format-all .eae-ct-wrapper ul{display:flex}.hide.eae-ct-hide{display:table-cell}@media (min-width:1023px){.eae-tab-format-all tbody tr.eae-ct-header{display:none}.eae-tab-format-mobile .eae-ct-wrapper td,.eae-tab-format-mobile .eae-ct-wrapper th,.eae-tab-format-tab-mob .eae-ct-wrapper td,.eae-tab-format-tab-mob .eae-ct-wrapper th{display:table-cell!important}.eae-tab-format-all .hide.eae-ct-hide{display:table-cell}.eae-tab-format-mobile .hide.eae-ct-hide,.eae-tab-format-tab-mob .hide.eae-ct-hide{display:none!important}}@media (max-width:1023px){.eae-tab-format-tab-mob .eae-ct-wrapper ul{display:flex}.eae-tab-format-all tbody tr.eae-ct-header,.eae-tab-format-tab-mob tbody tr.eae-ct-header{display:none}.eae-tab-format-all .hide.eae-ct-hide{display:table-cell}.eae-tab-format-tab-mob .hide.eae-ct-hide{display:table-cell}}@media (max-width:1023px) and (min-width:768px){.eae-tab-format-mobile .eae-ct-wrapper td,.eae-tab-format-mobile .eae-ct-wrapper th{display:table-cell!important}.eae-tab-format-all tbody tr.eae-ct-header,.eae-tab-format-tab-mob tbody tr.eae-ct-header{display:none}.eae-tab-format-tab-mob .hide.eae-ct-hide{display:table-cell}}@media (max-width:767px){.eae-tab-format-mobile .eae-ct-wrapper ul{display:flex}.eae-tab-format-mobile tbody tr.eae-ct-header{display:none}.eae-tab-format-all tbody tr.eae-ct-header,.eae-tab-format-mobile tbody tr.eae-ct-header{display:none}.eae-tab-format-mobile .hide.eae-ct-hide{display:table-cell}}.eae-progress-bar-wrapper{display:flex;flex-direction:column;align-items:flex-start;margin:15px 0}.eae-progress-bar-wrapper.eae-progress-bar{width:100%;position:relative;box-sizing:border-box}.eae-pb-bar,.eae-pb-bar-inner,.eae-pb-bar-skill,.eae-pb-bar-value{box-sizing:border-box}.eae-pb-bar{position:relative;height:100%;width:100%;overflow:hidden}.eae-pb-bar--no-overflow{overflow:visible}.eae-pb-bar-inner{position:absolute;top:0;left:0;height:100%;-webkit-transform:scaleX(0);transform:scaleX(0);-webkit-transform-origin:left center;transform-origin:left center}body.rtl .eae-pb-bar .eae-pb-bar-inner{position:absolute;top:0;right:0!important;height:100%;-webkit-transform:scaleX(0);transform:scaleX(0);-webkit-transform-origin:right center;transform-origin:right center}.eae-pb-bar-inner.js-animated{transition-property:all;transition-duration:1.5s;transition-timing-function:cubic-bezier(.1,1.14,.31,1.06);transition-delay:1.5s;-webkit-transform:scaleX(1);transform:scaleX(1)}body.rtl .eae-pb-bar .eae-pb-bar-inner.js-animated{transition-property:all;transition-duration:1.5s;transition-timing-function:cubic-bezier(.1,1.14,.31,1.06);transition-delay:1.5s;-webkit-transform:scaleX(1);transform:scaleX(1)}.eae-pb-bar-skill,.eae-pb-bar-value{font-size:14px;letter-spacing:1px}body:not(.rtl) .eae-pb-bar-value--aligned-value{-webkit-transform:translateX(-50%);transform:translateX(-50%)}body.rtl .eae-pb-bar-value--aligned-value{-webkit-transform:translateX(50%);transform:translateX(50%)}.eae-progress-bar-skin1{height:20px;padding:4px;border:1px solid #ddd;border-radius:20px}.eae-pb-bar-skin1{border-radius:20px}.eae-pb-bar-inner-skin1{background-color:#00bfb3;background-size:200%;background-position:0 0;border-radius:20px}.eae-pb-bar-skill-skin1{position:absolute;bottom:20px;left:0;opacity:0}body.rtl .eae-pb-bar-skill-skin1{right:0}.eae-pb-bar-skill-skin1.js-animated{transition-property:all;transition-duration:.5s;transition-timing-function:linear;transition-delay:.5s;left:0;opacity:1}body.rtl .eae-pb-bar-skill-skin1.js-animated{right:0!important}.eae-pb-bar-value-skin1{position:absolute;bottom:20px;opacity:1}body:not(.rtl) .eae-pb-bar-value-skin1{right:0}body.rtl .eae-pb-bar-value-skin1{left:0!important}.eae-pb-bar-value-skin1.js-animated{transition-property:all;transition-duration:.5s;transition-timing-function:linear;transition-delay:.5s;opacity:1}body:not(.rtl) .eae-pb-bar-value-skin1.js-animated{right:0}.eae-progress-bar-skin2{height:15px;box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 3px 1px -2px rgba(0,0,0,.12),0 1px 5px 0 rgba(0,0,0,.2);border-radius:3px}@-webkit-keyframes progress-2-bg-animation-rtl{100%{background-position:0 0,0 0}0%{background-position:0 0,42px 0}}@keyframes progress-2-bg-animation-rtl{100%{background-position:0 0,0 0}0%{background-position:0 0,42px 0}}@-webkit-keyframes progress-2-bg-animation{0%{background-position:0 0,0 0}1000%{background-position:0 0,42px 0}}@keyframes progress-2-bg-animation{0%{background-position:0 0,0 0}100%{background-position:0 0,42px 0}}.eae-pb-bar-inner-skin2{background-image:linear-gradient(to top,rgba(255,255,255,.15),rgba(0,0,0,.2)),linear-gradient(135deg,#5eeb5b,#5eeb5b 33%,#358600 33%,#358600 66%,#5eeb5b 66%);background-size:100% 100%,42px 100%;background-position:0 0,0 0;border-radius:3px}body:not(.rtl) .eae-pb-bar-inner-skin2.js-animated{-webkit-animation:progress-2-bg-animation 1.5s linear 0s infinite;animation:progress-2-bg-animation 1.5s linear 0s infinite}body.rtl .eae-pb-bar-inner-skin2.js-animated{-webkit-animation:progress-2-bg-animation-rtl 1.5s linear 0s infinite;animation:progress-2-bg-animation-rtl 1.5s linear 0s infinite}.eae-pb-bar-skill-skin2{position:absolute;opacity:0}body:not(.rtl) .eae-pb-bar-skill-skin2{left:0}body.rtl .eae-pb-bar-skill-skin2{right:0}.eae-pb-bar-skill-skin2.js-animated{transition-property:all;transition-duration:.5s;transition-timing-function:linear;transition-delay:.5s;bottom:20px;opacity:1}.eae-pb-bar-value-skin2{position:absolute;opacity:0}body:not(.rtl) .eae-pb-bar-value-skin2{right:0}body.rtl .eae-pb-bar-value-skin2{left:0}.eae-pb-bar-value-skin2.js-animated{transition-property:all;transition-duration:.5s;transition-timing-function:linear;transition-delay:.5s;bottom:20px;opacity:1}.eae-progress-bar-skin3{height:5px;background-color:#efefef}.eae-pb-bar-inner-skin3,.eae-pb-bar-value-skin3{background-color:#f40076}.eae-pb-bar-inner:after,.eae-pb-bar-value-skin3:after{border-top-color:#f40076}.eae-pb-bar-skill-skin3{position:absolute;bottom:10px;left:-10px;opacity:0}.eae-pb-bar-skill-skin3.js-animated{transition-property:all;transition-duration:.5s;transition-timing-function:linear;transition-delay:.5s;opacity:1}body:not(.rtl) .eae-pb-bar-skill-skin3.js-animated{left:0}body.rtl .eae-pb-bar-skill-skin3.js-animated{right:0}.eae-pb-bar-value-skin3{position:absolute;display:inline-block;padding:0 8px;font-size:14px;color:#fff;opacity:0}.eae-pb-bar-value-skin3:after{position:absolute;left:50%;bottom:-10px;display:block;width:0;height:0;content:"";-webkit-transform:translateX(-50%);transform:translateX(-50%);border-width:5px;border-style:solid;border-color:#f40076 transparent transparent transparent}.eae-pb-bar-inner-skin3.js-animated{transition-property:all;transition-duration:1.5s;transition-timing-function:cubic-bezier(.1,1.14,.31,1.06);transition-delay:1.5s;-webkit-transform:scaleX(1);transform:scaleX(1)}.eae-pb-bar-value-skin3.js-animated{transition-property:all;transition-duration:1.5s;transition-timing-function:cubic-bezier(.1,1.14,.31,1.06);transition-delay:2s;bottom:14px;opacity:1}.eae-progress-bar-skin4{height:3px;background-color:#efefef}.eae-pb-bar-inner-skin4{background-color:#000}.eae-pb-bar-inner-skin4:after{position:absolute;top:50%;display:block;width:8px;height:8px;content:"";-webkit-transform:translateY(-50%);transform:translateY(-50%);background-color:#000;border-radius:50%}body:not(.rtl) .eae-pb-bar-inner-skin4:after{right:0}body.rtl .eae-pb-bar-inner-skin4:after{left:0}.eae-pb-bar-value-skin4{position:absolute;bottom:2px;font-size:14px;opacity:0}.eae-pb-bar-value-skin4.js-animated{transition-property:all;transition-duration:1.5s;transition-timing-function:linear;transition-delay:1.5s;opacity:1}.eae-pb-bar-skill-skin4{position:absolute;bottom:2px;left:-20px;opacity:0}.eae-pb-bar-skill-skin4.js-animated{transition-property:all;transition-duration:.5s;transition-timing-function:linear;transition-delay:.5s;opacity:1}body:not(.rtl) .eae-pb-bar-skill-skin4.js-animated{left:0}body.rtl .eae-pb-bar-skill-skin4.js-animated{right:0}.eae-progress-bar-skin5{height:30px;background-color:#f7f7f7}.eae-pb-bar-inner-skin5{background-color:#57b8ff}.eae-pb-bar-skill-skin5{position:absolute;top:50%;color:#fff;-webkit-transform:translateY(-50%);transform:translateY(-50%);opacity:0}body:not(.rtl) .eae-pb-bar-skill-skin5{left:10px}body:not(.rtl) .eae-pb-bar-skill-skin5{right:10px}.eae-pb-bar-skill-skin5.js-animated{transition-property:all;transition-duration:.5s;transition-timing-function:linear;transition-delay:.5s;opacity:1}.eae-pb-bar-value-skin5{position:absolute;top:50%;color:#fff;opacity:0;z-index:10}body:not(.rtl) .eae-pb-bar-value-skin5{-webkit-transform:translateX(-100%) translateX(-10px) translateY(-50%);transform:translateX(-100%) translateX(-10px) translateY(-50%)}body.rtl .eae-pb-bar-value-skin5{-webkit-transform:translateX(100%) translateX(10px) translateY(-50%);transform:translateX(100%) translateX(10px) translateY(-50%)}.eae-pb-bar-value-skin5.js-animated{transition-property:all;transition-duration:1.5s;transition-timing-function:linear;transition-delay:1.5s;opacity:1}.eae-dual-button-wrapper .eae-button-1-wrapper,.eae-dual-button-wrapper .eae-button-2-wrapper{overflow:hidden}.eae-dual-button-wrapper.button-style-horizontal{display:flex;flex-direction:row;position:relative}.eae-dual-button-main-wrapper{display:flex;flex-direction:row;justify-content:center}.eae-dual-button-wrapper a{min-width:0}.eae-dual-button-wrapper.button-style-vertical{display:inline-flex;flex-direction:column;position:relative}.eae-button-1.icon-before,.eae-button-2.icon-before{display:flex;flex-direction:row}body.rtl .eae-button-1.icon-before,body.rtl .eae-button-2.icon-before{display:flex;flex-direction:row-reverse}.eae-button-1.icon-after,.eae-button-2.icon-after{display:flex;flex-direction:row-reverse}body.rtl .eae-button-1.icon-after,body.rtl .eae-button-2.icon-after{display:flex;flex-direction:row}.eae-button-1-wrapper .eae-button-1,.eae-button-2-wrapper .eae-button-2{color:#000;align-items:center}.eae-button-1-wrapper:hover .eae-button-1,.eae-button-2-wrapper:hover .eae-button-2{color:#000}.eae-dual-button-wrapper.button-style-vertical .eae-button-1.icon-after,.eae-dual-button-wrapper.button-style-vertical .eae-button-1.icon-before,.eae-dual-button-wrapper.button-style-vertical .eae-button-2.icon-after,.eae-dual-button-wrapper.button-style-vertical .eae-button-2.icon-before{justify-content:center}.eae-button-1.icon-up,.eae-button-2.icon-up{display:flex;flex-direction:column;text-align:center}.eae-button-1.icon-down,.eae-button-2.icon-down{display:flex;flex-direction:column-reverse;text-align:center}.eae-button-1-wrapper{background:#ffb6c1;display:flex;justify-content:center;width:100%;line-height:1}.eae-button-2-wrapper{background:orange;display:flex;justify-content:center;width:100%;line-height:1}.eae-button-1.icon-up .icon-wrapper,.eae-button-2.icon-down .icon-wrapper,.eae-button-2.icon-up .icon-wrapper{text-align:center}.eae-button-1.icon-up .eae-button-text,.eae-button-2.icon-down .eae-button-text,.eae-button-2.icon-up .eae-button-text{text-align:center}.eae-button-1.icon-before i,.eae-button-2.icon-after i,.eae-button-2.icon-before i{align-self:center;margin:0 10px 0 0}.eae-button-1.icon-after i,.eae-button-2.icon-after i{align-self:center;margin:0 0 0 10px}.eae-button-1.icon-down i,.eae-button-1.icon-up i,.eae-button-2.icon-down i,.eae-button-2.icon-up i{align-self:center;margin:5px 0}.eae-dual-button-wrapper.button-style-horizontal .eae-button-1-wrapper,.eae-dual-button-wrapper.button-style-horizontal .eae-button-2-wrapper{padding:12px 30px}.eae-dual-button-wrapper.button-style-vertical .eae-button-1-wrapper,.eae-dual-button-wrapper.button-style-vertical .eae-button-2-wrapper{padding:20px 30px}.eae-button1,.eae-button2{position:relative;display:flex}.eae-dual-button-wrapper.button-style-horizontal .eae-button1,.eae-dual-button-wrapper.button-style-horizontal .eae-button2{min-width:150px}.eae-dual-button-wrapper.button-style-vertical .eae-button1{display:flex;flex-direction:column}.eae-button-separator-wrapper .eae-button-separator{width:40px;height:40px;line-height:40px;border-radius:50%;z-index:1;box-shadow:0 0 0 6px rgba(255,255,255,.2);background:#fafaf8;color:#444;text-transform:uppercase;text-align:center;vertical-align:middle;font-weight:400;font-size:14px;position:absolute;transform:translateY(-50%)}.eae-button-separator span{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}body.rtl.elementor-editor-active .eae-dual-button-main-wrapper .button-style-horizontal .eae-button1 .eae-button-separator-wrapper.not-rtl .eae-button-separator{display:none!important}body:not(.rtl).elementor-editor-active .eae-dual-button-main-wrapper .button-style-horizontal .eae-button2 .eae-button-separator-wrapper.rtl .eae-button-separator{display:none!important}.eae-sweep-right{vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px transparent;position:relative;-webkit-transition-property:color;transition-property:color;-webkit-transition-duration:.3s;transition-duration:.3s}.eae-sweep-right:before{content:"";position:absolute;z-index:-1;top:0;left:0;right:0;bottom:0;background:#2098d1;-webkit-transform:scaleX(0);transform:scaleX(0);-webkit-transform-origin:0 50%;transform-origin:0 50%;-webkit-transition-property:transform;transition-property:transform;-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-timing-function:ease-out;transition-timing-function:ease-out}.eae-sweep-right:active,.eae-sweep-right:focus,.eae-sweep-right:hover{color:#fff}.eae-sweep-right:active:before,.eae-sweep-right:focus:before,.eae-sweep-right:hover:before{-webkit-transform:scaleX(1);transform:scaleX(1)}.eae-sweep-left{vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px transparent;position:relative;-webkit-transition-property:color;transition-property:color;-webkit-transition-duration:.3s;transition-duration:.3s}.eae-sweep-left:before{content:"";position:absolute;z-index:-1;top:0;left:0;right:0;bottom:0;background:#2098d1;-webkit-transform:scaleX(0);transform:scaleX(0);-webkit-transform-origin:100% 50%;transform-origin:100% 50%;-webkit-transition-property:transform;transition-property:transform;-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-timing-function:ease-out;transition-timing-function:ease-out}.eae-sweep-left:active,.eae-sweep-left:focus,.eae-sweep-left:hover{color:#fff}.eae-sweep-left:active:before,.eae-sweep-left:focus:before,.eae-sweep-left:hover:before{-webkit-transform:scaleX(1);transform:scaleX(1)}.eae-sweep-bottom{vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px transparent;position:relative;-webkit-transition-property:color;transition-property:color;-webkit-transition-duration:.3s;transition-duration:.3s}.eae-sweep-bottom:before{content:"";position:absolute;z-index:-1;top:0;left:0;right:0;bottom:0;background:#2098d1;-webkit-transform:scaleY(0);transform:scaleY(0);-webkit-transform-origin:50% 0;transform-origin:50% 0;-webkit-transition-property:transform;transition-property:transform;-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-timing-function:ease-out;transition-timing-function:ease-out}.eae-sweep-bottom:active,.eae-sweep-bottom:focus,.eae-sweep-bottom:hover{color:#fff}.eae-sweep-bottom:active:before,.eae-sweep-bottom:focus:before,.eae-sweep-bottom:hover:before{-webkit-transform:scaleY(1);transform:scaleY(1)}.eae-sweep-top{vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px transparent;position:relative;-webkit-transition-property:color;transition-property:color;-webkit-transition-duration:.3s;transition-duration:.3s}.eae-sweep-top:before{content:"";position:absolute;z-index:-1;top:0;left:0;right:0;bottom:0;background:#2098d1;-webkit-transform:scaleY(0);transform:scaleY(0);-webkit-transform-origin:50% 100%;transform-origin:50% 100%;-webkit-transition-property:transform;transition-property:transform;-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-timing-function:ease-out;transition-timing-function:ease-out}.eae-sweep-top:active,.eae-sweep-top:focus,.eae-sweep-top:hover{color:#fff}.eae-sweep-top:active:before,.eae-sweep-top:focus:before,.eae-sweep-top:hover:before{-webkit-transform:scaleY(1);transform:scaleY(1)}.eae-bounce-right{vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px transparent;position:relative;-webkit-transition-property:color;transition-property:color;-webkit-transition-duration:.5s;transition-duration:.5s}.eae-bounce-right:before{content:"";position:absolute;z-index:-1;top:0;left:0;right:0;bottom:0;background:#2098d1;-webkit-transform:scaleX(0);transform:scaleX(0);-webkit-transform-origin:0 50%;transform-origin:0 50%;-webkit-transition-property:transform;transition-property:transform;-webkit-transition-duration:.5s;transition-duration:.5s;-webkit-transition-timing-function:ease-out;transition-timing-function:ease-out}.eae-bounce-right:active,.eae-bounce-right:focus,.eae-bounce-right:hover{color:#fff}.eae-bounce-right:active:before,.eae-bounce-right:focus:before,.eae-bounce-right:hover:before{-webkit-transform:scaleX(1);transform:scaleX(1);-webkit-transition-timing-function:cubic-bezier(.52,1.64,.37,.66);transition-timing-function:cubic-bezier(.52,1.64,.37,.66)}.eae-bounce-left{vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px transparent;position:relative;-webkit-transition-property:color;transition-property:color;-webkit-transition-duration:.5s;transition-duration:.5s}.eae-bounce-left:before{content:"";position:absolute;z-index:-1;top:0;left:0;right:0;bottom:0;background:#2098d1;-webkit-transform:scaleX(0);transform:scaleX(0);-webkit-transform-origin:100% 50%;transform-origin:100% 50%;-webkit-transition-property:transform;transition-property:transform;-webkit-transition-duration:.5s;transition-duration:.5s;-webkit-transition-timing-function:ease-out;transition-timing-function:ease-out}.eae-bounce-left:active,.eae-bounce-left:focus,.eae-bounce-left:hover{color:#fff}.eae-bounce-left:active:before,.eae-bounce-left:focus:before,.eae-bounce-left:hover:before{-webkit-transform:scaleX(1);transform:scaleX(1);-webkit-transition-timing-function:cubic-bezier(.52,1.64,.37,.66);transition-timing-function:cubic-bezier(.52,1.64,.37,.66)}.eae-bounce-bottom{vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px transparent;position:relative;-webkit-transition-property:color;transition-property:color;-webkit-transition-duration:.5s;transition-duration:.5s}.eae-bounce-bottom:before{content:"";position:absolute;z-index:-1;top:0;left:0;right:0;bottom:0;background:#2098d1;-webkit-transform:scaleY(0);transform:scaleY(0);-webkit-transform-origin:50% 0;transform-origin:50% 0;-webkit-transition-property:transform;transition-property:transform;-webkit-transition-duration:.5s;transition-duration:.5s;-webkit-transition-timing-function:ease-out;transition-timing-function:ease-out}.eae-bounce-bottom:active,.eae-bounce-bottom:focus,.eae-bounce-bottom:hover{color:#fff}.eae-bounce-bottom:active:before,.eae-bounce-bottom:focus:before,.eae-bounce-bottom:hover:before{-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transition-timing-function:cubic-bezier(.52,1.64,.37,.66);transition-timing-function:cubic-bezier(.52,1.64,.37,.66)}.eae-bounce-top{vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px transparent;position:relative;-webkit-transition-property:color;transition-property:color;-webkit-transition-duration:.5s;transition-duration:.5s}.eae-bounce-top:before{content:"";position:absolute;z-index:-1;top:0;left:0;right:0;bottom:0;background:#2098d1;-webkit-transform:scaleY(0);transform:scaleY(0);-webkit-transform-origin:50% 100%;transform-origin:50% 100%;-webkit-transition-property:transform;transition-property:transform;-webkit-transition-duration:.5s;transition-duration:.5s;-webkit-transition-timing-function:ease-out;transition-timing-function:ease-out}.eae-bounce-top:active,.eae-bounce-top:focus,.eae-bounce-top:hover{color:#fff}.eae-bounce-top:active:before,.eae-bounce-top:focus:before,.eae-bounce-top:hover:before{-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transition-timing-function:cubic-bezier(.52,1.64,.37,.66);transition-timing-function:cubic-bezier(.52,1.64,.37,.66)}.eae-markers .marker{display:none}.eae-markers p{margin-bottom:0}.eae-fg-wrapper{display:flex;flex-direction:column;overflow:hidden}.eae-gallery-filter{display:flex;flex-direction:row;justify-content:center;flex-wrap:wrap}.eae-filter-label{padding:5px 10px;background-color:#a0ce4e;color:#fff;margin:0 3px 0 3px}.eae-filter-label.current{background-color:#73b9dc}.eae-fg-image{display:flex;flex-wrap:wrap;flex-direction:row}.eae-fg-wrapper .eae-gallery-item-inner img{width:100%;height:auto;display:block!important;transition:all .5s ease;-webkit-transition:all .5s ease}.eae-gallery-item{height:auto}.eae-gallery-filter a{color:#fff;text-decoration:none}.eae-gallery-filter a.current{font-weight:700}.eae-gallery-item-inner{position:relative;overflow:hidden}.eae-overlay-always .eae-gallery-item .eae-grid-overlay{display:block}.eae-overlay-hover .eae-gallery-item-inner:hover .eae-grid-overlay{display:block}.eae-overlay-hide-on-hover .eae-gallery-item-inner:hover .eae-grid-overlay{display:none}.eae-overlay-hide-on-hover .eae-grid-overlay{display:block}.eae-grid-overlay{position:absolute;top:0;left:0;display:none;z-index:99;background:rgba(0,0,0,.5);height:100%;width:100%}.eae-grid-overlay-inner{display:block;position:relative;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center}.eae-fg-wrapper .eae-icon-wrapper{display:flex;justify-content:center}.eae-overlay-caption{display:block;line-height:1em;margin-top:15px;color:#73b9dc}.eae-overlay-icon{line-height:1em;padding:.5em;display:inline-block}.eae-overlay-icon svg{height:auto}.eae-icon-view-framed .eae-overlay-icon{padding:.5em;color:#73b9dc;border:3px solid #73b9dc;background-color:transparent}.eae-icon-view-stacked .eae-overlay-icon{padding:.5em;color:#fff;background-color:#818a91}.eae-hover-direction-effect .eae-grid-overlay{position:absolute;z-index:99;background:rgba(0,0,0,.5);height:100%;width:100%}.eae-fg-wrapper.eae-image-ratio-yes .eae-gallery-item-inner .eae-fg-img-wrapper{position:relative;top:0;overflow:hidden;left:0;right:0;border:0}.eae-fg-wrapper.eae-image-ratio-yes .eae-gallery-item-inner .eae-fg-img-wrapper img{height:100%;width:100%;display:block;position:absolute;top:0;left:0;object-fit:cover}.wts-eae-ribbons-badges-wrapper{display:none}.wts-eae-enable-ribbons-badges-yes .elementor-column-wrap>.wts-eae-ribbons-badges-wrapper{display:block}.wts-eae-enable-ribbons-badges-yes.wts-eae-badge-type-ribbon>.wts-eae-ribbons-badges-wrapper{position:absolute;top:0;left:auto;right:0;-ms-transform:rotate(90deg);width:150px;overflow:hidden;height:150px;z-index:999;padding:8px 12px}.wts-eae-badge-h-left.wts-eae-enable-ribbons-badges-yes.wts-eae-badge-type-ribbon>.wts-eae-ribbons-badges-wrapper{-webkit-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(0);left:0;right:auto}.wts-eae-badge-h-right.wts-eae-enable-ribbons-badges-yes.wts-eae-badge-type-ribbon>.wts-eae-ribbons-badges-wrapper{-webkit-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(90deg);left:auto;right:0}.wts-eae-enable-ribbons-badges-yes.wts-eae-badge-type-ribbon>.wts-eae-ribbons-badges-wrapper span.wts-eae-ribbons-badges-inner{position:absolute;text-align:center;left:0;top:0;width:200%;-webkit-transform:translateY(-50%) translateX(-50%) translateX(35px) rotate(-45deg);-ms-transform:translateY(-50%) translateX(-50%) translateX(35px) rotate(-45deg);transform:translateY(-50%) translateX(-50%) translateX(35px) rotate(-45deg);margin-top:35px;font-size:13px;line-height:2;font-weight:800;text-transform:uppercase;background:rgba(63,195,135,.8);padding:8px 12px}.wts-eae-enable-ribbons-badges-yes.wts-eae-badge-type-badge>.wts-eae-ribbons-badges-wrapper span.wts-eae-ribbons-badges-inner{min-height:3.236em;min-width:3.236em;padding:0;font-size:1em;font-weight:700;position:absolute;text-align:center;line-height:3.236;top:-.5em;left:-.5em;margin:0;border-radius:100%;background-color:#77a464;color:#fff;font-size:.857em;z-index:9}.wts-eae-badge-h-left.wts-eae-badge-v-bottom.wts-eae-enable-ribbons-badges-yes>.wts-eae-ribbons-badges-wrapper span.wts-eae-ribbons-badges-inner{left:20px;right:auto;top:auto;bottom:20px}.wts-eae-badge-h-left.wts-eae-badge-v-top.wts-eae-enable-ribbons-badges-yes>.wts-eae-ribbons-badges-wrapper span.wts-eae-ribbons-badges-inner{left:20px;right:auto;top:20px;bottom:auto}.wts-eae-badge-h-right.wts-eae-badge-v-bottom.wts-eae-enable-ribbons-badges-yes>.wts-eae-ribbons-badges-wrapper span.wts-eae-ribbons-badges-inner{left:auto;right:20px;top:auto;bottom:20px}.wts-eae-badge-h-right.wts-eae-badge-v-top.wts-eae-enable-ribbons-badges-yes>.wts-eae-ribbons-badges-wrapper span.wts-eae-ribbons-badges-inner{left:auto;right:20px;top:20px;bottom:auto}.eae-flip-box-back svg,.eae-flip-box-front svg{width:25px;height:auto}.wts-eae-textseparator svg{width:25px;height:auto}.eae-img-comp-slider svg{width:22px;height:auto}.eae-popup-link svg{display:inline-block;width:1em}.eae-popup svg:focus,.eae-popup svg:hover{opacity:1;cursor:pointer}.eae-popup svg:active{top:1px}.eae-popup svg.eae-close{width:28px;height:28px;line-height:1em;text-decoration:none;text-align:center;opacity:1;background-color:#fff}.eae-dual-button-wrapper svg{width:1em;height:auto;display:block}eae-button-separator i{position:relative;display:block}.eae-button-1.icon-before svg,.eae-button-2.icon-after svg,.eae-button-2.icon-before svg{align-self:center;margin:0 10px 0 0}.eae-button-1.icon-after svg,.eae-button-2.icon-after svg{align-self:center;margin:0 0 0 10px}.eae-button-1.icon-down svg,.eae-button-1.icon-up svg,.eae-button-2.icon-down svg,.eae-button-2.icon-up svg{align-self:center;margin:5px 0}.eae-pt-button-wrapper a svg{width:1em}.eae-pt-action-button .eae-pt-align-icon-left{float:left}.eae-pt-action-button .eae-pt-align-icon-right{float:right}.eae-icon-wrap svg{width:20px;height:auto;font-size:20px;display:block}.eae-info-circle .eae-icon-wrap svg{width:20px;height:auto;font-size:20px}.eae-icon-view-stacked svg{fill:#fff}.ae-link-yes{cursor:pointer}.eae-element-unfold-content{padding:10px 0;background-color:#d3d3d3c4;width:100%;position:absolute;left:0;bottom:0;z-index:999}a.eae-unfold-link{background-color:#61ce70;color:#fff;display:inline-block;overflow:hidden}a.eae-unfold-link svg{background-color:#fff}.eae-unfold-button-icon{vertical-align:middle}.eae-fold-yes .elementor-column-wrap,.eae-fold-yes.elementor-section .elementor-container,.eae-fold-yes.elementor-widget{overflow:hidden}body.elementor-editor-active .elementor.elementor-edit-mode .elementor-element.elementor-section.eae-widget-unfold-yes .elementor-container,body.elementor-editor-preview .elementor.elementor-edit-mode .elementor-element.elementor-section.eae-widget-unfold-yes .elementor-container{overflow:hidden}body.elementor-editor-active .elementor.elementor-edit-mode .elementor-element.elementor-column.eae-widget-unfold-yes .elementor-column-wrap,body.elementor-editor-preview .elementor.elementor-edit-mode .elementor-element.elementor-column.eae-widget-unfold-yes .elementor-column-wrap{overflow:hidden}body.elementor-editor-active .elementor.elementor-edit-mode .elementor-element.elementor-widget.eae-widget-unfold-yes,body.elementor-editor-preview .elementor.elementor-edit-mode .elementor-element.elementor-widget.eae-widget-unfold-yes{overflow:hidden}.eae-widget-unfold-yes .elementor-widget-container .eae-fold-yes.eae-rc{display:none!important}.eae-unfold-button-icon svg{line-height:1em;text-decoration:none;-webkit-mask-repeat:no-repeat!important;text-align:center;opacity:1}.eae-fold-icon-type-svg .eae-unfold-button-icon,.eae-unfold-icon-type-svg .eae-unfold-button-icon{-webkit-mask-size:cover!important;background-image:none;transform:translateY(-50%)}.elementor-section.elementor-section-items-bottom.eae-widget-unfold-yes>.elementor-container,.elementor-section.elementor-section-items-middle.eae-widget-unfold-yes>.elementor-container{-webkit-box-align:start;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:start}.elementor-section.elementor-section-content-bottom.eae-widget-unfold-yes>.elementor-container,.elementor-section.elementor-section-content-middle.eae-widget-unfold-yes>.elementor-container{-webkit-box-align:start;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:start}.elementor-widget-wts-modal-popup.eae-pop-btn-type-image .eae-popup-link{padding:0;background-color:transparent;overflow:hidden}[data-elementor-device-mode=tablet] .eae-tab-format-mobile .eae-ct-hide.eae-fbox-heading{display:none!important}.eae-timeline-item .eae-icon-view-stacked{border-width:0!important}
assets/js/eae.js CHANGED
@@ -940,17 +940,16 @@ var breakpoints = eae.breakpoints;
940
  $($scope.find('.eae-info-circle-item')[0]).addClass('eae-active');
941
  }
942
 
943
- $scope.find('.eae-ic-icon-wrap').on('click mouseenter', function () {
944
  $scope.find('.eae-info-circle-item').removeClass('eae-active');
945
  $(this).parent().addClass('eae-active');
946
  });
947
- // if($scope.hasClass('eae-mouseenter-yes')){
948
- // console.log('dfadf');
949
- // $scope.find('.eae-ic-icon-wrap').on('mouseenter', function () {
950
- // $scope.find('.eae-info-circle-item').removeClass('eae-active');
951
- // $(this).parent().addClass('eae-active');
952
- // });
953
- // }
954
 
955
 
956
  function showDiv() {
@@ -973,6 +972,7 @@ var breakpoints = eae.breakpoints;
973
  var pb = $scope.find(".eae-timline-progress-bar");
974
  var items = $scope.find(".eae-timeline-item");
975
  var tl = $scope.find(".eae-timeline");
 
976
  var h = $(tl).height();
977
  var last_offset = $(items).last().find('.eae-tl-icon-wrapper').offset().top - $(items[0]).parent().offset().top;
978
  var icon_width = $scope.find('.eae-tl-icon-wrapper');
@@ -993,16 +993,17 @@ var breakpoints = eae.breakpoints;
993
  $(value).removeClass('eae-tl-item-focused');
994
  }
995
  },
996
- offset: 100,
997
  })
998
  });
999
  }
1000
 
1001
  function progress_bar_increment() {
1002
  var pb = $scope.find(".eae-timline-progress-bar");
1003
-
 
1004
  //jQuery(".eae-timline-progress-bar").css('top', $scope.find(".eae-timeline").offset().top + 50);
1005
- $scope.find(".eae-pb-inner-line").css('height', $(window).scrollTop() - $scope.find(".eae-timeline").offset().top + 100);
1006
  $scope.find(".eae-pb-inner-line").css('max-height', $scope.find(".eae-pb-inner-line").parent().height());
1007
  }
1008
 
@@ -2201,6 +2202,7 @@ var breakpoints = eae.breakpoints;
2201
  };
2202
 
2203
  var ProgressBar = function ($scope, $) {
 
2204
  $wrapper = $scope.find('.eae-progress-bar');
2205
  var skill = $wrapper.attr('data-skill');
2206
  var skill_value = $wrapper.attr('data-value');
@@ -2218,18 +2220,31 @@ var breakpoints = eae.breakpoints;
2218
  }
2219
  if(skin === 'skin3'){
2220
  $(valueELem).addClass('eae-pb-bar-value--aligned-value');
2221
- $(valueELem).attr("style" ,"left :" +skill_value+ "%");
 
 
 
 
 
2222
  $(prgInner).attr("style" ,"width :" +skill_value+ "%");
2223
  }
2224
  if(skin === 'skin4'){
2225
  $(valueELem).addClass('eae-pb-bar-value--aligned-value');
2226
- $(valueELem).attr("style" ,"left :" +skill_value+ "%");
 
 
 
 
2227
  $(prgInner).attr("style" ,"width :" +skill_value+ "%")
2228
  $(prgBar).addClass('eae-pb-bar--no-overflow');
2229
  }
2230
  if(skin === 'skin5'){
2231
  $(valueELem).addClass('eae-pb-bar-value--aligned-value');
2232
- $(valueELem).attr("style" ,"left :" +skill_value+ "%");
 
 
 
 
2233
  $(prgInner).attr("style" ,"width :" +skill_value+ "%")
2234
  }
2235
 
940
  $($scope.find('.eae-info-circle-item')[0]).addClass('eae-active');
941
  }
942
 
943
+ $scope.find('.eae-ic-icon-wrap').on('click', function () {
944
  $scope.find('.eae-info-circle-item').removeClass('eae-active');
945
  $(this).parent().addClass('eae-active');
946
  });
947
+ if($scope.hasClass('eae-mouseenter-yes')){
948
+ $scope.find('.eae-ic-icon-wrap').on('mouseenter', function () {
949
+ $scope.find('.eae-info-circle-item').removeClass('eae-active');
950
+ $(this).parent().addClass('eae-active');
951
+ });
952
+ }
 
953
 
954
 
955
  function showDiv() {
972
  var pb = $scope.find(".eae-timline-progress-bar");
973
  var items = $scope.find(".eae-timeline-item");
974
  var tl = $scope.find(".eae-timeline");
975
+ const offset = tl.data('top-offset');
976
  var h = $(tl).height();
977
  var last_offset = $(items).last().find('.eae-tl-icon-wrapper').offset().top - $(items[0]).parent().offset().top;
978
  var icon_width = $scope.find('.eae-tl-icon-wrapper');
993
  $(value).removeClass('eae-tl-item-focused');
994
  }
995
  },
996
+ offset: offset,
997
  })
998
  });
999
  }
1000
 
1001
  function progress_bar_increment() {
1002
  var pb = $scope.find(".eae-timline-progress-bar");
1003
+ var tm = $scope.find(".eae-timeline");
1004
+ const offset = tm.data('top-offset');
1005
  //jQuery(".eae-timline-progress-bar").css('top', $scope.find(".eae-timeline").offset().top + 50);
1006
+ $scope.find(".eae-pb-inner-line").css('height', $(window).scrollTop() - $scope.find(".eae-timeline").offset().top + offset);
1007
  $scope.find(".eae-pb-inner-line").css('max-height', $scope.find(".eae-pb-inner-line").parent().height());
1008
  }
1009
 
2202
  };
2203
 
2204
  var ProgressBar = function ($scope, $) {
2205
+ $is_rtl = jQuery('body').hasClass('rtl');
2206
  $wrapper = $scope.find('.eae-progress-bar');
2207
  var skill = $wrapper.attr('data-skill');
2208
  var skill_value = $wrapper.attr('data-value');
2220
  }
2221
  if(skin === 'skin3'){
2222
  $(valueELem).addClass('eae-pb-bar-value--aligned-value');
2223
+ if($is_rtl){
2224
+ $(valueELem).attr("style" ,"right :" +skill_value+ "%");
2225
+ }else{
2226
+ $(valueELem).attr("style" ,"left :" +skill_value+ "%");
2227
+ }
2228
+
2229
  $(prgInner).attr("style" ,"width :" +skill_value+ "%");
2230
  }
2231
  if(skin === 'skin4'){
2232
  $(valueELem).addClass('eae-pb-bar-value--aligned-value');
2233
+ if($is_rtl){
2234
+ $(valueELem).attr("style" ,"right :" +skill_value+ "%");
2235
+ }else{
2236
+ $(valueELem).attr("style" ,"left :" +skill_value+ "%");
2237
+ }
2238
  $(prgInner).attr("style" ,"width :" +skill_value+ "%")
2239
  $(prgBar).addClass('eae-pb-bar--no-overflow');
2240
  }
2241
  if(skin === 'skin5'){
2242
  $(valueELem).addClass('eae-pb-bar-value--aligned-value');
2243
+ if($is_rtl){
2244
+ $(valueELem).attr("style" ,"right :" +skill_value+ "%");
2245
+ }else{
2246
+ $(valueELem).attr("style" ,"left :" +skill_value+ "%");
2247
+ }
2248
  $(prgInner).attr("style" ,"width :" +skill_value+ "%")
2249
  }
2250
 
assets/js/eae.min.js CHANGED
@@ -1 +1 @@
1
- jQuery(window).on("elementor/frontend/init",(function(){elementorFrontend.hooks.addAction("frontend/element_ready/wts-gmap.default",(function(e){map=function(a){$wrapper=e.find(".eae-markers");var i=$wrapper.data("zoom"),t=a.find(".marker"),n=$wrapper.data("style"),d=($wrapper.data("scroll"),{zoom:i,center:new google.maps.LatLng(0,0),mapTypeId:google.maps.MapTypeId.ROADMAP,styles:n}),r=new google.maps.Map(a[0],d);return r.markers=[],t.each((function(){!function(a,i){var t=$wrapper.data("animate");$wrapper.data("show-info-window-onload");$wrapper=e.find(".eae-markers");var n=new google.maps.LatLng(a.attr("data-lat"),a.attr("data-lng"));if(icon_img=a.attr("data-icon"),""!=icon_img)var d={url:a.attr("data-icon"),scaledSize:new google.maps.Size(a.attr("data-icon-size"),a.attr("data-icon-size"))};var r=new google.maps.Marker({position:n,map:i,icon:d,animation:google.maps.Animation.DROP});"animate-yes"==t&&"yes"!=a.data("info-window")&&r.setAnimation(google.maps.Animation.BOUNCE);"animate-yes"==t&&google.maps.event.addListener(r,"click",(function(){r.setAnimation(null)}));if(i.markers.push(r),a.html()){var s=new google.maps.InfoWindow({content:a.html()});"yes"==a.data("info-window")&&s.open(i,r),google.maps.event.addListener(r,"click",(function(){s.open(i,r)}))}"animate-yes"==t&&google.maps.event.addListener(s,"closeclick",(function(){r.setAnimation(google.maps.Animation.BOUNCE)}))}(jQuery(this),r)})),function(e,a){var i=new google.maps.LatLngBounds;jQuery.each(e.markers,(function(e,a){var t=new google.maps.LatLng(a.position.lat(),a.position.lng());i.extend(t)})),1==e.markers.length?(e.setCenter(i.getCenter()),e.setZoom(a)):e.fitBounds(i)}(r,i),r}(e.find(".eae-markers"))})),elementorFrontend.hooks.addAction("frontend/element_ready/global",(function(e){var a,i,t,n,d,r,s,l=[],o=[],c=e.children(".eae-section-bs").children(".eae-section-bs-inner");c&&c.data("eae-bg-slider")&&(slider_images=c.data("eae-bg-slider"),a=c.data("eae-bg-slider-transition"),i=c.data("eae-bg-slider-animation"),n=("yes"==(t=c.data("eae-bg-custom-overlay"))||c.data("eae-bg-slider-overlay"),eae_editor.plugin_url+"assets/lib/vegas/overlays/"+c.data("eae-bg-slider-overlay")),d=c.data("eae-bg-slider-cover"),r=c.data("eae-bs-slider-delay"),s=c.data("eae-bs-slider-timer"),"undefined"!=typeof slider_images&&(l=slider_images.split(","),jQuery.each(l,(function(e,a){var i=[];i.src=a,o.push(i)})),c.vegas({slides:o,transition:a,animation:i,overlay:n,cover:d,delay:r,timer:s,init:function(){"yes"==t&&c.children(".vegas-overlay").css("background-image","")}})))}))}));var isEditMode=!1,breakpoints=eae.breakpoints;!function(e){e(window).on("elementor/frontend/init",(function(){var a=function(e,a){function i(e){$icons=a(document).find(e).find(".eae-ic-icon-wrap"),window.innerWidth<767?$icons.each((function(e,i){a(i).css("top",a(i).height()/2+8+"px"),a(i).next(".eae-info-circle-item__content-wrap").css("padding-top",a(i).height()/2+8+"px")})):$icons.each((function(e,i){a(i).css("margin-left",-.5*a(i).outerWidth()),a(i).css("margin-top",-.5*a(i).outerHeight()),$a=function(e){return e=(e-90)*Math.PI/180,{x:50+45*Math.cos(e),y:50+45*Math.sin(e)}}($angle),$b=360/$icons.length,a(i).css("left",$a.x+"%"),a(i).css("top",$a.y+"%"),$angle+=$b}))}$wrap_class=".elementor-element-"+e.data("id"),$angle=0,i(e);var t=null;function n(){"yes"==e.find(".eae-info-circle").data("autoplay")&&(t=setInterval(d,$autoplayDuration))}function d(){e.find(".eae-active").next().length>0?e.find(".eae-active").next().addClass("eae-active").siblings().removeClass("eae-active"):e.find(".eae-info-circle-item").eq(0).addClass("eae-active").siblings().removeClass("eae-active")}$autoplayDuration=e.find(".eae-info-circle").data("delay"),n(),e.find(".eae-ic-icon-wrap").hover((function(){clearInterval(t)}),(function(){n()})),e.find(".eae-info-circle-item").length>0&&a(e.find(".eae-info-circle-item")[0]).addClass("eae-active"),e.find(".eae-ic-icon-wrap").on("click mouseenter",(function(){e.find(".eae-info-circle-item").removeClass("eae-active"),a(this).parent().addClass("eae-active")})),window.addEventListener("resize",i.bind(this,$wrap_class))},i=function(e,a){function i(){var i=e.find(".eae-timline-progress-bar"),t=e.find(".eae-timeline-item"),n=e.find(".eae-timeline"),d=a(n).height(),r=a(t).last().find(".eae-tl-icon-wrapper").offset().top-a(t[0]).parent().offset().top,s=e.find(".eae-tl-icon-wrapper");a(i).css("top",a(t[0]).find(".eae-tl-icon-wrapper").offset().top-a(t[0]).parent().offset().top),a(i).css("bottom",d-r),a(i).css("left",s.eq(0)[0].offsetLeft+s.eq(0).width()/2),a(i).css("display","block"),t.each((function(e,i){new Waypoint({element:a(i),handler:function(e){"down"==e?a(i).addClass("eae-tl-item-focused"):a(i).removeClass("eae-tl-item-focused")},offset:100})}))}i(),window.addEventListener("resize",i),window.addEventListener("scroll",(function(){e.find(".eae-timline-progress-bar"),e.find(".eae-pb-inner-line").css("height",a(window).scrollTop()-e.find(".eae-timeline").offset().top+100),e.find(".eae-pb-inner-line").css("max-height",e.find(".eae-pb-inner-line").parent().height())}))};function t(e,a,i){var t=new Date;t.setTime(t.getTime()+60*i*60*1e3);var n="expires="+t.toUTCString();document.cookie=e+"="+a+";"+n+";path=/"}function n(e){for(var a=e+"=",i=decodeURIComponent(document.cookie).split(";"),t=0;t<i.length;t++){for(var n=i[t];" "==n.charAt(0);)n=n.substring(1);if(0==n.indexOf(a))return n.substring(a.length,n.length)}return""}var d=function(e,a){$wrapper=e.find(".eae-progress-bar");$wrapper.attr("data-skill");var i=$wrapper.attr("data-value"),t=$wrapper.attr("data-skin"),n=$wrapper.find(".eae-pb-bar-skill"),d=$wrapper.find(".eae-pb-bar-value"),r=$wrapper.find(".eae-pb-bar"),s=$wrapper.find(".eae-pb-bar-inner");"skin1"===t&&a(s).attr("style","width : "+i+"%"),"skin2"===t&&a(s).attr("style","width : "+i+"%"),"skin3"===t&&(a(d).addClass("eae-pb-bar-value--aligned-value"),a(d).attr("style","left :"+i+"%"),a(s).attr("style","width :"+i+"%")),"skin4"===t&&(a(d).addClass("eae-pb-bar-value--aligned-value"),a(d).attr("style","left :"+i+"%"),a(s).attr("style","width :"+i+"%"),a(r).addClass("eae-pb-bar--no-overflow")),"skin5"===t&&(a(d).addClass("eae-pb-bar-value--aligned-value"),a(d).attr("style","left :"+i+"%"),a(s).attr("style","width :"+i+"%")),$wrapper.each((function(e,i){new Waypoint({element:i,skill_value:a(i).find(".eae-pb-bar-skill"),valueElem:a(i).find(".eae-pb-bar-value"),prgBar:a(i).find(".eae-pb-bar-bar"),prgInner:a(i).find(".eae-pb-bar-inner"),handler:function(e){"down"==e&&(a(d).hasClass("js-animated")||a(d).addClass("js-animated"),a(s).hasClass("js-animated")||a(s).addClass("js-animated"),a(n).hasClass("js-animated")||a(n).addClass("js-animated"))},offset:"bottom-in-view"})}))};e.fn.EAEHoverDirection=function(a){var i=e.extend({inaccuracy:30,speed:200},a);this.find(".overlay").css({top:-9999999}),this.mouseenter((function(a){container=e(this),overlay=container.find(".overlay"),parentOffset=container.offset(),relX=a.pageX-parentOffset.left,relY=a.pageY-parentOffset.top,overlay.css({top:0,left:0,width:container.width(),height:container.height()}),relX>container.width()-i.inaccuracy?overlay.css({top:0,left:container.width()}):relX<i.inaccuracy?overlay.css({top:0,left:-container.width()}):relY>container.height()-i.inaccuracy?overlay.css({top:container.width(),left:0}):relY<i.inaccuracy&&overlay.css({top:-container.width(),left:0}),overlay.animate({top:0,left:0},i.speed)})),this.mouseleave((function(a){container=e(this),overlay=container.find(".overlay"),parentOffset=container.offset(),relX=a.pageX-parentOffset.left,relY=a.pageY-parentOffset.top,relX<=0&&overlay.animate({top:0,left:-container.width()},i.speed),relX>=container.width()&&overlay.animate({top:0,left:container.width()},i.speed),relY<=0&&overlay.animate({left:0,top:-container.height()},i.speed),relY>=container.height()&&overlay.animate({left:0,top:container.height()},i.speed)}))},elementorFrontend.hooks.addAction("frontend/element_ready/wts-ab-image.default",(function(e,a){e.find(".eae-img-comp-container").imagesLoaded().done((function(){ab_style=e.find(".eae-img-comp-container").data("ab-style"),slider_pos=e.find(".eae-img-comp-container").data("slider-pos"),"horizontal"===ab_style?(separator_width=parseInt(e.find(".eae-img-comp-overlay").css("border-right-width")),function(e){var a,i;a=e.find(".eae-img-comp-overlay"),i=(i=a.width())*slider_pos/100,function(a){var t,n,d,r=0;function s(e){e.preventDefault(),r=1,window.addEventListener("mousemove",o),t.addEventListener("touchmove",c)}function l(){r=0}function o(e){var i;if(0==r)return!1;(i=function(e){var i;return e=e||window.event,i=a.getBoundingClientRect(),e.pageX-i.left}(e))<0&&(i=0),i>n&&(i=n),f(i)}function c(e){var i;if(0==r)return!1;(i=function(e){var i;return i=a.getBoundingClientRect(),e.changedTouches[0].clientX-i.left}(e))<0&&(i=0),i>n&&(i=n),f(i)}function f(e){a.style.width=e+"px",t.style.left=a.offsetWidth-t.offsetWidth/2-separator_width/2+"px"}n=a.offsetWidth,d=a.offsetHeight,a.style.width=i+"px",(t=(t=e.find(".eae-img-comp-slider"))[0]).style.top=d/2-t.offsetHeight/2+"px",t.style.left=i-t.offsetWidth/2-separator_width/2+"px",e.hasClass("elementor-element-edit-mode")||(t.addEventListener("mousedown",s),window.addEventListener("mouseup",l),t.addEventListener("touchstart",s),window.addEventListener("touchstop",l))}(a[0])}(e)):(separator_width=parseInt(e.find(".eae-img-comp-overlay").css("border-bottom-width")),function(e){var a;a=e.find(".eae-img-comp-overlay"),start_pos=a.height(),start_pos=start_pos*slider_pos/100,function(a){var i,t,n,d=0;function r(e){e.preventDefault(),d=1,window.addEventListener("mousemove",l),i.addEventListener("touchmove",o)}function s(){d=0}function l(e){var i;if(0==d)return!1;(i=function(e){var i,t=0;return e=e||window.event,i=a.getBoundingClientRect(),t=e.pageY-i.top,t-=window.pageYOffset}(e))<0&&(i=0),i>n&&(i=n),c(i)}function o(e){var i;if(0==d)return!1;(i=function(e){var i;return i=a.getBoundingClientRect(),e.changedTouches[0].clientY-i.top}(e))<0&&(i=0),i>n&&(i=n),c(i)}function c(e){a.style.height=e+"px",i.style.top=a.offsetHeight-i.offsetHeight/2-separator_width/2+"px"}t=a.offsetWidth,n=a.offsetHeight,a.style.height=start_pos+"px",(i=(i=e.find(".eae-img-comp-slider"))[0]).style.top=start_pos-i.offsetHeight/2-separator_width/2+"px",i.style.left=t/2-i.offsetWidth/2+"px",e.hasClass("elementor-element-edit-mode")||(i.addEventListener("mousedown",r),window.addEventListener("mouseup",s),i.addEventListener("touchstart",r),window.addEventListener("touchstop",s))}(a[0])}(e))}))})),elementorFrontend.hooks.addAction("frontend/element_ready/global",(function(e,a){e.hasClass("eae-particle-yes")&&(id=e.data("id"),element_type=e.data("element_type"),pdata=e.data("eae-particle"),pdata_wrapper=e.find(".eae-particle-wrapper").data("eae-pdata"),"undefined"!=typeof pdata&&""!=pdata?e.find(".eae-section-bs").length>0?(e.find(".eae-section-bs").after('<div class="eae-particle-wrapper" id="eae-particle-'+id+'"></div>'),particlesJS("eae-particle-"+id,pdata)):("column"==element_type?e.prepend('<div class="eae-particle-wrapper" id="eae-particle-'+id+'"></div>'):e.prepend('<div class="eae-particle-wrapper " id="eae-particle-'+id+'"></div>'),particlesJS("eae-particle-"+id,pdata)):"undefined"!=typeof pdata_wrapper&&""!=pdata_wrapper&&(element_type,e.prepend('<div class="eae-particle-wrapper eae-particle-area" id="eae-particle-'+id+'"></div>'),particlesJS("eae-particle-"+id,JSON.parse(pdata_wrapper))))})),elementorFrontend.hooks.addAction("frontend/element_ready/global",(function(e,a){if(e.hasClass("eae-animated-gradient-yes")){id=e.data("id"),color=e.data("color"),angle=e.data("angle");var i="linear-gradient("+angle+","+color+")";heading=e.find(".elementor-heading-title"),e.css("background-image",i),e.hasClass("elementor-element-edit-mode")&&(color=e.find(".animated-gradient").data("color"),angle=e.find(".animated-gradient").data("angle"),gradient_color_editor="linear-gradient("+angle+","+color+")",e.prepend('<div class="animated-gradient" style="background-image : '+gradient_color_editor+' "></div>'))}})),elementorFrontend.hooks.addAction("frontend/element_ready/wts-modal-popup.default",(function(e,a){$preview_modal=e.find(".eae-popup-wrapper").data("preview-modal"),$close_btn_type=e.find(".eae-popup-wrapper").data("close-button-type"),$close_btn=e.find(".eae-popup-wrapper").data("close-btn"),"icon"==$close_btn_type?$close_btn_html='<i class="eae-close '+$close_btn+'"> </i>':$close_btn_html='<svg class="eae-close" style="-webkit-mask: url('+$close_btn+"); mask: url("+$close_btn+'); "></svg>',$magnific=e.find(".eae-popup-link").eaePopup({type:"inline",disableOn:0,key:null,midClick:!1,mainClass:"eae-popup eae-popup-"+e.find(".eae-popup-link").data("id")+" eae-wrap-"+e.find(".eae-popup-link").data("ctrl-id"),preloader:!0,focus:"",closeOnContentClick:!1,closeOnBgClick:!0,closeBtnInside:e.find(".eae-popup-wrapper").data("close-in-out"),showCloseBtn:!0,enableEscapeKey:!1,modal:!1,alignTop:!1,removalDelay:0,prependTo:null,fixedContentPos:"auto",fixedBgPos:"auto",overflowY:"auto",closeMarkup:$close_btn_html,tClose:"Close (Esc)",tLoading:"Loading...",autoFocusLast:!0}),"yes"==$preview_modal&&e.hasClass("elementor-element-edit-mode")&&e.find(".eae-popup-link").click()})),elementorFrontend.hooks.addAction("frontend/element_ready/wts-testimonial-slider.default",(function(e,a){if(e.find(".eae-grid-wrapper").hasClass("eae-masonry-yes")){var i=e.find(".eae-grid").masonry({});i.imagesLoaded().progress((function(){i.masonry("layout")}))}if(e.find(".eae-layout-carousel").length){outer_wrapper=e.find(".eae-swiper-outer-wrapper"),wid=e.data("id"),wclass=".elementor-element-"+wid;var t=outer_wrapper.data("direction"),n=outer_wrapper.data("speed"),d=outer_wrapper.data("autoplay"),r=outer_wrapper.data("duration"),s=outer_wrapper.data("effect"),l=outer_wrapper.data("space"),o=outer_wrapper.data("loop");o="yes"==o;var c=outer_wrapper.data("slides-per-view"),f=outer_wrapper.data("slides-per-group"),p=outer_wrapper.data("ptype"),m=outer_wrapper.data("navigation"),u=outer_wrapper.data("clickable"),g=outer_wrapper.data("keyboard"),v=outer_wrapper.data("scrollbar");adata={direction:t,effect:s,spaceBetween:l.desktop,loop:o,speed:n,slidesPerView:c.desktop,slidesPerGroup:f.desktop,observer:!0,mousewheel:{invert:!0},breakpoints:{1024:{spaceBetween:l.tablet,slidesPerView:c.tablet,slidesPerGroup:f.tablet},767:{spaceBetween:l.mobile,slidesPerView:c.mobile,slidesPerGroup:f.mobile}}},"fade"==s&&(adata.fadeEffect={crossFade:!1}),adata.autoplay="yes"==d&&{delay:r,disableOnInteraction:!1},"yes"==m&&(adata.navigation={nextEl:".swiper-button-next",prevEl:".swiper-button-prev"}),""!=p&&(adata.pagination={el:".swiper-pagination",type:p}),"bullets"==p&&"yes"==u&&(adata.pagination={el:".swiper-pagination",clickable:!0,type:p}),"yes"==v&&(adata.scrollbar={el:".swiper-scrollbar",draggable:!0}),"yes"==g&&(adata.keyboard={enabled:!0,onlyInViewport:!0}),0==o&&(adata.autoplay={delay:r,stopOnLastSlide:!0,disableOnInteraction:!1}),window.mswiper=new Swiper(".elementor-element-"+wid+" .eae-swiper-outer-wrapper .swiper-container",adata),a(".elementor-element-"+wid+" .eae-swiper-outer-wrapper .swiper-container").css("visibility","visible")}})),elementorFrontend.hooks.addAction("frontend/element_ready/eae-info-circle.skin1",a),elementorFrontend.hooks.addAction("frontend/element_ready/eae-info-circle.skin2",a),elementorFrontend.hooks.addAction("frontend/element_ready/eae-info-circle.skin3",a),elementorFrontend.hooks.addAction("frontend/element_ready/eae-info-circle.skin4",a),elementorFrontend.hooks.addAction("frontend/element_ready/eae-timeline.skin1",i),elementorFrontend.hooks.addAction("frontend/element_ready/eae-timeline.skin2",i),elementorFrontend.hooks.addAction("frontend/element_ready/eae-timeline.skin3",i),elementorFrontend.hooks.addAction("frontend/element_ready/eae-timeline.skin4",i),elementorFrontend.hooks.addAction("frontend/element_ready/eae-evergreen-timer.skin1",(function(e,a){var i=e.find(".eae-evergreen-wrapper").data("egtime"),d=e.find(".eae-evergreen-wrapper").data("egt-expire"),r=e.find(".eae-evergreen-wrapper").data("element-type"),s="eae-"+e.find(".eae-evergreen-wrapper").data("id"),l="eae-temp-"+e.find(".eae-evergreen-wrapper").data("id"),o=e.find(".eae-evergreen-wrapper").data("actions"),c=e.find(".eae-evergreen-wrapper").data("unqid"),f=(new Date).getTime();if(!e.hasClass("elementor-element-edit-mode"))if("countdown"===r){u=new Date(i),i=u.getTime();var p="expires="+u.toUTCString();document.cookie=l+"="+u.getTime()+";"+p+";path=/"}else{var m=n(s),u="";if(""!==m){(u=new Date(parseInt(m))).setSeconds(u.getSeconds()+e.find(".eae-evergreen-wrapper").data("egtime")),i=u.getTime();var g=new Date(parseInt(m));g.setTime(g.getTime()+60*d*60*1e3);var v="expires="+g.toUTCString();document.cookie=s+"="+m+";"+v+";path=/";var h=new Date(parseInt(m));h.setTime(h.getTime()+1e3*e.find(".eae-evergreen-wrapper").data("egtime"));p="expires="+h.toUTCString();i-f>0&&(document.cookie=l+"="+m+";"+p+";path=/")}else{temp_date=i,(u=new Date).setSeconds(u.getSeconds()+e.find(".eae-evergreen-wrapper").data("egtime")),i=u.getTime(),t(s,(new Date).getTime(),d);var w=new Date;w.setTime(w.getTime()+1e3*temp_date);var y="expires="+w.toUTCString();document.cookie=l+"="+(new Date).getTime()+";"+y+";path=/"}}if(!e.hasClass("elementor-element-edit-mode")&&i-f<0)return o.length>0&&o.forEach((function(i){"redirect"===i&&($url=e.find(".eae-evergreen-wrapper").data("redirected-url"),""!==a.trim($url)&&(window.location.href=$url1)),"hide"===i&&(e.hasClass("elementor-element-edit-mode")||(e.find("#eaeclockdiv").css("display","none"),e.find(".egt-title").css("display","none"))),"message"===i&&e.find(".eae-egt-message").css("display","block"),"hide_parent"===i&&(e.hasClass("elementor-element-edit-mode")||($p_secs=e.closest("section"),$p_secs.css("display","none")))})),days="00",hours="00",minutes="00",seconds="00",e.find("."+c).find("#eaedivDays").html(days),e.find("."+c).find("#eaedivHours").html(hours.slice(-2)),e.find("."+c).find("#eaedivMinutes").html(minutes.slice(-2)),void e.find("."+c).find("#eaedivSeconds").html(seconds.slice(-2));e.hasClass("elementor-element-edit-mode")&&("countdown"===r?(u=new Date(i),i=u.getTime()):((u=new Date).setSeconds(u.getSeconds()+e.find(".eae-evergreen-wrapper").data("egtime")),i=u.getTime()));var k=setInterval((function(){var t=(new Date).getTime(),n=i-t,d=0,r=0,s=0,l=0;n>0?(d=Math.floor(n/864e5),r="0"+Math.floor(n%864e5/36e5),s="0"+Math.floor(n%36e5/6e4),l="0"+Math.floor(n%6e4/1e3)):(o.length>0&&(e.hasClass("elementor-element-edit-mode")||o.forEach((function(i){"redirect"===i&&($url1=e.find(".eae-evergreen-wrapper").data("redirected-url"),""!==a.trim($url1)&&(window.location.href=$url1)),"hide"===i&&(e.find("#eaeclockdiv").css("display","none"),e.find(".egt-title").css("display","none")),"message"===i&&e.find(".eae-egt-message").css("display","block"),"hide_parent"===i&&(e.hasClass("elementor-element-edit-mode")||($p_secs=e.closest("section"),$p_secs.css("display","none")))}))),clearInterval(k),d="0",r="00",s="00",l="00"),d<10&&(d="0"+d),e.find("."+c).find("#eaedivDays").html(d),e.find("."+c).find("#eaedivHours").html(r.slice(-2)),e.find("."+c).find("#eaedivMinutes").html(s.slice(-2)),e.find("."+c).find("#eaedivSeconds").html(l.slice(-2))}),1e3)})),elementorFrontend.hooks.addAction("frontend/element_ready/eae-evergreen-timer.skin2",(function(e,a){var i=e.find(".eae-evergreen-wrapper").data("egtime"),d=e.find(".eae-evergreen-wrapper").data("egt-expire"),r=e.find(".eae-evergreen-wrapper").data("element-type"),s="eae-"+e.find(".eae-evergreen-wrapper").data("id"),l="eae-temp-"+e.find(".eae-evergreen-wrapper").data("id"),o=e.find(".eae-evergreen-wrapper").data("actions"),c=e.find(".eae-evergreen-wrapper").data("unqid"),f=(new Date).getTime();if(!e.hasClass("elementor-element-edit-mode"))if("countdown"===r){u=new Date(i),i=u.getTime();var p="expires="+u.toUTCString();document.cookie=l+"="+u.getTime()+";"+p+";path=/"}else{var m=n(s),u="";if(""!==m){(u=new Date(parseInt(m))).setSeconds(u.getSeconds()+e.find(".eae-evergreen-wrapper").data("egtime")),i=u.getTime();var g=new Date(parseInt(m));g.setTime(g.getTime()+60*d*60*1e3);var v="expires="+g.toUTCString();document.cookie=s+"="+m+";"+v+";path=/";var h=new Date(parseInt(m));h.setTime(h.getTime()+1e3*e.find(".eae-evergreen-wrapper").data("egtime"));p="expires="+h.toUTCString();i-f>0&&(document.cookie=l+"="+m+";"+p+";path=/")}else{temp_date=i,(u=new Date).setSeconds(u.getSeconds()+e.find(".eae-evergreen-wrapper").data("egtime")),i=u.getTime(),t(s,(new Date).getTime(),d);var w=new Date;w.setTime(w.getTime()+1e3*temp_date);var y="expires="+w.toUTCString();document.cookie=l+"="+(new Date).getTime()+";"+y+";path=/"}}if(!e.hasClass("elementor-element-edit-mode")&&i-f<0)return void(o.length>0&&o.forEach((function(i){"redirect"===i&&($url=e.find(".eae-evergreen-wrapper").data("redirected-url"),""!==a.trim($url)&&(window.location.href=$url)),"hide"===i&&(e.find("."+c).find(".timer-container").css("display","none"),e.find("."+c).find(".egt-title").css("display","none")),"message"===i&&e.find("."+c).find(".eae-egt-message").css("display","block"),"hide_parent"===i&&(e.hasClass("elementor-element-edit-mode")||($p_secs=e.closest("section"),$p_secs.css("display","none")))})));e.hasClass("elementor-element-edit-mode")&&("countdown"===r?(u=new Date(i),i=u.getTime()):((u=new Date).setSeconds(u.getSeconds()+e.find(".eae-evergreen-wrapper").data("egtime")),i=u.getTime()));var k=setInterval((function(){var t=(new Date).getTime(),n=i-t,d=Math.floor(n/864e5),r=Math.floor(n%864e5/36e5),s=Math.floor(n%36e5/6e4),l=Math.floor(n%6e4/1e3);if(e.find("."+c).find("#eaeulSec1").find(".flip-clock-active").removeClass("flip-clock-active"),e.find("."+c).find("#eaeulSec1").find(".flip-clock-before").removeClass("flip-clock-before"),e.find("."+c).find("#eaeulSec").find(".flip-clock-active").removeClass("flip-clock-active"),e.find("."+c).find("#eaeulSec").find(".flip-clock-before").removeClass("flip-clock-before"),n<0)return clearInterval(k),void(o.length>0&&o.forEach((function(i){"redirect"===i&&(e.hasClass("elementor-element-edit-mode")||($url1=e.find(".eae-evergreen-wrapper").data("redirected-url"),""!==a.trim($url1)&&(window.location.href=$url1))),"hide"===i&&(e.hasClass("elementor-element-edit-mode")||(e.find("."+c).find(".timer-container").css("display","none"),e.find("."+c).find(".egt-title").css("display","none"))),"message"===i&&(e.hasClass("elementor-element-edit-mode")||e.find("."+c).find(".eae-egt-message").css("display","block")),"hide_parent"===i&&(e.hasClass("elementor-element-edit-mode")||($p_secs=e.closest("section"),$p_secs.css("display","none")))})));if(2===a.trim(l).length){var f="#eaeulSec1 li:eq( "+a.trim(l).charAt(1)+" )",p="#eaeulSec li:eq( "+a.trim(l).charAt(0)+" )";e.find("."+c).find(f).next().length>0?(e.find("."+c).find(f).addClass("flip-clock-active"),e.find("."+c).find(f).next().addClass("flip-clock-before")):(e.find("."+c).find("#eaeulSec1 li:last-child").addClass("flip-clock-active"),e.find("."+c).find("#eaeulSec1 li:first-child").addClass("flip-clock-before")),e.find("."+c).find(p).next().length>0?(e.find("."+c).find(p).addClass("flip-clock-active"),e.find("."+c).find(p).next().addClass("flip-clock-before")):(e.find("."+c).find("#eaeulSec li:last-child").addClass("flip-clock-active"),e.find("."+c).find("#eaeulSec li:first-child").addClass("flip-clock-before"))}else{f="#eaeulSec1 li:eq( "+a.trim(l).charAt(0)+" )",p="#eaeulSec li:eq( 0 )";e.find("."+c).find(f).next().length>0?(e.find("."+c).find(f).addClass("flip-clock-active"),e.find("."+c).find(f).next().addClass("flip-clock-before")):(e.find("."+c).find("#eaeulSec1 li:last-child").addClass("flip-clock-active"),e.find("."+c).find("#eaeulSec1 li:first-child").addClass("flip-clock-before")),e.find("."+c).find(p).next().length>0?(e.find("."+c).find(p).addClass("flip-clock-active"),e.find("."+c).find(p).next().addClass("flip-clock-before")):(e.find("."+c).find("#eaeulSec li:last-child").addClass("flip-clock-active"),e.find("."+c).find("#eaeulSec li:first-child").addClass("flip-clock-before"))}if(e.find("."+c).find("#eaeulMin1").find(".flip-clock-active").removeClass("flip-clock-active"),e.find("."+c).find("#eaeulMin1").find(".flip-clock-before").removeClass("flip-clock-before"),e.find("."+c).find("#eaeulMin").find(".flip-clock-active").removeClass("flip-clock-active"),e.find("."+c).find("#eaeulMin").find(".flip-clock-before").removeClass("flip-clock-before"),2==a.trim(s).length){f="#eaeulMin1 li:eq( "+a.trim(s).charAt(1)+" )",p="#eaeulMin li:eq( "+a.trim(s).charAt(0)+" )";e.find("."+c).find(f).next().length>0?(e.find("."+c).find(f).addClass("flip-clock-active"),e.find("."+c).find(f).next().addClass("flip-clock-before")):(e.find("."+c).find("#eaeulMin1 li:last-child").addClass("flip-clock-active"),e.find("."+c).find("#eaeulMin1 li:first-child").addClass("flip-clock-before")),e.find("."+c).find(p).next().length>0?(e.find("."+c).find(p).addClass("flip-clock-active"),e.find("."+c).find(p).next().addClass("flip-clock-before")):(e.find("."+c).find("#eaeulMin li:last-child").addClass("flip-clock-active"),e.find("."+c).find("#eaeulMin li:first-child").addClass("flip-clock-before"))}else{f="#eaeulMin1 li:eq( "+a.trim(s).charAt(0)+" )",p="#eaeulMin li:eq( 0 )";e.find("."+c).find(f).next().length>0?(e.find("."+c).find(f).addClass("flip-clock-active"),e.find("."+c).find(f).next().addClass("flip-clock-before")):(e.find("."+c).find("#eaeulMin1 li:last-child").addClass("flip-clock-active"),e.find("."+c).find("#eaeulMin1 li:first-child").addClass("flip-clock-before")),e.find("."+c).find(p).next().length>0?(e.find("."+c).find(p).addClass("flip-clock-active"),e.find("."+c).find(p).next().addClass("flip-clock-before")):(e.find("."+c).find("#eaeulMin li:last-child").addClass("flip-clock-active"),e.find("."+c).find("#eaeulMin li:first-child").addClass("flip-clock-before"))}if(e.find("."+c).find("#eaeulHour1").find(".flip-clock-active").removeClass("flip-clock-active"),e.find("."+c).find("#eaeulHour1").find(".flip-clock-before").removeClass("flip-clock-before"),e.find("."+c).find("#eaeulHour").find(".flip-clock-active").removeClass("flip-clock-active"),e.find("."+c).find("#eaeulHour").find(".flip-clock-before").removeClass("flip-clock-before"),2==a.trim(r).length){f="#eaeulHour1 li:eq( "+a.trim(r).charAt(1)+" )",p="#eaeulHour li:eq( "+a.trim(r).charAt(0)+" )";e.find("."+c).find(f).next().length>0?(e.find("."+c).find(f).addClass("flip-clock-active"),e.find("."+c).find(f).next().addClass("flip-clock-before")):(e.find("."+c).find("#eaeulHour1 li:last-child").addClass("flip-clock-active"),e.find("."+c).find("#eaeulHour1 li:first-child").addClass("flip-clock-before")),e.find("."+c).find(p).next().length>0?(e.find("."+c).find(p).addClass("flip-clock-active"),e.find("."+c).find(p).next().addClass("flip-clock-before")):(e.find("."+c).find("#eaeulHour li:last-child").addClass("flip-clock-active"),e.find("."+c).find("#eaeulHour li:first-child").addClass("flip-clock-before"))}else{f="#eaeulHour1 li:eq( "+a.trim(r).charAt(0)+" )",p="#eaeulHour li:eq( 0 )";e.find("."+c).find(f).next().length>0?(e.find("."+c).find(f).addClass("flip-clock-active"),e.find("."+c).find(f).next().addClass("flip-clock-before")):(e.find("."+c).find("#eaeulHour1 li:last-child").addClass("flip-clock-active"),e.find("."+c).find("#eaeulHour li:first-child").addClass("flip-clock-before")),e.find("."+c).find(p).next().length>0?(e.find("."+c).find(p).addClass("flip-clock-active"),e.find("."+c).find(p).next().addClass("flip-clock-before")):(e.find("."+c).find("#eaeulHour li:last-child").addClass("flip-clock-active"),e.find("."+c).find("#eaeulHour li:first-child").addClass("flip-clock-before"))}if(e.find("."+c).find("#eaeulDay1").find(".flip-clock-active").removeClass("flip-clock-active"),e.find("."+c).find("#eaeulDay1").find(".flip-clock-before").removeClass("flip-clock-before"),e.find("."+c).find("#eaeulDay").find(".flip-clock-active").removeClass("flip-clock-active"),e.find("."+c).find("#eaeulDay").find(".flip-clock-before").removeClass("flip-clock-before"),2==a.trim(d).length){f="#eaeulDay1 li:eq( "+a.trim(d).charAt(1)+" )",p="#eaeulDay li:eq( "+a.trim(d).charAt(0)+" )";e.find("."+c).find(f).next().length>0?(e.find("."+c).find(f).addClass("flip-clock-active"),e.find("."+c).find(f).next().addClass("flip-clock-before")):(e.find("."+c).find("#eaeulDay1 li:last-child").addClass("flip-clock-active"),e.find("."+c).find("#eaeulDay1 li:first-child").addClass("flip-clock-before")),e.find("."+c).find(p).next().length>0?(e.find("."+c).find(p).addClass("flip-clock-active"),e.find("."+c).find(p).next().addClass("flip-clock-before")):(e.find("."+c).find("#eaeulDay li:last-child").addClass("flip-clock-active"),e.find("."+c).find("#eaeulDay li:first-child").addClass("flip-clock-before"))}else{f="#eaeulDay1 li:eq( "+a.trim(d).charAt(0)+" )",p="#eaeulDay li:eq( 0 )";e.find("."+c).find(f).next().length>0?(e.find("."+c).find(f).addClass("flip-clock-active"),e.find("."+c).find(f).next().addClass("flip-clock-before")):(e.find("."+c).find("#eaeulDay1 li:last-child").addClass("flip-clock-active"),e.find("."+c).find("#eaeulDay li:first-child").addClass("flip-clock-before")),e.find("."+c).find(p).next().length>0?(e.find("."+c).find(p).addClass("flip-clock-active"),e.find("."+c).find(p).next().addClass("flip-clock-before")):(e.find("."+c).find("#eaeulDay li:last-child").addClass("flip-clock-active"),e.find("."+c).find("#eaeulDay li:first-child").addClass("flip-clock-before"))}}),1e3)})),elementorFrontend.hooks.addAction("frontend/element_ready/eae-evergreen-timer.skin3",(function(e,a){var i,d=e.find(".eae-evergreen-wrapper").data("egtime"),r=e.find(".eae-evergreen-wrapper").data("egt-expire"),s=e.find(".eae-evergreen-wrapper").data("element-type"),l="eae-"+e.find(".eae-evergreen-wrapper").data("id"),o="eae-temp-"+e.find(".eae-evergreen-wrapper").data("id"),c=e.find(".eae-evergreen-wrapper").data("actions"),f=e.find(".eae-evergreen-wrapper").data("days"),p=e.find(".eae-evergreen-wrapper").data("hours"),m=e.find(".eae-evergreen-wrapper").data("mins"),u=e.find(".eae-evergreen-wrapper").data("seconds"),g=e.find(".eae-evergreen-wrapper").data("unqid"),v=(new Date).getTime();if(!e.hasClass("elementor-element-edit-mode"))if("countdown"===s){y=new Date(d),d=y.getTime();var h="expires="+y.toUTCString();document.cookie=o+"="+y.getTime()+";"+h+";path=/"}else{var w=n(l),y="";if(""!==w){(y=new Date(parseInt(w))).setSeconds(y.getSeconds()+e.find(".eae-evergreen-wrapper").data("egtime")),d=y.getTime();var k=new Date(parseInt(w));k.setTime(k.getTime()+60*r*60*1e3);var b="expires="+k.toUTCString();document.cookie=l+"="+w+";"+b+";path=/";var C=new Date(parseInt(w));C.setTime(C.getTime()+1e3*e.find(".eae-evergreen-wrapper").data("egtime"));h="expires="+C.toUTCString();d-v>0&&(document.cookie=o+"="+w+";"+h+";path=/")}else{temp_date=d,(y=new Date).setSeconds(y.getSeconds()+e.find(".eae-evergreen-wrapper").data("egtime")),d=y.getTime(),t(l,(new Date).getTime(),r);var _=new Date;_.setTime(_.getTime()+1e3*temp_date);var T="expires="+_.toUTCString();document.cookie=o+"="+(new Date).getTime()+";"+T+";path=/"}}if(!e.hasClass("elementor-element-edit-mode")){var x=D(d);if(parseInt(x.all)<1){if(c.length>0&&(c.forEach((function(a){"redirect"===a&&(e.hasClass("elementor-element-edit-mode")||($url=e.find(".eae-evergreen-wrapper").data("redirected-url"),""!==$url&&(window.location.href=$url))),"hide_parent"===a&&(e.hasClass("elementor-element-edit-mode")||($p_secs=e.closest("section"),$p_secs.css("display","none"))),"hide"===a&&(e.find("#timer").css("display","none"),e.find(".egt-title").css("display","none"),e.find(".desc").css("display","none")),"message"===a&&e.find(".eae-egt-message").css("display","block")})),1===c.length&&(""===c[0]||"message"===c[0]))){var $=e.find("."+g).find("#timer")[0];"yes"===f&&($.innerHTML="<span class='egt-time eae-time-wrapper'><div>00</div></span>"),"yes"===p&&("yes"===f?a($).append("<span class='egt-time eae-time-wrapper'><div>00</div></span>"):$.innerHTML="<span class='egt-time eae-time-wrapper'><div>00</div></span>"),"yes"===m&&("yes"===f||"yes"===p?a($).append("<span class='egt-time eae-time-wrapper'><div>00</div></span>"):$.innerHTML="<span class='egt-time eae-time-wrapper'><div>00</div></span>"),"yes"===u&&("yes"===f||"yes"===p||"yes"===m?a($).append("<span class='egt-time eae-time-wrapper'><div>00</div></span>"):$.innerHTML="<span class='egt-time eae-time-wrapper'><div>00</div></span>")}return}}function D(e){var a=d-new Date;return{days:Math.floor(a/864e5),hours:"0"+Math.floor(a/36e5%24),minutes:"0"+Math.floor(a/6e4%60),seconds:"0"+Math.floor(a/1e3%60),all:a}}function S(e){e.classList.add("fade"),setTimeout((function(){e.classList.remove("fade")}),700)}e.hasClass("elementor-element-edit-mode")&&("countdown"===s?(y=new Date(d),d=y.getTime()):((y=new Date).setSeconds(y.getSeconds()+e.find(".eae-evergreen-wrapper").data("egtime")),d=y.getTime())),D(d).all>1&&(i=setInterval((function(){var t=e.find("."+g).find("#timer")[0],n=D(d);"yes"===f&&(n.days<10&&(n.days="0"+n.days),t.innerHTML="<span class='egt-time eae-time-wrapper'><div>"+n.days+"</div></span>"),"yes"===p&&("yes"===f?a(t).append("<span class='egt-time eae-time-wrapper'><div>"+n.hours.slice(-2)+"</div></span>"):t.innerHTML="<span class='egt-time eae-time-wrapper'><div>"+n.hours.slice(-2)+"</div></span>"),"yes"===m&&("yes"===f||"yes"===p?a(t).append("<span class='egt-time eae-time-wrapper'><div>"+n.minutes.slice(-2)+"</div></span>"):t.innerHTML="<span class='egt-time eae-time-wrapper'><div>"+n.minutes.slice(-2)+"</div></span>"),"yes"===u&&("yes"===f||"yes"===p||"yes"===m?a(t).append("<span class='egt-time eae-time-wrapper'><div>"+n.seconds.slice(-2)+"</div></span>"):t.innerHTML="<span class='egt-time eae-time-wrapper'><div>"+n.seconds.slice(-2)+"</div></span>");var r=t.getElementsByTagName("span");"yes"===f&&59==n.hours&&59==n.minutes&&59==n.seconds&&S(r[0]),"yes"===p&&("yes"===f?59==n.minutes&&59==n.seconds&&S(r[1]):59==n.minutes&&59==n.seconds&&S(r[0])),"yes"===m&&("yes"===f?"yes"===p?59==n.seconds&&S(r[2]):59==n.seconds&&S(r[1]):"yes"===p?59==n.seconds&&S(r[1]):59==n.seconds&&S(r[0])),"yes"===u&&("yes"===f?"yes"===p?"yes"===m&&S(r[3]):S("yes"===m?r[2]:r[1]):"yes"===p?"yes"===m&&S(r[2]):S("yes"===m?r[1]:r[0])),n.all<=1&&(clearInterval(i),"yes"===f&&(t.innerHTML="<span class='egt-time eae-time-wrapper'><div>00</div></span>"),"yes"===p&&("yes"===f?a(t).append("<span class='egt-time eae-time-wrapper'><div>00</div></span>"):t.innerHTML="<span class='egt-time eae-time-wrapper'><div>00</div></span>"),"yes"===m&&("yes"===f||"yes"===p?a(t).append("<span class='egt-time eae-time-wrapper'><div>00</div></span>"):t.innerHTML="<span class='egt-time eae-time-wrapper'><div>00</div></span>"),"yes"===u&&("yes"===f||"yes"===p||"yes"===m?a(t).append("<span class='egt-time eae-time-wrapper'><div>00</div></span>"):t.innerHTML="<span class='egt-time eae-time-wrapper'><div>00</div></span>"),e.hasClass("elementor-element-edit-mode")||c.length>0&&c.forEach((function(a){"redirect"===a&&($url1=e.find(".eae-evergreen-wrapper").data("redirected-url"),""!==$url1&&(window.location.href=$url1)),"hide"===a&&(e.find("#timer").css("display","none"),e.find(".egt-title").css("display","none"),e.find(".desc").css("display","none")),"message"===a&&e.find(".eae-egt-message").css("display","block"),"hide_parent"===a&&($p_secs=e.closest("section"),$p_secs.css("display","none"))})))}),1e3))})),elementorFrontend.hooks.addAction("frontend/element_ready/eae-comparisontable.default",(function(e,a){a(e.find(".eae-ct-heading")[0]).addClass("active"),e.find("ul").on("click","li",(function(){var i=a(this).index()+2;e.find("tr").find("td:not(:eq(0))").hide(),e.find("td:nth-child("+i+")").css("display","table-cell"),e.find("tr").find("th:not(:eq(0))").hide(),e.find("li").removeClass("active"),a(this).addClass("active")}));var i=window.matchMedia("(min-width: 767px)");function t(a){a.matches?e.find(".sep").attr("colspan",5):e.find(".sep").attr("colspan",2)}i.addListener(t),t(i)})),elementorFrontend.hooks.addAction("frontend/element_ready/eae-progress-bar.skin1",d),elementorFrontend.hooks.addAction("frontend/element_ready/eae-progress-bar.skin2",d),elementorFrontend.hooks.addAction("frontend/element_ready/eae-progress-bar.skin3",d),elementorFrontend.hooks.addAction("frontend/element_ready/eae-progress-bar.skin4",d),elementorFrontend.hooks.addAction("frontend/element_ready/eae-progress-bar.skin5",d),elementorFrontend.hooks.addAction("frontend/element_ready/eae-filterableGallery.default",(function(e,a){var i=e.find(".eae-fg-wrapper"),t=e.data("id"),n=i.attr("data-maxtilt"),d=i.attr("data-perspective"),r=i.attr("data-speed"),s=i.attr("data-tilt-axis"),l=i.attr("data-glare"),o=parseInt(i.attr("data-overlay-speed"));if(s="x"===s?"y":"y"===s?"x":"both","yes"===l)var c=i.attr("data-max-glare");l="yes"===l;var f=a(".elementor-element-"+t+" .eae-fg-image"),p=i.hasClass("masonry-yes")?"masonry":"fitRows";adata={percentPosition:!0,animationOptions:{duration:750,easing:"linear",queue:!1}},"fitRows"===p&&(adata.layoutMode="fitRows"),"masonry"===p&&(adata.masonry={columnWidth:".eae-gallery-item",horizontalOrder:!0}),e.hasClass("eae-show-all-yes")||(e.find(".eae-gallery-filter a").first().addClass("current"),adata.filter=e.find(".eae-gallery-filter a").first().attr("data-filter"));var m=f.isotope(adata);m.imagesLoaded().progress((function(){m.isotope("layout")})),e.find(".eae-tilt-yes")&&(atilt={maxTilt:n,perspective:d,easing:"linear",scale:1,speed:r,disableAxis:s,transition:!0,reset:!0,glare:l,maxGlare:c},e.find(".el-tilt").tilt(atilt)),a(".elementor-element-"+t+" .eae-gallery-filter a").on("click",(function(){e.find(".eae-gallery-filter .current").removeClass("current"),a(this).addClass("current");var i=a(this).attr("data-filter");adata.filter=i;var t=f.isotope(adata);return t.imagesLoaded().progress((function(){if(t.isotope("layout"),isEditMode)return!1;e.find(".eae-tilt-yes")&&(e.find(".el-tilt").tilt(atilt),e.find(".el-tilt").tilt.reset.call(e.find(".el-tilt")))})),!1})),i.hasClass("eae-hover-direction-effect")||e.find(".eae-gallery-item-inner").hover((function(){a(this).find(".eae-grid-overlay").addClass("animated")})),i.hasClass("eae-hover-direction-effect")&&(e.find(".eae-gallery-item-inner").hover((function(){a(this).find(".eae-grid-overlay").addClass("overlay")})),i.find(".eae-gallery-item-inner").EAEHoverDirection({speed:o}))})),elementorFrontend.hooks.addAction("frontend/element_ready/global",(function(e,a){isEditMode||e.data("wts-url")&&"yes"==e.data("wts-link")&&e.on("click",(function(a){e.data("wts-url")&&"yes"==e.data("wts-new-window")?window.open(e.data("wts-url")):location.href=e.data("wts-url")}))}))}))}(jQuery);
1
+ jQuery(window).on("elementor/frontend/init",(function(){elementorFrontend.hooks.addAction("frontend/element_ready/wts-gmap.default",(function(e){map=function(a){$wrapper=e.find(".eae-markers");var i=$wrapper.data("zoom"),t=a.find(".marker"),n=$wrapper.data("style"),d=($wrapper.data("scroll"),{zoom:i,center:new google.maps.LatLng(0,0),mapTypeId:google.maps.MapTypeId.ROADMAP,styles:n}),r=new google.maps.Map(a[0],d);return r.markers=[],t.each((function(){!function(a,i){var t=$wrapper.data("animate");$wrapper.data("show-info-window-onload");$wrapper=e.find(".eae-markers");var n=new google.maps.LatLng(a.attr("data-lat"),a.attr("data-lng"));if(icon_img=a.attr("data-icon"),""!=icon_img)var d={url:a.attr("data-icon"),scaledSize:new google.maps.Size(a.attr("data-icon-size"),a.attr("data-icon-size"))};var r=new google.maps.Marker({position:n,map:i,icon:d,animation:google.maps.Animation.DROP});"animate-yes"==t&&"yes"!=a.data("info-window")&&r.setAnimation(google.maps.Animation.BOUNCE);"animate-yes"==t&&google.maps.event.addListener(r,"click",(function(){r.setAnimation(null)}));if(i.markers.push(r),a.html()){var s=new google.maps.InfoWindow({content:a.html()});"yes"==a.data("info-window")&&s.open(i,r),google.maps.event.addListener(r,"click",(function(){s.open(i,r)}))}"animate-yes"==t&&google.maps.event.addListener(s,"closeclick",(function(){r.setAnimation(google.maps.Animation.BOUNCE)}))}(jQuery(this),r)})),function(e,a){var i=new google.maps.LatLngBounds;jQuery.each(e.markers,(function(e,a){var t=new google.maps.LatLng(a.position.lat(),a.position.lng());i.extend(t)})),1==e.markers.length?(e.setCenter(i.getCenter()),e.setZoom(a)):e.fitBounds(i)}(r,i),r}(e.find(".eae-markers"))})),elementorFrontend.hooks.addAction("frontend/element_ready/global",(function(e){var a,i,t,n,d,r,s,l=[],o=[],c=e.children(".eae-section-bs").children(".eae-section-bs-inner");c&&c.data("eae-bg-slider")&&(slider_images=c.data("eae-bg-slider"),a=c.data("eae-bg-slider-transition"),i=c.data("eae-bg-slider-animation"),n=("yes"==(t=c.data("eae-bg-custom-overlay"))||c.data("eae-bg-slider-overlay"),eae_editor.plugin_url+"assets/lib/vegas/overlays/"+c.data("eae-bg-slider-overlay")),d=c.data("eae-bg-slider-cover"),r=c.data("eae-bs-slider-delay"),s=c.data("eae-bs-slider-timer"),"undefined"!=typeof slider_images&&(l=slider_images.split(","),jQuery.each(l,(function(e,a){var i=[];i.src=a,o.push(i)})),c.vegas({slides:o,transition:a,animation:i,overlay:n,cover:d,delay:r,timer:s,init:function(){"yes"==t&&c.children(".vegas-overlay").css("background-image","")}})))}))}));var isEditMode=!1,breakpoints=eae.breakpoints;!function(e){e(window).on("elementor/frontend/init",(function(){var a=function(e,a){function i(e){$icons=a(document).find(e).find(".eae-ic-icon-wrap"),window.innerWidth<767?$icons.each((function(e,i){a(i).css("top",a(i).height()/2+8+"px"),a(i).next(".eae-info-circle-item__content-wrap").css("padding-top",a(i).height()/2+8+"px")})):$icons.each((function(e,i){a(i).css("margin-left",-.5*a(i).outerWidth()),a(i).css("margin-top",-.5*a(i).outerHeight()),$a=function(e){return e=(e-90)*Math.PI/180,{x:50+45*Math.cos(e),y:50+45*Math.sin(e)}}($angle),$b=360/$icons.length,a(i).css("left",$a.x+"%"),a(i).css("top",$a.y+"%"),$angle+=$b}))}$wrap_class=".elementor-element-"+e.data("id"),$angle=0,i(e);var t=null;function n(){"yes"==e.find(".eae-info-circle").data("autoplay")&&(t=setInterval(d,$autoplayDuration))}function d(){e.find(".eae-active").next().length>0?e.find(".eae-active").next().addClass("eae-active").siblings().removeClass("eae-active"):e.find(".eae-info-circle-item").eq(0).addClass("eae-active").siblings().removeClass("eae-active")}$autoplayDuration=e.find(".eae-info-circle").data("delay"),n(),e.find(".eae-ic-icon-wrap").hover((function(){clearInterval(t)}),(function(){n()})),e.find(".eae-info-circle-item").length>0&&a(e.find(".eae-info-circle-item")[0]).addClass("eae-active"),e.find(".eae-ic-icon-wrap").on("click",(function(){e.find(".eae-info-circle-item").removeClass("eae-active"),a(this).parent().addClass("eae-active")})),e.hasClass("eae-mouseenter-yes")&&e.find(".eae-ic-icon-wrap").on("mouseenter",(function(){e.find(".eae-info-circle-item").removeClass("eae-active"),a(this).parent().addClass("eae-active")})),window.addEventListener("resize",i.bind(this,$wrap_class))},i=function(e,a){function i(){var i=e.find(".eae-timline-progress-bar"),t=e.find(".eae-timeline-item"),n=e.find(".eae-timeline");const d=n.data("top-offset");var r=a(n).height(),s=a(t).last().find(".eae-tl-icon-wrapper").offset().top-a(t[0]).parent().offset().top,l=e.find(".eae-tl-icon-wrapper");a(i).css("top",a(t[0]).find(".eae-tl-icon-wrapper").offset().top-a(t[0]).parent().offset().top),a(i).css("bottom",r-s),a(i).css("left",l.eq(0)[0].offsetLeft+l.eq(0).width()/2),a(i).css("display","block"),t.each((function(e,i){new Waypoint({element:a(i),handler:function(e){"down"==e?a(i).addClass("eae-tl-item-focused"):a(i).removeClass("eae-tl-item-focused")},offset:d})}))}i(),window.addEventListener("resize",i),window.addEventListener("scroll",(function(){e.find(".eae-timline-progress-bar");const i=e.find(".eae-timeline").data("top-offset");e.find(".eae-pb-inner-line").css("height",a(window).scrollTop()-e.find(".eae-timeline").offset().top+i),e.find(".eae-pb-inner-line").css("max-height",e.find(".eae-pb-inner-line").parent().height())}))};function t(e,a,i){var t=new Date;t.setTime(t.getTime()+60*i*60*1e3);var n="expires="+t.toUTCString();document.cookie=e+"="+a+";"+n+";path=/"}function n(e){for(var a=e+"=",i=decodeURIComponent(document.cookie).split(";"),t=0;t<i.length;t++){for(var n=i[t];" "==n.charAt(0);)n=n.substring(1);if(0==n.indexOf(a))return n.substring(a.length,n.length)}return""}var d=function(e,a){$is_rtl=jQuery("body").hasClass("rtl"),$wrapper=e.find(".eae-progress-bar");$wrapper.attr("data-skill");var i=$wrapper.attr("data-value"),t=$wrapper.attr("data-skin"),n=$wrapper.find(".eae-pb-bar-skill"),d=$wrapper.find(".eae-pb-bar-value"),r=$wrapper.find(".eae-pb-bar"),s=$wrapper.find(".eae-pb-bar-inner");"skin1"===t&&a(s).attr("style","width : "+i+"%"),"skin2"===t&&a(s).attr("style","width : "+i+"%"),"skin3"===t&&(a(d).addClass("eae-pb-bar-value--aligned-value"),$is_rtl?a(d).attr("style","right :"+i+"%"):a(d).attr("style","left :"+i+"%"),a(s).attr("style","width :"+i+"%")),"skin4"===t&&(a(d).addClass("eae-pb-bar-value--aligned-value"),$is_rtl?a(d).attr("style","right :"+i+"%"):a(d).attr("style","left :"+i+"%"),a(s).attr("style","width :"+i+"%"),a(r).addClass("eae-pb-bar--no-overflow")),"skin5"===t&&(a(d).addClass("eae-pb-bar-value--aligned-value"),$is_rtl?a(d).attr("style","right :"+i+"%"):a(d).attr("style","left :"+i+"%"),a(s).attr("style","width :"+i+"%")),$wrapper.each((function(e,i){new Waypoint({element:i,skill_value:a(i).find(".eae-pb-bar-skill"),valueElem:a(i).find(".eae-pb-bar-value"),prgBar:a(i).find(".eae-pb-bar-bar"),prgInner:a(i).find(".eae-pb-bar-inner"),handler:function(e){"down"==e&&(a(d).hasClass("js-animated")||a(d).addClass("js-animated"),a(s).hasClass("js-animated")||a(s).addClass("js-animated"),a(n).hasClass("js-animated")||a(n).addClass("js-animated"))},offset:"bottom-in-view"})}))};e.fn.EAEHoverDirection=function(a){var i=e.extend({inaccuracy:30,speed:200},a);this.find(".overlay").css({top:-9999999}),this.mouseenter((function(a){container=e(this),overlay=container.find(".overlay"),parentOffset=container.offset(),relX=a.pageX-parentOffset.left,relY=a.pageY-parentOffset.top,overlay.css({top:0,left:0,width:container.width(),height:container.height()}),relX>container.width()-i.inaccuracy?overlay.css({top:0,left:container.width()}):relX<i.inaccuracy?overlay.css({top:0,left:-container.width()}):relY>container.height()-i.inaccuracy?overlay.css({top:container.width(),left:0}):relY<i.inaccuracy&&overlay.css({top:-container.width(),left:0}),overlay.animate({top:0,left:0},i.speed)})),this.mouseleave((function(a){container=e(this),overlay=container.find(".overlay"),parentOffset=container.offset(),relX=a.pageX-parentOffset.left,relY=a.pageY-parentOffset.top,relX<=0&&overlay.animate({top:0,left:-container.width()},i.speed),relX>=container.width()&&overlay.animate({top:0,left:container.width()},i.speed),relY<=0&&overlay.animate({left:0,top:-container.height()},i.speed),relY>=container.height()&&overlay.animate({left:0,top:container.height()},i.speed)}))},elementorFrontend.hooks.addAction("frontend/element_ready/wts-ab-image.default",(function(e,a){e.find(".eae-img-comp-container").imagesLoaded().done((function(){ab_style=e.find(".eae-img-comp-container").data("ab-style"),slider_pos=e.find(".eae-img-comp-container").data("slider-pos"),"horizontal"===ab_style?(separator_width=parseInt(e.find(".eae-img-comp-overlay").css("border-right-width")),function(e){var a,i;a=e.find(".eae-img-comp-overlay"),i=(i=a.width())*slider_pos/100,function(a){var t,n,d,r=0;function s(e){e.preventDefault(),r=1,window.addEventListener("mousemove",o),t.addEventListener("touchmove",c)}function l(){r=0}function o(e){var i;if(0==r)return!1;(i=function(e){var i;return e=e||window.event,i=a.getBoundingClientRect(),e.pageX-i.left}(e))<0&&(i=0),i>n&&(i=n),f(i)}function c(e){var i;if(0==r)return!1;(i=function(e){var i;return i=a.getBoundingClientRect(),e.changedTouches[0].clientX-i.left}(e))<0&&(i=0),i>n&&(i=n),f(i)}function f(e){a.style.width=e+"px",t.style.left=a.offsetWidth-t.offsetWidth/2-separator_width/2+"px"}n=a.offsetWidth,d=a.offsetHeight,a.style.width=i+"px",(t=(t=e.find(".eae-img-comp-slider"))[0]).style.top=d/2-t.offsetHeight/2+"px",t.style.left=i-t.offsetWidth/2-separator_width/2+"px",e.hasClass("elementor-element-edit-mode")||(t.addEventListener("mousedown",s),window.addEventListener("mouseup",l),t.addEventListener("touchstart",s),window.addEventListener("touchstop",l))}(a[0])}(e)):(separator_width=parseInt(e.find(".eae-img-comp-overlay").css("border-bottom-width")),function(e){var a;a=e.find(".eae-img-comp-overlay"),start_pos=a.height(),start_pos=start_pos*slider_pos/100,function(a){var i,t,n,d=0;function r(e){e.preventDefault(),d=1,window.addEventListener("mousemove",l),i.addEventListener("touchmove",o)}function s(){d=0}function l(e){var i;if(0==d)return!1;(i=function(e){var i,t=0;return e=e||window.event,i=a.getBoundingClientRect(),t=e.pageY-i.top,t-=window.pageYOffset}(e))<0&&(i=0),i>n&&(i=n),c(i)}function o(e){var i;if(0==d)return!1;(i=function(e){var i;return i=a.getBoundingClientRect(),e.changedTouches[0].clientY-i.top}(e))<0&&(i=0),i>n&&(i=n),c(i)}function c(e){a.style.height=e+"px",i.style.top=a.offsetHeight-i.offsetHeight/2-separator_width/2+"px"}t=a.offsetWidth,n=a.offsetHeight,a.style.height=start_pos+"px",(i=(i=e.find(".eae-img-comp-slider"))[0]).style.top=start_pos-i.offsetHeight/2-separator_width/2+"px",i.style.left=t/2-i.offsetWidth/2+"px",e.hasClass("elementor-element-edit-mode")||(i.addEventListener("mousedown",r),window.addEventListener("mouseup",s),i.addEventListener("touchstart",r),window.addEventListener("touchstop",s))}(a[0])}(e))}))})),elementorFrontend.hooks.addAction("frontend/element_ready/global",(function(e,a){e.hasClass("eae-particle-yes")&&(id=e.data("id"),element_type=e.data("element_type"),pdata=e.data("eae-particle"),pdata_wrapper=e.find(".eae-particle-wrapper").data("eae-pdata"),"undefined"!=typeof pdata&&""!=pdata?e.find(".eae-section-bs").length>0?(e.find(".eae-section-bs").after('<div class="eae-particle-wrapper" id="eae-particle-'+id+'"></div>'),particlesJS("eae-particle-"+id,pdata)):("column"==element_type?e.prepend('<div class="eae-particle-wrapper" id="eae-particle-'+id+'"></div>'):e.prepend('<div class="eae-particle-wrapper " id="eae-particle-'+id+'"></div>'),particlesJS("eae-particle-"+id,pdata)):"undefined"!=typeof pdata_wrapper&&""!=pdata_wrapper&&(element_type,e.prepend('<div class="eae-particle-wrapper eae-particle-area" id="eae-particle-'+id+'"></div>'),particlesJS("eae-particle-"+id,JSON.parse(pdata_wrapper))))})),elementorFrontend.hooks.addAction("frontend/element_ready/global",(function(e,a){if(e.hasClass("eae-animated-gradient-yes")){id=e.data("id"),color=e.data("color"),angle=e.data("angle");var i="linear-gradient("+angle+","+color+")";heading=e.find(".elementor-heading-title"),e.css("background-image",i),e.hasClass("elementor-element-edit-mode")&&(color=e.find(".animated-gradient").data("color"),angle=e.find(".animated-gradient").data("angle"),gradient_color_editor="linear-gradient("+angle+","+color+")",e.prepend('<div class="animated-gradient" style="background-image : '+gradient_color_editor+' "></div>'))}})),elementorFrontend.hooks.addAction("frontend/element_ready/wts-modal-popup.default",(function(e,a){$preview_modal=e.find(".eae-popup-wrapper").data("preview-modal"),$close_btn_type=e.find(".eae-popup-wrapper").data("close-button-type"),$close_btn=e.find(".eae-popup-wrapper").data("close-btn"),"icon"==$close_btn_type?$close_btn_html='<i class="eae-close '+$close_btn+'"> </i>':$close_btn_html='<svg class="eae-close" style="-webkit-mask: url('+$close_btn+"); mask: url("+$close_btn+'); "></svg>',$magnific=e.find(".eae-popup-link").eaePopup({type:"inline",disableOn:0,key:null,midClick:!1,mainClass:"eae-popup eae-popup-"+e.find(".eae-popup-link").data("id")+" eae-wrap-"+e.find(".eae-popup-link").data("ctrl-id"),preloader:!0,focus:"",closeOnContentClick:!1,closeOnBgClick:!0,closeBtnInside:e.find(".eae-popup-wrapper").data("close-in-out"),showCloseBtn:!0,enableEscapeKey:!1,modal:!1,alignTop:!1,removalDelay:0,prependTo:null,fixedContentPos:"auto",fixedBgPos:"auto",overflowY:"auto",closeMarkup:$close_btn_html,tClose:"Close (Esc)",tLoading:"Loading...",autoFocusLast:!0}),"yes"==$preview_modal&&e.hasClass("elementor-element-edit-mode")&&e.find(".eae-popup-link").click()})),elementorFrontend.hooks.addAction("frontend/element_ready/wts-testimonial-slider.default",(function(e,a){if(e.find(".eae-grid-wrapper").hasClass("eae-masonry-yes")){var i=e.find(".eae-grid").masonry({});i.imagesLoaded().progress((function(){i.masonry("layout")}))}if(e.find(".eae-layout-carousel").length){outer_wrapper=e.find(".eae-swiper-outer-wrapper"),wid=e.data("id"),wclass=".elementor-element-"+wid;var t=outer_wrapper.data("direction"),n=outer_wrapper.data("speed"),d=outer_wrapper.data("autoplay"),r=outer_wrapper.data("duration"),s=outer_wrapper.data("effect"),l=outer_wrapper.data("space"),o=outer_wrapper.data("loop");o="yes"==o;var c=outer_wrapper.data("slides-per-view"),f=outer_wrapper.data("slides-per-group"),p=outer_wrapper.data("ptype"),m=outer_wrapper.data("navigation"),u=outer_wrapper.data("clickable"),g=outer_wrapper.data("keyboard"),v=outer_wrapper.data("scrollbar");adata={direction:t,effect:s,spaceBetween:l.desktop,loop:o,speed:n,slidesPerView:c.desktop,slidesPerGroup:f.desktop,observer:!0,mousewheel:{invert:!0},breakpoints:{1024:{spaceBetween:l.tablet,slidesPerView:c.tablet,slidesPerGroup:f.tablet},767:{spaceBetween:l.mobile,slidesPerView:c.mobile,slidesPerGroup:f.mobile}}},"fade"==s&&(adata.fadeEffect={crossFade:!1}),adata.autoplay="yes"==d&&{delay:r,disableOnInteraction:!1},"yes"==m&&(adata.navigation={nextEl:".swiper-button-next",prevEl:".swiper-button-prev"}),""!=p&&(adata.pagination={el:".swiper-pagination",type:p}),"bullets"==p&&"yes"==u&&(adata.pagination={el:".swiper-pagination",clickable:!0,type:p}),"yes"==v&&(adata.scrollbar={el:".swiper-scrollbar",draggable:!0}),"yes"==g&&(adata.keyboard={enabled:!0,onlyInViewport:!0}),0==o&&(adata.autoplay={delay:r,stopOnLastSlide:!0,disableOnInteraction:!1}),window.mswiper=new Swiper(".elementor-element-"+wid+" .eae-swiper-outer-wrapper .swiper-container",adata),a(".elementor-element-"+wid+" .eae-swiper-outer-wrapper .swiper-container").css("visibility","visible")}})),elementorFrontend.hooks.addAction("frontend/element_ready/eae-info-circle.skin1",a),elementorFrontend.hooks.addAction("frontend/element_ready/eae-info-circle.skin2",a),elementorFrontend.hooks.addAction("frontend/element_ready/eae-info-circle.skin3",a),elementorFrontend.hooks.addAction("frontend/element_ready/eae-info-circle.skin4",a),elementorFrontend.hooks.addAction("frontend/element_ready/eae-timeline.skin1",i),elementorFrontend.hooks.addAction("frontend/element_ready/eae-timeline.skin2",i),elementorFrontend.hooks.addAction("frontend/element_ready/eae-timeline.skin3",i),elementorFrontend.hooks.addAction("frontend/element_ready/eae-timeline.skin4",i),elementorFrontend.hooks.addAction("frontend/element_ready/eae-evergreen-timer.skin1",(function(e,a){var i=e.find(".eae-evergreen-wrapper").data("egtime"),d=e.find(".eae-evergreen-wrapper").data("egt-expire"),r=e.find(".eae-evergreen-wrapper").data("element-type"),s="eae-"+e.find(".eae-evergreen-wrapper").data("id"),l="eae-temp-"+e.find(".eae-evergreen-wrapper").data("id"),o=e.find(".eae-evergreen-wrapper").data("actions"),c=e.find(".eae-evergreen-wrapper").data("unqid"),f=(new Date).getTime();if(!e.hasClass("elementor-element-edit-mode"))if("countdown"===r){u=new Date(i),i=u.getTime();var p="expires="+u.toUTCString();document.cookie=l+"="+u.getTime()+";"+p+";path=/"}else{var m=n(s),u="";if(""!==m){(u=new Date(parseInt(m))).setSeconds(u.getSeconds()+e.find(".eae-evergreen-wrapper").data("egtime")),i=u.getTime();var g=new Date(parseInt(m));g.setTime(g.getTime()+60*d*60*1e3);var v="expires="+g.toUTCString();document.cookie=s+"="+m+";"+v+";path=/";var h=new Date(parseInt(m));h.setTime(h.getTime()+1e3*e.find(".eae-evergreen-wrapper").data("egtime"));p="expires="+h.toUTCString();i-f>0&&(document.cookie=l+"="+m+";"+p+";path=/")}else{temp_date=i,(u=new Date).setSeconds(u.getSeconds()+e.find(".eae-evergreen-wrapper").data("egtime")),i=u.getTime(),t(s,(new Date).getTime(),d);var w=new Date;w.setTime(w.getTime()+1e3*temp_date);var y="expires="+w.toUTCString();document.cookie=l+"="+(new Date).getTime()+";"+y+";path=/"}}if(!e.hasClass("elementor-element-edit-mode")&&i-f<0)return o.length>0&&o.forEach((function(i){"redirect"===i&&($url=e.find(".eae-evergreen-wrapper").data("redirected-url"),""!==a.trim($url)&&(window.location.href=$url1)),"hide"===i&&(e.hasClass("elementor-element-edit-mode")||(e.find("#eaeclockdiv").css("display","none"),e.find(".egt-title").css("display","none"))),"message"===i&&e.find(".eae-egt-message").css("display","block"),"hide_parent"===i&&(e.hasClass("elementor-element-edit-mode")||($p_secs=e.closest("section"),$p_secs.css("display","none")))})),days="00",hours="00",minutes="00",seconds="00",e.find("."+c).find("#eaedivDays").html(days),e.find("."+c).find("#eaedivHours").html(hours.slice(-2)),e.find("."+c).find("#eaedivMinutes").html(minutes.slice(-2)),void e.find("."+c).find("#eaedivSeconds").html(seconds.slice(-2));e.hasClass("elementor-element-edit-mode")&&("countdown"===r?(u=new Date(i),i=u.getTime()):((u=new Date).setSeconds(u.getSeconds()+e.find(".eae-evergreen-wrapper").data("egtime")),i=u.getTime()));var k=setInterval((function(){var t=(new Date).getTime(),n=i-t,d=0,r=0,s=0,l=0;n>0?(d=Math.floor(n/864e5),r="0"+Math.floor(n%864e5/36e5),s="0"+Math.floor(n%36e5/6e4),l="0"+Math.floor(n%6e4/1e3)):(o.length>0&&(e.hasClass("elementor-element-edit-mode")||o.forEach((function(i){"redirect"===i&&($url1=e.find(".eae-evergreen-wrapper").data("redirected-url"),""!==a.trim($url1)&&(window.location.href=$url1)),"hide"===i&&(e.find("#eaeclockdiv").css("display","none"),e.find(".egt-title").css("display","none")),"message"===i&&e.find(".eae-egt-message").css("display","block"),"hide_parent"===i&&(e.hasClass("elementor-element-edit-mode")||($p_secs=e.closest("section"),$p_secs.css("display","none")))}))),clearInterval(k),d="0",r="00",s="00",l="00"),d<10&&(d="0"+d),e.find("."+c).find("#eaedivDays").html(d),e.find("."+c).find("#eaedivHours").html(r.slice(-2)),e.find("."+c).find("#eaedivMinutes").html(s.slice(-2)),e.find("."+c).find("#eaedivSeconds").html(l.slice(-2))}),1e3)})),elementorFrontend.hooks.addAction("frontend/element_ready/eae-evergreen-timer.skin2",(function(e,a){var i=e.find(".eae-evergreen-wrapper").data("egtime"),d=e.find(".eae-evergreen-wrapper").data("egt-expire"),r=e.find(".eae-evergreen-wrapper").data("element-type"),s="eae-"+e.find(".eae-evergreen-wrapper").data("id"),l="eae-temp-"+e.find(".eae-evergreen-wrapper").data("id"),o=e.find(".eae-evergreen-wrapper").data("actions"),c=e.find(".eae-evergreen-wrapper").data("unqid"),f=(new Date).getTime();if(!e.hasClass("elementor-element-edit-mode"))if("countdown"===r){u=new Date(i),i=u.getTime();var p="expires="+u.toUTCString();document.cookie=l+"="+u.getTime()+";"+p+";path=/"}else{var m=n(s),u="";if(""!==m){(u=new Date(parseInt(m))).setSeconds(u.getSeconds()+e.find(".eae-evergreen-wrapper").data("egtime")),i=u.getTime();var g=new Date(parseInt(m));g.setTime(g.getTime()+60*d*60*1e3);var v="expires="+g.toUTCString();document.cookie=s+"="+m+";"+v+";path=/";var h=new Date(parseInt(m));h.setTime(h.getTime()+1e3*e.find(".eae-evergreen-wrapper").data("egtime"));p="expires="+h.toUTCString();i-f>0&&(document.cookie=l+"="+m+";"+p+";path=/")}else{temp_date=i,(u=new Date).setSeconds(u.getSeconds()+e.find(".eae-evergreen-wrapper").data("egtime")),i=u.getTime(),t(s,(new Date).getTime(),d);var w=new Date;w.setTime(w.getTime()+1e3*temp_date);var y="expires="+w.toUTCString();document.cookie=l+"="+(new Date).getTime()+";"+y+";path=/"}}if(!e.hasClass("elementor-element-edit-mode")&&i-f<0)return void(o.length>0&&o.forEach((function(i){"redirect"===i&&($url=e.find(".eae-evergreen-wrapper").data("redirected-url"),""!==a.trim($url)&&(window.location.href=$url)),"hide"===i&&(e.find("."+c).find(".timer-container").css("display","none"),e.find("."+c).find(".egt-title").css("display","none")),"message"===i&&e.find("."+c).find(".eae-egt-message").css("display","block"),"hide_parent"===i&&(e.hasClass("elementor-element-edit-mode")||($p_secs=e.closest("section"),$p_secs.css("display","none")))})));e.hasClass("elementor-element-edit-mode")&&("countdown"===r?(u=new Date(i),i=u.getTime()):((u=new Date).setSeconds(u.getSeconds()+e.find(".eae-evergreen-wrapper").data("egtime")),i=u.getTime()));var k=setInterval((function(){var t=(new Date).getTime(),n=i-t,d=Math.floor(n/864e5),r=Math.floor(n%864e5/36e5),s=Math.floor(n%36e5/6e4),l=Math.floor(n%6e4/1e3);if(e.find("."+c).find("#eaeulSec1").find(".flip-clock-active").removeClass("flip-clock-active"),e.find("."+c).find("#eaeulSec1").find(".flip-clock-before").removeClass("flip-clock-before"),e.find("."+c).find("#eaeulSec").find(".flip-clock-active").removeClass("flip-clock-active"),e.find("."+c).find("#eaeulSec").find(".flip-clock-before").removeClass("flip-clock-before"),n<0)return clearInterval(k),void(o.length>0&&o.forEach((function(i){"redirect"===i&&(e.hasClass("elementor-element-edit-mode")||($url1=e.find(".eae-evergreen-wrapper").data("redirected-url"),""!==a.trim($url1)&&(window.location.href=$url1))),"hide"===i&&(e.hasClass("elementor-element-edit-mode")||(e.find("."+c).find(".timer-container").css("display","none"),e.find("."+c).find(".egt-title").css("display","none"))),"message"===i&&(e.hasClass("elementor-element-edit-mode")||e.find("."+c).find(".eae-egt-message").css("display","block")),"hide_parent"===i&&(e.hasClass("elementor-element-edit-mode")||($p_secs=e.closest("section"),$p_secs.css("display","none")))})));if(2===a.trim(l).length){var f="#eaeulSec1 li:eq( "+a.trim(l).charAt(1)+" )",p="#eaeulSec li:eq( "+a.trim(l).charAt(0)+" )";e.find("."+c).find(f).next().length>0?(e.find("."+c).find(f).addClass("flip-clock-active"),e.find("."+c).find(f).next().addClass("flip-clock-before")):(e.find("."+c).find("#eaeulSec1 li:last-child").addClass("flip-clock-active"),e.find("."+c).find("#eaeulSec1 li:first-child").addClass("flip-clock-before")),e.find("."+c).find(p).next().length>0?(e.find("."+c).find(p).addClass("flip-clock-active"),e.find("."+c).find(p).next().addClass("flip-clock-before")):(e.find("."+c).find("#eaeulSec li:last-child").addClass("flip-clock-active"),e.find("."+c).find("#eaeulSec li:first-child").addClass("flip-clock-before"))}else{f="#eaeulSec1 li:eq( "+a.trim(l).charAt(0)+" )",p="#eaeulSec li:eq( 0 )";e.find("."+c).find(f).next().length>0?(e.find("."+c).find(f).addClass("flip-clock-active"),e.find("."+c).find(f).next().addClass("flip-clock-before")):(e.find("."+c).find("#eaeulSec1 li:last-child").addClass("flip-clock-active"),e.find("."+c).find("#eaeulSec1 li:first-child").addClass("flip-clock-before")),e.find("."+c).find(p).next().length>0?(e.find("."+c).find(p).addClass("flip-clock-active"),e.find("."+c).find(p).next().addClass("flip-clock-before")):(e.find("."+c).find("#eaeulSec li:last-child").addClass("flip-clock-active"),e.find("."+c).find("#eaeulSec li:first-child").addClass("flip-clock-before"))}if(e.find("."+c).find("#eaeulMin1").find(".flip-clock-active").removeClass("flip-clock-active"),e.find("."+c).find("#eaeulMin1").find(".flip-clock-before").removeClass("flip-clock-before"),e.find("."+c).find("#eaeulMin").find(".flip-clock-active").removeClass("flip-clock-active"),e.find("."+c).find("#eaeulMin").find(".flip-clock-before").removeClass("flip-clock-before"),2==a.trim(s).length){f="#eaeulMin1 li:eq( "+a.trim(s).charAt(1)+" )",p="#eaeulMin li:eq( "+a.trim(s).charAt(0)+" )";e.find("."+c).find(f).next().length>0?(e.find("."+c).find(f).addClass("flip-clock-active"),e.find("."+c).find(f).next().addClass("flip-clock-before")):(e.find("."+c).find("#eaeulMin1 li:last-child").addClass("flip-clock-active"),e.find("."+c).find("#eaeulMin1 li:first-child").addClass("flip-clock-before")),e.find("."+c).find(p).next().length>0?(e.find("."+c).find(p).addClass("flip-clock-active"),e.find("."+c).find(p).next().addClass("flip-clock-before")):(e.find("."+c).find("#eaeulMin li:last-child").addClass("flip-clock-active"),e.find("."+c).find("#eaeulMin li:first-child").addClass("flip-clock-before"))}else{f="#eaeulMin1 li:eq( "+a.trim(s).charAt(0)+" )",p="#eaeulMin li:eq( 0 )";e.find("."+c).find(f).next().length>0?(e.find("."+c).find(f).addClass("flip-clock-active"),e.find("."+c).find(f).next().addClass("flip-clock-before")):(e.find("."+c).find("#eaeulMin1 li:last-child").addClass("flip-clock-active"),e.find("."+c).find("#eaeulMin1 li:first-child").addClass("flip-clock-before")),e.find("."+c).find(p).next().length>0?(e.find("."+c).find(p).addClass("flip-clock-active"),e.find("."+c).find(p).next().addClass("flip-clock-before")):(e.find("."+c).find("#eaeulMin li:last-child").addClass("flip-clock-active"),e.find("."+c).find("#eaeulMin li:first-child").addClass("flip-clock-before"))}if(e.find("."+c).find("#eaeulHour1").find(".flip-clock-active").removeClass("flip-clock-active"),e.find("."+c).find("#eaeulHour1").find(".flip-clock-before").removeClass("flip-clock-before"),e.find("."+c).find("#eaeulHour").find(".flip-clock-active").removeClass("flip-clock-active"),e.find("."+c).find("#eaeulHour").find(".flip-clock-before").removeClass("flip-clock-before"),2==a.trim(r).length){f="#eaeulHour1 li:eq( "+a.trim(r).charAt(1)+" )",p="#eaeulHour li:eq( "+a.trim(r).charAt(0)+" )";e.find("."+c).find(f).next().length>0?(e.find("."+c).find(f).addClass("flip-clock-active"),e.find("."+c).find(f).next().addClass("flip-clock-before")):(e.find("."+c).find("#eaeulHour1 li:last-child").addClass("flip-clock-active"),e.find("."+c).find("#eaeulHour1 li:first-child").addClass("flip-clock-before")),e.find("."+c).find(p).next().length>0?(e.find("."+c).find(p).addClass("flip-clock-active"),e.find("."+c).find(p).next().addClass("flip-clock-before")):(e.find("."+c).find("#eaeulHour li:last-child").addClass("flip-clock-active"),e.find("."+c).find("#eaeulHour li:first-child").addClass("flip-clock-before"))}else{f="#eaeulHour1 li:eq( "+a.trim(r).charAt(0)+" )",p="#eaeulHour li:eq( 0 )";e.find("."+c).find(f).next().length>0?(e.find("."+c).find(f).addClass("flip-clock-active"),e.find("."+c).find(f).next().addClass("flip-clock-before")):(e.find("."+c).find("#eaeulHour1 li:last-child").addClass("flip-clock-active"),e.find("."+c).find("#eaeulHour li:first-child").addClass("flip-clock-before")),e.find("."+c).find(p).next().length>0?(e.find("."+c).find(p).addClass("flip-clock-active"),e.find("."+c).find(p).next().addClass("flip-clock-before")):(e.find("."+c).find("#eaeulHour li:last-child").addClass("flip-clock-active"),e.find("."+c).find("#eaeulHour li:first-child").addClass("flip-clock-before"))}if(e.find("."+c).find("#eaeulDay1").find(".flip-clock-active").removeClass("flip-clock-active"),e.find("."+c).find("#eaeulDay1").find(".flip-clock-before").removeClass("flip-clock-before"),e.find("."+c).find("#eaeulDay").find(".flip-clock-active").removeClass("flip-clock-active"),e.find("."+c).find("#eaeulDay").find(".flip-clock-before").removeClass("flip-clock-before"),2==a.trim(d).length){f="#eaeulDay1 li:eq( "+a.trim(d).charAt(1)+" )",p="#eaeulDay li:eq( "+a.trim(d).charAt(0)+" )";e.find("."+c).find(f).next().length>0?(e.find("."+c).find(f).addClass("flip-clock-active"),e.find("."+c).find(f).next().addClass("flip-clock-before")):(e.find("."+c).find("#eaeulDay1 li:last-child").addClass("flip-clock-active"),e.find("."+c).find("#eaeulDay1 li:first-child").addClass("flip-clock-before")),e.find("."+c).find(p).next().length>0?(e.find("."+c).find(p).addClass("flip-clock-active"),e.find("."+c).find(p).next().addClass("flip-clock-before")):(e.find("."+c).find("#eaeulDay li:last-child").addClass("flip-clock-active"),e.find("."+c).find("#eaeulDay li:first-child").addClass("flip-clock-before"))}else{f="#eaeulDay1 li:eq( "+a.trim(d).charAt(0)+" )",p="#eaeulDay li:eq( 0 )";e.find("."+c).find(f).next().length>0?(e.find("."+c).find(f).addClass("flip-clock-active"),e.find("."+c).find(f).next().addClass("flip-clock-before")):(e.find("."+c).find("#eaeulDay1 li:last-child").addClass("flip-clock-active"),e.find("."+c).find("#eaeulDay li:first-child").addClass("flip-clock-before")),e.find("."+c).find(p).next().length>0?(e.find("."+c).find(p).addClass("flip-clock-active"),e.find("."+c).find(p).next().addClass("flip-clock-before")):(e.find("."+c).find("#eaeulDay li:last-child").addClass("flip-clock-active"),e.find("."+c).find("#eaeulDay li:first-child").addClass("flip-clock-before"))}}),1e3)})),elementorFrontend.hooks.addAction("frontend/element_ready/eae-evergreen-timer.skin3",(function(e,a){var i,d=e.find(".eae-evergreen-wrapper").data("egtime"),r=e.find(".eae-evergreen-wrapper").data("egt-expire"),s=e.find(".eae-evergreen-wrapper").data("element-type"),l="eae-"+e.find(".eae-evergreen-wrapper").data("id"),o="eae-temp-"+e.find(".eae-evergreen-wrapper").data("id"),c=e.find(".eae-evergreen-wrapper").data("actions"),f=e.find(".eae-evergreen-wrapper").data("days"),p=e.find(".eae-evergreen-wrapper").data("hours"),m=e.find(".eae-evergreen-wrapper").data("mins"),u=e.find(".eae-evergreen-wrapper").data("seconds"),g=e.find(".eae-evergreen-wrapper").data("unqid"),v=(new Date).getTime();if(!e.hasClass("elementor-element-edit-mode"))if("countdown"===s){y=new Date(d),d=y.getTime();var h="expires="+y.toUTCString();document.cookie=o+"="+y.getTime()+";"+h+";path=/"}else{var w=n(l),y="";if(""!==w){(y=new Date(parseInt(w))).setSeconds(y.getSeconds()+e.find(".eae-evergreen-wrapper").data("egtime")),d=y.getTime();var k=new Date(parseInt(w));k.setTime(k.getTime()+60*r*60*1e3);var b="expires="+k.toUTCString();document.cookie=l+"="+w+";"+b+";path=/";var C=new Date(parseInt(w));C.setTime(C.getTime()+1e3*e.find(".eae-evergreen-wrapper").data("egtime"));h="expires="+C.toUTCString();d-v>0&&(document.cookie=o+"="+w+";"+h+";path=/")}else{temp_date=d,(y=new Date).setSeconds(y.getSeconds()+e.find(".eae-evergreen-wrapper").data("egtime")),d=y.getTime(),t(l,(new Date).getTime(),r);var _=new Date;_.setTime(_.getTime()+1e3*temp_date);var T="expires="+_.toUTCString();document.cookie=o+"="+(new Date).getTime()+";"+T+";path=/"}}if(!e.hasClass("elementor-element-edit-mode")){var x=D(d);if(parseInt(x.all)<1){if(c.length>0&&(c.forEach((function(a){"redirect"===a&&(e.hasClass("elementor-element-edit-mode")||($url=e.find(".eae-evergreen-wrapper").data("redirected-url"),""!==$url&&(window.location.href=$url))),"hide_parent"===a&&(e.hasClass("elementor-element-edit-mode")||($p_secs=e.closest("section"),$p_secs.css("display","none"))),"hide"===a&&(e.find("#timer").css("display","none"),e.find(".egt-title").css("display","none"),e.find(".desc").css("display","none")),"message"===a&&e.find(".eae-egt-message").css("display","block")})),1===c.length&&(""===c[0]||"message"===c[0]))){var $=e.find("."+g).find("#timer")[0];"yes"===f&&($.innerHTML="<span class='egt-time eae-time-wrapper'><div>00</div></span>"),"yes"===p&&("yes"===f?a($).append("<span class='egt-time eae-time-wrapper'><div>00</div></span>"):$.innerHTML="<span class='egt-time eae-time-wrapper'><div>00</div></span>"),"yes"===m&&("yes"===f||"yes"===p?a($).append("<span class='egt-time eae-time-wrapper'><div>00</div></span>"):$.innerHTML="<span class='egt-time eae-time-wrapper'><div>00</div></span>"),"yes"===u&&("yes"===f||"yes"===p||"yes"===m?a($).append("<span class='egt-time eae-time-wrapper'><div>00</div></span>"):$.innerHTML="<span class='egt-time eae-time-wrapper'><div>00</div></span>")}return}}function D(e){var a=d-new Date;return{days:Math.floor(a/864e5),hours:"0"+Math.floor(a/36e5%24),minutes:"0"+Math.floor(a/6e4%60),seconds:"0"+Math.floor(a/1e3%60),all:a}}function S(e){e.classList.add("fade"),setTimeout((function(){e.classList.remove("fade")}),700)}e.hasClass("elementor-element-edit-mode")&&("countdown"===s?(y=new Date(d),d=y.getTime()):((y=new Date).setSeconds(y.getSeconds()+e.find(".eae-evergreen-wrapper").data("egtime")),d=y.getTime())),D(d).all>1&&(i=setInterval((function(){var t=e.find("."+g).find("#timer")[0],n=D(d);"yes"===f&&(n.days<10&&(n.days="0"+n.days),t.innerHTML="<span class='egt-time eae-time-wrapper'><div>"+n.days+"</div></span>"),"yes"===p&&("yes"===f?a(t).append("<span class='egt-time eae-time-wrapper'><div>"+n.hours.slice(-2)+"</div></span>"):t.innerHTML="<span class='egt-time eae-time-wrapper'><div>"+n.hours.slice(-2)+"</div></span>"),"yes"===m&&("yes"===f||"yes"===p?a(t).append("<span class='egt-time eae-time-wrapper'><div>"+n.minutes.slice(-2)+"</div></span>"):t.innerHTML="<span class='egt-time eae-time-wrapper'><div>"+n.minutes.slice(-2)+"</div></span>"),"yes"===u&&("yes"===f||"yes"===p||"yes"===m?a(t).append("<span class='egt-time eae-time-wrapper'><div>"+n.seconds.slice(-2)+"</div></span>"):t.innerHTML="<span class='egt-time eae-time-wrapper'><div>"+n.seconds.slice(-2)+"</div></span>");var r=t.getElementsByTagName("span");"yes"===f&&59==n.hours&&59==n.minutes&&59==n.seconds&&S(r[0]),"yes"===p&&("yes"===f?59==n.minutes&&59==n.seconds&&S(r[1]):59==n.minutes&&59==n.seconds&&S(r[0])),"yes"===m&&("yes"===f?"yes"===p?59==n.seconds&&S(r[2]):59==n.seconds&&S(r[1]):"yes"===p?59==n.seconds&&S(r[1]):59==n.seconds&&S(r[0])),"yes"===u&&("yes"===f?"yes"===p?"yes"===m&&S(r[3]):S("yes"===m?r[2]:r[1]):"yes"===p?"yes"===m&&S(r[2]):S("yes"===m?r[1]:r[0])),n.all<=1&&(clearInterval(i),"yes"===f&&(t.innerHTML="<span class='egt-time eae-time-wrapper'><div>00</div></span>"),"yes"===p&&("yes"===f?a(t).append("<span class='egt-time eae-time-wrapper'><div>00</div></span>"):t.innerHTML="<span class='egt-time eae-time-wrapper'><div>00</div></span>"),"yes"===m&&("yes"===f||"yes"===p?a(t).append("<span class='egt-time eae-time-wrapper'><div>00</div></span>"):t.innerHTML="<span class='egt-time eae-time-wrapper'><div>00</div></span>"),"yes"===u&&("yes"===f||"yes"===p||"yes"===m?a(t).append("<span class='egt-time eae-time-wrapper'><div>00</div></span>"):t.innerHTML="<span class='egt-time eae-time-wrapper'><div>00</div></span>"),e.hasClass("elementor-element-edit-mode")||c.length>0&&c.forEach((function(a){"redirect"===a&&($url1=e.find(".eae-evergreen-wrapper").data("redirected-url"),""!==$url1&&(window.location.href=$url1)),"hide"===a&&(e.find("#timer").css("display","none"),e.find(".egt-title").css("display","none"),e.find(".desc").css("display","none")),"message"===a&&e.find(".eae-egt-message").css("display","block"),"hide_parent"===a&&($p_secs=e.closest("section"),$p_secs.css("display","none"))})))}),1e3))})),elementorFrontend.hooks.addAction("frontend/element_ready/eae-comparisontable.default",(function(e,a){a(e.find(".eae-ct-heading")[0]).addClass("active"),e.find("ul").on("click","li",(function(){var i=a(this).index()+2;e.find("tr").find("td:not(:eq(0))").hide(),e.find("td:nth-child("+i+")").css("display","table-cell"),e.find("tr").find("th:not(:eq(0))").hide(),e.find("li").removeClass("active"),a(this).addClass("active")}));var i=window.matchMedia("(min-width: 767px)");function t(a){a.matches?e.find(".sep").attr("colspan",5):e.find(".sep").attr("colspan",2)}i.addListener(t),t(i)})),elementorFrontend.hooks.addAction("frontend/element_ready/eae-progress-bar.skin1",d),elementorFrontend.hooks.addAction("frontend/element_ready/eae-progress-bar.skin2",d),elementorFrontend.hooks.addAction("frontend/element_ready/eae-progress-bar.skin3",d),elementorFrontend.hooks.addAction("frontend/element_ready/eae-progress-bar.skin4",d),elementorFrontend.hooks.addAction("frontend/element_ready/eae-progress-bar.skin5",d),elementorFrontend.hooks.addAction("frontend/element_ready/eae-filterableGallery.default",(function(e,a){var i=e.find(".eae-fg-wrapper"),t=e.data("id"),n=i.attr("data-maxtilt"),d=i.attr("data-perspective"),r=i.attr("data-speed"),s=i.attr("data-tilt-axis"),l=i.attr("data-glare"),o=parseInt(i.attr("data-overlay-speed"));if(s="x"===s?"y":"y"===s?"x":"both","yes"===l)var c=i.attr("data-max-glare");l="yes"===l;var f=a(".elementor-element-"+t+" .eae-fg-image"),p=i.hasClass("masonry-yes")?"masonry":"fitRows";adata={percentPosition:!0,animationOptions:{duration:750,easing:"linear",queue:!1}},"fitRows"===p&&(adata.layoutMode="fitRows"),"masonry"===p&&(adata.masonry={columnWidth:".eae-gallery-item",horizontalOrder:!0}),e.hasClass("eae-show-all-yes")||(e.find(".eae-gallery-filter a").first().addClass("current"),adata.filter=e.find(".eae-gallery-filter a").first().attr("data-filter"));var m=f.isotope(adata);m.imagesLoaded().progress((function(){m.isotope("layout")})),e.find(".eae-tilt-yes")&&(atilt={maxTilt:n,perspective:d,easing:"linear",scale:1,speed:r,disableAxis:s,transition:!0,reset:!0,glare:l,maxGlare:c},e.find(".el-tilt").tilt(atilt)),a(".elementor-element-"+t+" .eae-gallery-filter a").on("click",(function(){e.find(".eae-gallery-filter .current").removeClass("current"),a(this).addClass("current");var i=a(this).attr("data-filter");adata.filter=i;var t=f.isotope(adata);return t.imagesLoaded().progress((function(){if(t.isotope("layout"),isEditMode)return!1;e.find(".eae-tilt-yes")&&(e.find(".el-tilt").tilt(atilt),e.find(".el-tilt").tilt.reset.call(e.find(".el-tilt")))})),!1})),i.hasClass("eae-hover-direction-effect")||e.find(".eae-gallery-item-inner").hover((function(){a(this).find(".eae-grid-overlay").addClass("animated")})),i.hasClass("eae-hover-direction-effect")&&(e.find(".eae-gallery-item-inner").hover((function(){a(this).find(".eae-grid-overlay").addClass("overlay")})),i.find(".eae-gallery-item-inner").EAEHoverDirection({speed:o}))})),elementorFrontend.hooks.addAction("frontend/element_ready/global",(function(e,a){isEditMode||e.data("wts-url")&&"yes"==e.data("wts-link")&&e.on("click",(function(a){e.data("wts-url")&&"yes"==e.data("wts-new-window")?window.open(e.data("wts-url")):location.href=e.data("wts-url")}))}))}))}(jQuery);
elementor-addon-elements.php CHANGED
@@ -1,45 +1,48 @@
1
  <?php
 
2
  /**
3
  * Plugin Name: Elementor Addon Elements
4
  * Description: Add new elements to Elementor page builder plugin.
5
  * Plugin URI: https://www.elementoraddons.com/elements-addon-elements/
6
  * Author: WP Vibes
7
- * Version: 1.7.1
8
  * Author URI: https://wpvibes.com/
9
  *
10
  * Text Domain: wts-eae
11
  * @package WTS_EAE
12
  */
13
- define( 'EAE_FILE', __FILE__ );
14
- define( 'EAE_URL', plugins_url( '/', __FILE__ ) );
15
- define( 'EAE_PATH', plugin_dir_path( __FILE__ ) );
16
- define( 'EAE_SCRIPT_SUFFIX', defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min' );
17
- define( 'EAE_VERSION', '1.7.1');
18
 
19
 
20
- if ( ! function_exists( '_is_elementor_installed' ) ) {
21
 
22
- function _is_elementor_installed() {
 
23
  $file_path = 'elementor/elementor.php';
24
  $installed_plugins = get_plugins();
25
 
26
- return isset( $installed_plugins[ $file_path ] );
27
  }
28
  }
29
 
30
- if(!function_exists('is_plugin_active')){
31
- include_once( ABSPATH . 'wp-admin/includes/plugin.php' );
32
  }
33
- if ( ! function_exists( 'wpv_eae' ) ) {
34
  // Create a helper function for easy SDK access.
35
- function wpv_eae() {
 
36
 
37
  global $wpv_eae;
38
 
39
- if ( ! isset( $wpv_eae ) ) {
40
  // Include Freemius SDK.
41
  require_once dirname(__FILE__) . '/freemius/start.php';
42
- $wpv_eae = fs_dynamic_init( array(
43
  'id' => '4599',
44
  'slug' => 'addon-elements-for-elementor-page-builder',
45
  'type' => 'plugin',
@@ -52,7 +55,7 @@ if ( ! function_exists( 'wpv_eae' ) ) {
52
  'account' => false,
53
  'contact' => false,
54
  ),
55
- ) );
56
  }
57
 
58
  return $wpv_eae;
@@ -61,18 +64,19 @@ if ( ! function_exists( 'wpv_eae' ) ) {
61
  // Init Freemius.
62
  wpv_eae();
63
  // Signal that SDK was initiated.
64
- do_action( 'wpv_eae_loaded' );
65
  }
66
  /**
67
  * Handles plugin activation actions.
68
  *
69
  * @since 1.0
70
  */
71
- function eae_activate() {
72
- if(!is_plugin_active('elementor/elementor.php')){
 
73
  return;
74
  }
75
  \Elementor\Plugin::$instance->files_manager->clear_cache();
76
  }
77
- register_activation_hook( __FILE__, 'eae_activate' );
78
- require_once 'inc/bootstrap.php';
1
  <?php
2
+
3
  /**
4
  * Plugin Name: Elementor Addon Elements
5
  * Description: Add new elements to Elementor page builder plugin.
6
  * Plugin URI: https://www.elementoraddons.com/elements-addon-elements/
7
  * Author: WP Vibes
8
+ * Version: 1.7.2
9
  * Author URI: https://wpvibes.com/
10
  *
11
  * Text Domain: wts-eae
12
  * @package WTS_EAE
13
  */
14
+ define('EAE_FILE', __FILE__);
15
+ define('EAE_URL', plugins_url('/', __FILE__));
16
+ define('EAE_PATH', plugin_dir_path(__FILE__));
17
+ define('EAE_SCRIPT_SUFFIX', defined('SCRIPT_DEBUG') && SCRIPT_DEBUG ? '' : '.min');
18
+ define('EAE_VERSION', '1.7.2');
19
 
20
 
21
+ if (!function_exists('_is_elementor_installed')) {
22
 
23
+ function _is_elementor_installed()
24
+ {
25
  $file_path = 'elementor/elementor.php';
26
  $installed_plugins = get_plugins();
27
 
28
+ return isset($installed_plugins[$file_path]);
29
  }
30
  }
31
 
32
+ if (!function_exists('is_plugin_active')) {
33
+ include_once(ABSPATH . 'wp-admin/includes/plugin.php');
34
  }
35
+ if (!function_exists('wpv_eae')) {
36
  // Create a helper function for easy SDK access.
37
+ function wpv_eae()
38
+ {
39
 
40
  global $wpv_eae;
41
 
42
+ if (!isset($wpv_eae)) {
43
  // Include Freemius SDK.
44
  require_once dirname(__FILE__) . '/freemius/start.php';
45
+ $wpv_eae = fs_dynamic_init(array(
46
  'id' => '4599',
47
  'slug' => 'addon-elements-for-elementor-page-builder',
48
  'type' => 'plugin',
55
  'account' => false,
56
  'contact' => false,
57
  ),
58
+ ));
59
  }
60
 
61
  return $wpv_eae;
64
  // Init Freemius.
65
  wpv_eae();
66
  // Signal that SDK was initiated.
67
+ do_action('wpv_eae_loaded');
68
  }
69
  /**
70
  * Handles plugin activation actions.
71
  *
72
  * @since 1.0
73
  */
74
+ function eae_activate()
75
+ {
76
+ if (!is_plugin_active('elementor/elementor.php')) {
77
  return;
78
  }
79
  \Elementor\Plugin::$instance->files_manager->clear_cache();
80
  }
81
+ register_activation_hook(__FILE__, 'eae_activate');
82
+ require_once 'inc/bootstrap.php';
freemius/README.md CHANGED
@@ -1,69 +1,99 @@
1
  Freemius WordPress SDK
2
  ======================
3
 
4
- [Monetization](https://freemius.com/wordpress/), [analytics](https://freemius.com/wordpress/insights/), and marketing automation platform for plugin & theme developers. Freemius empower developers to create prosperous subscription based businesses.
5
 
6
- You can see some of the WordPress.org plugins & themes that are utilizing the power of Freemius here:
 
 
 
 
 
 
 
 
7
 
8
- https://includewp.com/freemius/#focus
 
 
9
 
10
- If you are a WordPress plugin or theme developer and you are interested to monetize with Freemius you can [sign-up here for free](https://dashboard.freemius.com/register/):
 
 
 
 
11
 
12
  https://dashboard.freemius.com/register/
13
 
14
- **Below you'll find the integration instructions for our WordPress SDK.**
 
 
 
 
 
15
 
16
  ## Code Documentation
17
 
18
  You can find the SDK's documentation here:
19
  https://freemius.com/help/documentation/wordpress-sdk/
20
 
21
- ## Initializing the SDK
 
 
 
 
22
 
23
- Copy the code below and paste it into the top of your main plugin's PHP file, right after the plugin's header comment:
 
 
24
 
25
  ```php
26
- <?php
27
  // Create a helper function for easy SDK access.
28
  function my_prefix_fs() {
29
  global $my_prefix_fs;
 
30
  if ( ! isset( $my_prefix_fs ) ) {
31
  // Include Freemius SDK.
32
  require_once dirname(__FILE__) . '/freemius/start.php';
33
-
34
  $my_prefix_fs = fs_dynamic_init( array(
35
- 'id' => '1234',
36
- 'slug' => 'my-plugin-slug',
37
- 'menu_slug' => 'my_menu_slug', // You can also use __FILE__
38
- 'public_key' => 'pk_MY_PUBLIC_KEY',
39
- 'is_live' => true,
40
- 'is_premium' => true,
41
- 'has_addons' => false,
42
- 'has_paid_plans' => false,
 
 
 
 
 
 
 
 
43
  // Set the SDK to work in a sandbox mode (for development & testing).
44
  // IMPORTANT: MAKE SURE TO REMOVE SECRET KEY BEFORE DEPLOYMENT.
45
- 'secret_key' => 'sk_MY_SECRET_KEY',
46
  ) );
47
  }
48
-
49
  return $my_prefix_fs;
50
  }
51
-
52
  // Init Freemius.
53
  my_prefix_fs();
54
- ?>
55
- ```
56
-
57
- - **1234** - Replace with your plugin's ID.
58
- - **pk_MY_PUBLIC_KEY** - Replace with your plugin's public key.
59
- - **sk_MY_SECRET_KEY** - Replace with your plugin's secret key.
60
- - **my-plugin-slug** - Replace with your plugin's WordPress.org slug.
61
- - **my_menu_slug** - Replace with your admin dashboard settings menu slug.
62
 
 
63
 
64
  ## Usage example
65
 
66
- You can call the SDK by using the shortcode function:
67
 
68
  ```php
69
  <?php my_prefix_fs()->get_upgrade_url(); ?>
@@ -78,6 +108,8 @@ Or when calling Freemius multiple times in a scope, it's recommended to use it w
78
  ?>
79
  ```
80
 
 
 
81
  ## Adding license based logic examples
82
 
83
  Add marketing content to encourage your users to upgrade for your paid version:
@@ -200,10 +232,10 @@ Add logic for specified paid plan:
200
  ```
201
 
202
  ## Excluding files and folders from the free plugin version
203
- There are two ways to exclude files from your free version.
204
 
205
- 1. Add `__premium_only` just before the file extension. For example, functions__premium_only.php will be only included in the premium plugin version. This works for all type of files, not only PHP.
206
- 2. Add `@fs_premium_only` a sepcial meta tag to the plugin's main PHP file header. Example:
207
  ```php
208
  <?php
209
  /**
@@ -227,27 +259,24 @@ There are two ways to exclude files from your free version.
227
  // ... my code ...
228
  ?>
229
  ```
230
- The file `/lib/functions.php` and the directory `/premium-files/` will be removed from the free plugin version.
231
 
232
  # WordPress.org Compliance
233
  Based on [WordPress.org Guidelines](https://wordpress.org/plugins/about/guidelines/) you are not allowed to submit a plugin that has premium code in it:
234
  > All code hosted by WordPress.org servers must be free and fully-functional. If you want to sell advanced features for a plugin (such as a "pro" version), then you must sell and serve that code from your own site, we will not host it on our servers.
235
 
236
- Therefore, if you want to deploy your free plugin's version to WordPress.org, make sure you wrap all your premium code with `if ( my_prefix_fs()->{{ method }}__premium_only() )` or the other methods provided to exclude premium features & files from the free version.
237
 
238
  ## Deployment
239
- Zip your plugin's root folder and upload it in the Deployment section in the *Freemius Developer's Dashboard*.
240
- The plugin will be scanned and processed by a custom developed *PHP Processor* which will auto-generate two versions of your plugin:
241
 
242
  1. **Premium version**: Identical to your uploaded version, including all code (except your `secret_key`). Will be enabled for download ONLY for your paying or in trial customers.
243
  2. **Free version**: The code stripped from all your paid features (based on the logic added wrapped in `{ method }__premium_only()`).
244
 
245
- The free version is the one that you should give your users to download. Therefore, download the free generated version and upload to your site. Or, if your plugin was WordPress.org complaint and you made sure to exclude all your premium code with the different provided techniques, you can deploy the downloaded free version to the .org repo.
246
-
247
- ## Reporting Bugs
248
- Email dev [at] freemius [dot] com
249
 
250
- ## FAQ
 
251
 
252
- ## Copyright
253
- Freemius, Inc.
1
  Freemius WordPress SDK
2
  ======================
3
 
4
+ Welcome to the official repository for the Freemius SDK! Adding the SDK to your WordPress plugin, theme, or add-ons, enables all the benefits that come with using the [Freemius platform](https://freemius.com) such as:
5
 
6
+ * [Software Licensing](https://freemius.com/wordpress/software-licensing/)
7
+ * [Secure Checkout](https://freemius.com/wordpress/checkout/)
8
+ * [Subscriptions](https://freemius.com/wordpress/recurring-payments-subscriptions/)
9
+ * [Automatic Updates](https://freemius.com/wordpress/automatic-software-updates/)
10
+ * [Seamless EU VAT](https://freemius.com/wordpress/collecting-eu-vat-europe/)
11
+ * [Cart Abandonment Recovery](https://freemius.com/wordpress/cart-abandonment-recovery/)
12
+ * [Affiliate Platform](https://freemius.com/wordpress/affiliate-platform/)
13
+ * [Analytics & Usage Tracking](https://freemius.com/wordpress/insights/)
14
+ * [User Dashboard](https://freemius.com/wordpress/user-dashboard/)
15
 
16
+ * [Monetization](https://freemius.com/wordpress/)
17
+ * [Analytics](https://freemius.com/wordpress/insights/)
18
+ * [More...](https://freemius.com/wordpress/features-comparison/)
19
 
20
+ Freemius truly empowers developers to create prosperous subscription-based businesses.
21
+
22
+ If you're new to Freemius then we recommend taking a look at our [Getting Started](https://freemius.com/help/documentation/getting-started/) guide first.
23
+
24
+ If you're a WordPress plugin or theme developer and are interested in monetizing with Freemius then you can [sign-up for a FREE account](https://dashboard.freemius.com/register/):
25
 
26
  https://dashboard.freemius.com/register/
27
 
28
+ Once you have your account setup and are familiar with how it all works you're ready to begin [integrating Freemius](https://freemius.com/help/documentation/wordpress-sdk/integrating-freemius-sdk/) into your WordPress product
29
+
30
+ You can see some of the existing WordPress.org plugins & themes that are already utilizing the power of Freemius here:
31
+
32
+ * https://profiles.wordpress.org/freemius/#content-plugins
33
+ * https://includewp.com/freemius/#focus
34
 
35
  ## Code Documentation
36
 
37
  You can find the SDK's documentation here:
38
  https://freemius.com/help/documentation/wordpress-sdk/
39
 
40
+ ## Integrating & Initializing the SDK
41
+
42
+ As part of the integration process, you'll need to [add the latest version](https://freemius.com/help/documentation/getting-started/#add_the_latest_wordpress_sdk_into_your_product) of the Freemius SDK into your WordPress project.
43
+
44
+ Then, when you've completed the [SDK integration form](https://freemius.com/help/documentation/getting-started/#fill_out_the_sdk_integration_form) a snippet of code is generated which you'll need to copy and paste into the top of your main plugin's PHP file, right after the plugin's header comment.
45
 
46
+ Note: For themes, this will be in the root `functions.php` file instead.
47
+
48
+ A typical SDK snippet will look similar to the following (your particular snippet may differ slightly depending on your integration):
49
 
50
  ```php
51
+ if ( ! function_exists( 'my_prefix_fs' ) ) {
52
  // Create a helper function for easy SDK access.
53
  function my_prefix_fs() {
54
  global $my_prefix_fs;
55
+
56
  if ( ! isset( $my_prefix_fs ) ) {
57
  // Include Freemius SDK.
58
  require_once dirname(__FILE__) . '/freemius/start.php';
59
+
60
  $my_prefix_fs = fs_dynamic_init( array(
61
+ 'id' => '1234',
62
+ 'slug' => 'my-new-plugin',
63
+ 'premium_slug' => 'my-new-plugin-premium',
64
+ 'type' => 'plugin',
65
+ 'public_key' => 'pk_bAEfta69seKymZzmf2xtqq8QXHz9y',
66
+ 'is_premium' => true,
67
+ // If your plugin is a serviceware, set this option to false.
68
+ 'has_premium_version' => true,
69
+ 'has_paid_plans' => true,
70
+ 'is_org_compliant' => true,
71
+ 'menu' => array(
72
+ 'slug' => 'my-new-plugin',
73
+ 'parent' => array(
74
+ 'slug' => 'options-general.php',
75
+ ),
76
+ ),
77
  // Set the SDK to work in a sandbox mode (for development & testing).
78
  // IMPORTANT: MAKE SURE TO REMOVE SECRET KEY BEFORE DEPLOYMENT.
79
+ 'secret_key' => 'sk_ubb4yN3mzqGR2x8#P7r5&@*xC$utE',
80
  ) );
81
  }
82
+
83
  return $my_prefix_fs;
84
  }
85
+
86
  // Init Freemius.
87
  my_prefix_fs();
88
+ // Signal that SDK was initiated.
89
+ do_action( 'my_prefix_fs_loaded' );
90
+ }
 
 
 
 
 
91
 
92
+ ```
93
 
94
  ## Usage example
95
 
96
+ You can call anySDK methods by prefixing them with the shortcode function for your particular plugin/theme (specified when completing the SDK integration form in the Developer Dashboard):
97
 
98
  ```php
99
  <?php my_prefix_fs()->get_upgrade_url(); ?>
108
  ?>
109
  ```
110
 
111
+ There are many other SDK methods available that you can use to enhance the functionality of your WordPress product. Some of the more common use-cases are covered in the [Freemius SDK Gists](https://freemius.com/help/documentation/wordpress-sdk/gists/) documentation.
112
+
113
  ## Adding license based logic examples
114
 
115
  Add marketing content to encourage your users to upgrade for your paid version:
232
  ```
233
 
234
  ## Excluding files and folders from the free plugin version
235
+ There are [two ways](https://freemius.com/help/documentation/wordpress-sdk/software-licensing/#excluding_files_and_folders_from_the_free_plugin_version) to exclude files from your free version.
236
 
237
+ 1. Add `__premium_only` just before the file extension. For example, functions__premium_only.php will be only included in the premium plugin version. This works for all types of files, not only PHP.
238
+ 2. Add `@fs_premium_only` a special meta tag to the plugin's main PHP file header. Example:
239
  ```php
240
  <?php
241
  /**
259
  // ... my code ...
260
  ?>
261
  ```
262
+ In the example plugin header above, the file `/lib/functions.php` and the directory `/premium-files/` will be removed from the free plugin version.
263
 
264
  # WordPress.org Compliance
265
  Based on [WordPress.org Guidelines](https://wordpress.org/plugins/about/guidelines/) you are not allowed to submit a plugin that has premium code in it:
266
  > All code hosted by WordPress.org servers must be free and fully-functional. If you want to sell advanced features for a plugin (such as a "pro" version), then you must sell and serve that code from your own site, we will not host it on our servers.
267
 
268
+ Therefore, if you want to deploy your free plugin's version to WordPress.org, make sure you wrap all your premium code with `if ( my_prefix_fs()->{{ method }}__premium_only() )` or use [some of the other methods](https://freemius.com/help/documentation/wordpress-sdk/software-licensing/) provided by the SDK to exclude premium features & files from the free version.
269
 
270
  ## Deployment
271
+ Zip your Freemius product’s root folder and [upload it in the Deployment section](https://freemius.com/help/documentation/selling-with-freemius/deployment/) in the *Freemius Developer's Dashboard*.
272
+ The plugin/theme will automatically be scanned and processed by a custom-developed *PHP Processor* which will auto-generate two versions of your plugin:
273
 
274
  1. **Premium version**: Identical to your uploaded version, including all code (except your `secret_key`). Will be enabled for download ONLY for your paying or in trial customers.
275
  2. **Free version**: The code stripped from all your paid features (based on the logic added wrapped in `{ method }__premium_only()`).
276
 
277
+ The free version is the one that you should give your users to download. Therefore, download the free generated version and upload to your site. Or, if your plugin was WordPress.org compliant and you made sure to exclude all your premium code with the different provided techniques, you can deploy the downloaded free version to the .org repo.
 
 
 
278
 
279
+ ## License
280
+ Copyright (c) Freemius®, Inc.
281
 
282
+ Licensed under the GNU general public license (version 3).
 
freemius/assets/css/admin/account.css CHANGED
@@ -1 +1 @@
1
- label.fs-tag,span.fs-tag{background:#ffba00;color:#fff;display:inline-block;border-radius:3px;padding:5px;font-size:11px;line-height:11px;vertical-align:baseline}label.fs-tag.fs-warn,span.fs-tag.fs-warn{background:#ffba00}label.fs-tag.fs-info,span.fs-tag.fs-info{background:#00a0d2}label.fs-tag.fs-success,span.fs-tag.fs-success{background:#46b450}label.fs-tag.fs-error,span.fs-tag.fs-error{background:#dc3232}#fs_account .postbox,#fs_account .widefat{max-width:700px}#fs_account h3{font-size:1.3em;padding:12px 15px;margin:0 0 12px 0;line-height:1.4;border-bottom:1px solid #F1F1F1}#fs_account h3 .dashicons{width:26px;height:26px;font-size:1.3em}#fs_account i.dashicons{font-size:1.2em;height:1.2em;width:1.2em}#fs_account .dashicons{vertical-align:middle}#fs_account .fs-header-actions{position:absolute;top:17px;right:15px;font-size:0.9em}#fs_account .fs-header-actions ul{margin:0}#fs_account .fs-header-actions li{float:left}#fs_account .fs-header-actions li form{display:inline-block}#fs_account .fs-header-actions li a{text-decoration:none}#fs_account_details .button-group{float:right}.rtl #fs_account .fs-header-actions{left:15px;right:auto}.fs-key-value-table{width:100%}.fs-key-value-table form{display:inline-block}.fs-key-value-table tr td:first-child{text-align:right}.fs-key-value-table tr td:first-child nobr{font-weight:bold}.fs-key-value-table tr td:first-child form{display:block}.fs-key-value-table tr td.fs-right{text-align:right}.fs-key-value-table tr.fs-odd{background:#ebebeb}.fs-key-value-table td,.fs-key-value-table th{padding:10px}.fs-key-value-table code{line-height:28px}.fs-key-value-table var,.fs-key-value-table code,.fs-key-value-table input[type="text"]{color:#0073AA;font-size:16px;background:none}.fs-key-value-table input[type="text"]{width:100%;font-weight:bold}.fs-field-beta_program label{margin-left:7px}label.fs-tag{background:#ffba00;color:#fff;display:inline-block;border-radius:3px;padding:5px;font-size:11px;line-height:11px;vertical-align:baseline}label.fs-tag.fs-warn{background:#ffba00}label.fs-tag.fs-success{background:#46b450}label.fs-tag.fs-error{background:#dc3232}#fs_sites .fs-scrollable-table .fs-table-body{max-height:200px;overflow:auto;border:1px solid #e5e5e5}#fs_sites .fs-scrollable-table .fs-table-body>table.widefat{border:none !important}#fs_sites .fs-scrollable-table .fs-main-column{width:100%}#fs_sites .fs-scrollable-table .fs-site-details td:first-of-type{text-align:right;color:grey;width:1px}#fs_sites .fs-scrollable-table .fs-site-details td:last-of-type{text-align:right}#fs_sites .fs-scrollable-table .fs-install-details table tr td{width:1px;white-space:nowrap}#fs_sites .fs-scrollable-table .fs-install-details table tr td:last-of-type{width:auto}#fs_addons h3{border:none;margin-bottom:0;padding:4px 5px}#fs_addons td{vertical-align:middle}#fs_addons thead{white-space:nowrap}#fs_addons td:first-child,#fs_addons th:first-child{text-align:left;font-weight:bold}#fs_addons td:last-child,#fs_addons th:last-child{text-align:right}#fs_addons th{font-weight:bold}#fs_billing_address{width:100%}#fs_billing_address tr td{width:50%;padding:5px}#fs_billing_address tr:first-of-type td{padding-top:0}#fs_billing_address span{font-weight:bold}#fs_billing_address input,#fs_billing_address select{display:block;width:100%;margin-top:5px}#fs_billing_address input::-moz-placeholder,#fs_billing_address select::-moz-placeholder{color:transparent;opacity:1}#fs_billing_address input:-ms-input-placeholder,#fs_billing_address select:-ms-input-placeholder{color:transparent}#fs_billing_address input::-webkit-input-placeholder,#fs_billing_address select::-webkit-input-placeholder{color:transparent}#fs_billing_address input.fs-read-mode,#fs_billing_address select.fs-read-mode{border-color:transparent;color:#777;border-bottom:1px dashed #ccc;padding-left:0;background:none}#fs_billing_address.fs-read-mode td span{display:none}#fs_billing_address.fs-read-mode input,#fs_billing_address.fs-read-mode select{border-color:transparent;color:#777;border-bottom:1px dashed #ccc;padding-left:0;background:none}#fs_billing_address.fs-read-mode input::-moz-placeholder,#fs_billing_address.fs-read-mode select::-moz-placeholder{color:#ccc;opacity:1}#fs_billing_address.fs-read-mode input:-ms-input-placeholder,#fs_billing_address.fs-read-mode select:-ms-input-placeholder{color:#ccc}#fs_billing_address.fs-read-mode input::-webkit-input-placeholder,#fs_billing_address.fs-read-mode select::-webkit-input-placeholder{color:#ccc}#fs_billing_address button{display:block;width:100%}
1
+ label.fs-tag,span.fs-tag{background:#ffba00;color:#fff;display:inline-block;border-radius:3px;padding:5px;font-size:11px;line-height:11px;vertical-align:baseline}label.fs-tag.fs-warn,span.fs-tag.fs-warn{background:#ffba00}label.fs-tag.fs-info,span.fs-tag.fs-info{background:#00a0d2}label.fs-tag.fs-success,span.fs-tag.fs-success{background:#46b450}label.fs-tag.fs-error,span.fs-tag.fs-error{background:#dc3232}.fs-notice[data-id="license_not_whitelabeled"].success,.fs-notice[data-id="license_whitelabeled"].success{color:inherit;border-left-color:#00a0d2}.fs-notice[data-id="license_not_whitelabeled"].success label.fs-plugin-title,.fs-notice[data-id="license_whitelabeled"].success label.fs-plugin-title{display:none}#fs_account .postbox,#fs_account .widefat{max-width:800px}#fs_account h3{font-size:1.3em;padding:12px 15px;margin:0 0 12px 0;line-height:1.4;border-bottom:1px solid #F1F1F1}#fs_account h3 .dashicons{width:26px;height:26px;font-size:1.3em}#fs_account i.dashicons{font-size:1.2em;height:1.2em;width:1.2em}#fs_account .dashicons{vertical-align:middle}#fs_account .fs-header-actions{position:absolute;top:17px;right:15px;font-size:0.9em}#fs_account .fs-header-actions ul{margin:0}#fs_account .fs-header-actions li{float:left}#fs_account .fs-header-actions li form{display:inline-block}#fs_account .fs-header-actions li a{text-decoration:none}#fs_account_details .button-group{float:right}.rtl #fs_account .fs-header-actions{left:15px;right:auto}.fs-key-value-table{width:100%}.fs-key-value-table form{display:inline-block}.fs-key-value-table tr td:first-child{text-align:right}.fs-key-value-table tr td:first-child nobr{font-weight:bold}.fs-key-value-table tr td:first-child form{display:block}.fs-key-value-table tr td.fs-right{text-align:right}.fs-key-value-table tr.fs-odd{background:#ebebeb}.fs-key-value-table td,.fs-key-value-table th{padding:10px}.fs-key-value-table code{line-height:28px}.fs-key-value-table var,.fs-key-value-table code,.fs-key-value-table input[type="text"]{color:#0073AA;font-size:16px;background:none}.fs-key-value-table input[type="text"]{width:100%;font-weight:bold}.fs-field-beta_program label{margin-left:7px}label.fs-tag{background:#ffba00;color:#fff;display:inline-block;border-radius:3px;padding:5px;font-size:11px;line-height:11px;vertical-align:baseline}label.fs-tag.fs-warn{background:#ffba00}label.fs-tag.fs-success{background:#46b450}label.fs-tag.fs-error{background:#dc3232}#fs_sites .fs-scrollable-table .fs-table-body{max-height:200px;overflow:auto;border:1px solid #e5e5e5}#fs_sites .fs-scrollable-table .fs-table-body>table.widefat{border:none !important}#fs_sites .fs-scrollable-table .fs-main-column{width:100%}#fs_sites .fs-scrollable-table .fs-site-details td:first-of-type{text-align:right;color:grey;width:1px}#fs_sites .fs-scrollable-table .fs-site-details td:last-of-type{text-align:right}#fs_sites .fs-scrollable-table .fs-install-details table tr td{width:1px;white-space:nowrap}#fs_sites .fs-scrollable-table .fs-install-details table tr td:last-of-type{width:auto}#fs_addons h3{border:none;margin-bottom:0;padding:4px 5px}#fs_addons td{vertical-align:middle}#fs_addons thead{white-space:nowrap}#fs_addons td:first-child,#fs_addons th:first-child{text-align:left;font-weight:bold}#fs_addons td:last-child,#fs_addons th:last-child{text-align:right}#fs_addons th{font-weight:bold}#fs_billing_address{width:100%}#fs_billing_address tr td{width:50%;padding:5px}#fs_billing_address tr:first-of-type td{padding-top:0}#fs_billing_address span{font-weight:bold}#fs_billing_address input,#fs_billing_address select{display:block;width:100%;margin-top:5px}#fs_billing_address input::-moz-placeholder,#fs_billing_address select::-moz-placeholder{color:transparent;opacity:1}#fs_billing_address input:-ms-input-placeholder,#fs_billing_address select:-ms-input-placeholder{color:transparent}#fs_billing_address input::-webkit-input-placeholder,#fs_billing_address select::-webkit-input-placeholder{color:transparent}#fs_billing_address input.fs-read-mode,#fs_billing_address select.fs-read-mode{border-color:transparent;color:#777;border-bottom:1px dashed #ccc;padding-left:0;background:none}#fs_billing_address.fs-read-mode td span{display:none}#fs_billing_address.fs-read-mode input,#fs_billing_address.fs-read-mode select{border-color:transparent;color:#777;border-bottom:1px dashed #ccc;padding-left:0;background:none}#fs_billing_address.fs-read-mode input::-moz-placeholder,#fs_billing_address.fs-read-mode select::-moz-placeholder{color:#ccc;opacity:1}#fs_billing_address.fs-read-mode input:-ms-input-placeholder,#fs_billing_address.fs-read-mode select:-ms-input-placeholder{color:#ccc}#fs_billing_address.fs-read-mode input::-webkit-input-placeholder,#fs_billing_address.fs-read-mode select::-webkit-input-placeholder{color:#ccc}#fs_billing_address button{display:block;width:100%}
freemius/assets/css/admin/add-ons.css CHANGED
@@ -1,2 +1,2 @@
1
  .fs-badge{position:absolute;top:10px;right:0;background:#71ae00;color:white;text-transform:uppercase;padding:5px 10px;-moz-border-radius:3px 0 0 3px;-webkit-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px;font-weight:bold;border-right:0;-moz-box-shadow:0 2px 1px -1px rgba(0,0,0,0.3);-webkit-box-shadow:0 2px 1px -1px rgba(0,0,0,0.3);box-shadow:0 2px 1px -1px rgba(0,0,0,0.3)}#fs_addons .fs-cards-list{list-style:none}#fs_addons .fs-cards-list .fs-card{float:left;height:152px;width:310px;padding:0;margin:0 0 30px 30px;font-size:14px;list-style:none;border:1px solid #ddd;cursor:pointer;position:relative}#fs_addons .fs-cards-list .fs-card .fs-overlay{position:absolute;left:0;right:0;bottom:0;top:0;z-index:9}#fs_addons .fs-cards-list .fs-card .fs-inner{background-color:#fff;overflow:hidden;height:100%;position:relative}#fs_addons .fs-cards-list .fs-card .fs-inner>ul{-moz-transition:all,0.15s;-o-transition:all,0.15s;-ms-transition:all,0.15s;-webkit-transition:all,0.15s;transition:all,0.15s;left:0;right:0;top:0;position:absolute}#fs_addons .fs-cards-list .fs-card .fs-inner>ul>li{list-style:none;line-height:18px;padding:0 15px;width:100%;display:block;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-card-banner{padding:0;margin:0;line-height:0;display:block;height:100px;background-repeat:repeat-x;background-size:100% 100%;-moz-transition:all,0.15s;-o-transition:all,0.15s;-ms-transition:all,0.15s;-webkit-transition:all,0.15s;transition:all,0.15s}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-card-banner .fs-badge.fs-installed-addon-badge{font-size:1.02em;line-height:1.3em}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-title{margin:10px 0 0 0;height:18px;overflow:hidden;color:#000;white-space:nowrap;text-overflow:ellipsis;font-weight:bold}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-offer{font-size:0.9em}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-description{background-color:#f9f9f9;padding:10px 15px 100px 15px;border-top:1px solid #eee;margin:0 0 10px 0;color:#777}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-tag{position:absolute;top:10px;right:0px;background:greenyellow;display:block;padding:2px 10px;-moz-box-shadow:1px 1px 1px rgba(0,0,0,0.3);-webkit-box-shadow:1px 1px 1px rgba(0,0,0,0.3);box-shadow:1px 1px 1px rgba(0,0,0,0.3);text-transform:uppercase;font-size:0.9em;font-weight:bold}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-cta .button,#fs_addons .fs-cards-list .fs-card .fs-inner .fs-cta .button-group{position:absolute;top:112px;right:10px}@media screen and (min-width: 960px){#fs_addons .fs-cards-list .fs-card:hover .fs-overlay{border:2px solid #29abe1;margin-left:-1px;margin-top:-1px}#fs_addons .fs-cards-list .fs-card:hover .fs-inner ul{top:-100px}#fs_addons .fs-cards-list .fs-card:hover .fs-inner .fs-title,#fs_addons .fs-cards-list .fs-card:hover .fs-inner .fs-offer{color:#29abe1}}
2
- #TB_window,#TB_window iframe{width:821px !important}#plugin-information .fyi{width:266px !important}#plugin-information #section-holder{margin-right:299px}#plugin-information #section-description h2,#plugin-information #section-description h3,#plugin-information #section-description p,#plugin-information #section-description b,#plugin-information #section-description i,#plugin-information #section-description blockquote,#plugin-information #section-description li,#plugin-information #section-description ul,#plugin-information #section-description ol{clear:none}#plugin-information #section-description .fs-selling-points{padding-bottom:10px;border-bottom:1px solid #ddd}#plugin-information #section-description .fs-selling-points ul{margin:0}#plugin-information #section-description .fs-selling-points ul li{padding:0;list-style:none outside none}#plugin-information #section-description .fs-selling-points ul li i.dashicons{color:#71ae00;font-size:3em;vertical-align:middle;line-height:30px;float:left;margin:0 0 0 -15px}#plugin-information #section-description .fs-selling-points ul li h3{margin:1em 30px !important}#plugin-information #section-description .fs-screenshots:after{content:"";display:table;clear:both}#plugin-information #section-description .fs-screenshots ul{list-style:none;margin:0}#plugin-information #section-description .fs-screenshots ul li{width:225px;height:225px;float:left;margin-bottom:20px;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}#plugin-information #section-description .fs-screenshots ul li a{display:block;width:100%;height:100%;border:1px solid;-moz-box-shadow:1px 1px 1px rgba(0,0,0,0.2);-webkit-box-shadow:1px 1px 1px rgba(0,0,0,0.2);box-shadow:1px 1px 1px rgba(0,0,0,0.2);background-size:cover}#plugin-information #section-description .fs-screenshots ul li.odd{margin-right:20px}#plugin-information .plugin-information-pricing{margin:-16px;border-bottom:1px solid #ddd}#plugin-information .plugin-information-pricing .fs-plan h3{margin-top:0;padding:20px;font-size:16px}#plugin-information .plugin-information-pricing .fs-plan .nav-tab-wrapper{border-bottom:1px solid #ddd}#plugin-information .plugin-information-pricing .fs-plan .nav-tab-wrapper .nav-tab{cursor:pointer;position:relative;padding:0 10px;font-size:0.9em}#plugin-information .plugin-information-pricing .fs-plan .nav-tab-wrapper .nav-tab label{text-transform:uppercase;color:green;background:greenyellow;position:absolute;left:-1px;right:-1px;bottom:100%;border:1px solid darkgreen;padding:2px;text-align:center;font-size:0.9em;line-height:1em}#plugin-information .plugin-information-pricing .fs-plan .nav-tab-wrapper .nav-tab.nav-tab-active{cursor:default;background:#fffeec;border-bottom-color:#fffeec}#plugin-information .plugin-information-pricing .fs-plan.fs-single-cycle h3{background:#fffeec;margin:0;padding-bottom:0;color:#0073aa}#plugin-information .plugin-information-pricing .fs-plan.fs-single-cycle .nav-tab-wrapper,#plugin-information .plugin-information-pricing .fs-plan.fs-single-cycle .fs-billing-frequency{display:none}#plugin-information .plugin-information-pricing .fs-plan .fs-pricing-body{background:#fffeec;padding:20px}#plugin-information .plugin-information-pricing .fs-plan .button{width:100%;text-align:center;font-weight:bold;text-transform:uppercase;font-size:1.1em}#plugin-information .plugin-information-pricing .fs-plan label{white-space:nowrap}#plugin-information .plugin-information-pricing .fs-plan var{font-style:normal}#plugin-information .plugin-information-pricing .fs-plan .fs-billing-frequency,#plugin-information .plugin-information-pricing .fs-plan .fs-annual-discount{text-align:center;display:block;font-weight:bold;margin-bottom:10px;text-transform:uppercase;background:#F3F3F3;padding:2px;border:1px solid #ccc}#plugin-information .plugin-information-pricing .fs-plan .fs-annual-discount{text-transform:none;color:green;background:greenyellow}#plugin-information .plugin-information-pricing .fs-plan ul.fs-trial-terms{font-size:0.9em}#plugin-information .plugin-information-pricing .fs-plan ul.fs-trial-terms i{float:left;margin:0 0 0 -15px}#plugin-information .plugin-information-pricing .fs-plan ul.fs-trial-terms li{margin:10px 0 0 0}#plugin-information #section-features .fs-features{margin:-20px -26px}#plugin-information #section-features table{width:100%;border-spacing:0;border-collapse:separate}#plugin-information #section-features table thead th{padding:10px 0}#plugin-information #section-features table thead .fs-price{color:#71ae00;font-weight:normal;display:block;text-align:center}#plugin-information #section-features table tbody td{border-top:1px solid #ccc;padding:10px 0;text-align:center;width:100px;color:#71ae00}#plugin-information #section-features table tbody td:first-child{text-align:left;width:auto;color:inherit;padding-left:26px}#plugin-information #section-features table tbody tr.fs-odd td{background:#fefefe}#plugin-information #section-features .dashicons-yes{width:30px;height:30px;font-size:30px}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-dropdown .button-group .button,#plugin-information .fs-dropdown .button-group .button{position:relative;width:auto;top:0;right:0}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-dropdown .button-group .button:focus,#plugin-information .fs-dropdown .button-group .button:focus{z-index:10}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-dropdown .button-group .fs-dropdown-arrow,#plugin-information .fs-dropdown .button-group .fs-dropdown-arrow{border-top:6px solid white;border-right:4px solid transparent;border-left:4px solid transparent;top:12px;position:relative}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-dropdown.active:not(.up) .button:not(.fs-dropdown-arrow-button),#plugin-information .fs-dropdown.active:not(.up) .button:not(.fs-dropdown-arrow-button){border-bottom-left-radius:0}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-dropdown.active:not(.up) .fs-dropdown-arrow-button,#plugin-information .fs-dropdown.active:not(.up) .fs-dropdown-arrow-button{border-bottom-right-radius:0}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-dropdown.active.up .button:not(.fs-dropdown-arrow-button),#plugin-information .fs-dropdown.active.up .button:not(.fs-dropdown-arrow-button){border-top-left-radius:0}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-dropdown.active.up .fs-dropdown-arrow-button,#plugin-information .fs-dropdown.active.up .fs-dropdown-arrow-button{border-top-right-radius:0}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-dropdown .fs-dropdown-list,#plugin-information .fs-dropdown .fs-dropdown-list{position:absolute;right:-1px;top:100%;margin-left:auto;padding:3px 0;border:1px solid #bfbfbf;background-color:#fff;z-index:1;width:230px;text-align:left;-moz-box-shadow:0px 2px 4px -1px rgba(0,0,0,0.2),0px 4px 5px 0px rgba(0,0,0,0.14),0px 1px 10px 0px rgba(0,0,0,0.12);-webkit-box-shadow:0px 2px 4px -1px rgba(0,0,0,0.2),0px 4px 5px 0px rgba(0,0,0,0.14),0px 1px 10px 0px rgba(0,0,0,0.12);box-shadow:0px 2px 4px -1px rgba(0,0,0,0.2),0px 4px 5px 0px rgba(0,0,0,0.14),0px 1px 10px 0px rgba(0,0,0,0.12)}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-dropdown .fs-dropdown-list li,#plugin-information .fs-dropdown .fs-dropdown-list li{margin:0}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-dropdown .fs-dropdown-list li a,#plugin-information .fs-dropdown .fs-dropdown-list li a{display:block;padding:5px 10px;text-decoration:none;text-shadow:none}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-dropdown .fs-dropdown-list li:hover,#plugin-information .fs-dropdown .fs-dropdown-list li:hover{background-color:#0074a3;color:#fff}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-dropdown .fs-dropdown-list li:hover a,#plugin-information .fs-dropdown .fs-dropdown-list li:hover a{color:#fff}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-dropdown:not(.up) .fs-dropdown-list,#plugin-information .fs-dropdown:not(.up) .fs-dropdown-list{-moz-border-radius:3px 0 3px 3px;-webkit-border-radius:3px 0 3px 3px;border-radius:3px 0 3px 3px}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-dropdown.up .fs-dropdown-list,#plugin-information .fs-dropdown.up .fs-dropdown-list{-moz-border-radius:3px 3px 0 3px;-webkit-border-radius:3px 3px 0 3px;border-radius:3px 3px 0 3px}#plugin-information .fs-dropdown .button-group{width:100%}#plugin-information .fs-dropdown .button-group .button{float:none;font-size:14px;font-weight:normal;text-transform:none}#plugin-information .fs-dropdown .fs-dropdown-list{margin-top:1px}#plugin-information .fs-dropdown.up .fs-dropdown-list{top:auto;bottom:100%;margin-bottom:2px}#plugin-information.wp-core-ui .fs-pricing-body .fs-dropdown .button-group{text-align:center;display:table}#plugin-information.wp-core-ui .fs-pricing-body .fs-dropdown .button-group .button{display:table-cell}#plugin-information.wp-core-ui .fs-pricing-body .fs-dropdown .button-group .button:not(.fs-dropdown-arrow-button){left:1px;width:100%}#plugin-information-footer>.button,#plugin-information-footer .fs-dropdown{position:relative;top:3px}#plugin-information-footer>.button.left,#plugin-information-footer .fs-dropdown.left{float:left}#plugin-information-footer>.right,#plugin-information-footer .fs-dropdown{float:right}@media screen and (max-width: 961px){#fs_addons .fs-cards-list .fs-card{height:265px}}
1
  .fs-badge{position:absolute;top:10px;right:0;background:#71ae00;color:white;text-transform:uppercase;padding:5px 10px;-moz-border-radius:3px 0 0 3px;-webkit-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px;font-weight:bold;border-right:0;-moz-box-shadow:0 2px 1px -1px rgba(0,0,0,0.3);-webkit-box-shadow:0 2px 1px -1px rgba(0,0,0,0.3);box-shadow:0 2px 1px -1px rgba(0,0,0,0.3)}#fs_addons .fs-cards-list{list-style:none}#fs_addons .fs-cards-list .fs-card{float:left;height:152px;width:310px;padding:0;margin:0 0 30px 30px;font-size:14px;list-style:none;border:1px solid #ddd;cursor:pointer;position:relative}#fs_addons .fs-cards-list .fs-card .fs-overlay{position:absolute;left:0;right:0;bottom:0;top:0;z-index:9}#fs_addons .fs-cards-list .fs-card .fs-inner{background-color:#fff;overflow:hidden;height:100%;position:relative}#fs_addons .fs-cards-list .fs-card .fs-inner>ul{-moz-transition:all,0.15s;-o-transition:all,0.15s;-ms-transition:all,0.15s;-webkit-transition:all,0.15s;transition:all,0.15s;left:0;right:0;top:0;position:absolute}#fs_addons .fs-cards-list .fs-card .fs-inner>ul>li{list-style:none;line-height:18px;padding:0 15px;width:100%;display:block;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-card-banner{padding:0;margin:0;line-height:0;display:block;height:100px;background-repeat:repeat-x;background-size:100% 100%;-moz-transition:all,0.15s;-o-transition:all,0.15s;-ms-transition:all,0.15s;-webkit-transition:all,0.15s;transition:all,0.15s}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-card-banner .fs-badge.fs-installed-addon-badge{font-size:1.02em;line-height:1.3em}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-title{margin:10px 0 0 0;height:18px;overflow:hidden;color:#000;white-space:nowrap;text-overflow:ellipsis;font-weight:bold}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-offer{font-size:0.9em}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-description{background-color:#f9f9f9;padding:10px 15px 100px 15px;border-top:1px solid #eee;margin:0 0 10px 0;color:#777}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-tag{position:absolute;top:10px;right:0px;background:greenyellow;display:block;padding:2px 10px;-moz-box-shadow:1px 1px 1px rgba(0,0,0,0.3);-webkit-box-shadow:1px 1px 1px rgba(0,0,0,0.3);box-shadow:1px 1px 1px rgba(0,0,0,0.3);text-transform:uppercase;font-size:0.9em;font-weight:bold}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-cta .button,#fs_addons .fs-cards-list .fs-card .fs-inner .fs-cta .button-group{position:absolute;top:112px;right:10px}@media screen and (min-width: 960px){#fs_addons .fs-cards-list .fs-card:hover .fs-overlay{border:2px solid #29abe1;margin-left:-1px;margin-top:-1px}#fs_addons .fs-cards-list .fs-card:hover .fs-inner ul{top:-100px}#fs_addons .fs-cards-list .fs-card:hover .fs-inner .fs-title,#fs_addons .fs-cards-list .fs-card:hover .fs-inner .fs-offer{color:#29abe1}}
2
+ #TB_window,#TB_window iframe{width:821px !important}#plugin-information .fyi{width:266px !important}#plugin-information #section-holder{margin-right:299px}#plugin-information #section-description h2,#plugin-information #section-description h3,#plugin-information #section-description p,#plugin-information #section-description b,#plugin-information #section-description i,#plugin-information #section-description blockquote,#plugin-information #section-description li,#plugin-information #section-description ul,#plugin-information #section-description ol{clear:none}#plugin-information #section-description iframe{max-width:100%}#plugin-information #section-description .fs-selling-points{padding-bottom:10px;border-bottom:1px solid #ddd}#plugin-information #section-description .fs-selling-points ul{margin:0}#plugin-information #section-description .fs-selling-points ul li{padding:0;list-style:none outside none}#plugin-information #section-description .fs-selling-points ul li i.dashicons{color:#71ae00;font-size:3em;vertical-align:middle;line-height:30px;float:left;margin:0 0 0 -15px}#plugin-information #section-description .fs-selling-points ul li h3{margin:1em 30px !important}#plugin-information #section-description .fs-screenshots:after{content:"";display:table;clear:both}#plugin-information #section-description .fs-screenshots ul{list-style:none;margin:0}#plugin-information #section-description .fs-screenshots ul li{width:225px;height:225px;float:left;margin-bottom:20px;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}#plugin-information #section-description .fs-screenshots ul li a{display:block;width:100%;height:100%;border:1px solid;-moz-box-shadow:1px 1px 1px rgba(0,0,0,0.2);-webkit-box-shadow:1px 1px 1px rgba(0,0,0,0.2);box-shadow:1px 1px 1px rgba(0,0,0,0.2);background-size:cover}#plugin-information #section-description .fs-screenshots ul li.odd{margin-right:20px}#plugin-information .plugin-information-pricing{margin:-16px;border-bottom:1px solid #ddd}#plugin-information .plugin-information-pricing .fs-plan h3{margin-top:0;padding:20px;font-size:16px}#plugin-information .plugin-information-pricing .fs-plan .nav-tab-wrapper{border-bottom:1px solid #ddd}#plugin-information .plugin-information-pricing .fs-plan .nav-tab-wrapper .nav-tab{cursor:pointer;position:relative;padding:0 10px;font-size:0.9em}#plugin-information .plugin-information-pricing .fs-plan .nav-tab-wrapper .nav-tab label{text-transform:uppercase;color:green;background:greenyellow;position:absolute;left:-1px;right:-1px;bottom:100%;border:1px solid darkgreen;padding:2px;text-align:center;font-size:0.9em;line-height:1em}#plugin-information .plugin-information-pricing .fs-plan .nav-tab-wrapper .nav-tab.nav-tab-active{cursor:default;background:#fffeec;border-bottom-color:#fffeec}#plugin-information .plugin-information-pricing .fs-plan.fs-single-cycle h3{background:#fffeec;margin:0;padding-bottom:0;color:#0073aa}#plugin-information .plugin-information-pricing .fs-plan.fs-single-cycle .nav-tab-wrapper,#plugin-information .plugin-information-pricing .fs-plan.fs-single-cycle .fs-billing-frequency{display:none}#plugin-information .plugin-information-pricing .fs-plan .fs-pricing-body{background:#fffeec;padding:20px}#plugin-information .plugin-information-pricing .fs-plan .button{width:100%;text-align:center;font-weight:bold;text-transform:uppercase;font-size:1.1em}#plugin-information .plugin-information-pricing .fs-plan label{white-space:nowrap}#plugin-information .plugin-information-pricing .fs-plan var{font-style:normal}#plugin-information .plugin-information-pricing .fs-plan .fs-billing-frequency,#plugin-information .plugin-information-pricing .fs-plan .fs-annual-discount{text-align:center;display:block;font-weight:bold;margin-bottom:10px;text-transform:uppercase;background:#F3F3F3;padding:2px;border:1px solid #ccc}#plugin-information .plugin-information-pricing .fs-plan .fs-annual-discount{text-transform:none;color:green;background:greenyellow}#plugin-information .plugin-information-pricing .fs-plan ul.fs-trial-terms{font-size:0.9em}#plugin-information .plugin-information-pricing .fs-plan ul.fs-trial-terms i{float:left;margin:0 0 0 -15px}#plugin-information .plugin-information-pricing .fs-plan ul.fs-trial-terms li{margin:10px 0 0 0}#plugin-information #section-features .fs-features{margin:-20px -26px}#plugin-information #section-features table{width:100%;border-spacing:0;border-collapse:separate}#plugin-information #section-features table thead th{padding:10px 0}#plugin-information #section-features table thead .fs-price{color:#71ae00;font-weight:normal;display:block;text-align:center}#plugin-information #section-features table tbody td{border-top:1px solid #ccc;padding:10px 0;text-align:center;width:100px;color:#71ae00}#plugin-information #section-features table tbody td:first-child{text-align:left;width:auto;color:inherit;padding-left:26px}#plugin-information #section-features table tbody tr.fs-odd td{background:#fefefe}#plugin-information #section-features .dashicons-yes{width:30px;height:30px;font-size:30px}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-dropdown .button-group .button,#plugin-information .fs-dropdown .button-group .button{position:relative;width:auto;top:0;right:0}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-dropdown .button-group .button:focus,#plugin-information .fs-dropdown .button-group .button:focus{z-index:10}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-dropdown .button-group .fs-dropdown-arrow,#plugin-information .fs-dropdown .button-group .fs-dropdown-arrow{border-top:6px solid white;border-right:4px solid transparent;border-left:4px solid transparent;top:12px;position:relative}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-dropdown.active:not(.up) .button:not(.fs-dropdown-arrow-button),#plugin-information .fs-dropdown.active:not(.up) .button:not(.fs-dropdown-arrow-button){border-bottom-left-radius:0}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-dropdown.active:not(.up) .fs-dropdown-arrow-button,#plugin-information .fs-dropdown.active:not(.up) .fs-dropdown-arrow-button{border-bottom-right-radius:0}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-dropdown.active.up .button:not(.fs-dropdown-arrow-button),#plugin-information .fs-dropdown.active.up .button:not(.fs-dropdown-arrow-button){border-top-left-radius:0}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-dropdown.active.up .fs-dropdown-arrow-button,#plugin-information .fs-dropdown.active.up .fs-dropdown-arrow-button{border-top-right-radius:0}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-dropdown .fs-dropdown-list,#plugin-information .fs-dropdown .fs-dropdown-list{position:absolute;right:-1px;top:100%;margin-left:auto;padding:3px 0;border:1px solid #bfbfbf;background-color:#fff;z-index:1;width:230px;text-align:left;-moz-box-shadow:0px 2px 4px -1px rgba(0,0,0,0.2),0px 4px 5px 0px rgba(0,0,0,0.14),0px 1px 10px 0px rgba(0,0,0,0.12);-webkit-box-shadow:0px 2px 4px -1px rgba(0,0,0,0.2),0px 4px 5px 0px rgba(0,0,0,0.14),0px 1px 10px 0px rgba(0,0,0,0.12);box-shadow:0px 2px 4px -1px rgba(0,0,0,0.2),0px 4px 5px 0px rgba(0,0,0,0.14),0px 1px 10px 0px rgba(0,0,0,0.12)}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-dropdown .fs-dropdown-list li,#plugin-information .fs-dropdown .fs-dropdown-list li{margin:0}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-dropdown .fs-dropdown-list li a,#plugin-information .fs-dropdown .fs-dropdown-list li a{display:block;padding:5px 10px;text-decoration:none;text-shadow:none}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-dropdown .fs-dropdown-list li:hover,#plugin-information .fs-dropdown .fs-dropdown-list li:hover{background-color:#0074a3;color:#fff}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-dropdown .fs-dropdown-list li:hover a,#plugin-information .fs-dropdown .fs-dropdown-list li:hover a{color:#fff}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-dropdown:not(.up) .fs-dropdown-list,#plugin-information .fs-dropdown:not(.up) .fs-dropdown-list{-moz-border-radius:3px 0 3px 3px;-webkit-border-radius:3px 0 3px 3px;border-radius:3px 0 3px 3px}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-dropdown.up .fs-dropdown-list,#plugin-information .fs-dropdown.up .fs-dropdown-list{-moz-border-radius:3px 3px 0 3px;-webkit-border-radius:3px 3px 0 3px;border-radius:3px 3px 0 3px}#plugin-information .fs-dropdown .button-group{width:100%}#plugin-information .fs-dropdown .button-group .button{float:none;font-size:14px;font-weight:normal;text-transform:none}#plugin-information .fs-dropdown .fs-dropdown-list{margin-top:1px}#plugin-information .fs-dropdown.up .fs-dropdown-list{top:auto;bottom:100%;margin-bottom:2px}#plugin-information.wp-core-ui .fs-pricing-body .fs-dropdown .button-group{text-align:center;display:table}#plugin-information.wp-core-ui .fs-pricing-body .fs-dropdown .button-group .button{display:table-cell}#plugin-information.wp-core-ui .fs-pricing-body .fs-dropdown .button-group .button:not(.fs-dropdown-arrow-button){left:1px;width:100%}#plugin-information-footer>.button,#plugin-information-footer .fs-dropdown{position:relative;top:3px}#plugin-information-footer>.button.left,#plugin-information-footer .fs-dropdown.left{float:left}#plugin-information-footer>.right,#plugin-information-footer .fs-dropdown{float:right}@media screen and (max-width: 961px){#fs_addons .fs-cards-list .fs-card{height:265px}}
freemius/assets/css/admin/common.css CHANGED
@@ -1,2 +1,2 @@
1
- .fs-badge{position:absolute;top:10px;right:0;background:#71ae00;color:white;text-transform:uppercase;padding:5px 10px;-moz-border-radius:3px 0 0 3px;-webkit-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px;font-weight:bold;border-right:0;-moz-box-shadow:0 2px 1px -1px rgba(0,0,0,0.3);-webkit-box-shadow:0 2px 1px -1px rgba(0,0,0,0.3);box-shadow:0 2px 1px -1px rgba(0,0,0,0.3)}.theme-browser .theme .fs-premium-theme-badge-container{position:absolute;right:0;top:0}.theme-browser .theme .fs-premium-theme-badge-container .fs-badge{position:relative;top:0;margin-top:10px;text-align:center}.theme-browser .theme .fs-premium-theme-badge-container .fs-badge.fs-premium-theme-badge{font-size:1.1em}.theme-browser .theme .fs-premium-theme-badge-container .fs-badge.fs-beta-theme-badge{background:#00a0d2}#fs_frame{line-height:0;font-size:0}.fs-full-size-wrapper{margin:40px 0 -65px -20px}@media (max-width: 600px){.fs-full-size-wrapper{margin:0 0 -65px -10px}}
2
- .fs-notice{position:relative}.fs-notice.fs-has-title{margin-bottom:30px !important}.fs-notice.success{color:green}.fs-notice.promotion{border-color:#00a0d2 !important;background-color:#f2fcff !important}.fs-notice .fs-notice-body{margin:.5em 0;padding:2px}.fs-notice .fs-close{cursor:pointer;color:#aaa;float:right}.fs-notice .fs-close:hover{color:#666}.fs-notice .fs-close>*{margin-top:7px;display:inline-block}.fs-notice label.fs-plugin-title{background:rgba(0,0,0,0.3);color:#fff;padding:2px 10px;position:absolute;top:100%;bottom:auto;right:auto;-moz-border-radius:0 0 3px 3px;-webkit-border-radius:0 0 3px 3px;border-radius:0 0 3px 3px;left:10px;font-size:12px;font-weight:bold;cursor:auto}div.fs-notice.updated,div.fs-notice.success,div.fs-notice.promotion{display:block !important}.rtl .fs-notice .fs-close{float:left}.fs-secure-notice{position:fixed;top:32px;left:160px;right:0;background:#ebfdeb;padding:10px 20px;color:green;z-index:9999;-moz-box-shadow:0 2px 2px rgba(6,113,6,0.3);-webkit-box-shadow:0 2px 2px rgba(6,113,6,0.3);box-shadow:0 2px 2px rgba(6,113,6,0.3);opacity:0.95;filter:alpha(opacity=95)}.fs-secure-notice:hover{opacity:1;filter:alpha(opacity=100)}.fs-secure-notice a.fs-security-proof{color:green;text-decoration:none}@media screen and (max-width: 960px){.fs-secure-notice{left:36px}}@media screen and (max-width: 600px){.fs-secure-notice{display:none}}@media screen and (max-width: 500px){#fs_promo_tab{display:none}}@media screen and (max-width: 782px){.fs-secure-notice{left:0;top:46px;text-align:center}}span.fs-submenu-item.fs-sub:before{content:'\21B3';padding:0 5px}.rtl span.fs-submenu-item.fs-sub:before{content:'\21B2'}.fs-submenu-item.pricing.upgrade-mode{color:greenyellow}.fs-submenu-item.pricing.trial-mode{color:#83e2ff}#adminmenu .update-plugins.fs-trial{background-color:#00b9eb}.fs-ajax-spinner{border:0;width:20px;height:20px;margin-right:5px;vertical-align:sub;display:inline-block;background:url("/wp-admin/images/wpspin_light-2x.gif");background-size:contain}.wrap.fs-section h2{text-align:left}.plugins p.fs-upgrade-notice{border:0;background-color:#d54e21;padding:10px;color:#f9f9f9;margin-top:10px}
1
+ .fs-badge{position:absolute;top:10px;right:0;background:#71ae00;color:white;text-transform:uppercase;padding:5px 10px;-moz-border-radius:3px 0 0 3px;-webkit-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px;font-weight:bold;border-right:0;-moz-box-shadow:0 2px 1px -1px rgba(0,0,0,0.3);-webkit-box-shadow:0 2px 1px -1px rgba(0,0,0,0.3);box-shadow:0 2px 1px -1px rgba(0,0,0,0.3)}.theme-browser .theme .fs-premium-theme-badge-container{position:absolute;right:0;top:0}.theme-browser .theme .fs-premium-theme-badge-container .fs-badge{position:relative;top:0;margin-top:10px;text-align:center}.theme-browser .theme .fs-premium-theme-badge-container .fs-badge.fs-premium-theme-badge{font-size:1.1em}.theme-browser .theme .fs-premium-theme-badge-container .fs-badge.fs-beta-theme-badge{background:#00a0d2}.fs-switch{position:relative;display:inline-block;color:#ccc;text-shadow:0 1px 1px rgba(255,255,255,0.8);height:18px;padding:6px 6px 5px 6px;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);background:#ececec;box-shadow:0 0 4px rgba(0,0,0,0.1),inset 0 1px 3px 0 rgba(0,0,0,0.1);cursor:pointer}.fs-switch span{display:inline-block;width:35px;text-transform:uppercase}.fs-switch .fs-toggle{position:absolute;top:1px;width:37px;height:25px;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.3);border-radius:4px;background:#fff;background-color:#fff;background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0, #ececec), color-stop(1, #fff));background-image:-webkit-linear-gradient(top, #ececec, #fff);background-image:-moz-linear-gradient(top, #ececec, #fff);background-image:-ms-linear-gradient(top, #ececec, #fff);background-image:-o-linear-gradient(top, #ececec, #fff);background-image:linear-gradient(top, bottom, #ececec, #fff);box-shadow:inset 0 1px 0 0 rgba(255,255,255,0.5);z-index:999;-moz-transition:0.4s cubic-bezier(0.54, 1.6, 0.5, 1);-o-transition:0.4s cubic-bezier(0.54, 1.6, 0.5, 1);-ms-transition:0.4s cubic-bezier(0.54, 1.6, 0.5, 1);-webkit-transition:0.4s cubic-bezier(0.54, 1.6, 0.5, 1);transition:0.4s cubic-bezier(0.54, 1.6, 0.5, 1)}.fs-switch.fs-off .fs-toggle{left:2%}.fs-switch.fs-on .fs-toggle{left:54%}.fs-switch.fs-round{top:8px;padding:4px 25px;-moz-border-radius:24px;-webkit-border-radius:24px;border-radius:24px}.fs-switch.fs-round .fs-toggle{top:0;width:24px;height:24px;-moz-border-radius:24px;-webkit-border-radius:24px;border-radius:24px}.fs-switch.fs-round.fs-off .fs-toggle{left:-1px}.fs-switch.fs-round.fs-on{background:#0085ba}.fs-switch.fs-round.fs-on .fs-toggle{left:25px}.fs-switch.fs-small.fs-round{padding:1px 19px}.fs-switch.fs-small.fs-round .fs-toggle{top:0;width:18px;height:18px;-moz-border-radius:18px;-webkit-border-radius:18px;border-radius:18px}.fs-switch.fs-small.fs-round.fs-on .fs-toggle{left:19px}.fs-switch-feedback{margin-left:10px}.fs-switch-feedback.success{color:#71ae00}.rtl .fs-switch-feedback{margin-left:0;margin-right:10px}#fs_frame{line-height:0;font-size:0}.fs-full-size-wrapper{margin:40px 0 -65px -20px}@media (max-width: 600px){.fs-full-size-wrapper{margin:0 0 -65px -10px}}
2
+ .fs-notice{position:relative}.fs-notice.fs-has-title{margin-bottom:30px !important}.fs-notice.success{color:green}.fs-notice.promotion{border-color:#00a0d2 !important;background-color:#f2fcff !important}.fs-notice .fs-notice-body{margin:.5em 0;padding:2px}.fs-notice .fs-close{cursor:pointer;color:#aaa;float:right}.fs-notice .fs-close:hover{color:#666}.fs-notice .fs-close>*{margin-top:7px;display:inline-block}.fs-notice label.fs-plugin-title{background:rgba(0,0,0,0.3);color:#fff;padding:2px 10px;position:absolute;top:100%;bottom:auto;right:auto;-moz-border-radius:0 0 3px 3px;-webkit-border-radius:0 0 3px 3px;border-radius:0 0 3px 3px;left:10px;font-size:12px;font-weight:bold;cursor:auto}div.fs-notice.updated,div.fs-notice.success,div.fs-notice.promotion{display:block !important}.rtl .fs-notice .fs-close{float:left}.fs-secure-notice{position:fixed;top:32px;left:160px;right:0;background:#ebfdeb;padding:10px 20px;color:green;z-index:9999;-moz-box-shadow:0 2px 2px rgba(6,113,6,0.3);-webkit-box-shadow:0 2px 2px rgba(6,113,6,0.3);box-shadow:0 2px 2px rgba(6,113,6,0.3);opacity:0.95;filter:alpha(opacity=95)}.fs-secure-notice:hover{opacity:1;filter:alpha(opacity=100)}.fs-secure-notice a.fs-security-proof{color:green;text-decoration:none}@media screen and (max-width: 960px){.fs-secure-notice{left:36px}}@media screen and (max-width: 600px){.fs-secure-notice{display:none}}@media screen and (max-width: 500px){#fs_promo_tab{display:none}}@media screen and (max-width: 782px){.fs-secure-notice{left:0;top:46px;text-align:center}}span.fs-submenu-item.fs-sub:before{content:'\21B3';padding:0 5px}.rtl span.fs-submenu-item.fs-sub:before{content:'\21B2'}.fs-submenu-item.pricing.upgrade-mode{color:greenyellow}.fs-submenu-item.pricing.trial-mode{color:#83e2ff}#adminmenu .update-plugins.fs-trial{background-color:#00b9eb}.fs-ajax-spinner{border:0;width:20px;height:20px;margin-right:5px;vertical-align:sub;display:inline-block;background:url("/wp-admin/images/wpspin_light-2x.gif");background-size:contain;margin-bottom:-2px}.wrap.fs-section h2{text-align:left}.plugins p.fs-upgrade-notice{border:0;background-color:#d54e21;padding:10px;color:#f9f9f9;margin-top:10px}
freemius/assets/css/admin/connect.css CHANGED
@@ -1 +1 @@
1
- #fs_connect{width:480px;-moz-box-shadow:0px 1px 2px rgba(0,0,0,0.3);-webkit-box-shadow:0px 1px 2px rgba(0,0,0,0.3);box-shadow:0px 1px 2px rgba(0,0,0,0.3);margin:20px 0}@media screen and (max-width: 479px){#fs_connect{-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none;width:auto;margin:0 0 0 -10px}}#fs_connect .fs-content{background:#fff;padding:15px 20px}#fs_connect .fs-content .fs-error{background:snow;color:#d3135a;border:1px solid #d3135a;-moz-box-shadow:0 1px 1px 0 rgba(0,0,0,0.1);-webkit-box-shadow:0 1px 1px 0 rgba(0,0,0,0.1);box-shadow:0 1px 1px 0 rgba(0,0,0,0.1);text-align:center;padding:5px;margin-bottom:10px}#fs_connect .fs-content p{margin:0;padding:0;font-size:1.2em}#fs_connect .fs-license-key-container{position:relative;width:280px;margin:10px auto 0 auto}#fs_connect .fs-license-key-container input{width:100%}#fs_connect .fs-license-key-container .dashicons{position:absolute;top:5px;right:5px}#fs_connect.require-license-key .fs-sites-list-container td{cursor:pointer}#fs_connect #delegate_to_site_admins{margin-right:15px;float:right;height:26px;vertical-align:middle;line-height:37px;font-weight:bold;border-bottom:1px dashed;text-decoration:none}#fs_connect #delegate_to_site_admins.rtl{margin-left:15px;margin-right:0}#fs_connect .fs-actions{padding:10px 20px;background:#C0C7CA}#fs_connect .fs-actions .button{padding:0 10px 1px;line-height:35px;height:37px;font-size:16px;margin-bottom:0}#fs_connect .fs-actions .button .dashicons{font-size:37px;margin-left:-8px;margin-right:12px}#fs_connect .fs-actions .button.button-primary{padding-right:15px;padding-left:15px}#fs_connect .fs-actions .button.button-primary:after{content:' \279C'}#fs_connect .fs-actions .button.button-primary.fs-loading:after{content:''}#fs_connect .fs-actions .button.button-secondary{float:right}#fs_connect.fs-anonymous-disabled .fs-actions .button.button-primary{width:100%}#fs_connect .fs-permissions{padding:10px 20px;background:#FEFEFE;-moz-transition:background 0.5s ease;-o-transition:background 0.5s ease;-ms-transition:background 0.5s ease;-webkit-transition:background 0.5s ease;transition:background 0.5s ease}#fs_connect .fs-permissions .fs-license-sync-disclaimer{text-align:center;margin-top:0}#fs_connect .fs-permissions .fs-trigger{font-size:0.9em;text-decoration:none;text-align:center;display:block}#fs_connect .fs-permissions ul{height:0;overflow:hidden;margin:0}#fs_connect .fs-permissions ul li{margin-bottom:12px}#fs_connect .fs-permissions ul li:last-child{margin-bottom:0}#fs_connect .fs-permissions ul li i.dashicons{float:left;font-size:40px;width:40px;height:40px}#fs_connect .fs-permissions ul li div{margin-left:55px}#fs_connect .fs-permissions ul li div span{font-weight:bold;text-transform:uppercase;color:#23282d}#fs_connect .fs-permissions ul li div p{margin:2px 0 0 0}#fs_connect .fs-permissions.fs-open{background:#fff}#fs_connect .fs-permissions.fs-open ul{height:auto;margin:20px 20px 10px 20px}@media screen and (max-width: 479px){#fs_connect .fs-permissions{background:#fff}#fs_connect .fs-permissions .fs-trigger{display:none}#fs_connect .fs-permissions ul{height:auto;margin:20px}}#fs_connect .fs-freemium-licensing{padding:8px;background:#777;color:#fff}#fs_connect .fs-freemium-licensing p{text-align:center;display:block;margin:0;padding:0}#fs_connect .fs-freemium-licensing a{color:#C2EEFF;text-decoration:underline}#fs_connect .fs-visual{padding:12px;line-height:0;background:#fafafa;height:80px;position:relative}#fs_connect .fs-visual .fs-site-icon{position:absolute;left:20px;top:10px}#fs_connect .fs-visual .fs-connect-logo{position:absolute;right:20px;top:10px}#fs_connect .fs-visual .fs-plugin-icon{position:absolute;top:10px;left:50%;margin-left:-40px}#fs_connect .fs-visual .fs-plugin-icon,#fs_connect .fs-visual .fs-site-icon,#fs_connect .fs-visual img,#fs_connect .fs-visual object{width:80px;height:80px}#fs_connect .fs-visual .dashicons-wordpress{font-size:64px;background:#01749a;color:#fff;width:64px;height:64px;padding:8px}#fs_connect .fs-visual .dashicons-plus{position:absolute;top:50%;font-size:30px;margin-top:-10px;color:#bbb}#fs_connect .fs-visual .dashicons-plus.fs-first{left:28%}#fs_connect .fs-visual .dashicons-plus.fs-second{left:65%}#fs_connect .fs-visual .fs-plugin-icon,#fs_connect .fs-visual .fs-connect-logo,#fs_connect .fs-visual .fs-site-icon{border:1px solid #ccc;padding:1px;background:#fff}#fs_connect .fs-terms{text-align:center;font-size:0.85em;padding:5px;background:rgba(0,0,0,0.05)}#fs_connect .fs-terms,#fs_connect .fs-terms a{color:#999}#fs_connect .fs-terms a{text-decoration:none}.fs-multisite-options-container{margin-top:10px;border:1px solid #ccc;padding:5px}.fs-multisite-options-container a{text-decoration:none}.fs-multisite-options-container a:focus{box-shadow:none}.fs-multisite-options-container a.selected{font-weight:bold}.fs-multisite-options-container.fs-apply-on-all-sites{border:0 none;padding:0}.fs-multisite-options-container.fs-apply-on-all-sites .fs-all-sites-options{border-spacing:0}.fs-multisite-options-container.fs-apply-on-all-sites .fs-all-sites-options td:not(:first-child){display:none}.fs-multisite-options-container .fs-sites-list-container{display:none;overflow:auto}.fs-multisite-options-container .fs-sites-list-container table td{border-top:1px solid #ccc;padding:4px 2px}.fs-tooltip-trigger{position:relative}.fs-tooltip-trigger:not(a){cursor:help}.fs-tooltip-trigger .fs-tooltip{opacity:0;visibility:hidden;-moz-transition:opacity 0.3s ease-in-out;-o-transition:opacity 0.3s ease-in-out;-ms-transition:opacity 0.3s ease-in-out;-webkit-transition:opacity 0.3s ease-in-out;transition:opacity 0.3s ease-in-out;position:absolute;background:rgba(0,0,0,0.8);color:#fff;font-family:'arial', serif;font-size:12px;padding:10px;z-index:999999;bottom:100%;margin-bottom:5px;left:0;right:0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;-moz-box-shadow:1px 1px 1px rgba(0,0,0,0.2);-webkit-box-shadow:1px 1px 1px rgba(0,0,0,0.2);box-shadow:1px 1px 1px rgba(0,0,0,0.2);line-height:1.3em;font-weight:bold;text-align:left}.rtl .fs-tooltip-trigger .fs-tooltip{text-align:right}.fs-tooltip-trigger .fs-tooltip::after{content:' ';display:block;width:0;height:0;border-style:solid;border-width:5px 5px 0 5px;border-color:rgba(0,0,0,0.8) transparent transparent transparent;position:absolute;top:100%;left:21px}.rtl .fs-tooltip-trigger .fs-tooltip::after{right:21px;left:auto}.fs-tooltip-trigger:hover .fs-tooltip{visibility:visible;opacity:1}#fs_marketing_optin{display:none;margin-top:10px;border:1px solid #ccc;padding:10px;line-height:1.5em}#fs_marketing_optin .fs-message{display:block;margin-bottom:5px;font-size:1.05em;font-weight:600}#fs_marketing_optin.error{border:1px solid #d3135a;background:#fee}#fs_marketing_optin.error .fs-message{color:#d3135a}#fs_marketing_optin .fs-input-container{margin-top:5px}#fs_marketing_optin .fs-input-container label{margin-top:5px;display:block}#fs_marketing_optin .fs-input-container label input{float:left;margin:1px 0 0 0}#fs_marketing_optin .fs-input-container label:first-child{display:block;margin-bottom:2px}#fs_marketing_optin .fs-input-label{display:block;margin-left:20px}#fs_marketing_optin .fs-input-label .underlined{text-decoration:underline}.rtl #fs_marketing_optin .fs-input-container label input{float:right}.rtl #fs_marketing_optin .fs-input-label{margin-left:0;margin-right:20px}.rtl #fs_connect .fs-actions{padding:10px 20px;background:#C0C7CA}.rtl #fs_connect .fs-actions .button .dashicons{font-size:37px;margin-left:-8px;margin-right:12px}.rtl #fs_connect .fs-actions .button.button-primary:after{content:' \000bb'}.rtl #fs_connect .fs-actions .button.button-primary.fs-loading:after{content:''}.rtl #fs_connect .fs-actions .button.button-secondary{float:left}.rtl #fs_connect .fs-permissions ul li div{margin-right:55px;margin-left:0}.rtl #fs_connect .fs-permissions ul li i.dashicons{float:right}.rtl #fs_connect .fs-visual .fs-site-icon{right:20px;left:auto}.rtl #fs_connect .fs-visual .fs-connect-logo{right:auto;left:20px}#fs_theme_connect_wrapper{position:fixed;top:0;height:100%;width:100%;z-index:99990;background:rgba(0,0,0,0.75);text-align:center;overflow-y:auto}#fs_theme_connect_wrapper:before{content:"";display:inline-block;vertical-align:middle;height:100%}#fs_theme_connect_wrapper>button.close{color:white;cursor:pointer;height:40px;width:40px;position:absolute;right:0;border:0;background-color:transparent;top:32px}#fs_theme_connect_wrapper #fs_connect{top:0;text-align:left;display:inline-block;vertical-align:middle;margin-top:52px;margin-bottom:20px}#fs_theme_connect_wrapper #fs_connect .fs-terms{background:rgba(140,140,140,0.64)}#fs_theme_connect_wrapper #fs_connect .fs-terms,#fs_theme_connect_wrapper #fs_connect .fs-terms a{color:#c5c5c5}.wp-pointer-content #fs_connect{margin:0;-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none}.fs-opt-in-pointer .wp-pointer-content{padding:0}.fs-opt-in-pointer.wp-pointer-top .wp-pointer-arrow{border-bottom-color:#dfdfdf}.fs-opt-in-pointer.wp-pointer-top .wp-pointer-arrow-inner{border-bottom-color:#fafafa}.fs-opt-in-pointer.wp-pointer-bottom .wp-pointer-arrow{border-top-color:#dfdfdf}.fs-opt-in-pointer.wp-pointer-bottom .wp-pointer-arrow-inner{border-top-color:#fafafa}.fs-opt-in-pointer.wp-pointer-left .wp-pointer-arrow{border-right-color:#dfdfdf}.fs-opt-in-pointer.wp-pointer-left .wp-pointer-arrow-inner{border-right-color:#fafafa}.fs-opt-in-pointer.wp-pointer-right .wp-pointer-arrow{border-left-color:#dfdfdf}.fs-opt-in-pointer.wp-pointer-right .wp-pointer-arrow-inner{border-left-color:#fafafa}
1
+ #fs_connect{width:480px;-moz-box-shadow:0px 1px 2px rgba(0,0,0,0.3);-webkit-box-shadow:0px 1px 2px rgba(0,0,0,0.3);box-shadow:0px 1px 2px rgba(0,0,0,0.3);margin:20px 0}@media screen and (max-width: 479px){#fs_connect{-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none;width:auto;margin:0 0 0 -10px}}#fs_connect .fs-content{background:#fff;padding:15px 20px}#fs_connect .fs-content .fs-error{background:snow;color:#d3135a;border:1px solid #d3135a;-moz-box-shadow:0 1px 1px 0 rgba(0,0,0,0.1);-webkit-box-shadow:0 1px 1px 0 rgba(0,0,0,0.1);box-shadow:0 1px 1px 0 rgba(0,0,0,0.1);text-align:center;padding:5px;margin-bottom:10px}#fs_connect .fs-content p{margin:0;padding:0;font-size:1.2em}#fs_connect .fs-license-key-container{position:relative;width:280px;margin:10px auto 0 auto}#fs_connect .fs-license-key-container input{width:100%}#fs_connect .fs-license-key-container .dashicons{position:absolute;top:5px;right:5px}#fs_connect.require-license-key .fs-sites-list-container td{cursor:pointer}#fs_connect #delegate_to_site_admins{margin-right:15px;float:right;height:26px;vertical-align:middle;line-height:37px;font-weight:bold;border-bottom:1px dashed;text-decoration:none}#fs_connect #delegate_to_site_admins.rtl{margin-left:15px;margin-right:0}#fs_connect .fs-actions{padding:10px 20px;background:#C0C7CA}#fs_connect .fs-actions .button{padding:0 10px 1px;line-height:35px;height:37px;font-size:16px;margin-bottom:0}#fs_connect .fs-actions .button .dashicons{font-size:37px;margin-left:-8px;margin-right:12px}#fs_connect .fs-actions .button.button-primary{padding-right:15px;padding-left:15px}#fs_connect .fs-actions .button.button-primary:after{content:' \279C'}#fs_connect .fs-actions .button.button-primary.fs-loading:after{content:''}#fs_connect .fs-actions .button.button-secondary{float:right}#fs_connect.fs-anonymous-disabled .fs-actions .button.button-primary{width:100%}#fs_connect .fs-permissions{padding:10px 20px;background:#FEFEFE;-moz-transition:background 0.5s ease;-o-transition:background 0.5s ease;-ms-transition:background 0.5s ease;-webkit-transition:background 0.5s ease;transition:background 0.5s ease}#fs_connect .fs-permissions .fs-license-sync-disclaimer{text-align:center;margin-top:0}#fs_connect .fs-permissions .fs-trigger{font-size:0.9em;text-decoration:none;text-align:center;display:block}#fs_connect .fs-permissions ul{height:0;overflow:hidden;margin:0}#fs_connect .fs-permissions ul li{margin-bottom:12px}#fs_connect .fs-permissions ul li:last-child{margin-bottom:0}#fs_connect .fs-permissions ul li i.dashicons{float:left;font-size:40px;width:40px;height:40px}#fs_connect .fs-permissions ul li .fs-switch{float:right}#fs_connect .fs-permissions ul li .fs-permission-description{margin-left:55px}#fs_connect .fs-permissions ul li .fs-permission-description span{font-weight:bold;text-transform:uppercase;color:#23282d}#fs_connect .fs-permissions ul li .fs-permission-description p{margin:2px 0 0 0}#fs_connect .fs-permissions.fs-open{background:#fff}#fs_connect .fs-permissions.fs-open ul{height:auto;margin:20px 20px 10px 20px}@media screen and (max-width: 479px){#fs_connect .fs-permissions{background:#fff}#fs_connect .fs-permissions .fs-trigger{display:none}#fs_connect .fs-permissions ul{height:auto;margin:20px}}#fs_connect .fs-freemium-licensing{padding:8px;background:#777;color:#fff}#fs_connect .fs-freemium-licensing p{text-align:center;display:block;margin:0;padding:0}#fs_connect .fs-freemium-licensing a{color:#C2EEFF;text-decoration:underline}#fs_connect .fs-visual{padding:12px;line-height:0;background:#fafafa;height:80px;position:relative}#fs_connect .fs-visual .fs-site-icon{position:absolute;left:20px;top:10px}#fs_connect .fs-visual .fs-connect-logo{position:absolute;right:20px;top:10px}#fs_connect .fs-visual .fs-plugin-icon{position:absolute;top:10px;left:50%;margin-left:-40px}#fs_connect .fs-visual .fs-plugin-icon,#fs_connect .fs-visual .fs-site-icon,#fs_connect .fs-visual img,#fs_connect .fs-visual object{width:80px;height:80px}#fs_connect .fs-visual .dashicons-wordpress{font-size:64px;background:#01749a;color:#fff;width:64px;height:64px;padding:8px}#fs_connect .fs-visual .dashicons-plus{position:absolute;top:50%;font-size:30px;margin-top:-10px;color:#bbb}#fs_connect .fs-visual .dashicons-plus.fs-first{left:28%}#fs_connect .fs-visual .dashicons-plus.fs-second{left:65%}#fs_connect .fs-visual .fs-plugin-icon,#fs_connect .fs-visual .fs-connect-logo,#fs_connect .fs-visual .fs-site-icon{border:1px solid #ccc;padding:1px;background:#fff}#fs_connect .fs-terms{text-align:center;font-size:0.85em;padding:5px;background:rgba(0,0,0,0.05)}#fs_connect .fs-terms,#fs_connect .fs-terms a{color:#999}#fs_connect .fs-terms a{text-decoration:none}.fs-multisite-options-container{margin-top:10px;border:1px solid #ccc;padding:5px}.fs-multisite-options-container a{text-decoration:none}.fs-multisite-options-container a:focus{box-shadow:none}.fs-multisite-options-container a.selected{font-weight:bold}.fs-multisite-options-container.fs-apply-on-all-sites{border:0 none;padding:0}.fs-multisite-options-container.fs-apply-on-all-sites .fs-all-sites-options{border-spacing:0}.fs-multisite-options-container.fs-apply-on-all-sites .fs-all-sites-options td:not(:first-child){display:none}.fs-multisite-options-container .fs-sites-list-container{display:none;overflow:auto}.fs-multisite-options-container .fs-sites-list-container table td{border-top:1px solid #ccc;padding:4px 2px}.fs-tooltip-trigger{position:relative}.fs-tooltip-trigger:not(a){cursor:help}.fs-tooltip-trigger .fs-tooltip{opacity:0;visibility:hidden;-moz-transition:opacity 0.3s ease-in-out;-o-transition:opacity 0.3s ease-in-out;-ms-transition:opacity 0.3s ease-in-out;-webkit-transition:opacity 0.3s ease-in-out;transition:opacity 0.3s ease-in-out;position:absolute;background:rgba(0,0,0,0.8);color:#fff;font-family:'arial', serif;font-size:12px;padding:10px;z-index:999999;bottom:100%;margin-bottom:5px;left:0;right:0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;-moz-box-shadow:1px 1px 1px rgba(0,0,0,0.2);-webkit-box-shadow:1px 1px 1px rgba(0,0,0,0.2);box-shadow:1px 1px 1px rgba(0,0,0,0.2);line-height:1.3em;font-weight:bold;text-align:left}.rtl .fs-tooltip-trigger .fs-tooltip{text-align:right}.fs-tooltip-trigger .fs-tooltip::after{content:' ';display:block;width:0;height:0;border-style:solid;border-width:5px 5px 0 5px;border-color:rgba(0,0,0,0.8) transparent transparent transparent;position:absolute;top:100%;left:21px}.rtl .fs-tooltip-trigger .fs-tooltip::after{right:21px;left:auto}.fs-tooltip-trigger:hover .fs-tooltip{visibility:visible;opacity:1}#fs_marketing_optin{display:none;margin-top:10px;border:1px solid #ccc;padding:10px;line-height:1.5em}#fs_marketing_optin .fs-message{display:block;margin-bottom:5px;font-size:1.05em;font-weight:600}#fs_marketing_optin.error{border:1px solid #d3135a;background:#fee}#fs_marketing_optin.error .fs-message{color:#d3135a}#fs_marketing_optin .fs-input-container{margin-top:5px}#fs_marketing_optin .fs-input-container label{margin-top:5px;display:block}#fs_marketing_optin .fs-input-container label input{float:left;margin:1px 0 0 0}#fs_marketing_optin .fs-input-container label:first-child{display:block;margin-bottom:2px}#fs_marketing_optin .fs-input-label{display:block;margin-left:20px}#fs_marketing_optin .fs-input-label .underlined{text-decoration:underline}.rtl #fs_marketing_optin .fs-input-container label input{float:right}.rtl #fs_marketing_optin .fs-input-label{margin-left:0;margin-right:20px}.rtl #fs_connect .fs-actions{padding:10px 20px;background:#C0C7CA}.rtl #fs_connect .fs-actions .button .dashicons{font-size:37px;margin-left:-8px;margin-right:12px}.rtl #fs_connect .fs-actions .button.button-primary:after{content:' \000bb'}.rtl #fs_connect .fs-actions .button.button-primary.fs-loading:after{content:''}.rtl #fs_connect .fs-actions .button.button-secondary{float:left}.rtl #fs_connect .fs-permissions ul li .fs-permission-description{margin-right:55px;margin-left:0}.rtl #fs_connect .fs-permissions ul li .fs-switch{float:left}.rtl #fs_connect .fs-permissions ul li i.dashicons{float:right}.rtl #fs_connect .fs-visual .fs-site-icon{right:20px;left:auto}.rtl #fs_connect .fs-visual .fs-connect-logo{right:auto;left:20px}#fs_theme_connect_wrapper{position:fixed;top:0;height:100%;width:100%;z-index:99990;background:rgba(0,0,0,0.75);text-align:center;overflow-y:auto}#fs_theme_connect_wrapper:before{content:"";display:inline-block;vertical-align:middle;height:100%}#fs_theme_connect_wrapper>button.close{color:white;cursor:pointer;height:40px;width:40px;position:absolute;right:0;border:0;background-color:transparent;top:32px}#fs_theme_connect_wrapper #fs_connect{top:0;text-align:left;display:inline-block;vertical-align:middle;margin-top:52px;margin-bottom:20px}#fs_theme_connect_wrapper #fs_connect .fs-terms{background:rgba(140,140,140,0.64)}#fs_theme_connect_wrapper #fs_connect .fs-terms,#fs_theme_connect_wrapper #fs_connect .fs-terms a{color:#c5c5c5}.wp-pointer-content #fs_connect{margin:0;-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none}.fs-opt-in-pointer .wp-pointer-content{padding:0}.fs-opt-in-pointer.wp-pointer-top .wp-pointer-arrow{border-bottom-color:#dfdfdf}.fs-opt-in-pointer.wp-pointer-top .wp-pointer-arrow-inner{border-bottom-color:#fafafa}.fs-opt-in-pointer.wp-pointer-bottom .wp-pointer-arrow{border-top-color:#dfdfdf}.fs-opt-in-pointer.wp-pointer-bottom .wp-pointer-arrow-inner{border-top-color:#fafafa}.fs-opt-in-pointer.wp-pointer-left .wp-pointer-arrow{border-right-color:#dfdfdf}.fs-opt-in-pointer.wp-pointer-left .wp-pointer-arrow-inner{border-right-color:#fafafa}.fs-opt-in-pointer.wp-pointer-right .wp-pointer-arrow{border-left-color:#dfdfdf}.fs-opt-in-pointer.wp-pointer-right .wp-pointer-arrow-inner{border-left-color:#fafafa}
freemius/assets/css/admin/debug.css CHANGED
@@ -1 +1 @@
1
- .switch{position:relative;display:inline-block;font-size:1.6em;font-weight:bold;color:#ccc;text-shadow:0px 1px 1px rgba(255,255,255,0.8);height:18px;padding:6px 6px 5px 6px;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);border-radius:4px;background:#ececec;box-shadow:0px 0px 4px rgba(0,0,0,0.1),inset 0px 1px 3px 0px rgba(0,0,0,0.1);cursor:pointer}.switch span{display:inline-block;width:35px;text-transform:uppercase}.switch span.on{color:#6bc406}.switch .toggle{position:absolute;top:1px;width:37px;height:25px;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.3);border-radius:4px;background:#fff;background:-moz-linear-gradient(top, #ececec 0%, #fff 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #ececec), color-stop(100%, #fff));background:-webkit-linear-gradient(top, #ececec 0%, #fff 100%);background:-o-linear-gradient(top, #ececec 0%, #fff 100%);background:-ms-linear-gradient(top, #ececec 0%, #fff 100%);background:linear-gradient(top, #ececec 0%, #fff 100%);box-shadow:inset 0px 1px 0px 0px rgba(255,255,255,0.5);z-index:999;-moz-transition:all 0.15s ease-in-out;-o-transition:all 0.15s ease-in-out;-ms-transition:all 0.15s ease-in-out;-webkit-transition:all 0.15s ease-in-out;transition:all 0.15s ease-in-out}.switch.on .toggle{left:2%}.switch.off .toggle{left:54%}.switch.round{padding:0px 20px;border-radius:40px}.switch.round .toggle{border-radius:40px;width:14px;height:14px}.switch.round.on .toggle{left:3%;background:#6bc406}.switch.round.off .toggle{left:58%}.switch-label{font-size:20px;line-height:31px;margin:0 5px}#fs_log_book table{font-family:Consolas,Monaco,monospace;font-size:12px}#fs_log_book table th{color:#ccc}#fs_log_book table tr{background:#232525}#fs_log_book table tr.alternate{background:#2b2b2b}#fs_log_book table tr td.fs-col--logger{color:#5a7435}#fs_log_book table tr td.fs-col--type{color:#ffc861}#fs_log_book table tr td.fs-col--function{color:#a7b7b1;font-weight:bold}#fs_log_book table tr td.fs-col--message,#fs_log_book table tr td.fs-col--message a{color:#9a73ac !important}#fs_log_book table tr td.fs-col--file{color:#d07922}#fs_log_book table tr td.fs-col--timestamp{color:#6596be}
1
+ .fs-switch-label{font-size:20px;line-height:31px;margin:0 5px}#fs_log_book table{font-family:Consolas,Monaco,monospace;font-size:12px}#fs_log_book table th{color:#ccc}#fs_log_book table tr{background:#232525}#fs_log_book table tr.alternate{background:#2b2b2b}#fs_log_book table tr td.fs-col--logger{color:#5a7435}#fs_log_book table tr td.fs-col--type{color:#ffc861}#fs_log_book table tr td.fs-col--function{color:#a7b7b1;font-weight:bold}#fs_log_book table tr td.fs-col--message,#fs_log_book table tr td.fs-col--message a{color:#9a73ac !important}#fs_log_book table tr td.fs-col--file{color:#d07922}#fs_log_book table tr td.fs-col--timestamp{color:#6596be}
freemius/assets/css/admin/dialog-boxes.css CHANGED
@@ -1,2 +1,2 @@
1
- .fs-modal{position:fixed;overflow:auto;height:100%;width:100%;top:0;z-index:100000;display:none;background:rgba(0,0,0,0.6)}.fs-modal .fs-modal-dialog{background:transparent;position:absolute;left:50%;margin-left:-298px;padding-bottom:30px;top:-100%;z-index:100001;width:596px}@media (max-width: 650px){.fs-modal .fs-modal-dialog{margin-left:-50%;box-sizing:border-box;padding-left:10px;padding-right:10px;width:100%}.fs-modal .fs-modal-dialog .fs-modal-panel>h3>strong{font-size:1.3em}}.fs-modal.active{display:block}.fs-modal.active:before{display:block}.fs-modal.active .fs-modal-dialog{top:10%}.fs-modal.fs-success .fs-modal-header{border-bottom-color:#46b450}.fs-modal.fs-success .fs-modal-body{background-color:#f7fff7}.fs-modal.fs-warn .fs-modal-header{border-bottom-color:#ffb900}.fs-modal.fs-warn .fs-modal-body{background-color:#fff8e5}.fs-modal.fs-error .fs-modal-header{border-bottom-color:#dc3232}.fs-modal.fs-error .fs-modal-body{background-color:#ffeaea}.fs-modal .fs-modal-body,.fs-modal .fs-modal-footer{border:0;background:#fefefe;padding:20px}.fs-modal .fs-modal-header{border-bottom:#eeeeee solid 1px;background:#fbfbfb;padding:15px 20px;position:relative;margin-bottom:-10px}.fs-modal .fs-modal-header h4{margin:0;padding:0;text-transform:uppercase;font-size:1.2em;font-weight:bold;color:#cacaca;text-shadow:1px 1px 1px #fff;letter-spacing:0.6px;-webkit-font-smoothing:antialiased}.fs-modal .fs-modal-header .fs-close{position:absolute;right:10px;top:12px;cursor:pointer;color:#bbb;-moz-border-radius:20px;-webkit-border-radius:20px;border-radius:20px;padding:3px;-moz-transition:all 0.2s ease-in-out;-o-transition:all 0.2s ease-in-out;-ms-transition:all 0.2s ease-in-out;-webkit-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out}.fs-modal .fs-modal-header .fs-close:hover{color:#fff;background:#aaa}.fs-modal .fs-modal-header .fs-close .dashicons,.fs-modal .fs-modal-header .fs-close:hover .dashicons{text-decoration:none}.fs-modal .fs-modal-body{border-bottom:0}.fs-modal .fs-modal-body p{font-size:14px}.fs-modal .fs-modal-body h2{font-size:20px;line-height:1.5em}.fs-modal .fs-modal-body>div{margin-top:10px}.fs-modal .fs-modal-body>div h2{font-weight:bold;font-size:20px;margin-top:0}.fs-modal .fs-modal-footer{border-top:#eeeeee solid 1px;text-align:right}.fs-modal .fs-modal-footer>.button{margin:0 7px}.fs-modal .fs-modal-footer>.button:first-child{margin:0}.fs-modal .fs-modal-panel>.notice.inline{margin:0;display:none}.fs-modal .fs-modal-panel:not(.active){display:none}.rtl .fs-modal .fs-modal-header .fs-close{right:auto;left:20px}body.has-fs-modal{overflow:hidden}.fs-modal.fs-modal-deactivation-feedback .reason-input,.fs-modal.fs-modal-deactivation-feedback .internal-message{margin:3px 0 3px 22px}.fs-modal.fs-modal-deactivation-feedback .reason-input input,.fs-modal.fs-modal-deactivation-feedback .reason-input textarea,.fs-modal.fs-modal-deactivation-feedback .internal-message input,.fs-modal.fs-modal-deactivation-feedback .internal-message textarea{width:100%}.fs-modal.fs-modal-deactivation-feedback li.reason.has-internal-message .internal-message{border:1px solid #ccc;padding:7px;display:none}@media (max-width: 650px){.fs-modal.fs-modal-deactivation-feedback li.reason li.reason{margin-bottom:10px}.fs-modal.fs-modal-deactivation-feedback li.reason li.reason .reason-input,.fs-modal.fs-modal-deactivation-feedback li.reason li.reason .internal-message{margin-left:29px}.fs-modal.fs-modal-deactivation-feedback li.reason li.reason label{display:table}.fs-modal.fs-modal-deactivation-feedback li.reason li.reason label>span{display:table-cell;font-size:1.3em}}.fs-modal.fs-modal-deactivation-feedback .anonymous-feedback-label{float:left}.fs-modal.fs-modal-deactivation-feedback .fs-modal-panel{margin-top:0 !important}.fs-modal.fs-modal-deactivation-feedback .fs-modal-panel h3{margin-top:0;line-height:1.5em}#the-list .deactivate>.fs-slug{display:none}.fs-modal.fs-modal-subscription-cancellation .fs-price-increase-warning{color:red;font-weight:bold;padding:0 25px;margin-bottom:0}.fs-modal.fs-modal-subscription-cancellation ul.subscription-actions label input{float:left;top:5px;position:relative}.rtl .fs-modal.fs-modal-subscription-cancellation ul.subscription-actions label input{float:right}.fs-modal.fs-modal-subscription-cancellation ul.subscription-actions label span{display:block;margin-left:24px}.rtl .fs-modal.fs-modal-subscription-cancellation ul.subscription-actions label span{margin-left:0;margin-right:24px}.fs-modal.fs-modal-license-activation .fs-modal-body input.fs-license-key{width:100%}.fs-license-options-container table,.fs-license-options-container table select,.fs-license-options-container table .fs-available-license-key{width:100%}.fs-license-options-container table td:first-child{width:1%}.fs-license-options-container table .fs-other-license-key-container label{position:relative;top:6px;float:left;margin-right:5px}.fs-license-options-container table .fs-other-license-key-container div{overflow:hidden;width:auto;height:30px;display:block;top:2px;position:relative}.fs-license-options-container table .fs-other-license-key-container div input{margin:0}.fs-sites-list-container td{cursor:pointer}.fs-multisite-options-container{margin-top:10px;border:1px solid #ccc;padding:5px}.fs-multisite-options-container a{text-decoration:none}.fs-multisite-options-container a:focus{box-shadow:none}.fs-multisite-options-container a.selected{font-weight:bold}.fs-multisite-options-container.fs-apply-on-all-sites{border:0 none;padding:0}.fs-multisite-options-container.fs-apply-on-all-sites .fs-all-sites-options{border-spacing:0}.fs-multisite-options-container.fs-apply-on-all-sites .fs-all-sites-options td:not(:first-child){display:none}.fs-multisite-options-container .fs-sites-list-container{display:none;overflow:auto}.fs-multisite-options-container .fs-sites-list-container table td{border-top:1px solid #ccc;padding:4px 2px}.fs-modal.fs-modal-license-key-resend .email-address-container{overflow:hidden;padding-right:2px}.fs-modal.fs-modal-license-key-resend.fs-freemium input.email-address{width:300px}.fs-modal.fs-modal-license-key-resend.fs-freemium label{display:block;margin-bottom:10px}.fs-modal.fs-modal-license-key-resend.fs-premium input.email-address{width:100%}.fs-modal.fs-modal-license-key-resend.fs-premium .button-container{float:right;margin-left:7px}@media (max-width: 650px){.fs-modal.fs-modal-license-key-resend.fs-premium .button-container{margin-top:2px}}
2
  .rtl .fs-modal.fs-modal-license-key-resend .fs-modal-body .input-container>.email-address-container{padding-left:2px;padding-right:0}.rtl .fs-modal.fs-modal-license-key-resend .fs-modal-body .button-container{float:left;margin-right:7px;margin-left:0}a.show-license-resend-modal{margin-top:4px;display:inline-block}.fs-ajax-loader{position:relative;width:170px;height:20px;margin:auto}.fs-ajax-loader .fs-ajax-loader-bar{position:absolute;top:0;background-color:#0074a3;width:20px;height:20px;-webkit-animation-name:bounce_ajaxLoader;-moz-animation-name:bounce_ajaxLoader;-ms-animation-name:bounce_ajaxLoader;-o-animation-name:bounce_ajaxLoader;animation-name:bounce_ajaxLoader;-webkit-animation-duration:1.5s;-moz-animation-duration:1.5s;-ms-animation-duration:1.5s;-o-animation-duration:1.5s;animation-duration:1.5s;animation-iteration-count:infinite;-o-animation-iteration-count:infinite;-ms-animation-iteration-count:infinite;-webkit-animation-iteration-count:infinite;-moz-animation-iteration-count:infinite;-webkit-animation-direction:normal;-moz-animation-direction:normal;-ms-animation-direction:normal;-o-animation-direction:normal;animation-direction:normal;-moz-transform:0.3;-o-transform:0.3;-ms-transform:0.3;-webkit-transform:0.3;transform:0.3}.fs-ajax-loader .fs-ajax-loader-bar-1{left:0px;animation-delay:0.6s;-o-animation-delay:0.6s;-ms-animation-delay:0.6s;-webkit-animation-delay:0.6s;-moz-animation-delay:0.6s}.fs-ajax-loader .fs-ajax-loader-bar-2{left:19px;animation-delay:0.75s;-o-animation-delay:0.75s;-ms-animation-delay:0.75s;-webkit-animation-delay:0.75s;-moz-animation-delay:0.75s}.fs-ajax-loader .fs-ajax-loader-bar-3{left:38px;animation-delay:0.9s;-o-animation-delay:0.9s;-ms-animation-delay:0.9s;-webkit-animation-delay:0.9s;-moz-animation-delay:0.9s}.fs-ajax-loader .fs-ajax-loader-bar-4{left:57px;animation-delay:1.05s;-o-animation-delay:1.05s;-ms-animation-delay:1.05s;-webkit-animation-delay:1.05s;-moz-animation-delay:1.05s}.fs-ajax-loader .fs-ajax-loader-bar-5{left:76px;animation-delay:1.2s;-o-animation-delay:1.2s;-ms-animation-delay:1.2s;-webkit-animation-delay:1.2s;-moz-animation-delay:1.2s}.fs-ajax-loader .fs-ajax-loader-bar-6{left:95px;animation-delay:1.35s;-o-animation-delay:1.35s;-ms-animation-delay:1.35s;-webkit-animation-delay:1.35s;-moz-animation-delay:1.35s}.fs-ajax-loader .fs-ajax-loader-bar-7{left:114px;animation-delay:1.5s;-o-animation-delay:1.5s;-ms-animation-delay:1.5s;-webkit-animation-delay:1.5s;-moz-animation-delay:1.5s}.fs-ajax-loader .fs-ajax-loader-bar-8{left:133px;animation-delay:1.65s;-o-animation-delay:1.65s;-ms-animation-delay:1.65s;-webkit-animation-delay:1.65s;-moz-animation-delay:1.65s}@-moz-keyframes bounce_ajaxLoader{0%{-moz-transform:scale(1);-o-transform:scale(1);-ms-transform:scale(1);-webkit-transform:scale(1);transform:scale(1);background-color:#0074a3}100%{-moz-transform:scale(0.3);-o-transform:scale(0.3);-ms-transform:scale(0.3);-webkit-transform:scale(0.3);transform:scale(0.3);background-color:#fff}}@-ms-keyframes bounce_ajaxLoader{0%{-moz-transform:scale(1);-o-transform:scale(1);-ms-transform:scale(1);-webkit-transform:scale(1);transform:scale(1);background-color:#0074a3}100%{-moz-transform:scale(0.3);-o-transform:scale(0.3);-ms-transform:scale(0.3);-webkit-transform:scale(0.3);transform:scale(0.3);background-color:#fff}}@-o-keyframes bounce_ajaxLoader{0%{-moz-transform:scale(1);-o-transform:scale(1);-ms-transform:scale(1);-webkit-transform:scale(1);transform:scale(1);background-color:#0074a3}100%{-moz-transform:scale(0.3);-o-transform:scale(0.3);-ms-transform:scale(0.3);-webkit-transform:scale(0.3);transform:scale(0.3);background-color:#fff}}@-webkit-keyframes bounce_ajaxLoader{0%{-moz-transform:scale(1);-o-transform:scale(1);-ms-transform:scale(1);-webkit-transform:scale(1);transform:scale(1);background-color:#0074a3}100%{-moz-transform:scale(0.3);-o-transform:scale(0.3);-ms-transform:scale(0.3);-webkit-transform:scale(0.3);transform:scale(0.3);background-color:#fff}}@keyframes bounce_ajaxLoader{0%{-moz-transform:scale(1);-o-transform:scale(1);-ms-transform:scale(1);-webkit-transform:scale(1);transform:scale(1);background-color:#0074a3}100%{-moz-transform:scale(0.3);-o-transform:scale(0.3);-ms-transform:scale(0.3);-webkit-transform:scale(0.3);transform:scale(0.3);background-color:#fff}}.fs-modal-auto-install #request-filesystem-credentials-form h2,.fs-modal-auto-install #request-filesystem-credentials-form .request-filesystem-credentials-action-buttons{display:none}.fs-modal-auto-install #request-filesystem-credentials-form input[type=password],.fs-modal-auto-install #request-filesystem-credentials-form input[type=email],.fs-modal-auto-install #request-filesystem-credentials-form input[type=text]{-webkit-appearance:none;padding:10px 10px 5px 10px;width:300px;max-width:100%}.fs-modal-auto-install #request-filesystem-credentials-form>div,.fs-modal-auto-install #request-filesystem-credentials-form label,.fs-modal-auto-install #request-filesystem-credentials-form fieldset{width:300px;max-width:100%;margin:0 auto;display:block}.button-primary.warn{box-shadow:0 1px 0 #d2593c;text-shadow:0 -1px 1px #d2593c,1px 0 1px #d2593c,0 1px 1px #d2593c,-1px 0 1px #d2593c;background:#f56a48;border-color:#ec6544 #d2593c #d2593c}.button-primary.warn:hover{background:#fd6d4a;border-color:#d2593c}.button-primary.warn:focus{box-shadow:0 1px 0 #dd6041,0 0 2px 1px #e4a796}.button-primary.warn:active{background:#dd6041;border-color:#d2593c;box-shadow:inset 0 2px 0 #d2593c}.button-primary.warn.disabled{color:#f5b3a1 !important;background:#e76444 !important;border-color:#d85e40 !important;text-shadow:0 -1px 0 rgba(0,0,0,0.1) !important}
1
+ .fs-modal{position:fixed;overflow:auto;height:100%;width:100%;top:0;z-index:100000;display:none;background:rgba(0,0,0,0.6)}.fs-modal .dashicons{vertical-align:middle}.fs-modal .fs-modal-dialog{background:transparent;position:absolute;left:50%;margin-left:-298px;padding-bottom:30px;top:-100%;z-index:100001;width:596px}@media (max-width: 650px){.fs-modal .fs-modal-dialog{margin-left:-50%;box-sizing:border-box;padding-left:10px;padding-right:10px;width:100%}.fs-modal .fs-modal-dialog .fs-modal-panel>h3>strong{font-size:1.3em}}.fs-modal.active{display:block}.fs-modal.active:before{display:block}.fs-modal.active .fs-modal-dialog{top:10%}.fs-modal.fs-success .fs-modal-header{border-bottom-color:#46b450}.fs-modal.fs-success .fs-modal-body{background-color:#f7fff7}.fs-modal.fs-warn .fs-modal-header{border-bottom-color:#ffb900}.fs-modal.fs-warn .fs-modal-body{background-color:#fff8e5}.fs-modal.fs-error .fs-modal-header{border-bottom-color:#dc3232}.fs-modal.fs-error .fs-modal-body{background-color:#ffeaea}.fs-modal .fs-modal-body,.fs-modal .fs-modal-footer{border:0;background:#fefefe;padding:20px}.fs-modal .fs-modal-header{border-bottom:#eeeeee solid 1px;background:#fbfbfb;padding:15px 20px;position:relative;margin-bottom:-10px}.fs-modal .fs-modal-header h4{margin:0;padding:0;text-transform:uppercase;font-size:1.2em;font-weight:bold;color:#cacaca;text-shadow:1px 1px 1px #fff;letter-spacing:0.6px;-webkit-font-smoothing:antialiased}.fs-modal .fs-modal-header .fs-close{position:absolute;right:10px;top:12px;cursor:pointer;color:#bbb;-moz-border-radius:20px;-webkit-border-radius:20px;border-radius:20px;padding:3px;-moz-transition:all 0.2s ease-in-out;-o-transition:all 0.2s ease-in-out;-ms-transition:all 0.2s ease-in-out;-webkit-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out}.fs-modal .fs-modal-header .fs-close:hover{color:#fff;background:#aaa}.fs-modal .fs-modal-header .fs-close .dashicons,.fs-modal .fs-modal-header .fs-close:hover .dashicons{text-decoration:none}.fs-modal .fs-modal-body{border-bottom:0}.fs-modal .fs-modal-body p{font-size:14px}.fs-modal .fs-modal-body h2{font-size:20px;line-height:1.5em}.fs-modal .fs-modal-body>div{margin-top:10px}.fs-modal .fs-modal-body>div h2{font-weight:bold;font-size:20px;margin-top:0}.fs-modal .fs-modal-footer{border-top:#eeeeee solid 1px;text-align:right}.fs-modal .fs-modal-footer>.button{margin:0 7px}.fs-modal .fs-modal-footer>.button:first-child{margin:0}.fs-modal .fs-modal-panel>.notice.inline{margin:0;display:none}.fs-modal .fs-modal-panel:not(.active){display:none}.rtl .fs-modal .fs-modal-header .fs-close{right:auto;left:20px}body.has-fs-modal{overflow:hidden}.fs-modal.fs-modal-deactivation-feedback .reason-input,.fs-modal.fs-modal-deactivation-feedback .internal-message{margin:3px 0 3px 22px}.fs-modal.fs-modal-deactivation-feedback .reason-input input,.fs-modal.fs-modal-deactivation-feedback .reason-input textarea,.fs-modal.fs-modal-deactivation-feedback .internal-message input,.fs-modal.fs-modal-deactivation-feedback .internal-message textarea{width:100%}.fs-modal.fs-modal-deactivation-feedback li.reason.has-internal-message .internal-message{border:1px solid #ccc;padding:7px;display:none}@media (max-width: 650px){.fs-modal.fs-modal-deactivation-feedback li.reason li.reason{margin-bottom:10px}.fs-modal.fs-modal-deactivation-feedback li.reason li.reason .reason-input,.fs-modal.fs-modal-deactivation-feedback li.reason li.reason .internal-message{margin-left:29px}.fs-modal.fs-modal-deactivation-feedback li.reason li.reason label{display:table}.fs-modal.fs-modal-deactivation-feedback li.reason li.reason label>span{display:table-cell;font-size:1.3em}}.fs-modal.fs-modal-deactivation-feedback .anonymous-feedback-label{float:left}.fs-modal.fs-modal-deactivation-feedback .fs-modal-panel{margin-top:0 !important}.fs-modal.fs-modal-deactivation-feedback .fs-modal-panel h3{margin-top:0;line-height:1.5em}#the-list .deactivate>.fs-slug{display:none}.fs-modal.fs-modal-subscription-cancellation .fs-price-increase-warning{color:red;font-weight:bold;padding:0 25px;margin-bottom:0}.fs-modal.fs-modal-subscription-cancellation ul.subscription-actions label input{float:left;top:5px;position:relative}.rtl .fs-modal.fs-modal-subscription-cancellation ul.subscription-actions label input{float:right}.fs-modal.fs-modal-subscription-cancellation ul.subscription-actions label span{display:block;margin-left:24px}.rtl .fs-modal.fs-modal-subscription-cancellation ul.subscription-actions label span{margin-left:0;margin-right:24px}.fs-modal.fs-modal-license-activation .fs-modal-body input.fs-license-key{width:100%}.fs-license-options-container table,.fs-license-options-container table select,.fs-license-options-container table .fs-available-license-key{width:100%}.fs-license-options-container table td:first-child{width:1%}.fs-license-options-container table .fs-other-license-key-container label{position:relative;top:6px;float:left;margin-right:5px}.fs-license-options-container table .fs-other-license-key-container div{overflow:hidden;width:auto;height:30px;display:block;top:2px;position:relative}.fs-license-options-container table .fs-other-license-key-container div input{margin:0}.fs-sites-list-container td{cursor:pointer}.fs-modal.fs-modal-user-change .fs-modal-body input#fs_other_email_address{width:100%}.fs-user-change-options-container table{width:100%;border-collapse:collapse}.fs-user-change-options-container table tr{display:block;margin-bottom:2px}.fs-user-change-options-container table .fs-email-address-container td{display:inline-block}.fs-user-change-options-container table .fs-email-address-container input[type="radio"]{margin-bottom:0;margin-top:0}.fs-user-change-options-container table .fs-other-email-address-container{width:100%}.fs-user-change-options-container table .fs-other-email-address-container>div{display:table;width:100%}.fs-user-change-options-container table .fs-other-email-address-container>div label,.fs-user-change-options-container table .fs-other-email-address-container>div>div{display:table-cell}.fs-user-change-options-container table .fs-other-email-address-container>div label{width:1%;padding-left:3px;padding-right:3px}.fs-user-change-options-container table .fs-other-email-address-container>div>div{width:auto}.fs-user-change-options-container table .fs-other-email-address-container>div>div input{width:100%}.fs-modal.fs-modal-developer-license-debug-mode .fs-modal-body input.fs-license-or-user-key{width:100%}.fs-multisite-options-container{margin-top:10px;border:1px solid #ccc;padding:5px}.fs-multisite-options-container a{text-decoration:none}.fs-multisite-options-container a:focus{box-shadow:none}.fs-multisite-options-container a.selected{font-weight:bold}.fs-multisite-options-container.fs-apply-on-all-sites{border:0 none;padding:0}.fs-multisite-options-container.fs-apply-on-all-sites .fs-all-sites-options{border-spacing:0}.fs-multisite-options-container.fs-apply-on-all-sites .fs-all-sites-options td:not(:first-child){display:none}.fs-multisite-options-container .fs-sites-list-container{display:none;overflow:auto}.fs-multisite-options-container .fs-sites-list-container table td{border-top:1px solid #ccc;padding:4px 2px}.fs-modal.fs-modal-license-key-resend .email-address-container{overflow:hidden;padding-right:2px}.fs-modal.fs-modal-license-key-resend.fs-freemium input.email-address{width:300px}.fs-modal.fs-modal-license-key-resend.fs-freemium label{display:block;margin-bottom:10px}.fs-modal.fs-modal-license-key-resend.fs-premium input.email-address{width:100%}.fs-modal.fs-modal-license-key-resend.fs-premium .button-container{float:right;margin-left:7px}@media (max-width: 650px){.fs-modal.fs-modal-license-key-resend.fs-premium .button-container{margin-top:2px}}
2
  .rtl .fs-modal.fs-modal-license-key-resend .fs-modal-body .input-container>.email-address-container{padding-left:2px;padding-right:0}.rtl .fs-modal.fs-modal-license-key-resend .fs-modal-body .button-container{float:left;margin-right:7px;margin-left:0}a.show-license-resend-modal{margin-top:4px;display:inline-block}.fs-ajax-loader{position:relative;width:170px;height:20px;margin:auto}.fs-ajax-loader .fs-ajax-loader-bar{position:absolute;top:0;background-color:#0074a3;width:20px;height:20px;-webkit-animation-name:bounce_ajaxLoader;-moz-animation-name:bounce_ajaxLoader;-ms-animation-name:bounce_ajaxLoader;-o-animation-name:bounce_ajaxLoader;animation-name:bounce_ajaxLoader;-webkit-animation-duration:1.5s;-moz-animation-duration:1.5s;-ms-animation-duration:1.5s;-o-animation-duration:1.5s;animation-duration:1.5s;animation-iteration-count:infinite;-o-animation-iteration-count:infinite;-ms-animation-iteration-count:infinite;-webkit-animation-iteration-count:infinite;-moz-animation-iteration-count:infinite;-webkit-animation-direction:normal;-moz-animation-direction:normal;-ms-animation-direction:normal;-o-animation-direction:normal;animation-direction:normal;-moz-transform:0.3;-o-transform:0.3;-ms-transform:0.3;-webkit-transform:0.3;transform:0.3}.fs-ajax-loader .fs-ajax-loader-bar-1{left:0px;animation-delay:0.6s;-o-animation-delay:0.6s;-ms-animation-delay:0.6s;-webkit-animation-delay:0.6s;-moz-animation-delay:0.6s}.fs-ajax-loader .fs-ajax-loader-bar-2{left:19px;animation-delay:0.75s;-o-animation-delay:0.75s;-ms-animation-delay:0.75s;-webkit-animation-delay:0.75s;-moz-animation-delay:0.75s}.fs-ajax-loader .fs-ajax-loader-bar-3{left:38px;animation-delay:0.9s;-o-animation-delay:0.9s;-ms-animation-delay:0.9s;-webkit-animation-delay:0.9s;-moz-animation-delay:0.9s}.fs-ajax-loader .fs-ajax-loader-bar-4{left:57px;animation-delay:1.05s;-o-animation-delay:1.05s;-ms-animation-delay:1.05s;-webkit-animation-delay:1.05s;-moz-animation-delay:1.05s}.fs-ajax-loader .fs-ajax-loader-bar-5{left:76px;animation-delay:1.2s;-o-animation-delay:1.2s;-ms-animation-delay:1.2s;-webkit-animation-delay:1.2s;-moz-animation-delay:1.2s}.fs-ajax-loader .fs-ajax-loader-bar-6{left:95px;animation-delay:1.35s;-o-animation-delay:1.35s;-ms-animation-delay:1.35s;-webkit-animation-delay:1.35s;-moz-animation-delay:1.35s}.fs-ajax-loader .fs-ajax-loader-bar-7{left:114px;animation-delay:1.5s;-o-animation-delay:1.5s;-ms-animation-delay:1.5s;-webkit-animation-delay:1.5s;-moz-animation-delay:1.5s}.fs-ajax-loader .fs-ajax-loader-bar-8{left:133px;animation-delay:1.65s;-o-animation-delay:1.65s;-ms-animation-delay:1.65s;-webkit-animation-delay:1.65s;-moz-animation-delay:1.65s}@-moz-keyframes bounce_ajaxLoader{0%{-moz-transform:scale(1);-o-transform:scale(1);-ms-transform:scale(1);-webkit-transform:scale(1);transform:scale(1);background-color:#0074a3}100%{-moz-transform:scale(0.3);-o-transform:scale(0.3);-ms-transform:scale(0.3);-webkit-transform:scale(0.3);transform:scale(0.3);background-color:#fff}}@-ms-keyframes bounce_ajaxLoader{0%{-moz-transform:scale(1);-o-transform:scale(1);-ms-transform:scale(1);-webkit-transform:scale(1);transform:scale(1);background-color:#0074a3}100%{-moz-transform:scale(0.3);-o-transform:scale(0.3);-ms-transform:scale(0.3);-webkit-transform:scale(0.3);transform:scale(0.3);background-color:#fff}}@-o-keyframes bounce_ajaxLoader{0%{-moz-transform:scale(1);-o-transform:scale(1);-ms-transform:scale(1);-webkit-transform:scale(1);transform:scale(1);background-color:#0074a3}100%{-moz-transform:scale(0.3);-o-transform:scale(0.3);-ms-transform:scale(0.3);-webkit-transform:scale(0.3);transform:scale(0.3);background-color:#fff}}@-webkit-keyframes bounce_ajaxLoader{0%{-moz-transform:scale(1);-o-transform:scale(1);-ms-transform:scale(1);-webkit-transform:scale(1);transform:scale(1);background-color:#0074a3}100%{-moz-transform:scale(0.3);-o-transform:scale(0.3);-ms-transform:scale(0.3);-webkit-transform:scale(0.3);transform:scale(0.3);background-color:#fff}}@keyframes bounce_ajaxLoader{0%{-moz-transform:scale(1);-o-transform:scale(1);-ms-transform:scale(1);-webkit-transform:scale(1);transform:scale(1);background-color:#0074a3}100%{-moz-transform:scale(0.3);-o-transform:scale(0.3);-ms-transform:scale(0.3);-webkit-transform:scale(0.3);transform:scale(0.3);background-color:#fff}}.fs-modal-auto-install #request-filesystem-credentials-form h2,.fs-modal-auto-install #request-filesystem-credentials-form .request-filesystem-credentials-action-buttons{display:none}.fs-modal-auto-install #request-filesystem-credentials-form input[type=password],.fs-modal-auto-install #request-filesystem-credentials-form input[type=email],.fs-modal-auto-install #request-filesystem-credentials-form input[type=text]{-webkit-appearance:none;padding:10px 10px 5px 10px;width:300px;max-width:100%}.fs-modal-auto-install #request-filesystem-credentials-form>div,.fs-modal-auto-install #request-filesystem-credentials-form label,.fs-modal-auto-install #request-filesystem-credentials-form fieldset{width:300px;max-width:100%;margin:0 auto;display:block}.button-primary.warn{box-shadow:0 1px 0 #d2593c;text-shadow:0 -1px 1px #d2593c,1px 0 1px #d2593c,0 1px 1px #d2593c,-1px 0 1px #d2593c;background:#f56a48;border-color:#ec6544 #d2593c #d2593c}.button-primary.warn:hover{background:#fd6d4a;border-color:#d2593c}.button-primary.warn:focus{box-shadow:0 1px 0 #dd6041,0 0 2px 1px #e4a796}.button-primary.warn:active{background:#dd6041;border-color:#d2593c;box-shadow:inset 0 2px 0 #d2593c}.button-primary.warn.disabled{color:#f5b3a1 !important;background:#e76444 !important;border-color:#d85e40 !important;text-shadow:0 -1px 0 rgba(0,0,0,0.1) !important}
freemius/assets/css/admin/plugins.css ADDED
@@ -0,0 +1 @@
 
1
+ label.fs-tag,span.fs-tag{background:#ffba00;color:#fff;display:inline-block;border-radius:3px;padding:5px;font-size:11px;line-height:11px;vertical-align:baseline}label.fs-tag.fs-warn,span.fs-tag.fs-warn{background:#ffba00}label.fs-tag.fs-info,span.fs-tag.fs-info{background:#00a0d2}label.fs-tag.fs-success,span.fs-tag.fs-success{background:#46b450}label.fs-tag.fs-error,span.fs-tag.fs-error{background:#dc3232}.wp-list-table.plugins .plugin-title span.fs-tag{display:inline-block;margin-left:5px;line-height:10px}
freemius/assets/css/customizer.css CHANGED
@@ -1 +1 @@
1
- #fs_customizer_upsell .fs-customizer-plan{padding:10px 20px 20px 20px;border-radius:3px;background:#fff}#fs_customizer_upsell .fs-customizer-plan h2{position:relative;margin:0;line-height:2em;text-transform:uppercase}#fs_customizer_upsell .fs-customizer-plan h2 .button-link{top:-2px}#fs_customizer_upsell .fs-feature{position:relative}#fs_customizer_upsell .dashicons-yes{color:#0085ba;font-size:2em;vertical-align:bottom;margin-left:-7px;margin-right:10px}.rtl #fs_customizer_upsell .dashicons-yes{margin-left:10px;margin-right:-7px}#fs_customizer_upsell .dashicons-editor-help{color:#bbb;cursor:help}#fs_customizer_upsell .dashicons-editor-help .fs-feature-desc{opacity:0;visibility:hidden;-moz-transition:opacity 0.3s ease-in-out;-o-transition:opacity 0.3s ease-in-out;-ms-transition:opacity 0.3s ease-in-out;-webkit-transition:opacity 0.3s ease-in-out;transition:opacity 0.3s ease-in-out;position:absolute;background:#000;color:#fff;font-family:'arial', serif;font-size:12px;padding:10px;z-index:999999;bottom:100%;margin-bottom:5px;left:0;right:0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;-moz-box-shadow:1px 1px 1px rgba(0,0,0,0.2);-webkit-box-shadow:1px 1px 1px rgba(0,0,0,0.2);box-shadow:1px 1px 1px rgba(0,0,0,0.2);line-height:1.3em;font-weight:bold;text-align:left}.rtl #fs_customizer_upsell .dashicons-editor-help .fs-feature-desc{text-align:right}#fs_customizer_upsell .dashicons-editor-help .fs-feature-desc::after{content:' ';display:block;width:0;height:0;border-style:solid;border-width:5px 5px 0 5px;border-color:#000 transparent transparent transparent;position:absolute;top:100%;left:21px}.rtl #fs_customizer_upsell .dashicons-editor-help .fs-feature-desc::after{right:21px;left:auto}#fs_customizer_upsell .dashicons-editor-help:hover .fs-feature-desc{visibility:visible;opacity:1}#fs_customizer_upsell .button-primary{display:block;text-align:center;margin-top:10px}#fs_customizer_support{display:block !important}#fs_customizer_support .button{float:right}#fs_customizer_support .button-group{width:100%;display:block;margin-top:10px}#fs_customizer_support .button-group .button{float:none;width:50%;text-align:center}
1
+ #fs_customizer_upsell .fs-customizer-plan{padding:10px 20px 20px 20px;border-radius:3px;background:#fff}#fs_customizer_upsell .fs-customizer-plan h2{position:relative;margin:0;line-height:2em;text-transform:uppercase}#fs_customizer_upsell .fs-customizer-plan h2 .button-link{top:-2px}#fs_customizer_upsell .fs-feature{position:relative}#fs_customizer_upsell .dashicons-yes{color:#0085ba;font-size:2em;vertical-align:bottom;margin-left:-7px;margin-right:10px}.rtl #fs_customizer_upsell .dashicons-yes{margin-left:10px;margin-right:-7px}#fs_customizer_upsell .dashicons-editor-help{color:#bbb;cursor:help}#fs_customizer_upsell .dashicons-editor-help .fs-feature-desc{opacity:0;visibility:hidden;-moz-transition:opacity 0.3s ease-in-out;-o-transition:opacity 0.3s ease-in-out;-ms-transition:opacity 0.3s ease-in-out;-webkit-transition:opacity 0.3s ease-in-out;transition:opacity 0.3s ease-in-out;position:absolute;background:#000;color:#fff;font-family:'arial', serif;font-size:12px;padding:10px;z-index:999999;bottom:100%;margin-bottom:5px;left:0;right:0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;-moz-box-shadow:1px 1px 1px rgba(0,0,0,0.2);-webkit-box-shadow:1px 1px 1px rgba(0,0,0,0.2);box-shadow:1px 1px 1px rgba(0,0,0,0.2);line-height:1.3em;font-weight:bold;text-align:left}.rtl #fs_customizer_upsell .dashicons-editor-help .fs-feature-desc{text-align:right}#fs_customizer_upsell .dashicons-editor-help .fs-feature-desc::after{content:' ';display:block;width:0;height:0;border-style:solid;border-width:5px 5px 0 5px;border-color:#000 transparent transparent transparent;position:absolute;top:100%;left:21px}.rtl #fs_customizer_upsell .dashicons-editor-help .fs-feature-desc::after{right:21px;left:auto}#fs_customizer_upsell .dashicons-editor-help:hover .fs-feature-desc{visibility:visible;opacity:1}#fs_customizer_upsell .button-primary{display:block;text-align:center;margin-top:10px}#fs_customizer_support{display:block !important}#fs_customizer_support .button{float:right}#fs_customizer_support .button-group{width:100%;display:block;margin-top:10px}#fs_customizer_support .button-group .button{float:none;width:50%;text-align:center}#customize-theme-controls #accordion-section-freemius_upsell{border-top:1px solid #0085ba !important;border-bottom:1px solid #0085ba !important}#customize-theme-controls #accordion-section-freemius_upsell h3.accordion-section-title{color:#fff;background-color:#0085ba;border-left:4px solid #0085ba;transition:.15s background-color ease-in-out, .15s border-color ease-in-out;outline:none;border-bottom:none !important}#customize-theme-controls #accordion-section-freemius_upsell h3.accordion-section-title:hover{background-color:#008ec2;border-left-color:#0073aa}#customize-theme-controls #accordion-section-freemius_upsell h3.accordion-section-title:after{color:#fff}#customize-theme-controls #accordion-section-freemius_upsell .rtl h3.accordion-section-title{border-left:none;border-right:4px solid #0085ba}#customize-theme-controls #accordion-section-freemius_upsell .rtl h3.accordion-section-title:hover{border-right-color:#0073aa}
freemius/config.php CHANGED
@@ -385,4 +385,7 @@
385
 
386
  if ( ! defined( 'WP_FS__DEMO_MODE' ) ) {
387
  define( 'WP_FS__DEMO_MODE', false );
388
- }
 
 
 
385
 
386
  if ( ! defined( 'WP_FS__DEMO_MODE' ) ) {
387
  define( 'WP_FS__DEMO_MODE', false );
388
+ }
389
+ if ( ! defined( 'FS_SDK__SSLVERIFY' ) ) {
390
+ define( 'FS_SDK__SSLVERIFY', false );
391
+ }
freemius/includes/class-freemius.php CHANGED
@@ -164,6 +164,15 @@
164
  */
165
  private $_has_addons;
166
 
 
 
 
 
 
 
 
 
 
167
  /**
168
  * @since 1.1.6
169
  * @var string[]bool.
@@ -334,6 +343,22 @@
334
  */
335
  private $_dynamically_added_top_level_page_hook_name = '';
336
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
337
  #region Uninstall Reasons IDs
338
 
339
  const REASON_NO_LONGER_NEEDED = 1;
@@ -352,6 +377,14 @@
352
  const REASON_DIDNT_WORK_AS_EXPECTED = 14;
353
  const REASON_TEMPORARY_DEACTIVATION = 15;
354
 
 
 
 
 
 
 
 
 
355
  #endregion
356
 
357
  /* Ctor
@@ -484,13 +517,13 @@
484
  );
485
 
486
  if ( 'true' === fs_request_get( 'fs_clear_api_cache' ) ||
487
- 'true' === fs_request_is_action( 'restart_freemius' )
488
  ) {
489
  FS_Api::clear_cache();
490
  $this->_cache->clear();
491
  }
492
 
493
- $this->_register_hooks();
494
 
495
  /**
496
  * Starting from version 2.0.0, `FS_Site` entities no longer have the `plan` property and have `plan_id`
@@ -702,6 +735,52 @@
702
  $this->_menu->has_menu();
703
  }
704
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
705
  /**
706
  * Check if the context module is free wp.org theme.
707
  *
@@ -734,12 +813,11 @@
734
  * @since 1.2.2.7 Even if the menu item was specified to be hidden, when it is the context page, then show the submenu item so the user will have the right context page.
735
  *
736
  * @param string $slug
737
- * @param bool $ignore_free_wp_org_theme_context This is used to decide if the associated tab should be shown
738
- * or hidden.
739
  *
740
  * @return bool
741
  */
742
- function is_submenu_item_visible( $slug, $ignore_free_wp_org_theme_context = false ) {
743
  if ( $this->is_admin_page( $slug ) ) {
744
  /**
745
  * It is the current context page, so show the submenu item
@@ -754,7 +832,11 @@
754
  return false;
755
  }
756
 
757
- if ( ! $ignore_free_wp_org_theme_context && $this->is_free_wp_org_theme() ) {
 
 
 
 
758
  /**
759
  * wp.org themes are limited to a single submenu item, and
760
  * sub-submenu items are most likely not allowed (never verified).
@@ -980,7 +1062,7 @@
980
  }
981
 
982
  if ( isset( $this->_storage->subscription ) && is_object( $this->_storage->subscription ) ) {
983
- $this->_storage->subscriptions = array( $this->_storage->subscription );
984
  }
985
  }
986
 
@@ -1395,7 +1477,10 @@
1395
  if ( $this->is_plugin() &&
1396
  ! isset( $this->_storage->is_plugin_new_install )
1397
  ) {
1398
- $this->_storage->is_plugin_new_install = false;
 
 
 
1399
  }
1400
  }
1401
 
@@ -1418,6 +1503,13 @@
1418
  -1 < settings.url.indexOf('admin-ajax.php') &&
1419
  ! ( settings.url.indexOf( '<?php echo $admin_param ?>' ) > 0 )
1420
  ) {
 
 
 
 
 
 
 
1421
  if (settings.url.indexOf('?') > 0) {
1422
  settings.url += '&';
1423
  } else {
@@ -1425,7 +1517,6 @@
1425
  }
1426
 
1427
  settings.url += '<?php echo $admin_param ?>=true';
1428
-
1429
  }
1430
  });
1431
  })(jQuery);
@@ -1443,7 +1534,7 @@
1443
  ?>
1444
  <script type="text/javascript">
1445
  (function ($) {
1446
- $('.fs-submenu-item.wp-support-forum').parent().attr('target', '_blank');
1447
  })(jQuery);
1448
  </script>
1449
  <?php
@@ -1453,11 +1544,11 @@
1453
  * @author Vova Feldman (@svovaf)
1454
  * @since 1.0.9
1455
  */
1456
- private function _register_hooks() {
1457
  $this->_logger->entrance();
1458
 
1459
  if ( is_admin() ) {
1460
- add_action( 'plugins_loaded', array( &$this, '_hook_action_links_and_register_account_hooks' ) );
1461
 
1462
  if ( $this->is_plugin() ) {
1463
  if ( self::is_plugin_install_page() && true !== fs_request_get_bool( 'fs_allow_updater_and_dialog' ) ) {
@@ -1498,34 +1589,6 @@
1498
  } else {
1499
  add_action( 'after_switch_theme', array( &$this, '_activate_theme_event_hook' ), 10, 2 );
1500
 
1501
- /**
1502
- * Include the required hooks to capture the theme settings' page tabs
1503
- * and cache them.
1504
- *
1505
- * @author Vova Feldman (@svovaf)
1506
- * @since 1.2.2.7
1507
- */
1508
- if ( ! $this->_cache->has_valid( 'tabs' ) ) {
1509
- add_action( 'admin_footer', array( &$this, '_tabs_capture' ) );
1510
- // Add license activation AJAX callback.
1511
- $this->add_ajax_action( 'store_tabs', array( &$this, '_store_tabs_ajax_action' ) );
1512
-
1513
- add_action( 'admin_enqueue_scripts', array( &$this, '_store_tabs_styles' ), 9999999 );
1514
- }
1515
-
1516
- add_action(
1517
- 'admin_footer',
1518
- array( &$this, '_add_freemius_tabs' ),
1519
- /**
1520
- * The tabs JS code must be executed after the tabs capture logic (_tabs_capture()).
1521
- * That's why the priority is 11 while the tabs capture logic is added
1522
- * with priority 10.
1523
- *
1524
- * @author Vova Feldman (@svovaf)
1525
- */
1526
- 11
1527
- );
1528
-
1529
  add_action( 'admin_footer', array( &$this, '_style_premium_theme' ) );
1530
  }
1531
 
@@ -1545,7 +1608,10 @@
1545
  *
1546
  * @author Vova Feldman (@svovaf)
1547
  */
1548
- if ( $this->is_plugin() && $this->is_activation_mode( false ) ) {
 
 
 
1549
  add_action( 'plugins_loaded', array( &$this, '_plugins_loaded' ) );
1550
  } else {
1551
  // If was activated before, then it was already loaded before.
@@ -1564,6 +1630,7 @@
1564
  }
1565
 
1566
  add_action( 'init', array( &$this, '_maybe_add_gdpr_optin_ajax_handler') );
 
1567
  }
1568
 
1569
  if ( $this->is_plugin() ) {
@@ -1595,16 +1662,19 @@
1595
 
1596
  add_action( 'admin_init', array( &$this, '_redirect_on_clicked_menu_link' ), WP_FS__LOWEST_PRIORITY );
1597
 
1598
- if ( $this->is_theme() ) {
1599
  add_action( 'admin_init', array( &$this, '_add_tracking_links' ) );
1600
  }
1601
 
1602
  add_action( 'admin_init', array( &$this, '_add_license_activation' ) );
1603
  add_action( 'admin_init', array( &$this, '_add_premium_version_upgrade_selection' ) );
1604
  add_action( 'admin_init', array( &$this, '_add_beta_mode_update_handler' ) );
 
1605
 
1606
  $this->add_ajax_action( 'update_billing', array( &$this, '_update_billing_ajax_action' ) );
1607
  $this->add_ajax_action( 'start_trial', array( &$this, '_start_trial_ajax_action' ) );
 
 
1608
 
1609
  if ( $this->_is_network_active && fs_is_network_admin() ) {
1610
  $this->add_ajax_action( 'network_activate', array( &$this, '_network_activate_ajax_action' ) );
@@ -1646,6 +1716,65 @@
1646
  }
1647
  }
1648
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1649
  /**
1650
  * Makes Freemius-related updates unavailable on the "Add Plugins" admin page (/plugin-install.php) so that
1651
  * they won't interfere with the .org plugins' functionalities on that page (e.g. updating of a .org plugin).
@@ -1908,7 +2037,11 @@
1908
  * @since 2.0.0
1909
  */
1910
  function _hook_action_links_and_register_account_hooks() {
1911
- add_action( 'admin_init', array( &$this, '_add_tracking_links' ) );
 
 
 
 
1912
 
1913
  if ( self::is_plugins_page() && $this->is_plugin() ) {
1914
  $this->hook_plugin_action_links();
@@ -2088,6 +2221,12 @@
2088
  );
2089
 
2090
  $store_option = true;
 
 
 
 
 
 
2091
  }
2092
 
2093
  if ( empty( $id_slug_type_path_map[ $module_id ]['path'] ) ||
@@ -2250,6 +2389,10 @@
2250
 
2251
  if ( ! isset( $caller_map[ $caller_file_hash ] ) ) {
2252
  foreach ( $all_plugins_paths as $plugin_path ) {
 
 
 
 
2253
  if ( false !== strpos( $caller_file_path, fs_normalize_path( dirname( $plugin_path ) . '/' ) ) ) {
2254
  $caller_map[ $caller_file_hash ] = fs_normalize_path( $plugin_path );
2255
  break;
@@ -2928,7 +3071,7 @@
2928
  * @return bool
2929
  */
2930
  function is_activation_page() {
2931
- if ( $this->_menu->is_main_settings_page() ) {
2932
  return true;
2933
  }
2934
 
@@ -4157,7 +4300,7 @@
4157
  )
4158
  ),
4159
  sprintf(
4160
- '<a href="%s" target="_blank"><b>%s</b></a> - %s',
4161
  sprintf( 'https://wordpress.org/plugins/%s/download/', $this->_slug ),
4162
  $install_previous_title,
4163
  $install_previous_desc
@@ -4264,7 +4407,7 @@
4264
  )
4265
  ),
4266
  sprintf(
4267
- '<a href="%s" target="_blank"><b>%s</b></a> - %s',
4268
  sprintf( 'https://wordpress.org/plugins/%s/download/', $this->_slug ),
4269
  $install_previous_title,
4270
  $install_previous_desc
@@ -4630,22 +4773,7 @@
4630
 
4631
  $this->parse_settings( $plugin_info );
4632
 
4633
- if ( is_admin() && $this->is_theme() && $this->is_premium() && ! $this->has_active_valid_license() ) {
4634
- $this->add_ajax_action(
4635
- 'delete_theme_update_data',
4636
- array( &$this, '_delete_theme_update_data_action' )
4637
- );
4638
- }
4639
-
4640
- if ( ! self::is_ajax() ) {
4641
- if ( ! $this->is_addon() || $this->is_only_premium() ) {
4642
- add_action(
4643
- ( $this->_is_network_active && fs_is_network_admin() ? 'network_' : '' ) . 'admin_menu',
4644
- array( &$this, '_prepare_admin_menu' ),
4645
- WP_FS__LOWEST_PRIORITY
4646
- );
4647
- }
4648
- }
4649
 
4650
  if ( $this->should_stop_execution() ) {
4651
  return;
@@ -4800,7 +4928,10 @@
4800
  } else {
4801
  $is_network_admin = fs_is_network_admin();
4802
 
4803
- if (
 
 
 
4804
  $this->_parent->is_registered() &&
4805
  ! $this->is_registered() &&
4806
  /**
@@ -4816,16 +4947,40 @@
4816
  */
4817
  ( $this->is_network_active() || ! $is_network_admin )
4818
  ) {
4819
- // If parent plugin activated, automatically install add-on for the user.
4820
- $this->_activate_addon_account(
4821
- $this->_parent,
4822
- ( $this->is_network_active() && $is_network_admin ) ?
4823
- true :
4824
- get_current_blog_id()
4825
- );
4826
- } else if ( ! $this->_parent->is_registered() && $this->is_registered() ) {
4827
- // If add-on activated and parent not, automatically install parent for the user.
4828
- $this->activate_parent_account( $this->_parent );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4829
  }
4830
 
4831
  // @todo This should be only executed on activation. It should be migrated to register_activation_hook() together with other activation related logic.
@@ -5320,6 +5475,65 @@
5320
  }
5321
  }
5322
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5323
  /**
5324
  * Parse plugin's settings (as defined by the plugin dev).
5325
  *
@@ -5396,6 +5610,7 @@
5396
  'is_live' => $this->get_bool_option( $plugin_info, 'is_live', true ),
5397
  'affiliate_moderation' => $this->get_option( $plugin_info, 'has_affiliation' ),
5398
  'bundle_id' => $this->get_option( $plugin_info, 'bundle_id', null ),
 
5399
  ) );
5400
 
5401
  if ( $plugin->is_updated() ) {
@@ -5456,6 +5671,7 @@
5456
  $this->_anonymous_mode = $this->get_bool_option( $plugin_info, 'anonymous_mode', false );
5457
  }
5458
  $this->_permissions = $this->get_option( $plugin_info, 'permissions', array() );
 
5459
 
5460
  if ( ! empty( $plugin_info['trial'] ) ) {
5461
  $this->_trial_days = $this->get_numeric_option(
@@ -5467,6 +5683,14 @@
5467
 
5468
  $this->_is_trial_require_payment = $this->get_bool_option( $plugin_info['trial'], 'is_require_payment', false );
5469
  }
 
 
 
 
 
 
 
 
5470
  }
5471
 
5472
  /**
@@ -5819,12 +6043,16 @@
5819
  * @return Freemius[]
5820
  */
5821
  function get_installed_addons() {
 
 
 
 
 
5822
  $installed_addons = array();
 
5823
  foreach ( self::$_instances as $instance ) {
5824
- if ( $instance->is_addon() && is_object( $instance->_parent_plugin ) ) {
5825
- if ( $this->_plugin->id == $instance->_parent_plugin->id ) {
5826
- $installed_addons[] = $instance;
5827
- }
5828
  }
5829
  }
5830
 
@@ -5874,7 +6102,25 @@
5874
  * @return bool
5875
  */
5876
  function is_addon() {
5877
- return isset( $this->_plugin->parent_plugin_id ) && is_numeric( $this->_plugin->parent_plugin_id );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5878
  }
5879
 
5880
  /**
@@ -6631,6 +6877,8 @@
6631
  } else {
6632
  $this->sync_install();
6633
  }
 
 
6634
  }
6635
  }
6636
  }
@@ -6843,6 +7091,8 @@
6843
  } else {
6844
  $this->sync_install( array(), true );
6845
  }
 
 
6846
  }
6847
  }
6848
 
@@ -6899,6 +7149,8 @@
6899
  * @since 1.0.7
6900
  */
6901
  function _admin_init_action() {
 
 
6902
  /**
6903
  * Automatically redirect to connect/activation page after plugin activation.
6904
  *
@@ -6911,12 +7163,16 @@
6911
  /**
6912
  * Don't redirect if activating multiple plugins at once (bulk activation).
6913
  */
6914
- } else {
6915
  $this->_redirect_on_activation_hook();
6916
  return;
6917
  }
6918
  }
6919
 
 
 
 
 
6920
  if ( fs_request_is_action( $this->get_unique_affix() . '_skip_activation' ) ) {
6921
  check_admin_referer( $this->get_unique_affix() . '_skip_activation' );
6922
 
@@ -6937,8 +7193,7 @@
6937
 
6938
  $this->_add_upgrade_action_link();
6939
 
6940
- if ( ! $this->is_addon() &&
6941
- ! ( ! $this->_is_network_active && fs_is_network_admin() ) &&
6942
  (
6943
  ( true === $this->_storage->require_license_activation ) ||
6944
  // Not registered nor anonymous.
@@ -6948,7 +7203,7 @@
6948
  )
6949
  ) {
6950
  if ( ! $this->is_pending_activation() ) {
6951
- if ( ! $this->_menu->is_main_settings_page() ) {
6952
  /**
6953
  * If a user visits any other admin page before activating the premium-only theme with a valid
6954
  * license, reactivate the previous theme.
@@ -7015,8 +7270,8 @@
7015
  }
7016
  }
7017
 
7018
- if ( $this->is_theme() &&
7019
- $this->_menu->is_main_settings_page()
7020
  ) {
7021
  $this->_show_theme_activation_optin_dialog();
7022
  }
@@ -7482,7 +7737,10 @@
7482
  * @author Leo Fajardo (@leorw)
7483
  * @since 1.2.2
7484
  */
7485
- if ( is_plugin_active( $other_version_basename ) ) {
 
 
 
7486
  deactivate_plugins( $other_version_basename );
7487
  }
7488
  }
@@ -7591,8 +7849,17 @@
7591
  $this->_storage->is_plugin_new_install = empty( $this->_storage->plugin_last_version );
7592
  }
7593
 
 
 
 
 
 
 
 
 
 
7594
  if ( ! $this->_anonymous_mode &&
7595
- $this->has_api_connectivity( WP_FS__DEV_MODE ) &&
7596
  ! $this->_isAutoInstall
7597
  ) {
7598
  // Store hint that the plugin was just activated to enable auto-redirection to settings.
@@ -7625,11 +7892,20 @@
7625
  return;
7626
  }
7627
 
7628
- $license = $this->get_addon_active_parent_license();
7629
  if ( ! is_object( $license ) ) {
7630
  return;
7631
  }
7632
 
 
 
 
 
 
 
 
 
 
7633
  if ( ! $this->is_registered() ) {
7634
  // Opt in with a license key.
7635
  $this->opt_in(
@@ -7652,7 +7928,6 @@
7652
  }
7653
  }
7654
 
7655
-
7656
  /**
7657
  * @author Leo Fajardo (@leorw)
7658
  * @since 2.3.0
@@ -7668,12 +7943,21 @@
7668
 
7669
  $license = ( ! is_null( $license ) ) ?
7670
  $license :
7671
- $this->get_addon_active_parent_license();
7672
 
7673
  if ( ! is_object( $license ) ) {
7674
  return;
7675
  }
7676
 
 
 
 
 
 
 
 
 
 
7677
  if ( ! $this->is_network_registered() ) {
7678
  $sites = $this->get_sites_for_network_level_optin();
7679
 
@@ -7737,17 +8021,218 @@
7737
  }
7738
 
7739
  /**
 
 
7740
  * @author Leo Fajardo (@leorw)
7741
- * @since 2.3.0
7742
  *
7743
- * @return FS_Plugin_License
 
 
7744
  */
7745
- private function get_addon_active_parent_license() {
7746
- $parent_licenses_endpoint = "/plugins/{$this->get_id()}/parent_licenses.json?filter=activatable";
7747
- $parent_instance = $this->get_parent_instance();
 
7748
 
7749
- $foreign_licenses = $parent_instance->get_foreign_licenses_info(
7750
- self::get_all_licenses( $this->get_parent_id() )
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7751
  );
7752
 
7753
  if ( ! empty ( $foreign_licenses ) ) {
@@ -7760,7 +8245,7 @@
7760
  $parent_licenses_endpoint = add_query_arg( $foreign_licenses, $parent_licenses_endpoint );
7761
  }
7762
 
7763
- $result = $parent_instance->get_current_or_network_user_api_scope()->get( $parent_licenses_endpoint, true );
7764
 
7765
  if (
7766
  ! $this->is_api_result_object( $result, 'licenses' ) ||
@@ -7770,9 +8255,24 @@
7770
  return null;
7771
  }
7772
 
7773
- $license = new FS_Plugin_License( $result->licenses[ 0 ] );
7774
 
7775
- return $license;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7776
  }
7777
 
7778
  /**
@@ -7781,7 +8281,7 @@
7781
  *
7782
  * @return array
7783
  */
7784
- private function get_sites_for_network_level_optin() {
7785
  $sites = array();
7786
  $all_sites = self::get_sites();
7787
 
@@ -7911,6 +8411,10 @@
7911
  foreach ( $sites as $site ) {
7912
  $blog_id = self::get_site_blog_id( $site );
7913
 
 
 
 
 
7914
  $install_id = $this->_delete_site( true, $blog_id );
7915
 
7916
  // Clear all storage data.
@@ -8521,12 +9025,25 @@
8521
  'is_uninstalled' => false,
8522
  );
8523
 
8524
- $plugins_update_data[] = $new_plugin;
8525
  $network_plugins_cache->plugins[ $basename ] = $new_plugin;
8526
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8527
  if ( isset( $site_active_plugins[ $basename ] ) ) {
8528
  $site_active_plugins_cache->plugins[ $basename ] = $new_plugin;
8529
- $site_active_plugins_cache->plugins[ $basename ]['is_active'] = true;
8530
  }
8531
  }
8532
  }
@@ -8688,26 +9205,28 @@
8688
  $include_themes = true,
8689
  $include_blog_data = true
8690
  ) {
8691
- if ( ! defined( 'WP_FS__TRACK_PLUGINS' ) || false !== WP_FS__TRACK_PLUGINS ) {
8692
- /**
8693
- * @since 1.1.8 Also send plugin updates.
8694
- */
8695
- if ( $include_plugins && ! isset( $override['plugins'] ) ) {
8696
- $plugins = $this->get_plugins_data_for_api();
8697
- if ( ! empty( $plugins ) ) {
8698
- $override['plugins'] = $plugins;
 
 
8699
  }
8700
  }
8701
- }
8702
 
8703
- if ( ! defined( 'WP_FS__TRACK_THEMES' ) || false !== WP_FS__TRACK_THEMES ) {
8704
- /**
8705
- * @since 1.1.8 Also send themes updates.
8706
- */
8707
- if ( $include_themes && ! isset( $override['themes'] ) ) {
8708
- $themes = $this->get_themes_data_for_api();
8709
- if ( ! empty( $themes ) ) {
8710
- $override['themes'] = $themes;
 
8711
  }
8712
  }
8713
  }
@@ -9063,6 +9582,21 @@
9063
  }
9064
  }
9065
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9066
  /**
9067
  * Update install only if changed.
9068
  *
@@ -9346,6 +9880,8 @@
9346
  $fs = self::get_instance_by_file( $plugin_file );
9347
 
9348
  if ( is_object( $fs ) ) {
 
 
9349
  self::require_plugin_essentials();
9350
 
9351
  if ( is_plugin_active( $fs->_free_plugin_basename ) ||
@@ -9397,10 +9933,12 @@
9397
  * @author Vova Feldman (@svovaf)
9398
  * @since 1.0.1
9399
  *
 
 
9400
  * @return array
9401
  */
9402
- function get_plugin_data() {
9403
- if ( ! isset( $this->_plugin_data ) ) {
9404
  self::require_plugin_essentials();
9405
 
9406
  if ( $this->is_plugin() ) {
@@ -9505,6 +10043,18 @@
9505
  null;
9506
  }
9507
 
 
 
 
 
 
 
 
 
 
 
 
 
9508
  /**
9509
  * @author Vova Feldman (@svovaf)
9510
  * @since 1.2.1.5
@@ -9527,6 +10077,32 @@
9527
  $this->_plugin->id;
9528
  }
9529
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9530
  /**
9531
  * @author Vova Feldman (@svovaf)
9532
  * @since 1.0.1
@@ -9626,12 +10202,14 @@
9626
  * @author Vova Feldman (@svovaf)
9627
  * @since 1.0.0
9628
  *
 
 
9629
  * @return string
9630
  */
9631
- function get_plugin_version() {
9632
  $this->_logger->entrance();
9633
 
9634
- $plugin_data = $this->get_plugin_data();
9635
 
9636
  $this->_logger->departure( 'Version = ' . $plugin_data['Version'] );
9637
 
@@ -9756,7 +10334,7 @@
9756
  * @return array[number]FS_User
9757
  */
9758
  static function get_all_users() {
9759
- $users = self::$_accounts->get_option( 'users', array() );
9760
 
9761
  if ( ! is_array( $users ) ) {
9762
  $users = array();
@@ -9800,7 +10378,7 @@
9800
  $option_name = $module_type . '_' . $option_name;
9801
  }
9802
 
9803
- return self::$_accounts->get_option( $option_name, array(), $network_level_or_blog_id );
9804
  }
9805
 
9806
  /**
@@ -9848,6 +10426,58 @@
9848
  self::$_accounts->set_option( $option_name, $option_value, $store, $network_level_or_blog_id );
9849
  }
9850
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9851
  /**
9852
  * @author Vova Feldman (@svovaf)
9853
  * @since 1.0.6
@@ -10031,7 +10661,7 @@
10031
  * @return FS_Plugin_Tag[]
10032
  */
10033
  private static function get_all_updates() {
10034
- $updates = self::$_accounts->get_option( 'updates', array() );
10035
 
10036
  if ( ! is_array( $updates ) ) {
10037
  $updates = array();
@@ -10047,7 +10677,7 @@
10047
  * @return array<number,FS_Plugin[]>|false
10048
  */
10049
  private static function get_all_addons() {
10050
- $addons = self::$_accounts->get_option( 'addons', array() );
10051
 
10052
  if ( ! is_array( $addons ) ) {
10053
  $addons = array();
@@ -10060,7 +10690,7 @@
10060
  * @author Vova Feldman (@svovaf)
10061
  * @since 1.0.6
10062
  *
10063
- * @return FS_Plugin[]|false
10064
  */
10065
  private static function get_all_account_addons() {
10066
  $addons = self::$_accounts->get_option( 'account_addons', array() );
@@ -10101,6 +10731,18 @@
10101
  return ( is_object( $this->_site ) && $this->_site->is_tracking_allowed() );
10102
  }
10103
 
 
 
 
 
 
 
 
 
 
 
 
 
10104
  /**
10105
  * @author Vova Feldman (@svovaf)
10106
  * @since 1.0.4
@@ -10161,7 +10803,7 @@
10161
  * @author Vova Feldman (@svovaf)
10162
  * @since 1.0.6
10163
  *
10164
- * @return FS_Plugin[]|false
10165
  */
10166
  function get_account_addons() {
10167
  $this->_logger->entrance();
@@ -10305,7 +10947,7 @@
10305
 
10306
  if ( ! fs_is_network_admin() ) {
10307
  // Get blog-level activated installations.
10308
- $sites = self::$_accounts->get_option( 'sites', array() );
10309
  } else {
10310
  $sites = null;
10311
 
@@ -10314,7 +10956,7 @@
10314
  ) {
10315
  if ( FS_Site::is_valid_id( $addon_storage->network_install_blog_id ) ) {
10316
  // Get network-level activated installations.
10317
- $sites = self::$_accounts->get_option(
10318
  'sites',
10319
  array(),
10320
  $addon_storage->network_install_blog_id
@@ -10324,9 +10966,10 @@
10324
  }
10325
 
10326
  $addon_info = array(
10327
- 'is_connected' => false,
10328
- 'slug' => $slug,
10329
- 'title' => $addon->title
 
10330
  );
10331
 
10332
  if ( ! $is_installed ) {
@@ -10372,14 +11015,14 @@
10372
 
10373
  $addon_info['site'] = $site;
10374
 
10375
- $plugins_data = self::$_accounts->get_option( WP_FS__MODULE_TYPE_PLUGIN . 's', array() );
10376
  if ( isset( $plugins_data[ $slug ] ) ) {
10377
  $plugin_data = $plugins_data[ $slug ];
10378
 
10379
  $addon_info['version'] = $plugin_data->version;
10380
  }
10381
 
10382
- $all_plans = self::$_accounts->get_option( 'plans', array() );
10383
  if ( isset( $all_plans[ $slug ] ) ) {
10384
  $plans = $all_plans[ $slug ];
10385
 
@@ -10392,7 +11035,7 @@
10392
  }
10393
  }
10394
 
10395
- $licenses = self::$_accounts->get_option( 'all_licenses', array() );
10396
  if ( is_array( $licenses ) && isset( $licenses[ $addon_id ] ) ) {
10397
  foreach ( $licenses[ $addon_id ] as $license ) {
10398
  if ( $license->id == $site->license_id ) {
@@ -10406,7 +11049,9 @@
10406
  if ( isset( $addon_storage->subscriptions ) &&
10407
  ! empty( $addon_storage->subscriptions )
10408
  ) {
10409
- foreach ( $addon_storage->subscriptions as $subscription ) {
 
 
10410
  if ( $subscription->license_id == $site->license_id ) {
10411
  $addon_info['subscription'] = $subscription;
10412
  break;
@@ -10497,7 +11142,7 @@
10497
  function is_premium() {
10498
  /**
10499
  * `$this->_plugin` will be `false` when `is_activation_mode` calls this method directly from the
10500
- * `_register_hooks` method.
10501
  *
10502
  * @author Leo Fajardo (@leorw)
10503
  * @since 2.2.3
@@ -10594,7 +11239,20 @@
10594
  return false;
10595
  }
10596
 
10597
- return $this->has_active_valid_license() && ( $this->_site->trial_plan_id == $this->_license->plan_id );
 
 
 
 
 
 
 
 
 
 
 
 
 
10598
  }
10599
 
10600
  /**
@@ -10729,10 +11387,26 @@
10729
  * @author Vova Feldman (@svovaf)
10730
  * @since 1.1.7.3
10731
  *
 
 
10732
  * @return bool
10733
  */
10734
- function has_any_license() {
10735
- return is_array( $this->_licenses ) && ( 0 < count( $this->_licenses ) );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
10736
  }
10737
 
10738
  /**
@@ -10878,7 +11552,9 @@
10878
 
10879
  if ( $license instanceof FS_Plugin_License ) {
10880
  $this->_licenses[] = $license;
10881
- $this->_license = $license;
 
 
10882
  $this->_store_licenses();
10883
 
10884
  return $license;
@@ -11103,7 +11779,22 @@
11103
 
11104
  // Update current license.
11105
  if ( is_object( $this->_license ) ) {
11106
- $this->_license = $this->_get_license_by_id( $this->_license->id );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
11107
  }
11108
 
11109
  return $this->_licenses;
@@ -11447,18 +12138,33 @@
11447
  * Activate a given license on a collection of blogs/sites that are not yet opted-in.
11448
  *
11449
  * @author Vova Feldman (@svovaf)
11450
- * @since 2.0.0
11451
  *
11452
  * @param \FS_User $user
11453
  * @param string $license_key
11454
- * @param int[] $site_ids
11455
  *
11456
  * @return true|mixed True if successful, otherwise, the API result.
11457
  */
11458
- private function activate_license_on_many_sites(
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
11459
  FS_User $user,
11460
  $license_key,
11461
- array $site_ids
11462
  ) {
11463
  $sites = array();
11464
  foreach ( $site_ids as $site_id ) {
@@ -11482,30 +12188,43 @@
11482
  }
11483
 
11484
  $installs = array();
11485
- foreach ( $result->installs as $install ) {
11486
- $installs[] = new FS_Site( $install );
11487
- }
11488
 
11489
- // Map site addresses to their blog IDs.
11490
- $address_to_blog_map = $this->get_address_to_blog_map();
11491
 
11492
- $first_blog_id = null;
11493
 
11494
- foreach ( $installs as $install ) {
11495
- $address = trailingslashit( fs_strip_url_protocol( $install->url ) );
11496
- $blog_id = $address_to_blog_map[ $address ];
11497
 
11498
- $this->_store_site( true, $blog_id, $install );
11499
 
11500
- $this->reset_anonymous_mode( $blog_id );
 
 
 
 
 
 
 
11501
 
11502
- if ( is_null( $first_blog_id ) ) {
11503
- $first_blog_id = $blog_id;
 
 
 
 
 
 
 
 
 
 
 
11504
  }
11505
- }
11506
 
11507
- if ( ! FS_Site::is_valid_id( $this->_storage->network_install_blog_id ) ) {
11508
- $this->_storage->network_install_blog_id = $first_blog_id;
 
11509
  }
11510
 
11511
  return true;
@@ -11524,7 +12243,15 @@
11524
  function _update_site_license( $new_license ) {
11525
  $this->_logger->entrance();
11526
 
11527
- $this->_license = $new_license;
 
 
 
 
 
 
 
 
11528
 
11529
  if ( ! is_object( $new_license ) ) {
11530
  $this->_site->license_id = null;
@@ -11559,6 +12286,241 @@
11559
  return $this->_license;
11560
  }
11561
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
11562
  /**
11563
  * Sync site's subscription.
11564
  *
@@ -11616,7 +12578,7 @@
11616
  return null;
11617
  }
11618
 
11619
- foreach ( $this->_storage->subscriptions as $subscription ) {
11620
  if ( $subscription->license_id == $license_id ) {
11621
  return $subscription;
11622
  }
@@ -11642,7 +12604,7 @@
11642
  return;
11643
  }
11644
 
11645
- $subscriptions = $this->_storage->subscriptions;
11646
 
11647
  $updated_subscription = false;
11648
  foreach ( $subscriptions as $key => $existing_subscription ) {
@@ -11737,7 +12699,7 @@
11737
  }
11738
 
11739
  $current_plan_order = - 1;
11740
- $required_plan_order = - 1;
11741
  for ( $i = 0, $len = count( $this->_plans ); $i < $len; $i ++ ) {
11742
  if ( $plan === $this->_plans[ $i ]->name ) {
11743
  $required_plan_order = $i;
@@ -11755,9 +12717,11 @@
11755
  * @author Vova Feldman (@svovaf)
11756
  * @since 1.2.1.7
11757
  *
 
 
11758
  * @return bool
11759
  */
11760
- function is_single_plan() {
11761
  $this->_logger->entrance();
11762
 
11763
  if ( ! $this->is_registered() ||
@@ -11767,7 +12731,18 @@
11767
  return true;
11768
  }
11769
 
11770
- return ( 1 === ( count( $this->_plans ) - ( $this->has_free_plan() ? 1 : 0 ) ) );
 
 
 
 
 
 
 
 
 
 
 
11771
  }
11772
 
11773
  /**
@@ -11881,6 +12856,77 @@
11881
  fs_require_template( 'forms/resend-key.php', $vars );
11882
  }
11883
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
11884
  /**
11885
  * Displays a subscription cancellation dialog box when the user clicks on the "Deactivate License"
11886
  * link on the "Account" page or deactivates a plugin and there's an active subscription that is
@@ -11899,6 +12945,10 @@
11899
  // Subscription cancellation dialog box is currently not supported for multisite networks.
11900
  return array();
11901
  }
 
 
 
 
11902
 
11903
  $license = $this->_get_license();
11904
 
@@ -11976,6 +13026,10 @@
11976
  * @since 1.2.0
11977
  */
11978
  function _add_license_activation() {
 
 
 
 
11979
  if ( ! $this->is_user_admin() ) {
11980
  // Only admins can activate a license.
11981
  return;
@@ -11986,8 +13040,18 @@
11986
  return;
11987
  }
11988
 
11989
- if ( ! $this->is_premium() ) {
11990
- // Only add license activation logic to the premium version.
 
 
 
 
 
 
 
 
 
 
11991
  return;
11992
  }
11993
 
@@ -12013,6 +13077,57 @@
12013
  $this->add_ajax_action( 'resend_license_key', array( &$this, '_resend_license_key_ajax_action' ) );
12014
  }
12015
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
12016
  /**
12017
  * @author Leo Fajardo (@leorw)
12018
  * @since 2.0.2
@@ -12032,6 +13147,61 @@
12032
  }
12033
  }
12034
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
12035
  /**
12036
  * @author Leo Fajardo (@leorw)
12037
  * @since 2.3.0
@@ -12111,22 +13281,156 @@
12111
  exit;
12112
  }
12113
 
12114
- $result = $this->activate_license(
12115
- $license_key,
12116
- fs_is_network_admin() ?
12117
- fs_request_get( 'sites', array(), 'post' ) :
12118
- array(),
12119
- fs_request_get_bool( 'is_marketing_allowed', null ),
12120
- fs_request_get( 'blog_id', null ),
12121
- fs_request_get( 'module_id', null, 'post' )
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
12122
  );
12123
-
12124
- echo json_encode( $result );
12125
-
12126
- exit;
12127
  }
12128
 
12129
  /**
 
12130
  * A helper method to activate migrated licenses. If the product is network activated and integrated, the method will network activate the license.
12131
  *
12132
  * @author Vova Feldman (@svovaf)
@@ -12135,6 +13439,8 @@
12135
  * @param string $license_key
12136
  * @param null|bool $is_marketing_allowed
12137
  * @param null|number $plugin_id
 
 
12138
  *
12139
  * @return array {
12140
  * @var bool $success
@@ -12147,17 +13453,52 @@
12147
  function activate_migrated_license(
12148
  $license_key,
12149
  $is_marketing_allowed = null,
12150
- $plugin_id = null
 
 
12151
  ) {
12152
- return $this->activate_license(
 
 
12153
  $license_key,
12154
- $this->is_network_active() ?
12155
  $this->get_sites_for_network_level_optin() :
12156
- array(),
12157
  $is_marketing_allowed,
12158
- null,
12159
  $plugin_id
12160
  );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
12161
  }
12162
 
12163
  /**
@@ -12171,6 +13512,7 @@
12171
  * @param null|bool $is_marketing_allowed
12172
  * @param null|int $blog_id
12173
  * @param null|number $plugin_id
 
12174
  *
12175
  * @return array {
12176
  * @var bool $success
@@ -12183,13 +13525,20 @@
12183
  $sites = array(),
12184
  $is_marketing_allowed = null,
12185
  $blog_id = null,
12186
- $plugin_id = null
 
 
12187
  ) {
12188
  $this->_logger->entrance();
12189
 
12190
  $license_key = trim( $license_key );
12191
 
12192
- if ( ! fs_is_network_admin() ) {
 
 
 
 
 
12193
  // If the license activation is executed outside the context of a network admin, ignore the sites collection.
12194
  $sites = array();
12195
  }
@@ -12198,13 +13547,37 @@
12198
  $this :
12199
  $this->get_addon_instance( $plugin_id );
12200
 
 
 
12201
  $error = false;
12202
  $next_page = false;
12203
 
12204
  $has_valid_blog_id = is_numeric( $blog_id );
12205
 
12206
- if ( $fs->is_registered() ) {
12207
- if ( fs_is_network_admin() && ! $has_valid_blog_id ) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
12208
  // If no specific blog ID was provided, activate the license for all sites in the network.
12209
  $blog_2_install_map = array();
12210
  $site_ids = array();
@@ -12214,7 +13587,7 @@
12214
  continue;
12215
  }
12216
 
12217
- $install = $this->get_install_by_blog_id( $site['blog_id'] );
12218
 
12219
  if ( is_object( $install ) ) {
12220
  $blog_2_install_map[ $site['blog_id'] ] = $install;
@@ -12223,10 +13596,8 @@
12223
  }
12224
  }
12225
 
12226
- $user = $this->get_current_or_network_user();
12227
-
12228
  if ( ! empty( $blog_2_install_map ) ) {
12229
- $result = $this->activate_license_on_many_installs( $user, $license_key, $blog_2_install_map );
12230
 
12231
  if ( true !== $result ) {
12232
  $error = FS_Api::is_api_error_object( $result ) ?
@@ -12236,7 +13607,7 @@
12236
  }
12237
 
12238
  if ( empty( $error ) && ! empty( $site_ids ) ) {
12239
- $result = $this->activate_license_on_many_sites( $user, $license_key, $site_ids );
12240
 
12241
  if ( true !== $result ) {
12242
  $error = FS_Api::is_api_error_object( $result ) ?
@@ -12245,41 +13616,73 @@
12245
  }
12246
  }
12247
  } else {
12248
- if ( $has_valid_blog_id ) {
12249
- /**
12250
- * If a specific blog ID was provided, activate the license only for the install that is
12251
- * associated with the given blog ID.
12252
- *
12253
- * @author Leo Fajardo (@leorw)
12254
- */
12255
- $this->switch_to_blog( $blog_id );
12256
- }
12257
 
12258
- $api = $fs->get_api_site_scope();
12259
 
12260
- $params = array(
12261
- 'license_key' => $fs->apply_filters( 'license_key', $license_key )
12262
- );
12263
 
12264
- $install = $api->call( $fs->add_show_pending( '/' ), 'put', $params );
 
12265
 
12266
- if ( FS_Api::is_api_error( $install ) ) {
12267
- $error = FS_Api::is_api_error_object( $install ) ?
12268
- $install->error->message :
12269
- var_export( $install->error, true );
12270
- } else {
12271
- $fs->reconnect_locally( $has_valid_blog_id );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
12272
  }
12273
  }
12274
 
12275
  if ( empty( $error ) ) {
12276
- $this->network_upgrade_mode_completed();
 
 
 
 
 
 
12277
 
12278
  $fs->_sync_license( true, $has_valid_blog_id );
12279
 
 
 
12280
  $next_page = $fs->is_addon() ?
12281
  $fs->get_parent_instance()->get_account_url() :
12282
- $fs->get_account_url();
12283
  }
12284
  } else {
12285
  $next_page = $fs->opt_in(
@@ -12297,7 +13700,7 @@
12297
  if ( isset( $next_page->error ) ) {
12298
  $error = $next_page->error;
12299
  } else {
12300
- if ( fs_is_network_admin() ) {
12301
  /**
12302
  * Get the list of sites that were just opted-in (and license activated).
12303
  * This is an optimization for the next part below saving some DB queries.
@@ -12325,17 +13728,17 @@
12325
  continue;
12326
  }
12327
 
12328
- if ( $this->is_installed_on_site( $blog_id ) ) {
12329
  // Site was already connected before.
12330
  continue;
12331
  }
12332
 
12333
- if ( $this->is_site_delegated_connection( $blog_id ) ) {
12334
  // Site's connection was delegated.
12335
  continue;
12336
  }
12337
 
12338
- if ( $this->is_anonymous_site( $blog_id ) ) {
12339
  // Site connection was already skipped.
12340
  continue;
12341
  }
@@ -12344,18 +13747,18 @@
12344
  }
12345
 
12346
  if ( ! empty( $pending_sites ) ) {
12347
- if ( $this->is_freemium() && $this->is_enable_anonymous() ) {
12348
- $this->skip_connection( $pending_sites );
12349
  } else {
12350
- $this->delegate_connection( $pending_sites );
12351
  }
12352
  }
12353
  }
12354
  }
12355
  }
12356
 
12357
- if ( false === $error && true === $this->_storage->require_license_activation ) {
12358
- $this->_storage->require_license_activation = false;
12359
  }
12360
 
12361
  $result = array(
@@ -12363,9 +13766,9 @@
12363
  );
12364
 
12365
  if ( false !== $error ) {
12366
- $result['error'] = $this->apply_filters( 'opt_in_error_message', $error );
12367
  } else {
12368
- if ( $this->is_addon() || $this->has_addons() ) {
12369
  /**
12370
  * Purge the valid user licenses cache so that when the "Account" or the "Add-Ons" page is loaded,
12371
  * an updated valid user licenses collection will be fetched from the server which is used to also
@@ -12374,7 +13777,7 @@
12374
  * @author Leo Fajardo (@leorw)
12375
  * @since 2.2.4
12376
  */
12377
- $this->purge_valid_user_licenses_cache();
12378
  }
12379
 
12380
  $result['next_page'] = $next_page;
@@ -12383,6 +13786,64 @@
12383
  return $result;
12384
  }
12385
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
12386
  /**
12387
  * @author Leo Fajardo (@leorw)
12388
  * @since 1.2.3.1
@@ -13353,7 +14814,12 @@
13353
  * @return bool
13354
  */
13355
  function is_user_in_admin() {
13356
- return is_admin() && ! self::is_ajax() && ! self::is_cron();
 
 
 
 
 
13357
  }
13358
 
13359
  /**
@@ -13409,9 +14875,8 @@
13409
  $page_param = $this->_menu->get_slug( $page );
13410
 
13411
  if ( empty( $page ) &&
13412
- $this->is_theme() &&
13413
  // Show the opt-in as an overlay for free wp.org themes or themes without any settings page.
13414
- ( $this->is_free_wp_org_theme() || ! $this->has_settings_menu() )
13415
  ) {
13416
  $params[ $this->get_unique_affix() . '_show_optin' ] = 'true';
13417
 
@@ -13666,9 +15131,18 @@
13666
  if ( function_exists( 'get_sites' ) ) {
13667
  // For WP 4.6 and above.
13668
  return get_sites( $args );
13669
- } else if ( function_exists( 'wp_get_sites' ) ) {
13670
  // For WP 3.7 to WP 4.5.
13671
- return wp_get_sites( $args );
 
 
 
 
 
 
 
 
 
13672
  } else {
13673
  // For WP 3.6 and below.
13674
  return get_blog_list( 0, 'all' );
@@ -13841,10 +15315,12 @@
13841
  *
13842
  * @param int $blog_id
13843
  * @param FS_Site $install
 
 
13844
  */
13845
  function switch_to_blog( $blog_id, FS_Site $install = null ) {
13846
- if ( $blog_id == $this->_context_is_network_or_blog_id ) {
13847
- return;
13848
  }
13849
 
13850
  switch_to_blog( $blog_id );
@@ -13858,9 +15334,10 @@
13858
  $install :
13859
  $this->get_install_by_blog_id( $blog_id );
13860
 
13861
- $this->_user = false;
13862
- $this->_licenses = false;
13863
- $this->_license = null;
 
13864
 
13865
  if ( is_object( $this->_site ) ) {
13866
  // Try to fetch user from install.
@@ -13905,6 +15382,8 @@
13905
 
13906
  unset( $this->_site_api );
13907
  unset( $this->_user_api );
 
 
13908
  }
13909
 
13910
  /**
@@ -14350,6 +15829,18 @@
14350
  return ( $this->_menu->get_slug( $page ) === fs_request_get( 'page', '', 'get' ) );
14351
  }
14352
 
 
 
 
 
 
 
 
 
 
 
 
 
14353
  /**
14354
  * Get module's main admin setting page URL.
14355
  *
@@ -14370,8 +15861,22 @@
14370
  * @since 1.2.2.7
14371
  *
14372
  * @return bool
 
 
14373
  */
14374
  function is_theme_settings_page() {
 
 
 
 
 
 
 
 
 
 
 
 
14375
  return fs_starts_with(
14376
  fs_request_get( 'page', '', 'get' ),
14377
  $this->_menu->get_slug()
@@ -14791,7 +16296,7 @@
14791
  /**
14792
  * This is a special fault tolerance mechanism to handle a scenario that the user data is missing.
14793
  */
14794
- $user = $this->fetch_user_by_install();
14795
  }
14796
 
14797
  $this->_user = ( $user instanceof FS_User ) ?
@@ -14831,13 +16336,19 @@
14831
  * @author Vova Feldman (@svovaf)
14832
  * @since 2.0.0
14833
  *
 
 
14834
  * @return \FS_User|mixed
14835
  */
14836
- private function fetch_user_by_install() {
 
 
 
 
14837
  $api = $this->get_api_site_scope();
14838
 
14839
  $uid = $this->get_anonymous_id();
14840
- $request_path = "/users/{$this->_site->user_id}.json?uid={$uid}";
14841
 
14842
  $result = $api->get( $request_path, false, WP_FS__TIME_10_MIN_IN_SEC );
14843
 
@@ -14993,6 +16504,13 @@
14993
  'is_uninstalled' => false,
14994
  ) );
14995
 
 
 
 
 
 
 
 
14996
  if ( true === $network_level_or_blog_id ) {
14997
  if ( ! isset( $override_with['sites'] ) ) {
14998
  $params['sites'] = $this->get_sites_for_network_level_optin();
@@ -15088,9 +16606,12 @@
15088
  if ( ! $is_uninstall ) {
15089
  $fs_user = Freemius::_get_user_by_email( $email );
15090
  if ( is_object( $fs_user ) && ! $this->is_pending_activation() ) {
15091
- return $this->install_with_current_user(
 
15092
  false,
15093
  $trial_plan_id,
 
 
15094
  $sites
15095
  );
15096
  }
@@ -15185,6 +16706,8 @@
15185
  'http' => 402
15186
  );
15187
 
 
 
15188
  return $result;
15189
  }
15190
 
@@ -15257,6 +16780,9 @@
15257
  ( isset( $decoded->is_marketing_allowed ) && ! is_null( $decoded->is_marketing_allowed ) ?
15258
  $decoded->is_marketing_allowed :
15259
  null ),
 
 
 
15260
  $decoded->install_id,
15261
  $decoded->install_public_key,
15262
  $decoded->install_secret_key,
@@ -15270,6 +16796,9 @@
15270
  ( isset( $decoded->is_marketing_allowed ) && ! is_null( $decoded->is_marketing_allowed ) ?
15271
  $decoded->is_marketing_allowed :
15272
  null ),
 
 
 
15273
  $decoded->installs,
15274
  false
15275
  );
@@ -15361,7 +16890,7 @@
15361
  );
15362
 
15363
  if ( is_numeric( $first_install->license_id ) ) {
15364
- $this->_license = $this->_get_license_by_id( $first_install->license_id );
15365
  }
15366
 
15367
  $this->_admin_notices->remove_sticky( 'connect_account' );
@@ -15496,6 +17025,7 @@
15496
  fs_request_get( 'user_public_key' ),
15497
  fs_request_get( 'user_secret_key' ),
15498
  fs_request_get_bool( 'is_marketing_allowed', null ),
 
15499
  $pending_sites_info['blog_ids'],
15500
  $pending_sites_info['license_key'],
15501
  $pending_sites_info['trial_plan_id']
@@ -15506,6 +17036,7 @@
15506
  fs_request_get( 'user_public_key' ),
15507
  fs_request_get( 'user_secret_key' ),
15508
  fs_request_get_bool( 'is_marketing_allowed', null ),
 
15509
  fs_request_get( 'install_id' ),
15510
  fs_request_get( 'install_public_key' ),
15511
  fs_request_get( 'install_secret_key' ),
@@ -15561,13 +17092,12 @@
15561
  * @param string $user_public_key
15562
  * @param string $user_secret_key
15563
  * @param bool|null $is_marketing_allowed
 
15564
  * @param number $install_id
15565
  * @param string $install_public_key
15566
  * @param string $install_secret_key
15567
  * @param bool $redirect
15568
- * @param bool $auto_install Since 1.2.1.7 If `true` and setting up an account with a valid license, will
15569
- * redirect (or return a URL) to the account page with a special parameter to
15570
- * trigger the auto installation processes.
15571
  *
15572
  * @return string If redirect is `false`, returns the next page the user should be redirected to.
15573
  */
@@ -15576,6 +17106,7 @@
15576
  $user_public_key,
15577
  $user_secret_key,
15578
  $is_marketing_allowed,
 
15579
  $install_id,
15580
  $install_public_key,
15581
  $install_secret_key,
@@ -15617,6 +17148,10 @@
15617
  $this->disable_opt_in_notice_and_lock_user();
15618
  }
15619
 
 
 
 
 
15620
  return $this->setup_account(
15621
  $this->_user,
15622
  $this->_site,
@@ -15635,6 +17170,7 @@
15635
  * @param string $user_public_key
15636
  * @param string $user_secret_key
15637
  * @param bool|null $is_marketing_allowed
 
15638
  * @param array $site_ids
15639
  * @param bool $license_key
15640
  * @param bool $trial_plan_id
@@ -15647,6 +17183,7 @@
15647
  $user_public_key,
15648
  $user_secret_key,
15649
  $is_marketing_allowed,
 
15650
  $site_ids,
15651
  $license_key = false,
15652
  $trial_plan_id = false,
@@ -15658,6 +17195,10 @@
15658
  $this->disable_opt_in_notice_and_lock_user();
15659
  }
15660
 
 
 
 
 
15661
  $sites = array();
15662
  foreach ( $site_ids as $site_id ) {
15663
  $sites[] = $this->get_site_info( array( 'blog_id' => $site_id ) );
@@ -15676,11 +17217,10 @@
15676
  * @param string $user_public_key
15677
  * @param string $user_secret_key
15678
  * @param bool|null $is_marketing_allowed
 
15679
  * @param object[] $installs
15680
  * @param bool $redirect
15681
- * @param bool $auto_install Since 1.2.1.7 If `true` and setting up an account with a valid license, will
15682
- * redirect (or return a URL) to the account page with a special parameter to
15683
- * trigger the auto installation processes.
15684
  *
15685
  * @return string If redirect is `false`, returns the next page the user should be redirected to.
15686
  */
@@ -15689,6 +17229,7 @@
15689
  $user_public_key,
15690
  $user_secret_key,
15691
  $is_marketing_allowed,
 
15692
  array $installs,
15693
  $redirect = true,
15694
  $auto_install = false
@@ -15699,6 +17240,10 @@
15699
  $this->disable_opt_in_notice_and_lock_user();
15700
  }
15701
 
 
 
 
 
15702
  $install_ids = array();
15703
 
15704
  foreach ( $installs as $install ) {
@@ -15808,6 +17353,8 @@
15808
  */
15809
  $license_key = fs_request_get( 'license_secret_key' );
15810
 
 
 
15811
  $this->install_with_current_user( $license_key );
15812
  }
15813
  }
@@ -15852,7 +17399,7 @@
15852
  *
15853
  * @return \FS_Site|object|string If redirect is `false`, returns the next page the user should be redirected to, or the API error object if failed to install. If $setup_account is set to `false`, return the newly created install.
15854
  */
15855
- private function install_with_user(
15856
  FS_User $user,
15857
  $license_key = false,
15858
  $trial_plan_id = false,
@@ -15941,6 +17488,10 @@
15941
 
15942
  if ( ! empty( $license_key ) ) {
15943
  $extra_install_params['license_key'] = $this->apply_filters( 'license_key', $license_key );
 
 
 
 
15944
  } else if ( FS_Plugin_Plan::is_valid_id( $trial_plan_id ) ) {
15945
  $extra_install_params['trial_plan_id'] = $trial_plan_id;
15946
  }
@@ -15962,7 +17513,7 @@
15962
  ! $this->is_api_result_object( $result, 'installs' )
15963
  ) {
15964
  if ( ! empty( $args['license_key'] ) ) {
15965
- // Pass full the fully entered license key to the failure handler.
15966
  $args['license_key'] = $license_key;
15967
  }
15968
 
@@ -16003,10 +17554,15 @@
16003
  * @author Vova Feldman (@svovaf)
16004
  * @since 1.0.6
16005
  *
16006
- * @param Freemius $parent_fs
16007
- * @param bool|int|null $network_level_or_blog_id True for network level opt-in and integer for opt-in for specified blog in the network.
 
16008
  */
16009
- private function _activate_addon_account( Freemius $parent_fs, $network_level_or_blog_id = null ) {
 
 
 
 
16010
  if ( $this->is_registered() ) {
16011
  // Already activated.
16012
  return;
@@ -16045,6 +17601,10 @@
16045
  }
16046
  }
16047
 
 
 
 
 
16048
  // Activate add-on with parent plugin credentials.
16049
  $result = $parent_fs->get_api_site_scope()->call(
16050
  "/addons/{$this->_plugin->id}/installs.json",
@@ -16053,16 +17613,25 @@
16053
  );
16054
 
16055
  if ( ! $this->is_api_result_object( $result, 'installs' ) ) {
16056
- $error_message = FS_Api::is_api_error_object( $result ) ?
16057
- $result->error->message :
16058
- $this->get_text_inline( 'An unknown error has occurred.', 'unknown-error' );
 
 
 
 
 
 
 
 
16059
 
16060
- $this->_admin_notices->add(
16061
- sprintf( $this->get_text_inline( 'Couldn\'t activate %s.', 'could-not-activate-x' ), $this->get_plugin_name() ) . ' ' .
16062
- $this->get_text_inline( 'Please contact us with the following message:', 'contact-us-with-error-message' ) . ' ' . '<b>' . $error_message . '</b>',
16063
- $this->get_text_x_inline( 'Oops', 'exclamation', 'oops' ) . '...',
16064
- 'error'
16065
- );
 
16066
 
16067
  return;
16068
  }
@@ -16095,21 +17664,29 @@
16095
 
16096
  if ( ! fs_is_network_admin() ) {
16097
  // Try to activate premium license.
16098
- $this->_activate_license( true );
16099
- } else {
16100
- $license_id = fs_request_get( 'license_id' );
16101
 
16102
- if ( is_object( $this->_site ) &&
16103
- FS_Plugin_License::is_valid_id( $license_id ) &&
16104
- $license_id == $this->_site->license_id
16105
- ) {
16106
- // License is already activated.
16107
- return;
16108
  }
 
 
 
 
 
16109
 
16110
- $premium_license = FS_Plugin_License::is_valid_id( $license_id ) ?
16111
- $this->_get_license_by_id( $license_id ) :
16112
- $this->_get_available_premium_license();
 
 
 
 
 
 
 
 
 
16113
 
16114
  if ( is_object( $premium_license ) ) {
16115
  $this->maybe_network_activate_addon_license( $premium_license );
@@ -16339,7 +17916,7 @@
16339
  */
16340
  private function add_menu_action() {
16341
  if ( $this->is_activation_mode() ) {
16342
- if ( $this->is_plugin() || ( $this->has_settings_menu() && ! $this->is_free_wp_org_theme() ) ) {
16343
  $this->override_plugin_menu_with_activation();
16344
  } else {
16345
  /**
@@ -16361,7 +17938,7 @@
16361
  }
16362
  } else if (
16363
  fs_request_is_action( 'sync_user' ) &&
16364
- ( ! $this->has_settings_menu() || $this->is_free_wp_org_theme() )
16365
  ) {
16366
  $this->_handle_account_user_sync();
16367
  }
@@ -16609,7 +18186,7 @@
16609
  // Didn't ask to hide the pricing page.
16610
  $this->is_page_visible( 'pricing' ) &&
16611
  // Don't have a valid active license or has more than one plan.
16612
- ( ! $this->is_paying() || ! $this->is_single_plan() )
16613
  );
16614
  }
16615
 
@@ -16627,12 +18204,13 @@
16627
  return false;
16628
  }
16629
 
16630
- if ( $this->is_free_wp_org_theme() && ! fs_is_network_admin() ) {
16631
- // Also add action links or submenu items when running in a free .org theme so the tabs will be visible.
16632
- return true;
16633
- }
16634
-
16635
- if ( $is_activation_mode && ! $this->is_free_wp_org_theme() ) {
 
16636
  return false;
16637
  }
16638
 
@@ -16712,17 +18290,19 @@
16712
  }
16713
 
16714
  if ( $add_submenu_items ) {
16715
- // Add contact page.
16716
- $this->add_submenu_item(
16717
- $this->get_text_inline( 'Contact Us', 'contact-us' ),
16718
- array( &$this, '_contact_page_render' ),
16719
- $this->get_plugin_name() . ' &ndash; ' . $this->get_text_inline( 'Contact Us', 'contact-us' ),
16720
- 'manage_options',
16721
- 'contact',
16722
- 'Freemius::_clean_admin_content_section',
16723
- WP_FS__DEFAULT_PRIORITY,
16724
- $this->is_submenu_item_visible( 'contact' )
16725
- );
 
 
16726
 
16727
  if ( $this->has_addons() ) {
16728
  $this->add_submenu_item(
@@ -16741,7 +18321,7 @@
16741
  if ( $add_submenu_items ||
16742
  ( $is_activation_mode && $this->is_only_premium() && $this->is_admin_page( 'pricing' ) )
16743
  ) {
16744
- if ( ! WP_FS__DEMO_MODE ) {
16745
  $show_pricing = (
16746
  $this->is_submenu_item_visible( 'pricing' ) &&
16747
  $this->is_pricing_page_visible()
@@ -17106,6 +18686,24 @@
17106
 
17107
  #endregion ------------------------------------------------------------------
17108
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
17109
 
17110
  #--------------------------------------------------------------------------------
17111
  #region Actions / Hooks / Filters
@@ -17482,37 +19080,44 @@
17482
  private function _store_site( $store = true, $network_level_or_blog_id = null, FS_Site $site = null ) {
17483
  $this->_logger->entrance();
17484
 
17485
- if ( empty( $this->_site->id ) ) {
 
 
 
 
17486
  $this->_logger->error( "Empty install ID, can't store site." );
17487
 
17488
  return;
17489
  }
17490
 
17491
- $site_clone = is_object( $site ) ? $site : $this->_site;
17492
- $encrypted_site = clone $site_clone;
17493
 
17494
  $sites = self::get_all_sites( $this->_module_type, $network_level_or_blog_id );
17495
 
17496
- $prev_stored_user_id = $this->_storage->get( 'prev_user_id', false, $network_level_or_blog_id );
 
17497
 
17498
- if ( empty( $prev_stored_user_id ) &&
17499
- $this->_user->id != $this->_site->user_id
17500
- ) {
17501
- /**
17502
- * Store the current user ID as the previous user ID so that the previous user can be used
17503
- * as the install's owner while the new owner's details are not yet available.
17504
- *
17505
- * This will be executed only in the `replica` site. For example, there are 2 sites, namely `original`
17506
- * and `replica`, then an ownership change was initiated and completed in the `original`, the `replica`
17507
- * will be using the previous user until it is updated again (e.g.: until the next clone of `original`
17508
- * into `replica`.
17509
- *
17510
- * @author Leo Fajardo (@leorw)
17511
- */
17512
- $this->_storage->store( 'prev_user_id', $sites[ $this->_slug ]->user_id, $network_level_or_blog_id );
 
 
 
17513
  }
17514
 
17515
- $sites[ $this->_slug ] = $encrypted_site;
17516
 
17517
  $this->set_account_option( 'sites', $sites, $store, $network_level_or_blog_id );
17518
  }
@@ -17722,6 +19327,10 @@
17722
  * @since 2.2.4
17723
  */
17724
  private function purge_valid_user_licenses_cache() {
 
 
 
 
17725
  $this->get_api_user_scope()->purge_cache( $this->get_valid_user_licenses_endpoint() );
17726
  }
17727
 
@@ -18375,9 +19984,93 @@
18375
  *
18376
  * @author Vova Feldman (@svovaf)
18377
  * @since 1.2.1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
18378
  */
18379
- function has_active_valid_license() {
18380
- return self::is_active_valid_license( $this->_license );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
18381
  }
18382
 
18383
  /**
@@ -18387,15 +20080,16 @@
18387
  * @since 2.1.3
18388
  *
18389
  * @param FS_Plugin_License $license
 
18390
  *
18391
  * @return bool
18392
  */
18393
- private static function is_active_valid_license( $license ) {
18394
  return (
18395
  is_object( $license ) &&
18396
  FS_Plugin_License::is_valid_id( $license->id ) &&
18397
  $license->is_active() &&
18398
- $license->is_valid()
18399
  );
18400
  }
18401
 
@@ -18449,6 +20143,22 @@
18449
  );
18450
  }
18451
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
18452
  /**
18453
  * Check if user is a trial or have feature enabled license.
18454
  *
@@ -18694,7 +20404,7 @@
18694
  } else {
18695
  // Authentication params are broken.
18696
  $this->_admin_notices->add(
18697
- $this->get_text_inline( 'It seems like one of the authentication parameters is wrong. Update your Public Key, Secret Key & User ID, and try again.', 'wrong-authentication-param-message' ),
18698
  $this->get_text_x_inline( 'Oops', 'exclamation', 'oops' ) . '...',
18699
  'error'
18700
  );
@@ -18861,12 +20571,32 @@
18861
  $this->get_network_install_blog_id()
18862
  );
18863
  } else {
18864
- if ( is_object( $this->_license ) && $this->_license->is_expired() ) {
18865
- if ( ! $this->has_features_enabled_license() ) {
18866
- $this->_deactivate_license();
18867
- $plan_change = 'downgraded';
18868
- } else {
18869
- $plan_change = 'expired';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
18870
  }
18871
  }
18872
 
@@ -18890,7 +20620,7 @@
18890
 
18891
  $hmm_text = $this->get_text_x_inline( 'Hmm', 'something somebody says when they are thinking about what you have just said.', 'hmm' ) . '...';
18892
 
18893
- if ( $this->has_paid_plan() ) {
18894
  switch ( $plan_change ) {
18895
  case 'none':
18896
  if ( ! $background && is_admin() ) {
@@ -18983,6 +20713,9 @@
18983
  'license_expired',
18984
  $hmm_text
18985
  );
 
 
 
18986
  $this->_admin_notices->remove_sticky( 'plan_upgraded' );
18987
  break;
18988
  case 'trial_started':
@@ -19018,6 +20751,13 @@
19018
  }
19019
 
19020
  if ( 'none' !== $plan_change ) {
 
 
 
 
 
 
 
19021
  $this->do_action( 'after_license_change', $plan_change, $this->get_plan() );
19022
  }
19023
  }
@@ -19037,7 +20777,8 @@
19037
  * @author Vova Feldman (@svovaf)
19038
  * @since 1.0.5
19039
  *
19040
- * @param bool $background
 
19041
  */
19042
  protected function _activate_license( $background = false, $premium_license = null ) {
19043
  $this->_logger->entrance();
@@ -19231,7 +20972,11 @@
19231
 
19232
  if ( $show_notice ) {
19233
  $this->_admin_notices->add(
19234
- sprintf( $this->get_text_inline( 'Your license was successfully deactivated, you are back to the %s plan.', 'license-deactivation-message' ), $this->get_plan_title() ),
 
 
 
 
19235
  $this->get_text_inline( 'O.K', 'ok' )
19236
  );
19237
  }
@@ -19736,7 +21481,7 @@
19736
  */
19737
  private function get_latest_download_link( $label, $plugin_id = false ) {
19738
  return sprintf(
19739
- '<a target="_blank" href="%s">%s</a>',
19740
  $this->_get_latest_download_local_url( $plugin_id ),
19741
  $label
19742
  );
@@ -19807,7 +21552,7 @@
19807
  $this->get_text_inline( 'Version %s was released.', 'version-x-released' ) . ' ' . $this->get_text_inline( 'Please download %s.', 'please-download-x' ),
19808
  $update->version,
19809
  sprintf(
19810
- '<a href="%s" target="_blank">%s</a>',
19811
  $this->get_account_url( 'download_latest' ),
19812
  sprintf(
19813
  /* translators: %s: plan name (e.g. latest "Professional" version) */
@@ -19844,7 +21589,7 @@
19844
 
19845
  $api = $this->get_api_site_or_plugin_scope();
19846
 
19847
- $path = $this->add_show_pending( '/addons.json?enriched=true' );
19848
 
19849
  /**
19850
  * @since 1.2.1
@@ -20038,6 +21783,39 @@
20038
  return true;
20039
  }
20040
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
20041
  /**
20042
  * Handle user name update.
20043
  *
@@ -20151,7 +21929,7 @@
20151
  * @return string
20152
  */
20153
  function get_after_activation_url( $filter, $params = array(), $network = null ) {
20154
- if ( $this->is_free_wp_org_theme() &&
20155
  ( fs_request_has( 'pending_activation' ) ||
20156
  // For cases when the first time path is set, even though it's a WP.org theme.
20157
  fs_request_get_bool( $this->get_unique_affix() . '_show_optin' ) )
@@ -20206,8 +21984,9 @@
20206
  // Alias.
20207
  $oops_text = $this->get_text_x_inline( 'Oops', 'exclamation', 'oops' ) . '...';
20208
 
20209
- $is_network_action = $this->is_network_level_action();
20210
- $blog_id = $this->is_network_level_site_specific_action();
 
20211
 
20212
  if ( is_numeric( $blog_id ) ) {
20213
  $this->switch_to_blog( $blog_id );
@@ -20219,7 +21998,7 @@
20219
  case 'opt_in':
20220
  check_admin_referer( trim( "{$action}:{$blog_id}:{$install_id}", ':' ) );
20221
 
20222
- if ( $plugin_id == $this->get_id() ) {
20223
  if ( $is_network_action && ! empty( $blog_id ) ) {
20224
  if ( ! $this->is_registered() ) {
20225
  $this->install_with_user(
@@ -20242,7 +22021,7 @@
20242
  case 'toggle_tracking':
20243
  check_admin_referer( trim( "{$action}:{$blog_id}:{$install_id}", ':' ) );
20244
 
20245
- if ( $plugin_id == $this->get_id() ) {
20246
  if ( $is_network_action && ! empty( $blog_id ) ) {
20247
  if ( $this->is_registered() ) {
20248
  if ( $this->is_tracking_prohibited() ) {
@@ -20260,7 +22039,7 @@
20260
  $this->get_plugin_title(),
20261
  fs_strip_url_protocol( get_site_url( $blog_id ) ),
20262
  sprintf(
20263
- '<a href="%s" target="_blank">%s</a>',
20264
  'https://freemius.com',
20265
  'freemius.com'
20266
  )
@@ -20277,8 +22056,20 @@
20277
  case 'delete_account':
20278
  check_admin_referer( trim( "{$action}:{$blog_id}:{$install_id}", ':' ) );
20279
 
20280
- if ( $plugin_id == $this->get_id() ) {
20281
- if ( $is_network_action && empty( $blog_id ) ) {
 
 
 
 
 
 
 
 
 
 
 
 
20282
  $this->delete_network_account_event();
20283
  } else {
20284
  $this->delete_account_event();
@@ -20294,7 +22085,12 @@
20294
  } else {
20295
  if ( $this->is_addon_activated( $plugin_id ) ) {
20296
  $fs_addon = self::get_instance_by_id( $plugin_id );
20297
- $fs_addon->delete_account_event();
 
 
 
 
 
20298
 
20299
  fs_redirect( $this->_get_admin_page_url( 'account' ) );
20300
  }
@@ -20342,6 +22138,18 @@
20342
 
20343
  if ( is_object( $fs ) ) {
20344
  $fs->_activate_license();
 
 
 
 
 
 
 
 
 
 
 
 
20345
  }
20346
 
20347
  return;
@@ -20564,6 +22372,26 @@
20564
 
20565
  $this->_handle_account_edits();
20566
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
20567
  $this->do_action( 'account_page_load_before_departure' );
20568
  }
20569
 
@@ -20700,6 +22528,86 @@
20700
  }
20701
  }
20702
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
20703
  #----------------------------------------------------------------------------------
20704
  #region Contact Us
20705
  #----------------------------------------------------------------------------------
@@ -20894,6 +22802,26 @@
20894
  return $this->_plugin_api;
20895
  }
20896
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
20897
  /**
20898
  * Get site API scope object (fallback to public plugin scope when not registered).
20899
  *
@@ -20908,6 +22836,43 @@
20908
  $this->get_api_plugin_scope();
20909
  }
20910
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
20911
  /**
20912
  * Show trial promotional notice (if any trial exist).
20913
  *
@@ -21227,7 +23192,7 @@
21227
  function _show_theme_activation_optin_dialog() {
21228
  fs_enqueue_local_style( 'fs_connect', '/admin/connect.css' );
21229
 
21230
- add_action( 'admin_footer-themes.php', array( &$this, '_add_fs_theme_activation_dialog' ) );
21231
  }
21232
 
21233
  /**
@@ -21235,6 +23200,12 @@
21235
  * @since 1.2.2
21236
  */
21237
  function _add_fs_theme_activation_dialog() {
 
 
 
 
 
 
21238
  $vars = array( 'id' => $this->_module_id );
21239
  fs_require_once_template( 'connect.php', $vars );
21240
  }
@@ -21322,7 +23293,7 @@
21322
  $add_upgrade_link = (
21323
  $add_action_links ||
21324
  ( $is_activation_mode && $this->is_only_premium() )
21325
- ) && ! WP_FS__DEMO_MODE;
21326
 
21327
  $add_addons_link = ( $add_action_links && $this->has_addons() );
21328
 
@@ -21411,6 +23382,20 @@
21411
 
21412
  $this->_logger->entrance();
21413
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
21414
  if ( fs_is_network_admin() ) {
21415
  if ( ! $this->_is_network_active ) {
21416
  // Don't add tracking links when browsing the network WP Admin and the plugin is not network active.
@@ -21441,14 +23426,18 @@
21441
  return;
21442
  }
21443
 
21444
- if ( $this->is_registered() && $this->is_tracking_allowed() ) {
21445
- if ( ! $this->is_enable_anonymous() ) {
21446
- // If opted in and tracking is allowed, don't allow to opt out if anonymous mode is disabled.
21447
- return;
21448
- }
 
 
 
21449
 
21450
- if ( ! $this->is_free_plan() ) {
21451
- // Don't allow to opt out if running in paid plan.
 
21452
  return;
21453
  }
21454
  }
@@ -21461,6 +23450,10 @@
21461
  return;
21462
  }
21463
 
 
 
 
 
21464
  $link_text_id = '';
21465
  $url = '#';
21466
 
@@ -21470,8 +23463,6 @@
21470
  } else {
21471
  $link_text_id = $this->get_text_inline( 'Opt In', 'opt-in' );
21472
  }
21473
-
21474
- add_action( 'admin_footer', array( &$this, '_add_optout_dialog' ) );
21475
  } else if ( $this->is_anonymous() || $this->is_activation_mode() ) {
21476
  /**
21477
  * Show opt-in link only if skipped or in activation mode.
@@ -21488,6 +23479,8 @@
21488
  $url = $this->get_activation_url( $params );
21489
  }
21490
 
 
 
21491
  if ( ! empty( $link_text_id ) && $this->is_plugin() && self::is_plugins_page() ) {
21492
  $this->add_plugin_action_link(
21493
  $link_text_id,
@@ -21524,7 +23517,7 @@
21524
  if ( ! empty( $this->_dynamically_added_top_level_page_hook_name ) ) {
21525
  if ( $this->is_network_registered() ) {
21526
  $page = 'account';
21527
- } else if ( $this->is_network_anonymous() ) {
21528
  $this->maybe_set_slug_and_network_menu_exists_flag();
21529
  }
21530
  }
@@ -21559,10 +23552,12 @@
21559
  * @since 1.0.3
21560
  */
21561
  function _redirect_on_activation_hook() {
21562
- $url = $this->get_after_plugin_activation_redirect_url();
 
21563
 
21564
- if ( is_string( $url ) ) {
21565
- fs_redirect( $url );
 
21566
  }
21567
  }
21568
 
@@ -21602,7 +23597,7 @@
21602
 
21603
  foreach ( $this->_action_links as $new_links ) {
21604
  foreach ( $new_links as $link ) {
21605
- $before_deactivate[ $link['key'] ] = '<a href="' . $link['href'] . '"' . ( $link['external'] ? ' target="_blank"' : '' ) . '>' . $link['label'] . '</a>';
21606
  }
21607
  }
21608
 
@@ -21722,7 +23717,7 @@
21722
  '';
21723
 
21724
  return sprintf(
21725
- ' %s: <ol><li>%s.</li>%s<li>%s (<a href="%s" target="_blank">%s</a>).</li></ol>',
21726
  $this->get_text_inline( 'Please follow these steps to complete the upgrade', 'follow-steps-to-complete-upgrade' ),
21727
  ( empty( $activate_license_string ) ? '' : $activate_license_string . '</li><li>' ) .
21728
  $this->get_latest_download_link( sprintf(
@@ -21975,6 +23970,14 @@
21975
  */
21976
  function set_plugin_upgrade_complete() {
21977
  $this->_storage->plugin_upgrade_mode = false;
 
 
 
 
 
 
 
 
21978
  }
21979
 
21980
  #endregion
@@ -22177,7 +24180,7 @@
22177
  function _tabs_capture() {
22178
  $this->_logger->entrance();
22179
 
22180
- if ( ! $this->is_theme_settings_page() ||
22181
  ! $this->is_matching_url( $this->main_menu_url() )
22182
  ) {
22183
  return;
@@ -22232,7 +24235,7 @@
22232
  function _store_tabs_styles() {
22233
  $this->_logger->entrance();
22234
 
22235
- if ( ! $this->is_theme_settings_page() ||
22236
  ! $this->is_matching_url( $this->main_menu_url() )
22237
  ) {
22238
  return;
@@ -22306,18 +24309,23 @@
22306
  return false;
22307
  }
22308
 
22309
- if ( ! $this->is_theme() ) {
22310
  // Only add tabs to themes for now.
22311
  return false;
22312
  }
22313
 
22314
- if ( ! $this->has_paid_plan() && ! $this->has_addons() ) {
22315
  // Only add tabs to monetizing themes.
22316
  return false;
22317
  }
22318
 
22319
- if ( ! $this->is_theme_settings_page() ) {
22320
- // Only add tabs if browsing one of the theme's setting pages.
 
 
 
 
 
22321
  return false;
22322
  }
22323
 
@@ -23004,8 +25012,8 @@
23004
  }
23005
 
23006
  $modules = array_merge(
23007
- array_values( self::$_accounts->get_option( 'plugins', array() ) ),
23008
- array_values( self::$_accounts->get_option( 'themes', array() ) )
23009
  );
23010
 
23011
  foreach ( $modules as $module ) {
@@ -23110,10 +25118,45 @@
23110
  *
23111
  * @author Vova Feldman (@svovaf)
23112
  */
23113
- self::shoot_ajax_success( array( 'is_marketing_allowed' => null ) );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
23114
  }
23115
 
23116
- self::shoot_ajax_success( array( 'is_marketing_allowed' => $user_plugins[0]->is_marketing_allowed ) );
23117
  }
23118
 
23119
  /**
@@ -23149,8 +25192,8 @@
23149
  }
23150
 
23151
  $modules = array_merge(
23152
- array_values( self::$_accounts->get_option( 'plugins', array() ) ),
23153
- array_values( self::$_accounts->get_option( 'themes', array() ) )
23154
  );
23155
 
23156
  foreach ( $modules as $key => $module ) {
164
  */
165
  private $_has_addons;
166
 
167
+ /**
168
+ * @since 2.4.5
169
+ * @var string Navigation type: 'menu' or 'tabs'.
170
+ */
171
+ private $_navigation;
172
+
173
+ const NAVIGATION_MENU = 'menu';
174
+ const NAVIGATION_TABS = 'tabs';
175
+
176
  /**
177
  * @since 1.1.6
178
  * @var string[]bool.
343
  */
344
  private $_dynamically_added_top_level_page_hook_name = '';
345
 
346
+ /**
347
+ * @author Leo Fajardo (@leorw)
348
+ * @since 2.3.1
349
+ *
350
+ * @var bool
351
+ */
352
+ private $is_whitelabeled;
353
+
354
+ /**
355
+ * @author Leo Fajardo (@leorw)
356
+ * @since 2.4.0
357
+ *
358
+ * @var bool
359
+ */
360
+ private $_is_bundle_license_auto_activation_enabled = false;
361
+
362
  #region Uninstall Reasons IDs
363
 
364
  const REASON_NO_LONGER_NEEDED = 1;
377
  const REASON_DIDNT_WORK_AS_EXPECTED = 14;
378
  const REASON_TEMPORARY_DEACTIVATION = 15;
379
 
380
+ /**
381
+ * @author Leo Fajardo (@leorw)
382
+ * @since 2.3.1
383
+ *
384
+ * @var boolean|null
385
+ */
386
+ private $_use_external_pricing = null;
387
+
388
  #endregion
389
 
390
  /* Ctor
517
  );
518
 
519
  if ( 'true' === fs_request_get( 'fs_clear_api_cache' ) ||
520
+ fs_request_is_action( 'restart_freemius' )
521
  ) {
522
  FS_Api::clear_cache();
523
  $this->_cache->clear();
524
  }
525
 
526
+ $this->register_constructor_hooks();
527
 
528
  /**
529
  * Starting from version 2.0.0, `FS_Site` entities no longer have the `plan` property and have `plan_id`
735
  $this->_menu->has_menu();
736
  }
737
 
738
+ /**
739
+ * If `true` the opt-in should be shown as a modal dialog box on the themes.php page. WordPress.org themes guidelines prohibit from redirecting the user from the themes.php page after activating a theme.
740
+ *
741
+ * @author Vova Feldman (@svovaf)
742
+ * @since 2.4.5
743
+ *
744
+ * @return bool
745
+ */
746
+ function show_opt_in_on_themes_page() {
747
+ if ( ! $this->is_free_wp_org_theme() ) {
748
+ return false;
749
+ }
750
+
751
+ if ( ! $this->has_settings_menu() ) {
752
+ return true;
753
+ }
754
+
755
+ return $this->show_settings_with_tabs();
756
+ }
757
+
758
+ /**
759
+ * If `true` the opt-in should be shown on the product's main setting page.
760
+ *
761
+ * @author Vova Feldman (@svovaf)
762
+ * @since 2.4.5
763
+ *
764
+ * @return bool
765
+ *
766
+ * @uses show_opt_in_on_themes_page();
767
+ */
768
+ function show_opt_in_on_setting_page() {
769
+ return ! $this->show_opt_in_on_themes_page();
770
+ }
771
+
772
+ /**
773
+ * If `true` the settings should be shown using tabs.
774
+ *
775
+ * @author Vova Feldman (@svovaf)
776
+ * @since 2.4.5
777
+ *
778
+ * @return bool
779
+ */
780
+ function show_settings_with_tabs() {
781
+ return ( self::NAVIGATION_TABS === $this->_navigation );
782
+ }
783
+
784
  /**
785
  * Check if the context module is free wp.org theme.
786
  *
813
  * @since 1.2.2.7 Even if the menu item was specified to be hidden, when it is the context page, then show the submenu item so the user will have the right context page.
814
  *
815
  * @param string $slug
816
+ * @param bool $is_tabs_visibility_check This is used to decide if the associated tab should be shown or hidden.
 
817
  *
818
  * @return bool
819
  */
820
+ function is_submenu_item_visible( $slug, $is_tabs_visibility_check = false ) {
821
  if ( $this->is_admin_page( $slug ) ) {
822
  /**
823
  * It is the current context page, so show the submenu item
832
  return false;
833
  }
834
 
835
+ if (
836
+ ! $is_tabs_visibility_check &&
837
+ $this->is_org_repo_compliant() &&
838
+ $this->show_settings_with_tabs()
839
+ ) {
840
  /**
841
  * wp.org themes are limited to a single submenu item, and
842
  * sub-submenu items are most likely not allowed (never verified).
1062
  }
1063
 
1064
  if ( isset( $this->_storage->subscription ) && is_object( $this->_storage->subscription ) ) {
1065
+ $this->_storage->subscriptions = array( fs_get_entity( $this->_storage->subscription, FS_Subscription::get_class_name() ) );
1066
  }
1067
  }
1068
 
1477
  if ( $this->is_plugin() &&
1478
  ! isset( $this->_storage->is_plugin_new_install )
1479
  ) {
1480
+ $this->_storage->is_plugin_new_install = (
1481
+ ! is_plugin_active( $this->_plugin_basename ) &&
1482
+ empty( $this->_storage->plugin_last_version )
1483
+ );
1484
  }
1485
  }
1486
 
1503
  -1 < settings.url.indexOf('admin-ajax.php') &&
1504
  ! ( settings.url.indexOf( '<?php echo $admin_param ?>' ) > 0 )
1505
  ) {
1506
+ if (
1507
+ 'string' === typeof settings.data &&
1508
+ settings.data.indexOf( 'action=heartbeat' ) > 0
1509
+ ) {
1510
+ return;
1511
+ }
1512
+
1513
  if (settings.url.indexOf('?') > 0) {
1514
  settings.url += '&';
1515
  } else {
1517
  }
1518
 
1519
  settings.url += '<?php echo $admin_param ?>=true';
 
1520
  }
1521
  });
1522
  })(jQuery);
1534
  ?>
1535
  <script type="text/javascript">
1536
  (function ($) {
1537
+ $('.fs-submenu-item.wp-support-forum').parent().attr( { target: '_blank', rel: 'noopener noreferrer' } );
1538
  })(jQuery);
1539
  </script>
1540
  <?php
1544
  * @author Vova Feldman (@svovaf)
1545
  * @since 1.0.9
1546
  */
1547
+ private function register_constructor_hooks() {
1548
  $this->_logger->entrance();
1549
 
1550
  if ( is_admin() ) {
1551
+ add_action( 'admin_init', array( &$this, '_hook_action_links_and_register_account_hooks' ) );
1552
 
1553
  if ( $this->is_plugin() ) {
1554
  if ( self::is_plugin_install_page() && true !== fs_request_get_bool( 'fs_allow_updater_and_dialog' ) ) {
1589
  } else {
1590
  add_action( 'after_switch_theme', array( &$this, '_activate_theme_event_hook' ), 10, 2 );
1591
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1592
  add_action( 'admin_footer', array( &$this, '_style_premium_theme' ) );
1593
  }
1594
 
1608
  *
1609
  * @author Vova Feldman (@svovaf)
1610
  */
1611
+ if ( $this->is_plugin() &&
1612
+ $this->is_activation_mode( false ) &&
1613
+ 0 == did_action( 'plugins_loaded' )
1614
+ ) {
1615
  add_action( 'plugins_loaded', array( &$this, '_plugins_loaded' ) );
1616
  } else {
1617
  // If was activated before, then it was already loaded before.
1630
  }
1631
 
1632
  add_action( 'init', array( &$this, '_maybe_add_gdpr_optin_ajax_handler') );
1633
+ add_action( 'init', array( &$this, '_maybe_add_pricing_ajax_handler' ) );
1634
  }
1635
 
1636
  if ( $this->is_plugin() ) {
1662
 
1663
  add_action( 'admin_init', array( &$this, '_redirect_on_clicked_menu_link' ), WP_FS__LOWEST_PRIORITY );
1664
 
1665
+ if ( $this->is_theme() && ! $this->is_migration() ) {
1666
  add_action( 'admin_init', array( &$this, '_add_tracking_links' ) );
1667
  }
1668
 
1669
  add_action( 'admin_init', array( &$this, '_add_license_activation' ) );
1670
  add_action( 'admin_init', array( &$this, '_add_premium_version_upgrade_selection' ) );
1671
  add_action( 'admin_init', array( &$this, '_add_beta_mode_update_handler' ) );
1672
+ add_action( 'admin_init', array( &$this, '_add_user_change_option' ) );
1673
 
1674
  $this->add_ajax_action( 'update_billing', array( &$this, '_update_billing_ajax_action' ) );
1675
  $this->add_ajax_action( 'start_trial', array( &$this, '_start_trial_ajax_action' ) );
1676
+ $this->add_ajax_action( 'set_data_debug_mode', array( &$this, '_set_data_debug_mode' ) );
1677
+ $this->add_ajax_action( 'toggle_whitelabel_mode', array( &$this, '_toggle_whitelabel_mode_ajax_handler' ) );
1678
 
1679
  if ( $this->_is_network_active && fs_is_network_admin() ) {
1680
  $this->add_ajax_action( 'network_activate', array( &$this, '_network_activate_ajax_action' ) );
1716
  }
1717
  }
1718
 
1719
+ /**
1720
+ * Register the required hooks right after the settings parse is completed.
1721
+ *
1722
+ * @author Vova Feldman (@svovaf)
1723
+ * @since 2.3.1
1724
+ */
1725
+ private function register_after_settings_parse_hooks() {
1726
+ if ( is_admin() &&
1727
+ $this->is_theme() &&
1728
+ $this->is_premium() &&
1729
+ ! $this->has_active_valid_license()
1730
+ ) {
1731
+ $this->add_ajax_action(
1732
+ 'delete_theme_update_data',
1733
+ array( &$this, '_delete_theme_update_data_action' )
1734
+ );
1735
+ }
1736
+
1737
+ if ( $this->show_settings_with_tabs() ) {
1738
+ /**
1739
+ * Include the required hooks to capture the theme settings' page tabs
1740
+ * and cache them.
1741
+ *
1742
+ * @author Vova Feldman (@svovaf)
1743
+ * @since 1.2.2.7
1744
+ */
1745
+ if ( ! $this->_cache->has_valid( 'tabs' ) ) {
1746
+ add_action( 'admin_footer', array( &$this, '_tabs_capture' ) );
1747
+ // Add license activation AJAX callback.
1748
+ $this->add_ajax_action( 'store_tabs', array( &$this, '_store_tabs_ajax_action' ) );
1749
+
1750
+ add_action( 'admin_enqueue_scripts', array( &$this, '_store_tabs_styles' ), 9999999 );
1751
+ }
1752
+
1753
+ add_action(
1754
+ 'admin_footer',
1755
+ array( &$this, '_add_freemius_tabs' ),
1756
+ /**
1757
+ * The tabs JS code must be executed after the tabs capture logic (_tabs_capture()).
1758
+ * That's why the priority is 11 while the tabs capture logic is added
1759
+ * with priority 10.
1760
+ *
1761
+ * @author Vova Feldman (@svovaf)
1762
+ */
1763
+ 11
1764
+ );
1765
+ }
1766
+
1767
+ if ( ! self::is_ajax() ) {
1768
+ if ( ! $this->is_addon() || $this->is_only_premium() ) {
1769
+ add_action(
1770
+ ( $this->_is_network_active && fs_is_network_admin() ? 'network_' : '' ) . 'admin_menu',
1771
+ array( &$this, '_prepare_admin_menu' ),
1772
+ WP_FS__LOWEST_PRIORITY
1773
+ );
1774
+ }
1775
+ }
1776
+ }
1777
+
1778
  /**
1779
  * Makes Freemius-related updates unavailable on the "Add Plugins" admin page (/plugin-install.php) so that
1780
  * they won't interfere with the .org plugins' functionalities on that page (e.g. updating of a .org plugin).
2037
  * @since 2.0.0
2038
  */
2039
  function _hook_action_links_and_register_account_hooks() {
2040
+ if ( $this->is_migration() ) {
2041
+ return;
2042
+ }
2043
+
2044
+ $this->_add_tracking_links();
2045
 
2046
  if ( self::is_plugins_page() && $this->is_plugin() ) {
2047
  $this->hook_plugin_action_links();
2221
  );
2222
 
2223
  $store_option = true;
2224
+ } else if (
2225
+ isset( $id_slug_type_path_map[ $module_id ]['slug'] ) &&
2226
+ $slug !== $id_slug_type_path_map[ $module_id ]['slug']
2227
+ ) {
2228
+ $id_slug_type_path_map[ $module_id ]['slug'] = $slug;
2229
+ $store_option = true;
2230
  }
2231
 
2232
  if ( empty( $id_slug_type_path_map[ $module_id ]['path'] ) ||
2389
 
2390
  if ( ! isset( $caller_map[ $caller_file_hash ] ) ) {
2391
  foreach ( $all_plugins_paths as $plugin_path ) {
2392
+ if ( empty( $plugin_path ) ) {
2393
+ continue;
2394
+ }
2395
+
2396
  if ( false !== strpos( $caller_file_path, fs_normalize_path( dirname( $plugin_path ) . '/' ) ) ) {
2397
  $caller_map[ $caller_file_hash ] = fs_normalize_path( $plugin_path );
2398
  break;
3071
  * @return bool
3072
  */
3073
  function is_activation_page() {
3074
+ if ( $this->_menu->is_activation_page( $this->show_opt_in_on_themes_page() ) ) {
3075
  return true;
3076
  }
3077
 
4300
  )
4301
  ),
4302
  sprintf(
4303
+ '<a href="%s" target="_blank" rel="noopener noreferrer"><b>%s</b></a> - %s',
4304
  sprintf( 'https://wordpress.org/plugins/%s/download/', $this->_slug ),
4305
  $install_previous_title,
4306
  $install_previous_desc
4407
  )
4408
  ),
4409
  sprintf(
4410
+ '<a href="%s" target="_blank" rel="noopener noreferrer"><b>%s</b></a> - %s',
4411
  sprintf( 'https://wordpress.org/plugins/%s/download/', $this->_slug ),
4412
  $install_previous_title,
4413
  $install_previous_desc
4773
 
4774
  $this->parse_settings( $plugin_info );
4775
 
4776
+ $this->register_after_settings_parse_hooks();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4777
 
4778
  if ( $this->should_stop_execution() ) {
4779
  return;
4928
  } else {
4929
  $is_network_admin = fs_is_network_admin();
4930
 
4931
+ if ( ! $this->_parent->is_registered() && $this->is_registered() ) {
4932
+ // If add-on activated and parent not, automatically install parent for the user.
4933
+ $this->activate_parent_account( $this->_parent );
4934
+ } else if (
4935
  $this->_parent->is_registered() &&
4936
  ! $this->is_registered() &&
4937
  /**
4947
  */
4948
  ( $this->is_network_active() || ! $is_network_admin )
4949
  ) {
4950
+ $premium_license = null;
4951
+
4952
+ if (
4953
+ ! $this->has_free_plan() &&
4954
+ $this->is_bundle_license_auto_activation_enabled() &&
4955
+ $this->_parent->is_activated_with_bundle_license()
4956
+ ) {
4957
+ /**
4958
+ * If the add-on has no free plan, try to activate the account only when there's a bundle license.
4959
+ *
4960
+ * @author Leo Fajardo (@leorw)
4961
+ * @since 2.4.0
4962
+ */
4963
+ $bundle_license = $this->get_active_parent_license( $this->_parent->_get_license()->secret_key, false );
4964
+
4965
+ if (
4966
+ is_object( $bundle_license ) &&
4967
+ ! empty( $bundle_license->products ) &&
4968
+ in_array( $this->get_id(), $bundle_license->products )
4969
+ ) {
4970
+ $premium_license = $bundle_license;
4971
+ }
4972
+ }
4973
+
4974
+ if ( $this->has_free_plan() || is_object( $premium_license) ) {
4975
+ // If parent plugin activated, automatically install add-on for the user.
4976
+ $this->_activate_addon_account(
4977
+ $this->_parent,
4978
+ ( $this->is_network_active() && $is_network_admin ) ?
4979
+ true :
4980
+ get_current_blog_id(),
4981
+ $premium_license
4982
+ );
4983
+ }
4984
  }
4985
 
4986
  // @todo This should be only executed on activation. It should be migrated to register_activation_hook() together with other activation related logic.
5475
  }
5476
  }
5477
 
5478
+ /**
5479
+ * @author Vova Feldman (@svovaf)
5480
+ * @since 2.3.2
5481
+ *
5482
+ * @return bool
5483
+ */
5484
+ function is_extensions_tracking_allowed() {
5485
+ return ( true === $this->apply_filters(
5486
+ 'is_extensions_tracking_allowed',
5487
+ $this->_storage->get( 'is_extensions_tracking_allowed', true )
5488
+ ) );
5489
+ }
5490
+
5491
+ /**
5492
+ * @author Vova Feldman (@svovaf)
5493
+ * @since 2.3.2
5494
+ */
5495
+ function _update_tracking_permission_callback() {
5496
+ $this->_logger->entrance();
5497
+
5498
+ $this->check_ajax_referer( 'update_tracking_permission' );
5499
+
5500
+ $is_enabled = fs_request_get_bool( 'is_enabled', null );
5501
+
5502
+ if ( ! is_bool( $is_enabled ) ) {
5503
+ self::shoot_ajax_failure();
5504
+ }
5505
+
5506
+ $permission = fs_request_get( 'permission' );
5507
+
5508
+ switch ( $permission ) {
5509
+ case 'extensions':
5510
+ $this->update_extensions_tracking_flag( $is_enabled );
5511
+ break;
5512
+ default:
5513
+ $permission = 'no_match';
5514
+ }
5515
+
5516
+ if ( 'no_match' === $permission ) {
5517
+ self::shoot_ajax_failure();
5518
+ }
5519
+
5520
+ self::shoot_ajax_success( array(
5521
+ 'permissions' => array(
5522
+ $permission => $is_enabled,
5523
+ )
5524
+ ) );
5525
+ }
5526
+
5527
+ /**
5528
+ * @author Leo Fajardo (@leorw)
5529
+ * @since 2.3.2
5530
+ *
5531
+ * @param bool $is_enabled
5532
+ */
5533
+ private function update_extensions_tracking_flag( $is_enabled ) {
5534
+ $this->_storage->store( 'is_extensions_tracking_allowed', $is_enabled );
5535
+ }
5536
+
5537
  /**
5538
  * Parse plugin's settings (as defined by the plugin dev).
5539
  *
5610
  'is_live' => $this->get_bool_option( $plugin_info, 'is_live', true ),
5611
  'affiliate_moderation' => $this->get_option( $plugin_info, 'has_affiliation' ),
5612
  'bundle_id' => $this->get_option( $plugin_info, 'bundle_id', null ),
5613
+ 'bundle_public_key' => $this->get_option( $plugin_info, 'bundle_public_key', null ),
5614
  ) );
5615
 
5616
  if ( $plugin->is_updated() ) {
5671
  $this->_anonymous_mode = $this->get_bool_option( $plugin_info, 'anonymous_mode', false );
5672
  }
5673
  $this->_permissions = $this->get_option( $plugin_info, 'permissions', array() );
5674
+ $this->_is_bundle_license_auto_activation_enabled = $this->get_option( $plugin_info, 'bundle_license_auto_activation', false );
5675
 
5676
  if ( ! empty( $plugin_info['trial'] ) ) {
5677
  $this->_trial_days = $this->get_numeric_option(
5683
 
5684
  $this->_is_trial_require_payment = $this->get_bool_option( $plugin_info['trial'], 'is_require_payment', false );
5685
  }
5686
+
5687
+ $this->_navigation = $this->get_option(
5688
+ $plugin_info,
5689
+ 'navigation',
5690
+ $this->is_free_wp_org_theme() ?
5691
+ self::NAVIGATION_TABS :
5692
+ self::NAVIGATION_MENU
5693
+ );
5694
  }
5695
 
5696
  /**
6043
  * @return Freemius[]
6044
  */
6045
  function get_installed_addons() {
6046
+ if ( $this->is_addon() ) {
6047
+ // Add-on cannot have add-ons.
6048
+ return array();
6049
+ }
6050
+
6051
  $installed_addons = array();
6052
+
6053
  foreach ( self::$_instances as $instance ) {
6054
+ if ( $instance->is_addon_of( $this->_plugin->id ) ) {
6055
+ $installed_addons[] = $instance;
 
 
6056
  }
6057
  }
6058
 
6102
  * @return bool
6103
  */
6104
  function is_addon() {
6105
+ return (
6106
+ isset( $this->_plugin->parent_plugin_id ) &&
6107
+ is_numeric( $this->_plugin->parent_plugin_id )
6108
+ );
6109
+ }
6110
+
6111
+ /**
6112
+ * @author Vova Feldman (@svovaf)
6113
+ * @since 2.3.2
6114
+ *
6115
+ * @param number $parent_product_id
6116
+ *
6117
+ * @return bool
6118
+ */
6119
+ function is_addon_of( $parent_product_id ) {
6120
+ return (
6121
+ $this->is_addon() &&
6122
+ $parent_product_id == $this->_plugin->parent_plugin_id
6123
+ );
6124
  }
6125
 
6126
  /**
6877
  } else {
6878
  $this->sync_install();
6879
  }
6880
+
6881
+ $this->maybe_sync_install_user();
6882
  }
6883
  }
6884
  }
7091
  } else {
7092
  $this->sync_install( array(), true );
7093
  }
7094
+
7095
+ $this->maybe_sync_install_user();
7096
  }
7097
  }
7098
 
7149
  * @since 1.0.7
7150
  */
7151
  function _admin_init_action() {
7152
+ $is_migration = $this->is_migration();
7153
+
7154
  /**
7155
  * Automatically redirect to connect/activation page after plugin activation.
7156
  *
7163
  /**
7164
  * Don't redirect if activating multiple plugins at once (bulk activation).
7165
  */
7166
+ } else if ( ! $is_migration ) {
7167
  $this->_redirect_on_activation_hook();
7168
  return;
7169
  }
7170
  }
7171
 
7172
+ if ( $is_migration ) {
7173
+ return;
7174
+ }
7175
+
7176
  if ( fs_request_is_action( $this->get_unique_affix() . '_skip_activation' ) ) {
7177
  check_admin_referer( $this->get_unique_affix() . '_skip_activation' );
7178
 
7193
 
7194
  $this->_add_upgrade_action_link();
7195
 
7196
+ if ( ! ( ! $this->_is_network_active && fs_is_network_admin() ) &&
 
7197
  (
7198
  ( true === $this->_storage->require_license_activation ) ||
7199
  // Not registered nor anonymous.
7203
  )
7204
  ) {
7205
  if ( ! $this->is_pending_activation() ) {
7206
+ if ( ! $this->is_activation_page() ) {
7207
  /**
7208
  * If a user visits any other admin page before activating the premium-only theme with a valid
7209
  * license, reactivate the previous theme.
7270
  }
7271
  }
7272
 
7273
+ if ( $this->show_opt_in_on_themes_page() &&
7274
+ $this->is_activation_page()
7275
  ) {
7276
  $this->_show_theme_activation_optin_dialog();
7277
  }
7737
  * @author Leo Fajardo (@leorw)
7738
  * @since 1.2.2
7739
  */
7740
+ if (
7741
+ is_plugin_active( $other_version_basename ) &&
7742
+ $this->apply_filters( 'deactivate_on_activation', true )
7743
+ ) {
7744
  deactivate_plugins( $other_version_basename );
7745
  }
7746
  }
7849
  $this->_storage->is_plugin_new_install = empty( $this->_storage->plugin_last_version );
7850
  }
7851
 
7852
+ /**
7853
+ * Also flush when activating the premium version so that even if Freemius was off before, the API
7854
+ * connectivity test can be run again.
7855
+ *
7856
+ * @author Leo Fajardo (@leorw)
7857
+ * @since 2.2.3.1
7858
+ */
7859
+ $has_api_connectivity = $this->has_api_connectivity( WP_FS__DEV_MODE || $is_premium_version_activation );
7860
+
7861
  if ( ! $this->_anonymous_mode &&
7862
+ $has_api_connectivity &&
7863
  ! $this->_isAutoInstall
7864
  ) {
7865
  // Store hint that the plugin was just activated to enable auto-redirection to settings.
7892
  return;
7893
  }
7894
 
7895
+ $license = $this->get_active_parent_license();
7896
  if ( ! is_object( $license ) ) {
7897
  return;
7898
  }
7899
 
7900
+ if (
7901
+ $this->is_bundle_license_auto_activation_enabled() &&
7902
+ ! empty( $license->products )
7903
+ ) {
7904
+ $this->activate_bundle_license( $license );
7905
+
7906
+ return;
7907
+ }
7908
+
7909
  if ( ! $this->is_registered() ) {
7910
  // Opt in with a license key.
7911
  $this->opt_in(
7928
  }
7929
  }
7930
 
 
7931
  /**
7932
  * @author Leo Fajardo (@leorw)
7933
  * @since 2.3.0
7943
 
7944
  $license = ( ! is_null( $license ) ) ?
7945
  $license :
7946
+ $this->get_active_parent_license();
7947
 
7948
  if ( ! is_object( $license ) ) {
7949
  return;
7950
  }
7951
 
7952
+ if (
7953
+ $this->is_bundle_license_auto_activation_enabled() &&
7954
+ ! empty( $license->products )
7955
+ ) {
7956
+ $this->activate_bundle_license( $license );
7957
+
7958
+ return;
7959
+ }
7960
+
7961
  if ( ! $this->is_network_registered() ) {
7962
  $sites = $this->get_sites_for_network_level_optin();
7963
 
8021
  }
8022
 
8023
  /**
8024
+ * Tries to activate a bundle license for all supported products if the current product is activated with a bundle license. This is called after activating an available license (not via the license activation dialog but by clicking on a license activation button) for a product via its "Account" page.
8025
+ *
8026
  * @author Leo Fajardo (@leorw)
8027
+ * @since 2.4.0
8028
  *
8029
+ * @param FS_Plugin_License $license
8030
+ * @param array $sites
8031
+ * @param int $blog_id
8032
  */
8033
+ private function maybe_activate_bundle_license( FS_Plugin_License $license = null, $sites = array(), $blog_id = 0 ) {
8034
+ if ( ! is_object( $license ) && $this->has_active_valid_license() ) {
8035
+ $license = $this->_license;
8036
+ }
8037
 
8038
+ if ( ! is_object( $license ) ) {
8039
+ return;
8040
+ }
8041
+
8042
+ $parent_license = ( ! empty( $license->products ) ) ?
8043
+ $license :
8044
+ $this->get_active_parent_license( $license->secret_key );
8045
+
8046
+ if ( is_object( $parent_license ) ) {
8047
+ $this->activate_bundle_license( $parent_license, $sites, $blog_id );
8048
+ }
8049
+ }
8050
+
8051
+ /**
8052
+ * Try to activate a bundle license for all the bundle products installed on the site.
8053
+ * (1) If a child product install already has a license, the bundle license won't be activated.
8054
+ * (2) On multi-site networks, if the attempt to activate the bundle license is triggered from the network admin, the bundle license activation will only work for non-delegated sites and only if none of them is associated with a license. Even if one of the sites has the product installed with a license key, skip the bundle license activation for the product.
8055
+ * (3) On multi-site networks, if the attempt to activate the bundle license is triggered from a site-level admin, only activate the license if the product is site-level activated or delegated, and the product installation is not yet associated with a license.
8056
+ *
8057
+ * @author Leo Fajardo (@leorw)
8058
+ * @since 2.4.0
8059
+ *
8060
+ * @param FS_Plugin_License $license
8061
+ * @param array $sites
8062
+ * @param int $current_blog_id
8063
+ */
8064
+ private function activate_bundle_license( $license, $sites = array(), $current_blog_id = 0 ) {
8065
+ $is_network_admin = fs_is_network_admin();
8066
+
8067
+ $installs_by_blog_map = array();
8068
+ $site_info_by_blog_map = array();
8069
+
8070
+ /**
8071
+ * Try to activate the license for all supported products.
8072
+ *
8073
+ * @author Leo Fajardo
8074
+ */
8075
+ foreach ( $license->products as $product_id ) {
8076
+ $fs = self::get_instance_by_id( $product_id );
8077
+
8078
+ if ( ! is_object( $fs ) ) {
8079
+ continue;
8080
+ }
8081
+
8082
+ if ( ! $fs->has_paid_plan() ) {
8083
+ continue;
8084
+ }
8085
+
8086
+ if (
8087
+ ! $fs->is_addon() &&
8088
+ ! FS_Plan_Manager::instance()->has_paid_plan( $fs->_plans )
8089
+ ) {
8090
+ /**
8091
+ * The parent product can be free-only but can have its `has_paid_plan` flag set to `true` when
8092
+ * there is a context bundle.
8093
+ */
8094
+ continue;
8095
+ }
8096
+
8097
+ if ( $current_blog_id > 0 ) {
8098
+ $fs->switch_to_blog( $current_blog_id );
8099
+ }
8100
+
8101
+ if ( $fs->has_active_valid_license() ) {
8102
+ continue;
8103
+ }
8104
+
8105
+ if ( ! $is_network_admin || $current_blog_id > 0 ) {
8106
+ if ( $fs->is_network_active() && ! $fs->is_delegated_connection( $current_blog_id ) ) {
8107
+ // Do not try to activate the license in the site level if the product is network active and the connection was not delegated.
8108
+ continue;
8109
+ }
8110
+ } else {
8111
+ if ( ! $fs->is_network_active() ) {
8112
+ // Do not try to activate the license in the network level if the product is not network active.
8113
+ continue;
8114
+ }
8115
+
8116
+ if ( $fs->is_network_delegated_connection() ) {
8117
+ // Do not try to activate the license in the network level if the activation has been delegated to site admins.
8118
+ continue;
8119
+ }
8120
+
8121
+ $has_install_with_license = false;
8122
+
8123
+ // Collection of sites that have an install entity that is not activated with a license or non-delegated sites that have no install entity, or both types of site.
8124
+ $filtered_sites = array();
8125
+
8126
+ if ( empty( $sites ) ) {
8127
+ $all_sites = self::get_sites();
8128
+
8129
+ foreach ( $all_sites as $site ) {
8130
+ $sites[] = array( 'blog_id' => self::get_site_blog_id( $site ) );
8131
+ }
8132
+ } else {
8133
+ // Populate the map here to avoid calling `$fs->get_site_info( $site );` in the other `for` loop below.
8134
+ foreach ( $sites as $site ) {
8135
+ if ( ! isset( $site['blog_id'] ) || ! is_numeric( $site['blog_id'] ) ) {
8136
+ continue;
8137
+ }
8138
+
8139
+ $site_info_by_blog_map[ $site['blog_id'] ] = $site;
8140
+ }
8141
+ }
8142
+
8143
+ foreach ( $sites as $site ) {
8144
+ if ( ! isset( $site['blog_id'] ) || ! is_numeric( $site['blog_id'] ) ) {
8145
+ continue;
8146
+ }
8147
+
8148
+ $blog_id = $site['blog_id'];
8149
+
8150
+ if ( ! isset( $installs_by_blog_map[ $blog_id ] ) ) {
8151
+ $installs_by_blog_map[ $blog_id ] = self::get_all_sites( $fs->get_module_type(), $blog_id );
8152
+ }
8153
+
8154
+ $installs = $installs_by_blog_map[ $blog_id ];
8155
+ $install = null;
8156
+
8157
+ if ( isset( $installs[ $fs->get_slug() ] ) ) {
8158
+ $install = $installs[ $fs->get_slug() ];
8159
+
8160
+ if (
8161
+ is_object( $install ) &&
8162
+ (
8163
+ ! FS_Site::is_valid_id( $install->id ) ||
8164
+ ! FS_User::is_valid_id( $install->user_id ) ||
8165
+ ! FS_Plugin_Plan::is_valid_id( $install->plan_id )
8166
+ )
8167
+ ) {
8168
+ $install = null;
8169
+ }
8170
+ }
8171
+
8172
+ if (
8173
+ is_object( $install ) &&
8174
+ FS_Plugin_License::is_valid_id( $install->license_id )
8175
+ ) {
8176
+ $has_install_with_license = true;
8177
+ break;
8178
+ }
8179
+
8180
+ if ( $fs->is_site_delegated_connection( $blog_id ) ) {
8181
+ // Site activation delegated, don't activate bundle license on the site in the network admin.
8182
+ continue;
8183
+ }
8184
+
8185
+ if ( ! isset( $site_info_by_blog_map[ $blog_id ] ) ) {
8186
+ $site_info_by_blog_map[ $blog_id ] = $fs->get_site_info( $site );
8187
+ }
8188
+
8189
+ $filtered_sites[] = $site_info_by_blog_map[ $blog_id ];
8190
+ }
8191
+
8192
+ if ( $has_install_with_license || empty( $filtered_sites ) ) {
8193
+ // Do not try to activate the license at the network level if there's any install with a license or there's no site to activate the license on.
8194
+ continue;
8195
+ }
8196
+
8197
+ $sites = $filtered_sites;
8198
+ }
8199
+
8200
+ $fs->activate_migrated_license(
8201
+ $license->secret_key,
8202
+ null,
8203
+ null,
8204
+ $sites,
8205
+ ( $current_blog_id > 0 ? $current_blog_id : null )
8206
+ );
8207
+ }
8208
+ }
8209
+
8210
+ /**
8211
+ * Returns a parent license that can be activated for the context product.
8212
+ *
8213
+ * @author Leo Fajardo (@leorw)
8214
+ * @since 2.3.0
8215
+ *
8216
+ * @param string|null $license_key
8217
+ * @param bool $flush
8218
+ *
8219
+ * @return FS_Plugin_License
8220
+ */
8221
+ function get_active_parent_license( $license_key = null, $flush = true ) {
8222
+ $parent_licenses_endpoint = "/plugins/{$this->get_id()}/parent_licenses.json?filter=activatable";
8223
+
8224
+ $fs = $this;
8225
+
8226
+ if ( $this->is_addon() ) {
8227
+ $parent_instance = $this->get_parent_instance();
8228
+
8229
+ if ( is_object( $parent_instance ) && $parent_instance->is_registered() ) {
8230
+ $fs = $parent_instance;
8231
+ }
8232
+ }
8233
+
8234
+ $foreign_licenses = $fs->get_foreign_licenses_info(
8235
+ self::get_all_licenses( $this->get_parent_id() )
8236
  );
8237
 
8238
  if ( ! empty ( $foreign_licenses ) ) {
8245
  $parent_licenses_endpoint = add_query_arg( $foreign_licenses, $parent_licenses_endpoint );
8246
  }
8247
 
8248
+ $result = $fs->get_current_or_network_user_api_scope()->get( $parent_licenses_endpoint, $flush );
8249
 
8250
  if (
8251
  ! $this->is_api_result_object( $result, 'licenses' ) ||
8255
  return null;
8256
  }
8257
 
8258
+ $parent_license = null;
8259
 
8260
+ if ( empty( $license_key ) ) {
8261
+ $parent_license = $result->licenses[0];
8262
+ } else {
8263
+ foreach ( $result->licenses as $license ) {
8264
+ if ( $license_key === $license->secret_key ) {
8265
+ $parent_license = $license;
8266
+ break;
8267
+ }
8268
+ }
8269
+ }
8270
+
8271
+ if ( ! is_null( $parent_license ) ) {
8272
+ $parent_license = new FS_Plugin_License( $parent_license );
8273
+ }
8274
+
8275
+ return $parent_license;
8276
  }
8277
 
8278
  /**
8281
  *
8282
  * @return array
8283
  */
8284
+ function get_sites_for_network_level_optin() {
8285
  $sites = array();
8286
  $all_sites = self::get_sites();
8287
 
8411
  foreach ( $sites as $site ) {
8412
  $blog_id = self::get_site_blog_id( $site );
8413
 
8414
+ if ( $this->is_site_delegated_connection( $blog_id ) ) {
8415
+ continue;
8416
+ }
8417
+
8418
  $install_id = $this->_delete_site( true, $blog_id );
8419
 
8420
  // Clear all storage data.
9025
  'is_uninstalled' => false,
9026
  );
9027
 
 
9028
  $network_plugins_cache->plugins[ $basename ] = $new_plugin;
9029
 
9030
+ $is_site_level_active = (
9031
+ isset( $site_active_plugins[ $basename ] ) &&
9032
+ $site_active_plugins[ $basename ]['is_active']
9033
+ );
9034
+
9035
+ /**
9036
+ * If not network active, set the activity status based on the site-level plugin status.
9037
+ */
9038
+ if ( ! $new_plugin['is_active'] ) {
9039
+ $new_plugin['is_active'] = $is_site_level_active;
9040
+ }
9041
+
9042
+ $plugins_update_data[] = $new_plugin;
9043
+
9044
  if ( isset( $site_active_plugins[ $basename ] ) ) {
9045
  $site_active_plugins_cache->plugins[ $basename ] = $new_plugin;
9046
+ $site_active_plugins_cache->plugins[ $basename ]['is_active'] = $is_site_level_active;
9047
  }
9048
  }
9049
  }
9205
  $include_themes = true,
9206
  $include_blog_data = true
9207
  ) {
9208
+ if ( $this->is_extensions_tracking_allowed() ) {
9209
+ if ( ! defined( 'WP_FS__TRACK_PLUGINS' ) || false !== WP_FS__TRACK_PLUGINS ) {
9210
+ /**
9211
+ * @since 1.1.8 Also send plugin updates.
9212
+ */
9213
+ if ( $include_plugins && ! isset( $override['plugins'] ) ) {
9214
+ $plugins = $this->get_plugins_data_for_api();
9215
+ if ( ! empty( $plugins ) ) {
9216
+ $override['plugins'] = $plugins;
9217
+ }
9218
  }
9219
  }
 
9220
 
9221
+ if ( ! defined( 'WP_FS__TRACK_THEMES' ) || false !== WP_FS__TRACK_THEMES ) {
9222
+ /**
9223
+ * @since 1.1.8 Also send themes updates.
9224
+ */
9225
+ if ( $include_themes && ! isset( $override['themes'] ) ) {
9226
+ $themes = $this->get_themes_data_for_api();
9227
+ if ( ! empty( $themes ) ) {
9228
+ $override['themes'] = $themes;
9229
+ }
9230
  }
9231
  }
9232
  }
9582
  }
9583
  }
9584
 
9585
+ /**
9586
+ * Syncs the install owner's data if needed (i.e., if the install owner is different from the loaded user).
9587
+ *
9588
+ * @author Leo Fajardo (@leorw)
9589
+ * @since 2.3.2
9590
+ */
9591
+ private function maybe_sync_install_user() {
9592
+ if ( $this->_user->id == $this->_site->user_id ) {
9593
+ return;
9594
+ }
9595
+
9596
+ // Fetch user data and store if found.
9597
+ $this->sync_user_by_current_install();
9598
+ }
9599
+
9600
  /**
9601
  * Update install only if changed.
9602
  *
9880
  $fs = self::get_instance_by_file( $plugin_file );
9881
 
9882
  if ( is_object( $fs ) ) {
9883
+ $fs->remove_sdk_reference();
9884
+
9885
  self::require_plugin_essentials();
9886
 
9887
  if ( is_plugin_active( $fs->_free_plugin_basename ) ||
9933
  * @author Vova Feldman (@svovaf)
9934
  * @since 1.0.1
9935
  *
9936
+ * @param bool $reparse_plugin_metadata
9937
+ *
9938
  * @return array
9939
  */
9940
+ function get_plugin_data( $reparse_plugin_metadata = false ) {
9941
+ if ( ! isset( $this->_plugin_data ) || $reparse_plugin_metadata ) {
9942
  self::require_plugin_essentials();
9943
 
9944
  if ( $this->is_plugin() ) {
10043
  null;
10044
  }
10045
 
10046
+ /**
10047
+ * @author Vova Feldman (@svovaf)
10048
+ * @since 2.3.1
10049
+ *
10050
+ * @return string|null Bundle public key.
10051
+ */
10052
+ function get_bundle_public_key() {
10053
+ return isset( $this->_plugin->bundle_public_key ) ?
10054
+ $this->_plugin->bundle_public_key :
10055
+ null;
10056
+ }
10057
+
10058
  /**
10059
  * @author Vova Feldman (@svovaf)
10060
  * @since 1.2.1.5
10077
  $this->_plugin->id;
10078
  }
10079
 
10080
+ /**
10081
+ * @author Vova Feldman (@svovaf)
10082
+ * @since 2.3.1
10083
+ *
10084
+ * @return string
10085
+ */
10086
+ function get_usage_tracking_terms_url() {
10087
+ return $this->apply_filters(
10088
+ 'usage_tracking_terms_url',
10089
+ "https://freemius.com/wordpress/usage-tracking/{$this->_plugin->id}/{$this->_slug}/"
10090
+ );
10091
+ }
10092
+
10093
+ /**
10094
+ * @author Vova Feldman (@svovaf)
10095
+ * @since 2.3.1
10096
+ *
10097
+ * @return string
10098
+ */
10099
+ function get_eula_url() {
10100
+ return $this->apply_filters(
10101
+ 'eula_url',
10102
+ "https://freemius.com/terms/{$this->_plugin->id}/{$this->_slug}/"
10103
+ );
10104
+ }
10105
+
10106
  /**
10107
  * @author Vova Feldman (@svovaf)
10108
  * @since 1.0.1
10202
  * @author Vova Feldman (@svovaf)
10203
  * @since 1.0.0
10204
  *
10205
+ * @param bool $reparse_plugin_metadata
10206
+ *
10207
  * @return string
10208
  */
10209
+ function get_plugin_version( $reparse_plugin_metadata = false ) {
10210
  $this->_logger->entrance();
10211
 
10212
+ $plugin_data = $this->get_plugin_data( $reparse_plugin_metadata );
10213
 
10214
  $this->_logger->departure( 'Version = ' . $plugin_data['Version'] );
10215
 
10334
  * @return array[number]FS_User
10335
  */
10336
  static function get_all_users() {
10337
+ $users = self::maybe_get_entities_account_option( 'users', array() );
10338
 
10339
  if ( ! is_array( $users ) ) {
10340
  $users = array();
10378
  $option_name = $module_type . '_' . $option_name;
10379
  }
10380
 
10381
+ return self::maybe_get_entities_account_option( $option_name, array(), $network_level_or_blog_id );
10382
  }
10383
 
10384
  /**
10426
  self::$_accounts->set_option( $option_name, $option_value, $store, $network_level_or_blog_id );
10427
  }
10428
 
10429
+ /**
10430
+ * This method can also return non-entity or non-entities collection option like the `user_id_license_ids_map` option.
10431
+ *
10432
+ * @author Leo Fajardo (@leorw)
10433
+ * @since 2.3.1
10434
+ *
10435
+ * @param string $option_name
10436
+ * @param mixed $default
10437
+ * @param null|bool|int $network_level_or_blog_id When an integer, use the given blog storage. When `true` use the multisite storage (if there's a network). When `false`, use the current context blog storage. When `null`, the decision which storage to use (MS vs. Current S) will be handled internally and determined based on the $option (based on self::$_SITE_LEVEL_PARAMS).
10438
+ *
10439
+ * @return mixed|FS_Plugin[]|FS_User[]|FS_Site[]|FS_Plugin_License[]|FS_Plugin_Plan[]|FS_Plugin_Tag[]
10440
+ */
10441
+ private static function maybe_get_entities_account_option( $option_name, $default = null, $network_level_or_blog_id = null ) {
10442
+ $option = self::$_accounts->get_option( $option_name, $default, $network_level_or_blog_id );
10443
+
10444
+ $class_name = '';
10445
+
10446
+ if ( fs_starts_with( $option_name, WP_FS__MODULE_TYPE_THEME . '_' ) ) {
10447
+ $option_name = str_replace( WP_FS__MODULE_TYPE_THEME . '_', '', $option_name );
10448
+ }
10449
+
10450
+ switch ( $option_name ) {
10451
+ case 'plugins':
10452
+ case 'themes':
10453
+ case 'addons':
10454
+ $class_name = FS_Plugin::get_class_name();
10455
+ break;
10456
+ case 'users':
10457
+ $class_name = FS_User::get_class_name();
10458
+ break;
10459
+ case 'sites':
10460
+ $class_name = FS_Site::get_class_name();
10461
+ break;
10462
+ case 'licenses':
10463
+ case 'all_licenses':
10464
+ $class_name = FS_Plugin_License::get_class_name();
10465
+ break;
10466
+ case 'plans':
10467
+ $class_name = FS_Plugin_Plan::get_class_name();
10468
+ break;
10469
+ case 'updates':
10470
+ $class_name = FS_Plugin_Tag::get_class_name();
10471
+ break;
10472
+ }
10473
+
10474
+ if ( empty( $class_name ) ) {
10475
+ return $option;
10476
+ }
10477
+
10478
+ return fs_get_entities( $option, $class_name );
10479
+ }
10480
+
10481
  /**
10482
  * @author Vova Feldman (@svovaf)
10483
  * @since 1.0.6
10661
  * @return FS_Plugin_Tag[]
10662
  */
10663
  private static function get_all_updates() {
10664
+ $updates = self::maybe_get_entities_account_option( 'updates', array() );
10665
 
10666
  if ( ! is_array( $updates ) ) {
10667
  $updates = array();
10677
  * @return array<number,FS_Plugin[]>|false
10678
  */
10679
  private static function get_all_addons() {
10680
+ $addons = self::maybe_get_entities_account_option( 'addons', array() );
10681
 
10682
  if ( ! is_array( $addons ) ) {
10683
  $addons = array();
10690
  * @author Vova Feldman (@svovaf)
10691
  * @since 1.0.6
10692
  *
10693
+ * @return number[]|false
10694
  */
10695
  private static function get_all_account_addons() {
10696
  $addons = self::$_accounts->get_option( 'account_addons', array() );
10731
  return ( is_object( $this->_site ) && $this->_site->is_tracking_allowed() );
10732
  }
10733
 
10734
+ /**
10735
+ * @author Leo Fajardo (@leorw)
10736
+ * @since 2.4.0
10737
+ *
10738
+ * @return bool
10739
+ */
10740
+ function is_bundle_license_auto_activation_enabled() {
10741
+ return $this->is_addon() ?
10742
+ ( is_object( $this->_parent ) && $this->_parent->is_bundle_license_auto_activation_enabled() ) :
10743
+ $this->_is_bundle_license_auto_activation_enabled;
10744
+ }
10745
+
10746
  /**
10747
  * @author Vova Feldman (@svovaf)
10748
  * @since 1.0.4
10803
  * @author Vova Feldman (@svovaf)
10804
  * @since 1.0.6
10805
  *
10806
+ * @return number[]|false
10807
  */
10808
  function get_account_addons() {
10809
  $this->_logger->entrance();
10947
 
10948
  if ( ! fs_is_network_admin() ) {
10949
  // Get blog-level activated installations.
10950
+ $sites = self::maybe_get_entities_account_option( 'sites', array() );
10951
  } else {
10952
  $sites = null;
10953
 
10956
  ) {
10957
  if ( FS_Site::is_valid_id( $addon_storage->network_install_blog_id ) ) {
10958
  // Get network-level activated installations.
10959
+ $sites = self::maybe_get_entities_account_option(
10960
  'sites',
10961
  array(),
10962
  $addon_storage->network_install_blog_id
10966
  }
10967
 
10968
  $addon_info = array(
10969
+ 'is_connected' => false,
10970
+ 'slug' => $slug,
10971
+ 'title' => $addon->title,
10972
+ 'is_whitelabeled' => $addon_storage->is_whitelabeled
10973
  );
10974
 
10975
  if ( ! $is_installed ) {
11015
 
11016
  $addon_info['site'] = $site;
11017
 
11018
+ $plugins_data = self::maybe_get_entities_account_option( WP_FS__MODULE_TYPE_PLUGIN . 's', array() );
11019
  if ( isset( $plugins_data[ $slug ] ) ) {
11020
  $plugin_data = $plugins_data[ $slug ];
11021
 
11022
  $addon_info['version'] = $plugin_data->version;
11023
  }
11024
 
11025
+ $all_plans = self::maybe_get_entities_account_option( 'plans', array() );
11026
  if ( isset( $all_plans[ $slug ] ) ) {
11027
  $plans = $all_plans[ $slug ];
11028
 
11035
  }
11036
  }
11037
 
11038
+ $licenses = self::maybe_get_entities_account_option( 'all_licenses', array() );
11039
  if ( is_array( $licenses ) && isset( $licenses[ $addon_id ] ) ) {
11040
  foreach ( $licenses[ $addon_id ] as $license ) {
11041
  if ( $license->id == $site->license_id ) {
11049
  if ( isset( $addon_storage->subscriptions ) &&
11050
  ! empty( $addon_storage->subscriptions )
11051
  ) {
11052
+ $addon_subscriptions = fs_get_entities( $addon_storage->subscriptions, FS_Subscription::get_class_name() );
11053
+
11054
+ foreach ( $addon_subscriptions as $subscription ) {
11055
  if ( $subscription->license_id == $site->license_id ) {
11056
  $addon_info['subscription'] = $subscription;
11057
  break;
11142
  function is_premium() {
11143
  /**
11144
  * `$this->_plugin` will be `false` when `is_activation_mode` calls this method directly from the
11145
+ * `register_constructor_hooks` method.
11146
  *
11147
  * @author Leo Fajardo (@leorw)
11148
  * @since 2.2.3
11239
  return false;
11240
  }
11241
 
11242
+ if ( ! $this->has_active_valid_license() ) {
11243
+ return false;
11244
+ }
11245
+
11246
+ if ( $this->_site->trial_plan_id != $this->_license->plan_id ) {
11247
+ return false;
11248
+ }
11249
+
11250
+ /**
11251
+ * @var FS_Subscription $subscription
11252
+ */
11253
+ $subscription = $this->_get_subscription( $this->_license->id );
11254
+
11255
+ return ( is_object( $subscription ) && $subscription->is_active() );
11256
  }
11257
 
11258
  /**
11387
  * @author Vova Feldman (@svovaf)
11388
  * @since 1.1.7.3
11389
  *
11390
+ * @param bool $including_foreign
11391
+ *
11392
  * @return bool
11393
  */
11394
+ function has_any_license( $including_foreign = true ) {
11395
+ if ( ! is_array( $this->_licenses ) || 0 === count( $this->_licenses ) ) {
11396
+ return false;
11397
+ }
11398
+
11399
+ if ( $including_foreign ) {
11400
+ return true;
11401
+ }
11402
+
11403
+ foreach ( $this->_licenses as $license ) {
11404
+ if ( $this->_user->id == $license->user_id ) {
11405
+ return true;
11406
+ }
11407
+ }
11408
+
11409
+ return false;
11410
  }
11411
 
11412
  /**
11552
 
11553
  if ( $license instanceof FS_Plugin_License ) {
11554
  $this->_licenses[] = $license;
11555
+
11556
+ $this->set_license( $license );
11557
+
11558
  $this->_store_licenses();
11559
 
11560
  return $license;
11779
 
11780
  // Update current license.
11781
  if ( is_object( $this->_license ) ) {
11782
+ $license = $this->_get_license_by_id( $this->_license->id );
11783
+
11784
+ if ( is_object( $license ) ) {
11785
+ /**
11786
+ * `$license` can be `false` in case a user change action has just been completed and this method
11787
+ * has synced the `$this->_licenses` collection for the new user. In this case, the
11788
+ * `$this->_licenses` collection may have only the newly activated license that is associated with
11789
+ * the new user. `set_license` will eventually be called in the same request by the logic that
11790
+ * follows outside this method which will detect that the install's license has been updated, and
11791
+ * then `_update_site_license` will be called which in turn will call `set_license`.
11792
+ *
11793
+ * @author Leo Fajardo (@leorw)
11794
+ * @since 2.3.2
11795
+ */
11796
+ $this->set_license( $license );
11797
+ }
11798
  }
11799
 
11800
  return $this->_licenses;
12138
  * Activate a given license on a collection of blogs/sites that are not yet opted-in.
12139
  *
12140
  * @author Vova Feldman (@svovaf)
12141
+ * @since 2.3.1
12142
  *
12143
  * @param \FS_User $user
12144
  * @param string $license_key
 
12145
  *
12146
  * @return true|mixed True if successful, otherwise, the API result.
12147
  */
12148
+ private function activate_license_on_site( FS_User $user, $license_key ) {
12149
+ return $this->activate_license_on_many_sites( $user, $license_key );
12150
+ }
12151
+
12152
+ /**
12153
+ * Activate a given license on a collection of blogs/sites that are not yet opted-in.
12154
+ *
12155
+ * @author Vova Feldman (@svovaf)
12156
+ * @since 2.0.0
12157
+ *
12158
+ * @param \FS_User $user
12159
+ * @param string $license_key
12160
+ * @param int[] $site_ids
12161
+ *
12162
+ * @return true|mixed True if successful, otherwise, the API result.
12163
+ */
12164
+ private function activate_license_on_many_sites(
12165
  FS_User $user,
12166
  $license_key,
12167
+ array $site_ids = array()
12168
  ) {
12169
  $sites = array();
12170
  foreach ( $site_ids as $site_id ) {
12188
  }
12189
 
12190
  $installs = array();
 
 
 
12191
 
12192
+ if ( $this->is_api_result_entity( $result ) ) {
12193
+ $install = new FS_Site( $result );
12194
 
12195
+ $this->_user = $user;
12196
 
12197
+ $this->_store_site( true, null, $install );
 
 
12198
 
12199
+ $this->_site = $install;
12200
 
12201
+ $this->reset_anonymous_mode();
12202
+ } else {
12203
+ foreach ( $result->installs as $install ) {
12204
+ $installs[] = new FS_Site( $install );
12205
+ }
12206
+
12207
+ // Map site addresses to their blog IDs.
12208
+ $address_to_blog_map = $this->get_address_to_blog_map();
12209
 
12210
+ $first_blog_id = null;
12211
+
12212
+ foreach ( $installs as $install ) {
12213
+ $address = trailingslashit( fs_strip_url_protocol( $install->url ) );
12214
+ $blog_id = $address_to_blog_map[ $address ];
12215
+
12216
+ $this->_store_site( true, $blog_id, $install );
12217
+
12218
+ $this->reset_anonymous_mode( $blog_id );
12219
+
12220
+ if ( is_null( $first_blog_id ) ) {
12221
+ $first_blog_id = $blog_id;
12222
+ }
12223
  }
 
12224
 
12225
+ if ( ! FS_Site::is_valid_id( $this->_storage->network_install_blog_id ) ) {
12226
+ $this->_storage->network_install_blog_id = $first_blog_id;
12227
+ }
12228
  }
12229
 
12230
  return true;
12243
  function _update_site_license( $new_license ) {
12244
  $this->_logger->entrance();
12245
 
12246
+ /**
12247
+ * In case this call will be removed in the future, the `_sync_licenses()` method needs to be updated
12248
+ * accordingly so that it will also handle the case when an ownership change is done via license
12249
+ * activation.
12250
+ *
12251
+ * @author Leo Fajardo (@leorw)
12252
+ * @since 2.3.2
12253
+ */
12254
+ $this->set_license( $new_license );
12255
 
12256
  if ( ! is_object( $new_license ) ) {
12257
  $this->_site->license_id = null;
12286
  return $this->_license;
12287
  }
12288
 
12289
+ /**
12290
+ * @author Vova Feldman (@svovaf)
12291
+ * @since 2.3.1
12292
+ *
12293
+ * @param \FS_Plugin_License $license
12294
+ */
12295
+ private function set_license( FS_Plugin_License $license = null ) {
12296
+ $this->_license = $license;
12297
+
12298
+ $this->maybe_update_whitelabel_flag( $license );
12299
+ }
12300
+
12301
+ /**
12302
+ * @author Leo Fajardo (@leorw)
12303
+ * @since 2.3.1
12304
+ *
12305
+ * @param FS_Plugin_License $license
12306
+ */
12307
+ private function maybe_update_whitelabel_flag( $license ) {
12308
+ $is_whitelabeled = isset( $this->_storage->is_whitelabeled ) ?
12309
+ $this->_storage->is_whitelabeled :
12310
+ false;
12311
+
12312
+ if ( is_object( $license ) ) {
12313
+ $license_user = self::_get_user_by_id( $license->user_id );
12314
+
12315
+ if ( ! is_object( $license_user ) ) {
12316
+ // If foreign license, do not update the `is_whitelabeled` flag.
12317
+ return;
12318
+ }
12319
+
12320
+ if ( $this->is_addon() ) {
12321
+ /**
12322
+ * Store the last license data to the parent's storage since it's needed only when showing the
12323
+ * "Start Debug" dialog which is triggered from the "Account" page. This way, there's no need to
12324
+ * iterate over the add-ons just to get the last license data.
12325
+ */
12326
+ $this->get_parent_instance()->store_last_activated_license_data( $license, $license_user );
12327
+ } else {
12328
+ $this->store_last_activated_license_data( $license );
12329
+ }
12330
+
12331
+ if ( $license->is_whitelabeled ) {
12332
+ // Activated a developer license, data should be hidden.
12333
+ $is_whitelabeled = true;
12334
+ } else if ( $this->is_registered() && $this->_user->id == $license->user_id ) {
12335
+ // The account owner activated a regular license key, no need to hide the data.
12336
+ $is_whitelabeled = false;
12337
+ }
12338
+ }
12339
+
12340
+ $this->_storage->is_whitelabeled = $is_whitelabeled;
12341
+
12342
+ // Reset the whitelabeled status after update.
12343
+ $this->is_whitelabeled = null;
12344
+ if ( $this->is_addon() ) {
12345
+ $parent_fs = $this->get_parent_instance();
12346
+
12347
+ if ( is_object( $parent_fs ) ) {
12348
+ $parent_fs->is_whitelabeled = null;
12349
+ }
12350
+ }
12351
+ }
12352
+
12353
+ /**
12354
+ * @author Leo Fajardo (@leorw)
12355
+ * @since 2.3.1
12356
+ *
12357
+ * @param FS_Plugin_License $license
12358
+ * @param FS_User $license_user
12359
+ */
12360
+ private function store_last_activated_license_data( FS_Plugin_License $license, $license_user = null ) {
12361
+ if ( ! is_object( $license_user ) ) {
12362
+ $this->_storage->last_license_key = md5( $license->secret_key );
12363
+ $this->_storage->last_license_user_id = null;
12364
+ } else {
12365
+ $this->_storage->last_license_user_key = md5( $license_user->secret_key );
12366
+ $this->_storage->last_license_user_id = $license_user->id;
12367
+ }
12368
+ }
12369
+
12370
+ /**
12371
+ * @author Leo Fajardo (@leorw)
12372
+ * @since 2.3.1
12373
+ *
12374
+ * @param bool $ignore_data_debug_mode
12375
+ *
12376
+ * @return bool
12377
+ */
12378
+ function is_whitelabeled_by_flag( $ignore_data_debug_mode = false ) {
12379
+ if ( true !== $this->_storage->is_whitelabeled ) {
12380
+ return false;
12381
+ } else if ( $ignore_data_debug_mode ) {
12382
+ return true;
12383
+ }
12384
+
12385
+ $fs = $this->is_addon() ?
12386
+ $this->get_parent_instance() :
12387
+ $this;
12388
+
12389
+ return ! $fs->is_data_debug_mode();
12390
+ }
12391
+
12392
+ /**
12393
+ * @author Leo Fajardo (@leorw)
12394
+ * @since 2.3.1
12395
+ *
12396
+ * @return number
12397
+ */
12398
+ function get_last_license_user_id() {
12399
+ return ( FS_User::is_valid_id( $this->_storage->last_license_user_id ) ) ?
12400
+ $this->_storage->last_license_user_id :
12401
+ null;
12402
+ }
12403
+
12404
+ /**
12405
+ * @author Leo Fajardo (@leorw)
12406
+ * @since 2.3.1
12407
+ *
12408
+ * @param int $blog_id
12409
+ * @param bool $ignore_data_debug_mode
12410
+ *
12411
+ * @return bool
12412
+ */
12413
+ function is_whitelabeled( $ignore_data_debug_mode = false, $blog_id = null ) {
12414
+ if ( ! is_null( $blog_id ) ) {
12415
+ $this->switch_to_blog( $blog_id );
12416
+ }
12417
+
12418
+ if ( ! is_null( $this->is_whitelabeled ) ) {
12419
+ $is_whitelabeled = $this->is_whitelabeled;
12420
+ } else {
12421
+ $is_whitelabeled = false;
12422
+
12423
+ $is_whitelabeled_flag = $this->is_whitelabeled_by_flag( true );
12424
+
12425
+ if ( ! $this->has_addons() ) {
12426
+ $is_whitelabeled = $is_whitelabeled_flag;
12427
+ } else if ( $is_whitelabeled_flag ) {
12428
+ $is_whitelabeled = true;
12429
+ } else {
12430
+ $addon_ids = $this->get_updated_account_addons();
12431
+ $installed_addons = $this->get_installed_addons();
12432
+ foreach ( $installed_addons as $fs_addon ) {
12433
+ $addon_ids[] = $fs_addon->get_id();
12434
+ }
12435
+
12436
+ if ( ! empty( $addon_ids ) ) {
12437
+ $addon_ids = array_unique( $addon_ids );
12438
+
12439
+ $is_network_level = (
12440
+ fs_is_network_admin() &&
12441
+ $this->is_network_active()
12442
+ );
12443
+
12444
+ foreach ( $addon_ids as $addon_id ) {
12445
+ $addon = $this->get_addon( $addon_id );
12446
+
12447
+ if ( ! is_object( $addon ) ) {
12448
+ continue;
12449
+ }
12450
+
12451
+ $addon_storage = FS_Storage::instance( WP_FS__MODULE_TYPE_PLUGIN, $addon->slug );
12452
+ $fs_addon = $this->is_addon_activated( $addon_id ) ?
12453
+ self::get_addon_instance( $addon_id ) :
12454
+ null;
12455
+
12456
+ $was_addon_network_activated = false;
12457
+
12458
+ if ( is_object( $fs_addon ) ) {
12459
+ $was_addon_network_activated = $fs_addon->is_network_active();
12460
+ } else if ( $is_network_level ) {
12461
+ $was_addon_network_activated = $addon_storage->get( 'was_plugin_loaded', false, true );
12462
+ }
12463
+
12464
+ $network_delegated_connection = (
12465
+ $was_addon_network_activated &&
12466
+ $addon_storage->get( 'is_delegated_connection', false, true )
12467
+ );
12468
+
12469
+ if (
12470
+ $is_network_level &&
12471
+ ( ! $was_addon_network_activated || $network_delegated_connection )
12472
+ ) {
12473
+ $sites = self::get_sites();
12474
+
12475
+ /**
12476
+ * If in network admin area and the add-on was not network-activated or network-activated
12477
+ * and network-delegated, find any add-on whose is_whitelabeled flag is true.
12478
+ */
12479
+ foreach ( $sites as $site ) {
12480
+ $site_info = $this->get_site_info( $site );
12481
+
12482
+ if ( $addon_storage->get( 'is_whitelabeled', false, $site_info['blog_id'] ) ) {
12483
+ $is_whitelabeled = true;
12484
+ break;
12485
+ }
12486
+ }
12487
+
12488
+ if ( $is_whitelabeled ) {
12489
+ break;
12490
+ }
12491
+ } else {
12492
+ /**
12493
+ * This will be executed when any of the following is met:
12494
+ * 1. Add-on was network-activated, not network-delegated, and in network admin area.
12495
+ * 2. Add-on was network-activated, network-delegated, and in site admin area.
12496
+ * 3. Add-on was not network-activated and in site admin area.
12497
+ */
12498
+ if ( true === $addon_storage->is_whitelabeled ) {
12499
+ $is_whitelabeled = true;
12500
+ break;
12501
+ }
12502
+ }
12503
+ }
12504
+ }
12505
+ }
12506
+
12507
+ $this->is_whitelabeled = $is_whitelabeled;
12508
+
12509
+ if ( ! $is_whitelabeled || ! $this->is_data_debug_mode() ) {
12510
+ $this->_admin_notices->remove_sticky( 'data_debug_mode_enabled' );
12511
+ }
12512
+
12513
+ if ( ! is_null( $blog_id ) ) {
12514
+ $this->restore_current_blog();
12515
+ }
12516
+ }
12517
+
12518
+ return (
12519
+ $is_whitelabeled &&
12520
+ ( $ignore_data_debug_mode || ! $this->is_data_debug_mode() )
12521
+ );
12522
+ }
12523
+
12524
  /**
12525
  * Sync site's subscription.
12526
  *
12578
  return null;
12579
  }
12580
 
12581
+ foreach ( fs_get_entities( $this->_storage->subscriptions, FS_Subscription::get_class_name() ) as $subscription ) {
12582
  if ( $subscription->license_id == $license_id ) {
12583
  return $subscription;
12584
  }
12604
  return;
12605
  }
12606
 
12607
+ $subscriptions = fs_get_entities( $this->_storage->subscriptions, FS_Subscription::get_class_name() );
12608
 
12609
  $updated_subscription = false;
12610
  foreach ( $subscriptions as $key => $existing_subscription ) {
12699
  }
12700
 
12701
  $current_plan_order = - 1;
12702
+ $required_plan_order = PHP_INT_MAX;
12703
  for ( $i = 0, $len = count( $this->_plans ); $i < $len; $i ++ ) {
12704
  if ( $plan === $this->_plans[ $i ]->name ) {
12705
  $required_plan_order = $i;
12717
  * @author Vova Feldman (@svovaf)
12718
  * @since 1.2.1.7
12719
  *
12720
+ * @param bool $double_check In some cases developers prefer to release their paid offering as premium-only, even though there is a free version. For those cases, looking at the 'is_premium_only' value isn't enough because the result will return false even when the product has only signle paid plan.
12721
+ *
12722
  * @return bool
12723
  */
12724
+ function is_single_plan( $double_check = false ) {
12725
  $this->_logger->entrance();
12726
 
12727
  if ( ! $this->is_registered() ||
12731
  return true;
12732
  }
12733
 
12734
+ $has_free_plan = $this->has_free_plan();
12735
+
12736
+ if ( ! $has_free_plan && $double_check ) {
12737
+ foreach ( $this->_plans as $plan ) {
12738
+ if ( $plan->is_free() ) {
12739
+ $has_free_plan = true;
12740
+ break;
12741
+ }
12742
+ }
12743
+ }
12744
+
12745
+ return ( 1 === ( count( $this->_plans ) - ( $has_free_plan ? 1 : 0 ) ) );
12746
  }
12747
 
12748
  /**
12856
  fs_require_template( 'forms/resend-key.php', $vars );
12857
  }
12858
 
12859
+ /**
12860
+ * Returns a collection of IDs of installs that are associated with the context product and its add-ons, and activated with foreign licenses.
12861
+ *
12862
+ * @author Leo Fajardo (@leorw)
12863
+ * @since 2.3.2
12864
+ *
12865
+ * @return number[]
12866
+ */
12867
+ function get_installs_ids_with_foreign_licenses() {
12868
+ $installs = array();
12869
+
12870
+ if (
12871
+ is_object( $this->_license ) &&
12872
+ $this->_site->user_id != $this->_license->user_id
12873
+ ) {
12874
+ $installs[] = $this->_site->id;
12875
+ }
12876
+
12877
+ /**
12878
+ * Also try to get foreign licenses for the context product's add-ons.
12879
+ */
12880
+ $installs_by_slug_map = $this->get_parent_and_addons_installs_info();
12881
+
12882
+ foreach ( $installs_by_slug_map as $slug => $install_info ) {
12883
+ if ( $slug == $this->get_slug() ) {
12884
+ continue;
12885
+ }
12886
+
12887
+ $install = $install_info['install'];
12888
+ $license = $install_info['license'];
12889
+
12890
+ if (
12891
+ is_object( $license ) &&
12892
+ $install->user_id != $license->user_id
12893
+ ) {
12894
+ $installs[] = $install->id;
12895
+ }
12896
+ }
12897
+
12898
+ return $installs;
12899
+ }
12900
+
12901
+ /**
12902
+ * Displays the "Change User" dialog box when the user clicks on the "Change User" button on the "Account" page.
12903
+ *
12904
+ * @author Leo Fajardo (@leorw)
12905
+ * @since 2.3.2
12906
+ *
12907
+ * @param number[] $install_ids
12908
+ */
12909
+ function _add_user_change_dialog_box( $install_ids ) {
12910
+ $vars = array(
12911
+ 'id' => $this->_module_id,
12912
+ 'license_owners' => $this->fetch_installs_licenses_owners_data( $install_ids )
12913
+ );
12914
+
12915
+ fs_require_template( 'forms/user-change.php', $vars );
12916
+ }
12917
+
12918
+ /**
12919
+ * @author Leo Fajardo (@leorw)
12920
+ * @since 2.3.1
12921
+ */
12922
+ function _add_data_debug_mode_dialog_box() {
12923
+ $vars = array(
12924
+ 'id' => $this->_module_id,
12925
+ );
12926
+
12927
+ fs_require_template( 'forms/data-debug-mode.php', $vars );
12928
+ }
12929
+
12930
  /**
12931
  * Displays a subscription cancellation dialog box when the user clicks on the "Deactivate License"
12932
  * link on the "Account" page or deactivates a plugin and there's an active subscription that is
12945
  // Subscription cancellation dialog box is currently not supported for multisite networks.
12946
  return array();
12947
  }
12948
+
12949
+ if ( $this->is_whitelabeled() ) {
12950
+ return array();
12951
+ }
12952
 
12953
  $license = $this->_get_license();
12954
 
13026
  * @since 1.2.0
13027
  */
13028
  function _add_license_activation() {
13029
+ if ( $this->is_migration() ) {
13030
+ return;
13031
+ }
13032
+
13033
  if ( ! $this->is_user_admin() ) {
13034
  // Only admins can activate a license.
13035
  return;
13040
  return;
13041
  }
13042
 
13043
+ if (
13044
+ $this->has_premium_version() &&
13045
+ ! $this->is_premium() &&
13046
+ /**
13047
+ * Also handle the case when an upgrade was made using the free version.
13048
+ *
13049
+ * @author Leo Fajardo (@leorw)
13050
+ * @since 2.3.2
13051
+ */
13052
+ ! is_object( $this->_get_license() )
13053
+ ) {
13054
+ // Only add license activation logic to the premium version, or in case of a serviceware plugin, also in the free version.
13055
  return;
13056
  }
13057
 
13077
  $this->add_ajax_action( 'resend_license_key', array( &$this, '_resend_license_key_ajax_action' ) );
13078
  }
13079
 
13080
+ /**
13081
+ * Prepares page to include all required UI and logic for the "Change User" dialog.
13082
+ *
13083
+ * @author Leo Fajardo (@leorw)
13084
+ * @since 2.3.2
13085
+ */
13086
+ function _add_user_change_option() {
13087
+ if ( ! $this->should_handle_user_change() ) {
13088
+ return;
13089
+ }
13090
+
13091
+ $installs_ids_with_foreign_licenses = $this->get_installs_ids_with_foreign_licenses();
13092
+
13093
+ if ( empty( $installs_ids_with_foreign_licenses ) ) {
13094
+ // Handle user change only when the parent product or one of its add-ons is activated with a foreign license.
13095
+ return;
13096
+ }
13097
+
13098
+ // Add user change AJAX handler.
13099
+ $this->add_ajax_action( 'change_user', array( &$this, '_user_change_ajax_action' ) );
13100
+ }
13101
+
13102
+ /**
13103
+ * @author Leo Fajardo (@leorw)
13104
+ * @since 2.3.2
13105
+ */
13106
+ function should_handle_user_change() {
13107
+ if ( ! $this->is_user_admin() ) {
13108
+ // Only admins can change user.
13109
+ return false;
13110
+ }
13111
+
13112
+ if ( $this->is_addon() ) {
13113
+ return false;
13114
+ }
13115
+
13116
+ if ( ! $this->is_registered() ) {
13117
+ return false;
13118
+ }
13119
+
13120
+ if (
13121
+ $this->is_network_active() &&
13122
+ ( fs_is_network_admin() || ! $this->is_site_delegated_connection() )
13123
+ ) {
13124
+ // Handle only on site-level "Account" section for now.
13125
+ return false;
13126
+ }
13127
+
13128
+ return true;
13129
+ }
13130
+
13131
  /**
13132
  * @author Leo Fajardo (@leorw)
13133
  * @since 2.0.2
13147
  }
13148
  }
13149
 
13150
+ /**
13151
+ * @author Edgar Melkonyan
13152
+ * @since 2.4.1
13153
+ *
13154
+ * @throws Freemius_Exception
13155
+ */
13156
+ function _toggle_whitelabel_mode_ajax_handler() {
13157
+ $this->_logger->entrance();
13158
+
13159
+ $this->check_ajax_referer( 'toggle_whitelabel_mode' );
13160
+
13161
+ if ( ! $this->is_user_admin() ) {
13162
+ // Only for admins.
13163
+ self::shoot_ajax_failure();
13164
+ }
13165
+
13166
+ $license = $this->get_api_user_scope()->call(
13167
+ "/licenses/{$this->_site->license_id}.json",
13168
+ 'put',
13169
+ array( 'is_whitelabeled' => ! $this->_license->is_whitelabeled )
13170
+ );
13171
+
13172
+ if ( ! $this->is_api_result_entity( $license ) ) {
13173
+ self::shoot_ajax_failure(
13174
+ FS_Api::is_api_error_object( $license ) ?
13175
+ $license->error->message :
13176
+ fs_text_inline( "An unknown error has occurred while trying to toggle the license's white-label mode.", 'unknown-error-occurred', $this->get_slug() )
13177
+ );
13178
+ }
13179
+
13180
+ $this->_license->is_whitelabeled = $license->is_whitelabeled;
13181
+ $this->_store_licenses();
13182
+
13183
+ $this->_sync_license();
13184
+
13185
+ if ( ! $license->is_whitelabeled ) {
13186
+ $this->_admin_notices->remove_sticky( 'license_whitelabeled' );
13187
+ } else {
13188
+ $this->_admin_notices->add_sticky(
13189
+ sprintf(
13190
+ $this->get_text_inline(
13191
+ 'Your %s license was flagged as white-labeled to hide sensitive information from the WP Admin (e.g. your email, license key, prices, billing address & invoices). If you ever wish to revert it back, you can easily do it through your %s. If this was a mistake you can also %s.',
13192
+ 'license_whitelabeled'
13193
+ ),
13194
+ "<strong>{$this->get_plugin_title()}</strong>",
13195
+ sprintf( '<a href="https://users.freemius.com" target="_blank">%s</a>', $this->get_text_inline( 'User Dashboard', 'user-dashboard' ) ),
13196
+ sprintf( '<a href="#" class="fs-toggle-whitelabel-mode">%s</a>', $this->get_text_inline( 'revert it now', 'revert-it-now' ) )
13197
+ ),
13198
+ 'license_whitelabeled'
13199
+ );
13200
+ }
13201
+
13202
+ self::shoot_ajax_response( array( 'success' => true ) );
13203
+ }
13204
+
13205
  /**
13206
  * @author Leo Fajardo (@leorw)
13207
  * @since 2.3.0
13281
  exit;
13282
  }
13283
 
13284
+ $sites = fs_is_network_admin() ?
13285
+ fs_request_get( 'sites', array(), 'post' ) :
13286
+ array();
13287
+
13288
+ $result = $this->activate_license(
13289
+ $license_key,
13290
+ $sites,
13291
+ fs_request_get_bool( 'is_marketing_allowed', null ),
13292
+ fs_request_get( 'blog_id', null ),
13293
+ fs_request_get( 'module_id', null, 'post' ),
13294
+ fs_request_get( 'user_id', null ),
13295
+ fs_request_get_bool( 'is_extensions_tracking_allowed', true )
13296
+ );
13297
+
13298
+ if (
13299
+ $result['success'] &&
13300
+ $this->is_bundle_license_auto_activation_enabled()
13301
+ ) {
13302
+ $license = new FS_Plugin_License();
13303
+ $license->secret_key = $license_key;
13304
+
13305
+ $this->maybe_activate_bundle_license( $license, $sites );
13306
+ }
13307
+
13308
+ echo json_encode( $result );
13309
+
13310
+ exit;
13311
+ }
13312
+
13313
+ /**
13314
+ * User change WP AJAX handler.
13315
+ *
13316
+ * @author Leo Fajardo (@leorw)
13317
+ * @since 2.3.2
13318
+ */
13319
+ function _user_change_ajax_action() {
13320
+ $this->_logger->entrance();
13321
+
13322
+ $this->check_ajax_referer( 'change_user' );
13323
+
13324
+ $new_email_address = trim( fs_request_get( 'email_address', '' ) );
13325
+ $new_user_id = fs_request_get( 'user_id' );
13326
+
13327
+ if ( empty( $new_email_address ) && ! FS_User::is_valid_id( $new_user_id ) ) {
13328
+ self::shoot_ajax_failure( fs_text_inline( 'Invalid new user ID or email address.', 'invalid-new-user-id-or-email', $this->get_slug() ) );
13329
+ }
13330
+
13331
+ $params = array();
13332
+
13333
+ if ( ! empty( $new_email_address ) ) {
13334
+ $params['user_email'] = $new_email_address;
13335
+ } else {
13336
+ $params['user_id'] = $new_user_id;
13337
+ }
13338
+
13339
+ $installs_info_by_slug_map = $this->get_parent_and_addons_installs_info();
13340
+ $install_ids = array();
13341
+
13342
+ foreach ( $installs_info_by_slug_map as $slug => $install_info ) {
13343
+ $install_ids[ $slug ] = $install_info['install']->id;
13344
+ }
13345
+
13346
+ $params['install_ids'] = implode( ',', array_values( $install_ids ) );
13347
+
13348
+ $install = $this->get_api_site_scope()->call( $this->add_show_pending( '/' ), 'put', $params );
13349
+
13350
+ if ( FS_Api::is_api_error( $install ) ) {
13351
+ $error = '';
13352
+
13353
+ if ( is_object( $install ) ) {
13354
+ switch ( $install->error->code ) {
13355
+ case 'user_exist':
13356
+ $error = (
13357
+ $this->get_text_x_inline( 'Oops', 'exclamation', 'oops' ) . '...' .
13358
+ $this->get_text_inline( 'Sorry, we could not complete the email update. Another user with the same email is already registered.', 'user-exist-message' ) . ' ' .
13359
+ sprintf( $this->get_text_inline( 'If you would like to give up the ownership of the %s\'s account to %s click the Change Ownership button.', 'user-exist-message_ownership' ), $this->_module_type, '<b>' . $new_email_address . '</b>' ) .
13360
+ sprintf(
13361
+ '<a style="line-height: 40px;" href="%s"><button class="button button-primary">%s &nbsp;&#10140;</button></a>',
13362
+ $this->get_account_url( 'change_owner', array(
13363
+ 'state' => 'init',
13364
+ 'candidate_email' => $new_email_address
13365
+ ) ),
13366
+ $this->get_text_inline( 'Change Ownership', 'change-ownership' )
13367
+ )
13368
+ );
13369
+ break;
13370
+ }
13371
+ }
13372
+
13373
+ if ( empty( $error ) ) {
13374
+ $error = FS_Api::is_api_error_object( $install ) ?
13375
+ $install->error->message :
13376
+ var_export( $install->error, true );
13377
+ }
13378
+
13379
+ self::shoot_ajax_failure( $error );
13380
+ } else {
13381
+ if (
13382
+ // If successful ownership change.
13383
+ $this->get_user()->id != $install->user_id ||
13384
+ ! empty( $new_email_address )
13385
+ ) {
13386
+ $this->complete_ownership_change_by_license( $install->user_id, $install_ids );
13387
+ }
13388
+ }
13389
+
13390
+ self::shoot_ajax_success();
13391
+ }
13392
+
13393
+ /**
13394
+ * @author Leo Fajardo (@leorw)
13395
+ * @since 2.3.2.14
13396
+ */
13397
+ function starting_migration() {
13398
+ if ( ! empty( $this->_storage->license_migration ) ) {
13399
+ // Do not overwrite the data if already set.
13400
+ return;
13401
+ }
13402
+
13403
+ $this->_storage->license_migration = array(
13404
+ 'is_migrating' => true,
13405
+ 'start_timestamp' => time()
13406
+ );
13407
+ }
13408
+
13409
+ /**
13410
+ * @author Leo Fajardo (@leorw)
13411
+ * @since 2.3.2.14
13412
+ */
13413
+ function is_migration() {
13414
+ if ( $this->is_addon() ) {
13415
+ return $this->get_parent_instance()->is_migration();
13416
+ }
13417
+
13418
+ if ( empty( $this->_storage->license_migration ) ) {
13419
+ return false;
13420
+ }
13421
+
13422
+ if ( ! $this->_storage->license_migration['is_migrating'] ) {
13423
+ return false;
13424
+ }
13425
+
13426
+ return (
13427
+ // Return `true` if the migration is within 5 minutes from the starting time.
13428
+ ( time() - $this->_storage->license_migration['start_timestamp'] ) <= WP_FS__TIME_5_MIN_IN_SEC
13429
  );
 
 
 
 
13430
  }
13431
 
13432
  /**
13433
+ *
13434
  * A helper method to activate migrated licenses. If the product is network activated and integrated, the method will network activate the license.
13435
  *
13436
  * @author Vova Feldman (@svovaf)
13439
  * @param string $license_key
13440
  * @param null|bool $is_marketing_allowed
13441
  * @param null|number $plugin_id
13442
+ * @param array $sites
13443
+ * @param int $blog_id
13444
  *
13445
  * @return array {
13446
  * @var bool $success
13453
  function activate_migrated_license(
13454
  $license_key,
13455
  $is_marketing_allowed = null,
13456
+ $plugin_id = null,
13457
+ $sites = array(),
13458
+ $blog_id = null
13459
  ) {
13460
+ $this->_logger->entrance();
13461
+
13462
+ $result = $this->activate_license(
13463
  $license_key,
13464
+ ( empty( $sites ) && is_null( $blog_id ) && $this->is_network_active() ) ?
13465
  $this->get_sites_for_network_level_optin() :
13466
+ $sites,
13467
  $is_marketing_allowed,
13468
+ $blog_id,
13469
  $plugin_id
13470
  );
13471
+
13472
+ // No need to show the sticky after license activation notice after migrating a license.
13473
+ $this->_admin_notices->remove_sticky( 'plan_upgraded' );
13474
+
13475
+ return $result;
13476
+ }
13477
+
13478
+ /**
13479
+ * @author Leo Fajardo (@leorw)
13480
+ * @since 2.3.1
13481
+ *
13482
+ * @return string
13483
+ */
13484
+ function get_pricing_js_path() {
13485
+ return $this->apply_filters( 'freemius_pricing_js_path', WP_FS__DIR_INCLUDES . '/freemius-pricing/freemius-pricing.js' );
13486
+ }
13487
+
13488
+ /**
13489
+ * @author Leo Fajardo (@leorw)
13490
+ * @since 2.3.1
13491
+ *
13492
+ * @return bool
13493
+ */
13494
+ function should_use_external_pricing() {
13495
+ if ( is_null( $this->_use_external_pricing ) ) {
13496
+ $pricing_js_path = $this->get_pricing_js_path();
13497
+
13498
+ $this->_use_external_pricing = ( empty( $pricing_js_path ) || ! file_exists( $pricing_js_path ) );
13499
+ }
13500
+
13501
+ return $this->_use_external_pricing;
13502
  }
13503
 
13504
  /**
13512
  * @param null|bool $is_marketing_allowed
13513
  * @param null|int $blog_id
13514
  * @param null|number $plugin_id
13515
+ * @param null|number $license_owner_id
13516
  *
13517
  * @return array {
13518
  * @var bool $success
13525
  $sites = array(),
13526
  $is_marketing_allowed = null,
13527
  $blog_id = null,
13528
+ $plugin_id = null,
13529
+ $license_owner_id = null,
13530
+ $is_extensions_tracking_allowed = true
13531
  ) {
13532
  $this->_logger->entrance();
13533
 
13534
  $license_key = trim( $license_key );
13535
 
13536
+ $is_network_activation_or_migration = (
13537
+ fs_is_network_admin() ||
13538
+ ( ! empty( $sites ) && $this->is_migration() )
13539
+ );
13540
+
13541
+ if ( ! $is_network_activation_or_migration ) {
13542
  // If the license activation is executed outside the context of a network admin, ignore the sites collection.
13543
  $sites = array();
13544
  }
13547
  $this :
13548
  $this->get_addon_instance( $plugin_id );
13549
 
13550
+ $this->update_extensions_tracking_flag( $is_extensions_tracking_allowed );
13551
+
13552
  $error = false;
13553
  $next_page = false;
13554
 
13555
  $has_valid_blog_id = is_numeric( $blog_id );
13556
 
13557
+ $user = null;
13558
+
13559
+ if ( $fs->is_addon() && $fs->get_parent_instance()->is_registered() ) {
13560
+ /**
13561
+ * When activating an add-on's license and the parent is opted-in, activate the license with the parent's opted-in user context.
13562
+ *
13563
+ * @author Vova Feldman (@svovaf)
13564
+ */
13565
+ $user = $fs->get_parent_instance()->get_current_or_network_user();
13566
+ } else if ( $fs->is_registered() ) {
13567
+ $user = $fs->get_current_or_network_user();
13568
+ }
13569
+
13570
+ if ( $has_valid_blog_id ) {
13571
+ /**
13572
+ * If a specific blog ID was provided, activate the license only on the specific blog that is associated with the given blog ID.
13573
+ *
13574
+ * @author Leo Fajardo (@leorw)
13575
+ */
13576
+ $fs->switch_to_blog( $blog_id );
13577
+ }
13578
+
13579
+ if ( is_object( $user ) ) {
13580
+ if ( $is_network_activation_or_migration && ! $has_valid_blog_id ) {
13581
  // If no specific blog ID was provided, activate the license for all sites in the network.
13582
  $blog_2_install_map = array();
13583
  $site_ids = array();
13587
  continue;
13588
  }
13589
 
13590
+ $install = $fs->get_install_by_blog_id( $site['blog_id'] );
13591
 
13592
  if ( is_object( $install ) ) {
13593
  $blog_2_install_map[ $site['blog_id'] ] = $install;
13596
  }
13597
  }
13598
 
 
 
13599
  if ( ! empty( $blog_2_install_map ) ) {
13600
+ $result = $fs->activate_license_on_many_installs( $user, $license_key, $blog_2_install_map );
13601
 
13602
  if ( true !== $result ) {
13603
  $error = FS_Api::is_api_error_object( $result ) ?
13607
  }
13608
 
13609
  if ( empty( $error ) && ! empty( $site_ids ) ) {
13610
+ $result = $fs->activate_license_on_many_sites( $user, $license_key, $site_ids );
13611
 
13612
  if ( true !== $result ) {
13613
  $error = FS_Api::is_api_error_object( $result ) ?
13616
  }
13617
  }
13618
  } else {
13619
+ if ( $fs->is_registered() ) {
13620
+ $params = array(
13621
+ 'license_key' => $fs->apply_filters( 'license_key', $license_key )
13622
+ );
 
 
 
 
 
13623
 
13624
+ $install_ids = array();
13625
 
13626
+ $change_owner = FS_User::is_valid_id( $license_owner_id );
 
 
13627
 
13628
+ if ( $change_owner ) {
13629
+ $params['user_id'] = $license_owner_id;
13630
 
13631
+ $installs_info_by_slug_map = $fs->get_parent_and_addons_installs_info();
13632
+
13633
+ foreach ( $installs_info_by_slug_map as $slug => $install_info ) {
13634
+ $install_ids[ $slug ] = $install_info['install']->id;
13635
+ }
13636
+
13637
+ $params['install_ids'] = implode( ',', array_values( $install_ids ) );
13638
+ }
13639
+
13640
+ $api = $fs->get_api_site_scope();
13641
+
13642
+ $install = $api->call( $fs->add_show_pending( '/' ), 'put', $params );
13643
+
13644
+ if ( FS_Api::is_api_error( $install ) ) {
13645
+ $error = FS_Api::is_api_error_object( $install ) ?
13646
+ $install->error->message :
13647
+ var_export( $install->error, true );
13648
+ } else {
13649
+ $fs->reconnect_locally( $has_valid_blog_id );
13650
+
13651
+ if (
13652
+ $change_owner &&
13653
+ // If successful ownership change.
13654
+ $fs->get_user()->id != $install->user_id
13655
+ ) {
13656
+ $fs->complete_ownership_change_by_license( $install->user_id, $install_ids );
13657
+ }
13658
+ }
13659
+ } else /* ( $fs->is_addon() && $fs->get_parent_instance()->is_registered() ) */ {
13660
+ $result = $fs->activate_license_on_site( $user, $license_key );
13661
+
13662
+ if ( true !== $result ) {
13663
+ $error = FS_Api::is_api_error_object( $result ) ?
13664
+ $result->error->message :
13665
+ var_export( $result, true );
13666
+ }
13667
  }
13668
  }
13669
 
13670
  if ( empty( $error ) ) {
13671
+ $fs->network_upgrade_mode_completed();
13672
+
13673
+ $fs->_user = $user;
13674
+
13675
+ if ( fs_is_network_admin() && ! $has_valid_blog_id ) {
13676
+ $fs->_site = $fs->get_network_install();
13677
+ }
13678
 
13679
  $fs->_sync_license( true, $has_valid_blog_id );
13680
 
13681
+ $this->maybe_sync_install_user();
13682
+
13683
  $next_page = $fs->is_addon() ?
13684
  $fs->get_parent_instance()->get_account_url() :
13685
+ $fs->get_after_activation_url( 'after_connect_url' );
13686
  }
13687
  } else {
13688
  $next_page = $fs->opt_in(
13700
  if ( isset( $next_page->error ) ) {
13701
  $error = $next_page->error;
13702
  } else {
13703
+ if ( $is_network_activation_or_migration ) {
13704
  /**
13705
  * Get the list of sites that were just opted-in (and license activated).
13706
  * This is an optimization for the next part below saving some DB queries.
13728
  continue;
13729
  }
13730
 
13731
+ if ( $fs->is_installed_on_site( $blog_id ) ) {
13732
  // Site was already connected before.
13733
  continue;
13734
  }
13735
 
13736
+ if ( $fs->is_site_delegated_connection( $blog_id ) ) {
13737
  // Site's connection was delegated.
13738
  continue;
13739
  }
13740
 
13741
+ if ( $fs->is_anonymous_site( $blog_id ) ) {
13742
  // Site connection was already skipped.
13743
  continue;
13744
  }
13747
  }
13748
 
13749
  if ( ! empty( $pending_sites ) ) {
13750
+ if ( $fs->is_freemium() && $fs->is_enable_anonymous() ) {
13751
+ $fs->skip_connection( $pending_sites );
13752
  } else {
13753
+ $fs->delegate_connection( $pending_sites );
13754
  }
13755
  }
13756
  }
13757
  }
13758
  }
13759
 
13760
+ if ( false === $error && true === $fs->_storage->require_license_activation ) {
13761
+ $fs->_storage->require_license_activation = false;
13762
  }
13763
 
13764
  $result = array(
13766
  );
13767
 
13768
  if ( false !== $error ) {
13769
+ $result['error'] = $fs->apply_filters( 'opt_in_error_message', $error );
13770
  } else {
13771
+ if ( $fs->is_addon() || $fs->has_addons() ) {
13772
  /**
13773
  * Purge the valid user licenses cache so that when the "Account" or the "Add-Ons" page is loaded,
13774
  * an updated valid user licenses collection will be fetched from the server which is used to also
13777
  * @author Leo Fajardo (@leorw)
13778
  * @since 2.2.4
13779
  */
13780
+ $fs->purge_valid_user_licenses_cache();
13781
  }
13782
 
13783
  $result['next_page'] = $next_page;
13786
  return $result;
13787
  }
13788
 
13789
+ /**
13790
+ * @author Leo Fajardo (@leorw)
13791
+ * @since 2.3.2
13792
+ *
13793
+ * @return array {
13794
+ * @key string Product slug.
13795
+ * @value array {
13796
+ * @property FS_Site $site
13797
+ * @property FS_Plugin_License $license
13798
+ * }
13799
+ * }
13800
+ */
13801
+ private function get_parent_and_addons_installs_info() {
13802
+ $fs = $this->is_addon() ?
13803
+ $this->get_parent_instance() :
13804
+ $this;
13805
+
13806
+ $installed_addons_ids = array();
13807
+
13808
+ $installed_addons_instances = $fs->get_installed_addons();
13809
+ foreach ( $installed_addons_instances as $instance ) {
13810
+ $installed_addons_ids[] = $instance->get_id();
13811
+ }
13812
+
13813
+ $addons_ids = array_unique( array_merge(
13814
+ $installed_addons_ids,
13815
+ $fs->get_updated_account_addons()
13816
+ ) );
13817
+
13818
+ // Add parent product info.
13819
+ $installs_info_by_slug_map = array(
13820
+ $fs->get_slug() => array(
13821
+ 'install' => $fs->get_site(),
13822
+ 'license' => $fs->_get_license()
13823
+ )
13824
+ );
13825
+
13826
+ foreach ( $addons_ids as $addon_id ) {
13827
+ $is_installed = isset( $installed_addons_ids_map[ $addon_id ] );
13828
+
13829
+ $addon_info = $fs->_get_addon_info( $addon_id, $is_installed );
13830
+
13831
+ if ( ! $addon_info['is_connected'] ) {
13832
+ // Add-on is not associated with an install entity.
13833
+ continue;
13834
+ }
13835
+
13836
+ $installs_info_by_slug_map[ $addon_info['slug'] ] = array(
13837
+ 'install' => $addon_info['site'],
13838
+ 'license' => isset( $addon_info['license'] ) ?
13839
+ $addon_info['license'] :
13840
+ null
13841
+ );
13842
+ }
13843
+
13844
+ return $installs_info_by_slug_map;
13845
+ }
13846
+
13847
  /**
13848
  * @author Leo Fajardo (@leorw)
13849
  * @since 1.2.3.1
14814
  * @return bool
14815
  */
14816
  function is_user_in_admin() {
14817
+ return (
14818
+ is_admin() &&
14819
+ ! self::is_ajax() &&
14820
+ ! self::is_cron() &&
14821
+ ( 'admin-post.php' !== self::get_current_page() )
14822
+ );
14823
  }
14824
 
14825
  /**
14875
  $page_param = $this->_menu->get_slug( $page );
14876
 
14877
  if ( empty( $page ) &&
 
14878
  // Show the opt-in as an overlay for free wp.org themes or themes without any settings page.
14879
+ $this->show_opt_in_on_themes_page()
14880
  ) {
14881
  $params[ $this->get_unique_affix() . '_show_optin' ] = 'true';
14882
 
15131
  if ( function_exists( 'get_sites' ) ) {
15132
  // For WP 4.6 and above.
15133
  return get_sites( $args );
15134
+ } else if ( function_exists( 'wp_' . 'get_sites' ) ) {
15135
  // For WP 3.7 to WP 4.5.
15136
+ /**
15137
+ * This is a hack suggested previously proposed by the TRT. Our SDK is compliant with older WP versions and we'd like to keep it that way.
15138
+ *
15139
+ * @todo Remove this hack once this false-positive error is removed from the Theme Sniffer.
15140
+ *
15141
+ * @since 2.3.3
15142
+ * @author Vova Feldman (@svovaf)
15143
+ */
15144
+ $fn = 'wp_' . 'get_sites';
15145
+ return $fn( $args );
15146
  } else {
15147
  // For WP 3.6 and below.
15148
  return get_blog_list( 0, 'all' );
15315
  *
15316
  * @param int $blog_id
15317
  * @param FS_Site $install
15318
+ *
15319
+ * @return bool Since 2.3.1 returns if a switch was made.
15320
  */
15321
  function switch_to_blog( $blog_id, FS_Site $install = null ) {
15322
+ if ( ! is_numeric( $blog_id ) || $blog_id == $this->_context_is_network_or_blog_id ) {
15323
+ return false;
15324
  }
15325
 
15326
  switch_to_blog( $blog_id );
15334
  $install :
15335
  $this->get_install_by_blog_id( $blog_id );
15336
 
15337
+ $this->_user = false;
15338
+ $this->_licenses = false;
15339
+ $this->_license = null;
15340
+ $this->is_whitelabeled = null;
15341
 
15342
  if ( is_object( $this->_site ) ) {
15343
  // Try to fetch user from install.
15382
 
15383
  unset( $this->_site_api );
15384
  unset( $this->_user_api );
15385
+
15386
+ return false;
15387
  }
15388
 
15389
  /**
15829
  return ( $this->_menu->get_slug( $page ) === fs_request_get( 'page', '', 'get' ) );
15830
  }
15831
 
15832
+ /**
15833
+ * Check if currently in the product's main admin page.
15834
+ *
15835
+ * @author Vova Feldman (@svovaf)
15836
+ * @since 2.3.1
15837
+ *
15838
+ * @return bool
15839
+ */
15840
+ function is_main_admin_page() {
15841
+ return $this->is_admin_page( '' );
15842
+ }
15843
+
15844
  /**
15845
  * Get module's main admin setting page URL.
15846
  *
15861
  * @since 1.2.2.7
15862
  *
15863
  * @return bool
15864
+ *
15865
+ * @deprecated Please use is_product_settings_page() instead;
15866
  */
15867
  function is_theme_settings_page() {
15868
+ return $this->is_product_settings_page();
15869
+ }
15870
+
15871
+ /**
15872
+ * Check if currently on the product's main setting page or on any of the Freemius added pages (via tabs).
15873
+ *
15874
+ * @author Vova Feldman (@svovaf)
15875
+ * @since 1.2.2.7
15876
+ *
15877
+ * @return bool
15878
+ */
15879
+ function is_product_settings_page() {
15880
  return fs_starts_with(
15881
  fs_request_get( 'page', '', 'get' ),
15882
  $this->_menu->get_slug()
16296
  /**
16297
  * This is a special fault tolerance mechanism to handle a scenario that the user data is missing.
16298
  */
16299
+ $user = $this->sync_user_by_current_install();
16300
  }
16301
 
16302
  $this->_user = ( $user instanceof FS_User ) ?
16336
  * @author Vova Feldman (@svovaf)
16337
  * @since 2.0.0
16338
  *
16339
+ * @param number|null $site_user_id
16340
+ *
16341
  * @return \FS_User|mixed
16342
  */
16343
+ private function sync_user_by_current_install( $site_user_id = null ) {
16344
+ $site_user_id = FS_Site::is_valid_id( $site_user_id ) ?
16345
+ $site_user_id :
16346
+ $this->_site->user_id;
16347
+
16348
  $api = $this->get_api_site_scope();
16349
 
16350
  $uid = $this->get_anonymous_id();
16351
+ $request_path = "/users/{$site_user_id}.json?uid={$uid}";
16352
 
16353
  $result = $api->get( $request_path, false, WP_FS__TIME_10_MIN_IN_SEC );
16354
 
16504
  'is_uninstalled' => false,
16505
  ) );
16506
 
16507
+ if ( $this->is_addon() ) {
16508
+ $parent_fs = $this->get_parent_instance();
16509
+
16510
+ $params['parent_plugin_slug'] = $parent_fs->_slug;
16511
+ $params['parent_plugin_id'] = $parent_fs->get_id();
16512
+ }
16513
+
16514
  if ( true === $network_level_or_blog_id ) {
16515
  if ( ! isset( $override_with['sites'] ) ) {
16516
  $params['sites'] = $this->get_sites_for_network_level_optin();
16606
  if ( ! $is_uninstall ) {
16607
  $fs_user = Freemius::_get_user_by_email( $email );
16608
  if ( is_object( $fs_user ) && ! $this->is_pending_activation() ) {
16609
+ return $this->install_with_user(
16610
+ $fs_user,
16611
  false,
16612
  $trial_plan_id,
16613
+ true,
16614
+ true,
16615
  $sites
16616
  );
16617
  }
16706
  'http' => 402
16707
  );
16708
 
16709
+ $this->maybe_modify_api_curl_error_message( $result );
16710
+
16711
  return $result;
16712
  }
16713
 
16780
  ( isset( $decoded->is_marketing_allowed ) && ! is_null( $decoded->is_marketing_allowed ) ?
16781
  $decoded->is_marketing_allowed :
16782
  null ),
16783
+ ( isset( $decoded->is_extensions_tracking_allowed ) && ! is_null( $decoded->is_extensions_tracking_allowed ) ?
16784
+ $decoded->is_extensions_tracking_allowed :
16785
+ null ),
16786
  $decoded->install_id,
16787
  $decoded->install_public_key,
16788
  $decoded->install_secret_key,
16796
  ( isset( $decoded->is_marketing_allowed ) && ! is_null( $decoded->is_marketing_allowed ) ?
16797
  $decoded->is_marketing_allowed :
16798
  null ),
16799
+ ( isset( $decoded->is_extensions_tracking_allowed ) && ! is_null( $decoded->is_extensions_tracking_allowed ) ?
16800
+ $decoded->is_extensions_tracking_allowed :
16801
+ null ),
16802
  $decoded->installs,
16803
  false
16804
  );
16890
  );
16891
 
16892
  if ( is_numeric( $first_install->license_id ) ) {
16893
+ $this->set_license( $this->_get_license_by_id( $first_install->license_id ) );
16894
  }
16895
 
16896
  $this->_admin_notices->remove_sticky( 'connect_account' );
17025
  fs_request_get( 'user_public_key' ),
17026
  fs_request_get( 'user_secret_key' ),
17027
  fs_request_get_bool( 'is_marketing_allowed', null ),
17028
+ fs_request_get_bool( 'is_extensions_tracking_allowed', null ),
17029
  $pending_sites_info['blog_ids'],
17030
  $pending_sites_info['license_key'],
17031
  $pending_sites_info['trial_plan_id']
17036
  fs_request_get( 'user_public_key' ),
17037
  fs_request_get( 'user_secret_key' ),
17038
  fs_request_get_bool( 'is_marketing_allowed', null ),
17039
+ fs_request_get_bool( 'is_extensions_tracking_allowed', null ),
17040
  fs_request_get( 'install_id' ),
17041
  fs_request_get( 'install_public_key' ),
17042
  fs_request_get( 'install_secret_key' ),
17092
  * @param string $user_public_key
17093
  * @param string $user_secret_key
17094
  * @param bool|null $is_marketing_allowed
17095
+ * @param bool|null $is_extensions_tracking_allowed Since 2.3.2
17096
  * @param number $install_id
17097
  * @param string $install_public_key
17098
  * @param string $install_secret_key
17099
  * @param bool $redirect
17100
+ * @param bool $auto_install Since 1.2.1.7 If `true` and setting up an account with a valid license, will redirect (or return a URL) to the account page with a special parameter to trigger the auto installation processes.
 
 
17101
  *
17102
  * @return string If redirect is `false`, returns the next page the user should be redirected to.
17103
  */
17106
  $user_public_key,
17107
  $user_secret_key,
17108
  $is_marketing_allowed,
17109
+ $is_extensions_tracking_allowed,
17110
  $install_id,
17111
  $install_public_key,
17112
  $install_secret_key,
17148
  $this->disable_opt_in_notice_and_lock_user();
17149
  }
17150
 
17151
+ if ( ! is_null( $is_extensions_tracking_allowed ) ) {
17152
+ $this->update_extensions_tracking_flag( $is_extensions_tracking_allowed );
17153
+ }
17154
+
17155
  return $this->setup_account(
17156
  $this->_user,
17157
  $this->_site,
17170
  * @param string $user_public_key
17171
  * @param string $user_secret_key
17172
  * @param bool|null $is_marketing_allowed
17173
+ * @param bool|null $is_extensions_tracking_allowed Since 2.3.2
17174
  * @param array $site_ids
17175
  * @param bool $license_key
17176
  * @param bool $trial_plan_id
17183
  $user_public_key,
17184
  $user_secret_key,
17185
  $is_marketing_allowed,
17186
+ $is_extensions_tracking_allowed,
17187
  $site_ids,
17188
  $license_key = false,
17189
  $trial_plan_id = false,
17195
  $this->disable_opt_in_notice_and_lock_user();
17196
  }
17197
 
17198
+ if ( ! is_null( $is_extensions_tracking_allowed ) ) {
17199
+ $this->update_extensions_tracking_flag( $is_extensions_tracking_allowed );
17200
+ }
17201
+
17202
  $sites = array();
17203
  foreach ( $site_ids as $site_id ) {
17204
  $sites[] = $this->get_site_info( array( 'blog_id' => $site_id ) );
17217
  * @param string $user_public_key
17218
  * @param string $user_secret_key
17219
  * @param bool|null $is_marketing_allowed
17220
+ * @param bool|null $is_extensions_tracking_allowed Since 2.3.2
17221
  * @param object[] $installs
17222
  * @param bool $redirect
17223
+ * @param bool $auto_install Since 1.2.1.7 If `true` and setting up an account with a valid license, will redirect (or return a URL) to the account page with a special parameter to trigger the auto installation processes.
 
 
17224
  *
17225
  * @return string If redirect is `false`, returns the next page the user should be redirected to.
17226
  */
17229
  $user_public_key,
17230
  $user_secret_key,
17231
  $is_marketing_allowed,
17232
+ $is_extensions_tracking_allowed,
17233
  array $installs,
17234
  $redirect = true,
17235
  $auto_install = false
17240
  $this->disable_opt_in_notice_and_lock_user();
17241
  }
17242
 
17243
+ if ( ! is_null( $is_extensions_tracking_allowed ) ) {
17244
+ $this->update_extensions_tracking_flag( $is_extensions_tracking_allowed );
17245
+ }
17246
+
17247
  $install_ids = array();
17248
 
17249
  foreach ( $installs as $install ) {
17353
  */
17354
  $license_key = fs_request_get( 'license_secret_key' );
17355
 
17356
+ $this->update_extensions_tracking_flag( fs_request_get_bool( 'is_extensions_tracking_allowed', true ) );
17357
+
17358
  $this->install_with_current_user( $license_key );
17359
  }
17360
  }
17399
  *
17400
  * @return \FS_Site|object|string If redirect is `false`, returns the next page the user should be redirected to, or the API error object if failed to install. If $setup_account is set to `false`, return the newly created install.
17401
  */
17402
+ function install_with_user(
17403
  FS_User $user,
17404
  $license_key = false,
17405
  $trial_plan_id = false,
17488
 
17489
  if ( ! empty( $license_key ) ) {
17490
  $extra_install_params['license_key'] = $this->apply_filters( 'license_key', $license_key );
17491
+
17492
+ if ( $silent ) {
17493
+ $extra_install_params['ignore_license_owner'] = true;
17494
+ }
17495
  } else if ( FS_Plugin_Plan::is_valid_id( $trial_plan_id ) ) {
17496
  $extra_install_params['trial_plan_id'] = $trial_plan_id;
17497
  }
17513
  ! $this->is_api_result_object( $result, 'installs' )
17514
  ) {
17515
  if ( ! empty( $args['license_key'] ) ) {
17516
+ // Pass the fully entered license key to the failure handler.
17517
  $args['license_key'] = $license_key;
17518
  }
17519
 
17554
  * @author Vova Feldman (@svovaf)
17555
  * @since 1.0.6
17556
  *
17557
+ * @param Freemius $parent_fs
17558
+ * @param bool|int|null $network_level_or_blog_id True for network level opt-in and integer for opt-in for specified blog in the network.
17559
+ * @param FS_Plugin_License $bundle_license Since 2.4.0. If provided, this license will be activated for the add-on.
17560
  */
17561
+ private function _activate_addon_account(
17562
+ Freemius $parent_fs,
17563
+ $network_level_or_blog_id = null,
17564
+ FS_Plugin_License $bundle_license = null
17565
+ ) {
17566
  if ( $this->is_registered() ) {
17567
  // Already activated.
17568
  return;
17601
  }
17602
  }
17603
 
17604
+ if ( is_object( $bundle_license ) ) {
17605
+ $params['license_key'] = $bundle_license->secret_key;
17606
+ }
17607
+
17608
  // Activate add-on with parent plugin credentials.
17609
  $result = $parent_fs->get_api_site_scope()->call(
17610
  "/addons/{$this->_plugin->id}/installs.json",
17613
  );
17614
 
17615
  if ( ! $this->is_api_result_object( $result, 'installs' ) ) {
17616
+ if ( is_object( $bundle_license ) ) {
17617
+ /**
17618
+ * When a license object is provided, it's an attempt by the SDK to activate a bundle license and not a user-initiated action, therefore, do not show any admin notice to avoid confusion (e.g.: the notice will show up just above the opt-in link). If the license activation fails, the admin will see an opt-in link instead.
17619
+ *
17620
+ * @author Leo Fajardo (@leorw)
17621
+ * @since 2.4.0
17622
+ */
17623
+ } else {
17624
+ $error_message = FS_Api::is_api_error_object( $result ) ?
17625
+ $result->error->message :
17626
+ $this->get_text_inline( 'An unknown error has occurred.', 'unknown-error' );
17627
 
17628
+ $this->_admin_notices->add(
17629
+ sprintf( $this->get_text_inline( 'Couldn\'t activate %s.', 'could-not-activate-x' ), $this->get_plugin_name() ) . ' ' .
17630
+ $this->get_text_inline( 'Please contact us with the following message:', 'contact-us-with-error-message' ) . ' ' . '<b>' . $error_message . '</b>',
17631
+ $this->get_text_x_inline( 'Oops', 'exclamation', 'oops' ) . '...',
17632
+ 'error'
17633
+ );
17634
+ }
17635
 
17636
  return;
17637
  }
17664
 
17665
  if ( ! fs_is_network_admin() ) {
17666
  // Try to activate premium license.
17667
+ $this->_activate_license( true, $bundle_license );
 
 
17668
 
17669
+ if ( is_object( $bundle_license ) ) {
17670
+ $this->maybe_activate_bundle_license( $bundle_license );
 
 
 
 
17671
  }
17672
+ } else {
17673
+ if ( is_object( $bundle_license ) ) {
17674
+ $premium_license = $bundle_license;
17675
+ } else {
17676
+ $license_id = fs_request_get( 'license_id' );
17677
 
17678
+ if ( is_object( $this->_site ) &&
17679
+ FS_Plugin_License::is_valid_id( $license_id ) &&
17680
+ $license_id == $this->_site->license_id
17681
+ ) {
17682
+ // License is already activated.
17683
+ return;
17684
+ }
17685
+
17686
+ $premium_license = FS_Plugin_License::is_valid_id( $license_id ) ?
17687
+ $this->_get_license_by_id( $license_id ) :
17688
+ $this->_get_available_premium_license();
17689
+ }
17690
 
17691
  if ( is_object( $premium_license ) ) {
17692
  $this->maybe_network_activate_addon_license( $premium_license );
17916
  */
17917
  private function add_menu_action() {
17918
  if ( $this->is_activation_mode() ) {
17919
+ if ( $this->show_opt_in_on_setting_page() ) {
17920
  $this->override_plugin_menu_with_activation();
17921
  } else {
17922
  /**
17938
  }
17939
  } else if (
17940
  fs_request_is_action( 'sync_user' ) &&
17941
+ ( ! $this->has_settings_menu() || $this->show_opt_in_on_themes_page() )
17942
  ) {
17943
  $this->_handle_account_user_sync();
17944
  }
18186
  // Didn't ask to hide the pricing page.
18187
  $this->is_page_visible( 'pricing' ) &&
18188
  // Don't have a valid active license or has more than one plan.
18189
+ ( ! $this->is_paying() || ! $this->is_single_plan( true ) )
18190
  );
18191
  }
18192
 
18204
  return false;
18205
  }
18206
 
18207
+ if ( $this->show_opt_in_on_themes_page() ) {
18208
+ if ( ! fs_is_network_admin() ) {
18209
+ // Also add action links or submenu items when running in a free .org theme so the tabs will be visible.
18210
+ return true;
18211
+ }
18212
+ } else if ( $is_activation_mode ) {
18213
+ // Don't show submenu-items/tabs in activation mode, unless it's a wp.org theme.
18214
  return false;
18215
  }
18216
 
18290
  }
18291
 
18292
  if ( $add_submenu_items ) {
18293
+ if (! WP_FS__DEMO_MODE && ! $this->is_whitelabeled() ) {
18294
+ // Add contact page.
18295
+ $this->add_submenu_item(
18296
+ $this->get_text_inline( 'Contact Us', 'contact-us' ),
18297
+ array( &$this, '_contact_page_render' ),
18298
+ $this->get_plugin_name() . ' &ndash; ' . $this->get_text_inline( 'Contact Us', 'contact-us' ),
18299
+ 'manage_options',
18300
+ 'contact',
18301
+ 'Freemius::_clean_admin_content_section',
18302
+ WP_FS__DEFAULT_PRIORITY,
18303
+ $this->is_submenu_item_visible( 'contact' )
18304
+ );
18305
+ }
18306
 
18307
  if ( $this->has_addons() ) {
18308
  $this->add_submenu_item(
18321
  if ( $add_submenu_items ||
18322
  ( $is_activation_mode && $this->is_only_premium() && $this->is_admin_page( 'pricing' ) )
18323
  ) {
18324
+ if (! WP_FS__DEMO_MODE && ! $this->is_whitelabeled() ) {
18325
  $show_pricing = (
18326
  $this->is_submenu_item_visible( 'pricing' ) &&
18327
  $this->is_pricing_page_visible()
18686
 
18687
  #endregion ------------------------------------------------------------------
18688
 
18689
+ #--------------------------------------------------------------------------------
18690
+ #region Admin Notices
18691
+ #--------------------------------------------------------------------------------
18692
+
18693
+ /**
18694
+ * @author Vova Feldman (@svovaf)
18695
+ * @since 2.3.1
18696
+ *
18697
+ * @param string|string[] $ids
18698
+ * @param int|null $network_level_or_blog_id
18699
+ *
18700
+ * @uses FS_Admin_Notices::remove_sticky()
18701
+ */
18702
+ function remove_sticky( $ids, $network_level_or_blog_id = null ) {
18703
+ $this->_admin_notices->remove_sticky( $ids, $network_level_or_blog_id );
18704
+ }
18705
+
18706
+ #endregion
18707
 
18708
  #--------------------------------------------------------------------------------
18709
  #region Actions / Hooks / Filters
19080
  private function _store_site( $store = true, $network_level_or_blog_id = null, FS_Site $site = null ) {
19081
  $this->_logger->entrance();
19082
 
19083
+ if ( is_null( $site ) ) {
19084
+ $site = $this->_site;
19085
+ }
19086
+
19087
+ if ( !isset( $site ) || !is_object($site) || empty( $site->id ) ) {
19088
  $this->_logger->error( "Empty install ID, can't store site." );
19089
 
19090
  return;
19091
  }
19092
 
19093
+ $site_clone = clone $site;
 
19094
 
19095
  $sites = self::get_all_sites( $this->_module_type, $network_level_or_blog_id );
19096
 
19097
+ if ( is_object( $this->_user ) && $this->_user->id != $site->user_id ) {
19098
+ $this->sync_user_by_current_install( $site->user_id );
19099
 
19100
+ $prev_stored_user_id = $this->_storage->get( 'prev_user_id', false, $network_level_or_blog_id );
19101
+
19102
+ if ( empty( $prev_stored_user_id ) &&
19103
+ is_object($this->_user) && $this->_user->id != $site->user_id
19104
+ ) {
19105
+ /**
19106
+ * Store the current user ID as the previous user ID so that the previous user can be used
19107
+ * as the install's owner while the new owner's details are not yet available.
19108
+ *
19109
+ * This will be executed only in the `replica` site. For example, there are 2 sites, namely `original`
19110
+ * and `replica`, then an ownership change was initiated and completed in the `original`, the `replica`
19111
+ * will be using the previous user until it is updated again (e.g.: until the next clone of `original`
19112
+ * into `replica`.
19113
+ *
19114
+ * @author Leo Fajardo (@leorw)
19115
+ */
19116
+ $this->_storage->store( 'prev_user_id', $sites[ $this->_slug ]->user_id, $network_level_or_blog_id );
19117
+ }
19118
  }
19119
 
19120
+ $sites[ $this->_slug ] = $site_clone;
19121
 
19122
  $this->set_account_option( 'sites', $sites, $store, $network_level_or_blog_id );
19123
  }
19327
  * @since 2.2.4
19328
  */
19329
  private function purge_valid_user_licenses_cache() {
19330
+ if ( ! $this->is_registered() ) {
19331
+ return;
19332
+ }
19333
+
19334
  $this->get_api_user_scope()->purge_cache( $this->get_valid_user_licenses_endpoint() );
19335
  }
19336
 
19984
  *
19985
  * @author Vova Feldman (@svovaf)
19986
  * @since 1.2.1
19987
+ *
19988
+ * @param bool $check_expiration
19989
+ */
19990
+ function has_active_valid_license( $check_expiration = true ) {
19991
+ return self::is_active_valid_license( $this->_license, $check_expiration );
19992
+ }
19993
+
19994
+ /**
19995
+ * @author Leo Fajardo (@leorw)
19996
+ * @since 2.3.1
19997
+ */
19998
+ function is_data_debug_mode() {
19999
+ if ( is_null( $this->is_whitelabeled ) || ! $this->is_whitelabeled ) {
20000
+ return false;
20001
+ }
20002
+
20003
+ $fs = $this->is_addon() ?
20004
+ $this->get_parent_instance() :
20005
+ $this;
20006
+
20007
+ if ( $fs->is_network_active() && fs_is_network_admin() ) {
20008
+ $is_developer_license_debug_mode = get_site_transient( "fs_{$this->get_id()}_data_debug_mode" );
20009
+ } else {
20010
+ $is_developer_license_debug_mode = get_transient( "fs_{$this->get_id()}_data_debug_mode" );
20011
+ }
20012
+
20013
+ return ( 'true' === $is_developer_license_debug_mode );
20014
+ }
20015
+
20016
+ /**
20017
+ * @author Leo Fajardo (@leorw)
20018
+ * @since 2.3.1
20019
  */
20020
+ function _set_data_debug_mode() {
20021
+ if ( ! $this->is_whitelabeled( true ) ) {
20022
+ return;
20023
+ }
20024
+
20025
+ $license_or_user_key = fs_request_get( 'license_or_user_key' );
20026
+
20027
+ $transient_value = ( ! empty( $license_or_user_key ) ) ?
20028
+ 'true' :
20029
+ 'false';
20030
+
20031
+ if ( 'true' === $transient_value ) {
20032
+ $stored_key = $this->_storage->get( ! FS_User::is_valid_id( $this->_storage->last_license_user_id ) ?
20033
+ 'last_license_key' :
20034
+ 'last_license_user_key'
20035
+ );
20036
+
20037
+ if ( md5( $license_or_user_key ) !== $stored_key ) {
20038
+ $this->shoot_ajax_failure( sprintf(
20039
+ '%s... %s',
20040
+ $this->get_text_x_inline( 'Oops', 'exclamation', 'oops' ),
20041
+ $this->get_text_inline(
20042
+ 'seems like the key you entered doesn\'t match our records.',
20043
+ 'developer-or-license-not-found'
20044
+ )
20045
+ ) );
20046
+ }
20047
+ }
20048
+
20049
+ if ( $this->is_network_active() && fs_is_network_admin() ) {
20050
+ set_site_transient(
20051
+ "fs_{$this->get_id()}_data_debug_mode",
20052
+ $transient_value,
20053
+ WP_FS__TIME_24_HOURS_IN_SEC / 24
20054
+ );
20055
+ } else {
20056
+ set_transient(
20057
+ "fs_{$this->get_id()}_data_debug_mode",
20058
+ $transient_value,
20059
+ WP_FS__TIME_24_HOURS_IN_SEC / 24
20060
+ );
20061
+ }
20062
+
20063
+ if ( 'true' === $transient_value ) {
20064
+ $this->_admin_notices->add_sticky(
20065
+ $this->get_text_inline(
20066
+ 'Debug mode was successfully enabled and will be automatically disabled in 60 min. You can also disable it earlier by clicking the "Stop Debug" link.',
20067
+ 'data_debug_mode_enabled'
20068
+ ),
20069
+ 'data_debug_mode_enabled'
20070
+ );
20071
+ }
20072
+
20073
+ $this->shoot_ajax_success();
20074
  }
20075
 
20076
  /**
20080
  * @since 2.1.3
20081
  *
20082
  * @param FS_Plugin_License $license
20083
+ * @param bool $check_expiration
20084
  *
20085
  * @return bool
20086
  */
20087
+ private static function is_active_valid_license( $license, $check_expiration = true ) {
20088
  return (
20089
  is_object( $license ) &&
20090
  FS_Plugin_License::is_valid_id( $license->id ) &&
20091
  $license->is_active() &&
20092
+ ( ! $check_expiration || $license->is_valid() )
20093
  );
20094
  }
20095
 
20143
  );
20144
  }
20145
 
20146
+ /**
20147
+ * Checks if the product is activated with a bundle license.
20148
+ *
20149
+ * @author Leo Fajardo (@leorw)
20150
+ * @since 2.4.0
20151
+ *
20152
+ * @return bool
20153
+ */
20154
+ function is_activated_with_bundle_license() {
20155
+ if ( ! $this->has_features_enabled_license() ) {
20156
+ return false;
20157
+ }
20158
+
20159
+ return FS_Plugin_License::is_valid_id( $this->_license->parent_license_id );
20160
+ }
20161
+
20162
  /**
20163
  * Check if user is a trial or have feature enabled license.
20164
  *
20404
  } else {
20405
  // Authentication params are broken.
20406
  $this->_admin_notices->add(
20407
+ $this->get_text_inline( 'It seems like one of the authentication parameters is wrong. Update your Public Key, Secret Key & User ID, and try again.', 'wrong-authentication-param-message' ) . '<br> ' . $this->get_text_inline( 'Error received from the server:', 'server-error-message' ) . var_export( $result->error, true ),
20408
  $this->get_text_x_inline( 'Oops', 'exclamation', 'oops' ) . '...',
20409
  'error'
20410
  );
20571
  $this->get_network_install_blog_id()
20572
  );
20573
  } else {
20574
+ if ( ! is_object( $this->_license ) ) {
20575
+ $this->maybe_update_whitelabel_flag(
20576
+ FS_Plugin_License::is_valid_id( $site->license_id ) ?
20577
+ $this->get_license_by_id( $site->license_id ) :
20578
+ null
20579
+ );
20580
+ } else {
20581
+ $this->maybe_update_whitelabel_flag( $this->_license );
20582
+
20583
+ if ( $this->_license->is_expired() ) {
20584
+ if ( ! $this->has_features_enabled_license() ) {
20585
+ $this->_deactivate_license();
20586
+ $plan_change = 'downgraded';
20587
+ } else {
20588
+ $last_time_expired_license_notice_was_shown = $this->_storage->get( 'expired_license_notice_shown', 0 );
20589
+
20590
+ if ( time() - ( 14 * WP_FS__TIME_24_HOURS_IN_SEC ) >= $last_time_expired_license_notice_was_shown ) {
20591
+ /**
20592
+ * Show the expired license notice every 14 days.
20593
+ *
20594
+ * @author Leo Fajardo (@leorw)
20595
+ * @since 2.3.1
20596
+ */
20597
+ $plan_change = 'expired';
20598
+ }
20599
+ }
20600
  }
20601
  }
20602
 
20620
 
20621
  $hmm_text = $this->get_text_x_inline( 'Hmm', 'something somebody says when they are thinking about what you have just said.', 'hmm' ) . '...';
20622
 
20623
+ if ( $this->apply_filters( 'has_paid_plan_account', $this->has_paid_plan() ) ) {
20624
  switch ( $plan_change ) {
20625
  case 'none':
20626
  if ( ! $background && is_admin() ) {
20713
  'license_expired',
20714
  $hmm_text
20715
  );
20716
+
20717
+ $this->_storage->expired_license_notice_shown = WP_FS__SCRIPT_START_TIME;
20718
+
20719
  $this->_admin_notices->remove_sticky( 'plan_upgraded' );
20720
  break;
20721
  case 'trial_started':
20751
  }
20752
 
20753
  if ( 'none' !== $plan_change ) {
20754
+ if (
20755
+ ! is_object( $this->_license ) ||
20756
+ ! $this->_license->is_whitelabeled
20757
+ ) {
20758
+ $this->_admin_notices->remove_sticky( 'license_whitelabeled' );
20759
+ }
20760
+
20761
  $this->do_action( 'after_license_change', $plan_change, $this->get_plan() );
20762
  }
20763
  }
20777
  * @author Vova Feldman (@svovaf)
20778
  * @since 1.0.5
20779
  *
20780
+ * @param bool $background
20781
+ * @param FS_Plugin_License|null $premium_license
20782
  */
20783
  protected function _activate_license( $background = false, $premium_license = null ) {
20784
  $this->_logger->entrance();
20972
 
20973
  if ( $show_notice ) {
20974
  $this->_admin_notices->add(
20975
+ sprintf( $this->is_only_premium() ?
20976
+ $this->get_text_inline( 'Your %s license was successfully deactivated.', 'license-deactivation-message_premium-only' ) :
20977
+ $this->get_text_inline( 'Your license was successfully deactivated, you are back to the %s plan.', 'license-deactivation-message' ),
20978
+ $this->get_plan_title()
20979
+ ),
20980
  $this->get_text_inline( 'O.K', 'ok' )
20981
  );
20982
  }
21481
  */
21482
  private function get_latest_download_link( $label, $plugin_id = false ) {
21483
  return sprintf(
21484
+ '<a target="_blank" rel="noopener" href="%s">%s</a>',
21485
  $this->_get_latest_download_local_url( $plugin_id ),
21486
  $label
21487
  );
21552
  $this->get_text_inline( 'Version %s was released.', 'version-x-released' ) . ' ' . $this->get_text_inline( 'Please download %s.', 'please-download-x' ),
21553
  $update->version,
21554
  sprintf(
21555
+ '<a href="%s" target="_blank" rel="noopener">%s</a>',
21556
  $this->get_account_url( 'download_latest' ),
21557
  sprintf(
21558
  /* translators: %s: plan name (e.g. latest "Professional" version) */
21589
 
21590
  $api = $this->get_api_site_or_plugin_scope();
21591
 
21592
+ $path = $this->add_show_pending( '/addons.json?enriched=true&count=50' );
21593
 
21594
  /**
21595
  * @since 1.2.1
21783
  return true;
21784
  }
21785
 
21786
+ /**
21787
+ * Completes ownership change by license.
21788
+ *
21789
+ * @author Leo Fajardo (@leorw)
21790
+ * @since 2.3.2
21791
+ *
21792
+ * @param number $user_id
21793
+ * @param array[string]number $install_ids_by_slug_map
21794
+ *
21795
+ */
21796
+ private function complete_ownership_change_by_license( $user_id, $install_ids_by_slug_map ) {
21797
+ $this->_logger->entrance();
21798
+
21799
+ $this->sync_user_by_current_install( $user_id );
21800
+
21801
+ $result = $this->get_api_user_scope( true )->get(
21802
+ "/installs.json?install_ids=" . implode( ',', $install_ids_by_slug_map )
21803
+ );
21804
+
21805
+ if ( $this->is_api_result_object( $result, 'installs' ) ) {
21806
+ $sites = self::get_all_sites( $this->get_module_type() );
21807
+ $install_ids_by_slug_map = array_flip( $install_ids_by_slug_map );
21808
+
21809
+ foreach ( $result->installs as $install ) {
21810
+ $site = new FS_Site( $install );
21811
+
21812
+ $sites[ $install_ids_by_slug_map[ $site->id ] ] = clone $site;
21813
+ }
21814
+
21815
+ $this->set_account_option( 'sites', $sites, true );
21816
+ }
21817
+ }
21818
+
21819
  /**
21820
  * Handle user name update.
21821
  *
21929
  * @return string
21930
  */
21931
  function get_after_activation_url( $filter, $params = array(), $network = null ) {
21932
+ if ( $this->show_opt_in_on_themes_page() &&
21933
  ( fs_request_has( 'pending_activation' ) ||
21934
  // For cases when the first time path is set, even though it's a WP.org theme.
21935
  fs_request_get_bool( $this->get_unique_affix() . '_show_optin' ) )
21984
  // Alias.
21985
  $oops_text = $this->get_text_x_inline( 'Oops', 'exclamation', 'oops' ) . '...';
21986
 
21987
+ $is_network_action = $this->is_network_level_action();
21988
+ $blog_id = $this->is_network_level_site_specific_action();
21989
+ $is_parent_plugin_action = ( $plugin_id == $this->get_id() );
21990
 
21991
  if ( is_numeric( $blog_id ) ) {
21992
  $this->switch_to_blog( $blog_id );
21998
  case 'opt_in':
21999
  check_admin_referer( trim( "{$action}:{$blog_id}:{$install_id}", ':' ) );
22000
 
22001
+ if ( $is_parent_plugin_action ) {
22002
  if ( $is_network_action && ! empty( $blog_id ) ) {
22003
  if ( ! $this->is_registered() ) {
22004
  $this->install_with_user(
22021
  case 'toggle_tracking':
22022
  check_admin_referer( trim( "{$action}:{$blog_id}:{$install_id}", ':' ) );
22023
 
22024
+ if ( $is_parent_plugin_action ) {
22025
  if ( $is_network_action && ! empty( $blog_id ) ) {
22026
  if ( $this->is_registered() ) {
22027
  if ( $this->is_tracking_prohibited() ) {
22039
  $this->get_plugin_title(),
22040
  fs_strip_url_protocol( get_site_url( $blog_id ) ),
22041
  sprintf(
22042
+ '<a href="%s" target="_blank" rel="noopener">%s</a>',
22043
  'https://freemius.com',
22044
  'freemius.com'
22045
  )
22056
  case 'delete_account':
22057
  check_admin_referer( trim( "{$action}:{$blog_id}:{$install_id}", ':' ) );
22058
 
22059
+ $is_network_deletion = $is_network_action && empty( $blog_id );
22060
+
22061
+ if ( $is_parent_plugin_action ) {
22062
+ // Delete add-on installs if have any.
22063
+ $installed_addons = $this->get_installed_addons();
22064
+ foreach ( $installed_addons as $fs_addon ) {
22065
+ if ( $is_network_deletion ) {
22066
+ $fs_addon->delete_network_account_event();
22067
+ } else {
22068
+ $fs_addon->delete_account_event();
22069
+ }
22070
+ }
22071
+
22072
+ if ( $is_network_deletion ) {
22073
  $this->delete_network_account_event();
22074
  } else {
22075
  $this->delete_account_event();
22085
  } else {
22086
  if ( $this->is_addon_activated( $plugin_id ) ) {
22087
  $fs_addon = self::get_instance_by_id( $plugin_id );
22088
+
22089
+ if ( $is_network_deletion ) {
22090
+ $fs_addon->delete_network_account_event();
22091
+ } else {
22092
+ $fs_addon->delete_account_event();
22093
+ }
22094
 
22095
  fs_redirect( $this->_get_admin_page_url( 'account' ) );
22096
  }
22138
 
22139
  if ( is_object( $fs ) ) {
22140
  $fs->_activate_license();
22141
+
22142
+ /**
22143
+ * Remove the product ID from `$_REQUEST` so that the syncing of the license for the other products will work properly.
22144
+ *
22145
+ * @author Leo Fajardo (@leorw)
22146
+ * @since 2.4.0
22147
+ */
22148
+ unset( $_REQUEST['plugin_id'] );
22149
+
22150
+ if ( $this->is_bundle_license_auto_activation_enabled() ) {
22151
+ $fs->maybe_activate_bundle_license( null, array(), is_numeric( $blog_id ) ? $blog_id : 0 );
22152
+ }
22153
  }
22154
 
22155
  return;
22372
 
22373
  $this->_handle_account_edits();
22374
 
22375
+ if (
22376
+ is_object( $this->_license ) &&
22377
+ $this->_license->user_id == $this->_user->id &&
22378
+ ! $this->is_whitelabeled( true )
22379
+ ) {
22380
+ $this->_admin_notices->add(
22381
+ sprintf(
22382
+ $this->get_text_inline( "Is this your client's site? %s if you wish to hide sensitive info like your email, license key, prices, billing address & invoices from the WP Admin.", 'license_not_whitelabeled' ),
22383
+ sprintf(
22384
+ '<a href="#" class="fs-toggle-whitelabel-mode">%s</a>',
22385
+ $this->get_text_inline( 'Click here', 'click-here' )
22386
+ )
22387
+ ),
22388
+ '',
22389
+ 'success',
22390
+ false,
22391
+ 'license_not_whitelabeled'
22392
+ );
22393
+ }
22394
+
22395
  $this->do_action( 'account_page_load_before_departure' );
22396
  }
22397
 
22528
  }
22529
  }
22530
 
22531
+ /**
22532
+ * @author Leo Fajardo (@leorw)
22533
+ * @since 2.3.1
22534
+ */
22535
+ function _maybe_add_pricing_ajax_handler() {
22536
+ if ( ! $this->should_use_external_pricing() ) {
22537
+ $this->add_ajax_action( 'pricing_ajax_action', array( &$this, '_fs_pricing_ajax_action_handler' ) );
22538
+ }
22539
+ }
22540
+
22541
+ /**
22542
+ * @author Leo Fajardo (@leorw)
22543
+ * @since 2.3.1
22544
+ */
22545
+ function _fs_pricing_ajax_action_handler() {
22546
+ $this->check_ajax_referer( 'pricing_ajax_action' );
22547
+
22548
+ $result = null;
22549
+ $pricing_action = fs_request_get( 'pricing_action' );
22550
+
22551
+ switch ( $pricing_action ) {
22552
+ case 'fetch_pricing_data':
22553
+ $params = array(
22554
+ 'is_enriched' => true,
22555
+ 'trial' => fs_request_get_bool( 'trial' ),
22556
+ 'sandbox' => fs_request_get( 'sandbox' ),
22557
+ 's_ctx_type' => fs_request_get( 's_ctx_type' ),
22558
+ 's_ctx_id' => fs_request_get( 's_ctx_id' ),
22559
+ 's_ctx_ts' => fs_request_get( 's_ctx_ts' ),
22560
+ 's_ctx_secure' => fs_request_get( 's_ctx_secure' ),
22561
+ );
22562
+
22563
+ $bundle_id = $this->get_bundle_id();
22564
+ $bundle_public_key = $this->get_bundle_public_key();
22565
+
22566
+ $has_bundle_context = ( FS_Plugin::is_valid_id( $bundle_id ) && ! empty( $bundle_public_key ) );
22567
+
22568
+ if ( ! $has_bundle_context ) {
22569
+ $api = $this->get_api_plugin_scope();
22570
+ } else {
22571
+ $api = FS_Api::instance(
22572
+ $bundle_id,
22573
+ 'plugin',
22574
+ $bundle_id,
22575
+ $bundle_public_key,
22576
+ ! $this->is_live(),
22577
+ false,
22578
+ $this->get_sdk_version()
22579
+ );
22580
+
22581
+ $params['plugin_id'] = $this->get_id();
22582
+ $params['plugin_public_key'] = $this->get_public_key();
22583
+ }
22584
+
22585
+ $result = $api->get( 'pricing.json?' . http_build_query( $params ) );
22586
+ break;
22587
+ case 'start_trial':
22588
+ $result = $this->opt_in(
22589
+ false,
22590
+ false,
22591
+ false,
22592
+ false,
22593
+ false,
22594
+ fs_request_get( 'plan_id' )
22595
+ );
22596
+ }
22597
+
22598
+ if ( is_object( $result ) && $this->is_api_error( $result ) ) {
22599
+ $this->_logger->api_error( $result );
22600
+
22601
+ self::shoot_ajax_failure(
22602
+ isset( $result->error ) ?
22603
+ ( is_string( $result->error ) ? $result->error : $result->error->message ) :
22604
+ var_export( $result, true )
22605
+ );
22606
+ }
22607
+
22608
+ $this->shoot_ajax_success( $result );
22609
+ }
22610
+
22611
  #----------------------------------------------------------------------------------
22612
  #region Contact Us
22613
  #----------------------------------------------------------------------------------
22802
  return $this->_plugin_api;
22803
  }
22804
 
22805
+ /**
22806
+ * Get bundle public API scope.
22807
+ *
22808
+ * @author Vova Feldman (@svovaf)
22809
+ * @since 2.3.1
22810
+ *
22811
+ * @return FS_Api
22812
+ */
22813
+ function get_api_bundle_scope() {
22814
+ return FS_Api::instance(
22815
+ $this->get_bundle_id(),
22816
+ 'plugin',
22817
+ $this->get_bundle_id(),
22818
+ $this->get_bundle_public_key(),
22819
+ ! $this->is_live(),
22820
+ false,
22821
+ $this->get_sdk_version()
22822
+ );
22823
+ }
22824
+
22825
  /**
22826
  * Get site API scope object (fallback to public plugin scope when not registered).
22827
  *
22836
  $this->get_api_plugin_scope();
22837
  }
22838
 
22839
+ /**
22840
+ * @author Leo Fajardo (@leorw)
22841
+ * @since 2.2.3.1
22842
+ *
22843
+ * @param object $result
22844
+ */
22845
+ private function maybe_modify_api_curl_error_message( $result ) {
22846
+ if (
22847
+ 'cUrlMissing' !== $result->error->type &&
22848
+ ( 'CurlException' !== $result->error->type || CURLE_COULDNT_CONNECT != $result->error->code ) &&
22849
+ ( 'HttpRequestFailed' !== $result->error->type || false === strpos( $result->error->message, 'cURL error ' . CURLE_COULDNT_CONNECT ) )
22850
+ ) {
22851
+ return;
22852
+ }
22853
+
22854
+ $result->error->message = $this->esc_html_inline( 'We use PHP cURL library for the API calls, which is a very common library and usually installed and activated out of the box. Unfortunately, cURL is not activated (or disabled) on your server.', 'curl-missing-message' ) .
22855
+ ' ' .
22856
+ $this->esc_html_inline(
22857
+ sprintf(
22858
+ 'Please contact your hosting provider and ask them to whitelist %s for external connection.',
22859
+ implode(
22860
+ ', ',
22861
+ $this->apply_filters( 'api_domains', array(
22862
+ 'api.freemius.com',
22863
+ 'wp.freemius.com'
22864
+ ) )
22865
+ )
22866
+ ),
22867
+ 'connectivity-whitelist'
22868
+ ) .
22869
+ ' ' .
22870
+ sprintf(
22871
+ $this->esc_html_inline( 'Once you are done, deactivate the %s and activate it again.', 'connectivity-reactivate-module' ),
22872
+ $this->get_module_type()
22873
+ );
22874
+ }
22875
+
22876
  /**
22877
  * Show trial promotional notice (if any trial exist).
22878
  *
23192
  function _show_theme_activation_optin_dialog() {
23193
  fs_enqueue_local_style( 'fs_connect', '/admin/connect.css' );
23194
 
23195
+ add_action( 'admin_footer', array( &$this, '_add_fs_theme_activation_dialog' ) );
23196
  }
23197
 
23198
  /**
23200
  * @since 1.2.2
23201
  */
23202
  function _add_fs_theme_activation_dialog() {
23203
+ global $pagenow;
23204
+
23205
+ if ( 'themes.php' !== $pagenow ) {
23206
+ return;
23207
+ }
23208
+
23209
  $vars = array( 'id' => $this->_module_id );
23210
  fs_require_once_template( 'connect.php', $vars );
23211
  }
23293
  $add_upgrade_link = (
23294
  $add_action_links ||
23295
  ( $is_activation_mode && $this->is_only_premium() )
23296
+ ) && ! WP_FS__DEMO_MODE && ( ! $this->is_whitelabeled() );
23297
 
23298
  $add_addons_link = ( $add_action_links && $this->has_addons() );
23299
 
23382
 
23383
  $this->_logger->entrance();
23384
 
23385
+ /**
23386
+ * @author Vova Feldman (@svovaf)
23387
+ * @since 2.3.2 Allow opting out from usage-tracking for paid products too by giving the appropriate warning letting the user know the automatic updates mechanism cannot function without an ongoing connection to the licensing and updates engine.
23388
+ */
23389
+ /*if ( $this->is_premium() ) {
23390
+ // Don't add opt-in/out for premium code base.
23391
+ return;
23392
+ }*/
23393
+
23394
+ if ( $this->is_only_premium() && $this->is_free_plan() ) {
23395
+ // Don't add tracking links for premium-only products that were opted-in by relation (add-on or a parent product) before activating any license.
23396
+ return;
23397
+ }
23398
+
23399
  if ( fs_is_network_admin() ) {
23400
  if ( ! $this->_is_network_active ) {
23401
  // Don't add tracking links when browsing the network WP Admin and the plugin is not network active.
23426
  return;
23427
  }
23428
 
23429
+ if (
23430
+ $this->is_activation_mode() &&
23431
+ $this->is_premium() &&
23432
+ ! $this->is_registered()
23433
+ ) {
23434
+ // If not yet registered and running the premium code base, a license activation link will already be shown.
23435
+ return;
23436
+ }
23437
 
23438
+ if ( $this->is_registered() && $this->is_tracking_allowed() ) {
23439
+ if ( ! $this->is_premium() && ! $this->is_enable_anonymous() ) {
23440
+ // If opted in and tracking is allowed, don't allow to opt out if not premium and anonymous mode is disabled.
23441
  return;
23442
  }
23443
  }
23450
  return;
23451
  }
23452
 
23453
+ if ( $this->add_ajax_action( 'update_tracking_permission', array( &$this, '_update_tracking_permission_callback' ) ) ) {
23454
+ return;
23455
+ }
23456
+
23457
  $link_text_id = '';
23458
  $url = '#';
23459
 
23463
  } else {
23464
  $link_text_id = $this->get_text_inline( 'Opt In', 'opt-in' );
23465
  }
 
 
23466
  } else if ( $this->is_anonymous() || $this->is_activation_mode() ) {
23467
  /**
23468
  * Show opt-in link only if skipped or in activation mode.
23479
  $url = $this->get_activation_url( $params );
23480
  }
23481
 
23482
+ add_action( 'admin_footer', array( &$this, '_add_optout_dialog' ) );
23483
+
23484
  if ( ! empty( $link_text_id ) && $this->is_plugin() && self::is_plugins_page() ) {
23485
  $this->add_plugin_action_link(
23486
  $link_text_id,
23517
  if ( ! empty( $this->_dynamically_added_top_level_page_hook_name ) ) {
23518
  if ( $this->is_network_registered() ) {
23519
  $page = 'account';
23520
+ } else if ( $this->is_pending_activation() || $this->is_network_anonymous() ) {
23521
  $this->maybe_set_slug_and_network_menu_exists_flag();
23522
  }
23523
  }
23552
  * @since 1.0.3
23553
  */
23554
  function _redirect_on_activation_hook() {
23555
+ if ( $this->apply_filters( 'redirect_on_activation', true ) ) {
23556
+ $url = $this->get_after_plugin_activation_redirect_url();
23557
 
23558
+ if ( is_string( $url ) ) {
23559
+ fs_redirect( $url );
23560
+ }
23561
  }
23562
  }
23563
 
23597
 
23598
  foreach ( $this->_action_links as $new_links ) {
23599
  foreach ( $new_links as $link ) {
23600
+ $before_deactivate[ $link['key'] ] = '<a href="' . $link['href'] . '"' . ( $link['external'] ? ' target="_blank" rel="noopener"' : '' ) . '>' . $link['label'] . '</a>';
23601
  }
23602
  }
23603
 
23717
  '';
23718
 
23719
  return sprintf(
23720
+ ' %s: <ol><li>%s.</li>%s<li>%s (<a href="%s" target="_blank" rel="noopener">%s</a>).</li></ol>',
23721
  $this->get_text_inline( 'Please follow these steps to complete the upgrade', 'follow-steps-to-complete-upgrade' ),
23722
  ( empty( $activate_license_string ) ? '' : $activate_license_string . '</li><li>' ) .
23723
  $this->get_latest_download_link( sprintf(
23970
  */
23971
  function set_plugin_upgrade_complete() {
23972
  $this->_storage->plugin_upgrade_mode = false;
23973
+
23974
+ $license_migration = ! empty( $this->_storage->license_migration ) ?
23975
+ $this->_storage->license_migration :
23976
+ array();
23977
+
23978
+ $license_migration['is_migrating'] = false;
23979
+
23980
+ $this->_storage->license_migration = $license_migration;
23981
  }
23982
 
23983
  #endregion
24180
  function _tabs_capture() {
24181
  $this->_logger->entrance();
24182
 
24183
+ if ( ! $this->is_product_settings_page() ||
24184
  ! $this->is_matching_url( $this->main_menu_url() )
24185
  ) {
24186
  return;
24235
  function _store_tabs_styles() {
24236
  $this->_logger->entrance();
24237
 
24238
+ if ( ! $this->is_product_settings_page() ||
24239
  ! $this->is_matching_url( $this->main_menu_url() )
24240
  ) {
24241
  return;
24309
  return false;
24310
  }
24311
 
24312
+ if ( self::NAVIGATION_TABS !== $this->_navigation ) {
24313
  // Only add tabs to themes for now.
24314
  return false;
24315
  }
24316
 
24317
+ if ( $this->is_theme() && ! $this->has_paid_plan() && ! $this->has_addons() ) {
24318
  // Only add tabs to monetizing themes.
24319
  return false;
24320
  }
24321
 
24322
+ if ( ! $this->is_product_settings_page() ) {
24323
+ // Only add tabs if browsing one of the product's setting pages.
24324
+ return false;
24325
+ }
24326
+
24327
+ if ( $this->is_activation_mode() && $this->is_activation_page() ) {
24328
+ // Don't include tabs in the activation page.
24329
  return false;
24330
  }
24331
 
25012
  }
25013
 
25014
  $modules = array_merge(
25015
+ array_values( self::maybe_get_entities_account_option( 'plugins', array() ) ),
25016
+ array_values( self::maybe_get_entities_account_option( 'themes', array() ) )
25017
  );
25018
 
25019
  foreach ( $modules as $module ) {
25118
  *
25119
  * @author Vova Feldman (@svovaf)
25120
  */
25121
+ self::shoot_ajax_success( array(
25122
+ 'is_marketing_allowed' => null,
25123
+ 'license_owner_id' => null
25124
+ ) );
25125
+ }
25126
+
25127
+ self::shoot_ajax_success( array(
25128
+ 'is_marketing_allowed' => $user_plugins[0]->is_marketing_allowed,
25129
+ 'license_owner_id' => ( isset( $user_plugins[0]->license_owner_id ) ? $user_plugins[0]->license_owner_id : null )
25130
+ ) );
25131
+ }
25132
+
25133
+ /**
25134
+ * @author Leo Fajardo (@leorw)
25135
+ * @since 2.3.2
25136
+ *
25137
+ * @param number[] $install_ids
25138
+ *
25139
+ * @return array {
25140
+ * An array of objects containing the installs' licenses owners data.
25141
+ *
25142
+ * @property number $id User ID.
25143
+ * @property string $email User email (can be masked email).
25144
+ * }
25145
+ */
25146
+ private function fetch_installs_licenses_owners_data( $install_ids ) {
25147
+ $this->_logger->entrance();
25148
+
25149
+ $response = $this->get_api_user_scope()->get(
25150
+ '/licenses_owners.json?install_ids=' . implode( ',', $install_ids )
25151
+ );
25152
+
25153
+ $license_owners = null;
25154
+
25155
+ if ( $this->is_api_result_object( $response, 'owners' ) ) {
25156
+ $license_owners = $response->owners;
25157
  }
25158
 
25159
+ return $license_owners;
25160
  }
25161
 
25162
  /**
25192
  }
25193
 
25194
  $modules = array_merge(
25195
+ array_values( self::maybe_get_entities_account_option( 'plugins', array() ) ),
25196
+ array_values( self::maybe_get_entities_account_option( 'themes', array() ) )
25197
  );
25198
 
25199
  foreach ( $modules as $key => $module ) {
freemius/includes/class-fs-api.php CHANGED
@@ -287,7 +287,7 @@
287
  $this->_logger->warn( 'Fallback to cached API result: ' . var_export( $cached_result, true ) );
288
  }
289
  } else {
290
- if ( is_object( $result ) && 404 == $result->error->http ) {
291
  /**
292
  * If the response code is 404, cache the result for half of the `$expiration`.
293
  *
287
  $this->_logger->warn( 'Fallback to cached API result: ' . var_export( $cached_result, true ) );
288
  }
289
  } else {
290
+ if ( is_object( $result ) && isset( $result->error->http ) && 404 == $result->error->http ) {
291
  /**
292
  * If the response code is 404, cache the result for half of the `$expiration`.
293
  *
freemius/includes/class-fs-plugin-updater.php CHANGED
@@ -102,7 +102,9 @@
102
  'edit_and_echo_plugin_update_row'
103
  ), 11, 2 );
104
 
105
- add_action( 'admin_head', array( &$this, 'catch_plugin_information_dialog_contents' ) );
 
 
106
 
107
  if ( ! WP_FS__IS_PRODUCTION_MODE ) {
108
  add_filter( 'http_request_host_is_external', array(
@@ -238,6 +240,12 @@
238
  * @since 2.0.0
239
  */
240
  private function add_transient_filters() {
 
 
 
 
 
 
241
  add_filter( 'pre_set_site_transient_update_plugins', array(
242
  &$this,
243
  'pre_set_site_transient_update_plugins_filter'
@@ -487,13 +495,35 @@
487
  return $transient_data;
488
  }
489
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
490
  if ( ! isset( $this->_update_details ) ) {
491
  // Get plugin's newest update.
492
  $new_version = $this->_fs->get_update(
493
  false,
494
  fs_request_get_bool( 'force-check' ),
495
  WP_FS__TIME_24_HOURS_IN_SEC / 24,
496
- $this->_fs->get_plugin_version()
497
  );
498
 
499
  $this->_update_details = false;
@@ -512,23 +542,66 @@
512
  }
513
  }
514
 
 
 
 
515
  if ( is_object( $this->_update_details ) ) {
 
 
 
 
516
  if ( ! isset( $transient_data->response ) ) {
517
  $transient_data->response = array();
518
  }
519
 
520
  // Add plugin to transient data.
521
- $transient_data->response[ $this->_fs->premium_plugin_basename() ] = $this->_fs->is_plugin() ?
522
  $this->_update_details :
523
  (array) $this->_update_details;
524
- } else if ( isset( $transient_data->response ) ) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
525
  /**
526
- * Ensure that there's no update data for the plugin to prevent upgrading the premium version to the latest free version.
527
  *
528
- * @author Leo Fajardo (@leorw)
529
- * @since 2.3.0
530
  */
531
- unset( $transient_data->response[ $this->_fs->premium_plugin_basename() ] );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
532
  }
533
 
534
  $slug = $this->_fs->get_slug();
102
  'edit_and_echo_plugin_update_row'
103
  ), 11, 2 );
104
 
105
+ if ( ! $this->_fs->has_any_active_valid_license() ) {
106
+ add_action( 'admin_head', array( &$this, 'catch_plugin_information_dialog_contents' ) );
107
+ }
108
 
109
  if ( ! WP_FS__IS_PRODUCTION_MODE ) {
110
  add_filter( 'http_request_host_is_external', array(
240
  * @since 2.0.0
241
  */
242
  private function add_transient_filters() {
243
+ if ( $this->_fs->is_premium() && ! $this->_fs->is_tracking_allowed() ) {
244
+ $this->_logger->log( 'Opted out sites cannot receive automatic software updates.' );
245
+
246
+ return;
247
+ }
248
+
249
  add_filter( 'pre_set_site_transient_update_plugins', array(
250
  &$this,
251
  'pre_set_site_transient_update_plugins_filter'
495
  return $transient_data;
496
  }
497
 
498
+ global $wp_current_filter;
499
+
500
+ $current_plugin_version = $this->_fs->get_plugin_version();
501
+
502
+ if ( ! empty( $wp_current_filter ) && 'upgrader_process_complete' === $wp_current_filter[0] ) {
503
+ if (
504
+ is_null( $this->_update_details ) ||
505
+ ( is_object( $this->_update_details ) && $this->_update_details->new_version !== $current_plugin_version )
506
+ ) {
507
+ /**
508
+ * After an update, clear the stored update details and reparse the plugin's main file in order to get
509
+ * the updated version's information and prevent the previous update information from showing up on the
510
+ * updates page.
511
+ *
512
+ * @author Leo Fajardo (@leorw)
513
+ * @since 2.3.1
514
+ */
515
+ $this->_update_details = null;
516
+ $current_plugin_version = $this->_fs->get_plugin_version( true );
517
+ }
518
+ }
519
+
520
  if ( ! isset( $this->_update_details ) ) {
521
  // Get plugin's newest update.
522
  $new_version = $this->_fs->get_update(
523
  false,
524
  fs_request_get_bool( 'force-check' ),
525
  WP_FS__TIME_24_HOURS_IN_SEC / 24,
526
+ $current_plugin_version
527
  );
528
 
529
  $this->_update_details = false;
542
  }
543
  }
544
 
545
+ // Alias.
546
+ $basename = $this->_fs->premium_plugin_basename();
547
+
548
  if ( is_object( $this->_update_details ) ) {
549
+ if ( isset( $transient_data->no_update ) ) {
550
+ unset( $transient_data->no_update[ $basename ] );
551
+ }
552
+
553
  if ( ! isset( $transient_data->response ) ) {
554
  $transient_data->response = array();
555
  }
556
 
557
  // Add plugin to transient data.
558
+ $transient_data->response[ $basename ] = $this->_fs->is_plugin() ?
559
  $this->_update_details :
560
  (array) $this->_update_details;
561
+ } else {
562
+ if ( isset( $transient_data->response ) ) {
563
+ /**
564
+ * Ensure that there's no update data for the plugin to prevent upgrading the premium version to the latest free version.
565
+ *
566
+ * @author Leo Fajardo (@leorw)
567
+ * @since 2.3.0
568
+ */
569
+ unset( $transient_data->response[ $basename ] );
570
+ }
571
+
572
+ if ( ! isset( $transient_data->no_update ) ) {
573
+ $transient_data->no_update = array();
574
+ }
575
+
576
  /**
577
+ * Add product to no_update transient data to properly integrate with WP 5.5 auto-updates UI.
578
  *
579
+ * @since 2.4.1
580
+ * @link https://make.wordpress.org/core/2020/07/30/recommended-usage-of-the-updates-api-to-support-the-auto-updates-ui-for-plugins-and-themes-in-wordpress-5-5/
581
  */
582
+ $transient_data->no_update[ $basename ] = $this->_fs->is_plugin() ?
583
+ (object) array(
584
+ 'id' => $basename,
585
+ 'slug' => $this->_fs->get_slug(),
586
+ 'plugin' => $basename,
587
+ 'new_version' => $this->_fs->get_plugin_version(),
588
+ 'url' => '',
589
+ 'package' => '',
590
+ 'icons' => array(),
591
+ 'banners' => array(),
592
+ 'banners_rtl' => array(),
593
+ 'tested' => '',
594
+ 'requires_php' => '',
595
+ 'compatibility' => new stdClass(),
596
+ ) :
597
+ array(
598
+ 'theme' => $basename,
599
+ 'new_version' => $this->_fs->get_plugin_version(),
600
+ 'url' => '',
601
+ 'package' => '',
602
+ 'requires' => '',
603
+ 'requires_php' => '',
604
+ );
605
  }
606
 
607
  $slug = $this->_fs->get_slug();
freemius/includes/class-fs-storage.php CHANGED
@@ -336,57 +336,63 @@
336
  private static function load_network_options_map() {
337
  self::$_NETWORK_OPTIONS_MAP = array(
338
  // Network level options.
339
- 'affiliate_application_data' => 0,
340
- 'beta_data' => 0,
341
- 'connectivity_test' => 0,
342
- 'handle_gdpr_admin_notice' => 0,
343
- 'has_trial_plan' => 0,
344
- 'install_sync_timestamp' => 0,
345
- 'install_sync_cron' => 0,
346
- 'is_anonymous_ms' => 0,
347
- 'is_network_activated' => 0,
348
- 'is_on' => 0,
349
- 'is_plugin_new_install' => 0,
350
- 'network_install_blog_id' => 0,
351
- 'pending_sites_info' => 0,
352
- 'plugin_last_version' => 0,
353
- 'plugin_main_file' => 0,
354
- 'plugin_version' => 0,
355
- 'sdk_downgrade_mode' => 0,
356
- 'sdk_last_version' => 0,
357
- 'sdk_upgrade_mode' => 0,
358
- 'sdk_version' => 0,
359
- 'sticky_optin_added_ms' => 0,
360
- 'subscriptions' => 0,
361
- 'sync_timestamp' => 0,
362
- 'sync_cron' => 0,
363
- 'was_plugin_loaded' => 0,
364
- 'network_user_id' => 0,
365
- 'plugin_upgrade_mode' => 0,
366
- 'plugin_downgrade_mode' => 0,
367
- 'is_network_connected' => 0,
368
  /**
369
  * Special flag that is used when a super-admin upgrades to the new version of the SDK that
370
  * supports network level integration, when the connection decision wasn't made for all of the
371
  * sites in the network.
372
  */
373
- 'is_network_activation' => 0,
 
374
 
375
  // When network activated, then network level.
376
- 'install_timestamp' => 1,
377
- 'prev_is_premium' => 1,
378
- 'require_license_activation' => 1,
379
 
380
  // If not network activated OR delegated, then site level.
381
- 'activation_timestamp' => 2,
382
- 'prev_user_id' => 2,
383
- 'sticky_optin_added' => 2,
384
- 'uninstall_reason' => 2,
385
- 'is_pending_activation' => 2,
386
- 'pending_license_key' => 2,
 
 
 
 
 
387
 
388
  // Site level options.
389
- 'is_anonymous' => 3,
390
  );
391
  }
392
 
336
  private static function load_network_options_map() {
337
  self::$_NETWORK_OPTIONS_MAP = array(
338
  // Network level options.
339
+ 'affiliate_application_data' => 0,
340
+ 'beta_data' => 0,
341
+ 'connectivity_test' => 0,
342
+ 'handle_gdpr_admin_notice' => 0,
343
+ 'has_trial_plan' => 0,
344
+ 'install_sync_timestamp' => 0,
345
+ 'install_sync_cron' => 0,
346
+ 'is_anonymous_ms' => 0,
347
+ 'is_network_activated' => 0,
348
+ 'is_on' => 0,
349
+ 'is_plugin_new_install' => 0,
350
+ 'network_install_blog_id' => 0,
351
+ 'pending_sites_info' => 0,
352
+ 'plugin_last_version' => 0,
353
+ 'plugin_main_file' => 0,
354
+ 'plugin_version' => 0,
355
+ 'sdk_downgrade_mode' => 0,
356
+ 'sdk_last_version' => 0,
357
+ 'sdk_upgrade_mode' => 0,
358
+ 'sdk_version' => 0,
359
+ 'sticky_optin_added_ms' => 0,
360
+ 'subscriptions' => 0,
361
+ 'sync_timestamp' => 0,
362
+ 'sync_cron' => 0,
363
+ 'was_plugin_loaded' => 0,
364
+ 'network_user_id' => 0,
365
+ 'plugin_upgrade_mode' => 0,
366
+ 'plugin_downgrade_mode' => 0,
367
+ 'is_network_connected' => 0,
368
  /**
369
  * Special flag that is used when a super-admin upgrades to the new version of the SDK that
370
  * supports network level integration, when the connection decision wasn't made for all of the
371
  * sites in the network.
372
  */
373
+ 'is_network_activation' => 0,
374
+ 'license_migration' => 0,
375
 
376
  // When network activated, then network level.
377
+ 'install_timestamp' => 1,
378
+ 'prev_is_premium' => 1,
379
+ 'require_license_activation' => 1,
380
 
381
  // If not network activated OR delegated, then site level.
382
+ 'activation_timestamp' => 2,
383
+ 'expired_license_notice_shown' => 2,
384
+ 'is_whitelabeled' => 2,
385
+ 'last_license_key' => 2,
386
+ 'last_license_user_id' => 2,
387
+ 'prev_user_id' => 2,
388
+ 'sticky_optin_added' => 2,
389
+ 'uninstall_reason' => 2,
390
+ 'is_pending_activation' => 2,
391
+ 'pending_license_key' => 2,
392
+ 'is_extensions_tracking_allowed' => 2,
393
 
394
  // Site level options.
395
+ 'is_anonymous' => 3,
396
  );
397
  }
398
 
freemius/includes/customizer/class-fs-customizer-support-section.php CHANGED
@@ -87,10 +87,10 @@
87
  <div class="button-group">
88
  <# } #>
89
  <# if ( data.contact ) { #>
90
- <a class="button" href="{{ data.contact.url }}" target="_blank">{{ data.contact.label }} </a>
91
  <# } #>
92
  <# if ( data.support ) { #>
93
- <a class="button" href="{{ data.support.url }}" target="_blank">{{ data.support.label }} </a>
94
  <# } #>
95
  <# if ( data.contact && data.support ) { #>
96
  </div>
87
  <div class="button-group">
88
  <# } #>
89
  <# if ( data.contact ) { #>
90
+ <a class="button" href="{{ data.contact.url }}" target="_blank" rel="noopener noreferrer">{{ data.contact.label }} </a>
91
  <# } #>
92
  <# if ( data.support ) { #>
93
+ <a class="button" href="{{ data.support.url }}" target="_blank" rel="noopener noreferrer">{{ data.support.label }} </a>
94
  <# } #>
95
  <# if ( data.contact && data.support ) { #>
96
  </div>
freemius/includes/customizer/class-fs-customizer-upsell-control.php CHANGED
@@ -58,8 +58,12 @@
58
  $this->fs->get_trial_url() :
59
  $this->fs->get_upgrade_url();
60
 
 
 
 
 
61
  // Load features.
62
- $pricing = $this->fs->get_api_plugin_scope()->get( $this->fs->add_show_pending( "pricing.json" ) );
63
 
64
  if ( $this->fs->is_api_result_object( $pricing, 'plans' ) ) {
65
  // Add support features.
58
  $this->fs->get_trial_url() :
59
  $this->fs->get_upgrade_url();
60
 
61
+ $api = FS_Plugin::is_valid_id( $this->fs->get_bundle_id() ) ?
62
+ $this->fs->get_api_bundle_scope() :
63
+ $this->fs->get_api_plugin_scope();
64
+
65
  // Load features.
66
+ $pricing = $api->get( $this->fs->add_show_pending( "pricing.json" ) );
67
 
68
  if ( $this->fs->is_api_result_object( $pricing, 'plans' ) ) {
69
  // Add support features.
freemius/includes/entities/class-fs-entity.php CHANGED
@@ -146,4 +146,14 @@
146
  static function is_valid_id($id){
147
  return is_numeric($id);
148
  }
 
 
 
 
 
 
 
 
 
 
149
  }
146
  static function is_valid_id($id){
147
  return is_numeric($id);
148
  }
149
+
150
+ /**
151
+ * @author Leo Fajardo (@leorw)
152
+ * @since 2.3.1
153
+ *
154
+ * @return string
155
+ */
156
+ public static function get_class_name() {
157
+ return get_called_class();
158
+ }
159
  }
freemius/includes/entities/class-fs-payment.php CHANGED
@@ -158,8 +158,8 @@
158
  // Lazy load.
159
  self::$CURRENCY_2_SYMBOL = array(
160
  self::CURRENCY_USD => '$',
161
- self::CURRENCY_GBP => '£',
162
- self::CURRENCY_EUR => '',
163
  );
164
  }
165
 
158
  // Lazy load.
159
  self::$CURRENCY_2_SYMBOL = array(
160
  self::CURRENCY_USD => '$',
161
+ self::CURRENCY_GBP => '&pound;',
162
+ self::CURRENCY_EUR => '&euro;',
163
  );
164
  }
165
 
freemius/includes/entities/class-fs-plugin-license.php CHANGED
@@ -50,6 +50,13 @@
50
  * @var number
51
  */
52
  public $parent_license_id;
 
 
 
 
 
 
 
53
  /**
54
  * @var number
55
  */
@@ -74,6 +81,10 @@
74
  * @var string
75
  */
76
  public $secret_key;
 
 
 
 
77
  /**
78
  * @var bool $is_free_localhost Defaults to true. If true, allow unlimited localhost installs with the same
79
  * license.
@@ -287,4 +298,33 @@
287
  function total_activations() {
288
  return ( $this->activated + $this->activated_local );
289
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
290
  }
50
  * @var number
51
  */
52
  public $parent_license_id;
53
+ /**
54
+ * @author Leo Fajardo (@leorw)
55
+ * @since 2.4.0
56
+ *
57
+ * @var array
58
+ */
59
+ public $products;
60
  /**
61
  * @var number
62
  */
81
  * @var string
82
  */
83
  public $secret_key;
84
+ /**
85
+ * @var bool
86
+ */
87
+ public $is_whitelabeled;
88
  /**
89
  * @var bool $is_free_localhost Defaults to true. If true, allow unlimited localhost installs with the same
90
  * license.
298
  function total_activations() {
299
  return ( $this->activated + $this->activated_local );
300
  }
301
+
302
+ /**
303
+ * @author Vova Feldman (@svovaf)
304
+ * @since 2.3.1
305
+ *
306
+ * @return string
307
+ */
308
+ function get_html_escaped_masked_secret_key() {
309
+ return self::mask_secret_key_for_html( $this->secret_key );
310
+ }
311
+
312
+ /**
313
+ * @author Vova Feldman (@svovaf)
314
+ * @since 2.3.1
315
+ *
316
+ * @param string $secret_key
317
+ *
318
+ * @return string
319
+ */
320
+ static function mask_secret_key_for_html( $secret_key ) {
321
+ return (
322
+ // Initial 6 chars - sk_ABC
323
+ htmlspecialchars( substr( $secret_key, 0, 6 ) ) .
324
+ // Masking
325
+ str_pad( '', ( strlen( $secret_key ) - 9 ) * 6, '&bull;' ) .
326
+ // Last 3 chars.
327
+ htmlspecialchars( substr( $secret_key, - 3 ) )
328
+ );
329
+ }
330
  }
freemius/includes/entities/class-fs-plugin.php CHANGED
@@ -99,6 +99,11 @@
99
  * @var null|number
100
  */
101
  public $bundle_id;
 
 
 
 
 
102
 
103
  const AFFILIATE_MODERATION_CUSTOMERS = 'customers';
104
 
99
  * @var null|number
100
  */
101
  public $bundle_id;
102
+ /**
103
+ * @since 2.3.1
104
+ * @var null|string
105
+ */
106
+ public $bundle_public_key;
107
 
108
  const AFFILIATE_MODERATION_CUSTOMERS = 'customers';
109
 
freemius/includes/entities/class-fs-pricing.php CHANGED
@@ -34,6 +34,13 @@
34
  * @var null|float
35
  */
36
  public $lifetime_price;
 
 
 
 
 
 
 
37
 
38
  #endregion Properties
39
 
@@ -138,4 +145,13 @@
138
  return ( $this->monthly_price * 12 - $this->annual_price ) * ( $this->is_unlimited() ? 1 : $this->licenses );
139
  }
140
 
 
 
 
 
 
 
 
 
 
141
  }
34
  * @var null|float
35
  */
36
  public $lifetime_price;
37
+ /**
38
+ * @author Leo Fajardo (@leorw)
39
+ * @since 2.3.1
40
+ *
41
+ * @var string One of the following: `usd`, `gbp`, `eur`.
42
+ */
43
+ public $currency;
44
 
45
  #endregion Properties
46
 
145
  return ( $this->monthly_price * 12 - $this->annual_price ) * ( $this->is_unlimited() ? 1 : $this->licenses );
146
  }
147
 
148
+ /**
149
+ * @author Leo Fajardo (@leorw)
150
+ * @since 2.3.1
151
+ *
152
+ * @return bool
153
+ */
154
+ function is_usd() {
155
+ return ( 'usd' === $this->currency );
156
+ }
157
  }
freemius/includes/entities/class-fs-site.php CHANGED
@@ -171,15 +171,18 @@
171
  // WPEngine staging.
172
  fs_ends_with( $subdomain, '.staging.wpengine.com' ) ||
173
  fs_ends_with( $subdomain, '.dev.wpengine.com' ) ||
 
174
  // Pantheon
175
- ( fs_ends_with($subdomain, 'pantheonsite.io') &&
176
- (fs_starts_with($subdomain, 'test-') || fs_starts_with($subdomain, 'dev-'))) ||
177
  // Cloudways
178
  fs_ends_with( $subdomain, '.cloudwaysapps.com' ) ||
179
  // Kinsta
180
- (fs_ends_with($subdomain, '.kinsta.com') && fs_starts_with($subdomain, 'staging-')) ||
181
  // DesktopServer
182
- fs_ends_with( $subdomain, '.dev.cc' )
 
 
183
  );
184
  }
185
 
171
  // WPEngine staging.
172
  fs_ends_with( $subdomain, '.staging.wpengine.com' ) ||
173
  fs_ends_with( $subdomain, '.dev.wpengine.com' ) ||
174
+ fs_ends_with( $subdomain, '.wpengine.com' ) ||
175
  // Pantheon
176
+ ( fs_ends_with( $subdomain, 'pantheonsite.io' ) &&
177
+ ( fs_starts_with( $subdomain, 'test-' ) || fs_starts_with( $subdomain, 'dev-' ) ) ) ||
178
  // Cloudways
179
  fs_ends_with( $subdomain, '.cloudwaysapps.com' ) ||
180
  // Kinsta
181
+ ( fs_starts_with( $subdomain, 'staging-' ) && ( fs_ends_with( $subdomain, '.kinsta.com' ) || fs_ends_with( $subdomain, '.kinsta.cloud' ) ) ) ||
182
  // DesktopServer
183
+ fs_ends_with( $subdomain, '.dev.cc' ) ||
184
+ // Pressable
185
+ fs_ends_with( $subdomain, '.mystagingwebsite.com' )
186
  );
187
  }
188
 
freemius/includes/entities/class-fs-subscription.php CHANGED
@@ -1,125 +1,147 @@
1
  <?php
2
- /**
3
- * @package Freemius
4
- * @copyright Copyright (c) 2015, Freemius, Inc.
5
- * @license https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License Version 3
6
- * @since 1.0.9
7
- */
8
 
9
- if ( ! defined( 'ABSPATH' ) ) {
10
- exit;
11
- }
12
 
13
- class FS_Subscription extends FS_Entity {
14
 
15
- #region Properties
16
 
17
- /**
18
- * @var number
19
- */
20
- public $user_id;
21
- /**
22
- * @var number
23
- */
24
- public $install_id;
25
- /**
26
- * @var number
27
- */
28
- public $plan_id;
29
- /**
30
- * @var number
31
- */
32
- public $license_id;
33
- /**
34
- * @var float
35
- */
36
- public $total_gross;
37
- /**
38
- * @var float
39
- */
40
- public $amount_per_cycle;
41
- /**
42
- * @var int # of months
43
- */
44
- public $billing_cycle;
45
- /**
46
- * @var float
47
- */
48
- public $outstanding_balance;
49
- /**
50
- * @var int
51
- */
52
- public $failed_payments;
53
- /**
54
- * @var string
55
- */
56
- public $gateway;
57
- /**
58
- * @var string
59
- */
60
- public $external_id;
61
- /**
62
- * @var string|null
63
- */
64
- public $trial_ends;
65
- /**
66
- * @var string|null Datetime of the next payment, or null if cancelled
67
- */
68
- public $next_payment;
69
- /**
70
- * @var string|null
71
- */
72
- public $vat_id;
73
- /**
74
- * @var string Two characters country code
75
- */
76
- public $country_code;
 
 
 
 
 
 
77
 
78
- #endregion Properties
79
 
80
- /**
81
- * @param object|bool $subscription
82
- */
83
- function __construct( $subscription = false ) {
84
- parent::__construct( $subscription );
85
- }
86
 
87
- static function get_type() {
88
- return 'subscription';
89
- }
90
 
91
- /**
92
- * Check if subscription is active.
93
- *
94
- * @author Vova Feldman (@svovaf)
95
- * @since 1.0.9
96
- *
97
- * @return bool
98
- */
99
- function is_active() {
100
- return ! empty( $this->next_payment ) &&
101
- ( strtotime( $this->next_payment ) > WP_FS__SCRIPT_START_TIME );
102
- }
103
 
104
- /**
105
- * Subscription considered to be new without any payments
106
- * if the next payment should be made within less than 24 hours
107
- * from the subscription creation.
108
- *
109
- * @author Vova Feldman (@svovaf)
110
- * @since 1.0.9
111
- *
112
- * @return bool
113
- */
114
- function is_first_payment_pending() {
115
- return ( WP_FS__TIME_24_HOURS_IN_SEC >= strtotime( $this->next_payment ) - strtotime( $this->created ) );
116
- }
117
 
118
- /**
119
- * @author Vova Feldman (@svovaf)
120
- * @since 1.1.7
121
- */
122
- function has_trial() {
123
- return ! is_null( $this->trial_ends );
124
- }
125
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  <?php
2
+ /**
3
+ * @package Freemius
4
+ * @copyright Copyright (c) 2015, Freemius, Inc.
5
+ * @license https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License Version 3
6
+ * @since 1.0.9
7
+ */
8
 
9
+ if ( ! defined( 'ABSPATH' ) ) {
10
+ exit;
11
+ }
12
 
13
+ class FS_Subscription extends FS_Entity {
14
 
15
+ #region Properties
16
 
17
+ /**
18
+ * @var number
19
+ */
20
+ public $user_id;
21
+ /**
22
+ * @var number
23
+ */
24
+ public $install_id;
25
+ /**
26
+ * @var number
27
+ */
28
+ public $plan_id;
29
+ /**
30
+ * @var number
31
+ */
32
+ public $license_id;
33
+ /**
34
+ * @var float
35
+ */
36
+ public $total_gross;
37
+ /**
38
+ * @var float
39
+ */
40
+ public $amount_per_cycle;
41
+ /**
42
+ * @var int # of months
43
+ */
44
+ public $billing_cycle;
45
+ /**
46
+ * @var float
47
+ */
48
+ public $outstanding_balance;
49
+ /**
50
+ * @var int
51
+ */
52
+ public $failed_payments;
53
+ /**
54
+ * @var string
55
+ */
56
+ public $gateway;
57
+ /**
58
+ * @var string
59
+ */
60
+ public $external_id;
61
+ /**
62
+ * @var string|null
63
+ */
64
+ public $trial_ends;
65
+ /**
66
+ * @var string|null Datetime of the next payment, or null if cancelled.
67
+ */
68
+ public $next_payment;
69
+ /**
70
+ * @since 2.3.1
71
+ *
72
+ * @var string|null Datetime of the cancellation.
73
+ */
74
+ public $canceled_at;
75
+ /**
76
+ * @var string|null
77
+ */
78
+ public $vat_id;
79
+ /**
80
+ * @var string Two characters country code
81
+ */
82
+ public $country_code;
83
 
84
+ #endregion Properties
85
 
86
+ /**
87
+ * @param object|bool $subscription
88
+ */
89
+ function __construct( $subscription = false ) {
90
+ parent::__construct( $subscription );
91
+ }
92
 
93
+ static function get_type() {
94
+ return 'subscription';
95
+ }
96
 
97
+ /**
98
+ * Check if subscription is active.
99
+ *
100
+ * @author Vova Feldman (@svovaf)
101
+ * @since 1.0.9
102
+ *
103
+ * @return bool
104
+ */
105
+ function is_active() {
106
+ if ( $this->is_canceled() ) {
107
+ return false;
108
+ }
109
 
110
+ return (
111
+ ! empty( $this->next_payment ) &&
112
+ strtotime( $this->next_payment ) > WP_FS__SCRIPT_START_TIME
113
+ );
114
+ }
 
 
 
 
 
 
 
 
115
 
116
+ /**
117
+ * @author Vova Feldman (@svovaf)
118
+ * @since 2.3.1
119
+ *
120
+ * @return bool
121
+ */
122
+ function is_canceled() {
123
+ return ! is_null( $this->canceled_at );
124
+ }
125
+
126
+ /**
127
+ * Subscription considered to be new without any payments
128
+ * if the next payment should be made within less than 24 hours
129
+ * from the subscription creation.
130
+ *
131
+ * @author Vova Feldman (@svovaf)
132
+ * @since 1.0.9
133
+ *
134
+ * @return bool
135
+ */
136
+ function is_first_payment_pending() {
137
+ return ( WP_FS__TIME_24_HOURS_IN_SEC >= strtotime( $this->next_payment ) - strtotime( $this->created ) );
138
+ }
139
+
140
+ /**
141
+ * @author Vova Feldman (@svovaf)
142
+ * @since 1.1.7
143
+ */
144
+ function has_trial() {
145
+ return ! is_null( $this->trial_ends );
146
+ }
147
+ }
freemius/includes/fs-core-functions.php CHANGED
@@ -63,62 +63,70 @@
63
  /* Scripts and styles including.
64
  --------------------------------------------------------------------------------------------*/
65
 
66
- /**
67
- * Generates an absolute URL to the given path. This function ensures that the URL will be correct whether the asset
68
- * is inside a plugin's folder or a theme's folder.
69
- *
70
- * Examples:
71
- * 1. "themes" folder
72
- * Path: C:/xampp/htdocs/fswp/wp-content/themes/twentytwelve/freemius/assets/css/admin/common.css
73
- * URL: http://fswp:8080/wp-content/themes/twentytwelve/freemius/assets/css/admin/common.css
74
- *
75
- * 2. "plugins" folder
76
- * Path: C:/xampp/htdocs/fswp/wp-content/plugins/rating-widget-premium/freemius/assets/css/admin/common.css
77
- * URL: http://fswp:8080/wp-content/plugins/rating-widget-premium/freemius/assets/css/admin/common.css
78
- *
79
- * @author Leo Fajardo (@leorw)
80
- * @since 1.2.2
81
- *
82
- * @param string $asset_abs_path Asset's absolute path.
83
- *
84
- * @return string Asset's URL.
85
- */
86
- function fs_asset_url( $asset_abs_path ) {
87
- $wp_content_dir = fs_normalize_path( WP_CONTENT_DIR );
88
- $asset_abs_path = fs_normalize_path( $asset_abs_path );
89
-
90
- if ( 0 === strpos( $asset_abs_path, $wp_content_dir ) ) {
91
- // Handle both theme and plugin assets located in the standard directories.
92
- $asset_rel_path = str_replace( $wp_content_dir, '', $asset_abs_path );
93
- $asset_url = content_url( fs_normalize_path( $asset_rel_path ) );
94
- } else {
95
- $wp_plugins_dir = fs_normalize_path( WP_PLUGIN_DIR );
96
- if ( 0 === strpos( $asset_abs_path, $wp_plugins_dir ) ) {
97
- // Try to handle plugin assets that may be located in a non-standard plugins directory.
98
- $asset_rel_path = str_replace( $wp_plugins_dir, '', $asset_abs_path );
99
- $asset_url = plugins_url( fs_normalize_path( $asset_rel_path ) );
100
  } else {
101
- // Try to handle theme assets that may be located in a non-standard themes directory.
102
- $active_theme_stylesheet = get_stylesheet();
103
- $wp_themes_dir = fs_normalize_path( trailingslashit( get_theme_root( $active_theme_stylesheet ) ) );
104
- $asset_rel_path = str_replace( $wp_themes_dir, '', fs_normalize_path( $asset_abs_path ) );
105
- $asset_url = trailingslashit( get_theme_root_uri( $active_theme_stylesheet ) ) . fs_normalize_path( $asset_rel_path );
 
 
 
 
 
 
 
106
  }
107
- }
108
 
109
- return $asset_url;
 
110
  }
111
 
112
- function fs_enqueue_local_style( $handle, $path, $deps = array(), $ver = false, $media = 'all' ) {
113
- wp_enqueue_style( $handle, fs_asset_url( WP_FS__DIR_CSS . '/' . trim( $path, '/' ) ), $deps, $ver, $media );
 
 
114
  }
115
 
116
- function fs_enqueue_local_script( $handle, $path, $deps = array(), $ver = false, $in_footer = 'all' ) {
117
- wp_enqueue_script( $handle, fs_asset_url( WP_FS__DIR_JS . '/' . trim( $path, '/' ) ), $deps, $ver, $in_footer );
 
 
118
  }
119
 
120
- function fs_img_url( $path, $img_dir = WP_FS__DIR_IMG ) {
121
- return ( fs_asset_url( $img_dir . '/' . trim( $path, '/' ) ) );
 
 
122
  }
123
 
124
  #--------------------------------------------------------------------------------
@@ -315,138 +323,191 @@
315
 
316
  /* Core UI.
317
  --------------------------------------------------------------------------------------------*/
318
- /**
319
- * @param number $module_id
320
- * @param string $page
321
- * @param string $action
322
- * @param string $title
323
- * @param string $button_class
324
- * @param array $params
325
- * @param bool $is_primary
326
- * @param bool $is_small
327
- * @param string|bool $icon_class Optional class for an icon (since 1.1.7).
328
- * @param string|bool $confirmation Optional confirmation message before submit (since 1.1.7).
329
- * @param string $method Since 1.1.7
330
- *
331
- * @uses fs_ui_get_action_button()
332
- */
333
- function fs_ui_action_button(
334
- $module_id,
335
- $page,
336
- $action,
337
- $title,
338
- $button_class = '',
339
- $params = array(),
340
- $is_primary = true,
341
- $is_small = false,
342
- $icon_class = false,
343
- $confirmation = false,
344
- $method = 'GET'
345
- ) {
346
- echo fs_ui_get_action_button(
347
  $module_id,
348
  $page,
349
  $action,
350
  $title,
351
- $button_class,
352
- $params,
353
- $is_primary,
354
- $is_small,
355
- $icon_class,
356
- $confirmation,
357
- $method
358
- );
359
- }
360
-
361
- /**
362
- * @author Vova Feldman (@svovaf)
363
- * @since 1.1.7
364
- *
365
- * @param number $module_id
366
- * @param string $page
367
- * @param string $action
368
- * @param string $title
369
- * @param string $button_class
370
- * @param array $params
371
- * @param bool $is_primary
372
- * @param bool $is_small
373
- * @param string|bool $icon_class Optional class for an icon.
374
- * @param string|bool $confirmation Optional confirmation message before submit.
375
- * @param string $method
376
- *
377
- * @return string
378
- */
379
- function fs_ui_get_action_button(
380
- $module_id,
381
- $page,
382
- $action,
383
- $title,
384
- $button_class = '',
385
- $params = array(),
386
- $is_primary = true,
387
- $is_small = false,
388
- $icon_class = false,
389
- $confirmation = false,
390
- $method = 'GET'
391
- ) {
392
- // Prepend icon (if set).
393
- $title = ( is_string( $icon_class ) ? '<i class="' . $icon_class . '"></i> ' : '' ) . $title;
394
-
395
- if ( is_string( $confirmation ) ) {
396
- return sprintf( '<form action="%s" method="%s"><input type="hidden" name="fs_action" value="%s">%s<a href="#" class="%s" onclick="if (confirm(\'%s\')) this.parentNode.submit(); return false;">%s</a></form>',
397
- freemius( $module_id )->_get_admin_page_url( $page, $params ),
398
- $method,
399
  $action,
400
- wp_nonce_field( $action, '_wpnonce', true, false ),
401
- 'button' . ( ! empty( $button_class ) ? ' ' . $button_class : '' ) . ( $is_primary ? ' button-primary' : '' ) . ( $is_small ? ' button-small' : '' ),
 
 
 
 
402
  $confirmation,
403
- $title
404
- );
405
- } else if ( 'GET' !== strtoupper( $method ) ) {
406
- return sprintf( '<form action="%s" method="%s"><input type="hidden" name="fs_action" value="%s">%s<a href="#" class="%s" onclick="this.parentNode.submit(); return false;">%s</a></form>',
407
- freemius( $module_id )->_get_admin_page_url( $page, $params ),
408
- $method,
409
- $action,
410
- wp_nonce_field( $action, '_wpnonce', true, false ),
411
- 'button' . ( ! empty( $button_class ) ? ' ' . $button_class : '' ) . ( $is_primary ? ' button-primary' : '' ) . ( $is_small ? ' button-small' : '' ),
412
- $title
413
- );
414
- } else {
415
- return sprintf( '<a href="%s" class="%s">%s</a></form>',
416
- wp_nonce_url( freemius( $module_id )->_get_admin_page_url( $page, array_merge( $params, array( 'fs_action' => $action ) ) ), $action ),
417
- 'button' . ( ! empty( $button_class ) ? ' ' . $button_class : '' ) . ( $is_primary ? ' button-primary' : '' ) . ( $is_small ? ' button-small' : '' ),
418
- $title
419
  );
420
  }
421
  }
422
 
423
- function fs_ui_action_link( $module_id, $page, $action, $title, $params = array() ) {
424
- ?><a class=""
425
- href="<?php echo wp_nonce_url( freemius( $module_id )->_get_admin_page_url( $page, array_merge( $params, array( 'fs_action' => $action ) ) ), $action ) ?>"><?php echo $title ?></a><?php
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
426
  }
427
 
428
- /*function fs_error_handler($errno, $errstr, $errfile, $errline)
429
- {
430
- if (false === strpos($errfile, 'freemius/'))
431
- {
432
- // @todo Dump Freemius errors to local log.
433
- }
434
-
435
- // switch ($errno) {
436
- // case E_USER_ERROR:
437
- // break;
438
- // case E_WARNING:
439
- // case E_USER_WARNING:
440
- // break;
441
- // case E_NOTICE:
442
- // case E_USER_NOTICE:
443
- // break;
444
- // default:
445
- // break;
446
- // }
447
  }
448
 
449
- set_error_handler('fs_error_handler');*/
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
450
 
451
  if ( ! function_exists( 'fs_nonce_url' ) ) {
452
  /**
@@ -634,71 +695,75 @@
634
 
635
  #endregion Url Canonization ------------------------------------------------------------------
636
 
637
- /**
638
- * @author Vova Feldman (@svovaf)
639
- *
640
- * @since 1.2.2 Changed to usage of WP_Filesystem_Direct.
641
- *
642
- * @param string $from URL
643
- * @param string $to File path.
644
- *
645
- * @return bool Is successfully downloaded.
646
- */
647
- function fs_download_image( $from, $to ) {
648
- $dir = dirname( $to );
 
649
 
650
- if ( 'direct' !== get_filesystem_method( array(), $dir ) ) {
651
- return false;
652
- }
653
 
654
- if ( ! class_exists( 'WP_Filesystem_Direct' ) ) {
655
- require_once ABSPATH . 'wp-admin/includes/class-wp-filesystem-base.php';
656
- require_once ABSPATH . 'wp-admin/includes/class-wp-filesystem-direct.php';
657
- }
658
 
659
- $fs = new WP_Filesystem_Direct( '' );
660
- $tmpfile = download_url( $from );
661
 
662
- if ( $tmpfile instanceof WP_Error ) {
663
- // Issue downloading the file.
664
- return false;
665
- }
666
 
667
- $fs->copy( $tmpfile, $to );
668
- $fs->delete( $tmpfile );
669
 
670
- return true;
 
671
  }
672
 
673
  /* General Utilities
674
  --------------------------------------------------------------------------------------------*/
675
 
676
- /**
677
- * Sorts an array by the value of the priority key.
678
- *
679
- * @author Daniel Iser (@danieliser)
680
- * @since 1.1.7
681
- *
682
- * @param $a
683
- * @param $b
684
- *
685
- * @return int
686
- */
687
- function fs_sort_by_priority( $a, $b ) {
 
 
 
 
 
 
 
 
 
 
 
 
688
 
689
- // If b has a priority and a does not, b wins.
690
- if ( ! isset( $a['priority'] ) && isset( $b['priority'] ) ) {
691
- return 1;
692
- } // If b has a priority and a does not, b wins.
693
- elseif ( isset( $a['priority'] ) && ! isset( $b['priority'] ) ) {
694
- return - 1;
695
- } // If neither has a priority or both priorities are equal its a tie.
696
- elseif ( ( ! isset( $a['priority'] ) && ! isset( $b['priority'] ) ) || $a['priority'] === $b['priority'] ) {
697
- return 0;
698
  }
699
-
700
- // If both have priority return the winner.
701
- return ( $a['priority'] < $b['priority'] ) ? - 1 : 1;
702
  }
703
 
704
  #--------------------------------------------------------------------------------
63
  /* Scripts and styles including.
64
  --------------------------------------------------------------------------------------------*/
65
 
66
+ if ( ! function_exists( 'fs_asset_url' ) ) {
67
+ /**
68
+ * Generates an absolute URL to the given path. This function ensures that the URL will be correct whether the asset
69
+ * is inside a plugin's folder or a theme's folder.
70
+ *
71
+ * Examples:
72
+ * 1. "themes" folder
73
+ * Path: C:/xampp/htdocs/fswp/wp-content/themes/twentytwelve/freemius/assets/css/admin/common.css
74
+ * URL: http://fswp:8080/wp-content/themes/twentytwelve/freemius/assets/css/admin/common.css
75
+ *
76
+ * 2. "plugins" folder
77
+ * Path: C:/xampp/htdocs/fswp/wp-content/plugins/rating-widget-premium/freemius/assets/css/admin/common.css
78
+ * URL: http://fswp:8080/wp-content/plugins/rating-widget-premium/freemius/assets/css/admin/common.css
79
+ *
80
+ * @author Leo Fajardo (@leorw)
81
+ * @since 1.2.2
82
+ *
83
+ * @param string $asset_abs_path Asset's absolute path.
84
+ *
85
+ * @return string Asset's URL.
86
+ */
87
+ function fs_asset_url( $asset_abs_path ) {
88
+ $wp_content_dir = fs_normalize_path( WP_CONTENT_DIR );
89
+ $asset_abs_path = fs_normalize_path( $asset_abs_path );
90
+
91
+ if ( 0 === strpos( $asset_abs_path, $wp_content_dir ) ) {
92
+ // Handle both theme and plugin assets located in the standard directories.
93
+ $asset_rel_path = str_replace( $wp_content_dir, '', $asset_abs_path );
94
+ $asset_url = content_url( fs_normalize_path( $asset_rel_path ) );
 
 
 
 
 
95
  } else {
96
+ $wp_plugins_dir = fs_normalize_path( WP_PLUGIN_DIR );
97
+ if ( 0 === strpos( $asset_abs_path, $wp_plugins_dir ) ) {
98
+ // Try to handle plugin assets that may be located in a non-standard plugins directory.
99
+ $asset_rel_path = str_replace( $wp_plugins_dir, '', $asset_abs_path );
100
+ $asset_url = plugins_url( fs_normalize_path( $asset_rel_path ) );
101
+ } else {
102
+ // Try to handle theme assets that may be located in a non-standard themes directory.
103
+ $active_theme_stylesheet = get_stylesheet();
104
+ $wp_themes_dir = fs_normalize_path( trailingslashit( get_theme_root( $active_theme_stylesheet ) ) );
105
+ $asset_rel_path = str_replace( $wp_themes_dir, '', fs_normalize_path( $asset_abs_path ) );
106
+ $asset_url = trailingslashit( get_theme_root_uri( $active_theme_stylesheet ) ) . fs_normalize_path( $asset_rel_path );
107
+ }
108
  }
 
109
 
110
+ return $asset_url;
111
+ }
112
  }
113
 
114
+ if ( ! function_exists( 'fs_enqueue_local_style' ) ) {
115
+ function fs_enqueue_local_style( $handle, $path, $deps = array(), $ver = false, $media = 'all' ) {
116
+ wp_enqueue_style( $handle, fs_asset_url( WP_FS__DIR_CSS . '/' . trim( $path, '/' ) ), $deps, $ver, $media );
117
+ }
118
  }
119
 
120
+ if ( ! function_exists( 'fs_enqueue_local_script' ) ) {
121
+ function fs_enqueue_local_script( $handle, $path, $deps = array(), $ver = false, $in_footer = 'all' ) {
122
+ wp_enqueue_script( $handle, fs_asset_url( WP_FS__DIR_JS . '/' . trim( $path, '/' ) ), $deps, $ver, $in_footer );
123
+ }
124
  }
125
 
126
+ if ( ! function_exists( 'fs_img_url' ) ) {
127
+ function fs_img_url( $path, $img_dir = WP_FS__DIR_IMG ) {
128
+ return ( fs_asset_url( $img_dir . '/' . trim( $path, '/' ) ) );
129
+ }
130
  }
131
 
132
  #--------------------------------------------------------------------------------
323
 
324
  /* Core UI.
325
  --------------------------------------------------------------------------------------------*/
326
+ if ( ! function_exists( 'fs_ui_action_button' ) ) {
327
+ /**
328
+ * @param number $module_id
329
+ * @param string $page
330
+ * @param string $action
331
+ * @param string $title
332
+ * @param string $button_class
333
+ * @param array $params
334
+ * @param bool $is_primary
335
+ * @param bool $is_small
336
+ * @param string|bool $icon_class Optional class for an icon (since 1.1.7).
337
+ * @param string|bool $confirmation Optional confirmation message before submit (since 1.1.7).
338
+ * @param string $method Since 1.1.7
339
+ *
340
+ * @uses fs_ui_get_action_button()
341
+ */
342
+ function fs_ui_action_button(
 
 
 
 
 
 
 
 
 
 
 
 
343
  $module_id,
344
  $page,
345
  $action,
346
  $title,
347
+ $button_class = '',
348
+ $params = array(),
349
+ $is_primary = true,
350
+ $is_small = false,
351
+ $icon_class = false,
352
+ $confirmation = false,
353
+ $method = 'GET'
354
+ ) {
355
+ echo fs_ui_get_action_button(
356
+ $module_id,
357
+ $page,
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
358
  $action,
359
+ $title,
360
+ $button_class,
361
+ $params,
362
+ $is_primary,
363
+ $is_small,
364
+ $icon_class,
365
  $confirmation,
366
+ $method
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
367
  );
368
  }
369
  }
370
 
371
+ if ( ! function_exists( 'fs_ui_get_action_button' ) ) {
372
+ /**
373
+ * @author Vova Feldman (@svovaf)
374
+ * @since 1.1.7
375
+ *
376
+ * @param number $module_id
377
+ * @param string $page
378
+ * @param string $action
379
+ * @param string $title
380
+ * @param string $button_class
381
+ * @param array $params
382
+ * @param bool $is_primary
383
+ * @param bool $is_small
384
+ * @param string|bool $icon_class Optional class for an icon.
385
+ * @param string|bool $confirmation Optional confirmation message before submit.
386
+ * @param string $method
387
+ *
388
+ * @return string
389
+ */
390
+ function fs_ui_get_action_button(
391
+ $module_id,
392
+ $page,
393
+ $action,
394
+ $title,
395
+ $button_class = '',
396
+ $params = array(),
397
+ $is_primary = true,
398
+ $is_small = false,
399
+ $icon_class = false,
400
+ $confirmation = false,
401
+ $method = 'GET'
402
+ ) {
403
+ // Prepend icon (if set).
404
+ $title = ( is_string( $icon_class ) ? '<i class="' . $icon_class . '"></i> ' : '' ) . $title;
405
+
406
+ if ( is_string( $confirmation ) ) {
407
+ return sprintf( '<form action="%s" method="%s"><input type="hidden" name="fs_action" value="%s">%s<a href="#" class="%s" onclick="if (confirm(\'%s\')) this.parentNode.submit(); return false;">%s</a></form>',
408
+ freemius( $module_id )->_get_admin_page_url( $page, $params ),
409
+ $method,
410
+ $action,
411
+ wp_nonce_field( $action, '_wpnonce', true, false ),
412
+ 'button' . ( ! empty( $button_class ) ? ' ' . $button_class : '' ) . ( $is_primary ? ' button-primary' : '' ) . ( $is_small ? ' button-small' : '' ),
413
+ $confirmation,
414
+ $title
415
+ );
416
+ } else if ( 'GET' !== strtoupper( $method ) ) {
417
+ return sprintf( '<form action="%s" method="%s"><input type="hidden" name="fs_action" value="%s">%s<a href="#" class="%s" onclick="this.parentNode.submit(); return false;">%s</a></form>',
418
+ freemius( $module_id )->_get_admin_page_url( $page, $params ),
419
+ $method,
420
+ $action,
421
+ wp_nonce_field( $action, '_wpnonce', true, false ),
422
+ 'button' . ( ! empty( $button_class ) ? ' ' . $button_class : '' ) . ( $is_primary ? ' button-primary' : '' ) . ( $is_small ? ' button-small' : '' ),
423
+ $title
424
+ );
425
+ } else {
426
+ return sprintf( '<a href="%s" class="%s">%s</a></form>',
427
+ wp_nonce_url( freemius( $module_id )->_get_admin_page_url( $page, array_merge( $params, array( 'fs_action' => $action ) ) ), $action ),
428
+ 'button' . ( ! empty( $button_class ) ? ' ' . $button_class : '' ) . ( $is_primary ? ' button-primary' : '' ) . ( $is_small ? ' button-small' : '' ),
429
+ $title
430
+ );
431
+ }
432
+ }
433
+
434
+ function fs_ui_action_link( $module_id, $page, $action, $title, $params = array() ) {
435
+ ?><a class=""
436
+ href="<?php echo wp_nonce_url( freemius( $module_id )->_get_admin_page_url( $page, array_merge( $params, array( 'fs_action' => $action ) ) ), $action ) ?>"><?php echo $title ?></a><?php
437
+ }
438
  }
439
 
440
+ if ( ! function_exists( 'fs_get_entity' ) ) {
441
+ /**
442
+ * @author Leo Fajardo (@leorw)
443
+ * @since 2.3.1
444
+ *
445
+ * @param mixed $entity
446
+ * @param string $class
447
+ *
448
+ * @return FS_Plugin|FS_User|FS_Site|FS_Plugin_License|FS_Plugin_Plan|FS_Plugin_Tag|FS_Subscription
449
+ */
450
+ function fs_get_entity( $entity, $class ) {
451
+ if ( ! is_object( $entity ) || $entity instanceof $class ) {
452
+ return $entity;
453
+ }
454
+
455
+ return new $class( $entity );
456
+ }
 
 
457
  }
458
 
459
+ if ( ! function_exists( 'fs_get_entities' ) ) {
460
+ /**
461
+ * @author Leo Fajardo (@leorw)
462
+ * @since 2.3.1
463
+ *
464
+ * @param mixed $entities
465
+ * @param string $class_name
466
+ *
467
+ * @return FS_Plugin[]|FS_User[]|FS_Site[]|FS_Plugin_License[]|FS_Plugin_Plan[]|FS_Plugin_Tag[]|FS_Subscription[]
468
+ */
469
+ function fs_get_entities( $entities, $class_name ) {
470
+ if ( ! is_array( $entities ) || empty( $entities ) ) {
471
+ return $entities;
472
+ }
473
+
474
+ // Get first element.
475
+ $first_array_element = reset( $entities );
476
+
477
+ if ( $first_array_element instanceof $class_name ) {
478
+ /**
479
+ * If the first element of the array is an instance of the context class, assume that all other
480
+ * elements are instances of the class.
481
+ */
482
+ return $entities;
483
+ }
484
+
485
+ if (
486
+ is_array( $first_array_element ) &&
487
+ ! empty( $first_array_element )
488
+ ) {
489
+ $first_array_element = reset( $first_array_element );
490
+
491
+ if ( $first_array_element instanceof $class_name ) {
492
+ /**
493
+ * If the first element of the `$entities` array is an array whose first element is an instance of the
494
+ * context class, assume that all other objects are instances of the class.
495
+ */
496
+ return $entities;
497
+ }
498
+ }
499
+
500
+ foreach ( $entities as $key => $entities_or_entity ) {
501
+ if ( is_array( $entities_or_entity ) ) {
502
+ $entities[ $key ] = fs_get_entities( $entities_or_entity, $class_name );
503
+ } else {
504
+ $entities[ $key ] = fs_get_entity( $entities_or_entity, $class_name );
505
+ }
506
+ }
507
+
508
+ return $entities;
509
+ }
510
+ }
511
 
512
  if ( ! function_exists( 'fs_nonce_url' ) ) {
513
  /**
695
 
696
  #endregion Url Canonization ------------------------------------------------------------------
697
 
698
+ if ( ! function_exists( 'fs_download_image' ) ) {
699
+ /**
700
+ * @author Vova Feldman (@svovaf)
701
+ *
702
+ * @since 1.2.2 Changed to usage of WP_Filesystem_Direct.
703
+ *
704
+ * @param string $from URL
705
+ * @param string $to File path.
706
+ *
707
+ * @return bool Is successfully downloaded.
708
+ */
709
+ function fs_download_image( $from, $to ) {
710
+ $dir = dirname( $to );
711
 
712
+ if ( 'direct' !== get_filesystem_method( array(), $dir ) ) {
713
+ return false;
714
+ }
715
 
716
+ if ( ! class_exists( 'WP_Filesystem_Direct' ) ) {
717
+ require_once ABSPATH . 'wp-admin/includes/class-wp-filesystem-base.php';
718
+ require_once ABSPATH . 'wp-admin/includes/class-wp-filesystem-direct.php';
719
+ }
720
 
721
+ $fs = new WP_Filesystem_Direct( '' );
722
+ $tmpfile = download_url( $from );
723
 
724
+ if ( $tmpfile instanceof WP_Error ) {
725
+ // Issue downloading the file.
726
+ return false;
727
+ }
728
 
729
+ $fs->copy( $tmpfile, $to );
730
+ $fs->delete( $tmpfile );
731
 
732
+ return true;
733
+ }
734
  }
735
 
736
  /* General Utilities
737
  --------------------------------------------------------------------------------------------*/
738
 
739
+ if ( ! function_exists( 'fs_sort_by_priority' ) ) {
740
+ /**
741
+ * Sorts an array by the value of the priority key.
742
+ *
743
+ * @author Daniel Iser (@danieliser)
744
+ * @since 1.1.7
745
+ *
746
+ * @param $a
747
+ * @param $b
748
+ *
749
+ * @return int
750
+ */
751
+ function fs_sort_by_priority( $a, $b ) {
752
+
753
+ // If b has a priority and a does not, b wins.
754
+ if ( ! isset( $a['priority'] ) && isset( $b['priority'] ) ) {
755
+ return 1;
756
+ } // If b has a priority and a does not, b wins.
757
+ elseif ( isset( $a['priority'] ) && ! isset( $b['priority'] ) ) {
758
+ return - 1;
759
+ } // If neither has a priority or both priorities are equal its a tie.
760
+ elseif ( ( ! isset( $a['priority'] ) && ! isset( $b['priority'] ) ) || $a['priority'] === $b['priority'] ) {
761
+ return 0;
762
+ }
763
 
764
+ // If both have priority return the winner.
765
+ return ( $a['priority'] < $b['priority'] ) ? - 1 : 1;
 
 
 
 
 
 
 
766
  }
 
 
 
767
  }
768
 
769
  #--------------------------------------------------------------------------------
freemius/includes/fs-essential-functions.php CHANGED
@@ -344,7 +344,11 @@
344
  }
345
 
346
  if ( ! isset( $newest_sdk->type ) || 'theme' !== $newest_sdk->type ) {
347
- $in_activation = ( ! is_plugin_active( $plugin_file ) );
 
 
 
 
348
  } else {
349
  $theme = wp_get_theme();
350
  $in_activation = ( $newest_sdk->plugin_path == $theme->stylesheet );
@@ -376,45 +380,62 @@
376
  global $fs_active_plugins;
377
 
378
  /**
379
- * @todo Multi-site network activated plugin are always loaded prior to site plugins so if there's a a plugin activated in the network mode that has an older version of the SDK of another plugin which is site activated that has new SDK version, the fs-essential-functions.php will be loaded from the older SDK. Same thing about MU plugins (loaded even before network activated plugins).
380
  *
381
  * @link https://github.com/Freemius/wordpress-sdk/issues/26
382
  */
383
 
384
  $newest_sdk_plugin_path = $fs_active_plugins->newest->plugin_path;
385
 
386
- $active_plugins = get_option( 'active_plugins', array() );
387
- $newest_sdk_plugin_key = array_search( $newest_sdk_plugin_path, $active_plugins );
388
- if ( 0 === $newest_sdk_plugin_key ) {
389
- // if it's 0 it's the first plugin already, no need to continue
390
- return false;
391
- } else if ( is_numeric( $newest_sdk_plugin_key ) ) {
392
- // Remove plugin from its current position.
393
- array_splice( $active_plugins, $newest_sdk_plugin_key, 1 );
 
 
 
 
 
 
394
 
395
- // Set it to be included first.
396
- array_unshift( $active_plugins, $newest_sdk_plugin_path );
 
 
 
397
 
398
- update_option( 'active_plugins', $active_plugins );
 
 
 
 
 
 
399
 
400
  return true;
401
- } else if ( is_multisite() && false === $newest_sdk_plugin_key ) {
 
 
402
  // Plugin is network active.
403
  $network_active_plugins = get_site_option( 'active_sitewide_plugins', array() );
404
 
405
- if (isset($network_active_plugins[$newest_sdk_plugin_path])) {
406
- reset($network_active_plugins);
407
- if ( $newest_sdk_plugin_path === key($network_active_plugins) ) {
408
  // Plugin is already activated first on the network level.
409
  return false;
410
- } else if ( is_numeric( $newest_sdk_plugin_key ) ) {
411
- $time = $network_active_plugins[$newest_sdk_plugin_path];
412
 
413
  // Remove plugin from its current position.
414
- unset($network_active_plugins[$newest_sdk_plugin_path]);
415
 
416
  // Set it to be included first.
417
- $network_active_plugins = array($newest_sdk_plugin_path => $time) + $network_active_plugins;
418
 
419
  update_site_option( 'active_sitewide_plugins', $network_active_plugins );
420
 
344
  }
345
 
346
  if ( ! isset( $newest_sdk->type ) || 'theme' !== $newest_sdk->type ) {
347
+ if ( ! function_exists( 'is_plugin_active' ) ) {
348
+ require_once ABSPATH . 'wp-admin/includes/plugin.php';
349
+ }
350
+
351
+ $in_activation = ( ! is_plugin_active( $plugin_file ) );
352
  } else {
353
  $theme = wp_get_theme();
354
  $in_activation = ( $newest_sdk->plugin_path == $theme->stylesheet );
380
  global $fs_active_plugins;
381
 
382
  /**
383
+ * @todo Multi-site network activated plugin are always loaded prior to site plugins so if there's a plugin activated in the network mode that has an older version of the SDK of another plugin which is site activated that has new SDK version, the fs-essential-functions.php will be loaded from the older SDK. Same thing about MU plugins (loaded even before network activated plugins).
384
  *
385
  * @link https://github.com/Freemius/wordpress-sdk/issues/26
386
  */
387
 
388
  $newest_sdk_plugin_path = $fs_active_plugins->newest->plugin_path;
389
 
390
+ $active_plugins = get_option( 'active_plugins', array() );
391
+ $updated_active_plugins = array( $newest_sdk_plugin_path );
392
+
393
+ $plugin_found = false;
394
+ $is_first_path = true;
395
+
396
+ foreach ( $active_plugins as $key => $plugin_path ) {
397
+ if ( $plugin_path === $newest_sdk_plugin_path ) {
398
+ if ( $is_first_path ) {
399
+ // if it's the first plugin already, no need to continue
400
+ return false;
401
+ }
402
+
403
+ $plugin_found = true;
404
 
405
+ // Skip the plugin (it is already added as the 1st item of $updated_active_plugins).
406
+ continue;
407
+ }
408
+
409
+ $updated_active_plugins[] = $plugin_path;
410
 
411
+ if ( $is_first_path ) {
412
+ $is_first_path = false;
413
+ }
414
+ }
415
+
416
+ if ( $plugin_found ) {
417
+ update_option( 'active_plugins', $updated_active_plugins );
418
 
419
  return true;
420
+ }
421
+
422
+ if ( is_multisite() ) {
423
  // Plugin is network active.
424
  $network_active_plugins = get_site_option( 'active_sitewide_plugins', array() );
425
 
426
+ if ( isset( $network_active_plugins[ $newest_sdk_plugin_path ] ) ) {
427
+ reset( $network_active_plugins );
428
+ if ( $newest_sdk_plugin_path === key( $network_active_plugins ) ) {
429
  // Plugin is already activated first on the network level.
430
  return false;
431
+ } else {
432
+ $time = $network_active_plugins[ $newest_sdk_plugin_path ];
433
 
434
  // Remove plugin from its current position.
435
+ unset( $network_active_plugins[ $newest_sdk_plugin_path ] );
436
 
437
  // Set it to be included first.
438
+ $network_active_plugins = array( $newest_sdk_plugin_path => $time ) + $network_active_plugins;
439
 
440
  update_site_option( 'active_sitewide_plugins', $network_active_plugins );
441
 
freemius/includes/fs-plugin-info-dialog.php CHANGED
@@ -145,15 +145,36 @@
145
  }
146
 
147
  if ( is_array( $pricing ) && 0 < count( $pricing ) ) {
148
- $has_paid_plan = true;
149
 
150
- foreach ( $pricing as &$prices ) {
151
  $prices = new FS_Pricing( $prices );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
152
  }
153
 
154
- $plan->pricing = $pricing;
 
 
 
155
 
156
- $has_pricing = true;
 
157
  }
158
 
159
  if ( is_array( $features ) && 0 < count( $features ) ) {
@@ -239,14 +260,20 @@
239
  if ( $has_valid_blog_id ) {
240
  restore_current_blog();
241
  }
 
242
 
243
- if ( is_object( $fs_addon ) ) {
244
- $data->has_purchased_license = $fs_addon->has_active_valid_license();
245
- } else {
246
- $account_addons = $this->_fs->get_account_addons();
247
- if ( ! empty( $account_addons ) && in_array( $selected_addon->id, $account_addons ) ) {
248
- $data->has_purchased_license = true;
249
- }
 
 
 
 
 
250
  }
251
  }
252
 
@@ -556,7 +583,7 @@
556
 
557
  $has_installed_version = ( 'install' !== $this->status['status'] );
558
 
559
- if ( ! $api->has_paid_plan ) {
560
  /**
561
  * Free-only add-on.
562
  *
@@ -859,9 +886,11 @@
859
  $classes[] = 'disabled';
860
  }
861
 
 
 
862
  return sprintf(
863
  '<a %s class="button %s">%s</a>',
864
- empty( $href ) ? '' : 'href="' . $href . '" target="' . $target . '"',
865
  implode( ' ', $classes ),
866
  $label
867
  );
@@ -1047,7 +1076,7 @@
1047
  $href = add_query_arg( array( 'tab' => $tab, 'section' => $section_name ) );
1048
  $href = esc_url( $href );
1049
  $san_section = esc_attr( $section_name );
1050
- echo "\t<a name='$san_section' href='$href' $class>$title</a>\n";
1051
  }
1052
 
1053
  echo "</div>\n";
@@ -1180,7 +1209,7 @@
1180
 
1181
  $(document).ready(function () {
1182
  var $plan = $('.plugin-information-pricing .fs-plan[data-plan-id=<?php echo $plan->id ?>]');
1183
- $plan.find('input[type=radio]').live('click', function () {
1184
  _updateCtaUrl(
1185
  $plan.attr('data-plan-id'),
1186
  $(this).val(),
@@ -1346,6 +1375,7 @@
1346
  if ( ! empty( $api->slug ) && true == $api->is_wp_org_compliant ) {
1347
  ?>
1348
  <li><a target="_blank"
 
1349
  href="https://wordpress.org/plugins/<?php echo $api->slug; ?>/"><?php fs_esc_html_echo_inline( 'WordPress.org Plugin Page', 'wp-org-plugin-page', $api->slug ) ?>
1350
  &#187;</a>
1351
  </li>
@@ -1354,6 +1384,7 @@
1354
  if ( ! empty( $api->homepage ) ) {
1355
  ?>
1356
  <li><a target="_blank"
 
1357
  href="<?php echo esc_url( $api->homepage ); ?>"><?php fs_esc_html_echo_inline( 'Plugin Homepage', 'plugin-homepage', $api->slug ) ?>
1358
  &#187;</a>
1359
  </li>
@@ -1362,6 +1393,7 @@
1362
  if ( ! empty( $api->donate_link ) && empty( $api->contributors ) ) {
1363
  ?>
1364
  <li><a target="_blank"
 
1365
  href="<?php echo esc_url( $api->donate_link ); ?>"><?php fs_esc_html_echo_inline( 'Donate to this plugin', 'donate-to-plugin', $api->slug ) ?>
1366
  &#187;</a>
1367
  </li>
@@ -1405,18 +1437,19 @@
1405
  );
1406
  ?>
1407
  <div class="counter-container">
1408
- <span class="counter-label"><a
1409
- href="https://wordpress.org/support/view/plugin-reviews/<?php echo $api->slug; ?>?filter=<?php echo $key; ?>"
1410
- target="_blank"
1411
- title="<?php echo esc_attr( sprintf(
1412
- /* translators: %s: # of stars (e.g. 5 stars) */
1413
- fs_text_inline( 'Click to see reviews that provided a rating of %s', 'click-to-reviews', $api->slug ),
1414
- $stars_label
1415
- ) ) ?>"><?php echo $stars_label ?></a></span>
 
1416
  <span class="counter-back">
1417
- <span class="counter-bar" style="width: <?php echo 92 * $_rating; ?>px;"></span>
1418
- </span>
1419
- <span class="counter-count"><?php echo number_format_i18n( $ratecount ); ?></span>
1420
  </div>
1421
  <?php
1422
  }
@@ -1437,13 +1470,14 @@
1437
  if ( empty( $contrib_profile ) ) {
1438
  echo "<li><img src='https://wordpress.org/grav-redirect.php?user={$contrib_username}&amp;s=36' width='18' height='18' />{$contrib_username}</li>";
1439
  } else {
1440
- echo "<li><a href='{$contrib_profile}' target='_blank'><img src='https://wordpress.org/grav-redirect.php?user={$contrib_username}&amp;s=36' width='18' height='18' />{$contrib_username}</a></li>";
1441
  }
1442
  }
1443
  ?>
1444
  </ul>
1445
  <?php if ( ! empty( $api->donate_link ) ) { ?>
1446
  <a target="_blank"
 
1447
  href="<?php echo esc_url( $api->donate_link ); ?>"><?php fs_echo_inline( 'Donate to this plugin', 'donate-to-plugin', $api->slug ) ?>
1448
  &#187;</a>
1449
  <?php } ?>
@@ -1607,4 +1641,4 @@
1607
  iframe_footer();
1608
  exit;
1609
  }
1610
- }
145
  }
146
 
147
  if ( is_array( $pricing ) && 0 < count( $pricing ) ) {
148
+ $filtered_pricing = array();
149
 
150
+ foreach ( $pricing as $prices ) {
151
  $prices = new FS_Pricing( $prices );
152
+
153
+ if ( ! $prices->is_usd() ) {
154
+ /**
155
+ * Skip non-USD pricing.
156
+ *
157
+ * @author Leo Fajardo (@leorw)
158
+ * @since 2.3.1
159
+ */
160
+ continue;
161
+ }
162
+
163
+ if ( ( $prices->has_monthly() && $prices->monthly_price > 1.0 ) ||
164
+ ( $prices->has_annual() && $prices->annual_price > 1.0 ) ||
165
+ ( $prices->has_lifetime() && $prices->lifetime_price > 1.0 )
166
+ ) {
167
+ $filtered_pricing[] = $prices;
168
+ }
169
  }
170
 
171
+ if ( ! empty( $filtered_pricing ) ) {
172
+ $has_paid_plan = true;
173
+
174
+ $plan->pricing = $filtered_pricing;
175
 
176
+ $has_pricing = true;
177
+ }
178
  }
179
 
180
  if ( is_array( $features ) && 0 < count( $features ) ) {
260
  if ( $has_valid_blog_id ) {
261
  restore_current_blog();
262
  }
263
+ }
264
 
265
+ /**
266
+ * Check if there's a purchased license in case the add-on can only be installed/downloaded as part of a purchased bundle.
267
+ *
268
+ * @author Leo Fajardo (@leorw)
269
+ * @since 2.4.1
270
+ */
271
+ if ( is_object( $fs_addon ) ) {
272
+ $data->has_purchased_license = $fs_addon->has_active_valid_license();
273
+ } else {
274
+ $account_addons = $this->_fs->get_account_addons();
275
+ if ( ! empty( $account_addons ) && in_array( $selected_addon->id, $account_addons ) ) {
276
+ $data->has_purchased_license = true;
277
  }
278
  }
279
 
583
 
584
  $has_installed_version = ( 'install' !== $this->status['status'] );
585
 
586
+ if ( ! $api->has_paid_plan && ! $api->has_purchased_license ) {
587
  /**
588
  * Free-only add-on.
589
  *
886
  $classes[] = 'disabled';
887
  }
888
 
889
+ $rel = ( '_blank' === $target ) ? ' rel="noopener noreferrer"' : '';
890
+
891
  return sprintf(
892
  '<a %s class="button %s">%s</a>',
893
+ empty( $href ) ? '' : 'href="' . $href . '" target="' . $target . '"' . $rel,
894
  implode( ' ', $classes ),
895
  $label
896
  );
1076
  $href = add_query_arg( array( 'tab' => $tab, 'section' => $section_name ) );
1077
  $href = esc_url( $href );
1078
  $san_section = esc_attr( $section_name );
1079
+ echo "\t<a name='$san_section' href='$href' $class>" . esc_html( $title ) . "</a>\n";
1080
  }
1081
 
1082
  echo "</div>\n";
1209
 
1210
  $(document).ready(function () {
1211
  var $plan = $('.plugin-information-pricing .fs-plan[data-plan-id=<?php echo $plan->id ?>]');
1212
+ $plan.find('input[type=radio]').on('click', function () {
1213
  _updateCtaUrl(
1214
  $plan.attr('data-plan-id'),
1215
  $(this).val(),
1375
  if ( ! empty( $api->slug ) && true == $api->is_wp_org_compliant ) {
1376
  ?>
1377
  <li><a target="_blank"
1378
+ rel="noopener noreferrer"
1379
  href="https://wordpress.org/plugins/<?php echo $api->slug; ?>/"><?php fs_esc_html_echo_inline( 'WordPress.org Plugin Page', 'wp-org-plugin-page', $api->slug ) ?>
1380
  &#187;</a>
1381
  </li>
1384
  if ( ! empty( $api->homepage ) ) {
1385
  ?>
1386
  <li><a target="_blank"
1387
+ rel="noopener noreferrer"
1388
  href="<?php echo esc_url( $api->homepage ); ?>"><?php fs_esc_html_echo_inline( 'Plugin Homepage', 'plugin-homepage', $api->slug ) ?>
1389
  &#187;</a>
1390
  </li>
1393
  if ( ! empty( $api->donate_link ) && empty( $api->contributors ) ) {
1394
  ?>
1395
  <li><a target="_blank"
1396
+ rel="noopener noreferrer"
1397
  href="<?php echo esc_url( $api->donate_link ); ?>"><?php fs_esc_html_echo_inline( 'Donate to this plugin', 'donate-to-plugin', $api->slug ) ?>
1398
  &#187;</a>
1399
  </li>
1437
  );
1438
  ?>
1439
  <div class="counter-container">
1440
+ <span class="counter-label"><a
1441
+ href="https://wordpress.org/support/view/plugin-reviews/<?php echo $api->slug; ?>?filter=<?php echo $key; ?>"
1442
+ target="_blank"
1443
+ rel="noopener noreferrer"
1444
+ title="<?php echo esc_attr( sprintf(
1445
+ /* translators: %s: # of stars (e.g. 5 stars) */
1446
+ fs_text_inline( 'Click to see reviews that provided a rating of %s', 'click-to-reviews', $api->slug ),
1447
+ $stars_label
1448
+ ) ) ?>"><?php echo $stars_label ?></a></span>
1449
  <span class="counter-back">
1450
+ <span class="counter-bar" style="width: <?php echo absint(92 * $_rating); ?>px;"></span>
1451
+ </span>
1452
+ <span class="counter-count"><?php echo number_format_i18n( $ratecount ); ?></span>
1453
  </div>
1454
  <?php
1455
  }
1470
  if ( empty( $contrib_profile ) ) {
1471
  echo "<li><img src='https://wordpress.org/grav-redirect.php?user={$contrib_username}&amp;s=36' width='18' height='18' />{$contrib_username}</li>";
1472
  } else {
1473
+ echo "<li><a href='{$contrib_profile}' target='_blank' rel='noopener noreferrer'><img src='https://wordpress.org/grav-redirect.php?user={$contrib_username}&amp;s=36' width='18' height='18' />{$contrib_username}</a></li>";
1474
  }
1475
  }
1476
  ?>
1477
  </ul>
1478
  <?php if ( ! empty( $api->donate_link ) ) { ?>
1479
  <a target="_blank"
1480
+ rel="noopener noreferrer"
1481
  href="<?php echo esc_url( $api->donate_link ); ?>"><?php fs_echo_inline( 'Donate to this plugin', 'donate-to-plugin', $api->slug ) ?>
1482
  &#187;</a>
1483
  <?php } ?>
1641
  iframe_footer();
1642
  exit;
1643
  }
1644
+ }
freemius/includes/i18n.php CHANGED
@@ -98,6 +98,8 @@
98
  'error' => _fs_text( 'Error' ),
99
  'failed-finding-main-path' => _fs_text( 'Freemius SDK couldn\'t find the plugin\'s main file. Please contact sdk@freemius.com with the current error.' ),
100
  'learn-more' => _fs_text( 'Learn more' ),
 
 
101
 
102
  #region Affiliation
103
  'affiliation' => _fs_text( 'Affiliation' ),
98
  'error' => _fs_text( 'Error' ),
99
  'failed-finding-main-path' => _fs_text( 'Freemius SDK couldn\'t find the plugin\'s main file. Please contact sdk@freemius.com with the current error.' ),
100
  'learn-more' => _fs_text( 'Learn more' ),
101
+ 'license_not_whitelabeled' => _fs_text( "Is this your client's site? %s if you wish to hide sensitive info like your billing address and invoices from the WP Admin."),
102
+ 'license_whitelabeled' => _fs_text( 'Your %s license was flagged as white-labeled to hide sensitive information from the WP Admin (e.g. your billing address and invoices). If you ever wish to revert it back, you can easily do it through your %s. If this was a mistake you can also %s.'),
103
 
104
  #region Affiliation
105
  'affiliation' => _fs_text( 'Affiliation' ),
freemius/includes/managers/class-fs-admin-menu-manager.php CHANGED
@@ -430,41 +430,62 @@
430
  $this->get_raw_slug();
431
  }
432
 
433
- /**
434
- * Is user on plugin's admin activation page.
435
- *
436
- * @author Vova Feldman (@svovaf)
437
- * @since 1.0.8
438
- *
439
- * @return bool
440
- */
441
- function is_main_settings_page() {
442
- if ( $this->_menu_exists &&
443
- ( fs_is_plugin_page( $this->_menu_slug ) || fs_is_plugin_page( $this->_module_unique_affix ) )
444
- ) {
445
- /**
446
- * Module has a settings menu and the context page is the main settings page, so assume it's in
447
- * activation (doesn't really check if already opted-in/skipped or not).
448
- *
449
- * @since 1.2.2
450
- */
451
- return true;
452
- }
453
 
454
- global $pagenow;
455
- if ( ( WP_FS__MODULE_TYPE_THEME === $this->_module_type ) && Freemius::is_themes_page() ) {
456
- /**
457
- * In activation only when show_optin query string param is given.
458
- *
459
- * @since 1.2.2
460
- */
461
- return fs_request_get_bool( $this->_module_unique_affix . '_show_optin' );
462
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
463
 
464
- return false;
465
- }
 
 
 
 
 
 
 
 
 
466
 
467
- #region Submenu Override
 
 
 
468
 
469
  /**
470
  * Override submenu's action.
@@ -682,7 +703,12 @@
682
  $menu['parent_slug'] :
683
  'admin.php';
684
 
685
- return admin_url( $parent_slug . '?page=' . $menu['menu'][2] );
 
 
 
 
 
686
  }
687
 
688
  /**
430
  $this->get_raw_slug();
431
  }
432
 
433
+ /**
434
+ * Is user on plugin's admin activation page.
435
+ *
436
+ * @author Vova Feldman (@svovaf)
437
+ * @since 1.0.8
438
+ *
439
+ * @param bool $show_opt_in_on_themes_page Since 2.3.1
440
+ *
441
+ * @return bool
442
+ *
443
+ * @deprecated Please use is_activation_page() instead.
444
+ */
445
+ function is_main_settings_page( $show_opt_in_on_themes_page = false ) {
446
+ return $this->is_activation_page( $show_opt_in_on_themes_page );
447
+ }
 
 
 
 
 
448
 
449
+ /**
450
+ * Is user on product's admin activation page.
451
+ *
452
+ * @author Vova Feldman (@svovaf)
453
+ * @since 2.3.1
454
+ *
455
+ * @param bool $show_opt_in_on_themes_page Since 2.3.1
456
+ *
457
+ * @return bool
458
+ */
459
+ function is_activation_page( $show_opt_in_on_themes_page = false ) {
460
+ if ( $show_opt_in_on_themes_page ) {
461
+ /**
462
+ * In activation only when show_optin query string param is given.
463
+ *
464
+ * @since 1.2.2
465
+ */
466
+ return (
467
+ ( WP_FS__MODULE_TYPE_THEME === $this->_module_type ) &&
468
+ Freemius::is_themes_page() &&
469
+ fs_request_get_bool( $this->_module_unique_affix . '_show_optin' )
470
+ );
471
+ }
472
 
473
+ if ( $this->_menu_exists &&
474
+ ( fs_is_plugin_page( $this->_menu_slug ) || fs_is_plugin_page( $this->_module_unique_affix ) )
475
+ ) {
476
+ /**
477
+ * Module has a settings menu and the context page is the main settings page, so assume it's in
478
+ * activation (doesn't really check if already opted-in/skipped or not).
479
+ *
480
+ * @since 1.2.2
481
+ */
482
+ return true;
483
+ }
484
 
485
+ return false;
486
+ }
487
+
488
+ #region Submenu Override
489
 
490
  /**
491
  * Override submenu's action.
703
  $menu['parent_slug'] :
704
  'admin.php';
705
 
706
+ return admin_url(
707
+ $parent_slug .
708
+ ( false === strpos( $parent_slug, '?' ) ? '?' : '&' ) .
709
+ 'page=' .
710
+ $menu['menu'][2]
711
+ );
712
  }
713
 
714
  /**
freemius/includes/managers/class-fs-cache-manager.php CHANGED
@@ -37,7 +37,7 @@
37
  $this->_logger->entrance();
38
  $this->_logger->log( 'id = ' . $id );
39
 
40
- $this->_options = FS_Option_Manager::get_manager( $id, true, true );
41
  }
42
 
43
  /**
37
  $this->_logger->entrance();
38
  $this->_logger->log( 'id = ' . $id );
39
 
40
+ $this->_options = FS_Option_Manager::get_manager( $id, true, true, false );
41
  }
42
 
43
  /**
freemius/includes/managers/class-fs-option-manager.php CHANGED
@@ -48,6 +48,11 @@
48
  */
49
  private $_is_network_storage;
50
 
 
 
 
 
 
51
  /**
52
  * @var array[string]FS_Option_Manager {
53
  * @key string
@@ -60,11 +65,17 @@
60
  * @author Vova Feldman (@svovaf)
61
  * @since 1.0.3
62
  *
63
- * @param string $id
64
- * @param bool $load
65
- * @param bool|int $network_level_or_blog_id Since 2.0.0
 
66
  */
67
- private function __construct( $id, $load = false, $network_level_or_blog_id = false ) {
 
 
 
 
 
68
  $id = strtolower( $id );
69
 
70
  $this->_logger = FS_Logger::get_logger( WP_FS__SLUG . '_opt_mngr_' . $id, WP_FS__DEBUG_SDK, WP_FS__ECHO_DEBUG_SDK );
@@ -74,6 +85,8 @@
74
 
75
  $this->_id = $id;
76
 
 
 
77
  if ( is_multisite() ) {
78
  $this->_is_network_storage = ( true === $network_level_or_blog_id );
79
 
@@ -93,13 +106,19 @@
93
  * @author Vova Feldman (@svovaf)
94
  * @since 1.0.3
95
  *
96
- * @param string $id
97
- * @param bool $load
98
- * @param bool|int $network_level_or_blog_id Since 2.0.0
 
99
  *
100
- * @return FS_Option_Manager
101
  */
102
- static function get_manager( $id, $load = false, $network_level_or_blog_id = false ) {
 
 
 
 
 
103
  $key = strtolower( $id );
104
 
105
  if ( is_multisite() ) {
@@ -115,7 +134,12 @@
115
  }
116
 
117
  if ( ! isset( self::$_MANAGERS[ $key ] ) ) {
118
- self::$_MANAGERS[ $key ] = new FS_Option_Manager( $id, $load, $network_level_or_blog_id );
 
 
 
 
 
119
  } // If load required but not yet loaded, load.
120
  else if ( $load && ! self::$_MANAGERS[ $key ]->is_loaded() ) {
121
  self::$_MANAGERS[ $key ]->load();
@@ -410,7 +434,7 @@
410
  } else if ( $this->_blog_id > 0 ) {
411
  update_blog_option( $this->_blog_id, $option_name, $this->_options );
412
  } else {
413
- update_option( $option_name, $this->_options );
414
  }
415
 
416
  if ( ! WP_FS__DEBUG_SDK ) {
48
  */
49
  private $_is_network_storage;
50
 
51
+ /**
52
+ * @var bool|null
53
+ */
54
+ private $_autoload;
55
+
56
  /**
57
  * @var array[string]FS_Option_Manager {
58
  * @key string
65
  * @author Vova Feldman (@svovaf)
66
  * @since 1.0.3
67
  *
68
+ * @param string $id
69
+ * @param bool $load
70
+ * @param bool|int $network_level_or_blog_id Since 2.0.0
71
+ * @param bool|null $autoload
72
  */
73
+ private function __construct(
74
+ $id,
75
+ $load = false,
76
+ $network_level_or_blog_id = false,
77
+ $autoload = null
78
+ ) {
79
  $id = strtolower( $id );
80
 
81
  $this->_logger = FS_Logger::get_logger( WP_FS__SLUG . '_opt_mngr_' . $id, WP_FS__DEBUG_SDK, WP_FS__ECHO_DEBUG_SDK );
85
 
86
  $this->_id = $id;
87
 
88
+ $this->_autoload = $autoload;
89
+
90
  if ( is_multisite() ) {
91
  $this->_is_network_storage = ( true === $network_level_or_blog_id );
92
 
106
  * @author Vova Feldman (@svovaf)
107
  * @since 1.0.3
108
  *
109
+ * @param string $id
110
+ * @param bool $load
111
+ * @param bool|int $network_level_or_blog_id Since 2.0.0
112
+ * @param bool|null $autoload
113
  *
114
+ * @return \FS_Option_Manager
115
  */
116
+ static function get_manager(
117
+ $id,
118
+ $load = false,
119
+ $network_level_or_blog_id = false,
120
+ $autoload = null
121
+ ) {
122
  $key = strtolower( $id );
123
 
124
  if ( is_multisite() ) {
134
  }
135
 
136
  if ( ! isset( self::$_MANAGERS[ $key ] ) ) {
137
+ self::$_MANAGERS[ $key ] = new FS_Option_Manager(
138
+ $id,
139
+ $load,
140
+ $network_level_or_blog_id,
141
+ $autoload
142
+ );
143
  } // If load required but not yet loaded, load.
144
  else if ( $load && ! self::$_MANAGERS[ $key ]->is_loaded() ) {
145
  self::$_MANAGERS[ $key ]->load();
434
  } else if ( $this->_blog_id > 0 ) {
435
  update_blog_option( $this->_blog_id, $option_name, $this->_options );
436
  } else {
437
+ update_option( $option_name, $this->_options, $this->_autoload );
438
  }
439
 
440
  if ( ! WP_FS__DEBUG_SDK ) {
freemius/includes/managers/class-fs-plugin-manager.php CHANGED
@@ -83,12 +83,12 @@
83
  $option_manager = $this->get_option_manager();
84
 
85
  if ( false !== $module_type ) {
86
- return $option_manager->get_option( $module_type . 's', array() );
87
  }
88
 
89
  return array(
90
- self::OPTION_NAME_PLUGINS => $option_manager->get_option( self::OPTION_NAME_PLUGINS, array() ),
91
- self::OPTION_NAME_THEMES => $option_manager->get_option( self::OPTION_NAME_THEMES, array() ),
92
  );
93
  }
94
 
83
  $option_manager = $this->get_option_manager();
84
 
85
  if ( false !== $module_type ) {
86
+ return fs_get_entities( $option_manager->get_option( $module_type . 's', array() ), FS_Plugin::get_class_name() );
87
  }
88
 
89
  return array(
90
+ self::OPTION_NAME_PLUGINS => fs_get_entities( $option_manager->get_option( self::OPTION_NAME_PLUGINS, array() ), FS_Plugin::get_class_name() ),
91
+ self::OPTION_NAME_THEMES => fs_get_entities( $option_manager->get_option( self::OPTION_NAME_THEMES, array() ), FS_Plugin::get_class_name() ),
92
  );
93
  }
94
 
freemius/includes/sdk/FreemiusBase.php CHANGED
@@ -137,7 +137,7 @@
137
  } catch ( Exception $e ) {
138
  // Map to error object.
139
  $result = (object) array(
140
- 'error' => array(
141
  'type' => 'Unknown',
142
  'message' => $e->getMessage() . ' (' . $e->getFile() . ': ' . $e->getLine() . ')',
143
  'code' => 'unknown',
137
  } catch ( Exception $e ) {
138
  // Map to error object.
139
  $result = (object) array(
140
+ 'error' => (object) array(
141
  'type' => 'Unknown',
142
  'message' => $e->getMessage() . ' (' . $e->getFile() . ': ' . $e->getLine() . ')',
143
  'code' => 'unknown',
freemius/includes/sdk/FreemiusWordPress.php CHANGED
@@ -59,6 +59,10 @@
59
  }
60
  }
61
 
 
 
 
 
62
  $curl_version = FS_SDK__HAS_CURL ?
63
  curl_version() :
64
  array( 'version' => '7.37' );
@@ -228,10 +232,13 @@
228
  $now = ( time() - self::$_clock_diff );
229
  $date = date( 'r', $now );
230
 
231
- if ( in_array( $pMethod, array( 'POST', 'PUT' ) ) && ! empty( $pPostParams ) ) {
232
- $content_md5 = md5( $pPostParams );
233
- $content_type = 'application/json';
234
- }
 
 
 
235
 
236
  $string_to_sign = implode( $eol, array(
237
  $pMethod,
@@ -380,10 +387,11 @@
380
  }
381
 
382
  if ( in_array( $pMethod, array( 'POST', 'PUT' ) ) ) {
383
- if ( is_array( $pParams ) && 0 < count( $pParams ) ) {
384
- $pWPRemoteArgs['headers']['Content-type'] = 'application/json';
385
- $pWPRemoteArgs['body'] = json_encode( $pParams );
386
- }
 
387
  }
388
 
389
  $request_url = self::GetUrl( $pCanonizedPath, $pIsSandbox );
@@ -397,7 +405,7 @@
397
  }
398
 
399
  if ( 'https' === substr( strtolower( $request_url ), 0, 5 ) ) {
400
- $pWPRemoteArgs['sslverify'] = false;
401
  }
402
 
403
  if ( false !== $pBeforeExecutionFunction &&
@@ -570,7 +578,7 @@
570
  } catch ( Exception $e ) {
571
  // Map to error object.
572
  $result = (object) array(
573
- 'error' => array(
574
  'type' => 'Unknown',
575
  'message' => $e->getMessage() . ' (' . $e->getFile() . ': ' . $e->getLine() . ')',
576
  'code' => 'unknown',
@@ -649,7 +657,7 @@
649
  $message = ( 1 < count( $parts ) ) ? $parts[1] : $message;
650
 
651
  $e = new Freemius_Exception( array(
652
- 'error' => array(
653
  'code' => $code,
654
  'message' => $message,
655
  'type' => 'CurlException',
@@ -657,7 +665,7 @@
657
  ) );
658
  } else {
659
  $e = new Freemius_Exception( array(
660
- 'error' => array(
661
  'code' => $pError->get_error_code(),
662
  'message' => $pError->get_error_message(),
663
  'type' => 'WPRemoteException',
59
  }
60
  }
61
 
62
+ if ( ! defined( 'FS_SDK__SSLVERIFY' ) ) {
63
+ define( 'FS_SDK__SSLVERIFY', false );
64
+ }
65
+
66
  $curl_version = FS_SDK__HAS_CURL ?
67
  curl_version() :
68
  array( 'version' => '7.37' );
232
  $now = ( time() - self::$_clock_diff );
233
  $date = date( 'r', $now );
234
 
235
+ if ( in_array( $pMethod, array( 'POST', 'PUT' ) ) ) {
236
+ $content_type = 'application/json';
237
+
238
+ if ( ! empty( $pPostParams ) ) {
239
+ $content_md5 = md5( $pPostParams );
240
+ }
241
+ }
242
 
243
  $string_to_sign = implode( $eol, array(
244
  $pMethod,
387
  }
388
 
389
  if ( in_array( $pMethod, array( 'POST', 'PUT' ) ) ) {
390
+ $pWPRemoteArgs['headers']['Content-type'] = 'application/json';
391
+
392
+ if ( is_array( $pParams ) && 0 < count( $pParams ) ) {
393
+ $pWPRemoteArgs['body'] = json_encode( $pParams );
394
+ }
395
  }
396
 
397
  $request_url = self::GetUrl( $pCanonizedPath, $pIsSandbox );
405
  }
406
 
407
  if ( 'https' === substr( strtolower( $request_url ), 0, 5 ) ) {
408
+ $pWPRemoteArgs['sslverify'] = FS_SDK__SSLVERIFY;
409
  }
410
 
411
  if ( false !== $pBeforeExecutionFunction &&
578
  } catch ( Exception $e ) {
579
  // Map to error object.
580
  $result = (object) array(
581
+ 'error' => (object) array(
582
  'type' => 'Unknown',
583
  'message' => $e->getMessage() . ' (' . $e->getFile() . ': ' . $e->getLine() . ')',
584
  'code' => 'unknown',
657
  $message = ( 1 < count( $parts ) ) ? $parts[1] : $message;
658
 
659
  $e = new Freemius_Exception( array(
660
+ 'error' => (object) array(
661
  'code' => $code,
662
  'message' => $message,
663
  'type' => 'CurlException',
665
  ) );
666
  } else {
667
  $e = new Freemius_Exception( array(
668
+ 'error' => (object) array(
669
  'code' => $pError->get_error_code(),
670
  'message' => $pError->get_error_message(),
671
  'type' => 'WPRemoteException',
freemius/includes/supplements/fs-essential-functions-1.1.7.1.php CHANGED
@@ -32,7 +32,7 @@
32
 
33
  // Get active plugin's main files real full names (might be symlinks).
34
  foreach ( $all_plugins as $relative_path => $data ) {
35
- if ( 0 === strpos( $file_real_path, fs_normalize_path( dirname( realpath( WP_PLUGIN_DIR . '/' . $relative_path ) ) ) ) ) {
36
  if ( '.' !== dirname( trailingslashit( $relative_path ) ) ) {
37
  return $relative_path;
38
  }
32
 
33
  // Get active plugin's main files real full names (might be symlinks).
34
  foreach ( $all_plugins as $relative_path => $data ) {
35
+ if ( 0 === strpos( $file_real_path, fs_normalize_path( dirname( realpath( WP_PLUGIN_DIR . '/' . $relative_path ) ) . '/' ) ) ) {
36
  if ( '.' !== dirname( trailingslashit( $relative_path ) ) ) {
37
  return $relative_path;
38
  }
freemius/languages/freemius-cs_CZ.mo ADDED
Binary file
freemius/languages/freemius-da_DK.mo CHANGED
Binary file
freemius/languages/freemius-en.mo CHANGED
Binary file
freemius/languages/freemius-es_ES.mo CHANGED
Binary file
freemius/languages/freemius-fr_FR.mo CHANGED
Binary file
freemius/languages/freemius-he_IL.mo CHANGED
Binary file
freemius/languages/freemius-hu_HU.mo CHANGED
Binary file
freemius/languages/freemius-it_IT.mo CHANGED
Binary file
freemius/languages/freemius-ja.mo ADDED
Binary file
freemius/languages/freemius-nl_NL.mo CHANGED
Binary file
freemius/languages/freemius-ru_RU.mo CHANGED
Binary file
freemius/languages/freemius-ta.mo ADDED
Binary file
freemius/languages/freemius-zh_CN.mo ADDED
Binary file
freemius/languages/freemius.pot CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2019 freemius
2
  # This file is distributed under the same license as the freemius package.
3
  msgid ""
4
  msgstr ""
@@ -16,1382 +16,1446 @@ msgstr ""
16
  "X-Poedit-SourceCharset: UTF-8\n"
17
  "Plural-Forms: nplurals=2; plural=(n != 1);\n"
18
 
19
- #: includes/class-freemius.php:1783, templates/account.php:769
20
  msgid "An update to a Beta version will replace your installed version of %s with the latest Beta release - use with caution, and not on production sites. You have been warned."
21
  msgstr ""
22
 
23
- #: includes/class-freemius.php:1790
24
  msgid "Would you like to proceed with the update?"
25
  msgstr ""
26
 
27
- #: includes/class-freemius.php:1998
28
  msgid "Freemius SDK couldn't find the plugin's main file. Please contact sdk@freemius.com with the current error."
29
  msgstr ""
30
 
31
- #: includes/class-freemius.php:2000
32
  msgid "Error"
33
  msgstr ""
34
 
35
- #: includes/class-freemius.php:2390
36
  msgid "I found a better %s"
37
  msgstr ""
38
 
39
- #: includes/class-freemius.php:2392
40
  msgid "What's the %s's name?"
41
  msgstr ""
42
 
43
- #: includes/class-freemius.php:2398
44
  msgid "It's a temporary %s. I'm just debugging an issue."
45
  msgstr ""
46
 
47
- #: includes/class-freemius.php:2400
48
  msgid "Deactivation"
49
  msgstr ""
50
 
51
- #: includes/class-freemius.php:2401
52
  msgid "Theme Switch"
53
  msgstr ""
54
 
55
- #: includes/class-freemius.php:2410, templates/forms/resend-key.php:24
56
  msgid "Other"
57
  msgstr ""
58
 
59
- #: includes/class-freemius.php:2418
60
  msgid "I no longer need the %s"
61
  msgstr ""
62
 
63
- #: includes/class-freemius.php:2425
64
  msgid "I only needed the %s for a short period"
65
  msgstr ""
66
 
67
- #: includes/class-freemius.php:2431
68
  msgid "The %s broke my site"
69
  msgstr ""
70
 
71
- #: includes/class-freemius.php:2438
72
  msgid "The %s suddenly stopped working"
73
  msgstr ""
74
 
75
- #: includes/class-freemius.php:2448
76
  msgid "I can't pay for it anymore"
77
  msgstr ""
78
 
79
- #: includes/class-freemius.php:2450
80
  msgid "What price would you feel comfortable paying?"
81
  msgstr ""
82
 
83
- #: includes/class-freemius.php:2456
84
  msgid "I don't like to share my information with you"
85
  msgstr ""
86
 
87
- #: includes/class-freemius.php:2477
88
  msgid "The %s didn't work"
89
  msgstr ""
90
 
91
- #: includes/class-freemius.php:2487
92
  msgid "I couldn't understand how to make it work"
93
  msgstr ""
94
 
95
- #: includes/class-freemius.php:2495
96
  msgid "The %s is great, but I need specific feature that you don't support"
97
  msgstr ""
98
 
99
- #: includes/class-freemius.php:2497
100
  msgid "What feature?"
101
  msgstr ""
102
 
103
- #: includes/class-freemius.php:2501
104
  msgid "The %s is not working"
105
  msgstr ""
106
 
107
- #: includes/class-freemius.php:2503
108
  msgid "Kindly share what didn't work so we can fix it for future users..."
109
  msgstr ""
110
 
111
- #: includes/class-freemius.php:2507
112
  msgid "It's not what I was looking for"
113
  msgstr ""
114
 
115
- #: includes/class-freemius.php:2509
116
  msgid "What you've been looking for?"
117
  msgstr ""
118
 
119
- #: includes/class-freemius.php:2513
120
  msgid "The %s didn't work as expected"
121
  msgstr ""
122
 
123
- #: includes/class-freemius.php:2515
124
  msgid "What did you expect?"
125
  msgstr ""
126
 
127
- #: includes/class-freemius.php:3370, templates/debug.php:20
128
  msgid "Freemius Debug"
129
  msgstr ""
130
 
131
- #: includes/class-freemius.php:4122
132
  msgid "I don't know what is cURL or how to install it, help me!"
133
  msgstr ""
134
 
135
- #: includes/class-freemius.php:4124
136
  msgid "We'll make sure to contact your hosting company and resolve the issue. You will get a follow-up email to %s once we have an update."
137
  msgstr ""
138
 
139
- #: includes/class-freemius.php:4131
140
  msgid "Great, please install cURL and enable it in your php.ini file. In addition, search for the 'disable_functions' directive in your php.ini file and remove any disabled methods starting with 'curl_'. To make sure it was successfully activated, use 'phpinfo()'. Once activated, deactivate the %s and reactivate it back again."
141
  msgstr ""
142
 
143
- #: includes/class-freemius.php:4236
144
  msgid "Yes - do your thing"
145
  msgstr ""
146
 
147
- #: includes/class-freemius.php:4241
148
  msgid "No - just deactivate"
149
  msgstr ""
150
 
151
- #: includes/class-freemius.php:4286, includes/class-freemius.php:4795, includes/class-freemius.php:5936, includes/class-freemius.php:12614, includes/class-freemius.php:15975, includes/class-freemius.php:16063, includes/class-freemius.php:16229, includes/class-freemius.php:18688, includes/class-freemius.php:18698, includes/class-freemius.php:19334, includes/class-freemius.php:20207, includes/class-freemius.php:20322, includes/class-freemius.php:20466, templates/add-ons.php:54
152
  msgctxt "exclamation"
153
  msgid "Oops"
154
  msgstr ""
155
 
156
- #: includes/class-freemius.php:4355
157
  msgid "Thank for giving us the chance to fix it! A message was just sent to our technical staff. We will get back to you as soon as we have an update to %s. Appreciate your patience."
158
  msgstr ""
159
 
160
- #: includes/class-freemius.php:4792
161
  msgctxt "addonX cannot run without pluginY"
162
  msgid "%s cannot run without %s."
163
  msgstr ""
164
 
165
- #: includes/class-freemius.php:4793
166
  msgctxt "addonX cannot run..."
167
  msgid "%s cannot run without the plugin."
168
  msgstr ""
169
 
170
- #: includes/class-freemius.php:4965, includes/class-freemius.php:4990, includes/class-freemius.php:19405
171
  msgid "Unexpected API error. Please contact the %s's author with the following error."
172
  msgstr ""
173
 
174
- #: includes/class-freemius.php:5624
175
  msgid "Premium %s version was successfully activated."
176
  msgstr ""
177
 
178
- #: includes/class-freemius.php:5636, includes/class-freemius.php:7504
179
  msgctxt "Used to express elation, enthusiasm, or triumph (especially in electronic communication)."
180
  msgid "W00t"
181
  msgstr ""
182
 
183
- #: includes/class-freemius.php:5651
184
  msgid "You have a %s license."
185
  msgstr ""
186
 
187
- #: includes/class-freemius.php:5655, includes/class-freemius.php:15396, includes/class-freemius.php:15407, includes/class-freemius.php:18599, includes/class-freemius.php:18929, includes/class-freemius.php:18995, includes/class-freemius.php:19159
188
  msgctxt "interjection expressing joy or exuberance"
189
  msgid "Yee-haw"
190
  msgstr ""
191
 
192
- #: includes/class-freemius.php:5919
193
  msgid "%s free trial was successfully cancelled. Since the add-on is premium only it was automatically deactivated. If you like to use it in the future, you'll have to purchase a license."
194
  msgstr ""
195
 
196
- #: includes/class-freemius.php:5923
197
  msgid "%s is a premium only add-on. You have to purchase a license first before activating the plugin."
198
  msgstr ""
199
 
200
- #: includes/class-freemius.php:5932, templates/add-ons.php:130, templates/account/partials/addon.php:343
201
  msgid "More information about %s"
202
  msgstr ""
203
 
204
- #: includes/class-freemius.php:5933
205
  msgid "Purchase License"
206
  msgstr ""
207
 
208
- #: includes/class-freemius.php:6868, templates/connect.php:163
209
  msgid "You should receive an activation email for %s to your mailbox at %s. Please make sure you click the activation button in that email to %s."
210
  msgstr ""
211
 
212
- #: includes/class-freemius.php:6872
213
  msgid "start the trial"
214
  msgstr ""
215
 
216
- #: includes/class-freemius.php:6873, templates/connect.php:167
217
  msgid "complete the install"
218
  msgstr ""
219
 
220
- #: includes/class-freemius.php:6986
221
  msgid "You are just one step away - %s"
222
  msgstr ""
223
 
224
- #: includes/class-freemius.php:6989
225
  msgctxt "%s - plugin name. As complete \"PluginX\" activation now"
226
  msgid "Complete \"%s\" Activation Now"
227
  msgstr ""
228
 
229
- #: includes/class-freemius.php:7067
230
  msgid "We made a few tweaks to the %s, %s"
231
  msgstr ""
232
 
233
- #: includes/class-freemius.php:7071
234
  msgid "Opt in to make \"%s\" better!"
235
  msgstr ""
236
 
237
- #: includes/class-freemius.php:7503
238
  msgid "The upgrade of %s was successfully completed."
239
  msgstr ""
240
 
241
- #: includes/class-freemius.php:9665, includes/class-fs-plugin-updater.php:1014, includes/class-fs-plugin-updater.php:1209, includes/class-fs-plugin-updater.php:1216, templates/auto-installation.php:32
242
  msgid "Add-On"
243
  msgstr ""
244
 
245
- #: includes/class-freemius.php:9667, templates/account.php:313, templates/account.php:321, templates/debug.php:361, templates/debug.php:522
246
  msgid "Plugin"
247
  msgstr ""
248
 
249
- #: includes/class-freemius.php:9668, templates/account.php:314, templates/account.php:322, templates/debug.php:361, templates/debug.php:522, templates/forms/deactivation/form.php:71
250
  msgid "Theme"
251
  msgstr ""
252
 
253
- #: includes/class-freemius.php:12085
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
254
  msgid "An unknown error has occurred while trying to set the user's beta mode."
255
  msgstr ""
256
 
257
- #: includes/class-freemius.php:12481
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
258
  msgid "Invalid site details collection."
259
  msgstr ""
260
 
261
- #: includes/class-freemius.php:12601
262
  msgid "We couldn't find your email address in the system, are you sure it's the right address?"
263
  msgstr ""
264
 
265
- #: includes/class-freemius.php:12603
266
  msgid "We can't see any active licenses associated with that email address, are you sure it's the right address?"
267
  msgstr ""
268
 
269
- #: includes/class-freemius.php:12877
270
  msgid "Account is pending activation."
271
  msgstr ""
272
 
273
- #: includes/class-freemius.php:12989, templates/forms/premium-versions-upgrade-handler.php:47
274
  msgid "Buy a license now"
275
  msgstr ""
276
 
277
- #: includes/class-freemius.php:13001, templates/forms/premium-versions-upgrade-handler.php:46
278
  msgid "Renew your license now"
279
  msgstr ""
280
 
281
- #: includes/class-freemius.php:13005
282
  msgid "%s to access version %s security & feature updates, and support."
283
  msgstr ""
284
 
285
- #: includes/class-freemius.php:15378
286
  msgid "%s activation was successfully completed."
287
  msgstr ""
288
 
289
- #: includes/class-freemius.php:15392
290
  msgid "Your account was successfully activated with the %s plan."
291
  msgstr ""
292
 
293
- #: includes/class-freemius.php:15403, includes/class-freemius.php:18991
294
  msgid "Your trial has been successfully started."
295
  msgstr ""
296
 
297
- #: includes/class-freemius.php:15973, includes/class-freemius.php:16061, includes/class-freemius.php:16227
298
  msgid "Couldn't activate %s."
299
  msgstr ""
300
 
301
- #: includes/class-freemius.php:15974, includes/class-freemius.php:16062, includes/class-freemius.php:16228
302
  msgid "Please contact us with the following message:"
303
  msgstr ""
304
 
305
- #: includes/class-freemius.php:16058
306
  msgid "An unknown error has occurred."
307
  msgstr ""
308
 
309
- #: includes/class-freemius.php:16585, includes/class-freemius.php:21339
310
  msgid "Upgrade"
311
  msgstr ""
312
 
313
- #: includes/class-freemius.php:16591
314
  msgid "Start Trial"
315
  msgstr ""
316
 
317
- #: includes/class-freemius.php:16593
318
  msgid "Pricing"
319
  msgstr ""
320
 
321
- #: includes/class-freemius.php:16672, includes/class-freemius.php:16674
322
  msgid "Affiliation"
323
  msgstr ""
324
 
325
- #: includes/class-freemius.php:16702, includes/class-freemius.php:16704, templates/account.php:177, templates/debug.php:326
326
  msgid "Account"
327
  msgstr ""
328
 
329
- #: includes/class-freemius.php:16717, includes/class-freemius.php:16719, includes/customizer/class-fs-customizer-support-section.php:60
330
  msgid "Contact Us"
331
  msgstr ""
332
 
333
- #: includes/class-freemius.php:16729, includes/class-freemius.php:16731, includes/class-freemius.php:21353, templates/account.php:105, templates/account/partials/addon.php:45
334
  msgid "Add-Ons"
335
  msgstr ""
336
 
337
- #: includes/class-freemius.php:16765
338
  msgctxt "ASCII arrow left icon"
339
  msgid "&#x2190;"
340
  msgstr ""
341
 
342
- #: includes/class-freemius.php:16765
343
  msgctxt "ASCII arrow right icon"
344
  msgid "&#x27a4;"
345
  msgstr ""
346
 
347
- #: includes/class-freemius.php:16767, templates/pricing.php:102
348
  msgctxt "noun"
349
  msgid "Pricing"
350
  msgstr ""
351
 
352
- #: includes/class-freemius.php:16980, includes/customizer/class-fs-customizer-support-section.php:67
353
  msgid "Support Forum"
354
  msgstr ""
355
 
356
- #: includes/class-freemius.php:17925
357
  msgid "Your email has been successfully verified - you are AWESOME!"
358
  msgstr ""
359
 
360
- #: includes/class-freemius.php:17926
361
  msgctxt "a positive response"
362
  msgid "Right on"
363
  msgstr ""
364
 
365
- #: includes/class-freemius.php:18590
 
 
 
 
 
 
 
 
366
  msgid "Your %s Add-on plan was successfully upgraded."
367
  msgstr ""
368
 
369
- #: includes/class-freemius.php:18592
370
  msgid "%s Add-on was successfully purchased."
371
  msgstr ""
372
 
373
- #: includes/class-freemius.php:18595
374
  msgid "Download the latest version"
375
  msgstr ""
376
 
377
- #: includes/class-freemius.php:18681
378
  msgid "Your server is blocking the access to Freemius' API, which is crucial for %1$s synchronization. Please contact your host to whitelist %2$s"
379
  msgstr ""
380
 
381
- #: includes/class-freemius.php:18687, includes/class-freemius.php:19118, includes/class-freemius.php:19207
382
  msgid "Error received from the server:"
383
  msgstr ""
384
 
385
- #: includes/class-freemius.php:18697
386
  msgid "It seems like one of the authentication parameters is wrong. Update your Public Key, Secret Key & User ID, and try again."
387
  msgstr ""
388
 
389
- #: includes/class-freemius.php:18891, includes/class-freemius.php:19123, includes/class-freemius.php:19178, includes/class-freemius.php:19281
390
  msgctxt "something somebody says when they are thinking about what you have just said."
391
  msgid "Hmm"
392
  msgstr ""
393
 
394
- #: includes/class-freemius.php:18904
395
  msgid "It looks like you are still on the %s plan. If you did upgrade or change your plan, it's probably an issue on our side - sorry."
396
  msgstr ""
397
 
398
- #: includes/class-freemius.php:18905, templates/account.php:107, templates/add-ons.php:191, templates/account/partials/addon.php:47
399
  msgctxt "trial period"
400
  msgid "Trial"
401
  msgstr ""
402
 
403
- #: includes/class-freemius.php:18910
404
  msgid "I have upgraded my account but when I try to Sync the License, the plan remains %s."
405
  msgstr ""
406
 
407
- #: includes/class-freemius.php:18914, includes/class-freemius.php:18973
408
  msgid "Please contact us here"
409
  msgstr ""
410
 
411
- #: includes/class-freemius.php:18925
412
  msgid "Your plan was successfully activated."
413
  msgstr ""
414
 
415
- #: includes/class-freemius.php:18926
416
  msgid "Your plan was successfully upgraded."
417
  msgstr ""
418
 
419
- #: includes/class-freemius.php:18943
420
  msgid "Your plan was successfully changed to %s."
421
  msgstr ""
422
 
423
- #: includes/class-freemius.php:18959
424
  msgid "Your license has expired. You can still continue using the free %s forever."
425
  msgstr ""
426
 
427
- #: includes/class-freemius.php:18961
428
  msgid "Your license has expired. %1$sUpgrade now%2$s to continue using the %3$s without interruptions."
429
  msgstr ""
430
 
431
- #: includes/class-freemius.php:18969
432
  msgid "Your license has been cancelled. If you think it's a mistake, please contact support."
433
  msgstr ""
434
 
435
- #: includes/class-freemius.php:18982
436
  msgid "Your license has expired. You can still continue using all the %s features, but you'll need to renew your license to continue getting updates and support."
437
  msgstr ""
438
 
439
- #: includes/class-freemius.php:19005
440
  msgid "Your free trial has expired. You can still continue using all our free features."
441
  msgstr ""
442
 
443
- #: includes/class-freemius.php:19007
444
  msgid "Your free trial has expired. %1$sUpgrade now%2$s to continue using the %3$s without interruptions."
445
  msgstr ""
446
 
447
- #: includes/class-freemius.php:19114
448
  msgid "It looks like the license could not be activated."
449
  msgstr ""
450
 
451
- #: includes/class-freemius.php:19156
452
  msgid "Your license was successfully activated."
453
  msgstr ""
454
 
455
- #: includes/class-freemius.php:19182
456
  msgid "It looks like your site currently doesn't have an active license."
457
  msgstr ""
458
 
459
- #: includes/class-freemius.php:19206
460
  msgid "It looks like the license deactivation failed."
461
  msgstr ""
462
 
463
- #: includes/class-freemius.php:19234
 
 
 
 
464
  msgid "Your license was successfully deactivated, you are back to the %s plan."
465
  msgstr ""
466
 
467
- #: includes/class-freemius.php:19235
468
  msgid "O.K"
469
  msgstr ""
470
 
471
- #: includes/class-freemius.php:19288
472
  msgid "Seems like we are having some temporary issue with your subscription cancellation. Please try again in few minutes."
473
  msgstr ""
474
 
475
- #: includes/class-freemius.php:19297
476
  msgid "Your subscription was successfully cancelled. Your %s plan license will expire in %s."
477
  msgstr ""
478
 
479
- #: includes/class-freemius.php:19339
480
  msgid "You are already running the %s in a trial mode."
481
  msgstr ""
482
 
483
- #: includes/class-freemius.php:19350
484
  msgid "You already utilized a trial before."
485
  msgstr ""
486
 
487
- #: includes/class-freemius.php:19364
488
  msgid "Plan %s do not exist, therefore, can't start a trial."
489
  msgstr ""
490
 
491
- #: includes/class-freemius.php:19375
492
  msgid "Plan %s does not support a trial period."
493
  msgstr ""
494
 
495
- #: includes/class-freemius.php:19386
496
  msgid "None of the %s's plans supports a trial period."
497
  msgstr ""
498
 
499
- #: includes/class-freemius.php:19436
500
  msgid "It looks like you are not in trial mode anymore so there's nothing to cancel :)"
501
  msgstr ""
502
 
503
- #: includes/class-freemius.php:19472
504
  msgid "Seems like we are having some temporary issue with your trial cancellation. Please try again in few minutes."
505
  msgstr ""
506
 
507
- #: includes/class-freemius.php:19491
508
  msgid "Your %s free trial was successfully cancelled."
509
  msgstr ""
510
 
511
- #: includes/class-freemius.php:19807
512
  msgid "Version %s was released."
513
  msgstr ""
514
 
515
- #: includes/class-freemius.php:19807
516
  msgid "Please download %s."
517
  msgstr ""
518
 
519
- #: includes/class-freemius.php:19814
520
  msgid "the latest %s version here"
521
  msgstr ""
522
 
523
- #: includes/class-freemius.php:19819
524
  msgid "New"
525
  msgstr ""
526
 
527
- #: includes/class-freemius.php:19824
528
  msgid "Seems like you got the latest release."
529
  msgstr ""
530
 
531
- #: includes/class-freemius.php:19825
532
  msgid "You are all good!"
533
  msgstr ""
534
 
535
- #: includes/class-freemius.php:20095
536
  msgid "Verification mail was just sent to %s. If you can't find it after 5 min, please check your spam box."
537
  msgstr ""
538
 
539
- #: includes/class-freemius.php:20234
540
  msgid "Site successfully opted in."
541
  msgstr ""
542
 
543
- #: includes/class-freemius.php:20235, includes/class-freemius.php:21055
544
  msgid "Awesome"
545
  msgstr ""
546
 
547
- #: includes/class-freemius.php:20251, templates/forms/optout.php:32
548
  msgid "We appreciate your help in making the %s better by letting us track some usage data."
549
  msgstr ""
550
 
551
- #: includes/class-freemius.php:20252
552
  msgid "Thank you!"
553
  msgstr ""
554
 
555
- #: includes/class-freemius.php:20259
556
  msgid "We will no longer be sending any usage data of %s on %s to %s."
557
  msgstr ""
558
 
559
- #: includes/class-freemius.php:20388
560
  msgid "Please check your mailbox, you should receive an email via %s to confirm the ownership change. From security reasons, you must confirm the change within the next 15 min. If you cannot find the email, please check your spam folder."
561
  msgstr ""
562
 
563
- #: includes/class-freemius.php:20394
564
  msgid "Thanks for confirming the ownership change. An email was just sent to %s for final approval."
565
  msgstr ""
566
 
567
- #: includes/class-freemius.php:20399
568
  msgid "%s is the new owner of the account."
569
  msgstr ""
570
 
571
- #: includes/class-freemius.php:20401
572
  msgctxt "as congratulations"
573
  msgid "Congrats"
574
  msgstr ""
575
 
576
- #: includes/class-freemius.php:20421
577
- msgid "Sorry, we could not complete the email update. Another user with the same email is already registered."
578
- msgstr ""
579
-
580
- #: includes/class-freemius.php:20422
581
- msgid "If you would like to give up the ownership of the %s's account to %s click the Change Ownership button."
582
- msgstr ""
583
-
584
- #: includes/class-freemius.php:20429
585
- msgid "Change Ownership"
586
- msgstr ""
587
-
588
- #: includes/class-freemius.php:20437
589
  msgid "Your email was successfully updated. You should receive an email with confirmation instructions in few moments."
590
  msgstr ""
591
 
592
- #: includes/class-freemius.php:20449
593
  msgid "Please provide your full name."
594
  msgstr ""
595
 
596
- #: includes/class-freemius.php:20454
597
  msgid "Your name was successfully updated."
598
  msgstr ""
599
 
600
- #: includes/class-freemius.php:20515
601
  msgid "You have successfully updated your %s."
602
  msgstr ""
603
 
604
- #: includes/class-freemius.php:20655
 
 
 
 
 
 
 
 
605
  msgid "Just letting you know that the add-ons information of %s is being pulled from an external server."
606
  msgstr ""
607
 
608
- #: includes/class-freemius.php:20656
609
  msgctxt "advance notice of something that will need attention."
610
  msgid "Heads up"
611
  msgstr ""
612
 
613
- #: includes/class-freemius.php:21095
614
  msgctxt "exclamation"
615
  msgid "Hey"
616
  msgstr ""
617
 
618
- #: includes/class-freemius.php:21095
619
  msgid "How do you like %s so far? Test all our %s premium features with a %d-day free trial."
620
  msgstr ""
621
 
622
- #: includes/class-freemius.php:21103
623
  msgid "No commitment for %s days - cancel anytime!"
624
  msgstr ""
625
 
626
- #: includes/class-freemius.php:21104
627
  msgid "No credit card required"
628
  msgstr ""
629
 
630
- #: includes/class-freemius.php:21111, templates/forms/trial-start.php:53
631
  msgctxt "call to action"
632
  msgid "Start free trial"
633
  msgstr ""
634
 
635
- #: includes/class-freemius.php:21188
636
  msgid "Hey there, did you know that %s has an affiliate program? If you like the %s you can become our ambassador and earn some cash!"
637
  msgstr ""
638
 
639
- #: includes/class-freemius.php:21197
640
  msgid "Learn more"
641
  msgstr ""
642
 
643
- #: includes/class-freemius.php:21377, templates/account.php:474, templates/account.php:595, templates/connect.php:171, templates/connect.php:421, templates/forms/license-activation.php:25, templates/account/partials/addon.php:287
644
  msgid "Activate License"
645
  msgstr ""
646
 
647
- #: includes/class-freemius.php:21378, templates/account.php:543, templates/account.php:594, templates/account/partials/site.php:256
648
  msgid "Change License"
649
  msgstr ""
650
 
651
- #: includes/class-freemius.php:21469, templates/account/partials/site.php:161
652
  msgid "Opt Out"
653
  msgstr ""
654
 
655
- #: includes/class-freemius.php:21471, includes/class-freemius.php:21479, templates/account/partials/site.php:43, templates/account/partials/site.php:161
656
  msgid "Opt In"
657
  msgstr ""
658
 
659
- #: includes/class-freemius.php:21705
660
  msgid " The paid version of %1$s is already installed. Please activate it to start benefiting the %2$s features. %3$s"
661
  msgstr ""
662
 
663
- #: includes/class-freemius.php:21713
664
  msgid "Activate %s features"
665
  msgstr ""
666
 
667
- #: includes/class-freemius.php:21726
668
  msgid "Please follow these steps to complete the upgrade"
669
  msgstr ""
670
 
671
- #: includes/class-freemius.php:21730
672
  msgid "Download the latest %s version"
673
  msgstr ""
674
 
675
- #: includes/class-freemius.php:21734
676
  msgid "Upload and activate the downloaded version"
677
  msgstr ""
678
 
679
- #: includes/class-freemius.php:21736
680
  msgid "How to upload and activate?"
681
  msgstr ""
682
 
683
- #: includes/class-freemius.php:21870
684
  msgid "%sClick here%s to choose the sites where you'd like to activate the license on."
685
  msgstr ""
686
 
687
- #: includes/class-freemius.php:22031
688
  msgid "Auto installation only works for opted-in users."
689
  msgstr ""
690
 
691
- #: includes/class-freemius.php:22041, includes/class-freemius.php:22074, includes/class-fs-plugin-updater.php:1188, includes/class-fs-plugin-updater.php:1202
692
  msgid "Invalid module ID."
693
  msgstr ""
694
 
695
- #: includes/class-freemius.php:22050, includes/class-fs-plugin-updater.php:1224
696
  msgid "Premium version already active."
697
  msgstr ""
698
 
699
- #: includes/class-freemius.php:22057
700
  msgid "You do not have a valid license to access the premium version."
701
  msgstr ""
702
 
703
- #: includes/class-freemius.php:22064
704
  msgid "Plugin is a \"Serviceware\" which means it does not have a premium code version."
705
  msgstr ""
706
 
707
- #: includes/class-freemius.php:22082, includes/class-fs-plugin-updater.php:1223
708
  msgid "Premium add-on version already installed."
709
  msgstr ""
710
 
711
- #: includes/class-freemius.php:22427
712
  msgid "View paid features"
713
  msgstr ""
714
 
715
- #: includes/class-freemius.php:22749
716
  msgid "Thank you so much for using %s and its add-ons!"
717
  msgstr ""
718
 
719
- #: includes/class-freemius.php:22750
720
  msgid "Thank you so much for using %s!"
721
  msgstr ""
722
 
723
- #: includes/class-freemius.php:22756
724
  msgid "You've already opted-in to our usage-tracking, which helps us keep improving the %s."
725
  msgstr ""
726
 
727
- #: includes/class-freemius.php:22760
728
  msgid "Thank you so much for using our products!"
729
  msgstr ""
730
 
731
- #: includes/class-freemius.php:22761
732
  msgid "You've already opted-in to our usage-tracking, which helps us keep improving them."
733
  msgstr ""
734
 
735
- #: includes/class-freemius.php:22780
736
  msgid "%s and its add-ons"
737
  msgstr ""
738
 
739
- #: includes/class-freemius.php:22789
740
  msgid "Products"
741
  msgstr ""
742
 
743
- #: includes/class-freemius.php:22796, templates/connect.php:272
744
  msgid "Yes"
745
  msgstr ""
746
 
747
- #: includes/class-freemius.php:22797, templates/connect.php:273
748
  msgid "send me security & feature updates, educational content and offers."
749
  msgstr ""
750
 
751
- #: includes/class-freemius.php:22798, templates/connect.php:278
752
  msgid "No"
753
  msgstr ""
754
 
755
- #: includes/class-freemius.php:22800, templates/connect.php:280
756
  msgid "do %sNOT%s send me security & feature updates, educational content and offers."
757
  msgstr ""
758
 
759
- #: includes/class-freemius.php:22810
760
  msgid "Due to the new %sEU General Data Protection Regulation (GDPR)%s compliance requirements it is required that you provide your explicit consent, again, confirming that you are onboard :-)"
761
  msgstr ""
762
 
763
- #: includes/class-freemius.php:22812, templates/connect.php:287
764
  msgid "Please let us know if you'd like us to contact you for security & feature updates, educational content, and occasional offers:"
765
  msgstr ""
766
 
767
- #: includes/class-freemius.php:23094
768
  msgid "License key is empty."
769
  msgstr ""
770
 
771
- #: includes/class-fs-plugin-updater.php:204, templates/forms/premium-versions-upgrade-handler.php:57
772
  msgid "Renew license"
773
  msgstr ""
774
 
775
- #: includes/class-fs-plugin-updater.php:209, templates/forms/premium-versions-upgrade-handler.php:58
776
  msgid "Buy license"
777
  msgstr ""
778
 
779
- #: includes/class-fs-plugin-updater.php:319, includes/class-fs-plugin-updater.php:352
780
  msgid "There is a %s of %s available."
781
  msgstr ""
782
 
783
- #: includes/class-fs-plugin-updater.php:321, includes/class-fs-plugin-updater.php:357
784
  msgid "new Beta version"
785
  msgstr ""
786
 
787
- #: includes/class-fs-plugin-updater.php:322, includes/class-fs-plugin-updater.php:358
788
  msgid "new version"
789
  msgstr ""
790
 
791
- #: includes/class-fs-plugin-updater.php:381
792
  msgid "Important Upgrade Notice:"
793
  msgstr ""
794
 
795
- #: includes/class-fs-plugin-updater.php:1253
796
  msgid "Installing plugin: %s"
797
  msgstr ""
798
 
799
- #: includes/class-fs-plugin-updater.php:1294
800
  msgid "Unable to connect to the filesystem. Please confirm your credentials."
801
  msgstr ""
802
 
803
- #: includes/class-fs-plugin-updater.php:1476
804
  msgid "The remote plugin package does not contain a folder with the desired slug and renaming did not work."
805
  msgstr ""
806
 
807
- #: includes/fs-plugin-info-dialog.php:514
808
  msgid "Purchase More"
809
  msgstr ""
810
 
811
- #: includes/fs-plugin-info-dialog.php:515, templates/account/partials/addon.php:347
812
  msgctxt "verb"
813
  msgid "Purchase"
814
  msgstr ""
815
 
816
- #: includes/fs-plugin-info-dialog.php:519
817
  msgid "Start my free %s"
818
  msgstr ""
819
 
820
- #: includes/fs-plugin-info-dialog.php:717
821
  msgid "Install Free Version Update Now"
822
  msgstr ""
823
 
824
- #: includes/fs-plugin-info-dialog.php:718, templates/account.php:534
825
  msgid "Install Update Now"
826
  msgstr ""
827
 
828
- #: includes/fs-plugin-info-dialog.php:727
829
  msgid "Install Free Version Now"
830
  msgstr ""
831
 
832
- #: includes/fs-plugin-info-dialog.php:728, templates/add-ons.php:262, templates/auto-installation.php:111, templates/account/partials/addon.php:327, templates/account/partials/addon.php:379
833
  msgid "Install Now"
834
  msgstr ""
835
 
836
- #: includes/fs-plugin-info-dialog.php:744
837
  msgctxt "as download latest version"
838
  msgid "Download Latest Free Version"
839
  msgstr ""
840
 
841
- #: includes/fs-plugin-info-dialog.php:745, templates/account.php:85, templates/add-ons.php:34, templates/account/partials/addon.php:25
842
  msgctxt "as download latest version"
843
  msgid "Download Latest"
844
  msgstr ""
845
 
846
- #: includes/fs-plugin-info-dialog.php:760, templates/add-ons.php:268, templates/account/partials/addon.php:318, templates/account/partials/addon.php:373
847
  msgid "Activate this add-on"
848
  msgstr ""
849
 
850
- #: includes/fs-plugin-info-dialog.php:762, templates/connect.php:418
851
  msgid "Activate Free Version"
852
  msgstr ""
853
 
854
- #: includes/fs-plugin-info-dialog.php:763, templates/account.php:109, templates/add-ons.php:269, templates/account/partials/addon.php:49
855
  msgid "Activate"
856
  msgstr ""
857
 
858
- #: includes/fs-plugin-info-dialog.php:973
859
  msgctxt "Plugin installer section title"
860
  msgid "Description"
861
  msgstr ""
862
 
863
- #: includes/fs-plugin-info-dialog.php:974
864
  msgctxt "Plugin installer section title"
865
  msgid "Installation"
866
  msgstr ""
867
 
868
- #: includes/fs-plugin-info-dialog.php:975
869
  msgctxt "Plugin installer section title"
870
  msgid "FAQ"
871
  msgstr ""
872
 
873
- #: includes/fs-plugin-info-dialog.php:976, templates/plugin-info/description.php:55
874
  msgid "Screenshots"
875
  msgstr ""
876
 
877
- #: includes/fs-plugin-info-dialog.php:977
878
  msgctxt "Plugin installer section title"
879
  msgid "Changelog"
880
  msgstr ""
881
 
882
- #: includes/fs-plugin-info-dialog.php:978
883
  msgctxt "Plugin installer section title"
884
  msgid "Reviews"
885
  msgstr ""
886
 
887
- #: includes/fs-plugin-info-dialog.php:979
888
  msgctxt "Plugin installer section title"
889
  msgid "Other Notes"
890
  msgstr ""
891
 
892
- #: includes/fs-plugin-info-dialog.php:994
893
  msgctxt "Plugin installer section title"
894
  msgid "Features & Pricing"
895
  msgstr ""
896
 
897
- #: includes/fs-plugin-info-dialog.php:1004
898
  msgid "Plugin Install"
899
  msgstr ""
900
 
901
- #: includes/fs-plugin-info-dialog.php:1076
902
  msgctxt "e.g. Professional Plan"
903
  msgid "%s Plan"
904
  msgstr ""
905
 
906
- #: includes/fs-plugin-info-dialog.php:1102
907
  msgctxt "e.g. the best product"
908
  msgid "Best"
909
  msgstr ""
910
 
911
- #: includes/fs-plugin-info-dialog.php:1108, includes/fs-plugin-info-dialog.php:1128
912
  msgctxt "as every month"
913
  msgid "Monthly"
914
  msgstr ""
915
 
916
- #: includes/fs-plugin-info-dialog.php:1111
917
  msgctxt "as once a year"
918
  msgid "Annual"
919
  msgstr ""
920
 
921
- #: includes/fs-plugin-info-dialog.php:1114
922
  msgid "Lifetime"
923
  msgstr ""
924
 
925
- #: includes/fs-plugin-info-dialog.php:1128, includes/fs-plugin-info-dialog.php:1130, includes/fs-plugin-info-dialog.php:1132
926
  msgctxt "e.g. billed monthly"
927
  msgid "Billed %s"
928
  msgstr ""
929
 
930
- #: includes/fs-plugin-info-dialog.php:1130
931
  msgctxt "as once a year"
932
  msgid "Annually"
933
  msgstr ""
934
 
935
- #: includes/fs-plugin-info-dialog.php:1132
936
  msgctxt "as once a year"
937
  msgid "Once"
938
  msgstr ""
939
 
940
- #: includes/fs-plugin-info-dialog.php:1138
941
  msgid "Single Site License"
942
  msgstr ""
943
 
944
- #: includes/fs-plugin-info-dialog.php:1140
945
  msgid "Unlimited Licenses"
946
  msgstr ""
947
 
948
- #: includes/fs-plugin-info-dialog.php:1142
949
  msgid "Up to %s Sites"
950
  msgstr ""
951
 
952
- #: includes/fs-plugin-info-dialog.php:1152, templates/plugin-info/features.php:82
953
  msgctxt "as monthly period"
954
  msgid "mo"
955
  msgstr ""
956
 
957
- #: includes/fs-plugin-info-dialog.php:1159, templates/plugin-info/features.php:80
958
  msgctxt "as annual period"
959
  msgid "year"
960
  msgstr ""
961
 
962
- #: includes/fs-plugin-info-dialog.php:1213
963
  msgctxt "noun"
964
  msgid "Price"
965
  msgstr ""
966
 
967
- #: includes/fs-plugin-info-dialog.php:1261
968
  msgid "Save %s"
969
  msgstr ""
970
 
971
- #: includes/fs-plugin-info-dialog.php:1271
972
  msgid "No commitment for %s - cancel anytime"
973
  msgstr ""
974
 
975
- #: includes/fs-plugin-info-dialog.php:1274
976
  msgid "After your free %s, pay as little as %s"
977
  msgstr ""
978
 
979
- #: includes/fs-plugin-info-dialog.php:1285
980
  msgid "Details"
981
  msgstr ""
982
 
983
- #: includes/fs-plugin-info-dialog.php:1289, templates/account.php:96, templates/debug.php:203, templates/debug.php:240, templates/debug.php:454, templates/account/partials/addon.php:36
984
  msgctxt "product version"
985
  msgid "Version"
986
  msgstr ""
987
 
988
- #: includes/fs-plugin-info-dialog.php:1296
989
  msgctxt "as the plugin author"
990
  msgid "Author"
991
  msgstr ""
992
 
993
- #: includes/fs-plugin-info-dialog.php:1303
994
  msgid "Last Updated"
995
  msgstr ""
996
 
997
- #: includes/fs-plugin-info-dialog.php:1308, templates/account.php:444
998
  msgctxt "x-ago"
999
  msgid "%s ago"
1000
  msgstr ""
1001
 
1002
- #: includes/fs-plugin-info-dialog.php:1317
1003
  msgid "Requires WordPress Version"
1004
  msgstr ""
1005
 
1006
- #: includes/fs-plugin-info-dialog.php:1318
1007
  msgid "%s or higher"
1008
  msgstr ""
1009
 
1010
- #: includes/fs-plugin-info-dialog.php:1325
1011
  msgid "Compatible up to"
1012
  msgstr ""
1013
 
1014
- #: includes/fs-plugin-info-dialog.php:1333
1015
  msgid "Downloaded"
1016
  msgstr ""
1017
 
1018
- #: includes/fs-plugin-info-dialog.php:1337
1019
  msgid "%s time"
1020
  msgstr ""
1021
 
1022
- #: includes/fs-plugin-info-dialog.php:1339
1023
  msgid "%s times"
1024
  msgstr ""
1025
 
1026
- #: includes/fs-plugin-info-dialog.php:1349
1027
  msgid "WordPress.org Plugin Page"
1028
  msgstr ""
1029
 
1030
- #: includes/fs-plugin-info-dialog.php:1357
1031
  msgid "Plugin Homepage"
1032
  msgstr ""
1033
 
1034
- #: includes/fs-plugin-info-dialog.php:1365, includes/fs-plugin-info-dialog.php:1447
1035
  msgid "Donate to this plugin"
1036
  msgstr ""
1037
 
1038
- #: includes/fs-plugin-info-dialog.php:1372
1039
  msgid "Average Rating"
1040
  msgstr ""
1041
 
1042
- #: includes/fs-plugin-info-dialog.php:1379
1043
  msgid "based on %s"
1044
  msgstr ""
1045
 
1046
- #: includes/fs-plugin-info-dialog.php:1383
1047
  msgid "%s rating"
1048
  msgstr ""
1049
 
1050
- #: includes/fs-plugin-info-dialog.php:1385
1051
  msgid "%s ratings"
1052
  msgstr ""
1053
 
1054
- #: includes/fs-plugin-info-dialog.php:1400
1055
  msgid "%s star"
1056
  msgstr ""
1057
 
1058
- #: includes/fs-plugin-info-dialog.php:1402
1059
  msgid "%s stars"
1060
  msgstr ""
1061
 
1062
- #: includes/fs-plugin-info-dialog.php:1413
1063
  msgid "Click to see reviews that provided a rating of %s"
1064
  msgstr ""
1065
 
1066
- #: includes/fs-plugin-info-dialog.php:1426
1067
  msgid "Contributors"
1068
  msgstr ""
1069
 
1070
- #: includes/fs-plugin-info-dialog.php:1455, includes/fs-plugin-info-dialog.php:1457
1071
  msgid "Warning"
1072
  msgstr ""
1073
 
1074
- #: includes/fs-plugin-info-dialog.php:1455
1075
  msgid "This plugin has not been tested with your current version of WordPress."
1076
  msgstr ""
1077
 
1078
- #: includes/fs-plugin-info-dialog.php:1457
1079
  msgid "This plugin has not been marked as compatible with your version of WordPress."
1080
  msgstr ""
1081
 
1082
- #: includes/fs-plugin-info-dialog.php:1476
1083
  msgid "Paid add-on must be deployed to Freemius."
1084
  msgstr ""
1085
 
1086
- #: includes/fs-plugin-info-dialog.php:1477
1087
  msgid "Add-on must be deployed to WordPress.org or Freemius."
1088
  msgstr ""
1089
 
1090
- #: includes/fs-plugin-info-dialog.php:1498
1091
  msgid "Newer Version (%s) Installed"
1092
  msgstr ""
1093
 
1094
- #: includes/fs-plugin-info-dialog.php:1499
1095
  msgid "Newer Free Version (%s) Installed"
1096
  msgstr ""
1097
 
1098
- #: includes/fs-plugin-info-dialog.php:1506
1099
  msgid "Latest Version Installed"
1100
  msgstr ""
1101
 
1102
- #: includes/fs-plugin-info-dialog.php:1507
1103
  msgid "Latest Free Version Installed"
1104
  msgstr ""
1105
 
1106
- #: templates/account.php:86, templates/forms/subscription-cancellation.php:96, templates/account/partials/addon.php:26, templates/account/partials/site.php:295
1107
  msgid "Downgrading your plan"
1108
  msgstr ""
1109
 
1110
- #: templates/account.php:87, templates/forms/subscription-cancellation.php:97, templates/account/partials/addon.php:27, templates/account/partials/site.php:296
1111
  msgid "Cancelling the subscription"
1112
  msgstr ""
1113
 
1114
  #. translators: %1$s: Either 'Downgrading your plan' or 'Cancelling the subscription'
1115
- #: templates/account.php:89
1116
  msgid "%1$s will immediately stop all future recurring payments and your %2$s plan license will expire in %3$s."
1117
  msgstr ""
1118
 
1119
- #: templates/account.php:90, templates/forms/subscription-cancellation.php:100, templates/account/partials/addon.php:30, templates/account/partials/site.php:299
1120
  msgid "Please note that we will not be able to grandfather outdated pricing for renewals/new subscriptions after a cancellation. If you choose to renew the subscription manually in the future, after a price increase, which typically occurs once a year, you will be charged the updated price."
1121
  msgstr ""
1122
 
1123
- #: templates/account.php:91, templates/forms/subscription-cancellation.php:106, templates/account/partials/addon.php:31
1124
  msgid "Cancelling the trial will immediately block access to all premium features. Are you sure?"
1125
  msgstr ""
1126
 
1127
- #: templates/account.php:92, templates/forms/subscription-cancellation.php:101, templates/account/partials/addon.php:32, templates/account/partials/site.php:300
1128
  msgid "You can still enjoy all %s features but you will not have access to %s security & feature updates, nor support."
1129
  msgstr ""
1130
 
1131
- #: templates/account.php:93, templates/forms/subscription-cancellation.php:102, templates/account/partials/addon.php:33, templates/account/partials/site.php:301
1132
  msgid "Once your license expires you can still use the Free version but you will NOT have access to the %s features."
1133
  msgstr ""
1134
 
1135
  #. translators: %s: Plan title (e.g. "Professional")
1136
- #: templates/account.php:95, templates/account/partials/activate-license-button.php:31, templates/account/partials/addon.php:35
1137
  msgid "Activate %s Plan"
1138
  msgstr ""
1139
 
1140
  #. translators: %s: Time period (e.g. Auto renews in "2 months")
1141
- #: templates/account.php:98, templates/account/partials/addon.php:38, templates/account/partials/site.php:275
1142
  msgid "Auto renews in %s"
1143
  msgstr ""
1144
 
1145
  #. translators: %s: Time period (e.g. Expires in "2 months")
1146
- #: templates/account.php:100, templates/account/partials/addon.php:40, templates/account/partials/site.php:277
1147
  msgid "Expires in %s"
1148
  msgstr ""
1149
 
1150
- #: templates/account.php:101, templates/account/partials/addon.php:41
1151
  msgctxt "as synchronize license"
1152
  msgid "Sync License"
1153
  msgstr ""
1154
 
1155
- #: templates/account.php:102, templates/account/partials/addon.php:42
1156
  msgid "Cancel Trial"
1157
  msgstr ""
1158
 
1159
- #: templates/account.php:103, templates/account/partials/addon.php:43
1160
  msgid "Change Plan"
1161
  msgstr ""
1162
 
1163
- #: templates/account.php:104, templates/account/partials/addon.php:44
1164
  msgctxt "verb"
1165
  msgid "Upgrade"
1166
  msgstr ""
1167
 
1168
- #: templates/account.php:106, templates/account/partials/addon.php:46, templates/account/partials/site.php:302
1169
  msgctxt "verb"
1170
  msgid "Downgrade"
1171
  msgstr ""
1172
 
1173
- #: templates/account.php:108, templates/add-ons.php:187, templates/plugin-info/features.php:72, templates/account/partials/addon.php:48, templates/account/partials/site.php:31
1174
  msgid "Free"
1175
  msgstr ""
1176
 
1177
- #: templates/account.php:110, templates/debug.php:373, includes/customizer/class-fs-customizer-upsell-control.php:106, templates/account/partials/addon.php:50
1178
  msgctxt "as product pricing plan"
1179
  msgid "Plan"
1180
  msgstr ""
1181
 
1182
- #: templates/account.php:111
1183
  msgid "Bundle Plan"
1184
  msgstr ""
1185
 
1186
- #: templates/account.php:185
1187
  msgid "Free Trial"
1188
  msgstr ""
1189
 
1190
- #: templates/account.php:196
1191
  msgid "Account Details"
1192
  msgstr ""
1193
 
1194
- #: templates/account.php:200
 
 
 
 
 
 
 
 
1195
  msgid "Billing & Invoices"
1196
  msgstr ""
1197
 
1198
- #: templates/account.php:210
1199
  msgid "Deleting the account will automatically deactivate your %s plan license so you can use it on other sites. If you want to terminate the recurring payments as well, click the \"Cancel\" button, and first \"Downgrade\" your account. Are you sure you would like to continue with the deletion?"
1200
  msgstr ""
1201
 
1202
- #: templates/account.php:212
1203
  msgid "Deletion is not temporary. Only delete if you no longer want to use this %s anymore. Are you sure you would like to continue with the deletion?"
1204
  msgstr ""
1205
 
1206
- #: templates/account.php:215
1207
  msgid "Delete Account"
1208
  msgstr ""
1209
 
1210
- #: templates/account.php:227, templates/account/partials/addon.php:211, templates/account/partials/deactivate-license-button.php:35
1211
  msgid "Deactivate License"
1212
  msgstr ""
1213
 
1214
- #: templates/account.php:250, templates/forms/subscription-cancellation.php:125
1215
  msgid "Are you sure you want to proceed?"
1216
  msgstr ""
1217
 
1218
- #: templates/account.php:250, templates/account/partials/addon.php:234
1219
  msgid "Cancel Subscription"
1220
  msgstr ""
1221
 
1222
- #: templates/account.php:278
1223
  msgctxt "as synchronize"
1224
  msgid "Sync"
1225
  msgstr ""
1226
 
1227
- #: templates/account.php:292, templates/debug.php:489
1228
  msgid "Name"
1229
  msgstr ""
1230
 
1231
- #: templates/account.php:298, templates/debug.php:490
1232
  msgid "Email"
1233
  msgstr ""
1234
 
1235
- #: templates/account.php:305, templates/debug.php:372, templates/debug.php:528
1236
  msgid "User ID"
1237
  msgstr ""
1238
 
1239
- #: templates/account.php:322, templates/account.php:608, templates/account.php:653, templates/debug.php:238, templates/debug.php:366, templates/debug.php:451, templates/debug.php:488, templates/debug.php:526, templates/debug.php:599, templates/account/payments.php:35, templates/debug/logger.php:21
1240
  msgid "ID"
1241
  msgstr ""
1242
 
1243
- #: templates/account.php:329
1244
  msgid "Site ID"
1245
  msgstr ""
1246
 
1247
- #: templates/account.php:332
1248
  msgid "No ID"
1249
  msgstr ""
1250
 
1251
- #: templates/account.php:337, templates/debug.php:245, templates/debug.php:374, templates/debug.php:455, templates/debug.php:492, templates/account/partials/site.php:219
1252
  msgid "Public Key"
1253
  msgstr ""
1254
 
1255
- #: templates/account.php:343, templates/debug.php:375, templates/debug.php:456, templates/debug.php:493, templates/account/partials/site.php:231
1256
  msgid "Secret Key"
1257
  msgstr ""
1258
 
1259
- #: templates/account.php:346
1260
  msgctxt "as secret encryption key missing"
1261
  msgid "No Secret"
1262
  msgstr ""
1263
 
1264
- #: templates/account.php:373, templates/account/partials/site.php:112, templates/account/partials/site.php:114
1265
  msgid "Trial"
1266
  msgstr ""
1267
 
1268
- #: templates/account.php:400, templates/debug.php:533, templates/account/partials/site.php:248
1269
  msgid "License Key"
1270
  msgstr ""
1271
 
1272
- #: templates/account.php:429
1273
  msgid "Join the Beta program"
1274
  msgstr ""
1275
 
1276
- #: templates/account.php:435
1277
  msgid "not verified"
1278
  msgstr ""
1279
 
1280
- #: templates/account.php:444, templates/account/partials/addon.php:172
1281
  msgid "Expired"
1282
  msgstr ""
1283
 
1284
- #: templates/account.php:502
1285
  msgid "Premium version"
1286
  msgstr ""
1287
 
1288
- #: templates/account.php:504
1289
  msgid "Free version"
1290
  msgstr ""
1291
 
1292
- #: templates/account.php:516
1293
  msgid "Verify Email"
1294
  msgstr ""
1295
 
1296
- #: templates/account.php:527
1297
  msgid "Download %s Version"
1298
  msgstr ""
1299
 
1300
- #: templates/account.php:541, templates/account.php:749, templates/account/partials/site.php:237, templates/account/partials/site.php:255
 
 
 
 
1301
  msgctxt "verb"
1302
  msgid "Show"
1303
  msgstr ""
1304
 
1305
- #: templates/account.php:555
1306
  msgid "What is your %s?"
1307
  msgstr ""
1308
 
1309
- #: templates/account.php:563, templates/account/billing.php:21
1310
  msgctxt "verb"
1311
  msgid "Edit"
1312
  msgstr ""
1313
 
1314
- #: templates/account.php:588
 
 
 
 
1315
  msgid "Sites"
1316
  msgstr ""
1317
 
1318
- #: templates/account.php:599
1319
  msgid "Search by address"
1320
  msgstr ""
1321
 
1322
- #: templates/account.php:609, templates/debug.php:369
1323
  msgid "Address"
1324
  msgstr ""
1325
 
1326
- #: templates/account.php:610
1327
  msgid "License"
1328
  msgstr ""
1329
 
1330
- #: templates/account.php:611
1331
  msgid "Plan"
1332
  msgstr ""
1333
 
1334
- #: templates/account.php:656
1335
  msgctxt "as software license"
1336
  msgid "License"
1337
  msgstr ""
1338
 
1339
- #: templates/account.php:743
1340
  msgctxt "verb"
1341
  msgid "Hide"
1342
  msgstr ""
1343
 
1344
- #: templates/account.php:765
1345
  msgid "Processing"
1346
  msgstr ""
1347
 
1348
- #: templates/account.php:768
1349
  msgid "Get updates for bleeding edge Beta versions of %s."
1350
  msgstr ""
1351
 
1352
- #: templates/account.php:826
1353
  msgid "Cancelling %s"
1354
  msgstr ""
1355
 
1356
- #: templates/account.php:826, templates/account.php:843, templates/forms/subscription-cancellation.php:27, templates/forms/deactivation/form.php:133
1357
  msgid "trial"
1358
  msgstr ""
1359
 
1360
- #: templates/account.php:841, templates/forms/deactivation/form.php:150
1361
  msgid "Cancelling %s..."
1362
  msgstr ""
1363
 
1364
- #: templates/account.php:844, templates/forms/subscription-cancellation.php:28, templates/forms/deactivation/form.php:134
1365
  msgid "subscription"
1366
  msgstr ""
1367
 
1368
- #: templates/account.php:858
1369
  msgid "Deactivating your license will block all premium features, but will enable activating the license on another site. Are you sure you want to proceed?"
1370
  msgstr ""
1371
 
1372
- #: templates/add-ons.php:35
 
 
 
 
 
 
 
 
1373
  msgid "View details"
1374
  msgstr ""
1375
 
1376
- #: templates/add-ons.php:45
1377
  msgid "Add Ons for %s"
1378
  msgstr ""
1379
 
1380
- #: templates/add-ons.php:55
1381
- msgid "We could'nt load the add-ons list. It's probably an issue on our side, please try to come back in few minutes."
1382
  msgstr ""
1383
 
1384
- #: templates/add-ons.php:173
1385
  msgctxt "active add-on"
1386
  msgid "Active"
1387
  msgstr ""
1388
 
1389
- #: templates/add-ons.php:174
1390
  msgctxt "installed add-on"
1391
  msgid "Installed"
1392
  msgstr ""
1393
 
1394
- #: templates/admin-notice.php:13, templates/forms/license-activation.php:209, templates/forms/resend-key.php:77
1395
  msgctxt "as close a window"
1396
  msgid "Dismiss"
1397
  msgstr ""
@@ -1430,157 +1494,165 @@ msgctxt "greeting"
1430
  msgid "Hey %s,"
1431
  msgstr ""
1432
 
1433
- #: templates/connect.php:154
1434
  msgid "Allow & Continue"
1435
  msgstr ""
1436
 
1437
- #: templates/connect.php:158
1438
  msgid "Re-send activation email"
1439
  msgstr ""
1440
 
1441
- #: templates/connect.php:162
1442
  msgid "Thanks %s!"
1443
  msgstr ""
1444
 
1445
- #: templates/connect.php:172, templates/forms/license-activation.php:44
1446
  msgid "Agree & Activate License"
1447
  msgstr ""
1448
 
1449
- #: templates/connect.php:181
1450
  msgid "Thanks for purchasing %s! To get started, please enter your license key:"
1451
  msgstr ""
1452
 
1453
- #: templates/connect.php:188
1454
  msgid "Never miss an important update - opt in to our security & feature updates notifications, educational content, offers, and non-sensitive diagnostic tracking with %4$s."
1455
  msgstr ""
1456
 
1457
- #: templates/connect.php:189
1458
  msgid "Never miss an important update - opt in to our security and feature updates notifications, and non-sensitive diagnostic tracking with %4$s."
1459
  msgstr ""
1460
 
1461
- #: templates/connect.php:195
1462
  msgid "Never miss an important update - opt in to our security & feature updates notifications, educational content, offers, and non-sensitive diagnostic tracking with %4$s. If you skip this, that's okay! %1$s will still work just fine."
1463
  msgstr ""
1464
 
1465
- #: templates/connect.php:196
1466
  msgid "Never miss an important update - opt in to our security & feature updates notifications, and non-sensitive diagnostic tracking with %4$s. If you skip this, that's okay! %1$s will still work just fine."
1467
  msgstr ""
1468
 
1469
- #: templates/connect.php:230
1470
  msgid "We're excited to introduce the Freemius network-level integration."
1471
  msgstr ""
1472
 
1473
- #: templates/connect.php:233
1474
  msgid "During the update process we detected %d site(s) that are still pending license activation."
1475
  msgstr ""
1476
 
1477
- #: templates/connect.php:235
1478
  msgid "If you'd like to use the %s on those sites, please enter your license key below and click the activation button."
1479
  msgstr ""
1480
 
1481
- #: templates/connect.php:237
1482
  msgid "%s's paid features"
1483
  msgstr ""
1484
 
1485
- #: templates/connect.php:242
1486
  msgid "Alternatively, you can skip it for now and activate the license later, in your %s's network-level Account page."
1487
  msgstr ""
1488
 
1489
- #: templates/connect.php:244
1490
  msgid "During the update process we detected %s site(s) in the network that are still pending your attention."
1491
  msgstr ""
1492
 
1493
- #: templates/connect.php:253, templates/forms/license-activation.php:47
1494
  msgid "License key"
1495
  msgstr ""
1496
 
1497
- #: templates/connect.php:256, templates/forms/license-activation.php:20
1498
  msgid "Can't find your license key?"
1499
  msgstr ""
1500
 
1501
- #: templates/connect.php:315, templates/connect.php:652, templates/forms/deactivation/retry-skip.php:20
1502
  msgctxt "verb"
1503
  msgid "Skip"
1504
  msgstr ""
1505
 
1506
- #: templates/connect.php:318
1507
  msgid "Delegate to Site Admins"
1508
  msgstr ""
1509
 
1510
- #: templates/connect.php:318
1511
  msgid "If you click it, this decision will be delegated to the sites administrators."
1512
  msgstr ""
1513
 
1514
- #: templates/connect.php:346
1515
  msgid "Your Profile Overview"
1516
  msgstr ""
1517
 
1518
- #: templates/connect.php:347
1519
  msgid "Name and email address"
1520
  msgstr ""
1521
 
1522
- #: templates/connect.php:352
1523
  msgid "Your Site Overview"
1524
  msgstr ""
1525
 
1526
- #: templates/connect.php:353
1527
- msgid "Site URL, WP version, PHP info, plugins & themes"
1528
  msgstr ""
1529
 
1530
- #: templates/connect.php:358
1531
  msgid "Admin Notices"
1532
  msgstr ""
1533
 
1534
- #: templates/connect.php:359, templates/connect.php:375
1535
  msgid "Updates, announcements, marketing, no spam"
1536
  msgstr ""
1537
 
1538
- #: templates/connect.php:364
1539
  msgid "Current %s Events"
1540
  msgstr ""
1541
 
1542
- #: templates/connect.php:365
1543
  msgid "Activation, deactivation and uninstall"
1544
  msgstr ""
1545
 
1546
- #: templates/connect.php:374
1547
  msgid "Newsletter"
1548
  msgstr ""
1549
 
1550
- #: templates/connect.php:391, templates/forms/license-activation.php:39
 
 
 
 
 
 
 
 
1551
  msgid "The %1$s will be periodically sending data to %2$s to check for security and feature updates, and verify the validity of your license."
1552
  msgstr ""
1553
 
1554
- #: templates/connect.php:396
1555
  msgid "What permissions are being granted?"
1556
  msgstr ""
1557
 
1558
- #: templates/connect.php:417
1559
  msgid "Don't have a license key?"
1560
  msgstr ""
1561
 
1562
- #: templates/connect.php:420
1563
  msgid "Have a license key?"
1564
  msgstr ""
1565
 
1566
- #: templates/connect.php:428
1567
  msgid "Privacy Policy"
1568
  msgstr ""
1569
 
1570
- #: templates/connect.php:430
1571
  msgid "License Agreement"
1572
  msgstr ""
1573
 
1574
- #: templates/connect.php:430
1575
  msgid "Terms of Service"
1576
  msgstr ""
1577
 
1578
- #: templates/connect.php:805
1579
  msgctxt "as in the process of sending an email"
1580
  msgid "Sending email"
1581
  msgstr ""
1582
 
1583
- #: templates/connect.php:806
1584
  msgctxt "as activating plugin"
1585
  msgid "Activating"
1586
  msgstr ""
@@ -1608,222 +1680,226 @@ msgctxt "as code debugging"
1608
  msgid "Debugging"
1609
  msgstr ""
1610
 
1611
- #: templates/debug.php:54, templates/debug.php:250, templates/debug.php:376, templates/debug.php:494
1612
  msgid "Actions"
1613
  msgstr ""
1614
 
1615
- #: templates/debug.php:64
1616
  msgid "Are you sure you want to delete all Freemius data?"
1617
  msgstr ""
1618
 
1619
- #: templates/debug.php:64
1620
  msgid "Delete All Accounts"
1621
  msgstr ""
1622
 
1623
- #: templates/debug.php:71
1624
  msgid "Clear API Cache"
1625
  msgstr ""
1626
 
1627
- #: templates/debug.php:79
1628
  msgid "Clear Updates Transients"
1629
  msgstr ""
1630
 
1631
- #: templates/debug.php:86
1632
  msgid "Sync Data From Server"
1633
  msgstr ""
1634
 
1635
- #: templates/debug.php:95
1636
  msgid "Migrate Options to Network"
1637
  msgstr ""
1638
 
1639
- #: templates/debug.php:100
1640
  msgid "Load DB Option"
1641
  msgstr ""
1642
 
1643
- #: templates/debug.php:103
1644
  msgid "Set DB Option"
1645
  msgstr ""
1646
 
1647
- #: templates/debug.php:182
1648
  msgid "Key"
1649
  msgstr ""
1650
 
1651
- #: templates/debug.php:183
1652
  msgid "Value"
1653
  msgstr ""
1654
 
1655
- #: templates/debug.php:199
1656
  msgctxt "as software development kit versions"
1657
  msgid "SDK Versions"
1658
  msgstr ""
1659
 
1660
- #: templates/debug.php:204
1661
  msgid "SDK Path"
1662
  msgstr ""
1663
 
1664
- #: templates/debug.php:205, templates/debug.php:244
1665
  msgid "Module Path"
1666
  msgstr ""
1667
 
1668
- #: templates/debug.php:206
1669
  msgid "Is Active"
1670
  msgstr ""
1671
 
1672
- #: templates/debug.php:234, templates/debug/plugins-themes-sync.php:35
1673
  msgid "Plugins"
1674
  msgstr ""
1675
 
1676
- #: templates/debug.php:234, templates/debug/plugins-themes-sync.php:56
1677
  msgid "Themes"
1678
  msgstr ""
1679
 
1680
- #: templates/debug.php:239, templates/debug.php:371, templates/debug.php:453, templates/debug/scheduled-crons.php:80
1681
  msgid "Slug"
1682
  msgstr ""
1683
 
1684
- #: templates/debug.php:241, templates/debug.php:452
1685
  msgid "Title"
1686
  msgstr ""
1687
 
1688
- #: templates/debug.php:242
1689
  msgctxt "as application program interface"
1690
  msgid "API"
1691
  msgstr ""
1692
 
1693
- #: templates/debug.php:243
1694
  msgid "Freemius State"
1695
  msgstr ""
1696
 
1697
- #: templates/debug.php:247
1698
  msgid "Network Blog"
1699
  msgstr ""
1700
 
1701
- #: templates/debug.php:248
1702
  msgid "Network User"
1703
  msgstr ""
1704
 
1705
- #: templates/debug.php:285
1706
  msgctxt "as connection was successful"
1707
  msgid "Connected"
1708
  msgstr ""
1709
 
1710
- #: templates/debug.php:286
1711
  msgctxt "as connection blocked"
1712
  msgid "Blocked"
1713
  msgstr ""
1714
 
1715
- #: templates/debug.php:322
1716
  msgid "Simulate Trial Promotion"
1717
  msgstr ""
1718
 
1719
- #: templates/debug.php:334
1720
  msgid "Simulate Network Upgrade"
1721
  msgstr ""
1722
 
1723
- #: templates/debug.php:360
1724
  msgid "%s Installs"
1725
  msgstr ""
1726
 
1727
- #: templates/debug.php:362
1728
  msgctxt "like websites"
1729
  msgid "Sites"
1730
  msgstr ""
1731
 
1732
- #: templates/debug.php:368, templates/account/partials/site.php:148
1733
  msgid "Blog ID"
1734
  msgstr ""
1735
 
1736
- #: templates/debug.php:433, templates/debug.php:511, templates/account/partials/addon.php:396
 
 
 
 
1737
  msgctxt "verb"
1738
  msgid "Delete"
1739
  msgstr ""
1740
 
1741
- #: templates/debug.php:447
1742
  msgid "Add Ons of module %s"
1743
  msgstr ""
1744
 
1745
- #: templates/debug.php:484
1746
  msgid "Users"
1747
  msgstr ""
1748
 
1749
- #: templates/debug.php:491
1750
  msgid "Verified"
1751
  msgstr ""
1752
 
1753
- #: templates/debug.php:522
1754
  msgid "%s Licenses"
1755
  msgstr ""
1756
 
1757
- #: templates/debug.php:527
1758
  msgid "Plugin ID"
1759
  msgstr ""
1760
 
1761
- #: templates/debug.php:529
1762
  msgid "Plan ID"
1763
  msgstr ""
1764
 
1765
- #: templates/debug.php:530
1766
  msgid "Quota"
1767
  msgstr ""
1768
 
1769
- #: templates/debug.php:531
1770
  msgid "Activated"
1771
  msgstr ""
1772
 
1773
- #: templates/debug.php:532
1774
  msgid "Blocking"
1775
  msgstr ""
1776
 
1777
- #: templates/debug.php:534
 
 
 
 
1778
  msgctxt "as expiration date"
1779
  msgid "Expiration"
1780
  msgstr ""
1781
 
1782
- #: templates/debug.php:557
1783
  msgid "Debug Log"
1784
  msgstr ""
1785
 
1786
- #: templates/debug.php:561
1787
  msgid "All Types"
1788
  msgstr ""
1789
 
1790
- #: templates/debug.php:568
1791
  msgid "All Requests"
1792
  msgstr ""
1793
 
1794
- #: templates/debug.php:573, templates/debug.php:602, templates/debug/logger.php:25
1795
  msgid "File"
1796
  msgstr ""
1797
 
1798
- #: templates/debug.php:574, templates/debug.php:600, templates/debug/logger.php:23
1799
  msgid "Function"
1800
  msgstr ""
1801
 
1802
- #: templates/debug.php:575
1803
  msgid "Process ID"
1804
  msgstr ""
1805
 
1806
- #: templates/debug.php:576
1807
  msgid "Logger"
1808
  msgstr ""
1809
 
1810
- #: templates/debug.php:577, templates/debug.php:601, templates/debug/logger.php:24
1811
  msgid "Message"
1812
  msgstr ""
1813
 
1814
- #: templates/debug.php:579
1815
  msgid "Filter"
1816
  msgstr ""
1817
 
1818
- #: templates/debug.php:587
1819
  msgid "Download"
1820
  msgstr ""
1821
 
1822
- #: templates/debug.php:598, templates/debug/logger.php:22
1823
- msgid "Type"
1824
- msgstr ""
1825
-
1826
- #: templates/debug.php:603, templates/debug/logger.php:26
1827
  msgid "Timestamp"
1828
  msgstr ""
1829
 
@@ -2009,146 +2085,166 @@ msgstr ""
2009
  msgid "Apply to become an affiliate"
2010
  msgstr ""
2011
 
2012
- #: templates/forms/affiliation.php:104
2013
  msgid "Your affiliate application for %s has been accepted! Log in to your affiliate area at: %s."
2014
  msgstr ""
2015
 
2016
- #: templates/forms/affiliation.php:119
2017
  msgid "Thank you for applying for our affiliate program, we'll review your details during the next 14 days and will get back to you with further information."
2018
  msgstr ""
2019
 
2020
- #: templates/forms/affiliation.php:122
2021
  msgid "Your affiliation account was temporarily suspended."
2022
  msgstr ""
2023
 
2024
- #: templates/forms/affiliation.php:125
2025
  msgid "Thank you for applying for our affiliate program, unfortunately, we've decided at this point to reject your application. Please try again in 30 days."
2026
  msgstr ""
2027
 
2028
- #: templates/forms/affiliation.php:128
2029
  msgid "Due to violation of our affiliation terms, we decided to temporarily block your affiliation account. If you have any questions, please contact support."
2030
  msgstr ""
2031
 
2032
- #: templates/forms/affiliation.php:141
2033
  msgid "Like the %s? Become our ambassador and earn cash ;-)"
2034
  msgstr ""
2035
 
2036
- #: templates/forms/affiliation.php:142
2037
  msgid "Refer new customers to our %s and earn %s commission on each successful sale you refer!"
2038
  msgstr ""
2039
 
2040
- #: templates/forms/affiliation.php:145
2041
  msgid "Program Summary"
2042
  msgstr ""
2043
 
2044
- #: templates/forms/affiliation.php:147
2045
  msgid "%s commission when a customer purchases a new license."
2046
  msgstr ""
2047
 
2048
- #: templates/forms/affiliation.php:149
2049
  msgid "Get commission for automated subscription renewals."
2050
  msgstr ""
2051
 
2052
- #: templates/forms/affiliation.php:152
2053
  msgid "%s tracking cookie after the first visit to maximize earnings potential."
2054
  msgstr ""
2055
 
2056
- #: templates/forms/affiliation.php:155
2057
  msgid "Unlimited commissions."
2058
  msgstr ""
2059
 
2060
- #: templates/forms/affiliation.php:157
2061
  msgid "%s minimum payout amount."
2062
  msgstr ""
2063
 
2064
- #: templates/forms/affiliation.php:158
2065
  msgid "Payouts are in USD and processed monthly via PayPal."
2066
  msgstr ""
2067
 
2068
- #: templates/forms/affiliation.php:159
2069
  msgid "As we reserve 30 days for potential refunds, we only pay commissions that are older than 30 days."
2070
  msgstr ""
2071
 
2072
- #: templates/forms/affiliation.php:162
2073
  msgid "Affiliate"
2074
  msgstr ""
2075
 
2076
- #: templates/forms/affiliation.php:165, templates/forms/resend-key.php:23
2077
  msgid "Email address"
2078
  msgstr ""
2079
 
2080
- #: templates/forms/affiliation.php:169
2081
  msgid "Full name"
2082
  msgstr ""
2083
 
2084
- #: templates/forms/affiliation.php:173
2085
  msgid "PayPal account email address"
2086
  msgstr ""
2087
 
2088
- #: templates/forms/affiliation.php:177
2089
  msgid "Where are you going to promote the %s?"
2090
  msgstr ""
2091
 
2092
- #: templates/forms/affiliation.php:179
2093
  msgid "Enter the domain of your website or other websites from where you plan to promote the %s."
2094
  msgstr ""
2095
 
2096
- #: templates/forms/affiliation.php:181
2097
  msgid "Add another domain"
2098
  msgstr ""
2099
 
2100
- #: templates/forms/affiliation.php:185
2101
  msgid "Extra Domains"
2102
  msgstr ""
2103
 
2104
- #: templates/forms/affiliation.php:186
2105
  msgid "Extra domains where you will be marketing the product from."
2106
  msgstr ""
2107
 
2108
- #: templates/forms/affiliation.php:196
2109
  msgid "Promotion methods"
2110
  msgstr ""
2111
 
2112
- #: templates/forms/affiliation.php:199
2113
  msgid "Social media (Facebook, Twitter, etc.)"
2114
  msgstr ""
2115
 
2116
- #: templates/forms/affiliation.php:203
2117
  msgid "Mobile apps"
2118
  msgstr ""
2119
 
2120
- #: templates/forms/affiliation.php:207
2121
  msgid "Website, email, and social media statistics (optional)"
2122
  msgstr ""
2123
 
2124
- #: templates/forms/affiliation.php:210
2125
  msgid "Please feel free to provide any relevant website or social media statistics, e.g. monthly unique site visits, number of email subscribers, followers, etc. (we will keep this information confidential)."
2126
  msgstr ""
2127
 
2128
- #: templates/forms/affiliation.php:214
2129
  msgid "How will you promote us?"
2130
  msgstr ""
2131
 
2132
- #: templates/forms/affiliation.php:217
2133
  msgid "Please provide details on how you intend to promote %s (please be as specific as possible)."
2134
  msgstr ""
2135
 
2136
- #: templates/forms/affiliation.php:223, templates/forms/resend-key.php:22
2137
  msgid "Cancel"
2138
  msgstr ""
2139
 
2140
- #: templates/forms/affiliation.php:225
2141
  msgid "Become an affiliate"
2142
  msgstr ""
2143
 
2144
- #: templates/forms/license-activation.php:21
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2145
  msgid "Please enter the license key that you received in the email right after the purchase:"
2146
  msgstr ""
2147
 
2148
- #: templates/forms/license-activation.php:26
2149
  msgid "Update License"
2150
  msgstr ""
2151
 
 
 
 
 
2152
  #: templates/forms/optout.php:30
2153
  msgctxt "verb"
2154
  msgid "Opt Out"
@@ -2159,14 +2255,42 @@ msgctxt "verb"
2159
  msgid "Opt In"
2160
  msgstr ""
2161
 
2162
- #: templates/forms/optout.php:33
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2163
  msgid "Usage tracking is done in the name of making %s better. Making a better user experience, prioritizing new features, and more good things. We'd really appreciate if you'll reconsider letting us continue with the tracking."
2164
  msgstr ""
2165
 
2166
- #: templates/forms/optout.php:35
 
 
 
 
2167
  msgid "By clicking \"Opt Out\", we will no longer be sending any data from %s to %s."
2168
  msgstr ""
2169
 
 
 
 
 
 
 
 
 
2170
  #: templates/forms/premium-versions-upgrade-handler.php:40
2171
  msgid "There is a new version of %s available."
2172
  msgstr ""
@@ -2212,11 +2336,6 @@ msgstr ""
2212
  msgid "Don't cancel %s - I'm still interested in getting security & feature updates, as well as be able to contact support."
2213
  msgstr ""
2214
 
2215
- #. translators: %1$s: Either 'Downgrading your plan' or 'Cancelling the subscription'
2216
- #: templates/forms/subscription-cancellation.php:99, templates/account/partials/addon.php:29, templates/account/partials/site.php:298
2217
- msgid "%1$s will immediately stop all future recurring payments and your %s plan license will expire in %s."
2218
- msgstr ""
2219
-
2220
  #: templates/forms/subscription-cancellation.php:103
2221
  msgid "Once your license expires you will no longer be able to use the %s, unless you activate it again with a valid premium license."
2222
  msgstr ""
@@ -2241,6 +2360,23 @@ msgstr ""
2241
  msgid "For compliance with the WordPress.org guidelines, before we start the trial we ask that you opt in with your user and non-sensitive site information, allowing the %s to periodically send data to %s to check for version updates and to validate your trial."
2242
  msgstr ""
2243
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2244
  #: templates/js/style-premium-theme.php:39
2245
  msgid "Premium"
2246
  msgstr ""
@@ -2298,27 +2434,32 @@ msgstr ""
2298
  msgid "Last license"
2299
  msgstr ""
2300
 
2301
- #: templates/account/partials/addon.php:167
 
 
 
 
 
2302
  msgid "Cancelled"
2303
  msgstr ""
2304
 
2305
- #: templates/account/partials/addon.php:177
2306
  msgid "No expiration"
2307
  msgstr ""
2308
 
2309
- #: templates/account/partials/site.php:181
2310
  msgid "Owner Name"
2311
  msgstr ""
2312
 
2313
- #: templates/account/partials/site.php:193
2314
  msgid "Owner Email"
2315
  msgstr ""
2316
 
2317
- #: templates/account/partials/site.php:205
2318
  msgid "Owner ID"
2319
  msgstr ""
2320
 
2321
- #: templates/account/partials/site.php:270
2322
  msgid "Subscription"
2323
  msgstr ""
2324
 
@@ -2358,19 +2499,19 @@ msgstr ""
2358
  msgid "switching"
2359
  msgstr ""
2360
 
2361
- #: templates/forms/deactivation/form.php:365
2362
  msgid "Submit & %s"
2363
  msgstr ""
2364
 
2365
- #: templates/forms/deactivation/form.php:386
2366
  msgid "Kindly tell us the reason so we can improve."
2367
  msgstr ""
2368
 
2369
- #: templates/forms/deactivation/form.php:511
2370
  msgid "Yes - %s"
2371
  msgstr ""
2372
 
2373
- #: templates/forms/deactivation/form.php:518
2374
  msgid "Skip & %s"
2375
  msgstr ""
2376
 
1
+ # Copyright (C) 2020 freemius
2
  # This file is distributed under the same license as the freemius package.
3
  msgid ""
4
  msgstr ""
16
  "X-Poedit-SourceCharset: UTF-8\n"
17
  "Plural-Forms: nplurals=2; plural=(n != 1);\n"
18
 
19
+ #: includes/class-freemius.php:1912, templates/account.php:910
20
  msgid "An update to a Beta version will replace your installed version of %s with the latest Beta release - use with caution, and not on production sites. You have been warned."
21
  msgstr ""
22
 
23
+ #: includes/class-freemius.php:1919
24
  msgid "Would you like to proceed with the update?"
25
  msgstr ""
26
 
27
+ #: includes/class-freemius.php:2131
28
  msgid "Freemius SDK couldn't find the plugin's main file. Please contact sdk@freemius.com with the current error."
29
  msgstr ""
30
 
31
+ #: includes/class-freemius.php:2133
32
  msgid "Error"
33
  msgstr ""
34
 
35
+ #: includes/class-freemius.php:2533
36
  msgid "I found a better %s"
37
  msgstr ""
38
 
39
+ #: includes/class-freemius.php:2535
40
  msgid "What's the %s's name?"
41
  msgstr ""
42
 
43
+ #: includes/class-freemius.php:2541
44
  msgid "It's a temporary %s. I'm just debugging an issue."
45
  msgstr ""
46
 
47
+ #: includes/class-freemius.php:2543
48
  msgid "Deactivation"
49
  msgstr ""
50
 
51
+ #: includes/class-freemius.php:2544
52
  msgid "Theme Switch"
53
  msgstr ""
54
 
55
+ #: includes/class-freemius.php:2553, templates/forms/resend-key.php:24, templates/forms/user-change.php:29
56
  msgid "Other"
57
  msgstr ""
58
 
59
+ #: includes/class-freemius.php:2561
60
  msgid "I no longer need the %s"
61
  msgstr ""
62
 
63
+ #: includes/class-freemius.php:2568
64
  msgid "I only needed the %s for a short period"
65
  msgstr ""
66
 
67
+ #: includes/class-freemius.php:2574
68
  msgid "The %s broke my site"
69
  msgstr ""
70
 
71
+ #: includes/class-freemius.php:2581
72
  msgid "The %s suddenly stopped working"
73
  msgstr ""
74
 
75
+ #: includes/class-freemius.php:2591
76
  msgid "I can't pay for it anymore"
77
  msgstr ""
78
 
79
+ #: includes/class-freemius.php:2593
80
  msgid "What price would you feel comfortable paying?"
81
  msgstr ""
82
 
83
+ #: includes/class-freemius.php:2599
84
  msgid "I don't like to share my information with you"
85
  msgstr ""
86
 
87
+ #: includes/class-freemius.php:2620
88
  msgid "The %s didn't work"
89
  msgstr ""
90
 
91
+ #: includes/class-freemius.php:2630
92
  msgid "I couldn't understand how to make it work"
93
  msgstr ""
94
 
95
+ #: includes/class-freemius.php:2638
96
  msgid "The %s is great, but I need specific feature that you don't support"
97
  msgstr ""
98
 
99
+ #: includes/class-freemius.php:2640
100
  msgid "What feature?"
101
  msgstr ""
102
 
103
+ #: includes/class-freemius.php:2644
104
  msgid "The %s is not working"
105
  msgstr ""
106
 
107
+ #: includes/class-freemius.php:2646
108
  msgid "Kindly share what didn't work so we can fix it for future users..."
109
  msgstr ""
110
 
111
+ #: includes/class-freemius.php:2650
112
  msgid "It's not what I was looking for"
113
  msgstr ""
114
 
115
+ #: includes/class-freemius.php:2652
116
  msgid "What you've been looking for?"
117
  msgstr ""
118
 
119
+ #: includes/class-freemius.php:2656
120
  msgid "The %s didn't work as expected"
121
  msgstr ""
122
 
123
+ #: includes/class-freemius.php:2658
124
  msgid "What did you expect?"
125
  msgstr ""
126
 
127
+ #: includes/class-freemius.php:3513, templates/debug.php:20
128
  msgid "Freemius Debug"
129
  msgstr ""
130
 
131
+ #: includes/class-freemius.php:4265
132
  msgid "I don't know what is cURL or how to install it, help me!"
133
  msgstr ""
134
 
135
+ #: includes/class-freemius.php:4267
136
  msgid "We'll make sure to contact your hosting company and resolve the issue. You will get a follow-up email to %s once we have an update."
137
  msgstr ""
138
 
139
+ #: includes/class-freemius.php:4274
140
  msgid "Great, please install cURL and enable it in your php.ini file. In addition, search for the 'disable_functions' directive in your php.ini file and remove any disabled methods starting with 'curl_'. To make sure it was successfully activated, use 'phpinfo()'. Once activated, deactivate the %s and reactivate it back again."
141
  msgstr ""
142
 
143
+ #: includes/class-freemius.php:4379
144
  msgid "Yes - do your thing"
145
  msgstr ""
146
 
147
+ #: includes/class-freemius.php:4384
148
  msgid "No - just deactivate"
149
  msgstr ""
150
 
151
+ #: includes/class-freemius.php:4429, includes/class-freemius.php:4923, includes/class-freemius.php:6182, includes/class-freemius.php:13357, includes/class-freemius.php:14075, includes/class-freemius.php:17526, includes/class-freemius.php:17631, includes/class-freemius.php:17806, includes/class-freemius.php:20040, includes/class-freemius.php:20398, includes/class-freemius.php:20408, includes/class-freemius.php:21079, includes/class-freemius.php:21985, includes/class-freemius.php:22118, includes/class-freemius.php:22274, templates/add-ons.php:57
152
  msgctxt "exclamation"
153
  msgid "Oops"
154
  msgstr ""
155
 
156
+ #: includes/class-freemius.php:4498
157
  msgid "Thank for giving us the chance to fix it! A message was just sent to our technical staff. We will get back to you as soon as we have an update to %s. Appreciate your patience."
158
  msgstr ""
159
 
160
+ #: includes/class-freemius.php:4920
161
  msgctxt "addonX cannot run without pluginY"
162
  msgid "%s cannot run without %s."
163
  msgstr ""
164
 
165
+ #: includes/class-freemius.php:4921
166
  msgctxt "addonX cannot run..."
167
  msgid "%s cannot run without the plugin."
168
  msgstr ""
169
 
170
+ #: includes/class-freemius.php:5120, includes/class-freemius.php:5145, includes/class-freemius.php:21150
171
  msgid "Unexpected API error. Please contact the %s's author with the following error."
172
  msgstr ""
173
 
174
+ #: includes/class-freemius.php:5848
175
  msgid "Premium %s version was successfully activated."
176
  msgstr ""
177
 
178
+ #: includes/class-freemius.php:5860, includes/class-freemius.php:7762
179
  msgctxt "Used to express elation, enthusiasm, or triumph (especially in electronic communication)."
180
  msgid "W00t"
181
  msgstr ""
182
 
183
+ #: includes/class-freemius.php:5875
184
  msgid "You have a %s license."
185
  msgstr ""
186
 
187
+ #: includes/class-freemius.php:5879, includes/class-freemius.php:16925, includes/class-freemius.php:16936, includes/class-freemius.php:20309, includes/class-freemius.php:20659, includes/class-freemius.php:20728, includes/class-freemius.php:20900
188
  msgctxt "interjection expressing joy or exuberance"
189
  msgid "Yee-haw"
190
  msgstr ""
191
 
192
+ #: includes/class-freemius.php:6165
193
  msgid "%s free trial was successfully cancelled. Since the add-on is premium only it was automatically deactivated. If you like to use it in the future, you'll have to purchase a license."
194
  msgstr ""
195
 
196
+ #: includes/class-freemius.php:6169
197
  msgid "%s is a premium only add-on. You have to purchase a license first before activating the plugin."
198
  msgstr ""
199
 
200
+ #: includes/class-freemius.php:6178, templates/add-ons.php:186, templates/account/partials/addon.php:381
201
  msgid "More information about %s"
202
  msgstr ""
203
 
204
+ #: includes/class-freemius.php:6179
205
  msgid "Purchase License"
206
  msgstr ""
207
 
208
+ #: includes/class-freemius.php:7118, templates/connect.php:171
209
  msgid "You should receive an activation email for %s to your mailbox at %s. Please make sure you click the activation button in that email to %s."
210
  msgstr ""
211
 
212
+ #: includes/class-freemius.php:7122
213
  msgid "start the trial"
214
  msgstr ""
215
 
216
+ #: includes/class-freemius.php:7123, templates/connect.php:175
217
  msgid "complete the install"
218
  msgstr ""
219
 
220
+ #: includes/class-freemius.php:7241
221
  msgid "You are just one step away - %s"
222
  msgstr ""
223
 
224
+ #: includes/class-freemius.php:7244
225
  msgctxt "%s - plugin name. As complete \"PluginX\" activation now"
226
  msgid "Complete \"%s\" Activation Now"
227
  msgstr ""
228
 
229
+ #: includes/class-freemius.php:7322
230
  msgid "We made a few tweaks to the %s, %s"
231
  msgstr ""
232
 
233
+ #: includes/class-freemius.php:7326
234
  msgid "Opt in to make \"%s\" better!"
235
  msgstr ""
236
 
237
+ #: includes/class-freemius.php:7761
238
  msgid "The upgrade of %s was successfully completed."
239
  msgstr ""
240
 
241
+ #: includes/class-freemius.php:10243, includes/class-fs-plugin-updater.php:1099, includes/class-fs-plugin-updater.php:1294, includes/class-fs-plugin-updater.php:1301, templates/auto-installation.php:32
242
  msgid "Add-On"
243
  msgstr ""
244
 
245
+ #: includes/class-freemius.php:10245, templates/account.php:392, templates/account.php:400, templates/debug.php:358, templates/debug.php:549
246
  msgid "Plugin"
247
  msgstr ""
248
 
249
+ #: includes/class-freemius.php:10246, templates/account.php:393, templates/account.php:401, templates/debug.php:358, templates/debug.php:549, templates/forms/deactivation/form.php:71
250
  msgid "Theme"
251
  msgstr ""
252
 
253
+ #: includes/class-freemius.php:13176
254
+ msgid "An unknown error has occurred while trying to toggle the license's white-label mode."
255
+ msgstr ""
256
+
257
+ #: includes/class-freemius.php:13190
258
+ msgid "Your %s license was flagged as white-labeled to hide sensitive information from the WP Admin (e.g. your email, license key, prices, billing address & invoices). If you ever wish to revert it back, you can easily do it through your %s. If this was a mistake you can also %s."
259
+ msgstr ""
260
+
261
+ #: includes/class-freemius.php:13195
262
+ msgid "User Dashboard"
263
+ msgstr ""
264
+
265
+ #: includes/class-freemius.php:13196
266
+ msgid "revert it now"
267
+ msgstr ""
268
+
269
+ #: includes/class-freemius.php:13255
270
  msgid "An unknown error has occurred while trying to set the user's beta mode."
271
  msgstr ""
272
 
273
+ #: includes/class-freemius.php:13328
274
+ msgid "Invalid new user ID or email address."
275
+ msgstr ""
276
+
277
+ #: includes/class-freemius.php:13358, includes/class-freemius.php:22229
278
+ msgid "Sorry, we could not complete the email update. Another user with the same email is already registered."
279
+ msgstr ""
280
+
281
+ #: includes/class-freemius.php:13359, includes/class-freemius.php:22230
282
+ msgid "If you would like to give up the ownership of the %s's account to %s click the Change Ownership button."
283
+ msgstr ""
284
+
285
+ #: includes/class-freemius.php:13366, includes/class-freemius.php:22237
286
+ msgid "Change Ownership"
287
+ msgstr ""
288
+
289
+ #: includes/class-freemius.php:13942
290
  msgid "Invalid site details collection."
291
  msgstr ""
292
 
293
+ #: includes/class-freemius.php:14062
294
  msgid "We couldn't find your email address in the system, are you sure it's the right address?"
295
  msgstr ""
296
 
297
+ #: includes/class-freemius.php:14064
298
  msgid "We can't see any active licenses associated with that email address, are you sure it's the right address?"
299
  msgstr ""
300
 
301
+ #: includes/class-freemius.php:14338
302
  msgid "Account is pending activation."
303
  msgstr ""
304
 
305
+ #: includes/class-freemius.php:14450, templates/forms/premium-versions-upgrade-handler.php:47
306
  msgid "Buy a license now"
307
  msgstr ""
308
 
309
+ #: includes/class-freemius.php:14462, templates/forms/premium-versions-upgrade-handler.php:46
310
  msgid "Renew your license now"
311
  msgstr ""
312
 
313
+ #: includes/class-freemius.php:14466
314
  msgid "%s to access version %s security & feature updates, and support."
315
  msgstr ""
316
 
317
+ #: includes/class-freemius.php:16907
318
  msgid "%s activation was successfully completed."
319
  msgstr ""
320
 
321
+ #: includes/class-freemius.php:16921
322
  msgid "Your account was successfully activated with the %s plan."
323
  msgstr ""
324
 
325
+ #: includes/class-freemius.php:16932, includes/class-freemius.php:20724
326
  msgid "Your trial has been successfully started."
327
  msgstr ""
328
 
329
+ #: includes/class-freemius.php:17524, includes/class-freemius.php:17629, includes/class-freemius.php:17804
330
  msgid "Couldn't activate %s."
331
  msgstr ""
332
 
333
+ #: includes/class-freemius.php:17525, includes/class-freemius.php:17630, includes/class-freemius.php:17805
334
  msgid "Please contact us with the following message:"
335
  msgstr ""
336
 
337
+ #: includes/class-freemius.php:17626, templates/forms/data-debug-mode.php:162
338
  msgid "An unknown error has occurred."
339
  msgstr ""
340
 
341
+ #: includes/class-freemius.php:18162, includes/class-freemius.php:23310
342
  msgid "Upgrade"
343
  msgstr ""
344
 
345
+ #: includes/class-freemius.php:18168
346
  msgid "Start Trial"
347
  msgstr ""
348
 
349
+ #: includes/class-freemius.php:18170
350
  msgid "Pricing"
351
  msgstr ""
352
 
353
+ #: includes/class-freemius.php:18250, includes/class-freemius.php:18252
354
  msgid "Affiliation"
355
  msgstr ""
356
 
357
+ #: includes/class-freemius.php:18280, includes/class-freemius.php:18282, templates/account.php:240, templates/debug.php:324
358
  msgid "Account"
359
  msgstr ""
360
 
361
+ #: includes/class-freemius.php:18296, includes/class-freemius.php:18298, includes/customizer/class-fs-customizer-support-section.php:60
362
  msgid "Contact Us"
363
  msgstr ""
364
 
365
+ #: includes/class-freemius.php:18309, includes/class-freemius.php:18311, includes/class-freemius.php:23324, templates/account.php:119, templates/account/partials/addon.php:44
366
  msgid "Add-Ons"
367
  msgstr ""
368
 
369
+ #: includes/class-freemius.php:18345
370
  msgctxt "ASCII arrow left icon"
371
  msgid "&#x2190;"
372
  msgstr ""
373
 
374
+ #: includes/class-freemius.php:18345
375
  msgctxt "ASCII arrow right icon"
376
  msgid "&#x27a4;"
377
  msgstr ""
378
 
379
+ #: includes/class-freemius.php:18347, templates/pricing.php:109
380
  msgctxt "noun"
381
  msgid "Pricing"
382
  msgstr ""
383
 
384
+ #: includes/class-freemius.php:18560, includes/customizer/class-fs-customizer-support-section.php:67
385
  msgid "Support Forum"
386
  msgstr ""
387
 
388
+ #: includes/class-freemius.php:19534
389
  msgid "Your email has been successfully verified - you are AWESOME!"
390
  msgstr ""
391
 
392
+ #: includes/class-freemius.php:19535
393
  msgctxt "a positive response"
394
  msgid "Right on"
395
  msgstr ""
396
 
397
+ #: includes/class-freemius.php:20041
398
+ msgid "seems like the key you entered doesn't match our records."
399
+ msgstr ""
400
+
401
+ #: includes/class-freemius.php:20065
402
+ msgid "Debug mode was successfully enabled and will be automatically disabled in 60 min. You can also disable it earlier by clicking the \"Stop Debug\" link."
403
+ msgstr ""
404
+
405
+ #: includes/class-freemius.php:20300
406
  msgid "Your %s Add-on plan was successfully upgraded."
407
  msgstr ""
408
 
409
+ #: includes/class-freemius.php:20302
410
  msgid "%s Add-on was successfully purchased."
411
  msgstr ""
412
 
413
+ #: includes/class-freemius.php:20305
414
  msgid "Download the latest version"
415
  msgstr ""
416
 
417
+ #: includes/class-freemius.php:20391
418
  msgid "Your server is blocking the access to Freemius' API, which is crucial for %1$s synchronization. Please contact your host to whitelist %2$s"
419
  msgstr ""
420
 
421
+ #: includes/class-freemius.php:20397, includes/class-freemius.php:20407, includes/class-freemius.php:20859, includes/class-freemius.php:20948
422
  msgid "Error received from the server:"
423
  msgstr ""
424
 
425
+ #: includes/class-freemius.php:20407
426
  msgid "It seems like one of the authentication parameters is wrong. Update your Public Key, Secret Key & User ID, and try again."
427
  msgstr ""
428
 
429
+ #: includes/class-freemius.php:20621, includes/class-freemius.php:20864, includes/class-freemius.php:20919, includes/class-freemius.php:21026
430
  msgctxt "something somebody says when they are thinking about what you have just said."
431
  msgid "Hmm"
432
  msgstr ""
433
 
434
+ #: includes/class-freemius.php:20634
435
  msgid "It looks like you are still on the %s plan. If you did upgrade or change your plan, it's probably an issue on our side - sorry."
436
  msgstr ""
437
 
438
+ #: includes/class-freemius.php:20635, templates/account.php:121, templates/add-ons.php:250, templates/account/partials/addon.php:46
439
  msgctxt "trial period"
440
  msgid "Trial"
441
  msgstr ""
442
 
443
+ #: includes/class-freemius.php:20640
444
  msgid "I have upgraded my account but when I try to Sync the License, the plan remains %s."
445
  msgstr ""
446
 
447
+ #: includes/class-freemius.php:20644, includes/class-freemius.php:20703
448
  msgid "Please contact us here"
449
  msgstr ""
450
 
451
+ #: includes/class-freemius.php:20655
452
  msgid "Your plan was successfully activated."
453
  msgstr ""
454
 
455
+ #: includes/class-freemius.php:20656
456
  msgid "Your plan was successfully upgraded."
457
  msgstr ""
458
 
459
+ #: includes/class-freemius.php:20673
460
  msgid "Your plan was successfully changed to %s."
461
  msgstr ""
462
 
463
+ #: includes/class-freemius.php:20689
464
  msgid "Your license has expired. You can still continue using the free %s forever."
465
  msgstr ""
466
 
467
+ #: includes/class-freemius.php:20691
468
  msgid "Your license has expired. %1$sUpgrade now%2$s to continue using the %3$s without interruptions."
469
  msgstr ""
470
 
471
+ #: includes/class-freemius.php:20699
472
  msgid "Your license has been cancelled. If you think it's a mistake, please contact support."
473
  msgstr ""
474
 
475
+ #: includes/class-freemius.php:20712
476
  msgid "Your license has expired. You can still continue using all the %s features, but you'll need to renew your license to continue getting updates and support."
477
  msgstr ""
478
 
479
+ #: includes/class-freemius.php:20738
480
  msgid "Your free trial has expired. You can still continue using all our free features."
481
  msgstr ""
482
 
483
+ #: includes/class-freemius.php:20740
484
  msgid "Your free trial has expired. %1$sUpgrade now%2$s to continue using the %3$s without interruptions."
485
  msgstr ""
486
 
487
+ #: includes/class-freemius.php:20855
488
  msgid "It looks like the license could not be activated."
489
  msgstr ""
490
 
491
+ #: includes/class-freemius.php:20897
492
  msgid "Your license was successfully activated."
493
  msgstr ""
494
 
495
+ #: includes/class-freemius.php:20923
496
  msgid "It looks like your site currently doesn't have an active license."
497
  msgstr ""
498
 
499
+ #: includes/class-freemius.php:20947
500
  msgid "It looks like the license deactivation failed."
501
  msgstr ""
502
 
503
+ #: includes/class-freemius.php:20976
504
+ msgid "Your %s license was successfully deactivated."
505
+ msgstr ""
506
+
507
+ #: includes/class-freemius.php:20977
508
  msgid "Your license was successfully deactivated, you are back to the %s plan."
509
  msgstr ""
510
 
511
+ #: includes/class-freemius.php:20980
512
  msgid "O.K"
513
  msgstr ""
514
 
515
+ #: includes/class-freemius.php:21033
516
  msgid "Seems like we are having some temporary issue with your subscription cancellation. Please try again in few minutes."
517
  msgstr ""
518
 
519
+ #: includes/class-freemius.php:21042
520
  msgid "Your subscription was successfully cancelled. Your %s plan license will expire in %s."
521
  msgstr ""
522
 
523
+ #: includes/class-freemius.php:21084
524
  msgid "You are already running the %s in a trial mode."
525
  msgstr ""
526
 
527
+ #: includes/class-freemius.php:21095
528
  msgid "You already utilized a trial before."
529
  msgstr ""
530
 
531
+ #: includes/class-freemius.php:21109
532
  msgid "Plan %s do not exist, therefore, can't start a trial."
533
  msgstr ""
534
 
535
+ #: includes/class-freemius.php:21120
536
  msgid "Plan %s does not support a trial period."
537
  msgstr ""
538
 
539
+ #: includes/class-freemius.php:21131
540
  msgid "None of the %s's plans supports a trial period."
541
  msgstr ""
542
 
543
+ #: includes/class-freemius.php:21181
544
  msgid "It looks like you are not in trial mode anymore so there's nothing to cancel :)"
545
  msgstr ""
546
 
547
+ #: includes/class-freemius.php:21217
548
  msgid "Seems like we are having some temporary issue with your trial cancellation. Please try again in few minutes."
549
  msgstr ""
550
 
551
+ #: includes/class-freemius.php:21236
552
  msgid "Your %s free trial was successfully cancelled."
553
  msgstr ""
554
 
555
+ #: includes/class-freemius.php:21552
556
  msgid "Version %s was released."
557
  msgstr ""
558
 
559
+ #: includes/class-freemius.php:21552
560
  msgid "Please download %s."
561
  msgstr ""
562
 
563
+ #: includes/class-freemius.php:21559
564
  msgid "the latest %s version here"
565
  msgstr ""
566
 
567
+ #: includes/class-freemius.php:21564
568
  msgid "New"
569
  msgstr ""
570
 
571
+ #: includes/class-freemius.php:21569
572
  msgid "Seems like you got the latest release."
573
  msgstr ""
574
 
575
+ #: includes/class-freemius.php:21570
576
  msgid "You are all good!"
577
  msgstr ""
578
 
579
+ #: includes/class-freemius.php:21873
580
  msgid "Verification mail was just sent to %s. If you can't find it after 5 min, please check your spam box."
581
  msgstr ""
582
 
583
+ #: includes/class-freemius.php:22013
584
  msgid "Site successfully opted in."
585
  msgstr ""
586
 
587
+ #: includes/class-freemius.php:22014, includes/class-freemius.php:23020
588
  msgid "Awesome"
589
  msgstr ""
590
 
591
+ #: includes/class-freemius.php:22030, templates/forms/optout.php:41
592
  msgid "We appreciate your help in making the %s better by letting us track some usage data."
593
  msgstr ""
594
 
595
+ #: includes/class-freemius.php:22031
596
  msgid "Thank you!"
597
  msgstr ""
598
 
599
+ #: includes/class-freemius.php:22038
600
  msgid "We will no longer be sending any usage data of %s on %s to %s."
601
  msgstr ""
602
 
603
+ #: includes/class-freemius.php:22196
604
  msgid "Please check your mailbox, you should receive an email via %s to confirm the ownership change. From security reasons, you must confirm the change within the next 15 min. If you cannot find the email, please check your spam folder."
605
  msgstr ""
606
 
607
+ #: includes/class-freemius.php:22202
608
  msgid "Thanks for confirming the ownership change. An email was just sent to %s for final approval."
609
  msgstr ""
610
 
611
+ #: includes/class-freemius.php:22207
612
  msgid "%s is the new owner of the account."
613
  msgstr ""
614
 
615
+ #: includes/class-freemius.php:22209
616
  msgctxt "as congratulations"
617
  msgid "Congrats"
618
  msgstr ""
619
 
620
+ #: includes/class-freemius.php:22245
 
 
 
 
 
 
 
 
 
 
 
 
621
  msgid "Your email was successfully updated. You should receive an email with confirmation instructions in few moments."
622
  msgstr ""
623
 
624
+ #: includes/class-freemius.php:22257
625
  msgid "Please provide your full name."
626
  msgstr ""
627
 
628
+ #: includes/class-freemius.php:22262
629
  msgid "Your name was successfully updated."
630
  msgstr ""
631
 
632
+ #: includes/class-freemius.php:22323
633
  msgid "You have successfully updated your %s."
634
  msgstr ""
635
 
636
+ #: includes/class-freemius.php:22382
637
+ msgid "Is this your client's site? %s if you wish to hide sensitive info like your email, license key, prices, billing address & invoices from the WP Admin."
638
+ msgstr ""
639
+
640
+ #: includes/class-freemius.php:22385
641
+ msgid "Click here"
642
+ msgstr ""
643
+
644
+ #: includes/class-freemius.php:22483
645
  msgid "Just letting you know that the add-ons information of %s is being pulled from an external server."
646
  msgstr ""
647
 
648
+ #: includes/class-freemius.php:22484
649
  msgctxt "advance notice of something that will need attention."
650
  msgid "Heads up"
651
  msgstr ""
652
 
653
+ #: includes/class-freemius.php:23060
654
  msgctxt "exclamation"
655
  msgid "Hey"
656
  msgstr ""
657
 
658
+ #: includes/class-freemius.php:23060
659
  msgid "How do you like %s so far? Test all our %s premium features with a %d-day free trial."
660
  msgstr ""
661
 
662
+ #: includes/class-freemius.php:23068
663
  msgid "No commitment for %s days - cancel anytime!"
664
  msgstr ""
665
 
666
+ #: includes/class-freemius.php:23069
667
  msgid "No credit card required"
668
  msgstr ""
669
 
670
+ #: includes/class-freemius.php:23076, templates/forms/trial-start.php:53
671
  msgctxt "call to action"
672
  msgid "Start free trial"
673
  msgstr ""
674
 
675
+ #: includes/class-freemius.php:23153
676
  msgid "Hey there, did you know that %s has an affiliate program? If you like the %s you can become our ambassador and earn some cash!"
677
  msgstr ""
678
 
679
+ #: includes/class-freemius.php:23162
680
  msgid "Learn more"
681
  msgstr ""
682
 
683
+ #: includes/class-freemius.php:23348, templates/account.php:556, templates/account.php:706, templates/connect.php:179, templates/connect.php:456, templates/forms/license-activation.php:27, templates/account/partials/addon.php:321
684
  msgid "Activate License"
685
  msgstr ""
686
 
687
+ #: includes/class-freemius.php:23349, templates/account.php:650, templates/account.php:705, templates/account/partials/addon.php:322, templates/account/partials/site.php:271
688
  msgid "Change License"
689
  msgstr ""
690
 
691
+ #: includes/class-freemius.php:23462, templates/account/partials/site.php:169
692
  msgid "Opt Out"
693
  msgstr ""
694
 
695
+ #: includes/class-freemius.php:23464, includes/class-freemius.php:23470, templates/account/partials/site.php:49, templates/account/partials/site.php:169
696
  msgid "Opt In"
697
  msgstr ""
698
 
699
+ #: includes/class-freemius.php:23700
700
  msgid " The paid version of %1$s is already installed. Please activate it to start benefiting the %2$s features. %3$s"
701
  msgstr ""
702
 
703
+ #: includes/class-freemius.php:23708
704
  msgid "Activate %s features"
705
  msgstr ""
706
 
707
+ #: includes/class-freemius.php:23721
708
  msgid "Please follow these steps to complete the upgrade"
709
  msgstr ""
710
 
711
+ #: includes/class-freemius.php:23725
712
  msgid "Download the latest %s version"
713
  msgstr ""
714
 
715
+ #: includes/class-freemius.php:23729
716
  msgid "Upload and activate the downloaded version"
717
  msgstr ""
718
 
719
+ #: includes/class-freemius.php:23731
720
  msgid "How to upload and activate?"
721
  msgstr ""
722
 
723
+ #: includes/class-freemius.php:23865
724
  msgid "%sClick here%s to choose the sites where you'd like to activate the license on."
725
  msgstr ""
726
 
727
+ #: includes/class-freemius.php:24034
728
  msgid "Auto installation only works for opted-in users."
729
  msgstr ""
730
 
731
+ #: includes/class-freemius.php:24044, includes/class-freemius.php:24077, includes/class-fs-plugin-updater.php:1273, includes/class-fs-plugin-updater.php:1287
732
  msgid "Invalid module ID."
733
  msgstr ""
734
 
735
+ #: includes/class-freemius.php:24053, includes/class-fs-plugin-updater.php:1309
736
  msgid "Premium version already active."
737
  msgstr ""
738
 
739
+ #: includes/class-freemius.php:24060
740
  msgid "You do not have a valid license to access the premium version."
741
  msgstr ""
742
 
743
+ #: includes/class-freemius.php:24067
744
  msgid "Plugin is a \"Serviceware\" which means it does not have a premium code version."
745
  msgstr ""
746
 
747
+ #: includes/class-freemius.php:24085, includes/class-fs-plugin-updater.php:1308
748
  msgid "Premium add-on version already installed."
749
  msgstr ""
750
 
751
+ #: includes/class-freemius.php:24435
752
  msgid "View paid features"
753
  msgstr ""
754
 
755
+ #: includes/class-freemius.php:24757
756
  msgid "Thank you so much for using %s and its add-ons!"
757
  msgstr ""
758
 
759
+ #: includes/class-freemius.php:24758
760
  msgid "Thank you so much for using %s!"
761
  msgstr ""
762
 
763
+ #: includes/class-freemius.php:24764
764
  msgid "You've already opted-in to our usage-tracking, which helps us keep improving the %s."
765
  msgstr ""
766
 
767
+ #: includes/class-freemius.php:24768
768
  msgid "Thank you so much for using our products!"
769
  msgstr ""
770
 
771
+ #: includes/class-freemius.php:24769
772
  msgid "You've already opted-in to our usage-tracking, which helps us keep improving them."
773
  msgstr ""
774
 
775
+ #: includes/class-freemius.php:24788
776
  msgid "%s and its add-ons"
777
  msgstr ""
778
 
779
+ #: includes/class-freemius.php:24797
780
  msgid "Products"
781
  msgstr ""
782
 
783
+ #: includes/class-freemius.php:24804, templates/connect.php:280
784
  msgid "Yes"
785
  msgstr ""
786
 
787
+ #: includes/class-freemius.php:24805, templates/connect.php:281
788
  msgid "send me security & feature updates, educational content and offers."
789
  msgstr ""
790
 
791
+ #: includes/class-freemius.php:24806, templates/connect.php:286
792
  msgid "No"
793
  msgstr ""
794
 
795
+ #: includes/class-freemius.php:24808, templates/connect.php:288
796
  msgid "do %sNOT%s send me security & feature updates, educational content and offers."
797
  msgstr ""
798
 
799
+ #: includes/class-freemius.php:24818
800
  msgid "Due to the new %sEU General Data Protection Regulation (GDPR)%s compliance requirements it is required that you provide your explicit consent, again, confirming that you are onboard :-)"
801
  msgstr ""
802
 
803
+ #: includes/class-freemius.php:24820, templates/connect.php:295
804
  msgid "Please let us know if you'd like us to contact you for security & feature updates, educational content, and occasional offers:"
805
  msgstr ""
806
 
807
+ #: includes/class-freemius.php:25102
808
  msgid "License key is empty."
809
  msgstr ""
810
 
811
+ #: includes/class-fs-plugin-updater.php:206, templates/forms/premium-versions-upgrade-handler.php:57
812
  msgid "Renew license"
813
  msgstr ""
814
 
815
+ #: includes/class-fs-plugin-updater.php:211, templates/forms/premium-versions-upgrade-handler.php:58
816
  msgid "Buy license"
817
  msgstr ""
818
 
819
+ #: includes/class-fs-plugin-updater.php:327, includes/class-fs-plugin-updater.php:360
820
  msgid "There is a %s of %s available."
821
  msgstr ""
822
 
823
+ #: includes/class-fs-plugin-updater.php:329, includes/class-fs-plugin-updater.php:365
824
  msgid "new Beta version"
825
  msgstr ""
826
 
827
+ #: includes/class-fs-plugin-updater.php:330, includes/class-fs-plugin-updater.php:366
828
  msgid "new version"
829
  msgstr ""
830
 
831
+ #: includes/class-fs-plugin-updater.php:389
832
  msgid "Important Upgrade Notice:"
833
  msgstr ""
834
 
835
+ #: includes/class-fs-plugin-updater.php:1338
836
  msgid "Installing plugin: %s"
837
  msgstr ""
838
 
839
+ #: includes/class-fs-plugin-updater.php:1379
840
  msgid "Unable to connect to the filesystem. Please confirm your credentials."
841
  msgstr ""
842
 
843
+ #: includes/class-fs-plugin-updater.php:1561
844
  msgid "The remote plugin package does not contain a folder with the desired slug and renaming did not work."
845
  msgstr ""
846
 
847
+ #: includes/fs-plugin-info-dialog.php:541
848
  msgid "Purchase More"
849
  msgstr ""
850
 
851
+ #: includes/fs-plugin-info-dialog.php:542, templates/account/partials/addon.php:385
852
  msgctxt "verb"
853
  msgid "Purchase"
854
  msgstr ""
855
 
856
+ #: includes/fs-plugin-info-dialog.php:546
857
  msgid "Start my free %s"
858
  msgstr ""
859
 
860
+ #: includes/fs-plugin-info-dialog.php:744
861
  msgid "Install Free Version Update Now"
862
  msgstr ""
863
 
864
+ #: includes/fs-plugin-info-dialog.php:745, templates/account.php:639
865
  msgid "Install Update Now"
866
  msgstr ""
867
 
868
+ #: includes/fs-plugin-info-dialog.php:754
869
  msgid "Install Free Version Now"
870
  msgstr ""
871
 
872
+ #: includes/fs-plugin-info-dialog.php:755, templates/add-ons.php:323, templates/auto-installation.php:111, templates/account/partials/addon.php:365, templates/account/partials/addon.php:418
873
  msgid "Install Now"
874
  msgstr ""
875
 
876
+ #: includes/fs-plugin-info-dialog.php:771
877
  msgctxt "as download latest version"
878
  msgid "Download Latest Free Version"
879
  msgstr ""
880
 
881
+ #: includes/fs-plugin-info-dialog.php:772, templates/account.php:99, templates/add-ons.php:37, templates/account/partials/addon.php:25
882
  msgctxt "as download latest version"
883
  msgid "Download Latest"
884
  msgstr ""
885
 
886
+ #: includes/fs-plugin-info-dialog.php:787, templates/add-ons.php:329, templates/account/partials/addon.php:356, templates/account/partials/addon.php:412
887
  msgid "Activate this add-on"
888
  msgstr ""
889
 
890
+ #: includes/fs-plugin-info-dialog.php:789, templates/connect.php:453
891
  msgid "Activate Free Version"
892
  msgstr ""
893
 
894
+ #: includes/fs-plugin-info-dialog.php:790, templates/account.php:123, templates/add-ons.php:330, templates/account/partials/addon.php:48
895
  msgid "Activate"
896
  msgstr ""
897
 
898
+ #: includes/fs-plugin-info-dialog.php:1002
899
  msgctxt "Plugin installer section title"
900
  msgid "Description"
901
  msgstr ""
902
 
903
+ #: includes/fs-plugin-info-dialog.php:1003
904
  msgctxt "Plugin installer section title"
905
  msgid "Installation"
906
  msgstr ""
907
 
908
+ #: includes/fs-plugin-info-dialog.php:1004
909
  msgctxt "Plugin installer section title"
910
  msgid "FAQ"
911
  msgstr ""
912
 
913
+ #: includes/fs-plugin-info-dialog.php:1005, templates/plugin-info/description.php:55
914
  msgid "Screenshots"
915
  msgstr ""
916
 
917
+ #: includes/fs-plugin-info-dialog.php:1006
918
  msgctxt "Plugin installer section title"
919
  msgid "Changelog"
920
  msgstr ""
921
 
922
+ #: includes/fs-plugin-info-dialog.php:1007
923
  msgctxt "Plugin installer section title"
924
  msgid "Reviews"
925
  msgstr ""
926
 
927
+ #: includes/fs-plugin-info-dialog.php:1008
928
  msgctxt "Plugin installer section title"
929
  msgid "Other Notes"
930
  msgstr ""
931
 
932
+ #: includes/fs-plugin-info-dialog.php:1023
933
  msgctxt "Plugin installer section title"
934
  msgid "Features & Pricing"
935
  msgstr ""
936
 
937
+ #: includes/fs-plugin-info-dialog.php:1033
938
  msgid "Plugin Install"
939
  msgstr ""
940
 
941
+ #: includes/fs-plugin-info-dialog.php:1105
942
  msgctxt "e.g. Professional Plan"
943
  msgid "%s Plan"
944
  msgstr ""
945
 
946
+ #: includes/fs-plugin-info-dialog.php:1131
947
  msgctxt "e.g. the best product"
948
  msgid "Best"
949
  msgstr ""
950
 
951
+ #: includes/fs-plugin-info-dialog.php:1137, includes/fs-plugin-info-dialog.php:1157
952
  msgctxt "as every month"
953
  msgid "Monthly"
954
  msgstr ""
955
 
956
+ #: includes/fs-plugin-info-dialog.php:1140
957
  msgctxt "as once a year"
958
  msgid "Annual"
959
  msgstr ""
960
 
961
+ #: includes/fs-plugin-info-dialog.php:1143
962
  msgid "Lifetime"
963
  msgstr ""
964
 
965
+ #: includes/fs-plugin-info-dialog.php:1157, includes/fs-plugin-info-dialog.php:1159, includes/fs-plugin-info-dialog.php:1161
966
  msgctxt "e.g. billed monthly"
967
  msgid "Billed %s"
968
  msgstr ""
969
 
970
+ #: includes/fs-plugin-info-dialog.php:1159
971
  msgctxt "as once a year"
972
  msgid "Annually"
973
  msgstr ""
974
 
975
+ #: includes/fs-plugin-info-dialog.php:1161
976
  msgctxt "as once a year"
977
  msgid "Once"
978
  msgstr ""
979
 
980
+ #: includes/fs-plugin-info-dialog.php:1167
981
  msgid "Single Site License"
982
  msgstr ""
983
 
984
+ #: includes/fs-plugin-info-dialog.php:1169
985
  msgid "Unlimited Licenses"
986
  msgstr ""
987
 
988
+ #: includes/fs-plugin-info-dialog.php:1171
989
  msgid "Up to %s Sites"
990
  msgstr ""
991
 
992
+ #: includes/fs-plugin-info-dialog.php:1181, templates/plugin-info/features.php:82
993
  msgctxt "as monthly period"
994
  msgid "mo"
995
  msgstr ""
996
 
997
+ #: includes/fs-plugin-info-dialog.php:1188, templates/plugin-info/features.php:80
998
  msgctxt "as annual period"
999
  msgid "year"
1000
  msgstr ""
1001
 
1002
+ #: includes/fs-plugin-info-dialog.php:1242
1003
  msgctxt "noun"
1004
  msgid "Price"
1005
  msgstr ""
1006
 
1007
+ #: includes/fs-plugin-info-dialog.php:1290
1008
  msgid "Save %s"
1009
  msgstr ""
1010
 
1011
+ #: includes/fs-plugin-info-dialog.php:1300
1012
  msgid "No commitment for %s - cancel anytime"
1013
  msgstr ""
1014
 
1015
+ #: includes/fs-plugin-info-dialog.php:1303
1016
  msgid "After your free %s, pay as little as %s"
1017
  msgstr ""
1018
 
1019
+ #: includes/fs-plugin-info-dialog.php:1314
1020
  msgid "Details"
1021
  msgstr ""
1022
 
1023
+ #: includes/fs-plugin-info-dialog.php:1318, templates/account.php:110, templates/debug.php:201, templates/debug.php:238, templates/debug.php:455, templates/account/partials/addon.php:36
1024
  msgctxt "product version"
1025
  msgid "Version"
1026
  msgstr ""
1027
 
1028
+ #: includes/fs-plugin-info-dialog.php:1325
1029
  msgctxt "as the plugin author"
1030
  msgid "Author"
1031
  msgstr ""
1032
 
1033
+ #: includes/fs-plugin-info-dialog.php:1332
1034
  msgid "Last Updated"
1035
  msgstr ""
1036
 
1037
+ #: includes/fs-plugin-info-dialog.php:1337, templates/account.php:525
1038
  msgctxt "x-ago"
1039
  msgid "%s ago"
1040
  msgstr ""
1041
 
1042
+ #: includes/fs-plugin-info-dialog.php:1346
1043
  msgid "Requires WordPress Version"
1044
  msgstr ""
1045
 
1046
+ #: includes/fs-plugin-info-dialog.php:1347
1047
  msgid "%s or higher"
1048
  msgstr ""
1049
 
1050
+ #: includes/fs-plugin-info-dialog.php:1354
1051
  msgid "Compatible up to"
1052
  msgstr ""
1053
 
1054
+ #: includes/fs-plugin-info-dialog.php:1362
1055
  msgid "Downloaded"
1056
  msgstr ""
1057
 
1058
+ #: includes/fs-plugin-info-dialog.php:1366
1059
  msgid "%s time"
1060
  msgstr ""
1061
 
1062
+ #: includes/fs-plugin-info-dialog.php:1368
1063
  msgid "%s times"
1064
  msgstr ""
1065
 
1066
+ #: includes/fs-plugin-info-dialog.php:1379
1067
  msgid "WordPress.org Plugin Page"
1068
  msgstr ""
1069
 
1070
+ #: includes/fs-plugin-info-dialog.php:1388
1071
  msgid "Plugin Homepage"
1072
  msgstr ""
1073
 
1074
+ #: includes/fs-plugin-info-dialog.php:1397, includes/fs-plugin-info-dialog.php:1481
1075
  msgid "Donate to this plugin"
1076
  msgstr ""
1077
 
1078
+ #: includes/fs-plugin-info-dialog.php:1404
1079
  msgid "Average Rating"
1080
  msgstr ""
1081
 
1082
+ #: includes/fs-plugin-info-dialog.php:1411
1083
  msgid "based on %s"
1084
  msgstr ""
1085
 
1086
+ #: includes/fs-plugin-info-dialog.php:1415
1087
  msgid "%s rating"
1088
  msgstr ""
1089
 
1090
+ #: includes/fs-plugin-info-dialog.php:1417
1091
  msgid "%s ratings"
1092
  msgstr ""
1093
 
1094
+ #: includes/fs-plugin-info-dialog.php:1432
1095
  msgid "%s star"
1096
  msgstr ""
1097
 
1098
+ #: includes/fs-plugin-info-dialog.php:1434
1099
  msgid "%s stars"
1100
  msgstr ""
1101
 
1102
+ #: includes/fs-plugin-info-dialog.php:1446
1103
  msgid "Click to see reviews that provided a rating of %s"
1104
  msgstr ""
1105
 
1106
+ #: includes/fs-plugin-info-dialog.php:1459
1107
  msgid "Contributors"
1108
  msgstr ""
1109
 
1110
+ #: includes/fs-plugin-info-dialog.php:1489, includes/fs-plugin-info-dialog.php:1491
1111
  msgid "Warning"
1112
  msgstr ""
1113
 
1114
+ #: includes/fs-plugin-info-dialog.php:1489
1115
  msgid "This plugin has not been tested with your current version of WordPress."
1116
  msgstr ""
1117
 
1118
+ #: includes/fs-plugin-info-dialog.php:1491
1119
  msgid "This plugin has not been marked as compatible with your version of WordPress."
1120
  msgstr ""
1121
 
1122
+ #: includes/fs-plugin-info-dialog.php:1510
1123
  msgid "Paid add-on must be deployed to Freemius."
1124
  msgstr ""
1125
 
1126
+ #: includes/fs-plugin-info-dialog.php:1511
1127
  msgid "Add-on must be deployed to WordPress.org or Freemius."
1128
  msgstr ""
1129
 
1130
+ #: includes/fs-plugin-info-dialog.php:1532
1131
  msgid "Newer Version (%s) Installed"
1132
  msgstr ""
1133
 
1134
+ #: includes/fs-plugin-info-dialog.php:1533
1135
  msgid "Newer Free Version (%s) Installed"
1136
  msgstr ""
1137
 
1138
+ #: includes/fs-plugin-info-dialog.php:1540
1139
  msgid "Latest Version Installed"
1140
  msgstr ""
1141
 
1142
+ #: includes/fs-plugin-info-dialog.php:1541
1143
  msgid "Latest Free Version Installed"
1144
  msgstr ""
1145
 
1146
+ #: templates/account.php:100, templates/forms/subscription-cancellation.php:96, templates/account/partials/addon.php:26, templates/account/partials/site.php:311
1147
  msgid "Downgrading your plan"
1148
  msgstr ""
1149
 
1150
+ #: templates/account.php:101, templates/forms/subscription-cancellation.php:97, templates/account/partials/addon.php:27, templates/account/partials/site.php:312
1151
  msgid "Cancelling the subscription"
1152
  msgstr ""
1153
 
1154
  #. translators: %1$s: Either 'Downgrading your plan' or 'Cancelling the subscription'
1155
+ #: templates/account.php:103, templates/forms/subscription-cancellation.php:99, templates/account/partials/site.php:314
1156
  msgid "%1$s will immediately stop all future recurring payments and your %2$s plan license will expire in %3$s."
1157
  msgstr ""
1158
 
1159
+ #: templates/account.php:104, templates/forms/subscription-cancellation.php:100, templates/account/partials/addon.php:30, templates/account/partials/site.php:315
1160
  msgid "Please note that we will not be able to grandfather outdated pricing for renewals/new subscriptions after a cancellation. If you choose to renew the subscription manually in the future, after a price increase, which typically occurs once a year, you will be charged the updated price."
1161
  msgstr ""
1162
 
1163
+ #: templates/account.php:105, templates/forms/subscription-cancellation.php:106, templates/account/partials/addon.php:31
1164
  msgid "Cancelling the trial will immediately block access to all premium features. Are you sure?"
1165
  msgstr ""
1166
 
1167
+ #: templates/account.php:106, templates/forms/subscription-cancellation.php:101, templates/account/partials/addon.php:32, templates/account/partials/site.php:316
1168
  msgid "You can still enjoy all %s features but you will not have access to %s security & feature updates, nor support."
1169
  msgstr ""
1170
 
1171
+ #: templates/account.php:107, templates/forms/subscription-cancellation.php:102, templates/account/partials/addon.php:33, templates/account/partials/site.php:317
1172
  msgid "Once your license expires you can still use the Free version but you will NOT have access to the %s features."
1173
  msgstr ""
1174
 
1175
  #. translators: %s: Plan title (e.g. "Professional")
1176
+ #: templates/account.php:109, templates/account/partials/activate-license-button.php:31, templates/account/partials/addon.php:35
1177
  msgid "Activate %s Plan"
1178
  msgstr ""
1179
 
1180
  #. translators: %s: Time period (e.g. Auto renews in "2 months")
1181
+ #: templates/account.php:112, templates/account/partials/addon.php:38, templates/account/partials/site.php:291
1182
  msgid "Auto renews in %s"
1183
  msgstr ""
1184
 
1185
  #. translators: %s: Time period (e.g. Expires in "2 months")
1186
+ #: templates/account.php:114, templates/account/partials/addon.php:40, templates/account/partials/site.php:293
1187
  msgid "Expires in %s"
1188
  msgstr ""
1189
 
1190
+ #: templates/account.php:115
1191
  msgctxt "as synchronize license"
1192
  msgid "Sync License"
1193
  msgstr ""
1194
 
1195
+ #: templates/account.php:116, templates/account/partials/addon.php:41
1196
  msgid "Cancel Trial"
1197
  msgstr ""
1198
 
1199
+ #: templates/account.php:117, templates/account/partials/addon.php:42
1200
  msgid "Change Plan"
1201
  msgstr ""
1202
 
1203
+ #: templates/account.php:118, templates/account/partials/addon.php:43
1204
  msgctxt "verb"
1205
  msgid "Upgrade"
1206
  msgstr ""
1207
 
1208
+ #: templates/account.php:120, templates/account/partials/addon.php:45, templates/account/partials/site.php:318
1209
  msgctxt "verb"
1210
  msgid "Downgrade"
1211
  msgstr ""
1212
 
1213
+ #: templates/account.php:122, templates/add-ons.php:246, templates/plugin-info/features.php:72, templates/account/partials/addon.php:47, templates/account/partials/site.php:33
1214
  msgid "Free"
1215
  msgstr ""
1216
 
1217
+ #: templates/account.php:124, templates/debug.php:371, includes/customizer/class-fs-customizer-upsell-control.php:110, templates/account/partials/addon.php:49
1218
  msgctxt "as product pricing plan"
1219
  msgid "Plan"
1220
  msgstr ""
1221
 
1222
+ #: templates/account.php:125
1223
  msgid "Bundle Plan"
1224
  msgstr ""
1225
 
1226
+ #: templates/account.php:248
1227
  msgid "Free Trial"
1228
  msgstr ""
1229
 
1230
+ #: templates/account.php:259
1231
  msgid "Account Details"
1232
  msgstr ""
1233
 
1234
+ #: templates/account.php:266, templates/forms/data-debug-mode.php:33
1235
+ msgid "Start Debug"
1236
+ msgstr ""
1237
+
1238
+ #: templates/account.php:268
1239
+ msgid "Stop Debug"
1240
+ msgstr ""
1241
+
1242
+ #: templates/account.php:275
1243
  msgid "Billing & Invoices"
1244
  msgstr ""
1245
 
1246
+ #: templates/account.php:286
1247
  msgid "Deleting the account will automatically deactivate your %s plan license so you can use it on other sites. If you want to terminate the recurring payments as well, click the \"Cancel\" button, and first \"Downgrade\" your account. Are you sure you would like to continue with the deletion?"
1248
  msgstr ""
1249
 
1250
+ #: templates/account.php:288
1251
  msgid "Deletion is not temporary. Only delete if you no longer want to use this %s anymore. Are you sure you would like to continue with the deletion?"
1252
  msgstr ""
1253
 
1254
+ #: templates/account.php:291
1255
  msgid "Delete Account"
1256
  msgstr ""
1257
 
1258
+ #: templates/account.php:303, templates/account/partials/addon.php:231, templates/account/partials/deactivate-license-button.php:35
1259
  msgid "Deactivate License"
1260
  msgstr ""
1261
 
1262
+ #: templates/account.php:326, templates/forms/subscription-cancellation.php:125
1263
  msgid "Are you sure you want to proceed?"
1264
  msgstr ""
1265
 
1266
+ #: templates/account.php:326, templates/account/partials/addon.php:255
1267
  msgid "Cancel Subscription"
1268
  msgstr ""
1269
 
1270
+ #: templates/account.php:355, templates/account/partials/addon.php:340
1271
  msgctxt "as synchronize"
1272
  msgid "Sync"
1273
  msgstr ""
1274
 
1275
+ #: templates/account.php:370, templates/debug.php:505
1276
  msgid "Name"
1277
  msgstr ""
1278
 
1279
+ #: templates/account.php:376, templates/debug.php:506
1280
  msgid "Email"
1281
  msgstr ""
1282
 
1283
+ #: templates/account.php:383, templates/debug.php:369, templates/debug.php:555
1284
  msgid "User ID"
1285
  msgstr ""
1286
 
1287
+ #: templates/account.php:401, templates/account.php:719, templates/account.php:752, templates/debug.php:236, templates/debug.php:363, templates/debug.php:452, templates/debug.php:504, templates/debug.php:553, templates/debug.php:632, templates/account/payments.php:35, templates/debug/logger.php:21
1288
  msgid "ID"
1289
  msgstr ""
1290
 
1291
+ #: templates/account.php:408
1292
  msgid "Site ID"
1293
  msgstr ""
1294
 
1295
+ #: templates/account.php:411
1296
  msgid "No ID"
1297
  msgstr ""
1298
 
1299
+ #: templates/account.php:416, templates/debug.php:243, templates/debug.php:372, templates/debug.php:456, templates/debug.php:508, templates/account/partials/site.php:227
1300
  msgid "Public Key"
1301
  msgstr ""
1302
 
1303
+ #: templates/account.php:422, templates/debug.php:373, templates/debug.php:457, templates/debug.php:509, templates/account/partials/site.php:239
1304
  msgid "Secret Key"
1305
  msgstr ""
1306
 
1307
+ #: templates/account.php:425
1308
  msgctxt "as secret encryption key missing"
1309
  msgid "No Secret"
1310
  msgstr ""
1311
 
1312
+ #: templates/account.php:452, templates/account/partials/site.php:120, templates/account/partials/site.php:122
1313
  msgid "Trial"
1314
  msgstr ""
1315
 
1316
+ #: templates/account.php:479, templates/debug.php:561, templates/account/partials/site.php:260
1317
  msgid "License Key"
1318
  msgstr ""
1319
 
1320
+ #: templates/account.php:510
1321
  msgid "Join the Beta program"
1322
  msgstr ""
1323
 
1324
+ #: templates/account.php:516
1325
  msgid "not verified"
1326
  msgstr ""
1327
 
1328
+ #: templates/account.php:525, templates/account/partials/addon.php:190
1329
  msgid "Expired"
1330
  msgstr ""
1331
 
1332
+ #: templates/account.php:585
1333
  msgid "Premium version"
1334
  msgstr ""
1335
 
1336
+ #: templates/account.php:587
1337
  msgid "Free version"
1338
  msgstr ""
1339
 
1340
+ #: templates/account.php:599
1341
  msgid "Verify Email"
1342
  msgstr ""
1343
 
1344
+ #: templates/account.php:613
1345
  msgid "Download %s Version"
1346
  msgstr ""
1347
 
1348
+ #: templates/account.php:629
1349
+ msgid "Download Paid Version"
1350
+ msgstr ""
1351
+
1352
+ #: templates/account.php:647, templates/account.php:890, templates/account/partials/site.php:248, templates/account/partials/site.php:270
1353
  msgctxt "verb"
1354
  msgid "Show"
1355
  msgstr ""
1356
 
1357
+ #: templates/account.php:662
1358
  msgid "What is your %s?"
1359
  msgstr ""
1360
 
1361
+ #: templates/account.php:670, templates/account/billing.php:21
1362
  msgctxt "verb"
1363
  msgid "Edit"
1364
  msgstr ""
1365
 
1366
+ #: templates/account.php:674, templates/forms/user-change.php:27
1367
+ msgid "Change User"
1368
+ msgstr ""
1369
+
1370
+ #: templates/account.php:698
1371
  msgid "Sites"
1372
  msgstr ""
1373
 
1374
+ #: templates/account.php:711
1375
  msgid "Search by address"
1376
  msgstr ""
1377
 
1378
+ #: templates/account.php:720, templates/debug.php:366
1379
  msgid "Address"
1380
  msgstr ""
1381
 
1382
+ #: templates/account.php:721
1383
  msgid "License"
1384
  msgstr ""
1385
 
1386
+ #: templates/account.php:722
1387
  msgid "Plan"
1388
  msgstr ""
1389
 
1390
+ #: templates/account.php:755
1391
  msgctxt "as software license"
1392
  msgid "License"
1393
  msgstr ""
1394
 
1395
+ #: templates/account.php:884
1396
  msgctxt "verb"
1397
  msgid "Hide"
1398
  msgstr ""
1399
 
1400
+ #: templates/account.php:906, templates/forms/data-debug-mode.php:31
1401
  msgid "Processing"
1402
  msgstr ""
1403
 
1404
+ #: templates/account.php:909
1405
  msgid "Get updates for bleeding edge Beta versions of %s."
1406
  msgstr ""
1407
 
1408
+ #: templates/account.php:967
1409
  msgid "Cancelling %s"
1410
  msgstr ""
1411
 
1412
+ #: templates/account.php:967, templates/account.php:984, templates/forms/subscription-cancellation.php:27, templates/forms/deactivation/form.php:133
1413
  msgid "trial"
1414
  msgstr ""
1415
 
1416
+ #: templates/account.php:982, templates/forms/deactivation/form.php:150
1417
  msgid "Cancelling %s..."
1418
  msgstr ""
1419
 
1420
+ #: templates/account.php:985, templates/forms/subscription-cancellation.php:28, templates/forms/deactivation/form.php:134
1421
  msgid "subscription"
1422
  msgstr ""
1423
 
1424
+ #: templates/account.php:999
1425
  msgid "Deactivating your license will block all premium features, but will enable activating the license on another site. Are you sure you want to proceed?"
1426
  msgstr ""
1427
 
1428
+ #: templates/account.php:1073
1429
+ msgid "Disabling white-label mode"
1430
+ msgstr ""
1431
+
1432
+ #: templates/account.php:1074
1433
+ msgid "Enabling white-label mode"
1434
+ msgstr ""
1435
+
1436
+ #: templates/add-ons.php:38
1437
  msgid "View details"
1438
  msgstr ""
1439
 
1440
+ #: templates/add-ons.php:48
1441
  msgid "Add Ons for %s"
1442
  msgstr ""
1443
 
1444
+ #: templates/add-ons.php:58
1445
+ msgid "We couldn't load the add-ons list. It's probably an issue on our side, please try to come back in few minutes."
1446
  msgstr ""
1447
 
1448
+ #: templates/add-ons.php:229
1449
  msgctxt "active add-on"
1450
  msgid "Active"
1451
  msgstr ""
1452
 
1453
+ #: templates/add-ons.php:230
1454
  msgctxt "installed add-on"
1455
  msgid "Installed"
1456
  msgstr ""
1457
 
1458
+ #: templates/admin-notice.php:13, templates/forms/license-activation.php:220, templates/forms/resend-key.php:77
1459
  msgctxt "as close a window"
1460
  msgid "Dismiss"
1461
  msgstr ""
1494
  msgid "Hey %s,"
1495
  msgstr ""
1496
 
1497
+ #: templates/connect.php:162
1498
  msgid "Allow & Continue"
1499
  msgstr ""
1500
 
1501
+ #: templates/connect.php:166
1502
  msgid "Re-send activation email"
1503
  msgstr ""
1504
 
1505
+ #: templates/connect.php:170
1506
  msgid "Thanks %s!"
1507
  msgstr ""
1508
 
1509
+ #: templates/connect.php:180, templates/forms/license-activation.php:46
1510
  msgid "Agree & Activate License"
1511
  msgstr ""
1512
 
1513
+ #: templates/connect.php:189
1514
  msgid "Thanks for purchasing %s! To get started, please enter your license key:"
1515
  msgstr ""
1516
 
1517
+ #: templates/connect.php:196
1518
  msgid "Never miss an important update - opt in to our security & feature updates notifications, educational content, offers, and non-sensitive diagnostic tracking with %4$s."
1519
  msgstr ""
1520
 
1521
+ #: templates/connect.php:197
1522
  msgid "Never miss an important update - opt in to our security and feature updates notifications, and non-sensitive diagnostic tracking with %4$s."
1523
  msgstr ""
1524
 
1525
+ #: templates/connect.php:203
1526
  msgid "Never miss an important update - opt in to our security & feature updates notifications, educational content, offers, and non-sensitive diagnostic tracking with %4$s. If you skip this, that's okay! %1$s will still work just fine."
1527
  msgstr ""
1528
 
1529
+ #: templates/connect.php:204
1530
  msgid "Never miss an important update - opt in to our security & feature updates notifications, and non-sensitive diagnostic tracking with %4$s. If you skip this, that's okay! %1$s will still work just fine."
1531
  msgstr ""
1532
 
1533
+ #: templates/connect.php:238
1534
  msgid "We're excited to introduce the Freemius network-level integration."
1535
  msgstr ""
1536
 
1537
+ #: templates/connect.php:241
1538
  msgid "During the update process we detected %d site(s) that are still pending license activation."
1539
  msgstr ""
1540
 
1541
+ #: templates/connect.php:243
1542
  msgid "If you'd like to use the %s on those sites, please enter your license key below and click the activation button."
1543
  msgstr ""
1544
 
1545
+ #: templates/connect.php:245
1546
  msgid "%s's paid features"
1547
  msgstr ""
1548
 
1549
+ #: templates/connect.php:250
1550
  msgid "Alternatively, you can skip it for now and activate the license later, in your %s's network-level Account page."
1551
  msgstr ""
1552
 
1553
+ #: templates/connect.php:252
1554
  msgid "During the update process we detected %s site(s) in the network that are still pending your attention."
1555
  msgstr ""
1556
 
1557
+ #: templates/connect.php:261, templates/forms/data-debug-mode.php:35, templates/forms/license-activation.php:49
1558
  msgid "License key"
1559
  msgstr ""
1560
 
1561
+ #: templates/connect.php:264, templates/forms/license-activation.php:22
1562
  msgid "Can't find your license key?"
1563
  msgstr ""
1564
 
1565
+ #: templates/connect.php:323, templates/connect.php:695, templates/forms/deactivation/retry-skip.php:20
1566
  msgctxt "verb"
1567
  msgid "Skip"
1568
  msgstr ""
1569
 
1570
+ #: templates/connect.php:326
1571
  msgid "Delegate to Site Admins"
1572
  msgstr ""
1573
 
1574
+ #: templates/connect.php:326
1575
  msgid "If you click it, this decision will be delegated to the sites administrators."
1576
  msgstr ""
1577
 
1578
+ #: templates/connect.php:364
1579
  msgid "Your Profile Overview"
1580
  msgstr ""
1581
 
1582
+ #: templates/connect.php:365
1583
  msgid "Name and email address"
1584
  msgstr ""
1585
 
1586
+ #: templates/connect.php:372
1587
  msgid "Your Site Overview"
1588
  msgstr ""
1589
 
1590
+ #: templates/connect.php:373
1591
+ msgid "Site URL, WP version, PHP info"
1592
  msgstr ""
1593
 
1594
+ #: templates/connect.php:379
1595
  msgid "Admin Notices"
1596
  msgstr ""
1597
 
1598
+ #: templates/connect.php:380, templates/connect.php:396
1599
  msgid "Updates, announcements, marketing, no spam"
1600
  msgstr ""
1601
 
1602
+ #: templates/connect.php:386
1603
  msgid "Current %s Events"
1604
  msgstr ""
1605
 
1606
+ #: templates/connect.php:387
1607
  msgid "Activation, deactivation and uninstall"
1608
  msgstr ""
1609
 
1610
+ #: templates/connect.php:395
1611
  msgid "Newsletter"
1612
  msgstr ""
1613
 
1614
+ #: templates/connect.php:403
1615
+ msgid "Plugins & Themes"
1616
+ msgstr ""
1617
+
1618
+ #: templates/connect.php:404
1619
+ msgid "Title, slug, version, and is active"
1620
+ msgstr ""
1621
+
1622
+ #: templates/connect.php:421, templates/forms/license-activation.php:41
1623
  msgid "The %1$s will be periodically sending data to %2$s to check for security and feature updates, and verify the validity of your license."
1624
  msgstr ""
1625
 
1626
+ #: templates/connect.php:426
1627
  msgid "What permissions are being granted?"
1628
  msgstr ""
1629
 
1630
+ #: templates/connect.php:452
1631
  msgid "Don't have a license key?"
1632
  msgstr ""
1633
 
1634
+ #: templates/connect.php:455
1635
  msgid "Have a license key?"
1636
  msgstr ""
1637
 
1638
+ #: templates/connect.php:463
1639
  msgid "Privacy Policy"
1640
  msgstr ""
1641
 
1642
+ #: templates/connect.php:465
1643
  msgid "License Agreement"
1644
  msgstr ""
1645
 
1646
+ #: templates/connect.php:465
1647
  msgid "Terms of Service"
1648
  msgstr ""
1649
 
1650
+ #: templates/connect.php:854
1651
  msgctxt "as in the process of sending an email"
1652
  msgid "Sending email"
1653
  msgstr ""
1654
 
1655
+ #: templates/connect.php:855
1656
  msgctxt "as activating plugin"
1657
  msgid "Activating"
1658
  msgstr ""
1680
  msgid "Debugging"
1681
  msgstr ""
1682
 
1683
+ #: templates/debug.php:52, templates/debug.php:248, templates/debug.php:374, templates/debug.php:510
1684
  msgid "Actions"
1685
  msgstr ""
1686
 
1687
+ #: templates/debug.php:62
1688
  msgid "Are you sure you want to delete all Freemius data?"
1689
  msgstr ""
1690
 
1691
+ #: templates/debug.php:62
1692
  msgid "Delete All Accounts"
1693
  msgstr ""
1694
 
1695
+ #: templates/debug.php:69
1696
  msgid "Clear API Cache"
1697
  msgstr ""
1698
 
1699
+ #: templates/debug.php:77
1700
  msgid "Clear Updates Transients"
1701
  msgstr ""
1702
 
1703
+ #: templates/debug.php:84
1704
  msgid "Sync Data From Server"
1705
  msgstr ""
1706
 
1707
+ #: templates/debug.php:93
1708
  msgid "Migrate Options to Network"
1709
  msgstr ""
1710
 
1711
+ #: templates/debug.php:98
1712
  msgid "Load DB Option"
1713
  msgstr ""
1714
 
1715
+ #: templates/debug.php:101
1716
  msgid "Set DB Option"
1717
  msgstr ""
1718
 
1719
+ #: templates/debug.php:180
1720
  msgid "Key"
1721
  msgstr ""
1722
 
1723
+ #: templates/debug.php:181
1724
  msgid "Value"
1725
  msgstr ""
1726
 
1727
+ #: templates/debug.php:197
1728
  msgctxt "as software development kit versions"
1729
  msgid "SDK Versions"
1730
  msgstr ""
1731
 
1732
+ #: templates/debug.php:202
1733
  msgid "SDK Path"
1734
  msgstr ""
1735
 
1736
+ #: templates/debug.php:203, templates/debug.php:242
1737
  msgid "Module Path"
1738
  msgstr ""
1739
 
1740
+ #: templates/debug.php:204
1741
  msgid "Is Active"
1742
  msgstr ""
1743
 
1744
+ #: templates/debug.php:232, templates/debug/plugins-themes-sync.php:35
1745
  msgid "Plugins"
1746
  msgstr ""
1747
 
1748
+ #: templates/debug.php:232, templates/debug/plugins-themes-sync.php:56
1749
  msgid "Themes"
1750
  msgstr ""
1751
 
1752
+ #: templates/debug.php:237, templates/debug.php:368, templates/debug.php:454, templates/debug/scheduled-crons.php:80
1753
  msgid "Slug"
1754
  msgstr ""
1755
 
1756
+ #: templates/debug.php:239, templates/debug.php:453
1757
  msgid "Title"
1758
  msgstr ""
1759
 
1760
+ #: templates/debug.php:240
1761
  msgctxt "as application program interface"
1762
  msgid "API"
1763
  msgstr ""
1764
 
1765
+ #: templates/debug.php:241
1766
  msgid "Freemius State"
1767
  msgstr ""
1768
 
1769
+ #: templates/debug.php:245
1770
  msgid "Network Blog"
1771
  msgstr ""
1772
 
1773
+ #: templates/debug.php:246
1774
  msgid "Network User"
1775
  msgstr ""
1776
 
1777
+ #: templates/debug.php:283
1778
  msgctxt "as connection was successful"
1779
  msgid "Connected"
1780
  msgstr ""
1781
 
1782
+ #: templates/debug.php:284
1783
  msgctxt "as connection blocked"
1784
  msgid "Blocked"
1785
  msgstr ""
1786
 
1787
+ #: templates/debug.php:320
1788
  msgid "Simulate Trial Promotion"
1789
  msgstr ""
1790
 
1791
+ #: templates/debug.php:332
1792
  msgid "Simulate Network Upgrade"
1793
  msgstr ""
1794
 
1795
+ #: templates/debug.php:357
1796
  msgid "%s Installs"
1797
  msgstr ""
1798
 
1799
+ #: templates/debug.php:359
1800
  msgctxt "like websites"
1801
  msgid "Sites"
1802
  msgstr ""
1803
 
1804
+ #: templates/debug.php:365, templates/account/partials/site.php:156
1805
  msgid "Blog ID"
1806
  msgstr ""
1807
 
1808
+ #: templates/debug.php:370
1809
+ msgid "License ID"
1810
+ msgstr ""
1811
+
1812
+ #: templates/debug.php:434, templates/debug.php:533, templates/account/partials/addon.php:435
1813
  msgctxt "verb"
1814
  msgid "Delete"
1815
  msgstr ""
1816
 
1817
+ #: templates/debug.php:448
1818
  msgid "Add Ons of module %s"
1819
  msgstr ""
1820
 
1821
+ #: templates/debug.php:500
1822
  msgid "Users"
1823
  msgstr ""
1824
 
1825
+ #: templates/debug.php:507
1826
  msgid "Verified"
1827
  msgstr ""
1828
 
1829
+ #: templates/debug.php:549
1830
  msgid "%s Licenses"
1831
  msgstr ""
1832
 
1833
+ #: templates/debug.php:554
1834
  msgid "Plugin ID"
1835
  msgstr ""
1836
 
1837
+ #: templates/debug.php:556
1838
  msgid "Plan ID"
1839
  msgstr ""
1840
 
1841
+ #: templates/debug.php:557
1842
  msgid "Quota"
1843
  msgstr ""
1844
 
1845
+ #: templates/debug.php:558
1846
  msgid "Activated"
1847
  msgstr ""
1848
 
1849
+ #: templates/debug.php:559
1850
  msgid "Blocking"
1851
  msgstr ""
1852
 
1853
+ #: templates/debug.php:560, templates/debug.php:631, templates/debug/logger.php:22
1854
+ msgid "Type"
1855
+ msgstr ""
1856
+
1857
+ #: templates/debug.php:562
1858
  msgctxt "as expiration date"
1859
  msgid "Expiration"
1860
  msgstr ""
1861
 
1862
+ #: templates/debug.php:590
1863
  msgid "Debug Log"
1864
  msgstr ""
1865
 
1866
+ #: templates/debug.php:594
1867
  msgid "All Types"
1868
  msgstr ""
1869
 
1870
+ #: templates/debug.php:601
1871
  msgid "All Requests"
1872
  msgstr ""
1873
 
1874
+ #: templates/debug.php:606, templates/debug.php:635, templates/debug/logger.php:25
1875
  msgid "File"
1876
  msgstr ""
1877
 
1878
+ #: templates/debug.php:607, templates/debug.php:633, templates/debug/logger.php:23
1879
  msgid "Function"
1880
  msgstr ""
1881
 
1882
+ #: templates/debug.php:608
1883
  msgid "Process ID"
1884
  msgstr ""
1885
 
1886
+ #: templates/debug.php:609
1887
  msgid "Logger"
1888
  msgstr ""
1889
 
1890
+ #: templates/debug.php:610, templates/debug.php:634, templates/debug/logger.php:24
1891
  msgid "Message"
1892
  msgstr ""
1893
 
1894
+ #: templates/debug.php:612
1895
  msgid "Filter"
1896
  msgstr ""
1897
 
1898
+ #: templates/debug.php:620
1899
  msgid "Download"
1900
  msgstr ""
1901
 
1902
+ #: templates/debug.php:636, templates/debug/logger.php:26
 
 
 
 
1903
  msgid "Timestamp"
1904
  msgstr ""
1905
 
2085
  msgid "Apply to become an affiliate"
2086
  msgstr ""
2087
 
2088
+ #: templates/forms/affiliation.php:107
2089
  msgid "Your affiliate application for %s has been accepted! Log in to your affiliate area at: %s."
2090
  msgstr ""
2091
 
2092
+ #: templates/forms/affiliation.php:122
2093
  msgid "Thank you for applying for our affiliate program, we'll review your details during the next 14 days and will get back to you with further information."
2094
  msgstr ""
2095
 
2096
+ #: templates/forms/affiliation.php:125
2097
  msgid "Your affiliation account was temporarily suspended."
2098
  msgstr ""
2099
 
2100
+ #: templates/forms/affiliation.php:128
2101
  msgid "Thank you for applying for our affiliate program, unfortunately, we've decided at this point to reject your application. Please try again in 30 days."
2102
  msgstr ""
2103
 
2104
+ #: templates/forms/affiliation.php:131
2105
  msgid "Due to violation of our affiliation terms, we decided to temporarily block your affiliation account. If you have any questions, please contact support."
2106
  msgstr ""
2107
 
2108
+ #: templates/forms/affiliation.php:144
2109
  msgid "Like the %s? Become our ambassador and earn cash ;-)"
2110
  msgstr ""
2111
 
2112
+ #: templates/forms/affiliation.php:145
2113
  msgid "Refer new customers to our %s and earn %s commission on each successful sale you refer!"
2114
  msgstr ""
2115
 
2116
+ #: templates/forms/affiliation.php:148
2117
  msgid "Program Summary"
2118
  msgstr ""
2119
 
2120
+ #: templates/forms/affiliation.php:150
2121
  msgid "%s commission when a customer purchases a new license."
2122
  msgstr ""
2123
 
2124
+ #: templates/forms/affiliation.php:152
2125
  msgid "Get commission for automated subscription renewals."
2126
  msgstr ""
2127
 
2128
+ #: templates/forms/affiliation.php:155
2129
  msgid "%s tracking cookie after the first visit to maximize earnings potential."
2130
  msgstr ""
2131
 
2132
+ #: templates/forms/affiliation.php:158
2133
  msgid "Unlimited commissions."
2134
  msgstr ""
2135
 
2136
+ #: templates/forms/affiliation.php:160
2137
  msgid "%s minimum payout amount."
2138
  msgstr ""
2139
 
2140
+ #: templates/forms/affiliation.php:161
2141
  msgid "Payouts are in USD and processed monthly via PayPal."
2142
  msgstr ""
2143
 
2144
+ #: templates/forms/affiliation.php:162
2145
  msgid "As we reserve 30 days for potential refunds, we only pay commissions that are older than 30 days."
2146
  msgstr ""
2147
 
2148
+ #: templates/forms/affiliation.php:165
2149
  msgid "Affiliate"
2150
  msgstr ""
2151
 
2152
+ #: templates/forms/affiliation.php:168, templates/forms/resend-key.php:23
2153
  msgid "Email address"
2154
  msgstr ""
2155
 
2156
+ #: templates/forms/affiliation.php:172
2157
  msgid "Full name"
2158
  msgstr ""
2159
 
2160
+ #: templates/forms/affiliation.php:176
2161
  msgid "PayPal account email address"
2162
  msgstr ""
2163
 
2164
+ #: templates/forms/affiliation.php:180
2165
  msgid "Where are you going to promote the %s?"
2166
  msgstr ""
2167
 
2168
+ #: templates/forms/affiliation.php:182
2169
  msgid "Enter the domain of your website or other websites from where you plan to promote the %s."
2170
  msgstr ""
2171
 
2172
+ #: templates/forms/affiliation.php:184
2173
  msgid "Add another domain"
2174
  msgstr ""
2175
 
2176
+ #: templates/forms/affiliation.php:188
2177
  msgid "Extra Domains"
2178
  msgstr ""
2179
 
2180
+ #: templates/forms/affiliation.php:189
2181
  msgid "Extra domains where you will be marketing the product from."
2182
  msgstr ""
2183
 
2184
+ #: templates/forms/affiliation.php:199
2185
  msgid "Promotion methods"
2186
  msgstr ""
2187
 
2188
+ #: templates/forms/affiliation.php:202
2189
  msgid "Social media (Facebook, Twitter, etc.)"
2190
  msgstr ""
2191
 
2192
+ #: templates/forms/affiliation.php:206
2193
  msgid "Mobile apps"
2194
  msgstr ""
2195
 
2196
+ #: templates/forms/affiliation.php:210
2197
  msgid "Website, email, and social media statistics (optional)"
2198
  msgstr ""
2199
 
2200
+ #: templates/forms/affiliation.php:213
2201
  msgid "Please feel free to provide any relevant website or social media statistics, e.g. monthly unique site visits, number of email subscribers, followers, etc. (we will keep this information confidential)."
2202
  msgstr ""
2203
 
2204
+ #: templates/forms/affiliation.php:217
2205
  msgid "How will you promote us?"
2206
  msgstr ""
2207
 
2208
+ #: templates/forms/affiliation.php:220
2209
  msgid "Please provide details on how you intend to promote %s (please be as specific as possible)."
2210
  msgstr ""
2211
 
2212
+ #: templates/forms/affiliation.php:232, templates/forms/resend-key.php:22
2213
  msgid "Cancel"
2214
  msgstr ""
2215
 
2216
+ #: templates/forms/affiliation.php:234
2217
  msgid "Become an affiliate"
2218
  msgstr ""
2219
 
2220
+ #: templates/forms/data-debug-mode.php:25
2221
+ msgid "Please enter the license key to enable the debug mode:"
2222
+ msgstr ""
2223
+
2224
+ #: templates/forms/data-debug-mode.php:27
2225
+ msgid "To enter the debug mode, please enter the secret key of the license owner (UserID = %d), which you can find in your \"My Profile\" section of your User Dashboard:"
2226
+ msgstr ""
2227
+
2228
+ #: templates/forms/data-debug-mode.php:32
2229
+ msgid "Submit"
2230
+ msgstr ""
2231
+
2232
+ #: templates/forms/data-debug-mode.php:36
2233
+ msgid "User key"
2234
+ msgstr ""
2235
+
2236
+ #: templates/forms/license-activation.php:23
2237
  msgid "Please enter the license key that you received in the email right after the purchase:"
2238
  msgstr ""
2239
 
2240
+ #: templates/forms/license-activation.php:28
2241
  msgid "Update License"
2242
  msgstr ""
2243
 
2244
+ #: templates/forms/license-activation.php:181
2245
+ msgid "Associate with the license owner's account."
2246
+ msgstr ""
2247
+
2248
  #: templates/forms/optout.php:30
2249
  msgctxt "verb"
2250
  msgid "Opt Out"
2255
  msgid "Opt In"
2256
  msgstr ""
2257
 
2258
+ #: templates/forms/optout.php:34
2259
+ msgid "Connectivity to the licensing engine was successfully re-established. Automatic security & feature updates are now available through the WP Admin Dashboard."
2260
+ msgstr ""
2261
+
2262
+ #: templates/forms/optout.php:36
2263
+ msgid "Warning: Opting out will block automatic updates"
2264
+ msgstr ""
2265
+
2266
+ #: templates/forms/optout.php:37
2267
+ msgid "Ongoing connectivity with the licensing engine is essential for receiving automatic security & feature updates of the paid product. To receive these updates, data like your license key, %1$s version, and WordPress version, is periodically sent to the server to check for updates. By opting out, you understand that your site won't receive automatic updates for %2$s from within the WP Admin Dashboard. This can put your site at risk, and we highly recommend to keep this connection active. If you do choose to opt-out, you'll need to check for %1$s updates and install them manually."
2268
+ msgstr ""
2269
+
2270
+ #: templates/forms/optout.php:39
2271
+ msgid "I'd like to keep automatic updates"
2272
+ msgstr ""
2273
+
2274
+ #: templates/forms/optout.php:44
2275
  msgid "Usage tracking is done in the name of making %s better. Making a better user experience, prioritizing new features, and more good things. We'd really appreciate if you'll reconsider letting us continue with the tracking."
2276
  msgstr ""
2277
 
2278
+ #: templates/forms/optout.php:45
2279
+ msgid "On second thought - I want to continue helping"
2280
+ msgstr ""
2281
+
2282
+ #: templates/forms/optout.php:49
2283
  msgid "By clicking \"Opt Out\", we will no longer be sending any data from %s to %s."
2284
  msgstr ""
2285
 
2286
+ #: templates/forms/optout.php:74
2287
+ msgid "Plugins & themes tracking"
2288
+ msgstr ""
2289
+
2290
+ #: templates/forms/optout.php:261
2291
+ msgid "Saved"
2292
+ msgstr ""
2293
+
2294
  #: templates/forms/premium-versions-upgrade-handler.php:40
2295
  msgid "There is a new version of %s available."
2296
  msgstr ""
2336
  msgid "Don't cancel %s - I'm still interested in getting security & feature updates, as well as be able to contact support."
2337
  msgstr ""
2338
 
 
 
 
 
 
2339
  #: templates/forms/subscription-cancellation.php:103
2340
  msgid "Once your license expires you will no longer be able to use the %s, unless you activate it again with a valid premium license."
2341
  msgstr ""
2360
  msgid "For compliance with the WordPress.org guidelines, before we start the trial we ask that you opt in with your user and non-sensitive site information, allowing the %s to periodically send data to %s to check for version updates and to validate your trial."
2361
  msgstr ""
2362
 
2363
+ #: templates/forms/user-change.php:26
2364
+ msgid "By changing the user, you agree to transfer the account ownership to:"
2365
+ msgstr ""
2366
+
2367
+ #: templates/forms/user-change.php:28
2368
+ msgid "I Agree - Change User"
2369
+ msgstr ""
2370
+
2371
+ #: templates/forms/user-change.php:30
2372
+ msgid "Enter email address"
2373
+ msgstr ""
2374
+
2375
+ #: templates/forms/user-change.php:81
2376
+ msgctxt "close window"
2377
+ msgid "Dismiss"
2378
+ msgstr ""
2379
+
2380
  #: templates/js/style-premium-theme.php:39
2381
  msgid "Premium"
2382
  msgstr ""
2434
  msgid "Last license"
2435
  msgstr ""
2436
 
2437
+ #. translators: %1$s: Either 'Downgrading your plan' or 'Cancelling the subscription'
2438
+ #: templates/account/partials/addon.php:29
2439
+ msgid "%1$s will immediately stop all future recurring payments and your %s plan license will expire in %s."
2440
+ msgstr ""
2441
+
2442
+ #: templates/account/partials/addon.php:185
2443
  msgid "Cancelled"
2444
  msgstr ""
2445
 
2446
+ #: templates/account/partials/addon.php:195
2447
  msgid "No expiration"
2448
  msgstr ""
2449
 
2450
+ #: templates/account/partials/site.php:189
2451
  msgid "Owner Name"
2452
  msgstr ""
2453
 
2454
+ #: templates/account/partials/site.php:201
2455
  msgid "Owner Email"
2456
  msgstr ""
2457
 
2458
+ #: templates/account/partials/site.php:213
2459
  msgid "Owner ID"
2460
  msgstr ""
2461
 
2462
+ #: templates/account/partials/site.php:286
2463
  msgid "Subscription"
2464
  msgstr ""
2465
 
2499
  msgid "switching"
2500
  msgstr ""
2501
 
2502
+ #: templates/forms/deactivation/form.php:369
2503
  msgid "Submit & %s"
2504
  msgstr ""
2505
 
2506
+ #: templates/forms/deactivation/form.php:390
2507
  msgid "Kindly tell us the reason so we can improve."
2508
  msgstr ""
2509
 
2510
+ #: templates/forms/deactivation/form.php:515
2511
  msgid "Yes - %s"
2512
  msgstr ""
2513
 
2514
+ #: templates/forms/deactivation/form.php:522
2515
  msgid "Skip & %s"
2516
  msgstr ""
2517
 
freemius/package.json CHANGED
@@ -4,7 +4,7 @@
4
  "author": "Freemius, Inc.",
5
  "license": "GPL-3.0",
6
  "homepage": "https://freemius.com",
7
- "version": "2.1.2",
8
  "main": "gulpfile.js",
9
  "dependencies": {},
10
  "scripts": {
4
  "author": "Freemius, Inc.",
5
  "license": "GPL-3.0",
6
  "homepage": "https://freemius.com",
7
+ "version": "2.4.0",
8
  "main": "gulpfile.js",
9
  "dependencies": {},
10
  "scripts": {
freemius/start.php CHANGED
@@ -15,7 +15,7 @@
15
  *
16
  * @var string
17
  */
18
- $this_sdk_version = '2.3.0';
19
 
20
  #region SDK Selection Logic --------------------------------------------------------------------
21
 
@@ -109,6 +109,14 @@
109
  foreach ( $fs_active_plugins->plugins as $sdk_path => $data ) {
110
  if ( ! file_exists( ( isset( $data->type ) && 'theme' === $data->type ? $themes_directory : WP_PLUGIN_DIR ) . '/' . $sdk_path ) ) {
111
  unset( $fs_active_plugins->plugins[ $sdk_path ] );
 
 
 
 
 
 
 
 
112
  $has_changes = true;
113
  }
114
  }
15
  *
16
  * @var string
17
  */
18
+ $this_sdk_version = '2.4.1';
19
 
20
  #region SDK Selection Logic --------------------------------------------------------------------
21
 
109
  foreach ( $fs_active_plugins->plugins as $sdk_path => $data ) {
110
  if ( ! file_exists( ( isset( $data->type ) && 'theme' === $data->type ? $themes_directory : WP_PLUGIN_DIR ) . '/' . $sdk_path ) ) {
111
  unset( $fs_active_plugins->plugins[ $sdk_path ] );
112
+
113
+ if (
114
+ ! empty( $fs_active_plugins->newest ) &&
115
+ $sdk_path === $fs_active_plugins->newest->sdk_path
116
+ ) {
117
+ unset( $fs_active_plugins->newest );
118
+ }
119
+
120
  $has_changes = true;
121
  }
122
  }
freemius/templates/account.php CHANGED
@@ -44,20 +44,34 @@
44
  $site = $fs->get_site();
45
  $name = $user->get_name();
46
  $license = $fs->_get_license();
 
 
47
  $subscription = ( is_object( $license ) ?
48
  $fs->_get_subscription( $license->id ) :
49
  null );
50
  $plan = $fs->get_plan();
51
  $is_active_subscription = ( is_object( $subscription ) && $subscription->is_active() );
52
  $is_paid_trial = $fs->is_paid_trial();
53
- $has_paid_plan = $fs->has_paid_plan();
54
- $show_upgrade = ( $has_paid_plan && ! $is_paying && ! $is_paid_trial );
55
  $trial_plan = $fs->get_trial_plan();
56
 
57
  if ( $has_paid_plan ) {
58
  $fs->_add_license_activation_dialog_box();
59
  }
60
 
 
 
 
 
 
 
 
 
 
 
 
 
61
  if ( fs_request_get_bool( 'auto_install' ) ) {
62
  $fs->_add_auto_installation_dialog_box();
63
  }
@@ -72,7 +86,7 @@
72
 
73
  $payments = $fs->_fetch_payments();
74
 
75
- $show_billing = ( is_array( $payments ) && 0 < count( $payments ) );
76
 
77
 
78
  $has_tabs = $fs->_add_tabs_before_content();
@@ -149,19 +163,28 @@
149
  }
150
  }
151
 
152
- $is_child_license = ( is_object( $license ) && FS_Plugin_License::is_valid_id( $license->parent_license_id ) );
153
- $bundle_subscription = null;
 
 
 
 
 
 
 
 
 
154
 
155
  if (
156
  $show_plan_row &&
157
  is_object( $license ) &&
158
- FS_Plugin_License::is_valid_id( $license->parent_license_id )
159
  ) {
160
- $bundle_subscription = $fs->_get_subscription( $license->parent_license_id );
 
 
161
  }
162
 
163
- $is_active_bundle_subscription = ( is_object( $bundle_subscription ) && $bundle_subscription->is_active() );
164
-
165
  $fs_blog_id = ( is_multisite() && ! is_network_admin() ) ?
166
  get_current_blog_id() :
167
  0;
@@ -169,6 +192,46 @@
169
  $active_plugins_directories_map = Freemius::get_active_plugins_directories_map( $fs_blog_id );
170
 
171
  $is_premium = $fs->is_premium();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
172
  ?>
173
  <div class="wrap fs-section">
174
  <?php if ( ! $has_tabs && ! $fs->apply_filters( 'hide_account_tabs', false ) ) : ?>
@@ -196,89 +259,102 @@
196
  <h3><span class="dashicons dashicons-businessman"></span> <?php fs_esc_html_echo_inline( 'Account Details', 'account-details', $slug ) ?></h3>
197
  <div class="fs-header-actions">
198
  <ul>
 
 
 
 
 
 
 
 
 
 
 
 
199
  <?php if ( $show_billing ) : ?>
200
  <li><a href="#fs_billing"><i class="dashicons dashicons-portfolio"></i> <?php fs_esc_html_echo_inline( 'Billing & Invoices', 'billing-invoices', $slug ) ?></li>
201
  <li>&nbsp;&bull;&nbsp;</li>
202
  <?php endif ?>
203
- <?php if ( ! $is_paying ) : ?>
204
- <li>
205
- <form action="<?php echo $fs->_get_admin_page_url( 'account' ) ?>" method="POST">
206
- <input type="hidden" name="fs_action" value="delete_account">
207
- <?php wp_nonce_field( 'delete_account' ) ?>
208
- <a class="fs-delete-account" href="#" onclick="if (confirm('<?php
209
- if ( $is_active_subscription ) {
210
- echo esc_attr( sprintf( fs_text_inline( 'Deleting the account will automatically deactivate your %s plan license so you can use it on other sites. If you want to terminate the recurring payments as well, click the "Cancel" button, and first "Downgrade" your account. Are you sure you would like to continue with the deletion?', 'delete-account-x-confirm', $slug ), $plan->title ) );
211
- } else {
212
- echo esc_attr( sprintf( fs_text_inline( 'Deletion is not temporary. Only delete if you no longer want to use this %s anymore. Are you sure you would like to continue with the deletion?', 'delete-account-confirm', $slug ), $fs->get_module_label( true ) ) );
213
- }
214
- ?>')) this.parentNode.submit(); return false;"><i
215
- class="dashicons dashicons-no"></i> <?php fs_esc_html_echo_inline( 'Delete Account', 'delete-account', $slug ) ?></a>
216
- </form>
217
- </li>
218
- <li>&nbsp;&bull;&nbsp;</li>
219
- <?php endif ?>
220
- <?php if ( $is_paying ) : ?>
221
- <?php if ( ! fs_is_network_admin() ) : ?>
222
- <li>
223
- <form action="<?php echo $fs->_get_admin_page_url( 'account' ) ?>" method="POST">
224
- <input type="hidden" name="fs_action" value="deactivate_license">
225
- <?php wp_nonce_field( 'deactivate_license' ) ?>
226
- <a href="#" class="fs-deactivate-license"><i
227
- class="dashicons dashicons-admin-network"></i> <?php fs_echo_inline( 'Deactivate License', 'deactivate-license', $slug ) ?>
228
- </a>
229
- </form>
230
- </li>
231
- <li>&nbsp;&bull;&nbsp;</li>
232
  <?php endif ?>
233
- <?php if ( ! $license->is_lifetime() &&
234
- $is_active_subscription
235
- ) : ?>
236
- <li>
237
- <form action="<?php echo $fs->_get_admin_page_url( 'account' ) ?>" method="POST">
238
- <input type="hidden" name="fs_action" value="downgrade_account">
239
- <?php wp_nonce_field( 'downgrade_account' ) ?>
240
- <a href="#"
241
- onclick="if ( confirm('<?php echo esc_attr( sprintf(
242
- $downgrade_x_confirm_text,
243
- ( $fs->is_only_premium() ? $cancelling_subscription_text : $downgrading_plan_text ),
244
- $plan->title,
245
- human_time_diff( time(), strtotime( $license->expiration ) )
246
- ) ) ?> <?php if ( ! $license->is_block_features ) {
247
- echo esc_attr( sprintf( $after_downgrade_non_blocking_text, $plan->title, $fs->get_module_label( true ) ) );
248
- } else {
249
- echo esc_attr( sprintf( $after_downgrade_blocking_text, $plan->title ) );
250
- }?> <?php echo esc_attr( $prices_increase_text ) ?> <?php fs_esc_attr_echo_inline( 'Are you sure you want to proceed?', 'proceed-confirmation', $slug ) ?>') ) this.parentNode.submit(); return false;"><i class="dashicons dashicons-download"></i> <?php echo esc_html( $fs->is_only_premium() ? fs_text_inline( 'Cancel Subscription', 'cancel-subscription', $slug ) : $downgrade_text ) ?></a>
251
- </form>
252
- </li>
253
- <li>&nbsp;&bull;&nbsp;</li>
254
- <?php endif ?>
255
- <?php if ( ! $fs->is_single_plan() ) : ?>
256
- <li>
257
- <a href="<?php echo $fs->get_upgrade_url() ?>"><i
258
- class="dashicons dashicons-grid-view"></i> <?php echo esc_html( $change_plan_text ) ?></a>
259
- </li>
260
- <li>&nbsp;&bull;&nbsp;</li>
261
- <?php endif ?>
262
- <?php elseif ( $is_paid_trial ) : ?>
263
- <li>
264
- <form action="<?php echo $fs->_get_admin_page_url( 'account' ) ?>" method="POST">
265
- <input type="hidden" name="fs_action" value="cancel_trial">
266
- <?php wp_nonce_field( 'cancel_trial' ) ?>
267
- <a href="#" class="fs-cancel-trial"><i
268
- class="dashicons dashicons-download"></i> <?php echo esc_html( $cancel_trial_text ) ?></a>
269
- </form>
270
- </li>
271
- <li>&nbsp;&bull;&nbsp;</li>
272
- <?php endif ?>
273
- <li>
274
- <form action="<?php echo $fs->_get_admin_page_url( 'account' ) ?>" method="POST">
275
- <input type="hidden" name="fs_action" value="<?php echo $fs->get_unique_affix() ?>_sync_license">
276
- <?php wp_nonce_field( $fs->get_unique_affix() . '_sync_license' ) ?>
277
- <a href="#" onclick="this.parentNode.submit(); return false;"><i
278
- class="dashicons dashicons-image-rotate"></i> <?php fs_esc_html_echo_x_inline( 'Sync', 'as synchronize', 'sync', $slug ) ?></a>
279
- </form>
280
- </li>
281
-
 
 
 
 
 
 
 
 
 
 
 
 
 
282
  </ul>
283
  </div>
284
  <div class="inside">
@@ -287,25 +363,28 @@
287
  $hide_license_key = ( ! $show_license_row || $fs->apply_filters( 'hide_license_key', false ) );
288
 
289
  $profile = array();
290
- $profile[] = array(
291
- 'id' => 'user_name',
292
- 'title' => fs_text_inline( 'Name', 'name', $slug ),
293
- 'value' => $name
294
- );
295
- // if (isset($user->email) && false !== strpos($user->email, '@'))
296
- $profile[] = array(
297
- 'id' => 'email',
298
- 'title' => fs_text_inline( 'Email', 'email', $slug ),
299
- 'value' => $user->email
300
- );
301
 
302
- if ( is_numeric( $user->id ) ) {
303
- $profile[] = array(
304
- 'id' => 'user_id',
305
- 'title' => fs_text_inline( 'User ID', 'user-id', $slug ),
306
- 'value' => $user->id
307
- );
308
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
309
 
310
  $profile[] = array(
311
  'id' => 'product',
@@ -354,7 +433,7 @@
354
  'value' => $fs->get_plugin_version()
355
  );
356
 
357
- if ( $is_premium ) {
358
  $profile[] = array(
359
  'id' => 'beta_program',
360
  'title' => '',
@@ -362,7 +441,7 @@
362
  );
363
  }
364
 
365
- if ( $has_paid_plan ) {
366
  if ( $fs->is_trial() ) {
367
  if ( $show_plan_row ) {
368
  $profile[] = array(
@@ -377,18 +456,18 @@
377
  if ( $show_plan_row ) {
378
  $profile[] = array(
379
  'id' => 'plan',
380
- 'title' => ( $is_child_license ? ucfirst( $fs->get_module_type() ) . ' ' : '' ) . $plan_text,
381
  'value' => strtoupper( is_string( $plan->name ) ?
382
  $plan->title :
383
  strtoupper( $free_text )
384
  )
385
  );
386
 
387
- if ( $is_child_license ) {
388
  $profile[] = array(
389
  'id' => 'bundle_plan',
390
  'title' => $bundle_plan_text,
391
- 'value' => strtoupper( $license->parent_plan_title )
392
  );
393
  }
394
  }
@@ -420,9 +499,11 @@
420
  </td>
421
  <td<?php if ( 'plan' === $p['id'] || 'bundle_plan' === $p['id'] ) { echo ' colspan="2"'; }?>>
422
  <?php if ( in_array( $p['id'], array( 'license_key', 'site_secret_key' ) ) ) : ?>
423
- <code><?php echo htmlspecialchars( substr( $p['value'], 0, 6 ) ) . str_pad( '', 23 * 6, '&bull;' ) . htmlspecialchars( substr( $p['value'], - 3 ) ) ?></code>
424
- <input type="text" value="<?php echo htmlspecialchars( $p['value'] ) ?>" style="display: none"
 
425
  readonly/>
 
426
  <?php elseif ( 'beta_program' === $p['id'] ) : ?>
427
  <label>
428
  <input type="checkbox" class="fs-toggle-beta-mode" <?php checked( true, $p['value'] ) ?>/><span><?php
@@ -452,6 +533,7 @@
452
  <?php elseif ( $fs->is_trial() ) : ?>
453
  <label class="fs-tag fs-warn"><?php echo esc_html( sprintf( $expires_in_text, human_time_diff( time(), strtotime( $site->trial_ends ) ) ) ) ?></label>
454
  <?php endif ?>
 
455
  <div class="button-group">
456
  <?php $available_license = $fs->is_free_plan() && ! fs_is_network_admin() ? $fs->_get_available_premium_license( $site->is_localhost() ) : false ?>
457
  <?php if ( is_object( $available_license ) ) : ?>
@@ -489,9 +571,10 @@
489
  </form>
490
  <?php endif ?>
491
  </div>
 
492
  <?php elseif ( 'bundle_plan' === $p['id'] ) : ?>
493
  <?php if ( is_object( $bundle_subscription ) ) : ?>
494
- <?php if ( $is_active_bundle_subscription && ! $license->is_first_payment_pending() ) : ?>
495
  <label class="fs-tag fs-success"><?php echo esc_html( sprintf( $renews_in_text, human_time_diff( time(), strtotime( $bundle_subscription->next_payment ) ) ) ) ?></label>
496
  <?php endif ?>
497
  <?php endif ?>
@@ -521,11 +604,33 @@
521
  <div class="button-group">
522
  <?php if ( $is_paying || $fs->is_trial() ) : ?>
523
  <?php if ( ! $fs->is_allowed_to_install() ) : ?>
524
- <a target="_blank" class="button button-primary"
525
- href="<?php echo $fs->_get_latest_download_local_url() ?>"><?php echo sprintf(
526
- /* translators: %s: plan name (e.g. Download "Professional" Version) */
527
- fs_text_inline( 'Download %s Version', 'download-x-version', $slug ),
528
- ( $fs->is_trial() ? $trial_plan->title : $plan->title ) ) . ( is_object( $update ) ? ' [' . $update->version . ']' : '' ) ?></a>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
529
  <?php elseif ( is_object( $update ) ) : ?>
530
  <?php
531
  $module_type = $fs->get_module_type();
@@ -538,10 +643,12 @@
538
  <?php endif ?>
539
  <?php
540
  elseif ( in_array( $p['id'], array( 'license_key', 'site_secret_key' ) ) ) : ?>
541
- <button class="button button-small fs-toggle-visibility"><?php fs_esc_html_echo_x_inline( 'Show', 'verb', 'show', $slug ) ?></button>
542
- <?php if ('license_key' === $p['id']) : ?>
543
- <button class="button button-small activate-license-trigger <?php echo $fs->get_unique_affix() ?>"><?php fs_esc_html_echo_inline( 'Change License', 'change-license', $slug ) ?></button>
544
- <?php endif ?>
 
 
545
  <?php
546
  elseif (/*in_array($p['id'], array('site_secret_key', 'site_id', 'site_public_key')) ||*/
547
  ( is_string( $user->secret_key ) && in_array( $p['id'], array(
@@ -562,6 +669,9 @@
562
  <input type="submit" class="button button-small"
563
  value="<?php echo fs_esc_attr_x_inline( 'Edit', 'verb', 'edit', $slug ) ?>">
564
  </form>
 
 
 
565
  <?php endif ?>
566
  </td>
567
  <?php endif ?>
@@ -587,18 +697,19 @@
587
  <div id="fs_sites" class="postbox">
588
  <h3><span class="dashicons dashicons-networking"></span> <?php fs_esc_html_echo_inline( 'Sites', 'sites', $slug ) ?></h3>
589
  <div class="fs-header-actions">
590
- <?php $has_license = is_object( $license ) ?>
591
- <?php if ( $has_license || ( $show_upgrade && $is_premium ) ) : ?>
592
- <?php
593
- $activate_license_button_text = $has_license ?
594
- fs_esc_html_inline( 'Change License', 'change-license', $slug ) :
595
- fs_esc_html_inline( 'Activate License', 'activate-license', $slug );
596
- ?>
597
- <a class="button<?php echo ( ! $has_license ? ' button-primary' : '' ) ?> activate-license-trigger <?php echo $fs->get_unique_affix() ?>" href="#"><?php echo $activate_license_button_text ?></a>
 
 
598
  <?php endif ?>
599
  <input class="fs-search" type="text" placeholder="<?php fs_esc_attr_echo_inline( 'Search by address', 'search-by-address', $slug ) ?>..."><span class="dashicons dashicons-search"></span>
600
  </div>
601
-
602
  <div class="inside">
603
  <div id="" class="fs-scrollable-table">
604
  <div class="fs-table-head">
@@ -629,18 +740,6 @@
629
  </div>
630
  </div>
631
  <?php endif ?>
632
-
633
- <?php
634
- $account_addons = $fs->get_updated_account_addons();
635
-
636
- $installed_addons = $fs->get_installed_addons();
637
- $installed_addons_ids = array();
638
- foreach ( $installed_addons as $fs_addon ) {
639
- $installed_addons_ids[] = $fs_addon->get_id();
640
- }
641
-
642
- $addons_to_show = array_unique( array_merge( $installed_addons_ids, $account_addons ) );
643
- ?>
644
  <?php if ( 0 < count( $addons_to_show ) ) : ?>
645
  <!-- Add-Ons -->
646
  <div class="postbox">
@@ -666,9 +765,48 @@
666
 
667
  $installed_addons_ids_map = array_flip( $installed_addons_ids );
668
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
669
  foreach ( $addons_to_show as $addon_id ) {
670
  $is_addon_installed = isset( $installed_addons_ids_map[ $addon_id ] );
671
 
 
 
 
 
 
 
 
 
672
  $addon_view_params = array(
673
  'parent_fs' => $fs,
674
  'addon_id' => $addon_id,
@@ -676,7 +814,10 @@
676
  'fs_blog_id' => $fs_blog_id,
677
  'active_plugins_directories_map' => &$active_plugins_directories_map,
678
  'is_addon_installed' => $is_addon_installed,
679
- 'addon_info' => $fs->_get_addon_info( $addon_id, $is_addon_installed )
 
 
 
680
  );
681
 
682
  fs_require_template(
@@ -915,6 +1056,29 @@
915
  });
916
  });
917
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
918
  })(jQuery);
919
  </script>
920
  <?php
44
  $site = $fs->get_site();
45
  $name = $user->get_name();
46
  $license = $fs->_get_license();
47
+ $is_data_debug_mode = $fs->is_data_debug_mode();
48
+ $is_whitelabeled = $fs->is_whitelabeled();
49
  $subscription = ( is_object( $license ) ?
50
  $fs->_get_subscription( $license->id ) :
51
  null );
52
  $plan = $fs->get_plan();
53
  $is_active_subscription = ( is_object( $subscription ) && $subscription->is_active() );
54
  $is_paid_trial = $fs->is_paid_trial();
55
+ $has_paid_plan = $fs->apply_filters( 'has_paid_plan_account', $fs->has_paid_plan() );
56
+ $show_upgrade = ( ! $is_whitelabeled && $has_paid_plan && ! $is_paying && ! $is_paid_trial );
57
  $trial_plan = $fs->get_trial_plan();
58
 
59
  if ( $has_paid_plan ) {
60
  $fs->_add_license_activation_dialog_box();
61
  }
62
 
63
+ $ids_of_installs_activated_with_foreign_licenses = $fs->should_handle_user_change() ?
64
+ $fs->get_installs_ids_with_foreign_licenses() :
65
+ array();
66
+
67
+ if ( ! empty( $ids_of_installs_activated_with_foreign_licenses ) ) {
68
+ $fs->_add_user_change_dialog_box( $ids_of_installs_activated_with_foreign_licenses );
69
+ }
70
+
71
+ if ( $fs->is_whitelabeled( true ) || $fs->is_data_debug_mode() ) {
72
+ $fs->_add_data_debug_mode_dialog_box();
73
+ }
74
+
75
  if ( fs_request_get_bool( 'auto_install' ) ) {
76
  $fs->_add_auto_installation_dialog_box();
77
  }
86
 
87
  $payments = $fs->_fetch_payments();
88
 
89
+ $show_billing = ( ! $is_whitelabeled && is_array( $payments ) && 0 < count( $payments ) );
90
 
91
 
92
  $has_tabs = $fs->_add_tabs_before_content();
163
  }
164
  }
165
 
166
+ $has_bundle_license = false;
167
+
168
+ if ( is_object( $license ) &&
169
+ FS_Plugin_License::is_valid_id( $license->parent_license_id )
170
+ ) {
171
+ // Context license has a parent license, therefore, the account has a bundle license.
172
+ $has_bundle_license = true;
173
+ }
174
+
175
+ $bundle_subscription = null;
176
+ $is_bundle_first_payment_pending = false;
177
 
178
  if (
179
  $show_plan_row &&
180
  is_object( $license ) &&
181
+ $has_bundle_license
182
  ) {
183
+ $bundle_plan_title = strtoupper( $license->parent_plan_title );
184
+ $bundle_subscription = $fs->_get_subscription( $license->parent_license_id );
185
+ $is_bundle_first_payment_pending = $license->is_first_payment_pending();
186
  }
187
 
 
 
188
  $fs_blog_id = ( is_multisite() && ! is_network_admin() ) ?
189
  get_current_blog_id() :
190
  0;
192
  $active_plugins_directories_map = Freemius::get_active_plugins_directories_map( $fs_blog_id );
193
 
194
  $is_premium = $fs->is_premium();
195
+
196
+ $account_addons = $fs->get_updated_account_addons();
197
+ $installed_addons = $fs->get_installed_addons();
198
+ $installed_addons_ids = array();
199
+
200
+ /**
201
+ * Store the installed add-ons' IDs into a collection which will be used in determining the add-ons to show on the "Account" page, and at the same time try to find an add-on that is activated with a bundle license if the core product is not.
202
+ *
203
+ * @author Leo Fajardo
204
+ *
205
+ * @since 2.4.0
206
+ */
207
+ foreach ( $installed_addons as $fs_addon ) {
208
+ $installed_addons_ids[] = $fs_addon->get_id();
209
+
210
+ if ( $has_bundle_license ) {
211
+ // We already have the context bundle license details, skip.
212
+ continue;
213
+ }
214
+
215
+ if (
216
+ $show_plan_row &&
217
+ $fs_addon->has_active_valid_license()
218
+ ) {
219
+ $addon_license = $fs_addon->_get_license();
220
+
221
+ if ( FS_Plugin_License::is_valid_id( $addon_license->parent_license_id ) ) {
222
+ // Add-on's license is associated with a parent/bundle license.
223
+ $has_bundle_license = true;
224
+
225
+ $bundle_plan_title = strtoupper( $addon_license->parent_plan_title );
226
+ $bundle_subscription = $fs_addon->_get_subscription( $addon_license->parent_license_id );
227
+ $is_bundle_first_payment_pending = $addon_license->is_first_payment_pending();
228
+ }
229
+ }
230
+ }
231
+
232
+ $addons_to_show = array_unique( array_merge( $installed_addons_ids, $account_addons ) );
233
+
234
+ $is_active_bundle_subscription = ( is_object( $bundle_subscription ) && $bundle_subscription->is_active() );
235
  ?>
236
  <div class="wrap fs-section">
237
  <?php if ( ! $has_tabs && ! $fs->apply_filters( 'hide_account_tabs', false ) ) : ?>
259
  <h3><span class="dashicons dashicons-businessman"></span> <?php fs_esc_html_echo_inline( 'Account Details', 'account-details', $slug ) ?></h3>
260
  <div class="fs-header-actions">
261
  <ul>
262
+ <?php if ( $fs->is_whitelabeled( true ) ) : ?>
263
+ <li>
264
+ <a href="#" class="debug-license-trigger"><i class="dashicons dashicons-<?php echo $is_whitelabeled ? 'editor-code' : 'controls-pause' ?>"></i> <span><?php
265
+ if ( $is_whitelabeled ) {
266
+ fs_esc_html_echo_inline( 'Start Debug', 'start-debug-license', $slug );
267
+ } else {
268
+ fs_esc_html_echo_inline( 'Stop Debug', 'stop-debug-license', $slug );
269
+ }
270
+ ?></span></a>
271
+ </li>
272
+ <li>&nbsp;&bull;&nbsp;</li>
273
+ <?php endif ?>
274
  <?php if ( $show_billing ) : ?>
275
  <li><a href="#fs_billing"><i class="dashicons dashicons-portfolio"></i> <?php fs_esc_html_echo_inline( 'Billing & Invoices', 'billing-invoices', $slug ) ?></li>
276
  <li>&nbsp;&bull;&nbsp;</li>
277
  <?php endif ?>
278
+ <?php if ( ! $is_whitelabeled ) : ?>
279
+ <?php if ( ! $is_paying ) : ?>
280
+ <li>
281
+ <form action="<?php echo $fs->_get_admin_page_url( 'account' ) ?>" method="POST">
282
+ <input type="hidden" name="fs_action" value="delete_account">
283
+ <?php wp_nonce_field( 'delete_account' ) ?>
284
+ <a class="fs-delete-account" href="#" onclick="if (confirm('<?php
285
+ if ( $is_active_subscription ) {
286
+ echo esc_attr( sprintf( fs_text_inline( 'Deleting the account will automatically deactivate your %s plan license so you can use it on other sites. If you want to terminate the recurring payments as well, click the "Cancel" button, and first "Downgrade" your account. Are you sure you would like to continue with the deletion?', 'delete-account-x-confirm', $slug ), $plan->title ) );
287
+ } else {
288
+ echo esc_attr( sprintf( fs_text_inline( 'Deletion is not temporary. Only delete if you no longer want to use this %s anymore. Are you sure you would like to continue with the deletion?', 'delete-account-confirm', $slug ), $fs->get_module_label( true ) ) );
289
+ }
290
+ ?>')) this.parentNode.submit(); return false;"><i
291
+ class="dashicons dashicons-no"></i> <?php fs_esc_html_echo_inline( 'Delete Account', 'delete-account', $slug ) ?></a>
292
+ </form>
293
+ </li>
294
+ <li>&nbsp;&bull;&nbsp;</li>
 
 
 
 
 
 
 
 
 
 
 
 
295
  <?php endif ?>
296
+ <?php if ( $is_paying ) : ?>
297
+ <?php if ( ! fs_is_network_admin() ) : ?>
298
+ <li>
299
+ <form action="<?php echo $fs->_get_admin_page_url( 'account' ) ?>" method="POST">
300
+ <input type="hidden" name="fs_action" value="deactivate_license">
301
+ <?php wp_nonce_field( 'deactivate_license' ) ?>
302
+ <a href="#" class="fs-deactivate-license"><i
303
+ class="dashicons dashicons-admin-network"></i> <?php fs_echo_inline( 'Deactivate License', 'deactivate-license', $slug ) ?>
304
+ </a>
305
+ </form>
306
+ </li>
307
+ <li>&nbsp;&bull;&nbsp;</li>
308
+ <?php endif ?>
309
+ <?php if ( ! $license->is_lifetime() &&
310
+ $is_active_subscription
311
+ ) : ?>
312
+ <li>
313
+ <form action="<?php echo $fs->_get_admin_page_url( 'account' ) ?>" method="POST">
314
+ <input type="hidden" name="fs_action" value="downgrade_account">
315
+ <?php wp_nonce_field( 'downgrade_account' ) ?>
316
+ <a href="#"
317
+ onclick="if ( confirm('<?php echo esc_attr( sprintf(
318
+ $downgrade_x_confirm_text,
319
+ ( $fs->is_only_premium() ? $cancelling_subscription_text : $downgrading_plan_text ),
320
+ $plan->title,
321
+ human_time_diff( time(), strtotime( $license->expiration ) )
322
+ ) ) ?> <?php if ( ! $license->is_block_features ) {
323
+ echo esc_attr( sprintf( $after_downgrade_non_blocking_text, $plan->title, $fs->get_module_label( true ) ) );
324
+ } else {
325
+ echo esc_attr( sprintf( $after_downgrade_blocking_text, $plan->title ) );
326
+ }?> <?php echo esc_attr( $prices_increase_text ) ?> <?php fs_esc_attr_echo_inline( 'Are you sure you want to proceed?', 'proceed-confirmation', $slug ) ?>') ) this.parentNode.submit(); return false;"><i class="dashicons dashicons-download"></i> <?php echo esc_html( $fs->is_only_premium() ? fs_text_inline( 'Cancel Subscription', 'cancel-subscription', $slug ) : $downgrade_text ) ?></a>
327
+ </form>
328
+ </li>
329
+ <li>&nbsp;&bull;&nbsp;</li>
330
+ <?php endif ?>
331
+ <?php if ( ! $fs->is_single_plan() ) : ?>
332
+ <li>
333
+ <a href="<?php echo $fs->get_upgrade_url() ?>"><i
334
+ class="dashicons dashicons-grid-view"></i> <?php echo esc_html( $change_plan_text ) ?></a>
335
+ </li>
336
+ <li>&nbsp;&bull;&nbsp;</li>
337
+ <?php endif ?>
338
+ <?php elseif ( $is_paid_trial ) : ?>
339
+ <li>
340
+ <form action="<?php echo $fs->_get_admin_page_url( 'account' ) ?>" method="POST">
341
+ <input type="hidden" name="fs_action" value="cancel_trial">
342
+ <?php wp_nonce_field( 'cancel_trial' ) ?>
343
+ <a href="#" class="fs-cancel-trial"><i
344
+ class="dashicons dashicons-download"></i> <?php echo esc_html( $cancel_trial_text ) ?></a>
345
+ </form>
346
+ </li>
347
+ <li>&nbsp;&bull;&nbsp;</li>
348
+ <?php endif ?>
349
+ <?php endif ?>
350
+ <li>
351
+ <form action="<?php echo $fs->_get_admin_page_url( 'account' ) ?>" method="POST">
352
+ <input type="hidden" name="fs_action" value="<?php echo $fs->get_unique_affix() ?>_sync_license">
353
+ <?php wp_nonce_field( $fs->get_unique_affix() . '_sync_license' ) ?>
354
+ <a href="#" onclick="this.parentNode.submit(); return false;"><i
355
+ class="dashicons dashicons-image-rotate"></i> <?php fs_esc_html_echo_x_inline( 'Sync', 'as synchronize', 'sync', $slug ) ?></a>
356
+ </form>
357
+ </li>
358
  </ul>
359
  </div>
360
  <div class="inside">
363
  $hide_license_key = ( ! $show_license_row || $fs->apply_filters( 'hide_license_key', false ) );
364
 
365
  $profile = array();
 
 
 
 
 
 
 
 
 
 
 
366
 
367
+ if ( ! $is_whitelabeled ) {
368
+ $profile[] = array(
369
+ 'id' => 'user_name',
370
+ 'title' => fs_text_inline( 'Name', 'name', $slug ),
371
+ 'value' => $name
372
+ );
373
+ // if (isset($user->email) && false !== strpos($user->email, '@'))
374
+ $profile[] = array(
375
+ 'id' => 'email',
376
+ 'title' => fs_text_inline( 'Email', 'email', $slug ),
377
+ 'value' => $user->email
378
+ );
379
+
380
+ if ( is_numeric( $user->id ) ) {
381
+ $profile[] = array(
382
+ 'id' => 'user_id',
383
+ 'title' => fs_text_inline( 'User ID', 'user-id', $slug ),
384
+ 'value' => $user->id
385
+ );
386
+ }
387
+ }
388
 
389
  $profile[] = array(
390
  'id' => 'product',
433
  'value' => $fs->get_plugin_version()
434
  );
435
 
436
+ if ( $is_premium && ! $is_whitelabeled ) {
437
  $profile[] = array(
438
  'id' => 'beta_program',
439
  'title' => '',
441
  );
442
  }
443
 
444
+ if ( $has_paid_plan || $has_bundle_license ) {
445
  if ( $fs->is_trial() ) {
446
  if ( $show_plan_row ) {
447
  $profile[] = array(
456
  if ( $show_plan_row ) {
457
  $profile[] = array(
458
  'id' => 'plan',
459
+ 'title' => ( $has_bundle_license ? ucfirst( $fs->get_module_type() ) . ' ' : '' ) . $plan_text,
460
  'value' => strtoupper( is_string( $plan->name ) ?
461
  $plan->title :
462
  strtoupper( $free_text )
463
  )
464
  );
465
 
466
+ if ( $has_bundle_license ) {
467
  $profile[] = array(
468
  'id' => 'bundle_plan',
469
  'title' => $bundle_plan_text,
470
+ 'value' => $bundle_plan_title
471
  );
472
  }
473
  }
499
  </td>
500
  <td<?php if ( 'plan' === $p['id'] || 'bundle_plan' === $p['id'] ) { echo ' colspan="2"'; }?>>
501
  <?php if ( in_array( $p['id'], array( 'license_key', 'site_secret_key' ) ) ) : ?>
502
+ <code><?php echo FS_Plugin_License::mask_secret_key_for_html( $p['value'] ) ?></code>
503
+ <?php if ( ! $is_whitelabeled ) : ?>
504
+ <input type="text" value="<?php echo htmlspecialchars( $p['value'] ) ?>" style="display: none"
505
  readonly/>
506
+ <?php endif ?>
507
  <?php elseif ( 'beta_program' === $p['id'] ) : ?>
508
  <label>
509
  <input type="checkbox" class="fs-toggle-beta-mode" <?php checked( true, $p['value'] ) ?>/><span><?php
533
  <?php elseif ( $fs->is_trial() ) : ?>
534
  <label class="fs-tag fs-warn"><?php echo esc_html( sprintf( $expires_in_text, human_time_diff( time(), strtotime( $site->trial_ends ) ) ) ) ?></label>
535
  <?php endif ?>
536
+ <?php if ( ! $is_whitelabeled ) : ?>
537
  <div class="button-group">
538
  <?php $available_license = $fs->is_free_plan() && ! fs_is_network_admin() ? $fs->_get_available_premium_license( $site->is_localhost() ) : false ?>
539
  <?php if ( is_object( $available_license ) ) : ?>
571
  </form>
572
  <?php endif ?>
573
  </div>
574
+ <?php endif ?>
575
  <?php elseif ( 'bundle_plan' === $p['id'] ) : ?>
576
  <?php if ( is_object( $bundle_subscription ) ) : ?>
577
+ <?php if ( $is_active_bundle_subscription && ! $is_bundle_first_payment_pending ) : ?>
578
  <label class="fs-tag fs-success"><?php echo esc_html( sprintf( $renews_in_text, human_time_diff( time(), strtotime( $bundle_subscription->next_payment ) ) ) ) ?></label>
579
  <?php endif ?>
580
  <?php endif ?>
604
  <div class="button-group">
605
  <?php if ( $is_paying || $fs->is_trial() ) : ?>
606
  <?php if ( ! $fs->is_allowed_to_install() ) : ?>
607
+ <a target="_blank" rel="noopener" class="button button-primary"
608
+ href="<?php echo $fs->_get_latest_download_local_url() ?>"><?php
609
+ $download_version_text_suffix = ( is_object( $update ) ? ' [' . $update->version . ']' : '' );
610
+
611
+ $download_version_text = sprintf(
612
+ /* translators: %s: plan name (e.g. Download "Professional" Version) */
613
+ fs_text_inline( 'Download %s Version', 'download-x-version', $slug ),
614
+ ( $fs->is_trial() ? $trial_plan->title : $plan->title )
615
+ ) .
616
+ $download_version_text_suffix;
617
+
618
+ $download_version_text_length = function_exists( 'mb_strlen' ) ?
619
+ mb_strlen( $download_version_text ) :
620
+ strlen( $download_version_text );
621
+
622
+ if ( $download_version_text_length > 31 ) {
623
+ /**
624
+ * Try to limit the number of characters to 31 for now.
625
+ *
626
+ * @author Leo Fajardo (@leorw)
627
+ * @aince 2.3.2
628
+ */
629
+ $download_version_text = fs_text_inline( 'Download Paid Version', 'download-paid-version', $slug ) . $download_version_text_suffix;
630
+ }
631
+
632
+ echo $download_version_text;
633
+ ?></a>
634
  <?php elseif ( is_object( $update ) ) : ?>
635
  <?php
636
  $module_type = $fs->get_module_type();
643
  <?php endif ?>
644
  <?php
645
  elseif ( in_array( $p['id'], array( 'license_key', 'site_secret_key' ) ) ) : ?>
646
+ <?php if ( ! $is_whitelabeled ) : ?>
647
+ <button class="button button-small fs-toggle-visibility"><?php fs_esc_html_echo_x_inline( 'Show', 'verb', 'show', $slug ) ?></button>
648
+ <?php endif ?>
649
+ <?php if ('license_key' === $p['id']) : ?>
650
+ <button class="button button-small activate-license-trigger <?php echo $fs->get_unique_affix() ?>"><?php fs_esc_html_echo_inline( 'Change License', 'change-license', $slug ) ?></button>
651
+ <?php endif ?>
652
  <?php
653
  elseif (/*in_array($p['id'], array('site_secret_key', 'site_id', 'site_public_key')) ||*/
654
  ( is_string( $user->secret_key ) && in_array( $p['id'], array(
669
  <input type="submit" class="button button-small"
670
  value="<?php echo fs_esc_attr_x_inline( 'Edit', 'verb', 'edit', $slug ) ?>">
671
  </form>
672
+ <?php elseif ( 'user_id' === $p['id'] && ! empty( $ids_of_installs_activated_with_foreign_licenses ) ) : ?>
673
+ <input id="fs_change_user" type="submit" class="button button-small"
674
+ value="<?php echo fs_esc_attr_inline( 'Change User', 'change-user', $slug ) ?>">
675
  <?php endif ?>
676
  </td>
677
  <?php endif ?>
697
  <div id="fs_sites" class="postbox">
698
  <h3><span class="dashicons dashicons-networking"></span> <?php fs_esc_html_echo_inline( 'Sites', 'sites', $slug ) ?></h3>
699
  <div class="fs-header-actions">
700
+ <?php if ( ! $is_whitelabeled ) : ?>
701
+ <?php $has_license = is_object( $license ) ?>
702
+ <?php if ( $has_license || ( $show_upgrade && $is_premium ) ) : ?>
703
+ <?php
704
+ $activate_license_button_text = $has_license ?
705
+ fs_esc_html_inline( 'Change License', 'change-license', $slug ) :
706
+ fs_esc_html_inline( 'Activate License', 'activate-license', $slug );
707
+ ?>
708
+ <a class="button<?php echo ( ! $has_license ? ' button-primary' : '' ) ?> activate-license-trigger <?php echo $fs->get_unique_affix() ?>" href="#"><?php echo $activate_license_button_text ?></a>
709
+ <?php endif ?>
710
  <?php endif ?>
711
  <input class="fs-search" type="text" placeholder="<?php fs_esc_attr_echo_inline( 'Search by address', 'search-by-address', $slug ) ?>..."><span class="dashicons dashicons-search"></span>
712
  </div>
 
713
  <div class="inside">
714
  <div id="" class="fs-scrollable-table">
715
  <div class="fs-table-head">
740
  </div>
741
  </div>
742
  <?php endif ?>
 
 
 
 
 
 
 
 
 
 
 
 
743
  <?php if ( 0 < count( $addons_to_show ) ) : ?>
744
  <!-- Add-Ons -->
745
  <div class="postbox">
765
 
766
  $installed_addons_ids_map = array_flip( $installed_addons_ids );
767
 
768
+ $addon_info_by_id = array();
769
+ $hide_all_addons_data = false;
770
+
771
+ if ( $fs->is_whitelabeled_by_flag() ) {
772
+ $hide_all_addons_data = true;
773
+
774
+ foreach ( $addons_to_show as $addon_id ) {
775
+ $is_addon_installed = isset( $installed_addons_ids_map[ $addon_id ] );
776
+ $addon_info = $fs->_get_addon_info( $addon_id, $is_addon_installed );
777
+ $is_addon_connected = $addon_info['is_connected'];
778
+
779
+ $fs_addon = ( $is_addon_connected && $is_addon_installed ) ?
780
+ freemius( $addon_id ) :
781
+ null;
782
+
783
+ $is_whitelabeled = is_object( $fs_addon ) ?
784
+ $fs_addon->is_whitelabeled( true ) :
785
+ $addon_info['is_whitelabeled'];
786
+
787
+ if ( ! $is_whitelabeled ) {
788
+ $hide_all_addons_data = false;
789
+ }
790
+
791
+ if ( $is_data_debug_mode ) {
792
+ $is_whitelabeled = false;
793
+ }
794
+
795
+ $addon_info_by_id[ $addon_id ] = $addon_info;
796
+ }
797
+ }
798
+
799
  foreach ( $addons_to_show as $addon_id ) {
800
  $is_addon_installed = isset( $installed_addons_ids_map[ $addon_id ] );
801
 
802
+ if (
803
+ $hide_all_addons_data &&
804
+ ! $is_addon_installed &&
805
+ ! file_exists( fs_normalize_path( WP_PLUGIN_DIR . '/' . $fs->get_addon_basename( $addon_id ) ) )
806
+ ) {
807
+ continue;
808
+ }
809
+
810
  $addon_view_params = array(
811
  'parent_fs' => $fs,
812
  'addon_id' => $addon_id,
814
  'fs_blog_id' => $fs_blog_id,
815
  'active_plugins_directories_map' => &$active_plugins_directories_map,
816
  'is_addon_installed' => $is_addon_installed,
817
+ 'addon_info' => isset( $addon_info_by_id[ $addon_id ] ) ?
818
+ $addon_info_by_id[ $addon_id ] :
819
+ $fs->_get_addon_info( $addon_id, $is_addon_installed ),
820
+ 'is_whitelabeled' => ( $is_whitelabeled && ! $is_data_debug_mode )
821
  );
822
 
823
  fs_require_template(
1056
  });
1057
  });
1058
 
1059
+ $( '.fs-toggle-whitelabel-mode' ).click( function () {
1060
+ var $toggleLink = $( this );
1061
+
1062
+ $.ajax( {
1063
+ url : ajaxurl,
1064
+ method: 'POST',
1065
+ data : {
1066
+ action : '<?php echo $fs->get_ajax_action( 'toggle_whitelabel_mode' ) ?>',
1067
+ security : '<?php echo $fs->get_ajax_security( 'toggle_whitelabel_mode' ) ?>',
1068
+ module_id: <?php echo $fs->get_id() ?>
1069
+ },
1070
+ beforeSend: function () {
1071
+ $toggleLink.parent().text( '<?php
1072
+ $is_whitelabeled ?
1073
+ fs_esc_html_echo_inline( 'Disabling white-label mode', 'disabling-whitelabel-mode' ) :
1074
+ fs_esc_html_echo_inline( 'Enabling white-label mode', 'enabling-whitelabel-mode' )
1075
+ ?>' + '...' );
1076
+ },
1077
+ complete: function () {
1078
+ location.reload();
1079
+ }
1080
+ } );
1081
+ });
1082
  })(jQuery);
1083
  </script>
1084
  <?php
freemius/templates/account/partials/addon.php CHANGED
@@ -38,7 +38,6 @@
38
  $renews_in_text = fs_text_inline( 'Auto renews in %s', 'renews-in', $slug );
39
  /* translators: %s: Time period (e.g. Expires in "2 months") */
40
  $expires_in_text = fs_text_inline( 'Expires in %s', 'expires-in', $slug );
41
- $sync_license_text = fs_text_x_inline( 'Sync License', 'as synchronize license', 'sync-license', $slug );
42
  $cancel_trial_text = fs_text_inline( 'Cancel Trial', 'cancel-trial', $slug );
43
  $change_plan_text = fs_text_inline( 'Change Plan', 'change-plan', $slug );
44
  $upgrade_text = fs_text_x_inline( 'Upgrade', 'verb', 'upgrade', $slug );
@@ -61,6 +60,7 @@
61
  $subscription = null;
62
  $is_paying = false;
63
  $show_upgrade = false;
 
64
 
65
  if ( is_object( $fs_addon ) ) {
66
  $is_paying = $fs_addon->is_paying();
@@ -74,8 +74,18 @@
74
  $plan_name = $plan->name;
75
  $plan_title = $plan->title;
76
  $is_paid_trial = $fs_addon->is_paid_trial();
77
- $show_upgrade = ( $fs_addon->has_paid_plan() && ! $is_paying && ! $is_paid_trial && ! $fs_addon->_has_premium_license() );
78
  $version = $fs_addon->get_plugin_version();
 
 
 
 
 
 
 
 
 
 
 
79
  } else if ( $is_addon_connected ) {
80
  if (
81
  empty( $addon_info ) ||
@@ -116,10 +126,19 @@
116
  $has_valid_and_active_license &&
117
  ( $site->trial_plan_id == $license->plan_id )
118
  );
 
 
119
  }
120
  }
121
 
 
 
 
 
 
122
  $is_active_subscription = ( is_object( $subscription ) && $subscription->is_active() );
 
 
123
  ?>
124
  <tr<?php if ( $odd ) {
125
  echo ' class="alternate"';
@@ -141,10 +160,9 @@
141
  <td><?php echo strtoupper( is_string( $plan_name ) ? $plan_title : $free_text ) ?></td>
142
  <!--/ Plan Title -->
143
 
144
- <?php if ( $site->is_trial() || is_object( $license ) ) : ?>
145
-
146
  <!-- Expiration -->
147
  <td>
 
148
  <?php
149
  $tags = array();
150
 
@@ -195,118 +213,138 @@
195
  printf( '<label class="fs-tag fs-%s">%s</label>' . "\n", $t['type'], $t['label'] );
196
  }
197
  ?>
 
198
  </td>
199
  <!--/ Expiration -->
200
 
201
- <?php endif ?>
202
-
203
  <?php
204
  $buttons = array();
 
 
205
  if ( $is_addon_activated ) {
206
- if ( $is_paying ) {
207
- $buttons[] = fs_ui_get_action_button(
208
- $fs->get_id(),
209
- 'account',
210
- 'deactivate_license',
211
- fs_text_inline( 'Deactivate License', 'deactivate-license', $slug ),
212
- '',
213
- array( 'plugin_id' => $addon_id ),
214
- false
215
- );
216
-
217
- $human_readable_license_expiration = human_time_diff( time(), strtotime( $license->expiration ) );
218
- $downgrade_confirmation_message = sprintf(
219
- $downgrade_x_confirm_text,
220
- ( $fs_addon->is_only_premium() ? $cancelling_subscription_text : $downgrading_plan_text ),
221
- $plan->title,
222
- $human_readable_license_expiration
223
- );
224
-
225
- $after_downgrade_message = ! $license->is_block_features ?
226
- sprintf( $after_downgrade_non_blocking_text, $plan->title, $fs_addon->get_module_label( true ) ) :
227
- sprintf( $after_downgrade_blocking_text, $plan->title );
228
-
229
- if ( ! $license->is_lifetime() && $is_active_subscription ) {
230
  $buttons[] = fs_ui_get_action_button(
231
  $fs->get_id(),
232
  'account',
233
- 'downgrade_account',
234
- esc_html( $fs_addon->is_only_premium() ? fs_text_inline( 'Cancel Subscription', 'cancel-subscription', $slug ) : $downgrade_text ),
235
  '',
236
  array( 'plugin_id' => $addon_id ),
237
  false,
238
- false,
239
- false,
240
- ( $downgrade_confirmation_message . ' ' . $after_downgrade_message . ' ' . $prices_increase_text ),
241
- 'POST'
 
 
 
 
 
242
  );
243
- }
244
- } else if ( $is_paid_trial ) {
245
- $buttons[] = fs_ui_get_action_button(
246
- $fs->get_id(),
247
- 'account',
248
- 'cancel_trial',
249
- esc_html( $cancel_trial_text ),
250
- '',
251
- array( 'plugin_id' => $addon_id ),
252
- false,
253
- false,
254
- 'dashicons dashicons-download',
255
- $cancel_trial_confirm_text,
256
- 'POST'
257
- );
258
- } else if ( ! is_object( $license ) || ! $license->is_features_enabled() ) {
259
- $premium_license = $fs_addon->_get_available_premium_license();
260
-
261
- if ( is_object( $premium_license ) ) {
262
- $premium_plan = $fs_addon->_get_plan_by_id( $premium_license->plan_id );
263
- $site = $fs_addon->get_site();
264
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
265
  $buttons[] = fs_ui_get_action_button(
266
  $fs->get_id(),
267
  'account',
268
- 'activate_license',
269
- esc_html( sprintf( $activate_plan_text, $premium_plan->title, ( $site->is_localhost() && $premium_license->is_free_localhost ) ? '[localhost]' : ( 1 < $premium_license->left() ? $premium_license->left() . ' left' : '' ) ) ),
270
  '',
271
- array(
272
- 'plugin_id' => $addon_id,
273
- 'license_id' => $premium_license->id,
274
- )
 
 
275
  );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
276
  }
277
  }
278
 
279
- if ( 0 == count( $buttons ) ) {
280
- if ( $show_upgrade && $fs_addon->is_premium() ) {
281
  $fs_addon->_add_license_activation_dialog_box();
282
 
283
  $buttons[] = fs_ui_get_action_button(
284
  $fs->get_id(),
285
  'account',
286
  'activate_license',
287
- fs_esc_html_inline( 'Activate License', 'activate-license', $slug ),
 
 
288
  'activate-license-trigger ' . $fs_addon->get_unique_affix(),
289
  array(
290
  'plugin_id' => $addon_id,
291
  ),
292
- false,
293
  true
294
  );
295
- }
296
 
297
- // Add sync license only if non of the other CTAs are visible.
298
- $buttons[] = fs_ui_get_action_button(
299
- $fs->get_id(),
300
- 'account',
301
- $fs->get_unique_affix() . '_sync_license',
302
- esc_html( $sync_license_text ),
303
- '',
304
- array( 'plugin_id' => $addon_id ),
305
- false,
306
- true
307
- );
308
 
309
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
310
  } else if ( ! $show_upgrade ) {
311
  if ( $fs->is_addon_installed( $addon_id ) ) {
312
  $addon_file = $fs->get_addon_basename( $addon_id );
@@ -328,7 +366,7 @@
328
  );
329
  } else {
330
  $buttons[] = sprintf(
331
- '<a target="_blank" class="button button-primary edit" href="%s">%s</a>',
332
  $fs->_get_latest_download_local_url( $addon_id ),
333
  esc_html( $download_latest_text )
334
  );
@@ -362,10 +400,11 @@
362
 
363
  <?php else : ?>
364
  <?php // Add-on NOT Installed or was never connected.
 
365
  ?>
366
  <!-- Action -->
367
- <td colspan="4">
368
- <?php if ( $fs->is_addon_installed( $addon_id ) ) : ?>
369
  <?php $addon_file = $fs->get_addon_basename( $addon_id ) ?>
370
  <?php if ( ! isset( $active_plugins_directories_map[ dirname( $addon_file ) ] ) ) : ?>
371
  <a class="button button-primary"
@@ -378,15 +417,15 @@
378
  <a class="button button-primary"
379
  href="<?php echo wp_nonce_url( self_admin_url( 'update.php?' . ( ( isset( $addon_info['has_paid_plan'] ) && $addon_info['has_paid_plan'] ) ? 'fs_allow_updater_and_dialog=true&' : '' ) . 'action=install-plugin&plugin=' . $addon_info['slug'] ), 'install-plugin_' . $addon_info['slug'] ) ?>"><?php fs_esc_html_echo_inline( 'Install Now', 'install-now', $slug ) ?></a>
380
  <?php else : ?>
381
- <a target="_blank" class="button button-primary"
382
  href="<?php echo $fs->_get_latest_download_local_url( $addon_id ) ?>"><?php echo esc_html( $download_latest_text ) ?></a>
383
  <?php endif ?>
384
  <?php endif ?>
385
  </td>
386
  <!--/ Action -->
387
  <?php endif ?>
388
- <?php if ( ! $is_paying && WP_FS__DEV_MODE ) : ?>
389
- <!-- Optional Delete Action -->
390
  <td>
391
  <?php
392
  if ( $is_addon_activated ) {
38
  $renews_in_text = fs_text_inline( 'Auto renews in %s', 'renews-in', $slug );
39
  /* translators: %s: Time period (e.g. Expires in "2 months") */
40
  $expires_in_text = fs_text_inline( 'Expires in %s', 'expires-in', $slug );
 
41
  $cancel_trial_text = fs_text_inline( 'Cancel Trial', 'cancel-trial', $slug );
42
  $change_plan_text = fs_text_inline( 'Change Plan', 'change-plan', $slug );
43
  $upgrade_text = fs_text_x_inline( 'Upgrade', 'verb', 'upgrade', $slug );
60
  $subscription = null;
61
  $is_paying = false;
62
  $show_upgrade = false;
63
+ $is_whitelabeled = $VARS['is_whitelabeled'];
64
 
65
  if ( is_object( $fs_addon ) ) {
66
  $is_paying = $fs_addon->is_paying();
74
  $plan_name = $plan->name;
75
  $plan_title = $plan->title;
76
  $is_paid_trial = $fs_addon->is_paid_trial();
 
77
  $version = $fs_addon->get_plugin_version();
78
+ $is_whitelabeled = (
79
+ $fs_addon->is_whitelabeled( true ) &&
80
+ ! $fs_addon->get_parent_instance()->is_data_debug_mode()
81
+ );
82
+ $show_upgrade = (
83
+ ! $is_whitelabeled &&
84
+ $fs_addon->has_paid_plan() &&
85
+ ! $is_paying &&
86
+ ! $is_paid_trial &&
87
+ ! $fs_addon->_has_premium_license()
88
+ );
89
  } else if ( $is_addon_connected ) {
90
  if (
91
  empty( $addon_info ) ||
126
  $has_valid_and_active_license &&
127
  ( $site->trial_plan_id == $license->plan_id )
128
  );
129
+
130
+ $is_whitelabeled = $addon_info['is_whitelabeled'];
131
  }
132
  }
133
 
134
+ $has_feature_enabled_license = (
135
+ is_object( $license ) &&
136
+ $license->is_features_enabled()
137
+ );
138
+
139
  $is_active_subscription = ( is_object( $subscription ) && $subscription->is_active() );
140
+
141
+ $show_delete_install_button = ( ! $is_paying && WP_FS__DEV_MODE && ! $is_whitelabeled );
142
  ?>
143
  <tr<?php if ( $odd ) {
144
  echo ' class="alternate"';
160
  <td><?php echo strtoupper( is_string( $plan_name ) ? $plan_title : $free_text ) ?></td>
161
  <!--/ Plan Title -->
162
 
 
 
163
  <!-- Expiration -->
164
  <td>
165
+ <?php if ( $site->is_trial() || is_object( $license ) ) : ?>
166
  <?php
167
  $tags = array();
168
 
213
  printf( '<label class="fs-tag fs-%s">%s</label>' . "\n", $t['type'], $t['label'] );
214
  }
215
  ?>
216
+ <?php endif ?>
217
  </td>
218
  <!--/ Expiration -->
219
 
 
 
220
  <?php
221
  $buttons = array();
222
+ $is_license_activation_added = false;
223
+
224
  if ( $is_addon_activated ) {
225
+ if ( ! $is_whitelabeled ) {
226
+ if ( $is_paying ) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
227
  $buttons[] = fs_ui_get_action_button(
228
  $fs->get_id(),
229
  'account',
230
+ 'deactivate_license',
231
+ fs_text_inline( 'Deactivate License', 'deactivate-license', $slug ),
232
  '',
233
  array( 'plugin_id' => $addon_id ),
234
  false,
235
+ true
236
+ );
237
+
238
+ $human_readable_license_expiration = human_time_diff( time(), strtotime( $license->expiration ) );
239
+ $downgrade_confirmation_message = sprintf(
240
+ $downgrade_x_confirm_text,
241
+ ( $fs_addon->is_only_premium() ? $cancelling_subscription_text : $downgrading_plan_text ),
242
+ $plan->title,
243
+ $human_readable_license_expiration
244
  );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
245
 
246
+ $after_downgrade_message = ! $license->is_block_features ?
247
+ sprintf( $after_downgrade_non_blocking_text, $plan->title, $fs_addon->get_module_label( true ) ) :
248
+ sprintf( $after_downgrade_blocking_text, $plan->title );
249
+
250
+ if ( ! $license->is_lifetime() && $is_active_subscription ) {
251
+ $buttons[] = fs_ui_get_action_button(
252
+ $fs->get_id(),
253
+ 'account',
254
+ 'downgrade_account',
255
+ esc_html( $fs_addon->is_only_premium() ? fs_text_inline( 'Cancel Subscription', 'cancel-subscription', $slug ) : $downgrade_text ),
256
+ '',
257
+ array( 'plugin_id' => $addon_id ),
258
+ false,
259
+ false,
260
+ false,
261
+ ( $downgrade_confirmation_message . ' ' . $after_downgrade_message . ' ' . $prices_increase_text ),
262
+ 'POST'
263
+ );
264
+ }
265
+ } else if ( $is_paid_trial ) {
266
  $buttons[] = fs_ui_get_action_button(
267
  $fs->get_id(),
268
  'account',
269
+ 'cancel_trial',
270
+ esc_html( $cancel_trial_text ),
271
  '',
272
+ array( 'plugin_id' => $addon_id ),
273
+ false,
274
+ false,
275
+ 'dashicons dashicons-download',
276
+ $cancel_trial_confirm_text,
277
+ 'POST'
278
  );
279
+ } else if ( ! $has_feature_enabled_license ) {
280
+ $premium_licenses = $fs_addon->get_available_premium_licenses();
281
+
282
+ if ( ! empty( $premium_licenses ) ) {
283
+ $premium_license = $premium_licenses[0];
284
+ $has_multiple_premium_licenses = ( 1 < count( $premium_licenses ) );
285
+
286
+ if ( ! $has_multiple_premium_licenses ) {
287
+ $premium_plan = $fs_addon->_get_plan_by_id( $premium_license->plan_id );
288
+ $site = $fs_addon->get_site();
289
+
290
+ $buttons[] = fs_ui_get_action_button(
291
+ $fs->get_id(),
292
+ 'account',
293
+ 'activate_license',
294
+ esc_html( sprintf( $activate_plan_text, $premium_plan->title, ( $site->is_localhost() && $premium_license->is_free_localhost ) ? '[localhost]' : ( 1 < $premium_license->left() ? $premium_license->left() . ' left' : '' ) ) ),
295
+ ($has_multiple_premium_licenses ?
296
+ 'activate-license-trigger ' . $fs_addon->get_unique_affix() :
297
+ ''),
298
+ array(
299
+ 'plugin_id' => $addon_id,
300
+ 'license_id' => $premium_license->id,
301
+ ),
302
+ true,
303
+ true
304
+ );
305
+
306
+ $is_license_activation_added = true;
307
+ }
308
+ }
309
  }
310
  }
311
 
312
+ // if ( 0 == count( $buttons ) ) {
313
+ if ( $fs_addon->is_premium() && ! $is_license_activation_added ) {
314
  $fs_addon->_add_license_activation_dialog_box();
315
 
316
  $buttons[] = fs_ui_get_action_button(
317
  $fs->get_id(),
318
  'account',
319
  'activate_license',
320
+ ( ! $has_feature_enabled_license ) ?
321
+ fs_esc_html_inline( 'Activate License', 'activate-license', $slug ) :
322
+ fs_esc_html_inline( 'Change License', 'change-license', $slug ),
323
  'activate-license-trigger ' . $fs_addon->get_unique_affix(),
324
  array(
325
  'plugin_id' => $addon_id,
326
  ),
327
+ (! $has_feature_enabled_license),
328
  true
329
  );
 
330
 
331
+ $is_license_activation_added = true;
332
+ }
 
 
 
 
 
 
 
 
 
333
 
334
+ if ( $fs_addon->has_paid_plan() ) {
335
+ // Add sync license only if non of the other CTAs are visible.
336
+ $buttons[] = fs_ui_get_action_button(
337
+ $fs->get_id(),
338
+ 'account',
339
+ $fs->get_unique_affix() . '_sync_license',
340
+ fs_esc_html_x_inline( 'Sync', 'as synchronize', 'sync', $slug ),
341
+ '',
342
+ array( 'plugin_id' => $addon_id ),
343
+ false,
344
+ true
345
+ );
346
+ }
347
+ // }
348
  } else if ( ! $show_upgrade ) {
349
  if ( $fs->is_addon_installed( $addon_id ) ) {
350
  $addon_file = $fs->get_addon_basename( $addon_id );
366
  );
367
  } else {
368
  $buttons[] = sprintf(
369
+ '<a target="_blank" rel="noopener" class="button button-primary edit" href="%s">%s</a>',
370
  $fs->_get_latest_download_local_url( $addon_id ),
371
  esc_html( $download_latest_text )
372
  );
400
 
401
  <?php else : ?>
402
  <?php // Add-on NOT Installed or was never connected.
403
+ $is_addon_installed_by_filesystem = $fs->is_addon_installed( $addon_id );
404
  ?>
405
  <!-- Action -->
406
+ <td colspan="<?php echo ( $is_addon_installed_by_filesystem || $show_delete_install_button ) ? '5' : '4' ?>">
407
+ <?php if ( $is_addon_installed_by_filesystem ) : ?>
408
  <?php $addon_file = $fs->get_addon_basename( $addon_id ) ?>
409
  <?php if ( ! isset( $active_plugins_directories_map[ dirname( $addon_file ) ] ) ) : ?>
410
  <a class="button button-primary"
417
  <a class="button button-primary"
418
  href="<?php echo wp_nonce_url( self_admin_url( 'update.php?' . ( ( isset( $addon_info['has_paid_plan'] ) && $addon_info['has_paid_plan'] ) ? 'fs_allow_updater_and_dialog=true&' : '' ) . 'action=install-plugin&plugin=' . $addon_info['slug'] ), 'install-plugin_' . $addon_info['slug'] ) ?>"><?php fs_esc_html_echo_inline( 'Install Now', 'install-now', $slug ) ?></a>
419
  <?php else : ?>
420
+ <a target="_blank" rel="noopener" class="button button-primary"
421
  href="<?php echo $fs->_get_latest_download_local_url( $addon_id ) ?>"><?php echo esc_html( $download_latest_text ) ?></a>
422
  <?php endif ?>
423
  <?php endif ?>
424
  </td>
425
  <!--/ Action -->
426
  <?php endif ?>
427
+ <?php if ( $show_delete_install_button ) : ?>
428
+ <!-- Optional Delete Action -->
429
  <td>
430
  <?php
431
  if ( $is_addon_activated ) {
freemius/templates/account/partials/site.php CHANGED
@@ -15,20 +15,26 @@
15
  * @var Freemius $fs
16
  * @var FS_Plugin_License $main_license
17
  */
18
- $fs = $VARS['freemius'];
19
- $slug = $fs->get_slug();
20
- $site = $VARS['site'];
21
- $main_license = $VARS['license'];
22
- $has_paid_plan = $fs->has_paid_plan();
23
- $is_premium = $fs->is_premium();
24
- $main_user = $fs->get_user();
25
- $blog_id = $site['blog_id'];
 
 
26
 
27
  $install = $VARS['install'];
28
  $is_registered = ! empty( $install );
29
  $license = null;
30
  $trial_plan = $fs->get_trial_plan();
31
  $free_text = fs_text_inline( 'Free', 'free', $slug );
 
 
 
 
32
  ?>
33
  <tr class="fs-site-details" data-blog-id="<?php echo $blog_id ?>"<?php if ( $is_registered ) : ?> data-install-id="<?php echo $install->id ?>"<?php endif ?>>
34
  <!-- Install ID or Opt-in option -->
@@ -72,28 +78,30 @@
72
  $view_params['is_localhost'] = FS_Site::is_localhost_by_address( $site['url'] );
73
  }
74
 
75
- if ( is_object( $license ) ) {
76
- $view_params['license'] = $license;
 
77
 
78
- // Show license deactivation button.
79
- fs_require_template( 'account/partials/deactivate-license-button.php', $view_params );
80
- } else {
81
- if ( is_object( $main_license ) && $main_license->can_activate( $view_params['is_localhost'] ) ) {
82
- // Main license is available for activation.
83
- $available_license = $main_license;
84
  } else {
85
- // Try to find any available license for activation.
86
- $available_license = $fs->_get_available_premium_license( $view_params['is_localhost'] );
87
- }
 
 
 
 
88
 
89
- if ( is_object( $available_license ) ) {
90
- $premium_plan = $fs->_get_plan_by_id( $available_license->plan_id );
91
 
92
- $view_params['license'] = $available_license;
93
- $view_params['class'] .= ' button-primary';
94
- $view_params['plan'] = $premium_plan;
95
 
96
- fs_require_template( 'account/partials/activate-license-button.php', $view_params );
 
97
  }
98
  }
99
  } ?></td>
@@ -106,7 +114,7 @@
106
  $plan_title = $free_text;
107
  } else {
108
  if ( $install->is_trial() ) {
109
- if ( $trial_plan->id == $install->trial_plan_id ) {
110
  $plan_title = is_string( $trial_plan->name ) ?
111
  strtoupper( $trial_plan->title ) :
112
  fs_text_inline( 'Trial', 'trial', $slug );
@@ -231,10 +239,14 @@
231
  <nobr><?php fs_esc_html_echo_inline( 'Secret Key', 'secret-key', $slug ) ?>:</nobr>
232
  </td>
233
  <td>
234
- <code><?php echo htmlspecialchars( substr( $install->secret_key, 0, 6 ) ) . str_pad( '', 23 * 6, '&bull;' ) . htmlspecialchars( substr( $install->secret_key, - 3 ) ) ?></code>
 
235
  <input type="text" value="<?php echo htmlspecialchars( $install->secret_key ) ?>"
236
  style="display: none" readonly/></td>
 
 
237
  <td><button class="button button-small fs-toggle-visibility"><?php fs_esc_html_echo_x_inline( 'Show', 'verb', 'show', $slug ) ?></button></td>
 
238
  </tr>
239
  <?php $row_index ++ ?>
240
  <!--/ Secret Key -->
@@ -248,13 +260,17 @@
248
  <nobr><?php fs_esc_html_echo_inline( 'License Key', 'license-key', $slug ) ?>:</nobr>
249
  </td>
250
  <td>
251
- <code><?php echo htmlspecialchars( substr( $license->secret_key, 0, 6 ) ) . str_pad( '', 23 * 6, '&bull;' ) . htmlspecialchars( substr( $license->secret_key, - 3 ) ) ?></code>
 
252
  <input type="text" value="<?php echo htmlspecialchars( $license->secret_key ) ?>"
253
  style="display: none" readonly/></td>
 
 
254
  <td>
255
  <button class="button button-small fs-toggle-visibility"><?php fs_esc_html_echo_x_inline( 'Show', 'verb', 'show', $slug ) ?></button>
256
  <button class="button button-small activate-license-trigger <?php echo $fs->get_unique_affix() ?>"><?php fs_esc_html_echo_inline( 'Change License', 'change-license', $slug ) ?></button>
257
  </td>
 
258
  </tr>
259
  <?php $row_index ++ ?>
260
  <!--/ License Key -->
@@ -295,7 +311,7 @@
295
  $downgrading_plan_text = fs_text_inline( 'Downgrading your plan', 'downgrading-plan', $slug );
296
  $cancelling_subscription_text = fs_text_inline( 'Cancelling the subscription', 'cancelling-subscription', $slug );
297
  /* translators: %1$s: Either 'Downgrading your plan' or 'Cancelling the subscription' */
298
- $downgrade_x_confirm_text = fs_text_inline( '%1$s will immediately stop all future recurring payments and your %s plan license will expire in %s.', 'downgrade-x-confirm', $slug );
299
  $prices_increase_text = fs_text_inline( 'Please note that we will not be able to grandfather outdated pricing for renewals/new subscriptions after a cancellation. If you choose to renew the subscription manually in the future, after a price increase, which typically occurs once a year, you will be charged the updated price.', 'pricing-increase-warning', $slug );
300
  $after_downgrade_non_blocking_text = fs_text_inline( 'You can still enjoy all %s features but you will not have access to %s security & feature updates, nor support.', 'after-downgrade-non-blocking', $slug );
301
  $after_downgrade_blocking_text = fs_text_inline( 'Once your license expires you can still use the Free version but you will NOT have access to the %s features.', 'after-downgrade-blocking', $slug );
15
  * @var Freemius $fs
16
  * @var FS_Plugin_License $main_license
17
  */
18
+ $fs = $VARS['freemius'];
19
+ $slug = $fs->get_slug();
20
+ $site = $VARS['site'];
21
+ $main_license = $VARS['license'];
22
+ $is_data_debug_mode = $fs->is_data_debug_mode();
23
+ $is_whitelabeled = $fs->is_whitelabeled();
24
+ $has_paid_plan = $fs->has_paid_plan();
25
+ $is_premium = $fs->is_premium();
26
+ $main_user = $fs->get_user();
27
+ $blog_id = $site['blog_id'];
28
 
29
  $install = $VARS['install'];
30
  $is_registered = ! empty( $install );
31
  $license = null;
32
  $trial_plan = $fs->get_trial_plan();
33
  $free_text = fs_text_inline( 'Free', 'free', $slug );
34
+
35
+ if ( $is_whitelabeled && $fs->is_delegated_connection( $blog_id ) ) {
36
+ $is_whitelabeled = $fs->is_whitelabeled( true, $blog_id );
37
+ }
38
  ?>
39
  <tr class="fs-site-details" data-blog-id="<?php echo $blog_id ?>"<?php if ( $is_registered ) : ?> data-install-id="<?php echo $install->id ?>"<?php endif ?>>
40
  <!-- Install ID or Opt-in option -->
78
  $view_params['is_localhost'] = FS_Site::is_localhost_by_address( $site['url'] );
79
  }
80
 
81
+ if ( ! $is_whitelabeled ) {
82
+ if ( is_object( $license ) ) {
83
+ $view_params['license'] = $license;
84
 
85
+ // Show license deactivation button.
86
+ fs_require_template( 'account/partials/deactivate-license-button.php', $view_params );
 
 
 
 
87
  } else {
88
+ if ( is_object( $main_license ) && $main_license->can_activate( $view_params['is_localhost'] ) ) {
89
+ // Main license is available for activation.
90
+ $available_license = $main_license;
91
+ } else {
92
+ // Try to find any available license for activation.
93
+ $available_license = $fs->_get_available_premium_license( $view_params['is_localhost'] );
94
+ }
95
 
96
+ if ( is_object( $available_license ) ) {
97
+ $premium_plan = $fs->_get_plan_by_id( $available_license->plan_id );
98
 
99
+ $view_params['license'] = $available_license;
100
+ $view_params['class'] .= ' button-primary';
101
+ $view_params['plan'] = $premium_plan;
102
 
103
+ fs_require_template( 'account/partials/activate-license-button.php', $view_params );
104
+ }
105
  }
106
  }
107
  } ?></td>
114
  $plan_title = $free_text;
115
  } else {
116
  if ( $install->is_trial() ) {
117
+ if ( is_object( $trial_plan ) && $trial_plan->id == $install->trial_plan_id ) {
118
  $plan_title = is_string( $trial_plan->name ) ?
119
  strtoupper( $trial_plan->title ) :
120
  fs_text_inline( 'Trial', 'trial', $slug );
239
  <nobr><?php fs_esc_html_echo_inline( 'Secret Key', 'secret-key', $slug ) ?>:</nobr>
240
  </td>
241
  <td>
242
+ <code><?php echo FS_Plugin_License::mask_secret_key_for_html( $install->secret_key ) ?></code>
243
+ <?php if ( ! $is_whitelabeled ) : ?>
244
  <input type="text" value="<?php echo htmlspecialchars( $install->secret_key ) ?>"
245
  style="display: none" readonly/></td>
246
+ <?php endif ?>
247
+ <?php if ( ! $is_whitelabeled ) : ?>
248
  <td><button class="button button-small fs-toggle-visibility"><?php fs_esc_html_echo_x_inline( 'Show', 'verb', 'show', $slug ) ?></button></td>
249
+ <?php endif ?>
250
  </tr>
251
  <?php $row_index ++ ?>
252
  <!--/ Secret Key -->
260
  <nobr><?php fs_esc_html_echo_inline( 'License Key', 'license-key', $slug ) ?>:</nobr>
261
  </td>
262
  <td>
263
+ <code><?php echo $license->get_html_escaped_masked_secret_key() ?></code>
264
+ <?php if ( ! $is_whitelabeled ) : ?>
265
  <input type="text" value="<?php echo htmlspecialchars( $license->secret_key ) ?>"
266
  style="display: none" readonly/></td>
267
+ <?php endif ?>
268
+ <?php if ( ! $is_whitelabeled ) : ?>
269
  <td>
270
  <button class="button button-small fs-toggle-visibility"><?php fs_esc_html_echo_x_inline( 'Show', 'verb', 'show', $slug ) ?></button>
271
  <button class="button button-small activate-license-trigger <?php echo $fs->get_unique_affix() ?>"><?php fs_esc_html_echo_inline( 'Change License', 'change-license', $slug ) ?></button>
272
  </td>
273
+ <?php endif ?>
274
  </tr>
275
  <?php $row_index ++ ?>
276
  <!--/ License Key -->
311
  $downgrading_plan_text = fs_text_inline( 'Downgrading your plan', 'downgrading-plan', $slug );
312
  $cancelling_subscription_text = fs_text_inline( 'Cancelling the subscription', 'cancelling-subscription', $slug );
313
  /* translators: %1$s: Either 'Downgrading your plan' or 'Cancelling the subscription' */
314
+ $downgrade_x_confirm_text = fs_text_inline( '%1$s will immediately stop all future recurring payments and your %2$s plan license will expire in %3$s.', 'downgrade-x-confirm', $slug );
315
  $prices_increase_text = fs_text_inline( 'Please note that we will not be able to grandfather outdated pricing for renewals/new subscriptions after a cancellation. If you choose to renew the subscription manually in the future, after a price increase, which typically occurs once a year, you will be charged the updated price.', 'pricing-increase-warning', $slug );
316
  $after_downgrade_non_blocking_text = fs_text_inline( 'You can still enjoy all %s features but you will not have access to %s security & feature updates, nor support.', 'after-downgrade-non-blocking', $slug );
317
  $after_downgrade_blocking_text = fs_text_inline( 'Once your license expires you can still use the Free version but you will NOT have access to the %s features.', 'after-downgrade-blocking', $slug );
freemius/templates/account/payments.php CHANGED
@@ -47,7 +47,7 @@
47
  <td><?php echo $payment->formatted_gross() ?></td>
48
  <td><?php if (! $payment->is_migrated() ) : ?><a href="<?php echo $fs->_get_invoice_api_url( $payment->id ) ?>"
49
  class="button button-small"
50
- target="_blank"><?php fs_esc_html_echo_inline( 'Invoice', 'invoice', $slug ) ?></a><?php endif ?></td>
51
  </tr>
52
  <?php $odd = ! $odd; endforeach ?>
53
  </tbody>
47
  <td><?php echo $payment->formatted_gross() ?></td>
48
  <td><?php if (! $payment->is_migrated() ) : ?><a href="<?php echo $fs->_get_invoice_api_url( $payment->id ) ?>"
49
  class="button button-small"
50
+ target="_blank" rel="noopener"><?php fs_esc_html_echo_inline( 'Invoice', 'invoice', $slug ) ?></a><?php endif ?></td>
51
  </tr>
52
  <?php $odd = ! $odd; endforeach ?>
53
  </tbody>
freemius/templates/add-ons.php CHANGED
@@ -22,6 +22,9 @@
22
 
23
  $open_addon = false;
24
 
 
 
 
25
  /**
26
  * @var FS_Plugin[]
27
  */
@@ -52,7 +55,7 @@
52
  <h3><?php echo esc_html( sprintf(
53
  '%s... %s',
54
  fs_text_x_inline( 'Oops', 'exclamation', 'oops', $slug ),
55
- fs_text_inline( 'We could\'nt load the add-ons list. It\'s probably an issue on our side, please try to come back in few minutes.', 'add-ons-missing', $slug )
56
  ) ) ?></h3>
57
  <?php endif ?>
58
  <ul class="fs-cards-list">
@@ -62,11 +65,52 @@
62
 
63
  $active_plugins_directories_map = Freemius::get_active_plugins_directories_map( $fs_blog_id );
64
  ?>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
65
  <?php foreach ( $addons as $addon ) : ?>
66
  <?php
67
  $basename = $fs->get_addon_basename( $addon->id );
68
 
69
  $is_addon_installed = file_exists( fs_normalize_path( WP_PLUGIN_DIR . '/' . $basename ) );
 
 
 
 
 
70
  $is_addon_activated = $is_addon_installed ?
71
  $fs->is_addon_activated( $addon->id ) :
72
  false;
@@ -103,9 +147,21 @@
103
 
104
  $min_price = 999999;
105
  foreach ( $plan->pricing as $pricing ) {
106
- if ( ! is_null( $pricing->annual_price ) && $pricing->annual_price > 0 ) {
 
 
 
 
 
 
 
 
 
 
 
 
107
  $min_price = min( $min_price, $pricing->annual_price );
108
- } else if ( ! is_null( $pricing->monthly_price ) && $pricing->monthly_price > 0 ) {
109
  $min_price = min( $min_price, 12 * $pricing->monthly_price );
110
  }
111
  }
@@ -181,6 +237,9 @@
181
  <li class="fs-offer">
182
  <span
183
  class="fs-price"><?php
 
 
 
184
  $descriptors = array();
185
 
186
  if ($has_free_plan)
@@ -190,7 +249,9 @@
190
  if ($has_trial)
191
  $descriptors[] = fs_text_x_inline( 'Trial', 'trial period', 'trial', $slug );
192
 
193
- echo implode(' - ', $descriptors) ?></span>
 
 
194
  </li>
195
  <li class="fs-description"><?php echo ! empty( $addon->info->short_description ) ? $addon->info->short_description : 'SHORT DESCRIPTION' ?></li>
196
  <?php
@@ -271,11 +332,11 @@
271
  }
272
  ?>
273
  <?php else : ?>
274
- <a target="_blank" class="button button-primary" href="<?php echo $latest_download_local_url ?>"><?php echo esc_html( $download_latest_text ) ?></a>
275
  <?php endif ?>
276
  <div class="button button-primary fs-dropdown-arrow-button"><span class="fs-dropdown-arrow"></span><ul class="fs-dropdown-list" style="display: none">
277
  <?php if ( $is_allowed_to_install && ! empty( $latest_download_local_url ) ) : ?>
278
- <li><a target="_blank" href="<?php echo $latest_download_local_url ?>"><?php echo esc_html( $download_latest_text ) ?></a></li>
279
  <?php endif ?>
280
  <li><?php
281
  echo sprintf(
22
 
23
  $open_addon = false;
24
 
25
+ $is_data_debug_mode = $fs->is_data_debug_mode();
26
+ $is_whitelabeled = $fs->is_whitelabeled();
27
+
28
  /**
29
  * @var FS_Plugin[]
30
  */
55
  <h3><?php echo esc_html( sprintf(
56
  '%s... %s',
57
  fs_text_x_inline( 'Oops', 'exclamation', 'oops', $slug ),
58
+ fs_text_inline( 'We couldn\'t load the add-ons list. It\'s probably an issue on our side, please try to come back in few minutes.', 'add-ons-missing', $slug )
59
  ) ) ?></h3>
60
  <?php endif ?>
61
  <ul class="fs-cards-list">
65
 
66
  $active_plugins_directories_map = Freemius::get_active_plugins_directories_map( $fs_blog_id );
67
  ?>
68
+ <?php
69
+ $hide_all_addons_data = false;
70
+
71
+ if ( $fs->is_whitelabeled_by_flag() ) {
72
+ $hide_all_addons_data = true;
73
+
74
+ $addon_ids = $fs->get_updated_account_addons();
75
+ $installed_addons = $fs->get_installed_addons();
76
+ foreach ( $installed_addons as $fs_addon ) {
77
+ $addon_ids[] = $fs_addon->get_id();
78
+ }
79
+
80
+ if ( ! empty( $addon_ids ) ) {
81
+ $addon_ids = array_unique( $addon_ids );
82
+ }
83
+
84
+ foreach ( $addon_ids as $addon_id ) {
85
+ $addon = $fs->get_addon( $addon_id );
86
+
87
+ if ( ! is_object( $addon ) ) {
88
+ continue;
89
+ }
90
+
91
+ $addon_storage = FS_Storage::instance( WP_FS__MODULE_TYPE_PLUGIN, $addon->slug );
92
+
93
+ if ( ! $addon_storage->is_whitelabeled ) {
94
+ $hide_all_addons_data = false;
95
+ break;
96
+ }
97
+
98
+ if ( $is_data_debug_mode ) {
99
+ $is_whitelabeled = false;
100
+ }
101
+ }
102
+ }
103
+ ?>
104
  <?php foreach ( $addons as $addon ) : ?>
105
  <?php
106
  $basename = $fs->get_addon_basename( $addon->id );
107
 
108
  $is_addon_installed = file_exists( fs_normalize_path( WP_PLUGIN_DIR . '/' . $basename ) );
109
+
110
+ if ( ! $is_addon_installed && $hide_all_addons_data ) {
111
+ continue;
112
+ }
113
+
114
  $is_addon_activated = $is_addon_installed ?
115
  $fs->is_addon_activated( $addon->id ) :
116
  false;
147
 
148
  $min_price = 999999;
149
  foreach ( $plan->pricing as $pricing ) {
150
+ $pricing = new FS_Pricing( $pricing );
151
+
152
+ if ( ! $pricing->is_usd() ) {
153
+ /**
154
+ * Skip non-USD pricing.
155
+ *
156
+ * @author Leo Fajardo (@leorw)
157
+ * @since 2.3.1
158
+ */
159
+ continue;
160
+ }
161
+
162
+ if ( $pricing->has_annual() ) {
163
  $min_price = min( $min_price, $pricing->annual_price );
164
+ } else if ( $pricing->has_monthly() ) {
165
  $min_price = min( $min_price, 12 * $pricing->monthly_price );
166
  }
167
  }
237
  <li class="fs-offer">
238
  <span
239
  class="fs-price"><?php
240
+ if ( $is_whitelabeled ) {
241
+ echo '&nbsp;';
242
+ } else {
243
  $descriptors = array();
244
 
245
  if ($has_free_plan)
249
  if ($has_trial)
250
  $descriptors[] = fs_text_x_inline( 'Trial', 'trial period', 'trial', $slug );
251
 
252
+ echo implode(' - ', $descriptors);
253
+
254
+ } ?></span>
255
  </li>
256
  <li class="fs-description"><?php echo ! empty( $addon->info->short_description ) ? $addon->info->short_description : 'SHORT DESCRIPTION' ?></li>
257
  <?php
332
  }
333
  ?>
334
  <?php else : ?>
335
+ <a target="_blank" rel="noopener" class="button button-primary" href="<?php echo $latest_download_local_url ?>"><?php echo esc_html( $download_latest_text ) ?></a>
336
  <?php endif ?>
337
  <div class="button button-primary fs-dropdown-arrow-button"><span class="fs-dropdown-arrow"></span><ul class="fs-dropdown-list" style="display: none">
338
  <?php if ( $is_allowed_to_install && ! empty( $latest_download_local_url ) ) : ?>
339
+ <li><a target="_blank" rel="noopener" href="<?php echo $latest_download_local_url ?>"><?php echo esc_html( $download_latest_text ) ?></a></li>
340
  <?php endif ?>
341
  <li><?php
342
  echo sprintf(
freemius/templates/auto-installation.php CHANGED
@@ -93,7 +93,7 @@
93
  fs_esc_html_inline( 'An automated download and installation of %s (paid version) from %s will start in %s. If you would like to do it manually - click the cancellation button now.', 'installing-in-n', $slug ),
94
  $plugin_title,
95
  sprintf(
96
- '<a href="%s" target="_blank">%s</a>',
97
  'https://freemius.com',
98
  'freemius.com'
99
  ),
93
  fs_esc_html_inline( 'An automated download and installation of %s (paid version) from %s will start in %s. If you would like to do it manually - click the cancellation button now.', 'installing-in-n', $slug ),
94
  $plugin_title,
95
  sprintf(
96
+ '<a href="%s" target="_blank" rel="noopener">%s</a>',
97
  'https://freemius.com',
98
  'freemius.com'
99
  ),
freemius/templates/connect.php CHANGED
@@ -40,8 +40,8 @@
40
 
41
  $freemius_site_www = 'https://freemius.com';
42
 
43
- $freemius_usage_tracking_url = $freemius_site_www . '/wordpress/usage-tracking/' . $fs->get_id() . "/{$slug}/";
44
- $freemius_plugin_terms_url = $freemius_site_www . '/terms/' . $fs->get_id() . "/{$slug}/";
45
 
46
  $freemius_site_url = $fs->is_premium() ?
47
  $freemius_site_www :
@@ -54,7 +54,7 @@
54
  ) );
55
  }
56
 
57
- $freemius_link = '<a href="' . $freemius_site_url . '" target="_blank" tabindex="1">freemius.com</a>';
58
 
59
  $error = fs_request_get( 'error' );
60
 
@@ -72,7 +72,7 @@
72
  $is_optin_dialog = (
73
  $fs->is_theme() &&
74
  $fs->is_themes_page() &&
75
- ( ! $fs->has_settings_menu() || $fs->is_free_wp_org_theme() )
76
  );
77
 
78
  if ( $is_optin_dialog ) {
@@ -131,6 +131,14 @@
131
  ?>
132
  <?php
133
  }
 
 
 
 
 
 
 
 
134
  ?>
135
  <div id="fs_connect"
136
  class="wrap<?php if ( ! fs_is_network_admin() && ( ! $fs->is_enable_anonymous() || $is_pending_activation || $require_license_key ) ) {
@@ -214,13 +222,13 @@
214
  esc_html( $default_optin_message ),
215
  '<b>' . esc_html( $fs->get_plugin_name() ) . '</b>',
216
  '<b>' . $current_user->user_login . '</b>',
217
- '<a href="' . $site_url . '" target="_blank">' . $site_url . '</a>',
218
  $freemius_link
219
  ),
220
  $first_name,
221
  $fs->get_plugin_name(),
222
  $current_user->user_login,
223
- '<a href="' . $site_url . '" target="_blank">' . $site_url . '</a>',
224
  $freemius_link,
225
  $is_gdpr_required
226
  );
@@ -322,6 +330,7 @@
322
  <input type="hidden" name="fs_action"
323
  value="<?php echo $fs->get_unique_affix() ?>_activate_existing">
324
  <?php wp_nonce_field( 'activate_existing_' . $fs->get_public_key() ) ?>
 
325
  <button class="button button-primary" tabindex="1"
326
  type="submit"><?php echo esc_html( $button_label ) ?></button>
327
  </form>
@@ -331,6 +340,7 @@
331
  <?php foreach ( $optin_params as $name => $value ) : ?>
332
  <input type="hidden" name="<?php echo $name ?>" value="<?php echo esc_attr( $value ) ?>">
333
  <?php endforeach ?>
 
334
  <button class="button button-primary" tabindex="1"
335
  type="submit"<?php if ( $require_license_key ) {
336
  echo ' disabled="disabled"';
@@ -340,31 +350,42 @@
340
  </div><?php
341
 
342
  // Set core permission list items.
343
- $permissions = array(
344
- 'profile' => array(
 
 
 
 
 
 
 
 
345
  'icon-class' => 'dashicons dashicons-admin-users',
346
  'label' => $fs->get_text_inline( 'Your Profile Overview', 'permissions-profile' ),
347
  'desc' => $fs->get_text_inline( 'Name and email address', 'permissions-profile_desc' ),
348
  'priority' => 5,
349
- ),
350
- 'site' => array(
351
- 'icon-class' => 'dashicons dashicons-admin-settings',
352
- 'label' => $fs->get_text_inline( 'Your Site Overview', 'permissions-site' ),
353
- 'desc' => $fs->get_text_inline( 'Site URL, WP version, PHP info, plugins & themes', 'permissions-site_desc' ),
354
- 'priority' => 10,
355
- ),
356
- 'notices' => array(
357
- 'icon-class' => 'dashicons dashicons-testimonial',
358
- 'label' => $fs->get_text_inline( 'Admin Notices', 'permissions-admin-notices' ),
359
- 'desc' => $fs->get_text_inline( 'Updates, announcements, marketing, no spam', 'permissions-newsletter_desc' ),
360
- 'priority' => 13,
361
- ),
362
- 'events' => array(
363
- 'icon-class' => 'dashicons dashicons-admin-plugins',
364
- 'label' => sprintf( $fs->get_text_inline( 'Current %s Events', 'permissions-events' ), ucfirst( $fs->get_module_type() ) ),
365
- 'desc' => $fs->get_text_inline( 'Activation, deactivation and uninstall', 'permissions-events_desc' ),
366
- 'priority' => 20,
367
- ),
 
 
 
368
  );
369
 
370
  // Add newsletter permissions if enabled.
@@ -377,6 +398,15 @@
377
  );
378
  }
379
 
 
 
 
 
 
 
 
 
 
380
  // Allow filtering of the permissions list.
381
  $permissions = $fs->apply_filters( 'permission_list', $permissions );
382
 
@@ -399,8 +429,13 @@
399
  <li id="fs-permission-<?php echo esc_attr( $id ); ?>"
400
  class="fs-permission fs-<?php echo esc_attr( $id ); ?>">
401
  <i class="<?php echo esc_attr( $permission['icon-class'] ); ?>"></i>
 
 
 
 
 
402
 
403
- <div>
404
  <span><?php echo esc_html( $permission['label'] ); ?></span>
405
 
406
  <p><?php echo esc_html( $permission['desc'] ); ?></p>
@@ -424,13 +459,21 @@
424
  </div>
425
  <?php endif ?>
426
  <div class="fs-terms">
427
- <a href="https://freemius.com/privacy/" target="_blank"
428
  tabindex="1"><?php fs_esc_html_echo_inline( 'Privacy Policy', 'privacy-policy', $slug ) ?></a>
429
  &nbsp;&nbsp;-&nbsp;&nbsp;
430
- <a href="<?php echo $require_license_key ? $freemius_plugin_terms_url : $freemius_usage_tracking_url ?>" target="_blank" tabindex="1"><?php $require_license_key ? fs_echo_inline( 'License Agreement', 'license-agreement', $slug ) : fs_echo_inline( 'Terms of Service', 'tos', $slug ) ?></a>
431
  </div>
432
  </div>
433
  <?php
 
 
 
 
 
 
 
 
434
  if ( $is_optin_dialog ) { ?>
435
  </div>
436
  <?php
@@ -659,6 +702,10 @@
659
  var ajaxOptin = ( requireLicenseKey || isNetworkActive );
660
 
661
  $form.on('submit', function () {
 
 
 
 
662
  /**
663
  * @author Vova Feldman (@svovaf)
664
  * @since 1.1.9
@@ -711,6 +758,8 @@
711
  }
712
 
713
  data.is_marketing_allowed = isMarketingAllowed;
 
 
714
  }
715
 
716
  $marketingOptin.removeClass( 'error' );
@@ -813,6 +862,12 @@
813
  return false;
814
  });
815
 
 
 
 
 
 
 
816
  if (requireLicenseKey) {
817
  /**
818
  * Submit license key on enter.
40
 
41
  $freemius_site_www = 'https://freemius.com';
42
 
43
+ $freemius_usage_tracking_url = $fs->get_usage_tracking_terms_url();
44
+ $freemius_plugin_terms_url = $fs->get_eula_url();
45
 
46
  $freemius_site_url = $fs->is_premium() ?
47
  $freemius_site_www :
54
  ) );
55
  }
56
 
57
+ $freemius_link = '<a href="' . $freemius_site_url . '" target="_blank" rel="noopener" tabindex="1">freemius.com</a>';
58
 
59
  $error = fs_request_get( 'error' );
60
 
72
  $is_optin_dialog = (
73
  $fs->is_theme() &&
74
  $fs->is_themes_page() &&
75
+ $fs->show_opt_in_on_themes_page()
76
  );
77
 
78
  if ( $is_optin_dialog ) {
131
  ?>
132
  <?php
133
  }
134
+
135
+ /**
136
+ * Allows developers to include custom HTML before the opt-in content.
137
+ *
138
+ * @author Vova Feldman
139
+ * @since 2.3.2
140
+ */
141
+ $fs->do_action( 'connect/before' );
142
  ?>
143
  <div id="fs_connect"
144
  class="wrap<?php if ( ! fs_is_network_admin() && ( ! $fs->is_enable_anonymous() || $is_pending_activation || $require_license_key ) ) {
222
  esc_html( $default_optin_message ),
223
  '<b>' . esc_html( $fs->get_plugin_name() ) . '</b>',
224
  '<b>' . $current_user->user_login . '</b>',
225
+ '<a href="' . $site_url . '" target="_blank" rel="noopener noreferrer">' . $site_url . '</a>',
226
  $freemius_link
227
  ),
228
  $first_name,
229
  $fs->get_plugin_name(),
230
  $current_user->user_login,
231
+ '<a href="' . $site_url . '" target="_blank" rel="noopener noreferrer">' . $site_url . '</a>',
232
  $freemius_link,
233
  $is_gdpr_required
234
  );
330
  <input type="hidden" name="fs_action"
331
  value="<?php echo $fs->get_unique_affix() ?>_activate_existing">
332
  <?php wp_nonce_field( 'activate_existing_' . $fs->get_public_key() ) ?>
333
+ <input type="hidden" name="is_extensions_tracking_allowed" value="1">
334
  <button class="button button-primary" tabindex="1"
335
  type="submit"><?php echo esc_html( $button_label ) ?></button>
336
  </form>
340
  <?php foreach ( $optin_params as $name => $value ) : ?>
341
  <input type="hidden" name="<?php echo $name ?>" value="<?php echo esc_attr( $value ) ?>">
342
  <?php endforeach ?>
343
+ <input type="hidden" name="is_extensions_tracking_allowed" value="1">
344
  <button class="button button-primary" tabindex="1"
345
  type="submit"<?php if ( $require_license_key ) {
346
  echo ' disabled="disabled"';
350
  </div><?php
351
 
352
  // Set core permission list items.
353
+ $permissions = array();
354
+
355
+ /**
356
+ * When activating a license key the information of the admin is not collected, we gather the user info from the license.
357
+ *
358
+ * @since 2.3.2
359
+ * @author Vova Feldman
360
+ */
361
+ if ( ! $require_license_key ) {
362
+ $permissions['profile'] = array(
363
  'icon-class' => 'dashicons dashicons-admin-users',
364
  'label' => $fs->get_text_inline( 'Your Profile Overview', 'permissions-profile' ),
365
  'desc' => $fs->get_text_inline( 'Name and email address', 'permissions-profile_desc' ),
366
  'priority' => 5,
367
+ );
368
+ }
369
+
370
+ $permissions['site'] = array(
371
+ 'icon-class' => 'dashicons dashicons-admin-settings',
372
+ 'label' => $fs->get_text_inline( 'Your Site Overview', 'permissions-site' ),
373
+ 'desc' => $fs->get_text_inline( 'Site URL, WP version, PHP info', 'permissions-site_desc' ),
374
+ 'priority' => 10,
375
+ );
376
+
377
+ $permissions['notices'] = array(
378
+ 'icon-class' => 'dashicons dashicons-testimonial',
379
+ 'label' => $fs->get_text_inline( 'Admin Notices', 'permissions-admin-notices' ),
380
+ 'desc' => $fs->get_text_inline( 'Updates, announcements, marketing, no spam', 'permissions-newsletter_desc' ),
381
+ 'priority' => 13,
382
+ );
383
+
384
+ $permissions['events'] = array(
385
+ 'icon-class' => 'dashicons dashicons-admin-' . ( $fs->is_plugin() ? 'plugins' : 'appearance' ),
386
+ 'label' => sprintf( $fs->get_text_inline( 'Current %s Events', 'permissions-events' ), ucfirst( $fs->get_module_type() ) ),
387
+ 'desc' => $fs->get_text_inline( 'Activation, deactivation and uninstall', 'permissions-events_desc' ),
388
+ 'priority' => 20,
389
  );
390
 
391
  // Add newsletter permissions if enabled.
398
  );
399
  }
400
 
401
+ $permissions['extensions'] = array(
402
+ 'icon-class' => 'dashicons dashicons-menu',
403
+ 'label' => $fs->get_text_inline( 'Plugins & Themes', 'permissions-extensions' ),
404
+ 'desc' => $fs->get_text_inline( 'Title, slug, version, and is active', 'permissions-extensions_desc' ),
405
+ 'priority' => 25,
406
+ 'optional' => true,
407
+ 'default' => $fs->apply_filters( 'permission_extensions_default', true )
408
+ );
409
+
410
  // Allow filtering of the permissions list.
411
  $permissions = $fs->apply_filters( 'permission_list', $permissions );
412
 
429
  <li id="fs-permission-<?php echo esc_attr( $id ); ?>"
430
  class="fs-permission fs-<?php echo esc_attr( $id ); ?>">
431
  <i class="<?php echo esc_attr( $permission['icon-class'] ); ?>"></i>
432
+ <?php if ( isset( $permission['optional'] ) && true === $permission['optional'] ) : ?>
433
+ <div class="fs-switch fs-small fs-round fs-<?php echo (! isset( $permission['default'] ) || true === $permission['default'] ) ? 'on' : 'off' ?>">
434
+ <div class="fs-toggle"></div>
435
+ </div>
436
+ <?php endif ?>
437
 
438
+ <div class="fs-permission-description">
439
  <span><?php echo esc_html( $permission['label'] ); ?></span>
440
 
441
  <p><?php echo esc_html( $permission['desc'] ); ?></p>
459
  </div>
460
  <?php endif ?>
461
  <div class="fs-terms">
462
+ <a href="https://freemius.com/privacy/" target="_blank" rel="noopener"
463
  tabindex="1"><?php fs_esc_html_echo_inline( 'Privacy Policy', 'privacy-policy', $slug ) ?></a>
464
  &nbsp;&nbsp;-&nbsp;&nbsp;
465
+ <a href="<?php echo $require_license_key ? $freemius_plugin_terms_url : $freemius_usage_tracking_url ?>" target="_blank" rel="noopener" tabindex="1"><?php $require_license_key ? fs_echo_inline( 'License Agreement', 'license-agreement', $slug ) : fs_echo_inline( 'Terms of Service', 'tos', $slug ) ?></a>
466
  </div>
467
  </div>
468
  <?php
469
+ /**
470
+ * Allows developers to include custom HTML after the opt-in content.
471
+ *
472
+ * @author Vova Feldman
473
+ * @since 2.3.2
474
+ */
475
+ $fs->do_action( 'connect/after' );
476
+
477
  if ( $is_optin_dialog ) { ?>
478
  </div>
479
  <?php
702
  var ajaxOptin = ( requireLicenseKey || isNetworkActive );
703
 
704
  $form.on('submit', function () {
705
+ var isExtensionsTrackingAllowed = $( '#fs-permission-extensions .fs-switch' ).hasClass( 'fs-on' );
706
+
707
+ $( 'input[name=is_extensions_tracking_allowed]' ).val( isExtensionsTrackingAllowed ? 1 : 0 );
708
+
709
  /**
710
  * @author Vova Feldman (@svovaf)
711
  * @since 1.1.9
758
  }
759
 
760
  data.is_marketing_allowed = isMarketingAllowed;
761
+
762
+ data.is_extensions_tracking_allowed = isExtensionsTrackingAllowed;
763
  }
764
 
765
  $marketingOptin.removeClass( 'error' );
862
  return false;
863
  });
864
 
865
+ $( '.fs-switch' ).click( function () {
866
+ $(this)
867
+ .toggleClass( 'fs-on' )
868
+ .toggleClass( 'fs-off' );
869
+ });
870
+
871
  if (requireLicenseKey) {
872
  /**
873
  * Submit license key on enter.
freemius/templates/debug.php CHANGED
@@ -21,27 +21,25 @@
21
  <div>
22
  <!-- Debugging Switch -->
23
  <?php //$debug_mode = get_option( 'fs_debug_mode', null ) ?>
24
- <span class="switch-label"><?php fs_esc_html_echo_x_inline( 'Debugging', 'as code debugging' ) ?></span>
25
 
26
- <div class="switch <?php echo WP_FS__DEBUG_SDK ? 'off' : 'on' ?>">
27
- <div class="toggle"></div>
28
- <span class="on"><?php echo esc_html( $on_text ) ?></span>
29
- <span class="off"><?php echo esc_html( $off_text ) ?></span>
30
  </div>
31
  <script type="text/javascript">
32
  (function ($) {
33
  $(document).ready(function () {
34
  // Switch toggle
35
- $('.switch').click(function () {
36
- $(this)
37
- .toggleClass('on')
38
- .toggleClass('off');
39
 
40
- $.post(ajaxurl, {
41
  action: 'fs_toggle_debug_mode',
42
- is_on : ($(this).hasClass('off') ? 1 : 0)
43
- }, function (response) {
44
- if (1 == response) {
45
  // Refresh page on success.
46
  location.reload();
47
  }
@@ -229,7 +227,7 @@
229
  ?>
230
 
231
  <?php foreach ( $module_types as $module_type ) : ?>
232
- <?php $modules = $fs_options->get_option( $module_type . 's' ) ?>
233
  <?php if ( is_array( $modules ) && count( $modules ) > 0 ) : ?>
234
  <h2><?php echo esc_html( ( WP_FS__MODULE_TYPE_PLUGIN == $module_type ) ? fs_text_inline( 'Plugins', 'plugins' ) : fs_text_inline( 'Themes', 'themes' ) ) ?></h2>
235
  <table id="fs_<?php echo $module_type ?>" class="widefat">
@@ -352,7 +350,6 @@
352
 
353
  $is_multisite = is_multisite();
354
  $all_plans = false;
355
- $plans = false;
356
  ?>
357
  <?php if ( is_array( $sites_map ) && count( $sites_map ) > 0 ) : ?>
358
  <h2><?php echo esc_html( sprintf(
@@ -370,6 +367,7 @@
370
  <?php endif ?>
371
  <th><?php fs_esc_html_echo_inline( 'Slug' ) ?></th>
372
  <th><?php fs_esc_html_echo_inline( 'User ID' ) ?></th>
 
373
  <th><?php fs_esc_html_echo_x_inline( 'Plan', 'as product pricing plan', 'plan' ) ?></th>
374
  <th><?php fs_esc_html_echo_inline( 'Public Key' ) ?></th>
375
  <th><?php fs_esc_html_echo_inline( 'Secret Key' ) ?></th>
@@ -390,6 +388,7 @@
390
  <?php endif ?>
391
  <td><?php echo $slug ?></td>
392
  <td><?php echo $site->user_id ?></td>
 
393
  <td><?php
394
  $plan_name = '';
395
  if ( FS_Plugin_Plan::is_valid_id( $site->plan_id ) ) {
@@ -399,14 +398,10 @@
399
  $option_name = $module_type . '_' . $option_name;
400
  }
401
 
402
- $all_plans = $fs_options->get_option( $option_name, array() );
403
- }
404
-
405
- if ( false === $plans ) {
406
- $plans = $all_plans[ $slug ];
407
  }
408
 
409
- foreach ( $plans as $plan ) {
410
  $plan_id = Freemius::_decrypt( $plan->id );
411
 
412
  if ( $site->plan_id == $plan_id ) {
@@ -419,7 +414,13 @@
419
  echo $plan_name;
420
  ?></td>
421
  <td><?php echo $site->public_key ?></td>
422
- <td><?php echo esc_html( $site->secret_key ) ?></td>
 
 
 
 
 
 
423
  <td>
424
  <form action="" method="POST">
425
  <input type="hidden" name="fs_action" value="delete_install">
@@ -478,7 +479,22 @@
478
  /**
479
  * @var FS_User[] $users
480
  */
481
- $users = $VARS['users'];
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
482
  ?>
483
  <?php if ( is_array( $users ) && 0 < count( $users ) ) : ?>
484
  <h2><?php fs_esc_html_echo_inline( 'Users' ) ?></h2>
@@ -496,20 +512,27 @@
496
  </thead>
497
  <tbody>
498
  <?php foreach ( $users as $user_id => $user ) : ?>
 
499
  <tr>
500
  <td><?php echo $user->id ?></td>
501
- <td><?php echo $user->get_name() ?></td>
502
- <td><a href="mailto:<?php echo esc_attr( $user->email ) ?>"><?php echo $user->email ?></a></td>
503
- <td><?php echo json_encode( $user->is_verified ) ?></td>
 
 
 
 
504
  <td><?php echo $user->public_key ?></td>
505
- <td><?php echo esc_html( $user->secret_key ) ?></td>
506
  <td>
 
507
  <form action="" method="POST">
508
  <input type="hidden" name="fs_action" value="delete_user">
509
  <?php wp_nonce_field( 'delete_user' ) ?>
510
  <input type="hidden" name="user_id" value="<?php echo $user->id ?>">
511
  <button type="submit" c
21
  <div>
22
  <!-- Debugging Switch -->
23
  <?php //$debug_mode = get_option( 'fs_debug_mode', null ) ?>
24
+ <span class="fs-switch-label"><?php fs_esc_html_echo_x_inline( 'Debugging', 'as code debugging' ) ?></span>
25
 
26
+ <div class="fs-switch fs-round <?php echo WP_FS__DEBUG_SDK ? 'fs-on' : 'fs-off' ?>">
27
+ <div class="fs-toggle"></div>
 
 
28
  </div>
29
  <script type="text/javascript">
30
  (function ($) {
31
  $(document).ready(function () {
32
  // Switch toggle
33
+ $( '.fs-switch' ).click( function () {
34
+ $( this )
35
+ .toggleClass( 'fs-on' )
36
+ .toggleClass( 'fs-off' );
37
 
38
+ $.post( ajaxurl, {
39
  action: 'fs_toggle_debug_mode',
40
+ is_on : ($(this).hasClass( 'fs-on' ) ? 1 : 0)
41
+ }, function ( response ) {
42
+ if ( 1 == response ) {
43
  // Refresh page on success.
44
  location.reload();
45
  }
227
  ?>
228
 
229
  <?php foreach ( $module_types as $module_type ) : ?>
230
+ <?php $modules = fs_get_entities( $fs_options->get_option( $module_type . 's' ), FS_Plugin::get_class_name() ) ?>
231
  <?php if ( is_array( $modules ) && count( $modules ) > 0 ) : ?>
232
  <h2><?php echo esc_html( ( WP_FS__MODULE_TYPE_PLUGIN == $module_type ) ? fs_text_inline( 'Plugins', 'plugins' ) : fs_text_inline( 'Themes', 'themes' ) ) ?></h2>
233
  <table id="fs_<?php echo $module_type ?>" class="widefat">
350
 
351
  $is_multisite = is_multisite();
352
  $all_plans = false;
 
353
  ?>
354
  <?php if ( is_array( $sites_map ) && count( $sites_map ) > 0 ) : ?>
355
  <h2><?php echo esc_html( sprintf(
367
  <?php endif ?>
368
  <th><?php fs_esc_html_echo_inline( 'Slug' ) ?></th>
369
  <th><?php fs_esc_html_echo_inline( 'User ID' ) ?></th>
370
+ <th><?php fs_esc_html_echo_inline( 'License ID' ) ?></th>
371
  <th><?php fs_esc_html_echo_x_inline( 'Plan', 'as product pricing plan', 'plan' ) ?></th>
372
  <th><?php fs_esc_html_echo_inline( 'Public Key' ) ?></th>
373
  <th><?php fs_esc_html_echo_inline( 'Secret Key' ) ?></th>
388
  <?php endif ?>
389
  <td><?php echo $slug ?></td>
390
  <td><?php echo $site->user_id ?></td>
391
+ <td><?php echo !empty($site->license_id) ? $site->license_id : '' ?></td>
392
  <td><?php
393
  $plan_name = '';
394
  if ( FS_Plugin_Plan::is_valid_id( $site->plan_id ) ) {
398
  $option_name = $module_type . '_' . $option_name;
399
  }
400
 
401
+ $all_plans = fs_get_entities( $fs_options->get_option( $option_name, array() ), FS_Plugin_Plan::get_class_name() );
 
 
 
 
402
  }
403
 
404
+ foreach ( $all_plans[ $slug ] as $plan ) {
405
  $plan_id = Freemius::_decrypt( $plan->id );
406
 
407
  if ( $site->plan_id == $plan_id ) {
414
  echo $plan_name;
415
  ?></td>
416
  <td><?php echo $site->public_key ?></td>
417
+ <td><?php
418
+ $plugin_storage = FS_Storage::instance( $module_type, $slug );
419
+
420
+ echo $plugin_storage->is_whitelabeled ?
421
+ FS_Plugin_License::mask_secret_key_for_html( $site->secret_key ) :
422
+ esc_html( $site->secret_key );
423
+ ?></td>
424
  <td>
425
  <form action="" method="POST">
426
  <input type="hidden" name="fs_action" value="delete_install">
479
  /**
480
  * @var FS_User[] $users
481
  */
482
+ $users = $VARS['users'];
483
+ $users_with_developer_license_by_id = array();
484
+
485
+ foreach ( $module_types as $module_type ) {
486
+ /**
487
+ * @var FS_Plugin_License[] $licenses
488
+ */
489
+ $licenses = $VARS[ $module_type . '_licenses' ];
490
+
491
+ foreach ( $licenses as $license ) {
492
+ if ( $license->is_whitelabeled ) {
493
+ $users_with_developer_license_by_id[ $license->user_id ] = true;
494
+ }
495
+ }
496
+ }
497
+
498
  ?>
499
  <?php if ( is_array( $users ) && 0 < count( $users ) ) : ?>
500
  <h2><?php fs_esc_html_echo_inline( 'Users' ) ?></h2>
512
  </thead>
513
  <tbody>
514
  <?php foreach ( $users as $user_id => $user ) : ?>
515
+ <?php $has_developer_license = isset( $users_with_developer_license_by_id[ $user_id ] ) ?>
516
  <tr>
517
  <td><?php echo $user->id ?></td>
518
+ <td><?php echo $has_developer_license ? '' : $user->get_name() ?></td>
519
+ <td>
520
+ <?php if ( ! $has_developer_license ) : ?>
521
+ <a href="mailto:<?php echo esc_attr( $user->email ) ?>"><?php echo $user->email ?></a>
522
+ <?php endif ?>
523
+ </td>
524
+ <td><?php echo $has_developer_license ? '' : json_encode( $user->is_verified ) ?></td>
525
  <td><?php echo $user->public_key ?></td>
526
+ <td><?php echo $has_developer_license ? FS_Plugin_License::mask_secret_key_for_html($user->secret_key) : esc_html( $user->secret_key ) ?></td>
527
  <td>
528
+ <?php if ( ! $has_developer_license ) : ?>
529
  <form action="" method="POST">
530
  <input type="hidden" name="fs_action" value="delete_user">
531
  <?php wp_nonce_field( 'delete_user' ) ?>
532
  <input type="hidden" name="user_id" value="<?php echo $user->id ?>">
533
  <button type="submit" c