SiteOrigin Widgets Bundle - Version 1.24.0

Version Description

  • 08 October 2021 =
  • Anything Carousel: Set wrapper to full-width to avoid a potential sizing issue.
  • Anything Carousel: Prevented the Widget Styles - Link Color setting from overriding Arrows color.
  • Anything Carousel: Prevented active navigation dot from displaying a cursor on hover.
  • Anything Carousel: Ensured navigation dot activation correct when viewing the last item.
  • Button: Prevented potential error by ensuring $instance is not empty before modifying it.
  • Google Maps: Changed map setup to allow for greater flexibility.
  • Post and Anything Carousel: Added a Responsive section Show navigation setting.
  • Post and Anything Carousel: Migrated design settings to a Design section.
  • Slider Widgets: Moved the Loop slide background videos to within the frame Background video section.
  • Social Media Buttons: Removed the Google+ network.
  • Video Player Widget: Enabled oEmbed for external videos.
  • Slider Background Videos: Mute when autoplay is enabled. Required for video autoplay in Chrome.
  • WPML: Added a translation compatibility XML file. Requires WPML 4.5.
  • Developer: Added a new event for the carousel carousel_setup.
Download this release

Release Info

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

Code changes from version 1.23.1 to 1.24.0

base/inc/fields/js/presets-field.js CHANGED
@@ -63,12 +63,15 @@
63
  }
64
  } );
65
 
66
- // If no value is selected, and there's a default preset, load it.
67
- if ( $presetSelect.val() == 'default' && $presetSelect.data( 'default-preset' ) != '' ) {
68
  $( this ).find( 'select[class="siteorigin-widget-input"] option[value="default"]' ).remove();
69
- addingDefault = true;
70
- $presetSelect.val( $presetSelect.data( 'default-preset' ) );
71
- $presetSelect.trigger( 'change' );
 
 
 
72
  }
73
 
74
  $presetSelect.data( 'initialized', true );
63
  }
64
  } );
65
 
66
+ if ( $presetSelect.data( 'default-preset' ) != '' ) {
67
+ // There's a default preset set, remove the empty default.
68
  $( this ).find( 'select[class="siteorigin-widget-input"] option[value="default"]' ).remove();
69
+ // If no value is selected, and there's a default preset, load it.
70
+ if ( $presetSelect.val() == 'default' ) {
71
+ addingDefault = true;
72
+ $presetSelect.val( $presetSelect.data( 'default-preset' ) );
73
+ $presetSelect.trigger( 'change' );
74
+ }
75
  }
76
 
77
  $presetSelect.data( 'initialized', true );
base/inc/fields/js/presets-field.min.js CHANGED
@@ -1 +1 @@
1
- !function(e){e(document).on("sowsetupformfield",".siteorigin-widget-field-type-presets",(function(i){var t=e(this).find('select[class="siteorigin-widget-input"]');if(!t.data("initialized")){var a=t.find("+ .sowb-presets-field-undo");a.hide();var s=!1,r=t.data("presets");t.on("change",(function(){var e=t.val();if(e&&r.hasOwnProperty(e)){var i=r[e].values,o=t.closest(".siteorigin-widget-form-main");if(!s){var n=t.data("previousValues");if(!n){var l=JSON.parse(JSON.stringify(i)),u=sowbForms.getWidgetFormValues(o),d=0,f=function(e,i){if(++d>10)return i;for(var t in i)if(e.hasOwnProperty(t)){var a=e[t],s=i[t];null!==a&&null!==s&&"object"==typeof a?f(a,s):i[t]=a}return i};n=f(u,l),t.data("previousValues",n)}a.not(":visible")&&(a.show(),a.on("click",(function(e){e.preventDefault(),a.hide(),sowbForms.setWidgetFormValues(o,n,!0),t.removeData("previousValues"),t.val("")})))}sowbForms.setWidgetFormValues(o,i,!0)}})),"default"==t.val()&&""!=t.data("default-preset")&&(e(this).find('select[class="siteorigin-widget-input"] option[value="default"]').remove(),s=!0,t.val(t.data("default-preset")),t.trigger("change")),t.data("initialized",!0)}}))}(jQuery);
1
+ !function(e){e(document).on("sowsetupformfield",".siteorigin-widget-field-type-presets",(function(i){var t=e(this).find('select[class="siteorigin-widget-input"]');if(!t.data("initialized")){var a=t.find("+ .sowb-presets-field-undo");a.hide();var s=!1,r=t.data("presets");t.on("change",(function(){var e=t.val();if(e&&r.hasOwnProperty(e)){var i=r[e].values,o=t.closest(".siteorigin-widget-form-main");if(!s){var n=t.data("previousValues");if(!n){var l=JSON.parse(JSON.stringify(i)),u=sowbForms.getWidgetFormValues(o),d=0,f=function(e,i){if(++d>10)return i;for(var t in i)if(e.hasOwnProperty(t)){var a=e[t],s=i[t];null!==a&&null!==s&&"object"==typeof a?f(a,s):i[t]=a}return i};n=f(u,l),t.data("previousValues",n)}a.not(":visible")&&(a.show(),a.on("click",(function(e){e.preventDefault(),a.hide(),sowbForms.setWidgetFormValues(o,n,!0),t.removeData("previousValues"),t.val("")})))}sowbForms.setWidgetFormValues(o,i,!0)}})),""!=t.data("default-preset")&&(e(this).find('select[class="siteorigin-widget-input"] option[value="default"]').remove(),"default"==t.val()&&(s=!0,t.val(t.data("default-preset")),t.trigger("change"))),t.data("initialized",!0)}}))}(jQuery);
base/inc/video.php CHANGED
@@ -75,7 +75,7 @@ class SiteOrigin_Video {
75
  'remove_related_videos'
76
  ), $html );
77
  }
78
-
79
  if ( ! empty( $html ) ) {
80
  set_transient( 'sow-vid-embed[' . $hash . ']', $html, 30 * 86400 );
81
  }
@@ -92,7 +92,17 @@ class SiteOrigin_Video {
92
  * @return mixed
93
  */
94
  function autoplay_callback( $match ) {
95
- return str_replace( $match[1], add_query_arg( 'autoplay', 1, $match[1] ), $match[0] );
 
 
 
 
 
 
 
 
 
 
96
  }
97
 
98
  /**
75
  'remove_related_videos'
76
  ), $html );
77
  }
78
+
79
  if ( ! empty( $html ) ) {
80
  set_transient( 'sow-vid-embed[' . $hash . ']', $html, 30 * 86400 );
81
  }
92
  * @return mixed
93
  */
94
  function autoplay_callback( $match ) {
95
+ return str_replace(
96
+ $match[1],
97
+ add_query_arg(
98
+ array(
99
+ 'autoplay' => 1,
100
+ 'mute' => 1,
101
+ ),
102
+ $match[1]
103
+ ),
104
+ $match[0]
105
+ );
106
  }
107
 
108
  /**
base/inc/widgets/base-carousel.class.php CHANGED
@@ -66,6 +66,12 @@ abstract class SiteOrigin_Widget_Base_Carousel extends SiteOrigin_Widget {
66
  'tablet_portrait' => 2,
67
  'mobile' => 1,
68
  ),
 
 
 
 
 
 
69
  'slides_to_scroll_text' => array(
70
  'label' => __( 'Slides to scroll', 'so-widgets-bundle' ),
71
  'description' => __( 'Set the number of slides to scroll per navigation click or swipe on %s', 'so-widgets-bundle' ),
@@ -97,21 +103,29 @@ abstract class SiteOrigin_Widget_Base_Carousel extends SiteOrigin_Widget {
97
  $section['fields'][ $sub_field_key ] = $this->add_section_group( $sub_field, $value_type );
98
  }
99
  } else {
100
- $section['fields']['slides_to_scroll'] = array(
 
 
 
 
 
 
 
 
101
  'type' => 'number',
102
  'label' => $carousel_settings['slides_to_scroll_text']['label'],
103
  'description' => sprintf(
104
  $carousel_settings['slides_to_scroll_text']['description'],
105
  strtolower( $field['label'] )
106
  ),
107
- $value_type => $field['value'],
108
  );
109
 
110
- if ( isset( $field['breakpoint'] ) ) {
111
- $section['fields']['breakpoint'] = array(
112
- 'type' => 'number',
113
- 'label' => __( 'Breakpoint', 'so-widgets-bundle' ),
114
- $value_type => $field['breakpoint'],
115
  );
116
  }
117
  }
@@ -129,7 +143,8 @@ abstract class SiteOrigin_Widget_Base_Carousel extends SiteOrigin_Widget {
129
  $fields = array(
130
  'desktop' => array(
131
  'label' => __( 'Desktop', 'so-widgets-bundle' ),
132
- 'value' => $carousel_settings['slides_to_scroll']['desktop'],
 
133
  ),
134
  'tablet' => array(
135
  'label' => __( 'Tablet', 'so-widgets-bundle' ),
@@ -137,19 +152,22 @@ abstract class SiteOrigin_Widget_Base_Carousel extends SiteOrigin_Widget {
137
  'landscape' => array(
138
  'label' => __( 'Landscape', 'so-widgets-bundle' ),
139
  'breakpoint' => $carousel_settings['breakpoints']['tablet_landscape'],
140
- 'value' => $carousel_settings['slides_to_scroll']['tablet_landscape'],
 
141
  ),
142
  'portrait' => array(
143
  'label' => __( 'Portrait', 'so-widgets-bundle' ),
144
  'breakpoint' => $carousel_settings['breakpoints']['tablet_portrait'],
145
- 'value' => $carousel_settings['slides_to_scroll']['tablet_portrait'],
 
146
  ),
147
  ),
148
  ),
149
  'mobile' => array(
150
  'label' => __( 'Mobile', 'so-widgets-bundle' ),
151
  'breakpoint' => $carousel_settings['breakpoints']['mobile'],
152
- 'value' => $carousel_settings['slides_to_scroll']['mobile'],
 
153
  ),
154
  );
155
 
@@ -192,7 +210,7 @@ abstract class SiteOrigin_Widget_Base_Carousel extends SiteOrigin_Widget {
192
  'label' => __( 'Autoplay', 'so-widgets-bundle' ),
193
  'state_emitter' => array(
194
  'callback' => 'conditional',
195
- 'args' => array(
196
  'autoplay[show]: val',
197
  'autoplay[hide]: ! val',
198
  ),
@@ -220,6 +238,56 @@ abstract class SiteOrigin_Widget_Base_Carousel extends SiteOrigin_Widget {
220
  );
221
  }
222
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
223
  function get_settings_form() {
224
  return array(
225
  'responsive' => $this->responsive_form_fields( 'global' ),
@@ -242,6 +310,22 @@ abstract class SiteOrigin_Widget_Base_Carousel extends SiteOrigin_Widget {
242
  return $encode ? json_encode( $variables ) : $variables;
243
  }
244
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
245
  function carousel_settings_template_variables( $settings, $encode = true ) {
246
  $variables = array(
247
  'loop' => isset( $settings['loop'] ) ? $settings['loop'] : true,
66
  'tablet_portrait' => 2,
67
  'mobile' => 1,
68
  ),
69
+ 'navigation' => array(
70
+ 'desktop' => true,
71
+ 'tablet_landscape' => true,
72
+ 'tablet_portrait' => true,
73
+ 'mobile' => true,
74
+ ),
75
  'slides_to_scroll_text' => array(
76
  'label' => __( 'Slides to scroll', 'so-widgets-bundle' ),
77
  'description' => __( 'Set the number of slides to scroll per navigation click or swipe on %s', 'so-widgets-bundle' ),
103
  $section['fields'][ $sub_field_key ] = $this->add_section_group( $sub_field, $value_type );
104
  }
105
  } else {
106
+ if ( isset( $field['breakpoint'] ) ) {
107
+ $section['fields']['breakpoint'] = array(
108
+ 'type' => 'number',
109
+ 'label' => __( 'Breakpoint', 'so-widgets-bundle' ),
110
+ $value_type => $field['breakpoint'],
111
+ );
112
+ }
113
+
114
+ $section['fields']['slides_to_scroll'] = array(
115
  'type' => 'number',
116
  'label' => $carousel_settings['slides_to_scroll_text']['label'],
117
  'description' => sprintf(
118
  $carousel_settings['slides_to_scroll_text']['description'],
119
  strtolower( $field['label'] )
120
  ),
121
+ $value_type => $field['slides_to_scroll'],
122
  );
123
 
124
+ if ( isset( $field['navigation'] ) ) {
125
+ $section['fields']['navigation'] = array(
126
+ 'type' => 'checkbox',
127
+ 'label' => __( 'Show navigation', 'so-widgets-bundle' ),
128
+ 'default' => $field['navigation'],
129
  );
130
  }
131
  }
143
  $fields = array(
144
  'desktop' => array(
145
  'label' => __( 'Desktop', 'so-widgets-bundle' ),
146
+ 'slides_to_scroll' => $carousel_settings['slides_to_scroll']['desktop'],
147
+ 'navigation' => $carousel_settings['navigation']['desktop'],
148
  ),
149
  'tablet' => array(
150
  'label' => __( 'Tablet', 'so-widgets-bundle' ),
152
  'landscape' => array(
153
  'label' => __( 'Landscape', 'so-widgets-bundle' ),
154
  'breakpoint' => $carousel_settings['breakpoints']['tablet_landscape'],
155
+ 'slides_to_scroll' => $carousel_settings['slides_to_scroll']['tablet_landscape'],
156
+ 'navigation' => $carousel_settings['navigation']['tablet_landscape'],
157
  ),
158
  'portrait' => array(
159
  'label' => __( 'Portrait', 'so-widgets-bundle' ),
160
  'breakpoint' => $carousel_settings['breakpoints']['tablet_portrait'],
161
+ 'slides_to_scroll' => $carousel_settings['slides_to_scroll']['tablet_portrait'],
162
+ 'navigation' => $carousel_settings['navigation']['tablet_portrait'],
163
  ),
164
  ),
165
  ),
166
  'mobile' => array(
167
  'label' => __( 'Mobile', 'so-widgets-bundle' ),
168
  'breakpoint' => $carousel_settings['breakpoints']['mobile'],
169
+ 'slides_to_scroll' => $carousel_settings['slides_to_scroll']['mobile'],
170
+ 'navigation' => $carousel_settings['navigation']['mobile'],
171
  ),
172
  );
173
 
210
  'label' => __( 'Autoplay', 'so-widgets-bundle' ),
211
  'state_emitter' => array(
212
  'callback' => 'conditional',
213
+ 'args' => array(
214
  'autoplay[show]: val',
215
  'autoplay[hide]: ! val',
216
  ),
238
  );
239
  }
240
 
241
+
242
+ function design_settings_form_fields( $settings = array() ) {
243
+ $fields = array(
244
+ 'type' => 'section',
245
+ 'label' => __( 'Design', 'so-widgets-bundle' ),
246
+ 'hide' => true,
247
+ 'fields' => array(
248
+ 'item_title' => array(
249
+ 'type' => 'section',
250
+ 'label' => __( 'Item title', 'so-widgets-bundle' ),
251
+ 'hide' => true,
252
+ 'fields' => array(
253
+ 'tag' => array(
254
+ 'type' => 'select',
255
+ 'label' => __( 'HTML Tag', 'so-widgets-bundle' ),
256
+ 'default' => 'h4',
257
+ 'options' => array(
258
+ 'h1' => __( 'H1', 'so-widgets-bundle' ),
259
+ 'h2' => __( 'H2', 'so-widgets-bundle' ),
260
+ 'h3' => __( 'H3', 'so-widgets-bundle' ),
261
+ 'h4' => __( 'H4', 'so-widgets-bundle' ),
262
+ 'h5' => __( 'H5', 'so-widgets-bundle' ),
263
+ 'h6' => __( 'H6', 'so-widgets-bundle' ),
264
+ 'p' => __( 'Paragraph', 'so-widgets-bundle' ),
265
+ ),
266
+ ),
267
+ 'font' => array(
268
+ 'type' => 'font',
269
+ 'label' => __( 'Font', 'so-widgets-bundle' ),
270
+ ),
271
+ 'size' => array(
272
+ 'type' => 'measurement',
273
+ 'label' => __( 'Font size', 'so-widgets-bundle' ),
274
+ ),
275
+ 'color' => array(
276
+ 'type' => 'color',
277
+ 'label' => __( 'Color', 'so-widgets-bundle' ),
278
+ ),
279
+ ),
280
+ ),
281
+ ),
282
+ );
283
+
284
+ if ( ! empty( $settings ) ) {
285
+ $fields = array_merge_recursive( $fields, array( 'fields' => $settings ) );
286
+ }
287
+
288
+ return $fields;
289
+ }
290
+
291
  function get_settings_form() {
292
  return array(
293
  'responsive' => $this->responsive_form_fields( 'global' ),
310
  return $encode ? json_encode( $variables ) : $variables;
311
  }
312
 
313
+ function responsive_less_variables( $less_vars, $instance ) {
314
+ $carousel_settings = $this->get_carousel_settings();
315
+ // Breakpoint
316
+ $less_vars['breakpoint_tablet_landscape'] = ( ! empty( $instance['responsive']['tablet_landscape']['breakpoint'] ) ? $instance['responsive']['tablet_landscape']['breakpoint'] : $carousel_settings['breakpoints']['tablet_landscape'] ) .'px';
317
+ $less_vars['breakpoint_tablet_portrait'] = ( ! empty( $instance['responsive']['tablet_portrait']['breakpoint'] ) ? $instance['responsive']['tablet_portrait']['breakpoint'] : $carousel_settings['breakpoints']['tablet_portrait'] ) .'px';
318
+ $less_vars['breakpoint_mobile'] = ( ! empty( $instance['responsive']['mobile']['breakpoint'] ) ? $instance['responsive']['mobile']['breakpoint'] : $carousel_settings['breakpoints']['mobile'] ) .'px';
319
+
320
+ // Navigation
321
+ $less_vars['navigation_desktop'] = isset( $instance['responsive']['desktop']['navigation'] ) ? ! empty( $instance['responsive']['desktop']['navigation'] ) : $carousel_settings['navigation']['desktop'];
322
+ $less_vars['navigation_tablet_landscape'] = isset( $instance['responsive']['tablet']['landscape']['navigation'] ) ? ! empty( $instance['responsive']['tablet']['landscape']['navigation'] ) : $carousel_settings['navigation']['tablet_landscape'];
323
+ $less_vars['navigation_tablet_portrait'] = isset( $instance['responsive']['tablet']['portrait']['navigation'] ) ? ! empty( $instance['responsive']['tablet']['portrait']['navigation'] ) : $carousel_settings['navigation']['tablet_portrait'];
324
+ $less_vars['navigation_mobile'] = isset( $instance['responsive']['mobile']['navigation'] ) ? ! empty( $instance['responsive']['mobile']['navigation'] ) : $carousel_settings['navigation']['mobile'];
325
+
326
+ return $less_vars;
327
+ }
328
+
329
  function carousel_settings_template_variables( $settings, $encode = true ) {
330
  $variables = array(
331
  'loop' => isset( $settings['loop'] ) ? $settings['loop'] : true,
base/inc/widgets/base-slider.class.php CHANGED
@@ -143,12 +143,6 @@ abstract class SiteOrigin_Widget_Base_Slider extends SiteOrigin_Widget {
143
  'label' => __( 'Show slide background videos on mobile', 'so-widgets-bundle' ),
144
  'description' => __( 'Allow slide background videos to appear on mobile devices that support autoplay.', 'so-widgets-bundle' ),
145
  ),
146
-
147
- 'loop_background_videos' => array(
148
- 'type' => 'checkbox',
149
- 'label' => __( 'Loop slide background videos', 'so-widgets-bundle' ),
150
- 'default' => false,
151
- ),
152
  );
153
  }
154
 
@@ -212,6 +206,60 @@ abstract class SiteOrigin_Widget_Base_Slider extends SiteOrigin_Widget {
212
  );
213
  }
214
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
215
  function render_template( $controls, $frames ){
216
  $this->render_template_part('before_slider', $controls, $frames);
217
  $this->render_template_part('before_slides', $controls, $frames);
@@ -344,6 +392,14 @@ abstract class SiteOrigin_Widget_Base_Slider extends SiteOrigin_Widget {
344
  $classes[] = 'sow-mobile-video_enabled';
345
  }
346
 
 
 
 
 
 
 
 
 
347
  $this->video_code( $background['videos'], $classes, $controls );
348
  }
349
 
143
  'label' => __( 'Show slide background videos on mobile', 'so-widgets-bundle' ),
144
  'description' => __( 'Allow slide background videos to appear on mobile devices that support autoplay.', 'so-widgets-bundle' ),
145
  ),
 
 
 
 
 
 
146
  );
147
  }
148
 
206
  );
207
  }
208
 
209
+ function widget_form( $form_options ) {
210
+ if ( isset( $form_options ) && isset( $form_options['frames'] ) ) {
211
+ $loop_setting = array(
212
+ 'type' => 'checkbox',
213
+ 'label' => __( 'Loop slide background videos', 'so-widgets-bundle' ),
214
+ 'default' => false,
215
+ );
216
+ if ( isset( $form_options['frames']['fields']['background_videos'] ) ) {
217
+ // Add setting to SiteOrigin Slider widget.
218
+ siteorigin_widgets_array_insert(
219
+ $form_options['frames']['fields'],
220
+ 'background_image',
221
+ array(
222
+ 'loop_background_videos' => $loop_setting,
223
+ )
224
+ );
225
+ } elseif ( isset( $form_options['frames']['fields']['background'] ) ) {
226
+ // Add setting to all other slider widgets.
227
+ $form_options['frames']['fields']['background']['fields']['loop_background_videos'] = $loop_setting;
228
+ }
229
+ }
230
+ return $form_options;
231
+ }
232
+
233
+ /**
234
+ * Migrate Slider settings.
235
+ *
236
+ * @param $instance
237
+ *
238
+ * @return mixed
239
+ */
240
+ function modify_instance( $instance ){
241
+ if ( empty( $instance ) ) {
242
+ return array();
243
+ }
244
+
245
+ // Migrate global slider loop_background_videos setting to frame specific setting.
246
+ if ( ! empty( $instance['controls']['loop_background_videos'] ) ) {
247
+ unset( $instance['controls']['loop_background_videos'] );
248
+ if ( ! empty( $instance['frames'] ) ) {
249
+ $is_slider_widget = $this->widget_class == 'SiteOrigin_Widget_Slider_Widget';
250
+ foreach ( $instance['frames'] as $k => $frame ) {
251
+ if ( $is_slider_widget ) {
252
+ $instance['frames'][ $k ]['loop_background_videos'] = 'on';
253
+ } else {
254
+ $instance['frames'][ $k ]['background']['loop_background_videos'] = 'on';
255
+ }
256
+ }
257
+ }
258
+ }
259
+
260
+ return $instance;
261
+ }
262
+
263
  function render_template( $controls, $frames ){
264
  $this->render_template_part('before_slider', $controls, $frames);
265
  $this->render_template_part('before_slides', $controls, $frames);
392
  $classes[] = 'sow-mobile-video_enabled';
393
  }
394
 
395
+ // If loop_background_videos is enabled, pass it to the video embed as a control.
396
+ if ( ! empty( $frame['loop_background_videos'] ) ) {
397
+ // SiteOrigin Slider Widget.
398
+ $controls['loop_background_videos'] = $frame['loop_background_videos'];
399
+ } elseif ( ! empty( $frame['background']['loop_background_videos'] ) ) {
400
+ // All other slider widgets.
401
+ $controls['loop_background_videos'] = $frame['background']['loop_background_videos'];
402
+ }
403
  $this->video_code( $background['videos'], $classes, $controls );
404
  }
405
 
compat/block-editor/widget-block.php CHANGED
@@ -156,7 +156,25 @@ class SiteOrigin_Widgets_Bundle_Widget_Block {
156
  // If we have pre-generated widgetHTML or there's a valid $_POST, generate the widget.
157
  // We don't show the pre-generated widget when there's a valid $_POST
158
  // as widgets will likely change when that happens.
159
- if ( empty( $attributes['widgetHtml'] ) || ! empty( $_POST ) ) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
160
  /* @var $widget SiteOrigin_Widget */
161
  $instance = $widget->update( $instance, $instance );
162
  $widget->widget( array(
156
  // If we have pre-generated widgetHTML or there's a valid $_POST, generate the widget.
157
  // We don't show the pre-generated widget when there's a valid $_POST
158
  // as widgets will likely change when that happens.
159
+ // Pages with an active WPML translation will bypass cache.
160
+ $current_page_id = get_the_ID();
161
+ if (
162
+ empty( $attributes['widgetHtml'] ) ||
163
+ ! empty( $_POST ) ||
164
+ // Is WPML active? If so, is there a translation for this page?
165
+ (
166
+ defined( 'ICL_LANGUAGE_CODE' ) &&
167
+ is_numeric(
168
+ apply_filters(
169
+ 'wpml_object_id',
170
+ $current_page_id,
171
+ get_post_type( $current_page_id ),
172
+ false,
173
+ ICL_LANGUAGE_CODE
174
+ )
175
+ )
176
+ )
177
+ ) {
178
  /* @var $widget SiteOrigin_Widget */
179
  $instance = $widget->update( $instance, $instance );
180
  $widget->widget( array(
js/carousel.js CHANGED
@@ -72,15 +72,20 @@ jQuery( function ( $ ) {
72
  numItems = $items.find( '.sow-carousel-item' ).length,
73
  complete = numItems >= $$.data( 'item_count' ),
74
  numVisibleItems = Math.ceil( $items.outerWidth() / $items.find( '.sow-carousel-item' ).outerWidth( true ) ),
75
- lastPosition = numItems - numVisibleItems + 1,
76
- slidesToScroll = $items.slick( 'slickGetOption', 'slidesToScroll' );
 
 
 
 
 
77
 
78
  // Check if all items are displayed
79
  if ( ! complete ) {
80
  // For Ajax Carousels, check if we need to fetch the next batch of items.
81
  if (
82
  $items.slick( 'slickCurrentSlide' ) + numVisibleItems >= numItems - 1 ||
83
- $items.slick( 'slickCurrentSlide' ) + slidesToScroll > lastPosition - 1
84
  ) {
85
  $( sowb ).trigger( 'carousel_load_new_items', [ $$, $items, refocus ] );
86
  }
@@ -103,7 +108,7 @@ jQuery( function ( $ ) {
103
  $items.slick( 'slickGoTo', 0 );
104
  }
105
  // Check if the number of slides to scroll exceeds lastPosition, go to the last slide.
106
- } else if ( $items.slick( 'slickCurrentSlide' ) + slidesToScroll > lastPosition - 1 ) {
107
  $items.setSlideTo( lastPosition );
108
  } else {
109
  $items.slick( 'slickNext' );
@@ -141,6 +146,8 @@ jQuery( function ( $ ) {
141
  }
142
  } );
143
 
 
 
144
  // Keyboard Navigation of carousel navigation.
145
  $( document ).on( 'keydown', '.sow-carousel-navigation a', function( e ) {
146
  if ( e.keyCode != 13 && e.keyCode != 32 ) {
72
  numItems = $items.find( '.sow-carousel-item' ).length,
73
  complete = numItems >= $$.data( 'item_count' ),
74
  numVisibleItems = Math.ceil( $items.outerWidth() / $items.find( '.sow-carousel-item' ).outerWidth( true ) ),
75
+ slidesToScroll = $items.slick( 'slickGetOption', 'slidesToScroll' ),
76
+ lastPosition = numItems - numVisibleItems;
77
+
78
+ // Post Carousel has a loading indicator so we need to pad the lastPosition.
79
+ if ( $$.data( 'widget' ) == 'post' ) {
80
+ lastPosition++;
81
+ }
82
 
83
  // Check if all items are displayed
84
  if ( ! complete ) {
85
  // For Ajax Carousels, check if we need to fetch the next batch of items.
86
  if (
87
  $items.slick( 'slickCurrentSlide' ) + numVisibleItems >= numItems - 1 ||
88
+ $items.slick( 'slickCurrentSlide' ) + slidesToScroll > lastPosition
89
  ) {
90
  $( sowb ).trigger( 'carousel_load_new_items', [ $$, $items, refocus ] );
91
  }
108
  $items.slick( 'slickGoTo', 0 );
109
  }
110
  // Check if the number of slides to scroll exceeds lastPosition, go to the last slide.
111
+ } else if ( $items.slick( 'slickCurrentSlide' ) + slidesToScroll > lastPosition ) {
112
  $items.setSlideTo( lastPosition );
113
  } else {
114
  $items.slick( 'slickNext' );
146
  }
147
  } );
148
 
149
+ $( sowb ).trigger( 'carousel_setup' );
150
+
151
  // Keyboard Navigation of carousel navigation.
152
  $( document ).on( 'keydown', '.sow-carousel-navigation a', function( e ) {
153
  if ( e.keyCode != 13 && e.keyCode != 32 ) {
js/carousel.min.js CHANGED
@@ -1 +1 @@
1
- var sowb=window.sowb||{};jQuery((function(i){sowb.setupCarousel=function(){i.fn.setSlideTo=function(e){$item=i(this);var s=$item.slick("slickGetOption","slidesToShow"),t=$item.slick("slickGetOption","slidesToScroll");$item.slick("slickSetOption","slidesToShow",1),$item.slick("slickSetOption","slidesToScroll",1),$item.slick("slickGoTo",e),$item.slick("slickSetOption","slidesToShow",s),$item.slick("slickSetOption","slidesToScroll",t)},i(".sow-carousel-wrapper").each((function(){var e=i(this),s=e.find(".sow-carousel-items"),t=e.data("responsive"),o=e.data("carousel_settings");s.not(".slick-initialized").slick({arrows:!1,dots:o.dots,rows:0,rtl:"rtl"==e.data("dir"),touchThreshold:20,infinite:!e.data("ajax-url")&&e.data("carousel_settings").loop,variableWidth:e.data("variable_width"),accessibility:!1,speed:o.animation_speed,autoplay:o.autoplay,autoplaySpeed:o.autoplaySpeed,pauseOnHover:o.pauseOnHover,slidesToScroll:t.desktop_slides,slidesToShow:t.desktop_slides,responsive:[{breakpoint:t.tablet_portrait_breakpoint,settings:{slidesToScroll:t.tablet_portrait_slides,slidesToShow:t.tablet_portrait_slides}},{breakpoint:t.mobile_breakpoint,settings:{slidesToScroll:t.mobile_slides,slidesToShow:t.mobile_slides}}]}),s.on("swipe",(function(i,s,t){e.parent().parent().find(".sow-carousel-"+("left"==t?"next":"prev")).trigger("touchend")})),e.parent().parent().find(".sow-carousel-previous, .sow-carousel-next").on("click touchend",(function(s,t){s.preventDefault();var o=e.find(".sow-carousel-items"),l=o.find(".sow-carousel-item").length,a=l>=e.data("item_count"),c=Math.ceil(o.outerWidth()/o.find(".sow-carousel-item").outerWidth(!0)),n=l-c+1,r=o.slick("slickGetOption","slidesToScroll");a||(o.slick("slickCurrentSlide")+c>=l-1||o.slick("slickCurrentSlide")+r>n-1)&&i(sowb).trigger("carousel_load_new_items",[e,o,t]),i(this).hasClass("sow-carousel-next")?a&&o.slick("slickCurrentSlide")>=n?e.data("carousel_settings").loop&&o.slick("slickGoTo",0):o.slick("slickCurrentSlide")+r>n-1?o.setSlideTo(n):o.slick("slickNext"):i(this).hasClass("sow-carousel-previous")&&(e.data("carousel_settings").loop&&0==o.slick("slickCurrentSlide")?o.slick("slickGoTo",n):o.slick("slickPrev"))})),o.dots&&e.data("variable_width")&&(e.find(".slick-dots li").off("click.slick"),e.find(".slick-dots li").on("click touchend",(function(){var e=i(this).index(),t=s.find(".sow-carousel-item").length,o=Math.ceil(s.outerWidth()/s.find(".sow-carousel-item").outerWidth(!0)),l=t-o;e+o>=t?(s.slick("slickGoTo",l),$dots=i(this).parent(),$dots.find(".slick-active").removeClass("slick-active"),$dots.children().eq(e).addClass("slick-active")):s.slick("slickGoTo",e)})))})),i(document).on("keydown",".sow-carousel-navigation a",(function(e){13!=e.keyCode&&32!=e.keyCode||(e.preventDefault(),i(this).trigger("click"))})),i(document).on("keyup",".sow-carousel-item",(function(e){if(13==e.keyCode&&i(this).find("h3 a")[0].click(),37==e.keyCode||39==e.keyCode){var s=i(this).parents(".sow-carousel-wrapper"),t=s.find(".sow-carousel-items"),o=t.find(".sow-carousel-item").length,l=i(this).data("slick-index"),a=o-(o===s.data("item_count")?0:1);if(37==e.keyCode)--l<0&&(l=a);else if(39==e.keyCode&&++l>=a){if(s.data("fetching"))return;s.parent().find(".sow-carousel-next").trigger("click",!0)}t.slick("slickGoTo",l,!0),s.find(".sow-carousel-item").prop("tabindex",-1),s.find('.sow-carousel-item[data-slick-index="'+l+'"]').trigger("focus").prop("tabindex",0)}})),i(window).on("resize load",(function(){i(".sow-carousel-wrapper").each((function(){var e=i(this),s=e.find(".sow-carousel-items.slick-initialized"),t=Math.ceil(s.outerWidth()/s.find(".sow-carousel-item").outerWidth(!0)),o=e.parent().parent().find(".sow-carousel-navigation");t>=e.data("item_count")?(o.hide(),s.slick("slickSetOption","touchMove",!1),s.slick("slickSetOption","draggable",!1)):o.not(":visible")&&(o.show(),s.slick("slickSetOption","touchMove",!0),s.slick("slickSetOption","draggable",!0));var l=e.data("responsive");window.matchMedia("(min-width: "+l.tablet_portrait_breakpoint+"px) and (max-width: "+l.tablet_landscape_breakpoint+"px) and (orientation: landscape)").matches&&(s.slick("slickSetOption","slidesToShow",l.tablet_landscape_slides),s.slick("slickSetOption","slidesToScroll",l.tablet_landscape_slides))})),i(".sow-carousel-item:first-of-type").prop("tabindex",0)}))},sowb.setupCarousel(),i(sowb).on("setup_widgets",sowb.setupCarousel)})),window.sowb=sowb;
1
+ var sowb=window.sowb||{};jQuery((function(i){sowb.setupCarousel=function(){i.fn.setSlideTo=function(e){$item=i(this);var s=$item.slick("slickGetOption","slidesToShow"),t=$item.slick("slickGetOption","slidesToScroll");$item.slick("slickSetOption","slidesToShow",1),$item.slick("slickSetOption","slidesToScroll",1),$item.slick("slickGoTo",e),$item.slick("slickSetOption","slidesToShow",s),$item.slick("slickSetOption","slidesToScroll",t)},i(".sow-carousel-wrapper").each((function(){var e=i(this),s=e.find(".sow-carousel-items"),t=e.data("responsive"),o=e.data("carousel_settings");s.not(".slick-initialized").slick({arrows:!1,dots:o.dots,rows:0,rtl:"rtl"==e.data("dir"),touchThreshold:20,infinite:!e.data("ajax-url")&&e.data("carousel_settings").loop,variableWidth:e.data("variable_width"),accessibility:!1,speed:o.animation_speed,autoplay:o.autoplay,autoplaySpeed:o.autoplaySpeed,pauseOnHover:o.pauseOnHover,slidesToScroll:t.desktop_slides,slidesToShow:t.desktop_slides,responsive:[{breakpoint:t.tablet_portrait_breakpoint,settings:{slidesToScroll:t.tablet_portrait_slides,slidesToShow:t.tablet_portrait_slides}},{breakpoint:t.mobile_breakpoint,settings:{slidesToScroll:t.mobile_slides,slidesToShow:t.mobile_slides}}]}),s.on("swipe",(function(i,s,t){e.parent().parent().find(".sow-carousel-"+("left"==t?"next":"prev")).trigger("touchend")})),e.parent().parent().find(".sow-carousel-previous, .sow-carousel-next").on("click touchend",(function(s,t){s.preventDefault();var o=e.find(".sow-carousel-items"),l=o.find(".sow-carousel-item").length,a=l>=e.data("item_count"),c=Math.ceil(o.outerWidth()/o.find(".sow-carousel-item").outerWidth(!0)),n=o.slick("slickGetOption","slidesToScroll"),r=l-c;"post"==e.data("widget")&&r++,a||(o.slick("slickCurrentSlide")+c>=l-1||o.slick("slickCurrentSlide")+n>r)&&i(sowb).trigger("carousel_load_new_items",[e,o,t]),i(this).hasClass("sow-carousel-next")?a&&o.slick("slickCurrentSlide")>=r?e.data("carousel_settings").loop&&o.slick("slickGoTo",0):o.slick("slickCurrentSlide")+n>r?o.setSlideTo(r):o.slick("slickNext"):i(this).hasClass("sow-carousel-previous")&&(e.data("carousel_settings").loop&&0==o.slick("slickCurrentSlide")?o.slick("slickGoTo",r):o.slick("slickPrev"))})),o.dots&&e.data("variable_width")&&(e.find(".slick-dots li").off("click.slick"),e.find(".slick-dots li").on("click touchend",(function(){var e=i(this).index(),t=s.find(".sow-carousel-item").length,o=Math.ceil(s.outerWidth()/s.find(".sow-carousel-item").outerWidth(!0)),l=t-o;e+o>=t?(s.slick("slickGoTo",l),$dots=i(this).parent(),$dots.find(".slick-active").removeClass("slick-active"),$dots.children().eq(e).addClass("slick-active")):s.slick("slickGoTo",e)})))})),i(sowb).trigger("carousel_setup"),i(document).on("keydown",".sow-carousel-navigation a",(function(e){13!=e.keyCode&&32!=e.keyCode||(e.preventDefault(),i(this).trigger("click"))})),i(document).on("keyup",".sow-carousel-item",(function(e){if(13==e.keyCode&&i(this).find("h3 a")[0].click(),37==e.keyCode||39==e.keyCode){var s=i(this).parents(".sow-carousel-wrapper"),t=s.find(".sow-carousel-items"),o=t.find(".sow-carousel-item").length,l=i(this).data("slick-index"),a=o-(o===s.data("item_count")?0:1);if(37==e.keyCode)--l<0&&(l=a);else if(39==e.keyCode&&++l>=a){if(s.data("fetching"))return;s.parent().find(".sow-carousel-next").trigger("click",!0)}t.slick("slickGoTo",l,!0),s.find(".sow-carousel-item").prop("tabindex",-1),s.find('.sow-carousel-item[data-slick-index="'+l+'"]').trigger("focus").prop("tabindex",0)}})),i(window).on("resize load",(function(){i(".sow-carousel-wrapper").each((function(){var e=i(this),s=e.find(".sow-carousel-items.slick-initialized"),t=Math.ceil(s.outerWidth()/s.find(".sow-carousel-item").outerWidth(!0)),o=e.parent().parent().find(".sow-carousel-navigation");t>=e.data("item_count")?(o.hide(),s.slick("slickSetOption","touchMove",!1),s.slick("slickSetOption","draggable",!1)):o.not(":visible")&&(o.show(),s.slick("slickSetOption","touchMove",!0),s.slick("slickSetOption","draggable",!0));var l=e.data("responsive");window.matchMedia("(min-width: "+l.tablet_portrait_breakpoint+"px) and (max-width: "+l.tablet_landscape_breakpoint+"px) and (orientation: landscape)").matches&&(s.slick("slickSetOption","slidesToShow",l.tablet_landscape_slides),s.slick("slickSetOption","slidesToScroll",l.tablet_landscape_slides))})),i(".sow-carousel-item:first-of-type").prop("tabindex",0)}))},sowb.setupCarousel(),i(sowb).on("setup_widgets",sowb.setupCarousel)})),window.sowb=sowb;
js/sow.google-map.js CHANGED
@@ -441,94 +441,139 @@ function soGoogleMapInitialize() {
441
  }
442
 
443
  jQuery(function ($) {
444
-
445
- sowb.setupGoogleMaps = function() {
446
- var libraries = [];
447
- var apiKey;
448
- var $mapCanvas = $('.sow-google-map-canvas');
449
  if ( ! $mapCanvas.length ) {
450
  return;
451
  }
452
  $mapCanvas.each(function(index, element) {
453
  var $this = $(element);
454
- if ( ! $this.parent().is( ':visible' ) || $this.data( 'apiInitialized' ) ) {
455
  return $this;
456
  }
457
  var mapOptions = $this.data( 'options' );
458
  if ( mapOptions) {
459
- if( typeof mapOptions.libraries !== 'undefined' && mapOptions.libraries !== null ) {
460
- libraries = libraries.concat(mapOptions.libraries);
461
  }
462
- if( !apiKey && mapOptions.apiKey ) {
463
- apiKey = mapOptions.apiKey;
464
  }
465
  }
466
  $this.data( 'apiInitialized', true );
467
  });
468
-
469
- var mapsApiLoaded = typeof window.google !== 'undefined' && typeof window.google.maps !== 'undefined';
470
- if ( sowb.mapsApiInitialized ) {
471
- var timeoutId = setTimeout( function () {
472
- if ( mapsApiLoaded ) {
473
- clearTimeout( timeoutId );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
474
  soGoogleMapInitialize();
475
  }
476
- }, 100 );
477
- } else {
478
-
479
- if ( ! apiKey ) {
480
- console.warn( 'SiteOrigin Google Maps: Could not find API key. Google Maps API key is required.' );
481
- apiKey = '';
482
- }
483
-
484
- // Try to load even if API key is missing to allow Google Maps API to provide it's own warnings/errors about missing API key.
485
- var apiUrl = 'https://maps.googleapis.com/maps/api/js?key=' + apiKey + '&callback=soGoogleMapInitialize';
486
 
487
- if ( libraries && libraries.length ) {
488
- apiUrl += '&libraries=' + libraries.join(',');
489
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
490
 
 
 
 
491
 
492
- // This allows us to "catch" Google Maps JavaScript API errors and do a bit of custom handling. In this case,
493
- // we display a user-specified fallback image if there is one.
494
- if ( window.console && window.console.error ) {
495
- var errLog = window.console.error;
 
496
 
497
- sowb.onLoadMapsApiError = function ( error ) {
498
- var matchError;
499
- if ( typeof error === 'string' ) {
500
- matchError = error.match( /^Google Maps API (error|warning): ([^\s]*)\s([^\s]*)(?:\s(.*))?/ );
501
- }
502
- if ( matchError && matchError.length && matchError[0] ) {
503
- $( '.sow-google-map-canvas' ).each( function ( index, element ) {
504
- var $this = $( element );
505
- if ( $this.data( 'fallbackImage' ) ) {
506
- var imgData = $this.data( 'fallbackImage' );
507
- if ( imgData.hasOwnProperty( 'img' ) ) {
508
- $this.append( imgData.img );
509
- }
510
  }
511
- } );
512
- }
513
- errLog.apply( window.console, arguments );
514
- };
 
 
515
 
516
- window.console.error = sowb.onLoadMapsApiError;
 
 
 
 
 
517
  }
518
-
519
- if ( soWidgetsGoogleMap.map_consent ) {
520
- $( '.sow-google-map-consent button' ).on( 'click', function() {
521
- $( '.sow-google-map-consent' ).remove();
522
- $( '.sow-google-map-canvas' ).show();
523
- $( 'body' ).append( '<script async type="text/javascript" src="' + apiUrl + '">' );
524
- sowb.mapsApiInitialized = true;
525
- } );
526
- } else {
527
- $( 'body' ).append( '<script async type="text/javascript" src="' + apiUrl + '">' );
528
  sowb.mapsApiInitialized = true;
529
- }
 
 
 
530
  }
531
- };
532
  sowb.setupGoogleMaps();
533
 
534
  $( sowb ).on( 'setup_widgets', sowb.setupGoogleMaps );
441
  }
442
 
443
  jQuery(function ($) {
444
+ sowb.googleMapsData = [];
445
+ sowb.googleMapsData.libraries = [];
446
+ sowb.setupGoogleMaps = function( e, forceLoad = false ) {
447
+ var $mapCanvas = $( '.sow-google-map-canvas' );
 
448
  if ( ! $mapCanvas.length ) {
449
  return;
450
  }
451
  $mapCanvas.each(function(index, element) {
452
  var $this = $(element);
453
+ if ( $this.data( 'apiInitialized' ) ) {
454
  return $this;
455
  }
456
  var mapOptions = $this.data( 'options' );
457
  if ( mapOptions) {
458
+ if ( typeof mapOptions.libraries !== 'undefined' && mapOptions.libraries !== null ) {
459
+ sowb.googleMapsData.libraries = sowb.googleMapsData.libraries.concat( mapOptions.libraries );
460
  }
461
+ if ( ! sowb.googleMapsData.apiKey && mapOptions.apiKey ) {
462
+ sowb.googleMapsData.apiKey = mapOptions.apiKey;
463
  }
464
  }
465
  $this.data( 'apiInitialized', true );
466
  });
467
+ if ( typeof window.google === 'undefined' ) {
468
+ window.google = {};
469
+ }
470
+
471
+ if (
472
+ forceLoad ||
473
+ typeof window.google === 'undefined' ||
474
+ typeof window.google.maps === 'undefined'
475
+ ) {
476
+ sowb.loadGoogleMapsAPI( forceLoad );
477
+ // Ensure Google Maps is loaded before using it.
478
+ sowb.googleMapsData.timer = setInterval( function () {
479
+ var clearTimer = false;
480
+ // Check if there been an error.
481
+ sowb.googleMapsData.ApiError = true;
482
+ if (
483
+ typeof sowb.googleMapsData.ApiError !== 'undefined' &&
484
+ sowb.googleMapsData.ApiError
485
+ ) {
486
+ clearTimer = true;
487
+ }
488
+ if (
489
+ ! clearTimer &&
490
+ typeof window.google !== 'undefined' &&
491
+ typeof window.google.maps !== 'undefined'
492
+ ) {
493
+ clearTimer = true;
494
  soGoogleMapInitialize();
495
  }
 
 
 
 
 
 
 
 
 
 
496
 
497
+ if ( clearTimer ) {
498
+ clearInterval( sowb.googleMapsData.timer );
499
+ }
500
+ }, 250 );
501
+ }
502
+ };
503
+
504
+ // Generate Google Maps API URL and add load it.
505
+ sowb.loadGoogleMapsAPI = function( forceLoad = false ) {
506
+ // If there was an error (or this is being forced), remove any previous
507
+ // attempts to load the API.
508
+ if (
509
+ $( '#sow-google-maps-js' ).length &&
510
+ (
511
+ forceLoad
512
+ (
513
+ typeof sowb.googleMapsData.ApiError !== 'undefined' &&
514
+ sowb.googleMapsData.ApiError
515
+ )
516
+ )
517
+ ) {
518
+ $( '#sow-google-maps-js' ).remove();
519
+ }
520
+
521
+ if ( ! sowb.googleMapsData.apiKey ) {
522
+ console.warn( 'SiteOrigin Google Maps: Could not find API key. Google Maps API key is required.' );
523
+ }
524
+
525
+ // Try to load even if API key is missing to allow Google Maps API to provide it's own warnings/errors about missing API key.
526
+ // var apiUrl = 'https://maps.googleapis.com/maps/api/js?key=' + sowb.googleMapsData.apiKey;
527
+ var apiUrl = 'https://maps.googleapis.com/maps/api/js?key=' + sowb.googleMapsData.apiKey + '&callback=soGoogleMapInitialize';
528
 
529
+ if ( sowb.googleMapsData.libraries && sowb.googleMapsData.libraries.length ) {
530
+ apiUrl += '&libraries=' + sowb.googleMapsData.libraries.join( ',' );
531
+ }
532
 
533
+ // This allows us to "catch" Google Maps JavaScript API errors and do a bit of custom handling. In this case,
534
+ // we display a user-specified fallback image if there is one.
535
+ if ( window.console && window.console.error ) {
536
+ var errLog = window.console.error;
537
+ sowb.googleMapsData.ApiError = false;
538
 
539
+ sowb.onLoadMapsApiError = function( error ) {
540
+ var matchError;
541
+ if ( typeof error === 'string' ) {
542
+ matchError = error.match( /^Google Maps API (error|warning): ([^\s]*)\s([^\s]*)(?:\s(.*))?/ );
543
+ }
544
+ if ( matchError && matchError.length && matchError[0] ) {
545
+ $( '.sow-google-map-canvas' ).each( function( index, element ) {
546
+ var $this = $( element );
547
+ if ( $this.data( 'fallbackImage' ) ) {
548
+ var imgData = $this.data( 'fallbackImage' );
549
+ if ( imgData.hasOwnProperty( 'img' ) ) {
550
+ $this.append( imgData.img );
 
551
  }
552
+ }
553
+ } );
554
+ sowb.googleMapsData.ApiError = true;
555
+ }
556
+ errLog.apply( window.console, arguments );
557
+ };
558
 
559
+ window.console.error = sowb.onLoadMapsApiError;
560
+ }
561
+ if ( soWidgetsGoogleMap.map_consent ) {
562
+ // Remove previous map consent setup.
563
+ if ( forceLoad ) {
564
+ $( '.sow-google-map-consent button' ).off( 'click' );
565
  }
566
+ $( '.sow-google-map-consent button' ).on( 'click', function() {
567
+ $( '.sow-google-map-consent' ).remove();
568
+ $( '.sow-google-map-canvas' ).show();
569
+ $( 'body' ).append( '<script async type="text/javascript" id="sow-google-maps-js" src="' + apiUrl + '">' );
 
 
 
 
 
 
570
  sowb.mapsApiInitialized = true;
571
+ } );
572
+ } else {
573
+ $( 'body' ).append( '<script async type="text/javascript" id="sow-google-maps-js" src="' + apiUrl + '">' );
574
+ sowb.mapsApiInitialized = true;
575
  }
576
+ }
577
  sowb.setupGoogleMaps();
578
 
579
  $( sowb ).on( 'setup_widgets', sowb.setupGoogleMaps );
js/sow.google-map.min.js CHANGED
@@ -1 +1 @@
1
- function soGoogleMapInitialize(){new sowb.SiteOriginGoogleMap(jQuery).initMaps()}window.sowb=window.sowb||{},sowb.SiteOriginGoogleMapInstances=[],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),window.matchMedia("(max-width: "+t.breakpoint+"px)").matches&&(i=t.mobileZoom);var n,a={zoom:i,gestureHandling:t.gestureHandling,disableDefaultUI:t.disableUi,zoomControl:t.zoomControl,panControl:t.panControl,center:o,mapTypeControlOptions:{mapTypeIds:[google.maps.MapTypeId.ROADMAP,google.maps.MapTypeId.SATELLITE,"user_map_style"]}},s=new google.maps.Map(e,a),r={name:t.mapName},l=t.mapStyles;if(l){var c=new google.maps.StyledMapType(l,r);s.mapTypes.set("user_map_style",c),s.setMapTypeId("user_map_style")}(t.markerAtCenter&&(this.centerMarker=new google.maps.Marker({position:o,map:s,draggable:t.markersDraggable,icon:t.markerIcon,title:""}),s.centerMarker=this.centerMarker),t.keepCentered)&&(google.maps.event.addDomListener(s,"idle",(function(){n=s.getCenter()})),google.maps.event.addDomListener(window,"resize",(function(){s.setCenter(n)})));this.linkAutocompleteField(t.autocomplete,t.autocompleteElement,s,t),this.showMarkers(t.markerPositions,s,t),this.showDirections(t.directions,s,t),sowb.SiteOriginGoogleMapInstances.push(s)},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){"13"===(e.keyCode||e.which)&&e.preventDefault()})),s.on("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)}));this.resultsObserver.observe(o,{attributes:!0,childList:!0,characterData:!0})}}.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){this.infoWindows=[];for(var i=[],n=0;n<e.length;n++){var a=parseInt(n/10);i.length===a&&(i[a]=[]),i[a][n%10]=e[n]}var s=function(e){var i=e.customMarkerIcon,n=e.hasOwnProperty("info")?e.info:null,a=e.hasOwnProperty("infoMaxWidth")?e.infoMaxWidth:null;return this.getLocation(e.place).done(function(e){var s=t.markerIcon;i&&(s=i);var r=new google.maps.Marker({position:e,map:o,draggable:t.markersDraggable,icon:s,title:""});if(n){var l={content:n};a&&(l.maxWidth=a);var c=t.markerInfoDisplay;l.disableAutoPan="always"===c;var p=new google.maps.InfoWindow(l);this.infoWindows.push(p);var d=c;"always"===c&&(d="click",p.open({map:o,anchor:r,shouldFocus:!1})),r.addListener(d,function(){p.open(o,r),"always"===c||t.markerInfoMultiple||this.infoWindows.forEach((function(e){e!==p&&e.close()}))}.bind(this)),"mouseover"===c&&r.addListener("mouseout",(function(){setTimeout((function(){p.close()}),100)}))}}.bind(this)).fail((function(e){r=e===google.maps.GeocoderStatus.OVER_QUERY_LIMIT,console.log(e)}))}.bind(this),r=!1,l=function(e,o){for(var t=0,i=0;i<e.length&&!r;i++)s(e[i]).then((function(){++t===e.length&&o.length&&l(o.shift(),o)}))}.bind(this);l(i.shift(),i)}},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),(new google.maps.DirectionsService).route({origin:e.origin,destination:e.destination,travelMode:e.travelMode.toUpperCase(),avoidHighways:e.avoidHighways,avoidTolls:e.avoidTolls,waypoints:e.waypoints,optimizeWaypoints:e.optimizeWaypoints},(function(o,i){i===google.maps.DirectionsStatus.OK&&(t.setOptions({preserveViewport:e.preserveViewport}),t.setDirections(o))}))}},initMaps:function(){var o=e(".sow-google-map-autocomplete"),t=new e.Deferred;0===o.length?t.resolve():o.each(function(o,i){if(void 0!==google.maps.places){var n=new google.maps.places.Autocomplete(i),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>"+soWidgetsGoogleMap.geocode.noResults+"</strong></p></div>"),t.reject()}))}}else t.reject('Sorry, we couldn\'t load the "places" library due to another plugin, so the autocomplete feature is not available.')}.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",!0)}.bind(this)).fail((function(){i.append("<div><p><strong>"+soWidgetsGoogleMap.geocode.noResults+"</strong></p></div>")}))}.bind(this))}.bind(this)).fail((function(e){console.log(e)})).done((function(){e(sowb).trigger("maps_loaded")}))},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.replace(/[\(\)]/g,"").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]}var r=0,l=function(e,o){o===google.maps.GeocoderStatus.OK?i.resolve(e[0].geometry.location):o===google.maps.GeocoderStatus.OVER_QUERY_LIMIT?++r<3?setTimeout(function(){this.getGeocoder().geocode.call(this,n,l)}.bind(this),1e3):i.reject(o):o!==google.maps.GeocoderStatus.ZERO_RESULTS&&o!==google.maps.GeocoderStatus.OVER_DAILY_LIMIT||i.reject(o)}.bind(this);this.getGeocoder().geocode(n,l)}return i}}},jQuery((function(e){sowb.setupGoogleMaps=function(){var o,t=[],i=e(".sow-google-map-canvas");if(i.length){i.each((function(i,n){var a=e(n);if(!a.parent().is(":visible")||a.data("apiInitialized"))return a;var s=a.data("options");s&&(void 0!==s.libraries&&null!==s.libraries&&(t=t.concat(s.libraries)),!o&&s.apiKey&&(o=s.apiKey)),a.data("apiInitialized",!0)}));var n=void 0!==window.google&&void 0!==window.google.maps;if(sowb.mapsApiInitialized)var a=setTimeout((function(){n&&(clearTimeout(a),soGoogleMapInitialize())}),100);else{o||(console.warn("SiteOrigin Google Maps: Could not find API key. Google Maps API key is required."),o="");var s="https://maps.googleapis.com/maps/api/js?key="+o+"&callback=soGoogleMapInitialize";if(t&&t.length&&(s+="&libraries="+t.join(",")),window.console&&window.console.error){var r=window.console.error;sowb.onLoadMapsApiError=function(o){var t;"string"==typeof o&&(t=o.match(/^Google Maps API (error|warning): ([^\s]*)\s([^\s]*)(?:\s(.*))?/)),t&&t.length&&t[0]&&e(".sow-google-map-canvas").each((function(o,t){var i=e(t);if(i.data("fallbackImage")){var n=i.data("fallbackImage");n.hasOwnProperty("img")&&i.append(n.img)}})),r.apply(window.console,arguments)},window.console.error=sowb.onLoadMapsApiError}soWidgetsGoogleMap.map_consent?e(".sow-google-map-consent button").on("click",(function(){e(".sow-google-map-consent").remove(),e(".sow-google-map-canvas").show(),e("body").append('<script async type="text/javascript" src="'+s+'">'),sowb.mapsApiInitialized=!0})):(e("body").append('<script async type="text/javascript" src="'+s+'">'),sowb.mapsApiInitialized=!0)}}},sowb.setupGoogleMaps(),e(sowb).on("setup_widgets",sowb.setupGoogleMaps)}));
1
+ function soGoogleMapInitialize(){new sowb.SiteOriginGoogleMap(jQuery).initMaps()}window.sowb=window.sowb||{},sowb.SiteOriginGoogleMapInstances=[],sowb.SiteOriginGoogleMap=function(o){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(o,e,t){var a=Number(t.zoom);a||(a=14),window.matchMedia("(max-width: "+t.breakpoint+"px)").matches&&(a=t.mobileZoom);var i,s={zoom:a,gestureHandling:t.gestureHandling,disableDefaultUI:t.disableUi,zoomControl:t.zoomControl,panControl:t.panControl,center:e,mapTypeControlOptions:{mapTypeIds:[google.maps.MapTypeId.ROADMAP,google.maps.MapTypeId.SATELLITE,"user_map_style"]}},n=new google.maps.Map(o,s),r={name:t.mapName},l=t.mapStyles;if(l){var g=new google.maps.StyledMapType(l,r);n.mapTypes.set("user_map_style",g),n.setMapTypeId("user_map_style")}(t.markerAtCenter&&(this.centerMarker=new google.maps.Marker({position:e,map:n,draggable:t.markersDraggable,icon:t.markerIcon,title:""}),n.centerMarker=this.centerMarker),t.keepCentered)&&(google.maps.event.addDomListener(n,"idle",(function(){i=n.getCenter()})),google.maps.event.addDomListener(window,"resize",(function(){n.setCenter(i)})));this.linkAutocompleteField(t.autocomplete,t.autocompleteElement,n,t),this.showMarkers(t.markerPositions,n,t),this.showDirections(t.directions,n,t),sowb.SiteOriginGoogleMapInstances.push(n)},linkAutocompleteField:function(e,t,a,i){if(e&&t){var s=function(o){this.inputAddress!==o&&(this.inputAddress=o,this.getLocation(this.inputAddress).done(function(o){a.setZoom(15),a.setCenter(o),this.centerMarker&&(this.centerMarker.setPosition(o),this.centerMarker.setTitle(this.inputAddress))}.bind(this)))}.bind(this),n=o(t);e.addListener("place_changed",function(){var o=e.getPlace();a.setZoom(15),o.geometry&&(a.setCenter(o.geometry.location),this.centerMarker&&this.centerMarker.setPosition(o.geometry.location))}.bind(this)),google.maps.event.addDomListener(t,"keypress",(function(o){"13"===(o.keyCode||o.which)&&o.preventDefault()})),n.on("focusin",function(){if(!this.resultsObserver){var e=document.querySelector(".pac-container");this.resultsObserver=new MutationObserver((function(){var e=o(o(".pac-item").get(0)),t=e.find(".pac-item-query").text(),a=e.find("span").not("[class]").text(),i=t+(a?", "+a:"");i&&s(i)}));this.resultsObserver.observe(e,{attributes:!0,childList:!0,characterData:!0})}}.bind(this));var r=function(o){this.getGeocoder().geocode({location:o},function(e,t){if(t===google.maps.GeocoderStatus.OK&&e.length>0){var a=e[0].formatted_address;n.val(a),this.centerMarker&&(this.centerMarker.setPosition(o),this.centerMarker.setTitle(a))}}.bind(this))}.bind(this);a.addListener("click",(function(o){r(o.latLng)})),this.centerMarker.addListener("dragend",(function(o){r(o.latLng)}))}},showMarkers:function(o,e,t){if(o&&o.length){this.infoWindows=[];for(var a=[],i=0;i<o.length;i++){var s=parseInt(i/10);a.length===s&&(a[s]=[]),a[s][i%10]=o[i]}var n=function(o){var a=o.customMarkerIcon,i=o.hasOwnProperty("info")?o.info:null,s=o.hasOwnProperty("infoMaxWidth")?o.infoMaxWidth:null;return this.getLocation(o.place).done(function(o){var n=t.markerIcon;a&&(n=a);var r=new google.maps.Marker({position:o,map:e,draggable:t.markersDraggable,icon:n,title:""});if(i){var l={content:i};s&&(l.maxWidth=s);var g=t.markerInfoDisplay;l.disableAutoPan="always"===g;var p=new google.maps.InfoWindow(l);this.infoWindows.push(p);var c=g;"always"===g&&(c="click",p.open({map:e,anchor:r,shouldFocus:!1})),r.addListener(c,function(){p.open(e,r),"always"===g||t.markerInfoMultiple||this.infoWindows.forEach((function(o){o!==p&&o.close()}))}.bind(this)),"mouseover"===g&&r.addListener("mouseout",(function(){setTimeout((function(){p.close()}),100)}))}}.bind(this)).fail((function(o){r=o===google.maps.GeocoderStatus.OVER_QUERY_LIMIT,console.log(o)}))}.bind(this),r=!1,l=function(o,e){for(var t=0,a=0;a<o.length&&!r;a++)n(o[a]).then((function(){++t===o.length&&e.length&&l(e.shift(),e)}))}.bind(this);l(a.shift(),a)}},showDirections:function(o,e){if(o){o.waypoints&&o.waypoints.length&&o.waypoints.map((function(o){o.stopover=Boolean(o.stopover)}));var t=new google.maps.DirectionsRenderer;t.setMap(e),(new google.maps.DirectionsService).route({origin:o.origin,destination:o.destination,travelMode:o.travelMode.toUpperCase(),avoidHighways:o.avoidHighways,avoidTolls:o.avoidTolls,waypoints:o.waypoints,optimizeWaypoints:o.optimizeWaypoints},(function(e,a){a===google.maps.DirectionsStatus.OK&&(t.setOptions({preserveViewport:o.preserveViewport}),t.setDirections(e))}))}},initMaps:function(){var e=o(".sow-google-map-autocomplete"),t=new o.Deferred;0===e.length?t.resolve():e.each(function(e,a){if(void 0!==google.maps.places){var i=new google.maps.places.Autocomplete(a),s=o(a).siblings(".sow-google-map-canvas");if(s.length>0){var n=s.data("options");n.autocomplete=i,n.autocompleteElement=a,this.getLocation(n.address).done(function(o){this.showMap(s.get(0),o,n),s.data("initialized",!0),t.resolve()}.bind(this)).fail((function(){s.append("<div><p><strong>"+soWidgetsGoogleMap.geocode.noResults+"</strong></p></div>"),t.reject()}))}}else t.reject('Sorry, we couldn\'t load the "places" library due to another plugin, so the autocomplete feature is not available.')}.bind(this)),t.always(function(){o(".sow-google-map-canvas").each(function(e,t){var a=o(t);if(a.data("initialized"))return!0;var i=a.data("options"),s=i.address;if(!s){var n=i.markerPositions;n&&n.length&&(s=n[0].place)}this.getLocation(s).done(function(o){this.showMap(a.get(0),o,i),a.data("initialized",!0)}.bind(this)).fail((function(){a.append("<div><p><strong>"+soWidgetsGoogleMap.geocode.noResults+"</strong></p></div>")}))}.bind(this))}.bind(this)).fail((function(o){console.log(o)})).done((function(){o(sowb).trigger("maps_loaded")}))},getGeocoder:function(){return this._geocoder||(this._geocoder=new google.maps.Geocoder),this._geocoder},getLocation:function(e){var t,a=new o.Deferred,i={address:e};if(e&&e.indexOf(",")>-1){var s=e.replace(/[\(\)]/g,"").split(",");s&&2===s.length&&(t=new google.maps.LatLng(s[0],s[1]),isNaN(t.lat())||isNaN(t.lng())||(i={location:{lat:t.lat(),lng:t.lng()}}))}if(i.hasOwnProperty("location"))a.resolve(i.location);else if(i.hasOwnProperty("address")){if(!i.address){var n=parseInt(Math.random()*this.DEFAULT_LOCATIONS.length);i.address=this.DEFAULT_LOCATIONS[n]}var r=0,l=function(o,e){e===google.maps.GeocoderStatus.OK?a.resolve(o[0].geometry.location):e===google.maps.GeocoderStatus.OVER_QUERY_LIMIT?++r<3?setTimeout(function(){this.getGeocoder().geocode.call(this,i,l)}.bind(this),1e3):a.reject(e):e!==google.maps.GeocoderStatus.ZERO_RESULTS&&e!==google.maps.GeocoderStatus.OVER_DAILY_LIMIT||a.reject(e)}.bind(this);this.getGeocoder().geocode(i,l)}return a}}},jQuery((function(o){sowb.googleMapsData=[],sowb.googleMapsData.libraries=[],sowb.setupGoogleMaps=function(e,t=!1){var a=o(".sow-google-map-canvas");a.length&&(a.each((function(e,t){var a=o(t);if(a.data("apiInitialized"))return a;var i=a.data("options");i&&(void 0!==i.libraries&&null!==i.libraries&&(sowb.googleMapsData.libraries=sowb.googleMapsData.libraries.concat(i.libraries)),!sowb.googleMapsData.apiKey&&i.apiKey&&(sowb.googleMapsData.apiKey=i.apiKey)),a.data("apiInitialized",!0)})),void 0===window.google&&(window.google={}),(t||void 0===window.google||void 0===window.google.maps)&&(sowb.loadGoogleMapsAPI(t),sowb.googleMapsData.timer=setInterval((function(){var o=!1;sowb.googleMapsData.ApiError=!0,void 0!==sowb.googleMapsData.ApiError&&sowb.googleMapsData.ApiError&&(o=!0),o||void 0===window.google||void 0===window.google.maps||(o=!0,soGoogleMapInitialize()),o&&clearInterval(sowb.googleMapsData.timer)}),250)))},sowb.loadGoogleMapsAPI=function(e=!1){o("#sow-google-maps-js").length&&e(void 0!==sowb.googleMapsData.ApiError&&sowb.googleMapsData.ApiError)&&o("#sow-google-maps-js").remove(),sowb.googleMapsData.apiKey||console.warn("SiteOrigin Google Maps: Could not find API key. Google Maps API key is required.");var t="https://maps.googleapis.com/maps/api/js?key="+sowb.googleMapsData.apiKey+"&callback=soGoogleMapInitialize";if(sowb.googleMapsData.libraries&&sowb.googleMapsData.libraries.length&&(t+="&libraries="+sowb.googleMapsData.libraries.join(",")),window.console&&window.console.error){var a=window.console.error;sowb.googleMapsData.ApiError=!1,sowb.onLoadMapsApiError=function(e){var t;"string"==typeof e&&(t=e.match(/^Google Maps API (error|warning): ([^\s]*)\s([^\s]*)(?:\s(.*))?/)),t&&t.length&&t[0]&&(o(".sow-google-map-canvas").each((function(e,t){var a=o(t);if(a.data("fallbackImage")){var i=a.data("fallbackImage");i.hasOwnProperty("img")&&a.append(i.img)}})),sowb.googleMapsData.ApiError=!0),a.apply(window.console,arguments)},window.console.error=sowb.onLoadMapsApiError}soWidgetsGoogleMap.map_consent?(e&&o(".sow-google-map-consent button").off("click"),o(".sow-google-map-consent button").on("click",(function(){o(".sow-google-map-consent").remove(),o(".sow-google-map-canvas").show(),o("body").append('<script async type="text/javascript" id="sow-google-maps-js" src="'+t+'">'),sowb.mapsApiInitialized=!0}))):(o("body").append('<script async type="text/javascript" id="sow-google-maps-js" src="'+t+'">'),sowb.mapsApiInitialized=!0)},sowb.setupGoogleMaps(),o(sowb).on("setup_widgets",sowb.setupGoogleMaps)}));
lang/so-widgets-bundle.pot CHANGED
@@ -256,7 +256,7 @@ msgstr ""
256
  msgid "You need to select a widget type before you'll see anything here. :)"
257
  msgstr ""
258
 
259
- #: compat/block-editor/widget-block.php:191
260
  msgid "Invalid widget class %s. Please make sure the widget has been activated in %sSiteOrigin Widgets%s."
261
  msgstr ""
262
 
@@ -296,7 +296,7 @@ msgstr ""
296
  msgid "When opening the panel, scroll the user to the top of the panel."
297
  msgstr ""
298
 
299
- #: widgets/accordion/accordion.php:71, widgets/accordion/accordion.php:84, widgets/anything-carousel/anything-carousel.php:61, widgets/anything-carousel/anything-carousel.php:77, widgets/contact/contact.php:48, widgets/cta/cta.php:64, widgets/editor/editor.php:35, widgets/features/features.php:137, widgets/icon/icon.php:68, widgets/post-carousel/post-carousel.php:160, widgets/price-table/price-table.php:42, widgets/price-table/price-table.php:61, widgets/simple-masonry/simple-masonry.php:44, widgets/simple-masonry/simple-masonry.php:85, widgets/social-media-buttons/social-media-buttons.php:54, widgets/tabs/tabs.php:71, widgets/tabs/tabs.php:84, widgets/taxonomy/taxonomy.php:34, widgets/testimonial/testimonial.php:41, widgets/video/video.php:33, base/inc/fields/posts.class.php:108
300
  msgid "Title"
301
  msgstr ""
302
 
@@ -328,7 +328,7 @@ msgstr ""
328
  msgid "Closed"
329
  msgstr ""
330
 
331
- #: widgets/accordion/accordion.php:110, widgets/anything-carousel/anything-carousel.php:88, widgets/contact/contact.php:328, widgets/cta/cta.php:74, widgets/post-carousel/post-carousel.php:208, widgets/slider/slider.php:134, widgets/tabs/tabs.php:100, widgets/testimonial/testimonial.php:184
332
  msgid "Design"
333
  msgstr ""
334
 
@@ -368,7 +368,7 @@ msgstr ""
368
  msgid "Font color"
369
  msgstr ""
370
 
371
- #: widgets/accordion/accordion.php:175, widgets/anything-carousel/anything-carousel.php:124
372
  msgid "Bottom margin"
373
  msgstr ""
374
 
@@ -396,111 +396,71 @@ msgstr ""
396
  msgid "Items"
397
  msgstr ""
398
 
399
- #: widgets/anything-carousel/anything-carousel.php:67, widgets/anything-carousel/anything-carousel.php:131, base/inc/fields/repeater.class.php:54
400
  msgid "Item"
401
  msgstr ""
402
 
403
- #: widgets/anything-carousel/anything-carousel.php:93
404
- msgid "Item title"
405
- msgstr ""
406
-
407
- #: widgets/anything-carousel/anything-carousel.php:98, widgets/headline/headline.php:67, widgets/headline/headline.php:148
408
- msgid "HTML Tag"
409
- msgstr ""
410
-
411
- #: widgets/anything-carousel/anything-carousel.php:101, widgets/features/features.php:230, widgets/headline/headline.php:70, widgets/headline/headline.php:151
412
- msgid "H1"
413
- msgstr ""
414
-
415
- #: widgets/anything-carousel/anything-carousel.php:102, widgets/features/features.php:231, widgets/headline/headline.php:71, widgets/headline/headline.php:152
416
- msgid "H2"
417
- msgstr ""
418
-
419
- #: widgets/anything-carousel/anything-carousel.php:103, widgets/features/features.php:232, widgets/headline/headline.php:72, widgets/headline/headline.php:153
420
- msgid "H3"
421
- msgstr ""
422
-
423
- #: widgets/anything-carousel/anything-carousel.php:104, widgets/features/features.php:233, widgets/headline/headline.php:73, widgets/headline/headline.php:154
424
- msgid "H4"
425
- msgstr ""
426
-
427
- #: widgets/anything-carousel/anything-carousel.php:105, widgets/features/features.php:234, widgets/headline/headline.php:74, widgets/headline/headline.php:155
428
- msgid "H5"
429
- msgstr ""
430
-
431
- #: widgets/anything-carousel/anything-carousel.php:106, widgets/features/features.php:235, widgets/headline/headline.php:75, widgets/headline/headline.php:156
432
- msgid "H6"
433
- msgstr ""
434
-
435
- #: widgets/anything-carousel/anything-carousel.php:107, widgets/headline/headline.php:76, widgets/headline/headline.php:157
436
- msgid "Paragraph"
437
- msgstr ""
438
-
439
- #: widgets/anything-carousel/anything-carousel.php:112, widgets/anything-carousel/anything-carousel.php:136, widgets/button/button.php:203, widgets/contact/contact.php:382, widgets/contact/contact.php:432, widgets/features/features.php:142, widgets/features/features.php:163, widgets/features/features.php:184, widgets/headline/headline.php:89, widgets/headline/headline.php:170
440
  msgid "Font"
441
  msgstr ""
442
 
443
- #: widgets/anything-carousel/anything-carousel.php:116, widgets/contact/contact.php:288, widgets/contact/contact.php:511, widgets/features/features.php:147, widgets/features/features.php:168, widgets/features/features.php:189, widgets/icon/icon.php:41
444
- msgid "Size"
445
  msgstr ""
446
 
447
- #: widgets/anything-carousel/anything-carousel.php:120, widgets/anything-carousel/anything-carousel.php:144, widgets/contact/contact.php:392, widgets/contact/contact.php:516, widgets/contact/contact.php:685, widgets/features/features.php:151, widgets/features/features.php:172, widgets/features/features.php:193, widgets/google-map/google-map.php:368, widgets/headline/headline.php:81, widgets/headline/headline.php:162, widgets/headline/headline.php:232, widgets/icon/icon.php:36, widgets/taxonomy/taxonomy.php:56
448
  msgid "Color"
449
  msgstr ""
450
 
451
- #: widgets/anything-carousel/anything-carousel.php:140, widgets/button/button.php:209, widgets/contact/contact.php:387, widgets/contact/contact.php:437, widgets/contact/contact.php:619
452
- msgid "Font size"
453
- msgstr ""
454
-
455
- #: widgets/anything-carousel/anything-carousel.php:148, widgets/contact/contact.php:445, widgets/social-media-buttons/social-media-buttons.php:171
456
  msgid "Margin"
457
  msgstr ""
458
 
459
- #: widgets/anything-carousel/anything-carousel.php:153, widgets/button/button.php:104, widgets/features/features.php:67, widgets/image-grid/image-grid.php:120, widgets/image-grid/image-grid.php:140
460
  msgid "Top"
461
  msgstr ""
462
 
463
- #: widgets/anything-carousel/anything-carousel.php:157, widgets/button/button.php:105, widgets/button/button.php:131, widgets/button/button.php:142, widgets/contact/contact.php:403, widgets/contact/contact.php:418, widgets/contact/contact.php:647, widgets/cta/cta.php:103, widgets/features/features.php:68, widgets/headline/headline.php:103, widgets/headline/headline.php:113, widgets/headline/headline.php:184, widgets/headline/headline.php:194, widgets/headline/headline.php:249, widgets/headline/headline.php:258, widgets/icon/icon.php:50, widgets/image/image.php:50, widgets/image/image.php:62, widgets/image-grid/image-grid.php:123, widgets/image-grid/image-grid.php:153, widgets/simple-masonry/simple-masonry.php:216, widgets/social-media-buttons/social-media-buttons.php:153, widgets/social-media-buttons/social-media-buttons.php:164, widgets/testimonial/testimonial.php:256
464
  msgid "Right"
465
  msgstr ""
466
 
467
- #: widgets/anything-carousel/anything-carousel.php:161, widgets/button/button.php:106, widgets/features/features.php:69, widgets/image-grid/image-grid.php:126, widgets/image-grid/image-grid.php:142
468
  msgid "Bottom"
469
  msgstr ""
470
 
471
- #: widgets/anything-carousel/anything-carousel.php:165, widgets/button/button.php:107, widgets/button/button.php:130, widgets/button/button.php:141, widgets/contact/contact.php:402, widgets/contact/contact.php:417, widgets/contact/contact.php:646, widgets/cta/cta.php:102, widgets/features/features.php:70, widgets/headline/headline.php:102, widgets/headline/headline.php:112, widgets/headline/headline.php:183, widgets/headline/headline.php:193, widgets/headline/headline.php:248, widgets/headline/headline.php:257, widgets/icon/icon.php:49, widgets/image/image.php:49, widgets/image/image.php:61, widgets/image-grid/image-grid.php:129, widgets/image-grid/image-grid.php:151, widgets/simple-masonry/simple-masonry.php:215, widgets/social-media-buttons/social-media-buttons.php:152, widgets/social-media-buttons/social-media-buttons.php:163, widgets/testimonial/testimonial.php:255
472
  msgid "Left"
473
  msgstr ""
474
 
475
- #: widgets/anything-carousel/anything-carousel.php:174
476
  msgid "Navigation"
477
  msgstr ""
478
 
479
- #: widgets/anything-carousel/anything-carousel.php:179
480
  msgid "Arrows color"
481
  msgstr ""
482
 
483
- #: widgets/anything-carousel/anything-carousel.php:184
484
  msgid "Arrows hover color"
485
  msgstr ""
486
 
487
- #: widgets/anything-carousel/anything-carousel.php:189
488
  msgid "Arrows margin"
489
  msgstr ""
490
 
491
- #: widgets/anything-carousel/anything-carousel.php:190
492
  msgid "The space between the navigation arrows and items."
493
  msgstr ""
494
 
495
- #: widgets/anything-carousel/anything-carousel.php:194
496
  msgid "Dots color"
497
  msgstr ""
498
 
499
- #: widgets/anything-carousel/anything-carousel.php:199
500
  msgid "Dots selected and hover color"
501
  msgstr ""
502
 
503
- #: widgets/anything-carousel/anything-carousel.php:283
504
  msgid "Add widgets and layouts to your carousel items with %sSiteOrigin Premium%s."
505
  msgstr ""
506
 
@@ -512,7 +472,7 @@ msgstr ""
512
  msgid "SiteOrigin Button"
513
  msgstr ""
514
 
515
- #: widgets/button/button.php:33, widgets/contact/contact.php:801, widgets/features/features.php:322, widgets/headline/headline.php:38, widgets/social-media-buttons/social-media-buttons.php:33, base/inc/widgets/base-slider.class.php:194
516
  msgid "Responsive Breakpoint"
517
  msgstr ""
518
 
@@ -832,7 +792,7 @@ msgstr ""
832
  msgid "Name"
833
  msgstr ""
834
 
835
- #: widgets/contact/contact.php:150, widgets/social-media-buttons/data/networks.php:29
836
  msgid "Email"
837
  msgstr ""
838
 
@@ -960,6 +920,10 @@ msgstr ""
960
  msgid "Audio"
961
  msgstr ""
962
 
 
 
 
 
963
  #: widgets/contact/contact.php:292
964
  msgid "Compact"
965
  msgstr ""
@@ -1357,6 +1321,30 @@ msgstr ""
1357
  msgid "Title text HTML tag"
1358
  msgstr ""
1359
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1360
  #: widgets/features/features.php:241
1361
  msgid "Features per row"
1362
  msgstr ""
@@ -1856,6 +1844,14 @@ msgstr ""
1856
  msgid "Headline"
1857
  msgstr ""
1858
 
 
 
 
 
 
 
 
 
1859
  #: widgets/headline/headline.php:85, widgets/headline/headline.php:166
1860
  msgid "Hover Color"
1861
  msgstr ""
@@ -2224,82 +2220,90 @@ msgstr ""
2224
  msgid "SiteOrigin Post Carousel"
2225
  msgstr ""
2226
 
2227
- #: widgets/post-carousel/post-carousel.php:166
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2228
  msgid "Default Thumbnail"
2229
  msgstr ""
2230
 
2231
- #: widgets/post-carousel/post-carousel.php:167
2232
  msgid "Choose Thumbnail"
2233
  msgstr ""
2234
 
2235
- #: widgets/post-carousel/post-carousel.php:168
2236
  msgid "Set Thumbnail"
2237
  msgstr ""
2238
 
2239
- #: widgets/post-carousel/post-carousel.php:174
2240
  msgid "Featured Image size"
2241
  msgstr ""
2242
 
2243
- #: widgets/post-carousel/post-carousel.php:180
2244
  msgid "Link target"
2245
  msgstr ""
2246
 
2247
- #: widgets/post-carousel/post-carousel.php:181
2248
  msgid "Choose where to open each carousel item."
2249
  msgstr ""
2250
 
2251
- #: widgets/post-carousel/post-carousel.php:183
2252
  msgid "Same window "
2253
  msgstr ""
2254
 
2255
- #: widgets/post-carousel/post-carousel.php:184
2256
  msgid "New window "
2257
  msgstr ""
2258
 
2259
- #: widgets/post-carousel/post-carousel.php:189
2260
  msgid "Loop posts"
2261
  msgstr ""
2262
 
2263
- #: widgets/post-carousel/post-carousel.php:190
2264
  msgid "Automatically return to the first post after the last post."
2265
  msgstr ""
2266
 
2267
- #: widgets/post-carousel/post-carousel.php:196
2268
  msgid "Posts query"
2269
  msgstr ""
2270
 
2271
- #: widgets/post-carousel/post-carousel.php:200
2272
  msgid "Posts per load"
2273
  msgstr ""
2274
 
2275
- #: widgets/post-carousel/post-carousel.php:201
2276
  msgid "Set the number of posts preloaded in the background when clicking next. The default is 10."
2277
  msgstr ""
2278
 
2279
- #: widgets/post-carousel/post-carousel.php:213
2280
- msgid "Thumbnail overlay hover color"
2281
- msgstr ""
2282
-
2283
- #: widgets/post-carousel/post-carousel.php:218
2284
- msgid "Thumbnail overlay hover opacity"
2285
- msgstr ""
2286
-
2287
- #: widgets/post-carousel/post-carousel.php:226
2288
- msgid "Navigation arrow color"
2289
- msgstr ""
2290
-
2291
- #: widgets/post-carousel/post-carousel.php:231
2292
- msgid "Navigation arrow hover color"
2293
- msgstr ""
2294
-
2295
- #: widgets/post-carousel/post-carousel.php:235
2296
- msgid "Navigation background"
2297
- msgstr ""
2298
-
2299
- #: widgets/post-carousel/post-carousel.php:240
2300
- msgid "Navigation hover background"
2301
- msgstr ""
2302
-
2303
  #: widgets/price-table/price-table.php:4, widgets/price-table/price-table.php:17
2304
  msgid "A powerful yet simple price table widget for your sidebars or Page Builder pages."
2305
  msgstr ""
@@ -2480,7 +2484,7 @@ msgstr ""
2480
  msgid "Foreground image"
2481
  msgstr ""
2482
 
2483
- #: widgets/slider/slider.php:128, widgets/video/video.php:137
2484
  msgid "Controls"
2485
  msgstr ""
2486
 
@@ -2620,11 +2624,11 @@ msgstr ""
2620
  msgid "Testimonials per row"
2621
  msgstr ""
2622
 
2623
- #: widgets/testimonial/testimonial.php:115, base/inc/widgets/base-carousel.class.php:163
2624
  msgid "Responsive"
2625
  msgstr ""
2626
 
2627
- #: widgets/testimonial/testimonial.php:120, base/inc/widgets/base-carousel.class.php:135
2628
  msgid "Tablet"
2629
  msgstr ""
2630
 
@@ -2736,7 +2740,7 @@ msgstr ""
2736
  msgid "Select cover image"
2737
  msgstr ""
2738
 
2739
- #: widgets/video/video.php:85, base/inc/widgets/base-slider.class.php:166
2740
  msgid "Video URL"
2741
  msgstr ""
2742
 
@@ -2744,7 +2748,7 @@ msgstr ""
2744
  msgid "Video Playback"
2745
  msgstr ""
2746
 
2747
- #: widgets/video/video.php:101, base/inc/widgets/base-carousel.class.php:192, base/inc/widgets/base-slider.class.php:57, base/inc/widgets/base-slider.class.php:173
2748
  msgid "Autoplay"
2749
  msgstr ""
2750
 
@@ -2776,10 +2780,6 @@ msgstr ""
2776
  msgid "If the external host supports it."
2777
  msgstr ""
2778
 
2779
- #: widgets/video/video.php:138
2780
- msgid "Enable browser video controls."
2781
- msgstr ""
2782
-
2783
  #: base/inc/fields/autocomplete.class.php:46
2784
  msgid "Search"
2785
  msgstr ""
@@ -3089,75 +3089,83 @@ msgstr ""
3089
  msgid "%s is not a SiteOrigin Widget"
3090
  msgstr ""
3091
 
3092
- #: base/inc/widgets/base-carousel.class.php:70
3093
  msgid "Slides to scroll"
3094
  msgstr ""
3095
 
3096
- #: base/inc/widgets/base-carousel.class.php:71
3097
  msgid "Set the number of slides to scroll per navigation click or swipe on %s"
3098
  msgstr ""
3099
 
3100
- #: base/inc/widgets/base-carousel.class.php:113
3101
  msgid "Breakpoint"
3102
  msgstr ""
3103
 
3104
- #: base/inc/widgets/base-carousel.class.php:131
 
 
 
 
3105
  msgid "Desktop"
3106
  msgstr ""
3107
 
3108
- #: base/inc/widgets/base-carousel.class.php:138
3109
  msgid "Landscape"
3110
  msgstr ""
3111
 
3112
- #: base/inc/widgets/base-carousel.class.php:143
3113
  msgid "Portrait"
3114
  msgstr ""
3115
 
3116
- #: base/inc/widgets/base-carousel.class.php:150
3117
  msgid "Mobile"
3118
  msgstr ""
3119
 
3120
- #: base/inc/widgets/base-carousel.class.php:172
3121
  msgid "Carousel Settings"
3122
  msgstr ""
3123
 
3124
- #: base/inc/widgets/base-carousel.class.php:177
3125
  msgid "Loop Items"
3126
  msgstr ""
3127
 
3128
- #: base/inc/widgets/base-carousel.class.php:178
3129
  msgid "Automatically return to the first item after the last item."
3130
  msgstr ""
3131
 
3132
- #: base/inc/widgets/base-carousel.class.php:183
3133
  msgid "Navigation dots"
3134
  msgstr ""
3135
 
3136
- #: base/inc/widgets/base-carousel.class.php:187, base/inc/widgets/base-slider.class.php:80
3137
  msgid "Animation speed"
3138
  msgstr ""
3139
 
3140
- #: base/inc/widgets/base-carousel.class.php:203, base/inc/widgets/base-slider.class.php:71
3141
  msgid "Autoplay pause on hover"
3142
  msgstr ""
3143
 
3144
- #: base/inc/widgets/base-carousel.class.php:212, base/inc/widgets/base-slider.class.php:87
3145
  msgid "Timeout"
3146
  msgstr ""
3147
 
3148
- #: base/inc/widgets/base-carousel.class.php:265
 
 
 
 
3149
  msgid "Next"
3150
  msgstr ""
3151
 
3152
- #: base/inc/widgets/base-carousel.class.php:265
3153
  msgid "Next Posts"
3154
  msgstr ""
3155
 
3156
- #: base/inc/widgets/base-carousel.class.php:271
3157
  msgid "Previous"
3158
  msgstr ""
3159
 
3160
- #: base/inc/widgets/base-carousel.class.php:271
3161
  msgid "Previous Posts"
3162
  msgstr ""
3163
 
@@ -3237,39 +3245,39 @@ msgstr ""
3237
  msgid "Allow slide background videos to appear on mobile devices that support autoplay."
3238
  msgstr ""
3239
 
3240
- #: base/inc/widgets/base-slider.class.php:149
3241
- msgid "Loop slide background videos"
3242
- msgstr ""
3243
-
3244
- #: base/inc/widgets/base-slider.class.php:160
3245
  msgid "Video file"
3246
  msgstr ""
3247
 
3248
- #: base/inc/widgets/base-slider.class.php:168
3249
  msgid "An external URL of the video. Overrides video file."
3250
  msgstr ""
3251
 
3252
- #: base/inc/widgets/base-slider.class.php:175
3253
  msgid "Autoplay can only be disabled for YouTube videos."
3254
  msgstr ""
3255
 
3256
- #: base/inc/widgets/base-slider.class.php:180
3257
  msgid "Video format"
3258
  msgstr ""
3259
 
3260
- #: base/inc/widgets/base-slider.class.php:196
3261
  msgid "This setting controls when the Slider will switch to the responsive mode. This breakpoint will only be used if always show navigation on mobile is enabled. The default value is 780px."
3262
  msgstr ""
3263
 
3264
- #: base/inc/widgets/base-slider.class.php:247
 
 
 
 
3265
  msgid "display slide %s"
3266
  msgstr ""
3267
 
3268
- #: base/inc/widgets/base-slider.class.php:252
3269
  msgid "next slide"
3270
  msgstr ""
3271
 
3272
- #: base/inc/widgets/base-slider.class.php:258
3273
  msgid "previous slide"
3274
  msgstr ""
3275
 
@@ -3298,218 +3306,214 @@ msgid "Twitter"
3298
  msgstr ""
3299
 
3300
  #: widgets/social-media-buttons/data/networks.php:17
3301
- msgid "Google+"
3302
- msgstr ""
3303
-
3304
- #: widgets/social-media-buttons/data/networks.php:23
3305
  msgid "RSS"
3306
  msgstr ""
3307
 
3308
- #: widgets/social-media-buttons/data/networks.php:35
3309
  msgid "Phone"
3310
  msgstr ""
3311
 
3312
- #: widgets/social-media-buttons/data/networks.php:41
3313
  msgid "Snapchat"
3314
  msgstr ""
3315
 
3316
- #: widgets/social-media-buttons/data/networks.php:47
3317
  msgid "Skype"
3318
  msgstr ""
3319
 
3320
- #: widgets/social-media-buttons/data/networks.php:53
3321
  msgid "LinkedIn"
3322
  msgstr ""
3323
 
3324
- #: widgets/social-media-buttons/data/networks.php:59
3325
  msgid "Pinterest"
3326
  msgstr ""
3327
 
3328
- #: widgets/social-media-buttons/data/networks.php:65
3329
  msgid "Tumblr"
3330
  msgstr ""
3331
 
3332
- #: widgets/social-media-buttons/data/networks.php:71
3333
  msgid "Instagram"
3334
  msgstr ""
3335
 
3336
- #: widgets/social-media-buttons/data/networks.php:77
3337
  msgid "VK"
3338
  msgstr ""
3339
 
3340
- #: widgets/social-media-buttons/data/networks.php:83
3341
  msgid "Flickr"
3342
  msgstr ""
3343
 
3344
- #: widgets/social-media-buttons/data/networks.php:89
3345
  msgid "Vine"
3346
  msgstr ""
3347
 
3348
- #: widgets/social-media-buttons/data/networks.php:98
3349
  msgid "500px"
3350
  msgstr ""
3351
 
3352
- #: widgets/social-media-buttons/data/networks.php:104
3353
  msgid "AngelList"
3354
  msgstr ""
3355
 
3356
- #: widgets/social-media-buttons/data/networks.php:110
3357
  msgid "Bandcamp"
3358
  msgstr ""
3359
 
3360
- #: widgets/social-media-buttons/data/networks.php:116
3361
  msgid "Behance"
3362
  msgstr ""
3363
 
3364
- #: widgets/social-media-buttons/data/networks.php:122
3365
  msgid "Bitbucket"
3366
  msgstr ""
3367
 
3368
- #: widgets/social-media-buttons/data/networks.php:128
3369
  msgid "Blogger"
3370
  msgstr ""
3371
 
3372
- #: widgets/social-media-buttons/data/networks.php:134
3373
  msgid "Codepen"
3374
  msgstr ""
3375
 
3376
- #: widgets/social-media-buttons/data/networks.php:140
3377
  msgid "Delicious"
3378
  msgstr ""
3379
 
3380
- #: widgets/social-media-buttons/data/networks.php:146
3381
  msgid "deviantArt"
3382
  msgstr ""
3383
 
3384
- #: widgets/social-media-buttons/data/networks.php:152
3385
  msgid "Discord"
3386
  msgstr ""
3387
 
3388
- #: widgets/social-media-buttons/data/networks.php:158
3389
  msgid "Dribbble"
3390
  msgstr ""
3391
 
3392
- #: widgets/social-media-buttons/data/networks.php:164
3393
  msgid "Dropbox"
3394
  msgstr ""
3395
 
3396
- #: widgets/social-media-buttons/data/networks.php:170
3397
  msgid "Foursquare"
3398
  msgstr ""
3399
 
3400
- #: widgets/social-media-buttons/data/networks.php:176
3401
  msgid "Github"
3402
  msgstr ""
3403
 
3404
- #: widgets/social-media-buttons/data/networks.php:182
3405
  msgid "Gratipay"
3406
  msgstr ""
3407
 
3408
- #: widgets/social-media-buttons/data/networks.php:188
3409
  msgid "Goodreads"
3410
  msgstr ""
3411
 
3412
- #: widgets/social-media-buttons/data/networks.php:194
3413
  msgid "Hacker News"
3414
  msgstr ""
3415
 
3416
- #: widgets/social-media-buttons/data/networks.php:200
3417
  msgid "IMDb"
3418
  msgstr ""
3419
 
3420
- #: widgets/social-media-buttons/data/networks.php:206
3421
  msgid "JSFiddle"
3422
  msgstr ""
3423
 
3424
- #: widgets/social-media-buttons/data/networks.php:212
3425
  msgid "Last.fm"
3426
  msgstr ""
3427
 
3428
- #: widgets/social-media-buttons/data/networks.php:218
3429
  msgid "Reddit"
3430
  msgstr ""
3431
 
3432
- #: widgets/social-media-buttons/data/networks.php:224
3433
  msgid "Slack"
3434
  msgstr ""
3435
 
3436
- #: widgets/social-media-buttons/data/networks.php:230
3437
  msgid "Slideshare"
3438
  msgstr ""
3439
 
3440
- #: widgets/social-media-buttons/data/networks.php:236
3441
  msgid "Soundcloud"
3442
  msgstr ""
3443
 
3444
- #: widgets/social-media-buttons/data/networks.php:242
3445
  msgid "Spotify"
3446
  msgstr ""
3447
 
3448
- #: widgets/social-media-buttons/data/networks.php:248
3449
  msgid "Stack Exchange"
3450
  msgstr ""
3451
 
3452
- #: widgets/social-media-buttons/data/networks.php:254
3453
  msgid "Stack Overflow"
3454
  msgstr ""
3455
 
3456
- #: widgets/social-media-buttons/data/networks.php:260
3457
  msgid "Steam"
3458
  msgstr ""
3459
 
3460
- #: widgets/social-media-buttons/data/networks.php:266
3461
  msgid "Strava"
3462
  msgstr ""
3463
 
3464
- #: widgets/social-media-buttons/data/networks.php:272
3465
  msgid "StumbleUpon"
3466
  msgstr ""
3467
 
3468
- #: widgets/social-media-buttons/data/networks.php:278
3469
  msgid "Telegram"
3470
  msgstr ""
3471
 
3472
- #: widgets/social-media-buttons/data/networks.php:284
3473
  msgid "TikTok"
3474
  msgstr ""
3475
 
3476
- #: widgets/social-media-buttons/data/networks.php:290
3477
  msgid "Trello"
3478
  msgstr ""
3479
 
3480
- #: widgets/social-media-buttons/data/networks.php:296
3481
  msgid "TripAdvisor"
3482
  msgstr ""
3483
 
3484
- #: widgets/social-media-buttons/data/networks.php:302
3485
  msgid "Twitch"
3486
  msgstr ""
3487
 
3488
- #: widgets/social-media-buttons/data/networks.php:308
3489
  msgid "Vimeo"
3490
  msgstr ""
3491
 
3492
- #: widgets/social-media-buttons/data/networks.php:314
3493
  msgid "WhatsApp"
3494
  msgstr ""
3495
 
3496
- #: widgets/social-media-buttons/data/networks.php:320
3497
  msgid "WordPress"
3498
  msgstr ""
3499
 
3500
- #: widgets/social-media-buttons/data/networks.php:326
3501
  msgid "Xing"
3502
  msgstr ""
3503
 
3504
- #: widgets/social-media-buttons/data/networks.php:332
3505
  msgid "Yahoo"
3506
  msgstr ""
3507
 
3508
- #: widgets/social-media-buttons/data/networks.php:338
3509
  msgid "Yelp"
3510
  msgstr ""
3511
 
3512
- #: widgets/social-media-buttons/data/networks.php:344
3513
  msgid "YouTube"
3514
  msgstr ""
3515
 
256
  msgid "You need to select a widget type before you'll see anything here. :)"
257
  msgstr ""
258
 
259
+ #: compat/block-editor/widget-block.php:209
260
  msgid "Invalid widget class %s. Please make sure the widget has been activated in %sSiteOrigin Widgets%s."
261
  msgstr ""
262
 
296
  msgid "When opening the panel, scroll the user to the top of the panel."
297
  msgstr ""
298
 
299
+ #: widgets/accordion/accordion.php:71, widgets/accordion/accordion.php:84, widgets/anything-carousel/anything-carousel.php:61, widgets/anything-carousel/anything-carousel.php:77, widgets/contact/contact.php:48, widgets/cta/cta.php:64, widgets/editor/editor.php:35, widgets/features/features.php:137, widgets/icon/icon.php:68, widgets/post-carousel/post-carousel.php:228, widgets/price-table/price-table.php:42, widgets/price-table/price-table.php:61, widgets/simple-masonry/simple-masonry.php:44, widgets/simple-masonry/simple-masonry.php:85, widgets/social-media-buttons/social-media-buttons.php:54, widgets/tabs/tabs.php:71, widgets/tabs/tabs.php:84, widgets/taxonomy/taxonomy.php:34, widgets/testimonial/testimonial.php:41, widgets/video/video.php:33, base/inc/fields/posts.class.php:108
300
  msgid "Title"
301
  msgstr ""
302
 
328
  msgid "Closed"
329
  msgstr ""
330
 
331
+ #: widgets/accordion/accordion.php:110, widgets/contact/contact.php:328, widgets/cta/cta.php:74, widgets/slider/slider.php:134, widgets/tabs/tabs.php:100, widgets/testimonial/testimonial.php:184, base/inc/widgets/base-carousel.class.php:245
332
  msgid "Design"
333
  msgstr ""
334
 
368
  msgid "Font color"
369
  msgstr ""
370
 
371
+ #: widgets/accordion/accordion.php:175, widgets/anything-carousel/anything-carousel.php:92
372
  msgid "Bottom margin"
373
  msgstr ""
374
 
396
  msgid "Items"
397
  msgstr ""
398
 
399
+ #: widgets/anything-carousel/anything-carousel.php:67, widgets/anything-carousel/anything-carousel.php:99, base/inc/fields/repeater.class.php:54
400
  msgid "Item"
401
  msgstr ""
402
 
403
+ #: widgets/anything-carousel/anything-carousel.php:104, widgets/button/button.php:203, widgets/contact/contact.php:382, widgets/contact/contact.php:432, widgets/features/features.php:142, widgets/features/features.php:163, widgets/features/features.php:184, widgets/headline/headline.php:89, widgets/headline/headline.php:170, base/inc/widgets/base-carousel.class.php:269
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
404
  msgid "Font"
405
  msgstr ""
406
 
407
+ #: widgets/anything-carousel/anything-carousel.php:108, widgets/button/button.php:209, widgets/contact/contact.php:387, widgets/contact/contact.php:437, widgets/contact/contact.php:619, base/inc/widgets/base-carousel.class.php:273
408
+ msgid "Font size"
409
  msgstr ""
410
 
411
+ #: widgets/anything-carousel/anything-carousel.php:112, widgets/contact/contact.php:392, widgets/contact/contact.php:516, widgets/contact/contact.php:685, widgets/features/features.php:151, widgets/features/features.php:172, widgets/features/features.php:193, widgets/google-map/google-map.php:368, widgets/headline/headline.php:81, widgets/headline/headline.php:162, widgets/headline/headline.php:232, widgets/icon/icon.php:36, widgets/taxonomy/taxonomy.php:56, base/inc/widgets/base-carousel.class.php:277
412
  msgid "Color"
413
  msgstr ""
414
 
415
+ #: widgets/anything-carousel/anything-carousel.php:116, widgets/contact/contact.php:445, widgets/social-media-buttons/social-media-buttons.php:171
 
 
 
 
416
  msgid "Margin"
417
  msgstr ""
418
 
419
+ #: widgets/anything-carousel/anything-carousel.php:121, widgets/button/button.php:104, widgets/features/features.php:67, widgets/image-grid/image-grid.php:120, widgets/image-grid/image-grid.php:140
420
  msgid "Top"
421
  msgstr ""
422
 
423
+ #: widgets/anything-carousel/anything-carousel.php:125, widgets/button/button.php:105, widgets/button/button.php:131, widgets/button/button.php:142, widgets/contact/contact.php:403, widgets/contact/contact.php:418, widgets/contact/contact.php:647, widgets/cta/cta.php:103, widgets/features/features.php:68, widgets/headline/headline.php:103, widgets/headline/headline.php:113, widgets/headline/headline.php:184, widgets/headline/headline.php:194, widgets/headline/headline.php:249, widgets/headline/headline.php:258, widgets/icon/icon.php:50, widgets/image/image.php:50, widgets/image/image.php:62, widgets/image-grid/image-grid.php:123, widgets/image-grid/image-grid.php:153, widgets/simple-masonry/simple-masonry.php:216, widgets/social-media-buttons/social-media-buttons.php:153, widgets/social-media-buttons/social-media-buttons.php:164, widgets/testimonial/testimonial.php:256
424
  msgid "Right"
425
  msgstr ""
426
 
427
+ #: widgets/anything-carousel/anything-carousel.php:129, widgets/button/button.php:106, widgets/features/features.php:69, widgets/image-grid/image-grid.php:126, widgets/image-grid/image-grid.php:142
428
  msgid "Bottom"
429
  msgstr ""
430
 
431
+ #: widgets/anything-carousel/anything-carousel.php:133, widgets/button/button.php:107, widgets/button/button.php:130, widgets/button/button.php:141, widgets/contact/contact.php:402, widgets/contact/contact.php:417, widgets/contact/contact.php:646, widgets/cta/cta.php:102, widgets/features/features.php:70, widgets/headline/headline.php:102, widgets/headline/headline.php:112, widgets/headline/headline.php:183, widgets/headline/headline.php:193, widgets/headline/headline.php:248, widgets/headline/headline.php:257, widgets/icon/icon.php:49, widgets/image/image.php:49, widgets/image/image.php:61, widgets/image-grid/image-grid.php:129, widgets/image-grid/image-grid.php:151, widgets/simple-masonry/simple-masonry.php:215, widgets/social-media-buttons/social-media-buttons.php:152, widgets/social-media-buttons/social-media-buttons.php:163, widgets/testimonial/testimonial.php:255
432
  msgid "Left"
433
  msgstr ""
434
 
435
+ #: widgets/anything-carousel/anything-carousel.php:142, widgets/post-carousel/post-carousel.php:167
436
  msgid "Navigation"
437
  msgstr ""
438
 
439
+ #: widgets/anything-carousel/anything-carousel.php:147
440
  msgid "Arrows color"
441
  msgstr ""
442
 
443
+ #: widgets/anything-carousel/anything-carousel.php:152
444
  msgid "Arrows hover color"
445
  msgstr ""
446
 
447
+ #: widgets/anything-carousel/anything-carousel.php:157
448
  msgid "Arrows margin"
449
  msgstr ""
450
 
451
+ #: widgets/anything-carousel/anything-carousel.php:158
452
  msgid "The space between the navigation arrows and items."
453
  msgstr ""
454
 
455
+ #: widgets/anything-carousel/anything-carousel.php:162
456
  msgid "Dots color"
457
  msgstr ""
458
 
459
+ #: widgets/anything-carousel/anything-carousel.php:167
460
  msgid "Dots selected and hover color"
461
  msgstr ""
462
 
463
+ #: widgets/anything-carousel/anything-carousel.php:252
464
  msgid "Add widgets and layouts to your carousel items with %sSiteOrigin Premium%s."
465
  msgstr ""
466
 
472
  msgid "SiteOrigin Button"
473
  msgstr ""
474
 
475
+ #: widgets/button/button.php:33, widgets/contact/contact.php:801, widgets/features/features.php:322, widgets/headline/headline.php:38, widgets/social-media-buttons/social-media-buttons.php:33, base/inc/widgets/base-slider.class.php:188
476
  msgid "Responsive Breakpoint"
477
  msgstr ""
478
 
792
  msgid "Name"
793
  msgstr ""
794
 
795
+ #: widgets/contact/contact.php:150, widgets/social-media-buttons/data/networks.php:23
796
  msgid "Email"
797
  msgstr ""
798
 
920
  msgid "Audio"
921
  msgstr ""
922
 
923
+ #: widgets/contact/contact.php:288, widgets/contact/contact.php:511, widgets/features/features.php:147, widgets/features/features.php:168, widgets/features/features.php:189, widgets/icon/icon.php:41
924
+ msgid "Size"
925
+ msgstr ""
926
+
927
  #: widgets/contact/contact.php:292
928
  msgid "Compact"
929
  msgstr ""
1321
  msgid "Title text HTML tag"
1322
  msgstr ""
1323
 
1324
+ #: widgets/features/features.php:230, widgets/headline/headline.php:70, widgets/headline/headline.php:151, base/inc/widgets/base-carousel.class.php:258
1325
+ msgid "H1"
1326
+ msgstr ""
1327
+
1328
+ #: widgets/features/features.php:231, widgets/headline/headline.php:71, widgets/headline/headline.php:152, base/inc/widgets/base-carousel.class.php:259
1329
+ msgid "H2"
1330
+ msgstr ""
1331
+
1332
+ #: widgets/features/features.php:232, widgets/headline/headline.php:72, widgets/headline/headline.php:153, base/inc/widgets/base-carousel.class.php:260
1333
+ msgid "H3"
1334
+ msgstr ""
1335
+
1336
+ #: widgets/features/features.php:233, widgets/headline/headline.php:73, widgets/headline/headline.php:154, base/inc/widgets/base-carousel.class.php:261
1337
+ msgid "H4"
1338
+ msgstr ""
1339
+
1340
+ #: widgets/features/features.php:234, widgets/headline/headline.php:74, widgets/headline/headline.php:155, base/inc/widgets/base-carousel.class.php:262
1341
+ msgid "H5"
1342
+ msgstr ""
1343
+
1344
+ #: widgets/features/features.php:235, widgets/headline/headline.php:75, widgets/headline/headline.php:156, base/inc/widgets/base-carousel.class.php:263
1345
+ msgid "H6"
1346
+ msgstr ""
1347
+
1348
  #: widgets/features/features.php:241
1349
  msgid "Features per row"
1350
  msgstr ""
1844
  msgid "Headline"
1845
  msgstr ""
1846
 
1847
+ #: widgets/headline/headline.php:67, widgets/headline/headline.php:148, base/inc/widgets/base-carousel.class.php:255
1848
+ msgid "HTML Tag"
1849
+ msgstr ""
1850
+
1851
+ #: widgets/headline/headline.php:76, widgets/headline/headline.php:157, base/inc/widgets/base-carousel.class.php:264
1852
+ msgid "Paragraph"
1853
+ msgstr ""
1854
+
1855
  #: widgets/headline/headline.php:85, widgets/headline/headline.php:166
1856
  msgid "Hover Color"
1857
  msgstr ""
2220
  msgid "SiteOrigin Post Carousel"
2221
  msgstr ""
2222
 
2223
+ #: widgets/post-carousel/post-carousel.php:172
2224
+ msgid "Navigation arrow color"
2225
+ msgstr ""
2226
+
2227
+ #: widgets/post-carousel/post-carousel.php:177
2228
+ msgid "Navigation arrow hover color"
2229
+ msgstr ""
2230
+
2231
+ #: widgets/post-carousel/post-carousel.php:181
2232
+ msgid "Navigation background"
2233
+ msgstr ""
2234
+
2235
+ #: widgets/post-carousel/post-carousel.php:186
2236
+ msgid "Navigation hover background"
2237
+ msgstr ""
2238
+
2239
+ #: widgets/post-carousel/post-carousel.php:195
2240
+ msgid "Post title"
2241
+ msgstr ""
2242
+
2243
+ #: widgets/post-carousel/post-carousel.php:203
2244
+ msgid "Post thumbnail"
2245
+ msgstr ""
2246
+
2247
+ #: widgets/post-carousel/post-carousel.php:208
2248
+ msgid "Thumbnail overlay hover color"
2249
+ msgstr ""
2250
+
2251
+ #: widgets/post-carousel/post-carousel.php:213
2252
+ msgid "Thumbnail overlay hover opacity"
2253
+ msgstr ""
2254
+
2255
+ #: widgets/post-carousel/post-carousel.php:234
2256
  msgid "Default Thumbnail"
2257
  msgstr ""
2258
 
2259
+ #: widgets/post-carousel/post-carousel.php:235
2260
  msgid "Choose Thumbnail"
2261
  msgstr ""
2262
 
2263
+ #: widgets/post-carousel/post-carousel.php:236
2264
  msgid "Set Thumbnail"
2265
  msgstr ""
2266
 
2267
+ #: widgets/post-carousel/post-carousel.php:242
2268
  msgid "Featured Image size"
2269
  msgstr ""
2270
 
2271
+ #: widgets/post-carousel/post-carousel.php:248
2272
  msgid "Link target"
2273
  msgstr ""
2274
 
2275
+ #: widgets/post-carousel/post-carousel.php:249
2276
  msgid "Choose where to open each carousel item."
2277
  msgstr ""
2278
 
2279
+ #: widgets/post-carousel/post-carousel.php:251
2280
  msgid "Same window "
2281
  msgstr ""
2282
 
2283
+ #: widgets/post-carousel/post-carousel.php:252
2284
  msgid "New window "
2285
  msgstr ""
2286
 
2287
+ #: widgets/post-carousel/post-carousel.php:257
2288
  msgid "Loop posts"
2289
  msgstr ""
2290
 
2291
+ #: widgets/post-carousel/post-carousel.php:258
2292
  msgid "Automatically return to the first post after the last post."
2293
  msgstr ""
2294
 
2295
+ #: widgets/post-carousel/post-carousel.php:264
2296
  msgid "Posts query"
2297
  msgstr ""
2298
 
2299
+ #: widgets/post-carousel/post-carousel.php:268
2300
  msgid "Posts per load"
2301
  msgstr ""
2302
 
2303
+ #: widgets/post-carousel/post-carousel.php:269
2304
  msgid "Set the number of posts preloaded in the background when clicking next. The default is 10."
2305
  msgstr ""
2306
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2307
  #: widgets/price-table/price-table.php:4, widgets/price-table/price-table.php:17
2308
  msgid "A powerful yet simple price table widget for your sidebars or Page Builder pages."
2309
  msgstr ""
2484
  msgid "Foreground image"
2485
  msgstr ""
2486
 
2487
+ #: widgets/slider/slider.php:128
2488
  msgid "Controls"
2489
  msgstr ""
2490
 
2624
  msgid "Testimonials per row"
2625
  msgstr ""
2626
 
2627
+ #: widgets/testimonial/testimonial.php:115, base/inc/widgets/base-carousel.class.php:181
2628
  msgid "Responsive"
2629
  msgstr ""
2630
 
2631
+ #: widgets/testimonial/testimonial.php:120, base/inc/widgets/base-carousel.class.php:150
2632
  msgid "Tablet"
2633
  msgstr ""
2634
 
2740
  msgid "Select cover image"
2741
  msgstr ""
2742
 
2743
+ #: widgets/video/video.php:85, base/inc/widgets/base-slider.class.php:160
2744
  msgid "Video URL"
2745
  msgstr ""
2746
 
2748
  msgid "Video Playback"
2749
  msgstr ""
2750
 
2751
+ #: widgets/video/video.php:101, base/inc/widgets/base-carousel.class.php:210, base/inc/widgets/base-slider.class.php:57, base/inc/widgets/base-slider.class.php:167
2752
  msgid "Autoplay"
2753
  msgstr ""
2754
 
2780
  msgid "If the external host supports it."
2781
  msgstr ""
2782
 
 
 
 
 
2783
  #: base/inc/fields/autocomplete.class.php:46
2784
  msgid "Search"
2785
  msgstr ""
3089
  msgid "%s is not a SiteOrigin Widget"
3090
  msgstr ""
3091
 
3092
+ #: base/inc/widgets/base-carousel.class.php:76
3093
  msgid "Slides to scroll"
3094
  msgstr ""
3095
 
3096
+ #: base/inc/widgets/base-carousel.class.php:77
3097
  msgid "Set the number of slides to scroll per navigation click or swipe on %s"
3098
  msgstr ""
3099
 
3100
+ #: base/inc/widgets/base-carousel.class.php:109
3101
  msgid "Breakpoint"
3102
  msgstr ""
3103
 
3104
+ #: base/inc/widgets/base-carousel.class.php:127
3105
+ msgid "Show navigation"
3106
+ msgstr ""
3107
+
3108
+ #: base/inc/widgets/base-carousel.class.php:145
3109
  msgid "Desktop"
3110
  msgstr ""
3111
 
3112
+ #: base/inc/widgets/base-carousel.class.php:153
3113
  msgid "Landscape"
3114
  msgstr ""
3115
 
3116
+ #: base/inc/widgets/base-carousel.class.php:159
3117
  msgid "Portrait"
3118
  msgstr ""
3119
 
3120
+ #: base/inc/widgets/base-carousel.class.php:167
3121
  msgid "Mobile"
3122
  msgstr ""
3123
 
3124
+ #: base/inc/widgets/base-carousel.class.php:190
3125
  msgid "Carousel Settings"
3126
  msgstr ""
3127
 
3128
+ #: base/inc/widgets/base-carousel.class.php:195
3129
  msgid "Loop Items"
3130
  msgstr ""
3131
 
3132
+ #: base/inc/widgets/base-carousel.class.php:196
3133
  msgid "Automatically return to the first item after the last item."
3134
  msgstr ""
3135
 
3136
+ #: base/inc/widgets/base-carousel.class.php:201
3137
  msgid "Navigation dots"
3138
  msgstr ""
3139
 
3140
+ #: base/inc/widgets/base-carousel.class.php:205, base/inc/widgets/base-slider.class.php:80
3141
  msgid "Animation speed"
3142
  msgstr ""
3143
 
3144
+ #: base/inc/widgets/base-carousel.class.php:221, base/inc/widgets/base-slider.class.php:71
3145
  msgid "Autoplay pause on hover"
3146
  msgstr ""
3147
 
3148
+ #: base/inc/widgets/base-carousel.class.php:230, base/inc/widgets/base-slider.class.php:87
3149
  msgid "Timeout"
3150
  msgstr ""
3151
 
3152
+ #: base/inc/widgets/base-carousel.class.php:250
3153
+ msgid "Item title"
3154
+ msgstr ""
3155
+
3156
+ #: base/inc/widgets/base-carousel.class.php:349
3157
  msgid "Next"
3158
  msgstr ""
3159
 
3160
+ #: base/inc/widgets/base-carousel.class.php:349
3161
  msgid "Next Posts"
3162
  msgstr ""
3163
 
3164
+ #: base/inc/widgets/base-carousel.class.php:355
3165
  msgid "Previous"
3166
  msgstr ""
3167
 
3168
+ #: base/inc/widgets/base-carousel.class.php:355
3169
  msgid "Previous Posts"
3170
  msgstr ""
3171
 
3245
  msgid "Allow slide background videos to appear on mobile devices that support autoplay."
3246
  msgstr ""
3247
 
3248
+ #: base/inc/widgets/base-slider.class.php:154
 
 
 
 
3249
  msgid "Video file"
3250
  msgstr ""
3251
 
3252
+ #: base/inc/widgets/base-slider.class.php:162
3253
  msgid "An external URL of the video. Overrides video file."
3254
  msgstr ""
3255
 
3256
+ #: base/inc/widgets/base-slider.class.php:169
3257
  msgid "Autoplay can only be disabled for YouTube videos."
3258
  msgstr ""
3259
 
3260
+ #: base/inc/widgets/base-slider.class.php:174
3261
  msgid "Video format"
3262
  msgstr ""
3263
 
3264
+ #: base/inc/widgets/base-slider.class.php:190
3265
  msgid "This setting controls when the Slider will switch to the responsive mode. This breakpoint will only be used if always show navigation on mobile is enabled. The default value is 780px."
3266
  msgstr ""
3267
 
3268
+ #: base/inc/widgets/base-slider.class.php:213
3269
+ msgid "Loop slide background videos"
3270
+ msgstr ""
3271
+
3272
+ #: base/inc/widgets/base-slider.class.php:295
3273
  msgid "display slide %s"
3274
  msgstr ""
3275
 
3276
+ #: base/inc/widgets/base-slider.class.php:300
3277
  msgid "next slide"
3278
  msgstr ""
3279
 
3280
+ #: base/inc/widgets/base-slider.class.php:306
3281
  msgid "previous slide"
3282
  msgstr ""
3283
 
3306
  msgstr ""
3307
 
3308
  #: widgets/social-media-buttons/data/networks.php:17
 
 
 
 
3309
  msgid "RSS"
3310
  msgstr ""
3311
 
3312
+ #: widgets/social-media-buttons/data/networks.php:29
3313
  msgid "Phone"
3314
  msgstr ""
3315
 
3316
+ #: widgets/social-media-buttons/data/networks.php:35
3317
  msgid "Snapchat"
3318
  msgstr ""
3319
 
3320
+ #: widgets/social-media-buttons/data/networks.php:41
3321
  msgid "Skype"
3322
  msgstr ""
3323
 
3324
+ #: widgets/social-media-buttons/data/networks.php:47
3325
  msgid "LinkedIn"
3326
  msgstr ""
3327
 
3328
+ #: widgets/social-media-buttons/data/networks.php:53
3329
  msgid "Pinterest"
3330
  msgstr ""
3331
 
3332
+ #: widgets/social-media-buttons/data/networks.php:59
3333
  msgid "Tumblr"
3334
  msgstr ""
3335
 
3336
+ #: widgets/social-media-buttons/data/networks.php:65
3337
  msgid "Instagram"
3338
  msgstr ""
3339
 
3340
+ #: widgets/social-media-buttons/data/networks.php:71
3341
  msgid "VK"
3342
  msgstr ""
3343
 
3344
+ #: widgets/social-media-buttons/data/networks.php:77
3345
  msgid "Flickr"
3346
  msgstr ""
3347
 
3348
+ #: widgets/social-media-buttons/data/networks.php:83
3349
  msgid "Vine"
3350
  msgstr ""
3351
 
3352
+ #: widgets/social-media-buttons/data/networks.php:92
3353
  msgid "500px"
3354
  msgstr ""
3355
 
3356
+ #: widgets/social-media-buttons/data/networks.php:98
3357
  msgid "AngelList"
3358
  msgstr ""
3359
 
3360
+ #: widgets/social-media-buttons/data/networks.php:104
3361
  msgid "Bandcamp"
3362
  msgstr ""
3363
 
3364
+ #: widgets/social-media-buttons/data/networks.php:110
3365
  msgid "Behance"
3366
  msgstr ""
3367
 
3368
+ #: widgets/social-media-buttons/data/networks.php:116
3369
  msgid "Bitbucket"
3370
  msgstr ""
3371
 
3372
+ #: widgets/social-media-buttons/data/networks.php:122
3373
  msgid "Blogger"
3374
  msgstr ""
3375
 
3376
+ #: widgets/social-media-buttons/data/networks.php:128
3377
  msgid "Codepen"
3378
  msgstr ""
3379
 
3380
+ #: widgets/social-media-buttons/data/networks.php:134
3381
  msgid "Delicious"
3382
  msgstr ""
3383
 
3384
+ #: widgets/social-media-buttons/data/networks.php:140
3385
  msgid "deviantArt"
3386
  msgstr ""
3387
 
3388
+ #: widgets/social-media-buttons/data/networks.php:146
3389
  msgid "Discord"
3390
  msgstr ""
3391
 
3392
+ #: widgets/social-media-buttons/data/networks.php:152
3393
  msgid "Dribbble"
3394
  msgstr ""
3395
 
3396
+ #: widgets/social-media-buttons/data/networks.php:158
3397
  msgid "Dropbox"
3398
  msgstr ""
3399
 
3400
+ #: widgets/social-media-buttons/data/networks.php:164
3401
  msgid "Foursquare"
3402
  msgstr ""
3403
 
3404
+ #: widgets/social-media-buttons/data/networks.php:170
3405
  msgid "Github"
3406
  msgstr ""
3407
 
3408
+ #: widgets/social-media-buttons/data/networks.php:176
3409
  msgid "Gratipay"
3410
  msgstr ""
3411
 
3412
+ #: widgets/social-media-buttons/data/networks.php:182
3413
  msgid "Goodreads"
3414
  msgstr ""
3415
 
3416
+ #: widgets/social-media-buttons/data/networks.php:188
3417
  msgid "Hacker News"
3418
  msgstr ""
3419
 
3420
+ #: widgets/social-media-buttons/data/networks.php:194
3421
  msgid "IMDb"
3422
  msgstr ""
3423
 
3424
+ #: widgets/social-media-buttons/data/networks.php:200
3425
  msgid "JSFiddle"
3426
  msgstr ""
3427
 
3428
+ #: widgets/social-media-buttons/data/networks.php:206
3429
  msgid "Last.fm"
3430
  msgstr ""
3431
 
3432
+ #: widgets/social-media-buttons/data/networks.php:212
3433
  msgid "Reddit"
3434
  msgstr ""
3435
 
3436
+ #: widgets/social-media-buttons/data/networks.php:218
3437
  msgid "Slack"
3438
  msgstr ""
3439
 
3440
+ #: widgets/social-media-buttons/data/networks.php:224
3441
  msgid "Slideshare"
3442
  msgstr ""
3443
 
3444
+ #: widgets/social-media-buttons/data/networks.php:230
3445
  msgid "Soundcloud"
3446
  msgstr ""
3447
 
3448
+ #: widgets/social-media-buttons/data/networks.php:236
3449
  msgid "Spotify"
3450
  msgstr ""
3451
 
3452
+ #: widgets/social-media-buttons/data/networks.php:242
3453
  msgid "Stack Exchange"
3454
  msgstr ""
3455
 
3456
+ #: widgets/social-media-buttons/data/networks.php:248
3457
  msgid "Stack Overflow"
3458
  msgstr ""
3459
 
3460
+ #: widgets/social-media-buttons/data/networks.php:254
3461
  msgid "Steam"
3462
  msgstr ""
3463
 
3464
+ #: widgets/social-media-buttons/data/networks.php:260
3465
  msgid "Strava"
3466
  msgstr ""
3467
 
3468
+ #: widgets/social-media-buttons/data/networks.php:266
3469
  msgid "StumbleUpon"
3470
  msgstr ""
3471
 
3472
+ #: widgets/social-media-buttons/data/networks.php:272
3473
  msgid "Telegram"
3474
  msgstr ""
3475
 
3476
+ #: widgets/social-media-buttons/data/networks.php:278
3477
  msgid "TikTok"
3478
  msgstr ""
3479
 
3480
+ #: widgets/social-media-buttons/data/networks.php:284
3481
  msgid "Trello"
3482
  msgstr ""
3483
 
3484
+ #: widgets/social-media-buttons/data/networks.php:290
3485
  msgid "TripAdvisor"
3486
  msgstr ""
3487
 
3488
+ #: widgets/social-media-buttons/data/networks.php:296
3489
  msgid "Twitch"
3490
  msgstr ""
3491
 
3492
+ #: widgets/social-media-buttons/data/networks.php:302
3493
  msgid "Vimeo"
3494
  msgstr ""
3495
 
3496
+ #: widgets/social-media-buttons/data/networks.php:308
3497
  msgid "WhatsApp"
3498
  msgstr ""
3499
 
3500
+ #: widgets/social-media-buttons/data/networks.php:314
3501
  msgid "WordPress"
3502
  msgstr ""
3503
 
3504
+ #: widgets/social-media-buttons/data/networks.php:320
3505
  msgid "Xing"
3506
  msgstr ""
3507
 
3508
+ #: widgets/social-media-buttons/data/networks.php:326
3509
  msgid "Yahoo"
3510
  msgstr ""
3511
 
3512
+ #: widgets/social-media-buttons/data/networks.php:332
3513
  msgid "Yelp"
3514
  msgstr ""
3515
 
3516
+ #: widgets/social-media-buttons/data/networks.php:338
3517
  msgid "YouTube"
3518
  msgstr ""
3519
 
readme.txt CHANGED
@@ -3,8 +3,8 @@ Tags: widget, button, slider, hero, google maps, image, carousel, features, icon
3
  Requires at least: 4.2
4
  Tested up to: 5.8
5
  Requires PHP: 5.6.20
6
- Stable tag: 1.23.1
7
- Build time: 2021-08-16T10:53:01+02:00
8
  License: GPLv3 or later
9
  Contributors: gpriday, braam-genis, alexgso
10
  Donate link: https://siteorigin.com/downloads/premium/
@@ -100,6 +100,22 @@ The Widgets Bundle global interface is available at Plugins > SiteOrigin Widgets
100
 
101
  == Changelog ==
102
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
103
  = 1.23.1 - 16 August 2021 =
104
  * Anything Carousel: Set wrapper to full-width to avoid potential sizing issue.
105
  * Anything Carousel: Prevented Page Builder widget Links Color setting from overriding navigation arrow color.
3
  Requires at least: 4.2
4
  Tested up to: 5.8
5
  Requires PHP: 5.6.20
6
+ Stable tag: 1.24.0
7
+ Build time: 2021-10-08T22:31:46+02:00
8
  License: GPLv3 or later
9
  Contributors: gpriday, braam-genis, alexgso
10
  Donate link: https://siteorigin.com/downloads/premium/
100
 
101
  == Changelog ==
102
 
103
+ = 1.24.0 - 08 October 2021 =
104
+ * Anything Carousel: Set wrapper to full-width to avoid a potential sizing issue.
105
+ * Anything Carousel: Prevented the Widget Styles - Link Color setting from overriding `Arrows color`.
106
+ * Anything Carousel: Prevented active navigation dot from displaying a cursor on hover.
107
+ * Anything Carousel: Ensured navigation dot activation correct when viewing the last item.
108
+ * Button: Prevented potential error by ensuring `$instance` is not empty before modifying it.
109
+ * Google Maps: Changed map setup to allow for greater flexibility.
110
+ * Post and Anything Carousel: Added a Responsive section `Show navigation` setting.
111
+ * Post and Anything Carousel: Migrated design settings to a `Design` section.
112
+ * Slider Widgets: Moved the `Loop slide background videos` to within the frame `Background video` section.
113
+ * Social Media Buttons: Removed the Google+ network.
114
+ * Video Player Widget: Enabled oEmbed for external videos.
115
+ * Slider Background Videos: Mute when autoplay is enabled. Required for video autoplay in Chrome.
116
+ * WPML: Added a translation compatibility XML file. Requires WPML 4.5.
117
+ * Developer: Added a new event for the carousel `carousel_setup`.
118
+
119
  = 1.23.1 - 16 August 2021 =
120
  * Anything Carousel: Set wrapper to full-width to avoid potential sizing issue.
121
  * Anything Carousel: Prevented Page Builder widget Links Color setting from overriding navigation arrow color.
so-widgets-bundle.php CHANGED
@@ -2,7 +2,7 @@
2
  /*
3
  Plugin Name: SiteOrigin Widgets Bundle
4
  Description: A highly customizable collection of widgets, ready to be used anywhere, neatly bundled into a single plugin.
5
- Version: 1.23.1
6
  Text Domain: so-widgets-bundle
7
  Domain Path: /lang
8
  Author: SiteOrigin
@@ -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.23.1');
16
  define('SOW_BUNDLE_BASE_FILE', __FILE__);
17
 
18
  // Allow JS suffix to be pre-set
2
  /*
3
  Plugin Name: SiteOrigin Widgets Bundle
4
  Description: A highly customizable collection of widgets, ready to be used anywhere, neatly bundled into a single plugin.
5
+ Version: 1.24.0
6
  Text Domain: so-widgets-bundle
7
  Domain Path: /lang
8
  Author: SiteOrigin
12
  License URI: https://www.gnu.org/licenses/gpl-3.0.txt
13
  */
14
 
15
+ define('SOW_BUNDLE_VERSION', '1.24.0');
16
  define('SOW_BUNDLE_BASE_FILE', __FILE__);
17
 
18
  // Allow JS suffix to be pre-set
widgets/anything-carousel/anything-carousel.php CHANGED
@@ -83,42 +83,10 @@ class SiteOrigin_Widget_Anything_Carousel_Widget extends SiteOrigin_Widget_Base_
83
  ),
84
  ),
85
  'carousel_settings' => $this->carousel_settings_form_fields(),
86
- 'design' => array(
87
- 'type' => 'section',
88
- 'label' => __( 'Design', 'so-widgets-bundle' ),
89
- 'hide' => true,
90
- 'fields' => array(
91
  'item_title' => array(
92
- 'type' => 'section',
93
- 'label' => __( 'Item title', 'so-widgets-bundle' ),
94
- 'hide' => true,
95
  'fields' => array(
96
- 'tag' => array(
97
- 'type' => 'select',
98
- 'label' => __( 'HTML Tag', 'so-widgets-bundle' ),
99
- 'default' => 'h4',
100
- 'options' => array(
101
- 'h1' => __( 'H1', 'so-widgets-bundle' ),
102
- 'h2' => __( 'H2', 'so-widgets-bundle' ),
103
- 'h3' => __( 'H3', 'so-widgets-bundle' ),
104
- 'h4' => __( 'H4', 'so-widgets-bundle' ),
105
- 'h5' => __( 'H5', 'so-widgets-bundle' ),
106
- 'h6' => __( 'H6', 'so-widgets-bundle' ),
107
- 'p' => __( 'Paragraph', 'so-widgets-bundle' ),
108
- ),
109
- ),
110
- 'font' => array(
111
- 'type' => 'font',
112
- 'label' => __( 'Font', 'so-widgets-bundle' ),
113
- ),
114
- 'size' => array(
115
- 'type' => 'measurement',
116
- 'label' => __( 'Size', 'so-widgets-bundle' ),
117
- ),
118
- 'color' => array(
119
- 'type' => 'color',
120
- 'label' => __( 'Color', 'so-widgets-bundle' ),
121
- ),
122
  'bottom_margin' => array(
123
  'type' => 'measurement',
124
  'label' => __( 'Bottom margin', 'so-widgets-bundle' ),
@@ -199,10 +167,9 @@ class SiteOrigin_Widget_Anything_Carousel_Widget extends SiteOrigin_Widget_Base_
199
  'label' => __( 'Dots selected and hover color', 'so-widgets-bundle' ),
200
  'default' => '#f14e4e',
201
  ),
202
-
203
  ),
204
  ),
205
- ),
206
  ),
207
  'responsive' => $this->responsive_form_fields(),
208
  );
@@ -248,6 +215,8 @@ class SiteOrigin_Widget_Anything_Carousel_Widget extends SiteOrigin_Widget_Base_
248
  $less_vars['item_font_weight'] = $item_font['weight_raw'];
249
  }
250
 
 
 
251
  return $less_vars;
252
  }
253
 
83
  ),
84
  ),
85
  'carousel_settings' => $this->carousel_settings_form_fields(),
86
+ 'design' => $this->design_settings_form_fields(
87
+ array(
 
 
 
88
  'item_title' => array(
 
 
 
89
  'fields' => array(
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
90
  'bottom_margin' => array(
91
  'type' => 'measurement',
92
  'label' => __( 'Bottom margin', 'so-widgets-bundle' ),
167
  'label' => __( 'Dots selected and hover color', 'so-widgets-bundle' ),
168
  'default' => '#f14e4e',
169
  ),
 
170
  ),
171
  ),
172
+ )
173
  ),
174
  'responsive' => $this->responsive_form_fields(),
175
  );
215
  $less_vars['item_font_weight'] = $item_font['weight_raw'];
216
  }
217
 
218
+ $less_vars = $this->responsive_less_variables( $less_vars, $instance );
219
+
220
  return $less_vars;
221
  }
222
 
widgets/anything-carousel/css/style.css CHANGED
@@ -1 +1 @@
1
- @font-face{font-family:'anything-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;font-display:block}.so-widget-sow-anything-carousel .sow-carousel-container{align-items:center;display:flex;justify-content:center}body.rtl .so-widget-sow-anything-carousel .sow-carousel-container{flex-direction:row-reverse}.so-widget-sow-anything-carousel .sow-carousel-container a.sow-carousel-next,.so-widget-sow-anything-carousel .sow-carousel-container a.sow-carousel-previous{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:'anything-carousel-arrows';font-style:normal;font-variant:normal;font-weight:normal;text-align:center;text-decoration:none;text-transform:none}.so-widget-sow-anything-carousel .sow-carousel-container .sow-carousel-wrapper{left:0;overflow:hidden;position:relative;right:0;width:100%}.so-widget-sow-anything-carousel .sow-carousel-container .sow-carousel-wrapper .sow-carousel-items{zoom:1;margin:0;padding:0;transition:all .45s ease}.so-widget-sow-anything-carousel .sow-carousel-container .sow-carousel-wrapper .sow-carousel-items:before{content:'';display:block}.so-widget-sow-anything-carousel .sow-carousel-container .sow-carousel-wrapper .sow-carousel-items:after{clear:both;content:'';display:table}.so-widget-sow-anything-carousel .sow-carousel-container .sow-carousel-wrapper .sow-carousel-items .sow-carousel-item{display:block}.so-widget-sow-anything-carousel .sow-carousel-container .sow-carousel-wrapper .slick-dots{display:block;line-height:0;list-style:none;margin:0;padding:0;text-align:center;width:100%}.so-widget-sow-anything-carousel .sow-carousel-container .sow-carousel-wrapper .slick-dots li{cursor:pointer;display:inline-block;margin:0;padding:0;position:relative}.so-widget-sow-anything-carousel .sow-carousel-container .sow-carousel-wrapper .slick-dots li button{background:transparent;border:0;color:transparent;cursor:pointer;display:block;font-size:0;font-style:normal;letter-spacing:normal;line-height:0;margin:0;outline:none;padding:0}.so-widget-sow-anything-carousel .sow-carousel-container .sow-carousel-wrapper .slick-dots li button:active,.so-widget-sow-anything-carousel .sow-carousel-container .sow-carousel-wrapper .slick-dots li button:hover,.so-widget-sow-anything-carousel .sow-carousel-container .sow-carousel-wrapper .slick-dots li button:focus{box-shadow:none;outline:none}.so-widget-sow-anything-carousel .sow-carousel-container .sow-carousel-wrapper .slick-dots li button:before{content:'•';display:block;font-family:initial;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;position:relative;text-align:center}.so-widget-sow-anything-carousel .sow-carousel-container .sow-carousel-wrapper .slick-dots li.slick-active button:before{opacity:1}.so-widget-sow-anything-carousel .sow-carousel-container .sow-carousel-wrapper .slick-dots li.slick-active button:hover{cursor:default}
1
+ @font-face{font-family:'anything-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;font-display:block}.so-widget-sow-anything-carousel .sow-carousel-container{align-items:center;display:flex;justify-content:center}body.rtl .so-widget-sow-anything-carousel .sow-carousel-container{flex-direction:row-reverse}.so-widget-sow-anything-carousel .sow-carousel-container a.sow-carousel-next,.so-widget-sow-anything-carousel .sow-carousel-container a.sow-carousel-previous{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:'anything-carousel-arrows';font-style:normal;font-variant:normal;font-weight:normal;text-align:center;text-decoration:none;text-transform:none}.so-widget-sow-anything-carousel .sow-carousel-container .sow-carousel-wrapper{left:0;overflow:hidden;position:relative;right:0;width:100%}.so-widget-sow-anything-carousel .sow-carousel-container .sow-carousel-wrapper .sow-carousel-items{zoom:1;margin:0;padding:0;transition:all .45s ease}.so-widget-sow-anything-carousel .sow-carousel-container .sow-carousel-wrapper .sow-carousel-items:before{content:'';display:block}.so-widget-sow-anything-carousel .sow-carousel-container .sow-carousel-wrapper .sow-carousel-items:after{clear:both;content:'';display:table}.so-widget-sow-anything-carousel .sow-carousel-container .sow-carousel-wrapper .sow-carousel-items .sow-carousel-item{display:block}.so-widget-sow-anything-carousel .sow-carousel-container .sow-carousel-wrapper .slick-dots{display:block;line-height:0;list-style:none;margin:0;padding:0;text-align:center;width:100%}.so-widget-sow-anything-carousel .sow-carousel-container .sow-carousel-wrapper .slick-dots li{cursor:pointer;display:inline-block;margin:0;padding:0;position:relative}.so-widget-sow-anything-carousel .sow-carousel-container .sow-carousel-wrapper .slick-dots li button{background:transparent;border:0;box-shadow:none;color:transparent;cursor:pointer;display:block;font-size:0;font-style:normal;letter-spacing:normal;line-height:0;margin:0;outline:none;padding:0}.so-widget-sow-anything-carousel .sow-carousel-container .sow-carousel-wrapper .slick-dots li button:active,.so-widget-sow-anything-carousel .sow-carousel-container .sow-carousel-wrapper .slick-dots li button:hover,.so-widget-sow-anything-carousel .sow-carousel-container .sow-carousel-wrapper .slick-dots li button:focus{box-shadow:none;outline:none}.so-widget-sow-anything-carousel .sow-carousel-container .sow-carousel-wrapper .slick-dots li button:before{content:'•';display:block;font-family:initial;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;position:relative;text-align:center}.so-widget-sow-anything-carousel .sow-carousel-container .sow-carousel-wrapper .slick-dots li.slick-active button:before{opacity:1}.so-widget-sow-anything-carousel .sow-carousel-container .sow-carousel-wrapper .slick-dots li.slick-active button:hover{cursor:default}
widgets/anything-carousel/styles/base.less CHANGED
@@ -21,6 +21,14 @@
21
  @navigation_dots_color: #bebebe;
22
  @navigation_dots_color_hover: #f14e4e;
23
 
 
 
 
 
 
 
 
 
24
  .sow-carousel-container {
25
  a.sow-carousel-next {
26
  margin-left: @navigation_arrow_margin;
@@ -56,6 +64,31 @@
56
  color: @navigation_arrow_color_hover !important;
57
  border-color: @navigation_arrow_color_hover;
58
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
59
  }
60
 
61
  .sow-carousel-wrapper {
21
  @navigation_dots_color: #bebebe;
22
  @navigation_dots_color_hover: #f14e4e;
23
 
24
+ @breakpoint_tablet_landscape: default;
25
+ @breakpoint_tablet_portrait: default;
26
+ @breakpoint_mobile: default;
27
+ @navigation_desktop: default;
28
+ @navigation_tablet_landscape: default;
29
+ @navigation_tablet_portrait: default;
30
+ @navigation_mobile: default;
31
+
32
  .sow-carousel-container {
33
  a.sow-carousel-next {
34
  margin-left: @navigation_arrow_margin;
64
  color: @navigation_arrow_color_hover !important;
65
  border-color: @navigation_arrow_color_hover;
66
  }
67
+
68
+
69
+ & when not ( isnumber( @navigation_desktop ) ) {
70
+ @media (min-width: @breakpoint_tablet_landscape) {
71
+ display: none;
72
+ }
73
+ }
74
+
75
+ & when not ( isnumber( @navigation_tablet_landscape ) ) {
76
+ @media (min-width: @breakpoint_tablet_portrait) and (max-width: @breakpoint_tablet_landscape) {
77
+ display: none;
78
+ }
79
+ }
80
+
81
+ & when not ( isnumber( @navigation_tablet_portrait ) ) {
82
+ @media (min-width: @breakpoint_mobile) and (max-width: @breakpoint_tablet_portrait) {
83
+ display: none;
84
+ }
85
+ }
86
+
87
+ & when not ( isnumber( @navigation_mobile ) ) {
88
+ @media (max-width: @breakpoint_mobile) {
89
+ display: none;
90
+ }
91
+ }
92
  }
93
 
94
  .sow-carousel-wrapper {
widgets/button/button.php CHANGED
@@ -405,6 +405,10 @@ class SiteOrigin_Widget_Button_Widget extends SiteOrigin_Widget {
405
  * @return mixed
406
  */
407
  function modify_instance( $instance ) {
 
 
 
 
408
  $migrate_props = array(
409
  'button_icon' => array(
410
  'icon_selected',
405
  * @return mixed
406
  */
407
  function modify_instance( $instance ) {
408
+ if ( empty( $instance ) ) {
409
+ return array();
410
+ }
411
+
412
  $migrate_props = array(
413
  'button_icon' => array(
414
  'icon_selected',
widgets/contact/contact.php CHANGED
@@ -1379,6 +1379,7 @@ class SiteOrigin_Widgets_ContactForm_Widget extends SiteOrigin_Widget {
1379
  return $email == 'ibrossiter@gmail.com' ||
1380
  $email == 'amisplon@gmail.com' ||
1381
  $email == 'test@example.com' ||
 
1382
  $email == 'support@siteorigin.com';
1383
  }
1384
 
1379
  return $email == 'ibrossiter@gmail.com' ||
1380
  $email == 'amisplon@gmail.com' ||
1381
  $email == 'test@example.com' ||
1382
+ $email == 'greg@siteorigin.com' ||
1383
  $email == 'support@siteorigin.com';
1384
  }
1385
 
widgets/hero/hero.php CHANGED
@@ -44,7 +44,7 @@ class SiteOrigin_Widget_Hero_Widget extends SiteOrigin_Widget_Base_Slider {
44
  }
45
 
46
  function get_widget_form(){
47
- return array(
48
  'frames' => array(
49
  'type' => 'repeater',
50
  'label' => __('Hero frames', 'so-widgets-bundle'),
@@ -311,7 +311,7 @@ class SiteOrigin_Widget_Hero_Widget extends SiteOrigin_Widget_Base_Slider {
311
 
312
  )
313
  ),
314
- );
315
  }
316
 
317
  function filter_button_widget_form( $form_fields ) {
44
  }
45
 
46
  function get_widget_form(){
47
+ return parent::widget_form( array(
48
  'frames' => array(
49
  'type' => 'repeater',
50
  'label' => __('Hero frames', 'so-widgets-bundle'),
311
 
312
  )
313
  ),
314
+ ) );
315
  }
316
 
317
  function filter_button_widget_form( $form_fields ) {
widgets/layout-slider/layout-slider.php CHANGED
@@ -32,7 +32,7 @@ class SiteOrigin_Widget_LayoutSlider_Widget extends SiteOrigin_Widget_Base_Slide
32
 
33
  function get_widget_form(){
34
  $show_heading_fields = apply_filters( 'sow_layout_slider_show_heading_fields', false );
35
- return array(
36
  'frames' => array(
37
  'type' => 'repeater',
38
  'label' => __('Slider frames', 'so-widgets-bundle'),
@@ -230,7 +230,7 @@ class SiteOrigin_Widget_LayoutSlider_Widget extends SiteOrigin_Widget_Base_Slide
230
 
231
  )
232
  ),
233
- );
234
  }
235
 
236
  function form( $instance, $form_type = 'widget' ) {
32
 
33
  function get_widget_form(){
34
  $show_heading_fields = apply_filters( 'sow_layout_slider_show_heading_fields', false );
35
+ return parent::widget_form( array(
36
  'frames' => array(
37
  'type' => 'repeater',
38
  'label' => __('Slider frames', 'so-widgets-bundle'),
230
 
231
  )
232
  ),
233
+ ) );
234
  }
235
 
236
  function form( $instance, $form_type = 'widget' ) {
widgets/post-carousel/css/style.css CHANGED
@@ -1 +1 @@
1
- @font-face{font-family:'post-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;font-display:block}.so-widget-sow-post-carousel .sow-carousel-title.has-title{align-items:baseline;display:flex}.so-widget-sow-post-carousel .sow-carousel-title.has-title .sow-carousel-navigation{margin-left:auto}body.rtl .so-widget-sow-post-carousel .sow-carousel-title.has-title .sow-carousel-navigation{margin-right:auto;margin-left:initial}.so-widget-sow-post-carousel .sow-carousel-title .widget-title{display:inline-block;padding-right:15px}.so-widget-sow-post-carousel .sow-carousel-title .sow-carousel-navigation{float:right}body.rtl .so-widget-sow-post-carousel .sow-carousel-title .sow-carousel-navigation{float:left}body.rtl .so-widget-sow-post-carousel .sow-carousel-title .sow-carousel-navigation a{margin-left:0;margin-right:2px}.so-widget-sow-post-carousel .sow-carousel-title a.sow-carousel-next,.so-widget-sow-post-carousel .sow-carousel-title a.sow-carousel-previous{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;border-radius:2px;display:block;float:right;font-family:'post-carousel-arrows';font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;line-height:18px;margin-left:2px;margin-top:3px;text-align:center;text-decoration:none;text-transform:none;width:18px}@media screen and (max-width:600px){.so-widget-sow-post-carousel .sow-carousel-title a.sow-carousel-next a.sow-carousel-previous,.so-widget-sow-post-carousel .sow-carousel-title a.sow-carousel-previous a.sow-carousel-previous{display:none}.so-widget-sow-post-carousel .sow-carousel-title a.sow-carousel-next a.sow-carousel-next,.so-widget-sow-post-carousel .sow-carousel-title a.sow-carousel-previous a.sow-carousel-next{display:none}}.so-widget-sow-post-carousel .sow-carousel-title a.sow-carousel-previous:before{content:"\e600"}.so-widget-sow-post-carousel .sow-carousel-title a.sow-carousel-next:before{content:"\e601"}.so-widget-sow-post-carousel .sow-carousel-wrapper{left:0;overflow:hidden;position:relative;right:0}.so-widget-sow-post-carousel .sow-carousel-wrapper .sow-carousel-items{zoom:1;margin:0;padding:0;transition:all .45s ease}.so-widget-sow-post-carousel .sow-carousel-wrapper .sow-carousel-items:before{content:'';display:block}.so-widget-sow-post-carousel .sow-carousel-wrapper .sow-carousel-items:after{clear:both;content:'';display:table}.so-widget-sow-post-carousel .sow-carousel-wrapper .sow-carousel-items .sow-carousel-item{display:block;margin-right:15px}.so-widget-sow-post-carousel .sow-carousel-wrapper .sow-carousel-items .sow-carousel-item .sow-carousel-thumbnail{line-height:0}.so-widget-sow-post-carousel .sow-carousel-wrapper .sow-carousel-items .sow-carousel-item .sow-carousel-thumbnail:focus{outline:none}.so-widget-sow-post-carousel .sow-carousel-wrapper .sow-carousel-items .sow-carousel-item .sow-carousel-thumbnail a{display:block;background-position:center center}.so-widget-sow-post-carousel .sow-carousel-wrapper .sow-carousel-items .sow-carousel-item .sow-carousel-thumbnail a,.so-widget-sow-post-carousel .sow-carousel-wrapper .sow-carousel-items .sow-carousel-item .sow-carousel-thumbnail a span.overlay{transition:all .35s ease}.so-widget-sow-post-carousel .sow-carousel-wrapper .sow-carousel-items .sow-carousel-item .sow-carousel-thumbnail a span.overlay{display:block;width:100%;height:100%;opacity:0;position:static}.so-widget-sow-post-carousel .sow-carousel-wrapper .sow-carousel-items .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)}.so-widget-sow-post-carousel .sow-carousel-wrapper .sow-carousel-items .sow-carousel-item h3{font-size:15px;text-align:center;font-weight:500;color:#474747;margin:10px 0 0 0}.so-widget-sow-post-carousel .sow-carousel-wrapper .sow-carousel-items .sow-carousel-item h3 a{text-decoration:none;color:inherit}.so-widget-sow-post-carousel .sow-carousel-wrapper .sow-carousel-items .sow-carousel-loading{display:block;background:url(images/carousel-loader.gif) #F6F6F6 center center no-repeat;margin:0}
1
+ @font-face{font-family:'post-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;font-display:block}.so-widget-sow-post-carousel .sow-carousel-title.has-title{align-items:baseline;display:flex}.so-widget-sow-post-carousel .sow-carousel-title.has-title .sow-carousel-navigation{margin-left:auto}body.rtl .so-widget-sow-post-carousel .sow-carousel-title.has-title .sow-carousel-navigation{margin-right:auto;margin-left:initial}.so-widget-sow-post-carousel .sow-carousel-title .widget-title{display:inline-block;padding-right:15px}.so-widget-sow-post-carousel .sow-carousel-title .sow-carousel-navigation{float:right}body.rtl .so-widget-sow-post-carousel .sow-carousel-title .sow-carousel-navigation{float:left}body.rtl .so-widget-sow-post-carousel .sow-carousel-title .sow-carousel-navigation a{margin-left:0;margin-right:2px}.so-widget-sow-post-carousel .sow-carousel-title a.sow-carousel-next,.so-widget-sow-post-carousel .sow-carousel-title a.sow-carousel-previous{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;border-radius:2px;display:block;float:right;font-family:'post-carousel-arrows';font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;line-height:18px;margin-left:2px;margin-top:3px;text-align:center;text-decoration:none;text-transform:none;width:18px}.so-widget-sow-post-carousel .sow-carousel-title a.sow-carousel-previous:before{content:"\e600"}.so-widget-sow-post-carousel .sow-carousel-title a.sow-carousel-next:before{content:"\e601"}.so-widget-sow-post-carousel .sow-carousel-wrapper{left:0;overflow:hidden;position:relative;right:0}.so-widget-sow-post-carousel .sow-carousel-wrapper .sow-carousel-items{zoom:1;margin:0;padding:0;transition:all .45s ease}.so-widget-sow-post-carousel .sow-carousel-wrapper .sow-carousel-items:before{content:'';display:block}.so-widget-sow-post-carousel .sow-carousel-wrapper .sow-carousel-items:after{clear:both;content:'';display:table}.so-widget-sow-post-carousel .sow-carousel-wrapper .sow-carousel-items .sow-carousel-item{display:block;margin-right:15px}.so-widget-sow-post-carousel .sow-carousel-wrapper .sow-carousel-items .sow-carousel-item .sow-carousel-thumbnail{line-height:0}.so-widget-sow-post-carousel .sow-carousel-wrapper .sow-carousel-items .sow-carousel-item .sow-carousel-thumbnail:focus{outline:none}.so-widget-sow-post-carousel .sow-carousel-wrapper .sow-carousel-items .sow-carousel-item .sow-carousel-thumbnail a{display:block;background-position:center center}.so-widget-sow-post-carousel .sow-carousel-wrapper .sow-carousel-items .sow-carousel-item .sow-carousel-thumbnail a,.so-widget-sow-post-carousel .sow-carousel-wrapper .sow-carousel-items .sow-carousel-item .sow-carousel-thumbnail a span.overlay{transition:all .35s ease}.so-widget-sow-post-carousel .sow-carousel-wrapper .sow-carousel-items .sow-carousel-item .sow-carousel-thumbnail a span.overlay{display:block;width:100%;height:100%;opacity:0;position:static}.so-widget-sow-post-carousel .sow-carousel-wrapper .sow-carousel-items .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)}.so-widget-sow-post-carousel .sow-carousel-wrapper .sow-carousel-items .sow-carousel-loading{display:block;background:url(images/carousel-loader.gif) #F6F6F6 center center no-repeat;margin:0}
widgets/post-carousel/post-carousel.php CHANGED
@@ -150,10 +150,78 @@ class SiteOrigin_Widget_PostCarousel_Widget extends SiteOrigin_Widget_Base_Carou
150
  'tablet_portrait' => 2,
151
  'mobile' => 1,
152
  ),
 
 
 
 
 
 
153
  );
154
  }
155
 
156
  function get_widget_form() {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
157
  return array(
158
  'title' => array(
159
  'type' => 'text',
@@ -202,50 +270,40 @@ class SiteOrigin_Widget_PostCarousel_Widget extends SiteOrigin_Widget_Base_Carou
202
  ),
203
  ),
204
  ),
205
-
206
- 'design' => array(
207
- 'type' => 'section',
208
- 'label' => __( 'Design', 'so-widgets-bundle' ),
209
- 'hide' => true,
210
- 'fields' => array(
211
- 'thumbnail_overlay_hover_color' => array(
212
- 'type' => 'color',
213
- 'label' => __( 'Thumbnail overlay hover color', 'so-widgets-bundle' ),
214
- 'default' => '#3279BB',
215
- ),
216
- 'thumbnail_overlay_hover_opacity' => array(
217
- 'type' => 'slider',
218
- 'label' => __( 'Thumbnail overlay hover opacity', 'so-widgets-bundle' ),
219
- 'default' => '0.5',
220
- 'min' => 0,
221
- 'max' => 1,
222
- 'step' => 0.1,
223
- ),
224
- 'navigation_color' => array(
225
- 'type' => 'color',
226
- 'label' => __( 'Navigation arrow color', 'so-widgets-bundle' ),
227
- 'default' => '#fff',
228
- ),
229
- 'navigation_color_hover' => array(
230
- 'type' => 'color',
231
- 'label' => __( 'Navigation arrow hover color', 'so-widgets-bundle' ),
232
- ),
233
- 'navigation_background' => array(
234
- 'type' => 'color',
235
- 'label' => __( 'Navigation background', 'so-widgets-bundle' ),
236
- 'default' => '#333',
237
- ),
238
- 'navigation_hover_background' => array(
239
- 'type' => 'color',
240
- 'label' => __( 'Navigation hover background', 'so-widgets-bundle' ),
241
- 'default' => '#444',
242
- ),
243
- ),
244
- ),
245
  'responsive' => $this->responsive_form_fields(),
246
  );
247
  }
248
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
249
  function get_less_variables( $instance ) {
250
  if ( empty( $instance ) ) {
251
  return array();
@@ -263,19 +321,24 @@ class SiteOrigin_Widget_PostCarousel_Widget extends SiteOrigin_Widget_Base_Carou
263
  $thumb_hover_width = $size['width'];
264
  $thumb_hover_height = $size['height'];
265
  }
266
-
267
- return array(
268
  'thumbnail_width' => $thumb_width . 'px',
269
  'thumbnail_height'=> $thumb_height . 'px',
270
  'thumbnail_hover_width' => $thumb_hover_width . 'px',
271
  'thumbnail_hover_height'=> $thumb_hover_height . 'px',
272
- 'thumbnail_overlay_hover_color' => ! empty ( $instance['design']['thumbnail_overlay_hover_color'] ) ? $instance['design']['thumbnail_overlay_hover_color'] : '',
273
- 'thumbnail_overlay_hover_opacity' => ! empty ( $instance['design']['thumbnail_overlay_hover_opacity'] ) ? $instance['design']['thumbnail_overlay_hover_opacity'] : 0.5,
274
- 'navigation_color' => ! empty ( $instance['design']['navigation_color'] ) ? $instance['design']['navigation_color'] : '',
275
- 'navigation_color_hover' => ! empty ( $instance['design']['navigation_color_hover'] ) ? $instance['design']['navigation_color_hover'] : '',
276
- 'navigation_background' => ! empty ( $instance['design']['navigation_background'] ) ? $instance['design']['navigation_background'] : '',
277
- 'navigation_hover_background' => ! empty ( $instance['design']['navigation_hover_background'] ) ? $instance['design']['navigation_hover_background'] : '',
 
 
 
278
  );
 
 
 
279
  }
280
 
281
  public function get_template_variables( $instance, $args ) {
@@ -301,6 +364,7 @@ class SiteOrigin_Widget_PostCarousel_Widget extends SiteOrigin_Widget_Base_Carou
301
  'link_target' => ! empty( $instance['link_target'] ) ? $instance['link_target'] : 'same',
302
  'item_template' => plugin_dir_path( __FILE__ ) . 'tpl/item.php',
303
  'navigation' => 'title',
 
304
  'attributes' => array(
305
  'widget' => 'post',
306
  'fetching' => 'false',
150
  'tablet_portrait' => 2,
151
  'mobile' => 1,
152
  ),
153
+ 'navigation' => array(
154
+ 'desktop' => true,
155
+ 'tablet_landscape' => true,
156
+ 'tablet_portrait' => true,
157
+ 'mobile' => false,
158
+ ),
159
  );
160
  }
161
 
162
  function get_widget_form() {
163
+ $design_settings = $this->design_settings_form_fields(
164
+ array(
165
+ 'navigation' => array(
166
+ 'type' => 'section',
167
+ 'label' => __( 'Navigation', 'so-widgets-bundle' ),
168
+ 'hide' => true,
169
+ 'fields' => array(
170
+ 'navigation_color' => array(
171
+ 'type' => 'color',
172
+ 'label' => __( 'Navigation arrow color', 'so-widgets-bundle' ),
173
+ 'default' => '#fff',
174
+ ),
175
+ 'navigation_color_hover' => array(
176
+ 'type' => 'color',
177
+ 'label' => __( 'Navigation arrow hover color', 'so-widgets-bundle' ),
178
+ ),
179
+ 'navigation_background' => array(
180
+ 'type' => 'color',
181
+ 'label' => __( 'Navigation background', 'so-widgets-bundle' ),
182
+ 'default' => '#333',
183
+ ),
184
+ 'navigation_hover_background' => array(
185
+ 'type' => 'color',
186
+ 'label' => __( 'Navigation hover background', 'so-widgets-bundle' ),
187
+ 'default' => '#444',
188
+ ),
189
+ ),
190
+ ),
191
+ )
192
+ );
193
+
194
+ // Overide defaults.
195
+ $design_settings['fields']['item_title']['label'] = __( 'Post title', 'so-widgets-bundle' );
196
+ $design_settings['fields']['item_title']['fields']['tag']['default'] = 'h3';
197
+
198
+ // Reposition thumbnail settings.
199
+ $design_settings['fields'] = array_merge(
200
+ array(
201
+ 'thumbnail' => array(
202
+ 'type' => 'section',
203
+ 'label' => __( 'Post thumbnail', 'so-widgets-bundle' ),
204
+ 'hide' => true,
205
+ 'fields' => array(
206
+ 'thumbnail_overlay_hover_color' => array(
207
+ 'type' => 'color',
208
+ 'label' => __( 'Thumbnail overlay hover color', 'so-widgets-bundle' ),
209
+ 'default' => '#3279BB',
210
+ ),
211
+ 'thumbnail_overlay_hover_opacity' => array(
212
+ 'type' => 'slider',
213
+ 'label' => __( 'Thumbnail overlay hover opacity', 'so-widgets-bundle' ),
214
+ 'default' => '0.5',
215
+ 'min' => 0,
216
+ 'max' => 1,
217
+ 'step' => 0.1,
218
+ ),
219
+ ),
220
+ ),
221
+ ),
222
+ $design_settings['fields']
223
+ );
224
+
225
  return array(
226
  'title' => array(
227
  'type' => 'text',
270
  ),
271
  ),
272
  ),
273
+ 'design' => $design_settings,
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
274
  'responsive' => $this->responsive_form_fields(),
275
  );
276
  }
277
 
278
+ function modify_instance( $instance ) {
279
+ // Migrate old Design settings to new settings structure.
280
+ if (
281
+ is_array( $instance ) &&
282
+ isset( $instance['design'] ) &&
283
+ isset( $instance['design']['thumbnail_overlay_hover_color'] )
284
+ ) {
285
+ $instance['design']['thumbnail'] = array(
286
+ 'thumbnail_overlay_hover_color' => $instance['design']['thumbnail_overlay_hover_color'],
287
+ 'thumbnail_overlay_hover_opacity' => $instance['design']['thumbnail_overlay_hover_opacity'],
288
+ );
289
+ $instance['design']['navigation'] = array(
290
+ 'navigation_color' => $instance['design']['navigation_color'],
291
+ 'navigation_color_hover' => $instance['design']['navigation_color_hover'],
292
+ 'navigation_background' => $instance['design']['navigation_background'],
293
+ 'navigation_hover_background' => $instance['design']['navigation_hover_background'],
294
+ );
295
+
296
+ unset( $instance['design']['thumbnail_overlay_hover_color'] );
297
+ unset( $instance['design']['thumbnail_overlay_hover_opacity'] );
298
+ unset( $instance['design']['navigation_color'] );
299
+ unset( $instance['design']['navigation_color_hover'] );
300
+ unset( $instance['design']['navigation_background'] );
301
+ unset( $instance['design']['navigation_hover_background'] );
302
+ }
303
+
304
+ return $instance;
305
+ }
306
+
307
  function get_less_variables( $instance ) {
308
  if ( empty( $instance ) ) {
309
  return array();
321
  $thumb_hover_width = $size['width'];
322
  $thumb_hover_height = $size['height'];
323
  }
324
+ $less_vars = array(
 
325
  'thumbnail_width' => $thumb_width . 'px',
326
  'thumbnail_height'=> $thumb_height . 'px',
327
  'thumbnail_hover_width' => $thumb_hover_width . 'px',
328
  'thumbnail_hover_height'=> $thumb_hover_height . 'px',
329
+ 'thumbnail_overlay_hover_color' => ! empty ( $instance['design']['thumbnail']['thumbnail_overlay_hover_color'] ) ? $instance['design']['thumbnail']['thumbnail_overlay_hover_color'] : '',
330
+ 'thumbnail_overlay_hover_opacity' => ! empty ( $instance['design']['thumbnail']['thumbnail_overlay_hover_opacity'] ) ? $instance['design']['thumbnail']['thumbnail_overlay_hover_opacity'] : 0.5,
331
+ 'navigation_color' => ! empty ( $instance['design']['navigation']['navigation_color'] ) ? $instance['design']['navigation']['navigation_color'] : '',
332
+ 'navigation_color_hover' => ! empty ( $instance['design']['navigation']['navigation_color_hover'] ) ? $instance['design']['navigation']['navigation_color_hover'] : '',
333
+ 'navigation_background' => ! empty ( $instance['design']['navigation']['navigation_background'] ) ? $instance['design']['navigation']['navigation_background'] : '',
334
+ 'navigation_hover_background' => ! empty ( $instance['design']['navigation']['navigation_hover_background'] ) ? $instance['design']['navigation']['navigation_hover_background'] : '',
335
+ 'item_title_tag' => $instance['design']['item_title']['tag'],
336
+ 'item_title_font_size' => ! empty( $instance['design']['item_title']['size'] ) ? $instance['design']['item_title']['size'] : '',
337
+ 'item_title_color' => ! empty( $instance['design']['item_title']['color'] ) ? $instance['design']['item_title']['color'] : '',
338
  );
339
+ $less_vars = $this->responsive_less_variables( $less_vars, $instance );
340
+
341
+ return $less_vars;
342
  }
343
 
344
  public function get_template_variables( $instance, $args ) {
364
  'link_target' => ! empty( $instance['link_target'] ) ? $instance['link_target'] : 'same',
365
  'item_template' => plugin_dir_path( __FILE__ ) . 'tpl/item.php',
366
  'navigation' => 'title',
367
+ 'item_title_tag' => ! empty( $instance['design']['item_title']['tag'] ) ? $instance['design']['item_title']['tag'] : 'h3',
368
  'attributes' => array(
369
  'widget' => 'post',
370
  'fetching' => 'false',
widgets/post-carousel/styles/default.less CHANGED
@@ -11,6 +11,17 @@
11
  @navigation_background: #333;
12
  @navigation_hover_background: #444;
13
 
 
 
 
 
 
 
 
 
 
 
 
14
  .sow-carousel-title {
15
 
16
  a.sow-carousel-next,
@@ -23,6 +34,30 @@
23
  background: @navigation_hover_background;
24
  color: @navigation_color_hover;
25
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
26
  }
27
 
28
  }
@@ -48,6 +83,19 @@
48
  }
49
  }
50
 
 
 
 
 
 
 
 
 
 
 
 
 
 
51
  &:focus,
52
  &:hover {
53
  .sow-carousel-thumbnail a {
11
  @navigation_background: #333;
12
  @navigation_hover_background: #444;
13
 
14
+ @breakpoint_tablet_landscape: default;
15
+ @breakpoint_tablet_portrait: default;
16
+ @breakpoint_mobile: default;
17
+ @navigation_desktop: default;
18
+ @navigation_tablet_landscape: default;
19
+ @navigation_tablet_portrait: default;
20
+ @navigation_mobile: default;
21
+ @item_title_tag: default;
22
+ @item_title_font_size: 15px;
23
+ @item_title_color: #474747;
24
+
25
  .sow-carousel-title {
26
 
27
  a.sow-carousel-next,
34
  background: @navigation_hover_background;
35
  color: @navigation_color_hover;
36
  }
37
+
38
+ & when not ( isnumber( @navigation_desktop ) ) {
39
+ @media (min-width: @breakpoint_tablet_landscape) {
40
+ display: none;
41
+ }
42
+ }
43
+
44
+ & when not ( isnumber( @navigation_tablet_landscape ) ) {
45
+ @media (min-width: @breakpoint_tablet_portrait) and (max-width: @breakpoint_tablet_landscape) {
46
+ display: none;
47
+ }
48
+ }
49
+
50
+ & when not ( isnumber( @navigation_tablet_portrait ) ) {
51
+ @media (min-width: @breakpoint_mobile) and (max-width: @breakpoint_tablet_portrait) {
52
+ display: none;
53
+ }
54
+ }
55
+
56
+ & when not ( isnumber( @navigation_mobile ) ) {
57
+ @media (max-width: @breakpoint_mobile) {
58
+ display: none;
59
+ }
60
+ }
61
  }
62
 
63
  }
83
  }
84
  }
85
 
86
+ @{item_title_tag}.sow-carousel-item-title {
87
+ color: @item_title_color;
88
+ font-size: @item_title_font_size;
89
+ font-weight: 500;
90
+ margin: 10px 0 0 0;
91
+ text-align: center;
92
+
93
+ a {
94
+ text-decoration: none;
95
+ color: inherit;
96
+ }
97
+ }
98
+
99
  &:focus,
100
  &:hover {
101
  .sow-carousel-thumbnail a {
widgets/post-carousel/tpl/item.php CHANGED
@@ -30,16 +30,17 @@ while( $settings['posts']->have_posts() ) :
30
  </a>
31
  <?php endif; ?>
32
  </div>
33
- <h3>
34
  <a
35
  href="<?php the_permalink(); ?>"
36
  id="sow-carousel-id-<?php echo the_ID(); ?>"
37
  <?php echo $settings['link_target'] == 'new' ? 'target="_blank" rel="noopener noreferrer"': ''; ?>
38
  tabindex="-1"
39
  >
40
- <?php the_title(); ?>
 
41
  </a>
42
- </h3>
43
  </div>
44
  <?php
45
  endwhile;
30
  </a>
31
  <?php endif; ?>
32
  </div>
33
+ <<?php echo esc_attr( $settings['item_title_tag'] ); ?> class="sow-carousel-item-title">
34
  <a
35
  href="<?php the_permalink(); ?>"
36
  id="sow-carousel-id-<?php echo the_ID(); ?>"
37
  <?php echo $settings['link_target'] == 'new' ? 'target="_blank" rel="noopener noreferrer"': ''; ?>
38
  tabindex="-1"
39
  >
40
+
41
+ <?php echo esc_html( get_the_title() ); ?>
42
  </a>
43
+ </<?php echo esc_attr( $settings['item_title_tag'] ); ?>>
44
  </div>
45
  <?php
46
  endwhile;
widgets/slider/slider.php CHANGED
@@ -28,7 +28,7 @@ class SiteOrigin_Widget_Slider_Widget extends SiteOrigin_Widget_Base_Slider {
28
  }
29
 
30
  function get_widget_form(){
31
- return array(
32
  'frames' => array(
33
  'type' => 'repeater',
34
  'label' => __('Slider frames', 'so-widgets-bundle'),
@@ -149,7 +149,7 @@ class SiteOrigin_Widget_Slider_Widget extends SiteOrigin_Widget_Base_Slider {
149
  ),
150
  ),
151
 
152
- );
153
  }
154
 
155
  function get_frame_background( $i, $frame ){
@@ -339,7 +339,7 @@ class SiteOrigin_Widget_Slider_Widget extends SiteOrigin_Widget_Base_Slider {
339
 
340
  }
341
 
342
- return $instance;
343
  }
344
 
345
  function get_form_teaser(){
28
  }
29
 
30
  function get_widget_form(){
31
+ return parent::widget_form( array(
32
  'frames' => array(
33
  'type' => 'repeater',
34
  'label' => __('Slider frames', 'so-widgets-bundle'),
149
  ),
150
  ),
151
 
152
+ ) );
153
  }
154
 
155
  function get_frame_background( $i, $frame ){
339
 
340
  }
341
 
342
+ return parent::modify_instance( $instance );
343
  }
344
 
345
  function get_form_teaser(){
widgets/social-media-buttons/data/networks.php CHANGED
@@ -13,12 +13,6 @@ return array(
13
  'icon_color' => '#FFFFFF',
14
  'button_color' => '#78BDF1'
15
  ),
16
- 'google-plus' => array(
17
- 'label' => __( 'Google+', 'so-widgets-bundle' ),
18
- 'base_url' => 'https://plus.google.com/',
19
- 'icon_color' => '#FFFFFF',
20
- 'button_color' => '#DD4B39'
21
- ),
22
  'rss' => array(
23
  'label' => __( 'RSS', 'so-widgets-bundle' ),
24
  'base_url' => get_bloginfo('rss_url'),
13
  'icon_color' => '#FFFFFF',
14
  'button_color' => '#78BDF1'
15
  ),
 
 
 
 
 
 
16
  'rss' => array(
17
  'label' => __( 'RSS', 'so-widgets-bundle' ),
18
  'base_url' => get_bloginfo('rss_url'),
widgets/video/tpl/default.php CHANGED
@@ -5,7 +5,6 @@
5
  * @var $player_id
6
  * @var $autoplay
7
  * @var $related_videos
8
- * @var $controls
9
  * @var $skin_class
10
  * @var $is_skinnable_video_host
11
  * @var $sources
@@ -27,7 +26,7 @@ $video_args = array(
27
  if ( $autoplay ) {
28
  $video_args['autoplay'] = 1;
29
  $video_args['playsinline'] = '';
30
- // In most brwosers, Videos need to be muted to autoplay.
31
  if ( apply_filters( 'sow_video_autoplay_mute_self_hosted', true ) ) {
32
  $video_args['muted'] = true;
33
  }
@@ -53,7 +52,7 @@ do_action( 'siteorigin_widgets_sow-video_before_video', $instance );
53
  <?php foreach ( $video_args as $k => $v ) : ?>
54
  <?php echo $k . '="' . $v . '" '; ?>
55
  <?php endforeach; ?>
56
- <?php if ( ! empty( $controls ) ): ?>
57
  <?php echo 'controls'; ?>
58
  <?php endif; ?>
59
  >
5
  * @var $player_id
6
  * @var $autoplay
7
  * @var $related_videos
 
8
  * @var $skin_class
9
  * @var $is_skinnable_video_host
10
  * @var $sources
26
  if ( $autoplay ) {
27
  $video_args['autoplay'] = 1;
28
  $video_args['playsinline'] = '';
29
+ // In most browsers, Videos need to be muted to autoplay.
30
  if ( apply_filters( 'sow_video_autoplay_mute_self_hosted', true ) ) {
31
  $video_args['muted'] = true;
32
  }
52
  <?php foreach ( $video_args as $k => $v ) : ?>
53
  <?php echo $k . '="' . $v . '" '; ?>
54
  <?php endforeach; ?>
55
+ <?php if ( apply_filters( 'sow_video_add_controls', false ) ): ?>
56
  <?php echo 'controls'; ?>
57
  <?php endif; ?>
58
  >
widgets/video/video.php CHANGED
@@ -131,16 +131,6 @@ class SiteOrigin_Widget_Video_Widget extends SiteOrigin_Widget {
131
  'video_type[self]' => array( 'hide' ),
132
  )
133
  ),
134
- 'controls' => array(
135
- 'type' => 'checkbox',
136
- 'default' => false,
137
- 'label' => __( 'Controls', 'so-widgets-bundle' ),
138
- 'description' => __( 'Enable browser video controls.', 'so-widgets-bundle' ),
139
- 'state_handler' => array(
140
- 'video_type[self]' => array( 'show' ),
141
- 'video_type[external]' => array( 'hide' ),
142
- )
143
- ),
144
  ),
145
  ),
146
  );
@@ -225,6 +215,14 @@ class SiteOrigin_Widget_Video_Widget extends SiteOrigin_Widget {
225
  $video_host = $this->get_host_from_url( $instance['video']['external_video'] );
226
  $external_video_type = 'video/' . $video_host;
227
  $external_src = ! empty( $instance['video']['external_video'] ) ? $instance['video']['external_video'] : '';
 
 
 
 
 
 
 
 
228
  }
229
 
230
  $return = array(
@@ -238,13 +236,12 @@ class SiteOrigin_Widget_Video_Widget extends SiteOrigin_Widget {
238
  'autoplay' => ! empty( $instance['playback']['autoplay'] ),
239
  'loop' => ! empty( $instance['playback']['loop'] ),
240
  'related_videos' => ! empty( $instance['playback']['related_videos'] ),
241
- 'controls' => ! empty( $instance['playback']['controls'] ),
242
  'skin_class' => 'default',
243
  'fitvids' => ! empty( $instance['playback']['fitvids'] ),
244
  );
245
 
246
- // Force oEmbed for this video
247
  if ( $instance['host_type'] == 'external' && $instance['playback']['oembed'] ) {
 
248
  $return['is_skinnable_video_host'] = false;
249
  }
250
 
131
  'video_type[self]' => array( 'hide' ),
132
  )
133
  ),
 
 
 
 
 
 
 
 
 
 
134
  ),
135
  ),
136
  );
215
  $video_host = $this->get_host_from_url( $instance['video']['external_video'] );
216
  $external_video_type = 'video/' . $video_host;
217
  $external_src = ! empty( $instance['video']['external_video'] ) ? $instance['video']['external_video'] : '';
218
+
219
+ if ( ! $instance['playback']['oembed'] ) {
220
+ // Add video as self_source to allow MediaElements to pick up on it.
221
+ $self_sources[] = array(
222
+ 'src' => $external_src,
223
+ 'type' => 'mp4',
224
+ );
225
+ }
226
  }
227
 
228
  $return = array(
236
  'autoplay' => ! empty( $instance['playback']['autoplay'] ),
237
  'loop' => ! empty( $instance['playback']['loop'] ),
238
  'related_videos' => ! empty( $instance['playback']['related_videos'] ),
 
239
  'skin_class' => 'default',
240
  'fitvids' => ! empty( $instance['playback']['fitvids'] ),
241
  );
242
 
 
243
  if ( $instance['host_type'] == 'external' && $instance['playback']['oembed'] ) {
244
+ // Force oEmbed for this video if oEmbed is enabled.
245
  $return['is_skinnable_video_host'] = false;
246
  }
247
 
wpml-config.xml ADDED
@@ -0,0 +1,443 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <wpml-config>
2
+ <gutenberg-blocks>
3
+ <gutenberg-block type="sowb/widget-block" translate="1">
4
+ <key name="widgetData">
5
+ <key name="title" />
6
+ <key name="text" />
7
+ <key name="alt" />
8
+ <key name="url" />
9
+ <key name="content" />
10
+ <key name="caption" />
11
+ <key name="attributes">
12
+ <key name="title" />
13
+ </key>
14
+ <key name="settings">
15
+ <key name="default_subject" />
16
+ <key name="subject_prefix" />
17
+ <key name="success_message" />
18
+ <key name="submit_text" />
19
+ </key>
20
+ <key name="fields">
21
+ <key name="*">
22
+ <key name="label" />
23
+ <key name="description" />
24
+ <key name="required">
25
+ <key name="missing_message" />
26
+ </key>
27
+ </key>
28
+ </key>
29
+ <key name="panels">
30
+ <key name="*">
31
+ <key name="title" />
32
+ <key name="content_text" />
33
+ <key name="content_layout" />
34
+ </key>
35
+ </key>
36
+ <key name="items">
37
+ <key name="*">
38
+ <key name="title" />
39
+ <key name="content_text" />
40
+ <key name="content_layout" />
41
+ <key name="url" />
42
+ </key>
43
+ </key>
44
+ <key name="tabs">
45
+ <key name="*">
46
+ <key name="title" />
47
+ <key name="content_text" />
48
+ <key name="content_layout" />
49
+ <key name="url" />
50
+ </key>
51
+ </key>
52
+ <key name="features">
53
+ <key name="*">
54
+ <key name="title" />
55
+ <key name="text" />
56
+ <key name="icon_title" />
57
+ <key name="more_text" />
58
+ <key name="more_url" />
59
+ </key>
60
+ </key>
61
+ <key name="frames">
62
+ <key name="*">
63
+ <key name="content" />
64
+ <key name="url" />
65
+ </key>
66
+ </key>
67
+ <key name="images">
68
+ <key name="*">
69
+ <key name="title" />
70
+ <key name="alt" />
71
+ <key name="url" />
72
+ </key>
73
+ </key>
74
+ <key name="columns">
75
+ <key name="*">
76
+ <key name="title" />
77
+ <key name="subtitle" />
78
+ <key name="image_title" />
79
+ <key name="image_alt" />
80
+ <key name="per" />
81
+ <key name="button_text" />
82
+ <key name="url" />
83
+ </key>
84
+ </key>
85
+ <key name="networks">
86
+ <key name="*">
87
+ <key name="url" />
88
+ <key name="icon_title" />
89
+ </key>
90
+ </key>
91
+ <key name="testimonials">
92
+ <key name="*">
93
+ <key name="title" />
94
+ <key name="url" />
95
+ </key>
96
+ </key>
97
+ <key name="headline">
98
+ <key name="text" />
99
+ <key name="destination_url" />
100
+ </key>
101
+ <key name="sub_headline">
102
+ <key name="text" />
103
+ <key name="destination_url" />
104
+ </key>
105
+ <key name="testimonials">
106
+ <key name="*">
107
+ <key name="text" />
108
+ <key name="url" />
109
+ </key>
110
+ </key>
111
+ <key name="frames">
112
+ <key name="*">
113
+ <key name="content" />
114
+ </key>
115
+ </key>
116
+ <key name="features">
117
+ <key name="*">
118
+ <key name="title" />
119
+ <key name="text" />
120
+ <key name="icon_title" />
121
+ <key name="more_text" />
122
+ <key name="more_url" />
123
+ </key>
124
+ </key>
125
+ <key name="cta">
126
+ <key name="*">
127
+ <key name="title" />
128
+ <key name="sub_title" />
129
+ <key name="button>text" />
130
+ <key name="button>destination_url" />
131
+ <key name="attributes>title" />
132
+ </key>
133
+ </key>
134
+ <key name="taxonomy">
135
+ <key name="*">
136
+ <key name="label" />
137
+ </key>
138
+ </key>
139
+ </key>
140
+ </gutenberg-block>
141
+ </gutenberg-blocks>
142
+ <siteorigin-widgets>
143
+ <widget name="WP_Widget_Archives">
144
+ <fields>
145
+ <field type="Archive title">title</field>
146
+ </fields>
147
+ </widget>
148
+ <widget name="WP_Widget_Media_Audio">
149
+ <fields>
150
+ <field type="Audio title">title</field>
151
+ <field type="Audio URL" editor_type="LINK">url</field>
152
+ </fields>
153
+ </widget>
154
+ <widget name="WP_Widget_Calendar">
155
+ <fields>
156
+ <field type="Calendar title">title</field>
157
+ </fields>
158
+ </widget>
159
+ <widget name="WP_Widget_Categories">
160
+ <fields>
161
+ <field type="Categories title">title</field>
162
+ </fields>
163
+ </widget>
164
+ <widget name="WP_Widget_Custom_HTML">
165
+ <fields>
166
+ <field type="Custom HTML title">title</field>
167
+ <field type="Custom HTML content" editor_type="AREA">content</field>
168
+ </fields>
169
+ </widget>
170
+ <widget name="WP_Widget_Media_Gallery">
171
+ <fields>
172
+ <field type="Gallery title">title</field>
173
+ </fields>
174
+ </widget>
175
+ <widget name="WP_Widget_Media_Image">
176
+ <fields>
177
+ <field type="Image title">title</field>
178
+ <field type="Image caption">caption</field>
179
+ <field type="Image URL" editor_type="LINK">url</field>
180
+ </fields>
181
+ </widget>
182
+ <widget name="WP_Widget_Meta">
183
+ <fields>
184
+ <field type="Meta title">title</field>
185
+ </fields>
186
+ </widget>
187
+ <widget name="WP_Widget_Text_Icl">
188
+ <fields>
189
+ <field type="Title">title</field>
190
+ <field type="Text" editor_type="AREA">text</field>
191
+ </fields>
192
+ </widget>
193
+ <widget name="WP_Nav_Menu_Widget">
194
+ <fields>
195
+ <field type="Menu title">title</field>
196
+ </fields>
197
+ </widget>
198
+ <widget name="WP_Widget_Pages">
199
+ <fields>
200
+ <field type="Pages title">title</field>
201
+ </fields>
202
+ </widget>
203
+ <widget name="WP_Widget_RSS">
204
+ <fields>
205
+ <field type="RSS title">title</field>
206
+ <field type="RSS URL" editor_type="LINK">url</field>
207
+ </fields>
208
+ </widget>
209
+ <widget name="WP_Widget_Recent_Comments">
210
+ <fields>
211
+ <field type="Comments title">title</field>
212
+ </fields>
213
+ </widget>
214
+ <widget name="WP_Widget_Recent_Posts">
215
+ <fields>
216
+ <field type="Posts title">title</field>
217
+ </fields>
218
+ </widget>
219
+ <widget name="WP_Widget_Search">
220
+ <fields>
221
+ <field type="Search title">title</field>
222
+ </fields>
223
+ </widget>
224
+ <widget name="WP_Widget_Tag_Cloud">
225
+ <fields>
226
+ <field type="Tag cloud title">title</field>
227
+ </fields>
228
+ </widget>
229
+ <widget name="WP_Widget_Text">
230
+ <fields>
231
+ <field type="Title">title</field>
232
+ <field type="Text" editor_type="AREA">text</field>
233
+ </fields>
234
+ </widget>
235
+ <widget name="SiteOrigin_Widget_Accordion_Widget">
236
+ <fields>
237
+ <field type="Accordion title">title</field>
238
+ </fields>
239
+ <fields-in-item items_of="panels">
240
+ <field type="Accordion panel title">title</field>
241
+ <field type="Accordion panel content_text" editor_type="VISUAL">content_text</field>
242
+ <field type="Accordion panel content_layout">content_layout</field>
243
+ </fields-in-item>
244
+ </widget>
245
+ <widget name="SiteOrigin_Widget_Anything_Carousel_Widget">
246
+ <fields>
247
+ <field type="Anything carousel title">title</field>
248
+ </fields>
249
+ <fields-in-item items_of="items">
250
+ <field type="Anything carousel panel title">title</field>
251
+ <field type="Anything carousel panel content_text" editor_type="VISUAL">content_text</field>
252
+ <field type="Anything carousel panel content_layout">content_layout</field>
253
+ </fields-in-item>
254
+ </widget>
255
+ <widget name="SiteOrigin_Widget_Button_Widget">
256
+ <fields>
257
+ <field type="Button text">text</field>
258
+ <field type="Button URL" editor_type="LINK">url</field>
259
+ <field type="Button title">attributes>title</field>
260
+ </fields>
261
+ </widget>
262
+ <widget name="SiteOrigin_Widgets_ContactForm_Widget">
263
+ <fields>
264
+ <field type="Contact form title">title</field>
265
+ <field type="Contact form default subject">settings>default_subject</field>
266
+ <field type="Contact form subject prefix">settings>subject_prefix</field>
267
+ <field type="Contact form success message">settings>success_message</field>
268
+ <field type="Contact form submit text">settings>submit_text</field>
269
+ </fields>
270
+ <fields-in-item items_of="fields">
271
+ <field type="Contact form field label">label</field>
272
+ <field type="Contact form field description">description</field>
273
+ <field type="Contact form field missing">required>missing_message</field>
274
+ </fields-in-item>
275
+ </widget>
276
+ <widget name="SiteOrigin_Widget_Cta_Widget">
277
+ <fields>
278
+ <field type="CTA title">title</field>
279
+ <field type="CTA sub title">sub_title</field>
280
+ <field type="CTA button text">button>text</field>
281
+ <field type="CTA button URL" editor_type="LINK">button>destination_url</field>
282
+ <field type="CTA button title">attributes>title</field>
283
+ </fields>
284
+ </widget>
285
+ <widget name="SiteOrigin_Widget_Editor_Widget">
286
+ <fields>
287
+ <field type="Editor title">title</field>
288
+ <field type="Editor content" editor_type="VISUAL">text</field>
289
+ </fields>
290
+ </widget>
291
+ <widget name="SiteOrigin_Widget_Features_Widget">
292
+ <fields-in-item items_of="features">
293
+ <field type="Feature title">title</field>
294
+ <field type="Feature text" editor_type="VISUAL">text</field>
295
+ <field type="Feature icon title">icon_title</field>
296
+ <field type="Feature more text">more_text</field>
297
+ <field type="Feature more URL" editor_type="LINK">more_url</field>
298
+ </fields-in-item>
299
+ </widget>
300
+ <widget name="SiteOrigin_Widget_GoogleMap_Widget">
301
+ <fields-in-item items_of="markers>marker_positions">
302
+ <field type="Map marker info" editor_type="VISUAL">info</field>
303
+ </fields-in-item>
304
+ </widget>
305
+ <widget name="SiteOrigin_Widget_Headline_Widget">
306
+ <fields>
307
+ <field type="Headline text">headline>text</field>
308
+ <field type="Headline URL" editor_type="LINK">headline>destination_url</field>
309
+ <field type="Sub headline text">sub_headline>text</field>
310
+ <field type="Sub headline URL" editor_type="LINK">sub_headline>destination_url</field>
311
+ </fields>
312
+ </widget>
313
+ <widget name="SiteOrigin_Widget_Hero_Widget">
314
+ <fields-in-item items_of="frames">
315
+ <field type="Hero content" editor_type="VISUAL">content</field>
316
+ </fields-in-item>
317
+ <fields-in-item items_of="frames>buttons">
318
+ <field type="Hero button text">button>text</field>
319
+ <field type="Hero button link" editor_type="LINK">button>url</field>
320
+ <field type="Hero button link title">button>attributes>title</field>
321
+ </fields-in-item>
322
+ </widget>
323
+ <widget name="SiteOrigin_Widget_Icon_Widget">
324
+ <fields>
325
+ <field type="Icon title">title</field>
326
+ <field type="Icon URL" editor_type="LINK">url</field>
327
+ </fields>
328
+ </widget>
329
+ <widget name="SiteOrigin_Widget_Image_Widget">
330
+ <fields>
331
+ <field type="Image title">title</field>
332
+ <field type="Image alt">alt</field>
333
+ <field type="Image URL" editor_type="LINK">url</field>
334
+ </fields>
335
+ </widget>
336
+ <widget name="SiteOrigin_Widgets_ImageGrid_Widget">
337
+ <fields-in-item items_of="images">
338
+ <field type="Image title">title</field>
339
+ <field type="Image alt">alt</field>
340
+ <field type="Image URL" editor_type="LINK">url</field>
341
+ </fields-in-item>
342
+ </widget>
343
+ <widget name="SiteOrigin_Widget_PostCarousel_Widget">
344
+ <fields>
345
+ <field type="Post carousel title">title</field>
346
+ </fields>
347
+ </widget>
348
+ <widget name="SiteOrigin_Widget_PriceTable_Widget">
349
+ <fields>
350
+ <field type="Price table title">title</field>
351
+ </fields>
352
+ <fields-in-item items_of="columns">
353
+ <field type="Price title">title</field>
354
+ <field type="Price subtitle">subtitle</field>
355
+ <field type="Price image title">image_title</field>
356
+ <field type="Price image alt">image_alt</field>
357
+ <field type="Price per">per</field>
358
+ <field type="Price button text">button_text</field>
359
+ <field type="Price button URL" editor_type="LINK">url</field>
360
+ </fields-in-item>
361
+ <fields-in-item items_of="columns>features">
362
+ <field type="Feature text">features>text</field>
363
+ <field type="Feature hover text">features>hover_text</field>
364
+ </fields-in-item>
365
+ </widget>
366
+ <widget name="SiteOrigin_Widget_Simple_Masonry_Widget">
367
+ <fields>
368
+ <field type="Simple masonry title">title</field>
369
+ </fields>
370
+ <fields-in-item items_of="items">
371
+ <field type="Simple masonry item title">title</field>
372
+ <field type="Simple masonry item URL" editor_type="LINK">url</field>
373
+ </fields-in-item>
374
+ </widget>
375
+ <widget name="SiteOrigin_Widget_Slider_Widget">
376
+ <fields-in-item items_of="frames">
377
+ <field type="Slide URL" editor_type="LINK">url</field>
378
+ </fields-in-item>
379
+ </widget>
380
+ <widget name="SiteOrigin_Widget_SocialMediaButtons_Widget">
381
+ <fields>
382
+ <field type="Social media buttons title">title</field>
383
+ </fields>
384
+ <fields-in-item items_of="networks">
385
+ <field type="Social Network URL" editor_type="LINK">url</field>
386
+ <field type="Social Network icon title">icon_title</field>
387
+ </fields-in-item>
388
+ </widget>
389
+ <widget name="SiteOrigin_Widget_Tabs_Widget">
390
+ <fields>
391
+ <field type="Tab title">title</field>
392
+ </fields>
393
+ <fields-in-item items_of="tabs">
394
+ <field type="Tabs title">title</field>
395
+ <field type="Tab content_text" editor_type="VISUAL">content_text</field>
396
+ <field type="Tab content_layout">content_layout</field>
397
+ </fields-in-item>
398
+ </widget>
399
+ <widget name="SiteOrigin_Widget_Taxonomy_Widget">
400
+ <fields>
401
+ <field type="Taxonomy title">title</field>
402
+ <field type="Taxonomy label">label</field>
403
+ </fields>
404
+ </widget>
405
+ <widget name="SiteOrigin_Widgets_Testimonials_Widget">
406
+ <fields>
407
+ <field type="Testimonials title">title</field>
408
+ </fields>
409
+ <fields-in-item items_of="testimonials">
410
+ <field type="Testimonial text" editor_type="VISUAL">text</field>
411
+ <field type="Testimonial URL" editor_type="LINK">url</field>
412
+ </fields-in-item>
413
+ </widget>
414
+ <widget name="SiteOrigin_Widget_Video_Widget">
415
+ <fields>
416
+ <field type="Video title">title</field>
417
+ </fields>
418
+ </widget>
419
+ <widget name="SiteOrigin_Widget_PriceTable_Widget">
420
+ <fields>
421
+ <field type="Price table title">title</field>
422
+ </fields>
423
+ <fields-in-item items_of="columns">
424
+ <field type="Price title">title</field>
425
+ <field type="Price subtitle">subtitle</field>
426
+ <field type="Price image title">image_title</field>
427
+ <field type="Price image alt">image_alt</field>
428
+ <field type="Price per">per</field>
429
+ <field type="Price button text">button</field>
430
+ <field type="Price button URL" editor_type="LINK">url</field>
431
+ </fields-in-item>
432
+ <fields-in-item items_of="columns>features">
433
+ <field type="Feature text">text</field>
434
+ <field type="Feature hover text">hover</field>
435
+ </fields-in-item>
436
+ </widget>
437
+ <widget name="SiteOrigin_Widget_GoogleMap_Widget">
438
+ <fields-in-item items_of="markers>marker_positions">
439
+ <field type="Map marker info" editor_type="VISUAL">info</field>
440
+ </fields-in-item>
441
+ </widget>
442
+ </siteorigin-widgets>
443
+ </wpml-config>