SiteOrigin Widgets Bundle - Version 1.8.3

Version Description

  • 26 April 2017 =
  • Contact Form: Improved type Validation and added empty name check
  • Contact Form: Add Field Design Settings
  • Testimonial: Add responsive image sizes settings
  • Added checks to prevent PHP warnings
  • Improved handling of empty order fields.
  • Small code refactoring in price table widget.
  • Ensure all SiteOrigin widgets are grouped together in Page Builder.
  • Slider: Remove slider sentinel contents to avoid things like duplicated video iframe for embedded videos
  • Fix TinyMCE z-index.
  • Headline: Fixed typo that tied subheadline new window to headline
  • Ensure fittext is done before setting up hero slider.
  • Ensure google font fields work in live editors/previews.
  • Features: Allow specifying position of features widgets icons.
  • Added * next to labels of required fields.
  • Make required field indicator optional and display legend when enabled.
  • Set default color option in wpColorPicker.
  • Small refactor to make more use of get_template_variables.
  • Button: Added field for rel attribute.
  • Maps: Added setting for global Google API key.
  • Small fix to allow checkboxes to act as 'conditional' state emitters.
  • Features: Change text form field to a tinymce field
  • Properly work with new Page Builder caching system
  • Ensure footer templates only printed when editing with Elementor.
  • Small IE8 fix
  • Contact: Prevent form fields from having 0px height if no height specified.
  • Fixed Google Maps info windows.
  • Image: Don't output empty attributes.
  • Don't attempt to load maps API if already loaded.
Download this release

Release Info

Developer gpriday
Plugin Icon 128x128 SiteOrigin Widgets Bundle
Version 1.8.3
Comparing to
See all releases

Code changes from version 1.8.2 to 1.8.3

Files changed (70) hide show
  1. admin/admin.css +1 -448
  2. admin/tpl/admin.php +4 -1
  3. base/base.php +13 -8
  4. base/css/admin.css +1 -653
  5. base/css/post-selector.css +1 -23
  6. base/css/preview.css +1 -8
  7. base/inc/attachments.php +53 -1
  8. base/inc/fields/color.class.php +8 -0
  9. base/inc/fields/css/icon-field.css +1 -121
  10. base/inc/fields/css/measurement-field.css +1 -7
  11. base/inc/fields/css/media-field.css +1 -281
  12. base/inc/fields/css/order-field.css +1 -12
  13. base/inc/fields/css/tinymce-field.css +1 -3
  14. base/inc/fields/image-size.class.php +1 -31
  15. base/inc/fields/link.class.php +2 -8
  16. base/inc/fields/measurement.class.php +2 -1
  17. base/inc/fields/text-input-base.class.php +16 -0
  18. base/inc/post-selector.php +4 -2
  19. base/inc/shortcode.php +1 -1
  20. base/js/admin.js +16 -8
  21. base/js/admin.min.js +1 -1
  22. base/js/posts-selector.js +15 -15
  23. base/js/posts-selector.min.js +1 -1
  24. base/siteorigin-widget.class.php +9 -2
  25. compat/beaver-builder/styles.css +1 -190
  26. compat/elementor/styles.css +1 -225
  27. compat/visual-composer/styles.css +13 -0
  28. css/slider/slider.css +1 -235
  29. js/slider/jquery.slider.js +17 -0
  30. js/slider/jquery.slider.min.js +1 -1
  31. js/sow.jquery.fittext.js +4 -1
  32. js/sow.jquery.fittext.min.js +1 -1
  33. lang/so-widgets-bundle.pot +2562 -0
  34. languages/siteorigin-widgets.po +0 -736
  35. readme.txt +32 -2
  36. so-widgets-bundle.php +8 -5
  37. widgets/button/button.php +51 -4
  38. widgets/button/css/style.css +1 -45
  39. widgets/button/tpl/default.php +13 -24
  40. widgets/contact/contact.php +589 -451
  41. widgets/contact/fields/name.class.php +1 -1
  42. widgets/contact/fields/subject.class.php +1 -1
  43. widgets/contact/fields/text.class.php +1 -1
  44. widgets/contact/fields/textarea.class.php +1 -1
  45. widgets/contact/styles/default.less +30 -3
  46. widgets/cta/css/style.css +1 -42
  47. widgets/features/css/style.css +1 -139
  48. widgets/features/features.php +16 -2
  49. widgets/features/styles/default.less +157 -22
  50. widgets/features/tpl/default.php +2 -2
  51. widgets/google-map/css/style.css +1 -11
  52. widgets/google-map/google-map.php +33 -7
  53. widgets/google-map/js/js-map.js +81 -87
  54. widgets/google-map/js/js-map.min.js +1 -1
  55. widgets/headline/headline.php +1 -1
  56. widgets/image-grid/css/image-grid.css +1 -11
  57. widgets/image/image.php +38 -5
  58. widgets/image/tpl/default.php +6 -31
  59. widgets/post-carousel/css/style.css +1 -170
  60. widgets/post-carousel/post-carousel.php +28 -4
  61. widgets/post-carousel/styles/default.less +39 -0
  62. widgets/post-carousel/tpl/carousel-post-loop.php +1 -1
  63. widgets/price-table/price-table.php +30 -1
  64. widgets/price-table/tpl/atom.php +19 -11
  65. widgets/slider/slider.php +22 -12
  66. widgets/testimonial/css/style.css +1 -56
  67. widgets/testimonial/styles/default.less +30 -3
  68. widgets/testimonial/testimonial.php +19 -1
  69. widgets/video/css/html-player-responsive.css +1 -5
  70. widgets/video/css/skin.css +1 -154
admin/admin.css CHANGED
@@ -1,448 +1 @@
1
- #sow-widgets-page {
2
- margin: 0 0 0 -20px;
3
- }
4
- #sow-widgets-page .page-banner {
5
- display: block;
6
- padding: 15px 30px 5px 30px;
7
- background: #f6f6f6;
8
- position: relative;
9
- }
10
- #sow-widgets-page .page-banner .icon {
11
- float: left;
12
- display: inline-block;
13
- width: 50px;
14
- height: 43px;
15
- position: relative;
16
- margin: 8px 22px 0 0;
17
- }
18
- #sow-widgets-page .page-banner .icon img {
19
- position: absolute;
20
- }
21
- #sow-widgets-page .page-banner .icon img.icon-back {
22
- top: 0;
23
- left: 0;
24
- }
25
- #sow-widgets-page .page-banner .icon img.icon-gear {
26
- top: 0;
27
- left: 12px;
28
- -webkit-animation: spin 60s linear infinite;
29
- -moz-animation: spin 60s linear infinite;
30
- animation: spin 60s linear infinite;
31
- }
32
- @-moz-keyframes spin {
33
- 100% {
34
- -moz-transform: rotate(360deg);
35
- }
36
- }
37
- @-webkit-keyframes spin {
38
- 100% {
39
- -webkit-transform: rotate(360deg);
40
- }
41
- }
42
- @keyframes spin {
43
- 100% {
44
- -webkit-transform: rotate(360deg);
45
- transform: rotate(360deg);
46
- }
47
- }
48
- #sow-widgets-page .page-banner .icon img.icon-front {
49
- top: 0;
50
- left: 0;
51
- }
52
- #sow-widgets-page .page-banner h1 {
53
- font: 300 2.3em/1.4em "proxima-nova", "Open Sans", Helvetica, Arial, sans-serif;
54
- color: #666;
55
- }
56
- #sow-widgets-page .page-banner #sow-widget-search {
57
- position: absolute;
58
- bottom: -35px;
59
- right: 19px;
60
- }
61
- #sow-widgets-page .page-banner #sow-widget-search input {
62
- box-sizing: border-box;
63
- width: 200px;
64
- }
65
- #sow-widgets-page .page-banner #sow-widget-search .results {
66
- display: none;
67
- box-sizing: border-box;
68
- position: absolute;
69
- top: 100%;
70
- left: 1px;
71
- width: 200px;
72
- background: #ffffff;
73
- border: 1px solid #e0e0e0;
74
- padding: 0;
75
- margin: -2px 0 0 0;
76
- -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075);
77
- -moz-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075);
78
- box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075);
79
- }
80
- #sow-widgets-page .page-banner #sow-widget-search .results li {
81
- margin: 0;
82
- padding: 5px;
83
- font-size: 0.95em;
84
- font-weight: bold;
85
- color: #777;
86
- cursor: pointer;
87
- }
88
- #sow-widgets-page .page-banner #sow-widget-search .results li:hover {
89
- background: #f7f7f7;
90
- }
91
- #sow-widgets-page .page-nav {
92
- background: #f6f6f6;
93
- border-bottom: 1px solid #d6d6d6;
94
- padding: 5px 0 0 30px;
95
- margin: 0;
96
- font-size: 0;
97
- }
98
- #sow-widgets-page .page-nav li {
99
- display: inline-block;
100
- margin: 0 0 -1px 0;
101
- background: #f6f6f6;
102
- line-height: 1em;
103
- font-size: 12px;
104
- position: relative;
105
- border: 1px solid #d6d6d6;
106
- border-width: 1px 0 1px 1px;
107
- transition: all 0.2s;
108
- }
109
- #sow-widgets-page .page-nav li:last-child {
110
- border-right-width: 1px;
111
- }
112
- #sow-widgets-page .page-nav li a {
113
- display: block;
114
- text-decoration: none;
115
- color: #555;
116
- padding: 12px 25px;
117
- font-weight: bold;
118
- box-shadow: none !important;
119
- }
120
- #sow-widgets-page .page-nav li:hover {
121
- background: #f3f3f3;
122
- }
123
- #sow-widgets-page .page-nav li.active {
124
- background: #f0f0f0;
125
- border-bottom-color: #f0f0f0;
126
- }
127
- #sow-widgets-page #widgets-list {
128
- zoom: 1;
129
- margin: 25px 18px 0 18px;
130
- position: relative;
131
- }
132
- #sow-widgets-page #widgets-list:before {
133
- content: '';
134
- display: block;
135
- }
136
- #sow-widgets-page #widgets-list:after {
137
- content: '';
138
- display: table;
139
- clear: both;
140
- }
141
- #sow-widgets-page #widgets-list .so-widget-wrap {
142
- float: left;
143
- -ms-box-sizing: border-box;
144
- -moz-box-sizing: border-box;
145
- -webkit-box-sizing: border-box;
146
- box-sizing: border-box;
147
- padding: 0 12px 24px 12px;
148
- width: 25%;
149
- }
150
- @media screen and (max-width: 1800px) {
151
- #sow-widgets-page #widgets-list .so-widget-wrap {
152
- width: 33.333%;
153
- }
154
- }
155
- @media screen and (max-width: 1280px) {
156
- #sow-widgets-page #widgets-list .so-widget-wrap {
157
- width: 50%;
158
- }
159
- }
160
- @media screen and (max-width: 960px) {
161
- #sow-widgets-page #widgets-list .so-widget-wrap {
162
- width: 100%;
163
- }
164
- }
165
- #sow-widgets-page #widgets-list .so-widget {
166
- border: 1px solid #D9D9D9;
167
- float: left;
168
- -webkit-box-shadow: 0 1px 2px rgba(0,0,0,0.05);
169
- -moz-box-shadow: 0 1px 2px rgba(0,0,0,0.05);
170
- box-shadow: 0 1px 2px rgba(0,0,0,0.05);
171
- padding: 0;
172
- width: 100%;
173
- background: #fefefe;
174
- position: relative;
175
- overflow: hidden;
176
- }
177
- #sow-widgets-page #widgets-list .so-widget .so-widget-banner {
178
- width: 128px;
179
- height: 128px;
180
- float: left;
181
- margin: 20px;
182
- overflow: hidden;
183
- }
184
- #sow-widgets-page #widgets-list .so-widget .so-widget-banner img,
185
- #sow-widgets-page #widgets-list .so-widget .so-widget-banner svg {
186
- height: 128px;
187
- width: auto;
188
- }
189
- #sow-widgets-page #widgets-list .so-widget .so-widget-text {
190
- padding: 20px 20px 20px 0;
191
- margin-left: 178px;
192
- }
193
- #sow-widgets-page #widgets-list .so-widget .so-widget-text .so-widget-active-indicator {
194
- float: right;
195
- margin: 0 0 10px 10px;
196
- background: #00a0d2;
197
- padding: 4px 10px;
198
- color: #fff;
199
- border-radius: 3px;
200
- -webkit-transition: all 0.35s ease;
201
- -moz-transition: all 0.35s ease;
202
- -o-transition: all 0.35s ease;
203
- transition: all 0.35s ease;
204
- }
205
- #sow-widgets-page #widgets-list .so-widget .so-widget-text h3 {
206
- color: #0073aa;
207
- font-size: 1.4em;
208
- font-weight: 500;
209
- margin-top: 0;
210
- }
211
- #sow-widgets-page #widgets-list .so-widget .so-widget-text .so-widget-description {
212
- margin: 0;
213
- line-height: 1.35em;
214
- color: #777777;
215
- }
216
- #sow-widgets-page #widgets-list .so-widget .so-widget-text .so-widget-byline {
217
- font-size: 0.9em;
218
- margin-top: 10px;
219
- color: #999;
220
- font-style: italic;
221
- }
222
- #sow-widgets-page #widgets-list .so-widget .so-widget-text .so-widget-byline a {
223
- color: #666;
224
- text-decoration: none;
225
- }
226
- #sow-widgets-page #widgets-list .so-widget .so-widget-text .so-widget-byline a:hover {
227
- color: #555;
228
- text-decoration: underline;
229
- }
230
- #sow-widgets-page #widgets-list .so-widget .so-widget-toggle-active {
231
- margin-top: 15px;
232
- display: inline-block;
233
- }
234
- #sow-widgets-page #widgets-list .so-widget .so-widget-toggle-active button:focus {
235
- outline: none;
236
- }
237
- #sow-widgets-page #widgets-list .so-widget.so-widget-is-active .so-widget-toggle-active .so-widget-activate {
238
- display: none;
239
- }
240
- #sow-widgets-page #widgets-list .so-widget.so-widget-is-inactive .so-widget-toggle-active .so-widget-deactivate {
241
- display: none;
242
- }
243
- #sow-widgets-page #widgets-list .so-widget.so-widget-is-inactive .so-widget-active-indicator {
244
- opacity: 0;
245
- }
246
- #sow-widgets-page #widgets-list .so-widget.so-widget-is-inactive h3 {
247
- color: #666;
248
- }
249
- #sow-widgets-page #widgets-list .so-widget.so-widget-is-inactive svg,
250
- #sow-widgets-page #widgets-list .so-widget.so-widget-is-inactive img {
251
- filter: url(filters.svg#grayscale);
252
- filter: gray;
253
- -webkit-filter: grayscale(1);
254
- opacity: 0.7;
255
- }
256
- #sow-widgets-page #widgets-list .so-widget .so-widget-settings {
257
- margin-top: 15px;
258
- display: inline-block;
259
- }
260
- #sow-widgets-page #widgets-list.so-animated img,
261
- #sow-widgets-page #widgets-list.so-animated svg {
262
- -webkit-transition: all 0.45s ease;
263
- -moz-transition: all 0.45s ease;
264
- -o-transition: all 0.45s ease;
265
- transition: all 0.45s ease;
266
- }
267
- #sow-widgets-page .developers-link {
268
- padding: 0 30px;
269
- text-align: right;
270
- color: #777;
271
- font-style: italic;
272
- }
273
- #sow-widgets-page #sow-settings-dialog {
274
- display: none;
275
- }
276
- #sow-widgets-page #sow-settings-dialog .so-overlay,
277
- #sow-widgets-page #sow-settings-dialog .so-content,
278
- #sow-widgets-page #sow-settings-dialog .so-title-bar,
279
- #sow-widgets-page #sow-settings-dialog .so-toolbar,
280
- #sow-widgets-page #sow-settings-dialog .so-left-sidebar,
281
- #sow-widgets-page #sow-settings-dialog .so-right-sidebar {
282
- z-index: 100001;
283
- position: fixed;
284
- -ms-box-sizing: border-box;
285
- -moz-box-sizing: border-box;
286
- -webkit-box-sizing: border-box;
287
- box-sizing: border-box;
288
- padding: 15px;
289
- }
290
- #sow-widgets-page #sow-settings-dialog .so-overlay {
291
- top: 0;
292
- left: 0;
293
- right: 0;
294
- bottom: 0;
295
- background: rgba(0, 0, 0, 0.5);
296
- }
297
- #sow-widgets-page #sow-settings-dialog .so-content {
298
- overflow-y: auto;
299
- top: 80px;
300
- left: 30px;
301
- right: 30px;
302
- bottom: 88px;
303
- background-color: #fdfdfd;
304
- overflow-x: hidden;
305
- -webkit-box-shadow: inset 0 2px 2px rgba(0,0,0,0.03);
306
- -moz-box-shadow: inset 0 2px 2px rgba(0,0,0,0.03);
307
- box-shadow: inset 0 2px 2px rgba(0,0,0,0.03);
308
- }
309
- #sow-widgets-page #sow-settings-dialog .so-content > *:first-child,
310
- #sow-widgets-page #sow-settings-dialog .so-content form > *:first-child {
311
- margin-top: 0;
312
- }
313
- #sow-widgets-page #sow-settings-dialog .so-content > *:last-child,
314
- #sow-widgets-page #sow-settings-dialog .so-content form > *:last-child {
315
- margin-bottom: 0;
316
- }
317
- #sow-widgets-page #sow-settings-dialog .so-content .so-content-tabs > * {
318
- display: none;
319
- }
320
- #sow-widgets-page #sow-settings-dialog .so-content.so-loading {
321
- background-image: url("images/wpspin_light.gif");
322
- background-position: center center;
323
- background-repeat: no-repeat;
324
- }
325
- @media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
326
- #sow-widgets-page #sow-settings-dialog .so-content.so-loading {
327
- background-image: url(images/wpspin_light-2x.gif);
328
- background-size: 16px 16px;
329
- }
330
- }
331
- #sow-widgets-page #sow-settings-dialog .so-title-bar {
332
- left: 30px;
333
- right: 30px;
334
- top: 30px;
335
- height: 50px;
336
- background-color: #fafafa;
337
- border-bottom: 1px solid #D8D8D8;
338
- /* These are the action buttons in the title bar */
339
- }
340
- #sow-widgets-page #sow-settings-dialog .so-title-bar h3.so-title {
341
- margin: 0 !important;
342
- padding: 0 !important;
343
- }
344
- #sow-widgets-page #sow-settings-dialog .so-title-bar a {
345
- cursor: pointer;
346
- position: absolute;
347
- box-sizing: border-box;
348
- width: 50px;
349
- height: 50px;
350
- display: block;
351
- top: 0;
352
- right: 0;
353
- -webkit-transition: all 0.2s ease;
354
- -moz-transition: all 0.2s ease;
355
- -o-transition: all 0.2s ease;
356
- transition: all 0.2s ease;
357
- background: #fafafa;
358
- border-left: 1px solid #d8d8d8;
359
- border-bottom: 1px solid #d8d8d8;
360
- }
361
- #sow-widgets-page #sow-settings-dialog .so-title-bar a:hover {
362
- background: #e9e9e9;
363
- }
364
- #sow-widgets-page #sow-settings-dialog .so-title-bar a:hover .so-dialog-icon {
365
- color: #333333;
366
- }
367
- #sow-widgets-page #sow-settings-dialog .so-title-bar a .so-dialog-icon {
368
- position: absolute;
369
- top: 50%;
370
- left: 50%;
371
- text-decoration: none;
372
- width: 20px;
373
- height: 20px;
374
- margin-left: -10px;
375
- margin-top: -10px;
376
- color: #666666;
377
- text-align: center;
378
- }
379
- #sow-widgets-page #sow-settings-dialog .so-title-bar a .so-dialog-icon:before {
380
- font: 400 20px/1em dashicons;
381
- top: 7px;
382
- left: 13px;
383
- }
384
- #sow-widgets-page #sow-settings-dialog .so-title-bar a.so-close {
385
- right: 0;
386
- }
387
- #sow-widgets-page #sow-settings-dialog .so-title-bar a.so-close .so-dialog-icon:before {
388
- content: "\f335";
389
- }
390
- #sow-widgets-page #sow-settings-dialog .so-toolbar {
391
- left: 30px;
392
- right: 30px;
393
- bottom: 30px;
394
- height: 58px;
395
- background-color: #fafafa;
396
- border-top: 1px solid #D8D8D8;
397
- z-index: 100002;
398
- }
399
- #sow-widgets-page #sow-settings-dialog .so-toolbar .so-status {
400
- float: left;
401
- padding-top: 6px;
402
- padding-bottom: 6px;
403
- font-style: italic;
404
- color: #999999;
405
- line-height: 1em;
406
- }
407
- #sow-widgets-page #sow-settings-dialog .so-toolbar .so-status.so-panels-loading {
408
- padding-left: 26px;
409
- background-position: left center;
410
- }
411
- #sow-widgets-page #sow-settings-dialog .so-toolbar .so-buttons {
412
- float: right;
413
- }
414
- #sow-widgets-page #sow-settings-dialog .so-toolbar .so-buttons .action-buttons {
415
- position: absolute;
416
- left: 15px;
417
- top: 50%;
418
- margin-top: -0.65em;
419
- }
420
- #sow-widgets-page #sow-settings-dialog .so-toolbar .so-buttons .action-buttons a {
421
- cursor: pointer;
422
- display: inline;
423
- padding: 0.2em 0.5em;
424
- line-height: 1em;
425
- margin-right: 0.5em;
426
- text-decoration: none;
427
- }
428
- #sow-widgets-page #sow-settings-dialog .so-toolbar .so-buttons .action-buttons .so-delete {
429
- color: #a00;
430
- }
431
- #sow-widgets-page #sow-settings-dialog .so-toolbar .so-buttons .action-buttons .so-delete:hover {
432
- background: #a00;
433
- color: #FFFFFF;
434
- }
435
- #sow-widgets-page #sow-settings-dialog .so-toolbar .so-buttons .action-buttons .so-duplicate:hover {
436
- text-decoration: underline;
437
- }
438
- #sow-widgets-page #sow-settings-dialog .siteorigin-widget-help-link {
439
- display: none;
440
- }
441
- #sow-widgets-page #so-widget-settings-save {
442
- width: 0;
443
- height: 0;
444
- border: none;
445
- }
446
- body.plugins_page_so-widgets-plugins #contextual-help-link-wrap {
447
- z-index: 10;
448
- }
1
+ #sow-widgets-page{margin:0 0 0 -20px}#sow-widgets-page .page-banner{display:block;padding:15px 30px 5px 30px;background:#f6f6f6;position:relative}#sow-widgets-page .page-banner .icon{float:left;display:inline-block;width:50px;height:43px;position:relative;margin:8px 22px 0 0}#sow-widgets-page .page-banner .icon img{position:absolute}#sow-widgets-page .page-banner .icon img.icon-back{top:0;left:0}#sow-widgets-page .page-banner .icon img.icon-gear{top:0;left:12px;-webkit-animation:spin 60s linear infinite;-moz-animation:spin 60s linear infinite;animation:spin 60s linear infinite}@-moz-keyframes spin{100%{-moz-transform:rotate(360deg)}}@-webkit-keyframes spin{100%{-webkit-transform:rotate(360deg)}}@keyframes spin{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}#sow-widgets-page .page-banner .icon img.icon-front{top:0;left:0}#sow-widgets-page .page-banner h1{font:300 2.3em/1.4em "proxima-nova","Open Sans",Helvetica,Arial,sans-serif;color:#666}#sow-widgets-page .page-banner #sow-widget-search{position:absolute;bottom:-35px;right:19px}#sow-widgets-page .page-banner #sow-widget-search input{box-sizing:border-box;width:200px}#sow-widgets-page .page-banner #sow-widget-search .results{display:none;box-sizing:border-box;position:absolute;top:100%;left:1px;width:200px;background:#ffffff;border:1px solid #e0e0e0;padding:0;margin:-2px 0 0 0;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:0 1px 1px rgba(0,0,0,0.075);box-shadow:0 1px 1px rgba(0,0,0,0.075)}#sow-widgets-page .page-banner #sow-widget-search .results li{margin:0;padding:5px;font-size:.95em;font-weight:bold;color:#777;cursor:pointer}#sow-widgets-page .page-banner #sow-widget-search .results li:hover{background:#f7f7f7}#sow-widgets-page .page-nav{background:#f6f6f6;border-bottom:1px solid #d6d6d6;padding:5px 0 0 30px;margin:0;font-size:0}#sow-widgets-page .page-nav li{display:inline-block;margin:0 0 -1px 0;background:#f6f6f6;line-height:1em;font-size:12px;position:relative;border:1px solid #d6d6d6;border-width:1px 0 1px 1px;transition:all .2s}#sow-widgets-page .page-nav li:last-child{border-right-width:1px}#sow-widgets-page .page-nav li a{display:block;text-decoration:none;color:#555;padding:12px 25px;font-weight:bold;box-shadow:none !important}#sow-widgets-page .page-nav li:hover{background:#f3f3f3}#sow-widgets-page .page-nav li.active{background:#f0f0f0;border-bottom-color:#f0f0f0}#sow-widgets-page #widgets-list{zoom:1;margin:25px 18px 0 18px;position:relative}#sow-widgets-page #widgets-list:before{content:'';display:block}#sow-widgets-page #widgets-list:after{content:'';display:table;clear:both}#sow-widgets-page #widgets-list .so-widget-wrap{float:left;-ms-box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;padding:0 12px 24px 12px;width:25%}@media screen and (max-width:1800px){#sow-widgets-page #widgets-list .so-widget-wrap{width:33.333%}}@media screen and (max-width:1280px){#sow-widgets-page #widgets-list .so-widget-wrap{width:50%}}@media screen and (max-width:960px){#sow-widgets-page #widgets-list .so-widget-wrap{width:100%}}#sow-widgets-page #widgets-list .so-widget{border:1px solid #D9D9D9;float:left;-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:0 1px 2px rgba(0,0,0,0.05);box-shadow:0 1px 2px rgba(0,0,0,0.05);padding:0;width:100%;background:#fefefe;position:relative;overflow:hidden}#sow-widgets-page #widgets-list .so-widget .so-widget-banner{width:128px;height:128px;float:left;margin:20px;overflow:hidden}#sow-widgets-page #widgets-list .so-widget .so-widget-banner img,#sow-widgets-page #widgets-list .so-widget .so-widget-banner svg{height:128px;width:auto}#sow-widgets-page #widgets-list .so-widget .so-widget-text{padding:20px 20px 20px 0;margin-left:178px}#sow-widgets-page #widgets-list .so-widget .so-widget-text .so-widget-active-indicator{float:right;margin:0 0 10px 10px;background:#00a0d2;padding:4px 10px;color:#fff;border-radius:3px;-webkit-transition:all .35s ease;-moz-transition:all .35s ease;-o-transition:all .35s ease;transition:all .35s ease}#sow-widgets-page #widgets-list .so-widget .so-widget-text h3{color:#0073aa;font-size:1.4em;font-weight:500;margin-top:0}#sow-widgets-page #widgets-list .so-widget .so-widget-text .so-widget-description{margin:0;line-height:1.35em;color:#777777}#sow-widgets-page #widgets-list .so-widget .so-widget-text .so-widget-byline{font-size:.9em;margin-top:10px;color:#999;font-style:italic}#sow-widgets-page #widgets-list .so-widget .so-widget-text .so-widget-byline a{color:#666;text-decoration:none}#sow-widgets-page #widgets-list .so-widget .so-widget-text .so-widget-byline a:hover{color:#555;text-decoration:underline}#sow-widgets-page #widgets-list .so-widget .so-widget-toggle-active{margin-top:15px;display:inline-block}#sow-widgets-page #widgets-list .so-widget .so-widget-toggle-active button:focus{outline:none}#sow-widgets-page #widgets-list .so-widget.so-widget-is-active .so-widget-toggle-active .so-widget-activate{display:none}#sow-widgets-page #widgets-list .so-widget.so-widget-is-inactive .so-widget-toggle-active .so-widget-deactivate{display:none}#sow-widgets-page #widgets-list .so-widget.so-widget-is-inactive .so-widget-active-indicator{opacity:0}#sow-widgets-page #widgets-list .so-widget.so-widget-is-inactive h3{color:#666}#sow-widgets-page #widgets-list .so-widget.so-widget-is-inactive svg,#sow-widgets-page #widgets-list .so-widget.so-widget-is-inactive img{filter:url(filters.svg#grayscale);filter:gray;-webkit-filter:grayscale(1);opacity:.7}#sow-widgets-page #widgets-list .so-widget .so-widget-settings{margin-top:15px;display:inline-block}#sow-widgets-page #widgets-list.so-animated img,#sow-widgets-page #widgets-list.so-animated svg{-webkit-transition:all .45s ease;-moz-transition:all .45s ease;-o-transition:all .45s ease;transition:all .45s ease}#sow-widgets-page .developers-link{padding:0 30px;text-align:right;color:#777;font-style:italic}#sow-widgets-page #sow-settings-dialog{display:none}#sow-widgets-page #sow-settings-dialog .so-overlay,#sow-widgets-page #sow-settings-dialog .so-content,#sow-widgets-page #sow-settings-dialog .so-title-bar,#sow-widgets-page #sow-settings-dialog .so-toolbar,#sow-widgets-page #sow-settings-dialog .so-left-sidebar,#sow-widgets-page #sow-settings-dialog .so-right-sidebar{z-index:100001;position:fixed;-ms-box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;padding:15px}#sow-widgets-page #sow-settings-dialog .so-overlay{top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,0.5)}#sow-widgets-page #sow-settings-dialog .so-content{overflow-y:auto;top:80px;left:30px;right:30px;bottom:88px;background-color:#fdfdfd;overflow-x:hidden;-webkit-box-shadow:inset 0 2px 2px rgba(0,0,0,0.03);-moz-box-shadow:inset 0 2px 2px rgba(0,0,0,0.03);box-shadow:inset 0 2px 2px rgba(0,0,0,0.03)}#sow-widgets-page #sow-settings-dialog .so-content>*:first-child,#sow-widgets-page #sow-settings-dialog .so-content form>*:first-child{margin-top:0}#sow-widgets-page #sow-settings-dialog .so-content>*:last-child,#sow-widgets-page #sow-settings-dialog .so-content form>*:last-child{margin-bottom:0}#sow-widgets-page #sow-settings-dialog .so-content .so-content-tabs>*{display:none}#sow-widgets-page #sow-settings-dialog .so-content.so-loading{background-image:url("images/wpspin_light.gif");background-position:center center;background-repeat:no-repeat}@media (-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){#sow-widgets-page #sow-settings-dialog .so-content.so-loading{background-image:url(images/wpspin_light-2x.gif);background-size:16px 16px}}#sow-widgets-page #sow-settings-dialog .so-title-bar{left:30px;right:30px;top:30px;height:50px;background-color:#fafafa;border-bottom:1px solid #D8D8D8}#sow-widgets-page #sow-settings-dialog .so-title-bar h3.so-title{margin:0 !important;padding:0 !important}#sow-widgets-page #sow-settings-dialog .so-title-bar a{cursor:pointer;position:absolute;box-sizing:border-box;width:50px;height:50px;display:block;top:0;right:0;-webkit-transition:all .2s ease;-moz-transition:all .2s ease;-o-transition:all .2s ease;transition:all .2s ease;background:#fafafa;border-left:1px solid #d8d8d8;border-bottom:1px solid #d8d8d8}#sow-widgets-page #sow-settings-dialog .so-title-bar a:hover{background:#e9e9e9}#sow-widgets-page #sow-settings-dialog .so-title-bar a:hover .so-dialog-icon{color:#333333}#sow-widgets-page #sow-settings-dialog .so-title-bar a .so-dialog-icon{position:absolute;top:50%;left:50%;text-decoration:none;width:20px;height:20px;margin-left:-10px;margin-top:-10px;color:#666666;text-align:center}#sow-widgets-page #sow-settings-dialog .so-title-bar a .so-dialog-icon:before{font:400 20px/1em dashicons;top:7px;left:13px}#sow-widgets-page #sow-settings-dialog .so-title-bar a.so-close{right:0}#sow-widgets-page #sow-settings-dialog .so-title-bar a.so-close .so-dialog-icon:before{content:"\f335"}#sow-widgets-page #sow-settings-dialog .so-toolbar{left:30px;right:30px;bottom:30px;height:58px;background-color:#fafafa;border-top:1px solid #D8D8D8;z-index:100002}#sow-widgets-page #sow-settings-dialog .so-toolbar .so-status{float:left;padding-top:6px;padding-bottom:6px;font-style:italic;color:#999999;line-height:1em}#sow-widgets-page #sow-settings-dialog .so-toolbar .so-status.so-panels-loading{padding-left:26px;background-position:left center}#sow-widgets-page #sow-settings-dialog .so-toolbar .so-buttons{float:right}#sow-widgets-page #sow-settings-dialog .so-toolbar .so-buttons .action-buttons{position:absolute;left:15px;top:50%;margin-top:-0.65em}#sow-widgets-page #sow-settings-dialog .so-toolbar .so-buttons .action-buttons a{cursor:pointer;display:inline;padding:.2em .5em;line-height:1em;margin-right:.5em;text-decoration:none}#sow-widgets-page #sow-settings-dialog .so-toolbar .so-buttons .action-buttons .so-delete{color:#a00}#sow-widgets-page #sow-settings-dialog .so-toolbar .so-buttons .action-buttons .so-delete:hover{background:#a00;color:#FFFFFF}#sow-widgets-page #sow-settings-dialog .so-toolbar .so-buttons .action-buttons .so-duplicate:hover{text-decoration:underline}#sow-widgets-page #sow-settings-dialog .siteorigin-widget-help-link{display:none}#sow-widgets-page #so-widget-settings-save{width:0;height:0;border:none}body.plugins_page_so-widgets-plugins #contextual-help-link-wrap{z-index:10}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
admin/tpl/admin.php CHANGED
@@ -68,10 +68,13 @@
68
  </div>
69
 
70
  <?php
 
71
  $widget_object = !empty( $widget_objects[ $file ] ) ? $widget_objects[ $file ] : false;
72
  if( !empty( $widget_object ) && $widget_object->has_form( 'settings' ) ) {
 
 
73
  $form_url = add_query_arg( array(
74
- 'id' => $file,
75
  'action' => 'so_widgets_setting_form',
76
  ),
77
  admin_url( 'admin-ajax.php' )
68
  </div>
69
 
70
  <?php
71
+ /** @var SiteOrigin_Widget $widget_object */
72
  $widget_object = !empty( $widget_objects[ $file ] ) ? $widget_objects[ $file ] : false;
73
  if( !empty( $widget_object ) && $widget_object->has_form( 'settings' ) ) {
74
+ $rel_path = str_replace( WP_PLUGIN_DIR, '', $file );
75
+
76
  $form_url = add_query_arg( array(
77
+ 'id' => $rel_path,
78
  'action' => 'so_widgets_setting_form',
79
  ),
80
  admin_url( 'admin-ajax.php' )
base/base.php CHANGED
@@ -16,9 +16,11 @@ include plugin_dir_path(__FILE__).'inc/shortcode.php';
16
  */
17
  function siteorigin_widget_add_inline_css($css){
18
  global $siteorigin_widgets_inline_styles;
19
- if(empty($siteorigin_widgets_inline_styles)) $siteorigin_widgets_inline_styles = '';
 
 
20
 
21
- $siteorigin_widgets_inline_styles .= $css;
22
  }
23
 
24
  /**
@@ -26,11 +28,14 @@ function siteorigin_widget_add_inline_css($css){
26
  */
27
  function siteorigin_widget_print_styles(){
28
  global $siteorigin_widgets_inline_styles;
29
- if(!empty($siteorigin_widgets_inline_styles)) {
30
- ?><style type="text/css"><?php echo($siteorigin_widgets_inline_styles) ?></style><?php
31
- }
32
-
33
- $siteorigin_widgets_inline_styles = '';
 
 
 
34
  }
35
  add_action('wp_head', 'siteorigin_widget_print_styles');
36
  add_action('wp_footer', 'siteorigin_widget_print_styles');
@@ -125,7 +130,7 @@ function siteorigin_widget_get_font($font_value) {
125
  */
126
  function siteorigin_widget_add_bundle_groups($widgets){
127
  foreach( $widgets as $class => &$widget ) {
128
- if( preg_match('/SiteOrigin_Widget_(.*)_Widget/i', $class, $matches) ) {
129
  $widget['icon'] = 'so-widget-icon so-widget-icon-'.strtolower($matches[1]);
130
  $widget['groups'] = array('so-widgets-bundle');
131
  }
16
  */
17
  function siteorigin_widget_add_inline_css($css){
18
  global $siteorigin_widgets_inline_styles;
19
+ if ( empty( $siteorigin_widgets_inline_styles ) ) {
20
+ $siteorigin_widgets_inline_styles = array();
21
+ }
22
 
23
+ $siteorigin_widgets_inline_styles[] = $css;
24
  }
25
 
26
  /**
28
  */
29
  function siteorigin_widget_print_styles(){
30
  global $siteorigin_widgets_inline_styles;
31
+ if ( ! empty( $siteorigin_widgets_inline_styles ) ) {
32
+ foreach ($siteorigin_widgets_inline_styles as $widget_css) {
33
+ ?>
34
+ <style type="text/css"><?php echo($widget_css) ?></style><?php
35
+ }
36
+ }
37
+
38
+ $siteorigin_widgets_inline_styles = array();
39
  }
40
  add_action('wp_head', 'siteorigin_widget_print_styles');
41
  add_action('wp_footer', 'siteorigin_widget_print_styles');
130
  */
131
  function siteorigin_widget_add_bundle_groups($widgets){
132
  foreach( $widgets as $class => &$widget ) {
133
+ if( preg_match('/SiteOrigin_Widgets?_(.*)_Widget/i', $class, $matches) ) {
134
  $widget['icon'] = 'so-widget-icon so-widget-icon-'.strtolower($matches[1]);
135
  $widget['groups'] = array('so-widgets-bundle');
136
  }
base/css/admin.css CHANGED
@@ -1,653 +1 @@
1
- .siteorigin-widget-form-no-styles {
2
- display: none !important;
3
- }
4
- .siteorigin-widget-teaser {
5
- padding: 10px 12px;
6
- border: 1px solid #5fc133;
7
- background: #edfbe7;
8
- color: #394a3a;
9
- margin-bottom: 20px;
10
- }
11
- .siteorigin-widget-teaser .dashicons {
12
- float: right;
13
- margin: 1px 2px 6px 10px;
14
- cursor: pointer;
15
- font-size: 18px;
16
- width: 18px;
17
- height: 18px;
18
- }
19
- .siteorigin-widget-form {
20
- display: block !important;
21
- margin: 15px 0;
22
- }
23
- .siteorigin-widget-form > div:first-child {
24
- margin-top: 0;
25
- }
26
- .siteorigin-widget-form a {
27
- box-shadow: none;
28
- }
29
- .siteorigin-widget-form.siteorigin-widget-form-main {
30
- min-width: 600px;
31
- }
32
- .siteorigin-widget-form .siteorigin-widget-field {
33
- margin: 1em 0;
34
- }
35
- .siteorigin-widget-form .siteorigin-widget-field label {
36
- display: block;
37
- margin-bottom: 3px;
38
- }
39
- .siteorigin-widget-form .siteorigin-widget-field label.siteorigin-widget-field-label {
40
- font-weight: bold;
41
- }
42
- .siteorigin-widget-form .siteorigin-widget-field label.so-checkbox-label {
43
- -webkit-user-select: none;
44
- -moz-user-select: none;
45
- -ms-user-select: none;
46
- user-select: none;
47
- }
48
- .siteorigin-widget-form .siteorigin-widget-field .siteorigin-widget-description {
49
- font-size: 0.9em;
50
- margin-top: 0.2em;
51
- color: #999;
52
- font-style: italic;
53
- }
54
- .siteorigin-widget-form .siteorigin-widget-field.siteorigin-widget-field-separator {
55
- margin: 1.75em 0;
56
- }
57
- .siteorigin-widget-form .siteorigin-widget-field.siteorigin-widget-field-is-optional .field-optional {
58
- font-weight: normal;
59
- font-size: 0.8em;
60
- vertical-align: super;
61
- padding-left: 0.5em;
62
- color: #54a242;
63
- font-style: italic;
64
- }
65
- .siteorigin-widget-form .siteorigin-widget-field.siteorigin-widget-field-is-required .field-required {
66
- font-weight: normal;
67
- font-size: 0.8em;
68
- vertical-align: super;
69
- padding-left: 0.5em;
70
- color: #F02311;
71
- font-style: italic;
72
- }
73
- .siteorigin-widget-form .siteorigin-widget-field input[type="text"] {
74
- width: 100%;
75
- }
76
- .siteorigin-widget-form .siteorigin-widget-field input.siteorigin-widget-input-color {
77
- width: auto;
78
- }
79
- .siteorigin-widget-form .siteorigin-widget-field textarea.siteorigin-widget-code-input {
80
- font-family: "Courier New", Courier, monospace;
81
- }
82
- .siteorigin-widget-form .siteorigin-widget-field-type-slider .siteorigin-widget-slider-wrapper {
83
- margin: 10px 0;
84
- border: 1px solid #E0E0E0;
85
- padding: 12px 15px;
86
- background: #F4F4F4;
87
- -webkit-border-radius: 4px;
88
- -moz-border-radius: 4px;
89
- border-radius: 4px;
90
- max-width: 500px;
91
- display: block;
92
- margin-left: 55px;
93
- }
94
- .siteorigin-widget-form .siteorigin-widget-field-type-slider .siteorigin-widget-slider-value {
95
- display: block;
96
- float: left;
97
- margin-top: 0;
98
- border: 1px solid #E0E0E0;
99
- padding: 11px 0;
100
- background: #F4F4F4;
101
- font-weight: bold;
102
- color: #666;
103
- width: 45px;
104
- text-align: center;
105
- }
106
- .siteorigin-widget-form .siteorigin-widget-field-type-slider .siteorigin-widget-value-slider {
107
- position: relative;
108
- height: 5px;
109
- background: #A0A0A0;
110
- -webkit-box-shadow: inset 0 1px 2px rgba(0,0,0,0.25);
111
- -moz-box-shadow: inset 0 1px 2px rgba(0,0,0,0.25);
112
- box-shadow: inset 0 1px 2px rgba(0,0,0,0.25);
113
- -webkit-border-radius: 4px;
114
- -moz-border-radius: 4px;
115
- border-radius: 4px;
116
- }
117
- .siteorigin-widget-form .siteorigin-widget-field-type-slider .ui-slider-handle {
118
- cursor: move;
119
- -ms-box-sizing: border-box;
120
- -moz-box-sizing: border-box;
121
- -webkit-box-sizing: border-box;
122
- box-sizing: border-box;
123
- border: 1px solid #a4a3a8;
124
- z-index: 10;
125
- position: absolute;
126
- width: 18px;
127
- height: 18px;
128
- margin-top: -7px;
129
- margin-left: -9px;
130
- background: #F9F9F9;
131
- -webkit-border-radius: 10px;
132
- -moz-border-radius: 10px;
133
- border-radius: 10px;
134
- top: 0;
135
- left: 0;
136
- -webkit-box-shadow: inset 0 1px 0 #FFFFFF, 0 1px 1px rgba(0,0,0,0.1);
137
- -moz-box-shadow: inset 0 1px 0 #FFFFFF, 0 1px 1px rgba(0,0,0,0.1);
138
- box-shadow: inset 0 1px 0 #FFFFFF, 0 1px 1px rgba(0,0,0,0.1);
139
- }
140
- .siteorigin-widget-form .siteorigin-widget-field-type-slider input[type="number"] {
141
- display: none;
142
- }
143
- .siteorigin-widget-form .siteorigin-widget-field-repeater {
144
- /* This is for sub level forms */
145
- }
146
- .siteorigin-widget-form .siteorigin-widget-field-repeater .siteorigin-widget-field-repeater-top {
147
- background: #F0F0F0;
148
- border: 1px solid #D0D0D0;
149
- padding: 10px;
150
- position: relative;
151
- }
152
- .siteorigin-widget-form .siteorigin-widget-field-repeater .siteorigin-widget-field-repeater-top h3 {
153
- font-size: 13px;
154
- margin: 0;
155
- padding: 0 !important;
156
- }
157
- .siteorigin-widget-form .siteorigin-widget-field-repeater .siteorigin-widget-field-expand,
158
- .siteorigin-widget-form .siteorigin-widget-field-repeater .siteorigin-widget-field-copy,
159
- .siteorigin-widget-form .siteorigin-widget-field-repeater .siteorigin-widget-field-remove {
160
- width: 14px;
161
- height: 14px;
162
- position: absolute;
163
- top: 50%;
164
- margin-top: -7px;
165
- cursor: pointer;
166
- font-size: 14px;
167
- line-height: 14px;
168
- text-align: center;
169
- }
170
- .siteorigin-widget-form .siteorigin-widget-field-repeater .siteorigin-widget-field-expand:before,
171
- .siteorigin-widget-form .siteorigin-widget-field-repeater .siteorigin-widget-field-copy:before,
172
- .siteorigin-widget-form .siteorigin-widget-field-repeater .siteorigin-widget-field-remove:before {
173
- font-family: dashicons;
174
- vertical-align: middle;
175
- color: #999999;
176
- }
177
- .siteorigin-widget-form .siteorigin-widget-field-repeater .siteorigin-widget-field-expand {
178
- right: 48px;
179
- }
180
- .siteorigin-widget-form .siteorigin-widget-field-repeater .siteorigin-widget-field-expand:before {
181
- content: "\f140";
182
- }
183
- .siteorigin-widget-form .siteorigin-widget-field-repeater .siteorigin-widget-field-expand:hover:before {
184
- color: #50575D;
185
- }
186
- .siteorigin-widget-form .siteorigin-widget-field-repeater .siteorigin-widget-field-copy {
187
- right: 28px;
188
- }
189
- .siteorigin-widget-form .siteorigin-widget-field-repeater .siteorigin-widget-field-copy:before {
190
- content: "\f105";
191
- }
192
- .siteorigin-widget-form .siteorigin-widget-field-repeater .siteorigin-widget-field-copy:hover:before {
193
- color: #50575D;
194
- }
195
- .siteorigin-widget-form .siteorigin-widget-field-repeater .siteorigin-widget-field-remove {
196
- right: 12px;
197
- }
198
- .siteorigin-widget-form .siteorigin-widget-field-repeater .siteorigin-widget-field-remove:before {
199
- content: '\f158';
200
- }
201
- .siteorigin-widget-form .siteorigin-widget-field-repeater .siteorigin-widget-field-remove:hover {
202
- background: #ff0000;
203
- }
204
- .siteorigin-widget-form .siteorigin-widget-field-repeater .siteorigin-widget-field-remove:hover:before {
205
- color: #FFFFFF;
206
- }
207
- .siteorigin-widget-form .siteorigin-widget-field-repeater .siteorigin-widget-field-repeater-items {
208
- background: #FCFCFC;
209
- border: 1px solid #EEEEEE;
210
- border-top: 0;
211
- border-bottom: 0;
212
- }
213
- .siteorigin-widget-form .siteorigin-widget-field-repeater .siteorigin-widget-field-repeater-items .siteorigin-widget-field-repeater-item {
214
- background: #FCFCFC;
215
- border-bottom: 1px solid #EEEEEE;
216
- }
217
- .siteorigin-widget-form .siteorigin-widget-field-repeater .siteorigin-widget-field-repeater-items .siteorigin-widget-field-repeater-item .siteorigin-widget-field-repeater-item-top {
218
- padding: 10px;
219
- cursor: move;
220
- position: relative;
221
- background: #F6F6F6;
222
- }
223
- .siteorigin-widget-form .siteorigin-widget-field-repeater .siteorigin-widget-field-repeater-items .siteorigin-widget-field-repeater-item .siteorigin-widget-field-repeater-item-top h4 {
224
- font-size: 12px;
225
- margin: 0;
226
- }
227
- .siteorigin-widget-form .siteorigin-widget-field-repeater .siteorigin-widget-field-repeater-items .siteorigin-widget-field-repeater-item h4 {
228
- font-size: 15px;
229
- margin: 0;
230
- }
231
- .siteorigin-widget-form .siteorigin-widget-field-repeater .siteorigin-widget-field-repeater-items .siteorigin-widget-field-repeater-item:last-child {
232
- border-bottom: 0;
233
- }
234
- .siteorigin-widget-form .siteorigin-widget-field-repeater .siteorigin-widget-field-repeater-items .siteorigin-widget-field-repeater-item .siteorigin-widget-field-repeater-item-form {
235
- border-top: 1px solid #EEEEEE;
236
- display: none;
237
- padding: 1px 10px;
238
- }
239
- .siteorigin-widget-form .siteorigin-widget-field-repeater .siteorigin-widget-field-repeater-add {
240
- padding: 7px 10px;
241
- background: #F0F0F0;
242
- border: 1px dashed #D0D0D0;
243
- font-size: 12px;
244
- line-height: 1em;
245
- text-align: center;
246
- cursor: pointer;
247
- }
248
- .siteorigin-widget-form .siteorigin-widget-field-repeater .siteorigin-widget-field-repeater-add:hover {
249
- background: #F4F4F4;
250
- }
251
- .siteorigin-widget-form .siteorigin-widget-field-repeater .siteorigin-widget-field-repeater .siteorigin-widget-field-repeater-top {
252
- background: #eaf2f6;
253
- border-color: #c9d0d4;
254
- }
255
- .siteorigin-widget-form .siteorigin-widget-field-repeater .siteorigin-widget-field-repeater .siteorigin-widget-field-repeater-top h3 {
256
- color: #42484b;
257
- }
258
- .siteorigin-widget-form .siteorigin-widget-field-repeater .siteorigin-widget-field-repeater .siteorigin-widget-field-repeater-items {
259
- background: #f6fdff;
260
- border-color: #e8eff3;
261
- }
262
- .siteorigin-widget-form .siteorigin-widget-field-repeater .siteorigin-widget-field-repeater .siteorigin-widget-field-repeater-items .siteorigin-widget-field-repeater-item {
263
- background: #f8fdff;
264
- border-bottom-color: #e8eff3;
265
- }
266
- .siteorigin-widget-form .siteorigin-widget-field-repeater .siteorigin-widget-field-repeater .siteorigin-widget-field-repeater-items .siteorigin-widget-field-repeater-item .siteorigin-widget-field-repeater-item-top {
267
- background: #f0f8fc;
268
- }
269
- .siteorigin-widget-form .siteorigin-widget-field-repeater .siteorigin-widget-field-repeater .siteorigin-widget-field-repeater-items .siteorigin-widget-field-repeater-item .siteorigin-widget-field-repeater-item-form {
270
- border-top-color: #e8eff3;
271
- }
272
- .siteorigin-widget-form .siteorigin-widget-field-repeater .siteorigin-widget-field-repeater .siteorigin-widget-field-repeater-add {
273
- background: #eaf2f6;
274
- border-color: #c9d0d4;
275
- color: #42484b;
276
- }
277
- .siteorigin-widget-form .siteorigin-widget-field-repeater .siteorigin-widget-field-repeater .siteorigin-widget-field-repeater-add:hover {
278
- background: #edf5f9;
279
- }
280
- .siteorigin-widget-form .siteorigin-widget-field-type-widget > label,
281
- .siteorigin-widget-form .siteorigin-widget-field-type-section > label {
282
- background: #F0F0F0;
283
- border: 1px solid #D0D0D0;
284
- padding: 10px;
285
- display: block;
286
- margin-bottom: 0;
287
- }
288
- .siteorigin-widget-form .siteorigin-widget-field-type-widget > label:before,
289
- .siteorigin-widget-form .siteorigin-widget-field-type-section > label:before {
290
- float: left;
291
- margin: 3px 6px 0 0;
292
- display: block;
293
- width: 14px;
294
- height: 14px;
295
- font-size: 14px;
296
- line-height: 1;
297
- font-family: "dashicons";
298
- content: "\f132";
299
- }
300
- .siteorigin-widget-form .siteorigin-widget-field-type-widget > label.siteorigin-widget-section-visible:before,
301
- .siteorigin-widget-form .siteorigin-widget-field-type-section > label.siteorigin-widget-section-visible:before {
302
- content: "\f460";
303
- }
304
- .siteorigin-widget-form .siteorigin-widget-field-type-widget .siteorigin-widget-section,
305
- .siteorigin-widget-form .siteorigin-widget-field-type-section .siteorigin-widget-section {
306
- padding: 1px 10px;
307
- background: #FCFCFC;
308
- border: 1px solid #EEEEEE;
309
- border-top: 0;
310
- }
311
- .siteorigin-widget-form .siteorigin-widget-field-type-widget .siteorigin-widget-section.siteorigin-widget-section-hide,
312
- .siteorigin-widget-form .siteorigin-widget-field-type-section .siteorigin-widget-section.siteorigin-widget-section-hide {
313
- display: none;
314
- }
315
- .siteorigin-widget-form .siteorigin-widget-field-type-link {
316
- position: relative;
317
- }
318
- .siteorigin-widget-form .siteorigin-widget-field-type-link .existing-content-selector {
319
- padding: 20px;
320
- display: none;
321
- position: absolute;
322
- top: 110%;
323
- right: 0px;
324
- width: 360px;
325
- z-index: 10;
326
- border: 1px solid #c0c0c0;
327
- background: #F6F6F6;
328
- -webkit-box-shadow: 0 2px 4px rgba(0,0,0,0.2);
329
- -moz-box-shadow: 0 2px 4px rgba(0,0,0,0.2);
330
- box-shadow: 0 2px 4px rgba(0,0,0,0.2);
331
- -webkit-border-radius: 3px;
332
- -moz-border-radius: 3px;
333
- border-radius: 3px;
334
- }
335
- .siteorigin-widget-form .siteorigin-widget-field-type-link .existing-content-selector .content-text-search {
336
- width: 100%;
337
- margin-bottom: 15px;
338
- }
339
- .siteorigin-widget-form .siteorigin-widget-field-type-link .existing-content-selector .posts {
340
- margin: 0;
341
- padding: 0;
342
- background: #fff;
343
- max-height: 300px;
344
- overflow-y: scroll;
345
- border: 1px solid #e4e4e4;
346
- }
347
- .siteorigin-widget-form .siteorigin-widget-field-type-link .existing-content-selector .posts li {
348
- cursor: pointer;
349
- padding: 5px 10px;
350
- color: #32373c;
351
- border-bottom: 1px solid #f1f1f1;
352
- margin: 0;
353
- font-size: 0.95em;
354
- }
355
- .siteorigin-widget-form .siteorigin-widget-field-type-link .existing-content-selector .posts li:hover {
356
- background: #eaf2fa;
357
- }
358
- .siteorigin-widget-form .siteorigin-widget-field-type-link .existing-content-selector .posts li:last-child {
359
- border-bottom: 0;
360
- }
361
- .siteorigin-widget-form .siteorigin-widget-field-type-link .existing-content-selector .posts li span {
362
- font-size: 0.9em;
363
- display: inline-block;
364
- float: right;
365
- color: #999;
366
- margin-left: 10px;
367
- }
368
- .siteorigin-widget-form .siteorigin-widget-field-type-link .existing-content-selector .posts.loading {
369
- min-height: 40px;
370
- background: #FFFFFF url("img/wpspin_light.gif") center center no-repeat;
371
- }
372
- @media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
373
- .siteorigin-widget-form .siteorigin-widget-field-type-link .existing-content-selector .posts.loading {
374
- background-image: url("img/wpspin_light-2x.gif");
375
- background-size: 16px 16px;
376
- }
377
- }
378
- .siteorigin-widget-form .siteorigin-widget-field-type-link .existing-content-selector .posts.loading li {
379
- display: none;
380
- }
381
- .siteorigin-widget-form .siteorigin-widget-field-type-link .existing-content-selector .buttons {
382
- margin-top: 15px;
383
- text-align: right;
384
- }
385
- .siteorigin-widget-form .siteorigin-widget-field-type-link .existing-content-selector .buttons a {
386
- display: inline-block;
387
- }
388
- .siteorigin-widget-form .siteorigin-widget-field-type-link .url-input-wrapper {
389
- display: block;
390
- margin-right: 130px;
391
- }
392
- .siteorigin-widget-form .siteorigin-widget-field-type-link .select-content-button {
393
- float: right;
394
- width: 120px;
395
- text-align: center;
396
- }
397
- .siteorigin-widget-form .siteorigin-widget-description {
398
- clear: both;
399
- }
400
- .siteorigin-widgets-query-builder .query-builder-content {
401
- padding: 20px;
402
- }
403
- .siteorigin-widgets-query-builder .query-builder-content .query-builder-form-field {
404
- margin-bottom: 10px;
405
- }
406
- .siteorigin-widgets-query-builder .query-builder-content .query-builder-form-field label span {
407
- display: block;
408
- font-size: 13px;
409
- line-height: 24px;
410
- color: #666;
411
- }
412
- .siteorigin-widgets-query-builder .query-builder-content .query-builder-form-field .sow-select-posts {
413
- margin-top: 2px;
414
- }
415
- .siteorigin-widgets-query-builder .query-builder-content .query-builder-form-field input[type="text"] {
416
- width: 400px;
417
- }
418
- .siteorigin-widgets-query-builder .query-builder-content .query-builder-form-field input[type="number"] {
419
- width: 150px;
420
- }
421
- .siteorigin-widgets-query-builder .query-builder-content .query-builder-form-field input[type="date"] {
422
- width: 150px;
423
- margin: 0 10px;
424
- }
425
- .siteorigin-widgets-query-builder .query-builder-content .query-builder-form-field .sow-order-button {
426
- display: inline-block;
427
- width: 19px;
428
- height: 19px;
429
- margin: 0 0 -6px 10px;
430
- cursor: pointer;
431
- background: url(img/ordering-icons.png);
432
- }
433
- .siteorigin-widgets-query-builder .query-builder-content .query-builder-form-field .sow-order-button.sow-order-button-desc {
434
- background-position: left top;
435
- }
436
- .siteorigin-widgets-query-builder .query-builder-content .query-builder-form-field .sow-order-button.sow-order-button-asc {
437
- background-position: left bottom;
438
- }
439
- .siteorigin-widgets-query-builder .query-builder-content .query-builder-form-field small {
440
- display: block;
441
- }
442
- .siteorigin-widgets-query-builder .media-toolbar-secondary .sow-post-count-message {
443
- margin-top: 21px;
444
- }
445
- .siteorigin-widgets-query-builder .media-toolbar-secondary .sow-post-selector-summary {
446
- margin-top: 10px;
447
- display: block;
448
- width: 41px;
449
- height: 41px;
450
- float: left;
451
- overflow: hidden;
452
- background: green;
453
- margin-right: 10px;
454
- }
455
- .siteorigin-widgets-query-builder .media-toolbar-secondary .sow-post-selector-summary:last-child {
456
- margin-right: 0;
457
- }
458
- .siteorigin-widgets-query-builder .sow-post-selector-summary {
459
- display: block;
460
- float: left;
461
- margin: 0 15px 15px 0;
462
- width: 130px;
463
- }
464
- .siteorigin-widgets-query-builder .sow-post-selector-summary .sow-thumbnail {
465
- width: 130px;
466
- height: 130px;
467
- margin-bottom: 4px;
468
- }
469
- .siteorigin-widgets-query-builder .sow-post-selector-summary .sow-thumbnail img {
470
- width: 100%;
471
- height: auto;
472
- }
473
- .siteorigin-widgets-query-builder .sow-post-selector-summary .sow-title {
474
- height: 2.5em;
475
- overflow: hidden;
476
- line-height: 1.2em;
477
- text-align: center;
478
- }
479
- .siteorigin-widgets-query-builder .sow-post-selector-summary.sow-post-loading .sow-thumbnail {
480
- background: url(img/loading.gif) center center no-repeat #EEEEEE;
481
- }
482
- .siteorigin-widgets-query-builder .sow-post-selector-summary.sow-post-loading .sow-thumbnail img {
483
- display: none;
484
- }
485
- .siteorigin-widgets-query-builder .sow-post-selector-summary .sow-remove {
486
- display: none;
487
- }
488
- .siteorigin-widgets-query-builder #sow-post-selector .sow-autocomplete-field {
489
- text-align: right;
490
- margin-bottom: 20px;
491
- }
492
- .siteorigin-widgets-query-builder #sow-post-selector .sow-autocomplete-field input[type=text] {
493
- width: 320px;
494
- margin-left: 10px;
495
- }
496
- .siteorigin-widgets-query-builder #sow-post-selector .sow-autocomplete-field .ui-autocomplete {
497
- max-height: 182px;
498
- overflow-y: auto;
499
- /* prevent horizontal scrollbar */
500
- overflow-x: hidden;
501
- }
502
- .siteorigin-widgets-query-builder #sow-post-selector .sow-posts-sortable .ui-state-highlight {
503
- display: block;
504
- float: left;
505
- margin: 0 15px 15px 0;
506
- background: #F3F3F3;
507
- }
508
- .siteorigin-widgets-query-builder #sow-post-selector .sow-posts-sortable .sow-post-selector-summary {
509
- cursor: move;
510
- position: relative;
511
- }
512
- .siteorigin-widgets-query-builder #sow-post-selector .sow-posts-sortable .sow-post-selector-summary .sow-remove {
513
- position: absolute;
514
- top: -5px;
515
- right: -5px;
516
- width: 19px;
517
- height: 19px;
518
- z-index: 10;
519
- text-decoration: none;
520
- background: #333333;
521
- text-align: center;
522
- }
523
- .siteorigin-widgets-query-builder #sow-post-selector .sow-posts-sortable .sow-post-selector-summary .sow-remove:before {
524
- content: '\f158';
525
- font: 14px/1 dashicons;
526
- vertical-align: middle;
527
- color: #EEEEEE;
528
- }
529
- .siteorigin-widgets-query-builder #sow-post-selector .sow-posts-sortable .sow-post-selector-summary .sow-remove:hover {
530
- background: #444444;
531
- }
532
- .siteorigin-widgets-query-builder #sow-post-selector .sow-posts-sortable .sow-post-selector-summary .sow-remove:hover:before {
533
- color: #FFFFFF;
534
- }
535
- .siteorigin-widgets-query-builder #sow-post-selector .sow-posts-sortable .sow-post-selector-summary:hover .sow-remove {
536
- display: block;
537
- }
538
- .siteorigin-widgets-query-builder #sow-post-selector .sow-posts-sortable:after {
539
- content: "";
540
- display: table;
541
- clear: both;
542
- }
543
- .siteorigin-widgets-query-builder .media-modal-close .media-modal-icon {
544
- position: absolute;
545
- top: 50%;
546
- left: 50%;
547
- text-decoration: none;
548
- width: 20px;
549
- height: 20px;
550
- margin-left: -10px;
551
- margin-top: -10px;
552
- color: #666666;
553
- text-align: center;
554
- }
555
- .siteorigin-widgets-query-builder .media-modal-close .media-modal-icon:before {
556
- font: 400 20px/1em dashicons;
557
- top: 7px;
558
- left: 13px;
559
- }
560
- .siteorigin-widget-preview {
561
- display: block !important;
562
- }
563
- .siteorigin-widget-help-link {
564
- display: block;
565
- margin: 1em 0;
566
- }
567
- .so-widgets-dialog .so-widgets-dialog-overlay {
568
- position: fixed;
569
- z-index: 500000;
570
- top: 0;
571
- left: 0;
572
- right: 0;
573
- bottom: 0;
574
- background: rgba(0, 0, 0, 0.7);
575
- }
576
- .so-widgets-dialog .so-widgets-toolbar,
577
- .so-widgets-dialog .so-widgets-dialog-frame {
578
- position: fixed;
579
- z-index: 500001;
580
- -ms-box-sizing: border-box;
581
- -moz-box-sizing: border-box;
582
- -webkit-box-sizing: border-box;
583
- box-sizing: border-box;
584
- }
585
- .so-widgets-dialog .so-widgets-toolbar {
586
- left: 30px;
587
- right: 30px;
588
- top: 30px;
589
- height: 50px;
590
- background: #fafafa;
591
- border-bottom: 1px solid #D8D8D8;
592
- }
593
- .so-widgets-dialog .so-widgets-toolbar h3 {
594
- margin: 15px 0 15px 20px;
595
- }
596
- .so-widgets-dialog .so-widgets-toolbar .close {
597
- position: absolute;
598
- box-sizing: border-box;
599
- width: 50px;
600
- height: 50px;
601
- display: block;
602
- cursor: pointer;
603
- top: 0;
604
- right: 0;
605
- -webkit-transition: all 0.2s ease;
606
- -moz-transition: all 0.2s ease;
607
- -o-transition: all 0.2s ease;
608
- transition: all 0.2s ease;
609
- background: #fafafa;
610
- border-left: 1px solid #d8d8d8;
611
- border-bottom: 1px solid #d8d8d8;
612
- }
613
- .so-widgets-dialog .so-widgets-toolbar .close:hover {
614
- background: #e9e9e9;
615
- }
616
- .so-widgets-dialog .so-widgets-toolbar .close:hover .so-dialog-icon {
617
- color: #333333;
618
- }
619
- .so-widgets-dialog .so-widgets-toolbar .close .dashicons {
620
- position: absolute;
621
- top: 50%;
622
- left: 50%;
623
- text-decoration: none;
624
- width: 21px;
625
- height: 21px;
626
- margin-left: -11px;
627
- margin-top: -10px;
628
- font-size: 21px;
629
- color: #666666;
630
- text-align: center;
631
- }
632
- .so-widgets-dialog .so-widgets-dialog-frame {
633
- top: 80px;
634
- left: 30px;
635
- right: 30px;
636
- bottom: 30px;
637
- background: #FFFFFF url("img/wpspin_light.gif") center center no-repeat;
638
- }
639
- @media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
640
- .so-widgets-dialog .so-widgets-dialog-frame {
641
- background-image: url("img/wpspin_light-2x.gif");
642
- background-size: 16px 16px;
643
- }
644
- }
645
- .so-widgets-dialog .so-widgets-dialog-frame iframe {
646
- width: 100%;
647
- height: 100%;
648
- }
649
- /* Icons */
650
- .widget-icon.so-widget-icon {
651
- background-size: cover;
652
- background-image: url("img/bundle-icon.png");
653
- }
1
+ .siteorigin-widget-form-no-styles{display:none !important}.siteorigin-widget-teaser{padding:10px 12px;border:1px solid #5fc133;background:#edfbe7;color:#394a3a;margin-bottom:20px}.siteorigin-widget-teaser .dashicons{float:right;margin:1px 2px 6px 10px;cursor:pointer;font-size:18px;width:18px;height:18px}.siteorigin-widget-form{display:block !important;margin:15px 0}.siteorigin-widget-form>div:first-child{margin-top:0}.siteorigin-widget-form a{box-shadow:none}.siteorigin-widget-form.siteorigin-widget-form-main{min-width:600px}.siteorigin-widget-form .siteorigin-widget-field{margin:1em 0}.siteorigin-widget-form .siteorigin-widget-field label{display:block;margin-bottom:3px}.siteorigin-widget-form .siteorigin-widget-field label.siteorigin-widget-field-label{font-weight:bold}.siteorigin-widget-form .siteorigin-widget-field label.so-checkbox-label{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.siteorigin-widget-form .siteorigin-widget-field .siteorigin-widget-description{font-size:.9em;margin-top:.2em;color:#999;font-style:italic}.siteorigin-widget-form .siteorigin-widget-field.siteorigin-widget-field-separator{margin:1.75em 0}.siteorigin-widget-form .siteorigin-widget-field.siteorigin-widget-field-is-optional .field-optional{font-weight:normal;font-size:.8em;vertical-align:super;padding-left:.5em;color:#54a242;font-style:italic}.siteorigin-widget-form .siteorigin-widget-field.siteorigin-widget-field-is-required .field-required{font-weight:normal;font-size:.8em;vertical-align:super;padding-left:.5em;color:#F02311;font-style:italic}.siteorigin-widget-form .siteorigin-widget-field input[type="text"]{width:100%}.siteorigin-widget-form .siteorigin-widget-field input.siteorigin-widget-input-color{width:auto}.siteorigin-widget-form .siteorigin-widget-field textarea.siteorigin-widget-code-input{font-family:"Courier New",Courier,monospace}.siteorigin-widget-form .siteorigin-widget-field-type-slider .siteorigin-widget-slider-wrapper{margin:10px 0;border:1px solid #E0E0E0;padding:12px 15px;background:#F4F4F4;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;max-width:500px;display:block;margin-left:55px}.siteorigin-widget-form .siteorigin-widget-field-type-slider .siteorigin-widget-slider-value{display:block;float:left;margin-top:0;border:1px solid #E0E0E0;padding:11px 0;background:#F4F4F4;font-weight:bold;color:#666;width:45px;text-align:center}.siteorigin-widget-form .siteorigin-widget-field-type-slider .siteorigin-widget-value-slider{position:relative;height:5px;background:#A0A0A0;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.25);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.25);box-shadow:inset 0 1px 2px rgba(0,0,0,0.25);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.siteorigin-widget-form .siteorigin-widget-field-type-slider .ui-slider-handle{cursor:move;-ms-box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;border:1px solid #a4a3a8;z-index:10;position:absolute;width:18px;height:18px;margin-top:-7px;margin-left:-9px;background:#F9F9F9;-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px;top:0;left:0;-webkit-box-shadow:inset 0 1px 0 #FFFFFF, 0 1px 1px rgba(0,0,0,0.1);-moz-box-shadow:inset 0 1px 0 #FFFFFF, 0 1px 1px rgba(0,0,0,0.1);box-shadow:inset 0 1px 0 #FFFFFF, 0 1px 1px rgba(0,0,0,0.1)}.siteorigin-widget-form .siteorigin-widget-field-type-slider input[type="number"]{display:none}.siteorigin-widget-form .siteorigin-widget-field-repeater .siteorigin-widget-field-repeater-top{background:#F0F0F0;border:1px solid #D0D0D0;padding:10px;position:relative}.siteorigin-widget-form .siteorigin-widget-field-repeater .siteorigin-widget-field-repeater-top h3{font-size:13px;margin:0;padding:0 !important}.siteorigin-widget-form .siteorigin-widget-field-repeater .siteorigin-widget-field-expand,.siteorigin-widget-form .siteorigin-widget-field-repeater .siteorigin-widget-field-copy,.siteorigin-widget-form .siteorigin-widget-field-repeater .siteorigin-widget-field-remove{width:14px;height:14px;position:absolute;top:50%;margin-top:-7px;cursor:pointer;font-size:14px;line-height:14px;text-align:center}.siteorigin-widget-form .siteorigin-widget-field-repeater .siteorigin-widget-field-expand:before,.siteorigin-widget-form .siteorigin-widget-field-repeater .siteorigin-widget-field-copy:before,.siteorigin-widget-form .siteorigin-widget-field-repeater .siteorigin-widget-field-remove:before{font-family:dashicons;vertical-align:middle;color:#999999}.siteorigin-widget-form .siteorigin-widget-field-repeater .siteorigin-widget-field-expand{right:48px}.siteorigin-widget-form .siteorigin-widget-field-repeater .siteorigin-widget-field-expand:before{content:"\f140"}.siteorigin-widget-form .siteorigin-widget-field-repeater .siteorigin-widget-field-expand:hover:before{color:#50575D}.siteorigin-widget-form .siteorigin-widget-field-repeater .siteorigin-widget-field-copy{right:28px}.siteorigin-widget-form .siteorigin-widget-field-repeater .siteorigin-widget-field-copy:before{content:"\f105"}.siteorigin-widget-form .siteorigin-widget-field-repeater .siteorigin-widget-field-copy:hover:before{color:#50575D}.siteorigin-widget-form .siteorigin-widget-field-repeater .siteorigin-widget-field-remove{right:12px}.siteorigin-widget-form .siteorigin-widget-field-repeater .siteorigin-widget-field-remove:before{content:'\f158'}.siteorigin-widget-form .siteorigin-widget-field-repeater .siteorigin-widget-field-remove:hover{background:#ff0000}.siteorigin-widget-form .siteorigin-widget-field-repeater .siteorigin-widget-field-remove:hover:before{color:#FFFFFF}.siteorigin-widget-form .siteorigin-widget-field-repeater .siteorigin-widget-field-repeater-items{background:#FCFCFC;border:1px solid #EEEEEE;border-top:0;border-bottom:0}.siteorigin-widget-form .siteorigin-widget-field-repeater .siteorigin-widget-field-repeater-items .siteorigin-widget-field-repeater-item{background:#FCFCFC;border-bottom:1px solid #EEEEEE}.siteorigin-widget-form .siteorigin-widget-field-repeater .siteorigin-widget-field-repeater-items .siteorigin-widget-field-repeater-item .siteorigin-widget-field-repeater-item-top{padding:10px;cursor:move;position:relative;background:#F6F6F6}.siteorigin-widget-form .siteorigin-widget-field-repeater .siteorigin-widget-field-repeater-items .siteorigin-widget-field-repeater-item .siteorigin-widget-field-repeater-item-top h4{font-size:12px;margin:0}.siteorigin-widget-form .siteorigin-widget-field-repeater .siteorigin-widget-field-repeater-items .siteorigin-widget-field-repeater-item h4{font-size:15px;margin:0}.siteorigin-widget-form .siteorigin-widget-field-repeater .siteorigin-widget-field-repeater-items .siteorigin-widget-field-repeater-item:last-child{border-bottom:0}.siteorigin-widget-form .siteorigin-widget-field-repeater .siteorigin-widget-field-repeater-items .siteorigin-widget-field-repeater-item .siteorigin-widget-field-repeater-item-form{border-top:1px solid #EEEEEE;display:none;padding:1px 10px}.siteorigin-widget-form .siteorigin-widget-field-repeater .siteorigin-widget-field-repeater-add{padding:7px 10px;background:#F0F0F0;border:1px dashed #D0D0D0;font-size:12px;line-height:1em;text-align:center;cursor:pointer}.siteorigin-widget-form .siteorigin-widget-field-repeater .siteorigin-widget-field-repeater-add:hover{background:#F4F4F4}.siteorigin-widget-form .siteorigin-widget-field-repeater .siteorigin-widget-field-repeater .siteorigin-widget-field-repeater-top{background:#eaf2f6;border-color:#c9d0d4}.siteorigin-widget-form .siteorigin-widget-field-repeater .siteorigin-widget-field-repeater .siteorigin-widget-field-repeater-top h3{color:#42484b}.siteorigin-widget-form .siteorigin-widget-field-repeater .siteorigin-widget-field-repeater .siteorigin-widget-field-repeater-items{background:#f6fdff;border-color:#e8eff3}.siteorigin-widget-form .siteorigin-widget-field-repeater .siteorigin-widget-field-repeater .siteorigin-widget-field-repeater-items .siteorigin-widget-field-repeater-item{background:#f8fdff;border-bottom-color:#e8eff3}.siteorigin-widget-form .siteorigin-widget-field-repeater .siteorigin-widget-field-repeater .siteorigin-widget-field-repeater-items .siteorigin-widget-field-repeater-item .siteorigin-widget-field-repeater-item-top{background:#f0f8fc}.siteorigin-widget-form .siteorigin-widget-field-repeater .siteorigin-widget-field-repeater .siteorigin-widget-field-repeater-items .siteorigin-widget-field-repeater-item .siteorigin-widget-field-repeater-item-form{border-top-color:#e8eff3}.siteorigin-widget-form .siteorigin-widget-field-repeater .siteorigin-widget-field-repeater .siteorigin-widget-field-repeater-add{background:#eaf2f6;border-color:#c9d0d4;color:#42484b}.siteorigin-widget-form .siteorigin-widget-field-repeater .siteorigin-widget-field-repeater .siteorigin-widget-field-repeater-add:hover{background:#edf5f9}.siteorigin-widget-form .siteorigin-widget-field-type-widget>label,.siteorigin-widget-form .siteorigin-widget-field-type-section>label{background:#F0F0F0;border:1px solid #D0D0D0;padding:10px;display:block;margin-bottom:0}.siteorigin-widget-form .siteorigin-widget-field-type-widget>label:before,.siteorigin-widget-form .siteorigin-widget-field-type-section>label:before{float:left;margin:3px 6px 0 0;display:block;width:14px;height:14px;font-size:14px;line-height:1;font-family:"dashicons";content:"\f132"}.siteorigin-widget-form .siteorigin-widget-field-type-widget>label.siteorigin-widget-section-visible:before,.siteorigin-widget-form .siteorigin-widget-field-type-section>label.siteorigin-widget-section-visible:before{content:"\f460"}.siteorigin-widget-form .siteorigin-widget-field-type-widget .siteorigin-widget-section,.siteorigin-widget-form .siteorigin-widget-field-type-section .siteorigin-widget-section{padding:1px 10px;background:#FCFCFC;border:1px solid #EEEEEE;border-top:0}.siteorigin-widget-form .siteorigin-widget-field-type-widget .siteorigin-widget-section.siteorigin-widget-section-hide,.siteorigin-widget-form .siteorigin-widget-field-type-section .siteorigin-widget-section.siteorigin-widget-section-hide{display:none}.siteorigin-widget-form .siteorigin-widget-field-type-link{position:relative}.siteorigin-widget-form .siteorigin-widget-field-type-link .existing-content-selector{padding:20px;display:none;position:absolute;top:110%;right:0;width:360px;z-index:10;border:1px solid #c0c0c0;background:#F6F6F6;-webkit-box-shadow:0 2px 4px rgba(0,0,0,0.2);-moz-box-shadow:0 2px 4px rgba(0,0,0,0.2);box-shadow:0 2px 4px rgba(0,0,0,0.2);-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.siteorigin-widget-form .siteorigin-widget-field-type-link .existing-content-selector .content-text-search{width:100%;margin-bottom:15px}.siteorigin-widget-form .siteorigin-widget-field-type-link .existing-content-selector .posts{margin:0;padding:0;background:#fff;max-height:300px;overflow-y:scroll;border:1px solid #e4e4e4}.siteorigin-widget-form .siteorigin-widget-field-type-link .existing-content-selector .posts li{cursor:pointer;padding:5px 10px;color:#32373c;border-bottom:1px solid #f1f1f1;margin:0;font-size:.95em}.siteorigin-widget-form .siteorigin-widget-field-type-link .existing-content-selector .posts li:hover{background:#eaf2fa}.siteorigin-widget-form .siteorigin-widget-field-type-link .existing-content-selector .posts li:last-child{border-bottom:0}.siteorigin-widget-form .siteorigin-widget-field-type-link .existing-content-selector .posts li span{font-size:.9em;display:inline-block;float:right;color:#999;margin-left:10px}.siteorigin-widget-form .siteorigin-widget-field-type-link .existing-content-selector .posts.loading{min-height:40px;background:#FFFFFF url("img/wpspin_light.gif") center center no-repeat}@media (-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){.siteorigin-widget-form .siteorigin-widget-field-type-link .existing-content-selector .posts.loading{background-image:url("img/wpspin_light-2x.gif");background-size:16px 16px}}.siteorigin-widget-form .siteorigin-widget-field-type-link .existing-content-selector .posts.loading li{display:none}.siteorigin-widget-form .siteorigin-widget-field-type-link .existing-content-selector .buttons{margin-top:15px;text-align:right}.siteorigin-widget-form .siteorigin-widget-field-type-link .existing-content-selector .buttons a{display:inline-block}.siteorigin-widget-form .siteorigin-widget-field-type-link .url-input-wrapper{display:block;margin-right:130px}.siteorigin-widget-form .siteorigin-widget-field-type-link .select-content-button{float:right;width:120px;text-align:center}.siteorigin-widget-form .siteorigin-widget-description{clear:both}.siteorigin-widgets-query-builder .query-builder-content{padding:20px}.siteorigin-widgets-query-builder .query-builder-content .query-builder-form-field{margin-bottom:10px}.siteorigin-widgets-query-builder .query-builder-content .query-builder-form-field label span{display:block;font-size:13px;line-height:24px;color:#666}.siteorigin-widgets-query-builder .query-builder-content .query-builder-form-field .sow-select-posts{margin-top:2px}.siteorigin-widgets-query-builder .query-builder-content .query-builder-form-field input[type="text"]{width:400px}.siteorigin-widgets-query-builder .query-builder-content .query-builder-form-field input[type="number"]{width:150px}.siteorigin-widgets-query-builder .query-builder-content .query-builder-form-field select[multiple]{min-width:150px;max-height:83px}.siteorigin-widgets-query-builder .query-builder-content .query-builder-form-field input[type="date"]{width:150px;margin:0 10px}.siteorigin-widgets-query-builder .query-builder-content .query-builder-form-field .sow-order-button{display:inline-block;width:19px;height:19px;margin:0 0 -6px 10px;cursor:pointer;background:url(img/ordering-icons.png)}.siteorigin-widgets-query-builder .query-builder-content .query-builder-form-field .sow-order-button.sow-order-button-desc{background-position:left top}.siteorigin-widgets-query-builder .query-builder-content .query-builder-form-field .sow-order-button.sow-order-button-asc{background-position:left bottom}.siteorigin-widgets-query-builder .query-builder-content .query-builder-form-field small{display:block}.siteorigin-widgets-query-builder .media-toolbar-secondary .sow-post-count-message{margin-top:21px}.siteorigin-widgets-query-builder .media-toolbar-secondary .sow-post-selector-summary{margin-top:10px;display:block;width:41px;height:41px;float:left;overflow:hidden;background:green;margin-right:10px}.siteorigin-widgets-query-builder .media-toolbar-secondary .sow-post-selector-summary:last-child{margin-right:0}.siteorigin-widgets-query-builder .sow-post-selector-summary{display:block;float:left;margin:0 15px 15px 0;width:130px}.siteorigin-widgets-query-builder .sow-post-selector-summary .sow-thumbnail{width:130px;height:130px;margin-bottom:4px}.siteorigin-widgets-query-builder .sow-post-selector-summary .sow-thumbnail img{width:100%;height:auto}.siteorigin-widgets-query-builder .sow-post-selector-summary .sow-title{height:2.5em;overflow:hidden;line-height:1.2em;text-align:center}.siteorigin-widgets-query-builder .sow-post-selector-summary.sow-post-loading .sow-thumbnail{background:url(img/loading.gif) center center no-repeat #EEEEEE}.siteorigin-widgets-query-builder .sow-post-selector-summary.sow-post-loading .sow-thumbnail img{display:none}.siteorigin-widgets-query-builder .sow-post-selector-summary .sow-remove{display:none}.siteorigin-widgets-query-builder #sow-post-selector .sow-autocomplete-field{text-align:right;margin-bottom:20px}.siteorigin-widgets-query-builder #sow-post-selector .sow-autocomplete-field input[type=text]{width:320px;margin-left:10px}.siteorigin-widgets-query-builder #sow-post-selector .sow-autocomplete-field .ui-autocomplete{max-height:182px;overflow-y:auto;overflow-x:hidden}.siteorigin-widgets-query-builder #sow-post-selector .sow-posts-sortable .ui-state-highlight{display:block;float:left;margin:0 15px 15px 0;background:#F3F3F3}.siteorigin-widgets-query-builder #sow-post-selector .sow-posts-sortable .sow-post-selector-summary{cursor:move;position:relative}.siteorigin-widgets-query-builder #sow-post-selector .sow-posts-sortable .sow-post-selector-summary .sow-remove{position:absolute;top:-5px;right:-5px;width:19px;height:19px;z-index:10;text-decoration:none;background:#333333;text-align:center}.siteorigin-widgets-query-builder #sow-post-selector .sow-posts-sortable .sow-post-selector-summary .sow-remove:before{content:'\f158';font:14px/1 dashicons;vertical-align:middle;color:#EEEEEE}.siteorigin-widgets-query-builder #sow-post-selector .sow-posts-sortable .sow-post-selector-summary .sow-remove:hover{background:#444444}.siteorigin-widgets-query-builder #sow-post-selector .sow-posts-sortable .sow-post-selector-summary .sow-remove:hover:before{color:#FFFFFF}.siteorigin-widgets-query-builder #sow-post-selector .sow-posts-sortable .sow-post-selector-summary:hover .sow-remove{display:block}.siteorigin-widgets-query-builder #sow-post-selector .sow-posts-sortable:after{content:"";display:table;clear:both}.siteorigin-widgets-query-builder .media-modal-close .media-modal-icon{position:absolute;top:50%;left:50%;text-decoration:none;width:20px;height:20px;margin-left:-10px;margin-top:-10px;color:#666666;text-align:center}.siteorigin-widgets-query-builder .media-modal-close .media-modal-icon:before{font:400 20px/1em dashicons;top:7px;left:13px}.siteorigin-widget-preview{display:block !important}.siteorigin-widget-help-link{display:block;margin:1em 0}.so-widgets-dialog .so-widgets-dialog-overlay{position:fixed;z-index:500000;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,0.7)}.so-widgets-dialog .so-widgets-toolbar,.so-widgets-dialog .so-widgets-dialog-frame{position:fixed;z-index:500001;-ms-box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.so-widgets-dialog .so-widgets-toolbar{left:30px;right:30px;top:30px;height:50px;background:#fafafa;border-bottom:1px solid #D8D8D8}.so-widgets-dialog .so-widgets-toolbar h3{margin:15px 0 15px 20px}.so-widgets-dialog .so-widgets-toolbar .close{position:absolute;box-sizing:border-box;width:50px;height:50px;display:block;cursor:pointer;top:0;right:0;-webkit-transition:all .2s ease;-moz-transition:all .2s ease;-o-transition:all .2s ease;transition:all .2s ease;background:#fafafa;border-left:1px solid #d8d8d8;border-bottom:1px solid #d8d8d8}.so-widgets-dialog .so-widgets-toolbar .close:hover{background:#e9e9e9}.so-widgets-dialog .so-widgets-toolbar .close:hover .so-dialog-icon{color:#333333}.so-widgets-dialog .so-widgets-toolbar .close .dashicons{position:absolute;top:50%;left:50%;text-decoration:none;width:21px;height:21px;margin-left:-11px;margin-top:-10px;font-size:21px;color:#666666;text-align:center}.so-widgets-dialog .so-widgets-dialog-frame{top:80px;left:30px;right:30px;bottom:30px;background:#FFFFFF url("img/wpspin_light.gif") center center no-repeat}@media (-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){.so-widgets-dialog .so-widgets-dialog-frame{background-image:url("img/wpspin_light-2x.gif");background-size:16px 16px}}.so-widgets-dialog .so-widgets-dialog-frame iframe{width:100%;height:100%}.widget-icon.so-widget-icon{background-size:cover;background-image:url("img/bundle-icon.png")}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
base/css/post-selector.css CHANGED
@@ -1,23 +1 @@
1
- .sow-select-posts {
2
- margin-top: 6px;
3
- position: relative;
4
- }
5
- .sow-select-posts .sow-current-count {
6
- position: absolute;
7
- top: -10px;
8
- right: -10px;
9
- border-radius: 9px;
10
- background: #f92700;
11
- border: 1px solid #da0900;
12
- display: block;
13
- line-height: 14px;
14
- font-size: 7px;
15
- width: 17px;
16
- height: 17px;
17
- text-align: center;
18
- vertical-align: middle;
19
- font-weight: bold;
20
- color: #FFFFFF;
21
- box-sizing: border-box;
22
- padding-top: 1px;
23
- }
1
+ .sow-select-posts{margin-top:6px;position:relative}.sow-select-posts .sow-current-count{position:absolute;top:-10px;right:-10px;border-radius:9px;background:#f92700;border:1px solid #da0900;display:block;line-height:14px;font-size:7px;width:17px;height:17px;text-align:center;vertical-align:middle;font-weight:bold;color:#FFFFFF;box-sizing:border-box;padding-top:1px}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
base/css/preview.css CHANGED
@@ -1,8 +1 @@
1
- body {
2
- margin: 20px !important;
3
- background: #FFFFFF !important;
4
- background-image: none !important;
5
- }
6
- h3.widget-title {
7
- margin-top: 0;
8
- }
1
+ body{margin:20px !important;background:#FFFFFF !important;background-image:none !important}h3.widget-title{margin-top:0}
 
 
 
 
 
 
 
base/inc/attachments.php CHANGED
@@ -44,14 +44,66 @@ function siteorigin_widgets_get_attachment_image( $attachment, $size, $fallback
44
  'src' => $src[0],
45
  );
46
 
 
 
 
 
 
 
 
47
  if( !empty($src[1]) ) $atts['width'] = $src[1];
48
  if( !empty($src[2]) ) $atts['height'] = $src[2];
49
 
50
  $return = '<img ';
51
  foreach( $atts as $id => $val ) {
52
- $return .= $id . '="' . esc_attr($val) . '" ';
53
  }
54
  $return .= '>';
55
  return $return;
56
  }
57
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
44
  'src' => $src[0],
45
  );
46
 
47
+ if ( function_exists( 'wp_get_attachment_image_srcset' ) ) {
48
+ $atts['srcset'] = wp_get_attachment_image_srcset( $attachment, $size );
49
+ }
50
+ if ( function_exists( 'wp_get_attachment_image_sizes' ) ) {
51
+ $atts['sizes'] = wp_get_attachment_image_sizes( $attachment, $size );
52
+ }
53
+
54
  if( !empty($src[1]) ) $atts['width'] = $src[1];
55
  if( !empty($src[2]) ) $atts['height'] = $src[2];
56
 
57
  $return = '<img ';
58
  foreach( $atts as $id => $val ) {
59
+ $return .= $id . '="' . esc_attr( $val ) . '" ';
60
  }
61
  $return .= '>';
62
  return $return;
63
  }
64
  }
65
+
66
+ /**
67
+ * Get size information for all currently-registered image sizes.
68
+ * From codex example here: https://codex.wordpress.org/Function_Reference/get_intermediate_image_sizes
69
+ *
70
+ * @global $_wp_additional_image_sizes
71
+ * @uses get_intermediate_image_sizes()
72
+ * @return array $sizes Data for all currently-registered image sizes.
73
+ */
74
+ function siteorigin_widgets_get_image_sizes() {
75
+ global $_wp_additional_image_sizes;
76
+
77
+ $sizes = array();
78
+
79
+ foreach ( get_intermediate_image_sizes() as $_size ) {
80
+ if ( in_array( $_size, array('thumbnail', 'medium', 'medium_large', 'large') ) ) {
81
+ $sizes[ $_size ]['width'] = get_option( "{$_size}_size_w" );
82
+ $sizes[ $_size ]['height'] = get_option( "{$_size}_size_h" );
83
+ $sizes[ $_size ]['crop'] = (bool) get_option( "{$_size}_crop" );
84
+ } elseif ( isset( $_wp_additional_image_sizes[ $_size ] ) ) {
85
+ $sizes[ $_size ] = array(
86
+ 'width' => $_wp_additional_image_sizes[ $_size ]['width'],
87
+ 'height' => $_wp_additional_image_sizes[ $_size ]['height'],
88
+ 'crop' => $_wp_additional_image_sizes[ $_size ]['crop'],
89
+ );
90
+ }
91
+ }
92
+
93
+ return $sizes;
94
+ }
95
+
96
+
97
+ /**
98
+ * @param $size
99
+ *
100
+ * @return mixed
101
+ */
102
+ function siteorigin_widgets_get_image_size( $size ) {
103
+ $sizes = siteorigin_widgets_get_image_sizes();
104
+ if ( ! empty( $sizes[ $size ] ) ) {
105
+ return $sizes[ $size ];
106
+ }
107
+
108
+ return null;
109
+ }
base/inc/fields/color.class.php CHANGED
@@ -11,6 +11,14 @@ class SiteOrigin_Widget_Field_Color extends SiteOrigin_Widget_Field_Text_Input_B
11
  return $input_classes;
12
  }
13
 
 
 
 
 
 
 
 
 
14
  protected function sanitize_field_input( $value, $instance ) {
15
  $sanitized_value = $value;
16
  if( ! preg_match('|^#|', $sanitized_value) ) {
11
  return $input_classes;
12
  }
13
 
14
+ protected function get_input_data_attributes() {
15
+ $data_attributes = parent::get_input_data_attributes();
16
+ if ( ! empty( $this->default ) ) {
17
+ $data_attributes['default-color'] = $this->default;
18
+ }
19
+ return $data_attributes;
20
+ }
21
+
22
  protected function sanitize_field_input( $value, $instance ) {
23
  $sanitized_value = $value;
24
  if( ! preg_match('|^#|', $sanitized_value) ) {
base/inc/fields/css/icon-field.css CHANGED
@@ -1,121 +1 @@
1
- .siteorigin-widget-form .siteorigin-widget-field-type-icon .siteorigin-widget-icon-selector-current {
2
- display: inline-block;
3
- background: #f9f9f9;
4
- background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #f2f2f2), color-stop(1, #f9f9f9));
5
- background: -ms-linear-gradient(bottom, #f2f2f2, #f9f9f9);
6
- background: -moz-linear-gradient(center bottom, #f2f2f2 0%, #f9f9f9 100%);
7
- background: -o-linear-gradient(#f9f9f9, #f2f2f2);
8
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f9f9f9', endColorstr='#f2f2f2', GradientType=0);
9
- -webkit-box-shadow: 0 1px 2px rgba(0,0,0,0.1);
10
- -moz-box-shadow: 0 1px 2px rgba(0,0,0,0.1);
11
- box-shadow: 0 1px 2px rgba(0,0,0,0.1);
12
- -webkit-border-radius: 3px;
13
- -moz-border-radius: 3px;
14
- border-radius: 3px;
15
- vertical-align: middle;
16
- border: 1px solid #bbbbbb;
17
- height: 35px;
18
- }
19
- .siteorigin-widget-form .siteorigin-widget-field-type-icon .siteorigin-widget-icon-selector-current:hover {
20
- background: #ffffff;
21
- background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #f7f7f7), color-stop(1, #ffffff));
22
- background: -ms-linear-gradient(bottom, #f7f7f7, #ffffff);
23
- background: -moz-linear-gradient(center bottom, #f7f7f7 0%, #ffffff 100%);
24
- background: -o-linear-gradient(#ffffff, #f7f7f7);
25
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#f7f7f7', GradientType=0);
26
- -webkit-box-shadow: 0 1px 2px rgba(0,0,0,0.15);
27
- -moz-box-shadow: 0 1px 2px rgba(0,0,0,0.15);
28
- box-shadow: 0 1px 2px rgba(0,0,0,0.15);
29
- }
30
- .siteorigin-widget-form .siteorigin-widget-field-type-icon .siteorigin-widget-icon-selector-current .siteorigin-widget-icon {
31
- -ms-box-sizing: border-box;
32
- -moz-box-sizing: border-box;
33
- -webkit-box-sizing: border-box;
34
- box-sizing: border-box;
35
- float: left;
36
- margin: 4px;
37
- padding: 3px;
38
- border: 1px solid #999;
39
- background: #f3f3f3;
40
- height: 27px;
41
- width: 32px;
42
- text-align: center;
43
- }
44
- .siteorigin-widget-form .siteorigin-widget-field-type-icon .siteorigin-widget-icon-selector-current .siteorigin-widget-icon span {
45
- color: #333;
46
- font-size: 20px;
47
- }
48
- .siteorigin-widget-form .siteorigin-widget-field-type-icon .siteorigin-widget-icon-selector-current label {
49
- display: block;
50
- float: left;
51
- color: #666;
52
- text-decoration: none;
53
- text-shadow: 0 1px 0 #FFF;
54
- font-weight: 600;
55
- font-size: 11px;
56
- padding: 9px 10px 7px 7px;
57
- outline: none;
58
- cursor: pointer;
59
- }
60
- .siteorigin-widget-form .siteorigin-widget-field-type-icon .so-icon-remove {
61
- cursor: pointer;
62
- display: inline-block;
63
- text-decoration: none;
64
- color: #AAA;
65
- font-size: 11px;
66
- line-height: 1em;
67
- padding: 11px 0 11px 6px;
68
- }
69
- .siteorigin-widget-form .siteorigin-widget-field-type-icon.siteorigin-widget-active .so-icon-remove {
70
- display: none;
71
- }
72
- .siteorigin-widget-form .siteorigin-widget-field-type-icon .siteorigin-widget-icon-selector {
73
- display: none;
74
- padding: 10px;
75
- border: 1px solid #D8D8D8;
76
- background: #FFFFFF;
77
- -webkit-box-shadow: 0 1px 2px rgba(0,0,0,0.0275);
78
- -moz-box-shadow: 0 1px 2px rgba(0,0,0,0.0275);
79
- box-shadow: 0 1px 2px rgba(0,0,0,0.0275);
80
- margin-top: 10px;
81
- }
82
- .siteorigin-widget-form .siteorigin-widget-field-type-icon .siteorigin-widget-icon-selector select.siteorigin-widget-icon-family {
83
- font-size: 11px;
84
- display: inline-block;
85
- }
86
- .siteorigin-widget-form .siteorigin-widget-field-type-icon .siteorigin-widget-icon-selector .siteorigin-widget-icon-search {
87
- font-size: 11px;
88
- display: inline-block;
89
- width: 260px;
90
- padding: 6px 8px;
91
- }
92
- .siteorigin-widget-form .siteorigin-widget-field-type-icon .siteorigin-widget-icon-selector .siteorigin-widget-icon-icons {
93
- height: 160px;
94
- overflow-y: scroll;
95
- margin-top: 10px;
96
- }
97
- .siteorigin-widget-form .siteorigin-widget-field-type-icon .siteorigin-widget-icon-selector .siteorigin-widget-icon-icons .siteorigin-widget-icon-icons-icon {
98
- -ms-box-sizing: border-box;
99
- -moz-box-sizing: border-box;
100
- -webkit-box-sizing: border-box;
101
- box-sizing: border-box;
102
- float: left;
103
- width: 58px;
104
- height: 48px;
105
- margin: 3px;
106
- padding: 4px 0;
107
- border: 1px solid #D0D0D0;
108
- background: #FFFFFF;
109
- font-size: 40px;
110
- overflow: hidden;
111
- cursor: pointer;
112
- text-align: center;
113
- }
114
- .siteorigin-widget-form .siteorigin-widget-field-type-icon .siteorigin-widget-icon-selector .siteorigin-widget-icon-icons .siteorigin-widget-icon-icons-icon.siteorigin-widget-active {
115
- background: #f6fafc;
116
- border: 1px solid #43aaec;
117
- color: #078dce;
118
- -webkit-box-shadow: 0 1px 2px rgba(0,0,0,0.25);
119
- -moz-box-shadow: 0 1px 2px rgba(0,0,0,0.25);
120
- box-shadow: 0 1px 2px rgba(0,0,0,0.25);
121
- }
1
+ .siteorigin-widget-form .siteorigin-widget-field-type-icon .siteorigin-widget-icon-selector-current{display:inline-block;background:#f9f9f9;background:-webkit-gradient(linear, left bottom, left top, color-stop(0, #f2f2f2), color-stop(1, #f9f9f9));background:-ms-linear-gradient(bottom, #f2f2f2, #f9f9f9);background:-moz-linear-gradient(center bottom, #f2f2f2 0, #f9f9f9 100%);background:-o-linear-gradient(#f9f9f9, #f2f2f2);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#f9f9f9', endColorstr='#f2f2f2', GradientType=0);-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.1);-moz-box-shadow:0 1px 2px rgba(0,0,0,0.1);box-shadow:0 1px 2px rgba(0,0,0,0.1);-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;vertical-align:middle;border:1px solid #bbbbbb;height:35px}.siteorigin-widget-form .siteorigin-widget-field-type-icon .siteorigin-widget-icon-selector-current:hover{background:#ffffff;background:-webkit-gradient(linear, left bottom, left top, color-stop(0, #f7f7f7), color-stop(1, #ffffff));background:-ms-linear-gradient(bottom, #f7f7f7, #ffffff);background:-moz-linear-gradient(center bottom, #f7f7f7 0, #ffffff 100%);background:-o-linear-gradient(#ffffff, #f7f7f7);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#f7f7f7', GradientType=0);-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.15);-moz-box-shadow:0 1px 2px rgba(0,0,0,0.15);box-shadow:0 1px 2px rgba(0,0,0,0.15)}.siteorigin-widget-form .siteorigin-widget-field-type-icon .siteorigin-widget-icon-selector-current .siteorigin-widget-icon{-ms-box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;float:left;margin:4px;padding:3px;border:1px solid #999;background:#f3f3f3;height:27px;width:32px;text-align:center}.siteorigin-widget-form .siteorigin-widget-field-type-icon .siteorigin-widget-icon-selector-current .siteorigin-widget-icon span{color:#333;font-size:20px}.siteorigin-widget-form .siteorigin-widget-field-type-icon .siteorigin-widget-icon-selector-current label{display:block;float:left;color:#666;text-decoration:none;text-shadow:0 1px 0 #FFF;font-weight:600;font-size:11px;padding:9px 10px 7px 7px;outline:none;cursor:pointer}.siteorigin-widget-form .siteorigin-widget-field-type-icon .so-icon-remove{cursor:pointer;display:inline-block;text-decoration:none;color:#AAA;font-size:11px;line-height:1em;padding:11px 0 11px 6px}.siteorigin-widget-form .siteorigin-widget-field-type-icon.siteorigin-widget-active .so-icon-remove{display:none}.siteorigin-widget-form .siteorigin-widget-field-type-icon .siteorigin-widget-icon-selector{display:none;padding:10px;border:1px solid #D8D8D8;background:#FFFFFF;-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.0275);-moz-box-shadow:0 1px 2px rgba(0,0,0,0.0275);box-shadow:0 1px 2px rgba(0,0,0,0.0275);margin-top:10px}.siteorigin-widget-form .siteorigin-widget-field-type-icon .siteorigin-widget-icon-selector select.siteorigin-widget-icon-family{font-size:11px;display:inline-block}.siteorigin-widget-form .siteorigin-widget-field-type-icon .siteorigin-widget-icon-selector .siteorigin-widget-icon-search{font-size:11px;display:inline-block;width:260px;padding:6px 8px}.siteorigin-widget-form .siteorigin-widget-field-type-icon .siteorigin-widget-icon-selector .siteorigin-widget-icon-icons{height:160px;overflow-y:scroll;margin-top:10px}.siteorigin-widget-form .siteorigin-widget-field-type-icon .siteorigin-widget-icon-selector .siteorigin-widget-icon-icons .siteorigin-widget-icon-icons-icon{-ms-box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;float:left;width:58px;height:48px;margin:3px;padding:4px 0;border:1px solid #D0D0D0;background:#FFFFFF;font-size:40px;overflow:hidden;cursor:pointer;text-align:center}.siteorigin-widget-form .siteorigin-widget-field-type-icon .siteorigin-widget-icon-selector .siteorigin-widget-icon-icons .siteorigin-widget-icon-icons-icon.siteorigin-widget-active{background:#f6fafc;border:1px solid #43aaec;color:#078dce;-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.25);-moz-box-shadow:0 1px 2px rgba(0,0,0,0.25);box-shadow:0 1px 2px rgba(0,0,0,0.25)}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
base/inc/fields/css/measurement-field.css CHANGED
@@ -1,7 +1 @@
1
- .siteorigin-widget-form .siteorigin-widget-field input[type="text"].siteorigin-widget-input-measurement {
2
- float: left;
3
- max-width: 58px;
4
- margin: 1px;
5
- height: 28px;
6
- vertical-align: middle;
7
- }
1
+ .siteorigin-widget-form .siteorigin-widget-field input[type="text"].siteorigin-widget-input-measurement{float:left;max-width:58px;margin:1px;height:28px;vertical-align:middle}
 
 
 
 
 
 
base/inc/fields/css/media-field.css CHANGED
@@ -1,281 +1 @@
1
- .siteorigin-widget-form .siteorigin-widget-field-type-media .media-field-wrapper {
2
- position: relative;
3
- display: block;
4
- float: left;
5
- background: #f9f9f9;
6
- background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #f2f2f2), color-stop(1, #f9f9f9));
7
- background: -ms-linear-gradient(bottom, #f2f2f2, #f9f9f9);
8
- background: -moz-linear-gradient(center bottom, #f2f2f2 0%, #f9f9f9 100%);
9
- background: -o-linear-gradient(#f9f9f9, #f2f2f2);
10
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f9f9f9', endColorstr='#f2f2f2', GradientType=0);
11
- -webkit-box-shadow: 0 1px 2px rgba(0,0,0,0.1);
12
- -moz-box-shadow: 0 1px 2px rgba(0,0,0,0.1);
13
- box-shadow: 0 1px 2px rgba(0,0,0,0.1);
14
- -webkit-border-radius: 3px;
15
- -moz-border-radius: 3px;
16
- border-radius: 3px;
17
- border: 1px solid #bbbbbb;
18
- height: 32px;
19
- }
20
- .siteorigin-widget-form .siteorigin-widget-field-type-media .media-field-wrapper:hover {
21
- -webkit-box-shadow: 0 1px 2px rgba(0,0,0,0.15);
22
- -moz-box-shadow: 0 1px 2px rgba(0,0,0,0.15);
23
- box-shadow: 0 1px 2px rgba(0,0,0,0.15);
24
- }
25
- .siteorigin-widget-form .siteorigin-widget-field-type-media .media-field-wrapper .current {
26
- -ms-box-sizing: border-box;
27
- -moz-box-sizing: border-box;
28
- -webkit-box-sizing: border-box;
29
- box-sizing: border-box;
30
- float: left;
31
- height: 32px;
32
- padding: 4px;
33
- border-right: 1px solid #bbb;
34
- position: relative;
35
- box-shadow: 1px 0 0 #FFF;
36
- }
37
- .siteorigin-widget-form .siteorigin-widget-field-type-media .media-field-wrapper .current .title {
38
- display: none;
39
- position: absolute;
40
- bottom: 34px;
41
- left: 0;
42
- padding: 4px 12px;
43
- background: #333;
44
- color: #CCC;
45
- font-weight: bold;
46
- width: auto;
47
- white-space: nowrap;
48
- }
49
- .siteorigin-widget-form .siteorigin-widget-field-type-media .media-field-wrapper .current .thumbnail-wrapper {
50
- border: 1px solid #999;
51
- line-height: 0;
52
- box-shadow: 0px 1px 1px #FFF;
53
- width: 22px;
54
- height: 22px;
55
- background: #cfcfcf;
56
- background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #cccccc), color-stop(1, #cfcfcf));
57
- background: -ms-linear-gradient(bottom, #cccccc, #cfcfcf);
58
- background: -moz-linear-gradient(center bottom, #cccccc 0%, #cfcfcf 100%);
59
- background: -o-linear-gradient(#cfcfcf, #cccccc);
60
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#cfcfcf', endColorstr='#cccccc', GradientType=0);
61
- box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.2);
62
- }
63
- .siteorigin-widget-form .siteorigin-widget-field-type-media .media-field-wrapper .current .thumbnail-wrapper img {
64
- height: 100%;
65
- width: 100%;
66
- box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.2);
67
- }
68
- .siteorigin-widget-form .siteorigin-widget-field-type-media .media-field-wrapper .media-upload-button,
69
- .siteorigin-widget-form .siteorigin-widget-field-type-media .media-field-wrapper .find-image-button {
70
- display: block;
71
- float: left;
72
- color: #666;
73
- text-decoration: none;
74
- text-shadow: 0 1px 0 #FFF;
75
- font-weight: 600;
76
- font-size: 11px;
77
- padding: 7px 8px;
78
- outline: none;
79
- cursor: pointer;
80
- -webkit-border-radius: 2px;
81
- -moz-border-radius: 2px;
82
- border-radius: 2px;
83
- }
84
- .siteorigin-widget-form .siteorigin-widget-field-type-media .media-field-wrapper .media-upload-button:hover,
85
- .siteorigin-widget-form .siteorigin-widget-field-type-media .media-field-wrapper .find-image-button:hover {
86
- background: rgba(255, 255, 255, 0.75);
87
- }
88
- .siteorigin-widget-form .siteorigin-widget-field-type-media .media-field-wrapper .find-image-button {
89
- border-left: 1px solid #bbbbbb;
90
- }
91
- .siteorigin-widget-form .siteorigin-widget-field-type-media .media-field-wrapper:hover .media-upload-button {
92
- color: #707070;
93
- }
94
- .siteorigin-widget-form .siteorigin-widget-field-type-media .media-remove-button {
95
- display: block;
96
- text-decoration: none;
97
- float: left;
98
- color: #AAA;
99
- font-size: 11px;
100
- line-height: 1em;
101
- padding: 11px 0 11px 6px;
102
- -webkit-transition: all 0.25s ease;
103
- -moz-transition: all 0.25s ease;
104
- -o-transition: all 0.25s ease;
105
- transition: all 0.25s ease;
106
- position: static;
107
- opacity: 1;
108
- }
109
- .siteorigin-widget-form .siteorigin-widget-field-type-media .media-remove-button.remove-hide {
110
- pointer-events: none;
111
- opacity: 0;
112
- }
113
- .siteorigin-widget-form .siteorigin-widget-field-type-media .media-remove-button:hover {
114
- color: #BC0B0B;
115
- }
116
- .siteorigin-widget-form .siteorigin-widget-field-type-media .media-fallback-external {
117
- float: left;
118
- padding: 4px 8px;
119
- margin-top: 2px !important;
120
- margin-left: 25px !important;
121
- max-width: 320px;
122
- }
123
- #so-widgets-image-search-frame {
124
- position: absolute;
125
- top: 0;
126
- left: 0;
127
- right: 0;
128
- bottom: 0;
129
- background-color: #fff;
130
- padding: 25px;
131
- overflow-y: scroll;
132
- overflow-x: hidden;
133
- }
134
- #so-widgets-image-search-frame #so-widgets-image-search-form {
135
- display: block;
136
- width: 100%;
137
- position: relative;
138
- padding-right: 368px;
139
- margin-bottom: 2px;
140
- box-sizing: border-box;
141
- }
142
- #so-widgets-image-search-frame #so-widgets-image-search-form .so-widgets-search-input {
143
- padding: 9px 12px;
144
- margin-bottom: 0px;
145
- box-shadow: none;
146
- }
147
- #so-widgets-image-search-frame #so-widgets-image-search-form .so-widgets-search-input:focus {
148
- box-shadow: none;
149
- }
150
- #so-widgets-image-search-frame #so-widgets-image-search-form .so-widgets-search-button {
151
- position: absolute;
152
- padding: 9px 14px;
153
- font-size: 1.2em;
154
- height: 100%;
155
- top: 0;
156
- right: 320px;
157
- border-width: 1px;
158
- box-shadow: none;
159
- }
160
- #so-widgets-image-search-frame #so-widgets-image-search-suggestions {
161
- position: absolute;
162
- right: 0;
163
- top: 0;
164
- width: 300px;
165
- height: 40px;
166
- text-align: right;
167
- display: none;
168
- font-size: 1.1em;
169
- overflow: hidden;
170
- }
171
- #so-widgets-image-search-frame #so-widgets-image-search-suggestions strong {
172
- display: block;
173
- }
174
- #so-widgets-image-search-frame #so-widgets-image-search-suggestions ul {
175
- display: block;
176
- list-style: none;
177
- margin: 0;
178
- padding: 0;
179
- }
180
- #so-widgets-image-search-frame #so-widgets-image-search-suggestions ul li {
181
- display: inline-block;
182
- margin-right: 4px;
183
- }
184
- #so-widgets-image-search-frame #so-widgets-image-search-powered {
185
- font-size: 0.85em;
186
- margin-bottom: 15px;
187
- color: #888;
188
- }
189
- #so-widgets-image-search-frame .so-widgets-image-results {
190
- zoom: 1;
191
- margin: 0 -8px;
192
- }
193
- #so-widgets-image-search-frame .so-widgets-image-results:before {
194
- content: '';
195
- display: block;
196
- }
197
- #so-widgets-image-search-frame .so-widgets-image-results:after {
198
- content: '';
199
- display: table;
200
- clear: both;
201
- }
202
- #so-widgets-image-search-frame .so-widgets-image-results .so-widgets-result {
203
- -ms-box-sizing: border-box;
204
- -moz-box-sizing: border-box;
205
- -webkit-box-sizing: border-box;
206
- box-sizing: border-box;
207
- float: left;
208
- margin: 8px;
209
- }
210
- #so-widgets-image-search-frame .so-widgets-image-results .so-widgets-result a {
211
- position: relative;
212
- background-repeat: no-repeat;
213
- background-size: cover;
214
- display: block;
215
- width: 260px;
216
- height: 180px;
217
- background-color: #e8e8e8;
218
- }
219
- #so-widgets-image-search-frame .so-widgets-image-results .so-widgets-result a .so-widgets-result-sponsored {
220
- font-size: 0.8em;
221
- position: absolute;
222
- top: 5px;
223
- right: 5px;
224
- color: #fff;
225
- background: #59946B;
226
- line-height: 1em;
227
- padding: 5px;
228
- border-radius: 2px;
229
- }
230
- #so-widgets-image-search-frame .so-widgets-results-loading {
231
- display: none;
232
- font-size: 1.1em;
233
- padding: 15px 5px;
234
- background-color: #f7f7f7;
235
- text-align: center;
236
- margin-top: 20px;
237
- }
238
- #so-widgets-image-search-frame .so-widgets-results-loading .so-widgets-loading-icon {
239
- margin: 0 6px -3px 0;
240
- display: inline-block;
241
- width: 16px;
242
- height: 16px;
243
- background-image: url("images/wpspin_light.gif");
244
- background-position: center center;
245
- background-repeat: no-repeat;
246
- }
247
- @media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
248
- #so-widgets-image-search-frame .so-widgets-results-loading .so-widgets-loading-icon {
249
- background-image: url(images/wpspin_light-2x.gif);
250
- background-size: 16px 16px;
251
- }
252
- }
253
- #so-widgets-image-search-frame .so-widgets-results-more {
254
- display: none;
255
- text-align: center;
256
- margin-top: 20px;
257
- padding-bottom: 20px;
258
- }
259
- #so-widgets-image-search-frame .so-widgets-preview-window {
260
- display: none;
261
- position: fixed;
262
- background-color: #ffffff;
263
- box-shadow: 0 1px 3px rgba(0, 0, 0, 0.35);
264
- padding: 10px;
265
- pointer-events: none;
266
- }
267
- #so-widgets-image-search-frame .so-widgets-preview-window .so-widgets-preview-window-inside {
268
- background-size: cover;
269
- overflow: hidden;
270
- }
271
- #so-widgets-image-search-frame .so-widgets-preview-window img {
272
- width: 100%;
273
- height: auto;
274
- }
275
- #so-widgets-image-search-frame.so-widgets-importing .so-widgets-preview-window,
276
- #so-widgets-image-search-frame.so-widgets-importing #so-widgets-image-search-form,
277
- #so-widgets-image-search-frame.so-widgets-importing #so-widgets-image-search-powered,
278
- #so-widgets-image-search-frame.so-widgets-importing .so-widgets-image-results {
279
- visibility: hidden !important;
280
- display: none !important;
281
- }
1
+ .siteorigin-widget-form .siteorigin-widget-field-type-media .media-field-wrapper{position:relative;display:block;float:left;background:#f9f9f9;background:-webkit-gradient(linear, left bottom, left top, color-stop(0, #f2f2f2), color-stop(1, #f9f9f9));background:-ms-linear-gradient(bottom, #f2f2f2, #f9f9f9);background:-moz-linear-gradient(center bottom, #f2f2f2 0, #f9f9f9 100%);background:-o-linear-gradient(#f9f9f9, #f2f2f2);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#f9f9f9', endColorstr='#f2f2f2', GradientType=0);-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.1);-moz-box-shadow:0 1px 2px rgba(0,0,0,0.1);box-shadow:0 1px 2px rgba(0,0,0,0.1);-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;border:1px solid #bbbbbb;height:32px}.siteorigin-widget-form .siteorigin-widget-field-type-media .media-field-wrapper:hover{-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.15);-moz-box-shadow:0 1px 2px rgba(0,0,0,0.15);box-shadow:0 1px 2px rgba(0,0,0,0.15)}.siteorigin-widget-form .siteorigin-widget-field-type-media .media-field-wrapper .current{-ms-box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;float:left;height:32px;padding:4px;border-right:1px solid #bbb;position:relative;box-shadow:1px 0 0 #FFF}.siteorigin-widget-form .siteorigin-widget-field-type-media .media-field-wrapper .current .title{display:none;position:absolute;bottom:34px;left:0;padding:4px 12px;background:#333;color:#CCC;font-weight:bold;width:auto;white-space:nowrap}.siteorigin-widget-form .siteorigin-widget-field-type-media .media-field-wrapper .current .thumbnail-wrapper{border:1px solid #999;line-height:0;box-shadow:0 1px 1px #FFF;width:22px;height:22px;background:#cfcfcf;background:-webkit-gradient(linear, left bottom, left top, color-stop(0, #cccccc), color-stop(1, #cfcfcf));background:-ms-linear-gradient(bottom, #cccccc, #cfcfcf);background:-moz-linear-gradient(center bottom, #cccccc 0, #cfcfcf 100%);background:-o-linear-gradient(#cfcfcf, #cccccc);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#cfcfcf', endColorstr='#cccccc', GradientType=0);box-shadow:inset 0 1px 3px rgba(0,0,0,0.2)}.siteorigin-widget-form .siteorigin-widget-field-type-media .media-field-wrapper .current .thumbnail-wrapper img{height:100%;width:100%;box-shadow:inset 0 1px 3px rgba(0,0,0,0.2)}.siteorigin-widget-form .siteorigin-widget-field-type-media .media-field-wrapper .media-upload-button,.siteorigin-widget-form .siteorigin-widget-field-type-media .media-field-wrapper .find-image-button{display:block;float:left;color:#666;text-decoration:none;text-shadow:0 1px 0 #FFF;font-weight:600;font-size:11px;padding:7px 8px;outline:none;cursor:pointer;-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px}.siteorigin-widget-form .siteorigin-widget-field-type-media .media-field-wrapper .media-upload-button:hover,.siteorigin-widget-form .siteorigin-widget-field-type-media .media-field-wrapper .find-image-button:hover{background:rgba(255,255,255,0.75)}.siteorigin-widget-form .siteorigin-widget-field-type-media .media-field-wrapper .find-image-button{border-left:1px solid #bbbbbb}.siteorigin-widget-form .siteorigin-widget-field-type-media .media-field-wrapper:hover .media-upload-button{color:#707070}.siteorigin-widget-form .siteorigin-widget-field-type-media .media-remove-button{display:block;text-decoration:none;float:left;color:#AAA;font-size:11px;line-height:1em;padding:11px 0 11px 6px;-webkit-transition:all .25s ease;-moz-transition:all .25s ease;-o-transition:all .25s ease;transition:all .25s ease;position:static;opacity:1}.siteorigin-widget-form .siteorigin-widget-field-type-media .media-remove-button.remove-hide{pointer-events:none;opacity:0}.siteorigin-widget-form .siteorigin-widget-field-type-media .media-remove-button:hover{color:#BC0B0B}.siteorigin-widget-form .siteorigin-widget-field-type-media .media-fallback-external{float:left;padding:4px 8px;margin-top:2px !important;margin-left:25px !important;max-width:320px}#so-widgets-image-search-frame{position:absolute;top:0;left:0;right:0;bottom:0;background-color:#fff;padding:25px;overflow-y:scroll;overflow-x:hidden}#so-widgets-image-search-frame #so-widgets-image-search-form{display:block;width:100%;position:relative;padding-right:368px;margin-bottom:2px;box-sizing:border-box}#so-widgets-image-search-frame #so-widgets-image-search-form .so-widgets-search-input{padding:9px 12px;margin-bottom:0;box-shadow:none}#so-widgets-image-search-frame #so-widgets-image-search-form .so-widgets-search-input:focus{box-shadow:none}#so-widgets-image-search-frame #so-widgets-image-search-form .so-widgets-search-button{position:absolute;padding:9px 14px;font-size:1.2em;height:100%;top:0;right:320px;border-width:1px;box-shadow:none}#so-widgets-image-search-frame #so-widgets-image-search-suggestions{position:absolute;right:0;top:0;width:300px;height:40px;text-align:right;display:none;font-size:1.1em;overflow:hidden}#so-widgets-image-search-frame #so-widgets-image-search-suggestions strong{display:block}#so-widgets-image-search-frame #so-widgets-image-search-suggestions ul{display:block;list-style:none;margin:0;padding:0}#so-widgets-image-search-frame #so-widgets-image-search-suggestions ul li{display:inline-block;margin-right:4px}#so-widgets-image-search-frame #so-widgets-image-search-powered{font-size:.85em;margin-bottom:15px;color:#888}#so-widgets-image-search-frame .so-widgets-image-results{zoom:1;margin:0 -8px}#so-widgets-image-search-frame .so-widgets-image-results:before{content:'';display:block}#so-widgets-image-search-frame .so-widgets-image-results:after{content:'';display:table;clear:both}#so-widgets-image-search-frame .so-widgets-image-results .so-widgets-result{-ms-box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;float:left;margin:8px}#so-widgets-image-search-frame .so-widgets-image-results .so-widgets-result a{position:relative;background-repeat:no-repeat;background-size:cover;display:block;width:260px;height:180px;background-color:#e8e8e8}#so-widgets-image-search-frame .so-widgets-image-results .so-widgets-result a .so-widgets-result-sponsored{font-size:.8em;position:absolute;top:5px;right:5px;color:#fff;background:#59946B;line-height:1em;padding:5px;border-radius:2px}#so-widgets-image-search-frame .so-widgets-results-loading{display:none;font-size:1.1em;padding:15px 5px;background-color:#f7f7f7;text-align:center;margin-top:20px}#so-widgets-image-search-frame .so-widgets-results-loading .so-widgets-loading-icon{margin:0 6px -3px 0;display:inline-block;width:16px;height:16px;background-image:url("images/wpspin_light.gif");background-position:center center;background-repeat:no-repeat}@media (-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){#so-widgets-image-search-frame .so-widgets-results-loading .so-widgets-loading-icon{background-image:url(images/wpspin_light-2x.gif);background-size:16px 16px}}#so-widgets-image-search-frame .so-widgets-results-more{display:none;text-align:center;margin-top:20px;padding-bottom:20px}#so-widgets-image-search-frame .so-widgets-preview-window{display:none;position:fixed;background-color:#ffffff;box-shadow:0 1px 3px rgba(0,0,0,0.35);padding:10px;pointer-events:none}#so-widgets-image-search-frame .so-widgets-preview-window .so-widgets-preview-window-inside{background-size:cover;overflow:hidden}#so-widgets-image-search-frame .so-widgets-preview-window img{width:100%;height:auto}#so-widgets-image-search-frame.so-widgets-importing .so-widgets-preview-window,#so-widgets-image-search-frame.so-widgets-importing #so-widgets-image-search-form,#so-widgets-image-search-frame.so-widgets-importing #so-widgets-image-search-powered,#so-widgets-image-search-frame.so-widgets-importing .so-widgets-image-results{visibility:hidden !important;display:none !important}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
base/inc/fields/css/order-field.css CHANGED
@@ -1,12 +1 @@
1
- .siteorigin-widget-field-type-order .siteorigin-widget-order-items .siteorigin-widget-order-item {
2
- display: block;
3
- max-width: 200px;
4
- background-color: #f4f4f4;
5
- margin-bottom: 2px;
6
- padding: 4px 6px;
7
- cursor: move;
8
- border: 1px solid #e0e0e0;
9
- }
10
- .siteorigin-widget-field-type-order .siteorigin-widget-order-items .siteorigin-widget-order-item:last-child {
11
- margin-bottom: 0;
12
- }
1
+ .siteorigin-widget-field-type-order .siteorigin-widget-order-items .siteorigin-widget-order-item{display:block;max-width:200px;background-color:#f4f4f4;margin-bottom:2px;padding:4px 6px;cursor:move;border:1px solid #e0e0e0}.siteorigin-widget-field-type-order .siteorigin-widget-order-items .siteorigin-widget-order-item:last-child{margin-bottom:0}
 
 
 
 
 
 
 
 
 
 
 
base/inc/fields/css/tinymce-field.css CHANGED
@@ -1,3 +1 @@
1
- .wp-customizer .mce-floatpanel {
2
- z-index: 1000000 !important;
3
- }
1
+ .wp-customizer .mce-floatpanel{z-index:1000000 !important}.wp-customizer #mceu_44-body{z-index:1000000 !important}
 
 
base/inc/fields/image-size.class.php CHANGED
@@ -6,7 +6,7 @@
6
  class SiteOrigin_Widget_Field_Image_Size extends SiteOrigin_Widget_Field_Select {
7
 
8
  protected function get_default_options() {
9
- $image_size_configs = $this->get_image_sizes();
10
  // Hardcoded 'full' and 'thumb' because they're not registered image sizes.
11
  // 'full' will result in the original uploaded image size being used.
12
  // 'thumb' is a small thumbnail image size defined by the current theme.
@@ -23,34 +23,4 @@ class SiteOrigin_Widget_Field_Image_Size extends SiteOrigin_Widget_Field_Select
23
  );
24
  }
25
 
26
- /**
27
- * Get size information for all currently-registered image sizes.
28
- * From codex example here: https://codex.wordpress.org/Function_Reference/get_intermediate_image_sizes
29
- *
30
- * @global $_wp_additional_image_sizes
31
- * @uses get_intermediate_image_sizes()
32
- * @return array $sizes Data for all currently-registered image sizes.
33
- */
34
- private function get_image_sizes() {
35
- global $_wp_additional_image_sizes;
36
-
37
- $sizes = array();
38
-
39
- foreach ( get_intermediate_image_sizes() as $_size ) {
40
- if ( in_array( $_size, array('thumbnail', 'medium', 'medium_large', 'large') ) ) {
41
- $sizes[ $_size ]['width'] = get_option( "{$_size}_size_w" );
42
- $sizes[ $_size ]['height'] = get_option( "{$_size}_size_h" );
43
- $sizes[ $_size ]['crop'] = (bool) get_option( "{$_size}_crop" );
44
- } elseif ( isset( $_wp_additional_image_sizes[ $_size ] ) ) {
45
- $sizes[ $_size ] = array(
46
- 'width' => $_wp_additional_image_sizes[ $_size ]['width'],
47
- 'height' => $_wp_additional_image_sizes[ $_size ]['height'],
48
- 'crop' => $_wp_additional_image_sizes[ $_size ]['crop'],
49
- );
50
- }
51
- }
52
-
53
- return $sizes;
54
- }
55
-
56
  }
6
  class SiteOrigin_Widget_Field_Image_Size extends SiteOrigin_Widget_Field_Select {
7
 
8
  protected function get_default_options() {
9
+ $image_size_configs = siteorigin_widgets_get_image_sizes();
10
  // Hardcoded 'full' and 'thumb' because they're not registered image sizes.
11
  // 'full' will result in the original uploaded image size being used.
12
  // 'thumb' is a small thumbnail image size defined by the current theme.
23
  );
24
  }
25
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
26
  }
base/inc/fields/link.class.php CHANGED
@@ -15,19 +15,13 @@ class SiteOrigin_Widget_Field_Link extends SiteOrigin_Widget_Field_Text_Input_Ba
15
 
16
  protected function render_before_field( $value, $instance ) {
17
  parent::render_before_field( $value, $instance );
18
- if( is_string( $this->post_types ) ) {
19
- $this->post_types = array( $this->post_types );
20
- }
21
- else if ( ! is_array( $this->post_types ) ) {
22
- $this->post_types = array();
23
- }
24
-
25
  ?>
26
  <a href="#" class="select-content-button button button-small"><?php esc_html_e('Select Content', 'so-widgets-bundle') ?></a>
27
  <div class="existing-content-selector">
28
 
29
  <input type="text" class="content-text-search"
30
- data-post-types="<?php echo esc_attr( implode( ',', $this->post_types ) ) ?>"
31
  placeholder="<?php esc_attr_e( 'Search Content', 'so-widgets-bundle' ) ?>"/>
32
 
33
  <ul class="posts"></ul>
15
 
16
  protected function render_before_field( $value, $instance ) {
17
  parent::render_before_field( $value, $instance );
18
+ $post_types = ! empty( $this->post_types ) && is_array( $this->post_types ) ? implode( ',', $this->post_types ) : '';
 
 
 
 
 
 
19
  ?>
20
  <a href="#" class="select-content-button button button-small"><?php esc_html_e('Select Content', 'so-widgets-bundle') ?></a>
21
  <div class="existing-content-selector">
22
 
23
  <input type="text" class="content-text-search"
24
+ data-post-types="<?php echo esc_attr( $post_types ) ?>"
25
  placeholder="<?php esc_attr_e( 'Search Content', 'so-widgets-bundle' ) ?>"/>
26
 
27
  <ul class="posts"></ul>
base/inc/fields/measurement.class.php CHANGED
@@ -85,7 +85,8 @@ class SiteOrigin_Widget_Field_Measurement extends SiteOrigin_Widget_Field_Text_I
85
  $unit = 'px';
86
  }
87
 
88
- $value = ( $value === '' ) ? false : ( (float) $value ) . $unit;
 
89
  return $value;
90
  }
91
 
85
  $unit = 'px';
86
  }
87
 
88
+ // `strlen( $value ) == 0` should prevent 0, 0.0, or '0' from being seen as empty.
89
+ $value = ( empty( $value ) && strlen( $value ) == 0 ) ? false : ( (float) $value ) . $unit;
90
  return $value;
91
  }
92
 
base/inc/fields/text-input-base.class.php CHANGED
@@ -30,10 +30,26 @@ abstract class SiteOrigin_Widget_Field_Text_Input_Base extends SiteOrigin_Widget
30
  return array( 'widefat', 'siteorigin-widget-input' );
31
  }
32
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
33
  protected function render_field( $value, $instance ) {
34
  ?>
35
  <input type="text" name="<?php echo esc_attr( $this->element_name ) ?>" id="<?php echo esc_attr( $this->element_id ) ?>"
36
  value="<?php echo esc_attr( $value ) ?>"
 
37
  <?php $this->render_CSS_classes( $this->get_input_classes() ) ?>
38
  <?php if ( ! empty( $this->placeholder ) ) echo 'placeholder="' . esc_attr( $this->placeholder ) . '"' ?>
39
  <?php if( ! empty( $this->readonly ) ) echo 'readonly' ?> />
30
  return array( 'widefat', 'siteorigin-widget-input' );
31
  }
32
 
33
+ /**
34
+ * The data attributes to be added to the input element.
35
+ */
36
+ protected function get_input_data_attributes() {
37
+ return array();
38
+ }
39
+
40
+ protected function render_data_attributes( $data_attributes ) {
41
+ $attr_string = '';
42
+ foreach ( $data_attributes as $name => $value ) {
43
+ $attr_string = ' data-' . esc_html( $name ) . '="' . esc_attr( $value ) . '"';
44
+ }
45
+ echo $attr_string;
46
+ }
47
+
48
  protected function render_field( $value, $instance ) {
49
  ?>
50
  <input type="text" name="<?php echo esc_attr( $this->element_name ) ?>" id="<?php echo esc_attr( $this->element_id ) ?>"
51
  value="<?php echo esc_attr( $value ) ?>"
52
+ <?php $this->render_data_attributes( $this->get_input_data_attributes() ) ?>
53
  <?php $this->render_CSS_classes( $this->get_input_classes() ) ?>
54
  <?php if ( ! empty( $this->placeholder ) ) echo 'placeholder="' . esc_attr( $this->placeholder ) . '"' ?>
55
  <?php if( ! empty( $this->readonly ) ) echo 'readonly' ?> />
base/inc/post-selector.php CHANGED
@@ -119,7 +119,7 @@ function siteorigin_widget_post_selector_form_fields(){
119
  // The post type field
120
  $return['post_type'] = '';
121
  $return['post_type'] .= '<label><span>' . __('Post type', 'so-widgets-bundle') . '</span>';
122
- $return['post_type'] .= '<select name="post_type">';
123
  $return['post_type'] .= '<option value="_all">' . __('All', 'so-widgets-bundle') . '</option>';
124
  foreach( get_post_types( array( 'public' => true ), 'objects' ) as $id => $type ) {
125
  if(!empty($type->labels->name)) {
@@ -279,7 +279,9 @@ function siteorigin_widget_post_selector_post_search_action(){
279
  if ( empty( $_REQUEST['_widgets_nonce'] ) || !wp_verify_nonce( $_REQUEST['_widgets_nonce'], 'widgets_action' ) ) return;
280
  $term = !empty($_GET['term']) ? stripslashes($_GET['term']) : '';
281
  $type = !empty($_GET['type']) ? stripslashes($_GET['type']) : '_all';
282
- if($type == '_all') $type = explode(',', siteorigin_widget_post_selector_all_post_types());
 
 
283
 
284
  $results = array();
285
  $r = new WP_Query( array('s' => $term, 'post_status' => 'publish', 'posts_per_page' => 20, 'post_type' => $type) );
119
  // The post type field
120
  $return['post_type'] = '';
121
  $return['post_type'] .= '<label><span>' . __('Post type', 'so-widgets-bundle') . '</span>';
122
+ $return['post_type'] .= '<select name="post_type" multiple>';
123
  $return['post_type'] .= '<option value="_all">' . __('All', 'so-widgets-bundle') . '</option>';
124
  foreach( get_post_types( array( 'public' => true ), 'objects' ) as $id => $type ) {
125
  if(!empty($type->labels->name)) {
279
  if ( empty( $_REQUEST['_widgets_nonce'] ) || !wp_verify_nonce( $_REQUEST['_widgets_nonce'], 'widgets_action' ) ) return;
280
  $term = !empty($_GET['term']) ? stripslashes($_GET['term']) : '';
281
  $type = !empty($_GET['type']) ? stripslashes($_GET['type']) : '_all';
282
+ if($type == '_all') $type = siteorigin_widget_post_selector_all_post_types();
283
+
284
+ $type = explode(',', $type);
285
 
286
  $results = array();
287
  $r = new WP_Query( array('s' => $term, 'post_status' => 'publish', 'posts_per_page' => 20, 'post_type' => $type) );
base/inc/shortcode.php CHANGED
@@ -12,7 +12,7 @@ function siteorigin_widget_shortcode( $attr, $content = '' ){
12
  $attr = shortcode_atts( array(
13
  'class' => false,
14
  'id' => '',
15
- ), $attr, 'siteorigin_widget' );
16
 
17
  $attr[ 'class' ] = html_entity_decode( $attr[ 'class' ] );
18
 
12
  $attr = shortcode_atts( array(
13
  'class' => false,
14
  'id' => '',
15
+ ), $attr, 'panels_widget' );
16
 
17
  $attr[ 'class' ] = html_entity_decode( $attr[ 'class' ] );
18
 
base/js/admin.js CHANGED
@@ -175,13 +175,20 @@
175
  $el.find('.siteorigin-widget-field-repeater-item').sowSetupRepeaterItems();
176
 
177
  // Set up any color fields
178
- $fields.find('> .siteorigin-widget-input-color').wpColorPicker( {
179
- change: function(event, ui) {
180
- setTimeout(function() {
181
- $(event.target).trigger('change');
182
- }, 100);
183
- }
184
- } );
 
 
 
 
 
 
 
185
 
186
  ///////////////////////////////////////
187
  // Handle the sections
@@ -322,8 +329,9 @@
322
  } );
323
  }
324
 
 
325
  // Return an array that has the new states added to the array
326
- return $.extend( currentStates, sowEmitters[emitter.callback]( $$.val(), emitter.args ) );
327
  };
328
 
329
  // Run the states through the state emitters
175
  $el.find('.siteorigin-widget-field-repeater-item').sowSetupRepeaterItems();
176
 
177
  // Set up any color fields
178
+ $fields.find('> .siteorigin-widget-input-color').each(function () {
179
+ var colorField = $(this);
180
+ var colorFieldOptions = {
181
+ change: function(event, ui) {
182
+ setTimeout(function() {
183
+ $(event.target).trigger('change');
184
+ }, 100);
185
+ }
186
+ };
187
+ if( colorField.data('defaultColor') ) {
188
+ colorFieldOptions.defaultColor = colorField.data('defaultColor');
189
+ }
190
+ colorField.wpColorPicker( colorFieldOptions );
191
+ });
192
 
193
  ///////////////////////////////////////
194
  // Handle the sections
329
  } );
330
  }
331
 
332
+ var val = $$.is('[type="checkbox"]') ? $$.is(':checked') : $$.val();
333
  // Return an array that has the new states added to the array
334
+ return $.extend( currentStates, sowEmitters[emitter.callback]( val, emitter.args ) );
335
  };
336
 
337
  // Run the states through the state emitters
base/js/admin.min.js CHANGED
@@ -1 +1 @@
1
- !function(e){e.fn.sowSetupForm=function(){return e(this).each(function(i,t){var n,r,a=e(t),s=!0,o=a.find("input[name]");if(o.length&&o.attr("name").indexOf("__i__")!==-1)return this;if(a.is(".siteorigin-widget-form-main")){if(a.data("sow-form-setup")===!0)return!0;if(e("body").hasClass("widgets-php")&&!a.is(":visible")&&0===a.closest(".panel-dialog").length)return!0;a.on("sowstatechange",function(i,t,n){a.find("[data-state-handler]").each(function(){var i=e(this),r=e.extend({},i.data("state-handler"),s?i.data("state-handler-initial"):{});if(0===Object.keys(r).length)return!0;var a,o,d,l,f,g,p={},c=window.sowForms.getRepeaterId(i);if(c!==!1){var u={};for(var w in r)u[w.replace("{$repeater}",c)]=r[w];r=u}for(var w in r)if(f=!1,a=w.match(/^([a-zA-Z0-9_-]+)(\[([a-zA-Z0-9_\-,]+)\])?(\[\])?$/),null!==a){if(o={group:"default",name:"",multi:!1},void 0!==a[2]?(o.group=a[1],o.name=a[3]):o.name=a[0],o.multi=void 0!==a[4],"_else"===o.group)o.group=o.name,o.name="",f=o.group===t&&"undefined"==typeof p[o.group];else{g=o.name.split(",").map(function(e){return e.trim()});for(var m=0;m<g.length&&!(f=o.group===t&&g[m]===n);m++);}if(f){d=r[w],o.multi||(d=[d]);for(var m=0;m<d.length;m++)l="undefined"!=typeof d[m][1]&&Boolean(d[m][1])?i.find(d[m][1]):i,l[d[m][0]].apply(l,"undefined"!=typeof d[m][2]?d[m][2]:[]);p[o.group]=!0}}})}),a.sowSetupPreview(),n=a;var d=a.find(".siteorigin-widget-teaser");d.find(".dashicons-dismiss").click(function(){var i=e(this);e.get(i.data("dismiss-url")),console.log(i.data("dismiss-url")),d.slideUp("normal",function(){d.remove()})})}else n=a.closest(".siteorigin-widget-form-main");r=n.find("> .siteorigin-widgets-form-id").val();var l=a.find("> .siteorigin-widget-field");l.find("> .siteorigin-widget-section").sowSetupForm(),l.filter(".siteorigin-widget-field-type-widget:not(:has(> .siteorigin-widget-section))").sowSetupForm(),l.find(".siteorigin-widget-input").each(function(i,t){null===e(t).data("original-name")&&e(t).data("original-name",e(t).attr("name"))}),l.find("> .siteorigin-widget-field-repeater").sowSetupRepeater(),a.find(".siteorigin-widget-field-repeater-item").sowSetupRepeaterItems(),l.find("> .siteorigin-widget-input-color").wpColorPicker({change:function(i,t){setTimeout(function(){e(i.target).trigger("change")},100)}}),l.filter(".siteorigin-widget-field-type-widget, .siteorigin-widget-field-type-section").find("> label").click(function(){e(this);e(this).toggleClass("siteorigin-widget-section-visible"),e(this).siblings(".siteorigin-widget-section").slideToggle(function(){e(window).resize(),e(this).find("> .siteorigin-widget-field-container-state").val(e(this).is(":visible")?"open":"closed")})}),l.filter(".siteorigin-widget-field-type-slider").each(function(){var i=e(this),t=i.find('input[type="number"]'),n=i.find(".siteorigin-widget-value-slider");n.slider({max:parseInt(t.attr("max")),min:parseInt(t.attr("min")),value:parseInt(t.val()),slide:function(e,n){t.val(parseInt(n.value)),t.trigger("change"),i.find(".siteorigin-widget-slider-value").html(n.value)}})}),l.filter(".siteorigin-widget-field-type-link").each(function(){var i=e(this),t=null,n=function(){null!==t&&t.abort();var n=i.find(".content-text-search"),r=n.val(),a=n.data("postTypes"),s=i.find("ul.posts").empty().addClass("loading");e.get(soWidgets.ajaxurl,{action:"so_widgets_search_posts",query:r,postTypes:a},function(i){for(var t=0;t<i.length;t++)""===i[t].post_title&&(i[t].post_title="&nbsp;"),s.append(e("<li>").addClass("post").html(i[t].post_title+"<span>("+i[t].post_type+")</span>").data(i[t]));s.removeClass("loading")})};i.find(".select-content-button, .button-close").click(function(t){t.preventDefault(),e(this).blur();var r=i.find(".existing-content-selector");r.toggle(),r.is(":visible")&&0===r.find("ul.posts li").length&&n()}),i.on("click",".posts li",function(t){t.preventDefault();var n=e(this);i.find("input.siteorigin-widget-input").val("post: "+n.data("ID")),i.find(".existing-content-selector").toggle()});var r=null;i.find(".content-text-search").keyup(function(){null!==r&&clearTimeout(r),r=setTimeout(function(){n()},500)})}),"undefined"!=typeof jQuery.fn.soPanelsSetupBuilderWidget&&l.filter(".siteorigin-widget-field-type-builder").each(function(){var i=e(this);i.find("> .siteorigin-page-builder-field").soPanelsSetupBuilderWidget()});var f=function(){var i=e(this),t=i.closest("[data-state-emitter]").data("state-emitter");if("undefined"!=typeof t){var r=function(t,n){if("undefined"==typeof sowEmitters[t.callback]||"_"===t.callback.substr(0,1))return n;var r=window.sowForms.getRepeaterId(i);return r!==!1&&(t.args=t.args.map(function(e){return e.replace("{$repeater}",r)})),e.extend(n,sowEmitters[t.callback](i.val(),t.args))},a={"default":""};"undefined"==typeof t.length&&(t=[t]);for(var s=0;s<t.length;s++)a=r(t[s],a);var o=n.data("states");"undefined"==typeof o&&(o={"default":""});for(var d in a)"undefined"!=typeof o[d]&&a[d]===o[d]||(o[d]=a[d],n.trigger("sowstatechange",[d,a[d]]));n.data("states",o)}};l.filter("[data-state-emitter]").each(function(){e(this).find(".siteorigin-widget-input").on("keyup change",f),e(this).find(".siteorigin-widget-input").each(function(){var i=e(this);i.is(":radio")?i.is(":checked")&&f.call(i[0]):f.call(i[0])})}),a.trigger("sowsetupform",l).data("sow-form-setup",!0),l.trigger("sowsetupformfield"),a.find(".siteorigin-widget-field-repeater-item").trigger("updateFieldPositions"),s=!1})},e.fn.sowSetupPreview=function(){var i=e(this),t=i.siblings(".siteorigin-widget-preview");t.find("> a").click(function(t){t.preventDefault();var n={};i.find("*[name]").each(function(){var i=e(this),t=/[a-zA-Z0-9\-]+\[[a-zA-Z0-9]+\]\[(.*)\]/.exec(i.attr("name"));if(void 0===t)return!0;t=t[1];var r=t.split("][");r=r.map(function(e){return!isNaN(parseFloat(e))&&isFinite(e)?parseInt(e):e});for(var a=n,s=0;s<r.length;s++)if(s===r.length-1)if("checkbox"===i.attr("type"))i.is(":checked")?a[r[s]]=""===i.val()||i.val():a[r[s]]=!1;else if("radio"===i.attr("type"))i.is(":checked")&&(a[r[s]]=""===i.val()||i.val());else if("TEXTAREA"===i.prop("tagName")&&i.hasClass("wp-editor-area")){var o=null;"undefined"!=typeof tinyMCE&&(o=tinyMCE.get(i.attr("id"))),null===o||"function"!=typeof o.getContent||o.isHidden()?a[r[s]]=i.val():a[r[s]]=o.getContent()}else a[r[s]]=i.val();else"undefined"==typeof a[r[s]]&&(a[r[s]]={}),a=a[r[s]]});var r=e(e("#so-widgets-bundle-tpl-preview-dialog").html().trim()).appendTo("body");r.find('input[name="data"]').val(JSON.stringify(n)),r.find('input[name="class"]').val(i.data("class")),r.find("iframe").on("load",function(){e(this).css("visibility","visible")}),r.find("form").submit(),r.find(".close").click(function(){r.remove()})})},e.fn.sowSetupRepeater=function(){return e(this).each(function(i,t){var n=e(t),r=n.find(".siteorigin-widget-field-repeater-items"),a=n.data("repeater-name");r.bind("updateFieldPositions",function(){var i=e(this),t=i.find("> .siteorigin-widget-field-repeater-item");t.each(function(i,t){e(t).find(".siteorigin-widget-input").each(function(t,n){var r=e(n).data("repeater-positions");"undefined"==typeof r&&(r={}),r[a]=i,e(n).data("repeater-positions",r)})}),i.find(".siteorigin-widget-input").each(function(i,t){var n=e(t).data("repeater-positions"),r=e(t);if("undefined"!=typeof n){var a=r.attr("data-original-name");if(a||(r.attr("data-original-name",r.attr("name")),a=r.attr("name")),!a)return;if(n)for(var s in n)a=a.replace("#"+s+"#",n[s]);r.attr("name",a)}}),i.data("initialSetup")||(i.find(".siteorigin-widget-input").each(function(i,t){var n=e(t);n.prop("checked",n.prop("defaultChecked"))}),i.data("initialSetup",!0));var r=n.data("scroll-count")?parseInt(n.data("scroll-count")):0;if(r>0&&t.length>r){var s=t.first().outerHeight();i.css("max-height",s*r).css("overflow","auto")}else i.css("max-height","").css("overflow","")}),r.sortable({handle:".siteorigin-widget-field-repeater-item-top",items:"> .siteorigin-widget-field-repeater-item",update:function(){r.trigger("updateFieldPositions")}}),r.trigger("updateFieldPositions"),n.find("> .siteorigin-widget-field-repeater-add").disableSelection().click(function(i){i.preventDefault(),n.closest(".siteorigin-widget-field-repeater").sowAddRepeaterItem().find("> .siteorigin-widget-field-repeater-items").slideDown("fast",function(){e(window).resize()})}),n.find("> .siteorigin-widget-field-repeater-top > .siteorigin-widget-field-repeater-expand").click(function(i){i.preventDefault(),n.closest(".siteorigin-widget-field-repeater").find("> .siteorigin-widget-field-repeateritems-").slideToggle("fast",function(){e(window).resize()})})})},e.fn.sowAddRepeaterItem=function(){return e(this).each(function(i,t){var n=e(t),r=n.find("> .siteorigin-widget-field-repeater-items").children().length+1,a=e("<div>"+n.find("> .siteorigin-widget-field-repeater-item-html").html()+"</div>");a.find("[data-name]").each(function(){var i=e(this);0===i.closest(".siteorigin-widget-field-repeater-item-html").length&&i.attr("name",e(this).data("name"))});var s=a.html().replace(/_id_/g,r),o="undefined"!=typeof n.attr("readonly"),d=e('<div class="siteorigin-widget-field-repeater-item ui-draggable" />').append(e('<div class="siteorigin-widget-field-repeater-item-top" />').append(e('<div class="siteorigin-widget-field-expand" />')).append(o?"":e('<div class="siteorigin-widget-field-copy" />')).append(o?"":e('<div class="siteorigin-widget-field-remove" />')).append(e("<h4 />").html(n.data("item-name")))).append(e('<div class="siteorigin-widget-field-repeater-item-form" />').html(s));n.find("> .siteorigin-widget-field-repeater-items").append(d).sortable("refresh").trigger("updateFieldPositions"),d.sowSetupRepeaterItems(),d.hide().slideDown("fast",function(){e(window).resize()})})},e.fn.sowRemoveRepeaterItem=function(){return e(this).each(function(i,t){var n=e(this).closest(".siteorigin-widget-field-repeater-items");e(this).remove(),n.sortable("refresh").trigger("updateFieldPositions")})},e.fn.sowSetupRepeaterItems=function(){return e(this).each(function(i,t){var n=e(t);if("undefined"==typeof n.data("sowrepeater-actions-setup")){var r=n.closest(".siteorigin-widget-field-repeater"),a=n.find("> .siteorigin-widget-field-repeater-item-top"),s=r.data("item-label");if(s&&s.selector){var o=function(){var e=s.hasOwnProperty("valueMethod")&&s.valueMethod?s.valueMethod:"val",i=n.find(s.selector)[e]();i&&(i.length>80&&(i=i.substr(0,79)+"..."),a.find("h4").text(i))};o();var d=s.hasOwnProperty("updateEvent")&&s.updateEvent?s.updateEvent:"change";n.bind(d,o)}a.click(function(i){"siteorigin-widget-field-remove"!==i.target.className&&"siteorigin-widget-field-copy"!==i.target.className&&(i.preventDefault(),e(this).closest(".siteorigin-widget-field-repeater-item").find(".siteorigin-widget-field-repeater-item-form").eq(0).slideToggle("fast",function(){e(window).resize(),e(this).is(":visible")?e(this).trigger("slideToggleOpenComplete"):e(this).trigger("slideToggleCloseComplete")}))}),a.find(".siteorigin-widget-field-remove").click(function(i){if(i.preventDefault(),confirm(soWidgets.sure)){var t=e(this).closest(".siteorigin-widget-field-repeater-items");e(this).closest(".siteorigin-widget-field-repeater-item").slideUp("fast",function(){e(this).remove(),t.sortable("refresh").trigger("updateFieldPositions"),e(window).resize()})}}),a.find(".siteorigin-widget-field-copy").click(function(i){i.preventDefault();var t=e(this).closest(".siteorigin-widget-form-main"),r=e(this).closest(".siteorigin-widget-field-repeater-item"),a=r.clone(),s=r.closest(".siteorigin-widget-field-repeater-items"),o=s.children().length,d={};a.find("*[name]").each(function(){var i=e(this),s=i.attr("id"),l=i.attr("name");if(i.is("textarea")&&i.parent().is(".wp-editor-container")&&"undefined"!=typeof tinymce){i.parent().empty().append(i),i.css("display","");var f=tinymce.get(s);f&&i.val(f.getContent())}else if(i.is(".wp-color-picker")){var g=i.closest(".wp-picker-container"),p=i.closest(".siteorigin-widget-field");g.remove(),p.append(i.remove())}else{var c=r.find('[name="'+l+'"]');c.length&&null!=c.val()&&i.val(c.val())}if(s){var u,w,m;if(i.is('[type="radio"]')){w=s.replace(/-\d+-\d+$/,"");var h=s.replace(/-\d+$/,"");if(!d[w]){var v={};d[w]=t.find(".siteorigin-widget-input[id^="+w+"]").not("[id*=_id_]").filter(function(i,t){var n=e(t).attr("name");return!v[n]&&(v[n]=!0,!0)}).length+1}var y=w+"-"+d[w];m=y+s.match(/-\d+$/)[0],a.find("label[for="+h+"]").attr("for",y)}else u=new RegExp("-\\d+$"),w=s.replace(u,""),d[w]||(d[w]=t.find(".siteorigin-widget-input[id^="+w+"]").not("[id*=_id_]").length+1),m=w+"-"+d[w]++;i.attr("id",m),a.find("label[for="+s+"]").attr("for",m),a.find("[id*="+s+"]").each(function(){var i=e(this).attr("id"),t=i.replace(s,m);e(this).attr("id",t)}),"undefined"!=typeof tinymce&&tinymce.get(m)&&tinymce.get(m).remove()}var b=r.parents(".siteorigin-widget-field-repeater").length,_=e("body");(_.hasClass("wp-customizer")||_.hasClass("widgets-php"))&&0==n.closest(".panel-dialog").length&&(b+=1);var k=l.replace(new RegExp("((?:.*?\\[\\d+\\]){"+(b-1).toString()+"})?(.*?\\[)\\d+(\\])"),"$1$2"+o.toString()+"$3");i.attr("name",k),i.data("original-name",k)}),s.append(a).sortable("refresh").trigger("updateFieldPositions"),a.sowSetupRepeaterItems(),a.hide().slideDown("fast",function(){e(window).resize()})}),n.find("> .siteorigin-widget-field-repeater-item-form").sowSetupForm(),n.data("sowrepeater-actions-setup",!0)}})};var i={getRepeaterId:function(e){"undefined"==typeof this.id&&(this.id=1);var i=e.closest(".siteorigin-widget-field-repeater-item");if(i.length){var t=i.data("item-id");return void 0===t&&(t=this.id++),i.data("item-id",t),t}return!1},getWidgetFieldVariable:function(e,i,t){var n=window.sow_field_javascript_variables[e];i=i.replace(/\[#.*?#\]/g,"");for(var r=/[a-zA-Z0-9\-]+(?:\[c?[0-9]+\])?\[(.*)\]/.exec(i)[1],a=r.split("]["),s=a.length?n:null;a.length;)s=s[a.shift()];return s[t]},fetchWidgetVariable:function(i,t,n){window.sowVars=window.sowVars||{},"undefined"==typeof window.sowVars[t]?e.post(soWidgets.ajaxurl,{action:"sow_get_javascript_variables",widget:t,key:i},function(e){window.sowVars[t]=e,n(window.sowVars[t][i])}):n(window.sowVars[t][i])}};window.sowForms=i,e(".widgets-holder-wrap").on("click",".widget:has(.siteorigin-widget-form-main) .widget-top",function(){var i=e(this).closest(".widget").find(".siteorigin-widget-form-main");setTimeout(function(){i.sowSetupForm()},200)}),e("body").hasClass("wp-customizer")&&e(document).on("widget-added",function(e,i){i.find(".siteorigin-widget-form").sowSetupForm()}),e(document).on("dialogopen",function(i){e(i.target).find(".siteorigin-widget-form-main").sowSetupForm()}),e(function(){e(document).trigger("sowadminloaded")})}(jQuery);var sowEmitters={_match:function(e,i){"undefined"==typeof i&&(i=".*");var t=new RegExp("^([a-zA-Z0-9_-]+)(\\[([a-zA-Z0-9_-]+)\\])? *: *("+i+") *$"),n=t.exec(e);if(null===n)return!1;var r="",a="default";return void 0!==n[3]?(a=n[1],r=n[3]):r=n[1],{match:n[4].trim(),group:a,state:r}},_checker:function(e,i,t,n){var r={};"undefined"==typeof i.length&&(i=[i]);for(var a,s=0;s<i.length;s++)a=sowEmitters._match(i[s],t),a!==!1&&("_true"===a.match||n(e,i,a.match))&&(r[a.group]=a.state);return r},select:function(e,i){"undefined"==typeof i.length&&(i=[i]);for(var t={},n=0;n<i.length;n++)""===i[n]&&(i[n]="default"),t[i[n]]=e;return t},conditional:function(val,args){return sowEmitters._checker(val,args,"[^;{}]*",function(val,args,match){return eval(match)})},"in":function(e,i){return sowEmitters._checker(e,i,"[^;{}]*",function(e,i,t){return t.split(",").map(function(e){return e.trim()}).indexOf(e)!==-1})}};
1
+ !function(e){e.fn.sowSetupForm=function(){return e(this).each(function(i,t){var n,r,a=e(t),s=!0,o=a.find("input[name]");if(o.length&&o.attr("name").indexOf("__i__")!==-1)return this;if(a.is(".siteorigin-widget-form-main")){if(a.data("sow-form-setup")===!0)return!0;if(e("body").hasClass("widgets-php")&&!a.is(":visible")&&0===a.closest(".panel-dialog").length)return!0;a.on("sowstatechange",function(i,t,n){a.find("[data-state-handler]").each(function(){var i=e(this),r=e.extend({},i.data("state-handler"),s?i.data("state-handler-initial"):{});if(0===Object.keys(r).length)return!0;var a,o,d,l,f,g,p={},c=window.sowForms.getRepeaterId(i);if(c!==!1){var u={};for(var w in r)u[w.replace("{$repeater}",c)]=r[w];r=u}for(var w in r)if(f=!1,a=w.match(/^([a-zA-Z0-9_-]+)(\[([a-zA-Z0-9_\-,]+)\])?(\[\])?$/),null!==a){if(o={group:"default",name:"",multi:!1},void 0!==a[2]?(o.group=a[1],o.name=a[3]):o.name=a[0],o.multi=void 0!==a[4],"_else"===o.group)o.group=o.name,o.name="",f=o.group===t&&"undefined"==typeof p[o.group];else{g=o.name.split(",").map(function(e){return e.trim()});for(var m=0;m<g.length&&!(f=o.group===t&&g[m]===n);m++);}if(f){d=r[w],o.multi||(d=[d]);for(var m=0;m<d.length;m++)l="undefined"!=typeof d[m][1]&&Boolean(d[m][1])?i.find(d[m][1]):i,l[d[m][0]].apply(l,"undefined"!=typeof d[m][2]?d[m][2]:[]);p[o.group]=!0}}})}),a.sowSetupPreview(),n=a;var d=a.find(".siteorigin-widget-teaser");d.find(".dashicons-dismiss").click(function(){var i=e(this);e.get(i.data("dismiss-url")),console.log(i.data("dismiss-url")),d.slideUp("normal",function(){d.remove()})})}else n=a.closest(".siteorigin-widget-form-main");r=n.find("> .siteorigin-widgets-form-id").val();var l=a.find("> .siteorigin-widget-field");l.find("> .siteorigin-widget-section").sowSetupForm(),l.filter(".siteorigin-widget-field-type-widget:not(:has(> .siteorigin-widget-section))").sowSetupForm(),l.find(".siteorigin-widget-input").each(function(i,t){null===e(t).data("original-name")&&e(t).data("original-name",e(t).attr("name"))}),l.find("> .siteorigin-widget-field-repeater").sowSetupRepeater(),a.find(".siteorigin-widget-field-repeater-item").sowSetupRepeaterItems(),l.find("> .siteorigin-widget-input-color").each(function(){var i=e(this),t={change:function(i,t){setTimeout(function(){e(i.target).trigger("change")},100)}};i.data("defaultColor")&&(t.defaultColor=i.data("defaultColor")),i.wpColorPicker(t)}),l.filter(".siteorigin-widget-field-type-widget, .siteorigin-widget-field-type-section").find("> label").click(function(){e(this);e(this).toggleClass("siteorigin-widget-section-visible"),e(this).siblings(".siteorigin-widget-section").slideToggle(function(){e(window).resize(),e(this).find("> .siteorigin-widget-field-container-state").val(e(this).is(":visible")?"open":"closed")})}),l.filter(".siteorigin-widget-field-type-slider").each(function(){var i=e(this),t=i.find('input[type="number"]'),n=i.find(".siteorigin-widget-value-slider");n.slider({max:parseInt(t.attr("max")),min:parseInt(t.attr("min")),value:parseInt(t.val()),slide:function(e,n){t.val(parseInt(n.value)),t.trigger("change"),i.find(".siteorigin-widget-slider-value").html(n.value)}})}),l.filter(".siteorigin-widget-field-type-link").each(function(){var i=e(this),t=null,n=function(){null!==t&&t.abort();var n=i.find(".content-text-search"),r=n.val(),a=n.data("postTypes"),s=i.find("ul.posts").empty().addClass("loading");e.get(soWidgets.ajaxurl,{action:"so_widgets_search_posts",query:r,postTypes:a},function(i){for(var t=0;t<i.length;t++)""===i[t].post_title&&(i[t].post_title="&nbsp;"),s.append(e("<li>").addClass("post").html(i[t].post_title+"<span>("+i[t].post_type+")</span>").data(i[t]));s.removeClass("loading")})};i.find(".select-content-button, .button-close").click(function(t){t.preventDefault(),e(this).blur();var r=i.find(".existing-content-selector");r.toggle(),r.is(":visible")&&0===r.find("ul.posts li").length&&n()}),i.on("click",".posts li",function(t){t.preventDefault();var n=e(this);i.find("input.siteorigin-widget-input").val("post: "+n.data("ID")),i.find(".existing-content-selector").toggle()});var r=null;i.find(".content-text-search").keyup(function(){null!==r&&clearTimeout(r),r=setTimeout(function(){n()},500)})}),"undefined"!=typeof jQuery.fn.soPanelsSetupBuilderWidget&&l.filter(".siteorigin-widget-field-type-builder").each(function(){var i=e(this);i.find("> .siteorigin-page-builder-field").soPanelsSetupBuilderWidget()});var f=function(){var i=e(this),t=i.closest("[data-state-emitter]").data("state-emitter");if("undefined"!=typeof t){var r=function(t,n){if("undefined"==typeof sowEmitters[t.callback]||"_"===t.callback.substr(0,1))return n;var r=window.sowForms.getRepeaterId(i);r!==!1&&(t.args=t.args.map(function(e){return e.replace("{$repeater}",r)}));var a=i.is('[type="checkbox"]')?i.is(":checked"):i.val();return e.extend(n,sowEmitters[t.callback](a,t.args))},a={"default":""};"undefined"==typeof t.length&&(t=[t]);for(var s=0;s<t.length;s++)a=r(t[s],a);var o=n.data("states");"undefined"==typeof o&&(o={"default":""});for(var d in a)"undefined"!=typeof o[d]&&a[d]===o[d]||(o[d]=a[d],n.trigger("sowstatechange",[d,a[d]]));n.data("states",o)}};l.filter("[data-state-emitter]").each(function(){e(this).find(".siteorigin-widget-input").on("keyup change",f),e(this).find(".siteorigin-widget-input").each(function(){var i=e(this);i.is(":radio")?i.is(":checked")&&f.call(i[0]):f.call(i[0])})}),a.trigger("sowsetupform",l).data("sow-form-setup",!0),l.trigger("sowsetupformfield"),a.find(".siteorigin-widget-field-repeater-item").trigger("updateFieldPositions"),s=!1})},e.fn.sowSetupPreview=function(){var i=e(this),t=i.siblings(".siteorigin-widget-preview");t.find("> a").click(function(t){t.preventDefault();var n={};i.find("*[name]").each(function(){var i=e(this),t=/[a-zA-Z0-9\-]+\[[a-zA-Z0-9]+\]\[(.*)\]/.exec(i.attr("name"));if(void 0===t)return!0;t=t[1];var r=t.split("][");r=r.map(function(e){return!isNaN(parseFloat(e))&&isFinite(e)?parseInt(e):e});for(var a=n,s=0;s<r.length;s++)if(s===r.length-1)if("checkbox"===i.attr("type"))i.is(":checked")?a[r[s]]=""===i.val()||i.val():a[r[s]]=!1;else if("radio"===i.attr("type"))i.is(":checked")&&(a[r[s]]=""===i.val()||i.val());else if("TEXTAREA"===i.prop("tagName")&&i.hasClass("wp-editor-area")){var o=null;"undefined"!=typeof tinyMCE&&(o=tinyMCE.get(i.attr("id"))),null===o||"function"!=typeof o.getContent||o.isHidden()?a[r[s]]=i.val():a[r[s]]=o.getContent()}else a[r[s]]=i.val();else"undefined"==typeof a[r[s]]&&(a[r[s]]={}),a=a[r[s]]});var r=e(e("#so-widgets-bundle-tpl-preview-dialog").html().trim()).appendTo("body");r.find('input[name="data"]').val(JSON.stringify(n)),r.find('input[name="class"]').val(i.data("class")),r.find("iframe").on("load",function(){e(this).css("visibility","visible")}),r.find("form").submit(),r.find(".close").click(function(){r.remove()})})},e.fn.sowSetupRepeater=function(){return e(this).each(function(i,t){var n=e(t),r=n.find(".siteorigin-widget-field-repeater-items"),a=n.data("repeater-name");r.bind("updateFieldPositions",function(){var i=e(this),t=i.find("> .siteorigin-widget-field-repeater-item");t.each(function(i,t){e(t).find(".siteorigin-widget-input").each(function(t,n){var r=e(n).data("repeater-positions");"undefined"==typeof r&&(r={}),r[a]=i,e(n).data("repeater-positions",r)})}),i.find(".siteorigin-widget-input").each(function(i,t){var n=e(t).data("repeater-positions"),r=e(t);if("undefined"!=typeof n){var a=r.attr("data-original-name");if(a||(r.attr("data-original-name",r.attr("name")),a=r.attr("name")),!a)return;if(n)for(var s in n)a=a.replace("#"+s+"#",n[s]);r.attr("name",a)}}),i.data("initialSetup")||(i.find(".siteorigin-widget-input").each(function(i,t){var n=e(t);n.prop("checked",n.prop("defaultChecked"))}),i.data("initialSetup",!0));var r=n.data("scroll-count")?parseInt(n.data("scroll-count")):0;if(r>0&&t.length>r){var s=t.first().outerHeight();i.css("max-height",s*r).css("overflow","auto")}else i.css("max-height","").css("overflow","")}),r.sortable({handle:".siteorigin-widget-field-repeater-item-top",items:"> .siteorigin-widget-field-repeater-item",update:function(){r.trigger("updateFieldPositions")}}),r.trigger("updateFieldPositions"),n.find("> .siteorigin-widget-field-repeater-add").disableSelection().click(function(i){i.preventDefault(),n.closest(".siteorigin-widget-field-repeater").sowAddRepeaterItem().find("> .siteorigin-widget-field-repeater-items").slideDown("fast",function(){e(window).resize()})}),n.find("> .siteorigin-widget-field-repeater-top > .siteorigin-widget-field-repeater-expand").click(function(i){i.preventDefault(),n.closest(".siteorigin-widget-field-repeater").find("> .siteorigin-widget-field-repeateritems-").slideToggle("fast",function(){e(window).resize()})})})},e.fn.sowAddRepeaterItem=function(){return e(this).each(function(i,t){var n=e(t),r=n.find("> .siteorigin-widget-field-repeater-items").children().length+1,a=e("<div>"+n.find("> .siteorigin-widget-field-repeater-item-html").html()+"</div>");a.find("[data-name]").each(function(){var i=e(this);0===i.closest(".siteorigin-widget-field-repeater-item-html").length&&i.attr("name",e(this).data("name"))});var s=a.html().replace(/_id_/g,r),o="undefined"!=typeof n.attr("readonly"),d=e('<div class="siteorigin-widget-field-repeater-item ui-draggable" />').append(e('<div class="siteorigin-widget-field-repeater-item-top" />').append(e('<div class="siteorigin-widget-field-expand" />')).append(o?"":e('<div class="siteorigin-widget-field-copy" />')).append(o?"":e('<div class="siteorigin-widget-field-remove" />')).append(e("<h4 />").html(n.data("item-name")))).append(e('<div class="siteorigin-widget-field-repeater-item-form" />').html(s));n.find("> .siteorigin-widget-field-repeater-items").append(d).sortable("refresh").trigger("updateFieldPositions"),d.sowSetupRepeaterItems(),d.hide().slideDown("fast",function(){e(window).resize()})})},e.fn.sowRemoveRepeaterItem=function(){return e(this).each(function(i,t){var n=e(this).closest(".siteorigin-widget-field-repeater-items");e(this).remove(),n.sortable("refresh").trigger("updateFieldPositions")})},e.fn.sowSetupRepeaterItems=function(){return e(this).each(function(i,t){var n=e(t);if("undefined"==typeof n.data("sowrepeater-actions-setup")){var r=n.closest(".siteorigin-widget-field-repeater"),a=n.find("> .siteorigin-widget-field-repeater-item-top"),s=r.data("item-label");if(s&&s.selector){var o=function(){var e=s.hasOwnProperty("valueMethod")&&s.valueMethod?s.valueMethod:"val",i=n.find(s.selector)[e]();i&&(i.length>80&&(i=i.substr(0,79)+"..."),a.find("h4").text(i))};o();var d=s.hasOwnProperty("updateEvent")&&s.updateEvent?s.updateEvent:"change";n.bind(d,o)}a.click(function(i){"siteorigin-widget-field-remove"!==i.target.className&&"siteorigin-widget-field-copy"!==i.target.className&&(i.preventDefault(),e(this).closest(".siteorigin-widget-field-repeater-item").find(".siteorigin-widget-field-repeater-item-form").eq(0).slideToggle("fast",function(){e(window).resize(),e(this).is(":visible")?e(this).trigger("slideToggleOpenComplete"):e(this).trigger("slideToggleCloseComplete")}))}),a.find(".siteorigin-widget-field-remove").click(function(i){if(i.preventDefault(),confirm(soWidgets.sure)){var t=e(this).closest(".siteorigin-widget-field-repeater-items");e(this).closest(".siteorigin-widget-field-repeater-item").slideUp("fast",function(){e(this).remove(),t.sortable("refresh").trigger("updateFieldPositions"),e(window).resize()})}}),a.find(".siteorigin-widget-field-copy").click(function(i){i.preventDefault();var t=e(this).closest(".siteorigin-widget-form-main"),r=e(this).closest(".siteorigin-widget-field-repeater-item"),a=r.clone(),s=r.closest(".siteorigin-widget-field-repeater-items"),o=s.children().length,d={};a.find("*[name]").each(function(){var i=e(this),s=i.attr("id"),l=i.attr("name");if(i.is("textarea")&&i.parent().is(".wp-editor-container")&&"undefined"!=typeof tinymce){i.parent().empty().append(i),i.css("display","");var f=tinymce.get(s);f&&i.val(f.getContent())}else if(i.is(".wp-color-picker")){var g=i.closest(".wp-picker-container"),p=i.closest(".siteorigin-widget-field");g.remove(),p.append(i.remove())}else{var c=r.find('[name="'+l+'"]');c.length&&null!=c.val()&&i.val(c.val())}if(s){var u,w,m;if(i.is('[type="radio"]')){w=s.replace(/-\d+-\d+$/,"");var h=s.replace(/-\d+$/,"");if(!d[w]){var v={};d[w]=t.find(".siteorigin-widget-input[id^="+w+"]").not("[id*=_id_]").filter(function(i,t){var n=e(t).attr("name");return!v[n]&&(v[n]=!0,!0)}).length+1}var y=w+"-"+d[w];m=y+s.match(/-\d+$/)[0],a.find("label[for="+h+"]").attr("for",y)}else u=new RegExp("-\\d+$"),w=s.replace(u,""),d[w]||(d[w]=t.find(".siteorigin-widget-input[id^="+w+"]").not("[id*=_id_]").length+1),m=w+"-"+d[w]++;i.attr("id",m),a.find("label[for="+s+"]").attr("for",m),a.find("[id*="+s+"]").each(function(){var i=e(this).attr("id"),t=i.replace(s,m);e(this).attr("id",t)}),"undefined"!=typeof tinymce&&tinymce.get(m)&&tinymce.get(m).remove()}var b=r.parents(".siteorigin-widget-field-repeater").length,_=e("body");(_.hasClass("wp-customizer")||_.hasClass("widgets-php"))&&0==n.closest(".panel-dialog").length&&(b+=1);var k=l.replace(new RegExp("((?:.*?\\[\\d+\\]){"+(b-1).toString()+"})?(.*?\\[)\\d+(\\])"),"$1$2"+o.toString()+"$3");i.attr("name",k),i.data("original-name",k)}),s.append(a).sortable("refresh").trigger("updateFieldPositions"),a.sowSetupRepeaterItems(),a.hide().slideDown("fast",function(){e(window).resize()})}),n.find("> .siteorigin-widget-field-repeater-item-form").sowSetupForm(),n.data("sowrepeater-actions-setup",!0)}})};var i={getRepeaterId:function(e){"undefined"==typeof this.id&&(this.id=1);var i=e.closest(".siteorigin-widget-field-repeater-item");if(i.length){var t=i.data("item-id");return void 0===t&&(t=this.id++),i.data("item-id",t),t}return!1},getWidgetFieldVariable:function(e,i,t){var n=window.sow_field_javascript_variables[e];i=i.replace(/\[#.*?#\]/g,"");for(var r=/[a-zA-Z0-9\-]+(?:\[c?[0-9]+\])?\[(.*)\]/.exec(i)[1],a=r.split("]["),s=a.length?n:null;a.length;)s=s[a.shift()];return s[t]},fetchWidgetVariable:function(i,t,n){window.sowVars=window.sowVars||{},"undefined"==typeof window.sowVars[t]?e.post(soWidgets.ajaxurl,{action:"sow_get_javascript_variables",widget:t,key:i},function(e){window.sowVars[t]=e,n(window.sowVars[t][i])}):n(window.sowVars[t][i])}};window.sowForms=i,e(".widgets-holder-wrap").on("click",".widget:has(.siteorigin-widget-form-main) .widget-top",function(){var i=e(this).closest(".widget").find(".siteorigin-widget-form-main");setTimeout(function(){i.sowSetupForm()},200)}),e("body").hasClass("wp-customizer")&&e(document).on("widget-added",function(e,i){i.find(".siteorigin-widget-form").sowSetupForm()}),e(document).on("dialogopen",function(i){e(i.target).find(".siteorigin-widget-form-main").sowSetupForm()}),e(function(){e(document).trigger("sowadminloaded")})}(jQuery);var sowEmitters={_match:function(e,i){"undefined"==typeof i&&(i=".*");var t=new RegExp("^([a-zA-Z0-9_-]+)(\\[([a-zA-Z0-9_-]+)\\])? *: *("+i+") *$"),n=t.exec(e);if(null===n)return!1;var r="",a="default";return void 0!==n[3]?(a=n[1],r=n[3]):r=n[1],{match:n[4].trim(),group:a,state:r}},_checker:function(e,i,t,n){var r={};"undefined"==typeof i.length&&(i=[i]);for(var a,s=0;s<i.length;s++)a=sowEmitters._match(i[s],t),a!==!1&&("_true"===a.match||n(e,i,a.match))&&(r[a.group]=a.state);return r},select:function(e,i){"undefined"==typeof i.length&&(i=[i]);for(var t={},n=0;n<i.length;n++)""===i[n]&&(i[n]="default"),t[i[n]]=e;return t},conditional:function(val,args){return sowEmitters._checker(val,args,"[^;{}]*",function(val,args,match){return eval(match)})},"in":function(e,i){return sowEmitters._checker(e,i,"[^;{}]*",function(e,i,t){return t.split(",").map(function(e){return e.trim()}).indexOf(e)!==-1})}};
base/js/posts-selector.js CHANGED
@@ -64,7 +64,7 @@ var soWidgetPostSelector = ( function ($, _) {
64
  sticky: null,
65
 
66
  defaults: {
67
- 'post_type' : 'post',
68
  'orderby' : 'post_date',
69
  'order' : 'DESC',
70
  'posts_per_page' : '',
@@ -79,7 +79,7 @@ var soWidgetPostSelector = ( function ($, _) {
79
  // Get the post query model as a WordPress get_posts query
80
  getQuery: function(){
81
  var query = [];
82
- if( typeof this.get('post_type') !== 'undefined' ) query.push('post_type=' + this.get('post_type'));
83
  if( typeof this.get('post__in') !== 'undefined' && !_.isEmpty( this.get('post__in') ) ) query.push( 'post__in=' + this.get('post__in').join(',') );
84
  if( typeof this.get('tax_query') !== 'undefined' && !_.isEmpty( this.get('tax_query') ) ) query.push( 'tax_query=' + this.get('tax_query').join(',') );
85
  if( typeof this.get('date_query') !== 'undefined' && !_.isEmpty( this.get('date_query') ) ) query.push( 'date_query=' + JSON.stringify(this.get('date_query')) );
@@ -120,7 +120,7 @@ var soWidgetPostSelector = ( function ($, _) {
120
  // This is a simple array that we use to store parts of the query.
121
  var theQuery = {};
122
 
123
- if( params.hasOwnProperty('post_type') ) theQuery.post_type = params.post_type;
124
  if( params.hasOwnProperty('post__in') ) theQuery.post__in = params.post__in.split(',');
125
  if( params.hasOwnProperty('tax_query') ) theQuery.tax_query = params.tax_query.split(',');
126
  if( params.hasOwnProperty('date_query') ) theQuery.date_query = JSON.parse(params.date_query);
@@ -322,7 +322,7 @@ var soWidgetPostSelector = ( function ($, _) {
322
 
323
  // The post type field
324
  this.form.append('<div class="query-builder-form-field">' + sowPostsSelectorTpl.fields.post_type + '</div>');
325
- if( typeof this.model.get('post_type') !== 'undefined' ) this.form.find('select[name="post_type"]').val( this.model.get('post_type'));
326
 
327
  // The post__in field
328
  this.form.append('<div class="query-builder-form-field">' + sowPostsSelectorTpl.fields.post__in + '</div>');
@@ -447,7 +447,7 @@ var soWidgetPostSelector = ( function ($, _) {
447
  updateModel: function(){
448
  this.model.set( 'post_type', this.$el.find('*[name="post_type"]').val() );
449
 
450
- // Add the posts in part to the mode
451
  if(this.$el.find('*[name="post__in"]').val().trim() !== '') {
452
  this.model.set( 'post__in', this.$el.find('*[name="post__in"]').val().split(',').map(function(a){ return Number( a.trim() ); }) );
453
  }
@@ -551,7 +551,7 @@ var soWidgetPostSelector = ( function ($, _) {
551
 
552
  render: function(){
553
  var posts = this.model.get('post__in');
554
- var postType = this.model.get('post_type');
555
 
556
  this.$el.find('.query-builder-content').empty().html(sowPostsSelectorTpl.selector);
557
 
@@ -692,7 +692,7 @@ var soWidgetPostSelector = ( function ($, _) {
692
  this.model.set('post__in', ids);
693
 
694
  if(!_.isEmpty(ids)) {
695
- this.model.set('post_type', '_all');
696
  this.model.set('orderby', 'post__in');
697
  }
698
 
@@ -701,18 +701,18 @@ var soWidgetPostSelector = ( function ($, _) {
701
  }
702
  } );
703
 
704
- // The main QueryBuilder instance.
705
- var builder = new QueryBuilder( { model: new Query( { query: '' } ) } );
706
-
707
  jQuery( function($){
708
  $('body').on('click', '.sow-select-posts', function(e){
709
  e.preventDefault();
710
  var $postSelectorButton = $(this);
711
- builder.model.setSyncField( $postSelectorButton.siblings( '.siteorigin-widget-input' ) );
712
- builder.model.sync('update');
713
- builder.views.postSummary.posts.on("reset", function (postsCollection) {
714
- $postSelectorButton.find(".sow-current-count").text(postsCollection.foundPosts);
715
- });
 
 
 
716
  builder.open();
717
  });
718
  } );
64
  sticky: null,
65
 
66
  defaults: {
67
+ 'post_type' : [ 'post' ],
68
  'orderby' : 'post_date',
69
  'order' : 'DESC',
70
  'posts_per_page' : '',
79
  // Get the post query model as a WordPress get_posts query
80
  getQuery: function(){
81
  var query = [];
82
+ if( typeof this.get('post_type') !== 'undefined' ) query.push('post_type=' + this.get('post_type').join(','));
83
  if( typeof this.get('post__in') !== 'undefined' && !_.isEmpty( this.get('post__in') ) ) query.push( 'post__in=' + this.get('post__in').join(',') );
84
  if( typeof this.get('tax_query') !== 'undefined' && !_.isEmpty( this.get('tax_query') ) ) query.push( 'tax_query=' + this.get('tax_query').join(',') );
85
  if( typeof this.get('date_query') !== 'undefined' && !_.isEmpty( this.get('date_query') ) ) query.push( 'date_query=' + JSON.stringify(this.get('date_query')) );
120
  // This is a simple array that we use to store parts of the query.
121
  var theQuery = {};
122
 
123
+ if( params.hasOwnProperty('post_type') ) theQuery.post_type = params.post_type.split(',');
124
  if( params.hasOwnProperty('post__in') ) theQuery.post__in = params.post__in.split(',');
125
  if( params.hasOwnProperty('tax_query') ) theQuery.tax_query = params.tax_query.split(',');
126
  if( params.hasOwnProperty('date_query') ) theQuery.date_query = JSON.parse(params.date_query);
322
 
323
  // The post type field
324
  this.form.append('<div class="query-builder-form-field">' + sowPostsSelectorTpl.fields.post_type + '</div>');
325
+ if( typeof this.model.get('post_type') !== 'undefined' ) this.form.find('select[name="post_type"]').val( this.model.get('post_type') );
326
 
327
  // The post__in field
328
  this.form.append('<div class="query-builder-form-field">' + sowPostsSelectorTpl.fields.post__in + '</div>');
447
  updateModel: function(){
448
  this.model.set( 'post_type', this.$el.find('*[name="post_type"]').val() );
449
 
450
+ // Add the posts in part to the model
451
  if(this.$el.find('*[name="post__in"]').val().trim() !== '') {
452
  this.model.set( 'post__in', this.$el.find('*[name="post__in"]').val().split(',').map(function(a){ return Number( a.trim() ); }) );
453
  }
551
 
552
  render: function(){
553
  var posts = this.model.get('post__in');
554
+ var postType = this.model.get('post_type').join(',');
555
 
556
  this.$el.find('.query-builder-content').empty().html(sowPostsSelectorTpl.selector);
557
 
692
  this.model.set('post__in', ids);
693
 
694
  if(!_.isEmpty(ids)) {
695
+ this.model.set('post_type', ['_all']);
696
  this.model.set('orderby', 'post__in');
697
  }
698
 
701
  }
702
  } );
703
 
 
 
 
704
  jQuery( function($){
705
  $('body').on('click', '.sow-select-posts', function(e){
706
  e.preventDefault();
707
  var $postSelectorButton = $(this);
708
+
709
+ // The main QueryBuilder instance.
710
+ var builder = new QueryBuilder( { model: new Query( { query: '' } ) } );
711
+ builder.model.setSyncField( $postSelectorButton.siblings('.siteorigin-widget-input') );
712
+ builder.model.sync( 'update' );
713
+ builder.views.postSummary.posts.on( 'reset', function( postsCollection ) {
714
+ $postSelectorButton.find( '.sow-current-count' ).text( postsCollection.foundPosts );
715
+ });
716
  builder.open();
717
  });
718
  } );
base/js/posts-selector.min.js CHANGED
@@ -1 +1 @@
1
- var soWidgetPostSelector=function(e,t){var s,i,o,n,r,l,d,a;s=self.Post=Backbone.Model.extend({title:null,thumbnail:null,id:null}),i=self.PostCollection=Backbone.Collection.extend({model:s,foundPosts:null,updateWithQuery:function(t){if(""!==t){var s=this;e.post(sowPostsSelectorTpl.ajaxurl,{action:"sow_get_posts",query:t,ignore_pagination:!0},function(e){s.foundPosts=e.found_posts,s.reset(e.posts)})}}}),l=self.Query=Backbone.Model.extend({query:null,syncField:null,post_type:null,terms:null,post_status:null,posts_per_page:null,post__in:null,tax_query:null,date_range:null,orderby:null,order:null,sticky:null,defaults:{post_type:"post",orderby:"post_date",order:"DESC",posts_per_page:"",post_status:"publish",sticky:""},initialize:function(e,t){this.set(this.parseQuery(e.query))},getQuery:function(){var e=[];return"undefined"!=typeof this.get("post_type")&&e.push("post_type="+this.get("post_type")),"undefined"==typeof this.get("post__in")||t.isEmpty(this.get("post__in"))||e.push("post__in="+this.get("post__in").join(",")),"undefined"==typeof this.get("tax_query")||t.isEmpty(this.get("tax_query"))||e.push("tax_query="+this.get("tax_query").join(",")),"undefined"==typeof this.get("date_query")||t.isEmpty(this.get("date_query"))||e.push("date_query="+JSON.stringify(this.get("date_query"))),"undefined"!=typeof this.get("orderby")&&e.push("orderby="+this.get("orderby")),"undefined"!=typeof this.get("order")&&e.push("order="+this.get("order")),"undefined"!=typeof this.get("posts_per_page")&&e.push("posts_per_page="+this.get("posts_per_page")),"undefined"!=typeof this.get("sticky")&&e.push("sticky="+this.get("sticky")),"undefined"!=typeof this.get("additional")&&e.push("additional="+this.get("additional")),e.join("&")},setQuery:function(e){return this.set(this.parseQuery(e)),this},parseQuery:function(e){for(var t,s=/([^&=]+)=?([^&]*)/g,i=/\+/g,o=function(e){return decodeURIComponent(e.replace(i," "))},n={};t=s.exec(e);){var r=o(t[1]),l=o(t[2]);"[]"===r.substring(r.length-2)?(r=r.substring(0,r.length-2),(n[r]||(n[r]=[])).push(l)):n[r]=l}var d={};return n.hasOwnProperty("post_type")&&(d.post_type=n.post_type),n.hasOwnProperty("post__in")&&(d.post__in=n.post__in.split(",")),n.hasOwnProperty("tax_query")&&(d.tax_query=n.tax_query.split(",")),n.hasOwnProperty("date_query")&&(d.date_query=JSON.parse(n.date_query)),n.hasOwnProperty("orderby")&&(d.orderby=n.orderby),n.hasOwnProperty("order")&&(d.order=n.order),n.hasOwnProperty("posts_per_page")&&(d.posts_per_page=n.posts_per_page),n.hasOwnProperty("sticky")&&(d.sticky=n.sticky),n.hasOwnProperty("additional")&&(d.additional=n.additional),d.query=e,d},sync:function(e,t){if("create"===e){var s=this.syncField.val(),i=this.getQuery();s!==i&&(this.syncField.val(i),this.syncField.trigger("change"))}else this.setQuery(this.syncField.val())},setSyncField:function(e){this.syncField=e}}),a=self.QueryBuilder=Backbone.View.extend({attached:!1,rendered:!1,views:{},activeView:null,events:{"click .media-modal-backdrop, .media-modal-close":"escapeHandler","click .media-toolbar-primary .button":"buttonHandler"},initialize:function(){this.listenTo(this.model,"change",this.queryModelChange);var e=new i;this.views.postSummary=new o({posts:e,el:this.el}),this.views.postSummary.builder=this,this.views.postSummary.posts.updateWithQuery(this.model.getQuery()),this.addSubView("form",new d({el:this.el,model:this.model})),this.addSubView("postsView",new n({el:this.el,posts:e})),this.addSubView("postsSelect",new r({el:this.el,model:this.model})),this.views.form.bind("buttonHandler",this.close,this)},changeModel:function(e){this.model=e,this.render()},render:function(){return this.$el.html(sowPostsSelectorTpl.modal),this.$el.find(".media-toolbar-primary .button").html(this.views[this.activeView].buttonText),this.$el.find(".media-frame-title h1").html(this.views[this.activeView].modalTitle),this.rendered=!0,"postsSelect"!==this.activeView&&this.views.postSummary.render(),this.views[this.activeView].render(),this},close:function(){return this.$el.hide(),this.trigger("close"),this.model.save(),this},open:function(){this.show(),this.setActiveView("form"),this.trigger("open"),this.model.fetch()},save:function(){this.close(),this.model.save(),this.trigger("save")},attach:function(){return this.rendered||this.render(),this.attached||(this.$el.appendTo("body"),this.attached=!0),this},show:function(){this.attach(),this.$el.is(":visible")||this.$el.show()},escapeHandler:function(e){e.preventDefault(),this.close()},buttonHandler:function(e){e.preventDefault(),this.views[this.activeView].buttonHandler().trigger("buttonHandler")},addSubView:function(e,t){this.views[e]=t,t.builder=this,null===this.activeView&&(this.activeView=e)},setActiveView:function(e){this.activeView=e,this.render()},queryModelChange:function(){this.views.postSummary.posts.updateWithQuery(this.model.getQuery())}}),d=self.QueryForm=Backbone.View.extend({buttonText:"Save Query",modalTitle:"Build Posts Query",form:null,initialize:function(e){},render:function(){var t=this;if(this.form=e('<div class="query-builder-form>"></div>'),this.form.append('<div class="query-builder-form-field">'+sowPostsSelectorTpl.fields.post_type+"</div>"),"undefined"!=typeof this.model.get("post_type")&&this.form.find('select[name="post_type"]').val(this.model.get("post_type")),this.form.append('<div class="query-builder-form-field">'+sowPostsSelectorTpl.fields.post__in+"</div>"),"undefined"!=typeof this.model.get("post__in")&&this.form.find('input[name="post__in"]').val(this.model.get("post__in").join(",")),this.form.append('<div class="query-builder-form-field ui-front">'+sowPostsSelectorTpl.fields.tax_query+"</div>"),"undefined"!=typeof this.model.get("tax_query")&&this.form.find('input[name="tax_query"]').val(this.model.get("tax_query")),this.form.append('<div class="query-builder-form-field">'+sowPostsSelectorTpl.fields.date_query+"</div>"),"undefined"!=typeof this.model.get("date_query")){var s=this.model.get("date_query");s.hasOwnProperty("after")&&this.form.find('input[name="after"]').val(s.after),s.hasOwnProperty("before")&&this.form.find('input[name="before"]').val(s.before)}this.form.append(e('<div class="query-builder-form-field">'+sowPostsSelectorTpl.fields.orderby+"</div>")),"undefined"!=typeof this.model.get("orderby")&&this.form.find('select[name="orderby"]').val(this.model.get("orderby")),"undefined"!=typeof this.model.get("order")&&this.form.find('input[name="order"]').val(this.model.get("order")),this.form.append('<div class="query-builder-form-field">'+sowPostsSelectorTpl.fields.posts_per_page+"</div>"),"undefined"!=typeof this.model.get("posts_per_page")&&this.form.find('input[name="posts_per_page"]').val(this.model.get("posts_per_page")),this.form.append('<div class="query-builder-form-field">'+sowPostsSelectorTpl.fields.sticky+"</div>"),"undefined"!=typeof this.model.get("sticky")&&this.form.find('select[name="sticky"]').val(this.model.get("sticky")),this.form.append('<div class="query-builder-form-field">'+sowPostsSelectorTpl.fields.additional+"</div>"),"undefined"!=typeof this.model.get("additional")&&this.form.find('input[name="additional"]').val(decodeURIComponent(this.model.get("additional")));var i=this.form.find('input[name="order"]'),o=i.closest(".query-builder-form-field").find(".sow-order-button"),n=function(){"DESC"===i.val()?(o.removeClass("sow-order-button-asc"),o.addClass("sow-order-button-desc")):(o.addClass("sow-order-button-asc"),o.removeClass("sow-order-button-desc"))};return n(),o.click(function(e){return e.preventDefault(),"DESC"===i.val()?i.val("ASC"):i.val("DESC"),n(),t.updateModel(),!1}),this.$el.find(".query-builder-content").empty().append(this.form),this.$el.find(".query-builder-form-field select, .query-builder-form-field input").change(function(){t.updateModel()}),this.$el.find(".query-builder-form-field .sow-select-posts").click(function(e){e.preventDefault(),t.builder.setActiveView("postsSelect")}),this.form.find('input[name="tax_query"]').autocomplete({source:function(t,s){e.getJSON(sowPostsSelectorTpl.ajaxurl,{term:t.term.split(/,\s*/).pop(),action:"sow_search_terms"},s)},search:function(){var e=this.value.split(/,\s*/).pop();if(e.length<1)return!1},focus:function(){return!1},select:function(e,s){var i=this.value.split(/,\s*/);return i.pop(),i.push(s.item.value),i.push(""),this.value=i.join(", "),t.updateModel(),!1}}),this},updateModel:function(){if(this.model.set("post_type",this.$el.find('*[name="post_type"]').val()),""!==this.$el.find('*[name="post__in"]').val().trim()?this.model.set("post__in",this.$el.find('*[name="post__in"]').val().split(",").map(function(e){return Number(e.trim())})):this.model.set("post__in",[]),""!==this.$el.find('*[name="tax_query"]').val().trim()){var e=this.$el.find('*[name="tax_query"]').val().split(",").map(function(e){return e.trim()});this.model.set("tax_query",t.compact(e))}else this.model.set("tax_query",[]);return this.model.set("date_query",{after:this.$el.find('*[name="after"]').val(),before:this.$el.find('*[name="before"]').val()}),this.model.set("orderby",this.$el.find('*[name="orderby"]').val()),this.model.set("order",this.$el.find('*[name="order"]').val()),this.model.set("posts_per_page",this.$el.find('*[name="posts_per_page"]').val()),this.model.set("sticky",this.$el.find('*[name="sticky"]').val()),this.model.set("additional",encodeURIComponent(this.$el.find('*[name="additional"]').val())),this.model.set("query",this.model.getQuery()),this},buttonHandler:function(){return this.updateModel(),this}}),o=self.PostCollectionSummaryView=Backbone.View.extend({template:t.template(sowPostsSelectorTpl.foundPosts),posts:null,initialize:function(e){this.posts=e.posts,this.posts.bind("reset",this.render,this)},render:function(){this.$el.find(".media-toolbar-secondary").html(this.template({foundPosts:this.posts.foundPosts}));var e=this;this.$el.find(".media-toolbar-secondary .preview-query-posts").click(function(t){t.preventDefault(),e.builder.setActiveView("postsView")})}}),n=self.PostCollectionView=Backbone.View.extend({buttonText:"Back",modalTitle:"Current Posts",template:t.template(sowPostsSelectorTpl.postSummary),posts:null,initialize:function(e){this.posts=e.posts},render:function(){var e=this.$el.find(".query-builder-content").empty().append('<div class="sow-current-posts"></div>').find(".sow-current-posts");e=this.$el.find(".query-builder-content");var t=this.template;return this.posts.each(function(s){e.append(t(s.attributes))}),this},buttonHandler:function(){return this.builder.setActiveView("form"),this}}),r=self.PostSelectView=Backbone.View.extend({buttonText:"Finish Selection",modalTitle:"Select Posts",sortable:null,postCache:{},postTemplate:t.template(sowPostsSelectorTpl.postSummary),initialize:function(){this.postCache={}},render:function(){var t=this.model.get("post__in"),s=this.model.get("post_type");this.$el.find(".query-builder-content").empty().html(sowPostsSelectorTpl.selector),this.sortable=this.$el.find(".query-builder-content #sow-post-selector .sow-posts-sortable").sortable({placeholder:"ui-state-highlight",forcePlaceholderSize:!0,items:"> .sow-post-selector-summary"}),this.addPosts(t);var i=this,o=this.$el.find(".query-builder-content #sow-post-selector .sow-search-field");return o.autocomplete({source:function(t,i){t.type=s,t.action="sow_search_posts",e.get(sowPostsSelectorTpl.ajaxurl,t,i)},minLength:0,select:function(t,s){return t.preventDefault(),e(this).val(""),i.addPosts([s.item.value]),!1}}),o.focusin(function(){o.autocomplete("search",o.val())}),this.$el.find(".query-builder-content").on("click",".sow-remove",function(t){t.preventDefault();var s=e(this);s.closest(".sow-post-selector-summary").fadeOut("fast",function(){e(this).remove(),i.sortable.sortable("refresh")})}),this},addPosts:function(s){if("undefined"!=typeof s&&!t.isEmpty(s)){for(var i=[],o=0;o<s.length;o++)"undefined"==typeof this.postCache[s[o]]&&i.push(s[o]);var n=this;t.isEmpty(i)||e.post(sowPostsSelectorTpl.ajaxurl,{action:"sow_get_posts",query:"post_type=_all&posts_per_page=-1&post__in="+i.join(",")},function(e){"undefined"!=typeof e.posts&&t.each(e.posts,function(e,t){n.postCache[e.id]={id:e.id,title:e.title,thumbnail:e.thumbnail,editUrl:e.editUrl}}),n.refreshLoading()});for(var r,o=0;o<s.length;o++)r="undefined"==typeof this.postCache[s[o]]?e(this.postTemplate({id:s[o],title:"",thumbnail:"",editUrl:"#"})).addClass("sow-post-loading"):e(this.postTemplate(this.postCache[s[o]])),r.appendTo(this.sortable);return this.sortable.sortable("refresh"),this}},refreshLoading:function(){var t=this;this.sortable.find(".sow-post-selector-summary.sow-post-loading").each(function(){var s=e(this),i=s.data("id");if("undefined"!=typeof t.postCache[i]){s.removeClass("sow-post-loading");var o=e(t.postTemplate(t.postCache[i]));s.html(o.html())}})},buttonHandler:function(){var s=[];return this.sortable.find(".sow-post-selector-summary").each(function(){s.push(Number(e(this).data("id")))}),this.model.set("post__in",s),t.isEmpty(s)||(this.model.set("post_type","_all"),this.model.set("orderby","post__in")),this.builder.setActiveView("form"),this}});var u=new a({model:new l({query:""})});jQuery(function(e){e("body").on("click",".sow-select-posts",function(t){t.preventDefault();var s=e(this);u.model.setSyncField(s.siblings(".siteorigin-widget-input")),u.model.sync("update"),u.views.postSummary.posts.on("reset",function(e){s.find(".sow-current-count").text(e.foundPosts)}),u.open()})})}(jQuery,_);
1
+ var soWidgetPostSelector=function(e,t){var s,i,o,n,r,l,d,a;s=self.Post=Backbone.Model.extend({title:null,thumbnail:null,id:null}),i=self.PostCollection=Backbone.Collection.extend({model:s,foundPosts:null,updateWithQuery:function(t){if(""!==t){var s=this;e.post(sowPostsSelectorTpl.ajaxurl,{action:"sow_get_posts",query:t,ignore_pagination:!0},function(e){s.foundPosts=e.found_posts,s.reset(e.posts)})}}}),l=self.Query=Backbone.Model.extend({query:null,syncField:null,post_type:null,terms:null,post_status:null,posts_per_page:null,post__in:null,tax_query:null,date_range:null,orderby:null,order:null,sticky:null,defaults:{post_type:["post"],orderby:"post_date",order:"DESC",posts_per_page:"",post_status:"publish",sticky:""},initialize:function(e,t){this.set(this.parseQuery(e.query))},getQuery:function(){var e=[];return"undefined"!=typeof this.get("post_type")&&e.push("post_type="+this.get("post_type").join(",")),"undefined"==typeof this.get("post__in")||t.isEmpty(this.get("post__in"))||e.push("post__in="+this.get("post__in").join(",")),"undefined"==typeof this.get("tax_query")||t.isEmpty(this.get("tax_query"))||e.push("tax_query="+this.get("tax_query").join(",")),"undefined"==typeof this.get("date_query")||t.isEmpty(this.get("date_query"))||e.push("date_query="+JSON.stringify(this.get("date_query"))),"undefined"!=typeof this.get("orderby")&&e.push("orderby="+this.get("orderby")),"undefined"!=typeof this.get("order")&&e.push("order="+this.get("order")),"undefined"!=typeof this.get("posts_per_page")&&e.push("posts_per_page="+this.get("posts_per_page")),"undefined"!=typeof this.get("sticky")&&e.push("sticky="+this.get("sticky")),"undefined"!=typeof this.get("additional")&&e.push("additional="+this.get("additional")),e.join("&")},setQuery:function(e){return this.set(this.parseQuery(e)),this},parseQuery:function(e){for(var t,s=/([^&=]+)=?([^&]*)/g,i=/\+/g,o=function(e){return decodeURIComponent(e.replace(i," "))},n={};t=s.exec(e);){var r=o(t[1]),l=o(t[2]);"[]"===r.substring(r.length-2)?(r=r.substring(0,r.length-2),(n[r]||(n[r]=[])).push(l)):n[r]=l}var d={};return n.hasOwnProperty("post_type")&&(d.post_type=n.post_type.split(",")),n.hasOwnProperty("post__in")&&(d.post__in=n.post__in.split(",")),n.hasOwnProperty("tax_query")&&(d.tax_query=n.tax_query.split(",")),n.hasOwnProperty("date_query")&&(d.date_query=JSON.parse(n.date_query)),n.hasOwnProperty("orderby")&&(d.orderby=n.orderby),n.hasOwnProperty("order")&&(d.order=n.order),n.hasOwnProperty("posts_per_page")&&(d.posts_per_page=n.posts_per_page),n.hasOwnProperty("sticky")&&(d.sticky=n.sticky),n.hasOwnProperty("additional")&&(d.additional=n.additional),d.query=e,d},sync:function(e,t){if("create"===e){var s=this.syncField.val(),i=this.getQuery();s!==i&&(this.syncField.val(i),this.syncField.trigger("change"))}else this.setQuery(this.syncField.val())},setSyncField:function(e){this.syncField=e}}),a=self.QueryBuilder=Backbone.View.extend({attached:!1,rendered:!1,views:{},activeView:null,events:{"click .media-modal-backdrop, .media-modal-close":"escapeHandler","click .media-toolbar-primary .button":"buttonHandler"},initialize:function(){this.listenTo(this.model,"change",this.queryModelChange);var e=new i;this.views.postSummary=new o({posts:e,el:this.el}),this.views.postSummary.builder=this,this.views.postSummary.posts.updateWithQuery(this.model.getQuery()),this.addSubView("form",new d({el:this.el,model:this.model})),this.addSubView("postsView",new n({el:this.el,posts:e})),this.addSubView("postsSelect",new r({el:this.el,model:this.model})),this.views.form.bind("buttonHandler",this.close,this)},changeModel:function(e){this.model=e,this.render()},render:function(){return this.$el.html(sowPostsSelectorTpl.modal),this.$el.find(".media-toolbar-primary .button").html(this.views[this.activeView].buttonText),this.$el.find(".media-frame-title h1").html(this.views[this.activeView].modalTitle),this.rendered=!0,"postsSelect"!==this.activeView&&this.views.postSummary.render(),this.views[this.activeView].render(),this},close:function(){return this.$el.hide(),this.trigger("close"),this.model.save(),this},open:function(){this.show(),this.setActiveView("form"),this.trigger("open"),this.model.fetch()},save:function(){this.close(),this.model.save(),this.trigger("save")},attach:function(){return this.rendered||this.render(),this.attached||(this.$el.appendTo("body"),this.attached=!0),this},show:function(){this.attach(),this.$el.is(":visible")||this.$el.show()},escapeHandler:function(e){e.preventDefault(),this.close()},buttonHandler:function(e){e.preventDefault(),this.views[this.activeView].buttonHandler().trigger("buttonHandler")},addSubView:function(e,t){this.views[e]=t,t.builder=this,null===this.activeView&&(this.activeView=e)},setActiveView:function(e){this.activeView=e,this.render()},queryModelChange:function(){this.views.postSummary.posts.updateWithQuery(this.model.getQuery())}}),d=self.QueryForm=Backbone.View.extend({buttonText:"Save Query",modalTitle:"Build Posts Query",form:null,initialize:function(e){},render:function(){var t=this;if(this.form=e('<div class="query-builder-form>"></div>'),this.form.append('<div class="query-builder-form-field">'+sowPostsSelectorTpl.fields.post_type+"</div>"),"undefined"!=typeof this.model.get("post_type")&&this.form.find('select[name="post_type"]').val(this.model.get("post_type")),this.form.append('<div class="query-builder-form-field">'+sowPostsSelectorTpl.fields.post__in+"</div>"),"undefined"!=typeof this.model.get("post__in")&&this.form.find('input[name="post__in"]').val(this.model.get("post__in").join(",")),this.form.append('<div class="query-builder-form-field ui-front">'+sowPostsSelectorTpl.fields.tax_query+"</div>"),"undefined"!=typeof this.model.get("tax_query")&&this.form.find('input[name="tax_query"]').val(this.model.get("tax_query")),this.form.append('<div class="query-builder-form-field">'+sowPostsSelectorTpl.fields.date_query+"</div>"),"undefined"!=typeof this.model.get("date_query")){var s=this.model.get("date_query");s.hasOwnProperty("after")&&this.form.find('input[name="after"]').val(s.after),s.hasOwnProperty("before")&&this.form.find('input[name="before"]').val(s.before)}this.form.append(e('<div class="query-builder-form-field">'+sowPostsSelectorTpl.fields.orderby+"</div>")),"undefined"!=typeof this.model.get("orderby")&&this.form.find('select[name="orderby"]').val(this.model.get("orderby")),"undefined"!=typeof this.model.get("order")&&this.form.find('input[name="order"]').val(this.model.get("order")),this.form.append('<div class="query-builder-form-field">'+sowPostsSelectorTpl.fields.posts_per_page+"</div>"),"undefined"!=typeof this.model.get("posts_per_page")&&this.form.find('input[name="posts_per_page"]').val(this.model.get("posts_per_page")),this.form.append('<div class="query-builder-form-field">'+sowPostsSelectorTpl.fields.sticky+"</div>"),"undefined"!=typeof this.model.get("sticky")&&this.form.find('select[name="sticky"]').val(this.model.get("sticky")),this.form.append('<div class="query-builder-form-field">'+sowPostsSelectorTpl.fields.additional+"</div>"),"undefined"!=typeof this.model.get("additional")&&this.form.find('input[name="additional"]').val(decodeURIComponent(this.model.get("additional")));var i=this.form.find('input[name="order"]'),o=i.closest(".query-builder-form-field").find(".sow-order-button"),n=function(){"DESC"===i.val()?(o.removeClass("sow-order-button-asc"),o.addClass("sow-order-button-desc")):(o.addClass("sow-order-button-asc"),o.removeClass("sow-order-button-desc"))};return n(),o.click(function(e){return e.preventDefault(),"DESC"===i.val()?i.val("ASC"):i.val("DESC"),n(),t.updateModel(),!1}),this.$el.find(".query-builder-content").empty().append(this.form),this.$el.find(".query-builder-form-field select, .query-builder-form-field input").change(function(){t.updateModel()}),this.$el.find(".query-builder-form-field .sow-select-posts").click(function(e){e.preventDefault(),t.builder.setActiveView("postsSelect")}),this.form.find('input[name="tax_query"]').autocomplete({source:function(t,s){e.getJSON(sowPostsSelectorTpl.ajaxurl,{term:t.term.split(/,\s*/).pop(),action:"sow_search_terms"},s)},search:function(){var e=this.value.split(/,\s*/).pop();if(e.length<1)return!1},focus:function(){return!1},select:function(e,s){var i=this.value.split(/,\s*/);return i.pop(),i.push(s.item.value),i.push(""),this.value=i.join(", "),t.updateModel(),!1}}),this},updateModel:function(){if(this.model.set("post_type",this.$el.find('*[name="post_type"]').val()),""!==this.$el.find('*[name="post__in"]').val().trim()?this.model.set("post__in",this.$el.find('*[name="post__in"]').val().split(",").map(function(e){return Number(e.trim())})):this.model.set("post__in",[]),""!==this.$el.find('*[name="tax_query"]').val().trim()){var e=this.$el.find('*[name="tax_query"]').val().split(",").map(function(e){return e.trim()});this.model.set("tax_query",t.compact(e))}else this.model.set("tax_query",[]);return this.model.set("date_query",{after:this.$el.find('*[name="after"]').val(),before:this.$el.find('*[name="before"]').val()}),this.model.set("orderby",this.$el.find('*[name="orderby"]').val()),this.model.set("order",this.$el.find('*[name="order"]').val()),this.model.set("posts_per_page",this.$el.find('*[name="posts_per_page"]').val()),this.model.set("sticky",this.$el.find('*[name="sticky"]').val()),this.model.set("additional",encodeURIComponent(this.$el.find('*[name="additional"]').val())),this.model.set("query",this.model.getQuery()),this},buttonHandler:function(){return this.updateModel(),this}}),o=self.PostCollectionSummaryView=Backbone.View.extend({template:t.template(sowPostsSelectorTpl.foundPosts),posts:null,initialize:function(e){this.posts=e.posts,this.posts.bind("reset",this.render,this)},render:function(){this.$el.find(".media-toolbar-secondary").html(this.template({foundPosts:this.posts.foundPosts}));var e=this;this.$el.find(".media-toolbar-secondary .preview-query-posts").click(function(t){t.preventDefault(),e.builder.setActiveView("postsView")})}}),n=self.PostCollectionView=Backbone.View.extend({buttonText:"Back",modalTitle:"Current Posts",template:t.template(sowPostsSelectorTpl.postSummary),posts:null,initialize:function(e){this.posts=e.posts},render:function(){var e=this.$el.find(".query-builder-content").empty().append('<div class="sow-current-posts"></div>').find(".sow-current-posts");e=this.$el.find(".query-builder-content");var t=this.template;return this.posts.each(function(s){e.append(t(s.attributes))}),this},buttonHandler:function(){return this.builder.setActiveView("form"),this}}),r=self.PostSelectView=Backbone.View.extend({buttonText:"Finish Selection",modalTitle:"Select Posts",sortable:null,postCache:{},postTemplate:t.template(sowPostsSelectorTpl.postSummary),initialize:function(){this.postCache={}},render:function(){var t=this.model.get("post__in"),s=this.model.get("post_type").join(",");this.$el.find(".query-builder-content").empty().html(sowPostsSelectorTpl.selector),this.sortable=this.$el.find(".query-builder-content #sow-post-selector .sow-posts-sortable").sortable({placeholder:"ui-state-highlight",forcePlaceholderSize:!0,items:"> .sow-post-selector-summary"}),this.addPosts(t);var i=this,o=this.$el.find(".query-builder-content #sow-post-selector .sow-search-field");return o.autocomplete({source:function(t,i){t.type=s,t.action="sow_search_posts",e.get(sowPostsSelectorTpl.ajaxurl,t,i)},minLength:0,select:function(t,s){return t.preventDefault(),e(this).val(""),i.addPosts([s.item.value]),!1}}),o.focusin(function(){o.autocomplete("search",o.val())}),this.$el.find(".query-builder-content").on("click",".sow-remove",function(t){t.preventDefault();var s=e(this);s.closest(".sow-post-selector-summary").fadeOut("fast",function(){e(this).remove(),i.sortable.sortable("refresh")})}),this},addPosts:function(s){if("undefined"!=typeof s&&!t.isEmpty(s)){for(var i=[],o=0;o<s.length;o++)"undefined"==typeof this.postCache[s[o]]&&i.push(s[o]);var n=this;t.isEmpty(i)||e.post(sowPostsSelectorTpl.ajaxurl,{action:"sow_get_posts",query:"post_type=_all&posts_per_page=-1&post__in="+i.join(",")},function(e){"undefined"!=typeof e.posts&&t.each(e.posts,function(e,t){n.postCache[e.id]={id:e.id,title:e.title,thumbnail:e.thumbnail,editUrl:e.editUrl}}),n.refreshLoading()});for(var r,o=0;o<s.length;o++)r="undefined"==typeof this.postCache[s[o]]?e(this.postTemplate({id:s[o],title:"",thumbnail:"",editUrl:"#"})).addClass("sow-post-loading"):e(this.postTemplate(this.postCache[s[o]])),r.appendTo(this.sortable);return this.sortable.sortable("refresh"),this}},refreshLoading:function(){var t=this;this.sortable.find(".sow-post-selector-summary.sow-post-loading").each(function(){var s=e(this),i=s.data("id");if("undefined"!=typeof t.postCache[i]){s.removeClass("sow-post-loading");var o=e(t.postTemplate(t.postCache[i]));s.html(o.html())}})},buttonHandler:function(){var s=[];return this.sortable.find(".sow-post-selector-summary").each(function(){s.push(Number(e(this).data("id")))}),this.model.set("post__in",s),t.isEmpty(s)||(this.model.set("post_type",["_all"]),this.model.set("orderby","post__in")),this.builder.setActiveView("form"),this}}),jQuery(function(e){e("body").on("click",".sow-select-posts",function(t){t.preventDefault();var s=e(this),i=new a({model:new l({query:""})});i.model.setSyncField(s.siblings(".siteorigin-widget-input")),i.model.sync("update"),i.views.postSummary.posts.on("reset",function(e){s.find(".sow-current-count").text(e.foundPosts)}),i.open()})})}(jQuery,_);
base/siteorigin-widget.class.php CHANGED
@@ -359,10 +359,17 @@ abstract class SiteOrigin_Widget extends WP_Widget {
359
  if( ! isset( $instance[$id] ) ) {
360
  $instance[$id] = isset( $field['default'] ) ? $field['default'] : '';
361
  }
362
- if ( ! isset( $instance[ $id . '_unit' ] ) || empty( $instance[ $id . '_unit' ] ) ) {
363
  $instance[ $id . '_unit' ] = 'px';
364
  }
365
  }
 
 
 
 
 
 
 
366
  else {
367
  if( !isset( $instance[$id] ) ) {
368
  $instance[$id] = isset( $field['default'] ) ? $field['default'] : '';
@@ -1274,7 +1281,7 @@ abstract class SiteOrigin_Widget extends WP_Widget {
1274
  /**
1275
  * Get the global settings from the options table.
1276
  *
1277
- * @return mixed|void
1278
  */
1279
  function get_global_settings( ){
1280
  $values = get_option( 'so_widget_settings[' . $this->widget_class . ']', array() );
359
  if( ! isset( $instance[$id] ) ) {
360
  $instance[$id] = isset( $field['default'] ) ? $field['default'] : '';
361
  }
362
+ if ( empty( $instance[ $id . '_unit' ] ) ) {
363
  $instance[ $id . '_unit' ] = 'px';
364
  }
365
  }
366
+ else if ( $field['type'] == 'order') {
367
+ if ( empty( $instance[$id] ) ) {
368
+ if( ! empty( $field['default'] ) ) {
369
+ $instance[$id] = $field['default'];
370
+ }
371
+ }
372
+ }
373
  else {
374
  if( !isset( $instance[$id] ) ) {
375
  $instance[$id] = isset( $field['default'] ) ? $field['default'] : '';
1281
  /**
1282
  * Get the global settings from the options table.
1283
  *
1284
+ * @return mixed
1285
  */
1286
  function get_global_settings( ){
1287
  $values = get_option( 'so_widget_settings[' . $this->widget_class . ']', array() );
compat/beaver-builder/styles.css CHANGED
@@ -1,190 +1 @@
1
- /* Styles required for icons, otherwise they are overridden by Beaver Builder's form styles */
2
- /* Unfortunately a lot of `!important`s necessary to override beaver's `!important`s. :/ */
3
- .fl-lightbox .siteorigin-widget-form,
4
- .siteorigin-widgets-query-builder.media-modal {
5
- /* Button styles copied from wp-core for default UI look. */
6
- }
7
- .fl-lightbox .siteorigin-widget-form.siteorigin-widget-form-main,
8
- .siteorigin-widgets-query-builder.media-modal.siteorigin-widget-form-main {
9
- min-width: inherit;
10
- }
11
- .fl-lightbox .siteorigin-widget-form .siteorigin-widget-teaser .dashicons,
12
- .siteorigin-widgets-query-builder.media-modal .siteorigin-widget-teaser .dashicons {
13
- font-family: dashicons;
14
- }
15
- .fl-lightbox .siteorigin-widget-form .siteorigin-widget-field input,
16
- .siteorigin-widgets-query-builder.media-modal .siteorigin-widget-field input {
17
- margin: 0 !important;
18
- }
19
- .fl-lightbox .siteorigin-widget-form .siteorigin-widget-field input[type="checkbox"],
20
- .siteorigin-widgets-query-builder.media-modal .siteorigin-widget-field input[type="checkbox"] {
21
- vertical-align: middle;
22
- }
23
- .fl-lightbox .siteorigin-widget-form .siteorigin-widget-field input.siteorigin-widget-input-color,
24
- .siteorigin-widgets-query-builder.media-modal .siteorigin-widget-field input.siteorigin-widget-input-color {
25
- margin: 5px !important;
26
- }
27
- .fl-lightbox .siteorigin-widget-form .siteorigin-widget-field input.siteorigin-widget-input-measurement,
28
- .siteorigin-widgets-query-builder.media-modal .siteorigin-widget-field input.siteorigin-widget-input-measurement {
29
- margin: 1px !important;
30
- height: inherit;
31
- }
32
- .fl-lightbox .siteorigin-widget-form .siteorigin-widget-field select.siteorigin-widget-input,
33
- .siteorigin-widgets-query-builder.media-modal .siteorigin-widget-field select.siteorigin-widget-input {
34
- height: inherit;
35
- padding: 3px;
36
- }
37
- .fl-lightbox .siteorigin-widget-form .siteorigin-widget-field .siteorigin-widget-field-type-slider input[type="number"],
38
- .siteorigin-widgets-query-builder.media-modal .siteorigin-widget-field .siteorigin-widget-field-type-slider input[type="number"] {
39
- display: none !important;
40
- }
41
- .fl-lightbox .siteorigin-widget-form .siteorigin-widget-field .clear,
42
- .siteorigin-widgets-query-builder.media-modal .siteorigin-widget-field .clear {
43
- clear: both;
44
- }
45
- .fl-lightbox .siteorigin-widget-form .siteorigin-widget-field.siteorigin-widget-field-type-media .media-fallback-external,
46
- .siteorigin-widgets-query-builder.media-modal .siteorigin-widget-field.siteorigin-widget-field-type-media .media-fallback-external {
47
- margin-top: 4px !important;
48
- margin-left: 15px !important;
49
- max-width: 220px;
50
- }
51
- .fl-lightbox .siteorigin-widget-form .sow-icon-elegantline,
52
- .siteorigin-widgets-query-builder.media-modal .sow-icon-elegantline,
53
- .fl-lightbox .siteorigin-widget-form .sow-icon-fontawesome,
54
- .siteorigin-widgets-query-builder.media-modal .sow-icon-fontawesome,
55
- .fl-lightbox .siteorigin-widget-form .sow-icon-genericons,
56
- .siteorigin-widgets-query-builder.media-modal .sow-icon-genericons,
57
- .fl-lightbox .siteorigin-widget-form .sow-icon-icomoon,
58
- .siteorigin-widgets-query-builder.media-modal .sow-icon-icomoon,
59
- .fl-lightbox .siteorigin-widget-form .sow-icon-ionicons,
60
- .siteorigin-widgets-query-builder.media-modal .sow-icon-ionicons,
61
- .fl-lightbox .siteorigin-widget-form .sow-icon-typicons,
62
- .siteorigin-widgets-query-builder.media-modal .sow-icon-typicons {
63
- display: inline-block;
64
- speak: none;
65
- font-style: normal;
66
- font-weight: normal;
67
- font-variant: normal;
68
- text-transform: none;
69
- line-height: 1;
70
- -webkit-font-smoothing: antialiased;
71
- -moz-osx-font-smoothing: grayscale;
72
- }
73
- .fl-lightbox .siteorigin-widget-form .sow-icon-elegantline,
74
- .siteorigin-widgets-query-builder.media-modal .sow-icon-elegantline {
75
- font-family: 'sow-elegantline';
76
- }
77
- .fl-lightbox .siteorigin-widget-form .sow-icon-fontawesome,
78
- .siteorigin-widgets-query-builder.media-modal .sow-icon-fontawesome {
79
- font-family: 'sow-fontawesome';
80
- }
81
- .fl-lightbox .siteorigin-widget-form .sow-icon-genericons,
82
- .siteorigin-widgets-query-builder.media-modal .sow-icon-genericons {
83
- font-family: 'sow-genericons';
84
- }
85
- .fl-lightbox .siteorigin-widget-form .sow-icon-icomoon,
86
- .siteorigin-widgets-query-builder.media-modal .sow-icon-icomoon {
87
- font-family: 'sow-icomoon';
88
- }
89
- .fl-lightbox .siteorigin-widget-form .sow-icon-ionicons,
90
- .siteorigin-widgets-query-builder.media-modal .sow-icon-ionicons {
91
- font-family: 'sow-ionicons';
92
- }
93
- .fl-lightbox .siteorigin-widget-form .sow-icon-typicons,
94
- .siteorigin-widgets-query-builder.media-modal .sow-icon-typicons {
95
- font-family: 'sow-typicons';
96
- }
97
- .fl-lightbox .siteorigin-widget-form .button,
98
- .siteorigin-widgets-query-builder.media-modal .button,
99
- .fl-lightbox .siteorigin-widget-form .button-secondary,
100
- .siteorigin-widgets-query-builder.media-modal .button-secondary {
101
- display: inline-block;
102
- text-decoration: none;
103
- font-size: 13px;
104
- line-height: 26px;
105
- height: 28px;
106
- margin: 0;
107
- padding: 0 10px 1px;
108
- cursor: pointer;
109
- border: 1px solid #cccccc;
110
- border-radius: 3px;
111
- white-space: nowrap;
112
- box-sizing: border-box;
113
- font-family: inherit;
114
- font-weight: normal;
115
- text-transform: capitalize;
116
- color: #555;
117
- background: #f7f7f7;
118
- }
119
- .fl-lightbox .siteorigin-widget-form .button:hover,
120
- .siteorigin-widgets-query-builder.media-modal .button:hover,
121
- .fl-lightbox .siteorigin-widget-form .button-secondary:hover,
122
- .siteorigin-widgets-query-builder.media-modal .button-secondary:hover,
123
- .fl-lightbox .siteorigin-widget-form .button:focus,
124
- .siteorigin-widgets-query-builder.media-modal .button:focus,
125
- .fl-lightbox .siteorigin-widget-form .button-secondary:focus,
126
- .siteorigin-widgets-query-builder.media-modal .button-secondary:focus {
127
- background: #fafafa;
128
- border-color: #999;
129
- color: #23282d;
130
- }
131
- .fl-lightbox .siteorigin-widget-form .button:active,
132
- .siteorigin-widgets-query-builder.media-modal .button:active,
133
- .fl-lightbox .siteorigin-widget-form .button-secondary:active,
134
- .siteorigin-widgets-query-builder.media-modal .button-secondary:active,
135
- .fl-lightbox .siteorigin-widget-form .button:focus,
136
- .siteorigin-widgets-query-builder.media-modal .button:focus,
137
- .fl-lightbox .siteorigin-widget-form .button-secondary:focus,
138
- .siteorigin-widgets-query-builder.media-modal .button-secondary:focus {
139
- outline: none;
140
- }
141
- .fl-lightbox .siteorigin-widget-form .button.hidden,
142
- .siteorigin-widgets-query-builder.media-modal .button.hidden,
143
- .fl-lightbox .siteorigin-widget-form .button-secondary.hidden,
144
- .siteorigin-widgets-query-builder.media-modal .button-secondary.hidden {
145
- display: none;
146
- }
147
- .fl-lightbox .siteorigin-widget-form .button.button-small,
148
- .siteorigin-widgets-query-builder.media-modal .button.button-small {
149
- height: 23px;
150
- line-height: 22px;
151
- padding: 0 8px 1px;
152
- font-size: 11px;
153
- }
154
- .fl-lightbox .siteorigin-widget-form select,
155
- .siteorigin-widgets-query-builder.media-modal select,
156
- .fl-lightbox .siteorigin-widget-form input[type=text],
157
- .siteorigin-widgets-query-builder.media-modal input[type=text] {
158
- margin: 1px;
159
- border-radius: 0;
160
- font-weight: inherit;
161
- border: 1px solid #ddd;
162
- box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.07);
163
- background-color: #fff;
164
- color: #32373c;
165
- outline: 0;
166
- transition: 50ms border-color ease-in-out;
167
- }
168
- .fl-lightbox .siteorigin-widget-form .ui-autocomplete,
169
- .siteorigin-widgets-query-builder.media-modal .ui-autocomplete {
170
- padding: 0;
171
- margin: 0;
172
- list-style: none;
173
- position: absolute;
174
- z-index: 10000;
175
- border: 1px solid #5b9dd9;
176
- box-shadow: 0 1px 2px rgba(30, 140, 190, 0.8);
177
- background-color: #fff;
178
- }
179
- .fl-lightbox .siteorigin-widget-form .ui-autocomplete li,
180
- .siteorigin-widgets-query-builder.media-modal .ui-autocomplete li {
181
- margin-bottom: 0;
182
- padding: 4px 10px;
183
- white-space: nowrap;
184
- text-align: left;
185
- }
186
- .fl-lightbox .siteorigin-widget-form .ui-autocomplete li.ui-state-focus,
187
- .siteorigin-widgets-query-builder.media-modal .ui-autocomplete li.ui-state-focus {
188
- background-color: #ddd;
189
- cursor: pointer;
190
- }
1
+ .fl-lightbox .siteorigin-widget-form.siteorigin-widget-form-main,.siteorigin-widgets-query-builder.media-modal.siteorigin-widget-form-main{min-width:inherit}.fl-lightbox .siteorigin-widget-form .siteorigin-widget-teaser .dashicons,.siteorigin-widgets-query-builder.media-modal .siteorigin-widget-teaser .dashicons{font-family:dashicons}.fl-lightbox .siteorigin-widget-form .siteorigin-widget-field input,.siteorigin-widgets-query-builder.media-modal .siteorigin-widget-field input{margin:0 !important}.fl-lightbox .siteorigin-widget-form .siteorigin-widget-field input[type="checkbox"],.siteorigin-widgets-query-builder.media-modal .siteorigin-widget-field input[type="checkbox"]{vertical-align:middle}.fl-lightbox .siteorigin-widget-form .siteorigin-widget-field input.siteorigin-widget-input-color,.siteorigin-widgets-query-builder.media-modal .siteorigin-widget-field input.siteorigin-widget-input-color{margin:5px !important}.fl-lightbox .siteorigin-widget-form .siteorigin-widget-field input.siteorigin-widget-input-measurement,.siteorigin-widgets-query-builder.media-modal .siteorigin-widget-field input.siteorigin-widget-input-measurement{margin:1px !important;height:inherit}.fl-lightbox .siteorigin-widget-form .siteorigin-widget-field select.siteorigin-widget-input,.siteorigin-widgets-query-builder.media-modal .siteorigin-widget-field select.siteorigin-widget-input{height:inherit;padding:3px}.fl-lightbox .siteorigin-widget-form .siteorigin-widget-field .siteorigin-widget-field-type-slider input[type="number"],.siteorigin-widgets-query-builder.media-modal .siteorigin-widget-field .siteorigin-widget-field-type-slider input[type="number"]{display:none !important}.fl-lightbox .siteorigin-widget-form .siteorigin-widget-field .clear,.siteorigin-widgets-query-builder.media-modal .siteorigin-widget-field .clear{clear:both}.fl-lightbox .siteorigin-widget-form .siteorigin-widget-field.siteorigin-widget-field-type-media .media-fallback-external,.siteorigin-widgets-query-builder.media-modal .siteorigin-widget-field.siteorigin-widget-field-type-media .media-fallback-external{margin-top:4px !important;margin-left:15px !important;max-width:220px}.fl-lightbox .siteorigin-widget-form .sow-icon-elegantline,.siteorigin-widgets-query-builder.media-modal .sow-icon-elegantline,.fl-lightbox .siteorigin-widget-form .sow-icon-fontawesome,.siteorigin-widgets-query-builder.media-modal .sow-icon-fontawesome,.fl-lightbox .siteorigin-widget-form .sow-icon-genericons,.siteorigin-widgets-query-builder.media-modal .sow-icon-genericons,.fl-lightbox .siteorigin-widget-form .sow-icon-icomoon,.siteorigin-widgets-query-builder.media-modal .sow-icon-icomoon,.fl-lightbox .siteorigin-widget-form .sow-icon-ionicons,.siteorigin-widgets-query-builder.media-modal .sow-icon-ionicons,.fl-lightbox .siteorigin-widget-form .sow-icon-typicons,.siteorigin-widgets-query-builder.media-modal .sow-icon-typicons{display:inline-block;speak:none;font-style:normal;font-weight:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fl-lightbox .siteorigin-widget-form .sow-icon-elegantline,.siteorigin-widgets-query-builder.media-modal .sow-icon-elegantline{font-family:'sow-elegantline'}.fl-lightbox .siteorigin-widget-form .sow-icon-fontawesome,.siteorigin-widgets-query-builder.media-modal .sow-icon-fontawesome{font-family:'sow-fontawesome'}.fl-lightbox .siteorigin-widget-form .sow-icon-genericons,.siteorigin-widgets-query-builder.media-modal .sow-icon-genericons{font-family:'sow-genericons'}.fl-lightbox .siteorigin-widget-form .sow-icon-icomoon,.siteorigin-widgets-query-builder.media-modal .sow-icon-icomoon{font-family:'sow-icomoon'}.fl-lightbox .siteorigin-widget-form .sow-icon-ionicons,.siteorigin-widgets-query-builder.media-modal .sow-icon-ionicons{font-family:'sow-ionicons'}.fl-lightbox .siteorigin-widget-form .sow-icon-typicons,.siteorigin-widgets-query-builder.media-modal .sow-icon-typicons{font-family:'sow-typicons'}.fl-lightbox .siteorigin-widget-form .button,.siteorigin-widgets-query-builder.media-modal .button,.fl-lightbox .siteorigin-widget-form .button-secondary,.siteorigin-widgets-query-builder.media-modal .button-secondary{display:inline-block;text-decoration:none;font-size:13px;line-height:26px;height:28px;margin:0;padding:0 10px 1px;cursor:pointer;border:1px solid #cccccc;border-radius:3px;white-space:nowrap;box-sizing:border-box;font-family:inherit;font-weight:normal;text-transform:capitalize;color:#555;background:#f7f7f7}.fl-lightbox .siteorigin-widget-form .button:hover,.siteorigin-widgets-query-builder.media-modal .button:hover,.fl-lightbox .siteorigin-widget-form .button-secondary:hover,.siteorigin-widgets-query-builder.media-modal .button-secondary:hover,.fl-lightbox .siteorigin-widget-form .button:focus,.siteorigin-widgets-query-builder.media-modal .button:focus,.fl-lightbox .siteorigin-widget-form .button-secondary:focus,.siteorigin-widgets-query-builder.media-modal .button-secondary:focus{background:#fafafa;border-color:#999;color:#23282d}.fl-lightbox .siteorigin-widget-form .button:active,.siteorigin-widgets-query-builder.media-modal .button:active,.fl-lightbox .siteorigin-widget-form .button-secondary:active,.siteorigin-widgets-query-builder.media-modal .button-secondary:active,.fl-lightbox .siteorigin-widget-form .button:focus,.siteorigin-widgets-query-builder.media-modal .button:focus,.fl-lightbox .siteorigin-widget-form .button-secondary:focus,.siteorigin-widgets-query-builder.media-modal .button-secondary:focus{outline:none}.fl-lightbox .siteorigin-widget-form .button.hidden,.siteorigin-widgets-query-builder.media-modal .button.hidden,.fl-lightbox .siteorigin-widget-form .button-secondary.hidden,.siteorigin-widgets-query-builder.media-modal .button-secondary.hidden{display:none}.fl-lightbox .siteorigin-widget-form .button.button-small,.siteorigin-widgets-query-builder.media-modal .button.button-small{height:23px;line-height:22px;padding:0 8px 1px;font-size:11px}.fl-lightbox .siteorigin-widget-form select,.siteorigin-widgets-query-builder.media-modal select,.fl-lightbox .siteorigin-widget-form input[type=text],.siteorigin-widgets-query-builder.media-modal input[type=text]{margin:1px;border-radius:0;font-weight:inherit;border:1px solid #ddd;box-shadow:inset 0 1px 2px rgba(0,0,0,0.07);background-color:#fff;color:#32373c;outline:0;transition:50ms border-color ease-in-out}.fl-lightbox .siteorigin-widget-form .ui-autocomplete,.siteorigin-widgets-query-builder.media-modal .ui-autocomplete{padding:0;margin:0;list-style:none;position:absolute;z-index:10000;border:1px solid #5b9dd9;box-shadow:0 1px 2px rgba(30,140,190,0.8);background-color:#fff}.fl-lightbox .siteorigin-widget-form .ui-autocomplete li,.siteorigin-widgets-query-builder.media-modal .ui-autocomplete li{margin-bottom:0;padding:4px 10px;white-space:nowrap;text-align:left}.fl-lightbox .siteorigin-widget-form .ui-autocomplete li.ui-state-focus,.siteorigin-widgets-query-builder.media-modal .ui-autocomplete li.ui-state-focus{background-color:#ddd;cursor:pointer}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
compat/elementor/styles.css CHANGED
@@ -1,225 +1 @@
1
- .elementor-panel #elementor-panel-page-editor .elementor-control-content .siteorigin-widget-form,
2
- .siteorigin-widgets-query-builder,
3
- .siteorigin-widgets-query-builder.media-modal {
4
- min-width: inherit;
5
- /* Button styles copied from wp-core for default UI look. */
6
- }
7
- .elementor-panel #elementor-panel-page-editor .elementor-control-content .siteorigin-widget-form .wp-picker-container,
8
- .siteorigin-widgets-query-builder .wp-picker-container,
9
- .siteorigin-widgets-query-builder.media-modal .wp-picker-container {
10
- float: none;
11
- }
12
- .elementor-panel #elementor-panel-page-editor .elementor-control-content .siteorigin-widget-form .wp-picker-container.wp-picker-active,
13
- .siteorigin-widgets-query-builder .wp-picker-container.wp-picker-active,
14
- .siteorigin-widgets-query-builder.media-modal .wp-picker-container.wp-picker-active {
15
- transform: none;
16
- float: none;
17
- position: relative;
18
- padding: 0;
19
- border: none;
20
- background: none;
21
- }
22
- .elementor-panel #elementor-panel-page-editor .elementor-control-content .siteorigin-widget-form .wp-picker-container.wp-picker-active .wp-color-result,
23
- .siteorigin-widgets-query-builder .wp-picker-container.wp-picker-active .wp-color-result,
24
- .siteorigin-widgets-query-builder.media-modal .wp-picker-container.wp-picker-active .wp-color-result {
25
- float: none;
26
- margin: 0;
27
- }
28
- .elementor-panel #elementor-panel-page-editor .elementor-control-content .siteorigin-widget-form .wp-picker-container.wp-picker-active .wp-picker-input-wrap,
29
- .siteorigin-widgets-query-builder .wp-picker-container.wp-picker-active .wp-picker-input-wrap,
30
- .siteorigin-widgets-query-builder.media-modal .wp-picker-container.wp-picker-active .wp-picker-input-wrap {
31
- padding: 0;
32
- float: none;
33
- }
34
- .elementor-panel #elementor-panel-page-editor .elementor-control-content .siteorigin-widget-form .wp-picker-container.wp-picker-active .iris-picker.iris-border,
35
- .siteorigin-widgets-query-builder .wp-picker-container.wp-picker-active .iris-picker.iris-border,
36
- .siteorigin-widgets-query-builder.media-modal .wp-picker-container.wp-picker-active .iris-picker.iris-border {
37
- background: none;
38
- }
39
- .elementor-panel #elementor-panel-page-editor .elementor-control-content .siteorigin-widget-form .wp-picker-container.wp-picker-active .iris-picker.iris-border .iris-picker-inner,
40
- .siteorigin-widgets-query-builder .wp-picker-container.wp-picker-active .iris-picker.iris-border .iris-picker-inner,
41
- .siteorigin-widgets-query-builder.media-modal .wp-picker-container.wp-picker-active .iris-picker.iris-border .iris-picker-inner {
42
- left: 0;
43
- right: 0;
44
- }
45
- .elementor-panel #elementor-panel-page-editor .elementor-control-content .siteorigin-widget-form .wp-picker-container.wp-picker-active .wp-picker-clear,
46
- .siteorigin-widgets-query-builder .wp-picker-container.wp-picker-active .wp-picker-clear,
47
- .siteorigin-widgets-query-builder.media-modal .wp-picker-container.wp-picker-active .wp-picker-clear {
48
- height: 28px;
49
- }
50
- .elementor-panel #elementor-panel-page-editor .elementor-control-content .siteorigin-widget-form .siteorigin-widget-field.siteorigin-widget-field-type-link .existing-content-selector,
51
- .siteorigin-widgets-query-builder .siteorigin-widget-field.siteorigin-widget-field-type-link .existing-content-selector,
52
- .siteorigin-widgets-query-builder.media-modal .siteorigin-widget-field.siteorigin-widget-field-type-link .existing-content-selector {
53
- width: inherit;
54
- }
55
- .elementor-panel #elementor-panel-page-editor .elementor-control-content .siteorigin-widget-form .siteorigin-widget-field .siteorigin-widget-input-color,
56
- .siteorigin-widgets-query-builder .siteorigin-widget-field .siteorigin-widget-input-color,
57
- .siteorigin-widgets-query-builder.media-modal .siteorigin-widget-field .siteorigin-widget-input-color {
58
- width: 120px;
59
- margin: 0 3px;
60
- }
61
- .elementor-panel #elementor-panel-page-editor .elementor-control-content .siteorigin-widget-form .siteorigin-widget-field.siteorigin-widget-field-type-measurement .siteorigin-widget-input-measurement,
62
- .siteorigin-widgets-query-builder .siteorigin-widget-field.siteorigin-widget-field-type-measurement .siteorigin-widget-input-measurement,
63
- .siteorigin-widgets-query-builder.media-modal .siteorigin-widget-field.siteorigin-widget-field-type-measurement .siteorigin-widget-input-measurement,
64
- .elementor-panel #elementor-panel-page-editor .elementor-control-content .siteorigin-widget-form .siteorigin-widget-field.siteorigin-widget-field-type-measurement .sow-measurement-select-unit,
65
- .siteorigin-widgets-query-builder .siteorigin-widget-field.siteorigin-widget-field-type-measurement .sow-measurement-select-unit,
66
- .siteorigin-widgets-query-builder.media-modal .siteorigin-widget-field.siteorigin-widget-field-type-measurement .sow-measurement-select-unit {
67
- max-width: inherit;
68
- height: 28px;
69
- margin: 0;
70
- }
71
- .elementor-panel #elementor-panel-page-editor .elementor-control-content .siteorigin-widget-form .siteorigin-widget-field.siteorigin-widget-field-type-measurement .siteorigin-widget-input-measurement,
72
- .siteorigin-widgets-query-builder .siteorigin-widget-field.siteorigin-widget-field-type-measurement .siteorigin-widget-input-measurement,
73
- .siteorigin-widgets-query-builder.media-modal .siteorigin-widget-field.siteorigin-widget-field-type-measurement .siteorigin-widget-input-measurement {
74
- width: 66%;
75
- margin-right: 1px;
76
- }
77
- .elementor-panel #elementor-panel-page-editor .elementor-control-content .siteorigin-widget-form .siteorigin-widget-field.siteorigin-widget-field-type-measurement .sow-measurement-select-unit,
78
- .siteorigin-widgets-query-builder .siteorigin-widget-field.siteorigin-widget-field-type-measurement .sow-measurement-select-unit,
79
- .siteorigin-widgets-query-builder.media-modal .siteorigin-widget-field.siteorigin-widget-field-type-measurement .sow-measurement-select-unit {
80
- width: 33%;
81
- margin-left: 1px;
82
- }
83
- .elementor-panel #elementor-panel-page-editor .elementor-control-content .siteorigin-widget-form .siteorigin-widget-field .siteorigin-widget-field-type-slider input[type="number"],
84
- .siteorigin-widgets-query-builder .siteorigin-widget-field .siteorigin-widget-field-type-slider input[type="number"],
85
- .siteorigin-widgets-query-builder.media-modal .siteorigin-widget-field .siteorigin-widget-field-type-slider input[type="number"] {
86
- display: none !important;
87
- }
88
- .elementor-panel #elementor-panel-page-editor .elementor-control-content .siteorigin-widget-form .siteorigin-widget-field .clear,
89
- .siteorigin-widgets-query-builder .siteorigin-widget-field .clear,
90
- .siteorigin-widgets-query-builder.media-modal .siteorigin-widget-field .clear {
91
- clear: both;
92
- }
93
- .elementor-panel #elementor-panel-page-editor .elementor-control-content .siteorigin-widget-form .siteorigin-widget-field.siteorigin-widget-field-type-media .media-fallback-external,
94
- .siteorigin-widgets-query-builder .siteorigin-widget-field.siteorigin-widget-field-type-media .media-fallback-external,
95
- .siteorigin-widgets-query-builder.media-modal .siteorigin-widget-field.siteorigin-widget-field-type-media .media-fallback-external {
96
- margin-top: 4px !important;
97
- margin-left: 15px !important;
98
- max-width: 220px;
99
- }
100
- .elementor-panel #elementor-panel-page-editor .elementor-control-content .siteorigin-widget-form .button,
101
- .siteorigin-widgets-query-builder .button,
102
- .siteorigin-widgets-query-builder.media-modal .button,
103
- .elementor-panel #elementor-panel-page-editor .elementor-control-content .siteorigin-widget-form .button-secondary,
104
- .siteorigin-widgets-query-builder .button-secondary,
105
- .siteorigin-widgets-query-builder.media-modal .button-secondary {
106
- display: inline-block;
107
- text-decoration: none;
108
- font-size: 13px;
109
- line-height: 26px;
110
- height: 28px;
111
- margin: 0;
112
- padding: 0 10px 1px;
113
- cursor: pointer;
114
- border: 1px solid #cccccc;
115
- border-radius: 3px;
116
- white-space: nowrap;
117
- box-sizing: border-box;
118
- font-family: inherit;
119
- font-weight: normal;
120
- text-transform: capitalize;
121
- color: #555;
122
- background: #f7f7f7;
123
- }
124
- .elementor-panel #elementor-panel-page-editor .elementor-control-content .siteorigin-widget-form .button:hover,
125
- .siteorigin-widgets-query-builder .button:hover,
126
- .siteorigin-widgets-query-builder.media-modal .button:hover,
127
- .elementor-panel #elementor-panel-page-editor .elementor-control-content .siteorigin-widget-form .button-secondary:hover,
128
- .siteorigin-widgets-query-builder .button-secondary:hover,
129
- .siteorigin-widgets-query-builder.media-modal .button-secondary:hover,
130
- .elementor-panel #elementor-panel-page-editor .elementor-control-content .siteorigin-widget-form .button:focus,
131
- .siteorigin-widgets-query-builder .button:focus,
132
- .siteorigin-widgets-query-builder.media-modal .button:focus,
133
- .elementor-panel #elementor-panel-page-editor .elementor-control-content .siteorigin-widget-form .button-secondary:focus,
134
- .siteorigin-widgets-query-builder .button-secondary:focus,
135
- .siteorigin-widgets-query-builder.media-modal .button-secondary:focus {
136
- background: #fafafa;
137
- border-color: #999;
138
- color: #23282d;
139
- }
140
- .elementor-panel #elementor-panel-page-editor .elementor-control-content .siteorigin-widget-form .button:active,
141
- .siteorigin-widgets-query-builder .button:active,
142
- .siteorigin-widgets-query-builder.media-modal .button:active,
143
- .elementor-panel #elementor-panel-page-editor .elementor-control-content .siteorigin-widget-form .button-secondary:active,
144
- .siteorigin-widgets-query-builder .button-secondary:active,
145
- .siteorigin-widgets-query-builder.media-modal .button-secondary:active,
146
- .elementor-panel #elementor-panel-page-editor .elementor-control-content .siteorigin-widget-form .button:focus,
147
- .siteorigin-widgets-query-builder .button:focus,
148
- .siteorigin-widgets-query-builder.media-modal .button:focus,
149
- .elementor-panel #elementor-panel-page-editor .elementor-control-content .siteorigin-widget-form .button-secondary:focus,
150
- .siteorigin-widgets-query-builder .button-secondary:focus,
151
- .siteorigin-widgets-query-builder.media-modal .button-secondary:focus {
152
- outline: none;
153
- }
154
- .elementor-panel #elementor-panel-page-editor .elementor-control-content .siteorigin-widget-form .button.hidden,
155
- .siteorigin-widgets-query-builder .button.hidden,
156
- .siteorigin-widgets-query-builder.media-modal .button.hidden,
157
- .elementor-panel #elementor-panel-page-editor .elementor-control-content .siteorigin-widget-form .button-secondary.hidden,
158
- .siteorigin-widgets-query-builder .button-secondary.hidden,
159
- .siteorigin-widgets-query-builder.media-modal .button-secondary.hidden {
160
- display: none;
161
- }
162
- .elementor-panel #elementor-panel-page-editor .elementor-control-content .siteorigin-widget-form .button.button-small,
163
- .siteorigin-widgets-query-builder .button.button-small,
164
- .siteorigin-widgets-query-builder.media-modal .button.button-small {
165
- height: 25px;
166
- line-height: 23px;
167
- padding: 0 8px;
168
- font-size: 11px;
169
- }
170
- .elementor-panel #elementor-panel-page-editor .elementor-control-content .siteorigin-widget-form select,
171
- .siteorigin-widgets-query-builder select,
172
- .siteorigin-widgets-query-builder.media-modal select,
173
- .elementor-panel #elementor-panel-page-editor .elementor-control-content .siteorigin-widget-form input[type=text],
174
- .siteorigin-widgets-query-builder input[type=text],
175
- .siteorigin-widgets-query-builder.media-modal input[type=text] {
176
- width: inherit;
177
- margin: 1px;
178
- border-radius: 0;
179
- font-weight: inherit;
180
- border: 1px solid #ddd;
181
- box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.07);
182
- background-color: #fff;
183
- color: #32373c;
184
- outline: 0;
185
- transition: 50ms border-color ease-in-out;
186
- }
187
- .elementor-panel #elementor-panel-page-editor .elementor-control-content .siteorigin-widget-form .ui-autocomplete,
188
- .siteorigin-widgets-query-builder .ui-autocomplete,
189
- .siteorigin-widgets-query-builder.media-modal .ui-autocomplete {
190
- padding: 0;
191
- margin: 0;
192
- list-style: none;
193
- position: absolute;
194
- z-index: 10000;
195
- border: 1px solid #5b9dd9;
196
- box-shadow: 0 1px 2px rgba(30, 140, 190, 0.8);
197
- background-color: #fff;
198
- }
199
- .elementor-panel #elementor-panel-page-editor .elementor-control-content .siteorigin-widget-form .ui-autocomplete li,
200
- .siteorigin-widgets-query-builder .ui-autocomplete li,
201
- .siteorigin-widgets-query-builder.media-modal .ui-autocomplete li {
202
- margin-bottom: 0;
203
- padding: 4px 10px;
204
- white-space: nowrap;
205
- text-align: left;
206
- }
207
- .elementor-panel #elementor-panel-page-editor .elementor-control-content .siteorigin-widget-form .ui-autocomplete li.ui-state-focus,
208
- .siteorigin-widgets-query-builder .ui-autocomplete li.ui-state-focus,
209
- .siteorigin-widgets-query-builder.media-modal .ui-autocomplete li.ui-state-focus {
210
- background-color: #ddd;
211
- cursor: pointer;
212
- }
213
- .elementor-panel #elementor-panel-page-editor .elementor-control-content .siteorigin-widget-form .media-toolbar-primary,
214
- .siteorigin-widgets-query-builder .media-toolbar-primary,
215
- .siteorigin-widgets-query-builder.media-modal .media-toolbar-primary {
216
- margin-top: 15px;
217
- }
218
- .elementor-panel #elementor-panel-page-editor .elementor-control-content .siteorigin-widget-form .query-builder-content .query-builder-form-field small,
219
- .siteorigin-widgets-query-builder .query-builder-content .query-builder-form-field small,
220
- .siteorigin-widgets-query-builder.media-modal .query-builder-content .query-builder-form-field small {
221
- margin-top: 5px;
222
- }
223
- .elementor-panel {
224
- width: 400px;
225
- }
1
+ .elementor-panel #elementor-panel-page-editor .elementor-control-content .siteorigin-widget-form,.siteorigin-widgets-query-builder,.siteorigin-widgets-query-builder.media-modal{min-width:inherit}.elementor-panel #elementor-panel-page-editor .elementor-control-content .siteorigin-widget-form .wp-picker-container,.siteorigin-widgets-query-builder .wp-picker-container,.siteorigin-widgets-query-builder.media-modal .wp-picker-container{float:none}.elementor-panel #elementor-panel-page-editor .elementor-control-content .siteorigin-widget-form .wp-picker-container.wp-picker-active,.siteorigin-widgets-query-builder .wp-picker-container.wp-picker-active,.siteorigin-widgets-query-builder.media-modal .wp-picker-container.wp-picker-active{transform:none;float:none;position:relative;padding:0;border:none;background:none}.elementor-panel #elementor-panel-page-editor .elementor-control-content .siteorigin-widget-form .wp-picker-container.wp-picker-active .wp-color-result,.siteorigin-widgets-query-builder .wp-picker-container.wp-picker-active .wp-color-result,.siteorigin-widgets-query-builder.media-modal .wp-picker-container.wp-picker-active .wp-color-result{float:none;margin:0}.elementor-panel #elementor-panel-page-editor .elementor-control-content .siteorigin-widget-form .wp-picker-container.wp-picker-active .wp-picker-input-wrap,.siteorigin-widgets-query-builder .wp-picker-container.wp-picker-active .wp-picker-input-wrap,.siteorigin-widgets-query-builder.media-modal .wp-picker-container.wp-picker-active .wp-picker-input-wrap{padding:0;float:none}.elementor-panel #elementor-panel-page-editor .elementor-control-content .siteorigin-widget-form .wp-picker-container.wp-picker-active .iris-picker.iris-border,.siteorigin-widgets-query-builder .wp-picker-container.wp-picker-active .iris-picker.iris-border,.siteorigin-widgets-query-builder.media-modal .wp-picker-container.wp-picker-active .iris-picker.iris-border{background:none}.elementor-panel #elementor-panel-page-editor .elementor-control-content .siteorigin-widget-form .wp-picker-container.wp-picker-active .iris-picker.iris-border .iris-picker-inner,.siteorigin-widgets-query-builder .wp-picker-container.wp-picker-active .iris-picker.iris-border .iris-picker-inner,.siteorigin-widgets-query-builder.media-modal .wp-picker-container.wp-picker-active .iris-picker.iris-border .iris-picker-inner{left:0;right:0}.elementor-panel #elementor-panel-page-editor .elementor-control-content .siteorigin-widget-form .wp-picker-container.wp-picker-active .wp-picker-clear,.siteorigin-widgets-query-builder .wp-picker-container.wp-picker-active .wp-picker-clear,.siteorigin-widgets-query-builder.media-modal .wp-picker-container.wp-picker-active .wp-picker-clear{height:28px}.elementor-panel #elementor-panel-page-editor .elementor-control-content .siteorigin-widget-form .siteorigin-widget-field.siteorigin-widget-field-type-link .existing-content-selector,.siteorigin-widgets-query-builder .siteorigin-widget-field.siteorigin-widget-field-type-link .existing-content-selector,.siteorigin-widgets-query-builder.media-modal .siteorigin-widget-field.siteorigin-widget-field-type-link .existing-content-selector{width:inherit}.elementor-panel #elementor-panel-page-editor .elementor-control-content .siteorigin-widget-form .siteorigin-widget-field .siteorigin-widget-input-color,.siteorigin-widgets-query-builder .siteorigin-widget-field .siteorigin-widget-input-color,.siteorigin-widgets-query-builder.media-modal .siteorigin-widget-field .siteorigin-widget-input-color{width:120px;margin:0 3px}.elementor-panel #elementor-panel-page-editor .elementor-control-content .siteorigin-widget-form .siteorigin-widget-field.siteorigin-widget-field-type-measurement .siteorigin-widget-input-measurement,.siteorigin-widgets-query-builder .siteorigin-widget-field.siteorigin-widget-field-type-measurement .siteorigin-widget-input-measurement,.siteorigin-widgets-query-builder.media-modal .siteorigin-widget-field.siteorigin-widget-field-type-measurement .siteorigin-widget-input-measurement,.elementor-panel #elementor-panel-page-editor .elementor-control-content .siteorigin-widget-form .siteorigin-widget-field.siteorigin-widget-field-type-measurement .sow-measurement-select-unit,.siteorigin-widgets-query-builder .siteorigin-widget-field.siteorigin-widget-field-type-measurement .sow-measurement-select-unit,.siteorigin-widgets-query-builder.media-modal .siteorigin-widget-field.siteorigin-widget-field-type-measurement .sow-measurement-select-unit{max-width:inherit;height:28px;margin:0}.elementor-panel #elementor-panel-page-editor .elementor-control-content .siteorigin-widget-form .siteorigin-widget-field.siteorigin-widget-field-type-measurement .siteorigin-widget-input-measurement,.siteorigin-widgets-query-builder .siteorigin-widget-field.siteorigin-widget-field-type-measurement .siteorigin-widget-input-measurement,.siteorigin-widgets-query-builder.media-modal .siteorigin-widget-field.siteorigin-widget-field-type-measurement .siteorigin-widget-input-measurement{width:66%;margin-right:1px}.elementor-panel #elementor-panel-page-editor .elementor-control-content .siteorigin-widget-form .siteorigin-widget-field.siteorigin-widget-field-type-measurement .sow-measurement-select-unit,.siteorigin-widgets-query-builder .siteorigin-widget-field.siteorigin-widget-field-type-measurement .sow-measurement-select-unit,.siteorigin-widgets-query-builder.media-modal .siteorigin-widget-field.siteorigin-widget-field-type-measurement .sow-measurement-select-unit{width:33%;margin-left:1px}.elementor-panel #elementor-panel-page-editor .elementor-control-content .siteorigin-widget-form .siteorigin-widget-field .siteorigin-widget-field-type-slider input[type="number"],.siteorigin-widgets-query-builder .siteorigin-widget-field .siteorigin-widget-field-type-slider input[type="number"],.siteorigin-widgets-query-builder.media-modal .siteorigin-widget-field .siteorigin-widget-field-type-slider input[type="number"]{display:none !important}.elementor-panel #elementor-panel-page-editor .elementor-control-content .siteorigin-widget-form .siteorigin-widget-field .clear,.siteorigin-widgets-query-builder .siteorigin-widget-field .clear,.siteorigin-widgets-query-builder.media-modal .siteorigin-widget-field .clear{clear:both}.elementor-panel #elementor-panel-page-editor .elementor-control-content .siteorigin-widget-form .siteorigin-widget-field.siteorigin-widget-field-type-media .media-fallback-external,.siteorigin-widgets-query-builder .siteorigin-widget-field.siteorigin-widget-field-type-media .media-fallback-external,.siteorigin-widgets-query-builder.media-modal .siteorigin-widget-field.siteorigin-widget-field-type-media .media-fallback-external{margin-top:4px !important;margin-left:15px !important;max-width:220px}.elementor-panel #elementor-panel-page-editor .elementor-control-content .siteorigin-widget-form .button,.siteorigin-widgets-query-builder .button,.siteorigin-widgets-query-builder.media-modal .button,.elementor-panel #elementor-panel-page-editor .elementor-control-content .siteorigin-widget-form .button-secondary,.siteorigin-widgets-query-builder .button-secondary,.siteorigin-widgets-query-builder.media-modal .button-secondary{display:inline-block;text-decoration:none;font-size:13px;line-height:26px;height:28px;margin:0;padding:0 10px 1px;cursor:pointer;border:1px solid #cccccc;border-radius:3px;white-space:nowrap;box-sizing:border-box;font-family:inherit;font-weight:normal;text-transform:capitalize;color:#555;background:#f7f7f7}.elementor-panel #elementor-panel-page-editor .elementor-control-content .siteorigin-widget-form .button:hover,.siteorigin-widgets-query-builder .button:hover,.siteorigin-widgets-query-builder.media-modal .button:hover,.elementor-panel #elementor-panel-page-editor .elementor-control-content .siteorigin-widget-form .button-secondary:hover,.siteorigin-widgets-query-builder .button-secondary:hover,.siteorigin-widgets-query-builder.media-modal .button-secondary:hover,.elementor-panel #elementor-panel-page-editor .elementor-control-content .siteorigin-widget-form .button:focus,.siteorigin-widgets-query-builder .button:focus,.siteorigin-widgets-query-builder.media-modal .button:focus,.elementor-panel #elementor-panel-page-editor .elementor-control-content .siteorigin-widget-form .button-secondary:focus,.siteorigin-widgets-query-builder .button-secondary:focus,.siteorigin-widgets-query-builder.media-modal .button-secondary:focus{background:#fafafa;border-color:#999;color:#23282d}.elementor-panel #elementor-panel-page-editor .elementor-control-content .siteorigin-widget-form .button:active,.siteorigin-widgets-query-builder .button:active,.siteorigin-widgets-query-builder.media-modal .button:active,.elementor-panel #elementor-panel-page-editor .elementor-control-content .siteorigin-widget-form .button-secondary:active,.siteorigin-widgets-query-builder .button-secondary:active,.siteorigin-widgets-query-builder.media-modal .button-secondary:active,.elementor-panel #elementor-panel-page-editor .elementor-control-content .siteorigin-widget-form .button:focus,.siteorigin-widgets-query-builder .button:focus,.siteorigin-widgets-query-builder.media-modal .button:focus,.elementor-panel #elementor-panel-page-editor .elementor-control-content .siteorigin-widget-form .button-secondary:focus,.siteorigin-widgets-query-builder .button-secondary:focus,.siteorigin-widgets-query-builder.media-modal .button-secondary:focus{outline:none}.elementor-panel #elementor-panel-page-editor .elementor-control-content .siteorigin-widget-form .button.hidden,.siteorigin-widgets-query-builder .button.hidden,.siteorigin-widgets-query-builder.media-modal .button.hidden,.elementor-panel #elementor-panel-page-editor .elementor-control-content .siteorigin-widget-form .button-secondary.hidden,.siteorigin-widgets-query-builder .button-secondary.hidden,.siteorigin-widgets-query-builder.media-modal .button-secondary.hidden{display:none}.elementor-panel #elementor-panel-page-editor .elementor-control-content .siteorigin-widget-form .button.button-small,.siteorigin-widgets-query-builder .button.button-small,.siteorigin-widgets-query-builder.media-modal .button.button-small{height:25px;line-height:23px;padding:0 8px;font-size:11px}.elementor-panel #elementor-panel-page-editor .elementor-control-content .siteorigin-widget-form select,.siteorigin-widgets-query-builder select,.siteorigin-widgets-query-builder.media-modal select,.elementor-panel #elementor-panel-page-editor .elementor-control-content .siteorigin-widget-form input[type=text],.siteorigin-widgets-query-builder input[type=text],.siteorigin-widgets-query-builder.media-modal input[type=text]{width:inherit;margin:1px;border-radius:0;font-weight:inherit;border:1px solid #ddd;box-shadow:inset 0 1px 2px rgba(0,0,0,0.07);background-color:#fff;color:#32373c;outline:0;transition:50ms border-color ease-in-out}.elementor-panel #elementor-panel-page-editor .elementor-control-content .siteorigin-widget-form .ui-autocomplete,.siteorigin-widgets-query-builder .ui-autocomplete,.siteorigin-widgets-query-builder.media-modal .ui-autocomplete{padding:0;margin:0;list-style:none;position:absolute;z-index:10000;border:1px solid #5b9dd9;box-shadow:0 1px 2px rgba(30,140,190,0.8);background-color:#fff}.elementor-panel #elementor-panel-page-editor .elementor-control-content .siteorigin-widget-form .ui-autocomplete li,.siteorigin-widgets-query-builder .ui-autocomplete li,.siteorigin-widgets-query-builder.media-modal .ui-autocomplete li{margin-bottom:0;padding:4px 10px;white-space:nowrap;text-align:left}.elementor-panel #elementor-panel-page-editor .elementor-control-content .siteorigin-widget-form .ui-autocomplete li.ui-state-focus,.siteorigin-widgets-query-builder .ui-autocomplete li.ui-state-focus,.siteorigin-widgets-query-builder.media-modal .ui-autocomplete li.ui-state-focus{background-color:#ddd;cursor:pointer}.elementor-panel #elementor-panel-page-editor .elementor-control-content .siteorigin-widget-form .media-toolbar-primary,.siteorigin-widgets-query-builder .media-toolbar-primary,.siteorigin-widgets-query-builder.media-modal .media-toolbar-primary{margin-top:15px}.elementor-panel #elementor-panel-page-editor .elementor-control-content .siteorigin-widget-form .query-builder-content .query-builder-form-field small,.siteorigin-widgets-query-builder .query-builder-content .query-builder-form-field small,.siteorigin-widgets-query-builder.media-modal .query-builder-content .query-builder-form-field small{margin-top:5px}.elementor-panel{width:400px}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
compat/visual-composer/styles.css ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .siteorigin-widget-form .siteorigin-widget-field input {
2
+ margin: 1px;
3
+ padding: 2px 5px;
4
+ }
5
+ .siteorigin-widget-form .siteorigin-widget-field input[type="radio"] {
6
+ width: inherit;
7
+ }
8
+ .siteorigin-widget-form .siteorigin-widget-field select {
9
+ padding: 2px;
10
+ height: 28px;
11
+ width: inherit;
12
+ margin: 1px;
13
+ }
css/slider/slider.css CHANGED
@@ -1,235 +1 @@
1
- @font-face {
2
- font-family: 'so-slider-pointers';
3
- src: url('fonts/slider.eot?8p86w5');
4
- src: url('fonts/slider.eot?#iefix8p86w5') format('embedded-opentype'), url('fonts/slider.woff?8p86w5') format('woff'), url('fonts/slider.ttf?8p86w5') format('truetype'), url('fonts/slider.svg?8p86w5#slider') format('svg');
5
- font-weight: normal;
6
- font-style: normal;
7
- }
8
- .sow-slider-base {
9
- position: relative;
10
- overflow: hidden;
11
- /* Some jQuery Cycle Specific CSS */
12
- /* Icon fonts for the left and right slider images */
13
- }
14
- .sow-slider-base ul.sow-slider-images {
15
- list-style: none;
16
- margin: 0;
17
- overflow: hidden;
18
- }
19
- .sow-slider-base ul.sow-slider-images li.sow-slider-image {
20
- width: 100%;
21
- margin: 0;
22
- list-style: none;
23
- position: relative;
24
- overflow: hidden;
25
- }
26
- .sow-slider-base ul.sow-slider-images li.sow-slider-image.sow-slider-image-cover {
27
- background-position: center center;
28
- background-size: cover;
29
- }
30
- .sow-slider-base ul.sow-slider-images li.sow-slider-image.sow-slider-image-cover {
31
- background-repeat: repeat;
32
- }
33
- .sow-slider-base ul.sow-slider-images li.sow-slider-image .sow-slider-image-container {
34
- position: absolute;
35
- top: 0;
36
- left: 0;
37
- width: 100%;
38
- z-index: 2;
39
- }
40
- .sow-slider-base ul.sow-slider-images li.sow-slider-image .sow-slider-image-container .sow-slider-image-wrapper {
41
- margin: 0 auto;
42
- z-index: 2;
43
- -ms-box-sizing: border-box;
44
- -moz-box-sizing: border-box;
45
- -webkit-box-sizing: border-box;
46
- box-sizing: border-box;
47
- }
48
- .sow-slider-base ul.sow-slider-images li.sow-slider-image .sow-slider-image-container .sow-slider-image-wrapper > *:first-child {
49
- margin-top: 0;
50
- }
51
- .sow-slider-base ul.sow-slider-images li.sow-slider-image .sow-slider-image-container .sow-slider-image-wrapper > *:last-child {
52
- margin-bottom: 0;
53
- }
54
- .sow-slider-base ul.sow-slider-images li.sow-slider-image .sow-slider-image-overlay {
55
- position: absolute;
56
- top: 0;
57
- left: 0;
58
- bottom: 0;
59
- right: 0;
60
- }
61
- .sow-slider-base ul.sow-slider-images li.sow-slider-image .sow-slider-image-overlay.sow-slider-image-cover {
62
- background-position: center center;
63
- background-size: cover;
64
- }
65
- .sow-slider-base ul.sow-slider-images li.sow-slider-image .sow-slider-image-overlay.sow-slider-image-cover {
66
- background-repeat: repeat;
67
- }
68
- .sow-slider-base ul.sow-slider-images li.sow-slider-image > img,
69
- .sow-slider-base ul.sow-slider-images li.sow-slider-image > a > img,
70
- .sow-slider-base ul.sow-slider-images li.sow-slider-image .sow-slider-image-wrapper > img,
71
- .sow-slider-base ul.sow-slider-images li.sow-slider-image .sow-slider-image-wrapper > a > img {
72
- display: block;
73
- width: 100%;
74
- height: auto;
75
- border: none;
76
- }
77
- .sow-slider-base ul.sow-slider-images li.sow-slider-image video.sow-background-element {
78
- position: absolute;
79
- top: 50%;
80
- left: 50%;
81
- width: auto;
82
- height: auto;
83
- z-index: 1;
84
- overflow: hidden;
85
- }
86
- .sow-slider-base ul.sow-slider-images li.sow-slider-image video.sow-full-element {
87
- display: block;
88
- width: 100%;
89
- height: auto;
90
- }
91
- .sow-slider-base .sow-slider-pagination {
92
- list-style: none;
93
- margin: 0;
94
- text-align: right;
95
- position: absolute;
96
- bottom: 20px;
97
- left: 0;
98
- width: 100%;
99
- z-index: 1001;
100
- -ms-box-sizing: border-box;
101
- -moz-box-sizing: border-box;
102
- -webkit-box-sizing: border-box;
103
- box-sizing: border-box;
104
- padding-right: 30px;
105
- line-height: 11px;
106
- -webkit-user-select: none;
107
- -moz-user-select: none;
108
- -ms-user-select: none;
109
- user-select: none;
110
- }
111
- .sow-slider-base .sow-slider-pagination li {
112
- text-align: left;
113
- margin: 0;
114
- display: inline-block;
115
- }
116
- .sow-slider-base .sow-slider-pagination li a {
117
- display: block;
118
- text-indent: -9999px;
119
- width: 11px;
120
- height: 11px;
121
- background: #FFFFFF;
122
- -webkit-border-radius: 6px;
123
- -moz-border-radius: 6px;
124
- border-radius: 6px;
125
- opacity: 0.45;
126
- }
127
- .sow-slider-base .sow-slider-pagination li.sow-active a {
128
- opacity: 0.85;
129
- }
130
- .sow-slider-base .sow-slide-nav {
131
- list-style: none;
132
- z-index: 1001;
133
- position: absolute;
134
- top: 50%;
135
- opacity: 0.75;
136
- font-size: 25px;
137
- margin-top: -0.5em;
138
- -webkit-user-select: none;
139
- -moz-user-select: none;
140
- -ms-user-select: none;
141
- user-select: none;
142
- }
143
- .sow-slider-base .sow-slide-nav a {
144
- display: block;
145
- height: 1em;
146
- text-align: center;
147
- text-decoration: none;
148
- color: #FFFFFF;
149
- }
150
- .sow-slider-base .sow-slide-nav a em {
151
- display: block;
152
- }
153
- .sow-slider-base .sow-slide-nav.sow-slide-nav-next {
154
- right: 20px;
155
- }
156
- .sow-slider-base .sow-slide-nav.sow-slide-nav-next a {
157
- background-position: top right;
158
- }
159
- .sow-slider-base .sow-slide-nav.sow-slide-nav-prev {
160
- left: 20px;
161
- }
162
- .sow-slider-base .sow-slide-nav.sow-slide-nav-prev a {
163
- background-position: top left;
164
- }
165
- .sow-slider-base .cycle-sentinal {
166
- overflow: hidden;
167
- }
168
- .sow-slider-base.sow-slider-is-mobile .sow-slide-nav,
169
- .sow-slider-base.sow-slider-is-mobile .sow-slider-pagination {
170
- /* display: none; */
171
- }
172
- .sow-slider-base.sow-slider-is-mobile video.sow-background-element {
173
- visibility: hidden;
174
- }
175
- .sow-slider-base [class^="sow-sld-icon-"],
176
- .sow-slider-base [class*=" sow-sld-icon-"] {
177
- font-family: 'so-slider-pointers';
178
- speak: none;
179
- font-style: normal;
180
- font-weight: normal;
181
- font-variant: normal;
182
- text-transform: none;
183
- line-height: 1;
184
- /* Better Font Rendering =========== */
185
- -webkit-font-smoothing: antialiased;
186
- -moz-osx-font-smoothing: grayscale;
187
- }
188
- .sow-slider-base .sow-sld-icon-ultra-thin-rounded-left:before {
189
- content: "\e600";
190
- }
191
- .sow-slider-base .sow-sld-icon-ultra-thin-rounded-right:before {
192
- content: "\e601";
193
- }
194
- .sow-slider-base .sow-sld-icon-thin-rounded-left:before {
195
- content: "\e602";
196
- }
197
- .sow-slider-base .sow-sld-icon-thin-rounded-right:before {
198
- content: "\e603";
199
- }
200
- .sow-slider-base .sow-sld-icon-medium-rounded-left:before {
201
- content: "\e604";
202
- }
203
- .sow-slider-base .sow-sld-icon-medium-rounded-right:before {
204
- content: "\e605";
205
- }
206
- .sow-slider-base .sow-sld-icon-thick-rounded-left:before {
207
- content: "\e606";
208
- }
209
- .sow-slider-base .sow-sld-icon-thick-rounded-right:before {
210
- content: "\e607";
211
- }
212
- .sow-slider-base .sow-sld-icon-ultra-thin-left:before {
213
- content: "\e608";
214
- }
215
- .sow-slider-base .sow-sld-icon-ultra-thin-right:before {
216
- content: "\e609";
217
- }
218
- .sow-slider-base .sow-sld-icon-thin-left:before {
219
- content: "\e60a";
220
- }
221
- .sow-slider-base .sow-sld-icon-thin-right:before {
222
- content: "\e60b";
223
- }
224
- .sow-slider-base .sow-sld-icon-medium-left:before {
225
- content: "\e60c";
226
- }
227
- .sow-slider-base .sow-sld-icon-medium-right:before {
228
- content: "\e60d";
229
- }
230
- .sow-slider-base .sow-sld-icon-thick-left:before {
231
- content: "\e60e";
232
- }
233
- .sow-slider-base .sow-sld-icon-thick-right:before {
234
- content: "\e60f";
235
- }
1
+ @font-face{font-family:'so-slider-pointers';src:url('fonts/slider.eot?8p86w5');src:url('fonts/slider.eot?#iefix8p86w5') format('embedded-opentype'),url('fonts/slider.woff?8p86w5') format('woff'),url('fonts/slider.ttf?8p86w5') format('truetype'),url('fonts/slider.svg?8p86w5#slider') format('svg');font-weight:normal;font-style:normal}.sow-slider-base{position:relative;overflow:hidden}.sow-slider-base ul.sow-slider-images{list-style:none;margin:0;overflow:hidden}.sow-slider-base ul.sow-slider-images li.sow-slider-image{width:100%;margin:0;list-style:none;position:relative;overflow:hidden}.sow-slider-base ul.sow-slider-images li.sow-slider-image.sow-slider-image-cover{background-position:center center;background-size:cover}.sow-slider-base ul.sow-slider-images li.sow-slider-image.sow-slider-image-cover{background-repeat:repeat}.sow-slider-base ul.sow-slider-images li.sow-slider-image .sow-slider-image-container{position:absolute;top:0;left:0;width:100%;z-index:2}.sow-slider-base ul.sow-slider-images li.sow-slider-image .sow-slider-image-container .sow-slider-image-wrapper{margin:0 auto;z-index:2;-ms-box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.sow-slider-base ul.sow-slider-images li.sow-slider-image .sow-slider-image-container .sow-slider-image-wrapper>*:first-child{margin-top:0}.sow-slider-base ul.sow-slider-images li.sow-slider-image .sow-slider-image-container .sow-slider-image-wrapper>*:last-child{margin-bottom:0}.sow-slider-base ul.sow-slider-images li.sow-slider-image .sow-slider-image-overlay{position:absolute;top:0;left:0;bottom:0;right:0}.sow-slider-base ul.sow-slider-images li.sow-slider-image .sow-slider-image-overlay.sow-slider-image-cover{background-position:center center;background-size:cover}.sow-slider-base ul.sow-slider-images li.sow-slider-image .sow-slider-image-overlay.sow-slider-image-cover{background-repeat:repeat}.sow-slider-base ul.sow-slider-images li.sow-slider-image>img,.sow-slider-base ul.sow-slider-images li.sow-slider-image>a>img,.sow-slider-base ul.sow-slider-images li.sow-slider-image .sow-slider-image-wrapper>img,.sow-slider-base ul.sow-slider-images li.sow-slider-image .sow-slider-image-wrapper>a>img{display:block;width:100%;height:auto;border:none}.sow-slider-base ul.sow-slider-images li.sow-slider-image video.sow-background-element{position:absolute;top:50%;left:50%;width:auto;height:auto;z-index:1;overflow:hidden}.sow-slider-base ul.sow-slider-images li.sow-slider-image video.sow-full-element{display:block;width:100%;height:auto}.sow-slider-base .sow-slider-pagination{list-style:none;margin:0;text-align:right;position:absolute;bottom:20px;left:0;width:100%;z-index:1001;-ms-box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;padding-right:30px;line-height:11px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.sow-slider-base .sow-slider-pagination li{text-align:left;margin:0;display:inline-block}.sow-slider-base .sow-slider-pagination li a{display:block;text-indent:-9999px;width:11px;height:11px;background:#FFFFFF;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;opacity:.45}.sow-slider-base .sow-slider-pagination li.sow-active a{opacity:.85}.sow-slider-base .sow-slide-nav{list-style:none;z-index:1001;position:absolute;top:50%;opacity:.75;font-size:25px;margin-top:-0.5em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.sow-slider-base .sow-slide-nav a{display:block;height:1em;text-align:center;text-decoration:none;color:#FFFFFF}.sow-slider-base .sow-slide-nav a em{display:block}.sow-slider-base .sow-slide-nav.sow-slide-nav-next{right:20px}.sow-slider-base .sow-slide-nav.sow-slide-nav-next a{background-position:top right}.sow-slider-base .sow-slide-nav.sow-slide-nav-prev{left:20px}.sow-slider-base .sow-slide-nav.sow-slide-nav-prev a{background-position:top left}.sow-slider-base .cycle-sentinal{overflow:hidden}.sow-slider-base.sow-slider-is-mobile video.sow-background-element{visibility:hidden}.sow-slider-base [class^="sow-sld-icon-"],.sow-slider-base [class*=" sow-sld-icon-"]{font-family:'so-slider-pointers';speak:none;font-style:normal;font-weight:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.sow-slider-base .sow-sld-icon-ultra-thin-rounded-left:before{content:"\e600"}.sow-slider-base .sow-sld-icon-ultra-thin-rounded-right:before{content:"\e601"}.sow-slider-base .sow-sld-icon-thin-rounded-left:before{content:"\e602"}.sow-slider-base .sow-sld-icon-thin-rounded-right:before{content:"\e603"}.sow-slider-base .sow-sld-icon-medium-rounded-left:before{content:"\e604"}.sow-slider-base .sow-sld-icon-medium-rounded-right:before{content:"\e605"}.sow-slider-base .sow-sld-icon-thick-rounded-left:before{content:"\e606"}.sow-slider-base .sow-sld-icon-thick-rounded-right:before{content:"\e607"}.sow-slider-base .sow-sld-icon-ultra-thin-left:before{content:"\e608"}.sow-slider-base .sow-sld-icon-ultra-thin-right:before{content:"\e609"}.sow-slider-base .sow-sld-icon-thin-left:before{content:"\e60a"}.sow-slider-base .sow-sld-icon-thin-right:before{content:"\e60b"}.sow-slider-base .sow-sld-icon-medium-left:before{content:"\e60c"}.sow-slider-base .sow-sld-icon-medium-right:before{content:"\e60d"}.sow-slider-base .sow-sld-icon-thick-left:before{content:"\e60e"}.sow-slider-base .sow-sld-icon-thick-right:before{content:"\e60f"}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
js/slider/jquery.slider.js CHANGED
@@ -99,6 +99,17 @@ jQuery( function($){
99
  });
100
 
101
  var setupSlider = function(){
 
 
 
 
 
 
 
 
 
 
 
102
  // Show everything for this slider
103
  $base.show();
104
 
@@ -145,6 +156,12 @@ jQuery( function($){
145
  }
146
 
147
  $(window).resize();
 
 
 
 
 
 
148
  }
149
  })
150
  .cycle( {
99
  });
100
 
101
  var setupSlider = function(){
102
+
103
+ // If we're inside a fittext wrapper, wait for it to complete, before setting up the slider.
104
+ var fitTextWrapper = $$.closest('.so-widget-fittext-wrapper');
105
+ if ( fitTextWrapper.length > 0 && ! $$.data('fitTextDone') ) {
106
+ fitTextWrapper.on('fitTextDone', function () {
107
+ $$.data('fitTextDone', true);
108
+ setupSlider();
109
+ });
110
+ return;
111
+ }
112
+
113
  // Show everything for this slider
114
  $base.show();
115
 
156
  }
157
 
158
  $(window).resize();
159
+
160
+ setTimeout(function() {
161
+ siteoriginSlider.setupActiveSlide( $$, optionHash.slides[0] );
162
+ // Ensure we keep auto-height functionality, but we don't want the duplicated content.
163
+ $$.find('.cycle-sentinel').empty();
164
+ }, 200);
165
  }
166
  })
167
  .cycle( {
js/slider/jquery.slider.min.js CHANGED
@@ -1 +1 @@
1
- var sowb=window.sowb||{};sowb.SiteOriginSlider=function(e){return{playSlideVideo:function(i){e(i).find("video").each(function(){"undefined"!=typeof this.play&&this.play()})},pauseSlideVideo:function(i){e(i).find("video").each(function(){"undefined"!=typeof this.pause&&this.pause()})},setupActiveSlide:function(i,t,s){var n=e(i).find(".cycle-sentinel"),o=e(t),d=o.find("video.sow-background-element");if(void 0==s?n.css("height",o.outerHeight()):n.animate({height:o.outerHeight()},s),d.length){var c=o.outerWidth()/o.outerHeight(),l=d.outerWidth()/d.outerHeight();c>l?d.css({width:"100%",height:"auto"}):d.css({width:"auto",height:"100%"}),d.css({"margin-left":-Math.ceil(d.width()/2),"margin-top":-Math.ceil(d.height()/2)})}}}},jQuery(function(e){sowb.setupSliders=sowb.setupSlider=function(){var i=new sowb.SiteOriginSlider(e);e(".sow-slider-images").each(function(){var t=e(this),s=t.siblings(".sow-slider-pagination"),n=t.closest(".sow-slider-base"),o=n.find(".sow-slide-nav"),d=t.find(".sow-slider-image"),c=t.data("settings");d.each(function(i,t){var s=e(t),n=s.data("url");s.click(function(i){if(void 0!==n){var t=e(i.target);"A"!==t.prop("tagName")&&(i.preventDefault(),window.open(n.url,n.new_window?"_blank":"_self"))}})});var l=function(){if(n.show(),t.find(".sow-slider-image").each(function(){var i=e(this);e(window).on("resize panelsStretchRows",function(){i.css("height",i.find(".sow-slider-image-wrapper").outerHeight())}).resize()}),t.on({"cycle-after":function(t,s,n,o,d){var c=e(this);i.playSlideVideo(o),i.setupActiveSlide(c,o),e(o).trigger("sowSlideCycleAfter")},"cycle-before":function(t,n,o,d,c){var l=e(this);s.find("> li").removeClass("sow-active").eq(n.slideNum-1).addClass("sow-active"),i.pauseSlideVideo(o),i.setupActiveSlide(l,d,n.speed),e(d).trigger("sowSlideCycleBefore")},"cycle-initialized":function(n,d){i.playSlideVideo(e(this).find(".cycle-slide-active")),i.setupActiveSlide(t,d.slides[0]),s.find(">li").removeClass("sow-active").eq(0).addClass("sow-active"),e(this).find(".cycle-slide-active").trigger("sowSlideInitial"),d.slideCount<=1&&(s.hide(),o.hide()),e(window).resize()}}).cycle({slides:"> .sow-slider-image",speed:c.speed,timeout:c.timeout,swipe:c.swipe,"swipe-fx":"scrollHorz"}),t.find("video.sow-background-element").on("loadeddata",function(){i.setupActiveSlide(t,t.find(".cycle-slide-active"))}),s.add(o).hide(),!n.hasClass("sow-slider-is-mobile")&&d.length>1){var l=!1;n.mouseenter(function(){s.add(o).clearQueue().fadeIn(150),l=!1}).mouseleave(function(){l=!0,setTimeout(function(){l&&s.add(o).clearQueue().fadeOut(150),l=!1},750)})}e(window).resize(function(){i.setupActiveSlide(t,t.find(".cycle-slide-active"))}),s.find("> li > a").click(function(i){i.preventDefault(),t.cycle("goto",e(this).data("goto"))}),o.find("> a").click(function(i){i.preventDefault(),t.cycle(e(this).data("action"))}),n.keydown(function(e){37===e.which?t.cycle("prev"):39===e.which&&t.cycle("next")})},a=t.find("img"),r=0,u=!1;a.each(function(){e(this);this.complete?r++:e(this).one("load",function(){r++,r!==a.length||u||(l(),u=!0)}).attr("src",e(this).attr("src")),r!==a.length||u||(l(),u=!0)}),0===a.length&&l()})},sowb.setupSliders(),e(sowb).on("setup_widgets",sowb.setupSliders)});
1
+ var sowb=window.sowb||{};sowb.SiteOriginSlider=function(e){return{playSlideVideo:function(i){e(i).find("video").each(function(){"undefined"!=typeof this.play&&this.play()})},pauseSlideVideo:function(i){e(i).find("video").each(function(){"undefined"!=typeof this.pause&&this.pause()})},setupActiveSlide:function(i,t,s){var n=e(i).find(".cycle-sentinel"),o=e(t),d=o.find("video.sow-background-element");if(void 0==s?n.css("height",o.outerHeight()):n.animate({height:o.outerHeight()},s),d.length){var c=o.outerWidth()/o.outerHeight(),l=d.outerWidth()/d.outerHeight();c>l?d.css({width:"100%",height:"auto"}):d.css({width:"auto",height:"100%"}),d.css({"margin-left":-Math.ceil(d.width()/2),"margin-top":-Math.ceil(d.height()/2)})}}}},jQuery(function(e){sowb.setupSliders=sowb.setupSlider=function(){var i=new sowb.SiteOriginSlider(e);e(".sow-slider-images").each(function(){var t=e(this),s=t.siblings(".sow-slider-pagination"),n=t.closest(".sow-slider-base"),o=n.find(".sow-slide-nav"),d=t.find(".sow-slider-image"),c=t.data("settings");d.each(function(i,t){var s=e(t),n=s.data("url");s.click(function(i){if(void 0!==n){var t=e(i.target);"A"!==t.prop("tagName")&&(i.preventDefault(),window.open(n.url,n.new_window?"_blank":"_self"))}})});var l=function(){var a=t.closest(".so-widget-fittext-wrapper");if(a.length>0&&!t.data("fitTextDone"))return void a.on("fitTextDone",function(){t.data("fitTextDone",!0),l()});if(n.show(),t.find(".sow-slider-image").each(function(){var i=e(this);e(window).on("resize panelsStretchRows",function(){i.css("height",i.find(".sow-slider-image-wrapper").outerHeight())}).resize()}),t.on({"cycle-after":function(t,s,n,o,d){var c=e(this);i.playSlideVideo(o),i.setupActiveSlide(c,o),e(o).trigger("sowSlideCycleAfter")},"cycle-before":function(t,n,o,d,c){var l=e(this);s.find("> li").removeClass("sow-active").eq(n.slideNum-1).addClass("sow-active"),i.pauseSlideVideo(o),i.setupActiveSlide(l,d,n.speed),e(d).trigger("sowSlideCycleBefore")},"cycle-initialized":function(n,d){i.playSlideVideo(e(this).find(".cycle-slide-active")),i.setupActiveSlide(t,d.slides[0]),s.find(">li").removeClass("sow-active").eq(0).addClass("sow-active"),e(this).find(".cycle-slide-active").trigger("sowSlideInitial"),d.slideCount<=1&&(s.hide(),o.hide()),e(window).resize(),setTimeout(function(){i.setupActiveSlide(t,d.slides[0]),t.find(".cycle-sentinel").empty()},200)}}).cycle({slides:"> .sow-slider-image",speed:c.speed,timeout:c.timeout,swipe:c.swipe,"swipe-fx":"scrollHorz"}),t.find("video.sow-background-element").on("loadeddata",function(){i.setupActiveSlide(t,t.find(".cycle-slide-active"))}),s.add(o).hide(),!n.hasClass("sow-slider-is-mobile")&&d.length>1){var r=!1;n.mouseenter(function(){s.add(o).clearQueue().fadeIn(150),r=!1}).mouseleave(function(){r=!0,setTimeout(function(){r&&s.add(o).clearQueue().fadeOut(150),r=!1},750)})}e(window).resize(function(){i.setupActiveSlide(t,t.find(".cycle-slide-active"))}),s.find("> li > a").click(function(i){i.preventDefault(),t.cycle("goto",e(this).data("goto"))}),o.find("> a").click(function(i){i.preventDefault(),t.cycle(e(this).data("action"))}),n.keydown(function(e){37===e.which?t.cycle("prev"):39===e.which&&t.cycle("next")})},a=t.find("img"),r=0,u=!1;a.each(function(){e(this);this.complete?r++:e(this).one("load",function(){r++,r!==a.length||u||(l(),u=!0)}).attr("src",e(this).attr("src")),r!==a.length||u||(l(),u=!0)}),0===a.length&&l()})},sowb.setupSliders(),e(sowb).on("setup_widgets",sowb.setupSliders)});
js/sow.jquery.fittext.js CHANGED
@@ -42,10 +42,13 @@
42
 
43
  jQuery( function( $ ){
44
  // Apply FitText to all Widgets Bundle FitText wrappers
45
- $('.so-widget-fittext-wrapper').find( 'h1,h2,h3,h4,h5,h6' ).each( function(){
 
 
46
  var $$ = $(this);
47
  $$.fitText( 0.85, {
48
  maxFontSize: $$.css('font-size')
49
  } );
50
  } );
 
51
  } );
42
 
43
  jQuery( function( $ ){
44
  // Apply FitText to all Widgets Bundle FitText wrappers
45
+ var fitTextWrapper = $('.so-widget-fittext-wrapper');
46
+
47
+ fitTextWrapper.find( 'h1,h2,h3,h4,h5,h6' ).each( function(){
48
  var $$ = $(this);
49
  $$.fitText( 0.85, {
50
  maxFontSize: $$.css('font-size')
51
  } );
52
  } );
53
+ fitTextWrapper.trigger( 'fitTextDone' );
54
  } );
js/sow.jquery.fittext.min.js CHANGED
@@ -1 +1 @@
1
- !function(t){t.fn.fitText=function(i,n){var e=i||1,o=t.extend({minFontSize:Number.NEGATIVE_INFINITY,maxFontSize:Number.POSITIVE_INFINITY},n);return this.each(function(){var i=t(this),n=function(){i.css("font-size",Math.max(Math.min(i.width()/(10*e),parseFloat(o.maxFontSize)),parseFloat(o.minFontSize)))};n(),t(window).on("resize.fittext orientationchange.fittext",n)})}}(jQuery),jQuery(function(t){t(".so-widget-fittext-wrapper").find("h1,h2,h3,h4,h5,h6").each(function(){var i=t(this);i.fitText(.85,{maxFontSize:i.css("font-size")})})});
1
+ !function(t){t.fn.fitText=function(i,e){var n=i||1,o=t.extend({minFontSize:Number.NEGATIVE_INFINITY,maxFontSize:Number.POSITIVE_INFINITY},e);return this.each(function(){var i=t(this),e=function(){i.css("font-size",Math.max(Math.min(i.width()/(10*n),parseFloat(o.maxFontSize)),parseFloat(o.minFontSize)))};e(),t(window).on("resize.fittext orientationchange.fittext",e)})}}(jQuery),jQuery(function(t){var i=t(".so-widget-fittext-wrapper");i.find("h1,h2,h3,h4,h5,h6").each(function(){var i=t(this);i.fitText(.85,{maxFontSize:i.css("font-size")})}),i.trigger("fitTextDone")});
lang/so-widgets-bundle.pot ADDED
@@ -0,0 +1,2562 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Copyright (C) 2017 so-widgets-bundle
2
+ # This file is distributed under the same license as the so-widgets-bundle package.
3
+ msgid ""
4
+ msgstr ""
5
+ "Project-Id-Version: so-widgets-bundle\n"
6
+ "Report-Msgid-Bugs-To: http://www.siteorigin.com\n"
7
+ "MIME-Version: 1.0\n"
8
+ "Content-Type: text/plain; charset=UTF-8\n"
9
+ "Content-Transfer-Encoding: 8bit\n"
10
+ "PO-Revision-Date: 2017-MO-DA HO:MI+ZONE\n"
11
+ "Last-Translator: SiteOrigin <support@siteorigin.com>\n"
12
+ "Language-Team: SiteOrigin <support@siteorigin.com>\n"
13
+ "X-Poedit-Basepath: ..\n"
14
+ "X-Poedit-SourceCharset: UTF-8\n"
15
+ "X-Poedit-KeywordsList: __;_e;_n:1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;esc_attr__;esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c;_n_noop:1,2;_nx_noop:3c,1,2;__ngettext_noop:1,2\n"
16
+ "X-Poedit-SearchPath-0: .\n"
17
+ "X-Poedit-SearchPathExcluded-0: *.js\n"
18
+ "Plural-Forms: nplurals=2; plural=(n != 1);\n"
19
+
20
+ #: tmp/admin/tpl/admin.php:9, tmp/so-widgets-bundle.php:196
21
+ msgid "SiteOrigin Widgets Bundle"
22
+ msgstr ""
23
+
24
+ #: tmp/admin/tpl/admin.php:12
25
+ msgid "Filter Widgets"
26
+ msgstr ""
27
+
28
+ #: tmp/admin/tpl/admin.php:17, tmp/base/inc/post-selector.php:123, tmp/widgets/google-map/google-map.php:324
29
+ msgid "All"
30
+ msgstr ""
31
+
32
+ #: tmp/admin/tpl/admin.php:18
33
+ msgid "Enabled"
34
+ msgstr ""
35
+
36
+ #: tmp/admin/tpl/admin.php:19
37
+ msgid "Disabled"
38
+ msgstr ""
39
+
40
+ #: tmp/admin/tpl/admin.php:44
41
+ msgid "Active"
42
+ msgstr ""
43
+
44
+ #: tmp/admin/tpl/admin.php:66
45
+ msgid "Activate"
46
+ msgstr ""
47
+
48
+ #: tmp/admin/tpl/admin.php:67
49
+ msgid "Deactivate"
50
+ msgstr ""
51
+
52
+ #: tmp/admin/tpl/admin.php:86, tmp/widgets/contact/contact.php:58, tmp/widgets/google-map/google-map.php:66, tmp/widgets/testimonial/testimonial.php:99
53
+ msgid "Settings"
54
+ msgstr ""
55
+
56
+ #: tmp/admin/tpl/admin.php:100
57
+ msgid "Developers - create your own widgets for the Widgets Bundle."
58
+ msgstr ""
59
+
60
+ #: tmp/admin/tpl/admin.php:101
61
+ msgid "Read More"
62
+ msgstr ""
63
+
64
+ #: tmp/admin/tpl/admin.php:119
65
+ msgid "Save"
66
+ msgstr ""
67
+
68
+ #: tmp/base/inc/actions.php:38, tmp/base/siteorigin-widget.class.php:591
69
+ msgid "Widget Preview"
70
+ msgstr ""
71
+
72
+ #: tmp/base/inc/actions.php:149
73
+ msgid "Nonce error"
74
+ msgstr ""
75
+
76
+ #: tmp/base/inc/actions.php:159
77
+ msgid "Signature error"
78
+ msgstr ""
79
+
80
+ #: tmp/base/inc/actions.php:185
81
+ msgid "Attachment error"
82
+ msgstr ""
83
+
84
+ #: tmp/base/inc/fields/base.class.php:320
85
+ msgid "Optional"
86
+ msgstr ""
87
+
88
+ #: tmp/base/inc/fields/base.class.php:323
89
+ msgid "Required"
90
+ msgstr ""
91
+
92
+ #: tmp/base/inc/fields/builder.class.php:36
93
+ msgid "This field requires: "
94
+ msgstr ""
95
+
96
+ #: tmp/base/inc/fields/builder.class.php:37, tmp/widgets/layout-slider/layout-slider.php:196
97
+ msgid "SiteOrigin Page Builder"
98
+ msgstr ""
99
+
100
+ #: tmp/base/inc/fields/error.class.php:20
101
+ msgid "$this->message"
102
+ msgstr ""
103
+
104
+ #: tmp/base/inc/fields/factory.class.php:22
105
+ msgid "This field does not have a type. Please specify a type for it to be rendered correctly."
106
+ msgstr ""
107
+
108
+ #: tmp/base/inc/fields/font.class.php:17
109
+ msgid "Use theme font"
110
+ msgstr ""
111
+
112
+ #: tmp/base/inc/fields/icon.class.php:18
113
+ msgid "Choose Icon"
114
+ msgstr ""
115
+
116
+ #: tmp/base/inc/fields/icon.class.php:21, tmp/base/inc/fields/media.class.php:111
117
+ msgid "Remove"
118
+ msgstr ""
119
+
120
+ #: tmp/base/inc/fields/image-size.class.php:14
121
+ msgid "Full"
122
+ msgstr ""
123
+
124
+ #: tmp/base/inc/fields/image-size.class.php:15
125
+ msgid "Thumbnail (Theme-defined)"
126
+ msgstr ""
127
+
128
+ #: tmp/base/inc/fields/link.class.php:20
129
+ msgid "Select Content"
130
+ msgstr ""
131
+
132
+ #: tmp/base/inc/fields/link.class.php:25
133
+ msgid "Search Content"
134
+ msgstr ""
135
+
136
+ #: tmp/base/inc/fields/link.class.php:30
137
+ msgid "Close"
138
+ msgstr ""
139
+
140
+ #: tmp/base/inc/fields/media.class.php:60
141
+ msgid "Choose Media"
142
+ msgstr ""
143
+
144
+ #: tmp/base/inc/fields/media.class.php:61
145
+ msgid "Set Media"
146
+ msgstr ""
147
+
148
+ #: tmp/base/inc/fields/media.class.php:62
149
+ msgid "Image Search"
150
+ msgstr ""
151
+
152
+ #: tmp/base/inc/fields/media.class.php:69
153
+ msgid "You need to <a href=\"%s\">upgrade</a> to WordPress 3.5 to use media fields"
154
+ msgstr ""
155
+
156
+ #: tmp/base/inc/fields/media.class.php:123
157
+ msgid "External URL"
158
+ msgstr ""
159
+
160
+ #: tmp/base/inc/fields/media.class.php:168
161
+ msgid "Would you like to import this image into your media library?"
162
+ msgstr ""
163
+
164
+ #: tmp/base/inc/fields/media.class.php:172, tmp/base/inc/fields/media.class.php:180
165
+ msgid "Search For Images"
166
+ msgstr ""
167
+
168
+ #: tmp/base/inc/fields/media.class.php:187
169
+ msgid "Related Searches: "
170
+ msgstr ""
171
+
172
+ #: tmp/base/inc/fields/media.class.php:194
173
+ msgid "Powered by %s"
174
+ msgstr ""
175
+
176
+ #: tmp/base/inc/fields/media.class.php:205
177
+ msgid "Loading Images"
178
+ msgstr ""
179
+
180
+ #: tmp/base/inc/fields/media.class.php:206
181
+ msgid "Downloading Image - Please Wait"
182
+ msgstr ""
183
+
184
+ #: tmp/base/inc/fields/media.class.php:209
185
+ msgid "Load More"
186
+ msgstr ""
187
+
188
+ #: tmp/base/inc/fields/media.class.php:228
189
+ msgid "Sponsored"
190
+ msgstr ""
191
+
192
+ #: tmp/base/inc/fields/repeater.class.php:54
193
+ msgid "Item"
194
+ msgstr ""
195
+
196
+ #: tmp/base/inc/fields/repeater.class.php:93
197
+ msgid "Add"
198
+ msgstr ""
199
+
200
+ #: tmp/base/inc/fields/widget.class.php:36
201
+ msgid "%s does not exist"
202
+ msgstr ""
203
+
204
+ #: tmp/base/inc/fields/widget.class.php:46
205
+ msgid "%s is not a SiteOrigin Widget"
206
+ msgstr ""
207
+
208
+ #: tmp/base/inc/meta-box-manager.php:35
209
+ msgid "SiteOrigin Meta Box Manager"
210
+ msgstr ""
211
+
212
+ #: tmp/base/inc/meta-box-manager.php:77
213
+ msgid "Widgets Bundle Post Meta Data"
214
+ msgstr ""
215
+
216
+ #: tmp/base/inc/post-selector.php:13
217
+ msgid "This query returns <a href=\"#\" class=\"preview-query-posts\">%s posts</a>."
218
+ msgstr ""
219
+
220
+ #: tmp/base/inc/post-selector.php:19, tmp/base/inc/post-selector.php:136
221
+ msgid "Select posts"
222
+ msgstr ""
223
+
224
+ #: tmp/base/inc/post-selector.php:29
225
+ msgid "Build posts query"
226
+ msgstr ""
227
+
228
+ #: tmp/base/inc/post-selector.php:121
229
+ msgid "Post type"
230
+ msgstr ""
231
+
232
+ #: tmp/base/inc/post-selector.php:134
233
+ msgid "Post in"
234
+ msgstr ""
235
+
236
+ #: tmp/base/inc/post-selector.php:141, tmp/widgets/taxonomy/taxonomy.php:37
237
+ msgid "Taxonomies"
238
+ msgstr ""
239
+
240
+ #: tmp/base/inc/post-selector.php:146
241
+ msgid "Date range"
242
+ msgstr ""
243
+
244
+ #: tmp/base/inc/post-selector.php:147
245
+ msgid "From"
246
+ msgstr ""
247
+
248
+ #: tmp/base/inc/post-selector.php:149
249
+ msgid "To"
250
+ msgstr ""
251
+
252
+ #: tmp/base/inc/post-selector.php:151
253
+ msgid "In the format 'yyyy-mm-dd'."
254
+ msgstr ""
255
+
256
+ #: tmp/base/inc/post-selector.php:157
257
+ msgid "Order by"
258
+ msgstr ""
259
+
260
+ #: tmp/base/inc/post-selector.php:160
261
+ msgid "No order"
262
+ msgstr ""
263
+
264
+ #: tmp/base/inc/post-selector.php:161
265
+ msgid "Post ID"
266
+ msgstr ""
267
+
268
+ #: tmp/base/inc/post-selector.php:162
269
+ msgid "Author"
270
+ msgstr ""
271
+
272
+ #: tmp/base/inc/post-selector.php:163, tmp/widgets/contact/contact.php:47, tmp/widgets/cta/cta.php:63, tmp/widgets/editor/editor.php:31, tmp/widgets/features/features.php:132, tmp/widgets/post-carousel/post-carousel.php:91, tmp/widgets/price-table/price-table.php:42, tmp/widgets/price-table/price-table.php:61, tmp/widgets/simple-masonry/simple-masonry.php:55, tmp/widgets/simple-masonry/simple-masonry.php:86, tmp/widgets/social-media-buttons/social-media-buttons.php:42, tmp/widgets/taxonomy/taxonomy.php:33, tmp/widgets/testimonial/testimonial.php:40, tmp/widgets/video/video.php:32
273
+ msgid "Title"
274
+ msgstr ""
275
+
276
+ #: tmp/base/inc/post-selector.php:164
277
+ msgid "Published date"
278
+ msgstr ""
279
+
280
+ #: tmp/base/inc/post-selector.php:165
281
+ msgid "Modified date"
282
+ msgstr ""
283
+
284
+ #: tmp/base/inc/post-selector.php:166
285
+ msgid "By parent"
286
+ msgstr ""
287
+
288
+ #: tmp/base/inc/post-selector.php:167
289
+ msgid "Random order"
290
+ msgstr ""
291
+
292
+ #: tmp/base/inc/post-selector.php:168
293
+ msgid "Comment count"
294
+ msgstr ""
295
+
296
+ #: tmp/base/inc/post-selector.php:169
297
+ msgid "Menu order"
298
+ msgstr ""
299
+
300
+ #: tmp/base/inc/post-selector.php:170
301
+ msgid "By meta value"
302
+ msgstr ""
303
+
304
+ #: tmp/base/inc/post-selector.php:171
305
+ msgid "By numeric meta value"
306
+ msgstr ""
307
+
308
+ #: tmp/base/inc/post-selector.php:172
309
+ msgid "By include order"
310
+ msgstr ""
311
+
312
+ #: tmp/base/inc/post-selector.php:183
313
+ msgid "Posts per page"
314
+ msgstr ""
315
+
316
+ #: tmp/base/inc/post-selector.php:189
317
+ msgid "Sticky posts"
318
+ msgstr ""
319
+
320
+ #: tmp/base/inc/post-selector.php:192, tmp/compat/beaver-builder/beaver-builder.php:60, tmp/widgets/google-map/google-map.php:256, tmp/widgets/image/image.php:46
321
+ msgid "Default"
322
+ msgstr ""
323
+
324
+ #: tmp/base/inc/post-selector.php:193
325
+ msgid "Ignore sticky"
326
+ msgstr ""
327
+
328
+ #: tmp/base/inc/post-selector.php:194
329
+ msgid "Exclude sticky"
330
+ msgstr ""
331
+
332
+ #: tmp/base/inc/post-selector.php:195
333
+ msgid "Only sticky"
334
+ msgstr ""
335
+
336
+ #: tmp/base/inc/post-selector.php:203
337
+ msgid "Additional"
338
+ msgstr ""
339
+
340
+ #: tmp/base/inc/post-selector.php:205
341
+ msgid "Additional query arguments. See <a href=\"http://codex.wordpress.org/Function_Reference/query_posts\" target=\"_blank\">query_posts</a>."
342
+ msgstr ""
343
+
344
+ #: tmp/base/inc/widgets/base-slider.class.php:54
345
+ msgid "Animation speed"
346
+ msgstr ""
347
+
348
+ #: tmp/base/inc/widgets/base-slider.class.php:55
349
+ msgid "Animation speed in milliseconds."
350
+ msgstr ""
351
+
352
+ #: tmp/base/inc/widgets/base-slider.class.php:61
353
+ msgid "Timeout"
354
+ msgstr ""
355
+
356
+ #: tmp/base/inc/widgets/base-slider.class.php:62
357
+ msgid "How long each frame is displayed for in milliseconds."
358
+ msgstr ""
359
+
360
+ #: tmp/base/inc/widgets/base-slider.class.php:68
361
+ msgid "Navigation color"
362
+ msgstr ""
363
+
364
+ #: tmp/base/inc/widgets/base-slider.class.php:74
365
+ msgid "Navigation style"
366
+ msgstr ""
367
+
368
+ #: tmp/base/inc/widgets/base-slider.class.php:77
369
+ msgid "Ultra thin"
370
+ msgstr ""
371
+
372
+ #: tmp/base/inc/widgets/base-slider.class.php:78
373
+ msgid "Thin"
374
+ msgstr ""
375
+
376
+ #: tmp/base/inc/widgets/base-slider.class.php:79, tmp/widgets/button/button.php:144, tmp/widgets/button/button.php:168, tmp/widgets/social-media-buttons/social-media-buttons.php:108, tmp/widgets/social-media-buttons/social-media-buttons.php:130, tmp/widgets/social-media-buttons/social-media-buttons.php:152
377
+ msgid "Medium"
378
+ msgstr ""
379
+
380
+ #: tmp/base/inc/widgets/base-slider.class.php:80
381
+ msgid "Thick"
382
+ msgstr ""
383
+
384
+ #: tmp/base/inc/widgets/base-slider.class.php:81
385
+ msgid "Rounded ultra thin"
386
+ msgstr ""
387
+
388
+ #: tmp/base/inc/widgets/base-slider.class.php:82
389
+ msgid "Rounded thin"
390
+ msgstr ""
391
+
392
+ #: tmp/base/inc/widgets/base-slider.class.php:83
393
+ msgid "Rounded medium"
394
+ msgstr ""
395
+
396
+ #: tmp/base/inc/widgets/base-slider.class.php:84
397
+ msgid "Rounded thick"
398
+ msgstr ""
399
+
400
+ #: tmp/base/inc/widgets/base-slider.class.php:90
401
+ msgid "Navigation size"
402
+ msgstr ""
403
+
404
+ #: tmp/base/inc/widgets/base-slider.class.php:96
405
+ msgid "Swipe Control"
406
+ msgstr ""
407
+
408
+ #: tmp/base/inc/widgets/base-slider.class.php:97
409
+ msgid "Allow users to swipe through frames on mobile devices."
410
+ msgstr ""
411
+
412
+ #: tmp/base/inc/widgets/base-slider.class.php:108
413
+ msgid "Video file"
414
+ msgstr ""
415
+
416
+ #: tmp/base/inc/widgets/base-slider.class.php:114, tmp/widgets/video/video.php:84
417
+ msgid "Video URL"
418
+ msgstr ""
419
+
420
+ #: tmp/base/inc/widgets/base-slider.class.php:116
421
+ msgid "An external URL of the video. Overrides video file."
422
+ msgstr ""
423
+
424
+ #: tmp/base/inc/widgets/base-slider.class.php:121
425
+ msgid "Video format"
426
+ msgstr ""
427
+
428
+ #: tmp/base/inc/widgets/base-slider.class.php:131
429
+ msgid "Maximum height"
430
+ msgstr ""
431
+
432
+ #: tmp/base/siteorigin-widget.class.php:446
433
+ msgid "Preview"
434
+ msgstr ""
435
+
436
+ #: tmp/base/siteorigin-widget.class.php:451
437
+ msgid "Help"
438
+ msgstr ""
439
+
440
+ #: tmp/base/siteorigin-widget.class.php:517
441
+ msgid "This widget has scripts and styles that need to be loaded before you can use it. Please save and reload your current page."
442
+ msgstr ""
443
+
444
+ #: tmp/base/siteorigin-widget.class.php:518
445
+ msgid "You will only need to do this once."
446
+ msgstr ""
447
+
448
+ #: tmp/base/siteorigin-widget.class.php:539
449
+ msgid "Are you sure?"
450
+ msgstr ""
451
+
452
+ #: tmp/compat/beaver-builder/beaver-builder.php:59
453
+ msgid "Clear"
454
+ msgstr ""
455
+
456
+ #: tmp/compat/beaver-builder/beaver-builder.php:61
457
+ msgid "Select Color"
458
+ msgstr ""
459
+
460
+ #: tmp/compat/beaver-builder/beaver-builder.php:62
461
+ msgid "Current Color"
462
+ msgstr ""
463
+
464
+ #: tmp/compat/builders.php:4
465
+ msgid "Beaver Builder"
466
+ msgstr ""
467
+
468
+ #: tmp/compat/builders.php:8
469
+ msgid "Elementor"
470
+ msgstr ""
471
+
472
+ #: tmp/icons/icons.php:7
473
+ msgid "Elegant Themes Line Icons"
474
+ msgstr ""
475
+
476
+ #: tmp/icons/icons.php:8
477
+ msgid "Font Awesome"
478
+ msgstr ""
479
+
480
+ #: tmp/icons/icons.php:9
481
+ msgid "Genericons"
482
+ msgstr ""
483
+
484
+ #: tmp/icons/icons.php:10
485
+ msgid "Icomoon Free"
486
+ msgstr ""
487
+
488
+ #: tmp/icons/icons.php:11
489
+ msgid "Typicons"
490
+ msgstr ""
491
+
492
+ #: tmp/icons/icons.php:12
493
+ msgid "Ionicons"
494
+ msgstr ""
495
+
496
+ #: tmp/so-widgets-bundle.php:212
497
+ msgid "A new widget!"
498
+ msgstr ""
499
+
500
+ #: tmp/so-widgets-bundle.php:423, tmp/so-widgets-bundle.php:424
501
+ msgid "SiteOrigin Widgets"
502
+ msgstr ""
503
+
504
+ #: tmp/so-widgets-bundle.php:449
505
+ msgid "%s was %s"
506
+ msgstr ""
507
+
508
+ #: tmp/so-widgets-bundle.php:451
509
+ msgid "Activated"
510
+ msgstr ""
511
+
512
+ #: tmp/so-widgets-bundle.php:451
513
+ msgid "Deactivated"
514
+ msgstr ""
515
+
516
+ #: tmp/so-widgets-bundle.php:697
517
+ msgid "Manage Widgets"
518
+ msgstr ""
519
+
520
+ #: tmp/so-widgets-bundle.php:698
521
+ msgid "Support"
522
+ msgstr ""
523
+
524
+ #: tmp/widgets/button/button.php:14
525
+ msgid "SiteOrigin Button"
526
+ msgstr ""
527
+
528
+ #: tmp/widgets/button/button.php:16
529
+ msgid "A customizable button widget."
530
+ msgstr ""
531
+
532
+ #: tmp/widgets/button/button.php:45, tmp/widgets/price-table/price-table.php:93
533
+ msgid "Button text"
534
+ msgstr ""
535
+
536
+ #: tmp/widgets/button/button.php:50, tmp/widgets/google-map/google-map.php:100, tmp/widgets/headline/headline.php:43, tmp/widgets/headline/headline.php:114, tmp/widgets/hero/hero.php:118, tmp/widgets/icon/icon.php:56, tmp/widgets/image/image.php:76, tmp/widgets/layout-slider/layout-slider.php:86, tmp/widgets/simple-masonry/simple-masonry.php:90, tmp/widgets/slider/slider.php:84
537
+ msgid "Destination URL"
538
+ msgstr ""
539
+
540
+ #: tmp/widgets/button/button.php:56, tmp/widgets/google-map/google-map.php:111, tmp/widgets/headline/headline.php:48, tmp/widgets/headline/headline.php:119, tmp/widgets/icon/icon.php:62, tmp/widgets/simple-masonry/simple-masonry.php:95, tmp/widgets/social-media-buttons/social-media-buttons.php:85, tmp/widgets/taxonomy/taxonomy.php:63
541
+ msgid "Open in a new window"
542
+ msgstr ""
543
+
544
+ #: tmp/widgets/button/button.php:61, tmp/widgets/button/button.php:65, tmp/widgets/features/features.php:75, tmp/widgets/icon/icon.php:30, tmp/widgets/price-table/price-table.php:119
545
+ msgid "Icon"
546
+ msgstr ""
547
+
548
+ #: tmp/widgets/button/button.php:70, tmp/widgets/features/features.php:85, tmp/widgets/price-table/price-table.php:123, tmp/widgets/social-media-buttons/social-media-buttons.php:70
549
+ msgid "Icon color"
550
+ msgstr ""
551
+
552
+ #: tmp/widgets/button/button.php:75
553
+ msgid "Image icon"
554
+ msgstr ""
555
+
556
+ #: tmp/widgets/button/button.php:76
557
+ msgid "Replaces the icon with your own image icon."
558
+ msgstr ""
559
+
560
+ #: tmp/widgets/button/button.php:83, tmp/widgets/social-media-buttons/social-media-buttons.php:80
561
+ msgid "Design and layout"
562
+ msgstr ""
563
+
564
+ #: tmp/widgets/button/button.php:89, tmp/widgets/contact/contact.php:351, tmp/widgets/contact/contact.php:609, tmp/widgets/google-map/google-map.php:91
565
+ msgid "Width"
566
+ msgstr ""
567
+
568
+ #: tmp/widgets/button/button.php:90
569
+ msgid "Leave blank to let the button resize according to content."
570
+ msgstr ""
571
+
572
+ #: tmp/widgets/button/button.php:95, tmp/widgets/contact/contact.php:356, tmp/widgets/social-media-buttons/social-media-buttons.php:137
573
+ msgid "Align"
574
+ msgstr ""
575
+
576
+ #: tmp/widgets/button/button.php:98, tmp/widgets/contact/contact.php:344, tmp/widgets/contact/contact.php:359, tmp/widgets/cta/cta.php:96, tmp/widgets/features/features.php:66, tmp/widgets/headline/headline.php:87, tmp/widgets/headline/headline.php:158, tmp/widgets/headline/headline.php:213, tmp/widgets/icon/icon.php:48, tmp/widgets/image/image.php:47, tmp/widgets/social-media-buttons/social-media-buttons.php:140, tmp/widgets/testimonial/testimonial.php:253
577
+ msgid "Left"
578
+ msgstr ""
579
+
580
+ #: tmp/widgets/button/button.php:99, tmp/widgets/contact/contact.php:345, tmp/widgets/contact/contact.php:360, tmp/widgets/cta/cta.php:97, tmp/widgets/features/features.php:64, tmp/widgets/headline/headline.php:88, tmp/widgets/headline/headline.php:159, tmp/widgets/headline/headline.php:214, tmp/widgets/icon/icon.php:49, tmp/widgets/image/image.php:48, tmp/widgets/social-media-buttons/social-media-buttons.php:141, tmp/widgets/testimonial/testimonial.php:254
581
+ msgid "Right"
582
+ msgstr ""
583
+
584
+ #: tmp/widgets/button/button.php:100, tmp/widgets/contact/contact.php:361, tmp/widgets/headline/headline.php:86, tmp/widgets/headline/headline.php:157, tmp/widgets/headline/headline.php:212, tmp/widgets/icon/icon.php:47, tmp/widgets/image/image.php:49, tmp/widgets/social-media-buttons/social-media-buttons.php:142
585
+ msgid "Center"
586
+ msgstr ""
587
+
588
+ #: tmp/widgets/button/button.php:101, tmp/widgets/contact/contact.php:362, tmp/widgets/headline/headline.php:89, tmp/widgets/headline/headline.php:160, tmp/widgets/social-media-buttons/social-media-buttons.php:143
589
+ msgid "Justify"
590
+ msgstr ""
591
+
592
+ #: tmp/widgets/button/button.php:107, tmp/widgets/social-media-buttons/social-media-buttons.php:90
593
+ msgid "Button theme"
594
+ msgstr ""
595
+
596
+ #: tmp/widgets/button/button.php:110, tmp/widgets/price-table/price-table.php:134, tmp/widgets/social-media-buttons/social-media-buttons.php:93
597
+ msgid "Atom"
598
+ msgstr ""
599
+
600
+ #: tmp/widgets/button/button.php:111, tmp/widgets/social-media-buttons/social-media-buttons.php:94
601
+ msgid "Flat"
602
+ msgstr ""
603
+
604
+ #: tmp/widgets/button/button.php:112, tmp/widgets/social-media-buttons/social-media-buttons.php:95
605
+ msgid "Wire"
606
+ msgstr ""
607
+
608
+ #: tmp/widgets/button/button.php:119, tmp/widgets/price-table/price-table.php:150
609
+ msgid "Button color"
610
+ msgstr ""
611
+
612
+ #: tmp/widgets/button/button.php:124, tmp/widgets/contact/contact.php:547, tmp/widgets/hero/hero.php:225, tmp/widgets/layout-slider/layout-slider.php:180
613
+ msgid "Text color"
614
+ msgstr ""
615
+
616
+ #: tmp/widgets/button/button.php:130, tmp/widgets/social-media-buttons/social-media-buttons.php:100
617
+ msgid "Use hover effects"
618
+ msgstr ""
619
+
620
+ #: tmp/widgets/button/button.php:135, tmp/widgets/contact/contact.php:324, tmp/widgets/contact/contact.php:374, tmp/widgets/features/features.php:137, tmp/widgets/features/features.php:158, tmp/widgets/features/features.php:179, tmp/widgets/headline/headline.php:74, tmp/widgets/headline/headline.php:145
621
+ msgid "Font"
622
+ msgstr ""
623
+
624
+ #: tmp/widgets/button/button.php:141, tmp/widgets/contact/contact.php:329, tmp/widgets/contact/contact.php:552
625
+ msgid "Font size"
626
+ msgstr ""
627
+
628
+ #: tmp/widgets/button/button.php:143, tmp/widgets/contact/contact.php:237, tmp/widgets/contact/contact.php:458, tmp/widgets/contact/contact.php:560, tmp/widgets/social-media-buttons/social-media-buttons.php:107
629
+ msgid "Normal"
630
+ msgstr ""
631
+
632
+ #: tmp/widgets/button/button.php:145, tmp/widgets/social-media-buttons/social-media-buttons.php:109
633
+ msgid "Large"
634
+ msgstr ""
635
+
636
+ #: tmp/widgets/button/button.php:146, tmp/widgets/social-media-buttons/social-media-buttons.php:110
637
+ msgid "Extra large"
638
+ msgstr ""
639
+
640
+ #: tmp/widgets/button/button.php:152, tmp/widgets/social-media-buttons/social-media-buttons.php:115
641
+ msgid "Rounding"
642
+ msgstr ""
643
+
644
+ #: tmp/widgets/button/button.php:155, tmp/widgets/contact/contact.php:303, tmp/widgets/contact/contact.php:416, tmp/widgets/contact/contact.php:527, tmp/widgets/contact/contact.php:598, tmp/widgets/headline/headline.php:184, tmp/widgets/social-media-buttons/social-media-buttons.php:118
645
+ msgid "None"
646
+ msgstr ""
647
+
648
+ #: tmp/widgets/button/button.php:156, tmp/widgets/social-media-buttons/social-media-buttons.php:119
649
+ msgid "Slightly rounded"
650
+ msgstr ""
651
+
652
+ #: tmp/widgets/button/button.php:157, tmp/widgets/social-media-buttons/social-media-buttons.php:120
653
+ msgid "Very rounded"
654
+ msgstr ""
655
+
656
+ #: tmp/widgets/button/button.php:158, tmp/widgets/social-media-buttons/social-media-buttons.php:121
657
+ msgid "Completely rounded"
658
+ msgstr ""
659
+
660
+ #: tmp/widgets/button/button.php:164, tmp/widgets/contact/contact.php:285, tmp/widgets/contact/contact.php:391, tmp/widgets/contact/contact.php:567, tmp/widgets/social-media-buttons/social-media-buttons.php:126, tmp/widgets/testimonial/testimonial.php:233
661
+ msgid "Padding"
662
+ msgstr ""
663
+
664
+ #: tmp/widgets/button/button.php:167, tmp/widgets/social-media-buttons/social-media-buttons.php:129, tmp/widgets/social-media-buttons/social-media-buttons.php:151
665
+ msgid "Low"
666
+ msgstr ""
667
+
668
+ #: tmp/widgets/button/button.php:169, tmp/widgets/social-media-buttons/social-media-buttons.php:131, tmp/widgets/social-media-buttons/social-media-buttons.php:153
669
+ msgid "High"
670
+ msgstr ""
671
+
672
+ #: tmp/widgets/button/button.php:170, tmp/widgets/social-media-buttons/social-media-buttons.php:132, tmp/widgets/social-media-buttons/social-media-buttons.php:154
673
+ msgid "Very high"
674
+ msgstr ""
675
+
676
+ #: tmp/widgets/button/button.php:179
677
+ msgid "Other attributes and SEO"
678
+ msgstr ""
679
+
680
+ #: tmp/widgets/button/button.php:184
681
+ msgid "Button ID"
682
+ msgstr ""
683
+
684
+ #: tmp/widgets/button/button.php:185
685
+ msgid "An ID attribute allows you to target this button in Javascript."
686
+ msgstr ""
687
+
688
+ #: tmp/widgets/button/button.php:190
689
+ msgid "Button Classes"
690
+ msgstr ""
691
+
692
+ #: tmp/widgets/button/button.php:191
693
+ msgid "Additional CSS classes added to the button link."
694
+ msgstr ""
695
+
696
+ #: tmp/widgets/button/button.php:196
697
+ msgid "Title attribute"
698
+ msgstr ""
699
+
700
+ #: tmp/widgets/button/button.php:197
701
+ msgid "Adds a title attribute to the button link."
702
+ msgstr ""
703
+
704
+ #: tmp/widgets/button/button.php:202
705
+ msgid "Onclick"
706
+ msgstr ""
707
+
708
+ #: tmp/widgets/button/button.php:203
709
+ msgid "Run this Javascript when the button is clicked. Ideal for tracking."
710
+ msgstr ""
711
+
712
+ #: tmp/widgets/button/button.php:208
713
+ msgid "Rel attribute"
714
+ msgstr ""
715
+
716
+ #: tmp/widgets/button/button.php:209
717
+ msgid "Adds a rel attribute to the button link."
718
+ msgstr ""
719
+
720
+ #: tmp/widgets/contact/contact.php:16
721
+ msgid "SiteOrigin Contact Form"
722
+ msgstr ""
723
+
724
+ #: tmp/widgets/contact/contact.php:18
725
+ msgid "Create a simple contact form for your users to get hold of you."
726
+ msgstr ""
727
+
728
+ #: tmp/widgets/contact/contact.php:48, tmp/widgets/contact/contact.php:86
729
+ msgid "Contact Us"
730
+ msgstr ""
731
+
732
+ #: tmp/widgets/contact/contact.php:53
733
+ msgid "Display title"
734
+ msgstr ""
735
+
736
+ #: tmp/widgets/contact/contact.php:63
737
+ msgid "To email address"
738
+ msgstr ""
739
+
740
+ #: tmp/widgets/contact/contact.php:64
741
+ msgid "Where contact emails will be delivered to."
742
+ msgstr ""
743
+
744
+ #: tmp/widgets/contact/contact.php:69
745
+ msgid "Default subject"
746
+ msgstr ""
747
+
748
+ #: tmp/widgets/contact/contact.php:70
749
+ msgid "Subject to use when there isn't one available."
750
+ msgstr ""
751
+
752
+ #: tmp/widgets/contact/contact.php:74
753
+ msgid "Subject prefix"
754
+ msgstr ""
755
+
756
+ #: tmp/widgets/contact/contact.php:75
757
+ msgid "Prefix added to all incoming email subjects."
758
+ msgstr ""
759
+
760
+ #: tmp/widgets/contact/contact.php:79
761
+ msgid "Success message"
762
+ msgstr ""
763
+
764
+ #: tmp/widgets/contact/contact.php:80
765
+ msgid "Message to display after message successfully sent."
766
+ msgstr ""
767
+
768
+ #: tmp/widgets/contact/contact.php:81
769
+ msgid "Thanks for contacting us. We'll get back to you shortly."
770
+ msgstr ""
771
+
772
+ #: tmp/widgets/contact/contact.php:85
773
+ msgid "Submit button text"
774
+ msgstr ""
775
+
776
+ #: tmp/widgets/contact/contact.php:90
777
+ msgid "Indicate required fields with asterisk (*)"
778
+ msgstr ""
779
+
780
+ #: tmp/widgets/contact/contact.php:101
781
+ msgid "Required field indicator message"
782
+ msgstr ""
783
+
784
+ #: tmp/widgets/contact/contact.php:102
785
+ msgid "Fields marked with * are required"
786
+ msgstr ""
787
+
788
+ #: tmp/widgets/contact/contact.php:115, tmp/widgets/contact/contact.php:370
789
+ msgid "Fields"
790
+ msgstr ""
791
+
792
+ #: tmp/widgets/contact/contact.php:116
793
+ msgid "Field"
794
+ msgstr ""
795
+
796
+ #: tmp/widgets/contact/contact.php:124
797
+ msgid "Field Type"
798
+ msgstr ""
799
+
800
+ #: tmp/widgets/contact/contact.php:126, tmp/widgets/testimonial/testimonial.php:54
801
+ msgid "Name"
802
+ msgstr ""
803
+
804
+ #: tmp/widgets/contact/contact.php:127, tmp/widgets/social-media-buttons/data/networks.php:29
805
+ msgid "Email"
806
+ msgstr ""
807
+
808
+ #: tmp/widgets/contact/contact.php:128, tmp/widgets/contact/contact.php:670
809
+ msgid "Subject"
810
+ msgstr ""
811
+
812
+ #: tmp/widgets/contact/contact.php:129, tmp/widgets/features/features.php:110, tmp/widgets/features/features.php:153, tmp/widgets/headline/headline.php:39, tmp/widgets/headline/headline.php:110, tmp/widgets/price-table/price-table.php:111, tmp/widgets/testimonial/testimonial.php:81
813
+ msgid "Text"
814
+ msgstr ""
815
+
816
+ #: tmp/widgets/contact/contact.php:130
817
+ msgid "Text Area"
818
+ msgstr ""
819
+
820
+ #: tmp/widgets/contact/contact.php:131
821
+ msgid "Dropdown Select"
822
+ msgstr ""
823
+
824
+ #: tmp/widgets/contact/contact.php:132
825
+ msgid "Checkboxes"
826
+ msgstr ""
827
+
828
+ #: tmp/widgets/contact/contact.php:133
829
+ msgid "Radio"
830
+ msgstr ""
831
+
832
+ #: tmp/widgets/contact/contact.php:143, tmp/widgets/taxonomy/taxonomy.php:42
833
+ msgid "Label"
834
+ msgstr ""
835
+
836
+ #: tmp/widgets/contact/contact.php:148
837
+ msgid "Description"
838
+ msgstr ""
839
+
840
+ #: tmp/widgets/contact/contact.php:149
841
+ msgid "This text will appear small beneath the input field."
842
+ msgstr ""
843
+
844
+ #: tmp/widgets/contact/contact.php:154
845
+ msgid "Required Field"
846
+ msgstr ""
847
+
848
+ #: tmp/widgets/contact/contact.php:158, tmp/widgets/contact/contact.php:948
849
+ msgid "Required field"
850
+ msgstr ""
851
+
852
+ #: tmp/widgets/contact/contact.php:159
853
+ msgid "Is this field required?"
854
+ msgstr ""
855
+
856
+ #: tmp/widgets/contact/contact.php:163
857
+ msgid "Missing message"
858
+ msgstr ""
859
+
860
+ #: tmp/widgets/contact/contact.php:164
861
+ msgid "Error message to display if this field is missing."
862
+ msgstr ""
863
+
864
+ #: tmp/widgets/contact/contact.php:172
865
+ msgid "Options"
866
+ msgstr ""
867
+
868
+ #: tmp/widgets/contact/contact.php:173
869
+ msgid "Option"
870
+ msgstr ""
871
+
872
+ #: tmp/widgets/contact/contact.php:178
873
+ msgid "Value"
874
+ msgstr ""
875
+
876
+ #: tmp/widgets/contact/contact.php:193
877
+ msgid "Spam Protection"
878
+ msgstr ""
879
+
880
+ #: tmp/widgets/contact/contact.php:199
881
+ msgid "reCAPTCHA"
882
+ msgstr ""
883
+
884
+ #: tmp/widgets/contact/contact.php:203
885
+ msgid "Use reCAPTCHA"
886
+ msgstr ""
887
+
888
+ #: tmp/widgets/contact/contact.php:208
889
+ msgid "reCAPTCHA Site Key"
890
+ msgstr ""
891
+
892
+ #: tmp/widgets/contact/contact.php:212
893
+ msgid "reCAPTCHA Secret Key"
894
+ msgstr ""
895
+
896
+ #: tmp/widgets/contact/contact.php:216
897
+ msgid "Theme"
898
+ msgstr ""
899
+
900
+ #: tmp/widgets/contact/contact.php:219
901
+ msgid "Light"
902
+ msgstr ""
903
+
904
+ #: tmp/widgets/contact/contact.php:220
905
+ msgid "Dark"
906
+ msgstr ""
907
+
908
+ #: tmp/widgets/contact/contact.php:225
909
+ msgid "Challenge type"
910
+ msgstr ""
911
+
912
+ #: tmp/widgets/contact/contact.php:228, tmp/widgets/image-grid/image-grid.php:52, tmp/widgets/image-grid/image-grid.php:61, tmp/widgets/price-table/price-table.php:70, tmp/widgets/simple-masonry/simple-masonry.php:66, tmp/widgets/testimonial/testimonial.php:71, tmp/widgets/testimonial/testimonial.php:187
913
+ msgid "Image"
914
+ msgstr ""
915
+
916
+ #: tmp/widgets/contact/contact.php:229
917
+ msgid "Audio"
918
+ msgstr ""
919
+
920
+ #: tmp/widgets/contact/contact.php:234, tmp/widgets/contact/contact.php:444, tmp/widgets/features/features.php:142, tmp/widgets/features/features.php:163, tmp/widgets/features/features.php:184, tmp/widgets/icon/icon.php:40
921
+ msgid "Size"
922
+ msgstr ""
923
+
924
+ #: tmp/widgets/contact/contact.php:238
925
+ msgid "Compact"
926
+ msgstr ""
927
+
928
+ #: tmp/widgets/contact/contact.php:246
929
+ msgid "Akismet"
930
+ msgstr ""
931
+
932
+ #: tmp/widgets/contact/contact.php:250
933
+ msgid "Use Akismet filtering"
934
+ msgstr ""
935
+
936
+ #: tmp/widgets/contact/contact.php:255
937
+ msgid "Spam action"
938
+ msgstr ""
939
+
940
+ #: tmp/widgets/contact/contact.php:257
941
+ msgid "Show error message"
942
+ msgstr ""
943
+
944
+ #: tmp/widgets/contact/contact.php:258
945
+ msgid "Tag as spam in subject"
946
+ msgstr ""
947
+
948
+ #: tmp/widgets/contact/contact.php:260
949
+ msgid "How to handle submissions that are identified as spam."
950
+ msgstr ""
951
+
952
+ #: tmp/widgets/contact/contact.php:270, tmp/widgets/cta/cta.php:73, tmp/widgets/testimonial/testimonial.php:182
953
+ msgid "Design"
954
+ msgstr ""
955
+
956
+ #: tmp/widgets/contact/contact.php:276
957
+ msgid "Container"
958
+ msgstr ""
959
+
960
+ #: tmp/widgets/contact/contact.php:280, tmp/widgets/contact/contact.php:509, tmp/widgets/cta/cta.php:77, tmp/widgets/hero/hero.php:112, tmp/widgets/layout-slider/layout-slider.php:80, tmp/widgets/social-media-buttons/social-media-buttons.php:74
961
+ msgid "Background color"
962
+ msgstr ""
963
+
964
+ #: tmp/widgets/contact/contact.php:290, tmp/widgets/contact/contact.php:403, tmp/widgets/contact/contact.php:519, tmp/widgets/cta/cta.php:81
965
+ msgid "Border color"
966
+ msgstr ""
967
+
968
+ #: tmp/widgets/contact/contact.php:295, tmp/widgets/contact/contact.php:408, tmp/widgets/contact/contact.php:535
969
+ msgid "Border width"
970
+ msgstr ""
971
+
972
+ #: tmp/widgets/contact/contact.php:300, tmp/widgets/contact/contact.php:524
973
+ msgid "Border style"
974
+ msgstr ""
975
+
976
+ #: tmp/widgets/contact/contact.php:304, tmp/widgets/contact/contact.php:417, tmp/widgets/contact/contact.php:599, tmp/widgets/image/image.php:63
977
+ msgid "Hidden"
978
+ msgstr ""
979
+
980
+ #: tmp/widgets/contact/contact.php:305, tmp/widgets/contact/contact.php:418, tmp/widgets/contact/contact.php:529, tmp/widgets/contact/contact.php:590, tmp/widgets/headline/headline.php:186
981
+ msgid "Dotted"
982
+ msgstr ""
983
+
984
+ #: tmp/widgets/contact/contact.php:306, tmp/widgets/contact/contact.php:419, tmp/widgets/contact/contact.php:530, tmp/widgets/contact/contact.php:591, tmp/widgets/headline/headline.php:187
985
+ msgid "Dashed"
986
+ msgstr ""
987
+
988
+ #: tmp/widgets/contact/contact.php:307, tmp/widgets/contact/contact.php:420, tmp/widgets/contact/contact.php:528, tmp/widgets/contact/contact.php:592, tmp/widgets/headline/headline.php:185
989
+ msgid "Solid"
990
+ msgstr ""
991
+
992
+ #: tmp/widgets/contact/contact.php:308, tmp/widgets/contact/contact.php:421, tmp/widgets/contact/contact.php:593, tmp/widgets/headline/headline.php:188
993
+ msgid "Double"
994
+ msgstr ""
995
+
996
+ #: tmp/widgets/contact/contact.php:309, tmp/widgets/contact/contact.php:422, tmp/widgets/contact/contact.php:594, tmp/widgets/headline/headline.php:189
997
+ msgid "Groove"
998
+ msgstr ""
999
+
1000
+ #: tmp/widgets/contact/contact.php:310, tmp/widgets/contact/contact.php:423, tmp/widgets/contact/contact.php:595, tmp/widgets/headline/headline.php:190
1001
+ msgid "Ridge"
1002
+ msgstr ""
1003
+
1004
+ #: tmp/widgets/contact/contact.php:311, tmp/widgets/contact/contact.php:424, tmp/widgets/contact/contact.php:596, tmp/widgets/headline/headline.php:191
1005
+ msgid "Inset"
1006
+ msgstr ""
1007
+
1008
+ #: tmp/widgets/contact/contact.php:312, tmp/widgets/contact/contact.php:425, tmp/widgets/contact/contact.php:597, tmp/widgets/headline/headline.php:192
1009
+ msgid "Outset"
1010
+ msgstr ""
1011
+
1012
+ #: tmp/widgets/contact/contact.php:320
1013
+ msgid "Field labels"
1014
+ msgstr ""
1015
+
1016
+ #: tmp/widgets/contact/contact.php:334, tmp/widgets/contact/contact.php:449, tmp/widgets/contact/contact.php:604, tmp/widgets/features/features.php:146, tmp/widgets/features/features.php:167, tmp/widgets/features/features.php:188, tmp/widgets/google-map/google-map.php:334, tmp/widgets/headline/headline.php:66, tmp/widgets/headline/headline.php:137, tmp/widgets/headline/headline.php:197, tmp/widgets/icon/icon.php:35, tmp/widgets/taxonomy/taxonomy.php:54
1017
+ msgid "Color"
1018
+ msgstr ""
1019
+
1020
+ #: tmp/widgets/contact/contact.php:339
1021
+ msgid "Position"
1022
+ msgstr ""
1023
+
1024
+ #: tmp/widgets/contact/contact.php:342, tmp/widgets/image/image.php:64
1025
+ msgid "Above"
1026
+ msgstr ""
1027
+
1028
+ #: tmp/widgets/contact/contact.php:343, tmp/widgets/image/image.php:65
1029
+ msgid "Below"
1030
+ msgstr ""
1031
+
1032
+ #: tmp/widgets/contact/contact.php:346
1033
+ msgid "Inside"
1034
+ msgstr ""
1035
+
1036
+ #: tmp/widgets/contact/contact.php:379, tmp/widgets/headline/headline.php:79, tmp/widgets/headline/headline.php:150
1037
+ msgid "Font Size"
1038
+ msgstr ""
1039
+
1040
+ #: tmp/widgets/contact/contact.php:383, tmp/widgets/testimonial/testimonial.php:225
1041
+ msgid "Text Color"
1042
+ msgstr ""
1043
+
1044
+ #: tmp/widgets/contact/contact.php:387, tmp/widgets/social-media-buttons/social-media-buttons.php:148
1045
+ msgid "Margin"
1046
+ msgstr ""
1047
+
1048
+ #: tmp/widgets/contact/contact.php:395, tmp/widgets/google-map/google-map.php:96, tmp/widgets/hero/hero.php:155, tmp/widgets/layout-slider/layout-slider.php:123
1049
+ msgid "Height"
1050
+ msgstr ""
1051
+
1052
+ #: tmp/widgets/contact/contact.php:399, tmp/widgets/hero/hero.php:84, tmp/widgets/layout-slider/layout-slider.php:52
1053
+ msgid "Background"
1054
+ msgstr ""
1055
+
1056
+ #: tmp/widgets/contact/contact.php:413
1057
+ msgid " Border style"
1058
+ msgstr ""
1059
+
1060
+ #: tmp/widgets/contact/contact.php:430, tmp/widgets/contact/contact.php:540
1061
+ msgid "Border rounding"
1062
+ msgstr ""
1063
+
1064
+ #: tmp/widgets/contact/contact.php:440
1065
+ msgid "Field descriptions"
1066
+ msgstr ""
1067
+
1068
+ #: tmp/widgets/contact/contact.php:454, tmp/widgets/contact/contact.php:587, tmp/widgets/google-map/google-map.php:287, tmp/widgets/headline/headline.php:181
1069
+ msgid "Style"
1070
+ msgstr ""
1071
+
1072
+ #: tmp/widgets/contact/contact.php:457
1073
+ msgid "Italic"
1074
+ msgstr ""
1075
+
1076
+ #: tmp/widgets/contact/contact.php:466
1077
+ msgid "Error messages"
1078
+ msgstr ""
1079
+
1080
+ #: tmp/widgets/contact/contact.php:470
1081
+ msgid "Error background color"
1082
+ msgstr ""
1083
+
1084
+ #: tmp/widgets/contact/contact.php:475
1085
+ msgid "Error border color"
1086
+ msgstr ""
1087
+
1088
+ #: tmp/widgets/contact/contact.php:480
1089
+ msgid "Error text color"
1090
+ msgstr ""
1091
+
1092
+ #: tmp/widgets/contact/contact.php:485
1093
+ msgid "Error padding"
1094
+ msgstr ""
1095
+
1096
+ #: tmp/widgets/contact/contact.php:490
1097
+ msgid "Error margin"
1098
+ msgstr ""
1099
+
1100
+ #: tmp/widgets/contact/contact.php:498
1101
+ msgid "Submit button"
1102
+ msgstr ""
1103
+
1104
+ #: tmp/widgets/contact/contact.php:502
1105
+ msgid "Style submit button"
1106
+ msgstr ""
1107
+
1108
+ #: tmp/widgets/contact/contact.php:503
1109
+ msgid "Style the button or leave it with default theme styling."
1110
+ msgstr ""
1111
+
1112
+ #: tmp/widgets/contact/contact.php:514
1113
+ msgid "Gradient intensity"
1114
+ msgstr ""
1115
+
1116
+ #: tmp/widgets/contact/contact.php:557
1117
+ msgid "Font weight"
1118
+ msgstr ""
1119
+
1120
+ #: tmp/widgets/contact/contact.php:561
1121
+ msgid "Semi-bold"
1122
+ msgstr ""
1123
+
1124
+ #: tmp/widgets/contact/contact.php:562
1125
+ msgid "Bold"
1126
+ msgstr ""
1127
+
1128
+ #: tmp/widgets/contact/contact.php:572
1129
+ msgid "Inset highlight"
1130
+ msgstr ""
1131
+
1132
+ #: tmp/widgets/contact/contact.php:573
1133
+ msgid "The white highlight at the bottom of the button"
1134
+ msgstr ""
1135
+
1136
+ #: tmp/widgets/contact/contact.php:583
1137
+ msgid "Input focus"
1138
+ msgstr ""
1139
+
1140
+ #: tmp/widgets/contact/contact.php:630
1141
+ msgid "Get more form fields for the Contact Form Widget in %s"
1142
+ msgstr ""
1143
+
1144
+ #: tmp/widgets/contact/contact.php:631
1145
+ msgid "SiteOrigin Premium"
1146
+ msgstr ""
1147
+
1148
+ #: tmp/widgets/contact/contact.php:654
1149
+ msgid "Your Name"
1150
+ msgstr ""
1151
+
1152
+ #: tmp/widgets/contact/contact.php:657
1153
+ msgid "Please enter your name"
1154
+ msgstr ""
1155
+
1156
+ #: tmp/widgets/contact/contact.php:662
1157
+ msgid "Your Email"
1158
+ msgstr ""
1159
+
1160
+ #: tmp/widgets/contact/contact.php:665
1161
+ msgid "Please enter a valid email address"
1162
+ msgstr ""
1163
+
1164
+ #: tmp/widgets/contact/contact.php:673
1165
+ msgid "Please enter a subject"
1166
+ msgstr ""
1167
+
1168
+ #: tmp/widgets/contact/contact.php:678
1169
+ msgid "Message"
1170
+ msgstr ""
1171
+
1172
+ #: tmp/widgets/contact/contact.php:681
1173
+ msgid "Please write something"
1174
+ msgstr ""
1175
+
1176
+ #: tmp/widgets/contact/contact.php:960
1177
+ msgid "Invalid email address."
1178
+ msgstr ""
1179
+
1180
+ #: tmp/widgets/contact/contact.php:1034
1181
+ msgid "Error sending email, please try again later."
1182
+ msgstr ""
1183
+
1184
+ #: tmp/widgets/contact/contact.php:1052
1185
+ msgid "A valid email is required"
1186
+ msgstr ""
1187
+
1188
+ #: tmp/widgets/contact/contact.php:1054
1189
+ msgid "The email address is invalid"
1190
+ msgstr ""
1191
+
1192
+ #: tmp/widgets/contact/contact.php:1058
1193
+ msgid "Missing subject"
1194
+ msgstr ""
1195
+
1196
+ #: tmp/widgets/contact/contact.php:1092
1197
+ msgid "Error validating your Captcha response."
1198
+ msgstr ""
1199
+
1200
+ #: tmp/widgets/contact/contact.php:1124
1201
+ msgid "Unfortunately our system identified your message as spam."
1202
+ msgstr ""
1203
+
1204
+ #: tmp/widgets/cta/cta.php:15
1205
+ msgid "SiteOrigin Call-to-action"
1206
+ msgstr ""
1207
+
1208
+ #: tmp/widgets/cta/cta.php:17
1209
+ msgid "A simple call-to-action widget with massive power."
1210
+ msgstr ""
1211
+
1212
+ #: tmp/widgets/cta/cta.php:68, tmp/widgets/price-table/price-table.php:65
1213
+ msgid "Subtitle"
1214
+ msgstr ""
1215
+
1216
+ #: tmp/widgets/cta/cta.php:85
1217
+ msgid "Title color"
1218
+ msgstr ""
1219
+
1220
+ #: tmp/widgets/cta/cta.php:89
1221
+ msgid "Subtitle color"
1222
+ msgstr ""
1223
+
1224
+ #: tmp/widgets/cta/cta.php:93
1225
+ msgid "Button align"
1226
+ msgstr ""
1227
+
1228
+ #: tmp/widgets/cta/cta.php:106, tmp/widgets/hero/hero.php:64, tmp/widgets/hero/hero.php:76
1229
+ msgid "Button"
1230
+ msgstr ""
1231
+
1232
+ #: tmp/widgets/editor/editor.php:16
1233
+ msgid "SiteOrigin Editor"
1234
+ msgstr ""
1235
+
1236
+ #: tmp/widgets/editor/editor.php:18
1237
+ msgid "A rich-text, text editor."
1238
+ msgstr ""
1239
+
1240
+ #: tmp/widgets/editor/editor.php:40
1241
+ msgid "Automatically add paragraphs"
1242
+ msgstr ""
1243
+
1244
+ #: tmp/widgets/features/features.php:13
1245
+ msgid "SiteOrigin Features"
1246
+ msgstr ""
1247
+
1248
+ #: tmp/widgets/features/features.php:15
1249
+ msgid "Displays a list of features."
1250
+ msgstr ""
1251
+
1252
+ #: tmp/widgets/features/features.php:42, tmp/widgets/price-table/price-table.php:101
1253
+ msgid "Features"
1254
+ msgstr ""
1255
+
1256
+ #: tmp/widgets/features/features.php:43, tmp/widgets/price-table/price-table.php:102
1257
+ msgid "Feature"
1258
+ msgstr ""
1259
+
1260
+ #: tmp/widgets/features/features.php:55
1261
+ msgid "Container color"
1262
+ msgstr ""
1263
+
1264
+ #: tmp/widgets/features/features.php:61
1265
+ msgid "Container Position"
1266
+ msgstr ""
1267
+
1268
+ #: tmp/widgets/features/features.php:63
1269
+ msgid "Top"
1270
+ msgstr ""
1271
+
1272
+ #: tmp/widgets/features/features.php:65
1273
+ msgid "Bottom"
1274
+ msgstr ""
1275
+
1276
+ #: tmp/widgets/features/features.php:80, tmp/widgets/social-media-buttons/social-media-buttons.php:66
1277
+ msgid "Icon title"
1278
+ msgstr ""
1279
+
1280
+ #: tmp/widgets/features/features.php:92
1281
+ msgid "Icon image"
1282
+ msgstr ""
1283
+
1284
+ #: tmp/widgets/features/features.php:93
1285
+ msgid "Use your own icon image."
1286
+ msgstr ""
1287
+
1288
+ #: tmp/widgets/features/features.php:98
1289
+ msgid "Icon image size"
1290
+ msgstr ""
1291
+
1292
+ #: tmp/widgets/features/features.php:105, tmp/widgets/image/image.php:55
1293
+ msgid "Title text"
1294
+ msgstr ""
1295
+
1296
+ #: tmp/widgets/features/features.php:115
1297
+ msgid "More link text"
1298
+ msgstr ""
1299
+
1300
+ #: tmp/widgets/features/features.php:120
1301
+ msgid "More link URL"
1302
+ msgstr ""
1303
+
1304
+ #: tmp/widgets/features/features.php:127
1305
+ msgid "Font Design"
1306
+ msgstr ""
1307
+
1308
+ #: tmp/widgets/features/features.php:174
1309
+ msgid "More Link"
1310
+ msgstr ""
1311
+
1312
+ #: tmp/widgets/features/features.php:197
1313
+ msgid "Container shape"
1314
+ msgstr ""
1315
+
1316
+ #: tmp/widgets/features/features.php:204
1317
+ msgid "Container size"
1318
+ msgstr ""
1319
+
1320
+ #: tmp/widgets/features/features.php:210, tmp/widgets/social-media-buttons/social-media-buttons.php:105
1321
+ msgid "Icon size"
1322
+ msgstr ""
1323
+
1324
+ #: tmp/widgets/features/features.php:216
1325
+ msgid "Features per row"
1326
+ msgstr ""
1327
+
1328
+ #: tmp/widgets/features/features.php:222
1329
+ msgid "Responsive layout"
1330
+ msgstr ""
1331
+
1332
+ #: tmp/widgets/features/features.php:228
1333
+ msgid "Link feature title to more URL"
1334
+ msgstr ""
1335
+
1336
+ #: tmp/widgets/features/features.php:234
1337
+ msgid "Link icon to more URL"
1338
+ msgstr ""
1339
+
1340
+ #: tmp/widgets/features/features.php:240
1341
+ msgid "Open more URL in a new window"
1342
+ msgstr ""
1343
+
1344
+ #: tmp/widgets/google-map/google-map.php:16
1345
+ msgid "SiteOrigin Google Maps"
1346
+ msgstr ""
1347
+
1348
+ #: tmp/widgets/google-map/google-map.php:18
1349
+ msgid "A Google Maps widget."
1350
+ msgstr ""
1351
+
1352
+ #: tmp/widgets/google-map/google-map.php:44
1353
+ msgid "Map center"
1354
+ msgstr ""
1355
+
1356
+ #: tmp/widgets/google-map/google-map.php:45
1357
+ msgid "The name of a place, town, city, or even a country. Can be an exact address too."
1358
+ msgstr ""
1359
+
1360
+ #: tmp/widgets/google-map/google-map.php:49, tmp/widgets/google-map/google-map.php:54, tmp/widgets/google-map/google-map.php:415
1361
+ msgid "API key"
1362
+ msgstr ""
1363
+
1364
+ #: tmp/widgets/google-map/google-map.php:57
1365
+ msgid "Enter your %sAPI key%s. Your map may not function correctly without one."
1366
+ msgstr ""
1367
+
1368
+ #: tmp/widgets/google-map/google-map.php:68
1369
+ msgid "Set map display options."
1370
+ msgstr ""
1371
+
1372
+ #: tmp/widgets/google-map/google-map.php:73
1373
+ msgid "Map type"
1374
+ msgstr ""
1375
+
1376
+ #: tmp/widgets/google-map/google-map.php:79
1377
+ msgid "Interactive"
1378
+ msgstr ""
1379
+
1380
+ #: tmp/widgets/google-map/google-map.php:80
1381
+ msgid "Static image"
1382
+ msgstr ""
1383
+
1384
+ #: tmp/widgets/google-map/google-map.php:120
1385
+ msgid "Zoom level"
1386
+ msgstr ""
1387
+
1388
+ #: tmp/widgets/google-map/google-map.php:121
1389
+ msgid "A value from 0 (the world) to 21 (street level)."
1390
+ msgstr ""
1391
+
1392
+ #: tmp/widgets/google-map/google-map.php:135
1393
+ msgid "Scroll to zoom"
1394
+ msgstr ""
1395
+
1396
+ #: tmp/widgets/google-map/google-map.php:136
1397
+ msgid "Allow scrolling over the map to zoom in or out."
1398
+ msgstr ""
1399
+
1400
+ #: tmp/widgets/google-map/google-map.php:145
1401
+ msgid "Draggable"
1402
+ msgstr ""
1403
+
1404
+ #: tmp/widgets/google-map/google-map.php:146
1405
+ msgid "Allow dragging the map to move it around."
1406
+ msgstr ""
1407
+
1408
+ #: tmp/widgets/google-map/google-map.php:155
1409
+ msgid "Disable default UI"
1410
+ msgstr ""
1411
+
1412
+ #: tmp/widgets/google-map/google-map.php:156
1413
+ msgid "Hides the default Google Maps controls."
1414
+ msgstr ""
1415
+
1416
+ #: tmp/widgets/google-map/google-map.php:165
1417
+ msgid "Keep map centered"
1418
+ msgstr ""
1419
+
1420
+ #: tmp/widgets/google-map/google-map.php:166
1421
+ msgid "Keeps the map centered when it's container is resized."
1422
+ msgstr ""
1423
+
1424
+ #: tmp/widgets/google-map/google-map.php:172
1425
+ msgid "Markers"
1426
+ msgstr ""
1427
+
1428
+ #: tmp/widgets/google-map/google-map.php:174
1429
+ msgid "Use markers to identify points of interest on the map."
1430
+ msgstr ""
1431
+
1432
+ #: tmp/widgets/google-map/google-map.php:179
1433
+ msgid "Show marker at map center"
1434
+ msgstr ""
1435
+
1436
+ #: tmp/widgets/google-map/google-map.php:184
1437
+ msgid "Marker icon"
1438
+ msgstr ""
1439
+
1440
+ #: tmp/widgets/google-map/google-map.php:185
1441
+ msgid "Replaces the default map marker with your own image."
1442
+ msgstr ""
1443
+
1444
+ #: tmp/widgets/google-map/google-map.php:194
1445
+ msgid "Draggable markers"
1446
+ msgstr ""
1447
+
1448
+ #: tmp/widgets/google-map/google-map.php:198
1449
+ msgid "Marker positions"
1450
+ msgstr ""
1451
+
1452
+ #: tmp/widgets/google-map/google-map.php:199
1453
+ msgid "Please be aware that adding more than 10 markers may cause a slight delay before they appear, due to Google Geocoding API rate limits."
1454
+ msgstr ""
1455
+
1456
+ #: tmp/widgets/google-map/google-map.php:200
1457
+ msgid "Marker"
1458
+ msgstr ""
1459
+
1460
+ #: tmp/widgets/google-map/google-map.php:210
1461
+ msgid "Place"
1462
+ msgstr ""
1463
+
1464
+ #: tmp/widgets/google-map/google-map.php:215
1465
+ msgid "Info Window Content"
1466
+ msgstr ""
1467
+
1468
+ #: tmp/widgets/google-map/google-map.php:219
1469
+ msgid "Info Window max width"
1470
+ msgstr ""
1471
+
1472
+ #: tmp/widgets/google-map/google-map.php:225
1473
+ msgid "When should Info Windows be displayed?"
1474
+ msgstr ""
1475
+
1476
+ #: tmp/widgets/google-map/google-map.php:228
1477
+ msgid "Click"
1478
+ msgstr ""
1479
+
1480
+ #: tmp/widgets/google-map/google-map.php:229
1481
+ msgid "Mouse over"
1482
+ msgstr ""
1483
+
1484
+ #: tmp/widgets/google-map/google-map.php:230
1485
+ msgid "Always"
1486
+ msgstr ""
1487
+
1488
+ #: tmp/widgets/google-map/google-map.php:235
1489
+ msgid "Allow multiple simultaneous Info Windows?"
1490
+ msgstr ""
1491
+
1492
+ #: tmp/widgets/google-map/google-map.php:243
1493
+ msgid "Styles"
1494
+ msgstr ""
1495
+
1496
+ #: tmp/widgets/google-map/google-map.php:245
1497
+ msgid "Apply custom colors to map features, or hide them completely."
1498
+ msgstr ""
1499
+
1500
+ #: tmp/widgets/google-map/google-map.php:250
1501
+ msgid "Map styles"
1502
+ msgstr ""
1503
+
1504
+ #: tmp/widgets/google-map/google-map.php:257
1505
+ msgid "Custom"
1506
+ msgstr ""
1507
+
1508
+ #: tmp/widgets/google-map/google-map.php:258
1509
+ msgid "Predefined Styles"
1510
+ msgstr ""
1511
+
1512
+ #: tmp/widgets/google-map/google-map.php:267
1513
+ msgid "Styled map name"
1514
+ msgstr ""
1515
+
1516
+ #: tmp/widgets/google-map/google-map.php:277
1517
+ msgid "Raw JSON styles"
1518
+ msgstr ""
1519
+
1520
+ #: tmp/widgets/google-map/google-map.php:278
1521
+ msgid "Copy and paste predefined styles here from <a href=\"http://snazzymaps.com/\" target=\"_blank\">Snazzy Maps</a>."
1522
+ msgstr ""
1523
+
1524
+ #: tmp/widgets/google-map/google-map.php:286
1525
+ msgid "Custom map styles"
1526
+ msgstr ""
1527
+
1528
+ #: tmp/widgets/google-map/google-map.php:297
1529
+ msgid "Select map feature to style"
1530
+ msgstr ""
1531
+
1532
+ #: tmp/widgets/google-map/google-map.php:299
1533
+ msgid "Water"
1534
+ msgstr ""
1535
+
1536
+ #: tmp/widgets/google-map/google-map.php:300
1537
+ msgid "Highways"
1538
+ msgstr ""
1539
+
1540
+ #: tmp/widgets/google-map/google-map.php:301
1541
+ msgid "Arterial roads"
1542
+ msgstr ""
1543
+
1544
+ #: tmp/widgets/google-map/google-map.php:302
1545
+ msgid "Local roads"
1546
+ msgstr ""
1547
+
1548
+ #: tmp/widgets/google-map/google-map.php:303
1549
+ msgid "Transit lines"
1550
+ msgstr ""
1551
+
1552
+ #: tmp/widgets/google-map/google-map.php:304
1553
+ msgid "Transit stations"
1554
+ msgstr ""
1555
+
1556
+ #: tmp/widgets/google-map/google-map.php:305
1557
+ msgid "Man-made landscape"
1558
+ msgstr ""
1559
+
1560
+ #: tmp/widgets/google-map/google-map.php:306
1561
+ msgid "Natural landscape landcover"
1562
+ msgstr ""
1563
+
1564
+ #: tmp/widgets/google-map/google-map.php:307
1565
+ msgid "Natural landscape terrain"
1566
+ msgstr ""
1567
+
1568
+ #: tmp/widgets/google-map/google-map.php:308
1569
+ msgid "Point of interest - Attractions"
1570
+ msgstr ""
1571
+
1572
+ #: tmp/widgets/google-map/google-map.php:309
1573
+ msgid "Point of interest - Business"
1574
+ msgstr ""
1575
+
1576
+ #: tmp/widgets/google-map/google-map.php:310
1577
+ msgid "Point of interest - Government"
1578
+ msgstr ""
1579
+
1580
+ #: tmp/widgets/google-map/google-map.php:311
1581
+ msgid "Point of interest - Medical"
1582
+ msgstr ""
1583
+
1584
+ #: tmp/widgets/google-map/google-map.php:312
1585
+ msgid "Point of interest - Parks"
1586
+ msgstr ""
1587
+
1588
+ #: tmp/widgets/google-map/google-map.php:313
1589
+ msgid "Point of interest - Places of worship"
1590
+ msgstr ""
1591
+
1592
+ #: tmp/widgets/google-map/google-map.php:314
1593
+ msgid "Point of interest - Schools"
1594
+ msgstr ""
1595
+
1596
+ #: tmp/widgets/google-map/google-map.php:315
1597
+ msgid "Point of interest - Sports complexes"
1598
+ msgstr ""
1599
+
1600
+ #: tmp/widgets/google-map/google-map.php:320
1601
+ msgid "Select element type to style"
1602
+ msgstr ""
1603
+
1604
+ #: tmp/widgets/google-map/google-map.php:322
1605
+ msgid "Geometry"
1606
+ msgstr ""
1607
+
1608
+ #: tmp/widgets/google-map/google-map.php:323
1609
+ msgid "Labels"
1610
+ msgstr ""
1611
+
1612
+ #: tmp/widgets/google-map/google-map.php:330
1613
+ msgid "Visible"
1614
+ msgstr ""
1615
+
1616
+ #: tmp/widgets/google-map/google-map.php:342
1617
+ msgid "Directions"
1618
+ msgstr ""
1619
+
1620
+ #: tmp/widgets/google-map/google-map.php:348
1621
+ msgid "Display a route on your map, with waypoints between your starting point and destination."
1622
+ msgstr ""
1623
+
1624
+ #: tmp/widgets/google-map/google-map.php:352
1625
+ msgid "Starting point"
1626
+ msgstr ""
1627
+
1628
+ #: tmp/widgets/google-map/google-map.php:356
1629
+ msgid "Destination"
1630
+ msgstr ""
1631
+
1632
+ #: tmp/widgets/google-map/google-map.php:360
1633
+ msgid "Travel mode"
1634
+ msgstr ""
1635
+
1636
+ #: tmp/widgets/google-map/google-map.php:363
1637
+ msgid "Driving"
1638
+ msgstr ""
1639
+
1640
+ #: tmp/widgets/google-map/google-map.php:364
1641
+ msgid "Walking"
1642
+ msgstr ""
1643
+
1644
+ #: tmp/widgets/google-map/google-map.php:365
1645
+ msgid "Bicycling"
1646
+ msgstr ""
1647
+
1648
+ #: tmp/widgets/google-map/google-map.php:366
1649
+ msgid "Transit"
1650
+ msgstr ""
1651
+
1652
+ #: tmp/widgets/google-map/google-map.php:371
1653
+ msgid "Avoid highways"
1654
+ msgstr ""
1655
+
1656
+ #: tmp/widgets/google-map/google-map.php:375
1657
+ msgid "Avoid tolls"
1658
+ msgstr ""
1659
+
1660
+ #: tmp/widgets/google-map/google-map.php:379
1661
+ msgid "Waypoints"
1662
+ msgstr ""
1663
+
1664
+ #: tmp/widgets/google-map/google-map.php:380
1665
+ msgid "Waypoint"
1666
+ msgstr ""
1667
+
1668
+ #: tmp/widgets/google-map/google-map.php:390, tmp/widgets/testimonial/testimonial.php:65
1669
+ msgid "Location"
1670
+ msgstr ""
1671
+
1672
+ #: tmp/widgets/google-map/google-map.php:395
1673
+ msgid "Stopover"
1674
+ msgstr ""
1675
+
1676
+ #: tmp/widgets/google-map/google-map.php:396
1677
+ msgid "Whether or not this is a stop on the route or just a route preference."
1678
+ msgstr ""
1679
+
1680
+ #: tmp/widgets/google-map/google-map.php:402
1681
+ msgid "Optimize waypoints"
1682
+ msgstr ""
1683
+
1684
+ #: tmp/widgets/google-map/google-map.php:404
1685
+ msgid "Allow the Google Maps service to reorder waypoints for the shortest travelling distance."
1686
+ msgstr ""
1687
+
1688
+ #: tmp/widgets/google-map/google-map.php:418
1689
+ msgid "Enter your %sAPI key%s. Your map won't function correctly without one."
1690
+ msgstr ""
1691
+
1692
+ #: tmp/widgets/google-map/google-map.php:544
1693
+ msgid "Custom Map"
1694
+ msgstr ""
1695
+
1696
+ #: tmp/widgets/headline/headline.php:16
1697
+ msgid "SiteOrigin Headline"
1698
+ msgstr ""
1699
+
1700
+ #: tmp/widgets/headline/headline.php:18
1701
+ msgid "A headline widget."
1702
+ msgstr ""
1703
+
1704
+ #: tmp/widgets/headline/headline.php:34, tmp/widgets/headline/headline.php:234
1705
+ msgid "Headline"
1706
+ msgstr ""
1707
+
1708
+ #: tmp/widgets/headline/headline.php:52, tmp/widgets/headline/headline.php:123
1709
+ msgid "HTML Tag"
1710
+ msgstr ""
1711
+
1712
+ #: tmp/widgets/headline/headline.php:55, tmp/widgets/headline/headline.php:126
1713
+ msgid "H1"
1714
+ msgstr ""
1715
+
1716
+ #: tmp/widgets/headline/headline.php:56, tmp/widgets/headline/headline.php:127
1717
+ msgid "H2"
1718
+ msgstr ""
1719
+
1720
+ #: tmp/widgets/headline/headline.php:57, tmp/widgets/headline/headline.php:128
1721
+ msgid "H3"
1722
+ msgstr ""
1723
+
1724
+ #: tmp/widgets/headline/headline.php:58, tmp/widgets/headline/headline.php:129
1725
+ msgid "H4"
1726
+ msgstr ""
1727
+
1728
+ #: tmp/widgets/headline/headline.php:59, tmp/widgets/headline/headline.php:130
1729
+ msgid "H5"
1730
+ msgstr ""
1731
+
1732
+ #: tmp/widgets/headline/headline.php:60, tmp/widgets/headline/headline.php:131
1733
+ msgid "H6"
1734
+ msgstr ""
1735
+
1736
+ #: tmp/widgets/headline/headline.php:61, tmp/widgets/headline/headline.php:132
1737
+ msgid "Paragraph"
1738
+ msgstr ""
1739
+
1740
+ #: tmp/widgets/headline/headline.php:70, tmp/widgets/headline/headline.php:141
1741
+ msgid "Hover Color"
1742
+ msgstr ""
1743
+
1744
+ #: tmp/widgets/headline/headline.php:83, tmp/widgets/headline/headline.php:154, tmp/widgets/headline/headline.php:209, tmp/widgets/icon/icon.php:45
1745
+ msgid "Alignment"
1746
+ msgstr ""
1747
+
1748
+ #: tmp/widgets/headline/headline.php:94, tmp/widgets/headline/headline.php:165
1749
+ msgid "Line Height"
1750
+ msgstr ""
1751
+
1752
+ #: tmp/widgets/headline/headline.php:98, tmp/widgets/headline/headline.php:169, tmp/widgets/headline/headline.php:224
1753
+ msgid "Top and Bottom Margin"
1754
+ msgstr ""
1755
+
1756
+ #: tmp/widgets/headline/headline.php:105
1757
+ msgid "Sub headline"
1758
+ msgstr ""
1759
+
1760
+ #: tmp/widgets/headline/headline.php:176, tmp/widgets/headline/headline.php:235
1761
+ msgid "Divider"
1762
+ msgstr ""
1763
+
1764
+ #: tmp/widgets/headline/headline.php:202
1765
+ msgid "Thickness"
1766
+ msgstr ""
1767
+
1768
+ #: tmp/widgets/headline/headline.php:219
1769
+ msgid "Divider Width"
1770
+ msgstr ""
1771
+
1772
+ #: tmp/widgets/headline/headline.php:232
1773
+ msgid "Element Order"
1774
+ msgstr ""
1775
+
1776
+ #: tmp/widgets/headline/headline.php:236
1777
+ msgid "Sub Headline"
1778
+ msgstr ""
1779
+
1780
+ #: tmp/widgets/headline/headline.php:243, tmp/widgets/hero/hero.php:204
1781
+ msgid "Use FitText"
1782
+ msgstr ""
1783
+
1784
+ #: tmp/widgets/headline/headline.php:244, tmp/widgets/hero/hero.php:205
1785
+ msgid "Dynamically adjust your heading font size based on screen size."
1786
+ msgstr ""
1787
+
1788
+ #: tmp/widgets/hero/hero.php:18
1789
+ msgid "SiteOrigin Hero"
1790
+ msgstr ""
1791
+
1792
+ #: tmp/widgets/hero/hero.php:20
1793
+ msgid "A big hero image with a few settings to make it your own."
1794
+ msgstr ""
1795
+
1796
+ #: tmp/widgets/hero/hero.php:46
1797
+ msgid "Hero frames"
1798
+ msgstr ""
1799
+
1800
+ #: tmp/widgets/hero/hero.php:47, tmp/widgets/layout-slider/layout-slider.php:35, tmp/widgets/slider/slider.php:34
1801
+ msgid "Frame"
1802
+ msgstr ""
1803
+
1804
+ #: tmp/widgets/hero/hero.php:58, tmp/widgets/layout-slider/layout-slider.php:47
1805
+ msgid "Content"
1806
+ msgstr ""
1807
+
1808
+ #: tmp/widgets/hero/hero.php:63, tmp/widgets/taxonomy/taxonomy.php:49
1809
+ msgid "Buttons"
1810
+ msgstr ""
1811
+
1812
+ #: tmp/widgets/hero/hero.php:65
1813
+ msgid "Add [buttons] shortcode to the content to insert these buttons."
1814
+ msgstr ""
1815
+
1816
+ #: tmp/widgets/hero/hero.php:88, tmp/widgets/layout-slider/layout-slider.php:56, tmp/widgets/slider/slider.php:56
1817
+ msgid "Background image"
1818
+ msgstr ""
1819
+
1820
+ #: tmp/widgets/hero/hero.php:95, tmp/widgets/layout-slider/layout-slider.php:63, tmp/widgets/slider/slider.php:67
1821
+ msgid "Background image type"
1822
+ msgstr ""
1823
+
1824
+ #: tmp/widgets/hero/hero.php:97, tmp/widgets/layout-slider/layout-slider.php:65, tmp/widgets/slider/slider.php:69
1825
+ msgid "Cover"
1826
+ msgstr ""
1827
+
1828
+ #: tmp/widgets/hero/hero.php:103, tmp/widgets/layout-slider/layout-slider.php:71
1829
+ msgid "Background image opacity"
1830
+ msgstr ""
1831
+
1832
+ #: tmp/widgets/hero/hero.php:123, tmp/widgets/layout-slider/layout-slider.php:91
1833
+ msgid "Open URL in a new window"
1834
+ msgstr ""
1835
+
1836
+ #: tmp/widgets/hero/hero.php:128, tmp/widgets/layout-slider/layout-slider.php:96, tmp/widgets/slider/slider.php:43
1837
+ msgid "Video"
1838
+ msgstr ""
1839
+
1840
+ #: tmp/widgets/hero/hero.php:129, tmp/widgets/layout-slider/layout-slider.php:97, tmp/widgets/slider/slider.php:44
1841
+ msgid "Background videos"
1842
+ msgstr ""
1843
+
1844
+ #: tmp/widgets/hero/hero.php:144, tmp/widgets/layout-slider/layout-slider.php:112
1845
+ msgid "Slider Controls"
1846
+ msgstr ""
1847
+
1848
+ #: tmp/widgets/hero/hero.php:150, tmp/widgets/layout-slider/layout-slider.php:118
1849
+ msgid "Design and Layout"
1850
+ msgstr ""
1851
+
1852
+ #: tmp/widgets/hero/hero.php:161, tmp/widgets/layout-slider/layout-slider.php:129
1853
+ msgid "Top and bottom padding"
1854
+ msgstr ""
1855
+
1856
+ #: tmp/widgets/hero/hero.php:167, tmp/widgets/layout-slider/layout-slider.php:135
1857
+ msgid "Extra top padding"
1858
+ msgstr ""
1859
+
1860
+ #: tmp/widgets/hero/hero.php:168, tmp/widgets/layout-slider/layout-slider.php:136
1861
+ msgid "Additional padding added to the top of the slider"
1862
+ msgstr ""
1863
+
1864
+ #: tmp/widgets/hero/hero.php:174, tmp/widgets/layout-slider/layout-slider.php:142
1865
+ msgid "Side padding"
1866
+ msgstr ""
1867
+
1868
+ #: tmp/widgets/hero/hero.php:180, tmp/widgets/layout-slider/layout-slider.php:148
1869
+ msgid "Maximum container width"
1870
+ msgstr ""
1871
+
1872
+ #: tmp/widgets/hero/hero.php:186
1873
+ msgid "Heading font"
1874
+ msgstr ""
1875
+
1876
+ #: tmp/widgets/hero/hero.php:192, tmp/widgets/layout-slider/layout-slider.php:154
1877
+ msgid "Heading color"
1878
+ msgstr ""
1879
+
1880
+ #: tmp/widgets/hero/hero.php:198, tmp/widgets/layout-slider/layout-slider.php:160
1881
+ msgid "Heading size"
1882
+ msgstr ""
1883
+
1884
+ #: tmp/widgets/hero/hero.php:211, tmp/widgets/layout-slider/layout-slider.php:166
1885
+ msgid "Heading shadow intensity"
1886
+ msgstr ""
1887
+
1888
+ #: tmp/widgets/hero/hero.php:219, tmp/widgets/layout-slider/layout-slider.php:174
1889
+ msgid "Text size"
1890
+ msgstr ""
1891
+
1892
+ #: tmp/widgets/icon/icon.php:16
1893
+ msgid "SiteOrigin Icon"
1894
+ msgstr ""
1895
+
1896
+ #: tmp/widgets/icon/icon.php:18
1897
+ msgid "An icon widget."
1898
+ msgstr ""
1899
+
1900
+ #: tmp/widgets/image-grid/image-grid.php:15
1901
+ msgid "SiteOrigin Image Grid"
1902
+ msgstr ""
1903
+
1904
+ #: tmp/widgets/image-grid/image-grid.php:17
1905
+ msgid "Display a grid of images."
1906
+ msgstr ""
1907
+
1908
+ #: tmp/widgets/image-grid/image-grid.php:51, tmp/widgets/simple-masonry/simple-masonry.php:59
1909
+ msgid "Images"
1910
+ msgstr ""
1911
+
1912
+ #: tmp/widgets/image-grid/image-grid.php:65, tmp/widgets/price-table/price-table.php:75
1913
+ msgid "Image title"
1914
+ msgstr ""
1915
+
1916
+ #: tmp/widgets/image-grid/image-grid.php:69, tmp/widgets/social-media-buttons/social-media-buttons.php:62, tmp/widgets/testimonial/testimonial.php:87
1917
+ msgid "URL"
1918
+ msgstr ""
1919
+
1920
+ #: tmp/widgets/image-grid/image-grid.php:76
1921
+ msgid "Display"
1922
+ msgstr ""
1923
+
1924
+ #: tmp/widgets/image-grid/image-grid.php:79, tmp/widgets/image/image.php:38, tmp/widgets/testimonial/testimonial.php:130, tmp/widgets/testimonial/testimonial.php:159, tmp/widgets/testimonial/testimonial.php:201
1925
+ msgid "Image size"
1926
+ msgstr ""
1927
+
1928
+ #: tmp/widgets/image-grid/image-grid.php:85
1929
+ msgid "Maximum image height"
1930
+ msgstr ""
1931
+
1932
+ #: tmp/widgets/image-grid/image-grid.php:90
1933
+ msgid "Maximum image width"
1934
+ msgstr ""
1935
+
1936
+ #: tmp/widgets/image-grid/image-grid.php:95
1937
+ msgid "Spacing"
1938
+ msgstr ""
1939
+
1940
+ #: tmp/widgets/image-grid/image-grid.php:96
1941
+ msgid "Amount of spacing between images."
1942
+ msgstr ""
1943
+
1944
+ #: tmp/widgets/image/image.php:13
1945
+ msgid "SiteOrigin Image"
1946
+ msgstr ""
1947
+
1948
+ #: tmp/widgets/image/image.php:15
1949
+ msgid "A simple image widget with massive power."
1950
+ msgstr ""
1951
+
1952
+ #: tmp/widgets/image/image.php:31
1953
+ msgid "Image file"
1954
+ msgstr ""
1955
+
1956
+ #: tmp/widgets/image/image.php:43
1957
+ msgid "Image alignment"
1958
+ msgstr ""
1959
+
1960
+ #: tmp/widgets/image/image.php:60
1961
+ msgid "Title position"
1962
+ msgstr ""
1963
+
1964
+ #: tmp/widgets/image/image.php:71
1965
+ msgid "Alt text"
1966
+ msgstr ""
1967
+
1968
+ #: tmp/widgets/image/image.php:81, tmp/widgets/slider/slider.php:89
1969
+ msgid "Open in new window"
1970
+ msgstr ""
1971
+
1972
+ #: tmp/widgets/image/image.php:87
1973
+ msgid "Bound"
1974
+ msgstr ""
1975
+
1976
+ #: tmp/widgets/image/image.php:88
1977
+ msgid "Make sure the image doesn't extend beyond its container."
1978
+ msgstr ""
1979
+
1980
+ #: tmp/widgets/image/image.php:93
1981
+ msgid "Full Width"
1982
+ msgstr ""
1983
+
1984
+ #: tmp/widgets/image/image.php:94
1985
+ msgid "Resize image to fit its container."
1986
+ msgstr ""
1987
+
1988
+ #: tmp/widgets/layout-slider/layout-slider.php:18
1989
+ msgid "SiteOrigin Layout Slider"
1990
+ msgstr ""
1991
+
1992
+ #: tmp/widgets/layout-slider/layout-slider.php:20
1993
+ msgid "A slider that allows you to create responsive columnized content for each slide."
1994
+ msgstr ""
1995
+
1996
+ #: tmp/widgets/layout-slider/layout-slider.php:34, tmp/widgets/slider/slider.php:33
1997
+ msgid "Slider frames"
1998
+ msgstr ""
1999
+
2000
+ #: tmp/widgets/layout-slider/layout-slider.php:195
2001
+ msgid "This widget requires: "
2002
+ msgstr ""
2003
+
2004
+ #: tmp/widgets/layout-slider/layout-slider.php:261
2005
+ msgid "This widget requires Page Builder."
2006
+ msgstr ""
2007
+
2008
+ #: tmp/widgets/post-carousel/post-carousel.php:44
2009
+ msgid "SiteOrigin Post Carousel"
2010
+ msgstr ""
2011
+
2012
+ #: tmp/widgets/post-carousel/post-carousel.php:46
2013
+ msgid "Display your posts as a carousel."
2014
+ msgstr ""
2015
+
2016
+ #: tmp/widgets/post-carousel/post-carousel.php:96
2017
+ msgid "Featured Image size"
2018
+ msgstr ""
2019
+
2020
+ #: tmp/widgets/post-carousel/post-carousel.php:102
2021
+ msgid "Posts query"
2022
+ msgstr ""
2023
+
2024
+ #: tmp/widgets/post-carousel/tpl/base.php:10, tmp/widgets/post-carousel/tpl/base.php:18
2025
+ msgid "Next"
2026
+ msgstr ""
2027
+
2028
+ #: tmp/widgets/post-carousel/tpl/base.php:11, tmp/widgets/post-carousel/tpl/base.php:16
2029
+ msgid "Previous"
2030
+ msgstr ""
2031
+
2032
+ #: tmp/widgets/price-table/price-table.php:13
2033
+ msgid "SiteOrigin Price Table"
2034
+ msgstr ""
2035
+
2036
+ #: tmp/widgets/price-table/price-table.php:15
2037
+ msgid "A simple Price Table."
2038
+ msgstr ""
2039
+
2040
+ #: tmp/widgets/price-table/price-table.php:47
2041
+ msgid "Columns"
2042
+ msgstr ""
2043
+
2044
+ #: tmp/widgets/price-table/price-table.php:48
2045
+ msgid "Column"
2046
+ msgstr ""
2047
+
2048
+ #: tmp/widgets/price-table/price-table.php:57
2049
+ msgid "Featured"
2050
+ msgstr ""
2051
+
2052
+ #: tmp/widgets/price-table/price-table.php:80
2053
+ msgid "Image alt text"
2054
+ msgstr ""
2055
+
2056
+ #: tmp/widgets/price-table/price-table.php:85
2057
+ msgid "Price"
2058
+ msgstr ""
2059
+
2060
+ #: tmp/widgets/price-table/price-table.php:89
2061
+ msgid "Per"
2062
+ msgstr ""
2063
+
2064
+ #: tmp/widgets/price-table/price-table.php:97
2065
+ msgid "Button URL"
2066
+ msgstr ""
2067
+
2068
+ #: tmp/widgets/price-table/price-table.php:115
2069
+ msgid "Hover text"
2070
+ msgstr ""
2071
+
2072
+ #: tmp/widgets/price-table/price-table.php:132
2073
+ msgid "Price table theme"
2074
+ msgstr ""
2075
+
2076
+ #: tmp/widgets/price-table/price-table.php:140
2077
+ msgid "Header color"
2078
+ msgstr ""
2079
+
2080
+ #: tmp/widgets/price-table/price-table.php:145
2081
+ msgid "Featured header color"
2082
+ msgstr ""
2083
+
2084
+ #: tmp/widgets/price-table/price-table.php:155
2085
+ msgid "Featured button color"
2086
+ msgstr ""
2087
+
2088
+ #: tmp/widgets/price-table/price-table.php:160
2089
+ msgid "Open Button URL in a new window"
2090
+ msgstr ""
2091
+
2092
+ #: tmp/widgets/simple-masonry/simple-masonry.php:14
2093
+ msgid "SiteOrigin Simple Masonry"
2094
+ msgstr ""
2095
+
2096
+ #: tmp/widgets/simple-masonry/simple-masonry.php:16
2097
+ msgid "A simple masonry layout widget."
2098
+ msgstr ""
2099
+
2100
+ #: tmp/widgets/simple-masonry/simple-masonry.php:70
2101
+ msgid "Column span"
2102
+ msgstr ""
2103
+
2104
+ #: tmp/widgets/simple-masonry/simple-masonry.php:71
2105
+ msgid "Number of columns this item should span. (Limited to number of columns selected in Layout section below.)"
2106
+ msgstr ""
2107
+
2108
+ #: tmp/widgets/simple-masonry/simple-masonry.php:78
2109
+ msgid "Row span"
2110
+ msgstr ""
2111
+
2112
+ #: tmp/widgets/simple-masonry/simple-masonry.php:79
2113
+ msgid "Number of rows this item should span. (Limited to number of columns selected in Layout section below.)"
2114
+ msgstr ""
2115
+
2116
+ #: tmp/widgets/simple-masonry/simple-masonry.php:101
2117
+ msgid "Desktop Layout"
2118
+ msgstr ""
2119
+
2120
+ #: tmp/widgets/simple-masonry/simple-masonry.php:105, tmp/widgets/simple-masonry/simple-masonry.php:136, tmp/widgets/simple-masonry/simple-masonry.php:167
2121
+ msgid "Number of columns"
2122
+ msgstr ""
2123
+
2124
+ #: tmp/widgets/simple-masonry/simple-masonry.php:112, tmp/widgets/simple-masonry/simple-masonry.php:143, tmp/widgets/simple-masonry/simple-masonry.php:174
2125
+ msgid "Row height"
2126
+ msgstr ""
2127
+
2128
+ #: tmp/widgets/simple-masonry/simple-masonry.php:113, tmp/widgets/simple-masonry/simple-masonry.php:144, tmp/widgets/simple-masonry/simple-masonry.php:175
2129
+ msgid "Leave blank to match calculated column width."
2130
+ msgstr ""
2131
+
2132
+ #: tmp/widgets/simple-masonry/simple-masonry.php:118, tmp/widgets/simple-masonry/simple-masonry.php:149, tmp/widgets/simple-masonry/simple-masonry.php:180
2133
+ msgid "Gutter"
2134
+ msgstr ""
2135
+
2136
+ #: tmp/widgets/simple-masonry/simple-masonry.php:119, tmp/widgets/simple-masonry/simple-masonry.php:150, tmp/widgets/simple-masonry/simple-masonry.php:181
2137
+ msgid "Space between masonry items."
2138
+ msgstr ""
2139
+
2140
+ #: tmp/widgets/simple-masonry/simple-masonry.php:126
2141
+ msgid "Tablet Layout"
2142
+ msgstr ""
2143
+
2144
+ #: tmp/widgets/simple-masonry/simple-masonry.php:131, tmp/widgets/simple-masonry/simple-masonry.php:162
2145
+ msgid "Break point"
2146
+ msgstr ""
2147
+
2148
+ #: tmp/widgets/simple-masonry/simple-masonry.php:157
2149
+ msgid "Mobile Layout"
2150
+ msgstr ""
2151
+
2152
+ #: tmp/widgets/slider/slider.php:15
2153
+ msgid "SiteOrigin Slider"
2154
+ msgstr ""
2155
+
2156
+ #: tmp/widgets/slider/slider.php:17
2157
+ msgid "A responsive slider widget that supports images and video."
2158
+ msgstr ""
2159
+
2160
+ #: tmp/widgets/slider/slider.php:62
2161
+ msgid "Background Color"
2162
+ msgstr ""
2163
+
2164
+ #: tmp/widgets/slider/slider.php:70
2165
+ msgid "Tile"
2166
+ msgstr ""
2167
+
2168
+ #: tmp/widgets/slider/slider.php:78
2169
+ msgid "Foreground image"
2170
+ msgstr ""
2171
+
2172
+ #: tmp/widgets/slider/slider.php:96
2173
+ msgid "Controls"
2174
+ msgstr ""
2175
+
2176
+ #: tmp/widgets/social-media-buttons/data/networks.php:5
2177
+ msgid "Facebook"
2178
+ msgstr ""
2179
+
2180
+ #: tmp/widgets/social-media-buttons/data/networks.php:11
2181
+ msgid "Twitter"
2182
+ msgstr ""
2183
+
2184
+ #: tmp/widgets/social-media-buttons/data/networks.php:17
2185
+ msgid "Google+"
2186
+ msgstr ""
2187
+
2188
+ #: tmp/widgets/social-media-buttons/data/networks.php:23
2189
+ msgid "RSS"
2190
+ msgstr ""
2191
+
2192
+ #: tmp/widgets/social-media-buttons/data/networks.php:35
2193
+ msgid "Snapchat"
2194
+ msgstr ""
2195
+
2196
+ #: tmp/widgets/social-media-buttons/data/networks.php:41
2197
+ msgid "LinkedIn"
2198
+ msgstr ""
2199
+
2200
+ #: tmp/widgets/social-media-buttons/data/networks.php:47
2201
+ msgid "Pinterest"
2202
+ msgstr ""
2203
+
2204
+ #: tmp/widgets/social-media-buttons/data/networks.php:53
2205
+ msgid "Tumblr"
2206
+ msgstr ""
2207
+
2208
+ #: tmp/widgets/social-media-buttons/data/networks.php:59
2209
+ msgid "Instagram"
2210
+ msgstr ""
2211
+
2212
+ #: tmp/widgets/social-media-buttons/data/networks.php:65
2213
+ msgid "VK"
2214
+ msgstr ""
2215
+
2216
+ #: tmp/widgets/social-media-buttons/data/networks.php:71
2217
+ msgid "Flickr"
2218
+ msgstr ""
2219
+
2220
+ #: tmp/widgets/social-media-buttons/data/networks.php:77
2221
+ msgid "Vine"
2222
+ msgstr ""
2223
+
2224
+ #: tmp/widgets/social-media-buttons/data/networks.php:86
2225
+ msgid "500px"
2226
+ msgstr ""
2227
+
2228
+ #: tmp/widgets/social-media-buttons/data/networks.php:92
2229
+ msgid "Behance"
2230
+ msgstr ""
2231
+
2232
+ #: tmp/widgets/social-media-buttons/data/networks.php:98
2233
+ msgid "Bitbucket"
2234
+ msgstr ""
2235
+
2236
+ #: tmp/widgets/social-media-buttons/data/networks.php:104
2237
+ msgid "Codepen"
2238
+ msgstr ""
2239
+
2240
+ #: tmp/widgets/social-media-buttons/data/networks.php:110
2241
+ msgid "Delicious"
2242
+ msgstr ""
2243
+
2244
+ #: tmp/widgets/social-media-buttons/data/networks.php:116
2245
+ msgid "deviantArt"
2246
+ msgstr ""
2247
+
2248
+ #: tmp/widgets/social-media-buttons/data/networks.php:122
2249
+ msgid "Dribbble"
2250
+ msgstr ""
2251
+
2252
+ #: tmp/widgets/social-media-buttons/data/networks.php:128
2253
+ msgid "Dropbox"
2254
+ msgstr ""
2255
+
2256
+ #: tmp/widgets/social-media-buttons/data/networks.php:134
2257
+ msgid "Foursquare"
2258
+ msgstr ""
2259
+
2260
+ #: tmp/widgets/social-media-buttons/data/networks.php:140
2261
+ msgid "Github"
2262
+ msgstr ""
2263
+
2264
+ #: tmp/widgets/social-media-buttons/data/networks.php:146
2265
+ msgid "Gratipay"
2266
+ msgstr ""
2267
+
2268
+ #: tmp/widgets/social-media-buttons/data/networks.php:152
2269
+ msgid "Hacker News"
2270
+ msgstr ""
2271
+
2272
+ #: tmp/widgets/social-media-buttons/data/networks.php:158
2273
+ msgid "JSFiddle"
2274
+ msgstr ""
2275
+
2276
+ #: tmp/widgets/social-media-buttons/data/networks.php:164
2277
+ msgid "Last.fm"
2278
+ msgstr ""
2279
+
2280
+ #: tmp/widgets/social-media-buttons/data/networks.php:170
2281
+ msgid "Reddit"
2282
+ msgstr ""
2283
+
2284
+ #: tmp/widgets/social-media-buttons/data/networks.php:176
2285
+ msgid "Slack"
2286
+ msgstr ""
2287
+
2288
+ #: tmp/widgets/social-media-buttons/data/networks.php:182
2289
+ msgid "Slideshare"
2290
+ msgstr ""
2291
+
2292
+ #: tmp/widgets/social-media-buttons/data/networks.php:188
2293
+ msgid "Soundcloud"
2294
+ msgstr ""
2295
+
2296
+ #: tmp/widgets/social-media-buttons/data/networks.php:194
2297
+ msgid "Spotify"
2298
+ msgstr ""
2299
+
2300
+ #: tmp/widgets/social-media-buttons/data/networks.php:200
2301
+ msgid "Stack Exchange"
2302
+ msgstr ""
2303
+
2304
+ #: tmp/widgets/social-media-buttons/data/networks.php:206
2305
+ msgid "Stack Overflow"
2306
+ msgstr ""
2307
+
2308
+ #: tmp/widgets/social-media-buttons/data/networks.php:212
2309
+ msgid "Steam"
2310
+ msgstr ""
2311
+
2312
+ #: tmp/widgets/social-media-buttons/data/networks.php:218
2313
+ msgid "StumbleUpon"
2314
+ msgstr ""
2315
+
2316
+ #: tmp/widgets/social-media-buttons/data/networks.php:224
2317
+ msgid "Trello"
2318
+ msgstr ""
2319
+
2320
+ #: tmp/widgets/social-media-buttons/data/networks.php:230
2321
+ msgid "TripAdvisor"
2322
+ msgstr ""
2323
+
2324
+ #: tmp/widgets/social-media-buttons/data/networks.php:236
2325
+ msgid "Twitch"
2326
+ msgstr ""
2327
+
2328
+ #: tmp/widgets/social-media-buttons/data/networks.php:242
2329
+ msgid "Vimeo"
2330
+ msgstr ""
2331
+
2332
+ #: tmp/widgets/social-media-buttons/data/networks.php:248
2333
+ msgid "WordPress"
2334
+ msgstr ""
2335
+
2336
+ #: tmp/widgets/social-media-buttons/data/networks.php:254
2337
+ msgid "Xing"
2338
+ msgstr ""
2339
+
2340
+ #: tmp/widgets/social-media-buttons/data/networks.php:260
2341
+ msgid "Yahoo"
2342
+ msgstr ""
2343
+
2344
+ #: tmp/widgets/social-media-buttons/data/networks.php:266
2345
+ msgid "Yelp"
2346
+ msgstr ""
2347
+
2348
+ #: tmp/widgets/social-media-buttons/data/networks.php:272
2349
+ msgid "YouTube"
2350
+ msgstr ""
2351
+
2352
+ #: tmp/widgets/social-media-buttons/social-media-buttons.php:18
2353
+ msgid "SiteOrigin Social Media Buttons"
2354
+ msgstr ""
2355
+
2356
+ #: tmp/widgets/social-media-buttons/social-media-buttons.php:20
2357
+ msgid "A social media buttons widget."
2358
+ msgstr ""
2359
+
2360
+ #: tmp/widgets/social-media-buttons/social-media-buttons.php:46
2361
+ msgid "Networks"
2362
+ msgstr ""
2363
+
2364
+ #: tmp/widgets/social-media-buttons/social-media-buttons.php:47
2365
+ msgid "Network"
2366
+ msgstr ""
2367
+
2368
+ #: tmp/widgets/social-media-buttons/social-media-buttons.php:57
2369
+ msgid "Select network"
2370
+ msgstr ""
2371
+
2372
+ #: tmp/widgets/social-media-buttons/tpl/default.php:11
2373
+ msgid "%s on %s"
2374
+ msgstr ""
2375
+
2376
+ #: tmp/widgets/taxonomy/taxonomy.php:16
2377
+ msgid "SiteOrigin Taxonomy"
2378
+ msgstr ""
2379
+
2380
+ #: tmp/widgets/taxonomy/taxonomy.php:18
2381
+ msgid "A taxonomy widget."
2382
+ msgstr ""
2383
+
2384
+ #: tmp/widgets/taxonomy/taxonomy.php:46
2385
+ msgid "Display as"
2386
+ msgstr ""
2387
+
2388
+ #: tmp/widgets/taxonomy/taxonomy.php:48
2389
+ msgid "Links"
2390
+ msgstr ""
2391
+
2392
+ #: tmp/widgets/taxonomy/taxonomy.php:58
2393
+ msgid "Hover color"
2394
+ msgstr ""
2395
+
2396
+ #: tmp/widgets/testimonial/testimonial.php:14
2397
+ msgid "SiteOrigin Testimonials"
2398
+ msgstr ""
2399
+
2400
+ #: tmp/widgets/testimonial/testimonial.php:16
2401
+ msgid "Share your product/service testimonials in a variety of different ways."
2402
+ msgstr ""
2403
+
2404
+ #: tmp/widgets/testimonial/testimonial.php:44
2405
+ msgid "Testimonials"
2406
+ msgstr ""
2407
+
2408
+ #: tmp/widgets/testimonial/testimonial.php:45
2409
+ msgid "Testimonial"
2410
+ msgstr ""
2411
+
2412
+ #: tmp/widgets/testimonial/testimonial.php:55
2413
+ msgid "The author of the testimonial"
2414
+ msgstr ""
2415
+
2416
+ #: tmp/widgets/testimonial/testimonial.php:60
2417
+ msgid "Link name"
2418
+ msgstr ""
2419
+
2420
+ #: tmp/widgets/testimonial/testimonial.php:66
2421
+ msgid "Their location or company name"
2422
+ msgstr ""
2423
+
2424
+ #: tmp/widgets/testimonial/testimonial.php:76
2425
+ msgid "Link image"
2426
+ msgstr ""
2427
+
2428
+ #: tmp/widgets/testimonial/testimonial.php:82
2429
+ msgid "What your customer had to say"
2430
+ msgstr ""
2431
+
2432
+ #: tmp/widgets/testimonial/testimonial.php:92
2433
+ msgid "Open In New Window"
2434
+ msgstr ""
2435
+
2436
+ #: tmp/widgets/testimonial/testimonial.php:104, tmp/widgets/testimonial/testimonial.php:122, tmp/widgets/testimonial/testimonial.php:151
2437
+ msgid "Testimonials per row"
2438
+ msgstr ""
2439
+
2440
+ #: tmp/widgets/testimonial/testimonial.php:113
2441
+ msgid "Responsive"
2442
+ msgstr ""
2443
+
2444
+ #: tmp/widgets/testimonial/testimonial.php:118
2445
+ msgid "Tablet"
2446
+ msgstr ""
2447
+
2448
+ #: tmp/widgets/testimonial/testimonial.php:138, tmp/widgets/testimonial/testimonial.php:167
2449
+ msgid "Resolution"
2450
+ msgstr ""
2451
+
2452
+ #: tmp/widgets/testimonial/testimonial.php:139, tmp/widgets/testimonial/testimonial.php:168
2453
+ msgid "The resolution to treat as a tablet resolution."
2454
+ msgstr ""
2455
+
2456
+ #: tmp/widgets/testimonial/testimonial.php:147
2457
+ msgid "Mobile Phone"
2458
+ msgstr ""
2459
+
2460
+ #: tmp/widgets/testimonial/testimonial.php:191
2461
+ msgid "Testimonial image shape"
2462
+ msgstr ""
2463
+
2464
+ #: tmp/widgets/testimonial/testimonial.php:193
2465
+ msgid "Square"
2466
+ msgstr ""
2467
+
2468
+ #: tmp/widgets/testimonial/testimonial.php:194
2469
+ msgid "Round"
2470
+ msgstr ""
2471
+
2472
+ #: tmp/widgets/testimonial/testimonial.php:212
2473
+ msgid "Colors"
2474
+ msgstr ""
2475
+
2476
+ #: tmp/widgets/testimonial/testimonial.php:216
2477
+ msgid "Widget Background"
2478
+ msgstr ""
2479
+
2480
+ #: tmp/widgets/testimonial/testimonial.php:220
2481
+ msgid "Text Background"
2482
+ msgstr ""
2483
+
2484
+ #: tmp/widgets/testimonial/testimonial.php:242
2485
+ msgid "Testimonial Radius"
2486
+ msgstr ""
2487
+
2488
+ #: tmp/widgets/testimonial/testimonial.php:251
2489
+ msgid "User position"
2490
+ msgstr ""
2491
+
2492
+ #: tmp/widgets/testimonial/testimonial.php:255
2493
+ msgid "Middle"
2494
+ msgstr ""
2495
+
2496
+ #: tmp/widgets/testimonial/testimonial.php:262
2497
+ msgid "Testimonial layout"
2498
+ msgstr ""
2499
+
2500
+ #: tmp/widgets/testimonial/testimonial.php:264
2501
+ msgid "Side by side"
2502
+ msgstr ""
2503
+
2504
+ #: tmp/widgets/testimonial/testimonial.php:265
2505
+ msgid "Text above user"
2506
+ msgstr ""
2507
+
2508
+ #: tmp/widgets/testimonial/testimonial.php:266
2509
+ msgid "Text below user"
2510
+ msgstr ""
2511
+
2512
+ #: tmp/widgets/video/video.php:17
2513
+ msgid "SiteOrigin Video Player"
2514
+ msgstr ""
2515
+
2516
+ #: tmp/widgets/video/video.php:19
2517
+ msgid "A video player widget."
2518
+ msgstr ""
2519
+
2520
+ #: tmp/widgets/video/video.php:36
2521
+ msgid "Video location"
2522
+ msgstr ""
2523
+
2524
+ #: tmp/widgets/video/video.php:39
2525
+ msgid "Self hosted"
2526
+ msgstr ""
2527
+
2528
+ #: tmp/widgets/video/video.php:40
2529
+ msgid "Externally hosted"
2530
+ msgstr ""
2531
+
2532
+ #: tmp/widgets/video/video.php:52
2533
+ msgid "Video File"
2534
+ msgstr ""
2535
+
2536
+ #: tmp/widgets/video/video.php:56
2537
+ msgid "Sources"
2538
+ msgstr ""
2539
+
2540
+ #: tmp/widgets/video/video.php:61
2541
+ msgid "Select video"
2542
+ msgstr ""
2543
+
2544
+ #: tmp/widgets/video/video.php:73
2545
+ msgid "Select cover image"
2546
+ msgstr ""
2547
+
2548
+ #: tmp/widgets/video/video.php:95
2549
+ msgid "Video Playback"
2550
+ msgstr ""
2551
+
2552
+ #: tmp/widgets/video/video.php:100
2553
+ msgid "Autoplay"
2554
+ msgstr ""
2555
+
2556
+ #: tmp/widgets/video/video.php:105
2557
+ msgid "Use oEmbed"
2558
+ msgstr ""
2559
+
2560
+ #: tmp/widgets/video/video.php:106
2561
+ msgid "Always use the embedded video rather than the MediaElement player."
2562
+ msgstr ""
languages/siteorigin-widgets.po DELETED
@@ -1,736 +0,0 @@
1
- msgid ""
2
- msgstr ""
3
- "Project-Id-Version: SiteOrigin Widgets Bundle\n"
4
- "POT-Creation-Date: 2014-09-10 09:34+0200\n"
5
- "PO-Revision-Date: 2014-09-10 09:35+0200\n"
6
- "Last-Translator: \n"
7
- "Language-Team: \n"
8
- "MIME-Version: 1.0\n"
9
- "Content-Type: text/plain; charset=UTF-8\n"
10
- "Content-Transfer-Encoding: 8bit\n"
11
- "X-Generator: Poedit 1.6.7\n"
12
- "X-Poedit-Basepath: ..\n"
13
- "X-Poedit-SourceCharset: UTF-8\n"
14
- "X-Poedit-KeywordsList: __;_e;_n:1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;esc_attr__;"
15
- "esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c;_n_noop:1,2;"
16
- "_nx_noop:3c,1,2;__ngettext_noop:1,2\n"
17
- "X-Poedit-SearchPath-0: .\n"
18
-
19
- #: base/inc/post-selector.php:40
20
- msgid "Post Type"
21
- msgstr ""
22
-
23
- #: base/inc/post-selector.php:42
24
- msgid "All"
25
- msgstr ""
26
-
27
- #: base/inc/post-selector.php:53
28
- msgid "Post In"
29
- msgstr ""
30
-
31
- #: base/inc/post-selector.php:55 base/siteorigin-widget.class.php:225
32
- msgid "Select Posts"
33
- msgstr ""
34
-
35
- #: base/inc/post-selector.php:60
36
- msgid "Taxonomies"
37
- msgstr ""
38
-
39
- #: base/inc/post-selector.php:67
40
- msgid "Order By"
41
- msgstr ""
42
-
43
- #: base/inc/post-selector.php:70
44
- msgid "No Order"
45
- msgstr ""
46
-
47
- #: base/inc/post-selector.php:71
48
- msgid "Post ID"
49
- msgstr ""
50
-
51
- #: base/inc/post-selector.php:72
52
- msgid "Author"
53
- msgstr ""
54
-
55
- #: base/inc/post-selector.php:73 widgets/so-cta-widget/inc/cta-widget.php:21
56
- #: widgets/so-post-carousel-widget/inc/carousel-widget.php:18
57
- #: widgets/so-price-table-widget/inc/widget.php:18
58
- #: widgets/so-price-table-widget/inc/widget.php:32
59
- msgid "Title"
60
- msgstr ""
61
-
62
- #: base/inc/post-selector.php:74
63
- msgid "Published Date"
64
- msgstr ""
65
-
66
- #: base/inc/post-selector.php:75
67
- msgid "Modified Date"
68
- msgstr ""
69
-
70
- #: base/inc/post-selector.php:76
71
- msgid "By Parent"
72
- msgstr ""
73
-
74
- #: base/inc/post-selector.php:77
75
- msgid "Random Order"
76
- msgstr ""
77
-
78
- #: base/inc/post-selector.php:78
79
- msgid "Comment Count"
80
- msgstr ""
81
-
82
- #: base/inc/post-selector.php:79
83
- msgid "Menu Order"
84
- msgstr ""
85
-
86
- #: base/inc/post-selector.php:80
87
- msgid "By Meta Value"
88
- msgstr ""
89
-
90
- #: base/inc/post-selector.php:81
91
- msgid "By Numeric Meta Value"
92
- msgstr ""
93
-
94
- #: base/inc/post-selector.php:82
95
- msgid "By Include Order"
96
- msgstr ""
97
-
98
- #: base/inc/post-selector.php:93
99
- msgid "Posts Per Page"
100
- msgstr ""
101
-
102
- #: base/inc/preview.tpl.php:3
103
- msgid "Widget Preview"
104
- msgstr ""
105
-
106
- #: base/siteorigin-widget.class.php:171
107
- msgid "Preview"
108
- msgstr ""
109
-
110
- #: base/siteorigin-widget.class.php:175
111
- msgid "Help"
112
- msgstr ""
113
-
114
- #: base/siteorigin-widget.class.php:186
115
- msgid "Please refresh this page to start using this widget."
116
- msgstr ""
117
-
118
- #: base/siteorigin-widget.class.php:208
119
- msgid "Are you sure?"
120
- msgstr ""
121
-
122
- #: base/siteorigin-widget.class.php:219
123
- #, php-format
124
- msgid ""
125
- "This query returns <a href=\"#\" class=\"preview-query-posts\">%s posts</a>."
126
- msgstr ""
127
-
128
- #: base/siteorigin-widget.class.php:510
129
- #, php-format
130
- msgid ""
131
- "You need to <a href=\"%s\">upgrade</a> to WordPress 3.5 to use media fields"
132
- msgstr ""
133
-
134
- #: base/siteorigin-widget.class.php:528
135
- msgid "Choose Media"
136
- msgstr ""
137
-
138
- #: base/siteorigin-widget.class.php:529
139
- msgid "Set Media"
140
- msgstr ""
141
-
142
- #: base/siteorigin-widget.class.php:544
143
- msgid "Remove"
144
- msgstr ""
145
-
146
- #: base/siteorigin-widget.class.php:557
147
- msgid "Build Posts Query"
148
- msgstr ""
149
-
150
- #: base/siteorigin-widget.class.php:612
151
- msgid "Add"
152
- msgstr ""
153
-
154
- #: base/siteorigin-widget.class.php:677
155
- msgid "Unknown Field"
156
- msgstr ""
157
-
158
- #: icons/icons.php:1488
159
- msgid "Font Awesome"
160
- msgstr ""
161
-
162
- #: icons/icons.php:1494
163
- msgid "Icomoon Free"
164
- msgstr ""
165
-
166
- #: icons/icons.php:1500
167
- msgid "Genericons"
168
- msgstr ""
169
-
170
- #: icons/icons.php:1506
171
- msgid "Typicons"
172
- msgstr ""
173
-
174
- #: icons/icons.php:1512
175
- msgid "Elegant Themes Line Icons"
176
- msgstr ""
177
-
178
- #: so-widgets-bundle.php:170 so-widgets-bundle.php:171 tpl/admin.php:2
179
- msgid "SiteOrigin Widgets"
180
- msgstr ""
181
-
182
- #: so-widgets-bundle.php:198
183
- #, php-format
184
- msgid "%s was %s"
185
- msgstr ""
186
-
187
- #: so-widgets-bundle.php:200
188
- msgid "Activated"
189
- msgstr ""
190
-
191
- #: so-widgets-bundle.php:200
192
- msgid "Deactivated"
193
- msgstr ""
194
-
195
- #: so-widgets-bundle.php:378
196
- msgid "Manage Widgets"
197
- msgstr ""
198
-
199
- #: so-widgets-bundle.php:379
200
- msgid "Support"
201
- msgstr ""
202
-
203
- #: tpl/admin.php:14
204
- msgid "On"
205
- msgstr ""
206
-
207
- #: tpl/admin.php:14
208
- msgid "Off"
209
- msgstr ""
210
-
211
- #: widgets/so-button-widget/inc/widget.php:7
212
- msgid "SiteOrigin Button"
213
- msgstr ""
214
-
215
- #: widgets/so-button-widget/inc/widget.php:9
216
- msgid "A customizable button widget."
217
- msgstr ""
218
-
219
- #: widgets/so-button-widget/inc/widget.php:18
220
- #: widgets/so-price-table-widget/inc/widget.php:54
221
- msgid "Button Text"
222
- msgstr ""
223
-
224
- #: widgets/so-button-widget/inc/widget.php:24
225
- #: widgets/so-image-widget/inc/widget.php:44
226
- #: widgets/so-slider-widget/inc/widget.php:77
227
- msgid "Destination URL"
228
- msgstr ""
229
-
230
- #: widgets/so-button-widget/inc/widget.php:30
231
- #: widgets/so-image-widget/inc/widget.php:49
232
- msgid "Open in New Window"
233
- msgstr ""
234
-
235
- #: widgets/so-button-widget/inc/widget.php:35
236
- #: widgets/so-button-widget/inc/widget.php:39
237
- #: widgets/so-features-widget/inc/features-widget.php:32
238
- #: widgets/so-price-table-widget/inc/widget.php:76
239
- msgid "Icon"
240
- msgstr ""
241
-
242
- #: widgets/so-button-widget/inc/widget.php:44
243
- #: widgets/so-features-widget/inc/features-widget.php:37
244
- #: widgets/so-price-table-widget/inc/widget.php:80
245
- msgid "Icon Color"
246
- msgstr ""
247
-
248
- #: widgets/so-button-widget/inc/widget.php:49
249
- msgid "Image Icon"
250
- msgstr ""
251
-
252
- #: widgets/so-button-widget/inc/widget.php:50
253
- msgid "Replaces the icon with your own image icon."
254
- msgstr ""
255
-
256
- #: widgets/so-button-widget/inc/widget.php:57
257
- msgid "Design and Layout"
258
- msgstr ""
259
-
260
- #: widgets/so-button-widget/inc/widget.php:62
261
- msgid "Align"
262
- msgstr ""
263
-
264
- #: widgets/so-button-widget/inc/widget.php:65
265
- msgid "Left"
266
- msgstr ""
267
-
268
- #: widgets/so-button-widget/inc/widget.php:66
269
- msgid "Right"
270
- msgstr ""
271
-
272
- #: widgets/so-button-widget/inc/widget.php:67
273
- msgid "Center"
274
- msgstr ""
275
-
276
- #: widgets/so-button-widget/inc/widget.php:68
277
- msgid "Justify"
278
- msgstr ""
279
-
280
- #: widgets/so-button-widget/inc/widget.php:74
281
- msgid "Button Theme"
282
- msgstr ""
283
-
284
- #: widgets/so-button-widget/inc/widget.php:77
285
- #: widgets/so-price-table-widget/inc/widget.php:91
286
- msgid "Atom"
287
- msgstr ""
288
-
289
- #: widgets/so-button-widget/inc/widget.php:78
290
- msgid "Flat"
291
- msgstr ""
292
-
293
- #: widgets/so-button-widget/inc/widget.php:79
294
- msgid "Wire"
295
- msgstr ""
296
-
297
- #: widgets/so-button-widget/inc/widget.php:86
298
- #: widgets/so-price-table-widget/inc/widget.php:107
299
- msgid "Button Color"
300
- msgstr ""
301
-
302
- #: widgets/so-button-widget/inc/widget.php:91
303
- msgid "Text Color"
304
- msgstr ""
305
-
306
- #: widgets/so-button-widget/inc/widget.php:97
307
- msgid "Use Hover Effects"
308
- msgstr ""
309
-
310
- #: widgets/so-button-widget/inc/widget.php:102
311
- msgid "Font Size"
312
- msgstr ""
313
-
314
- #: widgets/so-button-widget/inc/widget.php:104
315
- msgid "Normal"
316
- msgstr ""
317
-
318
- #: widgets/so-button-widget/inc/widget.php:105
319
- #: widgets/so-button-widget/inc/widget.php:129
320
- #: widgets/so-image-widget/inc/widget.php:27
321
- #: widgets/so-slider-widget/inc/widget.php:110
322
- msgid "Medium"
323
- msgstr ""
324
-
325
- #: widgets/so-button-widget/inc/widget.php:106
326
- #: widgets/so-image-widget/inc/widget.php:26
327
- msgid "Large"
328
- msgstr ""
329
-
330
- #: widgets/so-button-widget/inc/widget.php:107
331
- msgid "Extra Large"
332
- msgstr ""
333
-
334
- #: widgets/so-button-widget/inc/widget.php:113
335
- msgid "Rounding"
336
- msgstr ""
337
-
338
- #: widgets/so-button-widget/inc/widget.php:116
339
- msgid "None"
340
- msgstr ""
341
-
342
- #: widgets/so-button-widget/inc/widget.php:117
343
- msgid "Slight Rounding"
344
- msgstr ""
345
-
346
- #: widgets/so-button-widget/inc/widget.php:118
347
- msgid "Very Rounded"
348
- msgstr ""
349
-
350
- #: widgets/so-button-widget/inc/widget.php:119
351
- msgid "Completely Rounded"
352
- msgstr ""
353
-
354
- #: widgets/so-button-widget/inc/widget.php:125
355
- msgid "Padding"
356
- msgstr ""
357
-
358
- #: widgets/so-button-widget/inc/widget.php:128
359
- msgid "Low"
360
- msgstr ""
361
-
362
- #: widgets/so-button-widget/inc/widget.php:130
363
- msgid "High"
364
- msgstr ""
365
-
366
- #: widgets/so-button-widget/inc/widget.php:131
367
- msgid "Very High"
368
- msgstr ""
369
-
370
- #: widgets/so-button-widget/inc/widget.php:140
371
- msgid "Other Attributes and SEO"
372
- msgstr ""
373
-
374
- #: widgets/so-button-widget/inc/widget.php:145
375
- msgid "Button ID"
376
- msgstr ""
377
-
378
- #: widgets/so-button-widget/inc/widget.php:146
379
- msgid "An ID attribute allows you to target this button in Javascript."
380
- msgstr ""
381
-
382
- #: widgets/so-button-widget/inc/widget.php:151
383
- msgid "Title Attribute"
384
- msgstr ""
385
-
386
- #: widgets/so-button-widget/inc/widget.php:152
387
- msgid "Adds a title attribute to the button link."
388
- msgstr ""
389
-
390
- #: widgets/so-button-widget/inc/widget.php:157
391
- msgid "Onclick"
392
- msgstr ""
393
-
394
- #: widgets/so-button-widget/inc/widget.php:158
395
- msgid "Run this Javascript when the button is clicked. Ideal for tracking."
396
- msgstr ""
397
-
398
- #: widgets/so-cta-widget/inc/cta-widget.php:9
399
- msgid "SiteOrigin Call To Action"
400
- msgstr ""
401
-
402
- #: widgets/so-cta-widget/inc/cta-widget.php:11
403
- msgid "A simple call to action widget with massive power."
404
- msgstr ""
405
-
406
- #: widgets/so-cta-widget/inc/cta-widget.php:26
407
- msgid "Subtitle"
408
- msgstr ""
409
-
410
- #: widgets/so-cta-widget/inc/cta-widget.php:31
411
- msgid "Design"
412
- msgstr ""
413
-
414
- #: widgets/so-cta-widget/inc/cta-widget.php:36
415
- msgid "Background Color"
416
- msgstr ""
417
-
418
- #: widgets/so-cta-widget/inc/cta-widget.php:41
419
- msgid "Border Color"
420
- msgstr ""
421
-
422
- #: widgets/so-cta-widget/inc/cta-widget.php:50
423
- msgid "Button"
424
- msgstr ""
425
-
426
- #: widgets/so-features-widget/inc/features-widget.php:7
427
- msgid "SiteOrigin Features"
428
- msgstr ""
429
-
430
- #: widgets/so-features-widget/inc/features-widget.php:9
431
- msgid "Displays a list of features."
432
- msgstr ""
433
-
434
- #: widgets/so-features-widget/inc/features-widget.php:16
435
- #: widgets/so-price-table-widget/inc/widget.php:63
436
- msgid "Features"
437
- msgstr ""
438
-
439
- #: widgets/so-features-widget/inc/features-widget.php:17
440
- #: widgets/so-price-table-widget/inc/widget.php:64
441
- msgid "Feature"
442
- msgstr ""
443
-
444
- #: widgets/so-features-widget/inc/features-widget.php:24
445
- msgid "Container Color"
446
- msgstr ""
447
-
448
- #: widgets/so-features-widget/inc/features-widget.php:44
449
- msgid "Icon Image"
450
- msgstr ""
451
-
452
- #: widgets/so-features-widget/inc/features-widget.php:45
453
- msgid "Use your own icon image."
454
- msgstr ""
455
-
456
- #: widgets/so-features-widget/inc/features-widget.php:52
457
- #: widgets/so-image-widget/inc/widget.php:34
458
- msgid "Title Text"
459
- msgstr ""
460
-
461
- #: widgets/so-features-widget/inc/features-widget.php:57
462
- #: widgets/so-price-table-widget/inc/widget.php:68
463
- msgid "Text"
464
- msgstr ""
465
-
466
- #: widgets/so-features-widget/inc/features-widget.php:62
467
- msgid "More Link Text"
468
- msgstr ""
469
-
470
- #: widgets/so-features-widget/inc/features-widget.php:67
471
- msgid "More Link URL"
472
- msgstr ""
473
-
474
- #: widgets/so-features-widget/inc/features-widget.php:75
475
- msgid "Container Shape"
476
- msgstr ""
477
-
478
- #: widgets/so-features-widget/inc/features-widget.php:82
479
- msgid "Container Size"
480
- msgstr ""
481
-
482
- #: widgets/so-features-widget/inc/features-widget.php:88
483
- msgid "Icon Size"
484
- msgstr ""
485
-
486
- #: widgets/so-features-widget/inc/features-widget.php:94
487
- msgid "Features Per Row"
488
- msgstr ""
489
-
490
- #: widgets/so-features-widget/inc/features-widget.php:100
491
- msgid "Responsive Layout"
492
- msgstr ""
493
-
494
- #: widgets/so-features-widget/inc/features-widget.php:106
495
- msgid "Link Feature Title to More URL"
496
- msgstr ""
497
-
498
- #: widgets/so-features-widget/inc/features-widget.php:112
499
- msgid "Link Icon to More URL"
500
- msgstr ""
501
-
502
- #: widgets/so-features-widget/inc/features-widget.php:118
503
- msgid "Open More URL in New Window"
504
- msgstr ""
505
-
506
- #: widgets/so-image-widget/inc/widget.php:7
507
- msgid "SiteOrigin Image"
508
- msgstr ""
509
-
510
- #: widgets/so-image-widget/inc/widget.php:9
511
- msgid "A simple image widget with massive power."
512
- msgstr ""
513
-
514
- #: widgets/so-image-widget/inc/widget.php:18
515
- msgid "Image File"
516
- msgstr ""
517
-
518
- #: widgets/so-image-widget/inc/widget.php:23
519
- msgid "Image Size"
520
- msgstr ""
521
-
522
- #: widgets/so-image-widget/inc/widget.php:25
523
- msgid "Full"
524
- msgstr ""
525
-
526
- #: widgets/so-image-widget/inc/widget.php:28
527
- msgid "Thumbnail"
528
- msgstr ""
529
-
530
- #: widgets/so-image-widget/inc/widget.php:39
531
- msgid "Alt Text"
532
- msgstr ""
533
-
534
- #: widgets/so-image-widget/inc/widget.php:55
535
- msgid "Bound"
536
- msgstr ""
537
-
538
- #: widgets/so-image-widget/inc/widget.php:56
539
- msgid "Make sure the image doesn't extend beyond its container."
540
- msgstr ""
541
-
542
- #: widgets/so-post-carousel-widget/inc/carousel-widget.php:7
543
- msgid "SiteOrigin Post Carousel"
544
- msgstr ""
545
-
546
- #: widgets/so-post-carousel-widget/inc/carousel-widget.php:9
547
- msgid "Display your posts as a carousel."
548
- msgstr ""
549
-
550
- #: widgets/so-post-carousel-widget/inc/carousel-widget.php:23
551
- msgid "Posts Query"
552
- msgstr ""
553
-
554
- #: widgets/so-post-carousel-widget/tpl/base.php:10
555
- msgid "Next"
556
- msgstr ""
557
-
558
- #: widgets/so-post-carousel-widget/tpl/base.php:11
559
- msgid "Previous"
560
- msgstr ""
561
-
562
- #: widgets/so-price-table-widget/inc/widget.php:7
563
- msgid "SiteOrigin Price Table"
564
- msgstr ""
565
-
566
- #: widgets/so-price-table-widget/inc/widget.php:9
567
- msgid "A simple Price Table."
568
- msgstr ""
569
-
570
- #: widgets/so-price-table-widget/inc/widget.php:23
571
- msgid "Columns"
572
- msgstr ""
573
-
574
- #: widgets/so-price-table-widget/inc/widget.php:24
575
- msgid "Column"
576
- msgstr ""
577
-
578
- #: widgets/so-price-table-widget/inc/widget.php:28
579
- msgid "Featured"
580
- msgstr ""
581
-
582
- #: widgets/so-price-table-widget/inc/widget.php:36
583
- msgid "Sub Title"
584
- msgstr ""
585
-
586
- #: widgets/so-price-table-widget/inc/widget.php:41
587
- msgid "Image"
588
- msgstr ""
589
-
590
- #: widgets/so-price-table-widget/inc/widget.php:46
591
- msgid "Price"
592
- msgstr ""
593
-
594
- #: widgets/so-price-table-widget/inc/widget.php:50
595
- msgid "Per"
596
- msgstr ""
597
-
598
- #: widgets/so-price-table-widget/inc/widget.php:59
599
- msgid "Button URL"
600
- msgstr ""
601
-
602
- #: widgets/so-price-table-widget/inc/widget.php:72
603
- msgid "Hover Text"
604
- msgstr ""
605
-
606
- #: widgets/so-price-table-widget/inc/widget.php:89
607
- msgid "Price Table Theme"
608
- msgstr ""
609
-
610
- #: widgets/so-price-table-widget/inc/widget.php:97
611
- msgid "Header Color"
612
- msgstr ""
613
-
614
- #: widgets/so-price-table-widget/inc/widget.php:102
615
- msgid "Featured Header Color"
616
- msgstr ""
617
-
618
- #: widgets/so-price-table-widget/inc/widget.php:112
619
- msgid "Featured Button Color"
620
- msgstr ""
621
-
622
- #: widgets/so-slider-widget/inc/widget.php:7
623
- msgid "SiteOrigin Slider"
624
- msgstr ""
625
-
626
- #: widgets/so-slider-widget/inc/widget.php:9
627
- msgid "A simple slider widget."
628
- msgstr ""
629
-
630
- #: widgets/so-slider-widget/inc/widget.php:19
631
- msgid "Slider Frames"
632
- msgstr ""
633
-
634
- #: widgets/so-slider-widget/inc/widget.php:20
635
- msgid "Frame"
636
- msgstr ""
637
-
638
- #: widgets/so-slider-widget/inc/widget.php:24
639
- msgid "Video"
640
- msgstr ""
641
-
642
- #: widgets/so-slider-widget/inc/widget.php:25
643
- msgid "Background Videos"
644
- msgstr ""
645
-
646
- #: widgets/so-slider-widget/inc/widget.php:30
647
- msgid "Video File"
648
- msgstr ""
649
-
650
- #: widgets/so-slider-widget/inc/widget.php:36
651
- msgid "Video URL"
652
- msgstr ""
653
-
654
- #: widgets/so-slider-widget/inc/widget.php:38
655
- msgid "An external URL of the video. Overrides Video File."
656
- msgstr ""
657
-
658
- #: widgets/so-slider-widget/inc/widget.php:43
659
- msgid "Video Format"
660
- msgstr ""
661
-
662
- #: widgets/so-slider-widget/inc/widget.php:56
663
- msgid "Background Image"
664
- msgstr ""
665
-
666
- #: widgets/so-slider-widget/inc/widget.php:61
667
- msgid "Background Image Type"
668
- msgstr ""
669
-
670
- #: widgets/so-slider-widget/inc/widget.php:63
671
- msgid "Cover"
672
- msgstr ""
673
-
674
- #: widgets/so-slider-widget/inc/widget.php:64
675
- msgid "Tile"
676
- msgstr ""
677
-
678
- #: widgets/so-slider-widget/inc/widget.php:72
679
- msgid "Foreground Image"
680
- msgstr ""
681
-
682
- #: widgets/so-slider-widget/inc/widget.php:85
683
- msgid "Animation Speed"
684
- msgstr ""
685
-
686
- #: widgets/so-slider-widget/inc/widget.php:86
687
- msgid "Animation speed in milliseconds."
688
- msgstr ""
689
-
690
- #: widgets/so-slider-widget/inc/widget.php:92
691
- msgid "Timeout"
692
- msgstr ""
693
-
694
- #: widgets/so-slider-widget/inc/widget.php:93
695
- msgid "How long each slide is displayed for in milliseconds."
696
- msgstr ""
697
-
698
- #: widgets/so-slider-widget/inc/widget.php:99
699
- msgid "Navigation Color"
700
- msgstr ""
701
-
702
- #: widgets/so-slider-widget/inc/widget.php:105
703
- msgid "Navigation Style"
704
- msgstr ""
705
-
706
- #: widgets/so-slider-widget/inc/widget.php:108
707
- msgid "Ultra Thin"
708
- msgstr ""
709
-
710
- #: widgets/so-slider-widget/inc/widget.php:109
711
- msgid "Thin"
712
- msgstr ""
713
-
714
- #: widgets/so-slider-widget/inc/widget.php:111
715
- msgid "Thick"
716
- msgstr ""
717
-
718
- #: widgets/so-slider-widget/inc/widget.php:112
719
- msgid "Rounded Ultra Thin"
720
- msgstr ""
721
-
722
- #: widgets/so-slider-widget/inc/widget.php:113
723
- msgid "Rounded Thin"
724
- msgstr ""
725
-
726
- #: widgets/so-slider-widget/inc/widget.php:114
727
- msgid "Rounded Medium"
728
- msgstr ""
729
-
730
- #: widgets/so-slider-widget/inc/widget.php:115
731
- msgid "Rounded Thick"
732
- msgstr ""
733
-
734
- #: widgets/so-slider-widget/inc/widget.php:121
735
- msgid "Navigation Size"
736
- msgstr ""
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
readme.txt CHANGED
@@ -1,9 +1,9 @@
1
  === SiteOrigin Widgets Bundle ===
2
  Tags: bundle, widget, button, slider, image, carousel, price table, google maps, tinymce, social links
3
  Requires at least: 4.2
4
- Tested up to: 4.7.3
5
  Stable tag: 1.8.2
6
- Build time: 2017-04-01T17:10:37+02:00
7
  License: GPLv3 or later
8
  Contributors: gpriday, braam-genis
9
  Donate link: https://siteorigin.com/downloads/contribution/
@@ -54,6 +54,36 @@ The SiteOrigin Widgets Bundle is the perfect platform to build widgets for your
54
 
55
  == Changelog ==
56
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
57
  = 1.8.2 - 1 April 2017 =
58
  * Compatibility with upcoming Page Builder 2.5 release.
59
  * Fixed compatibility with Elementor 1.4+.
1
  === SiteOrigin Widgets Bundle ===
2
  Tags: bundle, widget, button, slider, image, carousel, price table, google maps, tinymce, social links
3
  Requires at least: 4.2
4
+ Tested up to: 4.7.4
5
  Stable tag: 1.8.2
6
+ Build time: 2017-04-26T14:56:44+02:00
7
  License: GPLv3 or later
8
  Contributors: gpriday, braam-genis
9
  Donate link: https://siteorigin.com/downloads/contribution/
54
 
55
  == Changelog ==
56
 
57
+ = 1.8.3 - 26 April 2017 =
58
+ * Contact Form: Improved type Validation and added empty name check
59
+ * Contact Form: Add Field Design Settings
60
+ * Testimonial: Add responsive image sizes settings
61
+ * Added checks to prevent PHP warnings
62
+ * Improved handling of empty order fields.
63
+ * Small code refactoring in price table widget.
64
+ * Ensure all SiteOrigin widgets are grouped together in Page Builder.
65
+ * Slider: Remove slider sentinel contents to avoid things like duplicated video iframe for embedded videos
66
+ * Fix TinyMCE z-index.
67
+ * Headline: Fixed typo that tied subheadline new window to headline
68
+ * Ensure fittext is done before setting up hero slider.
69
+ * Ensure google font fields work in live editors/previews.
70
+ * Features: Allow specifying position of features widgets icons.
71
+ * Added * next to labels of required fields.
72
+ * Make required field indicator optional and display legend when enabled.
73
+ * Set default color option in wpColorPicker.
74
+ * Small refactor to make more use of `get_template_variables`.
75
+ * Button: Added field for `rel` attribute.
76
+ * Maps: Added setting for global Google API key.
77
+ * Small fix to allow checkboxes to act as 'conditional' state emitters.
78
+ * Features: Change text form field to a tinymce field
79
+ * Properly work with new Page Builder caching system
80
+ * Ensure footer templates only printed when editing with Elementor.
81
+ * Small IE8 fix
82
+ * Contact: Prevent form fields from having 0px height if no height specified.
83
+ * Fixed Google Maps info windows.
84
+ * Image: Don't output empty attributes.
85
+ * Don't attempt to load maps API if already loaded.
86
+
87
  = 1.8.2 - 1 April 2017 =
88
  * Compatibility with upcoming Page Builder 2.5 release.
89
  * Fixed compatibility with Elementor 1.4+.
so-widgets-bundle.php CHANGED
@@ -2,9 +2,9 @@
2
  /*
3
  Plugin Name: SiteOrigin Widgets Bundle
4
  Description: A collection of all widgets, neatly bundled into a single plugin. It's also a framework to code your own widgets on top of.
5
- Version: 1.8.2
6
  Text Domain: so-widgets-bundle
7
- Domain Path: /languages
8
  Author: SiteOrigin
9
  Author URI: https://siteorigin.com
10
  Plugin URI: https://siteorigin.com/widgets-bundle/
@@ -12,7 +12,7 @@ License: GPL3
12
  License URI: https://www.gnu.org/licenses/gpl-3.0.txt
13
  */
14
 
15
- define('SOW_BUNDLE_VERSION', '1.8.2');
16
  define('SOW_BUNDLE_BASE_FILE', __FILE__);
17
 
18
  // Allow JS suffix to be pre-set
@@ -103,7 +103,7 @@ class SiteOrigin_Widgets_Bundle {
103
  * @action plugins_loaded
104
  */
105
  function set_plugin_textdomain(){
106
- load_plugin_textdomain('so-widgets-bundle', false, dirname( plugin_basename( __FILE__ ) ). '/languages/');
107
  }
108
 
109
  /**
@@ -368,7 +368,10 @@ class SiteOrigin_Widgets_Bundle {
368
  if( ! current_user_can( apply_filters( 'siteorigin_widgets_admin_menu_capability', 'manage_options' ) ) ) exit();
369
 
370
  $widget_objects = $this->get_widget_objects();
371
- $widget_object = !empty( $widget_objects[ $_GET['id'] ] ) ? $widget_objects[ $_GET['id'] ] : false;
 
 
 
372
 
373
  if( empty( $widget_object ) || ! $widget_object->has_form( 'settings' ) ) exit();
374
 
2
  /*
3
  Plugin Name: SiteOrigin Widgets Bundle
4
  Description: A collection of all widgets, neatly bundled into a single plugin. It's also a framework to code your own widgets on top of.
5
+ Version: 1.8.3
6
  Text Domain: so-widgets-bundle
7
+ Domain Path: /lang
8
  Author: SiteOrigin
9
  Author URI: https://siteorigin.com
10
  Plugin URI: https://siteorigin.com/widgets-bundle/
12
  License URI: https://www.gnu.org/licenses/gpl-3.0.txt
13
  */
14
 
15
+ define('SOW_BUNDLE_VERSION', '1.8.3');
16
  define('SOW_BUNDLE_BASE_FILE', __FILE__);
17
 
18
  // Allow JS suffix to be pre-set
103
  * @action plugins_loaded
104
  */
105
  function set_plugin_textdomain(){
106
+ load_plugin_textdomain('so-widgets-bundle', false, dirname( plugin_basename( __FILE__ ) ). '/lang/');
107
  }
108
 
109
  /**
368
  if( ! current_user_can( apply_filters( 'siteorigin_widgets_admin_menu_capability', 'manage_options' ) ) ) exit();
369
 
370
  $widget_objects = $this->get_widget_objects();
371
+
372
+ $widget_path = empty( $_GET['id'] ) ? false : WP_PLUGIN_DIR . $_GET['id'];
373
+
374
+ $widget_object = empty( $widget_objects[ $widget_path ] ) ? false : $widget_objects[ $widget_path ];
375
 
376
  if( empty( $widget_object ) || ! $widget_object->has_form( 'settings' ) ) exit();
377
 
widgets/button/button.php CHANGED
@@ -202,6 +202,12 @@ class SiteOrigin_Widget_Button_Widget extends SiteOrigin_Widget {
202
  'label' => __('Onclick', 'so-widgets-bundle'),
203
  'description' => __('Run this Javascript when the button is clicked. Ideal for tracking.', 'so-widgets-bundle'),
204
  ),
 
 
 
 
 
 
205
  )
206
  ),
207
  );
@@ -221,13 +227,54 @@ class SiteOrigin_Widget_Button_Widget extends SiteOrigin_Widget {
221
  * @return array
222
  */
223
  function get_template_variables( $instance, $args ) {
224
- $vars = array();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
225
 
226
- if( ! empty( $instance[ 'attributes' ][ 'classes' ] ) ) {
227
- $vars[ 'classes' ] = explode( ' ', $instance[ 'attributes' ][ 'classes' ] );
 
 
 
 
 
228
  }
229
 
230
- return $vars;
 
 
 
 
 
 
 
231
  }
232
 
233
  /**
202
  'label' => __('Onclick', 'so-widgets-bundle'),
203
  'description' => __('Run this Javascript when the button is clicked. Ideal for tracking.', 'so-widgets-bundle'),
204
  ),
205
+
206
+ 'rel' => array(
207
+ 'type' => 'text',
208
+ 'label' => __('Rel attribute', 'so-widgets-bundle'),
209
+ 'description' => __('Adds a rel attribute to the button link.', 'so-widgets-bundle'),
210
+ ),
211
  )
212
  ),
213
  );
227
  * @return array
228
  */
229
  function get_template_variables( $instance, $args ) {
230
+ $button_attributes = array();
231
+
232
+ $attributes = $instance['attributes'];
233
+ if( ! empty( $attributes['classes'] ) ) {
234
+ $classes = $attributes['classes'];
235
+ if( !empty($instance['design']['hover']) ) {
236
+ $classes .= ' ow-button-hover';
237
+ }
238
+ $button_attributes['class'] = $classes;
239
+ }
240
+
241
+ if ( ! empty( $instance['new_window'] ) ) {
242
+ $button_attributes['target'] = '_blank';
243
+ }
244
+
245
+ if ( ! empty( $instance['url'] ) ) {
246
+ $button_attributes['href'] = $instance['url'];
247
+ }
248
+ if ( ! empty( $attributes['id'] ) ) {
249
+ $button_attributes['id'] = $attributes['id'];
250
+ }
251
+ if ( ! empty( $attributes['title'] ) ) {
252
+ $button_attributes['title'] = $attributes['title'];
253
+ }
254
+ if ( ! empty( $attributes['onclick'] ) ) {
255
+ $button_attributes['onclick'] = $attributes['onclick'];
256
+ }
257
+ if ( ! empty( $attributes['rel'] ) ) {
258
+ $button_attributes['rel'] = $attributes['rel'];
259
+ }
260
 
261
+ $icon_image_url = '';
262
+ if( ! empty( $instance['button_icon']['icon'] ) ) {
263
+ $attachment = wp_get_attachment_image_src( $instance['button_icon']['icon'] );
264
+
265
+ if ( ! empty( $attachment ) ) {
266
+ $icon_image_url = $attachment[0];
267
+ }
268
  }
269
 
270
+ return array(
271
+ 'button_attributes' => $button_attributes,
272
+ 'align' => $instance['design']['align'],
273
+ 'icon_image_url' => $icon_image_url,
274
+ 'icon' => $instance['button_icon']['icon_selected'],
275
+ 'icon_color' => $instance['button_icon']['icon_color'],
276
+ 'text' => $instance['text'],
277
+ );
278
  }
279
 
280
  /**
widgets/button/css/style.css CHANGED
@@ -1,45 +1 @@
1
- .ow-button-base {
2
- zoom: 1;
3
- /* All the special styles */
4
- }
5
- .ow-button-base:before {
6
- content: '';
7
- display: block;
8
- }
9
- .ow-button-base:after {
10
- content: '';
11
- display: table;
12
- clear: both;
13
- }
14
- .ow-button-base a {
15
- text-align: center;
16
- display: inline-block;
17
- cursor: pointer;
18
- text-decoration: none;
19
- line-height: 1em;
20
- }
21
- .ow-button-base a .sow-icon-image,
22
- .ow-button-base a [class^="sow-icon-"] {
23
- font-size: 1.3em;
24
- height: 1em;
25
- width: auto;
26
- margin: -0.1em 0.75em -0.2em -0.75em;
27
- display: block;
28
- float: left;
29
- }
30
- .ow-button-base a .sow-icon-image {
31
- width: 1em;
32
- background-size: cover;
33
- }
34
- .ow-button-base.ow-button-align-left {
35
- text-align: left;
36
- }
37
- .ow-button-base.ow-button-align-right {
38
- text-align: right;
39
- }
40
- .ow-button-base.ow-button-align-center {
41
- text-align: center;
42
- }
43
- .ow-button-base.ow-button-align-justify a {
44
- display: block;
45
- }
1
+ .ow-button-base{zoom:1}.ow-button-base:before{content:'';display:block}.ow-button-base:after{content:'';display:table;clear:both}.ow-button-base a{text-align:center;display:inline-block;cursor:pointer;text-decoration:none;line-height:1em}.ow-button-base a .sow-icon-image,.ow-button-base a [class^="sow-icon-"]{font-size:1.3em;height:1em;width:auto;margin:-0.1em .75em -0.2em -0.75em;display:block;float:left}.ow-button-base a .sow-icon-image{width:1em;background-size:cover}.ow-button-base.ow-button-align-left{text-align:left}.ow-button-base.ow-button-align-right{text-align:right}.ow-button-base.ow-button-align-center{text-align:center}.ow-button-base.ow-button-align-justify a{display:block}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
widgets/button/tpl/default.php CHANGED
@@ -1,40 +1,29 @@
1
  <?php
2
  /**
3
- * @var array $classes
 
 
 
 
 
4
  */
5
 
6
- if( !empty($instance['design']['hover']) ) $classes[] = 'ow-button-hover';
7
  ?>
8
- <div class="ow-button-base ow-button-align-<?php echo esc_attr($instance['design']['align']) ?>">
9
-
10
- <?php
11
- $button_attributes = array(
12
- 'class' => esc_attr( implode(' ', $classes) )
13
- );
14
- if(!empty($instance['new_window'])) $button_attributes['target'] = '_blank';
15
- if(!empty($instance['url'])) $button_attributes['href'] = sow_esc_url($instance['url']);
16
- if(!empty($instance['attributes']['id'])) $button_attributes['id'] = esc_attr($instance['attributes']['id']);
17
- if(!empty($instance['attributes']['title'])) $button_attributes['title'] = esc_attr($instance['attributes']['title']);
18
- if(!empty($instance['attributes']['onclick'])) $button_attributes['onclick'] = esc_attr($instance['attributes']['onclick']);
19
- ?>
20
- <a <?php foreach($button_attributes as $name => $val) echo $name . '="' . $val . '" ' ?>>
21
  <span>
22
  <?php
23
- if( !empty($instance['button_icon']['icon']) ) {
24
- $attachment = wp_get_attachment_image_src($instance['button_icon']['icon']);
25
- if(!empty($attachment)) {
26
- $icon_styles[] = 'background-image: url(' . sow_esc_url($attachment[0]) . ')';
27
- ?><div class="sow-icon-image" style="<?php echo implode('; ', $icon_styles) ?>"></div><?php
28
- }
29
  }
30
  else {
31
  $icon_styles = array();
32
- if(!empty($instance['button_icon']['icon_color'])) $icon_styles[] = 'color: '.$instance['button_icon']['icon_color'];
33
- echo siteorigin_widget_get_icon($instance['button_icon']['icon_selected'], $icon_styles);
34
  }
35
  ?>
36
 
37
- <?php echo wp_kses_post($instance['text']) ?>
38
  </span>
39
  </a>
40
  </div>
1
  <?php
2
  /**
3
+ * @var array $button_attributes
4
+ * @var string $align
5
+ * @var string $icon_image_url
6
+ * @var string $icon
7
+ * @var string $icon_color
8
+ * @var string $text
9
  */
10
 
 
11
  ?>
12
+ <div class="ow-button-base ow-button-align-<?php echo esc_attr( $align ) ?>">
13
+ <a<?php foreach( $button_attributes as $name => $val ) echo ' ' . $name . '="' . esc_attr( $val ) . '"' ?>>
 
 
 
 
 
 
 
 
 
 
 
14
  <span>
15
  <?php
16
+ if( ! empty( $icon_image_url ) ) {
17
+ ?><div class="sow-icon-image" style="<?php echo 'background-image: url(' . sow_esc_url( $icon_image_url ) . ')' ?>"></div><?php
 
 
 
 
18
  }
19
  else {
20
  $icon_styles = array();
21
+ if ( ! empty( $icon_color ) ) $icon_styles[] = 'color: ' . $icon_color;
22
+ echo siteorigin_widget_get_icon( $icon, $icon_styles );
23
  }
24
  ?>
25
 
26
+ <?php echo wp_kses_post( $text ) ?>
27
  </span>
28
  </a>
29
  </div>
widgets/contact/contact.php CHANGED
@@ -1,4 +1,5 @@
1
  <?php
 
2
  /*
3
  Widget Name: Contact Form
4
  Description: A light weight contact form builder.
@@ -8,29 +9,29 @@ Author URI: https://siteorigin.com
8
 
9
  class SiteOrigin_Widgets_ContactForm_Widget extends SiteOrigin_Widget {
10
 
11
- function __construct(){
12
 
13
  parent::__construct(
14
  'sow-contact-form',
15
- __('SiteOrigin Contact Form', 'so-widgets-bundle'),
16
  array(
17
  'description' => __( 'Create a simple contact form for your users to get hold of you.', 'so-widgets-bundle' ),
18
  ),
19
  array(),
20
  false,
21
- plugin_dir_path(__FILE__)
22
  );
23
  }
24
 
25
  /**
26
  * Initialize the contact form widget
27
  */
28
- function initialize(){
29
  $this->register_frontend_scripts(
30
  array(
31
  array(
32
  'sow-contact',
33
- plugin_dir_url(__FILE__) . 'js/contact' . SOW_BUNDLE_JS_SUFFIX . '.js',
34
  array( 'jquery' ),
35
  SOW_BUNDLE_VERSION
36
  )
@@ -39,120 +40,141 @@ class SiteOrigin_Widgets_ContactForm_Widget extends SiteOrigin_Widget {
39
  add_filter( 'siteorigin_widgets_sanitize_field_multiple_emails', array( $this, 'sanitize_multiple_emails' ) );
40
  }
41
 
42
- function get_widget_form(){
43
  return array(
44
  'title' => array(
45
- 'type' => 'text',
46
- 'label' => __('Title', 'so-widgets-bundle'),
47
- 'default' => __('Contact Us', 'so-widgets-bundle'),
48
  ),
49
 
50
  'display_title' => array(
51
- 'type' => 'checkbox',
52
- 'label' => __('Display title', 'so-widgets-bundle'),
53
  ),
54
 
55
  'settings' => array(
56
- 'type' => 'section',
57
- 'label' => __('Settings', 'so-widgets-bundle'),
58
- 'hide' => true,
59
  'fields' => array(
60
- 'to' => array(
61
- 'type' => 'text',
62
- 'label' => __('To email address', 'so-widgets-bundle'),
63
- 'description' => __('Where contact emails will be delivered to.', 'so-widgets-bundle'),
64
- 'sanitize' => 'multiple_emails',
65
  ),
66
- 'default_subject' => array(
67
- 'type' => 'text',
68
- 'label' => __('Default subject', 'so-widgets-bundle'),
69
- 'description' => __("Subject to use when there isn't one available.", 'so-widgets-bundle'),
70
  ),
71
- 'subject_prefix' => array(
72
- 'type' => 'text',
73
- 'label' => __('Subject prefix', 'so-widgets-bundle'),
74
- 'description' => __('Prefix added to all incoming email subjects.', 'so-widgets-bundle'),
75
  ),
76
- 'success_message' => array(
77
- 'type' => 'tinymce',
78
- 'label' => __('Success message', 'so-widgets-bundle'),
79
- 'description' => __('Message to display after message successfully sent.', 'so-widgets-bundle'),
80
- 'default' => __("Thanks for contacting us. We'll get back to you shortly.", 'so-widgets-bundle')
81
  ),
82
- 'submit_text' => array(
83
- 'type' => 'text',
84
- 'label' => __('Submit button text', 'so-widgets-bundle'),
85
- 'default' => __("Contact Us", 'so-widgets-bundle')
86
- )
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
87
  )
88
  ),
89
 
90
  'fields' => array(
91
 
92
- 'type' => 'repeater',
93
- 'label' => __('Fields', 'so-widgets-bundle'),
94
- 'item_name' => __('Field', 'so-widgets-bundle'),
95
  'item_label' => array(
96
- 'selector' => "[id*='label']",
97
  ),
98
- 'fields' => array(
99
 
100
  'type' => array(
101
- 'type' => 'select',
102
- 'label' => __( 'Field Type', 'so-widgets-bundle' ),
103
- 'options' => array(
104
- 'name' => __( 'Name', 'so-widgets-bundle' ),
105
- 'email' => __( 'Email', 'so-widgets-bundle' ),
106
- 'subject' => __( 'Subject', 'so-widgets-bundle' ),
107
- 'text' => __( 'Text', 'so-widgets-bundle' ),
108
- 'textarea' => __( 'Text Area', 'so-widgets-bundle' ),
109
- 'select' => __( 'Dropdown Select', 'so-widgets-bundle' ),
110
  'checkboxes' => __( 'Checkboxes', 'so-widgets-bundle' ),
111
- 'radio' => __( 'Radio', 'so-widgets-bundle' ),
112
  ),
113
  'state_emitter' => array(
114
  'callback' => 'select',
115
- 'args' => array( 'field_type_{$repeater}' ),
116
  )
117
  ),
118
 
119
  'label' => array(
120
- 'type' => 'text',
121
- 'label' => __('Label', 'so-widgets-bundle'),
122
  ),
123
 
124
  'description' => array(
125
- 'type' => 'text',
126
- 'label' => __('Description', 'so-widgets-bundle'),
127
- 'description' => __('This text will appear small beneath the input field.', 'so-widgets-bundle'),
128
  ),
129
 
130
  'required' => array(
131
- 'type' => 'section',
132
- 'label' => __('Required Field', 'so-widgets-bundle'),
133
  'fields' => array(
134
- 'required' => array(
135
- 'type' => 'checkbox',
136
- 'label' => __('Required field', 'so-widgets-bundle'),
137
- 'description' => __('Is this field required?', 'so-widgets-bundle'),
138
  ),
139
  'missing_message' => array(
140
- 'type' => 'text',
141
- 'label' => __('Missing message', 'so-widgets-bundle'),
142
- 'description' => __('Error message to display if this field is missing.', 'so-widgets-bundle'),
143
  )
144
  )
145
  ),
146
 
147
  // This are for select, radio, and checkboxes
148
- 'options' => array(
149
- 'type' => 'repeater',
150
- 'label' => __( 'Options', 'so-widgets-bundle' ),
151
- 'item_name' => __( 'Option', 'so-widgets-bundle' ),
152
- 'item_label' => array( 'selector' => "[id*='value']" ),
153
- 'fields' => array(
154
  'value' => array(
155
- 'type' => 'text',
156
  'label' => __( 'Value', 'so-widgets-bundle' ),
157
  ),
158
  ),
@@ -160,59 +182,59 @@ class SiteOrigin_Widgets_ContactForm_Widget extends SiteOrigin_Widget {
160
  // These are only required for a few states
161
  'state_handler' => array(
162
  'field_type_{$repeater}[select,checkboxes,radio]' => array( 'show' ),
163
- '_else[field_type_{$repeater}]' => array( 'hide' ),
164
  ),
165
  ),
166
  ),
167
  ),
168
 
169
  'spam' => array(
170
- 'type' => 'section',
171
- 'label' => __( 'Spam Protection', 'so-widgets-bundle' ),
172
- 'hide' => true,
173
  'fields' => array(
174
 
175
  'recaptcha' => array(
176
- 'type' => 'section',
177
- 'label' => __('reCAPTCHA', 'so-widgets-bundle'),
178
  'fields' => array(
179
  'use_captcha' => array(
180
- 'type' => 'checkbox',
181
- 'label' => __( 'Use reCAPTCHA', 'so-widgets-bundle' ),
182
  'default' => false,
183
  ),
184
- 'site_key' => array(
185
- 'type' => 'text',
186
  'label' => __( 'reCAPTCHA Site Key', 'so-widgets-bundle' ),
187
  ),
188
- 'secret_key' => array(
189
- 'type' => 'text',
190
  'label' => __( 'reCAPTCHA Secret Key', 'so-widgets-bundle' ),
191
  ),
192
- 'theme' => array(
193
- 'type' => 'select',
194
- 'label' => __( 'Theme', 'so-widgets-bundle' ),
195
  'default' => 'light',
196
  'options' => array(
197
  'light' => __( 'Light', 'so-widgets-bundle' ),
198
- 'dark' => __( 'Dark', 'so-widgets-bundle' ),
199
  ),
200
  ),
201
- 'type' => array(
202
- 'type' => 'select',
203
- 'label' => __( 'Challenge type', 'so-widgets-bundle' ),
204
  'default' => 'image',
205
  'options' => array(
206
  'image' => __( 'Image', 'so-widgets-bundle' ),
207
  'audio' => __( 'Audio', 'so-widgets-bundle' ),
208
  ),
209
  ),
210
- 'size' => array(
211
- 'type' => 'select',
212
- 'label' => __( 'Size', 'so-widgets-bundle' ),
213
  'default' => 'normal',
214
  'options' => array(
215
- 'normal' => __( 'Normal', 'so-widgets-bundle' ),
216
  'compact' => __( 'Compact', 'so-widgets-bundle' ),
217
  ),
218
  ),
@@ -220,23 +242,23 @@ class SiteOrigin_Widgets_ContactForm_Widget extends SiteOrigin_Widget {
220
  ),
221
 
222
  'akismet' => array(
223
- 'type' => 'section',
224
- 'label' => __('Akismet', 'so-widgets-bundle'),
225
  'fields' => array(
226
- 'use_akismet'=> array(
227
- 'type' => 'checkbox',
228
- 'label' => __( 'Use Akismet filtering', 'so-widgets-bundle' ),
229
  'default' => true,
230
  ),
231
- 'spam_action'=> array(
232
- 'type' => 'select',
233
- 'label' => __( 'Spam action', 'so-widgets-bundle' ),
234
- 'options' => array(
235
- 'error' => __('Show error message', 'so-widgets-bundle'),
236
- 'tag' => __('Tag as spam in subject', 'so-widgets-bundle'),
237
  ),
238
- 'description' => __('How to handle submissions that are identified as spam.', 'so-widgets-bundle'),
239
- 'default' => 'error',
240
  ),
241
  )
242
  ),
@@ -244,49 +266,49 @@ class SiteOrigin_Widgets_ContactForm_Widget extends SiteOrigin_Widget {
244
  ),
245
 
246
  'design' => array(
247
- 'type' => 'section',
248
- 'label' => __('Design', 'so-widgets-bundle'),
249
- 'hide' => true,
250
  'fields' => array(
251
 
252
  'container' => array(
253
- 'type' => 'section',
254
- 'label' => __('Container', 'so-widgets-bundle'),
255
  'fields' => array(
256
- 'background' => array(
257
- 'type' => 'color',
258
- 'label' => __('Background color', 'so-widgets-bundle'),
259
  'default' => '#f2f2f2',
260
  ),
261
- 'padding' => array(
262
- 'type' => 'measurement',
263
- 'label' => __('Padding', 'so-widgets-bundle'),
264
  'default' => '10px',
265
  ),
266
  'border_color' => array(
267
- 'type' => 'color',
268
- 'label' => __('Border color', 'so-widgets-bundle'),
269
  'default' => '#c0c0c0',
270
  ),
271
  'border_width' => array(
272
- 'type' => 'measurement',
273
- 'label' => __('Border width', 'so-widgets-bundle'),
274
  'default' => '1px',
275
  ),
276
  'border_style' => array(
277
- 'type' => 'select',
278
- 'label' => __('Border style', 'so-widgets-bundle'),
279
  'default' => 'solid',
280
  'options' => array(
281
- 'none' => __( 'None', 'so-widgets-bundle' ),
282
  'hidden' => __( 'Hidden', 'so-widgets-bundle' ),
283
  'dotted' => __( 'Dotted', 'so-widgets-bundle' ),
284
  'dashed' => __( 'Dashed', 'so-widgets-bundle' ),
285
- 'solid' => __( 'Solid', 'so-widgets-bundle' ),
286
  'double' => __( 'Double', 'so-widgets-bundle' ),
287
  'groove' => __( 'Groove', 'so-widgets-bundle' ),
288
- 'ridge' => __( 'Ridge', 'so-widgets-bundle' ),
289
- 'inset' => __( 'Inset', 'so-widgets-bundle' ),
290
  'outset' => __( 'Outset', 'so-widgets-bundle' ),
291
  )
292
  ),
@@ -294,72 +316,142 @@ class SiteOrigin_Widgets_ContactForm_Widget extends SiteOrigin_Widget {
294
  ),
295
 
296
  'labels' => array(
297
- 'type' => 'section',
298
- 'label' => __( 'Field labels', 'so-widgets-bundle' ),
299
  'fields' => array(
300
- 'font' => array(
301
- 'type' => 'font',
302
- 'label' => __( 'Font', 'so-widgets-bundle' ),
303
  'default' => 'default',
304
  ),
305
- 'size' => array(
306
- 'type' => 'measurement',
307
- 'label' => __( 'Font size', 'so-widgets-bundle' ),
308
  'default' => 'default',
309
  ),
310
- 'color' => array(
311
- 'type' => 'color',
312
- 'label' => __( 'Color', 'so-widgets-bundle' ),
313
  'default' => 'default',
314
  ),
315
  'position' => array(
316
- 'type' => 'select',
317
- 'label' => __( 'Position', 'so-widgets-bundle' ),
318
  'default' => 'above',
319
  'options' => array(
320
- 'above' => __( 'Above', 'so-widgets-bundle' ),
321
- 'below' => __( 'Below', 'so-widgets-bundle' ),
322
- 'left' => __( 'Left', 'so-widgets-bundle' ),
323
- 'right' => __( 'Right', 'so-widgets-bundle' ),
324
  'inside' => __( 'Inside', 'so-widgets-bundle' ),
325
  ),
326
  ),
327
- 'width' => array(
328
- 'type' => 'measurement',
329
- 'label' => __( 'Width', 'so-widgets-bundle' ),
330
  'default' => '',
331
  ),
332
- 'align' => array(
333
- 'type' => 'select',
334
- 'label' => __( 'Align', 'so-widgets-bundle' ),
335
  'default' => 'left',
336
  'options' => array(
337
- 'left' => __( 'Left', 'so-widgets-bundle' ),
338
- 'right' => __( 'Right', 'so-widgets-bundle' ),
339
- 'center' => __( 'Center', 'so-widgets-bundle' ),
340
  'justify' => __( 'Justify', 'so-widgets-bundle' ),
341
  )
342
  ),
343
  ),
344
  ),
345
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
346
  'descriptions' => array(
347
- 'type' => 'section',
348
- 'label' => __( 'Field descriptions', 'so-widgets-bundle' ),
349
  'fields' => array(
350
- 'size' => array(
351
- 'type' => 'measurement',
352
- 'label' => __( 'Size', 'so-widgets-bundle' ),
353
  'default' => '0.9em',
354
  ),
355
- 'color' => array(
356
- 'type' => 'color',
357
- 'label' => __( 'Color', 'so-widgets-bundle' ),
358
  'default' => '#999999',
359
  ),
360
- 'style' => array(
361
- 'type' => 'select',
362
- 'label' => __( 'Style', 'so-widgets-bundle' ),
363
  'default' => 'italic',
364
  'options' => array(
365
  'italic' => __( 'Italic', 'so-widgets-bundle' ),
@@ -370,151 +462,151 @@ class SiteOrigin_Widgets_ContactForm_Widget extends SiteOrigin_Widget {
370
  ),
371
 
372
  'errors' => array(
373
- 'type' => 'section',
374
- 'label' => __('Error messages', 'so-widgets-bundle'),
375
  'fields' => array(
376
- 'background' => array(
377
- 'type' => 'color',
378
- 'label' => __('Error background color', 'so-widgets-bundle'),
379
  'default' => '#fce4e5',
380
  ),
381
  'border_color' => array(
382
- 'type' => 'color',
383
- 'label' => __('Error border color', 'so-widgets-bundle'),
384
  'default' => '#ec666a',
385
  ),
386
- 'text_color' => array(
387
- 'type' => 'color',
388
- 'label' => __('Error text color', 'so-widgets-bundle'),
389
  'default' => '#ec666a',
390
  ),
391
- 'padding' => array(
392
- 'type' => 'measurement',
393
- 'label' => __('Error padding', 'so-widgets-bundle'),
394
  'default' => '5px',
395
  ),
396
- 'margin' => array(
397
- 'type' => 'measurement',
398
- 'label' => __('Error margin', 'so-widgets-bundle'),
399
  'default' => '10px',
400
  ),
401
  )
402
  ),
403
 
404
  'submit' => array(
405
- 'type' => 'section',
406
- 'label' => __('Submit button', 'so-widgets-bundle'),
407
  'fields' => array(
408
  'styled' => array(
409
- 'type' => 'checkbox',
410
- 'label' => __('Style submit button', 'so-widgets-bundle'),
411
- 'description' => __('Style the button or leave it with default theme styling.', 'so-widgets-bundle'),
412
- 'default' => true,
413
  ),
414
 
415
- 'background_color' => array(
416
- 'type' => 'color',
417
- 'label' => __('Background color', 'so-widgets-bundle'),
418
  'default' => '#eeeeee',
419
  ),
420
  'background_gradient' => array(
421
- 'type' => 'slider',
422
- 'label' => __('Gradient intensity', 'so-widgets-bundle'),
423
  'default' => 10,
424
  ),
425
- 'border_color' => array(
426
- 'type' => 'color',
427
- 'label' => __('Border color', 'so-widgets-bundle'),
428
  'default' => '#989a9c',
429
  ),
430
- 'border_style' => array(
431
- 'type' => 'select',
432
- 'label' => __('Border style', 'so-widgets-bundle'),
433
  'default' => 'solid',
434
  'options' => array(
435
- 'none' => __('None', 'so-widgets-bundle'),
436
- 'solid' => __('Solid', 'so-widgets-bundle'),
437
- 'dotted' => __('Dotted', 'so-widgets-bundle'),
438
- 'dashed' => __('Dashed', 'so-widgets-bundle'),
439
  )
440
  ),
441
- 'border_width' => array(
442
- 'type' => 'measurement',
443
- 'label' => __('Border width', 'so-widgets-bundle'),
444
  'default' => '1px',
445
  ),
446
- 'border_radius' => array(
447
- 'type' => 'slider',
448
- 'label' => __('Border rounding', 'so-widgets-bundle'),
449
  'default' => 3,
450
- 'max' => 50,
451
- 'min' => 0
452
  ),
453
- 'text_color' => array(
454
- 'type' => 'color',
455
- 'label' => __('Text color', 'so-widgets-bundle'),
456
  'default' => '#5a5a5a',
457
  ),
458
- 'font_size' => array(
459
- 'type' => 'measurement',
460
- 'label' => __('Font size', 'so-widgets-bundle'),
461
  'default' => 'default',
462
  ),
463
- 'weight' => array(
464
- 'type' => 'select',
465
- 'label' => __('Font weight', 'so-widgets-bundle'),
466
  'default' => '500',
467
  'options' => array(
468
- 'normal' => __('Normal', 'so-widgets-bundle'),
469
- '500' => __('Semi-bold', 'so-widgets-bundle'),
470
- 'bold' => __('Bold', 'so-widgets-bundle'),
471
  )
472
  ),
473
- 'padding' => array(
474
- 'type' => 'measurement',
475
- 'label' => __('Padding', 'so-widgets-bundle'),
476
  'default' => '10px',
477
  ),
478
- 'inset_highlight' => array(
479
- 'type' => 'slider',
480
- 'label' => __('Inset highlight', 'so-widgets-bundle'),
481
- 'description' => __('The white highlight at the bottom of the button', 'so-widgets-bundle'),
482
- 'default' => 50,
483
- 'max' => 100,
484
- 'min' => 0
485
  ),
486
  )
487
  ),
488
 
489
  'focus' => array(
490
- 'type' => 'section',
491
- 'label' => __('Input focus', 'so-widgets-bundle'),
492
  'fields' => array(
493
  'style' => array(
494
- 'type' => 'select',
495
- 'label' => __( 'Style', 'so-widgets-bundle' ),
496
  'default' => 'solid',
497
  'options' => array(
498
  'dotted' => __( 'Dotted', 'so-widgets-bundle' ),
499
  'dashed' => __( 'Dashed', 'so-widgets-bundle' ),
500
- 'solid' => __( 'Solid', 'so-widgets-bundle' ),
501
  'double' => __( 'Double', 'so-widgets-bundle' ),
502
  'groove' => __( 'Groove', 'so-widgets-bundle' ),
503
- 'ridge' => __( 'Ridge', 'so-widgets-bundle' ),
504
- 'inset' => __( 'Inset', 'so-widgets-bundle' ),
505
  'outset' => __( 'Outset', 'so-widgets-bundle' ),
506
- 'none' => __( 'None', 'so-widgets-bundle' ),
507
  'hidden' => __( 'Hidden', 'so-widgets-bundle' ),
508
  )
509
  ),
510
  'color' => array(
511
- 'type' => 'color',
512
- 'label' => __( 'Color', 'so-widgets-bundle' ),
513
  'default' => 'default',
514
  ),
515
  'width' => array(
516
- 'type' => 'measurement',
517
- 'label' => __( 'Width', 'so-widgets-bundle' ),
518
  'default' => '1px',
519
  ),
520
  ),
@@ -524,11 +616,13 @@ class SiteOrigin_Widgets_ContactForm_Widget extends SiteOrigin_Widget {
524
  );
525
  }
526
 
527
- function get_form_teaser(){
528
- if( ! $this->display_siteorigin_premium_teaser() ) return false;
 
 
529
 
530
  $url = add_query_arg( array(
531
- 'featured_addon' => 'plugin/contact-form-fields',
532
  'featured_plugin' => 'widgets-bundle'
533
  ), 'https://siteorigin.com/downloads/premium/' );
534
 
@@ -541,49 +635,50 @@ class SiteOrigin_Widgets_ContactForm_Widget extends SiteOrigin_Widget {
541
  function sanitize_multiple_emails( $value ) {
542
  $values = explode( ',', $value );
543
  foreach ( $values as $i => $email ) {
544
- $values[$i] = sanitize_email( $email );
545
  }
546
- return implode(',', $values);
 
547
  }
548
 
549
- function modify_instance( $instance ){
550
  // Use this to set up an initial version of the
551
- if( empty($instance['settings']['to']) ) {
552
- $current_user = wp_get_current_user();
553
  $instance['settings']['to'] = $current_user->user_email;
554
  }
555
- if( empty($instance['fields']) ) {
556
  $instance['fields'] = array(
557
  array(
558
- 'type' => 'name',
559
- 'label' => __('Your Name', 'so-widgets-bundle'),
560
  'required' => array(
561
- 'required' => true,
562
- 'missing_message' => __('Please enter your name', 'so-widgets-bundle'),
563
  ),
564
  ),
565
  array(
566
- 'type' => 'email',
567
- 'label' => __('Your Email', 'so-widgets-bundle'),
568
  'required' => array(
569
- 'required' => true,
570
- 'missing_message' => __('Please enter a valid email address', 'so-widgets-bundle'),
571
  ),
572
  ),
573
  array(
574
- 'type' => 'subject',
575
- 'label' => __('Subject', 'so-widgets-bundle'),
576
  'required' => array(
577
- 'required' => true,
578
- 'missing_message' => __('Please enter a subject', 'so-widgets-bundle'),
579
  ),
580
  ),
581
  array(
582
- 'type' => 'textarea',
583
- 'label' => __('Message', 'so-widgets-bundle'),
584
  'required' => array(
585
- 'required' => true,
586
- 'missing_message' => __('Please write something', 'so-widgets-bundle'),
587
  ),
588
  ),
589
  );
@@ -595,21 +690,23 @@ class SiteOrigin_Widgets_ContactForm_Widget extends SiteOrigin_Widget {
595
  function get_template_variables( $instance, $args ) {
596
  $vars = array();
597
 
598
- unset($instance['title']);
599
- unset($instance['display_title']);
600
- unset($instance['design']);
601
- unset($instance['panels_info']);
602
- unset($instance['_sow_form_id']);
 
 
603
 
604
- $vars['instance_hash'] = md5( serialize( $instance) );
605
  return $vars;
606
  }
607
 
608
- function get_less_variables( $instance ){
609
- if( empty( $instance['design']['labels']['font'] ) ) {
610
- $instance['design']['labels'] = array('font' => '');
611
  }
612
- $font = siteorigin_widget_get_font( $instance['design']['labels']['font'] );
 
613
 
614
  $label_position = $instance['design']['labels']['position'];
615
  if ( $label_position != 'left' && $label_position != 'right' ) {
@@ -618,50 +715,64 @@ class SiteOrigin_Widgets_ContactForm_Widget extends SiteOrigin_Widget {
618
 
619
  $vars = array(
620
  // All the container variables.
621
- 'container_background' => $instance['design']['container']['background'],
622
- 'container_padding' => $instance['design']['container']['padding'],
623
- 'container_border_color' => $instance['design']['container']['border_color'],
624
- 'container_border_width' => $instance['design']['container']['border_width'],
625
- 'container_border_style' => $instance['design']['container']['border_style'],
626
 
627
  // Field labels
628
- 'label_font_family' => $font['family'],
629
- 'label_font_weight' => ! empty( $font['weight'] ) ? $font['weight'] : '',
630
- 'label_font_size' => $instance['design']['labels']['size'],
631
- 'label_font_color' => $instance['design']['labels']['color'],
632
- 'label_position' => $label_position,
633
- 'label_width' => $instance['design']['labels']['width'],
634
- 'label_align' => $instance['design']['labels']['align'],
 
 
 
 
 
 
 
 
 
 
 
 
 
 
635
 
636
  // Field descriptions
637
- 'description_font_size' => $instance['design']['descriptions']['size'],
638
- 'description_font_color' => $instance['design']['descriptions']['color'],
639
- 'description_font_style' => $instance['design']['descriptions']['style'],
640
 
641
  // The error message styles
642
- 'error_background' => $instance['design']['errors']['background'],
643
- 'error_border' => $instance['design']['errors']['border_color'],
644
- 'error_text' => $instance['design']['errors']['text_color'],
645
- 'error_padding' => $instance['design']['errors']['padding'],
646
- 'error_margin' => $instance['design']['errors']['margin'],
647
 
648
  // The submit button
649
- 'submit_background_color' => $instance['design']['submit']['background_color'],
650
  'submit_background_gradient' => $instance['design']['submit']['background_gradient'] . '%',
651
- 'submit_border_color' => $instance['design']['submit']['border_color'],
652
- 'submit_border_style' => $instance['design']['submit']['border_style'],
653
- 'submit_border_width' => $instance['design']['submit']['border_width'],
654
- 'submit_border_radius' => $instance['design']['submit']['border_radius'] . 'px',
655
- 'submit_text_color' => $instance['design']['submit']['text_color'],
656
- 'submit_font_size' => $instance['design']['submit']['font_size'],
657
- 'submit_weight' => $instance['design']['submit']['weight'],
658
- 'submit_padding' => $instance['design']['submit']['padding'],
659
- 'submit_inset_highlight' => $instance['design']['submit']['inset_highlight'] . '%',
660
 
661
  // Input focus styles
662
- 'outline_style' => $instance['design']['focus']['style'],
663
- 'outline_color' => $instance['design']['focus']['color'],
664
- 'outline_width' => $instance['design']['focus']['width'],
665
  );
666
 
667
  return $vars;
@@ -670,19 +781,20 @@ class SiteOrigin_Widgets_ContactForm_Widget extends SiteOrigin_Widget {
670
  function get_google_font_fields( $instance ) {
671
  return array(
672
  $instance['design']['labels']['font'],
 
673
  );
674
  }
675
 
676
- static function name_from_label( $label, & $ids ){
677
  $it = 0;
678
 
679
  $label = str_replace( ' ', '-', strtolower( $label ) );
680
  $label = sanitize_html_class( $label );
681
  do {
682
  $id = $label . ( $it > 0 ? '-' . $it : '' );
683
- $it++;
684
- } while( !empty($ids[$id]) );
685
- $ids[$id] = true;
686
 
687
  return $id;
688
  }
@@ -694,39 +806,54 @@ class SiteOrigin_Widgets_ContactForm_Widget extends SiteOrigin_Widget {
694
  * @param array $errors
695
  * @param $instance
696
  */
697
- function render_form_fields( $fields, $errors = array(), $instance ){
698
 
699
- $field_ids = array();
700
  $label_position = $instance['design']['labels']['position'];
701
 
702
- foreach( $fields as $i => $field ) {
703
- if( empty( $field['type'] ) ) continue;
 
 
 
 
 
 
 
 
 
 
704
  // Using `$instance['_sow_form_id']` to uniquely identify contact form fields across widgets.
705
  // I.e. if there are many contact form widgets on a page this will prevent field name conflicts.
706
- $field_name = $this->name_from_label( !empty($field['label']) ? $field['label'] : $i, $field_ids ) . '-' . $instance['_sow_form_id'];
707
- $field_id = 'sow-contact-form-field-' . $field_name;
708
 
709
  $value = '';
710
- if( !empty($_POST[$field_name]) ) {
711
- $value = stripslashes_deep( $_POST[$field_name] );
712
  }
713
 
714
- ?><div class="sow-form-field sow-form-field-<?php echo sanitize_html_class( $field['type'] ) ?>"><?php
 
715
 
716
- $is_text_input_field = ( $field['type'] != 'select' && $field['type'] != 'radio' && $field['type'] != 'checkboxes');
 
 
 
 
717
  // label should be rendered before the field, then CSS will do the exact positioning.
718
  $render_label_before_field = ( $label_position != 'below' && $label_position != 'inside' ) || ( $label_position == 'inside' && ! $is_text_input_field );
719
- if( empty( $label_position ) || $render_label_before_field ) {
720
- $this->render_form_label( $field_id, $field['label'], $instance );
721
  }
722
 
723
  $show_placeholder = $label_position == 'inside';
724
 
725
- if( !empty($errors[$field_name]) ) {
726
  ?>
727
- <div class="sow-error">
728
- <?php echo wp_kses_post( $errors[$field_name] ) ?>
729
- </div>
730
  <?php
731
  }
732
  ?><span class="sow-field-container"><?php
@@ -741,24 +868,25 @@ class SiteOrigin_Widgets_ContactForm_Widget extends SiteOrigin_Widget {
741
  'field_id' => $field_id,
742
  'field_name' => $field_name,
743
  'value' => $value,
744
- 'show_placeholder' => $show_placeholder
 
745
  );
746
  $contact_field = new $class_name( $field_input_options );
747
  $contact_field->render();
748
  } else {
749
- echo '<input type="text" name="' . esc_attr( $field_name ) . '" id="' . esc_attr( $field_id ) . '" value="' . esc_attr( $value ) . '" class="sow-text-field" ' . ( $show_placeholder ? 'placeholder="' . esc_attr( $field['label'] ) . '"' : '' ) . '/>';
750
  }
751
  ?></span><?php
752
 
753
- if( ! empty( $label_position ) && $label_position == 'below' ) {
754
- $this->render_form_label( $field_id, $field['label'], $instance );
755
  }
756
 
757
  if ( ! empty( $field['description'] ) ) {
758
  ?>
759
- <div class="sow-form-field-description">
760
- <?php echo wp_kses_post( $field['description'] ) ?>
761
- </div>
762
  <?php
763
  }
764
 
@@ -767,12 +895,14 @@ class SiteOrigin_Widgets_ContactForm_Widget extends SiteOrigin_Widget {
767
  }
768
 
769
  function render_form_label( $field_id, $label, $position ) {
770
- if( !empty($label) ) {
771
  $label_class = '';
772
- if( ! empty( $position ) ) {
773
  $label_class = ' class="sow-form-field-label-' . $position . '"';
774
  }
775
- ?><label<?php if( ! empty( $label_class ) ) echo $label_class; ?> for="<?php echo esc_attr( $field_id ) ?>"><strong><?php echo esc_html( $label ) ?></strong></label>
 
 
776
  <?php
777
  }
778
  }
@@ -780,9 +910,11 @@ class SiteOrigin_Widgets_ContactForm_Widget extends SiteOrigin_Widget {
780
  /**
781
  * Ajax action handler to send the form
782
  */
783
- function contact_form_action( $instance, $storage_hash ){
784
- if( empty($_POST['instance_hash']) || $_POST['instance_hash'] != $storage_hash ) return false;
785
- if( empty($instance['fields']) ) {
 
 
786
  array(
787
  'status' => null,
788
  );
@@ -791,135 +923,139 @@ class SiteOrigin_Widgets_ContactForm_Widget extends SiteOrigin_Widget {
791
  // Make sure that this action only runs once per instance
792
  static $send_cache = array();
793
  $send_cache_hash = md5( serialize( $instance ) . '::' . $storage_hash );
794
- if( isset( $send_cache[$send_cache_hash] ) ) {
795
- return $send_cache[$send_cache_hash];
796
  }
797
 
798
- $errors = array();
799
  $email_fields = array();
800
- $post_vars = stripslashes_deep( $_POST );
801
 
802
  $field_ids = array();
803
- foreach( $instance['fields'] as $i => $field ) {
804
- if( empty( $field['type'] ) ) continue;
805
- $field_name = $this->name_from_label( !empty($field['label']) ? $field['label'] : $i, $field_ids ) . '-' . $instance['_sow_form_id'];
806
- $value = !empty( $post_vars[$field_name] ) ? $post_vars[$field_name] : '';
807
-
808
- if( $field['required']['required'] && empty($value) ) {
809
- // Add in the default subject
810
- if( $field['type'] == 'subject' && !empty($instance['settings']['default_subject'] ) ) {
811
- $value = $instance['settings']['default_subject'];
 
 
 
 
 
 
 
812
  } else {
813
- $errors[ $field_name ] = ! empty( $field['required']['missing_message'] ) ? $field['required']['missing_message'] : __( 'Required field', 'so-widgets-bundle' );
814
- continue;
815
  }
816
  }
817
 
818
- switch( $field['type'] ) {
 
819
  case 'email':
820
- if( $value != sanitize_email($value) ) {
821
- $errors[$field_name] = __('Invalid email address.', 'so-widgets-bundle');
822
  }
 
 
823
  break;
824
- }
825
 
826
- if( in_array( $field['type'], array( 'email', 'name', 'subject' ) ) ) {
827
- $email_fields[$field['type']] = $value;
828
- }
829
- else {
830
- if( empty($email_fields['message']) ) $email_fields['message'] = array();
831
-
832
- switch( $field['type'] ) {
833
- case 'checkboxes':
834
- $email_fields['message'][] = array(
835
- 'label' => $field['label'],
836
- 'value' => implode(', ', $value),
837
- );
838
- break;
839
-
840
- default:
841
- $email_fields['message'][] = array(
842
- 'label' => $field['label'],
843
- 'value' => $value,
844
- );
845
- break;
846
- }
847
  }
848
  }
849
 
850
  // Add in the default subject if no subject field is defined in the form at all
851
- if ( !isset( $email_fields['subject'] ) && !empty($instance['settings']['default_subject']) ) {
852
  $email_fields['subject'] = $instance['settings']['default_subject'];
853
  }
854
 
855
  // Add in the default subject prefix
856
- if( !empty( $email_fields['subject'] ) && !empty($instance['settings']['subject_prefix']) ) {
857
  $email_fields['subject'] = $instance['settings']['subject_prefix'] . ' ' . $email_fields['subject'];
858
  }
859
 
860
  // Now we do some email message validation
861
- if( empty($errors) ) {
862
  $email_errors = $this->validate_mail( $email_fields );
863
  // Missing subject input and no default subject set. Revert to using a generic default 'SiteName Contact Form'
864
  if ( ! isset( $email_fields['subject'] ) && ! empty( $email_errors['subject'] ) ) {
865
- unset($email_errors['subject']);
866
  $email_fields['subject'] = get_bloginfo() . ' ' . __( 'Contact Form', 'siteorigin-widgets' );
867
  }
868
- if( !empty($email_errors) ) {
869
  $errors['_general'] = $email_errors;
870
  }
871
  }
872
 
873
  // And if we get this far, do some spam filtering and Captcha checking
874
- if( empty($errors) ) {
875
  $spam_errors = $this->spam_check( $post_vars, $email_fields, $instance );
876
- if( !empty($spam_errors) ) {
877
  // Now we can decide how we want to handle this spam status
878
- if( !empty($spam_errors['akismet']) && $instance['spam']['akismet']['spam_action'] == 'tag' ) {
879
- unset($spam_errors['akismet']);
880
  $email_fields['subject'] = '[spam] ' . $email_fields['subject'];
881
  }
882
  }
883
 
884
- if( !empty($spam_errors) ) {
885
  $errors['_general'] = $spam_errors;
886
  }
887
  }
888
 
889
- if( empty($errors) ) {
890
  // We can send the email
891
  $success = $this->send_mail( $email_fields, $instance );
892
 
893
- if( is_wp_error( $success ) ) {
894
  $errors['_general']['send'] = $success->get_error_message();
895
- }
896
- else if( !$success ) {
897
- $errors['_general']['send'] = __('Error sending email, please try again later.', 'so-widgets-bundle');
898
  }
899
  }
900
 
901
- $send_cache[$send_cache_hash] = array(
902
- 'status' => empty($errors) ? 'success' : 'fail',
903
  'errors' => $errors
904
  );
905
 
906
- return $send_cache[$send_cache_hash];
907
  }
908
 
909
  /**
910
  * Validate fields of an email message
911
  */
912
- function validate_mail( $email_fields ){
913
  $errors = array();
914
- if( empty($email_fields['email']) ) {
915
- $errors['email'] = __('A valid email is required', 'so-widgets-bundle');
916
- }
917
- elseif( function_exists('filter_var') && !filter_var($email_fields['email'], FILTER_VALIDATE_EMAIL) ) {
918
- $errors['email'] = __('The email address is invalid', 'so-widgets-bundle');
919
  }
920
 
921
- if( empty($email_fields['subject']) ) {
922
- $errors['subject'] = __('Missing subject', 'so-widgets-bundle');
923
  }
924
 
925
  return $errors;
@@ -933,79 +1069,79 @@ class SiteOrigin_Widgets_ContactForm_Widget extends SiteOrigin_Widget {
933
  *
934
  * @return array
935
  */
936
- function spam_check( $post_vars, $email_fields, $instance ){
937
  $errors = array();
938
 
939
  $recaptcha_config = $instance['spam']['recaptcha'];
940
- $use_recaptcha = $recaptcha_config['use_captcha'] && ! empty( $recaptcha_config['site_key'] ) && ! empty( $recaptcha_config['secret_key'] );
941
- if( $use_recaptcha ) {
942
  $result = wp_remote_post(
943
  'https://www.google.com/recaptcha/api/siteverify',
944
  array(
945
  'body' => array(
946
- 'secret' => $instance['spam']['recaptcha']['secret_key'],
947
  'response' => $post_vars['g-recaptcha-response'],
948
  'remoteip' => isset( $_SERVER['REMOTE_ADDR'] ) ? $_SERVER['REMOTE_ADDR'] : null,
949
  )
950
  )
951
  );
952
 
953
- if( !is_wp_error($result) && !empty($result['body']) ) {
954
  $result = json_decode( $result['body'], true );
955
- if( isset($result['success']) && !$result['success'] ) {
956
- $errors['recaptcha'] = __('Error validating your Captcha response.', 'so-widgets-bundle');
957
  }
958
  }
959
  }
960
 
961
- if( $instance['spam']['akismet']['use_akismet'] && class_exists( 'Akismet' ) ) {
962
  $comment = array();
963
 
964
  $message_text = array();
965
- foreach($email_fields['message'] as $m) {
966
  $message_text[] = $m['value'];
967
  }
968
 
969
- $comment['comment_text'] = $email_fields['subject'] . "\n\n" . implode("\n\n", $message_text);
970
- $comment['comment_author'] = !empty($email_fields['name']) ? $email_fields['name'] : '';
971
  $comment['comment_author_email'] = $email_fields['email'];
972
- $comment['comment_post_ID'] = get_the_ID();
973
 
974
  $comment['comment_type'] = 'contact-form';
975
 
976
- $comment['user_ip'] = isset( $_SERVER['REMOTE_ADDR'] ) ? $_SERVER['REMOTE_ADDR'] : null;
977
- $comment['user_agent'] = isset( $_SERVER['HTTP_USER_AGENT'] ) ? $_SERVER['HTTP_USER_AGENT'] : null;
978
- $comment['referrer'] = isset( $_SERVER['HTTP_REFERER'] ) ? $_SERVER['HTTP_REFERER'] : null;
979
- $comment['blog'] = get_option('home');
980
- $comment['blog_lang'] = get_locale();
981
- $comment['blog_charset'] = get_option('blog_charset');
982
 
983
  // Pretend to check with Akismet
984
  $response = Akismet::http_post( Akismet::build_query( $comment ), 'comment-check' );
985
- $is_spam = !empty($response[1]) && $response[1] == 'true';
986
 
987
- if( $is_spam ) {
988
- $errors['akismet'] = __('Unfortunately our system identified your message as spam.', 'so-widgets-bundle');
989
  }
990
  }
991
 
992
  return $errors;
993
  }
994
 
995
- function send_mail( $email_fields, $instance ){
996
  $body = '<strong>From:</strong> <a href="mailto:' . sanitize_email( $email_fields['email'] ) . '">' . esc_html( $email_fields['name'] ) . '</a> &#60;' . sanitize_email( $email_fields['email'] ) . "&#62; \n\n";
997
- foreach( $email_fields['message'] as $m ) {
998
  $body .= '<strong>' . $m['label'] . ':</strong>';
999
  $body .= "\n";
1000
  $body .= htmlspecialchars( $m['value'] );
1001
  $body .= "\n\n";
1002
  }
1003
- $body = wpautop( trim($body) );
1004
 
1005
- if( $instance['settings']['to'] == 'ibrossiter@gmail.com' || $instance['settings']['to'] == 'test@example.com' || empty( $instance['settings']['to'] ) ) {
1006
  // Replace default and empty email address.
1007
  // Also replaces the email address that comes from the prebuilt layout directory
1008
- $instance['settings']['to'] = get_option('admin_email');
1009
  }
1010
 
1011
  $headers = array(
@@ -1014,21 +1150,21 @@ class SiteOrigin_Widgets_ContactForm_Widget extends SiteOrigin_Widget {
1014
  );
1015
 
1016
  // Check if this is a duplicated send
1017
- $hash = md5( json_encode( array(
1018
- 'to' => $instance['settings']['to'],
1019
  'subject' => $email_fields['subject'],
1020
- 'body' => $body,
1021
  'headers' => $headers
1022
  ) ) );
1023
  $hash_check = get_option( 'so_contact_hashes', array() );
1024
  // Remove expired hashes
1025
- foreach( $hash_check as $h => $t ) {
1026
- if( $t < time() - 5 * 60 ) {
1027
- unset( $hash_check[$h] );
1028
  }
1029
  }
1030
 
1031
- if( isset( $hash_check[$hash] ) ) {
1032
  // Store the version with the expired hashes removed
1033
  update_option( 'so_contact_hashes', $hash_check, true );
1034
 
@@ -1037,8 +1173,8 @@ class SiteOrigin_Widgets_ContactForm_Widget extends SiteOrigin_Widget {
1037
  }
1038
 
1039
  $mail_success = wp_mail( $instance['settings']['to'], $email_fields['subject'], $body, $headers );
1040
- if( $mail_success ) {
1041
- $hash_check[$hash] = time();
1042
  update_option( 'so_contact_hashes', $hash_check, true );
1043
  }
1044
 
@@ -1054,11 +1190,12 @@ class SiteOrigin_Widgets_ContactForm_Widget extends SiteOrigin_Widget {
1054
  *
1055
  * @return mixed
1056
  */
1057
- static function sanitize_header( $value ){
1058
- return preg_replace('=((<CR>|<LF>|0x0A/%0A|0x0D/%0D|\\n|\\r)\S).*=i', null, $value);
1059
  }
1060
 
1061
  }
 
1062
  siteorigin_widget_register( 'sow-contact-form', __FILE__, 'SiteOrigin_Widgets_ContactForm_Widget' );
1063
 
1064
  // Tell the autoloader where to look for contactform field classes.
@@ -1081,4 +1218,5 @@ function contactform_fields_class_paths( $class_paths ) {
1081
 
1082
  return $class_paths;
1083
  }
 
1084
  add_filter( 'init', 'contactform_fields_class_paths' );
1
  <?php
2
+
3
  /*
4
  Widget Name: Contact Form
5
  Description: A light weight contact form builder.
9
 
10
  class SiteOrigin_Widgets_ContactForm_Widget extends SiteOrigin_Widget {
11
 
12
+ function __construct() {
13
 
14
  parent::__construct(
15
  'sow-contact-form',
16
+ __( 'SiteOrigin Contact Form', 'so-widgets-bundle' ),
17
  array(
18
  'description' => __( 'Create a simple contact form for your users to get hold of you.', 'so-widgets-bundle' ),
19
  ),
20
  array(),
21
  false,
22
+ plugin_dir_path( __FILE__ )
23
  );
24
  }
25
 
26
  /**
27
  * Initialize the contact form widget
28
  */
29
+ function initialize() {
30
  $this->register_frontend_scripts(
31
  array(
32
  array(
33
  'sow-contact',
34
+ plugin_dir_url( __FILE__ ) . 'js/contact' . SOW_BUNDLE_JS_SUFFIX . '.js',
35
  array( 'jquery' ),
36
  SOW_BUNDLE_VERSION
37
  )
40
  add_filter( 'siteorigin_widgets_sanitize_field_multiple_emails', array( $this, 'sanitize_multiple_emails' ) );
41
  }
42
 
43
+ function get_widget_form() {
44
  return array(
45
  'title' => array(
46
+ 'type' => 'text',
47
+ 'label' => __( 'Title', 'so-widgets-bundle' ),
48
+ 'default' => __( 'Contact Us', 'so-widgets-bundle' ),
49
  ),
50
 
51
  'display_title' => array(
52
+ 'type' => 'checkbox',
53
+ 'label' => __( 'Display title', 'so-widgets-bundle' ),
54
  ),
55
 
56
  'settings' => array(
57
+ 'type' => 'section',
58
+ 'label' => __( 'Settings', 'so-widgets-bundle' ),
59
+ 'hide' => true,
60
  'fields' => array(
61
+ 'to' => array(
62
+ 'type' => 'text',
63
+ 'label' => __( 'To email address', 'so-widgets-bundle' ),
64
+ 'description' => __( 'Where contact emails will be delivered to.', 'so-widgets-bundle' ),
65
+ 'sanitize' => 'multiple_emails',
66
  ),
67
+ 'default_subject' => array(
68
+ 'type' => 'text',
69
+ 'label' => __( 'Default subject', 'so-widgets-bundle' ),
70
+ 'description' => __( "Subject to use when there isn't one available.", 'so-widgets-bundle' ),
71
  ),
72
+ 'subject_prefix' => array(
73
+ 'type' => 'text',
74
+ 'label' => __( 'Subject prefix', 'so-widgets-bundle' ),
75
+ 'description' => __( 'Prefix added to all incoming email subjects.', 'so-widgets-bundle' ),
76
  ),
77
+ 'success_message' => array(
78
+ 'type' => 'tinymce',
79
+ 'label' => __( 'Success message', 'so-widgets-bundle' ),
80
+ 'description' => __( 'Message to display after message successfully sent.', 'so-widgets-bundle' ),
81
+ 'default' => __( "Thanks for contacting us. We'll get back to you shortly.", 'so-widgets-bundle' )
82
  ),
83
+ 'submit_text' => array(
84
+ 'type' => 'text',
85
+ 'label' => __( 'Submit button text', 'so-widgets-bundle' ),
86
+ 'default' => __( "Contact Us", 'so-widgets-bundle' )
87
+ ),
88
+ 'required_field_indicator' => array(
89
+ 'type' => 'checkbox',
90
+ 'label' => __( 'Indicate required fields with asterisk (*)', 'so-widgets-bundle' ),
91
+ 'state_emitter' => array(
92
+ 'callback' => 'conditional',
93
+ 'args' => array(
94
+ 'required_fields[show]: val',
95
+ 'required_fields[hide]: ! val'
96
+ ),
97
+ )
98
+ ),
99
+ 'required_field_indicator_message' => array(
100
+ 'type' => 'text',
101
+ 'label' => __( 'Required field indicator message', 'so-widgets-bundle' ),
102
+ 'default' => __( 'Fields marked with * are required', 'so-widgets-bundle' ),
103
+ 'state_handler' => array(
104
+ 'required_fields[show]' => array( 'show' ),
105
+ 'required_fields[hide]' => array( 'hide' ),
106
+ )
107
+ ),
108
+
109
  )
110
  ),
111
 
112
  'fields' => array(
113
 
114
+ 'type' => 'repeater',
115
+ 'label' => __( 'Fields', 'so-widgets-bundle' ),
116
+ 'item_name' => __( 'Field', 'so-widgets-bundle' ),
117
  'item_label' => array(
118
+ 'selector' => "[id*='label']",
119
  ),
120
+ 'fields' => array(
121
 
122
  'type' => array(
123
+ 'type' => 'select',
124
+ 'label' => __( 'Field Type', 'so-widgets-bundle' ),
125
+ 'options' => array(
126
+ 'name' => __( 'Name', 'so-widgets-bundle' ),
127
+ 'email' => __( 'Email', 'so-widgets-bundle' ),
128
+ 'subject' => __( 'Subject', 'so-widgets-bundle' ),
129
+ 'text' => __( 'Text', 'so-widgets-bundle' ),
130
+ 'textarea' => __( 'Text Area', 'so-widgets-bundle' ),
131
+ 'select' => __( 'Dropdown Select', 'so-widgets-bundle' ),
132
  'checkboxes' => __( 'Checkboxes', 'so-widgets-bundle' ),
133
+ 'radio' => __( 'Radio', 'so-widgets-bundle' ),
134
  ),
135
  'state_emitter' => array(
136
  'callback' => 'select',
137
+ 'args' => array( 'field_type_{$repeater}' ),
138
  )
139
  ),
140
 
141
  'label' => array(
142
+ 'type' => 'text',
143
+ 'label' => __( 'Label', 'so-widgets-bundle' ),
144
  ),
145
 
146
  'description' => array(
147
+ 'type' => 'text',
148
+ 'label' => __( 'Description', 'so-widgets-bundle' ),
149
+ 'description' => __( 'This text will appear small beneath the input field.', 'so-widgets-bundle' ),
150
  ),
151
 
152
  'required' => array(
153
+ 'type' => 'section',
154
+ 'label' => __( 'Required Field', 'so-widgets-bundle' ),
155
  'fields' => array(
156
+ 'required' => array(
157
+ 'type' => 'checkbox',
158
+ 'label' => __( 'Required field', 'so-widgets-bundle' ),
159
+ 'description' => __( 'Is this field required?', 'so-widgets-bundle' ),
160
  ),
161
  'missing_message' => array(
162
+ 'type' => 'text',
163
+ 'label' => __( 'Missing message', 'so-widgets-bundle' ),
164
+ 'description' => __( 'Error message to display if this field is missing.', 'so-widgets-bundle' ),
165
  )
166
  )
167
  ),
168
 
169
  // This are for select, radio, and checkboxes
170
+ 'options' => array(
171
+ 'type' => 'repeater',
172
+ 'label' => __( 'Options', 'so-widgets-bundle' ),
173
+ 'item_name' => __( 'Option', 'so-widgets-bundle' ),
174
+ 'item_label' => array( 'selector' => "[id*='value']" ),
175
+ 'fields' => array(
176
  'value' => array(
177
+ 'type' => 'text',
178
  'label' => __( 'Value', 'so-widgets-bundle' ),
179
  ),
180
  ),
182
  // These are only required for a few states
183
  'state_handler' => array(
184
  'field_type_{$repeater}[select,checkboxes,radio]' => array( 'show' ),
185
+ '_else[field_type_{$repeater}]' => array( 'hide' ),
186
  ),
187
  ),
188
  ),
189
  ),
190
 
191
  'spam' => array(
192
+ 'type' => 'section',
193
+ 'label' => __( 'Spam Protection', 'so-widgets-bundle' ),
194
+ 'hide' => true,
195
  'fields' => array(
196
 
197
  'recaptcha' => array(
198
+ 'type' => 'section',
199
+ 'label' => __( 'reCAPTCHA', 'so-widgets-bundle' ),
200
  'fields' => array(
201
  'use_captcha' => array(
202
+ 'type' => 'checkbox',
203
+ 'label' => __( 'Use reCAPTCHA', 'so-widgets-bundle' ),
204
  'default' => false,
205
  ),
206
+ 'site_key' => array(
207
+ 'type' => 'text',
208
  'label' => __( 'reCAPTCHA Site Key', 'so-widgets-bundle' ),
209
  ),
210
+ 'secret_key' => array(
211
+ 'type' => 'text',
212
  'label' => __( 'reCAPTCHA Secret Key', 'so-widgets-bundle' ),
213
  ),
214
+ 'theme' => array(
215
+ 'type' => 'select',
216
+ 'label' => __( 'Theme', 'so-widgets-bundle' ),
217
  'default' => 'light',
218
  'options' => array(
219
  'light' => __( 'Light', 'so-widgets-bundle' ),
220
+ 'dark' => __( 'Dark', 'so-widgets-bundle' ),
221
  ),
222
  ),
223
+ 'type' => array(
224
+ 'type' => 'select',
225
+ 'label' => __( 'Challenge type', 'so-widgets-bundle' ),
226
  'default' => 'image',
227
  'options' => array(
228
  'image' => __( 'Image', 'so-widgets-bundle' ),
229
  'audio' => __( 'Audio', 'so-widgets-bundle' ),
230
  ),
231
  ),
232
+ 'size' => array(
233
+ 'type' => 'select',
234
+ 'label' => __( 'Size', 'so-widgets-bundle' ),
235
  'default' => 'normal',
236
  'options' => array(
237
+ 'normal' => __( 'Normal', 'so-widgets-bundle' ),
238
  'compact' => __( 'Compact', 'so-widgets-bundle' ),
239
  ),
240
  ),
242
  ),
243
 
244
  'akismet' => array(
245
+ 'type' => 'section',
246
+ 'label' => __( 'Akismet', 'so-widgets-bundle' ),
247
  'fields' => array(
248
+ 'use_akismet' => array(
249
+ 'type' => 'checkbox',
250
+ 'label' => __( 'Use Akismet filtering', 'so-widgets-bundle' ),
251
  'default' => true,
252
  ),
253
+ 'spam_action' => array(
254
+ 'type' => 'select',
255
+ 'label' => __( 'Spam action', 'so-widgets-bundle' ),
256
+ 'options' => array(
257
+ 'error' => __( 'Show error message', 'so-widgets-bundle' ),
258
+ 'tag' => __( 'Tag as spam in subject', 'so-widgets-bundle' ),
259
  ),
260
+ 'description' => __( 'How to handle submissions that are identified as spam.', 'so-widgets-bundle' ),
261
+ 'default' => 'error',
262
  ),
263
  )
264
  ),
266
  ),
267
 
268
  'design' => array(
269
+ 'type' => 'section',
270
+ 'label' => __( 'Design', 'so-widgets-bundle' ),
271
+ 'hide' => true,
272
  'fields' => array(
273
 
274
  'container' => array(
275
+ 'type' => 'section',
276
+ 'label' => __( 'Container', 'so-widgets-bundle' ),
277
  'fields' => array(
278
+ 'background' => array(
279
+ 'type' => 'color',
280
+ 'label' => __( 'Background color', 'so-widgets-bundle' ),
281
  'default' => '#f2f2f2',
282
  ),
283
+ 'padding' => array(
284
+ 'type' => 'measurement',
285
+ 'label' => __( 'Padding', 'so-widgets-bundle' ),
286
  'default' => '10px',
287
  ),
288
  'border_color' => array(
289
+ 'type' => 'color',
290
+ 'label' => __( 'Border color', 'so-widgets-bundle' ),
291
  'default' => '#c0c0c0',
292
  ),
293
  'border_width' => array(
294
+ 'type' => 'measurement',
295
+ 'label' => __( 'Border width', 'so-widgets-bundle' ),
296
  'default' => '1px',
297
  ),
298
  'border_style' => array(
299
+ 'type' => 'select',
300
+ 'label' => __( 'Border style', 'so-widgets-bundle' ),
301
  'default' => 'solid',
302
  'options' => array(
303
+ 'none' => __( 'None', 'so-widgets-bundle' ),
304
  'hidden' => __( 'Hidden', 'so-widgets-bundle' ),
305
  'dotted' => __( 'Dotted', 'so-widgets-bundle' ),
306
  'dashed' => __( 'Dashed', 'so-widgets-bundle' ),
307
+ 'solid' => __( 'Solid', 'so-widgets-bundle' ),
308
  'double' => __( 'Double', 'so-widgets-bundle' ),
309
  'groove' => __( 'Groove', 'so-widgets-bundle' ),
310
+ 'ridge' => __( 'Ridge', 'so-widgets-bundle' ),
311
+ 'inset' => __( 'Inset', 'so-widgets-bundle' ),
312
  'outset' => __( 'Outset', 'so-widgets-bundle' ),
313
  )
314
  ),
316
  ),
317
 
318
  'labels' => array(
319
+ 'type' => 'section',
320
+ 'label' => __( 'Field labels', 'so-widgets-bundle' ),
321
  'fields' => array(
322
+ 'font' => array(
323
+ 'type' => 'font',
324
+ 'label' => __( 'Font', 'so-widgets-bundle' ),
325
  'default' => 'default',
326
  ),
327
+ 'size' => array(
328
+ 'type' => 'measurement',
329
+ 'label' => __( 'Font size', 'so-widgets-bundle' ),
330
  'default' => 'default',
331
  ),
332
+ 'color' => array(
333
+ 'type' => 'color',
334
+ 'label' => __( 'Color', 'so-widgets-bundle' ),
335
  'default' => 'default',
336
  ),
337
  'position' => array(
338
+ 'type' => 'select',
339
+ 'label' => __( 'Position', 'so-widgets-bundle' ),
340
  'default' => 'above',
341
  'options' => array(
342
+ 'above' => __( 'Above', 'so-widgets-bundle' ),
343
+ 'below' => __( 'Below', 'so-widgets-bundle' ),
344
+ 'left' => __( 'Left', 'so-widgets-bundle' ),
345
+ 'right' => __( 'Right', 'so-widgets-bundle' ),
346
  'inside' => __( 'Inside', 'so-widgets-bundle' ),
347
  ),
348
  ),
349
+ 'width' => array(
350
+ 'type' => 'measurement',
351
+ 'label' => __( 'Width', 'so-widgets-bundle' ),
352
  'default' => '',
353
  ),
354
+ 'align' => array(
355
+ 'type' => 'select',
356
+ 'label' => __( 'Align', 'so-widgets-bundle' ),
357
  'default' => 'left',
358
  'options' => array(
359
+ 'left' => __( 'Left', 'so-widgets-bundle' ),
360
+ 'right' => __( 'Right', 'so-widgets-bundle' ),
361
+ 'center' => __( 'Center', 'so-widgets-bundle' ),
362
  'justify' => __( 'Justify', 'so-widgets-bundle' ),
363
  )
364
  ),
365
  ),
366
  ),
367
 
368
+ 'fields' => array(
369
+ 'type' => 'section',
370
+ 'label' => __( 'Fields', 'so-widgets-bundle' ),
371
+ 'fields' => array(
372
+ 'font' => array(
373
+ 'type' => 'font',
374
+ 'label' => __( 'Font', 'so-widgets-bundle' ),
375
+ 'default' => 'default',
376
+ ),
377
+ 'font_size' => array(
378
+ 'type' => 'measurement',
379
+ 'label' => __( 'Font Size', 'so-widgets-bundle' )
380
+ ),
381
+ 'color' => array(
382
+ 'type' => 'color',
383
+ 'label' => __( 'Text Color', 'so-widgets-bundle' ),
384
+ ),
385
+ 'margin' => array(
386
+ 'type' => 'measurement',
387
+ 'label' => __( 'Margin', 'so-widgets-bundle' )
388
+ ),
389
+ 'padding' => array(
390
+ 'type' => 'measurement',
391
+ 'label' => __( 'Padding', 'so-widgets-bundle' )
392
+ ),
393
+ 'height' => array(
394
+ 'type' => 'measurement',
395
+ 'label' => __( 'Height', 'so-widgets-bundle' )
396
+ ),
397
+ 'background' => array(
398
+ 'type' => 'color',
399
+ 'label' => __( 'Background', 'so-widgets-bundle' ),
400
+ ),
401
+ 'border_color' => array(
402
+ 'type' => 'color',
403
+ 'label' => __( 'Border color', 'so-widgets-bundle' ),
404
+ 'default' => '#c0c0c0',
405
+ ),
406
+ 'border_width' => array(
407
+ 'type' => 'measurement',
408
+ 'label' => __( 'Border width', 'so-widgets-bundle' ),
409
+ 'default' => '1px',
410
+ ),
411
+ 'border_style' => array(
412
+ 'type' => 'select',
413
+ 'label' => __( ' Border style', 'so-widgets-bundle' ),
414
+ 'default' => 'solid',
415
+ 'options' => array(
416
+ 'none' => __( 'None', 'so-widgets-bundle' ),
417
+ 'hidden' => __( 'Hidden', 'so-widgets-bundle' ),
418
+ 'dotted' => __( 'Dotted', 'so-widgets-bundle' ),
419
+ 'dashed' => __( 'Dashed', 'so-widgets-bundle' ),
420
+ 'solid' => __( 'Solid', 'so-widgets-bundle' ),
421
+ 'double' => __( 'Double', 'so-widgets-bundle' ),
422
+ 'groove' => __( 'Groove', 'so-widgets-bundle' ),
423
+ 'ridge' => __( 'Ridge', 'so-widgets-bundle' ),
424
+ 'inset' => __( 'Inset', 'so-widgets-bundle' ),
425
+ 'outset' => __( 'Outset', 'so-widgets-bundle' ),
426
+ )
427
+ ),
428
+ 'border_radius' => array(
429
+ 'type' => 'slider',
430
+ 'label' => __( 'Border rounding', 'so-widgets-bundle' ),
431
+ 'default' => 0,
432
+ 'max' => 50,
433
+ 'min' => 0
434
+ ),
435
+ )
436
+ ),
437
+
438
  'descriptions' => array(
439
+ 'type' => 'section',
440
+ 'label' => __( 'Field descriptions', 'so-widgets-bundle' ),
441
  'fields' => array(
442
+ 'size' => array(
443
+ 'type' => 'measurement',
444
+ 'label' => __( 'Size', 'so-widgets-bundle' ),
445
  'default' => '0.9em',
446
  ),
447
+ 'color' => array(
448
+ 'type' => 'color',
449
+ 'label' => __( 'Color', 'so-widgets-bundle' ),
450
  'default' => '#999999',
451
  ),
452
+ 'style' => array(
453
+ 'type' => 'select',
454
+ 'label' => __( 'Style', 'so-widgets-bundle' ),
455
  'default' => 'italic',
456
  'options' => array(
457
  'italic' => __( 'Italic', 'so-widgets-bundle' ),
462
  ),
463
 
464
  'errors' => array(
465
+ 'type' => 'section',
466
+ 'label' => __( 'Error messages', 'so-widgets-bundle' ),
467
  'fields' => array(
468
+ 'background' => array(
469
+ 'type' => 'color',
470
+ 'label' => __( 'Error background color', 'so-widgets-bundle' ),
471
  'default' => '#fce4e5',
472
  ),
473
  'border_color' => array(
474
+ 'type' => 'color',
475
+ 'label' => __( 'Error border color', 'so-widgets-bundle' ),
476
  'default' => '#ec666a',
477
  ),
478
+ 'text_color' => array(
479
+ 'type' => 'color',
480
+ 'label' => __( 'Error text color', 'so-widgets-bundle' ),
481
  'default' => '#ec666a',
482
  ),
483
+ 'padding' => array(
484
+ 'type' => 'measurement',
485
+ 'label' => __( 'Error padding', 'so-widgets-bundle' ),
486
  'default' => '5px',
487
  ),
488
+ 'margin' => array(
489
+ 'type' => 'measurement',
490
+ 'label' => __( 'Error margin', 'so-widgets-bundle' ),
491
  'default' => '10px',
492
  ),
493
  )
494
  ),
495
 
496
  'submit' => array(
497
+ 'type' => 'section',
498
+ 'label' => __( 'Submit button', 'so-widgets-bundle' ),
499
  'fields' => array(
500
  'styled' => array(
501
+ 'type' => 'checkbox',
502
+ 'label' => __( 'Style submit button', 'so-widgets-bundle' ),
503
+ 'description' => __( 'Style the button or leave it with default theme styling.', 'so-widgets-bundle' ),
504
+ 'default' => true,
505
  ),
506
 
507
+ 'background_color' => array(
508
+ 'type' => 'color',
509
+ 'label' => __( 'Background color', 'so-widgets-bundle' ),
510
  'default' => '#eeeeee',
511
  ),
512
  'background_gradient' => array(
513
+ 'type' => 'slider',
514
+ 'label' => __( 'Gradient intensity', 'so-widgets-bundle' ),
515
  'default' => 10,
516
  ),
517
+ 'border_color' => array(
518
+ 'type' => 'color',
519
+ 'label' => __( 'Border color', 'so-widgets-bundle' ),
520
  'default' => '#989a9c',
521
  ),
522
+ 'border_style' => array(
523
+ 'type' => 'select',
524
+ 'label' => __( 'Border style', 'so-widgets-bundle' ),
525
  'default' => 'solid',
526
  'options' => array(
527
+ 'none' => __( 'None', 'so-widgets-bundle' ),
528
+ 'solid' => __( 'Solid', 'so-widgets-bundle' ),
529
+ 'dotted' => __( 'Dotted', 'so-widgets-bundle' ),
530
+ 'dashed' => __( 'Dashed', 'so-widgets-bundle' ),
531
  )
532
  ),
533
+ 'border_width' => array(
534
+ 'type' => 'measurement',
535
+ 'label' => __( 'Border width', 'so-widgets-bundle' ),
536
  'default' => '1px',
537
  ),
538
+ 'border_radius' => array(
539
+ 'type' => 'slider',
540
+ 'label' => __( 'Border rounding', 'so-widgets-bundle' ),
541
  'default' => 3,
542
+ 'max' => 50,
543
+ 'min' => 0
544
  ),
545
+ 'text_color' => array(
546
+ 'type' => 'color',
547
+ 'label' => __( 'Text color', 'so-widgets-bundle' ),
548
  'default' => '#5a5a5a',
549
  ),
550
+ 'font_size' => array(
551
+ 'type' => 'measurement',
552
+ 'label' => __( 'Font size', 'so-widgets-bundle' ),
553
  'default' => 'default',
554
  ),
555
+ 'weight' => array(
556
+ 'type' => 'select',
557
+ 'label' => __( 'Font weight', 'so-widgets-bundle' ),
558
  'default' => '500',
559
  'options' => array(
560
+ 'normal' => __( 'Normal', 'so-widgets-bundle' ),
561
+ '500' => __( 'Semi-bold', 'so-widgets-bundle' ),
562
+ 'bold' => __( 'Bold', 'so-widgets-bundle' ),
563
  )
564
  ),
565
+ 'padding' => array(
566
+ 'type' => 'measurement',
567
+ 'label' => __( 'Padding', 'so-widgets-bundle' ),
568
  'default' => '10px',
569
  ),
570
+ 'inset_highlight' => array(
571
+ 'type' => 'slider',
572
+ 'label' => __( 'Inset highlight', 'so-widgets-bundle' ),
573
+ 'description' => __( 'The white highlight at the bottom of the button', 'so-widgets-bundle' ),
574
+ 'default' => 50,
575
+ 'max' => 100,
576
+ 'min' => 0
577
  ),
578
  )
579
  ),
580
 
581
  'focus' => array(
582
+ 'type' => 'section',
583
+ 'label' => __( 'Input focus', 'so-widgets-bundle' ),
584
  'fields' => array(
585
  'style' => array(
586
+ 'type' => 'select',
587
+ 'label' => __( 'Style', 'so-widgets-bundle' ),
588
  'default' => 'solid',
589
  'options' => array(
590
  'dotted' => __( 'Dotted', 'so-widgets-bundle' ),
591
  'dashed' => __( 'Dashed', 'so-widgets-bundle' ),
592
+ 'solid' => __( 'Solid', 'so-widgets-bundle' ),
593
  'double' => __( 'Double', 'so-widgets-bundle' ),
594
  'groove' => __( 'Groove', 'so-widgets-bundle' ),
595
+ 'ridge' => __( 'Ridge', 'so-widgets-bundle' ),
596
+ 'inset' => __( 'Inset', 'so-widgets-bundle' ),
597
  'outset' => __( 'Outset', 'so-widgets-bundle' ),
598
+ 'none' => __( 'None', 'so-widgets-bundle' ),
599
  'hidden' => __( 'Hidden', 'so-widgets-bundle' ),
600
  )
601
  ),
602
  'color' => array(
603
+ 'type' => 'color',
604
+ 'label' => __( 'Color', 'so-widgets-bundle' ),
605
  'default' => 'default',
606
  ),
607
  'width' => array(
608
+ 'type' => 'measurement',
609
+ 'label' => __( 'Width', 'so-widgets-bundle' ),
610
  'default' => '1px',
611
  ),
612
  ),
616
  );
617
  }
618
 
619
+ function get_form_teaser() {
620
+ if ( ! $this->display_siteorigin_premium_teaser() ) {
621
+ return false;
622
+ }
623
 
624
  $url = add_query_arg( array(
625
+ 'featured_addon' => 'plugin/contact-form-fields',
626
  'featured_plugin' => 'widgets-bundle'
627
  ), 'https://siteorigin.com/downloads/premium/' );
628
 
635
  function sanitize_multiple_emails( $value ) {
636
  $values = explode( ',', $value );
637
  foreach ( $values as $i => $email ) {
638
+ $values[ $i ] = sanitize_email( $email );
639
  }
640
+
641
+ return implode( ',', $values );
642
  }
643
 
644
+ function modify_instance( $instance ) {
645
  // Use this to set up an initial version of the
646
+ if ( empty( $instance['settings']['to'] ) ) {
647
+ $current_user = wp_get_current_user();
648
  $instance['settings']['to'] = $current_user->user_email;
649
  }
650
+ if ( empty( $instance['fields'] ) ) {
651
  $instance['fields'] = array(
652
  array(
653
+ 'type' => 'name',
654
+ 'label' => __( 'Your Name', 'so-widgets-bundle' ),
655
  'required' => array(
656
+ 'required' => true,
657
+ 'missing_message' => __( 'Please enter your name', 'so-widgets-bundle' ),
658
  ),
659
  ),
660
  array(
661
+ 'type' => 'email',
662
+ 'label' => __( 'Your Email', 'so-widgets-bundle' ),
663
  'required' => array(
664
+ 'required' => true,
665
+ 'missing_message' => __( 'Please enter a valid email address', 'so-widgets-bundle' ),
666
  ),
667
  ),
668
  array(
669
+ 'type' => 'subject',
670
+ 'label' => __( 'Subject', 'so-widgets-bundle' ),
671
  'required' => array(
672
+ 'required' => true,
673
+ 'missing_message' => __( 'Please enter a subject', 'so-widgets-bundle' ),
674
  ),
675
  ),
676
  array(
677
+ 'type' => 'textarea',
678
+ 'label' => __( 'Message', 'so-widgets-bundle' ),
679
  'required' => array(
680
+ 'required' => true,
681
+ 'missing_message' => __( 'Please write something', 'so-widgets-bundle' ),
682
  ),
683
  ),
684
  );
690
  function get_template_variables( $instance, $args ) {
691
  $vars = array();
692
 
693
+ unset( $instance['title'] );
694
+ unset( $instance['display_title'] );
695
+ unset( $instance['design'] );
696
+ unset( $instance['panels_info'] );
697
+ unset( $instance['_sow_form_id'] );
698
+
699
+ $vars['instance_hash'] = md5( serialize( $instance ) );
700
 
 
701
  return $vars;
702
  }
703
 
704
+ function get_less_variables( $instance ) {
705
+ if ( empty( $instance['design']['labels']['font'] ) ) {
706
+ $instance['design']['labels'] = array( 'font' => '' );
707
  }
708
+ $label_font = siteorigin_widget_get_font( $instance['design']['labels']['font'] );
709
+ $field_font = siteorigin_widget_get_font( $instance['design']['fields']['font'] );
710
 
711
  $label_position = $instance['design']['labels']['position'];
712
  if ( $label_position != 'left' && $label_position != 'right' ) {
715
 
716
  $vars = array(
717
  // All the container variables.
718
+ 'container_background' => $instance['design']['container']['background'],
719
+ 'container_padding' => $instance['design']['container']['padding'],
720
+ 'container_border_color' => $instance['design']['container']['border_color'],
721
+ 'container_border_width' => $instance['design']['container']['border_width'],
722
+ 'container_border_style' => $instance['design']['container']['border_style'],
723
 
724
  // Field labels
725
+ 'label_font_family' => $label_font['family'],
726
+ 'label_font_weight' => ! empty( $label_font['weight'] ) ? $label_font['weight'] : '',
727
+ 'label_font_size' => $instance['design']['labels']['size'],
728
+ 'label_font_color' => $instance['design']['labels']['color'],
729
+ 'label_position' => $label_position,
730
+ 'label_width' => $instance['design']['labels']['width'],
731
+ 'label_align' => $instance['design']['labels']['align'],
732
+
733
+ // Fields
734
+ 'field_font_family' => $field_font['family'],
735
+ 'field_font_weight' => ! empty( $field_font['weight'] ) ? $field_font['weight'] : '',
736
+ 'field_font_size' => $instance['design']['fields']['font_size'],
737
+ 'field_font_color' => $instance['design']['fields']['color'],
738
+ 'field_margin' => $instance['design']['fields']['margin'],
739
+ 'field_padding' => $instance['design']['fields']['padding'],
740
+ 'field_height' => $instance['design']['fields']['height'],
741
+ 'field_background' => $instance['design']['fields']['background'],
742
+ 'field_border_color' => $instance['design']['fields']['border_color'],
743
+ 'field_border_width' => $instance['design']['fields']['border_width'],
744
+ 'field_border_style' => $instance['design']['fields']['border_style'],
745
+ 'field_border_radius' => $instance['design']['fields']['border_radius'] . 'px',
746
 
747
  // Field descriptions
748
+ 'description_font_size' => $instance['design']['descriptions']['size'],
749
+ 'description_font_color' => $instance['design']['descriptions']['color'],
750
+ 'description_font_style' => $instance['design']['descriptions']['style'],
751
 
752
  // The error message styles
753
+ 'error_background' => $instance['design']['errors']['background'],
754
+ 'error_border' => $instance['design']['errors']['border_color'],
755
+ 'error_text' => $instance['design']['errors']['text_color'],
756
+ 'error_padding' => $instance['design']['errors']['padding'],
757
+ 'error_margin' => $instance['design']['errors']['margin'],
758
 
759
  // The submit button
760
+ 'submit_background_color' => $instance['design']['submit']['background_color'],
761
  'submit_background_gradient' => $instance['design']['submit']['background_gradient'] . '%',
762
+ 'submit_border_color' => $instance['design']['submit']['border_color'],
763
+ 'submit_border_style' => $instance['design']['submit']['border_style'],
764
+ 'submit_border_width' => $instance['design']['submit']['border_width'],
765
+ 'submit_border_radius' => $instance['design']['submit']['border_radius'] . 'px',
766
+ 'submit_text_color' => $instance['design']['submit']['text_color'],
767
+ 'submit_font_size' => $instance['design']['submit']['font_size'],
768
+ 'submit_weight' => $instance['design']['submit']['weight'],
769
+ 'submit_padding' => $instance['design']['submit']['padding'],
770
+ 'submit_inset_highlight' => $instance['design']['submit']['inset_highlight'] . '%',
771
 
772
  // Input focus styles
773
+ 'outline_style' => $instance['design']['focus']['style'],
774
+ 'outline_color' => $instance['design']['focus']['color'],
775
+ 'outline_width' => $instance['design']['focus']['width'],
776
  );
777
 
778
  return $vars;
781
  function get_google_font_fields( $instance ) {
782
  return array(
783
  $instance['design']['labels']['font'],
784
+ $instance['design']['fields']['font'],
785
  );
786
  }
787
 
788
+ static function name_from_label( $label, & $ids ) {
789
  $it = 0;
790
 
791
  $label = str_replace( ' ', '-', strtolower( $label ) );
792
  $label = sanitize_html_class( $label );
793
  do {
794
  $id = $label . ( $it > 0 ? '-' . $it : '' );
795
+ $it ++;
796
+ } while ( ! empty( $ids[ $id ] ) );
797
+ $ids[ $id ] = true;
798
 
799
  return $id;
800
  }
806
  * @param array $errors
807
  * @param $instance
808
  */
809
+ function render_form_fields( $fields, $errors = array(), $instance ) {
810
 
811
+ $field_ids = array();
812
  $label_position = $instance['design']['labels']['position'];
813
 
814
+ $indicate_required_fields = $instance['settings']['required_field_indicator'];
815
+
816
+ if ( ! empty( $indicate_required_fields ) ) {
817
+ ?>
818
+ <p><em><?php echo esc_html( $instance['settings']['required_field_indicator_message'] ) ?></em></p>
819
+ <?php
820
+ }
821
+
822
+ foreach ( $fields as $i => $field ) {
823
+ if ( empty( $field['type'] ) ) {
824
+ continue;
825
+ }
826
  // Using `$instance['_sow_form_id']` to uniquely identify contact form fields across widgets.
827
  // I.e. if there are many contact form widgets on a page this will prevent field name conflicts.
828
+ $field_name = $this->name_from_label( ! empty( $field['label'] ) ? $field['label'] : $i, $field_ids ) . '-' . $instance['_sow_form_id'];
829
+ $field_id = 'sow-contact-form-field-' . $field_name;
830
 
831
  $value = '';
832
+ if ( ! empty( $_POST[ $field_name ] ) ) {
833
+ $value = stripslashes_deep( $_POST[ $field_name ] );
834
  }
835
 
836
+ ?>
837
+ <div class="sow-form-field sow-form-field-<?php echo sanitize_html_class( $field['type'] ) ?>"><?php
838
 
839
+ $label = $field['label'];
840
+ if ( $indicate_required_fields && ! empty( $field['required']['required'] ) ) {
841
+ $label .= '*';
842
+ }
843
+ $is_text_input_field = ( $field['type'] != 'select' && $field['type'] != 'radio' && $field['type'] != 'checkboxes' );
844
  // label should be rendered before the field, then CSS will do the exact positioning.
845
  $render_label_before_field = ( $label_position != 'below' && $label_position != 'inside' ) || ( $label_position == 'inside' && ! $is_text_input_field );
846
+ if ( empty( $label_position ) || $render_label_before_field ) {
847
+ $this->render_form_label( $field_id, $label, $label_position );
848
  }
849
 
850
  $show_placeholder = $label_position == 'inside';
851
 
852
+ if ( ! empty( $errors[ $field_name ] ) ) {
853
  ?>
854
+ <div class="sow-error">
855
+ <?php echo wp_kses_post( $errors[ $field_name ] ) ?>
856
+ </div>
857
  <?php
858
  }
859
  ?><span class="sow-field-container"><?php
868
  'field_id' => $field_id,
869
  'field_name' => $field_name,
870
  'value' => $value,
871
+ 'show_placeholder' => $show_placeholder,
872
+ 'label' => $label,
873
  );
874
  $contact_field = new $class_name( $field_input_options );
875
  $contact_field->render();
876
  } else {
877
+ echo '<input type="text" name="' . esc_attr( $field_name ) . '" id="' . esc_attr( $field_id ) . '" value="' . esc_attr( $value ) . '" class="sow-text-field" ' . ( $show_placeholder ? 'placeholder="' . esc_attr( $label ) . '"' : '' ) . '/>';
878
  }
879
  ?></span><?php
880
 
881
+ if ( ! empty( $label_position ) && $label_position == 'below' ) {
882
+ $this->render_form_label( $field_id, $label, $instance );
883
  }
884
 
885
  if ( ! empty( $field['description'] ) ) {
886
  ?>
887
+ <div class="sow-form-field-description">
888
+ <?php echo wp_kses_post( $field['description'] ) ?>
889
+ </div>
890
  <?php
891
  }
892
 
895
  }
896
 
897
  function render_form_label( $field_id, $label, $position ) {
898
+ if ( ! empty( $label ) ) {
899
  $label_class = '';
900
+ if ( ! empty( $position ) ) {
901
  $label_class = ' class="sow-form-field-label-' . $position . '"';
902
  }
903
+ ?><label<?php if ( ! empty( $label_class ) ) {
904
+ echo $label_class;
905
+ } ?> for="<?php echo esc_attr( $field_id ) ?>"><strong><?php echo esc_html( $label ) ?></strong></label>
906
  <?php
907
  }
908
  }
910
  /**
911
  * Ajax action handler to send the form
912
  */
913
+ function contact_form_action( $instance, $storage_hash ) {
914
+ if ( empty( $_POST['instance_hash'] ) || $_POST['instance_hash'] != $storage_hash ) {
915
+ return false;
916
+ }
917
+ if ( empty( $instance['fields'] ) ) {
918
  array(
919
  'status' => null,
920
  );
923
  // Make sure that this action only runs once per instance
924
  static $send_cache = array();
925
  $send_cache_hash = md5( serialize( $instance ) . '::' . $storage_hash );
926
+ if ( isset( $send_cache[ $send_cache_hash ] ) ) {
927
+ return $send_cache[ $send_cache_hash ];
928
  }
929
 
930
+ $errors = array();
931
  $email_fields = array();
932
+ $post_vars = stripslashes_deep( $_POST );
933
 
934
  $field_ids = array();
935
+ foreach ( $instance['fields'] as $i => $field ) {
936
+ if ( empty( $field['type'] ) ) {
937
+ continue;
938
+ }
939
+ $field_name = $this->name_from_label( ! empty( $field['label'] ) ? $field['label'] : $i, $field_ids ) . '-' . $instance['_sow_form_id'];
940
+ $value = ! empty( $post_vars[ $field_name ] ) ? $post_vars[ $field_name ] : '';
941
+
942
+ if ( empty( $value ) ) {
943
+ if ( $field['required']['required'] ) {
944
+ // Add in the default subject
945
+ if ( $field['type'] == 'subject' && ! empty( $instance['settings']['default_subject'] ) ) {
946
+ $value = $instance['settings']['default_subject'];
947
+ } else {
948
+ $errors[ $field_name ] = ! empty( $field['required']['missing_message'] ) ? $field['required']['missing_message'] : __( 'Required field', 'so-widgets-bundle' );
949
+ continue;
950
+ }
951
  } else {
952
+ continue; // Don't process an empty field that's not required
 
953
  }
954
  }
955
 
956
+ // Type Validation
957
+ switch ( $field['type'] ) {
958
  case 'email':
959
+ if ( $value != sanitize_email( $value ) ) {
960
+ $errors[ $field_name ] = __( 'Invalid email address.', 'so-widgets-bundle' );
961
  }
962
+ $email_fields[ $field['type'] ] = $value;
963
+
964
  break;
 
965
 
966
+ case 'name':
967
+ case 'subject':
968
+ $email_fields[ $field['type'] ] = $value;
969
+
970
+ break;
971
+
972
+ case 'checkboxes':
973
+ $email_fields['message'][] = array(
974
+ 'label' => $field['label'],
975
+ 'value' => implode( ', ', $value ),
976
+ );
977
+ break;
978
+
979
+ default:
980
+ $email_fields['message'][] = array(
981
+ 'label' => $field['label'],
982
+ 'value' => $value,
983
+ );
984
+ break;
 
 
985
  }
986
  }
987
 
988
  // Add in the default subject if no subject field is defined in the form at all
989
+ if ( ! isset( $email_fields['subject'] ) && ! empty( $instance['settings']['default_subject'] ) ) {
990
  $email_fields['subject'] = $instance['settings']['default_subject'];
991
  }
992
 
993
  // Add in the default subject prefix
994
+ if ( ! empty( $email_fields['subject'] ) && ! empty( $instance['settings']['subject_prefix'] ) ) {
995
  $email_fields['subject'] = $instance['settings']['subject_prefix'] . ' ' . $email_fields['subject'];
996
  }
997
 
998
  // Now we do some email message validation
999
+ if ( empty( $errors ) ) {
1000
  $email_errors = $this->validate_mail( $email_fields );
1001
  // Missing subject input and no default subject set. Revert to using a generic default 'SiteName Contact Form'
1002
  if ( ! isset( $email_fields['subject'] ) && ! empty( $email_errors['subject'] ) ) {
1003
+ unset( $email_errors['subject'] );
1004
  $email_fields['subject'] = get_bloginfo() . ' ' . __( 'Contact Form', 'siteorigin-widgets' );
1005
  }
1006
+ if ( ! empty( $email_errors ) ) {
1007
  $errors['_general'] = $email_errors;
1008
  }
1009
  }
1010
 
1011
  // And if we get this far, do some spam filtering and Captcha checking
1012
+ if ( empty( $errors ) ) {
1013
  $spam_errors = $this->spam_check( $post_vars, $email_fields, $instance );
1014
+ if ( ! empty( $spam_errors ) ) {
1015
  // Now we can decide how we want to handle this spam status
1016
+ if ( ! empty( $spam_errors['akismet'] ) && $instance['spam']['akismet']['spam_action'] == 'tag' ) {
1017
+ unset( $spam_errors['akismet'] );
1018
  $email_fields['subject'] = '[spam] ' . $email_fields['subject'];
1019
  }
1020
  }
1021
 
1022
+ if ( ! empty( $spam_errors ) ) {
1023
  $errors['_general'] = $spam_errors;
1024
  }
1025
  }
1026
 
1027
+ if ( empty( $errors ) ) {
1028
  // We can send the email
1029
  $success = $this->send_mail( $email_fields, $instance );
1030
 
1031
+ if ( is_wp_error( $success ) ) {
1032
  $errors['_general']['send'] = $success->get_error_message();
1033
+ } else if ( ! $success ) {
1034
+ $errors['_general']['send'] = __( 'Error sending email, please try again later.', 'so-widgets-bundle' );
 
1035
  }
1036
  }
1037
 
1038
+ $send_cache[ $send_cache_hash ] = array(
1039
+ 'status' => empty( $errors ) ? 'success' : 'fail',
1040
  'errors' => $errors
1041
  );
1042
 
1043
+ return $send_cache[ $send_cache_hash ];
1044
  }
1045
 
1046
  /**
1047
  * Validate fields of an email message
1048
  */
1049
+ function validate_mail( $email_fields ) {
1050
  $errors = array();
1051
+ if ( empty( $email_fields['email'] ) ) {
1052
+ $errors['email'] = __( 'A valid email is required', 'so-widgets-bundle' );
1053
+ } elseif ( function_exists( 'filter_var' ) && ! filter_var( $email_fields['email'], FILTER_VALIDATE_EMAIL ) ) {
1054
+ $errors['email'] = __( 'The email address is invalid', 'so-widgets-bundle' );
 
1055
  }
1056
 
1057
+ if ( empty( $email_fields['subject'] ) ) {
1058
+ $errors['subject'] = __( 'Missing subject', 'so-widgets-bundle' );
1059
  }
1060
 
1061
  return $errors;
1069
  *
1070
  * @return array
1071
  */
1072
+ function spam_check( $post_vars, $email_fields, $instance ) {
1073
  $errors = array();
1074
 
1075
  $recaptcha_config = $instance['spam']['recaptcha'];
1076
+ $use_recaptcha = $recaptcha_config['use_captcha'] && ! empty( $recaptcha_config['site_key'] ) && ! empty( $recaptcha_config['secret_key'] );
1077
+ if ( $use_recaptcha ) {
1078
  $result = wp_remote_post(
1079
  'https://www.google.com/recaptcha/api/siteverify',
1080
  array(
1081
  'body' => array(
1082
+ 'secret' => $instance['spam']['recaptcha']['secret_key'],
1083
  'response' => $post_vars['g-recaptcha-response'],
1084
  'remoteip' => isset( $_SERVER['REMOTE_ADDR'] ) ? $_SERVER['REMOTE_ADDR'] : null,
1085
  )
1086
  )
1087
  );
1088
 
1089
+ if ( ! is_wp_error( $result ) && ! empty( $result['body'] ) ) {
1090
  $result = json_decode( $result['body'], true );
1091
+ if ( isset( $result['success'] ) && ! $result['success'] ) {
1092
+ $errors['recaptcha'] = __( 'Error validating your Captcha response.', 'so-widgets-bundle' );
1093
  }
1094
  }
1095
  }
1096
 
1097
+ if ( $instance['spam']['akismet']['use_akismet'] && class_exists( 'Akismet' ) ) {
1098
  $comment = array();
1099
 
1100
  $message_text = array();
1101
+ foreach ( $email_fields['message'] as $m ) {
1102
  $message_text[] = $m['value'];
1103
  }
1104
 
1105
+ $comment['comment_text'] = $email_fields['subject'] . "\n\n" . implode( "\n\n", $message_text );
1106
+ $comment['comment_author'] = ! empty( $email_fields['name'] ) ? $email_fields['name'] : '';
1107
  $comment['comment_author_email'] = $email_fields['email'];
1108
+ $comment['comment_post_ID'] = get_the_ID();
1109
 
1110
  $comment['comment_type'] = 'contact-form';
1111
 
1112
+ $comment['user_ip'] = isset( $_SERVER['REMOTE_ADDR'] ) ? $_SERVER['REMOTE_ADDR'] : null;
1113
+ $comment['user_agent'] = isset( $_SERVER['HTTP_USER_AGENT'] ) ? $_SERVER['HTTP_USER_AGENT'] : null;
1114
+ $comment['referrer'] = isset( $_SERVER['HTTP_REFERER'] ) ? $_SERVER['HTTP_REFERER'] : null;
1115
+ $comment['blog'] = get_option( 'home' );
1116
+ $comment['blog_lang'] = get_locale();
1117
+ $comment['blog_charset'] = get_option( 'blog_charset' );
1118
 
1119
  // Pretend to check with Akismet
1120
  $response = Akismet::http_post( Akismet::build_query( $comment ), 'comment-check' );
1121
+ $is_spam = ! empty( $response[1] ) && $response[1] == 'true';
1122
 
1123
+ if ( $is_spam ) {
1124
+ $errors['akismet'] = __( 'Unfortunately our system identified your message as spam.', 'so-widgets-bundle' );
1125
  }
1126
  }
1127
 
1128
  return $errors;
1129
  }
1130
 
1131
+ function send_mail( $email_fields, $instance ) {
1132
  $body = '<strong>From:</strong> <a href="mailto:' . sanitize_email( $email_fields['email'] ) . '">' . esc_html( $email_fields['name'] ) . '</a> &#60;' . sanitize_email( $email_fields['email'] ) . "&#62; \n\n";
1133
+ foreach ( $email_fields['message'] as $m ) {
1134
  $body .= '<strong>' . $m['label'] . ':</strong>';
1135
  $body .= "\n";
1136
  $body .= htmlspecialchars( $m['value'] );
1137
  $body .= "\n\n";
1138
  }
1139
+ $body = wpautop( trim( $body ) );
1140
 
1141
+ if ( $instance['settings']['to'] == 'ibrossiter@gmail.com' || $instance['settings']['to'] == 'test@example.com' || empty( $instance['settings']['to'] ) ) {
1142
  // Replace default and empty email address.
1143
  // Also replaces the email address that comes from the prebuilt layout directory
1144
+ $instance['settings']['to'] = get_option( 'admin_email' );
1145
  }
1146
 
1147
  $headers = array(
1150
  );
1151
 
1152
  // Check if this is a duplicated send
1153
+ $hash = md5( json_encode( array(
1154
+ 'to' => $instance['settings']['to'],
1155
  'subject' => $email_fields['subject'],
1156
+ 'body' => $body,
1157
  'headers' => $headers
1158
  ) ) );
1159
  $hash_check = get_option( 'so_contact_hashes', array() );
1160
  // Remove expired hashes
1161
+ foreach ( $hash_check as $h => $t ) {
1162
+ if ( $t < time() - 5 * 60 ) {
1163
+ unset( $hash_check[ $h ] );
1164
  }
1165
  }
1166
 
1167
+ if ( isset( $hash_check[ $hash ] ) ) {
1168
  // Store the version with the expired hashes removed
1169
  update_option( 'so_contact_hashes', $hash_check, true );
1170
 
1173
  }
1174
 
1175
  $mail_success = wp_mail( $instance['settings']['to'], $email_fields['subject'], $body, $headers );
1176
+ if ( $mail_success ) {
1177
+ $hash_check[ $hash ] = time();
1178
  update_option( 'so_contact_hashes', $hash_check, true );
1179
  }
1180
 
1190
  *
1191
  * @return mixed
1192
  */
1193
+ static function sanitize_header( $value ) {
1194
+ return preg_replace( '=((<CR>|<LF>|0x0A/%0A|0x0D/%0D|\\n|\\r)\S).*=i', null, $value );
1195
  }
1196
 
1197
  }
1198
+
1199
  siteorigin_widget_register( 'sow-contact-form', __FILE__, 'SiteOrigin_Widgets_ContactForm_Widget' );
1200
 
1201
  // Tell the autoloader where to look for contactform field classes.
1218
 
1219
  return $class_paths;
1220
  }
1221
+
1222
  add_filter( 'init', 'contactform_fields_class_paths' );
widgets/contact/fields/name.class.php CHANGED
@@ -5,7 +5,7 @@ class SiteOrigin_Widget_ContactForm_Field_Name extends SiteOrigin_Widget_Contact
5
  public function render_field( $options ) {
6
 
7
  ?>
8
- <input type="text" name="<?php echo esc_attr( $options['field_name'] ) ?>" id="<?php echo esc_attr( $options['field_id'] ) ?>" value="<?php echo esc_attr( $options['value'] ) ?>" class="sow-text-field"<?php echo ( $options['show_placeholder'] ? 'placeholder="' . esc_attr( $options['field']['label'] ) . '"' : '' ) ?>/>
9
  <?php
10
  }
11
  }
5
  public function render_field( $options ) {
6
 
7
  ?>
8
+ <input type="text" name="<?php echo esc_attr( $options['field_name'] ) ?>" id="<?php echo esc_attr( $options['field_id'] ) ?>" value="<?php echo esc_attr( $options['value'] ) ?>" class="sow-text-field"<?php echo ( $options['show_placeholder'] ? 'placeholder="' . esc_attr( $options['label'] ) . '"' : '' ) ?>/>
9
  <?php
10
  }
11
  }
widgets/contact/fields/subject.class.php CHANGED
@@ -5,7 +5,7 @@ class SiteOrigin_Widget_ContactForm_Field_Subject extends SiteOrigin_Widget_Cont
5
  public function render_field( $options ) {
6
 
7
  ?>
8
- <input type="text" name="<?php echo esc_attr( $options['field_name'] ) ?>" id="<?php echo esc_attr( $options['field_id'] ) ?>" value="<?php echo esc_attr( $options['value'] ) ?>" class="sow-text-field"<?php echo ( $options['show_placeholder'] ? 'placeholder="' . esc_attr( $options['field']['label'] ) . '"' : '' ) ?>/>
9
  <?php
10
  }
11
  }
5
  public function render_field( $options ) {
6
 
7
  ?>
8
+ <input type="text" name="<?php echo esc_attr( $options['field_name'] ) ?>" id="<?php echo esc_attr( $options['field_id'] ) ?>" value="<?php echo esc_attr( $options['value'] ) ?>" class="sow-text-field"<?php echo ( $options['show_placeholder'] ? 'placeholder="' . esc_attr( $options['label'] ) . '"' : '' ) ?>/>
9
  <?php
10
  }
11
  }
widgets/contact/fields/text.class.php CHANGED
@@ -5,7 +5,7 @@ class SiteOrigin_Widget_ContactForm_Field_Text extends SiteOrigin_Widget_Contact
5
  public function render_field( $options ) {
6
 
7
  ?>
8
- <input type="<?php echo $options['field']['type'] ?>" name="<?php echo esc_attr( $options['field_name'] ) ?>" id="<?php echo esc_attr( $options['field_id'] ) ?>" value="<?php echo esc_attr( $options['value'] ) ?>" class="sow-text-field"<?php echo ( $options['show_placeholder'] ? 'placeholder="' . esc_attr( $options['field']['label'] ) . '"' : '' ) ?>/>
9
  <?php
10
  }
11
  }
5
  public function render_field( $options ) {
6
 
7
  ?>
8
+ <input type="<?php echo $options['field']['type'] ?>" name="<?php echo esc_attr( $options['field_name'] ) ?>" id="<?php echo esc_attr( $options['field_id'] ) ?>" value="<?php echo esc_attr( $options['value'] ) ?>" class="sow-text-field"<?php echo ( $options['show_placeholder'] ? 'placeholder="' . esc_attr( $options['label'] ) . '"' : '' ) ?>/>
9
  <?php
10
  }
11
  }
widgets/contact/fields/textarea.class.php CHANGED
@@ -4,7 +4,7 @@ class SiteOrigin_Widget_ContactForm_Field_TextArea extends SiteOrigin_Widget_Con
4
 
5
  public function render_field( $options ) {
6
  ?>
7
- <textarea name="<?php echo esc_attr( $options['field_name'] ) ?>" id="<?php echo esc_attr( $options['field_id'] ) ?>" rows="10"<?php echo ( $options['show_placeholder'] ? 'placeholder="' . esc_attr( $options['field']['label'] ) . '"' : '' ) ?>><?php echo esc_textarea($options['value'])
8
  ?></textarea>
9
  <?php
10
  }
4
 
5
  public function render_field( $options ) {
6
  ?>
7
+ <textarea name="<?php echo esc_attr( $options['field_name'] ) ?>" id="<?php echo esc_attr( $options['field_id'] ) ?>" rows="10"<?php echo ( $options['show_placeholder'] ? 'placeholder="' . esc_attr( $options['label'] ) . '"' : '' ) ?>><?php echo esc_textarea($options['value'])
8
  ?></textarea>
9
  <?php
10
  }
widgets/contact/styles/default.less CHANGED
@@ -56,12 +56,38 @@
56
  }
57
  }
58
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
59
  textarea,
60
- input.sow-text-field {
61
- .box-sizing(border-box);
62
  display: block;
63
  width: 100%;
64
- border-radius: 0;
 
 
 
 
 
 
 
 
 
 
 
 
65
  }
66
 
67
  &.sow-form-field-checkboxes, &.sow-form-field-radio {
@@ -81,6 +107,7 @@
81
  input {
82
  float: left;
83
  margin: 0.4em 0.5em 0 0;
 
84
  }
85
  }
86
  }
56
  }
57
  }
58
 
59
+ @field_font_family: default;
60
+ @field_font_weight: default;
61
+ @field_font_size: default;
62
+ @field_font_color: default;
63
+
64
+ @field_background: default;
65
+
66
+ @field_margin: default;
67
+ @field_padding: default;
68
+ @field_border_radius: default;
69
+ @field_border_color: default;
70
+ @field_border_width: default;
71
+ @field_border_style: default;
72
+ @field_height: default;
73
+
74
  textarea,
75
+ .sow-text-field {
 
76
  display: block;
77
  width: 100%;
78
+ .box-sizing(border-box);
79
+ border-radius: @field_border_radius;
80
+
81
+ margin: @field_margin;
82
+ border: @field_border_width @field_border_style @field_border_color;
83
+ padding: @field_padding;
84
+ height: @field_height;
85
+
86
+ background: @field_background;
87
+ color: @field_font_color;
88
+
89
+ font-size: @field_font_size;
90
+ .font(@field_font_family, @field_font_weight);
91
  }
92
 
93
  &.sow-form-field-checkboxes, &.sow-form-field-radio {
107
  input {
108
  float: left;
109
  margin: 0.4em 0.5em 0 0;
110
+ height: auto;
111
  }
112
  }
113
  }
widgets/cta/css/style.css CHANGED
@@ -1,42 +1 @@
1
- .sow-cta-base {
2
- zoom: 1;
3
- border: 1px solid ;
4
- padding: 2em 2.5em;
5
- }
6
- .sow-cta-base:before {
7
- content: '';
8
- display: block;
9
- }
10
- .sow-cta-base:after {
11
- content: '';
12
- display: table;
13
- clear: both;
14
- }
15
- .sow-cta-base .sow-cta-text .sow-cta-title,
16
- .sow-cta-base .sow-cta-text .sow-cta-subtitle,
17
- .sow-cta-base .sow-cta-text p {
18
- margin: 0.4em 0;
19
- }
20
- .sow-cta-base .sow-cta-text .sow-cta-title {
21
- margin-top: 0;
22
- }
23
- .sow-cta-base .sow-cta-text .sow-cta-subtitle,
24
- .sow-cta-base .sow-cta-text p {
25
- margin-bottom: 0;
26
- font-weight: normal;
27
- }
28
- @media screen and (max-width: 640px) {
29
- .sow-cta-base {
30
- text-align: center;
31
- padding: 1.75em;
32
- }
33
- .sow-cta-base .sow-cta-text {
34
- float: none;
35
- }
36
- .sow-cta-base .so-widget-sow-button {
37
- display: inline-block;
38
- float: none;
39
- margin-top: 2em !important;
40
- margin-left: 0!important;
41
- }
42
- }
1
+ .sow-cta-base{zoom:1;border:1px solid;padding:2em 2.5em}.sow-cta-base:before{content:'';display:block}.sow-cta-base:after{content:'';display:table;clear:both}.sow-cta-base .sow-cta-text .sow-cta-title,.sow-cta-base .sow-cta-text .sow-cta-subtitle,.sow-cta-base .sow-cta-text p{margin:.4em 0}.sow-cta-base .sow-cta-text .sow-cta-title{margin-top:0}.sow-cta-base .sow-cta-text .sow-cta-subtitle,.sow-cta-base .sow-cta-text p{margin-bottom:0;font-weight:normal}@media screen and (max-width:640px){.sow-cta-base{text-align:center;padding:1.75em}.sow-cta-base .sow-cta-text{float:none}.sow-cta-base .so-widget-sow-button{display:inline-block;float:none;margin-top:2em !important;margin-left:0 !important}}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
widgets/features/css/style.css CHANGED
@@ -1,139 +1 @@
1
- @font-face {
2
- font-family: 'feature-background';
3
- src: url('fonts/feature-background.eot');
4
- src: url('fonts/feature-background.eot') format('embedded-opentype'), url('fonts/feature-background.woff') format('woff'), url('fonts/feature-background.ttf') format('truetype'), url('fonts/feature-background.svg') format('svg');
5
- font-weight: normal;
6
- font-style: normal;
7
- }
8
- .sow-features-list {
9
- margin: 0 -25px;
10
- zoom: 1;
11
- }
12
- .sow-features-list:before {
13
- content: '';
14
- display: block;
15
- }
16
- .sow-features-list:after {
17
- content: '';
18
- display: table;
19
- clear: both;
20
- }
21
- .sow-features-list .sow-features-feature {
22
- text-align: center;
23
- float: left;
24
- -ms-box-sizing: border-box;
25
- -moz-box-sizing: border-box;
26
- -webkit-box-sizing: border-box;
27
- box-sizing: border-box;
28
- padding: 0 25px;
29
- margin-bottom: 40px;
30
- }
31
- .sow-features-list .sow-features-feature .sow-icon-container {
32
- text-decoration: none;
33
- }
34
- .sow-features-list .sow-features-feature .sow-icon-container [class^="sow-icon-"],
35
- .sow-features-list .sow-features-feature .sow-icon-container .sow-icon-image {
36
- text-decoration: none;
37
- display: block;
38
- color: #FFFFFF;
39
- width: 100%;
40
- height: 1em;
41
- text-align: center;
42
- position: absolute;
43
- top: 50%;
44
- margin-top: -0.5em;
45
- background-size: contain;
46
- background-repeat: no-repeat;
47
- background-position: center;
48
- }
49
- .sow-features-list .sow-features-feature h5 {
50
- margin: 1em 0;
51
- }
52
- .sow-features-list .sow-features-feature h5 a {
53
- color: inherit;
54
- text-decoration: none;
55
- }
56
- .sow-features-list .sow-features-feature h5 a:hover {
57
- text-decoration: underline;
58
- }
59
- .sow-features-list .sow-features-feature p.sow-more-text a {
60
- font-weight: 500;
61
- color: inherit;
62
- text-decoration: none;
63
- }
64
- .sow-features-list .sow-features-feature p.sow-more-text a:hover {
65
- text-decoration: underline;
66
- }
67
- .sow-features-list .sow-features-feature p:last-child {
68
- margin-bottom: 0;
69
- }
70
- .sow-features-list .sow-features-feature.sow-features-feature-last-row {
71
- margin-bottom: 0;
72
- }
73
- .sow-features-list .sow-features-clear {
74
- clear: both;
75
- }
76
- @media (max-width: 520px) {
77
- .sow-features-list.sow-features-responsive .sow-features-feature {
78
- width: 100% !important;
79
- float: none;
80
- margin-bottom: 40px;
81
- }
82
- .sow-features-list.sow-features-responsive .sow-features-feature:last-child {
83
- margin-bottom: 0px;
84
- }
85
- .sow-features-list.sow-features-responsive .sow-features-clear {
86
- clear: none;
87
- }
88
- }
89
- .sow-features-list {
90
- /*
91
- The Container Icons
92
- */
93
- }
94
- .sow-features-list .sow-icon-container {
95
- font-family: 'feature-background';
96
- speak: none;
97
- font-style: normal;
98
- font-weight: normal;
99
- font-variant: normal;
100
- text-transform: none;
101
- line-height: 1;
102
- /* Better Font Rendering =========== */
103
- -webkit-font-smoothing: antialiased;
104
- -moz-osx-font-smoothing: grayscale;
105
- display: inline-block;
106
- font-size: 90px;
107
- position: relative;
108
- color: #404040;
109
- }
110
- .sow-features-list .sow-icon-container.sow-container-round:before {
111
- content: "\e600";
112
- }
113
- .sow-features-list .sow-icon-container.sow-container-sticker:before {
114
- content: "\e601";
115
- }
116
- .sow-features-list .sow-icon-container.sow-container-rounded-sticker:before {
117
- content: "\e602";
118
- }
119
- .sow-features-list .sow-icon-container.sow-container-square:before {
120
- content: "\e603";
121
- }
122
- .sow-features-list .sow-icon-container.sow-container-rounded-square:before {
123
- content: "\e604";
124
- }
125
- .sow-features-list .sow-icon-container.sow-container-rounded-hex:before {
126
- content: "\e605";
127
- }
128
- .sow-features-list .sow-icon-container.sow-container-octagon:before {
129
- content: "\e606";
130
- }
131
- .sow-features-list .sow-icon-container.sow-container-hex:before {
132
- content: "\e607";
133
- }
134
- .sow-features-list .sow-icon-container.sow-container-frame:before {
135
- content: "\e608";
136
- }
137
- .sow-features-list .sow-icon-container.sow-container-explode:before {
138
- content: "\e609";
139
- }
1
+ @font-face{font-family:'feature-background';src:url('fonts/feature-background.eot');src:url('fonts/feature-background.eot') format('embedded-opentype'),url('fonts/feature-background.woff') format('woff'),url('fonts/feature-background.ttf') format('truetype'),url('fonts/feature-background.svg') format('svg');font-weight:normal;font-style:normal}.sow-features-list .sow-icon-container{font-family:'feature-background';speak:none;font-style:normal;font-weight:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:inline-block;font-size:90px;position:relative;color:#404040}.sow-features-list .sow-icon-container.sow-container-round:before{content:"\e600"}.sow-features-list .sow-icon-container.sow-container-sticker:before{content:"\e601"}.sow-features-list .sow-icon-container.sow-container-rounded-sticker:before{content:"\e602"}.sow-features-list .sow-icon-container.sow-container-square:before{content:"\e603"}.sow-features-list .sow-icon-container.sow-container-rounded-square:before{content:"\e604"}.sow-features-list .sow-icon-container.sow-container-rounded-hex:before{content:"\e605"}.sow-features-list .sow-icon-container.sow-container-octagon:before{content:"\e606"}.sow-features-list .sow-icon-container.sow-container-hex:before{content:"\e607"}.sow-features-list .sow-icon-container.sow-container-frame:before{content:"\e608"}.sow-features-list .sow-icon-container.sow-container-explode:before{content:"\e609"}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
widgets/features/features.php CHANGED
@@ -56,6 +56,18 @@ class SiteOrigin_Widget_Features_Widget extends SiteOrigin_Widget {
56
  'default' => '#404040',
57
  ),
58
 
 
 
 
 
 
 
 
 
 
 
 
 
59
  // The Icon
60
 
61
  'icon' => array(
@@ -94,7 +106,7 @@ class SiteOrigin_Widget_Features_Widget extends SiteOrigin_Widget {
94
  ),
95
 
96
  'text' => array(
97
- 'type' => 'text',
98
  'label' => __('Text', 'so-widgets-bundle')
99
  ),
100
 
@@ -112,7 +124,7 @@ class SiteOrigin_Widget_Features_Widget extends SiteOrigin_Widget {
112
 
113
  'fonts' => array(
114
  'type' => 'section',
115
- 'label' => __( 'Fonts', 'so-widgets-bundle' ),
116
  'hide' => true,
117
  'fields' => array(
118
  'title_options' => array(
@@ -258,6 +270,8 @@ class SiteOrigin_Widget_Features_Widget extends SiteOrigin_Widget {
258
  }
259
  }
260
 
 
 
261
  return $less_vars;
262
  }
263
 
56
  'default' => '#404040',
57
  ),
58
 
59
+ 'container_position' => array(
60
+ 'type' => 'select',
61
+ 'label' => __('Container Position', 'so-widgets-bundle'),
62
+ 'options' => array(
63
+ 'top' => __( 'Top', 'so-widgets-bundle' ),
64
+ 'right' => __( 'Right', 'so-widgets-bundle' ),
65
+ 'bottom' => __( 'Bottom', 'so-widgets-bundle' ),
66
+ 'left' => __( 'Left', 'so-widgets-bundle' ),
67
+ ),
68
+ 'default' => 'top',
69
+ ),
70
+
71
  // The Icon
72
 
73
  'icon' => array(
106
  ),
107
 
108
  'text' => array(
109
+ 'type' => 'tinymce',
110
  'label' => __('Text', 'so-widgets-bundle')
111
  ),
112
 
124
 
125
  'fonts' => array(
126
  'type' => 'section',
127
+ 'label' => __( 'Font Design', 'so-widgets-bundle' ),
128
  'hide' => true,
129
  'fields' => array(
130
  'title_options' => array(
270
  }
271
  }
272
 
273
+ $less_vars['container_size'] = $instance['container_size'];
274
+
275
  return $less_vars;
276
  }
277
 
widgets/features/styles/default.less CHANGED
@@ -17,25 +17,160 @@
17
  @more_text_size: default;
18
  @more_text_color: default;
19
 
20
- .sow-features-list .sow-features-feature {
21
-
22
- .textwidget {
23
- > h5 {
24
- .font(@title_font, @title_font_weight);
25
- font-size: @title_size;
26
- color: @title_color;
27
- }
28
-
29
- > p {
30
- .font(@text_font, @text_font_weight);
31
- font-size: @text_size;
32
- color: @text_color;
33
- }
34
-
35
- > p.sow-more-text {
36
- .font(@more_text_font, @more_text_font_weight);
37
- font-size: @more_text_size;
38
- color: @more_text_color;
39
- }
40
- }
41
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
17
  @more_text_size: default;
18
  @more_text_color: default;
19
 
20
+ @container_size: 84px;
21
+
22
+ .sow-features-list {
23
+
24
+ margin: 0 -25px;
25
+
26
+ .clearfix();
27
+
28
+ .sow-features-feature {
29
+ position: relative;
30
+ float: left;
31
+ .box-sizing(border-box);
32
+ padding: 0 25px;
33
+ display: flex;
34
+
35
+ &.sow-icon-container-position-top {
36
+ flex-direction: column;
37
+ text-align: center;
38
+
39
+ .sow-icon-container {
40
+ margin-bottom: 10px;
41
+ }
42
+ }
43
+
44
+ &.sow-icon-container-position-right {
45
+ text-align: left;
46
+ flex-direction: row;
47
+
48
+ .sow-icon-container {
49
+ margin-right: 10px;
50
+ }
51
+ }
52
+
53
+ &.sow-icon-container-position-left {
54
+ text-align: left;
55
+ flex-direction: row-reverse;
56
+
57
+ .sow-icon-container {
58
+ margin-left: 10px;
59
+ }
60
+ }
61
+
62
+ &.sow-icon-container-position-bottom {
63
+ text-align: center;
64
+ flex-direction: column-reverse;
65
+
66
+ .sow-icon-container {
67
+ margin-top: 10px;
68
+ }
69
+ }
70
+
71
+ .sow-icon-container {
72
+ width: @container_size;
73
+ height: @container_size;
74
+ font-size: @container_size;
75
+ text-decoration: none;
76
+ margin: auto;
77
+
78
+ [class^="sow-icon-"],
79
+ .sow-icon-image {
80
+ text-decoration: none;
81
+ color: #FFFFFF;
82
+ width: @container_size;
83
+ height: @container_size;
84
+ position: absolute;
85
+ top: 0;
86
+ display: flex;
87
+ align-items: center;
88
+ justify-content: center;
89
+
90
+ background-size: contain;
91
+ background-repeat: no-repeat;
92
+ background-position: center;
93
+ }
94
+ }
95
+
96
+ h5 {
97
+ margin: 1em 0;
98
+
99
+ a{
100
+ color: inherit;
101
+ text-decoration: none;
102
+
103
+ &:hover {
104
+ text-decoration: underline;
105
+ }
106
+ }
107
+ }
108
+
109
+ p.sow-more-text {
110
+ a {
111
+ font-weight: 500;
112
+ color: inherit;
113
+ text-decoration: none;
114
+
115
+ &:hover {
116
+ text-decoration: underline;
117
+ }
118
+ }
119
+ }
120
+
121
+ p:last-child {
122
+ margin-bottom: 0;
123
+ }
124
+
125
+ margin-bottom: 40px;
126
+
127
+ &.sow-features-feature-last-row {
128
+ margin-bottom: 0;
129
+ }
130
+
131
+ .textwidget {
132
+ margin: auto;
133
+ > h5 {
134
+ .font(@title_font, @title_font_weight);
135
+ font-size: @title_size;
136
+ color: @title_color;
137
+ }
138
+
139
+ > p {
140
+ .font(@text_font, @text_font_weight);
141
+ font-size: @text_size;
142
+ color: @text_color;
143
+ }
144
+
145
+ > p.sow-more-text {
146
+ .font(@more_text_font, @more_text_font_weight);
147
+ font-size: @more_text_size;
148
+ color: @more_text_color;
149
+ }
150
+ }
151
+ }
152
+
153
+ .sow-features-clear {
154
+ clear: both;
155
+ }
156
+
157
+ @media (max-width: 520px) {
158
+ &.sow-features-responsive {
159
+
160
+ .sow-features-feature {
161
+ width: 100% !important;
162
+ float: none;
163
+ margin-bottom: 40px;
164
+
165
+ &:last-child {
166
+ margin-bottom: 0px;
167
+ }
168
+ }
169
+
170
+ .sow-features-clear {
171
+ clear: none;
172
+ }
173
+
174
+ }
175
+ }
176
+ }
widgets/features/tpl/default.php CHANGED
@@ -11,12 +11,12 @@ $last_row = floor( ( count($instance['features']) - 1 ) / $instance['per_row'] )
11
  <div class="sow-features-clear"></div>
12
  <?php endif; ?>
13
 
14
- <div class="sow-features-feature <?php if( floor( $i / $instance['per_row'] ) == $last_row ) echo 'sow-features-feature-last-row' ?>" style="width: <?php echo round( 100 / $instance['per_row'], 3 ) ?>%">
15
 
16
  <?php if( !empty( $feature['more_url'] ) && $instance['icon_link'] ) echo '<a href="' . sow_esc_url( $feature['more_url'] ) . '" ' . ( $instance['new_window'] ? 'target="_blank"' : '' ) . '>'; ?>
17
  <div
18
  class="sow-icon-container <?php echo !empty($instance['container_shape']) ? 'sow-container-' . esc_attr($instance['container_shape']) : 'sow-container-none'?>"
19
- style="font-size: <?php echo intval($instance['container_size']) . esc_attr( $instance['container_size_unit'] ); ?>; color: <?php echo esc_attr($feature['container_color']) ?>; width: <?php echo intval($instance['container_size']) . esc_attr( $instance['container_size_unit'] ); ?>; height: <?php echo intval($instance['container_size']) . esc_attr( $instance['container_size_unit'] ); ?>;"
20
  <?php echo ( ! empty( $feature['icon_title'] ) ? 'title="' . esc_attr( $feature['icon_title'] ) . '"' : '' ); ?>>
21
  <?php
22
  $icon_styles = array();
11
  <div class="sow-features-clear"></div>
12
  <?php endif; ?>
13
 
14
+ <div class="sow-features-feature sow-icon-container-position-<?php echo esc_attr( $feature['container_position'] ) ?> <?php if( floor( $i / $instance['per_row'] ) == $last_row ) echo 'sow-features-feature-last-row' ?>" style="width: <?php echo round( 100 / $instance['per_row'], 3 ) ?>%">
15
 
16
  <?php if( !empty( $feature['more_url'] ) && $instance['icon_link'] ) echo '<a href="' . sow_esc_url( $feature['more_url'] ) . '" ' . ( $instance['new_window'] ? 'target="_blank"' : '' ) . '>'; ?>
17
  <div
18
  class="sow-icon-container <?php echo !empty($instance['container_shape']) ? 'sow-container-' . esc_attr($instance['container_shape']) : 'sow-container-none'?>"
19
+ style="color: <?php echo esc_attr($feature['container_color']) ?>; "
20
  <?php echo ( ! empty( $feature['icon_title'] ) ? 'title="' . esc_attr( $feature['icon_title'] ) . '"' : '' ); ?>>
21
  <?php
22
  $icon_styles = array();
widgets/google-map/css/style.css CHANGED
@@ -1,11 +1 @@
1
- .sow-google-map-canvas img {
2
- -webkit-border-radius: 0 !important;
3
- -moz-border-radius: 0 !important;
4
- border-radius: 0 !important;
5
- -webkit-box-shadow: none !important;
6
- -moz-box-shadow: none !important;
7
- box-shadow: none !important;
8
- line-height: normal !important;
9
- max-width: none !important;
10
- zoom: normal !important;
11
- }
1
+ .sow-google-map-canvas img{-webkit-border-radius:0 !important;-moz-border-radius:0 !important;border-radius:0 !important;-webkit-box-shadow:none !important;-moz-box-shadow:none !important;box-shadow:none !important;line-height:normal !important;max-width:none !important;zoom:normal !important}
 
 
 
 
 
 
 
 
 
 
widgets/google-map/google-map.php CHANGED
@@ -25,6 +25,14 @@ class SiteOrigin_Widget_GoogleMap_Widget extends SiteOrigin_Widget {
25
  }
26
 
27
  function initialize() {
 
 
 
 
 
 
 
 
28
  add_action( 'siteorigin_widgets_before_widget_sow-google-map', array( $this, 'enqueue_widget_scripts' ) );
29
  }
30
 
@@ -400,6 +408,21 @@ class SiteOrigin_Widget_GoogleMap_Widget extends SiteOrigin_Widget {
400
  );
401
  }
402
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
403
  function get_template_name( $instance ) {
404
  return $instance['settings']['map_type'] == 'static' ? 'static-map' : 'js-map';
405
  }
@@ -417,6 +440,14 @@ class SiteOrigin_Widget_GoogleMap_Widget extends SiteOrigin_Widget {
417
  $mrkr_src = wp_get_attachment_image_src( $instance['markers']['marker_icon'] );
418
 
419
  $styles = $this->get_styles( $instance );
 
 
 
 
 
 
 
 
420
  if ( $settings['map_type'] == 'static' ) {
421
  return array(
422
  'src_url' => $this->get_static_image_src( $instance, $settings['width'], $settings['height'], ! empty( $styles ) ? $styles['styles'] : array() ),
@@ -449,7 +480,7 @@ class SiteOrigin_Widget_GoogleMap_Widget extends SiteOrigin_Widget {
449
  'map_name' => ! empty( $styles ) ? $styles['map_name'] : '',
450
  'map_styles' => ! empty( $styles ) ? $styles['styles'] : '',
451
  'directions' => $directions,
452
- 'api_key' => $instance['api_key_section']['api_key']
453
  ));
454
 
455
  return array(
@@ -461,12 +492,7 @@ class SiteOrigin_Widget_GoogleMap_Widget extends SiteOrigin_Widget {
461
  }
462
 
463
  public function enqueue_widget_scripts() {
464
- wp_enqueue_script(
465
- 'sow-google-map',
466
- plugin_dir_url( __FILE__ ) . 'js/js-map' . SOW_BUNDLE_JS_SUFFIX . '.js',
467
- array( 'jquery' ),
468
- SOW_BUNDLE_VERSION
469
- );
470
 
471
  wp_enqueue_style(
472
  'sow-google-map',
25
  }
26
 
27
  function initialize() {
28
+
29
+ wp_register_script(
30
+ 'sow-google-map',
31
+ plugin_dir_url( __FILE__ ) . 'js/js-map' . SOW_BUNDLE_JS_SUFFIX . '.js',
32
+ array( 'jquery' ),
33
+ SOW_BUNDLE_VERSION
34
+ );
35
+
36
  add_action( 'siteorigin_widgets_before_widget_sow-google-map', array( $this, 'enqueue_widget_scripts' ) );
37
  }
38
 
408
  );
409
  }
410
 
411
+ function get_settings_form() {
412
+ return array(
413
+ 'api_key' => array(
414
+ 'type' => 'text',
415
+ 'label' => __( 'API key', 'so-widgets-bundle' ),
416
+ 'required' => true,
417
+ 'description' => sprintf(
418
+ __( 'Enter your %sAPI key%s. Your map won\'t function correctly without one.', 'so-widgets-bundle' ),
419
+ '<a href="https://developers.google.com/maps/documentation/javascript/get-api-key" target="_blank">',
420
+ '</a>'
421
+ )
422
+ )
423
+ );
424
+ }
425
+
426
  function get_template_name( $instance ) {
427
  return $instance['settings']['map_type'] == 'static' ? 'static-map' : 'js-map';
428
  }
440
  $mrkr_src = wp_get_attachment_image_src( $instance['markers']['marker_icon'] );
441
 
442
  $styles = $this->get_styles( $instance );
443
+
444
+ if ( empty( $instance['api_key_section']['api_key'] ) ) {
445
+ $global_settings = $this->get_global_settings();
446
+ if ( ! empty( $global_settings['api_key'] ) ) {
447
+ $instance['api_key_section']['api_key'] = $global_settings['api_key'];
448
+ }
449
+ }
450
+
451
  if ( $settings['map_type'] == 'static' ) {
452
  return array(
453
  'src_url' => $this->get_static_image_src( $instance, $settings['width'], $settings['height'], ! empty( $styles ) ? $styles['styles'] : array() ),
480
  'map_name' => ! empty( $styles ) ? $styles['map_name'] : '',
481
  'map_styles' => ! empty( $styles ) ? $styles['styles'] : '',
482
  'directions' => $directions,
483
+ 'api_key' => $instance['api_key_section']['api_key'],
484
  ));
485
 
486
  return array(
492
  }
493
 
494
  public function enqueue_widget_scripts() {
495
+ wp_enqueue_script( 'sow-google-map' );
 
 
 
 
 
496
 
497
  wp_enqueue_style(
498
  'sow-google-map',
widgets/google-map/js/js-map.js CHANGED
@@ -156,62 +156,57 @@ sowb.SiteOriginGoogleMap = function($) {
156
 
157
  showMarkers: function(markerPositions, map, options) {
158
  if ( markerPositions && markerPositions.length ) {
159
- var geocoder = new google.maps.Geocoder();
160
  this.infoWindows = [];
161
  markerPositions.forEach(
162
  function (mrkr) {
163
  var geocodeMarker = function () {
164
- geocoder.geocode({'address': mrkr.place}, function (res, status) {
165
- if (status == google.maps.GeocoderStatus.OK) {
166
-
167
- var marker = new google.maps.Marker({
168
- position: res[0].geometry.location,
169
- map: map,
170
- draggable: options.markersDraggable,
171
- icon: options.markerIcon,
172
- title: ''
173
- });
174
-
175
- if (mrkr.hasOwnProperty('info') && mrkr.info) {
176
- var infoWindowOptions = {content: mrkr.info};
177
-
178
- if (mrkr.hasOwnProperty('info_max_width') && mrkr.info_max_width) {
179
- infoWindowOptions.maxWidth = mrkr.info_max_width;
180
- }
181
 
182
- var infoDisplay = options.markerInfoDisplay;
183
- infoWindowOptions.disableAutoPan = infoDisplay == 'always';
184
- var infoWindow = new google.maps.InfoWindow(infoWindowOptions);
185
- this.infoWindows.push(infoWindow);
186
- var openEvent = infoDisplay;
187
- if (infoDisplay == 'always') {
188
- openEvent = 'click';
189
- infoWindow.open(map, marker);
190
- }
191
- marker.addListener(openEvent, function () {
192
- infoWindow.open(map, marker);
193
- if(infoDisplay != 'always' && !options.markerInfoMultiple) {
194
- this.infoWindows.forEach(function(iw) {
195
- if (iw !== infoWindow) {
196
- iw.close();
197
- }
198
- });
199
- }
200
- }.bind(this));
201
- if(infoDisplay == 'mouseover') {
202
- marker.addListener('mouseout', function () {
203
- setTimeout(function() {
204
- infoWindow.close();
205
- }, 100);
 
 
 
 
 
 
 
206
  });
207
  }
 
 
 
 
 
 
 
208
  }
209
- } else if (status == google.maps.GeocoderStatus.OVER_QUERY_LIMIT) {
210
- //try again please
211
- setTimeout(geocodeMarker, Math.random() * 1000, mrkr);
212
  }
213
- }.bind(this));
214
- }.bind(this);
 
215
  //set random delays of 0 - 1 seconds when geocoding markers to try avoid hitting the query limit
216
  setTimeout(geocodeMarker, Math.random() * 1000, mrkr);
217
  }.bind(this)
@@ -242,7 +237,7 @@ sowb.SiteOriginGoogleMap = function($) {
242
  optimizeWaypoints: directions.optimizeWaypoints,
243
  },
244
  function(result, status) {
245
- if (status == google.maps.DirectionsStatus.OK) {
246
  directionsRenderer.setDirections(result);
247
  }
248
  });
@@ -252,10 +247,16 @@ sowb.SiteOriginGoogleMap = function($) {
252
  // Init any autocomplete fields first.
253
  var $autoCompleteFields = $( '.sow-google-map-autocomplete' );
254
  var autoCompleteInit = new $.Deferred();
255
- if( $autoCompleteFields.length == 0 || typeof google.maps.places === 'undefined') {
256
  autoCompleteInit.resolve();
257
  } else {
258
  $autoCompleteFields.each(function (index, element) {
 
 
 
 
 
 
259
  var autocomplete = new google.maps.places.Autocomplete(
260
  element,
261
  {types: ['address']}
@@ -281,7 +282,7 @@ sowb.SiteOriginGoogleMap = function($) {
281
  }.bind(this));
282
  }
283
 
284
- autoCompleteInit.done(function(){
285
  $('.sow-google-map-canvas').each(function (index, element) {
286
  var $$ = $(element);
287
 
@@ -310,7 +311,10 @@ sowb.SiteOriginGoogleMap = function($) {
310
  } );
311
 
312
  }.bind(this));
313
- }.bind(this));
 
 
 
314
  },
315
  getGeocoder: function () {
316
  if ( !this._geocoder ) {
@@ -326,7 +330,7 @@ sowb.SiteOriginGoogleMap = function($) {
326
  if ( inputLocation && inputLocation.indexOf( ',' ) > -1 ) {
327
  var vals = inputLocation.split( ',' );
328
  // A latlng value should be of the format 'lat,lng'
329
- if ( vals && vals.length == 2 ) {
330
  latLng = new google.maps.LatLng( vals[ 0 ], vals[ 1 ] );
331
  // Let the API decide if we have a valid latlng
332
  // This should fail if the input is an address containing a comma
@@ -348,10 +352,12 @@ sowb.SiteOriginGoogleMap = function($) {
348
  location.address = this.DEFAULT_LOCATIONS[ rndIndx ];
349
  }
350
  this.getGeocoder().geocode( location, function ( results, status ) {
351
- if ( status == google.maps.GeocoderStatus.OK ) {
352
  locationPromise.resolve( results[ 0 ].geometry.location );
353
- }
354
- else if ( status == google.maps.GeocoderStatus.ZERO_RESULTS ) {
 
 
355
  locationPromise.reject( status );
356
  }
357
  } );
@@ -368,49 +374,37 @@ function soGoogleMapInitialize() {
368
 
369
  jQuery(function ($) {
370
 
371
- sowb.setupGoogleMaps = function(){
372
  var libraries = [];
373
  var apiKey;
374
  $('.sow-google-map-canvas').each(function(index, element) {
375
  var $this = $(element);
376
  var mapOptions = $this.data( 'options' );
377
- var mapsApiLoaded = typeof window.google !== 'undefined' && typeof window.google.maps !== 'undefined';
378
- var isLoaded = function (element) {
379
- var lib = window.google.maps[element];
380
- return window.google.maps.hasOwnProperty(element) && typeof lib !== 'undefined' && lib !== null;
381
- };
382
- var hasLibraries = typeof mapOptions.libraries !== 'undefined' && mapOptions.libraries !== null;
383
- if(hasLibraries) {
384
- mapsApiLoaded = mapsApiLoaded && mapOptions.libraries.every(isLoaded);
385
- }
386
-
387
- if (mapsApiLoaded) {
388
- soGoogleMapInitialize();
389
- } else {
390
- if(mapOptions) {
391
- if( hasLibraries ) {
392
- libraries = libraries.concat(mapOptions.libraries);
393
- }
394
- if( !apiKey && mapOptions.apiKey ) {
395
- apiKey = mapOptions.apiKey;
396
- }
397
  }
398
  }
399
  });
400
 
401
- var apiUrl = 'https://maps.googleapis.com/maps/api/js?v=3.exp&callback=soGoogleMapInitialize';
402
- if(libraries && libraries.length) {
403
- apiUrl += '&libraries=' + libraries.join(',');
404
- }
405
- if(apiKey) {
406
- apiUrl += '&key=' + apiKey;
407
- }
408
- var script = $('<script type="text/javascript" src="' + apiUrl + '">');
409
- var $body = $('body');
410
- if( $body.find('script[src="' + apiUrl + '"]').length == 0 ) {
411
- $('body').append(script);
412
  } else {
 
 
 
 
 
 
 
 
 
413
 
 
414
  }
415
  };
416
  sowb.setupGoogleMaps();
156
 
157
  showMarkers: function(markerPositions, map, options) {
158
  if ( markerPositions && markerPositions.length ) {
 
159
  this.infoWindows = [];
160
  markerPositions.forEach(
161
  function (mrkr) {
162
  var geocodeMarker = function () {
163
+ this.getLocation( mrkr.place ).done( function( location ) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
164
 
165
+ var marker = new google.maps.Marker({
166
+ position: location,
167
+ map: map,
168
+ draggable: options.markersDraggable,
169
+ icon: options.markerIcon,
170
+ title: ''
171
+ });
172
+
173
+ if (mrkr.hasOwnProperty('info') && mrkr.info) {
174
+ var infoWindowOptions = {content: mrkr.info};
175
+
176
+ if (mrkr.hasOwnProperty('info_max_width') && mrkr.info_max_width) {
177
+ infoWindowOptions.maxWidth = mrkr.info_max_width;
178
+ }
179
+
180
+ var infoDisplay = options.markerInfoDisplay;
181
+ infoWindowOptions.disableAutoPan = infoDisplay === 'always';
182
+ var infoWindow = new google.maps.InfoWindow(infoWindowOptions);
183
+ this.infoWindows.push(infoWindow);
184
+ var openEvent = infoDisplay;
185
+ if (infoDisplay === 'always') {
186
+ openEvent = 'click';
187
+ infoWindow.open(map, marker);
188
+ }
189
+ marker.addListener(openEvent, function () {
190
+ infoWindow.open(map, marker);
191
+ if(infoDisplay !== 'always' && !options.markerInfoMultiple) {
192
+ this.infoWindows.forEach(function(iw) {
193
+ if (iw !== infoWindow) {
194
+ iw.close();
195
+ }
196
  });
197
  }
198
+ }.bind(this));
199
+ if(infoDisplay === 'mouseover') {
200
+ marker.addListener('mouseout', function () {
201
+ setTimeout(function() {
202
+ infoWindow.close();
203
+ }, 100);
204
+ });
205
  }
 
 
 
206
  }
207
+
208
+ }.bind( this ) );
209
+ }.bind( this );
210
  //set random delays of 0 - 1 seconds when geocoding markers to try avoid hitting the query limit
211
  setTimeout(geocodeMarker, Math.random() * 1000, mrkr);
212
  }.bind(this)
237
  optimizeWaypoints: directions.optimizeWaypoints,
238
  },
239
  function(result, status) {
240
+ if (status === google.maps.DirectionsStatus.OK) {
241
  directionsRenderer.setDirections(result);
242
  }
243
  });
247
  // Init any autocomplete fields first.
248
  var $autoCompleteFields = $( '.sow-google-map-autocomplete' );
249
  var autoCompleteInit = new $.Deferred();
250
+ if( $autoCompleteFields.length === 0 ) {
251
  autoCompleteInit.resolve();
252
  } else {
253
  $autoCompleteFields.each(function (index, element) {
254
+
255
+ if ( typeof google.maps.places === 'undefined' ) {
256
+ autoCompleteInit.reject('Sorry, we couldn\'t load the "places" library due to another plugin, so the autocomplete feature is not available.');
257
+ return;
258
+ }
259
+
260
  var autocomplete = new google.maps.places.Autocomplete(
261
  element,
262
  {types: ['address']}
282
  }.bind(this));
283
  }
284
 
285
+ autoCompleteInit.always(function(){
286
  $('.sow-google-map-canvas').each(function (index, element) {
287
  var $$ = $(element);
288
 
311
  } );
312
 
313
  }.bind(this));
314
+ }.bind(this))
315
+ .fail(function(error){
316
+ console.log(error);
317
+ });
318
  },
319
  getGeocoder: function () {
320
  if ( !this._geocoder ) {
330
  if ( inputLocation && inputLocation.indexOf( ',' ) > -1 ) {
331
  var vals = inputLocation.split( ',' );
332
  // A latlng value should be of the format 'lat,lng'
333
+ if ( vals && vals.length === 2 ) {
334
  latLng = new google.maps.LatLng( vals[ 0 ], vals[ 1 ] );
335
  // Let the API decide if we have a valid latlng
336
  // This should fail if the input is an address containing a comma
352
  location.address = this.DEFAULT_LOCATIONS[ rndIndx ];
353
  }
354
  this.getGeocoder().geocode( location, function ( results, status ) {
355
+ if ( status === google.maps.GeocoderStatus.OK ) {
356
  locationPromise.resolve( results[ 0 ].geometry.location );
357
+ } else if (status === google.maps.GeocoderStatus.OVER_QUERY_LIMIT) {
358
+ //try again please
359
+ setTimeout( this.getLocation, Math.random() * 1000, inputLocation );
360
+ } else if ( status === google.maps.GeocoderStatus.ZERO_RESULTS ) {
361
  locationPromise.reject( status );
362
  }
363
  } );
374
 
375
  jQuery(function ($) {
376
 
377
+ sowb.setupGoogleMaps = function() {
378
  var libraries = [];
379
  var apiKey;
380
  $('.sow-google-map-canvas').each(function(index, element) {
381
  var $this = $(element);
382
  var mapOptions = $this.data( 'options' );
383
+ if ( mapOptions) {
384
+ if( typeof mapOptions.libraries !== 'undefined' && mapOptions.libraries !== null ) {
385
+ libraries = libraries.concat(mapOptions.libraries);
386
+ }
387
+ if( !apiKey && mapOptions.apiKey ) {
388
+ apiKey = mapOptions.apiKey;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
389
  }
390
  }
391
  });
392
 
393
+ var mapsApiLoaded = typeof window.google !== 'undefined' && typeof window.google.maps !== 'undefined';
394
+ if ( mapsApiLoaded ) {
395
+ soGoogleMapInitialize();
 
 
 
 
 
 
 
 
396
  } else {
397
+ var apiUrl = 'https://maps.googleapis.com/maps/api/js?callback=soGoogleMapInitialize';
398
+
399
+ if ( libraries && libraries.length ) {
400
+ apiUrl += '&libraries=' + libraries.join(',');
401
+ }
402
+
403
+ if ( apiKey ) {
404
+ apiUrl += '&key=' + apiKey;
405
+ }
406
 
407
+ $( 'body' ).append( '<script async type="text/javascript" src="' + apiUrl + '">' );
408
  }
409
  };
410
  sowb.setupGoogleMaps();
widgets/google-map/js/js-map.min.js CHANGED
@@ -1 +1 @@
1
- function soGoogleMapInitialize(){new sowb.SiteOriginGoogleMap(window.jQuery).initMaps()}var sowb=window.sowb||{};sowb.SiteOriginGoogleMap=function(e){return{DEFAULT_LOCATIONS:["Addo Elephant National Park, R335, Addo","Cape Town, Western Cape, South Africa","San Francisco Bay Area, CA, United States","New York, NY, United States"],showMap:function(e,o,t){var i=Number(t.zoom);i||(i=14);var n="user_map_style",a={zoom:i,scrollwheel:t.scrollZoom,draggable:t.draggable,disableDefaultUI:t.disableUi,zoomControl:t.zoomControl,panControl:t.panControl,center:o,mapTypeControlOptions:{mapTypeIds:[google.maps.MapTypeId.ROADMAP,n]}},s=new google.maps.Map(e,a),r={name:t.mapName},l=t.mapStyles;if(l){var d=new google.maps.StyledMapType(l,r);s.mapTypes.set(n,d),s.setMapTypeId(n)}if(t.markerAtCenter&&(this.centerMarker=new google.maps.Marker({position:o,map:s,draggable:t.markersDraggable,icon:t.markerIcon,title:""})),t.keepCentered){var p;google.maps.event.addDomListener(s,"idle",function(){p=s.getCenter()}),google.maps.event.addDomListener(window,"resize",function(){s.setCenter(p)})}this.linkAutocompleteField(t.autocomplete,t.autocompleteElement,s,t),this.showMarkers(t.markerPositions,s,t),this.showDirections(t.directions,s,t)},linkAutocompleteField:function(o,t,i,n){if(o&&t){var a=function(e){this.inputAddress!=e&&(this.inputAddress=e,this.getLocation(this.inputAddress).done(function(e){i.setZoom(15),i.setCenter(e),this.centerMarker&&(this.centerMarker.setPosition(e),this.centerMarker.setTitle(this.inputAddress))}.bind(this)))}.bind(this),s=e(t);o.addListener("place_changed",function(){var e=o.getPlace();i.setZoom(15),e.geometry&&(i.setCenter(e.geometry.location),this.centerMarker&&this.centerMarker.setPosition(e.geometry.location))}.bind(this)),google.maps.event.addDomListener(t,"keypress",function(e){var o=e.keyCode||e.which;"13"==o&&e.preventDefault()}),s.focusin(function(){if(!this.resultsObserver){var o=document.querySelector(".pac-container");this.resultsObserver=new MutationObserver(function(){var o=e(e(".pac-item").get(0)),t=o.find(".pac-item-query").text(),i=o.find("span").not("[class]").text(),n=t+(i?", "+i:"");n&&a(n)});var t={attributes:!0,childList:!0,characterData:!0};this.resultsObserver.observe(o,t)}}.bind(this));var r=function(e){this.getGeocoder().geocode({location:e},function(o,t){if(t==google.maps.GeocoderStatus.OK&&o.length>0){var i=o[0].formatted_address;s.val(i),this.centerMarker&&(this.centerMarker.setPosition(e),this.centerMarker.setTitle(i))}}.bind(this))}.bind(this);i.addListener("click",function(e){r(e.latLng)}),this.centerMarker.addListener("dragend",function(e){r(e.latLng)})}},showMarkers:function(e,o,t){if(e&&e.length){var i=new google.maps.Geocoder;this.infoWindows=[],e.forEach(function(e){var n=function(){i.geocode({address:e.place},function(i,a){if(a==google.maps.GeocoderStatus.OK){var s=new google.maps.Marker({position:i[0].geometry.location,map:o,draggable:t.markersDraggable,icon:t.markerIcon,title:""});if(e.hasOwnProperty("info")&&e.info){var r={content:e.info};e.hasOwnProperty("info_max_width")&&e.info_max_width&&(r.maxWidth=e.info_max_width);var l=t.markerInfoDisplay;r.disableAutoPan="always"==l;var d=new google.maps.InfoWindow(r);this.infoWindows.push(d);var p=l;"always"==l&&(p="click",d.open(o,s)),s.addListener(p,function(){d.open(o,s),"always"==l||t.markerInfoMultiple||this.infoWindows.forEach(function(e){e!==d&&e.close()})}.bind(this)),"mouseover"==l&&s.addListener("mouseout",function(){setTimeout(function(){d.close()},100)})}}else a==google.maps.GeocoderStatus.OVER_QUERY_LIMIT&&setTimeout(n,1e3*Math.random(),e)}.bind(this))}.bind(this);setTimeout(n,1e3*Math.random(),e)}.bind(this))}},showDirections:function(e,o){if(e){e.waypoints&&e.waypoints.length&&e.waypoints.map(function(e){e.stopover=Boolean(e.stopover)});var t=new google.maps.DirectionsRenderer;t.setMap(o);var i=new google.maps.DirectionsService;i.route({origin:e.origin,destination:e.destination,travelMode:e.travelMode.toUpperCase(),avoidHighways:e.avoidHighways,avoidTolls:e.avoidTolls,waypoints:e.waypoints,optimizeWaypoints:e.optimizeWaypoints},function(e,o){o==google.maps.DirectionsStatus.OK&&t.setDirections(e)})}},initMaps:function(){var o=e(".sow-google-map-autocomplete"),t=new e.Deferred;0==o.length||"undefined"==typeof google.maps.places?t.resolve():o.each(function(o,i){var n=new google.maps.places.Autocomplete(i,{types:["address"]}),a=e(i).siblings(".sow-google-map-canvas");if(a.length>0){var s=a.data("options");s.autocomplete=n,s.autocompleteElement=i,this.getLocation(s.address).done(function(e){this.showMap(a.get(0),e,s),a.data("initialized",!0),t.resolve()}.bind(this)).fail(function(){a.append("<div><p><strong>There were no results for the place you entered. Please try another.</strong></p></div>"),t.reject()})}}.bind(this)),t.done(function(){e(".sow-google-map-canvas").each(function(o,t){var i=e(t);if(i.data("initialized"))return!0;var n=i.data("options"),a=n.address;if(!a){var s=n.markerPositions;s&&s.length&&(a=s[0].place)}this.getLocation(a).done(function(e){this.showMap(i.get(0),e,n),i.data("initialized")}.bind(this)).fail(function(){i.append("<div><p><strong>There were no results for the place you entered. Please try another.</strong></p></div>")})}.bind(this))}.bind(this))},getGeocoder:function(){return this._geocoder||(this._geocoder=new google.maps.Geocoder),this._geocoder},getLocation:function(o){var t,i=new e.Deferred,n={address:o};if(o&&o.indexOf(",")>-1){var a=o.split(",");a&&2==a.length&&(t=new google.maps.LatLng(a[0],a[1]),isNaN(t.lat())||isNaN(t.lng())||(n={location:{lat:t.lat(),lng:t.lng()}}))}if(n.hasOwnProperty("location"))i.resolve(n.location);else if(n.hasOwnProperty("address")){if(!n.address){var s=parseInt(Math.random()*this.DEFAULT_LOCATIONS.length);n.address=this.DEFAULT_LOCATIONS[s]}this.getGeocoder().geocode(n,function(e,o){o==google.maps.GeocoderStatus.OK?i.resolve(e[0].geometry.location):o==google.maps.GeocoderStatus.ZERO_RESULTS&&i.reject(o)})}return i}}},jQuery(function(e){sowb.setupGoogleMaps=function(){var o,t=[];e(".sow-google-map-canvas").each(function(i,n){var a=e(n),s=a.data("options"),r="undefined"!=typeof window.google&&"undefined"!=typeof window.google.maps,l=function(e){var o=window.google.maps[e];return window.google.maps.hasOwnProperty(e)&&"undefined"!=typeof o&&null!==o},d="undefined"!=typeof s.libraries&&null!==s.libraries;d&&(r=r&&s.libraries.every(l)),r?soGoogleMapInitialize():s&&(d&&(t=t.concat(s.libraries)),!o&&s.apiKey&&(o=s.apiKey))});var i="https://maps.googleapis.com/maps/api/js?v=3.exp&callback=soGoogleMapInitialize";t&&t.length&&(i+="&libraries="+t.join(",")),o&&(i+="&key="+o);var n=e('<script type="text/javascript" src="'+i+'">'),a=e("body");0==a.find('script[src="'+i+'"]').length&&e("body").append(n)},sowb.setupGoogleMaps(),e(sowb).on("setup_widgets",sowb.setupGoogleMaps)});
1
+ function soGoogleMapInitialize(){new sowb.SiteOriginGoogleMap(window.jQuery).initMaps()}var sowb=window.sowb||{};sowb.SiteOriginGoogleMap=function(e){return{DEFAULT_LOCATIONS:["Addo Elephant National Park, R335, Addo","Cape Town, Western Cape, South Africa","San Francisco Bay Area, CA, United States","New York, NY, United States"],showMap:function(e,o,t){var i=Number(t.zoom);i||(i=14);var n="user_map_style",a={zoom:i,scrollwheel:t.scrollZoom,draggable:t.draggable,disableDefaultUI:t.disableUi,zoomControl:t.zoomControl,panControl:t.panControl,center:o,mapTypeControlOptions:{mapTypeIds:[google.maps.MapTypeId.ROADMAP,n]}},s=new google.maps.Map(e,a),r={name:t.mapName},l=t.mapStyles;if(l){var d=new google.maps.StyledMapType(l,r);s.mapTypes.set(n,d),s.setMapTypeId(n)}if(t.markerAtCenter&&(this.centerMarker=new google.maps.Marker({position:o,map:s,draggable:t.markersDraggable,icon:t.markerIcon,title:""})),t.keepCentered){var c;google.maps.event.addDomListener(s,"idle",function(){c=s.getCenter()}),google.maps.event.addDomListener(window,"resize",function(){s.setCenter(c)})}this.linkAutocompleteField(t.autocomplete,t.autocompleteElement,s,t),this.showMarkers(t.markerPositions,s,t),this.showDirections(t.directions,s,t)},linkAutocompleteField:function(o,t,i,n){if(o&&t){var a=function(e){this.inputAddress!=e&&(this.inputAddress=e,this.getLocation(this.inputAddress).done(function(e){i.setZoom(15),i.setCenter(e),this.centerMarker&&(this.centerMarker.setPosition(e),this.centerMarker.setTitle(this.inputAddress))}.bind(this)))}.bind(this),s=e(t);o.addListener("place_changed",function(){var e=o.getPlace();i.setZoom(15),e.geometry&&(i.setCenter(e.geometry.location),this.centerMarker&&this.centerMarker.setPosition(e.geometry.location))}.bind(this)),google.maps.event.addDomListener(t,"keypress",function(e){var o=e.keyCode||e.which;"13"==o&&e.preventDefault()}),s.focusin(function(){if(!this.resultsObserver){var o=document.querySelector(".pac-container");this.resultsObserver=new MutationObserver(function(){var o=e(e(".pac-item").get(0)),t=o.find(".pac-item-query").text(),i=o.find("span").not("[class]").text(),n=t+(i?", "+i:"");n&&a(n)});var t={attributes:!0,childList:!0,characterData:!0};this.resultsObserver.observe(o,t)}}.bind(this));var r=function(e){this.getGeocoder().geocode({location:e},function(o,t){if(t==google.maps.GeocoderStatus.OK&&o.length>0){var i=o[0].formatted_address;s.val(i),this.centerMarker&&(this.centerMarker.setPosition(e),this.centerMarker.setTitle(i))}}.bind(this))}.bind(this);i.addListener("click",function(e){r(e.latLng)}),this.centerMarker.addListener("dragend",function(e){r(e.latLng)})}},showMarkers:function(e,o,t){e&&e.length&&(this.infoWindows=[],e.forEach(function(e){var i=function(){this.getLocation(e.place).done(function(i){var n=new google.maps.Marker({position:i,map:o,draggable:t.markersDraggable,icon:t.markerIcon,title:""});if(e.hasOwnProperty("info")&&e.info){var a={content:e.info};e.hasOwnProperty("info_max_width")&&e.info_max_width&&(a.maxWidth=e.info_max_width);var s=t.markerInfoDisplay;a.disableAutoPan="always"===s;var r=new google.maps.InfoWindow(a);this.infoWindows.push(r);var l=s;"always"===s&&(l="click",r.open(o,n)),n.addListener(l,function(){r.open(o,n),"always"===s||t.markerInfoMultiple||this.infoWindows.forEach(function(e){e!==r&&e.close()})}.bind(this)),"mouseover"===s&&n.addListener("mouseout",function(){setTimeout(function(){r.close()},100)})}}.bind(this))}.bind(this);setTimeout(i,1e3*Math.random(),e)}.bind(this)))},showDirections:function(e,o){if(e){e.waypoints&&e.waypoints.length&&e.waypoints.map(function(e){e.stopover=Boolean(e.stopover)});var t=new google.maps.DirectionsRenderer;t.setMap(o);var i=new google.maps.DirectionsService;i.route({origin:e.origin,destination:e.destination,travelMode:e.travelMode.toUpperCase(),avoidHighways:e.avoidHighways,avoidTolls:e.avoidTolls,waypoints:e.waypoints,optimizeWaypoints:e.optimizeWaypoints},function(e,o){o===google.maps.DirectionsStatus.OK&&t.setDirections(e)})}},initMaps:function(){var o=e(".sow-google-map-autocomplete"),t=new e.Deferred;0===o.length?t.resolve():o.each(function(o,i){if("undefined"==typeof google.maps.places)return void t.reject('Sorry, we couldn\'t load the "places" library due to another plugin, so the autocomplete feature is not available.');var n=new google.maps.places.Autocomplete(i,{types:["address"]}),a=e(i).siblings(".sow-google-map-canvas");if(a.length>0){var s=a.data("options");s.autocomplete=n,s.autocompleteElement=i,this.getLocation(s.address).done(function(e){this.showMap(a.get(0),e,s),a.data("initialized",!0),t.resolve()}.bind(this)).fail(function(){a.append("<div><p><strong>There were no results for the place you entered. Please try another.</strong></p></div>"),t.reject()})}}.bind(this)),t.always(function(){e(".sow-google-map-canvas").each(function(o,t){var i=e(t);if(i.data("initialized"))return!0;var n=i.data("options"),a=n.address;if(!a){var s=n.markerPositions;s&&s.length&&(a=s[0].place)}this.getLocation(a).done(function(e){this.showMap(i.get(0),e,n),i.data("initialized")}.bind(this)).fail(function(){i.append("<div><p><strong>There were no results for the place you entered. Please try another.</strong></p></div>")})}.bind(this))}.bind(this)).fail(function(e){console.log(e)})},getGeocoder:function(){return this._geocoder||(this._geocoder=new google.maps.Geocoder),this._geocoder},getLocation:function(o){var t,i=new e.Deferred,n={address:o};if(o&&o.indexOf(",")>-1){var a=o.split(",");a&&2===a.length&&(t=new google.maps.LatLng(a[0],a[1]),isNaN(t.lat())||isNaN(t.lng())||(n={location:{lat:t.lat(),lng:t.lng()}}))}if(n.hasOwnProperty("location"))i.resolve(n.location);else if(n.hasOwnProperty("address")){if(!n.address){var s=parseInt(Math.random()*this.DEFAULT_LOCATIONS.length);n.address=this.DEFAULT_LOCATIONS[s]}this.getGeocoder().geocode(n,function(e,t){t===google.maps.GeocoderStatus.OK?i.resolve(e[0].geometry.location):t===google.maps.GeocoderStatus.OVER_QUERY_LIMIT?setTimeout(this.getLocation,1e3*Math.random(),o):t===google.maps.GeocoderStatus.ZERO_RESULTS&&i.reject(t)})}return i}}},jQuery(function(e){sowb.setupGoogleMaps=function(){var o,t=[];e(".sow-google-map-canvas").each(function(i,n){var a=e(n),s=a.data("options");s&&("undefined"!=typeof s.libraries&&null!==s.libraries&&(t=t.concat(s.libraries)),!o&&s.apiKey&&(o=s.apiKey))});var i="undefined"!=typeof window.google&&"undefined"!=typeof window.google.maps;if(i)soGoogleMapInitialize();else{var n="https://maps.googleapis.com/maps/api/js?callback=soGoogleMapInitialize";t&&t.length&&(n+="&libraries="+t.join(",")),o&&(n+="&key="+o),e("body").append('<script async type="text/javascript" src="'+n+'">')}},sowb.setupGoogleMaps(),e(sowb).on("setup_widgets",sowb.setupGoogleMaps)});
widgets/headline/headline.php CHANGED
@@ -321,7 +321,7 @@ class SiteOrigin_Widget_Headline_Widget extends SiteOrigin_Widget {
321
  'headline_tag' => $instance['headline']['tag'],
322
  'sub_headline' => $instance['sub_headline']['text'],
323
  'sub_headline_destination_url' => $instance['sub_headline']['destination_url'],
324
- 'sub_headline_new_window' => $instance['headline']['new_window'],
325
  'sub_headline_tag' => $instance['sub_headline']['tag'],
326
  'order' => $instance['order'],
327
  'has_divider' => ! empty( $instance['divider'] ) && $instance['divider']['style'] != 'none'
321
  'headline_tag' => $instance['headline']['tag'],
322
  'sub_headline' => $instance['sub_headline']['text'],
323
  'sub_headline_destination_url' => $instance['sub_headline']['destination_url'],
324
+ 'sub_headline_new_window' => $instance['sub_headline']['new_window'],
325
  'sub_headline_tag' => $instance['sub_headline']['tag'],
326
  'order' => $instance['order'],
327
  'has_divider' => ! empty( $instance['divider'] ) && $instance['divider']['style'] != 'none'
widgets/image-grid/css/image-grid.css CHANGED
@@ -1,11 +1 @@
1
- .sow-image-grid-wrapper {
2
- text-align: center;
3
- }
4
- .sow-image-grid-wrapper .sow-image-grid-image {
5
- display: inline-block;
6
- }
7
- .sow-image-grid-wrapper .sow-image-grid-image img {
8
- display: none;
9
- max-width: 100%;
10
- height: auto;
11
- }
1
+ .sow-image-grid-wrapper{text-align:center}.sow-image-grid-wrapper .sow-image-grid-image{display:inline-block}.sow-image-grid-wrapper .sow-image-grid-image img{display:none;max-width:100%;height:auto}
 
 
 
 
 
 
 
 
 
 
widgets/image/image.php CHANGED
@@ -113,15 +113,48 @@ class SiteOrigin_Widget_Image_Widget extends SiteOrigin_Widget {
113
  $title = '';
114
  }
115
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
116
  return array(
117
  'title' => $title,
118
  'title_position' => $instance['title_position'],
119
- 'image' => $instance['image'],
120
- 'size' => $instance['size'],
121
- 'image_fallback' => ! empty( $instance['image_fallback'] ) ? $instance['image_fallback'] : false,
122
- 'alt' => !empty( $instance['alt'] ) ? $instance['alt'] : get_post_meta( $instance['image'], '_wp_attachment_image_alt', true ),
123
  'url' => $instance['url'],
124
  'new_window' => $instance['new_window'],
 
 
125
  );
126
  }
127
 
@@ -132,7 +165,7 @@ class SiteOrigin_Widget_Image_Widget extends SiteOrigin_Widget {
132
  'image_display' => $instance['align'] == 'default' ? 'block' : 'inline-block',
133
  'image_max_width' => ! empty( $instance['bound'] ) ? '100%' : '',
134
  'image_height' => ! empty( $instance['bound'] ) ? 'auto' : '',
135
- 'image_width' => ! empty( $instance['full_width'] ) ? '100%' : '',
136
  );
137
  }
138
  }
113
  $title = '';
114
  }
115
  }
116
+ $src = siteorigin_widgets_get_attachment_image_src(
117
+ $instance['image'],
118
+ $instance['size'],
119
+ ! empty( $instance['image_fallback'] ) ? $instance['image_fallback'] : false
120
+ );
121
+
122
+ $attr = array();
123
+ if( !empty($src) ) {
124
+ $attr = array( 'src' => $src[0] );
125
+
126
+ if ( ! empty( $src[1] ) ) {
127
+ $attr['width'] = $src[1];
128
+ }
129
+
130
+ if ( ! empty( $src[2] ) ) {
131
+ $attr['height'] = $src[2];
132
+ }
133
+
134
+ if ( function_exists( 'wp_get_attachment_image_srcset' ) ) {
135
+ $attr['srcset'] = wp_get_attachment_image_srcset( $instance['image'], $instance['size'] );
136
+ }
137
+ if ( function_exists( 'wp_get_attachment_image_sizes' ) ) {
138
+ $attr['sizes'] = wp_get_attachment_image_sizes( $instance['image'], $instance['size'] );
139
+ }
140
+ }
141
+ $attr = apply_filters( 'siteorigin_widgets_image_attr', $attr, $instance, $this );
142
+
143
+ $attr['title'] = $title;
144
+
145
+ if ( ! empty( $instance['alt'] ) ) {
146
+ $attr['alt'] = $instance['alt'];
147
+ } else {
148
+ $attr['alt'] = get_post_meta( $instance['image'], '_wp_attachment_image_alt', true );
149
+ }
150
+
151
  return array(
152
  'title' => $title,
153
  'title_position' => $instance['title_position'],
 
 
 
 
154
  'url' => $instance['url'],
155
  'new_window' => $instance['new_window'],
156
+ 'attributes' => $attr,
157
+ 'classes' => array( 'so-widget-image' ),
158
  );
159
  }
160
 
165
  'image_display' => $instance['align'] == 'default' ? 'block' : 'inline-block',
166
  'image_max_width' => ! empty( $instance['bound'] ) ? '100%' : '',
167
  'image_height' => ! empty( $instance['bound'] ) ? 'auto' : '',
168
+ 'image_width' => ! empty( $instance['full_width'] ) ? '100%' : ( ! empty( $instance['bound'] ) ? 'inherit' : '' ),
169
  );
170
  }
171
  }
widgets/image/tpl/default.php CHANGED
@@ -2,12 +2,10 @@
2
  /**
3
  * @var $title
4
  * @var $title_position
5
- * @var $image
6
- * @var $size
7
- * @var $image_fallback
8
- * @var $alt
9
  * @var $url
10
  * @var $new_window
 
 
11
  */
12
  ?>
13
 
@@ -16,36 +14,13 @@
16
  <?php endif; ?>
17
 
18
  <?php
19
- $src = siteorigin_widgets_get_attachment_image_src(
20
- $image,
21
- $size,
22
- $image_fallback
23
- );
24
-
25
- $attr = array();
26
- if( !empty($src) ) {
27
- $attr = array(
28
- 'src' => $src[0],
29
- );
30
-
31
- if(!empty($src[1])) $attr['width'] = $src[1];
32
- if(!empty($src[2])) $attr['height'] = $src[2];
33
- if (function_exists('wp_get_attachment_image_srcset')) {
34
- $attr['srcset'] = wp_get_attachment_image_srcset( $image, $size );
35
- }
36
- }
37
- $attr = apply_filters( 'siteorigin_widgets_image_attr', $attr, $instance, $this );
38
-
39
- $classes = array('so-widget-image');
40
-
41
- if( !empty( $title ) ) $attr['title'] = $title;
42
- if( !empty( $alt ) ) $attr['alt'] = $alt;
43
 
44
  ?>
45
  <div class="sow-image-container">
46
- <?php if(!empty($url)) : ?><a href="<?php echo sow_esc_url($url) ?>" <?php if($new_window) echo 'target="_blank"' ?>><?php endif; ?>
47
- <img <?php foreach($attr as $n => $v) echo $n.'="' . esc_attr($v) . '" ' ?> class="<?php echo esc_attr( implode(' ', $classes) ) ?>"/>
48
- <?php if(!empty($url)) : ?></a><?php endif; ?>
 
49
  </div>
50
 
51
  <?php if( $title_position == 'below' ) : ?>
2
  /**
3
  * @var $title
4
  * @var $title_position
 
 
 
 
5
  * @var $url
6
  * @var $new_window
7
+ * @var $attributes
8
+ * @var $classes
9
  */
10
  ?>
11
 
14
  <?php endif; ?>
15
 
16
  <?php
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
17
 
18
  ?>
19
  <div class="sow-image-container">
20
+ <?php if ( ! empty( $url ) ) : ?><a href="<?php echo sow_esc_url( $url ) ?>" <?php if($new_window) echo 'target="_blank"' ?>><?php endif; ?>
21
+ <img <?php foreach( $attributes as $n => $v ) if ( ! empty( $v ) ) : echo $n.'="' . esc_attr( $v ) . '" '; endif; ?>
22
+ class="<?php echo esc_attr( implode(' ', $classes ) ) ?>"/>
23
+ <?php if ( ! empty( $url ) ) : ?></a><?php endif; ?>
24
  </div>
25
 
26
  <?php if( $title_position == 'below' ) : ?>
widgets/post-carousel/css/style.css CHANGED
@@ -1,170 +1 @@
1
- @font-face {
2
- font-family: 'carousel-arrows';
3
- src: url('fonts/carousel-arrows.eot?-95vnmw');
4
- src: url('fonts/carousel-arrows.eot?#iefix-95vnmw') format('embedded-opentype'), url('fonts/carousel-arrows.woff?-95vnmw') format('woff'), url('fonts/carousel-arrows.ttf?-95vnmw') format('truetype'), url('fonts/carousel-arrows.svg?-95vnmw#carousel-arrows') format('svg');
5
- font-weight: normal;
6
- font-style: normal;
7
- }
8
- .sow-carousel-title .widget-title {
9
- display: inline-block;
10
- padding-right: 15px;
11
- }
12
- .sow-carousel-title a.sow-carousel-next,
13
- .sow-carousel-title a.sow-carousel-previous {
14
- font-family: 'carousel-arrows';
15
- speak: none;
16
- display: block;
17
- float: right;
18
- overflow: hidden;
19
- margin-left: 2px;
20
- margin-top: 3px;
21
- font-style: normal;
22
- font-weight: normal;
23
- font-variant: normal;
24
- text-transform: none;
25
- font-size: 8px;
26
- line-height: 18px;
27
- width: 18px;
28
- text-align: center;
29
- /* Better Font Rendering =========== */
30
- -webkit-font-smoothing: antialiased;
31
- -moz-osx-font-smoothing: grayscale;
32
- text-decoration: none;
33
- color: #FFFFFF;
34
- background: #333333;
35
- border-radius: 2px;
36
- }
37
- .sow-carousel-title a.sow-carousel-next:hover,
38
- .sow-carousel-title a.sow-carousel-previous:hover {
39
- background: #444444;
40
- }
41
- .sow-carousel-title a.sow-carousel-next:before {
42
- content: "\e601";
43
- }
44
- .sow-carousel-title a.sow-carousel-previous:before {
45
- content: "\e600";
46
- }
47
- @media screen and (max-width: 600px) {
48
- .sow-carousel-title a.sow-carousel-previous {
49
- display: none;
50
- }
51
- .sow-carousel-title a.sow-carousel-next {
52
- display: none;
53
- }
54
- }
55
- .widget_sow-carousel {
56
- overflow-x: hidden;
57
- overflow-y: hidden;
58
- }
59
- .sow-carousel-wrapper {
60
- overflow: hidden;
61
- position: relative;
62
- left: 0;
63
- right: 0;
64
- }
65
- .sow-carousel-wrapper ul.sow-carousel-items {
66
- list-style: none;
67
- -webkit-transition: all 0.45s ease;
68
- -moz-transition: all 0.45s ease;
69
- -o-transition: all 0.45s ease;
70
- transition: all 0.45s ease;
71
- height: 200px;
72
- margin: 0;
73
- padding: 0;
74
- zoom: 1;
75
- width: 99999px;
76
- }
77
- .sow-carousel-wrapper ul.sow-carousel-items:before {
78
- content: '';
79
- display: block;
80
- }
81
- .sow-carousel-wrapper ul.sow-carousel-items:after {
82
- content: '';
83
- display: table;
84
- clear: both;
85
- }
86
- .sow-carousel-wrapper ul.sow-carousel-items li.sow-carousel-item {
87
- list-style: none;
88
- margin-left: 0;
89
- padding: 0;
90
- display: block;
91
- float: left;
92
- margin-right: 15px;
93
- width: 242px;
94
- overflow-x: hidden;
95
- overflow-y: hidden;
96
- }
97
- .sow-carousel-wrapper ul.sow-carousel-items li.sow-carousel-item:last-child {
98
- margin-right: 0;
99
- }
100
- .sow-carousel-wrapper ul.sow-carousel-items li.sow-carousel-item.rtl {
101
- float: right;
102
- }
103
- .sow-carousel-wrapper ul.sow-carousel-items li.sow-carousel-item.rtl:last-child {
104
- margin-right: 15px;
105
- }
106
- .sow-carousel-wrapper ul.sow-carousel-items li.sow-carousel-item .sow-carousel-thumbnail {
107
- line-height: 0;
108
- }
109
- .sow-carousel-wrapper ul.sow-carousel-items li.sow-carousel-item .sow-carousel-thumbnail a {
110
- display: block;
111
- width: 242px;
112
- height: 162px;
113
- background-size: 242px 162px;
114
- background-position: center center;
115
- }
116
- .sow-carousel-wrapper ul.sow-carousel-items li.sow-carousel-item .sow-carousel-thumbnail a,
117
- .sow-carousel-wrapper ul.sow-carousel-items li.sow-carousel-item .sow-carousel-thumbnail a span.overlay {
118
- -webkit-transition: all 0.35s ease;
119
- -moz-transition: all 0.35s ease;
120
- -o-transition: all 0.35s ease;
121
- transition: all 0.35s ease;
122
- }
123
- .sow-carousel-wrapper ul.sow-carousel-items li.sow-carousel-item .sow-carousel-thumbnail a span.overlay {
124
- display: block;
125
- width: 100%;
126
- height: 100%;
127
- background: #3279BB;
128
- opacity: 0;
129
- }
130
- .sow-carousel-wrapper ul.sow-carousel-items li.sow-carousel-item .sow-carousel-thumbnail a:hover {
131
- background-size: 272px 182px;
132
- }
133
- .sow-carousel-wrapper ul.sow-carousel-items li.sow-carousel-item .sow-carousel-thumbnail a:hover span {
134
- opacity: 0.5;
135
- }
136
- .sow-carousel-wrapper ul.sow-carousel-items li.sow-carousel-item .sow-carousel-default-thumbnail {
137
- display: block;
138
- width: 242px;
139
- height: 162px;
140
- background: #E8E8E8;
141
- background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #E0E0E0), color-stop(1, #E8E8E8));
142
- background: -ms-linear-gradient(bottom, #E0E0E0, #E8E8E8);
143
- background: -moz-linear-gradient(center bottom, #E0E0E0 0%, #E8E8E8 100%);
144
- background: -o-linear-gradient(#E8E8E8, #E0E0E0);
145
- }
146
- .sow-carousel-wrapper ul.sow-carousel-items li.sow-carousel-item h3 {
147
- font-size: 15px;
148
- text-align: center;
149
- font-weight: 500;
150
- color: #474747;
151
- margin: 10px 0 0 0;
152
- }
153
- .sow-carousel-wrapper ul.sow-carousel-items li.sow-carousel-item h3 a {
154
- text-decoration: none;
155
- color: inherit;
156
- }
157
- .sow-carousel-wrapper ul.sow-carousel-items li.sow-carousel-loading {
158
- display: block;
159
- width: 242px;
160
- height: 162px;
161
- float: left;
162
- background: url(images/carousel-loader.gif) #F6F6F6 center center no-repeat;
163
- margin: 0;
164
- }
165
- a.sow-carousel-previous {
166
- display: none;
167
- }
168
- a.sow-carousel-next {
169
- display: none;
170
- }
1
+ @font-face{font-family:'carousel-arrows';src:url('fonts/carousel-arrows.eot?-95vnmw');src:url('fonts/carousel-arrows.eot?#iefix-95vnmw') format('embedded-opentype'),url('fonts/carousel-arrows.woff?-95vnmw') format('woff'),url('fonts/carousel-arrows.ttf?-95vnmw') format('truetype'),url('fonts/carousel-arrows.svg?-95vnmw#carousel-arrows') format('svg');font-weight:normal;font-style:normal}.sow-carousel-title .widget-title{display:inline-block;padding-right:15px}.sow-carousel-title a.sow-carousel-next,.sow-carousel-title a.sow-carousel-previous{font-family:'carousel-arrows';speak:none;display:block;float:right;overflow:hidden;margin-left:2px;margin-top:3px;font-style:normal;font-weight:normal;font-variant:normal;text-transform:none;font-size:8px;line-height:18px;width:18px;text-align:center;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none;color:#FFFFFF;background:#333333;border-radius:2px}.sow-carousel-title a.sow-carousel-next:hover,.sow-carousel-title a.sow-carousel-previous:hover{background:#444444}.sow-carousel-title a.sow-carousel-next:before{content:"\e601"}.sow-carousel-title a.sow-carousel-previous:before{content:"\e600"}@media screen and (max-width:600px){.sow-carousel-title a.sow-carousel-previous{display:none}.sow-carousel-title a.sow-carousel-next{display:none}}.widget_sow-carousel{overflow-x:hidden;overflow-y:hidden}.sow-carousel-wrapper{overflow:hidden;position:relative;left:0;right:0}.sow-carousel-wrapper ul.sow-carousel-items{list-style:none;-webkit-transition:all .45s ease;-moz-transition:all .45s ease;-o-transition:all .45s ease;transition:all .45s ease;height:200px;margin:0;padding:0;zoom:1;width:99999px}.sow-carousel-wrapper ul.sow-carousel-items:before{content:'';display:block}.sow-carousel-wrapper ul.sow-carousel-items:after{content:'';display:table;clear:both}.sow-carousel-wrapper ul.sow-carousel-items li.sow-carousel-item{list-style:none;margin-left:0;padding:0;display:block;float:left;margin-right:15px;overflow-x:hidden;overflow-y:hidden}.sow-carousel-wrapper ul.sow-carousel-items li.sow-carousel-item:last-child{margin-right:0}.sow-carousel-wrapper ul.sow-carousel-items li.sow-carousel-item.rtl{float:right}.sow-carousel-wrapper ul.sow-carousel-items li.sow-carousel-item.rtl:last-child{margin-right:15px}.sow-carousel-wrapper ul.sow-carousel-items li.sow-carousel-item .sow-carousel-thumbnail{line-height:0}.sow-carousel-wrapper ul.sow-carousel-items li.sow-carousel-item .sow-carousel-thumbnail a{display:block;background-position:center center}.sow-carousel-wrapper ul.sow-carousel-items li.sow-carousel-item .sow-carousel-thumbnail a,.sow-carousel-wrapper ul.sow-carousel-items li.sow-carousel-item .sow-carousel-thumbnail a span.overlay{-webkit-transition:all .35s ease;-moz-transition:all .35s ease;-o-transition:all .35s ease;transition:all .35s ease}.sow-carousel-wrapper ul.sow-carousel-items li.sow-carousel-item .sow-carousel-thumbnail a span.overlay{display:block;width:100%;height:100%;background:#3279BB;opacity:0}.sow-carousel-wrapper ul.sow-carousel-items li.sow-carousel-item .sow-carousel-thumbnail a:hover span{opacity:.5}.sow-carousel-wrapper ul.sow-carousel-items li.sow-carousel-item .sow-carousel-default-thumbnail{display:block;background:#E8E8E8;background:-webkit-gradient(linear, left bottom, left top, color-stop(0, #E0E0E0), color-stop(1, #E8E8E8));background:-ms-linear-gradient(bottom, #E0E0E0, #E8E8E8);background:-moz-linear-gradient(center bottom, #E0E0E0 0, #E8E8E8 100%);background:-o-linear-gradient(#E8E8E8, #E0E0E0)}.sow-carousel-wrapper ul.sow-carousel-items li.sow-carousel-item h3{font-size:15px;text-align:center;font-weight:500;color:#474747;margin:10px 0 0 0}.sow-carousel-wrapper ul.sow-carousel-items li.sow-carousel-item h3 a{text-decoration:none;color:inherit}.sow-carousel-wrapper ul.sow-carousel-items li.sow-carousel-loading{display:block;float:left;background:url(images/carousel-loader.gif) #F6F6F6 center center no-repeat;margin:0}a.sow-carousel-previous{display:none}a.sow-carousel-next{display:none}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
widgets/post-carousel/post-carousel.php CHANGED
@@ -91,6 +91,12 @@ class SiteOrigin_Widget_PostCarousel_Widget extends SiteOrigin_Widget {
91
  'label' => __('Title', 'so-widgets-bundle'),
92
  ),
93
 
 
 
 
 
 
 
94
  'posts' => array(
95
  'type' => 'posts',
96
  'label' => __('Posts query', 'so-widgets-bundle'),
@@ -98,12 +104,30 @@ class SiteOrigin_Widget_PostCarousel_Widget extends SiteOrigin_Widget {
98
  );
99
  }
100
 
101
- function get_template_name($instance){
102
- return 'base';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
103
  }
104
 
105
- function get_style_name($instance){
106
- return false;
107
  }
108
  }
109
 
91
  'label' => __('Title', 'so-widgets-bundle'),
92
  ),
93
 
94
+ 'image_size' => array(
95
+ 'type' => 'image-size',
96
+ 'label' => __('Featured Image size', 'so-widgets-bundle'),
97
+ 'default' => 'sow-carousel-default',
98
+ ),
99
+
100
  'posts' => array(
101
  'type' => 'posts',
102
  'label' => __('Posts query', 'so-widgets-bundle'),
104
  );
105
  }
106
 
107
+ function get_less_variables( $instance ) {
108
+ $size = siteorigin_widgets_get_image_size( $instance['image_size'] );
109
+
110
+ $thumb_width = '';
111
+ $thumb_height = '';
112
+ $thumb_hover_width = '';
113
+ $thumb_hover_height = '';
114
+ if ( ! ( empty( $size['width'] ) || empty( $size['height'] ) ) ) {
115
+ $thumb_width = $size['width'] - $size['width'] * 0.1;
116
+ $thumb_height = $size['height'] - $size['height'] * 0.1;
117
+ $thumb_hover_width = $size['width'];
118
+ $thumb_hover_height = $size['height'];
119
+ }
120
+
121
+ return array(
122
+ 'thumbnail_width' => $thumb_width . 'px',
123
+ 'thumbnail_height'=> $thumb_height . 'px',
124
+ 'thumbnail_hover_width' => $thumb_hover_width . 'px',
125
+ 'thumbnail_hover_height'=> $thumb_hover_height . 'px',
126
+ );
127
  }
128
 
129
+ function get_template_name($instance){
130
+ return 'base';
131
  }
132
  }
133
 
widgets/post-carousel/styles/default.less ADDED
@@ -0,0 +1,39 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ @thumbnail_width: default;
2
+ @thumbnail_height: default;
3
+
4
+ @thumbnail_hover_width: default;
5
+ @thumbnail_hover_height: default;
6
+
7
+ .sow-carousel-wrapper {
8
+
9
+ ul.sow-carousel-items {
10
+
11
+ li.sow-carousel-item {
12
+ width: @thumbnail_width;
13
+
14
+ .sow-carousel-thumbnail a {
15
+ background-repeat: no-repeat;
16
+ background-size: @thumbnail_width @thumbnail_height;
17
+
18
+ &, span.overlay {
19
+ width: @thumbnail_width;
20
+ height: @thumbnail_height;
21
+ }
22
+
23
+ &:hover {
24
+ background-size: @thumbnail_hover_width @thumbnail_hover_height;
25
+ }
26
+ }
27
+
28
+ .sow-carousel-default-thumbnail {
29
+ width: @thumbnail_width;
30
+ height: @thumbnail_height;
31
+ }
32
+ }
33
+
34
+ li.sow-carousel-loading {
35
+ width: @thumbnail_width;
36
+ height: @thumbnail_height;
37
+ }
38
+ }
39
+ }
widgets/post-carousel/tpl/carousel-post-loop.php CHANGED
@@ -3,7 +3,7 @@ $posts = new WP_Query($query);
3
  while($posts->have_posts()) : $posts->the_post(); ?>
4
  <li class="sow-carousel-item<?php if( is_rtl() ) echo ' rtl' ?>">
5
  <div class="sow-carousel-thumbnail">
6
- <?php if( has_post_thumbnail() ) : $img = wp_get_attachment_image_src(get_post_thumbnail_id(), 'sow-carousel-default'); ?>
7
  <a href="<?php the_permalink() ?>" style="background-image: url(<?php echo sow_esc_url($img[0]) ?>)">
8
  <span class="overlay"></span>
9
  </a>
3
  while($posts->have_posts()) : $posts->the_post(); ?>
4
  <li class="sow-carousel-item<?php if( is_rtl() ) echo ' rtl' ?>">
5
  <div class="sow-carousel-thumbnail">
6
+ <?php if( has_post_thumbnail() ) : $img = wp_get_attachment_image_src(get_post_thumbnail_id(), $instance['image_size']); ?>
7
  <a href="<?php the_permalink() ?>" style="background-image: url(<?php echo sow_esc_url($img[0]) ?>)">
8
  <span class="overlay"></span>
9
  </a>
widgets/price-table/price-table.php CHANGED
@@ -175,8 +175,18 @@ class SiteOrigin_Widget_PriceTable_Widget extends SiteOrigin_Widget {
175
  }
176
 
177
  function column_image($column){
178
- $src = wp_get_attachment_image_src($column['image'], 'full');
 
 
 
179
  $img_attrs = array();
 
 
 
 
 
 
 
180
  if ( !empty( $column['image_title'] ) ) $img_attrs['title'] = $column['image_title'];
181
  if ( !empty( $column['image_alt'] ) ) $img_attrs['alt'] = $column['image_alt'];
182
  $attr_string = '';
@@ -190,6 +200,25 @@ class SiteOrigin_Widget_PriceTable_Widget extends SiteOrigin_Widget {
190
  return $this->get_style_name($instance);
191
  }
192
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
193
  function get_style_name($instance) {
194
  if(empty($instance['theme'])) return 'atom';
195
  return $instance['theme'];
175
  }
176
 
177
  function column_image($column){
178
+ $image = $column['image'];
179
+ $size = 'full';
180
+ $src = wp_get_attachment_image_src($image, $size);
181
+
182
  $img_attrs = array();
183
+ if ( function_exists( 'wp_get_attachment_image_srcset' ) ) {
184
+ $img_attrs['srcset'] = wp_get_attachment_image_srcset( $image, $size );
185
+ }
186
+ if ( function_exists( 'wp_get_attachment_image_sizes' ) ) {
187
+ $img_attrs['sizes'] = wp_get_attachment_image_sizes( $image, $size );
188
+ }
189
+
190
  if ( !empty( $column['image_title'] ) ) $img_attrs['title'] = $column['image_title'];
191
  if ( !empty( $column['image_alt'] ) ) $img_attrs['alt'] = $column['image_alt'];
192
  $attr_string = '';
200
  return $this->get_style_name($instance);
201
  }
202
 
203
+ function get_template_variables( $instance, $args ) {
204
+ $columns = array();
205
+ foreach( $instance['columns'] as $column ) {
206
+ foreach( $column['features'] as &$feature ) {
207
+ $feature['text'] = do_shortcode( $feature['text'] );
208
+ }
209
+ $columns[] = $column;
210
+ }
211
+
212
+ return array(
213
+ 'title' => $instance['title'],
214
+ 'columns' => $columns,
215
+ 'before_title' => $args['before_title'],
216
+ 'after_title' => $args['after_title'],
217
+ 'button_new_window' => $instance['button_new_window'],
218
+ );
219
+ }
220
+
221
+
222
  function get_style_name($instance) {
223
  if(empty($instance['theme'])) return 'atom';
224
  return $instance['theme'];
widgets/price-table/tpl/atom.php CHANGED
@@ -1,9 +1,19 @@
1
- <?php if( !empty( $instance['title'] ) ) echo $args['before_title'] . esc_html($instance['title']) . $args['after_title'] ?>
 
 
 
 
 
 
 
 
 
 
2
 
3
  <div class="ow-pt-columns-atom">
4
 
5
- <?php foreach($instance['columns'] as $i => $column) : ?>
6
- <div class="ow-pt-column <?php echo $this->get_column_classes($column, $i, $instance['columns']) ?>" style="width: <?php echo round(100/count($instance['columns']), 3) ?>%">
7
  <div class="ow-pt-title">
8
  <?php echo esc_html( $column['title'] ) ?>
9
  <?php if( !empty( $column['subtitle'] ) ) : ?><div class="ow-pt-subtitle"><?php echo esc_html( $column['subtitle'] ) ?></div><?php endif; ?>
@@ -25,7 +35,7 @@
25
  <div class="ow-pt-feature ow-pt-feature-<?php echo $i % 2 == 0 ? 'even' : 'odd' ?>">
26
 
27
  <?php
28
- if( !empty($feature['icon_new']) ) { ?>
29
  <div class="sow-feature-icon">
30
  <?php
31
  $icon_styles = array();
@@ -33,12 +43,10 @@
33
  echo siteorigin_widget_get_icon($feature['icon_new'], $icon_styles);
34
  ?>
35
  </div>
36
- <?php
37
- }
38
- ?>
39
  <div class="sow-feature-text">
40
- <p <?php if(!empty( $feature['hover'] ) ) : ?>data-tooltip-text="<?php echo esc_attr($feature['hover']) ?>"<?php endif; ?>>
41
- <?php echo wp_kses_post( do_shortcode( $feature['text'] ) ) ?>
42
  </p>
43
  </div>
44
  </div>
@@ -47,7 +55,7 @@
47
 
48
  <?php if( !empty($column['button']) ) : ?>
49
  <div class="ow-pt-button">
50
- <a href='<?php echo sow_esc_url($column['url']) ?>' class="ow-pt-link" <?php if( !empty( $instance['button_new_window'] ) ) echo 'target="_blank"' ?>><?php echo esc_html($column['button']) ?></a>
51
  </div>
52
  <?php endif; ?>
53
  </div>
@@ -57,7 +65,7 @@
57
  <?php
58
  global $siteorigin_price_table_icons;
59
  if( empty($siteorigin_price_table_icons) ) $siteorigin_price_table_icons = array();
60
- foreach($instance['columns'] as $i => $column){
61
  foreach($column['features'] as $feature) {
62
  if(!empty($feature['icon']) && empty($siteorigin_price_table_icons[$feature['icon']])) {
63
  $siteorigin_price_table_icons[$feature['icon']] = true;
1
+ <?php
2
+ /**
3
+ * @var $title string
4
+ * @var $columns array
5
+ * @var $before_title string
6
+ * @var $after_title string
7
+ * @var $button_new_window boolean
8
+ */
9
+ ?>
10
+
11
+ <?php if( !empty( $title ) ) echo $before_title . esc_html( $title ) . $after_title; ?>
12
 
13
  <div class="ow-pt-columns-atom">
14
 
15
+ <?php foreach($columns as $i => $column) : ?>
16
+ <div class="ow-pt-column <?php echo $this->get_column_classes($column, $i, $columns) ?>" style="width: <?php echo round(100/count($columns), 3) ?>%">
17
  <div class="ow-pt-title">
18
  <?php echo esc_html( $column['title'] ) ?>
19
  <?php if( !empty( $column['subtitle'] ) ) : ?><div class="ow-pt-subtitle"><?php echo esc_html( $column['subtitle'] ) ?></div><?php endif; ?>
35
  <div class="ow-pt-feature ow-pt-feature-<?php echo $i % 2 == 0 ? 'even' : 'odd' ?>">
36
 
37
  <?php
38
+ if( !empty($feature['icon_new']) ) : ?>
39
  <div class="sow-feature-icon">
40
  <?php
41
  $icon_styles = array();
43
  echo siteorigin_widget_get_icon($feature['icon_new'], $icon_styles);
44
  ?>
45
  </div>
46
+ <?php endif; ?>
 
 
47
  <div class="sow-feature-text">
48
+ <p <?php if(!empty( $feature['hover'] ) ) : ?>data-tooltip-text="<?php echo esc_attr( $feature['hover'] ) ?>"<?php endif; ?>>
49
+ <?php echo wp_kses_post( $feature['text'] ) ?>
50
  </p>
51
  </div>
52
  </div>
55
 
56
  <?php if( !empty($column['button']) ) : ?>
57
  <div class="ow-pt-button">
58
+ <a href='<?php echo sow_esc_url($column['url']) ?>' class="ow-pt-link" <?php if( !empty( $button_new_window ) ) echo 'target="_blank"' ?>><?php echo esc_html($column['button']) ?></a>
59
  </div>
60
  <?php endif; ?>
61
  </div>
65
  <?php
66
  global $siteorigin_price_table_icons;
67
  if( empty($siteorigin_price_table_icons) ) $siteorigin_price_table_icons = array();
68
+ foreach($columns as $i => $column){
69
  foreach($column['features'] as $feature) {
70
  if(!empty($feature['icon']) && empty($siteorigin_price_table_icons[$feature['icon']])) {
71
  $siteorigin_price_table_icons[$feature['icon']] = true;
widgets/slider/slider.php CHANGED
@@ -191,21 +191,31 @@ class SiteOrigin_Widget_Slider_Widget extends SiteOrigin_Widget_Base_Slider {
191
  *
192
  * @param $instance
193
  *
194
- * @return mixed|void
195
  */
196
  function modify_instance( $instance ){
197
  if( empty($instance['controls']) ) {
198
- if( !empty($instance['speed']) ) $instance['controls']['speed'] = $instance['speed'];
199
- if( !empty($instance['timeout']) ) $instance['controls']['timeout'] = $instance['timeout'];
200
- if( !empty($instance['nav_color_hex']) ) $instance['controls']['nav_color_hex'] = $instance['nav_color_hex'];
201
- if( !empty($instance['nav_style']) ) $instance['controls']['nav_style'] = $instance['nav_style'];
202
- if( !empty($instance['nav_size']) ) $instance['controls']['nav_size'] = $instance['nav_size'];
203
-
204
- unset($instance['speed']);
205
- unset($instance['timeout']);
206
- unset($instance['nav_color_hex']);
207
- unset($instance['nav_style']);
208
- unset($instance['nav_size']);
 
 
 
 
 
 
 
 
 
 
209
  }
210
 
211
  return $instance;
191
  *
192
  * @param $instance
193
  *
194
+ * @return mixed
195
  */
196
  function modify_instance( $instance ){
197
  if( empty($instance['controls']) ) {
198
+ if ( ! empty( $instance['speed'] ) ) {
199
+ $instance['controls']['speed'] = $instance['speed'];
200
+ unset($instance['speed']);
201
+ }
202
+ if ( ! empty( $instance['timeout'] ) ) {
203
+ $instance['controls']['timeout'] = $instance['timeout'];
204
+ unset($instance['timeout']);
205
+ }
206
+ if ( ! empty( $instance['nav_color_hex'] ) ) {
207
+ $instance['controls']['nav_color_hex'] = $instance['nav_color_hex'];
208
+ unset($instance['nav_color_hex']);
209
+ }
210
+ if ( ! empty( $instance['nav_style'] ) ) {
211
+ $instance['controls']['nav_style'] = $instance['nav_style'];
212
+ unset($instance['nav_style']);
213
+ }
214
+ if ( ! empty( $instance['nav_size'] ) ) {
215
+ $instance['controls']['nav_size'] = $instance['nav_size'];
216
+ unset($instance['nav_size']);
217
+ }
218
+
219
  }
220
 
221
  return $instance;
widgets/testimonial/css/style.css CHANGED
@@ -1,56 +1 @@
1
- .sow-testimonials {
2
- margin: -10px;
3
- zoom: 1;
4
- }
5
- .sow-testimonials:before {
6
- content: '';
7
- display: block;
8
- }
9
- .sow-testimonials:after {
10
- content: '';
11
- display: table;
12
- clear: both;
13
- }
14
- .sow-testimonials * {
15
- box-sizing: border-box;
16
- }
17
- .sow-testimonials .sow-testimonial-wrapper {
18
- float: left;
19
- padding: 10px;
20
- }
21
- .sow-testimonials .sow-testimonial-user {
22
- position: relative;
23
- }
24
- .sow-testimonials .sow-testimonial-user .sow-round-image-frame {
25
- background-size: cover;
26
- display: inline-block;
27
- }
28
- .sow-testimonials .sow-testimonial-user .sow-image-wrapper {
29
- display: block;
30
- }
31
- .sow-testimonials .sow-testimonial-user .sow-text strong {
32
- display: block;
33
- }
34
- .sow-testimonials .sow-testimonial-user .sow-caret {
35
- position: absolute;
36
- height: 24px;
37
- width: 14px;
38
- top: 20px;
39
- right: -3px;
40
- fill: #f0f0f0;
41
- }
42
- .sow-testimonials .sow-testimonial-text > *:first-child {
43
- margin-top: 0;
44
- }
45
- .sow-testimonials .sow-testimonial-text > *:last-child {
46
- margin-bottom: 0;
47
- }
48
- .sow-testimonials .sow-user-left .sow-testimonial-user {
49
- text-align: left;
50
- }
51
- .sow-testimonials .sow-user-right .sow-testimonial-user {
52
- text-align: right;
53
- }
54
- .sow-testimonials .sow-user-middle .sow-testimonial-user {
55
- text-align: center;
56
- }
1
+ .sow-testimonials{margin:-10px;zoom:1}.sow-testimonials:before{content:'';display:block}.sow-testimonials:after{content:'';display:table;clear:both}.sow-testimonials *{box-sizing:border-box}.sow-testimonials .sow-testimonial-wrapper{float:left;padding:10px}.sow-testimonials .sow-testimonial-user{position:relative}.sow-testimonials .sow-testimonial-user .sow-round-image-frame{background-size:cover;display:inline-block}.sow-testimonials .sow-testimonial-user .sow-image-wrapper{display:block}.sow-testimonials .sow-testimonial-user .sow-text strong{display:block}.sow-testimonials .sow-testimonial-user .sow-caret{position:absolute;height:24px;width:14px;top:20px;right:-3px;fill:#f0f0f0}.sow-testimonials .sow-testimonial-text>*:first-child{margin-top:0}.sow-testimonials .sow-testimonial-text>*:last-child{margin-bottom:0}.sow-testimonials .sow-user-left .sow-testimonial-user{text-align:left}.sow-testimonials .sow-user-right .sow-testimonial-user{text-align:right}.sow-testimonials .sow-user-middle .sow-testimonial-user{text-align:center}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
widgets/testimonial/styles/default.less CHANGED
@@ -1,6 +1,5 @@
1
  @import "../../../base/less/mixins";
2
 
3
- @image_size: 75px;
4
  @testimonial_padding: 10px;
5
 
6
  @testimonial_background: transparent;
@@ -11,8 +10,15 @@
11
  // Testimonial sizes
12
  @testimonial_size: 33.333%;
13
  @tablet_testimonial_size: 50%;
14
- @tablet_width: 800px;
15
  @mobile_testimonial_size: 100%;
 
 
 
 
 
 
 
 
16
  @mobile_width: 480px;
17
 
18
  .sow-testimonials {
@@ -42,6 +48,18 @@
42
 
43
  .sow-round-image-frame {
44
  border-radius: @image_size;
 
 
 
 
 
 
 
 
 
 
 
 
45
  }
46
 
47
  // All the specific layouts
@@ -62,6 +80,15 @@
62
  margin: 0 auto;
63
  max-width: 100%;
64
  height: auto;
 
 
 
 
 
 
 
 
 
65
  }
66
  }
67
 
@@ -122,4 +149,4 @@
122
 
123
  }
124
 
125
- }
1
  @import "../../../base/less/mixins";
2
 
 
3
  @testimonial_padding: 10px;
4
 
5
  @testimonial_background: transparent;
10
  // Testimonial sizes
11
  @testimonial_size: 33.333%;
12
  @tablet_testimonial_size: 50%;
 
13
  @mobile_testimonial_size: 100%;
14
+
15
+ // Image Sizes
16
+ @image_size: 75px;
17
+ @tablet_image_size: default;
18
+ @mobile_image_size: default;
19
+
20
+ // Responsive breakpoints
21
+ @tablet_width: 800px;
22
  @mobile_width: 480px;
23
 
24
  .sow-testimonials {
48
 
49
  .sow-round-image-frame {
50
  border-radius: @image_size;
51
+ width: @image_size;
52
+ height: @image_size;
53
+
54
+ @media screen and (max-width: @tablet_width) {
55
+ width: @tablet_image_size;
56
+ height: @tablet_image_size;
57
+ }
58
+
59
+ @media screen and (max-width: @mobile_width) {
60
+ width: @mobile_image_size;
61
+ height: @mobile_image_size;
62
+ }
63
  }
64
 
65
  // All the specific layouts
80
  margin: 0 auto;
81
  max-width: 100%;
82
  height: auto;
83
+
84
+ @media screen and (max-width: @tablet_width) {
85
+ width: @tablet_image_size;
86
+ }
87
+
88
+ @media screen and (max-width: @mobile_width) {
89
+ width: @mobile_image_size;
90
+ }
91
+
92
  }
93
  }
94
 
149
 
150
  }
151
 
152
+ }
widgets/testimonial/testimonial.php CHANGED
@@ -125,6 +125,14 @@ class SiteOrigin_Widgets_Testimonials_Widget extends SiteOrigin_Widget {
125
  'integer' => true,
126
  'default' => 2
127
  ),
 
 
 
 
 
 
 
 
128
  'width' => array(
129
  'type' => 'text',
130
  'label' => __('Resolution', 'so-widgets-bundle'),
@@ -146,6 +154,14 @@ class SiteOrigin_Widgets_Testimonials_Widget extends SiteOrigin_Widget {
146
  'integer' => true,
147
  'default' => 1
148
  ),
 
 
 
 
 
 
 
 
149
  'width' => array(
150
  'type' => 'text',
151
  'label' => __('Resolution', 'so-widgets-bundle'),
@@ -299,8 +315,10 @@ class SiteOrigin_Widgets_Testimonials_Widget extends SiteOrigin_Widget {
299
 
300
  // All the responsive sizes
301
  'tablet_testimonial_size' => round(100/$instance['settings']['responsive']['tablet']['per_line'], 4) . '%',
 
302
  'tablet_width' => intval($instance['settings']['responsive']['tablet']['width']) . 'px',
303
  'mobile_testimonial_size' => round(100/$instance['settings']['responsive']['mobile']['per_line'], 4) . '%',
 
304
  'mobile_width' => intval($instance['settings']['responsive']['mobile']['width']) . 'px',
305
  );
306
  }
@@ -322,7 +340,7 @@ class SiteOrigin_Widgets_Testimonials_Widget extends SiteOrigin_Widget {
322
  }
323
  else {
324
  $src = wp_get_attachment_image_src( $image_id, array( $design['image']['image_size'], $design['image']['image_size'] ) );
325
- return '<div class="sow-round-image-frame" style="background-image: url(' . esc_url( $src[0] ) . '); width:' . intval($design['image']['image_size']) . 'px; height:' . intval($design['image']['image_size']) . 'px"></div>';
326
  }
327
  }
328
  }
125
  'integer' => true,
126
  'default' => 2
127
  ),
128
+ 'image_size' => array(
129
+ 'type' => 'slider',
130
+ 'label' => __( 'Image size', 'so-widgets-bundle' ),
131
+ 'integer' => true,
132
+ 'default' => 50,
133
+ 'max' => 150,
134
+ 'min' => 20,
135
+ ),
136
  'width' => array(
137
  'type' => 'text',
138
  'label' => __('Resolution', 'so-widgets-bundle'),
154
  'integer' => true,
155
  'default' => 1
156
  ),
157
+ 'image_size' => array(
158
+ 'type' => 'slider',
159
+ 'label' => __( 'Image size', 'so-widgets-bundle' ),
160
+ 'integer' => true,
161
+ 'default' => 50,
162
+ 'max' => 150,
163
+ 'min' => 20,
164
+ ),
165
  'width' => array(
166
  'type' => 'text',
167
  'label' => __('Resolution', 'so-widgets-bundle'),
315
 
316
  // All the responsive sizes
317
  'tablet_testimonial_size' => round(100/$instance['settings']['responsive']['tablet']['per_line'], 4) . '%',
318
+ 'tablet_image_size' => intval( $instance['settings']['responsive']['tablet']['image_size'] ) . 'px',
319
  'tablet_width' => intval($instance['settings']['responsive']['tablet']['width']) . 'px',
320
  'mobile_testimonial_size' => round(100/$instance['settings']['responsive']['mobile']['per_line'], 4) . '%',
321
+ 'mobile_image_size' => intval( $instance['settings']['responsive']['mobile']['image_size'] ) . 'px',
322
  'mobile_width' => intval($instance['settings']['responsive']['mobile']['width']) . 'px',
323
  );
324
  }
340
  }
341
  else {
342
  $src = wp_get_attachment_image_src( $image_id, array( $design['image']['image_size'], $design['image']['image_size'] ) );
343
+ return '<div class="sow-round-image-frame" style="background-image: url(' . esc_url( $src[0] ) . ');"></div>';
344
  }
345
  }
346
  }
widgets/video/css/html-player-responsive.css CHANGED
@@ -1,5 +1 @@
1
- /*MediaElementJS responsive sizing issue with HTML player is fixed by adding the below style.*/
2
- iframe.me-plugin {
3
- width: 100%;
4
- height: 100%;
5
- }
1
+ iframe.me-plugin{width:100%;height:100%}
 
 
 
 
widgets/video/css/skin.css CHANGED
@@ -1,154 +1 @@
1
- .mejs-overlay-button {
2
- display: none;
3
- }
4
- .mejs-skin_one .mejs-overlay-button {
5
- display: none;
6
- }
7
- .mejs-skin_one .mejs-button,
8
- .mejs-skin_one .mejs-time {
9
- position: absolute;
10
- background: #ddd;
11
- }
12
- .mejs-skin_one .mejs-controls {
13
- background: #eee;
14
- height: 65px;
15
- }
16
- .mejs-skin_one .mejs-controls .mejs-time-rail .mejs-time-total {
17
- background-color: none;
18
- background: url('controls-skin.png') repeat-x 0 -52px;
19
- height: 6px;
20
- }
21
- .mejs-skin_one .mejs-controls .mejs-time-rail .mejs-time-buffering {
22
- height: 6px;
23
- }
24
- .mejs-skin_one .mejs-controls .mejs-time-rail .mejs-time-loaded {
25
- background-color: none;
26
- background: url('controls-skin.png') repeat-x 0 -52px;
27
- width: 0;
28
- height: 6px;
29
- }
30
- .mejs-skin_one .mejs-controls .mejs-time-rail .mejs-time-current {
31
- width: 0;
32
- height: 6px;
33
- background-color: none;
34
- background: url('controls-skin.png') repeat-x 0 -59px;
35
- }
36
- .mejs-skin_one .mejs-controls .mejs-time-rail .mejs-time-handle {
37
- display: block;
38
- margin: 0;
39
- width: 14px;
40
- height: 21px;
41
- top: -7px;
42
- border: 0;
43
- background: url('controls-skin.png') no-repeat 0 0;
44
- }
45
- .mejs-skin_one .mejs-controls .mejs-time-rail .mejs-time-float {
46
- display: none;
47
- }
48
- .mejs-skin_one .mejs-controls .mejs-playpause-button {
49
- top: 29px;
50
- left: 9px;
51
- width: 49px;
52
- height: 28px;
53
- }
54
- .mejs-skin_one .mejs-controls .mejs-playpause-button button {
55
- width: 49px;
56
- height: 28px;
57
- background: url('controls-skin.png') no-repeat -50px -23px;
58
- margin: 0;
59
- padding: 0;
60
- }
61
- .mejs-skin_one .mejs-controls .mejs-pause button {
62
- background-position: 0 -23px;
63
- }
64
- .mejs-skin_one .mejs-controls .mejs-fullscreen-button {
65
- top: 34px;
66
- right: 9px;
67
- width: 17px;
68
- height: 15px;
69
- background: none;
70
- }
71
- .mejs-skin_one .mejs-controls .mejs-fullscreen-button button {
72
- width: 19px;
73
- height: 17px;
74
- background: transparent url('controls-skin.png') no-repeat 0 -66px;
75
- margin: 0;
76
- padding: 0;
77
- }
78
- .mejs-skin_one .mejs-controls .mejs-unfullscreen button {
79
- background: transparent url('controls-skin.png') no-repeat -21px -66px;
80
- margin: 0;
81
- padding: 0;
82
- }
83
- .mejs-skin_one .mejs-controls .mejs-volume-button {
84
- top: 30px;
85
- right: 35px;
86
- width: 24px;
87
- height: 22px;
88
- }
89
- .mejs-skin_one .mejs-controls .mejs-mute button {
90
- background: url('controls-skin.png') no-repeat -15px 0;
91
- width: 24px;
92
- height: 22px;
93
- margin: 0;
94
- padding: 0;
95
- }
96
- .mejs-skin_one .mejs-controls .mejs-unmute button {
97
- background: url('controls-skin.png') no-repeat -40px 0;
98
- width: 24px;
99
- height: 22px;
100
- margin: 0;
101
- padding: 0;
102
- }
103
- .mejs-skin_one .mejs-controls .mejs-volume-button .mejs-volume-slider {
104
- background: #fff;
105
- border: solid 1px #aaa;
106
- border-width: 1px 1px 0 1px;
107
- width: 22px;
108
- height: 65px;
109
- top: -65px;
110
- }
111
- .mejs-skin_one .mejs-controls .mejs-volume-button .mejs-volume-total {
112
- background: url('controls-skin.png') repeat-y -41px -66px;
113
- left: 8px;
114
- width: 6px;
115
- height: 50px;
116
- }
117
- .mejs-skin_one .mejs-controls .mejs-volume-button .mejs-volume-current {
118
- left: 8px;
119
- width: 6px;
120
- background: url('controls-skin.png') repeat-y -48px -66px;
121
- height: 50px;
122
- }
123
- .mejs-skin_one .mejs-controls .mejs-volume-button .mejs-volume-handle {
124
- display: none;
125
- }
126
- .mejs-skin_one .mejs-controls .mejs-time span {
127
- color: #333;
128
- }
129
- .mejs-skin_one .mejs-controls .mejs-currenttime-container {
130
- position: absolute;
131
- top: 32px;
132
- right: 100px;
133
- border: solid 1px #999;
134
- background: #fff;
135
- padding-top: 2px;
136
- border-radius: 3px;
137
- color: #333;
138
- }
139
- .mejs-skin_one .mejs-controls .mejs-duration-container {
140
- position: absolute;
141
- top: 32px;
142
- right: 65px;
143
- border: solid 1px #999;
144
- background: #fff;
145
- padding-top: 2px;
146
- border-radius: 3px;
147
- color: #333;
148
- }
149
- .mejs-skin_one .mejs-controls .mejs-time button {
150
- color: #333;
151
- }
152
- .mejs-skin_one .mejs-controls .mejs-captions-button {
153
- display: none;
154
- }
1
+ .mejs-overlay-button{display:none}.mejs-skin_one .mejs-overlay-button{display:none}.mejs-skin_one .mejs-button,.mejs-skin_one .mejs-time{position:absolute;background:#ddd}.mejs-skin_one .mejs-controls{background:#eee;height:65px}.mejs-skin_one .mejs-controls .mejs-time-rail .mejs-time-total{background-color:none;background:url('controls-skin.png') repeat-x 0 -52px;height:6px}.mejs-skin_one .mejs-controls .mejs-time-rail .mejs-time-buffering{height:6px}.mejs-skin_one .mejs-controls .mejs-time-rail .mejs-time-loaded{background-color:none;background:url('controls-skin.png') repeat-x 0 -52px;width:0;height:6px}.mejs-skin_one .mejs-controls .mejs-time-rail .mejs-time-current{width:0;height:6px;background-color:none;background:url('controls-skin.png') repeat-x 0 -59px}.mejs-skin_one .mejs-controls .mejs-time-rail .mejs-time-handle{display:block;margin:0;width:14px;height:21px;top:-7px;border:0;background:url('controls-skin.png') no-repeat 0 0}.mejs-skin_one .mejs-controls .mejs-time-rail .mejs-time-float{display:none}.mejs-skin_one .mejs-controls .mejs-playpause-button{top:29px;left:9px;width:49px;height:28px}.mejs-skin_one .mejs-controls .mejs-playpause-button button{width:49px;height:28px;background:url('controls-skin.png') no-repeat -50px -23px;margin:0;padding:0}.mejs-skin_one .mejs-controls .mejs-pause button{background-position:0 -23px}.mejs-skin_one .mejs-controls .mejs-fullscreen-button{top:34px;right:9px;width:17px;height:15px;background:none}.mejs-skin_one .mejs-controls .mejs-fullscreen-button button{width:19px;height:17px;background:transparent url('controls-skin.png') no-repeat 0 -66px;margin:0;padding:0}.mejs-skin_one .mejs-controls .mejs-unfullscreen button{background:transparent url('controls-skin.png') no-repeat -21px -66px;margin:0;padding:0}.mejs-skin_one .mejs-controls .mejs-volume-button{top:30px;right:35px;width:24px;height:22px}.mejs-skin_one .mejs-controls .mejs-mute button{background:url('controls-skin.png') no-repeat -15px 0;width:24px;height:22px;margin:0;padding:0}.mejs-skin_one .mejs-controls .mejs-unmute button{background:url('controls-skin.png') no-repeat -40px 0;width:24px;height:22px;margin:0;padding:0}.mejs-skin_one .mejs-controls .mejs-volume-button .mejs-volume-slider{background:#fff;border:solid 1px #aaa;border-width:1px 1px 0 1px;width:22px;height:65px;top:-65px}.mejs-skin_one .mejs-controls .mejs-volume-button .mejs-volume-total{background:url('controls-skin.png') repeat-y -41px -66px;left:8px;width:6px;height:50px}.mejs-skin_one .mejs-controls .mejs-volume-button .mejs-volume-current{left:8px;width:6px;background:url('controls-skin.png') repeat-y -48px -66px;height:50px}.mejs-skin_one .mejs-controls .mejs-volume-button .mejs-volume-handle{display:none}.mejs-skin_one .mejs-controls .mejs-time span{color:#333}.mejs-skin_one .mejs-controls .mejs-currenttime-container{position:absolute;top:32px;right:100px;border:solid 1px #999;background:#fff;padding-top:2px;border-radius:3px;color:#333}.mejs-skin_one .mejs-controls .mejs-duration-container{position:absolute;top:32px;right:65px;border:solid 1px #999;background:#fff;padding-top:2px;border-radius:3px;color:#333}.mejs-skin_one .mejs-controls .mejs-time button{color:#333}.mejs-skin_one .mejs-controls .mejs-captions-button{display:none}