Real Testimonials - Version 2.4.3

Version Description

  • Jan 20, 2022 =
  • Improved: Settings page with a new layout.
  • Improved: Code improved.
  • Improved: The export-import option improved.
  • Fix: Image width with twenty-twenty-one theme issue.
  • Fix: Carousel navigation accessibility issue.
  • Fix: Some minor issues.
Download this release

Release Info

Developer shapedplugin
Plugin Icon 128x128 Real Testimonials
Version 2.4.3
Comparing to
See all releases

Code changes from version 2.4.2 to 2.4.3

Files changed (73) hide show
  1. admin/assets/css/admin.css +16 -381
  2. admin/assets/css/admin.min.css +1 -1
  3. admin/preview/class-testimonial-free-preview.php +0 -77
  4. admin/views/framework/assets/css/spftestimonial-rtl.css +165 -40
  5. admin/views/framework/assets/css/spftestimonial-rtl.min.css +1 -1
  6. admin/views/framework/assets/css/spftestimonial.css +1848 -1602
  7. admin/views/framework/assets/css/spftestimonial.min.css +1 -1
  8. admin/views/framework/assets/js/spftestimonial-plugins.js +10 -5
  9. admin/views/framework/assets/js/spftestimonial-plugins.min.js +2 -1
  10. admin/views/framework/assets/js/spftestimonial.js +263 -1246
  11. admin/views/framework/assets/js/spftestimonial.min.js +1 -1
  12. admin/views/framework/classes/SPFTESTIMONIAL.php +745 -0
  13. admin/views/framework/classes/abstract.class.php +96 -16
  14. admin/views/framework/classes/customize-options.class.php +0 -406
  15. admin/views/framework/classes/fields.class.php +29 -70
  16. admin/views/framework/classes/metabox.class.php +257 -151
  17. admin/views/framework/classes/options.class.php +165 -166
  18. admin/views/framework/classes/setup.class.php +0 -609
  19. admin/views/framework/classes/widgets.class.php +0 -190
  20. admin/views/framework/fields/accordion/accordion.php +7 -9
  21. admin/views/framework/fields/border/border.php +65 -23
  22. admin/views/framework/fields/button_set/button_set.php +27 -30
  23. admin/views/framework/fields/checkbox/checkbox.php +29 -18
  24. admin/views/framework/fields/code_editor/code_editor.php +16 -23
  25. admin/views/framework/fields/color/color.php +3 -7
  26. admin/views/framework/fields/color_group/color_group.php +5 -6
  27. admin/views/framework/fields/column/column.php +8 -5
  28. admin/views/framework/fields/content/content.php +55 -0
  29. admin/views/framework/fields/custom_import/custom_import.php +7 -4
  30. admin/views/framework/fields/custom_size/custom_size.php +10 -7
  31. admin/views/framework/fields/fieldset/fieldset.php +55 -0
  32. admin/views/framework/fields/form_upper_section/form_upper_section.php +1 -1
  33. admin/views/framework/fields/heading/heading.php +38 -0
  34. admin/views/framework/fields/icon_select/icon_select.php +9 -21
  35. admin/views/framework/fields/image_select/image_select.php +33 -12
  36. admin/views/framework/fields/image_sizes/image_sizes.php +7 -8
  37. admin/views/framework/fields/notice/notice.php +1 -1
  38. admin/views/framework/fields/preview/preview.php +17 -3
  39. admin/views/framework/fields/radio/radio.php +27 -14
  40. admin/views/framework/fields/rating/rating.php +4 -7
  41. admin/views/framework/fields/repeater/repeater.php +18 -25
  42. admin/views/framework/fields/select/select.php +12 -14
  43. admin/views/framework/fields/shortcode/shortcode.php +2 -2
  44. admin/views/framework/fields/sortable/sortable.php +11 -7
  45. admin/views/framework/fields/sorter/sorter.php +98 -0
  46. admin/views/framework/fields/spacing/spacing.php +42 -22
  47. admin/views/framework/fields/spinner/spinner.php +6 -5
  48. admin/views/framework/fields/subheading/subheading.php +1 -1
  49. admin/views/framework/fields/switcher/switcher.php +6 -9
  50. admin/views/framework/fields/text/text.php +2 -2
  51. admin/views/framework/fields/typography/google-fonts.php +0 -992
  52. admin/views/framework/fields/typography/typography.php +119 -90
  53. admin/views/framework/functions/actions.php +170 -35
  54. admin/views/framework/functions/customize.php +0 -165
  55. admin/views/framework/functions/deprecated.php +0 -18
  56. admin/views/framework/functions/helpers.php +30 -74
  57. admin/views/framework/functions/sanitize.php +87 -17
  58. admin/views/framework/functions/validate.php +20 -116
  59. admin/views/testimonial-form.php +1 -1
  60. admin/views/testimonial-metaboxs.php +88 -63
  61. admin/views/testimonial-settings.php +22 -11
  62. admin/views/testimonial-tools.php +9 -6
  63. class/shortcodes.php +14 -14
  64. includes/free/loader.php +0 -1
  65. includes/functions.php +3 -3
  66. public/assets/css/style.css +39 -13
  67. public/assets/css/style.min.css +1 -1
  68. public/assets/js/sp-slick-active.js +6 -2
  69. public/assets/js/sp-slick-active.min.js +1 -1
  70. public/views/scripts.php +16 -12
  71. public/views/shortcoderender.php +9 -20
  72. readme.txt +14 -6
  73. testimonial-free.php +5 -5
admin/assets/css/admin.css CHANGED
@@ -11,7 +11,7 @@
11
  font-weight: 600;
12
  }
13
 
14
- /**f
15
  * 01. 02. Sticky
16
  */
17
  .spt-main-class .spftestimonial-sticky .spftestimonial-header-inner {
@@ -71,21 +71,22 @@
71
  text-transform: uppercase;
72
  padding: 16px 15px;
73
  }
74
- .spt-main-class .spftestimonial-nav ul li .spftestimonial-section-active:after {
75
  display: none;
76
  }
77
- .spt-main-class .spftestimonial-metabox .spftestimonial-nav ul li .spftestimonial-section-active {
78
  color: #444;
79
  background-color: #fff;
80
  box-shadow: 0 3px 0 0 #1595ce inset;
81
  }
82
- .spt-main-class .spftestimonial-metabox .spftestimonial-nav ul li .spftestimonial-section-active .fa {
83
  color: #1595ce;
84
  }
85
  .spt-main-class .spftestimonial-metabox .spftestimonial-nav-background {
86
  display: none;
87
  }
88
 
 
89
  /**
90
  * 02. 02. Theme Light
91
  */
@@ -104,7 +105,7 @@
104
  margin-bottom: 0;
105
  padding: 15px 15px;
106
  }
107
- .spt-main-class.spftestimonial-theme-light .spftestimonial-nav ul li .spftestimonial-section-active {
108
  box-shadow: 3px 0 0 0 #1595ce inset;
109
  background-color: #ffffff;
110
  color: #1595ce;
@@ -117,386 +118,13 @@
117
  border-right: 1px solid #ccd0d4;
118
  }
119
 
120
- /**
121
- * 03. 05. Field: border, spacing, dimensions
122
- */
123
- .spt-main-class .spftestimonial-field-border .spftestimonial--input,
124
- .spt-main-class .spftestimonial-field-spacing .spftestimonial--input,
125
- .spt-main-class .spftestimonial-field-dimensions .spftestimonial--input {
126
- margin-right: 10px;
127
- margin-bottom: 7px;
128
- }
129
- .spt-main-class .spftestimonial-field-border .spftestimonial--input select,
130
- .spt-main-class .spftestimonial-field-spacing .spftestimonial--input select,
131
- .spt-main-class .spftestimonial-field-dimensions .spftestimonial--input select {
132
- line-height: 26px;
133
- }
134
- .spt-main-class .spftestimonial-field-border .spftestimonial--input input,
135
- .spt-main-class .spftestimonial-field-spacing .spftestimonial--input input,
136
- .spt-main-class .spftestimonial-field-dimensions .spftestimonial--input input {
137
- line-height: 30px;
138
- float: left;
139
- padding: 0;
140
- border-radius: 0;
141
- }
142
- .spt-main-class .spftestimonial-field-border .spftestimonial--label,
143
- .spt-main-class .spftestimonial-field-spacing .spftestimonial--label,
144
- .spt-main-class .spftestimonial-field-dimensions .spftestimonial--label {
145
- max-width: 100%;
146
- font-size: 12px;
147
- line-height: 30px;
148
- vertical-align: top;
149
- text-align: center;
150
- color: #555;
151
- border: 1px solid #ddd;
152
- background-color: #eee;
153
- padding: 0 6px;
154
- min-height: 30px;
155
- }
156
- .spt-main-class .spftestimonial-field-border .spftestimonial--label-icon,
157
- .spt-main-class .spftestimonial-field-spacing .spftestimonial--label-icon,
158
- .spt-main-class .spftestimonial-field-dimensions .spftestimonial--label-icon {
159
- min-width: 20px;
160
- border-radius: 2px 0 0 2px;
161
- }
162
- .spt-main-class .spftestimonial-field-border .spftestimonial--label-unit,
163
- .spt-main-class .spftestimonial-field-spacing .spftestimonial--label-unit,
164
- .spt-main-class .spftestimonial-field-dimensions .spftestimonial--label-unit {
165
- color: #999;
166
- border-radius: 0 2px 2px 0;
167
- }
168
-
169
- /**
170
- * 03. 25. Field: spinner
171
- */
172
- .spt-main-class .spftestimonial-field-spinner .spftestimonial--unit {
173
- float: right;
174
- height: 30px;
175
- line-height: 26px;
176
- text-align: center;
177
- border-left: none;
178
- color: #999;
179
- border: 1px solid #ddd;
180
- border-left: 0;
181
- background-color: #eee;
182
- padding: 0 6px;
183
- margin: 0;
184
- box-sizing: border-box;
185
- }
186
- .spt-main-class .spftestimonial-field-spinner .ui-spinner-button {
187
- cursor: pointer;
188
- position: relative;
189
- overflow: hidden;
190
- margin: 0;
191
- padding: 0;
192
- width: 30px;
193
- height: 30px;
194
- line-height: 30px;
195
- text-align: center;
196
- border: 1px solid #ddd;
197
- color: #555;
198
- background-color: #eee;
199
- box-sizing: border-box;
200
- }
201
- .spt-main-class .spftestimonial-field-spinner .ui-spinner-button:before {
202
- font-family: FontAwesome;
203
- font-size: 16px;
204
- line-height: 16px;
205
- }
206
- .spt-main-class .spftestimonial-field-spinner .ui-spinner-down {
207
- float: left;
208
- border-right: 0;
209
- border-radius: 2px 0 0 2px;
210
- box-shadow: 0 0 0;
211
- }
212
- .spt-main-class .spftestimonial-field-spinner .ui-spinner-up {
213
- float: right;
214
- border-left: 0;
215
- border-radius: 0 2px 2px 0;
216
- box-shadow: 0 0 0;
217
- }
218
- .spt-main-class .spftestimonial-field-spinner input {
219
- width: 60px;
220
- text-align: center;
221
- margin: 0;
222
- padding: 0 8px;
223
- height: 31px;
224
- line-height: 31px;
225
- border: 1px solid #ddd;
226
- border-radius: 0;
227
- }
228
- .spt-main-class .spftestimonial-field-spinner input:focus {
229
- outline: none;
230
- }
231
-
232
- /**
233
- * 03. 27. Field: tabbed
234
- */
235
- .spt-main-class .spftestimonial-field-tabbed .spftestimonial-tabbed-section {
236
- border: 1px solid #eee;
237
- }
238
-
239
- /**
240
- * 03. 28. Field: text
241
- */
242
- .spt-main-class .spftestimonial-field-text input,
243
- .spt-main-class .spftestimonial-field-text_f input {
244
- width: 340px;
245
- max-width: 100%;
246
- }
247
-
248
- /**
249
- * 03. 30. Field: typography
250
- */
251
- /* .spt-main-class .spftestimonial-field-typography textarea,
252
- .spt-main-class .spftestimonial-field-typography select {
253
- margin: 0;
254
- width: 100%;
255
- }
256
- .spt-main-class .spftestimonial-field-typography .spftestimonial--title {
257
- color: #999;
258
- margin: 0 0 2px 0;
259
- }
260
- .spt-main-class .spftestimonial-field-typography .spftestimonial--block {
261
- padding-right: 5px;
262
- padding-bottom: 10px;
263
- box-sizing: border-box;
264
- }
265
- .spt-main-class .spftestimonial-field-typography .spftestimonial--block .spftestimonial--block {
266
- padding-right: 0;
267
- padding-bottom: 0;
268
- }
269
- .spt-main-class .spftestimonial-field-typography .spftestimonial--blocks-selects .spftestimonial--block {
270
- flex: 1 33.3%;
271
- }
272
- .spt-main-class .spftestimonial-field-typography .spftestimonial--blocks-inputs .spftestimonial--block {
273
- flex: 1 25%;
274
- }
275
- .spt-main-class .spftestimonial-field-typography .spftestimonial--blocks-inputs .spftestimonial--block .spftestimonial--block {
276
- flex: 1;
277
- }
278
- .spt-main-class .spftestimonial-field-typography .spftestimonial--input {
279
- margin: 0;
280
- width: 100%;
281
- padding: 2px 8px;
282
- border-radius: 4px 0 0 4px;
283
- }
284
- .spt-main-class .spftestimonial-field-typography .spftestimonial--unit {
285
- min-width: 40px;
286
- max-width: 40px;
287
- font-size: 12px;
288
- font-weight: 400;
289
- text-align: center;
290
- color: #777;
291
- border: 1px solid #ddd;
292
- background-color: #eee;
293
- border-radius: 0 2px 2px 0;
294
- border-left: 0;
295
- line-height: 30px;
296
- }
297
- .spt-main-class .spftestimonial-field-typography .spftestimonial--preview {
298
- font-size: 16px;
299
- line-height: 20px;
300
- padding: 20px;
301
- color: #222;
302
- border: 1px solid #eee;
303
- background-color: #fff;
304
- border-radius: 2.5px;
305
- user-select: none;
306
- -webkit-user-select: none;
307
- transition: background-color .2s, border-color .2s;
308
- }
309
- .spt-main-class .spftestimonial-field-typography .spftestimonial--block-preview {
310
- cursor: pointer;
311
- position: relative;
312
- overflow: hidden;
313
- margin-top: 10px;
314
- max-width: 100%;
315
- }
316
- .spt-main-class .spftestimonial-field-typography .spftestimonial--black-background {
317
- border-color: #000;
318
- background-color: #000;
319
- }
320
- .spt-main-class .spftestimonial-field-typography .spftestimonial--toggle {
321
- position: absolute;
322
- top: 5px;
323
- right: 10px;
324
- color: #999;
325
- }
326
- .spt-main-class .spftestimonial-field-typography .spftestimonial--block-extra-styles {
327
- margin-top: 5px;
328
- } */
329
-
330
- /**
331
- * 05. Widget
332
- */
333
-
334
- .spt-main-class .control-section .spftestimonial-field .spftestimonial-title {
335
- margin-bottom: 10px;
336
- }
337
- .spt-main-class .control-section .spftestimonial-field .spftestimonial-title h4 {
338
- font-size: 14px;
339
- }
340
- .spt-main-class .control-section .spftestimonial-field-background .spftestimonial--select {
341
- width: 100%;
342
- }
343
- .spt-main-class .control-section .spftestimonial-field-border select,
344
- .spt-main-class .control-section .spftestimonial-field-spacing select,
345
- .spt-main-class .control-section .spftestimonial-field-dimensions select {
346
- width: auto;
347
- }
348
-
349
-
350
  /**
351
  * 08. Helper
352
  */
353
- .spt-main-class .spftestimonial-text-desc,
354
  .spt-main-class .spftestimonial-text-subtitle {
355
  font-style: italic;
356
  }
357
-
358
- /**
359
- * 11. Responsive
360
- */
361
- @media only screen and (max-width: 1200px) {
362
- .spt-main-class .spftestimonial-metabox .spftestimonial-field .spftestimonial-title {
363
- float: none;
364
- width: 100%;
365
- margin-bottom: 10px;
366
- }
367
- .spt-main-class .spftestimonial-metabox .spftestimonial-field .spftestimonial-fieldset {
368
- margin-left: 0;
369
- }
370
- }
371
- @media only screen and (max-width: 782px) {
372
- .spt-main-class .spftestimonial-header-inner {
373
- text-align: center;
374
- }
375
- .spt-main-class .spftestimonial-header-inner h1 {
376
- width: 100%;
377
- margin-bottom: 10px;
378
- }
379
- .spt-main-class .spftestimonial-search,
380
- .spt-main-class .spftestimonial-header-right,
381
- .spt-main-class .spftestimonial-header-left {
382
- width: 100%;
383
- }
384
- .spt-main-class .spftestimonial-search {
385
- text-align: center;
386
- margin-bottom: 15px;
387
- }
388
- .spt-main-class .spftestimonial-footer {
389
- text-align: center;
390
- }
391
- .spt-main-class .spftestimonial-buttons {
392
- float: none;
393
- }
394
- .spt-main-class .spftestimonial-copyright {
395
- float: none;
396
- margin-top: 10px;
397
- }
398
- .spt-main-class .spftestimonial-nav,
399
- .spt-main-class .spftestimonial-expand-all,
400
- .spt-main-class .spftestimonial-reset-section,
401
- .spt-main-class .spftestimonial-nav-background {
402
- display: none !important;
403
- }
404
-
405
- .spt-main-class .spftestimonial-content {
406
- margin-left: 0;
407
- }
408
-
409
- .spt-main-class .spftestimonial-section-title,
410
- .spt-main-class .spftestimonial-section {
411
- display: block !important;
412
- }
413
-
414
- .spt-main-class .spftestimonial-field .spftestimonial-title {
415
- float: none;
416
- width: 100%;
417
- margin-bottom: 10px;
418
- }
419
- .spt-main-class .spftestimonial-field .spftestimonial-fieldset {
420
- margin-left: 0;
421
- }
422
-
423
- .spt-main-class .spftestimonial-modal-inner {
424
- width: 350px;
425
- height: 380px;
426
- }
427
-
428
- .spt-main-class .spftestimonial-modal-content {
429
- height: 282px;
430
- }
431
-
432
- .spt-main-class .spftestimonial-icon-dialog .spftestimonial-modal-inner {
433
- width: 305px;
434
- height: 380px;
435
- }
436
- .spt-main-class .spftestimonial-icon-dialog .spftestimonial-modal-content {
437
- height: 267px;
438
- }
439
-
440
- .spt-main-class .spftestimonial-modal-icon .spftestimonial-modal-inner {
441
- width: 330px;
442
- height: 385px;
443
- }
444
- .spt-main-class .spftestimonial-modal-icon .spftestimonial-modal-content {
445
- height: 252px;
446
- }
447
-
448
- .spt-main-class .spftestimonial-profile > .spftestimonial-field > .spftestimonial-title {
449
- float: none;
450
- width: 100%;
451
- margin-bottom: 10px;
452
- }
453
- .spt-main-class .spftestimonial-profile > .spftestimonial-field > .spftestimonial-fieldset {
454
- margin-left: 0;
455
- }
456
- }
457
-
458
- /* Rating */
459
- .sp-tpro-client-rating{
460
- float: left;
461
- }
462
- .sp-tpro-client-rating:not(:checked) > input {
463
- visibility:hidden;
464
- display: none;
465
- width:0;
466
- height:0;
467
- float: right;;
468
- top: 100%;
469
- clip: rect(0,0,0,0);
470
- margin: 0;
471
- padding: 0;
472
- border:10px #fff solid;
473
- }
474
- .sp-tpro-client-rating:not(:checked) > label {
475
- float: right;
476
- display: block;
477
- padding: 0;
478
- margin: 0;
479
- cursor: pointer;
480
- font-size: 150%;
481
- line-height: 1.2;
482
- color: #d4d4d4;
483
- width: 1em;
484
- }
485
- .sp-tpro-client-rating > input:checked ~ label {
486
- color: #f3bb00;
487
- }
488
- .sp-tpro-client-rating:not(:checked) > label:hover,
489
- .sp-tpro-client-rating:not(:checked) > label:hover ~ label {
490
- color: #de7202;
491
- }
492
- .sp-tpro-client-rating > input:checked + label:hover,
493
- .sp-tpro-client-rating > input:checked + label:hover ~ label,
494
- .sp-tpro-client-rating > input:checked ~ label:hover,
495
- .sp-tpro-client-rating > input:checked ~ label:hover ~ label,
496
- .sp-tpro-client-rating > label:hover ~ input:checked ~ label {
497
- color: #de7202;
498
- }
499
-
500
  /*ShortCode Area*/
501
  .spftestimonial-metabox .sp-tpro-banner {
502
  background-color:#0a73a7;
@@ -611,7 +239,7 @@
611
  }
612
  .tpro_shortcode .tpro-col-lg-6:last-child {
613
  padding-bottom: 42px;
614
- }
615
  }
616
 
617
 
@@ -1017,4 +645,11 @@ div.sp-tfree-help .sp-tfree-upgrade-sticky-footer a.button{
1017
  .post-type-spt_testimonial #sp_tpro-show-preview,
1018
  .post-type-spt_testimonial_form #sp_tpro-show-preview {
1019
  display: none;
1020
- }
 
 
 
 
 
 
 
11
  font-weight: 600;
12
  }
13
 
14
+ /**
15
  * 01. 02. Sticky
16
  */
17
  .spt-main-class .spftestimonial-sticky .spftestimonial-header-inner {
71
  text-transform: uppercase;
72
  padding: 16px 15px;
73
  }
74
+ .spt-main-class .spftestimonial-nav ul li .spftestimonial-active:after {
75
  display: none;
76
  }
77
+ .spt-main-class .spftestimonial-metabox .spftestimonial-nav ul li .spftestimonial-active {
78
  color: #444;
79
  background-color: #fff;
80
  box-shadow: 0 3px 0 0 #1595ce inset;
81
  }
82
+ .spt-main-class .spftestimonial-metabox .spftestimonial-nav ul li .spftestimonial-active .fa {
83
  color: #1595ce;
84
  }
85
  .spt-main-class .spftestimonial-metabox .spftestimonial-nav-background {
86
  display: none;
87
  }
88
 
89
+
90
  /**
91
  * 02. 02. Theme Light
92
  */
105
  margin-bottom: 0;
106
  padding: 15px 15px;
107
  }
108
+ .spt-main-class.spftestimonial-theme-light .spftestimonial-nav ul li .spftestimonial-active {
109
  box-shadow: 3px 0 0 0 #1595ce inset;
110
  background-color: #ffffff;
111
  color: #1595ce;
118
  border-right: 1px solid #ccd0d4;
119
  }
120
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
121
  /**
122
  * 08. Helper
123
  */
124
+ .spt-main-class .spftestimonial-desc-text,
125
  .spt-main-class .spftestimonial-text-subtitle {
126
  font-style: italic;
127
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
128
  /*ShortCode Area*/
129
  .spftestimonial-metabox .sp-tpro-banner {
130
  background-color:#0a73a7;
239
  }
240
  .tpro_shortcode .tpro-col-lg-6:last-child {
241
  padding-bottom: 42px;
242
+ }
243
  }
244
 
245
 
645
  .post-type-spt_testimonial #sp_tpro-show-preview,
646
  .post-type-spt_testimonial_form #sp_tpro-show-preview {
647
  display: none;
648
+ }
649
+ div#sp_tpro_live_preview {
650
+ padding: 0;
651
+ margin: -7px -13px 6px;
652
+ }
653
+ #sp_tpro_shortcode_options.postbox #sp_tpro_live_preview .postbox-header {
654
+ display: block;
655
+ }
admin/assets/css/admin.min.css CHANGED
@@ -1 +1 @@
1
- .text-center{text-align:center}.spt-main-class .spftestimonial-header-inner h1{color:#444;font-size:22px;font-weight:600}.spt-main-class .spftestimonial-sticky .spftestimonial-header-inner{z-index:20}.spt-main-class .spftestimonial-metabox .spftestimonial-nav{position:inherit;float:none;width:100%;background:#f1f1f1}.spt-main-class .spftestimonial-metabox .spftestimonial-nav ul li{display:inline-block}.spt-main-class .spftestimonial-nav ul li a{text-transform:uppercase;font-weight:600}.spt-main-class .spftestimonial-metabox .spftestimonial-content{margin-left:0}.spt-main-class .spftestimonial-metabox{margin:-6px -12px -12px -12px}.spt-main-class .spftestimonial-metabox .spftestimonial-nav ul li a{background-color:#1595ce;font-size:14px;padding:15px 15px;line-height:1.4;color:#fff;border-right:1px solid #e2e2e1;font-weight:600;border-bottom:0}#sp_tpro_shortcode_options_new .spftestimonial-metabox .spftestimonial-nav ul li a{font-size:13px;text-transform:uppercase;padding:16px 15px}.spt-main-class .spftestimonial-nav ul li .spftestimonial-section-active:after{display:none}.spt-main-class .spftestimonial-metabox .spftestimonial-nav ul li .spftestimonial-section-active{color:#444;background-color:#fff;box-shadow:0 3px 0 0 #1595ce inset}.spt-main-class .spftestimonial-metabox .spftestimonial-nav ul li .spftestimonial-section-active .fa{color:#1595ce}.spt-main-class .spftestimonial-metabox .spftestimonial-nav-background{display:none}.spt-main-class.spftestimonial-theme-light .spftestimonial-container{border:1px solid #ccd0d4}.spt-main-class.spftestimonial-theme-light .spftestimonial-header-inner{border-bottom:1px solid #ccd0d4}.spt-main-class.spftestimonial-theme-light .spftestimonial-nav ul li a{color:#464646;background-color:#f5f5f5;border-top:0;border-right:0;border-bottom:1px solid #ccd0d4!important;margin-bottom:0;padding:15px 15px}.spt-main-class.spftestimonial-theme-light .spftestimonial-nav ul li .spftestimonial-section-active{box-shadow:3px 0 0 0 #1595ce inset;background-color:#fff;color:#1595ce}.spt-main-class.spftestimonial-theme-light .spftestimonial-nav ul ul li a{background-color:#f8fdff;padding:13px 15px 13px 24px}.spt-main-class.spftestimonial-theme-light .spftestimonial-nav-background{border-right:1px solid #ccd0d4}.spt-main-class .spftestimonial-field-border .spftestimonial--input,.spt-main-class .spftestimonial-field-dimensions .spftestimonial--input,.spt-main-class .spftestimonial-field-spacing .spftestimonial--input{margin-right:10px;margin-bottom:7px}.spt-main-class .spftestimonial-field-border .spftestimonial--input select,.spt-main-class .spftestimonial-field-dimensions .spftestimonial--input select,.spt-main-class .spftestimonial-field-spacing .spftestimonial--input select{line-height:26px}.spt-main-class .spftestimonial-field-border .spftestimonial--input input,.spt-main-class .spftestimonial-field-dimensions .spftestimonial--input input,.spt-main-class .spftestimonial-field-spacing .spftestimonial--input input{line-height:30px;float:left;padding:0;border-radius:0}.spt-main-class .spftestimonial-field-border .spftestimonial--label,.spt-main-class .spftestimonial-field-dimensions .spftestimonial--label,.spt-main-class .spftestimonial-field-spacing .spftestimonial--label{max-width:100%;font-size:12px;line-height:30px;vertical-align:top;text-align:center;color:#555;border:1px solid #ddd;background-color:#eee;padding:0 6px;min-height:30px}.spt-main-class .spftestimonial-field-border .spftestimonial--label-icon,.spt-main-class .spftestimonial-field-dimensions .spftestimonial--label-icon,.spt-main-class .spftestimonial-field-spacing .spftestimonial--label-icon{min-width:20px;border-radius:2px 0 0 2px}.spt-main-class .spftestimonial-field-border .spftestimonial--label-unit,.spt-main-class .spftestimonial-field-dimensions .spftestimonial--label-unit,.spt-main-class .spftestimonial-field-spacing .spftestimonial--label-unit{color:#999;border-radius:0 2px 2px 0}.spt-main-class .spftestimonial-field-spinner .spftestimonial--unit{float:right;height:30px;line-height:26px;text-align:center;border-left:none;color:#999;border:1px solid #ddd;border-left:0;background-color:#eee;padding:0 6px;margin:0;box-sizing:border-box}.spt-main-class .spftestimonial-field-spinner .ui-spinner-button{cursor:pointer;position:relative;overflow:hidden;margin:0;padding:0;width:30px;height:30px;line-height:30px;text-align:center;border:1px solid #ddd;color:#555;background-color:#eee;box-sizing:border-box}.spt-main-class .spftestimonial-field-spinner .ui-spinner-button:before{font-family:FontAwesome;font-size:16px;line-height:16px}.spt-main-class .spftestimonial-field-spinner .ui-spinner-down{float:left;border-right:0;border-radius:2px 0 0 2px;box-shadow:0 0 0}.spt-main-class .spftestimonial-field-spinner .ui-spinner-up{float:right;border-left:0;border-radius:0 2px 2px 0;box-shadow:0 0 0}.spt-main-class .spftestimonial-field-spinner input{width:60px;text-align:center;margin:0;padding:0 8px;height:31px;line-height:31px;border:1px solid #ddd;border-radius:0}.spt-main-class .spftestimonial-field-spinner input:focus{outline:0}.spt-main-class .spftestimonial-field-tabbed .spftestimonial-tabbed-section{border:1px solid #eee}.spt-main-class .spftestimonial-field-text input,.spt-main-class .spftestimonial-field-text_f input{width:340px;max-width:100%}.spt-main-class .control-section .spftestimonial-field .spftestimonial-title{margin-bottom:10px}.spt-main-class .control-section .spftestimonial-field .spftestimonial-title h4{font-size:14px}.spt-main-class .control-section .spftestimonial-field-background .spftestimonial--select{width:100%}.spt-main-class .control-section .spftestimonial-field-border select,.spt-main-class .control-section .spftestimonial-field-dimensions select,.spt-main-class .control-section .spftestimonial-field-spacing select{width:auto}.spt-main-class .spftestimonial-text-desc,.spt-main-class .spftestimonial-text-subtitle{font-style:italic}@media only screen and (max-width:1200px){.spt-main-class .spftestimonial-metabox .spftestimonial-field .spftestimonial-title{float:none;width:100%;margin-bottom:10px}.spt-main-class .spftestimonial-metabox .spftestimonial-field .spftestimonial-fieldset{margin-left:0}}@media only screen and (max-width:782px){.spt-main-class .spftestimonial-header-inner{text-align:center}.spt-main-class .spftestimonial-header-inner h1{width:100%;margin-bottom:10px}.spt-main-class .spftestimonial-header-left,.spt-main-class .spftestimonial-header-right,.spt-main-class .spftestimonial-search{width:100%}.spt-main-class .spftestimonial-search{text-align:center;margin-bottom:15px}.spt-main-class .spftestimonial-footer{text-align:center}.spt-main-class .spftestimonial-buttons{float:none}.spt-main-class .spftestimonial-copyright{float:none;margin-top:10px}.spt-main-class .spftestimonial-expand-all,.spt-main-class .spftestimonial-nav,.spt-main-class .spftestimonial-nav-background,.spt-main-class .spftestimonial-reset-section{display:none!important}.spt-main-class .spftestimonial-content{margin-left:0}.spt-main-class .spftestimonial-section,.spt-main-class .spftestimonial-section-title{display:block!important}.spt-main-class .spftestimonial-field .spftestimonial-title{float:none;width:100%;margin-bottom:10px}.spt-main-class .spftestimonial-field .spftestimonial-fieldset{margin-left:0}.spt-main-class .spftestimonial-modal-inner{width:350px;height:380px}.spt-main-class .spftestimonial-modal-content{height:282px}.spt-main-class .spftestimonial-icon-dialog .spftestimonial-modal-inner{width:305px;height:380px}.spt-main-class .spftestimonial-icon-dialog .spftestimonial-modal-content{height:267px}.spt-main-class .spftestimonial-modal-icon .spftestimonial-modal-inner{width:330px;height:385px}.spt-main-class .spftestimonial-modal-icon .spftestimonial-modal-content{height:252px}.spt-main-class .spftestimonial-profile>.spftestimonial-field>.spftestimonial-title{float:none;width:100%;margin-bottom:10px}.spt-main-class .spftestimonial-profile>.spftestimonial-field>.spftestimonial-fieldset{margin-left:0}}.sp-tpro-client-rating{float:left}.sp-tpro-client-rating:not(:checked)>input{visibility:hidden;display:none;width:0;height:0;float:right;top:100%;clip:rect(0,0,0,0);margin:0;padding:0;border:10px #fff solid}.sp-tpro-client-rating:not(:checked)>label{float:right;display:block;padding:0;margin:0;cursor:pointer;font-size:150%;line-height:1.2;color:#d4d4d4;width:1em}.sp-tpro-client-rating>input:checked~label{color:#f3bb00}.sp-tpro-client-rating:not(:checked)>label:hover,.sp-tpro-client-rating:not(:checked)>label:hover~label{color:#de7202}.sp-tpro-client-rating>input:checked+label:hover,.sp-tpro-client-rating>input:checked+label:hover~label,.sp-tpro-client-rating>input:checked~label:hover,.sp-tpro-client-rating>input:checked~label:hover~label,.sp-tpro-client-rating>label:hover~input:checked~label{color:#de7202}.spftestimonial-metabox .sp-tpro-banner{background-color:#0a73a7;padding:22px 28px;overflow:hidden;background-image:-webkit-gradient(linear,left top,right top,from(#0a73a7),to(#1595ce));background-image:linear-gradient(to right,#0a73a7,#1595ce)}.spftestimonial-metabox .sp-tpro-logo{float:left}.spftestimonial-metabox .sp-tpro-logo img{display:block;width:182px}.spftestimonial-metabox .sp-tpro-short-links{float:right;line-height:30px}.spftestimonial-metabox .sp-tpro-short-links a{color:#fff;text-decoration:none;margin-left:16px;font-size:15px;font-weight:600}.spftestimonial-metabox .sp-tpro-short-links a i.fa{margin-right:7px}.sp-testimonial-shortcode-divider{height:20px;background:#f1f1f1;border-top:1px solid #ddd}.spftestimonial-metabox .tpro_shortcode{display:inline-flex;width:100%;background-color:#fffdfd}.tpro_shortcode .tpro-col-lg-6{border-right:1px solid #ddd;width:50%}.tpro_shortcode .tpro-col-lg-6 .tpro_shortcode_content{padding:42px 16px}.tpro_shortcode .tpro-col-lg-6:last-child .tpro_shortcode_content{padding:42px 16px 0 16px}.shortcode.column-shortcode .sp_tfree_input{border:1px solid #cbcbcb;cursor:pointer}.tpro_shortcode .tpro-col-lg-6 .tpro_shortcode_content .tpro-sc-code{background-color:rgba(82,179,217,.11);padding:10px 15px 10px 30px;display:inline-block;border:1px solid #d1e4ef;border-radius:2px;cursor:pointer;background-image:url(../images/copy.svg);background-size:16px;background-position:10px center;background-repeat:no-repeat}.tpro_shortcode .tpro-col-lg-6:last-child{border-right:none}.tpro_shortcode .tpro-col-lg-6 .tpro-shortcode-title{font-weight:500;font-size:17px!important;padding-top:0!important;color:#4c5158}.tpro_shortcode .tpro-col-lg-6 p{margin-top:2px;color:#4c5158}.tpro_shortcode .tpro-col-lg-6 .back-image{max-width:100%;display:block;margin:0 auto}.tpro_shortcode .tpro-col-lg-6 textarea{border-color:transparent;box-shadow:none;background-color:#eee;padding:4px 6px;resize:none;text-align:center;max-width:100%}.post-type-spt_shortcodes td.shortcode.column-shortcode input{border-width:1px;border-style:solid;border-color:#cbcbcb;cursor:pointer}@media (max-width:1200px){.spftestimonial-metabox .tpro_shortcode{display:block}.tpro_shortcode .tpro-col-lg-6{width:100%;display:block;border-bottom:1px solid #ddd;border-right:none}.tpro_shortcode .tpro-col-lg-6:last-child{padding-bottom:42px}}.sp-testimonial-shortcode{background-color:rgba(82,179,217,.11);padding:8px 12px;display:inline-block;margin-left:8px}.selectable{-webkit-touch-callout:all;-webkit-user-select:all;-khtml-user-select:all;-moz-user-select:all;-ms-user-select:all;user-select:all}.js #sp_tpro_meta_options.postbox .handlediv,.js #sp_tpro_meta_options.postbox .hndle,.js #sp_tpro_meta_options.postbox .postbox-header,.js #sp_tpro_shortcode_options.postbox .handlediv,.js #sp_tpro_shortcode_options.postbox .hndle,.js #sp_tpro_shortcode_options.postbox .postbox-header{display:none}.sp-testimonial-font-color .wp-picker-container,.sp-testimonial-font-load .spftestimonial--switcher,.spftestimonial-field-typography .spftestimonial--block .chosen-container,.spftestimonial-field-typography .spftestimonial--block input.spftestimonial--font-size,.spftestimonial-field-typography .spftestimonial--block input.spftestimonial--letter-spacing,.spftestimonial-field-typography .spftestimonial--block input.spftestimonial--line-height,.spftestimonial-field-typography .spftestimonial--block input.spftestimonial--margin-bottom,.spftestimonial-field-typography .spftestimonial--block input.spftestimonial--margin-left,.spftestimonial-field-typography .spftestimonial--block input.spftestimonial--margin-right,.spftestimonial-field-typography .spftestimonial--block input.spftestimonial--margin-top{pointer-events:none;opacity:.6}.sp-tfree-text-center{text-align:center}div.sp-tfree-help .wp-badge{border:none;background:url(../images/icon-256.png) right no-repeat;background-size:128px 128px;box-shadow:none;height:auto;padding-top:128px}.about-wrap.sp-tfree-help [class$="-col"]{display:flex;justify-content:space-between;flex-wrap:wrap}.about-wrap [class$="-col"]{display:flex;justify-content:space-between;flex-wrap:wrap}.sp-tfree-help [class$="-col"] .col{flex:1;align-self:flex-start}.sp-tfree-help .col{margin-top:40px}.sp-tfree-help.about-wrap [class$="-col"] .col+.col{margin-left:0}.sp-tfree-help.about-wrap .help-section[class$="-col"] .col+.col{margin-left:20px}div.sp-tfree-help .headline-feature.feature-video{position:relative;margin:40px 0;padding-bottom:56.25%;width:100%;max-width:100%;height:0;text-align:center}div.sp-tfree-help .headline-feature.feature-video iframe{position:absolute;top:0;left:0;width:100%;height:100%}div.sp-tfree-help .feature-section .sp-tfree-feature{background-color:#fff;padding:20px 20px;border:1px solid #ddd}div.sp-tfree-help .feature-section .sp-tfree-feature h3{font-size:16px;margin-top:18px}div.sp-tfree-help .feature-section i.sp-tfree-font-icon{font-size:30px;display:block;color:#1595ce}div.sp-tfree-help .sp-tfree-pro-features .feature-section span.dashicons{font-size:22px;color:#fff;background-color:#1595ce;width:28px;height:28px;line-height:28px;border-radius:50%;margin-right:10px}div.sp-tfree-help .sp-tfree-pro-features .feature-section{margin-bottom:40px;margin-left:-2%}div.sp-tfree-help .sp-tfree-pro-features .feature-section .sp-tfree-feature h3{margin-top:0}div.sp-tfree-help .sp-tfree-pro-features .feature-section .sp-tfree-feature p{margin-bottom:0}div.sp-tfree-help .sp-tfree-pro-features .feature-section .sp-tfree-feature{box-shadow:0 0 10px 0 #ddd;margin:4px;border:0 solid}div.sp-tfree-help .sp-tfree-pro-features .feature-section.three-col .col{min-width:31.3%;max-width:31.3%;margin-top:20px;padding-left:2%}div.sp-tfree-help .sp-tfree-pro-features .sp-tfree-pro-subtitle{font-size:1.2em;margin-bottom:26px}div.sp-tfree-help .sp-tfree-upgrade-sticky-footer{position:fixed;bottom:0;background:#fff;width:calc(100% - 195px);z-index:9;margin-left:-25px;text-align:center;border:1px solid #dfdfdf;padding:15px 0;border-bottom:none}div.sp-tfree-help .sp-tfree-pro-features h2{font-size:2.5em;font-weight:400}div.sp-tfree-help .sp-tfree-upgrade-sticky-footer h3{margin-top:17px;margin-bottom:20px}div.sp-tfree-help .sp-tfree-upgrade-sticky-footer a.button{margin:0 8px}.sp-tfree-upgrade>h1{font-size:2.5em;color:#444;font-weight:300}.sp-tfree-upgrade>h1 span{font-weight:400}.sp-tfree-upgrade .about-text{margin-bottom:0}.sp-tfree-upgrade ul{margin-top:0}.about-wrap.sp-tfree-upgrade .about-text{min-height:60px}.about-wrap.sp-tfree-upgrade hr{order:0;height:0;margin:0;border-top:1px solid rgba(0,0,0,.1)}.sp-tfree-upgrade .sp-tfree-pro-features .feature-section{margin-bottom:40px;display:flex;flex-wrap:wrap}.sp-tfree-upgrade .sp-tfree-pro-features .feature-section .sp-tfree-feature h3{margin-top:0}.sp-tfree-upgrade .sp-tfree-pro-features .feature-section .sp-tfree-feature p{margin-bottom:0}.sp-tfree-upgrade .sp-tfree-pro-features .feature-section .sp-tfree-feature{box-shadow:0 0 10px 0 #ddd;margin:4px;border:0 solid}.sp-tfree-upgrade .sp-tfree-pro-features .feature-section.three-col .col{min-width:32%;max-width:32%;margin-top:20px;display:flex;align-self:auto}.sp-tfree-upgrade .sp-tfree-pro-features .sp-tfree-pro-subtitle{font-size:1.2em;margin-bottom:26px}.sp-tfree-upgrade .sp-tfree-pro-features h2,.sp-tfree-upgrade .sp-tfree-promo-video-title{font-size:2.2em;font-weight:400}.sp-tfree-join-community h2{font-size:2em}.sp-tfree-upgrade .sp-tfree-upgrade-sticky-footer h3{margin-top:17px;margin-bottom:20px}.sp-tfree-upgrade .sp-tfree-upgrade-sticky-footer a.button{margin:0 8px}.sp-tfree-upgrade .tfree-upgrade-btn{display:inline-block;padding:0 20px 0 0}.sp-tfree-upgrade .tfree-upgrade-btn a,.sp-tfree-upgrade a.tfree-upgrade-btn{text-decoration:none;text-align:center;font-size:16px}.sp-tfree-upgrade .tfree-upgrade-btn a:focus{outline:0}.sp-tfree-upgrade a.tfree-upgrade-btn,.sp-tfree-upgrade ul li.tfree-upgrade-btn:first-child a{background:#1595ce;padding:0 15px;line-height:46px;display:block;color:#fff;border-radius:3px;font-weight:500}.sp-tfree-upgrade ul li.tfree-upgrade-btn:last-child a{text-decoration:underline}.sp-tfree-upgrade ul li.tfree-upgrade-btn a i{margin-left:4px}.sp-tfree-upgrade ul li.tfree-upgrade-btn:last-child a i{font-size:14px}.sp-tfree-upgrade a.tfree-upgrade-btn{display:inline-block}#sp-tfree-review-notice{padding:15px 15px 15px 0;background-color:#fff;border-radius:3px;margin:20px 20px 0 0;margin-bottom:20px}#sp-tfree-review-notice .sp-tfree-plugin-icon{float:left;line-height:90px;text-align:center;width:100px;height:100px;margin-right:15px}#sp-tfree-review-notice .sp-tfree-plugin-icon img{max-width:83px;vertical-align:middle}#sp-tfree-review-notice .sp-tfree-notice-text{overflow:hidden}#sp-tfree-review-notice .sp-tfree-notice-text h3{font-size:24px;margin:0 0 5px;font-weight:400;line-height:1}#sp-tfree-review-notice .sp-tfree-notice-text p{margin:10px 0 10px 0;font-size:13px}#sp-tfree-review-notice .sp-tfree-notice-text p.sp-tfree-review-actions{margin:10px 0 2px 0}#sp-tfree-review-notice .sp-tfree-notice-text .sp-tfree-review-actions a{text-decoration:none;margin-right:8px;color:#63a37b;display:inline-block;position:relative}#sp-tfree-review-notice .sp-tfree-notice-text .sp-tfree-review-actions a span{padding-right:2px}#sp-tfree-review-notice .sp-tfree-notice-text .sp-tfree-review-actions a.button{color:#fff}@media (max-width:960px){div.sp-tfree-help .sp-tfree-upgrade-sticky-footer{width:calc(100%)}}@media screen and (max-width:782px){div.sp-tfree-help .three-col .col{min-width:48%!important;max-width:48%!important;margin-left:0!important}}@media (max-width:500px){div.sp-tfree-help .wp-badge{background-position-x:center}div.sp-tfree-help .three-col .col{min-width:100%!important;max-width:100%!important;margin-top:1em}}.post-type-spt_shortcodes td.shortcode.column-shortcode input{border:1px solid #cbcbcb}.trpo-copy-btn{display:inline-block;height:15px;line-height:38px;margin-bottom:-4px;margin-right:-30px;cursor:pointer;position:relative;z-index:99}.sptpro-after-copy-text{bottom:0;opacity:0;z-index:9999999;position:fixed;width:230px;left:180px;text-align:center;padding:15px 15px;line-height:15px;color:#fff;border-radius:3px;background:#32373c;border:1px solid #32373c}.sptpro-after-copy-text .fa-check-circle{font-size:14px;margin-right:2px;color:#5db62e}.post-type-spt_shortcodes #sp_tpro-show-preview{position:fixed;right:144px;bottom:30px;z-index:1001;width:155px;text-align:center;padding:10px 0;background:#54b154;color:#fff;border-radius:3px;text-decoration:none;display:block;font-weight:500;text-transform:uppercase;letter-spacing:.2px;margin:0;box-sizing:border-box;border-color:#44a944;overflow:hidden}.post-type-spt_testimonial #sp_tpro-show-preview,.post-type-spt_testimonial_form #sp_tpro-show-preview{display:none}
1
+ .text-center{text-align:center}.spt-main-class .spftestimonial-header-inner h1{color:#444;font-size:22px;font-weight:600}.spt-main-class .spftestimonial-sticky .spftestimonial-header-inner{z-index:20}.spt-main-class .spftestimonial-metabox .spftestimonial-nav{position:inherit;float:none;width:100%;background:#f1f1f1}.spt-main-class .spftestimonial-metabox .spftestimonial-nav ul li{display:inline-block}.spt-main-class .spftestimonial-nav ul li a{text-transform:uppercase;font-weight:600}.spt-main-class .spftestimonial-metabox .spftestimonial-content{margin-left:0}.spt-main-class .spftestimonial-metabox{margin:-6px -12px -12px -12px}.spt-main-class .spftestimonial-metabox .spftestimonial-nav ul li a{background-color:#1595ce;font-size:14px;padding:15px 15px;line-height:1.4;color:#fff;border-right:1px solid #e2e2e1;font-weight:600;border-bottom:0}#sp_tpro_shortcode_options_new .spftestimonial-metabox .spftestimonial-nav ul li a{font-size:13px;text-transform:uppercase;padding:16px 15px}.spt-main-class .spftestimonial-nav ul li .spftestimonial-active:after{display:none}.spt-main-class .spftestimonial-metabox .spftestimonial-nav ul li .spftestimonial-active{color:#444;background-color:#fff;box-shadow:0 3px 0 0 #1595ce inset}.spt-main-class .spftestimonial-metabox .spftestimonial-nav ul li .spftestimonial-active .fa{color:#1595ce}.spt-main-class .spftestimonial-metabox .spftestimonial-nav-background{display:none}.spt-main-class.spftestimonial-theme-light .spftestimonial-container{border:1px solid #ccd0d4}.spt-main-class.spftestimonial-theme-light .spftestimonial-header-inner{border-bottom:1px solid #ccd0d4}.spt-main-class.spftestimonial-theme-light .spftestimonial-nav ul li a{color:#464646;background-color:#f5f5f5;border-top:0;border-right:0;border-bottom:1px solid #ccd0d4!important;margin-bottom:0;padding:15px 15px}.spt-main-class.spftestimonial-theme-light .spftestimonial-nav ul li .spftestimonial-active{box-shadow:3px 0 0 0 #1595ce inset;background-color:#fff;color:#1595ce}.spt-main-class.spftestimonial-theme-light .spftestimonial-nav ul ul li a{background-color:#f8fdff;padding:13px 15px 13px 24px}.spt-main-class.spftestimonial-theme-light .spftestimonial-nav-background{border-right:1px solid #ccd0d4}.spt-main-class .spftestimonial-desc-text,.spt-main-class .spftestimonial-text-subtitle{font-style:italic}.spftestimonial-metabox .sp-tpro-banner{background-color:#0a73a7;padding:22px 28px;overflow:hidden;background-image:-webkit-gradient(linear,left top,right top,from(#0a73a7),to(#1595ce));background-image:linear-gradient(to right,#0a73a7,#1595ce)}.spftestimonial-metabox .sp-tpro-logo{float:left}.spftestimonial-metabox .sp-tpro-logo img{display:block;width:182px}.spftestimonial-metabox .sp-tpro-short-links{float:right;line-height:30px}.spftestimonial-metabox .sp-tpro-short-links a{color:#fff;text-decoration:none;margin-left:16px;font-size:15px;font-weight:600}.spftestimonial-metabox .sp-tpro-short-links a i.fa{margin-right:7px}.sp-testimonial-shortcode-divider{height:20px;background:#f1f1f1;border-top:1px solid #ddd}.spftestimonial-metabox .tpro_shortcode{display:inline-flex;width:100%;background-color:#fffdfd}.tpro_shortcode .tpro-col-lg-6{border-right:1px solid #ddd;width:50%}.tpro_shortcode .tpro-col-lg-6 .tpro_shortcode_content{padding:42px 16px}.tpro_shortcode .tpro-col-lg-6:last-child .tpro_shortcode_content{padding:42px 16px 0 16px}.shortcode.column-shortcode .sp_tfree_input{border:1px solid #cbcbcb;cursor:pointer}.tpro_shortcode .tpro-col-lg-6 .tpro_shortcode_content .tpro-sc-code{background-color:rgba(82,179,217,.11);padding:10px 15px 10px 30px;display:inline-block;border:1px solid #d1e4ef;border-radius:2px;cursor:pointer;background-image:url(../images/copy.svg);background-size:16px;background-position:10px center;background-repeat:no-repeat}.tpro_shortcode .tpro-col-lg-6:last-child{border-right:none}.tpro_shortcode .tpro-col-lg-6 .tpro-shortcode-title{font-weight:500;font-size:17px!important;padding-top:0!important;color:#4c5158}.tpro_shortcode .tpro-col-lg-6 p{margin-top:2px;color:#4c5158}.tpro_shortcode .tpro-col-lg-6 .back-image{max-width:100%;display:block;margin:0 auto}.tpro_shortcode .tpro-col-lg-6 textarea{border-color:transparent;box-shadow:none;background-color:#eee;padding:4px 6px;resize:none;text-align:center;max-width:100%}.post-type-spt_shortcodes td.shortcode.column-shortcode input{border-width:1px;border-style:solid;border-color:#cbcbcb;cursor:pointer}@media (max-width:1200px){.spftestimonial-metabox .tpro_shortcode{display:block}.tpro_shortcode .tpro-col-lg-6{width:100%;display:block;border-bottom:1px solid #ddd;border-right:none}.tpro_shortcode .tpro-col-lg-6:last-child{padding-bottom:42px}}.sp-testimonial-shortcode{background-color:rgba(82,179,217,.11);padding:8px 12px;display:inline-block;margin-left:8px}.selectable{-webkit-touch-callout:all;-webkit-user-select:all;-khtml-user-select:all;-moz-user-select:all;-ms-user-select:all;user-select:all}.js #sp_tpro_meta_options.postbox .handlediv,.js #sp_tpro_meta_options.postbox .hndle,.js #sp_tpro_meta_options.postbox .postbox-header,.js #sp_tpro_shortcode_options.postbox .handlediv,.js #sp_tpro_shortcode_options.postbox .hndle,.js #sp_tpro_shortcode_options.postbox .postbox-header{display:none}.sp-testimonial-font-color .wp-picker-container,.sp-testimonial-font-load .spftestimonial--switcher,.spftestimonial-field-typography .spftestimonial--block .chosen-container,.spftestimonial-field-typography .spftestimonial--block input.spftestimonial--font-size,.spftestimonial-field-typography .spftestimonial--block input.spftestimonial--letter-spacing,.spftestimonial-field-typography .spftestimonial--block input.spftestimonial--line-height,.spftestimonial-field-typography .spftestimonial--block input.spftestimonial--margin-bottom,.spftestimonial-field-typography .spftestimonial--block input.spftestimonial--margin-left,.spftestimonial-field-typography .spftestimonial--block input.spftestimonial--margin-right,.spftestimonial-field-typography .spftestimonial--block input.spftestimonial--margin-top{pointer-events:none;opacity:.6}.sp-tfree-text-center{text-align:center}div.sp-tfree-help .wp-badge{border:none;background:url(../images/icon-256.png) right no-repeat;background-size:128px 128px;box-shadow:none;height:auto;padding-top:128px}.about-wrap.sp-tfree-help [class$="-col"]{display:flex;justify-content:space-between;flex-wrap:wrap}.about-wrap [class$="-col"]{display:flex;justify-content:space-between;flex-wrap:wrap}.sp-tfree-help [class$="-col"] .col{flex:1;align-self:flex-start}.sp-tfree-help .col{margin-top:40px}.sp-tfree-help.about-wrap [class$="-col"] .col+.col{margin-left:0}.sp-tfree-help.about-wrap .help-section[class$="-col"] .col+.col{margin-left:20px}div.sp-tfree-help .headline-feature.feature-video{position:relative;margin:40px 0;padding-bottom:56.25%;width:100%;max-width:100%;height:0;text-align:center}div.sp-tfree-help .headline-feature.feature-video iframe{position:absolute;top:0;left:0;width:100%;height:100%}div.sp-tfree-help .feature-section .sp-tfree-feature{background-color:#fff;padding:20px 20px;border:1px solid #ddd}div.sp-tfree-help .feature-section .sp-tfree-feature h3{font-size:16px;margin-top:18px}div.sp-tfree-help .feature-section i.sp-tfree-font-icon{font-size:30px;display:block;color:#1595ce}div.sp-tfree-help .sp-tfree-pro-features .feature-section span.dashicons{font-size:22px;color:#fff;background-color:#1595ce;width:28px;height:28px;line-height:28px;border-radius:50%;margin-right:10px}div.sp-tfree-help .sp-tfree-pro-features .feature-section{margin-bottom:40px;margin-left:-2%}div.sp-tfree-help .sp-tfree-pro-features .feature-section .sp-tfree-feature h3{margin-top:0}div.sp-tfree-help .sp-tfree-pro-features .feature-section .sp-tfree-feature p{margin-bottom:0}div.sp-tfree-help .sp-tfree-pro-features .feature-section .sp-tfree-feature{box-shadow:0 0 10px 0 #ddd;margin:4px;border:0 solid}div.sp-tfree-help .sp-tfree-pro-features .feature-section.three-col .col{min-width:31.3%;max-width:31.3%;margin-top:20px;padding-left:2%}div.sp-tfree-help .sp-tfree-pro-features .sp-tfree-pro-subtitle{font-size:1.2em;margin-bottom:26px}div.sp-tfree-help .sp-tfree-upgrade-sticky-footer{position:fixed;bottom:0;background:#fff;width:calc(100% - 195px);z-index:9;margin-left:-25px;text-align:center;border:1px solid #dfdfdf;padding:15px 0;border-bottom:none}div.sp-tfree-help .sp-tfree-pro-features h2{font-size:2.5em;font-weight:400}div.sp-tfree-help .sp-tfree-upgrade-sticky-footer h3{margin-top:17px;margin-bottom:20px}div.sp-tfree-help .sp-tfree-upgrade-sticky-footer a.button{margin:0 8px}.sp-tfree-upgrade>h1{font-size:2.5em;color:#444;font-weight:300}.sp-tfree-upgrade>h1 span{font-weight:400}.sp-tfree-upgrade .about-text{margin-bottom:0}.sp-tfree-upgrade ul{margin-top:0}.about-wrap.sp-tfree-upgrade .about-text{min-height:60px}.about-wrap.sp-tfree-upgrade hr{order:0;height:0;margin:0;border-top:1px solid rgba(0,0,0,.1)}.sp-tfree-upgrade .sp-tfree-pro-features .feature-section{margin-bottom:40px;display:flex;flex-wrap:wrap}.sp-tfree-upgrade .sp-tfree-pro-features .feature-section .sp-tfree-feature h3{margin-top:0}.sp-tfree-upgrade .sp-tfree-pro-features .feature-section .sp-tfree-feature p{margin-bottom:0}.sp-tfree-upgrade .sp-tfree-pro-features .feature-section .sp-tfree-feature{box-shadow:0 0 10px 0 #ddd;margin:4px;border:0 solid}.sp-tfree-upgrade .sp-tfree-pro-features .feature-section.three-col .col{min-width:32%;max-width:32%;margin-top:20px;display:flex;align-self:auto}.sp-tfree-upgrade .sp-tfree-pro-features .sp-tfree-pro-subtitle{font-size:1.2em;margin-bottom:26px}.sp-tfree-upgrade .sp-tfree-pro-features h2,.sp-tfree-upgrade .sp-tfree-promo-video-title{font-size:2.2em;font-weight:400}.sp-tfree-join-community h2{font-size:2em}.sp-tfree-upgrade .sp-tfree-upgrade-sticky-footer h3{margin-top:17px;margin-bottom:20px}.sp-tfree-upgrade .sp-tfree-upgrade-sticky-footer a.button{margin:0 8px}.sp-tfree-upgrade .tfree-upgrade-btn{display:inline-block;padding:0 20px 0 0}.sp-tfree-upgrade .tfree-upgrade-btn a,.sp-tfree-upgrade a.tfree-upgrade-btn{text-decoration:none;text-align:center;font-size:16px}.sp-tfree-upgrade .tfree-upgrade-btn a:focus{outline:0}.sp-tfree-upgrade a.tfree-upgrade-btn,.sp-tfree-upgrade ul li.tfree-upgrade-btn:first-child a{background:#1595ce;padding:0 15px;line-height:46px;display:block;color:#fff;border-radius:3px;font-weight:500}.sp-tfree-upgrade ul li.tfree-upgrade-btn:last-child a{text-decoration:underline}.sp-tfree-upgrade ul li.tfree-upgrade-btn a i{margin-left:4px}.sp-tfree-upgrade ul li.tfree-upgrade-btn:last-child a i{font-size:14px}.sp-tfree-upgrade a.tfree-upgrade-btn{display:inline-block}#sp-tfree-review-notice{padding:15px 15px 15px 0;background-color:#fff;border-radius:3px;margin:20px 20px 0 0;margin-bottom:20px}#sp-tfree-review-notice .sp-tfree-plugin-icon{float:left;line-height:90px;text-align:center;width:100px;height:100px;margin-right:15px}#sp-tfree-review-notice .sp-tfree-plugin-icon img{max-width:83px;vertical-align:middle}#sp-tfree-review-notice .sp-tfree-notice-text{overflow:hidden}#sp-tfree-review-notice .sp-tfree-notice-text h3{font-size:24px;margin:0 0 5px;font-weight:400;line-height:1}#sp-tfree-review-notice .sp-tfree-notice-text p{margin:10px 0 10px 0;font-size:13px}#sp-tfree-review-notice .sp-tfree-notice-text p.sp-tfree-review-actions{margin:10px 0 2px 0}#sp-tfree-review-notice .sp-tfree-notice-text .sp-tfree-review-actions a{text-decoration:none;margin-right:8px;color:#63a37b;display:inline-block;position:relative}#sp-tfree-review-notice .sp-tfree-notice-text .sp-tfree-review-actions a span{padding-right:2px}#sp-tfree-review-notice .sp-tfree-notice-text .sp-tfree-review-actions a.button{color:#fff}@media (max-width:960px){div.sp-tfree-help .sp-tfree-upgrade-sticky-footer{width:calc(100%)}}@media screen and (max-width:782px){div.sp-tfree-help .three-col .col{min-width:48%!important;max-width:48%!important;margin-left:0!important}}@media (max-width:500px){div.sp-tfree-help .wp-badge{background-position-x:center}div.sp-tfree-help .three-col .col{min-width:100%!important;max-width:100%!important;margin-top:1em}}.post-type-spt_shortcodes td.shortcode.column-shortcode input{border:1px solid #cbcbcb}.trpo-copy-btn{display:inline-block;height:15px;line-height:38px;margin-bottom:-4px;margin-right:-30px;cursor:pointer;position:relative;z-index:99}.sptpro-after-copy-text{bottom:0;opacity:0;z-index:9999999;position:fixed;width:230px;left:180px;text-align:center;padding:15px 15px;line-height:15px;color:#fff;border-radius:3px;background:#32373c;border:1px solid #32373c}.sptpro-after-copy-text .fa-check-circle{font-size:14px;margin-right:2px;color:#5db62e}.post-type-spt_shortcodes #sp_tpro-show-preview{position:fixed;right:144px;bottom:30px;z-index:1001;width:155px;text-align:center;padding:10px 0;background:#54b154;color:#fff;border-radius:3px;text-decoration:none;display:block;font-weight:500;text-transform:uppercase;letter-spacing:.2px;margin:0;box-sizing:border-box;border-color:#44a944;overflow:hidden}.post-type-spt_testimonial #sp_tpro-show-preview,.post-type-spt_testimonial_form #sp_tpro-show-preview{display:none}div#sp_tpro_live_preview{padding:0;margin:-7px -13px 6px}#sp_tpro_shortcode_options.postbox #sp_tpro_live_preview .postbox-header{display:block}
admin/preview/class-testimonial-free-preview.php DELETED
@@ -1,77 +0,0 @@
1
- <?php
2
- /**
3
- * The admin preview.
4
- *
5
- * @link http://shapedplugin.com
6
- * @since 2.1.4
7
- *
8
- * @package Testimonial_free
9
- * @subpackage Testimonial_free/admin
10
- */
11
-
12
- /**
13
- * The admin preview.
14
- *
15
- * @package Testimonial_free
16
- * @subpackage Testimonial_free/admin
17
- * @author ShapedPlugin <support@shapedplugin.com>
18
- */
19
- class Testimonial_Free_Preview {
20
- /**
21
- * Initialize the class and set its properties.
22
- *
23
- * @since 2.1.4
24
- */
25
- public function __construct() {
26
- $this->testimonial_preview_action();
27
- }
28
-
29
- /**
30
- * Public Action
31
- *
32
- * @return void
33
- */
34
- private function testimonial_preview_action() {
35
- // admin Preview.
36
- add_action( 'wp_ajax_sp_tpro_preview_meta_box', array( $this, 'sp_tpro_preview_meta_box' ) );
37
-
38
- }
39
-
40
- /**
41
- * Function Backed preview.
42
- *
43
- * @since 2.2.5
44
- */
45
- public function sp_tpro_preview_meta_box() {
46
- $nonce = isset( $_POST['ajax_nonce'] ) ? sanitize_text_field( wp_unslash( $_POST['ajax_nonce'] ) ) : '';
47
- if ( ! wp_verify_nonce( $nonce, 'spftestimonial_metabox_nonce' ) ) {
48
- return;
49
- }
50
-
51
- $setting = array();
52
- // XSS ok.
53
- // No worries, This "POST" requests is sanitizing in the below array map.
54
- $data = ! empty( $_POST['data'] ) ? wp_unslash( $_POST['data'] ) : ''; // phpcs:ignore
55
- parse_str( $data, $setting );
56
- // Preset Layouts.
57
- $post_id = $setting['post_ID'];
58
- $setting_options = get_option( 'sp_testimonial_pro_options' );
59
- $shortcode_data = $setting['sp_tpro_shortcode_options'];
60
- $main_section_title = $setting['post_title'];
61
-
62
- $tfree_one_star = TFREE_Shortcode_Render::$tfree_one_star;
63
- $tfree_two_star = TFREE_Shortcode_Render::$tfree_two_star;
64
- $tfree_three_star = TFREE_Shortcode_Render::$tfree_three_star;
65
- $tfree_four_star = TFREE_Shortcode_Render::$tfree_four_star;
66
- $tfree_five_star = TFREE_Shortcode_Render::$tfree_five_star;
67
-
68
- TFREE_Shortcode_Render::sp_tpro_html_show( $post_id, $setting_options, $shortcode_data, $tfree_one_star, $tfree_two_star, $tfree_three_star, $tfree_four_star, $tfree_five_star, $main_section_title );
69
- ?>
70
- <script src="<?php echo esc_url( SP_TFREE_URL . 'public/assets/js/slick.min.js' ); ?>" ></script>
71
- <script src="<?php echo esc_url( SP_TFREE_URL . 'public/assets/js/sp-slick-active.js' ); ?>" ></script>
72
- <?php
73
- die();
74
- }
75
-
76
- }
77
- new Testimonial_Free_Preview();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
admin/views/framework/assets/css/spftestimonial-rtl.css CHANGED
@@ -1,11 +1,16 @@
1
  /**
 
 
 
 
 
2
  * 01. Base
3
  * 01. 01. Header
4
  * 01. 02. Header Buttons
5
  * 01. 03. Navigation
6
  * 01. 04. Content
7
  * 01. 05. Section
8
- * 01. 06. Show All Options
9
  * 01. 07. Search Input
10
  * 01. 08. Copyright
11
  * 01. 09. Metabox
@@ -31,10 +36,18 @@
31
  * 02. 19. Field: link_color
32
  * 02. 20. Field: color_group
33
  * 02. 21. Field: palette
34
- * 05. Modal
35
- * 06. Customizer
36
- * 07. Responsive
37
- * 08. Others
 
 
 
 
 
 
 
 
38
  *
39
  * ---------------------------------------------------------
40
  *
@@ -42,7 +55,7 @@
42
  /**
43
  * 01. Base
44
  */
45
- .spftestimonial {
46
  margin-left: 20px;
47
  margin-right: 0;
48
  }
@@ -82,7 +95,7 @@
82
  .spftestimonial-nav ul {
83
  clear: right;
84
  }
85
- .spftestimonial-nav ul li .spftestimonial-section-active:after {
86
  right: auto;
87
  left: 0;
88
  border-left-color: #fff;
@@ -93,10 +106,7 @@
93
  right: auto;
94
  left: 10px;
95
  }
96
- .spftestimonial-nav ul li.spftestimonial-tab-active .spftestimonial-arrow:after {
97
- -moz-transform: rotate(-90deg);
98
- -ms-transform: rotate(-90deg);
99
- -webkit-transform: rotate(-90deg);
100
  transform: rotate(-90deg);
101
  }
102
  .spftestimonial-nav ul ul li a {
@@ -107,7 +117,7 @@
107
  left: auto;
108
  right: 15px;
109
  }
110
- .spftestimonial-nav .fa {
111
  margin-left: 5px;
112
  margin-right: 0;
113
  }
@@ -174,12 +184,8 @@
174
  .spftestimonial-metabox .spftestimonial-section-title {
175
  padding: 20px;
176
  }
177
- .spftestimonial-metabox .spftestimonial-section-title .fa {
178
- margin-left: 5px;
179
- margin-right: 0;
180
- }
181
 
182
- .spftestimonial-section-title .fa {
183
  margin-left: 5px;
184
  margin-right: 0;
185
  }
@@ -191,8 +197,7 @@
191
  float: right;
192
  }
193
  .spftestimonial-field .spftestimonial-fieldset {
194
- margin-left: 0;
195
- margin-right: 30%;
196
  }
197
 
198
  .spftestimonial-pseudo-field {
@@ -209,15 +214,33 @@
209
  .spftestimonial-field-typography .spftestimonial--blocks-inputs .spftestimonial--blocks {
210
  flex-direction: row-reverse;
211
  }
 
 
 
 
212
 
213
  /**
214
  * 02. 02. Field: checkbox, radio
215
  */
 
 
 
 
 
 
 
 
 
216
  .spftestimonial-field-checkbox .spftestimonial--inline-list li,
217
  .spftestimonial-field-radio .spftestimonial--inline-list li {
218
  margin-right: 0;
219
  margin-left: 15px;
220
  }
 
 
 
 
 
221
 
222
  /**
223
  * 02. 03. Field: switcher
@@ -235,7 +258,7 @@
235
  * 02. 04. Field: upload
236
  */
237
  .spftestimonial-field-upload .spftestimonial--remove,
238
- .spftestimonial-field-upload .spftestimonial--buttons {
239
  margin-left: 0;
240
  margin-right: 5px;
241
  }
@@ -294,7 +317,7 @@
294
  /**
295
  * 02. 11. Field: tabbed
296
  */
297
- .spftestimonial-field-tabbed .spftestimonial-tabbed-nav .fa {
298
  padding-right: 0;
299
  padding-left: 5px;
300
  }
@@ -327,17 +350,27 @@
327
  * 02. 14. Field: border, spacing, dimensions
328
  */
329
  .spftestimonial-field-dimensions .spftestimonial--input,
 
330
  .spftestimonial-field-spacing .spftestimonial--input,
331
- .spftestimonial-field-border .spftestimonial--input {
332
- float: right;
333
- margin-right: 0;
334
- margin-left: 15px;
335
  }
336
- .spftestimonial-field-dimensions .spftestimonial--left,
337
- .spftestimonial-field-spacing .spftestimonial--left,
338
- .spftestimonial-field-border .spftestimonial--left {
 
 
 
339
  float: right;
340
  }
 
 
 
 
 
 
341
 
342
  /**
343
  * 02. 15. Field: background
@@ -359,21 +392,19 @@
359
  */
360
  .spftestimonial-field-spinner .spftestimonial--spin {
361
  float: right;
 
362
  }
363
 
364
  /**
365
  * 02. 17. Field: slider
366
  */
367
- .spftestimonial-field-slider .ui-slider {
368
  direction: ltr;
 
 
369
  }
370
- .spftestimonial-field-slider input[type="text"] {
371
- margin-left: 0;
372
- margin-right: 15px;
373
- }
374
- .spftestimonial-field-slider em {
375
- padding-left: 0;
376
- padding-right: 5px;
377
  }
378
 
379
  /**
@@ -410,7 +441,101 @@
410
  }
411
 
412
  /**
413
- * 05. Modal
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
414
  */
415
  .spftestimonial-modal-content .spftestimonial-field {
416
  padding: 15px 15px 15px 30px;
@@ -426,14 +551,14 @@
426
  }
427
 
428
  /**
429
- * 06. Customizer
430
  */
431
  .control-section .spftestimonial-field .spftestimonial-fieldset {
432
  margin-right: 0;
433
  }
434
 
435
  /**
436
- * 07. Responsive
437
  */
438
  @media only screen and (max-width: 1200px) {
439
  .spftestimonial-metabox .spftestimonial-field .spftestimonial-fieldset {
@@ -447,7 +572,7 @@
447
  }
448
  }
449
  /**
450
- * 08. Others
451
  */
452
  .spftestimonial-field .spftestimonial--transparent-slider {
453
  margin-left: 0;
1
  /**
2
+ *
3
+ * ---------------------------------------------------------
4
+ * RTL CSS MAP
5
+ * ---------------------------------------------------------
6
+ *
7
  * 01. Base
8
  * 01. 01. Header
9
  * 01. 02. Header Buttons
10
  * 01. 03. Navigation
11
  * 01. 04. Content
12
  * 01. 05. Section
13
+ * 01. 06. Show All Settings
14
  * 01. 07. Search Input
15
  * 01. 08. Copyright
16
  * 01. 09. Metabox
36
  * 02. 19. Field: link_color
37
  * 02. 20. Field: color_group
38
  * 02. 21. Field: palette
39
+ * 02. 22. Field: accordion
40
+ * 02. 23. Field: date
41
+ * 02. 24. Field: map
42
+ * 02. 25. Field: sortable
43
+ * 02. 26. Field: number
44
+ * 03. Taxonomy
45
+ * 04. Profile
46
+ * 05. Nav Menu
47
+ * 06. Modal
48
+ * 07. Customizer
49
+ * 08. Responsive
50
+ * 09. Others
51
  *
52
  * ---------------------------------------------------------
53
  *
55
  /**
56
  * 01. Base
57
  */
58
+ .spftestimonial-options {
59
  margin-left: 20px;
60
  margin-right: 0;
61
  }
95
  .spftestimonial-nav ul {
96
  clear: right;
97
  }
98
+ .spftestimonial-nav ul li .spftestimonial-active:after {
99
  right: auto;
100
  left: 0;
101
  border-left-color: #fff;
106
  right: auto;
107
  left: 10px;
108
  }
109
+ .spftestimonial-nav ul li.spftestimonial-tab-expanded .spftestimonial-arrow:after {
 
 
 
110
  transform: rotate(-90deg);
111
  }
112
  .spftestimonial-nav ul ul li a {
117
  left: auto;
118
  right: 15px;
119
  }
120
+ .spftestimonial-nav .spftestimonial-tab-icon {
121
  margin-left: 5px;
122
  margin-right: 0;
123
  }
184
  .spftestimonial-metabox .spftestimonial-section-title {
185
  padding: 20px;
186
  }
 
 
 
 
187
 
188
+ .spftestimonial-section-title .spftestimonial-section-icon {
189
  margin-left: 5px;
190
  margin-right: 0;
191
  }
197
  float: right;
198
  }
199
  .spftestimonial-field .spftestimonial-fieldset {
200
+ float: left;
 
201
  }
202
 
203
  .spftestimonial-pseudo-field {
214
  .spftestimonial-field-typography .spftestimonial--blocks-inputs .spftestimonial--blocks {
215
  flex-direction: row-reverse;
216
  }
217
+ .spftestimonial-field-typography .spftestimonial--unit {
218
+ left: 4px;
219
+ right: auto;
220
+ }
221
 
222
  /**
223
  * 02. 02. Field: checkbox, radio
224
  */
225
+ .spftestimonial-field-checkbox ul ul li,
226
+ .spftestimonial-field-radio ul ul li {
227
+ margin-left: 0;
228
+ margin-right: 8px;
229
+ }
230
+ .spftestimonial-field-checkbox ul ul li:first-child,
231
+ .spftestimonial-field-radio ul ul li:first-child {
232
+ margin-right: 0;
233
+ }
234
  .spftestimonial-field-checkbox .spftestimonial--inline-list li,
235
  .spftestimonial-field-radio .spftestimonial--inline-list li {
236
  margin-right: 0;
237
  margin-left: 15px;
238
  }
239
+ .spftestimonial-field-checkbox .spftestimonial--text,
240
+ .spftestimonial-field-radio .spftestimonial--text {
241
+ margin-left: 0;
242
+ margin-right: 5px;
243
+ }
244
 
245
  /**
246
  * 02. 03. Field: switcher
258
  * 02. 04. Field: upload
259
  */
260
  .spftestimonial-field-upload .spftestimonial--remove,
261
+ .spftestimonial-field-upload .spftestimonial--button {
262
  margin-left: 0;
263
  margin-right: 5px;
264
  }
317
  /**
318
  * 02. 11. Field: tabbed
319
  */
320
+ .spftestimonial-field-tabbed .spftestimonial-tabbed-nav .spftestimonial--icon {
321
  padding-right: 0;
322
  padding-left: 5px;
323
  }
350
  * 02. 14. Field: border, spacing, dimensions
351
  */
352
  .spftestimonial-field-dimensions .spftestimonial--input,
353
+ .spftestimonial-field-dimensions .spftestimonial-fieldset,
354
  .spftestimonial-field-spacing .spftestimonial--input,
355
+ .spftestimonial-field-spacing .spftestimonial-fieldset,
356
+ .spftestimonial-field-border .spftestimonial--input,
357
+ .spftestimonial-field-border .spftestimonial-fieldset {
358
+ direction: ltr;
359
  }
360
+ .spftestimonial-field-dimensions .spftestimonial--inputs,
361
+ .spftestimonial-field-dimensions .spftestimonial--color,
362
+ .spftestimonial-field-spacing .spftestimonial--inputs,
363
+ .spftestimonial-field-spacing .spftestimonial--color,
364
+ .spftestimonial-field-border .spftestimonial--inputs,
365
+ .spftestimonial-field-border .spftestimonial--color {
366
  float: right;
367
  }
368
+ .spftestimonial-field-dimensions .spftestimonial--color,
369
+ .spftestimonial-field-spacing .spftestimonial--color,
370
+ .spftestimonial-field-border .spftestimonial--color {
371
+ margin-right: 4px;
372
+ direction: rtl;
373
+ }
374
 
375
  /**
376
  * 02. 15. Field: background
392
  */
393
  .spftestimonial-field-spinner .spftestimonial--spin {
394
  float: right;
395
+ direction: ltr;
396
  }
397
 
398
  /**
399
  * 02. 17. Field: slider
400
  */
401
+ .spftestimonial-field-slider .spftestimonial-slider-ui {
402
  direction: ltr;
403
+ margin-right: 0;
404
+ margin-left: 15px;
405
  }
406
+ .spftestimonial-field-slider .spftestimonial--input {
407
+ direction: ltr;
 
 
 
 
 
408
  }
409
 
410
  /**
441
  }
442
 
443
  /**
444
+ * 02. 22. Field: accordion
445
+ */
446
+ .spftestimonial-field-accordion .spftestimonial--icon {
447
+ margin-right: 0;
448
+ margin-left: 2px;
449
+ }
450
+
451
+ /**
452
+ * 02. 23. Field: date
453
+ */
454
+ .spftestimonial-field-date .spftestimonial--to {
455
+ margin-left: 0;
456
+ margin-right: 7px;
457
+ }
458
+
459
+ /**
460
+ * 02. 24. Field: map
461
+ */
462
+ .spftestimonial-field-map .spftestimonial--map-input:last-child {
463
+ padding-left: 0;
464
+ padding-right: 10px;
465
+ }
466
+
467
+ /**
468
+ * 02. 25. Field: sortable
469
+ */
470
+ .spftestimonial-field-sortable .spftestimonial-sortable-helper {
471
+ border-left: none;
472
+ border-right: 1px solid #eee;
473
+ }
474
+
475
+ /**
476
+ * 02. 26. Field: number
477
+ */
478
+ .spftestimonial-field-number .spftestimonial--wrap {
479
+ float: right;
480
+ }
481
+ .spftestimonial-field-number .spftestimonial--unit {
482
+ left: 4px;
483
+ right: auto;
484
+ }
485
+
486
+ /**
487
+ * 03. Taxonomy
488
+ */
489
+ .spftestimonial-taxonomy-add-fields {
490
+ margin-right: 0;
491
+ margin-left: 30px;
492
+ }
493
+ .spftestimonial-taxonomy-add-fields .spftestimonial-field > .spftestimonial-fieldset > .spftestimonial-help {
494
+ left: -5px;
495
+ right: auto;
496
+ }
497
+
498
+ .spftestimonial-taxonomy-edit-fields {
499
+ margin-right: 0;
500
+ margin-left: 35px;
501
+ }
502
+ .spftestimonial-taxonomy-edit-fields .spftestimonial-field > .spftestimonial-fieldset > .spftestimonial-help {
503
+ right: auto;
504
+ left: -5px;
505
+ }
506
+
507
+ /**
508
+ * 04. Profile
509
+ */
510
+ .spftestimonial-profile-options > h2 > .fa {
511
+ padding-right: 0;
512
+ padding-left: 7px;
513
+ }
514
+ .spftestimonial-profile-options > .spftestimonial-field > .spftestimonial-fieldset > .spftestimonial-help {
515
+ left: -5px;
516
+ right: auto;
517
+ }
518
+
519
+ /**
520
+ * 05. Nav Menu
521
+ */
522
+ .spftestimonial-nav-menu-options > .spftestimonial-fields {
523
+ margin-left: 0;
524
+ margin-right: -10px;
525
+ }
526
+
527
+ .spftestimonial-nav-menu-title {
528
+ padding-left: 14px;
529
+ padding-right: 12px;
530
+ }
531
+
532
+ .spftestimonial-nav-menu-icon {
533
+ margin-right: 0;
534
+ margin-left: 5px;
535
+ }
536
+
537
+ /**
538
+ * 06. Modal
539
  */
540
  .spftestimonial-modal-content .spftestimonial-field {
541
  padding: 15px 15px 15px 30px;
551
  }
552
 
553
  /**
554
+ * 07. Customizer
555
  */
556
  .control-section .spftestimonial-field .spftestimonial-fieldset {
557
  margin-right: 0;
558
  }
559
 
560
  /**
561
+ * 08. Responsive
562
  */
563
  @media only screen and (max-width: 1200px) {
564
  .spftestimonial-metabox .spftestimonial-field .spftestimonial-fieldset {
572
  }
573
  }
574
  /**
575
+ * 09. Others
576
  */
577
  .spftestimonial-field .spftestimonial--transparent-slider {
578
  margin-left: 0;
admin/views/framework/assets/css/spftestimonial-rtl.min.css CHANGED
@@ -1 +1 @@
1
- .spftestimonial{margin-left:20px;margin-right:0}.spftestimonial-header h1{float:right}.spftestimonial-header fieldset{float:left}.spftestimonial-buttons{float:left;direction:ltr}.spftestimonial-header-left{float:right}.spftestimonial-header-right{float:left}.spftestimonial-nav{float:right}.spftestimonial-nav ul{clear:right}.spftestimonial-nav ul li .spftestimonial-section-active:after{right:auto;left:0;border-left-color:#fff;border-right-color:transparent}.spftestimonial-nav ul li .spftestimonial-arrow:after{content:"\f053";right:auto;left:10px}.spftestimonial-nav ul li.spftestimonial-tab-active .spftestimonial-arrow:after{-moz-transform:rotate(-90deg);-ms-transform:rotate(-90deg);-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}.spftestimonial-nav ul ul li a{padding-right:25px;padding-left:15px}.spftestimonial-nav ul ul:before{left:auto;right:15px}.spftestimonial-nav .fa{margin-left:5px;margin-right:0}.spftestimonial-nav-background{left:auto;right:0}.spftestimonial-content{margin-left:0;margin-right:225px}.spftestimonial-sections{float:right}.spftestimonial-show-all .spftestimonial-content{margin-right:0;overflow:hidden}.spftestimonial-expand-all{float:right;right:auto;left:40px;margin-right:0;margin-left:4px}.spftestimonial-search{float:right}.spftestimonial-search input{margin:0 0 0 5px}.spftestimonial-copyright{float:right}.spftestimonial-metabox{margin:-6px -12px -12px -12px}.spftestimonial-metabox .spftestimonial-section-title{padding:20px}.spftestimonial-metabox .spftestimonial-section-title .fa{margin-left:5px;margin-right:0}.spftestimonial-section-title .fa{margin-left:5px;margin-right:0}.spftestimonial-field .spftestimonial-title{float:right}.spftestimonial-field .spftestimonial-fieldset{margin-left:0;margin-right:30%}.spftestimonial-pseudo-field{padding:0 0 0 5px!important}.spftestimonial-field-typography select{margin:0;width:100%}.spftestimonial-field-typography .spftestimonial--blocks-inputs .spftestimonial--blocks{flex-direction:row-reverse}.spftestimonial-field-checkbox .spftestimonial--inline-list li,.spftestimonial-field-radio .spftestimonial--inline-list li{margin-right:0;margin-left:15px}.spftestimonial-field-switcher .spftestimonial--switcher{float:right}.spftestimonial-field-switcher .spftestimonial--label{float:right;margin-left:0;margin-right:5px}.spftestimonial-field-upload .spftestimonial--buttons,.spftestimonial-field-upload .spftestimonial--remove{margin-left:0;margin-right:5px}.spftestimonial-field-group .spftestimonial-cloneable-title{padding:15px 10px 15px 65px}.spftestimonial-field-group .spftestimonial-cloneable-helper{right:auto;left:10px}.spftestimonial-field-repeater .spftestimonial-repeater-helper{border-left:0;border-right:1px solid #eee}.spftestimonial-help{right:auto;left:5px}.spftestimonial-field-icon .button{margin-right:0;margin-left:5px}.spftestimonial-field-icon .spftestimonial-icon-preview i{margin-right:0;margin-left:5px}.spftestimonial-field-gallery ul li{margin-right:0;margin-left:5px}.spftestimonial-field-gallery .button{margin-right:0;margin-left:5px}.spftestimonial-field-tabbed .spftestimonial-tabbed-nav .fa{padding-right:0;padding-left:5px}.spftestimonial-field-tabbed .spftestimonial-tabbed-nav a{margin-right:0;margin-left:5px}.spftestimonial-field-media .button{margin-left:0;margin-right:7px}.spftestimonial-field-media .hidden+.button{margin-right:0}.spftestimonial-notice{border-left:none;border-right-style:solid;border-right-width:4px}.spftestimonial-field-border .spftestimonial--input,.spftestimonial-field-dimensions .spftestimonial--input,.spftestimonial-field-spacing .spftestimonial--input{float:right;margin-right:0;margin-left:15px}.spftestimonial-field-border .spftestimonial--left,.spftestimonial-field-dimensions .spftestimonial--left,.spftestimonial-field-spacing .spftestimonial--left{float:right}.spftestimonial-field-background .spftestimonial--block{float:right}.spftestimonial-field-background .spftestimonial--media,.spftestimonial-field-background .spftestimonial--select{padding-right:0}.spftestimonial-field-background .spftestimonial--title{margin-right:0;margin-left:5px}.spftestimonial-field-spinner .spftestimonial--spin{float:right}.spftestimonial-field-slider .ui-slider{direction:ltr}.spftestimonial-field-slider input[type=text]{margin-left:0;margin-right:15px}.spftestimonial-field-slider em{padding-left:0;padding-right:5px}.spftestimonial-field-button_set .spftestimonial--button-group{float:right}.spftestimonial-field-link_color .spftestimonial--left{float:right;margin-right:0;margin-left:10px}.spftestimonial-field-color_group .spftestimonial--left{float:right;margin-right:0;margin-left:10px}.spftestimonial-field-palette .spftestimonial--palette{margin-right:0;margin-left:10px}.spftestimonial-modal-content .spftestimonial-field{padding:15px 15px 15px 30px}.spftestimonial-modal-title{padding:0 16px 0 36px}.spftestimonial-modal-close{right:auto;left:0}.control-section .spftestimonial-field .spftestimonial-fieldset{margin-right:0}@media only screen and (max-width:1200px){.spftestimonial-metabox .spftestimonial-field .spftestimonial-fieldset{margin-left:0}}@media only screen and (max-width:782px){.spftestimonial .spftestimonial-content,.spftestimonial .spftestimonial-fieldset{margin-right:0}}.spftestimonial-field .spftestimonial--transparent-slider{margin-left:0;margin-right:2px}.spftestimonial-field .spftestimonial--transparent-slider .ui-slider-handle{margin:0 -11px}.spftestimonial-field .spftestimonial--transparent-offset{background-position:center right}.spftestimonial-field .spftestimonial--transparent-text{right:auto;left:10px}
1
+ .spftestimonial-options{margin-left:20px;margin-right:0}.spftestimonial-header h1{float:right}.spftestimonial-header fieldset{float:left}.spftestimonial-buttons{float:left;direction:ltr}.spftestimonial-header-left{float:right}.spftestimonial-header-right{float:left}.spftestimonial-nav{float:right}.spftestimonial-nav ul{clear:right}.spftestimonial-nav ul li .spftestimonial-active:after{right:auto;left:0;border-left-color:#fff;border-right-color:transparent}.spftestimonial-nav ul li .spftestimonial-arrow:after{content:"\f053";right:auto;left:10px}.spftestimonial-nav ul li.spftestimonial-tab-expanded .spftestimonial-arrow:after{transform:rotate(-90deg)}.spftestimonial-nav ul ul li a{padding-right:25px;padding-left:15px}.spftestimonial-nav ul ul:before{left:auto;right:15px}.spftestimonial-nav .spftestimonial-tab-icon{margin-left:5px;margin-right:0}.spftestimonial-nav-background{left:auto;right:0}.spftestimonial-content{margin-left:0;margin-right:225px}.spftestimonial-sections{float:right}.spftestimonial-show-all .spftestimonial-content{margin-right:0;overflow:hidden}.spftestimonial-expand-all{float:right;right:auto;left:40px;margin-right:0;margin-left:4px}.spftestimonial-search{float:right}.spftestimonial-search input{margin:0 0 0 5px}.spftestimonial-copyright{float:right}.spftestimonial-metabox{margin:-6px -12px -12px -12px}.spftestimonial-metabox .spftestimonial-section-title{padding:20px}.spftestimonial-section-title .spftestimonial-section-icon{margin-left:5px;margin-right:0}.spftestimonial-field .spftestimonial-title{float:right}.spftestimonial-field .spftestimonial-fieldset{float:left}.spftestimonial-pseudo-field{padding:0 0 0 5px!important}.spftestimonial-field-typography select{margin:0;width:100%}.spftestimonial-field-typography .spftestimonial--blocks-inputs .spftestimonial--blocks{flex-direction:row-reverse}.spftestimonial-field-typography .spftestimonial--unit{left:4px;right:auto}.spftestimonial-field-checkbox ul ul li,.spftestimonial-field-radio ul ul li{margin-left:0;margin-right:8px}.spftestimonial-field-checkbox ul ul li:first-child,.spftestimonial-field-radio ul ul li:first-child{margin-right:0}.spftestimonial-field-checkbox .spftestimonial--inline-list li,.spftestimonial-field-radio .spftestimonial--inline-list li{margin-right:0;margin-left:15px}.spftestimonial-field-checkbox .spftestimonial--text,.spftestimonial-field-radio .spftestimonial--text{margin-left:0;margin-right:5px}.spftestimonial-field-switcher .spftestimonial--switcher{float:right}.spftestimonial-field-switcher .spftestimonial--label{float:right;margin-left:0;margin-right:5px}.spftestimonial-field-upload .spftestimonial--button,.spftestimonial-field-upload .spftestimonial--remove{margin-left:0;margin-right:5px}.spftestimonial-field-group .spftestimonial-cloneable-title{padding:15px 10px 15px 65px}.spftestimonial-field-group .spftestimonial-cloneable-helper{right:auto;left:10px}.spftestimonial-field-repeater .spftestimonial-repeater-helper{border-left:0;border-right:1px solid #eee}.spftestimonial-help{right:auto;left:5px}.spftestimonial-field-icon .button{margin-right:0;margin-left:5px}.spftestimonial-field-icon .spftestimonial-icon-preview i{margin-right:0;margin-left:5px}.spftestimonial-field-gallery ul li{margin-right:0;margin-left:5px}.spftestimonial-field-gallery .button{margin-right:0;margin-left:5px}.spftestimonial-field-tabbed .spftestimonial-tabbed-nav .spftestimonial--icon{padding-right:0;padding-left:5px}.spftestimonial-field-tabbed .spftestimonial-tabbed-nav a{margin-right:0;margin-left:5px}.spftestimonial-field-media .button{margin-left:0;margin-right:7px}.spftestimonial-field-media .hidden+.button{margin-right:0}.spftestimonial-notice{border-left:none;border-right-style:solid;border-right-width:4px}.spftestimonial-field-border .spftestimonial--input,.spftestimonial-field-border .spftestimonial-fieldset,.spftestimonial-field-dimensions .spftestimonial--input,.spftestimonial-field-dimensions .spftestimonial-fieldset,.spftestimonial-field-spacing .spftestimonial--input,.spftestimonial-field-spacing .spftestimonial-fieldset{direction:ltr}.spftestimonial-field-border .spftestimonial--color,.spftestimonial-field-border .spftestimonial--inputs,.spftestimonial-field-dimensions .spftestimonial--color,.spftestimonial-field-dimensions .spftestimonial--inputs,.spftestimonial-field-spacing .spftestimonial--color,.spftestimonial-field-spacing .spftestimonial--inputs{float:right}.spftestimonial-field-border .spftestimonial--color,.spftestimonial-field-dimensions .spftestimonial--color,.spftestimonial-field-spacing .spftestimonial--color{margin-right:4px;direction:rtl}.spftestimonial-field-background .spftestimonial--block{float:right}.spftestimonial-field-background .spftestimonial--media,.spftestimonial-field-background .spftestimonial--select{padding-right:0}.spftestimonial-field-background .spftestimonial--title{margin-right:0;margin-left:5px}.spftestimonial-field-spinner .spftestimonial--spin{float:right;direction:ltr}.spftestimonial-field-slider .spftestimonial-slider-ui{direction:ltr;margin-right:0;margin-left:15px}.spftestimonial-field-slider .spftestimonial--input{direction:ltr}.spftestimonial-field-button_set .spftestimonial--button-group{float:right}.spftestimonial-field-link_color .spftestimonial--left{float:right;margin-right:0;margin-left:10px}.spftestimonial-field-color_group .spftestimonial--left{float:right;margin-right:0;margin-left:10px}.spftestimonial-field-palette .spftestimonial--palette{margin-right:0;margin-left:10px}.spftestimonial-field-accordion .spftestimonial--icon{margin-right:0;margin-left:2px}.spftestimonial-field-date .spftestimonial--to{margin-left:0;margin-right:7px}.spftestimonial-field-map .spftestimonial--map-input:last-child{padding-left:0;padding-right:10px}.spftestimonial-field-sortable .spftestimonial-sortable-helper{border-left:none;border-right:1px solid #eee}.spftestimonial-field-number .spftestimonial--wrap{float:right}.spftestimonial-field-number .spftestimonial--unit{left:4px;right:auto}.spftestimonial-taxonomy-add-fields{margin-right:0;margin-left:30px}.spftestimonial-taxonomy-add-fields .spftestimonial-field>.spftestimonial-fieldset>.spftestimonial-help{left:-5px;right:auto}.spftestimonial-taxonomy-edit-fields{margin-right:0;margin-left:35px}.spftestimonial-taxonomy-edit-fields .spftestimonial-field>.spftestimonial-fieldset>.spftestimonial-help{right:auto;left:-5px}.spftestimonial-profile-options>h2>.fa{padding-right:0;padding-left:7px}.spftestimonial-profile-options>.spftestimonial-field>.spftestimonial-fieldset>.spftestimonial-help{left:-5px;right:auto}.spftestimonial-nav-menu-options>.spftestimonial-fields{margin-left:0;margin-right:-10px}.spftestimonial-nav-menu-title{padding-left:14px;padding-right:12px}.spftestimonial-nav-menu-icon{margin-right:0;margin-left:5px}.spftestimonial-modal-content .spftestimonial-field{padding:15px 15px 15px 30px}.spftestimonial-modal-title{padding:0 16px 0 36px}.spftestimonial-modal-close{right:auto;left:0}.control-section .spftestimonial-field .spftestimonial-fieldset{margin-right:0}@media only screen and (max-width:1200px){.spftestimonial-metabox .spftestimonial-field .spftestimonial-fieldset{margin-left:0}}@media only screen and (max-width:782px){.spftestimonial .spftestimonial-content,.spftestimonial .spftestimonial-fieldset{margin-right:0}}.spftestimonial-field .spftestimonial--transparent-slider{margin-left:0;margin-right:2px}.spftestimonial-field .spftestimonial--transparent-slider .ui-slider-handle{margin:0 -11px}.spftestimonial-field .spftestimonial--transparent-offset{background-position:center right}.spftestimonial-field .spftestimonial--transparent-text{right:auto;left:10px}
admin/views/framework/assets/css/spftestimonial.css CHANGED
@@ -1,4 +1,9 @@
1
  /**
 
 
 
 
 
2
  * 01. Base
3
  * 01. 01. Header
4
  * 01. 02. Sticky
@@ -12,6 +17,7 @@
12
  * 01. 10. Show All Options
13
  * 01. 11. Search Input
14
  * 01. 12. Metabox
 
15
  * 01. 14. Help Tooltip
16
  * 02. Themes
17
  * 02. 01. Theme Dark
@@ -21,7 +27,7 @@
21
  * 03. 02. Field: accordion
22
  * 03. 03. Field: background
23
  * 03. 04. Field: backup
24
- * 03. 05. Field: border, spacing, dimensions
25
  * 03. 06. Field: button_set
26
  * 03. 07. Field: checkbox, radio
27
  * 03. 08. Field: code_editor
@@ -31,6 +37,7 @@
31
  * 03. 12. Field: date
32
  * 03. 13. Field: gallery
33
  * 03. 14. Field: group
 
34
  * 03. 16. Field: image_select
35
  * 03. 17. Field: link_color
36
  * 03. 18. Field: map
@@ -54,14 +61,21 @@
54
  * 03. 36. Field: submessage
55
  * 03. 37. Field: notice
56
  * 03. 38. Field: number
57
- * 03. 39. Field: others
 
58
  * 04. Widget
59
  * 05. Customizer
60
- * 08. Modal
61
- * 08. 03. Icon Modal
62
- * 09. Helper
63
- * 11. Responsive
64
- * 12. Others
 
 
 
 
 
 
65
  *
66
  * ---------------------------------------------------------
67
  *
@@ -81,6 +95,9 @@
81
  .spftestimonial-ab-icon {
82
  top: 2px;
83
  }
 
 
 
84
 
85
  #screen-meta-links + .spftestimonial-options {
86
  margin-top: 40px;
@@ -100,22 +117,9 @@
100
 
101
  .spftestimonial-header-inner {
102
  padding: 25px;
103
- }
104
- /* .spftestimonial-header-inner h1 {
105
- float: left;
106
- font-size: 1.5em;
107
- line-height: 26px;
108
- font-weight: 400;
109
- margin: 0;
110
- } */
111
- .spftestimonial-header-inner h1 img {
112
- height: 24px;
113
- width: 24px;
114
- margin-right: 8px;
115
- margin-bottom: -4px;
116
  }
117
  .spftestimonial-header-inner h1 {
118
- color: #444444;
119
  float: left;
120
  font-size: 20px;
121
  line-height: 35px;
@@ -132,87 +136,35 @@
132
  */
133
  .spftestimonial-sticky .spftestimonial-header-inner {
134
  position: fixed;
135
- z-index: 99999;
136
  top: 32px;
137
- -moz-box-shadow: 0 5px 25px rgba(0, 0, 0, 0.125);
138
- -webkit-box-shadow: 0 5px 25px rgba(0, 0, 0, 0.125);
139
- box-shadow: 0 5px 25px rgba(0, 0, 0, 0.125);
140
  }
141
 
142
  /**
143
  * 01. 03. Header Buttons
144
  */
145
- .spftestimonial-header-left {
146
- float: left;
147
- }
148
-
149
- .spftestimonial-header-right {
150
  float: right;
151
  }
152
-
153
- .spftestimonial-buttons .button {
154
- margin: 0 4px;
155
- padding: 0px 16px;
156
- border-radius: 0;
157
- height: 38px;
158
- font-size: 13px;
159
- font-weight: 500;
160
- text-transform: uppercase;
161
- color: #ffffff;
162
- }
163
-
164
- .spftestimonial-buttons .button.spftestimonial-save-ajax {
165
- background-color: #02cc7b;
166
- border-color: transparent;
167
- color: #fff !important;
168
- -webkit-box-shadow: none;
169
- box-shadow: none;
170
- text-shadow: none;
171
- border-radius: 4px;
172
- height: 38px;
173
- width: 75px;
174
- -webkit-transition: background-color 0.2s;
175
- transition: background-color 0.2s;
176
- }
177
-
178
- .spftestimonial-buttons .button.spftestimonial-save-ajax:hover {
179
- background-color: #02bb71;
180
- }
181
-
182
- .spftestimonial-buttons .button.spftestimonial-save-ajax:focus {
183
- color: #fff;
184
- }
185
-
186
- .spftestimonial-buttons .button.spftestimonial-save-ajax[disabled] {
187
- background-color: #02bb71 !important;
188
- border: none;
189
  }
190
-
191
- .spftestimonial-buttons .button.spftestimonial-reset-all,
192
- .spftestimonial-buttons .button.spftestimonial-reset-section {
193
- background-color: #cd3c3c !important;
194
- border-color: transparent !important;
195
- -webkit-box-shadow: none !important;
196
  box-shadow: none !important;
197
- text-shadow: none !important;
198
- border-radius: 4px;
199
- height: 38px;
200
- -webkit-transition: background-color 0.2s;
201
- transition: background-color 0.2s;
202
  }
203
-
204
- .spftestimonial-buttons .button.spftestimonial-reset-all:hover,
205
- .spftestimonial-buttons .button.spftestimonial-reset-section:hover {
206
- background-color: #b82f2f !important;
207
  }
208
 
209
- .spftestimonial-buttons .button.spftestimonial-reset-section {
210
- background-color: #77777c !important;
211
  }
212
 
213
- .spftestimonial-buttons .button.spftestimonial-reset-section:hover {
214
- background-color: #616166 !important;
215
- color: #fff;
216
  }
217
 
218
  /**
@@ -223,7 +175,6 @@
223
  position: relative;
224
  z-index: 10;
225
  float: left;
226
- width: 225px;
227
  }
228
  .spftestimonial-nav ul {
229
  clear: left;
@@ -239,52 +190,30 @@
239
  display: block;
240
  padding: 14px 12px;
241
  text-decoration: none;
242
- -moz-transition: all 0.3s ease;
243
- -o-transition: all 0.3s ease;
244
- -webkit-transition: all 0.3s ease;
245
- transition: all 0.3s ease;
246
  }
247
  .spftestimonial-nav ul li a:focus {
248
  outline: none;
249
- -moz-box-shadow: none;
250
- -webkit-box-shadow: none;
251
  box-shadow: none;
252
  }
253
- .spftestimonial-nav ul li .spftestimonial-section-active:after {
254
- content: " ";
255
- position: absolute;
256
- right: 0;
257
- top: 50%;
258
- height: 0;
259
- width: 0;
260
- pointer-events: none;
261
- border: solid transparent;
262
- border-right-color: #fff;
263
- border-width: 4px;
264
- margin-top: -4px;
265
- }
266
  .spftestimonial-nav ul li .spftestimonial-arrow:after {
267
  content: "\f054";
268
  display: inline-block;
269
- font-family: "FontAwesome";
 
270
  font-size: 9px;
271
  line-height: 1;
272
  position: absolute;
273
  right: 10px;
274
  top: 50%;
275
  margin-top: -4px;
276
- -moz-transform: rotate(0);
277
- -ms-transform: rotate(0);
278
- -webkit-transform: rotate(0);
279
- transform: rotate(0);
280
- }
281
- .spftestimonial-nav ul li.spftestimonial-tab-active .spftestimonial-arrow:after {
282
- -moz-transform: rotate(90deg);
283
- -ms-transform: rotate(90deg);
284
- -webkit-transform: rotate(90deg);
285
  transform: rotate(90deg);
286
  }
287
- .spftestimonial-nav ul li.spftestimonial-tab-active ul {
288
  display: block;
289
  }
290
  .spftestimonial-nav ul ul {
@@ -295,10 +224,10 @@
295
  font-size: 12px;
296
  padding: 12px 14px 12px 24px;
297
  }
298
- .spftestimonial-nav .fa {
299
  width: 20px;
300
  margin-right: 5px;
301
- font-size: 14px;
302
  text-align: center;
303
  }
304
  .spftestimonial-nav .spftestimonial-label-error {
@@ -306,6 +235,21 @@
306
  vertical-align: top;
307
  }
308
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
309
  .spftestimonial-nav-background {
310
  position: absolute;
311
  top: 0;
@@ -327,12 +271,7 @@
327
  */
328
  .spftestimonial-content {
329
  position: relative;
330
- margin-left: 225px;
331
  background-color: #fff;
332
- -moz-transition: opacity 0.2s;
333
- -o-transition: opacity 0.2s;
334
- -webkit-transition: opacity 0.2s;
335
- transition: opacity 0.2s;
336
  }
337
 
338
  /**
@@ -343,10 +282,6 @@
343
  width: 100%;
344
  }
345
 
346
- .spftestimonial-section {
347
- display: none;
348
- }
349
-
350
  .spftestimonial-section-title {
351
  display: none;
352
  padding: 20px 30px;
@@ -361,7 +296,7 @@
361
  font-weight: bold;
362
  text-transform: uppercase;
363
  }
364
- .spftestimonial-section-title .fa {
365
  margin-right: 5px;
366
  }
367
 
@@ -382,7 +317,7 @@
382
  }
383
 
384
  /**
385
- * 01. 10. Show All Options
386
  */
387
  .spftestimonial-search-all .spftestimonial-nav-background,
388
  .spftestimonial-search-all .spftestimonial-nav,
@@ -410,17 +345,12 @@
410
  padding: 0 8px;
411
  margin-right: 4px;
412
  z-index: 1;
413
- font-size: 14px;
414
- line-height: 28px;
415
  cursor: pointer;
416
  user-select: none;
417
- -moz-border-radius: 2px;
418
- -webkit-border-radius: 2px;
419
  border-radius: 2px;
420
- -moz-transition: all 0.2s;
421
- -o-transition: all 0.2s;
422
- -webkit-transition: all 0.2s;
423
- transition: all 0.2s;
424
  }
425
  .spftestimonial-expand-all span {
426
  font-size: 11px;
@@ -437,20 +367,14 @@
437
  margin: 0 2px 0 0;
438
  border: none;
439
  font-size: 12px;
440
- line-height: 28px;
441
- min-height: 28px;
442
  text-align: inherit;
443
  padding: 0 10px;
444
- -moz-border-radius: 2px;
445
- -webkit-border-radius: 2px;
446
  border-radius: 2px;
447
- -moz-box-shadow: none;
448
- -webkit-box-shadow: none;
449
  box-shadow: none;
450
  }
451
  .spftestimonial-search input:focus {
452
- -moz-box-shadow: none;
453
- -webkit-box-shadow: none;
454
  box-shadow: none;
455
  }
456
 
@@ -458,7 +382,7 @@
458
  .spftestimonial-saving .spftestimonial-content {
459
  cursor: default;
460
  pointer-events: none;
461
- opacity: 0.5;
462
  }
463
 
464
  /**
@@ -467,31 +391,43 @@
467
  .spftestimonial-metabox {
468
  margin: -6px -12px -12px -12px;
469
  }
 
 
 
470
  .spftestimonial-metabox .spftestimonial-section-title {
471
  padding: 20px;
472
  }
473
 
474
  .block-editor-page .spftestimonial-metabox {
475
- margin: -6px -14px -12px -14px;
 
 
 
 
 
476
  }
477
 
478
- .spftestimonial-restore-wrapper {
 
 
479
  text-align: right;
480
- padding: 10px;
481
  border-top: 1px solid #eee;
482
  }
483
- .spftestimonial-restore-wrapper .spftestimonial-button-cancel,
484
- .spftestimonial-restore-wrapper input {
485
  display: none;
486
  }
487
- .spftestimonial-restore-wrapper span {
 
 
 
488
  -webkit-user-select: none;
489
  user-select: none;
490
  }
491
- .spftestimonial-restore-wrapper input:checked ~ .spftestimonial-button-restore {
492
  display: none;
493
  }
494
- .spftestimonial-restore-wrapper input:checked ~ .spftestimonial-button-cancel {
495
  display: inline-block;
496
  }
497
 
@@ -499,18 +435,35 @@
499
  padding: 12px;
500
  }
501
  #side-sortables .spftestimonial-field {
502
- padding: 12px;
503
  }
504
  #side-sortables .spftestimonial-field .spftestimonial-title {
505
  float: none;
506
  width: 100%;
507
- margin-bottom: 10px;
508
  }
509
  #side-sortables .spftestimonial-field .spftestimonial-fieldset {
510
- margin-left: 0;
 
 
 
 
511
  }
512
  #side-sortables .spftestimonial-notice {
513
- padding: 12px 12px 12px 0;
 
 
 
 
 
 
 
 
 
 
 
 
 
514
  }
515
 
516
  /**
@@ -528,8 +481,6 @@
528
  color: #fff;
529
  background-color: #000;
530
  background-color: rgba(0, 0, 0, 0.85);
531
- -moz-border-radius: 4px;
532
- -webkit-border-radius: 4px;
533
  border-radius: 4px;
534
  }
535
 
@@ -568,28 +519,75 @@
568
  }
569
  .spftestimonial-theme-dark .spftestimonial-nav ul li a {
570
  color: #999;
 
571
  background-color: #222;
572
- border-bottom: 1px solid #2f2f2f;
573
  }
574
- .spftestimonial-theme-dark .spftestimonial-nav ul li a:hover {
575
  color: #fff;
 
 
 
576
  }
577
- .spftestimonial-theme-dark .spftestimonial-nav ul li .spftestimonial-section-active {
578
- color: #fff;
579
- background-color: #111;
 
580
  }
581
  .spftestimonial-theme-dark .spftestimonial-nav ul ul li a {
 
582
  background-color: #191919;
583
- border-bottom: 1px solid #2f2f2f;
584
  }
585
- .spftestimonial-theme-dark .spftestimonial-nav ul ul li .spftestimonial-section-active {
586
  background-color: #101010;
587
  }
588
  .spftestimonial-theme-dark .spftestimonial-nav ul ul:before {
589
  background-color: rgba(34, 34, 34, 0.75);
590
  }
591
  .spftestimonial-theme-dark .spftestimonial-nav > ul > li:last-child > a {
592
- border-bottom: none;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
593
  }
594
  .spftestimonial-theme-dark .spftestimonial-nav-background {
595
  background-color: #222;
@@ -598,18 +596,18 @@
598
  color: #555;
599
  background-color: #050505;
600
  }
601
-
 
 
602
  /**
603
  * 02. 02. Theme Light
604
  */
605
  .spftestimonial-theme-light .spftestimonial-container {
606
- border: 1px solid #e5e5e5;
607
- -moz-box-shadow: 0 0 15px rgba(0, 0, 0, 0.04);
608
- -webkit-box-shadow: 0 0 15px rgba(0, 0, 0, 0.04);
609
- box-shadow: 0 0 15px rgba(0, 0, 0, 0.04);
610
  }
611
  .spftestimonial-theme-light .spftestimonial-header-inner {
612
- border-bottom: 1px solid #e5e5e5;
613
  background-color: #f5f5f5;
614
  background: linear-gradient(#fefefe, #f5f5f5);
615
  }
@@ -618,52 +616,73 @@
618
  }
619
  .spftestimonial-theme-light .spftestimonial-expand-all {
620
  color: #999;
621
- background-color: #fff;
622
- -moz-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
623
- -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
624
- box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
625
  }
626
  .spftestimonial-theme-light .spftestimonial-expand-all:hover {
627
  color: #555;
628
  }
629
  .spftestimonial-theme-light .spftestimonial-search input {
630
  color: #555;
631
- background-color: #fff;
632
- -moz-box-shadow: 0px 1px 1px rgba(0, 0, 0, 0.05);
633
- -webkit-box-shadow: 0px 1px 1px rgba(0, 0, 0, 0.05);
634
- box-shadow: 0px 1px 1px rgba(0, 0, 0, 0.05);
635
  }
636
  .spftestimonial-theme-light .spftestimonial-search input::-webkit-input-placeholder {
637
- color: #bbb;
638
  }
639
  .spftestimonial-theme-light .spftestimonial-nav ul li a {
640
- color: #666;
 
641
  background-color: #f5f5f5;
642
- border-bottom: 1px solid #e5e5e5;
643
  }
644
  .spftestimonial-theme-light .spftestimonial-nav ul li a:hover {
645
- color: #222;
646
- }
647
- .spftestimonial-theme-light .spftestimonial-nav ul li .spftestimonial-section-active {
648
- color: #222;
649
  background-color: #fff;
650
  }
651
- .spftestimonial-theme-light .spftestimonial-nav ul li .spftestimonial-section-active:after {
652
- display: none;
 
653
  }
654
  .spftestimonial-theme-light .spftestimonial-nav ul ul li a {
655
  background-color: #eee;
656
- border-bottom: 1px solid #e5e5e5;
657
  }
658
- .spftestimonial-theme-light .spftestimonial-nav > ul > li:last-child > a {
659
- border-bottom: none;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
660
  }
661
  .spftestimonial-theme-light .spftestimonial-nav-background {
662
  background-color: #f5f5f5;
 
663
  }
664
  .spftestimonial-theme-light .spftestimonial-footer {
665
  color: #555;
666
- border-top: 1px solid #e5e5e5;
667
  background-color: #f5f5f5;
668
  background: linear-gradient(#fafafa, #f5f5f5);
669
  }
@@ -673,7 +692,10 @@
673
  */
674
  .spftestimonial-field {
675
  position: relative;
676
- padding: 20px 30px;
 
 
 
677
  }
678
  .spftestimonial-field p:first-child {
679
  margin-top: 0;
@@ -699,10 +721,10 @@
699
  .spftestimonial-field .spftestimonial-title h4 {
700
  margin: 0;
701
  color: #23282d;
702
- display: inline-block;
703
  }
704
  .spftestimonial-field .spftestimonial-fieldset {
705
- margin-left: 25%;
 
706
  }
707
 
708
  .spftestimonial-pseudo-field {
@@ -723,6 +745,9 @@
723
  position: relative;
724
  margin-bottom: 5px;
725
  }
 
 
 
726
  .spftestimonial-field-accordion .spftestimonial-accordion-item h4 {
727
  font-size: 1em;
728
  }
@@ -744,12 +769,13 @@
744
  outline: none;
745
  border-color: #999;
746
  }
747
- .spftestimonial-field-accordion .spftestimonial-accordion-icon {
748
- width: 14px;
749
  text-align: center;
 
750
  }
751
- .spftestimonial-field-accordion .spftestimonial--icon {
752
- width: 20px;
753
  text-align: center;
754
  }
755
  .spftestimonial-field-accordion .spftestimonial-accordion-content {
@@ -767,121 +793,25 @@
767
  display: block;
768
  }
769
 
 
 
 
770
  /**
771
- * 03. 03. Field: background
772
  */
773
- .spftestimonial-field-background .spftestimonial-field {
774
- border: 0 !important;
775
- padding: 0;
776
- margin-bottom: 6px;
777
- margin-right: 6px;
778
  }
779
- .spftestimonial-field-background .spftestimonial--title {
780
- color: #777;
781
- font-size: 12px;
 
 
 
782
  }
783
- .spftestimonial-field-background .spftestimonial--background-colors {
784
- display: flex;
785
- }
786
- .spftestimonial-field-background .spftestimonial--background-attributes {
787
- display: flex;
788
- flex-wrap: wrap;
789
- }
790
- .spftestimonial-field-background .spftestimonial--background-attributes select {
791
- min-width: 100%;
792
- margin: 0;
793
- }
794
- .spftestimonial-field-background .spftestimonial--background-attributes .spftestimonial-field {
795
- flex: 1;
796
- }
797
- .spftestimonial-field-background .spftestimonial--attributes-hidden {
798
- display: none;
799
- }
800
- .spftestimonial-field-background .wp-color-result.button {
801
- margin-bottom: 0;
802
- }
803
-
804
- /**
805
- * 03. 04. Field: backup
806
- */
807
- .spftestimonial-field-backup textarea {
808
- width: 100%;
809
- min-height: 200px;
810
- margin-bottom: 5px;
811
- }
812
- .spftestimonial-field-backup small {
813
- display: inline-block;
814
- margin: 5px;
815
- }
816
- .spftestimonial-field-backup hr {
817
- margin: 20px 0;
818
- border: none;
819
- border-bottom: 1px solid #e5e5e5;
820
- }
821
-
822
- /**
823
- * Field: column, custom_size
824
- */
825
- .spftestimonial-field-custom_size.disabled .spftestimonial-fieldset {
826
- pointer-events: none;
827
- opacity: 0.7;
828
- }
829
- .spftestimonial-field-custom_size.disabled .spftestimonial-fieldset .spftestimonial--input:after{
830
- content: 'Pro';
831
- text-transform: uppercase;
832
- line-height: 30px;
833
- margin-left: 6px;
834
- color: #444;
835
- }
836
- .spftestimonial-field-column .spftestimonial--input input,
837
- .spftestimonial-field-custom_size .spftestimonial--input input {
838
- border-radius: 0 4px 4px 0;
839
- }
840
- .spftestimonial-field-column .spftestimonial--input {
841
- float: left;
842
- }
843
- .spftestimonial-field-custom_size .spftestimonial--input {
844
- float: left;
845
- margin-right: 10px;
846
- margin-bottom: 7px;
847
- }
848
- .spftestimonial-field-custom_size .spftestimonial--input input {
849
- line-height: 30px;
850
- float: left;
851
- margin: 0;
852
- padding: 0;
853
- width: 65px;
854
- max-width: 100%;
855
- text-align: center;
856
- border-radius: 0;
857
- }
858
- .spftestimonial-field-custom_size .spftestimonial--label.spftestimonial--label-unit {
859
- border-right: 1px solid #ddd;
860
- border-left: 0;
861
- border-radius: 0 2px 2px 0;
862
- }
863
- .spftestimonial-field-column .spftestimonial--label,
864
- .spftestimonial-field-custom_size .spftestimonial--label {
865
- float: left;
866
- max-width: 100%;
867
- font-size: 12px;
868
- line-height: 30px;
869
- vertical-align: top;
870
- text-align: center;
871
- color: #555;
872
- border: 1px solid #ddd;
873
- background-color: #eee;
874
- padding: 0 6px;
875
- min-height: 30px;
876
- min-width: 20px;
877
- border-right: 0;
878
- border-radius: 4px 0 0 4px;
879
- }
880
-
881
- /**
882
- * 03. 05. Field: border, spacing, dimensions
883
- */
884
  .spftestimonial-field-border .spftestimonial--inputs,
 
885
  .spftestimonial-field-spacing .spftestimonial--inputs,
886
  .spftestimonial-field-column .spftestimonial--inputs,
887
  .spftestimonial-field-dimensions .spftestimonial--inputs {
@@ -891,6 +821,7 @@
891
  }
892
  .spftestimonial-field-border .spftestimonial--input,
893
  .spftestimonial-field-spacing .spftestimonial--input,
 
894
  .spftestimonial-field-column .spftestimonial--input,
895
  .spftestimonial-field-dimensions .spftestimonial--input {
896
  display: flex;
@@ -899,6 +830,7 @@
899
  box-sizing: border-box;
900
  }
901
  .spftestimonial-field-border .spftestimonial--input select,
 
902
  .spftestimonial-field-spacing .spftestimonial--input select,
903
  .spftestimonial-field-dimensions .spftestimonial--input select {
904
  margin: 0;
@@ -906,26 +838,25 @@
906
  .spftestimonial-field-border .spftestimonial--input input,
907
  .spftestimonial-field-spacing .spftestimonial--input input,
908
  .spftestimonial-field-column .spftestimonial--input input,
 
909
  .spftestimonial-field-dimensions .spftestimonial--input input {
910
  position: relative;
911
  z-index: 1;
912
  margin: 0;
913
  width: 65px;
914
  max-width: 100%;
915
- padding: 0;
916
  text-align: center;
917
- border: 1px solid #ddd;
918
  }
919
  .spftestimonial-field-border .spftestimonial--color,
920
  .spftestimonial-field-spacing .spftestimonial--color,
 
921
  .spftestimonial-field-dimensions .spftestimonial--color {
922
  float: left;
923
  }
924
- .spftestimonial-field-border .spftestimonial--color .spftestimonial--title{
925
- margin-top: -22px;
926
- }
927
  .spftestimonial-field-border .spftestimonial--label,
928
  .spftestimonial-field-spacing .spftestimonial--label,
 
 
929
  .spftestimonial-field-dimensions .spftestimonial--label {
930
  display: flex;
931
  flex-direction: column;
@@ -941,28 +872,36 @@
941
  background-color: #f5f5f5;
942
  }
943
  .spftestimonial-field-border .spftestimonial--icon,
 
944
  .spftestimonial-field-spacing .spftestimonial--icon,
 
945
  .spftestimonial-field-dimensions .spftestimonial--icon {
946
  border-right: 0;
947
  border-radius: 4px 0 0 4px;
948
  }
949
  .spftestimonial-field-border .spftestimonial--icon + input,
 
950
  .spftestimonial-field-spacing .spftestimonial--icon + input,
 
951
  .spftestimonial-field-dimensions .spftestimonial--icon + input {
952
- border-top-left-radius: 0;
953
- border-bottom-left-radius: 0;
954
  }
955
  .spftestimonial-field-border .spftestimonial--unit,
 
956
  .spftestimonial-field-spacing .spftestimonial--unit,
 
957
  .spftestimonial-field-dimensions .spftestimonial--unit {
958
  border-left: 0;
959
  border-radius: 0 4px 4px 0;
960
  }
961
  .spftestimonial-field-border .spftestimonial--is-unit,
 
962
  .spftestimonial-field-spacing .spftestimonial--is-unit,
 
963
  .spftestimonial-field-dimensions .spftestimonial--is-unit {
964
- border-top-right-radius: 0;
965
- border-bottom-right-radius: 0;
966
  }
967
 
968
  /**
@@ -977,13 +916,12 @@
977
  float: left;
978
  cursor: pointer;
979
  padding: 7px 14px;
980
- min-width: 40px;
981
  text-align: center;
982
  color: #555;
983
  border: 1px solid #cccccc;
984
  background-color: #f7f7f7;
985
  user-select: none;
986
- -webkit-user-select: none;
987
  box-shadow: 0 1px 0 rgba(0, 0, 0, 0.1);
988
  }
989
  .spftestimonial-field-button_set .spftestimonial--button:first-child {
@@ -1015,23 +953,39 @@
1015
  .spftestimonial-field-checkbox ul,
1016
  .spftestimonial-field-radio ul {
1017
  margin: 0;
1018
- padding: 0 1px;
1019
  list-style-type: none;
1020
  overflow-y: auto;
1021
- max-height: 305px;
 
 
 
1022
  }
1023
  .spftestimonial-field-checkbox ul ul,
1024
  .spftestimonial-field-radio ul ul {
1025
  max-height: none;
1026
  }
 
 
 
 
 
 
 
 
 
 
 
 
1027
  .spftestimonial-field-checkbox .spftestimonial--inline-list li,
1028
  .spftestimonial-field-radio .spftestimonial--inline-list li {
1029
  display: inline-block;
1030
  margin-right: 15px;
1031
  }
1032
- .spftestimonial-field-checkbox input[type="radio"]:checked:before,
1033
- .spftestimonial-field-radio input[type="radio"]:checked:before {
1034
- line-height: 10px;
 
1035
  }
1036
  .spftestimonial-field-checkbox .spftestimonial-checker,
1037
  .spftestimonial-field-radio .spftestimonial-checker {
@@ -1062,8 +1016,10 @@
1062
  max-width: 100%;
1063
  }
1064
  .spftestimonial-field-color .button.wp-picker-clear {
 
1065
  margin-left: 6px;
1066
- padding: 2px 8px;
 
1067
  }
1068
 
1069
  /**
@@ -1074,8 +1030,7 @@
1074
  margin-right: 10px;
1075
  margin-bottom: 5px;
1076
  }
1077
- .spftestimonial-field-color_group .spftestimonial--title,
1078
- .spftestimonial-field-border .spftestimonial--color .spftestimonial--title {
1079
  color: #999;
1080
  margin-bottom: 5px;
1081
  }
@@ -1096,251 +1051,149 @@
1096
  }
1097
 
1098
  /**
1099
- * 03. 12. Field: date
1100
  */
1101
- .spftestimonial-field-date input {
1102
- margin: 0;
1103
- }
1104
- .spftestimonial-field-date .spftestimonial--to {
1105
- margin-left: 7px;
1106
- }
1107
-
1108
- .spftestimonial-datepicker-wrapper {
1109
- margin-top: 5px;
1110
- width: auto;
1111
- background-color: #fff;
1112
- z-index: 9999999 !important;
1113
- -moz-box-shadow: 0 0 30px rgba(0, 0, 0, 0.15);
1114
- -webkit-box-shadow: 0 0 30px rgba(0, 0, 0, 0.15);
1115
- box-shadow: 0 0 30px rgba(0, 0, 0, 0.15);
1116
- }
1117
- .spftestimonial-datepicker-wrapper * {
1118
- float: none;
1119
- margin: 0;
1120
- padding: 0;
1121
- font-family: inherit;
1122
- font-weight: normal;
1123
- font-style: normal;
1124
- text-decoration: none;
1125
- border: 0;
1126
- border-radius: 0;
1127
- box-shadow: none;
1128
  }
1129
- .spftestimonial-datepicker-wrapper .ui-widget-header,
1130
- .spftestimonial-datepicker-wrapper .ui-datepicker-header {
1131
- color: #fff;
1132
- background: #00a0d2;
1133
  }
1134
- .spftestimonial-datepicker-wrapper .ui-datepicker-header .ui-state-hover {
 
1135
  cursor: pointer;
 
 
 
 
 
 
 
 
 
1136
  }
1137
- .spftestimonial-datepicker-wrapper .ui-datepicker-title {
1138
- font-size: 14px;
1139
- line-height: 40px;
1140
- text-align: center;
1141
- }
1142
- .spftestimonial-datepicker-wrapper .ui-datepicker-prev,
1143
- .spftestimonial-datepicker-wrapper .ui-datepicker-next {
1144
- position: static;
1145
- top: auto;
1146
- left: auto;
1147
- right: auto;
1148
- font-family: "FontAwesome";
1149
- font-size: 12px;
1150
  text-align: center;
1151
- width: 41px;
1152
- height: 40px;
1153
- line-height: 40px;
 
 
 
 
 
1154
  color: #fff;
1155
- background-color: rgba(255, 255, 255, 0.1);
1156
- text-rendering: auto;
1157
- -webkit-font-smoothing: antialiased;
1158
- -moz-osx-font-smoothing: grayscale;
1159
- }
1160
- .spftestimonial-datepicker-wrapper .ui-datepicker-next span,
1161
- .spftestimonial-datepicker-wrapper .ui-datepicker-prev span {
1162
- display: none;
1163
- }
1164
- .spftestimonial-datepicker-wrapper .ui-datepicker-prev {
1165
- float: left;
1166
- }
1167
- .spftestimonial-datepicker-wrapper .ui-datepicker-next {
1168
- float: right;
1169
- }
1170
- .spftestimonial-datepicker-wrapper .ui-datepicker-prev:before {
1171
- content: '\f053';
1172
  }
1173
- .spftestimonial-datepicker-wrapper .ui-datepicker-next:before {
1174
- content: '\f054';
 
 
 
1175
  }
1176
- .spftestimonial-datepicker-wrapper .ui-datepicker-prev-hover,
1177
- .spftestimonial-datepicker-wrapper .ui-datepicker-next-hover {
1178
- opacity: 0.75;
1179
  }
1180
- .spftestimonial-datepicker-wrapper tbody .ui-datepicker-week-col {
1181
- background-color: #f7f7f7;
 
 
 
1182
  }
1183
- .spftestimonial-datepicker-wrapper .ui-datepicker-buttonpane {
1184
- padding: 10px;
1185
- text-align: center;
1186
- background-color: #f7f7f7;
1187
  }
1188
- .spftestimonial-datepicker-wrapper .ui-datepicker-buttonpane button {
1189
  cursor: pointer;
1190
- margin: 0 5px;
1191
- padding: 7px 14px;
1192
- border: 1px solid #eee;
1193
- background-color: #fff;
1194
- }
1195
- .spftestimonial-datepicker-wrapper select {
1196
- margin: 0 4px;
1197
- }
1198
- .spftestimonial-datepicker-wrapper select option {
1199
- color: #555;
1200
- }
1201
- .spftestimonial-datepicker-wrapper table {
1202
- font-size: 13px;
1203
- border-collapse: collapse;
1204
- width: 100%;
1205
- }
1206
- .spftestimonial-datepicker-wrapper thead {
1207
- color: #fff;
1208
- background: #32373c;
1209
- }
1210
- .spftestimonial-datepicker-wrapper th {
1211
  text-align: center;
1212
- padding: 7px;
1213
- border: 1px solid #444;
1214
- }
1215
- .spftestimonial-datepicker-wrapper td {
 
 
 
 
 
 
 
 
 
1216
  text-align: center;
1217
- border: 1px solid #f4f4f4;
1218
- }
1219
- .spftestimonial-datepicker-wrapper td.ui-datepicker-other-month {
1220
- border: transparent;
1221
- }
1222
- .spftestimonial-datepicker-wrapper td .ui-state-default {
1223
- color: #555;
1224
- width: auto;
1225
- display: block;
1226
- padding: 6px 12px;
1227
  }
1228
- .spftestimonial-datepicker-wrapper td .ui-state-active,
1229
- .spftestimonial-datepicker-wrapper td .ui-state-hover {
1230
- color: #fff;
1231
- background-color: #0073aa;
1232
  }
1233
- .spftestimonial-datepicker-wrapper td.ui-state-disabled .ui-state-default {
1234
- opacity: 0.5;
1235
  }
1236
 
1237
- /**
1238
- * 03. 13. Field: gallery
1239
- */
1240
- .spftestimonial-field-gallery input {
1241
- display: none;
1242
- }
1243
- .spftestimonial-field-gallery ul {
1244
- margin: 0;
1245
- padding: 0;
1246
- list-style-type: none;
1247
- }
1248
- .spftestimonial-field-gallery ul li {
1249
- display: inline-block;
1250
- position: relative;
1251
- padding: 4px;
1252
- margin: 0 5px 10px 0;
1253
- border: 1px solid #ccc;
1254
- background-color: #f9f9f9;
1255
- -moz-border-radius: 2px;
1256
- -webkit-border-radius: 2px;
1257
- border-radius: 2px;
1258
- -moz-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.08);
1259
- -webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.08);
1260
- box-shadow: 0 1px 0 rgba(0, 0, 0, 0.08);
1261
- }
1262
- .spftestimonial-field-gallery ul li img {
1263
- max-height: 60px;
1264
- display: inline-block;
1265
- vertical-align: middle;
1266
- }
1267
- .spftestimonial-field-gallery .button {
1268
- margin-right: 5px;
1269
- margin-bottom: 5px;
1270
- }
1271
 
1272
  /**
1273
- * 03. 14. Field: group
1274
  */
1275
- .spftestimonial-field-group .spftestimonial-cloneable-hidden {
1276
- display: none !important;
1277
  }
1278
- .spftestimonial-field-group .spftestimonial-cloneable-wrapper {
1279
- position: relative;
1280
  }
1281
- .spftestimonial-field-group .spftestimonial-cloneable-item {
1282
- display: none;
1283
- position: relative;
1284
  margin-bottom: 5px;
 
1285
  }
1286
- .spftestimonial-field-group .spftestimonial-cloneable-item h4 {
1287
  font-size: 1em;
1288
  }
1289
- .spftestimonial-field-group .ui-accordion .spftestimonial-cloneable-item {
1290
- display: block;
1291
- }
1292
- .spftestimonial-field-group .spftestimonial-cloneable-content {
1293
- border: 1px solid #ccd0d4;
1294
  background-color: #fff;
1295
- box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04);
1296
  }
1297
- .spftestimonial-field-group .spftestimonial-cloneable-content > .spftestimonial-field {
1298
  padding: 15px;
1299
  }
1300
- .spftestimonial-field-group .spftestimonial-cloneable-title {
1301
- display: block;
1302
- cursor: pointer;
1303
- position: relative;
1304
- user-select: none;
1305
- margin: 0;
1306
- padding: 15px 65px 15px 10px;
1307
- min-height: 0;
1308
- font-size: 100%;
1309
- border: 1px solid #ccd0d4;
1310
- background-color: #fafafa;
1311
- box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04);
1312
- transition: border-color .15s;
1313
- }
1314
- .spftestimonial-field-group .spftestimonial-cloneable-title:active, .spftestimonial-field-group .spftestimonial-cloneable-title:hover, .spftestimonial-field-group .spftestimonial-cloneable-title:focus {
1315
- border-color: #999;
1316
- outline: none;
1317
- }
1318
- .spftestimonial-field-group .spftestimonial-cloneable-helper {
1319
- position: absolute;
1320
- top: 12px;
1321
- right: 10px;
1322
- z-index: 1;
1323
  font-size: 14px;
1324
  line-height: 1em;
 
 
1325
  }
1326
- .spftestimonial-field-group .spftestimonial-cloneable-helper i {
1327
  display: inline-block;
1328
  cursor: pointer;
1329
- padding: 5px;
1330
  color: #999;
 
1331
  }
1332
- .spftestimonial-field-group .spftestimonial-cloneable-helper i:hover {
1333
  color: #555;
1334
  }
1335
- .spftestimonial-field-group .spftestimonial-cloneable-content {
1336
- padding: 0;
1337
- border-top: 0;
1338
- }
1339
- .spftestimonial-field-group .spftestimonial-cloneable-title-prefix,
1340
- .spftestimonial-field-group .spftestimonial-cloneable-title-number {
1341
- margin-right: 5px;
1342
  }
1343
- .spftestimonial-field-group .spftestimonial-cloneable-alert {
1344
  display: none;
1345
  margin-bottom: 5px;
1346
  padding: 10px 20px;
@@ -1348,291 +1201,68 @@
1348
  border: 1px solid #ebccd1;
1349
  background-color: #f2dede;
1350
  }
1351
- .spftestimonial-field-group .widget-placeholder {
1352
- margin-bottom: 10px;
 
1353
  border: 1px dashed #f1c40f;
1354
  background-color: #fffae4;
1355
  }
1356
- .spftestimonial-field-group .spftestimonial-cloneable-header-icon {
1357
- display: inline-block;
1358
- text-align: center;
1359
- font-size: 14px;
1360
- width: 17px;
1361
- text-indent: 0;
1362
- vertical-align: text-top;
1363
- }
1364
- .spftestimonial-field-group .spftestimonial-cloneable-placeholder {
1365
- background-color: #ddd;
1366
- margin-top: 4px;
1367
- width: 100px;
1368
- height: 10px;
1369
- font-size: 10px;
1370
- line-height: 10px;
1371
- display: inline-block;
1372
- vertical-align: top;
1373
- border-radius: 2px;
1374
- }
1375
-
1376
- /**
1377
- * 03. 16. Field: image_select
1378
- */
1379
-
1380
- /**
1381
- * 03. 16. Field: image_select, icon_select
1382
- */
1383
- .spftestimonial-field-icon_select .spftestimonial--image {
1384
- width: 35px;
1385
- height: 35px;
1386
- text-align: center;
1387
- line-height: 35px;
1388
- font-size: 20px;
1389
- }
1390
- .spftestimonial-field-image_select .spftestimonial--image p {
1391
- margin: 6px 0 0 0;
1392
- font-weight: 600;
1393
- }
1394
- .spftestimonial-field-image_select .spftestimonial--image,
1395
- .spftestimonial-field-icon_select .spftestimonial--image {
1396
- cursor: pointer;
1397
- position: relative;
1398
- display: inline-block;
1399
- text-align: center;
1400
- max-width: 100%;
1401
- margin: 0 16px 7px 0;
1402
- vertical-align: top;
1403
- background-color: #fff;
1404
- user-select: none;
1405
- -webkit-user-select: none;
1406
- -moz-transition: all 0.2s;
1407
- -o-transition: all 0.2s;
1408
- -webkit-transition: all 0.2s;
1409
- transition: all 0.2s;
1410
- }
1411
- .spftestimonial-field-icon_select .spftestimonial--image {
1412
- border: 2px solid #ddd;
1413
- }
1414
- .spftestimonial-field-image_select .spftestimonial--image:before,
1415
- .spftestimonial-field-icon_select .spftestimonial--image:before {
1416
- position: absolute;
1417
- top: 0;
1418
- right: 0;
1419
- text-align: center;
1420
- font-size: 11px;
1421
- font-family: FontAwesome;
1422
- content: "\f00c";
1423
- width: 15px;
1424
- height: 15px;
1425
- line-height: 15px;
1426
- opacity: 0;
1427
- color: #fff;
1428
- background-color: #1595CE;
1429
- transition: opacity 0.2s;
1430
- }
1431
- .spftestimonial-field-image_select .spftestimonial--active img {
1432
- border-color: #1595CE;
1433
- outline: 3px solid #1595CE;
1434
- outline-offset: -3px;
1435
- }
1436
- .spftestimonial-field-icon_select .spftestimonial--active {
1437
- border-color: #1595CE;
1438
- }
1439
- .spftestimonial-field-image_select .spftestimonial--active:before {
1440
- opacity: 1;
1441
- }
1442
- .spftestimonial-field-icon_select .spftestimonial--active:before {
1443
- opacity: 0;
1444
- }
1445
- .spftestimonial-field-image_select img {
1446
- vertical-align: top;
1447
- width: 110px;
1448
  }
1449
- .spftestimonial-field-image_select input,
1450
- .spftestimonial-field-icon_select input {
1451
  display: none;
1452
  }
1453
 
1454
-
1455
- /**
1456
- * 03. 17. Field: link_color
1457
- */
1458
- .spftestimonial-field-link_color .spftestimonial--left {
1459
- float: left;
1460
- margin-right: 10px;
1461
- margin-bottom: 5px;
1462
- }
1463
- .spftestimonial-field-link_color .spftestimonial--title {
1464
- color: #777;
1465
- margin-bottom: 5px;
1466
- }
1467
-
1468
  /**
1469
- * 03. 18. Field: map
1470
  */
1471
- .spftestimonial-field-map input {
1472
- width: 100%;
1473
- }
1474
- .spftestimonial-field-map input[type="text"].ui-autocomplete-loading {
1475
- background-position-x: calc(100% - 5px);
1476
- }
1477
- .spftestimonial-field-map .spftestimonial--map-search + .spftestimonial--map-osm-wrap {
1478
- margin-top: 10px;
1479
- }
1480
- .spftestimonial-field-map .spftestimonial--map-osm-wrap {
1481
- position: relative;
1482
- padding: 5px;
1483
- border: 1px solid #eee;
1484
- background-color: #fff;
1485
- box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04);
1486
- }
1487
- .spftestimonial-field-map .spftestimonial--map-osm {
1488
- position: relative;
1489
- z-index: 1;
1490
- min-height: 250px;
1491
- }
1492
- .spftestimonial-field-map .spftestimonial--map-inputs {
1493
- margin-top: 10px;
1494
- display: flex;
1495
- justify-content: space-between;
1496
- }
1497
- .spftestimonial-field-map .spftestimonial--map-input {
1498
- flex: 1;
1499
- }
1500
- .spftestimonial-field-map .spftestimonial--map-input:last-child {
1501
- padding-left: 10px;
1502
- }
1503
- .spftestimonial-field-map label {
1504
- display: block;
1505
- color: #777;
1506
- font-size: 12px;
1507
- margin: 0 0 2px 0;
1508
- }
1509
-
1510
- .spftestimonial-map-ui-autocomplate {
1511
- z-index: 999999;
1512
- border-radius: 4px;
1513
- overflow: hidden;
1514
  }
1515
-
1516
- /**
1517
- * 03. 19. Field: media
1518
- */
1519
- .spftestimonial-field-media .spftestimonial--placeholder {
1520
- display: flex;
1521
  }
1522
- .spftestimonial-field-media .spftestimonial--placeholder input {
1523
- width: 100%;
1524
  margin: 0;
1525
  }
1526
- .spftestimonial-field-media .button {
1527
- margin-left: 5px;
1528
- }
1529
- .spftestimonial-field-media .hidden + .button {
1530
- margin-left: 0;
1531
- }
1532
- .spftestimonial-field-media .spftestimonial--preview {
1533
- position: relative;
1534
- }
1535
- .spftestimonial-field-media .spftestimonial--preview .fa-times {
1536
- position: absolute;
1537
- z-index: 1;
1538
- right: 4px;
1539
- top: 4px;
1540
- font-size: 14px;
1541
- width: 22px;
1542
- height: 22px;
1543
- line-height: 22px;
1544
- text-align: center;
1545
- text-decoration: none;
1546
- color: #fff;
1547
- background-color: #dd3333;
1548
- opacity: 0.8;
1549
- transition: all .2s;
1550
- }
1551
- .spftestimonial-field-media .spftestimonial--preview .fa-times:hover {
1552
- opacity: 1;
1553
- }
1554
- .spftestimonial-field-media .spftestimonial--preview .fa-times:focus {
1555
- box-shadow: none;
1556
  }
1557
 
1558
- /**
1559
- * 03. 20. Field: palette
1560
- */
1561
- .spftestimonial-field-palette .spftestimonial--palette {
1562
- position: relative;
1563
- display: inline-block;
1564
- cursor: pointer;
1565
- border: 2px solid #ddd;
1566
- margin-right: 10px;
1567
- margin-bottom: 10px;
1568
- user-select: none;
1569
- -webkit-user-select: none;
1570
- transition: all .2s;
1571
- }
1572
- .spftestimonial-field-palette .spftestimonial--palette span {
1573
- vertical-align: middle;
1574
- display: inline-block;
1575
- width: 22px;
1576
- height: 60px;
1577
- line-height: 60px;
1578
- overflow: hidden;
1579
- text-indent: -999px;
1580
- }
1581
- .spftestimonial-field-palette .spftestimonial--palette:before {
1582
- position: absolute;
1583
- top: 0;
1584
- left: 0;
1585
- text-align: center;
1586
- font-size: 11px;
1587
- font-family: FontAwesome;
1588
- content: "\f00c";
1589
- width: 15px;
1590
- height: 15px;
1591
- line-height: 15px;
1592
- opacity: 0;
1593
- color: #fff;
1594
- background-color: #222;
1595
- transition: opacity .2s;
1596
- }
1597
- .spftestimonial-field-palette .spftestimonial--active {
1598
- border-color: #222;
1599
- box-shadow: 0 0 20px rgba(0, 0, 0, 0.2);
1600
- }
1601
- .spftestimonial-field-palette .spftestimonial--active:before {
1602
- opacity: 1;
1603
- }
1604
- .spftestimonial-field-palette input {
1605
- display: none;
1606
- }
1607
 
1608
  /**
1609
- * 03. 21. Field: repeater
1610
  */
1611
- .spftestimonial-field-repeater .spftestimonial-field-text input {
1612
  width: 100%;
 
1613
  }
1614
- .spftestimonial-field-repeater .spftestimonial-repeater-hidden {
1615
- display: none !important;
1616
- }
1617
- .spftestimonial-field-repeater .spftestimonial-repeater-wrapper .spftestimonial-repeater-item {
1618
  display: table;
1619
  width: 100%;
1620
  margin-bottom: 5px;
1621
  border: 1px solid #eee;
1622
  }
1623
- .spftestimonial-field-repeater .spftestimonial-repeater-wrapper .spftestimonial-repeater-item h4 {
1624
  font-size: 1em;
1625
  }
1626
- .spftestimonial-field-repeater .spftestimonial-repeater-content {
1627
  width: 100%;
1628
  display: table-cell;
1629
  vertical-align: middle;
1630
  background-color: #fff;
1631
  }
1632
- .spftestimonial-field-repeater .spftestimonial-repeater-content > .spftestimonial-field {
1633
  padding: 15px;
1634
  }
1635
- .spftestimonial-field-repeater .spftestimonial-repeater-helper {
1636
  width: 100%;
1637
  display: table-cell;
1638
  vertical-align: middle;
@@ -1642,166 +1272,14 @@
1642
  border-left: 1px solid #eee;
1643
  background-color: #f7f7f7;
1644
  }
1645
- .spftestimonial-field-repeater .spftestimonial-repeater-helper i {
1646
  display: inline-block;
1647
  cursor: pointer;
1648
- color: #999;
1649
- padding: 5px;
1650
- }
1651
- .spftestimonial-field-repeater .spftestimonial-repeater-helper i:hover {
1652
  color: #555;
1653
  }
1654
- .spftestimonial-field-repeater .spftestimonial-repeater-helper-inner {
1655
- width: 75px;
1656
- }
1657
- .spftestimonial-field-repeater .spftestimonial-repeater-alert {
1658
- display: none;
1659
- margin-bottom: 5px;
1660
- padding: 10px 20px;
1661
- color: #a94442;
1662
- border: 1px solid #ebccd1;
1663
- background-color: #f2dede;
1664
- }
1665
- .spftestimonial-field-repeater .widget-placeholder {
1666
- height: 50px;
1667
- margin-bottom: 3px;
1668
- border: 1px dashed #f1c40f;
1669
- background-color: #fffae4;
1670
- }
1671
- .spftestimonial-field-repeater .ui-sortable-helper {
1672
- height: 50px !important;
1673
- overflow: hidden !important;
1674
- border-color: #ccc !important;
1675
- background-color: #eee !important;
1676
- opacity: 0.5;
1677
- }
1678
- .spftestimonial-field-repeater .ui-sortable-helper .spftestimonial-repeater-helper,
1679
- .spftestimonial-field-repeater .ui-sortable-helper .spftestimonial-repeater-content {
1680
- display: none;
1681
- }
1682
-
1683
- /**
1684
- * 03. 22. Field: select
1685
- */
1686
- .spftestimonial-field-select .spftestimonial-fieldset {
1687
- min-height: 30px;
1688
- }
1689
- .spftestimonial-field-select .spftestimonial-chosen {
1690
- display: none;
1691
- }
1692
- .spftestimonial-field-select select {
1693
- max-width: 100%;
1694
- margin: 0;
1695
- }
1696
-
1697
- /**
1698
- * 03. 23. Field: slider
1699
- */
1700
- .spftestimonial-field-slider .spftestimonial--wrap {
1701
- display: flex;
1702
- align-items: center;
1703
- }
1704
- .spftestimonial-field-slider .spftestimonial--input {
1705
- display: flex;
1706
- }
1707
- .spftestimonial-field-slider .spftestimonial--unit {
1708
- display: flex;
1709
- justify-content: center;
1710
- flex-direction: column;
1711
- user-select: none;
1712
- padding: 0 6px;
1713
- font-size: 11px;
1714
- line-height: 1;
1715
- border-radius: 0 4px 4px 0;
1716
- color: #555;
1717
- border: 1px solid #7e8993;
1718
- border-left: 0;
1719
- background-color: #f5f5f5;
1720
- }
1721
- .spftestimonial-field-slider input[type=number] {
1722
- position: relative;
1723
- z-index: 1;
1724
- width: 50px;
1725
- margin: 0 0 0 15px;
1726
- text-align: center;
1727
- }
1728
- .spftestimonial-field-slider .spftestimonial--is-unit {
1729
- border-top-right-radius: 0;
1730
- border-bottom-right-radius: 0;
1731
- }
1732
- .spftestimonial-field-slider .ui-slider {
1733
- position: relative;
1734
- width: 100%;
1735
- height: 3px;
1736
- border: none;
1737
- background: #ddd;
1738
- border-radius: 2px;
1739
- }
1740
- .spftestimonial-field-slider .ui-slider-range {
1741
- height: 3px;
1742
- border: none;
1743
- background: #333;
1744
- border-radius: 2px;
1745
- }
1746
- .spftestimonial-field-slider .ui-slider-handle {
1747
- position: absolute;
1748
- width: 16px;
1749
- height: 16px;
1750
- top: -7px;
1751
- margin-left: -8px;
1752
- border: none;
1753
- background: #333;
1754
- border-radius: 2px;
1755
- }
1756
- .spftestimonial-field-slider .ui-state-active,
1757
- .spftestimonial-field-slider .ui-slider-handle:hover {
1758
- cursor: pointer;
1759
- background: #111;
1760
- }
1761
-
1762
- /**
1763
- * 03. 24. Field: sortable
1764
- */
1765
- .spftestimonial-field-sortable .spftestimonial-field-text input {
1766
- width: 100%;
1767
- max-width: 100%;
1768
- }
1769
- .spftestimonial-field-sortable .spftestimonial--sortable .spftestimonial--sortable-item {
1770
- display: table;
1771
- width: 100%;
1772
- margin-bottom: 5px;
1773
- border: 1px solid #eee;
1774
- }
1775
- .spftestimonial-field-sortable .spftestimonial--sortable .spftestimonial--sortable-item h4 {
1776
- font-size: 1em;
1777
- }
1778
- .spftestimonial-field-sortable .spftestimonial--sortable-content {
1779
- width: 100%;
1780
- display: table-cell;
1781
- vertical-align: middle;
1782
- background-color: #fff;
1783
- }
1784
- .spftestimonial-field-sortable .spftestimonial--sortable-content > .spftestimonial-field {
1785
- padding: 15px;
1786
- }
1787
- .spftestimonial-field-sortable .spftestimonial--sortable-helper {
1788
- width: 100%;
1789
- display: table-cell;
1790
- vertical-align: middle;
1791
- text-align: center;
1792
- font-size: 14px;
1793
- line-height: 1em;
1794
- border-left: 1px solid #eee;
1795
- background-color: #f7f7f7;
1796
- }
1797
- .spftestimonial-field-sortable .spftestimonial--sortable-helper .fa {
1798
- display: inline-block;
1799
- cursor: pointer;
1800
- width: 50px;
1801
- color: #555;
1802
- }
1803
- .spftestimonial-field-sortable .spftestimonial--sortable-helper .fa:hover {
1804
- opacity: 0.5;
1805
  }
1806
  .spftestimonial-field-sortable .widget-placeholder {
1807
  height: 50px;
@@ -1816,8 +1294,8 @@
1816
  background-color: #eee !important;
1817
  opacity: 0.5;
1818
  }
1819
- .spftestimonial-field-sortable .ui-sortable-helper .spftestimonial--sortable-helper,
1820
- .spftestimonial-field-sortable .ui-sortable-helper .spftestimonial--sortable-content {
1821
  display: none;
1822
  }
1823
 
@@ -1847,11 +1325,8 @@
1847
  background-color: #fff;
1848
  }
1849
  .spftestimonial-field-sorter .spftestimonial-disabled li {
1850
- -moz-transition: opacity 0.15s;
1851
- -o-transition: opacity 0.15s;
1852
- -webkit-transition: opacity 0.15s;
1853
- transition: opacity 0.15s;
1854
  opacity: 0.5;
 
1855
  }
1856
  .spftestimonial-field-sorter .spftestimonial-disabled .ui-sortable-helper {
1857
  opacity: 1;
@@ -1880,10 +1355,7 @@
1880
  text-align: center;
1881
  border: 1px solid #e5e5e5;
1882
  background-color: #fafafa;
1883
- -moz-transition: border-color 0.15s;
1884
- -o-transition: border-color 0.15s;
1885
- -webkit-transition: border-color 0.15s;
1886
- transition: border-color 0.15s;
1887
  }
1888
  .spftestimonial-field-sorter ul li:hover {
1889
  border-color: #bbb;
@@ -1898,29 +1370,42 @@
1898
  .spftestimonial-field-spinner .ui-spinner {
1899
  display: flex;
1900
  }
1901
- .spftestimonial-field-spinner .ui-button-text-only {
1902
  display: flex;
1903
  flex-direction: column;
1904
  justify-content: center;
1905
  text-align: center;
1906
  min-width: 20px;
1907
- padding: 0 4px;
1908
  color: #555;
1909
  border: 1px solid #7e8993;
1910
  background-color: #f5f5f5;
1911
  }
1912
- .spftestimonial-field-spinner .ui-button {
1913
  cursor: pointer;
1914
  }
1915
- .spftestimonial-field-spinner .ui-button:hover {
 
 
 
 
 
 
 
 
 
 
 
1916
  background-color: #e7e7e7;
1917
  }
1918
- .spftestimonial-field-spinner .ui-button:active {
1919
  background-color: #ddd;
1920
  }
1921
- .spftestimonial-field-spinner .ui-button:before {
1922
- font-family: FontAwesome;
 
1923
  font-size: 14px;
 
1924
  }
1925
  .spftestimonial-field-spinner .ui-spinner-down {
1926
  order: 1;
@@ -1955,7 +1440,9 @@
1955
  padding: 0 8px;
1956
  border-radius: 0;
1957
  }
1958
- .spftestimonial-field-spinner .ui-button-text {
 
 
1959
  display: none;
1960
  }
1961
 
@@ -2029,57 +1516,12 @@
2029
  font-weight: 400;
2030
  color: #999;
2031
  }
2032
- .spftestimonial-field-switcher input {
2033
- display: none;
2034
- }
2035
-
2036
- /**
2037
- * 03. 28. Field: tabbed
2038
- */
2039
- .spftestimonial-field-tabbed .spftestimonial-tabbed-section {
2040
- border: 1px solid #ccd0d4;
2041
- background-color: #fff;
2042
- box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04);
2043
- }
2044
- .spftestimonial-field-tabbed .spftestimonial-tabbed-section > .spftestimonial-field {
2045
- padding: 15px;
2046
- }
2047
- .spftestimonial-field-tabbed .spftestimonial-tabbed-nav .spftestimonial--icon {
2048
- padding-right: 5px;
2049
- }
2050
- .spftestimonial-field-tabbed .spftestimonial-tabbed-nav a {
2051
- display: inline-block;
2052
- padding: 12px 15px;
2053
- margin-top: 1px;
2054
- margin-right: 5px;
2055
- margin-bottom: -1px;
2056
- position: relative;
2057
- text-decoration: none;
2058
- color: #444;
2059
- font-weight: 600;
2060
- border: 1px solid #ccd0d4;
2061
- background-color: #f3f3f3;
2062
- transition: all .2s;
2063
- }
2064
- .spftestimonial-field-tabbed .spftestimonial-tabbed-nav a:hover {
2065
- background-color: #f9f9f9;
2066
- }
2067
- .spftestimonial-field-tabbed .spftestimonial-tabbed-nav a.spftestimonial-tabbed-active {
2068
- background-color: #fff;
2069
- border-bottom-color: #fff;
2070
- }
2071
- .spftestimonial-field-tabbed .spftestimonial-tabbed-nav a:focus {
2072
- outline: none;
2073
- -moz-box-shadow: none;
2074
- -webkit-box-shadow: none;
2075
- box-shadow: none;
2076
- }
2077
 
2078
  /**
2079
  * 03. 29. Field: text
2080
  */
2081
  .spftestimonial-field-text input {
2082
- width: 50%;
2083
  max-width: 100%;
2084
  margin: 0;
2085
  }
@@ -2092,158 +1534,97 @@
2092
  max-width: 100%;
2093
  min-height: 125px;
2094
  }
 
 
 
 
2095
 
2096
  /**
2097
- * 03. 30. Field: typography
2098
- */
2099
- .spftestimonial-field-typography textarea,
2100
- .spftestimonial-field-typography select {
2101
- margin: 0;
2102
- width: 100%;
2103
- }
2104
- .spftestimonial-field-typography .spftestimonial--title {
2105
- color: #999;
2106
- margin: 0 0 2px 0;
2107
- }
2108
- .spftestimonial-field-typography .spftestimonial--title small {
2109
- vertical-align: top;
2110
- }
2111
- .spftestimonial-field-typography .spftestimonial--blocks {
2112
- display: flex;
2113
- flex-wrap: wrap;
2114
- }
2115
- .spftestimonial-field-typography .spftestimonial--block {
2116
- padding-right: 5px;
2117
- padding-bottom: 10px;
2118
- box-sizing: border-box;
2119
- }
2120
- .spftestimonial-field-typography .spftestimonial--block .spftestimonial--block {
2121
- padding-right: 0;
2122
- padding-bottom: 0;
2123
- }
2124
- .spftestimonial-field-typography
2125
- .spftestimonial--blocks-selects
2126
- .spftestimonial--block {
2127
- flex: 1 33.3%;
2128
- }
2129
- .spftestimonial-field-typography
2130
- .spftestimonial--blocks-inputs
2131
- .spftestimonial--input-area {
2132
- max-width: 100px;
2133
- }
2134
- .spftestimonial-field-typography
2135
- .spftestimonial--blocks-inputs
2136
- .spftestimonial--block
2137
- .spftestimonial--block {
2138
- flex: 1;
2139
- }
2140
- .spftestimonial-field-typography .spftestimonial--input {
2141
- margin: 0;
2142
- width: 100%;
2143
- padding: 2px 8px;
2144
- border-radius: 4px 0 0 4px;
2145
- }
2146
- .spftestimonial-field-typography .spftestimonial--unit {
2147
- min-width: 40px;
2148
- max-width: 40px;
2149
- font-size: 12px;
2150
- font-weight: 400;
2151
- text-align: center;
2152
- color: #777;
2153
- border: 1px solid #ddd;
2154
- background-color: #eee;
2155
- border-radius: 0 2px 2px 0;
2156
- border-left: 0;
2157
- line-height: 30px;
2158
- }
2159
- .spftestimonial-field-typography .spftestimonial--preview {
2160
- font-size: 16px;
2161
- line-height: 20px;
2162
- padding: 20px;
2163
- color: #222;
2164
- border: 1px solid #eee;
2165
- background-color: #fff;
2166
- border-radius: 2.5px;
2167
- user-select: none;
2168
- -webkit-user-select: none;
2169
- transition: background-color 0.2s, border-color 0.2s;
2170
- }
2171
- .spftestimonial-field-typography .spftestimonial--block-preview {
2172
- cursor: pointer;
2173
- position: relative;
2174
- overflow: hidden;
2175
- margin-top: 10px;
2176
- max-width: 100%;
2177
- }
2178
- .spftestimonial-field-typography .spftestimonial--black-background {
2179
- border-color: #000;
2180
- background-color: #000;
2181
- }
2182
- .spftestimonial-field-typography .spftestimonial--toggle {
2183
- position: absolute;
2184
- top: 5px;
2185
- right: 10px;
2186
- color: #999;
2187
- }
2188
- .spftestimonial-field-typography .spftestimonial--block-extra-styles {
2189
- margin-top: 5px;
2190
- }
2191
-
2192
- /**
2193
- * 03. 32. Field: upload
2194
  */
2195
- .spftestimonial-field-upload input {
2196
- width: 100%;
2197
  margin: 0;
 
 
2198
  }
2199
- .spftestimonial-field-upload .spftestimonial--wrap {
2200
- display: flex;
 
 
2201
  }
2202
- .spftestimonial-field-upload .button {
2203
- margin-left: 5px;
2204
  }
2205
-
2206
- /**
2207
- * 03. 33. Field: wp_editor
2208
- */
2209
- .spftestimonial-field-wp_editor .spftestimonial-wp-editor {
2210
- float: left;
2211
- width: 100%;
2212
  }
2213
- .spftestimonial-field-wp_editor .mce-toolbar-grp {
2214
- border: none;
 
 
 
2215
  }
2216
- .spftestimonial-field-wp_editor .mce-btn.mce-active button,
2217
- .spftestimonial-field-wp_editor .mce-btn.mce-active:hover button,
2218
- .spftestimonial-field-wp_editor .mce-btn.mce-active i,
2219
- .spftestimonial-field-wp_editor .mce-btn.mce-active:hover i {
2220
- color: #23282d;
2221
  }
2222
- .spftestimonial-field-wp_editor .wp-media-buttons {
2223
  position: relative;
2224
- z-index: 2;
2225
  }
2226
- .spftestimonial-field-wp_editor .wp-editor-tabs {
2227
- position: relative;
2228
  z-index: 1;
 
 
 
 
 
 
 
 
 
 
 
 
 
2229
  }
2230
- .spftestimonial-field-wp_editor .spftestimonial-no-tinymce {
2231
- border: 1px solid #e5e5e5;
 
 
 
 
 
 
 
 
 
2232
  }
2233
- .spftestimonial-field-wp_editor .spftestimonial-no-quicktags .wp-media-buttons {
2234
- float: none;
2235
- display: block;
 
 
 
2236
  }
2237
- .spftestimonial-field-wp_editor .spftestimonial-no-quicktags .mce-tinymce {
2238
- box-shadow: none;
2239
- border: 1px solid #e5e5e5;
2240
  }
2241
- .spftestimonial-field-wp_editor textarea {
2242
- width: 100%;
2243
- max-width: 100%;
2244
- margin: 0;
2245
- box-shadow: none;
2246
  }
 
 
 
 
 
 
2247
 
2248
  /**
2249
  * 03. 34. Field: heading
@@ -2320,16 +1701,15 @@
2320
  */
2321
  .spftestimonial-field-notice {
2322
  background-color: transparent;
2323
- /* background-color: #f7f7f7; */
2324
  }
2325
 
2326
- .spftestimonial-notice {
2327
  padding: 12px;
2328
  background-color: #fff;
2329
  border-left-style: solid;
2330
- border-left-width: 0;
2331
- box-shadow: none;
2332
- }
2333
 
2334
  .spftestimonial-notice-success {
2335
  border-color: #46b450;
@@ -2337,11 +1717,6 @@
2337
 
2338
  .spftestimonial-notice-info {
2339
  border-color: #339fd4;
2340
-
2341
- color: #999;
2342
- font-style: italic;
2343
- font-size: 13px;
2344
-
2345
  }
2346
 
2347
  .spftestimonial-notice-warning {
@@ -2352,6 +1727,9 @@
2352
  border-color: #dc3232;
2353
  }
2354
 
 
 
 
2355
  .spftestimonial-notice {
2356
  border-color: #222;
2357
  color: #999;
@@ -2359,7 +1737,6 @@
2359
  font-size: 13px;
2360
  padding: 12px 12px 12px 0;
2361
  }
2362
-
2363
  /**
2364
  * 03. 38. Field: number
2365
  */
@@ -2391,38 +1768,121 @@
2391
  }
2392
 
2393
  /**
2394
- * 03. 39. others
2395
  */
2396
- .spftestimonial-help {
2397
- cursor: help;
2398
- position: absolute;
2399
- top: 0;
2400
- right: 0;
2401
- padding: 5px;
2402
- font-size: 14px;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2403
  color: #aaa;
2404
  }
2405
  .spftestimonial-help .spftestimonial-help-text {
2406
  display: none;
2407
  }
2408
 
 
 
 
 
 
 
 
 
 
2409
  .spftestimonial-image-preview {
2410
- display: inline-block;
 
 
 
2411
  position: relative;
2412
- padding: 4px;
2413
- min-width: 44px;
2414
- min-height: 22px;
 
 
2415
  margin-bottom: 10px;
 
 
2416
  border: 1px solid #ccc;
2417
  background-color: #f9f9f9;
2418
- -moz-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.08);
2419
- -webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.08);
2420
  box-shadow: 0 1px 0 rgba(0, 0, 0, 0.08);
2421
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2422
  .spftestimonial-image-preview img {
2423
- max-height: 90px;
2424
- display: inline-block;
2425
- vertical-align: middle;
2426
  }
2427
 
2428
  .spftestimonial-field-custom .spftestimonial-field {
@@ -2436,13 +1896,14 @@
2436
  .spftestimonial-field .chosen-container-single .chosen-single abbr {
2437
  top: 0;
2438
  right: 20px;
2439
- font-family: FontAwesome;
 
2440
  font-size: 12px;
2441
  height: 100%;
2442
  width: 18px;
2443
  color: #aaa;
2444
  text-align: center;
2445
- background: none;
2446
  }
2447
  .spftestimonial-field .chosen-container-single .chosen-single abbr:before {
2448
  content: "\f00d";
@@ -2451,13 +1912,15 @@
2451
  color: #555;
2452
  }
2453
  .spftestimonial-field .chosen-container-multi .chosen-choices li.search-choice .search-choice-close {
2454
- font-family: FontAwesome;
 
2455
  font-size: 12px;
2456
  height: 100%;
 
2457
  width: 18px;
2458
  color: #aaa;
2459
  text-align: center;
2460
- background: none;
2461
  }
2462
  .spftestimonial-field .chosen-container-multi .chosen-choices li.search-choice .search-choice-close:before {
2463
  content: "\f00d";
@@ -2468,10 +1931,11 @@
2468
  color: #555;
2469
  }
2470
  .spftestimonial-field .chosen-container-single .chosen-single div b {
2471
- font-family: FontAwesome;
 
2472
  font-size: 14px;
2473
  color: #aaa;
2474
- background: none;
2475
  }
2476
  .spftestimonial-field .chosen-container-single .chosen-single div b:before {
2477
  content: "\f107";
@@ -2493,20 +1957,24 @@
2493
  margin-right: 40px;
2494
  }
2495
  .spftestimonial-field .chosen-container-single .chosen-search input[type="text"] {
2496
- background: none;
2497
  }
2498
  .spftestimonial-field .chosen-container-single .chosen-search:before {
2499
- font-family: FontAwesome;
2500
- position: absolute;
2501
- content: "\f002";
2502
  font-size: 11px;
2503
- right: 10px;
2504
- top: 7px;
 
 
2505
  color: #aaa;
2506
  }
2507
  .spftestimonial-field .wp-picker-container {
2508
  display: inline-block;
2509
  }
 
 
 
2510
  .spftestimonial-field .spftestimonial--transparent-wrap {
2511
  display: none;
2512
  position: relative;
@@ -2540,11 +2008,7 @@
2540
  background: none;
2541
  cursor: ew-resize;
2542
  opacity: 0.9;
2543
- -moz-border-radius: 4px;
2544
- -webkit-border-radius: 4px;
2545
  border-radius: 4px;
2546
- -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
2547
- -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
2548
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
2549
  }
2550
  .spftestimonial-field .spftestimonial--transparent-slider .ui-slider-handle:before {
@@ -2555,20 +2019,14 @@
2555
  top: -3px;
2556
  bottom: -3px;
2557
  border: 2px solid #fff;
2558
- -moz-border-radius: 3px;
2559
- -webkit-border-radius: 3px;
2560
  border-radius: 3px;
2561
  }
2562
  .spftestimonial-field .spftestimonial--transparent-offset {
2563
  height: 18px;
2564
  width: 200px;
2565
  background: url(../images/checkerboard.png) repeat-y center left scroll #fff;
2566
- -moz-box-shadow: 0 0 5px rgba(0, 0, 0, 0.4) inset;
2567
- -webkit-box-shadow: 0 0 5px rgba(0, 0, 0, 0.4) inset;
2568
- box-shadow: 0 0 5px rgba(0, 0, 0, 0.4) inset;
2569
- -moz-border-radius: 2px;
2570
- -webkit-border-radius: 2px;
2571
  border-radius: 2px;
 
2572
  }
2573
  .spftestimonial-field .spftestimonial--transparent-text {
2574
  position: absolute;
@@ -2616,21 +2074,18 @@
2616
  .spftestimonial-widgets > .spftestimonial-field {
2617
  position: relative;
2618
  top: -1px;
2619
- margin-right: -15px;
2620
  margin-left: -15px;
 
2621
  padding: 12px 15px;
2622
  }
2623
- .spftestimonial-widgets > .spftestimonial-field .spftestimonial-field {
2624
- margin-left: 0;
2625
- margin-right: 0;
2626
- }
2627
  .spftestimonial-widgets > .spftestimonial-field .spftestimonial-title {
2628
  float: none;
2629
  width: 100%;
2630
  margin-bottom: 5px;
2631
  }
2632
  .spftestimonial-widgets > .spftestimonial-field .spftestimonial-fieldset {
2633
- margin-left: 0;
 
2634
  }
2635
  .spftestimonial-widgets .spftestimonial-field-text input {
2636
  width: 100%;
@@ -2640,11 +2095,25 @@
2640
  }
2641
 
2642
  .control-section .spftestimonial-widgets > .spftestimonial-field {
2643
- margin-right: -10px;
2644
  margin-left: -10px;
 
2645
  padding: 10px 12px;
2646
  }
2647
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2648
  /**
2649
  * 05. Widget
2650
  */
@@ -2664,7 +2133,8 @@
2664
  color: inherit;
2665
  }
2666
  .control-section .spftestimonial-field .spftestimonial-fieldset {
2667
- margin-left: 0;
 
2668
  }
2669
  .control-section .spftestimonial-help {
2670
  top: -5px;
@@ -2688,9 +2158,10 @@
2688
  margin-left: -15px;
2689
  padding: 10px 15px;
2690
  }
2691
- .control-section .spftestimonial-text-subtitle {
2692
  margin-top: 4px;
2693
  font-size: 12px;
 
2694
  }
2695
  .control-section .spftestimonial-field-submessage .spftestimonial-submessage {
2696
  margin-right: -15px;
@@ -2742,45 +2213,237 @@
2742
  .control-section .spftestimonial-field-fieldset .spftestimonial-fieldset-content {
2743
  border-color: #e5e5e5;
2744
  }
2745
- .control-section .spftestimonial-field-fieldset .spftestimonial-field {
 
 
 
 
 
2746
  padding: 10px;
2747
  }
2748
- .control-section .spftestimonial-field-fieldset .spftestimonial-field .spftestimonial-title {
 
 
 
 
 
2749
  margin-bottom: 5px;
2750
  }
2751
- .control-section .spftestimonial-field-fieldset .spftestimonial-field h4 {
 
 
 
 
 
2752
  font-size: 12px;
2753
  }
2754
- .control-section .spftestimonial-field-group .spftestimonial-field,
2755
- .control-section .spftestimonial-field-tabbed .spftestimonial-field,
2756
- .control-section .spftestimonial-field-sortable .spftestimonial-field,
2757
- .control-section .spftestimonial-field-repeater .spftestimonial-field,
2758
- .control-section .spftestimonial-field-accordion .spftestimonial-field {
2759
- padding: 10px;
 
 
 
 
 
 
 
 
 
2760
  }
2761
- .control-section .spftestimonial-field-group .spftestimonial-field .spftestimonial-title,
2762
- .control-section .spftestimonial-field-tabbed .spftestimonial-field .spftestimonial-title,
2763
- .control-section .spftestimonial-field-sortable .spftestimonial-field .spftestimonial-title,
2764
- .control-section .spftestimonial-field-repeater .spftestimonial-field .spftestimonial-title,
2765
- .control-section .spftestimonial-field-accordion .spftestimonial-field .spftestimonial-title {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2766
  margin-bottom: 5px;
2767
  }
2768
- .control-section .spftestimonial-field-group .spftestimonial-field h4,
2769
- .control-section .spftestimonial-field-tabbed .spftestimonial-field h4,
2770
- .control-section .spftestimonial-field-sortable .spftestimonial-field h4,
2771
- .control-section .spftestimonial-field-repeater .spftestimonial-field h4,
2772
- .control-section .spftestimonial-field-accordion .spftestimonial-field h4 {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2773
  font-size: 12px;
2774
  }
2775
- .control-section .spftestimonial-dependency-control.hidden {
2776
- display: none !important;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2777
  }
2778
 
2779
  /**
2780
- * 08. Modal
2781
  */
2782
  .spftestimonial-modal {
2783
- display: none;
2784
  position: fixed;
2785
  z-index: 100101;
2786
  top: 0;
@@ -2788,6 +2451,9 @@
2788
  width: 100%;
2789
  height: 100%;
2790
  }
 
 
 
2791
 
2792
  .spftestimonial-modal-icon {
2793
  z-index: 100102;
@@ -2820,19 +2486,14 @@
2820
  overflow-y: auto;
2821
  height: 595px;
2822
  }
2823
- .spftestimonial-modal-content .spftestimonial-fieldset {
2824
- margin-left: 25%;
2825
- }
2826
- .spftestimonial-modal-content .spftestimonial-title {
2827
- width: 20%;
2828
  }
2829
  .spftestimonial-modal-content .spftestimonial-field {
2830
  padding: 15px 30px 15px 15px;
2831
  }
2832
  .spftestimonial-modal-content a:active, .spftestimonial-modal-content a:focus {
2833
  outline: none;
2834
- -moz-box-shadow: none;
2835
- -webkit-box-shadow: none;
2836
  box-shadow: none;
2837
  }
2838
  .spftestimonial-modal-content h4 {
@@ -2860,7 +2521,7 @@
2860
  width: 100%;
2861
  padding: 14px 0;
2862
  background-color: #f5f5f5;
2863
- border-bottom: 1px solid #eee;
2864
  }
2865
  .spftestimonial-modal-header select {
2866
  display: block;
@@ -2902,7 +2563,7 @@
2902
  width: 100%;
2903
  padding: 15px 0;
2904
  background-color: #f5f5f5;
2905
- border-top: 1px solid #eee;
2906
  }
2907
 
2908
  .spftestimonial-modal-overlay {
@@ -2916,114 +2577,224 @@
2916
  }
2917
 
2918
  /**
2919
- * 08. Helper
2920
  */
2921
- .spftestimonial-text-desc,
2922
- .spftestimonial-text-subtitle {
2923
- font-weight: 400;
2924
- margin-top: 0;
2925
- color: #999;
2926
  }
2927
 
2928
- .spftestimonial-text-success {
2929
- color: #2b542c;
 
2930
  }
2931
 
2932
- .spftestimonial-text-error {
2933
- color: #d02c21;
 
 
2934
  }
2935
-
2936
- .spftestimonial-text-info {
2937
- color: #31708f;
2938
  }
2939
-
2940
- .spftestimonial-text-warning {
2941
- color: #ffb900;
 
 
 
 
 
 
 
 
 
 
 
 
 
2942
  }
2943
-
2944
- .spftestimonial-text-muted {
2945
- color: #aaa;
2946
  }
2947
 
2948
- .spftestimonial-text-left {
2949
- text-align: left;
2950
  }
2951
-
2952
- .spftestimonial-text-center {
2953
- text-align: center;
2954
  }
2955
 
2956
- .spftestimonial-text-right {
2957
- text-align: right;
2958
  }
2959
-
2960
- .spftestimonial-block-left {
2961
- float: left;
2962
  }
2963
 
2964
- .spftestimonial-block-right {
2965
- float: right;
 
 
 
 
 
 
 
2966
  }
2967
 
2968
- .spftestimonial-full-width {
2969
- width: 100%;
2970
  }
2971
 
2972
- .spftestimonial-full-half {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2973
  width: 50%;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2974
  }
2975
 
2976
- .spftestimonial-table {
2977
- width: 100%;
2978
- display: table;
 
 
2979
  }
2980
 
2981
- .spftestimonial-table-cell {
2982
- display: table-cell;
2983
- vertical-align: middle;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2984
  }
2985
 
2986
- .spftestimonial-table-expanded {
2987
- width: 100%;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2988
  }
2989
 
2990
- .spftestimonial-nowrap {
2991
- white-space: nowrap;
 
 
 
 
 
2992
  }
2993
 
2994
- .spftestimonial-text-highlight {
2995
- padding: 2px 4px;
2996
- font-size: 90%;
2997
- color: #c7254e;
2998
- background-color: #f9f2f4;
2999
- -moz-border-radius: 2px;
3000
- -webkit-border-radius: 2px;
3001
- border-radius: 2px;
3002
  }
3003
 
3004
- .spftestimonial-text-highlight-gray {
3005
- padding: 2px 4px;
3006
- font-size: 90%;
3007
- background-color: #f0f0f0;
3008
- -moz-border-radius: 2px;
3009
- -webkit-border-radius: 2px;
3010
- border-radius: 2px;
3011
  }
3012
 
3013
- .spftestimonial-hidden {
3014
- display: none;
3015
  }
3016
 
3017
- .spftestimonial-hide {
3018
  display: none !important;
3019
  }
3020
 
3021
- .spftestimonial-show {
3022
  display: block !important;
3023
  }
3024
 
3025
- .spftestimonial-opacity {
3026
- opacity: 0.5;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3027
  }
3028
 
3029
  .spftestimonial-warning-primary {
@@ -3045,11 +2816,17 @@
3045
 
3046
  .spftestimonial-form-result {
3047
  display: none;
 
 
3048
  padding: 12px;
3049
- margin:15px 0 15px 0;
3050
  background-color: #fff;
3051
  border-left: 4px solid #555;
 
 
3052
  box-shadow: 0 1px 1px rgb(0 0 0 / 10%);
 
 
3053
  border-left-color: #46b450;
3054
  }
3055
 
@@ -3057,9 +2834,15 @@
3057
  display: block;
3058
  }
3059
 
 
 
 
 
 
3060
  .spftestimonial-form-warning {
3061
  color: #8a6d3b;
3062
  background-color: #faebcc;
 
3063
  }
3064
 
3065
  .spftestimonial-label-error {
@@ -3076,8 +2859,6 @@
3076
  color: #fff;
3077
  vertical-align: middle;
3078
  background-color: #e10000;
3079
- -moz-border-radius: 2px;
3080
- -webkit-border-radius: 2px;
3081
  border-radius: 2px;
3082
  }
3083
 
@@ -3094,142 +2875,332 @@
3094
  -webkit-appearance: none;
3095
  margin: 0;
3096
  }
3097
-
3098
- /* Shortcode sidebar */
3099
- .spftestimonial-scode-wrap-side{
3100
- pointer-events: none;
3101
- opacity: 0.7;
3102
- -webkit-touch-callout: none; /* iOS Safari */
3103
- -webkit-user-select: none; /* Safari */
3104
- -khtml-user-select: none; /* Konqueror HTML */
3105
- -moz-user-select: none; /* Old versions of Firefox */
3106
- -ms-user-select: none; /* Internet Explorer/Edge */
3107
- user-select: none;
3108
  }
3109
- span.spftestimonial-shortcode-selectable {
3110
- background-color: rgba(82,179,217,.11);
3111
- padding: 10px 10px 10px 30px;
3112
- display: inline-block;
3113
- border: 1px solid #d1e4ef;
3114
- border-radius: 2px;
3115
- cursor: pointer;
3116
- border-radius: 3px;
3117
- word-break: break-word;
 
 
3118
  position: relative;
3119
- width: 80%;
 
 
3120
  }
3121
- span.spftestimonial-shortcode-selectable::after{
3122
- content: url(../images/copy.svg);
3123
- width: 16px;
3124
- left: 10px;
3125
- top: 50%;
 
 
 
 
 
 
 
 
3126
  position: absolute;
3127
- margin-top: -6px;
 
 
 
 
 
 
3128
  }
3129
- .spftestimonial-scode-wrap-side:nth-child(2) span.spftestimonial-shortcode-selectable::after{
3130
- margin-top: -15px;
 
 
 
 
3131
  }
3132
-
3133
- span.spftestimonial-shortcode-selectable ~ button:focus,
3134
- span.spftestimonial-shortcode-selectable ~ button:hover {
3135
- background: #e6e6e6;
3136
- outline: none;
3137
  }
3138
- span.spftestimonial-shortcode-selectable ~ button {
3139
- background: #f5f5f5;
3140
- padding: 7px 12px;
3141
- border: none;
3142
- margin-left: 8px;
3143
- font-size: 17px;
3144
- display: inline-block;
3145
- position: relative;
3146
- cursor: pointer;
3147
- border-radius: 3px;
3148
- border: 1px solid #dbdbdb;
3149
  }
3150
-
3151
- .spftestimonial-scode-wrap-side p {
3152
- margin-top: 0;
3153
  }
3154
- .spftestimonial-scode-wrap-side {
3155
- margin-top: 0;
3156
- margin-bottom: 16px;
3157
- overflow: hidden;
3158
  }
3159
- .spftestimonial-scode-wrap-side .spftestimonial-sc-title {
3160
- margin-top: 0;
3161
- margin-bottom: 7px;
3162
- font-size: 1.2em;
3163
  }
3164
- .spftestimonial-scode-wrap-side .spftestimonial-tooltip {
3165
- border-radius: 4px;
3166
- -webkit-border-radius: 4px;
3167
  position: absolute;
3168
- top: -35px;
3169
- left: -3px;
3170
- background-color: #2f2e2e;
3171
- text-transform: capitalize;
3172
- font-weight: 600;
3173
- display: block;
3174
- transition: all 0.2s;
3175
- padding: 0;
3176
- height: 24px;
3177
- line-height: 24px;
3178
- width: 46px;
 
 
 
 
 
 
 
 
 
 
 
 
 
3179
  color: #fff;
3180
- font-size: 11px;
 
 
3181
  text-align: center;
3182
- display: none;
 
3183
  }
3184
- .spftestimonial-scode-wrap-side .spftestimonial-tooltip::after {
3185
- content: "";
3186
- width: 0;
3187
- height: 0;
3188
- border-left: 6px solid transparent;
3189
- border-right: 6px solid transparent;
3190
- border-top: 6px solid #2f2e2e;
3191
- position: absolute;
3192
- top: 98%;
3193
- left: 16px;
3194
  }
3195
- .spftestimonial-scode-wrap-side .spftestimonial-tooltip {
3196
- z-index: 9999;
 
 
 
 
3197
  }
3198
- .spftestimonial-scode-wrap-side button:hover .spftestimonial-tooltip {
3199
- display: block;
3200
  }
3201
-
3202
- .spftestimonial-scode-wrap-side .spftestimonial-tooltip:hover {
3203
- display: block;
3204
- opacity: 1;
3205
  }
3206
-
3207
- /**
3208
- * 11. Responsive
3209
- */
3210
- @media only screen and (max-width: 1200px) {
3211
- .spftestimonial-metabox .spftestimonial-field .spftestimonial-title {
3212
- float: none;
3213
- width: 100%;
3214
- margin-bottom: 10px;
3215
- }
3216
- .spftestimonial-metabox .spftestimonial-field .spftestimonial-fieldset {
3217
- margin-left: 0;
3218
- }
3219
  }
3220
- @media only screen and (max-width: 782px) {
3221
- .spftestimonial-header-inner {
3222
- text-align: center;
3223
- }
3224
- .spftestimonial-header-inner h1 {
3225
- width: 100%;
3226
- margin-bottom: 10px;
3227
- }
3228
-
3229
-
3230
-
3231
- .spftestimonial-search,
3232
- .spftestimonial-header-right,
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3233
  .spftestimonial-header-left {
3234
  width: 100%;
3235
  }
@@ -3259,7 +3230,7 @@ span.spftestimonial-shortcode-selectable ~ button {
3259
  display: none !important;
3260
  }
3261
 
3262
- .spftestimonial-content {
3263
  margin-left: 0;
3264
  }
3265
 
@@ -3274,7 +3245,14 @@ span.spftestimonial-shortcode-selectable ~ button {
3274
  margin-bottom: 10px;
3275
  }
3276
  .spftestimonial-field .spftestimonial-fieldset {
3277
- margin-left: 0;
 
 
 
 
 
 
 
3278
  }
3279
 
3280
  .spftestimonial-modal-inner {
@@ -3302,6 +3280,25 @@ span.spftestimonial-shortcode-selectable ~ button {
3302
  height: 252px;
3303
  }
3304
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3305
  }
3306
  /**
3307
  * Chosen JS Styles
@@ -3364,7 +3361,7 @@ span.spftestimonial-shortcode-selectable ~ button {
3364
  border: 1px solid #aaa;
3365
  border-radius: 5px;
3366
  background-color: #fff;
3367
- background: linear-gradient(#ffffff 20%, #f6f6f6 50%, #eeeeee 52%, #f4f4f4 100%);
3368
  background-clip: padding-box;
3369
  box-shadow: 0 0 3px #fff inset, 0 1px 1px rgba(0, 0, 0, 0.1);
3370
  color: #444;
@@ -3515,7 +3512,7 @@ span.spftestimonial-shortcode-selectable ~ button {
3515
  height: auto;
3516
  border: 1px solid #aaa;
3517
  background-color: #fff;
3518
- background-image: linear-gradient(#eeeeee 1%, #ffffff 15%);
3519
  cursor: text;
3520
  }
3521
 
@@ -3555,7 +3552,7 @@ span.spftestimonial-shortcode-selectable ~ button {
3555
  max-width: 100%;
3556
  border-radius: 3px;
3557
  background-color: #eeeeee;
3558
- background-image: linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
3559
  background-size: 100% 19px;
3560
  background-repeat: repeat-x;
3561
  background-clip: padding-box;
@@ -3584,7 +3581,7 @@ span.spftestimonial-shortcode-selectable ~ button {
3584
  padding-right: 5px;
3585
  border: 1px solid #ccc;
3586
  background-color: #e4e4e4;
3587
- background-image: linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
3588
  color: #666;
3589
  }
3590
 
@@ -3597,11 +3594,11 @@ span.spftestimonial-shortcode-selectable ~ button {
3597
  padding: 0;
3598
  }
3599
 
3600
- /* .chosen-container-multi .chosen-drop .result-selected {
3601
  display: list-item;
3602
  color: #ccc;
3603
  cursor: default;
3604
- } */
3605
 
3606
  .chosen-container-active .chosen-single {
3607
  border: 1px solid #5897fb;
@@ -3612,105 +3609,468 @@ span.spftestimonial-shortcode-selectable ~ button {
3612
  border: 1px solid #aaa;
3613
  border-bottom-right-radius: 0;
3614
  border-bottom-left-radius: 0;
3615
- background-image: linear-gradient(#eeeeee 20%, #ffffff 80%);
3616
  box-shadow: 0 1px 0 #fff inset;
3617
  }
3618
-
3619
- .chosen-container-active.chosen-with-drop .chosen-single div {
3620
- border-left: none;
3621
- background: transparent;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3622
  }
3623
-
3624
- .chosen-container-active .chosen-choices {
3625
- border: 1px solid #5897fb;
3626
- box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
3627
  }
3628
-
3629
- .chosen-container-active .chosen-choices li.search-field input[type="text"] {
3630
- color: #222 !important;
 
3631
  }
3632
-
3633
- .chosen-disabled {
3634
- opacity: 0.5 !important;
3635
- cursor: default;
3636
  }
3637
 
3638
- .chosen-disabled .chosen-single {
3639
- cursor: default;
 
 
 
3640
  }
3641
 
3642
- .chosen-disabled .chosen-choices .search-choice .search-choice-close {
3643
- cursor: default;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3644
  }
3645
 
3646
- .chosen-rtl {
3647
- text-align: right;
3648
  }
3649
 
3650
- .chosen-rtl .chosen-single {
3651
- overflow: visible;
3652
- padding: 0 8px 0 0;
3653
  }
3654
 
3655
- .chosen-rtl .chosen-single span {
3656
- margin-right: 0;
3657
- margin-left: 26px;
3658
- direction: rtl;
3659
  }
3660
 
3661
- .chosen-rtl .chosen-single-with-deselect span {
3662
- margin-left: 38px;
 
3663
  }
3664
 
3665
- .chosen-rtl .chosen-single div {
3666
- right: auto;
3667
- left: 3px;
 
 
 
 
 
 
 
 
3668
  }
3669
 
3670
- .chosen-rtl .chosen-single abbr {
3671
- right: auto;
3672
- left: 26px;
3673
  }
3674
 
3675
- .chosen-rtl .chosen-choices li {
3676
- float: right;
 
3677
  }
3678
 
3679
- .chosen-rtl .chosen-choices li.search-field input[type="text"] {
3680
- direction: rtl;
 
3681
  }
3682
 
3683
- .chosen-rtl .chosen-choices li.search-choice {
3684
- margin: 3px 5px 3px 0;
3685
- padding: 3px 5px 3px 19px;
3686
  }
3687
 
3688
- .chosen-rtl .chosen-choices li.search-choice .search-choice-close {
3689
- right: auto;
3690
- left: 4px;
3691
  }
3692
 
3693
- .chosen-rtl.chosen-container-single .chosen-results {
3694
- margin: 0 0 4px 4px;
3695
- padding: 0 4px 0 0;
3696
  }
3697
 
3698
- .chosen-rtl .chosen-results li.group-option {
3699
- padding-right: 15px;
3700
- padding-left: 0;
3701
  }
3702
 
3703
- .chosen-rtl.chosen-container-active.chosen-with-drop .chosen-single div {
3704
- border-right: none;
3705
  }
3706
 
3707
- .chosen-rtl .chosen-search input[type="text"] {
3708
- padding: 4px 5px 4px 20px;
3709
- direction: rtl;
 
 
3710
  }
3711
 
3712
  /* Custom */
3713
- .spftestimonial--image.pro-feature {
3714
  position: relative;
3715
  pointer-events: none;
3716
  }
@@ -3877,9 +4237,9 @@ span.spftestimonial-shortcode-selectable ~ button {
3877
  -moz-osx-font-smoothing: grayscale;
3878
  }
3879
  /* Form page upper box area! */
3880
- .spftestimonial-field-form_upper_section{
3881
  background: #f5fcff;
3882
- padding: 50px 0 70px;
3883
  }
3884
  .spftestimonial-field-form_upper_section .sp-tfree-help .sp-tfree-pro-features .feature-section span.dashicons{
3885
  height: 22px;
@@ -3983,12 +4343,7 @@ div#spftestimonial-section-sp_tpro_form_elements_options_1 .spftestimonial-field
3983
  text-transform: uppercase;
3984
  font-weight: 600;
3985
  }
3986
- #sp_tpro_form_options
3987
- .spftestimonial-metabox
3988
- .spftestimonial-nav
3989
- ul
3990
- li
3991
- .spftestimonial-section-active {
3992
  box-shadow: 3px 0 0 0 #1595CE inset;
3993
  background-color: #fff;
3994
  color: #1595CE;
@@ -4004,120 +4359,11 @@ div#spftestimonial-section-sp_tpro_form_elements_options_1 .spftestimonial-field
4004
  input {
4005
  max-width: 400px;
4006
  }
4007
-
4008
-
4009
- /* Import export css */
4010
- .spftestimonial-field.spftestimonial-field-button_set.spt_export {
4011
- margin-top: 0;
4012
- padding-top: 0;
4013
- }
4014
-
4015
- .spftestimonial-field-button_set.spt_export .spftestimonial--button:hover,
4016
- .spftestimonial-field.spftestimonial-field-custom_import.spt_import button:hover {
4017
- background: #135e96;
4018
- border-color: #135e96;
4019
- color: #fff;
4020
- }
4021
-
4022
- .spftestimonial-field.spftestimonial-field-custom_import.spt_import button,
4023
- .spftestimonial-field-button_set.spt_export .spftestimonial--button {
4024
- background: #2271b1;
4025
- border-color: #2271b1;
4026
- color: #fff;
4027
- text-decoration: none;
4028
- text-shadow: none;
4029
- display: inline-block;
4030
- text-decoration: none;
4031
- font-size: 13px;
4032
- line-height: 2.15384615;
4033
- min-height: 30px;
4034
- margin: 0;
4035
- padding: 0 10px;
4036
- cursor: pointer;
4037
- border-width: 1px;
4038
- border-style: solid;
4039
- -webkit-appearance: none;
4040
- border-radius: 3px;
4041
- white-space: nowrap;
4042
- box-sizing: border-box;
4043
- }
4044
-
4045
- .sp-lcp-options .spftestimonial-field-select .spftestimonial-fieldset {
4046
- position: relative;
4047
- }
4048
-
4049
- .spftestimonial-field.spftestimonial-field-custom_import.spt_import .spftestimonial-fieldset {
4050
- position: relative;
4051
- }
4052
-
4053
- .spftestimonial-field.spftestimonial-field-custom_import.spt_import p {
4054
- padding-bottom: 0;
4055
- margin-bottom: 1px;
4056
- }
4057
-
4058
- .spftestimonial-field.spftestimonial-field-custom_import.spt_import button {
4059
- margin-top: 10px;
4060
- padding-bottom: 0px;
4061
- }
4062
-
4063
- .spftestimonial-field.spftestimonial-field-custom_import.spt_import .spftestimonial-help {
4064
- cursor: help;
4065
- position: absolute;
4066
- top: 80%;
4067
- transform: translateY(-50%);
4068
- padding: 5px;
4069
- font-size: 14px;
4070
- color: #aaa;
4071
- width: 15px;
4072
- left: 64px;
4073
- }
4074
-
4075
- .spftestimonial-field.spftestimonial-field-select.spt_post_forms_id .chosen-container .chosen-drop,
4076
- .spftestimonial-field.spftestimonial-field-select.spt_post_id .chosen-container .chosen-drop {
4077
- max-width: 400px;
4078
- }
4079
-
4080
- .spftestimonial-field.spftestimonial-field-select.spt_post_forms_id .chosen-container,
4081
- .spftestimonial-field.spftestimonial-field-select.spt_post_id .chosen-container {
4082
- max-width: 400px;
4083
- }
4084
-
4085
- .spftestimonial-field.spftestimonial-field-select.spt_post_forms_id,
4086
- .spftestimonial-field.spftestimonial-field-select.spt_post_id {
4087
- padding-top: 0;
4088
- }
4089
-
4090
- .spftestimonial_tools .spftestimonial-header-inner h1.export-import img {
4091
- height: 24px;
4092
- }
4093
-
4094
- .spftestimonial_tools .spftestimonial-nav-options li:nth-child(1) a {
4095
- background-image: url(../images/export-icon.svg);
4096
- }
4097
-
4098
- .spftestimonial_tools .spftestimonial-nav-options li:nth-child(2) a {
4099
- background-image: url(../images/import.svg);
4100
- }
4101
-
4102
- .spftestimonial_tools .spftestimonial-nav-options li:nth-child(1) a.spftestimonial-section-active {
4103
- background-image: url(../images/file-export-icon1.svg);
4104
- }
4105
-
4106
- .spftestimonial_tools .spftestimonial-nav-options li:nth-child(2) a.spftestimonial-section-active {
4107
- background-image: url(../images/file-import-icon1.svg);
4108
- }
4109
-
4110
- .spt-main-class.spftestimonial-theme-light.spftestimonial_tools .spftestimonial-nav-options ul li a {
4111
- padding: 15px 30px;
4112
- background-size: 14px;
4113
- background-position: 10px center;
4114
- background-repeat: no-repeat;
4115
- }
4116
-
4117
  #sp_tpro-preview-box {
4118
  overflow-x: auto;
4119
  padding: 0 20px;
4120
  resize: vertical;
 
4121
  }
4122
  #sp_tpro_live_preview .postbox-header .handle-actions .handle-order-lower,#sp_tpro_live_preview .postbox-header .handle-actions .handle-order-higher {
4123
  display: none;
1
  /**
2
+ *
3
+ * ---------------------------------------------------------
4
+ * CSS MAP
5
+ * ---------------------------------------------------------
6
+ *
7
  * 01. Base
8
  * 01. 01. Header
9
  * 01. 02. Sticky
17
  * 01. 10. Show All Options
18
  * 01. 11. Search Input
19
  * 01. 12. Metabox
20
+ * 01. 13. Comment Metabox
21
  * 01. 14. Help Tooltip
22
  * 02. Themes
23
  * 02. 01. Theme Dark
27
  * 03. 02. Field: accordion
28
  * 03. 03. Field: background
29
  * 03. 04. Field: backup
30
+ * 03. 05. Field: border, spacing, column, dimensions
31
  * 03. 06. Field: button_set
32
  * 03. 07. Field: checkbox, radio
33
  * 03. 08. Field: code_editor
37
  * 03. 12. Field: date
38
  * 03. 13. Field: gallery
39
  * 03. 14. Field: group
40
+ * 03. 15. Field: icon
41
  * 03. 16. Field: image_select
42
  * 03. 17. Field: link_color
43
  * 03. 18. Field: map
61
  * 03. 36. Field: submessage
62
  * 03. 37. Field: notice
63
  * 03. 38. Field: number
64
+ * 03. 39. Field: link
65
+ * 03. 40. Field: others
66
  * 04. Widget
67
  * 05. Customizer
68
+ * 06. Taxonomy
69
+ * 07. Profile
70
+ * 08. Nav Menu
71
+ * 09. Modal
72
+ * 09. 01. Shortcode Modal
73
+ * 09. 02. Gutenberg Modal
74
+ * 09. 03. Icon Modal
75
+ * 10. Helper
76
+ * 11. Welcome Page
77
+ * 12. Responsive
78
+ * 13. Others
79
  *
80
  * ---------------------------------------------------------
81
  *
95
  .spftestimonial-ab-icon {
96
  top: 2px;
97
  }
98
+ .text-center {
99
+ text-align: center;
100
+ }
101
 
102
  #screen-meta-links + .spftestimonial-options {
103
  margin-top: 40px;
117
 
118
  .spftestimonial-header-inner {
119
  padding: 25px;
120
+ transition: box-shadow .3s ease;
 
 
 
 
 
 
 
 
 
 
 
 
121
  }
122
  .spftestimonial-header-inner h1 {
 
123
  float: left;
124
  font-size: 20px;
125
  line-height: 35px;
136
  */
137
  .spftestimonial-sticky .spftestimonial-header-inner {
138
  position: fixed;
139
+ z-index: 99;
140
  top: 32px;
141
+ box-shadow: 0 5px 10px rgba(0, 0, 0, 0.1);
 
 
142
  }
143
 
144
  /**
145
  * 01. 03. Header Buttons
146
  */
147
+ .spftestimonial-buttons {
 
 
 
 
148
  float: right;
149
  }
150
+ .spftestimonial-buttons .button {
151
+ margin: 0 2px;
152
+ line-height: 26px;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
153
  }
154
+ .spftestimonial-buttons .button:focus {
155
+ outline: none !important;
 
 
 
 
156
  box-shadow: none !important;
 
 
 
 
 
157
  }
158
+ .spftestimonial-buttons .spftestimonial-save {
159
+ min-width: 72px;
 
 
160
  }
161
 
162
+ .spftestimonial-header-left {
163
+ float: left;
164
  }
165
 
166
+ .spftestimonial-header-right {
167
+ float: right;
 
168
  }
169
 
170
  /**
175
  position: relative;
176
  z-index: 10;
177
  float: left;
 
178
  }
179
  .spftestimonial-nav ul {
180
  clear: left;
190
  display: block;
191
  padding: 14px 12px;
192
  text-decoration: none;
193
+ transition-property: color, background;
194
+ transition-duration: 0.2s;
195
+ transition-timing-function: ease;
 
196
  }
197
  .spftestimonial-nav ul li a:focus {
198
  outline: none;
 
 
199
  box-shadow: none;
200
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
201
  .spftestimonial-nav ul li .spftestimonial-arrow:after {
202
  content: "\f054";
203
  display: inline-block;
204
+ font-family: "Font Awesome 5 Pro", "Font Awesome 5 Free", "FontAwesome";
205
+ font-weight: 900;
206
  font-size: 9px;
207
  line-height: 1;
208
  position: absolute;
209
  right: 10px;
210
  top: 50%;
211
  margin-top: -4px;
212
+ }
213
+ .spftestimonial-nav ul li.spftestimonial-tab-expanded .spftestimonial-arrow:after {
 
 
 
 
 
 
 
214
  transform: rotate(90deg);
215
  }
216
+ .spftestimonial-nav ul li.spftestimonial-tab-expanded ul {
217
  display: block;
218
  }
219
  .spftestimonial-nav ul ul {
224
  font-size: 12px;
225
  padding: 12px 14px 12px 24px;
226
  }
227
+ .spftestimonial-nav .spftestimonial-tab-icon {
228
  width: 20px;
229
  margin-right: 5px;
230
+ font-size: 13px;
231
  text-align: center;
232
  }
233
  .spftestimonial-nav .spftestimonial-label-error {
235
  vertical-align: top;
236
  }
237
 
238
+ .spftestimonial-nav-normal {
239
+ width: 225px;
240
+ }
241
+ .spftestimonial-nav-normal + .spftestimonial-content {
242
+ margin-left: 225px;
243
+ }
244
+
245
+ .spftestimonial-nav-inline {
246
+ width: 100%;
247
+ }
248
+ .spftestimonial-nav-inline ul li {
249
+ display: inline-block;
250
+ vertical-align: top;
251
+ }
252
+
253
  .spftestimonial-nav-background {
254
  position: absolute;
255
  top: 0;
271
  */
272
  .spftestimonial-content {
273
  position: relative;
 
274
  background-color: #fff;
 
 
 
 
275
  }
276
 
277
  /**
282
  width: 100%;
283
  }
284
 
 
 
 
 
285
  .spftestimonial-section-title {
286
  display: none;
287
  padding: 20px 30px;
296
  font-weight: bold;
297
  text-transform: uppercase;
298
  }
299
+ .spftestimonial-section-title .spftestimonial-section-icon {
300
  margin-right: 5px;
301
  }
302
 
317
  }
318
 
319
  /**
320
+ * 01. 10. Show All Settings
321
  */
322
  .spftestimonial-search-all .spftestimonial-nav-background,
323
  .spftestimonial-search-all .spftestimonial-nav,
345
  padding: 0 8px;
346
  margin-right: 4px;
347
  z-index: 1;
348
+ font-size: 13px;
349
+ line-height: 30px;
350
  cursor: pointer;
351
  user-select: none;
 
 
352
  border-radius: 2px;
353
+ transition: all .2s;
 
 
 
354
  }
355
  .spftestimonial-expand-all span {
356
  font-size: 11px;
367
  margin: 0 2px 0 0;
368
  border: none;
369
  font-size: 12px;
370
+ line-height: 30px;
371
+ min-height: 30px;
372
  text-align: inherit;
373
  padding: 0 10px;
 
 
374
  border-radius: 2px;
 
 
375
  box-shadow: none;
376
  }
377
  .spftestimonial-search input:focus {
 
 
378
  box-shadow: none;
379
  }
380
 
382
  .spftestimonial-saving .spftestimonial-content {
383
  cursor: default;
384
  pointer-events: none;
385
+ opacity: 1;
386
  }
387
 
388
  /**
391
  .spftestimonial-metabox {
392
  margin: -6px -12px -12px -12px;
393
  }
394
+ .spftestimonial-metabox .spftestimonial-field {
395
+ padding: 20px;
396
+ }
397
  .spftestimonial-metabox .spftestimonial-section-title {
398
  padding: 20px;
399
  }
400
 
401
  .block-editor-page .spftestimonial-metabox {
402
+ margin: -6px -14px -14px -14px;
403
+ }
404
+
405
+ .block-editor-editor-skeleton__content .spftestimonial-metabox {
406
+ border-left: 1px solid #e2e4e7;
407
+ border-right: 1px solid #e2e4e7;
408
  }
409
 
410
+ .spftestimonial-sections-reset {
411
+ float: left;
412
+ width: 100%;
413
  text-align: right;
 
414
  border-top: 1px solid #eee;
415
  }
416
+ .spftestimonial-sections-reset .spftestimonial-button-cancel,
417
+ .spftestimonial-sections-reset input {
418
  display: none;
419
  }
420
+ .spftestimonial-sections-reset label {
421
+ padding: 10px;
422
+ }
423
+ .spftestimonial-sections-reset span {
424
  -webkit-user-select: none;
425
  user-select: none;
426
  }
427
+ .spftestimonial-sections-reset input:checked ~ .spftestimonial-button-reset {
428
  display: none;
429
  }
430
+ .spftestimonial-sections-reset input:checked ~ .spftestimonial-button-cancel {
431
  display: inline-block;
432
  }
433
 
435
  padding: 12px;
436
  }
437
  #side-sortables .spftestimonial-field {
438
+ padding: 10px 15px;
439
  }
440
  #side-sortables .spftestimonial-field .spftestimonial-title {
441
  float: none;
442
  width: 100%;
443
+ margin-bottom: 6px;
444
  }
445
  #side-sortables .spftestimonial-field .spftestimonial-fieldset {
446
+ float: none;
447
+ width: 100%;
448
+ }
449
+ #side-sortables .spftestimonial-field-text input {
450
+ width: 100%;
451
  }
452
  #side-sortables .spftestimonial-notice {
453
+ padding: 10px 15px;
454
+ }
455
+
456
+ /**
457
+ * 01. 13. Comment Metabox
458
+ */
459
+ .spftestimonial-comment-metabox {
460
+ margin: -6px -12px -12px -12px;
461
+ }
462
+ .spftestimonial-comment-metabox .spftestimonial-field {
463
+ padding: 20px;
464
+ }
465
+ .spftestimonial-comment-metabox .spftestimonial-section-title {
466
+ padding: 20px;
467
  }
468
 
469
  /**
481
  color: #fff;
482
  background-color: #000;
483
  background-color: rgba(0, 0, 0, 0.85);
 
 
484
  border-radius: 4px;
485
  }
486
 
519
  }
520
  .spftestimonial-theme-dark .spftestimonial-nav ul li a {
521
  color: #999;
522
+ border-color: #2f2f2f;
523
  background-color: #222;
 
524
  }
525
+ /* .spftestimonial-theme-dark .spftestimonial-nav ul li a:hover {
526
  color: #fff;
527
+ } */
528
+ .spftestimonial-theme-dark .spftestimonial-nav ul li .spftestimonial-active .fa {
529
+ color: #1595CE;
530
  }
531
+ .spftestimonial-theme-dark .spftestimonial-nav ul li .spftestimonial-active {
532
+ color: #444;
533
+ background-color: #fff;
534
+ box-shadow: 0 3px 0 0 #1595ce inset;
535
  }
536
  .spftestimonial-theme-dark .spftestimonial-nav ul ul li a {
537
+ border-color: #2f2f2f;
538
  background-color: #191919;
 
539
  }
540
+ .spftestimonial-theme-dark .spftestimonial-nav ul ul li .spftestimonial-active {
541
  background-color: #101010;
542
  }
543
  .spftestimonial-theme-dark .spftestimonial-nav ul ul:before {
544
  background-color: rgba(34, 34, 34, 0.75);
545
  }
546
  .spftestimonial-theme-dark .spftestimonial-nav > ul > li:last-child > a {
547
+ border: none;
548
+ }
549
+ .spftestimonial-theme-dark .spftestimonial-nav-normal ul li a {
550
+ border-bottom-width: 1px;
551
+ border-bottom-style: solid;
552
+ }
553
+ .spftestimonial-theme-dark .spftestimonial-nav-normal ul li .spftestimonial-active:after {
554
+ content: " ";
555
+ position: absolute;
556
+ right: 0;
557
+ top: 50%;
558
+ height: 0;
559
+ width: 0;
560
+ pointer-events: none;
561
+ border: solid transparent;
562
+ border-right-color: #fff;
563
+ border-width: 4px;
564
+ margin-top: -4px;
565
+ }
566
+ .spftestimonial-theme-dark .spftestimonial-nav-inline {
567
+ background: #f1f1f1;;
568
+ }
569
+ .spftestimonial-theme-dark .spftestimonial-nav-inline ul li a {
570
+ background-color: #1595ce;
571
+ font-size: 14px;
572
+ padding: 15px 15px;
573
+ line-height: 1.4;
574
+ color: #ffffff;
575
+ border-right: 1px solid #e2e2e1;
576
+ font-weight: 600;
577
+ text-transform: uppercase;
578
+ }
579
+ .spftestimonial-theme-dark .spftestimonial-nav-inline ul li .spftestimonial-active:after {
580
+ content: " ";
581
+ position: absolute;
582
+ left: 50%;
583
+ bottom: 0;
584
+ height: 0;
585
+ width: 0;
586
+ pointer-events: none;
587
+ border: solid transparent;
588
+ border-bottom-color: #fff;
589
+ border-width: 4px;
590
+ margin-left: -4px;
591
  }
592
  .spftestimonial-theme-dark .spftestimonial-nav-background {
593
  background-color: #222;
596
  color: #555;
597
  background-color: #050505;
598
  }
599
+ .spftestimonial-field-border .spftestimonial--inputs{
600
+ margin-top: 19px;
601
+ }
602
  /**
603
  * 02. 02. Theme Light
604
  */
605
  .spftestimonial-theme-light .spftestimonial-container {
606
+ border: 1px solid #ccd0d4;
607
+ box-shadow: 0 0 15 rgba(0, 0, 0, 0.04);
 
 
608
  }
609
  .spftestimonial-theme-light .spftestimonial-header-inner {
610
+ border-bottom: 1px solid #ccd0d4;
611
  background-color: #f5f5f5;
612
  background: linear-gradient(#fefefe, #f5f5f5);
613
  }
616
  }
617
  .spftestimonial-theme-light .spftestimonial-expand-all {
618
  color: #999;
619
+ background-color: #eee;
 
 
 
620
  }
621
  .spftestimonial-theme-light .spftestimonial-expand-all:hover {
622
  color: #555;
623
  }
624
  .spftestimonial-theme-light .spftestimonial-search input {
625
  color: #555;
626
+ background-color: #eee;
 
 
 
627
  }
628
  .spftestimonial-theme-light .spftestimonial-search input::-webkit-input-placeholder {
629
+ color: #999;
630
  }
631
  .spftestimonial-theme-light .spftestimonial-nav ul li a {
632
+ font-weight: 500;
633
+ color: #444;
634
  background-color: #f5f5f5;
635
+ text-transform: uppercase;
636
  }
637
  .spftestimonial-theme-light .spftestimonial-nav ul li a:hover {
638
+ color: #111;
 
 
 
639
  background-color: #fff;
640
  }
641
+ .spftestimonial-theme-light .spftestimonial-nav ul li .spftestimonial-active {
642
+ color: #111;
643
+ background-color: #fff;
644
  }
645
  .spftestimonial-theme-light .spftestimonial-nav ul ul li a {
646
  background-color: #eee;
 
647
  }
648
+ .spftestimonial-theme-light .spftestimonial-nav-normal > ul {
649
+ margin-bottom: -1px;
650
+ }
651
+ .spftestimonial-theme-light .spftestimonial-nav-normal > ul li a {
652
+ border-bottom: 1px solid #ccd0d4;
653
+ border-right: 1px solid #ccd0d4;
654
+ }
655
+ .spftestimonial-theme-light .spftestimonial-nav-normal > ul li .spftestimonial-active {
656
+ border-right-color: #fff;
657
+ }
658
+ .spftestimonial-theme-light .spftestimonial-nav-inline {
659
+ background-color: #f5f5f5;
660
+ border-bottom: 1px solid #ccd0d4;
661
+ }
662
+ .spftestimonial-theme-light .spftestimonial-nav-inline > ul {
663
+ margin-bottom: -1px;
664
+ }
665
+ .spftestimonial-theme-light .spftestimonial-nav-inline > ul li a {
666
+ text-align: center;
667
+ border-right: 1px solid #ccd0d4;
668
+ border-bottom: 1px solid #ccd0d4;
669
+ }
670
+ .spftestimonial-theme-light .spftestimonial-nav-inline > ul li .spftestimonial-active {
671
+ border-bottom-color: #fff;
672
+ }
673
+ .spftestimonial-theme-light .spftestimonial-nav-inline > ul ul {
674
+ display: none !important;
675
+ }
676
+ .spftestimonial-theme-light .spftestimonial-nav-inline .spftestimonial-arrow:after {
677
+ display: none;
678
  }
679
  .spftestimonial-theme-light .spftestimonial-nav-background {
680
  background-color: #f5f5f5;
681
+ border-right: 1px solid #ccd0d4;
682
  }
683
  .spftestimonial-theme-light .spftestimonial-footer {
684
  color: #555;
685
+ border-top: 1px solid #ccd0d4;
686
  background-color: #f5f5f5;
687
  background: linear-gradient(#fafafa, #f5f5f5);
688
  }
692
  */
693
  .spftestimonial-field {
694
  position: relative;
695
+ padding: 30px;
696
+ }
697
+ .spftestimonial-field + .spftestimonial-field {
698
+ border-top: none;
699
  }
700
  .spftestimonial-field p:first-child {
701
  margin-top: 0;
721
  .spftestimonial-field .spftestimonial-title h4 {
722
  margin: 0;
723
  color: #23282d;
 
724
  }
725
  .spftestimonial-field .spftestimonial-fieldset {
726
+ float: right;
727
+ width: calc(80% - 20px);
728
  }
729
 
730
  .spftestimonial-pseudo-field {
745
  position: relative;
746
  margin-bottom: 5px;
747
  }
748
+ .spftestimonial-field-accordion .spftestimonial-accordion-item:last-child {
749
+ margin-bottom: 0;
750
+ }
751
  .spftestimonial-field-accordion .spftestimonial-accordion-item h4 {
752
  font-size: 1em;
753
  }
769
  outline: none;
770
  border-color: #999;
771
  }
772
+ .spftestimonial-field-accordion .spftestimonial-accordion-title .spftestimonial--icon {
773
+ width: 20px;
774
  text-align: center;
775
+ margin-right: 2px;
776
  }
777
+ .spftestimonial-field-accordion .spftestimonial-accordion-icon {
778
+ width: 16px;
779
  text-align: center;
780
  }
781
  .spftestimonial-field-accordion .spftestimonial-accordion-content {
793
  display: block;
794
  }
795
 
796
+
797
+
798
+
799
  /**
800
+ * 03. 05. Field: border, spacing, dimensions
801
  */
802
+ .spftestimonial-field-custom_size.disabled .spftestimonial-fieldset {
803
+ pointer-events: none;
804
+ opacity: 0.7;
 
 
805
  }
806
+ .spftestimonial-field-custom_size.disabled .spftestimonial-fieldset .spftestimonial--input:after{
807
+ content: 'Pro';
808
+ text-transform: uppercase;
809
+ line-height: 30px;
810
+ margin-left: 6px;
811
+ color: #444;
812
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
813
  .spftestimonial-field-border .spftestimonial--inputs,
814
+ .spftestimonial-field-custom_size .spftestimonial--inputs,
815
  .spftestimonial-field-spacing .spftestimonial--inputs,
816
  .spftestimonial-field-column .spftestimonial--inputs,
817
  .spftestimonial-field-dimensions .spftestimonial--inputs {
821
  }
822
  .spftestimonial-field-border .spftestimonial--input,
823
  .spftestimonial-field-spacing .spftestimonial--input,
824
+ .spftestimonial-field-custom_size .spftestimonial--input,
825
  .spftestimonial-field-column .spftestimonial--input,
826
  .spftestimonial-field-dimensions .spftestimonial--input {
827
  display: flex;
830
  box-sizing: border-box;
831
  }
832
  .spftestimonial-field-border .spftestimonial--input select,
833
+ .spftestimonial-field-custom_size .spftestimonial--input select,
834
  .spftestimonial-field-spacing .spftestimonial--input select,
835
  .spftestimonial-field-dimensions .spftestimonial--input select {
836
  margin: 0;
838
  .spftestimonial-field-border .spftestimonial--input input,
839
  .spftestimonial-field-spacing .spftestimonial--input input,
840
  .spftestimonial-field-column .spftestimonial--input input,
841
+ .spftestimonial-field-custom_size .spftestimonial--input input,
842
  .spftestimonial-field-dimensions .spftestimonial--input input {
843
  position: relative;
844
  z-index: 1;
845
  margin: 0;
846
  width: 65px;
847
  max-width: 100%;
 
848
  text-align: center;
 
849
  }
850
  .spftestimonial-field-border .spftestimonial--color,
851
  .spftestimonial-field-spacing .spftestimonial--color,
852
+ .spftestimonial-field-custom_size .spftestimonial--color,
853
  .spftestimonial-field-dimensions .spftestimonial--color {
854
  float: left;
855
  }
 
 
 
856
  .spftestimonial-field-border .spftestimonial--label,
857
  .spftestimonial-field-spacing .spftestimonial--label,
858
+ .spftestimonial-field-custom_size .spftestimonial--label,
859
+ .spftestimonial-field-column .spftestimonial--label,
860
  .spftestimonial-field-dimensions .spftestimonial--label {
861
  display: flex;
862
  flex-direction: column;
872
  background-color: #f5f5f5;
873
  }
874
  .spftestimonial-field-border .spftestimonial--icon,
875
+ .spftestimonial-field-custom_size .spftestimonial--icon,
876
  .spftestimonial-field-spacing .spftestimonial--icon,
877
+ .spftestimonial-field-column .spftestimonial--icon,
878
  .spftestimonial-field-dimensions .spftestimonial--icon {
879
  border-right: 0;
880
  border-radius: 4px 0 0 4px;
881
  }
882
  .spftestimonial-field-border .spftestimonial--icon + input,
883
+ .spftestimonial-field-custom_size .spftestimonial--icon + input,
884
  .spftestimonial-field-spacing .spftestimonial--icon + input,
885
+ .spftestimonial-field-column .spftestimonial--icon + input,
886
  .spftestimonial-field-dimensions .spftestimonial--icon + input {
887
+ border-top-left-radius: 0 !important;
888
+ border-bottom-left-radius: 0 !important;
889
  }
890
  .spftestimonial-field-border .spftestimonial--unit,
891
+ .spftestimonial-field-custom_size .spftestimonial--unit,
892
  .spftestimonial-field-spacing .spftestimonial--unit,
893
+ .spftestimonial-field-column .spftestimonial--unit,
894
  .spftestimonial-field-dimensions .spftestimonial--unit {
895
  border-left: 0;
896
  border-radius: 0 4px 4px 0;
897
  }
898
  .spftestimonial-field-border .spftestimonial--is-unit,
899
+ .spftestimonial-field-custom_size .spftestimonial--is-unit,
900
  .spftestimonial-field-spacing .spftestimonial--is-unit,
901
+ .spftestimonial-field-column .spftestimonial--is-unit,
902
  .spftestimonial-field-dimensions .spftestimonial--is-unit {
903
+ border-top-right-radius: 0 !important;
904
+ border-bottom-right-radius: 0 !important;
905
  }
906
 
907
  /**
916
  float: left;
917
  cursor: pointer;
918
  padding: 7px 14px;
919
+ min-width: 16px;
920
  text-align: center;
921
  color: #555;
922
  border: 1px solid #cccccc;
923
  background-color: #f7f7f7;
924
  user-select: none;
 
925
  box-shadow: 0 1px 0 rgba(0, 0, 0, 0.1);
926
  }
927
  .spftestimonial-field-button_set .spftestimonial--button:first-child {
953
  .spftestimonial-field-checkbox ul,
954
  .spftestimonial-field-radio ul {
955
  margin: 0;
956
+ padding: 0;
957
  list-style-type: none;
958
  overflow-y: auto;
959
+ }
960
+ .spftestimonial-field-checkbox ul li,
961
+ .spftestimonial-field-radio ul li {
962
+ margin-bottom: 6px;
963
  }
964
  .spftestimonial-field-checkbox ul ul,
965
  .spftestimonial-field-radio ul ul {
966
  max-height: none;
967
  }
968
+ .spftestimonial-field-checkbox ul ul li,
969
+ .spftestimonial-field-radio ul ul li {
970
+ margin-left: 8px;
971
+ }
972
+ .spftestimonial-field-checkbox ul ul li:first-child,
973
+ .spftestimonial-field-radio ul ul li:first-child {
974
+ margin-left: 0;
975
+ }
976
+ .spftestimonial-field-checkbox input,
977
+ .spftestimonial-field-radio input {
978
+ margin: 0 1px;
979
+ }
980
  .spftestimonial-field-checkbox .spftestimonial--inline-list li,
981
  .spftestimonial-field-radio .spftestimonial--inline-list li {
982
  display: inline-block;
983
  margin-right: 15px;
984
  }
985
+ .spftestimonial-field-checkbox .spftestimonial--text,
986
+ .spftestimonial-field-radio .spftestimonial--text {
987
+ margin-left: 5px;
988
+ vertical-align: middle;
989
  }
990
  .spftestimonial-field-checkbox .spftestimonial-checker,
991
  .spftestimonial-field-radio .spftestimonial-checker {
1016
  max-width: 100%;
1017
  }
1018
  .spftestimonial-field-color .button.wp-picker-clear {
1019
+ padding: 0 8px;
1020
  margin-left: 6px;
1021
+ line-height: 2.54545455;
1022
+ min-height: 30px;
1023
  }
1024
 
1025
  /**
1030
  margin-right: 10px;
1031
  margin-bottom: 5px;
1032
  }
1033
+ .spftestimonial-field-color_group .spftestimonial--title {
 
1034
  color: #999;
1035
  margin-bottom: 5px;
1036
  }
1051
  }
1052
 
1053
  /**
1054
+ * 03. 16. Field: image_select
1055
  */
1056
+ .spftestimonial-field-icon_select .spftestimonial--image,
1057
+ .spftestimonial-field-image_select .spftestimonial--image {
1058
+ display: inline-block;
1059
+ margin: 0 5px 5px 0;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1060
  }
1061
+ .spftestimonial-field-image_select .spftestimonial--inline-list .spftestimonial--image {
1062
+ display: block;
 
 
1063
  }
1064
+ .spftestimonial-field-icon_select figure,
1065
+ .spftestimonial-field-image_select figure {
1066
  cursor: pointer;
1067
+ position: relative;
1068
+ display: inline-block;
1069
+ max-width: 100%;
1070
+ margin: 0;
1071
+ vertical-align: bottom;
1072
+ border: 2px solid transparent;
1073
+ background-color: #fff;
1074
+ user-select: none;
1075
+ transition: all .2s;
1076
  }
1077
+ .spftestimonial-field-icon_select figure:before,
1078
+ .spftestimonial-field-image_select figure:before {
1079
+ position: absolute;
1080
+ top: -2px;
1081
+ right: -2px;
 
 
 
 
 
 
 
 
1082
  text-align: center;
1083
+ font-size: 10px;
1084
+ font-family: "Font Awesome 5 Pro", "Font Awesome 5 Free", "FontAwesome";
1085
+ font-weight: 900;
1086
+ content: "\f00c";
1087
+ width: 16px;
1088
+ height: 16px;
1089
+ line-height: 14px;
1090
+ opacity: 0;
1091
  color: #fff;
1092
+ background-color: #1595CE;
1093
+ transition: opacity .2s;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1094
  }
1095
+ .spftestimonial-field-icon_select .spftestimonial--active figure,
1096
+ .spftestimonial-field-image_select .spftestimonial--active figure {
1097
+ border-color: #1595CE;
1098
+ outline: 3px solid #1595CE;
1099
+ outline-offset: -3px;
1100
  }
1101
+ .spftestimonial-field-icon_select .spftestimonial--active figure:before,
1102
+ .spftestimonial-field-image_select .spftestimonial--active figure:before {
1103
+ opacity: 1;
1104
  }
1105
+ .spftestimonial-field-image_select img {
1106
+ /* max-width: 100%;
1107
+ height: auto; */
1108
+ width: 110px;
1109
+ vertical-align: top;
1110
  }
1111
+ .spftestimonial-field-icon_select input,
1112
+ .spftestimonial-field-image_select input {
1113
+ display: none;
 
1114
  }
1115
+ .spftestimonial-field-icon_select .spftestimonial--image {
1116
  cursor: pointer;
1117
+ position: relative;
1118
+ display: inline-block;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1119
  text-align: center;
1120
+ max-width: 100%;
1121
+ margin: 0 16px 7px 0;
1122
+ vertical-align: top;
1123
+ background-color: #fff;
1124
+ user-select: none;
1125
+ -webkit-user-select: none;
1126
+ -moz-transition: all 0.2s;
1127
+ -o-transition: all 0.2s;
1128
+ -webkit-transition: all 0.2s;
1129
+ transition: all 0.2s;
1130
+ border: 2px solid #f4f4f4;
1131
+ width: 35px;
1132
+ height: 35px;
1133
  text-align: center;
1134
+ line-height: 35px;
1135
+ font-size: 20px;
 
 
 
 
 
 
 
 
1136
  }
1137
+ .sp-field-icon-select .fa {
1138
+ color: #888;
 
 
1139
  }
1140
+ .spftestimonial-field-icon_select .spftestimonial--active {
1141
+ border-color: #1595CE;
1142
  }
1143
 
1144
+
1145
+
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1146
 
1147
  /**
1148
+ * 03. 21. Field: repeater
1149
  */
1150
+ .spftestimonial-field-repeater .spftestimonial-field-text input {
1151
+ width: 100%;
1152
  }
1153
+ .spftestimonial-field-repeater .spftestimonial-repeater-hidden {
1154
+ display: none !important;
1155
  }
1156
+ .spftestimonial-field-repeater .spftestimonial-repeater-wrapper .spftestimonial-repeater-item {
1157
+ display: table;
1158
+ width: 100%;
1159
  margin-bottom: 5px;
1160
+ border: 1px solid #eee;
1161
  }
1162
+ .spftestimonial-field-repeater .spftestimonial-repeater-wrapper .spftestimonial-repeater-item h4 {
1163
  font-size: 1em;
1164
  }
1165
+ .spftestimonial-field-repeater .spftestimonial-repeater-content {
1166
+ width: 100%;
1167
+ display: table-cell;
1168
+ vertical-align: middle;
 
1169
  background-color: #fff;
 
1170
  }
1171
+ .spftestimonial-field-repeater .spftestimonial-repeater-content > .spftestimonial-field {
1172
  padding: 15px;
1173
  }
1174
+ .spftestimonial-field-repeater .spftestimonial-repeater-helper {
1175
+ width: 100%;
1176
+ display: table-cell;
1177
+ vertical-align: middle;
1178
+ text-align: center;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1179
  font-size: 14px;
1180
  line-height: 1em;
1181
+ border-left: 1px solid #eee;
1182
+ background-color: #f7f7f7;
1183
  }
1184
+ .spftestimonial-field-repeater .spftestimonial-repeater-helper i {
1185
  display: inline-block;
1186
  cursor: pointer;
 
1187
  color: #999;
1188
+ padding: 5px;
1189
  }
1190
+ .spftestimonial-field-repeater .spftestimonial-repeater-helper i:hover {
1191
  color: #555;
1192
  }
1193
+ .spftestimonial-field-repeater .spftestimonial-repeater-helper-inner {
1194
+ width: 75px;
 
 
 
 
 
1195
  }
1196
+ .spftestimonial-field-repeater .spftestimonial-repeater-alert {
1197
  display: none;
1198
  margin-bottom: 5px;
1199
  padding: 10px 20px;
1201
  border: 1px solid #ebccd1;
1202
  background-color: #f2dede;
1203
  }
1204
+ .spftestimonial-field-repeater .widget-placeholder {
1205
+ height: 50px;
1206
+ margin-bottom: 3px;
1207
  border: 1px dashed #f1c40f;
1208
  background-color: #fffae4;
1209
  }
1210
+ .spftestimonial-field-repeater .ui-sortable-helper {
1211
+ height: 50px !important;
1212
+ overflow: hidden !important;
1213
+ border-color: #ccc !important;
1214
+ background-color: #eee !important;
1215
+ opacity: 0.5;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1216
  }
1217
+ .spftestimonial-field-repeater .ui-sortable-helper .spftestimonial-repeater-helper,
1218
+ .spftestimonial-field-repeater .ui-sortable-helper .spftestimonial-repeater-content {
1219
  display: none;
1220
  }
1221
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1222
  /**
1223
+ * 03. 22. Field: select
1224
  */
1225
+ .spftestimonial-field-select .spftestimonial-fieldset {
1226
+ min-height: 30px;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1227
  }
1228
+ .spftestimonial-field-select .spftestimonial-chosen {
1229
+ display: none;
 
 
 
 
1230
  }
1231
+ .spftestimonial-field-select select {
1232
+ max-width: 100%;
1233
  margin: 0;
1234
  }
1235
+ .spftestimonial-field-select .spftestimonial-hide-select {
1236
+ display: none !important;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1237
  }
1238
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1239
 
1240
  /**
1241
+ * 03. 24. Field: sortable
1242
  */
1243
+ .spftestimonial-field-sortable .spftestimonial-field-text input {
1244
  width: 100%;
1245
+ max-width: 100%;
1246
  }
1247
+ .spftestimonial-field-sortable .spftestimonial-sortable .spftestimonial-sortable-item {
 
 
 
1248
  display: table;
1249
  width: 100%;
1250
  margin-bottom: 5px;
1251
  border: 1px solid #eee;
1252
  }
1253
+ .spftestimonial-field-sortable .spftestimonial-sortable .spftestimonial-sortable-item h4 {
1254
  font-size: 1em;
1255
  }
1256
+ .spftestimonial-field-sortable .spftestimonial-sortable-content {
1257
  width: 100%;
1258
  display: table-cell;
1259
  vertical-align: middle;
1260
  background-color: #fff;
1261
  }
1262
+ .spftestimonial-field-sortable .spftestimonial-sortable-content > .spftestimonial-field {
1263
  padding: 15px;
1264
  }
1265
+ .spftestimonial-field-sortable .spftestimonial-sortable-helper {
1266
  width: 100%;
1267
  display: table-cell;
1268
  vertical-align: middle;
1272
  border-left: 1px solid #eee;
1273
  background-color: #f7f7f7;
1274
  }
1275
+ .spftestimonial-field-sortable .spftestimonial-sortable-helper i {
1276
  display: inline-block;
1277
  cursor: pointer;
1278
+ width: 50px;
 
 
 
1279
  color: #555;
1280
  }
1281
+ .spftestimonial-field-sortable .spftestimonial-sortable-helper i:hover {
1282
+ opacity: 0.5;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1283
  }
1284
  .spftestimonial-field-sortable .widget-placeholder {
1285
  height: 50px;
1294
  background-color: #eee !important;
1295
  opacity: 0.5;
1296
  }
1297
+ .spftestimonial-field-sortable .ui-sortable-helper .spftestimonial-sortable-helper,
1298
+ .spftestimonial-field-sortable .ui-sortable-helper .spftestimonial-sortable-content {
1299
  display: none;
1300
  }
1301
 
1325
  background-color: #fff;
1326
  }
1327
  .spftestimonial-field-sorter .spftestimonial-disabled li {
 
 
 
 
1328
  opacity: 0.5;
1329
+ transition: opacity .15s;
1330
  }
1331
  .spftestimonial-field-sorter .spftestimonial-disabled .ui-sortable-helper {
1332
  opacity: 1;
1355
  text-align: center;
1356
  border: 1px solid #e5e5e5;
1357
  background-color: #fafafa;
1358
+ transition: border-color .15s;
 
 
 
1359
  }
1360
  .spftestimonial-field-sorter ul li:hover {
1361
  border-color: #bbb;
1370
  .spftestimonial-field-spinner .ui-spinner {
1371
  display: flex;
1372
  }
1373
+ .spftestimonial-field-spinner .ui-button {
1374
  display: flex;
1375
  flex-direction: column;
1376
  justify-content: center;
1377
  text-align: center;
1378
  min-width: 20px;
1379
+ padding: 0 10px;
1380
  color: #555;
1381
  border: 1px solid #7e8993;
1382
  background-color: #f5f5f5;
1383
  }
1384
+ .spftestimonial-field-spinner .ui-spinner-button {
1385
  cursor: pointer;
1386
  }
1387
+ .spftestimonial-field-spinner .ui-button {
1388
+ height: 30px;
1389
+ box-shadow: none;
1390
+ box-sizing: border-box;
1391
+ }
1392
+ .spftestimonial--input input:focus,
1393
+ .spftestimonial-field-spinner .ui-spinner-input:focus,
1394
+ .spftestimonial-field-spinner .ui-button:focus {
1395
+ box-shadow: none;
1396
+ }
1397
+
1398
+ .spftestimonial-field-spinner .ui-spinner-button:hover {
1399
  background-color: #e7e7e7;
1400
  }
1401
+ .spftestimonial-field-spinner .ui-spinner-button:active {
1402
  background-color: #ddd;
1403
  }
1404
+ .spftestimonial-field-spinner .ui-spinner-button:before {
1405
+ font-family: "Font Awesome 5 Pro", "Font Awesome 5 Free", "FontAwesome";
1406
+ font-weight: 900;
1407
  font-size: 14px;
1408
+ line-height: 14px;
1409
  }
1410
  .spftestimonial-field-spinner .ui-spinner-down {
1411
  order: 1;
1440
  padding: 0 8px;
1441
  border-radius: 0;
1442
  }
1443
+ .spftestimonial-field-spinner .ui-button-text,
1444
+ .spftestimonial-field-spinner .ui-button-icon,
1445
+ .spftestimonial-field-spinner .ui-button-icon-space {
1446
  display: none;
1447
  }
1448
 
1516
  font-weight: 400;
1517
  color: #999;
1518
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1519
 
1520
  /**
1521
  * 03. 29. Field: text
1522
  */
1523
  .spftestimonial-field-text input {
1524
+ width: 340px;
1525
  max-width: 100%;
1526
  margin: 0;
1527
  }
1534
  max-width: 100%;
1535
  min-height: 125px;
1536
  }
1537
+ .spftestimonial-field-textarea .spftestimonial-shortcode-button {
1538
+ margin-bottom: 10px;
1539
+ margin-right: 5px;
1540
+ }
1541
 
1542
  /**
1543
+ * 03. 31. Field: typography
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1544
  */
1545
+ .spftestimonial-field-typography textarea,
1546
+ .spftestimonial-field-typography select {
1547
  margin: 0;
1548
+ min-width: 100%;
1549
+ max-width: 100%;
1550
  }
1551
+ .spftestimonial-field-typography .spftestimonial--title {
1552
+ color: #777;
1553
+ margin: 0 0 2px 0;
1554
+ font-size: 12px;
1555
  }
1556
+ .spftestimonial-field-typography .spftestimonial--title small {
1557
+ vertical-align: top;
1558
  }
1559
+ .spftestimonial-field-typography .spftestimonial--blocks {
1560
+ display: flex;
1561
+ flex-wrap: wrap;
 
 
 
 
1562
  }
1563
+ .spftestimonial-field-typography .spftestimonial--block {
1564
+ flex: 1;
1565
+ max-width: 100%;
1566
+ padding-right: 6px;
1567
+ padding-bottom: 6px;
1568
  }
1569
+ .spftestimonial-field-typography .spftestimonial--input {
1570
+ margin: 0;
1571
+ min-width: 100%;
 
 
1572
  }
1573
+ .spftestimonial-field-typography .spftestimonial--input-wrap {
1574
  position: relative;
 
1575
  }
1576
+ .spftestimonial-field-typography .spftestimonial--unit {
1577
+ position: absolute;
1578
  z-index: 1;
1579
+ right: 4px;
1580
+ top: 4px;
1581
+ bottom: 4px;
1582
+ padding: 2px 6px;
1583
+ color: #666;
1584
+ font-size: 11px;
1585
+ line-height: 1;
1586
+ border-radius: 2px;
1587
+ background: #eee;
1588
+ user-select: none;
1589
+ display: flex;
1590
+ justify-content: center;
1591
+ flex-direction: column;
1592
  }
1593
+ .spftestimonial-field-typography .spftestimonial--preview {
1594
+ font-size: 16px;
1595
+ line-height: 20px;
1596
+ padding: 20px;
1597
+ color: #222;
1598
+ border: 1px solid #eee;
1599
+ background-color: #fff;
1600
+ border-radius: 2.5px;
1601
+ user-select: none;
1602
+ -webkit-user-select: none;
1603
+ transition: background-color .2s, border-color .2s;
1604
  }
1605
+ .spftestimonial-field-typography .spftestimonial--block-preview {
1606
+ cursor: pointer;
1607
+ position: relative;
1608
+ overflow: hidden;
1609
+ margin-top: 10px;
1610
+ max-width: 100%;
1611
  }
1612
+ .spftestimonial-field-typography .spftestimonial--black-background {
1613
+ border-color: #000;
1614
+ background-color: #000;
1615
  }
1616
+ .spftestimonial-field-typography .spftestimonial--toggle {
1617
+ position: absolute;
1618
+ top: 5px;
1619
+ right: 10px;
1620
+ color: #999;
1621
  }
1622
+ .spftestimonial-field-typography .spftestimonial--block-extra-styles {
1623
+ margin-top: 5px;
1624
+ }
1625
+
1626
+
1627
+
1628
 
1629
  /**
1630
  * 03. 34. Field: heading
1701
  */
1702
  .spftestimonial-field-notice {
1703
  background-color: transparent;
 
1704
  }
1705
 
1706
+ /* .spftestimonial-notice {
1707
  padding: 12px;
1708
  background-color: #fff;
1709
  border-left-style: solid;
1710
+ border-left-width: 4px;
1711
+ box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);
1712
+ } */
1713
 
1714
  .spftestimonial-notice-success {
1715
  border-color: #46b450;
1717
 
1718
  .spftestimonial-notice-info {
1719
  border-color: #339fd4;
 
 
 
 
 
1720
  }
1721
 
1722
  .spftestimonial-notice-warning {
1727
  border-color: #dc3232;
1728
  }
1729
 
1730
+ .spftestimonial-notice-normal {
1731
+ border-color: #222;
1732
+ }
1733
  .spftestimonial-notice {
1734
  border-color: #222;
1735
  color: #999;
1737
  font-size: 13px;
1738
  padding: 12px 12px 12px 0;
1739
  }
 
1740
  /**
1741
  * 03. 38. Field: number
1742
  */
1768
  }
1769
 
1770
  /**
1771
+ * 03. 39. Field: link
1772
  */
1773
+ .spftestimonial-field-link .spftestimonial--result {
1774
+ display: inline-block;
1775
+ font-size: 12px;
1776
+ line-height: 16px;
1777
+ padding: 7px 10px;
1778
+ margin-bottom: 7px;
1779
+ color: #777;
1780
+ border: 1px solid #e5e5e5;
1781
+ background-color: #f5f5f5;
1782
+ border-radius: 2px;
1783
+ word-break: break-word;
1784
+ }
1785
+ .spftestimonial-field-link .spftestimonial--wrap {
1786
+ position: relative;
1787
+ float: left;
1788
+ width: 100px;
1789
+ }
1790
+ .spftestimonial-field-link .spftestimonial--unit {
1791
+ position: absolute;
1792
+ z-index: 1;
1793
+ right: 4px;
1794
+ top: 4px;
1795
+ bottom: 4px;
1796
+ padding: 2px 6px;
1797
+ color: #666;
1798
+ font-size: 11px;
1799
+ line-height: 1;
1800
+ border-radius: 2px;
1801
+ background: #eee;
1802
+ user-select: none;
1803
+ display: flex;
1804
+ justify-content: center;
1805
+ flex-direction: column;
1806
+ }
1807
+
1808
+ /**
1809
+ * 03. 40. others
1810
+ */
1811
+ .spftestimonial-help {
1812
+ cursor: help;
1813
+ position: absolute;
1814
+ top: 0;
1815
+ right: 0;
1816
+ padding: 5px;
1817
+ font-size: 13px;
1818
  color: #aaa;
1819
  }
1820
  .spftestimonial-help .spftestimonial-help-text {
1821
  display: none;
1822
  }
1823
 
1824
+ .spftestimonial--preview {
1825
+ max-width: 100%;
1826
+ }
1827
+ .spftestimonial-field.spftestimonial-field-checkbox .spftestimonial-help {
1828
+ bottom: 24px;
1829
+ right: auto;
1830
+ top: auto;
1831
+ margin-left: 18px;
1832
+ }
1833
  .spftestimonial-image-preview {
1834
+ display: inline-flex;
1835
+ align-items: center;
1836
+ justify-content: center;
1837
+ flex-direction: column;
1838
  position: relative;
1839
+ padding: 6px;
1840
+ max-width: 120px;
1841
+ max-height: 120px;
1842
+ min-width: 40px;
1843
+ min-height: 40px;
1844
  margin-bottom: 10px;
1845
+ text-align: center;
1846
+ border-radius: 2px;
1847
  border: 1px solid #ccc;
1848
  background-color: #f9f9f9;
 
 
1849
  box-shadow: 0 1px 0 rgba(0, 0, 0, 0.08);
1850
  }
1851
+ .spftestimonial-image-preview i {
1852
+ cursor: pointer;
1853
+ position: absolute;
1854
+ z-index: 1;
1855
+ right: 4px;
1856
+ top: 4px;
1857
+ font-size: 14px;
1858
+ width: 22px;
1859
+ height: 22px;
1860
+ line-height: 22px;
1861
+ text-align: center;
1862
+ text-decoration: none;
1863
+ color: #fff;
1864
+ background-color: #dd3333;
1865
+ opacity: 0.75;
1866
+ border-radius: 2px;
1867
+ transition: all .2s;
1868
+ }
1869
+ .spftestimonial-image-preview i:hover {
1870
+ opacity: 1;
1871
+ }
1872
+ .spftestimonial-image-preview i:focus {
1873
+ box-shadow: none;
1874
+ }
1875
+ .spftestimonial-image-preview span {
1876
+ position: relative;
1877
+ overflow: hidden;
1878
+ display: flex;
1879
+ height: 100%;
1880
+ width: 100%;
1881
+ }
1882
  .spftestimonial-image-preview img {
1883
+ max-width: 100%;
1884
+ height: auto;
1885
+ object-fit: contain;
1886
  }
1887
 
1888
  .spftestimonial-field-custom .spftestimonial-field {
1896
  .spftestimonial-field .chosen-container-single .chosen-single abbr {
1897
  top: 0;
1898
  right: 20px;
1899
+ font-family: "Font Awesome 5 Pro", "Font Awesome 5 Free", "FontAwesome";
1900
+ font-weight: 900;
1901
  font-size: 12px;
1902
  height: 100%;
1903
  width: 18px;
1904
  color: #aaa;
1905
  text-align: center;
1906
+ background: none !important;
1907
  }
1908
  .spftestimonial-field .chosen-container-single .chosen-single abbr:before {
1909
  content: "\f00d";
1912
  color: #555;
1913
  }
1914
  .spftestimonial-field .chosen-container-multi .chosen-choices li.search-choice .search-choice-close {
1915
+ font-family: "Font Awesome 5 Pro", "Font Awesome 5 Free", "FontAwesome";
1916
+ font-weight: 900;
1917
  font-size: 12px;
1918
  height: 100%;
1919
+ top: 0;
1920
  width: 18px;
1921
  color: #aaa;
1922
  text-align: center;
1923
+ background: none !important;
1924
  }
1925
  .spftestimonial-field .chosen-container-multi .chosen-choices li.search-choice .search-choice-close:before {
1926
  content: "\f00d";
1931
  color: #555;
1932
  }
1933
  .spftestimonial-field .chosen-container-single .chosen-single div b {
1934
+ font-family: "Font Awesome 5 Pro", "Font Awesome 5 Free", "FontAwesome";
1935
+ font-weight: 900;
1936
  font-size: 14px;
1937
  color: #aaa;
1938
+ background: none !important;
1939
  }
1940
  .spftestimonial-field .chosen-container-single .chosen-single div b:before {
1941
  content: "\f107";
1957
  margin-right: 40px;
1958
  }
1959
  .spftestimonial-field .chosen-container-single .chosen-search input[type="text"] {
1960
+ background: none !important;
1961
  }
1962
  .spftestimonial-field .chosen-container-single .chosen-search:before {
1963
+ font-family: "Font Awesome 5 Pro", "Font Awesome 5 Free", "FontAwesome";
1964
+ font-weight: 900;
 
1965
  font-size: 11px;
1966
+ content: "\f002";
1967
+ position: absolute;
1968
+ right: 12px;
1969
+ top: 10px;
1970
  color: #aaa;
1971
  }
1972
  .spftestimonial-field .wp-picker-container {
1973
  display: inline-block;
1974
  }
1975
+ .spftestimonial-field .wp-picker-container .wp-color-result.button {
1976
+ margin-bottom: 0;
1977
+ }
1978
  .spftestimonial-field .spftestimonial--transparent-wrap {
1979
  display: none;
1980
  position: relative;
2008
  background: none;
2009
  cursor: ew-resize;
2010
  opacity: 0.9;
 
 
2011
  border-radius: 4px;
 
 
2012
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
2013
  }
2014
  .spftestimonial-field .spftestimonial--transparent-slider .ui-slider-handle:before {
2019
  top: -3px;
2020
  bottom: -3px;
2021
  border: 2px solid #fff;
 
 
2022
  border-radius: 3px;
2023
  }
2024
  .spftestimonial-field .spftestimonial--transparent-offset {
2025
  height: 18px;
2026
  width: 200px;
2027
  background: url(../images/checkerboard.png) repeat-y center left scroll #fff;
 
 
 
 
 
2028
  border-radius: 2px;
2029
+ box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.4);
2030
  }
2031
  .spftestimonial-field .spftestimonial--transparent-text {
2032
  position: absolute;
2074
  .spftestimonial-widgets > .spftestimonial-field {
2075
  position: relative;
2076
  top: -1px;
 
2077
  margin-left: -15px;
2078
+ margin-right: -15px;
2079
  padding: 12px 15px;
2080
  }
 
 
 
 
2081
  .spftestimonial-widgets > .spftestimonial-field .spftestimonial-title {
2082
  float: none;
2083
  width: 100%;
2084
  margin-bottom: 5px;
2085
  }
2086
  .spftestimonial-widgets > .spftestimonial-field .spftestimonial-fieldset {
2087
+ float: none;
2088
+ width: 100%;
2089
  }
2090
  .spftestimonial-widgets .spftestimonial-field-text input {
2091
  width: 100%;
2095
  }
2096
 
2097
  .control-section .spftestimonial-widgets > .spftestimonial-field {
 
2098
  margin-left: -10px;
2099
+ margin-right: -10px;
2100
  padding: 10px 12px;
2101
  }
2102
 
2103
+ .wp-block .spftestimonial-widgets {
2104
+ font-size: 13px;
2105
+ }
2106
+ .wp-block .spftestimonial-widgets > .spftestimonial-field {
2107
+ margin-left: -10px;
2108
+ margin-right: -10px;
2109
+ }
2110
+ .wp-block .spftestimonial-widgets > .spftestimonial-field .button-primary {
2111
+ color: #fff;
2112
+ }
2113
+ .wp-block .spftestimonial-widgets > .spftestimonial-field > .spftestimonial-title > h4 {
2114
+ font-size: 13px;
2115
+ }
2116
+
2117
  /**
2118
  * 05. Widget
2119
  */
2133
  color: inherit;
2134
  }
2135
  .control-section .spftestimonial-field .spftestimonial-fieldset {
2136
+ float: none;
2137
+ width: 100%;
2138
  }
2139
  .control-section .spftestimonial-help {
2140
  top: -5px;
2158
  margin-left: -15px;
2159
  padding: 10px 15px;
2160
  }
2161
+ .control-section .spftestimonial-subtitle-text {
2162
  margin-top: 4px;
2163
  font-size: 12px;
2164
+ font-style: italic;
2165
  }
2166
  .control-section .spftestimonial-field-submessage .spftestimonial-submessage {
2167
  margin-right: -15px;
2213
  .control-section .spftestimonial-field-fieldset .spftestimonial-fieldset-content {
2214
  border-color: #e5e5e5;
2215
  }
2216
+ .control-section .spftestimonial-tabbed-content > .spftestimonial-field,
2217
+ .control-section .spftestimonial-sortable-content > .spftestimonial-field,
2218
+ .control-section .spftestimonial-repeater-content > .spftestimonial-field,
2219
+ .control-section .spftestimonial-fieldset-content > .spftestimonial-field,
2220
+ .control-section .spftestimonial-cloneable-content > .spftestimonial-field,
2221
+ .control-section .spftestimonial-accordion-content > .spftestimonial-field {
2222
  padding: 10px;
2223
  }
2224
+ .control-section .spftestimonial-tabbed-content > .spftestimonial-field .spftestimonial-title,
2225
+ .control-section .spftestimonial-sortable-content > .spftestimonial-field .spftestimonial-title,
2226
+ .control-section .spftestimonial-repeater-content > .spftestimonial-field .spftestimonial-title,
2227
+ .control-section .spftestimonial-fieldset-content > .spftestimonial-field .spftestimonial-title,
2228
+ .control-section .spftestimonial-cloneable-content > .spftestimonial-field .spftestimonial-title,
2229
+ .control-section .spftestimonial-accordion-content > .spftestimonial-field .spftestimonial-title {
2230
  margin-bottom: 5px;
2231
  }
2232
+ .control-section .spftestimonial-tabbed-content > .spftestimonial-field h4,
2233
+ .control-section .spftestimonial-sortable-content > .spftestimonial-field h4,
2234
+ .control-section .spftestimonial-repeater-content > .spftestimonial-field h4,
2235
+ .control-section .spftestimonial-fieldset-content > .spftestimonial-field h4,
2236
+ .control-section .spftestimonial-cloneable-content > .spftestimonial-field h4,
2237
+ .control-section .spftestimonial-accordion-content > .spftestimonial-field h4 {
2238
  font-size: 12px;
2239
  }
2240
+ .control-section .spftestimonial-depend-hidden.spftestimonial-depend-on {
2241
+ display: none !important;
2242
+ }
2243
+ .control-section .spftestimonial-depend-visible.spftestimonial-depend-on {
2244
+ border-top: 0 !important;
2245
+ }
2246
+
2247
+ /**
2248
+ * 06. Taxonomy
2249
+ */
2250
+ .spftestimonial-taxonomy {
2251
+ max-width: 95%;
2252
+ }
2253
+ .spftestimonial-taxonomy > .spftestimonial-field {
2254
+ border-top: none !important;
2255
  }
2256
+ .spftestimonial-taxonomy > .spftestimonial-field-heading {
2257
+ font-size: 1.1em;
2258
+ padding: 20px !important;
2259
+ border: 1px solid #ddd;
2260
+ }
2261
+ .spftestimonial-taxonomy > .spftestimonial-field-subheading {
2262
+ font-size: 12px;
2263
+ padding: 15px !important;
2264
+ border: 1px solid #ddd;
2265
+ }
2266
+ .spftestimonial-taxonomy > .spftestimonial-field-submessage .spftestimonial-submessage {
2267
+ padding: 15px;
2268
+ border-left-width: 1px;
2269
+ border-left-style: solid;
2270
+ border-right-width: 1px;
2271
+ border-right-style: solid;
2272
+ }
2273
+ .spftestimonial-taxonomy > .spftestimonial-field-notice {
2274
+ background-color: transparent;
2275
+ }
2276
+ .spftestimonial-taxonomy .spftestimonial-section-title {
2277
+ display: block;
2278
+ padding: 15px;
2279
+ background-color: #f9f9f9;
2280
+ border: 1px solid #e5e5e5;
2281
+ box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04);
2282
+ }
2283
+
2284
+ .spftestimonial-taxonomy-add-fields > .spftestimonial-field {
2285
+ padding: 8px 0;
2286
+ }
2287
+ .spftestimonial-taxonomy-add-fields > .spftestimonial-field > .spftestimonial-title {
2288
+ float: none;
2289
+ width: 100%;
2290
+ padding: 2px 2px 4px 0;
2291
+ }
2292
+ .spftestimonial-taxonomy-add-fields > .spftestimonial-field > .spftestimonial-title h4 {
2293
+ font-size: 12px;
2294
+ font-weight: normal;
2295
+ }
2296
+ .spftestimonial-taxonomy-add-fields > .spftestimonial-field > .spftestimonial-fieldset {
2297
+ float: none;
2298
+ width: 100%;
2299
+ }
2300
+ .spftestimonial-taxonomy-add-fields > .spftestimonial-field > .spftestimonial-fieldset > .spftestimonial-help {
2301
+ right: -5px;
2302
+ }
2303
+ .spftestimonial-taxonomy-add-fields + p.submit {
2304
+ margin-top: 0;
2305
+ }
2306
+
2307
+ .spftestimonial-taxonomy-edit-fields > .spftestimonial-field {
2308
+ padding: 20px 0;
2309
+ }
2310
+ .spftestimonial-taxonomy-edit-fields > .spftestimonial-field > .spftestimonial-title {
2311
+ width: 200px;
2312
+ }
2313
+ .spftestimonial-taxonomy-edit-fields > .spftestimonial-field > .spftestimonial-title h4 {
2314
+ font-size: 14px;
2315
+ font-weight: 600;
2316
+ line-height: 1.3;
2317
+ display: inline-block;
2318
+ vertical-align: middle;
2319
+ }
2320
+ .spftestimonial-taxonomy-edit-fields > .spftestimonial-field > .spftestimonial-fieldset {
2321
+ width: calc(100% - 220px);
2322
+ }
2323
+ .spftestimonial-taxonomy-edit-fields > .spftestimonial-field > .spftestimonial-fieldset > .spftestimonial-help {
2324
+ top: -5px;
2325
+ right: -5px;
2326
+ }
2327
+ .spftestimonial-taxonomy-edit-fields > .spftestimonial-field-submessage {
2328
+ margin: 20px 0;
2329
+ }
2330
+ .spftestimonial-taxonomy-edit-fields > .spftestimonial-field-subheading,
2331
+ .spftestimonial-taxonomy-edit-fields > .spftestimonial-field-heading {
2332
+ margin: 20px 0;
2333
+ border: 1px solid #ddd;
2334
+ }
2335
+
2336
+ /**
2337
+ * 08. Nav Menu
2338
+ */
2339
+ .spftestimonial-nav-menu-options {
2340
+ clear: both;
2341
+ float: left;
2342
+ width: 100%;
2343
+ }
2344
+ .spftestimonial-nav-menu-options > .spftestimonial-fields {
2345
+ margin-left: -10px;
2346
+ margin-top: 10px;
2347
+ margin-bottom: 10px;
2348
+ border-top: 1px solid #eee;
2349
+ border-bottom: 1px solid #eee;
2350
+ }
2351
+ .spftestimonial-nav-menu-options > .spftestimonial-fields > .spftestimonial-field {
2352
+ padding: 12px 14px 12px 12px;
2353
+ }
2354
+ .spftestimonial-nav-menu-options > .spftestimonial-fields > .spftestimonial-field .spftestimonial-title {
2355
+ float: none;
2356
+ width: 100%;
2357
  margin-bottom: 5px;
2358
  }
2359
+ .spftestimonial-nav-menu-options > .spftestimonial-fields > .spftestimonial-field .spftestimonial-fieldset {
2360
+ float: none;
2361
+ width: 100%;
2362
+ }
2363
+ .spftestimonial-nav-menu-options .spftestimonial-field-text input {
2364
+ width: 100%;
2365
+ }
2366
+ .spftestimonial-nav-menu-options .spftestimonial-field-notice .spftestimonial-notice {
2367
+ padding: 15px;
2368
+ }
2369
+
2370
+ .spftestimonial-nav-menu-title {
2371
+ padding: 12px 14px 12px 12px;
2372
+ background-color: #f5f5f5;
2373
+ border-top: 1px solid #eee;
2374
+ border-bottom: 1px solid #eee;
2375
+ }
2376
+ .spftestimonial-nav-menu-title:first-child {
2377
+ border-top: 0;
2378
+ }
2379
+ .spftestimonial-nav-menu-title h4 {
2380
+ margin: 0;
2381
+ padding: 0;
2382
+ color: #23282d;
2383
+ }
2384
+
2385
+ .spftestimonial-nav-menu-icon {
2386
+ margin-right: 5px;
2387
+ }
2388
+
2389
+ /**
2390
+ * 06. Profile
2391
+ */
2392
+ .spftestimonial-profile-options > h2 > .fa {
2393
+ padding-right: 7px;
2394
+ }
2395
+ .spftestimonial-profile-options > .spftestimonial-field {
2396
+ max-width: 750px;
2397
+ padding: 15px 0;
2398
+ border-top: none !important;
2399
+ }
2400
+ .spftestimonial-profile-options > .spftestimonial-field > .spftestimonial-title {
2401
+ width: 200px;
2402
+ }
2403
+ .spftestimonial-profile-options > .spftestimonial-field > .spftestimonial-title h4 {
2404
+ font-size: 14px;
2405
+ font-weight: 600;
2406
+ line-height: 1.3;
2407
+ display: inline-block;
2408
+ vertical-align: middle;
2409
+ }
2410
+ .spftestimonial-profile-options > .spftestimonial-field > .spftestimonial-fieldset {
2411
+ width: calc(100% - 220px);
2412
+ }
2413
+ .spftestimonial-profile-options > .spftestimonial-field > .spftestimonial-fieldset > .spftestimonial-help {
2414
+ top: -15px;
2415
+ right: -5px;
2416
+ }
2417
+ .spftestimonial-profile-options > .spftestimonial-field-heading {
2418
+ font-size: 1.1em;
2419
+ }
2420
+ .spftestimonial-profile-options > .spftestimonial-field-subheading {
2421
  font-size: 12px;
2422
  }
2423
+ .spftestimonial-profile-options > .spftestimonial-field-subheading,
2424
+ .spftestimonial-profile-options > .spftestimonial-field-heading {
2425
+ margin: 10px 0;
2426
+ padding: 15px !important;
2427
+ border: 1px solid #ddd;
2428
+ }
2429
+ .spftestimonial-profile-options > .spftestimonial-field-submessage {
2430
+ margin: 20px 0;
2431
+ }
2432
+ .spftestimonial-profile-options > .spftestimonial-field-submessage .spftestimonial-submessage {
2433
+ padding: 10px;
2434
+ border-left-width: 1px;
2435
+ border-left-style: solid;
2436
+ border-right-width: 1px;
2437
+ border-right-style: solid;
2438
+ }
2439
+ .spftestimonial-profile-options > .spftestimonial-field-notice {
2440
+ background-color: transparent;
2441
  }
2442
 
2443
  /**
2444
+ * 09. Modal
2445
  */
2446
  .spftestimonial-modal {
 
2447
  position: fixed;
2448
  z-index: 100101;
2449
  top: 0;
2451
  width: 100%;
2452
  height: 100%;
2453
  }
2454
+ .spftestimonial-modal.hidden {
2455
+ display: none;
2456
+ }
2457
 
2458
  .spftestimonial-modal-icon {
2459
  z-index: 100102;
2486
  overflow-y: auto;
2487
  height: 595px;
2488
  }
2489
+ .spftestimonial-modal-content .spftestimonial-shortcode-button {
2490
+ display: none;
 
 
 
2491
  }
2492
  .spftestimonial-modal-content .spftestimonial-field {
2493
  padding: 15px 30px 15px 15px;
2494
  }
2495
  .spftestimonial-modal-content a:active, .spftestimonial-modal-content a:focus {
2496
  outline: none;
 
 
2497
  box-shadow: none;
2498
  }
2499
  .spftestimonial-modal-content h4 {
2521
  width: 100%;
2522
  padding: 14px 0;
2523
  background-color: #f5f5f5;
2524
+ border-bottom: 1px solid #ddd;
2525
  }
2526
  .spftestimonial-modal-header select {
2527
  display: block;
2563
  width: 100%;
2564
  padding: 15px 0;
2565
  background-color: #f5f5f5;
2566
+ border-top: 1px solid #ddd;
2567
  }
2568
 
2569
  .spftestimonial-modal-overlay {
2577
  }
2578
 
2579
  /**
2580
+ * 09. 01. Shortcode Modal
2581
  */
2582
+ .spftestimonial--repeatable {
2583
+ padding: 15px 15px 0 15px;
 
 
 
2584
  }
2585
 
2586
+ .spftestimonial--repeat-button-block {
2587
+ text-align: center;
2588
+ padding-bottom: 15px;
2589
  }
2590
 
2591
+ .spftestimonial--repeat-shortcode {
2592
+ position: relative;
2593
+ margin-bottom: 15px;
2594
+ border: 1px dashed #ddd;
2595
  }
2596
+ .spftestimonial--repeat-shortcode:first-child .spftestimonial-repeat-remove {
2597
+ display: none;
 
2598
  }
2599
+ .spftestimonial--repeat-shortcode .spftestimonial-repeat-remove {
2600
+ position: absolute;
2601
+ right: 10px;
2602
+ top: 10px;
2603
+ z-index: 10;
2604
+ cursor: pointer;
2605
+ display: inline-block;
2606
+ font-size: 11px;
2607
+ width: 18px;
2608
+ height: 18px;
2609
+ line-height: 18px;
2610
+ text-align: center;
2611
+ border-radius: 2px;
2612
+ color: #fff;
2613
+ background-color: #e14d43;
2614
+ opacity: 0.5;
2615
  }
2616
+ .spftestimonial--repeat-shortcode .spftestimonial-repeat-remove:hover {
2617
+ opacity: 0.5;
 
2618
  }
2619
 
2620
+ .spftestimonial-shortcode-single .spftestimonial-modal-inner {
2621
+ height: 750px;
2622
  }
2623
+ .spftestimonial-shortcode-single .spftestimonial-modal-content {
2624
+ height: 652px;
 
2625
  }
2626
 
2627
+ .elementor-editor-active .spftestimonial-shortcode-button {
2628
+ margin-left: 5px;
2629
  }
2630
+ .elementor-editor-active .spftestimonial-modal .hidden {
2631
+ display: none !important;
 
2632
  }
2633
 
2634
+ /**
2635
+ * 09. 02. Gutenberg Modal
2636
+ */
2637
+ .spftestimonial-shortcode-block {
2638
+ text-align: center;
2639
+ padding: 14px;
2640
+ font-size: 13px;
2641
+ background-color: #f5f5f5;
2642
+ font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;
2643
  }
2644
 
2645
+ .spftestimonial-shortcode-block .components-button {
2646
+ margin-bottom: 10px;
2647
  }
2648
 
2649
+ /**
2650
+ * 09. 03. Icon Modal
2651
+ */
2652
+ .spftestimonial-modal-icon .spftestimonial-icon-title {
2653
+ padding: 15px 0;
2654
+ margin: 4px;
2655
+ font-size: 14px;
2656
+ font-weight: bold;
2657
+ text-align: center;
2658
+ border: 1px solid #eee;
2659
+ background-color: #f7f7f7;
2660
+ }
2661
+ .spftestimonial-modal-icon .spftestimonial-modal-header {
2662
+ text-align: center;
2663
+ }
2664
+ .spftestimonial-modal-icon .spftestimonial-icon-search {
2665
  width: 50%;
2666
+ height: 40px;
2667
+ line-height: 40px;
2668
+ }
2669
+ .spftestimonial-modal-icon i {
2670
+ cursor: pointer;
2671
+ display: inline-block;
2672
+ margin: 4px;
2673
+ width: 35px;
2674
+ height: 35px;
2675
+ line-height: 35px;
2676
+ font-size: 16px;
2677
+ color: #555;
2678
+ text-align: center;
2679
+ border: 1px solid #ccc;
2680
+ background-color: #f7f7f7;
2681
+ border-radius: 2px;
2682
+ box-shadow: 1px 1px 0 rgba(0, 0, 0, 0.05);
2683
+ }
2684
+ .spftestimonial-modal-icon i:hover {
2685
+ color: #fff;
2686
+ border-color: #222;
2687
+ background-color: #222;
2688
+ }
2689
+ .spftestimonial-modal-icon .spftestimonial-modal-content {
2690
+ padding: 10px;
2691
+ height: 618px;
2692
+ }
2693
+ .spftestimonial-modal-icon .spftestimonial-error-text {
2694
+ padding: 10px;
2695
  }
2696
 
2697
+ .spftestimonial-modal-loading {
2698
+ display: none;
2699
+ position: absolute;
2700
+ left: 15px;
2701
+ top: 15px;
2702
  }
2703
 
2704
+ .spftestimonial-loading {
2705
+ position: relative;
2706
+ width: 20px;
2707
+ height: 20px;
2708
+ background: #ccc;
2709
+ border-radius: 20px;
2710
+ box-shadow: 0 2px 5px rgba(0, 0, 0, 0.07);
2711
+ }
2712
+ .spftestimonial-loading:after {
2713
+ position: absolute;
2714
+ top: 50%;
2715
+ left: 50%;
2716
+ width: 4px;
2717
+ height: 4px;
2718
+ content: "";
2719
+ margin-top: -2px;
2720
+ margin-left: -2px;
2721
+ background-color: white;
2722
+ animation-duration: 0.5s;
2723
+ animation-iteration-count: infinite;
2724
+ animation-timing-function: linear;
2725
+ animation-name: spftestimonialLoader;
2726
+ border-radius: 4px;
2727
  }
2728
 
2729
+ @keyframes spftestimonialLoader {
2730
+ 0% {
2731
+ transform: rotate(0deg) translateX(-6px) rotate(0deg);
2732
+ }
2733
+ 100% {
2734
+ transform: rotate(360deg) translateX(-6px) rotate(-360deg);
2735
+ }
2736
+ }
2737
+ /**
2738
+ * 10. Helper
2739
+ */
2740
+ .spftestimonial-subtitle-text {
2741
+ margin-top: 6px;
2742
+ font-weight: 400;
2743
+ color: #999;
2744
+ font-style: italic;
2745
  }
2746
 
2747
+ .spftestimonial-desc-text {
2748
+ clear: both;
2749
+ float: left;
2750
+ width: 100%;
2751
+ margin-top: 6px;
2752
+ font-weight: 400;
2753
+ color: #999;
2754
  }
2755
 
2756
+ .spftestimonial-error-text {
2757
+ margin-top: 6px;
2758
+ color: #d02c21;
 
 
 
 
 
2759
  }
2760
 
2761
+ .spftestimonial-before-text {
2762
+ margin-bottom: 6px;
 
 
 
 
 
2763
  }
2764
 
2765
+ .spftestimonial-after-text {
2766
+ margin-top: 6px;
2767
  }
2768
 
2769
+ .spftestimonial-metabox-hide {
2770
  display: none !important;
2771
  }
2772
 
2773
+ .spftestimonial-metabox-show {
2774
  display: block !important;
2775
  }
2776
 
2777
+ .spftestimonial-depend-hidden.spftestimonial-depend-on {
2778
+ display: none;
2779
+ }
2780
+
2781
+ .spftestimonial-depend-visible.spftestimonial-depend-on {
2782
+ display: block;
2783
+ opacity: 0.75;
2784
+ filter: grayscale(1);
2785
+ user-select: none;
2786
+ border-top: 1px solid #eee;
2787
+ }
2788
+ .spftestimonial-depend-visible.spftestimonial-depend-on .clear:before {
2789
+ content: "";
2790
+ left: 0;
2791
+ top: 0;
2792
+ right: 0;
2793
+ bottom: 0;
2794
+ position: absolute;
2795
+ background-color: #eee;
2796
+ opacity: 0.25;
2797
+ z-index: 10;
2798
  }
2799
 
2800
  .spftestimonial-warning-primary {
2816
 
2817
  .spftestimonial-form-result {
2818
  display: none;
2819
+ user-select: none;
2820
+ border-radius: 2px;
2821
  padding: 12px;
2822
+ margin: 0 0 15px 0;
2823
  background-color: #fff;
2824
  border-left: 4px solid #555;
2825
+ -moz-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);
2826
+ -webkit-box-shadow: 0 1px 1px rgb(0 0 0 / 10%);
2827
  box-shadow: 0 1px 1px rgb(0 0 0 / 10%);
2828
+ }
2829
+ .spftestimonial-form-success {
2830
  border-left-color: #46b450;
2831
  }
2832
 
2834
  display: block;
2835
  }
2836
 
2837
+ /* .spftestimonial-form-success {
2838
+ color: #fff;
2839
+ background-color: #46b450;
2840
+ } */
2841
+
2842
  .spftestimonial-form-warning {
2843
  color: #8a6d3b;
2844
  background-color: #faebcc;
2845
+ display: none !important;
2846
  }
2847
 
2848
  .spftestimonial-label-error {
2859
  color: #fff;
2860
  vertical-align: middle;
2861
  background-color: #e10000;
 
 
2862
  border-radius: 2px;
2863
  }
2864
 
2875
  -webkit-appearance: none;
2876
  margin: 0;
2877
  }
2878
+ .spftestimonial--input input.spftestimonial-number {
2879
+ padding: 0;
2880
+ border-radius: 0 4px 4px 0;
 
 
 
 
 
 
 
 
2881
  }
2882
+ .spftestimonial-fa5-shims .spftestimonial .fas,
2883
+ .spftestimonial-fa5-shims .spftestimonial .far,
2884
+ .spftestimonial-fa5-shims .spftestimonial .fab {
2885
+ font-family: "FontAwesome";
2886
+ font-style: normal;
2887
+ }
2888
+
2889
+ /**
2890
+ * 11. Welcome Page
2891
+ */
2892
+ .spftestimonial-welcome-wrap {
2893
  position: relative;
2894
+ margin: 25px 40px 0 20px;
2895
+ font-size: 15px;
2896
+ max-width: 1200px;
2897
  }
2898
+ .spftestimonial-welcome-wrap p {
2899
+ font-size: 14px;
2900
+ line-height: 1.5;
2901
+ }
2902
+ .spftestimonial-welcome-wrap h1 {
2903
+ margin: 0.2em 200px 0 0;
2904
+ padding: 0;
2905
+ color: #32373c;
2906
+ line-height: 1.2em;
2907
+ font-size: 2.8em;
2908
+ font-weight: 400;
2909
+ }
2910
+ .spftestimonial-welcome-wrap .spftestimonial-logo {
2911
  position: absolute;
2912
+ overflow: hidden;
2913
+ top: 0;
2914
+ right: 0;
2915
+ height: 160px;
2916
+ width: 140px;
2917
+ background-image: linear-gradient(45deg, #2d67cb, #ad19f3);
2918
+ box-shadow: 0 1px 4px rgba(0, 0, 0, 0.25), inset 0 0 0 4px rgba(0, 0, 0, 0.25);
2919
  }
2920
+ .spftestimonial-welcome-wrap .spftestimonial-logo .spftestimonial--effects i {
2921
+ position: absolute;
2922
+ width: 200px;
2923
+ height: 100px;
2924
+ background-color: rgba(0, 0, 0, 0.15);
2925
+ transform: rotate(-45deg);
2926
  }
2927
+ .spftestimonial-welcome-wrap .spftestimonial-logo .spftestimonial--effects i:nth-child(1) {
2928
+ bottom: -20px;
2929
+ right: -70px;
 
 
2930
  }
2931
+ .spftestimonial-welcome-wrap .spftestimonial-logo .spftestimonial--effects i:nth-child(2) {
2932
+ bottom: -35px;
2933
+ right: -80px;
 
 
 
 
 
 
 
 
2934
  }
2935
+ .spftestimonial-welcome-wrap .spftestimonial-logo .spftestimonial--effects i:nth-child(3) {
2936
+ bottom: -50px;
2937
+ right: -90px;
2938
  }
2939
+ .spftestimonial-welcome-wrap .spftestimonial-logo .spftestimonial--effects i:nth-child(4) {
2940
+ bottom: -65px;
2941
+ right: -100px;
 
2942
  }
2943
+ .spftestimonial-welcome-wrap .spftestimonial-logo .spftestimonial--wp-logos {
2944
+ position: relative;
2945
+ padding-top: 25px;
2946
+ text-align: center;
2947
  }
2948
+ .spftestimonial-welcome-wrap .spftestimonial-logo .spftestimonial--wp-logo {
 
 
2949
  position: absolute;
2950
+ left: 20px;
2951
+ width: 20px;
2952
+ height: 20px;
2953
+ background-repeat: no-repeat;
2954
+ background-position: center center;
2955
+ background-image: url(../images/wp-logo.svg);
2956
+ }
2957
+ .spftestimonial-welcome-wrap .spftestimonial-logo .spftestimonial--wp-plugin-logo {
2958
+ display: inline-block;
2959
+ width: 50px;
2960
+ height: 50px;
2961
+ border: 3px solid #fff;
2962
+ background-size: 40px;
2963
+ background-repeat: no-repeat;
2964
+ background-position: center center;
2965
+ background-image: url(../images/wp-plugin-logo.svg);
2966
+ border-radius: 100%;
2967
+ vertical-align: middle;
2968
+ }
2969
+ .spftestimonial-welcome-wrap .spftestimonial-logo .spftestimonial--text {
2970
+ position: absolute;
2971
+ left: 0;
2972
+ right: 0;
2973
+ top: 90px;
2974
  color: #fff;
2975
+ font-size: 13px;
2976
+ line-height: 1.2em;
2977
+ font-weight: 600;
2978
  text-align: center;
2979
+ text-transform: uppercase;
2980
+ text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.25);
2981
  }
2982
+ .spftestimonial-welcome-wrap .spftestimonial-logo .spftestimonial--version {
2983
+ top: auto;
2984
+ left: auto;
2985
+ right: 8px;
2986
+ bottom: 4px;
2987
+ font-size: 11px;
2988
+ text-transform: lowercase;
 
 
 
2989
  }
2990
+ .spftestimonial-welcome-wrap .spftestimonial-about-text {
2991
+ font-weight: 400;
2992
+ line-height: 1.6em;
2993
+ font-size: 19px;
2994
+ margin: 1em 200px 1em 0;
2995
+ color: #555d66;
2996
  }
2997
+ .spftestimonial-welcome-wrap .spftestimonial-demo-button {
2998
+ margin: 1em 200px 2em 0;
2999
  }
3000
+ .spftestimonial-welcome-wrap .nav-tab-wrapper {
3001
+ margin-bottom: 20px;
 
 
3002
  }
3003
+ .spftestimonial-welcome-wrap ul {
3004
+ list-style-type: disc;
3005
+ padding-left: 15px;
 
 
 
 
 
 
 
 
 
 
3006
  }
3007
+ .spftestimonial-welcome-wrap .spftestimonial--col {
3008
+ float: left;
3009
+ padding-right: 20px;
3010
+ box-sizing: border-box;
3011
+ }
3012
+ .spftestimonial-welcome-wrap .spftestimonial--col-2 {
3013
+ width: 50%;
3014
+ }
3015
+ .spftestimonial-welcome-wrap .spftestimonial--col-3 {
3016
+ width: 33.333%;
3017
+ }
3018
+ .spftestimonial-welcome-wrap .spftestimonial--col-4 {
3019
+ width: 25%;
3020
+ }
3021
+ .spftestimonial-welcome-wrap .spftestimonial--col-5 {
3022
+ width: 20%;
3023
+ }
3024
+ .spftestimonial-welcome-wrap .spftestimonial--col-last {
3025
+ padding-right: 0;
3026
+ }
3027
+ .spftestimonial-welcome-wrap .spftestimonial--col-upgrade {
3028
+ padding: 10px 0;
3029
+ text-align: center;
3030
+ border-top: 1px solid #e5e5e5;
3031
+ }
3032
+
3033
+ .spftestimonial--table-compare thead td,
3034
+ .spftestimonial--table-compare tfoot td {
3035
+ text-align: center;
3036
+ }
3037
+ .spftestimonial--table-compare td {
3038
+ font-size: 14px;
3039
+ text-align: center;
3040
+ vertical-align: middle;
3041
+ padding: 10px;
3042
+ }
3043
+ .spftestimonial--table-compare td:first-child {
3044
+ text-align: left;
3045
+ }
3046
+ .spftestimonial--table-compare tfoot td {
3047
+ padding: 15px 0;
3048
+ }
3049
+ .spftestimonial--table-compare .fa {
3050
+ font-size: 18px;
3051
+ }
3052
+ .spftestimonial--table-compare .fa-check-circle {
3053
+ color: #46b450;
3054
+ }
3055
+ .spftestimonial--table-compare .fa-times-circle {
3056
+ color: #dc3232;
3057
+ }
3058
+
3059
+ .spftestimonial-welcome-cols {
3060
+ clear: both;
3061
+ margin: 20px 0;
3062
+ background-color: #fff;
3063
+ padding: 0 0;
3064
+ border-radius: 2px;
3065
+ border: 1px solid #e5e5e5;
3066
+ }
3067
+ .spftestimonial-welcome-cols .spftestimonial--col {
3068
+ width: 33.333%;
3069
+ float: left;
3070
+ padding: 20px;
3071
+ text-align: center;
3072
+ box-sizing: border-box;
3073
+ min-height: 200px;
3074
+ border-right: 1px solid #e5e5e5;
3075
+ }
3076
+ .spftestimonial-welcome-cols .spftestimonial--left,
3077
+ .spftestimonial-welcome-cols .spftestimonial--block {
3078
+ float: left;
3079
+ width: 20%;
3080
+ padding: 0 30px;
3081
+ text-align: center;
3082
+ box-sizing: border-box;
3083
+ }
3084
+ .spftestimonial-welcome-cols .spftestimonial--block {
3085
+ width: 80%;
3086
+ }
3087
+ .spftestimonial-welcome-cols .spftestimonial--col-first {
3088
+ border-bottom: 1px solid #e5e5e5;
3089
+ }
3090
+ .spftestimonial-welcome-cols .spftestimonial--last {
3091
+ border-right: none;
3092
+ }
3093
+ .spftestimonial-welcome-cols .spftestimonial--space {
3094
+ height: 20px;
3095
+ }
3096
+ .spftestimonial-welcome-cols .spftestimonial--icon {
3097
+ display: inline-block;
3098
+ font-size: 20px;
3099
+ width: 30px;
3100
+ height: 30px;
3101
+ line-height: 30px;
3102
+ text-align: center;
3103
+ margin-bottom: 10px;
3104
+ color: #fff;
3105
+ background-color: #555;
3106
+ border-radius: 30px;
3107
+ }
3108
+ .spftestimonial-welcome-cols .spftestimonial--active {
3109
+ background-color: #5cb85c;
3110
+ }
3111
+ .spftestimonial-welcome-cols .spftestimonial--deactive {
3112
+ background-color: #e14d43;
3113
+ }
3114
+ .spftestimonial-welcome-cols .spftestimonial--title {
3115
+ font-weight: bold;
3116
+ display: block;
3117
+ }
3118
+ .spftestimonial-welcome-cols p:last-child {
3119
+ margin-bottom: 0;
3120
+ }
3121
+
3122
+ .spftestimonial-features-cols .spftestimonial--key-features {
3123
+ width: 30%;
3124
+ }
3125
+ .spftestimonial-features-cols .spftestimonial--available-fields {
3126
+ width: 70%;
3127
+ }
3128
+
3129
+ .spftestimonial-code-block {
3130
+ margin: 20px 0;
3131
+ padding: 5px 20px;
3132
+ background-color: #fff;
3133
+ border-radius: 2px;
3134
+ box-shadow: 0 1px 1px rgba(0, 0, 0, 0.15);
3135
+ }
3136
+ .spftestimonial-code-block pre {
3137
+ font-size: 13px;
3138
+ color: #0073aa;
3139
+ }
3140
+ .spftestimonial-code-block pre span {
3141
+ color: #999;
3142
+ }
3143
+
3144
+ .spftestimonial--table-fields td {
3145
+ font-size: 14px;
3146
+ }
3147
+
3148
+ .spftestimonial--upgrade a {
3149
+ color: #5cb85c;
3150
+ font-weight: bold;
3151
+ }
3152
+ .spftestimonial--upgrade a:focus, .spftestimonial--upgrade a:hover {
3153
+ color: #4aa14a;
3154
+ outline: none;
3155
+ box-shadow: none;
3156
+ }
3157
+
3158
+ @media only screen and (max-width: 782px) {
3159
+ .spftestimonial-welcome-cols .spftestimonial--col {
3160
+ width: 100%;
3161
+ min-height: auto;
3162
+ border-right: none;
3163
+ border-bottom: 1px solid #e5e5e5;
3164
+ }
3165
+
3166
+ .spftestimonial-features-cols .spftestimonial--key-features {
3167
+ width: 100%;
3168
+ }
3169
+ .spftestimonial-features-cols .spftestimonial--available-fields {
3170
+ width: 100%;
3171
+ }
3172
+ }
3173
+ /**
3174
+ * 12. Responsive
3175
+ */
3176
+ @media only screen and (max-width: 1200px) {
3177
+ .spftestimonial-metabox .spftestimonial-field .spftestimonial-title {
3178
+ float: none;
3179
+ width: 100%;
3180
+ margin-bottom: 10px;
3181
+ }
3182
+ .spftestimonial-metabox .spftestimonial-field .spftestimonial-fieldset {
3183
+ float: none;
3184
+ width: 100%;
3185
+ }
3186
+ }
3187
+ @media only screen and (max-width: 782px) {
3188
+ .spftestimonial-header-inner {
3189
+ text-align: center;
3190
+ }
3191
+ .spftestimonial-header-inner h1 {
3192
+ width: 100%;
3193
+ margin-bottom: 10px;
3194
+ }
3195
+
3196
+ .spftestimonial-form-result {
3197
+ float: none;
3198
+ margin-right: 0;
3199
+ margin-bottom: 10px;
3200
+ }
3201
+
3202
+ .spftestimonial-search,
3203
+ .spftestimonial-header-right,
3204
  .spftestimonial-header-left {
3205
  width: 100%;
3206
  }
3230
  display: none !important;
3231
  }
3232
 
3233
+ .spftestimonial-nav-normal + .spftestimonial-content {
3234
  margin-left: 0;
3235
  }
3236
 
3245
  margin-bottom: 10px;
3246
  }
3247
  .spftestimonial-field .spftestimonial-fieldset {
3248
+ float: none;
3249
+ width: 100%;
3250
+ }
3251
+
3252
+ .spftestimonial-field-color .button.wp-picker-clear {
3253
+ padding: 0 8px;
3254
+ line-height: 2.14285714;
3255
+ min-height: 32px;
3256
  }
3257
 
3258
  .spftestimonial-modal-inner {
3280
  height: 252px;
3281
  }
3282
 
3283
+ .spftestimonial-profile-options > .spftestimonial-field > .spftestimonial-title,
3284
+ .spftestimonial-taxonomy-edit-fields > .spftestimonial-field > .spftestimonial-title {
3285
+ float: none;
3286
+ width: 100%;
3287
+ margin-bottom: 10px;
3288
+ }
3289
+ .spftestimonial-profile-options > .spftestimonial-field > .spftestimonial-fieldset,
3290
+ .spftestimonial-taxonomy-edit-fields > .spftestimonial-field > .spftestimonial-fieldset {
3291
+ float: none;
3292
+ width: 100%;
3293
+ }
3294
+
3295
+ .spftestimonial-nav-menu-options > .spftestimonial-fields {
3296
+ margin-left: -10px;
3297
+ margin-right: -10px;
3298
+ }
3299
+ .spftestimonial-nav-menu-options > .spftestimonial-fields > .spftestimonial-field {
3300
+ padding: 10px;
3301
+ }
3302
  }
3303
  /**
3304
  * Chosen JS Styles
3361
  border: 1px solid #aaa;
3362
  border-radius: 5px;
3363
  background-color: #fff;
3364
+ background: linear-gradient(#fff 20%, #f6f6f6 50%, #eee 52%, #f4f4f4 100%);
3365
  background-clip: padding-box;
3366
  box-shadow: 0 0 3px #fff inset, 0 1px 1px rgba(0, 0, 0, 0.1);
3367
  color: #444;
3512
  height: auto;
3513
  border: 1px solid #aaa;
3514
  background-color: #fff;
3515
+ background-image: linear-gradient(#eee 1%, #fff 15%);
3516
  cursor: text;
3517
  }
3518
 
3552
  max-width: 100%;
3553
  border-radius: 3px;
3554
  background-color: #eeeeee;
3555
+ background-image: linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eee 100%);
3556
  background-size: 100% 19px;
3557
  background-repeat: repeat-x;
3558
  background-clip: padding-box;
3581
  padding-right: 5px;
3582
  border: 1px solid #ccc;
3583
  background-color: #e4e4e4;
3584
+ background-image: linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eee 100%);
3585
  color: #666;
3586
  }
3587
 
3594
  padding: 0;
3595
  }
3596
 
3597
+ .chosen-container-multi .chosen-drop .result-selected {
3598
  display: list-item;
3599
  color: #ccc;
3600
  cursor: default;
3601
+ }
3602
 
3603
  .chosen-container-active .chosen-single {
3604
  border: 1px solid #5897fb;
3609
  border: 1px solid #aaa;
3610
  border-bottom-right-radius: 0;
3611
  border-bottom-left-radius: 0;
3612
+ background-image: linear-gradient(#eee 20%, #fff 80%);
3613
  box-shadow: 0 1px 0 #fff inset;
3614
  }
3615
+
3616
+ .chosen-container-active.chosen-with-drop .chosen-single div {
3617
+ border-left: none;
3618
+ background: transparent;
3619
+ }
3620
+
3621
+ .chosen-container-active .chosen-choices {
3622
+ border: 1px solid #5897fb;
3623
+ box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
3624
+ }
3625
+
3626
+ .chosen-container-active .chosen-choices li.search-field input[type="text"] {
3627
+ color: #222 !important;
3628
+ }
3629
+
3630
+ .chosen-disabled {
3631
+ opacity: 0.5 !important;
3632
+ cursor: default;
3633
+ }
3634
+
3635
+ .chosen-disabled .chosen-single {
3636
+ cursor: default;
3637
+ }
3638
+
3639
+ .chosen-disabled .chosen-choices .search-choice .search-choice-close {
3640
+ cursor: default;
3641
+ }
3642
+ .spftestimonial-buttons .button.spftestimonial-save-ajax[disabled] {
3643
+ background-color: #c5c5c6 !important;
3644
+ border: none;
3645
+ }
3646
+ .chosen-rtl {
3647
+ text-align: right;
3648
+ }
3649
+
3650
+ .chosen-rtl .chosen-single {
3651
+ overflow: visible;
3652
+ padding: 0 8px 0 0;
3653
+ }
3654
+
3655
+ .chosen-rtl .chosen-single span {
3656
+ margin-right: 0;
3657
+ margin-left: 26px;
3658
+ direction: rtl;
3659
+ }
3660
+
3661
+ .chosen-rtl .chosen-single-with-deselect span {
3662
+ margin-left: 38px;
3663
+ }
3664
+
3665
+ .chosen-rtl .chosen-single div {
3666
+ right: auto;
3667
+ left: 3px;
3668
+ }
3669
+
3670
+ .chosen-rtl .chosen-single abbr {
3671
+ right: auto;
3672
+ left: 26px;
3673
+ }
3674
+
3675
+ .chosen-rtl .chosen-choices li {
3676
+ float: right;
3677
+ }
3678
+
3679
+ .chosen-rtl .chosen-choices li.search-field input[type="text"] {
3680
+ direction: rtl;
3681
+ }
3682
+
3683
+ .chosen-rtl .chosen-choices li.search-choice {
3684
+ margin: 3px 5px 3px 0;
3685
+ padding: 3px 5px 3px 19px;
3686
+ }
3687
+
3688
+ .chosen-rtl .chosen-choices li.search-choice .search-choice-close {
3689
+ right: auto;
3690
+ left: 4px;
3691
+ }
3692
+
3693
+ .chosen-rtl.chosen-container-single .chosen-results {
3694
+ margin: 0 0 4px 4px;
3695
+ padding: 0 4px 0 0;
3696
+ }
3697
+
3698
+ .chosen-rtl .chosen-results li.group-option {
3699
+ padding-right: 15px;
3700
+ padding-left: 0;
3701
+ }
3702
+
3703
+ .chosen-rtl.chosen-container-active.chosen-with-drop .chosen-single div {
3704
+ border-right: none;
3705
+ }
3706
+
3707
+ .chosen-rtl .chosen-search input[type="text"] {
3708
+ padding: 4px 5px 4px 20px;
3709
+ direction: rtl;
3710
+ }
3711
+
3712
+ /* Theme select */
3713
+ .spftestimonial-field.spftestimonial-field-image_select.theme_style img {
3714
+ width: 400px;
3715
+ }
3716
+ .spftestimonial-field.spftestimonial-field-image_select.theme_style
3717
+ .spftestimonial-fieldset {
3718
+ margin-left: 0;
3719
+ width: 100%;
3720
+ float: none;
3721
+ }
3722
+ .spftestimonial-field.spftestimonial-field-image_select.theme_style
3723
+ .spftestimonial-title {
3724
+ width: 100%;
3725
+ margin-bottom: 30px;
3726
+ float: none;
3727
+ }
3728
+ .spftestimonial-field.spftestimonial-field-image_select.theme_style
3729
+ .spftestimonial--image {
3730
+ margin: 0 24px 24px 0;
3731
+ }
3732
+ .filter_style.spftestimonial-field-image_select img {
3733
+ width: 80px;
3734
+ }
3735
+ /* Form style */
3736
+ #sp_tpro_form_options .spftestimonial-metabox .spftestimonial-nav ul li a {
3737
+ color: #464646;
3738
+ background-color: #f5f5f5;
3739
+ border-top: 0;
3740
+ border-right: 0;
3741
+ border-bottom: 1px solid #ccd0d4;
3742
+ margin-bottom: 0;
3743
+ padding: 15px 15px;
3744
+ font-size: 14px;
3745
+ border-right: 1px solid #e2e2e1;
3746
+ font-weight: 600;
3747
+ text-transform: uppercase;
3748
+ }
3749
+ #sp_tpro_form_options .spftestimonial-metabox .spftestimonial-nav ul li .spftestimonial-active {
3750
+ box-shadow: 3px 0 0 0 #1595ce inset;
3751
+ background-color: #fff;
3752
+ color: #1595CE;
3753
+ }
3754
+ #sp_tpro_form_options .spftestimonial-metabox .spftestimonial-nav-background {
3755
+ background-color: #f5f5f5;
3756
+ border-right: 1px solid #ccd0d4;
3757
+ display: block;
3758
+ }
3759
+ .spftestimonial-field-sortable.form_fields .spftestimonial-sortable .spftestimonial-sortable-item{
3760
+ margin: 0;
3761
+ border: 0;
3762
+ }
3763
+
3764
+ .spftestimonial-field-sortable.form_fields .spftestimonial-sortable-helper {
3765
+ display: none;
3766
+ }
3767
+ .form_fields .spftestimonial-accordion-item::after {
3768
+ position: absolute;
3769
+ top: 18px;
3770
+ right: 16px;
3771
+ content: "\f0b2";
3772
+ display: inline-block;
3773
+ font: normal normal normal 14px/1 FontAwesome;
3774
+ font-size: inherit;
3775
+ text-rendering: auto;
3776
+ -webkit-font-smoothing: antialiased;
3777
+ -moz-osx-font-smoothing: grayscale;
3778
+ }
3779
+ .spftestimonial-field-sortable.form_fields .spftestimonial-sortable-content > .spftestimonial-field {
3780
+ padding: 0px;
3781
+ margin-bottom: 5px;
3782
+ }
3783
+
3784
+ /* .spftestimonial-metabox .spftestimonial-nav ul li a {
3785
+ background-color: #1595ce;
3786
+ font-size: 14px;
3787
+ padding: 15px 15px;
3788
+ line-height: 1.4;
3789
+ color: #ffffff;
3790
+ border-right: 1px solid #e2e2e1;
3791
+ font-weight: 600;
3792
+ } */
3793
+
3794
+ /* Rating */
3795
+ .sp-tpro-client-rating {
3796
+ float: left;
3797
+ }
3798
+ .sp-tpro-client-rating:not(:checked) > input {
3799
+ visibility: hidden;
3800
+ display: none;
3801
+ width: 0;
3802
+ height: 0;
3803
+ float: right;
3804
+ top: 100%;
3805
+ clip: rect(0, 0, 0, 0);
3806
+ margin: 0;
3807
+ padding: 0;
3808
+ border: 10px #fff solid;
3809
+ }
3810
+
3811
+ .sp-tpro-client-rating:not(:checked) > label {
3812
+ float: right;
3813
+ display: block;
3814
+ padding: 0;
3815
+ margin: 0;
3816
+ cursor: pointer;
3817
+ font-size: 150%;
3818
+ line-height: 1.2;
3819
+ color: #d4d4d4;
3820
+ width: 1em;
3821
+ }
3822
+
3823
+ .sp-tpro-client-rating > input:checked ~ label {
3824
+ color: #f3bb00;
3825
+ }
3826
+
3827
+ .sp-tpro-client-rating:not(:checked) > label:hover,
3828
+ .sp-tpro-client-rating:not(:checked) > label:hover ~ label {
3829
+ color: #de7202;
3830
+ }
3831
+
3832
+ .sp-tpro-client-rating > input:checked + label:hover,
3833
+ .sp-tpro-client-rating > input:checked + label:hover ~ label,
3834
+ .sp-tpro-client-rating > input:checked ~ label:hover,
3835
+ .sp-tpro-client-rating > input:checked ~ label:hover ~ label,
3836
+ .sp-tpro-client-rating > label:hover ~ input:checked ~ label {
3837
+ color: #de7202;
3838
+ }
3839
+
3840
+
3841
+ /**
3842
+ * Single testimonial metabox.
3843
+ */
3844
+ .spftestimonial-field-repeater.social-profile-repeater
3845
+ .spftestimonial-repeater-wrapper
3846
+ .spftestimonial-repeater-item {
3847
+ display: grid;
3848
+ grid-template-columns: 9fr 1fr;
3849
+ }
3850
+ .spftestimonial-field-repeater.social-profile-repeater
3851
+ .spftestimonial-repeater-content {
3852
+ display: grid;
3853
+ grid-template-columns: 1fr 5fr;
3854
+ }
3855
+ .spftestimonial-field-repeater.social-profile-repeater
3856
+ .spftestimonial-repeater-item {
3857
+ max-width: 600px;
3858
+ }
3859
+ .spftestimonial-field-repeater.social-profile-repeater
3860
+ .spftestimonial-repeater-helper {
3861
+ border-left: 0;
3862
+ background-color: transparent;
3863
+ }
3864
+ .spftestimonial-field-repeater.social-profile-repeater
3865
+ .spftestimonial-repeater-helper-inner {
3866
+ width: 60px;
3867
+ line-height: 4em;
3868
+ }
3869
+ .spftestimonial-field-repeater .spftestimonial-repeater-helper i.spftestimonial-repeater-clone.far.fa-clone{
3870
+ display: none;
3871
+ }
3872
+ .spftestimonial-field-select.tpro-group-list .chosen-container, .spftestimonial-field-select.tpro-exclude-testimonial .chosen-container, .spftestimonial-field-select.tpro-specific-testimonial .chosen-container {
3873
+ max-width: 500px;
3874
+ }
3875
+ .spftestimonial-field-select.tpro-group-operator .spftestimonial-fieldset, .spftestimonial-field-text.tpro-item-global-name .spftestimonial-fieldset {
3876
+ position: relative;
3877
+ }
3878
+ .spftestimonial-field-select.tpro-group-operator .spftestimonial-help, .spftestimonial-field-text.tpro-item-global-name .spftestimonial-help {
3879
+ right: auto;
3880
+ display: inline-block;
3881
+ }
3882
+ /* Shortcode sidebar */
3883
+ .spftestimonial-scode-wrap-side{
3884
+ pointer-events: none;
3885
+ opacity: 0.7;
3886
+ -webkit-touch-callout: none; /* iOS Safari */
3887
+ -webkit-user-select: none; /* Safari */
3888
+ -khtml-user-select: none; /* Konqueror HTML */
3889
+ -moz-user-select: none; /* Old versions of Firefox */
3890
+ -ms-user-select: none; /* Internet Explorer/Edge */
3891
+ user-select: none;
3892
+ }
3893
+ span.spftestimonial-shortcode-selectable {
3894
+ background-color: rgba(82,179,217,.11);
3895
+ padding: 10px 15px 10px 30px;
3896
+ display: inline-block;
3897
+ border: 1px solid #d1e4ef;
3898
+ border-radius: 2px;
3899
+ cursor: pointer;
3900
+ border-radius: 3px;
3901
+ word-break: break-word;
3902
+ position: relative;
3903
+ width: 80%;
3904
+ }
3905
+ span.spftestimonial-shortcode-selectable::after{
3906
+ content: url(../images/copy.svg);
3907
+ width: 16px;
3908
+ left: 10px;
3909
+ top: 50%;
3910
+ position: absolute;
3911
+ margin-top: -6px;
3912
+ }
3913
+ .spftestimonial-header-inner h1 img {
3914
+ height: 24px;
3915
+ width: 24px;
3916
+ margin-right: 8px;
3917
+ margin-bottom: -4px;
3918
+ }
3919
+ .spftestimonial-theme-light .spftestimonial-nav ul li .spftestimonial-active {
3920
+ box-shadow: 3px 0 0 0 #1595ce inset;
3921
+ background-color: #ffffff;
3922
+ color: #1595CE;
3923
+ }
3924
+ .spftestimonial-buttons .button.spftestimonial-save-ajax {
3925
+ background-color: #02cc7b;
3926
+ border-color: transparent;
3927
+ color: #fff !important;
3928
+ -webkit-box-shadow: none;
3929
+ box-shadow: none;
3930
+ text-shadow: none;
3931
+ border-radius: 4px;
3932
+ height: 38px;
3933
+ text-transform: uppercase;
3934
+ width: 140px;
3935
+ -webkit-transition: background-color 0.2s;
3936
+ transition: background-color 0.2s;
3937
+ }
3938
+ /* .spftestimonial-buttons .button.spftestimonial-save-ajax:hover {
3939
+ background-color: #02bb71;
3940
+ } */
3941
+ .spftestimonial-buttons .button.spftestimonial-reset-all,
3942
+ .spftestimonial-buttons .button.spftestimonial-reset-section {
3943
+ background-color: #cd3c3c !important;
3944
+ border-color: transparent !important;
3945
+ -webkit-box-shadow: none !important;
3946
+ box-shadow: none !important;
3947
+ text-shadow: none !important;
3948
+ text-transform: uppercase;
3949
+ border-radius: 4px;
3950
+ height: 38px;
3951
+ -webkit-transition: background-color 0.2s;
3952
+ transition: background-color 0.2s;
3953
+ color: #fff;
3954
  }
3955
+ .spftestimonial-buttons .button.spftestimonial-reset-section {
3956
+ background-color: #cd3c3c !important;
 
 
3957
  }
3958
+ .spftestimonial-buttons .button {
3959
+ margin: 0 3px;
3960
+ line-height: 26px;
3961
+ font-weight: 600;
3962
  }
3963
+ /* Import export css */
3964
+ .spftestimonial-field.spftestimonial-field-button_set.spt_export {
3965
+ margin-top: 0;
3966
+ padding-top: 0;
3967
  }
3968
 
3969
+ .spftestimonial-field-button_set.spt_export .spftestimonial--button:hover,
3970
+ .spftestimonial-field.spftestimonial-field-custom_import.spt_import button:hover {
3971
+ background: #135e96;
3972
+ border-color: #135e96;
3973
+ color: #fff;
3974
  }
3975
 
3976
+ .spftestimonial-field.spftestimonial-field-custom_import.spt_import button,
3977
+ .spftestimonial-field-button_set.spt_export .spftestimonial--button {
3978
+ background: #2271b1;
3979
+ border-color: #2271b1;
3980
+ color: #fff;
3981
+ text-decoration: none;
3982
+ text-shadow: none;
3983
+ display: inline-block;
3984
+ text-decoration: none;
3985
+ font-size: 13px;
3986
+ line-height: 2.15384615;
3987
+ min-height: 30px;
3988
+ margin: 0;
3989
+ padding: 0 10px;
3990
+ cursor: pointer;
3991
+ border-width: 1px;
3992
+ border-style: solid;
3993
+ -webkit-appearance: none;
3994
+ border-radius: 3px;
3995
+ white-space: nowrap;
3996
+ box-sizing: border-box;
3997
  }
3998
 
3999
+ .sp-lcp-options .spftestimonial-field-select .spftestimonial-fieldset {
4000
+ position: relative;
4001
  }
4002
 
4003
+ .spftestimonial-field.spftestimonial-field-custom_import.spt_import .spftestimonial-fieldset {
4004
+ position: relative;
 
4005
  }
4006
 
4007
+ .spftestimonial-field.spftestimonial-field-custom_import.spt_import p {
4008
+ padding-bottom: 0;
4009
+ margin-bottom: 1px;
 
4010
  }
4011
 
4012
+ .spftestimonial-field.spftestimonial-field-custom_import.spt_import button {
4013
+ margin-top: 10px;
4014
+ padding-bottom: 0px;
4015
  }
4016
 
4017
+ .spftestimonial-field.spftestimonial-field-custom_import.spt_import .spftestimonial-help {
4018
+ cursor: help;
4019
+ position: absolute;
4020
+ top: 80%;
4021
+ transform: translateY(-50%);
4022
+ padding: 5px;
4023
+ font-size: 14px;
4024
+ color: #aaa;
4025
+ width: 15px;
4026
+ left: 64px;
4027
+ text-align: left;
4028
  }
4029
 
4030
+ .spftestimonial-field.spftestimonial-field-select.spt_post_forms_id .chosen-container .chosen-drop,
4031
+ .spftestimonial-field.spftestimonial-field-select.spt_post_id .chosen-container .chosen-drop {
4032
+ max-width: 400px;
4033
  }
4034
 
4035
+ .spftestimonial-field.spftestimonial-field-select.spt_post_forms_id .chosen-container,
4036
+ .spftestimonial-field.spftestimonial-field-select.spt_post_id .chosen-container {
4037
+ max-width: 400px;
4038
  }
4039
 
4040
+ .spftestimonial-field.spftestimonial-field-select.spt_post_forms_id,
4041
+ .spftestimonial-field.spftestimonial-field-select.spt_post_id {
4042
+ padding-top: 0;
4043
  }
4044
 
4045
+ .spftestimonial_tools .spftestimonial-header-inner h1.export-import img {
4046
+ height: 24px;
 
4047
  }
4048
 
4049
+ .spftestimonial_tools .spftestimonial-nav-options li:nth-child(1) a {
4050
+ background-image: url(../images/export-icon.svg);
 
4051
  }
4052
 
4053
+ .spftestimonial_tools .spftestimonial-nav-options li:nth-child(2) a {
4054
+ background-image: url(../images/import.svg);
 
4055
  }
4056
 
4057
+ .spftestimonial_tools .spftestimonial-nav-options li:nth-child(1) a.spftestimonial-active{
4058
+ background-image: url(../images/file-export-icon1.svg);
 
4059
  }
4060
 
4061
+ .spftestimonial_tools .spftestimonial-nav-options li:nth-child(2) a.spftestimonial-active{
4062
+ background-image: url(../images/file-import-icon1.svg);
4063
  }
4064
 
4065
+ .spt-main-class.spftestimonial-theme-light.spftestimonial_tools .spftestimonial-nav-options ul li a {
4066
+ padding: 15px 30px;
4067
+ background-size: 14px;
4068
+ background-position: 10px center;
4069
+ background-repeat: no-repeat;
4070
  }
4071
 
4072
  /* Custom */
4073
+ .spftestimonial--image.pro-feature {
4074
  position: relative;
4075
  pointer-events: none;
4076
  }
4237
  -moz-osx-font-smoothing: grayscale;
4238
  }
4239
  /* Form page upper box area! */
4240
+ .spftestimonial-metabox .spftestimonial-field-form_upper_section{
4241
  background: #f5fcff;
4242
+ padding: 50px 15px 70px;
4243
  }
4244
  .spftestimonial-field-form_upper_section .sp-tfree-help .sp-tfree-pro-features .feature-section span.dashicons{
4245
  height: 22px;
4343
  text-transform: uppercase;
4344
  font-weight: 600;
4345
  }
4346
+ #sp_tpro_form_options .spftestimonial-metabox .spftestimonial-nav ul li .spftestimonial-active {
 
 
 
 
 
4347
  box-shadow: 3px 0 0 0 #1595CE inset;
4348
  background-color: #fff;
4349
  color: #1595CE;
4359
  input {
4360
  max-width: 400px;
4361
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4362
  #sp_tpro-preview-box {
4363
  overflow-x: auto;
4364
  padding: 0 20px;
4365
  resize: vertical;
4366
+ min-height: 150px;
4367
  }
4368
  #sp_tpro_live_preview .postbox-header .handle-actions .handle-order-lower,#sp_tpro_live_preview .postbox-header .handle-actions .handle-order-higher {
4369
  display: none;
admin/views/framework/assets/css/spftestimonial.min.css CHANGED
@@ -1 +1 @@
1
- .spftestimonial{position:relative}.spftestimonial label{padding:0;margin:0;display:inline-block}.spftestimonial-ab-icon{top:2px}#screen-meta-links+.spftestimonial-options{margin-top:40px}.spftestimonial-options{margin-top:20px;margin-right:20px}.spftestimonial-header{position:relative}.spftestimonial-header-inner{padding:25px}.spftestimonial-header-inner h1 img{height:24px;width:24px;margin-right:8px;margin-bottom:-4px}.spftestimonial-header-inner h1{color:#444;float:left;font-size:20px;line-height:35px;font-weight:600;margin:0}.spftestimonial-header-inner h1 small{font-size:11px;font-weight:500}.spftestimonial-sticky .spftestimonial-header-inner{position:fixed;z-index:99999;top:32px;-moz-box-shadow:0 5px 25px rgba(0,0,0,.125);-webkit-box-shadow:0 5px 25px rgba(0,0,0,.125);box-shadow:0 5px 25px rgba(0,0,0,.125)}.spftestimonial-header-left{float:left}.spftestimonial-header-right{float:right}.spftestimonial-buttons .button{margin:0 4px;padding:0 16px;border-radius:0;height:38px;font-size:13px;font-weight:500;text-transform:uppercase;color:#fff}.spftestimonial-buttons .button.spftestimonial-save-ajax{background-color:#02cc7b;border-color:transparent;color:#fff!important;-webkit-box-shadow:none;box-shadow:none;text-shadow:none;border-radius:4px;height:38px;width:75px;-webkit-transition:background-color .2s;transition:background-color .2s}.spftestimonial-buttons .button.spftestimonial-save-ajax:hover{background-color:#02bb71}.spftestimonial-buttons .button.spftestimonial-save-ajax:focus{color:#fff}.spftestimonial-buttons .button.spftestimonial-save-ajax[disabled]{background-color:#02bb71!important;border:none}.spftestimonial-buttons .button.spftestimonial-reset-all,.spftestimonial-buttons .button.spftestimonial-reset-section{background-color:#cd3c3c!important;border-color:transparent!important;-webkit-box-shadow:none!important;box-shadow:none!important;text-shadow:none!important;border-radius:4px;height:38px;-webkit-transition:background-color .2s;transition:background-color .2s}.spftestimonial-buttons .button.spftestimonial-reset-all:hover,.spftestimonial-buttons .button.spftestimonial-reset-section:hover{background-color:#b82f2f!important}.spftestimonial-buttons .button.spftestimonial-reset-section{background-color:#77777c!important}.spftestimonial-buttons .button.spftestimonial-reset-section:hover{background-color:#616166!important;color:#fff}.spftestimonial-nav{display:block;position:relative;z-index:10;float:left;width:225px}.spftestimonial-nav ul{clear:left;margin:0;list-style-type:none}.spftestimonial-nav ul li{margin-bottom:0}.spftestimonial-nav ul li a{font-size:13px;position:relative;display:block;padding:14px 12px;text-decoration:none;-moz-transition:all .3s ease;-o-transition:all .3s ease;-webkit-transition:all .3s ease;transition:all .3s ease}.spftestimonial-nav ul li a:focus{outline:0;-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none}.spftestimonial-nav ul li .spftestimonial-section-active:after{content:" ";position:absolute;right:0;top:50%;height:0;width:0;pointer-events:none;border:solid transparent;border-right-color:#fff;border-width:4px;margin-top:-4px}.spftestimonial-nav ul li .spftestimonial-arrow:after{content:"\f054";display:inline-block;font-family:FontAwesome;font-size:9px;line-height:1;position:absolute;right:10px;top:50%;margin-top:-4px;-moz-transform:rotate(0);-ms-transform:rotate(0);-webkit-transform:rotate(0);transform:rotate(0)}.spftestimonial-nav ul li.spftestimonial-tab-active .spftestimonial-arrow:after{-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-webkit-transform:rotate(90deg);transform:rotate(90deg)}.spftestimonial-nav ul li.spftestimonial-tab-active ul{display:block}.spftestimonial-nav ul ul{display:none;position:relative}.spftestimonial-nav ul ul li a{font-size:12px;padding:12px 14px 12px 24px}.spftestimonial-nav .fa{width:20px;margin-right:5px;font-size:14px;text-align:center}.spftestimonial-nav .spftestimonial-label-error{margin-left:4px;vertical-align:top}.spftestimonial-nav-background{position:absolute;top:0;left:0;bottom:0;z-index:9;width:225px}.spftestimonial-wrapper{position:relative}.spftestimonial-content{position:relative;margin-left:225px;background-color:#fff;-moz-transition:opacity .2s;-o-transition:opacity .2s;-webkit-transition:opacity .2s;transition:opacity .2s}.spftestimonial-sections{float:left;width:100%}.spftestimonial-section{display:none}.spftestimonial-section-title{display:none;padding:20px 30px;background-color:#f5f5f5;border-top:1px solid #eee;border-bottom:1px solid #eee}.spftestimonial-section-title h3{margin:0;padding:0;font-size:13px;font-weight:700;text-transform:uppercase}.spftestimonial-section-title .fa{margin-right:5px}.spftestimonial-footer{padding:20px;font-size:11px}.spftestimonial-copyright{float:left;margin-top:5px}.spftestimonial-search-all .spftestimonial-nav,.spftestimonial-search-all .spftestimonial-nav-background,.spftestimonial-show-all .spftestimonial-nav,.spftestimonial-show-all .spftestimonial-nav-background{display:none}.spftestimonial-search-all .spftestimonial-content,.spftestimonial-show-all .spftestimonial-content{margin-left:0}.spftestimonial-search-all .spftestimonial-section,.spftestimonial-search-all .spftestimonial-section-title,.spftestimonial-show-all .spftestimonial-section,.spftestimonial-show-all .spftestimonial-section-title{display:block!important}.spftestimonial-search-all .spftestimonial-section-title{display:none!important}.spftestimonial-expand-all{float:left;padding:0 8px;margin-right:4px;z-index:1;font-size:14px;line-height:28px;cursor:pointer;user-select:none;-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;-moz-transition:all .2s;-o-transition:all .2s;-webkit-transition:all .2s;transition:all .2s}.spftestimonial-expand-all span{font-size:11px;vertical-align:middle}.spftestimonial-search{float:left}.spftestimonial-search input{margin:0 2px 0 0;border:none;font-size:12px;line-height:28px;min-height:28px;text-align:inherit;padding:0 10px;-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none}.spftestimonial-search input:focus{-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none}.spftestimonial-saving .spftestimonial-buttons,.spftestimonial-saving .spftestimonial-content{cursor:default;pointer-events:none;opacity:.5}.spftestimonial-metabox{margin:-6px -12px -12px -12px}.spftestimonial-metabox .spftestimonial-section-title{padding:20px}.block-editor-page .spftestimonial-metabox{margin:-6px -14px -12px -14px}.spftestimonial-restore-wrapper{text-align:right;padding:10px;border-top:1px solid #eee}.spftestimonial-restore-wrapper .spftestimonial-button-cancel,.spftestimonial-restore-wrapper input{display:none}.spftestimonial-restore-wrapper span{-webkit-user-select:none;user-select:none}.spftestimonial-restore-wrapper input:checked~.spftestimonial-button-restore{display:none}.spftestimonial-restore-wrapper input:checked~.spftestimonial-button-cancel{display:inline-block}#side-sortables .spftestimonial-section-title{padding:12px}#side-sortables .spftestimonial-field{padding:12px}#side-sortables .spftestimonial-field .spftestimonial-title{float:none;width:100%;margin-bottom:10px}#side-sortables .spftestimonial-field .spftestimonial-fieldset{margin-left:0}#side-sortables .spftestimonial-notice{padding:12px 12px 12px 0}.spftestimonial-tooltip{position:absolute;z-index:5000001;font-size:12px;line-height:1.4;text-align:left;text-decoration:none;padding:6px 12px;max-width:200px;color:#fff;background-color:#000;background-color:rgba(0,0,0,.85);-moz-border-radius:4px;-webkit-border-radius:4px;border-radius:4px}.spftestimonial-theme-dark .spftestimonial-header-inner{background-color:#050505}.spftestimonial-theme-dark .spftestimonial-header-inner h1{color:#fff}.spftestimonial-theme-dark .spftestimonial-header-inner h1 small{color:#555}.spftestimonial-theme-dark .spftestimonial-expand-all{color:#999;background-color:#222}.spftestimonial-theme-dark .spftestimonial-expand-all:hover{color:#fff;background-color:#333}.spftestimonial-theme-dark .spftestimonial-search input{color:#fff;background-color:#222}.spftestimonial-theme-dark .spftestimonial-search:focus{background-color:#444}.spftestimonial-theme-dark .spftestimonial-search::-webkit-input-placeholder{color:#666}.spftestimonial-theme-dark .spftestimonial-nav ul li a{color:#999;background-color:#222;border-bottom:1px solid #2f2f2f}.spftestimonial-theme-dark .spftestimonial-nav ul li a:hover{color:#fff}.spftestimonial-theme-dark .spftestimonial-nav ul li .spftestimonial-section-active{color:#fff;background-color:#111}.spftestimonial-theme-dark .spftestimonial-nav ul ul li a{background-color:#191919;border-bottom:1px solid #2f2f2f}.spftestimonial-theme-dark .spftestimonial-nav ul ul li .spftestimonial-section-active{background-color:#101010}.spftestimonial-theme-dark .spftestimonial-nav ul ul:before{background-color:rgba(34,34,34,.75)}.spftestimonial-theme-dark .spftestimonial-nav>ul>li:last-child>a{border-bottom:none}.spftestimonial-theme-dark .spftestimonial-nav-background{background-color:#222}.spftestimonial-theme-dark .spftestimonial-footer{color:#555;background-color:#050505}.spftestimonial-theme-light .spftestimonial-container{border:1px solid #e5e5e5;-moz-box-shadow:0 0 15px rgba(0,0,0,.04);-webkit-box-shadow:0 0 15px rgba(0,0,0,.04);box-shadow:0 0 15px rgba(0,0,0,.04)}.spftestimonial-theme-light .spftestimonial-header-inner{border-bottom:1px solid #e5e5e5;background-color:#f5f5f5;background:linear-gradient(#fefefe,#f5f5f5)}.spftestimonial-theme-light .spftestimonial-header-inner h1 small{color:#999}.spftestimonial-theme-light .spftestimonial-expand-all{color:#999;background-color:#fff;-moz-box-shadow:0 1px 1px rgba(0,0,0,.05);-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.spftestimonial-theme-light .spftestimonial-expand-all:hover{color:#555}.spftestimonial-theme-light .spftestimonial-search input{color:#555;background-color:#fff;-moz-box-shadow:0 1px 1px rgba(0,0,0,.05);-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.spftestimonial-theme-light .spftestimonial-search input::-webkit-input-placeholder{color:#bbb}.spftestimonial-theme-light .spftestimonial-nav ul li a{color:#666;background-color:#f5f5f5;border-bottom:1px solid #e5e5e5}.spftestimonial-theme-light .spftestimonial-nav ul li a:hover{color:#222}.spftestimonial-theme-light .spftestimonial-nav ul li .spftestimonial-section-active{color:#222;background-color:#fff}.spftestimonial-theme-light .spftestimonial-nav ul li .spftestimonial-section-active:after{display:none}.spftestimonial-theme-light .spftestimonial-nav ul ul li a{background-color:#eee;border-bottom:1px solid #e5e5e5}.spftestimonial-theme-light .spftestimonial-nav>ul>li:last-child>a{border-bottom:none}.spftestimonial-theme-light .spftestimonial-nav-background{background-color:#f5f5f5}.spftestimonial-theme-light .spftestimonial-footer{color:#555;border-top:1px solid #e5e5e5;background-color:#f5f5f5;background:linear-gradient(#fafafa,#f5f5f5)}.spftestimonial-field{position:relative;padding:20px 30px}.spftestimonial-field p:first-child{margin-top:0}.spftestimonial-field p:last-child{margin-bottom:0}.spftestimonial-field:after,.spftestimonial-field:before{content:" ";display:table}.spftestimonial-field:after{clear:both}.spftestimonial-field h4{margin-top:0}.spftestimonial-field .spftestimonial-title{position:relative;width:20%;float:left}.spftestimonial-field .spftestimonial-title h4{margin:0;color:#23282d;display:inline-block}.spftestimonial-field .spftestimonial-fieldset{margin-left:25%}.spftestimonial-pseudo-field{padding:0 5px 0 0!important;display:inline-block}.spftestimonial-pseudo-field+.spftestimonial-pseudo-field{border:0}.spftestimonial-pseudo-field pre{display:none}.spftestimonial-field-accordion .spftestimonial-accordion-item{position:relative;margin-bottom:5px}.spftestimonial-field-accordion .spftestimonial-accordion-item h4{font-size:1em}.spftestimonial-field-accordion .spftestimonial-accordion-title{display:block;cursor:pointer;position:relative;margin:0;padding:15px;min-height:0;font-size:100%;user-select:none;border:1px solid #ccd0d4;background-color:#fafafa;box-shadow:0 1px 1px rgba(0,0,0,.04);transition:border-color .15s}.spftestimonial-field-accordion .spftestimonial-accordion-title:active,.spftestimonial-field-accordion .spftestimonial-accordion-title:focus,.spftestimonial-field-accordion .spftestimonial-accordion-title:hover{outline:0;border-color:#999}.spftestimonial-field-accordion .spftestimonial-accordion-icon{width:14px;text-align:center}.spftestimonial-field-accordion .spftestimonial--icon{width:20px;text-align:center}.spftestimonial-field-accordion .spftestimonial-accordion-content{display:none;padding:0;border:1px solid #ccd0d4;border-top:none;background-color:#fff;box-shadow:0 1px 1px rgba(0,0,0,.04)}.spftestimonial-field-accordion .spftestimonial-accordion-content>.spftestimonial-field{padding:15px}.spftestimonial-field-accordion .spftestimonial-accordion-open{display:block}.spftestimonial-field-background .spftestimonial-field{border:0!important;padding:0;margin-bottom:6px;margin-right:6px}.spftestimonial-field-background .spftestimonial--title{color:#777;font-size:12px}.spftestimonial-field-background .spftestimonial--background-colors{display:flex}.spftestimonial-field-background .spftestimonial--background-attributes{display:flex;flex-wrap:wrap}.spftestimonial-field-background .spftestimonial--background-attributes select{min-width:100%;margin:0}.spftestimonial-field-background .spftestimonial--background-attributes .spftestimonial-field{flex:1}.spftestimonial-field-background .spftestimonial--attributes-hidden{display:none}.spftestimonial-field-background .wp-color-result.button{margin-bottom:0}.spftestimonial-field-backup textarea{width:100%;min-height:200px;margin-bottom:5px}.spftestimonial-field-backup small{display:inline-block;margin:5px}.spftestimonial-field-backup hr{margin:20px 0;border:none;border-bottom:1px solid #e5e5e5}.spftestimonial-field-custom_size.disabled .spftestimonial-fieldset{pointer-events:none;opacity:.7}.spftestimonial-field-custom_size.disabled .spftestimonial-fieldset .spftestimonial--input:after{content:'Pro';text-transform:uppercase;line-height:30px;margin-left:6px;color:#444}.spftestimonial-field-column .spftestimonial--input input,.spftestimonial-field-custom_size .spftestimonial--input input{border-radius:0 4px 4px 0}.spftestimonial-field-column .spftestimonial--input{float:left}.spftestimonial-field-custom_size .spftestimonial--input{float:left;margin-right:10px;margin-bottom:7px}.spftestimonial-field-custom_size .spftestimonial--input input{line-height:30px;float:left;margin:0;padding:0;width:65px;max-width:100%;text-align:center;border-radius:0}.spftestimonial-field-custom_size .spftestimonial--label.spftestimonial--label-unit{border-right:1px solid #ddd;border-left:0;border-radius:0 2px 2px 0}.spftestimonial-field-column .spftestimonial--label,.spftestimonial-field-custom_size .spftestimonial--label{float:left;max-width:100%;font-size:12px;line-height:30px;vertical-align:top;text-align:center;color:#555;border:1px solid #ddd;background-color:#eee;padding:0 6px;min-height:30px;min-width:20px;border-right:0;border-radius:4px 0 0 4px}.spftestimonial-field-border .spftestimonial--inputs,.spftestimonial-field-column .spftestimonial--inputs,.spftestimonial-field-dimensions .spftestimonial--inputs,.spftestimonial-field-spacing .spftestimonial--inputs{float:left;display:flex;flex-wrap:wrap}.spftestimonial-field-border .spftestimonial--input,.spftestimonial-field-column .spftestimonial--input,.spftestimonial-field-dimensions .spftestimonial--input,.spftestimonial-field-spacing .spftestimonial--input{display:flex;padding-right:6px;padding-bottom:4px;box-sizing:border-box}.spftestimonial-field-border .spftestimonial--input select,.spftestimonial-field-dimensions .spftestimonial--input select,.spftestimonial-field-spacing .spftestimonial--input select{margin:0}.spftestimonial-field-border .spftestimonial--input input,.spftestimonial-field-column .spftestimonial--input input,.spftestimonial-field-dimensions .spftestimonial--input input,.spftestimonial-field-spacing .spftestimonial--input input{position:relative;z-index:1;margin:0;width:65px;max-width:100%;padding:0;text-align:center;border:1px solid #ddd}.spftestimonial-field-border .spftestimonial--color,.spftestimonial-field-dimensions .spftestimonial--color,.spftestimonial-field-spacing .spftestimonial--color{float:left}.spftestimonial-field-border .spftestimonial--color .spftestimonial--title{margin-top:-22px}.spftestimonial-field-border .spftestimonial--label,.spftestimonial-field-dimensions .spftestimonial--label,.spftestimonial-field-spacing .spftestimonial--label{display:flex;flex-direction:column;justify-content:center;user-select:none;min-width:20px;max-width:100%;padding:0 4px;font-size:12px;text-align:center;color:#555;border:1px solid #7b776c;background-color:#f5f5f5}.spftestimonial-field-border .spftestimonial--icon,.spftestimonial-field-dimensions .spftestimonial--icon,.spftestimonial-field-spacing .spftestimonial--icon{border-right:0;border-radius:4px 0 0 4px}.spftestimonial-field-border .spftestimonial--icon+input,.spftestimonial-field-dimensions .spftestimonial--icon+input,.spftestimonial-field-spacing .spftestimonial--icon+input{border-top-left-radius:0;border-bottom-left-radius:0}.spftestimonial-field-border .spftestimonial--unit,.spftestimonial-field-dimensions .spftestimonial--unit,.spftestimonial-field-spacing .spftestimonial--unit{border-left:0;border-radius:0 4px 4px 0}.spftestimonial-field-border .spftestimonial--is-unit,.spftestimonial-field-dimensions .spftestimonial--is-unit,.spftestimonial-field-spacing .spftestimonial--is-unit{border-top-right-radius:0;border-bottom-right-radius:0}.spftestimonial-field-button_set .spftestimonial--buttons{display:inline-block}.spftestimonial-field-button_set .spftestimonial--button{position:relative;z-index:1;float:left;cursor:pointer;padding:7px 14px;min-width:40px;text-align:center;color:#555;border:1px solid #ccc;background-color:#f7f7f7;user-select:none;-webkit-user-select:none;box-shadow:0 1px 0 rgba(0,0,0,.1)}.spftestimonial-field-button_set .spftestimonial--button:first-child{border-radius:4px 0 0 4px}.spftestimonial-field-button_set .spftestimonial--button:last-child{border-radius:0 4px 4px 0}.spftestimonial-field-button_set .spftestimonial--button:not(:first-child){margin-left:-1px}.spftestimonial-field-button_set .spftestimonial--button:hover{background-color:#eee}.spftestimonial-field-button_set .spftestimonial--active,.spftestimonial-field-button_set .spftestimonial--active:hover{z-index:2;color:#fff;border-color:#006799;background-color:#0085ba}.spftestimonial-field-button_set input{display:none}.spftestimonial-field-checkbox ul,.spftestimonial-field-radio ul{margin:0;padding:0 1px;list-style-type:none;overflow-y:auto;max-height:305px}.spftestimonial-field-checkbox ul ul,.spftestimonial-field-radio ul ul{max-height:none}.spftestimonial-field-checkbox .spftestimonial--inline-list li,.spftestimonial-field-radio .spftestimonial--inline-list li{display:inline-block;margin-right:15px}.spftestimonial-field-checkbox input[type=radio]:checked:before,.spftestimonial-field-radio input[type=radio]:checked:before{line-height:10px}.spftestimonial-field-checkbox .spftestimonial-checker,.spftestimonial-field-radio .spftestimonial-checker{cursor:pointer}.spftestimonial-field-code_editor .CodeMirror{width:100%;height:400px}.spftestimonial-field-code_editor .cm-s-default{border:1px solid #ccd0d4}.spftestimonial-field-code_editor textarea{width:100%;height:400px}.spftestimonial-field-color>input{opacity:.75;width:115px;max-width:100%}.spftestimonial-field-color .button.wp-picker-clear{margin-left:6px;padding:2px 8px}.spftestimonial-field-color_group .spftestimonial--left{float:left;margin-right:10px;margin-bottom:5px}.spftestimonial-field-border .spftestimonial--color .spftestimonial--title,.spftestimonial-field-color_group .spftestimonial--title{color:#999;margin-bottom:5px}.spftestimonial-field-fieldset .spftestimonial-fieldset-content{border:1px solid #ccd0d4;background-color:#fff;box-shadow:0 1px 1px rgba(0,0,0,.04)}.spftestimonial-field-fieldset .spftestimonial-fieldset-content>.spftestimonial-field{padding:15px}.spftestimonial-field-fieldset .spftestimonial-field-subheading{font-size:13px}.spftestimonial-field-date input{margin:0}.spftestimonial-field-date .spftestimonial--to{margin-left:7px}.spftestimonial-datepicker-wrapper{margin-top:5px;width:auto;background-color:#fff;z-index:9999999!important;-moz-box-shadow:0 0 30px rgba(0,0,0,.15);-webkit-box-shadow:0 0 30px rgba(0,0,0,.15);box-shadow:0 0 30px rgba(0,0,0,.15)}.spftestimonial-datepicker-wrapper *{float:none;margin:0;padding:0;font-family:inherit;font-weight:400;font-style:normal;text-decoration:none;border:0;border-radius:0;box-shadow:none}.spftestimonial-datepicker-wrapper .ui-datepicker-header,.spftestimonial-datepicker-wrapper .ui-widget-header{color:#fff;background:#00a0d2}.spftestimonial-datepicker-wrapper .ui-datepicker-header .ui-state-hover{cursor:pointer}.spftestimonial-datepicker-wrapper .ui-datepicker-title{font-size:14px;line-height:40px;text-align:center}.spftestimonial-datepicker-wrapper .ui-datepicker-next,.spftestimonial-datepicker-wrapper .ui-datepicker-prev{position:static;top:auto;left:auto;right:auto;font-family:FontAwesome;font-size:12px;text-align:center;width:41px;height:40px;line-height:40px;color:#fff;background-color:rgba(255,255,255,.1);text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.spftestimonial-datepicker-wrapper .ui-datepicker-next span,.spftestimonial-datepicker-wrapper .ui-datepicker-prev span{display:none}.spftestimonial-datepicker-wrapper .ui-datepicker-prev{float:left}.spftestimonial-datepicker-wrapper .ui-datepicker-next{float:right}.spftestimonial-datepicker-wrapper .ui-datepicker-prev:before{content:'\f053'}.spftestimonial-datepicker-wrapper .ui-datepicker-next:before{content:'\f054'}.spftestimonial-datepicker-wrapper .ui-datepicker-next-hover,.spftestimonial-datepicker-wrapper .ui-datepicker-prev-hover{opacity:.75}.spftestimonial-datepicker-wrapper tbody .ui-datepicker-week-col{background-color:#f7f7f7}.spftestimonial-datepicker-wrapper .ui-datepicker-buttonpane{padding:10px;text-align:center;background-color:#f7f7f7}.spftestimonial-datepicker-wrapper .ui-datepicker-buttonpane button{cursor:pointer;margin:0 5px;padding:7px 14px;border:1px solid #eee;background-color:#fff}.spftestimonial-datepicker-wrapper select{margin:0 4px}.spftestimonial-datepicker-wrapper select option{color:#555}.spftestimonial-datepicker-wrapper table{font-size:13px;border-collapse:collapse;width:100%}.spftestimonial-datepicker-wrapper thead{color:#fff;background:#32373c}.spftestimonial-datepicker-wrapper th{text-align:center;padding:7px;border:1px solid #444}.spftestimonial-datepicker-wrapper td{text-align:center;border:1px solid #f4f4f4}.spftestimonial-datepicker-wrapper td.ui-datepicker-other-month{border:transparent}.spftestimonial-datepicker-wrapper td .ui-state-default{color:#555;width:auto;display:block;padding:6px 12px}.spftestimonial-datepicker-wrapper td .ui-state-active,.spftestimonial-datepicker-wrapper td .ui-state-hover{color:#fff;background-color:#0073aa}.spftestimonial-datepicker-wrapper td.ui-state-disabled .ui-state-default{opacity:.5}.spftestimonial-field-gallery input{display:none}.spftestimonial-field-gallery ul{margin:0;padding:0;list-style-type:none}.spftestimonial-field-gallery ul li{display:inline-block;position:relative;padding:4px;margin:0 5px 10px 0;border:1px solid #ccc;background-color:#f9f9f9;-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;-moz-box-shadow:0 1px 0 rgba(0,0,0,.08);-webkit-box-shadow:0 1px 0 rgba(0,0,0,.08);box-shadow:0 1px 0 rgba(0,0,0,.08)}.spftestimonial-field-gallery ul li img{max-height:60px;display:inline-block;vertical-align:middle}.spftestimonial-field-gallery .button{margin-right:5px;margin-bottom:5px}.spftestimonial-field-group .spftestimonial-cloneable-hidden{display:none!important}.spftestimonial-field-group .spftestimonial-cloneable-wrapper{position:relative}.spftestimonial-field-group .spftestimonial-cloneable-item{display:none;position:relative;margin-bottom:5px}.spftestimonial-field-group .spftestimonial-cloneable-item h4{font-size:1em}.spftestimonial-field-group .ui-accordion .spftestimonial-cloneable-item{display:block}.spftestimonial-field-group .spftestimonial-cloneable-content{border:1px solid #ccd0d4;background-color:#fff;box-shadow:0 1px 1px rgba(0,0,0,.04)}.spftestimonial-field-group .spftestimonial-cloneable-content>.spftestimonial-field{padding:15px}.spftestimonial-field-group .spftestimonial-cloneable-title{display:block;cursor:pointer;position:relative;user-select:none;margin:0;padding:15px 65px 15px 10px;min-height:0;font-size:100%;border:1px solid #ccd0d4;background-color:#fafafa;box-shadow:0 1px 1px rgba(0,0,0,.04);transition:border-color .15s}.spftestimonial-field-group .spftestimonial-cloneable-title:active,.spftestimonial-field-group .spftestimonial-cloneable-title:focus,.spftestimonial-field-group .spftestimonial-cloneable-title:hover{border-color:#999;outline:0}.spftestimonial-field-group .spftestimonial-cloneable-helper{position:absolute;top:12px;right:10px;z-index:1;font-size:14px;line-height:1em}.spftestimonial-field-group .spftestimonial-cloneable-helper i{display:inline-block;cursor:pointer;padding:5px;color:#999}.spftestimonial-field-group .spftestimonial-cloneable-helper i:hover{color:#555}.spftestimonial-field-group .spftestimonial-cloneable-content{padding:0;border-top:0}.spftestimonial-field-group .spftestimonial-cloneable-title-number,.spftestimonial-field-group .spftestimonial-cloneable-title-prefix{margin-right:5px}.spftestimonial-field-group .spftestimonial-cloneable-alert{display:none;margin-bottom:5px;padding:10px 20px;color:#a94442;border:1px solid #ebccd1;background-color:#f2dede}.spftestimonial-field-group .widget-placeholder{margin-bottom:10px;border:1px dashed #f1c40f;background-color:#fffae4}.spftestimonial-field-group .spftestimonial-cloneable-header-icon{display:inline-block;text-align:center;font-size:14px;width:17px;text-indent:0;vertical-align:text-top}.spftestimonial-field-group .spftestimonial-cloneable-placeholder{background-color:#ddd;margin-top:4px;width:100px;height:10px;font-size:10px;line-height:10px;display:inline-block;vertical-align:top;border-radius:2px}.spftestimonial-field-icon_select .spftestimonial--image{width:35px;height:35px;text-align:center;line-height:35px;font-size:20px}.spftestimonial-field-image_select .spftestimonial--image p{margin:6px 0 0 0;font-weight:600}.spftestimonial-field-icon_select .spftestimonial--image,.spftestimonial-field-image_select .spftestimonial--image{cursor:pointer;position:relative;display:inline-block;text-align:center;max-width:100%;margin:0 16px 7px 0;vertical-align:top;background-color:#fff;user-select:none;-webkit-user-select:none;-moz-transition:all .2s;-o-transition:all .2s;-webkit-transition:all .2s;transition:all .2s}.spftestimonial-field-icon_select .spftestimonial--image{border:2px solid #ddd}.spftestimonial-field-icon_select .spftestimonial--image:before,.spftestimonial-field-image_select .spftestimonial--image:before{position:absolute;top:0;right:0;text-align:center;font-size:11px;font-family:FontAwesome;content:"\f00c";width:15px;height:15px;line-height:15px;opacity:0;color:#fff;background-color:#1595ce;transition:opacity .2s}.spftestimonial-field-image_select .spftestimonial--active img{border-color:#1595ce;outline:3px solid #1595ce;outline-offset:-3px}.spftestimonial-field-icon_select .spftestimonial--active{border-color:#1595ce}.spftestimonial-field-image_select .spftestimonial--active:before{opacity:1}.spftestimonial-field-icon_select .spftestimonial--active:before{opacity:0}.spftestimonial-field-image_select img{vertical-align:top;width:110px}.spftestimonial-field-icon_select input,.spftestimonial-field-image_select input{display:none}.spftestimonial-field-link_color .spftestimonial--left{float:left;margin-right:10px;margin-bottom:5px}.spftestimonial-field-link_color .spftestimonial--title{color:#777;margin-bottom:5px}.spftestimonial-field-map input{width:100%}.spftestimonial-field-map input[type=text].ui-autocomplete-loading{background-position-x:calc(100% - 5px)}.spftestimonial-field-map .spftestimonial--map-search+.spftestimonial--map-osm-wrap{margin-top:10px}.spftestimonial-field-map .spftestimonial--map-osm-wrap{position:relative;padding:5px;border:1px solid #eee;background-color:#fff;box-shadow:0 1px 1px rgba(0,0,0,.04)}.spftestimonial-field-map .spftestimonial--map-osm{position:relative;z-index:1;min-height:250px}.spftestimonial-field-map .spftestimonial--map-inputs{margin-top:10px;display:flex;justify-content:space-between}.spftestimonial-field-map .spftestimonial--map-input{flex:1}.spftestimonial-field-map .spftestimonial--map-input:last-child{padding-left:10px}.spftestimonial-field-map label{display:block;color:#777;font-size:12px;margin:0 0 2px 0}.spftestimonial-map-ui-autocomplate{z-index:999999;border-radius:4px;overflow:hidden}.spftestimonial-field-media .spftestimonial--placeholder{display:flex}.spftestimonial-field-media .spftestimonial--placeholder input{width:100%;margin:0}.spftestimonial-field-media .button{margin-left:5px}.spftestimonial-field-media .hidden+.button{margin-left:0}.spftestimonial-field-media .spftestimonial--preview{position:relative}.spftestimonial-field-media .spftestimonial--preview .fa-times{position:absolute;z-index:1;right:4px;top:4px;font-size:14px;width:22px;height:22px;line-height:22px;text-align:center;text-decoration:none;color:#fff;background-color:#d33;opacity:.8;transition:all .2s}.spftestimonial-field-media .spftestimonial--preview .fa-times:hover{opacity:1}.spftestimonial-field-media .spftestimonial--preview .fa-times:focus{box-shadow:none}.spftestimonial-field-palette .spftestimonial--palette{position:relative;display:inline-block;cursor:pointer;border:2px solid #ddd;margin-right:10px;margin-bottom:10px;user-select:none;-webkit-user-select:none;transition:all .2s}.spftestimonial-field-palette .spftestimonial--palette span{vertical-align:middle;display:inline-block;width:22px;height:60px;line-height:60px;overflow:hidden;text-indent:-999px}.spftestimonial-field-palette .spftestimonial--palette:before{position:absolute;top:0;left:0;text-align:center;font-size:11px;font-family:FontAwesome;content:"\f00c";width:15px;height:15px;line-height:15px;opacity:0;color:#fff;background-color:#222;transition:opacity .2s}.spftestimonial-field-palette .spftestimonial--active{border-color:#222;box-shadow:0 0 20px rgba(0,0,0,.2)}.spftestimonial-field-palette .spftestimonial--active:before{opacity:1}.spftestimonial-field-palette input{display:none}.spftestimonial-field-repeater .spftestimonial-field-text input{width:100%}.spftestimonial-field-repeater .spftestimonial-repeater-hidden{display:none!important}.spftestimonial-field-repeater .spftestimonial-repeater-wrapper .spftestimonial-repeater-item{display:table;width:100%;margin-bottom:5px;border:1px solid #eee}.spftestimonial-field-repeater .spftestimonial-repeater-wrapper .spftestimonial-repeater-item h4{font-size:1em}.spftestimonial-field-repeater .spftestimonial-repeater-content{width:100%;display:table-cell;vertical-align:middle;background-color:#fff}.spftestimonial-field-repeater .spftestimonial-repeater-content>.spftestimonial-field{padding:15px}.spftestimonial-field-repeater .spftestimonial-repeater-helper{width:100%;display:table-cell;vertical-align:middle;text-align:center;font-size:14px;line-height:1em;border-left:1px solid #eee;background-color:#f7f7f7}.spftestimonial-field-repeater .spftestimonial-repeater-helper i{display:inline-block;cursor:pointer;color:#999;padding:5px}.spftestimonial-field-repeater .spftestimonial-repeater-helper i:hover{color:#555}.spftestimonial-field-repeater .spftestimonial-repeater-helper-inner{width:75px}.spftestimonial-field-repeater .spftestimonial-repeater-alert{display:none;margin-bottom:5px;padding:10px 20px;color:#a94442;border:1px solid #ebccd1;background-color:#f2dede}.spftestimonial-field-repeater .widget-placeholder{height:50px;margin-bottom:3px;border:1px dashed #f1c40f;background-color:#fffae4}.spftestimonial-field-repeater .ui-sortable-helper{height:50px!important;overflow:hidden!important;border-color:#ccc!important;background-color:#eee!important;opacity:.5}.spftestimonial-field-repeater .ui-sortable-helper .spftestimonial-repeater-content,.spftestimonial-field-repeater .ui-sortable-helper .spftestimonial-repeater-helper{display:none}.spftestimonial-field-select .spftestimonial-fieldset{min-height:30px}.spftestimonial-field-select .spftestimonial-chosen{display:none}.spftestimonial-field-select select{max-width:100%;margin:0}.spftestimonial-field-slider .spftestimonial--wrap{display:flex;align-items:center}.spftestimonial-field-slider .spftestimonial--input{display:flex}.spftestimonial-field-slider .spftestimonial--unit{display:flex;justify-content:center;flex-direction:column;user-select:none;padding:0 6px;font-size:11px;line-height:1;border-radius:0 4px 4px 0;color:#555;border:1px solid #7e8993;border-left:0;background-color:#f5f5f5}.spftestimonial-field-slider input[type=number]{position:relative;z-index:1;width:50px;margin:0 0 0 15px;text-align:center}.spftestimonial-field-slider .spftestimonial--is-unit{border-top-right-radius:0;border-bottom-right-radius:0}.spftestimonial-field-slider .ui-slider{position:relative;width:100%;height:3px;border:none;background:#ddd;border-radius:2px}.spftestimonial-field-slider .ui-slider-range{height:3px;border:none;background:#333;border-radius:2px}.spftestimonial-field-slider .ui-slider-handle{position:absolute;width:16px;height:16px;top:-7px;margin-left:-8px;border:none;background:#333;border-radius:2px}.spftestimonial-field-slider .ui-slider-handle:hover,.spftestimonial-field-slider .ui-state-active{cursor:pointer;background:#111}.spftestimonial-field-sortable .spftestimonial-field-text input{width:100%;max-width:100%}.spftestimonial-field-sortable .spftestimonial--sortable .spftestimonial--sortable-item{display:table;width:100%;margin-bottom:5px;border:1px solid #eee}.spftestimonial-field-sortable .spftestimonial--sortable .spftestimonial--sortable-item h4{font-size:1em}.spftestimonial-field-sortable .spftestimonial--sortable-content{width:100%;display:table-cell;vertical-align:middle;background-color:#fff}.spftestimonial-field-sortable .spftestimonial--sortable-content>.spftestimonial-field{padding:15px}.spftestimonial-field-sortable .spftestimonial--sortable-helper{width:100%;display:table-cell;vertical-align:middle;text-align:center;font-size:14px;line-height:1em;border-left:1px solid #eee;background-color:#f7f7f7}.spftestimonial-field-sortable .spftestimonial--sortable-helper .fa{display:inline-block;cursor:pointer;width:50px;color:#555}.spftestimonial-field-sortable .spftestimonial--sortable-helper .fa:hover{opacity:.5}.spftestimonial-field-sortable .widget-placeholder{height:50px;margin-bottom:3px;border:1px dashed #f1c40f;background-color:#fffae4}.spftestimonial-field-sortable .ui-sortable-helper{height:50px!important;overflow:hidden!important;border-color:#ccc!important;background-color:#eee!important;opacity:.5}.spftestimonial-field-sortable .ui-sortable-helper .spftestimonial--sortable-content,.spftestimonial-field-sortable .ui-sortable-helper .spftestimonial--sortable-helper{display:none}.spftestimonial-field-sorter .ui-sortable-placeholder{height:20px;border:1px dashed #f1c40f;background-color:#fffae4}.spftestimonial-field-sorter .spftestimonial-modules{float:left;width:50%;box-sizing:border-box}.spftestimonial-field-sorter .spftestimonial-modules:first-child{padding-right:15px}.spftestimonial-field-sorter .spftestimonial-modules:last-child{padding-left:15px}.spftestimonial-field-sorter .spftestimonial-disabled,.spftestimonial-field-sorter .spftestimonial-enabled{padding:5px 15px;border:1px dashed #ddd;background-color:#fff}.spftestimonial-field-sorter .spftestimonial-disabled li{-moz-transition:opacity .15s;-o-transition:opacity .15s;-webkit-transition:opacity .15s;transition:opacity .15s;opacity:.5}.spftestimonial-field-sorter .spftestimonial-disabled .ui-sortable-helper{opacity:1}.spftestimonial-field-sorter .spftestimonial-sorter-title{font-size:13px;font-weight:600;padding:10px;text-align:center;border:1px dashed #ddd;border-bottom:none;background-color:#f8f8f8;text-transform:uppercase}.spftestimonial-field-sorter ul{list-style-type:none;margin:0;padding:0;min-height:62px}.spftestimonial-field-sorter ul li{margin:10px 0;padding:10px 15px;cursor:move;font-weight:700;text-align:center;border:1px solid #e5e5e5;background-color:#fafafa;-moz-transition:border-color .15s;-o-transition:border-color .15s;-webkit-transition:border-color .15s;transition:border-color .15s}.spftestimonial-field-sorter ul li:hover{border-color:#bbb}.spftestimonial-field-spinner .spftestimonial--spin{display:flex}.spftestimonial-field-spinner .ui-spinner{display:flex}.spftestimonial-field-spinner .ui-button-text-only{display:flex;flex-direction:column;justify-content:center;text-align:center;min-width:20px;padding:0 4px;color:#555;border:1px solid #7e8993;background-color:#f5f5f5}.spftestimonial-field-spinner .ui-button{cursor:pointer}.spftestimonial-field-spinner .ui-button:hover{background-color:#e7e7e7}.spftestimonial-field-spinner .ui-button:active{background-color:#ddd}.spftestimonial-field-spinner .ui-button:before{font-family:FontAwesome;font-size:14px}.spftestimonial-field-spinner .ui-spinner-down{order:1;border-right:0;border-radius:4px 0 0 4px}.spftestimonial-field-spinner .ui-spinner-down:before{content:"\f0d9"}.spftestimonial-field-spinner .ui-spinner-input{order:2}.spftestimonial-field-spinner .spftestimonial--unit{order:3;border-left:0;user-select:none}.spftestimonial-field-spinner .ui-spinner-up{order:4;border-left:0;border-radius:0 4px 4px 0}.spftestimonial-field-spinner .ui-spinner-up:before{content:"\f0da"}.spftestimonial-field-spinner input{position:relative;z-index:1;width:50px;text-align:center;margin:0;padding:0 8px;border-radius:0}.spftestimonial-field-spinner .ui-button-text{display:none}.spftestimonial-field-switcher .spftestimonial--switcher{float:left;cursor:pointer;position:relative;width:60px;height:26px;padding:0;margin:0;overflow:hidden;border-radius:4px;background-color:#ed6f6f;user-select:none;-webkit-user-select:none}.spftestimonial-field-switcher .spftestimonial--ball{position:absolute;top:4px;left:4px;width:24px;height:18px;background-color:#fff;border-radius:4px;transition:all .1s;box-shadow:1px 1px 1px rgba(0,0,0,.15)}.spftestimonial-field-switcher .spftestimonial--off,.spftestimonial-field-switcher .spftestimonial--on{position:absolute;top:0;left:0;right:0;font-size:11px;line-height:26px;font-weight:500;font-style:normal;text-align:center;text-transform:uppercase;color:#fff;padding-right:28px;opacity:0;transition:all .1s}.spftestimonial-field-switcher .spftestimonial--off{padding-right:0;padding-left:28px;opacity:1}.spftestimonial-field-switcher .spftestimonial--active{background:#4fb845}.spftestimonial-field-switcher .spftestimonial--active .spftestimonial--on{opacity:1}.spftestimonial-field-switcher .spftestimonial--active .spftestimonial--off{opacity:0}.spftestimonial-field-switcher .spftestimonial--active .spftestimonial--ball{left:100%;margin-left:-28px}.spftestimonial-field-switcher .spftestimonial--label{float:left;margin-top:4px;margin-left:8px;font-weight:400;color:#999}.spftestimonial-field-switcher input{display:none}.spftestimonial-field-tabbed .spftestimonial-tabbed-section{border:1px solid #ccd0d4;background-color:#fff;box-shadow:0 1px 1px rgba(0,0,0,.04)}.spftestimonial-field-tabbed .spftestimonial-tabbed-section>.spftestimonial-field{padding:15px}.spftestimonial-field-tabbed .spftestimonial-tabbed-nav .spftestimonial--icon{padding-right:5px}.spftestimonial-field-tabbed .spftestimonial-tabbed-nav a{display:inline-block;padding:12px 15px;margin-top:1px;margin-right:5px;margin-bottom:-1px;position:relative;text-decoration:none;color:#444;font-weight:600;border:1px solid #ccd0d4;background-color:#f3f3f3;transition:all .2s}.spftestimonial-field-tabbed .spftestimonial-tabbed-nav a:hover{background-color:#f9f9f9}.spftestimonial-field-tabbed .spftestimonial-tabbed-nav a.spftestimonial-tabbed-active{background-color:#fff;border-bottom-color:#fff}.spftestimonial-field-tabbed .spftestimonial-tabbed-nav a:focus{outline:0;-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none}.spftestimonial-field-text input{width:50%;max-width:100%;margin:0}.spftestimonial-field-textarea textarea{width:100%;max-width:100%;min-height:125px}.spftestimonial-field-typography select,.spftestimonial-field-typography textarea{margin:0;width:100%}.spftestimonial-field-typography .spftestimonial--title{color:#999;margin:0 0 2px 0}.spftestimonial-field-typography .spftestimonial--title small{vertical-align:top}.spftestimonial-field-typography .spftestimonial--blocks{display:flex;flex-wrap:wrap}.spftestimonial-field-typography .spftestimonial--block{padding-right:5px;padding-bottom:10px;box-sizing:border-box}.spftestimonial-field-typography .spftestimonial--block .spftestimonial--block{padding-right:0;padding-bottom:0}.spftestimonial-field-typography .spftestimonial--blocks-selects .spftestimonial--block{flex:1 33.3%}.spftestimonial-field-typography .spftestimonial--blocks-inputs .spftestimonial--input-area{max-width:100px}.spftestimonial-field-typography .spftestimonial--blocks-inputs .spftestimonial--block .spftestimonial--block{flex:1}.spftestimonial-field-typography .spftestimonial--input{margin:0;width:100%;padding:2px 8px;border-radius:4px 0 0 4px}.spftestimonial-field-typography .spftestimonial--unit{min-width:40px;max-width:40px;font-size:12px;font-weight:400;text-align:center;color:#777;border:1px solid #ddd;background-color:#eee;border-radius:0 2px 2px 0;border-left:0;line-height:30px}.spftestimonial-field-typography .spftestimonial--preview{font-size:16px;line-height:20px;padding:20px;color:#222;border:1px solid #eee;background-color:#fff;border-radius:2.5px;user-select:none;-webkit-user-select:none;transition:background-color .2s,border-color .2s}.spftestimonial-field-typography .spftestimonial--block-preview{cursor:pointer;position:relative;overflow:hidden;margin-top:10px;max-width:100%}.spftestimonial-field-typography .spftestimonial--black-background{border-color:#000;background-color:#000}.spftestimonial-field-typography .spftestimonial--toggle{position:absolute;top:5px;right:10px;color:#999}.spftestimonial-field-typography .spftestimonial--block-extra-styles{margin-top:5px}.spftestimonial-field-upload input{width:100%;margin:0}.spftestimonial-field-upload .spftestimonial--wrap{display:flex}.spftestimonial-field-upload .button{margin-left:5px}.spftestimonial-field-wp_editor .spftestimonial-wp-editor{float:left;width:100%}.spftestimonial-field-wp_editor .mce-toolbar-grp{border:none}.spftestimonial-field-wp_editor .mce-btn.mce-active button,.spftestimonial-field-wp_editor .mce-btn.mce-active i,.spftestimonial-field-wp_editor .mce-btn.mce-active:hover button,.spftestimonial-field-wp_editor .mce-btn.mce-active:hover i{color:#23282d}.spftestimonial-field-wp_editor .wp-media-buttons{position:relative;z-index:2}.spftestimonial-field-wp_editor .wp-editor-tabs{position:relative;z-index:1}.spftestimonial-field-wp_editor .spftestimonial-no-tinymce{border:1px solid #e5e5e5}.spftestimonial-field-wp_editor .spftestimonial-no-quicktags .wp-media-buttons{float:none;display:block}.spftestimonial-field-wp_editor .spftestimonial-no-quicktags .mce-tinymce{box-shadow:none;border:1px solid #e5e5e5}.spftestimonial-field-wp_editor textarea{width:100%;max-width:100%;margin:0;box-shadow:none}.spftestimonial-field-heading{font-size:1.5em;font-weight:700;color:#23282d;background-color:#f5f5f5}.spftestimonial-field-subheading{font-size:14px;font-weight:700;padding-top:17px;padding-bottom:17px;color:#23282d;background-color:#f7f7f7}.spftestimonial-field-submessage{padding:0!important;border:0!important}.spftestimonial-field-submessage+.spftestimonial-field{border-top:0!important}.spftestimonial-submessage{font-size:12px;padding:17px 30px;border-top:1px solid transparent;border-bottom:1px solid transparent}.spftestimonial-submessage-success{color:#3c763d;border-color:#d6e9c6;background-color:#dff0d8}.spftestimonial-submessage-info{color:#31708f;border-color:#bce8f1;background-color:#d9edf7}.spftestimonial-submessage-warning{color:#8a6d3b;border-color:#faebcc;background-color:#fcf8e3}.spftestimonial-submessage-danger{color:#a94442;border-color:#ebccd1;background-color:#f2dede}.spftestimonial-submessage-normal{color:#23282d;border-color:#eee;background-color:#f7f7f7}.spftestimonial-field-notice{background-color:transparent}.spftestimonial-notice{padding:12px;background-color:#fff;border-left-style:solid;border-left-width:0;box-shadow:none}.spftestimonial-notice-success{border-color:#46b450}.spftestimonial-notice-info{border-color:#339fd4;color:#999;font-style:italic;font-size:13px}.spftestimonial-notice-warning{border-color:#ffbc00}.spftestimonial-notice-danger{border-color:#dc3232}.spftestimonial-notice{border-color:#222;color:#999;font-style:italic;font-size:13px;padding:12px 12px 12px 0}.spftestimonial-field-number input{width:100%;margin:0}.spftestimonial-field-number .spftestimonial--wrap{position:relative;float:left;width:100px}.spftestimonial-field-number .spftestimonial--unit{position:absolute;z-index:1;right:4px;top:4px;bottom:4px;padding:2px 6px;color:#666;font-size:11px;line-height:1;border-radius:2px;background:#eee;user-select:none;display:flex;justify-content:center;flex-direction:column}.spftestimonial-help{cursor:help;position:absolute;top:0;right:0;padding:5px;font-size:14px;color:#aaa}.spftestimonial-help .spftestimonial-help-text{display:none}.spftestimonial-image-preview{display:inline-block;position:relative;padding:4px;min-width:44px;min-height:22px;margin-bottom:10px;border:1px solid #ccc;background-color:#f9f9f9;-moz-box-shadow:0 1px 0 rgba(0,0,0,.08);-webkit-box-shadow:0 1px 0 rgba(0,0,0,.08);box-shadow:0 1px 0 rgba(0,0,0,.08)}.spftestimonial-image-preview img{max-height:90px;display:inline-block;vertical-align:middle}.spftestimonial-field-custom .spftestimonial-field{padding:0}.spftestimonial-field .chosen-container-single .chosen-single{height:28px;line-height:26px}.spftestimonial-field .chosen-container-single .chosen-single abbr{top:0;right:20px;font-family:FontAwesome;font-size:12px;height:100%;width:18px;color:#aaa;text-align:center;background:0 0}.spftestimonial-field .chosen-container-single .chosen-single abbr:before{content:"\f00d"}.spftestimonial-field .chosen-container-single .chosen-single abbr:hover{color:#555}.spftestimonial-field .chosen-container-multi .chosen-choices li.search-choice .search-choice-close{font-family:FontAwesome;font-size:12px;height:100%;width:18px;color:#aaa;text-align:center;background:0 0}.spftestimonial-field .chosen-container-multi .chosen-choices li.search-choice .search-choice-close:before{content:"\f00d";display:inline-block;padding-top:3px}.spftestimonial-field .chosen-container-multi .chosen-choices li.search-choice .search-choice-close:hover{color:#555}.spftestimonial-field .chosen-container-single .chosen-single div b{font-family:FontAwesome;font-size:14px;color:#aaa;background:0 0}.spftestimonial-field .chosen-container-single .chosen-single div b:before{content:"\f107"}.spftestimonial-field .chosen-container-single .chosen-single div b:hover{color:#555}.spftestimonial-field .chosen-container-multi .chosen-choices li.search-choice-placeholder{border:1px dashed #aaa;margin:3px 5px 3px 0}.spftestimonial-field .chosen-container-multi .ui-sortable li.search-choice span{cursor:move}.spftestimonial-field .chosen-container-active.chosen-with-drop .chosen-single div b:before{content:"\f106"}.spftestimonial-field .chosen-container-single .chosen-single-with-deselect span{margin-right:40px}.spftestimonial-field .chosen-container-single .chosen-search input[type=text]{background:0 0}.spftestimonial-field .chosen-container-single .chosen-search:before{font-family:FontAwesome;position:absolute;content:"\f002";font-size:11px;right:10px;top:7px;color:#aaa}.spftestimonial-field .wp-picker-container{display:inline-block}.spftestimonial-field .spftestimonial--transparent-wrap{display:none;position:relative;top:-1px;width:235px;padding:9px 10px;border:1px solid #dfdfdf;border-top:none;background-color:#fff}.spftestimonial-field .wp-picker-active .spftestimonial--transparent-wrap{display:block}.spftestimonial-field .spftestimonial--transparent-slider{position:absolute;width:190px;margin-left:2px;height:18px}.spftestimonial-field .spftestimonial--transparent-slider .ui-slider-handle{position:absolute;top:-3px;bottom:-3px;z-index:5;border-color:#aaa;border-style:solid;border-width:4px 3px;width:10px;height:16px;margin:0 -5px;background:0 0;cursor:ew-resize;opacity:.9;-moz-border-radius:4px;-webkit-border-radius:4px;border-radius:4px;-moz-box-shadow:0 1px 2px rgba(0,0,0,.2);-webkit-box-shadow:0 1px 2px rgba(0,0,0,.2);box-shadow:0 1px 2px rgba(0,0,0,.2)}.spftestimonial-field .spftestimonial--transparent-slider .ui-slider-handle:before{content:" ";position:absolute;left:-2px;right:-2px;top:-3px;bottom:-3px;border:2px solid #fff;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.spftestimonial-field .spftestimonial--transparent-offset{height:18px;width:200px;background:url(../images/checkerboard.png) repeat-y center left scroll #fff;-moz-box-shadow:0 0 5px rgba(0,0,0,.4) inset;-webkit-box-shadow:0 0 5px rgba(0,0,0,.4) inset;box-shadow:0 0 5px rgba(0,0,0,.4) inset;-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px}.spftestimonial-field .spftestimonial--transparent-text{position:absolute;top:12px;right:10px;width:30px;font-size:12px;line-height:12px;text-align:center;color:#999}.spftestimonial-field .spftestimonial--transparent-button{cursor:pointer;user-select:none;margin-top:10px;font-size:11px;text-align:center;border-radius:2px;padding:3px 7px;box-shadow:0 1px 0 rgba(0,0,0,.1);letter-spacing:.2px;color:#777;border:1px solid #ccc;background-color:#f7f7f7;transition:background-color .2s,border-color .2s,color .2s}.spftestimonial-field .spftestimonial--transparent-active .wp-color-result{background-image:url(../images/checkerboard.png);background-size:135px;background-position:center left;background-color:transparent!important}.spftestimonial-field .spftestimonial--transparent-active .spftestimonial--transparent-button{color:#fff;border-color:#3ea032;background-color:#4fb845}.spftestimonial-field .spftestimonial--transparent-active .fa:before{content:"\f205"}.spftestimonial-widgets>.spftestimonial-field{position:relative;top:-1px;margin-right:-15px;margin-left:-15px;padding:12px 15px}.spftestimonial-widgets>.spftestimonial-field .spftestimonial-field{margin-left:0;margin-right:0}.spftestimonial-widgets>.spftestimonial-field .spftestimonial-title{float:none;width:100%;margin-bottom:5px}.spftestimonial-widgets>.spftestimonial-field .spftestimonial-fieldset{margin-left:0}.spftestimonial-widgets .spftestimonial-field-text input{width:100%}.spftestimonial-widgets .spftestimonial-field-notice .spftestimonial-notice{padding:15px}.control-section .spftestimonial-widgets>.spftestimonial-field{margin-right:-10px;margin-left:-10px;padding:10px 12px}.control-section .spftestimonial-field{padding:0}.control-section .spftestimonial-field .spftestimonial-title{float:none;width:100%;margin-bottom:6px}.control-section .spftestimonial-field .spftestimonial-title h4{display:block;font-size:13px;line-height:1;font-weight:600;color:inherit}.control-section .spftestimonial-field .spftestimonial-fieldset{margin-left:0}.control-section .spftestimonial-help{top:-5px;right:-5px}.control-section .spftestimonial-field-select select{width:100%}.control-section .spftestimonial-field-heading{color:inherit;font-size:14px;line-height:1em;margin-right:-15px;margin-left:-15px;padding:15px}.control-section .spftestimonial-field-subheading{color:inherit;font-size:11px;margin-right:-15px;margin-left:-15px;padding:10px 15px}.control-section .spftestimonial-text-subtitle{margin-top:4px;font-size:12px}.control-section .spftestimonial-field-submessage .spftestimonial-submessage{margin-right:-15px;margin-left:-15px;padding:15px}.control-section .spftestimonial-fieldset .spftestimonial-field-heading,.control-section .spftestimonial-fieldset .spftestimonial-field-subheading,.control-section .spftestimonial-fieldset .spftestimonial-field-submessage .spftestimonial-submessage{margin-left:0;margin-right:0}.control-section .spftestimonial-field-date .spftestimonial--to{margin-left:0}.control-section .spftestimonial-field-sorter ul li{padding:5px}.control-section .spftestimonial-field-sorter .spftestimonial-modules{float:none;width:100%}.control-section .spftestimonial-field-sorter .spftestimonial-modules:first-child{padding-right:0;padding-bottom:15px}.control-section .spftestimonial-field-background .spftestimonial--background-attributes{flex-direction:column}.control-section .spftestimonial-field-spacing input{width:90px}.control-section .spftestimonial-field-border .spftestimonial--input{flex:1 50%}.control-section .spftestimonial-field-border input,.control-section .spftestimonial-field-border select{width:100%}.control-section .spftestimonial-field-spinner input{width:50px}.control-section .spftestimonial-field-number .spftestimonial--wrap{width:100%}.control-section .spftestimonial-field-backup .spftestimonial-export-data{display:none}.control-section .spftestimonial-field-fieldset .spftestimonial-fieldset-content{border-color:#e5e5e5}.control-section .spftestimonial-field-fieldset .spftestimonial-field{padding:10px}.control-section .spftestimonial-field-fieldset .spftestimonial-field .spftestimonial-title{margin-bottom:5px}.control-section .spftestimonial-field-fieldset .spftestimonial-field h4{font-size:12px}.control-section .spftestimonial-field-accordion .spftestimonial-field,.control-section .spftestimonial-field-group .spftestimonial-field,.control-section .spftestimonial-field-repeater .spftestimonial-field,.control-section .spftestimonial-field-sortable .spftestimonial-field,.control-section .spftestimonial-field-tabbed .spftestimonial-field{padding:10px}.control-section .spftestimonial-field-accordion .spftestimonial-field .spftestimonial-title,.control-section .spftestimonial-field-group .spftestimonial-field .spftestimonial-title,.control-section .spftestimonial-field-repeater .spftestimonial-field .spftestimonial-title,.control-section .spftestimonial-field-sortable .spftestimonial-field .spftestimonial-title,.control-section .spftestimonial-field-tabbed .spftestimonial-field .spftestimonial-title{margin-bottom:5px}.control-section .spftestimonial-field-accordion .spftestimonial-field h4,.control-section .spftestimonial-field-group .spftestimonial-field h4,.control-section .spftestimonial-field-repeater .spftestimonial-field h4,.control-section .spftestimonial-field-sortable .spftestimonial-field h4,.control-section .spftestimonial-field-tabbed .spftestimonial-field h4{font-size:12px}.control-section .spftestimonial-dependency-control.hidden{display:none!important}.spftestimonial-modal{display:none;position:fixed;z-index:100101;top:0;left:0;width:100%;height:100%}.spftestimonial-modal-icon{z-index:100102}.spftestimonial-modal-table{display:table;width:100%;height:100%}.spftestimonial-modal-table-cell{display:table-cell;vertical-align:middle;margin:100px 0}.spftestimonial-modal-inner{position:relative;z-index:10;width:760px;height:750px;margin:0 auto;background-color:#fff}.spftestimonial-modal-content{position:relative;overflow:hidden;overflow-y:auto;height:595px}.spftestimonial-modal-content .spftestimonial-fieldset{margin-left:25%}.spftestimonial-modal-content .spftestimonial-title{width:20%}.spftestimonial-modal-content .spftestimonial-field{padding:15px 30px 15px 15px}.spftestimonial-modal-content a:active,.spftestimonial-modal-content a:focus{outline:0;-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none}.spftestimonial-modal-content h4{font-size:13px}.spftestimonial-modal-content h4 small{font-style:italic;font-weight:400;color:#aaa}.spftestimonial-modal-title{position:relative;background-color:#fcfcfc;border-bottom:1px solid #ddd;height:36px;font-size:16px;font-weight:600;line-height:36px;margin:0;padding:0 36px 0 16px}.spftestimonial-modal-header{width:100%;padding:14px 0;background-color:#f5f5f5;border-bottom:1px solid #eee}.spftestimonial-modal-header select{display:block;width:250px;margin:0 auto;font-size:13px;line-height:1;height:30px;min-height:30px;background-color:#fff}.spftestimonial-modal-close{color:#666;padding:0;position:absolute;top:0;right:0;width:36px;height:36px;text-align:center;background:0 0;border:none;cursor:pointer}.spftestimonial-modal-close:before{font:normal 20px/36px dashicons;content:"\f158";vertical-align:top;width:36px;height:36px}.spftestimonial-modal-close:hover{opacity:.5}.spftestimonial-modal-insert-wrapper{text-align:center;width:100%;padding:15px 0;background-color:#f5f5f5;border-top:1px solid #eee}.spftestimonial-modal-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background-color:#000;opacity:.5}.spftestimonial-text-desc,.spftestimonial-text-subtitle{font-weight:400;margin-top:0;color:#999}.spftestimonial-text-success{color:#2b542c}.spftestimonial-text-error{color:#d02c21}.spftestimonial-text-info{color:#31708f}.spftestimonial-text-warning{color:#ffb900}.spftestimonial-text-muted{color:#aaa}.spftestimonial-text-left{text-align:left}.spftestimonial-text-center{text-align:center}.spftestimonial-text-right{text-align:right}.spftestimonial-block-left{float:left}.spftestimonial-block-right{float:right}.spftestimonial-full-width{width:100%}.spftestimonial-full-half{width:50%}.spftestimonial-table{width:100%;display:table}.spftestimonial-table-cell{display:table-cell;vertical-align:middle}.spftestimonial-table-expanded{width:100%}.spftestimonial-nowrap{white-space:nowrap}.spftestimonial-text-highlight{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px}.spftestimonial-text-highlight-gray{padding:2px 4px;font-size:90%;background-color:#f0f0f0;-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px}.spftestimonial-hidden{display:none}.spftestimonial-hide{display:none!important}.spftestimonial-show{display:block!important}.spftestimonial-opacity{opacity:.5}.spftestimonial-warning-primary{color:#fff!important;border-color:#dc3545!important;background:#dc3545!important}.spftestimonial-warning-primary:focus,.spftestimonial-warning-primary:hover{border-color:#bd2130!important;background:#bd2130!important}.spftestimonial-warning-primary:focus{box-shadow:0 0 0 1px #fff,0 0 0 3px #bd2130!important}.spftestimonial-warning-primary:active{border-color:#bd2130!important;background:#bd2130!important}.spftestimonial-form-result{display:none;padding:12px;margin:15px 0 15px 0;background-color:#fff;border-left:4px solid #555;box-shadow:0 1px 1px rgb(0 0 0 / 10%);border-left-color:#46b450}.spftestimonial-form-show{display:block}.spftestimonial-form-warning{color:#8a6d3b;background-color:#faebcc}.spftestimonial-label-error{position:relative;top:-2px;display:inline-block;font-size:10px;line-height:10px;height:10px;width:10px;padding:1px;font-style:normal;text-align:center;color:#fff;vertical-align:middle;background-color:#e10000;-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px}.spftestimonial-no-option{padding:30px}.spftestimonial-input-number{-moz-appearance:textfield}.spftestimonial-input-number::-webkit-inner-spin-button,.spftestimonial-input-number::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.spftestimonial-scode-wrap-side{pointer-events:none;opacity:.7;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}span.spftestimonial-shortcode-selectable{background-color:rgba(82,179,217,.11);padding:10px 10px 10px 30px;display:inline-block;border:1px solid #d1e4ef;border-radius:2px;cursor:pointer;border-radius:3px;word-break:break-word;position:relative;width:80%}span.spftestimonial-shortcode-selectable::after{content:url(../images/copy.svg);width:16px;left:10px;top:50%;position:absolute;margin-top:-6px}.spftestimonial-scode-wrap-side:nth-child(2) span.spftestimonial-shortcode-selectable::after{margin-top:-15px}span.spftestimonial-shortcode-selectable~button:focus,span.spftestimonial-shortcode-selectable~button:hover{background:#e6e6e6;outline:0}span.spftestimonial-shortcode-selectable~button{background:#f5f5f5;padding:7px 12px;border:none;margin-left:8px;font-size:17px;display:inline-block;position:relative;cursor:pointer;border-radius:3px;border:1px solid #dbdbdb}.spftestimonial-scode-wrap-side p{margin-top:0}.spftestimonial-scode-wrap-side{margin-top:0;margin-bottom:16px;overflow:hidden}.spftestimonial-scode-wrap-side .spftestimonial-sc-title{margin-top:0;margin-bottom:7px;font-size:1.2em}.spftestimonial-scode-wrap-side .spftestimonial-tooltip{border-radius:4px;-webkit-border-radius:4px;position:absolute;top:-35px;left:-3px;background-color:#2f2e2e;text-transform:capitalize;font-weight:600;display:block;transition:all .2s;padding:0;height:24px;line-height:24px;width:46px;color:#fff;font-size:11px;text-align:center;display:none}.spftestimonial-scode-wrap-side .spftestimonial-tooltip::after{content:"";width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-top:6px solid #2f2e2e;position:absolute;top:98%;left:16px}.spftestimonial-scode-wrap-side .spftestimonial-tooltip{z-index:9999}.spftestimonial-scode-wrap-side button:hover .spftestimonial-tooltip{display:block}.spftestimonial-scode-wrap-side .spftestimonial-tooltip:hover{display:block;opacity:1}@media only screen and (max-width:1200px){.spftestimonial-metabox .spftestimonial-field .spftestimonial-title{float:none;width:100%;margin-bottom:10px}.spftestimonial-metabox .spftestimonial-field .spftestimonial-fieldset{margin-left:0}}@media only screen and (max-width:782px){.spftestimonial-header-inner{text-align:center}.spftestimonial-header-inner h1{width:100%;margin-bottom:10px}.spftestimonial-header-left,.spftestimonial-header-right,.spftestimonial-search{width:100%}.spftestimonial-search{text-align:center;margin-bottom:15px}.spftestimonial-footer{text-align:center}.spftestimonial-buttons{float:none}.spftestimonial-copyright{float:none;margin-top:10px}.spftestimonial-expand-all,.spftestimonial-nav,.spftestimonial-nav-background,.spftestimonial-reset-section{display:none!important}.spftestimonial-content{margin-left:0}.spftestimonial-section,.spftestimonial-section-title{display:block!important}.spftestimonial-field .spftestimonial-title{float:none;width:100%;margin-bottom:10px}.spftestimonial-field .spftestimonial-fieldset{margin-left:0}.spftestimonial-modal-inner{width:350px;height:400px}.spftestimonial-modal-content{height:237px}.spftestimonial-icon-dialog .spftestimonial-modal-inner{width:305px;height:380px}.spftestimonial-icon-dialog .spftestimonial-modal-content{height:267px}.spftestimonial-modal-icon .spftestimonial-modal-inner{width:330px;height:385px}.spftestimonial-modal-icon .spftestimonial-modal-content{height:252px}}.chosen-container{position:relative;display:inline-block;vertical-align:middle;font-size:13px;user-select:none}.chosen-container *{box-sizing:border-box}.chosen-container .chosen-drop{position:absolute;top:100%;z-index:1010;width:100%;border:1px solid #aaa;border-top:0;background:#fff;box-shadow:0 4px 5px rgba(0,0,0,.15);clip:rect(0,0,0,0);clip-path:inset(100% 100%)}.chosen-container.chosen-with-drop .chosen-drop{clip:auto;clip-path:none}.chosen-container a{cursor:pointer}.chosen-container .chosen-single .group-name,.chosen-container .search-choice .group-name{margin-right:4px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-weight:400;color:#999}.chosen-container .chosen-single .group-name:after,.chosen-container .search-choice .group-name:after{content:":";padding-left:2px;vertical-align:top}.chosen-container-single .chosen-single{position:relative;display:block;overflow:hidden;padding:0 0 0 8px;height:25px;border:1px solid #aaa;border-radius:5px;background-color:#fff;background:linear-gradient(#fff 20%,#f6f6f6 50%,#eee 52%,#f4f4f4 100%);background-clip:padding-box;box-shadow:0 0 3px #fff inset,0 1px 1px rgba(0,0,0,.1);color:#444;text-decoration:none;white-space:nowrap;line-height:24px}.chosen-container-single .chosen-default{color:#999}.chosen-container-single .chosen-single span{display:block;overflow:hidden;margin-right:26px;text-overflow:ellipsis;white-space:nowrap}.chosen-container-single .chosen-single-with-deselect span{margin-right:38px}.chosen-container-single .chosen-single abbr{position:absolute;top:6px;right:26px;display:block;width:12px;height:12px;font-size:1px}.chosen-container-single .chosen-single div{position:absolute;top:0;right:0;display:block;width:18px;height:100%}.chosen-container-single .chosen-single div b{display:block;width:100%;height:100%}.chosen-container-single .chosen-search{position:relative;z-index:1010;margin:0;padding:3px 4px;white-space:nowrap}.chosen-container-single .chosen-search input[type=text]{margin:1px 0;padding:4px 20px 4px 5px;width:100%;height:auto;outline:0;border:1px solid #aaa;font-size:1em;font-family:sans-serif;line-height:normal;border-radius:0}.chosen-container-single .chosen-drop{margin-top:-1px;border-radius:0 0 4px 4px;background-clip:padding-box}.chosen-container-single.chosen-container-single-nosearch .chosen-search{position:absolute;clip:rect(0,0,0,0);clip-path:inset(100% 100%)}.chosen-container .chosen-results{color:#444;position:relative;overflow-x:hidden;overflow-y:auto;margin:0 4px 4px 0;padding:0 0 0 4px;max-height:240px;-webkit-overflow-scrolling:touch}.chosen-container .chosen-results li{display:none;margin:0;padding:5px 6px;list-style:none;line-height:15px;word-wrap:break-word;-webkit-touch-callout:none}.chosen-container .chosen-results li.active-result{display:list-item;cursor:pointer}.chosen-container .chosen-results li.disabled-result{display:list-item;color:#ccc;cursor:default}.chosen-container .chosen-results li.highlighted{background-color:#3875d7;background-image:linear-gradient(#3875d7 20%,#2a62bc 90%);color:#fff}.chosen-container .chosen-results li.no-results{color:#777;display:list-item;background:#f4f4f4}.chosen-container .chosen-results li.group-result{display:list-item;font-weight:700;cursor:default}.chosen-container .chosen-results li.group-option{padding-left:15px}.chosen-container .chosen-results li em{font-style:normal;text-decoration:underline}.chosen-container-multi .chosen-choices{position:relative;overflow:hidden;margin:0;padding:0 5px;width:100%;height:auto;border:1px solid #aaa;background-color:#fff;background-image:linear-gradient(#eee 1%,#fff 15%);cursor:text}.chosen-container-multi .chosen-choices li{float:left;list-style:none}.chosen-container-multi .chosen-choices li.search-field{margin:0;padding:0;white-space:nowrap}.chosen-container-multi .chosen-choices li.search-field input[type=text]{margin:1px 0;padding:0;outline:0;border:0!important;background:0 0!important;box-shadow:none;color:#999;font-size:100%;font-family:sans-serif;line-height:normal;border-radius:0;width:25px;height:25px;min-height:25px}.chosen-container-multi .chosen-choices li.search-choice{position:relative;margin:3px 5px 3px 0;padding:3px 20px 3px 6px;border:1px solid #aaa;max-width:100%;border-radius:3px;background-color:#eee;background-image:linear-gradient(#f4f4f4 20%,#f0f0f0 50%,#e8e8e8 52%,#eee 100%);background-size:100% 19px;background-repeat:repeat-x;background-clip:padding-box;box-shadow:0 0 2px #fff inset,0 1px 0 rgba(0,0,0,.05);color:#333;line-height:13px;cursor:default}.chosen-container-multi .chosen-choices li.search-choice span{word-wrap:break-word;white-space:nowrap}.chosen-container-multi .chosen-choices li.search-choice .search-choice-close{position:absolute;top:0;right:0;display:block;width:12px;height:12px;font-size:1px}.chosen-container-multi .chosen-choices li.search-choice-disabled{padding-right:5px;border:1px solid #ccc;background-color:#e4e4e4;background-image:linear-gradient(#f4f4f4 20%,#f0f0f0 50%,#e8e8e8 52%,#eee 100%);color:#666}.chosen-container-multi .chosen-choices li.search-choice-focus{background:#d4d4d4}.chosen-container-multi .chosen-results{margin:0;padding:0}.chosen-container-active .chosen-single{border:1px solid #5897fb;box-shadow:0 0 5px rgba(0,0,0,.3)}.chosen-container-active.chosen-with-drop .chosen-single{border:1px solid #aaa;border-bottom-right-radius:0;border-bottom-left-radius:0;background-image:linear-gradient(#eee 20%,#fff 80%);box-shadow:0 1px 0 #fff inset}.chosen-container-active.chosen-with-drop .chosen-single div{border-left:none;background:0 0}.chosen-container-active .chosen-choices{border:1px solid #5897fb;box-shadow:0 0 5px rgba(0,0,0,.3)}.chosen-container-active .chosen-choices li.search-field input[type=text]{color:#222!important}.chosen-disabled{opacity:.5!important;cursor:default}.chosen-disabled .chosen-single{cursor:default}.chosen-disabled .chosen-choices .search-choice .search-choice-close{cursor:default}.chosen-rtl{text-align:right}.chosen-rtl .chosen-single{overflow:visible;padding:0 8px 0 0}.chosen-rtl .chosen-single span{margin-right:0;margin-left:26px;direction:rtl}.chosen-rtl .chosen-single-with-deselect span{margin-left:38px}.chosen-rtl .chosen-single div{right:auto;left:3px}.chosen-rtl .chosen-single abbr{right:auto;left:26px}.chosen-rtl .chosen-choices li{float:right}.chosen-rtl .chosen-choices li.search-field input[type=text]{direction:rtl}.chosen-rtl .chosen-choices li.search-choice{margin:3px 5px 3px 0;padding:3px 5px 3px 19px}.chosen-rtl .chosen-choices li.search-choice .search-choice-close{right:auto;left:4px}.chosen-rtl.chosen-container-single .chosen-results{margin:0 0 4px 4px;padding:0 4px 0 0}.chosen-rtl .chosen-results li.group-option{padding-right:15px;padding-left:0}.chosen-rtl.chosen-container-active.chosen-with-drop .chosen-single div{border-right:none}.chosen-rtl .chosen-search input[type=text]{padding:4px 5px 4px 20px;direction:rtl}.spftestimonial--image.pro-feature{position:relative;pointer-events:none}.spftestimonial--image.pro-feature::after{position:absolute;top:1px;right:1px;color:#a5a5a5;background-color:#e0e0e0;font-weight:500;padding:0 4px;content:'PRO';text-align:center;font-size:8px}.spftestimonial-field-subheading.pro_heading{opacity:.7}.pro_only_field,.sp-field-icon-select.spftestimonial-pro-only,.spftestimonial-field-button_set .spftestimonial--button.spftestimonial-pro-only,.spftestimonial-field-checkbox.pro_only_field,.spftestimonial-field-color.pro_only_field,.spftestimonial-field-image_select .spftestimonial--image.spftestimonial-pro-only,.spftestimonial-field.spftestimonial-field-text.pro_only_field{pointer-events:none;opacity:.8}.sp-field-icon-select.spftestimonial-pro-only{opacity:.5}.spftestimonial-field-repeater.social-profile-repeater .spftestimonial-repeater-wrapper .spftestimonial-repeater-item{display:grid;grid-template-columns:9fr 1fr}.spftestimonial-field-repeater.social-profile-repeater .spftestimonial-repeater-content{display:grid;grid-template-columns:1fr 5fr}.spftestimonial-field-repeater.social-profile-repeater .spftestimonial-repeater-item{max-width:600px}.spftestimonial-field-repeater.social-profile-repeater .spftestimonial-repeater-helper{border-left:0;background-color:transparent}.spftestimonial-field-repeater.social-profile-repeater .spftestimonial-repeater-helper-inner{width:100px;line-height:4em}.spftestimonial-field.spftestimonial-field-image_select.theme_style img{width:400px}.spftestimonial-field.spftestimonial-field-image_select.theme_style .spftestimonial-fieldset{margin-left:0}.spftestimonial-field.spftestimonial-field-image_select.theme_style .spftestimonial-title{width:100%;margin-bottom:30px;float:none}.spftestimonial-field.spftestimonial-field-image_select.theme_style .spftestimonial--image{margin:0 24px 24px 0}.spftestimonial-field-switcher.pro_switcher .spftestimonial--ball::after{content:"PRO";position:relative;text-align:center;width:24px;float:right;font-weight:600;font-size:8px;color:#a5a5a5;opacity:1;line-height:18px}.pro_switcher .spftestimonial--switcher{background-color:#cbcfd0;pointer-events:none}.sp-field-icon-select.spftestimonial-pro-only:last-child:after,.spftestimonial-field-button_set .spftestimonial--button.spftestimonial-pro-only:after{position:absolute;content:'';top:0;right:0;color:#999;background-color:#e0e0e0;font-weight:500;padding:0 4px;content:"PRO";text-align:center;font-size:8px;line-height:11px;opacity:1}.client_image_style.spftestimonial-field-image_select img{width:70px}.sp-field-icon-select.spftestimonial-pro-only:last-child:after{content:"PRO";color:#444}.spftestimonial-field.spftestimonial-field-checkbox .spftestimonial-help{bottom:15px;right:auto;top:auto}.spftestimonial-field.spftestimonial-field-checkbox .spftestimonial-help.spftestimonial-title-help{position:relative;bottom:0}.spftestimonial-field.spftestimonial-field-submessage.pro_only_field{opacity:.7}.spftestimonial-field-sortable.form_fields .spftestimonial--sortable .spftestimonial--sortable-item{margin:0;border:0}.spftestimonial-field-sortable.form_fields .spftestimonial--sortable-content>.spftestimonial-field{padding:0}.spftestimonial-field-sortable.form_fields .spftestimonial--sortable-helper{display:none}.form_fields .spftestimonial-accordion-items{position:relative}.form_fields .spftestimonial-accordion-item::after{position:absolute;top:18px;right:16px;content:"\f0b2";display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.spftestimonial-field-form_upper_section{background:#f5fcff;padding:50px 0 70px}.spftestimonial-field-form_upper_section .sp-tfree-help .sp-tfree-pro-features .feature-section span.dashicons{height:22px;width:22px;font-size:16px;line-height:22px}.spftestimonial-field-form_upper_section div.sp-tfree-help .sp-tfree-pro-features .feature-section{margin-bottom:40px;margin-left:auto;margin-right:auto;text-align:center;max-width:1200px}.spftestimonial-field-form_upper_section div.sp-tfree-help .sp-tfree-pro-features .feature-section .sp-tfree-feature{box-shadow:none;margin:0;border:0 solid;background-color:transparent}div.sp-tfree-help .sp-tfree-pro-features h1{font-size:30px;font-weight:500;color:#444}div.sp-tfree-help .sp-tfree-pro-features .sp-tfree-pro-subtitle{font-size:18px;font-weight:400}.spftestimonial-field-form_upper_section .sp-tfree-upgrade a.tfree-upgrade-btn:hover{background:#0a73a7}.spftestimonial-field-form_upper_section .sp-tfree-upgrade a.tfree-upgrade-btn{transition:all .5s;background:#1595ce;padding:0 25px;line-height:46px;display:block;color:#fff;border-radius:3px;font-weight:600;display:inline-block;text-align:center}.spftestimonial-field-form_upper_section .sp-tfree-pro-features .feature-section .sp-tfree-feature h3{color:#2d4d5b}.spftestimonial-field-form_upper_section .sp-tfree-help .feature-section .sp-tfree-feature{padding:0 0 10px;text-align:left}#sp_tpro_form_elements_options .handle-actions.hide-if-no-js,#sp_tpro_form_options .postbox-header,div#sp_tfree_form_upper_section .postbox-header,div#sp_tpro_form_elements_options .handle-actions.hide-if-no-js{display:none}#sp_tpro_form_options .spftestimonial-nav-metabox .spftestimonial--sortable-item .spftestimonial-accordion-title{pointer-events:none}#sp_tpro_form_options .spftestimonial-field-accordion .spftestimonial-accordion-title,#sp_tpro_form_options .spftestimonial-field-sortable.form_fields .spftestimonial--sortable-content>.spftestimonial-field,#sp_tpro_form_options .spftestimonial-nav-metabox,#sp_tpro_form_options .spftestimonial-nav-metabox li a{pointer-events:none}div#spftestimonial-section-sp_tpro_form_elements_options_1 .spftestimonial-field-checkbox ul{max-height:100%}#sp_tpro_form_options .spftestimonial-metabox .spftestimonial-nav{display:block;position:relative;z-index:10;float:left;width:225px}#sp_tpro_form_options .spftestimonial-metabox .spftestimonial-content{position:relative;margin-left:225px;background-color:#fff;-moz-transition:opacity .2s;-o-transition:opacity .2s;-webkit-transition:opacity .2s;transition:opacity .2s}#sp_tpro_form_options .spftestimonial-metabox .spftestimonial-nav ul li{display:list-item}#sp_tpro_form_options .spftestimonial-metabox .spftestimonial-nav ul li a{color:#464646;background-color:#f5f5f5;border-top:0;border-right:0;border-bottom:1px solid #ccd0d4;margin-bottom:0;padding:15px 15px;text-transform:uppercase;font-weight:600}#sp_tpro_form_options .spftestimonial-metabox .spftestimonial-nav ul li .spftestimonial-section-active{box-shadow:3px 0 0 0 #1595ce inset;background-color:#fff;color:#1595ce}#sp_tpro_form_options .spftestimonial-metabox .spftestimonial-nav-background{background-color:#f5f5f5;border-right:1px solid #ccd0d4;display:block}#sp_tpro_form_options .spftestimonial-field-sortable .spftestimonial-field-text input{max-width:400px}.spftestimonial-field.spftestimonial-field-button_set.spt_export{margin-top:0;padding-top:0}.spftestimonial-field-button_set.spt_export .spftestimonial--button:hover,.spftestimonial-field.spftestimonial-field-custom_import.spt_import button:hover{background:#135e96;border-color:#135e96;color:#fff}.spftestimonial-field-button_set.spt_export .spftestimonial--button,.spftestimonial-field.spftestimonial-field-custom_import.spt_import button{background:#2271b1;border-color:#2271b1;color:#fff;text-decoration:none;text-shadow:none;display:inline-block;text-decoration:none;font-size:13px;line-height:2.15384615;min-height:30px;margin:0;padding:0 10px;cursor:pointer;border-width:1px;border-style:solid;-webkit-appearance:none;border-radius:3px;white-space:nowrap;box-sizing:border-box}.sp-lcp-options .spftestimonial-field-select .spftestimonial-fieldset{position:relative}.spftestimonial-field.spftestimonial-field-custom_import.spt_import .spftestimonial-fieldset{position:relative}.spftestimonial-field.spftestimonial-field-custom_import.spt_import p{padding-bottom:0;margin-bottom:1px}.spftestimonial-field.spftestimonial-field-custom_import.spt_import button{margin-top:10px;padding-bottom:0}.spftestimonial-field.spftestimonial-field-custom_import.spt_import .spftestimonial-help{cursor:help;position:absolute;top:80%;transform:translateY(-50%);padding:5px;font-size:14px;color:#aaa;width:15px;left:64px}.spftestimonial-field.spftestimonial-field-select.spt_post_forms_id .chosen-container .chosen-drop,.spftestimonial-field.spftestimonial-field-select.spt_post_id .chosen-container .chosen-drop{max-width:400px}.spftestimonial-field.spftestimonial-field-select.spt_post_forms_id .chosen-container,.spftestimonial-field.spftestimonial-field-select.spt_post_id .chosen-container{max-width:400px}.spftestimonial-field.spftestimonial-field-select.spt_post_forms_id,.spftestimonial-field.spftestimonial-field-select.spt_post_id{padding-top:0}.spftestimonial_tools .spftestimonial-header-inner h1.export-import img{height:24px}.spftestimonial_tools .spftestimonial-nav-options li:nth-child(1) a{background-image:url(../images/export-icon.svg)}.spftestimonial_tools .spftestimonial-nav-options li:nth-child(2) a{background-image:url(../images/import.svg)}.spftestimonial_tools .spftestimonial-nav-options li:nth-child(1) a.spftestimonial-section-active{background-image:url(../images/file-export-icon1.svg)}.spftestimonial_tools .spftestimonial-nav-options li:nth-child(2) a.spftestimonial-section-active{background-image:url(../images/file-import-icon1.svg)}.spt-main-class.spftestimonial-theme-light.spftestimonial_tools .spftestimonial-nav-options ul li a{padding:15px 30px;background-size:14px;background-position:10px center;background-repeat:no-repeat}#sp_tpro-preview-box{overflow-x:auto;padding:0 20px;resize:vertical}#sp_tpro_live_preview .postbox-header .handle-actions .handle-order-higher,#sp_tpro_live_preview .postbox-header .handle-actions .handle-order-lower{display:none}
1
+ .spftestimonial{position:relative}.spftestimonial label{padding:0;margin:0;display:inline-block}.spftestimonial-ab-icon{top:2px}.text-center{text-align:center}#screen-meta-links+.spftestimonial-options{margin-top:40px}.spftestimonial-options{margin-top:20px;margin-right:20px}.spftestimonial-header{position:relative}.spftestimonial-header-inner{padding:25px;transition:box-shadow .3s ease}.spftestimonial-header-inner h1{float:left;font-size:20px;line-height:35px;font-weight:600;margin:0}.spftestimonial-header-inner h1 small{font-size:11px;font-weight:500}.spftestimonial-sticky .spftestimonial-header-inner{position:fixed;z-index:99;top:32px;box-shadow:0 5px 10px rgba(0,0,0,.1)}.spftestimonial-buttons{float:right}.spftestimonial-buttons .button{margin:0 2px;line-height:26px}.spftestimonial-buttons .button:focus{outline:0!important;box-shadow:none!important}.spftestimonial-buttons .spftestimonial-save{min-width:72px}.spftestimonial-header-left{float:left}.spftestimonial-header-right{float:right}.spftestimonial-nav{display:block;position:relative;z-index:10;float:left}.spftestimonial-nav ul{clear:left;margin:0;list-style-type:none}.spftestimonial-nav ul li{margin-bottom:0}.spftestimonial-nav ul li a{font-size:13px;position:relative;display:block;padding:14px 12px;text-decoration:none;transition-property:color,background;transition-duration:.2s;transition-timing-function:ease}.spftestimonial-nav ul li a:focus{outline:0;box-shadow:none}.spftestimonial-nav ul li .spftestimonial-arrow:after{content:"\f054";display:inline-block;font-family:"Font Awesome 5 Pro","Font Awesome 5 Free",FontAwesome;font-weight:900;font-size:9px;line-height:1;position:absolute;right:10px;top:50%;margin-top:-4px}.spftestimonial-nav ul li.spftestimonial-tab-expanded .spftestimonial-arrow:after{transform:rotate(90deg)}.spftestimonial-nav ul li.spftestimonial-tab-expanded ul{display:block}.spftestimonial-nav ul ul{display:none;position:relative}.spftestimonial-nav ul ul li a{font-size:12px;padding:12px 14px 12px 24px}.spftestimonial-nav .spftestimonial-tab-icon{width:20px;margin-right:5px;font-size:13px;text-align:center}.spftestimonial-nav .spftestimonial-label-error{margin-left:4px;vertical-align:top}.spftestimonial-nav-normal{width:225px}.spftestimonial-nav-normal+.spftestimonial-content{margin-left:225px}.spftestimonial-nav-inline{width:100%}.spftestimonial-nav-inline ul li{display:inline-block;vertical-align:top}.spftestimonial-nav-background{position:absolute;top:0;left:0;bottom:0;z-index:9;width:225px}.spftestimonial-wrapper{position:relative}.spftestimonial-content{position:relative;background-color:#fff}.spftestimonial-sections{float:left;width:100%}.spftestimonial-section-title{display:none;padding:20px 30px;background-color:#f5f5f5;border-top:1px solid #eee;border-bottom:1px solid #eee}.spftestimonial-section-title h3{margin:0;padding:0;font-size:13px;font-weight:700;text-transform:uppercase}.spftestimonial-section-title .spftestimonial-section-icon{margin-right:5px}.spftestimonial-footer{padding:20px;font-size:11px}.spftestimonial-copyright{float:left;margin-top:5px}.spftestimonial-search-all .spftestimonial-nav,.spftestimonial-search-all .spftestimonial-nav-background,.spftestimonial-show-all .spftestimonial-nav,.spftestimonial-show-all .spftestimonial-nav-background{display:none}.spftestimonial-search-all .spftestimonial-content,.spftestimonial-show-all .spftestimonial-content{margin-left:0}.spftestimonial-search-all .spftestimonial-section,.spftestimonial-search-all .spftestimonial-section-title,.spftestimonial-show-all .spftestimonial-section,.spftestimonial-show-all .spftestimonial-section-title{display:block!important}.spftestimonial-search-all .spftestimonial-section-title{display:none!important}.spftestimonial-expand-all{float:left;padding:0 8px;margin-right:4px;z-index:1;font-size:13px;line-height:30px;cursor:pointer;user-select:none;border-radius:2px;transition:all .2s}.spftestimonial-expand-all span{font-size:11px;vertical-align:middle}.spftestimonial-search{float:left}.spftestimonial-search input{margin:0 2px 0 0;border:none;font-size:12px;line-height:30px;min-height:30px;text-align:inherit;padding:0 10px;border-radius:2px;box-shadow:none}.spftestimonial-search input:focus{box-shadow:none}.spftestimonial-saving .spftestimonial-buttons,.spftestimonial-saving .spftestimonial-content{cursor:default;pointer-events:none;opacity:1}.spftestimonial-metabox{margin:-6px -12px -12px -12px}.spftestimonial-metabox .spftestimonial-field{padding:20px}.spftestimonial-metabox .spftestimonial-section-title{padding:20px}.block-editor-page .spftestimonial-metabox{margin:-6px -14px -14px -14px}.block-editor-editor-skeleton__content .spftestimonial-metabox{border-left:1px solid #e2e4e7;border-right:1px solid #e2e4e7}.spftestimonial-sections-reset{float:left;width:100%;text-align:right;border-top:1px solid #eee}.spftestimonial-sections-reset .spftestimonial-button-cancel,.spftestimonial-sections-reset input{display:none}.spftestimonial-sections-reset label{padding:10px}.spftestimonial-sections-reset span{-webkit-user-select:none;user-select:none}.spftestimonial-sections-reset input:checked~.spftestimonial-button-reset{display:none}.spftestimonial-sections-reset input:checked~.spftestimonial-button-cancel{display:inline-block}#side-sortables .spftestimonial-section-title{padding:12px}#side-sortables .spftestimonial-field{padding:10px 15px}#side-sortables .spftestimonial-field .spftestimonial-title{float:none;width:100%;margin-bottom:6px}#side-sortables .spftestimonial-field .spftestimonial-fieldset{float:none;width:100%}#side-sortables .spftestimonial-field-text input{width:100%}#side-sortables .spftestimonial-notice{padding:10px 15px}.spftestimonial-comment-metabox{margin:-6px -12px -12px -12px}.spftestimonial-comment-metabox .spftestimonial-field{padding:20px}.spftestimonial-comment-metabox .spftestimonial-section-title{padding:20px}.spftestimonial-tooltip{position:absolute;z-index:5000001;font-size:12px;line-height:1.4;text-align:left;text-decoration:none;padding:6px 12px;max-width:200px;color:#fff;background-color:#000;background-color:rgba(0,0,0,.85);border-radius:4px}.spftestimonial-theme-dark .spftestimonial-header-inner{background-color:#050505}.spftestimonial-theme-dark .spftestimonial-header-inner h1{color:#fff}.spftestimonial-theme-dark .spftestimonial-header-inner h1 small{color:#555}.spftestimonial-theme-dark .spftestimonial-expand-all{color:#999;background-color:#222}.spftestimonial-theme-dark .spftestimonial-expand-all:hover{color:#fff;background-color:#333}.spftestimonial-theme-dark .spftestimonial-search input{color:#fff;background-color:#222}.spftestimonial-theme-dark .spftestimonial-search:focus{background-color:#444}.spftestimonial-theme-dark .spftestimonial-search::-webkit-input-placeholder{color:#666}.spftestimonial-theme-dark .spftestimonial-nav ul li a{color:#999;border-color:#2f2f2f;background-color:#222}.spftestimonial-theme-dark .spftestimonial-nav ul li .spftestimonial-active .fa{color:#1595ce}.spftestimonial-theme-dark .spftestimonial-nav ul li .spftestimonial-active{color:#444;background-color:#fff;box-shadow:0 3px 0 0 #1595ce inset}.spftestimonial-theme-dark .spftestimonial-nav ul ul li a{border-color:#2f2f2f;background-color:#191919}.spftestimonial-theme-dark .spftestimonial-nav ul ul li .spftestimonial-active{background-color:#101010}.spftestimonial-theme-dark .spftestimonial-nav ul ul:before{background-color:rgba(34,34,34,.75)}.spftestimonial-theme-dark .spftestimonial-nav>ul>li:last-child>a{border:none}.spftestimonial-theme-dark .spftestimonial-nav-normal ul li a{border-bottom-width:1px;border-bottom-style:solid}.spftestimonial-theme-dark .spftestimonial-nav-normal ul li .spftestimonial-active:after{content:" ";position:absolute;right:0;top:50%;height:0;width:0;pointer-events:none;border:solid transparent;border-right-color:#fff;border-width:4px;margin-top:-4px}.spftestimonial-theme-dark .spftestimonial-nav-inline{background:#f1f1f1}.spftestimonial-theme-dark .spftestimonial-nav-inline ul li a{background-color:#1595ce;font-size:14px;padding:15px 15px;line-height:1.4;color:#fff;border-right:1px solid #e2e2e1;font-weight:600;text-transform:uppercase}.spftestimonial-theme-dark .spftestimonial-nav-inline ul li .spftestimonial-active:after{content:" ";position:absolute;left:50%;bottom:0;height:0;width:0;pointer-events:none;border:solid transparent;border-bottom-color:#fff;border-width:4px;margin-left:-4px}.spftestimonial-theme-dark .spftestimonial-nav-background{background-color:#222}.spftestimonial-theme-dark .spftestimonial-footer{color:#555;background-color:#050505}.spftestimonial-field-border .spftestimonial--inputs{margin-top:19px}.spftestimonial-theme-light .spftestimonial-container{border:1px solid #ccd0d4;box-shadow:0 0 15 rgba(0,0,0,.04)}.spftestimonial-theme-light .spftestimonial-header-inner{border-bottom:1px solid #ccd0d4;background-color:#f5f5f5;background:linear-gradient(#fefefe,#f5f5f5)}.spftestimonial-theme-light .spftestimonial-header-inner h1 small{color:#999}.spftestimonial-theme-light .spftestimonial-expand-all{color:#999;background-color:#eee}.spftestimonial-theme-light .spftestimonial-expand-all:hover{color:#555}.spftestimonial-theme-light .spftestimonial-search input{color:#555;background-color:#eee}.spftestimonial-theme-light .spftestimonial-search input::-webkit-input-placeholder{color:#999}.spftestimonial-theme-light .spftestimonial-nav ul li a{font-weight:500;color:#444;background-color:#f5f5f5;text-transform:uppercase}.spftestimonial-theme-light .spftestimonial-nav ul li a:hover{color:#111;background-color:#fff}.spftestimonial-theme-light .spftestimonial-nav ul li .spftestimonial-active{color:#111;background-color:#fff}.spftestimonial-theme-light .spftestimonial-nav ul ul li a{background-color:#eee}.spftestimonial-theme-light .spftestimonial-nav-normal>ul{margin-bottom:-1px}.spftestimonial-theme-light .spftestimonial-nav-normal>ul li a{border-bottom:1px solid #ccd0d4;border-right:1px solid #ccd0d4}.spftestimonial-theme-light .spftestimonial-nav-normal>ul li .spftestimonial-active{border-right-color:#fff}.spftestimonial-theme-light .spftestimonial-nav-inline{background-color:#f5f5f5;border-bottom:1px solid #ccd0d4}.spftestimonial-theme-light .spftestimonial-nav-inline>ul{margin-bottom:-1px}.spftestimonial-theme-light .spftestimonial-nav-inline>ul li a{text-align:center;border-right:1px solid #ccd0d4;border-bottom:1px solid #ccd0d4}.spftestimonial-theme-light .spftestimonial-nav-inline>ul li .spftestimonial-active{border-bottom-color:#fff}.spftestimonial-theme-light .spftestimonial-nav-inline>ul ul{display:none!important}.spftestimonial-theme-light .spftestimonial-nav-inline .spftestimonial-arrow:after{display:none}.spftestimonial-theme-light .spftestimonial-nav-background{background-color:#f5f5f5;border-right:1px solid #ccd0d4}.spftestimonial-theme-light .spftestimonial-footer{color:#555;border-top:1px solid #ccd0d4;background-color:#f5f5f5;background:linear-gradient(#fafafa,#f5f5f5)}.spftestimonial-field{position:relative;padding:30px}.spftestimonial-field+.spftestimonial-field{border-top:none}.spftestimonial-field p:first-child{margin-top:0}.spftestimonial-field p:last-child{margin-bottom:0}.spftestimonial-field:after,.spftestimonial-field:before{content:" ";display:table}.spftestimonial-field:after{clear:both}.spftestimonial-field h4{margin-top:0}.spftestimonial-field .spftestimonial-title{position:relative;width:20%;float:left}.spftestimonial-field .spftestimonial-title h4{margin:0;color:#23282d}.spftestimonial-field .spftestimonial-fieldset{float:right;width:calc(80% - 20px)}.spftestimonial-pseudo-field{padding:0 5px 0 0!important;display:inline-block}.spftestimonial-pseudo-field+.spftestimonial-pseudo-field{border:0}.spftestimonial-pseudo-field pre{display:none}.spftestimonial-field-accordion .spftestimonial-accordion-item{position:relative;margin-bottom:5px}.spftestimonial-field-accordion .spftestimonial-accordion-item:last-child{margin-bottom:0}.spftestimonial-field-accordion .spftestimonial-accordion-item h4{font-size:1em}.spftestimonial-field-accordion .spftestimonial-accordion-title{display:block;cursor:pointer;position:relative;margin:0;padding:15px;min-height:0;font-size:100%;user-select:none;border:1px solid #ccd0d4;background-color:#fafafa;box-shadow:0 1px 1px rgba(0,0,0,.04);transition:border-color .15s}.spftestimonial-field-accordion .spftestimonial-accordion-title:active,.spftestimonial-field-accordion .spftestimonial-accordion-title:focus,.spftestimonial-field-accordion .spftestimonial-accordion-title:hover{outline:0;border-color:#999}.spftestimonial-field-accordion .spftestimonial-accordion-title .spftestimonial--icon{width:20px;text-align:center;margin-right:2px}.spftestimonial-field-accordion .spftestimonial-accordion-icon{width:16px;text-align:center}.spftestimonial-field-accordion .spftestimonial-accordion-content{display:none;padding:0;border:1px solid #ccd0d4;border-top:none;background-color:#fff;box-shadow:0 1px 1px rgba(0,0,0,.04)}.spftestimonial-field-accordion .spftestimonial-accordion-content>.spftestimonial-field{padding:15px}.spftestimonial-field-accordion .spftestimonial-accordion-open{display:block}.spftestimonial-field-custom_size.disabled .spftestimonial-fieldset{pointer-events:none;opacity:.7}.spftestimonial-field-custom_size.disabled .spftestimonial-fieldset .spftestimonial--input:after{content:'Pro';text-transform:uppercase;line-height:30px;margin-left:6px;color:#444}.spftestimonial-field-border .spftestimonial--inputs,.spftestimonial-field-column .spftestimonial--inputs,.spftestimonial-field-custom_size .spftestimonial--inputs,.spftestimonial-field-dimensions .spftestimonial--inputs,.spftestimonial-field-spacing .spftestimonial--inputs{float:left;display:flex;flex-wrap:wrap}.spftestimonial-field-border .spftestimonial--input,.spftestimonial-field-column .spftestimonial--input,.spftestimonial-field-custom_size .spftestimonial--input,.spftestimonial-field-dimensions .spftestimonial--input,.spftestimonial-field-spacing .spftestimonial--input{display:flex;padding-right:6px;padding-bottom:4px;box-sizing:border-box}.spftestimonial-field-border .spftestimonial--input select,.spftestimonial-field-custom_size .spftestimonial--input select,.spftestimonial-field-dimensions .spftestimonial--input select,.spftestimonial-field-spacing .spftestimonial--input select{margin:0}.spftestimonial-field-border .spftestimonial--input input,.spftestimonial-field-column .spftestimonial--input input,.spftestimonial-field-custom_size .spftestimonial--input input,.spftestimonial-field-dimensions .spftestimonial--input input,.spftestimonial-field-spacing .spftestimonial--input input{position:relative;z-index:1;margin:0;width:65px;max-width:100%;text-align:center}.spftestimonial-field-border .spftestimonial--color,.spftestimonial-field-custom_size .spftestimonial--color,.spftestimonial-field-dimensions .spftestimonial--color,.spftestimonial-field-spacing .spftestimonial--color{float:left}.spftestimonial-field-border .spftestimonial--label,.spftestimonial-field-column .spftestimonial--label,.spftestimonial-field-custom_size .spftestimonial--label,.spftestimonial-field-dimensions .spftestimonial--label,.spftestimonial-field-spacing .spftestimonial--label{display:flex;flex-direction:column;justify-content:center;user-select:none;min-width:20px;max-width:100%;padding:0 4px;font-size:12px;text-align:center;color:#555;border:1px solid #7b776c;background-color:#f5f5f5}.spftestimonial-field-border .spftestimonial--icon,.spftestimonial-field-column .spftestimonial--icon,.spftestimonial-field-custom_size .spftestimonial--icon,.spftestimonial-field-dimensions .spftestimonial--icon,.spftestimonial-field-spacing .spftestimonial--icon{border-right:0;border-radius:4px 0 0 4px}.spftestimonial-field-border .spftestimonial--icon+input,.spftestimonial-field-column .spftestimonial--icon+input,.spftestimonial-field-custom_size .spftestimonial--icon+input,.spftestimonial-field-dimensions .spftestimonial--icon+input,.spftestimonial-field-spacing .spftestimonial--icon+input{border-top-left-radius:0!important;border-bottom-left-radius:0!important}.spftestimonial-field-border .spftestimonial--unit,.spftestimonial-field-column .spftestimonial--unit,.spftestimonial-field-custom_size .spftestimonial--unit,.spftestimonial-field-dimensions .spftestimonial--unit,.spftestimonial-field-spacing .spftestimonial--unit{border-left:0;border-radius:0 4px 4px 0}.spftestimonial-field-border .spftestimonial--is-unit,.spftestimonial-field-column .spftestimonial--is-unit,.spftestimonial-field-custom_size .spftestimonial--is-unit,.spftestimonial-field-dimensions .spftestimonial--is-unit,.spftestimonial-field-spacing .spftestimonial--is-unit{border-top-right-radius:0!important;border-bottom-right-radius:0!important}.spftestimonial-field-button_set .spftestimonial--buttons{display:inline-block}.spftestimonial-field-button_set .spftestimonial--button{position:relative;z-index:1;float:left;cursor:pointer;padding:7px 14px;min-width:16px;text-align:center;color:#555;border:1px solid #ccc;background-color:#f7f7f7;user-select:none;box-shadow:0 1px 0 rgba(0,0,0,.1)}.spftestimonial-field-button_set .spftestimonial--button:first-child{border-radius:4px 0 0 4px}.spftestimonial-field-button_set .spftestimonial--button:last-child{border-radius:0 4px 4px 0}.spftestimonial-field-button_set .spftestimonial--button:not(:first-child){margin-left:-1px}.spftestimonial-field-button_set .spftestimonial--button:hover{background-color:#eee}.spftestimonial-field-button_set .spftestimonial--active,.spftestimonial-field-button_set .spftestimonial--active:hover{z-index:2;color:#fff;border-color:#006799;background-color:#0085ba}.spftestimonial-field-button_set input{display:none}.spftestimonial-field-checkbox ul,.spftestimonial-field-radio ul{margin:0;padding:0;list-style-type:none;overflow-y:auto}.spftestimonial-field-checkbox ul li,.spftestimonial-field-radio ul li{margin-bottom:6px}.spftestimonial-field-checkbox ul ul,.spftestimonial-field-radio ul ul{max-height:none}.spftestimonial-field-checkbox ul ul li,.spftestimonial-field-radio ul ul li{margin-left:8px}.spftestimonial-field-checkbox ul ul li:first-child,.spftestimonial-field-radio ul ul li:first-child{margin-left:0}.spftestimonial-field-checkbox input,.spftestimonial-field-radio input{margin:0 1px}.spftestimonial-field-checkbox .spftestimonial--inline-list li,.spftestimonial-field-radio .spftestimonial--inline-list li{display:inline-block;margin-right:15px}.spftestimonial-field-checkbox .spftestimonial--text,.spftestimonial-field-radio .spftestimonial--text{margin-left:5px;vertical-align:middle}.spftestimonial-field-checkbox .spftestimonial-checker,.spftestimonial-field-radio .spftestimonial-checker{cursor:pointer}.spftestimonial-field-code_editor .CodeMirror{width:100%;height:400px}.spftestimonial-field-code_editor .cm-s-default{border:1px solid #ccd0d4}.spftestimonial-field-code_editor textarea{width:100%;height:400px}.spftestimonial-field-color>input{opacity:.75;width:115px;max-width:100%}.spftestimonial-field-color .button.wp-picker-clear{padding:0 8px;margin-left:6px;line-height:2.54545455;min-height:30px}.spftestimonial-field-color_group .spftestimonial--left{float:left;margin-right:10px;margin-bottom:5px}.spftestimonial-field-color_group .spftestimonial--title{color:#999;margin-bottom:5px}.spftestimonial-field-fieldset .spftestimonial-fieldset-content{border:1px solid #ccd0d4;background-color:#fff;box-shadow:0 1px 1px rgba(0,0,0,.04)}.spftestimonial-field-fieldset .spftestimonial-fieldset-content>.spftestimonial-field{padding:15px}.spftestimonial-field-fieldset .spftestimonial-field-subheading{font-size:13px}.spftestimonial-field-icon_select .spftestimonial--image,.spftestimonial-field-image_select .spftestimonial--image{display:inline-block;margin:0 5px 5px 0}.spftestimonial-field-image_select .spftestimonial--inline-list .spftestimonial--image{display:block}.spftestimonial-field-icon_select figure,.spftestimonial-field-image_select figure{cursor:pointer;position:relative;display:inline-block;max-width:100%;margin:0;vertical-align:bottom;border:2px solid transparent;background-color:#fff;user-select:none;transition:all .2s}.spftestimonial-field-icon_select figure:before,.spftestimonial-field-image_select figure:before{position:absolute;top:-2px;right:-2px;text-align:center;font-size:10px;font-family:"Font Awesome 5 Pro","Font Awesome 5 Free",FontAwesome;font-weight:900;content:"\f00c";width:16px;height:16px;line-height:14px;opacity:0;color:#fff;background-color:#1595ce;transition:opacity .2s}.spftestimonial-field-icon_select .spftestimonial--active figure,.spftestimonial-field-image_select .spftestimonial--active figure{border-color:#1595ce;outline:3px solid #1595ce;outline-offset:-3px}.spftestimonial-field-icon_select .spftestimonial--active figure:before,.spftestimonial-field-image_select .spftestimonial--active figure:before{opacity:1}.spftestimonial-field-image_select img{width:110px;vertical-align:top}.spftestimonial-field-icon_select input,.spftestimonial-field-image_select input{display:none}.spftestimonial-field-icon_select .spftestimonial--image{cursor:pointer;position:relative;display:inline-block;text-align:center;max-width:100%;margin:0 16px 7px 0;vertical-align:top;background-color:#fff;user-select:none;-webkit-user-select:none;-moz-transition:all .2s;-o-transition:all .2s;-webkit-transition:all .2s;transition:all .2s;border:2px solid #f4f4f4;width:35px;height:35px;text-align:center;line-height:35px;font-size:20px}.sp-field-icon-select .fa{color:#888}.spftestimonial-field-icon_select .spftestimonial--active{border-color:#1595ce}.spftestimonial-field-repeater .spftestimonial-field-text input{width:100%}.spftestimonial-field-repeater .spftestimonial-repeater-hidden{display:none!important}.spftestimonial-field-repeater .spftestimonial-repeater-wrapper .spftestimonial-repeater-item{display:table;width:100%;margin-bottom:5px;border:1px solid #eee}.spftestimonial-field-repeater .spftestimonial-repeater-wrapper .spftestimonial-repeater-item h4{font-size:1em}.spftestimonial-field-repeater .spftestimonial-repeater-content{width:100%;display:table-cell;vertical-align:middle;background-color:#fff}.spftestimonial-field-repeater .spftestimonial-repeater-content>.spftestimonial-field{padding:15px}.spftestimonial-field-repeater .spftestimonial-repeater-helper{width:100%;display:table-cell;vertical-align:middle;text-align:center;font-size:14px;line-height:1em;border-left:1px solid #eee;background-color:#f7f7f7}.spftestimonial-field-repeater .spftestimonial-repeater-helper i{display:inline-block;cursor:pointer;color:#999;padding:5px}.spftestimonial-field-repeater .spftestimonial-repeater-helper i:hover{color:#555}.spftestimonial-field-repeater .spftestimonial-repeater-helper-inner{width:75px}.spftestimonial-field-repeater .spftestimonial-repeater-alert{display:none;margin-bottom:5px;padding:10px 20px;color:#a94442;border:1px solid #ebccd1;background-color:#f2dede}.spftestimonial-field-repeater .widget-placeholder{height:50px;margin-bottom:3px;border:1px dashed #f1c40f;background-color:#fffae4}.spftestimonial-field-repeater .ui-sortable-helper{height:50px!important;overflow:hidden!important;border-color:#ccc!important;background-color:#eee!important;opacity:.5}.spftestimonial-field-repeater .ui-sortable-helper .spftestimonial-repeater-content,.spftestimonial-field-repeater .ui-sortable-helper .spftestimonial-repeater-helper{display:none}.spftestimonial-field-select .spftestimonial-fieldset{min-height:30px}.spftestimonial-field-select .spftestimonial-chosen{display:none}.spftestimonial-field-select select{max-width:100%;margin:0}.spftestimonial-field-select .spftestimonial-hide-select{display:none!important}.spftestimonial-field-sortable .spftestimonial-field-text input{width:100%;max-width:100%}.spftestimonial-field-sortable .spftestimonial-sortable .spftestimonial-sortable-item{display:table;width:100%;margin-bottom:5px;border:1px solid #eee}.spftestimonial-field-sortable .spftestimonial-sortable .spftestimonial-sortable-item h4{font-size:1em}.spftestimonial-field-sortable .spftestimonial-sortable-content{width:100%;display:table-cell;vertical-align:middle;background-color:#fff}.spftestimonial-field-sortable .spftestimonial-sortable-content>.spftestimonial-field{padding:15px}.spftestimonial-field-sortable .spftestimonial-sortable-helper{width:100%;display:table-cell;vertical-align:middle;text-align:center;font-size:14px;line-height:1em;border-left:1px solid #eee;background-color:#f7f7f7}.spftestimonial-field-sortable .spftestimonial-sortable-helper i{display:inline-block;cursor:pointer;width:50px;color:#555}.spftestimonial-field-sortable .spftestimonial-sortable-helper i:hover{opacity:.5}.spftestimonial-field-sortable .widget-placeholder{height:50px;margin-bottom:3px;border:1px dashed #f1c40f;background-color:#fffae4}.spftestimonial-field-sortable .ui-sortable-helper{height:50px!important;overflow:hidden!important;border-color:#ccc!important;background-color:#eee!important;opacity:.5}.spftestimonial-field-sortable .ui-sortable-helper .spftestimonial-sortable-content,.spftestimonial-field-sortable .ui-sortable-helper .spftestimonial-sortable-helper{display:none}.spftestimonial-field-sorter .ui-sortable-placeholder{height:20px;border:1px dashed #f1c40f;background-color:#fffae4}.spftestimonial-field-sorter .spftestimonial-modules{float:left;width:50%;box-sizing:border-box}.spftestimonial-field-sorter .spftestimonial-modules:first-child{padding-right:15px}.spftestimonial-field-sorter .spftestimonial-modules:last-child{padding-left:15px}.spftestimonial-field-sorter .spftestimonial-disabled,.spftestimonial-field-sorter .spftestimonial-enabled{padding:5px 15px;border:1px dashed #ddd;background-color:#fff}.spftestimonial-field-sorter .spftestimonial-disabled li{opacity:.5;transition:opacity .15s}.spftestimonial-field-sorter .spftestimonial-disabled .ui-sortable-helper{opacity:1}.spftestimonial-field-sorter .spftestimonial-sorter-title{font-size:13px;font-weight:600;padding:10px;text-align:center;border:1px dashed #ddd;border-bottom:none;background-color:#f8f8f8;text-transform:uppercase}.spftestimonial-field-sorter ul{list-style-type:none;margin:0;padding:0;min-height:62px}.spftestimonial-field-sorter ul li{margin:10px 0;padding:10px 15px;cursor:move;font-weight:700;text-align:center;border:1px solid #e5e5e5;background-color:#fafafa;transition:border-color .15s}.spftestimonial-field-sorter ul li:hover{border-color:#bbb}.spftestimonial-field-spinner .spftestimonial--spin{display:flex}.spftestimonial-field-spinner .ui-spinner{display:flex}.spftestimonial-field-spinner .ui-button{display:flex;flex-direction:column;justify-content:center;text-align:center;min-width:20px;padding:0 10px;color:#555;border:1px solid #7e8993;background-color:#f5f5f5}.spftestimonial-field-spinner .ui-spinner-button{cursor:pointer}.spftestimonial-field-spinner .ui-button{height:30px;box-shadow:none;box-sizing:border-box}.spftestimonial--input input:focus,.spftestimonial-field-spinner .ui-button:focus,.spftestimonial-field-spinner .ui-spinner-input:focus{box-shadow:none}.spftestimonial-field-spinner .ui-spinner-button:hover{background-color:#e7e7e7}.spftestimonial-field-spinner .ui-spinner-button:active{background-color:#ddd}.spftestimonial-field-spinner .ui-spinner-button:before{font-family:"Font Awesome 5 Pro","Font Awesome 5 Free",FontAwesome;font-weight:900;font-size:14px;line-height:14px}.spftestimonial-field-spinner .ui-spinner-down{order:1;border-right:0;border-radius:4px 0 0 4px}.spftestimonial-field-spinner .ui-spinner-down:before{content:"\f0d9"}.spftestimonial-field-spinner .ui-spinner-input{order:2}.spftestimonial-field-spinner .spftestimonial--unit{order:3;border-left:0;user-select:none}.spftestimonial-field-spinner .ui-spinner-up{order:4;border-left:0;border-radius:0 4px 4px 0}.spftestimonial-field-spinner .ui-spinner-up:before{content:"\f0da"}.spftestimonial-field-spinner input{position:relative;z-index:1;width:50px;text-align:center;margin:0;padding:0 8px;border-radius:0}.spftestimonial-field-spinner .ui-button-icon,.spftestimonial-field-spinner .ui-button-icon-space,.spftestimonial-field-spinner .ui-button-text{display:none}.spftestimonial-field-switcher .spftestimonial--switcher{float:left;cursor:pointer;position:relative;width:60px;height:26px;padding:0;margin:0;overflow:hidden;border-radius:4px;background-color:#ed6f6f;user-select:none;-webkit-user-select:none}.spftestimonial-field-switcher .spftestimonial--ball{position:absolute;top:4px;left:4px;width:24px;height:18px;background-color:#fff;border-radius:4px;transition:all .1s;box-shadow:1px 1px 1px rgba(0,0,0,.15)}.spftestimonial-field-switcher .spftestimonial--off,.spftestimonial-field-switcher .spftestimonial--on{position:absolute;top:0;left:0;right:0;font-size:11px;line-height:26px;font-weight:500;font-style:normal;text-align:center;text-transform:uppercase;color:#fff;padding-right:28px;opacity:0;transition:all .1s}.spftestimonial-field-switcher .spftestimonial--off{padding-right:0;padding-left:28px;opacity:1}.spftestimonial-field-switcher .spftestimonial--active{background:#4fb845}.spftestimonial-field-switcher .spftestimonial--active .spftestimonial--on{opacity:1}.spftestimonial-field-switcher .spftestimonial--active .spftestimonial--off{opacity:0}.spftestimonial-field-switcher .spftestimonial--active .spftestimonial--ball{left:100%;margin-left:-28px}.spftestimonial-field-switcher .spftestimonial--label{float:left;margin-top:4px;margin-left:8px;font-weight:400;color:#999}.spftestimonial-field-text input{width:340px;max-width:100%;margin:0}.spftestimonial-field-textarea textarea{width:100%;max-width:100%;min-height:125px}.spftestimonial-field-textarea .spftestimonial-shortcode-button{margin-bottom:10px;margin-right:5px}.spftestimonial-field-typography select,.spftestimonial-field-typography textarea{margin:0;min-width:100%;max-width:100%}.spftestimonial-field-typography .spftestimonial--title{color:#777;margin:0 0 2px 0;font-size:12px}.spftestimonial-field-typography .spftestimonial--title small{vertical-align:top}.spftestimonial-field-typography .spftestimonial--blocks{display:flex;flex-wrap:wrap}.spftestimonial-field-typography .spftestimonial--block{flex:1;max-width:100%;padding-right:6px;padding-bottom:6px}.spftestimonial-field-typography .spftestimonial--input{margin:0;min-width:100%}.spftestimonial-field-typography .spftestimonial--input-wrap{position:relative}.spftestimonial-field-typography .spftestimonial--unit{position:absolute;z-index:1;right:4px;top:4px;bottom:4px;padding:2px 6px;color:#666;font-size:11px;line-height:1;border-radius:2px;background:#eee;user-select:none;display:flex;justify-content:center;flex-direction:column}.spftestimonial-field-typography .spftestimonial--preview{font-size:16px;line-height:20px;padding:20px;color:#222;border:1px solid #eee;background-color:#fff;border-radius:2.5px;user-select:none;-webkit-user-select:none;transition:background-color .2s,border-color .2s}.spftestimonial-field-typography .spftestimonial--block-preview{cursor:pointer;position:relative;overflow:hidden;margin-top:10px;max-width:100%}.spftestimonial-field-typography .spftestimonial--black-background{border-color:#000;background-color:#000}.spftestimonial-field-typography .spftestimonial--toggle{position:absolute;top:5px;right:10px;color:#999}.spftestimonial-field-typography .spftestimonial--block-extra-styles{margin-top:5px}.spftestimonial-field-heading{font-size:1.5em;font-weight:700;color:#23282d;background-color:#f5f5f5}.spftestimonial-field-subheading{font-size:14px;font-weight:700;padding-top:17px;padding-bottom:17px;color:#23282d;background-color:#f7f7f7}.spftestimonial-field-submessage{padding:0!important;border:0!important}.spftestimonial-field-submessage+.spftestimonial-field{border-top:0!important}.spftestimonial-submessage{font-size:12px;padding:17px 30px;border-top:1px solid transparent;border-bottom:1px solid transparent}.spftestimonial-submessage-success{color:#3c763d;border-color:#d6e9c6;background-color:#dff0d8}.spftestimonial-submessage-info{color:#31708f;border-color:#bce8f1;background-color:#d9edf7}.spftestimonial-submessage-warning{color:#8a6d3b;border-color:#faebcc;background-color:#fcf8e3}.spftestimonial-submessage-danger{color:#a94442;border-color:#ebccd1;background-color:#f2dede}.spftestimonial-submessage-normal{color:#23282d;border-color:#eee;background-color:#f7f7f7}.spftestimonial-field-notice{background-color:transparent}.spftestimonial-notice-success{border-color:#46b450}.spftestimonial-notice-info{border-color:#339fd4}.spftestimonial-notice-warning{border-color:#ffbc00}.spftestimonial-notice-danger{border-color:#dc3232}.spftestimonial-notice-normal{border-color:#222}.spftestimonial-notice{border-color:#222;color:#999;font-style:italic;font-size:13px;padding:12px 12px 12px 0}.spftestimonial-field-number input{width:100%;margin:0}.spftestimonial-field-number .spftestimonial--wrap{position:relative;float:left;width:100px}.spftestimonial-field-number .spftestimonial--unit{position:absolute;z-index:1;right:4px;top:4px;bottom:4px;padding:2px 6px;color:#666;font-size:11px;line-height:1;border-radius:2px;background:#eee;user-select:none;display:flex;justify-content:center;flex-direction:column}.spftestimonial-field-link .spftestimonial--result{display:inline-block;font-size:12px;line-height:16px;padding:7px 10px;margin-bottom:7px;color:#777;border:1px solid #e5e5e5;background-color:#f5f5f5;border-radius:2px;word-break:break-word}.spftestimonial-field-link .spftestimonial--wrap{position:relative;float:left;width:100px}.spftestimonial-field-link .spftestimonial--unit{position:absolute;z-index:1;right:4px;top:4px;bottom:4px;padding:2px 6px;color:#666;font-size:11px;line-height:1;border-radius:2px;background:#eee;user-select:none;display:flex;justify-content:center;flex-direction:column}.spftestimonial-help{cursor:help;position:absolute;top:0;right:0;padding:5px;font-size:13px;color:#aaa}.spftestimonial-help .spftestimonial-help-text{display:none}.spftestimonial--preview{max-width:100%}.spftestimonial-field.spftestimonial-field-checkbox .spftestimonial-help{bottom:24px;right:auto;top:auto;margin-left:18px}.spftestimonial-image-preview{display:inline-flex;align-items:center;justify-content:center;flex-direction:column;position:relative;padding:6px;max-width:120px;max-height:120px;min-width:40px;min-height:40px;margin-bottom:10px;text-align:center;border-radius:2px;border:1px solid #ccc;background-color:#f9f9f9;box-shadow:0 1px 0 rgba(0,0,0,.08)}.spftestimonial-image-preview i{cursor:pointer;position:absolute;z-index:1;right:4px;top:4px;font-size:14px;width:22px;height:22px;line-height:22px;text-align:center;text-decoration:none;color:#fff;background-color:#d33;opacity:.75;border-radius:2px;transition:all .2s}.spftestimonial-image-preview i:hover{opacity:1}.spftestimonial-image-preview i:focus{box-shadow:none}.spftestimonial-image-preview span{position:relative;overflow:hidden;display:flex;height:100%;width:100%}.spftestimonial-image-preview img{max-width:100%;height:auto;object-fit:contain}.spftestimonial-field-custom .spftestimonial-field{padding:0}.spftestimonial-field .chosen-container-single .chosen-single{height:28px;line-height:26px}.spftestimonial-field .chosen-container-single .chosen-single abbr{top:0;right:20px;font-family:"Font Awesome 5 Pro","Font Awesome 5 Free",FontAwesome;font-weight:900;font-size:12px;height:100%;width:18px;color:#aaa;text-align:center;background:0 0!important}.spftestimonial-field .chosen-container-single .chosen-single abbr:before{content:"\f00d"}.spftestimonial-field .chosen-container-single .chosen-single abbr:hover{color:#555}.spftestimonial-field .chosen-container-multi .chosen-choices li.search-choice .search-choice-close{font-family:"Font Awesome 5 Pro","Font Awesome 5 Free",FontAwesome;font-weight:900;font-size:12px;height:100%;top:0;width:18px;color:#aaa;text-align:center;background:0 0!important}.spftestimonial-field .chosen-container-multi .chosen-choices li.search-choice .search-choice-close:before{content:"\f00d";display:inline-block;padding-top:3px}.spftestimonial-field .chosen-container-multi .chosen-choices li.search-choice .search-choice-close:hover{color:#555}.spftestimonial-field .chosen-container-single .chosen-single div b{font-family:"Font Awesome 5 Pro","Font Awesome 5 Free",FontAwesome;font-weight:900;font-size:14px;color:#aaa;background:0 0!important}.spftestimonial-field .chosen-container-single .chosen-single div b:before{content:"\f107"}.spftestimonial-field .chosen-container-single .chosen-single div b:hover{color:#555}.spftestimonial-field .chosen-container-multi .chosen-choices li.search-choice-placeholder{border:1px dashed #aaa;margin:3px 5px 3px 0}.spftestimonial-field .chosen-container-multi .ui-sortable li.search-choice span{cursor:move}.spftestimonial-field .chosen-container-active.chosen-with-drop .chosen-single div b:before{content:"\f106"}.spftestimonial-field .chosen-container-single .chosen-single-with-deselect span{margin-right:40px}.spftestimonial-field .chosen-container-single .chosen-search input[type=text]{background:0 0!important}.spftestimonial-field .chosen-container-single .chosen-search:before{font-family:"Font Awesome 5 Pro","Font Awesome 5 Free",FontAwesome;font-weight:900;font-size:11px;content:"\f002";position:absolute;right:12px;top:10px;color:#aaa}.spftestimonial-field .wp-picker-container{display:inline-block}.spftestimonial-field .wp-picker-container .wp-color-result.button{margin-bottom:0}.spftestimonial-field .spftestimonial--transparent-wrap{display:none;position:relative;top:-1px;width:235px;padding:9px 10px;border:1px solid #dfdfdf;border-top:none;background-color:#fff}.spftestimonial-field .wp-picker-active .spftestimonial--transparent-wrap{display:block}.spftestimonial-field .spftestimonial--transparent-slider{position:absolute;width:190px;margin-left:2px;height:18px}.spftestimonial-field .spftestimonial--transparent-slider .ui-slider-handle{position:absolute;top:-3px;bottom:-3px;z-index:5;border-color:#aaa;border-style:solid;border-width:4px 3px;width:10px;height:16px;margin:0 -5px;background:0 0;cursor:ew-resize;opacity:.9;border-radius:4px;box-shadow:0 1px 2px rgba(0,0,0,.2)}.spftestimonial-field .spftestimonial--transparent-slider .ui-slider-handle:before{content:" ";position:absolute;left:-2px;right:-2px;top:-3px;bottom:-3px;border:2px solid #fff;border-radius:3px}.spftestimonial-field .spftestimonial--transparent-offset{height:18px;width:200px;background:url(../images/checkerboard.png) repeat-y center left scroll #fff;border-radius:2px;box-shadow:inset 0 0 5px rgba(0,0,0,.4)}.spftestimonial-field .spftestimonial--transparent-text{position:absolute;top:12px;right:10px;width:30px;font-size:12px;line-height:12px;text-align:center;color:#999}.spftestimonial-field .spftestimonial--transparent-button{cursor:pointer;user-select:none;margin-top:10px;font-size:11px;text-align:center;border-radius:2px;padding:3px 7px;box-shadow:0 1px 0 rgba(0,0,0,.1);letter-spacing:.2px;color:#777;border:1px solid #ccc;background-color:#f7f7f7;transition:background-color .2s,border-color .2s,color .2s}.spftestimonial-field .spftestimonial--transparent-active .wp-color-result{background-image:url(../images/checkerboard.png);background-size:135px;background-position:center left;background-color:transparent!important}.spftestimonial-field .spftestimonial--transparent-active .spftestimonial--transparent-button{color:#fff;border-color:#3ea032;background-color:#4fb845}.spftestimonial-field .spftestimonial--transparent-active .fa:before{content:"\f205"}.spftestimonial-widgets>.spftestimonial-field{position:relative;top:-1px;margin-left:-15px;margin-right:-15px;padding:12px 15px}.spftestimonial-widgets>.spftestimonial-field .spftestimonial-title{float:none;width:100%;margin-bottom:5px}.spftestimonial-widgets>.spftestimonial-field .spftestimonial-fieldset{float:none;width:100%}.spftestimonial-widgets .spftestimonial-field-text input{width:100%}.spftestimonial-widgets .spftestimonial-field-notice .spftestimonial-notice{padding:15px}.control-section .spftestimonial-widgets>.spftestimonial-field{margin-left:-10px;margin-right:-10px;padding:10px 12px}.wp-block .spftestimonial-widgets{font-size:13px}.wp-block .spftestimonial-widgets>.spftestimonial-field{margin-left:-10px;margin-right:-10px}.wp-block .spftestimonial-widgets>.spftestimonial-field .button-primary{color:#fff}.wp-block .spftestimonial-widgets>.spftestimonial-field>.spftestimonial-title>h4{font-size:13px}.control-section .spftestimonial-field{padding:0}.control-section .spftestimonial-field .spftestimonial-title{float:none;width:100%;margin-bottom:6px}.control-section .spftestimonial-field .spftestimonial-title h4{display:block;font-size:13px;line-height:1;font-weight:600;color:inherit}.control-section .spftestimonial-field .spftestimonial-fieldset{float:none;width:100%}.control-section .spftestimonial-help{top:-5px;right:-5px}.control-section .spftestimonial-field-select select{width:100%}.control-section .spftestimonial-field-heading{color:inherit;font-size:14px;line-height:1em;margin-right:-15px;margin-left:-15px;padding:15px}.control-section .spftestimonial-field-subheading{color:inherit;font-size:11px;margin-right:-15px;margin-left:-15px;padding:10px 15px}.control-section .spftestimonial-subtitle-text{margin-top:4px;font-size:12px;font-style:italic}.control-section .spftestimonial-field-submessage .spftestimonial-submessage{margin-right:-15px;margin-left:-15px;padding:15px}.control-section .spftestimonial-fieldset .spftestimonial-field-heading,.control-section .spftestimonial-fieldset .spftestimonial-field-subheading,.control-section .spftestimonial-fieldset .spftestimonial-field-submessage .spftestimonial-submessage{margin-left:0;margin-right:0}.control-section .spftestimonial-field-date .spftestimonial--to{margin-left:0}.control-section .spftestimonial-field-sorter ul li{padding:5px}.control-section .spftestimonial-field-sorter .spftestimonial-modules{float:none;width:100%}.control-section .spftestimonial-field-sorter .spftestimonial-modules:first-child{padding-right:0;padding-bottom:15px}.control-section .spftestimonial-field-background .spftestimonial--background-attributes{flex-direction:column}.control-section .spftestimonial-field-spacing input{width:90px}.control-section .spftestimonial-field-border .spftestimonial--input{flex:1 50%}.control-section .spftestimonial-field-border input,.control-section .spftestimonial-field-border select{width:100%}.control-section .spftestimonial-field-spinner input{width:50px}.control-section .spftestimonial-field-number .spftestimonial--wrap{width:100%}.control-section .spftestimonial-field-backup .spftestimonial-export-data{display:none}.control-section .spftestimonial-field-fieldset .spftestimonial-fieldset-content{border-color:#e5e5e5}.control-section .spftestimonial-accordion-content>.spftestimonial-field,.control-section .spftestimonial-cloneable-content>.spftestimonial-field,.control-section .spftestimonial-fieldset-content>.spftestimonial-field,.control-section .spftestimonial-repeater-content>.spftestimonial-field,.control-section .spftestimonial-sortable-content>.spftestimonial-field,.control-section .spftestimonial-tabbed-content>.spftestimonial-field{padding:10px}.control-section .spftestimonial-accordion-content>.spftestimonial-field .spftestimonial-title,.control-section .spftestimonial-cloneable-content>.spftestimonial-field .spftestimonial-title,.control-section .spftestimonial-fieldset-content>.spftestimonial-field .spftestimonial-title,.control-section .spftestimonial-repeater-content>.spftestimonial-field .spftestimonial-title,.control-section .spftestimonial-sortable-content>.spftestimonial-field .spftestimonial-title,.control-section .spftestimonial-tabbed-content>.spftestimonial-field .spftestimonial-title{margin-bottom:5px}.control-section .spftestimonial-accordion-content>.spftestimonial-field h4,.control-section .spftestimonial-cloneable-content>.spftestimonial-field h4,.control-section .spftestimonial-fieldset-content>.spftestimonial-field h4,.control-section .spftestimonial-repeater-content>.spftestimonial-field h4,.control-section .spftestimonial-sortable-content>.spftestimonial-field h4,.control-section .spftestimonial-tabbed-content>.spftestimonial-field h4{font-size:12px}.control-section .spftestimonial-depend-hidden.spftestimonial-depend-on{display:none!important}.control-section .spftestimonial-depend-visible.spftestimonial-depend-on{border-top:0!important}.spftestimonial-taxonomy{max-width:95%}.spftestimonial-taxonomy>.spftestimonial-field{border-top:none!important}.spftestimonial-taxonomy>.spftestimonial-field-heading{font-size:1.1em;padding:20px!important;border:1px solid #ddd}.spftestimonial-taxonomy>.spftestimonial-field-subheading{font-size:12px;padding:15px!important;border:1px solid #ddd}.spftestimonial-taxonomy>.spftestimonial-field-submessage .spftestimonial-submessage{padding:15px;border-left-width:1px;border-left-style:solid;border-right-width:1px;border-right-style:solid}.spftestimonial-taxonomy>.spftestimonial-field-notice{background-color:transparent}.spftestimonial-taxonomy .spftestimonial-section-title{display:block;padding:15px;background-color:#f9f9f9;border:1px solid #e5e5e5;box-shadow:0 1px 1px rgba(0,0,0,.04)}.spftestimonial-taxonomy-add-fields>.spftestimonial-field{padding:8px 0}.spftestimonial-taxonomy-add-fields>.spftestimonial-field>.spftestimonial-title{float:none;width:100%;padding:2px 2px 4px 0}.spftestimonial-taxonomy-add-fields>.spftestimonial-field>.spftestimonial-title h4{font-size:12px;font-weight:400}.spftestimonial-taxonomy-add-fields>.spftestimonial-field>.spftestimonial-fieldset{float:none;width:100%}.spftestimonial-taxonomy-add-fields>.spftestimonial-field>.spftestimonial-fieldset>.spftestimonial-help{right:-5px}.spftestimonial-taxonomy-add-fields+p.submit{margin-top:0}.spftestimonial-taxonomy-edit-fields>.spftestimonial-field{padding:20px 0}.spftestimonial-taxonomy-edit-fields>.spftestimonial-field>.spftestimonial-title{width:200px}.spftestimonial-taxonomy-edit-fields>.spftestimonial-field>.spftestimonial-title h4{font-size:14px;font-weight:600;line-height:1.3;display:inline-block;vertical-align:middle}.spftestimonial-taxonomy-edit-fields>.spftestimonial-field>.spftestimonial-fieldset{width:calc(100% - 220px)}.spftestimonial-taxonomy-edit-fields>.spftestimonial-field>.spftestimonial-fieldset>.spftestimonial-help{top:-5px;right:-5px}.spftestimonial-taxonomy-edit-fields>.spftestimonial-field-submessage{margin:20px 0}.spftestimonial-taxonomy-edit-fields>.spftestimonial-field-heading,.spftestimonial-taxonomy-edit-fields>.spftestimonial-field-subheading{margin:20px 0;border:1px solid #ddd}.spftestimonial-nav-menu-options{clear:both;float:left;width:100%}.spftestimonial-nav-menu-options>.spftestimonial-fields{margin-left:-10px;margin-top:10px;margin-bottom:10px;border-top:1px solid #eee;border-bottom:1px solid #eee}.spftestimonial-nav-menu-options>.spftestimonial-fields>.spftestimonial-field{padding:12px 14px 12px 12px}.spftestimonial-nav-menu-options>.spftestimonial-fields>.spftestimonial-field .spftestimonial-title{float:none;width:100%;margin-bottom:5px}.spftestimonial-nav-menu-options>.spftestimonial-fields>.spftestimonial-field .spftestimonial-fieldset{float:none;width:100%}.spftestimonial-nav-menu-options .spftestimonial-field-text input{width:100%}.spftestimonial-nav-menu-options .spftestimonial-field-notice .spftestimonial-notice{padding:15px}.spftestimonial-nav-menu-title{padding:12px 14px 12px 12px;background-color:#f5f5f5;border-top:1px solid #eee;border-bottom:1px solid #eee}.spftestimonial-nav-menu-title:first-child{border-top:0}.spftestimonial-nav-menu-title h4{margin:0;padding:0;color:#23282d}.spftestimonial-nav-menu-icon{margin-right:5px}.spftestimonial-profile-options>h2>.fa{padding-right:7px}.spftestimonial-profile-options>.spftestimonial-field{max-width:750px;padding:15px 0;border-top:none!important}.spftestimonial-profile-options>.spftestimonial-field>.spftestimonial-title{width:200px}.spftestimonial-profile-options>.spftestimonial-field>.spftestimonial-title h4{font-size:14px;font-weight:600;line-height:1.3;display:inline-block;vertical-align:middle}.spftestimonial-profile-options>.spftestimonial-field>.spftestimonial-fieldset{width:calc(100% - 220px)}.spftestimonial-profile-options>.spftestimonial-field>.spftestimonial-fieldset>.spftestimonial-help{top:-15px;right:-5px}.spftestimonial-profile-options>.spftestimonial-field-heading{font-size:1.1em}.spftestimonial-profile-options>.spftestimonial-field-subheading{font-size:12px}.spftestimonial-profile-options>.spftestimonial-field-heading,.spftestimonial-profile-options>.spftestimonial-field-subheading{margin:10px 0;padding:15px!important;border:1px solid #ddd}.spftestimonial-profile-options>.spftestimonial-field-submessage{margin:20px 0}.spftestimonial-profile-options>.spftestimonial-field-submessage .spftestimonial-submessage{padding:10px;border-left-width:1px;border-left-style:solid;border-right-width:1px;border-right-style:solid}.spftestimonial-profile-options>.spftestimonial-field-notice{background-color:transparent}.spftestimonial-modal{position:fixed;z-index:100101;top:0;left:0;width:100%;height:100%}.spftestimonial-modal.hidden{display:none}.spftestimonial-modal-icon{z-index:100102}.spftestimonial-modal-table{display:table;width:100%;height:100%}.spftestimonial-modal-table-cell{display:table-cell;vertical-align:middle;margin:100px 0}.spftestimonial-modal-inner{position:relative;z-index:10;width:760px;height:750px;margin:0 auto;background-color:#fff}.spftestimonial-modal-content{position:relative;overflow:hidden;overflow-y:auto;height:595px}.spftestimonial-modal-content .spftestimonial-shortcode-button{display:none}.spftestimonial-modal-content .spftestimonial-field{padding:15px 30px 15px 15px}.spftestimonial-modal-content a:active,.spftestimonial-modal-content a:focus{outline:0;box-shadow:none}.spftestimonial-modal-content h4{font-size:13px}.spftestimonial-modal-content h4 small{font-style:italic;font-weight:400;color:#aaa}.spftestimonial-modal-title{position:relative;background-color:#fcfcfc;border-bottom:1px solid #ddd;height:36px;font-size:16px;font-weight:600;line-height:36px;margin:0;padding:0 36px 0 16px}.spftestimonial-modal-header{width:100%;padding:14px 0;background-color:#f5f5f5;border-bottom:1px solid #ddd}.spftestimonial-modal-header select{display:block;width:250px;margin:0 auto;font-size:13px;line-height:1;height:30px;min-height:30px;background-color:#fff}.spftestimonial-modal-close{color:#666;padding:0;position:absolute;top:0;right:0;width:36px;height:36px;text-align:center;background:0 0;border:none;cursor:pointer}.spftestimonial-modal-close:before{font:normal 20px/36px dashicons;content:"\f158";vertical-align:top;width:36px;height:36px}.spftestimonial-modal-close:hover{opacity:.5}.spftestimonial-modal-insert-wrapper{text-align:center;width:100%;padding:15px 0;background-color:#f5f5f5;border-top:1px solid #ddd}.spftestimonial-modal-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background-color:#000;opacity:.5}.spftestimonial--repeatable{padding:15px 15px 0 15px}.spftestimonial--repeat-button-block{text-align:center;padding-bottom:15px}.spftestimonial--repeat-shortcode{position:relative;margin-bottom:15px;border:1px dashed #ddd}.spftestimonial--repeat-shortcode:first-child .spftestimonial-repeat-remove{display:none}.spftestimonial--repeat-shortcode .spftestimonial-repeat-remove{position:absolute;right:10px;top:10px;z-index:10;cursor:pointer;display:inline-block;font-size:11px;width:18px;height:18px;line-height:18px;text-align:center;border-radius:2px;color:#fff;background-color:#e14d43;opacity:.5}.spftestimonial--repeat-shortcode .spftestimonial-repeat-remove:hover{opacity:.5}.spftestimonial-shortcode-single .spftestimonial-modal-inner{height:750px}.spftestimonial-shortcode-single .spftestimonial-modal-content{height:652px}.elementor-editor-active .spftestimonial-shortcode-button{margin-left:5px}.elementor-editor-active .spftestimonial-modal .hidden{display:none!important}.spftestimonial-shortcode-block{text-align:center;padding:14px;font-size:13px;background-color:#f5f5f5;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif}.spftestimonial-shortcode-block .components-button{margin-bottom:10px}.spftestimonial-modal-icon .spftestimonial-icon-title{padding:15px 0;margin:4px;font-size:14px;font-weight:700;text-align:center;border:1px solid #eee;background-color:#f7f7f7}.spftestimonial-modal-icon .spftestimonial-modal-header{text-align:center}.spftestimonial-modal-icon .spftestimonial-icon-search{width:50%;height:40px;line-height:40px}.spftestimonial-modal-icon i{cursor:pointer;display:inline-block;margin:4px;width:35px;height:35px;line-height:35px;font-size:16px;color:#555;text-align:center;border:1px solid #ccc;background-color:#f7f7f7;border-radius:2px;box-shadow:1px 1px 0 rgba(0,0,0,.05)}.spftestimonial-modal-icon i:hover{color:#fff;border-color:#222;background-color:#222}.spftestimonial-modal-icon .spftestimonial-modal-content{padding:10px;height:618px}.spftestimonial-modal-icon .spftestimonial-error-text{padding:10px}.spftestimonial-modal-loading{display:none;position:absolute;left:15px;top:15px}.spftestimonial-loading{position:relative;width:20px;height:20px;background:#ccc;border-radius:20px;box-shadow:0 2px 5px rgba(0,0,0,.07)}.spftestimonial-loading:after{position:absolute;top:50%;left:50%;width:4px;height:4px;content:"";margin-top:-2px;margin-left:-2px;background-color:#fff;animation-duration:.5s;animation-iteration-count:infinite;animation-timing-function:linear;animation-name:spftestimonialLoader;border-radius:4px}@keyframes spftestimonialLoader{0%{transform:rotate(0) translateX(-6px) rotate(0)}100%{transform:rotate(360deg) translateX(-6px) rotate(-360deg)}}.spftestimonial-subtitle-text{margin-top:6px;font-weight:400;color:#999;font-style:italic}.spftestimonial-desc-text{clear:both;float:left;width:100%;margin-top:6px;font-weight:400;color:#999}.spftestimonial-error-text{margin-top:6px;color:#d02c21}.spftestimonial-before-text{margin-bottom:6px}.spftestimonial-after-text{margin-top:6px}.spftestimonial-metabox-hide{display:none!important}.spftestimonial-metabox-show{display:block!important}.spftestimonial-depend-hidden.spftestimonial-depend-on{display:none}.spftestimonial-depend-visible.spftestimonial-depend-on{display:block;opacity:.75;filter:grayscale(1);user-select:none;border-top:1px solid #eee}.spftestimonial-depend-visible.spftestimonial-depend-on .clear:before{content:"";left:0;top:0;right:0;bottom:0;position:absolute;background-color:#eee;opacity:.25;z-index:10}.spftestimonial-warning-primary{color:#fff!important;border-color:#dc3545!important;background:#dc3545!important}.spftestimonial-warning-primary:focus,.spftestimonial-warning-primary:hover{border-color:#bd2130!important;background:#bd2130!important}.spftestimonial-warning-primary:focus{box-shadow:0 0 0 1px #fff,0 0 0 3px #bd2130!important}.spftestimonial-warning-primary:active{border-color:#bd2130!important;background:#bd2130!important}.spftestimonial-form-result{display:none;user-select:none;border-radius:2px;padding:12px;margin:0 0 15px 0;background-color:#fff;border-left:4px solid #555;-moz-box-shadow:0 1px 1px rgba(0,0,0,.1);-webkit-box-shadow:0 1px 1px rgb(0 0 0 / 10%);box-shadow:0 1px 1px rgb(0 0 0 / 10%)}.spftestimonial-form-success{border-left-color:#46b450}.spftestimonial-form-show{display:block}.spftestimonial-form-warning{color:#8a6d3b;background-color:#faebcc;display:none!important}.spftestimonial-label-error{position:relative;top:-2px;display:inline-block;font-size:10px;line-height:10px;height:10px;width:10px;padding:1px;font-style:normal;text-align:center;color:#fff;vertical-align:middle;background-color:#e10000;border-radius:2px}.spftestimonial-no-option{padding:30px}.spftestimonial-input-number{-moz-appearance:textfield}.spftestimonial-input-number::-webkit-inner-spin-button,.spftestimonial-input-number::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.spftestimonial--input input.spftestimonial-number{padding:0;border-radius:0 4px 4px 0}.spftestimonial-fa5-shims .spftestimonial .fab,.spftestimonial-fa5-shims .spftestimonial .far,.spftestimonial-fa5-shims .spftestimonial .fas{font-family:FontAwesome;font-style:normal}.spftestimonial-welcome-wrap{position:relative;margin:25px 40px 0 20px;font-size:15px;max-width:1200px}.spftestimonial-welcome-wrap p{font-size:14px;line-height:1.5}.spftestimonial-welcome-wrap h1{margin:.2em 200px 0 0;padding:0;color:#32373c;line-height:1.2em;font-size:2.8em;font-weight:400}.spftestimonial-welcome-wrap .spftestimonial-logo{position:absolute;overflow:hidden;top:0;right:0;height:160px;width:140px;background-image:linear-gradient(45deg,#2d67cb,#ad19f3);box-shadow:0 1px 4px rgba(0,0,0,.25),inset 0 0 0 4px rgba(0,0,0,.25)}.spftestimonial-welcome-wrap .spftestimonial-logo .spftestimonial--effects i{position:absolute;width:200px;height:100px;background-color:rgba(0,0,0,.15);transform:rotate(-45deg)}.spftestimonial-welcome-wrap .spftestimonial-logo .spftestimonial--effects i:nth-child(1){bottom:-20px;right:-70px}.spftestimonial-welcome-wrap .spftestimonial-logo .spftestimonial--effects i:nth-child(2){bottom:-35px;right:-80px}.spftestimonial-welcome-wrap .spftestimonial-logo .spftestimonial--effects i:nth-child(3){bottom:-50px;right:-90px}.spftestimonial-welcome-wrap .spftestimonial-logo .spftestimonial--effects i:nth-child(4){bottom:-65px;right:-100px}.spftestimonial-welcome-wrap .spftestimonial-logo .spftestimonial--wp-logos{position:relative;padding-top:25px;text-align:center}.spftestimonial-welcome-wrap .spftestimonial-logo .spftestimonial--wp-logo{position:absolute;left:20px;width:20px;height:20px;background-repeat:no-repeat;background-position:center center;background-image:url(../images/wp-logo.svg)}.spftestimonial-welcome-wrap .spftestimonial-logo .spftestimonial--wp-plugin-logo{display:inline-block;width:50px;height:50px;border:3px solid #fff;background-size:40px;background-repeat:no-repeat;background-position:center center;background-image:url(../images/wp-plugin-logo.svg);border-radius:100%;vertical-align:middle}.spftestimonial-welcome-wrap .spftestimonial-logo .spftestimonial--text{position:absolute;left:0;right:0;top:90px;color:#fff;font-size:13px;line-height:1.2em;font-weight:600;text-align:center;text-transform:uppercase;text-shadow:1px 1px 0 rgba(0,0,0,.25)}.spftestimonial-welcome-wrap .spftestimonial-logo .spftestimonial--version{top:auto;left:auto;right:8px;bottom:4px;font-size:11px;text-transform:lowercase}.spftestimonial-welcome-wrap .spftestimonial-about-text{font-weight:400;line-height:1.6em;font-size:19px;margin:1em 200px 1em 0;color:#555d66}.spftestimonial-welcome-wrap .spftestimonial-demo-button{margin:1em 200px 2em 0}.spftestimonial-welcome-wrap .nav-tab-wrapper{margin-bottom:20px}.spftestimonial-welcome-wrap ul{list-style-type:disc;padding-left:15px}.spftestimonial-welcome-wrap .spftestimonial--col{float:left;padding-right:20px;box-sizing:border-box}.spftestimonial-welcome-wrap .spftestimonial--col-2{width:50%}.spftestimonial-welcome-wrap .spftestimonial--col-3{width:33.333%}.spftestimonial-welcome-wrap .spftestimonial--col-4{width:25%}.spftestimonial-welcome-wrap .spftestimonial--col-5{width:20%}.spftestimonial-welcome-wrap .spftestimonial--col-last{padding-right:0}.spftestimonial-welcome-wrap .spftestimonial--col-upgrade{padding:10px 0;text-align:center;border-top:1px solid #e5e5e5}.spftestimonial--table-compare tfoot td,.spftestimonial--table-compare thead td{text-align:center}.spftestimonial--table-compare td{font-size:14px;text-align:center;vertical-align:middle;padding:10px}.spftestimonial--table-compare td:first-child{text-align:left}.spftestimonial--table-compare tfoot td{padding:15px 0}.spftestimonial--table-compare .fa{font-size:18px}.spftestimonial--table-compare .fa-check-circle{color:#46b450}.spftestimonial--table-compare .fa-times-circle{color:#dc3232}.spftestimonial-welcome-cols{clear:both;margin:20px 0;background-color:#fff;padding:0 0;border-radius:2px;border:1px solid #e5e5e5}.spftestimonial-welcome-cols .spftestimonial--col{width:33.333%;float:left;padding:20px;text-align:center;box-sizing:border-box;min-height:200px;border-right:1px solid #e5e5e5}.spftestimonial-welcome-cols .spftestimonial--block,.spftestimonial-welcome-cols .spftestimonial--left{float:left;width:20%;padding:0 30px;text-align:center;box-sizing:border-box}.spftestimonial-welcome-cols .spftestimonial--block{width:80%}.spftestimonial-welcome-cols .spftestimonial--col-first{border-bottom:1px solid #e5e5e5}.spftestimonial-welcome-cols .spftestimonial--last{border-right:none}.spftestimonial-welcome-cols .spftestimonial--space{height:20px}.spftestimonial-welcome-cols .spftestimonial--icon{display:inline-block;font-size:20px;width:30px;height:30px;line-height:30px;text-align:center;margin-bottom:10px;color:#fff;background-color:#555;border-radius:30px}.spftestimonial-welcome-cols .spftestimonial--active{background-color:#5cb85c}.spftestimonial-welcome-cols .spftestimonial--deactive{background-color:#e14d43}.spftestimonial-welcome-cols .spftestimonial--title{font-weight:700;display:block}.spftestimonial-welcome-cols p:last-child{margin-bottom:0}.spftestimonial-features-cols .spftestimonial--key-features{width:30%}.spftestimonial-features-cols .spftestimonial--available-fields{width:70%}.spftestimonial-code-block{margin:20px 0;padding:5px 20px;background-color:#fff;border-radius:2px;box-shadow:0 1px 1px rgba(0,0,0,.15)}.spftestimonial-code-block pre{font-size:13px;color:#0073aa}.spftestimonial-code-block pre span{color:#999}.spftestimonial--table-fields td{font-size:14px}.spftestimonial--upgrade a{color:#5cb85c;font-weight:700}.spftestimonial--upgrade a:focus,.spftestimonial--upgrade a:hover{color:#4aa14a;outline:0;box-shadow:none}@media only screen and (max-width:782px){.spftestimonial-welcome-cols .spftestimonial--col{width:100%;min-height:auto;border-right:none;border-bottom:1px solid #e5e5e5}.spftestimonial-features-cols .spftestimonial--key-features{width:100%}.spftestimonial-features-cols .spftestimonial--available-fields{width:100%}}@media only screen and (max-width:1200px){.spftestimonial-metabox .spftestimonial-field .spftestimonial-title{float:none;width:100%;margin-bottom:10px}.spftestimonial-metabox .spftestimonial-field .spftestimonial-fieldset{float:none;width:100%}}@media only screen and (max-width:782px){.spftestimonial-header-inner{text-align:center}.spftestimonial-header-inner h1{width:100%;margin-bottom:10px}.spftestimonial-form-result{float:none;margin-right:0;margin-bottom:10px}.spftestimonial-header-left,.spftestimonial-header-right,.spftestimonial-search{width:100%}.spftestimonial-search{text-align:center;margin-bottom:15px}.spftestimonial-footer{text-align:center}.spftestimonial-buttons{float:none}.spftestimonial-copyright{float:none;margin-top:10px}.spftestimonial-expand-all,.spftestimonial-nav,.spftestimonial-nav-background,.spftestimonial-reset-section{display:none!important}.spftestimonial-nav-normal+.spftestimonial-content{margin-left:0}.spftestimonial-section,.spftestimonial-section-title{display:block!important}.spftestimonial-field .spftestimonial-title{float:none;width:100%;margin-bottom:10px}.spftestimonial-field .spftestimonial-fieldset{float:none;width:100%}.spftestimonial-field-color .button.wp-picker-clear{padding:0 8px;line-height:2.14285714;min-height:32px}.spftestimonial-modal-inner{width:350px;height:400px}.spftestimonial-modal-content{height:237px}.spftestimonial-icon-dialog .spftestimonial-modal-inner{width:305px;height:380px}.spftestimonial-icon-dialog .spftestimonial-modal-content{height:267px}.spftestimonial-modal-icon .spftestimonial-modal-inner{width:330px;height:385px}.spftestimonial-modal-icon .spftestimonial-modal-content{height:252px}.spftestimonial-profile-options>.spftestimonial-field>.spftestimonial-title,.spftestimonial-taxonomy-edit-fields>.spftestimonial-field>.spftestimonial-title{float:none;width:100%;margin-bottom:10px}.spftestimonial-profile-options>.spftestimonial-field>.spftestimonial-fieldset,.spftestimonial-taxonomy-edit-fields>.spftestimonial-field>.spftestimonial-fieldset{float:none;width:100%}.spftestimonial-nav-menu-options>.spftestimonial-fields{margin-left:-10px;margin-right:-10px}.spftestimonial-nav-menu-options>.spftestimonial-fields>.spftestimonial-field{padding:10px}}.chosen-container{position:relative;display:inline-block;vertical-align:middle;font-size:13px;user-select:none}.chosen-container *{box-sizing:border-box}.chosen-container .chosen-drop{position:absolute;top:100%;z-index:1010;width:100%;border:1px solid #aaa;border-top:0;background:#fff;box-shadow:0 4px 5px rgba(0,0,0,.15);clip:rect(0,0,0,0);clip-path:inset(100% 100%)}.chosen-container.chosen-with-drop .chosen-drop{clip:auto;clip-path:none}.chosen-container a{cursor:pointer}.chosen-container .chosen-single .group-name,.chosen-container .search-choice .group-name{margin-right:4px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-weight:400;color:#999}.chosen-container .chosen-single .group-name:after,.chosen-container .search-choice .group-name:after{content:":";padding-left:2px;vertical-align:top}.chosen-container-single .chosen-single{position:relative;display:block;overflow:hidden;padding:0 0 0 8px;height:25px;border:1px solid #aaa;border-radius:5px;background-color:#fff;background:linear-gradient(#fff 20%,#f6f6f6 50%,#eee 52%,#f4f4f4 100%);background-clip:padding-box;box-shadow:0 0 3px #fff inset,0 1px 1px rgba(0,0,0,.1);color:#444;text-decoration:none;white-space:nowrap;line-height:24px}.chosen-container-single .chosen-default{color:#999}.chosen-container-single .chosen-single span{display:block;overflow:hidden;margin-right:26px;text-overflow:ellipsis;white-space:nowrap}.chosen-container-single .chosen-single-with-deselect span{margin-right:38px}.chosen-container-single .chosen-single abbr{position:absolute;top:6px;right:26px;display:block;width:12px;height:12px;font-size:1px}.chosen-container-single .chosen-single div{position:absolute;top:0;right:0;display:block;width:18px;height:100%}.chosen-container-single .chosen-single div b{display:block;width:100%;height:100%}.chosen-container-single .chosen-search{position:relative;z-index:1010;margin:0;padding:3px 4px;white-space:nowrap}.chosen-container-single .chosen-search input[type=text]{margin:1px 0;padding:4px 20px 4px 5px;width:100%;height:auto;outline:0;border:1px solid #aaa;font-size:1em;font-family:sans-serif;line-height:normal;border-radius:0}.chosen-container-single .chosen-drop{margin-top:-1px;border-radius:0 0 4px 4px;background-clip:padding-box}.chosen-container-single.chosen-container-single-nosearch .chosen-search{position:absolute;clip:rect(0,0,0,0);clip-path:inset(100% 100%)}.chosen-container .chosen-results{color:#444;position:relative;overflow-x:hidden;overflow-y:auto;margin:0 4px 4px 0;padding:0 0 0 4px;max-height:240px;-webkit-overflow-scrolling:touch}.chosen-container .chosen-results li{display:none;margin:0;padding:5px 6px;list-style:none;line-height:15px;word-wrap:break-word;-webkit-touch-callout:none}.chosen-container .chosen-results li.active-result{display:list-item;cursor:pointer}.chosen-container .chosen-results li.disabled-result{display:list-item;color:#ccc;cursor:default}.chosen-container .chosen-results li.highlighted{background-color:#3875d7;background-image:linear-gradient(#3875d7 20%,#2a62bc 90%);color:#fff}.chosen-container .chosen-results li.no-results{color:#777;display:list-item;background:#f4f4f4}.chosen-container .chosen-results li.group-result{display:list-item;font-weight:700;cursor:default}.chosen-container .chosen-results li.group-option{padding-left:15px}.chosen-container .chosen-results li em{font-style:normal;text-decoration:underline}.chosen-container-multi .chosen-choices{position:relative;overflow:hidden;margin:0;padding:0 5px;width:100%;height:auto;border:1px solid #aaa;background-color:#fff;background-image:linear-gradient(#eee 1%,#fff 15%);cursor:text}.chosen-container-multi .chosen-choices li{float:left;list-style:none}.chosen-container-multi .chosen-choices li.search-field{margin:0;padding:0;white-space:nowrap}.chosen-container-multi .chosen-choices li.search-field input[type=text]{margin:1px 0;padding:0;outline:0;border:0!important;background:0 0!important;box-shadow:none;color:#999;font-size:100%;font-family:sans-serif;line-height:normal;border-radius:0;width:25px;height:25px;min-height:25px}.chosen-container-multi .chosen-choices li.search-choice{position:relative;margin:3px 5px 3px 0;padding:3px 20px 3px 6px;border:1px solid #aaa;max-width:100%;border-radius:3px;background-color:#eee;background-image:linear-gradient(#f4f4f4 20%,#f0f0f0 50%,#e8e8e8 52%,#eee 100%);background-size:100% 19px;background-repeat:repeat-x;background-clip:padding-box;box-shadow:0 0 2px #fff inset,0 1px 0 rgba(0,0,0,.05);color:#333;line-height:13px;cursor:default}.chosen-container-multi .chosen-choices li.search-choice span{word-wrap:break-word;white-space:nowrap}.chosen-container-multi .chosen-choices li.search-choice .search-choice-close{position:absolute;top:0;right:0;display:block;width:12px;height:12px;font-size:1px}.chosen-container-multi .chosen-choices li.search-choice-disabled{padding-right:5px;border:1px solid #ccc;background-color:#e4e4e4;background-image:linear-gradient(#f4f4f4 20%,#f0f0f0 50%,#e8e8e8 52%,#eee 100%);color:#666}.chosen-container-multi .chosen-choices li.search-choice-focus{background:#d4d4d4}.chosen-container-multi .chosen-results{margin:0;padding:0}.chosen-container-multi .chosen-drop .result-selected{display:list-item;color:#ccc;cursor:default}.chosen-container-active .chosen-single{border:1px solid #5897fb;box-shadow:0 0 5px rgba(0,0,0,.3)}.chosen-container-active.chosen-with-drop .chosen-single{border:1px solid #aaa;border-bottom-right-radius:0;border-bottom-left-radius:0;background-image:linear-gradient(#eee 20%,#fff 80%);box-shadow:0 1px 0 #fff inset}.chosen-container-active.chosen-with-drop .chosen-single div{border-left:none;background:0 0}.chosen-container-active .chosen-choices{border:1px solid #5897fb;box-shadow:0 0 5px rgba(0,0,0,.3)}.chosen-container-active .chosen-choices li.search-field input[type=text]{color:#222!important}.chosen-disabled{opacity:.5!important;cursor:default}.chosen-disabled .chosen-single{cursor:default}.chosen-disabled .chosen-choices .search-choice .search-choice-close{cursor:default}.spftestimonial-buttons .button.spftestimonial-save-ajax[disabled]{background-color:#c5c5c6!important;border:none}.chosen-rtl{text-align:right}.chosen-rtl .chosen-single{overflow:visible;padding:0 8px 0 0}.chosen-rtl .chosen-single span{margin-right:0;margin-left:26px;direction:rtl}.chosen-rtl .chosen-single-with-deselect span{margin-left:38px}.chosen-rtl .chosen-single div{right:auto;left:3px}.chosen-rtl .chosen-single abbr{right:auto;left:26px}.chosen-rtl .chosen-choices li{float:right}.chosen-rtl .chosen-choices li.search-field input[type=text]{direction:rtl}.chosen-rtl .chosen-choices li.search-choice{margin:3px 5px 3px 0;padding:3px 5px 3px 19px}.chosen-rtl .chosen-choices li.search-choice .search-choice-close{right:auto;left:4px}.chosen-rtl.chosen-container-single .chosen-results{margin:0 0 4px 4px;padding:0 4px 0 0}.chosen-rtl .chosen-results li.group-option{padding-right:15px;padding-left:0}.chosen-rtl.chosen-container-active.chosen-with-drop .chosen-single div{border-right:none}.chosen-rtl .chosen-search input[type=text]{padding:4px 5px 4px 20px;direction:rtl}.spftestimonial-field.spftestimonial-field-image_select.theme_style img{width:400px}.spftestimonial-field.spftestimonial-field-image_select.theme_style .spftestimonial-fieldset{margin-left:0;width:100%;float:none}.spftestimonial-field.spftestimonial-field-image_select.theme_style .spftestimonial-title{width:100%;margin-bottom:30px;float:none}.spftestimonial-field.spftestimonial-field-image_select.theme_style .spftestimonial--image{margin:0 24px 24px 0}.filter_style.spftestimonial-field-image_select img{width:80px}#sp_tpro_form_options .spftestimonial-metabox .spftestimonial-nav ul li a{color:#464646;background-color:#f5f5f5;border-top:0;border-right:0;border-bottom:1px solid #ccd0d4;margin-bottom:0;padding:15px 15px;font-size:14px;border-right:1px solid #e2e2e1;font-weight:600;text-transform:uppercase}#sp_tpro_form_options .spftestimonial-metabox .spftestimonial-nav ul li .spftestimonial-active{box-shadow:3px 0 0 0 #1595ce inset;background-color:#fff;color:#1595ce}#sp_tpro_form_options .spftestimonial-metabox .spftestimonial-nav-background{background-color:#f5f5f5;border-right:1px solid #ccd0d4;display:block}.spftestimonial-field-sortable.form_fields .spftestimonial-sortable .spftestimonial-sortable-item{margin:0;border:0}.spftestimonial-field-sortable.form_fields .spftestimonial-sortable-helper{display:none}.form_fields .spftestimonial-accordion-item::after{position:absolute;top:18px;right:16px;content:"\f0b2";display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.spftestimonial-field-sortable.form_fields .spftestimonial-sortable-content>.spftestimonial-field{padding:0;margin-bottom:5px}.sp-tpro-client-rating{float:left}.sp-tpro-client-rating:not(:checked)>input{visibility:hidden;display:none;width:0;height:0;float:right;top:100%;clip:rect(0,0,0,0);margin:0;padding:0;border:10px #fff solid}.sp-tpro-client-rating:not(:checked)>label{float:right;display:block;padding:0;margin:0;cursor:pointer;font-size:150%;line-height:1.2;color:#d4d4d4;width:1em}.sp-tpro-client-rating>input:checked~label{color:#f3bb00}.sp-tpro-client-rating:not(:checked)>label:hover,.sp-tpro-client-rating:not(:checked)>label:hover~label{color:#de7202}.sp-tpro-client-rating>input:checked+label:hover,.sp-tpro-client-rating>input:checked+label:hover~label,.sp-tpro-client-rating>input:checked~label:hover,.sp-tpro-client-rating>input:checked~label:hover~label,.sp-tpro-client-rating>label:hover~input:checked~label{color:#de7202}.spftestimonial-field-repeater.social-profile-repeater .spftestimonial-repeater-wrapper .spftestimonial-repeater-item{display:grid;grid-template-columns:9fr 1fr}.spftestimonial-field-repeater.social-profile-repeater .spftestimonial-repeater-content{display:grid;grid-template-columns:1fr 5fr}.spftestimonial-field-repeater.social-profile-repeater .spftestimonial-repeater-item{max-width:600px}.spftestimonial-field-repeater.social-profile-repeater .spftestimonial-repeater-helper{border-left:0;background-color:transparent}.spftestimonial-field-repeater.social-profile-repeater .spftestimonial-repeater-helper-inner{width:60px;line-height:4em}.spftestimonial-field-repeater .spftestimonial-repeater-helper i.spftestimonial-repeater-clone.far.fa-clone{display:none}.spftestimonial-field-select.tpro-exclude-testimonial .chosen-container,.spftestimonial-field-select.tpro-group-list .chosen-container,.spftestimonial-field-select.tpro-specific-testimonial .chosen-container{max-width:500px}.spftestimonial-field-select.tpro-group-operator .spftestimonial-fieldset,.spftestimonial-field-text.tpro-item-global-name .spftestimonial-fieldset{position:relative}.spftestimonial-field-select.tpro-group-operator .spftestimonial-help,.spftestimonial-field-text.tpro-item-global-name .spftestimonial-help{right:auto;display:inline-block}.spftestimonial-scode-wrap-side{pointer-events:none;opacity:.7;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}span.spftestimonial-shortcode-selectable{background-color:rgba(82,179,217,.11);padding:10px 15px 10px 30px;display:inline-block;border:1px solid #d1e4ef;border-radius:2px;cursor:pointer;border-radius:3px;word-break:break-word;position:relative;width:80%}span.spftestimonial-shortcode-selectable::after{content:url(../images/copy.svg);width:16px;left:10px;top:50%;position:absolute;margin-top:-6px}.spftestimonial-header-inner h1 img{height:24px;width:24px;margin-right:8px;margin-bottom:-4px}.spftestimonial-theme-light .spftestimonial-nav ul li .spftestimonial-active{box-shadow:3px 0 0 0 #1595ce inset;background-color:#fff;color:#1595ce}.spftestimonial-buttons .button.spftestimonial-save-ajax{background-color:#02cc7b;border-color:transparent;color:#fff!important;-webkit-box-shadow:none;box-shadow:none;text-shadow:none;border-radius:4px;height:38px;text-transform:uppercase;width:140px;-webkit-transition:background-color .2s;transition:background-color .2s}.spftestimonial-buttons .button.spftestimonial-reset-all,.spftestimonial-buttons .button.spftestimonial-reset-section{background-color:#cd3c3c!important;border-color:transparent!important;-webkit-box-shadow:none!important;box-shadow:none!important;text-shadow:none!important;text-transform:uppercase;border-radius:4px;height:38px;-webkit-transition:background-color .2s;transition:background-color .2s;color:#fff}.spftestimonial-buttons .button.spftestimonial-reset-section{background-color:#cd3c3c!important}.spftestimonial-buttons .button{margin:0 3px;line-height:26px;font-weight:600}.spftestimonial-field.spftestimonial-field-button_set.spt_export{margin-top:0;padding-top:0}.spftestimonial-field-button_set.spt_export .spftestimonial--button:hover,.spftestimonial-field.spftestimonial-field-custom_import.spt_import button:hover{background:#135e96;border-color:#135e96;color:#fff}.spftestimonial-field-button_set.spt_export .spftestimonial--button,.spftestimonial-field.spftestimonial-field-custom_import.spt_import button{background:#2271b1;border-color:#2271b1;color:#fff;text-decoration:none;text-shadow:none;display:inline-block;text-decoration:none;font-size:13px;line-height:2.15384615;min-height:30px;margin:0;padding:0 10px;cursor:pointer;border-width:1px;border-style:solid;-webkit-appearance:none;border-radius:3px;white-space:nowrap;box-sizing:border-box}.sp-lcp-options .spftestimonial-field-select .spftestimonial-fieldset{position:relative}.spftestimonial-field.spftestimonial-field-custom_import.spt_import .spftestimonial-fieldset{position:relative}.spftestimonial-field.spftestimonial-field-custom_import.spt_import p{padding-bottom:0;margin-bottom:1px}.spftestimonial-field.spftestimonial-field-custom_import.spt_import button{margin-top:10px;padding-bottom:0}.spftestimonial-field.spftestimonial-field-custom_import.spt_import .spftestimonial-help{cursor:help;position:absolute;top:80%;transform:translateY(-50%);padding:5px;font-size:14px;color:#aaa;width:15px;left:64px;text-align:left}.spftestimonial-field.spftestimonial-field-select.spt_post_forms_id .chosen-container .chosen-drop,.spftestimonial-field.spftestimonial-field-select.spt_post_id .chosen-container .chosen-drop{max-width:400px}.spftestimonial-field.spftestimonial-field-select.spt_post_forms_id .chosen-container,.spftestimonial-field.spftestimonial-field-select.spt_post_id .chosen-container{max-width:400px}.spftestimonial-field.spftestimonial-field-select.spt_post_forms_id,.spftestimonial-field.spftestimonial-field-select.spt_post_id{padding-top:0}.spftestimonial_tools .spftestimonial-header-inner h1.export-import img{height:24px}.spftestimonial_tools .spftestimonial-nav-options li:nth-child(1) a{background-image:url(../images/export-icon.svg)}.spftestimonial_tools .spftestimonial-nav-options li:nth-child(2) a{background-image:url(../images/import.svg)}.spftestimonial_tools .spftestimonial-nav-options li:nth-child(1) a.spftestimonial-active{background-image:url(../images/file-export-icon1.svg)}.spftestimonial_tools .spftestimonial-nav-options li:nth-child(2) a.spftestimonial-active{background-image:url(../images/file-import-icon1.svg)}.spt-main-class.spftestimonial-theme-light.spftestimonial_tools .spftestimonial-nav-options ul li a{padding:15px 30px;background-size:14px;background-position:10px center;background-repeat:no-repeat}.spftestimonial--image.pro-feature{position:relative;pointer-events:none}.spftestimonial--image.pro-feature::after{position:absolute;top:1px;right:1px;color:#a5a5a5;background-color:#e0e0e0;font-weight:500;padding:0 4px;content:'PRO';text-align:center;font-size:8px}.spftestimonial-field-subheading.pro_heading{opacity:.7}.pro_only_field,.sp-field-icon-select.spftestimonial-pro-only,.spftestimonial-field-button_set .spftestimonial--button.spftestimonial-pro-only,.spftestimonial-field-checkbox.pro_only_field,.spftestimonial-field-color.pro_only_field,.spftestimonial-field-image_select .spftestimonial--image.spftestimonial-pro-only,.spftestimonial-field.spftestimonial-field-text.pro_only_field{pointer-events:none;opacity:.8}.sp-field-icon-select.spftestimonial-pro-only{opacity:.5}.spftestimonial-field-repeater.social-profile-repeater .spftestimonial-repeater-wrapper .spftestimonial-repeater-item{display:grid;grid-template-columns:9fr 1fr}.spftestimonial-field-repeater.social-profile-repeater .spftestimonial-repeater-content{display:grid;grid-template-columns:1fr 5fr}.spftestimonial-field-repeater.social-profile-repeater .spftestimonial-repeater-item{max-width:600px}.spftestimonial-field-repeater.social-profile-repeater .spftestimonial-repeater-helper{border-left:0;background-color:transparent}.spftestimonial-field-repeater.social-profile-repeater .spftestimonial-repeater-helper-inner{width:100px;line-height:4em}.spftestimonial-field.spftestimonial-field-image_select.theme_style img{width:400px}.spftestimonial-field.spftestimonial-field-image_select.theme_style .spftestimonial-fieldset{margin-left:0}.spftestimonial-field.spftestimonial-field-image_select.theme_style .spftestimonial-title{width:100%;margin-bottom:30px;float:none}.spftestimonial-field.spftestimonial-field-image_select.theme_style .spftestimonial--image{margin:0 24px 24px 0}.spftestimonial-field-switcher.pro_switcher .spftestimonial--ball::after{content:"PRO";position:relative;text-align:center;width:24px;float:right;font-weight:600;font-size:8px;color:#a5a5a5;opacity:1;line-height:18px}.pro_switcher .spftestimonial--switcher{background-color:#cbcfd0;pointer-events:none}.sp-field-icon-select.spftestimonial-pro-only:last-child:after,.spftestimonial-field-button_set .spftestimonial--button.spftestimonial-pro-only:after{position:absolute;content:'';top:0;right:0;color:#999;background-color:#e0e0e0;font-weight:500;padding:0 4px;content:"PRO";text-align:center;font-size:8px;line-height:11px;opacity:1}.client_image_style.spftestimonial-field-image_select img{width:70px}.sp-field-icon-select.spftestimonial-pro-only:last-child:after{content:"PRO";color:#444}.spftestimonial-field.spftestimonial-field-checkbox .spftestimonial-help{bottom:15px;right:auto;top:auto}.spftestimonial-field.spftestimonial-field-checkbox .spftestimonial-help.spftestimonial-title-help{position:relative;bottom:0}.spftestimonial-field.spftestimonial-field-submessage.pro_only_field{opacity:.7}.spftestimonial-field-sortable.form_fields .spftestimonial--sortable .spftestimonial--sortable-item{margin:0;border:0}.spftestimonial-field-sortable.form_fields .spftestimonial--sortable-content>.spftestimonial-field{padding:0}.spftestimonial-field-sortable.form_fields .spftestimonial--sortable-helper{display:none}.form_fields .spftestimonial-accordion-items{position:relative}.form_fields .spftestimonial-accordion-item::after{position:absolute;top:18px;right:16px;content:"\f0b2";display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.spftestimonial-metabox .spftestimonial-field-form_upper_section{background:#f5fcff;padding:50px 15px 70px}.spftestimonial-field-form_upper_section .sp-tfree-help .sp-tfree-pro-features .feature-section span.dashicons{height:22px;width:22px;font-size:16px;line-height:22px}.spftestimonial-field-form_upper_section div.sp-tfree-help .sp-tfree-pro-features .feature-section{margin-bottom:40px;margin-left:auto;margin-right:auto;text-align:center;max-width:1200px}.spftestimonial-field-form_upper_section div.sp-tfree-help .sp-tfree-pro-features .feature-section .sp-tfree-feature{box-shadow:none;margin:0;border:0 solid;background-color:transparent}div.sp-tfree-help .sp-tfree-pro-features h1{font-size:30px;font-weight:500;color:#444}div.sp-tfree-help .sp-tfree-pro-features .sp-tfree-pro-subtitle{font-size:18px;font-weight:400}.spftestimonial-field-form_upper_section .sp-tfree-upgrade a.tfree-upgrade-btn:hover{background:#0a73a7}.spftestimonial-field-form_upper_section .sp-tfree-upgrade a.tfree-upgrade-btn{transition:all .5s;background:#1595ce;padding:0 25px;line-height:46px;display:block;color:#fff;border-radius:3px;font-weight:600;display:inline-block;text-align:center}.spftestimonial-field-form_upper_section .sp-tfree-pro-features .feature-section .sp-tfree-feature h3{color:#2d4d5b}.spftestimonial-field-form_upper_section .sp-tfree-help .feature-section .sp-tfree-feature{padding:0 0 10px;text-align:left}#sp_tpro_form_elements_options .handle-actions.hide-if-no-js,#sp_tpro_form_options .postbox-header,div#sp_tfree_form_upper_section .postbox-header,div#sp_tpro_form_elements_options .handle-actions.hide-if-no-js{display:none}#sp_tpro_form_options .spftestimonial-nav-metabox .spftestimonial--sortable-item .spftestimonial-accordion-title{pointer-events:none}#sp_tpro_form_options .spftestimonial-field-accordion .spftestimonial-accordion-title,#sp_tpro_form_options .spftestimonial-field-sortable.form_fields .spftestimonial--sortable-content>.spftestimonial-field,#sp_tpro_form_options .spftestimonial-nav-metabox,#sp_tpro_form_options .spftestimonial-nav-metabox li a{pointer-events:none}div#spftestimonial-section-sp_tpro_form_elements_options_1 .spftestimonial-field-checkbox ul{max-height:100%}#sp_tpro_form_options .spftestimonial-metabox .spftestimonial-nav{display:block;position:relative;z-index:10;float:left;width:225px}#sp_tpro_form_options .spftestimonial-metabox .spftestimonial-content{position:relative;margin-left:225px;background-color:#fff;-moz-transition:opacity .2s;-o-transition:opacity .2s;-webkit-transition:opacity .2s;transition:opacity .2s}#sp_tpro_form_options .spftestimonial-metabox .spftestimonial-nav ul li{display:list-item}#sp_tpro_form_options .spftestimonial-metabox .spftestimonial-nav ul li a{color:#464646;background-color:#f5f5f5;border-top:0;border-right:0;border-bottom:1px solid #ccd0d4;margin-bottom:0;padding:15px 15px;text-transform:uppercase;font-weight:600}#sp_tpro_form_options .spftestimonial-metabox .spftestimonial-nav ul li .spftestimonial-active{box-shadow:3px 0 0 0 #1595ce inset;background-color:#fff;color:#1595ce}#sp_tpro_form_options .spftestimonial-metabox .spftestimonial-nav-background{background-color:#f5f5f5;border-right:1px solid #ccd0d4;display:block}#sp_tpro_form_options .spftestimonial-field-sortable .spftestimonial-field-text input{max-width:400px}#sp_tpro-preview-box{overflow-x:auto;padding:0 20px;resize:vertical;min-height:150px}#sp_tpro_live_preview .postbox-header .handle-actions .handle-order-higher,#sp_tpro_live_preview .postbox-header .handle-actions .handle-order-lower{display:none}
admin/views/framework/assets/js/spftestimonial-plugins.js CHANGED
@@ -7,6 +7,7 @@
7
  *
8
  * MIT License
9
  *
 
10
  */
11
  (function($) {
12
 
@@ -145,7 +146,7 @@
145
 
146
  if( this.is_multiple ) {
147
 
148
- var $hidden_select = this.element.parent().find('.spftestimonial-hidden-select');
149
  var $hidden_value = $hidden_select.val() || [];
150
 
151
  this.element.SPFTESTIMONIALChosenOrder($hidden_value, true);
@@ -183,7 +184,9 @@
183
  function SPFTESTIMONIALAbstractChosenOrder() {}
184
 
185
  SPFTESTIMONIALAbstractChosenOrder.insertAt = function(node, index, parentNode) {
186
- return parentNode.insertBefore(node, parentNode.children[index].nextSibling);
 
 
187
  };
188
 
189
  SPFTESTIMONIALAbstractChosenOrder.getFlattenedOptionsAndGroups = function(select) {
@@ -1692,6 +1695,7 @@
1692
  * http://miohtama.github.com/jquery-interdependencies/
1693
  * Copyright 2012-2013 Mikko Ohtamaa, others
1694
  *
 
1695
  */
1696
  (function($) {
1697
 
@@ -1872,7 +1876,7 @@
1872
  if( result ) {
1873
 
1874
  $(controls).each(function() {
1875
- $(this).removeClass('hidden');
1876
  });
1877
 
1878
  $(this.rules).each(function() {
@@ -1882,7 +1886,7 @@
1882
  } else {
1883
 
1884
  $(controls).each(function() {
1885
- $(this).addClass('hidden');
1886
  });
1887
 
1888
  $(this.rules).each(function() {
@@ -1946,6 +1950,7 @@
1946
  * @license BSD
1947
  * @version 2.5.0
1948
  *
 
1949
  *
1950
  */
1951
  (function(root, factory) {
@@ -1971,7 +1976,7 @@
1971
  }(this, function(exports, $) {
1972
 
1973
  //
1974
- // Added custom patterns for spesific validate
1975
  //
1976
  var patterns = {
1977
  validate: /^(?!(_nonce|_pseudo))[a-zA-Z0-9_-]*(?:\[(?:\d*|(?!(_nonce|_pseudo))[a-zA-Z0-9_-]+)\])*$/i,
7
  *
8
  * MIT License
9
  *
10
+ *
11
  */
12
  (function($) {
13
 
146
 
147
  if( this.is_multiple ) {
148
 
149
+ var $hidden_select = this.element.parent().find('.spftestimonial-hide-select');
150
  var $hidden_value = $hidden_select.val() || [];
151
 
152
  this.element.SPFTESTIMONIALChosenOrder($hidden_value, true);
184
  function SPFTESTIMONIALAbstractChosenOrder() {}
185
 
186
  SPFTESTIMONIALAbstractChosenOrder.insertAt = function(node, index, parentNode) {
187
+ if (typeof parentNode.children[index] !== "undefined") {
188
+ return parentNode.insertBefore(node, parentNode.children[index].nextSibling);
189
+ }
190
  };
191
 
192
  SPFTESTIMONIALAbstractChosenOrder.getFlattenedOptionsAndGroups = function(select) {
1695
  * http://miohtama.github.com/jquery-interdependencies/
1696
  * Copyright 2012-2013 Mikko Ohtamaa, others
1697
  *
1698
+ *
1699
  */
1700
  (function($) {
1701
 
1876
  if( result ) {
1877
 
1878
  $(controls).each(function() {
1879
+ $(this).removeClass('spftestimonial-depend-on');
1880
  });
1881
 
1882
  $(this.rules).each(function() {
1886
  } else {
1887
 
1888
  $(controls).each(function() {
1889
+ $(this).addClass('spftestimonial-depend-on');
1890
  });
1891
 
1892
  $(this.rules).each(function() {
1950
  * @license BSD
1951
  * @version 2.5.0
1952
  *
1953
+ * Customized by Shapedplugin
1954
  *
1955
  */
1956
  (function(root, factory) {
1976
  }(this, function(exports, $) {
1977
 
1978
  //
1979
+ // Added custom patterns for specific validate.
1980
  //
1981
  var patterns = {
1982
  validate: /^(?!(_nonce|_pseudo))[a-zA-Z0-9_-]*(?:\[(?:\d*|(?!(_nonce|_pseudo))[a-zA-Z0-9_-]+)\])*$/i,
admin/views/framework/assets/js/spftestimonial-plugins.min.js CHANGED
@@ -1,4 +1,4 @@
1
- !function($){function SPFTESTIMONIALAjaxChosen(element,options){this.element=$(element),this.options=options,this.init()}SPFTESTIMONIALAjaxChosen.prototype.init=function(){this.element.chosen(this.options),this.container=this.element.next(".chosen-container"),this.search_field=this.container.find(".chosen-search-input"),this.is_multiple=this.container.hasClass("chosen-container-multi"),this.is_typing=!1,this.chosenXhr=null,this.events()},SPFTESTIMONIALAjaxChosen.prototype.events=function(){var _this=this;this.search_field.on("compositionstart",(function(){_this.is_typing=!0})),this.search_field.on("compositionend",(function(){_this.is_typing=!1,_this.update_list()})),this.search_field.on("keyup",(function(){_this.update_list()})),this.search_field.on("focus",(function(){_this.search_field_focused()}))},SPFTESTIMONIALAjaxChosen.prototype.search_field_focused=function(){this.search_welcome_message(),0===this.options.min_length&&0===this.search_field.val().length&&this.update_list()},SPFTESTIMONIALAjaxChosen.prototype.search_welcome_message=function(){var value=$.trim(this.search_field.val()),results=this.container.find(".chosen-results");0===results.children().length&&0===value.length&&results.html('<li class="no-results">'+this.options.typing_text.replace("%s",this.options.min_length-value.length)+"</li>")},SPFTESTIMONIALAjaxChosen.prototype.update_list=function(){var _this=this;if(this.search_welcome_message(),!this.is_typing){var value=$.trim(this.search_field.val()),message=value.length<this.options.min_length?this.options.typing_text.replace("%s",this.options.min_length-value.length):this.options.searching_text;this.container.find(".no-results").text(message),value!==this.search_field.data("prevVal")&&(this.search_field.data("prevVal",value),this.timer&&clearTimeout(this.timer),value.length<this.options.min_length||(this.timer=setTimeout((function(){_this.chosenXhr&&_this.chosenXhr.abort(),_this.options.data.term=value,_this.chosenXhr=window.wp.ajax.post("spftestimonial-chosen",_this.options.data).done((function(response){_this.show_results(response)})).fail((function(response){_this.container.find(".no-results").text(response.error)}))}),this.options.type_delay)))}},SPFTESTIMONIALAjaxChosen.prototype.show_results=function(items){var _this=this;if(!this.is_typing&&null!==items){if(0===items.length)return this.element.data().chosen.no_results_clear(),void this.element.data().chosen.no_results(this.search_field.val());var selected_values=[];this.element.find("option").each((function(){$(this).is(":selected")?selected_values.push($(this).val()+"-"+$(this).text()):$(this).attr("value").length&&$(this).remove()})),$.each(items,(function(i,item){-1===$.inArray(item.value+"-"+item.text,selected_values)&&$("<option />").attr("value",item.value).html(item.text).appendTo(_this.element)}));var value_before_trigger=this.search_field.val(),width_before_trigger=this.search_field.innerWidth();if(this.element.trigger("chosen:updated"),this.is_multiple){var $hidden_select,$hidden_value=this.element.parent().find(".spftestimonial-hidden-select").val()||[];this.element.SPFTESTIMONIALChosenOrder($hidden_value,!0),this.search_field.css("width",width_before_trigger)}this.search_field.val(value_before_trigger),null!==this.chosenXhr.done&&this.chosenXhr.done(items)}},$.fn.SPFTESTIMONIALAjaxChosen=function(chosenOptions){return this.each((function(){new SPFTESTIMONIALAjaxChosen(this,chosenOptions)}))}}(jQuery),function(){var $,SPFTESTIMONIALAbstractChosenOrder,_ref,__indexOf=[].indexOf||function(item){for(var i=0,l=this.length;i<l;i++)if(i in this&&this[i]===item)return i;return-1},__hasProp={}.hasOwnProperty,__extends=function(child,parent){for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);function ctor(){this.constructor=child}return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};SPFTESTIMONIALAbstractChosenOrder=function(){function SPFTESTIMONIALAbstractChosenOrder(){}return SPFTESTIMONIALAbstractChosenOrder.insertAt=function(node,index,parentNode){return parentNode.insertBefore(node,parentNode.children[index].nextSibling)},SPFTESTIMONIALAbstractChosenOrder.getFlattenedOptionsAndGroups=function(select){var flattened_options,opt,options,sub_opt,sub_options,_i,_j,_len,_len1;for(flattened_options=[],_i=0,_len=(options=Array.prototype.filter.call(select.childNodes,(function(o){var _ref;return"OPTION"===(_ref=o.nodeName.toUpperCase())||"OPTGROUP"===_ref}))).length;_i<_len;_i++)if(opt=options[_i],flattened_options.push(opt),"OPTGROUP"===opt.nodeName.toUpperCase())for(_j=0,_len1=(sub_options=Array.prototype.filter.call(opt.childNodes,(function(o){return"OPTION"===o.nodeName.toUpperCase()}))).length;_j<_len1;_j++)sub_opt=sub_options[_j],flattened_options.push(sub_opt);return flattened_options},SPFTESTIMONIALAbstractChosenOrder.isValidMultipleSelectElement=function(element){return null!=element&&"SELECT"===element.nodeName&&element.multiple},SPFTESTIMONIALAbstractChosenOrder.getChosenUIContainer=function(select){return""!==select.id?document.getElementById(select.id.replace(/-/g,"_")+"_chosen"):this.searchChosenUIContainer(select)},SPFTESTIMONIALAbstractChosenOrder.isChosenified=function(select){return null!=this.getChosenUIContainer(select)},SPFTESTIMONIALAbstractChosenOrder.forceSelection=function(select,selection){var i,opt,options,_ref;for(options=this.getFlattenedOptionsAndGroups(select),i=0;i<options.length;)_ref=(opt=options[i]).getAttribute("value"),__indexOf.call(selection,_ref)>=0?(opt.selected=!0,opt.setAttribute("selected","")):(opt.selected=!1,opt.removeAttribute("selected")),i++;return this.triggerEvent(select,"chosen:updated")},SPFTESTIMONIALAbstractChosenOrder.SPFTESTIMONIALChosenOrder=function(select,order,force){var chosen_choices,chosen_options,chosen_ui,i,j,opt,opt_val,option,options,rel,relAttributeName,_i,_j,_len,_len1,_results;if(null!=this.getDOMElement&&(select=this.getDOMElement(select)),this.isValidMultipleSelectElement(select)&&null!=(chosen_ui=this.getChosenUIContainer(select))&&order instanceof Array){for(order=order.map(Function.prototype.call,String.prototype.trim),options=this.getFlattenedOptionsAndGroups(select),null!=force&&!0===force&&this.forceSelection(select,order),_results=[],i=_i=0,_len=order.length;_i<_len;i=++_i){for(opt_val=order[i],rel=null,j=_j=0,_len1=options.length;_j<_len1;j=++_j)(opt=options[j]).value===opt_val&&(rel=j);chosen_options=chosen_ui.querySelectorAll(".search-choice"),relAttributeName=this.relAttributeName,null!=(option=Array.prototype.filter.call(chosen_options,(function(o){return null!=o.querySelector("a.search-choice-close["+relAttributeName+'="'+rel+'"]')}))[0])&&(chosen_choices=chosen_ui.querySelector("ul.chosen-choices"),_results.push(this.insertAt(option,i,chosen_ui.querySelector("ul.chosen-choices"))))}return _results}},SPFTESTIMONIALAbstractChosenOrder}(),($=jQuery).fn.extend({SPFTESTIMONIALChosenOrder:function(order,force){return _SPFTESTIMONIALChosenOrder.SPFTESTIMONIALChosenOrder(this,order,force)}}),this._SPFTESTIMONIALChosenOrder=function(_super){function _SPFTESTIMONIALChosenOrder(){return _ref=_SPFTESTIMONIALChosenOrder.__super__.constructor.apply(this,arguments)}return __extends(_SPFTESTIMONIALChosenOrder,_super),_SPFTESTIMONIALChosenOrder.relAttributeName="data-option-array-index",_SPFTESTIMONIALChosenOrder.isjQueryObject=function(obj){return"undefined"!=typeof jQuery&&null!==jQuery&&obj instanceof jQuery},_SPFTESTIMONIALChosenOrder.getDOMElement=function(element){return this.isjQueryObject(element)?element.get(0):element},_SPFTESTIMONIALChosenOrder.searchChosenUIContainer=function(element){return null!=$(element).data("chosen")?$(element).data("chosen").container[0]:$(element).next(".chosen-container.chosen-container-multi").get(0)},_SPFTESTIMONIALChosenOrder.triggerEvent=function(target,event_name){return $(target).trigger(event_name)},_SPFTESTIMONIALChosenOrder}(SPFTESTIMONIALAbstractChosenOrder)}.call(this),function(){var $,AbstractChosen,Chosen,SelectParser,bind=function(fn,me){return function(){return fn.apply(me,arguments)}},extend=function(child,parent){for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);function ctor(){this.constructor=child}return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;(SelectParser=function(){function SelectParser(){this.options_index=0,this.parsed=[]}return SelectParser.prototype.add_node=function(child){return"OPTGROUP"===child.nodeName.toUpperCase()?this.add_group(child):this.add_option(child)},SelectParser.prototype.add_group=function(group){var group_position,i,len,option,ref,results1;for(group_position=this.parsed.length,this.parsed.push({array_index:group_position,group:!0,label:group.label,title:group.title?group.title:void 0,children:0,disabled:group.disabled,classes:group.className}),results1=[],i=0,len=(ref=group.childNodes).length;i<len;i++)option=ref[i],results1.push(this.add_option(option,group_position,group.disabled));return results1},SelectParser.prototype.add_option=function(option,group_position,group_disabled){if("OPTION"===option.nodeName.toUpperCase())return""!==option.text?(null!=group_position&&(this.parsed[group_position].children+=1),this.parsed.push({array_index:this.parsed.length,options_index:this.options_index,value:option.value,text:option.text,html:option.innerHTML,title:option.title?option.title:void 0,selected:option.selected,disabled:!0===group_disabled?group_disabled:option.disabled,group_array_index:group_position,group_label:null!=group_position?this.parsed[group_position].label:null,classes:option.className,style:option.style.cssText})):this.parsed.push({array_index:this.parsed.length,options_index:this.options_index,empty:!0}),this.options_index+=1},SelectParser}()).select_to_array=function(select){var child,i,len,parser,ref;for(parser=new SelectParser,i=0,len=(ref=select.childNodes).length;i<len;i++)child=ref[i],parser.add_node(child);return parser.parsed},AbstractChosen=function(){function AbstractChosen(form_field,options1){this.form_field=form_field,this.options=null!=options1?options1:{},this.label_click_handler=bind(this.label_click_handler,this),AbstractChosen.browser_is_supported()&&(this.is_multiple=this.form_field.multiple,this.set_default_text(),this.set_default_values(),this.setup(),this.set_up_html(),this.register_observers(),this.on_ready())}return AbstractChosen.prototype.set_default_values=function(){var _this;return this.click_test_action=(_this=this,function(evt){return _this.test_active_click(evt)}),this.activate_action=function(_this){return function(evt){return _this.activate_field(evt)}}(this),this.active_field=!1,this.mouse_on_container=!1,this.results_showing=!1,this.result_highlighted=null,this.is_rtl=this.options.rtl||/\bchosen-rtl\b/.test(this.form_field.className),this.allow_single_deselect=null!=this.options.allow_single_deselect&&null!=this.form_field.options[0]&&""===this.form_field.options[0].text&&this.options.allow_single_deselect,this.disable_search_threshold=this.options.disable_search_threshold||0,this.disable_search=this.options.disable_search||!1,this.enable_split_word_search=null==this.options.enable_split_word_search||this.options.enable_split_word_search,this.group_search=null==this.options.group_search||this.options.group_search,this.search_contains=this.options.search_contains||!1,this.single_backstroke_delete=null==this.options.single_backstroke_delete||this.options.single_backstroke_delete,this.max_selected_options=this.options.max_selected_options||1/0,this.inherit_select_classes=this.options.inherit_select_classes||!1,this.display_selected_options=null==this.options.display_selected_options||this.options.display_selected_options,this.display_disabled_options=null==this.options.display_disabled_options||this.options.display_disabled_options,this.include_group_label_in_selected=this.options.include_group_label_in_selected||!1,this.max_shown_results=this.options.max_shown_results||Number.POSITIVE_INFINITY,this.case_sensitive_search=this.options.case_sensitive_search||!1,this.hide_results_on_select=null==this.options.hide_results_on_select||this.options.hide_results_on_select},AbstractChosen.prototype.set_default_text=function(){return this.form_field.getAttribute("data-placeholder")?this.default_text=this.form_field.getAttribute("data-placeholder"):this.is_multiple?this.default_text=this.options.placeholder_text_multiple||this.options.placeholder_text||AbstractChosen.default_multiple_text:this.default_text=this.options.placeholder_text_single||this.options.placeholder_text||AbstractChosen.default_single_text,this.default_text=this.escape_html(this.default_text),this.results_none_found=this.form_field.getAttribute("data-no_results_text")||this.options.no_results_text||AbstractChosen.default_no_result_text},AbstractChosen.prototype.choice_label=function(item){return this.include_group_label_in_selected&&null!=item.group_label?"<b class='group-name'>"+this.escape_html(item.group_label)+"</b>"+item.html:item.html},AbstractChosen.prototype.mouse_enter=function(){return this.mouse_on_container=!0},AbstractChosen.prototype.mouse_leave=function(){return this.mouse_on_container=!1},AbstractChosen.prototype.input_focus=function(evt){if(this.is_multiple){if(!this.active_field)return setTimeout((_this=this,function(){return _this.container_mousedown()}),50)}else if(!this.active_field)return this.activate_field();var _this},AbstractChosen.prototype.input_blur=function(evt){if(!this.mouse_on_container)return this.active_field=!1,setTimeout((_this=this,function(){return _this.blur_test()}),100);var _this},AbstractChosen.prototype.label_click_handler=function(evt){return this.is_multiple?this.container_mousedown(evt):this.activate_field()},AbstractChosen.prototype.results_option_build=function(options){var content,data,data_content,i,len,ref,shown_results;for(content="",shown_results=0,i=0,len=(ref=this.results_data).length;i<len&&(data_content="",""!==(data_content=(data=ref[i]).group?this.result_add_group(data):this.result_add_option(data))&&(shown_results++,content+=data_content),(null!=options?options.first:void 0)&&(data.selected&&this.is_multiple?this.choice_build(data):data.selected&&!this.is_multiple&&this.single_set_selected_text(this.choice_label(data))),!(shown_results>=this.max_shown_results));i++);return content},AbstractChosen.prototype.result_add_option=function(option){var classes,option_el;return option.search_match&&this.include_option_in_results(option)?(classes=[],option.disabled||option.selected&&this.is_multiple||classes.push("active-result"),!option.disabled||option.selected&&this.is_multiple||classes.push("disabled-result"),option.selected&&classes.push("result-selected"),null!=option.group_array_index&&classes.push("group-option"),""!==option.classes&&classes.push(option.classes),(option_el=document.createElement("li")).className=classes.join(" "),option.style&&(option_el.style.cssText=option.style),option_el.setAttribute("data-option-array-index",option.array_index),option_el.innerHTML=option.highlighted_html||option.html,option.title&&(option_el.title=option.title),this.outerHTML(option_el)):""},AbstractChosen.prototype.result_add_group=function(group){var classes,group_el;return(group.search_match||group.group_match)&&group.active_options>0?((classes=[]).push("group-result"),group.classes&&classes.push(group.classes),(group_el=document.createElement("li")).className=classes.join(" "),group_el.innerHTML=group.highlighted_html||this.escape_html(group.label),group.title&&(group_el.title=group.title),this.outerHTML(group_el)):""},AbstractChosen.prototype.results_update_field=function(){if(this.set_default_text(),this.is_multiple||this.results_reset_cleanup(),this.result_clear_highlight(),this.results_build(),this.results_showing)return this.winnow_results()},AbstractChosen.prototype.reset_single_select_options=function(){var i,len,ref,result,results1;for(results1=[],i=0,len=(ref=this.results_data).length;i<len;i++)(result=ref[i]).selected?results1.push(result.selected=!1):results1.push(void 0);return results1},AbstractChosen.prototype.results_toggle=function(){return this.results_showing?this.results_hide():this.results_show()},AbstractChosen.prototype.results_search=function(evt){return this.results_showing?this.winnow_results():this.results_show()},AbstractChosen.prototype.winnow_results=function(options){var escapedQuery,fix,i,len,option,prefix,query,ref,regex,results,results_group,search_match,startpos,suffix,text;for(this.no_results_clear(),results=0,escapedQuery=(query=this.get_search_text()).replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),regex=this.get_search_regex(escapedQuery),i=0,len=(ref=this.results_data).length;i<len;i++)(option=ref[i]).search_match=!1,results_group=null,search_match=null,option.highlighted_html="",this.include_option_in_results(option)&&(option.group&&(option.group_match=!1,option.active_options=0),null!=option.group_array_index&&this.results_data[option.group_array_index]&&(0===(results_group=this.results_data[option.group_array_index]).active_options&&results_group.search_match&&(results+=1),results_group.active_options+=1),text=option.group?option.label:option.text,option.group&&!this.group_search||(search_match=this.search_string_match(text,regex),option.search_match=null!=search_match,option.search_match&&!option.group&&(results+=1),option.search_match?(query.length&&(startpos=search_match.index,prefix=text.slice(0,startpos),fix=text.slice(startpos,startpos+query.length),suffix=text.slice(startpos+query.length),option.highlighted_html=this.escape_html(prefix)+"<em>"+this.escape_html(fix)+"</em>"+this.escape_html(suffix)),null!=results_group&&(results_group.group_match=!0)):null!=option.group_array_index&&this.results_data[option.group_array_index].search_match&&(option.search_match=!0)));return this.result_clear_highlight(),results<1&&query.length?(this.update_results_content(""),this.no_results(query)):(this.update_results_content(this.results_option_build()),(null!=options?options.skip_highlight:void 0)?void 0:this.winnow_results_set_highlight())},AbstractChosen.prototype.get_search_regex=function(escaped_search_string){var regex_flag,regex_string;return regex_string=this.search_contains?escaped_search_string:"(^|\\s|\\b)"+escaped_search_string+"[^\\s]*",this.enable_split_word_search||this.search_contains||(regex_string="^"+regex_string),regex_flag=this.case_sensitive_search?"":"i",new RegExp(regex_string,regex_flag)},AbstractChosen.prototype.search_string_match=function(search_string,regex){var match;return match=regex.exec(search_string),!this.search_contains&&(null!=match?match[1]:void 0)&&(match.index+=1),match},AbstractChosen.prototype.choices_count=function(){var i,len,option,ref;if(null!=this.selected_option_count)return this.selected_option_count;for(this.selected_option_count=0,i=0,len=(ref=this.form_field.options).length;i<len;i++)(option=ref[i]).selected&&(this.selected_option_count+=1);return this.selected_option_count},AbstractChosen.prototype.choices_click=function(evt){if(evt.preventDefault(),this.activate_field(),!this.results_showing&&!this.is_disabled)return this.results_show()},AbstractChosen.prototype.keydown_checker=function(evt){var ref,stroke;switch(stroke=null!=(ref=evt.which)?ref:evt.keyCode,this.search_field_scale(),8!==stroke&&this.pending_backstroke&&this.clear_backstroke(),stroke){case 8:this.backstroke_length=this.get_search_field_value().length;break;case 9:this.results_showing&&!this.is_multiple&&this.result_select(evt),this.mouse_on_container=!1;break;case 13:case 27:this.results_showing&&evt.preventDefault();break;case 32:this.disable_search&&evt.preventDefault();break;case 38:evt.preventDefault(),this.keyup_arrow();break;case 40:evt.preventDefault(),this.keydown_arrow()}},AbstractChosen.prototype.keyup_checker=function(evt){var ref,stroke;switch(stroke=null!=(ref=evt.which)?ref:evt.keyCode,this.search_field_scale(),stroke){case 8:this.is_multiple&&this.backstroke_length<1&&this.choices_count()>0?this.keydown_backstroke():this.pending_backstroke||(this.result_clear_highlight(),this.results_search());break;case 13:evt.preventDefault(),this.results_showing&&this.result_select(evt);break;case 27:this.results_showing&&this.results_hide();break;case 9:case 16:case 17:case 18:case 38:case 40:case 91:break;default:this.results_search()}},AbstractChosen.prototype.clipboard_event_checker=function(evt){var _this;if(!this.is_disabled)return setTimeout((_this=this,function(){return _this.results_search()}),50)},AbstractChosen.prototype.container_width=function(){return null!=this.options.width?this.options.width:this.form_field.offsetWidth+"px"},AbstractChosen.prototype.include_option_in_results=function(option){return!(this.is_multiple&&!this.display_selected_options&&option.selected)&&(!(!this.display_disabled_options&&option.disabled)&&!option.empty)},AbstractChosen.prototype.search_results_touchstart=function(evt){return this.touch_started=!0,this.search_results_mouseover(evt)},AbstractChosen.prototype.search_results_touchmove=function(evt){return this.touch_started=!1,this.search_results_mouseout(evt)},AbstractChosen.prototype.search_results_touchend=function(evt){if(this.touch_started)return this.search_results_mouseup(evt)},AbstractChosen.prototype.outerHTML=function(element){var tmp;return element.outerHTML?element.outerHTML:((tmp=document.createElement("div")).appendChild(element),tmp.innerHTML)},AbstractChosen.prototype.get_single_html=function(){return'<a class="chosen-single chosen-default">\n <span>'+this.default_text+'</span>\n <div><b></b></div>\n</a>\n<div class="chosen-drop">\n <div class="chosen-search">\n <input class="chosen-search-input" type="text" autocomplete="off" />\n </div>\n <ul class="chosen-results"></ul>\n</div>'},AbstractChosen.prototype.get_multi_html=function(){return'<ul class="chosen-choices">\n <li class="search-field">\n <input class="chosen-search-input" type="text" autocomplete="off" value="'+this.default_text+'" />\n </li>\n</ul>\n<div class="chosen-drop">\n <ul class="chosen-results"></ul>\n</div>'},AbstractChosen.prototype.get_no_results_html=function(terms){return'<li class="no-results">\n '+this.results_none_found+" <span>"+this.escape_html(terms)+"</span>\n</li>"},AbstractChosen.browser_is_supported=function(){return"Microsoft Internet Explorer"===window.navigator.appName?document.documentMode>=8:!(/iP(od|hone)/i.test(window.navigator.userAgent)||/IEMobile/i.test(window.navigator.userAgent)||/Windows Phone/i.test(window.navigator.userAgent)||/BlackBerry/i.test(window.navigator.userAgent)||/BB10/i.test(window.navigator.userAgent)||/Android.*Mobile/i.test(window.navigator.userAgent))},AbstractChosen.default_multiple_text="Select Some Options",AbstractChosen.default_single_text="Select an Option",AbstractChosen.default_no_result_text="No results match",AbstractChosen}(),($=jQuery).fn.extend({chosen:function(options){return AbstractChosen.browser_is_supported()?this.each((function(input_field){var $this,chosen;chosen=($this=$(this)).data("chosen"),"destroy"!==options?chosen instanceof Chosen||$this.data("chosen",new Chosen(this,options)):chosen instanceof Chosen&&chosen.destroy()})):this}}),Chosen=function(superClass){function Chosen(){return Chosen.__super__.constructor.apply(this,arguments)}return extend(Chosen,superClass),Chosen.prototype.setup=function(){return this.form_field_jq=$(this.form_field),this.current_selectedIndex=this.form_field.selectedIndex},Chosen.prototype.set_up_html=function(){var container_classes,container_props;return(container_classes=["chosen-container"]).push("chosen-container-"+(this.is_multiple?"multi":"single")),this.inherit_select_classes&&this.form_field.className&&container_classes.push(this.form_field.className),this.is_rtl&&container_classes.push("chosen-rtl"),container_props={class:container_classes.join(" "),title:this.form_field.title},this.form_field.id.length&&(container_props.id=this.form_field.id.replace(/[^\w]/g,"_")+"_chosen"),this.container=$("<div />",container_props),this.container.width(this.container_width()),this.is_multiple?this.container.html(this.get_multi_html()):this.container.html(this.get_single_html()),this.form_field_jq.hide().after(this.container),this.dropdown=this.container.find("div.chosen-drop").first(),this.search_field=this.container.find("input").first(),this.search_results=this.container.find("ul.chosen-results").first(),this.search_field_scale(),this.search_no_results=this.container.find("li.no-results").first(),this.is_multiple?(this.search_choices=this.container.find("ul.chosen-choices").first(),this.search_container=this.container.find("li.search-field").first()):(this.search_container=this.container.find("div.chosen-search").first(),this.selected_item=this.container.find(".chosen-single").first()),this.results_build(),this.set_tab_index(),this.set_label_behavior()},Chosen.prototype.on_ready=function(){return this.form_field_jq.trigger("chosen:ready",{chosen:this})},Chosen.prototype.register_observers=function(){var _this;return this.container.on("touchstart.chosen",(_this=this,function(evt){_this.container_mousedown(evt)})),this.container.on("touchend.chosen",function(_this){return function(evt){_this.container_mouseup(evt)}}(this)),this.container.on("mousedown.chosen",function(_this){return function(evt){_this.container_mousedown(evt)}}(this)),this.container.on("mouseup.chosen",function(_this){return function(evt){_this.container_mouseup(evt)}}(this)),this.container.on("mouseenter.chosen",function(_this){return function(evt){_this.mouse_enter(evt)}}(this)),this.container.on("mouseleave.chosen",function(_this){return function(evt){_this.mouse_leave(evt)}}(this)),this.search_results.on("mouseup.chosen",function(_this){return function(evt){_this.search_results_mouseup(evt)}}(this)),this.search_results.on("mouseover.chosen",function(_this){return function(evt){_this.search_results_mouseover(evt)}}(this)),this.search_results.on("mouseout.chosen",function(_this){return function(evt){_this.search_results_mouseout(evt)}}(this)),this.search_results.on("mousewheel.chosen DOMMouseScroll.chosen",function(_this){return function(evt){_this.search_results_mousewheel(evt)}}(this)),this.search_results.on("touchstart.chosen",function(_this){return function(evt){_this.search_results_touchstart(evt)}}(this)),this.search_results.on("touchmove.chosen",function(_this){return function(evt){_this.search_results_touchmove(evt)}}(this)),this.search_results.on("touchend.chosen",function(_this){return function(evt){_this.search_results_touchend(evt)}}(this)),this.form_field_jq.on("chosen:updated.chosen",function(_this){return function(evt){_this.results_update_field(evt)}}(this)),this.form_field_jq.on("chosen:activate.chosen",function(_this){return function(evt){_this.activate_field(evt)}}(this)),this.form_field_jq.on("chosen:open.chosen",function(_this){return function(evt){_this.container_mousedown(evt)}}(this)),this.form_field_jq.on("chosen:close.chosen",function(_this){return function(evt){_this.close_field(evt)}}(this)),this.search_field.on("blur.chosen",function(_this){return function(evt){_this.input_blur(evt)}}(this)),this.search_field.on("keyup.chosen",function(_this){return function(evt){_this.keyup_checker(evt)}}(this)),this.search_field.on("keydown.chosen",function(_this){return function(evt){_this.keydown_checker(evt)}}(this)),this.search_field.on("focus.chosen",function(_this){return function(evt){_this.input_focus(evt)}}(this)),this.search_field.on("cut.chosen",function(_this){return function(evt){_this.clipboard_event_checker(evt)}}(this)),this.search_field.on("paste.chosen",function(_this){return function(evt){_this.clipboard_event_checker(evt)}}(this)),this.is_multiple?this.search_choices.on("click.chosen",function(_this){return function(evt){_this.choices_click(evt)}}(this)):this.container.on("click.chosen",(function(evt){evt.preventDefault()}))},Chosen.prototype.destroy=function(){return $(this.container[0].ownerDocument).off("click.chosen",this.click_test_action),this.form_field_label.length>0&&this.form_field_label.off("click.chosen"),this.search_field[0].tabIndex&&(this.form_field_jq[0].tabIndex=this.search_field[0].tabIndex),this.container.remove(),this.form_field_jq.removeData("chosen"),this.form_field_jq.show()},Chosen.prototype.search_field_disabled=function(){return this.is_disabled=this.form_field.disabled||this.form_field_jq.parents("fieldset").is(":disabled"),this.container.toggleClass("chosen-disabled",this.is_disabled),this.search_field[0].disabled=this.is_disabled,this.is_multiple||this.selected_item.off("focus.chosen",this.activate_field),this.is_disabled?this.close_field():this.is_multiple?void 0:this.selected_item.on("focus.chosen",this.activate_field)},Chosen.prototype.container_mousedown=function(evt){var ref;if(!this.is_disabled)return!evt||"mousedown"!==(ref=evt.type)&&"touchstart"!==ref||this.results_showing||evt.preventDefault(),null!=evt&&$(evt.target).hasClass("search-choice-close")?void 0:(this.active_field?this.is_multiple||!evt||$(evt.target)[0]!==this.selected_item[0]&&!$(evt.target).parents("a.chosen-single").length||(evt.preventDefault(),this.results_toggle()):(this.is_multiple&&this.search_field.val(""),$(this.container[0].ownerDocument).on("click.chosen",this.click_test_action),this.results_show()),this.activate_field())},Chosen.prototype.container_mouseup=function(evt){if("ABBR"===evt.target.nodeName&&!this.is_disabled)return this.results_reset(evt)},Chosen.prototype.search_results_mousewheel=function(evt){var delta;if(evt.originalEvent&&(delta=evt.originalEvent.deltaY||-evt.originalEvent.wheelDelta||evt.originalEvent.detail),null!=delta)return evt.preventDefault(),"DOMMouseScroll"===evt.type&&(delta*=40),this.search_results.scrollTop(delta+this.search_results.scrollTop())},Chosen.prototype.blur_test=function(evt){if(!this.active_field&&this.container.hasClass("chosen-container-active"))return this.close_field()},Chosen.prototype.close_field=function(){return $(this.container[0].ownerDocument).off("click.chosen",this.click_test_action),this.active_field=!1,this.results_hide(),this.container.removeClass("chosen-container-active"),this.clear_backstroke(),this.show_search_field_default(),this.search_field_scale(),this.search_field.blur()},Chosen.prototype.activate_field=function(){if(!this.is_disabled)return this.container.addClass("chosen-container-active"),this.active_field=!0,this.search_field.val(this.search_field.val()),this.search_field.focus()},Chosen.prototype.test_active_click=function(evt){var active_container;return(active_container=$(evt.target).closest(".chosen-container")).length&&this.container[0]===active_container[0]?this.active_field=!0:this.close_field()},Chosen.prototype.results_build=function(){return this.parsing=!0,this.selected_option_count=null,this.results_data=SelectParser.select_to_array(this.form_field),this.is_multiple?this.search_choices.find("li.search-choice").remove():(this.single_set_selected_text(),this.disable_search||this.form_field.options.length<=this.disable_search_threshold?(this.search_field[0].readOnly=!0,this.container.addClass("chosen-container-single-nosearch")):(this.search_field[0].readOnly=!1,this.container.removeClass("chosen-container-single-nosearch"))),this.update_results_content(this.results_option_build({first:!0})),this.search_field_disabled(),this.show_search_field_default(),this.search_field_scale(),this.parsing=!1},Chosen.prototype.result_do_highlight=function(el){var high_bottom,high_top,maxHeight,visible_bottom,visible_top;if(el.length){if(this.result_clear_highlight(),this.result_highlight=el,this.result_highlight.addClass("highlighted"),visible_bottom=(maxHeight=parseInt(this.search_results.css("maxHeight"),10))+(visible_top=this.search_results.scrollTop()),(high_bottom=(high_top=this.result_highlight.position().top+this.search_results.scrollTop())+this.result_highlight.outerHeight())>=visible_bottom)return this.search_results.scrollTop(high_bottom-maxHeight>0?high_bottom-maxHeight:0);if(high_top<visible_top)return this.search_results.scrollTop(high_top)}},Chosen.prototype.result_clear_highlight=function(){return this.result_highlight&&this.result_highlight.removeClass("highlighted"),this.result_highlight=null},Chosen.prototype.results_show=function(){return this.is_multiple&&this.max_selected_options<=this.choices_count()?(this.form_field_jq.trigger("chosen:maxselected",{chosen:this}),!1):(this.container.addClass("chosen-with-drop"),this.results_showing=!0,this.search_field.focus(),this.search_field.val(this.get_search_field_value()),this.winnow_results(),this.form_field_jq.trigger("chosen:showing_dropdown",{chosen:this}))},Chosen.prototype.update_results_content=function(content){return this.search_results.html(content)},Chosen.prototype.results_hide=function(){return this.results_showing&&(this.result_clear_highlight(),this.container.removeClass("chosen-with-drop"),this.form_field_jq.trigger("chosen:hiding_dropdown",{chosen:this})),this.results_showing=!1},Chosen.prototype.set_tab_index=function(el){var ti;if(this.form_field.tabIndex)return ti=this.form_field.tabIndex,this.form_field.tabIndex=-1,this.search_field[0].tabIndex=ti},Chosen.prototype.set_label_behavior=function(){if(this.form_field_label=this.form_field_jq.parents("label"),!this.form_field_label.length&&this.form_field.id.length&&(this.form_field_label=$("label[for='"+this.form_field.id+"']")),this.form_field_label.length>0)return this.form_field_label.on("click.chosen",this.label_click_handler)},Chosen.prototype.show_search_field_default=function(){return this.is_multiple&&this.choices_count()<1&&!this.active_field?(this.search_field.val(this.default_text),this.search_field.addClass("default")):(this.search_field.val(""),this.search_field.removeClass("default"))},Chosen.prototype.search_results_mouseup=function(evt){var target;if((target=$(evt.target).hasClass("active-result")?$(evt.target):$(evt.target).parents(".active-result").first()).length)return this.result_highlight=target,this.result_select(evt),this.search_field.focus()},Chosen.prototype.search_results_mouseover=function(evt){var target;if(target=$(evt.target).hasClass("active-result")?$(evt.target):$(evt.target).parents(".active-result").first())return this.result_do_highlight(target)},Chosen.prototype.search_results_mouseout=function(evt){if($(evt.target).hasClass("active-result")||$(evt.target).parents(".active-result").first())return this.result_clear_highlight()},Chosen.prototype.choice_build=function(item){var choice,close_link,_this;return choice=$("<li />",{class:"search-choice"}).html("<span>"+this.choice_label(item)+"</span>"),item.disabled?choice.addClass("search-choice-disabled"):((close_link=$("<a />",{class:"search-choice-close","data-option-array-index":item.array_index})).on("click.chosen",(_this=this,function(evt){return _this.choice_destroy_link_click(evt)})),choice.append(close_link)),this.search_container.before(choice)},Chosen.prototype.choice_destroy_link_click=function(evt){if(evt.preventDefault(),evt.stopPropagation(),!this.is_disabled)return this.choice_destroy($(evt.target))},Chosen.prototype.choice_destroy=function(link){if(this.result_deselect(link[0].getAttribute("data-option-array-index")))return this.active_field?this.search_field.focus():this.show_search_field_default(),this.is_multiple&&this.choices_count()>0&&this.get_search_field_value().length<1&&this.results_hide(),link.parents("li").first().remove(),this.search_field_scale()},Chosen.prototype.results_reset=function(){if(this.reset_single_select_options(),this.form_field.options[0].selected=!0,this.single_set_selected_text(),this.show_search_field_default(),this.results_reset_cleanup(),this.trigger_form_field_change(),this.active_field)return this.results_hide()},Chosen.prototype.results_reset_cleanup=function(){return this.current_selectedIndex=this.form_field.selectedIndex,this.selected_item.find("abbr").remove()},Chosen.prototype.result_select=function(evt){var high,item;if(this.result_highlight)return high=this.result_highlight,this.result_clear_highlight(),this.is_multiple&&this.max_selected_options<=this.choices_count()?(this.form_field_jq.trigger("chosen:maxselected",{chosen:this}),!1):(this.is_multiple?high.removeClass("active-result"):this.reset_single_select_options(),high.addClass("result-selected"),(item=this.results_data[high[0].getAttribute("data-option-array-index")]).selected=!0,this.form_field.options[item.options_index].selected=!0,this.selected_option_count=null,this.is_multiple?this.choice_build(item):this.single_set_selected_text(this.choice_label(item)),this.is_multiple&&(!this.hide_results_on_select||evt.metaKey||evt.ctrlKey)?evt.metaKey||evt.ctrlKey?this.winnow_results({skip_highlight:!0}):(this.search_field.val(""),this.winnow_results()):(this.results_hide(),this.show_search_field_default()),(this.is_multiple||this.form_field.selectedIndex!==this.current_selectedIndex)&&this.trigger_form_field_change({selected:this.form_field.options[item.options_index].value}),this.current_selectedIndex=this.form_field.selectedIndex,evt.preventDefault(),this.search_field_scale())},Chosen.prototype.single_set_selected_text=function(text){return null==text&&(text=this.default_text),text===this.default_text?this.selected_item.addClass("chosen-default"):(this.single_deselect_control_build(),this.selected_item.removeClass("chosen-default")),this.selected_item.find("span").html(text)},Chosen.prototype.result_deselect=function(pos){var result_data;return result_data=this.results_data[pos],!this.form_field.options[result_data.options_index].disabled&&(result_data.selected=!1,this.form_field.options[result_data.options_index].selected=!1,this.selected_option_count=null,this.result_clear_highlight(),this.results_showing&&this.winnow_results(),this.trigger_form_field_change({deselected:this.form_field.options[result_data.options_index].value}),this.search_field_scale(),!0)},Chosen.prototype.single_deselect_control_build=function(){if(this.allow_single_deselect)return this.selected_item.find("abbr").length||this.selected_item.find("span").first().after('<abbr class="search-choice-close"></abbr>'),this.selected_item.addClass("chosen-single-with-deselect")},Chosen.prototype.get_search_field_value=function(){return this.search_field.val()},Chosen.prototype.get_search_text=function(){return $.trim(this.get_search_field_value())},Chosen.prototype.escape_html=function(text){return $("<div/>").text(text).html()},Chosen.prototype.winnow_results_set_highlight=function(){var do_high,selected_results;if(null!=(do_high=(selected_results=this.is_multiple?[]:this.search_results.find(".result-selected.active-result")).length?selected_results.first():this.search_results.find(".active-result").first()))return this.result_do_highlight(do_high)},Chosen.prototype.no_results=function(terms){var no_results_html;return no_results_html=this.get_no_results_html(terms),this.search_results.append(no_results_html),this.form_field_jq.trigger("chosen:no_results",{chosen:this})},Chosen.prototype.no_results_clear=function(){return this.search_results.find(".no-results").remove()},Chosen.prototype.keydown_arrow=function(){var next_sib;return this.results_showing&&this.result_highlight?(next_sib=this.result_highlight.nextAll("li.active-result").first())?this.result_do_highlight(next_sib):void 0:this.results_show()},Chosen.prototype.keyup_arrow=function(){var prev_sibs;return this.results_showing||this.is_multiple?this.result_highlight?(prev_sibs=this.result_highlight.prevAll("li.active-result")).length?this.result_do_highlight(prev_sibs.first()):(this.choices_count()>0&&this.results_hide(),this.result_clear_highlight()):void 0:this.results_show()},Chosen.prototype.keydown_backstroke=function(){var next_available_destroy;return this.pending_backstroke?(this.choice_destroy(this.pending_backstroke.find("a").first()),this.clear_backstroke()):(next_available_destroy=this.search_container.siblings("li.search-choice").last()).length&&!next_available_destroy.hasClass("search-choice-disabled")?(this.pending_backstroke=next_available_destroy,this.single_backstroke_delete?this.keydown_backstroke():this.pending_backstroke.addClass("search-choice-focus")):void 0},Chosen.prototype.clear_backstroke=function(){return this.pending_backstroke&&this.pending_backstroke.removeClass("search-choice-focus"),this.pending_backstroke=null},Chosen.prototype.search_field_scale=function(){var div,i,len,style,style_block,styles,width;if(this.is_multiple){for(style_block={position:"absolute",left:"-1000px",top:"-1000px",display:"none",whiteSpace:"pre"},i=0,len=(styles=["fontSize","fontStyle","fontWeight","fontFamily","lineHeight","textTransform","letterSpacing"]).length;i<len;i++)style_block[style=styles[i]]=this.search_field.css(style);return(div=$("<div />").css(style_block)).text(this.get_search_field_value()),$("body").append(div),width=div.width()+25,div.remove(),this.container.is(":visible")&&(width=Math.min(this.container.outerWidth()-10,width)),this.search_field.width(width)}},Chosen.prototype.trigger_form_field_change=function(extra){return this.form_field_jq.trigger("input",extra),this.form_field_jq.trigger("change",extra)},Chosen}(AbstractChosen)}.call(this),function($){"use strict";function Rule(controller,condition,value){this.init(controller,condition,value)}function Ruleset(){this.rules=[]}$.extend(Rule.prototype,{init:function(controller,condition,value){this.controller=controller,this.condition=condition,this.value=value,this.rules=[],this.controls=[]},evalCondition:function(context,control,condition,val1,val2){if("=="==condition)return this.checkBoolean(val1)==this.checkBoolean(val2);if("!="==condition)return this.checkBoolean(val1)!=this.checkBoolean(val2);if(">="==condition)return Number(val2)>=Number(val1);if("<="==condition)return Number(val2)<=Number(val1);if(">"==condition)return Number(val2)>Number(val1);if("<"==condition)return Number(val2)<Number(val1);if("()"==condition)return window[val1](context,control,val2);if("any"==condition){if($.isArray(val2)){for(var i=val2.length-1;i>=0;i--)if(-1!==$.inArray(val2[i],val1.split(",")))return!0}else if(-1!==$.inArray(val2,val1.split(",")))return!0}else if("not-any"==condition)if($.isArray(val2)){for(var i=val2.length-1;i>=0;i--)if(-1==$.inArray(val2[i],val1.split(",")))return!0}else if(-1==$.inArray(val2,val1.split(",")))return!0;return!1},checkBoolean:function(value){switch(value){case!0:case"true":case 1:case"1":value=!0;break;case null:case!1:case"false":case 0:case"0":value=!1}return value},checkCondition:function(context){if(!this.condition)return!0;var control=context.find(this.controller),control_value=this.getControlValue(context,control);return void 0!==control_value&&(control_value=this.normalizeValue(control,this.value,control_value),this.evalCondition(context,control,this.condition,this.value,control_value))},normalizeValue:function(control,baseValue,control_value){return"number"==typeof baseValue?parseFloat(control_value):control_value},getControlValue:function(context,control){return control.length>1&&("radio"==control.attr("type")||"checkbox"==control.attr("type"))?control.filter(":checked").map((function(){return this.value})).get():"checkbox"==control.attr("type")||"radio"==control.attr("type")?control.is(":checked"):control.val()},createRule:function(controller,condition,value){var rule=new Rule(controller,condition,value);return this.rules.push(rule),rule},include:function(input){this.controls.push(input)},applyRule:function(context,enforced){var result;result=void 0===enforced?this.checkCondition(context):enforced;var controls=$.map(this.controls,(function(elem,idx){return context.find(elem)}));result?($(controls).each((function(){$(this).removeClass("hidden")})),$(this.rules).each((function(){this.applyRule(context)}))):($(controls).each((function(){$(this).addClass("hidden")})),$(this.rules).each((function(){this.applyRule(context,!1)})))}}),$.extend(Ruleset.prototype,{createRule:function(controller,condition,value){var rule=new Rule(controller,condition,value);return this.rules.push(rule),rule},applyRules:function(context){$(this.rules).each((function(){this.applyRule(context)}))}}),$.spftestimonial_deps={createRuleset:function(){return new Ruleset},enable:function(selection,ruleset,depends){return selection.on("change keyup",(function(elem){var depend_id=elem.target.getAttribute("data-depend-id")||elem.target.getAttribute("data-sub-depend-id");-1!==depends.indexOf(depend_id)&&ruleset.applyRules(selection)})),ruleset.applyRules(selection),!0}}}(jQuery),
2
  /**
3
  *
4
  * jQuery serializeObject
@@ -8,6 +8,7 @@
8
  * @license BSD
9
  * @version 2.5.0
10
  *
 
11
  *
12
  */
13
  function(root,factory){if("function"==typeof define&&define.amd)define(["exports","jquery"],(function(exports,$){return factory(exports,$)}));else if("undefined"!=typeof exports){var $=require("jquery");factory(exports,$)}else factory(root,root.jQuery||root.Zepto||root.ender||root.$)}(this,(function(exports,$){var patterns={validate:/^(?!(_nonce|_pseudo))[a-zA-Z0-9_-]*(?:\[(?:\d*|(?!(_nonce|_pseudo))[a-zA-Z0-9_-]+)\])*$/i,key:/[a-zA-Z0-9_-]+|(?=\[\])/g,named:/^[a-zA-Z0-9_-]+$/,push:/^$/,fixed:/^\d+$/};function FormSerializer(helper,$form){var data={},pushes={};function build(base,key,value){return base[key]=value,base}function makeObject(root,value){for(var keys=root.match(patterns.key),k;void 0!==(k=keys.pop());){var idx;if(patterns.push.test(k))value=build([],incrementPush(root.replace(/\[\]$/,"")),value);else patterns.fixed.test(k)?value=build([],k,value):patterns.named.test(k)&&(value=build({},k,value))}return value}function incrementPush(key){return void 0===pushes[key]&&(pushes[key]=0),pushes[key]++}function addPair(pair){if(!patterns.validate.test(pair.name))return this;var obj=makeObject(pair.name,pair.value);return data=helper.extend(!0,data,obj),this}function addPairs(pairs){if(!helper.isArray(pairs))throw new Error("formSerializer.addPairs expects an Array");for(var i=0,len=pairs.length;i<len;i++)this.addPair(pairs[i]);return this}function serialize(){return data}function serializeJSON(){return JSON.stringify(serialize())}this.addPair=addPair,this.addPairs=addPairs,this.serialize=serialize,this.serializeJSON=serializeJSON}return FormSerializer.patterns=patterns,FormSerializer.serializeObject=function serializeObject(){return new FormSerializer($,this).addPairs(this.serializeArray()).serialize()},FormSerializer.serializeJSON=function serializeJSON(){return new FormSerializer($,this).addPairs(this.serializeArray()).serializeJSON()},void 0!==$.fn&&($.fn.serializeObjectSPFTESTIMONIAL=FormSerializer.serializeObject,$.fn.serializeJSONSPFTESTIMONIAL=FormSerializer.serializeJSON),exports.FormSerializer=FormSerializer,FormSerializer}));
1
+ !function($){function SPFTESTIMONIALAjaxChosen(element,options){this.element=$(element),this.options=options,this.init()}SPFTESTIMONIALAjaxChosen.prototype.init=function(){this.element.chosen(this.options),this.container=this.element.next(".chosen-container"),this.search_field=this.container.find(".chosen-search-input"),this.is_multiple=this.container.hasClass("chosen-container-multi"),this.is_typing=!1,this.chosenXhr=null,this.events()},SPFTESTIMONIALAjaxChosen.prototype.events=function(){var _this=this;this.search_field.on("compositionstart",(function(){_this.is_typing=!0})),this.search_field.on("compositionend",(function(){_this.is_typing=!1,_this.update_list()})),this.search_field.on("keyup",(function(){_this.update_list()})),this.search_field.on("focus",(function(){_this.search_field_focused()}))},SPFTESTIMONIALAjaxChosen.prototype.search_field_focused=function(){this.search_welcome_message(),0===this.options.min_length&&0===this.search_field.val().length&&this.update_list()},SPFTESTIMONIALAjaxChosen.prototype.search_welcome_message=function(){var value=$.trim(this.search_field.val()),results=this.container.find(".chosen-results");0===results.children().length&&0===value.length&&results.html('<li class="no-results">'+this.options.typing_text.replace("%s",this.options.min_length-value.length)+"</li>")},SPFTESTIMONIALAjaxChosen.prototype.update_list=function(){var _this=this;if(this.search_welcome_message(),!this.is_typing){var value=$.trim(this.search_field.val()),message=value.length<this.options.min_length?this.options.typing_text.replace("%s",this.options.min_length-value.length):this.options.searching_text;this.container.find(".no-results").text(message),value!==this.search_field.data("prevVal")&&(this.search_field.data("prevVal",value),this.timer&&clearTimeout(this.timer),value.length<this.options.min_length||(this.timer=setTimeout((function(){_this.chosenXhr&&_this.chosenXhr.abort(),_this.options.data.term=value,_this.chosenXhr=window.wp.ajax.post("spftestimonial-chosen",_this.options.data).done((function(response){_this.show_results(response)})).fail((function(response){_this.container.find(".no-results").text(response.error)}))}),this.options.type_delay)))}},SPFTESTIMONIALAjaxChosen.prototype.show_results=function(items){var _this=this;if(!this.is_typing&&null!==items){if(0===items.length)return this.element.data().chosen.no_results_clear(),void this.element.data().chosen.no_results(this.search_field.val());var selected_values=[];this.element.find("option").each((function(){$(this).is(":selected")?selected_values.push($(this).val()+"-"+$(this).text()):$(this).attr("value").length&&$(this).remove()})),$.each(items,(function(i,item){-1===$.inArray(item.value+"-"+item.text,selected_values)&&$("<option />").attr("value",item.value).html(item.text).appendTo(_this.element)}));var value_before_trigger=this.search_field.val(),width_before_trigger=this.search_field.innerWidth();if(this.element.trigger("chosen:updated"),this.is_multiple){var $hidden_select,$hidden_value=this.element.parent().find(".spftestimonial-hide-select").val()||[];this.element.SPFTESTIMONIALChosenOrder($hidden_value,!0),this.search_field.css("width",width_before_trigger)}this.search_field.val(value_before_trigger),null!==this.chosenXhr.done&&this.chosenXhr.done(items)}},$.fn.SPFTESTIMONIALAjaxChosen=function(chosenOptions){return this.each((function(){new SPFTESTIMONIALAjaxChosen(this,chosenOptions)}))}}(jQuery),function(){var $,SPFTESTIMONIALAbstractChosenOrder,_ref,__indexOf=[].indexOf||function(item){for(var i=0,l=this.length;i<l;i++)if(i in this&&this[i]===item)return i;return-1},__hasProp={}.hasOwnProperty,__extends=function(child,parent){for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);function ctor(){this.constructor=child}return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};SPFTESTIMONIALAbstractChosenOrder=function(){function SPFTESTIMONIALAbstractChosenOrder(){}return SPFTESTIMONIALAbstractChosenOrder.insertAt=function(node,index,parentNode){if(void 0!==parentNode.children[index])return parentNode.insertBefore(node,parentNode.children[index].nextSibling)},SPFTESTIMONIALAbstractChosenOrder.getFlattenedOptionsAndGroups=function(select){var flattened_options,opt,options,sub_opt,sub_options,_i,_j,_len,_len1;for(flattened_options=[],_i=0,_len=(options=Array.prototype.filter.call(select.childNodes,(function(o){var _ref;return"OPTION"===(_ref=o.nodeName.toUpperCase())||"OPTGROUP"===_ref}))).length;_i<_len;_i++)if(opt=options[_i],flattened_options.push(opt),"OPTGROUP"===opt.nodeName.toUpperCase())for(_j=0,_len1=(sub_options=Array.prototype.filter.call(opt.childNodes,(function(o){return"OPTION"===o.nodeName.toUpperCase()}))).length;_j<_len1;_j++)sub_opt=sub_options[_j],flattened_options.push(sub_opt);return flattened_options},SPFTESTIMONIALAbstractChosenOrder.isValidMultipleSelectElement=function(element){return null!=element&&"SELECT"===element.nodeName&&element.multiple},SPFTESTIMONIALAbstractChosenOrder.getChosenUIContainer=function(select){return""!==select.id?document.getElementById(select.id.replace(/-/g,"_")+"_chosen"):this.searchChosenUIContainer(select)},SPFTESTIMONIALAbstractChosenOrder.isChosenified=function(select){return null!=this.getChosenUIContainer(select)},SPFTESTIMONIALAbstractChosenOrder.forceSelection=function(select,selection){var i,opt,options,_ref;for(options=this.getFlattenedOptionsAndGroups(select),i=0;i<options.length;)_ref=(opt=options[i]).getAttribute("value"),__indexOf.call(selection,_ref)>=0?(opt.selected=!0,opt.setAttribute("selected","")):(opt.selected=!1,opt.removeAttribute("selected")),i++;return this.triggerEvent(select,"chosen:updated")},SPFTESTIMONIALAbstractChosenOrder.SPFTESTIMONIALChosenOrder=function(select,order,force){var chosen_choices,chosen_options,chosen_ui,i,j,opt,opt_val,option,options,rel,relAttributeName,_i,_j,_len,_len1,_results;if(null!=this.getDOMElement&&(select=this.getDOMElement(select)),this.isValidMultipleSelectElement(select)&&null!=(chosen_ui=this.getChosenUIContainer(select))&&order instanceof Array){for(order=order.map(Function.prototype.call,String.prototype.trim),options=this.getFlattenedOptionsAndGroups(select),null!=force&&!0===force&&this.forceSelection(select,order),_results=[],i=_i=0,_len=order.length;_i<_len;i=++_i){for(opt_val=order[i],rel=null,j=_j=0,_len1=options.length;_j<_len1;j=++_j)(opt=options[j]).value===opt_val&&(rel=j);chosen_options=chosen_ui.querySelectorAll(".search-choice"),relAttributeName=this.relAttributeName,null!=(option=Array.prototype.filter.call(chosen_options,(function(o){return null!=o.querySelector("a.search-choice-close["+relAttributeName+'="'+rel+'"]')}))[0])&&(chosen_choices=chosen_ui.querySelector("ul.chosen-choices"),_results.push(this.insertAt(option,i,chosen_ui.querySelector("ul.chosen-choices"))))}return _results}},SPFTESTIMONIALAbstractChosenOrder}(),($=jQuery).fn.extend({SPFTESTIMONIALChosenOrder:function(order,force){return _SPFTESTIMONIALChosenOrder.SPFTESTIMONIALChosenOrder(this,order,force)}}),this._SPFTESTIMONIALChosenOrder=function(_super){function _SPFTESTIMONIALChosenOrder(){return _ref=_SPFTESTIMONIALChosenOrder.__super__.constructor.apply(this,arguments)}return __extends(_SPFTESTIMONIALChosenOrder,_super),_SPFTESTIMONIALChosenOrder.relAttributeName="data-option-array-index",_SPFTESTIMONIALChosenOrder.isjQueryObject=function(obj){return"undefined"!=typeof jQuery&&null!==jQuery&&obj instanceof jQuery},_SPFTESTIMONIALChosenOrder.getDOMElement=function(element){return this.isjQueryObject(element)?element.get(0):element},_SPFTESTIMONIALChosenOrder.searchChosenUIContainer=function(element){return null!=$(element).data("chosen")?$(element).data("chosen").container[0]:$(element).next(".chosen-container.chosen-container-multi").get(0)},_SPFTESTIMONIALChosenOrder.triggerEvent=function(target,event_name){return $(target).trigger(event_name)},_SPFTESTIMONIALChosenOrder}(SPFTESTIMONIALAbstractChosenOrder)}.call(this),function(){var $,AbstractChosen,Chosen,SelectParser,bind=function(fn,me){return function(){return fn.apply(me,arguments)}},extend=function(child,parent){for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);function ctor(){this.constructor=child}return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;(SelectParser=function(){function SelectParser(){this.options_index=0,this.parsed=[]}return SelectParser.prototype.add_node=function(child){return"OPTGROUP"===child.nodeName.toUpperCase()?this.add_group(child):this.add_option(child)},SelectParser.prototype.add_group=function(group){var group_position,i,len,option,ref,results1;for(group_position=this.parsed.length,this.parsed.push({array_index:group_position,group:!0,label:group.label,title:group.title?group.title:void 0,children:0,disabled:group.disabled,classes:group.className}),results1=[],i=0,len=(ref=group.childNodes).length;i<len;i++)option=ref[i],results1.push(this.add_option(option,group_position,group.disabled));return results1},SelectParser.prototype.add_option=function(option,group_position,group_disabled){if("OPTION"===option.nodeName.toUpperCase())return""!==option.text?(null!=group_position&&(this.parsed[group_position].children+=1),this.parsed.push({array_index:this.parsed.length,options_index:this.options_index,value:option.value,text:option.text,html:option.innerHTML,title:option.title?option.title:void 0,selected:option.selected,disabled:!0===group_disabled?group_disabled:option.disabled,group_array_index:group_position,group_label:null!=group_position?this.parsed[group_position].label:null,classes:option.className,style:option.style.cssText})):this.parsed.push({array_index:this.parsed.length,options_index:this.options_index,empty:!0}),this.options_index+=1},SelectParser}()).select_to_array=function(select){var child,i,len,parser,ref;for(parser=new SelectParser,i=0,len=(ref=select.childNodes).length;i<len;i++)child=ref[i],parser.add_node(child);return parser.parsed},AbstractChosen=function(){function AbstractChosen(form_field,options1){this.form_field=form_field,this.options=null!=options1?options1:{},this.label_click_handler=bind(this.label_click_handler,this),AbstractChosen.browser_is_supported()&&(this.is_multiple=this.form_field.multiple,this.set_default_text(),this.set_default_values(),this.setup(),this.set_up_html(),this.register_observers(),this.on_ready())}return AbstractChosen.prototype.set_default_values=function(){var _this;return this.click_test_action=(_this=this,function(evt){return _this.test_active_click(evt)}),this.activate_action=function(_this){return function(evt){return _this.activate_field(evt)}}(this),this.active_field=!1,this.mouse_on_container=!1,this.results_showing=!1,this.result_highlighted=null,this.is_rtl=this.options.rtl||/\bchosen-rtl\b/.test(this.form_field.className),this.allow_single_deselect=null!=this.options.allow_single_deselect&&null!=this.form_field.options[0]&&""===this.form_field.options[0].text&&this.options.allow_single_deselect,this.disable_search_threshold=this.options.disable_search_threshold||0,this.disable_search=this.options.disable_search||!1,this.enable_split_word_search=null==this.options.enable_split_word_search||this.options.enable_split_word_search,this.group_search=null==this.options.group_search||this.options.group_search,this.search_contains=this.options.search_contains||!1,this.single_backstroke_delete=null==this.options.single_backstroke_delete||this.options.single_backstroke_delete,this.max_selected_options=this.options.max_selected_options||1/0,this.inherit_select_classes=this.options.inherit_select_classes||!1,this.display_selected_options=null==this.options.display_selected_options||this.options.display_selected_options,this.display_disabled_options=null==this.options.display_disabled_options||this.options.display_disabled_options,this.include_group_label_in_selected=this.options.include_group_label_in_selected||!1,this.max_shown_results=this.options.max_shown_results||Number.POSITIVE_INFINITY,this.case_sensitive_search=this.options.case_sensitive_search||!1,this.hide_results_on_select=null==this.options.hide_results_on_select||this.options.hide_results_on_select},AbstractChosen.prototype.set_default_text=function(){return this.form_field.getAttribute("data-placeholder")?this.default_text=this.form_field.getAttribute("data-placeholder"):this.is_multiple?this.default_text=this.options.placeholder_text_multiple||this.options.placeholder_text||AbstractChosen.default_multiple_text:this.default_text=this.options.placeholder_text_single||this.options.placeholder_text||AbstractChosen.default_single_text,this.default_text=this.escape_html(this.default_text),this.results_none_found=this.form_field.getAttribute("data-no_results_text")||this.options.no_results_text||AbstractChosen.default_no_result_text},AbstractChosen.prototype.choice_label=function(item){return this.include_group_label_in_selected&&null!=item.group_label?"<b class='group-name'>"+this.escape_html(item.group_label)+"</b>"+item.html:item.html},AbstractChosen.prototype.mouse_enter=function(){return this.mouse_on_container=!0},AbstractChosen.prototype.mouse_leave=function(){return this.mouse_on_container=!1},AbstractChosen.prototype.input_focus=function(evt){if(this.is_multiple){if(!this.active_field)return setTimeout((_this=this,function(){return _this.container_mousedown()}),50)}else if(!this.active_field)return this.activate_field();var _this},AbstractChosen.prototype.input_blur=function(evt){if(!this.mouse_on_container)return this.active_field=!1,setTimeout((_this=this,function(){return _this.blur_test()}),100);var _this},AbstractChosen.prototype.label_click_handler=function(evt){return this.is_multiple?this.container_mousedown(evt):this.activate_field()},AbstractChosen.prototype.results_option_build=function(options){var content,data,data_content,i,len,ref,shown_results;for(content="",shown_results=0,i=0,len=(ref=this.results_data).length;i<len&&(data_content="",""!==(data_content=(data=ref[i]).group?this.result_add_group(data):this.result_add_option(data))&&(shown_results++,content+=data_content),(null!=options?options.first:void 0)&&(data.selected&&this.is_multiple?this.choice_build(data):data.selected&&!this.is_multiple&&this.single_set_selected_text(this.choice_label(data))),!(shown_results>=this.max_shown_results));i++);return content},AbstractChosen.prototype.result_add_option=function(option){var classes,option_el;return option.search_match&&this.include_option_in_results(option)?(classes=[],option.disabled||option.selected&&this.is_multiple||classes.push("active-result"),!option.disabled||option.selected&&this.is_multiple||classes.push("disabled-result"),option.selected&&classes.push("result-selected"),null!=option.group_array_index&&classes.push("group-option"),""!==option.classes&&classes.push(option.classes),(option_el=document.createElement("li")).className=classes.join(" "),option.style&&(option_el.style.cssText=option.style),option_el.setAttribute("data-option-array-index",option.array_index),option_el.innerHTML=option.highlighted_html||option.html,option.title&&(option_el.title=option.title),this.outerHTML(option_el)):""},AbstractChosen.prototype.result_add_group=function(group){var classes,group_el;return(group.search_match||group.group_match)&&group.active_options>0?((classes=[]).push("group-result"),group.classes&&classes.push(group.classes),(group_el=document.createElement("li")).className=classes.join(" "),group_el.innerHTML=group.highlighted_html||this.escape_html(group.label),group.title&&(group_el.title=group.title),this.outerHTML(group_el)):""},AbstractChosen.prototype.results_update_field=function(){if(this.set_default_text(),this.is_multiple||this.results_reset_cleanup(),this.result_clear_highlight(),this.results_build(),this.results_showing)return this.winnow_results()},AbstractChosen.prototype.reset_single_select_options=function(){var i,len,ref,result,results1;for(results1=[],i=0,len=(ref=this.results_data).length;i<len;i++)(result=ref[i]).selected?results1.push(result.selected=!1):results1.push(void 0);return results1},AbstractChosen.prototype.results_toggle=function(){return this.results_showing?this.results_hide():this.results_show()},AbstractChosen.prototype.results_search=function(evt){return this.results_showing?this.winnow_results():this.results_show()},AbstractChosen.prototype.winnow_results=function(options){var escapedQuery,fix,i,len,option,prefix,query,ref,regex,results,results_group,search_match,startpos,suffix,text;for(this.no_results_clear(),results=0,escapedQuery=(query=this.get_search_text()).replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),regex=this.get_search_regex(escapedQuery),i=0,len=(ref=this.results_data).length;i<len;i++)(option=ref[i]).search_match=!1,results_group=null,search_match=null,option.highlighted_html="",this.include_option_in_results(option)&&(option.group&&(option.group_match=!1,option.active_options=0),null!=option.group_array_index&&this.results_data[option.group_array_index]&&(0===(results_group=this.results_data[option.group_array_index]).active_options&&results_group.search_match&&(results+=1),results_group.active_options+=1),text=option.group?option.label:option.text,option.group&&!this.group_search||(search_match=this.search_string_match(text,regex),option.search_match=null!=search_match,option.search_match&&!option.group&&(results+=1),option.search_match?(query.length&&(startpos=search_match.index,prefix=text.slice(0,startpos),fix=text.slice(startpos,startpos+query.length),suffix=text.slice(startpos+query.length),option.highlighted_html=this.escape_html(prefix)+"<em>"+this.escape_html(fix)+"</em>"+this.escape_html(suffix)),null!=results_group&&(results_group.group_match=!0)):null!=option.group_array_index&&this.results_data[option.group_array_index].search_match&&(option.search_match=!0)));return this.result_clear_highlight(),results<1&&query.length?(this.update_results_content(""),this.no_results(query)):(this.update_results_content(this.results_option_build()),(null!=options?options.skip_highlight:void 0)?void 0:this.winnow_results_set_highlight())},AbstractChosen.prototype.get_search_regex=function(escaped_search_string){var regex_flag,regex_string;return regex_string=this.search_contains?escaped_search_string:"(^|\\s|\\b)"+escaped_search_string+"[^\\s]*",this.enable_split_word_search||this.search_contains||(regex_string="^"+regex_string),regex_flag=this.case_sensitive_search?"":"i",new RegExp(regex_string,regex_flag)},AbstractChosen.prototype.search_string_match=function(search_string,regex){var match;return match=regex.exec(search_string),!this.search_contains&&(null!=match?match[1]:void 0)&&(match.index+=1),match},AbstractChosen.prototype.choices_count=function(){var i,len,option,ref;if(null!=this.selected_option_count)return this.selected_option_count;for(this.selected_option_count=0,i=0,len=(ref=this.form_field.options).length;i<len;i++)(option=ref[i]).selected&&(this.selected_option_count+=1);return this.selected_option_count},AbstractChosen.prototype.choices_click=function(evt){if(evt.preventDefault(),this.activate_field(),!this.results_showing&&!this.is_disabled)return this.results_show()},AbstractChosen.prototype.keydown_checker=function(evt){var ref,stroke;switch(stroke=null!=(ref=evt.which)?ref:evt.keyCode,this.search_field_scale(),8!==stroke&&this.pending_backstroke&&this.clear_backstroke(),stroke){case 8:this.backstroke_length=this.get_search_field_value().length;break;case 9:this.results_showing&&!this.is_multiple&&this.result_select(evt),this.mouse_on_container=!1;break;case 13:case 27:this.results_showing&&evt.preventDefault();break;case 32:this.disable_search&&evt.preventDefault();break;case 38:evt.preventDefault(),this.keyup_arrow();break;case 40:evt.preventDefault(),this.keydown_arrow()}},AbstractChosen.prototype.keyup_checker=function(evt){var ref,stroke;switch(stroke=null!=(ref=evt.which)?ref:evt.keyCode,this.search_field_scale(),stroke){case 8:this.is_multiple&&this.backstroke_length<1&&this.choices_count()>0?this.keydown_backstroke():this.pending_backstroke||(this.result_clear_highlight(),this.results_search());break;case 13:evt.preventDefault(),this.results_showing&&this.result_select(evt);break;case 27:this.results_showing&&this.results_hide();break;case 9:case 16:case 17:case 18:case 38:case 40:case 91:break;default:this.results_search()}},AbstractChosen.prototype.clipboard_event_checker=function(evt){var _this;if(!this.is_disabled)return setTimeout((_this=this,function(){return _this.results_search()}),50)},AbstractChosen.prototype.container_width=function(){return null!=this.options.width?this.options.width:this.form_field.offsetWidth+"px"},AbstractChosen.prototype.include_option_in_results=function(option){return!(this.is_multiple&&!this.display_selected_options&&option.selected)&&(!(!this.display_disabled_options&&option.disabled)&&!option.empty)},AbstractChosen.prototype.search_results_touchstart=function(evt){return this.touch_started=!0,this.search_results_mouseover(evt)},AbstractChosen.prototype.search_results_touchmove=function(evt){return this.touch_started=!1,this.search_results_mouseout(evt)},AbstractChosen.prototype.search_results_touchend=function(evt){if(this.touch_started)return this.search_results_mouseup(evt)},AbstractChosen.prototype.outerHTML=function(element){var tmp;return element.outerHTML?element.outerHTML:((tmp=document.createElement("div")).appendChild(element),tmp.innerHTML)},AbstractChosen.prototype.get_single_html=function(){return'<a class="chosen-single chosen-default">\n <span>'+this.default_text+'</span>\n <div><b></b></div>\n</a>\n<div class="chosen-drop">\n <div class="chosen-search">\n <input class="chosen-search-input" type="text" autocomplete="off" />\n </div>\n <ul class="chosen-results"></ul>\n</div>'},AbstractChosen.prototype.get_multi_html=function(){return'<ul class="chosen-choices">\n <li class="search-field">\n <input class="chosen-search-input" type="text" autocomplete="off" value="'+this.default_text+'" />\n </li>\n</ul>\n<div class="chosen-drop">\n <ul class="chosen-results"></ul>\n</div>'},AbstractChosen.prototype.get_no_results_html=function(terms){return'<li class="no-results">\n '+this.results_none_found+" <span>"+this.escape_html(terms)+"</span>\n</li>"},AbstractChosen.browser_is_supported=function(){return"Microsoft Internet Explorer"===window.navigator.appName?document.documentMode>=8:!(/iP(od|hone)/i.test(window.navigator.userAgent)||/IEMobile/i.test(window.navigator.userAgent)||/Windows Phone/i.test(window.navigator.userAgent)||/BlackBerry/i.test(window.navigator.userAgent)||/BB10/i.test(window.navigator.userAgent)||/Android.*Mobile/i.test(window.navigator.userAgent))},AbstractChosen.default_multiple_text="Select Some Options",AbstractChosen.default_single_text="Select an Option",AbstractChosen.default_no_result_text="No results match",AbstractChosen}(),($=jQuery).fn.extend({chosen:function(options){return AbstractChosen.browser_is_supported()?this.each((function(input_field){var $this,chosen;chosen=($this=$(this)).data("chosen"),"destroy"!==options?chosen instanceof Chosen||$this.data("chosen",new Chosen(this,options)):chosen instanceof Chosen&&chosen.destroy()})):this}}),Chosen=function(superClass){function Chosen(){return Chosen.__super__.constructor.apply(this,arguments)}return extend(Chosen,superClass),Chosen.prototype.setup=function(){return this.form_field_jq=$(this.form_field),this.current_selectedIndex=this.form_field.selectedIndex},Chosen.prototype.set_up_html=function(){var container_classes,container_props;return(container_classes=["chosen-container"]).push("chosen-container-"+(this.is_multiple?"multi":"single")),this.inherit_select_classes&&this.form_field.className&&container_classes.push(this.form_field.className),this.is_rtl&&container_classes.push("chosen-rtl"),container_props={class:container_classes.join(" "),title:this.form_field.title},this.form_field.id.length&&(container_props.id=this.form_field.id.replace(/[^\w]/g,"_")+"_chosen"),this.container=$("<div />",container_props),this.container.width(this.container_width()),this.is_multiple?this.container.html(this.get_multi_html()):this.container.html(this.get_single_html()),this.form_field_jq.hide().after(this.container),this.dropdown=this.container.find("div.chosen-drop").first(),this.search_field=this.container.find("input").first(),this.search_results=this.container.find("ul.chosen-results").first(),this.search_field_scale(),this.search_no_results=this.container.find("li.no-results").first(),this.is_multiple?(this.search_choices=this.container.find("ul.chosen-choices").first(),this.search_container=this.container.find("li.search-field").first()):(this.search_container=this.container.find("div.chosen-search").first(),this.selected_item=this.container.find(".chosen-single").first()),this.results_build(),this.set_tab_index(),this.set_label_behavior()},Chosen.prototype.on_ready=function(){return this.form_field_jq.trigger("chosen:ready",{chosen:this})},Chosen.prototype.register_observers=function(){var _this;return this.container.on("touchstart.chosen",(_this=this,function(evt){_this.container_mousedown(evt)})),this.container.on("touchend.chosen",function(_this){return function(evt){_this.container_mouseup(evt)}}(this)),this.container.on("mousedown.chosen",function(_this){return function(evt){_this.container_mousedown(evt)}}(this)),this.container.on("mouseup.chosen",function(_this){return function(evt){_this.container_mouseup(evt)}}(this)),this.container.on("mouseenter.chosen",function(_this){return function(evt){_this.mouse_enter(evt)}}(this)),this.container.on("mouseleave.chosen",function(_this){return function(evt){_this.mouse_leave(evt)}}(this)),this.search_results.on("mouseup.chosen",function(_this){return function(evt){_this.search_results_mouseup(evt)}}(this)),this.search_results.on("mouseover.chosen",function(_this){return function(evt){_this.search_results_mouseover(evt)}}(this)),this.search_results.on("mouseout.chosen",function(_this){return function(evt){_this.search_results_mouseout(evt)}}(this)),this.search_results.on("mousewheel.chosen DOMMouseScroll.chosen",function(_this){return function(evt){_this.search_results_mousewheel(evt)}}(this)),this.search_results.on("touchstart.chosen",function(_this){return function(evt){_this.search_results_touchstart(evt)}}(this)),this.search_results.on("touchmove.chosen",function(_this){return function(evt){_this.search_results_touchmove(evt)}}(this)),this.search_results.on("touchend.chosen",function(_this){return function(evt){_this.search_results_touchend(evt)}}(this)),this.form_field_jq.on("chosen:updated.chosen",function(_this){return function(evt){_this.results_update_field(evt)}}(this)),this.form_field_jq.on("chosen:activate.chosen",function(_this){return function(evt){_this.activate_field(evt)}}(this)),this.form_field_jq.on("chosen:open.chosen",function(_this){return function(evt){_this.container_mousedown(evt)}}(this)),this.form_field_jq.on("chosen:close.chosen",function(_this){return function(evt){_this.close_field(evt)}}(this)),this.search_field.on("blur.chosen",function(_this){return function(evt){_this.input_blur(evt)}}(this)),this.search_field.on("keyup.chosen",function(_this){return function(evt){_this.keyup_checker(evt)}}(this)),this.search_field.on("keydown.chosen",function(_this){return function(evt){_this.keydown_checker(evt)}}(this)),this.search_field.on("focus.chosen",function(_this){return function(evt){_this.input_focus(evt)}}(this)),this.search_field.on("cut.chosen",function(_this){return function(evt){_this.clipboard_event_checker(evt)}}(this)),this.search_field.on("paste.chosen",function(_this){return function(evt){_this.clipboard_event_checker(evt)}}(this)),this.is_multiple?this.search_choices.on("click.chosen",function(_this){return function(evt){_this.choices_click(evt)}}(this)):this.container.on("click.chosen",(function(evt){evt.preventDefault()}))},Chosen.prototype.destroy=function(){return $(this.container[0].ownerDocument).off("click.chosen",this.click_test_action),this.form_field_label.length>0&&this.form_field_label.off("click.chosen"),this.search_field[0].tabIndex&&(this.form_field_jq[0].tabIndex=this.search_field[0].tabIndex),this.container.remove(),this.form_field_jq.removeData("chosen"),this.form_field_jq.show()},Chosen.prototype.search_field_disabled=function(){return this.is_disabled=this.form_field.disabled||this.form_field_jq.parents("fieldset").is(":disabled"),this.container.toggleClass("chosen-disabled",this.is_disabled),this.search_field[0].disabled=this.is_disabled,this.is_multiple||this.selected_item.off("focus.chosen",this.activate_field),this.is_disabled?this.close_field():this.is_multiple?void 0:this.selected_item.on("focus.chosen",this.activate_field)},Chosen.prototype.container_mousedown=function(evt){var ref;if(!this.is_disabled)return!evt||"mousedown"!==(ref=evt.type)&&"touchstart"!==ref||this.results_showing||evt.preventDefault(),null!=evt&&$(evt.target).hasClass("search-choice-close")?void 0:(this.active_field?this.is_multiple||!evt||$(evt.target)[0]!==this.selected_item[0]&&!$(evt.target).parents("a.chosen-single").length||(evt.preventDefault(),this.results_toggle()):(this.is_multiple&&this.search_field.val(""),$(this.container[0].ownerDocument).on("click.chosen",this.click_test_action),this.results_show()),this.activate_field())},Chosen.prototype.container_mouseup=function(evt){if("ABBR"===evt.target.nodeName&&!this.is_disabled)return this.results_reset(evt)},Chosen.prototype.search_results_mousewheel=function(evt){var delta;if(evt.originalEvent&&(delta=evt.originalEvent.deltaY||-evt.originalEvent.wheelDelta||evt.originalEvent.detail),null!=delta)return evt.preventDefault(),"DOMMouseScroll"===evt.type&&(delta*=40),this.search_results.scrollTop(delta+this.search_results.scrollTop())},Chosen.prototype.blur_test=function(evt){if(!this.active_field&&this.container.hasClass("chosen-container-active"))return this.close_field()},Chosen.prototype.close_field=function(){return $(this.container[0].ownerDocument).off("click.chosen",this.click_test_action),this.active_field=!1,this.results_hide(),this.container.removeClass("chosen-container-active"),this.clear_backstroke(),this.show_search_field_default(),this.search_field_scale(),this.search_field.blur()},Chosen.prototype.activate_field=function(){if(!this.is_disabled)return this.container.addClass("chosen-container-active"),this.active_field=!0,this.search_field.val(this.search_field.val()),this.search_field.focus()},Chosen.prototype.test_active_click=function(evt){var active_container;return(active_container=$(evt.target).closest(".chosen-container")).length&&this.container[0]===active_container[0]?this.active_field=!0:this.close_field()},Chosen.prototype.results_build=function(){return this.parsing=!0,this.selected_option_count=null,this.results_data=SelectParser.select_to_array(this.form_field),this.is_multiple?this.search_choices.find("li.search-choice").remove():(this.single_set_selected_text(),this.disable_search||this.form_field.options.length<=this.disable_search_threshold?(this.search_field[0].readOnly=!0,this.container.addClass("chosen-container-single-nosearch")):(this.search_field[0].readOnly=!1,this.container.removeClass("chosen-container-single-nosearch"))),this.update_results_content(this.results_option_build({first:!0})),this.search_field_disabled(),this.show_search_field_default(),this.search_field_scale(),this.parsing=!1},Chosen.prototype.result_do_highlight=function(el){var high_bottom,high_top,maxHeight,visible_bottom,visible_top;if(el.length){if(this.result_clear_highlight(),this.result_highlight=el,this.result_highlight.addClass("highlighted"),visible_bottom=(maxHeight=parseInt(this.search_results.css("maxHeight"),10))+(visible_top=this.search_results.scrollTop()),(high_bottom=(high_top=this.result_highlight.position().top+this.search_results.scrollTop())+this.result_highlight.outerHeight())>=visible_bottom)return this.search_results.scrollTop(high_bottom-maxHeight>0?high_bottom-maxHeight:0);if(high_top<visible_top)return this.search_results.scrollTop(high_top)}},Chosen.prototype.result_clear_highlight=function(){return this.result_highlight&&this.result_highlight.removeClass("highlighted"),this.result_highlight=null},Chosen.prototype.results_show=function(){return this.is_multiple&&this.max_selected_options<=this.choices_count()?(this.form_field_jq.trigger("chosen:maxselected",{chosen:this}),!1):(this.container.addClass("chosen-with-drop"),this.results_showing=!0,this.search_field.focus(),this.search_field.val(this.get_search_field_value()),this.winnow_results(),this.form_field_jq.trigger("chosen:showing_dropdown",{chosen:this}))},Chosen.prototype.update_results_content=function(content){return this.search_results.html(content)},Chosen.prototype.results_hide=function(){return this.results_showing&&(this.result_clear_highlight(),this.container.removeClass("chosen-with-drop"),this.form_field_jq.trigger("chosen:hiding_dropdown",{chosen:this})),this.results_showing=!1},Chosen.prototype.set_tab_index=function(el){var ti;if(this.form_field.tabIndex)return ti=this.form_field.tabIndex,this.form_field.tabIndex=-1,this.search_field[0].tabIndex=ti},Chosen.prototype.set_label_behavior=function(){if(this.form_field_label=this.form_field_jq.parents("label"),!this.form_field_label.length&&this.form_field.id.length&&(this.form_field_label=$("label[for='"+this.form_field.id+"']")),this.form_field_label.length>0)return this.form_field_label.on("click.chosen",this.label_click_handler)},Chosen.prototype.show_search_field_default=function(){return this.is_multiple&&this.choices_count()<1&&!this.active_field?(this.search_field.val(this.default_text),this.search_field.addClass("default")):(this.search_field.val(""),this.search_field.removeClass("default"))},Chosen.prototype.search_results_mouseup=function(evt){var target;if((target=$(evt.target).hasClass("active-result")?$(evt.target):$(evt.target).parents(".active-result").first()).length)return this.result_highlight=target,this.result_select(evt),this.search_field.focus()},Chosen.prototype.search_results_mouseover=function(evt){var target;if(target=$(evt.target).hasClass("active-result")?$(evt.target):$(evt.target).parents(".active-result").first())return this.result_do_highlight(target)},Chosen.prototype.search_results_mouseout=function(evt){if($(evt.target).hasClass("active-result")||$(evt.target).parents(".active-result").first())return this.result_clear_highlight()},Chosen.prototype.choice_build=function(item){var choice,close_link,_this;return choice=$("<li />",{class:"search-choice"}).html("<span>"+this.choice_label(item)+"</span>"),item.disabled?choice.addClass("search-choice-disabled"):((close_link=$("<a />",{class:"search-choice-close","data-option-array-index":item.array_index})).on("click.chosen",(_this=this,function(evt){return _this.choice_destroy_link_click(evt)})),choice.append(close_link)),this.search_container.before(choice)},Chosen.prototype.choice_destroy_link_click=function(evt){if(evt.preventDefault(),evt.stopPropagation(),!this.is_disabled)return this.choice_destroy($(evt.target))},Chosen.prototype.choice_destroy=function(link){if(this.result_deselect(link[0].getAttribute("data-option-array-index")))return this.active_field?this.search_field.focus():this.show_search_field_default(),this.is_multiple&&this.choices_count()>0&&this.get_search_field_value().length<1&&this.results_hide(),link.parents("li").first().remove(),this.search_field_scale()},Chosen.prototype.results_reset=function(){if(this.reset_single_select_options(),this.form_field.options[0].selected=!0,this.single_set_selected_text(),this.show_search_field_default(),this.results_reset_cleanup(),this.trigger_form_field_change(),this.active_field)return this.results_hide()},Chosen.prototype.results_reset_cleanup=function(){return this.current_selectedIndex=this.form_field.selectedIndex,this.selected_item.find("abbr").remove()},Chosen.prototype.result_select=function(evt){var high,item;if(this.result_highlight)return high=this.result_highlight,this.result_clear_highlight(),this.is_multiple&&this.max_selected_options<=this.choices_count()?(this.form_field_jq.trigger("chosen:maxselected",{chosen:this}),!1):(this.is_multiple?high.removeClass("active-result"):this.reset_single_select_options(),high.addClass("result-selected"),(item=this.results_data[high[0].getAttribute("data-option-array-index")]).selected=!0,this.form_field.options[item.options_index].selected=!0,this.selected_option_count=null,this.is_multiple?this.choice_build(item):this.single_set_selected_text(this.choice_label(item)),this.is_multiple&&(!this.hide_results_on_select||evt.metaKey||evt.ctrlKey)?evt.metaKey||evt.ctrlKey?this.winnow_results({skip_highlight:!0}):(this.search_field.val(""),this.winnow_results()):(this.results_hide(),this.show_search_field_default()),(this.is_multiple||this.form_field.selectedIndex!==this.current_selectedIndex)&&this.trigger_form_field_change({selected:this.form_field.options[item.options_index].value}),this.current_selectedIndex=this.form_field.selectedIndex,evt.preventDefault(),this.search_field_scale())},Chosen.prototype.single_set_selected_text=function(text){return null==text&&(text=this.default_text),text===this.default_text?this.selected_item.addClass("chosen-default"):(this.single_deselect_control_build(),this.selected_item.removeClass("chosen-default")),this.selected_item.find("span").html(text)},Chosen.prototype.result_deselect=function(pos){var result_data;return result_data=this.results_data[pos],!this.form_field.options[result_data.options_index].disabled&&(result_data.selected=!1,this.form_field.options[result_data.options_index].selected=!1,this.selected_option_count=null,this.result_clear_highlight(),this.results_showing&&this.winnow_results(),this.trigger_form_field_change({deselected:this.form_field.options[result_data.options_index].value}),this.search_field_scale(),!0)},Chosen.prototype.single_deselect_control_build=function(){if(this.allow_single_deselect)return this.selected_item.find("abbr").length||this.selected_item.find("span").first().after('<abbr class="search-choice-close"></abbr>'),this.selected_item.addClass("chosen-single-with-deselect")},Chosen.prototype.get_search_field_value=function(){return this.search_field.val()},Chosen.prototype.get_search_text=function(){return $.trim(this.get_search_field_value())},Chosen.prototype.escape_html=function(text){return $("<div/>").text(text).html()},Chosen.prototype.winnow_results_set_highlight=function(){var do_high,selected_results;if(null!=(do_high=(selected_results=this.is_multiple?[]:this.search_results.find(".result-selected.active-result")).length?selected_results.first():this.search_results.find(".active-result").first()))return this.result_do_highlight(do_high)},Chosen.prototype.no_results=function(terms){var no_results_html;return no_results_html=this.get_no_results_html(terms),this.search_results.append(no_results_html),this.form_field_jq.trigger("chosen:no_results",{chosen:this})},Chosen.prototype.no_results_clear=function(){return this.search_results.find(".no-results").remove()},Chosen.prototype.keydown_arrow=function(){var next_sib;return this.results_showing&&this.result_highlight?(next_sib=this.result_highlight.nextAll("li.active-result").first())?this.result_do_highlight(next_sib):void 0:this.results_show()},Chosen.prototype.keyup_arrow=function(){var prev_sibs;return this.results_showing||this.is_multiple?this.result_highlight?(prev_sibs=this.result_highlight.prevAll("li.active-result")).length?this.result_do_highlight(prev_sibs.first()):(this.choices_count()>0&&this.results_hide(),this.result_clear_highlight()):void 0:this.results_show()},Chosen.prototype.keydown_backstroke=function(){var next_available_destroy;return this.pending_backstroke?(this.choice_destroy(this.pending_backstroke.find("a").first()),this.clear_backstroke()):(next_available_destroy=this.search_container.siblings("li.search-choice").last()).length&&!next_available_destroy.hasClass("search-choice-disabled")?(this.pending_backstroke=next_available_destroy,this.single_backstroke_delete?this.keydown_backstroke():this.pending_backstroke.addClass("search-choice-focus")):void 0},Chosen.prototype.clear_backstroke=function(){return this.pending_backstroke&&this.pending_backstroke.removeClass("search-choice-focus"),this.pending_backstroke=null},Chosen.prototype.search_field_scale=function(){var div,i,len,style,style_block,styles,width;if(this.is_multiple){for(style_block={position:"absolute",left:"-1000px",top:"-1000px",display:"none",whiteSpace:"pre"},i=0,len=(styles=["fontSize","fontStyle","fontWeight","fontFamily","lineHeight","textTransform","letterSpacing"]).length;i<len;i++)style_block[style=styles[i]]=this.search_field.css(style);return(div=$("<div />").css(style_block)).text(this.get_search_field_value()),$("body").append(div),width=div.width()+25,div.remove(),this.container.is(":visible")&&(width=Math.min(this.container.outerWidth()-10,width)),this.search_field.width(width)}},Chosen.prototype.trigger_form_field_change=function(extra){return this.form_field_jq.trigger("input",extra),this.form_field_jq.trigger("change",extra)},Chosen}(AbstractChosen)}.call(this),function($){"use strict";function Rule(controller,condition,value){this.init(controller,condition,value)}function Ruleset(){this.rules=[]}$.extend(Rule.prototype,{init:function(controller,condition,value){this.controller=controller,this.condition=condition,this.value=value,this.rules=[],this.controls=[]},evalCondition:function(context,control,condition,val1,val2){if("=="==condition)return this.checkBoolean(val1)==this.checkBoolean(val2);if("!="==condition)return this.checkBoolean(val1)!=this.checkBoolean(val2);if(">="==condition)return Number(val2)>=Number(val1);if("<="==condition)return Number(val2)<=Number(val1);if(">"==condition)return Number(val2)>Number(val1);if("<"==condition)return Number(val2)<Number(val1);if("()"==condition)return window[val1](context,control,val2);if("any"==condition){if($.isArray(val2)){for(var i=val2.length-1;i>=0;i--)if(-1!==$.inArray(val2[i],val1.split(",")))return!0}else if(-1!==$.inArray(val2,val1.split(",")))return!0}else if("not-any"==condition)if($.isArray(val2)){for(var i=val2.length-1;i>=0;i--)if(-1==$.inArray(val2[i],val1.split(",")))return!0}else if(-1==$.inArray(val2,val1.split(",")))return!0;return!1},checkBoolean:function(value){switch(value){case!0:case"true":case 1:case"1":value=!0;break;case null:case!1:case"false":case 0:case"0":value=!1}return value},checkCondition:function(context){if(!this.condition)return!0;var control=context.find(this.controller),control_value=this.getControlValue(context,control);return void 0!==control_value&&(control_value=this.normalizeValue(control,this.value,control_value),this.evalCondition(context,control,this.condition,this.value,control_value))},normalizeValue:function(control,baseValue,control_value){return"number"==typeof baseValue?parseFloat(control_value):control_value},getControlValue:function(context,control){return control.length>1&&("radio"==control.attr("type")||"checkbox"==control.attr("type"))?control.filter(":checked").map((function(){return this.value})).get():"checkbox"==control.attr("type")||"radio"==control.attr("type")?control.is(":checked"):control.val()},createRule:function(controller,condition,value){var rule=new Rule(controller,condition,value);return this.rules.push(rule),rule},include:function(input){this.controls.push(input)},applyRule:function(context,enforced){var result;result=void 0===enforced?this.checkCondition(context):enforced;var controls=$.map(this.controls,(function(elem,idx){return context.find(elem)}));result?($(controls).each((function(){$(this).removeClass("spftestimonial-depend-on")})),$(this.rules).each((function(){this.applyRule(context)}))):($(controls).each((function(){$(this).addClass("spftestimonial-depend-on")})),$(this.rules).each((function(){this.applyRule(context,!1)})))}}),$.extend(Ruleset.prototype,{createRule:function(controller,condition,value){var rule=new Rule(controller,condition,value);return this.rules.push(rule),rule},applyRules:function(context){$(this.rules).each((function(){this.applyRule(context)}))}}),$.spftestimonial_deps={createRuleset:function(){return new Ruleset},enable:function(selection,ruleset,depends){return selection.on("change keyup",(function(elem){var depend_id=elem.target.getAttribute("data-depend-id")||elem.target.getAttribute("data-sub-depend-id");-1!==depends.indexOf(depend_id)&&ruleset.applyRules(selection)})),ruleset.applyRules(selection),!0}}}(jQuery),
2
  /**
3
  *
4
  * jQuery serializeObject
8
  * @license BSD
9
  * @version 2.5.0
10
  *
11
+ * Customized by Shapedplugin
12
  *
13
  */
14
  function(root,factory){if("function"==typeof define&&define.amd)define(["exports","jquery"],(function(exports,$){return factory(exports,$)}));else if("undefined"!=typeof exports){var $=require("jquery");factory(exports,$)}else factory(root,root.jQuery||root.Zepto||root.ender||root.$)}(this,(function(exports,$){var patterns={validate:/^(?!(_nonce|_pseudo))[a-zA-Z0-9_-]*(?:\[(?:\d*|(?!(_nonce|_pseudo))[a-zA-Z0-9_-]+)\])*$/i,key:/[a-zA-Z0-9_-]+|(?=\[\])/g,named:/^[a-zA-Z0-9_-]+$/,push:/^$/,fixed:/^\d+$/};function FormSerializer(helper,$form){var data={},pushes={};function build(base,key,value){return base[key]=value,base}function makeObject(root,value){for(var keys=root.match(patterns.key),k;void 0!==(k=keys.pop());){var idx;if(patterns.push.test(k))value=build([],incrementPush(root.replace(/\[\]$/,"")),value);else patterns.fixed.test(k)?value=build([],k,value):patterns.named.test(k)&&(value=build({},k,value))}return value}function incrementPush(key){return void 0===pushes[key]&&(pushes[key]=0),pushes[key]++}function addPair(pair){if(!patterns.validate.test(pair.name))return this;var obj=makeObject(pair.name,pair.value);return data=helper.extend(!0,data,obj),this}function addPairs(pairs){if(!helper.isArray(pairs))throw new Error("formSerializer.addPairs expects an Array");for(var i=0,len=pairs.length;i<len;i++)this.addPair(pairs[i]);return this}function serialize(){return data}function serializeJSON(){return JSON.stringify(serialize())}this.addPair=addPair,this.addPairs=addPairs,this.serialize=serialize,this.serializeJSON=serializeJSON}return FormSerializer.patterns=patterns,FormSerializer.serializeObject=function serializeObject(){return new FormSerializer($,this).addPairs(this.serializeArray()).serialize()},FormSerializer.serializeJSON=function serializeJSON(){return new FormSerializer($,this).addPairs(this.serializeArray()).serializeJSON()},void 0!==$.fn&&($.fn.serializeObjectSPFTESTIMONIAL=FormSerializer.serializeObject,$.fn.serializeJSONSPFTESTIMONIAL=FormSerializer.serializeJSON),exports.FormSerializer=FormSerializer,FormSerializer}));
admin/views/framework/assets/js/spftestimonial.js CHANGED
@@ -14,6 +14,7 @@
14
  $window: $(window),
15
  $document: $(document),
16
  $form_warning: null,
 
17
  form_modified: false,
18
  code_themes: [],
19
  is_rtl: $('body').hasClass('rtl'),
@@ -34,7 +35,7 @@
34
  // Quote regular expression characters
35
  //
36
  preg_quote: function (str) {
37
- return (str + '').replace(/(\[|\-|\])/g, "\\$1");
38
  },
39
 
40
  //
@@ -43,7 +44,7 @@
43
  name_nested_replace: function ($selector, field_id) {
44
 
45
  var checks = [];
46
- var regex = new RegExp('(' + SPFTESTIMONIAL.helper.preg_quote(field_id) + ')\\[(\\d+)\\]', 'g');
47
 
48
  $selector.find(':radio').each(function () {
49
  if (this.checked || this.orginal_checked) {
@@ -83,7 +84,6 @@
83
  }
84
  };
85
  },
86
-
87
  //
88
  // Get a cookie
89
  //
@@ -140,14 +140,12 @@
140
  (secure ? '; secure' : '');
141
 
142
  },
143
-
144
  //
145
  // Remove a cookie
146
  //
147
  remove_cookie: function (name, path, domain, secure) {
148
  SPFTESTIMONIAL.helper.set_cookie(name, '', -1000, path, domain, secure);
149
  },
150
-
151
  };
152
 
153
  //
@@ -200,37 +198,52 @@
200
  return this.each(function () {
201
 
202
  var $nav = $(this),
 
 
203
  $links = $nav.find('a'),
204
- $hidden = $nav.closest('.spftestimonial').find('.spftestimonial-section-id'),
205
- $last_section;
 
 
 
 
 
 
 
206
 
207
- $(window).on('hashchange', function () {
208
 
209
- var hash = window.location.hash.match(new RegExp('tab=([^&]*)'));
210
- var slug = hash ? hash[1] : $links.first().attr('href').replace('#tab=', '');
211
- var $link = $('#spftestimonial-tab-link-' + slug);
212
 
213
- if ($link.length > 0) {
 
214
 
215
- $link.closest('.spftestimonial-tab-depth-0').addClass('spftestimonial-tab-active').siblings().removeClass('spftestimonial-tab-active');
216
- $links.removeClass('spftestimonial-section-active');
217
- $link.addClass('spftestimonial-section-active');
 
218
 
219
- if ($last_section !== undefined) {
220
- $last_section.hide();
221
  }
222
 
223
- var $section = $('#spftestimonial-section-' + slug);
224
- $section.css({ display: 'block' });
 
225
  $section.spftestimonial_reload_script();
226
 
227
- $hidden.val(slug);
228
 
229
- $last_section = $section;
 
 
 
 
 
230
 
231
  }
232
 
233
- }).trigger('hashchange');
234
 
235
  });
236
  };
@@ -243,41 +256,38 @@
243
 
244
  var $nav = $(this),
245
  $links = $nav.find('a'),
 
246
  unique_id = $nav.data('unique'),
247
  post_id = $('#post_ID').val() || 'global',
248
- $last_section,
249
- $last_link;
250
-
251
- $links.on('click', function (e) {
252
 
253
- e.preventDefault();
254
 
255
- var $link = $(this),
256
- section_id = $link.data('section');
257
 
258
- if ($last_link !== undefined) {
259
- $last_link.removeClass('spftestimonial-section-active');
260
- }
261
 
262
- if ($last_section !== undefined) {
263
- $last_section.hide();
264
- }
 
 
 
 
265
 
266
- $link.addClass('spftestimonial-section-active');
267
 
268
- var $section = $('#spftestimonial-section-' + section_id);
269
- $section.css({ display: 'block' });
270
- $section.spftestimonial_reload_script();
271
 
272
- SPFTESTIMONIAL.helper.set_cookie('spftestimonial-last-metabox-tab-' + post_id + '-' + unique_id, section_id);
273
 
274
- $last_section = $section;
275
- $last_link = $link;
276
 
277
  });
278
 
279
  var get_cookie = SPFTESTIMONIAL.helper.get_cookie('spftestimonial-last-metabox-tab-' + post_id + '-' + unique_id);
280
-
281
  if (get_cookie) {
282
  $nav.find('a[data-section="' + get_cookie + '"]').trigger('click');
283
  } else {
@@ -287,44 +297,7 @@
287
  });
288
  };
289
 
290
- //
291
- // Metabox Page Templates Listener
292
- //
293
- $.fn.spftestimonial_page_templates = function () {
294
- if (this.length) {
295
-
296
- $(document).on('change', '.editor-page-attributes__template select, #page_template', function () {
297
-
298
- var maybe_value = $(this).val() || 'default';
299
-
300
- $('.spftestimonial-page-templates').removeClass('spftestimonial-show').addClass('spftestimonial-hide');
301
- $('.spftestimonial-page-' + maybe_value.toLowerCase().replace(/[^a-zA-Z0-9]+/g, '-')).removeClass('spftestimonial-hide').addClass('spftestimonial-show');
302
-
303
- });
304
-
305
- }
306
- };
307
-
308
- //
309
- // Metabox Post Formats Listener
310
- //
311
- $.fn.spftestimonial_post_formats = function () {
312
- if (this.length) {
313
-
314
- $(document).on('change', '.editor-post-format select, #formatdiv input[name="post_format"]', function () {
315
-
316
- var maybe_value = $(this).val() || 'default';
317
 
318
- // Fallback for classic editor version
319
- maybe_value = (maybe_value === '0') ? 'default' : maybe_value;
320
-
321
- $('.spftestimonial-post-formats').removeClass('spftestimonial-show').addClass('spftestimonial-hide');
322
- $('.spftestimonial-post-format-' + maybe_value).removeClass('spftestimonial-hide').addClass('spftestimonial-show');
323
-
324
- });
325
-
326
- }
327
- };
328
 
329
  //
330
  // Search
@@ -340,12 +313,12 @@
340
  var value = $(this).val(),
341
  $wrapper = $('.spftestimonial-wrapper'),
342
  $section = $wrapper.find('.spftestimonial-section'),
343
- $fields = $section.find('> .spftestimonial-field:not(.hidden)'),
344
  $titles = $fields.find('> .spftestimonial-title, .spftestimonial-search-tags');
345
 
346
  if (value.length > 3) {
347
 
348
- $fields.addClass('spftestimonial-hidden');
349
  $wrapper.addClass('spftestimonial-search-all');
350
 
351
  $titles.each(function () {
@@ -356,7 +329,7 @@
356
 
357
  var $field = $title.closest('.spftestimonial-field');
358
 
359
- $field.removeClass('spftestimonial-hidden');
360
  $field.parent().spftestimonial_reload_script();
361
 
362
  }
@@ -365,7 +338,7 @@
365
 
366
  } else {
367
 
368
- $fields.removeClass('spftestimonial-hidden');
369
  $wrapper.removeClass('spftestimonial-search-all');
370
 
371
  }
@@ -393,7 +366,7 @@
393
 
394
  var offsetTop = $this.offset().top,
395
  stickyTop = Math.max(offset, offsetTop - scrollTop),
396
- winWidth = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);
397
 
398
  if (stickyTop <= offset && winWidth > 782) {
399
  $inner.css({ width: $this.outerWidth() - padding });
@@ -437,43 +410,49 @@
437
  return this.each(function () {
438
 
439
  var $this = $(this),
440
- ruleset = $.spftestimonial_deps.createRuleset(),
441
- depends = [],
442
- is_global = false;
443
 
444
- $this.children('[data-controller]').each(function () {
445
 
446
- var $field = $(this),
447
- controllers = $field.data('controller').split('|'),
448
- conditions = $field.data('condition').split('|'),
449
- values = $field.data('value').toString().split('|'),
450
- rules = ruleset;
451
 
452
- if ($field.data('depend-global')) {
453
- is_global = true;
454
- }
455
 
456
- $.each(controllers, function (index, depend_id) {
 
 
 
 
 
457
 
458
- var value = values[index] || '',
459
- condition = conditions[index] || conditions[0];
460
 
461
- rules = rules.createRule('[data-depend-id="' + depend_id + '"]', condition, value);
 
462
 
463
- rules.include($field);
464
 
465
- depends.push(depend_id);
466
 
467
- });
 
 
 
 
468
 
469
- });
470
 
471
- if (depends.length) {
472
 
473
- if (is_global) {
474
- $.spftestimonial_deps.enable(SPFTESTIMONIAL.vars.$body, ruleset, depends);
475
- } else {
476
- $.spftestimonial_deps.enable($this, ruleset, depends);
 
 
477
  }
478
 
479
  }
@@ -515,102 +494,6 @@
515
  $titles.trigger('click');
516
  }
517
 
518
-
519
- });
520
- };
521
-
522
- //
523
- // Field: backup
524
- //
525
- $.fn.spftestimonial_field_backup = function () {
526
- return this.each(function () {
527
-
528
- if (window.wp.customize === undefined) { return; }
529
-
530
- var base = this,
531
- $this = $(this),
532
- $body = $('body'),
533
- $import = $this.find('.spftestimonial-import'),
534
- $reset = $this.find('.spftestimonial-reset');
535
-
536
- base.notification = function (message_text) {
537
-
538
- if (wp.customize.notifications && wp.customize.OverlayNotification) {
539
-
540
- // clear if there is any saved data.
541
- if (!wp.customize.state('saved').get()) {
542
- wp.customize.state('changesetStatus').set('trash');
543
- wp.customize.each(function (setting) { setting._dirty = false; });
544
- wp.customize.state('saved').set(true);
545
- }
546
-
547
- // then show a notification overlay
548
- wp.customize.notifications.add(new wp.customize.OverlayNotification('spftestimonial_field_backup_notification', {
549
- type: 'info',
550
- message: message_text,
551
- loading: true
552
- }));
553
-
554
- }
555
-
556
- };
557
-
558
- $reset.on('click', function (e) {
559
-
560
- e.preventDefault();
561
-
562
- if (SPFTESTIMONIAL.vars.is_confirm) {
563
-
564
- base.notification(window.spftestimonial_vars.i18n.reset_notification);
565
-
566
- window.wp.ajax.post('spftestimonial-reset', {
567
- unique: $reset.data('unique'),
568
- nonce: $reset.data('nonce')
569
- })
570
- .done(function (response) {
571
- window.location.reload(true);
572
- })
573
- .fail(function (response) {
574
- alert(response.error);
575
- wp.customize.notifications.remove('spftestimonial_field_backup_notification');
576
- });
577
-
578
- }
579
-
580
- });
581
-
582
- $import.on('click', function (e) {
583
-
584
- e.preventDefault();
585
-
586
- if (SPFTESTIMONIAL.vars.is_confirm) {
587
-
588
- base.notification(window.spftestimonial_vars.i18n.import_notification);
589
-
590
- window.wp.ajax.post('spftestimonial-import', {
591
- unique: $import.data('unique'),
592
- nonce: $import.data('nonce'),
593
- import_data: $this.find('.spftestimonial-import-data').val()
594
- }).done(function (response) {
595
- window.location.reload(true);
596
- }).fail(function (response) {
597
- alert(response.error);
598
- wp.customize.notifications.remove('spftestimonial_field_backup_notification');
599
- });
600
-
601
- }
602
-
603
- });
604
-
605
- });
606
- };
607
-
608
- //
609
- // Field: background
610
- //
611
- $.fn.spftestimonial_field_background = function () {
612
- return this.each(function () {
613
- $(this).find('.spftestimonial--background-image').spftestimonial_reload_script();
614
  });
615
  };
616
 
@@ -670,62 +553,6 @@
670
  });
671
  };
672
 
673
- //
674
- // Field: date
675
- //
676
- $.fn.spftestimonial_field_date = function () {
677
- return this.each(function () {
678
-
679
- var $this = $(this),
680
- $inputs = $this.find('input'),
681
- settings = $this.find('.spftestimonial-date-settings').data('settings'),
682
- wrapper = '<div class="spftestimonial-datepicker-wrapper"></div>',
683
- $datepicker;
684
-
685
- var defaults = {
686
- showAnim: '',
687
- beforeShow: function (input, inst) {
688
- $(inst.dpDiv).addClass('spftestimonial-datepicker-wrapper');
689
- },
690
- onClose: function (input, inst) {
691
- $(inst.dpDiv).removeClass('spftestimonial-datepicker-wrapper');
692
- },
693
- };
694
-
695
- settings = $.extend({}, settings, defaults);
696
-
697
- if ($inputs.length === 2) {
698
-
699
- settings = $.extend({}, settings, {
700
- onSelect: function (selectedDate) {
701
-
702
- var $this = $(this),
703
- $from = $inputs.first(),
704
- option = ($inputs.first().attr('id') === $(this).attr('id')) ? 'minDate' : 'maxDate',
705
- date = $.datepicker.parseDate(settings.dateFormat, selectedDate);
706
-
707
- $inputs.not(this).datepicker('option', option, date);
708
-
709
- }
710
- });
711
-
712
- }
713
-
714
- $inputs.each(function () {
715
-
716
- var $input = $(this);
717
-
718
- if ($input.hasClass('hasDatepicker')) {
719
- $input.removeAttr('id').removeClass('hasDatepicker');
720
- }
721
-
722
- $input.datepicker(settings);
723
-
724
- });
725
-
726
- });
727
- };
728
-
729
  //
730
  // Field: fieldset
731
  //
@@ -735,497 +562,6 @@
735
  });
736
  };
737
 
738
- //
739
- // Field: gallery
740
- //
741
- $.fn.spftestimonial_field_gallery = function () {
742
- return this.each(function () {
743
-
744
- var $this = $(this),
745
- $edit = $this.find('.spftestimonial-edit-gallery'),
746
- $clear = $this.find('.spftestimonial-clear-gallery'),
747
- $list = $this.find('ul'),
748
- $input = $this.find('input'),
749
- $img = $this.find('img'),
750
- wp_media_frame;
751
-
752
- $this.on('click', '.spftestimonial-button, .spftestimonial-edit-gallery', function (e) {
753
-
754
- var $el = $(this),
755
- ids = $input.val(),
756
- what = ($el.hasClass('spftestimonial-edit-gallery')) ? 'edit' : 'add',
757
- state = (what === 'add' && !ids.length) ? 'gallery' : 'gallery-edit';
758
-
759
- e.preventDefault();
760
-
761
- if (typeof window.wp === 'undefined' || !window.wp.media || !window.wp.media.gallery) { return; }
762
-
763
- // Open media with state
764
- if (state === 'gallery') {
765
-
766
- wp_media_frame = window.wp.media({
767
- library: {
768
- type: 'image'
769
- },
770
- frame: 'post',
771
- state: 'gallery',
772
- multiple: true
773
- });
774
-
775
- wp_media_frame.open();
776
-
777
- } else {
778
-
779
- wp_media_frame = window.wp.media.gallery.edit('[gallery ids="' + ids + '"]');
780
-
781
- if (what === 'add') {
782
- wp_media_frame.setState('gallery-library');
783
- }
784
-
785
- }
786
-
787
- // Media Update
788
- wp_media_frame.on('update', function (selection) {
789
-
790
- $list.empty();
791
-
792
- var selectedIds = selection.models.map(function (attachment) {
793
-
794
- var item = attachment.toJSON();
795
- var thumb = (item.sizes && item.sizes.thumbnail && item.sizes.thumbnail.url) ? item.sizes.thumbnail.url : item.url;
796
-
797
- $list.append('<li><img src="' + thumb + '"></li>');
798
-
799
- return item.id;
800
-
801
- });
802
-
803
- $input.val(selectedIds.join(',')).trigger('change');
804
- $clear.removeClass('hidden');
805
- $edit.removeClass('hidden');
806
-
807
- });
808
-
809
- });
810
-
811
- $clear.on('click', function (e) {
812
- e.preventDefault();
813
- $list.empty();
814
- $input.val('').trigger('change');
815
- $clear.addClass('hidden');
816
- $edit.addClass('hidden');
817
- });
818
-
819
- });
820
-
821
- };
822
-
823
- //
824
- // Field: group
825
- //
826
- $.fn.spftestimonial_field_group = function () {
827
- return this.each(function () {
828
-
829
- var $this = $(this),
830
- $fieldset = $this.children('.spftestimonial-fieldset'),
831
- $group = $fieldset.length ? $fieldset : $this,
832
- $wrapper = $group.children('.spftestimonial-cloneable-wrapper'),
833
- $hidden = $group.children('.spftestimonial-cloneable-hidden'),
834
- $max = $group.children('.spftestimonial-cloneable-max'),
835
- $min = $group.children('.spftestimonial-cloneable-min'),
836
- field_id = $wrapper.data('field-id'),
837
- unique_id = $wrapper.data('unique-id'),
838
- is_number = Boolean(Number($wrapper.data('title-number'))),
839
- max = parseInt($wrapper.data('max')),
840
- min = parseInt($wrapper.data('min'));
841
-
842
- // clear accordion arrows if multi-instance
843
- if ($wrapper.hasClass('ui-accordion')) {
844
- $wrapper.find('.ui-accordion-header-icon').remove();
845
- }
846
-
847
- var update_title_numbers = function ($selector) {
848
- $selector.find('.spftestimonial-cloneable-title-number').each(function (index) {
849
- $(this).html(($(this).closest('.spftestimonial-cloneable-item').index() + 1) + '.');
850
- });
851
- };
852
-
853
- $wrapper.accordion({
854
- header: '> .spftestimonial-cloneable-item > .spftestimonial-cloneable-title',
855
- collapsible: true,
856
- active: false,
857
- animate: false,
858
- heightStyle: 'content',
859
- icons: {
860
- 'header': 'spftestimonial-cloneable-header-icon fa fa-angle-right',
861
- 'activeHeader': 'spftestimonial-cloneable-header-icon fa fa-angle-down'
862
- },
863
- activate: function (event, ui) {
864
-
865
- var $panel = ui.newPanel;
866
- var $header = ui.newHeader;
867
-
868
- if ($panel.length && !$panel.data('opened')) {
869
-
870
- var $fields = $panel.children();
871
- var $first = $fields.first().find(':input').first();
872
- var $title = $header.find('.spftestimonial-cloneable-value');
873
-
874
- $first.on('keyup', function (event) {
875
- $title.text($first.val());
876
- });
877
-
878
- $panel.spftestimonial_reload_script();
879
- $panel.data('opened', true);
880
- $panel.data('retry', false);
881
-
882
- } else if ($panel.data('retry')) {
883
-
884
- $panel.spftestimonial_reload_script_retry();
885
- $panel.data('retry', false);
886
-
887
- }
888
-
889
- }
890
- });
891
-
892
- $wrapper.sortable({
893
- axis: 'y',
894
- handle: '.spftestimonial-cloneable-title,.spftestimonial-cloneable-sort',
895
- helper: 'original',
896
- cursor: 'move',
897
- placeholder: 'widget-placeholder',
898
- start: function (event, ui) {
899
-
900
- $wrapper.accordion({ active: false });
901
- $wrapper.sortable('refreshPositions');
902
- ui.item.children('.spftestimonial-cloneable-content').data('retry', true);
903
-
904
- },
905
- update: function (event, ui) {
906
-
907
- SPFTESTIMONIAL.helper.name_nested_replace($wrapper.children('.spftestimonial-cloneable-item'), field_id);
908
- $wrapper.spftestimonial_customizer_refresh();
909
-
910
- if (is_number) {
911
- update_title_numbers($wrapper);
912
- }
913
-
914
- },
915
- });
916
-
917
- $group.children('.spftestimonial-cloneable-add').on('click', function (e) {
918
-
919
- e.preventDefault();
920
-
921
- var count = $wrapper.children('.spftestimonial-cloneable-item').length;
922
-
923
- $min.hide();
924
-
925
- if (max && (count + 1) > max) {
926
- $max.show();
927
- return;
928
- }
929
-
930
- var new_field_id = unique_id + field_id + '[' + count + ']';
931
-
932
- var $cloned_item = $hidden.spftestimonial_clone(true);
933
-
934
- $cloned_item.removeClass('spftestimonial-cloneable-hidden');
935
-
936
- $cloned_item.find(':input[name!="_pseudo"]').each(function () {
937
- this.name = new_field_id + this.name.replace((this.name.startsWith('_nonce') ? '_nonce' : unique_id), '');
938
- });
939
-
940
- $cloned_item.find('.spftestimonial-data-wrapper').each(function () {
941
- $(this).attr('data-unique-id', new_field_id);
942
- });
943
-
944
- $wrapper.append($cloned_item);
945
- $wrapper.accordion('refresh');
946
- $wrapper.accordion({ active: count });
947
- $wrapper.spftestimonial_customizer_refresh();
948
- $wrapper.spftestimonial_customizer_listen({ closest: true });
949
-
950
- if (is_number) {
951
- update_title_numbers($wrapper);
952
- }
953
-
954
- });
955
-
956
- var event_clone = function (e) {
957
-
958
- e.preventDefault();
959
-
960
- var count = $wrapper.children('.spftestimonial-cloneable-item').length;
961
-
962
- $min.hide();
963
-
964
- if (max && (count + 1) > max) {
965
- $max.show();
966
- return;
967
- }
968
-
969
- var $this = $(this),
970
- $parent = $this.parent().parent(),
971
- $cloned_helper = $parent.children('.spftestimonial-cloneable-helper').spftestimonial_clone(true),
972
- $cloned_title = $parent.children('.spftestimonial-cloneable-title').spftestimonial_clone(),
973
- $cloned_content = $parent.children('.spftestimonial-cloneable-content').spftestimonial_clone(),
974
- cloned_regex = new RegExp('(' + SPFTESTIMONIAL.helper.preg_quote(field_id) + ')\\[(\\d+)\\]', 'g');
975
-
976
- $cloned_content.find('.spftestimonial-data-wrapper').each(function () {
977
- var $this = $(this);
978
- $this.attr('data-unique-id', $this.attr('data-unique-id').replace(cloned_regex, field_id + '[' + ($parent.index() + 1) + ']'));
979
- });
980
-
981
- var $cloned = $('<div class="spftestimonial-cloneable-item" />');
982
-
983
- $cloned.append($cloned_helper);
984
- $cloned.append($cloned_title);
985
- $cloned.append($cloned_content);
986
-
987
- $wrapper.children().eq($parent.index()).after($cloned);
988
-
989
- SPFTESTIMONIAL.helper.name_nested_replace($wrapper.children('.spftestimonial-cloneable-item'), field_id);
990
-
991
- $wrapper.accordion('refresh');
992
- $wrapper.spftestimonial_customizer_refresh();
993
- $wrapper.spftestimonial_customizer_listen({ closest: true });
994
-
995
- if (is_number) {
996
- update_title_numbers($wrapper);
997
- }
998
-
999
- };
1000
-
1001
- $wrapper.children('.spftestimonial-cloneable-item').children('.spftestimonial-cloneable-helper').on('click', '.spftestimonial-cloneable-clone', event_clone);
1002
- $group.children('.spftestimonial-cloneable-hidden').children('.spftestimonial-cloneable-helper').on('click', '.spftestimonial-cloneable-clone', event_clone);
1003
-
1004
- var event_remove = function (e) {
1005
-
1006
- e.preventDefault();
1007
-
1008
- var count = $wrapper.children('.spftestimonial-cloneable-item').length;
1009
-
1010
- $max.hide();
1011
- $min.hide();
1012
-
1013
- if (min && (count - 1) < min) {
1014
- $min.show();
1015
- return;
1016
- }
1017
-
1018
- $(this).closest('.spftestimonial-cloneable-item').remove();
1019
-
1020
- SPFTESTIMONIAL.helper.name_nested_replace($wrapper.children('.spftestimonial-cloneable-item'), field_id);
1021
-
1022
- $wrapper.spftestimonial_customizer_refresh();
1023
-
1024
- if (is_number) {
1025
- update_title_numbers($wrapper);
1026
- }
1027
-
1028
- };
1029
-
1030
- $wrapper.children('.spftestimonial-cloneable-item').children('.spftestimonial-cloneable-helper').on('click', '.spftestimonial-cloneable-remove', event_remove);
1031
- $group.children('.spftestimonial-cloneable-hidden').children('.spftestimonial-cloneable-helper').on('click', '.spftestimonial-cloneable-remove', event_remove);
1032
-
1033
- });
1034
- };
1035
-
1036
- //
1037
- // Field: map
1038
- //
1039
- $.fn.spftestimonial_field_map = function () {
1040
- return this.each(function () {
1041
-
1042
- if (typeof L === 'undefined') { return; }
1043
-
1044
- var $this = $(this),
1045
- $map = $this.find('.spftestimonial--map-osm'),
1046
- $search_input = $this.find('.spftestimonial--map-search input'),
1047
- $latitude = $this.find('.spftestimonial--latitude'),
1048
- $longitude = $this.find('.spftestimonial--longitude'),
1049
- $zoom = $this.find('.spftestimonial--zoom'),
1050
- map_data = $map.data('map');
1051
-
1052
- var mapInit = L.map($map.get(0), map_data);
1053
-
1054
- L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
1055
- attribution: '&copy; <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors'
1056
- }).addTo(mapInit);
1057
-
1058
- var mapMarker = L.marker(map_data.center, { draggable: true }).addTo(mapInit);
1059
-
1060
- var update_latlng = function (data) {
1061
- $latitude.val(data.lat);
1062
- $longitude.val(data.lng);
1063
- $zoom.val(mapInit.getZoom());
1064
- };
1065
-
1066
- mapInit.on('click', function (data) {
1067
- mapMarker.setLatLng(data.latlng);
1068
- update_latlng(data.latlng);
1069
- });
1070
-
1071
- mapInit.on('zoom', function () {
1072
- update_latlng(mapMarker.getLatLng());
1073
- });
1074
-
1075
- mapMarker.on('drag', function () {
1076
- update_latlng(mapMarker.getLatLng());
1077
- });
1078
-
1079
- if (!$search_input.length) {
1080
- $search_input = $('[data-depend-id="' + $this.find('.spftestimonial--address-field').data('address-field') + '"]');
1081
- }
1082
-
1083
- $search_input.autocomplete({
1084
- source: function (request, response) {
1085
- $.get('https://nominatim.openstreetmap.org/search', {
1086
- format: 'json',
1087
- q: request.term,
1088
- }, function (results) {
1089
- if (results.length) {
1090
- response(results.map(function (item) {
1091
- return {
1092
- value: item.display_name,
1093
- label: item.display_name,
1094
- lat: item.lat,
1095
- lon: item.lon
1096
- };
1097
- }, 'json'));
1098
- } else {
1099
- response([{
1100
- value: 'no-data',
1101
- label: 'No Results.'
1102
- }]);
1103
- }
1104
- });
1105
- },
1106
- select: function (event, ui) {
1107
-
1108
- if (ui.item.value === 'no-data') { return false; }
1109
-
1110
- var latLng = L.latLng(ui.item.lat, ui.item.lon);
1111
-
1112
- mapInit.panTo(latLng);
1113
- mapMarker.setLatLng(latLng);
1114
- update_latlng(latLng);
1115
-
1116
- },
1117
- create: function (event, ui) {
1118
- $(this).autocomplete('widget').addClass('spftestimonial-map-ui-autocomplate');
1119
- }
1120
- });
1121
-
1122
- var input_update_latlng = function () {
1123
-
1124
- var latLng = L.latLng($latitude.val(), $longitude.val());
1125
-
1126
- mapInit.panTo(latLng);
1127
- mapMarker.setLatLng(latLng);
1128
-
1129
- };
1130
-
1131
- $latitude.on('change', input_update_latlng);
1132
- $longitude.on('change', input_update_latlng);
1133
-
1134
- });
1135
- };
1136
-
1137
- //
1138
- // Field: media
1139
- //
1140
- $.fn.spftestimonial_field_media = function () {
1141
- return this.each(function () {
1142
-
1143
- var $this = $(this),
1144
- $upload_button = $this.find('.spftestimonial--button'),
1145
- $remove_button = $this.find('.spftestimonial--remove'),
1146
- $library = $upload_button.data('library') && $upload_button.data('library').split(',') || '',
1147
- $auto_attributes = ($this.hasClass('spftestimonial-assign-field-background')) ? $this.closest('.spftestimonial-field-background').find('.spftestimonial--auto-attributes') : false,
1148
- wp_media_frame;
1149
-
1150
- $upload_button.on('click', function (e) {
1151
-
1152
- e.preventDefault();
1153
-
1154
- if (typeof window.wp === 'undefined' || !window.wp.media || !window.wp.media.gallery) {
1155
- return;
1156
- }
1157
-
1158
- if (wp_media_frame) {
1159
- wp_media_frame.open();
1160
- return;
1161
- }
1162
-
1163
- wp_media_frame = window.wp.media({
1164
- library: {
1165
- type: $library
1166
- }
1167
- });
1168
-
1169
- wp_media_frame.on('select', function () {
1170
-
1171
- var thumbnail;
1172
- var attributes = wp_media_frame.state().get('selection').first().attributes;
1173
- var preview_size = $upload_button.data('preview-size') || 'thumbnail';
1174
-
1175
- if ($library.length && $library.indexOf(attributes.subtype) === -1 && $library.indexOf(attributes.type) === -1) {
1176
- return;
1177
- }
1178
-
1179
- $this.find('.spftestimonial--id').val(attributes.id);
1180
- $this.find('.spftestimonial--width').val(attributes.width);
1181
- $this.find('.spftestimonial--height').val(attributes.height);
1182
- $this.find('.spftestimonial--alt').val(attributes.alt);
1183
- $this.find('.spftestimonial--title').val(attributes.title);
1184
- $this.find('.spftestimonial--description').val(attributes.description);
1185
-
1186
- if (typeof attributes.sizes !== 'undefined' && typeof attributes.sizes.thumbnail !== 'undefined' && preview_size === 'thumbnail') {
1187
- thumbnail = attributes.sizes.thumbnail.url;
1188
- } else if (typeof attributes.sizes !== 'undefined' && typeof attributes.sizes.full !== 'undefined') {
1189
- thumbnail = attributes.sizes.full.url;
1190
- } else {
1191
- thumbnail = attributes.icon;
1192
- }
1193
-
1194
- if ($auto_attributes) {
1195
- $auto_attributes.removeClass('spftestimonial--attributes-hidden');
1196
- }
1197
-
1198
- $remove_button.removeClass('hidden');
1199
-
1200
- $this.find('.spftestimonial--preview').removeClass('hidden');
1201
- $this.find('.spftestimonial--src').attr('src', thumbnail);
1202
- $this.find('.spftestimonial--thumbnail').val(thumbnail);
1203
- $this.find('.spftestimonial--url').val(attributes.url).trigger('change');
1204
-
1205
- });
1206
-
1207
- wp_media_frame.open();
1208
-
1209
- });
1210
-
1211
- $remove_button.on('click', function (e) {
1212
-
1213
- e.preventDefault();
1214
-
1215
- if ($auto_attributes) {
1216
- $auto_attributes.addClass('spftestimonial--attributes-hidden');
1217
- }
1218
-
1219
- $remove_button.addClass('hidden');
1220
- $this.find('input').val('');
1221
- $this.find('.spftestimonial--preview').addClass('hidden');
1222
- $this.find('.spftestimonial--url').trigger('change');
1223
-
1224
- });
1225
-
1226
- });
1227
-
1228
- };
1229
 
1230
  //
1231
  // Field: repeater
@@ -1241,11 +577,9 @@
1241
  $max = $repeater.children('.spftestimonial-repeater-max'),
1242
  $min = $repeater.children('.spftestimonial-repeater-min'),
1243
  field_id = $wrapper.data('field-id'),
1244
- unique_id = $wrapper.data('unique-id'),
1245
  max = parseInt($wrapper.data('max')),
1246
  min = parseInt($wrapper.data('min'));
1247
 
1248
-
1249
  $wrapper.children('.spftestimonial-repeater-item').children('.spftestimonial-repeater-content').spftestimonial_reload_script();
1250
 
1251
  $wrapper.sortable({
@@ -1257,8 +591,8 @@
1257
  update: function (event, ui) {
1258
 
1259
  SPFTESTIMONIAL.helper.name_nested_replace($wrapper.children('.spftestimonial-repeater-item'), field_id);
1260
- $wrapper.spftestimonial_customizer_refresh();
1261
- ui.item.spftestimonial_reload_script_retry();
1262
 
1263
  }
1264
  });
@@ -1276,24 +610,18 @@
1276
  return;
1277
  }
1278
 
1279
- var new_field_id = unique_id + field_id + '[' + count + ']';
1280
-
1281
  var $cloned_item = $hidden.spftestimonial_clone(true);
1282
 
1283
  $cloned_item.removeClass('spftestimonial-repeater-hidden');
1284
 
1285
  $cloned_item.find(':input[name!="_pseudo"]').each(function () {
1286
- this.name = new_field_id + this.name.replace((this.name.startsWith('_nonce') ? '_nonce' : unique_id), '');
1287
- });
1288
-
1289
- $cloned_item.find('.spftestimonial-data-wrapper').each(function () {
1290
- $(this).attr('data-unique-id', new_field_id);
1291
  });
1292
 
1293
  $wrapper.append($cloned_item);
1294
  $cloned_item.children('.spftestimonial-repeater-content').spftestimonial_reload_script();
1295
- $wrapper.spftestimonial_customizer_refresh();
1296
- $wrapper.spftestimonial_customizer_listen({ closest: true });
1297
 
1298
  });
1299
 
@@ -1314,26 +642,19 @@
1314
  $parent = $this.parent().parent().parent(),
1315
  $cloned_content = $parent.children('.spftestimonial-repeater-content').spftestimonial_clone(),
1316
  $cloned_helper = $parent.children('.spftestimonial-repeater-helper').spftestimonial_clone(true),
1317
- cloned_regex = new RegExp('(' + SPFTESTIMONIAL.helper.preg_quote(field_id) + ')\\[(\\d+)\\]', 'g');
1318
-
1319
- $cloned_content.find('.spftestimonial-data-wrapper').each(function () {
1320
- var $this = $(this);
1321
- $this.attr('data-unique-id', $this.attr('data-unique-id').replace(cloned_regex, field_id + '[' + ($parent.index() + 1) + ']'));
1322
- });
1323
-
1324
- var $cloned = $('<div class="spftestimonial-repeater-item" />');
1325
 
1326
- $cloned.append($cloned_content);
1327
- $cloned.append($cloned_helper);
1328
 
1329
- $wrapper.children().eq($parent.index()).after($cloned);
1330
 
1331
- $cloned.children('.spftestimonial-repeater-content').spftestimonial_reload_script();
1332
 
1333
  SPFTESTIMONIAL.helper.name_nested_replace($wrapper.children('.spftestimonial-repeater-item'), field_id);
1334
 
1335
- $wrapper.spftestimonial_customizer_refresh();
1336
- $wrapper.spftestimonial_customizer_listen({ closest: true });
1337
 
1338
  };
1339
 
@@ -1358,7 +679,7 @@
1358
 
1359
  SPFTESTIMONIAL.helper.name_nested_replace($wrapper.children('.spftestimonial-repeater-item'), field_id);
1360
 
1361
- $wrapper.spftestimonial_customizer_refresh();
1362
 
1363
  };
1364
 
@@ -1368,47 +689,13 @@
1368
  });
1369
  };
1370
 
1371
- //
1372
- // Field: slider
1373
- //
1374
- $.fn.spftestimonial_field_slider = function () {
1375
- return this.each(function () {
1376
-
1377
- var $this = $(this),
1378
- $input = $this.find('input'),
1379
- $slider = $this.find('.spftestimonial-slider-ui'),
1380
- data = $input.data(),
1381
- value = $input.val() || 0;
1382
-
1383
- if ($slider.hasClass('ui-slider')) {
1384
- $slider.empty();
1385
- }
1386
-
1387
- $slider.slider({
1388
- range: 'min',
1389
- value: value,
1390
- min: data.min,
1391
- max: data.max,
1392
- step: data.step,
1393
- slide: function (e, o) {
1394
- $input.val(o.value).trigger('change');
1395
- }
1396
- });
1397
-
1398
- $input.keyup(function () {
1399
- $slider.slider('value', $input.val());
1400
- });
1401
-
1402
- });
1403
- };
1404
-
1405
  //
1406
  // Field: sortable
1407
  //
1408
  $.fn.spftestimonial_field_sortable = function () {
1409
  return this.each(function () {
1410
 
1411
- var $sortable = $(this).find('.spftestimonial--sortable');
1412
 
1413
  $sortable.sortable({
1414
  axis: 'y',
@@ -1416,12 +703,12 @@
1416
  cursor: 'move',
1417
  placeholder: 'widget-placeholder',
1418
  update: function (event, ui) {
1419
- $sortable.spftestimonial_customizer_refresh();
1420
  }
1421
  });
1422
 
1423
- $sortable.find('.spftestimonial--sortable-content').spftestimonial_reload_script();
1424
- $('.form_fields').find('.spftestimonial--sortable').sortable("disable");
1425
 
1426
  });
1427
  };
@@ -1450,7 +737,7 @@
1450
  $el.attr('name', $el.attr('name').replace('enabled', 'disabled'));
1451
  }
1452
 
1453
- $this.spftestimonial_customizer_refresh();
1454
 
1455
  }
1456
  });
@@ -1461,7 +748,7 @@
1461
  connectWith: $enabled,
1462
  placeholder: 'ui-sortable-placeholder',
1463
  update: function (event, ui) {
1464
- $this.spftestimonial_customizer_refresh();
1465
  }
1466
  });
1467
 
@@ -1478,20 +765,20 @@
1478
 
1479
  var $this = $(this),
1480
  $input = $this.find('input'),
1481
- $inited = $this.find('.ui-spinner-button'),
1482
- $unit = $input.data('unit');
1483
 
1484
  if ($inited.length) {
1485
  $inited.remove();
1486
  }
1487
 
1488
  $input.spinner({
1489
- max: $input.data('max') || 100,
1490
- min: $input.data('min') || 0,
1491
- step: $input.data('step') || 1,
1492
  create: function (event, ui) {
1493
- if ($unit.length) {
1494
- $this.find('.ui-spinner-up').after('<span class="ui-button-text-only spftestimonial--unit">' + $unit + '</span>');
1495
  }
1496
  },
1497
  spin: function (event, ui) {
@@ -1513,45 +800,16 @@
1513
  $switcher.on('click', function () {
1514
 
1515
  var value = 0;
1516
- var $input = $switcher.find('input');
1517
-
1518
- if ($switcher.hasClass('spftestimonial--active')) {
1519
- $switcher.removeClass('spftestimonial--active');
1520
- } else {
1521
- value = 1;
1522
- $switcher.addClass('spftestimonial--active');
1523
- }
1524
-
1525
- $input.val(value).trigger('change');
1526
-
1527
- });
1528
-
1529
- });
1530
- };
1531
-
1532
- //
1533
- // Field: tabbed
1534
- //
1535
- $.fn.spftestimonial_field_tabbed = function () {
1536
- return this.each(function () {
1537
-
1538
- var $this = $(this),
1539
- $links = $this.find('.spftestimonial-tabbed-nav a'),
1540
- $sections = $this.find('.spftestimonial-tabbed-section');
1541
-
1542
- $sections.eq(0).spftestimonial_reload_script();
1543
-
1544
- $links.on('click', function (e) {
1545
-
1546
- e.preventDefault();
1547
 
1548
- var $link = $(this),
1549
- index = $link.index(),
1550
- $section = $sections.eq(index);
 
 
 
1551
 
1552
- $link.addClass('spftestimonial-tabbed-active').siblings().removeClass('spftestimonial-tabbed-active');
1553
- $section.spftestimonial_reload_script();
1554
- $section.removeClass('hidden').siblings().addClass('hidden');
1555
 
1556
  });
1557
 
@@ -1656,6 +914,7 @@
1656
  var $type = $this.find('.spftestimonial--type');
1657
  var $styles = $this.find('.spftestimonial--block-font-style');
1658
  var unit = $typography.data('unit');
 
1659
  var exclude_fonts = $typography.data('exclude') ? $typography.data('exclude').split(',') : [];
1660
 
1661
  //
@@ -1933,7 +1192,7 @@
1933
  if (font_style) { properties.fontStyle = font_style; }
1934
  if (font_variant) { properties.fontVariant = font_variant; }
1935
  if (font_size) { properties.fontSize = font_size + unit; }
1936
- if (line_height) { properties.lineHeight = line_height + unit; }
1937
  if (letter_spacing) { properties.letterSpacing = letter_spacing + unit; }
1938
  if (word_spacing) { properties.wordSpacing = word_spacing + unit; }
1939
  if (text_align) { properties.textAlign = text_align; }
@@ -1978,173 +1237,6 @@
1978
  });
1979
  };
1980
 
1981
- //
1982
- // Field: upload
1983
- //
1984
- $.fn.spftestimonial_field_upload = function () {
1985
- return this.each(function () {
1986
-
1987
- var $this = $(this),
1988
- $input = $this.find('input'),
1989
- $upload_button = $this.find('.spftestimonial--button'),
1990
- $remove_button = $this.find('.spftestimonial--remove'),
1991
- $library = $upload_button.data('library') && $upload_button.data('library').split(',') || '',
1992
- wp_media_frame;
1993
-
1994
- $input.on('change', function (e) {
1995
- if ($input.val()) {
1996
- $remove_button.removeClass('hidden');
1997
- } else {
1998
- $remove_button.addClass('hidden');
1999
- }
2000
- });
2001
-
2002
- $upload_button.on('click', function (e) {
2003
-
2004
- e.preventDefault();
2005
-
2006
- if (typeof window.wp === 'undefined' || !window.wp.media || !window.wp.media.gallery) {
2007
- return;
2008
- }
2009
-
2010
- if (wp_media_frame) {
2011
- wp_media_frame.open();
2012
- return;
2013
- }
2014
-
2015
- wp_media_frame = window.wp.media({
2016
- library: {
2017
- type: $library
2018
- },
2019
- });
2020
-
2021
- wp_media_frame.on('select', function () {
2022
-
2023
- var attributes = wp_media_frame.state().get('selection').first().attributes;
2024
-
2025
- if ($library.length && $library.indexOf(attributes.subtype) === -1 && $library.indexOf(attributes.type) === -1) {
2026
- return;
2027
- }
2028
-
2029
- $input.val(attributes.url).trigger('change');
2030
-
2031
- });
2032
-
2033
- wp_media_frame.open();
2034
-
2035
- });
2036
-
2037
- $remove_button.on('click', function (e) {
2038
- e.preventDefault();
2039
- $input.val('').trigger('change');
2040
- });
2041
-
2042
- });
2043
-
2044
- };
2045
-
2046
- //
2047
- // Field: wp_editor
2048
- //
2049
- $.fn.spftestimonial_field_wp_editor = function () {
2050
- return this.each(function () {
2051
-
2052
- if (typeof window.wp.editor === 'undefined' || typeof window.tinyMCEPreInit === 'undefined' || typeof window.tinyMCEPreInit.mceInit.spftestimonial_wp_editor === 'undefined') {
2053
- return;
2054
- }
2055
-
2056
- var $this = $(this),
2057
- $editor = $this.find('.spftestimonial-wp-editor'),
2058
- $textarea = $this.find('textarea');
2059
-
2060
- // If there is wp-editor remove it for avoid dupliated wp-editor conflicts.
2061
- var $has_wp_editor = $this.find('.wp-editor-wrap').length || $this.find('.mce-container').length;
2062
-
2063
- if ($has_wp_editor) {
2064
- $editor.empty();
2065
- $editor.append($textarea);
2066
- $textarea.css('display', '');
2067
- }
2068
-
2069
- // Generate a unique id
2070
- var uid = SPFTESTIMONIAL.helper.uid('spftestimonial-editor-');
2071
-
2072
- $textarea.attr('id', uid);
2073
-
2074
- // Get default editor settings
2075
- var default_editor_settings = {
2076
- tinymce: window.tinyMCEPreInit.mceInit.spftestimonial_wp_editor,
2077
- quicktags: window.tinyMCEPreInit.qtInit.spftestimonial_wp_editor
2078
- };
2079
-
2080
- // Get default editor settings
2081
- var field_editor_settings = $editor.data('editor-settings');
2082
-
2083
- // Add on change event handle
2084
- var editor_on_change = function (editor) {
2085
- editor.on('change', SPFTESTIMONIAL.helper.debounce(function () {
2086
- editor.save();
2087
- $textarea.trigger('change');
2088
- }, 250));
2089
- };
2090
-
2091
- // Callback for old wp editor
2092
- var wpEditor = wp.oldEditor ? wp.oldEditor : wp.editor;
2093
-
2094
- if (wpEditor && wpEditor.hasOwnProperty('autop')) {
2095
- wp.editor.autop = wpEditor.autop;
2096
- wp.editor.removep = wpEditor.removep;
2097
- wp.editor.initialize = wpEditor.initialize;
2098
- }
2099
-
2100
- // Extend editor selector and on change event handler
2101
- default_editor_settings.tinymce = $.extend({}, default_editor_settings.tinymce, { selector: '#' + uid, setup: editor_on_change });
2102
-
2103
- // Override editor tinymce settings
2104
- if (field_editor_settings.tinymce === false) {
2105
- default_editor_settings.tinymce = false;
2106
- $editor.addClass('spftestimonial-no-tinymce');
2107
- }
2108
-
2109
- // Override editor quicktags settings
2110
- if (field_editor_settings.quicktags === false) {
2111
- default_editor_settings.quicktags = false;
2112
- $editor.addClass('spftestimonial-no-quicktags');
2113
- }
2114
-
2115
- // Wait until :visible
2116
- var interval = setInterval(function () {
2117
- if ($this.is(':visible')) {
2118
- window.wp.editor.initialize(uid, default_editor_settings);
2119
- clearInterval(interval);
2120
- }
2121
- });
2122
-
2123
- // Add Media buttons
2124
- if (field_editor_settings.media_buttons && window.spftestimonial_media_buttons) {
2125
-
2126
- var $editor_buttons = $editor.find('.wp-media-buttons');
2127
-
2128
- if ($editor_buttons.length) {
2129
-
2130
- $editor_buttons.find('.spftestimonial-shortcode-button').data('editor-id', uid);
2131
-
2132
- } else {
2133
-
2134
- var $media_buttons = $(window.spftestimonial_media_buttons);
2135
-
2136
- $media_buttons.find('.spftestimonial-shortcode-button').data('editor-id', uid);
2137
-
2138
- $editor.prepend($media_buttons);
2139
-
2140
- }
2141
-
2142
- }
2143
-
2144
- });
2145
-
2146
- };
2147
-
2148
  //
2149
  // Confirm
2150
  //
@@ -2154,11 +1246,12 @@
2154
 
2155
  var confirm_text = $(this).data('confirm') || window.spftestimonial_vars.i18n.confirm;
2156
  var confirm_answer = confirm(confirm_text);
2157
- SPFTESTIMONIAL.vars.is_confirm = true;
2158
 
2159
- if (!confirm_answer) {
 
 
 
2160
  e.preventDefault();
2161
- SPFTESTIMONIAL.vars.is_confirm = false;
2162
  return false;
2163
  }
2164
 
@@ -2226,10 +1319,10 @@
2226
  $.each(response.errors, function (key, error_message) {
2227
 
2228
  var $field = $('[data-depend-id="' + key + '"]'),
2229
- $link = $('#spftestimonial-tab-link-' + ($field.closest('.spftestimonial-section').index() + 1)),
2230
- $tab = $link.closest('.spftestimonial-tab-depth-0');
2231
 
2232
- $field.closest('.spftestimonial-fieldset').append('<p class="spftestimonial-text-error spftestimonial-error">' + error_message + '</p>');
2233
 
2234
  if (!$link.find('.spftestimonial-error').length) {
2235
  $link.append(error_icon);
@@ -2238,15 +1331,13 @@
2238
  if (!$tab.find('.spftestimonial-arrow .spftestimonial-error').length) {
2239
  $tab.find('.spftestimonial-arrow').append(error_icon);
2240
  }
2241
-
2242
- console.log(error_message);
2243
-
2244
  });
2245
 
2246
  }
2247
 
2248
  $panel.removeClass('spftestimonial-saving');
2249
- $buttons.prop('disabled', false).attr('value', $value);
2250
  flooding = false;
2251
 
2252
  SPFTESTIMONIAL.vars.form_modified = false;
@@ -2266,6 +1357,10 @@
2266
  alert(response.error);
2267
  });
2268
 
 
 
 
 
2269
  }
2270
 
2271
  }
@@ -2330,7 +1425,7 @@
2330
  //
2331
  if (typeof Color === 'function') {
2332
 
2333
- Color.fn.toString = function () {
2334
 
2335
  if (this._alpha < 1) {
2336
  return this.toCSS('rgba', this._alpha).replace(/\s+/g, '');
@@ -2457,6 +1552,11 @@
2457
  $transparent_text.text(default_text);
2458
  $transparent_slider.slider('option', 'value', default_color.transparent);
2459
 
 
 
 
 
 
2460
  });
2461
 
2462
  }
@@ -2519,7 +1619,7 @@
2519
  // Chosen keep options order
2520
  if (is_multiple) {
2521
 
2522
- var $hidden_select = $this.parent().find('.spftestimonial-hidden-select');
2523
  var $hidden_value = $hidden_select.val() || [];
2524
 
2525
  $this.on('change', function (obj, result) {
@@ -2531,7 +1631,7 @@
2531
  }
2532
 
2533
  // Force customize refresh
2534
- if ($hidden_select.children().length === 0 && window.wp.customize !== undefined) {
2535
  window.wp.customize.control($hidden_select.data('customize-setting-link')).setting.set('');
2536
  }
2537
 
@@ -2569,7 +1669,7 @@
2569
 
2570
  var select_options = '';
2571
  var chosen_object = $this.data('chosen');
2572
- var $prev_select = $this.parent().find('.spftestimonial-hidden-select');
2573
 
2574
  $chosen_choices.find('.search-choice-close').each(function () {
2575
  var option_array_index = $(this).data('option-array-index');
@@ -2681,95 +1781,6 @@
2681
  });
2682
  };
2683
 
2684
- //
2685
- // Customize Refresh
2686
- //
2687
- $.fn.spftestimonial_customizer_refresh = function () {
2688
- return this.each(function () {
2689
-
2690
- var $this = $(this),
2691
- $complex = $this.closest('.spftestimonial-customize-complex');
2692
-
2693
- if ($complex.length) {
2694
-
2695
- var $input = $complex.find(':input'),
2696
- $unique = $complex.data('unique-id'),
2697
- $option = $complex.data('option-id'),
2698
- obj = $input.serializeObjectSPFTESTIMONIAL(),
2699
- data = (!$.isEmptyObject(obj)) ? obj[$unique][$option] : '',
2700
- control = window.wp.customize.control($unique + '[' + $option + ']');
2701
-
2702
- // clear the value to force refresh.
2703
- control.setting._value = null;
2704
-
2705
- control.setting.set(data);
2706
-
2707
- } else {
2708
-
2709
- $this.find(':input').first().trigger('change');
2710
-
2711
- }
2712
-
2713
- $(document).trigger('spftestimonial-customizer-refresh', $this);
2714
-
2715
- });
2716
- };
2717
-
2718
- //
2719
- // Customize Listen Form Elements
2720
- //
2721
- $.fn.spftestimonial_customizer_listen = function (options) {
2722
-
2723
- var settings = $.extend({
2724
- closest: false,
2725
- }, options);
2726
-
2727
- return this.each(function () {
2728
-
2729
- if (window.wp.customize === undefined) { return; }
2730
-
2731
- var $this = (settings.closest) ? $(this).closest('.spftestimonial-customize-complex') : $(this),
2732
- $input = $this.find(':input'),
2733
- unique_id = $this.data('unique-id'),
2734
- option_id = $this.data('option-id');
2735
-
2736
- if (unique_id === undefined) { return; }
2737
-
2738
- $input.on('change keyup', SPFTESTIMONIAL.helper.debounce(function () {
2739
-
2740
- var obj = $this.find(':input').serializeObjectSPFTESTIMONIAL();
2741
- var val = (!$.isEmptyObject(obj) && obj[unique_id] && obj[unique_id][option_id]) ? obj[unique_id][option_id] : '';
2742
-
2743
- window.wp.customize.control(unique_id + '[' + option_id + ']').setting.set(val);
2744
-
2745
- }, 250));
2746
-
2747
- });
2748
- };
2749
-
2750
- //
2751
- // Customizer Listener for Reload JS
2752
- //
2753
- $(document).on('expanded', '.control-section', function () {
2754
-
2755
- var $this = $(this);
2756
-
2757
- if ($this.hasClass('open') && !$this.data('inited')) {
2758
-
2759
- var $fields = $this.find('.spftestimonial-customize-field');
2760
- var $complex = $this.find('.spftestimonial-customize-complex');
2761
-
2762
- if ($fields.length) {
2763
- $this.spftestimonial_dependency();
2764
- $fields.spftestimonial_reload_script({ dependency: false });
2765
- $complex.spftestimonial_customizer_listen();
2766
- }
2767
-
2768
- $this.data('inited', true);
2769
-
2770
- }
2771
-
2772
- });
2773
 
2774
  //
2775
  // Window on resize
@@ -2785,42 +1796,6 @@
2785
 
2786
  }, 200)).trigger('spftestimonial.resize');
2787
 
2788
- //
2789
- // Widgets Framework
2790
- //
2791
- $.fn.spftestimonial_widgets = function () {
2792
- if (this.length) {
2793
-
2794
- $(document).on('widget-added widget-updated', function (event, $widget) {
2795
- $widget.find('.spftestimonial-fields').spftestimonial_reload_script();
2796
- });
2797
-
2798
- $('.widgets-sortables, .control-section-sidebar').on('sortstop', function (event, ui) {
2799
- ui.item.find('.spftestimonial-fields').spftestimonial_reload_script_retry();
2800
- });
2801
-
2802
- $(document).on('click', '.widget-top', function (event) {
2803
- $(this).parent().find('.spftestimonial-fields').spftestimonial_reload_script();
2804
- });
2805
-
2806
- }
2807
- };
2808
-
2809
- //
2810
- // Retry Plugins
2811
- //
2812
- $.fn.spftestimonial_reload_script_retry = function () {
2813
- return this.each(function () {
2814
-
2815
- var $this = $(this);
2816
-
2817
- if ($this.data('inited')) {
2818
- $this.children('.spftestimonial-field-wp_editor').spftestimonial_field_wp_editor();
2819
- }
2820
-
2821
- });
2822
- };
2823
-
2824
  //
2825
  // Reload Plugins
2826
  //
@@ -2839,25 +1814,14 @@
2839
 
2840
  // Field plugins
2841
  $this.children('.spftestimonial-field-accordion:not(.tfree_pro_only)').spftestimonial_field_accordion();
2842
- $this.children('.spftestimonial-field-backup').spftestimonial_field_backup();
2843
- $this.children('.spftestimonial-field-background').spftestimonial_field_background();
2844
  $this.children('.spftestimonial-field-code_editor').spftestimonial_field_code_editor();
2845
- $this.children('.spftestimonial-field-date').spftestimonial_field_date();
2846
  $this.children('.spftestimonial-field-fieldset').spftestimonial_field_fieldset();
2847
- $this.children('.spftestimonial-field-gallery').spftestimonial_field_gallery();
2848
- $this.children('.spftestimonial-field-group').spftestimonial_field_group();
2849
- $this.children('.spftestimonial-field-media').spftestimonial_field_media();
2850
- $this.children('.spftestimonial-field-map').spftestimonial_field_map();
2851
  $this.children('.spftestimonial-field-repeater').spftestimonial_field_repeater();
2852
- $this.children('.spftestimonial-field-slider').spftestimonial_field_slider();
2853
  $this.children('.spftestimonial-field-sortable').spftestimonial_field_sortable();
2854
  $this.children('.spftestimonial-field-sorter').spftestimonial_field_sorter();
2855
  $this.children('.spftestimonial-field-spinner').spftestimonial_field_spinner();
2856
  $this.children('.spftestimonial-field-switcher').spftestimonial_field_switcher();
2857
- $this.children('.spftestimonial-field-tabbed').spftestimonial_field_tabbed();
2858
  $this.children('.spftestimonial-field-typography').spftestimonial_field_typography();
2859
- $this.children('.spftestimonial-field-upload').spftestimonial_field_upload();
2860
- $this.children('.spftestimonial-field-wp_editor').spftestimonial_field_wp_editor();
2861
 
2862
  // Field colors
2863
  $this.children('.spftestimonial-field-border').find('.spftestimonial-color').spftestimonial_color();
@@ -2875,7 +1839,7 @@
2875
 
2876
  // Field Siblings
2877
  $this.children('.spftestimonial-field-button_set').find('.spftestimonial-siblings').spftestimonial_siblings();
2878
- $this.children('.spftestimonial-field-image_select').find('.spftestimonial-siblings').spftestimonial_siblings();
2879
  $this.children('.spftestimonial-field-palette').find('.spftestimonial-siblings').spftestimonial_siblings();
2880
 
2881
  // Help Tooptip
@@ -2904,20 +1868,73 @@
2904
  $('.spftestimonial-sticky-header').spftestimonial_sticky();
2905
  $('.spftestimonial-nav-options').spftestimonial_nav_options();
2906
  $('.spftestimonial-nav-metabox').spftestimonial_nav_metabox();
2907
- $('.spftestimonial-page-templates').spftestimonial_page_templates();
2908
- $('.spftestimonial-post-formats').spftestimonial_post_formats();
2909
  $('.spftestimonial-search').spftestimonial_search();
2910
  $('.spftestimonial-confirm').spftestimonial_confirm();
2911
  $('.spftestimonial-expand-all').spftestimonial_expand_all();
2912
  $('.spftestimonial-onload').spftestimonial_reload_script();
2913
- $('.widget').spftestimonial_widgets();
2914
 
2915
  });
2916
- $("select option:contains((Pro))").attr('disabled', true).css('opacity', '0.8');
2917
- $("label:contains((Pro))").css({ 'pointer-events': 'none' }).css('opacity', '0.8');
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2918
 
2919
  /* Copy to clipboard */
2920
- $('.tpro-sc-code').click(function (e) {
2921
  e.preventDefault();
2922
  spftestimonial_copyToClipboard($(this));
2923
  spftestimonial_SelectText($(this));
@@ -2935,7 +1952,7 @@
2935
  }, 0);
2936
  }, 2000);
2937
  });
2938
- $('.sp_tfree_input').click(function (e) {
2939
  e.preventDefault();
2940
  /* Get the text field */
2941
  var copyText = $(this);
@@ -2956,11 +1973,11 @@
2956
  }, 2000);
2957
  });
2958
  function spftestimonial_copyToClipboard(element) {
2959
- var $temp = $("<input class='hidden'>");
2960
  $("body").append($temp);
2961
  $temp.val($(element).text()).select();
2962
  document.execCommand("copy");
2963
- // $temp.remove();
2964
  }
2965
  function spftestimonial_SelectText(element) {
2966
  var r = document.createRange();
@@ -2970,17 +1987,24 @@
2970
  sel.removeAllRanges();
2971
  sel.addRange(r);
2972
  }
2973
-
2974
- // Real Testimonials export.
2975
  var $export_type = $('.spt_what_export').find('input:checked').val();
2976
  $('.spt_what_export').on('change', function () {
2977
  $export_type = $(this).find('input:checked').val();
2978
  });
2979
-
 
 
 
 
 
 
 
 
2980
  $('.spt_export .spftestimonial--button').click(function (event) {
2981
  event.preventDefault();
2982
  var $shortcode_ids = $('.spt_post_id select').val();
2983
- var $selected_testimonials = 'selected_spt_shortcodes' === $export_type ? $shortcode_ids : 'all_spt_shortcodes';
2984
  var $ex_nonce = $('#spftestimonial_options_noncesp_testimonial_pro_tools').val();
2985
  if ($export_type === 'all_testimonial') {
2986
  var data = {
@@ -2988,14 +2012,34 @@
2988
  lcp_ids: 'all_testimonial',
2989
  nonce: $ex_nonce,
2990
  }
2991
- } else if ('all_spt_shortcodes' === $export_type || 'selected_spt_shortcodes' === $export_type) {
 
 
 
 
 
 
 
 
 
 
 
 
2992
  var data = {
2993
  action: 'spt_export_shortcodes',
2994
- lcp_ids: $selected_testimonials,
 
 
 
 
 
 
 
 
2995
  nonce: $ex_nonce,
2996
  }
2997
  } else {
2998
- $('.spftestimonial-form-result.spftestimonial-form-success').text('No testimonials selected.').show();
2999
  setTimeout(function () {
3000
  $('.spftestimonial-form-result.spftestimonial-form-success').hide().text('');
3001
  }, 3000);
@@ -3003,31 +2047,37 @@
3003
  $.post(ajaxurl, data, function (resp) {
3004
  if (resp) {
3005
  // Convert JSON Array to string.
3006
- var json = JSON.stringify(resp);
 
 
 
 
 
3007
  // Convert JSON string to BLOB.
3008
  json = [json];
3009
  var blob = new Blob(json);
3010
  var link = document.createElement('a');
3011
- var spt_time = $.now();
3012
  link.href = window.URL.createObjectURL(blob);
3013
- link.download = "testtimonial-free-export-" + spt_time + ".json";
3014
  link.click();
3015
  $('.spftestimonial-form-result.spftestimonial-form-success').text('Exported successfully!').show();
3016
  setTimeout(function () {
3017
  $('.spftestimonial-form-result.spftestimonial-form-success').hide().text('');
3018
  $('.spt_post_id select').val('').trigger('chosen:updated');
 
3019
  }, 3000);
3020
  }
3021
  });
3022
  });
3023
- // Real Testimonials import.
3024
  $('.spt_import button.import').click(function (event) {
3025
  event.preventDefault();
3026
- var spt_testimonial = $('#import').prop('files')[0];
3027
  if ($('#import').val() != '') {
3028
  var $im_nonce = $('#spftestimonial_options_noncesp_testimonial_pro_tools').val();
3029
  var reader = new FileReader();
3030
- reader.readAsText(spt_testimonial);
3031
  reader.onload = function (event) {
3032
  var jsonObj = JSON.stringify(event.target.result);
3033
  $.ajax({
@@ -3045,6 +2095,8 @@
3045
  $('#import').val('');
3046
  if (resp.data === 'spt_testimonial') {
3047
  window.location.replace($('#spt_testimonial_link_redirect').attr('href'));
 
 
3048
  } else {
3049
  window.location.replace($('#spt_shortcode_link_redirect').attr('href'));
3050
  }
@@ -3059,46 +2111,11 @@
3059
  }, 3000);
3060
  }
3061
  });
3062
-
3063
- // Live Preview script.
3064
- var preview_box = $('#sp_tpro-preview-box');
3065
- var preview_display = $('#sp_tpro_live_preview').hide();
3066
- $(document).on('click', '#sp_tpro-show-preview:contains(Hide)', function (e) {
3067
- e.preventDefault();
3068
- var _this = $(this);
3069
- _this.html('<i class="fa fa-eye" aria-hidden="true"></i> Show Preview');
3070
- preview_box.html('');
3071
- preview_display.hide();
3072
- });
3073
-
3074
- $(document).on('click', '#sp_tpro-show-preview:not(:contains(Hide))', function (e) {
3075
  e.preventDefault();
3076
- var _data = $('form#post').serialize();
3077
- var _this = $(this);
3078
- var data = {
3079
- action: 'sp_tpro_preview_meta_box',
3080
- data: _data,
3081
- ajax_nonce: $('#spftestimonial_metabox_noncesp_tpro_live_preview').val()
3082
- };
3083
- $.ajax({
3084
- type: "POST",
3085
- url: ajaxurl,
3086
- data: data,
3087
- error: function (response) {
3088
- console.log(response)
3089
- },
3090
- success: function (response) {
3091
- preview_display.show();
3092
- preview_box.html(response);
3093
- _this.html('<i class="fa fa-eye-slash" aria-hidden="true"></i> Hide Preview');
3094
- $(document).on('keyup change', function (e) {
3095
- e.preventDefault();
3096
- _this.html('<i class="fa fa-refresh" aria-hidden="true"></i> Update Preview');
3097
- });
3098
- $("html, body").animate({ scrollTop: preview_display.offset().top - 50 }, "slow");
3099
- $('.tfree-preloader').animate({ opacity: 1 }, 600).hide();
3100
- }
3101
- })
3102
  });
3103
-
 
3104
  })(jQuery, window, document);
14
  $window: $(window),
15
  $document: $(document),
16
  $form_warning: null,
17
+ is_confirm: false,
18
  form_modified: false,
19
  code_themes: [],
20
  is_rtl: $('body').hasClass('rtl'),
35
  // Quote regular expression characters
36
  //
37
  preg_quote: function (str) {
38
+ return (str + '').replace(/(\[|\])/g, "\\$1");
39
  },
40
 
41
  //
44
  name_nested_replace: function ($selector, field_id) {
45
 
46
  var checks = [];
47
+ var regex = new RegExp(SPFTESTIMONIAL.helper.preg_quote(field_id + '[\\d+]'), 'g');
48
 
49
  $selector.find(':radio').each(function () {
50
  if (this.checked || this.orginal_checked) {
84
  }
85
  };
86
  },
 
87
  //
88
  // Get a cookie
89
  //
140
  (secure ? '; secure' : '');
141
 
142
  },
 
143
  //
144
  // Remove a cookie
145
  //
146
  remove_cookie: function (name, path, domain, secure) {
147
  SPFTESTIMONIAL.helper.set_cookie(name, '', -1000, path, domain, secure);
148
  },
 
149
  };
150
 
151
  //
198
  return this.each(function () {
199
 
200
  var $nav = $(this),
201
+ $window = $(window),
202
+ $wpwrap = $('#wpwrap'),
203
  $links = $nav.find('a'),
204
+ $last;
205
+
206
+ $window.on('hashchange spftestimonial.hashchange', function () {
207
+
208
+ var hash = window.location.hash.replace('#tab=', '');
209
+ var slug = hash ? hash : $links.first().attr('href').replace('#tab=', '');
210
+ var $link = $('[data-tab-id="' + slug + '"]');
211
+
212
+ if ($link.length) {
213
 
214
+ $link.closest('.spftestimonial-tab-item').addClass('spftestimonial-tab-expanded').siblings().removeClass('spftestimonial-tab-expanded');
215
 
216
+ if ($link.next().is('ul')) {
 
 
217
 
218
+ $link = $link.next().find('li').first().find('a');
219
+ slug = $link.data('tab-id');
220
 
221
+ }
222
+
223
+ $links.removeClass('spftestimonial-active');
224
+ $link.addClass('spftestimonial-active');
225
 
226
+ if ($last) {
227
+ $last.addClass('hidden');
228
  }
229
 
230
+ var $section = $('[data-section-id="' + slug + '"]');
231
+
232
+ $section.removeClass('hidden');
233
  $section.spftestimonial_reload_script();
234
 
235
+ $('.spftestimonial-section-id').val($section.index() + 1);
236
 
237
+ $last = $section;
238
+
239
+ if ($wpwrap.hasClass('wp-responsive-open')) {
240
+ $('html, body').animate({ scrollTop: ($section.offset().top - 50) }, 200);
241
+ $wpwrap.removeClass('wp-responsive-open');
242
+ }
243
 
244
  }
245
 
246
+ }).trigger('spftestimonial.hashchange');
247
 
248
  });
249
  };
256
 
257
  var $nav = $(this),
258
  $links = $nav.find('a'),
259
+ $sections = $nav.parent().find('.spftestimonial-section'),
260
  unique_id = $nav.data('unique'),
261
  post_id = $('#post_ID').val() || 'global',
262
+ $last;
 
 
 
263
 
264
+ $links.each(function (index) {
265
 
266
+ $(this).on('click', function (e) {
 
267
 
268
+ e.preventDefault();
 
 
269
 
270
+ var $link = $(this);
271
+ var section_id = $link.data('section');
272
+ $links.removeClass('spftestimonial-active');
273
+ $link.addClass('spftestimonial-active');
274
+ if ($last !== undefined) {
275
+ $last.addClass('hidden');
276
+ }
277
 
278
+ var $section = $sections.eq(index);
279
 
280
+ $section.removeClass('hidden');
281
+ $section.spftestimonial_reload_script();
282
+ SPFTESTIMONIAL.helper.set_cookie('spftestimonial-last-metabox-tab-' + post_id + '-' + unique_id, section_id);
283
 
284
+ $last = $section;
285
 
286
+ });
 
287
 
288
  });
289
 
290
  var get_cookie = SPFTESTIMONIAL.helper.get_cookie('spftestimonial-last-metabox-tab-' + post_id + '-' + unique_id);
 
291
  if (get_cookie) {
292
  $nav.find('a[data-section="' + get_cookie + '"]').trigger('click');
293
  } else {
297
  });
298
  };
299
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
300
 
 
 
 
 
 
 
 
 
 
 
301
 
302
  //
303
  // Search
313
  var value = $(this).val(),
314
  $wrapper = $('.spftestimonial-wrapper'),
315
  $section = $wrapper.find('.spftestimonial-section'),
316
+ $fields = $section.find('> .spftestimonial-field:not(.spftestimonial-depend-on)'),
317
  $titles = $fields.find('> .spftestimonial-title, .spftestimonial-search-tags');
318
 
319
  if (value.length > 3) {
320
 
321
+ $fields.addClass('spftestimonial-metabox-hide');
322
  $wrapper.addClass('spftestimonial-search-all');
323
 
324
  $titles.each(function () {
329
 
330
  var $field = $title.closest('.spftestimonial-field');
331
 
332
+ $field.removeClass('spftestimonial-metabox-hide');
333
  $field.parent().spftestimonial_reload_script();
334
 
335
  }
338
 
339
  } else {
340
 
341
+ $fields.removeClass('spftestimonial-metabox-hide');
342
  $wrapper.removeClass('spftestimonial-search-all');
343
 
344
  }
366
 
367
  var offsetTop = $this.offset().top,
368
  stickyTop = Math.max(offset, offsetTop - scrollTop),
369
+ winWidth = $window.innerWidth();
370
 
371
  if (stickyTop <= offset && winWidth > 782) {
372
  $inner.css({ width: $this.outerWidth() - padding });
410
  return this.each(function () {
411
 
412
  var $this = $(this),
413
+ $fields = $this.children('[data-controller]');
 
 
414
 
415
+ if ($fields.length) {
416
 
417
+ var normal_ruleset = $.spftestimonial_deps.createRuleset(),
418
+ global_ruleset = $.spftestimonial_deps.createRuleset(),
419
+ normal_depends = [],
420
+ global_depends = [];
 
421
 
422
+ $fields.each(function () {
 
 
423
 
424
+ var $field = $(this),
425
+ controllers = $field.data('controller').split('|'),
426
+ conditions = $field.data('condition').split('|'),
427
+ values = $field.data('value').toString().split('|'),
428
+ is_global = $field.data('depend-global') ? true : false,
429
+ ruleset = (is_global) ? global_ruleset : normal_ruleset;
430
 
431
+ $.each(controllers, function (index, depend_id) {
 
432
 
433
+ var value = values[index] || '',
434
+ condition = conditions[index] || conditions[0];
435
 
436
+ ruleset = ruleset.createRule('[data-depend-id="' + depend_id + '"]', condition, value);
437
 
438
+ ruleset.include($field);
439
 
440
+ if (is_global) {
441
+ global_depends.push(depend_id);
442
+ } else {
443
+ normal_depends.push(depend_id);
444
+ }
445
 
446
+ });
447
 
448
+ });
449
 
450
+ if (normal_depends.length) {
451
+ $.spftestimonial_deps.enable($this, normal_ruleset, normal_depends);
452
+ }
453
+
454
+ if (global_depends.length) {
455
+ $.spftestimonial_deps.enable(SPFTESTIMONIAL.vars.$body, global_ruleset, global_depends);
456
  }
457
 
458
  }
494
  $titles.trigger('click');
495
  }
496
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
497
  });
498
  };
499
 
553
  });
554
  };
555
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
556
  //
557
  // Field: fieldset
558
  //
562
  });
563
  };
564
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
565
 
566
  //
567
  // Field: repeater
577
  $max = $repeater.children('.spftestimonial-repeater-max'),
578
  $min = $repeater.children('.spftestimonial-repeater-min'),
579
  field_id = $wrapper.data('field-id'),
 
580
  max = parseInt($wrapper.data('max')),
581
  min = parseInt($wrapper.data('min'));
582
 
 
583
  $wrapper.children('.spftestimonial-repeater-item').children('.spftestimonial-repeater-content').spftestimonial_reload_script();
584
 
585
  $wrapper.sortable({
591
  update: function (event, ui) {
592
 
593
  SPFTESTIMONIAL.helper.name_nested_replace($wrapper.children('.spftestimonial-repeater-item'), field_id);
594
+ // $wrapper.spftestimonial_customizer_refresh();
595
+ // ui.item.spftestimonial_reload_script_retry();
596
 
597
  }
598
  });
610
  return;
611
  }
612
 
 
 
613
  var $cloned_item = $hidden.spftestimonial_clone(true);
614
 
615
  $cloned_item.removeClass('spftestimonial-repeater-hidden');
616
 
617
  $cloned_item.find(':input[name!="_pseudo"]').each(function () {
618
+ this.name = this.name.replace('___', '').replace(field_id + '[0]', field_id + '[' + count + ']');
 
 
 
 
619
  });
620
 
621
  $wrapper.append($cloned_item);
622
  $cloned_item.children('.spftestimonial-repeater-content').spftestimonial_reload_script();
623
+ // $wrapper.spftestimonial_customizer_refresh();
624
+ // $wrapper.spftestimonial_customizer_listen({ closest: true });
625
 
626
  });
627
 
642
  $parent = $this.parent().parent().parent(),
643
  $cloned_content = $parent.children('.spftestimonial-repeater-content').spftestimonial_clone(),
644
  $cloned_helper = $parent.children('.spftestimonial-repeater-helper').spftestimonial_clone(true),
645
+ $cloned_item = $('<div class="spftestimonial-repeater-item" />');
 
 
 
 
 
 
 
646
 
647
+ $cloned_item.append($cloned_content);
648
+ $cloned_item.append($cloned_helper);
649
 
650
+ $wrapper.children().eq($parent.index()).after($cloned_item);
651
 
652
+ $cloned_item.children('.spftestimonial-repeater-content').spftestimonial_reload_script();
653
 
654
  SPFTESTIMONIAL.helper.name_nested_replace($wrapper.children('.spftestimonial-repeater-item'), field_id);
655
 
656
+ // $wrapper.spftestimonial_customizer_refresh();
657
+ // $wrapper.spftestimonial_customizer_listen({ closest: true });
658
 
659
  };
660
 
679
 
680
  SPFTESTIMONIAL.helper.name_nested_replace($wrapper.children('.spftestimonial-repeater-item'), field_id);
681
 
682
+ // $wrapper.spftestimonial_customizer_refresh();
683
 
684
  };
685
 
689
  });
690
  };
691
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
692
  //
693
  // Field: sortable
694
  //
695
  $.fn.spftestimonial_field_sortable = function () {
696
  return this.each(function () {
697
 
698
+ var $sortable = $(this).find('.spftestimonial-sortable');
699
 
700
  $sortable.sortable({
701
  axis: 'y',
703
  cursor: 'move',
704
  placeholder: 'widget-placeholder',
705
  update: function (event, ui) {
706
+ // $sortable.spftestimonial_customizer_refresh();
707
  }
708
  });
709
 
710
+ $sortable.find('.spftestimonial-sortable-content').spftestimonial_reload_script();
711
+ $('.form_fields').find('.spftestimonial-sortable').sortable("disable");
712
 
713
  });
714
  };
737
  $el.attr('name', $el.attr('name').replace('enabled', 'disabled'));
738
  }
739
 
740
+ // $this.spftestimonial_customizer_refresh();
741
 
742
  }
743
  });
748
  connectWith: $enabled,
749
  placeholder: 'ui-sortable-placeholder',
750
  update: function (event, ui) {
751
+ // $this.spftestimonial_customizer_refresh();
752
  }
753
  });
754
 
765
 
766
  var $this = $(this),
767
  $input = $this.find('input'),
768
+ $inited = $this.find('.ui-button'),
769
+ data = $input.data();
770
 
771
  if ($inited.length) {
772
  $inited.remove();
773
  }
774
 
775
  $input.spinner({
776
+ min: data.min || 0,
777
+ max: data.max || 100,
778
+ step: data.step || 1,
779
  create: function (event, ui) {
780
+ if (data.unit) {
781
+ $input.after('<span class="ui-button spftestimonial--unit">' + data.unit + '</span>');
782
  }
783
  },
784
  spin: function (event, ui) {
800
  $switcher.on('click', function () {
801
 
802
  var value = 0;
803
+ var $input = $switcher.find('input');
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
804
 
805
+ if ($switcher.hasClass('spftestimonial--active')) {
806
+ $switcher.removeClass('spftestimonial--active');
807
+ } else {
808
+ value = 1;
809
+ $switcher.addClass('spftestimonial--active');
810
+ }
811
 
812
+ $input.val(value).trigger('change');
 
 
813
 
814
  });
815
 
914
  var $type = $this.find('.spftestimonial--type');
915
  var $styles = $this.find('.spftestimonial--block-font-style');
916
  var unit = $typography.data('unit');
917
+ var line_height_unit = $typography.data('line-height-unit');
918
  var exclude_fonts = $typography.data('exclude') ? $typography.data('exclude').split(',') : [];
919
 
920
  //
1192
  if (font_style) { properties.fontStyle = font_style; }
1193
  if (font_variant) { properties.fontVariant = font_variant; }
1194
  if (font_size) { properties.fontSize = font_size + unit; }
1195
+ if (line_height) { properties.lineHeight = line_height + line_height_unit; }
1196
  if (letter_spacing) { properties.letterSpacing = letter_spacing + unit; }
1197
  if (word_spacing) { properties.wordSpacing = word_spacing + unit; }
1198
  if (text_align) { properties.textAlign = text_align; }
1237
  });
1238
  };
1239
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1240
  //
1241
  // Confirm
1242
  //
1246
 
1247
  var confirm_text = $(this).data('confirm') || window.spftestimonial_vars.i18n.confirm;
1248
  var confirm_answer = confirm(confirm_text);
 
1249
 
1250
+ if (confirm_answer) {
1251
+ SPFTESTIMONIAL.vars.is_confirm = true;
1252
+ SPFTESTIMONIAL.vars.form_modified = false;
1253
+ } else {
1254
  e.preventDefault();
 
1255
  return false;
1256
  }
1257
 
1319
  $.each(response.errors, function (key, error_message) {
1320
 
1321
  var $field = $('[data-depend-id="' + key + '"]'),
1322
+ $link = $('a[href="#tab=' + $field.closest('.spftestimonial-section').data('section-id') + '"]'),
1323
+ $tab = $link.closest('.spftestimonial-tab-item');
1324
 
1325
+ $field.closest('.spftestimonial-fieldset').append('<p class="spftestimonial-error spftestimonial-error-text">' + error_message + '</p>');
1326
 
1327
  if (!$link.find('.spftestimonial-error').length) {
1328
  $link.append(error_icon);
1331
  if (!$tab.find('.spftestimonial-arrow .spftestimonial-error').length) {
1332
  $tab.find('.spftestimonial-arrow').append(error_icon);
1333
  }
1334
+ // $('.spftestimonial-options .spftestimonial-save.spftestimonial-save-ajax').attr('disabled', true);
 
 
1335
  });
1336
 
1337
  }
1338
 
1339
  $panel.removeClass('spftestimonial-saving');
1340
+ $buttons.prop('disabled', true).attr('value', 'Changes Saved');
1341
  flooding = false;
1342
 
1343
  SPFTESTIMONIAL.vars.form_modified = false;
1357
  alert(response.error);
1358
  });
1359
 
1360
+ } else {
1361
+
1362
+ SPFTESTIMONIAL.vars.form_modified = false;
1363
+
1364
  }
1365
 
1366
  }
1425
  //
1426
  if (typeof Color === 'function') {
1427
 
1428
+ Color.prototype.toString = function () {
1429
 
1430
  if (this._alpha < 1) {
1431
  return this.toCSS('rgba', this._alpha).replace(/\s+/g, '');
1552
  $transparent_text.text(default_text);
1553
  $transparent_slider.slider('option', 'value', default_color.transparent);
1554
 
1555
+ if (default_color.value === 'transparent') {
1556
+ $input.removeClass('iris-error');
1557
+ $container.addClass('spftestimonial--transparent-active');
1558
+ }
1559
+
1560
  });
1561
 
1562
  }
1619
  // Chosen keep options order
1620
  if (is_multiple) {
1621
 
1622
+ var $hidden_select = $this.parent().find('.spftestimonial-hide-select');
1623
  var $hidden_value = $hidden_select.val() || [];
1624
 
1625
  $this.on('change', function (obj, result) {
1631
  }
1632
 
1633
  // Force customize refresh
1634
+ if (window.wp.customize !== undefined && $hidden_select.children().length === 0 && $hidden_select.data('customize-setting-link')) {
1635
  window.wp.customize.control($hidden_select.data('customize-setting-link')).setting.set('');
1636
  }
1637
 
1669
 
1670
  var select_options = '';
1671
  var chosen_object = $this.data('chosen');
1672
+ var $prev_select = $this.parent().find('.spftestimonial-hide-select');
1673
 
1674
  $chosen_choices.find('.search-choice-close').each(function () {
1675
  var option_array_index = $(this).data('option-array-index');
1781
  });
1782
  };
1783
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1784
 
1785
  //
1786
  // Window on resize
1796
 
1797
  }, 200)).trigger('spftestimonial.resize');
1798
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1799
  //
1800
  // Reload Plugins
1801
  //
1814
 
1815
  // Field plugins
1816
  $this.children('.spftestimonial-field-accordion:not(.tfree_pro_only)').spftestimonial_field_accordion();
 
 
1817
  $this.children('.spftestimonial-field-code_editor').spftestimonial_field_code_editor();
 
1818
  $this.children('.spftestimonial-field-fieldset').spftestimonial_field_fieldset();
 
 
 
 
1819
  $this.children('.spftestimonial-field-repeater').spftestimonial_field_repeater();
 
1820
  $this.children('.spftestimonial-field-sortable').spftestimonial_field_sortable();
1821
  $this.children('.spftestimonial-field-sorter').spftestimonial_field_sorter();
1822
  $this.children('.spftestimonial-field-spinner').spftestimonial_field_spinner();
1823
  $this.children('.spftestimonial-field-switcher').spftestimonial_field_switcher();
 
1824
  $this.children('.spftestimonial-field-typography').spftestimonial_field_typography();
 
 
1825
 
1826
  // Field colors
1827
  $this.children('.spftestimonial-field-border').find('.spftestimonial-color').spftestimonial_color();
1839
 
1840
  // Field Siblings
1841
  $this.children('.spftestimonial-field-button_set').find('.spftestimonial-siblings').spftestimonial_siblings();
1842
+ $this.children('.spftestimonial-field-image_select, .spftestimonial-field-icon_select').find('.spftestimonial-siblings').spftestimonial_siblings();
1843
  $this.children('.spftestimonial-field-palette').find('.spftestimonial-siblings').spftestimonial_siblings();
1844
 
1845
  // Help Tooptip
1868
  $('.spftestimonial-sticky-header').spftestimonial_sticky();
1869
  $('.spftestimonial-nav-options').spftestimonial_nav_options();
1870
  $('.spftestimonial-nav-metabox').spftestimonial_nav_metabox();
 
 
1871
  $('.spftestimonial-search').spftestimonial_search();
1872
  $('.spftestimonial-confirm').spftestimonial_confirm();
1873
  $('.spftestimonial-expand-all').spftestimonial_expand_all();
1874
  $('.spftestimonial-onload').spftestimonial_reload_script();
 
1875
 
1876
  });
1877
+
1878
+ // Live Preview script for Testimonial-free.
1879
+ // var is_manage_preview = $('body').hasClass('post-type-spt_shortcodes');
1880
+ // var is_form_preview = $('body').hasClass('post-type-spt_testimonial_form');
1881
+
1882
+ // if (is_manage_preview) {
1883
+
1884
+ // }
1885
+ // if (is_form_preview) {
1886
+ // var preview_display = $('#sp_tpro_form_live_preview').hide();
1887
+ // var action = 'sp_testimonial_form_preview';
1888
+ // var nonce = $('#spftestimonial_metabox_noncesp_tpro_form_live_preview').val();
1889
+
1890
+ // }
1891
+ $(document).on('click', '#sp_tpro-show-preview:contains(Hide)', function (e) {
1892
+ e.preventDefault();
1893
+ var _this = $(this);
1894
+ _this.html('<i class="fa fa-eye" aria-hidden="true"></i> Show Preview');
1895
+ preview_box.html('');
1896
+ preview_display.hide();
1897
+ });
1898
+ var preview_box = $('#sp_tpro-preview-box');
1899
+ var preview_display = $('#sp_tpro_live_preview').hide();
1900
+ var action = 'sp_tpro_preview_meta_box';
1901
+ var nonce = $('#spftestimonial_metabox_noncesp_tpro_shortcode_options').val();
1902
+ var previewJS = window.spftestimonial_vars.previewJS;
1903
+ $(document).on('click', '#sp_tpro-show-preview:not(:contains(Hide))', function (e) {
1904
+ e.preventDefault();
1905
+ var _data = $('form#post').serialize();
1906
+ var _this = $(this);
1907
+ var data = {
1908
+ action: action,
1909
+ data: _data,
1910
+ ajax_nonce: nonce
1911
+ };
1912
+ $.ajax({
1913
+ type: "POST",
1914
+ url: ajaxurl,
1915
+ data: data,
1916
+ error: function (response) {
1917
+ console.log(response)
1918
+ },
1919
+ success: function (response) {
1920
+
1921
+ preview_display.show();
1922
+ preview_box.html(response);
1923
+ $.getScript(previewJS, function () {
1924
+ _this.html('<i class="fa fa-eye-slash" aria-hidden="true"></i> Hide Preview');
1925
+ $(document).on('keyup change', function (e) {
1926
+ e.preventDefault();
1927
+ _this.html('<i class="fa fa-refresh" aria-hidden="true"></i> Update Preview');
1928
+ });
1929
+ $("html, body").animate({ scrollTop: preview_display.offset().top - 50 }, "slow");
1930
+ });
1931
+ $('.tfree-preloader').animate({ opacity: 1 }, 600).hide();
1932
+ }
1933
+ })
1934
+ });
1935
 
1936
  /* Copy to clipboard */
1937
+ $('.trpo-copy-btn,.tpro-sc-code,.spftestimonial-shortcode-selectable').click(function (e) {
1938
  e.preventDefault();
1939
  spftestimonial_copyToClipboard($(this));
1940
  spftestimonial_SelectText($(this));
1952
  }, 0);
1953
  }, 2000);
1954
  });
1955
+ $('.stpro_input').click(function (e) {
1956
  e.preventDefault();
1957
  /* Get the text field */
1958
  var copyText = $(this);
1973
  }, 2000);
1974
  });
1975
  function spftestimonial_copyToClipboard(element) {
1976
+ var $temp = $("<input>");
1977
  $("body").append($temp);
1978
  $temp.val($(element).text()).select();
1979
  document.execCommand("copy");
1980
+ $temp.remove();
1981
  }
1982
  function spftestimonial_SelectText(element) {
1983
  var r = document.createRange();
1987
  sel.removeAllRanges();
1988
  sel.addRange(r);
1989
  }
1990
+ // Testimonial pro export.
 
1991
  var $export_type = $('.spt_what_export').find('input:checked').val();
1992
  $('.spt_what_export').on('change', function () {
1993
  $export_type = $(this).find('input:checked').val();
1994
  });
1995
+ // Check is valid JSON string
1996
+ function isValidJSONString(str) {
1997
+ try {
1998
+ JSON.parse(str);
1999
+ } catch (e) {
2000
+ return false;
2001
+ }
2002
+ return true;
2003
+ }
2004
  $('.spt_export .spftestimonial--button').click(function (event) {
2005
  event.preventDefault();
2006
  var $shortcode_ids = $('.spt_post_id select').val();
2007
+ var $forms_ids = $('.spt_post_forms_id select').val();
2008
  var $ex_nonce = $('#spftestimonial_options_noncesp_testimonial_pro_tools').val();
2009
  if ($export_type === 'all_testimonial') {
2010
  var data = {
2012
  lcp_ids: 'all_testimonial',
2013
  nonce: $ex_nonce,
2014
  }
2015
+ } else if ('all_spt_shortcodes' === $export_type) {
2016
+ var data = {
2017
+ action: 'spt_export_shortcodes',
2018
+ lcp_ids: 'all_spt_shortcodes',
2019
+ nonce: $ex_nonce,
2020
+ }
2021
+ } else if ('all_spt_form' === $export_type) {
2022
+ var data = {
2023
+ action: 'spt_export_shortcodes',
2024
+ lcp_ids: 'all_spt_form',
2025
+ nonce: $ex_nonce,
2026
+ }
2027
+ } else if ('selected_spt_shortcodes' === $export_type) {
2028
  var data = {
2029
  action: 'spt_export_shortcodes',
2030
+ lcp_ids: $shortcode_ids,
2031
+ text_ids: 'select_shortcodes',
2032
+ nonce: $ex_nonce,
2033
+ }
2034
+ } else if ('selected_spt_form' === $export_type) {
2035
+ var data = {
2036
+ action: 'spt_export_shortcodes',
2037
+ lcp_ids: $forms_ids,
2038
+ text_ids: 'select_forms',
2039
  nonce: $ex_nonce,
2040
  }
2041
  } else {
2042
+ $('.spftestimonial-form-result.spftestimonial-form-success').text('No group selected.').show();
2043
  setTimeout(function () {
2044
  $('.spftestimonial-form-result.spftestimonial-form-success').hide().text('');
2045
  }, 3000);
2047
  $.post(ajaxurl, data, function (resp) {
2048
  if (resp) {
2049
  // Convert JSON Array to string.
2050
+ if (isValidJSONString(resp)) {
2051
+ var json = JSON.stringify(JSON.parse(resp));
2052
+ } else {
2053
+ var json = JSON.stringify(resp);
2054
+ }
2055
+ // var json = JSON.stringify(resp);
2056
  // Convert JSON string to BLOB.
2057
  json = [json];
2058
  var blob = new Blob(json);
2059
  var link = document.createElement('a');
2060
+ var lcp_time = $.now();
2061
  link.href = window.URL.createObjectURL(blob);
2062
+ link.download = "testtimonial-pro-export-" + lcp_time + ".json";
2063
  link.click();
2064
  $('.spftestimonial-form-result.spftestimonial-form-success').text('Exported successfully!').show();
2065
  setTimeout(function () {
2066
  $('.spftestimonial-form-result.spftestimonial-form-success').hide().text('');
2067
  $('.spt_post_id select').val('').trigger('chosen:updated');
2068
+ $('.spt_post_forms_id select').val('').trigger('chosen:updated');
2069
  }, 3000);
2070
  }
2071
  });
2072
  });
2073
+ // Testimonial free import.
2074
  $('.spt_import button.import').click(function (event) {
2075
  event.preventDefault();
2076
+ var lcp_shortcodes = $('#import').prop('files')[0];
2077
  if ($('#import').val() != '') {
2078
  var $im_nonce = $('#spftestimonial_options_noncesp_testimonial_pro_tools').val();
2079
  var reader = new FileReader();
2080
+ reader.readAsText(lcp_shortcodes);
2081
  reader.onload = function (event) {
2082
  var jsonObj = JSON.stringify(event.target.result);
2083
  $.ajax({
2095
  $('#import').val('');
2096
  if (resp.data === 'spt_testimonial') {
2097
  window.location.replace($('#spt_testimonial_link_redirect').attr('href'));
2098
+ } else if (resp.data === 'spt_testimonial_form') {
2099
+ window.location.replace($('#spt_forms_link_redirect').attr('href'));
2100
  } else {
2101
  window.location.replace($('#spt_shortcode_link_redirect').attr('href'));
2102
  }
2111
  }, 3000);
2112
  }
2113
  });
2114
+ // Disabled save button.
2115
+ $(document).on('keyup change', '.spftestimonial-options #spftestimonial-form', function (e) {
 
 
 
 
 
 
 
 
 
 
 
2116
  e.preventDefault();
2117
+ $(this).find('.spftestimonial-save.spftestimonial-save-ajax').attr('value', 'Save Settings').attr('disabled', false);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2118
  });
2119
+ $("select option:contains((Pro))").attr('disabled', true).css('opacity', '0.8');
2120
+ $("label:contains((Pro))").css({ 'pointer-events': 'none' }).css('opacity', '0.8');
2121
  })(jQuery, window, document);
admin/views/framework/assets/js/spftestimonial.min.js CHANGED
@@ -1 +1 @@
1
- !function($,window,document,undefined){"use strict";var SPFTESTIMONIAL=SPFTESTIMONIAL||{};function spftestimonial_copyToClipboard(element){var $temp=$("<input class='hidden'>");$("body").append($temp),$temp.val($(element).text()).select(),document.execCommand("copy")}function spftestimonial_SelectText(element){var r=document.createRange(),w=element.get(0);r.selectNodeContents(w);var sel=window.getSelection();sel.removeAllRanges(),sel.addRange(r)}SPFTESTIMONIAL.funcs={},SPFTESTIMONIAL.vars={onloaded:!1,$body:$("body"),$window:$(window),$document:$(document),$form_warning:null,form_modified:!1,code_themes:[],is_rtl:$("body").hasClass("rtl")},SPFTESTIMONIAL.helper={uid:function(prefix){return(prefix||"")+Math.random().toString(36).substr(2,9)},preg_quote:function(str){return(str+"").replace(/(\[|\-|\])/g,"\\$1")},name_nested_replace:function($selector,field_id){var checks=[],regex=new RegExp("("+SPFTESTIMONIAL.helper.preg_quote(field_id)+")\\[(\\d+)\\]","g");$selector.find(":radio").each((function(){(this.checked||this.orginal_checked)&&(this.orginal_checked=!0)})),$selector.each((function(index){$(this).find(":input").each((function(){this.name=this.name.replace(regex,field_id+"["+index+"]"),this.orginal_checked&&(this.checked=!0)}))}))},debounce:function(callback,threshold,immediate){var timeout;return function(){var context=this,args=arguments,later=function(){timeout=null,immediate||callback.apply(context,args)},callNow=immediate&&!timeout;clearTimeout(timeout),timeout=setTimeout(later,threshold),callNow&&callback.apply(context,args)}},get_cookie:function(name){var e,b,cookie=document.cookie,p=name+"=";if(cookie){if(-1===(b=cookie.indexOf("; "+p))){if(0!==(b=cookie.indexOf(p)))return null}else b+=2;return-1===(e=cookie.indexOf(";",b))&&(e=cookie.length),decodeURIComponent(cookie.substring(b+p.length,e))}},set_cookie:function(name,value,expires,path,domain,secure){var d=new Date;"object"==typeof expires&&expires.toGMTString?expires=expires.toGMTString():parseInt(expires,10)?(d.setTime(d.getTime()+1e3*parseInt(expires,10)),expires=d.toGMTString()):expires="",document.cookie=name+"="+encodeURIComponent(value)+(expires?"; expires="+expires:"")+(path?"; path="+path:"")+(domain?"; domain="+domain:"")+(secure?"; secure":"")},remove_cookie:function(name,path,domain,secure){SPFTESTIMONIAL.helper.set_cookie(name,"",-1e3,path,domain,secure)}},$.fn.spftestimonial_clone=function(){for(var base=$.fn.clone.apply(this,arguments),clone=this.find("select").add(this.filter("select")),cloned=base.find("select").add(base.filter("select")),i=0;i<clone.length;++i)for(var j=0;j<clone[i].options.length;++j)!0===clone[i].options[j].selected&&(cloned[i].options[j].selected=!0);return this.find(":radio").each((function(){this.orginal_checked=this.checked})),base},$.fn.spftestimonial_expand_all=function(){return this.each((function(){$(this).on("click",(function(e){e.preventDefault(),$(".spftestimonial-wrapper").toggleClass("spftestimonial-show-all"),$(".spftestimonial-section").spftestimonial_reload_script(),$(this).find(".fa").toggleClass("fa-indent").toggleClass("fa-outdent")}))}))},$.fn.spftestimonial_nav_options=function(){return this.each((function(){var $nav=$(this),$links=$nav.find("a"),$hidden=$nav.closest(".spftestimonial").find(".spftestimonial-section-id"),$last_section;$(window).on("hashchange",(function(){var hash=window.location.hash.match(new RegExp("tab=([^&]*)")),slug=hash?hash[1]:$links.first().attr("href").replace("#tab=",""),$link=$("#spftestimonial-tab-link-"+slug);if($link.length>0){$link.closest(".spftestimonial-tab-depth-0").addClass("spftestimonial-tab-active").siblings().removeClass("spftestimonial-tab-active"),$links.removeClass("spftestimonial-section-active"),$link.addClass("spftestimonial-section-active"),void 0!==$last_section&&$last_section.hide();var $section=$("#spftestimonial-section-"+slug);$section.css({display:"block"}),$section.spftestimonial_reload_script(),$hidden.val(slug),$last_section=$section}})).trigger("hashchange")}))},$.fn.spftestimonial_nav_metabox=function(){return this.each((function(){var $nav=$(this),$links=$nav.find("a"),unique_id=$nav.data("unique"),post_id=$("#post_ID").val()||"global",$last_section,$last_link;$links.on("click",(function(e){e.preventDefault();var $link=$(this),section_id=$link.data("section");void 0!==$last_link&&$last_link.removeClass("spftestimonial-section-active"),void 0!==$last_section&&$last_section.hide(),$link.addClass("spftestimonial-section-active");var $section=$("#spftestimonial-section-"+section_id);$section.css({display:"block"}),$section.spftestimonial_reload_script(),SPFTESTIMONIAL.helper.set_cookie("spftestimonial-last-metabox-tab-"+post_id+"-"+unique_id,section_id),$last_section=$section,$last_link=$link}));var get_cookie=SPFTESTIMONIAL.helper.get_cookie("spftestimonial-last-metabox-tab-"+post_id+"-"+unique_id);get_cookie?$nav.find('a[data-section="'+get_cookie+'"]').trigger("click"):$links.first("a").trigger("click")}))},$.fn.spftestimonial_page_templates=function(){this.length&&$(document).on("change",".editor-page-attributes__template select, #page_template",(function(){var maybe_value=$(this).val()||"default";$(".spftestimonial-page-templates").removeClass("spftestimonial-show").addClass("spftestimonial-hide"),$(".spftestimonial-page-"+maybe_value.toLowerCase().replace(/[^a-zA-Z0-9]+/g,"-")).removeClass("spftestimonial-hide").addClass("spftestimonial-show")}))},$.fn.spftestimonial_post_formats=function(){this.length&&$(document).on("change",'.editor-post-format select, #formatdiv input[name="post_format"]',(function(){var maybe_value=$(this).val()||"default";maybe_value="0"===maybe_value?"default":maybe_value,$(".spftestimonial-post-formats").removeClass("spftestimonial-show").addClass("spftestimonial-hide"),$(".spftestimonial-post-format-"+maybe_value).removeClass("spftestimonial-hide").addClass("spftestimonial-show")}))},$.fn.spftestimonial_search=function(){return this.each((function(){var $this,$input;$(this).find("input").on("change keyup",(function(){var value=$(this).val(),$wrapper=$(".spftestimonial-wrapper"),$section,$fields=$wrapper.find(".spftestimonial-section").find("> .spftestimonial-field:not(.hidden)"),$titles=$fields.find("> .spftestimonial-title, .spftestimonial-search-tags");value.length>3?($fields.addClass("spftestimonial-hidden"),$wrapper.addClass("spftestimonial-search-all"),$titles.each((function(){var $title=$(this);if($title.text().match(new RegExp(".*?"+value+".*?","i"))){var $field=$title.closest(".spftestimonial-field");$field.removeClass("spftestimonial-hidden"),$field.parent().spftestimonial_reload_script()}}))):($fields.removeClass("spftestimonial-hidden"),$wrapper.removeClass("spftestimonial-search-all"))}))}))},$.fn.spftestimonial_sticky=function(){return this.each((function(){var $this=$(this),$window=$(window),$inner=$this.find(".spftestimonial-header-inner"),padding=parseInt($inner.css("padding-left"))+parseInt($inner.css("padding-right")),offset=32,scrollTop=0,lastTop=0,ticking=!1,stickyUpdate=function(){var offsetTop=$this.offset().top,stickyTop=Math.max(32,offsetTop-scrollTop),winWidth=Math.max(document.documentElement.clientWidth,window.innerWidth||0);stickyTop<=32&&winWidth>782?($inner.css({width:$this.outerWidth()-padding}),$this.css({height:$this.outerHeight()}).addClass("spftestimonial-sticky")):($inner.removeAttr("style"),$this.removeAttr("style").removeClass("spftestimonial-sticky"))},requestTick=function(){ticking||requestAnimationFrame((function(){stickyUpdate(),ticking=!1})),ticking=!0},onSticky=function(){scrollTop=$window.scrollTop(),requestTick()};$window.on("scroll resize",onSticky),onSticky()}))},$.fn.spftestimonial_dependency=function(){return this.each((function(){var $this=$(this),ruleset=$.spftestimonial_deps.createRuleset(),depends=[],is_global=!1;$this.children("[data-controller]").each((function(){var $field=$(this),controllers=$field.data("controller").split("|"),conditions=$field.data("condition").split("|"),values=$field.data("value").toString().split("|"),rules=ruleset;$field.data("depend-global")&&(is_global=!0),$.each(controllers,(function(index,depend_id){var value=values[index]||"",condition=conditions[index]||conditions[0];(rules=rules.createRule('[data-depend-id="'+depend_id+'"]',condition,value)).include($field),depends.push(depend_id)}))})),depends.length&&(is_global?$.spftestimonial_deps.enable(SPFTESTIMONIAL.vars.$body,ruleset,depends):$.spftestimonial_deps.enable($this,ruleset,depends))}))},$.fn.spftestimonial_field_accordion=function(){return this.each((function(){var $titles=$(this).find(".spftestimonial-accordion-title");$titles.on("click",(function(){var $title=$(this),$icon=$title.find(".spftestimonial-accordion-icon"),$content=$title.next();$icon.hasClass("fa-angle-right")?$icon.removeClass("fa-angle-right").addClass("fa-angle-down"):$icon.removeClass("fa-angle-down").addClass("fa-angle-right"),$content.data("opened")||($content.spftestimonial_reload_script(),$content.data("opened",!0)),$content.toggleClass("spftestimonial-accordion-open")})),$(this).hasClass("opened_accordion")&&$titles.trigger("click")}))},$.fn.spftestimonial_field_backup=function(){return this.each((function(){if(void 0!==window.wp.customize){var base=this,$this=$(this),$body=$("body"),$import=$this.find(".spftestimonial-import"),$reset=$this.find(".spftestimonial-reset");base.notification=function(message_text){wp.customize.notifications&&wp.customize.OverlayNotification&&(wp.customize.state("saved").get()||(wp.customize.state("changesetStatus").set("trash"),wp.customize.each((function(setting){setting._dirty=!1})),wp.customize.state("saved").set(!0)),wp.customize.notifications.add(new wp.customize.OverlayNotification("spftestimonial_field_backup_notification",{type:"info",message:message_text,loading:!0})))},$reset.on("click",(function(e){e.preventDefault(),SPFTESTIMONIAL.vars.is_confirm&&(base.notification(window.spftestimonial_vars.i18n.reset_notification),window.wp.ajax.post("spftestimonial-reset",{unique:$reset.data("unique"),nonce:$reset.data("nonce")}).done((function(response){window.location.reload(!0)})).fail((function(response){alert(response.error),wp.customize.notifications.remove("spftestimonial_field_backup_notification")})))})),$import.on("click",(function(e){e.preventDefault(),SPFTESTIMONIAL.vars.is_confirm&&(base.notification(window.spftestimonial_vars.i18n.import_notification),window.wp.ajax.post("spftestimonial-import",{unique:$import.data("unique"),nonce:$import.data("nonce"),import_data:$this.find(".spftestimonial-import-data").val()}).done((function(response){window.location.reload(!0)})).fail((function(response){alert(response.error),wp.customize.notifications.remove("spftestimonial_field_backup_notification")})))}))}}))},$.fn.spftestimonial_field_background=function(){return this.each((function(){$(this).find(".spftestimonial--background-image").spftestimonial_reload_script()}))},$.fn.spftestimonial_field_code_editor=function(){return this.each((function(){if("function"==typeof CodeMirror){var $this=$(this),$textarea=$this.find("textarea"),$inited=$this.find(".CodeMirror"),data_editor=$textarea.data("editor");$inited.length&&$inited.remove();var interval=setInterval((function(){if($this.is(":visible")){var code_editor=CodeMirror.fromTextArea($textarea[0],data_editor);if("default"!==data_editor.theme&&-1===SPFTESTIMONIAL.vars.code_themes.indexOf(data_editor.theme)){var $cssLink=$("<link>");$("#spftestimonial-codemirror-css").after($cssLink),$cssLink.attr({rel:"stylesheet",id:"spftestimonial-codemirror-"+data_editor.theme+"-css",href:data_editor.cdnURL+"/theme/"+data_editor.theme+".min.css",type:"text/css",media:"all"}),SPFTESTIMONIAL.vars.code_themes.push(data_editor.theme)}CodeMirror.modeURL=data_editor.cdnURL+"/mode/%N/%N.min.js",CodeMirror.autoLoadMode(code_editor,data_editor.mode),code_editor.on("change",(function(editor,event){$textarea.val(code_editor.getValue()).trigger("change")})),clearInterval(interval)}}))}}))},$.fn.spftestimonial_field_date=function(){return this.each((function(){var $this=$(this),$inputs=$this.find("input"),settings=$this.find(".spftestimonial-date-settings").data("settings"),wrapper='<div class="spftestimonial-datepicker-wrapper"></div>',$datepicker,defaults={showAnim:"",beforeShow:function(input,inst){$(inst.dpDiv).addClass("spftestimonial-datepicker-wrapper")},onClose:function(input,inst){$(inst.dpDiv).removeClass("spftestimonial-datepicker-wrapper")}};settings=$.extend({},settings,defaults),2===$inputs.length&&(settings=$.extend({},settings,{onSelect:function(selectedDate){var $this=$(this),$from=$inputs.first(),option=$inputs.first().attr("id")===$(this).attr("id")?"minDate":"maxDate",date=$.datepicker.parseDate(settings.dateFormat,selectedDate);$inputs.not(this).datepicker("option",option,date)}})),$inputs.each((function(){var $input=$(this);$input.hasClass("hasDatepicker")&&$input.removeAttr("id").removeClass("hasDatepicker"),$input.datepicker(settings)}))}))},$.fn.spftestimonial_field_fieldset=function(){return this.each((function(){$(this).find(".spftestimonial-fieldset-content").spftestimonial_reload_script()}))},$.fn.spftestimonial_field_gallery=function(){return this.each((function(){var $this=$(this),$edit=$this.find(".spftestimonial-edit-gallery"),$clear=$this.find(".spftestimonial-clear-gallery"),$list=$this.find("ul"),$input=$this.find("input"),$img=$this.find("img"),wp_media_frame;$this.on("click",".spftestimonial-button, .spftestimonial-edit-gallery",(function(e){var $el=$(this),ids=$input.val(),what=$el.hasClass("spftestimonial-edit-gallery")?"edit":"add",state="add"!==what||ids.length?"gallery-edit":"gallery";e.preventDefault(),void 0!==window.wp&&window.wp.media&&window.wp.media.gallery&&("gallery"===state?(wp_media_frame=window.wp.media({library:{type:"image"},frame:"post",state:"gallery",multiple:!0})).open():(wp_media_frame=window.wp.media.gallery.edit('[gallery ids="'+ids+'"]'),"add"===what&&wp_media_frame.setState("gallery-library")),wp_media_frame.on("update",(function(selection){$list.empty();var selectedIds=selection.models.map((function(attachment){var item=attachment.toJSON(),thumb=item.sizes&&item.sizes.thumbnail&&item.sizes.thumbnail.url?item.sizes.thumbnail.url:item.url;return $list.append('<li><img src="'+thumb+'"></li>'),item.id}));$input.val(selectedIds.join(",")).trigger("change"),$clear.removeClass("hidden"),$edit.removeClass("hidden")})))})),$clear.on("click",(function(e){e.preventDefault(),$list.empty(),$input.val("").trigger("change"),$clear.addClass("hidden"),$edit.addClass("hidden")}))}))},$.fn.spftestimonial_field_group=function(){return this.each((function(){var $this=$(this),$fieldset=$this.children(".spftestimonial-fieldset"),$group=$fieldset.length?$fieldset:$this,$wrapper=$group.children(".spftestimonial-cloneable-wrapper"),$hidden=$group.children(".spftestimonial-cloneable-hidden"),$max=$group.children(".spftestimonial-cloneable-max"),$min=$group.children(".spftestimonial-cloneable-min"),field_id=$wrapper.data("field-id"),unique_id=$wrapper.data("unique-id"),is_number=Boolean(Number($wrapper.data("title-number"))),max=parseInt($wrapper.data("max")),min=parseInt($wrapper.data("min"));$wrapper.hasClass("ui-accordion")&&$wrapper.find(".ui-accordion-header-icon").remove();var update_title_numbers=function($selector){$selector.find(".spftestimonial-cloneable-title-number").each((function(index){$(this).html($(this).closest(".spftestimonial-cloneable-item").index()+1+".")}))};$wrapper.accordion({header:"> .spftestimonial-cloneable-item > .spftestimonial-cloneable-title",collapsible:!0,active:!1,animate:!1,heightStyle:"content",icons:{header:"spftestimonial-cloneable-header-icon fa fa-angle-right",activeHeader:"spftestimonial-cloneable-header-icon fa fa-angle-down"},activate:function(event,ui){var $panel=ui.newPanel,$header=ui.newHeader;if($panel.length&&!$panel.data("opened")){var $fields,$first=$panel.children().first().find(":input").first(),$title=$header.find(".spftestimonial-cloneable-value");$first.on("keyup",(function(event){$title.text($first.val())})),$panel.spftestimonial_reload_script(),$panel.data("opened",!0),$panel.data("retry",!1)}else $panel.data("retry")&&($panel.spftestimonial_reload_script_retry(),$panel.data("retry",!1))}}),$wrapper.sortable({axis:"y",handle:".spftestimonial-cloneable-title,.spftestimonial-cloneable-sort",helper:"original",cursor:"move",placeholder:"widget-placeholder",start:function(event,ui){$wrapper.accordion({active:!1}),$wrapper.sortable("refreshPositions"),ui.item.children(".spftestimonial-cloneable-content").data("retry",!0)},update:function(event,ui){SPFTESTIMONIAL.helper.name_nested_replace($wrapper.children(".spftestimonial-cloneable-item"),field_id),$wrapper.spftestimonial_customizer_refresh(),is_number&&update_title_numbers($wrapper)}}),$group.children(".spftestimonial-cloneable-add").on("click",(function(e){e.preventDefault();var count=$wrapper.children(".spftestimonial-cloneable-item").length;if($min.hide(),max&&count+1>max)$max.show();else{var new_field_id=unique_id+field_id+"["+count+"]",$cloned_item=$hidden.spftestimonial_clone(!0);$cloned_item.removeClass("spftestimonial-cloneable-hidden"),$cloned_item.find(':input[name!="_pseudo"]').each((function(){this.name=new_field_id+this.name.replace(this.name.startsWith("_nonce")?"_nonce":unique_id,"")})),$cloned_item.find(".spftestimonial-data-wrapper").each((function(){$(this).attr("data-unique-id",new_field_id)})),$wrapper.append($cloned_item),$wrapper.accordion("refresh"),$wrapper.accordion({active:count}),$wrapper.spftestimonial_customizer_refresh(),$wrapper.spftestimonial_customizer_listen({closest:!0}),is_number&&update_title_numbers($wrapper)}}));var event_clone=function(e){e.preventDefault();var count=$wrapper.children(".spftestimonial-cloneable-item").length;if($min.hide(),max&&count+1>max)$max.show();else{var $this,$parent=$(this).parent().parent(),$cloned_helper=$parent.children(".spftestimonial-cloneable-helper").spftestimonial_clone(!0),$cloned_title=$parent.children(".spftestimonial-cloneable-title").spftestimonial_clone(),$cloned_content=$parent.children(".spftestimonial-cloneable-content").spftestimonial_clone(),cloned_regex=new RegExp("("+SPFTESTIMONIAL.helper.preg_quote(field_id)+")\\[(\\d+)\\]","g");$cloned_content.find(".spftestimonial-data-wrapper").each((function(){var $this=$(this);$this.attr("data-unique-id",$this.attr("data-unique-id").replace(cloned_regex,field_id+"["+($parent.index()+1)+"]"))}));var $cloned=$('<div class="spftestimonial-cloneable-item" />');$cloned.append($cloned_helper),$cloned.append($cloned_title),$cloned.append($cloned_content),$wrapper.children().eq($parent.index()).after($cloned),SPFTESTIMONIAL.helper.name_nested_replace($wrapper.children(".spftestimonial-cloneable-item"),field_id),$wrapper.accordion("refresh"),$wrapper.spftestimonial_customizer_refresh(),$wrapper.spftestimonial_customizer_listen({closest:!0}),is_number&&update_title_numbers($wrapper)}};$wrapper.children(".spftestimonial-cloneable-item").children(".spftestimonial-cloneable-helper").on("click",".spftestimonial-cloneable-clone",event_clone),$group.children(".spftestimonial-cloneable-hidden").children(".spftestimonial-cloneable-helper").on("click",".spftestimonial-cloneable-clone",event_clone);var event_remove=function(e){e.preventDefault();var count=$wrapper.children(".spftestimonial-cloneable-item").length;$max.hide(),$min.hide(),min&&count-1<min?$min.show():($(this).closest(".spftestimonial-cloneable-item").remove(),SPFTESTIMONIAL.helper.name_nested_replace($wrapper.children(".spftestimonial-cloneable-item"),field_id),$wrapper.spftestimonial_customizer_refresh(),is_number&&update_title_numbers($wrapper))};$wrapper.children(".spftestimonial-cloneable-item").children(".spftestimonial-cloneable-helper").on("click",".spftestimonial-cloneable-remove",event_remove),$group.children(".spftestimonial-cloneable-hidden").children(".spftestimonial-cloneable-helper").on("click",".spftestimonial-cloneable-remove",event_remove)}))},$.fn.spftestimonial_field_map=function(){return this.each((function(){if("undefined"!=typeof L){var $this=$(this),$map=$this.find(".spftestimonial--map-osm"),$search_input=$this.find(".spftestimonial--map-search input"),$latitude=$this.find(".spftestimonial--latitude"),$longitude=$this.find(".spftestimonial--longitude"),$zoom=$this.find(".spftestimonial--zoom"),map_data=$map.data("map"),mapInit=L.map($map.get(0),map_data);L.tileLayer("https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",{attribution:'&copy; <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors'}).addTo(mapInit);var mapMarker=L.marker(map_data.center,{draggable:!0}).addTo(mapInit),update_latlng=function(data){$latitude.val(data.lat),$longitude.val(data.lng),$zoom.val(mapInit.getZoom())};mapInit.on("click",(function(data){mapMarker.setLatLng(data.latlng),update_latlng(data.latlng)})),mapInit.on("zoom",(function(){update_latlng(mapMarker.getLatLng())})),mapMarker.on("drag",(function(){update_latlng(mapMarker.getLatLng())})),$search_input.length||($search_input=$('[data-depend-id="'+$this.find(".spftestimonial--address-field").data("address-field")+'"]')),$search_input.autocomplete({source:function(request,response){$.get("https://nominatim.openstreetmap.org/search",{format:"json",q:request.term},(function(results){results.length?response(results.map((function(item){return{value:item.display_name,label:item.display_name,lat:item.lat,lon:item.lon}}),"json")):response([{value:"no-data",label:"No Results."}])}))},select:function(event,ui){if("no-data"===ui.item.value)return!1;var latLng=L.latLng(ui.item.lat,ui.item.lon);mapInit.panTo(latLng),mapMarker.setLatLng(latLng),update_latlng(latLng)},create:function(event,ui){$(this).autocomplete("widget").addClass("spftestimonial-map-ui-autocomplate")}});var input_update_latlng=function(){var latLng=L.latLng($latitude.val(),$longitude.val());mapInit.panTo(latLng),mapMarker.setLatLng(latLng)};$latitude.on("change",input_update_latlng),$longitude.on("change",input_update_latlng)}}))},$.fn.spftestimonial_field_media=function(){return this.each((function(){var $this=$(this),$upload_button=$this.find(".spftestimonial--button"),$remove_button=$this.find(".spftestimonial--remove"),$library=$upload_button.data("library")&&$upload_button.data("library").split(",")||"",$auto_attributes=!!$this.hasClass("spftestimonial-assign-field-background")&&$this.closest(".spftestimonial-field-background").find(".spftestimonial--auto-attributes"),wp_media_frame;$upload_button.on("click",(function(e){e.preventDefault(),void 0!==window.wp&&window.wp.media&&window.wp.media.gallery&&(wp_media_frame?wp_media_frame.open():((wp_media_frame=window.wp.media({library:{type:$library}})).on("select",(function(){var thumbnail,attributes=wp_media_frame.state().get("selection").first().attributes,preview_size=$upload_button.data("preview-size")||"thumbnail";$library.length&&-1===$library.indexOf(attributes.subtype)&&-1===$library.indexOf(attributes.type)||($this.find(".spftestimonial--id").val(attributes.id),$this.find(".spftestimonial--width").val(attributes.width),$this.find(".spftestimonial--height").val(attributes.height),$this.find(".spftestimonial--alt").val(attributes.alt),$this.find(".spftestimonial--title").val(attributes.title),$this.find(".spftestimonial--description").val(attributes.description),thumbnail=void 0!==attributes.sizes&&void 0!==attributes.sizes.thumbnail&&"thumbnail"===preview_size?attributes.sizes.thumbnail.url:void 0!==attributes.sizes&&void 0!==attributes.sizes.full?attributes.sizes.full.url:attributes.icon,$auto_attributes&&$auto_attributes.removeClass("spftestimonial--attributes-hidden"),$remove_button.removeClass("hidden"),$this.find(".spftestimonial--preview").removeClass("hidden"),$this.find(".spftestimonial--src").attr("src",thumbnail),$this.find(".spftestimonial--thumbnail").val(thumbnail),$this.find(".spftestimonial--url").val(attributes.url).trigger("change"))})),wp_media_frame.open()))})),$remove_button.on("click",(function(e){e.preventDefault(),$auto_attributes&&$auto_attributes.addClass("spftestimonial--attributes-hidden"),$remove_button.addClass("hidden"),$this.find("input").val(""),$this.find(".spftestimonial--preview").addClass("hidden"),$this.find(".spftestimonial--url").trigger("change")}))}))},$.fn.spftestimonial_field_repeater=function(){return this.each((function(){var $this=$(this),$fieldset=$this.children(".spftestimonial-fieldset"),$repeater=$fieldset.length?$fieldset:$this,$wrapper=$repeater.children(".spftestimonial-repeater-wrapper"),$hidden=$repeater.children(".spftestimonial-repeater-hidden"),$max=$repeater.children(".spftestimonial-repeater-max"),$min=$repeater.children(".spftestimonial-repeater-min"),field_id=$wrapper.data("field-id"),unique_id=$wrapper.data("unique-id"),max=parseInt($wrapper.data("max")),min=parseInt($wrapper.data("min"));$wrapper.children(".spftestimonial-repeater-item").children(".spftestimonial-repeater-content").spftestimonial_reload_script(),$wrapper.sortable({axis:"y",handle:".spftestimonial-repeater-sort",helper:"original",cursor:"move",placeholder:"widget-placeholder",update:function(event,ui){SPFTESTIMONIAL.helper.name_nested_replace($wrapper.children(".spftestimonial-repeater-item"),field_id),$wrapper.spftestimonial_customizer_refresh(),ui.item.spftestimonial_reload_script_retry()}}),$repeater.children(".spftestimonial-repeater-add").on("click",(function(e){e.preventDefault();var count=$wrapper.children(".spftestimonial-repeater-item").length;if($min.hide(),max&&count+1>max)$max.show();else{var new_field_id=unique_id+field_id+"["+count+"]",$cloned_item=$hidden.spftestimonial_clone(!0);$cloned_item.removeClass("spftestimonial-repeater-hidden"),$cloned_item.find(':input[name!="_pseudo"]').each((function(){this.name=new_field_id+this.name.replace(this.name.startsWith("_nonce")?"_nonce":unique_id,"")})),$cloned_item.find(".spftestimonial-data-wrapper").each((function(){$(this).attr("data-unique-id",new_field_id)})),$wrapper.append($cloned_item),$cloned_item.children(".spftestimonial-repeater-content").spftestimonial_reload_script(),$wrapper.spftestimonial_customizer_refresh(),$wrapper.spftestimonial_customizer_listen({closest:!0})}}));var event_clone=function(e){e.preventDefault();var count=$wrapper.children(".spftestimonial-repeater-item").length;if($min.hide(),max&&count+1>max)$max.show();else{var $this,$parent=$(this).parent().parent().parent(),$cloned_content=$parent.children(".spftestimonial-repeater-content").spftestimonial_clone(),$cloned_helper=$parent.children(".spftestimonial-repeater-helper").spftestimonial_clone(!0),cloned_regex=new RegExp("("+SPFTESTIMONIAL.helper.preg_quote(field_id)+")\\[(\\d+)\\]","g");$cloned_content.find(".spftestimonial-data-wrapper").each((function(){var $this=$(this);$this.attr("data-unique-id",$this.attr("data-unique-id").replace(cloned_regex,field_id+"["+($parent.index()+1)+"]"))}));var $cloned=$('<div class="spftestimonial-repeater-item" />');$cloned.append($cloned_content),$cloned.append($cloned_helper),$wrapper.children().eq($parent.index()).after($cloned),$cloned.children(".spftestimonial-repeater-content").spftestimonial_reload_script(),SPFTESTIMONIAL.helper.name_nested_replace($wrapper.children(".spftestimonial-repeater-item"),field_id),$wrapper.spftestimonial_customizer_refresh(),$wrapper.spftestimonial_customizer_listen({closest:!0})}};$wrapper.children(".spftestimonial-repeater-item").children(".spftestimonial-repeater-helper").on("click",".spftestimonial-repeater-clone",event_clone),$repeater.children(".spftestimonial-repeater-hidden").children(".spftestimonial-repeater-helper").on("click",".spftestimonial-repeater-clone",event_clone);var event_remove=function(e){e.preventDefault();var count=$wrapper.children(".spftestimonial-repeater-item").length;$max.hide(),$min.hide(),min&&count-1<min?$min.show():($(this).closest(".spftestimonial-repeater-item").remove(),SPFTESTIMONIAL.helper.name_nested_replace($wrapper.children(".spftestimonial-repeater-item"),field_id),$wrapper.spftestimonial_customizer_refresh())};$wrapper.children(".spftestimonial-repeater-item").children(".spftestimonial-repeater-helper").on("click",".spftestimonial-repeater-remove",event_remove),$repeater.children(".spftestimonial-repeater-hidden").children(".spftestimonial-repeater-helper").on("click",".spftestimonial-repeater-remove",event_remove)}))},$.fn.spftestimonial_field_slider=function(){return this.each((function(){var $this=$(this),$input=$this.find("input"),$slider=$this.find(".spftestimonial-slider-ui"),data=$input.data(),value=$input.val()||0;$slider.hasClass("ui-slider")&&$slider.empty(),$slider.slider({range:"min",value:value,min:data.min,max:data.max,step:data.step,slide:function(e,o){$input.val(o.value).trigger("change")}}),$input.keyup((function(){$slider.slider("value",$input.val())}))}))},$.fn.spftestimonial_field_sortable=function(){return this.each((function(){var $sortable=$(this).find(".spftestimonial--sortable");$sortable.sortable({axis:"y",helper:"original",cursor:"move",placeholder:"widget-placeholder",update:function(event,ui){$sortable.spftestimonial_customizer_refresh()}}),$sortable.find(".spftestimonial--sortable-content").spftestimonial_reload_script(),$(".form_fields").find(".spftestimonial--sortable").sortable("disable")}))},$.fn.spftestimonial_field_sorter=function(){return this.each((function(){var $this=$(this),$enabled=$this.find(".spftestimonial-enabled"),$has_disabled=$this.find(".spftestimonial-disabled"),$disabled=!!$has_disabled.length&&$has_disabled;$enabled.sortable({connectWith:$disabled,placeholder:"ui-sortable-placeholder",update:function(event,ui){var $el=ui.item.find("input");ui.item.parent().hasClass("spftestimonial-enabled")?$el.attr("name",$el.attr("name").replace("disabled","enabled")):$el.attr("name",$el.attr("name").replace("enabled","disabled")),$this.spftestimonial_customizer_refresh()}}),$disabled&&$disabled.sortable({connectWith:$enabled,placeholder:"ui-sortable-placeholder",update:function(event,ui){$this.spftestimonial_customizer_refresh()}})}))},$.fn.spftestimonial_field_spinner=function(){return this.each((function(){var $this=$(this),$input=$this.find("input"),$inited=$this.find(".ui-spinner-button"),$unit=$input.data("unit");$inited.length&&$inited.remove(),$input.spinner({max:$input.data("max")||100,min:$input.data("min")||0,step:$input.data("step")||1,create:function(event,ui){$unit.length&&$this.find(".ui-spinner-up").after('<span class="ui-button-text-only spftestimonial--unit">'+$unit+"</span>")},spin:function(event,ui){$input.val(ui.value).trigger("change")}})}))},$.fn.spftestimonial_field_switcher=function(){return this.each((function(){var $switcher=$(this).find(".spftestimonial--switcher");$switcher.on("click",(function(){var value=0,$input=$switcher.find("input");$switcher.hasClass("spftestimonial--active")?$switcher.removeClass("spftestimonial--active"):(value=1,$switcher.addClass("spftestimonial--active")),$input.val(value).trigger("change")}))}))},$.fn.spftestimonial_field_tabbed=function(){return this.each((function(){var $this=$(this),$links=$this.find(".spftestimonial-tabbed-nav a"),$sections=$this.find(".spftestimonial-tabbed-section");$sections.eq(0).spftestimonial_reload_script(),$links.on("click",(function(e){e.preventDefault();var $link=$(this),index=$link.index(),$section=$sections.eq(index);$link.addClass("spftestimonial-tabbed-active").siblings().removeClass("spftestimonial-tabbed-active"),$section.spftestimonial_reload_script(),$section.removeClass("hidden").siblings().addClass("hidden")}))}))},$.fn.spftestimonial_field_typography=function(){return this.each((function(){var base=this,$this=$(this),loaded_fonts=[],webfonts=spftestimonial_typography_json.webfonts,googlestyles=spftestimonial_typography_json.googlestyles,defaultstyles=spftestimonial_typography_json.defaultstyles;base.sanitize_subset=function(subset){return subset=(subset=subset.replace("-ext"," Extended")).charAt(0).toUpperCase()+subset.slice(1)},base.sanitize_style=function(style){return googlestyles[style]?googlestyles[style]:style},base.load_google_font=function(font_family,weight,style){font_family&&"object"==typeof WebFont&&(weight=weight?weight.replace("normal",""):"",style=style?style.replace("normal",""):"",(weight||style)&&(font_family=font_family+":"+weight+style),-1===loaded_fonts.indexOf(font_family)&&WebFont.load({google:{families:[font_family]}}),loaded_fonts.push(font_family))},base.append_select_options=function($select,options,condition,type,is_multi){$select.find("option").not(":first").remove();var opts="";$.each(options,(function(key,value){var selected,name=value;selected=is_multi?condition&&-1!==condition.indexOf(value)?" selected":"":condition&&condition===value?" selected":"","subset"===type?name=base.sanitize_subset(value):"style"===type&&(name=base.sanitize_style(value)),opts+='<option value="'+value+'"'+selected+">"+name+"</option>"})),$select.append(opts).trigger("spftestimonial.change").trigger("chosen:updated")},base.init=function(){var selected_styles=[],$typography=$this.find(".spftestimonial--typography"),$type=$this.find(".spftestimonial--type"),$styles=$this.find(".spftestimonial--block-font-style"),unit=$typography.data("unit"),exclude_fonts=$typography.data("exclude")?$typography.data("exclude").split(","):[],$chosen_selects;$this.find(".spftestimonial--chosen").length&&$this.find("select").each((function(){var $chosen_select=$(this),$chosen_inited=$chosen_select.parent().find(".chosen-container");$chosen_inited.length&&$chosen_inited.remove(),$chosen_select.chosen({allow_single_deselect:!0,disable_search_threshold:15,width:"100%"})}));var $font_family_select=$this.find(".spftestimonial--font-family"),first_font_family=$font_family_select.val();$font_family_select.find("option").not(":first-child").remove();var opts="";$.each(webfonts,(function(type,group){exclude_fonts&&-1!==exclude_fonts.indexOf(type)||(opts+='<optgroup label="'+group.label+'">',$.each(group.fonts,(function(key,value){var selected;opts+='<option value="'+(value="object"==typeof value?key:value)+'" data-type="'+type+'"'+(value===first_font_family?" selected":"")+">"+value+"</option>"})),opts+="</optgroup>")})),$font_family_select.append(opts).trigger("chosen:updated");var $font_style_block=$this.find(".spftestimonial--block-font-style");if($font_style_block.length){var $font_style_select=$this.find(".spftestimonial--font-style-select"),first_style_value=$font_style_select.val()?$font_style_select.val().replace(/normal/g,""):"";$font_style_select.on("change spftestimonial.change",(function(event){var style_value=$font_style_select.val();!style_value&&selected_styles&&-1===selected_styles.indexOf("normal")&&(style_value=selected_styles[0]);var font_normal=style_value&&"italic"!==style_value&&"normal"===style_value?"normal":"",font_weight=style_value&&"italic"!==style_value&&"normal"!==style_value?style_value.replace("italic",""):font_normal,font_style=style_value&&"italic"===style_value.substr(-6)?"italic":"";$this.find(".spftestimonial--font-weight").val(font_weight),$this.find(".spftestimonial--font-style").val(font_style)}));var $extra_font_style_block=$this.find(".spftestimonial--block-extra-styles");if($extra_font_style_block.length)var $extra_font_style_select=$this.find(".spftestimonial--extra-styles"),first_extra_style_value=$extra_font_style_select.val()}var $subset_block=$this.find(".spftestimonial--block-subset");if($subset_block.length)var $subset_select=$this.find(".spftestimonial--subset"),first_subset_select_value=$subset_select.val(),subset_multi_select=$subset_select.data("multiple")||!1;var $backup_font_family_block=$this.find(".spftestimonial--block-backup-font-family");$font_family_select.on("change spftestimonial.change",(function(event){$subset_block.length&&$subset_block.addClass("hidden"),$extra_font_style_block.length&&$extra_font_style_block.addClass("hidden"),$backup_font_family_block.length&&$backup_font_family_block.addClass("hidden");var $selected=$font_family_select.find(":selected"),value=$selected.val(),type=$selected.data("type");if(type&&value){if("google"!==type&&"custom"!==type||!$backup_font_family_block.length||$backup_font_family_block.removeClass("hidden"),$font_style_block.length){var styles=defaultstyles;"google"===type&&webfonts[type].fonts[value][0]?styles=webfonts[type].fonts[value][0]:"custom"===type&&webfonts[type].fonts[value]&&(styles=webfonts[type].fonts[value]),selected_styles=styles;var set_auto_style=-1!==styles.indexOf("normal")?"normal":styles[0],set_style_value=first_style_value&&-1!==styles.indexOf(first_style_value)?first_style_value:set_auto_style;base.append_select_options($font_style_select,styles,set_style_value,"style"),first_style_value=!1,$font_style_block.removeClass("hidden"),"google"===type&&$extra_font_style_block.length&&styles.length>1&&(base.append_select_options($extra_font_style_select,styles,first_extra_style_value,"style",!0),first_extra_style_value=!1,$extra_font_style_block.removeClass("hidden"))}if("google"===type&&$subset_block.length&&webfonts[type].fonts[value][1]){var subsets=webfonts[type].fonts[value][1],set_auto_subset=subsets.length<2&&"latin"!==subsets[0]?subsets[0]:"",set_subset_value=first_subset_select_value&&-1!==subsets.indexOf(first_subset_select_value)?first_subset_select_value:set_auto_subset;set_subset_value=subset_multi_select&&first_subset_select_value?first_subset_select_value:set_subset_value,base.append_select_options($subset_select,subsets,set_subset_value,"subset",subset_multi_select),first_subset_select_value=!1,$subset_block.removeClass("hidden")}}else $styles.find(":input").val(""),$subset_block.length&&($subset_select.find("option").not(":first-child").remove(),$subset_select.trigger("chosen:updated")),$font_style_block.length&&($font_style_select.find("option").not(":first-child").remove(),$font_style_select.trigger("chosen:updated"));$type.val(type)})).trigger("spftestimonial.change");var $preview_block=$this.find(".spftestimonial--block-preview");if($preview_block.length){var $preview=$this.find(".spftestimonial--preview");$this.on("change",SPFTESTIMONIAL.helper.debounce((function(event){$preview_block.removeClass("hidden");var font_family=$font_family_select.val(),font_weight=$this.find(".spftestimonial--font-weight").val(),font_style=$this.find(".spftestimonial--font-style").val(),font_size=$this.find(".spftestimonial--font-size").val(),font_variant=$this.find(".spftestimonial--font-variant").val(),line_height=$this.find(".spftestimonial--line-height").val(),text_align=$this.find(".spftestimonial--text-align").val(),text_transform=$this.find(".spftestimonial--text-transform").val(),text_decoration=$this.find(".spftestimonial--text-decoration").val(),text_color=$this.find(".spftestimonial--color").val(),word_spacing=$this.find(".spftestimonial--word-spacing").val(),letter_spacing=$this.find(".spftestimonial--letter-spacing").val(),custom_style=$this.find(".spftestimonial--custom-style").val(),type;"google"===$this.find(".spftestimonial--type").val()&&base.load_google_font(font_family,font_weight,font_style);var properties={};font_family&&(properties.fontFamily=font_family),font_weight&&(properties.fontWeight=font_weight),font_style&&(properties.fontStyle=font_style),font_variant&&(properties.fontVariant=font_variant),font_size&&(properties.fontSize=font_size+unit),line_height&&(properties.lineHeight=line_height+unit),letter_spacing&&(properties.letterSpacing=letter_spacing+unit),word_spacing&&(properties.wordSpacing=word_spacing+unit),text_align&&(properties.textAlign=text_align),text_transform&&(properties.textTransform=text_transform),text_decoration&&(properties.textDecoration=text_decoration),text_color&&(properties.color=text_color),$preview.removeAttr("style"),custom_style&&$preview.attr("style",custom_style),$preview.css(properties)}),100)),$preview_block.on("click",(function(){$preview.toggleClass("spftestimonial--black-background");var $toggle=$preview_block.find(".spftestimonial--toggle");$toggle.hasClass("fa-toggle-off")?$toggle.removeClass("fa-toggle-off").addClass("fa-toggle-on"):$toggle.removeClass("fa-toggle-on").addClass("fa-toggle-off")})),$preview_block.hasClass("hidden")||$this.trigger("change")}},base.init()}))},$.fn.spftestimonial_field_upload=function(){return this.each((function(){var $this=$(this),$input=$this.find("input"),$upload_button=$this.find(".spftestimonial--button"),$remove_button=$this.find(".spftestimonial--remove"),$library=$upload_button.data("library")&&$upload_button.data("library").split(",")||"",wp_media_frame;$input.on("change",(function(e){$input.val()?$remove_button.removeClass("hidden"):$remove_button.addClass("hidden")})),$upload_button.on("click",(function(e){e.preventDefault(),void 0!==window.wp&&window.wp.media&&window.wp.media.gallery&&(wp_media_frame?wp_media_frame.open():((wp_media_frame=window.wp.media({library:{type:$library}})).on("select",(function(){var attributes=wp_media_frame.state().get("selection").first().attributes;$library.length&&-1===$library.indexOf(attributes.subtype)&&-1===$library.indexOf(attributes.type)||$input.val(attributes.url).trigger("change")})),wp_media_frame.open()))})),$remove_button.on("click",(function(e){e.preventDefault(),$input.val("").trigger("change")}))}))},$.fn.spftestimonial_field_wp_editor=function(){return this.each((function(){if(void 0!==window.wp.editor&&void 0!==window.tinyMCEPreInit&&void 0!==window.tinyMCEPreInit.mceInit.spftestimonial_wp_editor){var $this=$(this),$editor=$this.find(".spftestimonial-wp-editor"),$textarea=$this.find("textarea"),$has_wp_editor;($this.find(".wp-editor-wrap").length||$this.find(".mce-container").length)&&($editor.empty(),$editor.append($textarea),$textarea.css("display",""));var uid=SPFTESTIMONIAL.helper.uid("spftestimonial-editor-");$textarea.attr("id",uid);var default_editor_settings={tinymce:window.tinyMCEPreInit.mceInit.spftestimonial_wp_editor,quicktags:window.tinyMCEPreInit.qtInit.spftestimonial_wp_editor},field_editor_settings=$editor.data("editor-settings"),editor_on_change=function(editor){editor.on("change",SPFTESTIMONIAL.helper.debounce((function(){editor.save(),$textarea.trigger("change")}),250))},wpEditor=wp.oldEditor?wp.oldEditor:wp.editor;wpEditor&&wpEditor.hasOwnProperty("autop")&&(wp.editor.autop=wpEditor.autop,wp.editor.removep=wpEditor.removep,wp.editor.initialize=wpEditor.initialize),default_editor_settings.tinymce=$.extend({},default_editor_settings.tinymce,{selector:"#"+uid,setup:editor_on_change}),!1===field_editor_settings.tinymce&&(default_editor_settings.tinymce=!1,$editor.addClass("spftestimonial-no-tinymce")),!1===field_editor_settings.quicktags&&(default_editor_settings.quicktags=!1,$editor.addClass("spftestimonial-no-quicktags"));var interval=setInterval((function(){$this.is(":visible")&&(window.wp.editor.initialize(uid,default_editor_settings),clearInterval(interval))}));if(field_editor_settings.media_buttons&&window.spftestimonial_media_buttons){var $editor_buttons=$editor.find(".wp-media-buttons");if($editor_buttons.length)$editor_buttons.find(".spftestimonial-shortcode-button").data("editor-id",uid);else{var $media_buttons=$(window.spftestimonial_media_buttons);$media_buttons.find(".spftestimonial-shortcode-button").data("editor-id",uid),$editor.prepend($media_buttons)}}}}))},$.fn.spftestimonial_confirm=function(){return this.each((function(){$(this).on("click",(function(e){var confirm_text=$(this).data("confirm")||window.spftestimonial_vars.i18n.confirm,confirm_answer=confirm(confirm_text);if(SPFTESTIMONIAL.vars.is_confirm=!0,!confirm_answer)return e.preventDefault(),SPFTESTIMONIAL.vars.is_confirm=!1,!1}))}))},$.fn.serializeObject=function(){var obj={};return $.each(this.serializeArray(),(function(i,o){var n=o.name,v=o.value;obj[n]=void 0===obj[n]?v:$.isArray(obj[n])?obj[n].concat(v):[obj[n],v]})),obj},$.fn.spftestimonial_save=function(){return this.each((function(){var $this=$(this),$buttons=$(".spftestimonial-save"),$panel=$(".spftestimonial-options"),flooding=!1,timeout;$this.on("click",(function(e){if(!flooding){var $text=$this.data("save"),$value=$this.val();$buttons.attr("value",$text),$this.hasClass("spftestimonial-save-ajax")&&(e.preventDefault(),$panel.addClass("spftestimonial-saving"),$buttons.prop("disabled",!0),window.wp.ajax.post("spftestimonial_"+$panel.data("unique")+"_ajax_save",{data:$("#spftestimonial-form").serializeJSONSPFTESTIMONIAL()}).done((function(response){if($(".spftestimonial-error").remove(),Object.keys(response.errors).length){var error_icon='<i class="spftestimonial-label-error spftestimonial-error">!</i>';$.each(response.errors,(function(key,error_message){var $field=$('[data-depend-id="'+key+'"]'),$link=$("#spftestimonial-tab-link-"+($field.closest(".spftestimonial-section").index()+1)),$tab=$link.closest(".spftestimonial-tab-depth-0");$field.closest(".spftestimonial-fieldset").append('<p class="spftestimonial-text-error spftestimonial-error">'+error_message+"</p>"),$link.find(".spftestimonial-error").length||$link.append(error_icon),$tab.find(".spftestimonial-arrow .spftestimonial-error").length||$tab.find(".spftestimonial-arrow").append(error_icon),console.log(error_message)}))}$panel.removeClass("spftestimonial-saving"),$buttons.prop("disabled",!1).attr("value",$value),flooding=!1,SPFTESTIMONIAL.vars.form_modified=!1,SPFTESTIMONIAL.vars.$form_warning.hide(),clearTimeout(timeout);var $result_success=$(".spftestimonial-form-success");$result_success.empty().append(response.notice).fadeIn("fast",(function(){timeout=setTimeout((function(){$result_success.fadeOut("fast")}),1e3)}))})).fail((function(response){alert(response.error)})))}flooding=!0}))}))},$.fn.spftestimonial_options=function(){return this.each((function(){var $this=$(this),$content=$this.find(".spftestimonial-content"),$form_success=$this.find(".spftestimonial-form-success"),$form_warning=$this.find(".spftestimonial-form-warning"),$save_button=$this.find(".spftestimonial-header .spftestimonial-save");SPFTESTIMONIAL.vars.$form_warning=$form_warning,$form_warning.length&&(window.onbeforeunload=function(){return!!SPFTESTIMONIAL.vars.form_modified||void 0},$content.on("change keypress",":input",(function(){SPFTESTIMONIAL.vars.form_modified||($form_success.hide(),$form_warning.fadeIn("fast"),SPFTESTIMONIAL.vars.form_modified=!0)}))),$form_success.hasClass("spftestimonial-form-show")&&setTimeout((function(){$form_success.fadeOut("fast")}),1e3),$(document).keydown((function(event){if((event.ctrlKey||event.metaKey)&&83===event.which)return $save_button.trigger("click"),event.preventDefault(),!1}))}))},"function"==typeof Color&&(Color.fn.toString=function(){if(this._alpha<1)return this.toCSS("rgba",this._alpha).replace(/\s+/g,"");var hex=parseInt(this._color,10).toString(16);if(this.error)return"";if(hex.length<6)for(var i=6-hex.length-1;i>=0;i--)hex="0"+hex;return"#"+hex}),SPFTESTIMONIAL.funcs.parse_color=function(color){var value=color.replace(/\s+/g,""),trans=-1!==value.indexOf("rgba")?parseFloat(100*value.replace(/^.*,(.+)\)/,"$1")):100,rgba;return{value:value,transparent:trans,rgba:trans<100}},$.fn.spftestimonial_color=function(){return this.each((function(){var $input=$(this),picker_color=SPFTESTIMONIAL.funcs.parse_color($input.val()),palette_color=!window.spftestimonial_vars.color_palette.length||window.spftestimonial_vars.color_palette,$container;$input.hasClass("wp-color-picker")&&$input.closest(".wp-picker-container").after($input).remove(),$input.wpColorPicker({palettes:palette_color,change:function(event,ui){var ui_color_value=ui.color.toString();$container.removeClass("spftestimonial--transparent-active"),$container.find(".spftestimonial--transparent-offset").css("background-color",ui_color_value),$input.val(ui_color_value).trigger("change")},create:function(){$container=$input.closest(".wp-picker-container");var a8cIris=$input.data("a8cIris"),$transparent_wrap=$('<div class="spftestimonial--transparent-wrap"><div class="spftestimonial--transparent-slider"></div><div class="spftestimonial--transparent-offset"></div><div class="spftestimonial--transparent-text"></div><div class="spftestimonial--transparent-button">transparent <i class="fa fa-toggle-off"></i></div></div>').appendTo($container.find(".wp-picker-holder")),$transparent_slider=$transparent_wrap.find(".spftestimonial--transparent-slider"),$transparent_text=$transparent_wrap.find(".spftestimonial--transparent-text"),$transparent_offset=$transparent_wrap.find(".spftestimonial--transparent-offset"),$transparent_button=$transparent_wrap.find(".spftestimonial--transparent-button");"transparent"===$input.val()&&$container.addClass("spftestimonial--transparent-active"),$transparent_button.on("click",(function(){"transparent"!==$input.val()?($input.val("transparent").trigger("change").removeClass("iris-error"),$container.addClass("spftestimonial--transparent-active")):($input.val(a8cIris._color.toString()).trigger("change"),$container.removeClass("spftestimonial--transparent-active"))})),$transparent_slider.slider({value:picker_color.transparent,step:1,min:0,max:100,slide:function(event,ui){var slide_value=parseFloat(ui.value/100);a8cIris._color._alpha=slide_value,$input.wpColorPicker("color",a8cIris._color.toString()),$transparent_text.text(1===slide_value||0===slide_value?"":slide_value)},create:function(){var slide_value=parseFloat(picker_color.transparent/100),text_value=slide_value<1?slide_value:"";$transparent_text.text(text_value),$transparent_offset.css("background-color",picker_color.value),$container.on("click",".wp-picker-clear",(function(){a8cIris._color._alpha=1,$transparent_text.text(""),$transparent_slider.slider("option","value",100),$container.removeClass("spftestimonial--transparent-active"),$input.trigger("change")})),$container.on("click",".wp-picker-default",(function(){var default_color=SPFTESTIMONIAL.funcs.parse_color($input.data("default-color")),default_value=parseFloat(default_color.transparent/100),default_text=default_value<1?default_value:"";a8cIris._color._alpha=default_value,$transparent_text.text(default_text),$transparent_slider.slider("option","value",default_color.transparent)}))}})}})}))},$.fn.spftestimonial_chosen=function(){return this.each((function(){var $this=$(this),$inited=$this.parent().find(".chosen-container"),is_sortable=$this.hasClass("spftestimonial-chosen-sortable")||!1,is_ajax=$this.hasClass("spftestimonial-chosen-ajax")||!1,is_multiple=$this.attr("multiple")||!1,set_width=is_multiple?"100%":"auto",set_options=$.extend({allow_single_deselect:!0,disable_search_threshold:10,width:set_width,no_results_text:window.spftestimonial_vars.i18n.no_results_text},$this.data("chosen-settings"));if($inited.length&&$inited.remove(),is_ajax){var set_ajax_options=$.extend({data:{type:"post",nonce:""},allow_single_deselect:!0,disable_search_threshold:-1,width:"100%",min_length:3,type_delay:500,typing_text:window.spftestimonial_vars.i18n.typing_text,searching_text:window.spftestimonial_vars.i18n.searching_text,no_results_text:window.spftestimonial_vars.i18n.no_results_text},$this.data("chosen-settings"));$this.SPFTESTIMONIALAjaxChosen(set_ajax_options)}else $this.chosen(set_options);if(is_multiple){var $hidden_select=$this.parent().find(".spftestimonial-hidden-select"),$hidden_value=$hidden_select.val()||[];$this.on("change",(function(obj,result){result&&result.selected?$hidden_select.append('<option value="'+result.selected+'" selected="selected">'+result.selected+"</option>"):result&&result.deselected&&$hidden_select.find('option[value="'+result.deselected+'"]').remove(),0===$hidden_select.children().length&&void 0!==window.wp.customize&&window.wp.customize.control($hidden_select.data("customize-setting-link")).setting.set(""),$hidden_select.trigger("change")})),$this.SPFTESTIMONIALChosenOrder($hidden_value,!0)}if(is_sortable){var $chosen_container,$chosen_choices=$this.parent().find(".chosen-container").find(".chosen-choices");$chosen_choices.bind("mousedown",(function(event){$(event.target).is("span")&&event.stopPropagation()})),$chosen_choices.sortable({items:"li:not(.search-field)",helper:"orginal",cursor:"move",placeholder:"search-choice-placeholder",start:function(e,ui){ui.placeholder.width(ui.item.innerWidth()),ui.placeholder.height(ui.item.innerHeight())},update:function(e,ui){var select_options="",chosen_object=$this.data("chosen"),$prev_select=$this.parent().find(".spftestimonial-hidden-select");$chosen_choices.find(".search-choice-close").each((function(){var option_array_index=$(this).data("option-array-index");$.each(chosen_object.results_data,(function(index,data){data.array_index===option_array_index&&(select_options+='<option value="'+data.value+'" selected>'+data.value+"</option>")}))})),$prev_select.children().remove(),$prev_select.append(select_options),$prev_select.trigger("change")}})}}))},$.fn.spftestimonial_checkbox=function(){return this.each((function(){var $this=$(this),$input=$this.find(".spftestimonial--input"),$checkbox=$this.find(".spftestimonial--checkbox");$checkbox.on("click",(function(){$input.val(Number($checkbox.prop("checked"))).trigger("change")}))}))},$.fn.spftestimonial_siblings=function(){return this.each((function(){var $this=$(this),$siblings=$this.find(".spftestimonial--sibling"),multiple=$this.data("multiple")||!1;$siblings.on("click",(function(){var $sibling=$(this);multiple?$sibling.hasClass("spftestimonial--active")?($sibling.removeClass("spftestimonial--active"),$sibling.find("input").prop("checked",!1).trigger("change")):($sibling.addClass("spftestimonial--active"),$sibling.find("input").prop("checked",!0).trigger("change")):($this.find("input").prop("checked",!1),$sibling.find("input").prop("checked",!0).trigger("change"),$sibling.addClass("spftestimonial--active").siblings().removeClass("spftestimonial--active"))}))}))},$.fn.spftestimonial_help=function(){return this.each((function(){var $this=$(this),$tooltip,offset_left;$this.on({mouseenter:function(){$tooltip=$('<div class="spftestimonial-tooltip"></div>').html($this.find(".spftestimonial-help-text").html()).appendTo("body"),offset_left=SPFTESTIMONIAL.vars.is_rtl?$this.offset().left-$tooltip.outerWidth():$this.offset().left+24,$tooltip.css({top:$this.offset().top-($tooltip.outerHeight()/2-14),left:offset_left})},mouseleave:function(){void 0!==$tooltip&&$tooltip.remove()}})}))},$.fn.spftestimonial_customizer_refresh=function(){return this.each((function(){var $this=$(this),$complex=$this.closest(".spftestimonial-customize-complex");if($complex.length){var $input=$complex.find(":input"),$unique=$complex.data("unique-id"),$option=$complex.data("option-id"),obj=$input.serializeObjectSPFTESTIMONIAL(),data=$.isEmptyObject(obj)?"":obj[$unique][$option],control=window.wp.customize.control($unique+"["+$option+"]");control.setting._value=null,control.setting.set(data)}else $this.find(":input").first().trigger("change");$(document).trigger("spftestimonial-customizer-refresh",$this)}))},$.fn.spftestimonial_customizer_listen=function(options){var settings=$.extend({closest:!1},options);return this.each((function(){if(void 0!==window.wp.customize){var $this=settings.closest?$(this).closest(".spftestimonial-customize-complex"):$(this),$input=$this.find(":input"),unique_id=$this.data("unique-id"),option_id=$this.data("option-id");void 0!==unique_id&&$input.on("change keyup",SPFTESTIMONIAL.helper.debounce((function(){var obj=$this.find(":input").serializeObjectSPFTESTIMONIAL(),val=!$.isEmptyObject(obj)&&obj[unique_id]&&obj[unique_id][option_id]?obj[unique_id][option_id]:"";window.wp.customize.control(unique_id+"["+option_id+"]").setting.set(val)}),250))}}))},$(document).on("expanded",".control-section",(function(){var $this=$(this);if($this.hasClass("open")&&!$this.data("inited")){var $fields=$this.find(".spftestimonial-customize-field"),$complex=$this.find(".spftestimonial-customize-complex");$fields.length&&($this.spftestimonial_dependency(),$fields.spftestimonial_reload_script({dependency:!1}),$complex.spftestimonial_customizer_listen()),$this.data("inited",!0)}})),SPFTESTIMONIAL.vars.$window.on("resize spftestimonial.resize",SPFTESTIMONIAL.helper.debounce((function(event){var window_width;(navigator.userAgent.indexOf("AppleWebKit/")>-1?SPFTESTIMONIAL.vars.$window.width():window.innerWidth)<=782&&!SPFTESTIMONIAL.vars.onloaded&&($(".spftestimonial-section").spftestimonial_reload_script(),SPFTESTIMONIAL.vars.onloaded=!0)}),200)).trigger("spftestimonial.resize"),$.fn.spftestimonial_widgets=function(){this.length&&($(document).on("widget-added widget-updated",(function(event,$widget){$widget.find(".spftestimonial-fields").spftestimonial_reload_script()})),$(".widgets-sortables, .control-section-sidebar").on("sortstop",(function(event,ui){ui.item.find(".spftestimonial-fields").spftestimonial_reload_script_retry()})),$(document).on("click",".widget-top",(function(event){$(this).parent().find(".spftestimonial-fields").spftestimonial_reload_script()})))},$.fn.spftestimonial_reload_script_retry=function(){return this.each((function(){var $this=$(this);$this.data("inited")&&$this.children(".spftestimonial-field-wp_editor").spftestimonial_field_wp_editor()}))},$.fn.spftestimonial_reload_script=function(options){var settings=$.extend({dependency:!0},options);return this.each((function(){var $this=$(this);$this.data("inited")||($this.children(".spftestimonial-field-accordion:not(.tfree_pro_only)").spftestimonial_field_accordion(),$this.children(".spftestimonial-field-backup").spftestimonial_field_backup(),$this.children(".spftestimonial-field-background").spftestimonial_field_background(),$this.children(".spftestimonial-field-code_editor").spftestimonial_field_code_editor(),$this.children(".spftestimonial-field-date").spftestimonial_field_date(),$this.children(".spftestimonial-field-fieldset").spftestimonial_field_fieldset(),$this.children(".spftestimonial-field-gallery").spftestimonial_field_gallery(),$this.children(".spftestimonial-field-group").spftestimonial_field_group(),$this.children(".spftestimonial-field-media").spftestimonial_field_media(),$this.children(".spftestimonial-field-map").spftestimonial_field_map(),$this.children(".spftestimonial-field-repeater").spftestimonial_field_repeater(),$this.children(".spftestimonial-field-slider").spftestimonial_field_slider(),$this.children(".spftestimonial-field-sortable").spftestimonial_field_sortable(),$this.children(".spftestimonial-field-sorter").spftestimonial_field_sorter(),$this.children(".spftestimonial-field-spinner").spftestimonial_field_spinner(),$this.children(".spftestimonial-field-switcher").spftestimonial_field_switcher(),$this.children(".spftestimonial-field-tabbed").spftestimonial_field_tabbed(),$this.children(".spftestimonial-field-typography").spftestimonial_field_typography(),$this.children(".spftestimonial-field-upload").spftestimonial_field_upload(),$this.children(".spftestimonial-field-wp_editor").spftestimonial_field_wp_editor(),$this.children(".spftestimonial-field-border").find(".spftestimonial-color").spftestimonial_color(),$this.children(".spftestimonial-field-background").find(".spftestimonial-color").spftestimonial_color(),$this.children(".spftestimonial-field-color").find(".spftestimonial-color").spftestimonial_color(),$this.children(".spftestimonial-field-color_group").find(".spftestimonial-color").spftestimonial_color(),$this.children(".spftestimonial-field-link_color").find(".spftestimonial-color").spftestimonial_color(),$this.children(".spftestimonial-field-typography").find(".spftestimonial-color").spftestimonial_color(),$this.children(".spftestimonial-field-select").find(".spftestimonial-chosen").spftestimonial_chosen(),$this.children(".spftestimonial-field-checkbox").find(".spftestimonial-checkbox").spftestimonial_checkbox(),$this.children(".spftestimonial-field-button_set").find(".spftestimonial-siblings").spftestimonial_siblings(),$this.children(".spftestimonial-field-image_select").find(".spftestimonial-siblings").spftestimonial_siblings(),$this.children(".spftestimonial-field-palette").find(".spftestimonial-siblings").spftestimonial_siblings(),$this.children(".spftestimonial-field").find(".spftestimonial-help").spftestimonial_help(),settings.dependency&&$this.spftestimonial_dependency(),$this.data("inited",!0),$(document).trigger("spftestimonial-reload-script",$this))}))},$(document).ready((function(){$(".spftestimonial-save").spftestimonial_save(),$(".spftestimonial-options").spftestimonial_options(),$(".spftestimonial-sticky-header").spftestimonial_sticky(),$(".spftestimonial-nav-options").spftestimonial_nav_options(),$(".spftestimonial-nav-metabox").spftestimonial_nav_metabox(),$(".spftestimonial-page-templates").spftestimonial_page_templates(),$(".spftestimonial-post-formats").spftestimonial_post_formats(),$(".spftestimonial-search").spftestimonial_search(),$(".spftestimonial-confirm").spftestimonial_confirm(),$(".spftestimonial-expand-all").spftestimonial_expand_all(),$(".spftestimonial-onload").spftestimonial_reload_script(),$(".widget").spftestimonial_widgets()})),$("select option:contains((Pro))").attr("disabled",!0).css("opacity","0.8"),$("label:contains((Pro))").css({"pointer-events":"none"}).css("opacity","0.8"),$(".tpro-sc-code").click((function(e){e.preventDefault(),spftestimonial_copyToClipboard($(this)),spftestimonial_SelectText($(this)),$(this).focus().select(),$(".sptpro-after-copy-text").animate({opacity:1,bottom:25},300),setTimeout((function(){jQuery(".sptpro-after-copy-text").animate({opacity:0},200),jQuery(".sptpro-after-copy-text").animate({bottom:0},0)}),2e3)})),$(".sp_tfree_input").click((function(e){var copyText;e.preventDefault(),$(this).select(),document.execCommand("copy"),$(".sptpro-after-copy-text").animate({opacity:1,bottom:25},300),setTimeout((function(){jQuery(".sptpro-after-copy-text").animate({opacity:0},200),jQuery(".sptpro-after-copy-text").animate({bottom:0},0)}),2e3)}));var $export_type=$(".spt_what_export").find("input:checked").val();$(".spt_what_export").on("change",(function(){$export_type=$(this).find("input:checked").val()})),$(".spt_export .spftestimonial--button").click((function(event){event.preventDefault();var $shortcode_ids=$(".spt_post_id select").val(),$selected_testimonials="selected_spt_shortcodes"===$export_type?$shortcode_ids:"all_spt_shortcodes",$ex_nonce=$("#spftestimonial_options_noncesp_testimonial_pro_tools").val();if("all_testimonial"===$export_type)var data={action:"spt_export_shortcodes",lcp_ids:"all_testimonial",nonce:$ex_nonce};else if("all_spt_shortcodes"===$export_type||"selected_spt_shortcodes"===$export_type)var data={action:"spt_export_shortcodes",lcp_ids:$selected_testimonials,nonce:$ex_nonce};else $(".spftestimonial-form-result.spftestimonial-form-success").text("No testimonials selected.").show(),setTimeout((function(){$(".spftestimonial-form-result.spftestimonial-form-success").hide().text("")}),3e3);$.post(ajaxurl,data,(function(resp){if(resp){var json=JSON.stringify(resp);json=[json];var blob=new Blob(json),link=document.createElement("a"),spt_time=$.now();link.href=window.URL.createObjectURL(blob),link.download="testtimonial-free-export-"+spt_time+".json",link.click(),$(".spftestimonial-form-result.spftestimonial-form-success").text("Exported successfully!").show(),setTimeout((function(){$(".spftestimonial-form-result.spftestimonial-form-success").hide().text(""),$(".spt_post_id select").val("").trigger("chosen:updated")}),3e3)}}))})),$(".spt_import button.import").click((function(event){event.preventDefault();var spt_testimonial=$("#import").prop("files")[0];if(""!=$("#import").val()){var $im_nonce=$("#spftestimonial_options_noncesp_testimonial_pro_tools").val(),reader=new FileReader;reader.readAsText(spt_testimonial),reader.onload=function(event){var jsonObj=JSON.stringify(event.target.result);$.ajax({url:ajaxurl,type:"POST",data:{shortcode:jsonObj,action:"spt_import_shortcodes",nonce:$im_nonce},success:function(resp){$(".spftestimonial-form-result.spftestimonial-form-success").text("Imported successfully!").show(),setTimeout((function(){$(".spftestimonial-form-result.spftestimonial-form-success").hide().text(""),$("#import").val(""),"spt_testimonial"===resp.data?window.location.replace($("#spt_testimonial_link_redirect").attr("href")):window.location.replace($("#spt_shortcode_link_redirect").attr("href"))}),2e3)}})}}else $(".spftestimonial-form-result.spftestimonial-form-success").text("No exported json file chosen.").show(),setTimeout((function(){$(".spftestimonial-form-result.spftestimonial-form-success").hide().text("")}),3e3)}));var preview_box=$("#sp_tpro-preview-box"),preview_display=$("#sp_tpro_live_preview").hide();$(document).on("click","#sp_tpro-show-preview:contains(Hide)",(function(e){var _this;e.preventDefault(),$(this).html('<i class="fa fa-eye" aria-hidden="true"></i> Show Preview'),preview_box.html(""),preview_display.hide()})),$(document).on("click","#sp_tpro-show-preview:not(:contains(Hide))",(function(e){e.preventDefault();var _data=$("form#post").serialize(),_this=$(this),data={action:"sp_tpro_preview_meta_box",data:_data,ajax_nonce:$("#spftestimonial_metabox_noncesp_tpro_live_preview").val()};$.ajax({type:"POST",url:ajaxurl,data:data,error:function(response){console.log(response)},success:function(response){preview_display.show(),preview_box.html(response),_this.html('<i class="fa fa-eye-slash" aria-hidden="true"></i> Hide Preview'),$(document).on("keyup change",(function(e){e.preventDefault(),_this.html('<i class="fa fa-refresh" aria-hidden="true"></i> Update Preview')})),$("html, body").animate({scrollTop:preview_display.offset().top-50},"slow"),$(".tfree-preloader").animate({opacity:1},600).hide()}})}))}(jQuery,window,document);
1
+ !function($,window,document,undefined){"use strict";var SPFTESTIMONIAL=SPFTESTIMONIAL||{};SPFTESTIMONIAL.funcs={},SPFTESTIMONIAL.vars={onloaded:!1,$body:$("body"),$window:$(window),$document:$(document),$form_warning:null,is_confirm:!1,form_modified:!1,code_themes:[],is_rtl:$("body").hasClass("rtl")},SPFTESTIMONIAL.helper={uid:function(prefix){return(prefix||"")+Math.random().toString(36).substr(2,9)},preg_quote:function(str){return(str+"").replace(/(\[|\])/g,"\\$1")},name_nested_replace:function($selector,field_id){var checks=[],regex=new RegExp(SPFTESTIMONIAL.helper.preg_quote(field_id+"[\\d+]"),"g");$selector.find(":radio").each((function(){(this.checked||this.orginal_checked)&&(this.orginal_checked=!0)})),$selector.each((function(index){$(this).find(":input").each((function(){this.name=this.name.replace(regex,field_id+"["+index+"]"),this.orginal_checked&&(this.checked=!0)}))}))},debounce:function(callback,threshold,immediate){var timeout;return function(){var context=this,args=arguments,later=function(){timeout=null,immediate||callback.apply(context,args)},callNow=immediate&&!timeout;clearTimeout(timeout),timeout=setTimeout(later,threshold),callNow&&callback.apply(context,args)}},get_cookie:function(name){var e,b,cookie=document.cookie,p=name+"=";if(cookie){if(-1===(b=cookie.indexOf("; "+p))){if(0!==(b=cookie.indexOf(p)))return null}else b+=2;return-1===(e=cookie.indexOf(";",b))&&(e=cookie.length),decodeURIComponent(cookie.substring(b+p.length,e))}},set_cookie:function(name,value,expires,path,domain,secure){var d=new Date;"object"==typeof expires&&expires.toGMTString?expires=expires.toGMTString():parseInt(expires,10)?(d.setTime(d.getTime()+1e3*parseInt(expires,10)),expires=d.toGMTString()):expires="",document.cookie=name+"="+encodeURIComponent(value)+(expires?"; expires="+expires:"")+(path?"; path="+path:"")+(domain?"; domain="+domain:"")+(secure?"; secure":"")},remove_cookie:function(name,path,domain,secure){SPFTESTIMONIAL.helper.set_cookie(name,"",-1e3,path,domain,secure)}},$.fn.spftestimonial_clone=function(){for(var base=$.fn.clone.apply(this,arguments),clone=this.find("select").add(this.filter("select")),cloned=base.find("select").add(base.filter("select")),i=0;i<clone.length;++i)for(var j=0;j<clone[i].options.length;++j)!0===clone[i].options[j].selected&&(cloned[i].options[j].selected=!0);return this.find(":radio").each((function(){this.orginal_checked=this.checked})),base},$.fn.spftestimonial_expand_all=function(){return this.each((function(){$(this).on("click",(function(e){e.preventDefault(),$(".spftestimonial-wrapper").toggleClass("spftestimonial-show-all"),$(".spftestimonial-section").spftestimonial_reload_script(),$(this).find(".fa").toggleClass("fa-indent").toggleClass("fa-outdent")}))}))},$.fn.spftestimonial_nav_options=function(){return this.each((function(){var $nav=$(this),$window=$(window),$wpwrap=$("#wpwrap"),$links=$nav.find("a"),$last;$window.on("hashchange spftestimonial.hashchange",(function(){var hash=window.location.hash.replace("#tab=",""),slug=hash||$links.first().attr("href").replace("#tab=",""),$link=$('[data-tab-id="'+slug+'"]');if($link.length){$link.closest(".spftestimonial-tab-item").addClass("spftestimonial-tab-expanded").siblings().removeClass("spftestimonial-tab-expanded"),$link.next().is("ul")&&(slug=($link=$link.next().find("li").first().find("a")).data("tab-id")),$links.removeClass("spftestimonial-active"),$link.addClass("spftestimonial-active"),$last&&$last.addClass("hidden");var $section=$('[data-section-id="'+slug+'"]');$section.removeClass("hidden"),$section.spftestimonial_reload_script(),$(".spftestimonial-section-id").val($section.index()+1),$last=$section,$wpwrap.hasClass("wp-responsive-open")&&($("html, body").animate({scrollTop:$section.offset().top-50},200),$wpwrap.removeClass("wp-responsive-open"))}})).trigger("spftestimonial.hashchange")}))},$.fn.spftestimonial_nav_metabox=function(){return this.each((function(){var $nav=$(this),$links=$nav.find("a"),$sections=$nav.parent().find(".spftestimonial-section"),unique_id=$nav.data("unique"),post_id=$("#post_ID").val()||"global",$last;$links.each((function(index){$(this).on("click",(function(e){e.preventDefault();var $link=$(this),section_id=$link.data("section");$links.removeClass("spftestimonial-active"),$link.addClass("spftestimonial-active"),void 0!==$last&&$last.addClass("hidden");var $section=$sections.eq(index);$section.removeClass("hidden"),$section.spftestimonial_reload_script(),SPFTESTIMONIAL.helper.set_cookie("spftestimonial-last-metabox-tab-"+post_id+"-"+unique_id,section_id),$last=$section}))}));var get_cookie=SPFTESTIMONIAL.helper.get_cookie("spftestimonial-last-metabox-tab-"+post_id+"-"+unique_id);get_cookie?$nav.find('a[data-section="'+get_cookie+'"]').trigger("click"):$links.first("a").trigger("click")}))},$.fn.spftestimonial_search=function(){return this.each((function(){var $this,$input;$(this).find("input").on("change keyup",(function(){var value=$(this).val(),$wrapper=$(".spftestimonial-wrapper"),$section,$fields=$wrapper.find(".spftestimonial-section").find("> .spftestimonial-field:not(.spftestimonial-depend-on)"),$titles=$fields.find("> .spftestimonial-title, .spftestimonial-search-tags");value.length>3?($fields.addClass("spftestimonial-metabox-hide"),$wrapper.addClass("spftestimonial-search-all"),$titles.each((function(){var $title=$(this);if($title.text().match(new RegExp(".*?"+value+".*?","i"))){var $field=$title.closest(".spftestimonial-field");$field.removeClass("spftestimonial-metabox-hide"),$field.parent().spftestimonial_reload_script()}}))):($fields.removeClass("spftestimonial-metabox-hide"),$wrapper.removeClass("spftestimonial-search-all"))}))}))},$.fn.spftestimonial_sticky=function(){return this.each((function(){var $this=$(this),$window=$(window),$inner=$this.find(".spftestimonial-header-inner"),padding=parseInt($inner.css("padding-left"))+parseInt($inner.css("padding-right")),offset=32,scrollTop=0,lastTop=0,ticking=!1,stickyUpdate=function(){var offsetTop=$this.offset().top,stickyTop=Math.max(32,offsetTop-scrollTop),winWidth=$window.innerWidth();stickyTop<=32&&winWidth>782?($inner.css({width:$this.outerWidth()-padding}),$this.css({height:$this.outerHeight()}).addClass("spftestimonial-sticky")):($inner.removeAttr("style"),$this.removeAttr("style").removeClass("spftestimonial-sticky"))},requestTick=function(){ticking||requestAnimationFrame((function(){stickyUpdate(),ticking=!1})),ticking=!0},onSticky=function(){scrollTop=$window.scrollTop(),requestTick()};$window.on("scroll resize",onSticky),onSticky()}))},$.fn.spftestimonial_dependency=function(){return this.each((function(){var $this=$(this),$fields=$this.children("[data-controller]");if($fields.length){var normal_ruleset=$.spftestimonial_deps.createRuleset(),global_ruleset=$.spftestimonial_deps.createRuleset(),normal_depends=[],global_depends=[];$fields.each((function(){var $field=$(this),controllers=$field.data("controller").split("|"),conditions=$field.data("condition").split("|"),values=$field.data("value").toString().split("|"),is_global=!!$field.data("depend-global"),ruleset=is_global?global_ruleset:normal_ruleset;$.each(controllers,(function(index,depend_id){var value=values[index]||"",condition=conditions[index]||conditions[0];(ruleset=ruleset.createRule('[data-depend-id="'+depend_id+'"]',condition,value)).include($field),is_global?global_depends.push(depend_id):normal_depends.push(depend_id)}))})),normal_depends.length&&$.spftestimonial_deps.enable($this,normal_ruleset,normal_depends),global_depends.length&&$.spftestimonial_deps.enable(SPFTESTIMONIAL.vars.$body,global_ruleset,global_depends)}}))},$.fn.spftestimonial_field_accordion=function(){return this.each((function(){var $titles=$(this).find(".spftestimonial-accordion-title");$titles.on("click",(function(){var $title=$(this),$icon=$title.find(".spftestimonial-accordion-icon"),$content=$title.next();$icon.hasClass("fa-angle-right")?$icon.removeClass("fa-angle-right").addClass("fa-angle-down"):$icon.removeClass("fa-angle-down").addClass("fa-angle-right"),$content.data("opened")||($content.spftestimonial_reload_script(),$content.data("opened",!0)),$content.toggleClass("spftestimonial-accordion-open")})),$(this).hasClass("opened_accordion")&&$titles.trigger("click")}))},$.fn.spftestimonial_field_code_editor=function(){return this.each((function(){if("function"==typeof CodeMirror){var $this=$(this),$textarea=$this.find("textarea"),$inited=$this.find(".CodeMirror"),data_editor=$textarea.data("editor");$inited.length&&$inited.remove();var interval=setInterval((function(){if($this.is(":visible")){var code_editor=CodeMirror.fromTextArea($textarea[0],data_editor);if("default"!==data_editor.theme&&-1===SPFTESTIMONIAL.vars.code_themes.indexOf(data_editor.theme)){var $cssLink=$("<link>");$("#spftestimonial-codemirror-css").after($cssLink),$cssLink.attr({rel:"stylesheet",id:"spftestimonial-codemirror-"+data_editor.theme+"-css",href:data_editor.cdnURL+"/theme/"+data_editor.theme+".min.css",type:"text/css",media:"all"}),SPFTESTIMONIAL.vars.code_themes.push(data_editor.theme)}CodeMirror.modeURL=data_editor.cdnURL+"/mode/%N/%N.min.js",CodeMirror.autoLoadMode(code_editor,data_editor.mode),code_editor.on("change",(function(editor,event){$textarea.val(code_editor.getValue()).trigger("change")})),clearInterval(interval)}}))}}))},$.fn.spftestimonial_field_fieldset=function(){return this.each((function(){$(this).find(".spftestimonial-fieldset-content").spftestimonial_reload_script()}))},$.fn.spftestimonial_field_repeater=function(){return this.each((function(){var $this=$(this),$fieldset=$this.children(".spftestimonial-fieldset"),$repeater=$fieldset.length?$fieldset:$this,$wrapper=$repeater.children(".spftestimonial-repeater-wrapper"),$hidden=$repeater.children(".spftestimonial-repeater-hidden"),$max=$repeater.children(".spftestimonial-repeater-max"),$min=$repeater.children(".spftestimonial-repeater-min"),field_id=$wrapper.data("field-id"),max=parseInt($wrapper.data("max")),min=parseInt($wrapper.data("min"));$wrapper.children(".spftestimonial-repeater-item").children(".spftestimonial-repeater-content").spftestimonial_reload_script(),$wrapper.sortable({axis:"y",handle:".spftestimonial-repeater-sort",helper:"original",cursor:"move",placeholder:"widget-placeholder",update:function(event,ui){SPFTESTIMONIAL.helper.name_nested_replace($wrapper.children(".spftestimonial-repeater-item"),field_id)}}),$repeater.children(".spftestimonial-repeater-add").on("click",(function(e){e.preventDefault();var count=$wrapper.children(".spftestimonial-repeater-item").length;if($min.hide(),max&&count+1>max)$max.show();else{var $cloned_item=$hidden.spftestimonial_clone(!0);$cloned_item.removeClass("spftestimonial-repeater-hidden"),$cloned_item.find(':input[name!="_pseudo"]').each((function(){this.name=this.name.replace("___","").replace(field_id+"[0]",field_id+"["+count+"]")})),$wrapper.append($cloned_item),$cloned_item.children(".spftestimonial-repeater-content").spftestimonial_reload_script()}}));var event_clone=function(e){e.preventDefault();var count=$wrapper.children(".spftestimonial-repeater-item").length;if($min.hide(),max&&count+1>max)$max.show();else{var $this,$parent=$(this).parent().parent().parent(),$cloned_content=$parent.children(".spftestimonial-repeater-content").spftestimonial_clone(),$cloned_helper=$parent.children(".spftestimonial-repeater-helper").spftestimonial_clone(!0),$cloned_item=$('<div class="spftestimonial-repeater-item" />');$cloned_item.append($cloned_content),$cloned_item.append($cloned_helper),$wrapper.children().eq($parent.index()).after($cloned_item),$cloned_item.children(".spftestimonial-repeater-content").spftestimonial_reload_script(),SPFTESTIMONIAL.helper.name_nested_replace($wrapper.children(".spftestimonial-repeater-item"),field_id)}};$wrapper.children(".spftestimonial-repeater-item").children(".spftestimonial-repeater-helper").on("click",".spftestimonial-repeater-clone",event_clone),$repeater.children(".spftestimonial-repeater-hidden").children(".spftestimonial-repeater-helper").on("click",".spftestimonial-repeater-clone",event_clone);var event_remove=function(e){e.preventDefault();var count=$wrapper.children(".spftestimonial-repeater-item").length;$max.hide(),$min.hide(),min&&count-1<min?$min.show():($(this).closest(".spftestimonial-repeater-item").remove(),SPFTESTIMONIAL.helper.name_nested_replace($wrapper.children(".spftestimonial-repeater-item"),field_id))};$wrapper.children(".spftestimonial-repeater-item").children(".spftestimonial-repeater-helper").on("click",".spftestimonial-repeater-remove",event_remove),$repeater.children(".spftestimonial-repeater-hidden").children(".spftestimonial-repeater-helper").on("click",".spftestimonial-repeater-remove",event_remove)}))},$.fn.spftestimonial_field_sortable=function(){return this.each((function(){var $sortable=$(this).find(".spftestimonial-sortable");$sortable.sortable({axis:"y",helper:"original",cursor:"move",placeholder:"widget-placeholder",update:function(event,ui){}}),$sortable.find(".spftestimonial-sortable-content").spftestimonial_reload_script(),$(".form_fields").find(".spftestimonial-sortable").sortable("disable")}))},$.fn.spftestimonial_field_sorter=function(){return this.each((function(){var $this=$(this),$enabled=$this.find(".spftestimonial-enabled"),$has_disabled=$this.find(".spftestimonial-disabled"),$disabled=!!$has_disabled.length&&$has_disabled;$enabled.sortable({connectWith:$disabled,placeholder:"ui-sortable-placeholder",update:function(event,ui){var $el=ui.item.find("input");ui.item.parent().hasClass("spftestimonial-enabled")?$el.attr("name",$el.attr("name").replace("disabled","enabled")):$el.attr("name",$el.attr("name").replace("enabled","disabled"))}}),$disabled&&$disabled.sortable({connectWith:$enabled,placeholder:"ui-sortable-placeholder",update:function(event,ui){}})}))},$.fn.spftestimonial_field_spinner=function(){return this.each((function(){var $this=$(this),$input=$this.find("input"),$inited=$this.find(".ui-button"),data=$input.data();$inited.length&&$inited.remove(),$input.spinner({min:data.min||0,max:data.max||100,step:data.step||1,create:function(event,ui){data.unit&&$input.after('<span class="ui-button spftestimonial--unit">'+data.unit+"</span>")},spin:function(event,ui){$input.val(ui.value).trigger("change")}})}))},$.fn.spftestimonial_field_switcher=function(){return this.each((function(){var $switcher=$(this).find(".spftestimonial--switcher");$switcher.on("click",(function(){var value=0,$input=$switcher.find("input");$switcher.hasClass("spftestimonial--active")?$switcher.removeClass("spftestimonial--active"):(value=1,$switcher.addClass("spftestimonial--active")),$input.val(value).trigger("change")}))}))},$.fn.spftestimonial_field_typography=function(){return this.each((function(){var base=this,$this=$(this),loaded_fonts=[],webfonts=spftestimonial_typography_json.webfonts,googlestyles=spftestimonial_typography_json.googlestyles,defaultstyles=spftestimonial_typography_json.defaultstyles;base.sanitize_subset=function(subset){return subset=(subset=subset.replace("-ext"," Extended")).charAt(0).toUpperCase()+subset.slice(1)},base.sanitize_style=function(style){return googlestyles[style]?googlestyles[style]:style},base.load_google_font=function(font_family,weight,style){font_family&&"object"==typeof WebFont&&(weight=weight?weight.replace("normal",""):"",style=style?style.replace("normal",""):"",(weight||style)&&(font_family=font_family+":"+weight+style),-1===loaded_fonts.indexOf(font_family)&&WebFont.load({google:{families:[font_family]}}),loaded_fonts.push(font_family))},base.append_select_options=function($select,options,condition,type,is_multi){$select.find("option").not(":first").remove();var opts="";$.each(options,(function(key,value){var selected,name=value;selected=is_multi?condition&&-1!==condition.indexOf(value)?" selected":"":condition&&condition===value?" selected":"","subset"===type?name=base.sanitize_subset(value):"style"===type&&(name=base.sanitize_style(value)),opts+='<option value="'+value+'"'+selected+">"+name+"</option>"})),$select.append(opts).trigger("spftestimonial.change").trigger("chosen:updated")},base.init=function(){var selected_styles=[],$typography=$this.find(".spftestimonial--typography"),$type=$this.find(".spftestimonial--type"),$styles=$this.find(".spftestimonial--block-font-style"),unit=$typography.data("unit"),line_height_unit=$typography.data("line-height-unit"),exclude_fonts=$typography.data("exclude")?$typography.data("exclude").split(","):[],$chosen_selects;$this.find(".spftestimonial--chosen").length&&$this.find("select").each((function(){var $chosen_select=$(this),$chosen_inited=$chosen_select.parent().find(".chosen-container");$chosen_inited.length&&$chosen_inited.remove(),$chosen_select.chosen({allow_single_deselect:!0,disable_search_threshold:15,width:"100%"})}));var $font_family_select=$this.find(".spftestimonial--font-family"),first_font_family=$font_family_select.val();$font_family_select.find("option").not(":first-child").remove();var opts="";$.each(webfonts,(function(type,group){exclude_fonts&&-1!==exclude_fonts.indexOf(type)||(opts+='<optgroup label="'+group.label+'">',$.each(group.fonts,(function(key,value){var selected;opts+='<option value="'+(value="object"==typeof value?key:value)+'" data-type="'+type+'"'+(value===first_font_family?" selected":"")+">"+value+"</option>"})),opts+="</optgroup>")})),$font_family_select.append(opts).trigger("chosen:updated");var $font_style_block=$this.find(".spftestimonial--block-font-style");if($font_style_block.length){var $font_style_select=$this.find(".spftestimonial--font-style-select"),first_style_value=$font_style_select.val()?$font_style_select.val().replace(/normal/g,""):"";$font_style_select.on("change spftestimonial.change",(function(event){var style_value=$font_style_select.val();!style_value&&selected_styles&&-1===selected_styles.indexOf("normal")&&(style_value=selected_styles[0]);var font_normal=style_value&&"italic"!==style_value&&"normal"===style_value?"normal":"",font_weight=style_value&&"italic"!==style_value&&"normal"!==style_value?style_value.replace("italic",""):font_normal,font_style=style_value&&"italic"===style_value.substr(-6)?"italic":"";$this.find(".spftestimonial--font-weight").val(font_weight),$this.find(".spftestimonial--font-style").val(font_style)}));var $extra_font_style_block=$this.find(".spftestimonial--block-extra-styles");if($extra_font_style_block.length)var $extra_font_style_select=$this.find(".spftestimonial--extra-styles"),first_extra_style_value=$extra_font_style_select.val()}var $subset_block=$this.find(".spftestimonial--block-subset");if($subset_block.length)var $subset_select=$this.find(".spftestimonial--subset"),first_subset_select_value=$subset_select.val(),subset_multi_select=$subset_select.data("multiple")||!1;var $backup_font_family_block=$this.find(".spftestimonial--block-backup-font-family");$font_family_select.on("change spftestimonial.change",(function(event){$subset_block.length&&$subset_block.addClass("hidden"),$extra_font_style_block.length&&$extra_font_style_block.addClass("hidden"),$backup_font_family_block.length&&$backup_font_family_block.addClass("hidden");var $selected=$font_family_select.find(":selected"),value=$selected.val(),type=$selected.data("type");if(type&&value){if("google"!==type&&"custom"!==type||!$backup_font_family_block.length||$backup_font_family_block.removeClass("hidden"),$font_style_block.length){var styles=defaultstyles;"google"===type&&webfonts[type].fonts[value][0]?styles=webfonts[type].fonts[value][0]:"custom"===type&&webfonts[type].fonts[value]&&(styles=webfonts[type].fonts[value]),selected_styles=styles;var set_auto_style=-1!==styles.indexOf("normal")?"normal":styles[0],set_style_value=first_style_value&&-1!==styles.indexOf(first_style_value)?first_style_value:set_auto_style;base.append_select_options($font_style_select,styles,set_style_value,"style"),first_style_value=!1,$font_style_block.removeClass("hidden"),"google"===type&&$extra_font_style_block.length&&styles.length>1&&(base.append_select_options($extra_font_style_select,styles,first_extra_style_value,"style",!0),first_extra_style_value=!1,$extra_font_style_block.removeClass("hidden"))}if("google"===type&&$subset_block.length&&webfonts[type].fonts[value][1]){var subsets=webfonts[type].fonts[value][1],set_auto_subset=subsets.length<2&&"latin"!==subsets[0]?subsets[0]:"",set_subset_value=first_subset_select_value&&-1!==subsets.indexOf(first_subset_select_value)?first_subset_select_value:set_auto_subset;set_subset_value=subset_multi_select&&first_subset_select_value?first_subset_select_value:set_subset_value,base.append_select_options($subset_select,subsets,set_subset_value,"subset",subset_multi_select),first_subset_select_value=!1,$subset_block.removeClass("hidden")}}else $styles.find(":input").val(""),$subset_block.length&&($subset_select.find("option").not(":first-child").remove(),$subset_select.trigger("chosen:updated")),$font_style_block.length&&($font_style_select.find("option").not(":first-child").remove(),$font_style_select.trigger("chosen:updated"));$type.val(type)})).trigger("spftestimonial.change");var $preview_block=$this.find(".spftestimonial--block-preview");if($preview_block.length){var $preview=$this.find(".spftestimonial--preview");$this.on("change",SPFTESTIMONIAL.helper.debounce((function(event){$preview_block.removeClass("hidden");var font_family=$font_family_select.val(),font_weight=$this.find(".spftestimonial--font-weight").val(),font_style=$this.find(".spftestimonial--font-style").val(),font_size=$this.find(".spftestimonial--font-size").val(),font_variant=$this.find(".spftestimonial--font-variant").val(),line_height=$this.find(".spftestimonial--line-height").val(),text_align=$this.find(".spftestimonial--text-align").val(),text_transform=$this.find(".spftestimonial--text-transform").val(),text_decoration=$this.find(".spftestimonial--text-decoration").val(),text_color=$this.find(".spftestimonial--color").val(),word_spacing=$this.find(".spftestimonial--word-spacing").val(),letter_spacing=$this.find(".spftestimonial--letter-spacing").val(),custom_style=$this.find(".spftestimonial--custom-style").val(),type;"google"===$this.find(".spftestimonial--type").val()&&base.load_google_font(font_family,font_weight,font_style);var properties={};font_family&&(properties.fontFamily=font_family),font_weight&&(properties.fontWeight=font_weight),font_style&&(properties.fontStyle=font_style),font_variant&&(properties.fontVariant=font_variant),font_size&&(properties.fontSize=font_size+unit),line_height&&(properties.lineHeight=line_height+line_height_unit),letter_spacing&&(properties.letterSpacing=letter_spacing+unit),word_spacing&&(properties.wordSpacing=word_spacing+unit),text_align&&(properties.textAlign=text_align),text_transform&&(properties.textTransform=text_transform),text_decoration&&(properties.textDecoration=text_decoration),text_color&&(properties.color=text_color),$preview.removeAttr("style"),custom_style&&$preview.attr("style",custom_style),$preview.css(properties)}),100)),$preview_block.on("click",(function(){$preview.toggleClass("spftestimonial--black-background");var $toggle=$preview_block.find(".spftestimonial--toggle");$toggle.hasClass("fa-toggle-off")?$toggle.removeClass("fa-toggle-off").addClass("fa-toggle-on"):$toggle.removeClass("fa-toggle-on").addClass("fa-toggle-off")})),$preview_block.hasClass("hidden")||$this.trigger("change")}},base.init()}))},$.fn.spftestimonial_confirm=function(){return this.each((function(){$(this).on("click",(function(e){var confirm_text=$(this).data("confirm")||window.spftestimonial_vars.i18n.confirm,confirm_answer;if(!confirm(confirm_text))return e.preventDefault(),!1;SPFTESTIMONIAL.vars.is_confirm=!0,SPFTESTIMONIAL.vars.form_modified=!1}))}))},$.fn.serializeObject=function(){var obj={};return $.each(this.serializeArray(),(function(i,o){var n=o.name,v=o.value;obj[n]=void 0===obj[n]?v:$.isArray(obj[n])?obj[n].concat(v):[obj[n],v]})),obj},$.fn.spftestimonial_save=function(){return this.each((function(){var $this=$(this),$buttons=$(".spftestimonial-save"),$panel=$(".spftestimonial-options"),flooding=!1,timeout;$this.on("click",(function(e){if(!flooding){var $text=$this.data("save"),$value=$this.val();$buttons.attr("value",$text),$this.hasClass("spftestimonial-save-ajax")?(e.preventDefault(),$panel.addClass("spftestimonial-saving"),$buttons.prop("disabled",!0),window.wp.ajax.post("spftestimonial_"+$panel.data("unique")+"_ajax_save",{data:$("#spftestimonial-form").serializeJSONSPFTESTIMONIAL()}).done((function(response){if($(".spftestimonial-error").remove(),Object.keys(response.errors).length){var error_icon='<i class="spftestimonial-label-error spftestimonial-error">!</i>';$.each(response.errors,(function(key,error_message){var $field=$('[data-depend-id="'+key+'"]'),$link=$('a[href="#tab='+$field.closest(".spftestimonial-section").data("section-id")+'"]'),$tab=$link.closest(".spftestimonial-tab-item");$field.closest(".spftestimonial-fieldset").append('<p class="spftestimonial-error spftestimonial-error-text">'+error_message+"</p>"),$link.find(".spftestimonial-error").length||$link.append(error_icon),$tab.find(".spftestimonial-arrow .spftestimonial-error").length||$tab.find(".spftestimonial-arrow").append(error_icon)}))}$panel.removeClass("spftestimonial-saving"),$buttons.prop("disabled",!0).attr("value","Changes Saved"),flooding=!1,SPFTESTIMONIAL.vars.form_modified=!1,SPFTESTIMONIAL.vars.$form_warning.hide(),clearTimeout(timeout);var $result_success=$(".spftestimonial-form-success");$result_success.empty().append(response.notice).fadeIn("fast",(function(){timeout=setTimeout((function(){$result_success.fadeOut("fast")}),1e3)}))})).fail((function(response){alert(response.error)}))):SPFTESTIMONIAL.vars.form_modified=!1}flooding=!0}))}))},$.fn.spftestimonial_options=function(){return this.each((function(){var $this=$(this),$content=$this.find(".spftestimonial-content"),$form_success=$this.find(".spftestimonial-form-success"),$form_warning=$this.find(".spftestimonial-form-warning"),$save_button=$this.find(".spftestimonial-header .spftestimonial-save");SPFTESTIMONIAL.vars.$form_warning=$form_warning,$form_warning.length&&(window.onbeforeunload=function(){return!!SPFTESTIMONIAL.vars.form_modified||void 0},$content.on("change keypress",":input",(function(){SPFTESTIMONIAL.vars.form_modified||($form_success.hide(),$form_warning.fadeIn("fast"),SPFTESTIMONIAL.vars.form_modified=!0)}))),$form_success.hasClass("spftestimonial-form-show")&&setTimeout((function(){$form_success.fadeOut("fast")}),1e3),$(document).keydown((function(event){if((event.ctrlKey||event.metaKey)&&83===event.which)return $save_button.trigger("click"),event.preventDefault(),!1}))}))},"function"==typeof Color&&(Color.prototype.toString=function(){if(this._alpha<1)return this.toCSS("rgba",this._alpha).replace(/\s+/g,"");var hex=parseInt(this._color,10).toString(16);if(this.error)return"";if(hex.length<6)for(var i=6-hex.length-1;i>=0;i--)hex="0"+hex;return"#"+hex}),SPFTESTIMONIAL.funcs.parse_color=function(color){var value=color.replace(/\s+/g,""),trans=-1!==value.indexOf("rgba")?parseFloat(100*value.replace(/^.*,(.+)\)/,"$1")):100,rgba;return{value:value,transparent:trans,rgba:trans<100}},$.fn.spftestimonial_color=function(){return this.each((function(){var $input=$(this),picker_color=SPFTESTIMONIAL.funcs.parse_color($input.val()),palette_color=!window.spftestimonial_vars.color_palette.length||window.spftestimonial_vars.color_palette,$container;$input.hasClass("wp-color-picker")&&$input.closest(".wp-picker-container").after($input).remove(),$input.wpColorPicker({palettes:palette_color,change:function(event,ui){var ui_color_value=ui.color.toString();$container.removeClass("spftestimonial--transparent-active"),$container.find(".spftestimonial--transparent-offset").css("background-color",ui_color_value),$input.val(ui_color_value).trigger("change")},create:function(){$container=$input.closest(".wp-picker-container");var a8cIris=$input.data("a8cIris"),$transparent_wrap=$('<div class="spftestimonial--transparent-wrap"><div class="spftestimonial--transparent-slider"></div><div class="spftestimonial--transparent-offset"></div><div class="spftestimonial--transparent-text"></div><div class="spftestimonial--transparent-button">transparent <i class="fa fa-toggle-off"></i></div></div>').appendTo($container.find(".wp-picker-holder")),$transparent_slider=$transparent_wrap.find(".spftestimonial--transparent-slider"),$transparent_text=$transparent_wrap.find(".spftestimonial--transparent-text"),$transparent_offset=$transparent_wrap.find(".spftestimonial--transparent-offset"),$transparent_button=$transparent_wrap.find(".spftestimonial--transparent-button");"transparent"===$input.val()&&$container.addClass("spftestimonial--transparent-active"),$transparent_button.on("click",(function(){"transparent"!==$input.val()?($input.val("transparent").trigger("change").removeClass("iris-error"),$container.addClass("spftestimonial--transparent-active")):($input.val(a8cIris._color.toString()).trigger("change"),$container.removeClass("spftestimonial--transparent-active"))})),$transparent_slider.slider({value:picker_color.transparent,step:1,min:0,max:100,slide:function(event,ui){var slide_value=parseFloat(ui.value/100);a8cIris._color._alpha=slide_value,$input.wpColorPicker("color",a8cIris._color.toString()),$transparent_text.text(1===slide_value||0===slide_value?"":slide_value)},create:function(){var slide_value=parseFloat(picker_color.transparent/100),text_value=slide_value<1?slide_value:"";$transparent_text.text(text_value),$transparent_offset.css("background-color",picker_color.value),$container.on("click",".wp-picker-clear",(function(){a8cIris._color._alpha=1,$transparent_text.text(""),$transparent_slider.slider("option","value",100),$container.removeClass("spftestimonial--transparent-active"),$input.trigger("change")})),$container.on("click",".wp-picker-default",(function(){var default_color=SPFTESTIMONIAL.funcs.parse_color($input.data("default-color")),default_value=parseFloat(default_color.transparent/100),default_text=default_value<1?default_value:"";a8cIris._color._alpha=default_value,$transparent_text.text(default_text),$transparent_slider.slider("option","value",default_color.transparent),"transparent"===default_color.value&&($input.removeClass("iris-error"),$container.addClass("spftestimonial--transparent-active"))}))}})}})}))},$.fn.spftestimonial_chosen=function(){return this.each((function(){var $this=$(this),$inited=$this.parent().find(".chosen-container"),is_sortable=$this.hasClass("spftestimonial-chosen-sortable")||!1,is_ajax=$this.hasClass("spftestimonial-chosen-ajax")||!1,is_multiple=$this.attr("multiple")||!1,set_width=is_multiple?"100%":"auto",set_options=$.extend({allow_single_deselect:!0,disable_search_threshold:10,width:set_width,no_results_text:window.spftestimonial_vars.i18n.no_results_text},$this.data("chosen-settings"));if($inited.length&&$inited.remove(),is_ajax){var set_ajax_options=$.extend({data:{type:"post",nonce:""},allow_single_deselect:!0,disable_search_threshold:-1,width:"100%",min_length:3,type_delay:500,typing_text:window.spftestimonial_vars.i18n.typing_text,searching_text:window.spftestimonial_vars.i18n.searching_text,no_results_text:window.spftestimonial_vars.i18n.no_results_text},$this.data("chosen-settings"));$this.SPFTESTIMONIALAjaxChosen(set_ajax_options)}else $this.chosen(set_options);if(is_multiple){var $hidden_select=$this.parent().find(".spftestimonial-hide-select"),$hidden_value=$hidden_select.val()||[];$this.on("change",(function(obj,result){result&&result.selected?$hidden_select.append('<option value="'+result.selected+'" selected="selected">'+result.selected+"</option>"):result&&result.deselected&&$hidden_select.find('option[value="'+result.deselected+'"]').remove(),void 0!==window.wp.customize&&0===$hidden_select.children().length&&$hidden_select.data("customize-setting-link")&&window.wp.customize.control($hidden_select.data("customize-setting-link")).setting.set(""),$hidden_select.trigger("change")})),$this.SPFTESTIMONIALChosenOrder($hidden_value,!0)}if(is_sortable){var $chosen_container,$chosen_choices=$this.parent().find(".chosen-container").find(".chosen-choices");$chosen_choices.bind("mousedown",(function(event){$(event.target).is("span")&&event.stopPropagation()})),$chosen_choices.sortable({items:"li:not(.search-field)",helper:"orginal",cursor:"move",placeholder:"search-choice-placeholder",start:function(e,ui){ui.placeholder.width(ui.item.innerWidth()),ui.placeholder.height(ui.item.innerHeight())},update:function(e,ui){var select_options="",chosen_object=$this.data("chosen"),$prev_select=$this.parent().find(".spftestimonial-hide-select");$chosen_choices.find(".search-choice-close").each((function(){var option_array_index=$(this).data("option-array-index");$.each(chosen_object.results_data,(function(index,data){data.array_index===option_array_index&&(select_options+='<option value="'+data.value+'" selected>'+data.value+"</option>")}))})),$prev_select.children().remove(),$prev_select.append(select_options),$prev_select.trigger("change")}})}}))},$.fn.spftestimonial_checkbox=function(){return this.each((function(){var $this=$(this),$input=$this.find(".spftestimonial--input"),$checkbox=$this.find(".spftestimonial--checkbox");$checkbox.on("click",(function(){$input.val(Number($checkbox.prop("checked"))).trigger("change")}))}))},$.fn.spftestimonial_siblings=function(){return this.each((function(){var $this=$(this),$siblings=$this.find(".spftestimonial--sibling"),multiple=$this.data("multiple")||!1;$siblings.on("click",(function(){var $sibling=$(this);multiple?$sibling.hasClass("spftestimonial--active")?($sibling.removeClass("spftestimonial--active"),$sibling.find("input").prop("checked",!1).trigger("change")):($sibling.addClass("spftestimonial--active"),$sibling.find("input").prop("checked",!0).trigger("change")):($this.find("input").prop("checked",!1),$sibling.find("input").prop("checked",!0).trigger("change"),$sibling.addClass("spftestimonial--active").siblings().removeClass("spftestimonial--active"))}))}))},$.fn.spftestimonial_help=function(){return this.each((function(){var $this=$(this),$tooltip,offset_left;$this.on({mouseenter:function(){$tooltip=$('<div class="spftestimonial-tooltip"></div>').html($this.find(".spftestimonial-help-text").html()).appendTo("body"),offset_left=SPFTESTIMONIAL.vars.is_rtl?$this.offset().left-$tooltip.outerWidth():$this.offset().left+24,$tooltip.css({top:$this.offset().top-($tooltip.outerHeight()/2-14),left:offset_left})},mouseleave:function(){void 0!==$tooltip&&$tooltip.remove()}})}))},SPFTESTIMONIAL.vars.$window.on("resize spftestimonial.resize",SPFTESTIMONIAL.helper.debounce((function(event){var window_width;(navigator.userAgent.indexOf("AppleWebKit/")>-1?SPFTESTIMONIAL.vars.$window.width():window.innerWidth)<=782&&!SPFTESTIMONIAL.vars.onloaded&&($(".spftestimonial-section").spftestimonial_reload_script(),SPFTESTIMONIAL.vars.onloaded=!0)}),200)).trigger("spftestimonial.resize"),$.fn.spftestimonial_reload_script=function(options){var settings=$.extend({dependency:!0},options);return this.each((function(){var $this=$(this);$this.data("inited")||($this.children(".spftestimonial-field-accordion:not(.tfree_pro_only)").spftestimonial_field_accordion(),$this.children(".spftestimonial-field-code_editor").spftestimonial_field_code_editor(),$this.children(".spftestimonial-field-fieldset").spftestimonial_field_fieldset(),$this.children(".spftestimonial-field-repeater").spftestimonial_field_repeater(),$this.children(".spftestimonial-field-sortable").spftestimonial_field_sortable(),$this.children(".spftestimonial-field-sorter").spftestimonial_field_sorter(),$this.children(".spftestimonial-field-spinner").spftestimonial_field_spinner(),$this.children(".spftestimonial-field-switcher").spftestimonial_field_switcher(),$this.children(".spftestimonial-field-typography").spftestimonial_field_typography(),$this.children(".spftestimonial-field-border").find(".spftestimonial-color").spftestimonial_color(),$this.children(".spftestimonial-field-background").find(".spftestimonial-color").spftestimonial_color(),$this.children(".spftestimonial-field-color").find(".spftestimonial-color").spftestimonial_color(),$this.children(".spftestimonial-field-color_group").find(".spftestimonial-color").spftestimonial_color(),$this.children(".spftestimonial-field-link_color").find(".spftestimonial-color").spftestimonial_color(),$this.children(".spftestimonial-field-typography").find(".spftestimonial-color").spftestimonial_color(),$this.children(".spftestimonial-field-select").find(".spftestimonial-chosen").spftestimonial_chosen(),$this.children(".spftestimonial-field-checkbox").find(".spftestimonial-checkbox").spftestimonial_checkbox(),$this.children(".spftestimonial-field-button_set").find(".spftestimonial-siblings").spftestimonial_siblings(),$this.children(".spftestimonial-field-image_select, .spftestimonial-field-icon_select").find(".spftestimonial-siblings").spftestimonial_siblings(),$this.children(".spftestimonial-field-palette").find(".spftestimonial-siblings").spftestimonial_siblings(),$this.children(".spftestimonial-field").find(".spftestimonial-help").spftestimonial_help(),settings.dependency&&$this.spftestimonial_dependency(),$this.data("inited",!0),$(document).trigger("spftestimonial-reload-script",$this))}))},$(document).ready((function(){$(".spftestimonial-save").spftestimonial_save(),$(".spftestimonial-options").spftestimonial_options(),$(".spftestimonial-sticky-header").spftestimonial_sticky(),$(".spftestimonial-nav-options").spftestimonial_nav_options(),$(".spftestimonial-nav-metabox").spftestimonial_nav_metabox(),$(".spftestimonial-search").spftestimonial_search(),$(".spftestimonial-confirm").spftestimonial_confirm(),$(".spftestimonial-expand-all").spftestimonial_expand_all(),$(".spftestimonial-onload").spftestimonial_reload_script()})),$(document).on("click","#sp_tpro-show-preview:contains(Hide)",(function(e){var _this;e.preventDefault(),$(this).html('<i class="fa fa-eye" aria-hidden="true"></i> Show Preview'),preview_box.html(""),preview_display.hide()}));var preview_box=$("#sp_tpro-preview-box"),preview_display=$("#sp_tpro_live_preview").hide(),action="sp_tpro_preview_meta_box",nonce=$("#spftestimonial_metabox_noncesp_tpro_shortcode_options").val(),previewJS=window.spftestimonial_vars.previewJS;function spftestimonial_copyToClipboard(element){var $temp=$("<input>");$("body").append($temp),$temp.val($(element).text()).select(),document.execCommand("copy"),$temp.remove()}function spftestimonial_SelectText(element){var r=document.createRange(),w=element.get(0);r.selectNodeContents(w);var sel=window.getSelection();sel.removeAllRanges(),sel.addRange(r)}$(document).on("click","#sp_tpro-show-preview:not(:contains(Hide))",(function(e){e.preventDefault();var _data=$("form#post").serialize(),_this=$(this),data={action:action,data:_data,ajax_nonce:nonce};$.ajax({type:"POST",url:ajaxurl,data:data,error:function(response){console.log(response)},success:function(response){preview_display.show(),preview_box.html(response),$.getScript(previewJS,(function(){_this.html('<i class="fa fa-eye-slash" aria-hidden="true"></i> Hide Preview'),$(document).on("keyup change",(function(e){e.preventDefault(),_this.html('<i class="fa fa-refresh" aria-hidden="true"></i> Update Preview')})),$("html, body").animate({scrollTop:preview_display.offset().top-50},"slow")})),$(".tfree-preloader").animate({opacity:1},600).hide()}})})),$(".trpo-copy-btn,.tpro-sc-code,.spftestimonial-shortcode-selectable").click((function(e){e.preventDefault(),spftestimonial_copyToClipboard($(this)),spftestimonial_SelectText($(this)),$(this).focus().select(),$(".sptpro-after-copy-text").animate({opacity:1,bottom:25},300),setTimeout((function(){jQuery(".sptpro-after-copy-text").animate({opacity:0},200),jQuery(".sptpro-after-copy-text").animate({bottom:0},0)}),2e3)})),$(".stpro_input").click((function(e){var copyText;e.preventDefault(),$(this).select(),document.execCommand("copy"),$(".sptpro-after-copy-text").animate({opacity:1,bottom:25},300),setTimeout((function(){jQuery(".sptpro-after-copy-text").animate({opacity:0},200),jQuery(".sptpro-after-copy-text").animate({bottom:0},0)}),2e3)}));var $export_type=$(".spt_what_export").find("input:checked").val();function isValidJSONString(str){try{JSON.parse(str)}catch(e){return!1}return!0}$(".spt_what_export").on("change",(function(){$export_type=$(this).find("input:checked").val()})),$(".spt_export .spftestimonial--button").click((function(event){event.preventDefault();var $shortcode_ids=$(".spt_post_id select").val(),$forms_ids=$(".spt_post_forms_id select").val(),$ex_nonce=$("#spftestimonial_options_noncesp_testimonial_pro_tools").val();if("all_testimonial"===$export_type)var data={action:"spt_export_shortcodes",lcp_ids:"all_testimonial",nonce:$ex_nonce};else if("all_spt_shortcodes"===$export_type)var data={action:"spt_export_shortcodes",lcp_ids:"all_spt_shortcodes",nonce:$ex_nonce};else if("all_spt_form"===$export_type)var data={action:"spt_export_shortcodes",lcp_ids:"all_spt_form",nonce:$ex_nonce};else if("selected_spt_shortcodes"===$export_type)var data={action:"spt_export_shortcodes",lcp_ids:$shortcode_ids,text_ids:"select_shortcodes",nonce:$ex_nonce};else if("selected_spt_form"===$export_type)var data={action:"spt_export_shortcodes",lcp_ids:$forms_ids,text_ids:"select_forms",nonce:$ex_nonce};else $(".spftestimonial-form-result.spftestimonial-form-success").text("No group selected.").show(),setTimeout((function(){$(".spftestimonial-form-result.spftestimonial-form-success").hide().text("")}),3e3);$.post(ajaxurl,data,(function(resp){if(resp){if(isValidJSONString(resp))var json=JSON.stringify(JSON.parse(resp));else var json=JSON.stringify(resp);json=[json];var blob=new Blob(json),link=document.createElement("a"),lcp_time=$.now();link.href=window.URL.createObjectURL(blob),link.download="testtimonial-pro-export-"+lcp_time+".json",link.click(),$(".spftestimonial-form-result.spftestimonial-form-success").text("Exported successfully!").show(),setTimeout((function(){$(".spftestimonial-form-result.spftestimonial-form-success").hide().text(""),$(".spt_post_id select").val("").trigger("chosen:updated"),$(".spt_post_forms_id select").val("").trigger("chosen:updated")}),3e3)}}))})),$(".spt_import button.import").click((function(event){event.preventDefault();var lcp_shortcodes=$("#import").prop("files")[0];if(""!=$("#import").val()){var $im_nonce=$("#spftestimonial_options_noncesp_testimonial_pro_tools").val(),reader=new FileReader;reader.readAsText(lcp_shortcodes),reader.onload=function(event){var jsonObj=JSON.stringify(event.target.result);$.ajax({url:ajaxurl,type:"POST",data:{shortcode:jsonObj,action:"spt_import_shortcodes",nonce:$im_nonce},success:function(resp){$(".spftestimonial-form-result.spftestimonial-form-success").text("Imported successfully!").show(),setTimeout((function(){$(".spftestimonial-form-result.spftestimonial-form-success").hide().text(""),$("#import").val(""),"spt_testimonial"===resp.data?window.location.replace($("#spt_testimonial_link_redirect").attr("href")):"spt_testimonial_form"===resp.data?window.location.replace($("#spt_forms_link_redirect").attr("href")):window.location.replace($("#spt_shortcode_link_redirect").attr("href"))}),2e3)}})}}else $(".spftestimonial-form-result.spftestimonial-form-success").text("No exported json file chosen.").show(),setTimeout((function(){$(".spftestimonial-form-result.spftestimonial-form-success").hide().text("")}),3e3)})),$(document).on("keyup change",".spftestimonial-options #spftestimonial-form",(function(e){e.preventDefault(),$(this).find(".spftestimonial-save.spftestimonial-save-ajax").attr("value","Save Settings").attr("disabled",!1)})),$("select option:contains((Pro))").attr("disabled",!0).css("opacity","0.8"),$("label:contains((Pro))").css({"pointer-events":"none"}).css("opacity","0.8")}(jQuery,window,document);
admin/views/framework/classes/SPFTESTIMONIAL.php ADDED
@@ -0,0 +1,745 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Framework setup.class file.
4
+ *
5
+ * @link https://shapedplugin.com
6
+ * @since 2.0.0
7
+ *
8
+ * @package Testimonial_Free
9
+ * @subpackage Testimonial_Free/framework
10
+ */
11
+
12
+ if ( ! defined( 'ABSPATH' ) ) {
13
+ die; } // Cannot access directly.
14
+
15
+ /**
16
+ *
17
+ * Setup Class.
18
+ *
19
+ * @since 1.0.0
20
+ * @version 1.0.0
21
+ */
22
+ class SPFTESTIMONIAL {
23
+
24
+ /**
25
+ * Premium.
26
+ *
27
+ * @var boolean
28
+ */
29
+ public static $premium = true;
30
+ /**
31
+ * Version.
32
+ *
33
+ * @var string
34
+ */
35
+ public static $version = '2.2.4';
36
+ /**
37
+ * Dir.
38
+ *
39
+ * @var string
40
+ */
41
+ public static $dir = '';
42
+ /**
43
+ * Url.
44
+ *
45
+ * @var string
46
+ */
47
+ public static $url = '';
48
+ /**
49
+ * CSS.
50
+ *
51
+ * @var string
52
+ */
53
+ public static $css = '';
54
+ /**
55
+ * File.
56
+ *
57
+ * @var string
58
+ */
59
+ public static $file = '';
60
+ /**
61
+ * Enqueue.
62
+ *
63
+ * @var boolean
64
+ */
65
+ public static $enqueue = false;
66
+ /**
67
+ * Webfonts.
68
+ *
69
+ * @var array
70
+ */
71
+ public static $webfonts = array();
72
+ /**
73
+ * Subsets.
74
+ *
75
+ * @var array
76
+ */
77
+ public static $subsets = array();
78
+ /**
79
+ * Inited.
80
+ *
81
+ * @var array
82
+ */
83
+ public static $inited = array();
84
+ /**
85
+ * Fields.
86
+ *
87
+ * @var array
88
+ */
89
+ public static $fields = array();
90
+ /**
91
+ * Args.
92
+ *
93
+ * @var array
94
+ */
95
+ public static $args = array(
96
+ 'admin_options' => array(),
97
+ 'customize_options' => array(),
98
+ 'metabox_options' => array(),
99
+ 'nav_menu_options' => array(),
100
+ 'profile_options' => array(),
101
+ 'taxonomy_options' => array(),
102
+ 'widget_options' => array(),
103
+ 'comment_options' => array(),
104
+ 'shortcode_options' => array(),
105
+ );
106
+
107
+ /**
108
+ * Shortcode instances.
109
+ *
110
+ * @var array
111
+ */
112
+ public static $shortcode_instances = array();
113
+ /**
114
+ * Instance.
115
+ *
116
+ * @var string
117
+ */
118
+ private static $instance = null;
119
+
120
+ /**
121
+ * Init
122
+ *
123
+ * @param mixed $file files.
124
+ * @return statement
125
+ */
126
+ public static function init( $file = __FILE__ ) {
127
+
128
+ // Set file constant.
129
+ self::$file = $file;
130
+
131
+ // Set constants.
132
+ self::constants();
133
+
134
+ // Include files.
135
+ self::includes();
136
+
137
+ if ( is_null( self::$instance ) ) {
138
+ self::$instance = new self();
139
+ }
140
+
141
+ return self::$instance;
142
+
143
+ }
144
+
145
+ /**
146
+ * Construct of the class.
147
+ *
148
+ * @return void
149
+ */
150
+ public function __construct() {
151
+
152
+ // Init action.
153
+ do_action( 'spftestimonial_init' );
154
+
155
+ // Setup textdomain.
156
+ // self::textdomain();
157
+
158
+ add_action( 'after_setup_theme', array( $this, 'setup' ) );
159
+ add_action( 'init', array( $this, 'setup' ) );
160
+ add_action( 'switch_theme', array( $this, 'setup' ) );
161
+ add_action( 'admin_enqueue_scripts', array( $this, 'add_admin_enqueue_scripts' ) );
162
+ add_action( 'wp_enqueue_scripts', array( $this, 'add_typography_enqueue_styles' ), 80 );
163
+ add_action( 'wp_head', array( $this, 'add_custom_css' ), 80 );
164
+ add_filter( 'admin_body_class', array( $this, 'add_admin_body_class' ) );
165
+
166
+ }
167
+
168
+ /**
169
+ * Setup
170
+ *
171
+ * @return void
172
+ */
173
+ public static function setup() {
174
+
175
+ // Configs.
176
+ self::include_plugin_file( 'configs/metaboxs.php' );
177
+ self::include_plugin_file( 'configs/settings.php' );
178
+ self::include_plugin_file( 'configs/tools.php' );
179
+
180
+ // Setup admin option framework.
181
+ $params = array();
182
+ if ( class_exists( 'SPFTESTIMONIAL_Options' ) && ! empty( self::$args['admin_options'] ) ) {
183
+ foreach ( self::$args['admin_options'] as $key => $value ) {
184
+ if ( ! empty( self::$args['sections'][ $key ] ) && ! isset( self::$inited[ $key ] ) ) {
185
+
186
+ $params['args'] = $value;
187
+ $params['sections'] = self::$args['sections'][ $key ];
188
+ self::$inited[ $key ] = true;
189
+
190
+ \SPFTESTIMONIAL_Options::instance( $key, $params );
191
+
192
+ if ( ! empty( $value['show_in_customizer'] ) ) {
193
+ $value['output_css'] = false;
194
+ $value['enqueue_webfont'] = false;
195
+ self::$args['customize_options'][ $key ] = $value;
196
+ self::$inited[ $key ] = null;
197
+ }
198
+ }
199
+ }
200
+ }
201
+
202
+ // Setup metabox option framework.
203
+ $params = array();
204
+ if ( class_exists( 'SPFTESTIMONIAL_Metabox' ) && ! empty( self::$args['metabox_options'] ) ) {
205
+ foreach ( self::$args['metabox_options'] as $key => $value ) {
206
+ if ( ! empty( self::$args['sections'][ $key ] ) && ! isset( self::$inited[ $key ] ) ) {
207
+
208
+ $params['args'] = $value;
209
+ $params['sections'] = self::$args['sections'][ $key ];
210
+ self::$inited[ $key ] = true;
211
+
212
+ \SPFTESTIMONIAL_Metabox::instance( $key, $params );
213
+
214
+ }
215
+ }
216
+ }
217
+
218
+ // Setup comment option framework.
219
+ $params = array();
220
+ if ( class_exists( 'SPFTESTIMONIAL_Comment_Metabox' ) && ! empty( self::$args['comment_options'] ) ) {
221
+ foreach ( self::$args['comment_options'] as $key => $value ) {
222
+ if ( ! empty( self::$args['sections'][ $key ] ) && ! isset( self::$inited[ $key ] ) ) {
223
+
224
+ $params['args'] = $value;
225
+ $params['sections'] = self::$args['sections'][ $key ];
226
+ self::$inited[ $key ] = true;
227
+
228
+ \SPFTESTIMONIAL_Comment_Metabox::instance( $key, $params );
229
+
230
+ }
231
+ }
232
+ }
233
+ do_action( 'spftestimonial_loaded' );
234
+
235
+ }
236
+
237
+ // Create options.
238
+ public static function createOptions( $id, $args = array() ) {
239
+ self::$args['admin_options'][ $id ] = $args;
240
+ }
241
+
242
+ // Create metabox options.
243
+ public static function createMetabox( $id, $args = array() ) {
244
+ self::$args['metabox_options'][ $id ] = $args;
245
+ }
246
+
247
+ // Create comment metabox.
248
+ public static function createCommentMetabox( $id, $args = array() ) {
249
+ self::$args['comment_options'][ $id ] = $args;
250
+ }
251
+
252
+ // Create section.
253
+ public static function createSection( $id, $sections ) {
254
+ self::$args['sections'][ $id ][] = $sections;
255
+ self::set_used_fields( $sections );
256
+ }
257
+
258
+ /**
259
+ * Constants
260
+ *
261
+ * @return void
262
+ */
263
+ public static function constants() {
264
+
265
+ // We need this path-finder code for set URL of framework.
266
+ $dirname = str_replace( '//', '/', wp_normalize_path( dirname( dirname( self::$file ) ) ) );
267
+ $theme_dir = str_replace( '//', '/', wp_normalize_path( get_parent_theme_file_path() ) );
268
+ $plugin_dir = str_replace( '//', '/', wp_normalize_path( WP_PLUGIN_DIR ) );
269
+ $plugin_dir = str_replace( '/opt/bitnami', '/bitnami', $plugin_dir );
270
+ $located_plugin = ( preg_match( '#' . self::sanitize_dirname( $plugin_dir ) . '#', self::sanitize_dirname( $dirname ) ) ) ? true : false;
271
+ $directory = ( $located_plugin ) ? $plugin_dir : $theme_dir;
272
+ $directory_uri = ( $located_plugin ) ? WP_PLUGIN_URL : get_parent_theme_file_uri();
273
+ $foldername = str_replace( $directory, '', $dirname );
274
+ $protocol_uri = ( is_ssl() ) ? 'https' : 'http';
275
+ $directory_uri = set_url_scheme( $directory_uri, $protocol_uri );
276
+
277
+ self::$dir = $dirname;
278
+ self::$url = $directory_uri . $foldername;
279
+
280
+ }
281
+
282
+ /**
283
+ * Include plugin files.
284
+ *
285
+ * @param mixed $file file.
286
+ * @param mixed $load load.
287
+ * @return array
288
+ */
289
+ public static function include_plugin_file( $file, $load = true ) {
290
+
291
+ $path = '';
292
+ $file = ltrim( $file, '/' );
293
+ $override = apply_filters( 'spftestimonial_override', 'spftestimonial-override' );
294
+
295
+ if ( file_exists( get_parent_theme_file_path( $override . '/' . $file ) ) ) {
296
+ $path = get_parent_theme_file_path( $override . '/' . $file );
297
+ } elseif ( file_exists( get_theme_file_path( $override . '/' . $file ) ) ) {
298
+ $path = get_theme_file_path( $override . '/' . $file );
299
+ } elseif ( file_exists( self::$dir . '/' . $override . '/' . $file ) ) {
300
+ $path = self::$dir . '/' . $override . '/' . $file;
301
+ } elseif ( file_exists( self::$dir . '/' . $file ) ) {
302
+ $path = self::$dir . '/' . $file;
303
+ }
304
+
305
+ if ( ! empty( $path ) && ! empty( $file ) && $load ) {
306
+
307
+ global $wp_query;
308
+
309
+ if ( is_object( $wp_query ) && function_exists( 'load_template' ) ) {
310
+
311
+ load_template( $path, true );
312
+
313
+ } else {
314
+
315
+ require_once $path;
316
+
317
+ }
318
+ } else {
319
+
320
+ return self::$dir . '/' . $file;
321
+
322
+ }
323
+
324
+ }
325
+
326
+ /**
327
+ * Is active plugin
328
+ *
329
+ * @param mixed $file file.
330
+ * @return statement
331
+ */
332
+ public static function is_active_plugin( $file = '' ) {
333
+ return in_array( $file, (array) get_option( 'active_plugins', array() ) );
334
+ }
335
+
336
+ /**
337
+ * Sanitize dirname.
338
+ *
339
+ * @param mixed $dirname dirname.
340
+ * @return statement
341
+ */
342
+ public static function sanitize_dirname( $dirname ) {
343
+ return preg_replace( '/[^A-Za-z]/', '', $dirname );
344
+ }
345
+
346
+ /**
347
+ * Set plugin url.
348
+ *
349
+ * @param mixed $file file.
350
+ * @return string
351
+ */
352
+ public static function include_plugin_url( $file ) {
353
+ return esc_url( self::$url ) . '/' . ltrim( $file, '/' );
354
+ }
355
+
356
+ /**
357
+ * General includes.
358
+ *
359
+ * @return void
360
+ */
361
+ public static function includes() {
362
+
363
+ // Helpers.
364
+ self::include_plugin_file( 'functions/actions.php' );
365
+ self::include_plugin_file( 'functions/helpers.php' );
366
+ self::include_plugin_file( 'functions/sanitize.php' );
367
+ self::include_plugin_file( 'functions/validate.php' );
368
+
369
+ // Includes free version classes.
370
+ self::include_plugin_file( 'classes/abstract.class.php' );
371
+ self::include_plugin_file( 'classes/fields.class.php' );
372
+ self::include_plugin_file( 'classes/options.class.php' );
373
+ self::include_plugin_file( 'classes/metabox.class.php' );
374
+
375
+ // Include all framework fields.
376
+ $fields = apply_filters(
377
+ 'spftestimonial_fields',
378
+ array(
379
+ 'accordion',
380
+ 'border',
381
+ 'button_set',
382
+ 'checkbox',
383
+ 'code_editor',
384
+ 'color',
385
+ 'color_group',
386
+ 'column',
387
+ 'content',
388
+ 'custom_import',
389
+ 'custom_size',
390
+ 'fieldset',
391
+ 'form_upper_section',
392
+ 'heading',
393
+ 'icon_select',
394
+ 'image_select',
395
+ 'image_sizes',
396
+ 'notice',
397
+ 'preview',
398
+ 'radio',
399
+ 'rating',
400
+ 'repeater',
401
+ 'select',
402
+ 'select_f',
403
+ 'sortable',
404
+ 'sorter',
405
+ 'spacing',
406
+ 'spinner',
407
+ 'subheading',
408
+ 'submessage',
409
+ 'shortcode',
410
+ 'switcher',
411
+ 'text',
412
+ 'typography',
413
+ )
414
+ );
415
+
416
+ if ( ! empty( $fields ) ) {
417
+ foreach ( $fields as $field ) {
418
+ if ( ! class_exists( 'SPFTESTIMONIAL_Field_' . $field ) && class_exists( 'SPFTESTIMONIAL_Fields' ) ) {
419
+ self::include_plugin_file( 'fields/' . $field . '/' . $field . '.php' );
420
+ }
421
+ }
422
+ }
423
+
424
+ }
425
+
426
+ /**
427
+ * Textdomain
428
+ *
429
+ * @return void
430
+ */
431
+ // public static function textdomain() {
432
+ // load_textdomain( 'spftestimonial', self::$dir . '/languages/' . get_locale() . '.mo' );
433
+ // }
434
+
435
+ /**
436
+ * Get all of fields.
437
+ *
438
+ * @param mixed $sections sections.
439
+ * @return void
440
+ */
441
+ public static function set_used_fields( $sections ) {
442
+
443
+ if ( ! empty( $sections['fields'] ) ) {
444
+
445
+ foreach ( $sections['fields'] as $field ) {
446
+
447
+ if ( ! empty( $field['fields'] ) ) {
448
+ self::set_used_fields( $field );
449
+ }
450
+
451
+ if ( ! empty( $field['tabs'] ) ) {
452
+ self::set_used_fields( array( 'fields' => $field['tabs'] ) );
453
+ }
454
+
455
+ if ( ! empty( $field['accordions'] ) ) {
456
+ self::set_used_fields( array( 'fields' => $field['accordions'] ) );
457
+ }
458
+
459
+ if ( ! empty( $field['type'] ) ) {
460
+ self::$fields[ $field['type'] ] = $field;
461
+ }
462
+ }
463
+ }
464
+
465
+ }
466
+
467
+ /**
468
+ * Enqueue admin and fields styles and scripts.
469
+ *
470
+ * @return void
471
+ */
472
+ public static function add_admin_enqueue_scripts() {
473
+
474
+ // Loads scripts and styles only when needed.
475
+ $wpscreen = get_current_screen();
476
+ if ( 'spt_testimonial_form' === $wpscreen->post_type || 'spt_shortcodes' === $wpscreen->post_type || 'spt_testimonial' === $wpscreen->post_type ) {
477
+ if ( ! empty( self::$args['admin_options'] ) ) {
478
+ foreach ( self::$args['admin_options'] as $argument ) {
479
+ if ( substr( $wpscreen->id, -strlen( $argument['menu_slug'] ) ) === $argument['menu_slug'] ) {
480
+ self::$enqueue = true;
481
+ }
482
+ }
483
+ }
484
+
485
+ if ( ! empty( self::$args['metabox_options'] ) ) {
486
+ foreach ( self::$args['metabox_options'] as $argument ) {
487
+ if ( in_array( $wpscreen->post_type, (array) $argument['post_type'] ) ) {
488
+ self::$enqueue = true;
489
+ }
490
+ }
491
+ }
492
+
493
+ if ( ! apply_filters( 'spftestimonial_enqueue_assets', self::$enqueue ) ) {
494
+ return;
495
+ }
496
+ // Check for developer mode.
497
+ $min = ( self::$premium && SCRIPT_DEBUG ) ? '' : '.min';
498
+
499
+ // Admin utilities.
500
+ wp_enqueue_media();
501
+
502
+ // Wp color picker.
503
+ wp_enqueue_style( 'wp-color-picker' );
504
+ wp_enqueue_script( 'wp-color-picker' );
505
+
506
+ // Font awesome 4 and 5 loader.
507
+ if ( apply_filters( 'spftestimonial_fa4', true ) ) {
508
+ wp_enqueue_style( 'spftestimonial-fa', 'https://cdn.jsdelivr.net/npm/font-awesome@4.7.0/css/font-awesome' . $min . '.css', array(), '4.7.0', 'all' );
509
+ } else {
510
+ wp_enqueue_style( 'spftestimonial-fa5', 'https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@5.15.4/css/all' . $min . '.css', array(), '5.15.5', 'all' );
511
+ wp_enqueue_style( 'spftestimonial-fa5-v4-shims', 'https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@5.15.4/css/v4-shims' . $min . '.css', array(), '5.15.5', 'all' );
512
+ }
513
+
514
+ // Main style.
515
+ wp_enqueue_style( 'spftestimonial', self::include_plugin_url( 'assets/css/spftestimonial.css' ), array(), self::$version, 'all' );
516
+
517
+ // Main RTL styles.
518
+ if ( is_rtl() ) {
519
+ wp_enqueue_style( 'spftestimonial-rtl', self::include_plugin_url( 'assets/css/spftestimonial-rtl' . $min . '.css' ), array(), self::$version, 'all' );
520
+ }
521
+ // Main scripts.
522
+ wp_enqueue_script( 'spftestimonial-plugins', self::include_plugin_url( 'assets/js/spftestimonial-plugins' . $min . '.js' ), array(), self::$version, true );
523
+ wp_enqueue_script( 'spftestimonial', self::include_plugin_url( 'assets/js/spftestimonial' . $min . '.js' ), array( 'spftestimonial-plugins' ), self::$version, true );
524
+
525
+ // Main variables.
526
+ wp_localize_script(
527
+ 'spftestimonial',
528
+ 'spftestimonial_vars',
529
+ array(
530
+ 'color_palette' => apply_filters( 'spftestimonial_color_palette', array() ),
531
+ 'previewJS' => esc_url( SP_TFREE_URL . 'public/assets/js/sp-slick-active.js' ),
532
+ 'i18n' => array(
533
+ 'confirm' => esc_html__( 'Are you sure?', 'testimonial-free' ),
534
+ 'typing_text' => esc_html__( 'Please enter %s or more characters', 'testimonial-free' ),
535
+ 'searching_text' => esc_html__( 'Searching...', 'testimonial-free' ),
536
+ 'no_results_text' => esc_html__( 'No results found.', 'testimonial-free' ),
537
+ ),
538
+ )
539
+ );
540
+
541
+ // Enqueue fields scripts and styles.
542
+ $enqueued = array();
543
+
544
+ if ( ! empty( self::$fields ) ) {
545
+ foreach ( self::$fields as $field ) {
546
+ if ( ! empty( $field['type'] ) ) {
547
+ $classname = 'SPFTESTIMONIAL_Field_' . $field['type'];
548
+ if ( class_exists( $classname ) && method_exists( $classname, 'enqueue' ) ) {
549
+ $instance = new $classname( $field );
550
+ if ( method_exists( $classname, 'enqueue' ) ) {
551
+ $instance->enqueue();
552
+ }
553
+ unset( $instance );
554
+ }
555
+ }
556
+ }
557
+ }
558
+ }
559
+ do_action( 'spftestimonial_enqueue' );
560
+
561
+ }
562
+
563
+ /**
564
+ * Typography Enqueue admin and fields styles and scripts.
565
+ *
566
+ * @return void
567
+ */
568
+ public static function add_typography_enqueue_styles() {
569
+
570
+ if ( ! empty( self::$webfonts ) ) {
571
+
572
+ if ( ! empty( self::$webfonts['enqueue'] ) ) {
573
+
574
+ $query = array();
575
+ $fonts = array();
576
+
577
+ foreach ( self::$webfonts['enqueue'] as $family => $styles ) {
578
+ $fonts[] = $family . ( ( ! empty( $styles ) ) ? ':' . implode( ',', $styles ) : '' );
579
+ }
580
+
581
+ if ( ! empty( $fonts ) ) {
582
+ $query['family'] = implode( '%7C', $fonts );
583
+ }
584
+
585
+ if ( ! empty( self::$subsets ) ) {
586
+ $query['subset'] = implode( ',', self::$subsets );
587
+ }
588
+
589
+ $query['display'] = 'swap';
590
+
591
+ wp_enqueue_style( 'spftestimonial-google-web-fonts', esc_url( add_query_arg( $query, '//fonts.googleapis.com/css' ) ), array(), null );
592
+
593
+ }
594
+
595
+ if ( ! empty( self::$webfonts['async'] ) ) {
596
+
597
+ $fonts = array();
598
+
599
+ foreach ( self::$webfonts['async'] as $family => $styles ) {
600
+ $fonts[] = $family . ( ( ! empty( $styles ) ) ? ':' . implode( ',', $styles ) : '' );
601
+ }
602
+
603
+ wp_enqueue_script( 'spftestimonial-google-web-fonts', esc_url( '//ajax.googleapis.com/ajax/libs/webfont/1.6.26/webfont.js' ), array(), null );
604
+
605
+ wp_localize_script( 'spftestimonial-google-web-fonts', 'WebFontConfig', array( 'google' => array( 'families' => $fonts ) ) );
606
+
607
+ }
608
+ }
609
+
610
+ }
611
+
612
+ /**
613
+ * Admin body class
614
+ *
615
+ * @param string $classes admin body class.
616
+ * @return statement.
617
+ */
618
+ public static function add_admin_body_class( $classes ) {
619
+
620
+ if ( apply_filters( 'spftestimonial_fa4', false ) ) {
621
+ $classes .= 'spftestimonial-fa5-shims';
622
+ }
623
+
624
+ return $classes;
625
+
626
+ }
627
+
628
+ /**
629
+ * Custom Css
630
+ *
631
+ * @return void
632
+ */
633
+ public static function add_custom_css() {
634
+
635
+ if ( ! empty( self::$css ) ) {
636
+ echo '<style type="text/css">' . wp_strip_all_tags( self::$css ) . '</style>';
637
+ }
638
+
639
+ }
640
+
641
+ /**
642
+ * Add a new framework field.
643
+ *
644
+ * @param mixed $field Field.
645
+ * @param mixed $value value.
646
+ * @param mixed $unique unique id.
647
+ * @param mixed $where Where.
648
+ * @param mixed $parent parent.
649
+ * @return void
650
+ */
651
+ public static function field( $field = array(), $value = '', $unique = '', $where = '', $parent = '' ) {
652
+
653
+ // Check for unallow fields.
654
+ if ( ! empty( $field['_notice'] ) ) {
655
+
656
+ $field_type = $field['type'];
657
+
658
+ $field = array();
659
+ $field['content'] = esc_html__( 'Oops! Not allowed.', 'testimonial-free' ) . ' <strong>(' . $field_type . ')</strong>';
660
+ $field['type'] = 'notice';
661
+ $field['style'] = 'danger';
662
+
663
+ }
664
+
665
+ $depend = '';
666
+ $visible = '';
667
+ $unique = ( ! empty( $unique ) ) ? $unique : '';
668
+ $class = ( ! empty( $field['class'] ) ) ? ' ' . esc_attr( $field['class'] ) : '';
669
+ $is_pseudo = ( ! empty( $field['pseudo'] ) ) ? ' spftestimonial-pseudo-field' : '';
670
+ $field_type = ( ! empty( $field['type'] ) ) ? esc_attr( $field['type'] ) : '';
671
+
672
+ if ( ! empty( $field['dependency'] ) ) {
673
+
674
+ $dependency = $field['dependency'];
675
+ $depend_visible = '';
676
+ $data_controller = '';
677
+ $data_condition = '';
678
+ $data_value = '';
679
+ $data_global = '';
680
+
681
+ if ( is_array( $dependency[0] ) ) {
682
+ $data_controller = implode( '|', array_column( $dependency, 0 ) );
683
+ $data_condition = implode( '|', array_column( $dependency, 1 ) );
684
+ $data_value = implode( '|', array_column( $dependency, 2 ) );
685
+ $data_global = implode( '|', array_column( $dependency, 3 ) );
686
+ $depend_visible = implode( '|', array_column( $dependency, 4 ) );
687
+ } else {
688
+ $data_controller = ( ! empty( $dependency[0] ) ) ? $dependency[0] : '';
689
+ $data_condition = ( ! empty( $dependency[1] ) ) ? $dependency[1] : '';
690
+ $data_value = ( ! empty( $dependency[2] ) ) ? $dependency[2] : '';
691
+ $data_global = ( ! empty( $dependency[3] ) ) ? $dependency[3] : '';
692
+ $depend_visible = ( ! empty( $dependency[4] ) ) ? $dependency[4] : '';
693
+ }
694
+
695
+ $depend .= ' data-controller="' . esc_attr( $data_controller ) . '"';
696
+ $depend .= ' data-condition="' . esc_attr( $data_condition ) . '"';
697
+ $depend .= ' data-value="' . esc_attr( $data_value ) . '"';
698
+ $depend .= ( ! empty( $data_global ) ) ? ' data-depend-global="true"' : '';
699
+
700
+ $visible = ( ! empty( $depend_visible ) ) ? ' spftestimonial-depend-visible' : ' spftestimonial-depend-hidden';
701
+
702
+ }
703
+
704
+ // These attributes has been sanitized above.
705
+ echo '<div class="spftestimonial-field spftestimonial-field-' . esc_attr( $field_type . $is_pseudo . $class . $visible ) . '"' . wp_kses_post( $depend ) . '>';
706
+
707
+ if ( ! empty( $field_type ) ) {
708
+
709
+ if ( ! empty( $field['fancy_title'] ) ) {
710
+ echo '<div class="spftestimonial-fancy-title">' . wp_kses_post( $field['fancy_title'] ) . '</div>';
711
+ }
712
+
713
+ if ( ! empty( $field['title'] ) ) {
714
+ echo '<div class="spftestimonial-title">';
715
+ echo '<h4>' . wp_kses_post( $field['title'] ) . '</h4>';
716
+ echo ( ! empty( $field['subtitle'] ) ) ? '<div class="spftestimonial-subtitle-text">' . wp_kses_post( $field['subtitle'] ) . '</div>' : '';
717
+ echo '</div>';
718
+ }
719
+
720
+ echo ( ! empty( $field['title'] ) || ! empty( $field['fancy_title'] ) ) ? '<div class="spftestimonial-fieldset">' : '';
721
+
722
+ $value = ( ! isset( $value ) && isset( $field['default'] ) ) ? $field['default'] : $value;
723
+ $value = ( isset( $field['value'] ) ) ? $field['value'] : $value;
724
+
725
+ $classname = 'SPFTESTIMONIAL_Field_' . $field_type;
726
+
727
+ if ( class_exists( $classname ) ) {
728
+ $instance = new $classname( $field, $value, $unique, $where, $parent );
729
+ $instance->render();
730
+ } else {
731
+ echo '<p>' . esc_html__( 'Field not found!', 'testimonial-free' ) . '</p>';
732
+ }
733
+ } else {
734
+ echo '<p>' . esc_html__( 'Field not found!', 'testimonial-free' ) . '</p>';
735
+ }
736
+
737
+ echo ( ! empty( $field['title'] ) || ! empty( $field['fancy_title'] ) ) ? '</div>' : '';
738
+ echo '<div class="clear"></div>';
739
+ echo '</div>';
740
+
741
+ }
742
+
743
+ }
744
+
745
+ SPFTESTIMONIAL::init( __FILE__ );
admin/views/framework/classes/abstract.class.php CHANGED
@@ -5,7 +5,7 @@
5
  * @link https://shapedplugin.com
6
  * @since 2.0.0
7
  *
8
- * @package Testimonial_free
9
  * @subpackage Testimonial_free/framework
10
  */
11
 
@@ -35,40 +35,120 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Abstract' ) ) {
35
  * @var string
36
  */
37
  public $output_css = '';
38
- /**
39
- * $typographies variable
40
- *
41
- * @var array
42
- */
43
- public $typographies = array();
44
-
45
  /**
46
  * Constructor of the class.
47
  */
48
  public function __construct() {
49
 
50
- // Check for embed custom css styles.
51
- if ( ! empty( $this->args['output_css'] ) ) {
52
- add_action( 'wp_head', array( &$this, 'add_output_css' ), 100 );
 
53
  }
54
 
55
  }
 
 
 
 
 
 
 
 
 
56
 
57
  /**
58
  * Add output CSS.
59
  *
 
 
 
60
  * @return void
61
  */
62
- public function add_output_css() {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
63
 
64
- $this->output_css = apply_filters( "spftestimonial_{$this->unique}_output_css", $this->output_css, $this );
65
 
66
- if ( ! empty( $this->output_css ) ) {
67
- echo '<style type="text/css">' . wp_strip_all_tags( $this->output_css ) . '</style>'; // phpcs:ignore
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
68
  }
69
 
70
  }
71
 
72
  }
73
  }
74
-
5
  * @link https://shapedplugin.com
6
  * @since 2.0.0
7
  *
8
+ * @package Testimonial_Free
9
  * @subpackage Testimonial_free/framework
10
  */
11
 
35
  * @var string
36
  */
37
  public $output_css = '';
 
 
 
 
 
 
 
38
  /**
39
  * Constructor of the class.
40
  */
41
  public function __construct() {
42
 
43
+ // Collect output css and typography.
44
+ if ( ! empty( $this->args['output_css'] ) || ! empty( $this->args['enqueue_webfont'] ) ) {
45
+ add_action( 'wp_enqueue_scripts', array( $this, 'collect_output_css_and_typography' ), 10 );
46
+ SPFTESTIMONIAL::$css = apply_filters( "spftestimonial_{$this->unique}_output_css", SPFTESTIMONIAL::$css, $this );
47
  }
48
 
49
  }
50
+ /**
51
+ * Add output CSS and typography.
52
+ *
53
+ * @return void
54
+ */
55
+ public function collect_output_css_and_typography() {
56
+
57
+ $this->recursive_output_css( $this->pre_fields );
58
+ }
59
 
60
  /**
61
  * Add output CSS.
62
  *
63
+ * @param array $fields get fields.
64
+ * @param array $combine_field get fields.
65
+ *
66
  * @return void
67
  */
68
+ public function recursive_output_css( $fields = array(), $combine_field = array() ) {
69
+
70
+ if ( ! empty( $fields ) ) {
71
+
72
+ foreach ( $fields as $field ) {
73
+
74
+ $field_id = ( ! empty( $field['id'] ) ) ? $field['id'] : '';
75
+ $field_type = ( ! empty( $field['type'] ) ) ? $field['type'] : '';
76
+ $field_output = ( ! empty( $field['output'] ) ) ? $field['output'] : '';
77
+ $field_check = ( 'typography' === $field_type || $field_output ) ? true : false;
78
+ $field_class = 'SPFTESTIMONIAL_Field_' . $field_type;
79
+
80
+ if ( $field_type && $field_id ) {
81
+
82
+ if ( 'fieldset' === $field_type ) {
83
+ if ( ! empty( $field['fields'] ) ) {
84
+ $this->recursive_output_css( $field['fields'], $field );
85
+ }
86
+ }
87
+
88
+ if ( 'accordion' === $field_type ) {
89
+ if ( ! empty( $field['accordions'] ) ) {
90
+ foreach ( $field['accordions'] as $accordion ) {
91
+ $this->recursive_output_css( $accordion['fields'], $field );
92
+ }
93
+ }
94
+ }
95
+
96
+ if ( 'tabbed' === $field_type ) {
97
+ if ( ! empty( $field['tabs'] ) ) {
98
+ foreach ( $field['tabs'] as $accordion ) {
99
+ $this->recursive_output_css( $accordion['fields'], $field );
100
+ }
101
+ }
102
+ }
103
 
104
+ if ( class_exists( $field_class ) ) {
105
 
106
+ if ( method_exists( $field_class, 'output' ) ) {
107
+
108
+ $field_value = '';
109
+
110
+ if ( $field_check && ( 'options' === $this->abstract || 'customize' === $this->abstract ) ) {
111
+
112
+ if ( ! empty( $combine_field ) ) {
113
+
114
+ $field_value = ( isset( $this->options[ $combine_field['id'] ][ $field_id ] ) ) ? $this->options[ $combine_field['id'] ][ $field_id ] : '';
115
+
116
+ } else {
117
+
118
+ $field_value = ( isset( $this->options[ $field_id ] ) ) ? $this->options[ $field_id ] : '';
119
+
120
+ }
121
+ } elseif ( $field_check && ( 'metabox' === $this->abstract && is_singular() || 'taxonomy' === $this->abstract && is_archive() ) ) {
122
+
123
+ if ( ! empty( $combine_field ) ) {
124
+
125
+ $meta_value = $this->get_meta_value( $combine_field );
126
+ $field_value = ( isset( $meta_value[ $field_id ] ) ) ? $meta_value[ $field_id ] : '';
127
+
128
+ } else {
129
+
130
+ $meta_value = $this->get_meta_value( $field );
131
+ $field_value = ( isset( $meta_value ) ) ? $meta_value : '';
132
+
133
+ }
134
+ }
135
+
136
+ $instance = new $field_class( $field, $field_value, $this->unique, 'wp/enqueue', $this );
137
+
138
+ // output css.
139
+ if ( $field_output && $this->args['output_css'] ) {
140
+ SPFTESTIMONIAL::$css .= $instance->output();
141
+ }
142
+
143
+ unset( $instance );
144
+
145
+ }
146
+ }
147
+ }
148
+ }
149
  }
150
 
151
  }
152
 
153
  }
154
  }
 
admin/views/framework/classes/customize-options.class.php DELETED
@@ -1,406 +0,0 @@
1
- <?php
2
- /**
3
- * Framework customize-options.class file.
4
- *
5
- * @link https://shapedplugin.com
6
- * @since 2.0.0
7
- *
8
- * @package Testimonial_free
9
- * @subpackage Testimonial_free/framework
10
- */
11
-
12
- if ( ! defined( 'ABSPATH' ) ) {
13
- die;
14
- } // Cannot access directly.
15
-
16
- if ( ! class_exists( 'SPFTESTIMONIAL_Customize_Options' ) ) {
17
- /**
18
- *
19
- * Customize Options Class
20
- *
21
- * @since 1.0.0
22
- * @version 1.0.0
23
- */
24
- class SPFTESTIMONIAL_Customize_Options extends SPFTESTIMONIAL_Abstract {
25
-
26
-
27
- /**
28
- * Unique ID/Name
29
- *
30
- * @var string
31
- */
32
- public $unique = '';
33
- /**
34
- * Abstract.
35
- *
36
- * @var string
37
- */
38
- public $abstract = 'customize';
39
- /**
40
- * Options
41
- *
42
- * @var array
43
- */
44
- public $options = array();
45
- /**
46
- * Setions.
47
- *
48
- * @var array
49
- */
50
- public $sections = array();
51
- /**
52
- * Pre fields.
53
- *
54
- * @var array
55
- */
56
- public $pre_fields = array();
57
- /**
58
- * Pre tabs.
59
- *
60
- * @var array
61
- */
62
- public $pre_tabs = array();
63
- /**
64
- * Priority.
65
- *
66
- * @var array
67
- */
68
- public $priority = 10;
69
- /**
70
- * Default arguments.
71
- *
72
- * @var array
73
- */
74
- public $args = array(
75
- 'database' => 'option',
76
- 'transport' => 'refresh',
77
- 'capability' => 'manage_options',
78
- 'save_defaults' => true,
79
- 'enqueue_webfont' => true,
80
- 'async_webfont' => false,
81
- 'output_css' => true,
82
- 'defaults' => array(),
83
- );
84
-
85
- /**
86
- * Run framework construct.
87
- *
88
- * @param string $key The filter unique key.
89
- * @param array $params The parameters.
90
- */
91
- public function __construct( $key, $params ) {
92
-
93
- $this->unique = $key;
94
- $this->args = apply_filters( "spftestimonial_{$this->unique}_args", wp_parse_args( $params['args'], $this->args ), $this );
95
- $this->sections = apply_filters( "spftestimonial_{$this->unique}_sections", $params['sections'], $this );
96
- $this->pre_fields = $this->pre_fields( $this->sections );
97
-
98
- $this->get_options();
99
- $this->save_defaults();
100
-
101
- add_action( 'customize_register', array( &$this, 'add_customize_options' ) );
102
- add_action( 'customize_save_after', array( &$this, 'add_customize_save_after' ) );
103
-
104
- // Get options for enqueue actions.
105
- if ( is_customize_preview() ) {
106
- add_action( 'wp_enqueue_scripts', array( &$this, 'get_options' ) );
107
- }
108
-
109
- // wp enqeueu for typography and output css.
110
- parent::__construct();
111
-
112
- }
113
-
114
- /**
115
- * Instance.
116
- *
117
- * @param object $key The instance key.
118
- * @param array $params All the parameters.
119
- * @return mixed
120
- */
121
- public static function instance( $key, $params = array() ) {
122
-
123
- return new self( $key, $params );
124
- }
125
-
126
- /**
127
- * Add customize save after.
128
- *
129
- * @param object $wp_customize Wp customize option.
130
- * @return void
131
- */
132
- public function add_customize_save_after( $wp_customize ) {
133
-
134
- do_action( "spftestimonial_{$this->unique}_save_before", $this->get_options(), $this, $wp_customize );
135
- do_action( "spftestimonial_{$this->unique}_saved", $this->get_options(), $this, $wp_customize );
136
- do_action( "spftestimonial_{$this->unique}_save_after", $this->get_options(), $this, $wp_customize );
137
- }
138
-
139
- /**
140
- * Get default value
141
- *
142
- * @param array $field default field.
143
- * @return string
144
- */
145
- public function get_default( $field ) {
146
-
147
- $default = ( isset( $this->args['defaults'][ $field['id'] ] ) ) ? $this->args['defaults'][ $field['id'] ] : null;
148
- $default = ( isset( $field['default'] ) ) ? $field['default'] : $default;
149
-
150
- return $default;
151
-
152
- }
153
-
154
- /**
155
- * Get option
156
- *
157
- * @return object
158
- */
159
- public function get_options() {
160
-
161
- if ( 'theme_mod' === $this->args['database'] ) {
162
- $this->options = get_theme_mod( $this->unique, array() );
163
- } else {
164
- $this->options = get_option( $this->unique, array() );
165
- }
166
-
167
- if ( empty( $this->options ) ) {
168
- $this->options = array();
169
- }
170
-
171
- return $this->options;
172
-
173
- }
174
-
175
- /**
176
- * Save defaults and set new fields value to main options.
177
- *
178
- * @return void
179
- */
180
- public function save_defaults() {
181
-
182
- $tmp_options = $this->options;
183
-
184
- if ( ! empty( $this->pre_fields ) ) {
185
- foreach ( $this->pre_fields as $field ) {
186
- if ( ! empty( $field['id'] ) ) {
187
- $this->options[ $field['id'] ] = ( isset( $this->options[ $field['id'] ] ) ) ? $this->options[ $field['id'] ] : $this->get_default( $field );
188
- }
189
- }
190
- }
191
-
192
- if ( $this->args['save_defaults'] && empty( $this->args['show_in_customizer'] ) && empty( $tmp_options ) ) {
193
-
194
- if ( 'theme_mod' === $this->args['database'] ) {
195
- set_theme_mod( $this->unique, $this->options );
196
- } else {
197
- update_option( $this->unique, $this->options );
198
- }
199
- }
200
-
201
- }
202
-
203
- /**
204
- * Pre fields method.
205
- *
206
- * @param array $sections The sections.
207
- * @return $result
208
- */
209
- public function pre_fields( $sections ) {
210
-
211
- $result = array();
212
-
213
- foreach ( $sections as $key => $section ) {
214
- if ( ! empty( $section['fields'] ) ) {
215
- foreach ( $section['fields'] as $field ) {
216
- $result[] = $field;
217
- }
218
- }
219
- }
220
-
221
- return $result;
222
- }
223
-
224
- /**
225
- * Pre tabs.
226
- *
227
- * @param array $sections All the sections.
228
- * @return mixed
229
- */
230
- public function pre_tabs( $sections ) {
231
-
232
- $result = array();
233
- $parents = array();
234
-
235
- foreach ( $sections as $key => $section ) {
236
- if ( ! empty( $section['parent'] ) ) {
237
- $parents[ $section['parent'] ][] = $section;
238
- unset( $sections[ $key ] );
239
- }
240
- }
241
-
242
- foreach ( $sections as $key => $section ) {
243
- if ( ! empty( $section['id'] ) && ! empty( $parents[ $section['id'] ] ) ) {
244
- $section['subs'] = $parents[ $section['id'] ];
245
- }
246
- $result[] = $section;
247
- }
248
-
249
- return $result;
250
-
251
- }
252
-
253
- /**
254
- * Add customize options.
255
- *
256
- * @param object $wp_customize Wp customize options.
257
- * @return void
258
- */
259
- public function add_customize_options( $wp_customize ) {
260
-
261
- if ( ! class_exists( 'WP_Customize_Panel_SPFTESTIMONIAL' ) ) {
262
- SPFTESTIMONIAL::include_plugin_file( 'functions/customize.php' );
263
- }
264
-
265
- if ( ! empty( $this->sections ) ) {
266
-
267
- $sections = $this->pre_tabs( $this->sections );
268
-
269
- foreach ( $sections as $section ) {
270
-
271
- if ( ! empty( $section['subs'] ) ) {
272
-
273
- $panel_id = ( isset( $section['id'] ) ) ? $section['id'] : $this->unique . '-panel-' . $this->priority;
274
-
275
- $wp_customize->add_panel(
276
- new WP_Customize_Panel_SPFTESTIMONIAL(
277
- $wp_customize,
278
- $panel_id,
279
- array(
280
- 'title' => ( isset( $section['title'] ) ) ? $section['title'] : null,
281
- 'description' => ( isset( $section['description'] ) ) ? $section['description'] : null,
282
- 'priority' => ( isset( $section['priority'] ) ) ? $section['priority'] : null,
283
- )
284
- )
285
- );
286
-
287
- $this->priority++;
288
-
289
- foreach ( $section['subs'] as $sub_section ) {
290
-
291
- $section_id = ( isset( $sub_section['id'] ) ) ? $sub_section['id'] : $this->unique . '-section-' . $this->priority;
292
-
293
- $this->add_section( $wp_customize, $section_id, $sub_section, $panel_id );
294
-
295
- $this->priority++;
296
-
297
- }
298
- } else {
299
-
300
- $section_id = ( isset( $section['id'] ) ) ? $section['id'] : $this->unique . '-section-' . $this->priority;
301
-
302
- $this->add_section( $wp_customize, $section_id, $section, false );
303
-
304
- $this->priority++;
305
-
306
- }
307
- }
308
- }
309
-
310
- }
311
-
312
- /**
313
- * Add customize section
314
- *
315
- * @param object $wp_customize customize options.
316
- * @param string $section_id section id.
317
- * @param array $section_args section argument.
318
- * @param int $panel_id panel id.
319
- * @return void
320
- */
321
- public function add_section( $wp_customize, $section_id, $section_args, $panel_id ) {
322
-
323
- if ( ! empty( $section_args['assign'] ) ) {
324
-
325
- $section_id = $section_args['assign'];
326
-
327
- } else {
328
-
329
- $wp_customize->add_section(
330
- new WP_Customize_Section_SPFTESTIMONIAL(
331
- $wp_customize,
332
- $section_id,
333
- array(
334
- 'title' => ( isset( $section_args['title'] ) ) ? $section_args['title'] : null,
335
- 'description' => ( isset( $section_args['description'] ) ) ? $section_args['description'] : null,
336
- 'priority' => ( isset( $section_args['priority'] ) ) ? $section_args['priority'] : null,
337
- 'panel' => ( $panel_id ) ? $panel_id : null,
338
- )
339
- )
340
- );
341
-
342
- }
343
-
344
- if ( ! empty( $section_args['fields'] ) ) {
345
-
346
- $field_key = 1;
347
-
348
- foreach ( $section_args['fields'] as $field ) {
349
-
350
- if ( isset( $field['id'] ) ) {
351
- $field['default'] = $this->get_default( $field );
352
- }
353
-
354
- $field_id = ( isset( $field['id'] ) ) ? $field['id'] : '_nonce-' . $section_id . '-' . $field_key;
355
- $setting_id = $this->unique . '[' . $field_id . ']';
356
- $setting_args = ( isset( $field['setting_args'] ) ) ? $field['setting_args'] : array();
357
- $control_args = ( isset( $field['control_args'] ) ) ? $field['control_args'] : array();
358
- $field_transport = ( isset( $field['transport'] ) ) ? $field['transport'] : $this->args['transport'];
359
- $field_sanitize = ( isset( $field['sanitize'] ) ) ? $field['sanitize'] : null;
360
- $field_validate = ( isset( $field['validate'] ) ) ? $field['validate'] : null;
361
- $field_default = ( isset( $field['default'] ) ) ? $field['default'] : null;
362
- $has_selective = ( isset( $field['selective_refresh'] ) && isset( $wp_customize->selective_refresh ) ) ? true : false;
363
-
364
- $wp_customize->add_setting(
365
- $setting_id,
366
- wp_parse_args(
367
- $setting_args,
368
- array(
369
- 'default' => $field_default,
370
- 'type' => $this->args['database'],
371
- 'transport' => ( $has_selective ) ? 'postMessage' : $field_transport,
372
- 'capability' => $this->args['capability'],
373
- 'sanitize_callback' => $field_sanitize,
374
- 'validate_callback' => $field_validate,
375
- )
376
- )
377
- );
378
-
379
- $wp_customize->add_control(
380
- new WP_Customize_Control_SPFTESTIMONIAL(
381
- $wp_customize,
382
- $setting_id,
383
- wp_parse_args(
384
- $control_args,
385
- array(
386
- 'unique' => $this->unique,
387
- 'field' => $field,
388
- 'section' => $section_id,
389
- 'settings' => $setting_id,
390
- )
391
- )
392
- )
393
- );
394
-
395
- if ( $has_selective ) {
396
- $wp_customize->selective_refresh->add_partial( $setting_id, $field['selective_refresh'] );
397
- }
398
-
399
- $field_key++;
400
- }
401
- }
402
-
403
- }
404
-
405
- }
406
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
admin/views/framework/classes/fields.class.php CHANGED
@@ -1,11 +1,12 @@
1
  <?php
 
2
  /**
3
  * Framework fields.class file.
4
  *
5
  * @link https://shapedplugin.com
6
  * @since 2.0.0
7
  *
8
- * @package Testimonial_free
9
  * @subpackage Testimonial_free/framework
10
  */
11
 
@@ -22,7 +23,6 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Fields' ) ) {
22
  * @version 1.0.0
23
  */
24
  abstract class SPFTESTIMONIAL_Fields extends SPFTESTIMONIAL_Abstract {
25
-
26
  /**
27
  * Field class constructor.
28
  *
@@ -33,14 +33,12 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Fields' ) ) {
33
  * @param string $parent The parent args.
34
  */
35
  public function __construct( $field = array(), $value = '', $unique = '', $where = '', $parent = '' ) {
36
-
37
  $this->field = $field;
38
  $this->value = $value;
39
  $this->unique = $unique;
40
  $this->where = $where;
41
  $this->parent = $parent;
42
  }
43
-
44
  /**
45
  * Field name method.
46
  *
@@ -59,9 +57,7 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Fields' ) ) {
59
  }
60
 
61
  return $field_name . $nested_name;
62
-
63
  }
64
-
65
  /**
66
  * Field attributes.
67
  *
@@ -90,7 +86,7 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Fields' ) ) {
90
  if ( 'only-key' === $value ) {
91
  $atts .= ' ' . esc_attr( $key );
92
  } else {
93
- $atts .= ' ' . esc_attr( $key ) . '="' . esc_attr( $value ) . '"';
94
  }
95
  }
96
  }
@@ -98,32 +94,27 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Fields' ) ) {
98
  return $atts;
99
 
100
  }
101
-
102
  /**
103
  * Field before.
104
  *
105
  * @return mixed
106
  */
107
  public function field_before() {
108
- return ( ! empty( $this->field['before'] ) ) ? $this->field['before'] : '';
109
  }
110
-
111
  /**
112
  * Field after.
113
  *
114
  * @return mixed
115
  */
116
  public function field_after() {
117
-
118
- $output = ( ! empty( $this->field['after'] ) ) ? $this->field['after'] : '';
119
- $output .= ( ! empty( $this->field['desc'] ) ) ? '<p class="spftestimonial-text-desc">' . $this->field['desc'] . '</p>' : '';
120
- $output .= ( ! empty( $this->field['help'] ) ) ? '<span class="spftestimonial-help"><span class="spftestimonial-help-text">' . $this->field['help'] . '</span><span class="fa fa-question-circle"></span></span>' : '';
121
- $output .= ( ! empty( $this->field['_error'] ) ) ? '<p class="spftestimonial-text-error">' . $this->field['_error'] . '</p>' : '';
122
-
123
  return $output;
124
 
125
  }
126
-
127
  /**
128
  * Field Data.
129
  *
@@ -131,7 +122,7 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Fields' ) ) {
131
  * @param boolean $term post term.
132
  * @param array $query_args post term.
133
  *
134
- * @return statement
135
  */
136
  public static function field_data( $type = '', $term = false, $query_args = array() ) {
137
 
@@ -139,15 +130,15 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Fields' ) ) {
139
  $array_search = false;
140
 
141
  // sanitize type name.
142
- if ( in_array( $type, array( 'page', 'pages' ), true ) ) {
143
  $option = 'page';
144
- } elseif ( in_array( $type, array( 'post', 'posts' ), true ) ) {
145
  $option = 'post';
146
- } elseif ( in_array( $type, array( 'category', 'categories' ), true ) ) {
147
  $option = 'category';
148
- } elseif ( in_array( $type, array( 'tag', 'tags' ), true ) ) {
149
  $option = 'post_tag';
150
- } elseif ( in_array( $type, array( 'menu', 'menus' ), true ) ) {
151
  $option = 'nav_menu';
152
  } else {
153
  $option = '';
@@ -163,17 +154,17 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Fields' ) ) {
163
  // term query required for ajax select.
164
  if ( ! empty( $term ) ) {
165
 
166
- $query = new WP_Query(
167
- wp_parse_args(
168
- $query_args,
169
- array(
170
- 's' => $term,
171
- 'post_type' => $option,
172
- 'post_status' => 'publish',
173
- 'posts_per_page' => 25,
174
- )
175
  )
176
- );
 
177
 
178
  } else {
179
 
@@ -197,35 +188,6 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Fields' ) ) {
197
 
198
  break;
199
 
200
- case 'spt_shortcodes':
201
- $lcp_get_specific = array(
202
- 'post_type' => 'spt_shortcodes',
203
- );
204
- $query_args = array_merge( $query_args, $lcp_get_specific );
205
- $all_posts = get_posts( $query_args );
206
-
207
- if ( ! is_wp_error( $all_posts ) && ! empty( $all_posts ) ) {
208
- foreach ( $all_posts as $post_obj ) {
209
- $options[ $post_obj->ID ] = isset( $post_obj->post_title ) && ! empty( $post_obj->post_title ) ? $post_obj->post_title : 'Untitled';
210
- }
211
- }
212
- wp_reset_postdata();
213
- break;
214
- case 'spt_testimonial':
215
- $lcp_get_specific = array(
216
- 'post_type' => 'spt_testimonial',
217
- );
218
- $query_args = array_merge( $query_args, $lcp_get_specific );
219
- $all_posts = get_posts( $query_args );
220
-
221
- if ( ! is_wp_error( $all_posts ) && ! empty( $all_posts ) ) {
222
- foreach ( $all_posts as $post_obj ) {
223
- $options[ $post_obj->ID ] = isset( $post_obj->post_title ) && ! empty( $post_obj->post_title ) ? $post_obj->post_title : 'Untitled';
224
- }
225
- }
226
- wp_reset_postdata();
227
- break;
228
-
229
  case 'category':
230
  case 'categories':
231
  case 'tag':
@@ -339,16 +301,14 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Fields' ) ) {
339
  $array_search = true;
340
 
341
  break;
342
-
343
  default:
344
- if ( function_exists( $type ) ) {
345
  if ( ! empty( $term ) ) {
346
  $options = call_user_func( $type, $query_args );
347
  } else {
348
  $options = call_user_func( $type, $term, $query_args );
349
  }
350
  }
351
-
352
  break;
353
 
354
  }
@@ -373,7 +333,6 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Fields' ) ) {
373
  return $options;
374
 
375
  }
376
-
377
  /**
378
  * WP Query data title
379
  *
@@ -390,6 +349,8 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Fields' ) ) {
390
 
391
  foreach ( $values as $value ) {
392
 
 
 
393
  switch ( $type ) {
394
 
395
  case 'post':
@@ -433,7 +394,7 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Fields' ) ) {
433
  global $wp_registered_sidebars;
434
 
435
  if ( ! empty( $wp_registered_sidebars[ $value ] ) ) {
436
- $options[ $value ] = $wp_registered_sidebars[ $value ]['name'];
437
  }
438
 
439
  break;
@@ -459,10 +420,8 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Fields' ) ) {
459
  break;
460
 
461
  default:
462
- if ( function_exists( $type . '_title' ) ) {
463
  $options[ $value ] = call_user_func( $type . '_title', $value );
464
- } else {
465
- $options[ $value ] = ucfirst( $value );
466
  }
467
 
468
  break;
1
  <?php
2
+
3
  /**
4
  * Framework fields.class file.
5
  *
6
  * @link https://shapedplugin.com
7
  * @since 2.0.0
8
  *
9
+ * @package Testimonial_Free
10
  * @subpackage Testimonial_free/framework
11
  */
12
 
23
  * @version 1.0.0
24
  */
25
  abstract class SPFTESTIMONIAL_Fields extends SPFTESTIMONIAL_Abstract {
 
26
  /**
27
  * Field class constructor.
28
  *
33
  * @param string $parent The parent args.
34
  */
35
  public function __construct( $field = array(), $value = '', $unique = '', $where = '', $parent = '' ) {
 
36
  $this->field = $field;
37
  $this->value = $value;
38
  $this->unique = $unique;
39
  $this->where = $where;
40
  $this->parent = $parent;
41
  }
 
42
  /**
43
  * Field name method.
44
  *
57
  }
58
 
59
  return $field_name . $nested_name;
 
60
  }
 
61
  /**
62
  * Field attributes.
63
  *
86
  if ( 'only-key' === $value ) {
87
  $atts .= ' ' . esc_attr( $key );
88
  } else {
89
+ $atts .= ' ' . esc_attr( $key ) . '="' . esc_attr( $value ) . '"';
90
  }
91
  }
92
  }
94
  return $atts;
95
 
96
  }
 
97
  /**
98
  * Field before.
99
  *
100
  * @return mixed
101
  */
102
  public function field_before() {
103
+ return ( ! empty( $this->field['before'] ) ) ? '<div class="spftestimonial-before-text">' . $this->field['before'] . '</div>' : '';
104
  }
 
105
  /**
106
  * Field after.
107
  *
108
  * @return mixed
109
  */
110
  public function field_after() {
111
+ $output = ( ! empty( $this->field['after'] ) ) ? '<div class="spftestimonial-after-text">' . $this->field['after'] . '</div>' : '';
112
+ $output .= ( ! empty( $this->field['desc'] ) ) ? '<div class="clear"></div><div class="spftestimonial-desc-text">' . $this->field['desc'] . '</div>' : '';
113
+ $output .= ( ! empty( $this->field['help'] ) ) ? '<div class="spftestimonial-help"><span class="spftestimonial-help-text">' . $this->field['help'] . '</span><i class="fa fa-question-circle"></i></div>' : '';
114
+ $output .= ( ! empty( $this->field['_error'] ) ) ? '<div class="spftestimonial-error-text">' . $this->field['_error'] . '</div>' : '';
 
 
115
  return $output;
116
 
117
  }
 
118
  /**
119
  * Field Data.
120
  *
122
  * @param boolean $term post term.
123
  * @param array $query_args post term.
124
  *
125
+ * @return array
126
  */
127
  public static function field_data( $type = '', $term = false, $query_args = array() ) {
128
 
130
  $array_search = false;
131
 
132
  // sanitize type name.
133
+ if ( in_array( $type, array( 'page', 'pages' ) ) ) {
134
  $option = 'page';
135
+ } elseif ( in_array( $type, array( 'post', 'posts' ) ) ) {
136
  $option = 'post';
137
+ } elseif ( in_array( $type, array( 'category', 'categories' ) ) ) {
138
  $option = 'category';
139
+ } elseif ( in_array( $type, array( 'tag', 'tags' ) ) ) {
140
  $option = 'post_tag';
141
+ } elseif ( in_array( $type, array( 'menu', 'menus' ) ) ) {
142
  $option = 'nav_menu';
143
  } else {
144
  $option = '';
154
  // term query required for ajax select.
155
  if ( ! empty( $term ) ) {
156
 
157
+ $query = new WP_Query(
158
+ wp_parse_args(
159
+ $query_args,
160
+ array(
161
+ 's' => $term,
162
+ 'post_type' => $option,
163
+ 'post_status' => 'publish',
164
+ 'posts_per_page' => 25,
 
165
  )
166
+ )
167
+ );
168
 
169
  } else {
170
 
188
 
189
  break;
190
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
191
  case 'category':
192
  case 'categories':
193
  case 'tag':
301
  $array_search = true;
302
 
303
  break;
 
304
  default:
305
+ if ( is_callable( $type ) ) {
306
  if ( ! empty( $term ) ) {
307
  $options = call_user_func( $type, $query_args );
308
  } else {
309
  $options = call_user_func( $type, $term, $query_args );
310
  }
311
  }
 
312
  break;
313
 
314
  }
333
  return $options;
334
 
335
  }
 
336
  /**
337
  * WP Query data title
338
  *
349
 
350
  foreach ( $values as $value ) {
351
 
352
+ $options[ $value ] = ucfirst( $value );
353
+
354
  switch ( $type ) {
355
 
356
  case 'post':
394
  global $wp_registered_sidebars;
395
 
396
  if ( ! empty( $wp_registered_sidebars[ $value ] ) ) {
397
+ $options[ $value ] = $wp_registered_sidebars[ $value ]['name'];
398
  }
399
 
400
  break;
420
  break;
421
 
422
  default:
423
+ if ( is_callable( $type . '_title' ) ) {
424
  $options[ $value ] = call_user_func( $type . '_title', $value );
 
 
425
  }
426
 
427
  break;
admin/views/framework/classes/metabox.class.php CHANGED
@@ -5,8 +5,8 @@
5
  * @link https://shapedplugin.com
6
  * @since 2.0.0
7
  *
8
- * @package Testimonial_free
9
- * @subpackage Testimonial_free/framework
10
  */
11
 
12
  if ( ! defined( 'ABSPATH' ) ) {
@@ -21,7 +21,6 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Metabox' ) ) {
21
  * @version 1.0.0
22
  */
23
  class SPFTESTIMONIAL_Metabox extends SPFTESTIMONIAL_Abstract {
24
-
25
  /**
26
  * Property.
27
  *
@@ -66,10 +65,12 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Metabox' ) ) {
66
  'exclude_post_types' => array(),
67
  'page_templates' => '',
68
  'post_formats' => '',
 
69
  'show_restore' => false,
70
  'enqueue_webfont' => true,
71
  'async_webfont' => false,
72
  'output_css' => true,
 
73
  'theme' => 'dark',
74
  'class' => '',
75
  'defaults' => array(),
@@ -91,32 +92,32 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Metabox' ) ) {
91
  $this->page_templates = ( is_array( $this->args['page_templates'] ) ) ? $this->args['page_templates'] : array_filter( (array) $this->args['page_templates'] );
92
  $this->pre_fields = $this->pre_fields( $this->sections );
93
 
94
- add_action( 'add_meta_boxes', array( &$this, 'add_meta_box' ) );
95
- add_action( 'save_post', array( &$this, 'save_meta_box' ) );
96
- add_action( 'edit_attachment', array( &$this, 'save_meta_box' ) );
97
 
98
  if ( ! empty( $this->page_templates ) || ! empty( $this->post_formats ) || ! empty( $this->args['class'] ) ) {
99
  foreach ( $this->post_type as $post_type ) {
100
- add_filter( 'postbox_classes_' . $post_type . '_' . $this->unique, array( &$this, 'add_metabox_classes' ) );
101
  }
102
  }
103
 
 
104
  // wp enqeueu for typography and output css.
105
  parent::__construct();
106
 
107
  }
108
 
109
- /**
110
- * Instance.
111
- *
112
- * @param string $key Key of the metabox.
113
- * @param array $params Array of parameters.
114
- * @return statement
115
- */
116
  public static function instance( $key, $params = array() ) {
117
  return new self( $key, $params );
118
  }
119
-
120
  /**
121
  * Pre fields
122
  *
@@ -136,8 +137,8 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Metabox' ) ) {
136
  }
137
 
138
  return $result;
139
- }
140
 
 
141
  /**
142
  * Add metabox classes.
143
  *
@@ -155,8 +156,7 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Metabox' ) ) {
155
  $classes[] = 'spftestimonial-post-formats';
156
 
157
  // Sanitize post format for standard to default.
158
- $key = array_search( 'standard', $this->post_formats, true );
159
- if ( ( $key ) !== false ) {
160
  $this->post_formats[ $key ] = 'default';
161
  }
162
 
@@ -164,10 +164,10 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Metabox' ) ) {
164
  $classes[] = 'spftestimonial-post-format-' . $format;
165
  }
166
 
167
- if ( ! in_array( $saved_post_format, $this->post_formats, true ) ) {
168
- $classes[] = 'spftestimonial-hide';
169
  } else {
170
- $classes[] = 'spftestimonial-show';
171
  }
172
  }
173
 
@@ -181,10 +181,10 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Metabox' ) ) {
181
  $classes[] = 'spftestimonial-page-' . preg_replace( '/[^a-zA-Z0-9]+/', '-', strtolower( $template ) );
182
  }
183
 
184
- if ( ! in_array( $saved_template, $this->page_templates, true ) ) {
185
- $classes[] = 'spftestimonial-hide';
186
  } else {
187
- $classes[] = 'spftestimonial-show';
188
  }
189
  }
190
 
@@ -196,29 +196,29 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Metabox' ) ) {
196
 
197
  }
198
 
199
- /**
200
- * Add metabox
201
- *
202
- * @param array $post_type The post types.
203
- */
204
  public function add_meta_box( $post_type ) {
205
 
206
- if ( ! in_array( $post_type, $this->args['exclude_post_types'], true ) ) {
207
- add_meta_box( $this->unique, $this->args['title'], array( &$this, 'add_meta_box_content' ), $this->post_type, $this->args['context'], $this->args['priority'], $this->args );
208
  }
209
 
210
  }
211
 
212
- /**
213
- * Get default value.
214
- *
215
- * @param array $field The field value.
216
- * @return mixed
217
- */
218
  public function get_default( $field ) {
219
 
220
- $default = ( isset( $field['id'] ) && isset( $this->args['defaults'][ $field['id'] ] ) ) ? $this->args['defaults'][ $field['id'] ] : null;
221
- $default = ( isset( $field['default'] ) ) ? $field['default'] : $default;
222
 
223
  return $default;
224
 
@@ -247,7 +247,7 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Metabox' ) ) {
247
  }
248
  }
249
 
250
- $default = $this->get_default( $field );
251
  $value = ( isset( $value ) ) ? $value : $default;
252
 
253
  return $value;
@@ -262,86 +262,118 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Metabox' ) ) {
262
  * @return void
263
  */
264
  public function add_meta_box_content( $post, $callback ) {
265
-
266
  global $post;
267
-
 
 
 
 
 
 
268
  $shortcode_show = isset( $this->args['sp_tpro_shortcode'] ) ? $this->args['sp_tpro_shortcode'] : true;
269
-
270
- $has_nav = ( count( $this->sections ) > 1 && 'side' !== $this->args['context'] ) ? true : false;
271
- $show_all = ( ! $has_nav ) ? ' spftestimonial-show-all' : '';
272
- $errors = ( is_object( $post ) ) ? get_post_meta( $post->ID, '_spftestimonial_errors', true ) : array();
273
- $errors = ( ! empty( $errors ) ) ? $errors : array();
274
- $theme = ( $this->args['theme'] ) ? ' spftestimonial-theme-' . $this->args['theme'] : '';
275
-
276
  if ( is_object( $post ) && ! empty( $errors ) ) {
277
- delete_post_meta( $post->ID, '_spftestimonial_errors' );
278
  }
279
 
280
  wp_nonce_field( 'spftestimonial_metabox_nonce', 'spftestimonial_metabox_nonce' . $this->unique );
281
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
282
  echo '<div class="spftestimonial spftestimonial-metabox' . esc_attr( $theme ) . '">';
283
-
284
  $current_screen = get_current_screen();
285
  $the_current_post_type = $current_screen->post_type;
286
- if ( 'spt_shortcodes' === $the_current_post_type && $shortcode_show ) { ?>
287
- <div class="sptpro-after-copy-text"><i class="fa fa-check-circle"></i> Shortcode Copied to Clipboard! </div>
288
- <div class="sp-tpro-banner">
289
- <div class="sp-tpro-logo"><img src="<?php echo esc_url( SP_TFREE_URL . 'admin/assets/images/real-testimonials-logo.svg' ); ?>" alt="Real Testimonials"></div>
290
- <div class="sp-tpro-short-links">
291
- <a href="https://shapedplugin.com/support/?user=lite" target="_blank"><i class="fa fa-life-ring"></i>Support</a>
292
- </div>
293
- </div>
294
- <div class="tpro_shortcode text-center">
295
- <div class="tpro-col-lg-6">
296
- <div class="tpro_shortcode_content">
297
- <h2 class="tpro-shortcode-title">
298
- <?php
299
- esc_html_e( 'Shortcode', 'testimonial-free' );
300
- ?>
301
- </h2>
302
- <p><?php esc_html_e( 'Copy and paste this shortcode into your posts or pages:', 'testimonial-free' ); ?></p>
303
- <div class="tpro-sc-code selectable" >[sp_testimonial
304
  <?php
305
- echo 'id="' . esc_attr( $post->ID ) . '"';
306
  ?>
307
- ]</div>
308
- </div>
309
- </div>
310
- <div class="tpro-col-lg-6">
311
- <div class="tpro_shortcode_content">
312
- <h2 class="tpro-shortcode-title">
313
- <?php
314
- esc_html_e( 'Template Include', 'testimonial-free' );
315
- ?>
316
- </h2>
317
- <p><?php esc_html_e( 'Paste the PHP code into your template file:', 'testimonial-free' ); ?></p>
318
- <div class="tpro-sc-code selectable">
319
- &lt;?php echo do_shortcode('[sp_testimonial id="<?php echo esc_attr( $post->ID ); ?>"]');
320
- ?&gt;</div>
321
  </div>
322
  </div>
 
 
 
 
 
 
 
 
 
 
 
323
  </div>
324
- <div class="sp-testimonial-shortcode-divider"></div>
 
 
325
  <?php
326
  }
327
-
328
  echo '<div class="spftestimonial-wrapper' . esc_attr( $show_all ) . '">';
329
 
330
  if ( $has_nav ) {
331
 
332
- echo '<div class="spftestimonial-nav spftestimonial-nav-metabox" data-unique="' . esc_attr( $this->unique ) . '">';
333
 
334
  echo '<ul>';
335
- $tab_key = 1;
336
- foreach ( $this->sections as $section ) {
337
 
 
 
 
 
 
 
338
  $tab_error = ( ! empty( $errors['sections'][ $tab_key ] ) ) ? '<i class="spftestimonial-label-error spftestimonial-error">!</i>' : '';
339
- $tab_icon = ( ! empty( $section['icon'] ) ) ? '<i class="spftestimonial-icon ' . esc_attr( $section['icon'] ) . '"></i>' : '';
340
 
341
  echo '<li><a href="#" data-section="' . esc_attr( $this->unique . '_' . $tab_key ) . '">' . wp_kses_post( $tab_icon . $section['title'] . $tab_error ) . '</a></li>';
342
 
343
  $tab_key++;
 
344
  }
 
345
  echo '</ul>';
346
 
347
  echo '</div>';
@@ -352,18 +384,23 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Metabox' ) ) {
352
 
353
  echo '<div class="spftestimonial-sections">';
354
 
355
- $section_key = 1;
356
 
357
  foreach ( $this->sections as $section ) {
358
 
359
- $onload = ( ! $has_nav ) ? ' spftestimonial-onload' : '';
 
 
360
 
361
- echo '<div id="spftestimonial-section-' . esc_attr( $this->unique . '_' . $section_key ) . '" class="spftestimonial-section' . esc_attr( $onload ) . '">';
 
 
 
362
 
363
- $section_icon = ( ! empty( $section['icon'] ) ) ? '<i class="spftestimonial-icon ' . $section['icon'] . '"></i>' : '';
364
- $section_title = ( ! empty( $section['title'] ) ) ? $section['title'] : '';
365
 
366
  echo ( $section_title || $section_icon ) ? '<div class="spftestimonial-section-title"><h3>' . wp_kses_post( $section_icon . $section_title ) . '</h3></div>' : '';
 
367
 
368
  if ( ! empty( $section['fields'] ) ) {
369
 
@@ -373,33 +410,35 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Metabox' ) ) {
373
  $field['_error'] = $errors['fields'][ $field['id'] ];
374
  }
375
 
 
 
 
 
376
  SPFTESTIMONIAL::field( $field, $this->get_meta_value( $field ), $this->unique, 'metabox' );
377
 
378
  }
379
  } else {
380
 
381
- echo '<div class="spftestimonial-no-option spftestimonial-text-muted">' . esc_html__( 'No option provided by developer.', 'testimonial-free' ) . '</div>';
382
 
383
  }
384
 
385
  echo '</div>';
386
 
387
  $section_key++;
 
388
  }
389
 
390
  echo '</div>';
 
391
 
392
- echo '<a class="btn btn-success" id="sp_tpro-show-preview" data-id="' . $post->ID . '"href=""> <i class="fa fa-eye" aria-hidden="true"></i> Show Preview</a>';
393
-
394
- echo '<div class="clear"></div>';
395
-
396
- if ( ! empty( $this->args['show_restore'] ) ) {
397
 
398
- echo '<div class="spftestimonial-restore-wrapper">';
399
  echo '<label>';
400
- echo '<input type="checkbox" name="' . esc_attr( $this->unique ) . '[_restore]" />';
401
- echo '<span class="button spftestimonial-button-restore">' . esc_html__( 'Restore', 'testimonial-free' ) . '</span>';
402
- echo '<span class="button spftestimonial-button-cancel">' . sprintf( '<small>( %s )</small> %s', esc_html__( 'update post for restore ', 'testimonial-free' ), esc_html__( 'Cancel', 'testimonial-free' ) ) . '</span>';
403
  echo '</label>';
404
  echo '</div>';
405
 
@@ -407,7 +446,7 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Metabox' ) ) {
407
 
408
  echo '</div>';
409
 
410
- echo ( $has_nav ) ? '<div class="spftestimonial-nav-background"></div>' : '';
411
 
412
  echo '<div class="clear"></div>';
413
 
@@ -425,26 +464,22 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Metabox' ) ) {
425
  */
426
  public function save_meta_box( $post_id ) {
427
 
428
- if ( ! wp_verify_nonce( spftestimonial_get_var( 'spftestimonial_metabox_nonce' . $this->unique ), 'spftestimonial_metabox_nonce' ) ) {
429
- return $post_id;
430
- }
 
 
431
 
432
- if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) {
433
  return $post_id;
434
  }
435
 
436
- $errors = array();
437
- $request = spftestimonial_get_var( $this->unique );
 
438
 
439
  if ( ! empty( $request ) ) {
440
 
441
- // ignore _nonce.
442
- if ( isset( $request['_nonce'] ) ) {
443
- unset( $request['_nonce'] );
444
- }
445
-
446
- // sanitize and validate.
447
- $section_key = 1;
448
  foreach ( $this->sections as $section ) {
449
 
450
  if ( ! empty( $section['fields'] ) ) {
@@ -453,75 +488,146 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Metabox' ) ) {
453
 
454
  if ( ! empty( $field['id'] ) ) {
455
 
456
- // sanitize.
457
- if ( ! empty( $field['sanitize'] ) ) {
458
-
459
- $sanitize = $field['sanitize'];
460
- $value_sanitize = isset( $request[ $field['id'] ] ) ? $request[ $field['id'] ] : '';
461
- $request[ $field['id'] ] = call_user_func( $sanitize, $value_sanitize );
462
-
 
 
 
 
 
463
  }
464
 
465
- // validate.
466
- if ( ! empty( $field['validate'] ) ) {
467
 
468
- $validate = $field['validate'];
469
- $value_validate = isset( $request[ $field['id'] ] ) ? $request[ $field['id'] ] : '';
470
- $has_validated = call_user_func( $validate, $value_validate );
471
 
472
  if ( ! empty( $has_validated ) ) {
473
 
474
- $errors['sections'][ $section_key ] = true;
475
- $errors['fields'][ $field['id'] ] = $has_validated;
476
- $request[ $field['id'] ] = $this->get_meta_value( $field );
477
 
478
  }
479
  }
480
-
481
- // auto sanitize.
482
- if ( ! isset( $request[ $field['id'] ] ) || is_null( $request[ $field['id'] ] ) ) {
483
- $request[ $field['id'] ] = '';
484
- }
485
  }
486
  }
487
  }
488
 
489
- $section_key++;
 
490
  }
491
  }
492
 
493
- $request = apply_filters( "spftestimonial_{$this->unique}_save", $request, $post_id, $this );
494
 
495
- do_action( "spftestimonial_{$this->unique}_save_before", $request, $post_id, $this );
496
 
497
- if ( empty( $request ) || ! empty( $request['_restore'] ) ) {
498
 
499
  if ( 'serialize' !== $this->args['data_type'] ) {
500
- foreach ( $request as $key => $value ) {
501
  delete_post_meta( $post_id, $key );
502
  }
503
  } else {
504
  delete_post_meta( $post_id, $this->unique );
505
  }
506
  } else {
507
-
508
  if ( 'serialize' !== $this->args['data_type'] ) {
509
- foreach ( $request as $key => $value ) {
510
  update_post_meta( $post_id, $key, $value );
511
  }
512
  } else {
513
- update_post_meta( $post_id, $this->unique, $request );
514
  }
515
 
516
  if ( ! empty( $errors ) ) {
517
- update_post_meta( $post_id, '_spftestimonial_errors', $errors );
518
  }
519
  }
 
 
 
520
 
521
- do_action( "spftestimonial_{$this->unique}_saved", $request, $post_id, $this );
 
 
 
 
 
 
 
 
 
522
 
523
- do_action( "spftestimonial_{$this->unique}_save_after", $request, $post_id, $this );
 
 
 
 
 
 
 
 
 
 
 
 
524
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
525
  }
526
  }
527
  }
5
  * @link https://shapedplugin.com
6
  * @since 2.0.0
7
  *
8
+ * @package Testimonial
9
+ * @subpackage Testimonial/framework
10
  */
11
 
12
  if ( ! defined( 'ABSPATH' ) ) {
21
  * @version 1.0.0
22
  */
23
  class SPFTESTIMONIAL_Metabox extends SPFTESTIMONIAL_Abstract {
 
24
  /**
25
  * Property.
26
  *
65
  'exclude_post_types' => array(),
66
  'page_templates' => '',
67
  'post_formats' => '',
68
+ 'show_reset' => false,
69
  'show_restore' => false,
70
  'enqueue_webfont' => true,
71
  'async_webfont' => false,
72
  'output_css' => true,
73
+ 'nav' => 'normal',
74
  'theme' => 'dark',
75
  'class' => '',
76
  'defaults' => array(),
92
  $this->page_templates = ( is_array( $this->args['page_templates'] ) ) ? $this->args['page_templates'] : array_filter( (array) $this->args['page_templates'] );
93
  $this->pre_fields = $this->pre_fields( $this->sections );
94
 
95
+ add_action( 'add_meta_boxes', array( $this, 'add_meta_box' ) );
96
+ add_action( 'save_post', array( $this, 'save_meta_box' ) );
97
+ add_action( 'edit_attachment', array( $this, 'save_meta_box' ) );
98
 
99
  if ( ! empty( $this->page_templates ) || ! empty( $this->post_formats ) || ! empty( $this->args['class'] ) ) {
100
  foreach ( $this->post_type as $post_type ) {
101
+ add_filter( 'postbox_classes_' . $post_type . '_' . $this->unique, array( $this, 'add_metabox_classes' ) );
102
  }
103
  }
104
 
105
+ add_action( 'wp_ajax_sp_tpro_preview_meta_box', array( $this, 'sp_tpro_preview_meta_box' ) );
106
  // wp enqeueu for typography and output css.
107
  parent::__construct();
108
 
109
  }
110
 
111
+ /**
112
+ * Instance.
113
+ *
114
+ * @param string $key Key of the metabox.
115
+ * @param array $params Array of parameters.
116
+ * @return statement
117
+ */
118
  public static function instance( $key, $params = array() ) {
119
  return new self( $key, $params );
120
  }
 
121
  /**
122
  * Pre fields
123
  *
137
  }
138
 
139
  return $result;
 
140
 
141
+ }
142
  /**
143
  * Add metabox classes.
144
  *
156
  $classes[] = 'spftestimonial-post-formats';
157
 
158
  // Sanitize post format for standard to default.
159
+ if ( false !== ( $key = array_search( 'standard', $this->post_formats ) ) ) {
 
160
  $this->post_formats[ $key ] = 'default';
161
  }
162
 
164
  $classes[] = 'spftestimonial-post-format-' . $format;
165
  }
166
 
167
+ if ( ! in_array( $saved_post_format, $this->post_formats ) ) {
168
+ $classes[] = 'spftestimonial-metabox-hide';
169
  } else {
170
+ $classes[] = 'spftestimonial-metabox-show';
171
  }
172
  }
173
 
181
  $classes[] = 'spftestimonial-page-' . preg_replace( '/[^a-zA-Z0-9]+/', '-', strtolower( $template ) );
182
  }
183
 
184
+ if ( ! in_array( $saved_template, $this->page_templates ) ) {
185
+ $classes[] = 'spftestimonial-metabox-hide';
186
  } else {
187
+ $classes[] = 'spftestimonial-metabox-show';
188
  }
189
  }
190
 
196
 
197
  }
198
 
199
+ /**
200
+ * Add metabox
201
+ *
202
+ * @param array $post_type The post types.
203
+ */
204
  public function add_meta_box( $post_type ) {
205
 
206
+ if ( ! in_array( $post_type, $this->args['exclude_post_types'] ) ) {
207
+ add_meta_box( $this->unique, $this->args['title'], array( $this, 'add_meta_box_content' ), $this->post_type, $this->args['context'], $this->args['priority'], $this->args );
208
  }
209
 
210
  }
211
 
212
+ /**
213
+ * Get default value.
214
+ *
215
+ * @param array $field The field value.
216
+ * @return mixed
217
+ */
218
  public function get_default( $field ) {
219
 
220
+ $default = ( isset( $field['default'] ) ) ? $field['default'] : '';
221
+ $default = ( isset( $this->args['defaults'][ $field['id'] ] ) ) ? $this->args['defaults'][ $field['id'] ] : $default;
222
 
223
  return $default;
224
 
247
  }
248
  }
249
 
250
+ $default = ( isset( $field['id'] ) ) ? $this->get_default( $field ) : '';
251
  $value = ( isset( $value ) ) ? $value : $default;
252
 
253
  return $value;
262
  * @return void
263
  */
264
  public function add_meta_box_content( $post, $callback ) {
 
265
  global $post;
266
+ $has_nav = ( count( $this->sections ) > 1 && 'side' !== $this->args['context'] ) ? true : false;
267
+ $show_all = ( ! $has_nav ) ? ' spftestimonial-show-all' : '';
268
+ $post_type = ( is_object( $post ) ) ? $post->post_type : '';
269
+ $errors = ( is_object( $post ) ) ? get_post_meta( $post->ID, '_spftestimonial_errors_' . $this->unique, true ) : array();
270
+ $errors = ( ! empty( $errors ) ) ? $errors : array();
271
+ $theme = ( $this->args['theme'] ) ? ' spftestimonial-theme-' . $this->args['theme'] : '';
272
+ $nav_type = ( 'inline' === $this->args['nav'] ) ? 'inline' : 'normal';
273
  $shortcode_show = isset( $this->args['sp_tpro_shortcode'] ) ? $this->args['sp_tpro_shortcode'] : true;
274
+ $is_preview = isset( $this->args['preview'] ) ? $this->args['preview'] : false;
 
 
 
 
 
 
275
  if ( is_object( $post ) && ! empty( $errors ) ) {
276
+ delete_post_meta( $post->ID, '_spftestimonial_errors_' . $this->unique );
277
  }
278
 
279
  wp_nonce_field( 'spftestimonial_metabox_nonce', 'spftestimonial_metabox_nonce' . $this->unique );
280
+ if ( $is_preview ) {
281
+ ?>
282
+ <div id="sp_tpro_live_preview" class="postbox " style="display: none;">
283
+ <div class="postbox-header">
284
+ <h2>Live Preview</h2>
285
+ </div>
286
+ <div class="inside">
287
+ <div class="spftestimonial spftestimonial-metabox spftestimonial-theme-dark">
288
+ <div class="spftestimonial-wrapper spftestimonial-show-all">
289
+ <div class="spftestimonial-content">
290
+ <div class="spftestimonial-sections">
291
+ <div class="spftestimonial-section hidden spftestimonial-onload">
292
+ <div class="spftestimonial-field spftestimonial-field-preview">
293
+ <div class="sp_tpro-preview-box">
294
+ <div id="sp_tpro-preview-box"></div>
295
+ </div>
296
+ <div class="clear"></div>
297
+ </div>
298
+ </div>
299
+ </div><a class="btn btn-success" id="sp_tpro-show-preview" data-id="<?php esc_attr( $post->ID ); ?>" href=""> <i
300
+ class="fa fa-eye" aria-hidden="true"></i>Show Preview</a>
301
+ </div>
302
+ <div class="clear"></div>
303
+ </div>
304
+ </div>
305
+
306
+ </div>
307
+ <div class="sp-testimonial-shortcode-divider"></div>
308
+ </div>
309
+ <?php
310
+ }
311
  echo '<div class="spftestimonial spftestimonial-metabox' . esc_attr( $theme ) . '">';
 
312
  $current_screen = get_current_screen();
313
  $the_current_post_type = $current_screen->post_type;
314
+ if ( 'spt_shortcodes' === $the_current_post_type && $shortcode_show ) {
315
+ ?>
316
+ <div class="sptpro-after-copy-text"><i class="fa fa-check-circle"></i> Shortcode Copied to Clipboard! </div>
317
+ <div class="sp-tpro-banner">
318
+ <div class="sp-tpro-logo"><img
319
+ src="<?php echo esc_url( SP_TFREE_URL . 'admin/assets/images/real-testimonials-logo.svg' ); ?>"
320
+ alt="Real Testimonials"></div>
321
+ <div class="sp-tpro-short-links">
322
+ <a href="https://shapedplugin.com/support/" target="_blank"><i class="fa fa-life-ring"></i>Support</a>
323
+ </div>
324
+ </div>
325
+ <div class="tpro_shortcode text-center">
326
+ <div class="tpro-col-lg-6">
327
+ <div class="tpro_shortcode_content">
328
+ <h2 class="tpro-shortcode-title">
 
 
 
329
  <?php
330
+ esc_attr_e( 'Shortcode', 'testimonial-free' );
331
  ?>
332
+ </h2>
333
+ <p><?php esc_attr_e( 'Copy and paste this shortcode into your posts or pages:', 'testimonial-free' ); ?></p>
334
+ <div class="tpro-sc-code selectable">[sp_testimonial <?php echo 'id="' . esc_attr( $post->ID ) . '"'; ?>]
 
 
 
 
 
 
 
 
 
 
 
335
  </div>
336
  </div>
337
+ </div>
338
+ <div class="tpro-col-lg-6">
339
+ <div class="tpro_shortcode_content">
340
+ <h2 class="tpro-shortcode-title">
341
+ <?php
342
+ esc_attr_e( 'Template Include', 'testimonial-free' );
343
+ ?>
344
+ </h2>
345
+ <p><?php esc_attr_e( 'Paste the PHP code into your template file:', 'testimonial-free' ); ?></p>
346
+ <div class="tpro-sc-code selectable">&lt;?php echo do_shortcode('[sp_testimonial
347
+ id="<?php echo esc_attr( $post->ID ); ?>"]');?&gt;</div>
348
  </div>
349
+ </div>
350
+ </div>
351
+ <div class="sp-testimonial-shortcode-divider"></div>
352
  <?php
353
  }
 
354
  echo '<div class="spftestimonial-wrapper' . esc_attr( $show_all ) . '">';
355
 
356
  if ( $has_nav ) {
357
 
358
+ echo '<div class="spftestimonial-nav spftestimonial-nav-' . esc_attr( $nav_type ) . ' spftestimonial-nav-metabox">';
359
 
360
  echo '<ul>';
 
 
361
 
362
+ $tab_key = 0;
363
+
364
+ foreach ( $this->sections as $section ) {
365
+ if ( ! empty( $section['post_type'] ) && ! in_array( $post_type, array_filter( (array) $section['post_type'] ) ) ) {
366
+ continue;
367
+ }
368
  $tab_error = ( ! empty( $errors['sections'][ $tab_key ] ) ) ? '<i class="spftestimonial-label-error spftestimonial-error">!</i>' : '';
369
+ $tab_icon = ( ! empty( $section['icon'] ) ) ? '<i class="spftestimonial-tab-icon ' . esc_attr( $section['icon'] ) . '"></i>' : '';
370
 
371
  echo '<li><a href="#" data-section="' . esc_attr( $this->unique . '_' . $tab_key ) . '">' . wp_kses_post( $tab_icon . $section['title'] . $tab_error ) . '</a></li>';
372
 
373
  $tab_key++;
374
+
375
  }
376
+
377
  echo '</ul>';
378
 
379
  echo '</div>';
384
 
385
  echo '<div class="spftestimonial-sections">';
386
 
387
+ $section_key = 0;
388
 
389
  foreach ( $this->sections as $section ) {
390
 
391
+ if ( ! empty( $section['post_type'] ) && ! in_array( $post_type, array_filter( (array) $section['post_type'] ) ) ) {
392
+ continue;
393
+ }
394
 
395
+ $section_onload = ( ! $has_nav ) ? ' spftestimonial-onload' : '';
396
+ $section_class = ( ! empty( $section['class'] ) ) ? ' ' . $section['class'] : '';
397
+ $section_title = ( ! empty( $section['title'] ) ) ? $section['title'] : '';
398
+ $section_icon = ( ! empty( $section['icon'] ) ) ? '<i class="spftestimonial-section-icon ' . esc_attr( $section['icon'] ) . '"></i>' : '';
399
 
400
+ echo '<div class="spftestimonial-section hidden' . esc_attr( $section_onload . $section_class ) . '">';
 
401
 
402
  echo ( $section_title || $section_icon ) ? '<div class="spftestimonial-section-title"><h3>' . wp_kses_post( $section_icon . $section_title ) . '</h3></div>' : '';
403
+ echo ( ! empty( $section['description'] ) ) ? '<div class="spftestimonial-field spftestimonial-section-description">' . wp_kses_post( $section['description'] ) . '</div>' : '';
404
 
405
  if ( ! empty( $section['fields'] ) ) {
406
 
410
  $field['_error'] = $errors['fields'][ $field['id'] ];
411
  }
412
 
413
+ if ( ! empty( $field['id'] ) ) {
414
+ $field['default'] = $this->get_default( $field );
415
+ }
416
+
417
  SPFTESTIMONIAL::field( $field, $this->get_meta_value( $field ), $this->unique, 'metabox' );
418
 
419
  }
420
  } else {
421
 
422
+ echo '<div class="spftestimonial-no-option">' . esc_html__( 'No data available.', 'testimonial-free' ) . '</div>';
423
 
424
  }
425
 
426
  echo '</div>';
427
 
428
  $section_key++;
429
+
430
  }
431
 
432
  echo '</div>';
433
+ echo '<a class="btn btn-success" id="sp_tpro-show-preview" data-id="' . esc_attr( $post->ID ) . '"href=""> <i class="fa fa-eye" aria-hidden="true"></i> Show Preview</a>';
434
 
435
+ if ( ! empty( $this->args['show_restore'] ) || ! empty( $this->args['show_reset'] ) ) {
 
 
 
 
436
 
437
+ echo '<div class="spftestimonial-sections-reset">';
438
  echo '<label>';
439
+ echo '<input type="checkbox" name="' . esc_attr( $this->unique ) . '[_reset]" />';
440
+ echo '<span class="button spftestimonial-button-reset">' . esc_html__( 'Reset', 'testimonial-free' ) . '</span>';
441
+ echo '<span class="button spftestimonial-button-cancel">' . sprintf( '<small>( %s )</small> %s', esc_html__( 'update post', 'testimonial-free' ), esc_html__( 'Cancel', 'testimonial-free' ) ) . '</span>';
442
  echo '</label>';
443
  echo '</div>';
444
 
446
 
447
  echo '</div>';
448
 
449
+ echo ( $has_nav && 'normal' === $nav_type ) ? '<div class="spftestimonial-nav-background"></div>' : '';
450
 
451
  echo '<div class="clear"></div>';
452
 
464
  */
465
  public function save_meta_box( $post_id ) {
466
 
467
+ $count = 1;
468
+ $data = array();
469
+ $errors = array();
470
+ $noncekey = 'spftestimonial_metabox_nonce' . $this->unique;
471
+ $nonce = ( ! empty( $_POST[ $noncekey ] ) ) ? sanitize_text_field( wp_unslash( $_POST[ $noncekey ] ) ) : '';
472
 
473
+ if ( ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) || ! wp_verify_nonce( $nonce, 'spftestimonial_metabox_nonce' ) ) {
474
  return $post_id;
475
  }
476
 
477
+ // XSS ok.
478
+ // No worries, This "POST" requests is sanitizing in the below foreach.
479
+ $request = ( ! empty( $_POST[ $this->unique ] ) ) ? wp_unslash( $_POST[ $this->unique ] ) : array();
480
 
481
  if ( ! empty( $request ) ) {
482
 
 
 
 
 
 
 
 
483
  foreach ( $this->sections as $section ) {
484
 
485
  if ( ! empty( $section['fields'] ) ) {
488
 
489
  if ( ! empty( $field['id'] ) ) {
490
 
491
+ $field_id = $field['id'];
492
+ $field_value = isset( $request[ $field_id ] ) ? $request[ $field_id ] : '';
493
+
494
+ // Sanitize "post" request of field.
495
+ if ( isset( $field['sanitize'] ) && is_callable( $field['sanitize'] ) ) {
496
+ $data[ $field_id ] = call_user_func( $field['sanitize'], $field_value );
497
+ } else {
498
+ if ( is_array( $field_value ) ) {
499
+ $data[ $field_id ] = wp_kses_post_deep( $field_value );
500
+ } else {
501
+ $data[ $field_id ] = wp_kses_post( $field_value );
502
+ }
503
  }
504
 
505
+ // Validate "post" request of field.
506
+ if ( isset( $field['validate'] ) && is_callable( $field['validate'] ) ) {
507
 
508
+ $has_validated = call_user_func( $field['validate'], $field_value );
 
 
509
 
510
  if ( ! empty( $has_validated ) ) {
511
 
512
+ $errors['sections'][ $count ] = true;
513
+ $errors['fields'][ $field_id ] = $has_validated;
514
+ $data[ $field_id ] = $this->get_meta_value( $field );
515
 
516
  }
517
  }
 
 
 
 
 
518
  }
519
  }
520
  }
521
 
522
+ $count++;
523
+
524
  }
525
  }
526
 
527
+ $data = apply_filters( "spftestimonial_{$this->unique}_save", $data, $post_id, $this );
528
 
529
+ do_action( "spftestimonial_{$this->unique}_save_before", $data, $post_id, $this );
530
 
531
+ if ( empty( $data ) || ! empty( $request['_reset'] ) ) {
532
 
533
  if ( 'serialize' !== $this->args['data_type'] ) {
534
+ foreach ( $data as $key => $value ) {
535
  delete_post_meta( $post_id, $key );
536
  }
537
  } else {
538
  delete_post_meta( $post_id, $this->unique );
539
  }
540
  } else {
 
541
  if ( 'serialize' !== $this->args['data_type'] ) {
542
+ foreach ( $data as $key => $value ) {
543
  update_post_meta( $post_id, $key, $value );
544
  }
545
  } else {
546
+ update_post_meta( $post_id, $this->unique, $data );
547
  }
548
 
549
  if ( ! empty( $errors ) ) {
550
+ update_post_meta( $post_id, '_spftestimonial_errors_' . $this->unique, $errors );
551
  }
552
  }
553
+ do_action( "spftestimonial_{$this->unique}_saved", $data, $post_id, $this );
554
+ do_action( "spftestimonial_{$this->unique}_save_after", $data, $post_id, $this );
555
+ }
556
 
557
+ /**
558
+ * Function Backed preview.
559
+ *
560
+ * @since 2.2.5
561
+ */
562
+ public function sp_tpro_preview_meta_box() {
563
+ $nonce = isset( $_POST['ajax_nonce'] ) ? sanitize_text_field( wp_unslash( $_POST['ajax_nonce'] ) ) : '';
564
+ if ( ! wp_verify_nonce( $nonce, 'spftestimonial_metabox_nonce' ) ) {
565
+ return;
566
+ }
567
 
568
+ $data = array();
569
+ $count = 1;
570
+ $errors = array();
571
+ // XSS ok.
572
+ // No worries, This "POST" requests is sanitizing in the below array foreach.
573
+ $request = ! empty( $_POST['data'] ) ? wp_unslash( $_POST['data'] ) : ''; // phpcs:ignore
574
+ parse_str( $request, $request );
575
+ // Preset Layouts.
576
+ $post_id = absint( $request['post_ID'] );
577
+ $setting_options = get_option( 'sp_testimonial_pro_options' );
578
+ $main_section_title = wp_kses_post( $request['post_title'] );
579
+ $request = $request['sp_tpro_shortcode_options'];
580
+ if ( ! empty( $request ) ) {
581
 
582
+ foreach ( $this->sections as $section ) {
583
+
584
+ if ( ! empty( $section['fields'] ) ) {
585
+
586
+ foreach ( $section['fields'] as $field ) {
587
+
588
+ if ( ! empty( $field['id'] ) ) {
589
+
590
+ $field_id = $field['id'];
591
+ $field_value = isset( $request[ $field_id ] ) ? $request[ $field_id ] : '';
592
+
593
+ // Sanitize "post" request of field.
594
+ if ( isset( $field['sanitize'] ) && is_callable( $field['sanitize'] ) ) {
595
+ $data[ $field_id ] = call_user_func( $field['sanitize'], $field_value );
596
+ } else {
597
+ if ( is_array( $field_value ) ) {
598
+ $data[ $field_id ] = wp_kses_post_deep( $field_value );
599
+ } else {
600
+ $data[ $field_id ] = wp_kses_post( $field_value );
601
+ }
602
+ }
603
+ // Validate "post" request of field.
604
+ if ( isset( $field['validate'] ) && is_callable( $field['validate'] ) ) {
605
+
606
+ $has_validated = call_user_func( $field['validate'], $field_value );
607
+
608
+ if ( ! empty( $has_validated ) ) {
609
+
610
+ $errors['sections'][ $count ] = true;
611
+ $errors['fields'][ $field_id ] = $has_validated;
612
+ $data[ $field_id ] = $this->get_meta_value( $field );
613
+
614
+ }
615
+ }
616
+ }
617
+ }
618
+ }
619
+
620
+ $count++;
621
+
622
+ }
623
+ }
624
+ $tfree_one_star = TFREE_Shortcode_Render::$tfree_one_star;
625
+ $tfree_two_star = TFREE_Shortcode_Render::$tfree_two_star;
626
+ $tfree_three_star = TFREE_Shortcode_Render::$tfree_three_star;
627
+ $tfree_four_star = TFREE_Shortcode_Render::$tfree_four_star;
628
+ $tfree_five_star = TFREE_Shortcode_Render::$tfree_five_star;
629
+ TFREE_Shortcode_Render::sp_tpro_html_show( $post_id, $setting_options, $data, $tfree_one_star, $tfree_two_star, $tfree_three_star, $tfree_four_star, $tfree_five_star, $main_section_title );
630
+ die();
631
  }
632
  }
633
  }
admin/views/framework/classes/options.class.php CHANGED
@@ -1,4 +1,5 @@
1
  <?php
 
2
  /**
3
  * Framework options.class file.
4
  *
@@ -83,11 +84,11 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Options' ) ) {
83
  */
84
  public $args = array(
85
 
86
- // framework title.
87
  'framework_title' => '',
88
  'framework_class' => '',
89
 
90
- // menu settings.
91
  'menu_title' => '',
92
  'menu_slug' => '',
93
  'menu_type' => 'menu',
@@ -96,11 +97,12 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Options' ) ) {
96
  'menu_position' => null,
97
  'menu_hidden' => false,
98
  'menu_parent' => '',
 
99
 
100
- // menu extras.
101
  'show_bar_menu' => true,
102
  'show_sub_menu' => true,
103
- 'show_network_menu' => true,
104
  'show_in_customizer' => false,
105
 
106
  'show_search' => true,
@@ -112,17 +114,18 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Options' ) ) {
112
  'sticky_header' => true,
113
  'save_defaults' => true,
114
  'ajax_save' => true,
 
115
 
116
- // admin bar menu settings.
117
  'admin_bar_menu_icon' => '',
118
  'admin_bar_menu_priority' => 80,
119
 
120
- // footer.
121
  'footer_text' => '',
122
  'footer_after' => '',
123
  'footer_credit' => '',
124
 
125
- // database model.
126
  'database' => '', // options, transient, theme_mod, network.
127
  'transient_time' => 0,
128
 
@@ -130,14 +133,15 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Options' ) ) {
130
  'contextual_help' => array(),
131
  'contextual_help_sidebar' => '',
132
 
133
- // typography options.
134
  'enqueue_webfont' => true,
135
  'async_webfont' => false,
136
 
137
- // others.
138
  'output_css' => true,
139
 
140
- // theme.
 
141
  'theme' => 'dark',
142
  'class' => '',
143
 
@@ -168,12 +172,12 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Options' ) ) {
168
  $this->set_options();
169
  $this->save_defaults();
170
 
171
- add_action( 'admin_menu', array( &$this, 'add_admin_menu' ) );
172
- add_action( 'admin_bar_menu', array( &$this, 'add_admin_bar_menu' ), $this->args['admin_bar_menu_priority'] );
173
- add_action( 'wp_ajax_spftestimonial_' . $this->unique . '_ajax_save', array( &$this, 'ajax_save' ) );
174
 
175
- if ( ! empty( $this->args['show_network_menu'] ) ) {
176
- add_action( 'network_admin_menu', array( &$this, 'add_admin_menu' ) );
177
  }
178
 
179
  // wp enqeueu for typography and output css.
@@ -191,7 +195,6 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Options' ) ) {
191
  public static function instance( $key, $params = array() ) {
192
  return new self( $key, $params );
193
  }
194
-
195
  /**
196
  * Pre_tabs
197
  *
@@ -224,7 +227,6 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Options' ) ) {
224
 
225
  return wp_list_sort( $result, array( 'priority' => 'ASC' ), 'ASC', true );
226
  }
227
-
228
  /**
229
  * Pre_fields
230
  *
@@ -245,7 +247,6 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Options' ) ) {
245
 
246
  return $result;
247
  }
248
-
249
  /**
250
  * Pre_sections
251
  *
@@ -259,7 +260,8 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Options' ) ) {
259
  foreach ( $this->pre_tabs as $tab ) {
260
  if ( ! empty( $tab['subs'] ) ) {
261
  foreach ( $tab['subs'] as $sub ) {
262
- $result[] = $sub;
 
263
  }
264
  }
265
  if ( empty( $tab['subs'] ) ) {
@@ -278,48 +280,40 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Options' ) ) {
278
  */
279
  public function add_admin_bar_menu( $wp_admin_bar ) {
280
 
 
 
 
 
281
  if ( ! empty( $this->args['show_bar_menu'] ) && empty( $this->args['menu_hidden'] ) ) {
282
 
283
  global $submenu;
284
 
285
  $menu_slug = $this->args['menu_slug'];
286
- $menu_icon = ( ! empty( $this->args['admin_bar_menu_icon'] ) ) ? '<span class="spftestimonial-ab-icon ab-icon ' . $this->args['admin_bar_menu_icon'] . '"></span>' : '';
287
 
288
  $wp_admin_bar->add_node(
289
  array(
290
  'id' => $menu_slug,
291
- 'title' => $menu_icon . $this->args['menu_title'],
292
- 'href' => ( is_network_admin() ) ? network_admin_url( 'admin.php?page=' . $menu_slug ) : admin_url( 'admin.php?page=' . $menu_slug ),
293
  )
294
  );
295
 
296
  if ( ! empty( $submenu[ $menu_slug ] ) ) {
297
- foreach ( $submenu[ $menu_slug ] as $key => $menu ) {
298
  $wp_admin_bar->add_node(
299
  array(
300
  'parent' => $menu_slug,
301
- 'id' => $menu_slug . '-' . $key,
302
- 'title' => $menu[0],
303
- 'href' => ( is_network_admin() ) ? network_admin_url( 'admin.php?page=' . $menu[2] ) : admin_url( 'admin.php?page=' . $menu[2] ),
304
  )
305
  );
306
  }
307
  }
308
-
309
- if ( ! empty( $this->args['show_network_menu'] ) ) {
310
- $wp_admin_bar->add_node(
311
- array(
312
- 'parent' => 'network-admin',
313
- 'id' => $menu_slug . '-network-admin',
314
- 'title' => $menu_icon . $this->args['menu_title'],
315
- 'href' => network_admin_url( 'admin.php?page=' . $menu_slug ),
316
- )
317
- );
318
- }
319
  }
320
 
321
  }
322
-
323
  /**
324
  * Ajax_save
325
  *
@@ -327,46 +321,31 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Options' ) ) {
327
  */
328
  public function ajax_save() {
329
 
330
- if ( ! empty( $_POST['data'] ) ) {
331
-
332
- $_POST = json_decode( wp_unslash( wp_kses_post_deep( $_POST['data'] ) ), true ); // phpcs:ignore
333
-
334
- if ( wp_verify_nonce( spftestimonial_get_var( 'spftestimonial_options_nonce' . $this->unique ), 'spftestimonial_options_nonce' ) ) {
335
 
336
- $this->set_options();
337
-
338
- wp_send_json_success(
339
- array(
340
- 'success' => true,
341
- 'notice' => $this->notice,
342
- 'errors' => $this->errors,
343
- )
344
- );
345
-
346
- }
347
  }
348
 
349
- wp_send_json_error(
350
- array(
351
- 'success' => false,
352
- 'error' => esc_html__( 'Error while saving.', 'testimonial-free' ),
353
- )
354
- );
355
-
356
  }
357
 
358
  /**
359
  * Get default value
360
  *
361
  * @param mixed $field field.
362
- * @param array $options options.
363
  * @return mixed
364
  */
365
- public function get_default( $field, $options = array() ) {
366
 
367
- $default = ( isset( $this->args['defaults'][ $field['id'] ] ) ) ? $this->args['defaults'][ $field['id'] ] : '';
368
- $default = ( isset( $field['default'] ) ) ? $field['default'] : $default;
369
- $default = ( isset( $options[ $field['id'] ] ) ) ? $options[ $field['id'] ] : $default;
370
 
371
  return $default;
372
 
@@ -383,7 +362,7 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Options' ) ) {
383
 
384
  foreach ( $this->pre_fields as $field ) {
385
  if ( ! empty( $field['id'] ) ) {
386
- $this->options[ $field['id'] ] = $this->get_default( $field, $this->options );
387
  }
388
  }
389
 
@@ -396,33 +375,47 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Options' ) ) {
396
  /**
397
  * Set options.
398
  *
 
399
  * @return bool
400
  */
401
- public function set_options() {
 
 
 
 
 
 
 
 
 
 
 
402
 
403
- if ( wp_verify_nonce( spftestimonial_get_var( 'spftestimonial_options_nonce' . $this->unique ), 'spftestimonial_options_nonce' ) ) {
404
 
405
- $request = spftestimonial_get_var( $this->unique, array() );
406
- $transient = spftestimonial_get_var( 'spftestimonial_transient' );
407
  $section_id = ( ! empty( $transient['section'] ) ) ? $transient['section'] : '';
408
 
409
- // import data.
410
- if ( ! empty( $transient['spftestimonial_import_data'] ) ) {
411
 
412
- $import_data = json_decode( stripslashes( trim( $transient['spftestimonial_import_data'] ) ), true );
413
- $request = ( is_array( $import_data ) ) ? $import_data : array();
 
 
 
 
414
 
415
- $this->notice = esc_html__( 'Success. Imported backup options.', 'testimonial-free' );
416
 
417
- } elseif ( ! empty( $transient['reset'] ) ) {
418
 
419
  foreach ( $this->pre_fields as $field ) {
420
  if ( ! empty( $field['id'] ) ) {
421
- $request[ $field['id'] ] = $this->get_default( $field );
422
  }
423
  }
424
 
425
- $this->notice = esc_html__( 'Default options restored.', 'testimonial-free' );
426
 
427
  } elseif ( ! empty( $transient['reset_section'] ) && ! empty( $section_id ) ) {
428
 
@@ -430,93 +423,98 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Options' ) ) {
430
 
431
  foreach ( $this->pre_sections[ $section_id - 1 ]['fields'] as $field ) {
432
  if ( ! empty( $field['id'] ) ) {
433
- $request[ $field['id'] ] = $this->get_default( $field );
434
  }
435
  }
436
  }
437
 
438
- $this->notice = esc_html__( 'Default options restored for only this section.', 'testimonial-free' );
 
 
439
 
440
  } else {
441
 
442
- // sanitize and validate.
443
  foreach ( $this->pre_fields as $field ) {
444
 
445
  if ( ! empty( $field['id'] ) ) {
446
 
447
- // sanitize.
448
- if ( ! empty( $field['sanitize'] ) ) {
449
 
450
- $sanitize = $field['sanitize'];
451
- $value_sanitize = isset( $request[ $field['id'] ] ) ? $request[ $field['id'] ] : '';
452
- $request[ $field['id'] ] = call_user_func( $sanitize, $value_sanitize );
 
453
 
 
 
 
 
 
 
 
 
 
454
  }
455
 
456
- // validate.
457
- if ( ! empty( $field['validate'] ) ) {
458
 
459
- $value_validate = isset( $request[ $field['id'] ] ) ? $request[ $field['id'] ] : '';
460
- $has_validated = call_user_func( $field['validate'], $value_validate );
461
 
462
  if ( ! empty( $has_validated ) ) {
463
- $request[ $field['id'] ] = ( isset( $this->options[ $field['id'] ] ) ) ? $this->options[ $field['id'] ] : '';
464
- $this->errors[ $field['id'] ] = $has_validated;
465
- }
466
- }
467
 
468
- // auto sanitize.
469
- if ( ! isset( $request[ $field['id'] ] ) || is_null( $request[ $field['id'] ] ) ) {
470
- $request[ $field['id'] ] = '';
 
471
  }
472
  }
473
  }
474
  }
475
 
476
- // ignore nonce requests.
477
- if ( isset( $request['_nonce'] ) ) {
478
- unset( $request['_nonce'] ); }
479
-
480
- $request = wp_unslash( $request );
481
-
482
- $request = apply_filters( "spftestimonial_{$this->unique}_save", $request, $this );
483
 
484
- do_action( "spftestimonial_{$this->unique}_save_before", $request, $this );
485
 
486
- $this->options = $request;
487
 
488
- $this->save_options( $request );
489
 
490
- do_action( "spftestimonial_{$this->unique}_save_after", $request, $this );
491
 
492
  if ( empty( $this->notice ) ) {
493
  $this->notice = esc_html__( 'Settings saved.', 'testimonial-free' );
494
  }
 
 
 
495
  }
496
 
497
- return true;
498
 
499
  }
500
 
501
  /**
502
  * Save options database.
503
  *
504
- * @param mixed $request Request.
505
  * @return void
506
  */
507
- public function save_options( $request ) {
508
 
509
  if ( 'transient' === $this->args['database'] ) {
510
- set_transient( $this->unique, $request, $this->args['transient_time'] );
511
  } elseif ( 'theme_mod' === $this->args['database'] ) {
512
- set_theme_mod( $this->unique, $request );
513
  } elseif ( 'network' === $this->args['database'] ) {
514
- update_site_option( $this->unique, $request );
515
  } else {
516
- update_option( $this->unique, $request );
517
  }
518
 
519
- do_action( "spftestimonial_{$this->unique}_saved", $request, $this );
520
 
521
  }
522
 
@@ -552,30 +550,25 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Options' ) ) {
552
  */
553
  public function add_admin_menu() {
554
 
555
- extract( $this->args ); // phpcs:ignore
556
 
557
  if ( 'submenu' === $menu_type ) {
558
 
559
- $menu_page = call_user_func( 'add_submenu_page', $menu_parent, $menu_title, $menu_title, $menu_capability, $menu_slug, array( &$this, 'add_options_html' ) );
560
 
561
  } else {
562
 
563
- $menu_page = call_user_func( 'add_menu_page', $menu_title, $menu_title, $menu_capability, $menu_slug, array( &$this, 'add_options_html' ), $menu_icon, $menu_position );
 
 
 
 
564
 
565
  if ( ! empty( $this->args['show_sub_menu'] ) && count( $this->pre_tabs ) > 1 ) {
566
 
567
- // create submenus.
568
- $tab_key = 1;
569
  foreach ( $this->pre_tabs as $section ) {
570
-
571
- call_user_func( 'add_submenu_page', $menu_slug, $section['title'], $section['title'], $menu_capability, $menu_slug . '#tab=' . $tab_key, '__return_null' );
572
-
573
- if ( ! empty( $section['subs'] ) ) {
574
- $tab_key += ( count( $section['subs'] ) - 1 );
575
- }
576
-
577
- $tab_key++;
578
-
579
  }
580
 
581
  remove_submenu_page( $menu_slug, $menu_slug );
@@ -587,10 +580,9 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Options' ) ) {
587
  }
588
  }
589
 
590
- add_action( 'load-' . $menu_page, array( &$this, 'add_page_on_load' ) );
591
 
592
  }
593
-
594
  /**
595
  * Add_page_on_load
596
  *
@@ -612,7 +604,6 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Options' ) ) {
612
  }
613
 
614
  }
615
-
616
  /**
617
  * Error check
618
  *
@@ -663,18 +654,21 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Options' ) ) {
663
  $wrapper_class = ( $this->args['framework_class'] ) ? ' ' . $this->args['framework_class'] : '';
664
  $theme = ( $this->args['theme'] ) ? ' spftestimonial-theme-' . $this->args['theme'] : '';
665
  $class = ( $this->args['class'] ) ? ' ' . $this->args['class'] : '';
 
 
666
 
667
  do_action( 'spftestimonial_options_before' );
668
- $notice_class = ( ! empty( $this->notice ) ) ? ' spftestimonial-form-show' : '';
669
- $notice_text = ( ! empty( $this->notice ) ) ? $this->notice : '';
670
-
671
- echo '<div class="spftestimonial-form-result spftestimonial-form-success' . esc_attr( $notice_class ) . '">' . wp_kses_post( $notice_text ) . '</div>';
672
 
673
  echo '<div class="spftestimonial spftestimonial-options' . esc_attr( $theme . $class . $wrapper_class ) . '" data-slug="' . esc_attr( $this->args['menu_slug'] ) . '" data-unique="' . esc_attr( $this->unique ) . '">';
 
 
 
 
 
674
 
675
  echo '<div class="spftestimonial-container">';
676
 
677
- echo '<form method="post" action="" enctype="multipart/form-data" id="spftestimonial-form" autocomplete="off">';
678
 
679
  echo '<input type="hidden" class="spftestimonial-section-id" name="spftestimonial_transient[section]" value="1">';
680
 
@@ -694,16 +688,17 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Options' ) ) {
694
 
695
  echo '<div class="spftestimonial-header-right">';
696
 
697
- echo ( $has_nav && $this->args['show_all_options'] ) ? '<div class="spftestimonial-expand-all" title="' . esc_html__( 'show all options', 'testimonial-free' ) . '"><i class="fa fa-outdent"></i></div>' : '';
698
 
699
- echo ( $this->args['show_search'] ) ? '<div class="spftestimonial-search"><input type="text" name="spftestimonial-search" placeholder="' . esc_html__( 'Search option(s)', 'testimonial-free' ) . '" autocomplete="off" /></div>' : '';
700
  if ( $show_buttons ) {
701
  echo '<div class="spftestimonial-buttons">';
702
- echo '<input type="submit" name="' . esc_attr( $this->unique ) . '[_nonce][save]" class="button button-primary spftestimonial-top-save spftestimonial-save' . esc_attr( $ajax_class ) . '" value="' . esc_html__( 'Save', 'testimonial-free' ) . '" data-save="' . esc_html__( 'Saving...', 'testimonial-free' ) . '">';
703
- echo ( $this->args['show_reset_section'] ) ? '<input type="submit" name="spftestimonial_transient[reset_section]" class="button button-secondary spftestimonial-reset-section spftestimonial-confirm" value="' . esc_html__( 'Reset Section', 'testimonial-free' ) . '" data-confirm="' . esc_html__( 'Are you sure to reset this section options?', 'testimonial-free' ) . '">' : '';
704
- echo ( $this->args['show_reset_all'] ) ? '<input type="submit" name="spftestimonial_transient[reset]" class="button spftestimonial-warning-primary spftestimonial-reset-all spftestimonial-confirm" value="' . esc_html__( 'Reset All', 'testimonial-free' ) . '" data-confirm="' . esc_html__( 'Are you sure to reset all options?', 'testimonial-free' ) . '">' : '';
705
  echo '</div>';
706
  }
 
707
  echo '</div>';
708
 
709
  echo '<div class="clear"></div>';
@@ -713,33 +708,33 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Options' ) ) {
713
  echo '<div class="spftestimonial-wrapper' . esc_attr( $show_all ) . '">';
714
 
715
  if ( $has_nav ) {
716
- echo '<div class="spftestimonial-nav spftestimonial-nav-options">';
717
 
718
- echo '<ul>';
719
 
720
- $tab_key = 1;
721
 
722
  foreach ( $this->pre_tabs as $tab ) {
723
 
 
724
  $tab_error = $this->error_check( $tab );
725
- $tab_icon = ( ! empty( $tab['icon'] ) ) ? '<i class="' . $tab['icon'] . '"></i>' : '';
726
 
727
  if ( ! empty( $tab['subs'] ) ) {
728
 
729
- echo '<li class="spftestimonial-tab-depth-0">';
730
 
731
- echo '<a href="#tab=' . esc_attr( $tab_key ) . '" class="spftestimonial-arrow">' . wp_kses_post( $tab_icon . $tab['title'] . $tab_error ) . '</a>';
732
 
733
  echo '<ul>';
734
 
735
  foreach ( $tab['subs'] as $sub ) {
736
 
 
737
  $sub_error = $this->error_check( $sub );
738
- $sub_icon = ( ! empty( $sub['icon'] ) ) ? '<i class="' . $sub['icon'] . '"></i>' : '';
739
 
740
- echo '<li class="spftestimonial-tab-depth-1"><a id="spftestimonial-tab-link-' . esc_attr( $tab_key ) . '" href="#tab=' . esc_attr( $tab_key ) . '">' . wp_kses_post( $sub_icon . $sub['title'] . $sub_error ) . '</a></li>';
741
 
742
- $tab_key++;
743
  }
744
 
745
  echo '</ul>';
@@ -748,9 +743,8 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Options' ) ) {
748
 
749
  } else {
750
 
751
- echo '<li class="spftestimonial-tab-depth-0"><a id="spftestimonial-tab-link-' . esc_attr( $tab_key ) . '" href="#tab=' . esc_attr( $tab_key ) . '">' . wp_kses_post( $tab_icon . $tab['title'] . $tab_error ) . '</a></li>';
752
 
753
- $tab_key++;
754
  }
755
  }
756
 
@@ -764,15 +758,17 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Options' ) ) {
764
 
765
  echo '<div class="spftestimonial-sections">';
766
 
767
- $section_key = 1;
768
-
769
  foreach ( $this->pre_sections as $section ) {
770
 
771
- $onload = ( ! $has_nav ) ? ' spftestimonial-onload' : '';
772
- $section_icon = ( ! empty( $section['icon'] ) ) ? '<i class="spftestimonial-icon ' . $section['icon'] . '"></i>' : '';
 
 
 
 
773
 
774
- echo '<div id="spftestimonial-section-' . esc_attr( $section_key ) . '" class="spftestimonial-section' . esc_attr( $onload ) . '">';
775
- echo ( $has_nav ) ? '<div class="spftestimonial-section-title"><h3>' . wp_kses_post( $section_icon . $section['title'] ) . '</h3></div>' : '';
776
  echo ( ! empty( $section['description'] ) ) ? '<div class="spftestimonial-field spftestimonial-section-description">' . wp_kses_post( $section['description'] ) . '</div>' : '';
777
 
778
  if ( ! empty( $section['fields'] ) ) {
@@ -785,6 +781,10 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Options' ) ) {
785
  $field['_error'] = $is_field_error;
786
  }
787
 
 
 
 
 
788
  $value = ( ! empty( $field['id'] ) && isset( $this->options[ $field['id'] ] ) ) ? $this->options[ $field['id'] ] : '';
789
 
790
  SPFTESTIMONIAL::field( $field, $value, $this->unique, 'options' );
@@ -792,13 +792,12 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Options' ) ) {
792
  }
793
  } else {
794
 
795
- echo '<div class="spftestimonial-no-option spftestimonial-text-muted">' . esc_html__( 'No option provided by developer.', 'testimonial-free' ) . '</div>';
796
 
797
  }
798
 
799
  echo '</div>';
800
 
801
- $section_key++;
802
  }
803
 
804
  echo '</div>';
@@ -807,7 +806,7 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Options' ) ) {
807
 
808
  echo '</div>';
809
 
810
- echo '<div class="spftestimonial-nav-background"></div>';
811
 
812
  echo '</div>';
813
 
@@ -817,8 +816,8 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Options' ) ) {
817
 
818
  echo '<div class="spftestimonial-buttons">';
819
  echo '<input type="submit" name="spftestimonial_transient[save]" class="button button-primary spftestimonial-save' . esc_attr( $ajax_class ) . '" value="' . esc_html__( 'Save', 'testimonial-free' ) . '" data-save="' . esc_html__( 'Saving...', 'testimonial-free' ) . '">';
820
- echo ( $this->args['show_reset_section'] ) ? '<input type="submit" name="spftestimonial_transient[reset_section]" class="button button-secondary spftestimonial-reset-section spftestimonial-confirm" value="' . esc_html__( 'Reset Section', 'testimonial-free' ) . '" data-confirm="' . esc_html__( 'Are you sure to reset this section options?', 'testimonial-free' ) . '">' : '';
821
- echo ( $this->args['show_reset_all'] ) ? '<input type="submit" name="spftestimonial_transient[reset]" class="button spftestimonial-warning-primary spftestimonial-reset-all spftestimonial-confirm" value="' . esc_html__( 'Reset All', 'testimonial-free' ) . '" data-confirm="' . esc_html__( 'Are you sure to reset all options?', 'testimonial-free' ) . '">' : '';
822
  echo '</div>';
823
 
824
  echo ( ! empty( $this->args['footer_text'] ) ) ? '<div class="spftestimonial-copyright">' . wp_kses_post( $this->args['footer_text'] ) . '</div>' : '';
1
  <?php
2
+
3
  /**
4
  * Framework options.class file.
5
  *
84
  */
85
  public $args = array(
86
 
87
+ // Framework title.
88
  'framework_title' => '',
89
  'framework_class' => '',
90
 
91
+ // Menu settings.
92
  'menu_title' => '',
93
  'menu_slug' => '',
94
  'menu_type' => 'menu',
97
  'menu_position' => null,
98
  'menu_hidden' => false,
99
  'menu_parent' => '',
100
+ 'sub_menu_title' => '',
101
 
102
+ // Menu extras.
103
  'show_bar_menu' => true,
104
  'show_sub_menu' => true,
105
+ 'show_in_network' => true,
106
  'show_in_customizer' => false,
107
 
108
  'show_search' => true,
114
  'sticky_header' => true,
115
  'save_defaults' => true,
116
  'ajax_save' => true,
117
+ 'form_action' => '',
118
 
119
+ // Admin bar menu settings.
120
  'admin_bar_menu_icon' => '',
121
  'admin_bar_menu_priority' => 80,
122
 
123
+ // Footer.
124
  'footer_text' => '',
125
  'footer_after' => '',
126
  'footer_credit' => '',
127
 
128
+ // Database model.
129
  'database' => '', // options, transient, theme_mod, network.
130
  'transient_time' => 0,
131
 
133
  'contextual_help' => array(),
134
  'contextual_help_sidebar' => '',
135
 
136
+ // Typography options.
137
  'enqueue_webfont' => true,
138
  'async_webfont' => false,
139
 
140
+ // Others.
141
  'output_css' => true,
142
 
143
+ // Theme.
144
+ 'nav' => 'normal',
145
  'theme' => 'dark',
146
  'class' => '',
147
 
172
  $this->set_options();
173
  $this->save_defaults();
174
 
175
+ add_action( 'admin_menu', array( $this, 'add_admin_menu' ) );
176
+ add_action( 'admin_bar_menu', array( $this, 'add_admin_bar_menu' ), $this->args['admin_bar_menu_priority'] );
177
+ add_action( 'wp_ajax_spftestimonial_' . $this->unique . '_ajax_save', array( $this, 'ajax_save' ) );
178
 
179
+ if ( 'network' === $this->args['database'] && ! empty( $this->args['show_in_network'] ) ) {
180
+ add_action( 'network_admin_menu', array( $this, 'add_admin_menu' ) );
181
  }
182
 
183
  // wp enqeueu for typography and output css.
195
  public static function instance( $key, $params = array() ) {
196
  return new self( $key, $params );
197
  }
 
198
  /**
199
  * Pre_tabs
200
  *
227
 
228
  return wp_list_sort( $result, array( 'priority' => 'ASC' ), 'ASC', true );
229
  }
 
230
  /**
231
  * Pre_fields
232
  *
247
 
248
  return $result;
249
  }
 
250
  /**
251
  * Pre_sections
252
  *
260
  foreach ( $this->pre_tabs as $tab ) {
261
  if ( ! empty( $tab['subs'] ) ) {
262
  foreach ( $tab['subs'] as $sub ) {
263
+ $sub['ptitle'] = $tab['title'];
264
+ $result[] = $sub;
265
  }
266
  }
267
  if ( empty( $tab['subs'] ) ) {
280
  */
281
  public function add_admin_bar_menu( $wp_admin_bar ) {
282
 
283
+ if ( is_network_admin() && ( 'network' !== $this->args['database'] || true !== $this->args['show_in_network'] ) ) {
284
+ return;
285
+ }
286
+
287
  if ( ! empty( $this->args['show_bar_menu'] ) && empty( $this->args['menu_hidden'] ) ) {
288
 
289
  global $submenu;
290
 
291
  $menu_slug = $this->args['menu_slug'];
292
+ $menu_icon = ( ! empty( $this->args['admin_bar_menu_icon'] ) ) ? '<span class="spftestimonial-ab-icon ab-icon ' . esc_attr( $this->args['admin_bar_menu_icon'] ) . '"></span>' : '';
293
 
294
  $wp_admin_bar->add_node(
295
  array(
296
  'id' => $menu_slug,
297
+ 'title' => $menu_icon . esc_attr( $this->args['menu_title'] ),
298
+ 'href' => esc_url( ( is_network_admin() ) ? network_admin_url( 'admin.php?page=' . $menu_slug ) : admin_url( 'admin.php?page=' . $menu_slug ) ),
299
  )
300
  );
301
 
302
  if ( ! empty( $submenu[ $menu_slug ] ) ) {
303
+ foreach ( $submenu[ $menu_slug ] as $menu_key => $menu_value ) {
304
  $wp_admin_bar->add_node(
305
  array(
306
  'parent' => $menu_slug,
307
+ 'id' => $menu_slug . '-' . $menu_key,
308
+ 'title' => $menu_value[0],
309
+ 'href' => esc_url( ( is_network_admin() ) ? network_admin_url( 'admin.php?page=' . $menu_value[2] ) : admin_url( 'admin.php?page=' . $menu_value[2] ) ),
310
  )
311
  );
312
  }
313
  }
 
 
 
 
 
 
 
 
 
 
 
314
  }
315
 
316
  }
 
317
  /**
318
  * Ajax_save
319
  *
321
  */
322
  public function ajax_save() {
323
 
324
+ $result = $this->set_options( true );
 
 
 
 
325
 
326
+ if ( ! $result ) {
327
+ wp_send_json_error( array( 'error' => esc_html__( 'Error while saving the changes.', 'testimonial-free' ) ) );
328
+ } else {
329
+ wp_send_json_success(
330
+ array(
331
+ 'notice' => $this->notice,
332
+ 'errors' => $this->errors,
333
+ )
334
+ );
 
 
335
  }
336
 
 
 
 
 
 
 
 
337
  }
338
 
339
  /**
340
  * Get default value
341
  *
342
  * @param mixed $field field.
 
343
  * @return mixed
344
  */
345
+ public function get_default( $field ) {
346
 
347
+ $default = ( isset( $field['default'] ) ) ? $field['default'] : '';
348
+ $default = ( isset( $this->args['defaults'][ $field['id'] ] ) ) ? $this->args['defaults'][ $field['id'] ] : $default;
 
349
 
350
  return $default;
351
 
362
 
363
  foreach ( $this->pre_fields as $field ) {
364
  if ( ! empty( $field['id'] ) ) {
365
+ $this->options[ $field['id'] ] = ( isset( $this->options[ $field['id'] ] ) ) ? $this->options[ $field['id'] ] : $this->get_default( $field );
366
  }
367
  }
368
 
375
  /**
376
  * Set options.
377
  *
378
+ * @param mixed $ajax value.
379
  * @return bool
380
  */
381
+ public function set_options( $ajax = false ) {
382
+
383
+ // XSS ok.
384
+ // No worries, This "POST" requests is sanitizing in the below foreach.
385
+ $response = ( $ajax && ! empty( $_POST['data'] ) ) ? json_decode( wp_unslash( trim( $_POST['data'] ) ), true ) : $_POST;// phpcs:ignore
386
+
387
+ // Set variables.
388
+ $data = array();
389
+ $noncekey = 'spftestimonial_options_nonce' . $this->unique;
390
+ $nonce = ( ! empty( $response[ $noncekey ] ) ) ? $response[ $noncekey ] : '';
391
+ $options = ( ! empty( $response[ $this->unique ] ) ) ? $response[ $this->unique ] : array();
392
+ $transient = ( ! empty( $response['spftestimonial_transient'] ) ) ? $response['spftestimonial_transient'] : array();
393
 
394
+ if ( wp_verify_nonce( $nonce, 'spftestimonial_options_nonce' ) ) {
395
 
396
+ $importing = false;
 
397
  $section_id = ( ! empty( $transient['section'] ) ) ? $transient['section'] : '';
398
 
399
+ if ( ! $ajax && ! empty( $response['spftestimonial_import_data'] ) ) {
 
400
 
401
+ // XSS ok.
402
+ // No worries, This "POST" requests is sanitizing in the below foreach.
403
+ $import_data = json_decode( wp_unslash( trim( $response['spftestimonial_import_data'] ) ), true );
404
+ $options = ( is_array( $import_data ) && ! empty( $import_data ) ) ? $import_data : array();
405
+ $importing = true;
406
+ $this->notice = esc_html__( 'Settings successfully imported.', 'testimonial-free' );
407
 
408
+ }
409
 
410
+ if ( ! empty( $transient['reset'] ) ) {
411
 
412
  foreach ( $this->pre_fields as $field ) {
413
  if ( ! empty( $field['id'] ) ) {
414
+ $data[ $field['id'] ] = $this->get_default( $field );
415
  }
416
  }
417
 
418
+ $this->notice = esc_html__( 'Default settings restored.', 'testimonial-free' );
419
 
420
  } elseif ( ! empty( $transient['reset_section'] ) && ! empty( $section_id ) ) {
421
 
423
 
424
  foreach ( $this->pre_sections[ $section_id - 1 ]['fields'] as $field ) {
425
  if ( ! empty( $field['id'] ) ) {
426
+ $data[ $field['id'] ] = $this->get_default( $field );
427
  }
428
  }
429
  }
430
 
431
+ $data = wp_parse_args( $data, $this->options );
432
+
433
+ $this->notice = esc_html__( 'Default settings restored.', 'testimonial-free' );
434
 
435
  } else {
436
 
437
+ // Sanitize and validate.
438
  foreach ( $this->pre_fields as $field ) {
439
 
440
  if ( ! empty( $field['id'] ) ) {
441
 
442
+ $field_id = $field['id'];
443
+ $field_value = isset( $options[ $field_id ] ) ? $options[ $field_id ] : '';
444
 
445
+ // Ajax and Importing doing wp_unslash already.
446
+ if ( ! $ajax && ! $importing ) {
447
+ $field_value = wp_unslash( $field_value );
448
+ }
449
 
450
+ // Sanitize "post" request of field.
451
+ if ( isset( $field['sanitize'] ) && is_callable( $field['sanitize'] ) ) {
452
+ $data[ $field_id ] = call_user_func( $field['sanitize'], $field_value );
453
+ } else {
454
+ if ( is_array( $field_value ) ) {
455
+ $data[ $field_id ] = wp_kses_post_deep( $field_value );
456
+ } else {
457
+ $data[ $field_id ] = wp_kses_post( $field_value );
458
+ }
459
  }
460
 
461
+ // Validate "post" request of field.
462
+ if ( isset( $field['validate'] ) && is_callable( $field['validate'] ) ) {
463
 
464
+ $has_validated = call_user_func( $field['validate'], $field_value );
 
465
 
466
  if ( ! empty( $has_validated ) ) {
 
 
 
 
467
 
468
+ $data[ $field_id ] = ( isset( $this->options[ $field_id ] ) ) ? $this->options[ $field_id ] : '';
469
+ $this->errors[ $field_id ] = $has_validated;
470
+
471
+ }
472
  }
473
  }
474
  }
475
  }
476
 
477
+ $data = apply_filters( "spftestimonial_{$this->unique}_save", $data, $this );
 
 
 
 
 
 
478
 
479
+ do_action( "spftestimonial_{$this->unique}_save_before", $data, $this );
480
 
481
+ $this->options = $data;
482
 
483
+ $this->save_options( $data );
484
 
485
+ do_action( "spftestimonial_{$this->unique}_save_after", $data, $this );
486
 
487
  if ( empty( $this->notice ) ) {
488
  $this->notice = esc_html__( 'Settings saved.', 'testimonial-free' );
489
  }
490
+
491
+ return true;
492
+
493
  }
494
 
495
+ return false;
496
 
497
  }
498
 
499
  /**
500
  * Save options database.
501
  *
502
+ * @param mixed $data data.
503
  * @return void
504
  */
505
+ public function save_options( $data ) {
506
 
507
  if ( 'transient' === $this->args['database'] ) {
508
+ set_transient( $this->unique, $data, $this->args['transient_time'] );
509
  } elseif ( 'theme_mod' === $this->args['database'] ) {
510
+ set_theme_mod( $this->unique, $data );
511
  } elseif ( 'network' === $this->args['database'] ) {
512
+ update_site_option( $this->unique, $data );
513
  } else {
514
+ update_option( $this->unique, $data );
515
  }
516
 
517
+ do_action( "spftestimonial_{$this->unique}_saved", $data, $this );
518
 
519
  }
520
 
550
  */
551
  public function add_admin_menu() {
552
 
553
+ extract( $this->args );// phpcs:ignore
554
 
555
  if ( 'submenu' === $menu_type ) {
556
 
557
+ $menu_page = call_user_func( 'add_submenu_page', $menu_parent, esc_attr( $menu_title ), esc_attr( $menu_title ), $menu_capability, $menu_slug, array( $this, 'add_options_html' ) );
558
 
559
  } else {
560
 
561
+ $menu_page = call_user_func( 'add_menu_page', esc_attr( $menu_title ), esc_attr( $menu_title ), $menu_capability, $menu_slug, array( $this, 'add_options_html' ), $menu_icon, $menu_position );
562
+
563
+ if ( ! empty( $sub_menu_title ) ) {
564
+ call_user_func( 'add_submenu_page', $menu_slug, esc_attr( $sub_menu_title ), esc_attr( $sub_menu_title ), $menu_capability, $menu_slug, array( $this, 'add_options_html' ) );
565
+ }
566
 
567
  if ( ! empty( $this->args['show_sub_menu'] ) && count( $this->pre_tabs ) > 1 ) {
568
 
569
+ // Create submenus.
 
570
  foreach ( $this->pre_tabs as $section ) {
571
+ call_user_func( 'add_submenu_page', $menu_slug, esc_attr( $section['title'] ), esc_attr( $section['title'] ), $menu_capability, $menu_slug . '#tab=' . sanitize_title( $section['title'] ), '__return_null' );
 
 
 
 
 
 
 
 
572
  }
573
 
574
  remove_submenu_page( $menu_slug, $menu_slug );
580
  }
581
  }
582
 
583
+ add_action( 'load-' . $menu_page, array( $this, 'add_page_on_load' ) );
584
 
585
  }
 
586
  /**
587
  * Add_page_on_load
588
  *
604
  }
605
 
606
  }
 
607
  /**
608
  * Error check
609
  *
654
  $wrapper_class = ( $this->args['framework_class'] ) ? ' ' . $this->args['framework_class'] : '';
655
  $theme = ( $this->args['theme'] ) ? ' spftestimonial-theme-' . $this->args['theme'] : '';
656
  $class = ( $this->args['class'] ) ? ' ' . $this->args['class'] : '';
657
+ $nav_type = ( 'inline' === $this->args['nav'] ) ? 'inline' : 'normal';
658
+ $form_action = ( $this->args['form_action'] ) ? $this->args['form_action'] : '';
659
 
660
  do_action( 'spftestimonial_options_before' );
 
 
 
 
661
 
662
  echo '<div class="spftestimonial spftestimonial-options' . esc_attr( $theme . $class . $wrapper_class ) . '" data-slug="' . esc_attr( $this->args['menu_slug'] ) . '" data-unique="' . esc_attr( $this->unique ) . '">';
663
+ $notice_class = ( ! empty( $this->notice ) ) ? 'spftestimonial-form-show' : '';
664
+ $notice_text = ( ! empty( $this->notice ) ) ? $this->notice : '';
665
+ if ( ! $show_buttons ) {
666
+ echo '<div class="spftestimonial-form-result spftestimonial-form-success ' . esc_attr( $notice_class ) . '">' . wp_kses_post( $notice_text ) . '</div>';
667
+ }
668
 
669
  echo '<div class="spftestimonial-container">';
670
 
671
+ echo '<form method="post" action="' . esc_attr( $form_action ) . '" enctype="multipart/form-data" id="spftestimonial-form" autocomplete="off" novalidate="novalidate">';
672
 
673
  echo '<input type="hidden" class="spftestimonial-section-id" name="spftestimonial_transient[section]" value="1">';
674
 
688
 
689
  echo '<div class="spftestimonial-header-right">';
690
 
691
+ echo ( $has_nav && $this->args['show_all_options'] ) ? '<div class="spftestimonial-expand-all" title="' . esc_html__( 'show all settings', 'testimonial-free' ) . '"><i class="fas fa-outdent"></i></div>' : '';
692
 
693
+ echo ( $this->args['show_search'] ) ? '<div class="spftestimonial-search"><input type="text" name="spftestimonial-search" placeholder="' . esc_html__( 'Search...', 'testimonial-free' ) . '" autocomplete="off" /></div>' : '';
694
  if ( $show_buttons ) {
695
  echo '<div class="spftestimonial-buttons">';
696
+ echo '<input type="submit" disabled name="' . esc_attr( $this->unique ) . '[_nonce][save]" class="button button-primary spftestimonial-top-save spftestimonial-save' . esc_attr( $ajax_class ) . '" value="' . esc_html__( 'Save Settings', 'testimonial-free' ) . '" data-save="' . esc_html__( 'Saving...', 'testimonial-free' ) . '">';
697
+ echo ( $this->args['show_reset_section'] ) ? '<input type="submit" name="spftestimonial_transient[reset_section]" class="button button-secondary spftestimonial-reset-section spftestimonial-confirm" value="' . esc_html__( 'Reset tab', 'testimonial-free' ) . '" data-confirm="' . esc_html__( 'Are you sure to reset all the settings of this tab?', 'testimonial-free' ) . '">' : '';
698
+ echo ( $this->args['show_reset_all'] ) ? '<input type="submit" name="spftestimonial_transient[reset]" class="button spftestimonial-warning-primary spftestimonial-reset-all spftestimonial-confirm" value="' . ( ( $this->args['show_reset_section'] ) ? esc_html__( 'Reset All', 'testimonial-free' ) : esc_html__( 'Reset', 'testimonial-free' ) ) . '" data-confirm="' . esc_html__( 'Are you sure you want to reset all settings to default values?', 'testimonial-free' ) . '">' : '';
699
  echo '</div>';
700
  }
701
+
702
  echo '</div>';
703
 
704
  echo '<div class="clear"></div>';
708
  echo '<div class="spftestimonial-wrapper' . esc_attr( $show_all ) . '">';
709
 
710
  if ( $has_nav ) {
 
711
 
712
+ echo '<div class="spftestimonial-nav spftestimonial-nav-' . esc_attr( $nav_type ) . ' spftestimonial-nav-options">';
713
 
714
+ echo '<ul>';
715
 
716
  foreach ( $this->pre_tabs as $tab ) {
717
 
718
+ $tab_id = sanitize_title( $tab['title'] );
719
  $tab_error = $this->error_check( $tab );
720
+ $tab_icon = ( ! empty( $tab['icon'] ) ) ? '<i class="spftestimonial-tab-icon ' . esc_attr( $tab['icon'] ) . '"></i>' : '';
721
 
722
  if ( ! empty( $tab['subs'] ) ) {
723
 
724
+ echo '<li class="spftestimonial-tab-item">';
725
 
726
+ echo '<a href="#tab=' . esc_attr( $tab_id ) . '" data-tab-id="' . esc_attr( $tab_id ) . '" class="spftestimonial-arrow">' . wp_kses_post( $tab_icon . $tab['title'] . $tab_error ) . '</a>';
727
 
728
  echo '<ul>';
729
 
730
  foreach ( $tab['subs'] as $sub ) {
731
 
732
+ $sub_id = $tab_id . '/' . sanitize_title( $sub['title'] );
733
  $sub_error = $this->error_check( $sub );
734
+ $sub_icon = ( ! empty( $sub['icon'] ) ) ? '<i class="spftestimonial-tab-icon ' . esc_attr( $sub['icon'] ) . '"></i>' : '';
735
 
736
+ echo '<li><a href="#tab=' . esc_attr( $sub_id ) . '" data-tab-id="' . esc_attr( $sub_id ) . '">' . wp_kses_post( $sub_icon . $sub['title'] . $sub_error ) . '</a></li>';
737
 
 
738
  }
739
 
740
  echo '</ul>';
743
 
744
  } else {
745
 
746
+ echo '<li class="spftestimonial-tab-item"><a href="#tab=' . esc_attr( $tab_id ) . '" data-tab-id="' . esc_attr( $tab_id ) . '">' . wp_kses_post( $tab_icon . $tab['title'] . $tab_error ) . '</a></li>';
747
 
 
748
  }
749
  }
750
 
758
 
759
  echo '<div class="spftestimonial-sections">';
760
 
 
 
761
  foreach ( $this->pre_sections as $section ) {
762
 
763
+ $section_onload = ( ! $has_nav ) ? ' spftestimonial-onload' : '';
764
+ $section_class = ( ! empty( $section['class'] ) ) ? ' ' . $section['class'] : '';
765
+ $section_icon = ( ! empty( $section['icon'] ) ) ? '<i class="spftestimonial-section-icon ' . esc_attr( $section['icon'] ) . '"></i>' : '';
766
+ $section_title = ( ! empty( $section['title'] ) ) ? $section['title'] : '';
767
+ $section_parent = ( ! empty( $section['ptitle'] ) ) ? sanitize_title( $section['ptitle'] ) . '/' : '';
768
+ $section_slug = ( ! empty( $section['title'] ) ) ? sanitize_title( $section_title ) : '';
769
 
770
+ echo '<div class="spftestimonial-section hidden' . esc_attr( $section_onload . $section_class ) . '" data-section-id="' . esc_attr( $section_parent . $section_slug ) . '">';
771
+ echo ( $has_nav ) ? '<div class="spftestimonial-section-title"><h3>' . wp_kses_post( $section_icon . $section_title ) . '</h3></div>' : '';
772
  echo ( ! empty( $section['description'] ) ) ? '<div class="spftestimonial-field spftestimonial-section-description">' . wp_kses_post( $section['description'] ) . '</div>' : '';
773
 
774
  if ( ! empty( $section['fields'] ) ) {
781
  $field['_error'] = $is_field_error;
782
  }
783
 
784
+ if ( ! empty( $field['id'] ) ) {
785
+ $field['default'] = $this->get_default( $field );
786
+ }
787
+
788
  $value = ( ! empty( $field['id'] ) && isset( $this->options[ $field['id'] ] ) ) ? $this->options[ $field['id'] ] : '';
789
 
790
  SPFTESTIMONIAL::field( $field, $value, $this->unique, 'options' );
792
  }
793
  } else {
794
 
795
+ echo '<div class="spftestimonial-no-option">' . esc_html__( 'No data available.', 'testimonial-free' ) . '</div>';
796
 
797
  }
798
 
799
  echo '</div>';
800
 
 
801
  }
802
 
803
  echo '</div>';
806
 
807
  echo '</div>';
808
 
809
+ echo ( $has_nav && 'normal' === $nav_type ) ? '<div class="spftestimonial-nav-background"></div>' : '';
810
 
811
  echo '</div>';
812
 
816
 
817
  echo '<div class="spftestimonial-buttons">';
818
  echo '<input type="submit" name="spftestimonial_transient[save]" class="button button-primary spftestimonial-save' . esc_attr( $ajax_class ) . '" value="' . esc_html__( 'Save', 'testimonial-free' ) . '" data-save="' . esc_html__( 'Saving...', 'testimonial-free' ) . '">';
819
+ echo ( $this->args['show_reset_section'] ) ? '<input type="submit" name="spftestimonial_transient[reset_section]" class="button button-secondary spftestimonial-reset-section spftestimonial-confirm" value="' . esc_html__( 'Reset tab', 'testimonial-free' ) . '" data-confirm="' . esc_html__( 'Are you sure to reset all the settings of this tab?', 'testimonial-free' ) . '">' : '';
820
+ echo ( $this->args['show_reset_all'] ) ? '<input type="submit" name="spftestimonial_transient[reset]" class="button spftestimonial-warning-primary spftestimonial-reset-all spftestimonial-confirm" value="' . ( ( $this->args['show_reset_section'] ) ? esc_html__( 'Reset All', 'testimonial-free' ) : esc_html__( 'Reset', 'testimonial-free' ) ) . '" data-confirm="' . esc_html__( 'Are you sure you want to reset all settings to default values?', 'testimonial-free' ) . '">' : '';
821
  echo '</div>';
822
 
823
  echo ( ! empty( $this->args['footer_text'] ) ) ? '<div class="spftestimonial-copyright">' . wp_kses_post( $this->args['footer_text'] ) . '</div>' : '';
admin/views/framework/classes/setup.class.php DELETED
@@ -1,609 +0,0 @@
1
- <?php
2
- /**
3
- * Framework setup.class file.
4
- *
5
- * @link https://shapedplugin.com
6
- * @since 2.0.0
7
- *
8
- * @package Testimonial_free
9
- * @subpackage Testimonial_free/framework
10
- */
11
-
12
- if ( ! defined( 'ABSPATH' ) ) {
13
- die; } // Cannot access directly.
14
-
15
- if ( ! class_exists( 'SPFTESTIMONIAL' ) ) {
16
- /**
17
- *
18
- * Setup Class
19
- *
20
- * @since 1.0.0
21
- * @version 1.0.0
22
- */
23
- class SPFTESTIMONIAL {
24
-
25
- /**
26
- * Version.
27
- *
28
- * @var string
29
- */
30
- public static $version = '2.1.3';
31
- /**
32
- * Dir.
33
- *
34
- * @var string
35
- */
36
- public static $dir = null;
37
- /**
38
- * Url.
39
- *
40
- * @var string
41
- */
42
- public static $url = null;
43
- /**
44
- * Init.
45
- *
46
- * @var array
47
- */
48
- public static $inited = array();
49
- /**
50
- * Field.
51
- *
52
- * @var array
53
- */
54
- public static $fields = array();
55
- /**
56
- * Args.
57
- *
58
- * @var array
59
- */
60
- public static $args = array(
61
- 'options' => array(),
62
- 'customize_options' => array(),
63
- 'metaboxes' => array(),
64
- 'widgets' => array(),
65
- );
66
-
67
- /**
68
- * Shortcode instances.
69
- *
70
- * @var array
71
- */
72
- public static $shortcode_instances = array();
73
-
74
- /**
75
- * Init
76
- *
77
- * @return void
78
- */
79
- public static function init() {
80
-
81
- // init action.
82
- do_action( 'spftestimonial_init' );
83
-
84
- // set constants.
85
- self::constants();
86
-
87
- // include files.
88
- self::includes();
89
-
90
- add_action( 'after_setup_theme', array( 'SPFTESTIMONIAL', 'setup' ) );
91
- add_action( 'init', array( 'SPFTESTIMONIAL', 'setup' ) );
92
- add_action( 'switch_theme', array( 'SPFTESTIMONIAL', 'setup' ) );
93
- add_action( 'admin_enqueue_scripts', array( 'SPFTESTIMONIAL', 'add_admin_enqueue_scripts' ), 20 );
94
- add_action( 'admin_head', array( 'SPFTESTIMONIAL', 'add_admin_head_css' ), 99 );
95
- add_action( 'customize_controls_print_styles', array( 'SPFTESTIMONIAL', 'add_admin_head_css' ), 99 );
96
-
97
- }
98
-
99
- /**
100
- * Setup
101
- *
102
- * @return void
103
- */
104
- public static function setup() {
105
-
106
- // setup options.
107
- $params = array();
108
- if ( ! empty( self::$args['options'] ) ) {
109
- foreach ( self::$args['options'] as $key => $value ) {
110
- if ( ! empty( self::$args['sections'][ $key ] ) && ! isset( self::$inited[ $key ] ) ) {
111
-
112
- $params['args'] = $value;
113
- $params['sections'] = self::$args['sections'][ $key ];
114
- self::$inited[ $key ] = true;
115
-
116
- SPFTESTIMONIAL_Options::instance( $key, $params );
117
-
118
- if ( ! empty( $value['show_in_customizer'] ) ) {
119
- $value['output_css'] = false;
120
- $value['enqueue_webfont'] = false;
121
- self::$args['customize_options'][ $key ] = $value;
122
- self::$inited[ $key ] = null;
123
- }
124
- }
125
- }
126
- }
127
-
128
- // setup customize options.
129
- $params = array();
130
- if ( ! empty( self::$args['customize_options'] ) ) {
131
- foreach ( self::$args['customize_options'] as $key => $value ) {
132
- if ( ! empty( self::$args['sections'][ $key ] ) && ! isset( self::$inited[ $key ] ) ) {
133
-
134
- $params['args'] = $value;
135
- $params['sections'] = self::$args['sections'][ $key ];
136
- self::$inited[ $key ] = true;
137
-
138
- SPFTESTIMONIAL_Customize_Options::instance( $key, $params );
139
-
140
- }
141
- }
142
- }
143
-
144
- // setup metaboxes.
145
- $params = array();
146
- if ( ! empty( self::$args['metaboxes'] ) ) {
147
- foreach ( self::$args['metaboxes'] as $key => $value ) {
148
- if ( ! empty( self::$args['sections'][ $key ] ) && ! isset( self::$inited[ $key ] ) ) {
149
-
150
- $params['args'] = $value;
151
- $params['sections'] = self::$args['sections'][ $key ];
152
- self::$inited[ $key ] = true;
153
-
154
- SPFTESTIMONIAL_Metabox::instance( $key, $params );
155
-
156
- }
157
- }
158
- }
159
-
160
- // create widgets.
161
- if ( ! empty( self::$args['widgets'] ) && class_exists( 'WP_Widget_Factory' ) ) {
162
-
163
- $wp_widget_factory = new WP_Widget_Factory();
164
-
165
- foreach ( self::$args['widgets'] as $key => $value ) {
166
- if ( ! isset( self::$inited[ $key ] ) ) {
167
- self::$inited[ $key ] = true;
168
- $wp_widget_factory->register( SPFTESTIMONIAL_Widget::instance( $key, $value ) );
169
- }
170
- }
171
- }
172
-
173
- do_action( 'spftestimonial_loaded' );
174
-
175
- }
176
-
177
- /**
178
- * Create Options
179
- *
180
- * @param mixed $id ID.
181
- * @param mixed $args Args.
182
- * @return void
183
- */
184
- public static function createOptions( $id, $args = array() ) {
185
- self::$args['options'][ $id ] = $args;
186
- }
187
-
188
- /**
189
- * Create customize options.
190
- *
191
- * @param int $id ID.
192
- * @param array $args customize option.
193
- * @return void
194
- */
195
- public static function createCustomizeOptions( $id, $args = array() ) {
196
- self::$args['customize_options'][ $id ] = $args;
197
- }
198
-
199
- /**
200
- * Create metabox options.
201
- *
202
- * @param mixed $id ID.
203
- * @param mixed $args Args.
204
- * @return void
205
- */
206
- public static function createMetabox( $id, $args = array() ) {
207
- self::$args['metaboxes'][ $id ] = $args;
208
- }
209
-
210
- /**
211
- * Create widget.
212
- *
213
- * @param mixed $id ID.
214
- * @param mixed $args Args.
215
- * @return void
216
- */
217
- public static function createWidget( $id, $args = array() ) {
218
- self::$args['widgets'][ $id ] = $args;
219
- self::set_used_fields( $args );
220
- }
221
-
222
- /**
223
- * Create section.
224
- *
225
- * @param mixed $id ID.
226
- * @param mixed $sections Sections.
227
- * @return void
228
- */
229
- public static function createSection( $id, $sections ) {
230
- self::$args['sections'][ $id ][] = $sections;
231
- self::set_used_fields( $sections );
232
- }
233
-
234
- /**
235
- * Constants
236
- *
237
- * @return void
238
- */
239
- public static function constants() {
240
-
241
- // we need this path-finder code for set URL of framework.
242
- $dirname = wp_normalize_path( dirname( dirname( __FILE__ ) ) );
243
- $theme_dir = wp_normalize_path( get_parent_theme_file_path() );
244
- $plugin_dir = wp_normalize_path( WP_PLUGIN_DIR );
245
- $plugin_dir = str_replace( '/opt/bitnami', '/bitnami', $plugin_dir );
246
- $located_plugin = ( preg_match( '#' . self::sanitize_dirname( $plugin_dir ) . '#', self::sanitize_dirname( $dirname ) ) ) ? true : false;
247
- $directory = ( $located_plugin ) ? $plugin_dir : $theme_dir;
248
- $directory_uri = ( $located_plugin ) ? WP_PLUGIN_URL : get_parent_theme_file_uri();
249
- $foldername = str_replace( $directory, '', $dirname );
250
- $protocol_uri = ( is_ssl() ) ? 'https' : 'http';
251
- $directory_uri = set_url_scheme( $directory_uri, $protocol_uri );
252
-
253
- self::$dir = $dirname;
254
- self::$url = $directory_uri . $foldername;
255
-
256
- }
257
-
258
- /**
259
- * Include plugin files
260
- *
261
- * @param mixed $file file.
262
- * @param mixed $load load.
263
- * @return array
264
- */
265
- public static function include_plugin_file( $file, $load = true ) {
266
-
267
- $path = '';
268
- $file = ltrim( $file, '/' );
269
- $override = apply_filters( 'spftestimonial_override', 'spftestimonial-override' );
270
-
271
- if ( file_exists( get_parent_theme_file_path( $override . '/' . $file ) ) ) {
272
- $path = get_parent_theme_file_path( $override . '/' . $file );
273
- } elseif ( file_exists( get_theme_file_path( $override . '/' . $file ) ) ) {
274
- $path = get_theme_file_path( $override . '/' . $file );
275
- } elseif ( file_exists( self::$dir . '/' . $override . '/' . $file ) ) {
276
- $path = self::$dir . '/' . $override . '/' . $file;
277
- } elseif ( file_exists( self::$dir . '/' . $file ) ) {
278
- $path = self::$dir . '/' . $file;
279
- }
280
-
281
- if ( ! empty( $path ) && ! empty( $file ) && $load ) {
282
-
283
- global $wp_query;
284
-
285
- if ( is_object( $wp_query ) && function_exists( 'load_template' ) ) {
286
-
287
- load_template( $path, true );
288
-
289
- } else {
290
-
291
- require_once $path;
292
-
293
- }
294
- } else {
295
-
296
- return self::$dir . '/' . $file;
297
-
298
- }
299
-
300
- }
301
-
302
- /**
303
- * Is active plugin
304
- *
305
- * @param mixed $file file.
306
- * @return statement
307
- */
308
- public static function is_active_plugin( $file = '' ) {
309
- return in_array( $file, (array) get_option( 'active_plugins', array() ), true );
310
- }
311
-
312
- /**
313
- * Sanitize dirname.
314
- *
315
- * @param mixed $dirname dirname.
316
- * @return statement
317
- */
318
- public static function sanitize_dirname( $dirname ) {
319
- return preg_replace( '/[^A-Za-z]/', '', $dirname );
320
- }
321
-
322
- /**
323
- * Set plugin url.
324
- *
325
- * @param mixed $file file.
326
- * @return string
327
- */
328
- public static function include_plugin_url( $file ) {
329
- return self::$url . '/' . ltrim( $file, '/' );
330
- }
331
-
332
- /**
333
- * General includes.
334
- *
335
- * @return void
336
- */
337
- public static function includes() {
338
-
339
- // includes helpers.
340
- self::include_plugin_file( 'functions/actions.php' );
341
- self::include_plugin_file( 'functions/deprecated.php' );
342
- self::include_plugin_file( 'functions/helpers.php' );
343
- self::include_plugin_file( 'functions/sanitize.php' );
344
- self::include_plugin_file( 'functions/validate.php' );
345
-
346
- // includes classes.
347
- self::include_plugin_file( 'classes/abstract.class.php' );
348
- self::include_plugin_file( 'classes/fields.class.php' );
349
- self::include_plugin_file( 'classes/options.class.php' );
350
- self::include_plugin_file( 'classes/customize-options.class.php' );
351
- self::include_plugin_file( 'classes/metabox.class.php' );
352
- self::include_plugin_file( 'classes/widgets.class.php' );
353
-
354
- }
355
-
356
- /**
357
- * Include field.
358
- *
359
- * @param mixed $type type.
360
- * @return void
361
- */
362
- public static function maybe_include_field( $type = '' ) {
363
- if ( ! class_exists( 'SPFTESTIMONIAL_Field_' . $type ) && class_exists( 'SPFTESTIMONIAL_Fields' ) ) {
364
- self::include_plugin_file( 'fields/' . $type . '/' . $type . '.php' );
365
- }
366
- }
367
-
368
- /**
369
- * Get all of fields.
370
- *
371
- * @param mixed $sections sections.
372
- * @return void
373
- */
374
- public static function set_used_fields( $sections ) {
375
-
376
- if ( ! empty( $sections['fields'] ) ) {
377
-
378
- foreach ( $sections['fields'] as $field ) {
379
-
380
- if ( ! empty( $field['fields'] ) ) {
381
- self::set_used_fields( $field );
382
- }
383
-
384
- if ( ! empty( $field['tabs'] ) ) {
385
- self::set_used_fields( array( 'fields' => $field['tabs'] ) );
386
- }
387
-
388
- if ( ! empty( $field['accordions'] ) ) {
389
- self::set_used_fields( array( 'fields' => $field['accordions'] ) );
390
- }
391
-
392
- if ( ! empty( $field['type'] ) ) {
393
- self::$fields[ $field['type'] ] = $field;
394
- }
395
- }
396
- }
397
-
398
- }
399
-
400
- /**
401
- * Enqueue admin and fields styles and scripts.
402
- *
403
- * @return void
404
- */
405
- public static function add_admin_enqueue_scripts() {
406
-
407
- // check for developer mode.
408
- $min = ( apply_filters( 'spftestimonial_dev_mode', false ) || WP_DEBUG ) ? '' : '.min';
409
-
410
- // admin utilities.
411
- wp_enqueue_media();
412
-
413
- // wp color picker.
414
- wp_enqueue_style( 'wp-color-picker' );
415
- wp_enqueue_script( 'wp-color-picker' );
416
-
417
- $screen = get_current_screen();
418
- if ( 'spt_testimonial_form' === $screen->post_type || 'spt_testimonial' === $screen->post_type || 'spt_shortcodes' === $screen->post_type ) {
419
- wp_enqueue_style( 'tfree-font-awesome', SP_TFREE_URL . 'public/assets/css/font-awesome.min.css', array(), SP_TFREE_VERSION );
420
-
421
- // framework core styles.
422
- wp_enqueue_style( 'spftestimonial', self::include_plugin_url( 'assets/css/spftestimonial' . $min . '.css' ), array(), SP_TFREE_VERSION, 'all' );
423
-
424
- // rtl styles.
425
- if ( is_rtl() ) {
426
- wp_enqueue_style( 'spftestimonial-rtl', self::include_plugin_url( 'assets/css/spftestimonial-rtl' . $min . '.css' ), array(), SP_TFREE_VERSION, 'all' );
427
- }
428
-
429
- // framework core scripts.
430
- wp_enqueue_script( 'spftestimonial-plugins', self::include_plugin_url( 'assets/js/spftestimonial-plugins' . $min . '.js' ), array(), SP_TFREE_VERSION, true );
431
- wp_enqueue_script( 'spftestimonial', self::include_plugin_url( 'assets/js/spftestimonial' . $min . '.js' ), array( 'spftestimonial-plugins' ), SP_TFREE_VERSION, true );
432
-
433
- wp_localize_script(
434
- 'spftestimonial',
435
- 'spftestimonial_vars',
436
- array(
437
- 'color_palette' => apply_filters( 'spftestimonial_color_palette', array() ),
438
- 'i18n' => array(
439
- // global localize.
440
- 'confirm' => esc_html__( 'Are you sure?', 'testimonial-free' ),
441
- 'reset_notification' => esc_html__( 'Restoring options.', 'testimonial-free' ),
442
- 'import_notification' => esc_html__( 'Importing options.', 'testimonial-free' ),
443
-
444
- // chosen localize.
445
- 'typing_text' => esc_html__( 'Please enter %s or more characters', 'testimonial-free' ), // phpcs:ignore
446
- 'searching_text' => esc_html__( 'Searching...', 'testimonial-free' ),
447
- 'no_results_text' => esc_html__( 'No results match', 'testimonial-free' ),
448
- ),
449
- )
450
- );
451
- }
452
- // load admin enqueue scripts and styles.
453
- $enqueued = array();
454
-
455
- if ( ! empty( self::$fields ) ) {
456
- foreach ( self::$fields as $field ) {
457
- if ( ! empty( $field['type'] ) ) {
458
- $classname = 'SPFTESTIMONIAL_Field_' . $field['type'];
459
- self::maybe_include_field( $field['type'] );
460
- if ( class_exists( $classname ) && method_exists( $classname, 'enqueue' ) ) {
461
- $instance = new $classname( $field );
462
- if ( method_exists( $classname, 'enqueue' ) ) {
463
- $instance->enqueue();
464
- }
465
- unset( $instance );
466
- }
467
- }
468
- }
469
- }
470
-
471
- do_action( 'spftestimonial_enqueue' );
472
-
473
- }
474
-
475
- /**
476
- * WP 5.2 fallback.
477
- *
478
- * This function has been created as temporary.
479
- * It will be remove after stable version of wp 5.3.
480
- *
481
- * @return void
482
- */
483
- public static function add_admin_head_css() {
484
-
485
- global $wp_version;
486
-
487
- $current_branch = implode( '.', array_slice( preg_split( '/[.-]/', $wp_version ), 0, 2 ) );
488
-
489
- if ( version_compare( $current_branch, '5.3', '<' ) ) {
490
-
491
- echo '<style type="text/css">
492
- .spftestimonial-field-slider .spftestimonial--unit,
493
- .spftestimonial-field-border .spftestimonial--label,
494
- .spftestimonial-field-spacing .spftestimonial--label,
495
- .spftestimonial-field-dimensions .spftestimonial--label,
496
- .spftestimonial-field-spinner .ui-button-text-only{
497
- border-color: #ddd;
498
- }
499
- .spftestimonial-warning-primary{
500
- box-shadow: 0 1px 0 #bd2130 !important;
501
- }
502
- .spftestimonial-warning-primary:focus{
503
- box-shadow: none !important;
504
- }
505
- </style>';
506
-
507
- }
508
-
509
- }
510
-
511
- /**
512
- * Add a new framework field.
513
- *
514
- * @param mixed $field Field.
515
- * @param mixed $value value.
516
- * @param mixed $unique unique id.
517
- * @param mixed $where Where.
518
- * @param mixed $parent parent.
519
- * @return void
520
- */
521
- public static function field( $field = array(), $value = '', $unique = '', $where = '', $parent = '' ) {
522
-
523
- // Check for unallow fields.
524
- if ( ! empty( $field['_notice'] ) ) {
525
-
526
- $field_type = $field['type'];
527
-
528
- $field = array();
529
- $field['content'] = sprintf( wp_kses_post( 'Ooops! This field type (%s) can not be used here, yet.', 'testimonial-free' ), '<strong>' . $field_type . '</strong>' );
530
- $field['type'] = 'notice';
531
- $field['style'] = 'danger';
532
-
533
- }
534
-
535
- $depend = '';
536
- $hidden = '';
537
- $unique = ( ! empty( $unique ) ) ? $unique : '';
538
- $class = ( ! empty( $field['class'] ) ) ? ' ' . $field['class'] : '';
539
- $is_pseudo = ( ! empty( $field['pseudo'] ) ) ? ' spftestimonial-pseudo-field' : '';
540
- $field_type = ( ! empty( $field['type'] ) ) ? $field['type'] : '';
541
-
542
- if ( ! empty( $field['dependency'] ) ) {
543
-
544
- $dependency = $field['dependency'];
545
- $hidden = ' hidden';
546
- $data_controller = '';
547
- $data_condition = '';
548
- $data_value = '';
549
- $data_global = '';
550
-
551
- if ( is_array( $dependency[0] ) ) {
552
- $data_controller = implode( '|', array_column( $dependency, 0 ) );
553
- $data_condition = implode( '|', array_column( $dependency, 1 ) );
554
- $data_value = implode( '|', array_column( $dependency, 2 ) );
555
- $data_global = implode( '|', array_column( $dependency, 3 ) );
556
- } else {
557
- $data_controller = ( ! empty( $dependency[0] ) ) ? $dependency[0] : '';
558
- $data_condition = ( ! empty( $dependency[1] ) ) ? $dependency[1] : '';
559
- $data_value = ( ! empty( $dependency[2] ) ) ? $dependency[2] : '';
560
- $data_global = ( ! empty( $dependency[3] ) ) ? $dependency[3] : '';
561
- }
562
-
563
- $depend .= ' data-controller="' . $data_controller . '"';
564
- $depend .= ' data-condition="' . $data_condition . '"';
565
- $depend .= ' data-value="' . $data_value . '"';
566
- $depend .= ( ! empty( $data_global ) ) ? ' data-depend-global="true"' : '';
567
-
568
- }
569
-
570
- if ( ! empty( $field_type ) ) {
571
-
572
- echo '<div class="spftestimonial-field spftestimonial-field-' . esc_attr( $field_type . $is_pseudo . $class . $hidden ) . '"' . wp_kses_post( $depend ) . '>';
573
-
574
- if ( ! empty( $field['title'] ) ) {
575
- $subtitle = ( ! empty( $field['subtitle'] ) ) ? '<p class="spftestimonial-text-subtitle">' . $field['subtitle'] . '</p>' : '';
576
- $title_help = ( ! empty( $field['title_help'] ) ) ? '<span class="spftestimonial-help spftestimonial-title-help"><span class="spftestimonial-help-text">' . $field['title_help'] . '</span><span class="fa fa-question-circle"></span></span>' : '';
577
- echo '<div class="spftestimonial-title">
578
- <h4>' . wp_kses_post( $field['title'] ) . '</h4>' . wp_kses_post( $title_help ) . wp_kses_post( $subtitle ) . '</div>';
579
- }
580
-
581
- echo ( ! empty( $field['title'] ) ) ? '<div class="spftestimonial-fieldset">' : '';
582
-
583
- $value = ( ! isset( $value ) && isset( $field['default'] ) ) ? $field['default'] : $value;
584
- $value = ( isset( $field['value'] ) ) ? $field['value'] : $value;
585
-
586
- self::maybe_include_field( $field_type );
587
-
588
- $classname = 'SPFTESTIMONIAL_Field_' . $field_type;
589
-
590
- if ( class_exists( $classname ) ) {
591
- $instance = new $classname( $field, $value, $unique, $where, $parent );
592
- $instance->render();
593
- } else {
594
- echo '<p>' . esc_html__( 'This field class is not available!', 'testimonial-free' ) . '</p>';
595
- }
596
- } else {
597
- echo '<p>' . esc_html__( 'This type is not found!', 'testimonial-free' ) . '</p>';
598
- }
599
-
600
- echo ( ! empty( $field['title'] ) ) ? '</div>' : '';
601
- echo '<div class="clear"></div>';
602
- echo '</div>';
603
-
604
- }
605
-
606
- }
607
-
608
- SPFTESTIMONIAL::init();
609
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
admin/views/framework/classes/widgets.class.php DELETED
@@ -1,190 +0,0 @@
1
- <?php
2
- /**
3
- * Framework widgets.class file.
4
- *
5
- * @link https://shapedplugin.com
6
- * @since 2.0.0
7
- *
8
- * @package Testimonial_free
9
- * @subpackage Testimonial_free/framework
10
- */
11
-
12
- if ( ! defined( 'ABSPATH' ) ) {
13
- die;
14
- } // Cannot access directly.
15
-
16
- if ( ! class_exists( 'SPFTESTIMONIAL_Widget' ) ) {
17
- /**
18
- *
19
- * Widgets Class
20
- *
21
- * @since 1.0.0
22
- * @version 1.0.0
23
- */
24
- class SPFTESTIMONIAL_Widget extends WP_Widget {
25
-
26
-
27
- /**
28
- * Unique
29
- *
30
- * @var string
31
- */
32
- public $unique = '';
33
- /**
34
- * Default args.
35
- *
36
- * @var array
37
- */
38
- public $args = array(
39
- 'title' => '',
40
- 'classname' => '',
41
- 'description' => '',
42
- 'width' => '',
43
- 'defaults' => array(),
44
- 'fields' => array(),
45
- 'class' => '',
46
- );
47
-
48
- /**
49
- * Widget construct
50
- *
51
- * @param mixed $key key.
52
- * @param mixed $params params.
53
- * @return void
54
- */
55
- public function __construct( $key, $params ) {
56
-
57
- $widget_ops = array();
58
- $control_ops = array();
59
-
60
- $this->unique = $key;
61
- $this->args = apply_filters( "spftestimonial_{$this->unique}_args", wp_parse_args( $params, $this->args ), $this );
62
-
63
- // Set control options.
64
- if ( ! empty( $this->args['width'] ) ) {
65
- $control_ops['width'] = $this->args['width'];
66
- }
67
-
68
- // Set widget options.
69
- if ( ! empty( $this->args['description'] ) ) {
70
- $widget_ops['description'] = $this->args['description'];
71
- }
72
-
73
- if ( ! empty( $this->args['classname'] ) ) {
74
- $widget_ops['classname'] = $this->args['classname'];
75
- }
76
-
77
- // Set filters.
78
- $widget_ops = apply_filters( "spftestimonial_{$this->unique}_widget_ops", $widget_ops, $this );
79
- $control_ops = apply_filters( "spftestimonial_{$this->unique}_control_ops", $control_ops, $this );
80
-
81
- parent::__construct( $this->unique, $this->args['title'], $widget_ops, $control_ops );
82
-
83
- }
84
-
85
- /**
86
- * Register widget with WordPress.
87
- *
88
- * @param mixed $key key.
89
- * @param mixed $params params.
90
- * @return array
91
- */
92
- public static function instance( $key, $params = array() ) {
93
-
94
- return new self( $key, $params );
95
- }
96
-
97
- /**
98
- * Front-End display of widget.
99
- *
100
- * @param array $args args.
101
- * @param mixed $instance instance.
102
- * @return void
103
- */
104
- public function widget( $args, $instance ) {
105
-
106
- call_user_func( $this->unique, $args, $instance );
107
- }
108
-
109
- /**
110
- * Get default value
111
- *
112
- * @param array $field Field.
113
- * @param array $options options.
114
- * @return string
115
- */
116
- public function get_default( $field, $options = array() ) {
117
-
118
- $default = ( isset( $this->args['defaults'][ $field['id'] ] ) ) ? $this->args['defaults'][ $field['id'] ] : null;
119
- $default = ( isset( $field['default'] ) ) ? $field['default'] : $default;
120
- $default = ( isset( $options[ $field['id'] ] ) ) ? $options[ $field['id'] ] : $default;
121
-
122
- return $default;
123
-
124
- }
125
-
126
- /**
127
- * Back-end widget form.
128
- *
129
- * @param mixed $instance instance.
130
- * @return void
131
- */
132
- public function form( $instance ) {
133
-
134
- if ( ! empty( $this->args['fields'] ) ) {
135
-
136
- $class = ( $this->args['class'] ) ? ' ' . $this->args['class'] : '';
137
-
138
- echo '<div class="spftestimonial spftestimonial-widgets spftestimonial-fields' . esc_attr( $class ) . '">';
139
-
140
- foreach ( $this->args['fields'] as $field ) {
141
-
142
- $field_value = '';
143
- $field_unique = '';
144
-
145
- if ( ! empty( $field['id'] ) ) {
146
-
147
- $field_value = $this->get_default( $field, $instance );
148
- $field_unique = 'widget-' . $this->unique . '[' . $this->number . ']';
149
-
150
- if ( 'title' === $field['id'] ) {
151
- $field['attributes']['id'] = 'widget-' . $this->unique . '-' . $this->number . '-title';
152
- }
153
- }
154
-
155
- SPFTESTIMONIAL::field( $field, $field_value, $field_unique );
156
-
157
- }
158
-
159
- echo '</div>';
160
-
161
- }
162
-
163
- }
164
-
165
- /**
166
- * Sanitize widget form values as they are saved.
167
- *
168
- * @param mixed $new_instance instance.
169
- * @param mixed $old_instance instance.
170
- * @return statement
171
- */
172
- public function update( $new_instance, $old_instance ) {
173
-
174
- // auto sanitize.
175
- foreach ( $this->args['fields'] as $field ) {
176
- if ( ! empty( $field['id'] ) && ( ! isset( $new_instance[ $field['id'] ] ) || is_null( $new_instance[ $field['id'] ] ) ) ) {
177
- $new_instance[ $field['id'] ] = '';
178
- }
179
- }
180
-
181
- $new_instance = apply_filters( "spftestimonial_{$this->unique}_save", $new_instance, $this->args, $this );
182
-
183
- do_action( "spftestimonial_{$this->unique}_save_before", $new_instance, $this->args, $this );
184
-
185
- return $new_instance;
186
-
187
- }
188
- }
189
- }
190
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
admin/views/framework/fields/accordion/accordion.php CHANGED
@@ -10,8 +10,7 @@
10
  */
11
 
12
  if ( ! defined( 'ABSPATH' ) ) {
13
- die;
14
- } // Cannot access directly.
15
 
16
  if ( ! class_exists( 'SPFTESTIMONIAL_Field_accordion' ) ) {
17
  /**
@@ -24,7 +23,7 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Field_accordion' ) ) {
24
  class SPFTESTIMONIAL_Field_accordion extends SPFTESTIMONIAL_Fields {
25
 
26
  /**
27
- * Column field constructor.
28
  *
29
  * @param array $field The field type.
30
  * @param string $value The values of the field.
@@ -33,7 +32,6 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Field_accordion' ) ) {
33
  * @param string $parent The parent args.
34
  */
35
  public function __construct( $field, $value = '', $unique = '', $where = '', $parent = '' ) {
36
-
37
  parent::__construct( $field, $value, $unique, $where, $parent );
38
  }
39
 
@@ -48,7 +46,7 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Field_accordion' ) ) {
48
 
49
  echo wp_kses_post( $this->field_before() );
50
 
51
- echo '<div class="spftestimonial-accordion-items">';
52
 
53
  foreach ( $this->field['accordions'] as $key => $accordion ) {
54
 
@@ -58,16 +56,15 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Field_accordion' ) ) {
58
 
59
  echo '<h4 class="spftestimonial-accordion-title">';
60
  echo '<i class="' . esc_attr( $icon ) . '"></i>';
61
- echo wp_kses_post( $accordion['title'] );
62
  echo '</h4>';
63
 
64
  echo '<div class="spftestimonial-accordion-content">';
65
  if ( isset( $accordion['fields'] ) && is_array( $accordion['fields'] ) ) {
66
  foreach ( $accordion['fields'] as $field ) {
67
 
68
- if ( in_array( $field['type'], $unallows, true ) ) {
69
- $field['_notice'] = true;
70
- }
71
 
72
  $field_id = ( isset( $field['id'] ) ) ? $field['id'] : '';
73
  $field_default = ( isset( $field['default'] ) ) ? $field['default'] : '';
@@ -83,6 +80,7 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Field_accordion' ) ) {
83
  echo '</div>';
84
 
85
  }
 
86
  echo '</div>';
87
 
88
  echo wp_kses_post( $this->field_after() );
10
  */
11
 
12
  if ( ! defined( 'ABSPATH' ) ) {
13
+ die; } // Cannot access directly.
 
14
 
15
  if ( ! class_exists( 'SPFTESTIMONIAL_Field_accordion' ) ) {
16
  /**
23
  class SPFTESTIMONIAL_Field_accordion extends SPFTESTIMONIAL_Fields {
24
 
25
  /**
26
+ * Field constructor.
27
  *
28
  * @param array $field The field type.
29
  * @param string $value The values of the field.
32
  * @param string $parent The parent args.
33
  */
34
  public function __construct( $field, $value = '', $unique = '', $where = '', $parent = '' ) {
 
35
  parent::__construct( $field, $value, $unique, $where, $parent );
36
  }
37
 
46
 
47
  echo wp_kses_post( $this->field_before() );
48
 
49
+ echo '<div class="spftestimonial-accordion-items" data-depend-id="' . esc_attr( $this->field['id'] ) . '">';
50
 
51
  foreach ( $this->field['accordions'] as $key => $accordion ) {
52
 
56
 
57
  echo '<h4 class="spftestimonial-accordion-title">';
58
  echo '<i class="' . esc_attr( $icon ) . '"></i>';
59
+ echo esc_html( $accordion['title'] );
60
  echo '</h4>';
61
 
62
  echo '<div class="spftestimonial-accordion-content">';
63
  if ( isset( $accordion['fields'] ) && is_array( $accordion['fields'] ) ) {
64
  foreach ( $accordion['fields'] as $field ) {
65
 
66
+ if ( in_array( $field['type'], $unallows ) ) {
67
+ $field['_notice'] = true; }
 
68
 
69
  $field_id = ( isset( $field['id'] ) ) ? $field['id'] : '';
70
  $field_default = ( isset( $field['default'] ) ) ? $field['default'] : '';
80
  echo '</div>';
81
 
82
  }
83
+
84
  echo '</div>';
85
 
86
  echo wp_kses_post( $this->field_after() );
admin/views/framework/fields/border/border.php CHANGED
@@ -45,11 +45,11 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Field_border' ) ) {
45
  $args = wp_parse_args(
46
  $this->field,
47
  array(
48
- 'top_icon' => '<i class="fa fa-long-arrow-up"></i>',
49
- 'left_icon' => '<i class="fa fa-long-arrow-left"></i>',
50
- 'bottom_icon' => '<i class="fa fa-long-arrow-down"></i>',
51
- 'right_icon' => '<i class="fa fa-long-arrow-right"></i>',
52
- 'all_icon' => '<i class="fa fa-arrows"></i>',
53
  'top_placeholder' => esc_html__( 'top', 'testimonial-free' ),
54
  'right_placeholder' => esc_html__( 'right', 'testimonial-free' ),
55
  'bottom_placeholder' => esc_html__( 'bottom', 'testimonial-free' ),
@@ -73,8 +73,8 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Field_border' ) ) {
73
  'bottom' => '',
74
  'left' => '',
75
  'color' => '',
76
- 'hover-color' => '',
77
  'style' => 'solid',
 
78
  'all' => '',
79
  );
80
 
@@ -96,16 +96,16 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Field_border' ) ) {
96
 
97
  echo wp_kses_post( $this->field_before() );
98
 
99
- echo '<div class="spftestimonial--inputs">';
100
 
101
  if ( ! empty( $args['all'] ) ) {
102
 
103
- $placeholder = ( ! empty( $args['all_placeholder'] ) ) ? ' placeholder="' . $args['all_placeholder'] . '"' : '';
104
 
105
  echo '<div class="spftestimonial--input">';
106
  echo ( ! empty( $args['all_icon'] ) ) ? '<span class="spftestimonial--label spftestimonial--icon">' . wp_kses_post( $args['all_icon'] ) . '</span>' : '';
107
- echo '<input type="number" name="' . esc_attr( $this->field_name( '[all]' ) ) . '" value="' . esc_attr( $value['all'] ) . '"' . wp_kses_post( $placeholder ) . ' class="spftestimonial-input-number spftestimonial--is-unit" />';
108
- echo ( ! empty( $args['unit'] ) ) ? '<span class="spftestimonial--label spftestimonial--unit">' . esc_html( $args['unit'] ) . '</span>' : '';
109
  echo '</div>';
110
 
111
  } else {
@@ -122,14 +122,12 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Field_border' ) ) {
122
 
123
  foreach ( $properties as $property ) {
124
 
125
- $placeholder = ( ! empty( $args[ $property . '_placeholder' ] ) ) ? ' placeholder="' . $args[ $property . '_placeholder' ] . '"' : '';
126
-
127
  echo '<div class="spftestimonial--input">';
128
  echo ( ! empty( $args[ $property . '_icon' ] ) ) ? '<span class="spftestimonial--label spftestimonial--icon">' . wp_kses_post( $args[ $property . '_icon' ] ) . '</span>' : '';
129
- echo '<input type="number" name="' . esc_attr( $this->field_name( '[' . $property . ']' ) ) . '" value="' . esc_attr( $value[ $property ] ) . '"' . wp_kses_post( $placeholder ) . ' class="spftestimonial-input-number spftestimonial--is-unit" />';
130
  echo ( ! empty( $args['unit'] ) ) ? '<span class="spftestimonial--label spftestimonial--unit">' . esc_html( $args['unit'] ) . '</span>' : '';
131
  echo '</div>';
132
-
133
  }
134
  }
135
 
@@ -147,28 +145,72 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Field_border' ) ) {
147
  echo '</div>';
148
 
149
  if ( ! empty( $args['color'] ) ) {
150
- $default_color_attr = ( ! empty( $default_value['color'] ) ) ? ' data-default-color="' . $default_value['color'] . '"' : '';
151
  echo '<div class="spftestimonial--color">';
152
  echo '<div class="spftestimonial-field-color">';
153
- echo '<div class="spftestimonial--title">' . esc_html__( 'Color', 'testimonial-free' ) . '</div>';
154
- echo '<input type="text" name="' . esc_attr( $this->field_name( '[color]' ) ) . '" value="' . esc_attr( $value['color'] ) . '" class="spftestimonial-color"' . wp_kses_post( $default_color_attr ) . ' />';
155
  echo '</div>';
156
  echo '</div>';
157
  }
158
-
159
  if ( ! empty( $args['hover_color'] ) ) {
160
- $default_hover_color_attr = ( ! empty( $default_value['hover-color'] ) ) ? ' data-default-color="' . $default_value['hover-color'] . '"' : '';
161
  echo '<div class="spftestimonial--color">';
162
  echo '<div class="spftestimonial-field-color">';
163
- echo '<div class="spftestimonial--title">' . esc_html__( 'Hover Color', 'testimonial-free' ) . '</div>';
164
- echo '<input type="text" name="' . esc_attr( $this->field_name( '[hover-color]' ) ) . '" value="' . esc_attr( $value['hover-color'] ) . '" class="spftestimonial-color"' . wp_kses_post( $default_hover_color_attr ) . ' />';
165
  echo '</div>';
166
  echo '</div>';
167
  }
 
168
 
169
- echo '<div class="clear"></div>';
170
 
171
- echo wp_kses_post( $this->field_after() );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
172
 
173
  }
174
 
45
  $args = wp_parse_args(
46
  $this->field,
47
  array(
48
+ 'top_icon' => '<i class="fa fa-long-arrow-alt-up"></i>',
49
+ 'left_icon' => '<i class="fa fa-long-arrow-alt-left"></i>',
50
+ 'bottom_icon' => '<i class="fa fa-long-arrow-alt-down"></i>',
51
+ 'right_icon' => '<i class="fa fa-long-arrow-alt-right"></i>',
52
+ 'all_icon' => '<i class="fa fa-arrows-alt"></i>',
53
  'top_placeholder' => esc_html__( 'top', 'testimonial-free' ),
54
  'right_placeholder' => esc_html__( 'right', 'testimonial-free' ),
55
  'bottom_placeholder' => esc_html__( 'bottom', 'testimonial-free' ),
73
  'bottom' => '',
74
  'left' => '',
75
  'color' => '',
 
76
  'style' => 'solid',
77
+ 'hover_color' => '',
78
  'all' => '',
79
  );
80
 
96
 
97
  echo wp_kses_post( $this->field_before() );
98
 
99
+ echo '<div class="spftestimonial--inputs" data-depend-id="' . esc_attr( $this->field['id'] ) . '">';
100
 
101
  if ( ! empty( $args['all'] ) ) {
102
 
103
+ $placeholder = ( ! empty( $args['all_placeholder'] ) ) ? ' placeholder="' . esc_attr( $args['all_placeholder'] ) . '"' : '';
104
 
105
  echo '<div class="spftestimonial--input">';
106
  echo ( ! empty( $args['all_icon'] ) ) ? '<span class="spftestimonial--label spftestimonial--icon">' . wp_kses_post( $args['all_icon'] ) . '</span>' : '';
107
+ echo '<input type="number" name="' . esc_attr( $this->field_name( '[all]' ) ) . '" value="' . esc_attr( $value['all'] ) . '"' . wp_kses_post( $placeholder ) . ' class="spftestimonial-input-number spftestimonial--is-unit" step="any" />';
108
+ echo ( ! empty( $args['unit'] ) ) ? '<span class="spftestimonial--label spftestimonial--unit">' . esc_attr( $args['unit'] ) . '</span>' : '';
109
  echo '</div>';
110
 
111
  } else {
122
 
123
  foreach ( $properties as $property ) {
124
 
125
+ $placeholder = ( ! empty( $args[ $property . '_placeholder' ] ) ) ? ' placeholder="' . esc_attr( $args[ $property . '_placeholder' ] ) . '"' : '';
 
126
  echo '<div class="spftestimonial--input">';
127
  echo ( ! empty( $args[ $property . '_icon' ] ) ) ? '<span class="spftestimonial--label spftestimonial--icon">' . wp_kses_post( $args[ $property . '_icon' ] ) . '</span>' : '';
128
+ echo '<input type="number" name="' . esc_attr( $this->field_name( '[' . $property . ']' ) ) . '" value="' . esc_attr( $value[ $property ] ) . '"' . wp_kses_post( $placeholder ) . ' class="spftestimonial-input-number spftestimonial--is-unit" step="any" />';
129
  echo ( ! empty( $args['unit'] ) ) ? '<span class="spftestimonial--label spftestimonial--unit">' . esc_html( $args['unit'] ) . '</span>' : '';
130
  echo '</div>';
 
131
  }
132
  }
133
 
145
  echo '</div>';
146
 
147
  if ( ! empty( $args['color'] ) ) {
148
+ $default_color_attr = ( ! empty( $default_value['color'] ) ) ? $default_value['color'] : '';
149
  echo '<div class="spftestimonial--color">';
150
  echo '<div class="spftestimonial-field-color">';
151
+ echo '<div class="spftestimonial--title">Color</div>';
152
+ echo '<input type="text" name="' . esc_attr( $this->field_name( '[color]' ) ) . '" value="' . esc_attr( $value['color'] ) . '" class="spftestimonial-color" data-default-color="' . esc_attr( $default_color_attr ) . '" />';
153
  echo '</div>';
154
  echo '</div>';
155
  }
 
156
  if ( ! empty( $args['hover_color'] ) ) {
157
+ $default_hover_color_attr = ( ! empty( $default_value['hover-color'] ) ) ? $default_value['hover-color'] : '';
158
  echo '<div class="spftestimonial--color">';
159
  echo '<div class="spftestimonial-field-color">';
160
+ echo '<div class="spftestimonial--title">Hover Color</div>';
161
+ echo '<input type="text" name="' . esc_attr( $this->field_name( '[hover-color]' ) ) . '" value="' . esc_attr( $value['hover-color'] ) . '" class="spftestimonial-color" data-default-color="' . esc_attr( $default_hover_color_attr ) . '" />';
162
  echo '</div>';
163
  echo '</div>';
164
  }
165
+ echo wp_kses_post( $this->field_after() );
166
 
167
+ }
168
 
169
+ /**
170
+ * Output
171
+ *
172
+ * @return statement
173
+ */
174
+ public function output() {
175
+
176
+ $output = '';
177
+ $unit = ( ! empty( $this->value['unit'] ) ) ? $this->value['unit'] : 'px';
178
+ $important = ( ! empty( $this->field['output_important'] ) ) ? '!important' : '';
179
+ $element = ( is_array( $this->field['output'] ) ) ? join( ',', $this->field['output'] ) : $this->field['output'];
180
+
181
+ // properties.
182
+ $top = ( isset( $this->value['top'] ) && '' !== $this->value['top'] ) ? $this->value['top'] : '';
183
+ $right = ( isset( $this->value['right'] ) && '' !== $this->value['right'] ) ? $this->value['right'] : '';
184
+ $bottom = ( isset( $this->value['bottom'] ) && '' !== $this->value['bottom'] ) ? $this->value['bottom'] : '';
185
+ $left = ( isset( $this->value['left'] ) && '' !== $this->value['left'] ) ? $this->value['left'] : '';
186
+ $style = ( isset( $this->value['style'] ) && '' !== $this->value['style'] ) ? $this->value['style'] : '';
187
+ $color = ( isset( $this->value['color'] ) && '' !== $this->value['color'] ) ? $this->value['color'] : '';
188
+ $all = ( isset( $this->value['all'] ) && '' !== $this->value['all'] ) ? $this->value['all'] : '';
189
+
190
+ if ( ! empty( $this->field['all'] ) && ( '' !== $all || '' !== $color ) ) {
191
+
192
+ $output = $element . '{';
193
+ $output .= ( '' !== $all ) ? 'border-width:' . $all . $unit . $important . ';' : '';
194
+ $output .= ( '' !== $color ) ? 'border-color:' . $color . $important . ';' : '';
195
+ $output .= ( '' !== $style ) ? 'border-style:' . $style . $important . ';' : '';
196
+ $output .= '}';
197
+
198
+ } elseif ( '' !== $top || '' !== $right || '' !== $bottom || '' !== $left || '' !== $color ) {
199
+
200
+ $output = $element . '{';
201
+ $output .= ( '' !== $top ) ? 'border-top-width:' . $top . $unit . $important . ';' : '';
202
+ $output .= ( '' !== $right ) ? 'border-right-width:' . $right . $unit . $important . ';' : '';
203
+ $output .= ( '' !== $bottom ) ? 'border-bottom-width:' . $bottom . $unit . $important . ';' : '';
204
+ $output .= ( '' !== $left ) ? 'border-left-width:' . $left . $unit . $important . ';' : '';
205
+ $output .= ( '' !== $color ) ? 'border-color:' . $color . $important . ';' : '';
206
+ $output .= ( '' !== $style ) ? 'border-style:' . $style . $important . ';' : '';
207
+ $output .= '}';
208
+
209
+ }
210
+
211
+ $this->parent->output_css .= $output;
212
+
213
+ return $output;
214
 
215
  }
216
 
admin/views/framework/fields/button_set/button_set.php CHANGED
@@ -33,7 +33,6 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Field_button_set' ) ) {
33
  * @param string $parent The parent args.
34
  */
35
  public function __construct( $field, $value = '', $unique = '', $where = '', $parent = '' ) {
36
-
37
  parent::__construct( $field, $value, $unique, $where, $parent );
38
  }
39
 
@@ -47,8 +46,9 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Field_button_set' ) ) {
47
  $args = wp_parse_args(
48
  $this->field,
49
  array(
50
- 'multiple' => false,
51
- 'options' => array(),
 
52
  )
53
  );
54
 
@@ -56,37 +56,34 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Field_button_set' ) ) {
56
 
57
  echo wp_kses_post( $this->field_before() );
58
 
59
- if ( ! empty( $args['options'] ) ) {
60
-
61
- echo '<div class="spftestimonial-siblings spftestimonial--button-group" data-multiple="' . esc_attr( $args['multiple'] ) . '">';
62
-
63
- foreach ( $args['options'] as $key => $option ) {
64
-
65
- $type = ( $args['multiple'] ) ? 'checkbox' : 'radio';
66
- $extra = ( $args['multiple'] ) ? '[]' : '';
67
- $active = ( in_array( $key, $value, true ) || ( empty( $value ) && empty( $key ) ) ) ? ' spftestimonial--active' : '';
68
- $checked = ( in_array( $key, $value, true ) || ( empty( $value ) && empty( $key ) ) ) ? ' checked' : '';
69
- $pro_only_class = ( isset( $option['pro_only'] ) && true === $option['pro_only'] ) ? ' spftestimonial-pro-only' : '';
70
- echo '<div class="spftestimonial--sibling spftestimonial--button' . esc_attr( $active . $pro_only_class ) . '">';
71
- // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
72
- echo '<input type="' . esc_attr( $type ) . '" name="' . esc_attr( $this->field_name( $extra ) ) . '" value="' . esc_attr( $key ) . '"' . $this->field_attributes() . esc_attr( $checked ) . '/>';
73
- if ( isset( $option['option_name'] ) && ! empty( $option['option_name'] ) ) {
74
- echo esc_html( $option['option_name'] );
75
- } else {
76
- echo esc_html( $option );
 
 
 
77
  }
78
  echo '</div>';
79
-
 
80
  }
81
-
82
- echo '</div>';
83
-
84
  }
85
-
86
- echo '<div class="clear"></div>';
87
- // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
88
- echo $this->field_after();
89
-
90
  }
91
 
92
  }
33
  * @param string $parent The parent args.
34
  */
35
  public function __construct( $field, $value = '', $unique = '', $where = '', $parent = '' ) {
 
36
  parent::__construct( $field, $value, $unique, $where, $parent );
37
  }
38
 
46
  $args = wp_parse_args(
47
  $this->field,
48
  array(
49
+ 'multiple' => false,
50
+ 'options' => array(),
51
+ 'query_args' => array(),
52
  )
53
  );
54
 
56
 
57
  echo wp_kses_post( $this->field_before() );
58
 
59
+ if ( isset( $this->field['options'] ) ) {
60
+
61
+ $options = $this->field['options'];
62
+ $options = ( is_array( $options ) ) ? $options : array_filter( $this->field_data( $options, false, $args['query_args'] ) );
63
+
64
+ if ( is_array( $options ) && ! empty( $options ) ) {
65
+ echo '<div class="spftestimonial-siblings spftestimonial--button-group" data-multiple="' . esc_attr( $args['multiple'] ) . '">';
66
+ foreach ( $options as $key => $option ) {
67
+ $type = ( $args['multiple'] ) ? 'checkbox' : 'radio';
68
+ $extra = ( $args['multiple'] ) ? '[]' : '';
69
+ $active = ( in_array( $key, $value ) || ( empty( $value ) && empty( $key ) ) ) ? ' spftestimonial--active' : '';
70
+ $checked = ( in_array( $key, $value ) || ( empty( $value ) && empty( $key ) ) ) ? ' checked' : '';
71
+ $pro_only_class = ( isset( $option['pro_only'] ) && $option['pro_only'] ) ? ' spftestimonial-pro-only' : '';
72
+ echo '<div class="spftestimonial--sibling spftestimonial--button' . esc_attr( $active . $pro_only_class ) . '">';
73
+ echo '<input type="' . esc_attr( $type ) . '" name="' . esc_attr( $this->field_name( $extra ) ) . '" value="' . esc_attr( $key ) . '"' . $this->field_attributes() . esc_attr( $checked ) . '/>';
74
+ if ( isset( $option['option_name'] ) && ! empty( $option['option_name'] ) ) {
75
+ echo esc_html( $option['option_name'] );
76
+ } else {
77
+ echo esc_html( $option );
78
+ }
79
+ echo '</div>';
80
  }
81
  echo '</div>';
82
+ } else {
83
+ echo esc_html( ( ! empty( $this->field['empty_message'] ) ) ? $this->field['empty_message'] : __( 'No data available.', 'testimonial-free' ) );
84
  }
 
 
 
85
  }
86
+ echo wp_kses_post( $this->field_after() );
 
 
 
 
87
  }
88
 
89
  }
admin/views/framework/fields/checkbox/checkbox.php CHANGED
@@ -10,7 +10,8 @@
10
  */
11
 
12
  if ( ! defined( 'ABSPATH' ) ) {
13
- die; } // Cannot access directly.
 
14
 
15
  if ( ! class_exists( 'SPFTESTIMONIAL_Field_checkbox' ) ) {
16
  /**
@@ -50,7 +51,7 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Field_checkbox' ) ) {
50
  )
51
  );
52
 
53
- $inline_class = ( $args['inline'] ) ? ' class="spftestimonial--inline-list"' : '';
54
 
55
  echo wp_kses_post( $this->field_before() );
56
 
@@ -62,45 +63,55 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Field_checkbox' ) ) {
62
 
63
  if ( is_array( $options ) && ! empty( $options ) ) {
64
 
65
- echo '<ul' . wp_kses_post( $inline_class ) . '>';
 
66
  foreach ( $options as $option_key => $option_value ) {
67
 
68
  if ( is_array( $option_value ) && ! empty( $option_value ) ) {
69
 
70
  echo '<li>';
71
  echo '<ul>';
72
- echo '<li><strong>' . esc_html( $option_key ) . '</strong></li>';
73
  foreach ( $option_value as $sub_key => $sub_value ) {
74
- $checked = ( in_array( $sub_key, $value, true ) ) ? ' checked' : '';
75
- // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
76
- echo '<li><label><input type="checkbox" name="' . esc_attr( $this->field_name( '[]' ) ) . '" value="' . esc_attr( $sub_key ) . '"' . $this->field_attributes() . esc_attr( $checked ) . '/> ' . esc_html( $sub_value ) . '</label></li>';
 
 
 
 
77
  }
78
  echo '</ul>';
79
  echo '</li>';
80
 
81
  } else {
82
 
83
- $checked = ( in_array( $option_key, $value, true ) ) ? ' checked' : '';
84
- // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
85
- echo '<li><label><input type="checkbox" name="' . esc_attr( $this->field_name( '[]' ) ) . '" value="' . esc_attr( $option_key ) . '"' . $this->field_attributes() . esc_attr( $checked ) . '/> ' . esc_html( $option_value ) . '</label></li>';
 
 
 
 
 
86
 
87
  }
88
  }
 
89
  echo '</ul>';
90
 
91
  } else {
92
- // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
93
- echo ( ! empty( $this->field['empty_message'] ) ) ? $this->field['empty_message'] : esc_html__( 'No data provided for this option type.', 'testimonial-free' );
94
 
95
  }
96
  } else {
97
 
98
- echo '<label class="spftestimonial-checkbox">';
99
- // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
100
- echo '<input type="hidden" name="' . esc_attr( $this->field_name() ) . '" value="' . esc_attr( $this->value ) . '" class="spftestimonial--input"' . $this->field_attributes() . '/>';
101
- echo '<input type="checkbox" name="_pseudo" class="spftestimonial--checkbox"' . checked( $this->value, 1, false ) . '/>';
102
- echo ( ! empty( $this->field['label'] ) ) ? ' ' . esc_html( $this->field['label'] ) : '';
103
- echo '</label>';
104
 
105
  }
106
 
10
  */
11
 
12
  if ( ! defined( 'ABSPATH' ) ) {
13
+ die;
14
+ } // Cannot access directly.
15
 
16
  if ( ! class_exists( 'SPFTESTIMONIAL_Field_checkbox' ) ) {
17
  /**
51
  )
52
  );
53
 
54
+ $inline_class = ( $args['inline'] ) ? 'spftestimonial--inline-list' : '';
55
 
56
  echo wp_kses_post( $this->field_before() );
57
 
63
 
64
  if ( is_array( $options ) && ! empty( $options ) ) {
65
 
66
+ echo '<ul class="' . esc_attr( $inline_class ) . '">';
67
+
68
  foreach ( $options as $option_key => $option_value ) {
69
 
70
  if ( is_array( $option_value ) && ! empty( $option_value ) ) {
71
 
72
  echo '<li>';
73
  echo '<ul>';
74
+ echo '<li><strong>' . esc_attr( $option_key ) . '</strong></li>';
75
  foreach ( $option_value as $sub_key => $sub_value ) {
76
+ $checked = ( in_array( $sub_key, $value ) ) ? ' checked' : '';
77
+ echo '<li>';
78
+ echo '<label>';
79
+ echo '<input type="checkbox" name="' . esc_attr( $this->field_name( '[]' ) ) . '" value="' . esc_attr( $sub_key ) . '"' . $this->field_attributes() . esc_attr( $checked ) . '/>';// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
80
+ echo '<span class="spftestimonial--text">' . esc_attr( $sub_value ) . '</span>';
81
+ echo '</label>';
82
+ echo '</li>';
83
  }
84
  echo '</ul>';
85
  echo '</li>';
86
 
87
  } else {
88
 
89
+ $checked = ( in_array( $option_key, $value ) ) ? ' checked' : '';
90
+
91
+ echo '<li>';
92
+ echo '<label>';
93
+ echo '<input type="checkbox" name="' . esc_attr( $this->field_name( '[]' ) ) . '" value="' . esc_attr( $option_key ) . '"' . $this->field_attributes() . esc_attr( $checked ) . '/>';// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
94
+ echo '<span class="spftestimonial--text">' . esc_attr( $option_value ) . '</span>';
95
+ echo '</label>';
96
+ echo '</li>';
97
 
98
  }
99
  }
100
+
101
  echo '</ul>';
102
 
103
  } else {
104
+
105
+ echo ! empty( $this->field['empty_message'] ) ? esc_attr( $this->field['empty_message'] ) : esc_html__( 'No data available.', 'testimonial-free' );
106
 
107
  }
108
  } else {
109
 
110
+ echo '<label class="spftestimonial-checkbox">';
111
+ echo '<input type="hidden" name="' . esc_attr( $this->field_name() ) . '" value="' . esc_attr( $this->value ) . '" class="spftestimonial--input"' . $this->field_attributes() . '/>';// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
112
+ echo '<input type="checkbox" name="_pseudo" class="spftestimonial--checkbox"' . esc_attr( checked( $this->value, 1, false ) ) . '/>';
113
+ echo ( ! empty( $this->field['label'] ) ) ? '<span class="spftestimonial--text">' . esc_attr( $this->field['label'] ) . '</span>' : '';
114
+ echo '</label>';
 
115
 
116
  }
117
 
admin/views/framework/fields/code_editor/code_editor.php CHANGED
@@ -1,6 +1,6 @@
1
  <?php
2
  /**
3
- * Framework accordion field file.
4
  *
5
  * @link https://shapedplugin.com
6
  * @since 2.0.0
@@ -28,7 +28,7 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Field_code_editor' ) ) {
28
  *
29
  * @var string
30
  */
31
- public $version = '5.41.0';
32
  /**
33
  * Cdn_url
34
  *
@@ -46,7 +46,6 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Field_code_editor' ) ) {
46
  * @param string $parent The parent args.
47
  */
48
  public function __construct( $field, $value = '', $unique = '', $where = '', $parent = '' ) {
49
-
50
  parent::__construct( $field, $value, $unique, $where, $parent );
51
  }
52
 
@@ -67,12 +66,9 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Field_code_editor' ) ) {
67
 
68
  $settings = ( ! empty( $this->field['settings'] ) ) ? $this->field['settings'] : array();
69
  $settings = wp_parse_args( $settings, $default_settings );
70
- $encoded = htmlspecialchars( wp_json_encode( $settings ) );
71
 
72
  echo wp_kses_post( $this->field_before() );
73
- // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
74
- echo '<textarea name="' . esc_attr( $this->field_name() ) . '"' . $this->field_attributes() . ' data-editor="' . esc_attr( $encoded ) . '">' . wp_kses_post( $this->value ) . '</textarea>';
75
-
76
  echo wp_kses_post( $this->field_after() );
77
 
78
  }
@@ -84,25 +80,22 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Field_code_editor' ) ) {
84
  */
85
  public function enqueue() {
86
 
87
- $screen = get_current_screen();
88
- if ( 'spt_testimonial' === $screen->post_type || 'spt_shortcodes' === $screen->post_type ) {
89
- // Do not loads CodeMirror in revslider page.
90
- if ( in_array( spftestimonial_get_var( 'page' ), array( 'revslider' ), true ) ) {
91
- return;
92
- }
93
-
94
- if ( ! wp_script_is( 'spftestimonial-codemirror' ) ) {
95
- wp_enqueue_script( 'spftestimonial-codemirror', $this->cdn_url . $this->version . '/lib/codemirror.min.js', array( 'spftestimonial' ), $this->version, true );
96
- wp_enqueue_script( 'spftestimonial-codemirror-loadmode', $this->cdn_url . $this->version . '/addon/mode/loadmode.min.js', array( 'spftestimonial-codemirror' ), $this->version, true );
97
- }
98
-
99
- if ( ! wp_style_is( 'spftestimonial-codemirror' ) ) {
100
- wp_enqueue_style( 'spftestimonial-codemirror', $this->cdn_url . $this->version . '/lib/codemirror.min.css', array(), $this->version );
101
- }
102
  }
103
 
104
  }
105
 
106
  }
107
  }
108
-
1
  <?php
2
  /**
3
+ * Framework Code Editor field file.
4
  *
5
  * @link https://shapedplugin.com
6
  * @since 2.0.0
28
  *
29
  * @var string
30
  */
31
+ public $version = '5.62.2';
32
  /**
33
  * Cdn_url
34
  *
46
  * @param string $parent The parent args.
47
  */
48
  public function __construct( $field, $value = '', $unique = '', $where = '', $parent = '' ) {
 
49
  parent::__construct( $field, $value, $unique, $where, $parent );
50
  }
51
 
66
 
67
  $settings = ( ! empty( $this->field['settings'] ) ) ? $this->field['settings'] : array();
68
  $settings = wp_parse_args( $settings, $default_settings );
 
69
 
70
  echo wp_kses_post( $this->field_before() );
71
+ echo '<textarea name="' . esc_attr( $this->field_name() ) . '"' . $this->field_attributes() . ' data-editor="' . esc_attr( json_encode( $settings ) ) . '">' . wp_kses_post( $this->value ) . '</textarea>';// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
 
 
72
  echo wp_kses_post( $this->field_after() );
73
 
74
  }
80
  */
81
  public function enqueue() {
82
 
83
+ $page = ( ! empty( $_GET['page'] ) ) ? sanitize_text_field( wp_unslash( $_GET['page'] ) ) : '';
84
+
85
+ // Do not loads CodeMirror in revslider page.
86
+ if ( in_array( $page, array( 'revslider' ) ) ) {
87
+ return; }
88
+
89
+ if ( ! wp_script_is( 'spftestimonial-codemirror' ) ) {
90
+ wp_enqueue_script( 'spftestimonial-codemirror', esc_url( $this->cdn_url . $this->version . '/lib/codemirror.min.js' ), array( 'spftestimonial' ), $this->version, true );
91
+ wp_enqueue_script( 'spftestimonial-codemirror-loadmode', esc_url( $this->cdn_url . $this->version . '/addon/mode/loadmode.min.js' ), array( 'spftestimonial-codemirror' ), $this->version, true );
92
+ }
93
+
94
+ if ( ! wp_style_is( 'spftestimonial-codemirror' ) ) {
95
+ wp_enqueue_style( 'spftestimonial-codemirror', esc_url( $this->cdn_url . $this->version . '/lib/codemirror.min.css' ), array(), $this->version );
 
 
96
  }
97
 
98
  }
99
 
100
  }
101
  }
 
admin/views/framework/fields/color/color.php CHANGED
@@ -43,12 +43,10 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Field_color' ) ) {
43
  */
44
  public function render() {
45
 
46
- $default_attr = ( ! empty( $this->field['default'] ) ) ? ' data-default-color="' . $this->field['default'] . '"' : '';
47
 
48
  echo wp_kses_post( $this->field_before() );
49
- // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
50
- echo '<input type="text" name="' . esc_attr( $this->field_name() ) . '" value="' . esc_attr( $this->value ) . '" class="spftestimonial-color"' . wp_kses_post( $default_attr ) . $this->field_attributes() . '/>';
51
-
52
  echo wp_kses_post( $this->field_after() );
53
 
54
  }
@@ -56,10 +54,9 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Field_color' ) ) {
56
  /**
57
  * Output
58
  *
59
- * @return statement
60
  */
61
  public function output() {
62
-
63
  $output = '';
64
  $elements = ( is_array( $this->field['output'] ) ) ? $this->field['output'] : array_filter( (array) $this->field['output'] );
65
  $important = ( ! empty( $this->field['output_important'] ) ) ? '!important' : '';
@@ -84,4 +81,3 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Field_color' ) ) {
84
 
85
  }
86
  }
87
-
43
  */
44
  public function render() {
45
 
46
+ $default_attr = ( ! empty( $this->field['default'] ) ) ? $this->field['default'] : '';
47
 
48
  echo wp_kses_post( $this->field_before() );
49
+ echo '<input type="text" name="' . esc_attr( $this->field_name() ) . '" value="' . esc_attr( $this->value ) . '" class="spftestimonial-color" data-default-color="' . esc_attr( $default_attr ) . '" ' . $this->field_attributes() . '/>';// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
 
 
50
  echo wp_kses_post( $this->field_after() );
51
 
52
  }
54
  /**
55
  * Output
56
  *
57
+ * @return output
58
  */
59
  public function output() {
 
60
  $output = '';
61
  $elements = ( is_array( $this->field['output'] ) ) ? $this->field['output'] : array_filter( (array) $this->field['output'] );
62
  $important = ( ! empty( $this->field['output_important'] ) ) ? '!important' : '';
81
 
82
  }
83
  }
 
admin/views/framework/fields/color_group/color_group.php CHANGED
@@ -10,7 +10,8 @@
10
  */
11
 
12
  if ( ! defined( 'ABSPATH' ) ) {
13
- die; } // Cannot access directly.
 
14
 
15
  if ( ! class_exists( 'SPFTESTIMONIAL_Field_color_group' ) ) {
16
  /**
@@ -21,6 +22,7 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Field_color_group' ) ) {
21
  * @version 1.0.0
22
  */
23
  class SPFTESTIMONIAL_Field_color_group extends SPFTESTIMONIAL_Fields {
 
24
  /**
25
  * Field constructor.
26
  *
@@ -49,19 +51,16 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Field_color_group' ) ) {
49
  foreach ( $options as $key => $option ) {
50
 
51
  $color_value = ( ! empty( $this->value[ $key ] ) ) ? $this->value[ $key ] : '';
52
- $default_attr = ( ! empty( $this->field['default'][ $key ] ) ) ? ' data-default-color="' . $this->field['default'][ $key ] . '"' : '';
53
 
54
  echo '<div class="spftestimonial--left spftestimonial-field-color">';
55
  echo '<div class="spftestimonial--title">' . esc_html( $option ) . '</div>';
56
- // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
57
- echo '<input type="text" name="' . esc_attr( $this->field_name( '[' . $key . ']' ) ) . '" value="' . esc_attr( $color_value ) . '" class="spftestimonial-color"' . wp_kses_post( $default_attr ) . $this->field_attributes() . '/>';
58
  echo '</div>';
59
 
60
  }
61
  }
62
 
63
- echo '<div class="clear"></div>';
64
-
65
  echo wp_kses_post( $this->field_after() );
66
 
67
  }
10
  */
11
 
12
  if ( ! defined( 'ABSPATH' ) ) {
13
+ die;
14
+ } // Cannot access directly.
15
 
16
  if ( ! class_exists( 'SPFTESTIMONIAL_Field_color_group' ) ) {
17
  /**
22
  * @version 1.0.0
23
  */
24
  class SPFTESTIMONIAL_Field_color_group extends SPFTESTIMONIAL_Fields {
25
+
26
  /**
27
  * Field constructor.
28
  *
51
  foreach ( $options as $key => $option ) {
52
 
53
  $color_value = ( ! empty( $this->value[ $key ] ) ) ? $this->value[ $key ] : '';
54
+ $default_attr = ( ! empty( $this->field['default'][ $key ] ) ) ? esc_attr( $this->field['default'][ $key ] ) : '';
55
 
56
  echo '<div class="spftestimonial--left spftestimonial-field-color">';
57
  echo '<div class="spftestimonial--title">' . esc_html( $option ) . '</div>';
58
+ echo '<input type="text" name="' . esc_attr( $this->field_name( '[' . $key . ']' ) ) . '" value="' . esc_attr( $color_value ) . '" class="spftestimonial-color" data-default-color="' . esc_attr( $default_attr ) . '"' . $this->field_attributes() . '/>';// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
 
59
  echo '</div>';
60
 
61
  }
62
  }
63
 
 
 
64
  echo wp_kses_post( $this->field_after() );
65
 
66
  }
admin/views/framework/fields/column/column.php CHANGED
@@ -10,7 +10,8 @@
10
  */
11
 
12
  if ( ! defined( 'ABSPATH' ) ) {
13
- die; } // Cannot access directly.
 
14
 
15
  if ( ! class_exists( 'SPFTESTIMONIAL_Field_column' ) ) {
16
  /**
@@ -21,6 +22,7 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Field_column' ) ) {
21
  * @version 2.2.0
22
  */
23
  class SPFTESTIMONIAL_Field_column extends SPFTESTIMONIAL_Fields {
 
24
  /**
25
  * Field constructor.
26
  *
@@ -81,19 +83,20 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Field_column' ) ) {
81
  $properties[] = $prop;
82
  }
83
  }
84
-
85
  $properties = ( array( 'desktop', 'tablet' ) === $properties ) ? array_reverse( $properties ) : $properties;
86
 
87
  foreach ( $properties as $property ) {
88
 
89
- $placeholder = ( ! empty( $args[ $property . '_placeholder' ] ) ) ? ' placeholder="' . $args[ $property . '_placeholder' ] . '"' : '';
90
 
91
  echo '<div class="spftestimonial--input">';
92
- echo ( ! empty( $args[ $property . '_icon' ] ) ) ? '<span class="spftestimonial--label spftestimonial--label-icon">' . wp_kses_post( $args[ $property . '_icon' ] ) . '</span>' : '';
93
- echo '<input type="number" name="' . esc_attr( $this->field_name( '[' . $property . ']' ) ) . '" value="' . esc_attr( $value[ $property ] ) . '"' . wp_kses_post( $placeholder ) . ' class="spftestimonial-number" />';
94
  echo '</div>';
95
 
96
  }
 
97
 
98
  echo '<div class="clear"></div>';
99
 
10
  */
11
 
12
  if ( ! defined( 'ABSPATH' ) ) {
13
+ die;
14
+ } // Cannot access directly.
15
 
16
  if ( ! class_exists( 'SPFTESTIMONIAL_Field_column' ) ) {
17
  /**
22
  * @version 2.2.0
23
  */
24
  class SPFTESTIMONIAL_Field_column extends SPFTESTIMONIAL_Fields {
25
+
26
  /**
27
  * Field constructor.
28
  *
83
  $properties[] = $prop;
84
  }
85
  }
86
+ echo '<div class="spftestimonial--inputs">';
87
  $properties = ( array( 'desktop', 'tablet' ) === $properties ) ? array_reverse( $properties ) : $properties;
88
 
89
  foreach ( $properties as $property ) {
90
 
91
+ $placeholder = ( ! empty( $args[ $property . '_placeholder' ] ) ) ? $args[ $property . '_placeholder' ] : '';
92
 
93
  echo '<div class="spftestimonial--input">';
94
+ echo ( ! empty( $args[ $property . '_icon' ] ) ) ? '<span class="spftestimonial--label spftestimonial--icon">' . wp_kses_post( $args[ $property . '_icon' ] ) . '</span>' : '';
95
+ echo '<input type="number" name="' . esc_attr( $this->field_name( '[' . $property . ']' ) ) . '" value="' . esc_attr( $value[ $property ] ) . '" placeholder="' . esc_attr( $placeholder ) . '" class="spftestimonial-number" step="any" min="1" required />';
96
  echo '</div>';
97
 
98
  }
99
+ echo '</div>';
100
 
101
  echo '<div class="clear"></div>';
102
 
admin/views/framework/fields/content/content.php ADDED
@@ -0,0 +1,55 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Framework content field file.
4
+ *
5
+ * @link https://shapedplugin.com
6
+ * @since 2.0.0
7
+ *
8
+ * @package Testimonial_free
9
+ * @subpackage Testimonial_free/framework
10
+ */
11
+
12
+ if ( ! defined( 'ABSPATH' ) ) {
13
+ die;
14
+ } // Cannot access directly.
15
+
16
+ if ( ! class_exists( 'SPFTESTIMONIAL_Field_content' ) ) {
17
+ /**
18
+ *
19
+ * Field: content
20
+ *
21
+ * @since 1.0.0
22
+ * @version 1.0.0
23
+ */
24
+ class SPFTESTIMONIAL_Field_content extends SPFTESTIMONIAL_Fields {
25
+
26
+ /**
27
+ * Field constructor.
28
+ *
29
+ * @param array $field The field type.
30
+ * @param string $value The values of the field.
31
+ * @param string $unique The unique ID for the field.
32
+ * @param string $where To where show the output CSS.
33
+ * @param string $parent The parent args.
34
+ */
35
+ public function __construct( $field, $value = '', $unique = '', $where = '', $parent = '' ) {
36
+ parent::__construct( $field, $value, $unique, $where, $parent );
37
+ }
38
+
39
+ /**
40
+ * Render field
41
+ *
42
+ * @return void
43
+ */
44
+ public function render() {
45
+
46
+ if ( ! empty( $this->field['content'] ) ) {
47
+
48
+ echo wp_kses_post( $this->field['content'] );
49
+
50
+ }
51
+
52
+ }
53
+
54
+ }
55
+ }
admin/views/framework/fields/custom_import/custom_import.php CHANGED
@@ -10,7 +10,8 @@
10
  */
11
 
12
  if ( ! defined( 'ABSPATH' ) ) {
13
- die; } // Cannot access directly.
 
14
 
15
  if ( ! class_exists( 'SPFTESTIMONIAL_Field_custom_import' ) ) {
16
  /**
@@ -21,6 +22,7 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Field_custom_import' ) ) {
21
  * @version 1.0.0
22
  */
23
  class SPFTESTIMONIAL_Field_custom_import extends SPFTESTIMONIAL_Fields {
 
24
  /**
25
  * Field constructor.
26
  *
@@ -33,7 +35,6 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Field_custom_import' ) ) {
33
  public function __construct( $field, $value = '', $unique = '', $where = '', $parent = '' ) {
34
  parent::__construct( $field, $value, $unique, $where, $parent );
35
  }
36
-
37
  /**
38
  * Render field
39
  *
@@ -41,12 +42,14 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Field_custom_import' ) ) {
41
  */
42
  public function render() {
43
  echo wp_kses_post( $this->field_before() );
44
- $spt_testimonial = admin_url( 'edit.php?post_type=spt_testimonial' );
45
- $spt_shortcodes = admin_url( 'edit.php?post_type=spt_shortcodes' );
 
46
  echo '<p><input type="file" id="import" accept=".json"></p>';
47
  echo '<p><button type="button" class="import">Import</button></p>';
48
  echo '<a id="spt_shortcode_link_redirect" href="' . esc_url( $spt_shortcodes ) . '"></a>';
49
  echo '<a id="spt_testimonial_link_redirect" href="' . esc_url( $spt_testimonial ) . '"></a>';
 
50
  echo wp_kses_post( $this->field_after() );
51
  }
52
  }
10
  */
11
 
12
  if ( ! defined( 'ABSPATH' ) ) {
13
+ die;
14
+ } // Cannot access directly.
15
 
16
  if ( ! class_exists( 'SPFTESTIMONIAL_Field_custom_import' ) ) {
17
  /**
22
  * @version 1.0.0
23
  */
24
  class SPFTESTIMONIAL_Field_custom_import extends SPFTESTIMONIAL_Fields {
25
+
26
  /**
27
  * Field constructor.
28
  *
35
  public function __construct( $field, $value = '', $unique = '', $where = '', $parent = '' ) {
36
  parent::__construct( $field, $value, $unique, $where, $parent );
37
  }
 
38
  /**
39
  * Render field
40
  *
42
  */
43
  public function render() {
44
  echo wp_kses_post( $this->field_before() );
45
+ $spt_testimonial = admin_url( 'edit.php?post_type=spt_testimonial' );
46
+ $spt_shortcodes = admin_url( 'edit.php?post_type=spt_shortcodes' );
47
+ $spt_testimonial_form = admin_url( 'edit.php?post_type=spt_testimonial_form' );
48
  echo '<p><input type="file" id="import" accept=".json"></p>';
49
  echo '<p><button type="button" class="import">Import</button></p>';
50
  echo '<a id="spt_shortcode_link_redirect" href="' . esc_url( $spt_shortcodes ) . '"></a>';
51
  echo '<a id="spt_testimonial_link_redirect" href="' . esc_url( $spt_testimonial ) . '"></a>';
52
+ echo '<a id="spt_forms_link_redirect" href="' . esc_url( $spt_testimonial_form ) . '"></a>';
53
  echo wp_kses_post( $this->field_after() );
54
  }
55
  }
admin/views/framework/fields/custom_size/custom_size.php CHANGED
@@ -10,7 +10,8 @@
10
  */
11
 
12
  if ( ! defined( 'ABSPATH' ) ) {
13
- die; } // Cannot access directly.
 
14
 
15
  if ( ! class_exists( 'SPFTESTIMONIAL_Field_custom_size' ) ) {
16
  /**
@@ -21,6 +22,7 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Field_custom_size' ) ) {
21
  * @version 2.2.0
22
  */
23
  class SPFTESTIMONIAL_Field_custom_size extends SPFTESTIMONIAL_Fields {
 
24
  /**
25
  * Field constructor.
26
  *
@@ -77,15 +79,15 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Field_custom_size' ) ) {
77
  }
78
 
79
  $properties = ( array( 'width', 'height' ) === $properties ) ? array_reverse( $properties ) : $properties;
80
-
81
  foreach ( $properties as $property ) {
82
 
83
- $placeholder = ( ! empty( $args[ $property . '_placeholder' ] ) ) ? ' placeholder="' . $args[ $property . '_placeholder' ] . '"' : '';
84
 
85
  echo '<div class="spftestimonial--input">';
86
- echo ( ! empty( $args[ $property . '_icon' ] ) ) ? '<span class="spftestimonial--label spftestimonial--label-icon">' . wp_kses_post( $args[ $property . '_icon' ] ) . '</span>' : '';
87
- echo '<input type="number" name="' . esc_attr( $this->field_name( '[' . $property . ']' ) ) . '" value="' . esc_attr( $value[ $property ] ) . '"' . wp_kses_post( $placeholder ) . ' class="spftestimonial-number" />';
88
- echo ( ! empty( $args['unit'] ) ) ? '<span class="spftestimonial--label spftestimonial--label-unit">' . esc_html( $args['unit'] ) . '</span>' : '';
89
  echo '</div>';
90
 
91
  }
@@ -95,12 +97,13 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Field_custom_size' ) ) {
95
  echo '<select name="' . esc_attr( $this->field_name( '[crop]' ) ) . '">';
96
  foreach ( $args['crops'] as $crop_prop ) {
97
  $selected = ( $value['crop'] === $crop_prop ) ? ' selected' : '';
98
- echo '<option value="' . esc_attr( $crop_prop ) . '"' . esc_attr( $selected ) . '>' . esc_html( $crop_prop ) . '</option>';
99
  }
100
  echo '</select>';
101
  echo '</div>';
102
  }
103
 
 
104
  echo '<div class="clear"></div>';
105
 
106
  echo wp_kses_post( $this->field_after() );
10
  */
11
 
12
  if ( ! defined( 'ABSPATH' ) ) {
13
+ die;
14
+ } // Cannot access directly.
15
 
16
  if ( ! class_exists( 'SPFTESTIMONIAL_Field_custom_size' ) ) {
17
  /**
22
  * @version 2.2.0
23
  */
24
  class SPFTESTIMONIAL_Field_custom_size extends SPFTESTIMONIAL_Fields {
25
+
26
  /**
27
  * Field constructor.
28
  *
79
  }
80
 
81
  $properties = ( array( 'width', 'height' ) === $properties ) ? array_reverse( $properties ) : $properties;
82
+ echo '<div class="spftestimonial--inputs" data-depend-id="' . esc_attr( $this->field['id'] ) . '">';
83
  foreach ( $properties as $property ) {
84
 
85
+ $placeholder = ( ! empty( $args[ $property . '_placeholder' ] ) ) ? $args[ $property . '_placeholder' ] : '';
86
 
87
  echo '<div class="spftestimonial--input">';
88
+ echo ( ! empty( $args[ $property . '_icon' ] ) ) ? '<span class="spftestimonial--label spftestimonial--icon">' . wp_kses_post( $args[ $property . '_icon' ] ) . '</span>' : '';
89
+ echo '<input type="number" name="' . esc_attr( $this->field_name( '[' . $property . ']' ) ) . '" value="' . esc_attr( $value[ $property ] ) . '" placeholder="' . esc_attr( $placeholder ) . '" class="spftestimonial-number spftestimonial--is-unit" />';
90
+ echo ( ! empty( $args['unit'] ) ) ? '<span class="spftestimonial--label spftestimonial--unit">' . esc_html( $args['unit'] ) . '</span>' : '';
91
  echo '</div>';
92
 
93
  }
97
  echo '<select name="' . esc_attr( $this->field_name( '[crop]' ) ) . '">';
98
  foreach ( $args['crops'] as $crop_prop ) {
99
  $selected = ( $value['crop'] === $crop_prop ) ? ' selected' : '';
100
+ echo '<option value="' . esc_attr( $crop_prop ) . '"' . esc_attr( $selected ) . '>' . esc_attr( $crop_prop ) . '</option>';
101
  }
102
  echo '</select>';
103
  echo '</div>';
104
  }
105
 
106
+ echo '</div>';
107
  echo '<div class="clear"></div>';
108
 
109
  echo wp_kses_post( $this->field_after() );
admin/views/framework/fields/fieldset/fieldset.php ADDED
@@ -0,0 +1,55 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if ( ! defined( 'ABSPATH' ) ) {
2
+ die; } // Cannot access directly.
3
+ /**
4
+ *
5
+ * Field: fieldset
6
+ *
7
+ * @since 1.0.0
8
+ * @version 1.0.0
9
+ */
10
+ if ( ! class_exists( 'SPFTESTIMONIAL_Field_fieldset' ) ) {
11
+ class SPFTESTIMONIAL_Field_fieldset extends SPFTESTIMONIAL_Fields {
12
+
13
+ /**
14
+ * Field constructor.
15
+ *
16
+ * @param array $field The field type.
17
+ * @param string $value The values of the field.
18
+ * @param string $unique The unique ID for the field.
19
+ * @param string $where To where show the output CSS.
20
+ * @param string $parent The parent args.
21
+ */
22
+ public function __construct( $field, $value = '', $unique = '', $where = '', $parent = '' ) {
23
+ parent::__construct( $field, $value, $unique, $where, $parent );
24
+ }
25
+
26
+ /**
27
+ * Render field
28
+ *
29
+ * @return void
30
+ */
31
+ public function render() {
32
+
33
+ echo wp_kses_post( $this->field_before() );
34
+
35
+ echo '<div class="spftestimonial-fieldset-content" data-depend-id="' . esc_attr( $this->field['id'] ) . '">';
36
+
37
+ foreach ( $this->field['fields'] as $field ) {
38
+
39
+ $field_id = ( isset( $field['id'] ) ) ? $field['id'] : '';
40
+ $field_default = ( isset( $field['default'] ) ) ? $field['default'] : '';
41
+ $field_value = ( isset( $this->value[ $field_id ] ) ) ? $this->value[ $field_id ] : $field_default;
42
+ $unique_id = ( ! empty( $this->unique ) ) ? $this->unique . '[' . $this->field['id'] . ']' : $this->field['id'];
43
+
44
+ SPFTESTIMONIAL::field( $field, $field_value, $unique_id, 'field/fieldset' );
45
+
46
+ }
47
+
48
+ echo '</div>';
49
+
50
+ echo wp_kses_post( $this->field_after() );
51
+
52
+ }
53
+
54
+ }
55
+ }
admin/views/framework/fields/form_upper_section/form_upper_section.php CHANGED
@@ -75,7 +75,7 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Field_form_upper_section' ) ) {
75
  </div>
76
  </div>
77
  <p class="sp-tfree-text-center sp-tfree-pro-subtitle">Get access to all robust features and start collecting fresh testimonials right now.</p>
78
- <p class="sp-tfree-text-center"><a class="tfree-upgrade-btn" target="_blank" href="https://shapedplugin.com/plugin/testimonial-pro/?ref=1">Upgrade To Real Testimonials Pro Now!</a></p>
79
 
80
  </div>
81
  </div>
75
  </div>
76
  </div>
77
  <p class="sp-tfree-text-center sp-tfree-pro-subtitle">Get access to all robust features and start collecting fresh testimonials right now.</p>
78
+ <p class="sp-tfree-text-center"><a class="tfree-upgrade-btn" target="_blank" href="https://shapedplugin.com/real-testimonials/?ref=1">Upgrade To Real Testimonials Pro Now!</a></p>
79
 
80
  </div>
81
  </div>
admin/views/framework/fields/heading/heading.php ADDED
@@ -0,0 +1,38 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if ( ! defined( 'ABSPATH' ) ) {
2
+ die; } // Cannot access directly.
3
+ /**
4
+ *
5
+ * Field: heading
6
+ *
7
+ * @since 1.0.0
8
+ * @version 1.0.0
9
+ */
10
+ if ( ! class_exists( 'SPFTESTIMONIAL_Field_heading' ) ) {
11
+ class SPFTESTIMONIAL_Field_heading extends SPFTESTIMONIAL_Fields {
12
+
13
+ /**
14
+ * Field constructor.
15
+ *
16
+ * @param array $field The field type.
17
+ * @param string $value The values of the field.
18
+ * @param string $unique The unique ID for the field.
19
+ * @param string $where To where show the output CSS.
20
+ * @param string $parent The parent args.
21
+ */
22
+ public function __construct( $field, $value = '', $unique = '', $where = '', $parent = '' ) {
23
+ parent::__construct( $field, $value, $unique, $where, $parent );
24
+ }
25
+
26
+ /**
27
+ * Render field
28
+ *
29
+ * @return void
30
+ */
31
+ public function render() {
32
+
33
+ echo ( ! empty( $this->field['content'] ) ) ? wp_kses_post( $this->field['content'] ) : '';
34
+
35
+ }
36
+
37
+ }
38
+ }
admin/views/framework/fields/icon_select/icon_select.php CHANGED
@@ -1,25 +1,13 @@
1
- <?php
 
2
  /**
3
- * Framework icon_select field file.
4
  *
5
- * @link https://shapedplugin.com
6
- * @since 2.0.0
7
  *
8
- * @package Testimonial_free
9
- * @subpackage Testimonial_free/framework
10
  */
11
-
12
- if ( ! defined( 'ABSPATH' ) ) {
13
- die; } // Cannot access directly.
14
-
15
  if ( ! class_exists( 'SPFTESTIMONIAL_Field_icon_select' ) ) {
16
- /**
17
- *
18
- * Field: icon_select
19
- *
20
- * @since 1.0.0
21
- * @version 1.0.0
22
- */
23
  class SPFTESTIMONIAL_Field_icon_select extends SPFTESTIMONIAL_Fields {
24
 
25
  /**
@@ -64,16 +52,16 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Field_icon_select' ) ) {
64
 
65
  $type = ( $args['multiple'] ) ? 'checkbox' : 'radio';
66
  $extra = ( $args['multiple'] ) ? '[]' : '';
67
- $active = ( in_array( $key, $value, true ) ) ? ' spftestimonial--active' : '';
68
- $checked = ( in_array( $key, $value, true ) ) ? ' checked' : '';
69
- $pro_only_class = ( isset( $option['pro_only'] ) && true === $option['pro_only'] ) ? ' spftestimonial-pro-only' : '';
 
70
  echo '<div class="spftestimonial--sibling spftestimonial--image sp-field-icon-select' . esc_attr( $active . $pro_only_class ) . '">';
71
  if ( isset( $option['icon'] ) && ! empty( $option['icon'] ) ) {
72
  echo '<span class="' . esc_attr( $option['icon'] ) . '"/></span>';
73
  } else {
74
  echo '<span class="' . esc_attr( $option ) . '"/></span>';
75
  }
76
- // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
77
  echo '<input type="' . esc_attr( $type ) . '" name="' . esc_attr( $this->field_name( $extra ) ) . '" value="' . esc_attr( $key ) . '"' . $this->field_attributes() . esc_attr( $checked ) . '/>';
78
  echo '</div>';
79
 
1
+ <?php if ( ! defined( 'ABSPATH' ) ) {
2
+ die; } // Cannot access directly.
3
  /**
 
4
  *
5
+ * Field: icon_select
 
6
  *
7
+ * @since 1.0.0
8
+ * @version 1.0.0
9
  */
 
 
 
 
10
  if ( ! class_exists( 'SPFTESTIMONIAL_Field_icon_select' ) ) {
 
 
 
 
 
 
 
11
  class SPFTESTIMONIAL_Field_icon_select extends SPFTESTIMONIAL_Fields {
12
 
13
  /**
52
 
53
  $type = ( $args['multiple'] ) ? 'checkbox' : 'radio';
54
  $extra = ( $args['multiple'] ) ? '[]' : '';
55
+ $active = ( in_array( $key, $value ) ) ? ' spftestimonial--active' : '';
56
+ $checked = ( in_array( $key, $value ) ) ? ' checked' : '';
57
+ $pro_only_class = ( isset( $option['pro_only'] ) && $option['pro_only'] ) ? ' spftestimonial-pro-only' : '';
58
+
59
  echo '<div class="spftestimonial--sibling spftestimonial--image sp-field-icon-select' . esc_attr( $active . $pro_only_class ) . '">';
60
  if ( isset( $option['icon'] ) && ! empty( $option['icon'] ) ) {
61
  echo '<span class="' . esc_attr( $option['icon'] ) . '"/></span>';
62
  } else {
63
  echo '<span class="' . esc_attr( $option ) . '"/></span>';
64
  }
 
65
  echo '<input type="' . esc_attr( $type ) . '" name="' . esc_attr( $this->field_name( $extra ) ) . '" value="' . esc_attr( $key ) . '"' . $this->field_attributes() . esc_attr( $checked ) . '/>';
66
  echo '</div>';
67
 
admin/views/framework/fields/image_select/image_select.php CHANGED
@@ -10,7 +10,8 @@
10
  */
11
 
12
  if ( ! defined( 'ABSPATH' ) ) {
13
- die; } // Cannot access directly.
 
14
 
15
  if ( ! class_exists( 'SPFTESTIMONIAL_Field_image_select' ) ) {
16
  /**
@@ -46,35 +47,36 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Field_image_select' ) ) {
46
  $this->field,
47
  array(
48
  'multiple' => false,
 
49
  'options' => array(),
50
  )
51
  );
52
 
 
 
53
  $value = ( is_array( $this->value ) ) ? $this->value : array_filter( (array) $this->value );
54
 
55
  echo wp_kses_post( $this->field_before() );
56
-
57
  if ( ! empty( $args['options'] ) ) {
58
 
59
- echo '<div class="spftestimonial-siblings spftestimonial--image-group" data-multiple="' . esc_attr( $args['multiple'] ) . '">';
60
 
61
  $num = 1;
62
-
63
  foreach ( $args['options'] as $key => $option ) {
64
 
65
  $type = ( $args['multiple'] ) ? 'checkbox' : 'radio';
66
  $extra = ( $args['multiple'] ) ? '[]' : '';
67
- $active = ( in_array( $key, $value, true ) ) ? ' spftestimonial--active' : '';
68
- $checked = ( in_array( $key, $value, true ) ) ? ' checked' : '';
69
  $opt_class = isset( $option['class'] ) && ! empty( $option['class'] ) ? $option['class'] : '';
70
-
71
  echo '<div class="spftestimonial--sibling spftestimonial--image' . esc_attr( $active . ' ' . $opt_class ) . '">';
 
72
  echo '<img src="' . esc_url( $option['image'] ) . '" alt="img-' . esc_attr( $num++ ) . '" />';
 
 
73
  if ( isset( $option['name'] ) ) {
74
- echo '<p>' . esc_html( $option['name'] ) . '</p>';
75
  }
76
- // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
77
- echo '<input type="' . esc_attr( $type ) . '" name="' . esc_attr( $this->field_name( $extra ) ) . '" value="' . esc_attr( $key ) . '"' . $this->field_attributes() . esc_attr( $checked ) . '/>';
78
  echo '</div>';
79
 
80
  }
@@ -83,11 +85,30 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Field_image_select' ) ) {
83
 
84
  }
85
 
86
- echo '<div class="clear"></div>';
87
-
88
  echo wp_kses_post( $this->field_after() );
89
 
90
  }
91
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
92
  }
93
  }
10
  */
11
 
12
  if ( ! defined( 'ABSPATH' ) ) {
13
+ die;
14
+ } // Cannot access directly.
15
 
16
  if ( ! class_exists( 'SPFTESTIMONIAL_Field_image_select' ) ) {
17
  /**
47
  $this->field,
48
  array(
49
  'multiple' => false,
50
+ 'inline' => false,
51
  'options' => array(),
52
  )
53
  );
54
 
55
+ $inline = ( $args['inline'] ) ? ' spftestimonial--inline-list' : '';
56
+
57
  $value = ( is_array( $this->value ) ) ? $this->value : array_filter( (array) $this->value );
58
 
59
  echo wp_kses_post( $this->field_before() );
 
60
  if ( ! empty( $args['options'] ) ) {
61
 
62
+ echo '<div class="spftestimonial-siblings spftestimonial--image-group' . esc_attr( $inline ) . '" data-multiple="' . esc_attr( $args['multiple'] ) . '">';
63
 
64
  $num = 1;
 
65
  foreach ( $args['options'] as $key => $option ) {
66
 
67
  $type = ( $args['multiple'] ) ? 'checkbox' : 'radio';
68
  $extra = ( $args['multiple'] ) ? '[]' : '';
69
+ $active = ( in_array( $key, $value ) ) ? ' spftestimonial--active' : '';
70
+ $checked = ( in_array( $key, $value ) ) ? ' checked' : '';
71
  $opt_class = isset( $option['class'] ) && ! empty( $option['class'] ) ? $option['class'] : '';
 
72
  echo '<div class="spftestimonial--sibling spftestimonial--image' . esc_attr( $active . ' ' . $opt_class ) . '">';
73
+ echo '<figure>';
74
  echo '<img src="' . esc_url( $option['image'] ) . '" alt="img-' . esc_attr( $num++ ) . '" />';
75
+ echo '<input type="' . esc_attr( $type ) . '" name="' . esc_attr( $this->field_name( $extra ) ) . '" value="' . esc_attr( $key ) . '"' . $this->field_attributes() . esc_attr( $checked ) . '/>';// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
76
+ echo '</figure>';
77
  if ( isset( $option['name'] ) ) {
78
+ echo '<p class="text-center">' . esc_attr( $option['name'] ) . '</p>';
79
  }
 
 
80
  echo '</div>';
81
 
82
  }
85
 
86
  }
87
 
 
 
88
  echo wp_kses_post( $this->field_after() );
89
 
90
  }
91
 
92
+ /**
93
+ * Output
94
+ *
95
+ * @return statement
96
+ */
97
+ public function output() {
98
+
99
+ $output = '';
100
+ $bg_image = array();
101
+ $important = ( ! empty( $this->field['output_important'] ) ) ? '!important' : '';
102
+ $elements = ( is_array( $this->field['output'] ) ) ? join( ',', $this->field['output'] ) : $this->field['output'];
103
+
104
+ if ( ! empty( $elements ) && isset( $this->value ) && '' !== $this->value ) {
105
+ $output = $elements . '{background-image:url(' . $this->value . ')' . $important . ';}';
106
+ }
107
+
108
+ $this->parent->output_css .= $output;
109
+
110
+ return $output;
111
+ }
112
+
113
  }
114
  }
admin/views/framework/fields/image_sizes/image_sizes.php CHANGED
@@ -10,7 +10,8 @@
10
  */
11
 
12
  if ( ! defined( 'ABSPATH' ) ) {
13
- die; } // Cannot access pages directly.
 
14
 
15
  if ( ! class_exists( 'SPFTESTIMONIAL_Field_image_sizes' ) ) {
16
  /**
@@ -60,7 +61,7 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Field_image_sizes' ) ) {
60
  $sizes = array();
61
 
62
  foreach ( get_intermediate_image_sizes() as $_size ) {
63
- if ( in_array( $_size, array( 'thumbnail', 'medium', 'medium_large', 'large' ), true ) ) {
64
 
65
  $width = get_option( "{$_size}_size_w" );
66
  $height = get_option( "{$_size}_size_h" );
@@ -94,8 +95,7 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Field_image_sizes' ) ) {
94
 
95
  if ( ! empty( $sizes ) ) {
96
 
97
- // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
98
- echo '<select name="' . esc_attr( $this->field_name( $multiple_name ) ) . '"' . wp_kses_post( $multiple_attr . $chosen_attr . $placeholder_attr ) . $this->field_attributes() . '>';
99
 
100
  if ( $args['placeholder'] && empty( $args['multiple'] ) ) {
101
  if ( ! empty( $args['chosen'] ) ) {
@@ -112,14 +112,14 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Field_image_sizes' ) ) {
112
  echo '<optgroup label="' . esc_attr( $option_key ) . '">';
113
 
114
  foreach ( $option as $sub_key => $sub_value ) {
115
- $selected = ( in_array( $sub_key, $this->value, true ) ) ? ' selected' : '';
116
  echo '<option value="' . esc_attr( $sub_key ) . '" ' . esc_attr( $selected ) . '>' . esc_html( $sub_value ) . '</option>';
117
  }
118
 
119
  echo '</optgroup>';
120
 
121
  } else {
122
- $selected = ( in_array( $option_key, $this->value, true ) ) ? ' selected' : '';
123
  echo '<option value="' . esc_attr( $option_key ) . '" ' . esc_attr( $selected ) . '>' . esc_html( $option ) . '</option>';
124
  }
125
  }
@@ -128,8 +128,7 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Field_image_sizes' ) ) {
128
 
129
  } else {
130
 
131
- // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
132
- echo ( ! empty( $this->field['empty_message'] ) ) ? $this->field['empty_message'] : esc_html__( 'No image sizes found.', 'testimonial-free' );
133
 
134
  }
135
  }
10
  */
11
 
12
  if ( ! defined( 'ABSPATH' ) ) {
13
+ die;
14
+ } // Cannot access pages directly.
15
 
16
  if ( ! class_exists( 'SPFTESTIMONIAL_Field_image_sizes' ) ) {
17
  /**
61
  $sizes = array();
62
 
63
  foreach ( get_intermediate_image_sizes() as $_size ) {
64
+ if ( in_array( $_size, array( 'thumbnail', 'medium', 'medium_large', 'large' ) ) ) {
65
 
66
  $width = get_option( "{$_size}_size_w" );
67
  $height = get_option( "{$_size}_size_h" );
95
 
96
  if ( ! empty( $sizes ) ) {
97
 
98
+ echo '<select name="' . esc_attr( $this->field_name( $multiple_name ) ) . '"' . wp_kses_post( $multiple_attr . $chosen_attr . $placeholder_attr . $this->field_attributes() ) . '>';
 
99
 
100
  if ( $args['placeholder'] && empty( $args['multiple'] ) ) {
101
  if ( ! empty( $args['chosen'] ) ) {
112
  echo '<optgroup label="' . esc_attr( $option_key ) . '">';
113
 
114
  foreach ( $option as $sub_key => $sub_value ) {
115
+ $selected = ( in_array( $sub_key, $this->value ) ) ? ' selected' : '';
116
  echo '<option value="' . esc_attr( $sub_key ) . '" ' . esc_attr( $selected ) . '>' . esc_html( $sub_value ) . '</option>';
117
  }
118
 
119
  echo '</optgroup>';
120
 
121
  } else {
122
+ $selected = ( in_array( $option_key, $this->value ) ) ? ' selected' : '';
123
  echo '<option value="' . esc_attr( $option_key ) . '" ' . esc_attr( $selected ) . '>' . esc_html( $option ) . '</option>';
124
  }
125
  }
128
 
129
  } else {
130
 
131
+ echo ! empty( $this->field['empty_message'] ) ? esc_html( $this->field['empty_message'] ) : esc_html__( 'No image sizes found.', 'testimonial-free' );
 
132
 
133
  }
134
  }
admin/views/framework/fields/notice/notice.php CHANGED
@@ -21,6 +21,7 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Field_notice' ) ) {
21
  * @since 1.0.0
22
  * @version 1.0.0
23
  */
 
24
  class SPFTESTIMONIAL_Field_notice extends SPFTESTIMONIAL_Fields {
25
 
26
  /**
@@ -33,7 +34,6 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Field_notice' ) ) {
33
  * @param string $parent The parent args.
34
  */
35
  public function __construct( $field, $value = '', $unique = '', $where = '', $parent = '' ) {
36
-
37
  parent::__construct( $field, $value, $unique, $where, $parent );
38
  }
39
 
21
  * @since 1.0.0
22
  * @version 1.0.0
23
  */
24
+
25
  class SPFTESTIMONIAL_Field_notice extends SPFTESTIMONIAL_Fields {
26
 
27
  /**
34
  * @param string $parent The parent args.
35
  */
36
  public function __construct( $field, $value = '', $unique = '', $where = '', $parent = '' ) {
 
37
  parent::__construct( $field, $value, $unique, $where, $parent );
38
  }
39
 
admin/views/framework/fields/preview/preview.php CHANGED
@@ -3,10 +3,10 @@
3
  * Preview field file.
4
  *
5
  * @link http://shapedplugin.com
6
- * @since 2.0.0
7
  *
8
- * @package Testimonial_free
9
- * @subpackage Testimonial_free/Admin
10
  */
11
 
12
  if ( ! defined( 'ABSPATH' ) ) {
@@ -31,6 +31,15 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Field_preview' ) ) {
31
  * @param string $where To where show the output CSS.
32
  * @param string $parent The parent args.
33
  */
 
 
 
 
 
 
 
 
 
34
  public function __construct( $field, $value = '', $unique = '', $where = '', $parent = '' ) {
35
  parent::__construct( $field, $value, $unique, $where, $parent );
36
  }
@@ -40,6 +49,11 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Field_preview' ) ) {
40
  *
41
  * @return void
42
  */
 
 
 
 
 
43
  public function render() {
44
  echo '<div class="sp_tpro-preview-box"><div id="sp_tpro-preview-box"></div></div>';
45
  }
3
  * Preview field file.
4
  *
5
  * @link http://shapedplugin.com
6
+ * @since 2.4.0
7
  *
8
+ * @package Testimonial_Free
9
+ * @subpackage Testimonial_Free/Admin
10
  */
11
 
12
  if ( ! defined( 'ABSPATH' ) ) {
31
  * @param string $where To where show the output CSS.
32
  * @param string $parent The parent args.
33
  */
34
+ /**
35
+ * Field constructor.
36
+ *
37
+ * @param array $field The field type.
38
+ * @param string $value The values of the field.
39
+ * @param string $unique The unique ID for the field.
40
+ * @param string $where To where show the output CSS.
41
+ * @param string $parent The parent args.
42
+ */
43
  public function __construct( $field, $value = '', $unique = '', $where = '', $parent = '' ) {
44
  parent::__construct( $field, $value, $unique, $where, $parent );
45
  }
49
  *
50
  * @return void
51
  */
52
+ /**
53
+ * Render field
54
+ *
55
+ * @return void
56
+ */
57
  public function render() {
58
  echo '<div class="sp_tpro-preview-box"><div id="sp_tpro-preview-box"></div></div>';
59
  }
admin/views/framework/fields/radio/radio.php CHANGED
@@ -50,7 +50,7 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Field_radio' ) ) {
50
  )
51
  );
52
 
53
- $inline_class = ( $args['inline'] ) ? ' class="spftestimonial--inline-list"' : '';
54
 
55
  echo wp_kses_post( $this->field_before() );
56
 
@@ -61,42 +61,55 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Field_radio' ) ) {
61
 
62
  if ( is_array( $options ) && ! empty( $options ) ) {
63
 
64
- echo '<ul' . wp_kses_post( $inline_class ) . '>';
 
65
  foreach ( $options as $option_key => $option_value ) {
66
 
67
  if ( is_array( $option_value ) && ! empty( $option_value ) ) {
68
 
69
  echo '<li>';
70
  echo '<ul>';
71
- echo '<li><strong>' . esc_html( $option_key ) . '</strong></li>';
72
  foreach ( $option_value as $sub_key => $sub_value ) {
73
- $checked = ( $sub_key === $this->value ) ? ' checked' : '';
74
- // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
75
- echo '<li><label><input type="radio" name="' . esc_attr( $this->field_name() ) . '" value="' . esc_attr( $sub_key ) . '"' . $this->field_attributes() . esc_attr( $checked ) . '/> ' . esc_html( $sub_value ) . '</label></li>';
 
 
 
 
76
  }
77
  echo '</ul>';
78
  echo '</li>';
79
 
80
  } else {
81
 
82
- $checked = ( $option_key === $this->value ) ? ' checked' : '';
83
- // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
84
- echo '<li><label><input type="radio" name="' . esc_attr( $this->field_name() ) . '" value="' . esc_attr( $option_key ) . '"' . $this->field_attributes() . esc_attr( $checked ) . '/> ' . esc_html( $option_value ) . '</label></li>';
 
 
 
 
 
85
 
86
  }
87
  }
 
88
  echo '</ul>';
89
 
90
  } else {
91
 
92
- // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
93
- echo ( ! empty( $this->field['empty_message'] ) ) ? $this->field['empty_message'] : esc_html__( 'No data provided for this option type.', 'testimonial-free' );
94
 
95
  }
96
  } else {
97
- $label = ( isset( $this->field['label'] ) ) ? $this->field['label'] : '';
98
- // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
99
- echo '<label><input type="radio" name="' . esc_attr( $this->field_name() ) . '" value="1"' . $this->field_attributes() . checked( $this->value, 1, false ) . '/> ' . esc_html( $label ) . '</label>';
 
 
 
100
  }
101
 
102
  echo wp_kses_post( $this->field_after() );
50
  )
51
  );
52
 
53
+ $inline_class = ( $args['inline'] ) ? 'spftestimonial--inline-list' : '';
54
 
55
  echo wp_kses_post( $this->field_before() );
56
 
61
 
62
  if ( is_array( $options ) && ! empty( $options ) ) {
63
 
64
+ echo '<ul class="' . esc_attr( $inline_class ) . '">';
65
+
66
  foreach ( $options as $option_key => $option_value ) {
67
 
68
  if ( is_array( $option_value ) && ! empty( $option_value ) ) {
69
 
70
  echo '<li>';
71
  echo '<ul>';
72
+ echo '<li><strong>' . esc_attr( $option_key ) . '</strong></li>';
73
  foreach ( $option_value as $sub_key => $sub_value ) {
74
+ $checked = ( $sub_key == $this->value ) ? ' checked' : '';
75
+ echo '<li>';
76
+ echo '<label>';
77
+ echo '<input type="radio" name="' . esc_attr( $this->field_name() ) . '" value="' . esc_attr( $sub_key ) . '"' . $this->field_attributes() . esc_attr( $checked ) . '/>';// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
78
+ echo '<span class="spftestimonial--text">' . esc_attr( $sub_value ) . '</span>';
79
+ echo '</label>';
80
+ echo '</li>';
81
  }
82
  echo '</ul>';
83
  echo '</li>';
84
 
85
  } else {
86
 
87
+ $checked = ( $option_key == $this->value ) ? ' checked' : '';
88
+
89
+ echo '<li>';
90
+ echo '<label>';
91
+ echo '<input type="radio" name="' . esc_attr( $this->field_name() ) . '" value="' . esc_attr( $option_key ) . '"' . $this->field_attributes() . esc_attr( $checked ) . '/>';// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
92
+ echo '<span class="spftestimonial--text">' . esc_attr( $option_value ) . '</span>';
93
+ echo '</label>';
94
+ echo '</li>';
95
 
96
  }
97
  }
98
+
99
  echo '</ul>';
100
 
101
  } else {
102
 
103
+ echo ! empty( $this->field['empty_message'] ) ? esc_attr( $this->field['empty_message'] ) : esc_html__( 'No data available.', 'testimonial-free' );
 
104
 
105
  }
106
  } else {
107
+
108
+ $label = ( isset( $this->field['label'] ) ) ? $this->field['label'] : '';
109
+ echo '<label><input type="radio" name="' . esc_attr( $this->field_name() ) . '" value="1"' . $this->field_attributes() . esc_attr( checked( $this->value, 1, false ) ) . '/>';// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
110
+ echo ( ! empty( $this->field['label'] ) ) ? '<span class="spftestimonial--text">' . esc_attr( $label ) . '</span>' : '';
111
+ echo '</label>';
112
+
113
  }
114
 
115
  echo wp_kses_post( $this->field_after() );
admin/views/framework/fields/rating/rating.php CHANGED
@@ -60,22 +60,19 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Field_rating' ) ) {
60
 
61
  echo '<div class="sp-tpro-client-rating">';
62
  foreach ( $options as $sub_key => $sub_value ) {
63
- $checked = ( $sub_key === $this->value ) ? ' checked' : '';
64
- // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
65
- echo '<input type="radio" name="' . esc_attr( $this->field_name() ) . '" id="' . esc_attr( $sub_key ) . '" value="' . esc_attr( $sub_key ) . '"' . $this->field_attributes() . esc_attr( $checked ) . '/><label for="' . esc_attr( $sub_key ) . '" title="' . esc_attr( $sub_value ) . '"><i class="fa fa-star"></i></label>';
66
  }
67
  echo '</div>';
68
 
69
  } else {
70
 
71
- // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
72
- echo ( ! empty( $this->field['empty_message'] ) ) ? $this->field['empty_message'] : esc_html__( 'No data provided for this option type.', 'testimonial-free' );
73
 
74
  }
75
  } else {
76
  $label = ( isset( $this->field['label'] ) ) ? $this->field['label'] : '';
77
- // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
78
- echo '<label><input type="radio" name="' . esc_attr( $this->field_name() ) . '" value="1"' . $this->field_attributes() . checked( $this->value, 1, false ) . '/> ' . esc_html( $label ) . '</label>';
79
  }
80
 
81
  echo wp_kses_post( $this->field_after() );
60
 
61
  echo '<div class="sp-tpro-client-rating">';
62
  foreach ( $options as $sub_key => $sub_value ) {
63
+ $checked = ( $sub_key == $this->value ) ? ' checked' : '';
64
+ echo '<input type="radio" name="' . esc_attr( $this->field_name() ) . '" id="' . esc_attr( $sub_key ) . '" value="' . esc_attr( $sub_key ) . '"' . $this->field_attributes() . esc_attr( $checked ) . '/><label for="' . esc_attr( $sub_key ) . '" title="' . esc_attr( $sub_value ) . '"><i class="fa fa-star"></i></label>';// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
 
65
  }
66
  echo '</div>';
67
 
68
  } else {
69
 
70
+ echo ! empty( $this->field['empty_message'] ) ? esc_html( $this->field['empty_message'] ) : esc_html__( 'No data provided for this option type.', 'testimonial-free' );
 
71
 
72
  }
73
  } else {
74
  $label = ( isset( $this->field['label'] ) ) ? $this->field['label'] : '';
75
+ echo '<label><input type="radio" name="' . esc_attr( $this->field_name() ) . '" value="1"' . $this->field_attributes() . checked( $this->value, 1, false ) . '/> ' . esc_html( $label ) . '</label>';// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
 
76
  }
77
 
78
  echo wp_kses_post( $this->field_after() );
admin/views/framework/fields/repeater/repeater.php CHANGED
@@ -20,6 +20,7 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Field_repeater' ) ) {
20
  * @since 1.0.0
21
  * @version 1.0.0
22
  */
 
23
  class SPFTESTIMONIAL_Field_repeater extends SPFTESTIMONIAL_Fields {
24
 
25
  /**
@@ -51,67 +52,60 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Field_repeater' ) ) {
51
  )
52
  );
53
 
54
- $fields = $this->field['fields'];
55
- $unique_id = ( ! empty( $this->unique ) ) ? $this->unique : $this->field['id'];
56
-
57
- if ( $this->parent && preg_match( '/' . preg_quote( '[' . $this->field['id'] . ']' ) . '/', $this->parent ) ) {
58
 
59
- echo '<div class="spftestimonial-notice spftestimonial-notice-danger">' . esc_html__( 'Error: Nested field id can not be same with another nested field id.', 'testimonial-free' ) . '</div>';
60
 
61
  } else {
62
 
63
  echo wp_kses_post( $this->field_before() );
64
 
65
- echo '<div class="spftestimonial-repeater-item spftestimonial-repeater-hidden">';
66
  echo '<div class="spftestimonial-repeater-content">';
67
- foreach ( $fields as $field ) {
68
 
69
- $field_parent = $this->parent . '[' . $this->field['id'] . ']';
70
  $field_default = ( isset( $field['default'] ) ) ? $field['default'] : '';
 
71
 
72
- SPFTESTIMONIAL::field( $field, $field_default, '_nonce', 'field/repeater', $field_parent );
73
 
74
  }
75
  echo '</div>';
76
  echo '<div class="spftestimonial-repeater-helper">';
77
  echo '<div class="spftestimonial-repeater-helper-inner">';
78
- echo '<i class="spftestimonial-repeater-sort fa fa-arrows"></i>';
79
- echo '<i class="spftestimonial-repeater-clone fa fa-clone"></i>';
80
  echo '<i class="spftestimonial-repeater-remove spftestimonial-confirm fa fa-times" data-confirm="' . esc_html__( 'Are you sure to delete this item?', 'testimonial-free' ) . '"></i>';
81
  echo '</div>';
82
  echo '</div>';
83
  echo '</div>';
84
 
85
- echo '<div class="spftestimonial-repeater-wrapper spftestimonial-data-wrapper" data-unique-id="' . esc_attr( $this->unique ) . '" data-field-id="[' . esc_attr( $this->field['id'] ) . ']" data-max="' . esc_attr( $args['max'] ) . '" data-min="' . esc_attr( $args['min'] ) . '">';
86
 
87
- if ( ! empty( $this->value ) ) {
88
 
89
  $num = 0;
90
 
91
  foreach ( $this->value as $key => $value ) {
92
 
93
  echo '<div class="spftestimonial-repeater-item">';
94
-
95
  echo '<div class="spftestimonial-repeater-content">';
96
- foreach ( $fields as $field ) {
97
 
98
- $field_parent = $this->parent . '[' . $this->field['id'] . ']';
99
  $field_unique = ( ! empty( $this->unique ) ) ? $this->unique . '[' . $this->field['id'] . '][' . $num . ']' : $this->field['id'] . '[' . $num . ']';
100
  $field_value = ( isset( $field['id'] ) && isset( $this->value[ $key ][ $field['id'] ] ) ) ? $this->value[ $key ][ $field['id'] ] : '';
101
 
102
- SPFTESTIMONIAL::field( $field, $field_value, $field_unique, 'field/repeater', $field_parent );
103
 
104
  }
105
  echo '</div>';
106
-
107
  echo '<div class="spftestimonial-repeater-helper">';
108
  echo '<div class="spftestimonial-repeater-helper-inner">';
109
- echo '<i class="spftestimonial-repeater-sort fa fa-arrows"></i>';
110
- echo '<i class="spftestimonial-repeater-clone fa fa-clone"></i>';
111
  echo '<i class="spftestimonial-repeater-remove spftestimonial-confirm fa fa-times" data-confirm="' . esc_html__( 'Are you sure to delete this item?', 'testimonial-free' ) . '"></i>';
112
  echo '</div>';
113
  echo '</div>';
114
-
115
  echo '</div>';
116
 
117
  $num++;
@@ -121,9 +115,8 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Field_repeater' ) ) {
121
 
122
  echo '</div>';
123
 
124
- echo '<div class="spftestimonial-repeater-alert spftestimonial-repeater-max">' . esc_html__( 'You can not add more than', 'testimonial-free' ) . ' ' . esc_html( $args['max'] ) . '</div>';
125
- echo '<div class="spftestimonial-repeater-alert spftestimonial-repeater-min">' . esc_html__( 'You can not remove less than', 'testimonial-free' ) . ' ' . esc_html( $args['min'] ) . '</div>';
126
-
127
  echo '<a href="#" class="button button-primary spftestimonial-repeater-add">' . wp_kses_post( $args['button_title'] ) . '</a>';
128
 
129
  echo wp_kses_post( $this->field_after() );
@@ -133,7 +126,7 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Field_repeater' ) ) {
133
  }
134
 
135
  /**
136
- * Enqueue function
137
  *
138
  * @return void
139
  */
20
  * @since 1.0.0
21
  * @version 1.0.0
22
  */
23
+
24
  class SPFTESTIMONIAL_Field_repeater extends SPFTESTIMONIAL_Fields {
25
 
26
  /**
52
  )
53
  );
54
 
55
+ if ( preg_match( '/' . preg_quote( '[' . $this->field['id'] . ']' ) . '/', $this->unique ) ) {
 
 
 
56
 
57
+ echo '<div class="spftestimonial-notice spftestimonial-notice-danger">' . esc_html__( 'Error: Field ID conflict.', 'testimonial-free' ) . '</div>';
58
 
59
  } else {
60
 
61
  echo wp_kses_post( $this->field_before() );
62
 
63
+ echo '<div class="spftestimonial-repeater-item spftestimonial-repeater-hidden" data-depend-id="' . esc_attr( $this->field['id'] ) . '">';
64
  echo '<div class="spftestimonial-repeater-content">';
65
+ foreach ( $this->field['fields'] as $field ) {
66
 
 
67
  $field_default = ( isset( $field['default'] ) ) ? $field['default'] : '';
68
+ $field_unique = ( ! empty( $this->unique ) ) ? $this->unique . '[' . $this->field['id'] . '][0]' : $this->field['id'] . '[0]';
69
 
70
+ SPFTESTIMONIAL::field( $field, $field_default, '___' . $field_unique, 'field/repeater' );
71
 
72
  }
73
  echo '</div>';
74
  echo '<div class="spftestimonial-repeater-helper">';
75
  echo '<div class="spftestimonial-repeater-helper-inner">';
76
+ echo '<i class="spftestimonial-repeater-sort fa fa-arrows-alt"></i>';
77
+ echo '<i class="spftestimonial-repeater-clone far fa-clone"></i>';
78
  echo '<i class="spftestimonial-repeater-remove spftestimonial-confirm fa fa-times" data-confirm="' . esc_html__( 'Are you sure to delete this item?', 'testimonial-free' ) . '"></i>';
79
  echo '</div>';
80
  echo '</div>';
81
  echo '</div>';
82
 
83
+ echo '<div class="spftestimonial-repeater-wrapper spftestimonial-data-wrapper" data-field-id="[' . esc_attr( $this->field['id'] ) . ']" data-max="' . esc_attr( $args['max'] ) . '" data-min="' . esc_attr( $args['min'] ) . '">';
84
 
85
+ if ( ! empty( $this->value ) && is_array( $this->value ) ) {
86
 
87
  $num = 0;
88
 
89
  foreach ( $this->value as $key => $value ) {
90
 
91
  echo '<div class="spftestimonial-repeater-item">';
 
92
  echo '<div class="spftestimonial-repeater-content">';
93
+ foreach ( $this->field['fields'] as $field ) {
94
 
 
95
  $field_unique = ( ! empty( $this->unique ) ) ? $this->unique . '[' . $this->field['id'] . '][' . $num . ']' : $this->field['id'] . '[' . $num . ']';
96
  $field_value = ( isset( $field['id'] ) && isset( $this->value[ $key ][ $field['id'] ] ) ) ? $this->value[ $key ][ $field['id'] ] : '';
97
 
98
+ SPFTESTIMONIAL::field( $field, $field_value, $field_unique, 'field/repeater' );
99
 
100
  }
101
  echo '</div>';
 
102
  echo '<div class="spftestimonial-repeater-helper">';
103
  echo '<div class="spftestimonial-repeater-helper-inner">';
104
+ echo '<i class="spftestimonial-repeater-sort fa fa-arrows-alt"></i>';
105
+ echo '<i class="spftestimonial-repeater-clone far fa-clone"></i>';
106
  echo '<i class="spftestimonial-repeater-remove spftestimonial-confirm fa fa-times" data-confirm="' . esc_html__( 'Are you sure to delete this item?', 'testimonial-free' ) . '"></i>';
107
  echo '</div>';
108
  echo '</div>';
 
109
  echo '</div>';
110
 
111
  $num++;
115
 
116
  echo '</div>';
117
 
118
+ echo '<div class="spftestimonial-repeater-alert spftestimonial-repeater-max">' . esc_html__( 'You cannot add more.', 'testimonial-free' ) . '</div>';
119
+ echo '<div class="spftestimonial-repeater-alert spftestimonial-repeater-min">' . esc_html__( 'You cannot remove more.', 'testimonial-free' ) . '</div>';
 
120
  echo '<a href="#" class="button button-primary spftestimonial-repeater-add">' . wp_kses_post( $args['button_title'] ) . '</a>';
121
 
122
  echo wp_kses_post( $this->field_after() );
126
  }
127
 
128
  /**
129
+ * Enqueue sortable script.
130
  *
131
  * @return void
132
  */
admin/views/framework/fields/select/select.php CHANGED
@@ -79,7 +79,7 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Field_select' ) ) {
79
  $field_name = $this->field_name( $multiple_name );
80
  $field_attr = $this->field_attributes();
81
  $maybe_options = $this->field['options'];
82
- $chosen_data_attr = ( $args['chosen'] && ! empty( $args['settings'] ) ) ? ' data-chosen-settings="' . esc_attr( wp_json_encode( $args['settings'] ) ) . '"' : '';
83
 
84
  if ( is_string( $maybe_options ) && ! empty( $args['chosen'] ) && ! empty( $args['ajax'] ) ) {
85
  $options = $this->field_wp_query_data_title( $maybe_options, $this->value );
@@ -93,10 +93,9 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Field_select' ) ) {
93
 
94
  if ( ! empty( $args['chosen'] ) && ! empty( $args['multiple'] ) ) {
95
 
96
- // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
97
- echo '<select name="' . esc_attr( $field_name ) . '" class="spftestimonial-hidden-select spftestimonial-hidden"' . $multiple_attr . $field_attr . '>';
98
  foreach ( $this->value as $option_key ) {
99
- echo '<option value="' . esc_attr( $option_key ) . '" selected>' . esc_html( $option_key ) . '</option>';
100
  }
101
  echo '</select>';
102
 
@@ -105,14 +104,14 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Field_select' ) ) {
105
 
106
  }
107
 
108
- // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
109
- echo '<select name="' . esc_attr( $field_name ) . '"' . $field_class . $multiple_attr . $placeholder_attr . $field_attr . $chosen_data_attr . '>';
110
 
111
  if ( $args['placeholder'] && empty( $args['multiple'] ) ) {
112
  if ( ! empty( $args['chosen'] ) ) {
113
  echo '<option value=""></option>';
114
  } else {
115
- echo '<option value="">' . esc_html( $args['placeholder'] ) . '</option>';
116
  }
117
  }
118
 
@@ -123,15 +122,15 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Field_select' ) ) {
123
  echo '<optgroup label="' . esc_attr( $option_key ) . '">';
124
 
125
  foreach ( $option as $sub_key => $sub_value ) {
126
- $selected = ( in_array( $sub_key, $this->value, true ) ) ? ' selected' : '';
127
- echo '<option value="' . esc_attr( $sub_key ) . '" ' . esc_attr( $selected ) . '>' . esc_html( $sub_value ) . '</option>';
128
  }
129
 
130
  echo '</optgroup>';
131
 
132
  } else {
133
- $selected = ( in_array( $option_key, $this->value, true ) ) ? ' selected' : '';
134
- echo '<option value="' . esc_attr( $option_key ) . '" ' . esc_attr( $selected ) . '>' . esc_html( $option ) . '</option>';
135
  }
136
  }
137
 
@@ -139,8 +138,7 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Field_select' ) ) {
139
 
140
  } else {
141
 
142
- // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
143
- echo ( ! empty( $this->field['empty_message'] ) ) ? $this->field['empty_message'] : esc_html__( 'No data provided for this option type.', 'testimonial-free' );
144
 
145
  }
146
  }
@@ -150,7 +148,7 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Field_select' ) ) {
150
  }
151
 
152
  /**
153
- * Enqueue function
154
  *
155
  * @return void
156
  */
79
  $field_name = $this->field_name( $multiple_name );
80
  $field_attr = $this->field_attributes();
81
  $maybe_options = $this->field['options'];
82
+ $chosen_data_attr = ( $args['chosen'] && ! empty( $args['settings'] ) ) ? ' data-chosen-settings="' . esc_attr( json_encode( $args['settings'] ) ) . '"' : '';
83
 
84
  if ( is_string( $maybe_options ) && ! empty( $args['chosen'] ) && ! empty( $args['ajax'] ) ) {
85
  $options = $this->field_wp_query_data_title( $maybe_options, $this->value );
93
 
94
  if ( ! empty( $args['chosen'] ) && ! empty( $args['multiple'] ) ) {
95
 
96
+ echo '<select name="' . esc_attr( $field_name ) . '" class="spftestimonial-hide-select hidden"' . wp_kses_post( $multiple_attr . $field_attr ) . '>';
 
97
  foreach ( $this->value as $option_key ) {
98
+ echo '<option value="' . esc_attr( $option_key ) . '" selected>' . esc_attr( $option_key ) . '</option>';
99
  }
100
  echo '</select>';
101
 
104
 
105
  }
106
 
107
+ // These attributes has been serialized above.
108
+ echo '<select name="' . esc_attr( $field_name ) . '"' . wp_kses_post( $field_class . $multiple_attr . $placeholder_attr . $field_attr . $chosen_data_attr ) . '>';
109
 
110
  if ( $args['placeholder'] && empty( $args['multiple'] ) ) {
111
  if ( ! empty( $args['chosen'] ) ) {
112
  echo '<option value=""></option>';
113
  } else {
114
+ echo '<option value="">' . esc_attr( $args['placeholder'] ) . '</option>';
115
  }
116
  }
117
 
122
  echo '<optgroup label="' . esc_attr( $option_key ) . '">';
123
 
124
  foreach ( $option as $sub_key => $sub_value ) {
125
+ $selected = ( in_array( $sub_key, $this->value ) ) ? ' selected' : '';
126
+ echo '<option value="' . esc_attr( $sub_key ) . '" ' . esc_attr( $selected ) . '>' . esc_attr( $sub_value ) . '</option>';
127
  }
128
 
129
  echo '</optgroup>';
130
 
131
  } else {
132
+ $selected = ( in_array( $option_key, $this->value ) ) ? ' selected' : '';
133
+ echo '<option value="' . esc_attr( $option_key ) . '" ' . esc_attr( $selected ) . '>' . esc_attr( $option ) . '</option>';
134
  }
135
  }
136
 
138
 
139
  } else {
140
 
141
+ echo ! empty( $this->field['empty_message'] ) ? esc_attr( $this->field['empty_message'] ) : esc_html__( 'No data available.', 'testimonial-free' );
 
142
 
143
  }
144
  }
148
  }
149
 
150
  /**
151
+ * Enqueue sorter.
152
  *
153
  * @return void
154
  */
admin/views/framework/fields/shortcode/shortcode.php CHANGED
@@ -24,6 +24,7 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Field_shortcode' ) ) {
24
  */
25
  class SPFTESTIMONIAL_Field_shortcode extends SPFTESTIMONIAL_Fields {
26
 
 
27
  /**
28
  * Field constructor.
29
  *
@@ -37,7 +38,6 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Field_shortcode' ) ) {
37
 
38
  parent::__construct( $field, $value, $unique, $where, $parent );
39
  }
40
-
41
  /**
42
  * Render field
43
  *
@@ -46,7 +46,7 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Field_shortcode' ) ) {
46
  public function render() {
47
 
48
  $post_id = get_the_ID();
49
- echo ( ! empty( $post_id ) ) ? '<div class="spftestimonial-scode-wrap-side"><p>To display your testimonial form, add the following shortcode into your post, custom post types, page, widget or block editor. If adding the show to your theme files, additionally include the surrounding PHP code, <a href="" target="_blank">see how</a>.‎</p><span class="spftestimonial-shortcode-selectable">[sp_testimonial_form id="' . esc_attr( $post_id ) . '"]</span></div>' : '';
50
  }
51
 
52
  }
24
  */
25
  class SPFTESTIMONIAL_Field_shortcode extends SPFTESTIMONIAL_Fields {
26
 
27
+
28
  /**
29
  * Field constructor.
30
  *
38
 
39
  parent::__construct( $field, $value, $unique, $where, $parent );
40
  }
 
41
  /**
42
  * Render field
43
  *
46
  public function render() {
47
 
48
  $post_id = get_the_ID();
49
+ echo ( ! empty( $post_id ) ) ? '<div class="spftestimonial-scode-wrap-side"><p>To display your testimonial form, add the following shortcode into your post, custom post types, page, widget or block editor. If adding the form to your theme files, additionally include the surrounding PHP code, <a href="https://docs.shapedplugin.com/docs/testimonial-pro/create-a-front-end-forma-z/" target="_blank">see how</a>.</p><span class="spftestimonial-shortcode-selectable">[sp_testimonial_form id="' . esc_attr( $post_id ) . '"]</span></div><div class="sptpro-after-copy-text"><i class="fa fa-check-circle"></i> Shortcode Copied to Clipboard!</div>' : '';
50
  }
51
 
52
  }
admin/views/framework/fields/sortable/sortable.php CHANGED
@@ -44,7 +44,7 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Field_sortable' ) ) {
44
 
45
  echo wp_kses_post( $this->field_before() );
46
 
47
- echo '<div class="spftestimonial--sortable">';
48
 
49
  $pre_sortby = array();
50
  $pre_fields = array();
@@ -60,6 +60,12 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Field_sortable' ) ) {
60
  foreach ( $this->value as $key => $value ) {
61
  $pre_sortby[ $key ] = $pre_fields[ $key ];
62
  }
 
 
 
 
 
 
63
  } else {
64
 
65
  foreach ( $pre_fields as $key => $value ) {
@@ -69,9 +75,9 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Field_sortable' ) ) {
69
 
70
  foreach ( $pre_sortby as $key => $field ) {
71
 
72
- echo '<div class="spftestimonial--sortable-item">';
73
 
74
- echo '<div class="spftestimonial--sortable-content">';
75
 
76
  $field_default = ( isset( $this->field['default'][ $key ] ) ) ? $this->field['default'][ $key ] : '';
77
  $field_value = ( isset( $this->value[ $key ] ) ) ? $this->value[ $key ] : $field_default;
@@ -81,7 +87,7 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Field_sortable' ) ) {
81
 
82
  echo '</div>';
83
 
84
- echo '<div class="spftestimonial--sortable-helper"><i class="fa fa-arrows"></i></div>';
85
 
86
  echo '</div>';
87
 
@@ -94,16 +100,14 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Field_sortable' ) ) {
94
  }
95
 
96
  /**
97
- * Enqueue function
98
  *
99
  * @return void
100
  */
101
  public function enqueue() {
102
-
103
  if ( ! wp_script_is( 'jquery-ui-sortable' ) ) {
104
  wp_enqueue_script( 'jquery-ui-sortable' );
105
  }
106
-
107
  }
108
 
109
  }
44
 
45
  echo wp_kses_post( $this->field_before() );
46
 
47
+ echo '<div class="spftestimonial-sortable" data-depend-id="' . esc_attr( $this->field['id'] ) . '">';
48
 
49
  $pre_sortby = array();
50
  $pre_fields = array();
60
  foreach ( $this->value as $key => $value ) {
61
  $pre_sortby[ $key ] = $pre_fields[ $key ];
62
  }
63
+
64
+ $diff = array_diff_key( $pre_fields, $this->value );
65
+
66
+ if ( ! empty( $diff ) ) {
67
+ $pre_sortby = array_merge( $pre_sortby, $diff );
68
+ }
69
  } else {
70
 
71
  foreach ( $pre_fields as $key => $value ) {
75
 
76
  foreach ( $pre_sortby as $key => $field ) {
77
 
78
+ echo '<div class="spftestimonial-sortable-item">';
79
 
80
+ echo '<div class="spftestimonial-sortable-content">';
81
 
82
  $field_default = ( isset( $this->field['default'][ $key ] ) ) ? $this->field['default'][ $key ] : '';
83
  $field_value = ( isset( $this->value[ $key ] ) ) ? $this->value[ $key ] : $field_default;
87
 
88
  echo '</div>';
89
 
90
+ echo '<div class="spftestimonial-sortable-helper"><i class="fa fa-arrows-alt"></i></div>';
91
 
92
  echo '</div>';
93
 
100
  }
101
 
102
  /**
103
+ * Enqueue sorter js.
104
  *
105
  * @return void
106
  */
107
  public function enqueue() {
 
108
  if ( ! wp_script_is( 'jquery-ui-sortable' ) ) {
109
  wp_enqueue_script( 'jquery-ui-sortable' );
110
  }
 
111
  }
112
 
113
  }
admin/views/framework/fields/sorter/sorter.php ADDED
@@ -0,0 +1,98 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ if ( ! defined( 'ABSPATH' ) ) {
3
+ die;
4
+ } // Cannot access directly.
5
+
6
+ if ( ! class_exists( 'SPFTESTIMONIAL_Field_sorter' ) ) {
7
+ /**
8
+ *
9
+ * Field: sorter
10
+ *
11
+ * @since 1.0.0
12
+ * @version 1.0.0
13
+ */
14
+ class SPFTESTIMONIAL_Field_sorter extends SPFTESTIMONIAL_Fields {
15
+
16
+ /**
17
+ * Field constructor.
18
+ *
19
+ * @param array $field The field type.
20
+ * @param string $value The values of the field.
21
+ * @param string $unique The unique ID for the field.
22
+ * @param string $where To where show the output CSS.
23
+ * @param string $parent The parent args.
24
+ */
25
+ public function __construct( $field, $value = '', $unique = '', $where = '', $parent = '' ) {
26
+ parent::__construct( $field, $value, $unique, $where, $parent );
27
+ }
28
+
29
+ /**
30
+ * Render field
31
+ *
32
+ * @return void
33
+ */
34
+ public function render() {
35
+
36
+ $args = wp_parse_args(
37
+ $this->field,
38
+ array(
39
+ 'disabled' => true,
40
+ 'enabled_title' => esc_html__( 'Enabled', 'testimonial-free' ),
41
+ 'disabled_title' => esc_html__( 'Disabled', 'testimonial-free' ),
42
+ )
43
+ );
44
+
45
+ echo wp_kses_post( $this->field_before() );
46
+
47
+ $this->value = ( ! empty( $this->value ) ) ? $this->value : $this->field['default'];
48
+ $enabled_options = ( ! empty( $this->value['enabled'] ) ) ? $this->value['enabled'] : array();
49
+ $disabled_options = ( ! empty( $this->value['disabled'] ) ) ? $this->value['disabled'] : array();
50
+
51
+ echo '<div class="spftestimonial-sorter" data-depend-id="' . esc_attr( $this->field['id'] ) . '"></div>';
52
+
53
+ echo ( $args['disabled'] ) ? '<div class="spftestimonial-modules">' : '';
54
+
55
+ echo ( ! empty( $args['enabled_title'] ) ) ? '<div class="spftestimonial-sorter-title">' . esc_attr( $args['enabled_title'] ) . '</div>' : '';
56
+ echo '<ul class="spftestimonial-enabled">';
57
+ if ( ! empty( $enabled_options ) ) {
58
+ foreach ( $enabled_options as $key => $value ) {
59
+ echo '<li><input type="hidden" name="' . esc_attr( $this->field_name( '[enabled][' . $key . ']' ) ) . '" value="' . esc_attr( $value ) . '"/><label>' . esc_attr( $value ) . '</label></li>';
60
+ }
61
+ }
62
+ echo '</ul>';
63
+
64
+ // Check for hide/show disabled section.
65
+ if ( $args['disabled'] ) {
66
+
67
+ echo '</div>';
68
+
69
+ echo '<div class="spftestimonial-modules">';
70
+ echo ( ! empty( $args['disabled_title'] ) ) ? '<div class="spftestimonial-sorter-title">' . esc_attr( $args['disabled_title'] ) . '</div>' : '';
71
+ echo '<ul class="spftestimonial-disabled">';
72
+ if ( ! empty( $disabled_options ) ) {
73
+ foreach ( $disabled_options as $key => $value ) {
74
+ echo '<li><input type="hidden" name="' . esc_attr( $this->field_name( '[disabled][' . $key . ']' ) ) . '" value="' . esc_attr( $value ) . '"/><label>' . esc_attr( $value ) . '</label></li>';
75
+ }
76
+ }
77
+ echo '</ul>';
78
+ echo '</div>';
79
+
80
+ }
81
+
82
+ echo wp_kses_post( $this->field_after() );
83
+
84
+ }
85
+
86
+ /**
87
+ * Enqueue sorter js.
88
+ *
89
+ * @return void
90
+ */
91
+ public function enqueue() {
92
+ if ( ! wp_script_is( 'jquery-ui-sortable' ) ) {
93
+ wp_enqueue_script( 'jquery-ui-sortable' );
94
+ }
95
+ }
96
+
97
+ }
98
+ }
admin/views/framework/fields/spacing/spacing.php CHANGED
@@ -49,7 +49,7 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Field_spacing' ) ) {
49
  'right_icon' => '<i class="fa fa-long-arrow-right"></i>',
50
  'bottom_icon' => '<i class="fa fa-long-arrow-down"></i>',
51
  'left_icon' => '<i class="fa fa-long-arrow-left"></i>',
52
- 'all_icon' => '<i class="fa fa-arrows"></i>',
53
  'top_placeholder' => esc_html__( 'top', 'testimonial-free' ),
54
  'right_placeholder' => esc_html__( 'right', 'testimonial-free' ),
55
  'bottom_placeholder' => esc_html__( 'bottom', 'testimonial-free' ),
@@ -81,16 +81,16 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Field_spacing' ) ) {
81
 
82
  echo wp_kses_post( $this->field_before() );
83
 
84
- echo '<div class="spftestimonial--inputs">';
85
 
86
  if ( ! empty( $args['all'] ) ) {
87
 
88
- $placeholder = ( ! empty( $args['all_placeholder'] ) ) ? ' placeholder="' . $args['all_placeholder'] . '"' : '';
89
 
90
  echo '<div class="spftestimonial--input">';
91
  echo ( ! empty( $args['all_icon'] ) ) ? '<span class="spftestimonial--label spftestimonial--icon">' . wp_kses_post( $args['all_icon'] ) . '</span>' : '';
92
- echo '<input type="number" name="' . esc_attr( $this->field_name( '[all]' ) ) . '" value="' . esc_attr( $value['all'] ) . '"' . wp_kses_post( $placeholder ) . ' class="spftestimonial-input-number' . esc_attr( $is_unit ) . '" />';
93
- echo ( $unit ) ? '<span class="spftestimonial--label spftestimonial--unit">' . esc_html( $args['units'][0] ) . '</span>' : '';
94
  echo '</div>';
95
 
96
  } else {
@@ -107,12 +107,12 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Field_spacing' ) ) {
107
 
108
  foreach ( $properties as $property ) {
109
 
110
- $placeholder = ( ! empty( $args[ $property . '_placeholder' ] ) ) ? ' placeholder="' . $args[ $property . '_placeholder' ] . '"' : '';
111
 
112
  echo '<div class="spftestimonial--input">';
113
  echo ( ! empty( $args[ $property . '_icon' ] ) ) ? '<span class="spftestimonial--label spftestimonial--icon">' . wp_kses_post( $args[ $property . '_icon' ] ) . '</span>' : '';
114
- echo '<input type="number" name="' . esc_attr( $this->field_name( '[' . $property . ']' ) ) . '" value="' . esc_attr( $value[ $property ] ) . '"' . wp_kses_post( $placeholder ) . ' class="spftestimonial-input-number' . esc_attr( $is_unit ) . '" />';
115
- echo ( $unit ) ? '<span class="spftestimonial--label spftestimonial--unit">' . esc_html( $args['units'][0] ) . '</span>' : '';
116
  echo '</div>';
117
 
118
  }
@@ -123,7 +123,7 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Field_spacing' ) ) {
123
  echo '<select name="' . esc_attr( $this->field_name( '[unit]' ) ) . '">';
124
  foreach ( $args['units'] as $unit ) {
125
  $selected = ( $value['unit'] === $unit ) ? ' selected' : '';
126
- echo '<option value="' . esc_attr( $unit ) . '"' . esc_attr( $selected ) . '>' . esc_html( $unit ) . '</option>';
127
  }
128
  echo '</select>';
129
  echo '</div>';
@@ -136,36 +136,56 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Field_spacing' ) ) {
136
  }
137
 
138
  /**
139
- * Output function
140
  *
141
- * @return string
142
  */
143
  public function output() {
144
-
145
  $output = '';
146
  $element = ( is_array( $this->field['output'] ) ) ? join( ',', $this->field['output'] ) : $this->field['output'];
147
  $important = ( ! empty( $this->field['output_important'] ) ) ? '!important' : '';
148
  $unit = ( ! empty( $this->value['unit'] ) ) ? $this->value['unit'] : 'px';
149
 
150
  $mode = ( ! empty( $this->field['output_mode'] ) ) ? $this->field['output_mode'] : 'padding';
151
- $mode = ( 'relative' === $mode || 'absolute' === $mode || 'none' === $mode ) ? '' : $mode;
152
- $mode = ( ! empty( $mode ) ) ? $mode . '-' : '';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
153
 
154
  if ( ! empty( $this->field['all'] ) && isset( $this->value['all'] ) && '' !== $this->value['all'] ) {
155
 
156
  $output = $element . '{';
157
- $output .= $mode . 'top:' . $this->value['all'] . $unit . $important . ';';
158
- $output .= $mode . 'right:' . $this->value['all'] . $unit . $important . ';';
159
- $output .= $mode . 'bottom:' . $this->value['all'] . $unit . $important . ';';
160
- $output .= $mode . 'left:' . $this->value['all'] . $unit . $important . ';';
161
  $output .= '}';
162
 
163
  } else {
164
 
165
- $top = ( isset( $this->value['top'] ) && '' !== $this->value['top'] ) ? $mode . 'top:' . $this->value['top'] . $unit . $important . ';' : '';
166
- $right = ( isset( $this->value['right'] ) && '' !== $this->value['right'] ) ? $mode . 'right:' . $this->value['right'] . $unit . $important . ';' : '';
167
- $bottom = ( isset( $this->value['bottom'] ) && '' !== $this->value['bottom'] ) ? $mode . 'bottom:' . $this->value['bottom'] . $unit . $important . ';' : '';
168
- $left = ( isset( $this->value['left'] ) && '' !== $this->value['left'] ) ? $mode . 'left:' . $this->value['left'] . $unit . $important . ';' : '';
169
 
170
  if ( '' !== $top || '' !== $right || '' !== $bottom || '' !== $left ) {
171
  $output = $element . '{' . $top . $right . $bottom . $left . '}';
49
  'right_icon' => '<i class="fa fa-long-arrow-right"></i>',
50
  'bottom_icon' => '<i class="fa fa-long-arrow-down"></i>',
51
  'left_icon' => '<i class="fa fa-long-arrow-left"></i>',
52
+ 'all_icon' => '<i class="fa fa-arrows-alt"></i>',
53
  'top_placeholder' => esc_html__( 'top', 'testimonial-free' ),
54
  'right_placeholder' => esc_html__( 'right', 'testimonial-free' ),
55
  'bottom_placeholder' => esc_html__( 'bottom', 'testimonial-free' ),
81
 
82
  echo wp_kses_post( $this->field_before() );
83
 
84
+ echo '<div class="spftestimonial--inputs" data-depend-id="' . esc_attr( $this->field['id'] ) . '">';
85
 
86
  if ( ! empty( $args['all'] ) ) {
87
 
88
+ $placeholder = ( ! empty( $args['all_placeholder'] ) ) ? $args['all_placeholder'] : '';
89
 
90
  echo '<div class="spftestimonial--input">';
91
  echo ( ! empty( $args['all_icon'] ) ) ? '<span class="spftestimonial--label spftestimonial--icon">' . wp_kses_post( $args['all_icon'] ) . '</span>' : '';
92
+ echo '<input type="number" name="' . esc_attr( $this->field_name( '[all]' ) ) . '" value="' . esc_attr( $value['all'] ) . '" placeholder="' . esc_attr( $placeholder ) . '" class="spftestimonial-input-number' . esc_attr( $is_unit ) . '" step="any" />';
93
+ echo ( $unit ) ? '<span class="spftestimonial--label spftestimonial--unit">' . esc_attr( $args['units'][0] ) . '</span>' : '';
94
  echo '</div>';
95
 
96
  } else {
107
 
108
  foreach ( $properties as $property ) {
109
 
110
+ $placeholder = ( ! empty( $args[ $property . '_placeholder' ] ) ) ? $args[ $property . '_placeholder' ] : '';
111
 
112
  echo '<div class="spftestimonial--input">';
113
  echo ( ! empty( $args[ $property . '_icon' ] ) ) ? '<span class="spftestimonial--label spftestimonial--icon">' . wp_kses_post( $args[ $property . '_icon' ] ) . '</span>' : '';
114
+ echo '<input type="number" name="' . esc_attr( $this->field_name( '[' . $property . ']' ) ) . '" value="' . esc_attr( $value[ $property ] ) . '" placeholder="' . esc_attr( $placeholder ) . '" class="spftestimonial-input-number' . esc_attr( $is_unit ) . '" step="any" />';
115
+ echo ( $unit ) ? '<span class="spftestimonial--label spftestimonial--unit">' . esc_attr( $args['units'][0] ) . '</span>' : '';
116
  echo '</div>';
117
 
118
  }
123
  echo '<select name="' . esc_attr( $this->field_name( '[unit]' ) ) . '">';
124
  foreach ( $args['units'] as $unit ) {
125
  $selected = ( $value['unit'] === $unit ) ? ' selected' : '';
126
+ echo '<option value="' . esc_attr( $unit ) . '"' . esc_attr( $selected ) . '>' . esc_attr( $unit ) . '</option>';
127
  }
128
  echo '</select>';
129
  echo '</div>';
136
  }
137
 
138
  /**
139
+ * Output
140
  *
141
+ * @return statement
142
  */
143
  public function output() {
 
144
  $output = '';
145
  $element = ( is_array( $this->field['output'] ) ) ? join( ',', $this->field['output'] ) : $this->field['output'];
146
  $important = ( ! empty( $this->field['output_important'] ) ) ? '!important' : '';
147
  $unit = ( ! empty( $this->value['unit'] ) ) ? $this->value['unit'] : 'px';
148
 
149
  $mode = ( ! empty( $this->field['output_mode'] ) ) ? $this->field['output_mode'] : 'padding';
150
+
151
+ if ( 'border-radius' === $mode || 'radius' === $mode ) {
152
+
153
+ $top = 'border-top-left-radius';
154
+ $right = 'border-top-right-radius';
155
+ $bottom = 'border-bottom-right-radius';
156
+ $left = 'border-bottom-left-radius';
157
+
158
+ } elseif ( 'relative' === $mode || 'absolute' === $mode || 'none' === $mode ) {
159
+
160
+ $top = 'top';
161
+ $right = 'right';
162
+ $bottom = 'bottom';
163
+ $left = 'left';
164
+
165
+ } else {
166
+
167
+ $top = $mode . '-top';
168
+ $right = $mode . '-right';
169
+ $bottom = $mode . '-bottom';
170
+ $left = $mode . '-left';
171
+
172
+ }
173
 
174
  if ( ! empty( $this->field['all'] ) && isset( $this->value['all'] ) && '' !== $this->value['all'] ) {
175
 
176
  $output = $element . '{';
177
+ $output .= $top . ':' . $this->value['all'] . $unit . $important . ';';
178
+ $output .= $right . ':' . $this->value['all'] . $unit . $important . ';';
179
+ $output .= $bottom . ':' . $this->value['all'] . $unit . $important . ';';
180
+ $output .= $left . ':' . $this->value['all'] . $unit . $important . ';';
181
  $output .= '}';
182
 
183
  } else {
184
 
185
+ $top = ( isset( $this->value['top'] ) && '' !== $this->value['top'] ) ? $top . ':' . $this->value['top'] . $unit . $important . ';' : '';
186
+ $right = ( isset( $this->value['right'] ) && '' !== $this->value['right'] ) ? $right . ':' . $this->value['right'] . $unit . $important . ';' : '';
187
+ $bottom = ( isset( $this->value['bottom'] ) && '' !== $this->value['bottom'] ) ? $bottom . ':' . $this->value['bottom'] . $unit . $important . ';' : '';
188
+ $left = ( isset( $this->value['left'] ) && '' !== $this->value['left'] ) ? $left . ':' . $this->value['left'] . $unit . $important . ';' : '';
189
 
190
  if ( '' !== $top || '' !== $right || '' !== $bottom || '' !== $left ) {
191
  $output = $element . '{' . $top . $right . $bottom . $left . '}';
admin/views/framework/fields/spinner/spinner.php CHANGED
@@ -53,14 +53,15 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Field_spinner' ) ) {
53
  );
54
 
55
  echo wp_kses_post( $this->field_before() );
56
- // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
57
- echo '<div class="spftestimonial--spin"><input type="number" name="' . esc_attr( $this->field_name() ) . '" value="' . esc_attr( $this->value ) . '"' . $this->field_attributes( array( 'class' => 'spftestimonial-input-number' ) ) . ' data-max="' . esc_attr( $args['max'] ) . '" data-min="' . esc_attr( $args['min'] ) . '" data-step="' . esc_attr( $args['step'] ) . '" data-unit="' . esc_attr( $args['unit'] ) . '"/></div>';
 
58
  echo wp_kses_post( $this->field_after() );
59
 
60
  }
61
 
62
  /**
63
- * Enqueue function
64
  *
65
  * @return void
66
  */
@@ -73,9 +74,9 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Field_spinner' ) ) {
73
  }
74
 
75
  /**
76
- * Output function
77
  *
78
- * @return string
79
  */
80
  public function output() {
81
 
53
  );
54
 
55
  echo wp_kses_post( $this->field_before() );
56
+
57
+ echo '<div class="spftestimonial--spin"><input type="number" name="' . esc_attr( $this->field_name() ) . '" value="' . esc_attr( $this->value ) . '"' . $this->field_attributes( array( 'class' => 'spftestimonial-input-number' ) ) . ' data-min="' . esc_attr( $args['min'] ) . '" data-max="' . esc_attr( $args['max'] ) . '" data-step="' . esc_attr( $args['step'] ) . '" data-unit="' . esc_attr( $args['unit'] ) . '" step="any" /></div>';// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
58
+
59
  echo wp_kses_post( $this->field_after() );
60
 
61
  }
62
 
63
  /**
64
+ * Enqueue spinner js.
65
  *
66
  * @return void
67
  */
74
  }
75
 
76
  /**
77
+ * Fields output
78
  *
79
+ * @return statement
80
  */
81
  public function output() {
82
 
admin/views/framework/fields/subheading/subheading.php CHANGED
@@ -42,7 +42,7 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Field_subheading' ) ) {
42
  */
43
  public function render() {
44
 
45
- echo ( ! empty( $this->field['content'] ) ) ? wp_kses_post( $this->field['content'] ) : '';
46
 
47
  }
48
 
42
  */
43
  public function render() {
44
 
45
+ echo wp_kses_post( ( ! empty( $this->field['content'] ) ) ? $this->field['content'] : '' );
46
 
47
  }
48
 
admin/views/framework/fields/switcher/switcher.php CHANGED
@@ -45,21 +45,18 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Field_switcher' ) ) {
45
  $active = ( ! empty( $this->value ) ) ? ' spftestimonial--active' : '';
46
  $text_on = ( ! empty( $this->field['text_on'] ) ) ? $this->field['text_on'] : esc_html__( 'On', 'testimonial-free' );
47
  $text_off = ( ! empty( $this->field['text_off'] ) ) ? $this->field['text_off'] : esc_html__( 'Off', 'testimonial-free' );
48
- $text_width = ( ! empty( $this->field['text_width'] ) ) ? ' style="width: ' . $this->field['text_width'] . 'px;"' : '';
49
 
50
  echo wp_kses_post( $this->field_before() );
51
 
52
- echo '<div class="spftestimonial--switcher' . esc_attr( $active ) . '"' . wp_kses_post( $text_width ) . '>';
53
- echo '<span class="spftestimonial--on">' . esc_html( $text_on ) . '</span>';
54
- echo '<span class="spftestimonial--off">' . esc_html( $text_off ) . '</span>';
55
  echo '<span class="spftestimonial--ball"></span>';
56
- // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
57
- echo '<input type="text" name="' . esc_attr( $this->field_name() ) . '" value="' . esc_attr( $this->value ) . '"' . $this->field_attributes() . ' />';
58
  echo '</div>';
59
 
60
- echo ( ! empty( $this->field['label'] ) ) ? '<span class="spftestimonial--label">' . esc_html( $this->field['label'] ) . '</span>' : '';
61
-
62
- echo '<div class="clear"></div>';
63
 
64
  echo wp_kses_post( $this->field_after() );
65
 
45
  $active = ( ! empty( $this->value ) ) ? ' spftestimonial--active' : '';
46
  $text_on = ( ! empty( $this->field['text_on'] ) ) ? $this->field['text_on'] : esc_html__( 'On', 'testimonial-free' );
47
  $text_off = ( ! empty( $this->field['text_off'] ) ) ? $this->field['text_off'] : esc_html__( 'Off', 'testimonial-free' );
48
+ $text_width = ( ! empty( $this->field['text_width'] ) ) ? $this->field['text_width'] : '60';
49
 
50
  echo wp_kses_post( $this->field_before() );
51
 
52
+ echo '<div class="spftestimonial--switcher' . esc_attr( $active ) . '" style="width: ' . esc_attr( $text_width ) . 'px;">';
53
+ echo '<span class="spftestimonial--on">' . esc_attr( $text_on ) . '</span>';
54
+ echo '<span class="spftestimonial--off">' . esc_attr( $text_off ) . '</span>';
55
  echo '<span class="spftestimonial--ball"></span>';
56
+ echo '<input type="hidden" name="' . esc_attr( $this->field_name() ) . '" value="' . esc_attr( $this->value ) . '"' . $this->field_attributes() . ' />';// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
 
57
  echo '</div>';
58
 
59
+ echo ( ! empty( $this->field['label'] ) ) ? '<span class="spftestimonial--label">' . esc_attr( $this->field['label'] ) . '</span>' : '';
 
 
60
 
61
  echo wp_kses_post( $this->field_after() );
62
 
admin/views/framework/fields/text/text.php CHANGED
@@ -45,8 +45,8 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Field_text' ) ) {
45
  $type = ( ! empty( $this->field['attributes']['type'] ) ) ? $this->field['attributes']['type'] : 'text';
46
 
47
  echo wp_kses_post( $this->field_before() );
48
- // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
49
- echo '<input type="' . esc_attr( $type ) . '" name="' . esc_attr( $this->field_name() ) . '" value="' . esc_attr( $this->value ) . '"' . $this->field_attributes() . ' />';
50
 
51
  echo wp_kses_post( $this->field_after() );
52
 
45
  $type = ( ! empty( $this->field['attributes']['type'] ) ) ? $this->field['attributes']['type'] : 'text';
46
 
47
  echo wp_kses_post( $this->field_before() );
48
+
49
+ echo '<input type="' . esc_attr( $type ) . '" name="' . esc_attr( $this->field_name() ) . '" value="' . esc_attr( $this->value ) . '"' . $this->field_attributes() . ' />';// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
50
 
51
  echo wp_kses_post( $this->field_after() );
52
 
admin/views/framework/fields/typography/google-fonts.php DELETED
@@ -1,992 +0,0 @@
1
- <?php
2
- /**
3
- * Framework google fonts file.
4
- *
5
- * @link https://shapedplugin.com
6
- * @since 2.0.0
7
- *
8
- * @package Testimonial_free
9
- * @subpackage Testimonial_free/framework
10
- */
11
-
12
- if ( ! defined( 'ABSPATH' ) ) { die; } // Cannot access directly.
13
-
14
- if( ! function_exists( 'spftestimonial_get_google_fonts' ) ) {
15
- function spftestimonial_get_google_fonts() {
16
- return [
17
- 'ABeeZee'=>[['normal','italic'],['latin']],
18
- 'Abel'=>[['normal'],['latin']],
19
- 'Abhaya Libre'=>[['normal','500','600','700','800'],['latin-ext','latin','sinhala']],
20
- 'Abril Fatface'=>[['normal'],['latin-ext','latin']],
21
- 'Aclonica'=>[['normal'],['latin']],
22
- 'Acme'=>[['normal'],['latin']],
23
- 'Actor'=>[['normal'],['latin']],
24
- 'Adamina'=>[['normal'],['latin']],
25
- 'Advent Pro'=>[['100','200','300','normal','500','600','700'],['latin-ext','greek','latin']],
26
- 'Aguafina Script'=>[['normal'],['latin-ext','latin']],
27
- 'Akronim'=>[['normal'],['latin-ext','latin']],
28
- 'Aladin'=>[['normal'],['latin-ext','latin']],
29
- 'Alata'=>[['normal'],['latin-ext','latin','vietnamese']],
30
- 'Alatsi'=>[['normal'],['latin-ext','latin','vietnamese']],
31
- 'Aldrich'=>[['normal'],['latin']],
32
- 'Alef'=>[['normal','700'],['hebrew','latin']],
33
- 'Alegreya'=>[['normal','italic','500','500italic','700','700italic','800','800italic','900','900italic'],['cyrillic-ext','cyrillic','greek-ext','latin-ext','greek','latin','vietnamese']],
34
- 'Alegreya SC'=>[['normal','italic','500','500italic','700','700italic','800','800italic','900','900italic'],['cyrillic-ext','cyrillic','greek-ext','latin-ext','greek','latin','vietnamese']],
35
- 'Alegreya Sans'=>[['100','100italic','300','300italic','normal','italic','500','500italic','700','700italic','800','800italic','900','900italic'],['cyrillic-ext','cyrillic','greek-ext','latin-ext','greek','latin','vietnamese']],
36
- 'Alegreya Sans SC'=>[['100','100italic','300','300italic','normal','italic','500','500italic','700','700italic','800','800italic','900','900italic'],['cyrillic-ext','cyrillic','greek-ext','latin-ext','greek','latin','vietnamese']],
37
- 'Aleo'=>[['300','300italic','normal','italic','700','700italic'],['latin-ext','latin']],
38
- 'Alex Brush'=>[['normal'],['latin-ext','latin']],
39
- 'Alfa Slab One'=>[['normal'],['latin-ext','latin','vietnamese']],
40
- 'Alice'=>[['normal'],['cyrillic-ext','cyrillic','latin']],
41
- 'Alike'=>[['normal'],['latin']],
42
- 'Alike Angular'=>[['normal'],['latin']],
43
- 'Allan'=>[['normal','700'],['latin-ext','latin']],
44
- 'Allerta'=>[['normal'],['latin']],
45
- 'Allerta Stencil'=>[['normal'],['latin']],
46
- 'Allura'=>[['normal'],['latin-ext','latin']],
47
- 'Almarai'=>[['300','normal','700','800'],['arabic']],
48
- 'Almendra'=>[['normal','italic','700','700italic'],['latin-ext','latin']],
49
- 'Almendra Display'=>[['normal'],['latin-ext','latin']],
50
- 'Almendra SC'=>[['normal'],['latin']],
51
- 'Amarante'=>[['normal'],['latin-ext','latin']],
52
- 'Amaranth'=>[['normal','italic','700','700italic'],['latin']],
53
- 'Amatic SC'=>[['normal','700'],['cyrillic','latin-ext','hebrew','latin','vietnamese']],
54
- 'Amethysta'=>[['normal'],['latin']],
55
- 'Amiko'=>[['normal','600','700'],['latin-ext','devanagari','latin']],
56
- 'Amiri'=>[['normal','italic','700','700italic'],['arabic','latin-ext','latin']],
57
- 'Amita'=>[['normal','700'],['latin-ext','devanagari','latin']],
58
- 'Anaheim'=>[['normal'],['latin-ext','latin']],
59
- 'Andada'=>[['normal'],['latin-ext','latin']],
60
- 'Andika'=>[['normal'],['cyrillic-ext','cyrillic','latin-ext','latin','vietnamese']],
61
- 'Angkor'=>[['normal'],['khmer']],
62
- 'Annie Use Your Telescope'=>[['normal'],['latin']],
63
- 'Anonymous Pro'=>[['normal','italic','700','700italic'],['cyrillic','latin-ext','greek','latin']],
64
- 'Antic'=>[['normal'],['latin']],
65
- 'Antic Didone'=>[['normal'],['latin']],
66
- 'Antic Slab'=>[['normal'],['latin']],
67
- 'Anton'=>[['normal'],['latin-ext','latin','vietnamese']],
68
- 'Arapey'=>[['normal','italic'],['latin']],
69
- 'Arbutus'=>[['normal'],['latin-ext','latin']],
70
- 'Arbutus Slab'=>[['normal'],['latin-ext','latin']],
71
- 'Architects Daughter'=>[['normal'],['latin']],
72
- 'Archivo'=>[['normal','italic','500','500italic','600','600italic','700','700italic'],['latin-ext','latin','vietnamese']],
73
- 'Archivo Black'=>[['normal'],['latin-ext','latin']],
74
- 'Archivo Narrow'=>[['normal','italic','500','500italic','600','600italic','700','700italic'],['latin-ext','latin','vietnamese']],
75
- 'Aref Ruqaa'=>[['normal','700'],['arabic','latin']],
76
- 'Arima Madurai'=>[['100','200','300','normal','500','700','800','900'],['latin-ext','latin','vietnamese','tamil']],
77
- 'Arimo'=>[['normal','italic','700','700italic'],['cyrillic-ext','cyrillic','greek-ext','latin-ext','hebrew','greek','latin','vietnamese']],
78
- 'Arizonia'=>[['normal'],['latin-ext','latin']],
79
- 'Armata'=>[['normal'],['latin-ext','latin']],
80
- 'Arsenal'=>[['normal','italic','700','700italic'],['cyrillic-ext','cyrillic','latin-ext','latin','vietnamese']],
81
- 'Artifika'=>[['normal'],['latin']],
82
- 'Arvo'=>[['normal','italic','700','700italic'],['latin']],
83
- 'Arya'=>[['normal','700'],['latin-ext','devanagari','latin']],
84
- 'Asap'=>[['normal','italic','500','500italic','600','600italic','700','700italic'],['latin-ext','latin','vietnamese']],
85
- 'Asap Condensed'=>[['normal','italic','500','500italic','600','600italic','700','700italic'],['latin-ext','latin','vietnamese']],
86
- 'Asar'=>[['normal'],['latin-ext','devanagari','latin']],
87
- 'Asset'=>[['normal'],['latin']],
88
- 'Assistant'=>[['200','300','normal','600','700','800'],['hebrew','latin']],
89
- 'Astloch'=>[['normal','700'],['latin']],
90
- 'Asul'=>[['normal','700'],['latin']],
91
- 'Athiti'=>[['200','300','normal','500','600','700'],['latin-ext','latin','thai','vietnamese']],
92
- 'Atma'=>[['300','normal','500','600','700'],['bengali','latin-ext','latin']],
93
- 'Atomic Age'=>[['normal'],['latin']],
94
- 'Aubrey'=>[['normal'],['latin']],
95
- 'Audiowide'=>[['normal'],['latin-ext','latin']],
96
- 'Autour One'=>[['normal'],['latin-ext','latin']],
97
- 'Average'=>[['normal'],['latin-ext','latin']],
98
- 'Average Sans'=>[['normal'],['latin-ext','latin']],
99
- 'Averia Gruesa Libre'=>[['normal'],['latin-ext','latin']],
100
- 'Averia Libre'=>[['300','300italic','normal','italic','700','700italic'],['latin']],
101
- 'Averia Sans Libre'=>[['300','300italic','normal','italic','700','700italic'],['latin']],
102
- 'Averia Serif Libre'=>[['300','300italic','normal','italic','700','700italic'],['latin']],
103
- 'B612'=>[['normal','italic','700','700italic'],['latin']],
104
- 'B612 Mono'=>[['normal','italic','700','700italic'],['latin']],
105
- 'Bad Script'=>[['normal'],['cyrillic','latin']],
106
- 'Bahiana'=>[['normal'],['latin-ext','latin']],
107
- 'Bahianita'=>[['normal'],['latin-ext','latin','vietnamese']],
108
- 'Bai Jamjuree'=>[['200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic'],['latin-ext','latin','thai','vietnamese']],
109
- 'Baloo'=>[['normal'],['latin-ext','devanagari','latin','vietnamese']],
110
- 'Baloo Bhai'=>[['normal'],['latin-ext','latin','vietnamese','gujarati']],
111
- 'Baloo Bhaijaan'=>[['normal'],['arabic','latin-ext','latin','vietnamese']],
112
- 'Baloo Bhaina'=>[['normal'],['latin-ext','latin','vietnamese','oriya']],
113
- 'Baloo Chettan'=>[['normal'],['malayalam','latin-ext','latin','vietnamese']],
114
- 'Baloo Da'=>[['normal'],['bengali','latin-ext','latin','vietnamese']],
115
- 'Baloo Paaji'=>[['normal'],['latin-ext','latin','vietnamese','gurmukhi']],
116
- 'Baloo Tamma'=>[['normal'],['latin-ext','kannada','latin','vietnamese']],
117
- 'Baloo Tammudu'=>[['normal'],['telugu','latin-ext','latin','vietnamese']],
118
- 'Baloo Thambi'=>[['normal'],['latin-ext','latin','vietnamese','tamil']],
119
- 'Balthazar'=>[['normal'],['latin']],
120
- 'Bangers'=>[['normal'],['latin-ext','latin','vietnamese']],
121
- 'Barlow'=>[['100','100italic','200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic','800','800italic','900','900italic'],['latin-ext','latin','vietnamese']],
122
- 'Barlow Condensed'=>[['100','100italic','200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic','800','800italic','900','900italic'],['latin-ext','latin','vietnamese']],
123
- 'Barlow Semi Condensed'=>[['100','100italic','200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic','800','800italic','900','900italic'],['latin-ext','latin','vietnamese']],
124
- 'Barriecito'=>[['normal'],['latin-ext','latin','vietnamese']],
125
- 'Barrio'=>[['normal'],['latin-ext','latin']],
126
- 'Basic'=>[['normal'],['latin-ext','latin']],
127
- 'Baskervville'=>[['normal','italic'],['latin-ext','latin']],
128
- 'Battambang'=>[['normal','700'],['khmer']],
129
- 'Baumans'=>[['normal'],['latin']],
130
- 'Bayon'=>[['normal'],['khmer']],
131
- 'Be Vietnam'=>[['100','100italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic','800','800italic'],['latin-ext','latin','vietnamese']],
132
- 'Bebas Neue'=>[['normal'],['latin-ext','latin']],
133
- 'Belgrano'=>[['normal'],['latin']],
134
- 'Bellefair'=>[['normal'],['latin-ext','hebrew','latin']],
135
- 'Belleza'=>[['normal'],['latin-ext','latin']],
136
- 'BenchNine'=>[['300','normal','700'],['latin-ext','latin']],
137
- 'Bentham'=>[['normal'],['latin']],
138
- 'Berkshire Swash'=>[['normal'],['latin-ext','latin']],
139
- 'Beth Ellen'=>[['normal'],['latin']],
140
- 'Bevan'=>[['normal'],['latin-ext','latin','vietnamese']],
141
- 'Big Shoulders Display'=>[['100','300','normal','500','600','700','800','900'],['latin-ext','latin','vietnamese']],
142
- 'Big Shoulders Text'=>[['100','300','normal','500','600','700','800','900'],['latin-ext','latin','vietnamese']],
143
- 'Bigelow Rules'=>[['normal'],['latin-ext','latin']],
144
- 'Bigshot One'=>[['normal'],['latin']],
145
- 'Bilbo'=>[['normal'],['latin-ext','latin']],
146
- 'Bilbo Swash Caps'=>[['normal'],['latin-ext','latin']],
147
- 'BioRhyme'=>[['200','300','normal','700','800'],['latin-ext','latin']],
148
- 'BioRhyme Expanded'=>[['200','300','normal','700','800'],['latin-ext','latin']],
149
- 'Biryani'=>[['200','300','normal','600','700','800','900'],['latin-ext','devanagari','latin']],
150
- 'Bitter'=>[['normal','italic','700'],['latin-ext','latin']],
151
- 'Black And White Picture'=>[['normal'],['korean','latin']],
152
- 'Black Han Sans'=>[['normal'],['korean','latin']],
153
- 'Black Ops One'=>[['normal'],['latin-ext','latin']],
154
- 'Blinker'=>[['100','200','300','normal','600','700','800','900'],['latin-ext','latin']],
155
- 'Bokor'=>[['normal'],['khmer']],
156
- 'Bonbon'=>[['normal'],['latin']],
157
- 'Boogaloo'=>[['normal'],['latin']],
158
- 'Bowlby One'=>[['normal'],['latin']],
159
- 'Bowlby One SC'=>[['normal'],['latin-ext','latin']],
160
- 'Brawler'=>[['normal'],['latin']],
161
- 'Bree Serif'=>[['normal'],['latin-ext','latin']],
162
- 'Bubblegum Sans'=>[['normal'],['latin-ext','latin']],
163
- 'Bubbler One'=>[['normal'],['latin-ext','latin']],
164
- 'Buda'=>[['300'],['latin']],
165
- 'Buenard'=>[['normal','700'],['latin-ext','latin']],
166
- 'Bungee'=>[['normal'],['latin-ext','latin','vietnamese']],
167
- 'Bungee Hairline'=>[['normal'],['latin-ext','latin','vietnamese']],
168
- 'Bungee Inline'=>[['normal'],['latin-ext','latin','vietnamese']],
169
- 'Bungee Outline'=>[['normal'],['latin-ext','latin','vietnamese']],
170
- 'Bungee Shade'=>[['normal'],['latin-ext','latin','vietnamese']],
171
- 'Butcherman'=>[['normal'],['latin-ext','latin']],
172
- 'Butterfly Kids'=>[['normal'],['latin-ext','latin']],
173
- 'Cabin'=>[['normal','italic','500','500italic','600','600italic','700','700italic'],['latin-ext','latin','vietnamese']],
174
- 'Cabin Condensed'=>[['normal','500','600','700'],['latin-ext','latin','vietnamese']],
175
- 'Cabin Sketch'=>[['normal','700'],['latin']],
176
- 'Caesar Dressing'=>[['normal'],['latin']],
177
- 'Cagliostro'=>[['normal'],['latin']],
178
- 'Cairo'=>[['200','300','normal','600','700','900'],['arabic','latin-ext','latin']],
179
- 'Calistoga'=>[['normal'],['latin-ext','latin','vietnamese']],
180
- 'Calligraffitti'=>[['normal'],['latin']],
181
- 'Cambay'=>[['normal','italic','700','700italic'],['latin-ext','devanagari','latin']],
182
- 'Cambo'=>[['normal'],['latin']],
183
- 'Candal'=>[['normal'],['latin']],
184
- 'Cantarell'=>[['normal','italic','700','700italic'],['latin']],
185
- 'Cantata One'=>[['normal'],['latin-ext','latin']],
186
- 'Cantora One'=>[['normal'],['latin-ext','latin']],
187
- 'Capriola'=>[['normal'],['latin-ext','latin']],
188
- 'Cardo'=>[['normal','italic','700'],['greek-ext','latin-ext','greek','latin']],
189
- 'Carme'=>[['normal'],['latin']],
190
- 'Carrois Gothic'=>[['normal'],['latin']],
191
- 'Carrois Gothic SC'=>[['normal'],['latin']],
192
- 'Carter One'=>[['normal'],['latin']],
193
- 'Catamaran'=>[['100','200','300','normal','500','600','700','800','900'],['latin-ext','latin','tamil']],
194
- 'Caudex'=>[['normal','italic','700','700italic'],['greek-ext','latin-ext','greek','latin']],
195
- 'Caveat'=>[['normal','700'],['cyrillic-ext','cyrillic','latin-ext','latin']],
196
- 'Caveat Brush'=>[['normal'],['latin-ext','latin']],
197
- 'Cedarville Cursive'=>[['normal'],['latin']],
198
- 'Ceviche One'=>[['normal'],['latin-ext','latin']],
199
- 'Chakra Petch'=>[['300','300italic','normal','italic','500','500italic','600','600italic','700','700italic'],['latin-ext','latin','thai','vietnamese']],
200
- 'Changa'=>[['200','300','normal','500','600','700','800'],['arabic','latin-ext','latin']],
201
- 'Changa One'=>[['normal','italic'],['latin']],
202
- 'Chango'=>[['normal'],['latin-ext','latin']],
203
- 'Charm'=>[['normal','700'],['latin-ext','latin','thai','vietnamese']],
204
- 'Charmonman'=>[['normal','700'],['latin-ext','latin','thai','vietnamese']],
205
- 'Chathura'=>[['100','300','normal','700','800'],['telugu','latin']],
206
- 'Chau Philomene One'=>[['normal','italic'],['latin-ext','latin']],
207
- 'Chela One'=>[['normal'],['latin-ext','latin']],
208
- 'Chelsea Market'=>[['normal'],['latin-ext','latin']],
209
- 'Chenla'=>[['normal'],['khmer']],
210
- 'Cherry Cream Soda'=>[['normal'],['latin']],
211
- 'Cherry Swash'=>[['normal','700'],['latin-ext','latin']],
212
- 'Chewy'=>[['normal'],['latin']],
213
- 'Chicle'=>[['normal'],['latin-ext','latin']],
214
- 'Chilanka'=>[['normal'],['malayalam','latin']],
215
- 'Chivo'=>[['300','300italic','normal','italic','700','700italic','900','900italic'],['latin-ext','latin']],
216
- 'Chonburi'=>[['normal'],['latin-ext','latin','thai','vietnamese']],
217
- 'Cinzel'=>[['normal','700','900'],['latin-ext','latin']],
218
- 'Cinzel Decorative'=>[['normal','700','900'],['latin']],
219
- 'Clicker Script'=>[['normal'],['latin-ext','latin']],
220
- 'Coda'=>[['normal','800'],['latin-ext','latin']],
221
- 'Coda Caption'=>[['800'],['latin-ext','latin']],
222
- 'Codystar'=>[['300','normal'],['latin-ext','latin']],
223
- 'Coiny'=>[['normal'],['latin-ext','latin','vietnamese','tamil']],
224
- 'Combo'=>[['normal'],['latin-ext','latin']],
225
- 'Comfortaa'=>[['300','normal','500','600','700'],['cyrillic-ext','cyrillic','latin-ext','greek','latin','vietnamese']],
226
- 'Coming Soon'=>[['normal'],['latin']],
227
- 'Concert One'=>[['normal'],['latin-ext','latin']],
228
- 'Condiment'=>[['normal'],['latin-ext','latin']],
229
- 'Content'=>[['normal','700'],['khmer']],
230
- 'Contrail One'=>[['normal'],['latin']],
231
- 'Convergence'=>[['normal'],['latin']],
232
- 'Cookie'=>[['normal'],['latin']],
233
- 'Copse'=>[['normal'],['latin']],
234
- 'Corben'=>[['normal','700'],['latin-ext','latin']],
235
- 'Cormorant'=>[['300','300italic','normal','italic','500','500italic','600','600italic','700','700italic'],['cyrillic-ext','cyrillic','latin-ext','latin','vietnamese']],
236
- 'Cormorant Garamond'=>[['300','300italic','normal','italic','500','500italic','600','600italic','700','700italic'],['cyrillic-ext','cyrillic','latin-ext','latin','vietnamese']],
237
- 'Cormorant Infant'=>[['300','300italic','normal','italic','500','500italic','600','600italic','700','700italic'],['cyrillic-ext','cyrillic','latin-ext','latin','vietnamese']],
238
- 'Cormorant SC'=>[['300','normal','500','600','700'],['cyrillic-ext','cyrillic','latin-ext','latin','vietnamese']],
239
- 'Cormorant Unicase'=>[['300','normal','500','600','700'],['cyrillic-ext','cyrillic','latin-ext','latin','vietnamese']],
240
- 'Cormorant Upright'=>[['300','normal','500','600','700'],['latin-ext','latin','vietnamese']],
241
- 'Courgette'=>[['normal'],['latin-ext','latin']],
242
- 'Cousine'=>[['normal','italic','700','700italic'],['cyrillic-ext','cyrillic','greek-ext','latin-ext','hebrew','greek','latin','vietnamese']],
243
- 'Coustard'=>[['normal','900'],['latin']],
244
- 'Covered By Your Grace'=>[['normal'],['latin']],
245
- 'Crafty Girls'=>[['normal'],['latin']],
246
- 'Creepster'=>[['normal'],['latin']],
247
- 'Crete Round'=>[['normal','italic'],['latin-ext','latin']],
248
- 'Crimson Pro'=>[['200','300','normal','500','600','700','800','900','200italic','300italic','italic','500italic','600italic','700italic','800italic','900italic'],['latin-ext','latin','vietnamese']],
249
- 'Crimson Text'=>[['normal','italic','600','600italic','700','700italic'],['latin']],
250
- 'Croissant One'=>[['normal'],['latin-ext','latin']],
251
- 'Crushed'=>[['normal'],['latin']],
252
- 'Cuprum'=>[['normal','italic','700','700italic'],['cyrillic-ext','cyrillic','latin-ext','latin','vietnamese']],
253
- 'Cute Font'=>[['normal'],['korean','latin']],
254
- 'Cutive'=>[['normal'],['latin-ext','latin']],
255
- 'Cutive Mono'=>[['normal'],['latin-ext','latin']],
256
- 'DM Sans'=>[['normal','italic','500','500italic','700','700italic'],['latin-ext','latin']],
257
- 'DM Serif Display'=>[['normal','italic'],['latin-ext','latin']],
258
- 'DM Serif Text'=>[['normal','italic'],['latin-ext','latin']],
259
- 'Damion'=>[['normal'],['latin']],
260
- 'Dancing Script'=>[['normal','500','600','700'],['latin-ext','latin','vietnamese']],
261
- 'Dangrek'=>[['normal'],['khmer']],
262
- 'Darker Grotesque'=>[['300','normal','500','600','700','800','900'],['latin-ext','latin','vietnamese']],
263
- 'David Libre'=>[['normal','500','700'],['latin-ext','hebrew','latin','vietnamese']],
264
- 'Dawning of a New Day'=>[['normal'],['latin']],
265
- 'Days One'=>[['normal'],['latin']],
266
- 'Dekko'=>[['normal'],['latin-ext','devanagari','latin']],
267
- 'Delius'=>[['normal'],['latin']],
268
- 'Delius Swash Caps'=>[['normal'],['latin']],
269
- 'Delius Unicase'=>[['normal','700'],['latin']],
270
- 'Della Respira'=>[['normal'],['latin']],
271
- 'Denk One'=>[['normal'],['latin-ext','latin']],
272
- 'Devonshire'=>[['normal'],['latin-ext','latin']],
273
- 'Dhurjati'=>[['normal'],['telugu','latin']],
274
- 'Didact Gothic'=>[['normal'],['cyrillic-ext','cyrillic','greek-ext','latin-ext','greek','latin']],
275
- 'Diplomata'=>[['normal'],['latin-ext','latin']],
276
- 'Diplomata SC'=>[['normal'],['latin-ext','latin']],
277
- 'Do Hyeon'=>[['normal'],['korean','latin']],
278
- 'Dokdo'=>[['normal'],['korean','latin']],
279
- 'Domine'=>[['normal','700'],['latin-ext','latin']],
280
- 'Donegal One'=>[['normal'],['latin-ext','latin']],
281
- 'Doppio One'=>[['normal'],['latin-ext','latin']],
282
- 'Dorsa'=>[['normal'],['latin']],
283
- 'Dosis'=>[['200','300','normal','500','600','700','800'],['latin-ext','latin','vietnamese']],
284
- 'Dr Sugiyama'=>[['normal'],['latin-ext','latin']],
285
- 'Duru Sans'=>[['normal'],['latin-ext','latin']],
286
- 'Dynalight'=>[['normal'],['latin-ext','latin']],
287
- 'EB Garamond'=>[['normal','500','600','700','800','italic','500italic','600italic','700italic','800italic'],['cyrillic-ext','cyrillic','greek-ext','latin-ext','greek','latin','vietnamese']],
288
- 'Eagle Lake'=>[['normal'],['latin-ext','latin']],
289
- 'East Sea Dokdo'=>[['normal'],['korean','latin']],
290
- 'Eater'=>[['normal'],['latin-ext','latin']],
291
- 'Economica'=>[['normal','italic','700','700italic'],['latin-ext','latin']],
292
- 'Eczar'=>[['normal','500','600','700','800'],['latin-ext','devanagari','latin']],
293
- 'El Messiri'=>[['normal','500','600','700'],['cyrillic','arabic','latin']],
294
- 'Electrolize'=>[['normal'],['latin']],
295
- 'Elsie'=>[['normal','900'],['latin-ext','latin']],
296
- 'Elsie Swash Caps'=>[['normal','900'],['latin-ext','latin']],
297
- 'Emblema One'=>[['normal'],['latin-ext','latin']],
298
- 'Emilys Candy'=>[['normal'],['latin-ext','latin']],
299
- 'Encode Sans'=>[['100','200','300','normal','500','600','700','800','900'],['latin-ext','latin','vietnamese']],
300
- 'Encode Sans Condensed'=>[['100','200','300','normal','500','600','700','800','900'],['latin-ext','latin','vietnamese']],
301
- 'Encode Sans Expanded'=>[['100','200','300','normal','500','600','700','800','900'],['latin-ext','latin','vietnamese']],
302
- 'Encode Sans Semi Condensed'=>[['100','200','300','normal','500','600','700','800','900'],['latin-ext','latin','vietnamese']],
303
- 'Encode Sans Semi Expanded'=>[['100','200','300','normal','500','600','700','800','900'],['latin-ext','latin','vietnamese']],
304
- 'Engagement'=>[['normal'],['latin']],
305
- 'Englebert'=>[['normal'],['latin-ext','latin']],
306
- 'Enriqueta'=>[['normal','500','600','700'],['latin-ext','latin']],
307
- 'Erica One'=>[['normal'],['latin-ext','latin']],
308
- 'Esteban'=>[['normal'],['latin-ext','latin']],
309
- 'Euphoria Script'=>[['normal'],['latin-ext','latin']],
310
- 'Ewert'=>[['normal'],['latin-ext','latin']],
311
- 'Exo'=>[['100','100italic','200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic','800','800italic','900','900italic'],['latin-ext','latin','vietnamese']],
312
- 'Exo 2'=>[['100','100italic','200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic','800','800italic','900','900italic'],['cyrillic-ext','cyrillic','latin-ext','latin','vietnamese']],
313
- 'Expletus Sans'=>[['normal','italic','500','500italic','600','600italic','700','700italic'],['latin']],
314
- 'Fahkwang'=>[['200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic'],['latin-ext','latin','thai','vietnamese']],
315
- 'Fanwood Text'=>[['normal','italic'],['latin']],
316
- 'Farro'=>[['300','normal','500','700'],['latin-ext','latin']],
317
- 'Farsan'=>[['normal'],['latin-ext','latin','vietnamese','gujarati']],
318
- 'Fascinate'=>[['normal'],['latin']],
319
- 'Fascinate Inline'=>[['normal'],['latin']],
320
- 'Faster One'=>[['normal'],['latin']],
321
- 'Fasthand'=>[['normal'],['khmer']],
322
- 'Fauna One'=>[['normal'],['latin-ext','latin']],
323
- 'Faustina'=>[['normal','italic','500','500italic','600','600italic','700','700italic'],['latin-ext','latin','vietnamese']],
324
- 'Federant'=>[['normal'],['latin']],
325
- 'Federo'=>[['normal'],['latin']],
326
- 'Felipa'=>[['normal'],['latin-ext','latin']],
327
- 'Fenix'=>[['normal'],['latin-ext','latin']],
328
- 'Finger Paint'=>[['normal'],['latin']],
329
- 'Fira Code'=>[['300','normal','500','600','700'],['cyrillic-ext','cyrillic','greek-ext','latin-ext','greek','latin']],
330
- 'Fira Mono'=>[['normal','500','700'],['cyrillic-ext','cyrillic','greek-ext','latin-ext','greek','latin']],
331
- 'Fira Sans'=>[['100','100italic','200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic','800','800italic','900','900italic'],['cyrillic-ext','cyrillic','greek-ext','latin-ext','greek','latin','vietnamese']],
332
- 'Fira Sans Condensed'=>[['100','100italic','200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic','800','800italic','900','900italic'],['cyrillic-ext','cyrillic','greek-ext','latin-ext','greek','latin','vietnamese']],
333
- 'Fira Sans Extra Condensed'=>[['100','100italic','200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic','800','800italic','900','900italic'],['cyrillic-ext','cyrillic','greek-ext','latin-ext','greek','latin','vietnamese']],
334
- 'Fjalla One'=>[['normal'],['latin-ext','latin']],
335
- 'Fjord One'=>[['normal'],['latin']],
336
- 'Flamenco'=>[['300','normal'],['latin']],
337
- 'Flavors'=>[['normal'],['latin-ext','latin']],
338
- 'Fondamento'=>[['normal','italic'],['latin-ext','latin']],
339
- 'Fontdiner Swanky'=>[['normal'],['latin']],
340
- 'Forum'=>[['normal'],['cyrillic-ext','cyrillic','latin-ext','latin']],
341
- 'Francois One'=>[['normal'],['latin-ext','latin','vietnamese']],
342
- 'Frank Ruhl Libre'=>[['300','normal','500','700','900'],['latin-ext','hebrew','latin']],
343
- 'Freckle Face'=>[['normal'],['latin-ext','latin']],
344
- 'Fredericka the Great'=>[['normal'],['latin-ext','latin']],
345
- 'Fredoka One'=>[['normal'],['latin']],
346
- 'Freehand'=>[['normal'],['khmer']],
347
- 'Fresca'=>[['normal'],['latin-ext','latin']],
348
- 'Frijole'=>[['normal'],['latin']],
349
- 'Fruktur'=>[['normal'],['latin-ext','latin']],
350
- 'Fugaz One'=>[['normal'],['latin']],
351
- 'GFS Didot'=>[['normal'],['greek']],
352
- 'GFS Neohellenic'=>[['normal','italic','700','700italic'],['greek']],
353
- 'Gabriela'=>[['normal'],['cyrillic-ext','cyrillic','latin']],
354
- 'Gaegu'=>[['300','normal','700'],['korean','latin']],
355
- 'Gafata'=>[['normal'],['latin-ext','latin']],
356
- 'Galada'=>[['normal'],['bengali','latin']],
357
- 'Galdeano'=>[['normal'],['latin']],
358
- 'Galindo'=>[['normal'],['latin-ext','latin']],
359
- 'Gamja Flower'=>[['normal'],['korean','latin']],
360
- 'Gayathri'=>[['100','normal','700'],['malayalam','latin']],
361
- 'Gentium Basic'=>[['normal','italic','700','700italic'],['latin-ext','latin']],
362
- 'Gentium Book Basic'=>[['normal','italic','700','700italic'],['latin-ext','latin']],
363
- 'Geo'=>[['normal','italic'],['latin']],
364
- 'Geostar'=>[['normal'],['latin']],
365
- 'Geostar Fill'=>[['normal'],['latin']],
366
- 'Germania One'=>[['normal'],['latin']],
367
- 'Gidugu'=>[['normal'],['telugu','latin']],
368
- 'Gilda Display'=>[['normal'],['latin-ext','latin']],
369
- 'Give You Glory'=>[['normal'],['latin']],
370
- 'Glass Antiqua'=>[['normal'],['latin-ext','latin']],
371
- 'Glegoo'=>[['normal','700'],['latin-ext','devanagari','latin']],
372
- 'Gloria Hallelujah'=>[['normal'],['latin']],
373
- 'Goblin One'=>[['normal'],['latin']],
374
- 'Gochi Hand'=>[['normal'],['latin']],
375
- 'Gorditas'=>[['normal','700'],['latin']],
376
- 'Gothic A1'=>[['100','200','300','normal','500','600','700','800','900'],['korean','latin']],
377
- 'Goudy Bookletter 1911'=>[['normal'],['latin']],
378
- 'Graduate'=>[['normal'],['latin']],
379
- 'Grand Hotel'=>[['normal'],['latin-ext','latin']],
380
- 'Gravitas One'=>[['normal'],['latin']],
381
- 'Great Vibes'=>[['normal'],['latin-ext','latin']],
382
- 'Grenze'=>[['100','100italic','200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic','800','800italic','900','900italic'],['latin-ext','latin','vietnamese']],
383
- 'Griffy'=>[['normal'],['latin-ext','latin']],
384
- 'Gruppo'=>[['normal'],['latin-ext','latin']],
385
- 'Gudea'=>[['normal','italic','700'],['latin-ext','latin']],
386
- 'Gugi'=>[['normal'],['korean','latin']],
387
- 'Gupter'=>[['normal','500','700'],['latin']],
388
- 'Gurajada'=>[['normal'],['telugu','latin']],
389
- 'Habibi'=>[['normal'],['latin-ext','latin']],
390
- 'Halant'=>[['300','normal','500','600','700'],['latin-ext','devanagari','latin']],
391
- 'Hammersmith One'=>[['normal'],['latin-ext','latin']],
392
- 'Hanalei'=>[['normal'],['latin-ext','latin']],
393
- 'Hanalei Fill'=>[['normal'],['latin-ext','latin']],
394
- 'Handlee'=>[['normal'],['latin']],
395
- 'Hanuman'=>[['normal','700'],['khmer']],
396
- 'Happy Monkey'=>[['normal'],['latin-ext','latin']],
397
- 'Harmattan'=>[['normal'],['arabic','latin']],
398
- 'Headland One'=>[['normal'],['latin-ext','latin']],
399
- 'Heebo'=>[['100','300','normal','500','700','800','900'],['hebrew','latin']],
400
- 'Henny Penny'=>[['normal'],['latin']],
401
- 'Hepta Slab'=>[['100','200','300','normal','500','600','700','800','900'],['latin-ext','latin','vietnamese']],
402
- 'Herr Von Muellerhoff'=>[['normal'],['latin-ext','latin']],
403
- 'Hi Melody'=>[['normal'],['korean','latin']],
404
- 'Hind'=>[['300','normal','500','600','700'],['latin-ext','devanagari','latin']],
405
- 'Hind Guntur'=>[['300','normal','500','600','700'],['telugu','latin-ext','latin']],
406
- 'Hind Madurai'=>[['300','normal','500','600','700'],['latin-ext','latin','tamil']],
407
- 'Hind Siliguri'=>[['300','normal','500','600','700'],['bengali','latin-ext','latin']],
408
- 'Hind Vadodara'=>[['300','normal','500','600','700'],['latin-ext','latin','gujarati']],
409
- 'Holtwood One SC'=>[['normal'],['latin']],
410
- 'Homemade Apple'=>[['normal'],['latin']],
411
- 'Homenaje'=>[['normal'],['latin']],
412
- 'IBM Plex Mono'=>[['100','100italic','200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic'],['cyrillic-ext','cyrillic','latin-ext','latin','vietnamese']],
413
- 'IBM Plex Sans'=>[['100','100italic','200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic'],['cyrillic-ext','cyrillic','latin-ext','greek','latin','vietnamese']],
414
- 'IBM Plex Sans Condensed'=>[['100','100italic','200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic'],['latin-ext','latin','vietnamese']],
415
- 'IBM Plex Serif'=>[['100','100italic','200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic'],['cyrillic-ext','cyrillic','latin-ext','latin','vietnamese']],
416
- 'IM Fell DW Pica'=>[['normal','italic'],['latin']],
417
- 'IM Fell DW Pica SC'=>[['normal'],['latin']],
418
- 'IM Fell Double Pica'=>[['normal','italic'],['latin']],
419
- 'IM Fell Double Pica SC'=>[['normal'],['latin']],
420
- 'IM Fell English'=>[['normal','italic'],['latin']],
421
- 'IM Fell English SC'=>[['normal'],['latin']],
422
- 'IM Fell French Canon'=>[['normal','italic'],['latin']],
423
- 'IM Fell French Canon SC'=>[['normal'],['latin']],
424
- 'IM Fell Great Primer'=>[['normal','italic'],['latin']],
425
- 'IM Fell Great Primer SC'=>[['normal'],['latin']],
426
- 'Ibarra Real Nova'=>[['normal','italic','600','600italic','700','700italic'],['latin-ext','latin']],
427
- 'Iceberg'=>[['normal'],['latin']],
428
- 'Iceland'=>[['normal'],['latin']],
429
- 'Imprima'=>[['normal'],['latin-ext','latin']],
430
- 'Inconsolata'=>[['normal','700'],['latin-ext','latin','vietnamese']],
431
- 'Inder'=>[['normal'],['latin-ext','latin']],
432
- 'Indie Flower'=>[['normal'],['latin']],
433
- 'Inika'=>[['normal','700'],['latin-ext','latin']],
434
- 'Inknut Antiqua'=>[['300','normal','500','600','700','800','900'],['latin-ext','devanagari','latin']],
435
- 'Irish Grover'=>[['normal'],['latin']],
436
- 'Istok Web'=>[['normal','italic','700','700italic'],['cyrillic-ext','cyrillic','latin-ext','latin']],
437
- 'Italiana'=>[['normal'],['latin']],
438
- 'Italianno'=>[['normal'],['latin-ext','latin']],
439
- 'Itim'=>[['normal'],['latin-ext','latin','thai','vietnamese']],
440
- 'Jacques Francois'=>[['normal'],['latin']],
441
- 'Jacques Francois Shadow'=>[['normal'],['latin']],
442
- 'Jaldi'=>[['normal','700'],['latin-ext','devanagari','latin']],
443
- 'Jim Nightshade'=>[['normal'],['latin-ext','latin']],
444
- 'Jockey One'=>[['normal'],['latin-ext','latin']],
445
- 'Jolly Lodger'=>[['normal'],['latin-ext','latin']],
446
- 'Jomhuria'=>[['normal'],['arabic','latin-ext','latin']],
447
- 'Jomolhari'=>[['normal'],['tibetan','latin']],
448
- 'Josefin Sans'=>[['100','100italic','300','300italic','normal','italic','600','600italic','700','700italic'],['latin-ext','latin','vietnamese']],
449
- 'Josefin Slab'=>[['100','100italic','300','300italic','normal','italic','600','600italic','700','700italic'],['latin']],
450
- 'Joti One'=>[['normal'],['latin-ext','latin']],
451
- 'Jua'=>[['normal'],['korean','latin']],
452
- 'Judson'=>[['normal','italic','700'],['latin-ext','latin','vietnamese']],
453
- 'Julee'=>[['normal'],['latin']],
454
- 'Julius Sans One'=>[['normal'],['latin-ext','latin']],
455
- 'Junge'=>[['normal'],['latin']],
456
- 'Jura'=>[['300','normal','500','600','700'],['cyrillic-ext','cyrillic','greek-ext','latin-ext','greek','latin','vietnamese']],
457
- 'Just Another Hand'=>[['normal'],['latin']],
458
- 'Just Me Again Down Here'=>[['normal'],['latin-ext','latin']],
459
- 'K2D'=>[['100','100italic','200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic','800','800italic'],['latin-ext','latin','thai','vietnamese']],
460
- 'Kadwa'=>[['normal','700'],['devanagari','latin']],
461
- 'Kalam'=>[['300','normal','700'],['latin-ext','devanagari','latin']],
462
- 'Kameron'=>[['normal','700'],['latin']],
463
- 'Kanit'=>[['100','100italic','200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic','800','800italic','900','900italic'],['latin-ext','latin','thai','vietnamese']],
464
- 'Kantumruy'=>[['300','normal','700'],['khmer']],
465
- 'Karla'=>[['normal','italic','700','700italic'],['latin-ext','latin']],
466
- 'Karma'=>[['300','normal','500','600','700'],['latin-ext','devanagari','latin']],
467
- 'Katibeh'=>[['normal'],['arabic','latin-ext','latin']],
468
- 'Kaushan Script'=>[['normal'],['latin-ext','latin']],
469
- 'Kavivanar'=>[['normal'],['latin-ext','latin','tamil']],
470
- 'Kavoon'=>[['normal'],['latin-ext','latin']],
471
- 'Kdam Thmor'=>[['normal'],['khmer']],
472
- 'Keania One'=>[['normal'],['latin-ext','latin']],
473
- 'Kelly Slab'=>[['normal'],['cyrillic','latin-ext','latin']],
474
- 'Kenia'=>[['normal'],['latin']],
475
- 'Khand'=>[['300','normal','500','600','700'],['latin-ext','devanagari','latin']],
476
- 'Khmer'=>[['normal'],['khmer']],
477
- 'Khula'=>[['300','normal','600','700','800'],['latin-ext','devanagari','latin']],
478
- 'Kirang Haerang'=>[['normal'],['korean','latin']],
479
- 'Kite One'=>[['normal'],['latin']],
480
- 'Knewave'=>[['normal'],['latin-ext','latin']],
481
- 'KoHo'=>[['200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic'],['latin-ext','latin','thai','vietnamese']],
482
- 'Kodchasan'=>[['200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic'],['latin-ext','latin','thai','vietnamese']],
483
- 'Kosugi'=>[['normal'],['cyrillic','latin','japanese']],
484
- 'Kosugi Maru'=>[['normal'],['cyrillic','latin','japanese']],
485
- 'Kotta One'=>[['normal'],['latin-ext','latin']],
486
- 'Koulen'=>[['normal'],['khmer']],
487
- 'Kranky'=>[['normal'],['latin']],
488
- 'Kreon'=>[['300','normal','500','600','700'],['latin-ext','latin']],
489
- 'Kristi'=>[['normal'],['latin']],
490
- 'Krona One'=>[['normal'],['latin-ext','latin']],
491
- 'Krub'=>[['200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic'],['latin-ext','latin','thai','vietnamese']],
492
- 'Kulim Park'=>[['200','200italic','300','300italic','normal','italic','600','600italic','700','700italic'],['latin-ext','latin']],
493
- 'Kumar One'=>[['normal'],['latin-ext','latin','gujarati']],
494
- 'Kumar One Outline'=>[['normal'],['latin-ext','latin','gujarati']],
495
- 'Kurale'=>[['normal'],['cyrillic-ext','cyrillic','latin-ext','devanagari','latin']],
496
- 'La Belle Aurore'=>[['normal'],['latin']],
497
- 'Lacquer'=>[['normal'],['latin']],
498
- 'Laila'=>[['300','normal','500','600','700'],['latin-ext','devanagari','latin']],
499
- 'Lakki Reddy'=>[['normal'],['telugu','latin']],
500
- 'Lalezar'=>[['normal'],['arabic','latin-ext','latin','vietnamese']],
501
- 'Lancelot'=>[['normal'],['latin-ext','latin']],
502
- 'Lateef'=>[['normal'],['arabic','latin']],
503
- 'Lato'=>[['100','100italic','300','300italic','normal','italic','700','700italic','900','900italic'],['latin-ext','latin']],
504
- 'League Script'=>[['normal'],['latin']],
505
- 'Leckerli One'=>[['normal'],['latin']],
506
- 'Ledger'=>[['normal'],['cyrillic','latin-ext','latin']],
507
- 'Lekton'=>[['normal','italic','700'],['latin-ext','latin']],
508
- 'Lemon'=>[['normal'],['latin']],
509
- 'Lemonada'=>[['300','normal','500','600','700'],['arabic','latin-ext','latin','vietnamese']],
510
- 'Lexend Deca'=>[['normal'],['latin-ext','latin','vietnamese']],
511
- 'Lexend Exa'=>[['normal'],['latin-ext','latin','vietnamese']],
512
- 'Lexend Giga'=>[['normal'],['latin-ext','latin','vietnamese']],
513
- 'Lexend Mega'=>[['normal'],['latin-ext','latin','vietnamese']],
514
- 'Lexend Peta'=>[['normal'],['latin-ext','latin','vietnamese']],
515
- 'Lexend Tera'=>[['normal'],['latin-ext','latin','vietnamese']],
516
- 'Lexend Zetta'=>[['normal'],['latin-ext','latin','vietnamese']],
517
- 'Libre Barcode 128'=>[['normal'],['latin']],
518
- 'Libre Barcode 128 Text'=>[['normal'],['latin']],
519
- 'Libre Barcode 39'=>[['normal'],['latin']],
520
- 'Libre Barcode 39 Extended'=>[['normal'],['latin']],
521
- 'Libre Barcode 39 Extended Text'=>[['normal'],['latin']],
522
- 'Libre Barcode 39 Text'=>[['normal'],['latin']],
523
- 'Libre Baskerville'=>[['normal','italic','700'],['latin-ext','latin']],
524
- 'Libre Caslon Display'=>[['normal'],['latin-ext','latin']],
525
- 'Libre Caslon Text'=>[['normal','italic','700'],['latin-ext','latin']],
526
- 'Libre Franklin'=>[['100','100italic','200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic','800','800italic','900','900italic'],['latin-ext','latin']],
527
- 'Life Savers'=>[['normal','700','800'],['latin-ext','latin']],
528
- 'Lilita One'=>[['normal'],['latin-ext','latin']],
529
- 'Lily Script One'=>[['normal'],['latin-ext','latin']],
530
- 'Limelight'=>[['normal'],['latin-ext','latin']],
531
- 'Linden Hill'=>[['normal','italic'],['latin']],
532
- 'Literata'=>[['normal','500','600','700','italic','500italic','600italic','700italic'],['cyrillic','greek-ext','latin-ext','greek','latin','vietnamese']],
533
- 'Liu Jian Mao Cao'=>[['normal'],['chinese-simplified','latin']],
534
- 'Livvic'=>[['100','100italic','200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic','900','900italic'],['latin-ext','latin','vietnamese']],
535
- 'Lobster'=>[['normal'],['cyrillic-ext','cyrillic','latin-ext','latin','vietnamese']],
536
- 'Lobster Two'=>[['normal','italic','700','700italic'],['latin']],
537
- 'Londrina Outline'=>[['normal'],['latin']],
538
- 'Londrina Shadow'=>[['normal'],['latin']],
539
- 'Londrina Sketch'=>[['normal'],['latin']],
540
- 'Londrina Solid'=>[['100','300','normal','900'],['latin']],
541
- 'Long Cang'=>[['normal'],['chinese-simplified','latin']],
542
- 'Lora'=>[['normal','italic','700','700italic'],['cyrillic-ext','cyrillic','latin-ext','latin','vietnamese']],
543
- 'Love Ya Like A Sister'=>[['normal'],['latin']],
544
- 'Loved by the King'=>[['normal'],['latin']],
545
- 'Lovers Quarrel'=>[['normal'],['latin-ext','latin']],
546
- 'Luckiest Guy'=>[['normal'],['latin']],
547
- 'Lusitana'=>[['normal','700'],['latin']],
548
- 'Lustria'=>[['normal'],['latin']],
549
- 'M PLUS 1p'=>[['100','300','normal','500','700','800','900'],['cyrillic-ext','cyrillic','greek-ext','latin-ext','hebrew','greek','latin','vietnamese','japanese']],
550
- 'M PLUS Rounded 1c'=>[['100','300','normal','500','700','800','900'],['cyrillic-ext','cyrillic','greek-ext','latin-ext','hebrew','greek','latin','vietnamese','japanese']],
551
- 'Ma Shan Zheng'=>[['normal'],['chinese-simplified','latin']],
552
- 'Macondo'=>[['normal'],['latin']],
553
- 'Macondo Swash Caps'=>[['normal'],['latin']],
554
- 'Mada'=>[['200','300','normal','500','600','700','900'],['arabic','latin']],
555
- 'Magra'=>[['normal','700'],['latin-ext','latin']],
556
- 'Maiden Orange'=>[['normal'],['latin']],
557
- 'Maitree'=>[['200','300','normal','500','600','700'],['latin-ext','latin','thai','vietnamese']],
558
- 'Major Mono Display'=>[['normal'],['latin-ext','latin','vietnamese']],
559
- 'Mako'=>[['normal'],['latin']],
560
- 'Mali'=>[['200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic'],['latin-ext','latin','thai','vietnamese']],
561
- 'Mallanna'=>[['normal'],['telugu','latin']],
562
- 'Mandali'=>[['normal'],['telugu','latin']],
563
- 'Manjari'=>[['100','normal','700'],['malayalam','latin']],
564
- 'Mansalva'=>[['normal'],['latin']],
565
- 'Manuale'=>[['normal','italic','500','500italic','600','600italic','700','700italic'],['latin-ext','latin','vietnamese']],
566
- 'Marcellus'=>[['normal'],['latin-ext','latin']],
567
- 'Marcellus SC'=>[['normal'],['latin-ext','latin']],
568
- 'Marck Script'=>[['normal'],['cyrillic','latin-ext','latin']],
569
- 'Margarine'=>[['normal'],['latin-ext','latin']],
570
- 'Markazi Text'=>[['normal','500','600','700'],['arabic','latin-ext','latin','vietnamese']],
571
- 'Marko One'=>[['normal'],['latin']],
572
- 'Marmelad'=>[['normal'],['cyrillic','latin-ext','latin']],
573
- 'Martel'=>[['200','300','normal','600','700','800','900'],['latin-ext','devanagari','latin']],
574
- 'Martel Sans'=>[['200','300','normal','600','700','800','900'],['latin-ext','devanagari','latin']],
575
- 'Marvel'=>[['normal','italic','700','700italic'],['latin']],
576
- 'Mate'=>[['normal','italic'],['latin']],
577
- 'Mate SC'=>[['normal'],['latin']],
578
- 'Maven Pro'=>[['normal','500','700','900'],['latin-ext','latin','vietnamese']],
579
- 'McLaren'=>[['normal'],['latin-ext','latin']],
580
- 'Meddon'=>[['normal'],['latin']],
581
- 'MedievalSharp'=>[['normal'],['latin-ext','latin']],
582
- 'Medula One'=>[['normal'],['latin']],
583
- 'Meera Inimai'=>[['normal'],['latin','tamil']],
584
- 'Megrim'=>[['normal'],['latin']],
585
- 'Meie Script'=>[['normal'],['latin-ext','latin']],
586
- 'Merienda'=>[['normal','700'],['latin-ext','latin']],
587
- 'Merienda One'=>[['normal'],['latin']],
588
- 'Merriweather'=>[['300','300italic','normal','italic','700','700italic','900','900italic'],['cyrillic-ext','cyrillic','latin-ext','latin','vietnamese']],
589
- 'Merriweather Sans'=>[['300','300italic','normal','italic','700','700italic','800','800italic'],['latin-ext','latin']],
590
- 'Metal'=>[['normal'],['khmer']],
591
- 'Metal Mania'=>[['normal'],['latin-ext','latin']],
592
- 'Metamorphous'=>[['normal'],['latin-ext','latin']],
593
- 'Metrophobic'=>[['normal'],['latin-ext','latin','vietnamese']],
594
- 'Michroma'=>[['normal'],['latin']],
595
- 'Milonga'=>[['normal'],['latin-ext','latin']],
596
- 'Miltonian'=>[['normal'],['latin']],
597
- 'Miltonian Tattoo'=>[['normal'],['latin']],
598
- 'Mina'=>[['normal','700'],['bengali','latin-ext','latin']],
599
- 'Miniver'=>[['normal'],['latin']],
600
- 'Miriam Libre'=>[['normal','700'],['latin-ext','hebrew','latin']],
601
- 'Mirza'=>[['normal','500','600','700'],['arabic','latin-ext','latin']],
602
- 'Miss Fajardose'=>[['normal'],['latin-ext','latin']],
603
- 'Mitr'=>[['200','300','normal','500','600','700'],['latin-ext','latin','thai','vietnamese']],
604
- 'Modak'=>[['normal'],['latin-ext','devanagari','latin']],
605
- 'Modern Antiqua'=>[['normal'],['latin-ext','latin']],
606
- 'Mogra'=>[['normal'],['latin-ext','latin','gujarati']],
607
- 'Molengo'=>[['normal'],['latin-ext','latin']],
608
- 'Molle'=>[['italic'],['latin-ext','latin']],
609
- 'Monda'=>[['normal','700'],['latin-ext','latin']],
610
- 'Monofett'=>[['normal'],['latin']],
611
- 'Monoton'=>[['normal'],['latin']],
612
- 'Monsieur La Doulaise'=>[['normal'],['latin-ext','latin']],
613
- 'Montaga'=>[['normal'],['latin']],
614
- 'Montez'=>[['normal'],['latin']],
615
- 'Montserrat'=>[['100','100italic','200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic','800','800italic','900','900italic'],['cyrillic-ext','cyrillic','latin-ext','latin','vietnamese']],
616
- 'Montserrat Alternates'=>[['100','100italic','200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic','800','800italic','900','900italic'],['cyrillic-ext','cyrillic','latin-ext','latin','vietnamese']],
617
- 'Montserrat Subrayada'=>[['normal','700'],['latin']],
618
- 'Moul'=>[['normal'],['khmer']],
619
- 'Moulpali'=>[['normal'],['khmer']],
620
- 'Mountains of Christmas'=>[['normal','700'],['latin']],
621
- 'Mouse Memoirs'=>[['normal'],['latin-ext','latin']],
622
- 'Mr Bedfort'=>[['normal'],['latin-ext','latin']],
623
- 'Mr Dafoe'=>[['normal'],['latin-ext','latin']],
624
- 'Mr De Haviland'=>[['normal'],['latin-ext','latin']],
625
- 'Mrs Saint Delafield'=>[['normal'],['latin-ext','latin']],
626
- 'Mrs Sheppards'=>[['normal'],['latin-ext','latin']],
627
- 'Mukta'=>[['200','300','normal','500','600','700','800'],['latin-ext','devanagari','latin']],
628
- 'Mukta Mahee'=>[['200','300','normal','500','600','700','800'],['latin-ext','latin','gurmukhi']],
629
- 'Mukta Malar'=>[['200','300','normal','500','600','700','800'],['latin-ext','latin','tamil']],
630
- 'Mukta Vaani'=>[['200','300','normal','500','600','700','800'],['latin-ext','latin','gujarati']],
631
- 'Muli'=>[['200','300','normal','500','600','700','800','900','200italic','300italic','italic','500italic','600italic','700italic','800italic','900italic'],['latin-ext','latin','vietnamese']],
632
- 'Mystery Quest'=>[['normal'],['latin-ext','latin']],
633
- 'NTR'=>[['normal'],['telugu','latin']],
634
- 'Nanum Brush Script'=>[['normal'],['korean','latin']],
635
- 'Nanum Gothic'=>[['normal','700','800'],['korean','latin']],
636
- 'Nanum Gothic Coding'=>[['normal','700'],['korean','latin']],
637
- 'Nanum Myeongjo'=>[['normal','700','800'],['korean','latin']],
638
- 'Nanum Pen Script'=>[['normal'],['korean','latin']],
639
- 'Neucha'=>[['normal'],['cyrillic','latin']],
640
- 'Neuton'=>[['200','300','normal','italic','700','800'],['latin-ext','latin']],
641
- 'New Rocker'=>[['normal'],['latin-ext','latin']],
642
- 'News Cycle'=>[['normal','700'],['latin-ext','latin']],
643
- 'Niconne'=>[['normal'],['latin-ext','latin']],
644
- 'Niramit'=>[['200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic'],['latin-ext','latin','thai','vietnamese']],
645
- 'Nixie One'=>[['normal'],['latin']],
646
- 'Nobile'=>[['normal','italic','500','500italic','700','700italic'],['latin-ext','latin']],
647
- 'Nokora'=>[['normal','700'],['khmer']],
648
- 'Norican'=>[['normal'],['latin-ext','latin']],
649
- 'Nosifer'=>[['normal'],['latin-ext','latin']],
650
- 'Notable'=>[['normal'],['latin']],
651
- 'Nothing You Could Do'=>[['normal'],['latin']],
652
- 'Noticia Text'=>[['normal','italic','700','700italic'],['latin-ext','latin','vietnamese']],
653
- 'Noto Sans'=>[['normal','italic','700','700italic'],['cyrillic-ext','cyrillic','greek-ext','latin-ext','devanagari','greek','latin','vietnamese']],
654
- 'Noto Sans HK'=>[['100','300','normal','500','700','900'],['chinese-hongkong','latin']],
655
- 'Noto Sans JP'=>[['100','300','normal','500','700','900'],['latin','japanese']],
656
- 'Noto Sans KR'=>[['100','300','normal','500','700','900'],['korean','latin']],
657
- 'Noto Sans SC'=>[['100','300','normal','500','700','900'],['cyrillic','chinese-simplified','latin','vietnamese']],
658
- 'Noto Sans TC'=>[['100','300','normal','500','700','900'],['chinese-traditional','latin']],
659
- 'Noto Serif'=>[['normal','italic','700','700italic'],['cyrillic-ext','cyrillic','greek-ext','latin-ext','greek','latin','vietnamese']],
660
- 'Noto Serif JP'=>[['200','300','normal','500','600','700','900'],['latin','japanese']],
661
- 'Noto Serif KR'=>[['200','300','normal','500','600','700','900'],['korean','latin']],
662
- 'Noto Serif SC'=>[['200','300','normal','500','600','700','900'],['cyrillic','chinese-simplified','latin','vietnamese']],
663
- 'Noto Serif TC'=>[['200','300','normal','500','600','700','900'],['cyrillic','chinese-traditional','latin','vietnamese']],
664
- 'Nova Cut'=>[['normal'],['latin']],
665
- 'Nova Flat'=>[['normal'],['latin']],
666
- 'Nova Mono'=>[['normal'],['greek','latin']],
667
- 'Nova Oval'=>[['normal'],['latin']],
668
- 'Nova Round'=>[['normal'],['latin']],
669
- 'Nova Script'=>[['normal'],['latin']],
670
- 'Nova Slim'=>[['normal'],['latin']],
671
- 'Nova Square'=>[['normal'],['latin']],
672
- 'Numans'=>[['normal'],['latin']],
673
- 'Nunito'=>[['200','200italic','300','300italic','normal','italic','600','600italic','700','700italic','800','800italic','900','900italic'],['cyrillic-ext','cyrillic','latin-ext','latin','vietnamese']],
674
- 'Nunito Sans'=>[['200','200italic','300','300italic','normal','italic','600','600italic','700','700italic','800','800italic','900','900italic'],['latin-ext','latin','vietnamese']],
675
- 'Odibee Sans'=>[['normal'],['latin']],
676
- 'Odor Mean Chey'=>[['normal'],['khmer']],
677
- 'Offside'=>[['normal'],['latin']],
678
- 'Old Standard TT'=>[['normal','italic','700'],['cyrillic-ext','cyrillic','latin-ext','latin','vietnamese']],
679
- 'Oldenburg'=>[['normal'],['latin-ext','latin']],
680
- 'Oleo Script'=>[['normal','700'],['latin-ext','latin']],
681
- 'Oleo Script Swash Caps'=>[['normal','700'],['latin-ext','latin']],
682
- 'Open Sans'=>[['300','300italic','normal','italic','600','600italic','700','700italic','800','800italic'],['cyrillic-ext','cyrillic','greek-ext','latin-ext','greek','latin','vietnamese']],
683
- 'Open Sans Condensed'=>[['300','300italic','700'],['cyrillic-ext','cyrillic','greek-ext','latin-ext','greek','latin','vietnamese']],
684
- 'Oranienbaum'=>[['normal'],['cyrillic-ext','cyrillic','latin-ext','latin']],
685
- 'Orbitron'=>[['normal','500','600','700','800','900'],['latin']],
686
- 'Oregano'=>[['normal','italic'],['latin-ext','latin']],
687
- 'Orienta'=>[['normal'],['latin-ext','latin']],
688
- 'Original Surfer'=>[['normal'],['latin']],
689
- 'Oswald'=>[['200','300','normal','500','600','700'],['cyrillic-ext','cyrillic','latin-ext','latin','vietnamese']],
690
- 'Over the Rainbow'=>[['normal'],['latin']],
691
- 'Overlock'=>[['normal','italic','700','700italic','900','900italic'],['latin-ext','latin']],
692
- 'Overlock SC'=>[['normal'],['latin-ext','latin']],
693
- 'Overpass'=>[['100','100italic','200','200italic','300','300italic','normal','italic','600','600italic','700','700italic','800','800italic','900','900italic'],['latin-ext','latin']],
694
- 'Overpass Mono'=>[['300','normal','600','700'],['latin-ext','latin']],
695
- 'Ovo'=>[['normal'],['latin']],
696
- 'Oxygen'=>[['300','normal','700'],['latin-ext','latin']],
697
- 'Oxygen Mono'=>[['normal'],['latin-ext','latin']],
698
- 'PT Mono'=>[['normal'],['cyrillic-ext','cyrillic','latin-ext','latin']],
699
- 'PT Sans'=>[['normal','italic','700','700italic'],['cyrillic-ext','cyrillic','latin-ext','latin']],
700
- 'PT Sans Caption'=>[['normal','700'],['cyrillic-ext','cyrillic','latin-ext','latin']],
701
- 'PT Sans Narrow'=>[['normal','700'],['cyrillic-ext','cyrillic','latin-ext','latin']],
702
- 'PT Serif'=>[['normal','italic','700','700italic'],['cyrillic-ext','cyrillic','latin-ext','latin']],
703
- 'PT Serif Caption'=>[['normal','italic'],['cyrillic-ext','cyrillic','latin-ext','latin']],
704
- 'Pacifico'=>[['normal'],['cyrillic-ext','cyrillic','latin-ext','latin','vietnamese']],
705
- 'Padauk'=>[['normal','700'],['myanmar','latin']],
706
- 'Palanquin'=>[['100','200','300','normal','500','600','700'],['latin-ext','devanagari','latin']],
707
- 'Palanquin Dark'=>[['normal','500','600','700'],['latin-ext','devanagari','latin']],
708
- 'Pangolin'=>[['normal'],['cyrillic-ext','cyrillic','latin-ext','latin','vietnamese']],
709
- 'Paprika'=>[['normal'],['latin']],
710
- 'Parisienne'=>[['normal'],['latin-ext','latin']],
711
- 'Passero One'=>[['normal'],['latin-ext','latin']],
712
- 'Passion One'=>[['normal','700','900'],['latin-ext','latin']],
713
- 'Pathway Gothic One'=>[['normal'],['latin-ext','latin']],
714
- 'Patrick Hand'=>[['normal'],['latin-ext','latin','vietnamese']],
715
- 'Patrick Hand SC'=>[['normal'],['latin-ext','latin','vietnamese']],
716
- 'Pattaya'=>[['normal'],['cyrillic','latin-ext','latin','thai','vietnamese']],
717
- 'Patua One'=>[['normal'],['latin']],
718
- 'Pavanam'=>[['normal'],['latin-ext','latin','tamil']],
719
- 'Paytone One'=>[['normal'],['latin-ext','latin','vietnamese']],
720
- 'Peddana'=>[['normal'],['telugu','latin']],
721
- 'Peralta'=>[['normal'],['latin-ext','latin']],
722
- 'Permanent Marker'=>[['normal'],['latin']],
723
- 'Petit Formal Script'=>[['normal'],['latin-ext','latin']],
724
- 'Petrona'=>[['normal'],['latin']],
725
- 'Philosopher'=>[['normal','italic','700','700italic'],['cyrillic-ext','cyrillic','latin','vietnamese']],
726
- 'Piedra'=>[['normal'],['latin-ext','latin']],
727
- 'Pinyon Script'=>[['normal'],['latin']],
728
- 'Pirata One'=>[['normal'],['latin-ext','latin']],
729
- 'Plaster'=>[['normal'],['latin-ext','latin']],
730
- 'Play'=>[['normal','700'],['cyrillic-ext','cyrillic','latin-ext','greek','latin','vietnamese']],
731
- 'Playball'=>[['normal'],['latin-ext','latin']],
732
- 'Playfair Display'=>[['normal','italic','700','700italic','900','900italic'],['cyrillic','latin-ext','latin','vietnamese']],
733
- 'Playfair Display SC'=>[['normal','italic','700','700italic','900','900italic'],['cyrillic','latin-ext','latin','vietnamese']],
734
- 'Podkova'=>[['normal','500','600','700','800'],['cyrillic-ext','cyrillic','latin-ext','latin','vietnamese']],
735
- 'Poiret One'=>[['normal'],['cyrillic','latin-ext','latin']],
736
- 'Poller One'=>[['normal'],['latin']],
737
- 'Poly'=>[['normal','italic'],['latin']],
738
- 'Pompiere'=>[['normal'],['latin']],
739
- 'Pontano Sans'=>[['normal'],['latin-ext','latin']],
740
- 'Poor Story'=>[['normal'],['korean','latin']],
741
- 'Poppins'=>[['100','100italic','200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic','800','800italic','900','900italic'],['latin-ext','devanagari','latin']],
742
- 'Port Lligat Sans'=>[['normal'],['latin']],
743
- 'Port Lligat Slab'=>[['normal'],['latin']],
744
- 'Pragati Narrow'=>[['normal','700'],['latin-ext','devanagari','latin']],
745
- 'Prata'=>[['normal'],['cyrillic-ext','cyrillic','latin','vietnamese']],
746
- 'Preahvihear'=>[['normal'],['khmer']],
747
- 'Press Start 2P'=>[['normal'],['cyrillic-ext','cyrillic','latin-ext','greek','latin']],
748
- 'Pridi'=>[['200','300','normal','500','600','700'],['latin-ext','latin','thai','vietnamese']],
749
- 'Princess Sofia'=>[['normal'],['latin-ext','latin']],
750
- 'Prociono'=>[['normal'],['latin']],
751
- 'Prompt'=>[['100','100italic','200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic','800','800italic','900','900italic'],['latin-ext','latin','thai','vietnamese']],
752
- 'Prosto One'=>[['normal'],['cyrillic','latin-ext','latin']],
753
- 'Proza Libre'=>[['normal','italic','500','500italic','600','600italic','700','700italic','800','800italic'],['latin-ext','latin']],
754
- 'Public Sans'=>[['100','200','300','normal','500','600','700','800','900','100italic','200italic','300italic','italic','500italic','600italic','700italic','800italic','900italic'],['latin-ext','latin']],
755
- 'Puritan'=>[['normal','italic','700','700italic'],['latin']],
756
- 'Purple Purse'=>[['normal'],['latin-ext','latin']],
757
- 'Quando'=>[['normal'],['latin-ext','latin']],
758
- 'Quantico'=>[['normal','italic','700','700italic'],['latin']],
759
- 'Quattrocento'=>[['normal','700'],['latin-ext','latin']],
760
- 'Quattrocento Sans'=>[['normal','italic','700','700italic'],['latin-ext','latin']],
761
- 'Questrial'=>[['normal'],['latin']],
762
- 'Quicksand'=>[['300','normal','500','600','700'],['latin-ext','latin','vietnamese']],
763
- 'Quintessential'=>[['normal'],['latin-ext','latin']],
764
- 'Qwigley'=>[['normal'],['latin-ext','latin']],
765
- 'Racing Sans One'=>[['normal'],['latin-ext','latin']],
766
- 'Radley'=>[['normal','italic'],['latin-ext','latin']],
767
- 'Rajdhani'=>[['300','normal','500','600','700'],['latin-ext','devanagari','latin']],
768
- 'Rakkas'=>[['normal'],['arabic','latin-ext','latin']],
769
- 'Raleway'=>[['100','100italic','200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic','800','800italic','900','900italic'],['latin-ext','latin']],
770
- 'Raleway Dots'=>[['normal'],['latin-ext','latin']],
771
- 'Ramabhadra'=>[['normal'],['telugu','latin']],
772
- 'Ramaraja'=>[['normal'],['telugu','latin']],
773
- 'Rambla'=>[['normal','italic','700','700italic'],['latin-ext','latin']],
774
- 'Rammetto One'=>[['normal'],['latin-ext','latin']],
775
- 'Ranchers'=>[['normal'],['latin-ext','latin']],
776
- 'Rancho'=>[['normal'],['latin']],
777
- 'Ranga'=>[['normal','700'],['latin-ext','devanagari','latin']],
778
- 'Rasa'=>[['300','normal','500','600','700'],['latin-ext','latin','gujarati']],
779
- 'Rationale'=>[['normal'],['latin']],
780
- 'Ravi Prakash'=>[['normal'],['telugu','latin']],
781
- 'Red Hat Display'=>[['normal','italic','500','500italic','700','700italic','900','900italic'],['latin-ext','latin']],
782
- 'Red Hat Text'=>[['normal','italic','500','500italic','700','700italic'],['latin-ext','latin']],
783
- 'Redressed'=>[['normal'],['latin']],
784
- 'Reem Kufi'=>[['normal'],['arabic','latin']],
785
- 'Reenie Beanie'=>[['normal'],['latin']],
786
- 'Revalia'=>[['normal'],['latin-ext','latin']],
787
- 'Rhodium Libre'=>[['normal'],['latin-ext','devanagari','latin']],
788
- 'Ribeye'=>[['normal'],['latin-ext','latin']],
789
- 'Ribeye Marrow'=>[['normal'],['latin-ext','latin']],
790
- 'Righteous'=>[['normal'],['latin-ext','latin']],
791
- 'Risque'=>[['normal'],['latin-ext','latin']],
792
- 'Roboto'=>[['100','100italic','300','300italic','normal','italic','500','500italic','700','700italic','900','900italic'],['cyrillic-ext','cyrillic','greek-ext','latin-ext','greek','latin','vietnamese']],
793
- 'Roboto Condensed'=>[['300','300italic','normal','italic','700','700italic'],['cyrillic-ext','cyrillic','greek-ext','latin-ext','greek','latin','vietnamese']],
794
- 'Roboto Mono'=>[['100','100italic','300','300italic','normal','italic','500','500italic','700','700italic'],['cyrillic-ext','cyrillic','greek-ext','latin-ext','greek','latin','vietnamese']],
795
- 'Roboto Slab'=>[['100','200','300','normal','500','600','700','800','900'],['cyrillic-ext','cyrillic','greek-ext','latin-ext','greek','latin','vietnamese']],
796
- 'Rochester'=>[['normal'],['latin']],
797
- 'Rock Salt'=>[['normal'],['latin']],
798
- 'Rokkitt'=>[['100','200','300','normal','500','600','700','800','900'],['latin-ext','latin','vietnamese']],
799
- 'Romanesco'=>[['normal'],['latin-ext','latin']],
800
- 'Ropa Sans'=>[['normal','italic'],['latin-ext','latin']],
801
- 'Rosario'=>[['300','normal','500','600','700','300italic','italic','500italic','600italic','700italic'],['latin-ext','latin','vietnamese']],
802
- 'Rosarivo'=>[['normal','italic'],['latin-ext','latin']],
803
- 'Rouge Script'=>[['normal'],['latin']],
804
- 'Rozha One'=>[['normal'],['latin-ext','devanagari','latin']],
805
- 'Rubik'=>[['300','300italic','normal','italic','500','500italic','700','700italic','900','900italic'],['cyrillic','latin-ext','hebrew','latin']],
806
- 'Rubik Mono One'=>[['normal'],['cyrillic','latin-ext','latin']],
807
- 'Ruda'=>[['normal','700','900'],['latin-ext','latin']],
808
- 'Rufina'=>[['normal','700'],['latin-ext','latin']],
809
- 'Ruge Boogie'=>[['normal'],['latin-ext','latin']],
810
- 'Ruluko'=>[['normal'],['latin-ext','latin']],
811
- 'Rum Raisin'=>[['normal'],['latin-ext','latin']],
812
- 'Ruslan Display'=>[['normal'],['cyrillic','latin-ext','latin']],
813
- 'Russo One'=>[['normal'],['cyrillic','latin-ext','latin']],
814
- 'Ruthie'=>[['normal'],['latin-ext','latin']],
815
- 'Rye'=>[['normal'],['latin-ext','latin']],
816
- 'Sacramento'=>[['normal'],['latin-ext','latin']],
817
- 'Sahitya'=>[['normal','700'],['devanagari','latin']],
818
- 'Sail'=>[['normal'],['latin-ext','latin']],
819
- 'Saira'=>[['100','200','300','normal','500','600','700','800','900'],['latin-ext','latin','vietnamese']],
820
- 'Saira Condensed'=>[['100','200','300','normal','500','600','700','800','900'],['latin-ext','latin','vietnamese']],
821
- 'Saira Extra Condensed'=>[['100','200','300','normal','500','600','700','800','900'],['latin-ext','latin','vietnamese']],
822
- 'Saira Semi Condensed'=>[['100','200','300','normal','500','600','700','800','900'],['latin-ext','latin','vietnamese']],
823
- 'Saira Stencil One'=>[['normal'],['latin-ext','latin','vietnamese']],
824
- 'Salsa'=>[['normal'],['latin']],
825
- 'Sanchez'=>[['normal','italic'],['latin-ext','latin']],
826
- 'Sancreek'=>[['normal'],['latin-ext','latin']],
827
- 'Sansita'=>[['normal','italic','700','700italic','800','800italic','900','900italic'],['latin-ext','latin']],
828
- 'Sarabun'=>[['100','100italic','200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic','800','800italic'],['latin-ext','latin','thai','vietnamese']],
829
- 'Sarala'=>[['normal','700'],['latin-ext','devanagari','latin']],
830
- 'Sarina'=>[['normal'],['latin-ext','latin']],
831
- 'Sarpanch'=>[['normal','500','600','700','800','900'],['latin-ext','devanagari','latin']],
832
- 'Satisfy'=>[['normal'],['latin']],
833
- 'Sawarabi Gothic'=>[['normal'],['cyrillic','latin-ext','latin','vietnamese','japanese']],
834
- 'Sawarabi Mincho'=>[['normal'],['latin-ext','latin','japanese']],
835
- 'Scada'=>[['normal','italic','700','700italic'],['cyrillic-ext','cyrillic','latin-ext','latin']],
836
- 'Scheherazade'=>[['normal','700'],['arabic','latin']],
837
- 'Schoolbell'=>[['normal'],['latin']],
838
- 'Scope One'=>[['normal'],['latin-ext','latin']],
839
- 'Seaweed Script'=>[['normal'],['latin-ext','latin']],
840
- 'Secular One'=>[['normal'],['latin-ext','hebrew','latin']],
841
- 'Sedgwick Ave'=>[['normal'],['latin-ext','latin','vietnamese']],
842
- 'Sedgwick Ave Display'=>[['normal'],['latin-ext','latin','vietnamese']],
843
- 'Sevillana'=>[['normal'],['latin-ext','latin']],
844
- 'Seymour One'=>[['normal'],['cyrillic','latin-ext','latin']],
845
- 'Shadows Into Light'=>[['normal'],['latin']],
846
- 'Shadows Into Light Two'=>[['normal'],['latin-ext','latin']],
847
- 'Shanti'=>[['normal'],['latin']],
848
- 'Share'=>[['normal','italic','700','700italic'],['latin-ext','latin']],
849
- 'Share Tech'=>[['normal'],['latin']],
850
- 'Share Tech Mono'=>[['normal'],['latin']],
851
- 'Shojumaru'=>[['normal'],['latin-ext','latin']],
852
- 'Short Stack'=>[['normal'],['latin']],
853
- 'Shrikhand'=>[['normal'],['latin-ext','latin','gujarati']],
854
- 'Siemreap'=>[['normal'],['khmer']],
855
- 'Sigmar One'=>[['normal'],['latin-ext','latin','vietnamese']],
856
- 'Signika'=>[['300','normal','600','700'],['latin-ext','latin']],
857
- 'Signika Negative'=>[['300','normal','600','700'],['latin-ext','latin']],
858
- 'Simonetta'=>[['normal','italic','900','900italic'],['latin-ext','latin']],
859
- 'Single Day'=>[['normal'],['korean']],
860
- 'Sintony'=>[['normal','700'],['latin-ext','latin']],
861
- 'Sirin Stencil'=>[['normal'],['latin']],
862
- 'Six Caps'=>[['normal'],['latin']],
863
- 'Skranji'=>[['normal','700'],['latin-ext','latin']],
864
- 'Slabo 13px'=>[['normal'],['latin-ext','latin']],
865
- 'Slabo 27px'=>[['normal'],['latin-ext','latin']],
866
- 'Slackey'=>[['normal'],['latin']],
867
- 'Smokum'=>[['normal'],['latin']],
868
- 'Smythe'=>[['normal'],['latin']],
869
- 'Sniglet'=>[['normal','800'],['latin-ext','latin']],
870
- 'Snippet'=>[['normal'],['latin']],
871
- 'Snowburst One'=>[['normal'],['latin-ext','latin']],
872
- 'Sofadi One'=>[['normal'],['latin']],
873
- 'Sofia'=>[['normal'],['latin']],
874
- 'Solway'=>[['300','normal','500','700','800'],['latin']],
875
- 'Song Myung'=>[['normal'],['korean','latin']],
876
- 'Sonsie One'=>[['normal'],['latin-ext','latin']],
877
- 'Sorts Mill Goudy'=>[['normal','italic'],['latin-ext','latin']],
878
- 'Source Code Pro'=>[['200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic','900','900italic'],['cyrillic-ext','cyrillic','latin-ext','greek','latin','vietnamese']],
879
- 'Source Sans Pro'=>[['200','200italic','300','300italic','normal','italic','600','600italic','700','700italic','900','900italic'],['cyrillic-ext','cyrillic','greek-ext','latin-ext','greek','latin','vietnamese']],
880
- 'Source Serif Pro'=>[['normal','600','700'],['latin-ext','latin']],
881
- 'Space Mono'=>[['normal','italic','700','700italic'],['latin-ext','latin','vietnamese']],
882
- 'Special Elite'=>[['normal'],['latin']],
883
- 'Spectral'=>[['200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic','800','800italic'],['cyrillic','latin-ext','latin','vietnamese']],
884
- 'Spectral SC'=>[['200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic','800','800italic'],['cyrillic','latin-ext','latin','vietnamese']],
885
- 'Spicy Rice'=>[['normal'],['latin']],
886
- 'Spinnaker'=>[['normal'],['latin-ext','latin']],
887
- 'Spirax'=>[['normal'],['latin']],
888
- 'Squada One'=>[['normal'],['latin']],
889
- 'Sree Krushnadevaraya'=>[['normal'],['telugu','latin']],
890
- 'Sriracha'=>[['normal'],['latin-ext','latin','thai','vietnamese']],
891
- 'Srisakdi'=>[['normal','700'],['latin-ext','latin','thai','vietnamese']],
892
- 'Staatliches'=>[['normal'],['latin-ext','latin']],
893
- 'Stalemate'=>[['normal'],['latin-ext','latin']],
894
- 'Stalinist One'=>[['normal'],['cyrillic','latin-ext','latin']],
895
- 'Stardos Stencil'=>[['normal','700'],['latin']],
896
- 'Stint Ultra Condensed'=>[['normal'],['latin-ext','latin']],
897
- 'Stint Ultra Expanded'=>[['normal'],['latin-ext','latin']],
898
- 'Stoke'=>[['300','normal'],['latin-ext','latin']],
899
- 'Strait'=>[['normal'],['latin']],
900
- 'Stylish'=>[['normal'],['korean','latin']],
901
- 'Sue Ellen Francisco'=>[['normal'],['latin']],
902
- 'Suez One'=>[['normal'],['latin-ext','hebrew','latin']],
903
- 'Sulphur Point'=>[['300','normal','700'],['latin-ext','latin']],
904
- 'Sumana'=>[['normal','700'],['latin-ext','devanagari','latin']],
905
- 'Sunflower'=>[['300','500','700'],['korean','latin']],
906
- 'Sunshiney'=>[['normal'],['latin']],
907
- 'Supermercado One'=>[['normal'],['latin']],
908
- 'Sura'=>[['normal','700'],['latin-ext','devanagari','latin']],
909
- 'Suranna'=>[['normal'],['telugu','latin']],
910
- 'Suravaram'=>[['normal'],['telugu','latin']],
911
- 'Suwannaphum'=>[['normal'],['khmer']],
912
- 'Swanky and Moo Moo'=>[['normal'],['latin']],
913
- 'Syncopate'=>[['normal','700'],['latin']],
914
- 'Tajawal'=>[['200','300','normal','500','700','800','900'],['arabic','latin']],
915
- 'Tangerine'=>[['normal','700'],['latin']],
916
- 'Taprom'=>[['normal'],['khmer']],
917
- 'Tauri'=>[['normal'],['latin-ext','latin']],
918
- 'Taviraj'=>[['100','100italic','200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic','800','800italic','900','900italic'],['latin-ext','latin','thai','vietnamese']],
919
- 'Teko'=>[['300','normal','500','600','700'],['latin-ext','devanagari','latin']],
920
- 'Telex'=>[['normal'],['latin-ext','latin']],
921
- 'Tenali Ramakrishna'=>[['normal'],['telugu','latin']],
922
- 'Tenor Sans'=>[['normal'],['cyrillic','latin-ext','latin']],
923
- 'Text Me One'=>[['normal'],['latin-ext','latin']],
924
- 'Thasadith'=>[['normal','italic','700','700italic'],['latin-ext','latin','thai','vietnamese']],
925
- 'The Girl Next Door'=>[['normal'],['latin']],
926
- 'Tienne'=>[['normal','700','900'],['latin']],
927
- 'Tillana'=>[['normal','500','600','700','800'],['latin-ext','devanagari','latin']],
928
- 'Timmana'=>[['normal'],['telugu','latin']],
929
- 'Tinos'=>[['normal','italic','700','700italic'],['cyrillic-ext','cyrillic','greek-ext','latin-ext','hebrew','greek','latin','vietnamese']],
930
- 'Titan One'=>[['normal'],['latin-ext','latin']],
931
- 'Titillium Web'=>[['200','200italic','300','300italic','normal','italic','600','600italic','700','700italic','900'],['latin-ext','latin']],
932
- 'Tomorrow'=>[['100','100italic','200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic','800','800italic','900','900italic'],['latin-ext','latin']],
933
- 'Trade Winds'=>[['normal'],['latin']],
934
- 'Trirong'=>[['100','100italic','200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic','800','800italic','900','900italic'],['latin-ext','latin','thai','vietnamese']],
935
- 'Trocchi'=>[['normal'],['latin-ext','latin']],
936
- 'Trochut'=>[['normal','italic','700'],['latin']],
937
- 'Trykker'=>[['normal'],['latin-ext','latin']],
938
- 'Tulpen One'=>[['normal'],['latin']],
939
- 'Turret Road'=>[['200','300','normal','500','700','800'],['latin-ext','latin']],
940
- 'Ubuntu'=>[['300','300italic','normal','italic','500','500italic','700','700italic'],['cyrillic-ext','cyrillic','greek-ext','latin-ext','greek','latin']],
941
- 'Ubuntu Condensed'=>[['normal'],['cyrillic-ext','cyrillic','greek-ext','latin-ext','greek','latin']],
942
- 'Ubuntu Mono'=>[['normal','italic','700','700italic'],['cyrillic-ext','cyrillic','greek-ext','latin-ext','greek','latin']],
943
- 'Ultra'=>[['normal'],['latin']],
944
- 'Uncial Antiqua'=>[['normal'],['latin']],
945
- 'Underdog'=>[['normal'],['cyrillic','latin-ext','latin']],
946
- 'Unica One'=>[['normal'],['latin-ext','latin']],
947
- 'UnifrakturCook'=>[['700'],['latin']],
948
- 'UnifrakturMaguntia'=>[['normal'],['latin']],
949
- 'Unkempt'=>[['normal','700'],['latin']],
950
- 'Unlock'=>[['normal'],['latin']],
951
- 'Unna'=>[['normal','italic','700','700italic'],['latin-ext','latin']],
952
- 'VT323'=>[['normal'],['latin-ext','latin','vietnamese']],
953
- 'Vampiro One'=>[['normal'],['latin-ext','latin']],
954
- 'Varela'=>[['normal'],['latin-ext','latin']],
955
- 'Varela Round'=>[['normal'],['latin-ext','hebrew','latin','vietnamese']],
956
- 'Vast Shadow'=>[['normal'],['latin']],
957
- 'Vesper Libre'=>[['normal','500','700','900'],['latin-ext','devanagari','latin']],
958
- 'Vibes'=>[['normal'],['arabic','latin']],
959
- 'Vibur'=>[['normal'],['latin']],
960
- 'Vidaloka'=>[['normal'],['latin']],
961
- 'Viga'=>[['normal'],['latin-ext','latin']],
962
- 'Voces'=>[['normal'],['latin-ext','latin']],
963
- 'Volkhov'=>[['normal','italic','700','700italic'],['latin']],
964
- 'Vollkorn'=>[['normal','italic','600','600italic','700','700italic','900','900italic'],['cyrillic-ext','cyrillic','latin-ext','greek','latin','vietnamese']],
965
- 'Vollkorn SC'=>[['normal','600','700','900'],['cyrillic-ext','cyrillic','latin-ext','latin','vietnamese']],
966
- 'Voltaire'=>[['normal'],['latin']],
967
- 'Waiting for the Sunrise'=>[['normal'],['latin']],
968
- 'Wallpoet'=>[['normal'],['latin']],
969
- 'Walter Turncoat'=>[['normal'],['latin']],
970
- 'Warnes'=>[['normal'],['latin-ext','latin']],
971
- 'Wellfleet'=>[['normal'],['latin-ext','latin']],
972
- 'Wendy One'=>[['normal'],['latin-ext','latin']],
973
- 'Wire One'=>[['normal'],['latin']],
974
- 'Work Sans'=>[['100','200','300','normal','500','600','700','800','900'],['latin-ext','latin']],
975
- 'Yanone Kaffeesatz'=>[['200','300','normal','700'],['cyrillic','latin-ext','latin','vietnamese']],
976
- 'Yantramanav'=>[['100','300','normal','500','700','900'],['latin-ext','devanagari','latin']],
977
- 'Yatra One'=>[['normal'],['latin-ext','devanagari','latin']],
978
- 'Yellowtail'=>[['normal'],['latin']],
979
- 'Yeon Sung'=>[['normal'],['korean','latin']],
980
- 'Yeseva One'=>[['normal'],['cyrillic-ext','cyrillic','latin-ext','latin','vietnamese']],
981
- 'Yesteryear'=>[['normal'],['latin']],
982
- 'Yrsa'=>[['300','normal','500','600','700'],['latin-ext','latin']],
983
- 'ZCOOL KuaiLe'=>[['normal'],['chinese-simplified','latin']],
984
- 'ZCOOL QingKe HuangYou'=>[['normal'],['chinese-simplified','latin']],
985
- 'ZCOOL XiaoWei'=>[['normal'],['chinese-simplified','latin']],
986
- 'Zeyada'=>[['normal'],['latin']],
987
- 'Zhi Mang Xing'=>[['normal'],['chinese-simplified','latin']],
988
- 'Zilla Slab'=>[['300','300italic','normal','italic','500','500italic','600','600italic','700','700italic'],['latin-ext','latin']],
989
- 'Zilla Slab Highlight'=>[['normal','700'],['latin-ext','latin']]
990
- ];
991
- }
992
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
admin/views/framework/fields/typography/typography.php CHANGED
@@ -21,14 +21,12 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Field_typography' ) ) {
21
  * @version 1.0.0
22
  */
23
  class SPFTESTIMONIAL_Field_typography extends SPFTESTIMONIAL_Fields {
24
-
25
  /**
26
  * Chosen
27
  *
28
  * @var bool
29
  */
30
  public $chosen = false;
31
-
32
  /**
33
  * Value
34
  *
@@ -80,16 +78,28 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Field_typography' ) ) {
80
  'word_spacing' => false,
81
  'text_decoration' => false,
82
  'custom_style' => false,
 
 
 
83
  'margin_top' => false,
84
  'margin_right' => false,
85
  'margin_bottom' => false,
86
  'margin-left' => false,
87
- 'exclude' => '',
88
- 'unit' => 'px',
89
  'preview_text' => 'The quick brown fox jumps over the lazy dog',
90
  )
91
  );
92
 
 
 
 
 
 
 
 
 
 
 
93
  $default_value = array(
94
  'font-family' => '',
95
  'font-weight' => '',
@@ -108,14 +118,19 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Field_typography' ) ) {
108
  'type' => '',
109
  'subset' => '',
110
  'extra-styles' => array(),
 
 
 
 
111
  );
112
 
113
- $default_value = ( ! empty( $this->field['default'] ) ) ? wp_parse_args( $this->field['default'], $default_value ) : $default_value;
114
- $this->value = wp_parse_args( $this->value, $default_value );
115
- $this->chosen = $args['chosen'];
116
- $chosen_class = ( $this->chosen ) ? ' spftestimonial--chosen' : '';
 
117
 
118
- echo '<div class="spftestimonial--typography' . esc_attr( $chosen_class ) . '" data-unit="' . esc_attr( $args['unit'] ) . '" data-exclude="' . esc_attr( $args['exclude'] ) . '">';
119
 
120
  echo '<div class="spftestimonial--blocks spftestimonial--blocks-selects">';
121
 
@@ -159,14 +174,16 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Field_typography' ) ) {
159
  echo '</div>';
160
  }
161
 
 
162
  // Font Style and Extra Style Select.
163
  if ( ! empty( $args['font_weight'] ) || ! empty( $args['font_style'] ) ) {
164
 
 
165
  // Font Style Select.
166
  echo '<div class="spftestimonial--block spftestimonial--block-font-style hidden">';
167
  echo '<div class="spftestimonial--title">' . esc_html__( 'Font Style', 'testimonial-free' ) . '</div>';
168
  echo '<select class="spftestimonial--font-style-select" data-placeholder="Default">';
169
- echo wp_kses_post( '<option value="">' . ( ! $this->chosen ? esc_html__( 'Default', 'testimonial-free' ) : '' ) . '</option>' );
170
  if ( ! empty( $this->value['font-weight'] ) || ! empty( $this->value['font-style'] ) ) {
171
  echo '<option value="' . esc_attr( strtolower( $this->value['font-weight'] . $this->value['font-style'] ) ) . '" selected></option>';
172
  }
@@ -189,6 +206,7 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Field_typography' ) ) {
189
 
190
  }
191
 
 
192
  // Subset.
193
  if ( ! empty( $args['subset'] ) ) {
194
  echo '<div class="spftestimonial--block spftestimonial--block-subset hidden">';
@@ -199,6 +217,7 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Field_typography' ) ) {
199
  echo '</div>';
200
  }
201
 
 
202
  // Text Align.
203
  if ( ! empty( $args['text_align'] ) ) {
204
  echo '<div class="spftestimonial--block">';
@@ -219,6 +238,7 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Field_typography' ) ) {
219
  echo '</div>';
220
  }
221
 
 
222
  // Font Variant.
223
  if ( ! empty( $args['font_variant'] ) ) {
224
  echo '<div class="spftestimonial--block">';
@@ -236,6 +256,7 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Field_typography' ) ) {
236
  echo '</div>';
237
  }
238
 
 
239
  // Text Transform.
240
  if ( ! empty( $args['text_transform'] ) ) {
241
  echo '<div class="spftestimonial--block">';
@@ -254,6 +275,7 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Field_typography' ) ) {
254
  echo '</div>';
255
  }
256
 
 
257
  // Text Decoration.
258
  if ( ! empty( $args['text_decoration'] ) ) {
259
  echo '<div class="spftestimonial--block">';
@@ -280,132 +302,143 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Field_typography' ) ) {
280
 
281
  echo '<div class="spftestimonial--blocks spftestimonial--blocks-inputs">';
282
 
 
283
  // Font Size.
284
  if ( ! empty( $args['font_size'] ) ) {
285
  echo '<div class="spftestimonial--block">';
286
  echo '<div class="spftestimonial--title">' . esc_html__( 'Font Size', 'testimonial-free' ) . '</div>';
287
- echo '<div class="spftestimonial--blocks spftestimonial--input-area">';
288
- echo '<div class="spftestimonial--block"> <input type="number" name="' . esc_attr( $this->field_name( '[font-size]' ) ) . '" class="spftestimonial--font-size spftestimonial--input spftestimonial-input-number" value="' . esc_attr( $this->value['font-size'] ) . '" /></div>';
289
- echo '<span class="spftestimonial--block spftestimonial--unit">' . esc_html( $args['unit'] ) . '</span>';
290
  echo '</div>';
291
  echo '</div>';
292
  }
293
 
 
294
  // Line Height.
295
  if ( ! empty( $args['line_height'] ) ) {
296
  echo '<div class="spftestimonial--block">';
297
  echo '<div class="spftestimonial--title">' . esc_html__( 'Line Height', 'testimonial-free' ) . '</div>';
298
- echo '<div class="spftestimonial--blocks spftestimonial--input-area">';
299
- echo '<div class="spftestimonial--block"> <input type="number" name="' . esc_attr( $this->field_name( '[line-height]' ) ) . '" class="spftestimonial--line-height spftestimonial--input spftestimonial-input-number" value="' . esc_attr( $this->value['line-height'] ) . '" /></div>';
300
- echo '<span class="spftestimonial--block spftestimonial--unit">' . esc_html( $args['unit'] ) . '</span>';
301
  echo '</div>';
302
  echo '</div>';
303
  }
304
 
 
305
  // Letter Spacing.
306
  if ( ! empty( $args['letter_spacing'] ) ) {
307
  echo '<div class="spftestimonial--block">';
308
  echo '<div class="spftestimonial--title">' . esc_html__( 'Letter Spacing', 'testimonial-free' ) . '</div>';
309
- echo '<div class="spftestimonial--blocks spftestimonial--input-area">';
310
- echo '<div class="spftestimonial--block"> <input type="number" name="' . esc_attr( $this->field_name( '[letter-spacing]' ) ) . '" class="spftestimonial--letter-spacing spftestimonial--input spftestimonial-input-number" value="' . esc_attr( $this->value['letter-spacing'] ) . '" /></div>';
311
- echo '<span class="spftestimonial--block spftestimonial--unit">' . esc_html( $args['unit'] ) . '</span>';
312
  echo '</div>';
313
  echo '</div>';
314
  }
315
 
 
316
  // Word Spacing.
317
  if ( ! empty( $args['word_spacing'] ) ) {
318
  echo '<div class="spftestimonial--block">';
319
  echo '<div class="spftestimonial--title">' . esc_html__( 'Word Spacing', 'testimonial-free' ) . '</div>';
320
- echo '<div class="spftestimonial--blocks spftestimonial--input-area">';
321
- echo '<div class="spftestimonial--block"><input type="number" name="' . esc_attr( $this->field_name( '[word-spacing]' ) ) . '" class="spftestimonial--word-spacing spftestimonial--input spftestimonial-input-number" value="' . esc_attr( $this->value['word-spacing'] ) . '" /></div>';
322
- echo '<span class="spftestimonial--block spftestimonial--unit">' . esc_html( $args['unit'] ) . '</span>';
323
  echo '</div>';
324
  echo '</div>';
325
  }
 
326
  // Margin Top.
327
  if ( ! empty( $args['margin_top'] ) ) {
328
  echo '<div class="spftestimonial--block">';
329
  echo '<div class="spftestimonial--title">' . esc_html__( 'Margin Top', 'testimonial-free' ) . '</div>';
330
- echo '<div class="spftestimonial--blocks spftestimonial--input-area">';
331
- echo '<div class="spftestimonial--block"><input type="number" name="' . esc_attr( $this->field_name( '[margin-top]' ) ) . '" class="spftestimonial--margin-top spftestimonial--input spftestimonial-number" value="' . esc_attr( $this->value['margin-top'] ) . '" /></div>';
332
- echo '<div class="spftestimonial--block spftestimonial--unit">' . esc_html( $args['unit'] ) . '</div>';
333
  echo '</div>';
334
  echo '</div>';
335
  }
336
 
 
337
  // Margin Right.
338
  if ( ! empty( $args['margin_right'] ) ) {
339
  echo '<div class="spftestimonial--block">';
340
  echo '<div class="spftestimonial--title">' . esc_html__( 'Margin Right', 'testimonial-free' ) . '</div>';
341
- echo '<div class="spftestimonial--blocks spftestimonial--input-area">';
342
- echo '<div class="spftestimonial--block"><input type="number" name="' . esc_attr( $this->field_name( '[margin-right]' ) ) . '" class="spftestimonial--margin-right spftestimonial--input spftestimonial-number" value="' . esc_attr( $this->value['margin-right'] ) . '" /></div>';
343
- echo '<div class="spftestimonial--block spftestimonial--unit">' . esc_html( $args['unit'] ) . '</div>';
344
  echo '</div>';
345
  echo '</div>';
346
  }
347
 
 
348
  // Margin Bottom.
349
  if ( ! empty( $args['margin_bottom'] ) ) {
350
  echo '<div class="spftestimonial--block">';
351
  echo '<div class="spftestimonial--title">' . esc_html__( 'Margin Bottom', 'testimonial-free' ) . '</div>';
352
- echo '<div class="spftestimonial--blocks spftestimonial--input-area">';
353
- echo '<div class="spftestimonial--block"><input type="number" name="' . esc_attr( $this->field_name( '[margin-bottom]' ) ) . '" class="spftestimonial--margin-bottom spftestimonial--input spftestimonial-number" value="' . esc_attr( $this->value['margin-bottom'] ) . '" /></div>';
354
- echo '<div class="spftestimonial--block spftestimonial--unit">' . esc_html( $args['unit'] ) . '</div>';
355
  echo '</div>';
356
  echo '</div>';
357
  }
358
 
 
359
  // Margin Left.
360
  if ( ! empty( $args['margin_left'] ) ) {
361
  echo '<div class="spftestimonial--block">';
362
  echo '<div class="spftestimonial--title">' . esc_html__( 'Margin Left', 'testimonial-free' ) . '</div>';
363
- echo '<div class="spftestimonial--blocks spftestimonial--input-area">';
364
- echo '<div class="spftestimonial--block"><input type="number" name="' . esc_attr( $this->field_name( '[margin-left]' ) ) . '" class="spftestimonial--margin-left spftestimonial--input spftestimonial-number" value="' . esc_attr( $this->value['margin-left'] ) . '" /></div>';
365
- echo '<div class="spftestimonial--block spftestimonial--unit">' . esc_html( $args['unit'] ) . '</div>';
366
  echo '</div>';
367
  echo '</div>';
368
  }
 
369
  echo '</div>';
370
 
 
371
  // Font Color.
372
  if ( ! empty( $args['color'] ) ) {
373
- $default_color_attr = ( ! empty( $default_value['color'] ) ) ? ' data-default-color="' . $default_value['color'] . '"' : '';
374
  echo '<div class="spftestimonial--block spftestimonial--block-font-color">';
375
  echo '<div class="spftestimonial--title">' . esc_html__( 'Font Color', 'testimonial-free' ) . '</div>';
376
  echo '<div class="spftestimonial-field-color">';
377
- echo '<input type="text" name="' . esc_attr( $this->field_name( '[color]' ) ) . '" class="spftestimonial-color spftestimonial--color" value="' . esc_attr( $this->value['color'] ) . '"' . wp_kses_post( $default_color_attr ) . ' />';
378
  echo '</div>';
379
  echo '</div>';
380
  }
381
 
382
- // Custom style.
 
383
  if ( ! empty( $args['custom_style'] ) ) {
384
  echo '<div class="spftestimonial--block spftestimonial--block-custom-style">';
385
  echo '<div class="spftestimonial--title">' . esc_html__( 'Custom Style', 'testimonial-free' ) . '</div>';
386
- echo '<textarea name="' . esc_attr( $this->field_name( '[custom-style]' ) ) . '" class="spftestimonial--custom-style">' . wp_kses_post( $this->value['custom-style'] ) . '</textarea>';
387
  echo '</div>';
388
  }
389
 
390
- // Preview.
391
- $always_preview = ( 'always' !== $args['preview'] ) ? ' hidden' : '';
 
392
 
393
  if ( ! empty( $args['preview'] ) ) {
394
  echo '<div class="spftestimonial--block spftestimonial--block-preview' . esc_attr( $always_preview ) . '">';
395
  echo '<div class="spftestimonial--toggle fa fa-toggle-off"></div>';
396
- echo '<div class="spftestimonial--preview">' . wp_kses_post( $args['preview_text'] ) . '</div>';
397
  echo '</div>';
398
  }
399
 
400
- echo '<input type="hidden" name="' . esc_attr( $this->field_name( '[type]' ) ) . '" class="spftestimonial--type" value="' . esc_attr( $this->value['type'] ) . '" />';
401
- echo '<input type="hidden" name="' . esc_attr( $this->field_name( '[unit]' ) ) . '" class="spftestimonial--unit-save" value="' . esc_attr( $args['unit'] ) . '" />';
402
 
403
- echo '</div>';
404
 
405
- echo wp_kses_post( $this->field_after() );
406
 
407
  }
408
-
409
  /**
410
  * Create select
411
  *
@@ -421,18 +454,18 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Field_typography' ) ) {
421
  $multiple_attr = ( $is_multiple ) ? ' multiple data-multiple="true"' : '';
422
  $chosen_rtl = ( $this->chosen && is_rtl() ) ? ' chosen-rtl' : '';
423
 
424
- $output = '<select name="' . esc_attr( $this->field_name( '[' . $name . ']' . $multiple_name ) ) . '" class="spftestimonial--' . esc_attr( $name . $chosen_rtl ) . '" data-placeholder="' . esc_attr( $placeholder ) . '"' . $multiple_attr . '>';
425
- $output .= ( ! empty( $placeholder ) ) ? '<option value="">' . ( ( ! $this->chosen ) ? $placeholder : '' ) . '</option>' : '';
426
 
427
  if ( ! empty( $options ) ) {
428
  foreach ( $options as $option_key => $option_value ) {
429
  if ( $is_multiple ) {
430
- $selected = ( in_array( $option_value, $this->value[ $name ], true ) ) ? ' selected' : '';
431
- $output .= '<option value="' . esc_attr( $option_value ) . '"' . esc_attr( $selected ) . '>' . esc_html( $option_value ) . '</option>';
432
  } else {
433
  $option_key = ( is_numeric( $option_key ) ) ? $option_value : $option_key;
434
  $selected = ( $option_key === $this->value[ $name ] ) ? ' selected' : '';
435
- $output .= '<option value="' . esc_attr( $option_key ) . '"' . esc_attr( $selected ) . '>' . esc_html( $option_value ) . '</option>';
436
  }
437
  }
438
  }
@@ -442,18 +475,19 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Field_typography' ) ) {
442
  return $output;
443
 
444
  }
445
-
446
  /**
447
- * Enqueue function.
448
  *
449
  * @return void
450
  */
451
  public function enqueue() {
452
 
453
- if ( ! wp_style_is( 'spftestimonial-webfont-loader' ) ) {
454
 
455
  SPFTESTIMONIAL::include_plugin_file( 'fields/typography/google-fonts.php' );
456
 
 
 
457
  $webfonts = array();
458
 
459
  $customwebfonts = apply_filters( 'spftestimonial_field_typography_customwebfonts', array() );
@@ -488,14 +522,6 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Field_typography' ) ) {
488
  ),
489
  );
490
 
491
- $webfonts['google'] = array(
492
- 'label' => esc_html__( 'Google Web Fonts', 'testimonial-free' ),
493
- 'fonts' => apply_filters(
494
- 'spftestimonial_field_typography_googlewebfonts',
495
- spftestimonial_get_google_fonts()
496
- ),
497
- );
498
-
499
  $defaultstyles = apply_filters( 'spftestimonial_field_typography_defaultstyles', array( 'normal', 'italic', '700', '700italic' ) );
500
 
501
  $googlestyles = apply_filters(
@@ -537,16 +563,14 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Field_typography' ) ) {
537
  }
538
 
539
  }
540
-
541
  /**
542
- * Enqueue google fonts
543
  *
 
544
  * @return mixed
545
  */
546
- public function enqueue_google_fonts() {
547
 
548
- $value = $this->value;
549
- $families = array();
550
  $is_google = false;
551
 
552
  if ( ! empty( $this->value['type'] ) ) {
@@ -559,46 +583,49 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Field_typography' ) ) {
559
  if ( $is_google ) {
560
 
561
  // set style.
562
- $font_weight = ( ! empty( $value['font-weight'] ) ) ? $value['font-weight'] : '';
563
- $font_style = ( ! empty( $value['font-style'] ) ) ? $value['font-style'] : '';
 
564
 
565
  if ( $font_weight || $font_style ) {
566
- $style = $font_weight . $font_style;
567
- $families['style'][ $style ] = $style;
 
 
 
 
 
568
  }
569
 
570
  // set extra styles.
571
- if ( ! empty( $value['extra-styles'] ) ) {
572
- foreach ( $value['extra-styles'] as $extra_style ) {
573
- $families['style'][ $extra_style ] = $extra_style;
 
 
 
574
  }
575
  }
576
 
577
  // set subsets.
578
- if ( ! empty( $value['subset'] ) ) {
579
- $value['subset'] = ( is_array( $value['subset'] ) ) ? $value['subset'] : array_filter( (array) $value['subset'] );
580
- foreach ( $value['subset'] as $subset ) {
581
- $families['subset'][ $subset ] = $subset;
 
 
582
  }
583
  }
584
 
585
- $all_styles = ( ! empty( $families['style'] ) ) ? ':' . implode( ',', $families['style'] ) : '';
586
- $all_subsets = ( ! empty( $families['subset'] ) ) ? ':' . implode( ',', $families['subset'] ) : '';
587
-
588
- $families = $this->value['font-family'] . str_replace( array( 'normal', 'italic' ), array( 'n', 'i' ), $all_styles ) . $all_subsets;
589
-
590
- $this->parent->typographies[] = $families;
591
-
592
- return $families;
593
 
594
  }
595
 
596
- return false;
597
 
598
  }
599
-
600
  /**
601
- * Output function
602
  *
603
  * @return statement
604
  */
@@ -640,10 +667,12 @@ if ( ! class_exists( 'SPFTESTIMONIAL_Field_typography' ) ) {
640
  'word-spacing',
641
  );
642
 
643
- $unit = ( ! empty( $this->value['unit'] ) ) ? $this->value['unit'] : '';
 
644
 
645
  foreach ( $properties as $property ) {
646
  if ( isset( $this->value[ $property ] ) && '' !== $this->value[ $property ] ) {
 
647
  $output .= $property . ':' . $this->value[ $property ] . $unit . $important . ';';
648
  }
649
  }
21
  * @version 1.0.0
22
  */
23
  class SPFTESTIMONIAL_Field_typography extends SPFTESTIMONIAL_Fields {
 
24
  /**
25
  * Chosen
26
  *
27
  * @var bool
28
  */
29
  public $chosen = false;
 
30
  /**
31
  * Value
32
  *
78
  'word_spacing' => false,
79
  'text_decoration' => false,
80
  'custom_style' => false,
81
+ 'compact' => false,
82
+ 'exclude' => '',
83
+ 'unit' => 'px',
84
  'margin_top' => false,
85
  'margin_right' => false,
86
  'margin_bottom' => false,
87
  'margin-left' => false,
88
+ 'line_height_unit' => '',
 
89
  'preview_text' => 'The quick brown fox jumps over the lazy dog',
90
  )
91
  );
92
 
93
+ if ( $args['compact'] ) {
94
+ $args['text_transform'] = false;
95
+ $args['text_align'] = false;
96
+ $args['font_size'] = false;
97
+ $args['line_height'] = false;
98
+ $args['letter_spacing'] = false;
99
+ $args['preview'] = false;
100
+ $args['color'] = false;
101
+ }
102
+
103
  $default_value = array(
104
  'font-family' => '',
105
  'font-weight' => '',
118
  'type' => '',
119
  'subset' => '',
120
  'extra-styles' => array(),
121
+ 'margin-top' => '',
122
+ 'margin-right' => '',
123
+ 'margin-bottom' => '',
124
+ 'margin-left' => '',
125
  );
126
 
127
+ $default_value = ( ! empty( $this->field['default'] ) ) ? wp_parse_args( $this->field['default'], $default_value ) : $default_value;
128
+ $this->value = wp_parse_args( $this->value, $default_value );
129
+ $this->chosen = $args['chosen'];
130
+ $chosen_class = ( $this->chosen ) ? ' spftestimonial--chosen' : '';
131
+ $line_height_unit = ( ! empty( $args['line_height_unit'] ) ) ? $args['line_height_unit'] : $args['unit'];
132
 
133
+ echo '<div class="spftestimonial--typography' . esc_attr( $chosen_class ) . '" data-depend-id="' . esc_attr( $this->field['id'] ) . '" data-unit="' . esc_attr( $args['unit'] ) . '" data-line-height-unit="' . esc_attr( $line_height_unit ) . '" data-exclude="' . esc_attr( $args['exclude'] ) . '">';
134
 
135
  echo '<div class="spftestimonial--blocks spftestimonial--blocks-selects">';
136
 
174
  echo '</div>';
175
  }
176
 
177
+ //
178
  // Font Style and Extra Style Select.
179
  if ( ! empty( $args['font_weight'] ) || ! empty( $args['font_style'] ) ) {
180
 
181
+ //
182
  // Font Style Select.
183
  echo '<div class="spftestimonial--block spftestimonial--block-font-style hidden">';
184
  echo '<div class="spftestimonial--title">' . esc_html__( 'Font Style', 'testimonial-free' ) . '</div>';
185
  echo '<select class="spftestimonial--font-style-select" data-placeholder="Default">';
186
+ echo '<option value="">' . ( ! $this->chosen ? esc_html__( 'Default', 'testimonial-free' ) : '' ) . '</option>';// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
187
  if ( ! empty( $this->value['font-weight'] ) || ! empty( $this->value['font-style'] ) ) {
188
  echo '<option value="' . esc_attr( strtolower( $this->value['font-weight'] . $this->value['font-style'] ) ) . '" selected></option>';
189
  }
206
 
207
  }
208
 
209
+ //
210
  // Subset.
211
  if ( ! empty( $args['subset'] ) ) {
212
  echo '<div class="spftestimonial--block spftestimonial--block-subset hidden">';
217
  echo '</div>';
218
  }
219
 
220
+ //
221
  // Text Align.
222
  if ( ! empty( $args['text_align'] ) ) {
223
  echo '<div class="spftestimonial--block">';
238
  echo '</div>';
239
  }
240
 
241
+ //
242
  // Font Variant.
243
  if ( ! empty( $args['font_variant'] ) ) {
244
  echo '<div class="spftestimonial--block">';
256
  echo '</div>';
257
  }
258
 
259
+ //
260
  // Text Transform.
261
  if ( ! empty( $args['text_transform'] ) ) {
262
  echo '<div class="spftestimonial--block">';
275
  echo '</div>';
276
  }
277
 
278
+ //
279
  // Text Decoration.
280
  if ( ! empty( $args['text_decoration'] ) ) {
281
  echo '<div class="spftestimonial--block">';
302
 
303
  echo '<div class="spftestimonial--blocks spftestimonial--blocks-inputs">';
304
 
305
+ //
306
  // Font Size.
307
  if ( ! empty( $args['font_size'] ) ) {
308
  echo '<div class="spftestimonial--block">';
309
  echo '<div class="spftestimonial--title">' . esc_html__( 'Font Size', 'testimonial-free' ) . '</div>';
310
+ echo '<div class="spftestimonial--input-wrap">';
311
+ echo '<input type="number" name="' . esc_attr( $this->field_name( '[font-size]' ) ) . '" class="spftestimonial--font-size spftestimonial--input spftestimonial-input-number" value="' . esc_attr( $this->value['font-size'] ) . '" step="any" />';
312
+ echo '<span class="spftestimonial--unit">' . esc_attr( $args['unit'] ) . '</span>';
313
  echo '</div>';
314
  echo '</div>';
315
  }
316
 
317
+ //
318
  // Line Height.
319
  if ( ! empty( $args['line_height'] ) ) {
320
  echo '<div class="spftestimonial--block">';
321
  echo '<div class="spftestimonial--title">' . esc_html__( 'Line Height', 'testimonial-free' ) . '</div>';
322
+ echo '<div class="spftestimonial--input-wrap">';
323
+ echo '<input type="number" name="' . esc_attr( $this->field_name( '[line-height]' ) ) . '" class="spftestimonial--line-height spftestimonial--input spftestimonial-input-number" value="' . esc_attr( $this->value['line-height'] ) . '" step="any" />';
324
+ echo '<span class="spftestimonial--unit">' . esc_attr( $line_height_unit ) . '</span>';
325
  echo '</div>';
326
  echo '</div>';
327
  }
328
 
329
+ //
330
  // Letter Spacing.
331
  if ( ! empty( $args['letter_spacing'] ) ) {
332
  echo '<div class="spftestimonial--block">';
333
  echo '<div class="spftestimonial--title">' . esc_html__( 'Letter Spacing', 'testimonial-free' ) . '</div>';
334
+ echo '<div class="spftestimonial--input-wrap">';
335
+ echo '<input type="number" name="' . esc_attr( $this->field_name( '[letter-spacing]' ) ) . '" class="spftestimonial--letter-spacing spftestimonial--input spftestimonial-input-number" value="' . esc_attr( $this->value['letter-spacing'] ) . '" step="any" />';
336
+ echo '<span class="spftestimonial--unit">' . esc_attr( $args['unit'] ) . '</span>';
337
  echo '</div>';
338
  echo '</div>';
339
  }
340
 
341
+ //
342
  // Word Spacing.
343
  if ( ! empty( $args['word_spacing'] ) ) {
344
  echo '<div class="spftestimonial--block">';
345
  echo '<div class="spftestimonial--title">' . esc_html__( 'Word Spacing', 'testimonial-free' ) . '</div>';
346
+ echo '<div class="spftestimonial--input-wrap">';
347
+ echo '<input type="number" name="' . esc_attr( $this->field_name( '[word-spacing]' ) ) . '" class="spftestimonial--word-spacing spftestimonial--input spftestimonial-input-number" value="' . esc_attr( $this->value['word-spacing'] ) . '" step="any" />';
348
+ echo '<span class="spftestimonial--unit">' . esc_attr( $args['unit'] ) . '</span>';
349
  echo '</div>';
350
  echo '</div>';
351
  }
352
+ //
353
  // Margin Top.
354
  if ( ! empty( $args['margin_top'] ) ) {
355
  echo '<div class="spftestimonial--block">';
356
  echo '<div class="spftestimonial--title">' . esc_html__( 'Margin Top', 'testimonial-free' ) . '</div>';
357
+ echo '<div class="spftestimonial--input-wrap">';
358
+ echo '<div class="spftestimonial--block"><input type="number" name="' . esc_attr( $this->field_name( '[margin-top]' ) ) . '" class="spftestimonial--margin-top spftestimonial--input spftestimonial-input-number" value="' . esc_attr( $this->value['margin-top'] ) . '" /></div>';
359
+ echo '<div class="spftestimonial--unit">' . esc_attr( $args['unit'] ) . '</div>';
360
  echo '</div>';
361
  echo '</div>';
362
  }
363
 
364
+ //
365
  // Margin Right.
366
  if ( ! empty( $args['margin_right'] ) ) {
367
  echo '<div class="spftestimonial--block">';
368
  echo '<div class="spftestimonial--title">' . esc_html__( 'Margin Right', 'testimonial-free' ) . '</div>';
369
+ echo '<div class="spftestimonial--input-wrap">';
370
+ echo '<input type="number" name="' . esc_attr( $this->field_name( '[margin-right]' ) ) . '" class="spftestimonial--margin-right spftestimonial--input spftestimonial-input-number" value="' . esc_attr( $this->value['margin-right'] ) . '" />';
371
+ echo '<div class="spftestimonial--unit">' . esc_attr( $args['unit'] ) . '</div>';
372
  echo '</div>';
373
  echo '</div>';
374
  }
375
 
376
+ //
377
  // Margin Bottom.
378
  if ( ! empty( $args['margin_bottom'] ) ) {
379
  echo '<div class="spftestimonial--block">';
380
  echo '<div class="spftestimonial--title">' . esc_html__( 'Margin Bottom', 'testimonial-free' ) . '</div>';
381
+ echo '<div class="spftestimonial--input-wrap">';
382
+ echo '<input type="number" name="' . esc_attr( $this->field_name( '[margin-bottom]' ) ) . '" class="spftestimonial--margin-bottom spftestimonial--input spftestimonial-input-number" value="' . esc_attr( $this->value['margin-bottom'] ) . '" />';
383
+ echo '<div class="spftestimonial--unit">' . esc_attr( $args['unit'] ) . '</div>';
384
  echo '</div>';
385
  echo '</div>';
386
  }
387
 
388
+ //
389
  // Margin Left.
390
  if ( ! empty( $args['margin_left'] ) ) {
391
  echo '<div class="spftestimonial--block">';
392
  echo '<div class="spftestimonial--title">' . esc_html__( 'Margin Left', 'testimonial-free' ) . '</div>';
393
+ echo '<div class="spftestimonial--input-wrap">';
394
+ echo '<input type="number" name="' . esc_attr( $this->field_name( '[margin-left]' ) ) . '" class="spftestimonial--margin-left spftestimonial--input spftestimonial-input-number" value="' . esc_attr( $this->value['margin-left'] ) . '" />';
395
+ echo '<div class="spftestimonial--unit">' . esc_attr( $args['unit'] ) . '</div>';
396
  echo '</div>';
397
  echo '</div>';
398
  }
399
+
400
  echo '</div>';
401
 
402
+ //
403
  // Font Color.
404
  if ( ! empty( $args['color'] ) ) {
405
+ $default_color_attr = ( ! empty( $default_value['color'] ) ) ? $default_value['color'] : '';
406
  echo '<div class="spftestimonial--block spftestimonial--block-font-color">';
407
  echo '<div class="spftestimonial--title">' . esc_html__( 'Font Color', 'testimonial-free' ) . '</div>';
408
  echo '<div class="spftestimonial-field-color">';
409
+ echo '<input type="text" name="' . esc_attr( $this->field_name( '[color]' ) ) . '" class="spftestimonial-color spftestimonial--color" value="' . esc_attr( $this->value['color'] ) . '" data-default-color="' . esc_attr( $default_color_attr ) . '" />';
410
  echo '</div>';
411
  echo '</div>';
412
  }
413
 
414
+ //
415
+ // Custom style.
416
  if ( ! empty( $args['custom_style'] ) ) {
417
  echo '<div class="spftestimonial--block spftestimonial--block-custom-style">';
418
  echo '<div class="spftestimonial--title">' . esc_html__( 'Custom Style', 'testimonial-free' ) . '</div>';
419
+ echo '<textarea name="' . esc_attr( $this->field_name( '[custom-style]' ) ) . '" class="spftestimonial--custom-style">' . esc_attr( $this->value['custom-style'] ) . '</textarea>';
420
  echo '</div>';
421
  }
422
 
423
+ //
424
+ // Preview.
425
+ $always_preview = ( 'always' !== $args['preview'] ) ? ' hidden' : '';
426
 
427
  if ( ! empty( $args['preview'] ) ) {
428
  echo '<div class="spftestimonial--block spftestimonial--block-preview' . esc_attr( $always_preview ) . '">';
429
  echo '<div class="spftestimonial--toggle fa fa-toggle-off"></div>';
430
+ echo '<div class="spftestimonial--preview">' . esc_attr( $args['preview_text'] ) . '</div>';
431
  echo '</div>';
432
  }
433
 
434
+ echo '<input type="hidden" name="' . esc_attr( $this->field_name( '[type]' ) ) . '" class="spftestimonial--type" value="' . esc_attr( $this->value['type'] ) . '" />';
435
+ echo '<input type="hidden" name="' . esc_attr( $this->field_name( '[unit]' ) ) . '" class="spftestimonial--unit-save" value="' . esc_attr( $args['unit'] ) . '" />';
436
 
437
+ echo '</div>';
438
 
439
+ echo wp_kses_post( $this->field_after() );
440
 
441
  }
 
442
  /**
443
  * Create select
444
  *
454
  $multiple_attr = ( $is_multiple ) ? ' multiple data-multiple="true"' : '';
455
  $chosen_rtl = ( $this->chosen && is_rtl() ) ? ' chosen-rtl' : '';
456
 
457
+ $output = '<select name="' . esc_attr( $this->field_name( '[' . $name . ']' . $multiple_name ) ) . '" class="spftestimonial--' . esc_attr( $name ) . esc_attr( $chosen_rtl ) . '" data-placeholder="' . esc_attr( $placeholder ) . '"' . $multiple_attr . '>';
458
+ $output .= ( ! empty( $placeholder ) ) ? '<option value="">' . esc_attr( ( ! $this->chosen ) ? $placeholder : '' ) . '</option>' : '';
459
 
460
  if ( ! empty( $options ) ) {
461
  foreach ( $options as $option_key => $option_value ) {
462
  if ( $is_multiple ) {
463
+ $selected = ( in_array( $option_value, $this->value[ $name ] ) ) ? ' selected' : '';
464
+ $output .= '<option value="' . esc_attr( $option_value ) . '"' . esc_attr( $selected ) . '>' . esc_attr( $option_value ) . '</option>';
465
  } else {
466
  $option_key = ( is_numeric( $option_key ) ) ? $option_value : $option_key;
467
  $selected = ( $option_key === $this->value[ $name ] ) ? ' selected' : '';
468
+ $output .= '<option value="' . esc_attr( $option_key ) . '"' . esc_attr( $selected ) . '>' . esc_attr( $option_value ) . '</option>';
469
  }
470
  }
471
  }
475
  return $output;
476
 
477
  }
 
478
  /**
479
+ * Enqueue
480
  *
481
  * @return void
482
  */
483
  public function enqueue() {
484
 
485
+ if ( ! wp_script_is( 'spftestimonial-webfontloader' ) ) {
486
 
487
  SPFTESTIMONIAL::include_plugin_file( 'fields/typography/google-fonts.php' );
488
 
489
+ // wp_enqueue_script( 'spftestimonial-webfontloader', 'https://cdn.jsdelivr.net/npm/webfontloader@1.6.28/webfontloader.min.js', array( 'spftestimonial' ), '1.6.28', true );.
490
+
491
  $webfonts = array();
492
 
493
  $customwebfonts = apply_filters( 'spftestimonial_field_typography_customwebfonts', array() );
522
  ),
523
  );
524
 
 
 
 
 
 
 
 
 
525
  $defaultstyles = apply_filters( 'spftestimonial_field_typography_defaultstyles', array( 'normal', 'italic', '700', '700italic' ) );
526
 
527
  $googlestyles = apply_filters(
563
  }
564
 
565
  }
 
566
  /**
567
+ * Enqueue google fonts.
568
  *
569
+ * @param mixed $method method.
570
  * @return mixed
571
  */
572
+ public function enqueue_google_fonts( $method = 'enqueue' ) {
573
 
 
 
574
  $is_google = false;
575
 
576
  if ( ! empty( $this->value['type'] ) ) {
583
  if ( $is_google ) {
584
 
585
  // set style.
586
+ $font_family = ( ! empty( $this->value['font-family'] ) ) ? $this->value['font-family'] : '';
587
+ $font_weight = ( ! empty( $this->value['font-weight'] ) ) ? $this->value['font-weight'] : '';
588
+ $font_style = ( ! empty( $this->value['font-style'] ) ) ? $this->value['font-style'] : '';
589
 
590
  if ( $font_weight || $font_style ) {
591
+ $style = $font_weight . $font_style;
592
+ if ( ! empty( $style ) ) {
593
+ $style = ( 'normal' === $style ) ? '400' : $style;
594
+ SPFTESTIMONIAL::$webfonts[ $method ][ $font_family ][ $style ] = $style;
595
+ }
596
+ } else {
597
+ SPFTESTIMONIAL::$webfonts[ $method ][ $font_family ] = array();
598
  }
599
 
600
  // set extra styles.
601
+ if ( ! empty( $this->value['extra-styles'] ) ) {
602
+ foreach ( $this->value['extra-styles'] as $extra_style ) {
603
+ if ( ! empty( $extra_style ) ) {
604
+ $extra_style = ( 'normal' === $extra_style ) ? '400' : $extra_style;
605
+ SPFTESTIMONIAL::$webfonts[ $method ][ $font_family ][ $extra_style ] = $extra_style;
606
+ }
607
  }
608
  }
609
 
610
  // set subsets.
611
+ if ( ! empty( $this->value['subset'] ) ) {
612
+ $this->value['subset'] = ( is_array( $this->value['subset'] ) ) ? $this->value['subset'] : array_filter( (array) $this->value['subset'] );
613
+ foreach ( $this->value['subset'] as $subset ) {
614
+ if ( ! empty( $subset ) ) {
615
+ SPFTESTIMONIAL::$subsets[ $subset ] = $subset;
616
+ }
617
  }
618
  }
619
 
620
+ return true;
 
 
 
 
 
 
 
621
 
622
  }
623
 
624
+ return false;
625
 
626
  }
 
627
  /**
628
+ * Output
629
  *
630
  * @return statement
631
  */
667
  'word-spacing',
668
  );
669
 
670
+ $unit = ( ! empty( $this->value['unit'] ) ) ? $this->value['unit'] : 'px';
671
+ $line_height_unit = ( ! empty( $this->value['line_height_unit'] ) ) ? $this->value['line_height_unit'] : $unit;
672
 
673
  foreach ( $properties as $property ) {
674
  if ( isset( $this->value[ $property ] ) && '' !== $this->value[ $property ] ) {
675
+ $unit = ( 'line-height' === $property ) ? $line_height_unit : $unit;
676
  $output .= $property . ':' . $this->value[ $property ] . $unit . $important . ';';
677
  }
678
  }
admin/views/framework/functions/actions.php CHANGED
@@ -1,70 +1,205 @@
1
  <?php
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2
  /**
3
- * Framework actions file.
4
  *
5
- * @link https://shapedplugin.com
6
- * @since 2.0.0
7
  *
8
- * @package Testimonial_free
9
- * @subpackage Testimonial_free/framework
10
  */
 
 
 
 
 
 
 
11
 
12
- if ( ! defined( 'ABSPATH' ) ) {
13
- die;
14
- } // Cannot access directly.
15
 
16
- if ( ! function_exists( 'spftestimonial_reset_ajax' ) ) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
17
  /**
 
18
  *
19
- * Reset Ajax
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
20
  *
21
- * @since 1.0.0
22
- * @version 1.0.0
23
  */
24
  function spftestimonial_reset_ajax() {
25
 
26
- if ( ! empty( $_POST['unique'] ) && ! empty( $_POST['nonce'] ) && wp_verify_nonce( sanitize_text_field( wp_unslash( $_POST['nonce'] ) ), 'spftestimonial_backup_nonce' ) ) {
27
- delete_option( sanitize_text_field( wp_unslash( $_POST['unique'] ) ) );
28
- wp_send_json_success();
 
 
29
  }
30
 
31
- wp_send_json_error( array( 'error' => esc_html__( 'Error: Nonce verification has failed. Please try again.', 'testimonial-free' ) ) );
 
 
 
32
 
33
  }
34
  add_action( 'wp_ajax_spftestimonial-reset', 'spftestimonial_reset_ajax' );
35
  }
36
 
 
 
 
 
 
 
 
37
  if ( ! function_exists( 'spftestimonial_chosen_ajax' ) ) {
38
  /**
 
39
  *
40
- * Chosen Ajax
41
- *
42
- * @since 1.0.0
43
- * @version 1.0.0
44
  */
45
  function spftestimonial_chosen_ajax() {
46
 
47
- if ( ! empty( $_POST['term'] ) && ! empty( $_POST['type'] ) && ! empty( $_POST['nonce'] ) && wp_verify_nonce( sanitize_text_field( wp_unslash( $_POST['nonce'] ) ), 'spftestimonial_chosen_ajax_nonce' ) ) {
48
-
49
- $capability = apply_filters( 'spftestimonial_chosen_ajax_capability', 'manage_options' );
 
50
 
51
- if ( current_user_can( $capability ) ) {
 
 
52
 
53
- $type = sanitize_text_field( wp_unslash( $_POST['type'] ) );
54
- $term = sanitize_text_field( wp_unslash( $_POST['term'] ) );
55
- $query_args = ( ! empty( $_POST['query_args'] ) ) ? wp_kses_post_deep( $_POST['query_args'] ) : array(); // phpcs:ignore
56
- $options = SPFTESTIMONIAL_Fields::field_data( $type, $term, $query_args );
57
 
58
- wp_send_json_success( $options );
59
 
60
- } else {
61
- wp_send_json_error( array( 'error' => esc_html__( 'You do not have required permissions to access.', 'testimonial-free' ) ) );
62
- }
63
- } else {
64
- wp_send_json_error( array( 'error' => esc_html__( 'Error: Nonce verification has failed. Please try again.', 'testimonial-free' ) ) );
65
  }
66
 
 
 
 
 
 
67
  }
68
  add_action( 'wp_ajax_spftestimonial-chosen', 'spftestimonial_chosen_ajax' );
69
  }
70
-
1
  <?php
2
+ if ( ! defined( 'ABSPATH' ) ) {
3
+ die;
4
+ } // Cannot access directly.
5
+
6
+ if ( ! function_exists( 'spftestimonial_get_icons' ) ) {
7
+ /**
8
+ * Get Icon
9
+ *
10
+ * @return void
11
+ */
12
+ function spftestimonial_get_icons() {
13
+
14
+ $nonce = ( ! empty( $_POST['nonce'] ) ) ? sanitize_text_field( wp_unslash( $_POST['nonce'] ) ) : '';
15
+
16
+ if ( ! wp_verify_nonce( $nonce, 'spftestimonial_icon_nonce' ) ) {
17
+ wp_send_json_error( array( 'error' => esc_html__( 'Error: Invalid nonce verification.', 'testimonial-free' ) ) );
18
+ }
19
+
20
+ ob_start();
21
+
22
+ $icon_library = ( apply_filters( 'spftestimonial_fa4', false ) ) ? 'fa4' : 'fa5';
23
+
24
+ SPFTESTIMONIAL::include_plugin_file( 'fields/icon/' . $icon_library . '-icons.php' );
25
+
26
+ $icon_lists = apply_filters( 'spftestimonial_field_icon_add_icons', spftestimonial_get_default_icons() );
27
+
28
+ if ( ! empty( $icon_lists ) ) {
29
+
30
+ foreach ( $icon_lists as $list ) {
31
+
32
+ echo ( count( $icon_lists ) >= 2 ) ? '<div class="spftestimonial-icon-title">' . esc_attr( $list['title'] ) . '</div>' : '';
33
+
34
+ foreach ( $list['icons'] as $icon ) {
35
+ echo '<i title="' . esc_attr( $icon ) . '" class="' . esc_attr( $icon ) . '"></i>';
36
+ }
37
+ }
38
+ } else {
39
+
40
+ echo '<div class="spftestimonial-error-text">' . esc_html__( 'No data available.', 'testimonial-free' ) . '</div>';
41
+
42
+ }
43
+
44
+ $content = ob_get_clean();
45
+
46
+ wp_send_json_success( array( 'content' => $content ) );
47
+
48
+ }
49
+ add_action( 'wp_ajax_spftestimonial-get-icons', 'spftestimonial_get_icons' );
50
+ }
51
+
52
  /**
 
53
  *
54
+ * Export
 
55
  *
56
+ * @since 1.0.0
57
+ * @version 1.0.0
58
  */
59
+ if ( ! function_exists( 'spftestimonial_export' ) ) {
60
+ /**
61
+ * Export
62
+ *
63
+ * @return void
64
+ */
65
+ function spftestimonial_export() {
66
 
67
+ $nonce = ( ! empty( $_GET['nonce'] ) ) ? sanitize_text_field( wp_unslash( $_GET['nonce'] ) ) : '';
68
+ $unique = ( ! empty( $_GET['unique'] ) ) ? sanitize_text_field( wp_unslash( $_GET['unique'] ) ) : '';
 
69
 
70
+ if ( ! wp_verify_nonce( $nonce, 'spftestimonial_backup_nonce' ) ) {
71
+ die( esc_html__( 'Error: Invalid nonce verification.', 'testimonial-free' ) );
72
+ }
73
+
74
+ if ( empty( $unique ) ) {
75
+ die( esc_html__( 'Error: Invalid key.', 'testimonial-free' ) );
76
+ }
77
+
78
+ // Export.
79
+ header( 'Content-Type: application/json' );
80
+ header( 'Content-disposition: attachment; filename=backup-' . gmdate( 'd-m-Y' ) . '.json' );
81
+ header( 'Content-Transfer-Encoding: binary' );
82
+ header( 'Pragma: no-cache' );
83
+ header( 'Expires: 0' );
84
+
85
+ echo json_encode( get_option( $unique ) );
86
+
87
+ die();
88
+
89
+ }
90
+ add_action( 'wp_ajax_spftestimonial-export', 'spftestimonial_export' );
91
+ }
92
+
93
+ /**
94
+ *
95
+ * Import Ajax
96
+ *
97
+ * @since 1.0.0
98
+ * @version 1.0.0
99
+ */
100
+ if ( ! function_exists( 'spftestimonial_import_ajax' ) ) {
101
  /**
102
+ * Ajax Import
103
  *
104
+ * @return void
105
+ */
106
+ function spftestimonial_import_ajax() {
107
+
108
+ $nonce = ( ! empty( $_POST['nonce'] ) ) ? sanitize_text_field( wp_unslash( $_POST['nonce'] ) ) : '';
109
+ $unique = ( ! empty( $_POST['unique'] ) ) ? sanitize_text_field( wp_unslash( $_POST['unique'] ) ) : '';
110
+ $data = ( ! empty( $_POST['data'] ) ) ? wp_kses_post_deep( json_decode( wp_unslash( trim( $_POST['data'] ) ), true ) ) : array();
111
+
112
+ if ( ! wp_verify_nonce( $nonce, 'spftestimonial_backup_nonce' ) ) {
113
+ wp_send_json_error( array( 'error' => esc_html__( 'Error: Invalid nonce verification.', 'testimonial-free' ) ) );
114
+ }
115
+
116
+ if ( empty( $unique ) ) {
117
+ wp_send_json_error( array( 'error' => esc_html__( 'Error: Invalid key.', 'testimonial-free' ) ) );
118
+ }
119
+
120
+ if ( empty( $data ) || ! is_array( $data ) ) {
121
+ wp_send_json_error( array( 'error' => esc_html__( 'Error: The response is not a valid JSON response.', 'testimonial-free' ) ) );
122
+ }
123
+
124
+ // Success.
125
+ update_option( $unique, $data );
126
+
127
+ wp_send_json_success();
128
+
129
+ }
130
+ add_action( 'wp_ajax_spftestimonial-import', 'spftestimonial_import_ajax' );
131
+ }
132
+
133
+ /**
134
+ *
135
+ * Reset Ajax
136
+ *
137
+ * @since 1.0.0
138
+ * @version 1.0.0
139
+ */
140
+ if ( ! function_exists( 'spftestimonial_reset_ajax' ) ) {
141
+ /**
142
+ * Ajax reset.
143
  *
144
+ * @return void
 
145
  */
146
  function spftestimonial_reset_ajax() {
147
 
148
+ $nonce = ( ! empty( $_POST['nonce'] ) ) ? sanitize_text_field( wp_unslash( $_POST['nonce'] ) ) : '';
149
+ $unique = ( ! empty( $_POST['unique'] ) ) ? sanitize_text_field( wp_unslash( $_POST['unique'] ) ) : '';
150
+
151
+ if ( ! wp_verify_nonce( $nonce, 'spftestimonial_backup_nonce' ) ) {
152
+ wp_send_json_error( array( 'error' => esc_html__( 'Error: Invalid nonce verification.', 'testimonial-free' ) ) );
153
  }
154
 
155
+ // Success.
156
+ delete_option( $unique );
157
+
158
+ wp_send_json_success();
159
 
160
  }
161
  add_action( 'wp_ajax_spftestimonial-reset', 'spftestimonial_reset_ajax' );
162
  }
163
 
164
+ /**
165
+ *
166
+ * Chosen Ajax.
167
+ *
168
+ * @since 1.0.0
169
+ * @version 1.0.0
170
+ */
171
  if ( ! function_exists( 'spftestimonial_chosen_ajax' ) ) {
172
  /**
173
+ * Chosen Ajax.
174
  *
175
+ * @return void
 
 
 
176
  */
177
  function spftestimonial_chosen_ajax() {
178
 
179
+ $nonce = ( ! empty( $_POST['nonce'] ) ) ? sanitize_text_field( wp_unslash( $_POST['nonce'] ) ) : '';
180
+ $type = ( ! empty( $_POST['type'] ) ) ? sanitize_text_field( wp_unslash( $_POST['type'] ) ) : '';
181
+ $term = ( ! empty( $_POST['term'] ) ) ? sanitize_text_field( wp_unslash( $_POST['term'] ) ) : '';
182
+ $query = ( ! empty( $_POST['query_args'] ) ) ? wp_kses_post_deep( $_POST['query_args'] ) : array();
183
 
184
+ if ( ! wp_verify_nonce( $nonce, 'spftestimonial_chosen_ajax_nonce' ) ) {
185
+ wp_send_json_error( array( 'error' => esc_html__( 'Error: Invalid nonce verification.', 'testimonial-free' ) ) );
186
+ }
187
 
188
+ if ( empty( $type ) || empty( $term ) ) {
189
+ wp_send_json_error( array( 'error' => esc_html__( 'Error: Invalid term ID.', 'testimonial-free' ) ) );
190
+ }
 
191
 
192
+ $capability = apply_filters( 'spftestimonial_chosen_ajax_capability', 'manage_options' );
193
 
194
+ if ( ! current_user_can( $capability ) ) {
195
+ wp_send_json_error( array( 'error' => esc_html__( 'Error: You do not have permission to do that.', 'testimonial-free' ) ) );
 
 
 
196
  }
197
 
198
+ // Success.
199
+ $options = SPFTESTIMONIAL_Fields::field_data( $type, $term, $query );
200
+
201
+ wp_send_json_success( $options );
202
+
203
  }
204
  add_action( 'wp_ajax_spftestimonial-chosen', 'spftestimonial_chosen_ajax' );
205
  }
 
admin/views/framework/functions/customize.php DELETED
@@ -1,165 +0,0 @@
1
- <?php
2
- /**
3
- * Framework customize file.
4
- *
5
- * @link https://shapedplugin.com
6
- * @since 2.0.0
7
- *
8
- * @package Testimonial_free
9
- * @subpackage Testimonial_free/framework
10
- */
11
-
12
- if ( ! defined( 'ABSPATH' ) ) {
13
- die;
14
- } // Cannot access directly.
15
-
16
- if ( ! class_exists( 'WP_Customize_Panel_SPFTESTIMONIAL' ) && class_exists( 'WP_Customize_Panel' ) ) {
17
- /**
18
- *
19
- * WP Customize custom panel
20
- *
21
- * @since 1.0.0
22
- * @version 1.0.0
23
- */
24
- class WP_Customize_Panel_SPFTESTIMONIAL extends WP_Customize_Panel {
25
-
26
- /**
27
- * Post type.
28
- *
29
- * @var string
30
- */
31
- public $type = 'spftestimonial';
32
- }
33
- }
34
-
35
- if ( ! class_exists( 'WP_Customize_Section_SPFTESTIMONIAL' ) && class_exists( 'WP_Customize_Section' ) ) {
36
- /**
37
- *
38
- * WP Customize custom section
39
- *
40
- * @since 1.0.0
41
- * @version 1.0.0
42
- */
43
- class WP_Customize_Section_SPFTESTIMONIAL extends WP_Customize_Section {
44
-
45
- /**
46
- * Post type.
47
- *
48
- * @var string
49
- */
50
- public $type = 'spftestimonial';
51
- }
52
- }
53
-
54
- if ( ! class_exists( 'WP_Customize_Control_SPFTESTIMONIAL' ) && class_exists( 'WP_Customize_Control' ) ) {
55
- /**
56
- *
57
- * WP Customize custom control
58
- *
59
- * @since 1.0.0
60
- * @version 1.0.0
61
- */
62
- class WP_Customize_Control_SPFTESTIMONIAL extends WP_Customize_Control {
63
-
64
- /**
65
- * Post type.
66
- *
67
- * @var string
68
- */
69
- public $type = 'spftestimonial';
70
- /**
71
- * Post field.
72
- *
73
- * @var string
74
- */
75
- public $field = '';
76
- /**
77
- * Post unique id.
78
- *
79
- * @var string
80
- */
81
- public $unique = '';
82
-
83
- /**
84
- * Render function.
85
- *
86
- * @return void
87
- */
88
- protected function render() {
89
-
90
- $depend = '';
91
- $hidden = '';
92
-
93
- if ( ! empty( $this->field['dependency'] ) ) {
94
- $hidden = ' spftestimonial-dependency-control hidden';
95
- $depend .= ' data-controller="' . $this->field['dependency'][0] . '"';
96
- $depend .= ' data-condition="' . $this->field['dependency'][1] . '"';
97
- $depend .= ' data-value="' . $this->field['dependency'][2] . '"';
98
- }
99
-
100
- $id = 'customize-control-' . str_replace( array( '[', ']' ), array( '-', '' ), $this->id );
101
- $class = 'customize-control customize-control-' . $this->type . $hidden;
102
-
103
- echo '<li id="' . esc_attr( $id ) . '" class="' . esc_attr( $class ) . '"' . wp_kses_post( $depend ) . '>';
104
- $this->render_content();
105
- echo '</li>';
106
-
107
- }
108
-
109
- /**
110
- * Render content function.
111
- *
112
- * @return void
113
- */
114
- public function render_content() {
115
-
116
- $complex = array(
117
- 'accordion',
118
- 'background',
119
- 'backup',
120
- 'border',
121
- 'button_set',
122
- 'checkbox',
123
- 'color_group',
124
- 'date',
125
- 'dimensions',
126
- 'fieldset',
127
- 'group',
128
- 'image_select',
129
- 'link_color',
130
- 'media',
131
- 'palette',
132
- 'repeater',
133
- 'sortable',
134
- 'sorter',
135
- 'spacing',
136
- 'switcher',
137
- 'tabbed',
138
- 'typography',
139
- );
140
-
141
- $field_id = ( ! empty( $this->field['id'] ) ) ? $this->field['id'] : '';
142
- $custom = ( ! empty( $this->field['customizer'] ) ) ? true : false;
143
- $is_complex = ( in_array( $this->field['type'], $complex, true ) ) ? true : false;
144
- $class = ( $is_complex || $custom ) ? ' spftestimonial-customize-complex' : '';
145
- $atts = ( $is_complex || $custom ) ? ' data-unique-id="' . $this->unique . '" data-option-id="' . $field_id . '"' : '';
146
-
147
- if ( ! $is_complex && ! $custom ) {
148
- $this->field['attributes']['data-customize-setting-link'] = $this->settings['default']->id;
149
- }
150
-
151
- $this->field['name'] = $this->settings['default']->id;
152
-
153
- $this->field['dependency'] = array();
154
-
155
- echo '<div class="spftestimonial-customize-field' . esc_attr( $class ) . '"' . wp_kses_post( $atts ) . '>';
156
-
157
- SPFTESTIMONIAL::field( $this->field, $this->value(), $this->unique, 'customize' );
158
-
159
- echo '</div>';
160
-
161
- }
162
-
163
- }
164
- }
165
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
admin/views/framework/functions/deprecated.php DELETED
@@ -1,18 +0,0 @@
1
- <?php
2
- /**
3
- * Framework deprecated file.
4
- *
5
- * @link https://shapedplugin.com
6
- * @since 2.0.0
7
- *
8
- * @package Testimonial_free
9
- * @subpackage Testimonial_free/framework
10
- */
11
-
12
- if ( ! defined( 'ABSPATH' ) ) {
13
- die; } // Cannot access directly.
14
- /**
15
- *
16
- * Deprecated framework functions from past framework versions. You shouldn't use these
17
- * functions and look for the alternatives instead. The functions will be removed in a later version.
18
- */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
admin/views/framework/functions/helpers.php CHANGED
@@ -1,25 +1,21 @@
1
  <?php
 
 
 
2
  /**
3
- * Framework helpers file.
4
  *
5
- * @link https://shapedplugin.com
6
- * @since 2.0.0
7
  *
8
- * @package Testimonial_free
9
- * @subpackage Testimonial_free/framework
10
  */
11
-
12
- if ( ! defined( 'ABSPATH' ) ) {
13
- die;
14
- } // Cannot access directly.
15
-
16
  if ( ! function_exists( 'spftestimonial_array_search' ) ) {
17
  /**
18
  * Array search key & value
19
  *
20
- * @param mixed $array main array.
21
  * @param mixed $key key.
22
- * @param mixed $value val.
23
  * @return array
24
  */
25
  function spftestimonial_array_search( $array, $key, $value ) {
@@ -27,7 +23,7 @@ if ( ! function_exists( 'spftestimonial_array_search' ) ) {
27
  $results = array();
28
 
29
  if ( is_array( $array ) ) {
30
- if ( isset( $array[ $key ] ) && $array[ $key ] === $value ) {
31
  $results[] = $array;
32
  }
33
 
@@ -41,82 +37,42 @@ if ( ! function_exists( 'spftestimonial_array_search' ) ) {
41
  }
42
  }
43
 
44
- if ( ! function_exists( 'spftestimonial_get_var' ) ) {
45
- /**
46
- * Getting POST Var
47
- *
48
- * @param mixed $var var.
49
- * @param mixed $default default.
50
- * @return mixed
51
- */
52
- function spftestimonial_get_var( $var, $default = '' ) {
53
-
54
- if ( isset( $_POST[ $var ] ) ) { // phpcs:ignore
55
- return $_POST[ $var ]; // phpcs:ignore
56
- }
57
-
58
- if ( isset( $_GET[ $var ] ) ) { // phpcs:ignore
59
- return $_GET[ $var ]; // phpcs:ignore
60
- }
61
-
62
- return $default;
63
-
64
- }
65
- }
66
-
67
- if ( ! function_exists( 'spftestimonial_get_vars' ) ) {
68
- /**
69
- * Getting POST Vars
70
- *
71
- * @param mixed $var var.
72
- * @param mixed $depth depth.
73
- * @param mixed $default default.
74
- * @return mixed
75
- */
76
- function spftestimonial_get_vars( $var, $depth, $default = '' ) {
77
-
78
- if ( isset( $_POST[ $var ][ $depth ] ) ) { // phpcs:ignore
79
- return $_POST[ $var ][ $depth ]; // phpcs:ignore
80
- }
81
-
82
- if ( isset( $_GET[ $var ][ $depth ] ) ) { // phpcs:ignore
83
- return $_GET[ $var ][ $depth ]; // phpcs:ignore
84
- }
85
-
86
- return $default;
87
-
88
- }
89
- }
90
-
91
- if ( ! function_exists( 'spftestimonial_microtime' ) ) {
92
  /**
93
- * Between Microtime
94
  *
95
- * @param string $timenow now.
96
- * @param string $starttime start.
97
- * @param int $timeout timeout.
98
- * @return bool
99
  */
100
  function spftestimonial_timeout( $timenow, $starttime, $timeout = 30 ) {
101
-
102
  return ( ( $timenow - $starttime ) < $timeout ) ? true : false;
103
-
104
  }
105
  }
106
 
 
 
 
 
 
 
 
107
  if ( ! function_exists( 'spftestimonial_wp_editor_api' ) ) {
108
  /**
109
- *
110
  * Check for wp editor api
111
  *
112
- * @since 1.0.0
113
- * @version 1.0.0
114
  */
115
  function spftestimonial_wp_editor_api() {
116
-
117
  global $wp_version;
118
-
119
  return version_compare( $wp_version, '4.8', '>=' );
120
-
121
  }
122
  }
1
  <?php
2
+ if ( ! defined( 'ABSPATH' ) ) {
3
+ die;
4
+ } // Cannot access directly.
5
  /**
 
6
  *
7
+ * Array search key & value
 
8
  *
9
+ * @since 1.0.0
10
+ * @version 1.0.0
11
  */
 
 
 
 
 
12
  if ( ! function_exists( 'spftestimonial_array_search' ) ) {
13
  /**
14
  * Array search key & value
15
  *
16
+ * @param mixed $array array.
17
  * @param mixed $key key.
18
+ * @param mixed $value value.
19
  * @return array
20
  */
21
  function spftestimonial_array_search( $array, $key, $value ) {
23
  $results = array();
24
 
25
  if ( is_array( $array ) ) {
26
+ if ( isset( $array[ $key ] ) && $array[ $key ] == $value ) {
27
  $results[] = $array;
28
  }
29
 
37
  }
38
  }
39
 
40
+ /**
41
+ *
42
+ * Between Microtime
43
+ *
44
+ * @since 1.0.0
45
+ * @version 1.0.0
46
+ */
47
+ if ( ! function_exists( 'spftestimonial_timeout' ) ) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
48
  /**
49
+ * Timeout function
50
  *
51
+ * @param mixed $timenow current.
52
+ * @param mixed $starttime start time.
53
+ * @param mixed $timeout time out.
54
+ * @return statement
55
  */
56
  function spftestimonial_timeout( $timenow, $starttime, $timeout = 30 ) {
 
57
  return ( ( $timenow - $starttime ) < $timeout ) ? true : false;
 
58
  }
59
  }
60
 
61
+ /**
62
+ *
63
+ * Check for wp editor api
64
+ *
65
+ * @since 1.0.0
66
+ * @version 1.0.0
67
+ */
68
  if ( ! function_exists( 'spftestimonial_wp_editor_api' ) ) {
69
  /**
 
70
  * Check for wp editor api
71
  *
72
+ * @return statement
 
73
  */
74
  function spftestimonial_wp_editor_api() {
 
75
  global $wp_version;
 
76
  return version_compare( $wp_version, '4.8', '>=' );
 
77
  }
78
  }
admin/views/framework/functions/sanitize.php CHANGED
@@ -1,14 +1,4 @@
1
  <?php
2
- /**
3
- * Framework sanitize file.
4
- *
5
- * @link https://shapedplugin.com
6
- * @since 2.0.0
7
- *
8
- * @package Testimonial_free
9
- * @subpackage Testimonial_free/framework
10
- */
11
-
12
  if ( ! defined( 'ABSPATH' ) ) {
13
  die;
14
  } // Cannot access directly.
@@ -19,31 +9,111 @@ if ( ! function_exists( 'spftestimonial_sanitize_replace_a_to_b' ) ) {
19
  * Sanitize
20
  * Replace letter a to letter b
21
  *
22
- * @param string $value string.
23
- *
24
- * @return string
25
  * @since 1.0.0
26
  * @version 1.0.0
27
  */
28
  function spftestimonial_sanitize_replace_a_to_b( $value ) {
29
-
30
  return str_replace( 'a', 'b', $value );
31
  }
32
  }
33
 
 
34
  if ( ! function_exists( 'spftestimonial_sanitize_title' ) ) {
35
  /**
36
  *
37
  * Sanitize title
38
  *
39
- * @param string $value string.
40
  *
41
- * @return string
42
  * @since 1.0.0
43
  * @version 1.0.0
44
  */
45
  function spftestimonial_sanitize_title( $value ) {
46
-
47
  return sanitize_title( $value );
48
  }
49
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  <?php
 
 
 
 
 
 
 
 
 
 
2
  if ( ! defined( 'ABSPATH' ) ) {
3
  die;
4
  } // Cannot access directly.
9
  * Sanitize
10
  * Replace letter a to letter b
11
  *
12
+ * @param mixed $value value.
 
 
13
  * @since 1.0.0
14
  * @version 1.0.0
15
  */
16
  function spftestimonial_sanitize_replace_a_to_b( $value ) {
 
17
  return str_replace( 'a', 'b', $value );
18
  }
19
  }
20
 
21
+
22
  if ( ! function_exists( 'spftestimonial_sanitize_title' ) ) {
23
  /**
24
  *
25
  * Sanitize title
26
  *
27
+ * @param mixed $value value.
28
  *
 
29
  * @since 1.0.0
30
  * @version 1.0.0
31
  */
32
  function spftestimonial_sanitize_title( $value ) {
 
33
  return sanitize_title( $value );
34
  }
35
  }
36
+
37
+
38
+ if ( ! function_exists( 'spftestimonial_sanitize_number_array_field' ) ) {
39
+ /**
40
+ *
41
+ * Sanitize number array
42
+ *
43
+ * @param mixed $array value.
44
+ * @since 1.0.0
45
+ * @version 1.0.0
46
+ */
47
+ function spftestimonial_sanitize_number_array_field( $array ) {
48
+
49
+ foreach ( $array as $key => $value ) {
50
+ if ( 'unit' === $key ) {
51
+ $array[ $key ] = wp_filter_nohtml_kses( $value );
52
+ } else {
53
+ if ( ! empty( $value ) ) {
54
+ $array[ $key ] = intval( $value );
55
+ }
56
+ }
57
+ }
58
+ return $array;
59
+ }
60
+ }
61
+
62
+ if ( ! function_exists( 'spftestimonial_sanitize_number_field' ) ) {
63
+ /**
64
+ *
65
+ * Sanitize number
66
+ *
67
+ * @param mixed $value value.
68
+ * @since 1.0.0
69
+ * @version 1.0.0
70
+ */
71
+ function spftestimonial_sanitize_number_field( $value ) {
72
+ if ( ! empty( $value ) ) {
73
+ return intval( $value );
74
+ }
75
+ }
76
+ }
77
+
78
+ if ( ! function_exists( 'spftestimonial_sanitize_border_field' ) ) {
79
+ /**
80
+ *
81
+ * Sanitize border field
82
+ *
83
+ * @param mixed $array value.
84
+ * @since 1.0.0
85
+ * @version 1.0.0
86
+ */
87
+ function spftestimonial_sanitize_border_field( $array ) {
88
+
89
+ foreach ( $array as $key => $value ) {
90
+ if ( 'style' == $key ) {
91
+ $array[ $key ] = sanitize_text_field( $value );
92
+ } elseif ( strpos( $key, 'color' ) !== false ) {
93
+ $array[ $key ] = sanitize_text_field( $value );
94
+ } else {
95
+ if ( ! empty( $value ) ) {
96
+ $array[ $key ] = intval( $value );
97
+ }
98
+ }
99
+ }
100
+ return $array;
101
+ }
102
+ }
103
+
104
+ if ( ! function_exists( 'spftestimonial_sanitize_color_group_field' ) ) {
105
+ /**
106
+ *
107
+ * Sanitize color group field
108
+ *
109
+ * @param mixed $array value.
110
+ * @since 1.0.0
111
+ * @version 1.0.0
112
+ */
113
+ function spftestimonial_sanitize_color_group_field( $array ) {
114
+ foreach ( $array as $key => $value ) {
115
+ $array[ $key ] = sanitize_text_field( $value );
116
+ }
117
+ return $array;
118
+ }
119
+ }
admin/views/framework/functions/validate.php CHANGED
@@ -1,64 +1,58 @@
1
- <?php
2
- /**
3
- * Framework validate file.
4
- *
5
- * @link https://shapedplugin.com
6
- * @since 2.0.0
7
- *
8
- * @package Testimonial_free
9
- * @subpackage Testimonial_free/framework
10
- */
11
-
12
- if ( ! defined( 'ABSPATH' ) ) {
13
- die;
14
- } // Cannot access directly.
15
 
16
  if ( ! function_exists( 'spftestimonial_validate_email' ) ) {
17
  /**
 
18
  * Email validate
19
  *
20
- * @param string $value email.
21
- * @return string
22
  * @since 1.0.0
23
  * @version 1.0.0
24
  */
25
  function spftestimonial_validate_email( $value ) {
26
 
27
  if ( ! filter_var( $value, FILTER_VALIDATE_EMAIL ) ) {
28
- return esc_html__( 'Please write a valid email address!', 'testimonial-free' );
29
  }
30
 
31
  }
32
  }
33
 
 
34
  if ( ! function_exists( 'spftestimonial_validate_numeric' ) ) {
35
  /**
 
36
  * Numeric validate
37
  *
38
- * @param int $value int.
39
- * @return int
 
40
  */
41
  function spftestimonial_validate_numeric( $value ) {
42
 
43
  if ( ! is_numeric( $value ) ) {
44
- return esc_html__( 'Please write a numeric data!', 'testimonial-free' );
45
  }
46
 
47
  }
48
  }
49
 
 
50
  if ( ! function_exists( 'spftestimonial_validate_required' ) ) {
51
  /**
 
52
  * Required validate
53
  *
54
- * @param string $value string.
55
- * @return string
56
  * @since 1.0.0
57
  * @version 1.0.0
58
  */
59
  function spftestimonial_validate_required( $value ) {
 
60
  if ( empty( $value ) ) {
61
- return esc_html__( 'Error! This field is required!', 'testimonial-free' );
62
  }
63
 
64
  }
@@ -66,108 +60,18 @@ if ( ! function_exists( 'spftestimonial_validate_required' ) ) {
66
 
67
  if ( ! function_exists( 'spftestimonial_validate_url' ) ) {
68
  /**
 
69
  * URL validate
70
  *
71
- * @param string $value value.
72
- * @return string
73
  * @since 1.0.0
74
  * @version 1.0.0
75
  */
76
  function spftestimonial_validate_url( $value ) {
77
 
78
  if ( ! filter_var( $value, FILTER_VALIDATE_URL ) ) {
79
- return esc_html__( 'Please write a valid url!', 'testimonial-free' );
80
- }
81
-
82
- }
83
- }
84
-
85
- if ( ! function_exists( 'spftestimonial_customize_validate_email' ) ) {
86
- /**
87
- *
88
- * Email validate for Customizer
89
- *
90
- * @param object $validity Email validity.
91
- * @param string $value The Email.
92
- * @param object $wp_customize Customize option.
93
- * @since 1.0.0
94
- * @version 1.0.0
95
- */
96
- function spftestimonial_customize_validate_email( $validity, $value, $wp_customize ) {
97
-
98
- if ( ! sanitize_email( $value ) ) {
99
- $validity->add( 'required', esc_html__( 'Please write a valid email address!', 'testimonial-free' ) );
100
- }
101
-
102
- return $validity;
103
-
104
- }
105
- }
106
-
107
- if ( ! function_exists( 'spftestimonial_customize_validate_numeric' ) ) {
108
- /**
109
- *
110
- * Numeric validate for Customizer
111
- *
112
- * @param object $validity Numeric validity.
113
- * @param string $value The Numeric.
114
- * @param object $wp_customize Customize option.
115
- *
116
- * @since 1.0.0
117
- * @version 1.0.0
118
- */
119
- function spftestimonial_customize_validate_numeric( $validity, $value, $wp_customize ) {
120
-
121
- if ( ! is_numeric( $value ) ) {
122
- $validity->add( 'required', esc_html__( 'Please write a numeric data!', 'testimonial-free' ) );
123
- }
124
-
125
- return $validity;
126
-
127
- }
128
- }
129
-
130
- if ( ! function_exists( 'spftestimonial_customize_validate_required' ) ) {
131
- /**
132
- *
133
- * Required validate for Customizer
134
- *
135
- * @param object $validity Required validity.
136
- * @param string $value The Required.
137
- * @param object $wp_customize Customize option.
138
- * @since 1.0.0
139
- * @version 1.0.0
140
- */
141
- function spftestimonial_customize_validate_required( $validity, $value, $wp_customize ) {
142
-
143
- if ( empty( $value ) ) {
144
- $validity->add( 'required', esc_html__( 'Error! This field is required!', 'testimonial-free' ) );
145
- }
146
-
147
- return $validity;
148
-
149
- }
150
- }
151
-
152
- if ( ! function_exists( 'spftestimonial_customize_validate_url' ) ) {
153
- /**
154
- *
155
- * URL validate for Customizer
156
- *
157
- * @param object $validity URL validity.
158
- * @param string $value The URL.
159
- * @param object $wp_customize Customize option.
160
- * @since 1.0.0
161
- * @version 1.0.0
162
- */
163
- function spftestimonial_customize_validate_url( $validity, $value, $wp_customize ) {
164
-
165
- if ( ! filter_var( $value, FILTER_VALIDATE_URL ) ) {
166
- $validity->add( 'required', esc_html__( 'Please write a valid url!', 'testimonial-free' ) );
167
  }
168
 
169
- return $validity;
170
-
171
  }
172
  }
173
-
1
+ <?php if ( ! defined( 'ABSPATH' ) ) {
2
+ die; } // Cannot access directly.
 
 
 
 
 
 
 
 
 
 
 
 
3
 
4
  if ( ! function_exists( 'spftestimonial_validate_email' ) ) {
5
  /**
6
+ *
7
  * Email validate
8
  *
9
+ * @param mixed $value value.
10
+ *
11
  * @since 1.0.0
12
  * @version 1.0.0
13
  */
14
  function spftestimonial_validate_email( $value ) {
15
 
16
  if ( ! filter_var( $value, FILTER_VALIDATE_EMAIL ) ) {
17
+ return esc_html__( 'Please enter a valid email address.', 'testimonial-free' );
18
  }
19
 
20
  }
21
  }
22
 
23
+
24
  if ( ! function_exists( 'spftestimonial_validate_numeric' ) ) {
25
  /**
26
+ *
27
  * Numeric validate
28
  *
29
+ * @param mixed $value value.
30
+ * @since 1.0.0
31
+ * @version 1.0.0
32
  */
33
  function spftestimonial_validate_numeric( $value ) {
34
 
35
  if ( ! is_numeric( $value ) ) {
36
+ return esc_html__( 'Please enter a valid number.', 'testimonial-free' );
37
  }
38
 
39
  }
40
  }
41
 
42
+
43
  if ( ! function_exists( 'spftestimonial_validate_required' ) ) {
44
  /**
45
+ *
46
  * Required validate
47
  *
48
+ * @param mixed $value value.
 
49
  * @since 1.0.0
50
  * @version 1.0.0
51
  */
52
  function spftestimonial_validate_required( $value ) {
53
+
54
  if ( empty( $value ) ) {
55
+ return esc_html__( 'This field is required.', 'testimonial-free' );
56
  }
57
 
58
  }
60
 
61
  if ( ! function_exists( 'spftestimonial_validate_url' ) ) {
62
  /**
63
+ *
64
  * URL validate
65
  *
66
+ * @param mixed $value value.
 
67
  * @since 1.0.0
68
  * @version 1.0.0
69
  */
70
  function spftestimonial_validate_url( $value ) {
71
 
72
  if ( ! filter_var( $value, FILTER_VALIDATE_URL ) ) {
73
+ return esc_html__( 'Please enter a valid URL.', 'testimonial-free' );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
74
  }
75
 
 
 
76
  }
77
  }
 
admin/views/testimonial-form.php CHANGED
@@ -119,7 +119,7 @@ $prefix_form_code_opts = 'sp_tpro_form_code_options';
119
  SPFTESTIMONIAL::createMetabox(
120
  $prefix_form_code_opts,
121
  array(
122
- 'title' => __( 'How To Use', 'testimonial-pro' ),
123
  'post_type' => 'spt_testimonial_form',
124
  'context' => 'side',
125
  'enqueue_webfont' => false,
119
  SPFTESTIMONIAL::createMetabox(
120
  $prefix_form_code_opts,
121
  array(
122
+ 'title' => __( 'How To Use', 'testimonial-free' ),
123
  'post_type' => 'spt_testimonial_form',
124
  'context' => 'side',
125
  'enqueue_webfont' => false,
admin/views/testimonial-metaboxs.php CHANGED
@@ -12,20 +12,6 @@
12
  if ( ! defined( 'ABSPATH' ) ) {
13
  die; } // Cannot access directly.
14
 
15
- if ( ! function_exists( 'spftestimonial_sanitize_text' ) ) {
16
- /**
17
- * Sanitize function for text field.
18
- *
19
- * @param string $value sanitize value.
20
- * @return string
21
- */
22
- function spftestimonial_sanitize_text( $value ) {
23
-
24
- $safe_text = filter_var( $value, FILTER_SANITIZE_STRING );
25
- return $safe_text;
26
-
27
- }
28
- }
29
 
30
  //
31
  // Metabox of the testimonial shortcode generator.
@@ -33,33 +19,6 @@ if ( ! function_exists( 'spftestimonial_sanitize_text' ) ) {
33
  //
34
  $prefix_shortcode_opts = 'sp_tpro_shortcode_options';
35
 
36
- /**
37
- * Preview metabox.
38
- *
39
- * @param string $prefix The metabox main Key.
40
- * @return void
41
- */
42
- SPFTESTIMONIAL::createMetabox(
43
- 'sp_tpro_live_preview',
44
- array(
45
- 'title' => __( 'Live Preview', 'testimonial-free' ),
46
- 'post_type' => 'spt_shortcodes',
47
- 'show_restore' => false,
48
- 'sp_tpro_shortcode' => false,
49
- 'context' => 'normal',
50
- )
51
- );
52
- SPFTESTIMONIAL::createSection(
53
- 'sp_tpro_live_preview',
54
- array(
55
- 'fields' => array(
56
- array(
57
- 'type' => 'preview',
58
- ),
59
- ),
60
- )
61
- );
62
-
63
  //
64
  // Real Testimonials metabox.
65
  //
@@ -70,9 +29,9 @@ SPFTESTIMONIAL::createMetabox(
70
  'class' => 'spt-main-class',
71
  'post_type' => 'spt_shortcodes',
72
  'context' => 'normal',
 
73
  )
74
  );
75
-
76
  //
77
  // General Settings section.
78
  //
@@ -88,8 +47,9 @@ SPFTESTIMONIAL::createSection(
88
  'type' => 'image_select',
89
  'title' => __( 'Layout Preset', 'testimonial-free' ),
90
  'subtitle' => __( 'Select a layout to display the testimonials.', 'testimonial-free' ),
91
- 'desc' => __( 'To unlock more amazing Testimonial Layouts (Grid, Masonry, List, & Isotope), <a target="_blank" href="https://shapedplugin.com/plugin/testimonial-pro/?ref=1"><b>Upgrade To Pro!</b></a>.', 'testimonial-free' ),
92
  'class' => 'tfree-layout-preset',
 
93
  'options' => array(
94
  'slider' => array(
95
  'image' => plugin_dir_url( __FILE__ ) . 'framework/assets/images/layout/slider.svg',
@@ -124,6 +84,7 @@ SPFTESTIMONIAL::createSection(
124
  'type' => 'select_f',
125
  'title' => __( 'Filter Testimonials', 'testimonial-free' ),
126
  'subtitle' => __( 'Select an option to display the testimonials.', 'testimonial-free' ),
 
127
  'options' => array(
128
  'latest' => array(
129
  'name' => __( 'Latest', 'testimonial-free' ),
@@ -150,6 +111,7 @@ SPFTESTIMONIAL::createSection(
150
  'title' => __( 'Limit', 'testimonial-free' ),
151
  'subtitle' => __( 'Limit number of testimonials to show. Leave it empty to show all testimonials.', 'testimonial-free' ),
152
  'default' => '12',
 
153
  'min' => -1,
154
  ),
155
  array(
@@ -157,6 +119,7 @@ SPFTESTIMONIAL::createSection(
157
  'type' => 'column',
158
  'title' => __( 'Responsive Column(s)', 'testimonial-free' ),
159
  'subtitle' => __( 'Set number of column(s) in different devices for responsive view.', 'testimonial-free' ),
 
160
  'default' => array(
161
  'large_desktop' => '1',
162
  'desktop' => '1',
@@ -173,6 +136,7 @@ SPFTESTIMONIAL::createSection(
173
  'title' => __( 'Random Order', 'testimonial-free' ),
174
  'subtitle' => __( 'Check to show testimonials random order. (Pro)', 'testimonial-free' ),
175
  'default' => false,
 
176
  ),
177
  array(
178
  'id' => 'testimonial_order_by',
@@ -185,6 +149,7 @@ SPFTESTIMONIAL::createSection(
185
  'title' => __( 'Title', 'testimonial-free' ),
186
  'modified' => __( 'Modified', 'testimonial-free' ),
187
  ),
 
188
  'default' => 'date',
189
  ),
190
  array(
@@ -197,6 +162,7 @@ SPFTESTIMONIAL::createSection(
197
  'DESC' => __( 'Descending', 'testimonial-free' ),
198
  ),
199
  'default' => 'DESC',
 
200
  ),
201
  array(
202
  'id' => 'schema_markup',
@@ -207,6 +173,7 @@ SPFTESTIMONIAL::createSection(
207
  'text_off' => __( 'Disabled', 'testimonial-free' ),
208
  'text_width' => 94,
209
  'default' => false,
 
210
  ),
211
  array(
212
  'id' => 'preloader',
@@ -217,6 +184,7 @@ SPFTESTIMONIAL::createSection(
217
  'text_off' => __( 'Disabled', 'testimonial-free' ),
218
  'text_width' => 94,
219
  'default' => false,
 
220
  ),
221
  ),
222
  )
@@ -234,7 +202,8 @@ SPFTESTIMONIAL::createSection(
234
  'type' => 'image_select',
235
  'title' => __( 'Select Your Theme', 'testimonial-free' ),
236
  'subtitle' => __( 'Select a theme which you want to display. <b>Please note:</b> To get perfect view for some themes, you need to customize few settings below.', 'testimonial-free' ),
237
- 'desc' => __( 'Get Access to 9 Professionally Designed Testimonial Themes with Customization options, <a target="_blank" href="https://shapedplugin.com/plugin/testimonial-pro/?ref=1"><b>Upgrade to Pro!</b></a>', 'testimonial-free' ),
 
238
  'options' => array(
239
  'theme-one' => array(
240
  'image' => plugin_dir_url( __FILE__ ) . 'framework/assets/images/1.svg',
@@ -301,6 +270,7 @@ SPFTESTIMONIAL::createSection(
301
  'title' => __( 'Margin Between Testimonials', 'testimonial-free' ),
302
  'subtitle' => __( 'Set margin between the testimonials.', 'testimonial-free' ),
303
  'unit' => __( 'px', 'testimonial-free' ),
 
304
  'default' => 0,
305
  ),
306
  array(
@@ -310,6 +280,7 @@ SPFTESTIMONIAL::createSection(
310
  'type' => 'border',
311
  'title' => __( 'Testimonial Border', 'testimonial-free' ),
312
  'subtitle' => __( 'Set testimonial border.', 'testimonial-free' ),
 
313
  'all' => true,
314
  'default' => array(
315
  'all' => '1',
@@ -318,9 +289,6 @@ SPFTESTIMONIAL::createSection(
318
  ),
319
  ),
320
 
321
-
322
-
323
-
324
  array(
325
  'id' => 'testimonial_bg_three',
326
  'type' => 'color',
@@ -329,7 +297,7 @@ SPFTESTIMONIAL::createSection(
329
  'title' => __( 'Testimonial Background', 'testimonial-free' ),
330
  'subtitle' => __( 'Set testimonial background color.', 'testimonial-free' ),
331
  'default' => '#e57373',
332
-
333
  ),
334
 
335
  array(
@@ -339,6 +307,7 @@ SPFTESTIMONIAL::createSection(
339
  'attributes' => array( 'disabled' => 'disabled' ),
340
  'title' => __( 'Inner Padding', 'testimonial-free' ),
341
  'subtitle' => __( 'Set testimonial inner padding.', 'testimonial-free' ),
 
342
  'default' => array(
343
  'top' => '22',
344
  'right' => '22',
@@ -370,6 +339,7 @@ SPFTESTIMONIAL::createSection(
370
  'attributes' => array( 'disabled' => 'disabled' ),
371
  'title' => __( 'Testimonial Info Border', 'testimonial-free' ),
372
  'subtitle' => __( 'Set testimonial info border.', 'testimonial-free' ),
 
373
  'all' => true,
374
  'default' => array(
375
  'all' => '0',
@@ -385,6 +355,7 @@ SPFTESTIMONIAL::createSection(
385
  'title' => __( 'Background for Testimonial Info', 'testimonial-free' ),
386
  'subtitle' => __( 'Set background color for testimonial information.', 'testimonial-free' ),
387
  'default' => '#f1e9e0',
 
388
  ),
389
  array(
390
  'id' => 'testimonial_info_inner_padding',
@@ -393,6 +364,7 @@ SPFTESTIMONIAL::createSection(
393
  'attributes' => array( 'disabled' => 'disabled' ),
394
  'title' => __( 'Inner Padding for Testimonial Info', 'testimonial-free' ),
395
  'subtitle' => __( 'Set inner padding for testimonial information.', 'testimonial-free' ),
 
396
  'default' => array(
397
  'top' => '22',
398
  'right' => '22',
@@ -404,7 +376,7 @@ SPFTESTIMONIAL::createSection(
404
  ),
405
  array(
406
  'type' => 'notice',
407
- 'content' => __( 'To unlock the Theme based Customization options, <a target="_blank" href="https://shapedplugin.com/plugin/testimonial-pro/?ref=1"><b>Upgrade to Pro!</b></a>.', 'testimonial-free' ),
408
  ),
409
  ),
410
  )
@@ -428,6 +400,7 @@ SPFTESTIMONIAL::createSection(
428
  'text_off' => __( 'Hide', 'testimonial-free' ),
429
  'text_width' => 80,
430
  'default' => false,
 
431
  ),
432
  array(
433
  'type' => 'subheading',
@@ -442,12 +415,14 @@ SPFTESTIMONIAL::createSection(
442
  'text_off' => __( 'Hide', 'testimonial-free' ),
443
  'text_width' => 80,
444
  'default' => true,
 
445
  ),
446
  array(
447
  'id' => 'testimonial_title_tag',
448
  'type' => 'select',
449
  'title' => __( 'HTML Tag', 'testimonial-free' ),
450
  'subtitle' => __( 'Select testimonial title HTML tag.', 'testimonial-free' ),
 
451
  'options' => array(
452
  'h1' => 'h1',
453
  'h2' => 'h2',
@@ -475,6 +450,7 @@ SPFTESTIMONIAL::createSection(
475
  'text_off' => __( 'Hide', 'testimonial-free' ),
476
  'text_width' => 80,
477
  'default' => true,
 
478
  ),
479
  array(
480
  'id' => 'testimonial_content_type',
@@ -486,6 +462,7 @@ SPFTESTIMONIAL::createSection(
486
  'content_with_limit' => __( 'Content with Limit (Pro)', 'testimonial-free' ),
487
  ),
488
  'default' => 'full_content',
 
489
  'dependency' => array(
490
  'testimonial_text',
491
  '==',
@@ -503,6 +480,7 @@ SPFTESTIMONIAL::createSection(
503
  'text_off' => __( 'Hide', 'testimonial-free' ),
504
  'text_width' => 80,
505
  'default' => false,
 
506
  ),
507
  array(
508
  'type' => 'subheading',
@@ -517,12 +495,14 @@ SPFTESTIMONIAL::createSection(
517
  'text_off' => __( 'Hide', 'testimonial-free' ),
518
  'text_width' => 80,
519
  'default' => true,
 
520
  ),
521
  array(
522
  'id' => 'testimonial_name_tag',
523
  'type' => 'select',
524
  'title' => __( 'HTML Tag', 'testimonial-free' ),
525
  'subtitle' => __( 'Select reviewer name HTML tag.', 'testimonial-free' ),
 
526
  'options' => array(
527
  'h1' => 'h1',
528
  'h2' => 'h2',
@@ -550,12 +530,14 @@ SPFTESTIMONIAL::createSection(
550
  'text_off' => __( 'Hide', 'testimonial-free' ),
551
  'text_width' => 80,
552
  'default' => true,
 
553
  ),
554
  array(
555
  'id' => 'tpro_star_icon',
556
  'type' => 'icon_select',
557
- 'title' => __( 'Rating Icon', 'woo-quick-view-pro' ),
558
- 'subtitle' => __( 'Choose a rating icon.', 'woo-quick-view-pro' ),
 
559
  'options' => array(
560
  'fa fa-star' => 'fa fa-star',
561
  'fa fa-heart' => array(
@@ -597,6 +579,7 @@ SPFTESTIMONIAL::createSection(
597
  'subtitle' => __( 'Set color for rating.', 'testimonial-free' ),
598
  'default' => '#ffb900',
599
  'dependency' => array( 'testimonial_client_rating', '==', 'true' ),
 
600
  ),
601
  array(
602
  'id' => 'client_designation',
@@ -607,6 +590,7 @@ SPFTESTIMONIAL::createSection(
607
  'text_off' => __( 'Hide', 'testimonial-free' ),
608
  'text_width' => 80,
609
  'default' => true,
 
610
  ),
611
  array(
612
  'type' => 'subheading',
@@ -624,6 +608,7 @@ SPFTESTIMONIAL::createSection(
624
  'text_off' => __( 'Hide', 'testimonial-free' ),
625
  'text_width' => 80,
626
  'default' => false,
 
627
  ),
628
  array(
629
  'type' => 'subheading',
@@ -632,7 +617,7 @@ SPFTESTIMONIAL::createSection(
632
  array(
633
  'type' => 'notice',
634
  'style' => 'info',
635
- 'content' => __( 'To unlock the following pagination settings for Grid, Masonry, & List layouts,<a target="_blank" href="https://shapedplugin.com/plugin/testimonial-pro/?ref=1"><b> Upgrade To Pro!</b></a>', 'testimonial-free' ),
636
  ),
637
  array(
638
  'id' => 'grid_pagination',
@@ -645,6 +630,7 @@ SPFTESTIMONIAL::createSection(
645
  'text_off' => __( 'Disable', 'testimonial-free' ),
646
  'text_width' => 95,
647
  'default' => true,
 
648
  ),
649
  array(
650
  'id' => 'tp_pagination_type',
@@ -660,6 +646,7 @@ SPFTESTIMONIAL::createSection(
660
  'no_ajax' => __( 'No Ajax (Normal Pagination)', 'testimonial-free' ),
661
  ),
662
  'default' => 'ajax_load_more',
 
663
  ),
664
  array(
665
  'id' => 'tp_per_page',
@@ -668,6 +655,7 @@ SPFTESTIMONIAL::createSection(
668
  'attributes' => array( 'disabled' => 'disabled' ),
669
  'title' => __( 'Testimonial(s) to Show Per Page', 'testimonial-free' ),
670
  'subtitle' => __( 'Set number of testimonial(s) to show per page.', 'testimonial-free' ),
 
671
  'default' => 12,
672
  ),
673
  array(
@@ -691,6 +679,7 @@ SPFTESTIMONIAL::createSection(
691
  'right' => __( 'Right', 'testimonial-free' ),
692
  ),
693
  'default' => 'left',
 
694
  ),
695
  array(
696
  'id' => 'grid_pagination_margin',
@@ -699,6 +688,7 @@ SPFTESTIMONIAL::createSection(
699
  'attributes' => array( 'disabled' => 'disabled' ),
700
  'title' => __( 'Margin', 'testimonial-free' ),
701
  'subtitle' => __( 'Set pagination margin.', 'testimonial-free' ),
 
702
  'default' => array(
703
  'top' => '20',
704
  'right' => '0',
@@ -709,19 +699,19 @@ SPFTESTIMONIAL::createSection(
709
  'units' => array( 'px' ),
710
  ),
711
  array(
712
- 'id' => 'grid_pagination_colors',
713
- 'type' => 'color_group',
714
- 'class' => 'pro_only_field',
715
- 'attributes' => array( 'disabled' => 'disabled' ),
716
- 'title' => __( 'Pagination Color', 'testimonial-free' ),
717
- 'subtitle' => __( 'Set color for pagination.', 'testimonial-free' ),
718
- 'options' => array(
719
  'color' => __( 'Color', 'testimonial-free' ),
720
  'hover-color' => __( 'Hover Color', 'testimonial-free' ),
721
  'background' => __( 'Background', 'testimonial-free' ),
722
  'hover-background' => __( 'Hover Background', 'testimonial-free' ),
723
  ),
724
- 'default' => array(
725
  'color' => '#5e5e5e',
726
  'hover-color' => '#ffffff',
727
  'background' => '#ffffff',
@@ -735,6 +725,7 @@ SPFTESTIMONIAL::createSection(
735
  'attributes' => array( 'disabled' => 'disabled' ),
736
  'title' => __( 'Pagination Border', 'testimonial-free' ),
737
  'subtitle' => __( 'Set pagination border.', 'testimonial-free' ),
 
738
  'all' => true,
739
  'hover_color' => true,
740
  'default' => array(
@@ -767,6 +758,7 @@ SPFTESTIMONIAL::createSection(
767
  'text_off' => __( 'Hide', 'testimonial-free' ),
768
  'text_width' => 80,
769
  'default' => true,
 
770
  ),
771
 
772
  array(
@@ -777,6 +769,7 @@ SPFTESTIMONIAL::createSection(
777
  'title' => __( 'Enable Thumbnail Slider', 'testimonial-free' ),
778
  'subtitle' => __( 'Check to enable thumbnail slider. (Pro)', 'testimonial-free' ),
779
  'default' => false,
 
780
  ),
781
  array(
782
  'id' => 'client_image_style',
@@ -784,6 +777,7 @@ SPFTESTIMONIAL::createSection(
784
  'type' => 'image_select',
785
  'title' => __( 'Image Shape', 'testimonial-free' ),
786
  'subtitle' => __( 'Choose a image shape.', 'testimonial-free' ),
 
787
  'options' => array(
788
  'three' => array(
789
  'image' => plugin_dir_url( __FILE__ ) . 'framework/assets/images/image-shape/circle.svg',
@@ -813,6 +807,7 @@ SPFTESTIMONIAL::createSection(
813
  'title' => __( 'Testimonial Image Size', 'testimonial-free' ),
814
  'subtitle' => __( 'Select which size image to show with your Testimonials.', 'testimonial-free' ),
815
  'default' => 'tf-client-image-size',
 
816
  'dependency' => array(
817
  'client_image',
818
  '==',
@@ -845,6 +840,7 @@ SPFTESTIMONIAL::createSection(
845
  'type' => 'select',
846
  'title' => __( 'Image Mode', 'testimonial-free' ),
847
  'subtitle' => __( 'Select a image mode.', 'testimonial-free' ),
 
848
  'options' => array(
849
  'none' => __( 'Normal', 'testimonial-free' ),
850
  'normal_on_hover' => __( 'Grayscale and normal on hover (Pro)', 'testimonial-free' ),
@@ -864,6 +860,7 @@ SPFTESTIMONIAL::createSection(
864
  'text_off' => __( 'Hide', 'testimonial-free' ),
865
  'text_width' => 80,
866
  'default' => false,
 
867
  ),
868
  ),
869
  )
@@ -883,6 +880,7 @@ SPFTESTIMONIAL::createSection(
883
  'type' => 'button_set',
884
  'title' => __( 'Slider Mode', 'testimonial-free' ),
885
  'subtitle' => __( 'Set a slider mode. Slider Settings are disabled in the ticker mode. ', 'testimonial-free' ),
 
886
  'options' => array(
887
  'standard' => __( 'Standard', 'testimonial-free' ),
888
  'ticker' => array(
@@ -895,6 +893,7 @@ SPFTESTIMONIAL::createSection(
895
  array(
896
  'id' => 'slider_auto_play',
897
  'type' => 'button_set',
 
898
  'title' => __( 'AutoPlay', 'testimonial-free' ),
899
  'subtitle' => __( 'On/Off auto play.', 'testimonial-free' ),
900
  'options' => array(
@@ -913,6 +912,7 @@ SPFTESTIMONIAL::createSection(
913
  'min' => 100,
914
  'default' => 3000,
915
  'step' => 100,
 
916
  'unit' => __( 'ms', 'testimonial-free' ),
917
  'dependency' => array(
918
  'slider_auto_play',
@@ -926,6 +926,7 @@ SPFTESTIMONIAL::createSection(
926
  'title' => __( 'Pagination Speed', 'testimonial-free' ),
927
  'subtitle' => __( 'Set pagination speed in a millisecond. Default value 600ms.', 'testimonial-free' ),
928
  'unit' => __( 'ms', 'testimonial-free' ),
 
929
  'max' => 10000,
930
  'min' => 10,
931
  'default' => 600,
@@ -940,6 +941,7 @@ SPFTESTIMONIAL::createSection(
940
  'text_on' => __( 'Enabled', 'testimonial-free' ),
941
  'text_off' => __( 'Disabled', 'testimonial-free' ),
942
  'text_width' => 95,
 
943
  'dependency' => array(
944
  'slider_auto_play',
945
  'any',
@@ -955,12 +957,14 @@ SPFTESTIMONIAL::createSection(
955
  'text_off' => __( 'Disabled', 'testimonial-free' ),
956
  'text_width' => 95,
957
  'default' => true,
 
958
  ),
959
  array(
960
  'id' => 'slider_animation',
961
  'type' => 'select',
962
  'title' => __( 'Slider Animation', 'testimonial-free' ),
963
  'subtitle' => __( 'Fade effect works only on single column view.', 'testimonial-free' ),
 
964
  'options' => array(
965
  'slide' => __( 'Slide', 'testimonial-free' ),
966
  'fade' => __( 'Fade(Pro)', 'testimonial-free' ),
@@ -971,6 +975,7 @@ SPFTESTIMONIAL::createSection(
971
  array(
972
  'id' => 'slider_direction',
973
  'type' => 'button_set',
 
974
  'title' => __( 'Direction', 'testimonial-free' ),
975
  'subtitle' => __( 'Slider direction.', 'testimonial-free' ),
976
  'options' => array(
@@ -986,6 +991,7 @@ SPFTESTIMONIAL::createSection(
986
  array(
987
  'id' => 'navigation',
988
  'type' => 'button_set',
 
989
  'title' => __( 'Navigation', 'testimonial-free' ),
990
  'subtitle' => __( 'Show/Hide slider navigation.', 'testimonial-free' ),
991
  'options' => array(
@@ -1000,6 +1006,7 @@ SPFTESTIMONIAL::createSection(
1000
  'type' => 'color_group',
1001
  'title' => __( 'Color', 'testimonial-free' ),
1002
  'subtitle' => __( 'Set the navigation color.', 'testimonial-free' ),
 
1003
  'options' => array(
1004
  'color' => __( 'Color', 'testimonial-free' ),
1005
  'hover-color' => __( 'Hover Color', 'testimonial-free' ),
@@ -1025,6 +1032,7 @@ SPFTESTIMONIAL::createSection(
1025
  'subtitle' => __( 'Set the navigation border.', 'testimonial-free' ),
1026
  'all' => true,
1027
  'hover_color' => true,
 
1028
  'default' => array(
1029
  'all' => '2',
1030
  'style' => 'solid',
@@ -1053,12 +1061,14 @@ SPFTESTIMONIAL::createSection(
1053
  'hide_on_mobile' => __( 'Hide on Mobile', 'testimonial-free' ),
1054
  ),
1055
  'default' => 'true',
 
1056
  ),
1057
  array(
1058
  'id' => 'pagination_colors',
1059
  'type' => 'color_group',
1060
  'title' => __( 'Color', 'testimonial-free' ),
1061
  'subtitle' => __( 'Set the pagination color.', 'testimonial-free' ),
 
1062
  'options' => array(
1063
  'color' => __( 'Color', 'testimonial-free' ),
1064
  'active-color' => __( 'Active Color', 'testimonial-free' ),
@@ -1086,6 +1096,7 @@ SPFTESTIMONIAL::createSection(
1086
  'text_on' => __( 'Enabled', 'testimonial-free' ),
1087
  'text_off' => __( 'Disabled', 'testimonial-free' ),
1088
  'text_width' => 95,
 
1089
  ),
1090
  array(
1091
  'id' => 'slider_swipe',
@@ -1096,6 +1107,7 @@ SPFTESTIMONIAL::createSection(
1096
  'text_on' => __( 'Enabled', 'testimonial-free' ),
1097
  'text_off' => __( 'Disabled', 'testimonial-free' ),
1098
  'text_width' => 95,
 
1099
  ),
1100
  array(
1101
  'id' => 'slider_draggable',
@@ -1107,6 +1119,7 @@ SPFTESTIMONIAL::createSection(
1107
  'text_off' => __( 'Disabled', 'testimonial-free' ),
1108
  'text_width' => 95,
1109
  'dependency' => array( 'slider_swipe', '==', 'true' ),
 
1110
  ),
1111
  array(
1112
  'id' => 'swipe_to_slide',
@@ -1117,6 +1130,7 @@ SPFTESTIMONIAL::createSection(
1117
  'text_on' => __( 'Enabled', 'testimonial-free' ),
1118
  'text_off' => __( 'Disabled', 'testimonial-free' ),
1119
  'text_width' => 95,
 
1120
  'dependency' => array( 'slider_swipe', '==', 'true' ),
1121
  ),
1122
 
@@ -1136,7 +1150,7 @@ SPFTESTIMONIAL::createSection(
1136
  array(
1137
  'type' => 'notice',
1138
  'style' => 'normal',
1139
- 'content' => __( 'To unlock These Typography (940+ Google Fonts) options, <a target="_blank" href="https://shapedplugin.com/plugin/testimonial-pro/?ref=1"><b>Upgrade to Pro!</b></a> P.S. Note: The color fields work in the lite version.', 'testimonial-free' ),
1140
  ),
1141
  array(
1142
  'id' => 'section_title_font_load',
@@ -1145,6 +1159,7 @@ SPFTESTIMONIAL::createSection(
1145
  'subtitle' => __( 'On/Off google font for the section title.', 'testimonial-free' ),
1146
  'class' => 'sp-testimonial-font-load',
1147
  'default' => true,
 
1148
  ),
1149
  array(
1150
  'id' => 'section_title_typography',
@@ -1174,6 +1189,7 @@ SPFTESTIMONIAL::createSection(
1174
  'subtitle' => __( 'On/Off google font for the testimonial tagline or title.', 'testimonial-free' ),
1175
  'class' => 'sp-testimonial-font-load',
1176
  'default' => true,
 
1177
  ),
1178
  array(
1179
  'id' => 'testimonial_title_typography',
@@ -1209,6 +1225,7 @@ SPFTESTIMONIAL::createSection(
1209
  'subtitle' => __( 'On/Off google font for the testimonial content.', 'testimonial-free' ),
1210
  'class' => 'sp-testimonial-font-load',
1211
  'default' => true,
 
1212
  ),
1213
  array(
1214
  'id' => 'testimonial_text_typography',
@@ -1244,6 +1261,7 @@ SPFTESTIMONIAL::createSection(
1244
  'subtitle' => __( 'On/Off google font for the name.', 'testimonial-free' ),
1245
  'class' => 'sp-testimonial-font-load',
1246
  'default' => true,
 
1247
  ),
1248
  array(
1249
  'id' => 'client_name_typography',
@@ -1280,6 +1298,7 @@ SPFTESTIMONIAL::createSection(
1280
  'subtitle' => __( 'On/Off google font for the identity or position & company name.', 'testimonial-free' ),
1281
  'class' => 'sp-testimonial-font-load',
1282
  'default' => true,
 
1283
  ),
1284
  array(
1285
  'id' => 'client_designation_company_typography',
@@ -1316,6 +1335,7 @@ SPFTESTIMONIAL::createSection(
1316
  'subtitle' => __( 'On/Off google font for the location.', 'testimonial-free' ),
1317
  'class' => 'sp-testimonial-font-load',
1318
  'default' => true,
 
1319
  ),
1320
  array(
1321
  'id' => 'client_location_typography',
@@ -1353,6 +1373,7 @@ SPFTESTIMONIAL::createSection(
1353
  'subtitle' => __( 'On/Off google font for the phone or mobile.', 'testimonial-free' ),
1354
  'class' => 'sp-testimonial-font-load',
1355
  'default' => true,
 
1356
  ),
1357
  array(
1358
  'id' => 'client_phone_typography',
@@ -1390,6 +1411,7 @@ SPFTESTIMONIAL::createSection(
1390
  'subtitle' => __( 'On/Off google font for the email address.', 'testimonial-free' ),
1391
  'class' => 'sp-testimonial-font-load',
1392
  'default' => true,
 
1393
  ),
1394
  array(
1395
  'id' => 'client_email_typography',
@@ -1427,6 +1449,7 @@ SPFTESTIMONIAL::createSection(
1427
  'subtitle' => __( 'On/Off google font for the date.', 'testimonial-free' ),
1428
  'class' => 'sp-testimonial-font-load',
1429
  'default' => true,
 
1430
  ),
1431
  array(
1432
  'id' => 'testimonial_date_typography',
@@ -1464,6 +1487,7 @@ SPFTESTIMONIAL::createSection(
1464
  'subtitle' => __( 'On/Off google font for the website.', 'testimonial-free' ),
1465
  'class' => 'sp-testimonial-font-load',
1466
  'default' => true,
 
1467
  ),
1468
  array(
1469
  'id' => 'client_website_typography',
@@ -1501,6 +1525,7 @@ SPFTESTIMONIAL::createSection(
1501
  'subtitle' => __( 'On/Off google font for the isotope filter button.', 'testimonial-free' ),
1502
  'class' => 'sp-testimonial-font-load',
1503
  'default' => true,
 
1504
  ),
1505
  array(
1506
  'id' => 'filter_typography',
@@ -1587,7 +1612,7 @@ SPFTESTIMONIAL::createSection(
1587
  ),
1588
  array(
1589
  'type' => 'notice',
1590
- 'content' => __( 'To unlock the following extra reviewer information fields, <a target="_blank" href="https://shapedplugin.com/plugin/testimonial-pro/?ref=1"><b>Upgrade to Pro!</b></a>', 'testimonial-free' ),
1591
  ),
1592
  array(
1593
  'id' => 'tpro_email',
@@ -1595,7 +1620,7 @@ SPFTESTIMONIAL::createSection(
1595
  'attributes' => array( 'disabled' => 'disabled' ),
1596
  'type' => 'text',
1597
  'title' => __( 'E-mail Address', 'testimonial-free' ),
1598
- 'sanitize' => 'spftestimonial_sanitize_text',
1599
  ),
1600
 
1601
  array(
12
  if ( ! defined( 'ABSPATH' ) ) {
13
  die; } // Cannot access directly.
14
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
15
 
16
  //
17
  // Metabox of the testimonial shortcode generator.
19
  //
20
  $prefix_shortcode_opts = 'sp_tpro_shortcode_options';
21
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
22
  //
23
  // Real Testimonials metabox.
24
  //
29
  'class' => 'spt-main-class',
30
  'post_type' => 'spt_shortcodes',
31
  'context' => 'normal',
32
+ 'preview' => true,
33
  )
34
  );
 
35
  //
36
  // General Settings section.
37
  //
47
  'type' => 'image_select',
48
  'title' => __( 'Layout Preset', 'testimonial-free' ),
49
  'subtitle' => __( 'Select a layout to display the testimonials.', 'testimonial-free' ),
50
+ 'desc' => __( 'To unlock more amazing Testimonial Layouts (Grid, Masonry, List, & Isotope), <a target="_blank" href="https://shapedplugin.com/real-testimonials/?ref=1"><b>Upgrade To Pro!</b></a>.', 'testimonial-free' ),
51
  'class' => 'tfree-layout-preset',
52
+ 'sanitize' => 'sanitize_text_field',
53
  'options' => array(
54
  'slider' => array(
55
  'image' => plugin_dir_url( __FILE__ ) . 'framework/assets/images/layout/slider.svg',
84
  'type' => 'select_f',
85
  'title' => __( 'Filter Testimonials', 'testimonial-free' ),
86
  'subtitle' => __( 'Select an option to display the testimonials.', 'testimonial-free' ),
87
+ 'sanitize' => 'sanitize_text_field',
88
  'options' => array(
89
  'latest' => array(
90
  'name' => __( 'Latest', 'testimonial-free' ),
111
  'title' => __( 'Limit', 'testimonial-free' ),
112
  'subtitle' => __( 'Limit number of testimonials to show. Leave it empty to show all testimonials.', 'testimonial-free' ),
113
  'default' => '12',
114
+ 'sanitize' => 'spftestimonial_sanitize_number_field',
115
  'min' => -1,
116
  ),
117
  array(
119
  'type' => 'column',
120
  'title' => __( 'Responsive Column(s)', 'testimonial-free' ),
121
  'subtitle' => __( 'Set number of column(s) in different devices for responsive view.', 'testimonial-free' ),
122
+ 'sanitize' => 'spftestimonial_sanitize_number_array_field',
123
  'default' => array(
124
  'large_desktop' => '1',
125
  'desktop' => '1',
136
  'title' => __( 'Random Order', 'testimonial-free' ),
137
  'subtitle' => __( 'Check to show testimonials random order. (Pro)', 'testimonial-free' ),
138
  'default' => false,
139
+ 'sanitize' => 'rest_sanitize_boolean',
140
  ),
141
  array(
142
  'id' => 'testimonial_order_by',
149
  'title' => __( 'Title', 'testimonial-free' ),
150
  'modified' => __( 'Modified', 'testimonial-free' ),
151
  ),
152
+ 'sanitize' => 'sanitize_text_field',
153
  'default' => 'date',
154
  ),
155
  array(
162
  'DESC' => __( 'Descending', 'testimonial-free' ),
163
  ),
164
  'default' => 'DESC',
165
+ 'sanitize' => 'sanitize_text_field',
166
  ),
167
  array(
168
  'id' => 'schema_markup',
173
  'text_off' => __( 'Disabled', 'testimonial-free' ),
174
  'text_width' => 94,
175
  'default' => false,
176
+ 'sanitize' => 'rest_sanitize_boolean',
177
  ),
178
  array(
179
  'id' => 'preloader',
184
  'text_off' => __( 'Disabled', 'testimonial-free' ),
185
  'text_width' => 94,
186
  'default' => false,
187
+ 'sanitize' => 'rest_sanitize_boolean',
188
  ),
189
  ),
190
  )
202
  'type' => 'image_select',
203
  'title' => __( 'Select Your Theme', 'testimonial-free' ),
204
  'subtitle' => __( 'Select a theme which you want to display. <b>Please note:</b> To get perfect view for some themes, you need to customize few settings below.', 'testimonial-free' ),
205
+ 'desc' => __( 'Get Access to 9 Professionally Designed Testimonial Themes with Customization options, <a target="_blank" href="https://shapedplugin.com/real-testimonials/?ref=1"><b>Upgrade to Pro!</b></a>', 'testimonial-free' ),
206
+ 'sanitize' => 'sanitize_text_field',
207
  'options' => array(
208
  'theme-one' => array(
209
  'image' => plugin_dir_url( __FILE__ ) . 'framework/assets/images/1.svg',
270
  'title' => __( 'Margin Between Testimonials', 'testimonial-free' ),
271
  'subtitle' => __( 'Set margin between the testimonials.', 'testimonial-free' ),
272
  'unit' => __( 'px', 'testimonial-free' ),
273
+ 'sanitize' => 'spftestimonial_sanitize_number_field',
274
  'default' => 0,
275
  ),
276
  array(
280
  'type' => 'border',
281
  'title' => __( 'Testimonial Border', 'testimonial-free' ),
282
  'subtitle' => __( 'Set testimonial border.', 'testimonial-free' ),
283
+ 'sanitize' => 'spftestimonial_sanitize_border_field',
284
  'all' => true,
285
  'default' => array(
286
  'all' => '1',
289
  ),
290
  ),
291
 
 
 
 
292
  array(
293
  'id' => 'testimonial_bg_three',
294
  'type' => 'color',
297
  'title' => __( 'Testimonial Background', 'testimonial-free' ),
298
  'subtitle' => __( 'Set testimonial background color.', 'testimonial-free' ),
299
  'default' => '#e57373',
300
+ 'sanitize' => 'sanitize_text_field',
301
  ),
302
 
303
  array(
307
  'attributes' => array( 'disabled' => 'disabled' ),
308
  'title' => __( 'Inner Padding', 'testimonial-free' ),
309
  'subtitle' => __( 'Set testimonial inner padding.', 'testimonial-free' ),
310
+ 'sanitize' => 'spftestimonial_sanitize_number_array_field',
311
  'default' => array(
312
  'top' => '22',
313
  'right' => '22',
339
  'attributes' => array( 'disabled' => 'disabled' ),
340
  'title' => __( 'Testimonial Info Border', 'testimonial-free' ),
341
  'subtitle' => __( 'Set testimonial info border.', 'testimonial-free' ),
342
+ 'sanitize' => 'spftestimonial_sanitize_border_field',
343
  'all' => true,
344
  'default' => array(
345
  'all' => '0',
355
  'title' => __( 'Background for Testimonial Info', 'testimonial-free' ),
356
  'subtitle' => __( 'Set background color for testimonial information.', 'testimonial-free' ),
357
  'default' => '#f1e9e0',
358
+ 'sanitize' => 'sanitize_text_field',
359
  ),
360
  array(
361
  'id' => 'testimonial_info_inner_padding',
364
  'attributes' => array( 'disabled' => 'disabled' ),
365
  'title' => __( 'Inner Padding for Testimonial Info', 'testimonial-free' ),
366
  'subtitle' => __( 'Set inner padding for testimonial information.', 'testimonial-free' ),
367
+ 'sanitize' => 'spftestimonial_sanitize_number_array_field',
368
  'default' => array(
369
  'top' => '22',
370
  'right' => '22',
376
  ),
377
  array(
378
  'type' => 'notice',
379
+ 'content' => __( 'To unlock the Theme based Customization options, <a target="_blank" href="https://shapedplugin.com/real-testimonials/?ref=1"><b>Upgrade to Pro!</b></a>.', 'testimonial-free' ),
380
  ),
381
  ),
382
  )
400
  'text_off' => __( 'Hide', 'testimonial-free' ),
401
  'text_width' => 80,
402
  'default' => false,
403
+ 'sanitize' => 'rest_sanitize_boolean',
404
  ),
405
  array(
406
  'type' => 'subheading',
415
  'text_off' => __( 'Hide', 'testimonial-free' ),
416
  'text_width' => 80,
417
  'default' => true,
418
+ 'sanitize' => 'rest_sanitize_boolean',
419
  ),
420
  array(
421
  'id' => 'testimonial_title_tag',
422
  'type' => 'select',
423
  'title' => __( 'HTML Tag', 'testimonial-free' ),
424
  'subtitle' => __( 'Select testimonial title HTML tag.', 'testimonial-free' ),
425
+ 'sanitize' => 'sanitize_text_field',
426
  'options' => array(
427
  'h1' => 'h1',
428
  'h2' => 'h2',
450
  'text_off' => __( 'Hide', 'testimonial-free' ),
451
  'text_width' => 80,
452
  'default' => true,
453
+ 'sanitize' => 'rest_sanitize_boolean',
454
  ),
455
  array(
456
  'id' => 'testimonial_content_type',
462
  'content_with_limit' => __( 'Content with Limit (Pro)', 'testimonial-free' ),
463
  ),
464
  'default' => 'full_content',
465
+ 'sanitize' => 'sanitize_text_field',
466
  'dependency' => array(
467
  'testimonial_text',
468
  '==',
480
  'text_off' => __( 'Hide', 'testimonial-free' ),
481
  'text_width' => 80,
482
  'default' => false,
483
+ 'sanitize' => 'sanitize_text_field',
484
  ),
485
  array(
486
  'type' => 'subheading',
495
  'text_off' => __( 'Hide', 'testimonial-free' ),
496
  'text_width' => 80,
497
  'default' => true,
498
+ 'sanitize' => 'sanitize_text_field',
499
  ),
500
  array(
501
  'id' => 'testimonial_name_tag',
502
  'type' => 'select',
503
  'title' => __( 'HTML Tag', 'testimonial-free' ),
504
  'subtitle' => __( 'Select reviewer name HTML tag.', 'testimonial-free' ),
505
+ 'sanitize' => 'sanitize_text_field',
506
  'options' => array(
507
  'h1' => 'h1',
508
  'h2' => 'h2',
530
  'text_off' => __( 'Hide', 'testimonial-free' ),
531
  'text_width' => 80,
532
  'default' => true,
533
+ 'sanitize' => 'sanitize_text_field',
534
  ),
535
  array(
536
  'id' => 'tpro_star_icon',
537
  'type' => 'icon_select',
538
+ 'title' => __( 'Rating Icon', 'testimonial-free' ),
539
+ 'subtitle' => __( 'Choose a rating icon.', 'testimonial-free' ),
540
+ 'sanitize' => 'sanitize_text_field',
541
  'options' => array(
542
  'fa fa-star' => 'fa fa-star',
543
  'fa fa-heart' => array(
579
  'subtitle' => __( 'Set color for rating.', 'testimonial-free' ),
580
  'default' => '#ffb900',
581
  'dependency' => array( 'testimonial_client_rating', '==', 'true' ),
582
+ 'sanitize' => 'sanitize_text_field',
583
  ),
584
  array(
585
  'id' => 'client_designation',
590
  'text_off' => __( 'Hide', 'testimonial-free' ),
591
  'text_width' => 80,
592
  'default' => true,
593
+ 'sanitize' => 'sanitize_text_field',
594
  ),
595
  array(
596
  'type' => 'subheading',
608
  'text_off' => __( 'Hide', 'testimonial-free' ),
609
  'text_width' => 80,
610
  'default' => false,
611
+ 'sanitize' => 'rest_sanitize_boolean',
612
  ),
613
  array(
614
  'type' => 'subheading',
617
  array(
618
  'type' => 'notice',
619
  'style' => 'info',
620
+ 'content' => __( 'To unlock the following pagination settings for Grid, Masonry, & List layouts,<a target="_blank" href="https://shapedplugin.com/real-testimonials/?ref=1"><b> Upgrade To Pro!</b></a>', 'testimonial-free' ),
621
  ),
622
  array(
623
  'id' => 'grid_pagination',
630
  'text_off' => __( 'Disable', 'testimonial-free' ),
631
  'text_width' => 95,
632
  'default' => true,
633
+ 'sanitize' => 'rest_sanitize_boolean',
634
  ),
635
  array(
636
  'id' => 'tp_pagination_type',
646
  'no_ajax' => __( 'No Ajax (Normal Pagination)', 'testimonial-free' ),
647
  ),
648
  'default' => 'ajax_load_more',
649
+ 'sanitize' => 'sanitize_text_field',
650
  ),
651
  array(
652
  'id' => 'tp_per_page',
655
  'attributes' => array( 'disabled' => 'disabled' ),
656
  'title' => __( 'Testimonial(s) to Show Per Page', 'testimonial-free' ),
657
  'subtitle' => __( 'Set number of testimonial(s) to show per page.', 'testimonial-free' ),
658
+ 'sanitize' => 'spftestimonial_sanitize_number_field',
659
  'default' => 12,
660
  ),
661
  array(
679
  'right' => __( 'Right', 'testimonial-free' ),
680
  ),
681
  'default' => 'left',
682
+ 'sanitize' => 'sanitize_text_field',
683
  ),
684
  array(
685
  'id' => 'grid_pagination_margin',
688
  'attributes' => array( 'disabled' => 'disabled' ),
689
  'title' => __( 'Margin', 'testimonial-free' ),
690
  'subtitle' => __( 'Set pagination margin.', 'testimonial-free' ),
691
+ 'sanitize' => 'spftestimonial_sanitize_number_array_field',
692
  'default' => array(
693
  'top' => '20',
694
  'right' => '0',
699
  'units' => array( 'px' ),
700
  ),
701
  array(
702
+ 'id' => 'grid_pagination_colors',
703
+ 'type' => 'color_group',
704
+ 'class' => 'pro_only_field',
705
+ 'title' => __( 'Pagination Color', 'testimonial-free' ),
706
+ 'subtitle' => __( 'Set color for pagination.', 'testimonial-free' ),
707
+ 'sanitize' => 'spftestimonial_sanitize_color_group_field',
708
+ 'options' => array(
709
  'color' => __( 'Color', 'testimonial-free' ),
710
  'hover-color' => __( 'Hover Color', 'testimonial-free' ),
711
  'background' => __( 'Background', 'testimonial-free' ),
712
  'hover-background' => __( 'Hover Background', 'testimonial-free' ),
713
  ),
714
+ 'default' => array(
715
  'color' => '#5e5e5e',
716
  'hover-color' => '#ffffff',
717
  'background' => '#ffffff',
725
  'attributes' => array( 'disabled' => 'disabled' ),
726
  'title' => __( 'Pagination Border', 'testimonial-free' ),
727
  'subtitle' => __( 'Set pagination border.', 'testimonial-free' ),
728
+ 'sanitize' => 'spftestimonial_sanitize_border_field',
729
  'all' => true,
730
  'hover_color' => true,
731
  'default' => array(
758
  'text_off' => __( 'Hide', 'testimonial-free' ),
759
  'text_width' => 80,
760
  'default' => true,
761
+ 'sanitize' => 'rest_sanitize_boolean',
762
  ),
763
 
764
  array(
769
  'title' => __( 'Enable Thumbnail Slider', 'testimonial-free' ),
770
  'subtitle' => __( 'Check to enable thumbnail slider. (Pro)', 'testimonial-free' ),
771
  'default' => false,
772
+ 'sanitize' => 'rest_sanitize_boolean',
773
  ),
774
  array(
775
  'id' => 'client_image_style',
777
  'type' => 'image_select',
778
  'title' => __( 'Image Shape', 'testimonial-free' ),
779
  'subtitle' => __( 'Choose a image shape.', 'testimonial-free' ),
780
+ 'sanitize' => 'sanitize_text_field',
781
  'options' => array(
782
  'three' => array(
783
  'image' => plugin_dir_url( __FILE__ ) . 'framework/assets/images/image-shape/circle.svg',
807
  'title' => __( 'Testimonial Image Size', 'testimonial-free' ),
808
  'subtitle' => __( 'Select which size image to show with your Testimonials.', 'testimonial-free' ),
809
  'default' => 'tf-client-image-size',
810
+ 'sanitize' => 'sanitize_text_field',
811
  'dependency' => array(
812
  'client_image',
813
  '==',
840
  'type' => 'select',
841
  'title' => __( 'Image Mode', 'testimonial-free' ),
842
  'subtitle' => __( 'Select a image mode.', 'testimonial-free' ),
843
+ 'sanitize' => 'sanitize_text_field',
844
  'options' => array(
845
  'none' => __( 'Normal', 'testimonial-free' ),
846
  'normal_on_hover' => __( 'Grayscale and normal on hover (Pro)', 'testimonial-free' ),
860
  'text_off' => __( 'Hide', 'testimonial-free' ),
861
  'text_width' => 80,
862
  'default' => false,
863
+ 'sanitize' => 'rest_sanitize_boolean',
864
  ),
865
  ),
866
  )
880
  'type' => 'button_set',
881
  'title' => __( 'Slider Mode', 'testimonial-free' ),
882
  'subtitle' => __( 'Set a slider mode. Slider Settings are disabled in the ticker mode. ', 'testimonial-free' ),
883
+ 'sanitize' => 'sanitize_text_field',
884
  'options' => array(
885
  'standard' => __( 'Standard', 'testimonial-free' ),
886
  'ticker' => array(
893
  array(
894
  'id' => 'slider_auto_play',
895
  'type' => 'button_set',
896
+ 'sanitize' => 'sanitize_text_field',
897
  'title' => __( 'AutoPlay', 'testimonial-free' ),
898
  'subtitle' => __( 'On/Off auto play.', 'testimonial-free' ),
899
  'options' => array(
912
  'min' => 100,
913
  'default' => 3000,
914
  'step' => 100,
915
+ 'sanitize' => 'spftestimonial_sanitize_number_field',
916
  'unit' => __( 'ms', 'testimonial-free' ),
917
  'dependency' => array(
918
  'slider_auto_play',
926
  'title' => __( 'Pagination Speed', 'testimonial-free' ),
927
  'subtitle' => __( 'Set pagination speed in a millisecond. Default value 600ms.', 'testimonial-free' ),
928
  'unit' => __( 'ms', 'testimonial-free' ),
929
+ 'sanitize' => 'spftestimonial_sanitize_number_field',
930
  'max' => 10000,
931
  'min' => 10,
932
  'default' => 600,
941
  'text_on' => __( 'Enabled', 'testimonial-free' ),
942
  'text_off' => __( 'Disabled', 'testimonial-free' ),
943
  'text_width' => 95,
944
+ 'sanitize' => 'rest_sanitize_boolean',
945
  'dependency' => array(
946
  'slider_auto_play',
947
  'any',
957
  'text_off' => __( 'Disabled', 'testimonial-free' ),
958
  'text_width' => 95,
959
  'default' => true,
960
+ 'sanitize' => 'rest_sanitize_boolean',
961
  ),
962
  array(
963
  'id' => 'slider_animation',
964
  'type' => 'select',
965
  'title' => __( 'Slider Animation', 'testimonial-free' ),
966
  'subtitle' => __( 'Fade effect works only on single column view.', 'testimonial-free' ),
967
+ 'sanitize' => 'sanitize_text_field',
968
  'options' => array(
969
  'slide' => __( 'Slide', 'testimonial-free' ),
970
  'fade' => __( 'Fade(Pro)', 'testimonial-free' ),
975
  array(
976
  'id' => 'slider_direction',
977
  'type' => 'button_set',
978
+ 'sanitize' => 'sanitize_text_field',
979
  'title' => __( 'Direction', 'testimonial-free' ),
980
  'subtitle' => __( 'Slider direction.', 'testimonial-free' ),
981
  'options' => array(
991
  array(
992
  'id' => 'navigation',
993
  'type' => 'button_set',
994
+ 'sanitize' => 'sanitize_text_field',
995
  'title' => __( 'Navigation', 'testimonial-free' ),
996
  'subtitle' => __( 'Show/Hide slider navigation.', 'testimonial-free' ),
997
  'options' => array(
1006
  'type' => 'color_group',
1007
  'title' => __( 'Color', 'testimonial-free' ),
1008
  'subtitle' => __( 'Set the navigation color.', 'testimonial-free' ),
1009
+ 'sanitize' => 'spftestimonial_sanitize_color_group_field',
1010
  'options' => array(
1011
  'color' => __( 'Color', 'testimonial-free' ),
1012
  'hover-color' => __( 'Hover Color', 'testimonial-free' ),
1032
  'subtitle' => __( 'Set the navigation border.', 'testimonial-free' ),
1033
  'all' => true,
1034
  'hover_color' => true,
1035
+ 'sanitize' => 'spftestimonial_sanitize_border_field',
1036
  'default' => array(
1037
  'all' => '2',
1038
  'style' => 'solid',
1061
  'hide_on_mobile' => __( 'Hide on Mobile', 'testimonial-free' ),
1062
  ),
1063
  'default' => 'true',
1064
+ 'sanitize' => 'sanitize_text_field',
1065
  ),
1066
  array(
1067
  'id' => 'pagination_colors',
1068
  'type' => 'color_group',
1069
  'title' => __( 'Color', 'testimonial-free' ),
1070
  'subtitle' => __( 'Set the pagination color.', 'testimonial-free' ),
1071
+ 'sanitize' => 'spftestimonial_sanitize_color_group_field',
1072
  'options' => array(
1073
  'color' => __( 'Color', 'testimonial-free' ),
1074
  'active-color' => __( 'Active Color', 'testimonial-free' ),
1096
  'text_on' => __( 'Enabled', 'testimonial-free' ),
1097
  'text_off' => __( 'Disabled', 'testimonial-free' ),
1098
  'text_width' => 95,
1099
+ 'sanitize' => 'rest_sanitize_boolean',
1100
  ),
1101
  array(
1102
  'id' => 'slider_swipe',
1107
  'text_on' => __( 'Enabled', 'testimonial-free' ),
1108
  'text_off' => __( 'Disabled', 'testimonial-free' ),
1109
  'text_width' => 95,
1110
+ 'sanitize' => 'rest_sanitize_boolean',
1111
  ),
1112
  array(
1113
  'id' => 'slider_draggable',
1119
  'text_off' => __( 'Disabled', 'testimonial-free' ),
1120
  'text_width' => 95,
1121
  'dependency' => array( 'slider_swipe', '==', 'true' ),
1122
+ 'sanitize' => 'rest_sanitize_boolean',
1123
  ),
1124
  array(
1125
  'id' => 'swipe_to_slide',
1130
  'text_on' => __( 'Enabled', 'testimonial-free' ),
1131
  'text_off' => __( 'Disabled', 'testimonial-free' ),
1132
  'text_width' => 95,
1133
+ 'sanitize' => 'rest_sanitize_boolean',
1134
  'dependency' => array( 'slider_swipe', '==', 'true' ),
1135
  ),
1136
 
1150
  array(
1151
  'type' => 'notice',
1152
  'style' => 'normal',
1153
+ 'content' => __( 'To unlock These Typography (940+ Google Fonts) options, <a target="_blank" href="https://shapedplugin.com/real-testimonials/?ref=1"><b>Upgrade to Pro!</b></a> P.S. Note: The color fields work in the lite version.', 'testimonial-free' ),
1154
  ),
1155
  array(
1156
  'id' => 'section_title_font_load',
1159
  'subtitle' => __( 'On/Off google font for the section title.', 'testimonial-free' ),
1160
  'class' => 'sp-testimonial-font-load',
1161
  'default' => true,
1162
+ 'sanitize' => 'rest_sanitize_boolean',
1163
  ),
1164
  array(
1165
  'id' => 'section_title_typography',
1189
  'subtitle' => __( 'On/Off google font for the testimonial tagline or title.', 'testimonial-free' ),
1190
  'class' => 'sp-testimonial-font-load',
1191
  'default' => true,
1192
+ 'sanitize' => 'rest_sanitize_boolean',
1193
  ),
1194
  array(
1195
  'id' => 'testimonial_title_typography',
1225
  'subtitle' => __( 'On/Off google font for the testimonial content.', 'testimonial-free' ),
1226
  'class' => 'sp-testimonial-font-load',
1227
  'default' => true,
1228
+ 'sanitize' => 'rest_sanitize_boolean',
1229
  ),
1230
  array(
1231
  'id' => 'testimonial_text_typography',
1261
  'subtitle' => __( 'On/Off google font for the name.', 'testimonial-free' ),
1262
  'class' => 'sp-testimonial-font-load',
1263
  'default' => true,
1264
+ 'sanitize' => 'rest_sanitize_boolean',
1265
  ),
1266
  array(
1267
  'id' => 'client_name_typography',
1298
  'subtitle' => __( 'On/Off google font for the identity or position & company name.', 'testimonial-free' ),
1299
  'class' => 'sp-testimonial-font-load',
1300
  'default' => true,
1301
+ 'sanitize' => 'rest_sanitize_boolean',
1302
  ),
1303
  array(
1304
  'id' => 'client_designation_company_typography',
1335
  'subtitle' => __( 'On/Off google font for the location.', 'testimonial-free' ),
1336
  'class' => 'sp-testimonial-font-load',
1337
  'default' => true,
1338
+ 'sanitize' => 'rest_sanitize_boolean',
1339
  ),
1340
  array(
1341
  'id' => 'client_location_typography',
1373
  'subtitle' => __( 'On/Off google font for the phone or mobile.', 'testimonial-free' ),
1374
  'class' => 'sp-testimonial-font-load',
1375
  'default' => true,
1376
+ 'sanitize' => 'rest_sanitize_boolean',
1377
  ),
1378
  array(
1379
  'id' => 'client_phone_typography',
1411
  'subtitle' => __( 'On/Off google font for the email address.', 'testimonial-free' ),
1412
  'class' => 'sp-testimonial-font-load',
1413
  'default' => true,
1414
+ 'sanitize' => 'rest_sanitize_boolean',
1415
  ),
1416
  array(
1417
  'id' => 'client_email_typography',
1449
  'subtitle' => __( 'On/Off google font for the date.', 'testimonial-free' ),
1450
  'class' => 'sp-testimonial-font-load',
1451
  'default' => true,
1452
+ 'sanitize' => 'rest_sanitize_boolean',
1453
  ),
1454
  array(
1455
  'id' => 'testimonial_date_typography',
1487
  'subtitle' => __( 'On/Off google font for the website.', 'testimonial-free' ),
1488
  'class' => 'sp-testimonial-font-load',
1489
  'default' => true,
1490
+ 'sanitize' => 'rest_sanitize_boolean',
1491
  ),
1492
  array(
1493
  'id' => 'client_website_typography',
1525
  'subtitle' => __( 'On/Off google font for the isotope filter button.', 'testimonial-free' ),
1526
  'class' => 'sp-testimonial-font-load',
1527
  'default' => true,
1528
+ 'sanitize' => 'rest_sanitize_boolean',
1529
  ),
1530
  array(
1531
  'id' => 'filter_typography',
1612
  ),
1613
  array(
1614
  'type' => 'notice',
1615
+ 'content' => __( 'To unlock the following extra reviewer information fields, <a target="_blank" href="https://shapedplugin.com/real-testimonials/?ref=1"><b>Upgrade to Pro!</b></a>', 'testimonial-free' ),
1616
  ),
1617
  array(
1618
  'id' => 'tpro_email',
1620
  'attributes' => array( 'disabled' => 'disabled' ),
1621
  'type' => 'text',
1622
  'title' => __( 'E-mail Address', 'testimonial-free' ),
1623
+ 'sanitize' => 'sanitize_email',
1624
  ),
1625
 
1626
  array(
admin/views/testimonial-settings.php CHANGED
@@ -40,6 +40,7 @@ SPFTESTIMONIAL::createOptions(
40
  'class' => 'spt-main-class',
41
  'show_all_options' => false,
42
  'show_search' => false,
 
43
  'show_footer' => false,
44
  'footer_credit' => $text,
45
  'framework_title' => __( 'Settings', 'testimonial-free' ),
@@ -63,6 +64,7 @@ SPFTESTIMONIAL::createSection(
63
  'title' => __( 'Clean up Data on Deletion', 'testimonial-free' ),
64
  'title_help' => __( 'Delete all Real Testimonials data from the database on plugin deletion.', 'testimonial-free' ),
65
  'default' => false,
 
66
  ),
67
  array(
68
  'id' => 'tpro_dequeue_google_fonts',
@@ -74,6 +76,7 @@ SPFTESTIMONIAL::createSection(
74
  'class' => 'pro_switcher',
75
  'attributes' => array( 'disabled' => 'disabled' ),
76
  'default' => false,
 
77
  ),
78
  array(
79
  'type' => 'subheading',
@@ -87,6 +90,7 @@ SPFTESTIMONIAL::createSection(
87
  'text_off' => __( 'Dequeue', 'testimonial-free' ),
88
  'text_width' => 95,
89
  'default' => true,
 
90
  ),
91
  array(
92
  'type' => 'subheading',
@@ -100,6 +104,7 @@ SPFTESTIMONIAL::createSection(
100
  'text_off' => __( 'Dequeue', 'testimonial-free' ),
101
  'text_width' => 95,
102
  'default' => true,
 
103
  ),
104
  array(
105
  'id' => 'tf_dequeue_fa_css',
@@ -109,6 +114,7 @@ SPFTESTIMONIAL::createSection(
109
  'text_off' => __( 'Dequeue', 'testimonial-free' ),
110
  'text_width' => 95,
111
  'default' => true,
 
112
  ),
113
  ),
114
  )
@@ -123,19 +129,20 @@ SPFTESTIMONIAL::createSection(
123
  'name' => 'menu_settings',
124
  'title' => __( 'Menu Settings', 'testimonial-free' ),
125
  'icon' => 'fa fa-bars',
126
-
127
  'fields' => array(
128
  array(
129
- 'id' => 'tpro_singular_name',
130
- 'type' => 'text',
131
- 'title' => __( 'Singular name', 'testimonial-free' ),
132
- 'default' => 'Testimonial',
 
133
  ),
134
  array(
135
- 'id' => 'tpro_plural_name',
136
- 'type' => 'text',
137
- 'title' => __( 'Plural name', 'testimonial-free' ),
138
- 'default' => 'Testimonials',
 
139
  ),
140
 
141
  ),
@@ -157,7 +164,7 @@ SPFTESTIMONIAL::createSection(
157
  'style' => 'info',
158
  'content' => __(
159
  '<a href="https://www.google.com/recaptcha" target="_blank">reCAPTCHA</a> is a free anti-spam service of Google that protects your website from spam and abuse. <a
160
- href="https://www.google.com/recaptcha/admin#list" target="_blank"> Get your API Keys</a>. <a target="_blank" href="https://shapedplugin.com/plugin/testimonial-pro/?ref=1"><b>(Available in Pro)</b></a>',
161
  'testimonial-free'
162
  ),
163
  ),
@@ -167,6 +174,7 @@ href="https://www.google.com/recaptcha/admin#list" target="_blank"> Get your API
167
  'class' => 'pro_only_field',
168
  'attributes' => array( 'disabled' => 'disabled' ),
169
  'title' => __( 'Site key', 'testimonial-free' ),
 
170
  ),
171
  array(
172
  'id' => 'captcha_secret_key',
@@ -174,6 +182,8 @@ href="https://www.google.com/recaptcha/admin#list" target="_blank"> Get your API
174
  'class' => 'pro_only_field',
175
  'attributes' => array( 'disabled' => 'disabled' ),
176
  'title' => __( 'Secret key', 'testimonial-free' ),
 
 
177
  ),
178
 
179
  ),
@@ -189,15 +199,16 @@ SPFTESTIMONIAL::createSection(
189
  'name' => 'custom_css_section',
190
  'title' => __( 'Custom CSS', 'testimonial-free' ),
191
  'icon' => 'fa fa-css3',
192
-
193
  'fields' => array(
194
  array(
195
  'id' => 'custom_css',
196
  'type' => 'code_editor',
 
197
  'settings' => array(
198
  'theme' => 'dracula',
199
  'mode' => 'css',
200
  ),
 
201
  'title' => __( 'Custom CSS', 'testimonial-free' ),
202
  ),
203
  ),
40
  'class' => 'spt-main-class',
41
  'show_all_options' => false,
42
  'show_search' => false,
43
+ 'show_reset_all' => false,
44
  'show_footer' => false,
45
  'footer_credit' => $text,
46
  'framework_title' => __( 'Settings', 'testimonial-free' ),
64
  'title' => __( 'Clean up Data on Deletion', 'testimonial-free' ),
65
  'title_help' => __( 'Delete all Real Testimonials data from the database on plugin deletion.', 'testimonial-free' ),
66
  'default' => false,
67
+ 'sanitize' => 'rest_sanitize_boolean',
68
  ),
69
  array(
70
  'id' => 'tpro_dequeue_google_fonts',
76
  'class' => 'pro_switcher',
77
  'attributes' => array( 'disabled' => 'disabled' ),
78
  'default' => false,
79
+ 'sanitize' => 'rest_sanitize_boolean',
80
  ),
81
  array(
82
  'type' => 'subheading',
90
  'text_off' => __( 'Dequeue', 'testimonial-free' ),
91
  'text_width' => 95,
92
  'default' => true,
93
+ 'sanitize' => 'rest_sanitize_boolean',
94
  ),
95
  array(
96
  'type' => 'subheading',
104
  'text_off' => __( 'Dequeue', 'testimonial-free' ),
105
  'text_width' => 95,
106
  'default' => true,
107
+ 'sanitize' => 'rest_sanitize_boolean',
108
  ),
109
  array(
110
  'id' => 'tf_dequeue_fa_css',
114
  'text_off' => __( 'Dequeue', 'testimonial-free' ),
115
  'text_width' => 95,
116
  'default' => true,
117
+ 'sanitize' => 'rest_sanitize_boolean',
118
  ),
119
  ),
120
  )
129
  'name' => 'menu_settings',
130
  'title' => __( 'Menu Settings', 'testimonial-free' ),
131
  'icon' => 'fa fa-bars',
 
132
  'fields' => array(
133
  array(
134
+ 'id' => 'tpro_singular_name',
135
+ 'type' => 'text',
136
+ 'title' => __( 'Singular name', 'testimonial-free' ),
137
+ 'default' => 'Testimonial',
138
+ 'sanitize' => 'spftestimonial_sanitize_text',
139
  ),
140
  array(
141
+ 'id' => 'tpro_plural_name',
142
+ 'type' => 'text',
143
+ 'title' => __( 'Plural name', 'testimonial-free' ),
144
+ 'default' => 'Testimonials',
145
+ 'sanitize' => 'spftestimonial_sanitize_text',
146
  ),
147
 
148
  ),
164
  'style' => 'info',
165
  'content' => __(
166
  '<a href="https://www.google.com/recaptcha" target="_blank">reCAPTCHA</a> is a free anti-spam service of Google that protects your website from spam and abuse. <a
167
+ href="https://www.google.com/recaptcha/admin#list" target="_blank"> Get your API Keys</a>. <a target="_blank" href="https://shapedplugin.com/real-testimonials/?ref=1"><b>(Available in Pro)</b></a>',
168
  'testimonial-free'
169
  ),
170
  ),
174
  'class' => 'pro_only_field',
175
  'attributes' => array( 'disabled' => 'disabled' ),
176
  'title' => __( 'Site key', 'testimonial-free' ),
177
+ 'sanitize' => 'spftestimonial_sanitize_text',
178
  ),
179
  array(
180
  'id' => 'captcha_secret_key',
182
  'class' => 'pro_only_field',
183
  'attributes' => array( 'disabled' => 'disabled' ),
184
  'title' => __( 'Secret key', 'testimonial-free' ),
185
+ 'sanitize' => 'spftestimonial_sanitize_text',
186
+
187
  ),
188
 
189
  ),
199
  'name' => 'custom_css_section',
200
  'title' => __( 'Custom CSS', 'testimonial-free' ),
201
  'icon' => 'fa fa-css3',
 
202
  'fields' => array(
203
  array(
204
  'id' => 'custom_css',
205
  'type' => 'code_editor',
206
+ 'sanitize' => 'wp_strip_all_tags',
207
  'settings' => array(
208
  'theme' => 'dracula',
209
  'mode' => 'css',
210
  ),
211
+
212
  'title' => __( 'Custom CSS', 'testimonial-free' ),
213
  ),
214
  ),
admin/views/testimonial-tools.php CHANGED
@@ -56,28 +56,31 @@ SPFTESTIMONIAL::createSection(
56
  'selected_spt_shortcodes' => __( 'Selected Testimonial Views (Shortcodes)', 'testimonial-free' ),
57
  ),
58
  'default' => 'all_testimonial',
 
59
  ),
60
  array(
61
  'id' => 'lcp_post',
62
  'class' => 'spt_post_id',
63
  'type' => 'select',
64
  'title' => ' ',
65
- 'options' => 'spt_shortcodes',
66
  'chosen' => true,
67
  'sortable' => false,
68
  'multiple' => true,
69
  'placeholder' => __( 'Choose testimonial view(s)', 'testimonial-free' ),
70
  'query_args' => array(
 
71
  'posts_per_page' => -1,
72
  ),
73
  'dependency' => array( 'spt_what_export', '==', 'selected_spt_shortcodes', true ),
74
  ),
75
  array(
76
- 'id' => 'export',
77
- 'class' => 'spt_export',
78
- 'type' => 'button_set',
79
- 'title' => ' ',
80
- 'options' => array(
 
81
  '' => 'Export',
82
  ),
83
  ),
56
  'selected_spt_shortcodes' => __( 'Selected Testimonial Views (Shortcodes)', 'testimonial-free' ),
57
  ),
58
  'default' => 'all_testimonial',
59
+ 'sanitize' => 'spftestimonial_sanitize_text',
60
  ),
61
  array(
62
  'id' => 'lcp_post',
63
  'class' => 'spt_post_id',
64
  'type' => 'select',
65
  'title' => ' ',
66
+ 'options' => 'posts',
67
  'chosen' => true,
68
  'sortable' => false,
69
  'multiple' => true,
70
  'placeholder' => __( 'Choose testimonial view(s)', 'testimonial-free' ),
71
  'query_args' => array(
72
+ 'post_type' => 'spt_shortcodes',
73
  'posts_per_page' => -1,
74
  ),
75
  'dependency' => array( 'spt_what_export', '==', 'selected_spt_shortcodes', true ),
76
  ),
77
  array(
78
+ 'id' => 'export',
79
+ 'class' => 'spt_export',
80
+ 'type' => 'button_set',
81
+ 'title' => ' ',
82
+ 'sanitize' => 'spftestimonial_sanitize_text',
83
+ 'options' => array(
84
  '' => 'Export',
85
  ),
86
  ),
class/shortcodes.php CHANGED
@@ -84,8 +84,8 @@ class SP_TFREE_Shortcodes {
84
  register_post_type(
85
  'spt_testimonial_form',
86
  array(
87
- 'label' => __( 'Forms', 'testimonial-pro' ),
88
- 'description' => __( 'Generate forms for Frontend.', 'testimonial-pro' ),
89
  'public' => false,
90
  'has_archive' => false,
91
  'publicaly_queryable' => false,
@@ -96,18 +96,18 @@ class SP_TFREE_Shortcodes {
96
  'supports' => array( 'title' ),
97
  'capability_type' => 'post',
98
  'labels' => array(
99
- 'name' => __( 'Testimonial Forms', 'testimonial-pro' ),
100
- 'singular_name' => __( 'Testimonial Form', 'testimonial-pro' ),
101
- 'menu_name' => __( 'Testimonial Forms', 'testimonial-pro' ),
102
- 'add_new' => __( 'Add New', 'testimonial-pro' ),
103
- 'add_new_item' => __( 'Add New Form', 'testimonial-pro' ),
104
- 'edit' => __( 'Edit', 'testimonial-pro' ),
105
- 'edit_item' => __( 'Edit Form', 'testimonial-pro' ),
106
- 'new_item' => __( 'New Form', 'testimonial-pro' ),
107
- 'search_items' => __( 'Search Forms', 'testimonial-pro' ),
108
- 'not_found' => __( 'No Form Found', 'testimonial-pro' ),
109
- 'not_found_in_trash' => __( 'No Form Found in Trash', 'testimonial-pro' ),
110
- 'parent' => __( 'Parent Form', 'testimonial-pro' ),
111
  ),
112
  )
113
  );
84
  register_post_type(
85
  'spt_testimonial_form',
86
  array(
87
+ 'label' => __( 'Forms', 'testimonial-free' ),
88
+ 'description' => __( 'Generate forms for Frontend.', 'testimonial-free' ),
89
  'public' => false,
90
  'has_archive' => false,
91
  'publicaly_queryable' => false,
96
  'supports' => array( 'title' ),
97
  'capability_type' => 'post',
98
  'labels' => array(
99
+ 'name' => __( 'Testimonial Forms', 'testimonial-free' ),
100
+ 'singular_name' => __( 'Testimonial Form', 'testimonial-free' ),
101
+ 'menu_name' => __( 'Testimonial Forms', 'testimonial-free' ),
102
+ 'add_new' => __( 'Add New', 'testimonial-free' ),
103
+ 'add_new_item' => __( 'Add New Form', 'testimonial-free' ),
104
+ 'edit' => __( 'Edit', 'testimonial-free' ),
105
+ 'edit_item' => __( 'Edit Form', 'testimonial-free' ),
106
+ 'new_item' => __( 'New Form', 'testimonial-free' ),
107
+ 'search_items' => __( 'Search Forms', 'testimonial-free' ),
108
+ 'not_found' => __( 'No Form Found', 'testimonial-free' ),
109
+ 'not_found_in_trash' => __( 'No Form Found in Trash', 'testimonial-free' ),
110
+ 'parent' => __( 'Parent Form', 'testimonial-free' ),
111
  ),
112
  )
113
  );
includes/free/loader.php CHANGED
@@ -22,7 +22,6 @@ class SP_TFREE_Loader {
22
  require_once SP_TFREE_PATH . 'admin/views/widget.php';
23
  require_once SP_TFREE_PATH . 'public/views/shortcoderender.php';
24
  require_once SP_TFREE_PATH . 'public/views/deprecated-shortcodes.php';
25
- require_once SP_TFREE_PATH . 'admin/preview/class-testimonial-free-preview.php';
26
  require_once SP_TFREE_PATH . 'public/views/scripts.php';
27
  }
28
 
22
  require_once SP_TFREE_PATH . 'admin/views/widget.php';
23
  require_once SP_TFREE_PATH . 'public/views/shortcoderender.php';
24
  require_once SP_TFREE_PATH . 'public/views/deprecated-shortcodes.php';
 
25
  require_once SP_TFREE_PATH . 'public/views/scripts.php';
26
  }
27
 
includes/functions.php CHANGED
@@ -159,7 +159,7 @@ class SP_Testimonial_Free_Functions {
159
  <p class="sp_testimonial-mt-20 text-color-2 sp_testimonial-line-height-20 sp_testimonial-font-weight-400"><?php esc_html_e( 'Create unlimited Testimonial Collection Forms with our drag-and-drop form builder. Use our smartly designed testimonial form to collect detailed feedback from your customers.', 'testimonial-free' ); ?></p>
160
  </div>
161
  <div class="sp_testimonial-banner-button sp_testimonial-mt-40">
162
- <a class="sp_testimonial-btn sp_testimonial-btn-sky" href="https://shapedplugin.com/plugin/testimonial-pro/?ref=1" target="_blank">Upgrade To Pro Now</a>
163
  <a class="sp_testimonial-btn sp_testimonial-btn-border ml-16 sp_testimonial-mt-15" href="https://demo.shapedplugin.com/testimonial/" target="_blank">Live Demo</a>
164
  </div>
165
  </div>
@@ -409,7 +409,7 @@ class SP_Testimonial_Free_Functions {
409
  Happys Users in 160+ Countries </h2>
410
  <p class="sp_testimonial-font-16 sp_testimonial-mt-25 sp_testimonial-line-height-22">98% of customers are happy with <b>ShapedPlugin's</b> products and support. <br>
411
  So it’s a great time to join them.</p>
412
- <a class="sp_testimonial-btn sp_testimonial-btn-buy sp_testimonial-mt-40" href="https://shapedplugin.com/plugin/testimonial-pro/?ref=1" target="_blank">Buy Real Testimonials Pro Now!</a>
413
  <span>No Question Asked. 14 Days Money-back Guarantee!</span>
414
  </div>
415
  </div>
@@ -558,7 +558,7 @@ class SP_Testimonial_Free_Functions {
558
  </div>
559
  </div>
560
  <div class="pro-btn">
561
- <a href="https://shapedplugin.com/plugin/testimonial-pro/?ref=1" target="_blank">Upgrade To Pro Now</a>
562
  </div>
563
  </div>
564
  </div>
159
  <p class="sp_testimonial-mt-20 text-color-2 sp_testimonial-line-height-20 sp_testimonial-font-weight-400"><?php esc_html_e( 'Create unlimited Testimonial Collection Forms with our drag-and-drop form builder. Use our smartly designed testimonial form to collect detailed feedback from your customers.', 'testimonial-free' ); ?></p>
160
  </div>
161
  <div class="sp_testimonial-banner-button sp_testimonial-mt-40">
162
+ <a class="sp_testimonial-btn sp_testimonial-btn-sky" href="https://shapedplugin.com/real-testimonials/?ref=1" target="_blank">Upgrade To Pro Now</a>
163
  <a class="sp_testimonial-btn sp_testimonial-btn-border ml-16 sp_testimonial-mt-15" href="https://demo.shapedplugin.com/testimonial/" target="_blank">Live Demo</a>
164
  </div>
165
  </div>
409
  Happys Users in 160+ Countries </h2>
410
  <p class="sp_testimonial-font-16 sp_testimonial-mt-25 sp_testimonial-line-height-22">98% of customers are happy with <b>ShapedPlugin's</b> products and support. <br>
411
  So it’s a great time to join them.</p>
412
+ <a class="sp_testimonial-btn sp_testimonial-btn-buy sp_testimonial-mt-40" href="https://shapedplugin.com/real-testimonials/?ref=1" target="_blank">Buy Real Testimonials Pro Now!</a>
413
  <span>No Question Asked. 14 Days Money-back Guarantee!</span>
414
  </div>
415
  </div>
558
  </div>
559
  </div>
560
  <div class="pro-btn">
561
+ <a href="https://shapedplugin.com/real-testimonials/?ref=1" target="_blank">Upgrade To Pro Now</a>
562
  </div>
563
  </div>
564
  </div>
public/assets/css/style.css CHANGED
@@ -1,17 +1,20 @@
1
- div.sp-testimonial-free-section{
2
  display: none;
3
  }
4
- div.sp-testimonial-free-section .slick-list{
 
5
  margin-right: -24px;
6
  }
 
7
  div.sp-testimonial-free-section.slick-initialized {
8
  display: block;
9
  }
10
 
11
  .sp-testimonial-free-section .sp-testimonial-free-item:focus,
12
- .sp-testimonial-free-section .slick-dots li.slick-active button:focus{
13
  outline: none;
14
  }
 
15
  .sp-testimonial-free-section .sp-testimonial-free-item {
16
  text-align: center;
17
  padding-right: 24px;
@@ -29,10 +32,12 @@ div.sp-testimonial-free-section.slick-initialized {
29
  font-style: normal;
30
  text-align: center;
31
  }
 
32
  .sp-testimonial-free-section .tfree-testimonial-title {
33
  margin: 0px 0px 18px 0px;
34
  }
35
- .sp-testimonial-free-section .tfree-testimonial-title h3{
 
36
  font-size: 20px;
37
  line-height: 30px;
38
  text-transform: none;
@@ -43,6 +48,7 @@ div.sp-testimonial-free-section.slick-initialized {
43
  padding: 0;
44
  margin: 0;
45
  }
 
46
  .sp-testimonial-free-section .tfree-client-testimonial p,
47
  .sp-testimonial-free-section .tfree-client-testimonial {
48
  font-size: 16px;
@@ -54,14 +60,17 @@ div.sp-testimonial-free-section.slick-initialized {
54
  font-style: normal;
55
  margin: 0px 0px 20px 0px;
56
  }
 
57
  #sp_tpro-preview-box .sp-testimonial-free-section .tfree-client-testimonial {
58
  margin: 0px 20px 20px 0px;
59
  }
 
60
  .sp-testimonial-free-section .tfree-client-testimonial .tfree-testimonial-content {
61
  display: inline;
62
  margin: 0;
63
  padding: 0;
64
  }
 
65
  .sp-testimonial-free-section .tfree-client-name {
66
  font-size: 16px;
67
  line-height: 24px;
@@ -73,15 +82,18 @@ div.sp-testimonial-free-section.slick-initialized {
73
  margin: 0px 0px 8px 0px;
74
  padding: 0;
75
  }
 
76
  .sp-testimonial-free-section .tfree-client-rating {
77
  margin: 0px 0px 6px 0px;
78
  text-align: center;
79
  line-height: 1;
80
  }
 
81
  .sp-testimonial-free-section .tfree-client-rating i.fa {
82
  font-size: 19px;
83
  margin-right: -1px;
84
  }
 
85
  .sp-testimonial-free-section .tfree-client-designation {
86
  font-size: 16px;
87
  line-height: 24px;
@@ -93,16 +105,21 @@ div.sp-testimonial-free-section.slick-initialized {
93
  }
94
 
95
  /* Image */
96
- .sp-testimonial-free-section .sp-tfree-client-image{
97
  margin: 0px 0px 22px 0px;
98
  }
99
- .sp-testimonial-free-section .sp-tfree-client-image img{
 
100
  display: inline-block;
101
  -webkit-border-radius: 50%;
102
  -moz-border-radius: 50%;
103
  border-radius: 50%;
104
  }
105
 
 
 
 
 
106
  /* Dots */
107
  .sp-testimonial-free-section .slick-dots {
108
  margin: 0;
@@ -111,6 +128,7 @@ div.sp-testimonial-free-section.slick-initialized {
111
  list-style: none;
112
  text-align: center;
113
  }
 
114
  .sp-testimonial-free-section .slick-dots li {
115
  display: inline-block;
116
  border: 0;
@@ -120,6 +138,7 @@ div.sp-testimonial-free-section.slick-initialized {
120
  margin: 3px;
121
  overflow: hidden;
122
  }
 
123
  .sp-testimonial-free-section .slick-dots li button {
124
  border-radius: 50%;
125
  text-indent: -999px;
@@ -129,17 +148,18 @@ div.sp-testimonial-free-section.slick-initialized {
129
  border: 0;
130
  display: block;
131
  }
132
-
 
 
 
133
  /* Nav */
134
  .sp-testimonial-free-section .slick-prev,
135
- .sp-testimonial-free-section .slick-next{
136
  top: 50%;
137
- margin-top: -14px;
138
  font-size: 20px;
139
  line-height: 32px;
140
  display: block;
141
  width: 32px;
142
- height: 32px;
143
  padding: 0;
144
  cursor: pointer;
145
  outline: none;
@@ -149,18 +169,23 @@ div.sp-testimonial-free-section.slick-initialized {
149
  -webkit-transition: all 0.3s ease;
150
  -moz-transition: all 0.3s ease;
151
  transition: all 0.3s ease;
 
152
  }
153
- .sp-testimonial-free-section .slick-prev{
 
154
  left: 0;
155
  }
156
- .sp-testimonial-free-section .slick-next{
 
157
  right: 0;
158
  }
 
159
  /* Preloader */
160
- .sp-testimonial-free-wrapper{
161
  position: relative;
162
  overflow: hidden;
163
  }
 
164
  .tfree-preloader {
165
  background-color: #fff;
166
  background-repeat: no-repeat;
@@ -175,6 +200,7 @@ div.sp-testimonial-free-section.slick-initialized {
175
  right: 0;
176
  border: 0;
177
  }
 
178
  .tfree-preloader img {
179
  position: relative;
180
  top: 50%;
1
+ div.sp-testimonial-free-section {
2
  display: none;
3
  }
4
+
5
+ div.sp-testimonial-free-section .slick-list {
6
  margin-right: -24px;
7
  }
8
+
9
  div.sp-testimonial-free-section.slick-initialized {
10
  display: block;
11
  }
12
 
13
  .sp-testimonial-free-section .sp-testimonial-free-item:focus,
14
+ .sp-testimonial-free-section .slick-dots li.slick-active button:focus {
15
  outline: none;
16
  }
17
+
18
  .sp-testimonial-free-section .sp-testimonial-free-item {
19
  text-align: center;
20
  padding-right: 24px;
32
  font-style: normal;
33
  text-align: center;
34
  }
35
+
36
  .sp-testimonial-free-section .tfree-testimonial-title {
37
  margin: 0px 0px 18px 0px;
38
  }
39
+
40
+ .sp-testimonial-free-section .tfree-testimonial-title h3 {
41
  font-size: 20px;
42
  line-height: 30px;
43
  text-transform: none;
48
  padding: 0;
49
  margin: 0;
50
  }
51
+
52
  .sp-testimonial-free-section .tfree-client-testimonial p,
53
  .sp-testimonial-free-section .tfree-client-testimonial {
54
  font-size: 16px;
60
  font-style: normal;
61
  margin: 0px 0px 20px 0px;
62
  }
63
+
64
  #sp_tpro-preview-box .sp-testimonial-free-section .tfree-client-testimonial {
65
  margin: 0px 20px 20px 0px;
66
  }
67
+
68
  .sp-testimonial-free-section .tfree-client-testimonial .tfree-testimonial-content {
69
  display: inline;
70
  margin: 0;
71
  padding: 0;
72
  }
73
+
74
  .sp-testimonial-free-section .tfree-client-name {
75
  font-size: 16px;
76
  line-height: 24px;
82
  margin: 0px 0px 8px 0px;
83
  padding: 0;
84
  }
85
+
86
  .sp-testimonial-free-section .tfree-client-rating {
87
  margin: 0px 0px 6px 0px;
88
  text-align: center;
89
  line-height: 1;
90
  }
91
+
92
  .sp-testimonial-free-section .tfree-client-rating i.fa {
93
  font-size: 19px;
94
  margin-right: -1px;
95
  }
96
+
97
  .sp-testimonial-free-section .tfree-client-designation {
98
  font-size: 16px;
99
  line-height: 24px;
105
  }
106
 
107
  /* Image */
108
+ .sp-testimonial-free-section .sp-tfree-client-image {
109
  margin: 0px 0px 22px 0px;
110
  }
111
+
112
+ .sp-testimonial-free-section .sp-tfree-client-image img {
113
  display: inline-block;
114
  -webkit-border-radius: 50%;
115
  -moz-border-radius: 50%;
116
  border-radius: 50%;
117
  }
118
 
119
+ .theme-twentytwentyone .sp-testimonial-free-section .sp-tfree-client-image img {
120
+ width: auto !important;
121
+ }
122
+
123
  /* Dots */
124
  .sp-testimonial-free-section .slick-dots {
125
  margin: 0;
128
  list-style: none;
129
  text-align: center;
130
  }
131
+
132
  .sp-testimonial-free-section .slick-dots li {
133
  display: inline-block;
134
  border: 0;
138
  margin: 3px;
139
  overflow: hidden;
140
  }
141
+
142
  .sp-testimonial-free-section .slick-dots li button {
143
  border-radius: 50%;
144
  text-indent: -999px;
148
  border: 0;
149
  display: block;
150
  }
151
+ .sp-testimonial-free-section .slick-dots li button:focus{
152
+ outline-offset: unset;
153
+ outline: none;
154
+ }
155
  /* Nav */
156
  .sp-testimonial-free-section .slick-prev,
157
+ .sp-testimonial-free-section .slick-next {
158
  top: 50%;
 
159
  font-size: 20px;
160
  line-height: 32px;
161
  display: block;
162
  width: 32px;
 
163
  padding: 0;
164
  cursor: pointer;
165
  outline: none;
169
  -webkit-transition: all 0.3s ease;
170
  -moz-transition: all 0.3s ease;
171
  transition: all 0.3s ease;
172
+ transform: translateY(-50px);
173
  }
174
+
175
+ .sp-testimonial-free-section .slick-prev {
176
  left: 0;
177
  }
178
+
179
+ .sp-testimonial-free-section .slick-next {
180
  right: 0;
181
  }
182
+
183
  /* Preloader */
184
+ .sp-testimonial-free-wrapper {
185
  position: relative;
186
  overflow: hidden;
187
  }
188
+
189
  .tfree-preloader {
190
  background-color: #fff;
191
  background-repeat: no-repeat;
200
  right: 0;
201
  border: 0;
202
  }
203
+
204
  .tfree-preloader img {
205
  position: relative;
206
  top: 50%;
public/assets/css/style.min.css CHANGED
@@ -1 +1 @@
1
- div.sp-testimonial-free-section{display:none}div.sp-testimonial-free-section .slick-list{margin-right:-24px}div.sp-testimonial-free-section.slick-initialized{display:block}.sp-testimonial-free-section .slick-dots li.slick-active button:focus,.sp-testimonial-free-section .sp-testimonial-free-item:focus{outline:0}.sp-testimonial-free-section .sp-testimonial-free-item{text-align:center;padding-right:24px;will-change:transform}#poststuff .sp-testimonial-free-wrapper h2.sp-testimonial-free-section-title,.sp-testimonial-free-wrapper h2.sp-testimonial-free-section-title{margin:0;padding:0;margin-bottom:50px;font-size:25px;line-height:22px;font-weight:600;font-style:normal;text-align:center}.sp-testimonial-free-section .tfree-testimonial-title{margin:0 0 18px 0}.sp-testimonial-free-section .tfree-testimonial-title h3{font-size:20px;line-height:30px;text-transform:none;text-align:center;letter-spacing:normal;font-weight:600;font-style:normal;padding:0;margin:0}.sp-testimonial-free-section .tfree-client-testimonial,.sp-testimonial-free-section .tfree-client-testimonial p{font-size:16px;line-height:26px;text-transform:none;text-align:center;letter-spacing:normal;font-weight:400;font-style:normal;margin:0 0 20px 0}#sp_tpro-preview-box .sp-testimonial-free-section .tfree-client-testimonial{margin:0 20px 20px 0}.sp-testimonial-free-section .tfree-client-testimonial .tfree-testimonial-content{display:inline;margin:0;padding:0}.sp-testimonial-free-section .tfree-client-name{font-size:16px;line-height:24px;text-transform:none;text-align:center;letter-spacing:normal;font-weight:700;font-style:normal;margin:0 0 8px 0;padding:0}.sp-testimonial-free-section .tfree-client-rating{margin:0 0 6px 0;text-align:center;line-height:1}.sp-testimonial-free-section .tfree-client-rating i.fa{font-size:19px;margin-right:-1px}.sp-testimonial-free-section .tfree-client-designation{font-size:16px;line-height:24px;text-transform:none;text-align:center;letter-spacing:normal;font-weight:400;font-style:normal}.sp-testimonial-free-section .sp-tfree-client-image{margin:0 0 22px 0}.sp-testimonial-free-section .sp-tfree-client-image img{display:inline-block;-webkit-border-radius:50%;-moz-border-radius:50%;border-radius:50%}.sp-testimonial-free-section .slick-dots{margin:0;margin-top:20px;padding:0;list-style:none;text-align:center}.sp-testimonial-free-section .slick-dots li{display:inline-block;border:0;padding:0;width:13px;height:13px;margin:3px;overflow:hidden}.sp-testimonial-free-section .slick-dots li button{border-radius:50%;text-indent:-999px;width:13px;height:13px;padding:0;border:0;display:block}.sp-testimonial-free-section .slick-next,.sp-testimonial-free-section .slick-prev{top:50%;margin-top:-14px;font-size:20px;line-height:32px;display:block;width:32px;height:32px;padding:0;cursor:pointer;outline:0;position:absolute;text-align:center;z-index:22;-webkit-transition:all .3s ease;-moz-transition:all .3s ease;transition:all .3s ease}.sp-testimonial-free-section .slick-prev{left:0}.sp-testimonial-free-section .slick-next{right:0}.sp-testimonial-free-wrapper{position:relative;overflow:hidden}.tfree-preloader{background-color:#fff;background-repeat:no-repeat;background-position:center center;position:absolute;z-index:90;width:100%;height:100%;text-align:center;top:0;left:0;right:0;border:0}.tfree-preloader img{position:relative;top:50%;display:inline-block;margin-top:-16px}
1
+ div.sp-testimonial-free-section{display:none}div.sp-testimonial-free-section .slick-list{margin-right:-24px}div.sp-testimonial-free-section.slick-initialized{display:block}.sp-testimonial-free-section .slick-dots li.slick-active button:focus,.sp-testimonial-free-section .sp-testimonial-free-item:focus{outline:0}.sp-testimonial-free-section .sp-testimonial-free-item{text-align:center;padding-right:24px;will-change:transform}#poststuff .sp-testimonial-free-wrapper h2.sp-testimonial-free-section-title,.sp-testimonial-free-wrapper h2.sp-testimonial-free-section-title{margin:0;padding:0;margin-bottom:50px;font-size:25px;line-height:22px;font-weight:600;font-style:normal;text-align:center}.sp-testimonial-free-section .tfree-testimonial-title{margin:0 0 18px 0}.sp-testimonial-free-section .tfree-testimonial-title h3{font-size:20px;line-height:30px;text-transform:none;text-align:center;letter-spacing:normal;font-weight:600;font-style:normal;padding:0;margin:0}.sp-testimonial-free-section .tfree-client-testimonial,.sp-testimonial-free-section .tfree-client-testimonial p{font-size:16px;line-height:26px;text-transform:none;text-align:center;letter-spacing:normal;font-weight:400;font-style:normal;margin:0 0 20px 0}#sp_tpro-preview-box .sp-testimonial-free-section .tfree-client-testimonial{margin:0 20px 20px 0}.sp-testimonial-free-section .tfree-client-testimonial .tfree-testimonial-content{display:inline;margin:0;padding:0}.sp-testimonial-free-section .tfree-client-name{font-size:16px;line-height:24px;text-transform:none;text-align:center;letter-spacing:normal;font-weight:700;font-style:normal;margin:0 0 8px 0;padding:0}.sp-testimonial-free-section .tfree-client-rating{margin:0 0 6px 0;text-align:center;line-height:1}.sp-testimonial-free-section .tfree-client-rating i.fa{font-size:19px;margin-right:-1px}.sp-testimonial-free-section .tfree-client-designation{font-size:16px;line-height:24px;text-transform:none;text-align:center;letter-spacing:normal;font-weight:400;font-style:normal}.sp-testimonial-free-section .sp-tfree-client-image{margin:0 0 22px 0}.sp-testimonial-free-section .sp-tfree-client-image img{display:inline-block;-webkit-border-radius:50%;-moz-border-radius:50%;border-radius:50%}.theme-twentytwentyone .sp-testimonial-free-section .sp-tfree-client-image img{width:auto!important}.sp-testimonial-free-section .slick-dots{margin:0;margin-top:20px;padding:0;list-style:none;text-align:center}.sp-testimonial-free-section .slick-dots li{display:inline-block;border:0;padding:0;width:13px;height:13px;margin:3px;overflow:hidden}.sp-testimonial-free-section .slick-dots li button{border-radius:50%;text-indent:-999px;width:13px;height:13px;padding:0;border:0;display:block}.sp-testimonial-free-section .slick-dots li button:focus{outline-offset:unset;outline:0}.sp-testimonial-free-section .slick-next,.sp-testimonial-free-section .slick-prev{top:50%;font-size:20px;line-height:32px;display:block;width:32px;padding:0;cursor:pointer;outline:0;position:absolute;text-align:center;z-index:22;-webkit-transition:all .3s ease;-moz-transition:all .3s ease;transition:all .3s ease;transform:translateY(-50px)}.sp-testimonial-free-section .slick-prev{left:0}.sp-testimonial-free-section .slick-next{right:0}.sp-testimonial-free-wrapper{position:relative;overflow:hidden}.tfree-preloader{background-color:#fff;background-repeat:no-repeat;background-position:center center;position:absolute;z-index:90;width:100%;height:100%;text-align:center;top:0;left:0;right:0;border:0}.tfree-preloader img{position:relative;top:50%;display:inline-block;margin-top:-16px}
public/assets/js/sp-slick-active.js CHANGED
@@ -33,8 +33,9 @@ jQuery(document).ready(function ($) {
33
  }).slick({
34
  pauseOnFocus: false,
35
  slidesToScroll: 1,
36
- prevArrow: "<div class='slick-prev'><i class='fa fa-angle-left'></i></div>",
37
- nextArrow: "<div class='slick-next'><i class='fa fa-angle-right'></i></div>",
 
38
  });
39
 
40
  // our multi slide adaptive height function passing slider object
@@ -83,5 +84,8 @@ jQuery(document).ready(function ($) {
83
  }
84
  });
85
  }
 
 
 
86
  });
87
  });
33
  }).slick({
34
  pauseOnFocus: false,
35
  slidesToScroll: 1,
36
+ accessibility: true,
37
+ prevArrow: "<button class='slick-prev' data-role='none' aria-label='Previous slide'><i class='fa fa-angle-left'></i></button>",
38
+ nextArrow: "<button class='slick-next' data-role='none' aria-label='Next slide'><i class='fa fa-angle-right'></i></button>",
39
  });
40
 
41
  // our multi slide adaptive height function passing slider object
84
  }
85
  });
86
  }
87
+ $('.sp_tpro-preview-box button.slick-next,.sp_tpro-preview-box button.slick-prev').click(function(e){
88
+ e.preventDefault();
89
+ })
90
  });
91
  });
public/assets/js/sp-slick-active.min.js CHANGED
@@ -1 +1 @@
1
- jQuery(document).ready((function($){$(".sp-testimonial-free-section").each((function(index){var _this=$(this),custom_id=$(this).attr("id"),preloader;if("1"==_this.data("preloader")){var parents_class,parents_siblings_id=$("#"+custom_id).parent(".sp-testimonial-free-wrapper").find(".tfree-preloader").attr("id");$(window).load((function(){$("#"+parents_siblings_id).animate({opacity:1},600).hide(),$("#"+custom_id).animate({opacity:1},600)}))}var tfree_custom_slider_id=$(this).attr("id"),tpCarouselData=$(this).data("slick");if(0!=tfree_custom_slider_id.length){var mySlider=$("#"+tfree_custom_slider_id).on("init",(function(slick){1==tpCarouselData.adaptiveHeight&&multiSlideAdaptiveHeight(this)})).on("beforeChange",(function(slick,currentSlide,nextSlide){1==tpCarouselData.adaptiveHeight&&multiSlideAdaptiveHeight(this)})).slick({pauseOnFocus:!1,slidesToScroll:1,prevArrow:"<div class='slick-prev'><i class='fa fa-angle-left'></i></div>",nextArrow:"<div class='slick-next'><i class='fa fa-angle-right'></i></div>"});function multiSlideAdaptiveHeight(slider){let activeSlides=[],tallestSlide=0;setTimeout((function(){$(".slick-track .slick-active",slider).each((function(i){activeSlides[i]=$(this).outerHeight()})),activeSlides.forEach((function(item){item>tallestSlide&&(tallestSlide=item)})),$(".slick-list",slider).height(tallestSlide).css({transition:"all .5s ease"})}),10)}$(window).on("resize",(function(){1==tpCarouselData.adaptiveHeight&&multiSlideAdaptiveHeight(mySlider)}))}}))}));
1
+ jQuery(document).ready((function($){$(".sp-testimonial-free-section").each((function(index){var _this=$(this),custom_id=$(this).attr("id"),preloader;if("1"==_this.data("preloader")){var parents_class,parents_siblings_id=$("#"+custom_id).parent(".sp-testimonial-free-wrapper").find(".tfree-preloader").attr("id");$(window).load((function(){$("#"+parents_siblings_id).animate({opacity:1},600).hide(),$("#"+custom_id).animate({opacity:1},600)}))}var tfree_custom_slider_id=$(this).attr("id"),tpCarouselData=$(this).data("slick");if(0!=tfree_custom_slider_id.length){var mySlider=$("#"+tfree_custom_slider_id).on("init",(function(slick){1==tpCarouselData.adaptiveHeight&&multiSlideAdaptiveHeight(this)})).on("beforeChange",(function(slick,currentSlide,nextSlide){1==tpCarouselData.adaptiveHeight&&multiSlideAdaptiveHeight(this)})).slick({pauseOnFocus:!1,slidesToScroll:1,accessibility:!0,prevArrow:"<button class='slick-prev' data-role='none' aria-label='Previous slide'><i class='fa fa-angle-left'></i></button>",nextArrow:"<button class='slick-next' data-role='none' aria-label='Next slide'><i class='fa fa-angle-right'></i></button>"});function multiSlideAdaptiveHeight(slider){let activeSlides=[],tallestSlide=0;setTimeout((function(){$(".slick-track .slick-active",slider).each((function(i){activeSlides[i]=$(this).outerHeight()})),activeSlides.forEach((function(item){item>tallestSlide&&(tallestSlide=item)})),$(".slick-list",slider).height(tallestSlide).css({transition:"all .5s ease"})}),10)}$(window).on("resize",(function(){1==tpCarouselData.adaptiveHeight&&multiSlideAdaptiveHeight(mySlider)}))}$(".sp_tpro-preview-box button.slick-next,.sp_tpro-preview-box button.slick-prev").click((function(e){e.preventDefault()}))}))}));
public/views/scripts.php CHANGED
@@ -77,19 +77,23 @@ class SP_TFREE_Front_Scripts {
77
  * Plugin Scripts and Styles
78
  */
79
  public function admin_front_scripts() {
80
- $setting_options = get_option( 'sp_testimonial_pro_options' );
81
- $dequeue_slick_css = isset( $setting_options['tf_dequeue_slick_css'] ) ? $setting_options['tf_dequeue_slick_css'] : true;
82
- $dequeue_fa_css = isset( $setting_options['tf_dequeue_fa_css'] ) ? $setting_options['tf_dequeue_fa_css'] : true;
83
- // CSS Files.
84
- if ( $dequeue_slick_css ) {
85
- wp_enqueue_style( 'admin-tfree-slick', SP_TFREE_URL . 'public/assets/css/slick.css', array(), SP_TFREE_VERSION );
86
- }
87
- if ( $dequeue_fa_css ) {
88
- wp_enqueue_style( 'admin-tfree-font-awesome', SP_TFREE_URL . 'public/assets/css/font-awesome.min.css', array(), SP_TFREE_VERSION );
89
- }
 
 
90
 
91
- wp_enqueue_style( 'admin-tfree-deprecated-style', SP_TFREE_URL . 'public/assets/css/deprecated-style.css', array(), SP_TFREE_VERSION );
92
- wp_enqueue_style( 'admin-tfree-style', SP_TFREE_URL . 'public/assets/css/style.css', array(), SP_TFREE_VERSION );
 
 
93
 
94
  }
95
 
77
  * Plugin Scripts and Styles
78
  */
79
  public function admin_front_scripts() {
80
+ $wpscreen = get_current_screen();
81
+ if ( 'spt_shortcodes' === $wpscreen->post_type ) {
82
+ $setting_options = get_option( 'sp_testimonial_pro_options' );
83
+ $dequeue_slick_css = isset( $setting_options['tf_dequeue_slick_css'] ) ? $setting_options['tf_dequeue_slick_css'] : true;
84
+ $dequeue_fa_css = isset( $setting_options['tf_dequeue_fa_css'] ) ? $setting_options['tf_dequeue_fa_css'] : true;
85
+ // CSS Files.
86
+ if ( $dequeue_slick_css ) {
87
+ wp_enqueue_style( 'admin-tfree-slick', SP_TFREE_URL . 'public/assets/css/slick.css', array(), SP_TFREE_VERSION );
88
+ }
89
+ if ( $dequeue_fa_css ) {
90
+ wp_enqueue_style( 'admin-tfree-font-awesome', SP_TFREE_URL . 'public/assets/css/font-awesome.min.css', array(), SP_TFREE_VERSION );
91
+ }
92
 
93
+ wp_enqueue_style( 'admin-tfree-deprecated-style', SP_TFREE_URL . 'public/assets/css/deprecated-style.css', array(), SP_TFREE_VERSION );
94
+ wp_enqueue_style( 'admin-tfree-style', SP_TFREE_URL . 'public/assets/css/style.css', array(), SP_TFREE_VERSION );
95
+ wp_enqueue_script( 'tfree-slick-min-js', SP_TFREE_URL . 'public/assets/js/slick.min.js', array( 'jquery' ), SP_TFREE_VERSION, true );
96
+ }
97
 
98
  }
99
 
public/views/shortcoderender.php CHANGED
@@ -114,6 +114,13 @@ if ( ! class_exists( 'TFREE_Shortcode_Render' ) ) {
114
  * @param array $post_id Shortcode ID.
115
  * @param array $setting_options get all layout options.
116
  * @param array $shortcode_data get all meta options.
 
 
 
 
 
 
 
117
  */
118
  public static function sp_tpro_html_show( $post_id, $setting_options, $shortcode_data, $tfree_one_star, $tfree_two_star, $tfree_three_star, $tfree_four_star, $tfree_five_star, $main_section_title ) {
119
  $theme_style = isset( $shortcode_data['theme_style'] ) ? $shortcode_data['theme_style'] : 'theme-one';
@@ -284,7 +291,7 @@ if ( ! class_exists( 'TFREE_Shortcode_Render' ) ) {
284
  }';
285
  }
286
  if ( $testimonial_title ) {
287
- $outline .= '#sp-testimonial-free-wrapper-' . $post_id . ' .sp-testimonial-free-section .tfree-testimonial-title h3{
288
  color: ' . $testimonial_title_color . ';
289
  }';
290
  }
@@ -314,25 +321,7 @@ if ( ! class_exists( 'TFREE_Shortcode_Render' ) ) {
314
  $preloader_style = ( $preloader ) ? '' : 'display: none;';
315
  $outline .= '<div class="tfree-preloader" id="tfree-preloader-' . $post_id . '" style="' . $preloader_style . '"><img src="' . SP_TFREE_URL . 'public/assets/img/preloader.gif"/></div>';
316
  }
317
- $outline .= '<div id="sp-testimonial-free-' . $post_id . '" class="sp-testimonial-free-section tfree-style-' . $theme_style . '" dir="' . $slider_direction . '" data-preloader="' . $preloader . '" data-slick=\'{"dots": ' . $pagination . ', "adaptiveHeight": ' . $adaptive_height . ', "pauseOnHover": ' . $slider_pause_on_hover . ', "slidesToShow": ' . $columns_large_desktop . ', "speed": ' . $slider_scroll_speed . ', "arrows": ' . $navigation . ', "autoplay": ' . $auto_play . ', "autoplaySpeed": ' . $slider_auto_play_speed . ', "swipe": ' . $slider_swipe . ', "swipeToSlide": ' . $swipe_to_slide . ', "draggable": ' . $slider_draggable . ', "rtl": ' . $rtl_mode . ', "infinite": ' . $slider_infinite . ', "responsive": [
318
- {
319
- "breakpoint": 1280, "settings": { "slidesToShow": ' . $columns_desktop . ' }
320
- },
321
- {
322
- "breakpoint": 980, "settings": { "slidesToShow": ' . $columns_laptop . ' }
323
- },
324
- {
325
- "breakpoint": 736, "settings": { "slidesToShow": ' . $columns_tablet . ' }
326
- },
327
- {
328
- "breakpoint": 480, "settings": {
329
- "slidesToShow": ' . $columns_mobile . ',
330
- "dots": ' . $pagination_mobile . ',
331
- "arrows": ' . $navigation_mobile . ',
332
- "autoplay": ' . $auto_play_mobile . '
333
- }
334
- }
335
- ] }\'>';
336
  $total_rating_count = 0;
337
  $total_rated_testimonials = 0;
338
  if ( $post_query->have_posts() ) {
114
  * @param array $post_id Shortcode ID.
115
  * @param array $setting_options get all layout options.
116
  * @param array $shortcode_data get all meta options.
117
+ * @param mixed $tfree_one_star one star.
118
+ * @param mixed $tfree_two_star two star.
119
+ * @param mixed $tfree_three_star three star.
120
+ * @param mixed $tfree_four_star four star.
121
+ * @param mixed $tfree_five_star five star.
122
+ * @param mixed $main_section_title section title.
123
+ * @return void
124
  */
125
  public static function sp_tpro_html_show( $post_id, $setting_options, $shortcode_data, $tfree_one_star, $tfree_two_star, $tfree_three_star, $tfree_four_star, $tfree_five_star, $main_section_title ) {
126
  $theme_style = isset( $shortcode_data['theme_style'] ) ? $shortcode_data['theme_style'] : 'theme-one';
291
  }';
292
  }
293
  if ( $testimonial_title ) {
294
+ $outline .= '#sp-testimonial-free-wrapper-' . $post_id . ' .sp-testimonial-free-section .tfree-testimonial-title{
295
  color: ' . $testimonial_title_color . ';
296
  }';
297
  }
321
  $preloader_style = ( $preloader ) ? '' : 'display: none;';
322
  $outline .= '<div class="tfree-preloader" id="tfree-preloader-' . $post_id . '" style="' . $preloader_style . '"><img src="' . SP_TFREE_URL . 'public/assets/img/preloader.gif"/></div>';
323
  }
324
+ $outline .= '<div id="sp-testimonial-free-' . $post_id . '" class="sp-testimonial-free-section tfree-style-' . $theme_style . '" dir="' . $slider_direction . '" data-preloader="' . $preloader . '" data-slick=\'{"dots": ' . $pagination . ', "adaptiveHeight": ' . $adaptive_height . ', "pauseOnHover": ' . $slider_pause_on_hover . ', "slidesToShow": ' . $columns_large_desktop . ', "speed": ' . $slider_scroll_speed . ', "arrows": ' . $navigation . ', "autoplay": ' . $auto_play . ', "autoplaySpeed": ' . $slider_auto_play_speed . ', "swipe": ' . $slider_swipe . ', "swipeToSlide": ' . $swipe_to_slide . ', "draggable": ' . $slider_draggable . ', "rtl": ' . $rtl_mode . ', "infinite": ' . $slider_infinite . ', "responsive": [{"breakpoint": 1280, "settings": { "slidesToShow": ' . $columns_desktop . ' }},{"breakpoint": 980, "settings": { "slidesToShow": ' . $columns_laptop . ' }},{"breakpoint": 736, "settings": { "slidesToShow": ' . $columns_tablet . ' }},{"breakpoint": 480, "settings": {"slidesToShow": ' . $columns_mobile . ',"dots": ' . $pagination_mobile . ',"arrows": ' . $navigation_mobile . ',"autoplay": ' . $auto_play_mobile . '}}] }\'>';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
325
  $total_rating_count = 0;
326
  $total_rated_testimonials = 0;
327
  if ( $post_query->have_posts() ) {
readme.txt CHANGED
@@ -3,8 +3,8 @@ Contributors: shapedplugin, rubel_miah, khalilu, shamimmiashuhagh
3
  Donate link: http://shapedplugin.com/donate
4
  Tags: testimonial, testimonials, testimonial showcase, testimonials showcase, testimonial slider, testimonials slider, testimonial carousel, testimonial front-end submission form, testimonials widget, easy testimonial, testimonial rotator, random testimonials, custom testimonial, collect testimonials, social proof, simple testimonial plugin, best testimonials showcase plugin, free testimonial, customers reviews, real testimonials
5
  Requires at least: 4.0
6
- Tested up to: 5.8.2
7
- Stable tag: 2.4.2
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
@@ -13,7 +13,7 @@ Most customizable. Developer-friendly. Active support. Manage and display testim
13
 
14
  == Description ==
15
 
16
- [__Live Demo__](https://demo.shapedplugin.com/testimonial/) | [__Documentation__](https://docs.shapedplugin.com/docs/testimonial/overview/) | [__Support__](https://shapedplugin.com/create-support-ticket/) | [__Upgrade To Pro»__](https://shapedplugin.com/plugin/testimonial-pro/?ref=1)
17
 
18
  [youtube https://www.youtube.com/watch?list=PLoUb-7uG-5jPTDu5wiWwKhJNuWFWSyA5T&v=58a3L4q_8Tc]
19
 
@@ -102,7 +102,7 @@ Want to build easily credibility for your business and boost your conversion rat
102
 
103
  Since Testimonials are so important to your potential customers, it is important that you showcase them effectively on your website and that you are regularly collecting fresh testimonials. Real Testimonials Pro helps you do both.
104
 
105
- [__Live Demo__](https://demo.shapedplugin.com/testimonial/) | [__Documentation__](https://docs.shapedplugin.com/docs/testimonial-pro/introduction/) | [__Premium Support__](https://shapedplugin.com/create-new-ticket/) | [__Upgrade To Pro»__](https://shapedplugin.com/plugin/testimonial-pro/?ref=1)
106
 
107
  **Real Testimonials Pro – Getting started**
108
 
@@ -181,7 +181,7 @@ Since Testimonials are so important to your potential customers, it is important
181
  * One To One Fast & Friendly Support.
182
  * Extensive Online docs & Video Tutorials.
183
  * Any new features we add in the future (which is often).
184
- * [__Full list of PRO features»__](https://shapedplugin.com/plugin/testimonial-pro/?ref=1)
185
 
186
 
187
  = Page Builders Ready =
@@ -270,7 +270,7 @@ No coding skills required - very easy to use. No more pain writing any shortcode
270
  Yes. If you already have testimonials in the free version on your theme or site, you will automatically get the testimonials to use in the Pro version.
271
 
272
  = Should I purchase the Pro version? =
273
- Real Testimonials Pro includes tons of amazing and useful features that can definitely increase your conversion rate. If you’re interested to get the Real Testimonials Pro, Please go to [Upgrade to Pro!](https://shapedplugin.com/plugin/testimonial-pro/?ref=1) Page and browse [Live Demo](https://demo.shapedplugin.com/testimonial/).
274
 
275
  = Is the Real Testimonials compatible with my theme or design? =
276
  Real Testimonials works nicely with any theme if themes are developed according to WordPress standard.
@@ -318,6 +318,14 @@ Thank you!
318
 
319
  == Changelog ==
320
 
 
 
 
 
 
 
 
 
321
  = 2.4.2 - Dec 10, 2021 =
322
  * New: New video tutorial added.
323
 
3
  Donate link: http://shapedplugin.com/donate
4
  Tags: testimonial, testimonials, testimonial showcase, testimonials showcase, testimonial slider, testimonials slider, testimonial carousel, testimonial front-end submission form, testimonials widget, easy testimonial, testimonial rotator, random testimonials, custom testimonial, collect testimonials, social proof, simple testimonial plugin, best testimonials showcase plugin, free testimonial, customers reviews, real testimonials
5
  Requires at least: 4.0
6
+ Tested up to: 5.8.3
7
+ Stable tag: 2.4.3
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
13
 
14
  == Description ==
15
 
16
+ [__Live Demo__](https://demo.shapedplugin.com/testimonial/) | [__Documentation__](https://docs.shapedplugin.com/docs/testimonial/overview/) | [__Support__](https://shapedplugin.com/create-support-ticket/) | [__Upgrade To Pro»__](https://shapedplugin.com/real-testimonials/?ref=1)
17
 
18
  [youtube https://www.youtube.com/watch?list=PLoUb-7uG-5jPTDu5wiWwKhJNuWFWSyA5T&v=58a3L4q_8Tc]
19
 
102
 
103
  Since Testimonials are so important to your potential customers, it is important that you showcase them effectively on your website and that you are regularly collecting fresh testimonials. Real Testimonials Pro helps you do both.
104
 
105
+ [__Live Demo__](https://demo.shapedplugin.com/testimonial/) | [__Documentation__](https://docs.shapedplugin.com/docs/testimonial-pro/introduction/) | [__Premium Support__](https://shapedplugin.com/create-new-ticket/) | [__Upgrade To Pro»__](https://shapedplugin.com/real-testimonials/?ref=1)
106
 
107
  **Real Testimonials Pro – Getting started**
108
 
181
  * One To One Fast & Friendly Support.
182
  * Extensive Online docs & Video Tutorials.
183
  * Any new features we add in the future (which is often).
184
+ * [__Full list of PRO features»__](https://shapedplugin.com/real-testimonials/?ref=1)
185
 
186
 
187
  = Page Builders Ready =
270
  Yes. If you already have testimonials in the free version on your theme or site, you will automatically get the testimonials to use in the Pro version.
271
 
272
  = Should I purchase the Pro version? =
273
+ Real Testimonials Pro includes tons of amazing and useful features that can definitely increase your conversion rate. If you’re interested to get the Real Testimonials Pro, Please go to [Upgrade to Pro!](https://shapedplugin.com/real-testimonials/?ref=1) Page and browse [Live Demo](https://demo.shapedplugin.com/testimonial/).
274
 
275
  = Is the Real Testimonials compatible with my theme or design? =
276
  Real Testimonials works nicely with any theme if themes are developed according to WordPress standard.
318
 
319
  == Changelog ==
320
 
321
+ = 2.4.3 - Jan 20, 2022 =
322
+ * Improved: Settings page with a new layout.
323
+ * Improved: Code improved.
324
+ * Improved: The export-import option improved.
325
+ * Fix: Image width with twenty-twenty-one theme issue.
326
+ * Fix: Carousel navigation accessibility issue.
327
+ * Fix: Some minor issues.
328
+
329
  = 2.4.2 - Dec 10, 2021 =
330
  * New: New video tutorial added.
331
 
testimonial-free.php CHANGED
@@ -10,9 +10,9 @@
10
  * @package Testimonial
11
  *
12
  * Plugin Name: Real Testimonials
13
- * Plugin URI: https://shapedplugin.com/plugin/testimonial-pro/?ref=1
14
  * Description: Most Customizable and Powerful Testimonials Showcase Plugin for WordPress that allows you to manage and display Testimonials or Reviews on any page or widget.
15
- * Version: 2.4.2
16
  * Author: ShapedPlugin
17
  * Author URI: https://shapedplugin.com/
18
  * Text Domain: testimonial-free
@@ -39,7 +39,7 @@ if ( is_testimonial_pro() ) {
39
  require_once plugin_dir_path( __FILE__ ) . 'includes/class-testimonial-updates.php';
40
  require_once plugin_dir_path( __FILE__ ) . 'includes/class-testimonial-import-export.php';
41
  require_once plugin_dir_path( __FILE__ ) . 'admin/views/notices/review.php';
42
- require_once plugin_dir_path( __FILE__ ) . 'admin/views/framework/classes/setup.class.php';
43
  require_once plugin_dir_path( __FILE__ ) . 'admin/views/testimonial-settings.php';
44
  require_once plugin_dir_path( __FILE__ ) . 'admin/views/testimonial-tools.php';
45
  require_once plugin_dir_path( __FILE__ ) . 'admin/views/testimonial-metaboxs.php';
@@ -59,7 +59,7 @@ if ( ! class_exists( 'SP_Testimonial_FREE' ) ) {
59
  *
60
  * @var string
61
  */
62
- public $version = '2.4.2';
63
 
64
  /**
65
  * Plugin testimonial.
@@ -211,7 +211,7 @@ if ( ! class_exists( 'SP_Testimonial_FREE' ) ) {
211
  sprintf( '<a href="%s">%s</a>', admin_url( 'post-new.php?post_type=spt_testimonial' ), __( 'Add Testimonial', 'testimonial-free' ) ),
212
  sprintf( '<a href="%s">%s</a>', admin_url( 'edit.php?post_type=spt_shortcodes' ), __( 'Manage Views', 'testimonial-free' ) ),
213
  );
214
- $links['go_pro'] = sprintf( '<a href="%s" style="%s">%s</a>', 'https://shapedplugin.com/plugin/testimonial-pro/?ref=1', 'color:#35b747;font-weight:bold', __( 'Go Pro!', 'testimonial-free' ) );
215
 
216
  return array_merge( $ui_links, $links );
217
 
10
  * @package Testimonial
11
  *
12
  * Plugin Name: Real Testimonials
13
+ * Plugin URI: https://shapedplugin.com/real-testimonials/?ref=1
14
  * Description: Most Customizable and Powerful Testimonials Showcase Plugin for WordPress that allows you to manage and display Testimonials or Reviews on any page or widget.
15
+ * Version: 2.4.3
16
  * Author: ShapedPlugin
17
  * Author URI: https://shapedplugin.com/
18
  * Text Domain: testimonial-free
39
  require_once plugin_dir_path( __FILE__ ) . 'includes/class-testimonial-updates.php';
40
  require_once plugin_dir_path( __FILE__ ) . 'includes/class-testimonial-import-export.php';
41
  require_once plugin_dir_path( __FILE__ ) . 'admin/views/notices/review.php';
42
+ require_once plugin_dir_path( __FILE__ ) . 'admin/views/framework/classes/SPFTESTIMONIAL.php';
43
  require_once plugin_dir_path( __FILE__ ) . 'admin/views/testimonial-settings.php';
44
  require_once plugin_dir_path( __FILE__ ) . 'admin/views/testimonial-tools.php';
45
  require_once plugin_dir_path( __FILE__ ) . 'admin/views/testimonial-metaboxs.php';
59
  *
60
  * @var string
61
  */
62
+ public $version = '2.4.3';
63
 
64
  /**
65
  * Plugin testimonial.
211
  sprintf( '<a href="%s">%s</a>', admin_url( 'post-new.php?post_type=spt_testimonial' ), __( 'Add Testimonial', 'testimonial-free' ) ),
212
  sprintf( '<a href="%s">%s</a>', admin_url( 'edit.php?post_type=spt_shortcodes' ), __( 'Manage Views', 'testimonial-free' ) ),
213
  );
214
+ $links['go_pro'] = sprintf( '<a href="%s" style="%s">%s</a>', 'https://shapedplugin.com/real-testimonials/?ref=1', 'color:#35b747;font-weight:bold', __( 'Go Pro!', 'testimonial-free' ) );
215
 
216
  return array_merge( $ui_links, $links );
217