SiteOrigin Widgets Bundle - Version 1.38.0

Version Description

  • 14 July 2022 =
  • Anything Carousel: Added Adaptive Height setting.
  • Hero: Prevented padding reset on mobile if mobile values are empty.
  • Developer: Allow plugins to filter global settings defaults via siteorigin_widgets_settings_form.
Download this release

Release Info

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

Code changes from version 1.37.1 to 1.38.0

base/siteorigin-widget.class.php CHANGED
@@ -64,7 +64,7 @@ abstract class SiteOrigin_Widget extends WP_Widget {
64
  'width' => 800,
65
  ) );
66
 
67
- if( empty( $this->widget_class ) ) {
68
  $this->widget_class = get_class( $this );
69
  }
70
 
@@ -78,7 +78,7 @@ abstract class SiteOrigin_Widget extends WP_Widget {
78
  /**
79
  * Initialize this widget in whatever way we need to. Run before rendering widget or form.
80
  */
81
- function initialize(){
82
 
83
  }
84
 
@@ -87,7 +87,7 @@ abstract class SiteOrigin_Widget extends WP_Widget {
87
  *
88
  * @return array
89
  */
90
- function get_widget_form(){
91
  return method_exists( $this, 'initialize_form' ) ? $this->initialize_form() : array();
92
  }
93
 
@@ -109,7 +109,7 @@ abstract class SiteOrigin_Widget extends WP_Widget {
109
  * @param string $form_type
110
  * @return bool
111
  */
112
- function has_form( $form_type = 'widget' ){
113
  return method_exists( $this, 'get_' . $form_type . '_form' );
114
  }
115
 
@@ -139,13 +139,13 @@ abstract class SiteOrigin_Widget extends WP_Widget {
139
  * @return mixed
140
  */
141
  function form_options( $parent = false ) {
142
- if( empty( $this->form_options ) ) {
143
  // If the widget doesn't have form_options defined from the constructor, then it might be defining them in the get_widget_form function
144
  $this->form_options = $this->get_cached_widget_form();
145
  }
146
 
147
  $form_options = $this->modify_form( $this->form_options );
148
- if( !empty($parent) ) {
149
  $form_options = $parent->modify_child_widget_form( $form_options, $this );
150
  }
151
 
@@ -162,7 +162,7 @@ abstract class SiteOrigin_Widget extends WP_Widget {
162
  * @param array $instance
163
  */
164
  public function widget( $args, $instance ) {
165
- if( empty( $this->form_options ) ) {
166
  $form_options = $this->get_cached_widget_form();
167
  }
168
  else {
@@ -193,28 +193,28 @@ abstract class SiteOrigin_Widget extends WP_Widget {
193
 
194
  // Storage hash allows templates to get access to
195
  $template_vars[ 'storage_hash' ] = '';
196
- if( !empty($this->widget_options['instance_storage']) ) {
197
  $stored_instance = $this->modify_stored_instance($instance);
198
  // We probably don't want panels_info
199
  unset( $stored_instance['panels_info'] );
200
 
201
  $template_vars[ 'storage_hash' ] = substr( md5( serialize( $stored_instance ) ), 0, 8 );
202
- if( !empty( $stored_instance ) && !$this->is_preview( $instance ) ) {
203
  // Store this if we have a non empty instance and are not previewing
204
  set_transient('sow_inst[' . $this->id_base . '][' . $template_vars['storage_hash'] . ']', $stored_instance, 7*86400);
205
  }
206
  }
207
 
208
- if( ! method_exists( $this, 'get_html_content' ) ) {
209
  $template_file = siteorigin_widget_get_plugin_dir_path( $this->id_base ) . $this->get_template_dir( $instance ) . '/' . $this->get_template_name( $instance ) . '.php';
210
  $template_file = apply_filters('siteorigin_widgets_template_file_' . $this->id_base, $template_file, $instance, $this );
211
  $template_file = realpath($template_file);
212
 
213
  // Don't accept non PHP files
214
- if( substr($template_file, -4) != '.php' ) $template_file = false;
215
 
216
  ob_start();
217
- if( !empty($template_file) && file_exists($template_file) ) {
218
  extract( $template_vars );
219
  @ include $template_file;
220
  }
@@ -280,7 +280,7 @@ abstract class SiteOrigin_Widget extends WP_Widget {
280
  * @return string The CSS name
281
  */
282
  function generate_and_enqueue_instance_styles( $instance ) {
283
- if( empty( $form_options ) ) {
284
  $form_options = $this->get_cached_widget_form();
285
  }
286
  else {
@@ -288,7 +288,7 @@ abstract class SiteOrigin_Widget extends WP_Widget {
288
  }
289
 
290
  // We'll assume empty instances don't have styles
291
- if( empty($instance) ) return;
292
 
293
  // Make sure all the default values are in place
294
  $instance = $this->add_defaults( $form_options, $instance );
@@ -298,7 +298,7 @@ abstract class SiteOrigin_Widget extends WP_Widget {
298
 
299
  $upload_dir = wp_upload_dir();
300
 
301
- if( !empty($style) ) {
302
  $hash = $this->get_style_hash( $instance );
303
  $css_name = $this->id_base . '-' . $style . '-' . $hash . ( ! empty( $instance['panels_info'] ) && ! isset( $instance['panels_info']['builder'] ) ? '-' . get_the_id() : '' );
304
 
@@ -313,7 +313,7 @@ abstract class SiteOrigin_Widget extends WP_Widget {
313
  $this->save_css( $instance );
314
  }
315
 
316
- if( file_exists( $upload_dir['basedir'] . '/siteorigin-widgets/' . $css_name .'.css' ) ) {
317
  if ( ! wp_style_is( $css_name ) ) {
318
  wp_enqueue_style(
319
  $css_name,
@@ -341,7 +341,7 @@ abstract class SiteOrigin_Widget extends WP_Widget {
341
  return $css_name;
342
  }
343
 
344
- private function is_customize_preview(){
345
  global $wp_customize;
346
  return is_a( $wp_customize, 'WP_Customize_Manager' ) && $wp_customize->is_preview();
347
  }
@@ -370,7 +370,7 @@ abstract class SiteOrigin_Widget extends WP_Widget {
370
  *
371
  * @return array
372
  */
373
- public function get_template_variables( $instance, $args ){
374
  return array();
375
  }
376
 
@@ -381,8 +381,8 @@ abstract class SiteOrigin_Widget extends WP_Widget {
381
  * @param $args
382
  * @param $instance
383
  */
384
- public function sub_widget( $class, $args, $instance, $return = false ){
385
- if(!class_exists($class)) return;
386
  $widget = new $class;
387
 
388
  $args['before_widget'] = '';
@@ -404,35 +404,35 @@ abstract class SiteOrigin_Widget extends WP_Widget {
404
  * @param $form
405
  * @param $instance
406
  */
407
- function add_defaults( $form, $instance, $level = 0 ){
408
- if( $level > 10 ) return $instance;
409
 
410
- foreach($form as $id => $field) {
411
 
412
- if( $field['type'] == 'repeater' ) {
413
- if( !empty($instance[$id]) ) {
414
- foreach( array_keys($instance[$id]) as $i ){
415
  $instance[$id][$i] = $this->add_defaults( $field['fields'], $instance[$id][$i], $level + 1 );
416
  }
417
  }
418
  }
419
- else if( $field['type'] == 'section' ) {
420
- if( empty($instance[$id]) ) {
421
  $instance[$id] = array();
422
  }
423
  $instance[$id] = $this->add_defaults( $field['fields'], $instance[$id], $level + 1 );
424
  }
425
- else if( $field['type'] == 'measurement' ) {
426
- if( ! isset( $instance[$id] ) ) {
427
  $instance[$id] = isset( $field['default'] ) ? $field['default'] : '';
428
  }
429
  if ( empty( $instance[ $id . '_unit' ] ) ) {
430
  $instance[ $id . '_unit' ] = 'px';
431
  }
432
  }
433
- else if ( $field['type'] == 'order') {
434
  if ( empty( $instance[$id] ) ) {
435
- if( ! empty( $field['default'] ) ) {
436
  $instance[$id] = $field['default'];
437
  } else {
438
  // If no default order is specified, just use the order of the options.
@@ -441,7 +441,7 @@ abstract class SiteOrigin_Widget extends WP_Widget {
441
  }
442
  }
443
  else {
444
- if( !isset( $instance[$id] ) ) {
445
  $instance[$id] = isset( $field['default'] ) ? $field['default'] : '';
446
  }
447
  }
@@ -459,8 +459,8 @@ abstract class SiteOrigin_Widget extends WP_Widget {
459
  * @return string|void
460
  */
461
  public function form( $instance, $form_type = 'widget' ) {
462
- if( $form_type == 'widget' ) {
463
- if( empty( $this->form_options ) ) {
464
  $this->form_options = $this->form_options();
465
  }
466
  $form_options = $this->form_options;
@@ -472,7 +472,7 @@ abstract class SiteOrigin_Widget extends WP_Widget {
472
  $instance = $this->modify_instance($instance);
473
  $instance = $this->add_defaults( $form_options, $instance );
474
 
475
- if( empty( $this->number ) ) {
476
  // Compatibility with form widgets.
477
  $this->number = 1;
478
  }
@@ -485,7 +485,7 @@ abstract class SiteOrigin_Widget extends WP_Widget {
485
  $form_id = 'siteorigin_widget_form_' . md5( $id );
486
  $class_name = str_replace( '_', '-', strtolower( $this->widget_class ) );
487
 
488
- if( empty( $instance['_sow_form_id'] ) ) {
489
  $instance['_sow_form_id'] = $id;
490
  }
491
  ?>
@@ -497,12 +497,12 @@ abstract class SiteOrigin_Widget extends WP_Widget {
497
  /* @var $field_factory SiteOrigin_Widget_Field_Factory */
498
  $field_factory = SiteOrigin_Widget_Field_Factory::single();
499
  $fields_javascript_variables = array();
500
- foreach( $form_options as $field_name => $field_options ) {
501
  /* @var $field SiteOrigin_Widget_Field_Base */
502
  $field = $field_factory->create_field( $field_name, $field_options, $this );
503
  $field->render( isset( $instance[$field_name] ) ? $instance[$field_name] : null, $instance );
504
  $field_js_vars = $field->get_javascript_variables();
505
- if( ! empty( $field_js_vars ) ) {
506
  $fields_javascript_variables[$field_name] = $field_js_vars;
507
  }
508
  $field->enqueue_scripts();
@@ -516,29 +516,29 @@ abstract class SiteOrigin_Widget extends WP_Widget {
516
  <?php $this->scripts_loading_message() ?>
517
  </div>
518
 
519
- <?php if( $this->show_preview_button() ) : ?>
520
  <div class="siteorigin-widget-preview" style="display: none">
521
  <a href="#" class="siteorigin-widget-preview-button button-secondary"><?php _e('Preview', 'so-widgets-bundle') ?></a>
522
  </div>
523
  <?php endif; ?>
524
 
525
- <?php if( !empty( $this->widget_options['help'] ) ) : ?>
526
  <a href="<?php echo sow_esc_url($this->widget_options['help']) ?>" class="siteorigin-widget-help-link siteorigin-panels-help-link" target="_blank" rel="noopener noreferrer"><?php _e('Help', 'so-widgets-bundle') ?></a>
527
  <?php endif; ?>
528
 
529
  <script type="text/javascript">
530
- ( function($) {
531
- if(typeof window.sow_field_javascript_variables == 'undefined') window.sow_field_javascript_variables = {};
532
  window.sow_field_javascript_variables["<?php echo addslashes( $this->widget_class ) ?>"] = <?php echo json_encode( $fields_javascript_variables ) ?>;
533
 
534
- if( typeof $.fn.sowSetupForm != 'undefined' ) {
535
  $('#<?php echo $form_id ?>').sowSetupForm();
536
  }
537
  else {
538
  // Init once admin scripts have been loaded
539
- $( document).on('sowadminloaded', function(){
540
  $('#<?php echo $form_id ?>').sowSetupForm();
541
- });
542
  }
543
  } )( jQuery );
544
  </script>
@@ -550,8 +550,8 @@ abstract class SiteOrigin_Widget extends WP_Widget {
550
  /**
551
  * Display the teaser message.
552
  */
553
- function display_teaser_message(){
554
- if(
555
  method_exists( $this, 'get_form_teaser' ) &&
556
  ( $teaser = $this->get_form_teaser() )
557
  ) {
@@ -560,7 +560,7 @@ abstract class SiteOrigin_Widget extends WP_Widget {
560
  }
561
 
562
  $dismissed = get_user_meta( get_current_user_id(), 'teasers_dismissed', true );
563
- if( empty( $dismissed[ $this->id_base ] ) ) {
564
  $dismiss_url = add_query_arg( array(
565
  'action' => 'so_dismiss_widget_teaser',
566
  'widget' => $this->id_base,
@@ -586,15 +586,15 @@ abstract class SiteOrigin_Widget extends WP_Widget {
586
  *
587
  * @return bool
588
  */
589
- function display_siteorigin_premium_teaser(){
590
  return apply_filters( 'siteorigin_premium_upgrade_teaser', true ) &&
591
  ! defined( 'SITEORIGIN_PREMIUM_VERSION' );
592
  }
593
 
594
- function scripts_loading_message(){
595
  ?>
596
- <p><strong><?php _e('This widget has scripts and styles that need to be loaded before you can use it. Please save and reload your current page.', 'so-widgets-bundle') ?></strong></p>
597
- <p><strong><?php _e('You will only need to do this once.', 'so-widgets-bundle') ?></strong></p>
598
  <?php
599
  }
600
 
@@ -605,7 +605,7 @@ abstract class SiteOrigin_Widget extends WP_Widget {
605
  */
606
  function enqueue_scripts( $form_type = false ) {
607
 
608
- if( ! wp_script_is('siteorigin-widget-admin') ) {
609
  wp_enqueue_style( 'wp-color-picker' );
610
  wp_enqueue_style( 'siteorigin-widget-admin', plugin_dir_url(SOW_BUNDLE_BASE_FILE).'base/css/admin.css', array( 'media-views' ), SOW_BUNDLE_VERSION );
611
 
@@ -642,7 +642,7 @@ abstract class SiteOrigin_Widget extends WP_Widget {
642
  }
643
  }
644
 
645
- if( !empty( $form_type ) && $this->has_form( $form_type ) ) {
646
  // Enqueue field scripts for the given form type
647
  $form_options = $this->get_form( $form_type );
648
  $this->enqueue_field_scripts( $form_options );
@@ -653,16 +653,16 @@ abstract class SiteOrigin_Widget extends WP_Widget {
653
  do_action( 'siteorigin_widgets_enqueue_admin_scripts_' . $this->id_base, $this );
654
  }
655
 
656
- function enqueue_field_scripts( $fields ){
657
  /* @var $field_factory SiteOrigin_Widget_Field_Factory */
658
  $field_factory = SiteOrigin_Widget_Field_Factory::single();
659
 
660
- foreach( $fields as $field_name => $field_options ) {
661
  /* @var $field SiteOrigin_Widget_Field_Base */
662
  $field = $field_factory->create_field( $field_name, $field_options, $this );
663
  $field->enqueue_scripts();
664
 
665
- if( !empty( $field_options['fields'] ) ) {
666
  $this->enqueue_field_scripts( $field_options['fields'] );
667
  }
668
  }
@@ -671,7 +671,7 @@ abstract class SiteOrigin_Widget extends WP_Widget {
671
  /**
672
  * Display all the admin stuff for the footer
673
  */
674
- function footer_admin_templates(){
675
  ?>
676
  <script type="text/template" id="so-widgets-bundle-tpl-preview-dialog">
677
  <div class="so-widgets-dialog">
@@ -697,7 +697,7 @@ abstract class SiteOrigin_Widget extends WP_Widget {
697
  <?php
698
 
699
  // Give other plugins a chance to add their own
700
- do_action('siteorigin_widgets_footer_admin_templates');
701
  }
702
 
703
  /**
@@ -709,10 +709,10 @@ abstract class SiteOrigin_Widget extends WP_Widget {
709
  * @return array|void
710
  */
711
  public function update( $new_instance, $old_instance, $form_type = 'widget' ) {
712
- if( !class_exists('SiteOrigin_Widgets_Color_Object') ) require plugin_dir_path( __FILE__ ).'inc/color.php';
713
 
714
- if( $form_type == 'widget' ) {
715
- if( empty( $this->form_options ) ) {
716
  $this->form_options = $this->form_options();
717
  }
718
  $form_options = $this->form_options;
@@ -721,12 +721,12 @@ abstract class SiteOrigin_Widget extends WP_Widget {
721
  $form_options = $this->get_form( $form_type );
722
  }
723
 
724
- if( ! empty( $form_options ) ) {
725
  /* @var $field_factory SiteOrigin_Widget_Field_Factory */
726
  $field_factory = SiteOrigin_Widget_Field_Factory::single();
727
  foreach ( $form_options as $field_name => $field_options ) {
728
  /* @var $field SiteOrigin_Widget_Field_Base */
729
- if ( !empty( $this->fields ) && !empty( $this->fields[$field_name] ) ) {
730
  $field = $this->fields[$field_name];
731
  }
732
  else {
@@ -760,7 +760,7 @@ abstract class SiteOrigin_Widget extends WP_Widget {
760
  * @param $instance
761
  * @return bool|string
762
  */
763
- private function save_css( $instance ){
764
  require_once ABSPATH . 'wp-admin/includes/file.php';
765
 
766
  $style = $this->get_style_name($instance);
@@ -808,10 +808,10 @@ abstract class SiteOrigin_Widget extends WP_Widget {
808
  /**
809
  * Clears CSS for a specific instance
810
  */
811
- private function delete_css( $instance ){
812
  require_once ABSPATH . 'wp-admin/includes/file.php';
813
 
814
- if( WP_Filesystem() ) {
815
  global $wp_filesystem;
816
  $upload_dir = wp_upload_dir();
817
 
@@ -837,7 +837,7 @@ abstract class SiteOrigin_Widget extends WP_Widget {
837
  *
838
  * @var bool $force_delete Whether to forcefully clear the file cache.
839
  */
840
- public static function clear_file_cache( $force_delete = false ){
841
  SiteOrigin_Widgets_Bundle::single()->clear_file_cache( $force_delete, self::$css_expire );
842
  }
843
 
@@ -847,13 +847,13 @@ abstract class SiteOrigin_Widget extends WP_Widget {
847
  * @param $instance
848
  * @return string
849
  */
850
- public function get_instance_css( $instance ){
851
- if( !class_exists( 'SiteOrigin_LessC' ) ) require plugin_dir_path( __FILE__ ) . 'inc/lessc.inc.php';
852
- if( !class_exists('SiteOrigin_Widgets_Less_Functions') ) require plugin_dir_path( __FILE__ ).'inc/less-functions.php';
853
 
854
- if( !method_exists( $this, 'get_less_content' ) ) {
855
  $style_name = $this->get_style_name($instance);
856
- if( empty($style_name) ) return '';
857
 
858
  $less_file = siteorigin_widget_get_plugin_dir_path( $this->id_base ).'styles/'.$style_name . '.less';
859
  $less_file = apply_filters( 'siteorigin_widgets_less_file_' . $this->id_base, $less_file, $instance, $this );
@@ -866,7 +866,7 @@ abstract class SiteOrigin_Widget extends WP_Widget {
866
  }
867
 
868
  // Substitute the variables
869
- if( !class_exists('SiteOrigin_Widgets_Color_Object') ) require plugin_dir_path( __FILE__ ) . 'inc/color.php';
870
 
871
  // Lets widgets insert their own custom generated LESS
872
  $less = preg_replace_callback( '/\.widget-function\((.*)\);/', array( $this, 'less_widget_inject' ), $less );
@@ -879,10 +879,10 @@ abstract class SiteOrigin_Widget extends WP_Widget {
879
  $less = apply_filters( 'siteorigin_widgets_styles_vars', $less, $vars, $this->widget_class, $instance );
880
  $less = apply_filters( 'siteorigin_widgets_less_vars_' . $this->id_base, $less, $vars, $instance, $this );
881
 
882
- if( !empty( $vars ) ){
883
- foreach($vars as $name => $value) {
884
  // Ignore empty string, false and null values (but keep '0')
885
- if( $value === '' || $value === false || $value === null ) continue;
886
 
887
  $less = preg_replace('/\@'.preg_quote($name).' *\:.*?;/', '@'.$name.': '.$value.';', $less);
888
  }
@@ -893,7 +893,7 @@ abstract class SiteOrigin_Widget extends WP_Widget {
893
 
894
  $css = '';
895
 
896
- if( ! empty( $less ) ) {
897
  $style = $this->get_style_name( $instance );
898
  $hash = $this->get_style_hash( $instance );
899
  $css_name = $this->id_base . '-' . $style . '-' . $hash . ( ! empty( $instance['panels_info'] ) && ! isset( $instance['panels_info']['builder'] ) ? '-' . get_the_id() : '' );
@@ -913,7 +913,7 @@ abstract class SiteOrigin_Widget extends WP_Widget {
913
  $compiler = apply_filters( 'siteorigin_widgets_less_compiler', $compiler, $instance, $this );
914
 
915
  try {
916
- if( method_exists( $compiler, 'compile' ) ) {
917
  $css = @ $compiler->compile( $less );
918
  }
919
  }
@@ -989,18 +989,18 @@ abstract class SiteOrigin_Widget extends WP_Widget {
989
  *
990
  * @return mixed|string
991
  */
992
- private function less_widget_inject($matches){
993
  // We're going to lazily split the arguments by comma
994
- $args = explode(',', $matches[1]);
995
- if( empty($args[0]) ) return '';
996
 
997
  // Shift the function name from the arguments
998
- $func = 'less_' . trim( array_shift($args) , '\'"');
999
- if( !method_exists($this, $func) ) return '';
1000
 
1001
  // Finally call the function and include the
1002
- $args = array_map('trim', $args);
1003
- return call_user_func( array($this, $func), $this->current_instance, $args );
1004
  }
1005
 
1006
  /**
@@ -1011,16 +1011,16 @@ abstract class SiteOrigin_Widget extends WP_Widget {
1011
  * @return mixed|string
1012
  */
1013
  public function so_get_field_name( $field_name, $container = array() ) {
1014
- if( empty($container) ) {
1015
  $name = $this->get_field_name( $field_name );
1016
  }
1017
  else {
1018
  // We also need to add the container fields
1019
  $container_extras = '';
1020
- foreach($container as $r) {
1021
  $container_extras .= '[' . $r['name'] . ']';
1022
 
1023
- if( $r['type'] == 'repeater' ) {
1024
  $container_extras .= '[#' . $r['name'] . '#]';
1025
  }
1026
  }
@@ -1045,7 +1045,7 @@ abstract class SiteOrigin_Widget extends WP_Widget {
1045
  * @return string
1046
  */
1047
  public function so_get_field_id( $field_name, $container = array(), $is_template = false ) {
1048
- if( empty($container) ) {
1049
  return $this->get_field_id($field_name);
1050
  }
1051
  else {
@@ -1074,8 +1074,8 @@ abstract class SiteOrigin_Widget extends WP_Widget {
1074
  *
1075
  * @deprecated Will be removed in version 2.0
1076
  */
1077
- function parse_markdown( $markdown ){
1078
- if( !class_exists('Parsedown') ) include plugin_dir_path(__FILE__).'inc/Parsedown.php';
1079
  $parser = new Parsedown();
1080
 
1081
  return $parser->text($markdown);
@@ -1089,8 +1089,8 @@ abstract class SiteOrigin_Widget extends WP_Widget {
1089
  */
1090
  function get_style_hash( $instance ) {
1091
  $style_hash = apply_filters('siteorigin_widgets_widget_style_hash', '', $this);
1092
- if( empty( $style_hash ) ) {
1093
- if( method_exists( $this, 'get_style_hash_variables' ) ) {
1094
  $vars = apply_filters( 'siteorigin_widgets_hash_variables_' . $this->id_base, $this->get_style_hash_variables( $instance ), $instance, $this );
1095
  } else {
1096
  $vars = apply_filters( 'siteorigin_widgets_less_variables_' . $this->id_base, $this->get_less_variables( $instance ), $instance, $this );
@@ -1138,7 +1138,7 @@ abstract class SiteOrigin_Widget extends WP_Widget {
1138
  * @param $instance
1139
  * @return array
1140
  */
1141
- function get_less_variables( $instance ){
1142
  return array();
1143
  }
1144
 
@@ -1149,7 +1149,7 @@ abstract class SiteOrigin_Widget extends WP_Widget {
1149
  *
1150
  * @return mixed
1151
  */
1152
- function modify_stored_instance( $instance ){
1153
  return $instance;
1154
  }
1155
 
@@ -1193,14 +1193,14 @@ abstract class SiteOrigin_Widget extends WP_Widget {
1193
  *
1194
  * @return mixed
1195
  */
1196
- function modify_instance( $instance ){
1197
  return $instance;
1198
  }
1199
 
1200
  /**
1201
  * Can be overwritten by child widgets to make variables available to javascript via ajax calls. These are designed to be used in the admin.
1202
  */
1203
- function get_javascript_variables(){
1204
 
1205
  }
1206
 
@@ -1209,7 +1209,7 @@ abstract class SiteOrigin_Widget extends WP_Widget {
1209
  *
1210
  * @param array $scripts an array of scripts. Each element is an array that corresponds to wp_enqueue_script arguments
1211
  */
1212
- public function register_frontend_scripts( $scripts ){
1213
  foreach ( $scripts as $script ) {
1214
  if ( ! isset( $this->frontend_scripts[ $script[0] ] ) ) {
1215
  $this->frontend_scripts[$script[0]] = $script;
@@ -1234,7 +1234,7 @@ abstract class SiteOrigin_Widget extends WP_Widget {
1234
  $f_script[0],
1235
  isset( $f_script[1] ) ? $f_script[1] : false,
1236
  isset( $f_script[2] ) ? $f_script[2] : array(),
1237
- !empty( $f_script[3] ) ? $f_script[3] : SOW_BUNDLE_VERSION,
1238
  isset( $f_script[4] ) ? $f_script[4] : false
1239
  );
1240
  }
@@ -1271,7 +1271,7 @@ abstract class SiteOrigin_Widget extends WP_Widget {
1271
  $f_style[0],
1272
  isset( $f_style[1] ) ? $f_style[1] : false,
1273
  isset( $f_style[2] ) ? $f_style[2] : array(),
1274
- !empty( $f_style[3] ) ? $f_style[3] : SOW_BUNDLE_VERSION,
1275
  isset( $f_style[4] ) ? $f_style[4] : "all"
1276
  );
1277
  }
@@ -1294,7 +1294,7 @@ abstract class SiteOrigin_Widget extends WP_Widget {
1294
  /**
1295
  * Can be overwritten by child widgets to enqueue admin scripts and styles if necessary.
1296
  */
1297
- function enqueue_admin_scripts(){ }
1298
 
1299
  /**
1300
  * Check if we're currently in a preview
@@ -1305,15 +1305,15 @@ abstract class SiteOrigin_Widget extends WP_Widget {
1305
  */
1306
  function is_preview( $instance = array() ) {
1307
  // Check if the instance is a preview
1308
- if( !empty( $instance[ 'is_preview' ] ) ) return true;
1309
 
1310
  // Check if the general request is a preview
1311
  $is_preview =
1312
  is_preview() || // Is this a standard preview
1313
  $this->is_customize_preview() || // Is this a customizer preview
1314
  $this->is_block_editor_page() || // Is this a block editor page
1315
- !empty( $_GET['siteorigin_panels_live_editor'] ) || // Is this a Page Builder live editor request
1316
- ( !empty( $_REQUEST['action'] ) && $_REQUEST['action'] == 'so_panels_builder_content' ) || // Is this a Page Builder content ajax request
1317
  ! empty( $GLOBALS[ 'SITEORIGIN_PANELS_PREVIEW_RENDER' ] ); // Is this a Page Builder preview render.
1318
 
1319
  return apply_filters( 'siteorigin_widgets_is_preview', $is_preview, $this );
@@ -1324,7 +1324,7 @@ abstract class SiteOrigin_Widget extends WP_Widget {
1324
  *
1325
  * @return bool
1326
  */
1327
- function show_preview_button(){
1328
  $show_preview = ! empty( $this->widget_options['has_preview'] ) && ! $this->is_customize_preview();
1329
  $show_preview = apply_filters( 'siteorigin_widgets_form_show_preview_button', $show_preview, $this );
1330
  return $show_preview;
@@ -1337,15 +1337,18 @@ abstract class SiteOrigin_Widget extends WP_Widget {
1337
  *
1338
  * @return mixed
1339
  */
1340
- function get_global_settings( $key = null ){
1341
  $values = get_option( 'so_widget_settings[' . $this->widget_class . ']', array() );
1342
 
1343
  // Add in the defaults
1344
- if( $this->has_form( 'settings' ) ) {
1345
- $values = $this->add_defaults( $this->get_settings_form(), $values );
 
 
 
1346
  }
1347
 
1348
- return !empty( $key ) ? $values[$key] : $values;
1349
  }
1350
 
1351
  /**
@@ -1354,7 +1357,7 @@ abstract class SiteOrigin_Widget extends WP_Widget {
1354
  * @param array $values The new values
1355
  * @return array The sanitized values.
1356
  */
1357
- function save_global_settings( $values ){
1358
  $current = $this->get_global_settings();
1359
 
1360
  $values = $this->update( $values, $current, 'settings' );
64
  'width' => 800,
65
  ) );
66
 
67
+ if ( empty( $this->widget_class ) ) {
68
  $this->widget_class = get_class( $this );
69
  }
70
 
78
  /**
79
  * Initialize this widget in whatever way we need to. Run before rendering widget or form.
80
  */
81
+ function initialize() {
82
 
83
  }
84
 
87
  *
88
  * @return array
89
  */
90
+ function get_widget_form() {
91
  return method_exists( $this, 'initialize_form' ) ? $this->initialize_form() : array();
92
  }
93
 
109
  * @param string $form_type
110
  * @return bool
111
  */
112
+ function has_form( $form_type = 'widget' ) {
113
  return method_exists( $this, 'get_' . $form_type . '_form' );
114
  }
115
 
139
  * @return mixed
140
  */
141
  function form_options( $parent = false ) {
142
+ if ( empty( $this->form_options ) ) {
143
  // If the widget doesn't have form_options defined from the constructor, then it might be defining them in the get_widget_form function
144
  $this->form_options = $this->get_cached_widget_form();
145
  }
146
 
147
  $form_options = $this->modify_form( $this->form_options );
148
+ if ( ! empty( $parent ) ) {
149
  $form_options = $parent->modify_child_widget_form( $form_options, $this );
150
  }
151
 
162
  * @param array $instance
163
  */
164
  public function widget( $args, $instance ) {
165
+ if ( empty( $this->form_options ) ) {
166
  $form_options = $this->get_cached_widget_form();
167
  }
168
  else {
193
 
194
  // Storage hash allows templates to get access to
195
  $template_vars[ 'storage_hash' ] = '';
196
+ if ( ! empty($this->widget_options['instance_storage']) ) {
197
  $stored_instance = $this->modify_stored_instance($instance);
198
  // We probably don't want panels_info
199
  unset( $stored_instance['panels_info'] );
200
 
201
  $template_vars[ 'storage_hash' ] = substr( md5( serialize( $stored_instance ) ), 0, 8 );
202
+ if ( ! empty( $stored_instance ) && !$this->is_preview( $instance ) ) {
203
  // Store this if we have a non empty instance and are not previewing
204
  set_transient('sow_inst[' . $this->id_base . '][' . $template_vars['storage_hash'] . ']', $stored_instance, 7*86400);
205
  }
206
  }
207
 
208
+ if ( ! method_exists( $this, 'get_html_content' ) ) {
209
  $template_file = siteorigin_widget_get_plugin_dir_path( $this->id_base ) . $this->get_template_dir( $instance ) . '/' . $this->get_template_name( $instance ) . '.php';
210
  $template_file = apply_filters('siteorigin_widgets_template_file_' . $this->id_base, $template_file, $instance, $this );
211
  $template_file = realpath($template_file);
212
 
213
  // Don't accept non PHP files
214
+ if ( substr( $template_file, -4 ) != '.php' ) $template_file = false;
215
 
216
  ob_start();
217
+ if ( ! empty($template_file) && file_exists($template_file) ) {
218
  extract( $template_vars );
219
  @ include $template_file;
220
  }
280
  * @return string The CSS name
281
  */
282
  function generate_and_enqueue_instance_styles( $instance ) {
283
+ if ( empty( $form_options ) ) {
284
  $form_options = $this->get_cached_widget_form();
285
  }
286
  else {
288
  }
289
 
290
  // We'll assume empty instances don't have styles
291
+ if ( empty($instance) ) return;
292
 
293
  // Make sure all the default values are in place
294
  $instance = $this->add_defaults( $form_options, $instance );
298
 
299
  $upload_dir = wp_upload_dir();
300
 
301
+ if ( ! empty($style) ) {
302
  $hash = $this->get_style_hash( $instance );
303
  $css_name = $this->id_base . '-' . $style . '-' . $hash . ( ! empty( $instance['panels_info'] ) && ! isset( $instance['panels_info']['builder'] ) ? '-' . get_the_id() : '' );
304
 
313
  $this->save_css( $instance );
314
  }
315
 
316
+ if ( file_exists( $upload_dir['basedir'] . '/siteorigin-widgets/' . $css_name .'.css' ) ) {
317
  if ( ! wp_style_is( $css_name ) ) {
318
  wp_enqueue_style(
319
  $css_name,
341
  return $css_name;
342
  }
343
 
344
+ private function is_customize_preview() {
345
  global $wp_customize;
346
  return is_a( $wp_customize, 'WP_Customize_Manager' ) && $wp_customize->is_preview();
347
  }
370
  *
371
  * @return array
372
  */
373
+ public function get_template_variables( $instance, $args ) {
374
  return array();
375
  }
376
 
381
  * @param $args
382
  * @param $instance
383
  */
384
+ public function sub_widget( $class, $args, $instance, $return = false ) {
385
+ if (!class_exists($class)) return;
386
  $widget = new $class;
387
 
388
  $args['before_widget'] = '';
404
  * @param $form
405
  * @param $instance
406
  */
407
+ function add_defaults( $form, $instance, $level = 0 ) {
408
+ if ( $level > 10 ) return $instance;
409
 
410
+ foreach ( $form as $id => $field ) {
411
 
412
+ if ( $field['type'] == 'repeater' ) {
413
+ if ( ! empty($instance[$id]) ) {
414
+ foreach ( array_keys( $instance[$id] ) as $i ) {
415
  $instance[$id][$i] = $this->add_defaults( $field['fields'], $instance[$id][$i], $level + 1 );
416
  }
417
  }
418
  }
419
+ elseif ( $field['type'] == 'section' ) {
420
+ if ( empty($instance[$id]) ) {
421
  $instance[$id] = array();
422
  }
423
  $instance[$id] = $this->add_defaults( $field['fields'], $instance[$id], $level + 1 );
424
  }
425
+ elseif ( $field['type'] == 'measurement' ) {
426
+ if ( ! isset( $instance[$id] ) ) {
427
  $instance[$id] = isset( $field['default'] ) ? $field['default'] : '';
428
  }
429
  if ( empty( $instance[ $id . '_unit' ] ) ) {
430
  $instance[ $id . '_unit' ] = 'px';
431
  }
432
  }
433
+ elseif ( $field['type'] == 'order') {
434
  if ( empty( $instance[$id] ) ) {
435
+ if ( ! empty( $field['default'] ) ) {
436
  $instance[$id] = $field['default'];
437
  } else {
438
  // If no default order is specified, just use the order of the options.
441
  }
442
  }
443
  else {
444
+ if ( !isset( $instance[$id] ) ) {
445
  $instance[$id] = isset( $field['default'] ) ? $field['default'] : '';
446
  }
447
  }
459
  * @return string|void
460
  */
461
  public function form( $instance, $form_type = 'widget' ) {
462
+ if ( $form_type == 'widget' ) {
463
+ if ( empty( $this->form_options ) ) {
464
  $this->form_options = $this->form_options();
465
  }
466
  $form_options = $this->form_options;
472
  $instance = $this->modify_instance($instance);
473
  $instance = $this->add_defaults( $form_options, $instance );
474
 
475
+ if ( empty( $this->number ) ) {
476
  // Compatibility with form widgets.
477
  $this->number = 1;
478
  }
485
  $form_id = 'siteorigin_widget_form_' . md5( $id );
486
  $class_name = str_replace( '_', '-', strtolower( $this->widget_class ) );
487
 
488
+ if ( empty( $instance['_sow_form_id'] ) ) {
489
  $instance['_sow_form_id'] = $id;
490
  }
491
  ?>
497
  /* @var $field_factory SiteOrigin_Widget_Field_Factory */
498
  $field_factory = SiteOrigin_Widget_Field_Factory::single();
499
  $fields_javascript_variables = array();
500
+ foreach ( $form_options as $field_name => $field_options ) {
501
  /* @var $field SiteOrigin_Widget_Field_Base */
502
  $field = $field_factory->create_field( $field_name, $field_options, $this );
503
  $field->render( isset( $instance[$field_name] ) ? $instance[$field_name] : null, $instance );
504
  $field_js_vars = $field->get_javascript_variables();
505
+ if ( ! empty( $field_js_vars ) ) {
506
  $fields_javascript_variables[$field_name] = $field_js_vars;
507
  }
508
  $field->enqueue_scripts();
516
  <?php $this->scripts_loading_message() ?>
517
  </div>
518
 
519
+ <?php if ( $this->show_preview_button() ) : ?>
520
  <div class="siteorigin-widget-preview" style="display: none">
521
  <a href="#" class="siteorigin-widget-preview-button button-secondary"><?php _e('Preview', 'so-widgets-bundle') ?></a>
522
  </div>
523
  <?php endif; ?>
524
 
525
+ <?php if ( ! empty( $this->widget_options['help'] ) ) : ?>
526
  <a href="<?php echo sow_esc_url($this->widget_options['help']) ?>" class="siteorigin-widget-help-link siteorigin-panels-help-link" target="_blank" rel="noopener noreferrer"><?php _e('Help', 'so-widgets-bundle') ?></a>
527
  <?php endif; ?>
528
 
529
  <script type="text/javascript">
530
+ ( function( $ ) {
531
+ if ( typeof window.sow_field_javascript_variables == 'undefined' ) window.sow_field_javascript_variables = {};
532
  window.sow_field_javascript_variables["<?php echo addslashes( $this->widget_class ) ?>"] = <?php echo json_encode( $fields_javascript_variables ) ?>;
533
 
534
+ if ( typeof $.fn.sowSetupForm != 'undefined' ) {
535
  $('#<?php echo $form_id ?>').sowSetupForm();
536
  }
537
  else {
538
  // Init once admin scripts have been loaded
539
+ $( document).on( 'sowadminloaded', function() {
540
  $('#<?php echo $form_id ?>').sowSetupForm();
541
+ } );
542
  }
543
  } )( jQuery );
544
  </script>
550
  /**
551
  * Display the teaser message.
552
  */
553
+ function display_teaser_message() {
554
+ if (
555
  method_exists( $this, 'get_form_teaser' ) &&
556
  ( $teaser = $this->get_form_teaser() )
557
  ) {
560
  }
561
 
562
  $dismissed = get_user_meta( get_current_user_id(), 'teasers_dismissed', true );
563
+ if ( empty( $dismissed[ $this->id_base ] ) ) {
564
  $dismiss_url = add_query_arg( array(
565
  'action' => 'so_dismiss_widget_teaser',
566
  'widget' => $this->id_base,
586
  *
587
  * @return bool
588
  */
589
+ function display_siteorigin_premium_teaser() {
590
  return apply_filters( 'siteorigin_premium_upgrade_teaser', true ) &&
591
  ! defined( 'SITEORIGIN_PREMIUM_VERSION' );
592
  }
593
 
594
+ function scripts_loading_message() {
595
  ?>
596
+ <p><strong><?php _e( 'This widget has scripts and styles that need to be loaded before you can use it. Please save and reload your current page.', 'so-widgets-bundle' ) ?></strong></p>
597
+ <p><strong><?php _e( 'You will only need to do this once.', 'so-widgets-bundle' ) ?></strong></p>
598
  <?php
599
  }
600
 
605
  */
606
  function enqueue_scripts( $form_type = false ) {
607
 
608
+ if ( ! wp_script_is( 'siteorigin-widget-admin' ) ) {
609
  wp_enqueue_style( 'wp-color-picker' );
610
  wp_enqueue_style( 'siteorigin-widget-admin', plugin_dir_url(SOW_BUNDLE_BASE_FILE).'base/css/admin.css', array( 'media-views' ), SOW_BUNDLE_VERSION );
611
 
642
  }
643
  }
644
 
645
+ if ( ! empty( $form_type ) && $this->has_form( $form_type ) ) {
646
  // Enqueue field scripts for the given form type
647
  $form_options = $this->get_form( $form_type );
648
  $this->enqueue_field_scripts( $form_options );
653
  do_action( 'siteorigin_widgets_enqueue_admin_scripts_' . $this->id_base, $this );
654
  }
655
 
656
+ function enqueue_field_scripts( $fields ) {
657
  /* @var $field_factory SiteOrigin_Widget_Field_Factory */
658
  $field_factory = SiteOrigin_Widget_Field_Factory::single();
659
 
660
+ foreach ( $fields as $field_name => $field_options ) {
661
  /* @var $field SiteOrigin_Widget_Field_Base */
662
  $field = $field_factory->create_field( $field_name, $field_options, $this );
663
  $field->enqueue_scripts();
664
 
665
+ if ( ! empty( $field_options['fields'] ) ) {
666
  $this->enqueue_field_scripts( $field_options['fields'] );
667
  }
668
  }
671
  /**
672
  * Display all the admin stuff for the footer
673
  */
674
+ function footer_admin_templates() {
675
  ?>
676
  <script type="text/template" id="so-widgets-bundle-tpl-preview-dialog">
677
  <div class="so-widgets-dialog">
697
  <?php
698
 
699
  // Give other plugins a chance to add their own
700
+ do_action( 'siteorigin_widgets_footer_admin_templates' );
701
  }
702
 
703
  /**
709
  * @return array|void
710
  */
711
  public function update( $new_instance, $old_instance, $form_type = 'widget' ) {
712
+ if ( ! class_exists('SiteOrigin_Widgets_Color_Object') ) require plugin_dir_path( __FILE__ ).'inc/color.php';
713
 
714
+ if ( $form_type == 'widget' ) {
715
+ if ( empty( $this->form_options ) ) {
716
  $this->form_options = $this->form_options();
717
  }
718
  $form_options = $this->form_options;
721
  $form_options = $this->get_form( $form_type );
722
  }
723
 
724
+ if ( ! empty( $form_options ) ) {
725
  /* @var $field_factory SiteOrigin_Widget_Field_Factory */
726
  $field_factory = SiteOrigin_Widget_Field_Factory::single();
727
  foreach ( $form_options as $field_name => $field_options ) {
728
  /* @var $field SiteOrigin_Widget_Field_Base */
729
+ if ( ! empty( $this->fields ) && ! empty( $this->fields[$field_name] ) ) {
730
  $field = $this->fields[$field_name];
731
  }
732
  else {
760
  * @param $instance
761
  * @return bool|string
762
  */
763
+ private function save_css( $instance ) {
764
  require_once ABSPATH . 'wp-admin/includes/file.php';
765
 
766
  $style = $this->get_style_name($instance);
808
  /**
809
  * Clears CSS for a specific instance
810
  */
811
+ private function delete_css( $instance ) {
812
  require_once ABSPATH . 'wp-admin/includes/file.php';
813
 
814
+ if ( WP_Filesystem() ) {
815
  global $wp_filesystem;
816
  $upload_dir = wp_upload_dir();
817
 
837
  *
838
  * @var bool $force_delete Whether to forcefully clear the file cache.
839
  */
840
+ public static function clear_file_cache( $force_delete = false ) {
841
  SiteOrigin_Widgets_Bundle::single()->clear_file_cache( $force_delete, self::$css_expire );
842
  }
843
 
847
  * @param $instance
848
  * @return string
849
  */
850
+ public function get_instance_css( $instance ) {
851
+ if ( !class_exists( 'SiteOrigin_LessC' ) ) require plugin_dir_path( __FILE__ ) . 'inc/lessc.inc.php';
852
+ if ( !class_exists('SiteOrigin_Widgets_Less_Functions') ) require plugin_dir_path( __FILE__ ).'inc/less-functions.php';
853
 
854
+ if ( !method_exists( $this, 'get_less_content' ) ) {
855
  $style_name = $this->get_style_name($instance);
856
+ if ( empty($style_name) ) return '';
857
 
858
  $less_file = siteorigin_widget_get_plugin_dir_path( $this->id_base ).'styles/'.$style_name . '.less';
859
  $less_file = apply_filters( 'siteorigin_widgets_less_file_' . $this->id_base, $less_file, $instance, $this );
866
  }
867
 
868
  // Substitute the variables
869
+ if ( ! class_exists( 'SiteOrigin_Widgets_Color_Object' ) ) require plugin_dir_path( __FILE__ ) . 'inc/color.php';
870
 
871
  // Lets widgets insert their own custom generated LESS
872
  $less = preg_replace_callback( '/\.widget-function\((.*)\);/', array( $this, 'less_widget_inject' ), $less );
879
  $less = apply_filters( 'siteorigin_widgets_styles_vars', $less, $vars, $this->widget_class, $instance );
880
  $less = apply_filters( 'siteorigin_widgets_less_vars_' . $this->id_base, $less, $vars, $instance, $this );
881
 
882
+ if ( ! empty( $vars ) ) {
883
+ foreach ($vars as $name => $value) {
884
  // Ignore empty string, false and null values (but keep '0')
885
+ if ( $value === '' || $value === false || $value === null ) continue;
886
 
887
  $less = preg_replace('/\@'.preg_quote($name).' *\:.*?;/', '@'.$name.': '.$value.';', $less);
888
  }
893
 
894
  $css = '';
895
 
896
+ if ( ! empty( $less ) ) {
897
  $style = $this->get_style_name( $instance );
898
  $hash = $this->get_style_hash( $instance );
899
  $css_name = $this->id_base . '-' . $style . '-' . $hash . ( ! empty( $instance['panels_info'] ) && ! isset( $instance['panels_info']['builder'] ) ? '-' . get_the_id() : '' );
913
  $compiler = apply_filters( 'siteorigin_widgets_less_compiler', $compiler, $instance, $this );
914
 
915
  try {
916
+ if ( method_exists( $compiler, 'compile' ) ) {
917
  $css = @ $compiler->compile( $less );
918
  }
919
  }
989
  *
990
  * @return mixed|string
991
  */
992
+ private function less_widget_inject( $matches ) {
993
  // We're going to lazily split the arguments by comma
994
+ $args = explode( ',', $matches[1] );
995
+ if ( empty( $args[0] ) ) return '';
996
 
997
  // Shift the function name from the arguments
998
+ $func = 'less_' . trim( array_shift( $args ) , '\'"');
999
+ if ( !method_exists( $this, $func ) ) return '';
1000
 
1001
  // Finally call the function and include the
1002
+ $args = array_map( 'trim', $args );
1003
+ return call_user_func( array( $this, $func), $this->current_instance, $args );
1004
  }
1005
 
1006
  /**
1011
  * @return mixed|string
1012
  */
1013
  public function so_get_field_name( $field_name, $container = array() ) {
1014
+ if ( empty($container) ) {
1015
  $name = $this->get_field_name( $field_name );
1016
  }
1017
  else {
1018
  // We also need to add the container fields
1019
  $container_extras = '';
1020
+ foreach ($container as $r) {
1021
  $container_extras .= '[' . $r['name'] . ']';
1022
 
1023
+ if ( $r['type'] == 'repeater' ) {
1024
  $container_extras .= '[#' . $r['name'] . '#]';
1025
  }
1026
  }
1045
  * @return string
1046
  */
1047
  public function so_get_field_id( $field_name, $container = array(), $is_template = false ) {
1048
+ if ( empty($container) ) {
1049
  return $this->get_field_id($field_name);
1050
  }
1051
  else {
1074
  *
1075
  * @deprecated Will be removed in version 2.0
1076
  */
1077
+ function parse_markdown( $markdown ) {
1078
+ if ( !class_exists('Parsedown') ) include plugin_dir_path(__FILE__).'inc/Parsedown.php';
1079
  $parser = new Parsedown();
1080
 
1081
  return $parser->text($markdown);
1089
  */
1090
  function get_style_hash( $instance ) {
1091
  $style_hash = apply_filters('siteorigin_widgets_widget_style_hash', '', $this);
1092
+ if ( empty( $style_hash ) ) {
1093
+ if ( method_exists( $this, 'get_style_hash_variables' ) ) {
1094
  $vars = apply_filters( 'siteorigin_widgets_hash_variables_' . $this->id_base, $this->get_style_hash_variables( $instance ), $instance, $this );
1095
  } else {
1096
  $vars = apply_filters( 'siteorigin_widgets_less_variables_' . $this->id_base, $this->get_less_variables( $instance ), $instance, $this );
1138
  * @param $instance
1139
  * @return array
1140
  */
1141
+ function get_less_variables( $instance ) {
1142
  return array();
1143
  }
1144
 
1149
  *
1150
  * @return mixed
1151
  */
1152
+ function modify_stored_instance( $instance ) {
1153
  return $instance;
1154
  }
1155
 
1193
  *
1194
  * @return mixed
1195
  */
1196
+ function modify_instance( $instance ) {
1197
  return $instance;
1198
  }
1199
 
1200
  /**
1201
  * Can be overwritten by child widgets to make variables available to javascript via ajax calls. These are designed to be used in the admin.
1202
  */
1203
+ function get_javascript_variables() {
1204
 
1205
  }
1206
 
1209
  *
1210
  * @param array $scripts an array of scripts. Each element is an array that corresponds to wp_enqueue_script arguments
1211
  */
1212
+ public function register_frontend_scripts( $scripts ) {
1213
  foreach ( $scripts as $script ) {
1214
  if ( ! isset( $this->frontend_scripts[ $script[0] ] ) ) {
1215
  $this->frontend_scripts[$script[0]] = $script;
1234
  $f_script[0],
1235
  isset( $f_script[1] ) ? $f_script[1] : false,
1236
  isset( $f_script[2] ) ? $f_script[2] : array(),
1237
+ ! empty( $f_script[3] ) ? $f_script[3] : SOW_BUNDLE_VERSION,
1238
  isset( $f_script[4] ) ? $f_script[4] : false
1239
  );
1240
  }
1271
  $f_style[0],
1272
  isset( $f_style[1] ) ? $f_style[1] : false,
1273
  isset( $f_style[2] ) ? $f_style[2] : array(),
1274
+ ! empty( $f_style[3] ) ? $f_style[3] : SOW_BUNDLE_VERSION,
1275
  isset( $f_style[4] ) ? $f_style[4] : "all"
1276
  );
1277
  }
1294
  /**
1295
  * Can be overwritten by child widgets to enqueue admin scripts and styles if necessary.
1296
  */
1297
+ function enqueue_admin_scripts() { }
1298
 
1299
  /**
1300
  * Check if we're currently in a preview
1305
  */
1306
  function is_preview( $instance = array() ) {
1307
  // Check if the instance is a preview
1308
+ if ( ! empty( $instance[ 'is_preview' ] ) ) return true;
1309
 
1310
  // Check if the general request is a preview
1311
  $is_preview =
1312
  is_preview() || // Is this a standard preview
1313
  $this->is_customize_preview() || // Is this a customizer preview
1314
  $this->is_block_editor_page() || // Is this a block editor page
1315
+ ! empty( $_GET['siteorigin_panels_live_editor'] ) || // Is this a Page Builder live editor request
1316
+ ( ! empty( $_REQUEST['action'] ) && $_REQUEST['action'] == 'so_panels_builder_content' ) || // Is this a Page Builder content ajax request
1317
  ! empty( $GLOBALS[ 'SITEORIGIN_PANELS_PREVIEW_RENDER' ] ); // Is this a Page Builder preview render.
1318
 
1319
  return apply_filters( 'siteorigin_widgets_is_preview', $is_preview, $this );
1324
  *
1325
  * @return bool
1326
  */
1327
+ function show_preview_button() {
1328
  $show_preview = ! empty( $this->widget_options['has_preview'] ) && ! $this->is_customize_preview();
1329
  $show_preview = apply_filters( 'siteorigin_widgets_form_show_preview_button', $show_preview, $this );
1330
  return $show_preview;
1337
  *
1338
  * @return mixed
1339
  */
1340
+ function get_global_settings( $key = null ) {
1341
  $values = get_option( 'so_widget_settings[' . $this->widget_class . ']', array() );
1342
 
1343
  // Add in the defaults
1344
+ if ( $this->has_form( 'settings' ) ) {
1345
+ // Allow plugins to filter global widgets form.
1346
+ $form_options = apply_filters( 'siteorigin_widgets_settings_form', $this->get_settings_form(), $this );
1347
+ $form_options = apply_filters( 'siteorigin_widgets_settings_form_' . $this->id_base, $form_options, $this );
1348
+ $values = $this->add_defaults( $form_options, $values );
1349
  }
1350
 
1351
+ return ! empty( $key ) ? $values[$key] : $values;
1352
  }
1353
 
1354
  /**
1357
  * @param array $values The new values
1358
  * @return array The sanitized values.
1359
  */
1360
+ function save_global_settings( $values ) {
1361
  $current = $this->get_global_settings();
1362
 
1363
  $values = $this->update( $values, $current, 'settings' );
js/carousel.js CHANGED
@@ -48,6 +48,7 @@ jQuery( function ( $ ) {
48
  ),
49
  variableWidth: $$.data( 'variable_width' ),
50
  accessibility: false,
 
51
  cssEase: carouselSettings.animation,
52
  speed: carouselSettings.animation_speed,
53
  slidesToScroll: responsiveSettings.desktop_slides_to_scroll,
48
  ),
49
  variableWidth: $$.data( 'variable_width' ),
50
  accessibility: false,
51
+ adaptiveHeight: carouselSettings.adaptive_height,
52
  cssEase: carouselSettings.animation,
53
  speed: carouselSettings.animation_speed,
54
  slidesToScroll: responsiveSettings.desktop_slides_to_scroll,
js/carousel.min.js CHANGED
@@ -1 +1 @@
1
- var sowb=window.sowb||{};jQuery((function(i){sowb.setupCarousel=function(){i.fn.setSlideTo=function(s){$item=i(this);var e=$item.slick("slickGetOption","slidesToShow"),t=$item.slick("slickGetOption","slidesToScroll");$item.slick("slickSetOption","slidesToShow",1),$item.slick("slickSetOption","slidesToScroll",1),$item.slick("slickGoTo",s),$item.slick("slickSetOption","slidesToShow",e),$item.slick("slickSetOption","slidesToScroll",t)},i(".sow-carousel-wrapper").on("init",(function(s,e){i(this).css("opacity",1)})),i(".sow-carousel-wrapper").each((function(){var s=i(this),e=s.find(".sow-carousel-items"),t=s.data("responsive"),o=s.data("carousel_settings");if(e.not(".slick-initialized").slick({arrows:!1,dots:o.dots,appendDots:o.appendDots?s.find(".sow-carousel-nav"):s,rows:0,rtl:"rtl"==s.data("dir"),touchThreshold:20,infinite:o.loop&&(!s.data("ajax-url")||s.data("ajax-url")&&o.autoplay_continuous_scroll&&o.autoplay),variableWidth:s.data("variable_width"),accessibility:!1,cssEase:o.animation,speed:o.animation_speed,slidesToScroll:t.desktop_slides_to_scroll,slidesToShow:void 0===t.desktop_slides_to_show?t.desktop_slides_to_scroll:t.desktop_slides_to_show,responsive:[{breakpoint:t.tablet_portrait_breakpoint,settings:{slidesToScroll:t.tablet_portrait_slides_to_scroll,slidesToShow:void 0===t.tablet_portrait_slides_to_show?t.tablet_portrait_slides_to_scroll:t.tablet_portrait_slides_to_show}},{breakpoint:t.mobile_breakpoint,settings:{slidesToScroll:t.mobile_slides_to_scroll,slidesToShow:void 0===t.mobile_slides_to_show?t.mobile_slides_to_scroll:t.mobile_slides_to_show}}]}),o.item_overflow&&(e.css("width",""),e.css("opacity","")),e.on("swipe",(function(i,e,t){s.parent().parent().find(".sow-carousel-"+("left"==t?"next":"prev")).trigger("touchend")})),o.autoplay){var l=!1,a=s.parent().parent().find(".sow-carousel-"+("ltr"==s.data("dir")?"next":"prev"));setInterval((function(){l||a.trigger("click")}),o.autoplaySpeed),o.pauseOnHover&&(e.on("mouseenter.slick",(function(){l=!0})),e.on("mouseleave.slick",(function(){l=!1})))}if(s.parent().parent().find(".sow-carousel-previous, .sow-carousel-next").on("click touchend",(function(e,t){e.preventDefault();var l=s.find(".sow-carousel-items"),a=l.find(".sow-carousel-item").length,c=a>=s.data("item_count"),n=Math.ceil(l.outerWidth()/l.find(".sow-carousel-item").outerWidth(!0)),r=l.slick("slickGetOption","slidesToScroll"),d=a-n,u=!1;"post"==s.data("widget")&&"undefined"!=s.data("carousel_settings").theme&&c&&d++,c||(l.slick("slickCurrentSlide")+n>=a-1||l.slick("slickCurrentSlide")+r>d)&&(i(sowb).trigger("carousel_load_new_items",[s,l,t]),u=!0),i(this).hasClass("sow-carousel-next")&&!u?c&&l.slick("slickCurrentSlide")>=d?s.data("carousel_settings").loop&&l.slick("slickGoTo",0):l.slick("slickCurrentSlide")+r>d?l.setSlideTo(d):l.slick("slickNext"):i(this).hasClass("sow-carousel-previous")&&(s.data("carousel_settings").loop&&0==l.slick("slickCurrentSlide")?l.slick("slickGoTo",d):!s.data("carousel_settings").loop&&l.slick("slickCurrentSlide")<=r?l.slick("slickGoTo",1):l.slick("slickPrev")),o.dots&&"post"==s.data("widget")&&(s.find("li.slick-active").removeClass("slick-active"),s.find(".slick-dots li").eq(Math.ceil(s.find(".sow-carousel-items").slick("slickCurrentSlide")/r)).addClass("slick-active"))})),o.dots&&(s.data("variable_width")||s.data("carousel_settings").theme)){s.find(".slick-dots li").off("click.slick");var c=function(){e=s.find(".sow-carousel-items");var t=i(this).index(),o=e.slick("slickGetOption","slidesToScroll"),l=e.find(".sow-carousel-item").length,a=Math.ceil(e.outerWidth()/e.find(".sow-carousel-item").outerWidth(!0)),c=l-a;(t+a>=l?(e.slick("slickGoTo",c),$dots=i(this).parent(),$dots.find(".slick-active").removeClass("slick-active"),$dots.children().eq(t).addClass("slick-active")):("post"==s.data("widget")&&(t=Math.ceil(i(this).index()*o)),e.slick("slickGoTo",t)),"post"==s.data("widget"))&&(l>=s.data("item_count")||(e.slick("slickCurrentSlide")+a>=l-1||e.slick("slickCurrentSlide")+o>c)&&i(sowb).trigger("carousel_load_new_items",[s,e,!1]))};s.find(".slick-dots li").on("click touchend",c),i(sowb).on("carousel_posts_added",(function(){s.find(".slick-dots li").on("click touchend",c)}))}})),i(sowb).trigger("carousel_setup"),i(document).on("keydown",".sow-carousel-navigation a",(function(s){13!=s.keyCode&&32!=s.keyCode||(s.preventDefault(),i(this).trigger("click"))})),i(document).on("keyup",".sow-carousel-item",(function(s){if(13==s.keyCode&&i(this).find("h3 a")[0].click(),37==s.keyCode||39==s.keyCode){var e=i(this).parents(".sow-carousel-wrapper"),t=e.find(".sow-carousel-items"),o=t.find(".sow-carousel-item").length,l=i(this).data("slick-index"),a=o-(o===e.data("item_count")?0:1);if(37==s.keyCode)--l<0&&(l=a);else if(39==s.keyCode&&++l>=a){if(e.data("fetching"))return;e.parent().find(".sow-carousel-next").trigger("click",!0)}t.slick("slickGoTo",l,!0),e.find(".sow-carousel-item").prop("tabindex",-1),e.find('.sow-carousel-item[data-slick-index="'+l+'"]').trigger("focus").prop("tabindex",0)}}));var s=function(){i(".sow-carousel-wrapper").each((function(){var s=i(this),e=s.find(".sow-carousel-items.slick-initialized"),t=Math.ceil(e.outerWidth()/e.find(".sow-carousel-item").outerWidth(!0)),o=s.parent().parent().find(".sow-carousel-navigation");t>=s.data("item_count")?(o.hide(),e.slick("slickSetOption","touchMove",!1),e.slick("slickSetOption","draggable",!1)):o.not(":visible")&&(o.show(),e.slick("slickSetOption","touchMove",!0),e.slick("slickSetOption","draggable",!0));var l=s.data("responsive");window.matchMedia("(min-width: "+l.tablet_portrait_breakpoint+"px) and (max-width: "+l.tablet_landscape_breakpoint+"px) and (orientation: landscape)").matches&&(e.slick("slickSetOption","slidesToShow",l.tablet_landscape_slides_to_show),e.slick("slickSetOption","slidesToScroll",l.tablet_landscape_slides_to_scroll))})),i(".sow-carousel-item:first-of-type").prop("tabindex",0)};s(),i(window).on("resize load",s)},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(s){$item=i(this);var e=$item.slick("slickGetOption","slidesToShow"),t=$item.slick("slickGetOption","slidesToScroll");$item.slick("slickSetOption","slidesToShow",1),$item.slick("slickSetOption","slidesToScroll",1),$item.slick("slickGoTo",s),$item.slick("slickSetOption","slidesToShow",e),$item.slick("slickSetOption","slidesToScroll",t)},i(".sow-carousel-wrapper").on("init",(function(s,e){i(this).css("opacity",1)})),i(".sow-carousel-wrapper").each((function(){var s=i(this),e=s.find(".sow-carousel-items"),t=s.data("responsive"),o=s.data("carousel_settings");if(e.not(".slick-initialized").slick({arrows:!1,dots:o.dots,appendDots:o.appendDots?s.find(".sow-carousel-nav"):s,rows:0,rtl:"rtl"==s.data("dir"),touchThreshold:20,infinite:o.loop&&(!s.data("ajax-url")||s.data("ajax-url")&&o.autoplay_continuous_scroll&&o.autoplay),variableWidth:s.data("variable_width"),accessibility:!1,adaptiveHeight:o.adaptive_height,cssEase:o.animation,speed:o.animation_speed,slidesToScroll:t.desktop_slides_to_scroll,slidesToShow:void 0===t.desktop_slides_to_show?t.desktop_slides_to_scroll:t.desktop_slides_to_show,responsive:[{breakpoint:t.tablet_portrait_breakpoint,settings:{slidesToScroll:t.tablet_portrait_slides_to_scroll,slidesToShow:void 0===t.tablet_portrait_slides_to_show?t.tablet_portrait_slides_to_scroll:t.tablet_portrait_slides_to_show}},{breakpoint:t.mobile_breakpoint,settings:{slidesToScroll:t.mobile_slides_to_scroll,slidesToShow:void 0===t.mobile_slides_to_show?t.mobile_slides_to_scroll:t.mobile_slides_to_show}}]}),o.item_overflow&&(e.css("width",""),e.css("opacity","")),e.on("swipe",(function(i,e,t){s.parent().parent().find(".sow-carousel-"+("left"==t?"next":"prev")).trigger("touchend")})),o.autoplay){var l=!1,a=s.parent().parent().find(".sow-carousel-"+("ltr"==s.data("dir")?"next":"prev"));setInterval((function(){l||a.trigger("click")}),o.autoplaySpeed),o.pauseOnHover&&(e.on("mouseenter.slick",(function(){l=!0})),e.on("mouseleave.slick",(function(){l=!1})))}if(s.parent().parent().find(".sow-carousel-previous, .sow-carousel-next").on("click touchend",(function(e,t){e.preventDefault();var l=s.find(".sow-carousel-items"),a=l.find(".sow-carousel-item").length,c=a>=s.data("item_count"),n=Math.ceil(l.outerWidth()/l.find(".sow-carousel-item").outerWidth(!0)),r=l.slick("slickGetOption","slidesToScroll"),d=a-n,u=!1;"post"==s.data("widget")&&"undefined"!=s.data("carousel_settings").theme&&c&&d++,c||(l.slick("slickCurrentSlide")+n>=a-1||l.slick("slickCurrentSlide")+r>d)&&(i(sowb).trigger("carousel_load_new_items",[s,l,t]),u=!0),i(this).hasClass("sow-carousel-next")&&!u?c&&l.slick("slickCurrentSlide")>=d?s.data("carousel_settings").loop&&l.slick("slickGoTo",0):l.slick("slickCurrentSlide")+r>d?l.setSlideTo(d):l.slick("slickNext"):i(this).hasClass("sow-carousel-previous")&&(s.data("carousel_settings").loop&&0==l.slick("slickCurrentSlide")?l.slick("slickGoTo",d):!s.data("carousel_settings").loop&&l.slick("slickCurrentSlide")<=r?l.slick("slickGoTo",1):l.slick("slickPrev")),o.dots&&"post"==s.data("widget")&&(s.find("li.slick-active").removeClass("slick-active"),s.find(".slick-dots li").eq(Math.ceil(s.find(".sow-carousel-items").slick("slickCurrentSlide")/r)).addClass("slick-active"))})),o.dots&&(s.data("variable_width")||s.data("carousel_settings").theme)){s.find(".slick-dots li").off("click.slick");var c=function(){e=s.find(".sow-carousel-items");var t=i(this).index(),o=e.slick("slickGetOption","slidesToScroll"),l=e.find(".sow-carousel-item").length,a=Math.ceil(e.outerWidth()/e.find(".sow-carousel-item").outerWidth(!0)),c=l-a;(t+a>=l?(e.slick("slickGoTo",c),$dots=i(this).parent(),$dots.find(".slick-active").removeClass("slick-active"),$dots.children().eq(t).addClass("slick-active")):("post"==s.data("widget")&&(t=Math.ceil(i(this).index()*o)),e.slick("slickGoTo",t)),"post"==s.data("widget"))&&(l>=s.data("item_count")||(e.slick("slickCurrentSlide")+a>=l-1||e.slick("slickCurrentSlide")+o>c)&&i(sowb).trigger("carousel_load_new_items",[s,e,!1]))};s.find(".slick-dots li").on("click touchend",c),i(sowb).on("carousel_posts_added",(function(){s.find(".slick-dots li").on("click touchend",c)}))}})),i(sowb).trigger("carousel_setup"),i(document).on("keydown",".sow-carousel-navigation a",(function(s){13!=s.keyCode&&32!=s.keyCode||(s.preventDefault(),i(this).trigger("click"))})),i(document).on("keyup",".sow-carousel-item",(function(s){if(13==s.keyCode&&i(this).find("h3 a")[0].click(),37==s.keyCode||39==s.keyCode){var e=i(this).parents(".sow-carousel-wrapper"),t=e.find(".sow-carousel-items"),o=t.find(".sow-carousel-item").length,l=i(this).data("slick-index"),a=o-(o===e.data("item_count")?0:1);if(37==s.keyCode)--l<0&&(l=a);else if(39==s.keyCode&&++l>=a){if(e.data("fetching"))return;e.parent().find(".sow-carousel-next").trigger("click",!0)}t.slick("slickGoTo",l,!0),e.find(".sow-carousel-item").prop("tabindex",-1),e.find('.sow-carousel-item[data-slick-index="'+l+'"]').trigger("focus").prop("tabindex",0)}}));var s=function(){i(".sow-carousel-wrapper").each((function(){var s=i(this),e=s.find(".sow-carousel-items.slick-initialized"),t=Math.ceil(e.outerWidth()/e.find(".sow-carousel-item").outerWidth(!0)),o=s.parent().parent().find(".sow-carousel-navigation");t>=s.data("item_count")?(o.hide(),e.slick("slickSetOption","touchMove",!1),e.slick("slickSetOption","draggable",!1)):o.not(":visible")&&(o.show(),e.slick("slickSetOption","touchMove",!0),e.slick("slickSetOption","draggable",!0));var l=s.data("responsive");window.matchMedia("(min-width: "+l.tablet_portrait_breakpoint+"px) and (max-width: "+l.tablet_landscape_breakpoint+"px) and (orientation: landscape)").matches&&(e.slick("slickSetOption","slidesToShow",l.tablet_landscape_slides_to_show),e.slick("slickSetOption","slidesToScroll",l.tablet_landscape_slides_to_scroll))})),i(".sow-carousel-item:first-of-type").prop("tabindex",0)};s(),i(window).on("resize load",s)},sowb.setupCarousel(),i(sowb).on("setup_widgets",sowb.setupCarousel)})),window.sowb=sowb;
js/lib/slick.js CHANGED
@@ -6,7 +6,7 @@
6
  |___/_|_|\___|_|\_(_)/ |___/
7
  |__/
8
 
9
- Version: 1.8.0
10
  Author: Ken Wheeler
11
  Website: http://kenwheeler.github.io
12
  Docs: http://kenwheeler.github.io/slick
@@ -246,7 +246,7 @@
246
 
247
  Slick.prototype.animateHeight = function() {
248
  var _ = this;
249
- if (_.options.slidesToShow === 1 && _.options.adaptiveHeight === true && _.options.vertical === false) {
250
  var targetHeight = _.$slides.eq(_.currentSlide).outerHeight(true);
251
  _.$list.animate({
252
  height: targetHeight
@@ -1299,7 +1299,7 @@
1299
 
1300
  Slick.prototype.initADA = function() {
1301
  var _ = this,
1302
- numDotGroups = Math.ceil(_.slideCount / _.options.slidesToShow),
1303
  tabControlIndexes = _.getNavigableIndexes().filter(function(val) {
1304
  return (val >= 0) && (val < _.slideCount);
1305
  });
@@ -2100,7 +2100,7 @@
2100
 
2101
  var _ = this;
2102
 
2103
- if (_.options.slidesToShow === 1 && _.options.adaptiveHeight === true && _.options.vertical === false) {
2104
  var targetHeight = _.$slides.eq(_.currentSlide).outerHeight(true);
2105
  _.$list.css('height', targetHeight);
2106
  }
6
  |___/_|_|\___|_|\_(_)/ |___/
7
  |__/
8
 
9
+ Version: 1.8.0 (modified)
10
  Author: Ken Wheeler
11
  Website: http://kenwheeler.github.io
12
  Docs: http://kenwheeler.github.io/slick
246
 
247
  Slick.prototype.animateHeight = function() {
248
  var _ = this;
249
+ if (_.options.adaptiveHeight === true && _.options.vertical === false) {
250
  var targetHeight = _.$slides.eq(_.currentSlide).outerHeight(true);
251
  _.$list.animate({
252
  height: targetHeight
1299
 
1300
  Slick.prototype.initADA = function() {
1301
  var _ = this,
1302
+ numDotGroups = Math.ceil(_.slideCount / _.options.slidesToScroll),
1303
  tabControlIndexes = _.getNavigableIndexes().filter(function(val) {
1304
  return (val >= 0) && (val < _.slideCount);
1305
  });
2100
 
2101
  var _ = this;
2102
 
2103
+ if (_.options.adaptiveHeight === true && _.options.vertical === false) {
2104
  var targetHeight = _.$slides.eq(_.currentSlide).outerHeight(true);
2105
  _.$list.css('height', targetHeight);
2106
  }
js/lib/slick.min.js CHANGED
@@ -1 +1 @@
1
- !function(i){"use strict";"function"==typeof define&&define.amd?define(["jquery"],i):"undefined"!=typeof exports?module.exports=i(require("jquery")):i(jQuery)}((function(i){"use strict";var e,t=window.Slick||{};e=0,(t=function(t,o){var s,n=this;n.defaults={accessibility:!0,adaptiveHeight:!1,appendArrows:i(t),appendDots:i(t),arrows:!0,asNavFor:null,prevArrow:'<button class="slick-prev" aria-label="Previous" type="button">Previous</button>',nextArrow:'<button class="slick-next" aria-label="Next" type="button">Next</button>',autoplay:!1,autoplaySpeed:3e3,centerMode:!1,centerPadding:"50px",cssEase:"ease",customPaging:function(e,t){return i('<button type="button"></button>').text(t+1)},dots:!1,dotsClass:"slick-dots",draggable:!0,easing:"linear",edgeFriction:.35,fade:!1,focusOnSelect:!1,focusOnChange:!1,infinite:!0,initialSlide:0,lazyLoad:"ondemand",mobileFirst:!1,pauseOnHover:!0,pauseOnFocus:!0,pauseOnDotsHover:!1,respondTo:"window",responsive:null,rows:1,rtl:!1,slide:"",slidesPerRow:1,slidesToShow:1,slidesToScroll:1,speed:500,swipe:!0,swipeToSlide:!1,touchMove:!0,touchThreshold:5,useCSS:!0,useTransform:!0,variableWidth:!1,vertical:!1,verticalSwiping:!1,waitForAnimate:!0,zIndex:1e3},n.initials={animating:!1,dragging:!1,autoPlayTimer:null,currentDirection:0,currentLeft:null,currentSlide:0,direction:1,$dots:null,listWidth:null,listHeight:null,loadIndex:0,$nextArrow:null,$prevArrow:null,scrolling:!1,slideCount:null,slideWidth:null,$slideTrack:null,$slides:null,sliding:!1,slideOffset:0,swipeLeft:null,swiping:!1,$list:null,touchObject:{},transformsEnabled:!1,unslicked:!1},i.extend(n,n.initials),n.activeBreakpoint=null,n.animType=null,n.animProp=null,n.breakpoints=[],n.breakpointSettings=[],n.cssTransitions=!1,n.focussed=!1,n.interrupted=!1,n.hidden="hidden",n.paused=!0,n.positionProp=null,n.respondTo=null,n.rowCount=1,n.shouldClick=!0,n.$slider=i(t),n.$slidesCache=null,n.transformType=null,n.transitionType=null,n.visibilityChange="visibilitychange",n.windowWidth=0,n.windowTimer=null,s=i(t).data("slick")||{},n.options=i.extend({},n.defaults,o,s),n.currentSlide=n.options.initialSlide,n.originalSettings=n.options,void 0!==document.mozHidden?(n.hidden="mozHidden",n.visibilityChange="mozvisibilitychange"):void 0!==document.webkitHidden&&(n.hidden="webkitHidden",n.visibilityChange="webkitvisibilitychange"),n.autoPlay=i.proxy(n.autoPlay,n),n.autoPlayClear=i.proxy(n.autoPlayClear,n),n.autoPlayIterator=i.proxy(n.autoPlayIterator,n),n.changeSlide=i.proxy(n.changeSlide,n),n.clickHandler=i.proxy(n.clickHandler,n),n.selectHandler=i.proxy(n.selectHandler,n),n.setPosition=i.proxy(n.setPosition,n),n.swipeHandler=i.proxy(n.swipeHandler,n),n.dragHandler=i.proxy(n.dragHandler,n),n.keyHandler=i.proxy(n.keyHandler,n),n.instanceUid=e++,n.htmlExpr=/^(?:\s*(<[\w\W]+>)[^>]*)$/,n.registerBreakpoints(),n.init(!0)}).prototype.activateADA=function(){this.$slideTrack.find(".slick-active").attr({"aria-hidden":"false"}).find("a, input, button, select").attr({tabindex:"0"})},t.prototype.addSlide=t.prototype.slickAdd=function(e,t,o){var s=this;if("boolean"==typeof t)o=t,t=null;else if(t<0||t>=s.slideCount)return!1;s.unload(),"number"==typeof t?0===t&&0===s.$slides.length?i(e).appendTo(s.$slideTrack):o?i(e).insertBefore(s.$slides.eq(t)):i(e).insertAfter(s.$slides.eq(t)):!0===o?i(e).prependTo(s.$slideTrack):i(e).appendTo(s.$slideTrack),s.$slides=s.$slideTrack.children(this.options.slide),s.$slideTrack.children(this.options.slide).detach(),s.$slideTrack.append(s.$slides),s.$slides.each((function(e,t){i(t).attr("data-slick-index",e)})),s.$slidesCache=s.$slides,s.reinit()},t.prototype.animateHeight=function(){var i=this;if(1===i.options.slidesToShow&&!0===i.options.adaptiveHeight&&!1===i.options.vertical){var e=i.$slides.eq(i.currentSlide).outerHeight(!0);i.$list.animate({height:e},i.options.speed)}},t.prototype.animateSlide=function(e,t){var o={},s=this;s.animateHeight(),!0===s.options.rtl&&!1===s.options.vertical&&(e=-e),!1===s.transformsEnabled?!1===s.options.vertical?s.$slideTrack.animate({left:e},s.options.speed,s.options.easing,t):s.$slideTrack.animate({top:e},s.options.speed,s.options.easing,t):!1===s.cssTransitions?(!0===s.options.rtl&&(s.currentLeft=-s.currentLeft),i({animStart:s.currentLeft}).animate({animStart:e},{duration:s.options.speed,easing:s.options.easing,step:function(i){i=Math.ceil(i),!1===s.options.vertical?(o[s.animType]="translate("+i+"px, 0px)",s.$slideTrack.css(o)):(o[s.animType]="translate(0px,"+i+"px)",s.$slideTrack.css(o))},complete:function(){t&&t.call()}})):(s.applyTransition(),e=Math.ceil(e),!1===s.options.vertical?o[s.animType]="translate3d("+e+"px, 0px, 0px)":o[s.animType]="translate3d(0px,"+e+"px, 0px)",s.$slideTrack.css(o),t&&setTimeout((function(){s.disableTransition(),t.call()}),s.options.speed))},t.prototype.getNavTarget=function(){var e=this.options.asNavFor;return e&&null!==e&&(e=i(e).not(this.$slider)),e},t.prototype.asNavFor=function(e){var t=this.getNavTarget();null!==t&&"object"==typeof t&&t.each((function(){var t=i(this).slick("getSlick");t.unslicked||t.slideHandler(e,!0)}))},t.prototype.applyTransition=function(i){var e=this,t={};!1===e.options.fade?t[e.transitionType]=e.transformType+" "+e.options.speed+"ms "+e.options.cssEase:t[e.transitionType]="opacity "+e.options.speed+"ms "+e.options.cssEase,!1===e.options.fade?e.$slideTrack.css(t):e.$slides.eq(i).css(t)},t.prototype.autoPlay=function(){var i=this;i.autoPlayClear(),i.slideCount>i.options.slidesToShow&&(i.autoPlayTimer=setInterval(i.autoPlayIterator,i.options.autoplaySpeed))},t.prototype.autoPlayClear=function(){this.autoPlayTimer&&clearInterval(this.autoPlayTimer)},t.prototype.autoPlayIterator=function(){var i=this,e=i.currentSlide+i.options.slidesToScroll;i.paused||i.interrupted||i.focussed||(!1===i.options.infinite&&(1===i.direction&&i.currentSlide+1===i.slideCount-1?i.direction=0:0===i.direction&&(e=i.currentSlide-i.options.slidesToScroll,i.currentSlide-1==0&&(i.direction=1))),i.slideHandler(e))},t.prototype.buildArrows=function(){var e=this;!0===e.options.arrows&&(e.$prevArrow=i(e.options.prevArrow).addClass("slick-arrow"),e.$nextArrow=i(e.options.nextArrow).addClass("slick-arrow"),e.slideCount>e.options.slidesToShow?(e.$prevArrow.removeClass("slick-hidden").removeAttr("aria-hidden tabindex"),e.$nextArrow.removeClass("slick-hidden").removeAttr("aria-hidden tabindex"),e.htmlExpr.test(e.options.prevArrow)&&e.$prevArrow.prependTo(e.options.appendArrows),e.htmlExpr.test(e.options.nextArrow)&&e.$nextArrow.appendTo(e.options.appendArrows),!0!==e.options.infinite&&e.$prevArrow.addClass("slick-disabled").attr("aria-disabled","true")):e.$prevArrow.add(e.$nextArrow).addClass("slick-hidden").attr({"aria-disabled":"true",tabindex:"-1"}))},t.prototype.buildDots=function(){var e,t,o=this;if(!0===o.options.dots&&o.slideCount>o.options.slidesToShow){for(o.$slider.addClass("slick-dotted"),t=i("<ul></ul>").addClass(o.options.dotsClass),e=0;e<=o.getDotCount();e+=1)t.append(i("<li></li>").append(o.options.customPaging.call(this,o,e)));o.$dots=t.appendTo(o.options.appendDots),o.$dots.find("li").first().addClass("slick-active")}},t.prototype.buildOut=function(){var e=this;e.$slides=e.$slider.children(e.options.slide+":not(.slick-cloned)").addClass("slick-slide"),e.slideCount=e.$slides.length,e.$slides.each((function(e,t){i(t).attr("data-slick-index",e).data("originalStyling",i(t).attr("style")||"")})),e.$slider.addClass("slick-slider"),e.$slideTrack=0===e.slideCount?i('<div class="slick-track"></div>').appendTo(e.$slider):e.$slides.wrapAll('<div class="slick-track"></div>').parent(),e.$list=e.$slideTrack.wrap('<div class="slick-list"></div>').parent(),e.$slideTrack.css("opacity",0),!0!==e.options.centerMode&&!0!==e.options.swipeToSlide||(e.options.slidesToScroll=1),i("img[data-lazy]",e.$slider).not("[src]").addClass("slick-loading"),e.setupInfinite(),e.buildArrows(),e.buildDots(),e.updateDots(),e.setSlideClasses("number"==typeof e.currentSlide?e.currentSlide:0),!0===e.options.draggable&&e.$list.addClass("draggable")},t.prototype.buildRows=function(){var i,e,t,o,s,n,r,l=this;if(o=document.createDocumentFragment(),n=l.$slider.children(),l.options.rows>0){for(r=l.options.slidesPerRow*l.options.rows,s=Math.ceil(n.length/r),i=0;i<s;i++){var d=document.createElement("div");for(e=0;e<l.options.rows;e++){var a=document.createElement("div");for(t=0;t<l.options.slidesPerRow;t++){var c=i*r+(e*l.options.slidesPerRow+t);n.get(c)&&a.appendChild(n.get(c))}d.appendChild(a)}o.appendChild(d)}l.$slider.empty().append(o),l.$slider.children().children().children().css({width:100/l.options.slidesPerRow+"%",display:"inline-block"})}},t.prototype.checkResponsive=function(e,t){var o,s,n,r=this,l=!1,d=r.$slider.width(),a=window.innerWidth||i(window).width();if("window"===r.respondTo?n=a:"slider"===r.respondTo?n=d:"min"===r.respondTo&&(n=Math.min(a,d)),r.options.responsive&&r.options.responsive.length&&null!==r.options.responsive){for(o in s=null,r.breakpoints)r.breakpoints.hasOwnProperty(o)&&(!1===r.originalSettings.mobileFirst?n<r.breakpoints[o]&&(s=r.breakpoints[o]):n>r.breakpoints[o]&&(s=r.breakpoints[o]));null!==s?null!==r.activeBreakpoint?(s!==r.activeBreakpoint||t)&&(r.activeBreakpoint=s,"unslick"===r.breakpointSettings[s]?r.unslick(s):(r.options=i.extend({},r.originalSettings,r.breakpointSettings[s]),!0===e&&(r.currentSlide=r.options.initialSlide),r.refresh(e)),l=s):(r.activeBreakpoint=s,"unslick"===r.breakpointSettings[s]?r.unslick(s):(r.options=i.extend({},r.originalSettings,r.breakpointSettings[s]),!0===e&&(r.currentSlide=r.options.initialSlide),r.refresh(e)),l=s):null!==r.activeBreakpoint&&(r.activeBreakpoint=null,r.options=r.originalSettings,!0===e&&(r.currentSlide=r.options.initialSlide),r.refresh(e),l=s),e||!1===l||r.$slider.trigger("breakpoint",[r,l])}},t.prototype.changeSlide=function(e,t){var o,s,n=this,r=i(e.currentTarget);switch(r.is("a")&&e.preventDefault(),r.is("li")||(r=r.closest("li")),o=n.slideCount%n.options.slidesToScroll!=0?0:(n.slideCount-n.currentSlide)%n.options.slidesToScroll,e.data.message){case"previous":s=0===o?n.options.slidesToScroll:n.options.slidesToShow-o,n.slideCount>n.options.slidesToShow&&n.slideHandler(n.currentSlide-s,!1,t);break;case"next":s=0===o?n.options.slidesToScroll:o,n.slideCount>n.options.slidesToShow&&n.slideHandler(n.currentSlide+s,!1,t);break;case"index":var l=0===e.data.index?0:e.data.index||r.index()*n.options.slidesToScroll;n.slideHandler(n.checkNavigable(l),!1,t),r.children().trigger("focus");break;default:return}},t.prototype.checkNavigable=function(i){var e,t;if(t=0,i>(e=this.getNavigableIndexes())[e.length-1])i=e[e.length-1];else for(var o in e){if(i<e[o]){i=t;break}t=e[o]}return i},t.prototype.cleanUpEvents=function(){var e=this;e.options.dots&&null!==e.$dots&&(i("li",e.$dots).off("click.slick",e.changeSlide).off("mouseenter.slick",i.proxy(e.interrupt,e,!0)).off("mouseleave.slick",i.proxy(e.interrupt,e,!1)),!0===e.options.accessibility&&e.$dots.off("keydown.slick",e.keyHandler)),e.$slider.off("focus.slick blur.slick"),!0===e.options.arrows&&e.slideCount>e.options.slidesToShow&&(e.$prevArrow&&e.$prevArrow.off("click.slick",e.changeSlide),e.$nextArrow&&e.$nextArrow.off("click.slick",e.changeSlide),!0===e.options.accessibility&&(e.$prevArrow&&e.$prevArrow.off("keydown.slick",e.keyHandler),e.$nextArrow&&e.$nextArrow.off("keydown.slick",e.keyHandler))),e.$list.off("touchstart.slick mousedown.slick",e.swipeHandler),e.$list.off("touchmove.slick mousemove.slick",e.swipeHandler),e.$list.off("touchend.slick mouseup.slick",e.swipeHandler),e.$list.off("touchcancel.slick mouseleave.slick",e.swipeHandler),e.$list.off("click.slick",e.clickHandler),i(document).off(e.visibilityChange,e.visibility),e.cleanUpSlideEvents(),!0===e.options.accessibility&&e.$list.off("keydown.slick",e.keyHandler),!0===e.options.focusOnSelect&&i(e.$slideTrack).children().off("click.slick",e.selectHandler),i(window).off("orientationchange.slick.slick-"+e.instanceUid,e.orientationChange),i(window).off("resize.slick.slick-"+e.instanceUid,e.resize),i("[draggable!=true]",e.$slideTrack).off("dragstart",e.preventDefault),i(window).off("load.slick.slick-"+e.instanceUid,e.setPosition)},t.prototype.cleanUpSlideEvents=function(){var e=this;e.$list.off("mouseenter.slick",i.proxy(e.interrupt,e,!0)),e.$list.off("mouseleave.slick",i.proxy(e.interrupt,e,!1))},t.prototype.cleanUpRows=function(){var i,e=this;e.options.rows>0&&((i=e.$slides.children().children()).removeAttr("style"),e.$slider.empty().append(i))},t.prototype.clickHandler=function(i){!1===this.shouldClick&&(i.stopImmediatePropagation(),i.stopPropagation(),i.preventDefault())},t.prototype.destroy=function(e){var t=this;t.autoPlayClear(),t.touchObject={},t.cleanUpEvents(),i(".slick-cloned",t.$slider).detach(),t.$dots&&t.$dots.remove(),t.$prevArrow&&t.$prevArrow.length&&(t.$prevArrow.removeClass("slick-disabled slick-arrow slick-hidden").removeAttr("aria-hidden aria-disabled tabindex").css("display",""),t.htmlExpr.test(t.options.prevArrow)&&t.$prevArrow.remove()),t.$nextArrow&&t.$nextArrow.length&&(t.$nextArrow.removeClass("slick-disabled slick-arrow slick-hidden").removeAttr("aria-hidden aria-disabled tabindex").css("display",""),t.htmlExpr.test(t.options.nextArrow)&&t.$nextArrow.remove()),t.$slides&&(t.$slides.removeClass("slick-slide slick-active slick-center slick-visible slick-current").removeAttr("aria-hidden").removeAttr("data-slick-index").each((function(){i(this).attr("style",i(this).data("originalStyling"))})),t.$slideTrack.children(this.options.slide).detach(),t.$slideTrack.detach(),t.$list.detach(),t.$slider.append(t.$slides)),t.cleanUpRows(),t.$slider.removeClass("slick-slider"),t.$slider.removeClass("slick-initialized"),t.$slider.removeClass("slick-dotted"),t.unslicked=!0,e||t.$slider.trigger("destroy",[t])},t.prototype.disableTransition=function(i){var e=this,t={};t[e.transitionType]="",!1===e.options.fade?e.$slideTrack.css(t):e.$slides.eq(i).css(t)},t.prototype.fadeSlide=function(i,e){var t=this;!1===t.cssTransitions?(t.$slides.eq(i).css({zIndex:t.options.zIndex}),t.$slides.eq(i).animate({opacity:1},t.options.speed,t.options.easing,e)):(t.applyTransition(i),t.$slides.eq(i).css({opacity:1,zIndex:t.options.zIndex}),e&&setTimeout((function(){t.disableTransition(i),e.call()}),t.options.speed))},t.prototype.fadeSlideOut=function(i){var e=this;!1===e.cssTransitions?e.$slides.eq(i).animate({opacity:0,zIndex:e.options.zIndex-2},e.options.speed,e.options.easing):(e.applyTransition(i),e.$slides.eq(i).css({opacity:0,zIndex:e.options.zIndex-2}))},t.prototype.filterSlides=t.prototype.slickFilter=function(i){var e=this;null!==i&&(e.$slidesCache=e.$slides,e.unload(),e.$slideTrack.children(this.options.slide).detach(),e.$slidesCache.filter(i).appendTo(e.$slideTrack),e.reinit())},t.prototype.focusHandler=function(){var e=this;e.$slider.off("focus.slick blur.slick").on("focus.slick blur.slick","*",(function(t){t.stopImmediatePropagation();var o=i(this);setTimeout((function(){e.options.pauseOnFocus&&(e.focussed=o.is(":focus"),e.autoPlay())}),0)}))},t.prototype.getCurrent=t.prototype.slickCurrentSlide=function(){return this.currentSlide},t.prototype.getDotCount=function(){var i=this,e=0,t=0,o=0;if(!0===i.options.infinite)if(i.slideCount<=i.options.slidesToShow)++o;else for(;e<i.slideCount;)++o,e=t+i.options.slidesToScroll,t+=i.options.slidesToScroll<=i.options.slidesToShow?i.options.slidesToScroll:i.options.slidesToShow;else if(!0===i.options.centerMode)o=i.slideCount;else if(i.options.asNavFor)for(;e<i.slideCount;)++o,e=t+i.options.slidesToScroll,t+=i.options.slidesToScroll<=i.options.slidesToShow?i.options.slidesToScroll:i.options.slidesToShow;else o=1+Math.ceil((i.slideCount-i.options.slidesToShow)/i.options.slidesToScroll);return o-1},t.prototype.getLeft=function(i){var e,t,o,s,n=this,r=0;return n.slideOffset=0,t=n.$slides.first().outerHeight(!0),!0===n.options.infinite?(n.slideCount>n.options.slidesToShow&&(n.slideOffset=n.slideWidth*n.options.slidesToShow*-1,s=-1,!0===n.options.vertical&&!0===n.options.centerMode&&(2===n.options.slidesToShow?s=-1.5:1===n.options.slidesToShow&&(s=-2)),r=t*n.options.slidesToShow*s),n.slideCount%n.options.slidesToScroll!=0&&i+n.options.slidesToScroll>n.slideCount&&n.slideCount>n.options.slidesToShow&&(i>n.slideCount?(n.slideOffset=(n.options.slidesToShow-(i-n.slideCount))*n.slideWidth*-1,r=(n.options.slidesToShow-(i-n.slideCount))*t*-1):(n.slideOffset=n.slideCount%n.options.slidesToScroll*n.slideWidth*-1,r=n.slideCount%n.options.slidesToScroll*t*-1))):i+n.options.slidesToShow>n.slideCount&&(n.slideOffset=(i+n.options.slidesToShow-n.slideCount)*n.slideWidth,r=(i+n.options.slidesToShow-n.slideCount)*t),n.slideCount<=n.options.slidesToShow&&(n.slideOffset=0,r=0),!0===n.options.centerMode&&n.slideCount<=n.options.slidesToShow?n.slideOffset=n.slideWidth*Math.floor(n.options.slidesToShow)/2-n.slideWidth*n.slideCount/2:!0===n.options.centerMode&&!0===n.options.infinite?n.slideOffset+=n.slideWidth*Math.floor(n.options.slidesToShow/2)-n.slideWidth:!0===n.options.centerMode&&(n.slideOffset=0,n.slideOffset+=n.slideWidth*Math.floor(n.options.slidesToShow/2)),e=!1===n.options.vertical?i*n.slideWidth*-1+n.slideOffset:i*t*-1+r,!0===n.options.variableWidth&&(o=n.slideCount<=n.options.slidesToShow||!1===n.options.infinite?n.$slideTrack.children(".slick-slide").eq(i):n.$slideTrack.children(".slick-slide").eq(i+n.options.slidesToShow),e=!0===n.options.rtl?o[0]?-1*(n.$slideTrack.width()-o[0].offsetLeft-o.width()):0:o[0]?-1*o[0].offsetLeft:0,!0===n.options.centerMode&&(o=n.slideCount<=n.options.slidesToShow||!1===n.options.infinite?n.$slideTrack.children(".slick-slide").eq(i):n.$slideTrack.children(".slick-slide").eq(i+n.options.slidesToShow+1),e=!0===n.options.rtl?o[0]?-1*(n.$slideTrack.width()-o[0].offsetLeft-o.width()):0:o[0]?-1*o[0].offsetLeft:0,e+=(n.$list.width()-o.outerWidth())/2)),e},t.prototype.getOption=t.prototype.slickGetOption=function(i){return this.options[i]},t.prototype.getNavigableIndexes=function(){var i,e=this,t=0,o=0,s=[];for(!1===e.options.infinite?i=e.slideCount:(t=-1*e.options.slidesToScroll,o=-1*e.options.slidesToScroll,i=2*e.slideCount);t<i;)s.push(t),t=o+e.options.slidesToScroll,o+=e.options.slidesToScroll<=e.options.slidesToShow?e.options.slidesToScroll:e.options.slidesToShow;return s},t.prototype.getSlick=function(){return this},t.prototype.getSlideCount=function(){var e,t,o=this;return t=!0===o.options.centerMode?o.slideWidth*Math.floor(o.options.slidesToShow/2):0,!0===o.options.swipeToSlide?(o.$slideTrack.find(".slick-slide").each((function(s,n){if(n.offsetLeft-t+i(n).outerWidth()/2>-1*o.swipeLeft)return e=n,!1})),Math.abs(i(e).attr("data-slick-index")-o.currentSlide)||1):o.options.slidesToScroll},t.prototype.goTo=t.prototype.slickGoTo=function(i,e){this.changeSlide({data:{message:"index",index:parseInt(i)}},e)},t.prototype.init=function(e){var t=this;i(t.$slider).hasClass("slick-initialized")||(i(t.$slider).addClass("slick-initialized"),t.buildRows(),t.buildOut(),t.setProps(),t.startLoad(),t.loadSlider(),t.initializeEvents(),t.updateArrows(),t.updateDots(),t.checkResponsive(!0),t.focusHandler()),e&&t.$slider.trigger("init",[t]),!0===t.options.accessibility&&t.initADA(),t.options.autoplay&&(t.paused=!1,t.autoPlay())},t.prototype.initADA=function(){var e=this,t=Math.ceil(e.slideCount/e.options.slidesToShow),o=e.getNavigableIndexes().filter((function(i){return i>=0&&i<e.slideCount}));e.$slides.add(e.$slideTrack.find(".slick-cloned")).attr({"aria-hidden":"true",tabindex:"-1"}).find("a, input, button, select").attr({tabindex:"-1"}),null!==e.$dots&&(e.$slides.not(e.$slideTrack.find(".slick-cloned")).each((function(t){var s=o.indexOf(t);if(i(this).attr({role:"tabpanel",id:"slick-slide"+e.instanceUid+t,tabindex:-1}),-1!==s){var n="slick-slide-control"+e.instanceUid+s;i("#"+n).length&&i(this).attr({"aria-describedby":n})}})),e.$dots.attr("role","tablist").find("li").each((function(s){var n=o[s];i(this).attr({role:"presentation"}),i(this).find("button").first().attr({role:"tab",id:"slick-slide-control"+e.instanceUid+s,"aria-controls":"slick-slide"+e.instanceUid+n,"aria-label":s+1+" of "+t,"aria-selected":null,tabindex:"-1"})})).eq(e.currentSlide).find("button").attr({"aria-selected":"true",tabindex:"0"}).end());for(var s=e.currentSlide,n=s+e.options.slidesToShow;s<n;s++)e.options.focusOnChange?e.$slides.eq(s).attr({tabindex:"0"}):e.$slides.eq(s).removeAttr("tabindex");e.activateADA()},t.prototype.initArrowEvents=function(){var i=this;!0===i.options.arrows&&i.slideCount>i.options.slidesToShow&&(i.$prevArrow.off("click.slick").on("click.slick",{message:"previous"},i.changeSlide),i.$nextArrow.off("click.slick").on("click.slick",{message:"next"},i.changeSlide),!0===i.options.accessibility&&(i.$prevArrow.on("keydown.slick",i.keyHandler),i.$nextArrow.on("keydown.slick",i.keyHandler)))},t.prototype.initDotEvents=function(){var e=this;!0===e.options.dots&&e.slideCount>e.options.slidesToShow&&(i("li",e.$dots).on("click.slick",{message:"index"},e.changeSlide),!0===e.options.accessibility&&e.$dots.on("keydown.slick",e.keyHandler)),!0===e.options.dots&&!0===e.options.pauseOnDotsHover&&e.slideCount>e.options.slidesToShow&&i("li",e.$dots).on("mouseenter.slick",i.proxy(e.interrupt,e,!0)).on("mouseleave.slick",i.proxy(e.interrupt,e,!1))},t.prototype.initSlideEvents=function(){var e=this;e.options.pauseOnHover&&(e.$list.on("mouseenter.slick",i.proxy(e.interrupt,e,!0)),e.$list.on("mouseleave.slick",i.proxy(e.interrupt,e,!1)))},t.prototype.initializeEvents=function(){var e=this;e.initArrowEvents(),e.initDotEvents(),e.initSlideEvents(),e.$list.on("touchstart.slick mousedown.slick",{action:"start"},e.swipeHandler),e.$list.on("touchmove.slick mousemove.slick",{action:"move"},e.swipeHandler),e.$list.on("touchend.slick mouseup.slick",{action:"end"},e.swipeHandler),e.$list.on("touchcancel.slick mouseleave.slick",{action:"end"},e.swipeHandler),e.$list.on("click.slick",e.clickHandler),i(document).on(e.visibilityChange,i.proxy(e.visibility,e)),!0===e.options.accessibility&&e.$list.on("keydown.slick",e.keyHandler),!0===e.options.focusOnSelect&&i(e.$slideTrack).children().on("click.slick",e.selectHandler),i(window).on("orientationchange.slick.slick-"+e.instanceUid,i.proxy(e.orientationChange,e)),i(window).on("resize.slick.slick-"+e.instanceUid,i.proxy(e.resize,e)),i("[draggable!=true]",e.$slideTrack).on("dragstart",e.preventDefault),i(window).on("load.slick.slick-"+e.instanceUid,e.setPosition),i(e.setPosition)},t.prototype.initUI=function(){var i=this;!0===i.options.arrows&&i.slideCount>i.options.slidesToShow&&(i.$prevArrow.show(),i.$nextArrow.show()),!0===i.options.dots&&i.slideCount>i.options.slidesToShow&&i.$dots.show()},t.prototype.keyHandler=function(i){var e=this;i.target.tagName.match("TEXTAREA|INPUT|SELECT")||(37===i.keyCode&&!0===e.options.accessibility?e.changeSlide({data:{message:!0===e.options.rtl?"next":"previous"}}):39===i.keyCode&&!0===e.options.accessibility&&e.changeSlide({data:{message:!0===e.options.rtl?"previous":"next"}}))},t.prototype.lazyLoad=function(){var e,t,o,s=this;function n(e){i("img[data-lazy]",e).each((function(){var e=i(this),t=i(this).attr("data-lazy"),o=i(this).attr("data-srcset"),n=i(this).attr("data-sizes")||s.$slider.attr("data-sizes"),r=document.createElement("img");r.onload=function(){e.animate({opacity:0},100,(function(){o&&(e.attr("srcset",o),n&&e.attr("sizes",n)),e.attr("src",t).animate({opacity:1},200,(function(){e.removeAttr("data-lazy data-srcset data-sizes").removeClass("slick-loading")})),s.$slider.trigger("lazyLoaded",[s,e,t])}))},r.onerror=function(){e.removeAttr("data-lazy").removeClass("slick-loading").addClass("slick-lazyload-error"),s.$slider.trigger("lazyLoadError",[s,e,t])},r.src=t}))}if(!0===s.options.centerMode?!0===s.options.infinite?o=(t=s.currentSlide+(s.options.slidesToShow/2+1))+s.options.slidesToShow+2:(t=Math.max(0,s.currentSlide-(s.options.slidesToShow/2+1)),o=s.options.slidesToShow/2+1+2+s.currentSlide):(t=s.options.infinite?s.options.slidesToShow+s.currentSlide:s.currentSlide,o=Math.ceil(t+s.options.slidesToShow),!0===s.options.fade&&(t>0&&t--,o<=s.slideCount&&o++)),e=s.$slider.find(".slick-slide").slice(t,o),"anticipated"===s.options.lazyLoad)for(var r=t-1,l=o,d=s.$slider.find(".slick-slide"),a=0;a<s.options.slidesToScroll;a++)r<0&&(r=s.slideCount-1),e=(e=e.add(d.eq(r))).add(d.eq(l)),r--,l++;n(e),s.slideCount<=s.options.slidesToShow?n(s.$slider.find(".slick-slide")):s.currentSlide>=s.slideCount-s.options.slidesToShow?n(s.$slider.find(".slick-cloned").slice(0,s.options.slidesToShow)):0===s.currentSlide&&n(s.$slider.find(".slick-cloned").slice(-1*s.options.slidesToShow))},t.prototype.loadSlider=function(){var i=this;i.setPosition(),i.$slideTrack.css({opacity:1}),i.$slider.removeClass("slick-loading"),i.initUI(),"progressive"===i.options.lazyLoad&&i.progressiveLazyLoad()},t.prototype.next=t.prototype.slickNext=function(){this.changeSlide({data:{message:"next"}})},t.prototype.orientationChange=function(){this.checkResponsive(),this.setPosition()},t.prototype.pause=t.prototype.slickPause=function(){this.autoPlayClear(),this.paused=!0},t.prototype.play=t.prototype.slickPlay=function(){var i=this;i.autoPlay(),i.options.autoplay=!0,i.paused=!1,i.focussed=!1,i.interrupted=!1},t.prototype.postSlide=function(e){var t=this;t.unslicked||(t.$slider.trigger("afterChange",[t,e]),t.animating=!1,t.slideCount>t.options.slidesToShow&&t.setPosition(),t.swipeLeft=null,t.options.autoplay&&t.autoPlay(),!0===t.options.accessibility&&(t.initADA(),t.options.focusOnChange&&i(t.$slides.get(t.currentSlide)).attr("tabindex",0).focus()))},t.prototype.prev=t.prototype.slickPrev=function(){this.changeSlide({data:{message:"previous"}})},t.prototype.preventDefault=function(i){i.preventDefault()},t.prototype.progressiveLazyLoad=function(e){e=e||1;var t,o,s,n,r,l=this,d=i("img[data-lazy]",l.$slider);d.length?(t=d.first(),o=t.attr("data-lazy"),s=t.attr("data-srcset"),n=t.attr("data-sizes")||l.$slider.attr("data-sizes"),(r=document.createElement("img")).onload=function(){s&&(t.attr("srcset",s),n&&t.attr("sizes",n)),t.attr("src",o).removeAttr("data-lazy data-srcset data-sizes").removeClass("slick-loading"),!0===l.options.adaptiveHeight&&l.setPosition(),l.$slider.trigger("lazyLoaded",[l,t,o]),l.progressiveLazyLoad()},r.onerror=function(){e<3?setTimeout((function(){l.progressiveLazyLoad(e+1)}),500):(t.removeAttr("data-lazy").removeClass("slick-loading").addClass("slick-lazyload-error"),l.$slider.trigger("lazyLoadError",[l,t,o]),l.progressiveLazyLoad())},r.src=o):l.$slider.trigger("allImagesLoaded",[l])},t.prototype.refresh=function(e){var t,o,s=this;o=s.slideCount-s.options.slidesToShow,!s.options.infinite&&s.currentSlide>o&&(s.currentSlide=o),s.slideCount<=s.options.slidesToShow&&(s.currentSlide=0),t=s.currentSlide,s.destroy(!0),i.extend(s,s.initials,{currentSlide:t}),s.init(),e||s.changeSlide({data:{message:"index",index:t}},!1)},t.prototype.registerBreakpoints=function(){var i,e,t,o=this,s=o.options.responsive||null;if(s.length){for(i in o.respondTo=o.options.respondTo||"window",s)if(t=o.breakpoints.length-1,s.hasOwnProperty(i)){for(e=s[i].breakpoint;t>=0;)o.breakpoints[t]&&o.breakpoints[t]===e&&o.breakpoints.splice(t,1),t--;o.breakpoints.push(e),o.breakpointSettings[e]=s[i].settings}o.breakpoints.sort((function(i,e){return o.options.mobileFirst?i-e:e-i}))}},t.prototype.reinit=function(){var e=this;e.$slides=e.$slideTrack.children(e.options.slide).addClass("slick-slide"),e.slideCount=e.$slides.length,e.currentSlide>=e.slideCount&&0!==e.currentSlide&&(e.currentSlide=e.currentSlide-e.options.slidesToScroll),e.slideCount<=e.options.slidesToShow&&(e.currentSlide=0),e.registerBreakpoints(),e.setProps(),e.setupInfinite(),e.buildArrows(),e.updateArrows(),e.initArrowEvents(),e.buildDots(),e.updateDots(),e.initDotEvents(),e.cleanUpSlideEvents(),e.initSlideEvents(),e.checkResponsive(!1,!0),!0===e.options.focusOnSelect&&i(e.$slideTrack).children().on("click.slick",e.selectHandler),e.setSlideClasses("number"==typeof e.currentSlide?e.currentSlide:0),e.setPosition(),e.focusHandler(),e.paused=!e.options.autoplay,e.autoPlay(),e.$slider.trigger("reInit",[e])},t.prototype.resize=function(){var e=this;i(window).width()!==e.windowWidth&&(clearTimeout(e.windowDelay),e.windowDelay=window.setTimeout((function(){e.windowWidth=i(window).width(),e.checkResponsive(),e.unslicked||e.setPosition()}),50))},t.prototype.removeSlide=t.prototype.slickRemove=function(i,e,t){var o=this;if(i="boolean"==typeof i?!0===(e=i)?0:o.slideCount-1:!0===e?--i:i,o.slideCount<1||i<0||i>o.slideCount-1)return!1;o.unload(),!0===t?o.$slideTrack.children().remove():o.$slideTrack.children(this.options.slide).eq(i).remove(),o.$slides=o.$slideTrack.children(this.options.slide),o.$slideTrack.children(this.options.slide).detach(),o.$slideTrack.append(o.$slides),o.$slidesCache=o.$slides,o.reinit()},t.prototype.setCSS=function(i){var e,t,o=this,s={};!0===o.options.rtl&&(i=-i),e="left"==o.positionProp?Math.ceil(i)+"px":"0px",t="top"==o.positionProp?Math.ceil(i)+"px":"0px",s[o.positionProp]=i,!1===o.transformsEnabled?o.$slideTrack.css(s):(s={},!1===o.cssTransitions?(s[o.animType]="translate("+e+", "+t+")",o.$slideTrack.css(s)):(s[o.animType]="translate3d("+e+", "+t+", 0px)",o.$slideTrack.css(s)))},t.prototype.setDimensions=function(){var i=this;!1===i.options.vertical?!0===i.options.centerMode&&i.$list.css({padding:"0px "+i.options.centerPadding}):(i.$list.height(i.$slides.first().outerHeight(!0)*i.options.slidesToShow),!0===i.options.centerMode&&i.$list.css({padding:i.options.centerPadding+" 0px"})),i.listWidth=i.$list.width(),i.listHeight=i.$list.height(),!1===i.options.vertical&&!1===i.options.variableWidth?(i.slideWidth=Math.ceil(i.listWidth/i.options.slidesToShow),i.$slideTrack.width(Math.ceil(i.slideWidth*i.$slideTrack.children(".slick-slide").length))):!0===i.options.variableWidth?i.$slideTrack.width(5e3*i.slideCount):(i.slideWidth=Math.ceil(i.listWidth),i.$slideTrack.height(Math.ceil(i.$slides.first().outerHeight(!0)*i.$slideTrack.children(".slick-slide").length)));var e=i.$slides.first().outerWidth(!0)-i.$slides.first().width();!1===i.options.variableWidth&&i.$slideTrack.children(".slick-slide").width(i.slideWidth-e)},t.prototype.setFade=function(){var e,t=this;t.$slides.each((function(o,s){e=t.slideWidth*o*-1,!0===t.options.rtl?i(s).css({position:"relative",right:e,top:0,zIndex:t.options.zIndex-2,opacity:0}):i(s).css({position:"relative",left:e,top:0,zIndex:t.options.zIndex-2,opacity:0})})),t.$slides.eq(t.currentSlide).css({zIndex:t.options.zIndex-1,opacity:1})},t.prototype.setHeight=function(){var i=this;if(1===i.options.slidesToShow&&!0===i.options.adaptiveHeight&&!1===i.options.vertical){var e=i.$slides.eq(i.currentSlide).outerHeight(!0);i.$list.css("height",e)}},t.prototype.setOption=t.prototype.slickSetOption=function(){var e,t,o,s,n,r=this,l=!1;if("object"==typeof arguments[0]?(o=arguments[0],l=arguments[1],n="multiple"):"string"==typeof arguments[0]&&(o=arguments[0],s=arguments[1],l=arguments[2],"responsive"===arguments[0]&&"array"==typeof arguments[1]?n="responsive":void 0!==arguments[1]&&(n="single")),"single"===n)r.options[o]=s;else if("multiple"===n)i.each(o,(function(i,e){r.options[i]=e}));else if("responsive"===n)for(t in s)if("array"!=typeof r.options.responsive)r.options.responsive=[s[t]];else{for(e=r.options.responsive.length-1;e>=0;)r.options.responsive[e].breakpoint===s[t].breakpoint&&r.options.responsive.splice(e,1),e--;r.options.responsive.push(s[t])}l&&(r.unload(),r.reinit())},t.prototype.setPosition=function(){var i=this;i.setDimensions(),i.setHeight(),!1===i.options.fade?i.setCSS(i.getLeft(i.currentSlide)):i.setFade(),i.$slider.trigger("setPosition",[i])},t.prototype.setProps=function(){var i=this,e=document.body.style;i.positionProp=!0===i.options.vertical?"top":"left","top"===i.positionProp?i.$slider.addClass("slick-vertical"):i.$slider.removeClass("slick-vertical"),void 0===e.WebkitTransition&&void 0===e.MozTransition&&void 0===e.msTransition||!0===i.options.useCSS&&(i.cssTransitions=!0),i.options.fade&&("number"==typeof i.options.zIndex?i.options.zIndex<3&&(i.options.zIndex=3):i.options.zIndex=i.defaults.zIndex),void 0!==e.OTransform&&(i.animType="OTransform",i.transformType="-o-transform",i.transitionType="OTransition",void 0===e.perspectiveProperty&&void 0===e.webkitPerspective&&(i.animType=!1)),void 0!==e.MozTransform&&(i.animType="MozTransform",i.transformType="-moz-transform",i.transitionType="MozTransition",void 0===e.perspectiveProperty&&void 0===e.MozPerspective&&(i.animType=!1)),void 0!==e.webkitTransform&&(i.animType="webkitTransform",i.transformType="-webkit-transform",i.transitionType="webkitTransition",void 0===e.perspectiveProperty&&void 0===e.webkitPerspective&&(i.animType=!1)),void 0!==e.msTransform&&(i.animType="msTransform",i.transformType="-ms-transform",i.transitionType="msTransition",void 0===e.msTransform&&(i.animType=!1)),void 0!==e.transform&&!1!==i.animType&&(i.animType="transform",i.transformType="transform",i.transitionType="transition"),i.transformsEnabled=i.options.useTransform&&null!==i.animType&&!1!==i.animType},t.prototype.setSlideClasses=function(i){var e,t,o,s,n=this;if(t=n.$slider.find(".slick-slide").removeClass("slick-active slick-center slick-current").attr("aria-hidden","true"),n.$slides.eq(i).addClass("slick-current"),!0===n.options.centerMode){var r=n.options.slidesToShow%2==0?1:0;e=Math.floor(n.options.slidesToShow/2),!0===n.options.infinite&&(i>=e&&i<=n.slideCount-1-e?n.$slides.slice(i-e+r,i+e+1).addClass("slick-active").attr("aria-hidden","false"):(o=n.options.slidesToShow+i,t.slice(o-e+1+r,o+e+2).addClass("slick-active").attr("aria-hidden","false")),0===i?t.eq(t.length-1-n.options.slidesToShow).addClass("slick-center"):i===n.slideCount-1&&t.eq(n.options.slidesToShow).addClass("slick-center")),n.$slides.eq(i).addClass("slick-center")}else i>=0&&i<=n.slideCount-n.options.slidesToShow?n.$slides.slice(i,i+n.options.slidesToShow).addClass("slick-active").attr("aria-hidden","false"):t.length<=n.options.slidesToShow?t.addClass("slick-active").attr("aria-hidden","false"):(s=n.slideCount%n.options.slidesToShow,o=!0===n.options.infinite?n.options.slidesToShow+i:i,n.options.slidesToShow==n.options.slidesToScroll&&n.slideCount-i<n.options.slidesToShow?t.slice(o-(n.options.slidesToShow-s),o+s).addClass("slick-active").attr("aria-hidden","false"):t.slice(o,o+n.options.slidesToShow).addClass("slick-active").attr("aria-hidden","false"));"ondemand"!==n.options.lazyLoad&&"anticipated"!==n.options.lazyLoad||n.lazyLoad()},t.prototype.setupInfinite=function(){var e,t,o,s=this;if(!0===s.options.fade&&(s.options.centerMode=!1),!0===s.options.infinite&&!1===s.options.fade&&(t=null,s.slideCount>s.options.slidesToShow)){for(o=!0===s.options.centerMode?s.options.slidesToShow+1:s.options.slidesToShow,e=s.slideCount;e>s.slideCount-o;e-=1)t=e-1,i(s.$slides[t]).clone(!0).attr("id","").attr("data-slick-index",t-s.slideCount).prependTo(s.$slideTrack).addClass("slick-cloned");for(e=0;e<o+s.slideCount;e+=1)t=e,i(s.$slides[t]).clone(!0).attr("id","").attr("data-slick-index",t+s.slideCount).appendTo(s.$slideTrack).addClass("slick-cloned");s.$slideTrack.find(".slick-cloned").find("[id]").each((function(){i(this).attr("id","")}))}},t.prototype.interrupt=function(i){i||this.autoPlay(),this.interrupted=i},t.prototype.selectHandler=function(e){var t=this,o=i(e.target).is(".slick-slide")?i(e.target):i(e.target).parents(".slick-slide"),s=parseInt(o.attr("data-slick-index"));s||(s=0),t.slideCount<=t.options.slidesToShow?t.slideHandler(s,!1,!0):t.slideHandler(s)},t.prototype.slideHandler=function(i,e,t){var o,s,n,r,l,d,a=this;if(e=e||!1,!(!0===a.animating&&!0===a.options.waitForAnimate||!0===a.options.fade&&a.currentSlide===i))if(!1===e&&a.asNavFor(i),o=i,l=a.getLeft(o),r=a.getLeft(a.currentSlide),a.currentLeft=null===a.swipeLeft?r:a.swipeLeft,!1===a.options.infinite&&!1===a.options.centerMode&&(i<0||i>a.getDotCount()*a.options.slidesToScroll))!1===a.options.fade&&(o=a.currentSlide,!0!==t&&a.slideCount>a.options.slidesToShow?a.animateSlide(r,(function(){a.postSlide(o)})):a.postSlide(o));else if(!1===a.options.infinite&&!0===a.options.centerMode&&(i<0||i>a.slideCount-a.options.slidesToScroll))!1===a.options.fade&&(o=a.currentSlide,!0!==t&&a.slideCount>a.options.slidesToShow?a.animateSlide(r,(function(){a.postSlide(o)})):a.postSlide(o));else{if(a.options.autoplay&&clearInterval(a.autoPlayTimer),s=o<0?a.slideCount%a.options.slidesToScroll!=0?a.slideCount-a.slideCount%a.options.slidesToScroll:a.slideCount+o:o>=a.slideCount?a.slideCount%a.options.slidesToScroll!=0?0:o-a.slideCount:o,a.animating=!0,a.$slider.trigger("beforeChange",[a,a.currentSlide,s]),n=a.currentSlide,a.currentSlide=s,a.setSlideClasses(a.currentSlide),a.options.asNavFor&&(d=(d=a.getNavTarget()).slick("getSlick")).slideCount<=d.options.slidesToShow&&d.setSlideClasses(a.currentSlide),a.updateDots(),a.updateArrows(),!0===a.options.fade)return!0!==t?(a.fadeSlideOut(n),a.fadeSlide(s,(function(){a.postSlide(s)}))):a.postSlide(s),void a.animateHeight();!0!==t&&a.slideCount>a.options.slidesToShow?a.animateSlide(l,(function(){a.postSlide(s)})):a.postSlide(s)}},t.prototype.startLoad=function(){var i=this;!0===i.options.arrows&&i.slideCount>i.options.slidesToShow&&(i.$prevArrow.hide(),i.$nextArrow.hide()),!0===i.options.dots&&i.slideCount>i.options.slidesToShow&&i.$dots.hide(),i.$slider.addClass("slick-loading")},t.prototype.swipeDirection=function(){var i,e,t,o,s=this;return i=s.touchObject.startX-s.touchObject.curX,e=s.touchObject.startY-s.touchObject.curY,t=Math.atan2(e,i),(o=Math.round(180*t/Math.PI))<0&&(o=360-Math.abs(o)),o<=45&&o>=0?!1===s.options.rtl?"left":"right":o<=360&&o>=315?!1===s.options.rtl?"left":"right":o>=135&&o<=225?!1===s.options.rtl?"right":"left":!0===s.options.verticalSwiping?o>=35&&o<=135?"down":"up":"vertical"},t.prototype.swipeEnd=function(i){var e,t,o=this;if(o.dragging=!1,o.swiping=!1,o.scrolling)return o.scrolling=!1,!1;if(o.interrupted=!1,o.shouldClick=!(o.touchObject.swipeLength>10),void 0===o.touchObject.curX)return!1;if(!0===o.touchObject.edgeHit&&o.$slider.trigger("edge",[o,o.swipeDirection()]),o.touchObject.swipeLength>=o.touchObject.minSwipe){switch(t=o.swipeDirection()){case"left":case"down":e=o.options.swipeToSlide?o.checkNavigable(o.currentSlide+o.getSlideCount()):o.currentSlide+o.getSlideCount(),o.currentDirection=0;break;case"right":case"up":e=o.options.swipeToSlide?o.checkNavigable(o.currentSlide-o.getSlideCount()):o.currentSlide-o.getSlideCount(),o.currentDirection=1}"vertical"!=t&&(o.slideHandler(e),o.touchObject={},o.$slider.trigger("swipe",[o,t]))}else o.touchObject.startX!==o.touchObject.curX&&(o.slideHandler(o.currentSlide),o.touchObject={})},t.prototype.swipeHandler=function(i){var e=this;if(!(!1===e.options.swipe||"ontouchend"in document&&!1===e.options.swipe||!1===e.options.draggable&&-1!==i.type.indexOf("mouse")))switch(e.touchObject.fingerCount=i.originalEvent&&void 0!==i.originalEvent.touches?i.originalEvent.touches.length:1,e.touchObject.minSwipe=e.listWidth/e.options.touchThreshold,!0===e.options.verticalSwiping&&(e.touchObject.minSwipe=e.listHeight/e.options.touchThreshold),i.data.action){case"start":e.swipeStart(i);break;case"move":e.swipeMove(i);break;case"end":e.swipeEnd(i)}},t.prototype.swipeMove=function(i){var e,t,o,s,n,r,l=this;return n=void 0!==i.originalEvent?i.originalEvent.touches:null,!(!l.dragging||l.scrolling||n&&1!==n.length)&&(e=l.getLeft(l.currentSlide),l.touchObject.curX=void 0!==n?n[0].pageX:i.clientX,l.touchObject.curY=void 0!==n?n[0].pageY:i.clientY,l.touchObject.swipeLength=Math.round(Math.sqrt(Math.pow(l.touchObject.curX-l.touchObject.startX,2))),r=Math.round(Math.sqrt(Math.pow(l.touchObject.curY-l.touchObject.startY,2))),!l.options.verticalSwiping&&!l.swiping&&r>4?(l.scrolling=!0,!1):(!0===l.options.verticalSwiping&&(l.touchObject.swipeLength=r),t=l.swipeDirection(),void 0!==i.originalEvent&&l.touchObject.swipeLength>4&&(l.swiping=!0,i.preventDefault()),s=(!1===l.options.rtl?1:-1)*(l.touchObject.curX>l.touchObject.startX?1:-1),!0===l.options.verticalSwiping&&(s=l.touchObject.curY>l.touchObject.startY?1:-1),o=l.touchObject.swipeLength,l.touchObject.edgeHit=!1,!1===l.options.infinite&&(0===l.currentSlide&&"right"===t||l.currentSlide>=l.getDotCount()&&"left"===t)&&(o=l.touchObject.swipeLength*l.options.edgeFriction,l.touchObject.edgeHit=!0),!1===l.options.vertical?l.swipeLeft=e+o*s:l.swipeLeft=e+o*(l.$list.height()/l.listWidth)*s,!0===l.options.verticalSwiping&&(l.swipeLeft=e+o*s),!0!==l.options.fade&&!1!==l.options.touchMove&&(!0===l.animating?(l.swipeLeft=null,!1):void l.setCSS(l.swipeLeft))))},t.prototype.swipeStart=function(i){var e,t=this;if(t.interrupted=!0,1!==t.touchObject.fingerCount||t.slideCount<=t.options.slidesToShow)return t.touchObject={},!1;void 0!==i.originalEvent&&void 0!==i.originalEvent.touches&&(e=i.originalEvent.touches[0]),t.touchObject.startX=t.touchObject.curX=void 0!==e?e.pageX:i.clientX,t.touchObject.startY=t.touchObject.curY=void 0!==e?e.pageY:i.clientY,t.dragging=!0},t.prototype.unfilterSlides=t.prototype.slickUnfilter=function(){var i=this;null!==i.$slidesCache&&(i.unload(),i.$slideTrack.children(this.options.slide).detach(),i.$slidesCache.appendTo(i.$slideTrack),i.reinit())},t.prototype.unload=function(){var e=this;i(".slick-cloned",e.$slider).remove(),e.$dots&&e.$dots.remove(),e.$prevArrow&&e.htmlExpr.test(e.options.prevArrow)&&e.$prevArrow.remove(),e.$nextArrow&&e.htmlExpr.test(e.options.nextArrow)&&e.$nextArrow.remove(),e.$slides.removeClass("slick-slide slick-active slick-visible slick-current").attr("aria-hidden","true").css("width","")},t.prototype.unslick=function(i){var e=this;e.$slider.trigger("unslick",[e,i]),e.destroy()},t.prototype.updateArrows=function(){var i=this;Math.floor(i.options.slidesToShow/2),!0===i.options.arrows&&i.slideCount>i.options.slidesToShow&&!i.options.infinite&&(i.$prevArrow.removeClass("slick-disabled").attr("aria-disabled","false"),i.$nextArrow.removeClass("slick-disabled").attr("aria-disabled","false"),0===i.currentSlide?(i.$prevArrow.addClass("slick-disabled").attr("aria-disabled","true"),i.$nextArrow.removeClass("slick-disabled").attr("aria-disabled","false")):i.currentSlide>=i.slideCount-i.options.slidesToShow&&!1===i.options.centerMode?(i.$nextArrow.addClass("slick-disabled").attr("aria-disabled","true"),i.$prevArrow.removeClass("slick-disabled").attr("aria-disabled","false")):i.currentSlide>=i.slideCount-1&&!0===i.options.centerMode&&(i.$nextArrow.addClass("slick-disabled").attr("aria-disabled","true"),i.$prevArrow.removeClass("slick-disabled").attr("aria-disabled","false")))},t.prototype.updateDots=function(){var i=this;null!==i.$dots&&(i.$dots.find("li").removeClass("slick-active").end(),i.$dots.find("li").eq(Math.floor(i.currentSlide/i.options.slidesToScroll)).addClass("slick-active"))},t.prototype.visibility=function(){var i=this;i.options.autoplay&&(document[i.hidden]?i.interrupted=!0:i.interrupted=!1)},i.fn.slick=function(){var i,e,o=this,s=arguments[0],n=Array.prototype.slice.call(arguments,1),r=o.length;for(i=0;i<r;i++)if("object"==typeof s||void 0===s?o[i].slick=new t(o[i],s):e=o[i].slick[s].apply(o[i].slick,n),void 0!==e)return e;return o}}));
1
+ !function(i){"use strict";"function"==typeof define&&define.amd?define(["jquery"],i):"undefined"!=typeof exports?module.exports=i(require("jquery")):i(jQuery)}((function(i){"use strict";var e,t=window.Slick||{};e=0,(t=function(t,o){var s,n=this;n.defaults={accessibility:!0,adaptiveHeight:!1,appendArrows:i(t),appendDots:i(t),arrows:!0,asNavFor:null,prevArrow:'<button class="slick-prev" aria-label="Previous" type="button">Previous</button>',nextArrow:'<button class="slick-next" aria-label="Next" type="button">Next</button>',autoplay:!1,autoplaySpeed:3e3,centerMode:!1,centerPadding:"50px",cssEase:"ease",customPaging:function(e,t){return i('<button type="button"></button>').text(t+1)},dots:!1,dotsClass:"slick-dots",draggable:!0,easing:"linear",edgeFriction:.35,fade:!1,focusOnSelect:!1,focusOnChange:!1,infinite:!0,initialSlide:0,lazyLoad:"ondemand",mobileFirst:!1,pauseOnHover:!0,pauseOnFocus:!0,pauseOnDotsHover:!1,respondTo:"window",responsive:null,rows:1,rtl:!1,slide:"",slidesPerRow:1,slidesToShow:1,slidesToScroll:1,speed:500,swipe:!0,swipeToSlide:!1,touchMove:!0,touchThreshold:5,useCSS:!0,useTransform:!0,variableWidth:!1,vertical:!1,verticalSwiping:!1,waitForAnimate:!0,zIndex:1e3},n.initials={animating:!1,dragging:!1,autoPlayTimer:null,currentDirection:0,currentLeft:null,currentSlide:0,direction:1,$dots:null,listWidth:null,listHeight:null,loadIndex:0,$nextArrow:null,$prevArrow:null,scrolling:!1,slideCount:null,slideWidth:null,$slideTrack:null,$slides:null,sliding:!1,slideOffset:0,swipeLeft:null,swiping:!1,$list:null,touchObject:{},transformsEnabled:!1,unslicked:!1},i.extend(n,n.initials),n.activeBreakpoint=null,n.animType=null,n.animProp=null,n.breakpoints=[],n.breakpointSettings=[],n.cssTransitions=!1,n.focussed=!1,n.interrupted=!1,n.hidden="hidden",n.paused=!0,n.positionProp=null,n.respondTo=null,n.rowCount=1,n.shouldClick=!0,n.$slider=i(t),n.$slidesCache=null,n.transformType=null,n.transitionType=null,n.visibilityChange="visibilitychange",n.windowWidth=0,n.windowTimer=null,s=i(t).data("slick")||{},n.options=i.extend({},n.defaults,o,s),n.currentSlide=n.options.initialSlide,n.originalSettings=n.options,void 0!==document.mozHidden?(n.hidden="mozHidden",n.visibilityChange="mozvisibilitychange"):void 0!==document.webkitHidden&&(n.hidden="webkitHidden",n.visibilityChange="webkitvisibilitychange"),n.autoPlay=i.proxy(n.autoPlay,n),n.autoPlayClear=i.proxy(n.autoPlayClear,n),n.autoPlayIterator=i.proxy(n.autoPlayIterator,n),n.changeSlide=i.proxy(n.changeSlide,n),n.clickHandler=i.proxy(n.clickHandler,n),n.selectHandler=i.proxy(n.selectHandler,n),n.setPosition=i.proxy(n.setPosition,n),n.swipeHandler=i.proxy(n.swipeHandler,n),n.dragHandler=i.proxy(n.dragHandler,n),n.keyHandler=i.proxy(n.keyHandler,n),n.instanceUid=e++,n.htmlExpr=/^(?:\s*(<[\w\W]+>)[^>]*)$/,n.registerBreakpoints(),n.init(!0)}).prototype.activateADA=function(){this.$slideTrack.find(".slick-active").attr({"aria-hidden":"false"}).find("a, input, button, select").attr({tabindex:"0"})},t.prototype.addSlide=t.prototype.slickAdd=function(e,t,o){var s=this;if("boolean"==typeof t)o=t,t=null;else if(t<0||t>=s.slideCount)return!1;s.unload(),"number"==typeof t?0===t&&0===s.$slides.length?i(e).appendTo(s.$slideTrack):o?i(e).insertBefore(s.$slides.eq(t)):i(e).insertAfter(s.$slides.eq(t)):!0===o?i(e).prependTo(s.$slideTrack):i(e).appendTo(s.$slideTrack),s.$slides=s.$slideTrack.children(this.options.slide),s.$slideTrack.children(this.options.slide).detach(),s.$slideTrack.append(s.$slides),s.$slides.each((function(e,t){i(t).attr("data-slick-index",e)})),s.$slidesCache=s.$slides,s.reinit()},t.prototype.animateHeight=function(){var i=this;if(!0===i.options.adaptiveHeight&&!1===i.options.vertical){var e=i.$slides.eq(i.currentSlide).outerHeight(!0);i.$list.animate({height:e},i.options.speed)}},t.prototype.animateSlide=function(e,t){var o={},s=this;s.animateHeight(),!0===s.options.rtl&&!1===s.options.vertical&&(e=-e),!1===s.transformsEnabled?!1===s.options.vertical?s.$slideTrack.animate({left:e},s.options.speed,s.options.easing,t):s.$slideTrack.animate({top:e},s.options.speed,s.options.easing,t):!1===s.cssTransitions?(!0===s.options.rtl&&(s.currentLeft=-s.currentLeft),i({animStart:s.currentLeft}).animate({animStart:e},{duration:s.options.speed,easing:s.options.easing,step:function(i){i=Math.ceil(i),!1===s.options.vertical?(o[s.animType]="translate("+i+"px, 0px)",s.$slideTrack.css(o)):(o[s.animType]="translate(0px,"+i+"px)",s.$slideTrack.css(o))},complete:function(){t&&t.call()}})):(s.applyTransition(),e=Math.ceil(e),!1===s.options.vertical?o[s.animType]="translate3d("+e+"px, 0px, 0px)":o[s.animType]="translate3d(0px,"+e+"px, 0px)",s.$slideTrack.css(o),t&&setTimeout((function(){s.disableTransition(),t.call()}),s.options.speed))},t.prototype.getNavTarget=function(){var e=this.options.asNavFor;return e&&null!==e&&(e=i(e).not(this.$slider)),e},t.prototype.asNavFor=function(e){var t=this.getNavTarget();null!==t&&"object"==typeof t&&t.each((function(){var t=i(this).slick("getSlick");t.unslicked||t.slideHandler(e,!0)}))},t.prototype.applyTransition=function(i){var e=this,t={};!1===e.options.fade?t[e.transitionType]=e.transformType+" "+e.options.speed+"ms "+e.options.cssEase:t[e.transitionType]="opacity "+e.options.speed+"ms "+e.options.cssEase,!1===e.options.fade?e.$slideTrack.css(t):e.$slides.eq(i).css(t)},t.prototype.autoPlay=function(){var i=this;i.autoPlayClear(),i.slideCount>i.options.slidesToShow&&(i.autoPlayTimer=setInterval(i.autoPlayIterator,i.options.autoplaySpeed))},t.prototype.autoPlayClear=function(){this.autoPlayTimer&&clearInterval(this.autoPlayTimer)},t.prototype.autoPlayIterator=function(){var i=this,e=i.currentSlide+i.options.slidesToScroll;i.paused||i.interrupted||i.focussed||(!1===i.options.infinite&&(1===i.direction&&i.currentSlide+1===i.slideCount-1?i.direction=0:0===i.direction&&(e=i.currentSlide-i.options.slidesToScroll,i.currentSlide-1==0&&(i.direction=1))),i.slideHandler(e))},t.prototype.buildArrows=function(){var e=this;!0===e.options.arrows&&(e.$prevArrow=i(e.options.prevArrow).addClass("slick-arrow"),e.$nextArrow=i(e.options.nextArrow).addClass("slick-arrow"),e.slideCount>e.options.slidesToShow?(e.$prevArrow.removeClass("slick-hidden").removeAttr("aria-hidden tabindex"),e.$nextArrow.removeClass("slick-hidden").removeAttr("aria-hidden tabindex"),e.htmlExpr.test(e.options.prevArrow)&&e.$prevArrow.prependTo(e.options.appendArrows),e.htmlExpr.test(e.options.nextArrow)&&e.$nextArrow.appendTo(e.options.appendArrows),!0!==e.options.infinite&&e.$prevArrow.addClass("slick-disabled").attr("aria-disabled","true")):e.$prevArrow.add(e.$nextArrow).addClass("slick-hidden").attr({"aria-disabled":"true",tabindex:"-1"}))},t.prototype.buildDots=function(){var e,t,o=this;if(!0===o.options.dots&&o.slideCount>o.options.slidesToShow){for(o.$slider.addClass("slick-dotted"),t=i("<ul></ul>").addClass(o.options.dotsClass),e=0;e<=o.getDotCount();e+=1)t.append(i("<li></li>").append(o.options.customPaging.call(this,o,e)));o.$dots=t.appendTo(o.options.appendDots),o.$dots.find("li").first().addClass("slick-active")}},t.prototype.buildOut=function(){var e=this;e.$slides=e.$slider.children(e.options.slide+":not(.slick-cloned)").addClass("slick-slide"),e.slideCount=e.$slides.length,e.$slides.each((function(e,t){i(t).attr("data-slick-index",e).data("originalStyling",i(t).attr("style")||"")})),e.$slider.addClass("slick-slider"),e.$slideTrack=0===e.slideCount?i('<div class="slick-track"></div>').appendTo(e.$slider):e.$slides.wrapAll('<div class="slick-track"></div>').parent(),e.$list=e.$slideTrack.wrap('<div class="slick-list"></div>').parent(),e.$slideTrack.css("opacity",0),!0!==e.options.centerMode&&!0!==e.options.swipeToSlide||(e.options.slidesToScroll=1),i("img[data-lazy]",e.$slider).not("[src]").addClass("slick-loading"),e.setupInfinite(),e.buildArrows(),e.buildDots(),e.updateDots(),e.setSlideClasses("number"==typeof e.currentSlide?e.currentSlide:0),!0===e.options.draggable&&e.$list.addClass("draggable")},t.prototype.buildRows=function(){var i,e,t,o,s,n,r,l=this;if(o=document.createDocumentFragment(),n=l.$slider.children(),l.options.rows>0){for(r=l.options.slidesPerRow*l.options.rows,s=Math.ceil(n.length/r),i=0;i<s;i++){var d=document.createElement("div");for(e=0;e<l.options.rows;e++){var a=document.createElement("div");for(t=0;t<l.options.slidesPerRow;t++){var c=i*r+(e*l.options.slidesPerRow+t);n.get(c)&&a.appendChild(n.get(c))}d.appendChild(a)}o.appendChild(d)}l.$slider.empty().append(o),l.$slider.children().children().children().css({width:100/l.options.slidesPerRow+"%",display:"inline-block"})}},t.prototype.checkResponsive=function(e,t){var o,s,n,r=this,l=!1,d=r.$slider.width(),a=window.innerWidth||i(window).width();if("window"===r.respondTo?n=a:"slider"===r.respondTo?n=d:"min"===r.respondTo&&(n=Math.min(a,d)),r.options.responsive&&r.options.responsive.length&&null!==r.options.responsive){for(o in s=null,r.breakpoints)r.breakpoints.hasOwnProperty(o)&&(!1===r.originalSettings.mobileFirst?n<r.breakpoints[o]&&(s=r.breakpoints[o]):n>r.breakpoints[o]&&(s=r.breakpoints[o]));null!==s?null!==r.activeBreakpoint?(s!==r.activeBreakpoint||t)&&(r.activeBreakpoint=s,"unslick"===r.breakpointSettings[s]?r.unslick(s):(r.options=i.extend({},r.originalSettings,r.breakpointSettings[s]),!0===e&&(r.currentSlide=r.options.initialSlide),r.refresh(e)),l=s):(r.activeBreakpoint=s,"unslick"===r.breakpointSettings[s]?r.unslick(s):(r.options=i.extend({},r.originalSettings,r.breakpointSettings[s]),!0===e&&(r.currentSlide=r.options.initialSlide),r.refresh(e)),l=s):null!==r.activeBreakpoint&&(r.activeBreakpoint=null,r.options=r.originalSettings,!0===e&&(r.currentSlide=r.options.initialSlide),r.refresh(e),l=s),e||!1===l||r.$slider.trigger("breakpoint",[r,l])}},t.prototype.changeSlide=function(e,t){var o,s,n=this,r=i(e.currentTarget);switch(r.is("a")&&e.preventDefault(),r.is("li")||(r=r.closest("li")),o=n.slideCount%n.options.slidesToScroll!=0?0:(n.slideCount-n.currentSlide)%n.options.slidesToScroll,e.data.message){case"previous":s=0===o?n.options.slidesToScroll:n.options.slidesToShow-o,n.slideCount>n.options.slidesToShow&&n.slideHandler(n.currentSlide-s,!1,t);break;case"next":s=0===o?n.options.slidesToScroll:o,n.slideCount>n.options.slidesToShow&&n.slideHandler(n.currentSlide+s,!1,t);break;case"index":var l=0===e.data.index?0:e.data.index||r.index()*n.options.slidesToScroll;n.slideHandler(n.checkNavigable(l),!1,t),r.children().trigger("focus");break;default:return}},t.prototype.checkNavigable=function(i){var e,t;if(t=0,i>(e=this.getNavigableIndexes())[e.length-1])i=e[e.length-1];else for(var o in e){if(i<e[o]){i=t;break}t=e[o]}return i},t.prototype.cleanUpEvents=function(){var e=this;e.options.dots&&null!==e.$dots&&(i("li",e.$dots).off("click.slick",e.changeSlide).off("mouseenter.slick",i.proxy(e.interrupt,e,!0)).off("mouseleave.slick",i.proxy(e.interrupt,e,!1)),!0===e.options.accessibility&&e.$dots.off("keydown.slick",e.keyHandler)),e.$slider.off("focus.slick blur.slick"),!0===e.options.arrows&&e.slideCount>e.options.slidesToShow&&(e.$prevArrow&&e.$prevArrow.off("click.slick",e.changeSlide),e.$nextArrow&&e.$nextArrow.off("click.slick",e.changeSlide),!0===e.options.accessibility&&(e.$prevArrow&&e.$prevArrow.off("keydown.slick",e.keyHandler),e.$nextArrow&&e.$nextArrow.off("keydown.slick",e.keyHandler))),e.$list.off("touchstart.slick mousedown.slick",e.swipeHandler),e.$list.off("touchmove.slick mousemove.slick",e.swipeHandler),e.$list.off("touchend.slick mouseup.slick",e.swipeHandler),e.$list.off("touchcancel.slick mouseleave.slick",e.swipeHandler),e.$list.off("click.slick",e.clickHandler),i(document).off(e.visibilityChange,e.visibility),e.cleanUpSlideEvents(),!0===e.options.accessibility&&e.$list.off("keydown.slick",e.keyHandler),!0===e.options.focusOnSelect&&i(e.$slideTrack).children().off("click.slick",e.selectHandler),i(window).off("orientationchange.slick.slick-"+e.instanceUid,e.orientationChange),i(window).off("resize.slick.slick-"+e.instanceUid,e.resize),i("[draggable!=true]",e.$slideTrack).off("dragstart",e.preventDefault),i(window).off("load.slick.slick-"+e.instanceUid,e.setPosition)},t.prototype.cleanUpSlideEvents=function(){var e=this;e.$list.off("mouseenter.slick",i.proxy(e.interrupt,e,!0)),e.$list.off("mouseleave.slick",i.proxy(e.interrupt,e,!1))},t.prototype.cleanUpRows=function(){var i,e=this;e.options.rows>0&&((i=e.$slides.children().children()).removeAttr("style"),e.$slider.empty().append(i))},t.prototype.clickHandler=function(i){!1===this.shouldClick&&(i.stopImmediatePropagation(),i.stopPropagation(),i.preventDefault())},t.prototype.destroy=function(e){var t=this;t.autoPlayClear(),t.touchObject={},t.cleanUpEvents(),i(".slick-cloned",t.$slider).detach(),t.$dots&&t.$dots.remove(),t.$prevArrow&&t.$prevArrow.length&&(t.$prevArrow.removeClass("slick-disabled slick-arrow slick-hidden").removeAttr("aria-hidden aria-disabled tabindex").css("display",""),t.htmlExpr.test(t.options.prevArrow)&&t.$prevArrow.remove()),t.$nextArrow&&t.$nextArrow.length&&(t.$nextArrow.removeClass("slick-disabled slick-arrow slick-hidden").removeAttr("aria-hidden aria-disabled tabindex").css("display",""),t.htmlExpr.test(t.options.nextArrow)&&t.$nextArrow.remove()),t.$slides&&(t.$slides.removeClass("slick-slide slick-active slick-center slick-visible slick-current").removeAttr("aria-hidden").removeAttr("data-slick-index").each((function(){i(this).attr("style",i(this).data("originalStyling"))})),t.$slideTrack.children(this.options.slide).detach(),t.$slideTrack.detach(),t.$list.detach(),t.$slider.append(t.$slides)),t.cleanUpRows(),t.$slider.removeClass("slick-slider"),t.$slider.removeClass("slick-initialized"),t.$slider.removeClass("slick-dotted"),t.unslicked=!0,e||t.$slider.trigger("destroy",[t])},t.prototype.disableTransition=function(i){var e=this,t={};t[e.transitionType]="",!1===e.options.fade?e.$slideTrack.css(t):e.$slides.eq(i).css(t)},t.prototype.fadeSlide=function(i,e){var t=this;!1===t.cssTransitions?(t.$slides.eq(i).css({zIndex:t.options.zIndex}),t.$slides.eq(i).animate({opacity:1},t.options.speed,t.options.easing,e)):(t.applyTransition(i),t.$slides.eq(i).css({opacity:1,zIndex:t.options.zIndex}),e&&setTimeout((function(){t.disableTransition(i),e.call()}),t.options.speed))},t.prototype.fadeSlideOut=function(i){var e=this;!1===e.cssTransitions?e.$slides.eq(i).animate({opacity:0,zIndex:e.options.zIndex-2},e.options.speed,e.options.easing):(e.applyTransition(i),e.$slides.eq(i).css({opacity:0,zIndex:e.options.zIndex-2}))},t.prototype.filterSlides=t.prototype.slickFilter=function(i){var e=this;null!==i&&(e.$slidesCache=e.$slides,e.unload(),e.$slideTrack.children(this.options.slide).detach(),e.$slidesCache.filter(i).appendTo(e.$slideTrack),e.reinit())},t.prototype.focusHandler=function(){var e=this;e.$slider.off("focus.slick blur.slick").on("focus.slick blur.slick","*",(function(t){t.stopImmediatePropagation();var o=i(this);setTimeout((function(){e.options.pauseOnFocus&&(e.focussed=o.is(":focus"),e.autoPlay())}),0)}))},t.prototype.getCurrent=t.prototype.slickCurrentSlide=function(){return this.currentSlide},t.prototype.getDotCount=function(){var i=this,e=0,t=0,o=0;if(!0===i.options.infinite)if(i.slideCount<=i.options.slidesToShow)++o;else for(;e<i.slideCount;)++o,e=t+i.options.slidesToScroll,t+=i.options.slidesToScroll<=i.options.slidesToShow?i.options.slidesToScroll:i.options.slidesToShow;else if(!0===i.options.centerMode)o=i.slideCount;else if(i.options.asNavFor)for(;e<i.slideCount;)++o,e=t+i.options.slidesToScroll,t+=i.options.slidesToScroll<=i.options.slidesToShow?i.options.slidesToScroll:i.options.slidesToShow;else o=1+Math.ceil((i.slideCount-i.options.slidesToShow)/i.options.slidesToScroll);return o-1},t.prototype.getLeft=function(i){var e,t,o,s,n=this,r=0;return n.slideOffset=0,t=n.$slides.first().outerHeight(!0),!0===n.options.infinite?(n.slideCount>n.options.slidesToShow&&(n.slideOffset=n.slideWidth*n.options.slidesToShow*-1,s=-1,!0===n.options.vertical&&!0===n.options.centerMode&&(2===n.options.slidesToShow?s=-1.5:1===n.options.slidesToShow&&(s=-2)),r=t*n.options.slidesToShow*s),n.slideCount%n.options.slidesToScroll!=0&&i+n.options.slidesToScroll>n.slideCount&&n.slideCount>n.options.slidesToShow&&(i>n.slideCount?(n.slideOffset=(n.options.slidesToShow-(i-n.slideCount))*n.slideWidth*-1,r=(n.options.slidesToShow-(i-n.slideCount))*t*-1):(n.slideOffset=n.slideCount%n.options.slidesToScroll*n.slideWidth*-1,r=n.slideCount%n.options.slidesToScroll*t*-1))):i+n.options.slidesToShow>n.slideCount&&(n.slideOffset=(i+n.options.slidesToShow-n.slideCount)*n.slideWidth,r=(i+n.options.slidesToShow-n.slideCount)*t),n.slideCount<=n.options.slidesToShow&&(n.slideOffset=0,r=0),!0===n.options.centerMode&&n.slideCount<=n.options.slidesToShow?n.slideOffset=n.slideWidth*Math.floor(n.options.slidesToShow)/2-n.slideWidth*n.slideCount/2:!0===n.options.centerMode&&!0===n.options.infinite?n.slideOffset+=n.slideWidth*Math.floor(n.options.slidesToShow/2)-n.slideWidth:!0===n.options.centerMode&&(n.slideOffset=0,n.slideOffset+=n.slideWidth*Math.floor(n.options.slidesToShow/2)),e=!1===n.options.vertical?i*n.slideWidth*-1+n.slideOffset:i*t*-1+r,!0===n.options.variableWidth&&(o=n.slideCount<=n.options.slidesToShow||!1===n.options.infinite?n.$slideTrack.children(".slick-slide").eq(i):n.$slideTrack.children(".slick-slide").eq(i+n.options.slidesToShow),e=!0===n.options.rtl?o[0]?-1*(n.$slideTrack.width()-o[0].offsetLeft-o.width()):0:o[0]?-1*o[0].offsetLeft:0,!0===n.options.centerMode&&(o=n.slideCount<=n.options.slidesToShow||!1===n.options.infinite?n.$slideTrack.children(".slick-slide").eq(i):n.$slideTrack.children(".slick-slide").eq(i+n.options.slidesToShow+1),e=!0===n.options.rtl?o[0]?-1*(n.$slideTrack.width()-o[0].offsetLeft-o.width()):0:o[0]?-1*o[0].offsetLeft:0,e+=(n.$list.width()-o.outerWidth())/2)),e},t.prototype.getOption=t.prototype.slickGetOption=function(i){return this.options[i]},t.prototype.getNavigableIndexes=function(){var i,e=this,t=0,o=0,s=[];for(!1===e.options.infinite?i=e.slideCount:(t=-1*e.options.slidesToScroll,o=-1*e.options.slidesToScroll,i=2*e.slideCount);t<i;)s.push(t),t=o+e.options.slidesToScroll,o+=e.options.slidesToScroll<=e.options.slidesToShow?e.options.slidesToScroll:e.options.slidesToShow;return s},t.prototype.getSlick=function(){return this},t.prototype.getSlideCount=function(){var e,t,o=this;return t=!0===o.options.centerMode?o.slideWidth*Math.floor(o.options.slidesToShow/2):0,!0===o.options.swipeToSlide?(o.$slideTrack.find(".slick-slide").each((function(s,n){if(n.offsetLeft-t+i(n).outerWidth()/2>-1*o.swipeLeft)return e=n,!1})),Math.abs(i(e).attr("data-slick-index")-o.currentSlide)||1):o.options.slidesToScroll},t.prototype.goTo=t.prototype.slickGoTo=function(i,e){this.changeSlide({data:{message:"index",index:parseInt(i)}},e)},t.prototype.init=function(e){var t=this;i(t.$slider).hasClass("slick-initialized")||(i(t.$slider).addClass("slick-initialized"),t.buildRows(),t.buildOut(),t.setProps(),t.startLoad(),t.loadSlider(),t.initializeEvents(),t.updateArrows(),t.updateDots(),t.checkResponsive(!0),t.focusHandler()),e&&t.$slider.trigger("init",[t]),!0===t.options.accessibility&&t.initADA(),t.options.autoplay&&(t.paused=!1,t.autoPlay())},t.prototype.initADA=function(){var e=this,t=Math.ceil(e.slideCount/e.options.slidesToScroll),o=e.getNavigableIndexes().filter((function(i){return i>=0&&i<e.slideCount}));e.$slides.add(e.$slideTrack.find(".slick-cloned")).attr({"aria-hidden":"true",tabindex:"-1"}).find("a, input, button, select").attr({tabindex:"-1"}),null!==e.$dots&&(e.$slides.not(e.$slideTrack.find(".slick-cloned")).each((function(t){var s=o.indexOf(t);if(i(this).attr({role:"tabpanel",id:"slick-slide"+e.instanceUid+t,tabindex:-1}),-1!==s){var n="slick-slide-control"+e.instanceUid+s;i("#"+n).length&&i(this).attr({"aria-describedby":n})}})),e.$dots.attr("role","tablist").find("li").each((function(s){var n=o[s];i(this).attr({role:"presentation"}),i(this).find("button").first().attr({role:"tab",id:"slick-slide-control"+e.instanceUid+s,"aria-controls":"slick-slide"+e.instanceUid+n,"aria-label":s+1+" of "+t,"aria-selected":null,tabindex:"-1"})})).eq(e.currentSlide).find("button").attr({"aria-selected":"true",tabindex:"0"}).end());for(var s=e.currentSlide,n=s+e.options.slidesToShow;s<n;s++)e.options.focusOnChange?e.$slides.eq(s).attr({tabindex:"0"}):e.$slides.eq(s).removeAttr("tabindex");e.activateADA()},t.prototype.initArrowEvents=function(){var i=this;!0===i.options.arrows&&i.slideCount>i.options.slidesToShow&&(i.$prevArrow.off("click.slick").on("click.slick",{message:"previous"},i.changeSlide),i.$nextArrow.off("click.slick").on("click.slick",{message:"next"},i.changeSlide),!0===i.options.accessibility&&(i.$prevArrow.on("keydown.slick",i.keyHandler),i.$nextArrow.on("keydown.slick",i.keyHandler)))},t.prototype.initDotEvents=function(){var e=this;!0===e.options.dots&&e.slideCount>e.options.slidesToShow&&(i("li",e.$dots).on("click.slick",{message:"index"},e.changeSlide),!0===e.options.accessibility&&e.$dots.on("keydown.slick",e.keyHandler)),!0===e.options.dots&&!0===e.options.pauseOnDotsHover&&e.slideCount>e.options.slidesToShow&&i("li",e.$dots).on("mouseenter.slick",i.proxy(e.interrupt,e,!0)).on("mouseleave.slick",i.proxy(e.interrupt,e,!1))},t.prototype.initSlideEvents=function(){var e=this;e.options.pauseOnHover&&(e.$list.on("mouseenter.slick",i.proxy(e.interrupt,e,!0)),e.$list.on("mouseleave.slick",i.proxy(e.interrupt,e,!1)))},t.prototype.initializeEvents=function(){var e=this;e.initArrowEvents(),e.initDotEvents(),e.initSlideEvents(),e.$list.on("touchstart.slick mousedown.slick",{action:"start"},e.swipeHandler),e.$list.on("touchmove.slick mousemove.slick",{action:"move"},e.swipeHandler),e.$list.on("touchend.slick mouseup.slick",{action:"end"},e.swipeHandler),e.$list.on("touchcancel.slick mouseleave.slick",{action:"end"},e.swipeHandler),e.$list.on("click.slick",e.clickHandler),i(document).on(e.visibilityChange,i.proxy(e.visibility,e)),!0===e.options.accessibility&&e.$list.on("keydown.slick",e.keyHandler),!0===e.options.focusOnSelect&&i(e.$slideTrack).children().on("click.slick",e.selectHandler),i(window).on("orientationchange.slick.slick-"+e.instanceUid,i.proxy(e.orientationChange,e)),i(window).on("resize.slick.slick-"+e.instanceUid,i.proxy(e.resize,e)),i("[draggable!=true]",e.$slideTrack).on("dragstart",e.preventDefault),i(window).on("load.slick.slick-"+e.instanceUid,e.setPosition),i(e.setPosition)},t.prototype.initUI=function(){var i=this;!0===i.options.arrows&&i.slideCount>i.options.slidesToShow&&(i.$prevArrow.show(),i.$nextArrow.show()),!0===i.options.dots&&i.slideCount>i.options.slidesToShow&&i.$dots.show()},t.prototype.keyHandler=function(i){var e=this;i.target.tagName.match("TEXTAREA|INPUT|SELECT")||(37===i.keyCode&&!0===e.options.accessibility?e.changeSlide({data:{message:!0===e.options.rtl?"next":"previous"}}):39===i.keyCode&&!0===e.options.accessibility&&e.changeSlide({data:{message:!0===e.options.rtl?"previous":"next"}}))},t.prototype.lazyLoad=function(){var e,t,o,s=this;function n(e){i("img[data-lazy]",e).each((function(){var e=i(this),t=i(this).attr("data-lazy"),o=i(this).attr("data-srcset"),n=i(this).attr("data-sizes")||s.$slider.attr("data-sizes"),r=document.createElement("img");r.onload=function(){e.animate({opacity:0},100,(function(){o&&(e.attr("srcset",o),n&&e.attr("sizes",n)),e.attr("src",t).animate({opacity:1},200,(function(){e.removeAttr("data-lazy data-srcset data-sizes").removeClass("slick-loading")})),s.$slider.trigger("lazyLoaded",[s,e,t])}))},r.onerror=function(){e.removeAttr("data-lazy").removeClass("slick-loading").addClass("slick-lazyload-error"),s.$slider.trigger("lazyLoadError",[s,e,t])},r.src=t}))}if(!0===s.options.centerMode?!0===s.options.infinite?o=(t=s.currentSlide+(s.options.slidesToShow/2+1))+s.options.slidesToShow+2:(t=Math.max(0,s.currentSlide-(s.options.slidesToShow/2+1)),o=s.options.slidesToShow/2+1+2+s.currentSlide):(t=s.options.infinite?s.options.slidesToShow+s.currentSlide:s.currentSlide,o=Math.ceil(t+s.options.slidesToShow),!0===s.options.fade&&(t>0&&t--,o<=s.slideCount&&o++)),e=s.$slider.find(".slick-slide").slice(t,o),"anticipated"===s.options.lazyLoad)for(var r=t-1,l=o,d=s.$slider.find(".slick-slide"),a=0;a<s.options.slidesToScroll;a++)r<0&&(r=s.slideCount-1),e=(e=e.add(d.eq(r))).add(d.eq(l)),r--,l++;n(e),s.slideCount<=s.options.slidesToShow?n(s.$slider.find(".slick-slide")):s.currentSlide>=s.slideCount-s.options.slidesToShow?n(s.$slider.find(".slick-cloned").slice(0,s.options.slidesToShow)):0===s.currentSlide&&n(s.$slider.find(".slick-cloned").slice(-1*s.options.slidesToShow))},t.prototype.loadSlider=function(){var i=this;i.setPosition(),i.$slideTrack.css({opacity:1}),i.$slider.removeClass("slick-loading"),i.initUI(),"progressive"===i.options.lazyLoad&&i.progressiveLazyLoad()},t.prototype.next=t.prototype.slickNext=function(){this.changeSlide({data:{message:"next"}})},t.prototype.orientationChange=function(){this.checkResponsive(),this.setPosition()},t.prototype.pause=t.prototype.slickPause=function(){this.autoPlayClear(),this.paused=!0},t.prototype.play=t.prototype.slickPlay=function(){var i=this;i.autoPlay(),i.options.autoplay=!0,i.paused=!1,i.focussed=!1,i.interrupted=!1},t.prototype.postSlide=function(e){var t=this;t.unslicked||(t.$slider.trigger("afterChange",[t,e]),t.animating=!1,t.slideCount>t.options.slidesToShow&&t.setPosition(),t.swipeLeft=null,t.options.autoplay&&t.autoPlay(),!0===t.options.accessibility&&(t.initADA(),t.options.focusOnChange&&i(t.$slides.get(t.currentSlide)).attr("tabindex",0).focus()))},t.prototype.prev=t.prototype.slickPrev=function(){this.changeSlide({data:{message:"previous"}})},t.prototype.preventDefault=function(i){i.preventDefault()},t.prototype.progressiveLazyLoad=function(e){e=e||1;var t,o,s,n,r,l=this,d=i("img[data-lazy]",l.$slider);d.length?(t=d.first(),o=t.attr("data-lazy"),s=t.attr("data-srcset"),n=t.attr("data-sizes")||l.$slider.attr("data-sizes"),(r=document.createElement("img")).onload=function(){s&&(t.attr("srcset",s),n&&t.attr("sizes",n)),t.attr("src",o).removeAttr("data-lazy data-srcset data-sizes").removeClass("slick-loading"),!0===l.options.adaptiveHeight&&l.setPosition(),l.$slider.trigger("lazyLoaded",[l,t,o]),l.progressiveLazyLoad()},r.onerror=function(){e<3?setTimeout((function(){l.progressiveLazyLoad(e+1)}),500):(t.removeAttr("data-lazy").removeClass("slick-loading").addClass("slick-lazyload-error"),l.$slider.trigger("lazyLoadError",[l,t,o]),l.progressiveLazyLoad())},r.src=o):l.$slider.trigger("allImagesLoaded",[l])},t.prototype.refresh=function(e){var t,o,s=this;o=s.slideCount-s.options.slidesToShow,!s.options.infinite&&s.currentSlide>o&&(s.currentSlide=o),s.slideCount<=s.options.slidesToShow&&(s.currentSlide=0),t=s.currentSlide,s.destroy(!0),i.extend(s,s.initials,{currentSlide:t}),s.init(),e||s.changeSlide({data:{message:"index",index:t}},!1)},t.prototype.registerBreakpoints=function(){var i,e,t,o=this,s=o.options.responsive||null;if(s.length){for(i in o.respondTo=o.options.respondTo||"window",s)if(t=o.breakpoints.length-1,s.hasOwnProperty(i)){for(e=s[i].breakpoint;t>=0;)o.breakpoints[t]&&o.breakpoints[t]===e&&o.breakpoints.splice(t,1),t--;o.breakpoints.push(e),o.breakpointSettings[e]=s[i].settings}o.breakpoints.sort((function(i,e){return o.options.mobileFirst?i-e:e-i}))}},t.prototype.reinit=function(){var e=this;e.$slides=e.$slideTrack.children(e.options.slide).addClass("slick-slide"),e.slideCount=e.$slides.length,e.currentSlide>=e.slideCount&&0!==e.currentSlide&&(e.currentSlide=e.currentSlide-e.options.slidesToScroll),e.slideCount<=e.options.slidesToShow&&(e.currentSlide=0),e.registerBreakpoints(),e.setProps(),e.setupInfinite(),e.buildArrows(),e.updateArrows(),e.initArrowEvents(),e.buildDots(),e.updateDots(),e.initDotEvents(),e.cleanUpSlideEvents(),e.initSlideEvents(),e.checkResponsive(!1,!0),!0===e.options.focusOnSelect&&i(e.$slideTrack).children().on("click.slick",e.selectHandler),e.setSlideClasses("number"==typeof e.currentSlide?e.currentSlide:0),e.setPosition(),e.focusHandler(),e.paused=!e.options.autoplay,e.autoPlay(),e.$slider.trigger("reInit",[e])},t.prototype.resize=function(){var e=this;i(window).width()!==e.windowWidth&&(clearTimeout(e.windowDelay),e.windowDelay=window.setTimeout((function(){e.windowWidth=i(window).width(),e.checkResponsive(),e.unslicked||e.setPosition()}),50))},t.prototype.removeSlide=t.prototype.slickRemove=function(i,e,t){var o=this;if(i="boolean"==typeof i?!0===(e=i)?0:o.slideCount-1:!0===e?--i:i,o.slideCount<1||i<0||i>o.slideCount-1)return!1;o.unload(),!0===t?o.$slideTrack.children().remove():o.$slideTrack.children(this.options.slide).eq(i).remove(),o.$slides=o.$slideTrack.children(this.options.slide),o.$slideTrack.children(this.options.slide).detach(),o.$slideTrack.append(o.$slides),o.$slidesCache=o.$slides,o.reinit()},t.prototype.setCSS=function(i){var e,t,o=this,s={};!0===o.options.rtl&&(i=-i),e="left"==o.positionProp?Math.ceil(i)+"px":"0px",t="top"==o.positionProp?Math.ceil(i)+"px":"0px",s[o.positionProp]=i,!1===o.transformsEnabled?o.$slideTrack.css(s):(s={},!1===o.cssTransitions?(s[o.animType]="translate("+e+", "+t+")",o.$slideTrack.css(s)):(s[o.animType]="translate3d("+e+", "+t+", 0px)",o.$slideTrack.css(s)))},t.prototype.setDimensions=function(){var i=this;!1===i.options.vertical?!0===i.options.centerMode&&i.$list.css({padding:"0px "+i.options.centerPadding}):(i.$list.height(i.$slides.first().outerHeight(!0)*i.options.slidesToShow),!0===i.options.centerMode&&i.$list.css({padding:i.options.centerPadding+" 0px"})),i.listWidth=i.$list.width(),i.listHeight=i.$list.height(),!1===i.options.vertical&&!1===i.options.variableWidth?(i.slideWidth=Math.ceil(i.listWidth/i.options.slidesToShow),i.$slideTrack.width(Math.ceil(i.slideWidth*i.$slideTrack.children(".slick-slide").length))):!0===i.options.variableWidth?i.$slideTrack.width(5e3*i.slideCount):(i.slideWidth=Math.ceil(i.listWidth),i.$slideTrack.height(Math.ceil(i.$slides.first().outerHeight(!0)*i.$slideTrack.children(".slick-slide").length)));var e=i.$slides.first().outerWidth(!0)-i.$slides.first().width();!1===i.options.variableWidth&&i.$slideTrack.children(".slick-slide").width(i.slideWidth-e)},t.prototype.setFade=function(){var e,t=this;t.$slides.each((function(o,s){e=t.slideWidth*o*-1,!0===t.options.rtl?i(s).css({position:"relative",right:e,top:0,zIndex:t.options.zIndex-2,opacity:0}):i(s).css({position:"relative",left:e,top:0,zIndex:t.options.zIndex-2,opacity:0})})),t.$slides.eq(t.currentSlide).css({zIndex:t.options.zIndex-1,opacity:1})},t.prototype.setHeight=function(){var i=this;if(!0===i.options.adaptiveHeight&&!1===i.options.vertical){var e=i.$slides.eq(i.currentSlide).outerHeight(!0);i.$list.css("height",e)}},t.prototype.setOption=t.prototype.slickSetOption=function(){var e,t,o,s,n,r=this,l=!1;if("object"==typeof arguments[0]?(o=arguments[0],l=arguments[1],n="multiple"):"string"==typeof arguments[0]&&(o=arguments[0],s=arguments[1],l=arguments[2],"responsive"===arguments[0]&&"array"==typeof arguments[1]?n="responsive":void 0!==arguments[1]&&(n="single")),"single"===n)r.options[o]=s;else if("multiple"===n)i.each(o,(function(i,e){r.options[i]=e}));else if("responsive"===n)for(t in s)if("array"!=typeof r.options.responsive)r.options.responsive=[s[t]];else{for(e=r.options.responsive.length-1;e>=0;)r.options.responsive[e].breakpoint===s[t].breakpoint&&r.options.responsive.splice(e,1),e--;r.options.responsive.push(s[t])}l&&(r.unload(),r.reinit())},t.prototype.setPosition=function(){var i=this;i.setDimensions(),i.setHeight(),!1===i.options.fade?i.setCSS(i.getLeft(i.currentSlide)):i.setFade(),i.$slider.trigger("setPosition",[i])},t.prototype.setProps=function(){var i=this,e=document.body.style;i.positionProp=!0===i.options.vertical?"top":"left","top"===i.positionProp?i.$slider.addClass("slick-vertical"):i.$slider.removeClass("slick-vertical"),void 0===e.WebkitTransition&&void 0===e.MozTransition&&void 0===e.msTransition||!0===i.options.useCSS&&(i.cssTransitions=!0),i.options.fade&&("number"==typeof i.options.zIndex?i.options.zIndex<3&&(i.options.zIndex=3):i.options.zIndex=i.defaults.zIndex),void 0!==e.OTransform&&(i.animType="OTransform",i.transformType="-o-transform",i.transitionType="OTransition",void 0===e.perspectiveProperty&&void 0===e.webkitPerspective&&(i.animType=!1)),void 0!==e.MozTransform&&(i.animType="MozTransform",i.transformType="-moz-transform",i.transitionType="MozTransition",void 0===e.perspectiveProperty&&void 0===e.MozPerspective&&(i.animType=!1)),void 0!==e.webkitTransform&&(i.animType="webkitTransform",i.transformType="-webkit-transform",i.transitionType="webkitTransition",void 0===e.perspectiveProperty&&void 0===e.webkitPerspective&&(i.animType=!1)),void 0!==e.msTransform&&(i.animType="msTransform",i.transformType="-ms-transform",i.transitionType="msTransition",void 0===e.msTransform&&(i.animType=!1)),void 0!==e.transform&&!1!==i.animType&&(i.animType="transform",i.transformType="transform",i.transitionType="transition"),i.transformsEnabled=i.options.useTransform&&null!==i.animType&&!1!==i.animType},t.prototype.setSlideClasses=function(i){var e,t,o,s,n=this;if(t=n.$slider.find(".slick-slide").removeClass("slick-active slick-center slick-current").attr("aria-hidden","true"),n.$slides.eq(i).addClass("slick-current"),!0===n.options.centerMode){var r=n.options.slidesToShow%2==0?1:0;e=Math.floor(n.options.slidesToShow/2),!0===n.options.infinite&&(i>=e&&i<=n.slideCount-1-e?n.$slides.slice(i-e+r,i+e+1).addClass("slick-active").attr("aria-hidden","false"):(o=n.options.slidesToShow+i,t.slice(o-e+1+r,o+e+2).addClass("slick-active").attr("aria-hidden","false")),0===i?t.eq(t.length-1-n.options.slidesToShow).addClass("slick-center"):i===n.slideCount-1&&t.eq(n.options.slidesToShow).addClass("slick-center")),n.$slides.eq(i).addClass("slick-center")}else i>=0&&i<=n.slideCount-n.options.slidesToShow?n.$slides.slice(i,i+n.options.slidesToShow).addClass("slick-active").attr("aria-hidden","false"):t.length<=n.options.slidesToShow?t.addClass("slick-active").attr("aria-hidden","false"):(s=n.slideCount%n.options.slidesToShow,o=!0===n.options.infinite?n.options.slidesToShow+i:i,n.options.slidesToShow==n.options.slidesToScroll&&n.slideCount-i<n.options.slidesToShow?t.slice(o-(n.options.slidesToShow-s),o+s).addClass("slick-active").attr("aria-hidden","false"):t.slice(o,o+n.options.slidesToShow).addClass("slick-active").attr("aria-hidden","false"));"ondemand"!==n.options.lazyLoad&&"anticipated"!==n.options.lazyLoad||n.lazyLoad()},t.prototype.setupInfinite=function(){var e,t,o,s=this;if(!0===s.options.fade&&(s.options.centerMode=!1),!0===s.options.infinite&&!1===s.options.fade&&(t=null,s.slideCount>s.options.slidesToShow)){for(o=!0===s.options.centerMode?s.options.slidesToShow+1:s.options.slidesToShow,e=s.slideCount;e>s.slideCount-o;e-=1)t=e-1,i(s.$slides[t]).clone(!0).attr("id","").attr("data-slick-index",t-s.slideCount).prependTo(s.$slideTrack).addClass("slick-cloned");for(e=0;e<o+s.slideCount;e+=1)t=e,i(s.$slides[t]).clone(!0).attr("id","").attr("data-slick-index",t+s.slideCount).appendTo(s.$slideTrack).addClass("slick-cloned");s.$slideTrack.find(".slick-cloned").find("[id]").each((function(){i(this).attr("id","")}))}},t.prototype.interrupt=function(i){i||this.autoPlay(),this.interrupted=i},t.prototype.selectHandler=function(e){var t=this,o=i(e.target).is(".slick-slide")?i(e.target):i(e.target).parents(".slick-slide"),s=parseInt(o.attr("data-slick-index"));s||(s=0),t.slideCount<=t.options.slidesToShow?t.slideHandler(s,!1,!0):t.slideHandler(s)},t.prototype.slideHandler=function(i,e,t){var o,s,n,r,l,d,a=this;if(e=e||!1,!(!0===a.animating&&!0===a.options.waitForAnimate||!0===a.options.fade&&a.currentSlide===i))if(!1===e&&a.asNavFor(i),o=i,l=a.getLeft(o),r=a.getLeft(a.currentSlide),a.currentLeft=null===a.swipeLeft?r:a.swipeLeft,!1===a.options.infinite&&!1===a.options.centerMode&&(i<0||i>a.getDotCount()*a.options.slidesToScroll))!1===a.options.fade&&(o=a.currentSlide,!0!==t&&a.slideCount>a.options.slidesToShow?a.animateSlide(r,(function(){a.postSlide(o)})):a.postSlide(o));else if(!1===a.options.infinite&&!0===a.options.centerMode&&(i<0||i>a.slideCount-a.options.slidesToScroll))!1===a.options.fade&&(o=a.currentSlide,!0!==t&&a.slideCount>a.options.slidesToShow?a.animateSlide(r,(function(){a.postSlide(o)})):a.postSlide(o));else{if(a.options.autoplay&&clearInterval(a.autoPlayTimer),s=o<0?a.slideCount%a.options.slidesToScroll!=0?a.slideCount-a.slideCount%a.options.slidesToScroll:a.slideCount+o:o>=a.slideCount?a.slideCount%a.options.slidesToScroll!=0?0:o-a.slideCount:o,a.animating=!0,a.$slider.trigger("beforeChange",[a,a.currentSlide,s]),n=a.currentSlide,a.currentSlide=s,a.setSlideClasses(a.currentSlide),a.options.asNavFor&&(d=(d=a.getNavTarget()).slick("getSlick")).slideCount<=d.options.slidesToShow&&d.setSlideClasses(a.currentSlide),a.updateDots(),a.updateArrows(),!0===a.options.fade)return!0!==t?(a.fadeSlideOut(n),a.fadeSlide(s,(function(){a.postSlide(s)}))):a.postSlide(s),void a.animateHeight();!0!==t&&a.slideCount>a.options.slidesToShow?a.animateSlide(l,(function(){a.postSlide(s)})):a.postSlide(s)}},t.prototype.startLoad=function(){var i=this;!0===i.options.arrows&&i.slideCount>i.options.slidesToShow&&(i.$prevArrow.hide(),i.$nextArrow.hide()),!0===i.options.dots&&i.slideCount>i.options.slidesToShow&&i.$dots.hide(),i.$slider.addClass("slick-loading")},t.prototype.swipeDirection=function(){var i,e,t,o,s=this;return i=s.touchObject.startX-s.touchObject.curX,e=s.touchObject.startY-s.touchObject.curY,t=Math.atan2(e,i),(o=Math.round(180*t/Math.PI))<0&&(o=360-Math.abs(o)),o<=45&&o>=0?!1===s.options.rtl?"left":"right":o<=360&&o>=315?!1===s.options.rtl?"left":"right":o>=135&&o<=225?!1===s.options.rtl?"right":"left":!0===s.options.verticalSwiping?o>=35&&o<=135?"down":"up":"vertical"},t.prototype.swipeEnd=function(i){var e,t,o=this;if(o.dragging=!1,o.swiping=!1,o.scrolling)return o.scrolling=!1,!1;if(o.interrupted=!1,o.shouldClick=!(o.touchObject.swipeLength>10),void 0===o.touchObject.curX)return!1;if(!0===o.touchObject.edgeHit&&o.$slider.trigger("edge",[o,o.swipeDirection()]),o.touchObject.swipeLength>=o.touchObject.minSwipe){switch(t=o.swipeDirection()){case"left":case"down":e=o.options.swipeToSlide?o.checkNavigable(o.currentSlide+o.getSlideCount()):o.currentSlide+o.getSlideCount(),o.currentDirection=0;break;case"right":case"up":e=o.options.swipeToSlide?o.checkNavigable(o.currentSlide-o.getSlideCount()):o.currentSlide-o.getSlideCount(),o.currentDirection=1}"vertical"!=t&&(o.slideHandler(e),o.touchObject={},o.$slider.trigger("swipe",[o,t]))}else o.touchObject.startX!==o.touchObject.curX&&(o.slideHandler(o.currentSlide),o.touchObject={})},t.prototype.swipeHandler=function(i){var e=this;if(!(!1===e.options.swipe||"ontouchend"in document&&!1===e.options.swipe||!1===e.options.draggable&&-1!==i.type.indexOf("mouse")))switch(e.touchObject.fingerCount=i.originalEvent&&void 0!==i.originalEvent.touches?i.originalEvent.touches.length:1,e.touchObject.minSwipe=e.listWidth/e.options.touchThreshold,!0===e.options.verticalSwiping&&(e.touchObject.minSwipe=e.listHeight/e.options.touchThreshold),i.data.action){case"start":e.swipeStart(i);break;case"move":e.swipeMove(i);break;case"end":e.swipeEnd(i)}},t.prototype.swipeMove=function(i){var e,t,o,s,n,r,l=this;return n=void 0!==i.originalEvent?i.originalEvent.touches:null,!(!l.dragging||l.scrolling||n&&1!==n.length)&&(e=l.getLeft(l.currentSlide),l.touchObject.curX=void 0!==n?n[0].pageX:i.clientX,l.touchObject.curY=void 0!==n?n[0].pageY:i.clientY,l.touchObject.swipeLength=Math.round(Math.sqrt(Math.pow(l.touchObject.curX-l.touchObject.startX,2))),r=Math.round(Math.sqrt(Math.pow(l.touchObject.curY-l.touchObject.startY,2))),!l.options.verticalSwiping&&!l.swiping&&r>4?(l.scrolling=!0,!1):(!0===l.options.verticalSwiping&&(l.touchObject.swipeLength=r),t=l.swipeDirection(),void 0!==i.originalEvent&&l.touchObject.swipeLength>4&&(l.swiping=!0,i.preventDefault()),s=(!1===l.options.rtl?1:-1)*(l.touchObject.curX>l.touchObject.startX?1:-1),!0===l.options.verticalSwiping&&(s=l.touchObject.curY>l.touchObject.startY?1:-1),o=l.touchObject.swipeLength,l.touchObject.edgeHit=!1,!1===l.options.infinite&&(0===l.currentSlide&&"right"===t||l.currentSlide>=l.getDotCount()&&"left"===t)&&(o=l.touchObject.swipeLength*l.options.edgeFriction,l.touchObject.edgeHit=!0),!1===l.options.vertical?l.swipeLeft=e+o*s:l.swipeLeft=e+o*(l.$list.height()/l.listWidth)*s,!0===l.options.verticalSwiping&&(l.swipeLeft=e+o*s),!0!==l.options.fade&&!1!==l.options.touchMove&&(!0===l.animating?(l.swipeLeft=null,!1):void l.setCSS(l.swipeLeft))))},t.prototype.swipeStart=function(i){var e,t=this;if(t.interrupted=!0,1!==t.touchObject.fingerCount||t.slideCount<=t.options.slidesToShow)return t.touchObject={},!1;void 0!==i.originalEvent&&void 0!==i.originalEvent.touches&&(e=i.originalEvent.touches[0]),t.touchObject.startX=t.touchObject.curX=void 0!==e?e.pageX:i.clientX,t.touchObject.startY=t.touchObject.curY=void 0!==e?e.pageY:i.clientY,t.dragging=!0},t.prototype.unfilterSlides=t.prototype.slickUnfilter=function(){var i=this;null!==i.$slidesCache&&(i.unload(),i.$slideTrack.children(this.options.slide).detach(),i.$slidesCache.appendTo(i.$slideTrack),i.reinit())},t.prototype.unload=function(){var e=this;i(".slick-cloned",e.$slider).remove(),e.$dots&&e.$dots.remove(),e.$prevArrow&&e.htmlExpr.test(e.options.prevArrow)&&e.$prevArrow.remove(),e.$nextArrow&&e.htmlExpr.test(e.options.nextArrow)&&e.$nextArrow.remove(),e.$slides.removeClass("slick-slide slick-active slick-visible slick-current").attr("aria-hidden","true").css("width","")},t.prototype.unslick=function(i){var e=this;e.$slider.trigger("unslick",[e,i]),e.destroy()},t.prototype.updateArrows=function(){var i=this;Math.floor(i.options.slidesToShow/2),!0===i.options.arrows&&i.slideCount>i.options.slidesToShow&&!i.options.infinite&&(i.$prevArrow.removeClass("slick-disabled").attr("aria-disabled","false"),i.$nextArrow.removeClass("slick-disabled").attr("aria-disabled","false"),0===i.currentSlide?(i.$prevArrow.addClass("slick-disabled").attr("aria-disabled","true"),i.$nextArrow.removeClass("slick-disabled").attr("aria-disabled","false")):i.currentSlide>=i.slideCount-i.options.slidesToShow&&!1===i.options.centerMode?(i.$nextArrow.addClass("slick-disabled").attr("aria-disabled","true"),i.$prevArrow.removeClass("slick-disabled").attr("aria-disabled","false")):i.currentSlide>=i.slideCount-1&&!0===i.options.centerMode&&(i.$nextArrow.addClass("slick-disabled").attr("aria-disabled","true"),i.$prevArrow.removeClass("slick-disabled").attr("aria-disabled","false")))},t.prototype.updateDots=function(){var i=this;null!==i.$dots&&(i.$dots.find("li").removeClass("slick-active").end(),i.$dots.find("li").eq(Math.floor(i.currentSlide/i.options.slidesToScroll)).addClass("slick-active"))},t.prototype.visibility=function(){var i=this;i.options.autoplay&&(document[i.hidden]?i.interrupted=!0:i.interrupted=!1)},i.fn.slick=function(){var i,e,o=this,s=arguments[0],n=Array.prototype.slice.call(arguments,1),r=o.length;for(i=0;i<r;i++)if("object"==typeof s||void 0===s?o[i].slick=new t(o[i],s):e=o[i].slick[s].apply(o[i].slick,n),void 0!==e)return e;return o}}));
lang/so-widgets-bundle.pot CHANGED
@@ -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:72, widgets/accordion/accordion.php:85, widgets/anything-carousel/anything-carousel.php:52, widgets/anything-carousel/anything-carousel.php:68, widgets/contact/contact.php:48, widgets/cta/cta.php:64, widgets/editor/editor.php:34, widgets/features/features.php:140, widgets/icon/icon.php:68, widgets/post-carousel/post-carousel.php:260, 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:53, widgets/tabs/tabs.php:72, widgets/tabs/tabs.php:85, 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
 
@@ -304,7 +304,7 @@ msgstr ""
304
  msgid "Panels"
305
  msgstr ""
306
 
307
- #: widgets/accordion/accordion.php:89, widgets/anything-carousel/anything-carousel.php:72, widgets/hero/hero.php:73, widgets/layout-slider/layout-slider.php:67, widgets/tabs/tabs.php:89
308
  msgid "Content"
309
  msgstr ""
310
 
@@ -368,7 +368,7 @@ msgstr ""
368
  msgid "Font color"
369
  msgstr ""
370
 
371
- #: widgets/accordion/accordion.php:176, widgets/anything-carousel/anything-carousel.php:83
372
  msgid "Bottom margin"
373
  msgstr ""
374
 
@@ -388,75 +388,79 @@ msgstr ""
388
  msgid "SiteOrigin Anything Carousel"
389
  msgstr ""
390
 
391
- #: widgets/anything-carousel/anything-carousel.php:57
 
 
 
 
392
  msgid "Items"
393
  msgstr ""
394
 
395
- #: widgets/anything-carousel/anything-carousel.php:58, widgets/anything-carousel/anything-carousel.php:90, base/inc/fields/repeater.class.php:54
396
  msgid "Item"
397
  msgstr ""
398
 
399
- #: widgets/anything-carousel/anything-carousel.php:95, widgets/button/button.php:201, widgets/contact/contact.php:450, widgets/contact/contact.php:500, widgets/features/features.php:158, widgets/features/features.php:179, widgets/features/features.php:200, widgets/headline/headline.php:88, widgets/headline/headline.php:169, base/inc/widgets/base-carousel.class.php:374
400
  msgid "Font"
401
  msgstr ""
402
 
403
- #: widgets/anything-carousel/anything-carousel.php:99, widgets/contact/contact.php:455, widgets/contact/contact.php:505, widgets/contact/contact.php:687, base/inc/widgets/base-carousel.class.php:378
404
  msgid "Font size"
405
  msgstr ""
406
 
407
- #: widgets/anything-carousel/anything-carousel.php:103, widgets/contact/contact.php:460, widgets/contact/contact.php:584, widgets/contact/contact.php:753, widgets/features/features.php:167, widgets/features/features.php:188, widgets/features/features.php:209, widgets/google-map/google-map.php:376, widgets/headline/headline.php:80, widgets/headline/headline.php:161, widgets/headline/headline.php:231, widgets/icon/icon.php:36, widgets/taxonomy/taxonomy.php:56, base/inc/widgets/base-carousel.class.php:382
408
  msgid "Color"
409
  msgstr ""
410
 
411
- #: widgets/anything-carousel/anything-carousel.php:107, widgets/contact/contact.php:513, widgets/social-media-buttons/social-media-buttons.php:193
412
  msgid "Margin"
413
  msgstr ""
414
 
415
- #: widgets/anything-carousel/anything-carousel.php:112, widgets/button/button.php:104, widgets/features/features.php:72, widgets/image-grid/image-grid.php:134, widgets/image-grid/image-grid.php:154
416
  msgid "Top"
417
  msgstr ""
418
 
419
- #: widgets/anything-carousel/anything-carousel.php:116, widgets/button/button.php:105, widgets/button/button.php:131, widgets/button/button.php:142, widgets/contact/contact.php:471, widgets/contact/contact.php:486, widgets/contact/contact.php:715, widgets/cta/cta.php:100, widgets/features/features.php:73, 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:50, widgets/image/image.php:70, widgets/image/image.php:82, widgets/image-grid/image-grid.php:137, widgets/image-grid/image-grid.php:167, widgets/simple-masonry/simple-masonry.php:216, widgets/social-media-buttons/social-media-buttons.php:175, widgets/social-media-buttons/social-media-buttons.php:186, widgets/testimonial/testimonial.php:256
420
  msgid "Right"
421
  msgstr ""
422
 
423
- #: widgets/anything-carousel/anything-carousel.php:120, widgets/button/button.php:106, widgets/features/features.php:74, widgets/image-grid/image-grid.php:140, widgets/image-grid/image-grid.php:156
424
  msgid "Bottom"
425
  msgstr ""
426
 
427
- #: widgets/anything-carousel/anything-carousel.php:124, widgets/button/button.php:107, widgets/button/button.php:130, widgets/button/button.php:141, widgets/contact/contact.php:470, widgets/contact/contact.php:485, widgets/contact/contact.php:714, widgets/cta/cta.php:99, widgets/features/features.php:75, widgets/headline/headline.php:101, widgets/headline/headline.php:111, widgets/headline/headline.php:182, widgets/headline/headline.php:192, widgets/headline/headline.php:247, widgets/headline/headline.php:256, widgets/icon/icon.php:49, widgets/image/image.php:69, widgets/image/image.php:81, widgets/image-grid/image-grid.php:143, widgets/image-grid/image-grid.php:165, widgets/simple-masonry/simple-masonry.php:215, widgets/social-media-buttons/social-media-buttons.php:174, widgets/social-media-buttons/social-media-buttons.php:185, widgets/testimonial/testimonial.php:255
428
  msgid "Left"
429
  msgstr ""
430
 
431
- #: widgets/anything-carousel/anything-carousel.php:133, widgets/post-carousel/post-carousel.php:180
432
  msgid "Navigation"
433
  msgstr ""
434
 
435
- #: widgets/anything-carousel/anything-carousel.php:138
436
  msgid "Arrows color"
437
  msgstr ""
438
 
439
- #: widgets/anything-carousel/anything-carousel.php:143
440
  msgid "Arrows hover color"
441
  msgstr ""
442
 
443
- #: widgets/anything-carousel/anything-carousel.php:148
444
  msgid "Arrows margin"
445
  msgstr ""
446
 
447
- #: widgets/anything-carousel/anything-carousel.php:149
448
  msgid "The space between the navigation arrows and items."
449
  msgstr ""
450
 
451
- #: widgets/anything-carousel/anything-carousel.php:153
452
  msgid "Dots color"
453
  msgstr ""
454
 
455
- #: widgets/anything-carousel/anything-carousel.php:158
456
  msgid "Dots selected and hover color"
457
  msgstr ""
458
 
459
- #: widgets/anything-carousel/anything-carousel.php:265
460
  msgid "Add widgets and layouts to your carousel items with %sSiteOrigin Premium%s"
461
  msgstr ""
462
 
@@ -2104,19 +2108,19 @@ msgstr ""
2104
  msgid "Link hover color"
2105
  msgstr ""
2106
 
2107
- #: widgets/hero/hero.php:627
2108
  msgid "Add multiple Hero frames in one go with %sSiteOrigin Premium%s"
2109
  msgstr ""
2110
 
2111
- #: widgets/hero/hero.php:632
2112
  msgid "Add Hero frame content animation effects with %sSiteOrigin Premium%s"
2113
  msgstr ""
2114
 
2115
- #: widgets/hero/hero.php:637, widgets/layout-slider/layout-slider.php:482, widgets/slider/slider.php:368
2116
  msgid "Add parallax and fixed background images with %sSiteOrigin Premium%s"
2117
  msgstr ""
2118
 
2119
- #: widgets/hero/hero.php:642
2120
  msgid "Use Google Fonts right inside the Hero Widget with %sSiteOrigin Premium%s"
2121
  msgstr ""
2122
 
296
  msgid "When opening the panel, scroll the user to the top of the panel."
297
  msgstr ""
298
 
299
+ #: widgets/accordion/accordion.php:72, widgets/accordion/accordion.php:85, widgets/anything-carousel/anything-carousel.php:65, widgets/anything-carousel/anything-carousel.php:81, widgets/contact/contact.php:48, widgets/cta/cta.php:64, widgets/editor/editor.php:34, widgets/features/features.php:140, widgets/icon/icon.php:68, widgets/post-carousel/post-carousel.php:260, 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:53, widgets/tabs/tabs.php:72, widgets/tabs/tabs.php:85, 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
 
304
  msgid "Panels"
305
  msgstr ""
306
 
307
+ #: widgets/accordion/accordion.php:89, widgets/anything-carousel/anything-carousel.php:85, widgets/hero/hero.php:73, widgets/layout-slider/layout-slider.php:67, widgets/tabs/tabs.php:89
308
  msgid "Content"
309
  msgstr ""
310
 
368
  msgid "Font color"
369
  msgstr ""
370
 
371
+ #: widgets/accordion/accordion.php:176, widgets/anything-carousel/anything-carousel.php:96
372
  msgid "Bottom margin"
373
  msgstr ""
374
 
388
  msgid "SiteOrigin Anything Carousel"
389
  msgstr ""
390
 
391
+ #: widgets/anything-carousel/anything-carousel.php:56
392
+ msgid "Adaptive height"
393
+ msgstr ""
394
+
395
+ #: widgets/anything-carousel/anything-carousel.php:70
396
  msgid "Items"
397
  msgstr ""
398
 
399
+ #: widgets/anything-carousel/anything-carousel.php:71, widgets/anything-carousel/anything-carousel.php:103, base/inc/fields/repeater.class.php:54
400
  msgid "Item"
401
  msgstr ""
402
 
403
+ #: widgets/anything-carousel/anything-carousel.php:108, widgets/button/button.php:201, widgets/contact/contact.php:450, widgets/contact/contact.php:500, widgets/features/features.php:158, widgets/features/features.php:179, widgets/features/features.php:200, widgets/headline/headline.php:88, widgets/headline/headline.php:169, base/inc/widgets/base-carousel.class.php:374
404
  msgid "Font"
405
  msgstr ""
406
 
407
+ #: widgets/anything-carousel/anything-carousel.php:112, widgets/contact/contact.php:455, widgets/contact/contact.php:505, widgets/contact/contact.php:687, base/inc/widgets/base-carousel.class.php:378
408
  msgid "Font size"
409
  msgstr ""
410
 
411
+ #: widgets/anything-carousel/anything-carousel.php:116, widgets/contact/contact.php:460, widgets/contact/contact.php:584, widgets/contact/contact.php:753, widgets/features/features.php:167, widgets/features/features.php:188, widgets/features/features.php:209, widgets/google-map/google-map.php:376, widgets/headline/headline.php:80, widgets/headline/headline.php:161, widgets/headline/headline.php:231, widgets/icon/icon.php:36, widgets/taxonomy/taxonomy.php:56, base/inc/widgets/base-carousel.class.php:382
412
  msgid "Color"
413
  msgstr ""
414
 
415
+ #: widgets/anything-carousel/anything-carousel.php:120, widgets/contact/contact.php:513, widgets/social-media-buttons/social-media-buttons.php:193
416
  msgid "Margin"
417
  msgstr ""
418
 
419
+ #: widgets/anything-carousel/anything-carousel.php:125, widgets/button/button.php:104, widgets/features/features.php:72, widgets/image-grid/image-grid.php:134, widgets/image-grid/image-grid.php:154
420
  msgid "Top"
421
  msgstr ""
422
 
423
+ #: widgets/anything-carousel/anything-carousel.php:129, widgets/button/button.php:105, widgets/button/button.php:131, widgets/button/button.php:142, widgets/contact/contact.php:471, widgets/contact/contact.php:486, widgets/contact/contact.php:715, widgets/cta/cta.php:100, widgets/features/features.php:73, 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:50, widgets/image/image.php:70, widgets/image/image.php:82, widgets/image-grid/image-grid.php:137, widgets/image-grid/image-grid.php:167, widgets/simple-masonry/simple-masonry.php:216, widgets/social-media-buttons/social-media-buttons.php:175, widgets/social-media-buttons/social-media-buttons.php:186, widgets/testimonial/testimonial.php:256
424
  msgid "Right"
425
  msgstr ""
426
 
427
+ #: widgets/anything-carousel/anything-carousel.php:133, widgets/button/button.php:106, widgets/features/features.php:74, widgets/image-grid/image-grid.php:140, widgets/image-grid/image-grid.php:156
428
  msgid "Bottom"
429
  msgstr ""
430
 
431
+ #: widgets/anything-carousel/anything-carousel.php:137, widgets/button/button.php:107, widgets/button/button.php:130, widgets/button/button.php:141, widgets/contact/contact.php:470, widgets/contact/contact.php:485, widgets/contact/contact.php:714, widgets/cta/cta.php:99, widgets/features/features.php:75, widgets/headline/headline.php:101, widgets/headline/headline.php:111, widgets/headline/headline.php:182, widgets/headline/headline.php:192, widgets/headline/headline.php:247, widgets/headline/headline.php:256, widgets/icon/icon.php:49, widgets/image/image.php:69, widgets/image/image.php:81, widgets/image-grid/image-grid.php:143, widgets/image-grid/image-grid.php:165, widgets/simple-masonry/simple-masonry.php:215, widgets/social-media-buttons/social-media-buttons.php:174, widgets/social-media-buttons/social-media-buttons.php:185, widgets/testimonial/testimonial.php:255
432
  msgid "Left"
433
  msgstr ""
434
 
435
+ #: widgets/anything-carousel/anything-carousel.php:146, widgets/post-carousel/post-carousel.php:180
436
  msgid "Navigation"
437
  msgstr ""
438
 
439
+ #: widgets/anything-carousel/anything-carousel.php:151
440
  msgid "Arrows color"
441
  msgstr ""
442
 
443
+ #: widgets/anything-carousel/anything-carousel.php:156
444
  msgid "Arrows hover color"
445
  msgstr ""
446
 
447
+ #: widgets/anything-carousel/anything-carousel.php:161
448
  msgid "Arrows margin"
449
  msgstr ""
450
 
451
+ #: widgets/anything-carousel/anything-carousel.php:162
452
  msgid "The space between the navigation arrows and items."
453
  msgstr ""
454
 
455
+ #: widgets/anything-carousel/anything-carousel.php:166
456
  msgid "Dots color"
457
  msgstr ""
458
 
459
+ #: widgets/anything-carousel/anything-carousel.php:171
460
  msgid "Dots selected and hover color"
461
  msgstr ""
462
 
463
+ #: widgets/anything-carousel/anything-carousel.php:286
464
  msgid "Add widgets and layouts to your carousel items with %sSiteOrigin Premium%s"
465
  msgstr ""
466
 
2108
  msgid "Link hover color"
2109
  msgstr ""
2110
 
2111
+ #: widgets/hero/hero.php:633
2112
  msgid "Add multiple Hero frames in one go with %sSiteOrigin Premium%s"
2113
  msgstr ""
2114
 
2115
+ #: widgets/hero/hero.php:638
2116
  msgid "Add Hero frame content animation effects with %sSiteOrigin Premium%s"
2117
  msgstr ""
2118
 
2119
+ #: widgets/hero/hero.php:643, widgets/layout-slider/layout-slider.php:482, widgets/slider/slider.php:368
2120
  msgid "Add parallax and fixed background images with %sSiteOrigin Premium%s"
2121
  msgstr ""
2122
 
2123
+ #: widgets/hero/hero.php:648
2124
  msgid "Use Google Fonts right inside the Hero Widget with %sSiteOrigin Premium%s"
2125
  msgstr ""
2126
 
readme.txt CHANGED
@@ -3,8 +3,8 @@ Tags: widget, button, slider, hero, google maps, image, carousel, lottie, featur
3
  Requires at least: 4.2
4
  Tested up to: 6.0
5
  Requires PHP: 5.6.20
6
- Stable tag: 1.37.1
7
- Build time: 2022-07-08T20:00:16+02:00
8
  License: GPLv3 or later
9
  Contributors: gpriday, braam-genis, alexgso
10
  Donate link: https://siteorigin.com/downloads/premium/
@@ -105,6 +105,11 @@ The Widgets Bundle global interface is available at Plugins > SiteOrigin Widgets
105
 
106
  == Changelog ==
107
 
 
 
 
 
 
108
  = 1.37.1 - 08 July 2022 =
109
  * Contact Form: Maintain radio and checkbox input size on iOS.
110
  * Hero: Resolved Extra Top Padding related notice.
3
  Requires at least: 4.2
4
  Tested up to: 6.0
5
  Requires PHP: 5.6.20
6
+ Stable tag: 1.38.0
7
+ Build time: 2022-07-14T21:03:51+02:00
8
  License: GPLv3 or later
9
  Contributors: gpriday, braam-genis, alexgso
10
  Donate link: https://siteorigin.com/downloads/premium/
105
 
106
  == Changelog ==
107
 
108
+ = 1.38.0 - 14 July 2022 =
109
+ * Anything Carousel: Added `Adaptive Height` setting.
110
+ * Hero: Prevented padding reset on mobile if mobile values are empty.
111
+ * Developer: Allow plugins to filter global settings defaults via `siteorigin_widgets_settings_form`.
112
+
113
  = 1.37.1 - 08 July 2022 =
114
  * Contact Form: Maintain radio and checkbox input size on iOS.
115
  * Hero: Resolved Extra Top Padding related notice.
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.37.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.37.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.38.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.38.0' );
16
  define( 'SOW_BUNDLE_BASE_FILE', __FILE__ );
17
 
18
  // Allow JS suffix to be pre-set.
widgets/anything-carousel/anything-carousel.php CHANGED
@@ -46,6 +46,19 @@ class SiteOrigin_Widget_Anything_Carousel_Widget extends SiteOrigin_Widget_Base_
46
  '%',
47
  );
48
 
 
 
 
 
 
 
 
 
 
 
 
 
 
49
  return array(
50
  'title' => array(
51
  'type' => 'text',
@@ -73,7 +86,7 @@ class SiteOrigin_Widget_Anything_Carousel_Widget extends SiteOrigin_Widget_Base_
73
  ),
74
  ),
75
  ),
76
- 'carousel_settings' => $this->carousel_settings_form_fields(),
77
  'design' => $this->design_settings_form_fields(
78
  array(
79
  'item_title' => array(
@@ -184,6 +197,11 @@ class SiteOrigin_Widget_Anything_Carousel_Widget extends SiteOrigin_Widget_Base_
184
  $instance['responsive']['mobile']['slides_to_show'] = $instance['responsive']['mobile']['slides_to_scroll'];
185
  }
186
 
 
 
 
 
 
187
  return $instance;
188
  }
189
 
@@ -233,6 +251,9 @@ class SiteOrigin_Widget_Anything_Carousel_Widget extends SiteOrigin_Widget_Base_
233
  }
234
 
235
  public function get_template_variables( $instance, $args ) {
 
 
 
236
  return array(
237
  'settings' => array(
238
  'title' => $instance['title'],
@@ -245,7 +266,7 @@ class SiteOrigin_Widget_Anything_Carousel_Widget extends SiteOrigin_Widget_Base_
245
  'widget' => 'anything',
246
  'item_count' => ! empty( $instance['items'] ) ? count( $instance['items'] ) : 0,
247
  'loop' => ! empty( $instance['loop_posts'] ),
248
- 'carousel_settings' => $this->carousel_settings_template_variables( $instance['carousel_settings'] ),
249
  'responsive' => $this->responsive_template_variables( $instance['responsive'] ),
250
  ),
251
  ),
46
  '%',
47
  );
48
 
49
+ $carousel_settings = $this->carousel_settings_form_fields();
50
+ siteorigin_widgets_array_insert(
51
+ $carousel_settings['fields'],
52
+ 'autoplay_pause_hover',
53
+ array(
54
+ 'adaptive_height' => array(
55
+ 'type' => 'checkbox',
56
+ 'label' => __( 'Adaptive height', 'so-widgets-bundle' ),
57
+ 'default' => false,
58
+ ),
59
+ )
60
+ );
61
+
62
  return array(
63
  'title' => array(
64
  'type' => 'text',
86
  ),
87
  ),
88
  ),
89
+ 'carousel_settings' => $carousel_settings,
90
  'design' => $this->design_settings_form_fields(
91
  array(
92
  'item_title' => array(
197
  $instance['responsive']['mobile']['slides_to_show'] = $instance['responsive']['mobile']['slides_to_scroll'];
198
  }
199
 
200
+ // If carousel was created before Adaptive Height was introduced, disable it.
201
+ if ( ! empty( $instance['carousel_settings'] ) && ! isset( $instance['carousel_settings']['adaptive_height'] ) ) {
202
+ $instance['carousel_settings']['adaptive_height'] = false;
203
+ }
204
+
205
  return $instance;
206
  }
207
 
251
  }
252
 
253
  public function get_template_variables( $instance, $args ) {
254
+ $carousel_settings = $this->carousel_settings_template_variables( $instance['carousel_settings'], false );
255
+ $carousel_settings['adaptive_height'] = $instance['carousel_settings']['adaptive_height'];
256
+
257
  return array(
258
  'settings' => array(
259
  'title' => $instance['title'],
266
  'widget' => 'anything',
267
  'item_count' => ! empty( $instance['items'] ) ? count( $instance['items'] ) : 0,
268
  'loop' => ! empty( $instance['loop_posts'] ),
269
+ 'carousel_settings' => json_encode( $carousel_settings ),
270
  'responsive' => $this->responsive_template_variables( $instance['responsive'] ),
271
  ),
272
  ),
widgets/hero/hero.php CHANGED
@@ -544,6 +544,12 @@ class SiteOrigin_Widget_Hero_Widget extends SiteOrigin_Widget_Base_Slider {
544
  if ( isset( $settings['padding_extra_top'] ) ) {
545
  $meas_options['slide_padding_extra_top_responsive'] = ! empty( $settings['padding_extra_top'] ) ? $settings['padding_extra_top'] : '0px';
546
  }
 
 
 
 
 
 
547
  $meas_options['slide_padding_sides_responsive'] = ! empty( $settings['padding_sides'] ) ? $settings['padding_sides'] : '';
548
  }
549
  }
544
  if ( isset( $settings['padding_extra_top'] ) ) {
545
  $meas_options['slide_padding_extra_top_responsive'] = ! empty( $settings['padding_extra_top'] ) ? $settings['padding_extra_top'] : '0px';
546
  }
547
+
548
+ // If neither padding is set, we need to unset them both to prevent an override.
549
+ if ( $meas_options['slide_padding_responsive'] == '0px' && $meas_options['slide_padding_extra_top_responsive'] == '0px') {
550
+ unset( $meas_options['slide_padding_responsive'] );
551
+ unset( $meas_options['slide_padding_extra_top_responsive'] );
552
+ }
553
  $meas_options['slide_padding_sides_responsive'] = ! empty( $settings['padding_sides'] ) ? $settings['padding_sides'] : '';
554
  }
555
  }
widgets/tabs/styles/default.less CHANGED
@@ -37,6 +37,9 @@
37
  @panels_border_radius: default;
38
  @panels_padding: 30px 30px 30px 35px;
39
 
 
 
 
40
  .sow-tabs {
41
 
42
  .sow-tabs-tab-container {
@@ -174,4 +177,26 @@
174
  display: block !important;
175
  }
176
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
177
  }
37
  @panels_border_radius: default;
38
  @panels_padding: 30px 30px 30px 35px;
39
 
40
+ @responsive_breakpoint: default;
41
+ @tabs_position_mobile: default;
42
+
43
  .sow-tabs {
44
 
45
  .sow-tabs-tab-container {
177
  display: block !important;
178
  }
179
  }
180
+
181
+ & when not ( @tabs_position_mobile = default ) {
182
+ @media (max-width: @responsive_breakpoint) {
183
+ & when ( @tabs_position_mobile = left ) {
184
+ flex-direction: column;
185
+ }
186
+
187
+ & when ( @tabs_position_mobile = right ) {
188
+ flex-direction: column-reverse;
189
+ }
190
+
191
+ .sow-tabs-tab-container {
192
+ padding-bottom: 12px;
193
+
194
+ .sow-tabs-tab {
195
+ box-sizing: border-box;
196
+ margin: 0;
197
+ width: 100%;
198
+ }
199
+ }
200
+ }
201
+ }
202
  }