Instagram Widget by WPZOOM - Version 2.0.0

Version Description

  • We've made our plugin better and more user-friendly!
  • New: Gutenberg block
  • New: Create multiple feeds with different configurations
  • New: Embed your Instagram feeds using a shortcode anywhere you want
  • New: Customize the colors
  • New: Full-width layout
  • New: Connect multiple Instagram accounts [PRO only]
  • New: Masonry Layout [PRO only]
  • New: Load More button [PRO only]
Download this release

Release Info

Developer WPZOOM
Plugin Icon 128x128 Instagram Widget by WPZOOM
Version 2.0.0
Comparing to
See all releases

Code changes from version 1.9.5 to 2.0.0

Files changed (64) hide show
  1. .vscode/settings.json +2 -0
  2. assets/backend/img/user-avatar.jpg +0 -0
  3. class-wpzoom-instagram-block.php +157 -0
  4. class-wpzoom-instagram-image-uploader.php +17 -7
  5. class-wpzoom-instagram-widget-after-setup.php +90 -0
  6. class-wpzoom-instagram-widget-api.php +170 -339
  7. class-wpzoom-instagram-widget-display.php +802 -0
  8. class-wpzoom-instagram-widget-settings.php +2243 -47
  9. class-wpzoom-instagram-widget.php +745 -744
  10. css/admin-instagram-widget.css +0 -144
  11. dist/images/backend/user-avatar.jpg +0 -0
  12. {images → dist/images/frontend}/wpzoom-instagram-icons.svg +0 -0
  13. dist/scripts/backend/block.asset.php +1 -0
  14. dist/scripts/backend/block.js +2 -0
  15. dist/scripts/backend/index.asset.php +1 -0
  16. dist/scripts/backend/index.js +1 -0
  17. dist/scripts/frontend/block.asset.php +1 -0
  18. dist/scripts/frontend/block.js +1 -0
  19. dist/scripts/frontend/index.asset.php +1 -0
  20. dist/scripts/frontend/index.js +1 -0
  21. dist/scripts/frontend/preview.asset.php +1 -0
  22. dist/scripts/frontend/preview.js +1 -0
  23. dist/scripts/library/lazy.js +1 -0
  24. dist/scripts/library/magnific-popup.js +1 -0
  25. dist/scripts/library/swiper.js +1 -0
  26. dist/styles/backend/index-rtl.css +1 -0
  27. dist/styles/backend/index.asset.php +1 -0
  28. dist/styles/backend/index.css +1 -0
  29. dist/styles/frontend/block-rtl.css +1 -0
  30. dist/styles/frontend/block.asset.php +1 -0
  31. dist/styles/frontend/block.css +1 -0
  32. dist/styles/frontend/index-rtl.css +1 -0
  33. dist/styles/frontend/index.asset.php +1 -0
  34. dist/styles/frontend/index.css +1 -0
  35. dist/styles/frontend/preview-rtl.css +1 -0
  36. dist/styles/frontend/preview.asset.php +1 -0
  37. dist/styles/frontend/preview.css +1 -0
  38. {assets/frontend/magnific-popup → dist/styles/library}/magnific-popup.css +0 -0
  39. {assets/frontend/swiper → dist/styles/library}/swiper.css +0 -0
  40. images/wpzoom.png +0 -0
  41. instagram-widget-by-wpzoom.php +13 -8
  42. js/admin-instagram-widget.js +0 -169
  43. js/instagram-widget.js +0 -210
  44. languages/instagram-widget-by-wpzoom.pot +182 -290
  45. postcss.config.js +67 -0
  46. readme.txt +43 -14
  47. src/images/backend/user-avatar.jpg +0 -0
  48. src/images/frontend/wpzoom-instagram-icons.svg +9 -0
  49. src/scripts/backend/block.js +165 -0
  50. src/scripts/backend/custom-server-side-render/custom-server-side-render.js +208 -0
  51. src/scripts/backend/custom-server-side-render/index.js +50 -0
  52. src/scripts/backend/index.js +700 -0
  53. src/scripts/frontend/block.js +79 -0
  54. src/scripts/frontend/index.js +215 -0
  55. src/scripts/frontend/preview.js +11 -0
  56. js/jquery.lazy.min.js → src/scripts/library/lazy.js +0 -0
  57. assets/frontend/magnific-popup/jquery.magnific-popup.min.js → src/scripts/library/magnific-popup.js +0 -0
  58. {assets/frontend/swiper → src/scripts/library}/swiper.js +0 -0
  59. src/styles/backend/index.scss +2549 -0
  60. src/styles/frontend/block.scss +865 -0
  61. css/instagram-widget.css → src/styles/frontend/index.scss +372 -50
  62. src/styles/frontend/preview.scss +107 -0
  63. src/styles/library/magnific-popup.css +351 -0
  64. src/styles/library/swiper.css +13 -0
.vscode/settings.json ADDED
@@ -0,0 +1,2 @@
 
 
1
+ {
2
+ }
assets/backend/img/user-avatar.jpg DELETED
Binary file
class-wpzoom-instagram-block.php ADDED
@@ -0,0 +1,157 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Exit if accessed directly.
4
+ */
5
+ defined( 'ABSPATH' ) or die;
6
+
7
+ /**
8
+ * WPZOOM Instagram Block class
9
+ *
10
+ * @package Wpzoom_Instagram_Block
11
+ */
12
+ class Wpzoom_Instagram_Block {
13
+ /**
14
+ * @var WPZOOM_Instagram_Widget_Settings The reference to *Singleton* instance of this class
15
+ *
16
+ * @since 1.8.4
17
+ */
18
+ private static $instance;
19
+
20
+ /**
21
+ * @var Wpzoom_Instagram_Widget_Display
22
+ */
23
+ protected $display;
24
+
25
+ /**
26
+ * Returns the *Singleton* instance of this class.
27
+ *
28
+ * @return WPZOOM_Instagram_Widget_Settings The *Singleton* instance.
29
+ */
30
+ public static function get_instance() {
31
+ if ( null === self::$instance ) {
32
+ self::$instance = new self();
33
+ }
34
+
35
+ return self::$instance;
36
+ }
37
+
38
+ /**
39
+ * Constructor.
40
+ */
41
+ public function __construct() {
42
+ $this->display = Wpzoom_Instagram_Widget_Display::getInstance();
43
+
44
+ add_action( 'init', array( $this, 'init' ) );
45
+ add_filter( 'block_categories_all', array( $this, 'block_categories' ), 10, 2 );
46
+ }
47
+
48
+ /**
49
+ * Initialize the block.
50
+ */
51
+ public function init() {
52
+ $script_asset_file = include( plugin_dir_path( __FILE__ ) . 'dist/scripts/backend/block.asset.php' );
53
+ $style_asset_file = include( plugin_dir_path( __FILE__ ) . 'dist/styles/frontend/block.asset.php' );
54
+
55
+ wp_register_script(
56
+ 'wpz-insta_block-backend-script',
57
+ plugins_url( 'dist/scripts/backend/block.js', __FILE__ ),
58
+ $script_asset_file['dependencies'],
59
+ $script_asset_file['version']
60
+ );
61
+
62
+ wp_register_script(
63
+ 'magnific-popup',
64
+ plugins_url( 'dist/scripts/library/magnific-popup.js', __FILE__ ),
65
+ array( 'jquery', 'underscore', 'wp-util' ),
66
+ filemtime( plugin_dir_path( __FILE__ ) . 'dist/scripts/library/magnific-popup.js' ),
67
+ true
68
+ );
69
+
70
+ wp_register_script(
71
+ 'swiper-js',
72
+ plugins_url( 'dist/scripts/library/swiper.js', __FILE__ ),
73
+ array(),
74
+ '7.0.0-alpha.21'
75
+ );
76
+
77
+ wp_register_script(
78
+ 'wpz-insta_block-frontend-script',
79
+ plugins_url( 'dist/scripts/frontend/block.js', __FILE__ ),
80
+ array( 'jquery', 'underscore', 'magnific-popup', 'swiper-js' ),
81
+ $script_asset_file['version']
82
+ );
83
+
84
+ wp_register_style(
85
+ 'magnific-popup',
86
+ plugins_url( 'dist/styles/library/magnific-popup.css', __FILE__ ),
87
+ array( 'dashicons' ),
88
+ WPZOOM_INSTAGRAM_VERSION
89
+ );
90
+
91
+ wp_enqueue_style(
92
+ 'swiper-css',
93
+ plugins_url( 'dist/styles/library/swiper.css', __FILE__ ),
94
+ array(),
95
+ '7.0.0-alpha.21'
96
+ );
97
+
98
+ wp_register_style(
99
+ 'wpz-insta_block-frontend-style',
100
+ plugins_url( 'dist/styles/frontend/block.css', __FILE__ ),
101
+ array( 'magnific-popup', 'swiper-css' ),
102
+ $style_asset_file['version']
103
+ );
104
+
105
+ register_block_type(
106
+ 'wpzoom/instagram-block',
107
+ array(
108
+ 'api_version' => 2,
109
+ 'category' => 'wpzoom-blocks',
110
+ 'editor_script' => 'wpz-insta_block-backend-script',
111
+ 'script' => 'wpz-insta_block-frontend-script',
112
+ 'style' => 'wpz-insta_block-frontend-style',
113
+ 'render_callback' => array( $this, 'render' ),
114
+ 'attributes' => array(
115
+ 'feed' => array(
116
+ 'type' => 'integer',
117
+ 'default' => -1,
118
+ ),
119
+ ),
120
+ )
121
+ );
122
+ }
123
+
124
+ /**
125
+ * Add the WPZOOM block category if needed.
126
+ */
127
+ public function block_categories( $categories ) {
128
+ if ( empty( $categories ) || ( ! empty( $categories ) && is_array( $categories ) && ! in_array( 'wpzoom-blocks', wp_list_pluck( $categories, 'slug' ) ) ) ) {
129
+ $categories = array_merge(
130
+ $categories,
131
+ array(
132
+ array(
133
+ 'slug' => 'wpzoom-blocks',
134
+ 'title' => esc_html__( 'WPZOOM - Blocks', 'instagram-widget-by-wpzoom' ),
135
+ ),
136
+ )
137
+ );
138
+ }
139
+
140
+ return $categories;
141
+ }
142
+
143
+ /**
144
+ * Render the block content.
145
+ */
146
+ public function render( $block_attributes, $content ) {
147
+ $feed_id = isset( $block_attributes['feed'] ) ? intval( $block_attributes['feed'] ) : -1;
148
+
149
+ if ( $feed_id > -1 ) {
150
+ return $this->display->output_feed( $feed_id, false );
151
+ } else {
152
+ return wp_kses_post( __( '<p class="error"><strong>Please select a feed to display...</strong></p>', 'instagram-widget-by-wpzoom' ) );
153
+ }
154
+ }
155
+ }
156
+
157
+ Wpzoom_Instagram_Block::get_instance();
class-wpzoom-instagram-image-uploader.php CHANGED
@@ -66,6 +66,13 @@ class WPZOOM_Instagram_Image_Uploader {
66
 
67
  $image_src = wp_get_attachment_image_src( $attachment_id, self::get_image_size_name( $media_size ) );
68
 
 
 
 
 
 
 
 
69
  return ! empty( $image_src ) ? $image_src[0] : $media_url;
70
  }
71
 
@@ -98,17 +105,20 @@ class WPZOOM_Instagram_Image_Uploader {
98
  * @return float|int
99
  */
100
  function get_transient_lifetime() {
101
- $options = WPZOOM_Instagram_Widget_Settings::get_instance()->get_settings();
 
102
 
103
  $values = array(
104
- 'minutes' => MINUTE_IN_SECONDS,
105
- 'hours' => HOUR_IN_SECONDS,
106
- 'days' => DAY_IN_SECONDS,
 
 
107
  );
108
  $keys = array_keys( $values );
109
- $type = in_array( $options['transient-lifetime-type'], $keys ) ? $values[ $options['transient-lifetime-type'] ] : $values['minutes'];
110
 
111
- return $type * $options['transient-lifetime-value'];
112
  }
113
 
114
  /**
@@ -349,7 +359,7 @@ class WPZOOM_Instagram_Image_Uploader {
349
  *
350
  * @return int|string
351
  */
352
- protected function get_best_size( $desired_width, $image_resolution = 'default_algorithm' ) {
353
  $size = 'thumbnail';
354
 
355
  $sizes = array(
66
 
67
  $image_src = wp_get_attachment_image_src( $attachment_id, self::get_image_size_name( $media_size ) );
68
 
69
+ return ! empty( $image_src ) ? $image_src[0] : $media_url;
70
+ } else {
71
+ $attachment_id = self::upload_image( $media_url, $media_id );
72
+ self::$instance->set_images_to_transient( $attachment_id, $media_id );
73
+
74
+ $image_src = wp_get_attachment_image_src( $attachment_id, self::get_image_size_name( $media_size ) );
75
+
76
  return ! empty( $image_src ) ? $image_src[0] : $media_url;
77
  }
78
 
105
  * @return float|int
106
  */
107
  function get_transient_lifetime() {
108
+ $interval = (int) WPZOOM_Instagram_Widget_Settings::get_feed_setting_value( get_the_ID(), 'check-new-posts-interval-number' );
109
+ $interval_suffix = (int) WPZOOM_Instagram_Widget_Settings::get_feed_setting_value( get_the_ID(), 'check-new-posts-interval-suffix' );
110
 
111
  $values = array(
112
+ MINUTE_IN_SECONDS,
113
+ HOUR_IN_SECONDS,
114
+ DAY_IN_SECONDS,
115
+ WEEK_IN_SECONDS,
116
+ MONTH_IN_SECONDS,
117
  );
118
  $keys = array_keys( $values );
119
+ $type = in_array( $interval_suffix, $keys ) ? $values[ $interval_suffix ] : $values[2];
120
 
121
+ return $type * $interval;
122
  }
123
 
124
  /**
359
  *
360
  * @return int|string
361
  */
362
+ protected function get_best_size( $desired_width, $image_resolution = 'low_resolution' ) {
363
  $size = 'thumbnail';
364
 
365
  $sizes = array(
class-wpzoom-instagram-widget-after-setup.php ADDED
@@ -0,0 +1,90 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Exit if accessed directly.
4
+ */
5
+ if ( ! defined( 'ABSPATH' ) ) {
6
+ exit;
7
+ }
8
+
9
+ class Wpzoom_Instagram_Widget_After_Setup {
10
+
11
+ /**
12
+ * @var Wpzoom_Instagram_Widget_After_Setup The reference to *Singleton* instance of this class
13
+ *
14
+ * @since 1.8.4
15
+ */
16
+ private static $instance;
17
+
18
+ /**
19
+ * Returns the *Singleton* instance of this class.
20
+ *
21
+ * @return Wpzoom_Instagram_Widget_After_Setup The *Singleton* instance.
22
+ */
23
+ public static function get_instance() {
24
+ if ( null === self::$instance ) {
25
+ self::$instance = new self();
26
+ }
27
+
28
+ return self::$instance;
29
+ }
30
+
31
+ /**
32
+ * Construct.
33
+ */
34
+ public function __construct() {
35
+
36
+ add_action( 'init', array( $this, 'init' ) );
37
+ }
38
+
39
+ public function init() {
40
+
41
+ //Run only once
42
+ if ( get_option( 'wpzoom_run_only_once_01' ) ) {
43
+ return;
44
+ }
45
+
46
+ $getOldSettings = get_option( 'wpzoom-instagram-widget-settings' );
47
+
48
+ if( is_array( $getOldSettings ) && !empty( $getOldSettings ) ) {
49
+
50
+ $token = isset( $getOldSettings['basic-access-token'] ) ? $getOldSettings['basic-access-token'] : '';
51
+ $user_name = isset( $getOldSettings['user-info-fullname'] ) ? $getOldSettings['user-info-fullname'] : '';
52
+ $user_bio = isset( $getOldSettings['user-info-biography'] ) ? $getOldSettings['user-info-biography'] : '';
53
+ $user_image = isset( $getOldSettings['user-info-avatar'] ) ? $getOldSettings['user-info-avatar'] : '';
54
+
55
+ if ( ! empty( $token ) ) {
56
+ $info = Wpzoom_Instagram_Widget_API::get_basic_user_info_from_token( $token );
57
+
58
+ if ( false !== $info && is_object( $info ) && property_exists( $info, 'username' ) && property_exists( $info, 'account_type' ) ) {
59
+ $user = wp_strip_all_tags( $info->username );
60
+ $insert_post = wp_insert_post( array(
61
+ 'post_title' => $user,
62
+ 'post_type' => 'wpz-insta_user',
63
+ 'post_status' => 'publish',
64
+ 'post_content' => $user_bio
65
+ ), true );
66
+
67
+ if ( ! is_wp_error( $insert_post ) ) {
68
+ update_post_meta( $insert_post, '_wpz-insta_token', $token );
69
+ update_post_meta( $insert_post, '_wpz-insta_token_expire', strtotime( '+60 days' ) );
70
+ update_post_meta( $insert_post, '_wpz-insta_account-type', sanitize_text_field( $info->account_type ) );
71
+
72
+ update_post_meta( $insert_post, '_wpz-insta_user_name', sanitize_text_field( $user_name ) );
73
+ update_post_meta( $insert_post, '_thumbnail_id', $user_image );
74
+
75
+ if ( property_exists( $info, 'profile_picture' ) && ! empty( $info->profile_picture ) ) {
76
+ WPZOOM_Instagram_Widget_Settings()->generate_featured_image( $info->profile_picture, $insert_post, $user );
77
+ }
78
+ }
79
+
80
+ }
81
+ }
82
+ }
83
+
84
+ add_option( 'wpzoom_run_only_once_01', true );
85
+
86
+ }
87
+
88
+ }
89
+
90
+ Wpzoom_Instagram_Widget_After_Setup::get_instance();
class-wpzoom-instagram-widget-api.php CHANGED
@@ -44,16 +44,8 @@ class Wpzoom_Instagram_Widget_API {
44
  * Class constructor
45
  */
46
  protected function __construct() {
47
- $options = WPZOOM_Instagram_Widget_Settings::get_instance()->get_settings();
48
-
49
- $this->request_type = ! empty( $options['request-type'] ) ? $options['request-type'] : '';
50
- $this->access_token = ! empty( $options['basic-access-token'] ) ? $options['basic-access-token'] : '';
51
-
52
- $this->username = ! empty( $options['username'] ) ? $options['username'] : '';
53
- $this->transient_lifetime_type = ! empty( $options['transient-lifetime-type'] ) ? $options['transient-lifetime-type'] : 'days';
54
- $this->transient_lifetime_value = ! empty( $options['transient-lifetime-value'] ) ? $options['transient-lifetime-value'] : 1;
55
- $this->is_forced_timeout = ! empty( $options['is-forced-timeout'] ) ? wp_validate_boolean( $options['is-forced-timeout'] ) : false;
56
- $this->request_timeout_value = ! empty( $options['request-timeout-value'] ) ? $options['request-timeout-value'] : 15;
57
 
58
  if ( $this->is_forced_timeout && ! empty( $this->request_timeout_value ) ) {
59
  $this->headers['timeout'] = $this->request_timeout_value;
@@ -84,6 +76,18 @@ class Wpzoom_Instagram_Widget_API {
84
  return self::$instance;
85
  }
86
 
 
 
 
 
 
 
 
 
 
 
 
 
87
  /**
88
  * Register custom cron intervals
89
  *
@@ -96,7 +100,7 @@ class Wpzoom_Instagram_Widget_API {
96
  if ( ! empty( $this->access_token ) ) {
97
  $schedules['before_access_token_expires'] = array(
98
  'interval' => 5097600, // 59 days.
99
- 'display' => __( 'Before Access Token Expires', 'instagram-widget-by-wpzoom' ),
100
  );
101
  }
102
  return $schedules;
@@ -119,68 +123,74 @@ class Wpzoom_Instagram_Widget_API {
119
  * @return boolean
120
  */
121
  public function execute_cron() {
122
- global $current_user;
123
-
124
- if ( ! empty( $this->access_token ) ) {
125
- $stored_data = WPZOOM_Instagram_Widget_Settings::get_instance()->get_settings();
126
- $request_url = add_query_arg(
127
- array(
128
- 'grant_type' => 'ig_refresh_token',
129
- 'access_token' => $this->access_token,
130
- ),
131
- 'https://graph.instagram.com/refresh_access_token'
132
- );
133
-
134
- $response = wp_safe_remote_get( $request_url, $this->headers );
135
- $response_code = wp_remote_retrieve_response_code( $response );
136
-
137
- if ( ! is_wp_error( $response ) ) {
138
- $body = wp_remote_retrieve_body( $response );
139
- $data = json_decode( $body );
140
- }
141
-
142
- if ( 200 === $response_code ) {
143
- $date_format = get_option( 'date_format' );
144
- $time_format = get_option( 'time_format' );
145
- $notice_message = sprintf( __( 'Instagram Access Token was refreshed automatically on %1$s at %2$s', 'instagram-widget-by-wpzoom' ), date( $date_format ), date( $time_format ) );
146
-
147
- $stored_data['basic-access-token'] = $data->access_token;
148
- $stored_data['refresh-access-token'] = $notice_message;
149
- } else {
150
- if ( ! isset( $data->error ) ) {
151
- error_log( __( 'Something wrong! Doesn\'t isset $data->error.', 'instagram-widget-by-wpzoom' ) );
152
- return false;
153
- } else {
154
- error_log( $data->error->error_user_msg );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
155
  }
156
-
157
- $notice_message = '';
158
- $user_id = $current_user->ID;
159
- $hide_notices_url = wpzoom_instagram_get_notice_dismiss_url();
160
- $settings_url = admin_url( 'options-general.php?page=wpzoom-instagram-widget' );
161
-
162
- if ( 190 === $data->error->code ) {
163
- // Error validating access token: Session has expired.
164
- $notice_message = $data->error->message;
165
- $notice_message .= '<a style="text-decoration: none" class="notice-dismiss" href="' . $hide_notices_url . '"></a>';
166
- } elseif ( 10 === $data->error->code && ! self::is_access_token_valid( $this->access_token ) ) {
167
- // Application does not have permission for this action.
168
- // User need to generate new Access Token manually.
169
- $notice_message = '<strong>' . __( 'Your Access Token for Instagram Widget has expired!', 'instagram-widget-by-wpzoom' ) . '</strong><br/>';
170
- $notice_message .= sprintf( __( 'We cannot update access tokens automatically for Instagram private accounts. You need manually to generate a new access token, reauthorize here: %1$s.', 'instagram-widget-by-wpzoom' ), '<a href="' . esc_url( $settings_url ) . '">' . __( 'Instagram Widget Settings', 'instagram-widget-by-wpzoom' ) . '</a>' ) . '&nbsp;';
171
- $notice_message .= '<a style="text-decoration: none" class="notice-dismiss" href="' . $hide_notices_url . '"></a>';
172
- }
173
-
174
- $stored_data['admin-notice-message'] = $notice_message;
175
-
176
- // Update user meta to display admin notice.
177
- update_user_meta( $user_id, 'wpzoom_instagram_admin_notice', false );
178
  }
179
-
180
- return update_option( WPZOOM_Instagram_Widget_Settings::get_instance()->get_option_name(), $stored_data );
181
  }
182
-
183
- return false;
184
  }
185
 
186
  public static function reset_cache( $sanitized_data ) {
@@ -209,37 +219,40 @@ class Wpzoom_Instagram_Widget_API {
209
  'image-resolution',
210
  'username',
211
  'disable-video-thumbs',
 
 
212
  )
213
  );
214
 
215
  $image_limit = $sliced['image-limit'];
216
  $image_width = $sliced['image-width'];
217
- $image_resolution = ! empty( $sliced['image-resolution'] ) ? $sliced['image-resolution'] : 'default_algorithm';
218
  $injected_username = ! empty( $sliced['username'] ) ? $sliced['username'] : '';
219
  $disable_video_thumbs = ! empty( $sliced['disable-video-thumbs'] );
 
 
220
 
221
  $transient = 'zoom_instagram_is_configured';
222
 
223
- $injected_username = trim( $injected_username );
224
-
225
- if ( ! empty( $injected_username ) && 'without-access-token' === $this->request_type ) {
226
- $injected_username = str_replace( '@', '', $injected_username );
227
- $transient = $transient . '_' . $injected_username;
228
  }
229
 
230
- $data = json_decode( get_transient( $transient ) );
231
- if ( false !== $data && is_object( $data ) && ! empty( $data->data ) ) {
232
- return $this->processing_response_data( $data, $image_width, $image_resolution, $image_limit, $disable_video_thumbs );
233
- }
234
 
235
- $is_external_username = ! empty( $this->username ) || ! empty( $injected_username );
236
- $external_username = ! empty( $injected_username ) ? $injected_username : $this->username;
 
 
 
 
237
 
238
  if ( ! empty( $this->access_token ) ) {
239
  $request_url = add_query_arg(
240
  array(
241
  'fields' => 'media_url,media_type,caption,username,permalink,thumbnail_url,timestamp,children{media_url,media_type,thumbnail_url}',
242
  'access_token' => $this->access_token,
 
243
  ),
244
  'https://graph.instagram.com/me/media'
245
  );
@@ -247,7 +260,9 @@ class Wpzoom_Instagram_Widget_API {
247
  $response = wp_safe_remote_get( $request_url, $this->headers );
248
 
249
  if ( is_wp_error( $response ) || 200 != wp_remote_retrieve_response_code( $response ) ) {
250
- set_transient( $transient, wp_json_encode( false ), MINUTE_IN_SECONDS );
 
 
251
 
252
  $error_data = $this->get_error( 'items-with-token-invalid-response' );
253
  $this->errors->add( $error_data['code'], $error_data['message'] );
@@ -255,25 +270,23 @@ class Wpzoom_Instagram_Widget_API {
255
  return false;
256
  }
257
 
258
- $data = json_decode( wp_remote_retrieve_body( $response ) );
259
-
260
- $data = $this->convert_items_to_old_structure( $data );
261
- }
262
 
263
- if ( 'without-access-token' === $this->request_type && ! empty( $is_external_username ) ) {
264
- $data = $this->get_items_without_token( $external_username );
265
 
266
- if ( is_wp_error( $data ) ) {
267
- set_transient( $transient, wp_json_encode( false ), MINUTE_IN_SECONDS );
268
-
269
- return false;
270
  }
271
  }
272
 
273
  if ( ! empty( $data->data ) ) {
274
- set_transient( $transient, wp_json_encode( $data ), $this->get_transient_lifetime() );
 
 
275
  } else {
276
- set_transient( $transient, wp_json_encode( false ), MINUTE_IN_SECONDS );
 
 
277
 
278
  $error_data = $this->get_error( 'items-with-token-invalid-data-structure' );
279
  $this->errors->add( $error_data['code'], $error_data['message'] );
@@ -281,10 +294,10 @@ class Wpzoom_Instagram_Widget_API {
281
  return false;
282
  }
283
 
284
- return $this->processing_response_data( $data, $image_width, $image_resolution, $image_limit, $disable_video_thumbs );
285
  }
286
 
287
- public function processing_response_data( $data, $image_width, $image_resolution, $image_limit, $disable_video_thumbs = false ) {
288
  $result = array();
289
  $username = '';
290
  $defaults = array(
@@ -301,7 +314,7 @@ class Wpzoom_Instagram_Widget_API {
301
  );
302
 
303
  if ( empty( $image_resolution ) ) {
304
- $image_resolution = 'default_algorithm';
305
  }
306
 
307
  foreach ( $data->data as $key => $item ) {
@@ -320,7 +333,7 @@ class Wpzoom_Instagram_Widget_API {
320
  continue;
321
  }
322
 
323
- $best_size = $this->get_best_size( $image_width, $image_resolution );
324
  $image_url = $item->images->{$best_size}->url;
325
 
326
  $regexPattern = '/-\d+[Xx]\d+\./';
@@ -348,6 +361,10 @@ class Wpzoom_Instagram_Widget_API {
348
  'username' => $username,
349
  );
350
 
 
 
 
 
351
  return $result;
352
  }
353
 
@@ -356,7 +373,7 @@ class Wpzoom_Instagram_Widget_API {
356
  *
357
  * @return string Image size for Instagram API
358
  */
359
- protected function get_best_size( $desired_width, $image_resolution = 'default_algorithm' ) {
360
  $size = 'thumbnail';
361
  $sizes = array(
362
  'thumbnail' => 150,
@@ -402,60 +419,63 @@ class Wpzoom_Instagram_Widget_API {
402
  return array(
403
  'user-info-without-token' => array(
404
  'code' => 'user-info-without-token',
405
- 'message' => __( 'Empty json user info from Public Feed.', 'instagram-widget-by-wpzoom' ),
406
  ),
407
  'response-data-without-token-from-json-invalid-response' => array(
408
  'code' => 'response-data-without-token-from-json-invalid-response',
409
- 'message' => __( 'The request from the Public Feed failed. Invalid server response from Public JSON API url.', 'instagram-widget-by-wpzoom' ),
410
  ),
411
  'response-data-without-token-from-json-invalid-json-format' => array(
412
  'code' => 'response-data-without-token-from-json-invalid-json-format',
413
- 'message' => __( 'The request from the Public Feed failed. Invalid JSON format from Public JSON API url.', 'instagram-widget-by-wpzoom' ),
414
  ),
415
  'response-data-without-token-from-html-invalid-response' => array(
416
  'code' => 'response-data-without-token-from-html-invalid-response',
417
- 'message' => __( 'The request from the Public Feed failed. Check username.', 'instagram-widget-by-wpzoom' ),
418
  ),
419
  'response-data-without-token-from-html-invalid-json-format' => array(
420
  'code' => 'response-data-without-token-from-html-invalid-json-format',
421
- 'message' => __( 'The request from the Public Feed failed. Invalid JSON format from parsed html body.', 'instagram-widget-by-wpzoom' ),
422
  ),
423
  'items-without-token-invalid-response' => array(
424
  'code' => 'items-without-token-invalid-response',
425
- 'message' => __( 'Get items from the Public Feed failed. Invalid response.', 'instagram-widget-by-wpzoom' ),
426
  ),
427
  'items-without-token-invalid-json-structure' => array(
428
  'code' => 'items-without-token-invalid-json-structure',
429
- 'message' => __( 'Get items from the Public Feed failed. Malformed data structure.', 'instagram-widget-by-wpzoom' ),
430
  ),
431
  'items-with-token-invalid-response' => array(
432
  'code' => 'items-with-token-invalid-response',
433
- 'message' => __( 'Geting items from the Instagram API Feed failed. Invalid response.', 'instagram-widget-by-wpzoom' ),
434
  ),
435
  'items-with-token-invalid-data-structure' => array(
436
  'code' => 'items-with-token-invalid-data-structure',
437
- 'message' => __( 'Get items from the Instagram API Feed failed. Malformed data structure.', 'instagram-widget-by-wpzoom' ),
438
  ),
439
  'user-with-token-invalid-response' => array(
440
  'code' => 'user-with-token-invalid-response',
441
- 'message' => __( 'Get user data from the Instagram API Feed failed. Invalid response.', 'instagram-widget-by-wpzoom' ),
442
  ),
443
  'user-with-token-invalid-data-structure' => array(
444
  'code' => 'user-with-token-invalid-data-structure',
445
- 'message' => __( 'Get user data from the Instagram API Feed failed. Malformed data structure.', 'instagram-widget-by-wpzoom' ),
446
  ),
447
 
448
  );
449
  }
450
 
451
- function convert_items_to_old_structure( $data ) {
452
  $converted = new stdClass();
453
  $converted->data = array();
 
454
 
455
  foreach ( $data->data as $key => $item ) {
 
 
456
  $converted->data[] = (object) array(
457
  'id' => $item->id,
458
- 'media_url' => ( 'VIDEO' === $item->media_type ) ? $item->thumbnail_url : $item->media_url,
459
  'user' => (object) array(
460
  'id' => null,
461
  'fullname' => null,
@@ -464,17 +484,17 @@ class Wpzoom_Instagram_Widget_API {
464
  ),
465
  'images' => (object) array(
466
  'thumbnail' => (object) array(
467
- 'url' => $this->image_uploader->get_image( 'thumbnail', $item->media_url, $item->id ),
468
  'width' => 150,
469
  'height' => 150,
470
  ),
471
  'low_resolution' => (object) array(
472
- 'url' => $this->image_uploader->get_image( 'low_resolution', $item->media_url, $item->id ),
473
  'width' => 320,
474
  'height' => 320,
475
  ),
476
  'standard_resolution' => (object) array(
477
- 'url' => $this->image_uploader->get_image( 'standard_resolution', $item->media_url, $item->id ),
478
  'width' => 640,
479
  'height' => 640,
480
  ),
@@ -495,168 +515,21 @@ class Wpzoom_Instagram_Widget_API {
495
  return $converted;
496
  }
497
 
498
- function get_items_without_token( $user ) {
499
- $result = $this->get_response_without_token( $user );
500
-
501
- if ( is_wp_error( $result ) ) {
502
- $error_data = $this->get_error( 'items-without-token-invalid-response' );
503
- $this->errors->add( $error_data['code'], $error_data['message'] );
504
-
505
- return new WP_Error( $error_data['code'], $error_data['message'] );
506
- }
507
-
508
- if ( isset( $result->entry_data->ProfilePage[0]->graphql->user->edge_owner_to_timeline_media->edges ) ) {
509
- $edges = $result->entry_data->ProfilePage[0]->graphql->user->edge_owner_to_timeline_media->edges;
510
- } elseif ( isset( $result->graphql->user->edge_owner_to_timeline_media->edges ) ) {
511
- $edges = $result->graphql->user->edge_owner_to_timeline_media->edges;
512
- } else {
513
- $error_data = $this->get_error( 'items-without-token-invalid-json-structure' );
514
- $this->errors->add( $error_data['code'], $error_data['message'] );
515
-
516
- return new WP_Error( $error_data['code'], $error_data['message'] );
517
- }
518
-
519
- $converted = new stdClass();
520
- $converted->data = array();
521
- foreach ( $edges as $edge ) {
522
- $node = $edge->node;
523
-
524
- $converted->data[] = (object) array(
525
- 'user' => (object) array(
526
- 'id' => $node->owner->id,
527
- 'fullname' => '',
528
- 'profile_picture' => '',
529
- 'username' => $node->owner->username,
530
- ),
531
- 'images' => (object) array(
532
- 'thumbnail' => (object) array(
533
- 'url' => $node->thumbnail_resources[0]->src,
534
- 'width' => $node->thumbnail_resources[0]->config_width,
535
- 'height' => $node->thumbnail_resources[0]->config_height,
536
- ),
537
- 'low_resolution' => (object) array(
538
- 'url' => $node->thumbnail_resources[2]->src,
539
- 'width' => $node->thumbnail_resources[2]->config_width,
540
- 'height' => $node->thumbnail_resources[2]->config_height,
541
- ),
542
- 'standard_resolution' => (object) array(
543
- 'url' => $node->thumbnail_resources[4]->src,
544
- 'width' => $node->thumbnail_resources[4]->config_width,
545
- 'height' => $node->thumbnail_resources[4]->config_height,
546
- ),
547
- ),
548
- 'type' => $this->get_media_type_without_token( $node->__typename ),
549
- 'likes' => isset( $node->edge_liked_by ) ? $node->edge_liked_by : 0,
550
- 'comments' => isset( $node->edge_media_to_comment ) ? $node->edge_media_to_comment : 0,
551
- 'created_time' => $node->taken_at_timestamp,
552
- 'link' => sprintf( 'https://www.instagram.com/p/%s/', $node->shortcode ),
553
- 'caption' => (object) array(
554
- 'text' => isset( $node->edge_media_to_caption->edges[0]->node->text ) ? $node->edge_media_to_caption->edges[0]->node->text : '',
555
- ),
556
- );
557
- }
558
-
559
- return $converted;
560
- }
561
-
562
- function get_response_without_token( $user ) {
563
- $user = trim( $user );
564
- $url = 'https://instagram.com/' . str_replace( '@', '', $user );
565
-
566
- $request = wp_safe_remote_get( $url, $this->headers );
567
-
568
- if ( is_wp_error( $request ) || 200 != wp_remote_retrieve_response_code( $request ) ) {
569
- $error_data = $this->get_error( 'response-data-without-token-from-html-invalid-response' );
570
- $this->errors->add( $error_data['code'], $error_data['message'] );
571
-
572
- $result = $this->get_response_without_token_from_json( $user );
573
-
574
- if ( is_wp_error( $result ) ) {
575
- return new WP_Error( 'invalid_response', __( 'Invalid response from Instagram', 'instagram-widget-by-wpzoom' ) );
576
- } else {
577
- return $result;
578
- }
579
- }
580
-
581
- $body = wp_remote_retrieve_body( $request );
582
-
583
- $doc = new DOMDocument();
584
-
585
- @$doc->loadHTML( $body );
586
-
587
- $script_tags = $doc->getElementsByTagName( 'script' );
588
-
589
- $json = '';
590
-
591
- foreach ( $script_tags as $script_tag ) {
592
- if ( strpos( $script_tag->nodeValue, 'window._sharedData = ' ) !== false ) {
593
- $json = $script_tag->nodeValue;
594
- break;
595
- }
596
- }
597
-
598
- $json = str_replace( array( 'window._sharedData = ', '};' ), array( '', '}' ), $json );
599
- $result = json_decode( $json );
600
-
601
- if ( empty( $result ) ) {
602
- $error_data = $this->get_error( 'response-data-without-token-from-html-invalid-json-format' );
603
- $this->errors->add( $error_data['code'], $error_data['message'] );
604
-
605
- $result = $this->get_response_without_token_from_json( $user );
606
-
607
- if ( is_wp_error( $result ) ) {
608
- return new WP_Error( 'empty-json', __( 'Empty json decoded data.', 'instagram-widget-by-wpzoom' ) );
609
- }
610
- }
611
-
612
- return $result;
613
- }
614
-
615
- function get_response_without_token_from_json( $user ) {
616
- $user = trim( $user );
617
- $url = 'https://instagram.com/' . str_replace( '@', '', $user ) . '/?__a=1';
618
-
619
- $request = wp_safe_remote_get( $url, $this->headers );
620
-
621
- if ( is_wp_error( $request ) || 200 != wp_remote_retrieve_response_code( $request ) ) {
622
- $error_data = $this->get_error( 'response-data-without-token-from-json-invalid-response' );
623
- $this->errors->add( $error_data['code'], $error_data['message'] );
624
-
625
- return new WP_Error( $error_data['code'], $error_data['message'] );
626
- }
627
-
628
- $result = json_decode( wp_remote_retrieve_body( $request ) );
629
-
630
- if ( empty( $result ) ) {
631
- $error_data = $this->get_error( 'response-data-without-token-from-json-invalid-json-format' );
632
- $this->errors->add( $error_data['code'], $error_data['message'] );
633
-
634
- return new WP_Error( $error_data['code'], $error_data['message'] );
635
- }
636
-
637
- return $result;
638
- }
639
-
640
- function get_media_type_without_token( $media_type ) {
641
- $media_types = array(
642
- 'GraphImage' => 'IMAGE',
643
- 'GraphSidecar' => 'CAROUSEL_ALBUM',
644
- 'GraphVideo' => 'VIDEO',
645
- );
646
-
647
- return array_key_exists( $media_type, $media_types ) ? $media_types[ $media_type ] : array_shift( $media_types );
648
- }
649
-
650
  function get_transient_lifetime() {
 
 
 
651
  $values = array(
652
- 'minutes' => MINUTE_IN_SECONDS,
653
- 'hours' => HOUR_IN_SECONDS,
654
- 'days' => DAY_IN_SECONDS,
 
 
655
  );
656
  $keys = array_keys( $values );
657
- $type = in_array( $this->transient_lifetime_type, $keys ) ? $values[ $this->transient_lifetime_type ] : $values['minutes'];
658
 
659
- return $type * $this->transient_lifetime_value;
660
  }
661
 
662
  public function get_user_info( $injected_username = '' ) {
@@ -664,18 +537,10 @@ class Wpzoom_Instagram_Widget_API {
664
 
665
  $injected_username = rtrim( $injected_username );
666
 
667
- if ( ! empty( $injected_username ) && 'without-access-token' === $this->request_type ) {
668
- $injected_username = str_replace( '@', '', $injected_username );
669
- $transient = $transient . '_' . $injected_username;
670
- }
671
-
672
  if ( false !== ( $data = json_decode( get_transient( $transient ) ) ) && is_object( $data ) && ! empty( $data->data ) ) {
673
  return $data;
674
  }
675
 
676
- $is_external_username = ! empty( $this->username ) || ! empty( $injected_username );
677
- $external_username = ! empty( $injected_username ) ? $injected_username : $this->username;
678
-
679
  if ( ! empty( $this->access_token ) ) {
680
  $request_url = add_query_arg(
681
  array(
@@ -700,16 +565,6 @@ class Wpzoom_Instagram_Widget_API {
700
  $data = $this->convert_user_info_to_old_structure( $data );
701
  }
702
 
703
- if ( 'without-access-token' === $this->request_type && ! empty( $is_external_username ) ) {
704
- $data = $this->get_user_info_without_token( $external_username );
705
-
706
- if ( is_wp_error( $data ) ) {
707
- set_transient( $transient, wp_json_encode( false ), MINUTE_IN_SECONDS );
708
-
709
- return false;
710
- }
711
- }
712
-
713
  if ( ! empty( $data->data ) ) {
714
  set_transient( $transient, wp_json_encode( $data ), $this->get_transient_lifetime() );
715
  } else {
@@ -724,6 +579,28 @@ class Wpzoom_Instagram_Widget_API {
724
  return $data;
725
  }
726
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
727
  function convert_user_info_to_old_structure( $user_info ) {
728
  $converted = new stdClass();
729
 
@@ -762,48 +639,6 @@ class Wpzoom_Instagram_Widget_API {
762
  return $converted;
763
  }
764
 
765
-
766
- function get_user_info_without_token( $user ) {
767
- $response = $this->get_response_without_token( $user );
768
-
769
- if ( is_wp_error( $response ) ) {
770
- $error_data = $this->get_error( 'user-info-without-token' );
771
- $this->errors->add( $error_data['code'], $error_data['message'] );
772
-
773
- return new WP_Error( $error_data['code'], $error_data['message'] );
774
- }
775
-
776
- if ( isset( $response->entry_data->ProfilePage[0]->graphql->user ) ) {
777
- $user_info = $response->entry_data->ProfilePage[0]->graphql->user;
778
- } elseif ( isset( $response->graphql->user ) ) {
779
- $user_info = $response->graphql->user;
780
- } else {
781
- $error_data = $this->get_error( 'user-info-without-token' );
782
- $this->errors->add( $error_data['code'], $error_data['message'] );
783
-
784
- return new WP_Error( $error_data['code'], $error_data['message'] );
785
- }
786
-
787
- $converted = new stdClass();
788
-
789
- $converted->data = (object) array(
790
- 'bio' => ! empty( $user_info->biography ) ? $user_info->biography : '',
791
- 'counts' => (object) array(
792
- 'followed_by' => ! empty( $user_info->edge_followed_by->count ) ? $user_info->edge_followed_by->count : 0,
793
- 'follows' => ! empty( $user_info->edge_follow->count ) ? $user_info->edge_follow->count : 0,
794
- 'media' => ! empty( $user_info->edge_owner_to_timeline_media->count ) ? $user_info->edge_owner_to_timeline_media->count : 0,
795
- ),
796
- 'full_name' => ! empty( $user_info->full_name ) ? $user_info->full_name : '',
797
- 'id' => ! empty( $user_info->id ) ? $user_info->id : '',
798
- 'is_business' => ! empty( $user_info->is_business_account ) ? $user_info->is_business_account : '',
799
- 'profile_picture' => ! empty( $user_info->profile_pic_url ) ? $user_info->profile_pic_url : '',
800
- 'username' => ! empty( $user_info->username ) ? $user_info->username : '',
801
- 'website' => ! empty( $user_info->external_url ) ? $user_info->external_url : '',
802
- );
803
-
804
- return $converted;
805
- }
806
-
807
  public function is_configured() {
808
  $transient = 'zoom_instagram_is_configured';
809
 
@@ -821,11 +656,7 @@ class Wpzoom_Instagram_Widget_API {
821
  }
822
  }
823
 
824
- if ( empty( $this->username ) ) {
825
- $condition = $this->is_access_token_valid( $this->access_token, $this->request_type );
826
- } else {
827
- $condition = true;
828
- }
829
 
830
  if ( true === $condition ) {
831
  set_transient( $transient, wp_json_encode( 'yes' ), DAY_IN_SECONDS );
@@ -841,7 +672,7 @@ class Wpzoom_Instagram_Widget_API {
841
  /**
842
  * Check if given access token is valid for Instagram Api.
843
  */
844
- public static function is_access_token_valid( $access_token, $request_type = '' ) {
845
  if ( empty( $access_token ) ) {
846
  return false;
847
  }
44
  * Class constructor
45
  */
46
  protected function __construct() {
47
+ $this->is_forced_timeout = (bool) WPZOOM_Instagram_Widget_Settings::get_feed_setting_value( get_the_ID(), 'enable-request-timeout' );
48
+ $this->request_timeout_value = 15;
 
 
 
 
 
 
 
 
49
 
50
  if ( $this->is_forced_timeout && ! empty( $this->request_timeout_value ) ) {
51
  $this->headers['timeout'] = $this->request_timeout_value;
76
  return self::$instance;
77
  }
78
 
79
+ /**
80
+ * Manually set the access token.
81
+ *
82
+ * @since 2.0.0
83
+ *
84
+ * @param string $token The access token to set.
85
+ * @return void
86
+ */
87
+ public function set_access_token( $token ) {
88
+ $this->access_token = $token;
89
+ }
90
+
91
  /**
92
  * Register custom cron intervals
93
  *
100
  if ( ! empty( $this->access_token ) ) {
101
  $schedules['before_access_token_expires'] = array(
102
  'interval' => 5097600, // 59 days.
103
+ 'display' => esc_attr__( 'Before Access Token Expires', 'instagram-widget-by-wpzoom' ),
104
  );
105
  }
106
  return $schedules;
123
  * @return boolean
124
  */
125
  public function execute_cron() {
126
+ $all_users = get_posts( array(
127
+ 'numberposts' => -1,
128
+ 'post_type' => 'wpz-insta_user',
129
+ ) );
130
+
131
+ if ( ! empty( $all_users ) && is_array( $all_users ) ) {
132
+ foreach ( $all_users as $user ) {
133
+ if ( $user instanceof WP_Post ) {
134
+ $user_name = get_the_title( $user );
135
+ $user_display = sprintf( '@%s', $user_name );
136
+ $token = get_post_meta( $user->ID, '_wpz-insta_token', true );
137
+
138
+ if ( false !== $token && ! empty( $token ) ) {
139
+ $request_url = add_query_arg(
140
+ array(
141
+ 'grant_type' => 'ig_refresh_token',
142
+ 'access_token' => $token,
143
+ ),
144
+ 'https://graph.instagram.com/refresh_access_token'
145
+ );
146
+
147
+ $response = wp_safe_remote_get( $request_url, $this->headers );
148
+ $response_code = wp_remote_retrieve_response_code( $response );
149
+
150
+ if ( ! is_wp_error( $response ) ) {
151
+ $body = wp_remote_retrieve_body( $response );
152
+ $data = json_decode( $body );
153
+ }
154
+
155
+ if ( 200 === $response_code ) {
156
+ $date_format = get_option( 'date_format' );
157
+ $time_format = get_option( 'time_format' );
158
+ $notice_status = 'success';
159
+ $notice_message = sprintf( __( '<strong>WPZOOM Instagram Widget:</strong> The Instagram Access Token was refreshed automatically on %1$s at %2$s for the account <em>%3$s</em>.', 'instagram-widget-by-wpzoom' ), date( $date_format ), date( $time_format ), esc_html( $user_display ) );
160
+
161
+ update_post_meta( $user->ID, '_wpz-insta_token', $data->access_token );
162
+ update_post_meta( $user->ID, '_wpz-insta_token_expire', strtotime( '+60 days' ) );
163
+ } else {
164
+ if ( ! isset( $data->error ) ) {
165
+ error_log( __( 'Something wrong! Doesn\'t isset $data->error.', 'instagram-widget-by-wpzoom' ) );
166
+ return false;
167
+ } else {
168
+ error_log( $data->error->error_user_msg );
169
+ }
170
+
171
+ $notice_status = 'error';
172
+ $notice_message = '';
173
+ $settings_url = admin_url( 'edit.php?post_type=wpz-insta_user' );
174
+
175
+ if ( 190 === $data->error->code ) {
176
+ // Error validating access token: Session has expired.
177
+ $notice_message = wp_kses_post( __( '<strong>WPZOOM Instagram Widget:</strong> ', 'instagram-widget-by-wpzoom' ) ) . $data->error->message;
178
+ } elseif ( 10 === $data->error->code && ! self::is_access_token_valid( $token ) ) {
179
+ // Application does not have permission for this action.
180
+ // User need to generate new Access Token manually.
181
+ $notice_message = sprintf( __( '<strong>WPZOOM Instagram Widget:</strong> The Access Token for the account <em>%1$s</em> has expired!<br/>', 'instagram-widget-by-wpzoom' ), $user_display );
182
+ $notice_message .= sprintf( __( 'We cannot update access tokens automatically for Instagram private accounts. You need to manually generate a new access token, reauthorize here: %1$s', 'instagram-widget-by-wpzoom' ), '<a href="' . esc_url( $settings_url ) . '">' . __( 'Instagram Widget Settings', 'instagram-widget-by-wpzoom' ) . '</a>' );
183
+ }
184
+ }
185
+
186
+ update_option(
187
+ '_wpz-insta_cron-result',
188
+ array( $user->ID => array( 'status' => $notice_status, 'message' => $notice_message ) ) + (array) get_option( '_wpz-insta_cron-result', array() )
189
+ );
190
+ }
191
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
192
  }
 
 
193
  }
 
 
194
  }
195
 
196
  public static function reset_cache( $sanitized_data ) {
219
  'image-resolution',
220
  'username',
221
  'disable-video-thumbs',
222
+ 'include-pagination',
223
+ 'bypass-transient',
224
  )
225
  );
226
 
227
  $image_limit = $sliced['image-limit'];
228
  $image_width = $sliced['image-width'];
229
+ $image_resolution = ! empty( $sliced['image-resolution'] ) ? $sliced['image-resolution'] : 'low_resolution';
230
  $injected_username = ! empty( $sliced['username'] ) ? $sliced['username'] : '';
231
  $disable_video_thumbs = ! empty( $sliced['disable-video-thumbs'] );
232
+ $include_pagination = ! empty( $sliced['include-pagination'] );
233
+ $bypass_transient = ! empty( $sliced['bypass-transient'] );
234
 
235
  $transient = 'zoom_instagram_is_configured';
236
 
237
+ if ( ! empty( $this->access_token ) ) {
238
+ $transient = $transient . '_' . $this->access_token;
 
 
 
239
  }
240
 
241
+ $injected_username = trim( $injected_username );
 
 
 
242
 
243
+ if ( ! $bypass_transient ) {
244
+ $data = json_decode( get_transient( $transient ) );
245
+ if ( false !== $data && is_object( $data ) && ! empty( $data->data ) ) {
246
+ return self::processing_response_data( $data, $image_width, $image_resolution, $image_limit, $disable_video_thumbs, $include_pagination );
247
+ }
248
+ }
249
 
250
  if ( ! empty( $this->access_token ) ) {
251
  $request_url = add_query_arg(
252
  array(
253
  'fields' => 'media_url,media_type,caption,username,permalink,thumbnail_url,timestamp,children{media_url,media_type,thumbnail_url}',
254
  'access_token' => $this->access_token,
255
+ 'limit' => $image_limit,
256
  ),
257
  'https://graph.instagram.com/me/media'
258
  );
260
  $response = wp_safe_remote_get( $request_url, $this->headers );
261
 
262
  if ( is_wp_error( $response ) || 200 != wp_remote_retrieve_response_code( $response ) ) {
263
+ if ( ! $bypass_transient ) {
264
+ set_transient( $transient, wp_json_encode( false ), MINUTE_IN_SECONDS );
265
+ }
266
 
267
  $error_data = $this->get_error( 'items-with-token-invalid-response' );
268
  $this->errors->add( $error_data['code'], $error_data['message'] );
270
  return false;
271
  }
272
 
273
+ $raw_data = json_decode( wp_remote_retrieve_body( $response ) );
 
 
 
274
 
275
+ $data = self::convert_items_to_old_structure( $raw_data, $bypass_transient );
 
276
 
277
+ if ( $include_pagination && property_exists( $raw_data, 'paging' ) ) {
278
+ $data->paging = $raw_data->paging;
 
 
279
  }
280
  }
281
 
282
  if ( ! empty( $data->data ) ) {
283
+ if ( ! $bypass_transient ) {
284
+ set_transient( $transient, wp_json_encode( $data ), $this->get_transient_lifetime() );
285
+ }
286
  } else {
287
+ if ( ! $bypass_transient ) {
288
+ set_transient( $transient, wp_json_encode( false ), MINUTE_IN_SECONDS );
289
+ }
290
 
291
  $error_data = $this->get_error( 'items-with-token-invalid-data-structure' );
292
  $this->errors->add( $error_data['code'], $error_data['message'] );
294
  return false;
295
  }
296
 
297
+ return self::processing_response_data( $data, $image_width, $image_resolution, $image_limit, $disable_video_thumbs, $include_pagination );
298
  }
299
 
300
+ public static function processing_response_data( $data, $image_width, $image_resolution, $image_limit, $disable_video_thumbs = false, $include_pagination = false ) {
301
  $result = array();
302
  $username = '';
303
  $defaults = array(
314
  );
315
 
316
  if ( empty( $image_resolution ) ) {
317
+ $image_resolution = 'low_resolution';
318
  }
319
 
320
  foreach ( $data->data as $key => $item ) {
333
  continue;
334
  }
335
 
336
+ $best_size = self::get_best_size( $image_width, $image_resolution );
337
  $image_url = $item->images->{$best_size}->url;
338
 
339
  $regexPattern = '/-\d+[Xx]\d+\./';
361
  'username' => $username,
362
  );
363
 
364
+ if ( $include_pagination && property_exists( $data, 'paging' ) ) {
365
+ $result['paging'] = $data->paging;
366
+ }
367
+
368
  return $result;
369
  }
370
 
373
  *
374
  * @return string Image size for Instagram API
375
  */
376
+ public static function get_best_size( $desired_width, $image_resolution = 'low_resolution' ) {
377
  $size = 'thumbnail';
378
  $sizes = array(
379
  'thumbnail' => 150,
419
  return array(
420
  'user-info-without-token' => array(
421
  'code' => 'user-info-without-token',
422
+ 'message' => esc_html__( 'Empty json user info from Public Feed.', 'instagram-widget-by-wpzoom' ),
423
  ),
424
  'response-data-without-token-from-json-invalid-response' => array(
425
  'code' => 'response-data-without-token-from-json-invalid-response',
426
+ 'message' => esc_html__( 'The request from the Public Feed failed. Invalid server response from Public JSON API url.', 'instagram-widget-by-wpzoom' ),
427
  ),
428
  'response-data-without-token-from-json-invalid-json-format' => array(
429
  'code' => 'response-data-without-token-from-json-invalid-json-format',
430
+ 'message' => esc_html__( 'The request from the Public Feed failed. Invalid JSON format from Public JSON API url.', 'instagram-widget-by-wpzoom' ),
431
  ),
432
  'response-data-without-token-from-html-invalid-response' => array(
433
  'code' => 'response-data-without-token-from-html-invalid-response',
434
+ 'message' => esc_html__( 'The request from the Public Feed failed. Check username.', 'instagram-widget-by-wpzoom' ),
435
  ),
436
  'response-data-without-token-from-html-invalid-json-format' => array(
437
  'code' => 'response-data-without-token-from-html-invalid-json-format',
438
+ 'message' => esc_html__( 'The request from the Public Feed failed. Invalid JSON format from parsed html body.', 'instagram-widget-by-wpzoom' ),
439
  ),
440
  'items-without-token-invalid-response' => array(
441
  'code' => 'items-without-token-invalid-response',
442
+ 'message' => esc_html__( 'Get items from the Public Feed failed. Invalid response.', 'instagram-widget-by-wpzoom' ),
443
  ),
444
  'items-without-token-invalid-json-structure' => array(
445
  'code' => 'items-without-token-invalid-json-structure',
446
+ 'message' => esc_html__( 'Get items from the Public Feed failed. Malformed data structure.', 'instagram-widget-by-wpzoom' ),
447
  ),
448
  'items-with-token-invalid-response' => array(
449
  'code' => 'items-with-token-invalid-response',
450
+ 'message' => esc_html__( 'Geting items from the Instagram API Feed failed. Invalid response.', 'instagram-widget-by-wpzoom' ),
451
  ),
452
  'items-with-token-invalid-data-structure' => array(
453
  'code' => 'items-with-token-invalid-data-structure',
454
+ 'message' => esc_html__( 'Get items from the Instagram API Feed failed. Malformed data structure.', 'instagram-widget-by-wpzoom' ),
455
  ),
456
  'user-with-token-invalid-response' => array(
457
  'code' => 'user-with-token-invalid-response',
458
+ 'message' => esc_html__( 'Get user data from the Instagram API Feed failed. Invalid response.', 'instagram-widget-by-wpzoom' ),
459
  ),
460
  'user-with-token-invalid-data-structure' => array(
461
  'code' => 'user-with-token-invalid-data-structure',
462
+ 'message' => esc_html__( 'Get user data from the Instagram API Feed failed. Malformed data structure.', 'instagram-widget-by-wpzoom' ),
463
  ),
464
 
465
  );
466
  }
467
 
468
+ public static function convert_items_to_old_structure( $data, $preview = false ) {
469
  $converted = new stdClass();
470
  $converted->data = array();
471
+ $image_uploader = WPZOOM_Instagram_Image_Uploader::getInstance();
472
 
473
  foreach ( $data->data as $key => $item ) {
474
+ $media_url = 'VIDEO' === $item->media_type && property_exists( $item, 'thumbnail_url' ) && ! empty( $item->thumbnail_url ) ? $item->thumbnail_url : $item->media_url;
475
+
476
  $converted->data[] = (object) array(
477
  'id' => $item->id,
478
+ 'media_url' => $media_url,
479
  'user' => (object) array(
480
  'id' => null,
481
  'fullname' => null,
484
  ),
485
  'images' => (object) array(
486
  'thumbnail' => (object) array(
487
+ 'url' => $preview ? $media_url : $image_uploader->get_image( 'thumbnail', $media_url, $item->id ),
488
  'width' => 150,
489
  'height' => 150,
490
  ),
491
  'low_resolution' => (object) array(
492
+ 'url' => $preview ? $media_url : $image_uploader->get_image( 'low_resolution', $media_url, $item->id ),
493
  'width' => 320,
494
  'height' => 320,
495
  ),
496
  'standard_resolution' => (object) array(
497
+ 'url' => $preview ? $media_url : $image_uploader->get_image( 'standard_resolution', $media_url, $item->id ),
498
  'width' => 640,
499
  'height' => 640,
500
  ),
515
  return $converted;
516
  }
517
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
518
  function get_transient_lifetime() {
519
+ $interval = (int) WPZOOM_Instagram_Widget_Settings::get_feed_setting_value( get_the_ID(), 'check-new-posts-interval-number' );
520
+ $interval_suffix = (int) WPZOOM_Instagram_Widget_Settings::get_feed_setting_value( get_the_ID(), 'check-new-posts-interval-suffix' );
521
+
522
  $values = array(
523
+ MINUTE_IN_SECONDS,
524
+ HOUR_IN_SECONDS,
525
+ DAY_IN_SECONDS,
526
+ WEEK_IN_SECONDS,
527
+ MONTH_IN_SECONDS,
528
  );
529
  $keys = array_keys( $values );
530
+ $type = in_array( $interval_suffix, $keys ) ? $values[ $interval_suffix ] : $values[2];
531
 
532
+ return $type * $interval;
533
  }
534
 
535
  public function get_user_info( $injected_username = '' ) {
537
 
538
  $injected_username = rtrim( $injected_username );
539
 
 
 
 
 
 
540
  if ( false !== ( $data = json_decode( get_transient( $transient ) ) ) && is_object( $data ) && ! empty( $data->data ) ) {
541
  return $data;
542
  }
543
 
 
 
 
544
  if ( ! empty( $this->access_token ) ) {
545
  $request_url = add_query_arg(
546
  array(
565
  $data = $this->convert_user_info_to_old_structure( $data );
566
  }
567
 
 
 
 
 
 
 
 
 
 
 
568
  if ( ! empty( $data->data ) ) {
569
  set_transient( $transient, wp_json_encode( $data ), $this->get_transient_lifetime() );
570
  } else {
579
  return $data;
580
  }
581
 
582
+ public static function get_basic_user_info_from_token( $access_token ) {
583
+ $output = false;
584
+
585
+ if ( ! empty( $access_token ) ) {
586
+ $request_url = add_query_arg(
587
+ array(
588
+ 'access_token' => $access_token,
589
+ 'fields' => 'account_type,username,profile_picture',
590
+ ),
591
+ 'https://graph.instagram.com/me'
592
+ );
593
+
594
+ $response = wp_safe_remote_get( $request_url );
595
+
596
+ if ( ! is_wp_error( $response ) && 200 == wp_remote_retrieve_response_code( $response ) ) {
597
+ $output = json_decode( wp_remote_retrieve_body( $response ) );
598
+ }
599
+ }
600
+
601
+ return $output;
602
+ }
603
+
604
  function convert_user_info_to_old_structure( $user_info ) {
605
  $converted = new stdClass();
606
 
639
  return $converted;
640
  }
641
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
642
  public function is_configured() {
643
  $transient = 'zoom_instagram_is_configured';
644
 
656
  }
657
  }
658
 
659
+ $condition = $this->is_access_token_valid( $this->access_token );
 
 
 
 
660
 
661
  if ( true === $condition ) {
662
  set_transient( $transient, wp_json_encode( 'yes' ), DAY_IN_SECONDS );
672
  /**
673
  * Check if given access token is valid for Instagram Api.
674
  */
675
+ public static function is_access_token_valid( $access_token ) {
676
  if ( empty( $access_token ) ) {
677
  return false;
678
  }
class-wpzoom-instagram-widget-display.php ADDED
@@ -0,0 +1,802 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Exit if accessed directly.
4
+ */
5
+ defined( 'ABSPATH' ) or die;
6
+
7
+ /**
8
+ * WPZOOM Instagram Widget Display class
9
+ *
10
+ * @package Wpzoom_Instagram_Widget
11
+ */
12
+ class Wpzoom_Instagram_Widget_Display {
13
+ /**
14
+ * @var Wpzoom_Instagram_Widget_Display The reference to *Singleton* instance of this class
15
+ */
16
+ private static $instance;
17
+
18
+ /**
19
+ * @var Wpzoom_Instagram_Widget_API
20
+ */
21
+ protected $api;
22
+
23
+ /**
24
+ * Is this the pro version?
25
+ */
26
+ private $is_pro = false;
27
+
28
+ /**
29
+ * Returns the *Singleton* instance of this class.
30
+ *
31
+ * @return Wpzoom_Instagram_Widget_Display The *Singleton* instance.
32
+ */
33
+ public static function getInstance() {
34
+ if ( null === self::$instance ) {
35
+ self::$instance = new self();
36
+ }
37
+
38
+ return self::$instance;
39
+ }
40
+
41
+ /**
42
+ * Runs some intialization functions.
43
+ *
44
+ * @return void
45
+ */
46
+ public function init() {
47
+ // add_image_size( 'wpzoom-instagram-profile-photo-size', 128, 128, true );
48
+
49
+ $this->is_pro = apply_filters( 'wpz-insta_is-pro', false );
50
+
51
+ add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_scripts' ) );
52
+
53
+ add_shortcode( 'instagram', array( $this, 'get_shortcode_output' ) );
54
+ }
55
+
56
+ /**
57
+ * Enqueue some needed scripts on the frontend.
58
+ *
59
+ * @return void
60
+ */
61
+ public function enqueue_scripts() {
62
+ wp_enqueue_script(
63
+ 'zoom-instagram-widget-lazy-load',
64
+ plugin_dir_url( __FILE__ ) . 'dist/scripts/library/lazy.js',
65
+ array( 'jquery' ),
66
+ filemtime( plugin_dir_path( __FILE__ ) . 'dist/scripts/library/lazy.js' ),
67
+ true
68
+ );
69
+ }
70
+
71
+ /**
72
+ * Returns the markup for the feed with the given ID.
73
+ *
74
+ * @param int $feed_id The ID of the feed to return the markup for.
75
+ * @return string The markup for the given feed.
76
+ */
77
+ public function get_feed_output( int $feed_id ) {
78
+ if ( $feed_id > -1 ) {
79
+ $feed = get_post( $feed_id, OBJECT, 'display' );
80
+
81
+ if ( null !== $feed && $feed instanceof WP_Post ) {
82
+ $user_id = intval( get_post_meta( $feed_id, '_wpz-insta_user-id', true ) );
83
+ $feed_settings = array();
84
+
85
+ foreach( WPZOOM_Instagram_Widget_Settings::$feed_settings as $setting_name => $setting_args ) {
86
+ $feed_settings[ $setting_name ] = WPZOOM_Instagram_Widget_Settings::get_feed_setting_value( $feed_id, $setting_name );
87
+ }
88
+
89
+ $feed_settings['feed-id'] = $feed_id;
90
+ $feed_settings['user-id'] = $user_id;
91
+
92
+ return $this->feed_content( $feed_settings );
93
+ }
94
+ }
95
+
96
+ if ( current_user_can( 'edit_theme_options' ) ) {
97
+ return is_admin() ? sprintf(
98
+ '<p class="error" style="color:red"><strong>%s</strong></p>',
99
+ esc_html__( 'There was a problem displaying the selected feed. Please check the configuration...', 'instagram-widget-by-wpzoom' )
100
+ ) : '';
101
+ }
102
+ }
103
+
104
+ /**
105
+ * Returns the markup for the feed shortcode.
106
+ *
107
+ * @param array $atts The attributes on the shortcode.
108
+ * @param string $content The content (if any) in the shortcode.
109
+ * @param string $tag The shortcode tag.
110
+ * @return string
111
+ */
112
+ public function get_shortcode_output( array $atts, string $content, string $tag ) {
113
+ if ( ! empty( $atts ) && is_array( $atts ) && array_key_exists( 'feed', $atts ) ) {
114
+ $feed_id = intval( $atts['feed'] );
115
+
116
+ if ( $feed_id > -1 ) {
117
+ return sprintf(
118
+ "<style type=\"text/css\">%s</style>\n%s",
119
+ $this->output_styles( $feed_id, false ),
120
+ $this->get_feed_output( $feed_id )
121
+ );
122
+ }
123
+ }
124
+
125
+ return is_admin() ? sprintf(
126
+ '<p class="error" style="color:red"><strong>%s</strong></p>',
127
+ esc_html__( 'There was a problem displaying the selected feed. Please check the configuration...', 'instagram-widget-by-wpzoom' )
128
+ ) : '';
129
+ }
130
+
131
+ /**
132
+ * Outputs the markup for the feed with the given ID.
133
+ *
134
+ * @param int $feed_id The ID of the feed to output.
135
+ * @param bool $echo Whether to output the feed or return it.
136
+ * @return void
137
+ */
138
+ public function output_feed( int $feed_id, bool $echo = true ) {
139
+ $output = sprintf(
140
+ "<style type=\"text/css\">%s</style>\n%s",
141
+ $this->output_styles( $feed_id, false ),
142
+ $this->get_feed_output( $feed_id )
143
+ );
144
+
145
+ if ( $echo ) {
146
+ echo $output;
147
+ } else {
148
+ return $output;
149
+ }
150
+ }
151
+
152
+ /**
153
+ * Outputs the markup for the preview of a feed configured with the given arguments.
154
+ *
155
+ * @param array $args The arguments to define how to output the feed preview.
156
+ * @return void
157
+ */
158
+ public function output_preview( array $args ) {
159
+ printf(
160
+ "<style type=\"text/css\">%s</style>\n%s",
161
+ $this->output_preview_styles( $args, false ),
162
+ $this->feed_content( $args, true )
163
+ );
164
+ }
165
+
166
+ /**
167
+ * Returns the markup for the preview of a feed configured with the given arguments.
168
+ *
169
+ * @param array $args The arguments to define how to return the feed preview.
170
+ * @return string
171
+ */
172
+ public function get_preview( array $args ) {
173
+ return sprintf(
174
+ "<style type=\"text/css\">%s</style>\n%s",
175
+ $this->output_preview_styles( $args, false ),
176
+ $this->feed_content( $args, true )
177
+ );
178
+ }
179
+
180
+ /**
181
+ * Returns the markup for a feed configured with the given arguments.
182
+ *
183
+ * @param array $args The arguments to define how to return the feed content.
184
+ * @return string
185
+ */
186
+ private function feed_content( array $args, bool $preview = false ) {
187
+ $this->api = Wpzoom_Instagram_Widget_API::getInstance();
188
+ $output = '';
189
+ $user_id = isset( $args['user-id'] ) ? intval( $args['user-id'] ) : -1;
190
+
191
+ if ( $user_id > 0 ) {
192
+ $user = get_post( $user_id );
193
+
194
+ if ( $user instanceof WP_Post ) {
195
+ $show_user_name = isset( $args['show-account-username'] ) && boolval( $args['show-account-username'] );
196
+ $user_name = get_the_title( $user );
197
+ $user_name_display = sprintf( '@%s', $user_name );
198
+ $user_link = 'https://www.instagram.com/' . $user_name;
199
+ $show_user_nname = isset( $args['show-account-name'] ) && boolval( $args['show-account-name'] );
200
+ $user_display_name = get_post_meta( $user_id, '_wpz-insta_user_name', true );
201
+ $show_user_bio = isset( $args['show-account-bio'] ) && boolval( $args['show-account-bio'] );
202
+ $user_bio = get_the_content( null, false, $user );
203
+ $show_user_image = isset( $args['show-account-image'] ) && boolval( $args['show-account-image'] );
204
+ $user_image = get_the_post_thumbnail_url( $user, 'thumbnail' ) ?: plugin_dir_url( __FILE__ ) . 'dist/images/backend/user-avatar.jpg';
205
+ $user_account_token = get_post_meta( $user_id, '_wpz-insta_token', true ) ?: '-1';
206
+
207
+ if ( '-1' !== $user_account_token ) {
208
+ $attrs = '';
209
+ $layout_names = array( 0 => 'grid', 1 => 'fullwidth', 2 => 'masonry', 3 => 'highlight' );
210
+ $raw_layout = isset( $args['layout'] ) ? intval( $args['layout'] ) : 0;
211
+ $layout_int = $this->is_pro ? $raw_layout : ( $raw_layout > 1 ? 0 : $raw_layout );
212
+ $layout = isset( $layout_names[ $layout_int ] ) ? $layout_names[ $layout_int ] : 'grid';
213
+ $new_posts_interval_number = isset( $args['check-new-posts-interval-number'] ) ? intval( $args['check-new-posts-interval-number'] ) : 1;
214
+ $new_posts_interval_suffix = isset( $args['check-new-posts-interval-suffix'] ) ? intval( $args['check-new-posts-interval-suffix'] ) : 1;
215
+ $enable_request_timeout = isset( $args['enable-request-timeout'] ) ? boolval( $args['enable-request-timeout'] ) : false;
216
+ $amount = isset( $args['item-num'] ) ? intval( $args['item-num'] ) : 9;
217
+ $lightbox = isset( $args['lightbox'] ) ? boolval( $args['lightbox'] ) : true;
218
+ $show_view_on_insta_button = isset( $args['show-view-button' ] ) ? boolval( $args['show-view-button' ] ) : true;
219
+ $show_load_more_button = ( ! $this->is_pro && $preview ) || ( $this->is_pro && isset( $args['show-load-more'] ) && boolval( $args['show-load-more'] ) );
220
+ $image_size = isset( $args['image-size'] ) && in_array( $args['image-size'], array( 'thumbnail', 'low_resolution', 'standard_resolution' ) ) ? $args['image-size'] : 'low_resolution';
221
+ $image_width = isset( $args['image-width'] ) ? intval( $args['image-width'] ) : 320;
222
+ $hide_video_thumbs = isset( $args['hide-video-thumbs'] ) ? boolval( $args['hide-video-thumbs'] ) : true;
223
+
224
+ if ( $lightbox ) {
225
+ $attrs .= ' data-lightbox="1"';
226
+ }
227
+
228
+ $this->api->set_access_token( $user_account_token );
229
+
230
+ $items = $this->api->get_items( array( 'image-limit' => $amount, 'image-resolution' => $image_size, 'image-width' => $image_width, 'include-pagination' => true, 'bypass-transient' => $preview ) );
231
+ $errors = $this->api->errors->get_error_messages();
232
+
233
+ $output .= '<div class="zoom-instagram' . ( isset( $args['feed-id'] ) ? sprintf( ' feed-%d', intval( $args['feed-id'] ) ) : '' ) . sprintf( ' layout-%s', $layout ) . '">';
234
+
235
+ if ( ! is_array( $items ) ) {
236
+ return $this->get_errors( $errors );
237
+ } else {
238
+ if ( $show_user_image || $show_user_nname || $show_user_name || $show_user_bio ) {
239
+ $output .= '<header class="zoom-instagram-widget__header">';
240
+
241
+ if ( $show_user_image && ! empty( $user_image ) ) {
242
+ $output .= '<div class="zoom-instagram-widget__header-column-left">';
243
+ $output .= '<img src="' . esc_url( $user_image ) . '" alt="' . esc_attr( $user_name_display ) . '" width="70"/>';
244
+ $output .= '</div>';
245
+ }
246
+
247
+ if ( $show_user_nname || $show_user_name || $show_user_bio ) {
248
+ $output .= '<div class="zoom-instagram-widget__header-column-right">';
249
+
250
+ if ( $show_user_nname ) {
251
+ $output .= '<h5 class="zoom-instagram-widget__header-name">' . esc_html( $user_display_name ) . '</h5>';
252
+ }
253
+
254
+ if ( $show_user_name ) {
255
+ $output .= '<p class="zoom-instagram-widget__header-user"><a href="' . esc_url( $user_link ) . '" target="_blank" rel="nofollow">' . esc_html( $user_name_display ) . '</a></p>';
256
+ }
257
+
258
+ if ( $show_user_bio ) {
259
+ $output .= '<div class="zoom-instagram-widget__header-bio">' . esc_html( $user_bio ) . '</div>';
260
+ }
261
+
262
+ $output .= '</div>';
263
+ }
264
+
265
+ $output .= '</header>';
266
+ }
267
+
268
+ $output .= '<div class="zoom-instagram-widget__items-wrapper"><ul class="zoom-instagram-widget__items zoom-instagram-widget__items--no-js' . sprintf( ' layout-%s', $layout ) . '"' . $attrs . '>';
269
+ $output .= self::items_html( $items['items'], $args );
270
+ $output .= '</ul></div>';
271
+
272
+ if ( $show_view_on_insta_button || ( $show_load_more_button && 'fullwidth' !== $layout ) ) {
273
+ $output .= '<footer class="zoom-instagram-widget__footer">';
274
+
275
+ if ( $show_view_on_insta_button ) {
276
+ $view_on_insta_label = isset( $args['view-button-text'] ) ? trim( $args['view-button-text'] ) : __( 'View on Instagram', 'instagram-widget-by-wpzoom' );
277
+ $output .= '<a href="' . esc_url( $user_link ) . '" target="_blank" rel="noopener nofollow" class="wpz-button wpz-button-primary wpz-insta-view-on-insta-button">';
278
+ $output .= '<span class="button-icon zoom-svg-instagram-stroke"></span> ';
279
+ $output .= esc_html( $view_on_insta_label );
280
+ $output .= '</a>';
281
+ }
282
+
283
+ if ( $show_load_more_button && 'fullwidth' !== $layout ) {
284
+ $output .= '<form method="POST" autocomplete="off" class="wpzinsta-pro-load-more"' . ( ! $this->is_pro ? ' disabled' : '' ) . '>';
285
+ $output .= wp_nonce_field( 'wpzinsta-pro-load-more', '_wpnonce', true, false );
286
+ $output .= '<input type="hidden" name="feed_id" value="' . esc_attr( isset( $args['feed-id'] ) ? intval( $args['feed-id'] ) : -1 ) . '" />';
287
+ $output .= '<input type="hidden" name="item_amount" value="' . esc_attr( $amount ) . '" />';
288
+ $output .= '<input type="hidden" name="image_size" value="' . esc_attr( $image_size ) . '" />';
289
+ $output .= '<input type="hidden" name="next" value="' . ( ! empty( $items ) && array_key_exists( 'paging', $items ) && is_object( $items['paging'] ) && property_exists( $items['paging'], 'next' ) ? esc_url( $items['paging']->next ) : '' ) . '" />';
290
+ $output .= '<button type="submit">' . esc_html( ( isset( $args['load-more-text'] ) ? trim( $args['load-more-text'] ) : __( 'Load More', 'instagram-widget-by-wpzoom' ) ) . ( ! $this->is_pro ? __( ' [PRO only]', 'instagram-widget-by-wpzoom' ) : '' ) ) . '</button>';
291
+ $output .= '</form>';
292
+ }
293
+
294
+ $output .= '</footer>';
295
+ }
296
+
297
+ if ( $lightbox ) {
298
+ $output .= '<div class="wpz-insta-lightbox-wrapper mfp-hide"><div class="swiper-container"><div class="swiper-wrapper">';
299
+ $output .= self::lightbox_items_html( $items['items'], $user_id );
300
+ $output .= '</div><div class="swiper-button-prev"></div><div class="swiper-button-next"></div></div></div>';
301
+ }
302
+ }
303
+
304
+ $output .= '</div>';
305
+
306
+ return $output;
307
+ }
308
+ }
309
+ }
310
+
311
+ return sprintf(
312
+ '<div class="zoom-instagram"><p class="select-a-feed">%s%s</p></div>',
313
+ '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24"><path d="M20 10.8H6.7l4.1-4.5-1.1-1.1-5.8 6.3 5.8 5.8 1.1-1.1-4-3.9H20z" fill="currentColor" stroke="currentColor" stroke-width="1.5"/></svg>',
314
+ __( 'Please select an account in the panel to the left&hellip;', 'instagram-widget-by-wpzoom' )
315
+ );
316
+ }
317
+
318
+ /**
319
+ * Returns the markup for the given feed items, configured with the given arguments.
320
+ *
321
+ * @param array $items The items to generate the markup for.
322
+ * @param array $args The arguments to define how to return the feed items.
323
+ * @return string The markup for the given feed items, empty string otherwise.
324
+ */
325
+ public static function items_html( $items, $args ) {
326
+ $output = '';
327
+
328
+ if ( ! empty( $items ) && is_array( $items ) ) {
329
+ $count = 0;
330
+ $amount = isset( $args['item-num'] ) ? intval( $args['item-num'] ) : 9;
331
+ $col_num = isset( $args['col-num'] ) && intval( $args['col-num'] ) !== 3 ? intval( $args['col-num'] ) : 3;
332
+ $show_overlay = isset( $args['show-overlay'] ) ? boolval( $args['show-overlay'] ) : true;
333
+ $show_insta_icon = isset( $args['hover-link'] ) ? boolval( $args['hover-link'] ) : true;
334
+ $show_media_type_icons = isset( $args['show-media-type-icons'] ) ? boolval( $args['show-media-type-icons'] ) : true;
335
+ $show_media_type_icons_on_hover = isset( $args['hover-media-type-icons'] ) ? boolval( $args['hover-media-type-icons'] ) : true;
336
+ $hide_video_thumbs = isset( $args['hide-video-thumbs'] ) ? boolval( $args['hide-video-thumbs'] ) : true;
337
+ $image_size = isset( $args['image-size'] ) && in_array( $args['image-size'], array( 'thumbnail', 'low_resolution', 'standard_resolution' ) ) ? $args['image-size'] : 'low_resolution';
338
+ $small_class = $image_size <= 180 ? 'small' : '';
339
+ $svg_icons = plugin_dir_url( __FILE__ ) . 'dist/images/frontend/wpzoom-instagram-icons.svg';
340
+
341
+ foreach ( $items as $item ) {
342
+ $inline_attrs = '';
343
+ $overwrite_src = false;
344
+ $link = isset( $item['link'] ) ? $item['link'] : '';
345
+ $src = isset( $item['image-url'] ) ? $item['image-url'] : '';
346
+ $media_id = isset( $item['image-id'] ) ? $item['image-id'] : '';
347
+ $alt = isset( $item['image-caption'] ) ? esc_attr( $item['image-caption'] ) : '';
348
+ $likes = isset( $item['likes_count'] ) ? intval( $item['likes_count'] ) : 0;
349
+ $typ = isset( $item['type'] ) ? strtolower( $item['type'] ) : 'image';
350
+ $type = in_array( $typ, array( 'video', 'carousel_album' ) ) ? $typ : false;
351
+ $is_album = 'carousel_album' == $type;
352
+ $is_video = 'video' == $type;
353
+ $comments = isset( $item['comments_count'] ) ? intval( $item['comments_count'] ) : 0;
354
+
355
+ /*if ( $is_video && $hide_video_thumbs ) {
356
+ continue;
357
+ }*/
358
+
359
+ if ( ! empty( $media_id ) && empty( $src ) ) {
360
+ $inline_attrs = 'data-media-id="' . esc_attr( $media_id ) . '"';
361
+ $inline_attrs .= 'data-nonce="' . wp_create_nonce( WPZOOM_Instagram_Image_Uploader::get_nonce_action( $media_id ) ) . '"';
362
+ $overwrite_src = true;
363
+ }
364
+
365
+ if (
366
+ ! empty( $media_id ) &&
367
+ ! empty( $src ) &&
368
+ ! file_exists( self::convert_url_to_path( $src ) )
369
+ ) {
370
+ $inline_attrs = 'data-media-id="' . esc_attr( $media_id ) . '"';
371
+ $inline_attrs .= 'data-nonce="' . wp_create_nonce( WPZOOM_Instagram_Image_Uploader::get_nonce_action( $media_id ) ) . '"';
372
+ $inline_attrs .= 'data-regenerate-thumbnails="1"';
373
+ //$overwrite_src = true;
374
+ }
375
+
376
+ $inline_attrs .= 'data-media-type="' . esc_attr( $type ?: 'image' ) . '"';
377
+
378
+ if ( $overwrite_src ) {
379
+ $src = $item['original-image-url'];
380
+ }
381
+
382
+ $width = 100;
383
+ $height = 100;
384
+ if ( ! empty( $src ) ) {
385
+ $local = self::attachment_url_to_path( $src );
386
+ $image_size = @wp_getimagesize( false !== $local ? $local : $src );
387
+
388
+ if ( false !== $image_size ) {
389
+ $width = $image_size[0];
390
+ $height = $image_size[1];
391
+ }
392
+ }
393
+
394
+ $output .= '<li class="zoom-instagram-widget__item' . ( $show_media_type_icons_on_hover ? ' media-icons-hover' : '' ) . '" ' . $inline_attrs . '><div class="zoom-instagram-widget__item-inner-wrap">';
395
+
396
+ $output .= sprintf( '<img src="%1$s" width="%3$d" height="%2$d" />', esc_url( $src ), esc_attr( $width ), esc_attr( $height ) );
397
+
398
+ if ( $show_overlay ) {
399
+ $output .= '<div class="hover-layout zoom-instagram-widget__overlay zoom-instagram-widget__black ' . $small_class . '">';
400
+
401
+ if ( ( $show_media_type_icons || $show_media_type_icons_on_hover ) && ! empty( $type ) ) {
402
+ $output .= '<svg class="svg-icon" shape-rendering="geometricPrecision"><use xlink:href="' . esc_url( $svg_icons ) . '#' . $type . '"></use></svg>';
403
+ }
404
+
405
+ if ( ! empty( $likes ) && ! empty( $comments ) ) {
406
+ $output .= '<div class="hover-controls">
407
+ <span class="dashicons dashicons-heart"></span>
408
+ <span class="counter">' . self::format_number( $likes ) . '</span>
409
+ <span class="dashicons dashicons-format-chat"></span>
410
+ <span class="counter">' . self::format_number( $comments ) . '</span>
411
+ </div>';
412
+ }
413
+
414
+ if (! empty ( $show_insta_icon ) ) {
415
+ $output .= '<div class="zoom-instagram-icon-wrap"><a class="zoom-svg-instagram-stroke" href="' . $link . '" rel="noopener nofollow" target="_blank" title="' . $alt . '"></a></div>
416
+ <a class="zoom-instagram-link" data-src="' . $src . '" data-mfp-src="' . $media_id . '" href="' . $link . '" target="_blank" rel="noopener nofollow" title="' . $alt . '"></a>
417
+ </div>';
418
+ }
419
+ } else {
420
+ $output .= '<a class="zoom-instagram-link" data-src="' . $src . '" data-mfp-src="' . $media_id . '" href="' . $link . '" target="_blank" rel="noopener nofollow" title="' . $alt . '">';
421
+
422
+ if ( ( $show_media_type_icons || $show_media_type_icons_on_hover ) && ! empty( $type ) ) {
423
+ $output .= '<svg class="svg-icon" shape-rendering="geometricPrecision"><use xlink:href="' . esc_url( $svg_icons ) . '#' . $type . '"></use></svg>';
424
+ }
425
+
426
+ $output .= '</a>';
427
+ }
428
+
429
+ $output .= '</div></li>';
430
+
431
+ if ( ++ $count === $amount ) {
432
+ break;
433
+ }
434
+ }
435
+ }
436
+
437
+ return $output;
438
+ }
439
+
440
+ /**
441
+ * Returns the lightbox markup for the given feed items.
442
+ *
443
+ * @param array $items The items to generate the markup for.
444
+ * @param int $user_id The ID of the user to disaply in the user info area.
445
+ * @return string The lightbox markup for the given feed items, empty string otherwise.
446
+ */
447
+ public static function lightbox_items_html( $items, $user_id ) {
448
+ $output = '';
449
+
450
+ if ( ! empty( $items ) && is_array( $items ) ) {
451
+ $user = get_post( $user_id );
452
+
453
+ if ( $user instanceof WP_Post ) {
454
+ $amount = count( $items );
455
+ $count = 0;
456
+ $user_name = get_the_title( $user );
457
+ $user_name_display = sprintf( '@%s', $user_name );
458
+ $user_image = get_the_post_thumbnail_url( $user, 'thumbnail' ) ?: plugin_dir_url( __FILE__ ) . 'dist/images/backend/user-avatar.jpg';
459
+
460
+ foreach ( $items as $item ) {
461
+ $count++;
462
+ $link = isset( $item['link'] ) ? $item['link'] : '';
463
+ $src = isset( $item['original-image-url'] ) ? $item['original-image-url'] : '';
464
+ $media_id = isset( $item['image-id'] ) ? $item['image-id'] : '';
465
+ $alt = isset( $item['image-caption'] ) ? esc_attr( $item['image-caption'] ) : '';
466
+ $typ = isset( $item['type'] ) ? strtolower( $item['type'] ) : 'image';
467
+ $type = in_array( $typ, array( 'video', 'carousel_album' ) ) ? $typ : false;
468
+ $is_album = 'carousel_album' == $type;
469
+ $is_video = 'video' == $type;
470
+ $children = $is_album && isset( $item['children'] ) && is_object( $item['children'] ) && isset( $item['children']->data ) ? $item['children']->data : false;
471
+
472
+ $output .= '<div data-uid="' . $media_id . '" class="swiper-slide wpz-insta-lightbox-item"><div class="wpz-insta-lightbox"><div class="image-wrapper">';
473
+
474
+ if ( $is_album && false !== $children ) {
475
+ $output .= '<div class="swiper-container"><div class="swiper-wrapper wpz-insta-album-images">';
476
+
477
+ foreach ( $children as $child ) {
478
+ $child_type = property_exists( $child, 'media_type' ) && in_array( $child->media_type, array( 'VIDEO', 'CAROUSEL_ALBUM' ) ) ? strtolower( $child->media_type ) : 'image';
479
+ $thumb = 'video' == $child_type && property_exists( $child, 'thumbnail_url' ) ? strtolower( $child->thumbnail_url ) : '';
480
+
481
+ $output .= '<div class="swiper-slide wpz-insta-album-image" data-media-type="' . esc_attr( $child_type ) . '">';
482
+
483
+ if ( 'video' == $child_type ) {
484
+ $output .= '<video controls preload="metadata" poster="' . esc_attr( $thumb ) . '"><source src="' . esc_url( $child->media_url ) . '" type="video/mp4"/>' . esc_html( $alt ) . '</video>';
485
+ } else {
486
+ $output .= '<img class="wpzoom-swiper-image" src="' . esc_url( $child->media_url ) . '" alt="' . esc_attr( $alt ) . '"/>';
487
+ }
488
+
489
+ $output .= '</div>';
490
+ }
491
+
492
+ $output .= '</div><div class="swiper-pagination"></div><div class="swiper-button-prev"></div><div class="swiper-button-next"></div></div>';
493
+ } else {
494
+ $output .= '<img class="wpzoom-swiper-image" src="' . esc_url( $src ) . '" alt="' . esc_attr( $alt ) . '"/>';
495
+ }
496
+
497
+ $output .= '</div>
498
+ <div class="details-wrapper">
499
+ <div class="wpz-insta-header">
500
+ <div class="wpz-insta-avatar">
501
+ <img src="' . esc_url( $user_image ) . '" alt="' . esc_attr( $user_name_display ) . '" width="42" height="42"/>
502
+ </div>
503
+ <div class="wpz-insta-buttons">
504
+ <div class="wpz-insta-username">
505
+ <a rel="noopener" target="_blank" href="' . sprintf( 'https://instagram.com/%s', esc_attr( $user_name ) ) . '">' . esc_html( $user_name_display ) . '</a>
506
+ </div>
507
+ <div>&bull;</div>
508
+ <div class="wpz-insta-follow">
509
+ <a target="_blank" rel="noopener"
510
+ href="' . sprintf( 'https://instagram.com/%s?ref=badge', esc_attr( $user_name ) ) . '">
511
+ ' . __( 'Follow', 'wpzoom-instagram-widget' ) . '
512
+ </a>
513
+ </div>
514
+ </div>
515
+ </div>';
516
+
517
+ if ( ! empty( $item['image-caption'] ) ) {
518
+ $output .= '<div class="wpz-insta-caption">' . self::filter_caption( $item['image-caption'] ) . '</div>';
519
+ }
520
+
521
+ if ( ! empty( $item['timestamp'] ) ) {
522
+ $output .= '<div class="wpz-insta-date">' . sprintf( __( '%s ago' ), human_time_diff( strtotime( $item['timestamp'] ) ) ) . '</div>';
523
+ }
524
+
525
+ $output .= '<div class="view-post">
526
+ <a href="' . esc_url( $link ) . '" target="_blank" rel="noopener"><span class="dashicons dashicons-instagram"></span>' . __( 'View on Instagram', 'wpzoom-instagram-widget' ) . '</a>
527
+ <span class="delimiter">|</span>
528
+ <div class="wpz-insta-pagination">' . sprintf( '%d/%d', $count, $amount ) . '</div>
529
+ </div></div></div></div>';
530
+ }
531
+ }
532
+ }
533
+
534
+ return $output;
535
+ }
536
+
537
+ /**
538
+ * Return errors if widget is misconfigured and current user can manage options (plugin settings).
539
+ *
540
+ * @return void
541
+ */
542
+ protected function get_errors( $errors ) {
543
+ $output = '';
544
+
545
+ if ( current_user_can( 'edit_theme_options' ) ) {
546
+ $output .= sprintf(
547
+ '<p>%s <strong><a href="%s" target="_blank">%s</a></strong> %s</p>',
548
+ __( 'Instagram Widget misconfigured or your Access Token <strong>expired</strong>. Please check', 'instagram-widget-by-wpzoom' ),
549
+ admin_url( 'edit.php?post_type=wpz-insta_user' ),
550
+ __( 'Instagram Settings Page', 'instagram-widget-by-wpzoom' ),
551
+ __( 'and re-connect your account.', 'instagram-widget-by-wpzoom' )
552
+ );
553
+
554
+ if ( ! empty( $errors ) ) {
555
+ $output .= '<ul>';
556
+
557
+ foreach ( $errors as $error ) {
558
+ $output .= '<li>' . esc_html( $error ) . '</li>';
559
+ }
560
+
561
+ $output .= '</ul>';
562
+ }
563
+ } else {
564
+ $output .= '&#8230;';
565
+ }
566
+
567
+ return $output;
568
+ }
569
+
570
+ /**
571
+ * Returns the CSS markup for a feed configured with the given arguments.
572
+ *
573
+ * @param array $args The arguments to define how to return the feed CSS.
574
+ * @return string
575
+ */
576
+ public function style_content( array $args ) {
577
+ $output = '';
578
+ $feed_id = isset( $args['feed-id'] ) ? ".feed-" . $args['feed-id'] : "";
579
+ $raw_layout = isset( $args['layout'] ) ? intval( $args['layout'] ) : 0;
580
+ $layout = $this->is_pro ? $raw_layout : ( $raw_layout > 1 ? 0 : $raw_layout );
581
+ $col_num = isset( $args['col-num'] ) && intval( $args['col-num'] ) !== 3 ? intval( $args['col-num'] ) : 3;
582
+ $spacing_between = isset( $args['spacing-between'] ) && intval( $args['spacing-between'] ) > -1 ? intval( $args['spacing-between'] ) : -1;
583
+ $spacing_between_suffix = $this->get_suffix( isset( $args['spacing-between-suffix'] ) ? intval( $args['spacing-between-suffix'] ) : 0 );
584
+ $button_bg = isset( $args['view-button-bg-color'] ) ? $this->validate_color( $args['view-button-bg-color'] ) : '';
585
+ $loadmore_bg = isset( $args['load-more-color'] ) ? $this->validate_color( $args['load-more-color'] ) : '';
586
+ $bg_color = isset( $args['bg-color'] ) ? $this->validate_color( $args['bg-color'] ) : '';
587
+ $border_radius = isset( $args['border-radius'] ) ? ( intval( $args['border-radius'] ) ?: -1 ) : -1;
588
+ $border_radius_suffix = $this->get_suffix( isset( $args['border-radius-suffix'] ) ? intval( $args['border-radius-suffix'] ) : 0 );
589
+ $spacing_around = isset( $args['spacing-around'] ) ? ( intval( $args['spacing-around'] ) ?: -1 ) : -1;
590
+ $spacing_around_suffix = $this->get_suffix( isset( $args['spacing-around-suffix'] ) ? intval( $args['spacing-around-suffix'] ) : 0 );
591
+ $font_size = isset( $args['font-size'] ) ? ( intval( $args['font-size'] ) ?: -1 ) : -1;
592
+ $font_size_suffix = $this->get_suffix( isset( $args['font-size-suffix'] ) ? intval( $args['font-size-suffix'] ) : 0 );
593
+ $image_width = isset( $args['image-width'] ) ? ( intval( $args['image-width'] ) ?: 240 ) : 240;
594
+ $image_width_suffix = $this->get_suffix( isset( $args['image-width-suffix'] ) ? intval( $args['image-width-suffix'] ) : 0 );
595
+ $hover_likes = isset( $args['hover-likes'] ) ? boolval( $args['hover-likes'] ) : true;
596
+ $hover_link = isset( $args['hover-link'] ) ? boolval( $args['hover-link'] ) : true;
597
+ $hover_caption = isset( $args['hover-caption'] ) ? boolval( $args['hover-caption'] ) : false;
598
+ $hover_username = isset( $args['hover-username'] ) ? boolval( $args['hover-username'] ) : false;
599
+ $hover_date = isset( $args['hover-date'] ) ? boolval( $args['hover-date'] ) : false;
600
+ $hover_text_color = isset( $args['hover-text-color'] ) ? $this->validate_color( $args['hover-text-color'] ) : '';
601
+ $hover_bg_color = isset( $args['hover-bg-color'] ) ? $this->validate_color( $args['hover-bg-color'] ) : '';
602
+
603
+ if ( $font_size > -1 || ! empty( $bg_color ) || $spacing_around > -1 ) {
604
+ $output .= ".zoom-instagram" . $feed_id . " {\n";
605
+
606
+ if ( $font_size > -1 ) {
607
+ $output .= "\tfont-size: " . $font_size . $font_size_suffix . " !important;\n";
608
+ }
609
+
610
+ if ( ! empty( $bg_color ) ) {
611
+ $output .= "\tbackground-color: " . $bg_color . " !important;\n";
612
+ }
613
+
614
+ if ( $spacing_around > -1 ) {
615
+ $output .= "\tpadding: " . $spacing_around . $spacing_around_suffix . " !important;\n";
616
+ }
617
+
618
+ $output .= "}\n\n";
619
+ }
620
+
621
+ if ( 3 !== $col_num || $spacing_between > -1 ) {
622
+ $output .= ".zoom-instagram" . $feed_id . " .zoom-instagram-widget__items {\n";
623
+
624
+ if ( 3 !== $col_num ) {
625
+ $output .= "\tgrid-template-columns: repeat(" . $col_num . ", 1fr) !important;\n";
626
+ }
627
+
628
+ if ( $spacing_between > -1 ) {
629
+ $output .= "\tgap: " . $spacing_between . $spacing_between_suffix . " !important;\n";
630
+ }
631
+
632
+ $output .= "}\n\n";
633
+ }
634
+
635
+ if ( $image_width > -1 && 1 === $layout ) {
636
+ $output .= ".zoom-instagram" . $feed_id . " .zoom-instagram-widget__items img {\n";
637
+ $output .= "\twidth: " . $image_width . $image_width_suffix . " !important;";
638
+ $output .= "}\n\n";
639
+ }
640
+
641
+ if ( $border_radius > -1 ) {
642
+ $output .= ".zoom-instagram" . $feed_id . " .zoom-instagram-widget__item .zoom-instagram-widget__item-inner-wrap {\n\tborder-radius: " . $border_radius . $border_radius_suffix . " !important;\n}\n\n";
643
+ }
644
+
645
+ if ( '' != $button_bg ) {
646
+ $output .= ".zoom-instagram" . $feed_id . " .wpz-insta-view-on-insta-button {\n\tbackground-color: " . $button_bg . " !important;\n}";
647
+ }
648
+
649
+ if ( '' != $loadmore_bg ) {
650
+ $output .= ".zoom-instagram" . $feed_id . " .wpzinsta-pro-load-more button[type=submit] {\n\tbackground-color: " . $loadmore_bg . " !important;\n}";
651
+ }
652
+
653
+ return $output;
654
+ }
655
+
656
+ /**
657
+ * Outputs the CSS styles for the feed with the given ID.
658
+ *
659
+ * @param int $feed_id The ID of the feed to output the styles for.
660
+ * @param bool $echo Whether to output the styles (default) or return them.
661
+ * @return void
662
+ */
663
+ public function output_styles( int $feed_id, bool $echo = true ) {
664
+ $output = '';
665
+
666
+ if ( $feed_id > -1 ) {
667
+ $feed = get_post( $feed_id, OBJECT, 'display' );
668
+
669
+ if ( null !== $feed && $feed instanceof WP_Post ) {
670
+ $args = WPZOOM_Instagram_Widget_Settings::get_all_feed_settings_values( $feed_id );
671
+ $args['feed-id'] = $feed_id;
672
+ $output = $this->style_content( $args );
673
+ }
674
+ }
675
+
676
+ if ( $echo ) {
677
+ echo $output;
678
+ } else {
679
+ return $output;
680
+ }
681
+ }
682
+
683
+ /**
684
+ * Outputs the CSS styles for the preview of a feed configured with the given arguments.
685
+ *
686
+ * @param array $args The arguments to define how to output the feed preview CSS.
687
+ * @param bool $echo Whether to output the preview (default) or return it.
688
+ * @return void
689
+ */
690
+ public function output_preview_styles( array $args, bool $echo = true ) {
691
+ $output = $this->style_content( $args );
692
+
693
+ if ( $echo ) {
694
+ echo $output;
695
+ } else {
696
+ return $output;
697
+ }
698
+ }
699
+
700
+ /**
701
+ * Returns a suffix string (e.g. px, em, etc) from the given index.
702
+ *
703
+ * @param int $index The index to get the suffix value for.
704
+ * @return string The suffix value as a string.
705
+ */
706
+ public function get_suffix( int $index ) {
707
+ return 2 === $index ? '%' : ( 1 === $index ? 'em' : 'px' );
708
+ }
709
+
710
+ /**
711
+ * Returns a validated color value.
712
+ *
713
+ * @param string $color The raw color string to validate.
714
+ * @return string The validated color string.
715
+ */
716
+ function validate_color( string $color ) {
717
+ return preg_match( '/^(\#[\da-f]{3}|\#[\da-f]{6}|rgba\(((\d{1,2}|1\d\d|2([0-4]\d|5[0-5]))\s*,\s*){2}((\d{1,2}|1\d\d|2([0-4]\d|5[0-5]))\s*)(,\s*(0\.\d+|1))\)|hsla\(\s*((\d{1,2}|[1-2]\d{2}|3([0-5]\d|60)))\s*,\s*((\d{1,2}|100)\s*%)\s*,\s*((\d{1,2}|100)\s*%)(,\s*(0\.\d+|1))\)|rgb\(((\d{1,2}|1\d\d|2([0-4]\d|5[0-5]))\s*,\s*){2}((\d{1,2}|1\d\d|2([0-4]\d|5[0-5]))\s*)|hsl\(\s*((\d{1,2}|[1-2]\d{2}|3([0-5]\d|60)))\s*,\s*((\d{1,2}|100)\s*%)\s*,\s*((\d{1,2}|100)\s*%)\))$/i', $color ) ? $color : '';
718
+ }
719
+
720
+ /**
721
+ * Formats a number for display.
722
+ *
723
+ * @param int $num The number to format.
724
+ * @return string The formatted number in a string.
725
+ */
726
+ public static function format_number( int $num ) {
727
+ if ( $num < 10000 ) {
728
+ return number_format( $num );
729
+ }
730
+
731
+ $units = array( '', 'k', 'm', 'b', 't' );
732
+ for ( $i = 0; $num >= 1000; $i ++ ) {
733
+ $num /= 1000;
734
+ }
735
+
736
+ return round( $num, 1 ) . $units[ $i ];
737
+ }
738
+
739
+ /**
740
+ * Convert $url to file path.
741
+ *
742
+ * @param string $url
743
+ * @return string|string[]
744
+ */
745
+ public static function convert_url_to_path( string $url ) {
746
+ return str_replace(
747
+ wp_get_upload_dir()['baseurl'],
748
+ wp_get_upload_dir()['basedir'],
749
+ $url
750
+ );
751
+ }
752
+
753
+ /**
754
+ * Convert attachment $url to file path.
755
+ *
756
+ * @param string $url
757
+ * @return string|false
758
+ */
759
+ public static function attachment_url_to_path( string $url ) {
760
+ $parsed_url = parse_url( $url );
761
+
762
+ if ( empty( $parsed_url['path'] ) ) {
763
+ return false;
764
+ }
765
+
766
+ $file = ABSPATH . ltrim( $parsed_url['path'], '/' );
767
+
768
+ if ( file_exists( $file ) ) {
769
+ return $file;
770
+ }
771
+
772
+ return false;
773
+ }
774
+
775
+ /**
776
+ * Sanitizes and prepares caption content for display.
777
+ *
778
+ * @param string $caption The raw caption text to filter.
779
+ * @return string The filtered caption text.
780
+ */
781
+ public static function filter_caption( string $caption = '' ) {
782
+ if ( ! empty( $caption ) ) {
783
+ $filters = array(
784
+ 'wp_kses_post',
785
+ 'autoembed',
786
+ 'wptexturize',
787
+ 'wpautop',
788
+ 'wp_filter_content_tags',
789
+ 'capital_P_dangit',
790
+ 'convert_chars',
791
+ 'convert_smilies',
792
+ 'force_balance_tags',
793
+ );
794
+
795
+ foreach ( $filters as $filter ) {
796
+ $caption = apply_filters( $filter, $caption );
797
+ }
798
+ }
799
+
800
+ return trim( $caption );
801
+ }
802
+ }
class-wpzoom-instagram-widget-settings.php CHANGED
@@ -22,6 +22,67 @@ class WPZOOM_Instagram_Widget_Settings {
22
  */
23
  public static $settings = array();
24
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
25
  /**
26
  * Settings option name
27
  *
@@ -30,6 +91,22 @@ class WPZOOM_Instagram_Widget_Settings {
30
  */
31
  public static $option_name = 'wpzoom-instagram-widget-settings';
32
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
33
  /**
34
  * Returns the *Singleton* instance of this class.
35
  *
@@ -49,6 +126,11 @@ class WPZOOM_Instagram_Widget_Settings {
49
  public function __construct() {
50
  self::$settings = get_option( 'wpzoom-instagram-widget-settings', wpzoom_instagram_get_default_settings() );
51
 
 
 
 
 
 
52
  add_action( 'admin_menu', array( $this, 'add_admin_menu' ) );
53
  add_action( 'admin_init', array( $this, 'settings_init' ) );
54
 
@@ -57,6 +139,1767 @@ class WPZOOM_Instagram_Widget_Settings {
57
  add_action( 'admin_enqueue_scripts', array( $this, 'scripts' ), 9 );
58
  }
59
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
60
  public function add_action_links( $links, $file ) {
61
  if ( $file != plugin_basename( dirname( __FILE__ ) . '/instagram-widget-by-wpzoom.php' ) ) {
62
  return $links;
@@ -64,8 +1907,8 @@ class WPZOOM_Instagram_Widget_Settings {
64
 
65
  $settings_link = sprintf(
66
  '<a href="%1$s">%2$s</a>',
67
- menu_page_url( 'wpzoom-instagram-widget', false ),
68
- esc_html__( 'Settings', 'instagram-widget-by-wpzoom' )
69
  );
70
 
71
  array_unshift( $links, $settings_link );
@@ -73,14 +1916,227 @@ class WPZOOM_Instagram_Widget_Settings {
73
  return $links;
74
  }
75
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
76
  public function add_admin_menu() {
77
- add_options_page(
78
- 'Instagram Widget',
79
- 'Instagram Widget',
 
 
 
 
 
 
80
  'manage_options',
81
- 'wpzoom-instagram-widget',
82
- array( $this, 'settings_page' )
83
  );
 
 
 
 
 
 
 
 
 
 
 
 
84
  }
85
 
86
  public function settings_init() {
@@ -220,10 +2276,10 @@ class WPZOOM_Instagram_Widget_Settings {
220
  'redirect_uri' => 'https://wpzoom.com/instagram-auth/',
221
  'scope' => 'user_profile,user_media',
222
  'response_type' => 'code',
 
223
  ),
224
  'https://api.instagram.com/oauth/authorize'
225
  );
226
- $oauth_url .= '&state=' . base64_encode( urlencode( admin_url( 'options-general.php?page=wpzoom-instagram-widget' ) ) );
227
  ?>
228
 
229
  <p class="description"><?php _e( 'Using this method, you will be prompted to authorize the plugin to access your Instagram photos. The widget will automatically display the latest photos of the account which was authorized on this page.', 'instagram-widget-by-wpzoom' ); ?></p>
@@ -437,60 +2493,200 @@ class WPZOOM_Instagram_Widget_Settings {
437
  <?php
438
  }
439
 
440
- public function settings_page() {
441
- ?>
 
 
 
 
 
 
 
 
 
442
 
 
443
  <div class="wrap">
444
-
445
- <h1><?php _e( 'Instagram Widget by WPZOOM', 'instagram-widget-by-wpzoom' ); ?></h1>
446
-
447
- <div class="zoom-instagram-widget">
448
-
449
- <h2><?php _e( 'Connect your Instagram account', 'instagram-widget-by-wpzoom' ); ?></h2>
450
-
451
- <p><?php _e( 'To get started, select an option below. If you want to show <strong>your own feed</strong>, use the first option. If you want to show the feed of an Instagram account which you don\'t own, use the option <strong>Public Feed</strong>.', 'instagram-widget-by-wpzoom' ); ?></p>
452
-
453
- <form action="options.php" method="post">
454
-
455
  <?php
456
- settings_fields( 'wpzoom-instagram-widget-settings-group' );
457
- do_settings_sections( 'wpzoom-instagram-widget-settings-group' );
458
- submit_button();
 
459
  ?>
460
-
461
- </form>
462
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
463
  </div>
 
 
 
464
 
465
- <div class="zoom-themes-link">
 
 
 
466
 
467
- <h2><?php _e( 'Premium WordPress Themes by WPZOOM', 'instagram-widget-by-wpzoom' ); ?></h2>
 
 
 
 
468
 
469
- <p><?php _e( 'Are you looking to give your website a new look?<br/> Check out our collection of <strong>35 expertly-crafted themes</strong> and find the perfect one for your needs!', 'instagram-widget-by-wpzoom' ); ?></p>
 
470
 
471
- <p><a class="cta-button" target="_blank" href="https://www.wpzoom.com/themes/"><?php _e( 'Check out our Themes &rarr;', 'instagram-widget-by-wpzoom' ); ?></a></p>
472
 
 
 
473
  </div>
474
-
475
  </div>
476
-
477
  <?php
478
  }
479
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
480
  public function scripts( $hook ) {
481
- if ( $hook != 'settings_page_wpzoom-instagram-widget' ) {
482
- return;
483
- }
484
- wp_enqueue_media();
485
- wp_enqueue_style( 'zoom-instagram-widget-admin', plugin_dir_url( dirname( __FILE__ ) . '/instagram-widget-by-wpzoom.php' ) . 'css/admin-instagram-widget.css', array(), '1.7.3' );
486
- wp_enqueue_script( 'zoom-instagram-widget-admin', plugin_dir_url( dirname( __FILE__ ) . '/instagram-widget-by-wpzoom.php' ) . 'js/admin-instagram-widget.js', array( 'jquery' ), '1.7.3' );
487
- wp_localize_script(
488
- 'zoom-instagram-widget-admin',
489
- 'zoom_instagram_widget_admin',
490
- array(
491
- 'i18n_connect_confirm' => __( "Instagram Widget is already connected to Instagram.\r\n\r\nDo you want to connect again?", 'instagram-widget-by-wpzoom' ),
492
- )
493
- );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
494
  }
495
 
496
  public function sanitize( $input ) {
@@ -543,7 +2739,7 @@ class WPZOOM_Instagram_Widget_Settings {
543
  * @return array
544
  */
545
  public function get_settings() {
546
- return self::$settings;
547
  }
548
 
549
  /**
22
  */
23
  public static $settings = array();
24
 
25
+ /**
26
+ * All the settings for a feed.
27
+ *
28
+ * @since 2.0.0
29
+ * @var array
30
+ */
31
+ public static $feed_settings = array(
32
+ 'user-id' => array( 'type' => 'integer', 'default' => -1 ),
33
+ 'check-new-posts-interval-number' => array( 'type' => 'integer', 'default' => 1 ),
34
+ 'check-new-posts-interval-suffix' => array( 'type' => 'integer', 'default' => 2 ),
35
+ 'enable-request-timeout' => array( 'type' => 'boolean', 'default' => false ),
36
+ 'layout' => array( 'type' => 'integer', 'default' => 0 ),
37
+ 'item-num' => array( 'type' => 'integer', 'default' => 9 ),
38
+ 'col-num' => array( 'type' => 'integer', 'default' => 3 ),
39
+ 'spacing-between' => array( 'type' => 'number', 'default' => 10 ),
40
+ 'spacing-between-suffix' => array( 'type' => 'integer', 'default' => 0 ),
41
+ 'show-account-name' => array( 'type' => 'boolean', 'default' => true ),
42
+ 'show-account-username' => array( 'type' => 'boolean', 'default' => true ),
43
+ 'show-account-image' => array( 'type' => 'boolean', 'default' => true ),
44
+ 'show-account-bio' => array( 'type' => 'boolean', 'default' => true ),
45
+ 'show-view-button' => array( 'type' => 'boolean', 'default' => true ),
46
+ 'view-button-text' => array( 'type' => 'string', 'default' => 'View on Instagram' ),
47
+ 'view-button-bg-color' => array( 'type' => 'string', 'default' => '' ),
48
+ 'bg-color' => array( 'type' => 'string', 'default' => '' ),
49
+ 'border-radius' => array( 'type' => 'number', 'default' => 0 ),
50
+ 'border-radius-suffix' => array( 'type' => 'integer', 'default' => 0 ),
51
+ 'spacing-around' => array( 'type' => 'number', 'default' => 1 ),
52
+ 'spacing-around-suffix' => array( 'type' => 'integer', 'default' => 0 ),
53
+ 'font-size' => array( 'type' => 'number', 'default' => 14 ),
54
+ 'font-size-suffix' => array( 'type' => 'integer', 'default' => 0 ),
55
+ 'image-size' => array( 'type' => 'string', 'default' => 'low_resolution' ),
56
+ 'image-width' => array( 'type' => 'number', 'default' => 240 ),
57
+ 'image-width-suffix' => array( 'type' => 'integer', 'default' => 0 ),
58
+ 'show-overlay' => array( 'type' => 'boolean', 'default' => true ),
59
+ 'lazy-load' => array( 'type' => 'boolean', 'default' => true ),
60
+ 'lightbox' => array( 'type' => 'boolean', 'default' => true ),
61
+ 'hide-video-thumbs' => array( 'type' => 'boolean', 'default' => true ),
62
+ 'show-media-type-icons' => array( 'type' => 'boolean', 'default' => true ),
63
+ 'hover-media-type-icons' => array( 'type' => 'boolean', 'default' => true ),
64
+ 'hover-link' => array( 'type' => 'boolean', 'default' => true ),
65
+ // 'hover-autoplay' => array( 'type' => 'boolean', 'default' => false ),
66
+ // 'hover-tags-feed' => array( 'type' => 'boolean', 'default' => false ),
67
+ // 'hover-date' => array( 'type' => 'boolean', 'default' => false ),
68
+ 'show-load-more' => array( 'type' => 'boolean', 'default' => true ),
69
+ 'load-more-text' => array( 'type' => 'string', 'default' => 'Load More' ),
70
+ 'load-more-color' => array( 'type' => 'string', 'default' => '' ),
71
+ );
72
+
73
+ /**
74
+ * All the settings for a user.
75
+ *
76
+ * @since 2.0.0
77
+ * @var array
78
+ */
79
+ public static $user_settings = array(
80
+ 'token' => array( 'type' => 'string', 'default' => '' ),
81
+ 'token_expire' => array( 'type' => 'integer', 'default' => 0 ),
82
+ 'user_name' => array( 'type' => 'string', 'default' => '' ),
83
+ 'account-type' => array( 'type' => 'string', 'default' => 'personal' ),
84
+ );
85
+
86
  /**
87
  * Settings option name
88
  *
91
  */
92
  public static $option_name = 'wpzoom-instagram-widget-settings';
93
 
94
+ /**
95
+ * If there are any registered users
96
+ *
97
+ * @since 2.0.0
98
+ * @var string
99
+ */
100
+ public static $any_users = false;
101
+
102
+ /**
103
+ * If there are any feeds
104
+ *
105
+ * @since 2.0.0
106
+ * @var string
107
+ */
108
+ public static $any_feeds = false;
109
+
110
  /**
111
  * Returns the *Singleton* instance of this class.
112
  *
126
  public function __construct() {
127
  self::$settings = get_option( 'wpzoom-instagram-widget-settings', wpzoom_instagram_get_default_settings() );
128
 
129
+ add_action( 'init', array( $this, 'init' ) );
130
+
131
+ add_filter( 'views_edit-wpz-insta_feed', array( $this, 'views_filter' ) );
132
+ add_filter( 'views_edit-wpz-insta_user', array( $this, 'views_filter' ) );
133
+
134
  add_action( 'admin_menu', array( $this, 'add_admin_menu' ) );
135
  add_action( 'admin_init', array( $this, 'settings_init' ) );
136
 
139
  add_action( 'admin_enqueue_scripts', array( $this, 'scripts' ), 9 );
140
  }
141
 
142
+ public function init() {
143
+ register_post_type(
144
+ 'wpz-insta_user',
145
+ array(
146
+ 'label' => __( 'User', 'instagram-widget-by-wpzoom' ),
147
+ 'description' => __( 'Instagram User', 'instagram-widget-by-wpzoom' ),
148
+ 'labels' => array(
149
+ 'name' => _x( 'Instagram User', 'Post Type General Name', 'instagram-widget-by-wpzoom' ),
150
+ 'singular_name' => _x( 'User', 'Post Type Singular Name', 'instagram-widget-by-wpzoom' ),
151
+ 'menu_name' => __( 'Users', 'instagram-widget-by-wpzoom' ),
152
+ 'name_admin_bar' => __( 'User', 'instagram-widget-by-wpzoom' ),
153
+ 'archives' => __( 'User Archives', 'instagram-widget-by-wpzoom' ),
154
+ 'attributes' => __( 'User Attributes', 'instagram-widget-by-wpzoom' ),
155
+ 'parent_item_colon' => __( 'Parent User:', 'instagram-widget-by-wpzoom' ),
156
+ 'all_items' => __( 'Users', 'instagram-widget-by-wpzoom' ),
157
+ 'add_new_item' => __( 'Add New User', 'instagram-widget-by-wpzoom' ),
158
+ 'add_new' => __( 'Add New User', 'instagram-widget-by-wpzoom' ),
159
+ 'new_item' => __( 'New User', 'instagram-widget-by-wpzoom' ),
160
+ 'edit_item' => __( 'Edit User', 'instagram-widget-by-wpzoom' ),
161
+ 'update_item' => __( 'Update User', 'instagram-widget-by-wpzoom' ),
162
+ 'view_item' => __( 'View User', 'instagram-widget-by-wpzoom' ),
163
+ 'view_items' => __( 'View Users', 'instagram-widget-by-wpzoom' ),
164
+ 'search_items' => __( 'Search User', 'instagram-widget-by-wpzoom' ),
165
+ 'not_found' => __( 'Not found', 'instagram-widget-by-wpzoom' ),
166
+ 'not_found_in_trash' => __( 'Not found in Trash', 'instagram-widget-by-wpzoom' ),
167
+ 'featured_image' => __( 'Featured Image', 'instagram-widget-by-wpzoom' ),
168
+ 'set_featured_image' => __( 'Set featured image', 'instagram-widget-by-wpzoom' ),
169
+ 'remove_featured_image' => __( 'Remove featured image', 'instagram-widget-by-wpzoom' ),
170
+ 'use_featured_image' => __( 'Use as featured image', 'instagram-widget-by-wpzoom' ),
171
+ 'insert_into_item' => __( 'Insert into user', 'instagram-widget-by-wpzoom' ),
172
+ 'uploaded_to_this_item' => __( 'Uploaded to this user', 'instagram-widget-by-wpzoom' ),
173
+ 'items_list' => __( 'Users list', 'instagram-widget-by-wpzoom' ),
174
+ 'items_list_navigation' => __( 'Users list navigation', 'instagram-widget-by-wpzoom' ),
175
+ 'filter_items_list' => __( 'Filter users list', 'instagram-widget-by-wpzoom' ),
176
+ ),
177
+ 'supports' => array(
178
+ 'title',
179
+ 'thumbnaiicon-wrapl',
180
+ 'custom-fields',
181
+ ),
182
+ 'hierarchical' => false,
183
+ 'public' => false,
184
+ 'show_ui' => true,
185
+ 'show_in_menu' => 'edit.php?post_type=wpz-insta_feed',
186
+ 'show_in_admin_bar' => false,
187
+ 'show_in_nav_menus' => false,
188
+ 'can_export' => false,
189
+ 'has_archive' => false,
190
+ 'exclude_from_search' => true,
191
+ 'publicly_queryable' => true,
192
+ 'capability_type' => 'post',
193
+ 'show_in_rest' => true,
194
+ )
195
+ );
196
+
197
+ remove_post_type_support( 'wpz-insta_user', 'revisions' );
198
+
199
+ foreach ( self::$user_settings as $uset_name => $uset_args ) {
200
+ $args = ! empty( $uset_args ) && is_array( $uset_args ) ? $uset_args : array();
201
+
202
+ register_post_meta(
203
+ 'wpz-insta_user',
204
+ sprintf( _x( '_wpz-insta_%s', 'User setting ID', 'instagram-widget-by-wpzoom' ), $uset_name ),
205
+ array(
206
+ 'single' => true,
207
+ 'show_in_rest' => true,
208
+ 'type' => ( array_key_exists( 'type', $args ) ? $args['type'] : 'string' ),
209
+ 'default' => ( array_key_exists( 'default', $args ) ? $args['default'] : '' ),
210
+ )
211
+ );
212
+ }
213
+
214
+ $users_count = wp_count_posts( 'wpz-insta_user' );
215
+ self::$any_users = property_exists( $users_count, 'publish' ) ? intval( $users_count->publish ) > 0 : false;
216
+
217
+ register_post_type(
218
+ 'wpz-insta_feed',
219
+ array(
220
+ 'label' => __( 'Feed', 'instagram-widget-by-wpzoom' ),
221
+ 'description' => __( 'Instagram Feed', 'instagram-widget-by-wpzoom' ),
222
+ 'labels' => array(
223
+ 'name' => _x( 'Instagram Widget', 'Post Type General Name', 'instagram-widget-by-wpzoom' ),
224
+ 'singular_name' => _x( 'Feed', 'Post Type Singular Name', 'instagram-widget-by-wpzoom' ),
225
+ 'menu_name' => __( 'Instagram Widget', 'instagram-widget-by-wpzoom' ),
226
+ 'name_admin_bar' => __( 'Feed', 'instagram-widget-by-wpzoom' ),
227
+ 'archives' => __( 'Feed Archives', 'instagram-widget-by-wpzoom' ),
228
+ 'attributes' => __( 'Feed Attributes', 'instagram-widget-by-wpzoom' ),
229
+ 'parent_item_colon' => __( 'Parent Feed:', 'instagram-widget-by-wpzoom' ),
230
+ 'all_items' => __( 'Feeds', 'instagram-widget-by-wpzoom' ),
231
+ 'add_new_item' => __( 'Add New Feed', 'instagram-widget-by-wpzoom' ),
232
+ 'add_new' => __( 'Add New Feed', 'instagram-widget-by-wpzoom' ),
233
+ 'new_item' => __( 'New Feed', 'instagram-widget-by-wpzoom' ),
234
+ 'edit_item' => __( 'Edit Feed', 'instagram-widget-by-wpzoom' ),
235
+ 'update_item' => __( 'Update Feed', 'instagram-widget-by-wpzoom' ),
236
+ 'view_item' => __( 'View Feed', 'instagram-widget-by-wpzoom' ),
237
+ 'view_items' => __( 'View Feeds', 'instagram-widget-by-wpzoom' ),
238
+ 'search_items' => __( 'Search Feed', 'instagram-widget-by-wpzoom' ),
239
+ 'not_found' => __( 'Not found', 'instagram-widget-by-wpzoom' ),
240
+ 'not_found_in_trash' => __( 'Not found in Trash', 'instagram-widget-by-wpzoom' ),
241
+ 'featured_image' => __( 'Featured Image', 'instagram-widget-by-wpzoom' ),
242
+ 'set_featured_image' => __( 'Set featured image', 'instagram-widget-by-wpzoom' ),
243
+ 'remove_featured_image' => __( 'Remove featured image', 'instagram-widget-by-wpzoom' ),
244
+ 'use_featured_image' => __( 'Use as featured image', 'instagram-widget-by-wpzoom' ),
245
+ 'insert_into_item' => __( 'Insert into feed', 'instagram-widget-by-wpzoom' ),
246
+ 'uploaded_to_this_item' => __( 'Uploaded to this feed', 'instagram-widget-by-wpzoom' ),
247
+ 'items_list' => __( 'Feeds list', 'instagram-widget-by-wpzoom' ),
248
+ 'items_list_navigation' => __( 'Feeds list navigation', 'instagram-widget-by-wpzoom' ),
249
+ 'filter_items_list' => __( 'Filter feeds list', 'instagram-widget-by-wpzoom' ),
250
+ ),
251
+ 'supports' => array(
252
+ 'title',
253
+ 'custom-fields',
254
+ ),
255
+ 'hierarchical' => false,
256
+ 'public' => false,
257
+ 'show_ui' => true,
258
+ 'show_in_menu' => true,
259
+ 'menu_icon' => 'dashicons-instagram',
260
+ 'show_in_admin_bar' => false,
261
+ 'show_in_nav_menus' => false,
262
+ 'can_export' => false,
263
+ 'has_archive' => false,
264
+ 'exclude_from_search' => true,
265
+ 'publicly_queryable' => true,
266
+ 'capability_type' => 'post',
267
+ 'show_in_rest' => true,
268
+ )
269
+ );
270
+
271
+ remove_post_type_support( 'wpz-insta_feed', 'revisions' );
272
+
273
+ foreach ( self::$feed_settings as $fset_name => $fset_args ) {
274
+ $args = ! empty( $fset_args ) && is_array( $fset_args ) ? $fset_args : array();
275
+
276
+ register_post_meta(
277
+ 'wpz-insta_feed',
278
+ sprintf( _x( '_wpz-insta_%s', 'Feed setting ID', 'instagram-widget-by-wpzoom' ), $fset_name ),
279
+ array(
280
+ 'single' => true,
281
+ 'show_in_rest' => true,
282
+ 'type' => ( array_key_exists( 'type', $args ) ? $args['type'] : 'string' ),
283
+ 'default' => ( array_key_exists( 'default', $args ) ? $args['default'] : '' ),
284
+ )
285
+ );
286
+ }
287
+
288
+ $feeds_count = wp_count_posts( 'wpz-insta_feed' );
289
+ self::$any_feeds = property_exists( $feeds_count, 'publish' ) ? intval( $feeds_count->publish ) > 0 : false;
290
+
291
+ add_action( 'admin_enqueue_scripts', array( $this, 'admin_enqueue_scripts' ) );
292
+ add_action( 'admin_notices', array( $this, 'admin_notices' ) );
293
+ add_action( 'all_admin_notices', array( $this, 'all_admin_notices' ), 100 );
294
+ add_filter( 'admin_body_class', array( $this, 'admin_body_class_filter' ) );
295
+ add_filter( 'parent_file', array( $this, 'parent_file_menu_filter' ) );
296
+ add_filter( 'submenu_file', array( $this, 'submenu_file_filter' ), 10, 2 );
297
+ add_filter( 'manage_wpz-insta_feed_posts_columns', array( $this, 'set_custom_edit_columns_feed' ) );
298
+ add_filter( 'manage_wpz-insta_user_posts_columns', array( $this, 'set_custom_edit_columns_user' ) );
299
+ add_filter( 'manage_edit-wpz-insta_feed_sortable_columns', array( $this, 'set_custom_edit_columns_sortable_feed' ) );
300
+ add_filter( 'manage_edit-wpz-insta_user_sortable_columns', array( $this, 'set_custom_edit_columns_sortable_user' ) );
301
+ add_filter( 'screen_options_show_screen', array( $this, 'disable_screen_options' ), 10, 2 );
302
+ add_filter( 'hidden_meta_boxes', array( $this, 'hide_meta_boxes' ), 10, 3 );
303
+ add_filter( 'hidden_columns', array( $this, 'hidden_columns' ), 10, 3 );
304
+ add_filter( 'wp_insert_post_data', array( $this, 'insert_post_data' ) );
305
+ add_filter( 'view_mode_post_types', array( $this, 'view_mode_post_types' ) );
306
+ add_filter( 'display_post_states', array( $this, 'display_post_states' ), 10, 2 );
307
+ add_filter( 'get_edit_post_link', array( $this, 'get_edit_post_link' ), 10, 3 );
308
+ add_filter( 'admin_footer_text', array( $this, 'admin_footer_text' ) );
309
+ add_filter( 'update_footer', array( $this, 'update_footer' ), 11 );
310
+ add_action( 'manage_wpz-insta_feed_posts_custom_column', array( $this, 'custom_column_feed' ), 10, 2 );
311
+ add_action( 'manage_wpz-insta_user_posts_custom_column', array( $this, 'custom_column_user' ), 10, 2 );
312
+ add_action( 'add_inline_data', array( $this, 'add_inline_data' ), 10, 2 );
313
+ add_action( 'pre_get_posts', array( $this, 'sort_column_query' ) );
314
+ add_action( 'edit_form_top', array( $this, 'edit_feed_header' ) );
315
+ add_action( 'edit_form_after_title', array( $this, 'edit_feed_content' ) );
316
+ add_action( 'in_admin_footer', array( $this, 'page_footer' ) );
317
+ add_action( 'wp_ajax_wpz-insta_connect-user', array( $this, 'ajax_connect_user' ) );
318
+ add_action( 'wp_ajax_inline-save', array( $this, 'ajax_inline_save' ), 1 );
319
+ add_action( 'wp_ajax_wpz-insta_dismiss-cron-notice', array( $this, 'ajax_dismiss_cron_notice' ) );
320
+ add_action( 'save_post_wpz-insta_feed', array( $this, 'save_feed' ), 15, 3 );
321
+ add_action( 'save_post_wpz-insta_user', array( $this, 'save_user' ), 15, 3 );
322
+ add_action( 'wp_after_insert_post', array( $this, 'after_insert_post' ), 10, 4 );
323
+ add_action( 'quick_edit_custom_box', array( $this, 'user_quick_edit_box' ), 10, 3 );
324
+ add_action( 'post_action_wpz-insta_duplicate-feed', array( $this, 'post_action_duplicate_feed' ) );
325
+ add_action( 'post_action_wpz-insta_update-posts', array( $this, 'post_action_update_posts' ) );
326
+ add_action( 'post_edit_form_tag', array( $this, 'post_edit_form_tag' ) );
327
+
328
+ add_action( 'in_admin_header', function() {
329
+ wp_enqueue_script( 'jquery' );
330
+ wp_enqueue_style( 'wp-pointer' );
331
+ wp_enqueue_script( 'wp-pointer' );
332
+
333
+ $insta_link = admin_url( 'edit.php?post_type=wpz-insta_feed' );
334
+
335
+ if ( ! get_user_meta( get_current_user_id(), 'wpzinsta-settings-pointer-dismissed', true ) ) :
336
+ ?>
337
+ <script>
338
+ jQuery( function( $ ) {
339
+ $( '#menu-posts-wpz-insta_feed' ).first().pointer( {
340
+ content: '<?php _e( '<h3>📸 Instagram Widget by WPZOOM 2.0</h3><h4>Multiple Instagram Feeds, Gutenberg Block & more!</h4><p>🤳 Big update! You can now create <a href="'. esc_url( $insta_link ) .'"><strong>multiple feeds</strong></a> and embed them anywhere you want on your website. You can customize your feed with new design options and embed it using our new <strong>Gutenberg block</strong> or shortcode.</p>', 'instagram-widget-by-wpzoom' ); ?>',
341
+ position: { edge: 'left', align: 'left' },
342
+ pointerClass: 'wp-pointer arrow-top',
343
+ pointerWidth: 420,
344
+ close: function() {
345
+ $.post(
346
+ ajaxurl,
347
+ {
348
+ pointer: 'wpzinsta-settings-pointer',
349
+ action: 'dismiss-wp-pointer',
350
+ }
351
+ );
352
+ },
353
+ } ).pointer('open');
354
+ } );
355
+ </script>
356
+ <?php
357
+ endif;
358
+ } );
359
+
360
+ add_action( 'admin_init', function() {
361
+ if ( isset( $_POST['action'] ) && 'dismiss-wp-pointer' == $_POST['action'] ) {
362
+ update_user_meta( get_current_user_id(), 'wpzinsta-settings-pointer-dismissed', $_POST['pointer'], true );
363
+ }
364
+ } );
365
+
366
+ if ( current_user_can( 'manage_options' ) && isset( $_GET['wpz-insta-widget-preview'] ) ) {
367
+ remove_action( 'admin_enqueue_scripts', 'wp_auth_check_load' );
368
+ remove_filter( 'heartbeat_send', 'wp_auth_check' );
369
+ remove_filter( 'heartbeat_nopriv_send', 'wp_auth_check' );
370
+ add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_preview_scripts' ), 999 );
371
+
372
+ ob_start();
373
+
374
+ add_action( 'shutdown', function() {
375
+ $final = '';
376
+ $levels = ob_get_level();
377
+
378
+ for ( $i = 0; $i < $levels; $i++ ) {
379
+ $final .= ob_get_clean();
380
+ }
381
+
382
+ echo apply_filters( 'final_output', $final );
383
+ }, 0 );
384
+
385
+ add_filter( 'final_output', array( $this, 'replace_preview_content' ) );
386
+ }
387
+ }
388
+
389
+ static function is_wpzinsta_screen() {
390
+ $result = false;
391
+ $screen = get_current_screen();
392
+
393
+ if ( $screen instanceof WP_Screen ) {
394
+ $result = in_array(
395
+ $screen->id,
396
+ apply_filters(
397
+ 'wpzoom_instagram_plugin_pages',
398
+ array(
399
+ 'toplevel_page_wpzoom-instagram',
400
+ 'wpz-insta_feed',
401
+ 'edit-wpz-insta_feed',
402
+ 'wpz-insta_user',
403
+ 'edit-wpz-insta_user',
404
+ 'instagram_page_wpzoom-instagram-users',
405
+ 'wpz-insta_feed_page_wpzoom-instagram-support',
406
+ 'settings_page_wpz-insta-connect',
407
+ )
408
+ )
409
+ );
410
+ }
411
+
412
+ return $result;
413
+ }
414
+
415
+ function admin_enqueue_scripts() {
416
+ $post_type = get_post_type();
417
+
418
+ if ( 'wpz-insta_feed' == $post_type || 'wpz-insta_user' == $post_type ) {
419
+ wp_dequeue_script( 'autosave' );
420
+ }
421
+ }
422
+
423
+ function admin_notices() {
424
+ $screen = get_current_screen();
425
+
426
+ if ( 'edit' == $screen->base && 'wpz-insta_feed' == $screen->post_type && isset( $_GET['wpz-insta_duplicate-feed'] ) ) {
427
+ $success = 'true' === $_GET['wpz-insta_duplicate-feed'];
428
+
429
+ printf(
430
+ '<div class="notice notice-%s inline is-dismissible"><p>%s</p></div>',
431
+ ( $success ? 'success' : 'error' ),
432
+ ( $success ? __( 'Feed duplicated.', 'instagram-widget-by-wpzoom' ) : __( 'There was an error duplicating the selected feed.', 'instagram-widget-by-wpzoom' ) )
433
+ );
434
+ }
435
+
436
+ if ( 'edit' == $screen->base && 'wpz-insta_feed' == $screen->post_type && isset( $_GET['wpz-insta_update-posts'] ) ) {
437
+ $success = 'true' === $_GET['wpz-insta_update-posts'];
438
+
439
+ printf(
440
+ '<div class="notice notice-%s inline is-dismissible"><p>%s</p></div>',
441
+ ( $success ? 'success' : 'error' ),
442
+ ( $success ? __( 'Feed posts updated.', 'instagram-widget-by-wpzoom' ) : __( 'There was an error updating the posts for the selected feed.', 'instagram-widget-by-wpzoom' ) )
443
+ );
444
+ }
445
+
446
+ $cron_notices = (array) get_option( '_wpz-insta_cron-result', array() );
447
+ if ( ! empty( $cron_notices ) ) {
448
+ foreach ( $cron_notices as $user_id => $cron_notice ) {
449
+ if ( ! empty( $cron_notice ) && is_array( $cron_notice ) ) {
450
+ printf(
451
+ '<div class="notice notice-%1$s inline is-dismissible wpz-insta-cron-notice" data-user-id="%2$s" data-nonce="%3$s"><p>%4$s</p></div>',
452
+ ( $cron_notice['status'] ? 'success' : 'error' ),
453
+ esc_attr( $user_id ),
454
+ wp_create_nonce( 'dismiss-cron-notice' ),
455
+ wp_kses_post( $cron_notice['message'] )
456
+ );
457
+ }
458
+ }
459
+ }
460
+ }
461
+
462
+ function all_admin_notices() {
463
+ $screen = get_current_screen();
464
+
465
+ if ( ( 'wpz-insta_feed' == $screen->id || 'edit-wpz-insta_feed' == $screen->id || 'edit-wpz-insta_user' == $screen->id ) && ! self::$any_users )
466
+ {
467
+ $this->connect_page();
468
+ require_once ABSPATH . 'wp-admin/admin-footer.php';
469
+ exit;
470
+ }
471
+ }
472
+
473
+ function ajax_dismiss_cron_notice() {
474
+ if ( isset( $_POST['nonce'] ) && wp_verify_nonce( $_POST['nonce'], 'dismiss-cron-notice' ) && isset( $_POST['user_id'] ) && ! empty( $_POST['user_id'] ) ) {
475
+ $user_id = intval( $_POST['user_id'] );
476
+ $cron_notices = (array) get_option( '_wpz-insta_cron-result', array() );
477
+
478
+ if ( ! empty( $cron_notices ) && key_exists( $user_id, $cron_notices ) ) {
479
+ unset( $cron_notices[ $user_id ] );
480
+ update_option( '_wpz-insta_cron-result', $cron_notices );
481
+
482
+ wp_send_json_success( null, 200 );
483
+ }
484
+
485
+ wp_send_json_error( null, 500 );
486
+ }
487
+ }
488
+
489
+ function admin_body_class_filter( $classes ) {
490
+ return $classes . ( self::is_wpzinsta_screen() ? ' wpz-insta-admin' : '' );
491
+ }
492
+
493
+ function post_edit_form_tag( $post ) {
494
+ if ( 'wpz-insta_feed' == $post->post_type ) {
495
+ echo ' autocomplete="off"';
496
+ }
497
+ }
498
+
499
+ function parent_file_menu_filter( $parent_file ) {
500
+ if ( in_array( $parent_file, apply_filters( 'wpzoom_instagram_menu_parent', array( 'edit.php?post_type=wpz-insta_user' ) ) ) ) {
501
+ $parent_file = 'edit.php?post_type=wpz-insta_feed';
502
+ }
503
+
504
+ return $parent_file;
505
+ }
506
+
507
+ function submenu_file_filter( $submenu_file, $parent_file ) {
508
+ if ( 'post-new.php?post_type=wpz-insta_feed' == $submenu_file ) {
509
+ $submenu_file = 'edit.php?post_type=wpz-insta_feed';
510
+ }
511
+
512
+ return $submenu_file;
513
+ }
514
+
515
+ function set_custom_edit_columns_feed( $columns ) {
516
+ unset( $columns['cb'], $columns['date'] );
517
+
518
+ $columns['wpz-insta_account'] = __( 'Show posts from', 'instagram-widget-by-wpzoom' );
519
+ $columns['wpz-insta_actions'] = __( 'Actions', 'instagram-widget-by-wpzoom' );
520
+
521
+ return $columns;
522
+ }
523
+
524
+ function set_custom_edit_columns_user( $columns ) {
525
+ unset( $columns['cb'], $columns['title'], $columns['date'] );
526
+
527
+ $columns['wpz-insta_account-username'] = __( 'Username', 'instagram-widget-by-wpzoom' );
528
+ $columns['wpz-insta_account-type'] = __( 'Type', 'instagram-widget-by-wpzoom' );
529
+ $columns['wpz-insta_account-photo'] = __( 'Picture', 'instagram-widget-by-wpzoom' );
530
+ $columns['wpz-insta_account-bio'] = __( 'Bio', 'instagram-widget-by-wpzoom' );
531
+ $columns['wpz-insta_account-token'] = __( 'Access Token', 'instagram-widget-by-wpzoom' );
532
+ $columns['wpz-insta_account-feeds'] = __( 'Feeds', 'instagram-widget-by-wpzoom' );
533
+ //$columns['wpz-insta_account-id'] = __( 'ID', 'instagram-widget-by-wpzoom' );
534
+ $columns['wpz-insta_actions'] = __( 'Actions', 'instagram-widget-by-wpzoom' );
535
+
536
+ return $columns;
537
+ }
538
+
539
+ function set_custom_edit_columns_sortable_feed( $columns ) {
540
+ $columns['wpz-insta_account'] = 'wpz-insta_account';
541
+
542
+ return $columns;
543
+ }
544
+
545
+ function set_custom_edit_columns_sortable_user( $columns ) {
546
+ $columns['wpz-insta_account-username'] = 'wpz-insta_account-username';
547
+ $columns['wpz-insta_account-type'] = 'wpz-insta_account-type';
548
+ //$columns['wpz-insta_account-id'] = 'wpz-insta_account-id';
549
+
550
+ return $columns;
551
+ }
552
+
553
+ function disable_screen_options( $show, $screen ) {
554
+ return 'post' == $screen->base && ( 'wpz-insta_feed' == $screen->post_type || 'wpz-insta_user' == $screen->post_type ) ? false : $show;
555
+ }
556
+
557
+ function hide_meta_boxes( $hidden, $screen, $use_defaults ) {
558
+ if ( 'post' == $screen->base && 'wpz-insta_feed' == $screen->post_type ) {
559
+ $hidden[] = 'postcustom';
560
+ $hidden[] = 'submitdiv';
561
+ $hidden[] = 'slugdiv';
562
+ }
563
+
564
+ return $hidden;
565
+ }
566
+
567
+ function hidden_columns( $hidden, $screen, $use_defaults ) {
568
+ if ( 'edit-wpz-insta_user' == $screen->id ) {
569
+ $hidden[] = 'wpz-insta_account-photo';
570
+ $hidden[] = 'wpz-insta_account-bio';
571
+ $hidden[] = 'wpz-insta_account-token';
572
+ }
573
+
574
+ return $hidden;
575
+ }
576
+
577
+ function view_mode_post_types( $post_types ) {
578
+ unset( $post_types['wpz-insta_feed'], $post_types['wpz-insta_user'] );
579
+
580
+ return $post_types;
581
+ }
582
+
583
+ function display_post_states( $post_states, $post ) {
584
+ $duplicate = boolval( get_post_meta( $post->ID, '_wpz-insta_feed_is_duplicate', true ) );
585
+
586
+ if ( $duplicate ) {
587
+ $post_states['duplicate'] = __( 'Duplicate', 'instagram-widget-by-wpzoom' );
588
+ }
589
+
590
+ return $post_states;
591
+ }
592
+
593
+ function get_edit_post_link( $link, $post_id, $context ) {
594
+ if ( 'wpz-insta_user' == get_post_type( $post_id ) ) {
595
+ $link = admin_url(
596
+ sprintf(
597
+ _x( 'edit.php?post_type=wpz-insta_user#post-%d', 'WPZOOM Instagram user edit link', 'instagram-widget-by-wpzoom' ),
598
+ $post_id
599
+ )
600
+ );
601
+ }
602
+
603
+ return $link;
604
+ }
605
+
606
+ function get_token_expire_display( $id ) {
607
+ $token_expire_raw = intval( get_post_meta( $id, '_wpz-insta_token_expire', true ) );
608
+ $time_diff = $token_expire_raw > 0 ? (int)( $token_expire_raw - time() ) : 0;
609
+ $expires_soon = $time_diff > 0 && $time_diff < WEEK_IN_SECONDS;
610
+ $already_expired = $time_diff <= 0;
611
+ $token_expire = ! $already_expired && $expires_soon ? human_time_diff( time(), $token_expire_raw ) : date( 'l, F jS, Y', $token_expire_raw );
612
+ $label_expired_on = __( 'Expired on:', 'instagram-widget-by-wpzoom' );
613
+ $label_expires_in = __( 'Expires in:', 'instagram-widget-by-wpzoom' );
614
+ $label_expires_on = __( 'Expires on:', 'instagram-widget-by-wpzoom' );
615
+ $prefix = $already_expired ? $label_expired_on : ( $expires_soon ? $label_expires_in : $label_expires_on );
616
+ $weight = $already_expired || $expires_soon ? 'strong' : 'span';
617
+ $urgent = $already_expired || $expires_soon ? 'urgent' : '';
618
+
619
+ return sprintf(
620
+ _x( '<strong>%1$s</strong> <%2$s id="wpz-insta_token-expire-time" class="%3$s">%4$s</%2$s>', 'Token expire time label', 'instagram-widget-by-wpzoom' ),
621
+ $prefix,
622
+ $weight,
623
+ $urgent,
624
+ $token_expire
625
+ );
626
+ }
627
+
628
+ function user_quick_edit_box( $column_name, $post_type, $taxonomy ) {
629
+ if ( 'wpz-insta_user' == $post_type ) {
630
+ switch ( $column_name ) {
631
+ case 'wpz-insta_account-username' :
632
+ ?><input type="hidden" name="post_title" value="<?php echo esc_attr( get_the_title() ); ?>" /><?php
633
+
634
+ break;
635
+
636
+ case 'wpz-insta_account-photo' :
637
+ $photo_id = get_post_thumbnail_id( get_the_ID() ) ?: -1;
638
+ $photo_url = get_the_post_thumbnail_url( get_the_ID(), array( 100, 100 ) ) ?: plugins_url( '/dist/images/backend/user-avatar.jpg', __FILE__ );
639
+
640
+ ?><div class="wpz-insta_quick-edit"><ul class="wpz-insta_quick-edit-columns">
641
+ <li class="wpz-insta_account-photo-wrapper">
642
+ <strong><?php _e( 'Profile picture', 'instagram-widget-by-wpzoom' ); ?></strong>
643
+ <input type="hidden" name="_thumbnail_id" id="wpz-insta_account-photo" value="<?php echo esc_attr( $photo_id ); ?>" class="wpz-insta_profile-photo-input" />
644
+ <ul class="wpz-insta_two-columns wpz-insta_two-columns-left-small">
645
+ <li><img src="<?php echo esc_url( $photo_url ); ?>" height="100" width="100" alt="<?php esc_attr_e( 'Profile Photo', 'instagram-widget-by-wpzoom' ); ?>" class="wpz-insta_profile-photo" /></li>
646
+ <li>
647
+ <button type="button" id="wpz-insta_edit-account-photo" class="button button-primary"><?php _e( 'Change profile picture', 'instagram-widget-by-wpzoom' ); ?></button><br/>
648
+ <button type="button" id="wpz-insta_reset-account-photo" class="button button-link wpz-insta_button-link"><?php _e( 'Reset picture', 'instagram-widget-by-wpzoom' ); ?></button>
649
+ </li>
650
+ </ul>
651
+ </li><?php
652
+
653
+ break;
654
+
655
+ case 'wpz-insta_account-bio' :
656
+ $user_name = sanitize_text_field( get_post_meta( get_the_ID(), '_wpz-insta_user_name', true ) );
657
+
658
+ ?><li>
659
+ <div>
660
+ <label>
661
+ <strong><?php _e( 'Name', 'instagram-widget-by-wpzoom' ); ?></strong><br/>
662
+ <input type="text" name="_wpz-insta_user_name" id="wpz-insta_user-name" value="<?php echo esc_attr( $user_name ); ?>" />
663
+ </label>
664
+ </div>
665
+
666
+ <div>
667
+ <label>
668
+ <strong><?php _e( 'Bio', 'instagram-widget-by-wpzoom' ); ?></strong><br/>
669
+ <textarea name="_wpz-insta_user-bio" id="wpz-insta_user-bio" cols="35" rows="4"><?php echo esc_textarea( get_the_content() ); ?></textarea>
670
+ </label>
671
+ </div>
672
+ </li><?php
673
+
674
+ break;
675
+
676
+ case 'wpz-insta_account-token' :
677
+ $raw_token = get_post_meta( get_the_ID(), '_wpz-insta_token', true );
678
+ $oauth_url = add_query_arg(
679
+ array(
680
+ 'client_id' => '1242932982579434',
681
+ 'redirect_uri' => 'https://wpzoom.com/instagram-auth/',
682
+ 'scope' => 'user_profile,user_media',
683
+ 'response_type' => 'code',
684
+ 'state' => base64_encode( urlencode( admin_url( 'post.php?post=' . get_the_ID() . '&action=edit' ) ) ),
685
+ ),
686
+ 'https://api.instagram.com/oauth/authorize'
687
+ );
688
+
689
+ ?><li>
690
+ <label>
691
+ <strong><?php _e( 'Access Token', 'instagram-widget-by-wpzoom' ); ?></strong><br/>
692
+ <input type="text" id="wpz-insta_token" class="widefat wpz-insta_input wpz-insta_input-nobg" readonly disabled value="<?php echo esc_attr( false !== $raw_token && ! empty( $raw_token ) ? $raw_token : '-1' ); ?>" />
693
+ </label>
694
+
695
+ <ul class="wpz-insta_two-columns">
696
+ <li><?php echo $this->get_token_expire_display( get_the_ID() ); ?></li>
697
+ <li><a href="<?php echo esc_url( $oauth_url ); ?>" id="wpz-insta_reconnect" class="button button-primary"><?php _e( 'Re-connect', 'instagram-widget-by-wpzoom' ); ?></a></li>
698
+ </ul>
699
+ </li>
700
+ </ul>
701
+
702
+ <div class="wpz-insta_notice"><p><?php _e( 'Due to restrictions set by Instagram, Instagram Widget cannot import the profile photo and bio text for Personal accounts.', 'instagram-widget-by-wpzoom' ); ?></p></div></div><?php
703
+
704
+ break;
705
+ }
706
+ }
707
+ }
708
+
709
+ function post_action_duplicate_feed( int $post_id ) {
710
+ if ( $post_id > 0 && isset( $_GET['_wpnonce'] ) && wp_verify_nonce( $_GET['_wpnonce'], 'wpz-insta-duplicate-feed_' . $post_id ) ) {
711
+ $post = get_post( $post_id );
712
+
713
+ if ( $post instanceof WP_Post ) {
714
+ $new_post_id = wp_insert_post(
715
+ array(
716
+ 'post_title' => $post->post_title,
717
+ 'post_status' => 'publish',
718
+ 'post_type' => 'wpz-insta_feed',
719
+ 'comment_status' => 'closed',
720
+ 'ping_status' => 'closed',
721
+ )
722
+ );
723
+
724
+ if ( $new_post_id > 0 ) {
725
+ $post_meta = get_post_meta( $post_id );
726
+
727
+ if ( $post_meta ) {
728
+ foreach ( $post_meta as $meta_key => $meta_values ) {
729
+ if ( '_wp_old_slug' == $meta_key ) {
730
+ continue;
731
+ }
732
+
733
+ foreach ( $meta_values as $meta_value ) {
734
+ add_post_meta( $new_post_id, $meta_key, $meta_value );
735
+ }
736
+ }
737
+ }
738
+
739
+ add_post_meta( $new_post_id, '_wpz-insta_feed_is_duplicate', true );
740
+
741
+ wp_redirect(
742
+ add_query_arg(
743
+ array(
744
+ 'post_type' => 'wpz-insta_feed',
745
+ 'wpz-insta_duplicate-feed' => 'true',
746
+ ),
747
+ admin_url( 'edit.php' )
748
+ )
749
+ );
750
+ exit;
751
+ }
752
+ }
753
+ }
754
+
755
+ wp_redirect(
756
+ add_query_arg(
757
+ array(
758
+ 'post_type' => 'wpz-insta_feed',
759
+ 'wpz-insta_duplicate-feed' => 'false',
760
+ ),
761
+ admin_url( 'edit.php' )
762
+ )
763
+ );
764
+ exit;
765
+ }
766
+
767
+ function post_action_update_posts( int $post_id ) {
768
+ if ( $post_id > 0 && isset( $_GET['_wpnonce'] ) && wp_verify_nonce( $_GET['_wpnonce'], 'wpz-insta-update-posts_' . $post_id ) ) {
769
+ $post = get_post( $post_id );
770
+
771
+ if ( $post instanceof WP_Post ) {
772
+ $user_id = (int) self::get_feed_setting_value( $post_id, 'user-id' );
773
+ $raw_token = get_post_meta( $user_id, '_wpz-insta_token', true );
774
+ $user_account_token = false !== $raw_token && ! empty( $raw_token ) ? $raw_token : '-1';
775
+
776
+ if ( '-1' !== $user_account_token && delete_transient( 'zoom_instagram_is_configured_' . $user_account_token ) ) {
777
+ wp_redirect(
778
+ add_query_arg(
779
+ array(
780
+ 'post_type' => 'wpz-insta_feed',
781
+ 'wpz-insta_update-posts' => 'true',
782
+ ),
783
+ admin_url( 'edit.php' )
784
+ )
785
+ );
786
+ exit;
787
+ }
788
+ }
789
+ }
790
+
791
+ wp_redirect(
792
+ add_query_arg(
793
+ array(
794
+ 'post_type' => 'wpz-insta_feed',
795
+ 'wpz-insta_update-posts' => 'false',
796
+ ),
797
+ admin_url( 'edit.php' )
798
+ )
799
+ );
800
+ exit;
801
+ }
802
+
803
+ function custom_column_feed( $column, $post_id ) {
804
+ switch ( $column ) {
805
+ case 'wpz-insta_account' :
806
+ $user_id = intval( get_post_meta( $post_id, '_wpz-insta_user-id', true ) );
807
+ $user = $user_id > 0 ? get_post( $user_id ) : null;
808
+ $user_display_name = $user instanceof WP_Post ? sprintf( '@%s', get_the_title( $user ) ) : __( '&mdash;', 'instagram-widget-by-wpzoom' );
809
+ $user_edit_link = $user instanceof WP_Post ? get_edit_post_link( $user_id ) : false;
810
+
811
+ printf(
812
+ '%s%s%s',
813
+ ( false !== $user_edit_link ? '<a href="' . esc_url( $user_edit_link ) . '">' : '' ),
814
+ $user_display_name,
815
+ ( false !== $user_edit_link ? '</a>' : '' )
816
+ );
817
+
818
+ break;
819
+
820
+ case 'wpz-insta_actions' :
821
+ ?>
822
+ <nav class="wpz-insta_actions-menu">
823
+ <strong>&hellip;</strong>
824
+ <ul class="wpz-insta_hidden">
825
+ <?php if ( current_user_can( 'edit_post', $post_id ) ) { ?><li class="wpz-insta_actions-menu_edit-feed"><a href="<?php echo esc_url( get_edit_post_link( $post_id ) ); ?>"><?php _e( 'Edit feed', 'instagram-widget-by-wpzoom' ); ?></a></li><?php } ?>
826
+ <li class="wpz-insta_actions-menu_duplicate-feed"><a href="<?php echo esc_url( wp_nonce_url( admin_url( 'post.php?post=' . $post_id . '&action=wpz-insta_duplicate-feed' ), 'wpz-insta-duplicate-feed_' . $post_id ) ); ?>"><?php _e( 'Duplicate feed', 'instagram-widget-by-wpzoom' ); ?></a></li>
827
+ <li class="wpz-insta_actions-menu_copy-shortcode"><a href=""><?php _e( 'Copy shortcode', 'instagram-widget-by-wpzoom' ); ?></a></li>
828
+ <?php if ( current_user_can( 'edit_post', $post_id ) ) { ?>
829
+ <li class="wpz-insta_actions-menu_divider"></li>
830
+ <li class="wpz-insta_actions-menu_update-posts"><a href="<?php echo esc_url( wp_nonce_url( admin_url( 'post.php?post=' . $post_id . '&action=wpz-insta_update-posts' ), 'wpz-insta-update-posts_' . $post_id ) ); ?>"><?php _e( 'Update posts', 'instagram-widget-by-wpzoom' ); ?></a></li>
831
+ <?php } ?>
832
+ <li class="wpz-insta_actions-menu_divider"></li>
833
+ <?php if ( current_user_can( 'delete_post', $post_id ) ) { ?><li class="wpz-insta_actions-menu_delete wpz-insta_actions-menu_delete-feed"><a href="<?php echo esc_url( get_delete_post_link( $post_id, '', true ) ); ?>"><?php _e( 'Delete feed', 'instagram-widget-by-wpzoom' ); ?></a></li><?php } ?>
834
+ </ul>
835
+ </nav>
836
+ <?php
837
+
838
+ break;
839
+ }
840
+ }
841
+
842
+ function custom_column_user( $column, $post_id ) {
843
+ switch ( $column ) {
844
+ case 'wpz-insta_account-username' :
845
+ $user = $post_id > 0 ? get_post( $post_id ) : null;
846
+ $user_display_name = $user instanceof WP_Post ? sprintf( '@%s', get_the_title( $user ) ) : __( '&mdash;', 'instagram-widget-by-wpzoom' );
847
+
848
+ echo '<button type="button" class="button-link editinline"><strong>' . $user_display_name . '</strong></button>';
849
+
850
+ get_inline_data( $user );
851
+
852
+ break;
853
+
854
+ case 'wpz-insta_account-type' :
855
+ $user_type = ucwords( strtolower( esc_html( get_post_meta( $post_id, '_wpz-insta_account-type', true ) ?: __( 'None', 'instagram-widget-by-wpzoom' ) ) ) );
856
+
857
+ echo $user_type;
858
+
859
+ break;
860
+
861
+ case 'wpz-insta_account-feeds' :
862
+ $latest_feeds = get_posts( array( 'numberposts' => 1, 'post_status' => 'publish', 'post_type' => 'wpz-insta_feed', 'meta_key' => '_wpz-insta_user-id', 'meta_value' => $post_id ) );
863
+ $latest_feed = ! empty( $latest_feeds ) && is_array( $latest_feeds ) && $latest_feeds[0] instanceof WP_Post ? $latest_feeds[0]->ID : -1;
864
+
865
+ if ( $latest_feed > 0 ) {
866
+ echo '<a href="' . esc_url( get_edit_post_link( $latest_feed ) ) . '">' . get_the_title( $latest_feed ) . '</a>';
867
+ } else {
868
+ echo __( 'None', 'instagram-widget-by-wpzoom' );
869
+ }
870
+
871
+ break;
872
+
873
+ /*case 'wpz-insta_account-id' :
874
+ $user_posts = wp_count_posts( 'wpz-insta_user' );
875
+ $user_amount = property_exists( $user_posts, 'publish' ) ? intval( $user_posts->publish ) : 0;
876
+ $latest_user = get_posts( array( 'numberposts' => 1, 'orderby' => 'ID', 'post_status' => 'publish', 'post_type' => 'wpz-insta_user' ) );
877
+ $last_id = ! empty( $latest_user ) && is_array( $latest_user ) && $latest_user[0] instanceof WP_Post ? $latest_user[0]->ID : 1;
878
+ $scaled_id = ( $user_amount - 1 ) * ( $post_id - 1 ) / ( $last_id - 1 ) + 1;
879
+
880
+ printf( '%03d', $scaled_id );
881
+
882
+ break;*/
883
+
884
+ case 'wpz-insta_actions' :
885
+ ?>
886
+ <nav class="wpz-insta_actions-menu">
887
+ <strong>&hellip;</strong>
888
+ <ul class="wpz-insta_hidden">
889
+ <?php if ( current_user_can( 'edit_post', $post_id ) ) { ?><li class="wpz-insta_actions-menu_edit-user"><button type="button" class="button-link editinline"><?php _e( 'Edit user', 'instagram-widget-by-wpzoom' ); ?></button></li><?php } ?>
890
+ <li class="wpz-insta_actions-menu_divider"></li>
891
+ <?php if ( current_user_can( 'delete_post', $post_id ) ) { ?><li class="wpz-insta_actions-menu_delete wpz-insta_actions-menu_delete-user"><a href="<?php echo esc_url( get_delete_post_link( $post_id, '', true ) ); ?>"><?php _e( 'Delete user', 'instagram-widget-by-wpzoom' ); ?></a></li><?php } ?>
892
+ </ul>
893
+ </nav>
894
+ <?php
895
+
896
+ break;
897
+ }
898
+ }
899
+
900
+ function add_inline_data( $post, $post_type_object ) {
901
+ $post_id = $post->ID;
902
+ $type = ucwords( strtolower( get_post_meta( $post_id, '_wpz-insta_account-type', true ) ?: __( 'None', 'instagram-widget-by-wpzoom' ) ) );
903
+ $token = get_post_meta( $post_id, '_wpz-insta_token', true );
904
+ $token_expire = $this->get_token_expire_display( $post_id );
905
+ $photo_id = get_post_thumbnail_id( $post_id ) ?: -1;
906
+ $photo_url = get_the_post_thumbnail_url( $post_id, array( 100, 100 ) ) ?: plugins_url( '/dist/images/backend/user-avatar.jpg', __FILE__ );
907
+ $user_name = sanitize_text_field( get_post_meta( $post_id, '_wpz-insta_user_name', true ) );
908
+ $bio = get_the_content();
909
+
910
+ ?>
911
+ <div class="_wpz-insta_account-type"><?php echo esc_html( $type ); ?></div>
912
+ <div class="_wpz-insta_token"><?php echo esc_html( $token ); ?></div>
913
+ <div class="_wpz-insta_token_expire"><?php echo esc_html( $token_expire ); ?></div>
914
+ <div class="_thumbnail_id"><?php echo esc_html( $photo_id ); ?></div>
915
+ <div class="wpz-insta_profile-photo"><?php echo esc_html( $photo_url ); ?></div>
916
+ <div class="_wpz-insta_user_name"><?php echo esc_html( $user_name ); ?></div>
917
+ <div class="_wpz-insta_user-bio"><?php echo esc_html( $bio ); ?></div>
918
+ <?php
919
+ }
920
+
921
+ function sort_column_query( $query ) {
922
+ $orderby = $query->get( 'orderby' );
923
+
924
+ switch ( $orderby ) {
925
+ case 'wpz-insta_account' :
926
+ $meta_query = array(
927
+ 'relation' => 'OR',
928
+ array(
929
+ 'key' => '_wpz-insta_user-id',
930
+ 'compare' => 'NOT EXISTS',
931
+ ),
932
+ array(
933
+ 'key' => '_wpz-insta_user-id',
934
+ ),
935
+ );
936
+
937
+ $query->set( 'meta_query', $meta_query );
938
+ $query->set( 'orderby', 'meta_value' );
939
+
940
+ break;
941
+
942
+ case 'wpz-insta_account-username' :
943
+ $query->set( 'orderby', 'title' );
944
+
945
+ break;
946
+
947
+ case 'wpz-insta_account-type' :
948
+ $meta_query = array(
949
+ 'relation' => 'OR',
950
+ array(
951
+ 'key' => '_wpz-insta_account-type',
952
+ 'compare' => 'NOT EXISTS',
953
+ ),
954
+ array(
955
+ 'key' => '_wpz-insta_account-type',
956
+ ),
957
+ );
958
+
959
+ $query->set( 'meta_query', $meta_query );
960
+ $query->set( 'orderby', 'meta_value' );
961
+
962
+ break;
963
+
964
+ /*case 'wpz-insta_account-id' :
965
+ $query->set( 'orderby', 'id' );
966
+
967
+ break;*/
968
+ }
969
+ }
970
+
971
+ function validate_color( $color ) {
972
+ return preg_match( '/^(\#[\da-f]{3}|\#[\da-f]{6}|rgba\(((\d{1,2}|1\d\d|2([0-4]\d|5[0-5]))\s*,\s*){2}((\d{1,2}|1\d\d|2([0-4]\d|5[0-5]))\s*)(,\s*(0\.\d+|1))\)|hsla\(\s*((\d{1,2}|[1-2]\d{2}|3([0-5]\d|60)))\s*,\s*((\d{1,2}|100)\s*%)\s*,\s*((\d{1,2}|100)\s*%)(,\s*(0\.\d+|1))\)|rgb\(((\d{1,2}|1\d\d|2([0-4]\d|5[0-5]))\s*,\s*){2}((\d{1,2}|1\d\d|2([0-4]\d|5[0-5]))\s*)|hsl\(\s*((\d{1,2}|[1-2]\d{2}|3([0-5]\d|60)))\s*,\s*((\d{1,2}|100)\s*%)\s*,\s*((\d{1,2}|100)\s*%)\))$/i', $color ) ? $color : '';
973
+ }
974
+
975
+ function edit_feed_header( $post ) {
976
+ if ( 'wpz-insta_feed' == $post->post_type ) {
977
+ $feed_title = get_the_title( $post );
978
+ $user_id = intval( get_post_meta( $post->ID, '_wpz-insta_user-id', true ) );
979
+ $user = $user_id > 0 ? get_post( $user_id ) : null;
980
+ $disabled_class = $user instanceof WP_Post ? '' : 'class="disable"';
981
+ $embed_pointer = get_user_meta( get_current_user_id(), 'wpzinsta-pointer-feed-embed', true ) ? '<span class="wpzinsta-pointer"><i></i>' . esc_html__( 'Go here if you want to embed this feed', 'instagram-widget-by-wpzoom' ) . '</span>' : '';
982
+
983
+ ?>
984
+ <a href="<?php echo esc_url( admin_url( 'edit.php?post_type=wpz-insta_feed' ) ); ?>" class="wpz-insta_back-button">
985
+ <svg width="24" height="24" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
986
+ <path d="M19.9019 11H7.79167L13.3542 5.41L11.9412 4L3.98047 12L11.9412 20L13.3443 18.59L7.79167 13H19.9019V11Z" />
987
+ </svg>
988
+
989
+ <?php _e( 'Go to all feeds', 'instagram-widget-by-wpzoom' ); ?>
990
+ </a>
991
+
992
+ <header class="wpz-insta-wrap wpz-insta-wrap-sides wpz-insta_settings-header">
993
+ <div class="wpz-insta-wrap-left">
994
+ <h1 class="wpz-insta_settings-main-title wp-heading">
995
+ <input type="text" name="post_title" size="30" value="<?php echo esc_attr( ! empty( $feed_title ) ? $feed_title : __( 'Feed Title', 'instagram-widget-by-wpzoom' ) ); ?>" id="title" spellcheck="true" autocomplete="off" />
996
+ </h1>
997
+
998
+ <nav class="wpz-insta_settings-main-nav wpz-insta_feed-edit-nav">
999
+ <ul>
1000
+ <li class="active"><a href="<?php echo esc_url( '#config' ); ?>"><?php _e( 'Configure', 'instagram-widget-by-wpzoom' ); ?></a></li>
1001
+ <li <?php echo $disabled_class; ?>><a href="<?php echo esc_url( '#design' ); ?>"><?php _e( 'Design', 'instagram-widget-by-wpzoom' ); ?></a></li>
1002
+ <li <?php echo $disabled_class; ?>><a href="<?php echo esc_url( '#embed' ); ?>"><?php _e( 'Embed', 'instagram-widget-by-wpzoom' ); ?></a><?php echo $embed_pointer; ?></li>
1003
+ </ul>
1004
+ </nav>
1005
+ </div>
1006
+
1007
+ <div id="submitpost" class="wpz-insta-wrap-right">
1008
+ <div id="major-publishing-actions">
1009
+ <div id="publishing-action">
1010
+ <span class="spinner"></span>
1011
+ <a id="wpz-insta-edit-cancel" href="<?php echo esc_url( admin_url( 'edit.php?post_type=wpz-insta_feed' ) ); ?>" class="button button-secondary button-large"><?php _e( 'Cancel', 'instagram-widget-by-wpzoom' ); ?></a>
1012
+ <input type="submit" name="save" id="publish" class="button button-primary button-large button-positive disabled" value="<?php _e( 'Save', 'instagram-widget-by-wpzoom' ); ?>" />
1013
+ </div>
1014
+ </div>
1015
+ </div>
1016
+ </header>
1017
+
1018
+ <div class="wpz-insta-notices">
1019
+ <?php
1020
+ if ( is_network_admin() ) {
1021
+ do_action( 'network_admin_notices' );
1022
+ } elseif ( is_user_admin() ) {
1023
+ do_action( 'user_admin_notices' );
1024
+ } else {
1025
+ do_action( 'admin_notices' );
1026
+ }
1027
+
1028
+ do_action( 'all_admin_notices' );
1029
+ ?>
1030
+ </div>
1031
+ <?php
1032
+
1033
+ if ( metadata_exists( 'user', get_current_user_id(), 'wpzinsta-pointer-feed-embed' ) ) {
1034
+ update_user_meta( get_current_user_id(), 'wpzinsta-pointer-feed-embed', '0' );
1035
+ }
1036
+ }
1037
+ }
1038
+
1039
+ public static function sanitize_feed_setting_value( string $setting_name, $value ) {
1040
+ $out = '';
1041
+
1042
+ if ( ! empty( $setting_name ) && isset( self::$feed_settings[ $setting_name ] ) ) {
1043
+ $setting_args = self::$feed_settings[ $setting_name ];
1044
+ $setting_type = isset( $setting_args['type'] ) ? $setting_args['type'] : 'string';
1045
+
1046
+ switch ( $setting_type ) {
1047
+ case 'number':
1048
+ $out = floatval( $value );
1049
+ break;
1050
+
1051
+ case 'integer':
1052
+ $out = intval( $value );
1053
+ break;
1054
+
1055
+ case 'boolean':
1056
+ $out = boolval( $value );
1057
+ break;
1058
+
1059
+ default:
1060
+ $out = esc_html( trim( '' . $value ) );
1061
+ break;
1062
+ }
1063
+ }
1064
+
1065
+ return $out;
1066
+ }
1067
+
1068
+ public static function get_feed_setting_value( int $feed_id, string $setting_name ) {
1069
+ $value = null;
1070
+
1071
+ if ( $feed_id > 0 && ! empty( $setting_name ) && isset( self::$feed_settings[ $setting_name ] ) ) {
1072
+ $setting_args = self::$feed_settings[ $setting_name ];
1073
+ $setting_default = isset( $setting_args['default'] ) ? $setting_args['default'] : '';
1074
+
1075
+ $meta_key = sprintf( _x( '_wpz-insta_%s', 'Feed setting ID', 'instagram-widget-by-wpzoom' ), $setting_name );
1076
+ $meta_key_exists = metadata_exists( 'post', $feed_id, $meta_key );
1077
+
1078
+ $raw = $meta_key_exists ? get_post_meta( $feed_id, $meta_key, true ) : $setting_default;
1079
+ $value = self::sanitize_feed_setting_value( $setting_name, $raw );
1080
+ }
1081
+
1082
+ return $value;
1083
+ }
1084
+
1085
+ public static function get_all_feed_settings_values( int $feed_id ) {
1086
+ $values = array();
1087
+
1088
+ if ( $feed_id > 0 && ! empty( self::$feed_settings ) ) {
1089
+ foreach( self::$feed_settings as $setting_name => $setting_args ) {
1090
+ $values[ $setting_name ] = self::get_feed_setting_value( $feed_id, $setting_name );
1091
+ }
1092
+ }
1093
+
1094
+ return $values;
1095
+ }
1096
+
1097
+ public static function get_clean_feed_settings_from_query() {
1098
+ $values = array();
1099
+
1100
+ if ( ! empty( self::$feed_settings ) ) {
1101
+ foreach( self::$feed_settings as $setting_name => $setting_args ) {
1102
+ $prefixed_setting = '_wpz-insta_' . $setting_name;
1103
+ $values[ $setting_name ] = isset( $_GET[ $prefixed_setting ] ) ? self::sanitize_feed_setting_value( $setting_name, $_GET[ $prefixed_setting ] ) : $setting_args['default'];
1104
+ }
1105
+ }
1106
+
1107
+ return $values;
1108
+ }
1109
+
1110
+ function edit_feed_content( $post ) {
1111
+ if ( 'wpz-insta_feed' == $post->post_type ) {
1112
+ $pro_toggle = apply_filters( 'wpz-insta_admin-pro-options-toggle', true );
1113
+ $none_label = __( 'None', 'instagram-widget-by-wpzoom' );
1114
+ $user_id = (int) self::get_feed_setting_value( $post->ID, 'user-id' );
1115
+ $user = $user_id > 0 ? get_post( $user_id ) : null;
1116
+ $user_edit_link = $user instanceof WP_Post ? admin_url( 'edit.php?post_type=wpz-insta_user#post-' . $user_id ) : '';
1117
+ $user_display_name = $user instanceof WP_Post ? sprintf( '@%s', get_the_title( $user ) ) : $none_label;
1118
+ $user_account_type = $user instanceof WP_Post ? ucwords( strtolower( get_post_meta( $user_id, '_wpz-insta_account-type', true ) ?: $none_label ) ) : $none_label;
1119
+ $raw_token = get_post_meta( $user_id, '_wpz-insta_token', true );
1120
+ $user_account_token = $user instanceof WP_Post ? ( false !== $raw_token && ! empty( $raw_token ) ? $raw_token : '-1' ) : '-1';
1121
+ $new_posts_interval_number = (int) self::get_feed_setting_value( $post->ID, 'check-new-posts-interval-number' );
1122
+ $new_posts_interval_suffix = (int) self::get_feed_setting_value( $post->ID, 'check-new-posts-interval-suffix' );
1123
+ $enable_request_timeout = (bool) self::get_feed_setting_value( $post->ID, 'enable-request-timeout' );
1124
+ $raw_feed_layout = (int) self::get_feed_setting_value( $post->ID, 'layout' );
1125
+ $feed_layout = ! $pro_toggle ? $raw_feed_layout : ( $raw_feed_layout > 1 ? 0 : $raw_feed_layout );
1126
+ $feed_items_num = (int) self::get_feed_setting_value( $post->ID, 'item-num' );
1127
+ $feed_cols_num = (int) self::get_feed_setting_value( $post->ID, 'col-num' );
1128
+ $feed_spacing_between = (float) self::get_feed_setting_value( $post->ID, 'spacing-between' );
1129
+ $feed_spacing_between_suffix = (int) self::get_feed_setting_value( $post->ID, 'spacing-between-suffix' );
1130
+ $show_account_name = (bool) self::get_feed_setting_value( $post->ID, 'show-account-name' );
1131
+ $show_account_username = (bool) self::get_feed_setting_value( $post->ID, 'show-account-username' );
1132
+ $show_account_image = (bool) self::get_feed_setting_value( $post->ID, 'show-account-image' );
1133
+ $show_account_bio = (bool) self::get_feed_setting_value( $post->ID, 'show-account-bio' );
1134
+ $show_view_instagram_button = (bool) self::get_feed_setting_value( $post->ID, 'show-view-button' );
1135
+ $view_instagram_button_text = (string) self::get_feed_setting_value( $post->ID, 'view-button-text' );
1136
+ $view_instagram_button_bg_color = (string) $this->validate_color( self::get_feed_setting_value( $post->ID, 'view-button-bg-color' ) );
1137
+ $feed_bg_color = (string) $this->validate_color( self::get_feed_setting_value( $post->ID, 'bg-color' ) );
1138
+ $feed_items_radius = (float) self::get_feed_setting_value( $post->ID, 'border-radius' );
1139
+ $feed_items_radius_suffix = (int) self::get_feed_setting_value( $post->ID, 'border-radius-suffix' );
1140
+ $feed_spacing_around = (float) self::get_feed_setting_value( $post->ID, 'spacing-around' );
1141
+ $feed_spacing_around_suffix = (int) self::get_feed_setting_value( $post->ID, 'spacing-around-suffix' );
1142
+ $feed_font_size = (float) self::get_feed_setting_value( $post->ID, 'font-size' );
1143
+ $feed_font_size_suffix = (int) self::get_feed_setting_value( $post->ID, 'font-size-suffix' );
1144
+ $lightbox = (bool) self::get_feed_setting_value( $post->ID, 'lightbox' );
1145
+ $hide_video_thumbnails = (bool) self::get_feed_setting_value( $post->ID, 'hide-video-thumbs' );
1146
+ $show_overlay = (bool) self::get_feed_setting_value( $post->ID, 'show-overlay' );
1147
+ $lazy_load = (bool) self::get_feed_setting_value( $post->ID, 'lazy-load' );
1148
+ $show_media_type_icons = (bool) self::get_feed_setting_value( $post->ID, 'show-media-type-icons' );
1149
+ $image_size = (string) self::get_feed_setting_value( $post->ID, 'image-size' );
1150
+ $image_width = (float) self::get_feed_setting_value( $post->ID, 'image-width' );
1151
+ $image_width_suffix = (int) self::get_feed_setting_value( $post->ID, 'image-width-suffix' );
1152
+ $feed_hover_media_type_icons = (bool) self::get_feed_setting_value( $post->ID, 'hover-media-type-icons' );
1153
+ $feed_hover_link = (bool) self::get_feed_setting_value( $post->ID, 'hover-link' );
1154
+ // $feed_hover_autoplay = (bool) self::get_feed_setting_value( $post->ID, 'hover-autoplay' );
1155
+ $feed_hover_tags_feed = (bool) self::get_feed_setting_value( $post->ID, 'hover-tags-feed' );
1156
+ $feed_hover_date = (bool) self::get_feed_setting_value( $post->ID, 'hover-date' );
1157
+ $show_load_more = (bool) self::get_feed_setting_value( $post->ID, 'show-load-more' );
1158
+ $load_more_text = (string) self::get_feed_setting_value( $post->ID, 'load-more-text' );
1159
+ $load_more_color = (string) self::validate_color( self::get_feed_setting_value( $post->ID, 'load-more-color' ) );
1160
+ $feed_shortcode = sprintf( _x( '[instagram feed="%s"]', 'Instagram Feed Shortcode', 'instagram-widget-by-wpzoom' ), $post->ID );
1161
+ $all_users = get_posts( array(
1162
+ 'numberposts' => -1,
1163
+ 'post_type' => 'wpz-insta_user',
1164
+ ) );
1165
+
1166
+ ?>
1167
+ <div class="wpz-insta_tabs-content">
1168
+ <div class="wpz-insta_sidebar active show-pro">
1169
+ <div class="wpz-insta_sidebar-left<?php echo ! $pro_toggle ? ' is-pro' : ''; ?>">
1170
+ <?php if ( $pro_toggle ) : ?>
1171
+ <div class="wpz-insta_sidebar-left-section-head">
1172
+ <label>
1173
+ <input type="checkbox" name="_wpz-insta_show-pro" id="wpz-insta_show-pro" value="1" checked class="preview-exclude" />
1174
+ <strong><?php esc_html_e( 'Show PRO options', 'instagram-widget-by-wpzoom' ); ?></strong>
1175
+ </label>
1176
+ </div>
1177
+ <?php endif; ?>
1178
+
1179
+ <div class="wpz-insta_sidebar-left-section active" data-id="#config">
1180
+ <div class="wpz-insta_sidebar-section wpz-insta_sidebar-section-account">
1181
+ <h4 class="wpz-insta_sidebar-section-title"><?php esc_html_e( 'Instagram Account', 'instagram-widget-by-wpzoom' ); ?></h4>
1182
+ <p class="wpz-insta_sidebar-section-description"><?php esc_html_e( 'Select an account', 'instagram-widget-by-wpzoom' ); ?></p>
1183
+
1184
+ <div class="wpz-insta_feed-user-select<?php echo $user instanceof WP_Post ? ' is-set' : ''; ?>">
1185
+ <div class="wpz-insta_feed-user-select-input">
1186
+ <input type="hidden" name="_wpz-insta_user-id" id="wpz-insta_user-id" value="<?php echo esc_attr( $user instanceof WP_Post ? $user_id : '-1' ); ?>" />
1187
+
1188
+ <div class="wpz-insta_feed-user-select-info">
1189
+ <div class="wpz-insta_feed-user-select-info-left">
1190
+ <h5 class="wpz-insta_feed-user-select-info-name"><?php echo esc_html( $user_display_name ); ?></h5>
1191
+ <p class="wpz-insta_feed-user-select-info-type"><?php echo esc_html( $user_account_type ); ?></p>
1192
+ </div>
1193
+ <div id="wpz-insta_feed-user-remove-btn" class="wpz-insta_feed-user-remove-button button button-secondary"><?php esc_html_e( 'Remove', 'instagram-widget-by-wpzoom' ); ?></div>
1194
+ </div>
1195
+
1196
+ <div class="wpz-insta_feed-user-select-button-wrap">
1197
+ <div class="wpz-insta_feed-user-select-button-highlight"></div>
1198
+ <div id="wpz-insta_feed-user-select-btn" class="wpz-insta_feed-user-select-button button button-primary"><?php esc_html_e( 'Select an Account', 'instagram-widget-by-wpzoom' ); ?></div>
1199
+ </div>
1200
+ </div>
1201
+
1202
+ <a href="<?php echo esc_url( $user_edit_link ); ?>" target="_blank" class="wpz-insta_feed-user-select-edit-link"><?php esc_html_e( 'Edit account details', 'instagram-widget-by-wpzoom' ); ?></a>
1203
+ </div>
1204
+ </div>
1205
+
1206
+ <div class="wpz-insta_sidebar-section wpz-insta_sidebar-section-token<?php echo $user instanceof WP_Post ? ' active' : ''; ?>">
1207
+ <h4 class="wpz-insta_sidebar-section-title"><?php esc_html_e( 'Access Token', 'instagram-widget-by-wpzoom' ); ?></h4>
1208
+ <p class="wpz-insta_sidebar-section-description"><?php esc_html_e( 'The Instagram Access Token is a long string of characters unique to your account that grants other applications access to your Instagram feed.', 'instagram-widget-by-wpzoom' ); ?></p>
1209
+
1210
+ <input type="text" name="_wpz-insta_user-token" id="wpz-insta_user-token" value="<?php echo esc_attr( $user_account_token ); ?>" readonly />
1211
+ </div>
1212
+
1213
+ <div class="wpz-insta_sidebar-section wpz-insta_sidebar-section-check-new<?php echo $user instanceof WP_Post ? ' active' : ''; ?>">
1214
+ <h4 class="wpz-insta_sidebar-section-title"><?php esc_html_e( 'Check for new posts every', 'instagram-widget-by-wpzoom' ); ?></h4>
1215
+
1216
+ <div class="wpz-insta_suffixed-number-input">
1217
+ <input type="number" name="_wpz-insta_check-new-posts-interval-number" id="wpz-insta_check-new-posts-interval-number" value="<?php echo esc_attr( $new_posts_interval_number ); ?>" min="1" max="100" step="1" />
1218
+
1219
+ <select name="_wpz-insta_check-new-posts-interval-suffix" id="wpz-insta_check-new-posts-interval-suffix">
1220
+ <option value="0"<?php selected( $new_posts_interval_suffix, 0 ); ?>><?php esc_html_e( 'Minutes', 'instagram-widget-by-wpzoom' ); ?></option>
1221
+ <option value="1"<?php selected( $new_posts_interval_suffix, 1 ); ?>><?php esc_html_e( 'Hours', 'instagram-widget-by-wpzoom' ); ?></option>
1222
+ <option value="2"<?php selected( $new_posts_interval_suffix, 2 ); ?>><?php esc_html_e( 'Days', 'instagram-widget-by-wpzoom' ); ?></option>
1223
+ <option value="3"<?php selected( $new_posts_interval_suffix, 3 ); ?>><?php esc_html_e( 'Weeks', 'instagram-widget-by-wpzoom' ); ?></option>
1224
+ <option value="4"<?php selected( $new_posts_interval_suffix, 4 ); ?>><?php esc_html_e( 'Months', 'instagram-widget-by-wpzoom' ); ?></option>
1225
+ </select>
1226
+ </div>
1227
+ </div>
1228
+
1229
+ <div class="wpz-insta_sidebar-section wpz-insta_sidebar-section-request-timeout<?php echo $user instanceof WP_Post ? ' active' : ''; ?>">
1230
+ <label>
1231
+ <input type="hidden" name="_wpz-insta_enable-request-timeout" value="0" />
1232
+ <input type="checkbox" name="_wpz-insta_enable-request-timeout" id="wpz-insta_enable-request-timeout" value="1"<?php checked( $enable_request_timeout ); ?> />
1233
+ <strong><?php esc_html_e( 'Enable request timeout', 'instagram-widget-by-wpzoom' ); ?></strong>
1234
+ <p class="description"><?php esc_html_e( 'The time within which a response must be returned will be set to 15 seconds to prevent your request from being blocked by the Instagram API.', 'instagram-widget-by-wpzoom' ); ?></p>
1235
+ </label>
1236
+ </div>
1237
+ </div>
1238
+
1239
+ <div class="wpz-insta_sidebar-left-section" data-id="#design">
1240
+ <div class="wpz-insta_sidebar-section wpz-insta_sidebar-section-layout">
1241
+ <h4 class="wpz-insta_sidebar-section-title"><?php esc_html_e( 'Layout', 'instagram-widget-by-wpzoom' ); ?></h4>
1242
+
1243
+ <div class="wpz-insta_feed-layout<?php echo $pro_toggle ? ' wpz-insta_pro-only' : ''; ?>">
1244
+ <label class="wpz-insta_feed-layout-option wpz-insta_feed-layout-1">
1245
+ <input type="radio" name="_wpz-insta_layout" value="0"<?php checked( $feed_layout, 0 ); ?> />
1246
+
1247
+ <svg width="92" height="110" viewBox="0 0 92 110" xmlns="http://www.w3.org/2000/svg">
1248
+ <rect x="0.5" y="0.5" width="91" height="109" rx="3.5" fill-opacity="0.2" stroke="currentColor" />
1249
+ <rect x="9" y="27" width="22" height="22" rx="2" />
1250
+ <rect x="9" y="53" width="22" height="22" rx="2" />
1251
+ <rect x="9" y="79" width="22" height="22" rx="2" />
1252
+ <rect x="35" y="27" width="22" height="22" rx="2" />
1253
+ <rect x="35" y="53" width="22" height="22" rx="2" />
1254
+ <rect x="35" y="79" width="22" height="22" rx="2" />
1255
+ <rect x="61" y="27" width="22" height="22" rx="2" />
1256
+ <rect x="61" y="53" width="22" height="22" rx="2" />
1257
+ <rect x="61" y="79" width="22" height="22" rx="2" />
1258
+ <path d="M37.6384 11.5646H39.3834C39.0926 9.70881 37.4861 8.41619 35.3948 8.41619C32.9204 8.41619 31.0645 10.2351 31.0645 13.282C31.0645 16.2734 32.8373 18.1293 35.4456 18.1293C37.7861 18.1293 39.4619 16.6243 39.4619 14.1868V13.0511H35.6256V14.3899H37.8046C37.7769 15.7379 36.8767 16.592 35.4548 16.592C33.8714 16.592 32.7865 15.4055 32.7865 13.2635C32.7865 11.1353 33.8898 9.95348 35.4179 9.95348C36.5581 9.95348 37.3337 10.5629 37.6384 11.5646ZM41.1181 18H42.8308V14.5376H44.5758L46.4316 18H48.3429L46.2978 14.2514C47.4103 13.8036 47.9966 12.8526 47.9966 11.5692C47.9966 9.7642 46.8333 8.54545 44.6635 8.54545H41.1181V18ZM42.8308 13.1158V9.97656H44.4004C45.6792 9.97656 46.2516 10.5629 46.2516 11.5692C46.2516 12.5756 45.6792 13.1158 44.4096 13.1158H42.8308ZM51.2859 8.54545H49.5732V18H51.2859V8.54545ZM56.3444 18C59.2251 18 60.9332 16.218 60.9332 13.2635C60.9332 10.3182 59.2251 8.54545 56.409 8.54545H53.1405V18H56.3444ZM54.8532 16.5181V10.0273H56.3121C58.2325 10.0273 59.2343 11.0984 59.2343 13.2635C59.2343 15.4379 58.2325 16.5181 56.2613 16.5181H54.8532Z" />
1259
+ </svg>
1260
+ </label>
1261
+
1262
+ <label class="wpz-insta_feed-layout-option wpz-insta_feed-layout-2">
1263
+ <input type="radio" name="_wpz-insta_layout" value="1"<?php checked( $feed_layout, 1 ); ?> />
1264
+
1265
+ <svg width="92" height="110" viewBox="0 0 92 110" fill="none" xmlns="http://www.w3.org/2000/svg">
1266
+ <rect x="0.5" y="0.5" width="91" height="109" rx="3.5" fill-opacity="0.2" stroke="currentColor"/>
1267
+ <rect x="3" y="53" width="20" height="22" rx="2" />
1268
+ <rect x="25" y="53" width="20" height="22" rx="2" />
1269
+ <rect x="47" y="53" width="20" height="22" rx="2" />
1270
+ <rect x="69" y="53" width="20" height="22" rx="2" />
1271
+ <path d="M7.03604 18V8.54545H13.0929V9.98118H8.74876V12.5479H12.6774V13.9837H8.74876V18H7.03604ZM20.6131 8.54545H22.3258V14.7223C22.3258 15.3994 22.1658 15.9949 21.8457 16.5089C21.5287 17.0228 21.0824 17.4245 20.5069 17.7138C19.9314 18 19.2589 18.1431 18.4895 18.1431C17.717 18.1431 17.043 18 16.4675 17.7138C15.892 17.4245 15.4457 17.0228 15.1287 16.5089C14.8117 15.9949 14.6532 15.3994 14.6532 14.7223V8.54545H16.3659V14.5792C16.3659 14.9731 16.4521 15.324 16.6245 15.6317C16.7999 15.9395 17.0461 16.1811 17.3631 16.3565C17.6801 16.5289 18.0556 16.6151 18.4895 16.6151C18.9235 16.6151 19.2989 16.5289 19.6159 16.3565C19.936 16.1811 20.1822 15.9395 20.3546 15.6317C20.5269 15.324 20.6131 14.9731 20.6131 14.5792V8.54545ZM24.1874 18V8.54545H25.9001V16.5643H30.0642V18H24.1874ZM31.5507 18V8.54545H33.2634V16.5643H37.4275V18H31.5507ZM42.4779 12.5849V13.9606H38.2215V12.5849H42.4779ZM45.9056 18L43.2373 8.54545H45.0793L46.7828 15.4933H46.8705L48.6894 8.54545H50.3651L52.1887 15.4979H52.2718L53.9752 8.54545H55.8172L53.1489 18H51.4593L49.5665 11.3661H49.4926L47.5953 18H45.9056ZM58.7175 8.54545V18H57.0048V8.54545H58.7175ZM63.776 18H60.5722V8.54545H63.8406C64.7793 8.54545 65.5857 8.73473 66.2597 9.11328C66.9368 9.48875 67.4569 10.0289 67.82 10.7337C68.1832 11.4384 68.3648 12.2817 68.3648 13.2635C68.3648 14.2483 68.1817 15.0947 67.8154 15.8026C67.4523 16.5104 66.9275 17.0536 66.2412 17.4322C65.558 17.8107 64.7362 18 63.776 18ZM62.2849 16.5181H63.6929C64.3515 16.5181 64.9009 16.3981 65.341 16.158C65.7811 15.9149 66.1119 15.5533 66.3335 15.0732C66.5551 14.59 66.6659 13.9867 66.6659 13.2635C66.6659 12.5402 66.5551 11.9401 66.3335 11.4631C66.1119 10.983 65.7842 10.6244 65.3502 10.3874C64.9194 10.1474 64.3838 10.0273 63.7437 10.0273H62.2849V16.5181ZM69.1577 9.98118V8.54545H76.701V9.98118H73.7788V18H72.0799V9.98118H69.1577ZM78.1552 18V8.54545H79.8679V12.5479H84.2489V8.54545H85.9663V18H84.2489V13.9837H79.8679V18H78.1552Z" />
1272
+ </svg>
1273
+ </label>
1274
+
1275
+ <?php echo $pro_toggle ? '<fieldset class="wpz-insta_feed-layout-pro"><legend>' . esc_html__( 'PRO', 'instagram-widget-by-wpzoom' ) . '</legend>' : ''; ?>
1276
+
1277
+ <label class="wpz-insta_feed-layout-option wpz-insta_feed-layout-3<?php echo $pro_toggle ? ' disabled' : ''; ?>">
1278
+ <input type="radio" name="_wpz-insta_layout" value="2"<?php checked( $feed_layout, 2 ); ?> />
1279
+
1280
+ <svg width="92" height="110" viewBox="0 0 92 110" xmlns="http://www.w3.org/2000/svg">
1281
+ <rect x="0.5" y="0.5" width="91" height="109" rx="3.5" fill-opacity="0.2" stroke="currentColor" />
1282
+ <rect x="9" y="27" width="22" height="48" rx="2" />
1283
+ <rect x="9" y="79" width="22" height="22" rx="2" />
1284
+ <rect x="35" y="27" width="22" height="22" rx="2" />
1285
+ <rect x="35" y="53" width="22" height="22" rx="2" />
1286
+ <rect x="35" y="79" width="48" height="22" rx="2" />
1287
+ <rect x="61" y="27" width="22" height="22" rx="2" />
1288
+ <rect x="61" y="53" width="22" height="22" rx="2" />
1289
+ <path d="M13.7216 8.54545V18H15.3651V11.4908H15.4528L18.0657 17.9723H19.2937L21.9066 11.5046H21.9943V18H23.6378V8.54545H21.5419L18.7351 15.3963H18.6243L15.8175 8.54545H13.7216ZM26.717 18L27.4972 15.6687H31.0518L31.8366 18H33.6648L30.3317 8.54545H28.2173L24.8888 18H26.717ZM27.9588 14.293L29.2376 10.4844H29.3114L30.5902 14.293H27.9588ZM39.8959 11.1445H41.5439C41.5116 9.54723 40.1498 8.41619 38.137 8.41619C36.1519 8.41619 34.6608 9.53338 34.6654 11.2045C34.6654 12.5618 35.6302 13.342 37.186 13.7436L38.2616 14.0206C39.2819 14.2791 39.9559 14.5977 39.9605 15.3317C39.9559 16.1396 39.1895 16.6797 38.0724 16.6797C37.0013 16.6797 36.1704 16.1996 36.1011 15.207H34.4161C34.4854 17.0859 35.8841 18.1431 38.0862 18.1431C40.3529 18.1431 41.6686 17.0121 41.6732 15.3455C41.6686 13.7067 40.316 12.9588 38.8941 12.6218L38.0077 12.4002C37.2322 12.2156 36.392 11.8878 36.4012 11.0984C36.4058 10.3874 37.0429 9.86577 38.1139 9.86577C39.1341 9.86577 39.8081 10.3413 39.8959 11.1445ZM51.6483 13.2727C51.6483 10.2166 49.7832 8.41619 47.3042 8.41619C44.8205 8.41619 42.96 10.2166 42.96 13.2727C42.96 16.3242 44.8205 18.1293 47.3042 18.1293C49.7832 18.1293 51.6483 16.3288 51.6483 13.2727ZM49.9263 13.2727C49.9263 15.424 48.8461 16.592 47.3042 16.592C45.7669 16.592 44.682 15.424 44.682 13.2727C44.682 11.1214 45.7669 9.95348 47.3042 9.95348C48.8461 9.95348 49.9263 11.1214 49.9263 13.2727ZM61.037 8.54545H59.3335V14.9901H59.2504L54.8002 8.54545H53.2675V18H54.9802V11.56H55.0587L59.5136 18H61.037V8.54545ZM62.9032 18H64.6159V14.5376H66.361L68.2168 18H70.128L68.0829 14.2514C69.1955 13.8036 69.7818 12.8526 69.7818 11.5692C69.7818 9.7642 68.6184 8.54545 66.4487 8.54545H62.9032V18ZM64.6159 13.1158V9.97656H66.1855C67.4643 9.97656 68.0368 10.5629 68.0368 11.5692C68.0368 12.5756 67.4643 13.1158 66.1948 13.1158H64.6159ZM70.3438 8.54545L73.7831 14.473V18H75.4912V14.473L78.9305 8.54545H76.9962L74.6833 12.728H74.591L72.2781 8.54545H70.3438Z" />
1290
+ </svg>
1291
+ </label>
1292
+
1293
+ <label class="wpz-insta_feed-layout-option wpz-insta_feed-layout-4 disabled">
1294
+ <input type="radio" name="_wpz-insta_layout" value="3"<?php checked( $feed_layout, 3 ); ?> />
1295
+
1296
+ <svg width="92" height="110" viewBox="0 0 92 110" xmlns="http://www.w3.org/2000/svg">
1297
+ <rect x="0.5" y="0.5" width="91" height="109" rx="3.5" fill-opacity="0.2" stroke="currentColor" />
1298
+ <rect x="9" y="27" width="48" height="48" rx="2" />
1299
+ <rect x="9" y="79" width="22" height="22" rx="2" />
1300
+ <rect x="35" y="79" width="22" height="22" rx="2" />
1301
+ <rect x="61" y="27" width="22" height="22" rx="2" />
1302
+ <rect x="61" y="53" width="22" height="22" rx="2" />
1303
+ <rect x="61" y="79" width="22" height="22" rx="2" />
1304
+ <path d="M11.5683 18H13.281V13.9837H17.662V18H19.3794V8.54545H17.662V12.5479H13.281V8.54545H11.5683V18ZM22.9548 8.54545H21.2421V18H22.9548V8.54545ZM31.1433 11.5646H32.8883C32.5975 9.70881 30.9909 8.41619 28.8997 8.41619C26.4252 8.41619 24.5694 10.2351 24.5694 13.282C24.5694 16.2734 26.3422 18.1293 28.9505 18.1293C31.291 18.1293 32.9668 16.6243 32.9668 14.1868V13.0511H29.1305V14.3899H31.3095C31.2818 15.7379 30.3816 16.592 28.9597 16.592C27.3762 16.592 26.2914 15.4055 26.2914 13.2635C26.2914 11.1353 27.3947 9.95348 28.9228 9.95348C30.063 9.95348 30.8386 10.5629 31.1433 11.5646ZM34.623 18H36.3357V13.9837H40.7167V18H42.434V8.54545H40.7167V12.5479H36.3357V8.54545H34.623V18ZM44.2968 18H50.1736V16.5643H46.0095V8.54545H44.2968V18ZM53.3728 8.54545H51.6601V18H53.3728V8.54545ZM61.5613 11.5646H63.3063C63.0154 9.70881 61.4089 8.41619 59.3176 8.41619C56.8432 8.41619 54.9874 10.2351 54.9874 13.282C54.9874 16.2734 56.7601 18.1293 59.3684 18.1293C61.709 18.1293 63.3848 16.6243 63.3848 14.1868V13.0511H59.5485V14.3899H61.7275C61.6998 15.7379 60.7995 16.592 59.3777 16.592C57.7942 16.592 56.7093 15.4055 56.7093 13.2635C56.7093 11.1353 57.8127 9.95348 59.3407 9.95348C60.481 9.95348 61.2566 10.5629 61.5613 11.5646ZM65.0409 18H66.7536V13.9837H71.1347V18H72.852V8.54545H71.1347V12.5479H66.7536V8.54545H65.0409V18ZM74.2993 9.98118H77.2215V18H78.9204V9.98118H81.8426V8.54545H74.2993V9.98118Z" />
1305
+ </svg>
1306
+ </label>
1307
+
1308
+ <?php echo $pro_toggle ? '</fieldset>' : ''; ?>
1309
+ </div>
1310
+
1311
+ <div class="wpz-insta_feed-layout-etc wpz-insta_table">
1312
+ <label class="wpz-insta_table-row">
1313
+ <strong class="wpz-insta_table-cell"><?php esc_html_e( 'Number of photos', 'instagram-widget-by-wpzoom' ); ?></strong>
1314
+ <div class="wpz-insta_table-cell"><input type="number" name="_wpz-insta_item-num" value="<?php echo esc_attr( $feed_items_num ); ?>" size="3" min="1" max="100" step="1" /></div>
1315
+ </label>
1316
+
1317
+ <label class="wpz-insta_table-row<?php echo 1 === $feed_layout ? ' hidden' : ''; ?>">
1318
+ <strong class="wpz-insta_table-cell"><?php esc_html_e( 'Number of columns', 'instagram-widget-by-wpzoom' ); ?></strong>
1319
+ <div class="wpz-insta_table-cell"><input type="number" name="_wpz-insta_col-num" value="<?php echo esc_attr( $feed_cols_num ); ?>" size="3" min="0" max="100" step="1" /></div>
1320
+ </label>
1321
+
1322
+ <label class="wpz-insta_table-row">
1323
+ <strong class="wpz-insta_table-cell"><?php esc_html_e( 'Padding around images', 'instagram-widget-by-wpzoom' ); ?></strong>
1324
+ <div class="wpz-insta_table-cell">
1325
+ <div class="wpz-insta_suffixed-number-input">
1326
+ <input type="number" name="_wpz-insta_spacing-between" value="<?php echo esc_attr( $feed_spacing_between ); ?>" size="3" min="0" max="5000" step="1" />
1327
+
1328
+ <select name="_wpz-insta_spacing-between-suffix">
1329
+ <option value="0"<?php selected( $feed_spacing_between_suffix, 0 ); ?>><?php esc_html_e( 'px', 'instagram-widget-by-wpzoom' ); ?></option>
1330
+ <option value="1"<?php selected( $feed_spacing_between_suffix, 1 ); ?>><?php esc_html_e( 'em', 'instagram-widget-by-wpzoom' ); ?></option>
1331
+ <option value="2"<?php selected( $feed_spacing_between_suffix, 2 ); ?>><?php esc_html_e( '%', 'instagram-widget-by-wpzoom' ); ?></option>
1332
+ </select>
1333
+ </div>
1334
+ </div>
1335
+ </label>
1336
+ </div>
1337
+ </div>
1338
+
1339
+ <div class="wpz-insta_sidebar-section wpz-insta_sidebar-section-profile">
1340
+ <h4 class="wpz-insta_sidebar-section-title"><?php esc_html_e( 'Profile', 'instagram-widget-by-wpzoom' ); ?></h4>
1341
+
1342
+ <p class="wpz-insta_sidebar-section-description"><?php esc_html_e( 'Details like Name, Bio or Avatar need to be added manually on the', 'instagram-widget-by-wpzoom' ); ?> <a href="<?php echo esc_url( $user_edit_link ); ?>" target="_blank" class="wpz-insta_feed-user-select-edit-link"><?php esc_html_e( 'account details page', 'instagram-widget-by-wpzoom' ); ?></a>.</p>
1343
+
1344
+ <div class="wpz-insta_feed-profile-general wpz-insta_table">
1345
+ <label class="wpz-insta_table-row">
1346
+ <input type="hidden" name="_wpz-insta_show-account-name" value="0" />
1347
+ <input type="checkbox" name="_wpz-insta_show-account-name" value="1"<?php checked( $show_account_name ); ?> />
1348
+ <span>
1349
+ <?php esc_html_e( 'Display account name', 'instagram-widget-by-wpzoom' ); ?>
1350
+
1351
+ <small class="help" aria-hidden="true" data-tooltip="<?php esc_html_e( 'You must set a display name for the user for this option to have any effect.', 'instagram-widget-by-wpzoom' ); ?>"><svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='16' height='16'><path fill='#000' fill-rule='evenodd' clip-rule='evenodd' d='M12 2C6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10S17.523 2 12 2zm-1 16v-2h2v2h-2zm2-3v-1.141A3.991 3.991 0 0016 10a4 4 0 00-8 0h2c0-1.103.897-2 2-2s2 .897 2 2-.897 2-2 2a1 1 0 00-1 1v2h2z'></path></svg></small>
1352
+ </span>
1353
+ </label>
1354
+
1355
+ <label class="wpz-insta_table-row">
1356
+ <input type="hidden" name="_wpz-insta_show-account-username" value="0" />
1357
+ <input type="checkbox" name="_wpz-insta_show-account-username" value="1"<?php checked( $show_account_username ); ?> />
1358
+ <span><?php esc_html_e( 'Display account username', 'instagram-widget-by-wpzoom' ); ?></span>
1359
+ </label>
1360
+
1361
+ <label class="wpz-insta_table-row">
1362
+ <input type="hidden" name="_wpz-insta_show-account-image" value="0" />
1363
+ <input type="checkbox" name="_wpz-insta_show-account-image" value="1"<?php checked( $show_account_image ); ?> />
1364
+ <span>
1365
+ <?php esc_html_e( 'Display account image', 'instagram-widget-by-wpzoom' ); ?>
1366
+
1367
+ <small class="help" aria-hidden="true" data-tooltip="<?php esc_html_e( 'You must set a profile picture for the user for this option to have any effect.', 'instagram-widget-by-wpzoom' ); ?>"><svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='16' height='16'><path fill='#000' fill-rule='evenodd' clip-rule='evenodd' d='M12 2C6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10S17.523 2 12 2zm-1 16v-2h2v2h-2zm2-3v-1.141A3.991 3.991 0 0016 10a4 4 0 00-8 0h2c0-1.103.897-2 2-2s2 .897 2 2-.897 2-2 2a1 1 0 00-1 1v2h2z'></path></svg></small>
1368
+ </span>
1369
+ </label>
1370
+
1371
+ <label class="wpz-insta_table-row">
1372
+ <input type="hidden" name="_wpz-insta_show-account-bio" value="0" />
1373
+ <input type="checkbox" name="_wpz-insta_show-account-bio" value="1"<?php checked( $show_account_bio ); ?> />
1374
+ <span>
1375
+ <?php esc_html_e( 'Display bio in user details', 'instagram-widget-by-wpzoom' ); ?>
1376
+
1377
+ <small class="help" aria-hidden="true" data-tooltip="<?php esc_html_e( 'You must set a profile bio for the user for this option to have any effect.', 'instagram-widget-by-wpzoom' ); ?>"><svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='16' height='16'><path fill='#000' fill-rule='evenodd' clip-rule='evenodd' d='M12 2C6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10S17.523 2 12 2zm-1 16v-2h2v2h-2zm2-3v-1.141A3.991 3.991 0 0016 10a4 4 0 00-8 0h2c0-1.103.897-2 2-2s2 .897 2 2-.897 2-2 2a1 1 0 00-1 1v2h2z'></path></svg></small>
1378
+ </span>
1379
+ </label>
1380
+
1381
+ <label class="wpz-insta_table-row">
1382
+ <input type="hidden" name="_wpz-insta_show-view-button" value="0" />
1383
+ <input type="checkbox" name="_wpz-insta_show-view-button" value="1"<?php checked( $show_view_instagram_button ); ?> />
1384
+ <span><?php _e( 'Display <strong>View on Instagram</strong> button', 'instagram-widget-by-wpzoom' ); ?></span>
1385
+ </label>
1386
+
1387
+ <label class="wpz-insta_table-row wpz-insta_table-row-full">
1388
+ <strong class="wpz-insta_table-cell"><?php esc_html_e( 'Button text', 'instagram-widget-by-wpzoom' ); ?></strong>
1389
+ <div class="wpz-insta_table-cell"><input type="text" name="_wpz-insta_view-button-text" value="<?php echo esc_attr( $view_instagram_button_text ); ?>" class="widefat" /></div>
1390
+ </label>
1391
+
1392
+ <label class="wpz-insta_table-row">
1393
+ <strong class="wpz-insta_table-cell"><?php esc_html_e( 'Button color', 'instagram-widget-by-wpzoom' ); ?></strong>
1394
+ <div class="wpz-insta_table-cell">
1395
+ <input type="text" name="_wpz-insta_view-button-bg-color" value="<?php echo esc_attr( $view_instagram_button_bg_color ); ?>" size="8" class="wpz-insta_color-picker" />
1396
+ </div>
1397
+ </label>
1398
+ </div>
1399
+ </div>
1400
+
1401
+ <div class="wpz-insta_sidebar-section wpz-insta_sidebar-section-feed">
1402
+ <h4 class="wpz-insta_sidebar-section-title"><?php esc_html_e( 'Feed', 'instagram-widget-by-wpzoom' ); ?></h4>
1403
+
1404
+ <div class="wpz-insta_feed-general wpz-insta_table">
1405
+ <label class="wpz-insta_table-row">
1406
+ <strong class="wpz-insta_table-cell"><?php esc_html_e( 'Background color', 'instagram-widget-by-wpzoom' ); ?></strong>
1407
+ <div class="wpz-insta_table-cell">
1408
+ <input type="text" name="_wpz-insta_bg-color" value="<?php echo esc_attr( $feed_bg_color ); ?>" size="8" class="wpz-insta_color-picker" />
1409
+ </div>
1410
+ </label>
1411
+
1412
+ <?php echo $pro_toggle ? '<fieldset class="wpz-insta_feed-only-pro wpz-insta_pro-only wpz-insta_pro-only-with-bottom"><legend><strong>' . esc_html__( 'PRO', 'instagram-widget-by-wpzoom' ) . '</strong></legend>' : ''; ?>
1413
+
1414
+ <label class="wpz-insta_table-row">
1415
+ <strong class="wpz-insta_table-cell"><?php esc_html_e( 'Rounded corners', 'instagram-widget-by-wpzoom' ); ?></strong>
1416
+ <div class="wpz-insta_table-cell">
1417
+ <div class="wpz-insta_suffixed-number-input">
1418
+ <input type="number" name="_wpz-insta_border-radius" value="<?php echo esc_attr( $feed_items_radius ); ?>" size="3" min="0" max="200" step="1" />
1419
+
1420
+ <select name="_wpz-insta_border-radius-suffix">
1421
+ <option value="0"<?php selected( $feed_items_radius_suffix, 0 ); ?>><?php esc_html_e( 'px', 'instagram-widget-by-wpzoom' ); ?></option>
1422
+ <option value="1"<?php selected( $feed_items_radius_suffix, 1 ); ?>><?php esc_html_e( 'em', 'instagram-widget-by-wpzoom' ); ?></option>
1423
+ <option value="2"<?php selected( $feed_items_radius_suffix, 2 ); ?>><?php esc_html_e( '%', 'instagram-widget-by-wpzoom' ); ?></option>
1424
+ </select>
1425
+ </div>
1426
+ </div>
1427
+ </label>
1428
+
1429
+ <?php echo $pro_toggle ? '</fieldset>' : ''; ?>
1430
+
1431
+ <label class="wpz-insta_table-row">
1432
+ <strong class="wpz-insta_table-cell"><?php esc_html_e( 'Outside padding', 'instagram-widget-by-wpzoom' ); ?></strong>
1433
+ <div class="wpz-insta_table-cell">
1434
+ <div class="wpz-insta_suffixed-number-input">
1435
+ <input type="number" name="_wpz-insta_spacing-around" value="<?php echo esc_attr( $feed_spacing_around ); ?>" size="3" min="0" max="100" step="1" />
1436
+
1437
+ <select name="_wpz-insta_spacing-around-suffix">
1438
+ <option value="0"<?php selected( $feed_spacing_around_suffix, 0 ); ?>><?php esc_html_e( 'px', 'instagram-widget-by-wpzoom' ); ?></option>
1439
+ <option value="1"<?php selected( $feed_spacing_around_suffix, 1 ); ?>><?php esc_html_e( 'em', 'instagram-widget-by-wpzoom' ); ?></option>
1440
+ <option value="2"<?php selected( $feed_spacing_around_suffix, 2 ); ?>><?php esc_html_e( '%', 'instagram-widget-by-wpzoom' ); ?></option>
1441
+ </select>
1442
+ </div>
1443
+ </div>
1444
+ </label>
1445
+
1446
+ <label class="wpz-insta_table-row">
1447
+ <strong class="wpz-insta_table-cell"><?php esc_html_e( 'Text size', 'instagram-widget-by-wpzoom' ); ?></strong>
1448
+ <div class="wpz-insta_table-cell">
1449
+ <div class="wpz-insta_suffixed-number-input">
1450
+ <input type="number" name="_wpz-insta_font-size" value="<?php echo esc_attr( $feed_font_size ); ?>" size="3" min="1" max="100" step="1" />
1451
+
1452
+ <select name="_wpz-insta_font-size-suffix">
1453
+ <option value="0"<?php selected( $feed_font_size_suffix, 0 ); ?>><?php esc_html_e( 'px', 'instagram-widget-by-wpzoom' ); ?></option>
1454
+ <option value="1"<?php selected( $feed_font_size_suffix, 1 ); ?>><?php esc_html_e( 'em', 'instagram-widget-by-wpzoom' ); ?></option>
1455
+ <option value="2"<?php selected( $feed_font_size_suffix, 2 ); ?>><?php esc_html_e( 'pt', 'instagram-widget-by-wpzoom' ); ?></option>
1456
+ </select>
1457
+ </div>
1458
+ </div>
1459
+ </label>
1460
+
1461
+ <label class="wpz-insta_table-row">
1462
+ <strong class="wpz-insta_table-cell"><?php esc_html_e( 'Image size', 'instagram-widget-by-wpzoom' ); ?></strong>
1463
+ <div class="wpz-insta_table-cell">
1464
+ <select name="_wpz-insta_image-size" class="widefat">
1465
+ <option value="default_algorithm"<?php selected( $image_size, 'default_algorithm' ); ?>>
1466
+ <?php esc_html_e( 'By Default Algorithm', 'instagram-widget-by-wpzoom' ); ?>
1467
+ </option>
1468
+ <option value="thumbnail"<?php selected( $image_size, 'thumbnail' ); ?>>
1469
+ <?php esc_html_e( 'Thumbnail (150x150)', 'instagram-widget-by-wpzoom' ); ?>
1470
+ </option>
1471
+ <option value="low_resolution"<?php selected( $image_size, 'low_resolution' ); ?>>
1472
+ <?php esc_html_e( 'Low Resolution (320x320)', 'instagram-widget-by-wpzoom' ); ?>
1473
+ </option>
1474
+ <option value="standard_resolution"<?php selected( $image_size, 'standard_resolution' ); ?>>
1475
+ <?php esc_html_e( 'Standard Resolution (640x640)', 'instagram-widget-by-wpzoom' ); ?>
1476
+ </option>
1477
+ </select>
1478
+ </div>
1479
+ </label>
1480
+
1481
+ <label class="wpz-insta_table-row">
1482
+ <strong class="wpz-insta_table-cell"><?php esc_html_e( 'Image Width', 'instagram-widget-by-wpzoom' ); ?></strong>
1483
+ <div class="wpz-insta_table-cell">
1484
+ <div class="wpz-insta_suffixed-number-input">
1485
+ <input type="number" name="_wpz-insta_image-width" value="<?php echo esc_attr( $image_width ); ?>" size="3" min="1" max="1000" step="1" />
1486
+
1487
+ <select name="_wpz-insta_image-width-suffix">
1488
+ <option value="0"<?php selected( $image_width_suffix, 0 ); ?>><?php esc_html_e( 'px', 'instagram-widget-by-wpzoom' ); ?></option>
1489
+ <option value="1"<?php selected( $image_width_suffix, 1 ); ?>><?php esc_html_e( 'em', 'instagram-widget-by-wpzoom' ); ?></option>
1490
+ <option value="2"<?php selected( $image_width_suffix, 2 ); ?>><?php esc_html_e( '%', 'instagram-widget-by-wpzoom' ); ?></option>
1491
+ </select>
1492
+ </div>
1493
+ </div>
1494
+ </label>
1495
+
1496
+ <label class="wpz-insta_table-row">
1497
+ <input type="hidden" name="_wpz-insta_show-overlay" value="0" />
1498
+ <input type="checkbox" name="_wpz-insta_show-overlay" value="1"<?php checked( $show_overlay ); ?> />
1499
+ <span><?php esc_html_e( 'Show overlay with Instagram icon on hover', 'instagram-widget-by-wpzoom' ); ?></span>
1500
+ </label>
1501
+
1502
+ <label class="wpz-insta_table-row">
1503
+ <input type="hidden" name="_wpz-insta_lazy-load" value="0" />
1504
+ <input type="checkbox" name="_wpz-insta_lazy-load" value="1"<?php checked( $lazy_load ); ?> />
1505
+ <span><?php esc_html_e( 'Lazy load images', 'instagram-widget-by-wpzoom' ); ?></span>
1506
+ </label>
1507
+
1508
+ <label class="wpz-insta_table-row">
1509
+ <input type="hidden" name="_wpz-insta_lightbox" value="0" />
1510
+ <input type="checkbox" name="_wpz-insta_lightbox" value="1"<?php checked( $lightbox ); ?> />
1511
+ <span><?php esc_html_e( 'Open items in lightbox', 'instagram-widget-by-wpzoom' ); ?></span>
1512
+ </label>
1513
+
1514
+ <label class="wpz-insta_table-row">
1515
+ <input type="hidden" name="_wpz-insta_hide-video-thumbs" value="0" />
1516
+ <input type="checkbox" name="_wpz-insta_hide-video-thumbs" value="1"<?php checked( $hide_video_thumbnails ); ?> />
1517
+ <span><?php esc_html_e( 'Hide video thumbnails', 'instagram-widget-by-wpzoom' ); ?></span>
1518
+ </label>
1519
+
1520
+ <label class="wpz-insta_table-row">
1521
+ <input type="hidden" name="_wpz-insta_show-media-type-icons" value="0" />
1522
+ <input type="checkbox" name="_wpz-insta_show-media-type-icons" value="1"<?php checked( $show_media_type_icons ); ?> />
1523
+ <span><?php esc_html_e( 'Show media type icons', 'instagram-widget-by-wpzoom' ); ?></span>
1524
+ </label>
1525
+
1526
+ <div class="wpz-insta_show-on-hover">
1527
+ <strong><?php esc_html_e( 'Show on hover', 'instagram-widget-by-wpzoom' ); ?></strong>
1528
+
1529
+ <div class="wpz-insta_table">
1530
+ <label class="wpz-insta_table-row">
1531
+ <input type="hidden" name="_wpz-insta_hover-media-type-icons" value="0" />
1532
+ <input type="checkbox" name="_wpz-insta_hover-media-type-icons" value="1"<?php checked( $feed_hover_media_type_icons ); ?> />
1533
+ <span><?php esc_html_e( 'Media type icons', 'instagram-widget-by-wpzoom' ); ?></span>
1534
+ </label>
1535
+
1536
+ <label class="wpz-insta_table-row">
1537
+ <input type="hidden" name="_wpz-insta_hover-link" value="0" />
1538
+ <input type="checkbox" name="_wpz-insta_hover-link" value="1"<?php checked( $feed_hover_link ); ?> />
1539
+ <span><?php esc_html_e( 'Instagram link', 'instagram-widget-by-wpzoom' ); ?></span>
1540
+ </label>
1541
+
1542
+ <?php echo $pro_toggle ? '<fieldset class="wpz-insta_feed-only-pro wpz-insta_pro-only' . ( 1 === $feed_layout ? ' hidden' : '' ) . '"><legend><strong>' . esc_html__( 'PRO', 'instagram-widget-by-wpzoom' ) . '</strong></legend>' : ''; ?>
1543
+
1544
+ <?php /* Coming Soon
1545
+
1546
+ <label class="wpz-insta_table-row">
1547
+ <input type="hidden" name="_wpz-insta_hover-autoplay" value="0" />
1548
+ <input type="checkbox" name="_wpz-insta_hover-autoplay" value="1"<?php checked( $feed_hover_autoplay ); disabled( $pro_toggle ); ?> />
1549
+ <span><?php esc_html_e( 'Auto-play on hover (videos and albums posts only)', 'instagram-widget-by-wpzoom' ); ?></span>
1550
+ </label>
1551
+
1552
+ <label class="wpz-insta_table-row">
1553
+ <input type="hidden" name="_wpz-insta_hover-tags-feed" value="0" />
1554
+ <input type="checkbox" name="_wpz-insta_hover-tags-feed" value="1"<?php checked( $feed_hover_tags_feed ); disabled( $pro_toggle ); ?> />
1555
+ <span><?php esc_html_e( 'Display a feed from tags', 'instagram-widget-by-wpzoom' ); ?></span>
1556
+ </label>
1557
+
1558
+ <label class="wpz-insta_table-row">
1559
+ <input type="hidden" name="_wpz-insta_hover-date" value="0" />
1560
+ <input type="checkbox" name="_wpz-insta_hover-date" value="1"<?php checked( $feed_hover_date ); disabled( $pro_toggle ); ?> />
1561
+ <span><?php esc_html_e( 'Date', 'instagram-widget-by-wpzoom' ); ?></span>
1562
+ </label>
1563
+
1564
+ */ ?>
1565
+
1566
+ <?php echo $pro_toggle ? '</fieldset>' : ''; ?>
1567
+ </div>
1568
+ </div>
1569
+ </div>
1570
+ </div>
1571
+
1572
+ <div class="wpz-insta_sidebar-section wpz-insta_sidebar-section-load-more<?php echo ( $pro_toggle ? ' wpz-insta_pro-only' : '' ) . ( 1 === $feed_layout ? ' hidden' : '' ); ?>">
1573
+ <h4 class="wpz-insta_sidebar-section-title smaller-title"><?php esc_html_e( 'Load More Posts', 'instagram-widget-by-wpzoom' ); ?></h4>
1574
+
1575
+ <div class="wpz-insta_feed-load-more-general wpz-insta_table">
1576
+ <label class="wpz-insta_table-row">
1577
+ <input type="hidden" name="_wpz-insta_show-load-more" value="0" />
1578
+ <input type="checkbox" name="_wpz-insta_show-load-more" value="1"<?php checked( $show_load_more ); disabled( $pro_toggle ); ?> />
1579
+ <span><?php _e( 'Display <strong>Load more</strong> button', 'instagram-widget-by-wpzoom' ); ?></span>
1580
+ </label>
1581
+
1582
+ <label class="wpz-insta_table-row wpz-insta_table-row-full">
1583
+ <strong class="wpz-insta_table-cell"><?php esc_html_e( 'Button text', 'instagram-widget-by-wpzoom' ); ?></strong>
1584
+ <div class="wpz-insta_table-cell"><input type="text" name="_wpz-insta_load-more-text" value="<?php echo esc_attr( $load_more_text ); ?>" class="widefat"<?php disabled( $pro_toggle ); ?> /></div>
1585
+ </label>
1586
+
1587
+ <label class="wpz-insta_table-row">
1588
+ <strong class="wpz-insta_table-cell"><?php esc_html_e( 'Load more button color', 'instagram-widget-by-wpzoom' ); ?></strong>
1589
+ <div class="wpz-insta_table-cell"><input type="text" name="_wpz-insta_load-more-color" value="<?php echo esc_attr( $load_more_color ); ?>" size="8" class="wpz-insta_color-picker"<?php disabled( $pro_toggle ); ?> /></div>
1590
+ </label>
1591
+ </div>
1592
+ </div>
1593
+ </div>
1594
+
1595
+ <div class="wpz-insta_sidebar-left-section" data-id="#embed">
1596
+ <h4 class="wpz-insta_sidebar-section-big-title"><?php esc_html_e( 'Display your Feed', 'instagram-widget-by-wpzoom' ); ?></h4>
1597
+
1598
+ <div class="wpz-insta_sidebar-section wpz-insta_sidebar-section-shortcode no-top-border">
1599
+ <h5 class="wpz-insta_sidebar-section-title smaller-title"><?php esc_html_e( 'Shortcode', 'instagram-widget-by-wpzoom' ); ?></h5>
1600
+ <p class="wpz-insta_sidebar-section-description"><?php esc_html_e( 'Copy and paste the following shortcode directly into the page, post or widget where you&rsquo;d like the feed to show up:', 'instagram-widget-by-wpzoom' ); ?></p>
1601
+
1602
+ <div class="wpz-insta_text-btn-aligned">
1603
+ <input type="text" id="wpz-insta_shortcode" value="<?php echo esc_attr( $feed_shortcode ); ?>" readonly class="wpz-insta_shortcode" />
1604
+ <span id="wpz-insta_shortcode-copy-btn" class="button button-secondary wpz-insta_shortcode-copy-btn">
1605
+ <span class="wpz-insta_shortcode-copy-btn-text-normal"><?php esc_html_e( 'COPY', 'instagram-widget-by-wpzoom' ); ?></span>
1606
+ <span class="wpz-insta_shortcode-copy-btn-text-success"><?php esc_html_e( 'COPIED!', 'instagram-widget-by-wpzoom' ); ?></span>
1607
+ </span>
1608
+ </div>
1609
+ </div>
1610
+
1611
+ <div class="wpz-insta_sidebar-section wpz-insta_sidebar-section-wp-block">
1612
+ <h5 class="wpz-insta_sidebar-section-title smaller-title"><?php esc_html_e( 'WordPress Block', 'instagram-widget-by-wpzoom' ); ?></h5>
1613
+ <div class="wpz-insta_sidebar-section-description">
1614
+ <p><?php esc_html_e( 'To embed this feed in the WordPress block editor:', 'instagram-widget-by-wpzoom' ); ?></p>
1615
+ <ol>
1616
+ <li><?php _e( 'Search for the <strong>Instagram Feed by WPZOOM</strong> block.', 'instagram-widget-by-wpzoom' ); ?></li>
1617
+ <li><?php esc_html_e( 'Add it to your post or page.', 'instagram-widget-by-wpzoom' ); ?></li>
1618
+ <li><?php _e( 'In the block settings, select to display the feed with this name.', 'instagram-widget-by-wpzoom' ); ?></li>
1619
+ </ol>
1620
+ </div>
1621
+ </div>
1622
+
1623
+ <div class="wpz-insta_sidebar-section wpz-insta_sidebar-section-wp-widget">
1624
+ <h5 class="wpz-insta_sidebar-section-title smaller-title"><?php esc_html_e( 'WordPress Widget', 'instagram-widget-by-wpzoom' ); ?></h5>
1625
+ <div class="wpz-insta_sidebar-section-description">
1626
+ <p><?php _e( 'To embed this feed as a WordPress widget:', 'instagram-widget-by-wpzoom' ); ?></p>
1627
+ <ol>
1628
+ <li><?php printf( __( 'Go to the <a href="%s">Appearance &raquo; Widgets</a> page or the <a href="%s">Widgets</a> section of the Customizer.', 'instagram-widget-by-wpzoom' ), esc_attr( admin_url( 'widgets.php' ) ), esc_attr( admin_url( 'customize.php?autofocus[panel]=widgets' ) ) ); ?></li>
1629
+ <li><?php _e( 'Then, add a <strong>Text Widget</strong>.', 'instagram-widget-by-wpzoom' ); ?></li>
1630
+ <li><?php _e( 'Copy the <strong>Shortcode</strong> above and insert it in the Text widget.', 'instagram-widget-by-wpzoom' ); ?></li>
1631
+ </ol>
1632
+ </div>
1633
+ </div>
1634
+ </div>
1635
+ </div>
1636
+
1637
+ <div class="wpz-insta_sidebar-right is-loading">
1638
+ <div class="wpz-insta_widget-preview">
1639
+ <div class="wpz-insta_widget-preview-header">
1640
+ <h3 class="wpz-insta_widget-preview-header-title"><?php esc_html_e( 'Preview', 'instagram-widget-by-wpzoom' ); ?></h3>
1641
+
1642
+ <ul id="wpz-insta_widget-preview-links" class="wpz-insta_widget-preview-header-links<?php echo $user instanceof WP_Post ? '' : ' disabled'; ?>">
1643
+ <li class="wpz-insta_widget-preview-header-link wpz-insta_widget-preview-header-links-desktop active" title="<?php esc_html_e( 'Desktop', 'instagram-widget-by-wpzoom' ); ?>">
1644
+ <span class="screen-reader-text"><?php esc_html_e( 'Desktop', 'instagram-widget-by-wpzoom' ); ?></span>
1645
+ <svg width="24" height="16" viewBox="0 0 24 16" xmlns="http://www.w3.org/2000/svg">
1646
+ <path d="M20 14C21.1 14 21.99 13.1 21.99 12L22 2C22 0.9 21.1 0 20 0H4C2.9 0 2 0.9 2 2V12C2 13.1 2.9 14 4 14H0V16H24V14H20ZM4 2H20V12H4V2Z"/>
1647
+ </svg>
1648
+ </li>
1649
+
1650
+ <li class="wpz-insta_widget-preview-header-link wpz-insta_widget-preview-header-links-tablet" title="<?php esc_html_e( 'Tablet', 'instagram-widget-by-wpzoom' ); ?>">
1651
+ <span class="screen-reader-text"><?php esc_html_e( 'Tablet', 'instagram-widget-by-wpzoom' ); ?></span>
1652
+ <svg width="19" height="24" viewBox="0 0 19 24" xmlns="http://www.w3.org/2000/svg">
1653
+ <path d="M16.5 0H2.5C1.12 0 0 1.12 0 2.5V21.5C0 22.88 1.12 24 2.5 24H16.5C17.88 24 19 22.88 19 21.5V2.5C19 1.12 17.88 0 16.5 0ZM9.5 23C8.67 23 8 22.33 8 21.5C8 20.67 8.67 20 9.5 20C10.33 20 11 20.67 11 21.5C11 22.33 10.33 23 9.5 23ZM17 19H2V3H17V19Z"/>
1654
+ </svg>
1655
+ </li>
1656
+
1657
+ <li class="wpz-insta_widget-preview-header-link wpz-insta_widget-preview-header-links-mobile" title="<?php esc_html_e( 'Mobile', 'instagram-widget-by-wpzoom' ); ?>">
1658
+ <span class="screen-reader-text"><?php esc_html_e( 'Mobile', 'instagram-widget-by-wpzoom' ); ?></span>
1659
+ <svg width="14" height="22" viewBox="0 0 14 22" xmlns="http://www.w3.org/2000/svg">
1660
+ <path d="M11.99 0.00999999L1.99 0C0.89 0 0 0.9 0 2V20C0 21.1 0.89 22 1.99 22H11.99C13.09 22 13.99 21.1 13.99 20V2C13.99 0.9 13.09 0.00999999 11.99 0.00999999ZM11.99 18H1.99V4H11.99V18Z"/>
1661
+ </svg>
1662
+ </li>
1663
+ </ul>
1664
+ </div>
1665
+
1666
+ <div class="wpz-insta_widget-preview-view wpz-insta_widget-preview-size-desktop<?php echo 1 === $feed_layout ? ' layout-fullwidth' : ''; ?>">
1667
+ <div id="wpz-insta_widget-preview-view" class="wpz-insta_widget-preview-view-inner">
1668
+ <iframe src="" scrolling="no" class="wpz-insta_preview-hidden"></iframe>
1669
+ </div>
1670
+ </div>
1671
+ </div>
1672
+ </div>
1673
+ </div>
1674
+
1675
+ <div id="wpz-insta_tabs-config-cnnct" class="wpz-insta_tabs-config-connect">
1676
+ <h2 class="wpz-insta_tabs-config-connect-title"><?php esc_html_e( 'Select an Account', 'instagram-widget-by-wpzoom' ); ?></h2>
1677
+ <p class="wpz-insta_tabs-config-connect-description"><?php esc_html_e( 'Show posts from this account:', 'instagram-widget-by-wpzoom' ); ?></p>
1678
+
1679
+ <ul class="wpz-insta_tabs-config-connect-accounts">
1680
+ <?php foreach ( $all_users as $user ) :
1681
+ $user_id = $user->ID;
1682
+ $user_name = sprintf( '@%s', get_the_title( $user ) );
1683
+ $user_type = ucwords( strtolower( esc_html( get_post_meta( $user_id, '_wpz-insta_account-type', true ) ?: $none_label ) ) );
1684
+ $raw_token = get_post_meta( $user_id, '_wpz-insta_token', true );
1685
+ $user_token = sanitize_text_field( false !== $raw_token && ! empty( $raw_token ) ? $raw_token : '-1' );
1686
+
1687
+ ?>
1688
+ <li data-user-id="<?php echo esc_attr( $user_id ); ?>" data-user-name="<?php echo esc_attr( $user_name ); ?>" data-user-type="<?php echo esc_attr( $user_type ); ?>" data-user-token="<?php echo esc_attr( $user_token ); ?>">
1689
+ <h3><?php echo $user_name; ?></h3>
1690
+ <p><?php echo $user_type; ?></p>
1691
+ </li>
1692
+ <?php endforeach; ?>
1693
+ </ul>
1694
+
1695
+ <hr/>
1696
+
1697
+ <h3 class="wpz-insta_tabs-config-connect-subtitle"><?php _e( 'Or add another account&hellip;', 'instagram-widget-by-wpzoom' ); ?></h3>
1698
+ <?php
1699
+ $new_user_link = admin_url( 'post-new.php?post_type=wpz-insta_user' );
1700
+ echo apply_filters(
1701
+ 'wpz-insta_select-user-add-button',
1702
+ '<a href="' . esc_url( $new_user_link ) . '" class="wpz-insta_tabs-config-connect-add button button-primary disabled">' . __( 'Add New Account', 'instagram-widget-by-wpzoom' ) . ' <small class="pro-only">' . __( 'PRO', 'instagram-widget-by-wpzoom' ) . '</small></a>',
1703
+ $new_user_link
1704
+ );
1705
+ ?>
1706
+ </div>
1707
+ </div>
1708
+ <?php
1709
+ }
1710
+ }
1711
+
1712
+ function enqueue_preview_scripts() {
1713
+ wp_enqueue_style(
1714
+ 'zoom-instagram-widget-preview',
1715
+ plugin_dir_url( dirname( __FILE__ ) . '/instagram-widget-by-wpzoom.php' ) . 'dist/styles/frontend/preview.css',
1716
+ array(),
1717
+ '2.0.0'
1718
+ );
1719
+
1720
+ wp_enqueue_script(
1721
+ 'zoom-instagram-widget-preview',
1722
+ plugin_dir_url( dirname( __FILE__ ) . '/instagram-widget-by-wpzoom.php' ) . 'dist/scripts/frontend/preview.js',
1723
+ array( 'jquery' ),
1724
+ '2.0.0',
1725
+ true
1726
+ );
1727
+ }
1728
+
1729
+ function preview_frame() {
1730
+ $display = Wpzoom_Instagram_Widget_Display::getInstance();
1731
+ $preview_args = self::get_clean_feed_settings_from_query();
1732
+ $preview_args['feed-id'] = get_the_ID();
1733
+
1734
+ printf( '<div class="zoom-new-instagram-widget">%s</div>', $display->get_preview( $preview_args ) );
1735
+ }
1736
+
1737
+ public function get_preview_frame() {
1738
+ ob_start();
1739
+ $this->preview_frame();
1740
+ return ob_get_clean();
1741
+ }
1742
+
1743
+ function replace_preview_content( $output ) {
1744
+ try {
1745
+ require_once( plugin_dir_path( __FILE__ ) . 'vendor/autoload.php' );
1746
+
1747
+ $document = new DiDom\Document( $output );
1748
+ $body_content = $document->find( 'body > *:not(script):not(link)' );
1749
+ $widget_document = new DiDom\Document( WPZOOM_Instagram_Widget_Settings::get_instance()->get_preview_frame() );
1750
+ $widget_content = $widget_document->find( '.zoom-new-instagram-widget' )[0];
1751
+
1752
+ foreach ( $body_content as $element ) {
1753
+ $element->remove();
1754
+ }
1755
+
1756
+ $document->find( 'body' )[0]->prependChild( $widget_content );
1757
+ $output = $document->html();
1758
+ } catch ( Exception $e ) {
1759
+ $output = __( 'Error rendering preview!', 'instagram-widget-by-wpzoom' );
1760
+ }
1761
+
1762
+ return $output;
1763
+ }
1764
+
1765
+ function page_header() {
1766
+ $current_page = get_current_screen()->id;
1767
+
1768
+ ?>
1769
+ <header class="wpz-insta-wrap wpz-insta_settings-header">
1770
+ <h1 class="wpz-insta_settings-main-title wp-heading">
1771
+ <?php
1772
+ echo apply_filters(
1773
+ 'wpz-insta_admin-header-title',
1774
+ sprintf(
1775
+ __( 'Instagram Widget <small>by <a href="%s" target="_blank" title="WPZOOM - WordPress themes with modern features and professional support">WPZOOM</a></small>', 'instagram-widget-by-wpzoom' ),
1776
+ esc_url( 'https://www.wpzoom.com/' )
1777
+ )
1778
+ );
1779
+ ?>
1780
+ </h1>
1781
+
1782
+ <nav class="wpz-insta_settings-main-nav">
1783
+ <ul>
1784
+ <?php
1785
+ $pages = apply_filters(
1786
+ 'wpzoom_instagram_settings_menu_items',
1787
+ array(
1788
+ 'edit-wpz-insta_feed' => array(
1789
+ 'name' => __( 'Feeds', 'instagram-widget-by-wpzoom' ),
1790
+ 'url' => admin_url( 'edit.php?post_type=wpz-insta_feed' ),
1791
+ ),
1792
+ 'edit-wpz-insta_user' => array(
1793
+ 'name' => __( 'Accounts', 'instagram-widget-by-wpzoom' ),
1794
+ 'url' => admin_url( 'edit.php?post_type=wpz-insta_user' ),
1795
+ ),
1796
+ 'wpz-insta_feed_page_wpzoom-instagram-support' => array(
1797
+ 'name' => __( 'Support', 'instagram-widget-by-wpzoom' ),
1798
+ 'url' => admin_url( 'edit.php?post_type=wpz-insta_feed&page=wpzoom-instagram-support' ),
1799
+ ),
1800
+ )
1801
+ );
1802
+
1803
+ foreach ( $pages as $id => $atts ) {
1804
+ printf(
1805
+ // translators: %1$s = possible class attribute, %2$s = page url, %3$s = page name.
1806
+ _x( '<li%1$s><a href="%2$s">%3$s</a></li>', 'Main menu page item', 'instagram-widget-by-wpzoom' ),
1807
+ ( $current_page === $id ? ' class="active"' : '' ),
1808
+ esc_url( $atts['url'] ),
1809
+ esc_html( $atts['name'] )
1810
+ );
1811
+ }
1812
+ ?>
1813
+ </ul>
1814
+ </nav>
1815
+ </header>
1816
+
1817
+ <div class="wpz-insta-notices">
1818
+ <?php
1819
+ if ( is_network_admin() ) {
1820
+ do_action( 'network_admin_notices' );
1821
+ } elseif ( is_user_admin() ) {
1822
+ do_action( 'user_admin_notices' );
1823
+ } else {
1824
+ do_action( 'admin_notices' );
1825
+ }
1826
+
1827
+ do_action( 'all_admin_notices' );
1828
+ ?>
1829
+ </div>
1830
+ <?php
1831
+ }
1832
+
1833
+ function page_footer() {
1834
+ $current_screen = get_current_screen();
1835
+
1836
+ $pro_toggle = apply_filters( 'wpz-insta_admin-pro-options-toggle', true );
1837
+
1838
+
1839
+ if ( 'toplevel_page_wpzoom-instagram' == $current_screen->id || 'wpz-insta_feed' == $current_screen->post_type || 'wpz-insta_user' == $current_screen->post_type || 'instagram_page_wpzoom-instagram-users' == $current_screen->id || 'wpz-insta_feed_page_wpzoom-instagram-support' == $current_screen->id || 'settings_page_wpz-insta-connect' == $current_screen->id ) {
1840
+ ?>
1841
+ <footer class="wpz-insta_settings-footer">
1842
+ <div class="wpz-insta_settings-footer-wrap">
1843
+ <h3 class="wpz-insta_settings-footer-logo"><a href="https://wpzoom.com/" target="_blank" title="<?php _e( 'WPZOOM - WordPress themes with modern features and professional support', 'instagram-widget-by-wpzoom' ); ?>"><?php _e( 'WPZOOM', 'instagram-widget-by-wpzoom' ); ?></a></h3>
1844
+
1845
+ <ul class="wpz-insta_settings-footer-links">
1846
+
1847
+ <?php if ( $pro_toggle ) : ?><li class="wpz-insta_settings-footer-links-themes"><a href="https://www.wpzoom.com/plugins/instagram-widget/?utm_campaign=liteplugin&utm_medium=footer-menu&utm_source=WordPress&utm_content=Upgrade+to+Pro" target="_blank" title="<?php _e( 'Get the PRO version', 'instagram-widget-by-wpzoom' ); ?>"><span style="color:#e4415f"><strong><?php _e( 'Get the PRO version', 'instagram-widget-by-wpzoom' ); ?></strong></span></a></li><?php endif; ?>
1848
+ <li class="wpz-insta_settings-footer-links-themes"><a href="https://www.wpzoom.com/themes/" target="_blank" title="<?php _e( 'Check out our themes', 'instagram-widget-by-wpzoom' ); ?>"><?php _e( 'Themes', 'instagram-widget-by-wpzoom' ); ?></a></li>
1849
+ <li class="wpz-insta_settings-footer-links-blog"><a href="https://www.wpzoom.com/blog/" target="_blank" title="<?php _e( 'See the latest updates on our blog', 'instagram-widget-by-wpzoom' ); ?>"><?php _e( 'Blog', 'instagram-widget-by-wpzoom' ); ?></a></li>
1850
+ <li class="wpz-insta_settings-footer-links-support"><a href="https://www.wpzoom.com/support/" target="_blank" title="<?php _e( 'Get support', 'instagram-widget-by-wpzoom' ); ?>"><?php _e( 'Support', 'instagram-widget-by-wpzoom' ); ?></a></li>
1851
+ </ul>
1852
+ </div>
1853
+ </footer>
1854
+
1855
+ <div id="wpz-insta_modal-dialog" class="success">
1856
+ <div class="wpz-insta_modal-dialog_wrap">
1857
+ <div class="wpz-insta_modal-dialog_header">
1858
+ <h4 class="wpz-insta_modal-dialog_header-title"><?php _e( 'You&rsquo;ve successfully connected your account!', 'instagram-widget-by-wpzoom' ); ?></h4>
1859
+ <span class="wpz-insta_modal-dialog_header-button wpz-insta_modal-dialog_close-button"><?php _e( 'Close', 'instagram-widget-by-wpzoom' ); ?></span>
1860
+ </div>
1861
+
1862
+ <div class="wpz-insta_modal-dialog_content">
1863
+ <?php _e( 'Your account is now connected. You can now add a feed and customize it on the next screens.', 'instagram-widget-by-wpzoom' ); ?>
1864
+ </div>
1865
+
1866
+ <div class="wpz-insta_modal-dialog_footer">
1867
+ <span class="wpz-insta_modal-dialog_footer-button wpz-insta_modal-dialog_ok-button button button-primary"><?php _e( 'OK', 'instagram-widget-by-wpzoom' ); ?></span>
1868
+ <span class="wpz-insta_modal-dialog_footer-button wpz-insta_modal-dialog_cancel-button button button-secondary hidden"><?php _e( 'Cancel', 'instagram-widget-by-wpzoom' ); ?></span>
1869
+ </div>
1870
+ </div>
1871
+ </div>
1872
+ <?php
1873
+ }
1874
+ }
1875
+
1876
+ public function views_filter( $views ) {
1877
+ $current_page = get_current_screen()->id;
1878
+
1879
+ $this->page_header();
1880
+ ?>
1881
+
1882
+ <div class="wpz-insta-wrap wpz-insta_settings-add-new">
1883
+ <?php
1884
+ if ( 'edit-wpz-insta_feed' == $current_page ) {
1885
+ echo '<a href="' . esc_url( admin_url( 'post-new.php?post_type=wpz-insta_feed' ) ) . '" class="button-primary">' . __( 'Add new feed', 'instagram-widget-by-wpzoom' ) . '</a>';
1886
+ } else {
1887
+ $connect_page = admin_url( 'options-general.php?page=wpz-insta-connect' );
1888
+
1889
+ echo apply_filters(
1890
+ 'wpz-insta_user-add-button',
1891
+ '<a href="' . esc_url( $connect_page ) . '" class="button-primary' . ( self::$any_users ? ' disabled' : '' ) . '">' . __( 'Connect a new Instagram account', 'instagram-widget-by-wpzoom' ) . ' ' . ( self::$any_users ? '<small class="pro-only">' . __( 'PRO', 'instagram-widget-by-wpzoom' ) . '</small>' : '' ) . '</a>',
1892
+ $connect_page,
1893
+ self::$any_users
1894
+ );
1895
+ }
1896
+ ?>
1897
+ </div>
1898
+ <?php
1899
+
1900
+ return array();
1901
+ }
1902
+
1903
  public function add_action_links( $links, $file ) {
1904
  if ( $file != plugin_basename( dirname( __FILE__ ) . '/instagram-widget-by-wpzoom.php' ) ) {
1905
  return $links;
1907
 
1908
  $settings_link = sprintf(
1909
  '<a href="%1$s">%2$s</a>',
1910
+ admin_url( 'edit.php?post_type=wpz-insta_feed' ),
1911
+ esc_html__( 'Manage Feeds', 'instagram-widget-by-wpzoom' )
1912
  );
1913
 
1914
  array_unshift( $links, $settings_link );
1916
  return $links;
1917
  }
1918
 
1919
+ public function ajax_connect_user() {
1920
+ if ( isset( $_POST['nonce'] ) && wp_verify_nonce( $_POST['nonce'], 'ajax-nonce' ) && isset( $_POST['token'] ) && ! empty( $_POST['token'] ) ) {
1921
+ $token = sanitize_text_field( $_POST['token'] );
1922
+
1923
+ if ( ! empty( $token ) ) {
1924
+ $info = Wpzoom_Instagram_Widget_API::get_basic_user_info_from_token( $token );
1925
+
1926
+ if ( false !== $info && is_object( $info ) && property_exists( $info, 'username' ) && property_exists( $info, 'account_type' ) ) {
1927
+ if ( isset( $_POST['post_id'] ) && intval( $_POST['post_id'] ) > 0 ) {
1928
+ $post_id = intval( $_POST['post_id'] );
1929
+
1930
+ if ( false !== get_post_status( $post_id ) ) {
1931
+ update_post_meta( $post_id, '_wpz-insta_token', $token );
1932
+ update_post_meta( $post_id, '_wpz-insta_token_expire', strtotime( '+60 days' ) );
1933
+
1934
+ wp_send_json_success( array( 'update' => true ), 200 );
1935
+ }
1936
+ } else {
1937
+ $user = wp_strip_all_tags( $info->username );
1938
+ $insert_post = wp_insert_post( array(
1939
+ 'post_title' => $user,
1940
+ 'post_type' => 'wpz-insta_user',
1941
+ 'post_status' => 'publish',
1942
+ ), true );
1943
+
1944
+ if ( ! is_wp_error( $insert_post ) ) {
1945
+ update_post_meta( $insert_post, '_wpz-insta_token', $token );
1946
+ update_post_meta( $insert_post, '_wpz-insta_token_expire', strtotime( '+60 days' ) );
1947
+ update_post_meta( $insert_post, '_wpz-insta_account-type', sanitize_text_field( $info->account_type ) );
1948
+
1949
+ if ( property_exists( $info, 'profile_picture' ) && ! empty( $info->profile_picture ) ) {
1950
+ $this->generate_featured_image( $info->profile_picture, $insert_post, $user );
1951
+ }
1952
+
1953
+ wp_send_json_success( array( 'update' => false ), 200 );
1954
+ }
1955
+ }
1956
+ }
1957
+ }
1958
+ }
1959
+
1960
+ wp_send_json_error( null, 500 );
1961
+ }
1962
+
1963
+ public function ajax_inline_save() {
1964
+ if ( isset( $_POST['action'] ) && 'inline-save' == $_POST['action'] && isset( $_POST['post_ID'] ) && isset( $_POST['post_type'] ) && 'wpz-insta_user' == $_POST['post_type'] ) {
1965
+ $post = get_post( $_POST['post_ID'] );
1966
+
1967
+ if ( null !== $post ) {
1968
+ $_POST['ID'] = $_POST['post_ID'];
1969
+ $_POST['post_title'] = isset( $post->post_title ) ? $post->post_title : '';
1970
+ $_POST['post_content'] = isset( $_POST['_wpz-insta_user-bio'] ) ? $_POST['_wpz-insta_user-bio'] : '';
1971
+ $_POST['content'] = isset( $_POST['_wpz-insta_user-bio'] ) ? $_POST['_wpz-insta_user-bio'] : '';
1972
+
1973
+ if ( isset( $post->post_date ) ) {
1974
+ $_POST['jj'] = mysql2date( 'd', $post->post_date, false );
1975
+ $_POST['mm'] = mysql2date( 'm', $post->post_date, false );
1976
+ $_POST['aa'] = mysql2date( 'Y', $post->post_date, false );
1977
+ $_POST['hh'] = mysql2date( 'H', $post->post_date, false );
1978
+ $_POST['mn'] = mysql2date( 'i', $post->post_date, false );
1979
+ $_POST['ss'] = mysql2date( 's', $post->post_date, false );
1980
+ }
1981
+ }
1982
+ }
1983
+ }
1984
+
1985
+ function insert_post_data( array $post ) {
1986
+ if ( isset( $_POST['action'] ) && 'inline-save' == $_POST['action'] && isset( $_POST['post_type'] ) && 'wpz-insta_user' == $_POST['post_type'] ) {
1987
+ $post['post_content'] = isset( $_POST['_wpz-insta_user-bio'] ) ? sanitize_post_field( 'post_content', $_POST['_wpz-insta_user-bio'], $post['ID'], 'db' ) : '';
1988
+ }
1989
+
1990
+ if ( 'wpz-insta_feed' == $post['post_type'] && 'draft' == $post['post_status'] ) {
1991
+ $post['post_status'] = 'publish';
1992
+ }
1993
+
1994
+ return $post;
1995
+ }
1996
+
1997
+ public function save_feed( int $post_ID, WP_Post $post, bool $update ) {
1998
+ if ( ! wp_is_post_revision( $post ) && ! wp_is_post_autosave( $post ) && 'auto-draft' != get_post_status( $post ) && isset( $_POST ) && ! empty( $_POST ) ) {
1999
+ $meta_keys = get_registered_meta_keys( 'post', 'wpz-insta_feed' );
2000
+
2001
+ if ( ! empty( $meta_keys ) ) {
2002
+ $meta_keys = array_filter( $meta_keys, function( $key ) { return strpos( $key, 'wpz-insta_' ) !== false; }, ARRAY_FILTER_USE_KEY );
2003
+
2004
+ foreach ( $meta_keys as $key => $args ) {
2005
+ if ( isset( $_POST[ $key ] ) ) {
2006
+ $value = wp_unslash( $_POST[ $key ] );
2007
+
2008
+ switch ( $args['type'] ) {
2009
+ case 'integer':
2010
+ $value = intval( $value );
2011
+ break;
2012
+
2013
+ case 'boolean':
2014
+ $value = boolval( $value ) ? '1' : '0';
2015
+ break;
2016
+
2017
+ default:
2018
+ $value = sanitize_textarea_field( $value );
2019
+ break;
2020
+ }
2021
+
2022
+ update_post_meta( $post_ID, $key, $value );
2023
+ } else {
2024
+ update_post_meta( $post_ID, $key, $args['default'] );
2025
+ }
2026
+ }
2027
+ }
2028
+
2029
+ if ( metadata_exists( 'post', $post_ID, '_wpz-insta_feed_is_duplicate' ) ) {
2030
+ delete_post_meta( $post_ID, '_wpz-insta_feed_is_duplicate' );
2031
+ }
2032
+
2033
+ $user_id = (int) self::get_feed_setting_value( $post_ID, 'user-id' );
2034
+ $raw_token = get_post_meta( $user_id, '_wpz-insta_token', true );
2035
+ $user_account_token = false !== $raw_token && ! empty( $raw_token ) ? $raw_token : '-1';
2036
+ if ( '-1' !== $user_account_token ) {
2037
+ delete_transient( 'zoom_instagram_is_configured_' . $user_account_token );
2038
+ }
2039
+
2040
+ }
2041
+ }
2042
+
2043
+ public function save_user( int $post_ID, WP_Post $post, bool $update ) {
2044
+ if ( ! wp_is_post_revision( $post ) && ! wp_is_post_autosave( $post ) && 'auto-draft' != get_post_status( $post ) && isset( $_POST ) && ! empty( $_POST ) ) {
2045
+ $meta_keys = get_registered_meta_keys( 'post', 'wpz-insta_user' );
2046
+
2047
+ if ( ! empty( $meta_keys ) ) {
2048
+ $meta_keys = array_filter( $meta_keys, function( $key ) { return strpos( $key, 'wpz-insta_' ) !== false; }, ARRAY_FILTER_USE_KEY );
2049
+
2050
+ foreach ( $meta_keys as $key => $args ) {
2051
+ if ( isset( $_POST[ $key ] ) ) {
2052
+ $value = wp_unslash( $_POST[ $key ] );
2053
+
2054
+ switch ( $args['type'] ) {
2055
+ case 'integer':
2056
+ $value = intval( $value );
2057
+ break;
2058
+
2059
+ case 'boolean':
2060
+ $value = boolval( $value );
2061
+ break;
2062
+
2063
+ default:
2064
+ $value = sanitize_textarea_field( $value );
2065
+ break;
2066
+ }
2067
+
2068
+ update_post_meta( $post_ID, $key, $value );
2069
+ } elseif ( 'inline-save' != $_POST['action'] ) {
2070
+ update_post_meta( $post_ID, $key, $args['default'] );
2071
+ }
2072
+ }
2073
+ }
2074
+
2075
+ if ( isset( $_POST['_thumbnail_id'] ) ) {
2076
+ set_post_thumbnail( $post_ID, absint( $_POST['_thumbnail_id'] ) );
2077
+ }
2078
+ }
2079
+ }
2080
+
2081
+ public function after_insert_post( $post_id, $post, $update, $post_before ) {
2082
+ if ( 'wpz-insta_feed' == $post->post_type && 'publish' == $post->post_status && null != $post_before && 'auto-draft' == $post_before->post_status &&
2083
+ ! metadata_exists( 'user', get_current_user_id(), 'wpzinsta-pointer-feed-embed' ) ) {
2084
+ add_user_meta( get_current_user_id(), 'wpzinsta-pointer-feed-embed', true );
2085
+ }
2086
+ }
2087
+
2088
+ public function generate_featured_image( $file, $post_id, $desc ) {
2089
+ $file = esc_url_raw( trim( $file ) );
2090
+ preg_match( '/[^\?]+\.(jpe?g|jpe|gif|png)\b/i', $file, $matches );
2091
+
2092
+ if ( ! $matches ) {
2093
+ return false;
2094
+ }
2095
+
2096
+ $file_array = array();
2097
+ $file_array['name'] = basename( $matches[0] );
2098
+ $file_array['tmp_name'] = download_url( $file );
2099
+
2100
+ if ( is_wp_error( $file_array['tmp_name'] ) ) {
2101
+ return false;
2102
+ }
2103
+
2104
+ $id = media_handle_sideload( $file_array, $post_id, $desc );
2105
+
2106
+ if ( is_wp_error( $id ) ) {
2107
+ @unlink( $file_array['tmp_name'] );
2108
+ return $id;
2109
+ }
2110
+
2111
+ return set_post_thumbnail( $post_id, $id );
2112
+ }
2113
+
2114
  public function add_admin_menu() {
2115
+ global $submenu;
2116
+
2117
+ $pro_toggle = apply_filters( 'wpz-insta_admin-pro-options-toggle', true );
2118
+
2119
+
2120
+ add_submenu_page(
2121
+ 'edit.php?post_type=wpz-insta_feed',
2122
+ esc_html__( 'Support', 'instagram-widget-by-wpzoom' ),
2123
+ esc_html__( 'Support', 'instagram-widget-by-wpzoom' ),
2124
  'manage_options',
2125
+ 'wpzoom-instagram-support',
2126
+ array( $this, 'support_page' )
2127
  );
2128
+
2129
+
2130
+ if ($pro_toggle) {
2131
+ add_submenu_page(
2132
+ 'edit.php?post_type=wpz-insta_feed',
2133
+ esc_html__( 'Upgrade to Pro &rarr;', 'wpforms-lite' ),
2134
+ '<span style="color:#e4415f">' . esc_html__( 'Upgrade to Pro &rarr;', 'instagram-widget-by-wpzoom' ) . '</span>',
2135
+ 'manage_options',
2136
+ esc_url( 'https://www.wpzoom.com/plugins/instagram-widget/?utm_campaign=liteplugin&utm_medium=admin-menu&utm_source=WordPress&utm_content=Upgrade+to+Pro' )
2137
+ );
2138
+ }
2139
+ unset( $submenu['edit.php?post_type=wpz-insta_feed'][10] );
2140
  }
2141
 
2142
  public function settings_init() {
2276
  'redirect_uri' => 'https://wpzoom.com/instagram-auth/',
2277
  'scope' => 'user_profile,user_media',
2278
  'response_type' => 'code',
2279
+ 'state' => base64_encode( urlencode( admin_url( 'edit.php?post_type=wpz-insta_user' ) ) ),
2280
  ),
2281
  'https://api.instagram.com/oauth/authorize'
2282
  );
 
2283
  ?>
2284
 
2285
  <p class="description"><?php _e( 'Using this method, you will be prompted to authorize the plugin to access your Instagram photos. The widget will automatically display the latest photos of the account which was authorized on this page.', 'instagram-widget-by-wpzoom' ); ?></p>
2493
  <?php
2494
  }
2495
 
2496
+ public function connect_page() {
2497
+ $oauth_url = add_query_arg(
2498
+ array(
2499
+ 'client_id' => '1242932982579434',
2500
+ 'redirect_uri' => 'https://wpzoom.com/instagram-auth/',
2501
+ 'scope' => 'user_profile,user_media',
2502
+ 'response_type' => 'code',
2503
+ 'state' => base64_encode( urlencode( admin_url( 'edit.php?post_type=wpz-insta_feed' ) ) ),
2504
+ ),
2505
+ 'https://api.instagram.com/oauth/authorize'
2506
+ );
2507
 
2508
+ ?>
2509
  <div class="wrap">
2510
+ <header class="wpz-insta-wrap wpz-insta_settings-header">
2511
+ <h1 class="wpz-insta_settings-main-title wp-heading">
 
 
 
 
 
 
 
 
 
2512
  <?php
2513
+ printf(
2514
+ __( 'Instagram Widget <small>by <a href="%s" target="_blank" title="WPZOOM - WordPress themes with modern features and professional support">WPZOOM</a></small>', 'instagram-widget-by-wpzoom' ),
2515
+ esc_url( 'https://wpzoom.com' )
2516
+ );
2517
  ?>
2518
+ </h1>
2519
+
2520
+ <h2 class="wpz-insta_settings-sub-title wp-heading"><?php _e( 'Connect account', 'instagram-widget-by-wpzoom' ); ?></h2>
2521
+ </header>
2522
+
2523
+ <div class="wpz-insta-wrap wpz-insta_settings-connect">
2524
+ <h3 class="section-title"><?php _e( 'Let&rsquo;s connect your Instagram account', 'instagram-widget-by-wpzoom' ); ?></h3>
2525
+ <p class="section-description"><?php _e( 'Are you connecting a Personal or Business Instagram Profile?', 'instagram-widget-by-wpzoom' ); ?></p>
2526
+
2527
+ <div class="account-options">
2528
+ <div class="account-option account-option_personal">
2529
+ <h4 class="account-option-title"><?php _e( 'Personal account', 'instagram-widget-by-wpzoom' ); ?></h4>
2530
+
2531
+ <ul class="account-option-checklist">
2532
+ <li><?php _e( 'Connects directly through Instagram', 'instagram-widget-by-wpzoom' ); ?></li>
2533
+ <li><?php _e( 'Show posts from your account', 'instagram-widget-by-wpzoom' ); ?></li>
2534
+ </ul>
2535
+
2536
+ <a href="<?php echo esc_url( $oauth_url ); ?>" id="wpz-insta_connect-personal" class="button button-primary account-option-button">
2537
+ <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
2538
+ <path d="M15.9582 4.70406C15.9208 3.85391 15.7833 3.26945 15.5863 2.763C15.3832 2.22542 15.0706 1.74412 14.6611 1.34402C14.261 0.937686 13.7765 0.62195 13.2452 0.421959C12.7358 0.22502 12.1544 0.0875418 11.3042 0.0500587C10.4478 0.00940127 10.1758 0 8.00354 0C5.83123 0 5.55933 0.00940127 4.70601 0.0468843C3.85587 0.0843673 3.2714 0.221968 2.76507 0.418784C2.22737 0.62195 1.74607 0.934512 1.34597 1.34402C0.939639 1.74412 0.624025 2.22859 0.423912 2.75995C0.226973 3.26945 0.0894949 3.85074 0.0520119 4.70088C0.0113544 5.55738 0.00195312 5.82928 0.00195312 8.00159C0.00195312 10.1739 0.0113544 10.4458 0.0488374 11.2991C0.0863205 12.1493 0.223921 12.7337 0.420859 13.2402C0.624025 13.7778 0.939639 14.2591 1.34597 14.6592C1.74607 15.0655 2.23054 15.3812 2.7619 15.5812C3.2714 15.7782 3.85269 15.9156 4.70296 15.9531C5.55616 15.9907 5.82818 16 8.00049 16C10.1728 16 10.4447 15.9907 11.298 15.9531C12.1482 15.9156 12.7326 15.7782 13.239 15.5812C14.3142 15.1655 15.1644 14.3153 15.5801 13.2402C15.7769 12.7307 15.9145 12.1493 15.952 11.2991C15.9895 10.4458 15.9989 10.1739 15.9989 8.00159C15.9989 5.82928 15.9957 5.55738 15.9582 4.70406ZM14.5174 11.2366C14.483 12.018 14.3517 12.44 14.2423 12.7213C13.9735 13.4183 13.4203 13.9715 12.7232 14.2404C12.4419 14.3498 12.0169 14.481 11.2386 14.5153C10.3946 14.5529 10.1415 14.5622 8.00671 14.5622C5.87189 14.5622 5.61562 14.5529 4.77475 14.5153C3.99335 14.481 3.57139 14.3498 3.29008 14.2404C2.94321 14.1122 2.62747 13.909 2.3712 13.6433C2.10552 13.3839 1.90235 13.0713 1.77416 12.7244C1.66476 12.4431 1.53351 12.018 1.4992 11.2398C1.46159 10.3959 1.45231 10.1426 1.45231 8.00781C1.45231 5.87299 1.46159 5.61671 1.4992 4.77597C1.53351 3.99457 1.66476 3.57261 1.77416 3.2913C1.90235 2.94431 2.10552 2.6287 2.37437 2.3723C2.6337 2.10662 2.94626 1.90345 3.29326 1.77538C3.57456 1.66598 3.99969 1.53473 4.77792 1.5003C5.62184 1.46281 5.87507 1.45341 8.00977 1.45341C10.1478 1.45341 10.4009 1.46281 11.2417 1.5003C12.0231 1.53473 12.4451 1.66598 12.7264 1.77538C13.0733 1.90345 13.389 2.10662 13.6453 2.3723C13.911 2.63175 14.1141 2.94431 14.2423 3.2913C14.3517 3.57261 14.483 3.99762 14.5174 4.77597C14.5549 5.61989 14.5643 5.87299 14.5643 8.00781C14.5643 10.1426 14.5549 10.3927 14.5174 11.2366Z" fill="#fff" />
2539
+ <path d="M8.00375 3.89062C5.73462 3.89062 3.89355 5.73157 3.89355 8.00082C3.89355 10.2701 5.73462 12.111 8.00375 12.111C10.273 12.111 12.1139 10.2701 12.1139 8.00082C12.1139 5.73157 10.273 3.89062 8.00375 3.89062ZM8.00375 10.667C6.53165 10.667 5.33757 9.47303 5.33757 8.00082C5.33757 6.5286 6.53165 5.33464 8.00375 5.33464C9.47596 5.33464 10.6699 6.5286 10.6699 8.00082C10.6699 9.47303 9.47596 10.667 8.00375 10.667Z" fill="#fff" />
2540
+ <path d="M13.2356 3.72907C13.2356 4.25896 12.806 4.68861 12.2759 4.68861C11.7461 4.68861 11.3164 4.25896 11.3164 3.72907C11.3164 3.19906 11.7461 2.76953 12.2759 2.76953C12.806 2.76953 13.2356 3.19906 13.2356 3.72907Z" fill="#fff" />
2541
+ </svg>
2542
+
2543
+ <?php _e( 'Connect your Instagram account', 'instagram-widget-by-wpzoom' ); ?>
2544
+ </a>
2545
+ </div>
2546
+
2547
+ <div class="account-option account-option_business">
2548
+ <h4 class="account-option-title"><?php _e( 'Business account', 'instagram-widget-by-wpzoom' ); ?></h4>
2549
+
2550
+ <ul class="account-option-checklist">
2551
+ <li><?php _e( 'Connects through your Facebook page', 'instagram-widget-by-wpzoom' ); ?></li>
2552
+ <li><?php _e( 'Show posts from your account', 'instagram-widget-by-wpzoom' ); ?></li>
2553
+ <li><?php _e( 'Show posts where you are tagged <small><em>Coming Soon</em></small>', 'instagram-widget-by-wpzoom' ); ?></li>
2554
+ <li><?php _e( 'Show posts with a specific hashtag <small><em>Coming Soon</em></small>', 'instagram-widget-by-wpzoom' ); ?></li>
2555
+ </ul>
2556
+
2557
+ <a href="<?php echo esc_url( $oauth_url ); ?>" id="wpz-insta_connect-business" class="button button-primary account-option-button">
2558
+ <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
2559
+ <path d="M15.9582 4.70406C15.9208 3.85391 15.7833 3.26945 15.5863 2.763C15.3832 2.22542 15.0706 1.74412 14.6611 1.34402C14.261 0.937686 13.7765 0.62195 13.2452 0.421959C12.7358 0.22502 12.1544 0.0875418 11.3042 0.0500587C10.4478 0.00940127 10.1758 0 8.00354 0C5.83123 0 5.55933 0.00940127 4.70601 0.0468843C3.85587 0.0843673 3.2714 0.221968 2.76507 0.418784C2.22737 0.62195 1.74607 0.934512 1.34597 1.34402C0.939639 1.74412 0.624025 2.22859 0.423912 2.75995C0.226973 3.26945 0.0894949 3.85074 0.0520119 4.70088C0.0113544 5.55738 0.00195312 5.82928 0.00195312 8.00159C0.00195312 10.1739 0.0113544 10.4458 0.0488374 11.2991C0.0863205 12.1493 0.223921 12.7337 0.420859 13.2402C0.624025 13.7778 0.939639 14.2591 1.34597 14.6592C1.74607 15.0655 2.23054 15.3812 2.7619 15.5812C3.2714 15.7782 3.85269 15.9156 4.70296 15.9531C5.55616 15.9907 5.82818 16 8.00049 16C10.1728 16 10.4447 15.9907 11.298 15.9531C12.1482 15.9156 12.7326 15.7782 13.239 15.5812C14.3142 15.1655 15.1644 14.3153 15.5801 13.2402C15.7769 12.7307 15.9145 12.1493 15.952 11.2991C15.9895 10.4458 15.9989 10.1739 15.9989 8.00159C15.9989 5.82928 15.9957 5.55738 15.9582 4.70406ZM14.5174 11.2366C14.483 12.018 14.3517 12.44 14.2423 12.7213C13.9735 13.4183 13.4203 13.9715 12.7232 14.2404C12.4419 14.3498 12.0169 14.481 11.2386 14.5153C10.3946 14.5529 10.1415 14.5622 8.00671 14.5622C5.87189 14.5622 5.61562 14.5529 4.77475 14.5153C3.99335 14.481 3.57139 14.3498 3.29008 14.2404C2.94321 14.1122 2.62747 13.909 2.3712 13.6433C2.10552 13.3839 1.90235 13.0713 1.77416 12.7244C1.66476 12.4431 1.53351 12.018 1.4992 11.2398C1.46159 10.3959 1.45231 10.1426 1.45231 8.00781C1.45231 5.87299 1.46159 5.61671 1.4992 4.77597C1.53351 3.99457 1.66476 3.57261 1.77416 3.2913C1.90235 2.94431 2.10552 2.6287 2.37437 2.3723C2.6337 2.10662 2.94626 1.90345 3.29326 1.77538C3.57456 1.66598 3.99969 1.53473 4.77792 1.5003C5.62184 1.46281 5.87507 1.45341 8.00977 1.45341C10.1478 1.45341 10.4009 1.46281 11.2417 1.5003C12.0231 1.53473 12.4451 1.66598 12.7264 1.77538C13.0733 1.90345 13.389 2.10662 13.6453 2.3723C13.911 2.63175 14.1141 2.94431 14.2423 3.2913C14.3517 3.57261 14.483 3.99762 14.5174 4.77597C14.5549 5.61989 14.5643 5.87299 14.5643 8.00781C14.5643 10.1426 14.5549 10.3927 14.5174 11.2366Z" fill="#fff" />
2560
+ <path d="M8.00375 3.89062C5.73462 3.89062 3.89355 5.73157 3.89355 8.00082C3.89355 10.2701 5.73462 12.111 8.00375 12.111C10.273 12.111 12.1139 10.2701 12.1139 8.00082C12.1139 5.73157 10.273 3.89062 8.00375 3.89062ZM8.00375 10.667C6.53165 10.667 5.33757 9.47303 5.33757 8.00082C5.33757 6.5286 6.53165 5.33464 8.00375 5.33464C9.47596 5.33464 10.6699 6.5286 10.6699 8.00082C10.6699 9.47303 9.47596 10.667 8.00375 10.667Z" fill="#fff" />
2561
+ <path d="M13.2356 3.72907C13.2356 4.25896 12.806 4.68861 12.2759 4.68861C11.7461 4.68861 11.3164 4.25896 11.3164 3.72907C11.3164 3.19906 11.7461 2.76953 12.2759 2.76953C12.806 2.76953 13.2356 3.19906 13.2356 3.72907Z" fill="#fff" />
2562
+ </svg>
2563
+
2564
+ <?php _e( 'Connect your Instagram account', 'instagram-widget-by-wpzoom' ); ?>
2565
+ </a>
2566
+ </div>
2567
+
2568
+ <div class="account-option account-option_token">
2569
+ <h4 class="account-option-title"><?php _e( 'Connect without a login', 'instagram-widget-by-wpzoom' ); ?></h4>
2570
+
2571
+ <input type="text" id="wpz-insta_account-token-input" name="wpz-insta_account-token-input" value="<?php echo isset( $settings['basic-access-token'] ) && ! empty( $settings['basic-access-token'] ) ? esc_attr( $settings['basic-access-token'] ) : ''; ?>" class="account-option-token-input" placeholder="<?php _e( 'Facebook/Instagram access token', 'instagram-widget-by-wpzoom' ); ?>" />
2572
+
2573
+ <button id="wpz-insta_account-token-button" class="account-option-button disabled">
2574
+ <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
2575
+ <path d="M15.9582 4.70406C15.9208 3.85391 15.7833 3.26945 15.5863 2.763C15.3832 2.22542 15.0706 1.74412 14.6611 1.34402C14.261 0.937686 13.7765 0.62195 13.2452 0.421959C12.7358 0.22502 12.1544 0.0875418 11.3042 0.0500587C10.4478 0.00940127 10.1758 0 8.00354 0C5.83123 0 5.55933 0.00940127 4.70601 0.0468843C3.85587 0.0843673 3.2714 0.221968 2.76507 0.418784C2.22737 0.62195 1.74607 0.934512 1.34597 1.34402C0.939639 1.74412 0.624025 2.22859 0.423912 2.75995C0.226973 3.26945 0.0894949 3.85074 0.0520119 4.70088C0.0113544 5.55738 0.00195312 5.82928 0.00195312 8.00159C0.00195312 10.1739 0.0113544 10.4458 0.0488374 11.2991C0.0863205 12.1493 0.223921 12.7337 0.420859 13.2402C0.624025 13.7778 0.939639 14.2591 1.34597 14.6592C1.74607 15.0655 2.23054 15.3812 2.7619 15.5812C3.2714 15.7782 3.85269 15.9156 4.70296 15.9531C5.55616 15.9907 5.82818 16 8.00049 16C10.1728 16 10.4447 15.9907 11.298 15.9531C12.1482 15.9156 12.7326 15.7782 13.239 15.5812C14.3142 15.1655 15.1644 14.3153 15.5801 13.2402C15.7769 12.7307 15.9145 12.1493 15.952 11.2991C15.9895 10.4458 15.9989 10.1739 15.9989 8.00159C15.9989 5.82928 15.9957 5.55738 15.9582 4.70406ZM14.5174 11.2366C14.483 12.018 14.3517 12.44 14.2423 12.7213C13.9735 13.4183 13.4203 13.9715 12.7232 14.2404C12.4419 14.3498 12.0169 14.481 11.2386 14.5153C10.3946 14.5529 10.1415 14.5622 8.00671 14.5622C5.87189 14.5622 5.61562 14.5529 4.77475 14.5153C3.99335 14.481 3.57139 14.3498 3.29008 14.2404C2.94321 14.1122 2.62747 13.909 2.3712 13.6433C2.10552 13.3839 1.90235 13.0713 1.77416 12.7244C1.66476 12.4431 1.53351 12.018 1.4992 11.2398C1.46159 10.3959 1.45231 10.1426 1.45231 8.00781C1.45231 5.87299 1.46159 5.61671 1.4992 4.77597C1.53351 3.99457 1.66476 3.57261 1.77416 3.2913C1.90235 2.94431 2.10552 2.6287 2.37437 2.3723C2.6337 2.10662 2.94626 1.90345 3.29326 1.77538C3.57456 1.66598 3.99969 1.53473 4.77792 1.5003C5.62184 1.46281 5.87507 1.45341 8.00977 1.45341C10.1478 1.45341 10.4009 1.46281 11.2417 1.5003C12.0231 1.53473 12.4451 1.66598 12.7264 1.77538C13.0733 1.90345 13.389 2.10662 13.6453 2.3723C13.911 2.63175 14.1141 2.94431 14.2423 3.2913C14.3517 3.57261 14.483 3.99762 14.5174 4.77597C14.5549 5.61989 14.5643 5.87299 14.5643 8.00781C14.5643 10.1426 14.5549 10.3927 14.5174 11.2366Z" fill="#fff" />
2576
+ <path d="M8.00375 3.89062C5.73462 3.89062 3.89355 5.73157 3.89355 8.00082C3.89355 10.2701 5.73462 12.111 8.00375 12.111C10.273 12.111 12.1139 10.2701 12.1139 8.00082C12.1139 5.73157 10.273 3.89062 8.00375 3.89062ZM8.00375 10.667C6.53165 10.667 5.33757 9.47303 5.33757 8.00082C5.33757 6.5286 6.53165 5.33464 8.00375 5.33464C9.47596 5.33464 10.6699 6.5286 10.6699 8.00082C10.6699 9.47303 9.47596 10.667 8.00375 10.667Z" fill="#fff" />
2577
+ <path d="M13.2356 3.72907C13.2356 4.25896 12.806 4.68861 12.2759 4.68861C11.7461 4.68861 11.3164 4.25896 11.3164 3.72907C11.3164 3.19906 11.7461 2.76953 12.2759 2.76953C12.806 2.76953 13.2356 3.19906 13.2356 3.72907Z" fill="#fff" />
2578
+ </svg>
2579
+
2580
+ <?php _e( 'Connect', 'instagram-widget-by-wpzoom' ); ?>
2581
+ </button>
2582
+ </div>
2583
+ </div>
2584
+
2585
+ <p class="section-notice">
2586
+ <svg width="14" height="14" viewBox="0 0 14 14" xmlns="http://www.w3.org/2000/svg">
2587
+ <path d="M6.3 3.5H7.7V4.9H6.3V3.5ZM6.3 6.3H7.7V10.5H6.3V6.3ZM7 0C3.136 0 0 3.136 0 7C0 10.864 3.136 14 7 14C10.864 14 14 10.864 14 7C14 3.136 10.864 0 7 0ZM7 12.6C3.913 12.6 1.4 10.087 1.4 7C1.4 3.913 3.913 1.4 7 1.4C10.087 1.4 12.6 3.913 12.6 7C12.6 10.087 10.087 12.6 7 12.6Z" />
2588
+ </svg>
2589
+
2590
+ <?php _e( 'Instagram Graph API for Business & Creator accounts will be soon available! This API integration will allow you to show posts with a specific tag or posts you\'re tagged in.', 'instagram-widget-by-wpzoom' ); ?>
2591
+ </p>
2592
  </div>
2593
+ </div>
2594
+ <?php
2595
+ }
2596
 
2597
+ public function support_page() {
2598
+ ?>
2599
+ <div class="wrap">
2600
+ <?php $this->page_header(); ?>
2601
 
2602
+ <div class="wpz-insta-wrap wpz-insta_settings-support">
2603
+ <h2 class="section-title">
2604
+ <svg width="24" height="24" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
2605
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M15.9216 2H2.98533C2.43803 2 1.99023 2.45 1.99023 3V17L5.97062 13H15.9216C16.4689 13 16.9167 12.55 16.9167 12V3C16.9167 2.45 16.4689 2 15.9216 2ZM14.9265 4V11H5.14473L3.98047 12.17V4H14.9265ZM18.9068 6H20.897C21.4443 6 21.8921 6.45 21.8921 7V22L17.9117 18H6.96568C6.41837 18 5.97058 17.55 5.97058 17V15H18.9068V6Z"/>
2606
+ </svg>
2607
 
2608
+ <?php _e( 'Need assistance?', 'instagram-widget-by-wpzoom' ); ?>
2609
+ </h2>
2610
 
2611
+ <p class="section-description"><?php _e( 'Need help setting up your Instagram feeds or have a question? Get in touch with our Support Team.<br/> We’d love the opportunity to help you.', 'instagram-widget-by-wpzoom' ); ?></p>
2612
 
2613
+ <a href="<?php echo esc_url( 'https://www.wpzoom.com/documentation/instagram-widget/' ); ?>" target="_blank" class="button-primary"><?php _e( 'Documentation', 'instagram-widget-by-wpzoom' ); ?></a>
2614
+ <a href="<?php echo esc_url( 'https://wpzoom.com/support/tickets/' ); ?>" target="_blank" class="button-primary"><?php _e( 'Open Support Desk', 'instagram-widget-by-wpzoom' ); ?></a>
2615
  </div>
 
2616
  </div>
 
2617
  <?php
2618
  }
2619
 
2620
+ public function update_footer( $content ) {
2621
+ if ( self::is_wpzinsta_screen() ) {
2622
+ $content = apply_filters( 'wpz-insta_admin-footer-version', sprintf(
2623
+ __( '<strong>WPZOOM Instagram:</strong> v%s&ensp;|&ensp;<strong>WordPress:</strong> %s', 'instagram-widget-by-wpzoom' ),
2624
+ WPZOOM_INSTAGRAM_VERSION,
2625
+ str_ireplace( __( 'Version ', 'instagram-widget-by-wpzoom' ), __( 'v', 'instagram-widget-by-wpzoom' ), $content )
2626
+ ) );
2627
+ }
2628
+
2629
+ return $content;
2630
+ }
2631
+
2632
+ public function admin_footer_text( $text ) {
2633
+ if ( self::is_wpzinsta_screen() ) {
2634
+ $text = preg_replace( '/\.\s*\<\/span\>$/is', '', trim( $text ) );
2635
+ $text .= apply_filters( 'wpz-insta_admin-footer-thanks', sprintf(
2636
+ __( ', and using the <a href="%s" target="_blank">Instagram Widget by WPZOOM</a>.</span>', 'instagram-widget-by-wpzoom' ),
2637
+ esc_url( 'https://www.wpzoom.com/plugins/instagram-widget/' )
2638
+ ) );
2639
+ }
2640
+
2641
+ return $text;
2642
+ }
2643
+
2644
  public function scripts( $hook ) {
2645
+ if ( self::is_wpzinsta_screen() ) {
2646
+ wp_enqueue_media();
2647
+ wp_enqueue_style( 'wp-color-picker' );
2648
+ wp_enqueue_style( 'zoom-instagram-widget-admin', plugin_dir_url( dirname( __FILE__ ) . '/instagram-widget-by-wpzoom.php' ) . 'dist/styles/backend/index.css', array( 'wp-color-picker' ), '1.7.3' );
2649
+ wp_enqueue_script( 'zoom-instagram-widget-admin', plugin_dir_url( dirname( __FILE__ ) . '/instagram-widget-by-wpzoom.php' ) . 'dist/scripts/backend/index.js', array( 'jquery', 'wp-color-picker' ), '1.7.3' );
2650
+ wp_localize_script(
2651
+ 'zoom-instagram-widget-admin',
2652
+ 'zoom_instagram_widget_admin',
2653
+ array(
2654
+ 'i18n_connect_confirm' => __( "Instagram Widget is already connected to Instagram.\r\n\r\nDo you want to connect again?", 'instagram-widget-by-wpzoom' ),
2655
+ 'i18n_connect_success_title' => __( 'You&rsquo;ve successfully connected your account!', 'instagram-widget-by-wpzoom' ),
2656
+ 'i18n_connect_success_content' => __( 'Your account is now connected. You can now add a feed and customize it on the next screens.', 'instagram-widget-by-wpzoom' ),
2657
+ 'i18n_reconnect_success_title' => __( 'You&rsquo;ve successfully re-connected your account!', 'instagram-widget-by-wpzoom' ),
2658
+ 'i18n_reconnect_success_content' => __( 'Your account is now re-connected.', 'instagram-widget-by-wpzoom' ),
2659
+ 'i18n_shortcode_success_title' => __( 'Shortcode copied!', 'instagram-widget-by-wpzoom' ),
2660
+ 'i18n_shortcode_success_content' => __( 'The shortcode for the selected feed was copied to your clipboard.', 'instagram-widget-by-wpzoom' ),
2661
+ 'i18n_connect_fail_title' => __( 'Your account could not be connected!', 'instagram-widget-by-wpzoom' ),
2662
+ 'i18n_connect_fail_content' => __( 'There was a problem connecting your account. Please try again!', 'instagram-widget-by-wpzoom' ),
2663
+ 'i18n_shortcode_fail_title' => __( 'Shortcode not copied!', 'instagram-widget-by-wpzoom' ),
2664
+ 'i18n_shortcode_fail_content' => __( 'There was a problem copying the shortcode for the selected feed to your clipboard. Please try again.', 'instagram-widget-by-wpzoom' ),
2665
+ 'i18n_delete_user_confirm_title' => __( 'Confirm Delete User', 'instagram-widget-by-wpzoom' ),
2666
+ 'i18n_delete_user_confirm_content' => __( 'Are you sure you want to delete this user? <strong class="severe">This action cannot be undone!</strong>', 'instagram-widget-by-wpzoom' ),
2667
+ 'i18n_delete_feed_confirm_title' => __( 'Confirm Delete Feed', 'instagram-widget-by-wpzoom' ),
2668
+ 'i18n_delete_feed_confirm_content' => __( 'Are you sure you want to delete this feed? <strong class="severe">This action cannot be undone!</strong>', 'instagram-widget-by-wpzoom' ),
2669
+ 'i18n_delete_confirm_button_ok' => __( 'Yes', 'instagram-widget-by-wpzoom' ),
2670
+ 'i18n_delete_confirm_button_cancel' => __( 'No', 'instagram-widget-by-wpzoom' ),
2671
+ 'nonce' => wp_create_nonce( 'ajax-nonce' ),
2672
+ 'feeds_url' => admin_url( self::$any_feeds ? 'edit.php?post_type=wpz-insta_feed' : 'post-new.php?post_type=wpz-insta_feed' ),
2673
+ 'edit_user_url' => admin_url( 'edit.php?post_type=wpz-insta_user#post-' ),
2674
+ 'preview_url' => site_url( '?wpz-insta-widget-preview=true' ),
2675
+ 'default_user_thumbnail' => plugins_url( '/dist/images/backend/user-avatar.jpg', __FILE__ ),
2676
+ )
2677
+ );
2678
+ }
2679
+ }
2680
+
2681
+ public function nice_image_size( $size, $atts ) {
2682
+ $nice_size = preg_replace( '/(\d)x(\d)/i', '$1 x $2', ucwords( str_ireplace( array( '_', '-', 'wpzoom' ), array( ' ', ' ', 'WPZOOM' ), $size ) ) );
2683
+ $height = isset( $atts['height'] ) ? intval( $atts['height'] ) : -1;
2684
+ $width = isset( $atts['width'] ) ? intval( $atts['width'] ) : -1;
2685
+ $heightstr = $height > 0 ? strval( $height ) : 'Auto';
2686
+ $widthstr = $width > 0 ? strval( $width ) : 'Auto';
2687
+ $dimstr = sprintf( __( ' (%s x %s)', 'instagram-widget-by-wpzoom' ), $widthstr, $heightstr );
2688
+
2689
+ return $nice_size . $dimstr;
2690
  }
2691
 
2692
  public function sanitize( $input ) {
2739
  * @return array
2740
  */
2741
  public function get_settings() {
2742
+ return self::$feed_settings;
2743
  }
2744
 
2745
  /**
class-wpzoom-instagram-widget.php CHANGED
@@ -3,74 +3,74 @@
3
  * Exit if accessed directly.
4
  */
5
  if ( ! defined( 'ABSPATH' ) ) {
6
- exit;
7
  }
8
 
9
  class Wpzoom_Instagram_Widget extends WP_Widget {
10
- /**
11
- * @var Wpzoom_Instagram_Widget_API
12
- */
13
- protected $api;
14
-
15
- /**
16
- * @var array Default widget settings.
17
- */
18
- protected $defaults;
19
-
20
- public function __construct() {
21
- parent::__construct(
22
- 'wpzoom_instagram_widget',
23
- esc_html__( 'Instagram Widget by WPZOOM', 'instagram-widget-by-wpzoom' ),
24
- array(
25
- 'classname' => 'zoom-instagram-widget',
26
- 'description' => __( 'Displays a user\'s Instagram timeline.', 'instagram-widget-by-wpzoom' ),
27
- )
28
- );
29
-
30
- $this->defaults = array(
31
- 'title' => esc_html__( 'Instagram', 'instagram-widget-by-wpzoom' ),
32
- 'button_text' => esc_html__( 'View on Instagram', 'instagram-widget-by-wpzoom' ),
33
- 'image-limit' => 9,
34
- 'show-view-on-instagram-button' => true,
35
- 'show-counts-on-hover' => true,
36
- 'show-user-info' => false,
37
- 'show-user-bio' => false,
38
- 'lazy-load-images' => true,
39
- 'disable-video-thumbs' => false,
40
- 'display-media-type-icons' => true,
41
- 'lightbox' => true,
42
- 'images-per-row' => 3,
43
- 'image-width' => 120,
44
- 'image-spacing' => 10,
45
- 'image-resolution' => 'default_algorithm',
46
- 'username' => '',
47
- );
48
-
49
- add_action( 'wp_enqueue_scripts', array( $this, 'styles' ) );
50
- add_action( 'wp_enqueue_scripts', array( $this, 'register_scripts' ) );
51
-
52
- /**
53
- * Enqueue styles and scripts for SiteOrigin Page Builder.
54
- */
55
- add_action( 'siteorigin_panel_enqueue_admin_scripts', array( $this, 'styles' ) );
56
- add_action( 'siteorigin_panel_enqueue_admin_scripts', array( $this, 'register_scripts' ) );
57
- add_action( 'siteorigin_panel_enqueue_admin_scripts', array( $this, 'enqueue_scripts' ) );
58
- }
59
-
60
- /**
61
- * Convert $url to file path.
62
- *
63
- * @param $url
64
- *
65
- * @return string|string[]
66
- */
67
- function convert_url_to_path( $url ) {
68
- return str_replace(
69
- wp_get_upload_dir()['baseurl'],
70
- wp_get_upload_dir()['basedir'],
71
- $url
72
- );
73
- }
74
 
75
  /**
76
  * Sanitizes and prepares caption content for display.
@@ -100,701 +100,702 @@ class Wpzoom_Instagram_Widget extends WP_Widget {
100
  return trim( $caption );
101
  }
102
 
103
- /**
104
- * Load widget specific styles.
105
- */
106
- public function styles() {
107
- wp_enqueue_style(
108
- 'zoom-instagram-widget',
109
- plugin_dir_url( __FILE__ ) . 'css/instagram-widget.css',
110
- array( 'dashicons' ),
111
- WPZOOM_INSTAGRAM_VERSION
112
- );
113
-
114
- wp_enqueue_style(
115
- 'magnific-popup',
116
- plugin_dir_url( __FILE__ ) . 'assets/frontend/magnific-popup/magnific-popup.css',
117
- array( 'dashicons' ),
118
- WPZOOM_INSTAGRAM_VERSION
119
- );
120
-
121
- wp_enqueue_style(
122
- 'swiper-css',
123
- plugin_dir_url( __FILE__ ) . 'assets/frontend/swiper/swiper.css',
124
- array(),
125
- WPZOOM_INSTAGRAM_VERSION
126
- );
127
- }
128
-
129
- /**
130
- * Register widget specific scripts.
131
- */
132
- public function register_scripts() {
133
- $file_mod_time = filemtime( plugin_dir_path( __FILE__ ) . 'js/jquery.lazy.min.js' );
134
-
135
- wp_register_script(
136
- 'zoom-instagram-widget-lazy-load',
137
- plugin_dir_url( __FILE__ ) . 'js/jquery.lazy.min.js',
138
- array( 'jquery' ),
139
- strval( $file_mod_time ),
140
- true
141
- );
142
- wp_register_script(
143
- 'magnific-popup',
144
- plugin_dir_url( __FILE__ ) . 'assets/frontend/magnific-popup/jquery.magnific-popup.min.js',
145
- array( 'jquery', 'underscore', 'wp-util' ),
146
- filemtime( plugin_dir_path( __FILE__ ) . 'assets/frontend/magnific-popup/jquery.magnific-popup.min.js' ),
147
- true
148
- );
149
- wp_register_script(
150
- 'swiper-js',
151
- plugin_dir_url( __FILE__ ) . 'assets/frontend/swiper/swiper.js',
152
- array(),
153
- filemtime( plugin_dir_path( __FILE__ ) . 'assets/frontend/swiper/swiper.js' ),
154
- true
155
- );
156
- wp_register_script(
157
- 'zoom-instagram-widget',
158
- plugin_dir_url( __FILE__ ) . 'js/instagram-widget.js',
159
- array( 'jquery', 'underscore', 'wp-util', 'magnific-popup', 'swiper-js' ),
160
- WPZOOM_INSTAGRAM_VERSION,
161
- true
162
- );
163
- }
164
-
165
- /**
166
- * Load widget specific scripts.
167
- */
168
- public function enqueue_scripts() {
169
- wp_enqueue_script( 'zoom-instagram-widget-lazy-load' );
170
- wp_enqueue_script( 'magnific-popup' );
171
- wp_enqueue_script( 'swiper-js' );
172
- wp_enqueue_script( 'zoom-instagram-widget' );
173
- }
174
-
175
- /**
176
- * Front-end display of widget.
177
- *
178
- * @see WP_Widget::widget()
179
- *
180
- * @param array $args Widget arguments.
181
- * @param array $instance Saved values from database.
182
- */
183
- public function widget( $args, $instance ) {
184
- $this->api = Wpzoom_Instagram_Widget_API::getInstance();
185
-
186
- $this->enqueue_scripts();
187
-
188
- $instance = wp_parse_args( (array) $instance, $this->defaults );
189
-
190
- echo $args['before_widget'];
191
-
192
- if ( $instance['title'] ) {
193
- echo $args['before_title'] . apply_filters( 'widget_title', $instance['title'] ) . $args['after_title'];
194
- }
195
-
196
- $items = $this->api->get_items( $instance );
197
- $errors = $this->api->errors->get_error_messages();
198
-
199
- if ( ! is_array( $items ) ) {
200
- $this->display_errors( $errors );
201
- } else {
202
- $user_info = $this->api->get_user_info( $instance['username'] );
203
-
204
- if ( ! empty( $instance['show-user-info'] ) ) {
205
- if (
206
- is_object( $user_info ) &&
207
- ! empty( $user_info ) &&
208
- ! empty( $user_info->data )
209
- ) {
210
- $this->display_user_info( $instance, $user_info );
211
- }
212
- }
213
-
214
- $this->display_items( $items['items'], $instance, $user_info );
215
- $this->display_instagram_button( $instance, $items['username'] );
216
- }
217
-
218
- echo $args['after_widget'];
219
- }
220
-
221
- /**
222
- * Output errors if widget is misconfigured and current user can manage options (plugin settings).
223
- *
224
- * @return void
225
- */
226
- protected function display_errors( $errors ) {
227
- if ( current_user_can( 'edit_theme_options' ) ) {
228
- ?>
229
- <p>
230
- <?php _e( 'Instagram Widget misconfigured or your Access Token <strong>expired</strong>. Please check', 'instagram-widget-by-wpzoom' ); ?>
231
- <strong><a href="<?php echo admin_url( 'options-general.php?page=wpzoom-instagram-widget' ); ?>" target="_blank"><?php _e( 'Instagram Settings Page', 'instagram-widget-by-wpzoom' ); ?></a></strong> <?php _e( 'and make sure the plugin is properly configured', 'instagram-widget-by-wpzoom' ); ?>
232
-
233
- </p>
234
-
235
- <?php if ( ! empty( $errors ) ) : ?>
236
- <ul>
237
- <?php foreach ( $errors as $error ) : ?>
238
- <li><?php echo $error; ?></li>
239
- <?php endforeach; ?>
240
- </ul>
241
- <?php endif; ?>
242
- <?php
243
- } else {
244
- echo '&#8230;';
245
- }
246
- }
247
-
248
- protected function display_user_info( $instance, $user_info ) {
249
- ?>
250
- <div class="zoom-instagram-widget-user-info">
251
- <?php if ( ! empty( $user_info->data->profile_picture ) ) : ?>
252
- <div class="zoom-instagram-widget-user-info-picture">
253
- <a target="_blank" rel="noopener nofollow"
254
- href="<?php printf( 'https://instagram.com/%s?ref=badge', esc_attr( $user_info->data->username ) ); ?>"><img
255
- width="90" src="<?php echo $user_info->data->profile_picture; ?>"
256
- alt="<?php echo esc_attr( $user_info->data->full_name ); ?>"/></a>
257
- </div>
258
- <?php endif; ?>
259
- <div class="zoom-instagram-widget-user-info-meta">
260
- <div class="zoom-instagram-widget-user-info-about-data">
261
- <div class="zoom-instagram-widget-user-info-names-wrapper">
262
- <?php if ( ! empty( $user_info->data->full_name ) ) : ?>
263
- <div class="zoom-instagram-widget-user-info-fullname">
264
- <?php esc_html_e( $user_info->data->full_name, 'instagram-widget-by-wpzoom' ); ?>
265
- </div>
266
- <?php endif; ?>
267
- <?php if ( ! empty( $user_info->data->username ) ) : ?>
268
- <div class="zoom-instagram-widget-user-info-username">
269
- <?php esc_html_e( '@' . $user_info->data->username, 'instagram-widget-by-wpzoom' ); ?>
270
- </div>
271
- <?php endif; ?>
272
- </div>
273
- <div>
274
- <a class="zoom-instagram-widget-user-info-follow-button" target="_blank" rel="noopener nofollow"
275
- href="<?php printf( 'https://instagram.com/%s?ref=badge', esc_attr( $user_info->data->username ) ); ?>">
276
- <?php _e( 'Follow', 'instagram-widget-by-wpzoom' ); ?>
277
- </a>
278
- </div>
279
- </div>
280
- <div class="zoom-instagram-widget-user-info-stats">
281
- <?php if ( ! empty( $user_info->data->counts->media ) ) : ?>
282
- <div>
283
- <div class="zoom-instagram-widget-user-info-counts"
284
- title="<?php echo number_format( $user_info->data->counts->media ); ?>">
285
- <?php echo $this->format_number( $user_info->data->counts->media ); ?>
286
- </div>
287
- <div class="zoom-instagram-widget-user-info-counts-subhead">
288
- <?php _e( 'posts', 'instagram-widget-by-wpzoom' ); ?>
289
- </div>
290
- </div>
291
- <?php endif; ?>
292
- <?php if ( ! empty( $user_info->data->counts->followed_by ) ) : ?>
293
- <div class="zoom-instagram-widget-user-info-middle-cell">
294
- <div class="zoom-instagram-widget-user-info-counts"
295
- title="<?php echo number_format( $user_info->data->counts->followed_by ); ?>">
296
- <?php echo $this->format_number( $user_info->data->counts->followed_by ); ?>
297
- </div>
298
- <div class="zoom-instagram-widget-user-info-counts-subhead">
299
- <?php _e( 'followers', 'instagram-widget-by-wpzoom' ); ?>
300
- </div>
301
- </div>
302
- <?php endif; ?>
303
- <?php if ( ! empty( $user_info->data->counts->follows ) ) : ?>
304
- <div>
305
- <div class="zoom-instagram-widget-user-info-counts"
306
- title="<?php echo number_format( $user_info->data->counts->follows ); ?>">
307
- <?php echo $this->format_number( $user_info->data->counts->follows ); ?>
308
- </div>
309
- <div class="zoom-instagram-widget-user-info-counts-subhead">
310
- <?php _e( 'following', 'instagram-widget-by-wpzoom' ); ?>
311
- </div>
312
- </div>
313
- <?php endif; ?>
314
- </div>
315
- </div>
316
-
317
- </div>
318
- <?php
319
- if ( ! empty( $instance['show-user-bio'] ) ) {
320
- if ( ! empty( $user_info->data->bio ) ) :
321
- ?>
322
- <div class="zoom-instagram-widget-user-info-bio"><?php echo nl2br( $user_info->data->bio ); ?></div>
323
- <?php
324
- endif;
325
- }
326
- ?>
327
-
328
- <?php
329
- }
330
-
331
- public function format_number( $num ) {
332
- if ( $num < 10000 ) {
333
- return number_format( $num );
334
- }
335
-
336
- $units = array( '', 'k', 'm', 'b', 't' );
337
- for ( $i = 0; $num >= 1000; $i ++ ) {
338
- $num /= 1000;
339
- }
340
-
341
- return round( $num, 1 ) . $units[ $i ];
342
- }
343
-
344
- protected function display_items( $items, $instance, $user_info ) {
345
- $count = 0;
346
- $show_overlay = wp_validate_boolean( $instance['show-counts-on-hover'] );
347
- $show_media_type_icons = wp_validate_boolean( $instance['display-media-type-icons'] );
348
- $small_class = ( ! empty( $instance['image-width'] ) && $instance['image-width'] <= 180 ) ? 'small' : '';
349
- $svg_icons = plugin_dir_url( __FILE__ ) . 'images/wpzoom-instagram-icons.svg';
350
- $lightbox = isset( $instance['lightbox'] ) ? wp_validate_boolean( $instance['lightbox'] ) : true;
351
- $user_nfo = is_object( $user_info ) && ! empty( $user_info ) && ! empty( $user_info->data ) ? $user_info->data : false;
352
- $username = false !== $user_nfo ? $user_nfo->username : '';
353
- $avatar = false !== $user_nfo && ! empty( $user_nfo->profile_picture ) ? $user_nfo->profile_picture : plugin_dir_url( __FILE__ ) . 'assets/backend/img/user-avatar.jpg';
354
- ?>
355
- <ul class="zoom-instagram-widget__items zoom-instagram-widget__items--no-js"
356
- data-images-per-row="<?php echo esc_attr( $instance['images-per-row'] ); ?>"
357
- data-image-width="<?php echo esc_attr( $instance['image-width'] ); ?>"
358
- data-image-spacing="<?php echo esc_attr( $instance['image-spacing'] ); ?>"
359
- data-image-resolution="<?php echo esc_attr( $instance['image-resolution'] ); ?>"
360
- data-image-lazy-loading="<?php echo esc_attr( $instance['lazy-load-images'] ); ?>"
361
- data-lightbox="<?php echo esc_attr( $lightbox ); ?>">
362
-
363
- <?php foreach ( $items as $item ) : ?>
364
- <?php
365
-
366
- $inline_attrs = '';
367
- $overwrite_src = false;
368
- $link = $item['link'];
369
- $src = $item['image-url'];
370
- $media_id = $item['image-id'];
371
- $alt = esc_attr( $item['image-caption'] );
372
- $likes = $item['likes_count'];
373
- $type = in_array(
374
- $item['type'],
375
- array(
376
- 'VIDEO',
377
- 'CAROUSEL_ALBUM',
378
- )
379
- ) ? strtolower( $item['type'] ) : false;
380
- $is_album = 'carousel_album' == $type;
381
- $is_video = 'video' == $type;
382
- $comments = $item['comments_count'];
383
-
384
- if ( ! empty( $media_id ) && empty( $src ) ) {
385
- $inline_attrs = 'data-media-id="' . esc_attr( $media_id ) . '"';
386
- $inline_attrs .= 'data-nonce="' . wp_create_nonce( WPZOOM_Instagram_Image_Uploader::get_nonce_action( $media_id ) ) . '"';
387
-
388
- $overwrite_src = true;
389
- }
390
-
391
- if (
392
- ! empty( $media_id ) &&
393
- ! empty( $src ) &&
394
- ! file_exists( $this->convert_url_to_path( $src ) )
395
- ) {
396
- $inline_attrs = 'data-media-id="' . esc_attr( $media_id ) . '"';
397
- $inline_attrs .= 'data-nonce="' . wp_create_nonce( WPZOOM_Instagram_Image_Uploader::get_nonce_action( $media_id ) ) . '"';
398
- $inline_attrs .= 'data-regenerate-thumbnails="1"';
399
-
400
- $overwrite_src = true;
401
- }
402
-
403
- $inline_attrs .= 'data-media-type="' . esc_attr( $type ?: 'image' ) . '"';
404
-
405
- if ( $overwrite_src ) {
406
- $src = $item['original-image-url'];
407
- }
408
- ?>
409
-
410
- <li class="zoom-instagram-widget__item" <?php echo $inline_attrs; ?>>
411
-
412
- <?php
413
- $inline_style = 'width:' . esc_attr( $instance['image-width'] ) . 'px;';
414
- $inline_style .= 'height:' . esc_attr( $instance['image-width'] ) . 'px;';
415
- if ( empty( $instance['lazy-load-images'] ) ) {
416
- $inline_style .= "background-image: url('" . $src . "');";
417
- }
418
-
419
- if ( $show_overlay ) :
420
- ?>
421
- <div class="hover-layout zoom-instagram-widget__overlay zoom-instagram-widget__black <?php echo $small_class; ?>">
422
- <?php if ( $show_media_type_icons && ! empty( $type ) ) : ?>
423
- <svg class="svg-icon" shape-rendering="geometricPrecision">
424
- <use xlink:href="<?php echo esc_url( $svg_icons ); ?>#<?php echo $type; ?>"></use>
425
- </svg>
426
- <?php endif; ?>
427
-
428
- <?php if ( ! empty( $likes ) && ! empty( $comments ) ) : ?>
429
- <div class="hover-controls">
430
- <span class="dashicons dashicons-heart"></span>
431
- <span class="counter"><?php echo $this->format_number( $likes ); ?></span>
432
- <span class="dashicons dashicons-format-chat"></span>
433
- <span class="counter"><?php echo $this->format_number( $comments ); ?></span>
434
- </div>
435
- <?php endif; ?>
436
- <div class="zoom-instagram-icon-wrap">
437
- <a class="zoom-svg-instagram-stroke" href="<?php echo $link; ?>" rel="noopener nofollow"
438
- target="_blank" title="<?php echo $alt; ?>"></a>
439
- </div>
440
-
441
-
442
- <a class="zoom-instagram-link" data-src="<?php echo $src; ?>"
443
- style="<?php echo $inline_style; ?>"
444
- data-mfp-src="<?php echo $media_id; ?>"
445
- href="<?php echo $link; ?>" target="_blank" rel="noopener nofollow" title="<?php echo $alt; ?>"
446
- >
447
- </a>
448
- </div>
449
- <?php else : ?>
450
- <a class="zoom-instagram-link" data-src="<?php echo $src; ?>"
451
- style="<?php echo $inline_style; ?>"
452
- data-mfp-src="<?php echo $media_id; ?>"
453
- href="<?php echo $link; ?>" target="_blank" rel="noopener nofollow" title="<?php echo $alt; ?>"
454
- >
455
- <?php if ( $show_media_type_icons && ! empty( $type ) ) : ?>
456
- <svg class="svg-icon" shape-rendering="geometricPrecision">
457
- <use xlink:href="<?php echo esc_url( $svg_icons ); ?>#<?php echo $type; ?>"></use>
458
- </svg>
459
- <?php endif; ?>
460
- </a>
461
- <?php endif; ?>
462
- </li>
463
-
464
- <?php
465
- if ( ++ $count === $instance['image-limit'] ) {
466
- break;
467
- }
468
- ?>
469
-
470
- <?php endforeach; ?>
471
-
472
- </ul>
473
-
474
- <?php if ( $lightbox ) : ?>
475
- <div class="wpz-insta-lightbox-wrapper mfp-hide">
476
- <div class="swiper-container">
477
- <div class="swiper-wrapper">
478
- <?php
479
- $amount = count( $items );
480
- $count = 0;
481
- foreach ( $items as $item ) :
482
- $count++;
483
- $media_id = $item['image-id'];
484
- $link = $item['link'];
485
- $src = $item['local-image-url'];
486
- $alt = esc_attr( $item['image-caption'] );
487
- $type = in_array( $item['type'], array( 'VIDEO', 'CAROUSEL_ALBUM' ) ) ? strtolower( $item['type'] ) : false;
488
- $is_album = 'carousel_album' == $type;
489
- $is_video = 'video' == $type;
490
- $children = $is_album && isset( $item['children'] ) && is_object( $item['children'] ) && isset( $item['children']->data ) ? $item['children']->data : false; ?>
491
-
492
- <div data-uid="<?php echo $media_id; ?>" class="swiper-slide wpz-insta-lightbox-item">
493
- <div class="wpz-insta-lightbox">
494
- <div class="image-wrapper">
495
- <?php if ( $is_album && false !== $children ) : ?>
496
- <div class="swiper-container">
497
- <div class="swiper-wrapper wpz-insta-album-images">
498
- <?php foreach ( $children as $child ) :
499
- $child_type = property_exists( $child, 'media_type' ) && in_array( $child->media_type, array( 'VIDEO', 'CAROUSEL_ALBUM' ) ) ? strtolower( $child->media_type ) : 'image';
500
- $thumb = 'video' == $child_type && property_exists( $child, 'thumbnail_url' ) ? strtolower( $child->thumbnail_url ) : '';?>
501
-
502
- <div class="swiper-slide wpz-insta-album-image" data-media-type="<?php echo esc_attr( $child_type ); ?>">
503
- <?php if ( 'video' == $child_type ) : ?>
504
- <video controls preload="metadata" poster="<?php echo esc_attr( $thumb ); ?>">
505
- <source src="<?php echo esc_url( $child->media_url ); ?>" type="video/mp4"/>
506
- <?php echo esc_html( $alt ); ?>
507
- </video>
508
- <?php else : ?>
509
- <img src="<?php echo esc_url( $child->media_url ); ?>" alt="<?php echo $alt; ?>"/>
510
- <?php endif; ?>
511
- </div>
512
- <?php endforeach; ?>
513
- </div>
514
-
515
- <div class="swiper-pagination"></div>
516
- <div class="swiper-button-prev"></div>
517
- <div class="swiper-button-next"></div>
518
- </div>
519
- <?php else : ?>
520
- <img src="<?php echo esc_url( $src ); ?>" alt="<?php echo $alt; ?>"/>
521
- <?php endif; ?>
522
- </div>
523
- <div class="details-wrapper">
524
- <div class="wpz-insta-header">
525
- <div class="wpz-insta-avatar">
526
- <img src="<?php echo esc_url( $avatar ); ?>" alt="<?php echo esc_attr( $user_info->data->full_name ); ?>" width="42" height="42"/>
527
- </div>
528
- <div class="wpz-insta-buttons">
529
- <div class="wpz-insta-username">
530
- <a rel="noopener" target="_blank" href="<?php printf( 'https://instagram.com/%s', esc_attr( $username ) ); ?>"><?php echo esc_html( $username ); ?></a>
531
- </div>
532
- <div>&bull;</div>
533
- <div class="wpz-insta-follow">
534
- <a target="_blank" rel="noopener"
535
- href="<?php printf( 'https://instagram.com/%s?ref=badge', esc_attr( $username ) ); ?>">
536
- <?php _e( 'Follow', 'wpzoom-instagram-widget' ); ?>
537
- </a>
538
- </div>
539
- </div>
540
- </div>
541
- <?php if ( ! empty( $item['image-caption'] ) ) : ?>
542
- <div class="wpz-insta-caption">
543
- <?php echo self::filter_caption( $item['image-caption'] ); ?>
544
- </div>
545
- <?php endif; ?>
546
-
547
- <?php if ( ! empty( $item['timestamp'] ) ) : ?>
548
- <div class="wpz-insta-date">
549
- <?php printf( __( '%s ago' ), human_time_diff( strtotime( $item['timestamp'] ) ) ); ?>
550
- </div>
551
- <?php endif; ?>
552
-
553
- <div class="view-post">
554
- <a href="<?php echo esc_url( $link ); ?>" target="_blank" rel="noopener"><span class="dashicons dashicons-instagram"></span><?php _e( 'View on Instagram', 'wpzoom-instagram-widget' ); ?></a>
555
- <span class="delimiter">|</span>
556
- <div class="wpz-insta-pagination"><?php printf( '%d/%d', $count, $amount ); ?></div>
557
- </div>
558
- </div>
559
- </div>
560
- </div>
561
- <?php endforeach; ?>
562
- </div>
563
-
564
- <div class="swiper-button-prev"></div>
565
- <div class="swiper-button-next"></div>
566
- </div>
567
- </div>
568
- <?php endif; ?>
569
-
570
- <div style="clear:both;"></div>
571
- <?php
572
- }
573
-
574
- protected function display_instagram_button( $instance, $username ) {
575
- $show_view_on_instagram_button = $instance['show-view-on-instagram-button'];
576
-
577
- if ( ! $show_view_on_instagram_button ) {
578
- return;
579
- }
580
-
581
- ?>
582
- <div class="zoom-instagram-widget__follow-me">
583
- <a href="<?php printf( 'https://instagram.com/%s?ref=badge', esc_attr( $username ) ); ?>"
584
- class="ig-b- ig-b-v-24" rel="noopener nofollow"
585
- target="_blank"><?php echo esc_attr( $instance['button_text'] ); ?></a>
586
- </div>
587
- <?php
588
- }
589
-
590
- /**
591
- * Sanitize widget form values as they are saved.
592
- *
593
- * @see WP_Widget::update()
594
- *
595
- * @param array $new_instance Values just sent to be saved.
596
- * @param array $old_instance Previously saved values from database.
597
- *
598
- * @return array Updated safe values to be saved.
599
- */
600
- public function update( $new_instance, $old_instance ) {
601
- $instance['title'] = sanitize_text_field( $new_instance['title'] );
602
- $instance['button_text'] = sanitize_text_field( $new_instance['button_text'] );
603
-
604
- $instance['image-limit'] = ( 0 !== (int) $new_instance['image-limit'] ) ? (int) $new_instance['image-limit'] : null;
605
-
606
- $instance['images-per-row'] = ( 0 !== (int) $new_instance['images-per-row'] ) ? (int) $new_instance['images-per-row'] : null;
607
- $instance['image-width'] = ( 0 !== (int) $new_instance['image-width'] ) ? (int) $new_instance['image-width'] : null;
608
- $instance['image-spacing'] = ( 0 <= (int) $new_instance['image-spacing'] ) ? (int) $new_instance['image-spacing'] : null;
609
- $instance['image-resolution'] = ! empty( $new_instance['image-resolution'] ) ? $new_instance['image-resolution'] : $this->defaults['image-resolution'];
610
- $instance['username'] = ! empty( $new_instance['username'] ) ? $new_instance['username'] : $this->defaults['username'];
611
-
612
- $instance['show-view-on-instagram-button'] = ! empty( $new_instance['show-view-on-instagram-button'] );
613
- $instance['show-counts-on-hover'] = ! empty( $new_instance['show-counts-on-hover'] );
614
- $instance['show-user-info'] = ! empty( $new_instance['show-user-info'] );
615
- $instance['show-user-bio'] = ! empty( $new_instance['show-user-bio'] );
616
- $instance['lazy-load-images'] = ! empty( $new_instance['lazy-load-images'] );
617
- $instance['disable-video-thumbs'] = ! empty( $new_instance['disable-video-thumbs'] );
618
- $instance['display-media-type-icons'] = ! empty( $new_instance['display-media-type-icons'] );
619
- $instance['lightbox'] = ! empty( $new_instance['lightbox'] );
620
-
621
- return $instance;
622
- }
623
-
624
- /**
625
- * Back-end widget form.
626
- *
627
- * @see WP_Widget::form()
628
- *
629
- * @param array $instance Previously saved values from database.
630
- *
631
- * @return string|void
632
- */
633
- public function form( $instance ) {
634
- $this->api = Wpzoom_Instagram_Widget_API::getInstance();
635
-
636
- $instance = wp_parse_args( (array) $instance, $this->defaults );
637
- ?>
638
-
639
- <?php if ( empty( $instance['username'] ) && ! $this->api->is_configured() ) : ?>
640
-
641
- <p style="color: #d54e21">
642
- <?php
643
- printf(
644
- __( 'You need to configure <a href="%1$s">plugin settings</a> before using this widget.', 'instagram-widget-by-wpzoom' ),
645
- admin_url( 'options-general.php?page=wpzoom-instagram-widget' )
646
- );
647
- ?>
648
- </p>
649
-
650
- <?php endif; ?>
651
-
652
- <p>
653
- <label for="<?php echo $this->get_field_id( 'title' ); ?>"><?php esc_html_e( 'Title:', 'instagram-widget-by-wpzoom' ); ?></label>
654
- <input class="widefat" id="<?php echo $this->get_field_id( 'title' ); ?>"
655
- name="<?php echo $this->get_field_name( 'title' ); ?>" type="text"
656
- value="<?php echo esc_attr( $instance['title'] ); ?>"/>
657
- </p>
658
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
659
 
660
- <p>
661
- <label for="<?php echo $this->get_field_id( 'image-limit' ); ?>"><?php esc_html_e( 'Number of Images Shown:', 'instagram-widget-by-wpzoom' ); ?></label>
662
- <input class="widefat" id="<?php echo $this->get_field_id( 'image-limit' ); ?>"
663
- name="<?php echo $this->get_field_name( 'image-limit' ); ?>" type="number" min="1" max="30"
664
- value="<?php echo esc_attr( $instance['image-limit'] ); ?>"/>
665
- </p>
 
 
 
666
 
667
- <p>
668
- <label for="<?php echo $this->get_field_id( 'images-per-row' ); ?>"><?php esc_html_e( 'Desired number of Images per row:', 'instagram-widget-by-wpzoom' ); ?></label>
669
- <input class="widefat" id="<?php echo $this->get_field_id( 'images-per-row' ); ?>"
670
- name="<?php echo $this->get_field_name( 'images-per-row' ); ?>" type="number" min="1" max="20"
671
- value="<?php echo esc_attr( $instance['images-per-row'] ); ?>"/>
672
- </p>
 
 
 
 
673
 
674
- <p>
675
- <label for="<?php echo $this->get_field_id( 'image-width' ); ?>"><?php esc_html_e( 'Desired Image width in pixels:', 'instagram-widget-by-wpzoom' ); ?>
676
- <small>(Just integer)</small>
677
- </label>
678
- <input class="widefat" id="<?php echo $this->get_field_id( 'image-width' ); ?>"
679
- name="<?php echo $this->get_field_name( 'image-width' ); ?>" type="number" min="20"
680
- value="<?php echo esc_attr( $instance['image-width'] ); ?>"/>
681
- </p>
682
 
683
- <p>
684
- <label for="<?php echo $this->get_field_id( 'image-resolution' ); ?>"><?php esc_html_e( 'Force image resolution:', 'instagram-widget-by-wpzoom' ); ?></label>
685
- <select class="widefat" id="<?php echo $this->get_field_id( 'image-resolution' ); ?>"
686
- name="<?php echo $this->get_field_name( 'image-resolution' ); ?>">
687
- <option value="default_algorithm" <?php selected( $instance['image-resolution'], 'default_algorithm' ); ?>>
688
- <?php _e( 'By Default Algorithm', 'instagram-widget-by-wpzoom' ); ?>
689
- </option>
690
- <option value="thumbnail" <?php selected( $instance['image-resolution'], 'thumbnail' ); ?>>
691
- <?php _e( 'Thumbnail ( 150x150px )', 'instagram-widget-by-wpzoom' ); ?>
692
- </option>
693
- <option value="low_resolution" <?php selected( $instance['image-resolution'], 'low_resolution' ); ?>>
694
- <?php _e( 'Low Resolution ( 320x320px )', 'instagram-widget-by-wpzoom' ); ?>
695
-
696
- </option>
697
- <option value="standard_resolution" <?php selected( $instance['image-resolution'], 'standard_resolution' ); ?>>
698
- <?php _e( 'Standard Resolution ( 640x640px )', 'instagram-widget-by-wpzoom' ); ?>
699
- </option>
700
- </select>
701
- </p>
702
 
703
- <p>
704
- <label for="<?php echo $this->get_field_id( 'image-spacing' ); ?>"><?php esc_html_e( 'Image spacing in pixels:', 'instagram-widget-by-wpzoom' ); ?>
705
- <small>(Just integer)</small>
706
- </label>
707
- <input class="widefat" id="<?php echo $this->get_field_id( 'image-spacing' ); ?>"
708
- name="<?php echo $this->get_field_name( 'image-spacing' ); ?>" type="number" min="0" max="50"
709
- value="<?php echo esc_attr( $instance['image-spacing'] ); ?>"/>
710
- </p>
711
 
712
- <p class="description">
713
- <?php
714
- echo wp_kses_post(
715
- __( 'Fields above do not influence directly widget appearance. Final number of images per row and image width is calculated depending on browser resolution. This ensures your photos look beautiful on all devices.', 'instagram-widget-by-wpzoom' )
716
- );
717
- ?>
718
- </p>
719
 
720
- <p>
721
- <label for="<?php echo $this->get_field_id( 'username' ); ?>"><strong><?php esc_html_e( 'Instagram @username:', 'instagram-widget-by-wpzoom' ); ?></strong></label>
722
- <input class="widefat" id="<?php echo $this->get_field_id( 'username' ); ?>"
723
- name="<?php echo $this->get_field_name( 'username' ); ?>" type="text"
724
- value="<?php echo esc_attr( $instance['username'] ); ?>"/>
725
- </p>
 
 
 
 
 
 
 
 
 
 
 
726
 
727
- <p class="description">
 
 
728
 
729
- <?php
730
- printf(
731
- __( 'If you have already connected your Instagram account in the <a href="%1$s">plugin settings</a>, leave this field empty. You can use this option if you want to display the feed of a different Instagram account.', 'instagram-widget-by-wpzoom' ),
732
- admin_url( 'options-general.php?page=wpzoom-instagram-widget' )
733
- );
734
- ?>
735
 
736
- </p>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
737
 
738
- <p>
739
- <input class="checkbox" type="checkbox" <?php checked( $instance['show-user-info'] ); ?>
740
- id="<?php echo $this->get_field_id( 'show-user-info' ); ?>"
741
- name="<?php echo $this->get_field_name( 'show-user-info' ); ?>"/>
742
- <label for="<?php echo $this->get_field_id( 'show-user-info' ); ?>"><?php _e( ' Display <strong>User Details</strong>', 'instagram-widget-by-wpzoom' ); ?></label>
743
- </p>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
744
 
745
- <p>
746
- <input class="checkbox" type="checkbox" <?php checked( $instance['show-user-bio'] ); ?>
747
- id="<?php echo $this->get_field_id( 'show-user-bio' ); ?>"
748
- name="<?php echo $this->get_field_name( 'show-user-bio' ); ?>"/>
749
- <label for="<?php echo $this->get_field_id( 'show-user-bio' ); ?>"><?php _e( ' Display <strong>Bio in User Details</strong>', 'instagram-widget-by-wpzoom' ); ?></label>
750
- </p>
751
 
752
- <p>
753
- <input class="checkbox" type="checkbox" <?php checked( $instance['show-view-on-instagram-button'] ); ?>
754
- id="<?php echo $this->get_field_id( 'show-view-on-instagram-button' ); ?>"
755
- name="<?php echo $this->get_field_name( 'show-view-on-instagram-button' ); ?>"/>
756
- <label for="<?php echo $this->get_field_id( 'show-view-on-instagram-button' ); ?>"><?php _e( ' Display <strong>View on Instagram</strong> button', 'instagram-widget-by-wpzoom' ); ?></label>
757
- </p>
758
 
759
- <p>
760
- <input class="checkbox" type="checkbox" <?php checked( $instance['show-counts-on-hover'] ); ?>
761
- id="<?php echo $this->get_field_id( 'show-counts-on-hover' ); ?>"
762
- name="<?php echo $this->get_field_name( 'show-counts-on-hover' ); ?>"/>
763
- <label for="<?php echo $this->get_field_id( 'show-counts-on-hover' ); ?>"><?php _e( ' Show <strong>overlay with Instagram icon</strong> on hover', 'instagram-widget-by-wpzoom' ); ?></label>
764
- </p>
765
 
766
- <p>
767
- <input class="checkbox" type="checkbox" <?php checked( $instance['lazy-load-images'] ); ?>
768
- id="<?php echo $this->get_field_id( 'lazy-load-images' ); ?>"
769
- name="<?php echo $this->get_field_name( 'lazy-load-images' ); ?>"/>
770
- <label for="<?php echo $this->get_field_id( 'lazy-load-images' ); ?>"><?php _e( 'Lazy Load <strong>images</strong>', 'instagram-widget-by-wpzoom' ); ?></label>
771
- </p>
772
- <p>
773
- <input class="checkbox" type="checkbox" <?php checked( $instance['lightbox'] ); ?>
774
- id="<?php echo $this->get_field_id( 'lightbox' ); ?>"
775
- name="<?php echo $this->get_field_name( 'lightbox' ); ?>"/>
776
- <label for="<?php echo $this->get_field_id( 'lightbox' ); ?>"><?php _e( 'Open items in a <strong>lightbox</strong>', 'instagram-widget-by-wpzoom' ); ?></label>
777
- </p>
778
- <p>
779
- <input class="checkbox" type="checkbox" <?php checked( $instance['disable-video-thumbs'] ); ?>
780
- id="<?php echo $this->get_field_id( 'disable-video-thumbs' ); ?>"
781
- name="<?php echo $this->get_field_name( 'disable-video-thumbs' ); ?>"/>
782
- <label for="<?php echo $this->get_field_id( 'disable-video-thumbs' ); ?>"><?php _e( 'Hide video <strong>thumbnails</strong>', 'instagram-widget-by-wpzoom' ); ?></label>
783
- </p>
784
- <p>
785
- <input class="checkbox" type="checkbox" <?php checked( $instance['display-media-type-icons'] ); ?>
786
- id="<?php echo $this->get_field_id( 'display-media-type-icons' ); ?>"
787
- name="<?php echo $this->get_field_name( 'display-media-type-icons' ); ?>"/>
788
- <label for="<?php echo $this->get_field_id( 'display-media-type-icons' ); ?>"><?php _e( 'Show <strong>media type icons</strong>', 'instagram-widget-by-wpzoom' ); ?></label>
789
- </p>
790
- <p>
791
- <label for="<?php echo $this->get_field_id( 'button_text' ); ?>"><?php esc_html_e( 'Button Text:', 'instagram-widget-by-wpzoom' ); ?></label>
792
- <input class="widefat" id="<?php echo $this->get_field_id( 'button_text' ); ?>"
793
- name="<?php echo $this->get_field_name( 'button_text' ); ?>" type="text"
794
- value="<?php echo esc_attr( $instance['button_text'] ); ?>"/>
795
- </p>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
796
 
 
 
 
 
 
 
797
 
798
- <?php
799
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
800
  }
3
  * Exit if accessed directly.
4
  */
5
  if ( ! defined( 'ABSPATH' ) ) {
6
+ exit;
7
  }
8
 
9
  class Wpzoom_Instagram_Widget extends WP_Widget {
10
+ /**
11
+ * @var Wpzoom_Instagram_Widget_API
12
+ */
13
+ protected $api;
14
+
15
+ /**
16
+ * @var array Default widget settings.
17
+ */
18
+ protected $defaults;
19
+
20
+ public function __construct() {
21
+ parent::__construct(
22
+ 'wpzoom_instagram_widget',
23
+ esc_html__( 'Instagram Widget by WPZOOM (Legacy)', 'instagram-widget-by-wpzoom' ),
24
+ array(
25
+ 'classname' => 'zoom-instagram-widget',
26
+ 'description' => __( 'Displays a user\'s Instagram timeline.', 'instagram-widget-by-wpzoom' ),
27
+ )
28
+ );
29
+
30
+ $this->defaults = array(
31
+ 'title' => esc_html__( 'Instagram', 'instagram-widget-by-wpzoom' ),
32
+ 'button_text' => esc_html__( 'View on Instagram', 'instagram-widget-by-wpzoom' ),
33
+ 'image-limit' => 9,
34
+ 'show-view-on-instagram-button' => true,
35
+ 'show-counts-on-hover' => true,
36
+ 'show-user-info' => false,
37
+ 'show-user-bio' => false,
38
+ 'lazy-load-images' => true,
39
+ 'disable-video-thumbs' => false,
40
+ 'display-media-type-icons' => true,
41
+ 'lightbox' => true,
42
+ 'images-per-row' => 3,
43
+ 'image-width' => 120,
44
+ 'image-spacing' => 10,
45
+ 'image-resolution' => 'low_resolution',
46
+ 'username' => '',
47
+ );
48
+
49
+ add_action( 'wp_enqueue_scripts', array( $this, 'styles' ) );
50
+ add_action( 'wp_enqueue_scripts', array( $this, 'register_scripts' ) );
51
+
52
+ /**
53
+ * Enqueue styles and scripts for SiteOrigin Page Builder.
54
+ */
55
+ add_action( 'siteorigin_panel_enqueue_admin_scripts', array( $this, 'styles' ) );
56
+ add_action( 'siteorigin_panel_enqueue_admin_scripts', array( $this, 'register_scripts' ) );
57
+ add_action( 'siteorigin_panel_enqueue_admin_scripts', array( $this, 'enqueue_scripts' ) );
58
+ }
59
+
60
+ /**
61
+ * Convert $url to file path.
62
+ *
63
+ * @param $url
64
+ *
65
+ * @return string|string[]
66
+ */
67
+ function convert_url_to_path( $url ) {
68
+ return str_replace(
69
+ wp_get_upload_dir()['baseurl'],
70
+ wp_get_upload_dir()['basedir'],
71
+ $url
72
+ );
73
+ }
74
 
75
  /**
76
  * Sanitizes and prepares caption content for display.
100
  return trim( $caption );
101
  }
102
 
103
+ /**
104
+ * Load widget specific styles.
105
+ */
106
+ public function styles() {
107
+ wp_enqueue_style(
108
+ 'zoom-instagram-widget',
109
+ plugin_dir_url( __FILE__ ) . 'dist/styles/frontend/index.css',
110
+ array( 'dashicons' ),
111
+ WPZOOM_INSTAGRAM_VERSION
112
+ );
113
+
114
+ wp_enqueue_style(
115
+ 'magnific-popup',
116
+ plugin_dir_url( __FILE__ ) . 'dist/styles/library/magnific-popup.css',
117
+ array( 'dashicons' ),
118
+ WPZOOM_INSTAGRAM_VERSION
119
+ );
120
+
121
+ wp_enqueue_style(
122
+ 'swiper-css',
123
+ plugin_dir_url( __FILE__ ) . 'dist/styles/library/swiper.css',
124
+ array(),
125
+ '7.0.0-alpha.21'
126
+ );
127
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
128
 
129
+ /**
130
+ * Register widget specific scripts.
131
+ */
132
+ public function register_scripts() {
133
+ wp_register_script(
134
+ 'zoom-instagram-widget-lazy-load',
135
+ plugin_dir_url( __FILE__ ) . 'dist/scripts/library/lazy.js',
136
+ array( 'jquery' ),
137
+ filemtime( plugin_dir_path( __FILE__ ) . 'dist/scripts/library/lazy.js' ),
138
+ true
139
+ );
140
+
141
+ wp_register_script(
142
+ 'magnific-popup',
143
+ plugin_dir_url( __FILE__ ) . 'dist/scripts/library/magnific-popup.js',
144
+ array( 'jquery', 'underscore', 'wp-util' ),
145
+ filemtime( plugin_dir_path( __FILE__ ) . 'dist/scripts/library/magnific-popup.js' ),
146
+ true
147
+ );
148
+
149
+ wp_register_script(
150
+ 'swiper-js',
151
+ plugin_dir_url( __FILE__ ) . 'dist/scripts/library/swiper.js',
152
+ array(),
153
+ '7.0.0-alpha.21',
154
+ true
155
+ );
156
+
157
+ wp_register_script(
158
+ 'zoom-instagram-widget',
159
+ plugin_dir_url( __FILE__ ) . 'dist/scripts/frontend/index.js',
160
+ array( 'jquery', 'underscore', 'wp-util', 'magnific-popup', 'swiper-js' ),
161
+ WPZOOM_INSTAGRAM_VERSION,
162
+ true
163
+ );
164
+ }
165
 
166
+ /**
167
+ * Load widget specific scripts.
168
+ */
169
+ public function enqueue_scripts() {
170
+ wp_enqueue_script( 'zoom-instagram-widget-lazy-load' );
171
+ wp_enqueue_script( 'magnific-popup' );
172
+ wp_enqueue_script( 'swiper-js' );
173
+ wp_enqueue_script( 'zoom-instagram-widget' );
174
+ }
175
 
176
+ /**
177
+ * Front-end display of widget.
178
+ *
179
+ * @see WP_Widget::widget()
180
+ *
181
+ * @param array $args Widget arguments.
182
+ * @param array $instance Saved values from database.
183
+ */
184
+ public function widget( $args, $instance ) {
185
+ $this->api = Wpzoom_Instagram_Widget_API::getInstance();
186
 
187
+ $this->enqueue_scripts();
 
 
 
 
 
 
 
188
 
189
+ $instance = wp_parse_args( (array) $instance, $this->defaults );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
190
 
191
+ echo $args['before_widget'];
 
 
 
 
 
 
 
192
 
193
+ if ( $instance['title'] ) {
194
+ echo $args['before_title'] . apply_filters( 'widget_title', $instance['title'] ) . $args['after_title'];
195
+ }
 
 
 
 
196
 
197
+ $items = $this->api->get_items( $instance );
198
+ $errors = $this->api->errors->get_error_messages();
199
+
200
+ if ( ! is_array( $items ) ) {
201
+ $this->display_errors( $errors );
202
+ } else {
203
+ $user_info = $this->api->get_user_info( $instance['username'] );
204
+
205
+ if ( ! empty( $instance['show-user-info'] ) ) {
206
+ if (
207
+ is_object( $user_info ) &&
208
+ ! empty( $user_info ) &&
209
+ ! empty( $user_info->data )
210
+ ) {
211
+ $this->display_user_info( $instance, $user_info );
212
+ }
213
+ }
214
 
215
+ $this->display_items( $items['items'], $instance, $user_info );
216
+ $this->display_instagram_button( $instance, $items['username'] );
217
+ }
218
 
219
+ echo $args['after_widget'];
220
+ }
 
 
 
 
221
 
222
+ /**
223
+ * Output errors if widget is misconfigured and current user can manage options (plugin settings).
224
+ *
225
+ * @return void
226
+ */
227
+ protected function display_errors( $errors ) {
228
+ if ( current_user_can( 'edit_theme_options' ) ) {
229
+ ?>
230
+ <p>
231
+ <?php _e( 'Instagram Widget misconfigured or your Access Token <strong>expired</strong>. Please check', 'instagram-widget-by-wpzoom' ); ?>
232
+ <strong><a href="<?php echo admin_url( 'edit.php?post_type=wpz-insta_user' ); ?>" target="_blank"><?php _e( 'Instagram Settings Page', 'instagram-widget-by-wpzoom' ); ?></a></strong> <?php _e( 'and re-connect your account.', 'instagram-widget-by-wpzoom' ); ?>
233
+
234
+ </p>
235
+
236
+ <?php if ( ! empty( $errors ) ) : ?>
237
+ <ul>
238
+ <?php foreach ( $errors as $error ) : ?>
239
+ <li><?php echo $error; ?></li>
240
+ <?php endforeach; ?>
241
+ </ul>
242
+ <?php endif; ?>
243
+ <?php
244
+ } else {
245
+ echo '&#8230;';
246
+ }
247
+ }
248
 
249
+ protected function display_user_info( $instance, $user_info ) {
250
+ ?>
251
+ <div class="zoom-instagram-widget-user-info">
252
+ <?php if ( ! empty( $user_info->data->profile_picture ) ) : ?>
253
+ <div class="zoom-instagram-widget-user-info-picture">
254
+ <a target="_blank" rel="noopener nofollow"
255
+ href="<?php printf( 'https://instagram.com/%s?ref=badge', esc_attr( $user_info->data->username ) ); ?>"><img
256
+ width="90" src="<?php echo $user_info->data->profile_picture; ?>"
257
+ alt="<?php echo esc_attr( $user_info->data->full_name ); ?>"/></a>
258
+ </div>
259
+ <?php endif; ?>
260
+ <div class="zoom-instagram-widget-user-info-meta">
261
+ <div class="zoom-instagram-widget-user-info-about-data">
262
+ <div class="zoom-instagram-widget-user-info-names-wrapper">
263
+ <?php if ( ! empty( $user_info->data->full_name ) ) : ?>
264
+ <div class="zoom-instagram-widget-user-info-fullname">
265
+ <?php esc_html_e( $user_info->data->full_name, 'instagram-widget-by-wpzoom' ); ?>
266
+ </div>
267
+ <?php endif; ?>
268
+ <?php if ( ! empty( $user_info->data->username ) ) : ?>
269
+ <div class="zoom-instagram-widget-user-info-username">
270
+ <?php esc_html_e( '@' . $user_info->data->username, 'instagram-widget-by-wpzoom' ); ?>
271
+ </div>
272
+ <?php endif; ?>
273
+ </div>
274
+ <div>
275
+ <a class="zoom-instagram-widget-user-info-follow-button" target="_blank" rel="noopener nofollow"
276
+ href="<?php printf( 'https://instagram.com/%s?ref=badge', esc_attr( $user_info->data->username ) ); ?>">
277
+ <?php _e( 'Follow', 'instagram-widget-by-wpzoom' ); ?>
278
+ </a>
279
+ </div>
280
+ </div>
281
+ <div class="zoom-instagram-widget-user-info-stats">
282
+ <?php if ( ! empty( $user_info->data->counts->media ) ) : ?>
283
+ <div>
284
+ <div class="zoom-instagram-widget-user-info-counts"
285
+ title="<?php echo number_format( $user_info->data->counts->media ); ?>">
286
+ <?php echo $this->format_number( $user_info->data->counts->media ); ?>
287
+ </div>
288
+ <div class="zoom-instagram-widget-user-info-counts-subhead">
289
+ <?php _e( 'posts', 'instagram-widget-by-wpzoom' ); ?>
290
+ </div>
291
+ </div>
292
+ <?php endif; ?>
293
+ <?php if ( ! empty( $user_info->data->counts->followed_by ) ) : ?>
294
+ <div class="zoom-instagram-widget-user-info-middle-cell">
295
+ <div class="zoom-instagram-widget-user-info-counts"
296
+ title="<?php echo number_format( $user_info->data->counts->followed_by ); ?>">
297
+ <?php echo $this->format_number( $user_info->data->counts->followed_by ); ?>
298
+ </div>
299
+ <div class="zoom-instagram-widget-user-info-counts-subhead">
300
+ <?php _e( 'followers', 'instagram-widget-by-wpzoom' ); ?>
301
+ </div>
302
+ </div>
303
+ <?php endif; ?>
304
+ <?php if ( ! empty( $user_info->data->counts->follows ) ) : ?>
305
+ <div>
306
+ <div class="zoom-instagram-widget-user-info-counts"
307
+ title="<?php echo number_format( $user_info->data->counts->follows ); ?>">
308
+ <?php echo $this->format_number( $user_info->data->counts->follows ); ?>
309
+ </div>
310
+ <div class="zoom-instagram-widget-user-info-counts-subhead">
311
+ <?php _e( 'following', 'instagram-widget-by-wpzoom' ); ?>
312
+ </div>
313
+ </div>
314
+ <?php endif; ?>
315
+ </div>
316
+ </div>
317
+
318
+ </div>
319
+ <?php
320
+ if ( ! empty( $instance['show-user-bio'] ) ) {
321
+ if ( ! empty( $user_info->data->bio ) ) :
322
+ ?>
323
+ <div class="zoom-instagram-widget-user-info-bio"><?php echo nl2br( $user_info->data->bio ); ?></div>
324
+ <?php
325
+ endif;
326
+ }
327
+ ?>
328
 
329
+ <?php
330
+ }
 
 
 
 
331
 
332
+ public function format_number( $num ) {
333
+ if ( $num < 10000 ) {
334
+ return number_format( $num );
335
+ }
 
 
336
 
337
+ $units = array( '', 'k', 'm', 'b', 't' );
338
+ for ( $i = 0; $num >= 1000; $i ++ ) {
339
+ $num /= 1000;
340
+ }
 
 
341
 
342
+ return round( $num, 1 ) . $units[ $i ];
343
+ }
344
+
345
+ protected function display_items( $items, $instance, $user_info ) {
346
+ $count = 0;
347
+ $show_overlay = wp_validate_boolean( $instance['show-counts-on-hover'] );
348
+ $show_media_type_icons = wp_validate_boolean( $instance['display-media-type-icons'] );
349
+ $small_class = ( ! empty( $instance['image-width'] ) && $instance['image-width'] <= 180 ) ? 'small' : '';
350
+ $svg_icons = plugin_dir_url( __FILE__ ) . 'dist/images/frontend/wpzoom-instagram-icons.svg';
351
+ $lightbox = isset( $instance['lightbox'] ) ? wp_validate_boolean( $instance['lightbox'] ) : true;
352
+ $user_nfo = is_object( $user_info ) && ! empty( $user_info ) && ! empty( $user_info->data ) ? $user_info->data : false;
353
+ $username = false !== $user_nfo ? $user_nfo->username : '';
354
+ $avatar = false !== $user_nfo && ! empty( $user_nfo->profile_picture ) ? $user_nfo->profile_picture : plugin_dir_url( __FILE__ ) . 'dist/images/backend/user-avatar.jpg';
355
+ ?>
356
+ <ul class="zoom-instagram-widget__items layout-legacy zoom-instagram-widget__items--no-js"
357
+ data-images-per-row="<?php echo esc_attr( $instance['images-per-row'] ); ?>"
358
+ data-image-width="<?php echo esc_attr( $instance['image-width'] ); ?>"
359
+ data-image-spacing="<?php echo esc_attr( $instance['image-spacing'] ); ?>"
360
+ data-image-resolution="<?php echo esc_attr( $instance['image-resolution'] ); ?>"
361
+ data-image-lazy-loading="<?php echo esc_attr( $instance['lazy-load-images'] ); ?>"
362
+ data-lightbox="<?php echo esc_attr( $lightbox ); ?>">
363
+
364
+ <?php foreach ( $items as $item ) : ?>
365
+ <?php
366
+
367
+ $inline_attrs = '';
368
+ $overwrite_src = false;
369
+ $link = $item['link'];
370
+ $src = $item['image-url'];
371
+ $media_id = $item['image-id'];
372
+ $alt = esc_attr( $item['image-caption'] );
373
+ $likes = $item['likes_count'];
374
+ $type = in_array(
375
+ $item['type'],
376
+ array(
377
+ 'VIDEO',
378
+ 'CAROUSEL_ALBUM',
379
+ )
380
+ ) ? strtolower( $item['type'] ) : false;
381
+ $is_album = 'carousel_album' == $type;
382
+ $is_video = 'video' == $type;
383
+ $comments = $item['comments_count'];
384
+
385
+ if ( ! empty( $media_id ) && empty( $src ) ) {
386
+ $inline_attrs = 'data-media-id="' . esc_attr( $media_id ) . '"';
387
+ $inline_attrs .= 'data-nonce="' . wp_create_nonce( WPZOOM_Instagram_Image_Uploader::get_nonce_action( $media_id ) ) . '"';
388
+
389
+ $overwrite_src = true;
390
+ }
391
+
392
+ if (
393
+ ! empty( $media_id ) &&
394
+ ! empty( $src ) &&
395
+ ! file_exists( $this->convert_url_to_path( $src ) )
396
+ ) {
397
+ $inline_attrs = 'data-media-id="' . esc_attr( $media_id ) . '"';
398
+ $inline_attrs .= 'data-nonce="' . wp_create_nonce( WPZOOM_Instagram_Image_Uploader::get_nonce_action( $media_id ) ) . '"';
399
+ $inline_attrs .= 'data-regenerate-thumbnails="1"';
400
+
401
+ $overwrite_src = true;
402
+ }
403
+
404
+ $inline_attrs .= 'data-media-type="' . esc_attr( $type ?: 'image' ) . '"';
405
+
406
+ if ( $overwrite_src ) {
407
+ $src = $item['original-image-url'];
408
+ }
409
+ ?>
410
+
411
+ <li class="zoom-instagram-widget__item" <?php echo $inline_attrs; ?>>
412
+
413
+ <?php
414
+ $inline_style = 'width:' . esc_attr( $instance['image-width'] ) . 'px;';
415
+ $inline_style .= 'height:' . esc_attr( $instance['image-width'] ) . 'px;';
416
+ if ( empty( $instance['lazy-load-images'] ) ) {
417
+ $inline_style .= "background-image: url('" . $src . "');";
418
+ }
419
+
420
+ if ( $show_overlay ) :
421
+ ?>
422
+ <div class="hover-layout zoom-instagram-widget__overlay zoom-instagram-widget__black <?php echo $small_class; ?>">
423
+ <?php if ( $show_media_type_icons && ! empty( $type ) ) : ?>
424
+ <svg class="svg-icon" shape-rendering="geometricPrecision">
425
+ <use xlink:href="<?php echo esc_url( $svg_icons ); ?>#<?php echo $type; ?>"></use>
426
+ </svg>
427
+ <?php endif; ?>
428
+
429
+ <?php if ( ! empty( $likes ) && ! empty( $comments ) ) : ?>
430
+ <div class="hover-controls">
431
+ <span class="dashicons dashicons-heart"></span>
432
+ <span class="counter"><?php echo $this->format_number( $likes ); ?></span>
433
+ <span class="dashicons dashicons-format-chat"></span>
434
+ <span class="counter"><?php echo $this->format_number( $comments ); ?></span>
435
+ </div>
436
+ <?php endif; ?>
437
+ <div class="zoom-instagram-icon-wrap">
438
+ <a class="zoom-svg-instagram-stroke" href="<?php echo $link; ?>" rel="noopener nofollow"
439
+ target="_blank" title="<?php echo $alt; ?>"></a>
440
+ </div>
441
+
442
+
443
+ <a class="zoom-instagram-link" data-src="<?php echo $src; ?>"
444
+ style="<?php echo $inline_style; ?>"
445
+ data-mfp-src="<?php echo $media_id; ?>"
446
+ href="<?php echo $link; ?>" target="_blank" rel="noopener nofollow" title="<?php echo $alt; ?>"
447
+ >
448
+ </a>
449
+ </div>
450
+ <?php else : ?>
451
+ <a class="zoom-instagram-link" data-src="<?php echo $src; ?>"
452
+ style="<?php echo $inline_style; ?>"
453
+ data-mfp-src="<?php echo $media_id; ?>"
454
+ href="<?php echo $link; ?>" target="_blank" rel="noopener nofollow" title="<?php echo $alt; ?>"
455
+ >
456
+ <?php if ( $show_media_type_icons && ! empty( $type ) ) : ?>
457
+ <svg class="svg-icon" shape-rendering="geometricPrecision">
458
+ <use xlink:href="<?php echo esc_url( $svg_icons ); ?>#<?php echo $type; ?>"></use>
459
+ </svg>
460
+ <?php endif; ?>
461
+ </a>
462
+ <?php endif; ?>
463
+ </li>
464
+
465
+ <?php
466
+ if ( ++ $count === $instance['image-limit'] ) {
467
+ break;
468
+ }
469
+ ?>
470
+
471
+ <?php endforeach; ?>
472
+
473
+ </ul>
474
+
475
+ <?php if ( $lightbox ) : ?>
476
+ <div class="wpz-insta-lightbox-wrapper mfp-hide">
477
+ <div class="swiper-container">
478
+ <div class="swiper-wrapper">
479
+ <?php
480
+ $amount = count( $items );
481
+ $count = 0;
482
+ foreach ( $items as $item ) :
483
+ $count++;
484
+ $media_id = $item['image-id'];
485
+ $link = $item['link'];
486
+ $src = $item['local-image-url'];
487
+ $alt = esc_attr( $item['image-caption'] );
488
+ $type = in_array( $item['type'], array( 'VIDEO', 'CAROUSEL_ALBUM' ) ) ? strtolower( $item['type'] ) : false;
489
+ $is_album = 'carousel_album' == $type;
490
+ $is_video = 'video' == $type;
491
+ $children = $is_album && isset( $item['children'] ) && is_object( $item['children'] ) && isset( $item['children']->data ) ? $item['children']->data : false; ?>
492
+
493
+ <div data-uid="<?php echo $media_id; ?>" class="swiper-slide wpz-insta-lightbox-item">
494
+ <div class="wpz-insta-lightbox">
495
+ <div class="image-wrapper">
496
+ <?php if ( $is_album && false !== $children ) : ?>
497
+ <div class="swiper-container">
498
+ <div class="swiper-wrapper wpz-insta-album-images">
499
+ <?php foreach ( $children as $child ) :
500
+ $child_type = property_exists( $child, 'media_type' ) && in_array( $child->media_type, array( 'VIDEO', 'CAROUSEL_ALBUM' ) ) ? strtolower( $child->media_type ) : 'image';
501
+ $thumb = 'video' == $child_type && property_exists( $child, 'thumbnail_url' ) ? strtolower( $child->thumbnail_url ) : '';?>
502
+
503
+ <div class="swiper-slide wpz-insta-album-image" data-media-type="<?php echo esc_attr( $child_type ); ?>">
504
+ <?php if ( 'video' == $child_type ) : ?>
505
+ <video controls preload="metadata" poster="<?php echo esc_attr( $thumb ); ?>">
506
+ <source src="<?php echo esc_url( $child->media_url ); ?>" type="video/mp4"/>
507
+ <?php echo esc_html( $alt ); ?>
508
+ </video>
509
+ <?php else : ?>
510
+ <img src="<?php echo esc_url( $child->media_url ); ?>" alt="<?php echo $alt; ?>"/>
511
+ <?php endif; ?>
512
+ </div>
513
+ <?php endforeach; ?>
514
+ </div>
515
+
516
+ <div class="swiper-pagination"></div>
517
+ <div class="swiper-button-prev"></div>
518
+ <div class="swiper-button-next"></div>
519
+ </div>
520
+ <?php else : ?>
521
+ <img src="<?php echo esc_url( $src ); ?>" alt="<?php echo $alt; ?>"/>
522
+ <?php endif; ?>
523
+ </div>
524
+ <div class="details-wrapper">
525
+ <div class="wpz-insta-header">
526
+ <div class="wpz-insta-avatar">
527
+ <img src="<?php echo esc_url( $avatar ); ?>" alt="<?php echo esc_attr( $user_info->data->full_name ); ?>" width="42" height="42"/>
528
+ </div>
529
+ <div class="wpz-insta-buttons">
530
+ <div class="wpz-insta-username">
531
+ <a rel="noopener" target="_blank" href="<?php printf( 'https://instagram.com/%s', esc_attr( $username ) ); ?>"><?php echo esc_html( $username ); ?></a>
532
+ </div>
533
+ <div>&bull;</div>
534
+ <div class="wpz-insta-follow">
535
+ <a target="_blank" rel="noopener"
536
+ href="<?php printf( 'https://instagram.com/%s?ref=badge', esc_attr( $username ) ); ?>">
537
+ <?php _e( 'Follow', 'wpzoom-instagram-widget' ); ?>
538
+ </a>
539
+ </div>
540
+ </div>
541
+ </div>
542
+ <?php if ( ! empty( $item['image-caption'] ) ) : ?>
543
+ <div class="wpz-insta-caption">
544
+ <?php echo self::filter_caption( $item['image-caption'] ); ?>
545
+ </div>
546
+ <?php endif; ?>
547
+
548
+ <?php if ( ! empty( $item['timestamp'] ) ) : ?>
549
+ <div class="wpz-insta-date">
550
+ <?php printf( __( '%s ago' ), human_time_diff( strtotime( $item['timestamp'] ) ) ); ?>
551
+ </div>
552
+ <?php endif; ?>
553
+
554
+ <div class="view-post">
555
+ <a href="<?php echo esc_url( $link ); ?>" target="_blank" rel="noopener"><span class="dashicons dashicons-instagram"></span><?php _e( 'View on Instagram', 'wpzoom-instagram-widget' ); ?></a>
556
+ <span class="delimiter">|</span>
557
+ <div class="wpz-insta-pagination"><?php printf( '%d/%d', $count, $amount ); ?></div>
558
+ </div>
559
+ </div>
560
+ </div>
561
+ </div>
562
+ <?php endforeach; ?>
563
+ </div>
564
+
565
+ <div class="swiper-button-prev"></div>
566
+ <div class="swiper-button-next"></div>
567
+ </div>
568
+ </div>
569
+ <?php endif; ?>
570
+
571
+ <div style="clear:both;"></div>
572
+ <?php
573
+ }
574
 
575
+ protected function display_instagram_button( $instance, $username ) {
576
+ $show_view_on_instagram_button = $instance['show-view-on-instagram-button'];
577
+
578
+ if ( ! $show_view_on_instagram_button ) {
579
+ return;
580
+ }
581
 
582
+ ?>
583
+ <div class="zoom-instagram-widget__follow-me">
584
+ <a href="<?php printf( 'https://instagram.com/%s?ref=badge', esc_attr( $username ) ); ?>"
585
+ class="ig-b- ig-b-v-24" rel="noopener nofollow"
586
+ target="_blank"><?php echo esc_attr( $instance['button_text'] ); ?></a>
587
+ </div>
588
+ <?php
589
+ }
590
+
591
+ /**
592
+ * Sanitize widget form values as they are saved.
593
+ *
594
+ * @see WP_Widget::update()
595
+ *
596
+ * @param array $new_instance Values just sent to be saved.
597
+ * @param array $old_instance Previously saved values from database.
598
+ *
599
+ * @return array Updated safe values to be saved.
600
+ */
601
+ public function update( $new_instance, $old_instance ) {
602
+ $instance['title'] = sanitize_text_field( $new_instance['title'] );
603
+ $instance['button_text'] = sanitize_text_field( $new_instance['button_text'] );
604
+
605
+ $instance['image-limit'] = ( 0 !== (int) $new_instance['image-limit'] ) ? (int) $new_instance['image-limit'] : null;
606
+
607
+ $instance['images-per-row'] = ( 0 !== (int) $new_instance['images-per-row'] ) ? (int) $new_instance['images-per-row'] : null;
608
+ $instance['image-width'] = ( 0 !== (int) $new_instance['image-width'] ) ? (int) $new_instance['image-width'] : null;
609
+ $instance['image-spacing'] = ( 0 <= (int) $new_instance['image-spacing'] ) ? (int) $new_instance['image-spacing'] : null;
610
+ $instance['image-resolution'] = ! empty( $new_instance['image-resolution'] ) ? $new_instance['image-resolution'] : $this->defaults['image-resolution'];
611
+ $instance['username'] = ! empty( $new_instance['username'] ) ? $new_instance['username'] : $this->defaults['username'];
612
+
613
+ $instance['show-view-on-instagram-button'] = ! empty( $new_instance['show-view-on-instagram-button'] );
614
+ $instance['show-counts-on-hover'] = ! empty( $new_instance['show-counts-on-hover'] );
615
+ $instance['show-user-info'] = ! empty( $new_instance['show-user-info'] );
616
+ $instance['show-user-bio'] = ! empty( $new_instance['show-user-bio'] );
617
+ $instance['lazy-load-images'] = ! empty( $new_instance['lazy-load-images'] );
618
+ $instance['disable-video-thumbs'] = ! empty( $new_instance['disable-video-thumbs'] );
619
+ $instance['display-media-type-icons'] = ! empty( $new_instance['display-media-type-icons'] );
620
+ $instance['lightbox'] = ! empty( $new_instance['lightbox'] );
621
+
622
+ return $instance;
623
+ }
624
+
625
+ /**
626
+ * Back-end widget form.
627
+ *
628
+ * @see WP_Widget::form()
629
+ *
630
+ * @param array $instance Previously saved values from database.
631
+ *
632
+ * @return string|void
633
+ */
634
+ public function form( $instance ) {
635
+ $this->api = Wpzoom_Instagram_Widget_API::getInstance();
636
+
637
+ $instance = wp_parse_args( (array) $instance, $this->defaults );
638
+ ?>
639
+
640
+ <p style="color: #d54e21">
641
+ <?php
642
+ printf(
643
+ __( 'This widget will be discontinued in future updates, and we highly recommend adding your <a href="%1$s" target="_blank">Instagram Feeds</a> using the new <a href="%1$s" target="_blank">Gutenberg block</a> or <a href="%3$s" target="_blank">shortcode</a>.', 'instagram-widget-by-wpzoom' ),
644
+ admin_url( 'edit.php?post_type=wpz-insta_user' ),
645
+ esc_url( 'https://www.wpzoom.com/documentation/instagram-widget/how-to-insert-the-widget-in-the-block-editor/' ),
646
+ esc_url( 'https://www.wpzoom.com/documentation/instagram-widget/instagram-widget-how-to-embed-the-instagram-shortcode-in-elementor/' )
647
+ );
648
+ ?>
649
+
650
+
651
+ </p>
652
+
653
+ <p>
654
+ <label for="<?php echo $this->get_field_id( 'title' ); ?>"><?php esc_html_e( 'Title:', 'instagram-widget-by-wpzoom' ); ?></label>
655
+ <input class="widefat" id="<?php echo $this->get_field_id( 'title' ); ?>"
656
+ name="<?php echo $this->get_field_name( 'title' ); ?>" type="text"
657
+ value="<?php echo esc_attr( $instance['title'] ); ?>"/>
658
+ </p>
659
+
660
+
661
+ <p>
662
+ <label for="<?php echo $this->get_field_id( 'image-limit' ); ?>"><?php esc_html_e( 'Number of Images Shown:', 'instagram-widget-by-wpzoom' ); ?></label>
663
+ <input class="widefat" id="<?php echo $this->get_field_id( 'image-limit' ); ?>"
664
+ name="<?php echo $this->get_field_name( 'image-limit' ); ?>" type="number" min="1" max="30"
665
+ value="<?php echo esc_attr( $instance['image-limit'] ); ?>"/>
666
+ </p>
667
+
668
+ <p>
669
+ <label for="<?php echo $this->get_field_id( 'images-per-row' ); ?>"><?php esc_html_e( 'Desired number of Images per row:', 'instagram-widget-by-wpzoom' ); ?></label>
670
+ <input class="widefat" id="<?php echo $this->get_field_id( 'images-per-row' ); ?>"
671
+ name="<?php echo $this->get_field_name( 'images-per-row' ); ?>" type="number" min="1" max="20"
672
+ value="<?php echo esc_attr( $instance['images-per-row'] ); ?>"/>
673
+ </p>
674
+
675
+ <p>
676
+ <label for="<?php echo $this->get_field_id( 'image-width' ); ?>"><?php esc_html_e( 'Desired Image width in pixels:', 'instagram-widget-by-wpzoom' ); ?>
677
+ <small>(Just integer)</small>
678
+ </label>
679
+ <input class="widefat" id="<?php echo $this->get_field_id( 'image-width' ); ?>"
680
+ name="<?php echo $this->get_field_name( 'image-width' ); ?>" type="number" min="20"
681
+ value="<?php echo esc_attr( $instance['image-width'] ); ?>"/>
682
+ </p>
683
+
684
+ <p>
685
+ <label for="<?php echo $this->get_field_id( 'image-resolution' ); ?>"><?php esc_html_e( 'Force image resolution:', 'instagram-widget-by-wpzoom' ); ?></label>
686
+ <select class="widefat" id="<?php echo $this->get_field_id( 'image-resolution' ); ?>"
687
+ name="<?php echo $this->get_field_name( 'image-resolution' ); ?>">
688
+ <option value="default_algorithm" <?php selected( $instance['image-resolution'], 'default_algorithm' ); ?>>
689
+ <?php _e( 'By Default Algorithm', 'instagram-widget-by-wpzoom' ); ?>
690
+ </option>
691
+ <option value="thumbnail" <?php selected( $instance['image-resolution'], 'thumbnail' ); ?>>
692
+ <?php _e( 'Thumbnail ( 150x150px )', 'instagram-widget-by-wpzoom' ); ?>
693
+ </option>
694
+ <option value="low_resolution" <?php selected( $instance['image-resolution'], 'low_resolution' ); ?>>
695
+ <?php _e( 'Low Resolution ( 320x320px )', 'instagram-widget-by-wpzoom' ); ?>
696
+
697
+ </option>
698
+ <option value="standard_resolution" <?php selected( $instance['image-resolution'], 'standard_resolution' ); ?>>
699
+ <?php _e( 'Standard Resolution ( 640x640px )', 'instagram-widget-by-wpzoom' ); ?>
700
+ </option>
701
+ </select>
702
+ </p>
703
+
704
+ <p>
705
+ <label for="<?php echo $this->get_field_id( 'image-spacing' ); ?>"><?php esc_html_e( 'Image spacing in pixels:', 'instagram-widget-by-wpzoom' ); ?>
706
+ <small>(Just integer)</small>
707
+ </label>
708
+ <input class="widefat" id="<?php echo $this->get_field_id( 'image-spacing' ); ?>"
709
+ name="<?php echo $this->get_field_name( 'image-spacing' ); ?>" type="number" min="0" max="50"
710
+ value="<?php echo esc_attr( $instance['image-spacing'] ); ?>"/>
711
+ </p>
712
+
713
+ <p class="description">
714
+ <?php
715
+ echo wp_kses_post(
716
+ __( 'Fields above do not influence directly widget appearance. Final number of images per row and image width is calculated depending on browser resolution. This ensures your photos look beautiful on all devices.', 'instagram-widget-by-wpzoom' )
717
+ );
718
+ ?>
719
+ </p>
720
+
721
+ <p>
722
+ <label for="<?php echo $this->get_field_id( 'username' ); ?>"><strong><?php esc_html_e( 'Instagram @username:', 'instagram-widget-by-wpzoom' ); ?></strong></label>
723
+ <input class="widefat" id="<?php echo $this->get_field_id( 'username' ); ?>"
724
+ name="<?php echo $this->get_field_name( 'username' ); ?>" type="text"
725
+ value="<?php echo esc_attr( $instance['username'] ); ?>"/>
726
+ </p>
727
+
728
+ <p class="description">
729
+
730
+ <?php
731
+ printf(
732
+ __( 'If you have already connected your Instagram account in the <a href="%1$s">plugin settings</a>, leave this field empty. You can use this option if you want to display the feed of a different Instagram account.', 'instagram-widget-by-wpzoom' ),
733
+ admin_url( 'edit.php?post_type=wpz-insta_user' )
734
+ );
735
+ ?>
736
+
737
+ </p>
738
+
739
+ <p>
740
+ <input class="checkbox" type="checkbox" <?php checked( $instance['show-user-info'] ); ?>
741
+ id="<?php echo $this->get_field_id( 'show-user-info' ); ?>"
742
+ name="<?php echo $this->get_field_name( 'show-user-info' ); ?>"/>
743
+ <label for="<?php echo $this->get_field_id( 'show-user-info' ); ?>"><?php _e( ' Display <strong>User Details</strong>', 'instagram-widget-by-wpzoom' ); ?></label>
744
+ </p>
745
+
746
+ <p>
747
+ <input class="checkbox" type="checkbox" <?php checked( $instance['show-user-bio'] ); ?>
748
+ id="<?php echo $this->get_field_id( 'show-user-bio' ); ?>"
749
+ name="<?php echo $this->get_field_name( 'show-user-bio' ); ?>"/>
750
+ <label for="<?php echo $this->get_field_id( 'show-user-bio' ); ?>"><?php _e( ' Display <strong>Bio in User Details</strong>', 'instagram-widget-by-wpzoom' ); ?></label>
751
+ </p>
752
+
753
+ <p>
754
+ <input class="checkbox" type="checkbox" <?php checked( $instance['show-view-on-instagram-button'] ); ?>
755
+ id="<?php echo $this->get_field_id( 'show-view-on-instagram-button' ); ?>"
756
+ name="<?php echo $this->get_field_name( 'show-view-on-instagram-button' ); ?>"/>
757
+ <label for="<?php echo $this->get_field_id( 'show-view-on-instagram-button' ); ?>"><?php _e( ' Display <strong>View on Instagram</strong> button', 'instagram-widget-by-wpzoom' ); ?></label>
758
+ </p>
759
+
760
+ <p>
761
+ <input class="checkbox" type="checkbox" <?php checked( $instance['show-counts-on-hover'] ); ?>
762
+ id="<?php echo $this->get_field_id( 'show-counts-on-hover' ); ?>"
763
+ name="<?php echo $this->get_field_name( 'show-counts-on-hover' ); ?>"/>
764
+ <label for="<?php echo $this->get_field_id( 'show-counts-on-hover' ); ?>"><?php _e( ' Show <strong>overlay with Instagram icon</strong> on hover', 'instagram-widget-by-wpzoom' ); ?></label>
765
+ </p>
766
+
767
+ <p>
768
+ <input class="checkbox" type="checkbox" <?php checked( $instance['lazy-load-images'] ); ?>
769
+ id="<?php echo $this->get_field_id( 'lazy-load-images' ); ?>"
770
+ name="<?php echo $this->get_field_name( 'lazy-load-images' ); ?>"/>
771
+ <label for="<?php echo $this->get_field_id( 'lazy-load-images' ); ?>"><?php _e( 'Lazy Load <strong>images</strong>', 'instagram-widget-by-wpzoom' ); ?></label>
772
+ </p>
773
+ <p>
774
+ <input class="checkbox" type="checkbox" <?php checked( $instance['lightbox'] ); ?>
775
+ id="<?php echo $this->get_field_id( 'lightbox' ); ?>"
776
+ name="<?php echo $this->get_field_name( 'lightbox' ); ?>"/>
777
+ <label for="<?php echo $this->get_field_id( 'lightbox' ); ?>"><?php _e( 'Open items in a <strong>lightbox</strong>', 'instagram-widget-by-wpzoom' ); ?></label>
778
+ </p>
779
+ <p>
780
+ <input class="checkbox" type="checkbox" <?php checked( $instance['disable-video-thumbs'] ); ?>
781
+ id="<?php echo $this->get_field_id( 'disable-video-thumbs' ); ?>"
782
+ name="<?php echo $this->get_field_name( 'disable-video-thumbs' ); ?>"/>
783
+ <label for="<?php echo $this->get_field_id( 'disable-video-thumbs' ); ?>"><?php _e( 'Hide video <strong>thumbnails</strong>', 'instagram-widget-by-wpzoom' ); ?></label>
784
+ </p>
785
+ <p>
786
+ <input class="checkbox" type="checkbox" <?php checked( $instance['display-media-type-icons'] ); ?>
787
+ id="<?php echo $this->get_field_id( 'display-media-type-icons' ); ?>"
788
+ name="<?php echo $this->get_field_name( 'display-media-type-icons' ); ?>"/>
789
+ <label for="<?php echo $this->get_field_id( 'display-media-type-icons' ); ?>"><?php _e( 'Show <strong>media type icons</strong>', 'instagram-widget-by-wpzoom' ); ?></label>
790
+ </p>
791
+ <p>
792
+ <label for="<?php echo $this->get_field_id( 'button_text' ); ?>"><?php esc_html_e( 'Button Text:', 'instagram-widget-by-wpzoom' ); ?></label>
793
+ <input class="widefat" id="<?php echo $this->get_field_id( 'button_text' ); ?>"
794
+ name="<?php echo $this->get_field_name( 'button_text' ); ?>" type="text"
795
+ value="<?php echo esc_attr( $instance['button_text'] ); ?>"/>
796
+ </p>
797
+
798
+
799
+ <?php
800
+ }
801
  }
css/admin-instagram-widget.css DELETED
@@ -1,144 +0,0 @@
1
- .zoom-instagram-widget .button-connect {
2
- /*height: auto;*/
3
- /*padding: 9px 12px;*/
4
- color: #fff;
5
- border: 1px solid #1c5380;
6
- border-radius: 3px;
7
- background-color: #6f97b6;
8
- background-image: -webkit-linear-gradient(top, #6f97b6, #3f729b);
9
- background-image: linear-gradient(to bottom, #6f97b6, #3f729b);
10
- background-position: 50% 50%;
11
- box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1), inset 1px 0 0 rgba(255, 255, 255, 0.05), inset -1px 0 0 rgba(255, 255, 255, 0.05), inset 0 1px 0 rgba(255, 255, 255, 0.2);
12
- text-shadow: 0 1px 1px #1c5380;
13
- }
14
-
15
- .zoom-instagram-widget .button-connect:focus,
16
- .zoom-instagram-widget .button-connect:hover {
17
- border-color: #1c5380;
18
- color: #fff;
19
- background-image: -webkit-linear-gradient(top, #5D87A8, #3f729b);
20
- background-image: linear-gradient(to bottom, #5D87A8, #3f729b);
21
- }
22
-
23
- .zoom-instagram-widget {
24
- background: #fff;
25
- padding: 30px;
26
- border: 1px solid #DDD;
27
- border-radius: 3px;
28
- margin: 30px 10px 30px 0 !important;
29
- box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.1);
30
- max-width: 700px;
31
- }
32
-
33
- .zoom-themes-link {
34
- border: 1px solid #E2E9EC;
35
- background: #F7FAFA url('../images/wpzoom.png') no-repeat center bottom;
36
- padding: 30px 30px 260px 30px;
37
- border-radius: 3px;
38
- margin: 30px 0 30px 0 !important;
39
- box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.1);
40
- max-width: 700px;
41
- text-align: center;
42
- }
43
-
44
- .zoom-themes-link p {
45
- font-size: 15px;
46
- line-height: 1.6;
47
- }
48
-
49
- .cta-button {
50
- text-align: center;
51
- text-decoration: none;
52
- color: #fff;
53
- background: #3EBD3E;
54
- padding: 10px 15px;
55
- display: inline-block;
56
- border-radius: 3px;
57
- box-shadow: 0 -1px 1px rgba(0,0,0, 0.2) inset;
58
- border: 1px solid #259425;
59
- font-size: 16px;
60
- text-shadow: 1px 1px rgba(0, 0, 0, 0.3);
61
- }
62
- .cta-button:hover {
63
- background: #2A9B2A;
64
- color: #fff;
65
- }
66
-
67
- #wpzoom-instagram-widget-settings_transient-lifetime-value{
68
- max-width: 150px;
69
- float: left;
70
- }
71
-
72
- #wpzoom-instagram-widget-settings_transient-lifetime-type{
73
- float: left;
74
- max-width: 100px;
75
- }
76
-
77
- .zoom-instagram-widget .wpzoom-instagram-widget-with-access-token-group {
78
- background-color: #fff6f6;
79
- }
80
-
81
- .zoom-instagram-widget .wpzoom-instagram-widget-with-basic-access-token-group,
82
- .zoom-instagram-widget .wpzoom-instagram-widget-without-access-token-group {
83
- background-color: #e0f0e3;
84
- }
85
-
86
- .zoom-instagram-widget .wpzoom-instagram-widget-with-basic-access-token-group th,
87
- .zoom-instagram-widget .wpzoom-instagram-widget-without-access-token-group th {
88
- padding-left: 10px;
89
- }
90
-
91
- .zoom-instagram-widget .label-wrap input[type=radio]:checked + label[for='wpzoom-instagram-widget-settings_with-basic-access-token'],
92
- .zoom-instagram-widget .label-wrap input[type=radio]:checked + label[for='wpzoom-instagram-widget-settings_without-access-token'] {
93
- background-color: #e0f0e3;
94
- }
95
-
96
- .zoom-instagram-widget .label-wrap input[type=radio]:checked + label[for='wpzoom-instagram-widget-settings_with-access-token'] {
97
- background-color: #fff6f6;
98
- }
99
-
100
- .zoom-instagram-widget .wpzoom-instagram-widget-settings-request-type-wrapper {
101
- display: flex;
102
- flex-direction: column;
103
- }
104
-
105
- .zoom-instagram-widget .wpzoom-instagram-widget-settings-request-type-wrapper .label-wrap {
106
- display: flex;
107
- align-items: center;
108
- }
109
-
110
- .zoom-instagram-widget .wpzoom-instagram-widget-settings-request-type-wrapper .label-wrap input[type=radio] {
111
- z-index: 2;
112
- }
113
-
114
- .zoom-instagram-widget .wpzoom-instagram-widget-settings-request-type-wrapper .label-wrap label {
115
- padding: 10px;
116
- width: 100%;
117
- margin-left: -30px;
118
- padding-left: 40px;
119
- z-index: 1;
120
- }
121
-
122
- .zoom-instagram-widget form h2 {
123
- border-top: 2px solid #eee;
124
- padding-top: 40px;
125
- }
126
-
127
-
128
- .zoom-instagram-widget .wpzoom-instagram-widget-with-token-group > td {
129
- padding-right: 0px;
130
- }
131
-
132
-
133
- .zoom-instagram-user-avatar-media-uploader .remove-avatar {
134
- margin: 6px 20px;
135
- color: #a00;
136
- }
137
-
138
- .zoom-instagram-user-avatar-media-uploader .file-wrapper{
139
- margin-top: 10px;
140
- }
141
- #wpzoom-instagram-widget-settings-user-info-biography{
142
- width: 100%;
143
- min-height: 100px;
144
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
dist/images/backend/user-avatar.jpg ADDED
Binary file
{images → dist/images/frontend}/wpzoom-instagram-icons.svg RENAMED
File without changes
dist/scripts/backend/block.asset.php ADDED
@@ -0,0 +1 @@
 
1
+ <?php return array('dependencies' => array('lodash', 'wp-api-fetch', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-compose', 'wp-core-data', 'wp-data', 'wp-deprecated', 'wp-element', 'wp-i18n', 'wp-polyfill', 'wp-url'), 'version' => '2314fc3e629d10b094fb05397afc5923');
dist/scripts/backend/block.js ADDED
@@ -0,0 +1,2 @@
 
 
1
+ !function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=20)}([function(e,t){e.exports=window.wp.components},function(e,t){e.exports=window.wp.i18n},function(e,t){e.exports=window.wp.element},function(e,t){e.exports=window.lodash},function(e,t){e.exports=window.wp.blocks},function(e,t){e.exports=window.wp.data},function(e,t){e.exports=window.wp.blockEditor},function(e,t){e.exports=window.wp.compose},function(e,t){e.exports=window.wp.coreData},function(e,t){e.exports=window.wp.apiFetch},function(e,t){e.exports=window.wp.url},,,,function(e,t){e.exports=window.wp.deprecated},,,,,,function(e,t,r){"use strict";r.r(t);var n=r(3),o=r(4),a=r(1),c=r(6),i=r(5),u=r(8),l=r(2),s=(r(14),r(7)),f=r(9),p=r.n(f),d=r(10),b=r(0);function m(){return(m=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}function y(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,o,a=[],_n=!0,c=!1;try{for(r=r.call(e);!(_n=(n=r.next()).done)&&(a.push(n.value),!t||a.length!==t);_n=!0);}catch(e){c=!0,o=e}finally{try{_n||null==r.return||r.return()}finally{if(c)throw o}}return a}}(e,t)||function(e,t){if(e){if("string"==typeof e)return w(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?w(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function w(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function g(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function O(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?g(Object(r),!0).forEach((function(t){v(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):g(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function v(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function j(e){var t=e.className;return React.createElement(b.Placeholder,{className:t},Object(a.__)("Block rendered as empty."))}function h(e){var t=e.response,r=e.className,n=Object(a.sprintf)(// translators: %s: error message describing the problem
2
+ Object(a.__)("Error loading block: %s"),t.errorMsg);return React.createElement(b.Placeholder,{className:r},n)}function E(e){var t=e.children,r=e.showLoader;return React.createElement("div",{style:{position:"relative"}},r&&React.createElement("div",{style:{position:"absolute",top:"50%",left:"50%",marginTop:"-9px",marginLeft:"-9px"}},React.createElement(b.Spinner,null)),React.createElement("div",{style:{opacity:r?"0.3":1}},t))}function P(e){var t=e.attributes,r=e.block,a=e.className,c=e.httpMethod,i=void 0===c?"GET":c,u=e.urlQueryArgs,f=e.EmptyResponsePlaceholder,b=void 0===f?j:f,w=e.ErrorResponsePlaceholder,g=void 0===w?h:w,v=e.LoadingResponsePlaceholder,P=void 0===v?E:v,R=Object(l.useRef)(!0),S=y(Object(l.useState)(!1),2),_=S[0],x=S[1],A=Object(l.useRef)(),k=y(Object(l.useState)(null),2),I=k[0],z=k[1],T=Object(s.usePrevious)(e),M=y(Object(l.useState)(!1),2),D=M[0],N=M[1];function C(){if(R.current){N(!0);var e=t&&Object(o.__experimentalSanitizeBlockAttributes)(r,t),n="POST"===i,a=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return Object(d.addQueryArgs)("/wp/v2/block-renderer/".concat(e),O(O({context:"edit"},null!==t?{attributes:t}:{}),r))}(r,n?null:null!=e?e:null,u),c=n?{attributes:null!=e?e:null}:null,l=A.current=p()({path:a,data:c,method:n?"POST":"GET"}).then((function(e){R.current&&l===A.current&&e&&z(e.rendered)})).catch((function(e){R.current&&l===A.current&&z({error:!0,errorMsg:e.message})})).finally((function(){R.current&&l===A.current&&(N(!1),setTimeout((function(){window.dispatchEvent(new Event("wpzInstaServerSideRenderDone"))}),300))}));return l}}var F=Object(s.useDebounce)(C,500);Object(l.useEffect)((function(){return function(){R.current=!1}}),[]),Object(l.useEffect)((function(){void 0===T?C():Object(n.isEqual)(T,e)||F()})),Object(l.useEffect)((function(){if(D){var e=setTimeout((function(){x(!0)}),1e3);return function(){return clearTimeout(e)}}}),[D]);var L=!!I,B=""===I,Q=null==I?void 0:I.error;return D?React.createElement(P,m({},e,{showLoader:_}),L&&React.createElement(l.RawHTML,{className:a},I)):B||!L?React.createElement(b,e):Q?React.createElement(g,m({response:I},e)):React.createElement(l.RawHTML,{className:a},I)}var R=["urlQueryArgs","currentPostId"];function S(){return(S=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}function _(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function x(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var A={},k=Object(i.withSelect)((function(e){var t=e("core/editor");if(t){var r=t.getCurrentPostId();if(r&&"number"==typeof r)return{currentPostId:r}}return A}))((function(e){var t=e.urlQueryArgs,r=void 0===t?A:t,n=e.currentPostId,o=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,R),a=Object(l.useMemo)((function(){return n?function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?_(Object(r),!0).forEach((function(t){x(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):_(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}({post_id:n},r):r}),[n,r]);return React.createElement(P,S({urlQueryArgs:a},o))}));function I(e){return function(e){if(Array.isArray(e))return z(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return z(e,void 0);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?z(e,void 0):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function z(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function T(e,t,r,n,o,a,c){try{var i=e[a](c),u=i.value}catch(e){return void r(e)}i.done?t(u):Promise.resolve(u).then(n,o)}function M(e){return function(){var t=this,r=arguments;return new Promise((function(n,o){var a=e.apply(t,r);function c(e){T(a,n,o,c,i,"next",e)}function i(e){T(a,n,o,c,i,"throw",e)}c(void 0)}))}}var D=window.fetch;window.fetch=M(regeneratorRuntime.mark((function e(){var t,r,n=arguments;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=n.length>0?n.length<=0?void 0:n[0]:"",e.next=3,D.apply(void 0,n);case 3:return r=e.sent,t.includes("wpzoom/instagram-block")&&r.clone().json().then((function(e){return window.setTimeout((function(){return window.wpzInstaFrontendInit()}),300)})).catch((function(e){return console.error(e)})),e.abrupt("return",r);case 6:case"end":return e.stop()}}),e)}))),Object(o.registerBlockType)("wpzoom/instagram-block",{apiVersion:2,title:"Instagram Feed by WPZOOM",icon:"instagram",category:"wpzoom-blocks",attributes:{feed:{type:"integer",default:-1}},edit:function(e){var t=e.attributes.feed,r=e.setAttributes,o=(e.className,Object(c.useBlockProps)()),l=Object(i.useSelect)((function(e){var t=(0,e(u.store).getEntityRecords)("postType","wpz-insta_feed",Object(n.pickBy)({per_page:-1},(function(e){return!Object(n.isUndefined)(e)})));return{feedsList:Array.isArray(t)?t.map((function(e){return{value:e.id,label:"title"in e&&"rendered"in e.title?e.title.rendered:Object(a.__)("(No title)","instagram-widget-by-wpzoom")}})):t}})).feedsList;return null!=l&&l.length?React.createElement("div",o,React.createElement(c.InspectorControls,null,React.createElement(b.PanelBody,{title:Object(a.__)("Feed settings","instagram-widget-by-wpzoom")},React.createElement(b.SelectControl,{label:Object(a.__)("Feed to Display","instagram-widget-by-wpzoom"),value:t,options:[{label:Object(a.__)("— Select a Feed —","instagram-widget-by-wpzoom"),value:-1,disabled:!0,hidden:!0}].concat(I(l)),onChange:function(e){r({feed:Number(e)})}}))),t>0?React.createElement(k,{block:"wpzoom/instagram-block",attributes:e.attributes,EmptyResponsePlaceholder:function(){return React.createElement("span",null,Object(a.__)("Instagram: No feed to show.","instagram-widget-by-wpzoom"))}}):React.createElement(b.Card,{size:"large"},React.createElement(b.CardHeader,null,React.createElement(b.Flex,{align:"center",justify:"start",gap:2,wrap:!0},React.createElement(b.Icon,{icon:"instagram"}),React.createElement(b.__experimentalHeading,{level:"5"},Object(a.__)("Instagram Feed by WPZOOM","instagram-widget-by-wpzoom")))),React.createElement(b.CardBody,null,React.createElement(b.SelectControl,{className:"wpzoom-instagram-widget-select-feed",value:t,options:[{label:Object(a.__)("— Select a Feed to Display —","instagram-widget-by-wpzoom"),value:-1,disabled:!0,hidden:!0}].concat(I(l)),onChange:function(e){r({feed:Number(e)})}})))):React.createElement("div",o,React.createElement(b.Placeholder,{icon:"instagram",label:Object(a.__)("Instagram Feed by WPZOOM")},Array.isArray(l)?Object(a.__)("You must create some feeds to use this block properly.","instagram-widget-by-wpzoom"):React.createElement(b.Spinner,null)))}})}]);
dist/scripts/backend/index.asset.php ADDED
@@ -0,0 +1 @@
 
1
+ <?php return array('dependencies' => array('wp-polyfill'), 'version' => '7236b9a7020d68f531591de76deee25c');
dist/scripts/backend/index.js ADDED
@@ -0,0 +1 @@
 
1
+ !function(t){var e={};function n(i){if(e[i])return e[i].exports;var a=e[i]={i:i,l:!1,exports:{}};return t[i].call(a.exports,a,a.exports,n),a.l=!0,a.exports}n.m=t,n.c=e,n.d=function(t,e,i){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:i})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var i=Object.create(null);if(n.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var a in t)n.d(i,a,function(e){return t[e]}.bind(null,a));return i},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=13)}({13:function(t,e,n){"use strict";function i(t){return(i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}jQuery((function(t){var e=t();t.fn.imageMediaControl=function(){this.each((function(){var n=t(this),i={frame:function(){return this._frame||(this._frame=wp.media({title:n.data("title"),library:{type:n.data("type")},button:{text:n.data("button")},multiple:!1,selection:[]}),this._frame.on("open",this.updateFrame).state("library").on("select",this.select)),this._frame},select:function(){var t=n.find(".attachment-input").add(e.find("input#wpz-insta_account-photo")),i=this.get("selection"),a=i.pluck("id");t.val(""+a).trigger("change"),e.find("img.wpz-insta_profile-photo").attr("src",""+i.first().toJSON().sizes.thumbnail.url)},updateFrame:function(){},init:function(){var a=n.find(".file-wrapper"),s=n.find(".attachment-input, #wpz-insta_account-photo"),o=n.find(".add-media, #wpz-insta_edit-account-photo"),r=n.find(".remove-avatar, #wpz-insta_reset-account-photo");o.on("click",(function(n){n.preventDefault(),e=t(this).closest(".wpz-insta_account-photo-wrapper"),i.frame().open()})),r.on("click",(function(e){e.preventDefault(),t("#the-list input.wpz-insta_profile-photo-input").val("-1").trigger("change"),t("#the-list img.wpz-insta_profile-photo").attr("src",zoom_instagram_widget_admin.default_user_thumbnail)})),s.on("change",(function(e){e.preventDefault();var i=n.find(".attachment-input").val();i?(o.text(n.data("button-replace-text")),r.show(),wp.media.attachment(i).fetch().then((function(e){a.fadeOut(400,(function(){var n=e.url;_.findKey(e,"thumbnail")&&(n=e.sizes.thumbnail.url),t(this).html('<img width="150" height="150" src="'+n+'"/>').fadeIn(400)}))}))):(a.hide(),r.hide(),o.text(n.data("button-add-text")))})).trigger("change")}};i.frame().on("open",(function(){var t=n.find(".attachment-input, #wpz-insta_account-photo"),e=i.frame(),a=e.state().get("selection"),s=t.val(),o=wp.media.attachment(s);e.reset(),o.id&&a.add(o)})),i.init()}))},t(".zoom-instagram-user-avatar-media-uploader, .inline-edit-wpz-insta_user .wpz-insta_quick-edit-columns .wpz-insta_two-columns").imageMediaControl(),t(window).on("beforeunload",(function(e){t.isEmptyObject(s)||o||e.preventDefault()})),t("#the-list").on("click","#wpz-insta_reconnect",(function(e){e.preventDefault(),window.wpzInstaAuthenticateInstagram(t(this).attr("href"))})),t(".wpzoom-instagram-widget-settings-request-type-wrapper").find("input[type=radio]").on("change",(function(e){e.preventDefault();var n=t(this).val(),i=["with-access-token","with-basic-access-token","without-access-token"].filter((function(t){return t!==n})),a=t(this).closest(".form-table");a.find(".wpzoom-instagram-widget-"+n+"-group").show(),i.forEach((function(t){a.find(".wpzoom-instagram-widget-"+t+"-group").hide()}))})),t(".wpzoom-instagram-widget-settings-request-type-wrapper").find("input[type=radio]:checked").change(),setTimeout((function(){if("hash"in window.location&&""!=(""+window.location.hash).trim()){var e=t(".edit-php.post-type-wpz-insta_user #the-list").find((""+window.location.hash).trim());e.length>0&&e.find("button.editinline").trigger("click")}}),100),window.opener&&window.location.hash.length>1&&window.location.hash.includes("access_token")&&(window.opener.wpzInstaHandleReturnedToken(window.location),window.close()),t("#screen-meta #wpz-insta_account-photo-hide, #screen-meta #wpz-insta_account-bio-hide, #screen-meta #wpz-insta_account-token-hide, #screen-meta #wpz-insta_actions-hide").closest("label").remove(),t("#titlediv").remove(),t("#title").length>0&&(t("#title").attr("size",t("#title").val().trim().length+3),t("#title").on("input",(function(){t(this).attr("size",t(this).val().trim().length+3)}))),t(".wpz-insta_feed-edit-nav").length>0&&(window.location.hash&&r(window.location.hash),t(".wpz-insta_feed-edit-nav a").on("click",(function(){r(t(this).attr("href"))}))),t("#wpz-insta_show-pro").on("change",(function(e){e.preventDefault(),t(this).closest(".wpz-insta_sidebar").toggleClass("show-pro",this.checked)})),t(".wpz-insta-wrap .account-options .account-option-button").on("click",(function(e){e.preventDefault(),t(this).is(".disabled")||(t(this).is("#wpz-insta_connect-personal")||t(this).is("#wpz-insta_connect-business")?window.wpzInstaAuthenticateInstagram(t(this).attr("href")):t(this).is("#wpz-insta_account-token-button")&&window.wpzInstaHandleReturnedToken(t("#wpz-insta_account-token-input").val().trim().replace(/[^a-z0-9-_.]+/gi,""),!0))})),t("#wpz-insta_account-token-input").on("input",(function(){t("#wpz-insta_account-token-button").toggleClass("disabled",t("#wpz-insta_account-token-input").val().trim().length<=0)})),t('.wpz-insta_sidebar-section-layout input[name="_wpz-insta_layout"]').on("change",(function(){var e=t(this).closest(".wpz-insta_sidebar-section-layout").find('input[name="_wpz-insta_col-num"]').closest(".wpz-insta_table-row"),n=t(this).closest(".wpz-insta_sidebar-left-section"),i=n.find(".wpz-insta_sidebar-section-feed .wpz-insta_show-on-hover fieldset.wpz-insta_feed-only-pro.wpz-insta_pro-only"),a=n.find(".wpz-insta_sidebar-section-load-more");e.add(i).add(a).toggleClass("hidden","1"==t(this).val()),t(".wpz-insta-admin .wpz-insta_widget-preview .wpz-insta_widget-preview-view").toggleClass("layout-fullwidth","1"==t(this).val())})),t("#wpz-insta_modal-dialog").find(".wpz-insta_modal-dialog_ok-button, .wpz-insta_modal-dialog_close-button").on("click",(function(e){e.preventDefault();var n=t("#wpz-insta_modal-dialog");window.wpzInstaCloseConnectDoneDialog(n.hasClass("success"),n.hasClass("update"))})),t("#wpz-insta_feed-user-select-btn").on("click",(function(e){e.preventDefault(),t("#wpz-insta_tabs-config-cnnct").removeClass("active").addClass("active").prev(".wpz-insta_sidebar").removeClass("active"),t("#wpz-insta_tabs-config-cnnct").closest(".wpz-insta_tabs-content").find("> .wpz-insta_sidebar").addClass("hide")})),t("#wpz-insta_feed-user-remove-btn").on("click",(function(e){e.preventDefault();var n=t("#wpz-insta_feed-user-select-btn").closest(".wpz-insta_feed-user-select"),i=n.find(".wpz-insta_feed-user-select-info");t("#wpz-insta_user-id").val("-1").trigger("change"),t("#wpz-insta_user-token").val("-1").trigger("change"),t("#wpz-insta_user-token, #wpz-insta_check-new-posts-interval-number, #wpz-insta_enable-request-timeout").closest(".wpz-insta_sidebar-section").removeClass("active"),t("#wpz-insta_widget-preview-links").addClass("disabled"),n.removeClass("is-set"),i.find(".wpz-insta_feed-user-select-info-name").html("None"),i.find(".wpz-insta_feed-user-select-info-type").html("None"),n.closest(".wrap").find(".wpz-insta_settings-header .wpz-insta_feed-edit-nav li:not(:first-child)").addClass("disable")})),t("#wpz-insta_tabs-config-cnnct .wpz-insta_tabs-config-connect-accounts li").on("click",(function(e){e.preventDefault();var n=t("#wpz-insta_feed-user-select-btn").closest(".wpz-insta_feed-user-select"),i=n.find(".wpz-insta_feed-user-select-info");t("#wpz-insta_user-id").val(t(this).data("user-id")).trigger("change"),t("#wpz-insta_user-token").val(t(this).data("user-token")).trigger("change"),t("#wpz-insta_user-token, #wpz-insta_check-new-posts-interval-number, #wpz-insta_enable-request-timeout").closest(".wpz-insta_sidebar-section").addClass("active"),n.addClass("is-set"),i.find(".wpz-insta_feed-user-select-info-name").html(t(this).data("user-name")),i.find(".wpz-insta_feed-user-select-info-type").html(t(this).data("user-type")),n.closest(".wrap").find(".wpz-insta_settings-header .wpz-insta_feed-edit-nav li").removeClass("disable"),n.find(".wpz-insta_feed-user-select-edit-link").attr("href",zoom_instagram_widget_admin.edit_user_url+t(this).data("user-id")),t("#wpz-insta_widget-preview-links").removeClass("disabled"),t("#wpz-insta_tabs-config-cnnct").removeClass("active").prev(".wpz-insta_sidebar").addClass("active"),t("#wpz-insta_tabs-config-cnnct").closest(".wpz-insta_tabs-content").find("> .wpz-insta_sidebar").removeClass("hide")}));var n={},a={},s={},o=!1;function r(e){if(e){var n=t('.wpz-insta_feed-edit-nav a[href="'+e+'"]'),i=n.closest("form").find(".wpz-insta_tabs-content .wpz-insta_sidebar-left-section");n.closest(".wpz-insta_feed-edit-nav").find("li").removeClass("active"),n.closest("li").addClass("active"),i.removeClass("active"),i.filter('[data-id="'+e+'"]').addClass("active")}}function d(t){var e,n=this,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:300;return function(){for(var a=arguments.length,s=new Array(a),o=0;o<a;o++)s[o]=arguments[o];clearTimeout(e),e=setTimeout((function(){t.apply(n,s)}),i)}}if(t("form#post .wpz-insta_tabs-content > .wpz-insta_sidebar > .wpz-insta_sidebar-left").find("input, textarea, select").add("form#post #title").filter("[name][name!='']").not(".preview-exclude").each((function(e){n[t.trim(t(this).attr("name"))]=t(this)})),t.each(n,(function(e,n){a[e]=n.is(":checkbox,:radio")?n.is(":checked")?"1":"0":t.trim(""+n.val())})),t("form#post").on("submit",(function(){return o=!0})),t("form#post #title, form#post .wpz-insta_tabs-content > .wpz-insta_sidebar > .wpz-insta_sidebar-left").on("input change",d((function(e){var n=t(e.target);if(!n.is(".preview-exclude")){var i=n.attr("name"),o=n.is(":checkbox,:radio")?n.is(":checked")?"1":"0":t.trim(""+n.val());i in a&&o!=a[i]?i in s||(s[i]=!0):i in s&&delete s[i],t("input#publish").toggleClass("disabled",t.isEmptyObject(s)),window.wpzInstaReloadPreview()}}),300)),t((function(){window.wpzInstaReloadPreview(),t(".wpz-insta-cron-notice .notice-dismiss").on("click",(function(){var e=t(this).closest(".notice");t.post(ajaxurl,{action:"wpz-insta_dismiss-cron-notice",nonce:e.attr("data-nonce"),user_id:e.attr("data-user-id")})}))})),t("#wpz-insta_widget-preview-links .wpz-insta_widget-preview-header-link").on("click",(function(){t(this).hasClass("active")||(t(this).addClass("active").siblings(".wpz-insta_widget-preview-header-link").removeClass("active"),t(this).closest(".wpz-insta_widget-preview").find(".wpz-insta_widget-preview-view").removeClass("wpz-insta_widget-preview-size-desktop wpz-insta_widget-preview-size-tablet wpz-insta_widget-preview-size-mobile").addClass(t(this).hasClass("wpz-insta_widget-preview-header-links-tablet")?"wpz-insta_widget-preview-size-tablet":t(this).hasClass("wpz-insta_widget-preview-header-links-mobile")?"wpz-insta_widget-preview-size-mobile":"wpz-insta_widget-preview-size-desktop"))})),t("#wpz-insta_widget-preview-view").on("transitionend",(function(){var e=t(this).find("iframe");e.height(parseInt(e.contents().find("body").prop("scrollHeight"))+20)})),t("#wpz-insta_widget-preview-view iframe").on("load",(function(){t(this).removeClass("wpz-insta_preview-hidden"),t(this).closest(".wpz-insta_sidebar-right").addClass("hide-loading")})),t(".wpz-insta_color-picker").wpColorPicker({change:function(e,n){var i=t.Event("change");i.target=e.target,t(e.target).closest("form#post").find(".wpz-insta_tabs-content > .wpz-insta_sidebar > .wpz-insta_sidebar-left").triggerHandler(i)}}),t(".wpzinsta-pointer").each((function(){t(this).parent().addBack().one("click",(function(e){e.stopPropagation();var n=t(this);t(this).is("li")&&(n=t(this).find(".wpzinsta-pointer")),n.remove()}))})),t("#post-body-content .wpz-insta_sidebar .wpz-insta_sidebar-left .wpz-insta_sidebar-left-section").on("scroll",(function(){t(this).find(".wp-picker-holder").each((function(){var e=t(this).closest(".wp-picker-container"),n=e.offset();t(this).offset({top:n.top+e.outerHeight(),left:n.left})}))})).triggerHandler("scroll"),t(window).on("scroll",(function(){t("#post-body-content .wpz-insta_sidebar .wpz-insta_sidebar-left .wpz-insta_sidebar-left-section").each((function(){t(this).triggerHandler("scroll")}))})),t("#post-body-content .wpz-insta_sidebar .wpz-insta_sidebar-left .wpz-insta_sidebar-left-section .wpz-insta_color-picker").length>0&&new IntersectionObserver((function(t,e){return t.forEach((function(t){return t.target.blur()}))}),{root:null,threshold:.1}).observe(t("#post-body-content .wpz-insta_sidebar .wpz-insta_sidebar-left .wpz-insta_sidebar-left-section .wpz-insta_color-picker")[0]),t("#wpz-insta_shortcode").on("focus",(function(e){e.preventDefault(),t(this).select()})),t("#wpz-insta_shortcode-copy-btn").on("click",d((function(){window.wpzInstaCopyToClipboard(t("#wpz-insta_shortcode").val()).then((function(){t("#wpz-insta_shortcode-copy-btn").addClass("success"),clearTimeout(void 0),setTimeout((function(){t("#wpz-insta_shortcode-copy-btn").removeClass("success")}),3e3)}))}),300)),t(".wpz-insta_actions-menu_copy-shortcode").on("click",(function(e){e.preventDefault();var n=t(this).closest("tr").attr("id").replace("post-","");window.wpzInstaCopyToClipboard('[instagram feed="'+n+'"]').then((function(){window.wpzInstaShowDialog(zoom_instagram_widget_admin.i18n_shortcode_success_title,zoom_instagram_widget_admin.i18n_shortcode_success_content,"success update")}))})),t(".wpz-insta_actions-menu_delete").on("click",(function(e){e.preventDefault();var n=t(this).hasClass("wpz-insta_actions-menu_delete-feed"),i=t(this).find("a").attr("href");window.wpzInstaShowConfirmDialog(zoom_instagram_widget_admin["i18n_delete_"+(n?"feed":"user")+"_confirm_title"],zoom_instagram_widget_admin["i18n_delete_"+(n?"feed":"user")+"_confirm_content"],zoom_instagram_widget_admin.i18n_delete_confirm_button_ok,zoom_instagram_widget_admin.i18n_delete_confirm_button_cancel).then((function(t){!0===t&&(window.location=i),window.wpzInstaCloseDialog()}))})),window.wpzInstaAuthenticateInstagram=function(t,e){var n=(window.screen.height-500)/2,i=(window.screen.width-700)/2;window.open(t,"","width=700,height=500,left="+i+",top="+n)},window.wpzInstaParseQuery=function(t){for(var e={},n=("?"===t[0]||"#"===t[0]?t.substr(1):t).split("&"),i=0;i<n.length;i++){var a=n[i].split("=");e[decodeURIComponent(a[0])]=decodeURIComponent(a[1]||"")}return e},window.wpzInstaShowConnectDoneDialog=function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];window.wpzInstaShowDialog(t?e?zoom_instagram_widget_admin.i18n_reconnect_success_title:zoom_instagram_widget_admin.i18n_connect_success_title:zoom_instagram_widget_admin.i18n_connect_fail_title,t?e?zoom_instagram_widget_admin.i18n_reconnect_success_content:zoom_instagram_widget_admin.i18n_connect_success_content:zoom_instagram_widget_admin.i18n_connect_fail_content,(t?"success":"fail")+(e?" update":""))},window.wpzInstaShowDialog=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"[DIALOG TITLE]",n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"[DIALOG CONTENT]",i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"success",a=t("#wpz-insta_modal-dialog"),s=a.find(".wpz-insta_modal-dialog_header-title"),o=a.find(".wpz-insta_modal-dialog_content"),r=(a.find(".wpz-insta_modal-dialog_footer .wpz-insta_modal-dialog_ok-button"),a.find(".wpz-insta_modal-dialog_footer .wpz-insta_modal-dialog_cancel-button"));s.html(""+e),o.html(""+n),r.addClass("hidden"),a.removeClass().addClass("open "+i)},window.wpzInstaShowConfirmDialog=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"[DIALOG TITLE]",n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"[DIALOG CONTENT]",i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"[OK]",a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"[CANCEL]";return new Promise((function(s,o){var r=t("#wpz-insta_modal-dialog"),d=r.find(".wpz-insta_modal-dialog_header-title"),c=r.find(".wpz-insta_modal-dialog_content"),l=r.find(".wpz-insta_modal-dialog_footer .wpz-insta_modal-dialog_ok-button"),p=r.find(".wpz-insta_modal-dialog_footer .wpz-insta_modal-dialog_cancel-button");d.html(""+e),c.html(""+n),l.removeClass("hidden").html(""+i),l.on("click",(function(){return s(!0)})),p.removeClass("hidden").html(""+a),p.on("click",(function(){return s(!1)})),r.removeClass().addClass("open confirm")}))},window.wpzInstaCloseConnectDoneDialog=function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];window.wpzInstaCloseDialog(),t&&!e&&window.location.replace(zoom_instagram_widget_admin.feeds_url)},window.wpzInstaCloseDialog=function(){t("#wpz-insta_modal-dialog").removeClass("open")},window.wpzInstaCopyToClipboard=function(t){if(navigator.clipboard&&window.isSecureContext)return navigator.clipboard.writeText(t);var e=document.createElement("textarea");return e.value=t,e.style.position="fixed",e.style.left="-999999px",e.style.top="-999999px",document.body.appendChild(e),e.focus(),e.select(),new Promise((function(t,n){document.execCommand("copy")?t():n(),e.remove()}))},"inlineEditPost"in window){var c=window.inlineEditPost.edit;window.inlineEditPost.edit=function(e){c.call(this,e),"object"===i(e)&&(e=window.inlineEditPost.getId(e));for(var n,a,s=["_wpz-insta_account-type","_wpz-insta_token","_wpz-insta_token_expire","_thumbnail_id","wpz-insta_profile-photo","_wpz-insta_user_name","_wpz-insta_user-bio"],o=t("#inline_"+e),r=t("#edit-"+e),d=0;d<s.length;d++)n=(n=t("."+(a=s[d]),o)).text(),"wpz-insta_profile-photo"==a?t("img."+a).attr("src",n):t(':input[name="'+a+'"]',r).val(n)}}window.wpzInstaHandleReturnedToken=function(e){var n=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(e){var i=!n&&"hash"in e&&""!=(""+e.hash).trim()?window.wpzInstaParseQuery(""+e.hash):{};if(!n&&!t.isEmptyObject(i)||n&&""!=(""+e).trim()){var a=n?(""+e).trim():"access_token"in i?(""+i.access_token).trim():"-1";if(""!=a&&"-1"!=a){var s={action:"wpz-insta_connect-user",nonce:zoom_instagram_widget_admin.nonce,token:a};if(!n){var o="search"in e&&""!=(""+e.search).trim()?window.wpzInstaParseQuery(""+e.search):{};s.post_id=!t.isEmptyObject(o)&&"post"in o?parseInt(o.post):0}t.post(ajaxurl,s).done((function(e){t("#the-list #wpz-insta_token").val(a);var n=new Date;n.setDate(n.getDate()+60),t("#the-list #wpz-insta_token-expire-time").html(n.toLocaleDateString("en-US",{weekday:"long",day:"numeric",month:"long",year:"numeric"})),window.wpzInstaShowConnectDoneDialog(e.success,"data"in e&&"update"in e.data&&e.data.update)})).fail((function(){window.wpzInstaShowConnectDoneDialog(!1)}))}}}},window.wpzInstaReloadPreview=function(){var e=zoom_instagram_widget_admin.preview_url,n=t.param(t("form#post #title, form#post .wpz-insta_tabs-content > .wpz-insta_sidebar > .wpz-insta_sidebar-left").find("input, textarea, select").not(".preview-exclude").serializeArray());n&&(e+="&"+n),t("#wpz-insta_widget-preview-view").closest(".wpz-insta_sidebar-right").removeClass("hide-loading"),t("#wpz-insta_widget-preview-view iframe").addClass("wpz-insta_preview-hidden").attr("src",e)},window.wpzInstaUpdatePreviewHeight=function(){var e=t("#wpz-insta_widget-preview-view iframe");e.height(parseInt(e.contents().find("body").prop("scrollHeight")))}}))}});
dist/scripts/frontend/block.asset.php ADDED
@@ -0,0 +1 @@
 
1
+ <?php return array('dependencies' => array('wp-polyfill'), 'version' => '742186f17b44a711a53b947f46cba1a7');
dist/scripts/frontend/block.js ADDED
@@ -0,0 +1 @@
 
1
+ !function(e){var t={};function n(i){if(t[i])return t[i].exports;var o=t[i]={i:i,l:!1,exports:{}};return e[i].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,i){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:i})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var i=Object.create(null);if(n.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(i,o,function(t){return e[t]}.bind(null,o));return i},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=12)}({12:function(e,t){function n(e){return(n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}var i;i=jQuery,window.wpzInstaFrontendInit=function(){i('.zoom-instagram-widget__items[data-lightbox="1"]').each((function(){var e=i(this).parent().parent().find(".wpz-insta-lightbox-wrapper > .swiper-container");if(e.length>0){var t=e.find(".image-wrapper > .swiper-container");new Swiper(e.get(0),{direction:"horizontal",loop:!1,spaceBetween:20,autoHeight:!0,watchOverflow:!0,navigation:{nextEl:e.find("> .swiper-button-next").get(0),prevEl:e.find("> .swiper-button-prev").get(0)},keyboard:{enabled:!0,onlyInViewport:!0}}),t.each((function(){new Swiper(i(this).get(0),{direction:"horizontal",loop:!1,spaceBetween:20,nested:!0,watchOverflow:!0,pagination:{el:i(this).find("> .swiper-pagination").get(0),type:"bullets",clickable:!0,hideOnClick:!1},navigation:{nextEl:i(this).find("> .swiper-button-next").get(0),prevEl:i(this).find("> .swiper-button-prev").get(0)},keyboard:{enabled:!0,onlyInViewport:!0}})})),i(this).find(".zoom-instagram-link").magnificPopup({items:{type:"inline",src:i(this).parent().parent().find(".wpz-insta-lightbox-wrapper")},closeBtnInside:!1,mainClass:"wpzoom-lightbox",midClick:!0,callbacks:{open:function(){var e=i.magnificPopup.instance.st.el,t=this.content.find("> .swiper-container").get(0).swiper;"object"===n(t)&&t.slideTo(this.content.find('> .swiper-container > .swiper-wrapper > .swiper-slide[data-uid="'+e.data("mfp-src")+'"]').index())}}}),i(this).find(".zoom-instagram-link").addClass("magnific-active")}}))},i(window).on("load",window.wpzInstaFrontendInit)}});
dist/scripts/frontend/index.asset.php ADDED
@@ -0,0 +1 @@
 
1
+ <?php return array('dependencies' => array('wp-polyfill'), 'version' => 'fb7f8f6cdb6058029b90c4a03b37ccc7');
dist/scripts/frontend/index.js ADDED
@@ -0,0 +1 @@
 
1
+ !function(t){var e={};function i(n){if(e[n])return e[n].exports;var o=e[n]={i:n,l:!1,exports:{}};return t[n].call(o.exports,o,o.exports,i),o.l=!0,o.exports}i.m=t,i.c=e,i.d=function(t,e,n){i.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:n})},i.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},i.t=function(t,e){if(1&e&&(t=i(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var n=Object.create(null);if(i.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var o in t)i.d(n,o,function(e){return t[e]}.bind(null,o));return n},i.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return i.d(e,"a",e),e},i.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},i.p="",i(i.s=11)}({11:function(t,e){function i(t){return(i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}var n;(n=jQuery)(window).on("load",(function(){var t=!1;function e(){t||(t=!0,(window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||function(t){window.setTimeout(t,1e3/60)})(o))}function o(){n(".zoom-instagram-widget__items").zoomInstagramWidget(),t=!1}n.fn.zoomLoadAsyncImages=function(){return n(this).each((function(){var t=n(this),e=t.data("image-width"),i=t.data("image-resolution"),o=t.find("li").filter((function(){return n(this).data("media-id")})).map((function(){return{"media-id":n(this).attr("data-media-id"),nonce:n(this).attr("data-nonce"),"regenerate-thumbnails":n(this)[0].hasAttribute("data-regenerate-thumbnails")}}));o.length&&function n(o){if(0!=o.length){var a=o.shift();wp.ajax.post("wpzoom_instagram_get_image_async",{"media-id":a["media-id"],nonce:a.nonce,"image-resolution":i,"image-width":e,"regenerate-thumbnails":a["regenerate-thumbnails"]}).done((function(e){t.find('li[data-media-id="'+a["media-id"]+'"] .zoom-instagram-link').css("background-image","url("+e.image_src+")")})).fail((function(){})).always((function(){n(o)}))}}(o.toArray())}))},n.fn.zoomLightbox=function(){return n(this).each((function(){var t=n(this).closest(".widget").find(".wpz-insta-lightbox-wrapper > .swiper-container");if(t.length>0){var e=t.find(".image-wrapper > .swiper-container");new Swiper(t.get(0),{direction:"horizontal",loop:!1,spaceBetween:20,autoHeight:!0,watchOverflow:!0,navigation:{nextEl:t.find("> .swiper-button-next").get(0),prevEl:t.find("> .swiper-button-prev").get(0)},keyboard:{enabled:!0,onlyInViewport:!0}}),e.each((function(){new Swiper(n(this).get(0),{direction:"horizontal",loop:!1,spaceBetween:20,nested:!0,watchOverflow:!0,pagination:{el:n(this).find("> .swiper-pagination").get(0),type:"bullets",clickable:!0,hideOnClick:!1},navigation:{nextEl:n(this).find("> .swiper-button-next").get(0),prevEl:n(this).find("> .swiper-button-prev").get(0)},keyboard:{enabled:!0,onlyInViewport:!0}})})),n(this).find(".zoom-instagram-link").magnificPopup({items:{type:"inline",src:n(this).closest(".widget").find(".wpz-insta-lightbox-wrapper")},closeBtnInside:!1,mainClass:"wpzoom-lightbox",midClick:!0,callbacks:{open:function(){var t=n.magnificPopup.instance.st.el,e=this.content.find("> .swiper-container").get(0).swiper;"object"===i(e)&&e.slideTo(this.content.find('> .swiper-container > .swiper-wrapper > .swiper-slide[data-uid="'+t.data("mfp-src")+'"]').index())}}}),n(this).find(".zoom-instagram-link").addClass("magnific-active")}}))},n.fn.zoomInstagramWidget=function(){return n(this).each((function(){var t,e,i=n(this),o=i.data("images-per-row"),a=i.data("image-width"),r=i.data("image-spacing"),s=i.data("image-lazy-loading"),d=i.width();d/a<o?(t=o,e=Math.floor((d-1-(o-1)*r)/o)):(t=Math.floor((d-1)/a),e=Math.floor((d-1-(t-1)*r)/t)),i.find("li").each((function(e){var i=++e;i%t==1?n(this).css("clear","left"):n(this).css("clear","none"),i%t==0?n(this).css("margin-right","0"):(n(this).css("margin-right",r+"px"),n(this).css("margin-bottom",r+"px"))})),i.find("a.zoom-instagram-link").css({width:e,height:e}),s&&i.find("a.zoom-instagram-link").lazy(),i.removeClass("zoom-instagram-widget__items--no-js")}))},n(window).on("resize orientationchange",e),e(),n(".zoom-instagram-widget__items").zoomLoadAsyncImages(),n('.zoom-instagram-widget__items[data-lightbox="1"]').zoomLightbox();var a=_.debounce((function(){n(".zoom-instagram-widget__items").length&&(n(".zoom-instagram-widget__items").zoomInstagramWidget(),n(".zoom-instagram-widget__items").zoomLoadAsyncImages())}),1500);n(document).on("panels_setup_preview",a)}))}});
dist/scripts/frontend/preview.asset.php ADDED
@@ -0,0 +1 @@
 
1
+ <?php return array('dependencies' => array('wp-polyfill'), 'version' => '095cc54eff62b2fd225b12be58a7efca');
dist/scripts/frontend/preview.js ADDED
@@ -0,0 +1 @@
 
1
+ !function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=15)}({15:function(e,t,n){"use strict";document.body.addEventListener("load",(function(e){"IMG"==e.target.tagName&&e.target.closest(".zoom-instagram-widget__item")&&"function"==typeof window.parent.wpzInstaUpdatePreviewHeight&&window.parent.wpzInstaUpdatePreviewHeight()}),!0)}});
dist/scripts/library/lazy.js ADDED
@@ -0,0 +1 @@
 
1
+ !function(t,e){"use strict";function r(r,a,i,l,u){function f(){B=t.devicePixelRatio>1,i=c(i),a.delay>=0&&setTimeout((function(){s(!0)}),a.delay),(a.delay<0||a.combined)&&(l.e=function(t,e){var n,i=0;return function(o,l){function u(){i=+new Date,e.call(r,o)}var f=+new Date-i;n&&clearTimeout(n),f>t||!a.enableThrottle||l?u():n=setTimeout(u,t-f)}}(a.throttle,(function(t){"resize"===t.type&&(z=w=-1),s(t.all)})),l.a=function(t){t=c(t),i.push.apply(i,t)},l.g=function(){return i=n(i).filter((function(){return!n(this).data(a.loadedName)}))},l.f=function(t){for(var e=0;e<t.length;e++){var r=i.filter((function(){return this===t[e]}));r.length&&s(!1,r)}},s(),n(a.appendScroll).on("scroll."+u+" resize."+u,l.e))}function c(t){for(var i=a.defaultImage,o=a.placeholder,l=a.imageBase,u=a.srcsetAttribute,f=a.loaderAttribute,c=a._f||{},s=0,d=(t=n(t).filter((function(){var t=n(this),r=m(this);return!t.data(a.handledName)&&(t.attr(a.attribute)||t.attr(u)||t.attr(f)||c[r]!==e)})).data("plugin_"+a.name,r)).length;s<d;s++){var A=n(t[s]),g=m(t[s]),h=A.attr(a.imageBaseAttribute)||l;g===I&&h&&A.attr(u)&&A.attr(u,b(A.attr(u),h)),c[g]===e||A.attr(f)||A.attr(f,c[g]),g===I&&i&&!A.attr(N)?A.attr(N,i):g===I||!o||A.css(C)&&"none"!==A.css(C)||A.css(C,"url('"+o+"')")}return t}function s(t,e){if(i.length){for(var o=e||i,l=!1,u=a.imageBase||"",f=a.srcsetAttribute,c=a.handledName,s=0;s<o.length;s++)if(t||e||A(o[s])){var g=n(o[s]),h=m(o[s]),b=g.attr(a.attribute),v=g.attr(a.imageBaseAttribute)||u,p=g.attr(a.loaderAttribute);g.data(c)||a.visibleOnly&&!g.is(":visible")||!((b||g.attr(f))&&(h===I&&(v+b!==g.attr(N)||g.attr(f)!==g.attr(E))||h!==I&&v+b!==g.css(C))||p)||(l=!0,g.data(c,!0),d(g,h,v,p))}l&&(i=n(i).filter((function(){return!n(this).data(c)})))}else a.autoDestroy&&r.destroy()}function d(t,e,r,i){++y;var o=function(){p("onError",t),v(),o=n.noop};p("beforeLoad",t);var l=a.attribute,u=a.srcsetAttribute,f=a.sizesAttribute,c=a.retinaAttribute,s=a.removeAttribute,d=a.loadedName,A=t.attr(c);if(i){var g=function(){s&&t.removeAttr(a.loaderAttribute),t.data(d,!0),p(L,t),setTimeout(v,1),g=n.noop};t.off(D).one(D,o).one(T,g),p(i,t,(function(e){e?(t.off(T),g()):(t.off(D),o())}))||t.trigger(D)}else{var h=n(new Image);h.one(D,o).one(T,(function(){t.hide(),e===I?t.attr(F,h.attr(F)).attr(E,h.attr(E)).attr(N,h.attr(N)):t.css(C,"url('"+h.attr(N)+"')"),t[a.effect](a.effectTime),s&&(t.removeAttr(l+" "+u+" "+c+" "+a.imageBaseAttribute),f!==F&&t.removeAttr(f)),t.data(d,!0),p(L,t),h.remove(),v()}));var m=(B&&A?A:t.attr(l))||"";h.attr(F,t.attr(f)).attr(E,t.attr(u)).attr(N,m?r+m:null),h.complete&&h.trigger(T)}}function A(t){var e=t.getBoundingClientRect(),r=a.scrollDirection,n=a.threshold,i=h()+n>e.top&&-n<e.bottom,o=g()+n>e.left&&-n<e.right;return"vertical"===r?i:("horizontal"===r||i)&&o}function g(){return z>=0?z:z=n(t).width()}function h(){return w>=0?w:w=n(t).height()}function m(t){return t.tagName.toLowerCase()}function b(t,e){if(e){var r=t.split(",");t="";for(var a=0,n=r.length;a<n;a++)t+=e+r[a].trim()+(a!==n-1?",":"")}return t}function v(){--y,i.length||y||p("onFinishedAll")}function p(t,e,n){return!!(t=a[t])&&(t.apply(r,[].slice.call(arguments,1)),!0)}var y=0,z=-1,w=-1,B=!1,L="afterLoad",T="load",D="error",I="img",N="src",E="srcset",F="sizes",C="background-image";"event"===a.bind||o?f():n(t).on(T+"."+u,f)}function a(a,o){var l=this,u=n.extend({},l.config,o),f={},c=u.name+"-"+ ++i;return l.config=function(t,r){return r===e?u[t]:(u[t]=r,l)},l.addItems=function(t){return f.a&&f.a("string"===n.type(t)?n(t):t),l},l.getItems=function(){return f.g?f.g():{}},l.update=function(t){return f.e&&f.e({},!t),l},l.force=function(t){return f.f&&f.f("string"===n.type(t)?n(t):t),l},l.loadAll=function(){return f.e&&f.e({all:!0},!0),l},l.destroy=function(){return n(u.appendScroll).off("."+c,f.e),n(t).off("."+c),f={},e},r(l,u,a,f,c),u.chainable?a:l}var n=t.jQuery||t.Zepto,i=0,o=!1;n.fn.Lazy=n.fn.lazy=function(t){return new a(this,t)},n.Lazy=n.lazy=function(t,r,i){if(n.isFunction(r)&&(i=r,r=[]),n.isFunction(i)){t=n.isArray(t)?t:[t],r=n.isArray(r)?r:[r];for(var o=a.prototype.config,l=o._f||(o._f={}),u=0,f=t.length;u<f;u++)(o[t[u]]===e||n.isFunction(o[t[u]]))&&(o[t[u]]=i);for(var c=0,s=r.length;c<s;c++)l[r[c]]=t[0]}},a.prototype.config={name:"lazy",chainable:!0,autoDestroy:!0,bind:"load",threshold:500,visibleOnly:!1,appendScroll:t,scrollDirection:"both",imageBase:null,defaultImage:"data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==",placeholder:null,delay:-1,combined:!1,attribute:"data-src",srcsetAttribute:"data-srcset",sizesAttribute:"data-sizes",retinaAttribute:"data-retina",loaderAttribute:"data-loader",imageBaseAttribute:"data-imagebase",removeAttribute:!0,handledName:"handled",loadedName:"loaded",effect:"show",effectTime:0,enableThrottle:!0,throttle:250,beforeLoad:e,afterLoad:e,onError:e,onFinishedAll:e},n(t).on("load",(function(){o=!0}))}(window);
dist/scripts/library/magnific-popup.js ADDED
@@ -0,0 +1 @@
 
1
+ !function(e){"function"==typeof define&&define.amd?define(["jquery"],e):e("object"==typeof exports?require("jquery"):window.jQuery||window.Zepto)}((function(e){var t,i,n,o,r,a,s="Close",l="BeforeClose",c="MarkupParse",d="Open",p="Change",u=".mfp",f="mfp-ready",m="mfp-removing",g="mfp-prevent-close",v=function(){},h=!!window.jQuery,y=e(window),C=function(e,i){t.ev.on("mfp"+e+u,i)},w=function(t,i,n,o){var r=document.createElement("div");return r.className="mfp-"+t,n&&(r.innerHTML=n),o?i&&i.appendChild(r):(r=e(r),i&&r.appendTo(i)),r},b=function(i,n){t.ev.triggerHandler("mfp"+i,n),t.st.callbacks&&(i=i.charAt(0).toLowerCase()+i.slice(1),t.st.callbacks[i]&&t.st.callbacks[i].apply(t,e.isArray(n)?n:[n]))},I=function(i){return i===a&&t.currTemplate.closeBtn||(t.currTemplate.closeBtn=e(t.st.closeMarkup.replace("%title%",t.st.tClose)),a=i),t.currTemplate.closeBtn},x=function(){e.magnificPopup.instance||((t=new v).init(),e.magnificPopup.instance=t)};v.prototype={constructor:v,init:function(){var i=navigator.appVersion;t.isLowIE=t.isIE8=document.all&&!document.addEventListener,t.isAndroid=/android/gi.test(i),t.isIOS=/iphone|ipad|ipod/gi.test(i),t.supportsTransition=function(){var e=document.createElement("p").style,t=["ms","O","Moz","Webkit"];if(void 0!==e.transition)return!0;for(;t.length;)if(t.pop()+"Transition"in e)return!0;return!1}(),t.probablyMobile=t.isAndroid||t.isIOS||/(Opera Mini)|Kindle|webOS|BlackBerry|(Opera Mobi)|(Windows Phone)|IEMobile/i.test(navigator.userAgent),n=e(document),t.popupsCache={}},open:function(i){var o;if(!1===i.isObj){t.items=i.items.toArray(),t.index=0;var a,s=i.items;for(o=0;o<s.length;o++)if((a=s[o]).parsed&&(a=a.el[0]),a===i.el[0]){t.index=o;break}}else t.items=e.isArray(i.items)?i.items:[i.items],t.index=i.index||0;if(!t.isOpen){t.types=[],r="",i.mainEl&&i.mainEl.length?t.ev=i.mainEl.eq(0):t.ev=n,i.key?(t.popupsCache[i.key]||(t.popupsCache[i.key]={}),t.currTemplate=t.popupsCache[i.key]):t.currTemplate={},t.st=e.extend(!0,{},e.magnificPopup.defaults,i),t.fixedContentPos="auto"===t.st.fixedContentPos?!t.probablyMobile:t.st.fixedContentPos,t.st.modal&&(t.st.closeOnContentClick=!1,t.st.closeOnBgClick=!1,t.st.showCloseBtn=!1,t.st.enableEscapeKey=!1),t.bgOverlay||(t.bgOverlay=w("bg").on("click"+u,(function(){t.close()})),t.wrap=w("wrap").attr("tabindex",-1).on("click"+u,(function(e){t._checkIfClose(e.target)&&t.close()})),t.container=w("container",t.wrap)),t.contentContainer=w("content"),t.st.preloader&&(t.preloader=w("preloader",t.container,t.st.tLoading));var l=e.magnificPopup.modules;for(o=0;o<l.length;o++){var p=l[o];p=p.charAt(0).toUpperCase()+p.slice(1),t["init"+p].call(t)}b("BeforeOpen"),t.st.showCloseBtn&&(t.st.closeBtnInside?(C(c,(function(e,t,i,n){i.close_replaceWith=I(n.type)})),r+=" mfp-close-btn-in"):t.wrap.append(I())),t.st.alignTop&&(r+=" mfp-align-top"),t.fixedContentPos?t.wrap.css({overflow:t.st.overflowY,overflowX:"hidden",overflowY:t.st.overflowY}):t.wrap.css({top:y.scrollTop(),position:"absolute"}),(!1===t.st.fixedBgPos||"auto"===t.st.fixedBgPos&&!t.fixedContentPos)&&t.bgOverlay.css({height:n.height(),position:"absolute"}),t.st.enableEscapeKey&&n.on("keyup"+u,(function(e){27===e.keyCode&&t.close()})),y.on("resize"+u,(function(){t.updateSize()})),t.st.closeOnContentClick||(r+=" mfp-auto-cursor"),r&&t.wrap.addClass(r);var m=t.wH=y.height(),g={};if(t.fixedContentPos&&t._hasScrollBar(m)){var v=t._getScrollbarSize();v&&(g.marginRight=v)}t.fixedContentPos&&(t.isIE7?e("body, html").css("overflow","hidden"):g.overflow="hidden");var h=t.st.mainClass;return t.isIE7&&(h+=" mfp-ie7"),h&&t._addClassToMFP(h),t.updateItemHTML(),b("BuildControls"),e("html").css(g),t.bgOverlay.add(t.wrap).prependTo(t.st.prependTo||e(document.body)),t._lastFocusedEl=document.activeElement,setTimeout((function(){t.content?(t._addClassToMFP(f),t._setFocus()):t.bgOverlay.addClass(f),n.on("focusin"+u,t._onFocusIn)}),16),t.isOpen=!0,t.updateSize(m),b(d),i}t.updateItemHTML()},close:function(){t.isOpen&&(b(l),t.isOpen=!1,t.st.removalDelay&&!t.isLowIE&&t.supportsTransition?(t._addClassToMFP(m),setTimeout((function(){t._close()}),t.st.removalDelay)):t._close())},_close:function(){b(s);var i=m+" "+f+" ";if(t.bgOverlay.detach(),t.wrap.detach(),t.container.empty(),t.st.mainClass&&(i+=t.st.mainClass+" "),t._removeClassFromMFP(i),t.fixedContentPos){var o={marginRight:""};t.isIE7?e("body, html").css("overflow",""):o.overflow="",e("html").css(o)}n.off("keyup.mfp focusin"+u),t.ev.off(u),t.wrap.attr("class","mfp-wrap").removeAttr("style"),t.bgOverlay.attr("class","mfp-bg"),t.container.attr("class","mfp-container"),!t.st.showCloseBtn||t.st.closeBtnInside&&!0!==t.currTemplate[t.currItem.type]||t.currTemplate.closeBtn&&t.currTemplate.closeBtn.detach(),t.st.autoFocusLast&&t._lastFocusedEl&&e(t._lastFocusedEl).focus(),t.currItem=null,t.content=null,t.currTemplate=null,t.prevHeight=0,b("AfterClose")},updateSize:function(e){if(t.isIOS){var i=document.documentElement.clientWidth/window.innerWidth,n=window.innerHeight*i;t.wrap.css("height",n),t.wH=n}else t.wH=e||y.height();t.fixedContentPos||t.wrap.css("height",t.wH),b("Resize")},updateItemHTML:function(){var i=t.items[t.index];t.contentContainer.detach(),t.content&&t.content.detach(),i.parsed||(i=t.parseEl(t.index));var n=i.type;if(b("BeforeChange",[t.currItem?t.currItem.type:"",n]),t.currItem=i,!t.currTemplate[n]){var r=!!t.st[n]&&t.st[n].markup;b("FirstMarkupParse",r),t.currTemplate[n]=!r||e(r)}o&&o!==i.type&&t.container.removeClass("mfp-"+o+"-holder");var a=t["get"+n.charAt(0).toUpperCase()+n.slice(1)](i,t.currTemplate[n]);t.appendContent(a,n),i.preloaded=!0,b(p,i),o=i.type,t.container.prepend(t.contentContainer),b("AfterChange")},appendContent:function(e,i){t.content=e,e?t.st.showCloseBtn&&t.st.closeBtnInside&&!0===t.currTemplate[i]?t.content.find(".mfp-close").length||t.content.append(I()):t.content=e:t.content="",b("BeforeAppend"),t.container.addClass("mfp-"+i+"-holder"),t.contentContainer.append(t.content)},parseEl:function(i){var n,o=t.items[i];if(o.tagName?o={el:e(o)}:(n=o.type,o={data:o,src:o.src}),o.el){for(var r=t.types,a=0;a<r.length;a++)if(o.el.hasClass("mfp-"+r[a])){n=r[a];break}o.src=o.el.attr("data-mfp-src"),o.src||(o.src=o.el.attr("href"))}return o.type=n||t.st.type||"inline",o.index=i,o.parsed=!0,t.items[i]=o,b("ElementParse",o),t.items[i]},addGroup:function(e,i){var n=function(n){n.mfpEl=this,t._openClick(n,e,i)};i||(i={});var o="click.magnificPopup";i.mainEl=e,i.items?(i.isObj=!0,e.off(o).on(o,n)):(i.isObj=!1,i.delegate?e.off(o).on(o,i.delegate,n):(i.items=e,e.off(o).on(o,n)))},_openClick:function(i,n,o){if((void 0!==o.midClick?o.midClick:e.magnificPopup.defaults.midClick)||!(2===i.which||i.ctrlKey||i.metaKey||i.altKey||i.shiftKey)){var r=void 0!==o.disableOn?o.disableOn:e.magnificPopup.defaults.disableOn;if(r)if(e.isFunction(r)){if(!r.call(t))return!0}else if(y.width()<r)return!0;i.type&&(i.preventDefault(),t.isOpen&&i.stopPropagation()),o.el=e(i.mfpEl),o.delegate&&(o.items=n.find(o.delegate)),t.open(o)}},updateStatus:function(e,n){if(t.preloader){i!==e&&t.container.removeClass("mfp-s-"+i),n||"loading"!==e||(n=t.st.tLoading);var o={status:e,text:n};b("UpdateStatus",o),e=o.status,n=o.text,t.preloader.html(n),t.preloader.find("a").on("click",(function(e){e.stopImmediatePropagation()})),t.container.addClass("mfp-s-"+e),i=e}},_checkIfClose:function(i){if(!e(i).hasClass(g)){var n=t.st.closeOnContentClick,o=t.st.closeOnBgClick;if(n&&o)return!0;if(!t.content||e(i).hasClass("mfp-close")||t.preloader&&i===t.preloader[0])return!0;if(i===t.content[0]||e.contains(t.content[0],i)){if(n)return!0}else if(o&&e.contains(document,i))return!0;return!1}},_addClassToMFP:function(e){t.bgOverlay.addClass(e),t.wrap.addClass(e)},_removeClassFromMFP:function(e){this.bgOverlay.removeClass(e),t.wrap.removeClass(e)},_hasScrollBar:function(e){return(t.isIE7?n.height():document.body.scrollHeight)>(e||y.height())},_setFocus:function(){(t.st.focus?t.content.find(t.st.focus).eq(0):t.wrap).focus()},_onFocusIn:function(i){return i.target===t.wrap[0]||e.contains(t.wrap[0],i.target)?void 0:(t._setFocus(),!1)},_parseMarkup:function(t,i,n){var o;n.data&&(i=e.extend(n.data,i)),b(c,[t,i,n]),e.each(i,(function(i,n){if(void 0===n||!1===n)return!0;if((o=i.split("_")).length>1){var r=t.find(u+"-"+o[0]);if(r.length>0){var a=o[1];"replaceWith"===a?r[0]!==n[0]&&r.replaceWith(n):"img"===a?r.is("img")?r.attr("src",n):r.replaceWith(e("<img>").attr("src",n).attr("class",r.attr("class"))):r.attr(o[1],n)}}else t.find(u+"-"+i).html(n)}))},_getScrollbarSize:function(){if(void 0===t.scrollbarSize){var e=document.createElement("div");e.style.cssText="width: 99px; height: 99px; overflow: scroll; position: absolute; top: -9999px;",document.body.appendChild(e),t.scrollbarSize=e.offsetWidth-e.clientWidth,document.body.removeChild(e)}return t.scrollbarSize}},e.magnificPopup={instance:null,proto:v.prototype,modules:[],open:function(t,i){return x(),(t=t?e.extend(!0,{},t):{}).isObj=!0,t.index=i||0,this.instance.open(t)},close:function(){return e.magnificPopup.instance&&e.magnificPopup.instance.close()},registerModule:function(t,i){i.options&&(e.magnificPopup.defaults[t]=i.options),e.extend(this.proto,i.proto),this.modules.push(t)},defaults:{disableOn:0,key:null,midClick:!1,mainClass:"",preloader:!0,focus:"",closeOnContentClick:!1,closeOnBgClick:!0,closeBtnInside:!0,showCloseBtn:!0,enableEscapeKey:!0,modal:!1,alignTop:!1,removalDelay:0,prependTo:null,fixedContentPos:"auto",fixedBgPos:"auto",overflowY:"auto",closeMarkup:'<button title="%title%" type="button" class="mfp-close">&#215;</button>',tClose:"Close (Esc)",tLoading:"Loading...",autoFocusLast:!0}},e.fn.magnificPopup=function(i){x();var n=e(this);if("string"==typeof i)if("open"===i){var o,r=h?n.data("magnificPopup"):n[0].magnificPopup,a=parseInt(arguments[1],10)||0;r.items?o=r.items[a]:(o=n,r.delegate&&(o=o.find(r.delegate)),o=o.eq(a)),t._openClick({mfpEl:o},n,r)}else t.isOpen&&t[i].apply(t,Array.prototype.slice.call(arguments,1));else i=e.extend(!0,{},i),h?n.data("magnificPopup",i):n[0].magnificPopup=i,t.addGroup(n,i);return n};var k,T,_,P="inline",S=function(){_&&(T.after(_.addClass(k)).detach(),_=null)};e.magnificPopup.registerModule(P,{options:{hiddenClass:"hide",markup:"",tNotFound:"Content not found"},proto:{initInline:function(){t.types.push(P),C(s+"."+P,(function(){S()}))},getInline:function(i,n){if(S(),i.src){var o=t.st.inline,r=e(i.src);if(r.length){var a=r[0].parentNode;a&&a.tagName&&(T||(k=o.hiddenClass,T=w(k),k="mfp-"+k),_=r.after(T).detach().removeClass(k)),t.updateStatus("ready")}else t.updateStatus("error",o.tNotFound),r=e("<div>");return i.inlineElement=r,r}return t.updateStatus("ready"),t._parseMarkup(n,{},i),n}}});var E,z="ajax",O=function(){E&&e(document.body).removeClass(E)},M=function(){O(),t.req&&t.req.abort()};e.magnificPopup.registerModule(z,{options:{settings:null,cursor:"mfp-ajax-cur",tError:'<a href="%url%">The content</a> could not be loaded.'},proto:{initAjax:function(){t.types.push(z),E=t.st.ajax.cursor,C(s+"."+z,M),C("BeforeChange."+z,M)},getAjax:function(i){E&&e(document.body).addClass(E),t.updateStatus("loading");var n=e.extend({url:i.src,success:function(n,o,r){var a={data:n,xhr:r};b("ParseAjax",a),t.appendContent(e(a.data),z),i.finished=!0,O(),t._setFocus(),setTimeout((function(){t.wrap.addClass(f)}),16),t.updateStatus("ready"),b("AjaxContentAdded")},error:function(){O(),i.finished=i.loadError=!0,t.updateStatus("error",t.st.ajax.tError.replace("%url%",i.src))}},t.st.ajax.settings);return t.req=e.ajax(n),""}}});var B,L,H=function(i){if(i.data&&void 0!==i.data.title)return i.data.title;var n=t.st.image.titleSrc;if(n){if(e.isFunction(n))return n.call(t,i);if(i.el)return i.el.attr(n)||""}return""};e.magnificPopup.registerModule("image",{options:{markup:'<div class="mfp-figure"><div class="mfp-close"></div><figure><div class="mfp-img"></div><figcaption><div class="mfp-bottom-bar"><div class="mfp-title"></div><div class="mfp-counter"></div></div></figcaption></figure></div>',cursor:"mfp-zoom-out-cur",titleSrc:"title",verticalFit:!0,tError:'<a href="%url%">The image</a> could not be loaded.'},proto:{initImage:function(){var i=t.st.image,n=".image";t.types.push("image"),C(d+n,(function(){"image"===t.currItem.type&&i.cursor&&e(document.body).addClass(i.cursor)})),C(s+n,(function(){i.cursor&&e(document.body).removeClass(i.cursor),y.off("resize"+u)})),C("Resize"+n,t.resizeImage),t.isLowIE&&C("AfterChange",t.resizeImage)},resizeImage:function(){var e=t.currItem;if(e&&e.img&&t.st.image.verticalFit){var i=0;t.isLowIE&&(i=parseInt(e.img.css("padding-top"),10)+parseInt(e.img.css("padding-bottom"),10)),e.img.css("max-height",t.wH-i)}},_onImageHasSize:function(e){e.img&&(e.hasSize=!0,B&&clearInterval(B),e.isCheckingImgSize=!1,b("ImageHasSize",e),e.imgHidden&&(t.content&&t.content.removeClass("mfp-loading"),e.imgHidden=!1))},findImageSize:function(e){var i=0,n=e.img[0],o=function(r){B&&clearInterval(B),B=setInterval((function(){return n.naturalWidth>0?void t._onImageHasSize(e):(i>200&&clearInterval(B),void(3==++i?o(10):40===i?o(50):100===i&&o(500)))}),r)};o(1)},getImage:function(i,n){var o=0,r=function(){i&&(i.img[0].complete?(i.img.off(".mfploader"),i===t.currItem&&(t._onImageHasSize(i),t.updateStatus("ready")),i.hasSize=!0,i.loaded=!0,b("ImageLoadComplete")):200>++o?setTimeout(r,100):a())},a=function(){i&&(i.img.off(".mfploader"),i===t.currItem&&(t._onImageHasSize(i),t.updateStatus("error",s.tError.replace("%url%",i.src))),i.hasSize=!0,i.loaded=!0,i.loadError=!0)},s=t.st.image,l=n.find(".mfp-img");if(l.length){var c=document.createElement("img");c.className="mfp-img",i.el&&i.el.find("img").length&&(c.alt=i.el.find("img").attr("alt")),i.img=e(c).on("load.mfploader",r).on("error.mfploader",a),c.src=i.src,l.is("img")&&(i.img=i.img.clone()),(c=i.img[0]).naturalWidth>0?i.hasSize=!0:c.width||(i.hasSize=!1)}return t._parseMarkup(n,{title:H(i),img_replaceWith:i.img},i),t.resizeImage(),i.hasSize?(B&&clearInterval(B),i.loadError?(n.addClass("mfp-loading"),t.updateStatus("error",s.tError.replace("%url%",i.src))):(n.removeClass("mfp-loading"),t.updateStatus("ready")),n):(t.updateStatus("loading"),i.loading=!0,i.hasSize||(i.imgHidden=!0,n.addClass("mfp-loading"),t.findImageSize(i)),n)}}}),e.magnificPopup.registerModule("zoom",{options:{enabled:!1,easing:"ease-in-out",duration:300,opener:function(e){return e.is("img")?e:e.find("img")}},proto:{initZoom:function(){var e,i=t.st.zoom,n=".zoom";if(i.enabled&&t.supportsTransition){var o,r,a=i.duration,c=function(e){var t=e.clone().removeAttr("style").removeAttr("class").addClass("mfp-animated-image"),n="all "+i.duration/1e3+"s "+i.easing,o={position:"fixed",zIndex:9999,left:0,top:0,"-webkit-backface-visibility":"hidden"},r="transition";return o["-webkit-"+r]=o["-moz-"+r]=o["-o-"+r]=o[r]=n,t.css(o),t},d=function(){t.content.css("visibility","visible")};C("BuildControls"+n,(function(){if(t._allowZoom()){if(clearTimeout(o),t.content.css("visibility","hidden"),!(e=t._getItemToZoom()))return void d();(r=c(e)).css(t._getOffset()),t.wrap.append(r),o=setTimeout((function(){r.css(t._getOffset(!0)),o=setTimeout((function(){d(),setTimeout((function(){r.remove(),e=r=null,b("ZoomAnimationEnded")}),16)}),a)}),16)}})),C(l+n,(function(){if(t._allowZoom()){if(clearTimeout(o),t.st.removalDelay=a,!e){if(!(e=t._getItemToZoom()))return;r=c(e)}r.css(t._getOffset(!0)),t.wrap.append(r),t.content.css("visibility","hidden"),setTimeout((function(){r.css(t._getOffset())}),16)}})),C(s+n,(function(){t._allowZoom()&&(d(),r&&r.remove(),e=null)}))}},_allowZoom:function(){return"image"===t.currItem.type},_getItemToZoom:function(){return!!t.currItem.hasSize&&t.currItem.img},_getOffset:function(i){var n,o=(n=i?t.currItem.img:t.st.zoom.opener(t.currItem.el||t.currItem)).offset(),r=parseInt(n.css("padding-top"),10),a=parseInt(n.css("padding-bottom"),10);o.top-=e(window).scrollTop()-r;var s={width:n.width(),height:(h?n.innerHeight():n[0].offsetHeight)-a-r};return void 0===L&&(L=void 0!==document.createElement("p").style.MozTransform),L?s["-moz-transform"]=s.transform="translate("+o.left+"px,"+o.top+"px)":(s.left=o.left,s.top=o.top),s}}});var A="iframe",F=function(e){if(t.currTemplate[A]){var i=t.currTemplate[A].find("iframe");i.length&&(e||(i[0].src="//about:blank"),t.isIE8&&i.css("display",e?"block":"none"))}};e.magnificPopup.registerModule(A,{options:{markup:'<div class="mfp-iframe-scaler"><div class="mfp-close"></div><iframe class="mfp-iframe" src="//about:blank" frameborder="0" allowfullscreen></iframe></div>',srcAction:"iframe_src",patterns:{youtube:{index:"youtube.com",id:"v=",src:"//www.youtube.com/embed/%id%?autoplay=1"},vimeo:{index:"vimeo.com/",id:"/",src:"//player.vimeo.com/video/%id%?autoplay=1"},gmaps:{index:"//maps.google.",src:"%id%&output=embed"}}},proto:{initIframe:function(){t.types.push(A),C("BeforeChange",(function(e,t,i){t!==i&&(t===A?F():i===A&&F(!0))})),C(s+"."+A,(function(){F()}))},getIframe:function(i,n){var o=i.src,r=t.st.iframe;e.each(r.patterns,(function(){return o.indexOf(this.index)>-1?(this.id&&(o="string"==typeof this.id?o.substr(o.lastIndexOf(this.id)+this.id.length,o.length):this.id.call(this,o)),o=this.src.replace("%id%",o),!1):void 0}));var a={};return r.srcAction&&(a[r.srcAction]=o),t._parseMarkup(n,a,i),t.updateStatus("ready"),n}}});var j=function(e){var i=t.items.length;return e>i-1?e-i:0>e?i+e:e},N=function(e,t,i){return e.replace(/%curr%/gi,t+1).replace(/%total%/gi,i)};e.magnificPopup.registerModule("gallery",{options:{enabled:!1,arrowMarkup:'<button title="%title%" type="button" class="mfp-arrow mfp-arrow-%dir%"></button>',preload:[0,2],navigateByImgClick:!0,arrows:!0,tPrev:"Previous (Left arrow key)",tNext:"Next (Right arrow key)",tCounter:"%curr% of %total%"},proto:{initGallery:function(){var i=t.st.gallery,o=".mfp-gallery";return t.direction=!0,!(!i||!i.enabled)&&(r+=" mfp-gallery",C(d+o,(function(){i.navigateByImgClick&&t.wrap.on("click"+o,".mfp-img",(function(){return t.items.length>1?(t.next(),!1):void 0})),n.on("keydown"+o,(function(e){37===e.keyCode?t.prev():39===e.keyCode&&t.next()}))})),C("UpdateStatus"+o,(function(e,i){i.text&&(i.text=N(i.text,t.currItem.index,t.items.length))})),C(c+o,(function(e,n,o,r){var a=t.items.length;o.counter=a>1?N(i.tCounter,r.index,a):""})),C("BuildControls"+o,(function(){if(t.items.length>1&&i.arrows&&!t.arrowLeft){var n=i.arrowMarkup,o=t.arrowLeft=e(n.replace(/%title%/gi,i.tPrev).replace(/%dir%/gi,"left")).addClass(g),r=t.arrowRight=e(n.replace(/%title%/gi,i.tNext).replace(/%dir%/gi,"right")).addClass(g);o.click((function(){t.prev()})),r.click((function(){t.next()})),t.container.append(o.add(r))}})),C(p+o,(function(){t._preloadTimeout&&clearTimeout(t._preloadTimeout),t._preloadTimeout=setTimeout((function(){t.preloadNearbyImages(),t._preloadTimeout=null}),16)})),void C(s+o,(function(){n.off(o),t.wrap.off("click"+o),t.arrowRight=t.arrowLeft=null})))},next:function(){t.direction=!0,t.index=j(t.index+1),t.updateItemHTML()},prev:function(){t.direction=!1,t.index=j(t.index-1),t.updateItemHTML()},goTo:function(e){t.direction=e>=t.index,t.index=e,t.updateItemHTML()},preloadNearbyImages:function(){var e,i=t.st.gallery.preload,n=Math.min(i[0],t.items.length),o=Math.min(i[1],t.items.length);for(e=1;e<=(t.direction?o:n);e++)t._preloadItem(t.index+e);for(e=1;e<=(t.direction?n:o);e++)t._preloadItem(t.index-e)},_preloadItem:function(i){if(i=j(i),!t.items[i].preloaded){var n=t.items[i];n.parsed||(n=t.parseEl(i)),b("LazyLoad",n),"image"===n.type&&(n.img=e('<img class="mfp-img" />').on("load.mfploader",(function(){n.hasSize=!0})).on("error.mfploader",(function(){n.hasSize=!0,n.loadError=!0,b("LazyLoadError",n)})).attr("src",n.src)),n.preloaded=!0}}}});var W="retina";e.magnificPopup.registerModule(W,{options:{replaceSrc:function(e){return e.src.replace(/\.\w+$/,(function(e){return"@2x"+e}))},ratio:1},proto:{initRetina:function(){if(window.devicePixelRatio>1){var e=t.st.retina,i=e.ratio;(i=isNaN(i)?i():i)>1&&(C("ImageHasSize."+W,(function(e,t){t.img.css({"max-width":t.img[0].naturalWidth/i,width:"100%"})})),C("ElementParse."+W,(function(t,n){n.src=e.replaceSrc(n,i)})))}}}}),x()}));
dist/scripts/library/swiper.js ADDED
@@ -0,0 +1 @@
 
1
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).Swiper=t()}(this,(function(){"use strict";function e(e){return null!==e&&"object"==typeof e&&"constructor"in e&&e.constructor===Object}function t(s={},a={}){Object.keys(a).forEach(i=>{void 0===s[i]?s[i]=a[i]:e(a[i])&&e(s[i])&&Object.keys(a[i]).length>0&&t(s[i],a[i])})}const s={body:{},addEventListener(){},removeEventListener(){},activeElement:{blur(){},nodeName:""},querySelector:()=>null,querySelectorAll:()=>[],getElementById:()=>null,createEvent:()=>({initEvent(){}}),createElement:()=>({children:[],childNodes:[],style:{},setAttribute(){},getElementsByTagName:()=>[]}),createElementNS:()=>({}),importNode:()=>null,location:{hash:"",host:"",hostname:"",href:"",origin:"",pathname:"",protocol:"",search:""}};function a(){const e="undefined"!=typeof document?document:{};return t(e,s),e}const i={document:s,navigator:{userAgent:""},location:{hash:"",host:"",hostname:"",href:"",origin:"",pathname:"",protocol:"",search:""},history:{replaceState(){},pushState(){},go(){},back(){}},CustomEvent:function(){return this},addEventListener(){},removeEventListener(){},getComputedStyle:()=>({getPropertyValue:()=>""}),Image(){},Date(){},screen:{},setTimeout(){},clearTimeout(){},matchMedia:()=>({}),requestAnimationFrame:e=>"undefined"==typeof setTimeout?(e(),null):setTimeout(e,0),cancelAnimationFrame(e){"undefined"!=typeof setTimeout&&clearTimeout(e)}};function r(){const e="undefined"!=typeof window?window:{};return t(e,i),e}class n extends Array{constructor(e){super(...e||[]),function(e){const t=e.__proto__;Object.defineProperty(e,"__proto__",{get:()=>t,set(e){t.__proto__=e}})}(this)}}function l(e=[]){const t=[];return e.forEach(e=>{Array.isArray(e)?t.push(...l(e)):t.push(e)}),t}function o(e,t){return Array.prototype.filter.call(e,t)}function d(e,t){const s=r(),i=a();let l=[];if(!t&&e instanceof n)return e;if(!e)return new n(l);if("string"==typeof e){const s=e.trim();if(s.indexOf("<")>=0&&s.indexOf(">")>=0){let e="div";0===s.indexOf("<li")&&(e="ul"),0===s.indexOf("<tr")&&(e="tbody"),0!==s.indexOf("<td")&&0!==s.indexOf("<th")||(e="tr"),0===s.indexOf("<tbody")&&(e="table"),0===s.indexOf("<option")&&(e="select");const t=i.createElement(e);t.innerHTML=s;for(let e=0;e<t.childNodes.length;e+=1)l.push(t.childNodes[e])}else l=function(e,t){if("string"!=typeof e)return[e];const s=[],a=t.querySelectorAll(e);for(let e=0;e<a.length;e+=1)s.push(a[e]);return s}(e.trim(),t||i)}else if(e.nodeType||e===s||e===i)l.push(e);else if(Array.isArray(e)){if(e instanceof n)return e;l=e}return new n(function(e){const t=[];for(let s=0;s<e.length;s+=1)-1===t.indexOf(e[s])&&t.push(e[s]);return t}(l))}d.fn=n.prototype;const c={addClass:function(...e){const t=l(e.map(e=>e.split(" ")));return this.forEach(e=>{e.classList.add(...t)}),this},removeClass:function(...e){const t=l(e.map(e=>e.split(" ")));return this.forEach(e=>{e.classList.remove(...t)}),this},hasClass:function(...e){const t=l(e.map(e=>e.split(" ")));return o(this,e=>t.filter(t=>e.classList.contains(t)).length>0).length>0},toggleClass:function(...e){const t=l(e.map(e=>e.split(" ")));this.forEach(e=>{t.forEach(t=>{e.classList.toggle(t)})})},attr:function(e,t){if(1===arguments.length&&"string"==typeof e)return this[0]?this[0].getAttribute(e):void 0;for(let s=0;s<this.length;s+=1)if(2===arguments.length)this[s].setAttribute(e,t);else for(const t in e)this[s][t]=e[t],this[s].setAttribute(t,e[t]);return this},removeAttr:function(e){for(let t=0;t<this.length;t+=1)this[t].removeAttribute(e);return this},transform:function(e){for(let t=0;t<this.length;t+=1)this[t].style.transform=e;return this},transition:function(e){for(let t=0;t<this.length;t+=1)this[t].style.transitionDuration="string"!=typeof e?e+"ms":e;return this},on:function(...e){let[t,s,a,i]=e;function r(e){const t=e.target;if(!t)return;const i=e.target.dom7EventData||[];if(i.indexOf(e)<0&&i.unshift(e),d(t).is(s))a.apply(t,i);else{const e=d(t).parents();for(let t=0;t<e.length;t+=1)d(e[t]).is(s)&&a.apply(e[t],i)}}function n(e){const t=e&&e.target&&e.target.dom7EventData||[];t.indexOf(e)<0&&t.unshift(e),a.apply(this,t)}"function"==typeof e[1]&&([t,a,i]=e,s=void 0),i||(i=!1);const l=t.split(" ");let o;for(let e=0;e<this.length;e+=1){const t=this[e];if(s)for(o=0;o<l.length;o+=1){const e=l[o];t.dom7LiveListeners||(t.dom7LiveListeners={}),t.dom7LiveListeners[e]||(t.dom7LiveListeners[e]=[]),t.dom7LiveListeners[e].push({listener:a,proxyListener:r}),t.addEventListener(e,r,i)}else for(o=0;o<l.length;o+=1){const e=l[o];t.dom7Listeners||(t.dom7Listeners={}),t.dom7Listeners[e]||(t.dom7Listeners[e]=[]),t.dom7Listeners[e].push({listener:a,proxyListener:n}),t.addEventListener(e,n,i)}}return this},off:function(...e){let[t,s,a,i]=e;"function"==typeof e[1]&&([t,a,i]=e,s=void 0),i||(i=!1);const r=t.split(" ");for(let e=0;e<r.length;e+=1){const t=r[e];for(let e=0;e<this.length;e+=1){const r=this[e];let n;if(!s&&r.dom7Listeners?n=r.dom7Listeners[t]:s&&r.dom7LiveListeners&&(n=r.dom7LiveListeners[t]),n&&n.length)for(let e=n.length-1;e>=0;e-=1){const s=n[e];a&&s.listener===a||a&&s.listener&&s.listener.dom7proxy&&s.listener.dom7proxy===a?(r.removeEventListener(t,s.proxyListener,i),n.splice(e,1)):a||(r.removeEventListener(t,s.proxyListener,i),n.splice(e,1))}}}return this},trigger:function(...e){const t=r(),s=e[0].split(" "),a=e[1];for(let i=0;i<s.length;i+=1){const r=s[i];for(let s=0;s<this.length;s+=1){const i=this[s];if(t.CustomEvent){const s=new t.CustomEvent(r,{detail:a,bubbles:!0,cancelable:!0});i.dom7EventData=e.filter((e,t)=>t>0),i.dispatchEvent(s),i.dom7EventData=[],delete i.dom7EventData}}}return this},transitionEnd:function(e){const t=this;return e&&t.on("transitionend",(function s(a){a.target===this&&(e.call(this,a),t.off("transitionend",s))})),this},outerWidth:function(e){if(this.length>0){if(e){const e=this.styles();return this[0].offsetWidth+parseFloat(e.getPropertyValue("margin-right"))+parseFloat(e.getPropertyValue("margin-left"))}return this[0].offsetWidth}return null},outerHeight:function(e){if(this.length>0){if(e){const e=this.styles();return this[0].offsetHeight+parseFloat(e.getPropertyValue("margin-top"))+parseFloat(e.getPropertyValue("margin-bottom"))}return this[0].offsetHeight}return null},styles:function(){const e=r();return this[0]?e.getComputedStyle(this[0],null):{}},offset:function(){if(this.length>0){const e=r(),t=a(),s=this[0],i=s.getBoundingClientRect(),n=t.body,l=s.clientTop||n.clientTop||0,o=s.clientLeft||n.clientLeft||0,d=s===e?e.scrollY:s.scrollTop,c=s===e?e.scrollX:s.scrollLeft;return{top:i.top+d-l,left:i.left+c-o}}return null},css:function(e,t){const s=r();let a;if(1===arguments.length){if("string"!=typeof e){for(a=0;a<this.length;a+=1)for(const t in e)this[a].style[t]=e[t];return this}if(this[0])return s.getComputedStyle(this[0],null).getPropertyValue(e)}if(2===arguments.length&&"string"==typeof e){for(a=0;a<this.length;a+=1)this[a].style[e]=t;return this}return this},each:function(e){return e?(this.forEach((t,s)=>{e.apply(t,[t,s])}),this):this},html:function(e){if(void 0===e)return this[0]?this[0].innerHTML:null;for(let t=0;t<this.length;t+=1)this[t].innerHTML=e;return this},text:function(e){if(void 0===e)return this[0]?this[0].textContent.trim():null;for(let t=0;t<this.length;t+=1)this[t].textContent=e;return this},is:function(e){const t=r(),s=a(),i=this[0];let l,o;if(!i||void 0===e)return!1;if("string"==typeof e){if(i.matches)return i.matches(e);if(i.webkitMatchesSelector)return i.webkitMatchesSelector(e);if(i.msMatchesSelector)return i.msMatchesSelector(e);for(l=d(e),o=0;o<l.length;o+=1)if(l[o]===i)return!0;return!1}if(e===s)return i===s;if(e===t)return i===t;if(e.nodeType||e instanceof n){for(l=e.nodeType?[e]:e,o=0;o<l.length;o+=1)if(l[o]===i)return!0;return!1}return!1},index:function(){let e,t=this[0];if(t){for(e=0;null!==(t=t.previousSibling);)1===t.nodeType&&(e+=1);return e}},eq:function(e){if(void 0===e)return this;const t=this.length;if(e>t-1)return d([]);if(e<0){const s=t+e;return d(s<0?[]:[this[s]])}return d([this[e]])},append:function(...e){let t;const s=a();for(let a=0;a<e.length;a+=1){t=e[a];for(let e=0;e<this.length;e+=1)if("string"==typeof t){const a=s.createElement("div");for(a.innerHTML=t;a.firstChild;)this[e].appendChild(a.firstChild)}else if(t instanceof n)for(let s=0;s<t.length;s+=1)this[e].appendChild(t[s]);else this[e].appendChild(t)}return this},prepend:function(e){const t=a();let s,i;for(s=0;s<this.length;s+=1)if("string"==typeof e){const a=t.createElement("div");for(a.innerHTML=e,i=a.childNodes.length-1;i>=0;i-=1)this[s].insertBefore(a.childNodes[i],this[s].childNodes[0])}else if(e instanceof n)for(i=0;i<e.length;i+=1)this[s].insertBefore(e[i],this[s].childNodes[0]);else this[s].insertBefore(e,this[s].childNodes[0]);return this},next:function(e){return this.length>0?e?this[0].nextElementSibling&&d(this[0].nextElementSibling).is(e)?d([this[0].nextElementSibling]):d([]):this[0].nextElementSibling?d([this[0].nextElementSibling]):d([]):d([])},nextAll:function(e){const t=[];let s=this[0];if(!s)return d([]);for(;s.nextElementSibling;){const a=s.nextElementSibling;e?d(a).is(e)&&t.push(a):t.push(a),s=a}return d(t)},prev:function(e){if(this.length>0){const t=this[0];return e?t.previousElementSibling&&d(t.previousElementSibling).is(e)?d([t.previousElementSibling]):d([]):t.previousElementSibling?d([t.previousElementSibling]):d([])}return d([])},prevAll:function(e){const t=[];let s=this[0];if(!s)return d([]);for(;s.previousElementSibling;){const a=s.previousElementSibling;e?d(a).is(e)&&t.push(a):t.push(a),s=a}return d(t)},parent:function(e){const t=[];for(let s=0;s<this.length;s+=1)null!==this[s].parentNode&&(e?d(this[s].parentNode).is(e)&&t.push(this[s].parentNode):t.push(this[s].parentNode));return d(t)},parents:function(e){const t=[];for(let s=0;s<this.length;s+=1){let a=this[s].parentNode;for(;a;)e?d(a).is(e)&&t.push(a):t.push(a),a=a.parentNode}return d(t)},closest:function(e){let t=this;return void 0===e?d([]):(t.is(e)||(t=t.parents(e).eq(0)),t)},find:function(e){const t=[];for(let s=0;s<this.length;s+=1){const a=this[s].querySelectorAll(e);for(let e=0;e<a.length;e+=1)t.push(a[e])}return d(t)},children:function(e){const t=[];for(let s=0;s<this.length;s+=1){const a=this[s].children;for(let s=0;s<a.length;s+=1)e&&!d(a[s]).is(e)||t.push(a[s])}return d(t)},filter:function(e){return d(o(this,e))},remove:function(){for(let e=0;e<this.length;e+=1)this[e].parentNode&&this[e].parentNode.removeChild(this[e]);return this}};function p(e,t=0){return setTimeout(e,t)}function u(){return Date.now()}function h(e,t="x"){const s=r();let a,i,n;const l=function(e){const t=r();let s;return t.getComputedStyle&&(s=t.getComputedStyle(e,null)),!s&&e.currentStyle&&(s=e.currentStyle),s||(s=e.style),s}(e);return s.WebKitCSSMatrix?(i=l.transform||l.webkitTransform,i.split(",").length>6&&(i=i.split(", ").map(e=>e.replace(",",".")).join(", ")),n=new s.WebKitCSSMatrix("none"===i?"":i)):(n=l.MozTransform||l.OTransform||l.MsTransform||l.msTransform||l.transform||l.getPropertyValue("transform").replace("translate(","matrix(1, 0, 0, 1,"),a=n.toString().split(",")),"x"===t&&(i=s.WebKitCSSMatrix?n.m41:16===a.length?parseFloat(a[12]):parseFloat(a[4])),"y"===t&&(i=s.WebKitCSSMatrix?n.m42:16===a.length?parseFloat(a[13]):parseFloat(a[5])),i||0}function m(e){return"object"==typeof e&&null!==e&&e.constructor&&"Object"===Object.prototype.toString.call(e).slice(8,-1)}function f(...e){const t=Object(e[0]),s=["__proto__","constructor","prototype"];for(let i=1;i<e.length;i+=1){const r=e[i];if(null!=r&&(a=r,!("undefined"!=typeof window&&void 0!==window.HTMLElement?a instanceof HTMLElement:a&&(1===a.nodeType||11===a.nodeType)))){const e=Object.keys(Object(r)).filter(e=>s.indexOf(e)<0);for(let s=0,a=e.length;s<a;s+=1){const a=e[s],i=Object.getOwnPropertyDescriptor(r,a);void 0!==i&&i.enumerable&&(m(t[a])&&m(r[a])?r[a].__swiper__?t[a]=r[a]:f(t[a],r[a]):!m(t[a])&&m(r[a])?(t[a]={},r[a].__swiper__?t[a]=r[a]:f(t[a],r[a])):t[a]=r[a])}}}var a;return t}function g(e,t,s){e.style.setProperty(t,s)}function v({swiper:e,targetPosition:t,side:s}){const a=r(),i=-e.translate;let n,l=null;const o=e.params.speed;e.wrapperEl.style.scrollSnapType="none",a.cancelAnimationFrame(e.cssModeFrameID);const d=t>i?"next":"prev",c=(e,t)=>"next"===d&&e>=t||"prev"===d&&e<=t,p=()=>{n=(new Date).getTime(),null===l&&(l=n);const r=Math.max(Math.min((n-l)/o,1),0),d=.5-Math.cos(r*Math.PI)/2;let u=i+d*(t-i);if(c(u,t)&&(u=t),e.wrapperEl.scrollTo({[s]:u}),c(u,t))return e.wrapperEl.style.scrollSnapType="",void a.cancelAnimationFrame(e.cssModeFrameID);e.cssModeFrameID=a.requestAnimationFrame(p)};p()}let w,b,x;function y(){return w||(w=function(){const e=r(),t=a();return{smoothScroll:"scrollBehavior"in t.documentElement.style,touch:!!("ontouchstart"in e||e.DocumentTouch&&t instanceof e.DocumentTouch),passiveListener:function(){let t=!1;try{const s=Object.defineProperty({},"passive",{get(){t=!0}});e.addEventListener("testPassiveListener",null,s)}catch(e){}return t}(),gestures:"ongesturestart"in e}}()),w}function E(e={}){return b||(b=function({userAgent:e}={}){const t=y(),s=r(),a=s.navigator.platform,i=e||s.navigator.userAgent,n={ios:!1,android:!1},l=s.screen.width,o=s.screen.height,d=i.match(/(Android);?[\s\/]+([\d.]+)?/);let c=i.match(/(iPad).*OS\s([\d_]+)/);const p=i.match(/(iPod)(.*OS\s([\d_]+))?/),u=!c&&i.match(/(iPhone\sOS|iOS)\s([\d_]+)/),h="Win32"===a;let m="MacIntel"===a;return!c&&m&&t.touch&&["1024x1366","1366x1024","834x1194","1194x834","834x1112","1112x834","768x1024","1024x768","820x1180","1180x820","810x1080","1080x810"].indexOf(`${l}x${o}`)>=0&&(c=i.match(/(Version)\/([\d.]+)/),c||(c=[0,1,"13_0_0"]),m=!1),d&&!h&&(n.os="android",n.android=!0),(c||u||p)&&(n.os="ios",n.ios=!0),n}(e)),b}function T(){return x||(x=function(){const e=r();return{isSafari:function(){const t=e.navigator.userAgent.toLowerCase();return t.indexOf("safari")>=0&&t.indexOf("chrome")<0&&t.indexOf("android")<0}(),isWebView:/(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(e.navigator.userAgent)}}()),x}function C({swiper:e,runCallbacks:t,direction:s,step:a}){const{activeIndex:i,previousIndex:r}=e;let n=s;if(n||(n=i>r?"next":i<r?"prev":"reset"),e.emit("transition"+a),t&&i!==r){if("reset"===n)return void e.emit("slideResetTransition"+a);e.emit("slideChangeTransition"+a),"next"===n?e.emit("slideNextTransition"+a):e.emit("slidePrevTransition"+a)}}function S(e){const t=this,s=a(),i=r(),n=t.touchEventsData,{params:l,touches:o,enabled:c}=t;if(!c)return;if(t.animating&&l.preventInteractionOnTransition)return;!t.animating&&l.cssMode&&l.loop&&t.loopFix();let p=e;p.originalEvent&&(p=p.originalEvent);let h=d(p.target);if("wrapper"===l.touchEventsTarget&&!h.closest(t.wrapperEl).length)return;if(n.isTouchEvent="touchstart"===p.type,!n.isTouchEvent&&"which"in p&&3===p.which)return;if(!n.isTouchEvent&&"button"in p&&p.button>0)return;if(n.isTouched&&n.isMoved)return;l.noSwipingClass&&""!==l.noSwipingClass&&p.target&&p.target.shadowRoot&&e.path&&e.path[0]&&(h=d(e.path[0]));const m=l.noSwipingSelector?l.noSwipingSelector:"."+l.noSwipingClass,f=!(!p.target||!p.target.shadowRoot);if(l.noSwiping&&(f?function(e,t=this){return function t(s){return s&&s!==a()&&s!==r()?(s.assignedSlot&&(s=s.assignedSlot),s.closest(e)||t(s.getRootNode().host)):null}(t)}(m,p.target):h.closest(m)[0]))return void(t.allowClick=!0);if(l.swipeHandler&&!h.closest(l.swipeHandler)[0])return;o.currentX="touchstart"===p.type?p.targetTouches[0].pageX:p.pageX,o.currentY="touchstart"===p.type?p.targetTouches[0].pageY:p.pageY;const g=o.currentX,v=o.currentY,w=l.edgeSwipeDetection||l.iOSEdgeSwipeDetection,b=l.edgeSwipeThreshold||l.iOSEdgeSwipeThreshold;if(w&&(g<=b||g>=i.innerWidth-b)){if("prevent"!==w)return;e.preventDefault()}if(Object.assign(n,{isTouched:!0,isMoved:!1,allowTouchCallbacks:!0,isScrolling:void 0,startMoving:void 0}),o.startX=g,o.startY=v,n.touchStartTime=u(),t.allowClick=!0,t.updateSize(),t.swipeDirection=void 0,l.threshold>0&&(n.allowThresholdMove=!1),"touchstart"!==p.type){let e=!0;h.is(n.focusableElements)&&(e=!1),s.activeElement&&d(s.activeElement).is(n.focusableElements)&&s.activeElement!==h[0]&&s.activeElement.blur();const a=e&&t.allowTouchMove&&l.touchStartPreventDefault;!l.touchStartForcePreventDefault&&!a||h[0].isContentEditable||p.preventDefault()}t.emit("touchStart",p)}function M(e){const t=a(),s=this,i=s.touchEventsData,{params:r,touches:n,rtlTranslate:l,enabled:o}=s;if(!o)return;let c=e;if(c.originalEvent&&(c=c.originalEvent),!i.isTouched)return void(i.startMoving&&i.isScrolling&&s.emit("touchMoveOpposite",c));if(i.isTouchEvent&&"touchmove"!==c.type)return;const p="touchmove"===c.type&&c.targetTouches&&(c.targetTouches[0]||c.changedTouches[0]),h="touchmove"===c.type?p.pageX:c.pageX,m="touchmove"===c.type?p.pageY:c.pageY;if(c.preventedByNestedSwiper)return n.startX=h,void(n.startY=m);if(!s.allowTouchMove)return s.allowClick=!1,void(i.isTouched&&(Object.assign(n,{startX:h,startY:m,currentX:h,currentY:m}),i.touchStartTime=u()));if(i.isTouchEvent&&r.touchReleaseOnEdges&&!r.loop)if(s.isVertical()){if(m<n.startY&&s.translate<=s.maxTranslate()||m>n.startY&&s.translate>=s.minTranslate())return i.isTouched=!1,void(i.isMoved=!1)}else if(h<n.startX&&s.translate<=s.maxTranslate()||h>n.startX&&s.translate>=s.minTranslate())return;if(i.isTouchEvent&&t.activeElement&&c.target===t.activeElement&&d(c.target).is(i.focusableElements))return i.isMoved=!0,void(s.allowClick=!1);if(i.allowTouchCallbacks&&s.emit("touchMove",c),c.targetTouches&&c.targetTouches.length>1)return;n.currentX=h,n.currentY=m;const f=n.currentX-n.startX,g=n.currentY-n.startY;if(s.params.threshold&&Math.sqrt(f**2+g**2)<s.params.threshold)return;if(void 0===i.isScrolling){let e;s.isHorizontal()&&n.currentY===n.startY||s.isVertical()&&n.currentX===n.startX?i.isScrolling=!1:f*f+g*g>=25&&(e=180*Math.atan2(Math.abs(g),Math.abs(f))/Math.PI,i.isScrolling=s.isHorizontal()?e>r.touchAngle:90-e>r.touchAngle)}if(i.isScrolling&&s.emit("touchMoveOpposite",c),void 0===i.startMoving&&(n.currentX===n.startX&&n.currentY===n.startY||(i.startMoving=!0)),i.isScrolling)return void(i.isTouched=!1);if(!i.startMoving)return;s.allowClick=!1,!r.cssMode&&c.cancelable&&c.preventDefault(),r.touchMoveStopPropagation&&!r.nested&&c.stopPropagation(),i.isMoved||(r.loop&&!r.cssMode&&s.loopFix(),i.startTranslate=s.getTranslate(),s.setTransition(0),s.animating&&s.$wrapperEl.trigger("webkitTransitionEnd transitionend"),i.allowMomentumBounce=!1,!r.grabCursor||!0!==s.allowSlideNext&&!0!==s.allowSlidePrev||s.setGrabCursor(!0),s.emit("sliderFirstMove",c)),s.emit("sliderMove",c),i.isMoved=!0;let v=s.isHorizontal()?f:g;n.diff=v,v*=r.touchRatio,l&&(v=-v),s.swipeDirection=v>0?"prev":"next",i.currentTranslate=v+i.startTranslate;let w=!0,b=r.resistanceRatio;if(r.touchReleaseOnEdges&&(b=0),v>0&&i.currentTranslate>s.minTranslate()?(w=!1,r.resistance&&(i.currentTranslate=s.minTranslate()-1+(-s.minTranslate()+i.startTranslate+v)**b)):v<0&&i.currentTranslate<s.maxTranslate()&&(w=!1,r.resistance&&(i.currentTranslate=s.maxTranslate()+1-(s.maxTranslate()-i.startTranslate-v)**b)),w&&(c.preventedByNestedSwiper=!0),!s.allowSlideNext&&"next"===s.swipeDirection&&i.currentTranslate<i.startTranslate&&(i.currentTranslate=i.startTranslate),!s.allowSlidePrev&&"prev"===s.swipeDirection&&i.currentTranslate>i.startTranslate&&(i.currentTranslate=i.startTranslate),s.allowSlidePrev||s.allowSlideNext||(i.currentTranslate=i.startTranslate),r.threshold>0){if(!(Math.abs(v)>r.threshold||i.allowThresholdMove))return void(i.currentTranslate=i.startTranslate);if(!i.allowThresholdMove)return i.allowThresholdMove=!0,n.startX=n.currentX,n.startY=n.currentY,i.currentTranslate=i.startTranslate,void(n.diff=s.isHorizontal()?n.currentX-n.startX:n.currentY-n.startY)}r.followFinger&&!r.cssMode&&((r.freeMode&&r.freeMode.enabled&&s.freeMode||r.watchSlidesProgress)&&(s.updateActiveIndex(),s.updateSlidesClasses()),s.params.freeMode&&r.freeMode.enabled&&s.freeMode&&s.freeMode.onTouchMove(),s.updateProgress(i.currentTranslate),s.setTranslate(i.currentTranslate))}function $(e){const t=this,s=t.touchEventsData,{params:a,touches:i,rtlTranslate:r,slidesGrid:n,enabled:l}=t;if(!l)return;let o=e;if(o.originalEvent&&(o=o.originalEvent),s.allowTouchCallbacks&&t.emit("touchEnd",o),s.allowTouchCallbacks=!1,!s.isTouched)return s.isMoved&&a.grabCursor&&t.setGrabCursor(!1),s.isMoved=!1,void(s.startMoving=!1);a.grabCursor&&s.isMoved&&s.isTouched&&(!0===t.allowSlideNext||!0===t.allowSlidePrev)&&t.setGrabCursor(!1);const d=u(),c=d-s.touchStartTime;if(t.allowClick&&(t.updateClickedSlide(o),t.emit("tap click",o),c<300&&d-s.lastClickTime<300&&t.emit("doubleTap doubleClick",o)),s.lastClickTime=u(),p(()=>{t.destroyed||(t.allowClick=!0)}),!s.isTouched||!s.isMoved||!t.swipeDirection||0===i.diff||s.currentTranslate===s.startTranslate)return s.isTouched=!1,s.isMoved=!1,void(s.startMoving=!1);let h;if(s.isTouched=!1,s.isMoved=!1,s.startMoving=!1,h=a.followFinger?r?t.translate:-t.translate:-s.currentTranslate,a.cssMode)return;if(t.params.freeMode&&a.freeMode.enabled)return void t.freeMode.onTouchEnd({currentPos:h});let m=0,f=t.slidesSizesGrid[0];for(let e=0;e<n.length;e+=e<a.slidesPerGroupSkip?1:a.slidesPerGroup){const t=e<a.slidesPerGroupSkip-1?1:a.slidesPerGroup;void 0!==n[e+t]?h>=n[e]&&h<n[e+t]&&(m=e,f=n[e+t]-n[e]):h>=n[e]&&(m=e,f=n[n.length-1]-n[n.length-2])}const g=(h-n[m])/f,v=m<a.slidesPerGroupSkip-1?1:a.slidesPerGroup;if(c>a.longSwipesMs){if(!a.longSwipes)return void t.slideTo(t.activeIndex);"next"===t.swipeDirection&&(g>=a.longSwipesRatio?t.slideTo(m+v):t.slideTo(m)),"prev"===t.swipeDirection&&(g>1-a.longSwipesRatio?t.slideTo(m+v):t.slideTo(m))}else{if(!a.shortSwipes)return void t.slideTo(t.activeIndex);!t.navigation||o.target!==t.navigation.nextEl&&o.target!==t.navigation.prevEl?("next"===t.swipeDirection&&t.slideTo(m+v),"prev"===t.swipeDirection&&t.slideTo(m)):o.target===t.navigation.nextEl?t.slideTo(m+v):t.slideTo(m)}}function P(){const e=this,{params:t,el:s}=e;if(s&&0===s.offsetWidth)return;t.breakpoints&&e.setBreakpoint();const{allowSlideNext:a,allowSlidePrev:i,snapGrid:r}=e;e.allowSlideNext=!0,e.allowSlidePrev=!0,e.updateSize(),e.updateSlides(),e.updateSlidesClasses(),("auto"===t.slidesPerView||t.slidesPerView>1)&&e.isEnd&&!e.isBeginning&&!e.params.centeredSlides?e.slideTo(e.slides.length-1,0,!1,!0):e.slideTo(e.activeIndex,0,!1,!0),e.autoplay&&e.autoplay.running&&e.autoplay.paused&&e.autoplay.run(),e.allowSlidePrev=i,e.allowSlideNext=a,e.params.watchOverflow&&r!==e.snapGrid&&e.checkOverflow()}function k(e){const t=this;t.enabled&&(t.allowClick||(t.params.preventClicks&&e.preventDefault(),t.params.preventClicksPropagation&&t.animating&&(e.stopPropagation(),e.stopImmediatePropagation())))}function z(){const e=this,{wrapperEl:t,rtlTranslate:s,enabled:a}=e;if(!a)return;let i;e.previousTranslate=e.translate,e.isHorizontal()?e.translate=-t.scrollLeft:e.translate=-t.scrollTop,-0===e.translate&&(e.translate=0),e.updateActiveIndex(),e.updateSlidesClasses();const r=e.maxTranslate()-e.minTranslate();i=0===r?0:(e.translate-e.minTranslate())/r,i!==e.progress&&e.updateProgress(s?-e.translate:e.translate),e.emit("setTranslate",e.translate,!1)}Object.keys(c).forEach(e=>{Object.defineProperty(d.fn,e,{value:c[e],writable:!0})});let O=!1;function I(){}const L=(e,t)=>{const s=a(),{params:i,touchEvents:r,el:n,wrapperEl:l,device:o,support:d}=e,c=!!i.nested,p="on"===t?"addEventListener":"removeEventListener",u=t;if(d.touch){const t=!("touchstart"!==r.start||!d.passiveListener||!i.passiveListeners)&&{passive:!0,capture:!1};n[p](r.start,e.onTouchStart,t),n[p](r.move,e.onTouchMove,d.passiveListener?{passive:!1,capture:c}:c),n[p](r.end,e.onTouchEnd,t),r.cancel&&n[p](r.cancel,e.onTouchEnd,t)}else n[p](r.start,e.onTouchStart,!1),s[p](r.move,e.onTouchMove,c),s[p](r.end,e.onTouchEnd,!1);(i.preventClicks||i.preventClicksPropagation)&&n[p]("click",e.onClick,!0),i.cssMode&&l[p]("scroll",e.onScroll),i.updateOnWindowResize?e[u](o.ios||o.android?"resize orientationchange observerUpdate":"resize observerUpdate",P,!0):e[u]("observerUpdate",P,!0)},A=(e,t)=>e.grid&&t.grid&&t.grid.rows>1;var D={init:!0,direction:"horizontal",touchEventsTarget:"wrapper",initialSlide:0,speed:300,cssMode:!1,updateOnWindowResize:!0,resizeObserver:!0,nested:!1,createElements:!1,enabled:!0,focusableElements:"input, select, option, textarea, button, video, label",width:null,height:null,preventInteractionOnTransition:!1,userAgent:null,url:null,edgeSwipeDetection:!1,edgeSwipeThreshold:20,autoHeight:!1,setWrapperSize:!1,virtualTranslate:!1,effect:"slide",breakpoints:void 0,breakpointsBase:"window",spaceBetween:0,slidesPerView:1,slidesPerGroup:1,slidesPerGroupSkip:0,slidesPerGroupAuto:!1,centeredSlides:!1,centeredSlidesBounds:!1,slidesOffsetBefore:0,slidesOffsetAfter:0,normalizeSlideIndex:!0,centerInsufficientSlides:!1,watchOverflow:!0,roundLengths:!1,touchRatio:1,touchAngle:45,simulateTouch:!0,shortSwipes:!0,longSwipes:!0,longSwipesRatio:.5,longSwipesMs:300,followFinger:!0,allowTouchMove:!0,threshold:0,touchMoveStopPropagation:!1,touchStartPreventDefault:!0,touchStartForcePreventDefault:!1,touchReleaseOnEdges:!1,uniqueNavElements:!0,resistance:!0,resistanceRatio:.85,watchSlidesProgress:!1,grabCursor:!1,preventClicks:!0,preventClicksPropagation:!0,slideToClickedSlide:!1,preloadImages:!0,updateOnImagesReady:!0,loop:!1,loopAdditionalSlides:0,loopedSlides:null,loopFillGroupWithBlank:!1,loopPreventsSlide:!0,allowSlidePrev:!0,allowSlideNext:!0,swipeHandler:null,noSwiping:!0,noSwipingClass:"swiper-no-swiping",noSwipingSelector:null,passiveListeners:!0,containerModifierClass:"swiper-container-",slideClass:"swiper-slide",slideBlankClass:"swiper-slide-invisible-blank",slideActiveClass:"swiper-slide-active",slideDuplicateActiveClass:"swiper-slide-duplicate-active",slideVisibleClass:"swiper-slide-visible",slideDuplicateClass:"swiper-slide-duplicate",slideNextClass:"swiper-slide-next",slideDuplicateNextClass:"swiper-slide-duplicate-next",slidePrevClass:"swiper-slide-prev",slideDuplicatePrevClass:"swiper-slide-duplicate-prev",wrapperClass:"swiper-wrapper",runCallbacksOnInit:!0,_emitClasses:!1};function N(e,t){return function(s={}){const a=Object.keys(s)[0],i=s[a];"object"==typeof i&&null!==i?(["navigation","pagination","scrollbar"].indexOf(a)>=0&&!0===e[a]&&(e[a]={auto:!0}),a in e&&"enabled"in i?(!0===e[a]&&(e[a]={enabled:!0}),"object"!=typeof e[a]||"enabled"in e[a]||(e[a].enabled=!0),e[a]||(e[a]={enabled:!1}),f(t,s)):f(t,s)):f(t,s)}}const G={eventsEmitter:{on(e,t,s){const a=this;if("function"!=typeof t)return a;const i=s?"unshift":"push";return e.split(" ").forEach(e=>{a.eventsListeners[e]||(a.eventsListeners[e]=[]),a.eventsListeners[e][i](t)}),a},once(e,t,s){const a=this;if("function"!=typeof t)return a;function i(...s){a.off(e,i),i.__emitterProxy&&delete i.__emitterProxy,t.apply(a,s)}return i.__emitterProxy=t,a.on(e,i,s)},onAny(e,t){const s=this;if("function"!=typeof e)return s;const a=t?"unshift":"push";return s.eventsAnyListeners.indexOf(e)<0&&s.eventsAnyListeners[a](e),s},offAny(e){const t=this;if(!t.eventsAnyListeners)return t;const s=t.eventsAnyListeners.indexOf(e);return s>=0&&t.eventsAnyListeners.splice(s,1),t},off(e,t){const s=this;return s.eventsListeners?(e.split(" ").forEach(e=>{void 0===t?s.eventsListeners[e]=[]:s.eventsListeners[e]&&s.eventsListeners[e].forEach((a,i)=>{(a===t||a.__emitterProxy&&a.__emitterProxy===t)&&s.eventsListeners[e].splice(i,1)})}),s):s},emit(...e){const t=this;if(!t.eventsListeners)return t;let s,a,i;return"string"==typeof e[0]||Array.isArray(e[0])?(s=e[0],a=e.slice(1,e.length),i=t):(s=e[0].events,a=e[0].data,i=e[0].context||t),a.unshift(i),(Array.isArray(s)?s:s.split(" ")).forEach(e=>{t.eventsAnyListeners&&t.eventsAnyListeners.length&&t.eventsAnyListeners.forEach(t=>{t.apply(i,[e,...a])}),t.eventsListeners&&t.eventsListeners[e]&&t.eventsListeners[e].forEach(e=>{e.apply(i,a)})}),t}},update:{updateSize:function(){const e=this;let t,s;const a=e.$el;t=void 0!==e.params.width&&null!==e.params.width?e.params.width:a[0].clientWidth,s=void 0!==e.params.height&&null!==e.params.height?e.params.height:a[0].clientHeight,0===t&&e.isHorizontal()||0===s&&e.isVertical()||(t=t-parseInt(a.css("padding-left")||0,10)-parseInt(a.css("padding-right")||0,10),s=s-parseInt(a.css("padding-top")||0,10)-parseInt(a.css("padding-bottom")||0,10),Number.isNaN(t)&&(t=0),Number.isNaN(s)&&(s=0),Object.assign(e,{width:t,height:s,size:e.isHorizontal()?t:s}))},updateSlides:function(){const e=this;function t(t){return e.isHorizontal()?t:{width:"height","margin-top":"margin-left","margin-bottom ":"margin-right","margin-left":"margin-top","margin-right":"margin-bottom","padding-left":"padding-top","padding-right":"padding-bottom",marginRight:"marginBottom"}[t]}function s(e,s){return parseFloat(e.getPropertyValue(t(s))||0)}const a=e.params,{$wrapperEl:i,size:r,rtlTranslate:n,wrongRTL:l}=e,o=e.virtual&&a.virtual.enabled,d=o?e.virtual.slides.length:e.slides.length,c=i.children("."+e.params.slideClass),p=o?e.virtual.slides.length:c.length;let u=[];const h=[],m=[];let f=a.slidesOffsetBefore;"function"==typeof f&&(f=a.slidesOffsetBefore.call(e));let v=a.slidesOffsetAfter;"function"==typeof v&&(v=a.slidesOffsetAfter.call(e));const w=e.snapGrid.length,b=e.slidesGrid.length;let x=a.spaceBetween,y=-f,E=0,T=0;if(void 0===r)return;"string"==typeof x&&x.indexOf("%")>=0&&(x=parseFloat(x.replace("%",""))/100*r),e.virtualSize=-x,n?c.css({marginLeft:"",marginBottom:"",marginTop:""}):c.css({marginRight:"",marginBottom:"",marginTop:""}),a.centeredSlides&&a.cssMode&&(g(e.wrapperEl,"--swiper-centered-offset-before",""),g(e.wrapperEl,"--swiper-centered-offset-after",""));const C=a.grid&&a.grid.rows>1&&e.grid;let S;C&&e.grid.initSlides(p);for(let i=0;i<p;i+=1){S=0;const n=c.eq(i);if(C&&e.grid.updateSlide(i,n,p,t),"none"!==n.css("display")){if("auto"===a.slidesPerView){const t=getComputedStyle(n[0]),i=n[0].style.transform,r=n[0].style.webkitTransform;if(i&&(n[0].style.transform="none"),r&&(n[0].style.webkitTransform="none"),a.roundLengths)S=e.isHorizontal()?n.outerWidth(!0):n.outerHeight(!0);else{const e=s(t,"width"),a=s(t,"padding-left"),i=s(t,"padding-right"),r=s(t,"margin-left"),l=s(t,"margin-right"),o=t.getPropertyValue("box-sizing");if(o&&"border-box"===o)S=e+r+l;else{const{clientWidth:t,offsetWidth:s}=n[0];S=e+a+i+r+l+(s-t)}}i&&(n[0].style.transform=i),r&&(n[0].style.webkitTransform=r),a.roundLengths&&(S=Math.floor(S))}else S=(r-(a.slidesPerView-1)*x)/a.slidesPerView,a.roundLengths&&(S=Math.floor(S)),c[i]&&(c[i].style[t("width")]=S+"px");c[i]&&(c[i].swiperSlideSize=S),m.push(S),a.centeredSlides?(y=y+S/2+E/2+x,0===E&&0!==i&&(y=y-r/2-x),0===i&&(y=y-r/2-x),Math.abs(y)<.001&&(y=0),a.roundLengths&&(y=Math.floor(y)),T%a.slidesPerGroup==0&&u.push(y),h.push(y)):(a.roundLengths&&(y=Math.floor(y)),(T-Math.min(e.params.slidesPerGroupSkip,T))%e.params.slidesPerGroup==0&&u.push(y),h.push(y),y=y+S+x),e.virtualSize+=S+x,E=S,T+=1}}if(e.virtualSize=Math.max(e.virtualSize,r)+v,n&&l&&("slide"===a.effect||"coverflow"===a.effect)&&i.css({width:e.virtualSize+a.spaceBetween+"px"}),a.setWrapperSize&&i.css({[t("width")]:e.virtualSize+a.spaceBetween+"px"}),C&&e.grid.updateWrapperSize(S,u,t),!a.centeredSlides){const t=[];for(let s=0;s<u.length;s+=1){let i=u[s];a.roundLengths&&(i=Math.floor(i)),u[s]<=e.virtualSize-r&&t.push(i)}u=t,Math.floor(e.virtualSize-r)-Math.floor(u[u.length-1])>1&&u.push(e.virtualSize-r)}if(0===u.length&&(u=[0]),0!==a.spaceBetween){const s=e.isHorizontal()&&n?"marginLeft":t("marginRight");c.filter((e,t)=>!a.cssMode||t!==c.length-1).css({[s]:x+"px"})}if(a.centeredSlides&&a.centeredSlidesBounds){let e=0;m.forEach(t=>{e+=t+(a.spaceBetween?a.spaceBetween:0)}),e-=a.spaceBetween;const t=e-r;u=u.map(e=>e<0?-f:e>t?t+v:e)}if(a.centerInsufficientSlides){let e=0;if(m.forEach(t=>{e+=t+(a.spaceBetween?a.spaceBetween:0)}),e-=a.spaceBetween,e<r){const t=(r-e)/2;u.forEach((e,s)=>{u[s]=e-t}),h.forEach((e,s)=>{h[s]=e+t})}}if(Object.assign(e,{slides:c,snapGrid:u,slidesGrid:h,slidesSizesGrid:m}),a.centeredSlides&&a.cssMode&&!a.centeredSlidesBounds){g(e.wrapperEl,"--swiper-centered-offset-before",-u[0]+"px"),g(e.wrapperEl,"--swiper-centered-offset-after",e.size/2-m[m.length-1]/2+"px");const t=-e.snapGrid[0],s=-e.slidesGrid[0];e.snapGrid=e.snapGrid.map(e=>e+t),e.slidesGrid=e.slidesGrid.map(e=>e+s)}p!==d&&e.emit("slidesLengthChange"),u.length!==w&&(e.params.watchOverflow&&e.checkOverflow(),e.emit("snapGridLengthChange")),h.length!==b&&e.emit("slidesGridLengthChange"),a.watchSlidesProgress&&e.updateSlidesOffset()},updateAutoHeight:function(e){const t=this,s=[],a=t.virtual&&t.params.virtual.enabled;let i,r=0;"number"==typeof e?t.setTransition(e):!0===e&&t.setTransition(t.params.speed);const n=e=>a?t.slides.filter(t=>parseInt(t.getAttribute("data-swiper-slide-index"),10)===e)[0]:t.slides.eq(e)[0];if("auto"!==t.params.slidesPerView&&t.params.slidesPerView>1)if(t.params.centeredSlides)t.visibleSlides.each(e=>{s.push(e)});else for(i=0;i<Math.ceil(t.params.slidesPerView);i+=1){const e=t.activeIndex+i;if(e>t.slides.length&&!a)break;s.push(n(e))}else s.push(n(t.activeIndex));for(i=0;i<s.length;i+=1)if(void 0!==s[i]){const e=s[i].offsetHeight;r=e>r?e:r}r&&t.$wrapperEl.css("height",r+"px")},updateSlidesOffset:function(){const e=this,t=e.slides;for(let s=0;s<t.length;s+=1)t[s].swiperSlideOffset=e.isHorizontal()?t[s].offsetLeft:t[s].offsetTop},updateSlidesProgress:function(e=this&&this.translate||0){const t=this,s=t.params,{slides:a,rtlTranslate:i}=t;if(0===a.length)return;void 0===a[0].swiperSlideOffset&&t.updateSlidesOffset();let r=-e;i&&(r=e),a.removeClass(s.slideVisibleClass),t.visibleSlidesIndexes=[],t.visibleSlides=[];for(let e=0;e<a.length;e+=1){const n=a[e];let l=n.swiperSlideOffset;s.cssMode&&s.centeredSlides&&(l-=a[0].swiperSlideOffset);const o=(r+(s.centeredSlides?t.minTranslate():0)-l)/(n.swiperSlideSize+s.spaceBetween),d=-(r-l),c=d+t.slidesSizesGrid[e];(d>=0&&d<t.size-1||c>1&&c<=t.size||d<=0&&c>=t.size)&&(t.visibleSlides.push(n),t.visibleSlidesIndexes.push(e),a.eq(e).addClass(s.slideVisibleClass)),n.progress=i?-o:o}t.visibleSlides=d(t.visibleSlides)},updateProgress:function(e){const t=this;if(void 0===e){const s=t.rtlTranslate?-1:1;e=t&&t.translate&&t.translate*s||0}const s=t.params,a=t.maxTranslate()-t.minTranslate();let{progress:i,isBeginning:r,isEnd:n}=t;const l=r,o=n;0===a?(i=0,r=!0,n=!0):(i=(e-t.minTranslate())/a,r=i<=0,n=i>=1),Object.assign(t,{progress:i,isBeginning:r,isEnd:n}),(s.watchSlidesProgress||s.centeredSlides&&s.autoHeight)&&t.updateSlidesProgress(e),r&&!l&&t.emit("reachBeginning toEdge"),n&&!o&&t.emit("reachEnd toEdge"),(l&&!r||o&&!n)&&t.emit("fromEdge"),t.emit("progress",i)},updateSlidesClasses:function(){const e=this,{slides:t,params:s,$wrapperEl:a,activeIndex:i,realIndex:r}=e,n=e.virtual&&s.virtual.enabled;let l;t.removeClass(`${s.slideActiveClass} ${s.slideNextClass} ${s.slidePrevClass} ${s.slideDuplicateActiveClass} ${s.slideDuplicateNextClass} ${s.slideDuplicatePrevClass}`),l=n?e.$wrapperEl.find(`.${s.slideClass}[data-swiper-slide-index="${i}"]`):t.eq(i),l.addClass(s.slideActiveClass),s.loop&&(l.hasClass(s.slideDuplicateClass)?a.children(`.${s.slideClass}:not(.${s.slideDuplicateClass})[data-swiper-slide-index="${r}"]`).addClass(s.slideDuplicateActiveClass):a.children(`.${s.slideClass}.${s.slideDuplicateClass}[data-swiper-slide-index="${r}"]`).addClass(s.slideDuplicateActiveClass));let o=l.nextAll("."+s.slideClass).eq(0).addClass(s.slideNextClass);s.loop&&0===o.length&&(o=t.eq(0),o.addClass(s.slideNextClass));let d=l.prevAll("."+s.slideClass).eq(0).addClass(s.slidePrevClass);s.loop&&0===d.length&&(d=t.eq(-1),d.addClass(s.slidePrevClass)),s.loop&&(o.hasClass(s.slideDuplicateClass)?a.children(`.${s.slideClass}:not(.${s.slideDuplicateClass})[data-swiper-slide-index="${o.attr("data-swiper-slide-index")}"]`).addClass(s.slideDuplicateNextClass):a.children(`.${s.slideClass}.${s.slideDuplicateClass}[data-swiper-slide-index="${o.attr("data-swiper-slide-index")}"]`).addClass(s.slideDuplicateNextClass),d.hasClass(s.slideDuplicateClass)?a.children(`.${s.slideClass}:not(.${s.slideDuplicateClass})[data-swiper-slide-index="${d.attr("data-swiper-slide-index")}"]`).addClass(s.slideDuplicatePrevClass):a.children(`.${s.slideClass}.${s.slideDuplicateClass}[data-swiper-slide-index="${d.attr("data-swiper-slide-index")}"]`).addClass(s.slideDuplicatePrevClass)),e.emitSlidesClasses()},updateActiveIndex:function(e){const t=this,s=t.rtlTranslate?t.translate:-t.translate,{slidesGrid:a,snapGrid:i,params:r,activeIndex:n,realIndex:l,snapIndex:o}=t;let d,c=e;if(void 0===c){for(let e=0;e<a.length;e+=1)void 0!==a[e+1]?s>=a[e]&&s<a[e+1]-(a[e+1]-a[e])/2?c=e:s>=a[e]&&s<a[e+1]&&(c=e+1):s>=a[e]&&(c=e);r.normalizeSlideIndex&&(c<0||void 0===c)&&(c=0)}if(i.indexOf(s)>=0)d=i.indexOf(s);else{const e=Math.min(r.slidesPerGroupSkip,c);d=e+Math.floor((c-e)/r.slidesPerGroup)}if(d>=i.length&&(d=i.length-1),c===n)return void(d!==o&&(t.snapIndex=d,t.emit("snapIndexChange")));const p=parseInt(t.slides.eq(c).attr("data-swiper-slide-index")||c,10);Object.assign(t,{snapIndex:d,realIndex:p,previousIndex:n,activeIndex:c}),t.emit("activeIndexChange"),t.emit("snapIndexChange"),l!==p&&t.emit("realIndexChange"),(t.initialized||t.params.runCallbacksOnInit)&&t.emit("slideChange")},updateClickedSlide:function(e){const t=this,s=t.params,a=d(e.target).closest("."+s.slideClass)[0];let i,r=!1;if(a)for(let e=0;e<t.slides.length;e+=1)if(t.slides[e]===a){r=!0,i=e;break}if(!a||!r)return t.clickedSlide=void 0,void(t.clickedIndex=void 0);t.clickedSlide=a,t.virtual&&t.params.virtual.enabled?t.clickedIndex=parseInt(d(a).attr("data-swiper-slide-index"),10):t.clickedIndex=i,s.slideToClickedSlide&&void 0!==t.clickedIndex&&t.clickedIndex!==t.activeIndex&&t.slideToClickedSlide()}},translate:{getTranslate:function(e=(this.isHorizontal()?"x":"y")){const{params:t,rtlTranslate:s,translate:a,$wrapperEl:i}=this;if(t.virtualTranslate)return s?-a:a;if(t.cssMode)return a;let r=h(i[0],e);return s&&(r=-r),r||0},setTranslate:function(e,t){const s=this,{rtlTranslate:a,params:i,$wrapperEl:r,wrapperEl:n,progress:l}=s;let o,d=0,c=0;s.isHorizontal()?d=a?-e:e:c=e,i.roundLengths&&(d=Math.floor(d),c=Math.floor(c)),i.cssMode?n[s.isHorizontal()?"scrollLeft":"scrollTop"]=s.isHorizontal()?-d:-c:i.virtualTranslate||r.transform(`translate3d(${d}px, ${c}px, 0px)`),s.previousTranslate=s.translate,s.translate=s.isHorizontal()?d:c;const p=s.maxTranslate()-s.minTranslate();o=0===p?0:(e-s.minTranslate())/p,o!==l&&s.updateProgress(e),s.emit("setTranslate",s.translate,t)},minTranslate:function(){return-this.snapGrid[0]},maxTranslate:function(){return-this.snapGrid[this.snapGrid.length-1]},translateTo:function(e=0,t=this.params.speed,s=!0,a=!0,i){const r=this,{params:n,wrapperEl:l}=r;if(r.animating&&n.preventInteractionOnTransition)return!1;const o=r.minTranslate(),d=r.maxTranslate();let c;if(c=a&&e>o?o:a&&e<d?d:e,r.updateProgress(c),n.cssMode){const e=r.isHorizontal();if(0===t)l[e?"scrollLeft":"scrollTop"]=-c;else{if(!r.support.smoothScroll)return v({swiper:r,targetPosition:-c,side:e?"left":"top"}),!0;l.scrollTo({[e?"left":"top"]:-c,behavior:"smooth"})}return!0}return 0===t?(r.setTransition(0),r.setTranslate(c),s&&(r.emit("beforeTransitionStart",t,i),r.emit("transitionEnd"))):(r.setTransition(t),r.setTranslate(c),s&&(r.emit("beforeTransitionStart",t,i),r.emit("transitionStart")),r.animating||(r.animating=!0,r.onTranslateToWrapperTransitionEnd||(r.onTranslateToWrapperTransitionEnd=function(e){r&&!r.destroyed&&e.target===this&&(r.$wrapperEl[0].removeEventListener("transitionend",r.onTranslateToWrapperTransitionEnd),r.$wrapperEl[0].removeEventListener("webkitTransitionEnd",r.onTranslateToWrapperTransitionEnd),r.onTranslateToWrapperTransitionEnd=null,delete r.onTranslateToWrapperTransitionEnd,s&&r.emit("transitionEnd"))}),r.$wrapperEl[0].addEventListener("transitionend",r.onTranslateToWrapperTransitionEnd),r.$wrapperEl[0].addEventListener("webkitTransitionEnd",r.onTranslateToWrapperTransitionEnd))),!0}},transition:{setTransition:function(e,t){const s=this;s.params.cssMode||s.$wrapperEl.transition(e),s.emit("setTransition",e,t)},transitionStart:function(e=!0,t){const s=this,{params:a}=s;a.cssMode||(a.autoHeight&&s.updateAutoHeight(),C({swiper:s,runCallbacks:e,direction:t,step:"Start"}))},transitionEnd:function(e=!0,t){const s=this,{params:a}=s;s.animating=!1,a.cssMode||(s.setTransition(0),C({swiper:s,runCallbacks:e,direction:t,step:"End"}))}},slide:{slideTo:function(e=0,t=this.params.speed,s=!0,a,i){if("number"!=typeof e&&"string"!=typeof e)throw new Error(`The 'index' argument cannot have type other than 'number' or 'string'. [${typeof e}] given.`);if("string"==typeof e){const t=parseInt(e,10);if(!isFinite(t))throw new Error(`The passed-in 'index' (string) couldn't be converted to 'number'. [${e}] given.`);e=t}const r=this;let n=e;n<0&&(n=0);const{params:l,snapGrid:o,slidesGrid:d,previousIndex:c,activeIndex:p,rtlTranslate:u,wrapperEl:h,enabled:m}=r;if(r.animating&&l.preventInteractionOnTransition||!m&&!a&&!i)return!1;const f=Math.min(r.params.slidesPerGroupSkip,n);let g=f+Math.floor((n-f)/r.params.slidesPerGroup);g>=o.length&&(g=o.length-1),(p||l.initialSlide||0)===(c||0)&&s&&r.emit("beforeSlideChangeStart");const w=-o[g];if(r.updateProgress(w),l.normalizeSlideIndex)for(let e=0;e<d.length;e+=1){const t=-Math.floor(100*w),s=Math.floor(100*d[e]),a=Math.floor(100*d[e+1]);void 0!==d[e+1]?t>=s&&t<a-(a-s)/2?n=e:t>=s&&t<a&&(n=e+1):t>=s&&(n=e)}if(r.initialized&&n!==p){if(!r.allowSlideNext&&w<r.translate&&w<r.minTranslate())return!1;if(!r.allowSlidePrev&&w>r.translate&&w>r.maxTranslate()&&(p||0)!==n)return!1}let b;if(b=n>p?"next":n<p?"prev":"reset",u&&-w===r.translate||!u&&w===r.translate)return r.updateActiveIndex(n),l.autoHeight&&r.updateAutoHeight(),r.updateSlidesClasses(),"slide"!==l.effect&&r.setTranslate(w),"reset"!==b&&(r.transitionStart(s,b),r.transitionEnd(s,b)),!1;if(l.cssMode){const e=r.isHorizontal(),s=u?w:-w;if(0===t){const t=r.virtual&&r.params.virtual.enabled;t&&(r.wrapperEl.style.scrollSnapType="none"),h[e?"scrollLeft":"scrollTop"]=s,t&&requestAnimationFrame(()=>{r.wrapperEl.style.scrollSnapType=""})}else{if(!r.support.smoothScroll)return v({swiper:r,targetPosition:s,side:e?"left":"top"}),!0;h.scrollTo({[e?"left":"top"]:s,behavior:"smooth"})}return!0}return 0===t?(r.setTransition(0),r.setTranslate(w),r.updateActiveIndex(n),r.updateSlidesClasses(),r.emit("beforeTransitionStart",t,a),r.transitionStart(s,b),r.transitionEnd(s,b)):(r.setTransition(t),r.setTranslate(w),r.updateActiveIndex(n),r.updateSlidesClasses(),r.emit("beforeTransitionStart",t,a),r.transitionStart(s,b),r.animating||(r.animating=!0,r.onSlideToWrapperTransitionEnd||(r.onSlideToWrapperTransitionEnd=function(e){r&&!r.destroyed&&e.target===this&&(r.$wrapperEl[0].removeEventListener("transitionend",r.onSlideToWrapperTransitionEnd),r.$wrapperEl[0].removeEventListener("webkitTransitionEnd",r.onSlideToWrapperTransitionEnd),r.onSlideToWrapperTransitionEnd=null,delete r.onSlideToWrapperTransitionEnd,r.transitionEnd(s,b))}),r.$wrapperEl[0].addEventListener("transitionend",r.onSlideToWrapperTransitionEnd),r.$wrapperEl[0].addEventListener("webkitTransitionEnd",r.onSlideToWrapperTransitionEnd))),!0},slideToLoop:function(e=0,t=this.params.speed,s=!0,a){const i=this;let r=e;return i.params.loop&&(r+=i.loopedSlides),i.slideTo(r,t,s,a)},slideNext:function(e=this.params.speed,t=!0,s){const a=this,{animating:i,enabled:r,params:n}=a;if(!r)return a;let l=n.slidesPerGroup;"auto"===n.slidesPerView&&1===n.slidesPerGroup&&n.slidesPerGroupAuto&&(l=Math.max(a.slidesPerViewDynamic("current",!0),1));const o=a.activeIndex<n.slidesPerGroupSkip?1:l;if(n.loop){if(i&&n.loopPreventsSlide)return!1;a.loopFix(),a._clientLeft=a.$wrapperEl[0].clientLeft}return a.slideTo(a.activeIndex+o,e,t,s)},slidePrev:function(e=this.params.speed,t=!0,s){const a=this,{params:i,animating:r,snapGrid:n,slidesGrid:l,rtlTranslate:o,enabled:d}=a;if(!d)return a;if(i.loop){if(r&&i.loopPreventsSlide)return!1;a.loopFix(),a._clientLeft=a.$wrapperEl[0].clientLeft}function c(e){return e<0?-Math.floor(Math.abs(e)):Math.floor(e)}const p=c(o?a.translate:-a.translate),u=n.map(e=>c(e));let h=n[u.indexOf(p)-1];if(void 0===h&&i.cssMode){let e;n.forEach((t,s)=>{p>=t&&(e=s)}),void 0!==e&&(h=n[e>0?e-1:e])}let m=0;return void 0!==h&&(m=l.indexOf(h),m<0&&(m=a.activeIndex-1),"auto"===i.slidesPerView&&1===i.slidesPerGroup&&i.slidesPerGroupAuto&&(m=m-a.slidesPerViewDynamic("previous",!0)+1,m=Math.max(m,0))),a.slideTo(m,e,t,s)},slideReset:function(e=this.params.speed,t=!0,s){return this.slideTo(this.activeIndex,e,t,s)},slideToClosest:function(e=this.params.speed,t=!0,s,a=.5){const i=this;let r=i.activeIndex;const n=Math.min(i.params.slidesPerGroupSkip,r),l=n+Math.floor((r-n)/i.params.slidesPerGroup),o=i.rtlTranslate?i.translate:-i.translate;if(o>=i.snapGrid[l]){const e=i.snapGrid[l];o-e>(i.snapGrid[l+1]-e)*a&&(r+=i.params.slidesPerGroup)}else{const e=i.snapGrid[l-1];o-e<=(i.snapGrid[l]-e)*a&&(r-=i.params.slidesPerGroup)}return r=Math.max(r,0),r=Math.min(r,i.slidesGrid.length-1),i.slideTo(r,e,t,s)},slideToClickedSlide:function(){const e=this,{params:t,$wrapperEl:s}=e,a="auto"===t.slidesPerView?e.slidesPerViewDynamic():t.slidesPerView;let i,r=e.clickedIndex;if(t.loop){if(e.animating)return;i=parseInt(d(e.clickedSlide).attr("data-swiper-slide-index"),10),t.centeredSlides?r<e.loopedSlides-a/2||r>e.slides.length-e.loopedSlides+a/2?(e.loopFix(),r=s.children(`.${t.slideClass}[data-swiper-slide-index="${i}"]:not(.${t.slideDuplicateClass})`).eq(0).index(),p(()=>{e.slideTo(r)})):e.slideTo(r):r>e.slides.length-a?(e.loopFix(),r=s.children(`.${t.slideClass}[data-swiper-slide-index="${i}"]:not(.${t.slideDuplicateClass})`).eq(0).index(),p(()=>{e.slideTo(r)})):e.slideTo(r)}else e.slideTo(r)}},loop:{loopCreate:function(){const e=this,t=a(),{params:s,$wrapperEl:i}=e;i.children(`.${s.slideClass}.${s.slideDuplicateClass}`).remove();let r=i.children("."+s.slideClass);if(s.loopFillGroupWithBlank){const e=s.slidesPerGroup-r.length%s.slidesPerGroup;if(e!==s.slidesPerGroup){for(let a=0;a<e;a+=1){const e=d(t.createElement("div")).addClass(`${s.slideClass} ${s.slideBlankClass}`);i.append(e)}r=i.children("."+s.slideClass)}}"auto"!==s.slidesPerView||s.loopedSlides||(s.loopedSlides=r.length),e.loopedSlides=Math.ceil(parseFloat(s.loopedSlides||s.slidesPerView,10)),e.loopedSlides+=s.loopAdditionalSlides,e.loopedSlides>r.length&&(e.loopedSlides=r.length);const n=[],l=[];r.each((t,s)=>{const a=d(t);s<e.loopedSlides&&l.push(t),s<r.length&&s>=r.length-e.loopedSlides&&n.push(t),a.attr("data-swiper-slide-index",s)});for(let e=0;e<l.length;e+=1)i.append(d(l[e].cloneNode(!0)).addClass(s.slideDuplicateClass));for(let e=n.length-1;e>=0;e-=1)i.prepend(d(n[e].cloneNode(!0)).addClass(s.slideDuplicateClass))},loopFix:function(){const e=this;e.emit("beforeLoopFix");const{activeIndex:t,slides:s,loopedSlides:a,allowSlidePrev:i,allowSlideNext:r,snapGrid:n,rtlTranslate:l}=e;let o;e.allowSlidePrev=!0,e.allowSlideNext=!0;const d=-n[t]-e.getTranslate();t<a?(o=s.length-3*a+t,o+=a,e.slideTo(o,0,!1,!0)&&0!==d&&e.setTranslate((l?-e.translate:e.translate)-d)):t>=s.length-a&&(o=-s.length+t+a,o+=a,e.slideTo(o,0,!1,!0)&&0!==d&&e.setTranslate((l?-e.translate:e.translate)-d)),e.allowSlidePrev=i,e.allowSlideNext=r,e.emit("loopFix")},loopDestroy:function(){const{$wrapperEl:e,params:t,slides:s}=this;e.children(`.${t.slideClass}.${t.slideDuplicateClass},.${t.slideClass}.${t.slideBlankClass}`).remove(),s.removeAttr("data-swiper-slide-index")}},grabCursor:{setGrabCursor:function(e){const t=this;if(t.support.touch||!t.params.simulateTouch||t.params.watchOverflow&&t.isLocked||t.params.cssMode)return;const s="container"===t.params.touchEventsTarget?t.el:t.wrapperEl;s.style.cursor="move",s.style.cursor=e?"-webkit-grabbing":"-webkit-grab",s.style.cursor=e?"-moz-grabbin":"-moz-grab",s.style.cursor=e?"grabbing":"grab"},unsetGrabCursor:function(){const e=this;e.support.touch||e.params.watchOverflow&&e.isLocked||e.params.cssMode||(e["container"===e.params.touchEventsTarget?"el":"wrapperEl"].style.cursor="")}},events:{attachEvents:function(){const e=this,t=a(),{params:s,support:i}=e;e.onTouchStart=S.bind(e),e.onTouchMove=M.bind(e),e.onTouchEnd=$.bind(e),s.cssMode&&(e.onScroll=z.bind(e)),e.onClick=k.bind(e),i.touch&&!O&&(t.addEventListener("touchstart",I),O=!0),L(e,"on")},detachEvents:function(){L(this,"off")}},breakpoints:{setBreakpoint:function(){const e=this,{activeIndex:t,initialized:s,loopedSlides:a=0,params:i,$el:r}=e,n=i.breakpoints;if(!n||n&&0===Object.keys(n).length)return;const l=e.getBreakpoint(n,e.params.breakpointsBase,e.el);if(!l||e.currentBreakpoint===l)return;const o=(l in n?n[l]:void 0)||e.originalParams,d=A(e,i),c=A(e,o),p=i.enabled;d&&!c?(r.removeClass(`${i.containerModifierClass}grid ${i.containerModifierClass}grid-column`),e.emitContainerClasses()):!d&&c&&(r.addClass(i.containerModifierClass+"grid"),(o.grid.fill&&"column"===o.grid.fill||!o.grid.fill&&"column"===i.grid.fill)&&r.addClass(i.containerModifierClass+"grid-column"),e.emitContainerClasses());const u=o.direction&&o.direction!==i.direction,h=i.loop&&(o.slidesPerView!==i.slidesPerView||u);u&&s&&e.changeDirection(),f(e.params,o);const m=e.params.enabled;Object.assign(e,{allowTouchMove:e.params.allowTouchMove,allowSlideNext:e.params.allowSlideNext,allowSlidePrev:e.params.allowSlidePrev}),p&&!m?e.disable():!p&&m&&e.enable(),e.currentBreakpoint=l,e.emit("_beforeBreakpoint",o),h&&s&&(e.loopDestroy(),e.loopCreate(),e.updateSlides(),e.slideTo(t-a+e.loopedSlides,0,!1)),e.emit("breakpoint",o)},getBreakpoint:function(e,t="window",s){if(!e||"container"===t&&!s)return;let a=!1;const i=r(),n="window"===t?i.innerHeight:s.clientHeight,l=Object.keys(e).map(e=>{if("string"==typeof e&&0===e.indexOf("@")){const t=parseFloat(e.substr(1));return{value:n*t,point:e}}return{value:e,point:e}});l.sort((e,t)=>parseInt(e.value,10)-parseInt(t.value,10));for(let e=0;e<l.length;e+=1){const{point:r,value:n}=l[e];"window"===t?i.matchMedia(`(min-width: ${n}px)`).matches&&(a=r):n<=s.clientWidth&&(a=r)}return a||"max"}},checkOverflow:{checkOverflow:function(){const e=this,{isLocked:t,params:s}=e,{slidesOffsetBefore:a}=s;if(a){const t=e.slides.length-1,s=e.slidesGrid[t]+e.slidesSizesGrid[t]+2*a;e.isLocked=e.size>s}else e.isLocked=1===e.snapGrid.length;!0===s.allowSlideNext&&(e.allowSlideNext=!e.isLocked),!0===s.allowSlidePrev&&(e.allowSlidePrev=!e.isLocked),t&&t!==e.isLocked&&(e.isEnd=!1),t!==e.isLocked&&e.emit(e.isLocked?"lock":"unlock")}},classes:{addClasses:function(){const e=this,{classNames:t,params:s,rtl:a,$el:i,device:r,support:n}=e,l=function(e,t){const s=[];return e.forEach(e=>{"object"==typeof e?Object.keys(e).forEach(a=>{e[a]&&s.push(t+a)}):"string"==typeof e&&s.push(t+e)}),s}(["initialized",s.direction,{"pointer-events":!n.touch},{"free-mode":e.params.freeMode&&s.freeMode.enabled},{autoheight:s.autoHeight},{rtl:a},{grid:s.grid&&s.grid.rows>1},{"grid-column":s.grid&&s.grid.rows>1&&"column"===s.grid.fill},{android:r.android},{ios:r.ios},{"css-mode":s.cssMode},{centered:s.cssMode&&s.centeredSlides}],s.containerModifierClass);t.push(...l),i.addClass([...t].join(" ")),e.emitContainerClasses()},removeClasses:function(){const{$el:e,classNames:t}=this;e.removeClass(t.join(" ")),this.emitContainerClasses()}},images:{loadImage:function(e,t,s,a,i,n){const l=r();let o;function c(){n&&n()}d(e).parent("picture")[0]||e.complete&&i?c():t?(o=new l.Image,o.onload=c,o.onerror=c,a&&(o.sizes=a),s&&(o.srcset=s),t&&(o.src=t)):c()},preloadImages:function(){const e=this;function t(){null!=e&&e&&!e.destroyed&&(void 0!==e.imagesLoaded&&(e.imagesLoaded+=1),e.imagesLoaded===e.imagesToLoad.length&&(e.params.updateOnImagesReady&&e.update(),e.emit("imagesReady")))}e.imagesToLoad=e.$el.find("img");for(let s=0;s<e.imagesToLoad.length;s+=1){const a=e.imagesToLoad[s];e.loadImage(a,a.currentSrc||a.getAttribute("src"),a.srcset||a.getAttribute("srcset"),a.sizes||a.getAttribute("sizes"),!0,t)}}}},B={};class X{constructor(...e){let t,s;if(1===e.length&&e[0].constructor&&"Object"===Object.prototype.toString.call(e[0]).slice(8,-1)?s=e[0]:[t,s]=e,s||(s={}),s=f({},s),t&&!s.el&&(s.el=t),s.el&&d(s.el).length>1){const e=[];return d(s.el).each(t=>{const a=f({},s,{el:t});e.push(new X(a))}),e}const a=this;a.__swiper__=!0,a.support=y(),a.device=E({userAgent:s.userAgent}),a.browser=T(),a.eventsListeners={},a.eventsAnyListeners=[],void 0===a.modules&&(a.modules=[]),s.modules&&Array.isArray(s.modules)&&a.modules.push(...s.modules);const i={};a.modules.forEach(e=>{e({swiper:a,extendParams:N(s,i),on:a.on.bind(a),once:a.once.bind(a),off:a.off.bind(a),emit:a.emit.bind(a)})});const r=f({},D,i);return a.params=f({},r,B,s),a.originalParams=f({},a.params),a.passedParams=f({},s),a.params&&a.params.on&&Object.keys(a.params.on).forEach(e=>{a.on(e,a.params.on[e])}),a.params&&a.params.onAny&&a.onAny(a.params.onAny),a.$=d,Object.assign(a,{enabled:a.params.enabled,el:t,classNames:[],slides:d(),slidesGrid:[],snapGrid:[],slidesSizesGrid:[],isHorizontal:()=>"horizontal"===a.params.direction,isVertical:()=>"vertical"===a.params.direction,activeIndex:0,realIndex:0,isBeginning:!0,isEnd:!1,translate:0,previousTranslate:0,progress:0,velocity:0,animating:!1,allowSlideNext:a.params.allowSlideNext,allowSlidePrev:a.params.allowSlidePrev,touchEvents:function(){const e=["touchstart","touchmove","touchend","touchcancel"],t=["pointerdown","pointermove","pointerup"];return a.touchEventsTouch={start:e[0],move:e[1],end:e[2],cancel:e[3]},a.touchEventsDesktop={start:t[0],move:t[1],end:t[2]},a.support.touch||!a.params.simulateTouch?a.touchEventsTouch:a.touchEventsDesktop}(),touchEventsData:{isTouched:void 0,isMoved:void 0,allowTouchCallbacks:void 0,touchStartTime:void 0,isScrolling:void 0,currentTranslate:void 0,startTranslate:void 0,allowThresholdMove:void 0,focusableElements:a.params.focusableElements,lastClickTime:u(),clickTimeout:void 0,velocities:[],allowMomentumBounce:void 0,isTouchEvent:void 0,startMoving:void 0},allowClick:!0,allowTouchMove:a.params.allowTouchMove,touches:{startX:0,startY:0,currentX:0,currentY:0,diff:0},imagesToLoad:[],imagesLoaded:0}),a.emit("_swiper"),a.params.init&&a.init(),a}enable(){const e=this;e.enabled||(e.enabled=!0,e.params.grabCursor&&e.setGrabCursor(),e.emit("enable"))}disable(){const e=this;e.enabled&&(e.enabled=!1,e.params.grabCursor&&e.unsetGrabCursor(),e.emit("disable"))}setProgress(e,t){const s=this;e=Math.min(Math.max(e,0),1);const a=s.minTranslate(),i=(s.maxTranslate()-a)*e+a;s.translateTo(i,void 0===t?0:t),s.updateActiveIndex(),s.updateSlidesClasses()}emitContainerClasses(){const e=this;if(!e.params._emitClasses||!e.el)return;const t=e.el.className.split(" ").filter(t=>0===t.indexOf("swiper-container")||0===t.indexOf(e.params.containerModifierClass));e.emit("_containerClasses",t.join(" "))}getSlideClasses(e){const t=this;return e.className.split(" ").filter(e=>0===e.indexOf("swiper-slide")||0===e.indexOf(t.params.slideClass)).join(" ")}emitSlidesClasses(){const e=this;if(!e.params._emitClasses||!e.el)return;const t=[];e.slides.each(s=>{const a=e.getSlideClasses(s);t.push({slideEl:s,classNames:a}),e.emit("_slideClass",s,a)}),e.emit("_slideClasses",t)}slidesPerViewDynamic(e="current",t=!1){const{params:s,slides:a,slidesGrid:i,slidesSizesGrid:r,size:n,activeIndex:l}=this;let o=1;if(s.centeredSlides){let e,t=a[l].swiperSlideSize;for(let s=l+1;s<a.length;s+=1)a[s]&&!e&&(t+=a[s].swiperSlideSize,o+=1,t>n&&(e=!0));for(let s=l-1;s>=0;s-=1)a[s]&&!e&&(t+=a[s].swiperSlideSize,o+=1,t>n&&(e=!0))}else if("current"===e)for(let e=l+1;e<a.length;e+=1)(t?i[e]+r[e]-i[l]<n:i[e]-i[l]<n)&&(o+=1);else for(let e=l-1;e>=0;e-=1)i[l]-i[e]<n&&(o+=1);return o}update(){const e=this;if(!e||e.destroyed)return;const{snapGrid:t,params:s}=e;function a(){const t=e.rtlTranslate?-1*e.translate:e.translate,s=Math.min(Math.max(t,e.maxTranslate()),e.minTranslate());e.setTranslate(s),e.updateActiveIndex(),e.updateSlidesClasses()}let i;s.breakpoints&&e.setBreakpoint(),e.updateSize(),e.updateSlides(),e.updateProgress(),e.updateSlidesClasses(),e.params.freeMode&&e.params.freeMode.enabled?(a(),e.params.autoHeight&&e.updateAutoHeight()):(i=("auto"===e.params.slidesPerView||e.params.slidesPerView>1)&&e.isEnd&&!e.params.centeredSlides?e.slideTo(e.slides.length-1,0,!1,!0):e.slideTo(e.activeIndex,0,!1,!0),i||a()),s.watchOverflow&&t!==e.snapGrid&&e.checkOverflow(),e.emit("update")}changeDirection(e,t=!0){const s=this,a=s.params.direction;return e||(e="horizontal"===a?"vertical":"horizontal"),e===a||"horizontal"!==e&&"vertical"!==e||(s.$el.removeClass(`${s.params.containerModifierClass}${a}`).addClass(`${s.params.containerModifierClass}${e}`),s.emitContainerClasses(),s.params.direction=e,s.slides.each(t=>{"vertical"===e?t.style.width="":t.style.height=""}),s.emit("changeDirection"),t&&s.update()),s}mount(e){const t=this;if(t.mounted)return!0;const s=d(e||t.params.el);if(!(e=s[0]))return!1;e.swiper=t;const i=()=>"."+(t.params.wrapperClass||"").trim().split(" ").join(".");let r=(()=>{if(e&&e.shadowRoot&&e.shadowRoot.querySelector){const t=d(e.shadowRoot.querySelector(i()));return t.children=e=>s.children(e),t}return s.children(i())})();if(0===r.length&&t.params.createElements){const e=a().createElement("div");r=d(e),e.className=t.params.wrapperClass,s.append(e),s.children("."+t.params.slideClass).each(e=>{r.append(e)})}return Object.assign(t,{$el:s,el:e,$wrapperEl:r,wrapperEl:r[0],mounted:!0,rtl:"rtl"===e.dir.toLowerCase()||"rtl"===s.css("direction"),rtlTranslate:"horizontal"===t.params.direction&&("rtl"===e.dir.toLowerCase()||"rtl"===s.css("direction")),wrongRTL:"-webkit-box"===r.css("display")}),!0}init(e){const t=this;return t.initialized||!1===t.mount(e)||(t.emit("beforeInit"),t.params.breakpoints&&t.setBreakpoint(),t.addClasses(),t.params.loop&&t.loopCreate(),t.updateSize(),t.updateSlides(),t.params.watchOverflow&&t.checkOverflow(),t.params.grabCursor&&t.enabled&&t.setGrabCursor(),t.params.preloadImages&&t.preloadImages(),t.params.loop?t.slideTo(t.params.initialSlide+t.loopedSlides,0,t.params.runCallbacksOnInit,!1,!0):t.slideTo(t.params.initialSlide,0,t.params.runCallbacksOnInit,!1,!0),t.attachEvents(),t.initialized=!0,t.emit("init"),t.emit("afterInit")),t}destroy(e=!0,t=!0){const s=this,{params:a,$el:i,$wrapperEl:r,slides:n}=s;return void 0===s.params||s.destroyed||(s.emit("beforeDestroy"),s.initialized=!1,s.detachEvents(),a.loop&&s.loopDestroy(),t&&(s.removeClasses(),i.removeAttr("style"),r.removeAttr("style"),n&&n.length&&n.removeClass([a.slideVisibleClass,a.slideActiveClass,a.slideNextClass,a.slidePrevClass].join(" ")).removeAttr("style").removeAttr("data-swiper-slide-index")),s.emit("destroy"),Object.keys(s.eventsListeners).forEach(e=>{s.off(e)}),!1!==e&&(s.$el[0].swiper=null,function(e){const t=e;Object.keys(t).forEach(e=>{try{t[e]=null}catch(e){}try{delete t[e]}catch(e){}})}(s)),s.destroyed=!0),null}static extendDefaults(e){f(B,e)}static get extendedDefaults(){return B}static get defaults(){return D}static installModule(e){X.prototype.modules||(X.prototype.modules=[]);const t=X.prototype.modules;"function"==typeof e&&t.indexOf(e)<0&&t.push(e)}static use(e){return Array.isArray(e)?(e.forEach(e=>X.installModule(e)),X):(X.installModule(e),X)}}function H(e,t,s,i){const r=a();return e.params.createElements&&Object.keys(i).forEach(a=>{if(!s[a]&&!0===s.auto){const n=r.createElement("div");n.className=i[a],e.$el.append(n),s[a]=n,t[a]=n}}),s}function Y(e=""){return"."+e.trim().replace(/([\.:!\/])/g,"\\$1").replace(/ /g,".")}function j(e){const t=this,{$wrapperEl:s,params:a}=t;if(a.loop&&t.loopDestroy(),"object"==typeof e&&"length"in e)for(let t=0;t<e.length;t+=1)e[t]&&s.append(e[t]);else s.append(e);a.loop&&t.loopCreate(),a.observer||t.update()}function W(e){const t=this,{params:s,$wrapperEl:a,activeIndex:i}=t;s.loop&&t.loopDestroy();let r=i+1;if("object"==typeof e&&"length"in e){for(let t=0;t<e.length;t+=1)e[t]&&a.prepend(e[t]);r=i+e.length}else a.prepend(e);s.loop&&t.loopCreate(),s.observer||t.update(),t.slideTo(r,0,!1)}function R(e,t){const s=this,{$wrapperEl:a,params:i,activeIndex:r}=s;let n=r;i.loop&&(n-=s.loopedSlides,s.loopDestroy(),s.slides=a.children("."+i.slideClass));const l=s.slides.length;if(e<=0)return void s.prependSlide(t);if(e>=l)return void s.appendSlide(t);let o=n>e?n+1:n;const d=[];for(let t=l-1;t>=e;t-=1){const e=s.slides.eq(t);e.remove(),d.unshift(e)}if("object"==typeof t&&"length"in t){for(let e=0;e<t.length;e+=1)t[e]&&a.append(t[e]);o=n>e?n+t.length:n}else a.append(t);for(let e=0;e<d.length;e+=1)a.append(d[e]);i.loop&&s.loopCreate(),i.observer||s.update(),i.loop?s.slideTo(o+s.loopedSlides,0,!1):s.slideTo(o,0,!1)}function q(e){const t=this,{params:s,$wrapperEl:a,activeIndex:i}=t;let r=i;s.loop&&(r-=t.loopedSlides,t.loopDestroy(),t.slides=a.children("."+s.slideClass));let n,l=r;if("object"==typeof e&&"length"in e){for(let s=0;s<e.length;s+=1)n=e[s],t.slides[n]&&t.slides.eq(n).remove(),n<l&&(l-=1);l=Math.max(l,0)}else n=e,t.slides[n]&&t.slides.eq(n).remove(),n<l&&(l-=1),l=Math.max(l,0);s.loop&&t.loopCreate(),s.observer||t.update(),s.loop?t.slideTo(l+t.loopedSlides,0,!1):t.slideTo(l,0,!1)}function V(){const e=this,t=[];for(let s=0;s<e.slides.length;s+=1)t.push(s);e.removeSlide(t)}function F(e,t){return e.transformEl?t.find(e.transformEl).css({"backface-visibility":"hidden","-webkit-backface-visibility":"hidden"}):t}function _({swiper:e,duration:t,transformEl:s,allSlides:a}){const{slides:i,activeIndex:r,$wrapperEl:n}=e;if(e.params.virtualTranslate&&0!==t){let t,l=!1;t=a?s?i.find(s):i:s?i.eq(r).find(s):i.eq(r),t.transitionEnd(()=>{if(l)return;if(!e||e.destroyed)return;l=!0,e.animating=!1;const t=["webkitTransitionEnd","transitionend"];for(let e=0;e<t.length;e+=1)n.trigger(t[e])})}}function U(e,t,s){const a=d(`<div class="swiper-slide-shadow${s?"-"+s:""}"></div>`);return e.transformEl?t.find(e.transformEl).append(a):t.append(a),a}Object.keys(G).forEach(e=>{Object.keys(G[e]).forEach(t=>{X.prototype[t]=G[e][t]})}),X.use([function({swiper:e,on:t,emit:s}){const a=r();let i=null;const n=()=>{e&&!e.destroyed&&e.initialized&&(s("beforeResize"),s("resize"))},l=()=>{e&&!e.destroyed&&e.initialized&&s("orientationchange")};t("init",()=>{e.params.resizeObserver&&void 0!==a.ResizeObserver?e&&!e.destroyed&&e.initialized&&(i=new ResizeObserver(t=>{const{width:s,height:a}=e;let i=s,r=a;t.forEach(({contentBoxSize:t,contentRect:s,target:a})=>{a&&a!==e.el||(i=s?s.width:(t[0]||t).inlineSize,r=s?s.height:(t[0]||t).blockSize)}),i===s&&r===a||n()}),i.observe(e.el)):(a.addEventListener("resize",n),a.addEventListener("orientationchange",l))}),t("destroy",()=>{i&&i.unobserve&&e.el&&(i.unobserve(e.el),i=null),a.removeEventListener("resize",n),a.removeEventListener("orientationchange",l)})},function({swiper:e,extendParams:t,on:s,emit:a}){const i=[],n=r(),l=(e,t={})=>{const s=new(n.MutationObserver||n.WebkitMutationObserver)(e=>{if(1===e.length)return void a("observerUpdate",e[0]);const t=function(){a("observerUpdate",e[0])};n.requestAnimationFrame?n.requestAnimationFrame(t):n.setTimeout(t,0)});s.observe(e,{attributes:void 0===t.attributes||t.attributes,childList:void 0===t.childList||t.childList,characterData:void 0===t.characterData||t.characterData}),i.push(s)};t({observer:!1,observeParents:!1,observeSlideChildren:!1}),s("init",()=>{if(e.params.observer){if(e.params.observeParents){const t=e.$el.parents();for(let e=0;e<t.length;e+=1)l(t[e])}l(e.$el[0],{childList:e.params.observeSlideChildren}),l(e.$wrapperEl[0],{attributes:!1})}}),s("destroy",()=>{i.forEach(e=>{e.disconnect()}),i.splice(0,i.length)})}]);const K=[function({swiper:e,extendParams:t,on:s}){function a(t,s){const a=e.params.virtual;if(a.cache&&e.virtual.cache[s])return e.virtual.cache[s];const i=a.renderSlide?d(a.renderSlide.call(e,t,s)):d(`<div class="${e.params.slideClass}" data-swiper-slide-index="${s}">${t}</div>`);return i.attr("data-swiper-slide-index")||i.attr("data-swiper-slide-index",s),a.cache&&(e.virtual.cache[s]=i),i}function i(t){const{slidesPerView:s,slidesPerGroup:i,centeredSlides:r}=e.params,{addSlidesBefore:n,addSlidesAfter:l}=e.params.virtual,{from:o,to:d,slides:c,slidesGrid:p,offset:u}=e.virtual;e.updateActiveIndex();const h=e.activeIndex||0;let m,f,g;m=e.rtlTranslate?"right":e.isHorizontal()?"left":"top",r?(f=Math.floor(s/2)+i+l,g=Math.floor(s/2)+i+n):(f=s+(i-1)+l,g=i+n);const v=Math.max((h||0)-g,0),w=Math.min((h||0)+f,c.length-1),b=(e.slidesGrid[v]||0)-(e.slidesGrid[0]||0);function x(){e.updateSlides(),e.updateProgress(),e.updateSlidesClasses(),e.lazy&&e.params.lazy.enabled&&e.lazy.load()}if(Object.assign(e.virtual,{from:v,to:w,offset:b,slidesGrid:e.slidesGrid}),o===v&&d===w&&!t)return e.slidesGrid!==p&&b!==u&&e.slides.css(m,b+"px"),void e.updateProgress();if(e.params.virtual.renderExternal)return e.params.virtual.renderExternal.call(e,{offset:b,from:v,to:w,slides:function(){const e=[];for(let t=v;t<=w;t+=1)e.push(c[t]);return e}()}),void(e.params.virtual.renderExternalUpdate&&x());const y=[],E=[];if(t)e.$wrapperEl.find("."+e.params.slideClass).remove();else for(let t=o;t<=d;t+=1)(t<v||t>w)&&e.$wrapperEl.find(`.${e.params.slideClass}[data-swiper-slide-index="${t}"]`).remove();for(let e=0;e<c.length;e+=1)e>=v&&e<=w&&(void 0===d||t?E.push(e):(e>d&&E.push(e),e<o&&y.push(e)));E.forEach(t=>{e.$wrapperEl.append(a(c[t],t))}),y.sort((e,t)=>t-e).forEach(t=>{e.$wrapperEl.prepend(a(c[t],t))}),e.$wrapperEl.children(".swiper-slide").css(m,b+"px"),x()}t({virtual:{enabled:!1,slides:[],cache:!0,renderSlide:null,renderExternal:null,renderExternalUpdate:!0,addSlidesBefore:0,addSlidesAfter:0}}),e.virtual={cache:{},from:void 0,to:void 0,slides:[],offset:0,slidesGrid:[]},s("beforeInit",()=>{e.params.virtual.enabled&&(e.virtual.slides=e.params.virtual.slides,e.classNames.push(e.params.containerModifierClass+"virtual"),e.params.watchSlidesProgress=!0,e.originalParams.watchSlidesProgress=!0,e.params.initialSlide||i())}),s("setTranslate",()=>{e.params.virtual.enabled&&i()}),s("init update resize",()=>{e.params.virtual.enabled&&e.params.cssMode&&g(e.wrapperEl,"--swiper-virtual-size",e.virtualSize+"px")}),Object.assign(e.virtual,{appendSlide:function(t){if("object"==typeof t&&"length"in t)for(let s=0;s<t.length;s+=1)t[s]&&e.virtual.slides.push(t[s]);else e.virtual.slides.push(t);i(!0)},prependSlide:function(t){const s=e.activeIndex;let a=s+1,r=1;if(Array.isArray(t)){for(let s=0;s<t.length;s+=1)t[s]&&e.virtual.slides.unshift(t[s]);a=s+t.length,r=t.length}else e.virtual.slides.unshift(t);if(e.params.virtual.cache){const t=e.virtual.cache,s={};Object.keys(t).forEach(e=>{const a=t[e],i=a.attr("data-swiper-slide-index");i&&a.attr("data-swiper-slide-index",parseInt(i,10)+1),s[parseInt(e,10)+r]=a}),e.virtual.cache=s}i(!0),e.slideTo(a,0)},removeSlide:function(t){if(null==t)return;let s=e.activeIndex;if(Array.isArray(t))for(let a=t.length-1;a>=0;a-=1)e.virtual.slides.splice(t[a],1),e.params.virtual.cache&&delete e.virtual.cache[t[a]],t[a]<s&&(s-=1),s=Math.max(s,0);else e.virtual.slides.splice(t,1),e.params.virtual.cache&&delete e.virtual.cache[t],t<s&&(s-=1),s=Math.max(s,0);i(!0),e.slideTo(s,0)},removeAllSlides:function(){e.virtual.slides=[],e.params.virtual.cache&&(e.virtual.cache={}),i(!0),e.slideTo(0,0)},update:i})},function({swiper:e,extendParams:t,on:s,emit:i}){const n=a(),l=r();function o(t){if(!e.enabled)return;const{rtlTranslate:s}=e;let a=t;a.originalEvent&&(a=a.originalEvent);const r=a.keyCode||a.charCode,o=e.params.keyboard.pageUpDown,d=o&&33===r,c=o&&34===r,p=37===r,u=39===r,h=38===r,m=40===r;if(!e.allowSlideNext&&(e.isHorizontal()&&u||e.isVertical()&&m||c))return!1;if(!e.allowSlidePrev&&(e.isHorizontal()&&p||e.isVertical()&&h||d))return!1;if(!(a.shiftKey||a.altKey||a.ctrlKey||a.metaKey||n.activeElement&&n.activeElement.nodeName&&("input"===n.activeElement.nodeName.toLowerCase()||"textarea"===n.activeElement.nodeName.toLowerCase()))){if(e.params.keyboard.onlyInViewport&&(d||c||p||u||h||m)){let t=!1;if(e.$el.parents("."+e.params.slideClass).length>0&&0===e.$el.parents("."+e.params.slideActiveClass).length)return;const a=e.$el,i=a[0].clientWidth,r=a[0].clientHeight,n=l.innerWidth,o=l.innerHeight,d=e.$el.offset();s&&(d.left-=e.$el[0].scrollLeft);const c=[[d.left,d.top],[d.left+i,d.top],[d.left,d.top+r],[d.left+i,d.top+r]];for(let e=0;e<c.length;e+=1){const s=c[e];if(s[0]>=0&&s[0]<=n&&s[1]>=0&&s[1]<=o){if(0===s[0]&&0===s[1])continue;t=!0}}if(!t)return}e.isHorizontal()?((d||c||p||u)&&(a.preventDefault?a.preventDefault():a.returnValue=!1),((c||u)&&!s||(d||p)&&s)&&e.slideNext(),((d||p)&&!s||(c||u)&&s)&&e.slidePrev()):((d||c||h||m)&&(a.preventDefault?a.preventDefault():a.returnValue=!1),(c||m)&&e.slideNext(),(d||h)&&e.slidePrev()),i("keyPress",r)}}function c(){e.keyboard.enabled||(d(n).on("keydown",o),e.keyboard.enabled=!0)}function p(){e.keyboard.enabled&&(d(n).off("keydown",o),e.keyboard.enabled=!1)}e.keyboard={enabled:!0},t({keyboard:{enabled:!1,onlyInViewport:!0,pageUpDown:!0}}),s("init",()=>{e.params.keyboard.enabled&&c()}),s("destroy",()=>{e.keyboard.enabled&&p()}),Object.assign(e.keyboard,{enable:c,disable:p})},function({swiper:e,extendParams:t,on:s,emit:a}){const i=r();let n;t({mousewheel:{enabled:!1,releaseOnEdges:!1,invert:!1,forceToAxis:!1,sensitivity:1,eventsTarget:"container",thresholdDelta:null,thresholdTime:null}}),e.mousewheel={enabled:!1};let l,o=u();const c=[];function h(){e.enabled&&(e.mouseEntered=!0)}function m(){e.enabled&&(e.mouseEntered=!1)}function f(t){return!(e.params.mousewheel.thresholdDelta&&t.delta<e.params.mousewheel.thresholdDelta||e.params.mousewheel.thresholdTime&&u()-o<e.params.mousewheel.thresholdTime||!(t.delta>=6&&u()-o<60)&&(t.direction<0?e.isEnd&&!e.params.loop||e.animating||(e.slideNext(),a("scroll",t.raw)):e.isBeginning&&!e.params.loop||e.animating||(e.slidePrev(),a("scroll",t.raw)),o=(new i.Date).getTime(),1))}function g(t){let s=t,i=!0;if(!e.enabled)return;const r=e.params.mousewheel;e.params.cssMode&&s.preventDefault();let o=e.$el;if("container"!==e.params.mousewheel.eventsTarget&&(o=d(e.params.mousewheel.eventsTarget)),!e.mouseEntered&&!o[0].contains(s.target)&&!r.releaseOnEdges)return!0;s.originalEvent&&(s=s.originalEvent);let h=0;const m=e.rtlTranslate?-1:1,g=function(e){let t=0,s=0,a=0,i=0;return"detail"in e&&(s=e.detail),"wheelDelta"in e&&(s=-e.wheelDelta/120),"wheelDeltaY"in e&&(s=-e.wheelDeltaY/120),"wheelDeltaX"in e&&(t=-e.wheelDeltaX/120),"axis"in e&&e.axis===e.HORIZONTAL_AXIS&&(t=s,s=0),a=10*t,i=10*s,"deltaY"in e&&(i=e.deltaY),"deltaX"in e&&(a=e.deltaX),e.shiftKey&&!a&&(a=i,i=0),(a||i)&&e.deltaMode&&(1===e.deltaMode?(a*=40,i*=40):(a*=800,i*=800)),a&&!t&&(t=a<1?-1:1),i&&!s&&(s=i<1?-1:1),{spinX:t,spinY:s,pixelX:a,pixelY:i}}(s);if(r.forceToAxis)if(e.isHorizontal()){if(!(Math.abs(g.pixelX)>Math.abs(g.pixelY)))return!0;h=-g.pixelX*m}else{if(!(Math.abs(g.pixelY)>Math.abs(g.pixelX)))return!0;h=-g.pixelY}else h=Math.abs(g.pixelX)>Math.abs(g.pixelY)?-g.pixelX*m:-g.pixelY;if(0===h)return!0;r.invert&&(h=-h);let v=e.getTranslate()+h*r.sensitivity;if(v>=e.minTranslate()&&(v=e.minTranslate()),v<=e.maxTranslate()&&(v=e.maxTranslate()),i=!!e.params.loop||!(v===e.minTranslate()||v===e.maxTranslate()),i&&e.params.nested&&s.stopPropagation(),e.params.freeMode&&e.params.freeMode.enabled){const t={time:u(),delta:Math.abs(h),direction:Math.sign(h)},i=l&&t.time<l.time+500&&t.delta<=l.delta&&t.direction===l.direction;if(!i){l=void 0,e.params.loop&&e.loopFix();let o=e.getTranslate()+h*r.sensitivity;const d=e.isBeginning,u=e.isEnd;if(o>=e.minTranslate()&&(o=e.minTranslate()),o<=e.maxTranslate()&&(o=e.maxTranslate()),e.setTransition(0),e.setTranslate(o),e.updateProgress(),e.updateActiveIndex(),e.updateSlidesClasses(),(!d&&e.isBeginning||!u&&e.isEnd)&&e.updateSlidesClasses(),e.params.freeMode.sticky){clearTimeout(n),n=void 0,c.length>=15&&c.shift();const s=c.length?c[c.length-1]:void 0,a=c[0];if(c.push(t),s&&(t.delta>s.delta||t.direction!==s.direction))c.splice(0);else if(c.length>=15&&t.time-a.time<500&&a.delta-t.delta>=1&&t.delta<=6){const s=h>0?.8:.2;l=t,c.splice(0),n=p(()=>{e.slideToClosest(e.params.speed,!0,void 0,s)},0)}n||(n=p(()=>{l=t,c.splice(0),e.slideToClosest(e.params.speed,!0,void 0,.5)},500))}if(i||a("scroll",s),e.params.autoplay&&e.params.autoplayDisableOnInteraction&&e.autoplay.stop(),o===e.minTranslate()||o===e.maxTranslate())return!0}}else{const s={time:u(),delta:Math.abs(h),direction:Math.sign(h),raw:t};c.length>=2&&c.shift();const a=c.length?c[c.length-1]:void 0;if(c.push(s),a?(s.direction!==a.direction||s.delta>a.delta||s.time>a.time+150)&&f(s):f(s),function(t){const s=e.params.mousewheel;if(t.direction<0){if(e.isEnd&&!e.params.loop&&s.releaseOnEdges)return!0}else if(e.isBeginning&&!e.params.loop&&s.releaseOnEdges)return!0;return!1}(s))return!0}return s.preventDefault?s.preventDefault():s.returnValue=!1,!1}function v(t){let s=e.$el;"container"!==e.params.mousewheel.eventsTarget&&(s=d(e.params.mousewheel.eventsTarget)),s[t]("mouseenter",h),s[t]("mouseleave",m),s[t]("wheel",g)}function w(){return e.params.cssMode?(e.wrapperEl.removeEventListener("wheel",g),!0):!e.mousewheel.enabled&&(v("on"),e.mousewheel.enabled=!0,!0)}function b(){return e.params.cssMode?(e.wrapperEl.addEventListener(event,g),!0):!!e.mousewheel.enabled&&(v("off"),e.mousewheel.enabled=!1,!0)}s("init",()=>{!e.params.mousewheel.enabled&&e.params.cssMode&&b(),e.params.mousewheel.enabled&&w()}),s("destroy",()=>{e.params.cssMode&&w(),e.mousewheel.enabled&&b()}),Object.assign(e.mousewheel,{enable:w,disable:b})},function({swiper:e,extendParams:t,on:s,emit:a}){function i(t){let s;return t&&(s=d(t),e.params.uniqueNavElements&&"string"==typeof t&&s.length>1&&1===e.$el.find(t).length&&(s=e.$el.find(t))),s}function r(t,s){const a=e.params.navigation;t&&t.length>0&&(t[s?"addClass":"removeClass"](a.disabledClass),t[0]&&"BUTTON"===t[0].tagName&&(t[0].disabled=s),e.params.watchOverflow&&e.enabled&&t[e.isLocked?"addClass":"removeClass"](a.lockClass))}function n(){if(e.params.loop)return;const{$nextEl:t,$prevEl:s}=e.navigation;r(s,e.isBeginning),r(t,e.isEnd)}function l(t){t.preventDefault(),e.isBeginning&&!e.params.loop||e.slidePrev()}function o(t){t.preventDefault(),e.isEnd&&!e.params.loop||e.slideNext()}function c(){const t=e.params.navigation;if(e.params.navigation=H(e,e.originalParams.navigation,e.params.navigation,{nextEl:"swiper-button-next",prevEl:"swiper-button-prev"}),!t.nextEl&&!t.prevEl)return;const s=i(t.nextEl),a=i(t.prevEl);s&&s.length>0&&s.on("click",o),a&&a.length>0&&a.on("click",l),Object.assign(e.navigation,{$nextEl:s,nextEl:s&&s[0],$prevEl:a,prevEl:a&&a[0]}),e.enabled||(s&&s.addClass(t.lockClass),a&&a.addClass(t.lockClass))}function p(){const{$nextEl:t,$prevEl:s}=e.navigation;t&&t.length&&(t.off("click",o),t.removeClass(e.params.navigation.disabledClass)),s&&s.length&&(s.off("click",l),s.removeClass(e.params.navigation.disabledClass))}t({navigation:{nextEl:null,prevEl:null,hideOnClick:!1,disabledClass:"swiper-button-disabled",hiddenClass:"swiper-button-hidden",lockClass:"swiper-button-lock"}}),e.navigation={nextEl:null,$nextEl:null,prevEl:null,$prevEl:null},s("init",()=>{c(),n()}),s("toEdge fromEdge lock unlock",()=>{n()}),s("destroy",()=>{p()}),s("enable disable",()=>{const{$nextEl:t,$prevEl:s}=e.navigation;t&&t[e.enabled?"removeClass":"addClass"](e.params.navigation.lockClass),s&&s[e.enabled?"removeClass":"addClass"](e.params.navigation.lockClass)}),s("click",(t,s)=>{const{$nextEl:i,$prevEl:r}=e.navigation,n=s.target;if(e.params.navigation.hideOnClick&&!d(n).is(r)&&!d(n).is(i)){if(e.pagination&&e.params.pagination&&e.params.pagination.clickable&&(e.pagination.el===n||e.pagination.el.contains(n)))return;let t;i?t=i.hasClass(e.params.navigation.hiddenClass):r&&(t=r.hasClass(e.params.navigation.hiddenClass)),a(!0===t?"navigationShow":"navigationHide"),i&&i.toggleClass(e.params.navigation.hiddenClass),r&&r.toggleClass(e.params.navigation.hiddenClass)}}),Object.assign(e.navigation,{update:n,init:c,destroy:p})},function({swiper:e,extendParams:t,on:s,emit:a}){const i="swiper-pagination";let r;t({pagination:{el:null,bulletElement:"span",clickable:!1,hideOnClick:!1,renderBullet:null,renderProgressbar:null,renderFraction:null,renderCustom:null,progressbarOpposite:!1,type:"bullets",dynamicBullets:!1,dynamicMainBullets:1,formatFractionCurrent:e=>e,formatFractionTotal:e=>e,bulletClass:i+"-bullet",bulletActiveClass:i+"-bullet-active",modifierClass:i+"-",currentClass:i+"-current",totalClass:i+"-total",hiddenClass:i+"-hidden",progressbarFillClass:i+"-progressbar-fill",progressbarOppositeClass:i+"-progressbar-opposite",clickableClass:i+"-clickable",lockClass:i+"-lock",horizontalClass:i+"-horizontal",verticalClass:i+"-vertical"}}),e.pagination={el:null,$el:null,bullets:[]};let n=0;function l(){return!e.params.pagination.el||!e.pagination.el||!e.pagination.$el||0===e.pagination.$el.length}function o(t,s){const{bulletActiveClass:a}=e.params.pagination;t[s]().addClass(`${a}-${s}`)[s]().addClass(`${a}-${s}-${s}`)}function c(){const t=e.rtl,s=e.params.pagination;if(l())return;const i=e.virtual&&e.params.virtual.enabled?e.virtual.slides.length:e.slides.length,c=e.pagination.$el;let p;const u=e.params.loop?Math.ceil((i-2*e.loopedSlides)/e.params.slidesPerGroup):e.snapGrid.length;if(e.params.loop?(p=Math.ceil((e.activeIndex-e.loopedSlides)/e.params.slidesPerGroup),p>i-1-2*e.loopedSlides&&(p-=i-2*e.loopedSlides),p>u-1&&(p-=u),p<0&&"bullets"!==e.params.paginationType&&(p=u+p)):p=void 0!==e.snapIndex?e.snapIndex:e.activeIndex||0,"bullets"===s.type&&e.pagination.bullets&&e.pagination.bullets.length>0){const a=e.pagination.bullets;let i,l,u;if(s.dynamicBullets&&(r=a.eq(0)[e.isHorizontal()?"outerWidth":"outerHeight"](!0),c.css(e.isHorizontal()?"width":"height",r*(s.dynamicMainBullets+4)+"px"),s.dynamicMainBullets>1&&void 0!==e.previousIndex&&(n+=p-e.previousIndex,n>s.dynamicMainBullets-1?n=s.dynamicMainBullets-1:n<0&&(n=0)),i=p-n,l=i+(Math.min(a.length,s.dynamicMainBullets)-1),u=(l+i)/2),a.removeClass(["","-next","-next-next","-prev","-prev-prev","-main"].map(e=>`${s.bulletActiveClass}${e}`).join(" ")),c.length>1)a.each(e=>{const t=d(e),a=t.index();a===p&&t.addClass(s.bulletActiveClass),s.dynamicBullets&&(a>=i&&a<=l&&t.addClass(s.bulletActiveClass+"-main"),a===i&&o(t,"prev"),a===l&&o(t,"next"))});else{const t=a.eq(p),r=t.index();if(t.addClass(s.bulletActiveClass),s.dynamicBullets){const t=a.eq(i),n=a.eq(l);for(let e=i;e<=l;e+=1)a.eq(e).addClass(s.bulletActiveClass+"-main");if(e.params.loop)if(r>=a.length-s.dynamicMainBullets){for(let e=s.dynamicMainBullets;e>=0;e-=1)a.eq(a.length-e).addClass(s.bulletActiveClass+"-main");a.eq(a.length-s.dynamicMainBullets-1).addClass(s.bulletActiveClass+"-prev")}else o(t,"prev"),o(n,"next");else o(t,"prev"),o(n,"next")}}if(s.dynamicBullets){const i=Math.min(a.length,s.dynamicMainBullets+4),n=(r*i-r)/2-u*r,l=t?"right":"left";a.css(e.isHorizontal()?l:"top",n+"px")}}if("fraction"===s.type&&(c.find(Y(s.currentClass)).text(s.formatFractionCurrent(p+1)),c.find(Y(s.totalClass)).text(s.formatFractionTotal(u))),"progressbar"===s.type){let t;t=s.progressbarOpposite?e.isHorizontal()?"vertical":"horizontal":e.isHorizontal()?"horizontal":"vertical";const a=(p+1)/u;let i=1,r=1;"horizontal"===t?i=a:r=a,c.find(Y(s.progressbarFillClass)).transform(`translate3d(0,0,0) scaleX(${i}) scaleY(${r})`).transition(e.params.speed)}"custom"===s.type&&s.renderCustom?(c.html(s.renderCustom(e,p+1,u)),a("paginationRender",c[0])):a("paginationUpdate",c[0]),e.params.watchOverflow&&e.enabled&&c[e.isLocked?"addClass":"removeClass"](s.lockClass)}function p(){const t=e.params.pagination;if(l())return;const s=e.virtual&&e.params.virtual.enabled?e.virtual.slides.length:e.slides.length,i=e.pagination.$el;let r="";if("bullets"===t.type){let a=e.params.loop?Math.ceil((s-2*e.loopedSlides)/e.params.slidesPerGroup):e.snapGrid.length;e.params.freeMode&&e.params.freeMode.enabled&&!e.params.loop&&a>s&&(a=s);for(let s=0;s<a;s+=1)t.renderBullet?r+=t.renderBullet.call(e,s,t.bulletClass):r+=`<${t.bulletElement} class="${t.bulletClass}"></${t.bulletElement}>`;i.html(r),e.pagination.bullets=i.find(Y(t.bulletClass))}"fraction"===t.type&&(r=t.renderFraction?t.renderFraction.call(e,t.currentClass,t.totalClass):`<span class="${t.currentClass}"></span> / <span class="${t.totalClass}"></span>`,i.html(r)),"progressbar"===t.type&&(r=t.renderProgressbar?t.renderProgressbar.call(e,t.progressbarFillClass):`<span class="${t.progressbarFillClass}"></span>`,i.html(r)),"custom"!==t.type&&a("paginationRender",e.pagination.$el[0])}function u(){e.params.pagination=H(e,e.originalParams.pagination,e.params.pagination,{el:"swiper-pagination"});const t=e.params.pagination;if(!t.el)return;let s=d(t.el);0!==s.length&&(e.params.uniqueNavElements&&"string"==typeof t.el&&s.length>1&&(s=e.$el.find(t.el)),"bullets"===t.type&&t.clickable&&s.addClass(t.clickableClass),s.addClass(t.modifierClass+t.type),s.addClass(t.modifierClass+e.params.direction),"bullets"===t.type&&t.dynamicBullets&&(s.addClass(`${t.modifierClass}${t.type}-dynamic`),n=0,t.dynamicMainBullets<1&&(t.dynamicMainBullets=1)),"progressbar"===t.type&&t.progressbarOpposite&&s.addClass(t.progressbarOppositeClass),t.clickable&&s.on("click",Y(t.bulletClass),(function(t){t.preventDefault();let s=d(this).index()*e.params.slidesPerGroup;e.params.loop&&(s+=e.loopedSlides),e.slideTo(s)})),Object.assign(e.pagination,{$el:s,el:s[0]}),e.enabled||s.addClass(t.lockClass))}function h(){const t=e.params.pagination;if(l())return;const s=e.pagination.$el;s.removeClass(t.hiddenClass),s.removeClass(t.modifierClass+t.type),s.removeClass(t.modifierClass+e.params.direction),e.pagination.bullets&&e.pagination.bullets.removeClass(t.bulletActiveClass),t.clickable&&s.off("click",Y(t.bulletClass))}s("init",()=>{u(),p(),c()}),s("activeIndexChange",()=>{(e.params.loop||void 0===e.snapIndex)&&c()}),s("snapIndexChange",()=>{e.params.loop||c()}),s("slidesLengthChange",()=>{e.params.loop&&(p(),c())}),s("snapGridLengthChange",()=>{e.params.loop||(p(),c())}),s("destroy",()=>{h()}),s("enable disable",()=>{const{$el:t}=e.pagination;t&&t[e.enabled?"removeClass":"addClass"](e.params.pagination.lockClass)}),s("lock unlock",()=>{c()}),s("click",(t,s)=>{const i=s.target,{$el:r}=e.pagination;if(e.params.pagination.el&&e.params.pagination.hideOnClick&&r.length>0&&!d(i).hasClass(e.params.pagination.bulletClass)){if(e.navigation&&(e.navigation.nextEl&&i===e.navigation.nextEl||e.navigation.prevEl&&i===e.navigation.prevEl))return;const t=r.hasClass(e.params.pagination.hiddenClass);a(!0===t?"paginationShow":"paginationHide"),r.toggleClass(e.params.pagination.hiddenClass)}}),Object.assign(e.pagination,{render:p,update:c,init:u,destroy:h})},function({swiper:e,extendParams:t,on:s,emit:i}){const r=a();let n,l,o,c,u=!1,h=null,m=null;function f(){if(!e.params.scrollbar.el||!e.scrollbar.el)return;const{scrollbar:t,rtlTranslate:s,progress:a}=e,{$dragEl:i,$el:r}=t,n=e.params.scrollbar;let d=l,c=(o-l)*a;s?(c=-c,c>0?(d=l-c,c=0):-c+l>o&&(d=o+c)):c<0?(d=l+c,c=0):c+l>o&&(d=o-c),e.isHorizontal()?(i.transform(`translate3d(${c}px, 0, 0)`),i[0].style.width=d+"px"):(i.transform(`translate3d(0px, ${c}px, 0)`),i[0].style.height=d+"px"),n.hide&&(clearTimeout(h),r[0].style.opacity=1,h=setTimeout(()=>{r[0].style.opacity=0,r.transition(400)},1e3))}function g(){if(!e.params.scrollbar.el||!e.scrollbar.el)return;const{scrollbar:t}=e,{$dragEl:s,$el:a}=t;s[0].style.width="",s[0].style.height="",o=e.isHorizontal()?a[0].offsetWidth:a[0].offsetHeight,c=e.size/(e.virtualSize+e.params.slidesOffsetBefore-(e.params.centeredSlides?e.snapGrid[0]:0)),l="auto"===e.params.scrollbar.dragSize?o*c:parseInt(e.params.scrollbar.dragSize,10),e.isHorizontal()?s[0].style.width=l+"px":s[0].style.height=l+"px",a[0].style.display=c>=1?"none":"",e.params.scrollbar.hide&&(a[0].style.opacity=0),e.params.watchOverflow&&e.enabled&&t.$el[e.isLocked?"addClass":"removeClass"](e.params.scrollbar.lockClass)}function v(t){return e.isHorizontal()?"touchstart"===t.type||"touchmove"===t.type?t.targetTouches[0].clientX:t.clientX:"touchstart"===t.type||"touchmove"===t.type?t.targetTouches[0].clientY:t.clientY}function w(t){const{scrollbar:s,rtlTranslate:a}=e,{$el:i}=s;let r;r=(v(t)-i.offset()[e.isHorizontal()?"left":"top"]-(null!==n?n:l/2))/(o-l),r=Math.max(Math.min(r,1),0),a&&(r=1-r);const d=e.minTranslate()+(e.maxTranslate()-e.minTranslate())*r;e.updateProgress(d),e.setTranslate(d),e.updateActiveIndex(),e.updateSlidesClasses()}function b(t){const s=e.params.scrollbar,{scrollbar:a,$wrapperEl:r}=e,{$el:l,$dragEl:o}=a;u=!0,n=t.target===o[0]||t.target===o?v(t)-t.target.getBoundingClientRect()[e.isHorizontal()?"left":"top"]:null,t.preventDefault(),t.stopPropagation(),r.transition(100),o.transition(100),w(t),clearTimeout(m),l.transition(0),s.hide&&l.css("opacity",1),e.params.cssMode&&e.$wrapperEl.css("scroll-snap-type","none"),i("scrollbarDragStart",t)}function x(t){const{scrollbar:s,$wrapperEl:a}=e,{$el:r,$dragEl:n}=s;u&&(t.preventDefault?t.preventDefault():t.returnValue=!1,w(t),a.transition(0),r.transition(0),n.transition(0),i("scrollbarDragMove",t))}function y(t){const s=e.params.scrollbar,{scrollbar:a,$wrapperEl:r}=e,{$el:n}=a;u&&(u=!1,e.params.cssMode&&(e.$wrapperEl.css("scroll-snap-type",""),r.transition("")),s.hide&&(clearTimeout(m),m=p(()=>{n.css("opacity",0),n.transition(400)},1e3)),i("scrollbarDragEnd",t),s.snapOnRelease&&e.slideToClosest())}function E(t){const{scrollbar:s,touchEventsTouch:a,touchEventsDesktop:i,params:n,support:l}=e,o=s.$el[0],d=!(!l.passiveListener||!n.passiveListeners)&&{passive:!1,capture:!1},c=!(!l.passiveListener||!n.passiveListeners)&&{passive:!0,capture:!1};if(!o)return;const p="on"===t?"addEventListener":"removeEventListener";l.touch?(o[p](a.start,b,d),o[p](a.move,x,d),o[p](a.end,y,c)):(o[p](i.start,b,d),r[p](i.move,x,d),r[p](i.end,y,c))}function T(){const{scrollbar:t,$el:s}=e;e.params.scrollbar=H(e,e.originalParams.scrollbar,e.params.scrollbar,{el:"swiper-scrollbar"});const a=e.params.scrollbar;if(!a.el)return;let i=d(a.el);e.params.uniqueNavElements&&"string"==typeof a.el&&i.length>1&&1===s.find(a.el).length&&(i=s.find(a.el));let r=i.find("."+e.params.scrollbar.dragClass);0===r.length&&(r=d(`<div class="${e.params.scrollbar.dragClass}"></div>`),i.append(r)),Object.assign(t,{$el:i,el:i[0],$dragEl:r,dragEl:r[0]}),a.draggable&&e.params.scrollbar.el&&E("on"),i&&i[e.enabled?"removeClass":"addClass"](e.params.scrollbar.lockClass)}function C(){e.params.scrollbar.el&&E("off")}t({scrollbar:{el:null,dragSize:"auto",hide:!1,draggable:!1,snapOnRelease:!0,lockClass:"swiper-scrollbar-lock",dragClass:"swiper-scrollbar-drag"}}),e.scrollbar={el:null,dragEl:null,$el:null,$dragEl:null},s("init",()=>{T(),g(),f()}),s("update resize observerUpdate lock unlock",()=>{g()}),s("setTranslate",()=>{f()}),s("setTransition",(t,s)=>{!function(t){e.params.scrollbar.el&&e.scrollbar.el&&e.scrollbar.$dragEl.transition(t)}(s)}),s("enable disable",()=>{const{$el:t}=e.scrollbar;t&&t[e.enabled?"removeClass":"addClass"](e.params.scrollbar.lockClass)}),s("destroy",()=>{C()}),Object.assign(e.scrollbar,{updateSize:g,setTranslate:f,init:T,destroy:C})},function({swiper:e,extendParams:t,on:s}){t({parallax:{enabled:!1}});const a=(t,s)=>{const{rtl:a}=e,i=d(t),r=a?-1:1,n=i.attr("data-swiper-parallax")||"0";let l=i.attr("data-swiper-parallax-x"),o=i.attr("data-swiper-parallax-y");const c=i.attr("data-swiper-parallax-scale"),p=i.attr("data-swiper-parallax-opacity");if(l||o?(l=l||"0",o=o||"0"):e.isHorizontal()?(l=n,o="0"):(o=n,l="0"),l=l.indexOf("%")>=0?parseInt(l,10)*s*r+"%":l*s*r+"px",o=o.indexOf("%")>=0?parseInt(o,10)*s+"%":o*s+"px",null!=p){const e=p-(p-1)*(1-Math.abs(s));i[0].style.opacity=e}if(null==c)i.transform(`translate3d(${l}, ${o}, 0px)`);else{const e=c-(c-1)*(1-Math.abs(s));i.transform(`translate3d(${l}, ${o}, 0px) scale(${e})`)}},i=()=>{const{$el:t,slides:s,progress:i,snapGrid:r}=e;t.children("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]").each(e=>{a(e,i)}),s.each((t,s)=>{let n=t.progress;e.params.slidesPerGroup>1&&"auto"!==e.params.slidesPerView&&(n+=Math.ceil(s/2)-i*(r.length-1)),n=Math.min(Math.max(n,-1),1),d(t).find("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]").each(e=>{a(e,n)})})};s("beforeInit",()=>{e.params.parallax.enabled&&(e.params.watchSlidesProgress=!0,e.originalParams.watchSlidesProgress=!0)}),s("init",()=>{e.params.parallax.enabled&&i()}),s("setTranslate",()=>{e.params.parallax.enabled&&i()}),s("setTransition",(t,s)=>{e.params.parallax.enabled&&((t=e.params.speed)=>{const{$el:s}=e;s.find("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]").each(e=>{const s=d(e);let a=parseInt(s.attr("data-swiper-parallax-duration"),10)||t;0===t&&(a=0),s.transition(a)})})(s)})},function({swiper:e,extendParams:t,on:s,emit:a}){const i=r();t({zoom:{enabled:!1,maxRatio:3,minRatio:1,toggle:!0,containerClass:"swiper-zoom-container",zoomedSlideClass:"swiper-slide-zoomed"}}),e.zoom={enabled:!1};let n,l,o,c=1,p=!1;const u={$slideEl:void 0,slideWidth:void 0,slideHeight:void 0,$imageEl:void 0,$imageWrapEl:void 0,maxRatio:3},m={isTouched:void 0,isMoved:void 0,currentX:void 0,currentY:void 0,minX:void 0,minY:void 0,maxX:void 0,maxY:void 0,width:void 0,height:void 0,startX:void 0,startY:void 0,touchesStart:{},touchesCurrent:{}},f={x:void 0,y:void 0,prevPositionX:void 0,prevPositionY:void 0,prevTime:void 0};let g=1;function v(e){if(e.targetTouches.length<2)return 1;const t=e.targetTouches[0].pageX,s=e.targetTouches[0].pageY,a=e.targetTouches[1].pageX,i=e.targetTouches[1].pageY;return Math.sqrt((a-t)**2+(i-s)**2)}function w(t){const s=e.support,a=e.params.zoom;if(l=!1,o=!1,!s.gestures){if("touchstart"!==t.type||"touchstart"===t.type&&t.targetTouches.length<2)return;l=!0,u.scaleStart=v(t)}u.$slideEl&&u.$slideEl.length||(u.$slideEl=d(t.target).closest("."+e.params.slideClass),0===u.$slideEl.length&&(u.$slideEl=e.slides.eq(e.activeIndex)),u.$imageEl=u.$slideEl.find("img, svg, canvas, picture, .swiper-zoom-target"),u.$imageWrapEl=u.$imageEl.parent("."+a.containerClass),u.maxRatio=u.$imageWrapEl.attr("data-swiper-zoom")||a.maxRatio,0!==u.$imageWrapEl.length)?(u.$imageEl&&u.$imageEl.transition(0),p=!0):u.$imageEl=void 0}function b(t){const s=e.support,a=e.params.zoom,i=e.zoom;if(!s.gestures){if("touchmove"!==t.type||"touchmove"===t.type&&t.targetTouches.length<2)return;o=!0,u.scaleMove=v(t)}u.$imageEl&&0!==u.$imageEl.length?(s.gestures?i.scale=t.scale*c:i.scale=u.scaleMove/u.scaleStart*c,i.scale>u.maxRatio&&(i.scale=u.maxRatio-1+(i.scale-u.maxRatio+1)**.5),i.scale<a.minRatio&&(i.scale=a.minRatio+1-(a.minRatio-i.scale+1)**.5),u.$imageEl.transform(`translate3d(0,0,0) scale(${i.scale})`)):"gesturechange"===t.type&&w(t)}function x(t){const s=e.device,a=e.support,i=e.params.zoom,r=e.zoom;if(!a.gestures){if(!l||!o)return;if("touchend"!==t.type||"touchend"===t.type&&t.changedTouches.length<2&&!s.android)return;l=!1,o=!1}u.$imageEl&&0!==u.$imageEl.length&&(r.scale=Math.max(Math.min(r.scale,u.maxRatio),i.minRatio),u.$imageEl.transition(e.params.speed).transform(`translate3d(0,0,0) scale(${r.scale})`),c=r.scale,p=!1,1===r.scale&&(u.$slideEl=void 0))}function y(t){const s=e.zoom;if(!u.$imageEl||0===u.$imageEl.length)return;if(e.allowClick=!1,!m.isTouched||!u.$slideEl)return;m.isMoved||(m.width=u.$imageEl[0].offsetWidth,m.height=u.$imageEl[0].offsetHeight,m.startX=h(u.$imageWrapEl[0],"x")||0,m.startY=h(u.$imageWrapEl[0],"y")||0,u.slideWidth=u.$slideEl[0].offsetWidth,u.slideHeight=u.$slideEl[0].offsetHeight,u.$imageWrapEl.transition(0));const a=m.width*s.scale,i=m.height*s.scale;if(!(a<u.slideWidth&&i<u.slideHeight)){if(m.minX=Math.min(u.slideWidth/2-a/2,0),m.maxX=-m.minX,m.minY=Math.min(u.slideHeight/2-i/2,0),m.maxY=-m.minY,m.touchesCurrent.x="touchmove"===t.type?t.targetTouches[0].pageX:t.pageX,m.touchesCurrent.y="touchmove"===t.type?t.targetTouches[0].pageY:t.pageY,!m.isMoved&&!p){if(e.isHorizontal()&&(Math.floor(m.minX)===Math.floor(m.startX)&&m.touchesCurrent.x<m.touchesStart.x||Math.floor(m.maxX)===Math.floor(m.startX)&&m.touchesCurrent.x>m.touchesStart.x))return void(m.isTouched=!1);if(!e.isHorizontal()&&(Math.floor(m.minY)===Math.floor(m.startY)&&m.touchesCurrent.y<m.touchesStart.y||Math.floor(m.maxY)===Math.floor(m.startY)&&m.touchesCurrent.y>m.touchesStart.y))return void(m.isTouched=!1)}t.cancelable&&t.preventDefault(),t.stopPropagation(),m.isMoved=!0,m.currentX=m.touchesCurrent.x-m.touchesStart.x+m.startX,m.currentY=m.touchesCurrent.y-m.touchesStart.y+m.startY,m.currentX<m.minX&&(m.currentX=m.minX+1-(m.minX-m.currentX+1)**.8),m.currentX>m.maxX&&(m.currentX=m.maxX-1+(m.currentX-m.maxX+1)**.8),m.currentY<m.minY&&(m.currentY=m.minY+1-(m.minY-m.currentY+1)**.8),m.currentY>m.maxY&&(m.currentY=m.maxY-1+(m.currentY-m.maxY+1)**.8),f.prevPositionX||(f.prevPositionX=m.touchesCurrent.x),f.prevPositionY||(f.prevPositionY=m.touchesCurrent.y),f.prevTime||(f.prevTime=Date.now()),f.x=(m.touchesCurrent.x-f.prevPositionX)/(Date.now()-f.prevTime)/2,f.y=(m.touchesCurrent.y-f.prevPositionY)/(Date.now()-f.prevTime)/2,Math.abs(m.touchesCurrent.x-f.prevPositionX)<2&&(f.x=0),Math.abs(m.touchesCurrent.y-f.prevPositionY)<2&&(f.y=0),f.prevPositionX=m.touchesCurrent.x,f.prevPositionY=m.touchesCurrent.y,f.prevTime=Date.now(),u.$imageWrapEl.transform(`translate3d(${m.currentX}px, ${m.currentY}px,0)`)}}function E(){const t=e.zoom;u.$slideEl&&e.previousIndex!==e.activeIndex&&(u.$imageEl&&u.$imageEl.transform("translate3d(0,0,0) scale(1)"),u.$imageWrapEl&&u.$imageWrapEl.transform("translate3d(0,0,0)"),t.scale=1,c=1,u.$slideEl=void 0,u.$imageEl=void 0,u.$imageWrapEl=void 0)}function T(t){const s=e.zoom,a=e.params.zoom;if(u.$slideEl||(t&&t.target&&(u.$slideEl=d(t.target).closest("."+e.params.slideClass)),u.$slideEl||(e.params.virtual&&e.params.virtual.enabled&&e.virtual?u.$slideEl=e.$wrapperEl.children("."+e.params.slideActiveClass):u.$slideEl=e.slides.eq(e.activeIndex)),u.$imageEl=u.$slideEl.find("img, svg, canvas, picture, .swiper-zoom-target"),u.$imageWrapEl=u.$imageEl.parent("."+a.containerClass)),!u.$imageEl||0===u.$imageEl.length||!u.$imageWrapEl||0===u.$imageWrapEl.length)return;let r,n,l,o,p,h,f,g,v,w,b,x,y,E,T,C,S,M;e.params.cssMode&&(e.wrapperEl.style.overflow="hidden",e.wrapperEl.style.touchAction="none"),u.$slideEl.addClass(""+a.zoomedSlideClass),void 0===m.touchesStart.x&&t?(r="touchend"===t.type?t.changedTouches[0].pageX:t.pageX,n="touchend"===t.type?t.changedTouches[0].pageY:t.pageY):(r=m.touchesStart.x,n=m.touchesStart.y),s.scale=u.$imageWrapEl.attr("data-swiper-zoom")||a.maxRatio,c=u.$imageWrapEl.attr("data-swiper-zoom")||a.maxRatio,t?(S=u.$slideEl[0].offsetWidth,M=u.$slideEl[0].offsetHeight,l=u.$slideEl.offset().left+i.scrollX,o=u.$slideEl.offset().top+i.scrollY,p=l+S/2-r,h=o+M/2-n,v=u.$imageEl[0].offsetWidth,w=u.$imageEl[0].offsetHeight,b=v*s.scale,x=w*s.scale,y=Math.min(S/2-b/2,0),E=Math.min(M/2-x/2,0),T=-y,C=-E,f=p*s.scale,g=h*s.scale,f<y&&(f=y),f>T&&(f=T),g<E&&(g=E),g>C&&(g=C)):(f=0,g=0),u.$imageWrapEl.transition(300).transform(`translate3d(${f}px, ${g}px,0)`),u.$imageEl.transition(300).transform(`translate3d(0,0,0) scale(${s.scale})`)}function C(){const t=e.zoom,s=e.params.zoom;u.$slideEl||(e.params.virtual&&e.params.virtual.enabled&&e.virtual?u.$slideEl=e.$wrapperEl.children("."+e.params.slideActiveClass):u.$slideEl=e.slides.eq(e.activeIndex),u.$imageEl=u.$slideEl.find("img, svg, canvas, picture, .swiper-zoom-target"),u.$imageWrapEl=u.$imageEl.parent("."+s.containerClass)),u.$imageEl&&0!==u.$imageEl.length&&u.$imageWrapEl&&0!==u.$imageWrapEl.length&&(e.params.cssMode&&(e.wrapperEl.style.overflow="",e.wrapperEl.style.touchAction=""),t.scale=1,c=1,u.$imageWrapEl.transition(300).transform("translate3d(0,0,0)"),u.$imageEl.transition(300).transform("translate3d(0,0,0) scale(1)"),u.$slideEl.removeClass(""+s.zoomedSlideClass),u.$slideEl=void 0)}function S(t){const s=e.zoom;s.scale&&1!==s.scale?C():T(t)}function M(){const t=e.support;return{passiveListener:!("touchstart"!==e.touchEvents.start||!t.passiveListener||!e.params.passiveListeners)&&{passive:!0,capture:!1},activeListenerWithCapture:!t.passiveListener||{passive:!1,capture:!0}}}function $(){return"."+e.params.slideClass}function P(t){const{passiveListener:s}=M(),a=$();e.$wrapperEl[t]("gesturestart",a,w,s),e.$wrapperEl[t]("gesturechange",a,b,s),e.$wrapperEl[t]("gestureend",a,x,s)}function k(){n||(n=!0,P("on"))}function z(){n&&(n=!1,P("off"))}function O(){const t=e.zoom;if(t.enabled)return;t.enabled=!0;const s=e.support,{passiveListener:a,activeListenerWithCapture:i}=M(),r=$();s.gestures?(e.$wrapperEl.on(e.touchEvents.start,k,a),e.$wrapperEl.on(e.touchEvents.end,z,a)):"touchstart"===e.touchEvents.start&&(e.$wrapperEl.on(e.touchEvents.start,r,w,a),e.$wrapperEl.on(e.touchEvents.move,r,b,i),e.$wrapperEl.on(e.touchEvents.end,r,x,a),e.touchEvents.cancel&&e.$wrapperEl.on(e.touchEvents.cancel,r,x,a)),e.$wrapperEl.on(e.touchEvents.move,"."+e.params.zoom.containerClass,y,i)}function I(){const t=e.zoom;if(!t.enabled)return;const s=e.support;t.enabled=!1;const{passiveListener:a,activeListenerWithCapture:i}=M(),r=$();s.gestures?(e.$wrapperEl.off(e.touchEvents.start,k,a),e.$wrapperEl.off(e.touchEvents.end,z,a)):"touchstart"===e.touchEvents.start&&(e.$wrapperEl.off(e.touchEvents.start,r,w,a),e.$wrapperEl.off(e.touchEvents.move,r,b,i),e.$wrapperEl.off(e.touchEvents.end,r,x,a),e.touchEvents.cancel&&e.$wrapperEl.off(e.touchEvents.cancel,r,x,a)),e.$wrapperEl.off(e.touchEvents.move,"."+e.params.zoom.containerClass,y,i)}Object.defineProperty(e.zoom,"scale",{get:()=>g,set(e){if(g!==e){const t=u.$imageEl?u.$imageEl[0]:void 0,s=u.$slideEl?u.$slideEl[0]:void 0;a("zoomChange",e,t,s)}g=e}}),s("init",()=>{e.params.zoom.enabled&&O()}),s("destroy",()=>{I()}),s("touchStart",(t,s)=>{e.zoom.enabled&&function(t){const s=e.device;u.$imageEl&&0!==u.$imageEl.length&&(m.isTouched||(s.android&&t.cancelable&&t.preventDefault(),m.isTouched=!0,m.touchesStart.x="touchstart"===t.type?t.targetTouches[0].pageX:t.pageX,m.touchesStart.y="touchstart"===t.type?t.targetTouches[0].pageY:t.pageY))}(s)}),s("touchEnd",(t,s)=>{e.zoom.enabled&&function(){const t=e.zoom;if(!u.$imageEl||0===u.$imageEl.length)return;if(!m.isTouched||!m.isMoved)return m.isTouched=!1,void(m.isMoved=!1);m.isTouched=!1,m.isMoved=!1;let s=300,a=300;const i=f.x*s,r=m.currentX+i,n=f.y*a,l=m.currentY+n;0!==f.x&&(s=Math.abs((r-m.currentX)/f.x)),0!==f.y&&(a=Math.abs((l-m.currentY)/f.y));const o=Math.max(s,a);m.currentX=r,m.currentY=l;const d=m.width*t.scale,c=m.height*t.scale;m.minX=Math.min(u.slideWidth/2-d/2,0),m.maxX=-m.minX,m.minY=Math.min(u.slideHeight/2-c/2,0),m.maxY=-m.minY,m.currentX=Math.max(Math.min(m.currentX,m.maxX),m.minX),m.currentY=Math.max(Math.min(m.currentY,m.maxY),m.minY),u.$imageWrapEl.transition(o).transform(`translate3d(${m.currentX}px, ${m.currentY}px,0)`)}()}),s("doubleTap",(t,s)=>{!e.animating&&e.params.zoom.enabled&&e.zoom.enabled&&e.params.zoom.toggle&&S(s)}),s("transitionEnd",()=>{e.zoom.enabled&&e.params.zoom.enabled&&E()}),s("slideChange",()=>{e.zoom.enabled&&e.params.zoom.enabled&&e.params.cssMode&&E()}),Object.assign(e.zoom,{enable:O,disable:I,in:T,out:C,toggle:S})},function({swiper:e,extendParams:t,on:s,emit:a}){t({lazy:{checkInView:!1,enabled:!1,loadPrevNext:!1,loadPrevNextAmount:1,loadOnTransitionStart:!1,scrollingElement:"",elementClass:"swiper-lazy",loadingClass:"swiper-lazy-loading",loadedClass:"swiper-lazy-loaded",preloaderClass:"swiper-lazy-preloader"}}),e.lazy={};let i=!1,n=!1;function l(t,s=!0){const i=e.params.lazy;if(void 0===t)return;if(0===e.slides.length)return;const r=e.virtual&&e.params.virtual.enabled?e.$wrapperEl.children(`.${e.params.slideClass}[data-swiper-slide-index="${t}"]`):e.slides.eq(t),n=r.find(`.${i.elementClass}:not(.${i.loadedClass}):not(.${i.loadingClass})`);!r.hasClass(i.elementClass)||r.hasClass(i.loadedClass)||r.hasClass(i.loadingClass)||n.push(r[0]),0!==n.length&&n.each(t=>{const n=d(t);n.addClass(i.loadingClass);const o=n.attr("data-background"),c=n.attr("data-src"),p=n.attr("data-srcset"),u=n.attr("data-sizes"),h=n.parent("picture");e.loadImage(n[0],c||o,p,u,!1,()=>{if(null!=e&&e&&(!e||e.params)&&!e.destroyed){if(o?(n.css("background-image",`url("${o}")`),n.removeAttr("data-background")):(p&&(n.attr("srcset",p),n.removeAttr("data-srcset")),u&&(n.attr("sizes",u),n.removeAttr("data-sizes")),h.length&&h.children("source").each(e=>{const t=d(e);t.attr("data-srcset")&&(t.attr("srcset",t.attr("data-srcset")),t.removeAttr("data-srcset"))}),c&&(n.attr("src",c),n.removeAttr("data-src"))),n.addClass(i.loadedClass).removeClass(i.loadingClass),r.find("."+i.preloaderClass).remove(),e.params.loop&&s){const t=r.attr("data-swiper-slide-index");r.hasClass(e.params.slideDuplicateClass)?l(e.$wrapperEl.children(`[data-swiper-slide-index="${t}"]:not(.${e.params.slideDuplicateClass})`).index(),!1):l(e.$wrapperEl.children(`.${e.params.slideDuplicateClass}[data-swiper-slide-index="${t}"]`).index(),!1)}a("lazyImageReady",r[0],n[0]),e.params.autoHeight&&e.updateAutoHeight()}}),a("lazyImageLoad",r[0],n[0])})}function o(){const{$wrapperEl:t,params:s,slides:a,activeIndex:i}=e,r=e.virtual&&s.virtual.enabled,o=s.lazy;let c=s.slidesPerView;function p(e){if(r){if(t.children(`.${s.slideClass}[data-swiper-slide-index="${e}"]`).length)return!0}else if(a[e])return!0;return!1}function u(e){return r?d(e).attr("data-swiper-slide-index"):d(e).index()}if("auto"===c&&(c=0),n||(n=!0),e.params.watchSlidesProgress)t.children("."+s.slideVisibleClass).each(e=>{l(r?d(e).attr("data-swiper-slide-index"):d(e).index())});else if(c>1)for(let e=i;e<i+c;e+=1)p(e)&&l(e);else l(i);if(o.loadPrevNext)if(c>1||o.loadPrevNextAmount&&o.loadPrevNextAmount>1){const e=o.loadPrevNextAmount,t=c,s=Math.min(i+t+Math.max(e,t),a.length),r=Math.max(i-Math.max(t,e),0);for(let e=i+c;e<s;e+=1)p(e)&&l(e);for(let e=r;e<i;e+=1)p(e)&&l(e)}else{const e=t.children("."+s.slideNextClass);e.length>0&&l(u(e));const a=t.children("."+s.slidePrevClass);a.length>0&&l(u(a))}}function c(){const t=r();if(!e||e.destroyed)return;const s=e.params.lazy.scrollingElement?d(e.params.lazy.scrollingElement):d(t),a=s[0]===t,n=a?t.innerWidth:s[0].offsetWidth,l=a?t.innerHeight:s[0].offsetHeight,p=e.$el.offset(),{rtlTranslate:u}=e;let h=!1;u&&(p.left-=e.$el[0].scrollLeft);const m=[[p.left,p.top],[p.left+e.width,p.top],[p.left,p.top+e.height],[p.left+e.width,p.top+e.height]];for(let e=0;e<m.length;e+=1){const t=m[e];if(t[0]>=0&&t[0]<=n&&t[1]>=0&&t[1]<=l){if(0===t[0]&&0===t[1])continue;h=!0}}const f=!("touchstart"!==e.touchEvents.start||!e.support.passiveListener||!e.params.passiveListeners)&&{passive:!0,capture:!1};h?(o(),s.off("scroll",c,f)):i||(i=!0,s.on("scroll",c,f))}s("beforeInit",()=>{e.params.lazy.enabled&&e.params.preloadImages&&(e.params.preloadImages=!1)}),s("init",()=>{e.params.lazy.enabled&&!e.params.loop&&0===e.params.initialSlide&&(e.params.lazy.checkInView?c():o())}),s("scroll",()=>{e.params.freeMode&&e.params.freeMode.enabled&&!e.params.freeMode.sticky&&o()}),s("scrollbarDragMove resize _freeModeNoMomentumRelease",()=>{e.params.lazy.enabled&&o()}),s("transitionStart",()=>{e.params.lazy.enabled&&(e.params.lazy.loadOnTransitionStart||!e.params.lazy.loadOnTransitionStart&&!n)&&o()}),s("transitionEnd",()=>{e.params.lazy.enabled&&!e.params.lazy.loadOnTransitionStart&&o()}),s("slideChange",()=>{const{lazy:t,cssMode:s,watchSlidesProgress:a,touchReleaseOnEdges:i,resistanceRatio:r}=e.params;t.enabled&&(s||a&&(i||0===r))&&o()}),Object.assign(e.lazy,{load:o,loadInSlide:l})},function({swiper:e,extendParams:t,on:s}){function a(e,t){const s=function(){let e,t,s;return(a,i)=>{for(t=-1,e=a.length;e-t>1;)s=e+t>>1,a[s]<=i?t=s:e=s;return e}}();let a,i;return this.x=e,this.y=t,this.lastIndex=e.length-1,this.interpolate=function(e){return e?(i=s(this.x,e),a=i-1,(e-this.x[a])*(this.y[i]-this.y[a])/(this.x[i]-this.x[a])+this.y[a]):0},this}function i(){e.controller.control&&e.controller.spline&&(e.controller.spline=void 0,delete e.controller.spline)}t({controller:{control:void 0,inverse:!1,by:"slide"}}),e.controller={control:void 0},s("beforeInit",()=>{e.controller.control=e.params.controller.control}),s("update",()=>{i()}),s("resize",()=>{i()}),s("observerUpdate",()=>{i()}),s("setTranslate",(t,s,a)=>{e.controller.control&&e.controller.setTranslate(s,a)}),s("setTransition",(t,s,a)=>{e.controller.control&&e.controller.setTransition(s,a)}),Object.assign(e.controller,{setTranslate:function(t,s){const i=e.controller.control;let r,n;const l=e.constructor;function o(t){const s=e.rtlTranslate?-e.translate:e.translate;"slide"===e.params.controller.by&&(function(t){e.controller.spline||(e.controller.spline=e.params.loop?new a(e.slidesGrid,t.slidesGrid):new a(e.snapGrid,t.snapGrid))}(t),n=-e.controller.spline.interpolate(-s)),n&&"container"!==e.params.controller.by||(r=(t.maxTranslate()-t.minTranslate())/(e.maxTranslate()-e.minTranslate()),n=(s-e.minTranslate())*r+t.minTranslate()),e.params.controller.inverse&&(n=t.maxTranslate()-n),t.updateProgress(n),t.setTranslate(n,e),t.updateActiveIndex(),t.updateSlidesClasses()}if(Array.isArray(i))for(let e=0;e<i.length;e+=1)i[e]!==s&&i[e]instanceof l&&o(i[e]);else i instanceof l&&s!==i&&o(i)},setTransition:function(t,s){const a=e.constructor,i=e.controller.control;let r;function n(s){s.setTransition(t,e),0!==t&&(s.transitionStart(),s.params.autoHeight&&p(()=>{s.updateAutoHeight()}),s.$wrapperEl.transitionEnd(()=>{i&&(s.params.loop&&"slide"===e.params.controller.by&&s.loopFix(),s.transitionEnd())}))}if(Array.isArray(i))for(r=0;r<i.length;r+=1)i[r]!==s&&i[r]instanceof a&&n(i[r]);else i instanceof a&&s!==i&&n(i)}})},function({swiper:e,extendParams:t,on:s}){t({a11y:{enabled:!0,notificationClass:"swiper-notification",prevSlideMessage:"Previous slide",nextSlideMessage:"Next slide",firstSlideMessage:"This is the first slide",lastSlideMessage:"This is the last slide",paginationBulletMessage:"Go to slide {{index}}",slideLabelMessage:"{{index}} / {{slidesLength}}",containerMessage:null,containerRoleDescriptionMessage:null,itemRoleDescriptionMessage:null,slideRole:"group"}});let a=null;function i(e){const t=a;0!==t.length&&(t.html(""),t.html(e))}function r(e){e.attr("tabIndex","0")}function n(e){e.attr("tabIndex","-1")}function l(e,t){e.attr("role",t)}function o(e,t){e.attr("aria-roledescription",t)}function c(e,t){e.attr("aria-label",t)}function p(e){e.attr("aria-disabled",!0)}function u(e){e.attr("aria-disabled",!1)}function h(t){if(13!==t.keyCode&&32!==t.keyCode)return;const s=e.params.a11y,a=d(t.target);e.navigation&&e.navigation.$nextEl&&a.is(e.navigation.$nextEl)&&(e.isEnd&&!e.params.loop||e.slideNext(),e.isEnd?i(s.lastSlideMessage):i(s.nextSlideMessage)),e.navigation&&e.navigation.$prevEl&&a.is(e.navigation.$prevEl)&&(e.isBeginning&&!e.params.loop||e.slidePrev(),e.isBeginning?i(s.firstSlideMessage):i(s.prevSlideMessage)),e.pagination&&a.is(Y(e.params.pagination.bulletClass))&&a[0].click()}function m(){if(e.params.loop||!e.navigation)return;const{$nextEl:t,$prevEl:s}=e.navigation;s&&s.length>0&&(e.isBeginning?(p(s),n(s)):(u(s),r(s))),t&&t.length>0&&(e.isEnd?(p(t),n(t)):(u(t),r(t)))}function f(){return e.pagination&&e.params.pagination.clickable&&e.pagination.bullets&&e.pagination.bullets.length}const g=(e,t,s)=>{r(e),"BUTTON"!==e[0].tagName&&(l(e,"button"),e.on("keydown",h)),c(e,s),function(e,t){e.attr("aria-controls",t)}(e,t)};s("beforeInit",()=>{a=d(`<span class="${e.params.a11y.notificationClass}" aria-live="assertive" aria-atomic="true"></span>`)}),s("afterInit",()=>{e.params.a11y.enabled&&(function(){const t=e.params.a11y;e.$el.append(a);const s=e.$el;t.containerRoleDescriptionMessage&&o(s,t.containerRoleDescriptionMessage),t.containerMessage&&c(s,t.containerMessage);const i=e.$wrapperEl,r=i.attr("id")||"swiper-wrapper-"+function(e=16){return"x".repeat(e).replace(/x/g,()=>Math.round(16*Math.random()).toString(16))}(16),n=e.params.autoplay&&e.params.autoplay.enabled?"off":"polite";var p;p=r,i.attr("id",p),function(e,t){e.attr("aria-live",t)}(i,n),t.itemRoleDescriptionMessage&&o(d(e.slides),t.itemRoleDescriptionMessage),l(d(e.slides),t.slideRole);const u=e.params.loop?e.slides.filter(t=>!t.classList.contains(e.params.slideDuplicateClass)).length:e.slides.length;let m,v;e.slides.each((s,a)=>{const i=d(s),r=e.params.loop?parseInt(i.attr("data-swiper-slide-index"),10):a;c(i,t.slideLabelMessage.replace(/\{\{index\}\}/,r+1).replace(/\{\{slidesLength\}\}/,u))}),e.navigation&&e.navigation.$nextEl&&(m=e.navigation.$nextEl),e.navigation&&e.navigation.$prevEl&&(v=e.navigation.$prevEl),m&&m.length&&g(m,t.nextSlideMessage),v&&v.length&&g(v,t.prevSlideMessage),f()&&e.pagination.$el.on("keydown",Y(e.params.pagination.bulletClass),h)}(),m())}),s("toEdge",()=>{e.params.a11y.enabled&&m()}),s("fromEdge",()=>{e.params.a11y.enabled&&m()}),s("paginationUpdate",()=>{e.params.a11y.enabled&&function(){const t=e.params.a11y;f()&&e.pagination.bullets.each(s=>{const a=d(s);r(a),e.params.pagination.renderBullet||(l(a,"button"),c(a,t.paginationBulletMessage.replace(/\{\{index\}\}/,a.index()+1)))})}()}),s("destroy",()=>{e.params.a11y.enabled&&function(){let t,s;a&&a.length>0&&a.remove(),e.navigation&&e.navigation.$nextEl&&(t=e.navigation.$nextEl),e.navigation&&e.navigation.$prevEl&&(s=e.navigation.$prevEl),t&&t.off("keydown",h),s&&s.off("keydown",h),f()&&e.pagination.$el.off("keydown",Y(e.params.pagination.bulletClass),h)}()})},function({swiper:e,extendParams:t,on:s}){t({history:{enabled:!1,root:"",replaceState:!1,key:"slides"}});let a=!1,i={};const n=e=>e.toString().replace(/\s+/g,"-").replace(/[^\w-]+/g,"").replace(/--+/g,"-").replace(/^-+/,"").replace(/-+$/,""),l=e=>{const t=r();let s;s=e?new URL(e):t.location;const a=s.pathname.slice(1).split("/").filter(e=>""!==e),i=a.length;return{key:a[i-2],value:a[i-1]}},o=(t,s)=>{const i=r();if(!a||!e.params.history.enabled)return;let l;l=e.params.url?new URL(e.params.url):i.location;const o=e.slides.eq(s);let d=n(o.attr("data-history"));if(e.params.history.root.length>0){let s=e.params.history.root;"/"===s[s.length-1]&&(s=s.slice(0,s.length-1)),d=`${s}/${t}/${d}`}else l.pathname.includes(t)||(d=`${t}/${d}`);const c=i.history.state;c&&c.value===d||(e.params.history.replaceState?i.history.replaceState({value:d},null,d):i.history.pushState({value:d},null,d))},d=(t,s,a)=>{if(s)for(let i=0,r=e.slides.length;i<r;i+=1){const r=e.slides.eq(i);if(n(r.attr("data-history"))===s&&!r.hasClass(e.params.slideDuplicateClass)){const s=r.index();e.slideTo(s,t,a)}}else e.slideTo(0,t,a)},c=()=>{i=l(e.params.url),d(e.params.speed,e.paths.value,!1)};s("init",()=>{e.params.history.enabled&&(()=>{const t=r();if(e.params.history){if(!t.history||!t.history.pushState)return e.params.history.enabled=!1,void(e.params.hashNavigation.enabled=!0);a=!0,i=l(e.params.url),(i.key||i.value)&&(d(0,i.value,e.params.runCallbacksOnInit),e.params.history.replaceState||t.addEventListener("popstate",c))}})()}),s("destroy",()=>{e.params.history.enabled&&(()=>{const t=r();e.params.history.replaceState||t.removeEventListener("popstate",c)})()}),s("transitionEnd _freeModeNoMomentumRelease",()=>{a&&o(e.params.history.key,e.activeIndex)}),s("slideChange",()=>{a&&e.params.cssMode&&o(e.params.history.key,e.activeIndex)})},function({swiper:e,extendParams:t,emit:s,on:i}){let n=!1;const l=a(),o=r();t({hashNavigation:{enabled:!1,replaceState:!1,watchState:!1}});const c=()=>{s("hashChange");const t=l.location.hash.replace("#","");if(t!==e.slides.eq(e.activeIndex).attr("data-hash")){const s=e.$wrapperEl.children(`.${e.params.slideClass}[data-hash="${t}"]`).index();if(void 0===s)return;e.slideTo(s)}},p=()=>{if(n&&e.params.hashNavigation.enabled)if(e.params.hashNavigation.replaceState&&o.history&&o.history.replaceState)o.history.replaceState(null,null,"#"+e.slides.eq(e.activeIndex).attr("data-hash")||""),s("hashSet");else{const t=e.slides.eq(e.activeIndex),a=t.attr("data-hash")||t.attr("data-history");l.location.hash=a||"",s("hashSet")}};i("init",()=>{e.params.hashNavigation.enabled&&(()=>{if(!e.params.hashNavigation.enabled||e.params.history&&e.params.history.enabled)return;n=!0;const t=l.location.hash.replace("#","");if(t){const s=0;for(let a=0,i=e.slides.length;a<i;a+=1){const i=e.slides.eq(a);if((i.attr("data-hash")||i.attr("data-history"))===t&&!i.hasClass(e.params.slideDuplicateClass)){const t=i.index();e.slideTo(t,s,e.params.runCallbacksOnInit,!0)}}}e.params.hashNavigation.watchState&&d(o).on("hashchange",c)})()}),i("destroy",()=>{e.params.hashNavigation.enabled&&e.params.hashNavigation.watchState&&d(o).off("hashchange",c)}),i("transitionEnd _freeModeNoMomentumRelease",()=>{n&&p()}),i("slideChange",()=>{n&&e.params.cssMode&&p()})},function({swiper:e,extendParams:t,on:s,emit:i}){let r;function n(){const t=e.slides.eq(e.activeIndex);let s=e.params.autoplay.delay;t.attr("data-swiper-autoplay")&&(s=t.attr("data-swiper-autoplay")||e.params.autoplay.delay),clearTimeout(r),r=p(()=>{let t;e.params.autoplay.reverseDirection?e.params.loop?(e.loopFix(),t=e.slidePrev(e.params.speed,!0,!0),i("autoplay")):e.isBeginning?e.params.autoplay.stopOnLastSlide?l():(t=e.slideTo(e.slides.length-1,e.params.speed,!0,!0),i("autoplay")):(t=e.slidePrev(e.params.speed,!0,!0),i("autoplay")):e.params.loop?(e.loopFix(),t=e.slideNext(e.params.speed,!0,!0),i("autoplay")):e.isEnd?e.params.autoplay.stopOnLastSlide?l():(t=e.slideTo(0,e.params.speed,!0,!0),i("autoplay")):(t=e.slideNext(e.params.speed,!0,!0),i("autoplay")),(e.params.cssMode&&e.autoplay.running||!1===t)&&n()},s)}function l(){return!!e.autoplay.running&&void 0!==r&&(r&&(clearTimeout(r),r=void 0),e.autoplay.running=!1,i("autoplayStop"),!0)}function o(t){e.autoplay.running&&(e.autoplay.paused||(r&&clearTimeout(r),e.autoplay.paused=!0,0!==t&&e.params.autoplay.waitForTransition?["transitionend","webkitTransitionEnd"].forEach(t=>{e.$wrapperEl[0].addEventListener(t,c)}):(e.autoplay.paused=!1,n())))}function d(){const t=a();"hidden"===t.visibilityState&&e.autoplay.running&&o(),"visible"===t.visibilityState&&e.autoplay.paused&&(n(),e.autoplay.paused=!1)}function c(t){e&&!e.destroyed&&e.$wrapperEl&&t.target===e.$wrapperEl[0]&&(["transitionend","webkitTransitionEnd"].forEach(t=>{e.$wrapperEl[0].removeEventListener(t,c)}),e.autoplay.paused=!1,e.autoplay.running?n():l())}function u(){e.params.autoplay.disableOnInteraction?l():o(),["transitionend","webkitTransitionEnd"].forEach(t=>{e.$wrapperEl[0].removeEventListener(t,c)})}function h(){e.params.autoplay.disableOnInteraction||(e.autoplay.paused=!1,n())}e.autoplay={running:!1,paused:!1},t({autoplay:{enabled:!1,delay:3e3,waitForTransition:!0,disableOnInteraction:!0,stopOnLastSlide:!1,reverseDirection:!1,pauseOnMouseEnter:!1}}),s("init",()=>{e.params.autoplay.enabled&&(void 0===r&&!e.autoplay.running&&(e.autoplay.running=!0,i("autoplayStart"),n()),a().addEventListener("visibilitychange",d),e.params.autoplay.pauseOnMouseEnter&&(e.$el.on("mouseenter",u),e.$el.on("mouseleave",h)))}),s("beforeTransitionStart",(t,s,a)=>{e.autoplay.running&&(a||!e.params.autoplay.disableOnInteraction?e.autoplay.pause(s):l())}),s("sliderFirstMove",()=>{e.autoplay.running&&(e.params.autoplay.disableOnInteraction?l():o())}),s("touchEnd",()=>{e.params.cssMode&&e.autoplay.paused&&!e.params.autoplay.disableOnInteraction&&n()}),s("destroy",()=>{e.$el.off("mouseenter",u),e.$el.off("mouseleave",h),e.autoplay.running&&l(),a().removeEventListener("visibilitychange",d)}),Object.assign(e.autoplay,{pause:o,run:n,stop:l})},function({swiper:e,extendParams:t,on:s}){t({thumbs:{swiper:null,multipleActiveThumbs:!0,autoScrollOffset:0,slideThumbActiveClass:"swiper-slide-thumb-active",thumbsContainerClass:"swiper-container-thumbs"}});let a=!1,i=!1;function r(){const t=e.thumbs.swiper;if(!t)return;const s=t.clickedIndex,a=t.clickedSlide;if(a&&d(a).hasClass(e.params.thumbs.slideThumbActiveClass))return;if(null==s)return;let i;if(i=t.params.loop?parseInt(d(t.clickedSlide).attr("data-swiper-slide-index"),10):s,e.params.loop){let t=e.activeIndex;e.slides.eq(t).hasClass(e.params.slideDuplicateClass)&&(e.loopFix(),e._clientLeft=e.$wrapperEl[0].clientLeft,t=e.activeIndex);const s=e.slides.eq(t).prevAll(`[data-swiper-slide-index="${i}"]`).eq(0).index(),a=e.slides.eq(t).nextAll(`[data-swiper-slide-index="${i}"]`).eq(0).index();i=void 0===s?a:void 0===a?s:a-t<t-s?a:s}e.slideTo(i)}function n(){const{thumbs:t}=e.params;if(a)return!1;a=!0;const s=e.constructor;if(t.swiper instanceof s)e.thumbs.swiper=t.swiper,Object.assign(e.thumbs.swiper.originalParams,{watchSlidesProgress:!0,slideToClickedSlide:!1}),Object.assign(e.thumbs.swiper.params,{watchSlidesProgress:!0,slideToClickedSlide:!1});else if(m(t.swiper)){const a=Object.assign({},t.swiper);Object.assign(a,{watchSlidesProgress:!0,slideToClickedSlide:!1}),e.thumbs.swiper=new s(a),i=!0}return e.thumbs.swiper.$el.addClass(e.params.thumbs.thumbsContainerClass),e.thumbs.swiper.on("tap",r),!0}function l(t){const s=e.thumbs.swiper;if(!s)return;const a="auto"===s.params.slidesPerView?s.slidesPerViewDynamic():s.params.slidesPerView,i=e.params.thumbs.autoScrollOffset,r=i&&!s.params.loop;if(e.realIndex!==s.realIndex||r){let n,l,o=s.activeIndex;if(s.params.loop){s.slides.eq(o).hasClass(s.params.slideDuplicateClass)&&(s.loopFix(),s._clientLeft=s.$wrapperEl[0].clientLeft,o=s.activeIndex);const t=s.slides.eq(o).prevAll(`[data-swiper-slide-index="${e.realIndex}"]`).eq(0).index(),a=s.slides.eq(o).nextAll(`[data-swiper-slide-index="${e.realIndex}"]`).eq(0).index();n=void 0===t?a:void 0===a?t:a-o==o-t?s.params.slidesPerGroup>1?a:o:a-o<o-t?a:t,l=e.activeIndex>e.previousIndex?"next":"prev"}else n=e.realIndex,l=n>e.previousIndex?"next":"prev";r&&(n+="next"===l?i:-1*i),s.visibleSlidesIndexes&&s.visibleSlidesIndexes.indexOf(n)<0&&(s.params.centeredSlides?n=n>o?n-Math.floor(a/2)+1:n+Math.floor(a/2)-1:n>o&&s.params.slidesPerGroup,s.slideTo(n,t?0:void 0))}let n=1;const l=e.params.thumbs.slideThumbActiveClass;if(e.params.slidesPerView>1&&!e.params.centeredSlides&&(n=e.params.slidesPerView),e.params.thumbs.multipleActiveThumbs||(n=1),n=Math.floor(n),s.slides.removeClass(l),s.params.loop||s.params.virtual&&s.params.virtual.enabled)for(let t=0;t<n;t+=1)s.$wrapperEl.children(`[data-swiper-slide-index="${e.realIndex+t}"]`).addClass(l);else for(let t=0;t<n;t+=1)s.slides.eq(e.realIndex+t).addClass(l)}e.thumbs={swiper:null},s("beforeInit",()=>{const{thumbs:t}=e.params;t&&t.swiper&&(n(),l(!0))}),s("slideChange update resize observerUpdate",()=>{e.thumbs.swiper&&l()}),s("setTransition",(t,s)=>{const a=e.thumbs.swiper;a&&a.setTransition(s)}),s("beforeDestroy",()=>{const t=e.thumbs.swiper;t&&i&&t&&t.destroy()}),Object.assign(e.thumbs,{init:n,update:l})},function({swiper:e,extendParams:t,emit:s,once:a}){t({freeMode:{enabled:!1,momentum:!0,momentumRatio:1,momentumBounce:!0,momentumBounceRatio:1,momentumVelocityRatio:1,sticky:!1,minimumVelocity:.02}}),Object.assign(e,{freeMode:{onTouchMove:function(){const{touchEventsData:t,touches:s}=e;0===t.velocities.length&&t.velocities.push({position:s[e.isHorizontal()?"startX":"startY"],time:t.touchStartTime}),t.velocities.push({position:s[e.isHorizontal()?"currentX":"currentY"],time:u()})},onTouchEnd:function({currentPos:t}){const{params:i,$wrapperEl:r,rtlTranslate:n,snapGrid:l,touchEventsData:o}=e,d=u()-o.touchStartTime;if(t<-e.minTranslate())e.slideTo(e.activeIndex);else if(t>-e.maxTranslate())e.slides.length<l.length?e.slideTo(l.length-1):e.slideTo(e.slides.length-1);else{if(i.freeMode.momentum){if(o.velocities.length>1){const t=o.velocities.pop(),s=o.velocities.pop(),a=t.position-s.position,r=t.time-s.time;e.velocity=a/r,e.velocity/=2,Math.abs(e.velocity)<i.freeMode.minimumVelocity&&(e.velocity=0),(r>150||u()-t.time>300)&&(e.velocity=0)}else e.velocity=0;e.velocity*=i.freeMode.momentumVelocityRatio,o.velocities.length=0;let t=1e3*i.freeMode.momentumRatio;const d=e.velocity*t;let c=e.translate+d;n&&(c=-c);let p,h=!1;const m=20*Math.abs(e.velocity)*i.freeMode.momentumBounceRatio;let f;if(c<e.maxTranslate())i.freeMode.momentumBounce?(c+e.maxTranslate()<-m&&(c=e.maxTranslate()-m),p=e.maxTranslate(),h=!0,o.allowMomentumBounce=!0):c=e.maxTranslate(),i.loop&&i.centeredSlides&&(f=!0);else if(c>e.minTranslate())i.freeMode.momentumBounce?(c-e.minTranslate()>m&&(c=e.minTranslate()+m),p=e.minTranslate(),h=!0,o.allowMomentumBounce=!0):c=e.minTranslate(),i.loop&&i.centeredSlides&&(f=!0);else if(i.freeMode.sticky){let t;for(let e=0;e<l.length;e+=1)if(l[e]>-c){t=e;break}c=Math.abs(l[t]-c)<Math.abs(l[t-1]-c)||"next"===e.swipeDirection?l[t]:l[t-1],c=-c}if(f&&a("transitionEnd",()=>{e.loopFix()}),0!==e.velocity){if(t=n?Math.abs((-c-e.translate)/e.velocity):Math.abs((c-e.translate)/e.velocity),i.freeMode.sticky){const s=Math.abs((n?-c:c)-e.translate),a=e.slidesSizesGrid[e.activeIndex];t=s<a?i.speed:s<2*a?1.5*i.speed:2.5*i.speed}}else if(i.freeMode.sticky)return void e.slideToClosest();i.freeMode.momentumBounce&&h?(e.updateProgress(p),e.setTransition(t),e.setTranslate(c),e.transitionStart(!0,e.swipeDirection),e.animating=!0,r.transitionEnd(()=>{e&&!e.destroyed&&o.allowMomentumBounce&&(s("momentumBounce"),e.setTransition(i.speed),setTimeout(()=>{e.setTranslate(p),r.transitionEnd(()=>{e&&!e.destroyed&&e.transitionEnd()})},0))})):e.velocity?(s("_freeModeNoMomentumRelease"),e.updateProgress(c),e.setTransition(t),e.setTranslate(c),e.transitionStart(!0,e.swipeDirection),e.animating||(e.animating=!0,r.transitionEnd(()=>{e&&!e.destroyed&&e.transitionEnd()}))):e.updateProgress(c),e.updateActiveIndex(),e.updateSlidesClasses()}else{if(i.freeMode.sticky)return void e.slideToClosest();i.freeMode&&s("_freeModeNoMomentumRelease")}(!i.freeMode.momentum||d>=i.longSwipesMs)&&(e.updateProgress(),e.updateActiveIndex(),e.updateSlidesClasses())}}}})},function({swiper:e,extendParams:t}){let s,a,i;t({grid:{rows:1,fill:"column"}}),e.grid={initSlides:t=>{const{slidesPerView:r}=e.params,{rows:n,fill:l}=e.params.grid;a=s/n,i=Math.floor(t/n),s=Math.floor(t/n)===t/n?t:Math.ceil(t/n)*n,"auto"!==r&&"row"===l&&(s=Math.max(s,r*n))},updateSlide:(t,r,n,l)=>{const{slidesPerGroup:o,spaceBetween:d}=e.params,{rows:c,fill:p}=e.params.grid;let u,h,m;if("row"===p&&o>1){const e=Math.floor(t/(o*c)),a=t-c*o*e,i=0===e?o:Math.min(Math.ceil((n-e*c*o)/c),o);m=Math.floor(a/i),h=a-m*i+e*o,u=h+m*s/c,r.css({"-webkit-order":u,order:u})}else"column"===p?(h=Math.floor(t/c),m=t-h*c,(h>i||h===i&&m===c-1)&&(m+=1,m>=c&&(m=0,h+=1))):(m=Math.floor(t/a),h=t-m*a);r.css(l("margin-top"),0!==m?d&&d+"px":"")},updateWrapperSize:(t,a,i)=>{const{spaceBetween:r,centeredSlides:n,roundLengths:l}=e.params,{rows:o}=e.params.grid;if(e.virtualSize=(t+r)*s,e.virtualSize=Math.ceil(e.virtualSize/o)-r,e.$wrapperEl.css({[i("width")]:e.virtualSize+r+"px"}),n){a.splice(0,a.length);const t=[];for(let s=0;s<a.length;s+=1){let i=a[s];l&&(i=Math.floor(i)),a[s]<e.virtualSize+a[0]&&t.push(i)}a.push(...t)}}}},function({swiper:e}){Object.assign(e,{appendSlide:j.bind(e),prependSlide:W.bind(e),addSlide:R.bind(e),removeSlide:q.bind(e),removeAllSlides:V.bind(e)})},function({swiper:e,extendParams:t,on:s}){t({fadeEffect:{crossFade:!1,transformEl:null}}),s("beforeInit",()=>{if("fade"!==e.params.effect)return;e.classNames.push(e.params.containerModifierClass+"fade");const t={slidesPerView:1,slidesPerGroup:1,watchSlidesProgress:!0,spaceBetween:0,virtualTranslate:!e.params.cssMode};Object.assign(e.params,t),Object.assign(e.originalParams,t)}),s("setTranslate",()=>{"fade"===e.params.effect&&(()=>{const{slides:t}=e,s=e.params.fadeEffect;for(let a=0;a<t.length;a+=1){const t=e.slides.eq(a);let i=-t[0].swiperSlideOffset;e.params.virtualTranslate||(i-=e.translate);let r=0;e.isHorizontal()||(r=i,i=0);const n=e.params.fadeEffect.crossFade?Math.max(1-Math.abs(t[0].progress),0):1+Math.min(Math.max(t[0].progress,-1),0);F(s,t).css({opacity:n}).transform(`translate3d(${i}px, ${r}px, 0px)`)}})()}),s("setTransition",(t,s)=>{"fade"===e.params.effect&&(t=>{const{transformEl:s}=e.params.fadeEffect;(s?e.slides.find(s):e.slides).transition(t),_({swiper:e,duration:t,transformEl:s,allSlides:!0})})(s)})},function({swiper:e,extendParams:t,on:s}){t({cubeEffect:{slideShadows:!0,shadow:!0,shadowOffset:20,shadowScale:.94}}),s("beforeInit",()=>{if("cube"!==e.params.effect)return;e.classNames.push(e.params.containerModifierClass+"cube"),e.classNames.push(e.params.containerModifierClass+"3d");const t={slidesPerView:1,slidesPerGroup:1,watchSlidesProgress:!0,resistanceRatio:0,spaceBetween:0,centeredSlides:!1,virtualTranslate:!0};Object.assign(e.params,t),Object.assign(e.originalParams,t)}),s("setTranslate",()=>{"cube"===e.params.effect&&(()=>{const{$el:t,$wrapperEl:s,slides:a,width:i,height:r,rtlTranslate:n,size:l,browser:o}=e,c=e.params.cubeEffect,p=e.isHorizontal(),u=e.virtual&&e.params.virtual.enabled;let h,m=0;c.shadow&&(p?(h=s.find(".swiper-cube-shadow"),0===h.length&&(h=d('<div class="swiper-cube-shadow"></div>'),s.append(h)),h.css({height:i+"px"})):(h=t.find(".swiper-cube-shadow"),0===h.length&&(h=d('<div class="swiper-cube-shadow"></div>'),t.append(h))));for(let e=0;e<a.length;e+=1){const t=a.eq(e);let s=e;u&&(s=parseInt(t.attr("data-swiper-slide-index"),10));let i=90*s,r=Math.floor(i/360);n&&(i=-i,r=Math.floor(-i/360));const o=Math.max(Math.min(t[0].progress,1),-1);let h=0,f=0,g=0;s%4==0?(h=4*-r*l,g=0):(s-1)%4==0?(h=0,g=4*-r*l):(s-2)%4==0?(h=l+4*r*l,g=l):(s-3)%4==0&&(h=-l,g=3*l+4*l*r),n&&(h=-h),p||(f=h,h=0);const v=`rotateX(${p?0:-i}deg) rotateY(${p?i:0}deg) translate3d(${h}px, ${f}px, ${g}px)`;if(o<=1&&o>-1&&(m=90*s+90*o,n&&(m=90*-s-90*o)),t.transform(v),c.slideShadows){let e=p?t.find(".swiper-slide-shadow-left"):t.find(".swiper-slide-shadow-top"),s=p?t.find(".swiper-slide-shadow-right"):t.find(".swiper-slide-shadow-bottom");0===e.length&&(e=d(`<div class="swiper-slide-shadow-${p?"left":"top"}"></div>`),t.append(e)),0===s.length&&(s=d(`<div class="swiper-slide-shadow-${p?"right":"bottom"}"></div>`),t.append(s)),e.length&&(e[0].style.opacity=Math.max(-o,0)),s.length&&(s[0].style.opacity=Math.max(o,0))}}if(s.css({"-webkit-transform-origin":`50% 50% -${l/2}px`,"transform-origin":`50% 50% -${l/2}px`}),c.shadow)if(p)h.transform(`translate3d(0px, ${i/2+c.shadowOffset}px, ${-i/2}px) rotateX(90deg) rotateZ(0deg) scale(${c.shadowScale})`);else{const e=Math.abs(m)-90*Math.floor(Math.abs(m)/90),t=1.5-(Math.sin(2*e*Math.PI/360)/2+Math.cos(2*e*Math.PI/360)/2),s=c.shadowScale,a=c.shadowScale/t,i=c.shadowOffset;h.transform(`scale3d(${s}, 1, ${a}) translate3d(0px, ${r/2+i}px, ${-r/2/a}px) rotateX(-90deg)`)}const f=o.isSafari||o.isWebView?-l/2:0;s.transform(`translate3d(0px,0,${f}px) rotateX(${e.isHorizontal()?0:m}deg) rotateY(${e.isHorizontal()?-m:0}deg)`)})()}),s("setTransition",(t,s)=>{"cube"===e.params.effect&&(t=>{const{$el:s,slides:a}=e;a.transition(t).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(t),e.params.cubeEffect.shadow&&!e.isHorizontal()&&s.find(".swiper-cube-shadow").transition(t)})(s)})},function({swiper:e,extendParams:t,on:s}){t({flipEffect:{slideShadows:!0,limitRotation:!0,transformEl:null}}),s("beforeInit",()=>{if("flip"!==e.params.effect)return;e.classNames.push(e.params.containerModifierClass+"flip"),e.classNames.push(e.params.containerModifierClass+"3d");const t={slidesPerView:1,slidesPerGroup:1,watchSlidesProgress:!0,spaceBetween:0,virtualTranslate:!e.params.cssMode};Object.assign(e.params,t),Object.assign(e.originalParams,t)}),s("setTranslate",()=>{"flip"===e.params.effect&&(()=>{const{slides:t,rtlTranslate:s}=e,a=e.params.flipEffect;for(let i=0;i<t.length;i+=1){const r=t.eq(i);let n=r[0].progress;e.params.flipEffect.limitRotation&&(n=Math.max(Math.min(r[0].progress,1),-1));const l=r[0].swiperSlideOffset;let o=-180*n,d=0,c=e.params.cssMode?-l-e.translate:-l,p=0;if(e.isHorizontal()?s&&(o=-o):(p=c,c=0,d=-o,o=0),r[0].style.zIndex=-Math.abs(Math.round(n))+t.length,a.slideShadows){let t=e.isHorizontal()?r.find(".swiper-slide-shadow-left"):r.find(".swiper-slide-shadow-top"),s=e.isHorizontal()?r.find(".swiper-slide-shadow-right"):r.find(".swiper-slide-shadow-bottom");0===t.length&&(t=U(a,r,e.isHorizontal()?"left":"top")),0===s.length&&(s=U(a,r,e.isHorizontal()?"right":"bottom")),t.length&&(t[0].style.opacity=Math.max(-n,0)),s.length&&(s[0].style.opacity=Math.max(n,0))}const u=`translate3d(${c}px, ${p}px, 0px) rotateX(${d}deg) rotateY(${o}deg)`;F(a,r).transform(u)}})()}),s("setTransition",(t,s)=>{"flip"===e.params.effect&&(t=>{const{transformEl:s}=e.params.flipEffect;(s?e.slides.find(s):e.slides).transition(t).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(t),_({swiper:e,duration:t,transformEl:s})})(s)})},function({swiper:e,extendParams:t,on:s}){t({coverflowEffect:{rotate:50,stretch:0,depth:100,scale:1,modifier:1,slideShadows:!0,transformEl:null}}),s("beforeInit",()=>{"coverflow"===e.params.effect&&(e.classNames.push(e.params.containerModifierClass+"coverflow"),e.classNames.push(e.params.containerModifierClass+"3d"),e.params.watchSlidesProgress=!0,e.originalParams.watchSlidesProgress=!0)}),s("setTranslate",()=>{"coverflow"===e.params.effect&&(()=>{const{width:t,height:s,slides:a,slidesSizesGrid:i}=e,r=e.params.coverflowEffect,n=e.isHorizontal(),l=e.translate,o=n?t/2-l:s/2-l,d=n?r.rotate:-r.rotate,c=r.depth;for(let e=0,t=a.length;e<t;e+=1){const t=a.eq(e),s=i[e],l=(o-t[0].swiperSlideOffset-s/2)/s*r.modifier;let p=n?d*l:0,u=n?0:d*l,h=-c*Math.abs(l),m=r.stretch;"string"==typeof m&&-1!==m.indexOf("%")&&(m=parseFloat(r.stretch)/100*s);let f=n?0:m*l,g=n?m*l:0,v=1-(1-r.scale)*Math.abs(l);Math.abs(g)<.001&&(g=0),Math.abs(f)<.001&&(f=0),Math.abs(h)<.001&&(h=0),Math.abs(p)<.001&&(p=0),Math.abs(u)<.001&&(u=0),Math.abs(v)<.001&&(v=0);const w=`translate3d(${g}px,${f}px,${h}px) rotateX(${u}deg) rotateY(${p}deg) scale(${v})`;if(F(r,t).transform(w),t[0].style.zIndex=1-Math.abs(Math.round(l)),r.slideShadows){let e=n?t.find(".swiper-slide-shadow-left"):t.find(".swiper-slide-shadow-top"),s=n?t.find(".swiper-slide-shadow-right"):t.find(".swiper-slide-shadow-bottom");0===e.length&&(e=U(r,t,n?"left":"top")),0===s.length&&(s=U(r,t,n?"right":"bottom")),e.length&&(e[0].style.opacity=l>0?l:0),s.length&&(s[0].style.opacity=-l>0?-l:0)}}})()}),s("setTransition",(t,s)=>{"coverflow"===e.params.effect&&(t=>{const{transformEl:s}=e.params.coverflowEffect;(s?e.slides.find(s):e.slides).transition(t).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(t)})(s)})},function({swiper:e,extendParams:t,on:s}){t({customEffect:{transformEl:null,limitProgress:1,perspective:!0,prev:{translate:[0,0,0],rotate:[0,0,0],opacity:1,scale:1},next:{translate:[0,0,0],rotate:[0,0,0],opacity:1,scale:1}}});const a=e=>"string"==typeof e?e:e+"px";s("beforeInit",()=>{if("custom"!==e.params.effect)return;e.classNames.push(e.params.containerModifierClass+"custom"),e.params.customEffect.perspective&&e.classNames.push(e.params.containerModifierClass+"3d");const t={watchSlidesProgress:!0,virtualTranslate:!e.params.cssMode};Object.assign(e.params,t),Object.assign(e.originalParams,t)}),s("setTranslate",()=>{"custom"===e.params.effect&&(()=>{const{slides:t}=e,s=e.params.customEffect;for(let i=0;i<t.length;i+=1){const r=t.eq(i),n=r[0].progress,l=Math.min(Math.max(r[0].progress,-s.limitProgress),s.limitProgress),o=r[0].swiperSlideOffset,d=[e.params.cssMode?-o-e.translate:-o,0,0],c=[0,0,0];let p=!1;e.isHorizontal()||(d[1]=d[0],d[0]=0);let u={translate:[0,0,0],rotate:[0,0,0],scale:1,opacity:1};l<0?(u=s.next,p=!0):l>0&&(u=s.prev,p=!0),d.forEach((e,t)=>{d[t]=`calc(${e}px + (${a(u.translate[t])} * ${Math.abs(l)}))`}),c.forEach((e,t)=>{c[t]=u.rotate[t]*Math.abs(l)}),r[0].style.zIndex=-Math.abs(Math.round(n))+t.length;const h=d.join(", "),m=`rotateX(${c[0]}deg) rotateY(${c[1]}deg) rotateZ(${c[2]}deg)`,f=l<0?`scale(${1+(1-u.scale)*l})`:`scale(${1-(1-u.scale)*l})`,g=l<0?1+(1-u.opacity)*l:1-(1-u.opacity)*l,v=`translate3d(${h}) ${m} ${f}`;if(p&&u.shadow||!p){let e=r.find(".swiper-slide-shadow");0===e.length&&u.shadow&&(e=U(s,r)),e.length&&(e[0].style.opacity=Math.min(Math.max(Math.abs(l),0),1))}const w=F(s,r);w.transform(v).css({opacity:g}),u.origin&&w.css("transform-origin",u.origin)}})()}),s("setTransition",(t,s)=>{"custom"===e.params.effect&&(t=>{const{transformEl:s}=e.params.customEffect;(s?e.slides.find(s):e.slides).transition(t).find(".swiper-slide-shadow").transition(t),_({swiper:e,duration:t,transformEl:s})})(s)})},function({swiper:e,extendParams:t,on:s}){t({cardsEffect:{slideShadows:!0,transformEl:null}}),s("beforeInit",()=>{if("cards"!==e.params.effect)return;e.classNames.push(e.params.containerModifierClass+"cards"),e.classNames.push(e.params.containerModifierClass+"3d");const t={watchSlidesProgress:!0,virtualTranslate:!e.params.cssMode};Object.assign(e.params,t),Object.assign(e.originalParams,t)}),s("setTranslate",()=>{"cards"===e.params.effect&&(()=>{const{slides:t,activeIndex:s}=e,a=e.params.cardsEffect,{startTranslate:i,isTouched:r}=e.touchEventsData,n=e.translate;for(let l=0;l<t.length;l+=1){const o=t.eq(l),d=o[0].progress,c=Math.min(Math.max(d,-4),4);let p=o[0].swiperSlideOffset;e.params.centeredSlides&&!e.params.cssMode&&e.$wrapperEl.transform(`translateX(${e.minTranslate()}px)`),e.params.centeredSlides&&e.params.cssMode&&(p-=t[0].swiperSlideOffset);let u=e.params.cssMode?-p-e.translate:-p,h=0;const m=-100*Math.abs(c);let f=1,g=-2*c,v=8-.75*Math.abs(c);const w=(l===s||l===s-1)&&c>0&&c<1&&(r||e.params.cssMode)&&n<i,b=(l===s||l===s+1)&&c<0&&c>-1&&(r||e.params.cssMode)&&n>i;if(w||b){const e=(1-Math.abs((Math.abs(c)-.5)/.5))**.5;g+=-28*c*e,f+=-.5*e,v+=96*e,h=-25*e*Math.abs(c)+"%"}if(u=c<0?`calc(${u}px + (${v*Math.abs(c)}%))`:c>0?`calc(${u}px + (-${v*Math.abs(c)}%))`:u+"px",!e.isHorizontal()){const e=h;h=u,u=e}const x=`\n translate3d(${u}, ${h}, ${m}px)\n rotateZ(${g}deg)\n scale(${c<0?""+(1+(1-f)*c):""+(1-(1-f)*c)})\n `;if(a.slideShadows){let e=o.find(".swiper-slide-shadow");0===e.length&&(e=U(a,o)),e.length&&(e[0].style.opacity=Math.min(Math.max(Math.abs(c),0),1))}o[0].style.zIndex=-Math.abs(Math.round(d))+t.length,F(a,o).transform(x)}})()}),s("setTransition",(t,s)=>{"cards"===e.params.effect&&(t=>{const{transformEl:s}=e.params.cardsEffect;(s?e.slides.find(s):e.slides).transition(t).find(".swiper-slide-shadow").transition(t),_({swiper:e,duration:t,transformEl:s})})(s)})}];return X.use(K),X}));
dist/styles/backend/index-rtl.css ADDED
@@ -0,0 +1 @@
 
1
+ .zoom-instagram-widget .button-connect{color:#fff;border:1px solid #1c5380;border-radius:3px;background-color:#6f97b6;background-image:linear-gradient(to bottom, #6f97b6, #3f729b);background-position:50% 50%;box-shadow:0 1px 1px rgba(0,0,0,.1),inset -1px 0 0 rgba(255,255,255,.05),inset 1px 0 0 rgba(255,255,255,.05),inset 0 1px 0 rgba(255,255,255,.2);text-shadow:0 1px 1px #1c5380}.zoom-instagram-widget .button-connect:focus,.zoom-instagram-widget .button-connect:hover{border-color:#1c5380;color:#fff;background-image:linear-gradient(to bottom, #5D87A8, #3f729b)}.zoom-instagram-widget{background:#fff;padding:30px;border:1px solid #ddd;border-radius:3px;margin:30px 0 30px 10px !important;box-shadow:-1px 1px 2px rgba(0,0,0,.1);max-width:700px}.zoom-themes-link{border:1px solid #e2e9ec;padding:30px 30px 260px 30px;border-radius:3px;margin:30px 0 30px 0 !important;box-shadow:-1px 1px 2px rgba(0,0,0,.1);max-width:700px;text-align:center}.zoom-themes-link p{font-size:15px;line-height:1.6}.cta-button{text-align:center;text-decoration:none;color:#fff;background:#3ebd3e;padding:10px 15px;display:inline-block;border-radius:3px;box-shadow:0 -1px 1px rgba(0,0,0,.2) inset;border:1px solid #259425;font-size:16px;text-shadow:-1px 1px rgba(0,0,0,.3)}.cta-button:hover{background:#2a9b2a;color:#fff}#wpzoom-instagram-widget-settings_transient-lifetime-value{max-width:150px;float:right}#wpzoom-instagram-widget-settings_transient-lifetime-type{float:right;max-width:100px}.zoom-instagram-widget .wpzoom-instagram-widget-with-access-token-group{background-color:#fff6f6}.zoom-instagram-widget .wpzoom-instagram-widget-with-basic-access-token-group,.zoom-instagram-widget .wpzoom-instagram-widget-without-access-token-group{background-color:#e0f0e3}.zoom-instagram-widget .wpzoom-instagram-widget-with-basic-access-token-group th,.zoom-instagram-widget .wpzoom-instagram-widget-without-access-token-group th{padding-right:10px}.zoom-instagram-widget .label-wrap input[type=radio]:checked+label[for=wpzoom-instagram-widget-settings_with-basic-access-token],.zoom-instagram-widget .label-wrap input[type=radio]:checked+label[for=wpzoom-instagram-widget-settings_without-access-token]{background-color:#e0f0e3}.zoom-instagram-widget .label-wrap input[type=radio]:checked+label[for=wpzoom-instagram-widget-settings_with-access-token]{background-color:#fff6f6}.zoom-instagram-widget .wpzoom-instagram-widget-settings-request-type-wrapper{display:flex;flex-direction:column}.zoom-instagram-widget .wpzoom-instagram-widget-settings-request-type-wrapper .label-wrap{display:flex;align-items:center}.zoom-instagram-widget .wpzoom-instagram-widget-settings-request-type-wrapper .label-wrap input[type=radio]{z-index:2}.zoom-instagram-widget .wpzoom-instagram-widget-settings-request-type-wrapper .label-wrap label{padding:10px;width:100%;margin-right:-30px;padding-right:40px;z-index:1}.zoom-instagram-widget form h2{border-top:2px solid #eee;padding-top:40px}.zoom-instagram-widget .wpzoom-instagram-widget-with-token-group>td{padding-left:0px}.zoom-instagram-user-avatar-media-uploader .remove-avatar{margin:6px 20px;color:#a00}.zoom-instagram-user-avatar-media-uploader .file-wrapper{margin-top:10px}#wpzoom-instagram-widget-settings-user-info-biography{width:100%;min-height:100px}.wpz-insta-admin.post-php #wpbody-content{padding-bottom:0}.wpz-insta-admin.post-php #wpbody-content>.wrap #poststuff #post-body #post-body-content .wpz-insta_tabs-content .wpz-insta_sidebar .wpz-insta_sidebar-left .wpz-insta_sidebar-left-section,.wpz-insta-admin.post-php #wpbody-content>.wrap #poststuff #post-body #post-body-content .wpz-insta_tabs-content .wpz-insta_sidebar .wpz-insta_widget-preview .wpz-insta_widget-preview-view{max-height:60vh;min-height:200px}.wpz-insta-admin #wpfooter{position:relative}.wpz-insta-admin #wpbody-content{padding-bottom:165px}.wpz-insta-admin #wpbody-content>.notice{display:none !important}.wpz-insta-admin #wpbody-content .urgent{color:#ec2439}.wpz-insta-admin #wpbody-content .pro-only{position:absolute;top:0;left:0;line-height:1.5;color:#fff;background:#f57c00;padding:0 4px;border-radius:2px;transform:translate(-50%, -50%)}.wpz-insta-admin #wpbody-content>.wrap>h1.wp-heading-inline,.wpz-insta-admin #wpbody-content>.wrap>.page-title-action,.wpz-insta-admin #wpbody-content>.wrap>.wp-header-end,.wpz-insta-admin #wpbody-content>.wrap>.notice,.wpz-insta-admin #wpbody-content>.wrap>.wpz-insta_settings-header>.notice,.wpz-insta-admin #wpbody-content>.wrap>.wpz-insta-wrap~#posts-filter>.search-box,.wpz-insta-admin #wpbody-content>.wrap>.wpz-insta-wrap~#posts-filter>.tablenav,.wpz-insta-admin #wpbody-content>.wrap>.wpz-insta-wrap~#posts-filter>.wp-list-table>tfoot,.wpz-insta-admin #wpbody-content>.wrap #titlediv{display:none !important}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-notices .notice{display:block !important}.wpz-insta-admin #wpbody-content>.wrap input,.wpz-insta-admin #wpbody-content>.wrap textarea,.wpz-insta-admin #wpbody-content>.wrap select{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-weight:normal;color:#242628;border:1px solid #9ca2a7;border-radius:2px;box-shadow:none;transition:all .3s ease}.wpz-insta-admin #wpbody-content>.wrap input:hover,.wpz-insta-admin #wpbody-content>.wrap input:focus,.wpz-insta-admin #wpbody-content>.wrap textarea:hover,.wpz-insta-admin #wpbody-content>.wrap textarea:focus,.wpz-insta-admin #wpbody-content>.wrap select:hover,.wpz-insta-admin #wpbody-content>.wrap select:focus{color:#242628;border-color:#3496ff}.wpz-insta-admin #wpbody-content>.wrap input{color:#242628}.wpz-insta-admin #wpbody-content>.wrap input.wpz-insta_input{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif}.wpz-insta-admin #wpbody-content>.wrap input.wpz-insta_input-nobg{background:transparent}.wpz-insta-admin #wpbody-content>.wrap input[type=checkbox]{display:inline-flex;align-items:center;justify-content:center;color:#fff;background-color:#fff;height:1.25rem;width:1.25rem;border:none;border-radius:2px;box-shadow:inset 0 0 0 1px #81909c;transition:all .3s ease}.wpz-insta-admin #wpbody-content>.wrap input[type=checkbox]:hover{background-color:#ddd !important;box-shadow:inset 0 0 0 1px #81909c !important}.wpz-insta-admin #wpbody-content>.wrap input[type=checkbox]:hover:checked{background-color:#70b5fe !important;box-shadow:inset 0 0 0 1px transparent !important}.wpz-insta-admin #wpbody-content>.wrap input[type=checkbox]:focus{outline:none;box-shadow:inset 0 0 0 1px #81909c}.wpz-insta-admin #wpbody-content>.wrap input[type=checkbox]:focus:checked{box-shadow:inset 0 0 0 1px transparent}.wpz-insta-admin #wpbody-content>.wrap input[type=checkbox]::before{transition:all .3s ease}.wpz-insta-admin #wpbody-content>.wrap input[type=checkbox]:checked{background-color:#3496ff;box-shadow:inset 0 0 0 1px transparent}.wpz-insta-admin #wpbody-content>.wrap input[type=checkbox]:checked::before{content:url("data:image/svg+xml;utf8,%3Csvg%20width%3D%2214%22%20height%3D%2212%22%20viewBox%3D%220%200%2014%2012%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M12.779%201.00004L5.3618%2010.9753L1.06089%207.77735%22%20stroke%3D%22white%22%20stroke-width%3D%221.2%22%2F%3E%3C%2Fsvg%3E%0A");display:block;float:none;height:auto;width:auto;margin:0}.wpz-insta-admin #wpbody-content>.wrap .disabled,.wpz-insta-admin #wpbody-content>.wrap .disable{pointer-events:none}.wpz-insta-admin #wpbody-content>.wrap .disable{opacity:.5}.wpz-insta-admin #wpbody-content>.wrap .help{display:inline-block;cursor:help;font-size:20px;vertical-align:text-bottom;height:16px;width:16px;transition:all .2s ease;position:relative}.wpz-insta-admin #wpbody-content>.wrap .wide-text-field{padding:0;margin:0 0 2em}.wpz-insta-admin #wpbody-content>.wrap .wide-text-field label>strong{font-size:15px !important}.wpz-insta-admin #wpbody-content>.wrap .wide-text-field label>em{color:rgba(36,38,40,.8)}.wpz-insta-admin #wpbody-content>.wrap .wide-text-field input[type=text]{display:block;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:15px;font-weight:normal;line-height:40px;color:#242628;width:100%;min-height:40px;padding:0 10px;box-sizing:border-box;margin:.7em 0}.wpz-insta-admin #wpbody-content>.wrap .submit-button{padding:0;margin:0}.wpz-insta-admin #wpbody-content>.wrap .button.disabled{pointer-events:none !important}.wpz-insta-admin #wpbody-content>.wrap .button:not(.wp-color-result),.wpz-insta-admin #wpbody-content>.wrap .button-primary,.wpz-insta-admin #wpbody-content>.wrap .button-secondary{display:inline-flex;align-items:center;justify-content:center;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:13px;font-weight:600;line-height:35px;min-height:35px;padding:0 12px;border:0;border-radius:2px;transition:all .2s ease}.wpz-insta-admin #wpbody-content>.wrap .button:not(.wp-color-result).button-large,.wpz-insta-admin #wpbody-content>.wrap .button-primary.button-large,.wpz-insta-admin #wpbody-content>.wrap .button-secondary.button-large{min-height:48px;padding:0 40px;margin:0}.wpz-insta-admin #wpbody-content>.wrap .button.wp-color-result{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:13px}.wpz-insta-admin #wpbody-content>.wrap .button-primary{color:#fff;background:#3496ff}.wpz-insta-admin #wpbody-content>.wrap .button-primary:hover,.wpz-insta-admin #wpbody-content>.wrap .button-primary:active{color:#fff;background:#70b5fe}.wpz-insta-admin #wpbody-content>.wrap .button-primary.button-positive{color:#fff;background:#2b6}.wpz-insta-admin #wpbody-content>.wrap .button-primary.button-positive:hover,.wpz-insta-admin #wpbody-content>.wrap .button-primary.button-positive:active{background:#3bdb82}.wpz-insta-admin #wpbody-content>.wrap .button-primary.button-negative{color:#fff;background:#ec2439}.wpz-insta-admin #wpbody-content>.wrap .button-primary.button-negative:hover,.wpz-insta-admin #wpbody-content>.wrap .button-primary.button-negative:active{background:#f05161}.wpz-insta-admin #wpbody-content>.wrap .button-secondary{color:#81909c;background:#fff;box-shadow:inset 0 0 0 1px #ddd}.wpz-insta-admin #wpbody-content>.wrap .button-secondary:hover,.wpz-insta-admin #wpbody-content>.wrap .button-secondary:active{background:#ddd}.wpz-insta-admin #wpbody-content>.wrap .button-secondary.button-positive{color:#2b6;background:#fff;box-shadow:inset 0 0 0 1px #2b6}.wpz-insta-admin #wpbody-content>.wrap .button-secondary.button-positive:hover,.wpz-insta-admin #wpbody-content>.wrap .button-secondary.button-positive:active{color:#242628;background:#fff;box-shadow:inset 0 0 0 1px #242628}.wpz-insta-admin #wpbody-content>.wrap .button-secondary.button-negative{color:#ec2439;background:#fff;box-shadow:inset 0 0 0 1px #ec2439}.wpz-insta-admin #wpbody-content>.wrap .button-secondary.button-negative:hover,.wpz-insta-admin #wpbody-content>.wrap .button-secondary.button-negative:active{color:#242628;background:#fff;box-shadow:inset 0 0 0 1px #242628}.wpz-insta-admin #wpbody-content>.wrap .button-link{color:#3496ff;transition:all .2s ease}.wpz-insta-admin #wpbody-content>.wrap .button-link.wpz-insta_button-link{font-weight:normal;line-height:1;min-height:0;padding:0;margin:1.5em 0 0}.wpz-insta-admin #wpbody-content>.wrap .button-link.wpz-insta_button-link:hover,.wpz-insta-admin #wpbody-content>.wrap .button-link.wpz-insta_button-link:active,.wpz-insta-admin #wpbody-content>.wrap .button-link.wpz-insta_button-link:focus{color:#70b5fe;background:transparent}.wpz-insta-admin #wpbody-content>.wrap .button-link:hover,.wpz-insta-admin #wpbody-content>.wrap .button-link:active,.wpz-insta-admin #wpbody-content>.wrap .button-link:focus{color:#70b5fe}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_suffixed-number-input{display:flex;gap:12px}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_suffixed-number-input>*{margin:0}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_suffixed-number-input>*:first-child{flex-grow:1}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_profile-photo{display:block;height:100px;width:100px;border-radius:50%}.wpz-insta-admin #wpbody-content>.wrap a{text-decoration:none;color:#3496ff;transition:all .2s ease}.wpz-insta-admin #wpbody-content>.wrap a:hover,.wpz-insta-admin #wpbody-content>.wrap a:active,.wpz-insta-admin #wpbody-content>.wrap a:focus{text-decoration:none;color:#70b5fe}.wpz-insta-admin #wpbody-content>.wrap a.linked{border-bottom:1px solid rgba(52,150,255,.3)}.wpz-insta-admin #wpbody-content>.wrap a.linked:hover,.wpz-insta-admin #wpbody-content>.wrap a.linked:active,.wpz-insta-admin #wpbody-content>.wrap a.linked:focus{border-bottom-color:rgba(112,181,254,.3)}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_back-button{display:inline-flex;align-items:center;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:14px;font-weight:600;text-decoration:none;color:#242628;margin:10px 0 0;transition:all .2s ease}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_back-button:hover,.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_back-button:active{color:#3496ff}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_back-button:hover svg,.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_back-button:active svg{color:#3496ff;fill:#3496ff}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_back-button svg{color:#242628;fill:#242628;margin:0 0 0 6px;transition:all .2s ease}.wpz-insta-admin #wpbody-content>.wrap .wpzinsta-pointer{position:absolute;top:calc(100% + 3px);right:50%;z-index:1000;cursor:default;font-size:14px;color:#fff;background:#3496ff;width:-webkit-max-content;width:-moz-max-content;width:max-content;padding:4px 10px;border-radius:3px;box-shadow:-1px 1px 2px rgba(0,0,0,.3);transform:translateX(50%);-webkit-animation-name:bounceFade;animation-name:bounceFade;-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-fill-mode:both;animation-fill-mode:both}.wpz-insta-admin #wpbody-content>.wrap .wpzinsta-pointer>i{position:absolute;top:-10px;right:50%;pointer-events:none;height:10px;width:20px;transform:translateX(50%);overflow:hidden}.wpz-insta-admin #wpbody-content>.wrap .wpzinsta-pointer>i::before{content:"";position:absolute;right:50%;bottom:-4px;pointer-events:initial;background:#3496ff;height:8px;width:8px;box-shadow:0 0 2px rgba(0,0,0,.3);transform:translateX(50%) rotateZ(-45deg)}.wpz-insta-admin #wpbody-content>.wrap .fit-max-content{max-width:-webkit-max-content;max-width:-moz-max-content;max-width:max-content}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_settings-add-new a,.wpz-insta-admin #wpbody-content>.wrap #wpz-insta_tabs-config-cnnct .wpz-insta_tabs-config-connect-add{position:relative}.wpz-insta-admin #wpbody-content>.wrap .wp-picker-container{display:inline-flex;position:relative}.wpz-insta-admin #wpbody-content>.wrap .wp-picker-container:not(:focus-within) .wp-picker-holder{pointer-events:none;opacity:0}.wpz-insta-admin #wpbody-content>.wrap .wp-picker-container .wp-color-result{position:absolute;top:50%;right:5px;pointer-events:none;height:20px;min-height:0;width:20px;padding:0;border-radius:4px;margin:0;transform:translateY(-50%)}.wpz-insta-admin #wpbody-content>.wrap .wp-picker-container .wp-color-result:active{transform:translateY(-50%) !important}.wpz-insta-admin #wpbody-content>.wrap .wp-picker-container .wp-color-result .wp-color-result-text{display:none}.wpz-insta-admin #wpbody-content>.wrap .wp-picker-container .wp-picker-input-wrap{display:block}.wpz-insta-admin #wpbody-content>.wrap .wp-picker-container .wp-picker-input-wrap input{line-height:2;width:auto;padding-right:30px}.wpz-insta-admin #wpbody-content>.wrap .wp-picker-container .wp-picker-input-wrap .wp-picker-clear{display:none}.wpz-insta-admin #wpbody-content>.wrap .wp-picker-container .wp-picker-holder{display:block;position:fixed;top:100%;right:0;z-index:999;transition:all .2s ease}.wpz-insta-admin #wpbody-content>.wrap .wp-picker-container .wp-picker-holder .iris-picker{display:block !important}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_two-columns{display:flex;align-items:center;list-style:none;padding:0;margin:1.5em 0 0}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_two-columns.wpz-insta_two-columns-left-small{align-items:flex-start;gap:30px;margin-top:0}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_two-columns.wpz-insta_two-columns-left-small>*{text-align:right !important}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_two-columns.wpz-insta_two-columns-left-small>*:first-child{flex-grow:0;width:auto}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_two-columns>*{flex-grow:1;list-style:none;width:100%;padding:0;margin:0}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_two-columns>*:first-child{text-align:right}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_two-columns>*:last-child{text-align:left}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_notice{display:flex;align-items:center;font-size:12px;padding:0;margin:1.5em 0 0 !important}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_notice::before{content:"";display:block;background-image:url("data:image/svg+xml,%3Csvg width='14' height='14' viewBox='0 0 14 14' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M6.3 3.5H7.7V4.9H6.3V3.5ZM6.3 6.3H7.7V10.5H6.3V6.3ZM7 0C3.136 0 0 3.136 0 7C0 10.864 3.136 14 7 14C10.864 14 14 10.864 14 7C14 3.136 10.864 0 7 0ZM7 12.6C3.913 12.6 1.4 10.087 1.4 7C1.4 3.913 3.913 1.4 7 1.4C10.087 1.4 12.6 3.913 12.6 7C12.6 10.087 10.087 12.6 7 12.6Z'/%3E%3C/svg%3E");height:14px;width:14px;margin:0 0 0 .8em}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_notice p{padding:0;margin:0}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_settings-header{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;color:#242628;background:#fff;padding:15px 30px 0;border:1px solid #ddd;border-radius:3px;box-shadow:-1px 1px 2px rgba(0,0,0,.1);margin:3em 0}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_settings-header #major-publishing-actions{background:transparent;padding:0 0 1em;border:0}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_settings-header #major-publishing-actions #publishing-action{display:flex;align-items:center;gap:20px;float:none}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_settings-header #major-publishing-actions #publishing-action .spinner{margin:0}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_settings-header.wpz-insta-wrap-sides{display:flex;align-items:center;margin-top:1em}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_settings-header.wpz-insta-wrap-sides .wpz-insta-wrap-left{flex-grow:1}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_settings-header .wpz-insta_settings-main-title{font-size:24px;font-weight:600;line-height:29px;padding:0;margin:0}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_settings-header .wpz-insta_settings-main-title small{font-size:14px;font-weight:normal;line-height:17px;color:#81909c}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_settings-header .wpz-insta_settings-main-title small a{text-decoration:none;color:#81909c;transition:all .2s ease}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_settings-header .wpz-insta_settings-main-title small a:hover,.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_settings-header .wpz-insta_settings-main-title small a:active{color:#3496ff}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_settings-header .wpz-insta_settings-main-title .pro{color:#f57c00}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_settings-header .wpz-insta_settings-main-title #title{position:relative;font-size:24px;font-weight:600;text-overflow:ellipsis;line-height:29px;background:transparent url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M3 17.2505V21.0005H6.75L17.81 9.94055L14.06 6.19055L3 17.2505ZM20.71 7.04055C21.1 6.65055 21.1 6.02055 20.71 5.63055L18.37 3.29055C17.98 2.90055 17.35 2.90055 16.96 3.29055L15.13 5.12055L18.88 8.87055L20.71 7.04055Z' fill='%2381909C'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:center left;min-width:100px;max-width:82%;padding:0 0 0 24px;border:0;outline:none;margin:0;overflow:hidden;box-shadow:0 0 0 1px transparent;transition:all .2s ease}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_settings-header .wpz-insta_settings-main-title #title:hover,.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_settings-header .wpz-insta_settings-main-title #title:focus{box-shadow:0 0 0 1px #3496ff}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_settings-header .wpz-insta_settings-sub-title{font-size:18px;font-weight:normal;line-height:22px;color:#242628;margin:16px 0}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_settings-header .wpz-insta_settings-main-nav{font-size:18px;font-weight:normal;line-height:22px;padding:0;margin:0}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_settings-header .wpz-insta_settings-main-nav ul{display:flex;list-style:none;gap:40px;padding:0;margin:0}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_settings-header .wpz-insta_settings-main-nav ul li{position:relative;list-style:none;padding:0;margin:0;transition:all .2s ease}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_settings-header .wpz-insta_settings-main-nav ul li.active a{cursor:default;pointer-events:none}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_settings-header .wpz-insta_settings-main-nav ul li.active a::after{transform:translateY(0)}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_settings-header .wpz-insta_settings-main-nav ul li a{display:block;position:relative;text-decoration:none;color:#242628;outline:none;padding:16px 0;box-shadow:none;overflow:hidden;transition:all .2s ease}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_settings-header .wpz-insta_settings-main-nav ul li a:active,.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_settings-header .wpz-insta_settings-main-nav ul li a:focus{outline:none;box-shadow:none}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_settings-header .wpz-insta_settings-main-nav ul li a:hover{color:#3496ff}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_settings-header .wpz-insta_settings-main-nav ul li a::after{content:"";position:absolute;right:0;left:0;bottom:0;background:#3496ff;height:6px;border-radius:2px 2px 0 0;transform:translateY(100%);transition:all .2s ease}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap.with-bg{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:14px;color:#242628;background:#fff;padding:25px 30px;border:1px solid #ddd;border-radius:3px;box-shadow:-1px 1px 2px rgba(0,0,0,.1)}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap.with-bg *:not(h2):not(small){font-size:14px}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter{margin:2em 0 0}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;color:#242628;background:#fff;padding:15px 30px;border:1px solid #ddd;border-radius:3px;box-shadow:-1px 1px 2px rgba(0,0,0,.1)}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table thead th,.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table thead td{border-bottom:1px solid #000}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table thead th.column-wpz-insta_account-photo,.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table thead th.column-wpz-insta_account-bio,.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table thead th.column-wpz-insta_account-token,.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table thead td.column-wpz-insta_account-photo,.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table thead td.column-wpz-insta_account-bio,.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table thead td.column-wpz-insta_account-token{display:none}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table thead th{font-weight:600;padding-right:0;padding-left:0}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table thead th.column-wpz-insta_actions{text-align:left}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table thead th a{color:#000;padding:14px 0;transition:all .2s ease}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table thead th a:hover,.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table thead th a:active{color:#3496ff}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody tr{display:table-row !important;position:relative;background:transparent}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody tr:first-child th,.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody tr:first-child td,.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody tr.inline-edit-row th,.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody tr.inline-edit-row td{border-top:none}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody tr.inline-edit-row td{padding-top:0}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody th,.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody td{vertical-align:middle;padding:20px 0;border-top:1px solid #ddd}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody th.column-wpz-insta_account-photo,.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody th.column-wpz-insta_account-bio,.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody th.column-wpz-insta_account-token,.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody td.column-wpz-insta_account-photo,.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody td.column-wpz-insta_account-bio,.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody td.column-wpz-insta_account-token{display:none}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody th.check-column{padding:0}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody td>*{margin:0}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody td a:not(.button){color:#3496ff;transition:all .2s ease}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody td a:not(.button):hover,.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody td a:not(.button):active{color:#000}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody td .row-actions{display:none}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody td .wpz-insta_quick-edit{overflow:hidden;-webkit-animation-name:slidedown;animation-name:slidedown;-webkit-animation-duration:1s;animation-duration:1s}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody td .wpz-insta_quick-edit .wpz-insta_quick-edit-columns{display:flex;list-style:none;padding:0;margin:0}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody td .wpz-insta_quick-edit .wpz-insta_quick-edit-columns>li{flex-grow:1;list-style:none;padding:0;margin:0}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody td .wpz-insta_quick-edit .wpz-insta_quick-edit-columns>li div{display:block;margin:0 0 10px}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody td .wpz-insta_quick-edit .wpz-insta_quick-edit-columns>li div:last-child{margin-bottom:0}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody td .wpz-insta_quick-edit .wpz-insta_quick-edit-columns>li strong:first-child,.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody td .wpz-insta_quick-edit .wpz-insta_quick-edit-columns>li label>strong:first-child{display:inline-block;margin:0 0 5px}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody td .wpz-insta_quick-edit .wpz-insta_quick-edit-columns>li input:not(.widefat),.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody td .wpz-insta_quick-edit .wpz-insta_quick-edit-columns>li textarea{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;width:60%}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody td .inline-edit-save{position:absolute;top:-10px;left:0;padding:0;transform:translateY(-100%)}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody td .inline-edit-save .button{float:none}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody td .inline-edit-save .button.cancel{color:#3496ff;background:transparent;box-shadow:inset 0 0 0 1px #3496ff;margin:0 0 0 1em}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody td .inline-edit-save .button.cancel:hover,.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody td .inline-edit-save .button.cancel:active,.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody td .inline-edit-save .button.cancel:focus{color:#000;box-shadow:inset 0 0 0 1px #000}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody td .inline-edit-save .spinner{float:right}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody .column-title,.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody .column-wpz-insta_account{width:50%}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody .column-wpz-insta_account a{color:#242628}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody .column-wpz-insta_account a:hover,.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody .column-wpz-insta_account a:active{color:#3496ff}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody .column-wpz-insta_actions{text-align:left;width:5%}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody .column-wpz-insta_actions strong{position:relative;cursor:pointer;font-size:20px;font-weight:600;text-align:left;white-space:nowrap;transition:all .2s ease}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody .column-wpz-insta_actions strong:hover,.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody .column-wpz-insta_actions strong:active{color:#3496ff}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody .wpz-insta_actions-menu{display:inline-block;position:relative;text-align:left}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody .wpz-insta_actions-menu:hover .wpz-insta_hidden{pointer-events:auto;opacity:1}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody .wpz-insta_actions-menu:hover strong{color:#3496ff}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody .wpz-insta_actions-menu:hover strong::after{content:"";position:absolute;right:-50px;left:0;bottom:-15px;height:25px}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody .wpz-insta_actions-menu .wpz-insta_hidden{position:absolute;left:0;bottom:-10px;z-index:999;pointer-events:none;text-align:right;background:#fff;min-width:200px;opacity:0;padding:0;border-radius:3px;margin:0;box-shadow:-1px 4px 8px rgba(0,0,0,.1);transform:translate(0%, 100%);transition:opacity .2s ease}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody .wpz-insta_actions-menu .wpz-insta_hidden li{white-space:nowrap;margin:0;transition:all .2s ease}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody .wpz-insta_actions-menu .wpz-insta_hidden li:first-child a,.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody .wpz-insta_actions-menu .wpz-insta_hidden li:first-child button{padding-top:10px}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody .wpz-insta_actions-menu .wpz-insta_hidden li:last-child a,.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody .wpz-insta_actions-menu .wpz-insta_hidden li:last-child button{padding-bottom:10px}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody .wpz-insta_actions-menu .wpz-insta_hidden li.wpz-insta_actions-menu_divider{pointer-events:none;background:#ddd;height:1px;padding:0;margin:5px 20px}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody .wpz-insta_actions-menu .wpz-insta_hidden li.wpz-insta_actions-menu_delete a:hover{color:#ec2439}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody .wpz-insta_actions-menu .wpz-insta_hidden li a,.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody .wpz-insta_actions-menu .wpz-insta_hidden li button{display:block;white-space:nowrap;color:#242628;width:100%;padding:7px 20px;margin:0;box-sizing:border-box;transition:all .2s ease}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody .wpz-insta_actions-menu .wpz-insta_hidden li a:hover,.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody .wpz-insta_actions-menu .wpz-insta_hidden li button:hover{color:#3496ff}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody .inline-edit-col-left,.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody .inline-edit-col-right{display:none}.wpz-insta-admin #wpbody-content>.wrap #poststuff{padding:0;margin:0}.wpz-insta-admin #wpbody-content>.wrap #poststuff #post-body{margin:0}.wpz-insta-admin #wpbody-content>.wrap #poststuff #post-body #post-body-content{float:none;margin:0}.wpz-insta-admin #wpbody-content>.wrap #poststuff #post-body .postbox-container{display:none}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_tabs-content{display:grid}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_tabs-content *{pointer-events:inherit}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_tabs-content>*{grid-column:1;grid-row:1;align-self:start}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_tabs-content>*:not(.active){pointer-events:none;opacity:0}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_tabs-content>*:not(.active) *{pointer-events:none !important}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar{display:flex;gap:20px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;color:#242628}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar.hide{pointer-events:none}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar:not(.show-pro) .wpz-insta_pro-only{display:none}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar input,.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar textarea,.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar select{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:14px}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar .wpz-insta_sidebar-left,.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar .wpz-insta_sidebar-right{background:#fff;border:1px solid #ddd;border-radius:3px;box-shadow:-1px 1px 2px rgba(0,0,0,.1)}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar .wpz-insta_sidebar-left{display:grid;grid-template-rows:auto 1fr;flex-basis:28%}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar .wpz-insta_sidebar-left.is-pro .wpz-insta_sidebar-left-section{max-height:70vh !important}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar .wpz-insta_sidebar-left .wpz-insta_sidebar-left-section-head{display:flex;align-items:center;grid-column:1;grid-row:1;background:#fafafa;min-height:30px;padding:20px;border-bottom:1px solid #ddd}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar .wpz-insta_sidebar-left .wpz-insta_sidebar-left-section{grid-column:1;grid-row:2;align-self:start;transition:all .3s ease;overflow-x:hidden;overflow-y:auto}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar .wpz-insta_sidebar-left .wpz-insta_sidebar-left-section:not(.active){pointer-events:none;opacity:0}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar .wpz-insta_sidebar-right{flex-grow:1;position:relative}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar .wpz-insta_sidebar-right.is-loading{transition:all .3s ease}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar .wpz-insta_sidebar-right.is-loading.hide-loading::before{opacity:0}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar .wpz-insta_sidebar-right.is-loading::before{content:"";position:absolute;top:300px;right:50%;z-index:1;background-image:url("data:image/svg+xml,%3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' viewBox='0 0 50 50' xml:space='preserve'%3E%3Cpath fill='%233496ff' d='M43.935,25.145c0-10.318-8.364-18.683-18.683-18.683c-10.318,0-18.683,8.365-18.683,18.683h4.068c0-8.071,6.543-14.615,14.615-14.615c8.072,0,14.615,6.543,14.615,14.615H43.935z'%3E%3CanimateTransform attributeType='xml' attributeName='transform' type='rotate' from='0 25 25' to='360 25 25' dur='0.6s' repeatCount='indefinite'/%3E%3C/path%3E%3C/svg%3E");background-size:contain;height:64px;width:64px;opacity:1;transform:translateX(50%);transition:all .3s ease}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section-big-title{font-size:18px;font-weight:600;margin:30px 20px}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section{padding:30px 0 0;border-top:1px solid #ddd;margin:30px 20px 20px}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section:first-child,.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section.no-top-border{padding-top:0;border-top:0;margin-top:20px}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_sidebar-section-title{font-size:18px;font-weight:600;margin:0 0 15px}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_sidebar-section-title.smaller-title{font-size:14px}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_sidebar-section-description{font-size:14px;font-weight:normal;margin:0 0 20px}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_sidebar-section-description:last-child{margin-bottom:0}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section p{font-size:14px}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section ul li,.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section ol li{margin-bottom:1em}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_text-btn-aligned{display:flex;align-items:stretch;gap:15px;width:100%}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_text-btn-aligned>input{flex-grow:1;margin:0}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_shortcode,.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_shortcode-copy-btn{display:flex;align-items:center;font-size:14px;line-height:2}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_shortcode{background:transparent;border:1px solid #ddd}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_shortcode-copy-btn{display:grid;text-align:center;color:#3496ff;background:transparent;border:1px solid #3496ff;box-shadow:none;transition:all .3s ease}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_shortcode-copy-btn:hover{color:#fff;background:#3496ff}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_shortcode-copy-btn.success{color:#fff;background:#2b6;border-color:#2b6}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_shortcode-copy-btn.success .wpz-insta_shortcode-copy-btn-text-normal{opacity:0}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_shortcode-copy-btn.success .wpz-insta_shortcode-copy-btn-text-success{opacity:1}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_shortcode-copy-btn .wpz-insta_shortcode-copy-btn-text-normal,.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_shortcode-copy-btn .wpz-insta_shortcode-copy-btn-text-success{grid-column:1;grid-row:1;transition:all .3s ease}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_shortcode-copy-btn .wpz-insta_shortcode-copy-btn-text-normal{opacity:1}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_shortcode-copy-btn .wpz-insta_shortcode-copy-btn-text-success{opacity:0}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_feed-user-select.is-set .wpz-insta_feed-user-select-input .wpz-insta_feed-user-select-button-wrap .wpz-insta_feed-user-select-button-highlight{display:none}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_feed-user-select.is-set .wpz-insta_feed-user-select-input .wpz-insta_feed-user-select-button-wrap .wpz-insta_feed-user-select-button{pointer-events:none;opacity:0}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_feed-user-select.is-set .wpz-insta_feed-user-select-edit-link{display:inline-block}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_feed-user-select:not(.is-set) .wpz-insta_feed-user-select-input .wpz-insta_feed-user-select-info{pointer-events:none;opacity:0}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_feed-user-select .wpz-insta_feed-user-select-input{display:grid;background:#eee;border:1px solid #9ca2a7;border-radius:4px}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_feed-user-select .wpz-insta_feed-user-select-input .wpz-insta_feed-user-select-info{display:flex;align-items:center;justify-content:space-between;grid-column:1;grid-row:1;margin:15px;transition:all .3s ease}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_feed-user-select .wpz-insta_feed-user-select-input .wpz-insta_feed-user-select-info .wpz-insta_feed-user-select-info-left .wpz-insta_feed-user-select-info-name{font-size:14px;font-weight:600;padding:0;margin:0}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_feed-user-select .wpz-insta_feed-user-select-input .wpz-insta_feed-user-select-info .wpz-insta_feed-user-select-info-left .wpz-insta_feed-user-select-info-type{font-size:12px;color:#81909c;padding:0;margin:0}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_feed-user-select .wpz-insta_feed-user-select-input .wpz-insta_feed-user-select-info .wpz-insta_feed-user-remove-button{font-size:13px;font-weight:600;color:#3496ff;background:transparent;border:1px solid #3496ff;box-shadow:none}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_feed-user-select .wpz-insta_feed-user-select-input .wpz-insta_feed-user-select-info .wpz-insta_feed-user-remove-button:hover{color:#ec2439;border-color:#ec2439}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_feed-user-select .wpz-insta_feed-user-select-input .wpz-insta_feed-user-select-button-wrap{position:relative;display:flex;align-items:stretch;justify-content:stretch;grid-column:1;grid-row:1;pointer-events:none}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_feed-user-select .wpz-insta_feed-user-select-input .wpz-insta_feed-user-select-button-wrap .wpz-insta_feed-user-select-button-highlight{display:block;position:absolute;top:-2px;right:-2px;left:-2px;bottom:-2px;z-index:1;pointer-events:none;border:0;border-radius:6px;box-shadow:inset 0 0 1px 1px #3496ff,0 0 1px 1px #3496ff;transition:all .3s ease;-webkit-animation:highlighting .8s infinite;animation:highlighting .8s infinite}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_feed-user-select .wpz-insta_feed-user-select-input .wpz-insta_feed-user-select-button-wrap .wpz-insta_feed-user-select-button{display:flex;flex-grow:1;position:relative;z-index:2;pointer-events:all;font-size:14px;font-weight:600;color:#242628;background:#eee;opacity:1;border:0;border-radius:4px;box-shadow:none;transition:all .3s ease}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_feed-user-select .wpz-insta_feed-user-select-input .wpz-insta_feed-user-select-button-wrap .wpz-insta_feed-user-select-button:hover{color:#fff;background:#3496ff}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_feed-user-select .wpz-insta_feed-user-select-edit-link{display:none;margin:20px 0 0}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_feed-layout{display:flex;align-items:end;gap:10px;max-height:999em;margin:0 0 20px}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_feed-layout .wpz-insta_feed-layout-pro{display:flex;gap:15px;padding:10px;border-radius:4px;box-shadow:0 0 0 2px #f57c00;max-width:76%;box-sizing:border-box}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_feed-layout .wpz-insta_feed-layout-pro legend{font-size:13px;font-weight:600;color:#fff;background:#f57c00;padding:0 5px;margin:0 auto;border-radius:2px;box-shadow:none}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_feed-layout .wpz-insta_feed-layout-pro .wpz-insta_feed-layout-option{pointer-events:none;opacity:.75}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_feed-layout>.wpz-insta_feed-layout-option{margin-bottom:10px !important;max-width:21%}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_feed-layout .wpz-insta_feed-layout-option{display:block;background:transparent;padding:0;border:0;box-shadow:none;outline:none;margin:0;transition:all .3s ease}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_feed-layout .wpz-insta_feed-layout-option.disabled{pointer-events:none;opacity:.4}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_feed-layout .wpz-insta_feed-layout-option:hover svg{color:#9ca2a7;fill:#9ca2a7}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_feed-layout .wpz-insta_feed-layout-option input{display:none}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_feed-layout .wpz-insta_feed-layout-option svg{display:block;color:#81909c;fill:#81909c;max-width:100%;height:auto;transition:all .3s ease}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_feed-layout .wpz-insta_feed-layout-option input:checked~svg{color:#3496ff;fill:#3496ff}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_feed-layout-etc,.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_feed-general,.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_feed-profile-general,.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_feed-load-more-general{font-size:14px}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_table{display:flex;flex-direction:column;gap:20px;width:100%}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_table .wpz-insta_table-row{display:flex;align-items:center;width:100%}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_table .wpz-insta_table-row.wpz-insta_table-row-full{flex-direction:column;align-items:stretch}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_table .wpz-insta_table-row.wpz-insta_table-row-full .wpz-insta_table-cell{width:100%}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_table .wpz-insta_table-row.hidden{display:none}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_table .wpz-insta_table-row .wpz-insta_table-cell{display:block;white-space:nowrap;line-height:30px;width:50%}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_table .wpz-insta_table-row .wpz-insta_table-cell input{margin:0}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_table .wpz-insta_table-row>input[type=checkbox]{margin:0 0 0 1em}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_show-on-hover{display:table-row}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_show-on-hover>strong{display:block;margin:0 0 20px}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_feed-only-pro{display:flex;flex-direction:column;gap:20px;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;padding:0}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_feed-only-pro.wpz-insta_pro-only-with-bottom{padding-bottom:10px;border-bottom:2px solid #f57c00}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_feed-only-pro.hidden{display:none}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_feed-only-pro legend{display:flex;width:100%;padding:0;border-bottom:2px solid #f57c00;margin:0 0 10px}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_feed-only-pro legend>strong{font-size:13px;color:#fff;background:#f57c00;padding:0 5px;border-top-right-radius:2px;border-top-left-radius:2px;box-shadow:none}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_feed-only-pro>label{opacity:.5}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section.wpz-insta_sidebar-section-token,.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section.wpz-insta_sidebar-section-check-new,.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section.wpz-insta_sidebar-section-request-timeout{max-height:0;opacity:0;overflow:hidden;padding-top:0;margin-top:0;margin-bottom:0;transition:all .3s ease}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section.wpz-insta_sidebar-section-token.active,.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section.wpz-insta_sidebar-section-check-new.active,.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section.wpz-insta_sidebar-section-request-timeout.active{max-height:999em;opacity:1;padding-top:30px;margin-top:30px;margin-bottom:20px;overflow:visible}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section.wpz-insta_sidebar-section-token #wpz-insta_user-token{display:block;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:14px;font-weight:normal;text-overflow:ellipsis;color:#242628;background:#fff;width:100%;padding:4px 8px;border:1px solid #ddd;border-radius:2px;box-shadow:none}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section.wpz-insta_sidebar-section-request-timeout>label>strong{font-size:14px}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section.wpz-insta_sidebar-section-load-more.wpz-insta_pro-only{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;padding-top:0;padding-bottom:20px;border-top:none;border-bottom:2px solid #f57c00;margin-top:0}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section.wpz-insta_sidebar-section-load-more.wpz-insta_pro-only .wpz-insta_sidebar-section-title,.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section.wpz-insta_sidebar-section-load-more.wpz-insta_pro-only .wpz-insta_table>label{opacity:.5}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_widget-preview{position:relative;z-index:2;padding:0;margin:0}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_widget-preview .wpz-insta_widget-preview-header{display:flex;align-items:center;padding:0;border-bottom:1px solid #ddd;margin:0}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_widget-preview .wpz-insta_widget-preview-header .wpz-insta_widget-preview-header-title{flex-grow:1;font-size:14px;font-weight:600;text-align:center;padding:0;margin:0}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_widget-preview .wpz-insta_widget-preview-header .wpz-insta_widget-preview-header-links{display:flex;padding:0;margin:0;transition:all .3s ease}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_widget-preview .wpz-insta_widget-preview-header .wpz-insta_widget-preview-header-links.disabled{pointer-events:none;opacity:.3}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_widget-preview .wpz-insta_widget-preview-header .wpz-insta_widget-preview-header-links.disabled .wpz-insta_widget-preview-header-link.active{background:#ddd}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_widget-preview .wpz-insta_widget-preview-header .wpz-insta_widget-preview-header-links.disabled .wpz-insta_widget-preview-header-link.active svg{fill:#81909c}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_widget-preview .wpz-insta_widget-preview-header .wpz-insta_widget-preview-header-links .wpz-insta_widget-preview-header-link{display:flex;align-items:center;justify-content:center;cursor:pointer;background:#ddd;min-width:70px;min-height:70px;padding:0;margin:0;transition:all .3s ease}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_widget-preview .wpz-insta_widget-preview-header .wpz-insta_widget-preview-header-links .wpz-insta_widget-preview-header-link:hover{background:#eee}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_widget-preview .wpz-insta_widget-preview-header .wpz-insta_widget-preview-header-links .wpz-insta_widget-preview-header-link.active{cursor:default;color:#fff;background:#3496ff}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_widget-preview .wpz-insta_widget-preview-header .wpz-insta_widget-preview-header-links .wpz-insta_widget-preview-header-link.active svg{fill:#fff}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_widget-preview .wpz-insta_widget-preview-header .wpz-insta_widget-preview-header-links .wpz-insta_widget-preview-header-link svg{fill:#81909c;padding:0;margin:0;transition:all .3s ease}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_widget-preview .wpz-insta_widget-preview-view{display:flex;align-items:start;justify-content:center;padding:0;margin:0;overflow-x:hidden;overflow-y:auto;transition:all .3s ease}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_widget-preview .wpz-insta_widget-preview-view.wpz-insta_widget-preview-size-desktop .wpz-insta_widget-preview-view-inner{max-width:500px}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_widget-preview .wpz-insta_widget-preview-view.wpz-insta_widget-preview-size-tablet .wpz-insta_widget-preview-view-inner{max-width:768px}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_widget-preview .wpz-insta_widget-preview-view.wpz-insta_widget-preview-size-mobile .wpz-insta_widget-preview-view-inner{max-width:380px}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_widget-preview .wpz-insta_widget-preview-view.layout-fullwidth.wpz-insta_widget-preview-size-desktop .wpz-insta_widget-preview-view-inner{max-width:100%}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_widget-preview .wpz-insta_widget-preview-view .wpz-insta_widget-preview-view-inner{flex-grow:1;padding:0;transition:all .3s ease}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_widget-preview .wpz-insta_widget-preview-view .wpz-insta_widget-preview-view-inner iframe{display:block;height:400px;width:100%;visibility:visible;opacity:1;overflow:hidden;transition:all .3s ease}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_widget-preview .wpz-insta_widget-preview-view .wpz-insta_widget-preview-view-inner iframe.wpz-insta_preview-hidden{pointer-events:none;visibility:hidden;opacity:0}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_tabs-config-connect{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;color:#242628;background:#fff;padding:25px 30px;border:1px solid #ddd;border-radius:3px;box-shadow:-1px 1px 2px rgba(0,0,0,.1)}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_tabs-config-connect .wpz-insta_tabs-config-connect-title{font-size:24px;font-weight:600;padding:0;margin:0 0 10px}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_tabs-config-connect .wpz-insta_tabs-config-connect-description{padding:0;margin:0 0 20px}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_tabs-config-connect .wpz-insta_tabs-config-connect-accounts{display:grid;grid-template-columns:repeat(auto-fill, minmax(300px, 1fr));gap:30px;padding:0;margin:0}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_tabs-config-connect .wpz-insta_tabs-config-connect-accounts li{cursor:pointer;background:#eee;padding:15px;border:1px solid #9ca2a7;border-radius:4px;margin:0;transition:all .3s ease}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_tabs-config-connect .wpz-insta_tabs-config-connect-accounts li:hover{color:#fff;background:#3496ff;border-color:#0063cd}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_tabs-config-connect .wpz-insta_tabs-config-connect-accounts li:hover h3{color:#fff}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_tabs-config-connect .wpz-insta_tabs-config-connect-accounts li:hover p{color:rgba(255,255,255,.6)}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_tabs-config-connect .wpz-insta_tabs-config-connect-accounts li h3{font-size:14px;font-weight:600;padding:0;margin:0 0 5px;transition:all .3s ease}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_tabs-config-connect .wpz-insta_tabs-config-connect-accounts li p{font-size:12px;color:#81909c;padding:0;margin:0;transition:all .3s ease}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_tabs-config-connect hr{margin:30px 0}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_tabs-config-connect .wpz-insta_tabs-config-connect-subtitle{font-size:14px;font-weight:normal;padding:0;margin:0 0 20px}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_settings-support,.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_settings-license{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;color:#242628}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_settings-support .section-title,.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_settings-license .section-title{font-size:20px;font-weight:600;line-height:24px;margin:0 0 1em}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_settings-support .section-title svg,.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_settings-license .section-title svg{vertical-align:text-bottom;margin:0 0 0 5px}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_settings-support .section-description,.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_settings-license .section-description{padding:0;margin:0 0 2em}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_settings-connect{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;color:#242628;background:#fff;padding:25px 30px;border:1px solid #ddd;border-radius:3px;box-shadow:-1px 1px 2px rgba(0,0,0,.1)}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_settings-connect .section-title{font-size:24px;font-weight:600;line-height:29px;margin:0 0 16px}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_settings-connect .section-description{font-size:14px;white-space:pre-wrap;margin:0 0 30px}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_settings-connect .account-options{display:flex;flex-wrap:wrap;gap:30px;margin:0 0 30px}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_settings-connect .account-options .account-option{display:flex;flex-direction:column;min-width:350px;padding:20px;border:1px solid #ddd;border-radius:3px}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_settings-connect .account-options .account-option .account-option-title{font-size:16px;font-weight:600;line-height:19px;margin:0 0 16px}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_settings-connect .account-options .account-option .account-option-checklist{font-size:14px;padding:0;margin:0 0 20px}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_settings-connect .account-options .account-option .account-option-checklist li{line-height:18px;background:url("data:image/svg+xml,%3Csvg width='18' height='18' viewBox='0 0 18 18' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M9 0C4.03759 0 0 4.03759 0 9C0 13.9624 4.03759 18 9 18C13.9624 18 18 13.9624 18 9C18 4.03759 13.9624 0 9 0ZM14.0301 6.63158L8.2782 12.3383C7.93985 12.6767 7.3985 12.6992 7.03759 12.3609L3.99248 9.58647C3.63158 9.24812 3.60902 8.68421 3.92481 8.32331C4.26316 7.96241 4.82707 7.93985 5.18797 8.2782L7.6015 10.4887L12.7444 5.34586C13.1053 4.98496 13.6692 4.98496 14.0301 5.34586C14.391 5.70677 14.391 6.27068 14.0301 6.63158Z' fill='%2322BB66'/%3E%3C/svg%3E");background-position:100% 5px;background-repeat:no-repeat;min-height:18px;padding:5px 32px 5px 0;margin:0}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_settings-connect .account-options .account-option .account-option-token-input{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:14px;line-height:17px;color:#242628;padding:10px;border:1px solid #ddd;box-shadow:none;transition:all .3s ease}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_settings-connect .account-options .account-option .account-option-token-input:hover,.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_settings-connect .account-options .account-option .account-option-token-input:focus{border-color:#3496ff;box-shadow:none}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_settings-connect .account-options .account-option .account-option-button{display:flex;cursor:pointer;align-items:center;justify-content:center;font-weight:600;line-height:1;color:#fff;background:#3496ff;background-position:center right;background-repeat:no-repeat;width:100%;padding:15px 40px;border:0;border-radius:2px;margin:auto 0 0;box-shadow:none;transition:all .3s ease}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_settings-connect .account-options .account-option .account-option-button:hover,.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_settings-connect .account-options .account-option .account-option-button:focus{background-color:#70b5fe}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_settings-connect .account-options .account-option .account-option-button.disabled{pointer-events:none;opacity:.5}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_settings-connect .account-options .account-option .account-option-button svg{margin:0 0 0 16px}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_settings-connect .section-notice{display:flex;align-items:center;font-size:13px;margin:0}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_settings-connect .section-notice svg{margin:0 0 0 12px}.wpz-insta-admin .wpz-insta_settings-footer .wpz-insta_settings-footer-wrap{display:flex;align-items:center;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;color:#242628;background:#fff;padding:30px;border:1px solid #ddd;border-radius:3px;box-shadow:-1px 1px 2px rgba(0,0,0,.1);margin:20px 0}.wpz-insta-admin .wpz-insta_settings-footer .wpz-insta_settings-footer-wrap .wpz-insta_settings-footer-logo{padding:0;margin:0 0 0 30px}.wpz-insta-admin .wpz-insta_settings-footer .wpz-insta_settings-footer-wrap .wpz-insta_settings-footer-logo a{display:block;text-indent:-999em;background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAsUAAAB1CAYAAACmnpxEAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA3BpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQwIDc5LjE2MDQ1MSwgMjAxNy8wNS8wNi0wMTowODoyMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDpGODdGMTE3NDA3MjA2ODExODIyQUJEN0ZFNTE5QkYyRSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoyMERERTJGNDlFNjgxMUU4ODM0NkExODhFNzlBMDMzQiIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoyMERERTJGMzlFNjgxMUU4ODM0NkExODhFNzlBMDMzQiIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxNSAoTWFjaW50b3NoKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjEyMzc5NGVhLTBiZGYtNDQ3Zi05ODc1LTY1ZDk5NjhjZGVlNiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpGODdGMTE3NDA3MjA2ODExODIyQUJEN0ZFNTE5QkYyRSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pkkr7JsAAB/xSURBVHja7F1RUhy5shWE/y9vBVNegdsroPi874dmBXSvAIi47xv4nhsBrIBmBW7/zP2kWIHbK3B5BbdnBbwSVnvaDNBdVSelTNU5ER0MY7u6pJNKHaVSqZ3Hx0dHEARBEARBEEPGLruAIAiCIAiCoCgmCIIgCIIgCIpigiAIgiAIgqAoJgiCIAiCIIhB4936Lzs7O+wRgiAIYiM+/PNfZfNjr/mMms8/ws9tUDef7+Gn/yy+/uffS/ZoMg6L8CGHhFmgikbsrD9o9L//txocJtAMwmrgDm0UJiULWDZ8LbZ00hbAScAmb1pQN/ZTG+LXzwue4/0gnEbo/vBjqvk8NJ9qG19BkMOEfbkn0H/m/YRRXVMv/vj9Zx+/e/aHk+Zzbqj/hh7avgpOzgL8AuZgi793b2jw/iL6w4Tgf34N/10PYXIPTuzeEW1w3XzODPB63HzGTj5YUoTPOHy3H0fz5vO5GUNzmgs5VIZJmH+lMWs+04Et3O4ji+Kz4I9fFMUEQXTD3toCZbw2yJdhQZBz9KQk/a0x0vhSYVKaBCFVJB5P/j0mYQx5cXAztKgZOdTbzZG+ZzwkUdzgk4u/+/3LnExRTBDyE8PY/RU98RPCPLMJ/gNpti2KQ/rLyfqCTtkYOvWf5j39AvNy6Klzxjlc+T/LHMYKBOw1/TUewm5J086rFH5x8cfvFUUxQaRD8WyCv2sc3sx4m0rS2kkkaBFS54Y49O9ZhrFzxtxjkxw+BQmschjyiYuIX3nofgRScrbhcZgXY+NvCzOWZCOItBP8beMQvjWfiVFnVjhDh3MViplk3918fO7evdFFjX/nLz66FETKIO2HHA4iCFBmbsd+/rhN9PUPFMUEoQ/FmjgeG3v3EenrxXvsCchvx94aFlLP4aNLFscNObTL4X5sPxEOTOaKFHnEKywoiglCt0j61DjAT4YiJ/ukzYYobmzqSXy4H4efcsJeGDe3uUeNB8ChhahxCoF6nKk9X7m0gZWKopgg9MNHTKxETkrSpXtB4bcnwzb7lbNT17wLvFC8D9uxuYmHoXB4aoDDFD5vnKFNp8ojXsHXJ15SFBOEDfyMnCh2arEK2OfMcYyJ58uAFi/eHr/ktN1MDlVxkYqDIjOb9oue28SvUb30P1l9Aj8gljwRTQBxGsTnmcIb9CiIFfdfWFCdDrBf/Xjx0cYD676YHKrjMKXP8ykUuWiLlHnEKzy89D8ZKW63srnf5jPU09CEGCZK7aokNb0wE/JV/iDWl4GKqeeiyuTCjRyq5TDlGYosUigU5BGvsKAo7ofzFgN5zO4iwNB4lTIP2fUQxF//82/4TVVBQHxxjOKbFcbkUDWHKQMB5lMoFOQRr7Bc/PE7RXGfVXtLoXvCXiMkhHEoxaQFJSlRJ4j9wqlgF9sUxuTwTQ6LxNwULv2Wv9kqFEryiFd4NQ2Fong7TFoOhlHKwvxE3rbY2NaFAgdH+9YpiJm69bKoUl+ujRxu5DB1qUoNPs/yLvStItt+eO0PeNBuO3SJ/PoVXcWuIwRw7q9IbcRVSvvqG3mrw0cjRkLOu8pUEFeBy+9rv6+EzMpO/hH+e5ToPf33+lzGqUaDI4cmOPygwFR8CkXR+BGtvvM1+75wunYWq21Fcd1CyCEHhj9Vv1BKpl+ZFR3+qY/oXQobb9c+K2MYV8d3bSP0CofZZlwEG3QJvrvzqruxr48JK1L0zSe+a979QuF4nwg5b29jR5mIKd+WuyDyN43r+QvvXIQ+9jY0jvju3ic/NO88oyAmh8LzneQc4fv72pAg9nZyrombxR+/v/p3dx4fH//6ZWenTUORpWLqxsjfKyW0z1Wal9om/uDMvqEca9O+j4lXn4jBdtA16rpWq3cUJogy4gRx3bz3WaK+/2/Pdh4kjnS/Joglct4Wob1L8PvGFFN1EFEz9EI/9PuxixNJ8hx81BJpI4f2OXyjTz45mXSHpPNuh/nxWwz7boTuDuI5fdIn7oCiWOWWwNpquCt82sWFMjtFOq07N3AEoVOFz3Wwm3GYIKTzv3wN45vY4wZx4ISCGMJBDDFVh8X9THAM+WfP1iJKksLK95cP6BwpsDlyaJzDiHPtOkaGUihi1SOGzSe7PQbBwmFzAjUmkPetIrEXJltNONRoiJkJ5Xnz8Q7b737MhL/uPEET+zp7ValSBgXxXoTJxr+zvzDmfaytar9Qaj4HQexITvjj1AdFyaF9DjfwWwpzq/7AXeQ8Ypit9a0+MQc26lgZod6gEYJWW3k2lJHWvLlv4wRRh4NVHwWF4CRBqaK++cSVonFuShAH+PeVLDHm/boXUteJxs08jJm54NekLg1FDu1z+BYOhZ+vujRbxDzinyanRRQ/ABs1UlYyB3V4QE15NvDqde6IbSeIVQ7YTOgrYi+8+trzg5LxMLImiEP0RSpK5N/3yO9ypL5S3H9/2G2RypkvUu3iDZDDy9w4jOAjt9EVhVJBvNoFiQlY0Gm3p9HPXftT+5uEqBYgVzlaVnXI1evg84k7jBcfNZYoJxRtYggOr68zTr7DsHbACY1aUBCXTi764jn5GHy6pjFz7eRKcJ0nsLshcniRE4dbcOz9Y4zLYrSmUMTKI163sUqFKA5ADsBDJUZdOmwplYmSKDhq9bpk6kTnwTtz+MjJXjjcZ8GG6tQHRARP/K+idBKC+OkCCqEumQchXyseMxKiqog4bshhBhxGnmc3QV0KRaJ6xFCbR4jizxmufCS2o08TGyty9crUiX4TxIVAH8ZaUPbNJ14kHgeSgvhAcLF462Rqns40bLUnWkxK+XpymC+HmnyxqhSKBHnEInPKLsDQoSkUqVd9wcgk3iH1qg7Zps+O6Iupw6YexVqd9/2eh4Rj26QgDj5RwieJXDktvJis0PYcQ1iQQ/scKvTFsb/rLftOkUf806xUieKAnFIopFadqQ8F7IOes9SWs2YRIapzBravGBND392GKkV/GxbEq5qsgxZTazgCLyYlff46h7fk0C6HLf1MzFTJQyWcRs8jXoOuSHEAMvozTmjQqDJsryFltBjVr5UjUMJ45rD5UKXw+CgBbV4kGNdWUyY8/HYkerFTGRVTEovJGHPOuYDtkUMluiHxe4xTn1dqvv/UpY1YqxTFyMjhXpjEUhm0pIGVKdoGTklh6gQWN8BnFcLv2tfxVQlsX+qSBHFBHCL/6LMI/n2PLA+YsJhE2lIh5ZfDc8mhYQ5bIkXkNmUg0ff5VcL+XqIPl+6CDHzp8rjI4yST73iOfeCzmDqBxVwpzxLPj5pPHATxvdBi4SBC1Bu95e799FT7gawtgT6wJSUsrsiheQ7b+JsUwvwwYXs/JbYhuA/eBT7LdBWKsDUcw6BTlGdD9ec8E2esBmGVWxt53b7jYxFxPK8EscSYnkoL4uCPSmvvHXHcVA4badwnh+TQqChPlUIhVU0lG1GMjHgVCU6TxoxORyvPFvoR1ZcqbiLLEKiBPRK0I8QBkiqSzUsL4lmEZqBLG80yPCCLvECoJIfk0LAojyrIQx6xhjzur+gHwkSxQApFzKLqXjROMhXgyH5k6oTugS2aD99X+MfYZchBEAtEGGsnd11yukHzg4sluN/JITm0KMqjpVAoyCP+ZV5BP/Ad+HkPQBHmheN1pI6dRCby6RaeSKt+1Op1ofW2JCLK5HUdcTwOVhAHoCOMZxmnPc2B/tuLmoocksOOQrFI2IdPKRTSNqIkj3h9XlKdPrEybhRGEfNkUhx+i/WdqEXKnSMICmLpdpQOG3GqMq8rjjzL8oEcksMeYjw1Yuyua8gjXkEktx4qikMkcWGJ5HChRookdfFbeMCl2CpHEHpx6+xHiD3QqVXTnEkHi8WCHCZBpZDDtkCkL9QK3uEtPYHMI64Bz9AvigPulBnaJqS8CUf6nnBU6kSdy4lnIj80zvpWaAF9FlMQC5xtmA0k5QklqkbkMMnCZqmJww6c+6BaCXhU3xJ1pWAbkXnEZ6DFy1eJtkqIYuhhO8kUikB0yoLf0qVUxgo5Jf6O39gFvQTxRODRs5BHHdUfgJ93ORAzWADtqa8/npBD8xymEKMV4NDhHnh3eL0/UXnEc6CesBEpFkihKAWNOfV96WLXSoMT/5lPLAsUTxUFMUwQp9iyPgG3oR6IKSAjRn2DJMfk0DyHbYHY0V6VO50peJfnQOURe1ueAvkxkz7h8VmZwb22+pkocAZSwhy1mGDqhI1Iw6CQmyAWOL1+OSBzqJXYJDk0zmFC/12Fn30DUGOwTU9Az/QR8KOQKoMQxbVUpQ0pUWyhXvGpkgFVSGx5ABcTFSWY+ESKwmIgfZZbhNgDGWGcD6x8ItLuR+TQvCiOFikGXY61DLf7rUqM9ekLWAoFOo94Lbi2r8xe5EUxgNjnJJcCr3msyCEcgwcqKvHf47MjrHD/JwWxSUGMXvwPKt0JHDHaI4dJOKyVcJiC8+r5gqjn83oHxIKGuAX15ezZgWXEokXsdt1dQWNBRouhKRRhS6AAPOoANbDA5dlQgniZeX1MDWDZvHbjNjtBDN52rzlmySERDYio5wN4QYSYU65A4tUHSM/WxkkBEtpiu6KSohi50kWnFyCic1XY8kAJEWRuMWoRQccsO5GWDpuDuMi4r7wYvs1NEIMXsRyz5JCIC3ikOHUKBTD4sJ5HvILqQ3aiohicQlGgci/DcxAO7Cb8RB2GmABLyaAc9IMjJIGsU13neg2soCD+JYqREMidMFaKIYdEHL+EEMSvHWRPkkIBziOevpAWA9Fxkvn2u8J2g1zxooTeCciQ54GcCiT+9xCrTvA2HiMWcg711DG6lFoQHyhZSKDsgJViyCERD4jUiUpoYdRaS4DziK9fSQGS7DMTohgZaeyd8gAsw3a54feuQEQOUc55nmvkUYHQKxz+NsOHDPspe0EMPkRccXSRQ8LUQuhFvw1KoWgblUXlEfvU0td24AqQ/7YpisNKATXxjACH0RCC2Lfn+QoI1c4C4GBR23isOiEzga5uB0KekM7uQORAIsTOYctHccySQyKOfypQAvKNP7vp+ezjFu2ZAPXR0RtzH0IUf5XkdjeC/WhKoUCkTsyeT6jh9xmojSc9BiqyFBsjFjKC+N7h62hSENsUxE/NBT6LY5YcEnGAmGcXG3Jj+/r1rVIowHnER2/4V9S8V1sXxSputwtJ8YhVyo3Qqu6nIfeIiKME8WJgheNjCL2RkCBG2p6WfroSeLRGQewctozXcsBjC2knbTEih+Y5jKZFtl0AhTm4T1s2FigA5xFfri4hkdQnG75DvygGp1CMe1RoQEWJ6zcMeAZq50nCgerB089Yh38qKIirXA7mrC0c0MX3tQpi6EJ2wEMMmoqUUBSTw3Qcphi325wD6TsXb0qhQOUR+zNIF5tcvIUxshvJ4JOmUITIK8KI74QNeIVJ10WDQr6GLIb9Iu5LcDxStyxdZtJXUoLYT5BTjYIYfGHP1wEPtRHYXsjhgDjsMG5LkJ+qIszF47fmJ4fJI669j43EcTaiGHkyvks0FHHSf7EpbB/+HEHaXsirbCsqEAO1ZupEP3HXfC6azzf340DdSPDr5tJbSRkI4gPFkXSkoBpylPE3mCptbytIDitymITDGBrkJT2x3KIttRNIoQiLOdS5jaNNbQEesvsubYjvIhn8HEjAeMtVyToZiAjqTYu/h2irT6GYIVaEHbgaGg4bO9nagQWHshrge0H4fgg/i0jv7N/nzHrHD1gQO2dvy1grUh7g2XOEdQ7bogQ8o81Zq7ue/XP8grBGVUCabuljUfyKLxyjRIqDoECJrb2WZcsmAPJ99HS2ZVtnoAlq1LKdzCfujlXO72uf/zZcPK4+ze/f1v7MO5fzsCgpIr7zpfWI/sAFMXKicDnsGBgVVORwQKI4BNmkS7E9BzSFomkDKo94tq0ucobOTuxGNPpUVSgQB+zaCkVUNYDjyAOVtynZgD9cd01BbFoQEzg7QtkQr7Unh60EZowFEDKFIuQRn4LEaZudSkR6zDLG2ZCYonge2zBDpLUAfN+18N9/DZMtD3KgUieGHKmwAu8gj4xPgsgyQBTEw06dKMFjK+W4JocYsSYJxDXFXbRQ30BbCcwj7nJ42cQhu6iiOHQgSnQVW9Y1FLmsY8u2zlDCONJA9eBtSvrFz5HlWqaCF5gMOUI85Kj4PvBZKYMCNTk0MRYQAagu0ey+QUW/64zKIz7r4GdHifpNrygWEF3jDZNv4eIesEOv7NoIe0Q7s7sqOENBbFr0CQriro6asI8SNb465uh/IAVqOBStnARM82i9+AKcyxqB/O51izziVb+h+M0rUgxa7axjU14xIkrc+WKE8O8QkYc3y7MBByoFMQWxVUE8beuoleA3mnYvmxo7XApOV1/N6hP2OdwWqOBTVz+eeifXV2HqUvHIUmWRuKIYkDD+S0e/lm8bJuAJ4Dv6RntRlRyOhQeqBw+Z6IQfLx8piLMTxB7fad69cAh81uce45PQweGDgXedJ/q3vcW8636WBbKbEmsO3E3QuciSX+M3/j+iDNu8J4kz0OqmfCOHGuVUGCnWB28/B5ZLr1EQR8HgopXA+vMrVB3/3Z/k0DyH275r0rxYcGnbtjjqMQ+NNHOrQRQjSX0tQR9xgx0qJ1gstxg4UOeWD29liNWBuikP1VEQR5p0rAG57b5QsPAkh7o5LJUI9xQpFJc9a2ibqTyRRBSDUyjGYeJdn4i98RYAUYKacGcOUzJp8rytwFU2q07ogS/n9z6TQ4+oIvEUxMRzHAOfdcfuTIITQxwidmQRBwFjzwv+XNVF138MPGQXLdVsN9FgqIDPGgsMtBkqQgfe8nhedHtfIR9E98WTF8NnOUTtG2fo62FOKIg3Lr5R/T2YSGOYaEvgI+fkMAmHIyUcbgOEvfWeZyOnUPTJI14BxXG+kWKBVd3+2kArXNoybK/hEvSc4w0Lgk7GZv26YOOiaBUZnubCg6Agvs4sQox09EPKSUVGifv6P3Jon8NtFisF4FGoHdlYOxsHgAANpMJOzCvQk4jicIoQZcTrwhAxEc/RAyw8D0FqsSrPFlbae4YGGLFmY+5HxPN/QmQ4m0WJoCCedSwHNBSUQ2hkCHwg7euGHJLDSLxAhF1IrZPeTUTVfTeVT5xMFK8JA8jqOtQ69DhRPMDQ0WJWnbADP6h9RNgfnttpPkc55sQKC+Jpbv0Fjn4M5RKJc+Czem9Fk8NOuNLE4RZAzLULcFqcZJt9YPBa0YKijmmc7xIODB+hPAU9az8cQtsDGG4l0Vj/3OYdPblFXyML2zkQY2PqBBR1+HgR/F3SniiIs8HSYXZ8ygHYWAm2MVTVHXLYjsOxQg6leUHPA5+F/K2fu6YgrlH5xF8HIYp9aB4kEl0YZAjDld6G8dHiW9BKG1KKjTr2CWeuxxbNUITvG87vioK41ySE8F1+x2yU+VXX5+DnXZJDcrjBt6ms8ORTKJp3Qy3G1hd3yDKgKFEcdX59l3iAVKDJFCGslxG2tOdB0PY1ZFREgfnEYVIburDtMWn48Xsq8OghCGKPB+B4PnaZ3rDW2NmpA1ecAO6SkcM0HM4i7HRCKjwJzS9zcDDiDLwgQ6UD1THtNLUoltoC6ALxAxd+BdY4hpmQiGhtaJlHJIg4gvhW4NHRBXHTlk+u37Zu13dGjkH//mcZ2pkPIqAjjEh/Tw7TcBgjqIOIFFdC74bUTzOBoCAiUryMneKZ8qBdrFOU2+I60vdoOe1cOYLQJ4gXiSLEfR141+tbkYKqABbL1wRvZ8ht4gocuSOHm/FJOYcv+bjC6SrFJqWfFkILsVLZ2NIvigM05LXOYl2YEFY9MwVt5i12hDpB3HwOErQHMflVPfxBDWzOSWa25nfVxuDHQgUAOdyKw1Izh68AZXeS4r2vfnq6oAOtf4CH7B5i26sGUaxBnMWO3qbO5V1mco0wkZkgTnSbX18H3reKC3IsjoPIz8HWPC9X4MfOhNLGyKF9Dp8DkU+8FH7XvlpC6tIolP3WsW02uShWkEJRxc6tDds+KfN5KYgJCmLc5Nd3LKOjIbcZ2Jrfar9HBwOcXLUCcmifw78tThD6IoKW6CocrwWDY+aud1YjimMYzgbcDOx7JRw4kb8gHmcqiD3KlONJIDBQWs5LXRNT6GuPb6QO7ZBD+xw+e39U38fYCe8ibCvhG0JRVTsGK4pTpVDUqdIIwknPVEKAkWKizQQxylgQe/SNalQKx+RtECYWcetwkaZ1X39hzK+Sw/gcroC6MbaK8K5tUyie8oiV+9RYfadWFKcSaakrQaT4/rkCEULYEsQSER8VghgREQJFM9C+oHD4XM4YfHgxNRZ4dIyKJnfk0DyHK5SAZ0S5MTb4nzbfcyTpd0M+PGK+qFPYrwpRHAiKLYz9d84SN/06wXey6gSRWhAvnY4IMWLyqxJNbNtgEvLALdjanuBV4dcxLufpmd9JDhVwuCbqrEU6t9VPlxH60eT1zqpEcSKxNks9KYfvjy3MK0cQFMQ/m9rz3yPz8yUOEN1qF1Vr+acS77lw8Q5mkcM8OCxBz4l5dmebXYp5pPQTs4fstIni2JFiLZdoxHyPRezbYQgK4hcEsaabFPtOgLBFpuA5A7WiKtjaF4fPP13Z2zTmAowc2ufQ4fKJ5xHtbtNOk/+zWOknmq/GtiOKg9HH6oS5FnEYjDlWu+8cQVAQr7d1r+f4RY9dqUWyOlEVLnXwtlYIfcVZInsjh7Y5LAHPWCTYDXtLhB9FfB/E4iiZPtMUKfaIlUJxo6zddwoGDUFBXLjhRIgRzhvenrC9KTUheFGVvKKBt7Pm46/9vRKwtRVmIWqbAtfk0CaHiIVyQJWAltd0xDSW7wUesks2V2gTxTFE2yJVWP6NiXAWYWVUM3WCeMOZeUf2aUCC2KPvNp+UH5HMn5w0ny+pauA23+tFv99qHwt+jffx01RGFSJy5NAmh6g2PSSwu8ULYjL2wqJANYei2P28Q1568tQWJY71XowSE28JYh8hRucEahbEDtBekYkvTGKSC3c/cd37SF+s64T9tn/z+db857mTiyy6MH8cKJjLyKFNDg9B/Keab++e9eNZ5O8vgTaQBO8UTlR3TiZh/2mSTriltgkzYWfDfGIipiD2ONIqiEO7NVza8Rr8ZPZFuBt8VGzc9IWfwO/QE3kQa5PmcyIsotYXYVNFlU3IoSEOQT5B2i9sEuM+dec6oc1/AD0n2byx8/j4+NcvOzsaJis/CL8JPf4y4o04XdouVePRp068NyLS7lv89cJhtmsWruWJ8aY/D5xxCAviqeIF6Ora6k+ax1Q4xBTz8oZVvXh/tqPqIkxCTmbZfI4Fgxuvvbu6XYmQanBukEM/Pg6tcxjasu0YQoni2nVIh9Q4p4SDncct/kmqnOzPiz9+hywG1EWKfQpFQ8RCaDBeO924FBLFlbODMsF3jtzAICyI/eR23HzHseIuKLSPKR/1afrwMOKY2Av+ZxJsZDW5e3/857N2rwuI30J/lom4VJum44MwTT/uk8NkHJYJ2lR08C9a5+jjRDbR9jthRRreKSWiEpisZ9qvNw4LgkrACHmLHRFLEK8m2zLzbox1kObI/diCLxK0sXhBKJ0r40F73jo5TMvhB2cDD0rfy4ofhy0qdpU2UCL/9cYIuej3XCZM+id0QlIQDwVRRFhYyB85mQshrMOCICaHaTm0IurU2XBIPTFhQ0j7USmKt7idpfUqQrvjXGv7HNx2CmJi3dHdUhDrcsJb+sMjdvvfRMR7Q37dv+eUtMXjMOyIFUb6olL4ToNcUOwqbihSzFmrvICscfngCMKJHuQcGqJPYKG2OkXVX3PDgfZ0uBc4nJPDqByaEXVKbXmQqSeaRTFKyNaaT8G/4TCWwGcRhKMgtr3QDH5s6KLKVxA6siaIyWESDveN9IfW3Q4ri4pqEKI4bKkgBo2VXOL1tvt2I4T83OrkQYiAtmB8Egui6uMAuVzlnl5Yb0jg8IAcisNKmpi63dxQGrcYoj/eVd7YOWAQzpxNIMQ8q04QKsRcTkh9TXwIGBwMiE8/D7xP3e8CNkQOZVEa6RuNdm1lQQFPPdEuivuKurnhbbYasCjIZhIhIKjZBXlMYGvCOOf0qKeqDZbTJchhGg4//PNfVgTxMsz12mAl9QTuj1WL4nAwoc9AunS20SdavFA62Ih0+M4u6A01W51eZHix4fIs9+UvWnqfeznJNQ6n5BAKK5HOSul7Wem/r4MSxQFdB9TcuigMW01dt9fuHEE8WyixC/KbxILo8FdOzzLp349Nm86GdB4i5BmTQxysRDq/Kn2vcqj+2IIo7ppCYe6AHbgdrDpBPEfNLshzYREijj7aeOBspk35d/aHsA6s1B4mh6o5HKyo64uhp57sPD4+/vXLzo7KljckPbad/JvOep+Ls2za/1/34+rc7NvfgetUE9gO+3d4grjh/aMRnv3Edm5AHMyaz11Oh+gGyuGNlsVMqJzwjfNI5/67cPquAn8J85B69IR1LdsH74z4Bx/1HLf4+9ZziZ/jpqWRMkpMvLpgcnZK7WiDGeEWRGYVrmo9Cf5zT5ENep82Y8lIciiA0gjFWv3JIC/tsCaKP7cQxUuDl3VssxJvI4qZT0xQFAvoFIPCanW98LQRV96HHiYSV4sgAu6Gmh5BDinqXuhPjSiH3H+WIsW3W/7dXHKJ151i3ThDL4wn24ge45POAadBUVti/w6X+3nwpdMQfRwHAVEKCKxF+PhoTsVKOCIcloE7cvgrfFDIQo1+rf15ZGQsVBLPNZFT/LT0++HEtxn0ixy35Jr2+7ZvUyZlyUgMQRAd/cvKz/7m/r6jsPK/yxfE05/h55L5weY5rDmHENaAyineQT2IIAiCIAiCIKxil11AEARBEARBUBQTBEEQBEEQBEUxQRAEQRAEQVAUEwRBEARBEARFMUEQBEEQBEEMGf8vwABaKb4tsBFP0wAAAABJRU5ErkJggg==");background-size:contain;background-repeat:no-repeat;height:16px;width:95px;overflow:hidden;transition:all .3s ease}.wpz-insta-admin .wpz-insta_settings-footer .wpz-insta_settings-footer-wrap .wpz-insta_settings-footer-logo a:hover,.wpz-insta-admin .wpz-insta_settings-footer .wpz-insta_settings-footer-wrap .wpz-insta_settings-footer-logo a:active{opacity:.5}.wpz-insta-admin .wpz-insta_settings-footer .wpz-insta_settings-footer-wrap .wpz-insta_settings-footer-links{display:flex;padding:0;margin:0}.wpz-insta-admin .wpz-insta_settings-footer .wpz-insta_settings-footer-wrap .wpz-insta_settings-footer-links li{padding:0;margin:0 0 0 30px}.wpz-insta-admin .wpz-insta_settings-footer .wpz-insta_settings-footer-wrap .wpz-insta_settings-footer-links li:last-child{margin-left:0}.wpz-insta-admin .wpz-insta_settings-footer .wpz-insta_settings-footer-wrap .wpz-insta_settings-footer-links li a{text-decoration:none;color:#000;transition:all .3s ease}.wpz-insta-admin .wpz-insta_settings-footer .wpz-insta_settings-footer-wrap .wpz-insta_settings-footer-links li a:hover,.wpz-insta-admin .wpz-insta_settings-footer .wpz-insta_settings-footer-wrap .wpz-insta_settings-footer-links li a:active{color:#3496ff}.wpz-insta-admin #wpz-insta_modal-dialog{display:flex;align-items:center;justify-content:center;position:fixed;top:0;right:0;left:0;bottom:0;z-index:999999999999;background:rgba(0,0,0,.4);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);transition:all .3s ease}.wpz-insta-admin #wpz-insta_modal-dialog:not(.open){pointer-events:none;opacity:0}.wpz-insta-admin #wpz-insta_modal-dialog.success .wpz-insta_modal-dialog_wrap .wpz-insta_modal-dialog_header .wpz-insta_modal-dialog_header-title::before{background-color:#2b6;background-image:url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M8.75204 15.8749L4.60249 11.7049L3.18945 13.1149L8.75204 18.7049L20.6932 6.70492L19.2901 5.29492L8.75204 15.8749Z' fill='white'/%3E%3C/svg%3E")}.wpz-insta-admin #wpz-insta_modal-dialog.fail .wpz-insta_modal-dialog_wrap .wpz-insta_modal-dialog_header .wpz-insta_modal-dialog_header-title::before{background-color:#ec2439;background-image:url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M18.9069 6.41L17.5038 5L11.9412 10.59L6.37867 5L4.97559 6.41L10.5381 12L4.97559 17.59L6.37867 19L11.9412 13.41L17.5038 19L18.9069 17.59L13.3443 12L18.9069 6.41Z' fill='white'/%3E%3C/svg%3E")}.wpz-insta-admin #wpz-insta_modal-dialog.confirm .wpz-insta_modal-dialog_wrap .wpz-insta_modal-dialog_header .wpz-insta_modal-dialog_header-title::before{content:"?";display:flex;align-items:center;justify-content:center;font-size:24px;font-weight:700;color:#fff;background-color:#242628;background-image:none}.wpz-insta-admin #wpz-insta_modal-dialog .wpz-insta_modal-dialog_wrap{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:14px;line-height:20px;color:#242628;background:#fff;min-width:850px;padding:30px;border-radius:3px;box-shadow:0 5px 10px rgba(0,0,0,.3)}.wpz-insta-admin #wpz-insta_modal-dialog .wpz-insta_modal-dialog_wrap .wpz-insta_modal-dialog_header{display:flex;align-items:center;justify-content:space-between;padding:0 0 20px;border-bottom:1px solid #ddd;margin:0 0 30px}.wpz-insta-admin #wpz-insta_modal-dialog .wpz-insta_modal-dialog_wrap .wpz-insta_modal-dialog_header .wpz-insta_modal-dialog_header-title{display:flex;align-items:center;font-size:20px;font-weight:600;padding:0;margin:0}.wpz-insta-admin #wpz-insta_modal-dialog .wpz-insta_modal-dialog_wrap .wpz-insta_modal-dialog_header .wpz-insta_modal-dialog_header-title::before{content:"";display:block;background-color:#81909c;background-repeat:no-repeat;background-position:center;height:28px;width:28px;border-radius:50%;margin:0 0 0 15px}.wpz-insta-admin #wpz-insta_modal-dialog .wpz-insta_modal-dialog_wrap .wpz-insta_modal-dialog_header .wpz-insta_modal-dialog_header-button{cursor:pointer;text-indent:-999em;background-color:#9ca2a7;-webkit-mask:url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M18.9069 6.41L17.5038 5L11.9412 10.59L6.37867 5L4.97559 6.41L10.5381 12L4.97559 17.59L6.37867 19L11.9412 13.41L17.5038 19L18.9069 17.59L13.3443 12L18.9069 6.41Z'/%3E%3C/svg%3E") center no-repeat;mask:url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M18.9069 6.41L17.5038 5L11.9412 10.59L6.37867 5L4.97559 6.41L10.5381 12L4.97559 17.59L6.37867 19L11.9412 13.41L17.5038 19L18.9069 17.59L13.3443 12L18.9069 6.41Z'/%3E%3C/svg%3E") center no-repeat;height:24px;width:24px;padding:0;margin:0;overflow:hidden;transition:all .3s ease}.wpz-insta-admin #wpz-insta_modal-dialog .wpz-insta_modal-dialog_wrap .wpz-insta_modal-dialog_header .wpz-insta_modal-dialog_header-button:hover{background-color:#3496ff}.wpz-insta-admin #wpz-insta_modal-dialog .wpz-insta_modal-dialog_wrap .wpz-insta_modal-dialog_content{overflow:auto}.wpz-insta-admin #wpz-insta_modal-dialog .wpz-insta_modal-dialog_wrap .wpz-insta_modal-dialog_content .severe{color:#ec2439}.wpz-insta-admin #wpz-insta_modal-dialog .wpz-insta_modal-dialog_wrap .wpz-insta_modal-dialog_footer{display:flex;align-items:center;justify-content:end;gap:10px;padding:20px 0 0;border-top:1px solid #ddd;margin:30px 0 0}.wpz-insta-admin #wpz-insta_modal-dialog .wpz-insta_modal-dialog_wrap .wpz-insta_modal-dialog_footer .wpz-insta_modal-dialog_footer-button{color:#fff;background:#3496ff;padding-right:30px;padding-left:30px;transition:all .3s ease}.wpz-insta-admin #wpz-insta_modal-dialog .wpz-insta_modal-dialog_wrap .wpz-insta_modal-dialog_footer .wpz-insta_modal-dialog_footer-button:hover,.wpz-insta-admin #wpz-insta_modal-dialog .wpz-insta_modal-dialog_wrap .wpz-insta_modal-dialog_footer .wpz-insta_modal-dialog_footer-button:active{color:#fff;background:#70b5fe}.wpz-insta-admin #wpz-insta_modal-dialog .wpz-insta_modal-dialog_wrap .wpz-insta_modal-dialog_footer .wpz-insta_modal-dialog_footer-button.button-secondary{color:#3496ff;background:transparent;border-color:#3496ff}.wpz-insta-admin #wpz-insta_modal-dialog .wpz-insta_modal-dialog_wrap .wpz-insta_modal-dialog_footer .wpz-insta_modal-dialog_footer-button.button-secondary:hover,.wpz-insta-admin #wpz-insta_modal-dialog .wpz-insta_modal-dialog_wrap .wpz-insta_modal-dialog_footer .wpz-insta_modal-dialog_footer-button.button-secondary:active{color:#fff;background-color:#70b5fe}@-webkit-keyframes slidedown{from{max-height:0}to{max-height:100em}}@keyframes slidedown{from{max-height:0}to{max-height:100em}}@-webkit-keyframes highlighting{0%{transform:scale(1)}50%{transform:scale(1.03, 1.2)}100%{transform:scale(1)}}@keyframes highlighting{0%{transform:scale(1)}50%{transform:scale(1.03, 1.2)}100%{transform:scale(1)}}@-webkit-keyframes bounceFade{0%{opacity:0}0%,20%,50%,80%,100%{transform:translateX(50%) translateY(0)}20%{opacity:0}40%{transform:translateX(50%) translateY(-30px)}60%{transform:translateX(50%) translateY(-15px)}100%{opacity:1}}@keyframes bounceFade{0%{opacity:0}0%,20%,50%,80%,100%{transform:translateX(50%) translateY(0)}20%{opacity:0}40%{transform:translateX(50%) translateY(-30px)}60%{transform:translateX(50%) translateY(-15px)}100%{opacity:1}}[data-tooltip]{position:relative;z-index:2;cursor:pointer}[data-tooltip]:before,[data-tooltip]:after{visibility:hidden;opacity:0;pointer-events:none}[data-tooltip]:before{position:absolute;bottom:150%;right:50%;margin-bottom:5px;margin-right:-100px;padding:7px;width:200px;border-radius:3px;background-color:#000;background-color:rgba(51,51,51,.9);color:#fff;content:attr(data-tooltip);text-align:center;font-size:14px;line-height:1.2}[data-tooltip]:after{position:absolute;bottom:150%;right:50%;margin-right:-5px;width:0;border-top:5px solid #000;border-top:5px solid rgba(51,51,51,.9);border-left:5px solid transparent;border-right:5px solid transparent;content:" ";font-size:0;line-height:0}[data-tooltip]:hover:before,[data-tooltip]:hover:after{visibility:visible;opacity:1}
dist/styles/backend/index.asset.php ADDED
@@ -0,0 +1 @@
 
1
+ <?php return array('dependencies' => array('wp-polyfill'), 'version' => '37c09d89ac050b7cdf38aa3fe144e98d');
dist/styles/backend/index.css ADDED
@@ -0,0 +1 @@
 
1
+ .zoom-instagram-widget .button-connect{color:#fff;border:1px solid #1c5380;border-radius:3px;background-color:#6f97b6;background-image:linear-gradient(to bottom, #6f97b6, #3f729b);background-position:50% 50%;box-shadow:0 1px 1px rgba(0,0,0,.1),inset 1px 0 0 rgba(255,255,255,.05),inset -1px 0 0 rgba(255,255,255,.05),inset 0 1px 0 rgba(255,255,255,.2);text-shadow:0 1px 1px #1c5380}.zoom-instagram-widget .button-connect:focus,.zoom-instagram-widget .button-connect:hover{border-color:#1c5380;color:#fff;background-image:linear-gradient(to bottom, #5D87A8, #3f729b)}.zoom-instagram-widget{background:#fff;padding:30px;border:1px solid #ddd;border-radius:3px;margin:30px 10px 30px 0 !important;box-shadow:1px 1px 2px rgba(0,0,0,.1);max-width:700px}.zoom-themes-link{border:1px solid #e2e9ec;padding:30px 30px 260px 30px;border-radius:3px;margin:30px 0 30px 0 !important;box-shadow:1px 1px 2px rgba(0,0,0,.1);max-width:700px;text-align:center}.zoom-themes-link p{font-size:15px;line-height:1.6}.cta-button{text-align:center;text-decoration:none;color:#fff;background:#3ebd3e;padding:10px 15px;display:inline-block;border-radius:3px;box-shadow:0 -1px 1px rgba(0,0,0,.2) inset;border:1px solid #259425;font-size:16px;text-shadow:1px 1px rgba(0,0,0,.3)}.cta-button:hover{background:#2a9b2a;color:#fff}#wpzoom-instagram-widget-settings_transient-lifetime-value{max-width:150px;float:left}#wpzoom-instagram-widget-settings_transient-lifetime-type{float:left;max-width:100px}.zoom-instagram-widget .wpzoom-instagram-widget-with-access-token-group{background-color:#fff6f6}.zoom-instagram-widget .wpzoom-instagram-widget-with-basic-access-token-group,.zoom-instagram-widget .wpzoom-instagram-widget-without-access-token-group{background-color:#e0f0e3}.zoom-instagram-widget .wpzoom-instagram-widget-with-basic-access-token-group th,.zoom-instagram-widget .wpzoom-instagram-widget-without-access-token-group th{padding-left:10px}.zoom-instagram-widget .label-wrap input[type=radio]:checked+label[for=wpzoom-instagram-widget-settings_with-basic-access-token],.zoom-instagram-widget .label-wrap input[type=radio]:checked+label[for=wpzoom-instagram-widget-settings_without-access-token]{background-color:#e0f0e3}.zoom-instagram-widget .label-wrap input[type=radio]:checked+label[for=wpzoom-instagram-widget-settings_with-access-token]{background-color:#fff6f6}.zoom-instagram-widget .wpzoom-instagram-widget-settings-request-type-wrapper{display:flex;flex-direction:column}.zoom-instagram-widget .wpzoom-instagram-widget-settings-request-type-wrapper .label-wrap{display:flex;align-items:center}.zoom-instagram-widget .wpzoom-instagram-widget-settings-request-type-wrapper .label-wrap input[type=radio]{z-index:2}.zoom-instagram-widget .wpzoom-instagram-widget-settings-request-type-wrapper .label-wrap label{padding:10px;width:100%;margin-left:-30px;padding-left:40px;z-index:1}.zoom-instagram-widget form h2{border-top:2px solid #eee;padding-top:40px}.zoom-instagram-widget .wpzoom-instagram-widget-with-token-group>td{padding-right:0px}.zoom-instagram-user-avatar-media-uploader .remove-avatar{margin:6px 20px;color:#a00}.zoom-instagram-user-avatar-media-uploader .file-wrapper{margin-top:10px}#wpzoom-instagram-widget-settings-user-info-biography{width:100%;min-height:100px}.wpz-insta-admin.post-php #wpbody-content{padding-bottom:0}.wpz-insta-admin.post-php #wpbody-content>.wrap #poststuff #post-body #post-body-content .wpz-insta_tabs-content .wpz-insta_sidebar .wpz-insta_sidebar-left .wpz-insta_sidebar-left-section,.wpz-insta-admin.post-php #wpbody-content>.wrap #poststuff #post-body #post-body-content .wpz-insta_tabs-content .wpz-insta_sidebar .wpz-insta_widget-preview .wpz-insta_widget-preview-view{max-height:60vh;min-height:200px}.wpz-insta-admin #wpfooter{position:relative}.wpz-insta-admin #wpbody-content{padding-bottom:165px}.wpz-insta-admin #wpbody-content>.notice{display:none !important}.wpz-insta-admin #wpbody-content .urgent{color:#ec2439}.wpz-insta-admin #wpbody-content .pro-only{position:absolute;top:0;right:0;line-height:1.5;color:#fff;background:#f57c00;padding:0 4px;border-radius:2px;transform:translate(50%, -50%)}.wpz-insta-admin #wpbody-content>.wrap>h1.wp-heading-inline,.wpz-insta-admin #wpbody-content>.wrap>.page-title-action,.wpz-insta-admin #wpbody-content>.wrap>.wp-header-end,.wpz-insta-admin #wpbody-content>.wrap>.notice,.wpz-insta-admin #wpbody-content>.wrap>.wpz-insta_settings-header>.notice,.wpz-insta-admin #wpbody-content>.wrap>.wpz-insta-wrap~#posts-filter>.search-box,.wpz-insta-admin #wpbody-content>.wrap>.wpz-insta-wrap~#posts-filter>.tablenav,.wpz-insta-admin #wpbody-content>.wrap>.wpz-insta-wrap~#posts-filter>.wp-list-table>tfoot,.wpz-insta-admin #wpbody-content>.wrap #titlediv{display:none !important}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-notices .notice{display:block !important}.wpz-insta-admin #wpbody-content>.wrap input,.wpz-insta-admin #wpbody-content>.wrap textarea,.wpz-insta-admin #wpbody-content>.wrap select{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-weight:normal;color:#242628;border:1px solid #9ca2a7;border-radius:2px;box-shadow:none;transition:all .3s ease}.wpz-insta-admin #wpbody-content>.wrap input:hover,.wpz-insta-admin #wpbody-content>.wrap input:focus,.wpz-insta-admin #wpbody-content>.wrap textarea:hover,.wpz-insta-admin #wpbody-content>.wrap textarea:focus,.wpz-insta-admin #wpbody-content>.wrap select:hover,.wpz-insta-admin #wpbody-content>.wrap select:focus{color:#242628;border-color:#3496ff}.wpz-insta-admin #wpbody-content>.wrap input{color:#242628}.wpz-insta-admin #wpbody-content>.wrap input.wpz-insta_input{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif}.wpz-insta-admin #wpbody-content>.wrap input.wpz-insta_input-nobg{background:transparent}.wpz-insta-admin #wpbody-content>.wrap input[type=checkbox]{display:inline-flex;align-items:center;justify-content:center;color:#fff;background-color:#fff;height:1.25rem;width:1.25rem;border:none;border-radius:2px;box-shadow:inset 0 0 0 1px #81909c;transition:all .3s ease}.wpz-insta-admin #wpbody-content>.wrap input[type=checkbox]:hover{background-color:#ddd !important;box-shadow:inset 0 0 0 1px #81909c !important}.wpz-insta-admin #wpbody-content>.wrap input[type=checkbox]:hover:checked{background-color:#70b5fe !important;box-shadow:inset 0 0 0 1px transparent !important}.wpz-insta-admin #wpbody-content>.wrap input[type=checkbox]:focus{outline:none;box-shadow:inset 0 0 0 1px #81909c}.wpz-insta-admin #wpbody-content>.wrap input[type=checkbox]:focus:checked{box-shadow:inset 0 0 0 1px transparent}.wpz-insta-admin #wpbody-content>.wrap input[type=checkbox]::before{transition:all .3s ease}.wpz-insta-admin #wpbody-content>.wrap input[type=checkbox]:checked{background-color:#3496ff;box-shadow:inset 0 0 0 1px transparent}.wpz-insta-admin #wpbody-content>.wrap input[type=checkbox]:checked::before{content:url("data:image/svg+xml;utf8,%3Csvg%20width%3D%2214%22%20height%3D%2212%22%20viewBox%3D%220%200%2014%2012%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M12.779%201.00004L5.3618%2010.9753L1.06089%207.77735%22%20stroke%3D%22white%22%20stroke-width%3D%221.2%22%2F%3E%3C%2Fsvg%3E%0A");display:block;float:none;height:auto;width:auto;margin:0}.wpz-insta-admin #wpbody-content>.wrap .disabled,.wpz-insta-admin #wpbody-content>.wrap .disable{pointer-events:none}.wpz-insta-admin #wpbody-content>.wrap .disable{opacity:.5}.wpz-insta-admin #wpbody-content>.wrap .help{display:inline-block;cursor:help;font-size:20px;vertical-align:text-bottom;height:16px;width:16px;transition:all .2s ease;position:relative}.wpz-insta-admin #wpbody-content>.wrap .wide-text-field{padding:0;margin:0 0 2em}.wpz-insta-admin #wpbody-content>.wrap .wide-text-field label>strong{font-size:15px !important}.wpz-insta-admin #wpbody-content>.wrap .wide-text-field label>em{color:rgba(36,38,40,.8)}.wpz-insta-admin #wpbody-content>.wrap .wide-text-field input[type=text]{display:block;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:15px;font-weight:normal;line-height:40px;color:#242628;width:100%;min-height:40px;padding:0 10px;box-sizing:border-box;margin:.7em 0}.wpz-insta-admin #wpbody-content>.wrap .submit-button{padding:0;margin:0}.wpz-insta-admin #wpbody-content>.wrap .button.disabled{pointer-events:none !important}.wpz-insta-admin #wpbody-content>.wrap .button:not(.wp-color-result),.wpz-insta-admin #wpbody-content>.wrap .button-primary,.wpz-insta-admin #wpbody-content>.wrap .button-secondary{display:inline-flex;align-items:center;justify-content:center;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:13px;font-weight:600;line-height:35px;min-height:35px;padding:0 12px;border:0;border-radius:2px;transition:all .2s ease}.wpz-insta-admin #wpbody-content>.wrap .button:not(.wp-color-result).button-large,.wpz-insta-admin #wpbody-content>.wrap .button-primary.button-large,.wpz-insta-admin #wpbody-content>.wrap .button-secondary.button-large{min-height:48px;padding:0 40px;margin:0}.wpz-insta-admin #wpbody-content>.wrap .button.wp-color-result{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:13px}.wpz-insta-admin #wpbody-content>.wrap .button-primary{color:#fff;background:#3496ff}.wpz-insta-admin #wpbody-content>.wrap .button-primary:hover,.wpz-insta-admin #wpbody-content>.wrap .button-primary:active{color:#fff;background:#70b5fe}.wpz-insta-admin #wpbody-content>.wrap .button-primary.button-positive{color:#fff;background:#2b6}.wpz-insta-admin #wpbody-content>.wrap .button-primary.button-positive:hover,.wpz-insta-admin #wpbody-content>.wrap .button-primary.button-positive:active{background:#3bdb82}.wpz-insta-admin #wpbody-content>.wrap .button-primary.button-negative{color:#fff;background:#ec2439}.wpz-insta-admin #wpbody-content>.wrap .button-primary.button-negative:hover,.wpz-insta-admin #wpbody-content>.wrap .button-primary.button-negative:active{background:#f05161}.wpz-insta-admin #wpbody-content>.wrap .button-secondary{color:#81909c;background:#fff;box-shadow:inset 0 0 0 1px #ddd}.wpz-insta-admin #wpbody-content>.wrap .button-secondary:hover,.wpz-insta-admin #wpbody-content>.wrap .button-secondary:active{background:#ddd}.wpz-insta-admin #wpbody-content>.wrap .button-secondary.button-positive{color:#2b6;background:#fff;box-shadow:inset 0 0 0 1px #2b6}.wpz-insta-admin #wpbody-content>.wrap .button-secondary.button-positive:hover,.wpz-insta-admin #wpbody-content>.wrap .button-secondary.button-positive:active{color:#242628;background:#fff;box-shadow:inset 0 0 0 1px #242628}.wpz-insta-admin #wpbody-content>.wrap .button-secondary.button-negative{color:#ec2439;background:#fff;box-shadow:inset 0 0 0 1px #ec2439}.wpz-insta-admin #wpbody-content>.wrap .button-secondary.button-negative:hover,.wpz-insta-admin #wpbody-content>.wrap .button-secondary.button-negative:active{color:#242628;background:#fff;box-shadow:inset 0 0 0 1px #242628}.wpz-insta-admin #wpbody-content>.wrap .button-link{color:#3496ff;transition:all .2s ease}.wpz-insta-admin #wpbody-content>.wrap .button-link.wpz-insta_button-link{font-weight:normal;line-height:1;min-height:0;padding:0;margin:1.5em 0 0}.wpz-insta-admin #wpbody-content>.wrap .button-link.wpz-insta_button-link:hover,.wpz-insta-admin #wpbody-content>.wrap .button-link.wpz-insta_button-link:active,.wpz-insta-admin #wpbody-content>.wrap .button-link.wpz-insta_button-link:focus{color:#70b5fe;background:transparent}.wpz-insta-admin #wpbody-content>.wrap .button-link:hover,.wpz-insta-admin #wpbody-content>.wrap .button-link:active,.wpz-insta-admin #wpbody-content>.wrap .button-link:focus{color:#70b5fe}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_suffixed-number-input{display:flex;gap:12px}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_suffixed-number-input>*{margin:0}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_suffixed-number-input>*:first-child{flex-grow:1}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_profile-photo{display:block;height:100px;width:100px;border-radius:50%}.wpz-insta-admin #wpbody-content>.wrap a{text-decoration:none;color:#3496ff;transition:all .2s ease}.wpz-insta-admin #wpbody-content>.wrap a:hover,.wpz-insta-admin #wpbody-content>.wrap a:active,.wpz-insta-admin #wpbody-content>.wrap a:focus{text-decoration:none;color:#70b5fe}.wpz-insta-admin #wpbody-content>.wrap a.linked{border-bottom:1px solid rgba(52,150,255,.3)}.wpz-insta-admin #wpbody-content>.wrap a.linked:hover,.wpz-insta-admin #wpbody-content>.wrap a.linked:active,.wpz-insta-admin #wpbody-content>.wrap a.linked:focus{border-bottom-color:rgba(112,181,254,.3)}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_back-button{display:inline-flex;align-items:center;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:14px;font-weight:600;text-decoration:none;color:#242628;margin:10px 0 0;transition:all .2s ease}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_back-button:hover,.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_back-button:active{color:#3496ff}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_back-button:hover svg,.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_back-button:active svg{color:#3496ff;fill:#3496ff}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_back-button svg{color:#242628;fill:#242628;margin:0 6px 0 0;transition:all .2s ease}.wpz-insta-admin #wpbody-content>.wrap .wpzinsta-pointer{position:absolute;top:calc(100% + 3px);left:50%;z-index:1000;cursor:default;font-size:14px;color:#fff;background:#3496ff;width:-webkit-max-content;width:-moz-max-content;width:max-content;padding:4px 10px;border-radius:3px;box-shadow:1px 1px 2px rgba(0,0,0,.3);transform:translateX(-50%);-webkit-animation-name:bounceFade;animation-name:bounceFade;-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-fill-mode:both;animation-fill-mode:both}.wpz-insta-admin #wpbody-content>.wrap .wpzinsta-pointer>i{position:absolute;top:-10px;left:50%;pointer-events:none;height:10px;width:20px;transform:translateX(-50%);overflow:hidden}.wpz-insta-admin #wpbody-content>.wrap .wpzinsta-pointer>i::before{content:"";position:absolute;left:50%;bottom:-4px;pointer-events:initial;background:#3496ff;height:8px;width:8px;box-shadow:0 0 2px rgba(0,0,0,.3);transform:translateX(-50%) rotateZ(45deg)}.wpz-insta-admin #wpbody-content>.wrap .fit-max-content{max-width:-webkit-max-content;max-width:-moz-max-content;max-width:max-content}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_settings-add-new a,.wpz-insta-admin #wpbody-content>.wrap #wpz-insta_tabs-config-cnnct .wpz-insta_tabs-config-connect-add{position:relative}.wpz-insta-admin #wpbody-content>.wrap .wp-picker-container{display:inline-flex;position:relative}.wpz-insta-admin #wpbody-content>.wrap .wp-picker-container:not(:focus-within) .wp-picker-holder{pointer-events:none;opacity:0}.wpz-insta-admin #wpbody-content>.wrap .wp-picker-container .wp-color-result{position:absolute;top:50%;left:5px;pointer-events:none;height:20px;min-height:0;width:20px;padding:0;border-radius:4px;margin:0;transform:translateY(-50%)}.wpz-insta-admin #wpbody-content>.wrap .wp-picker-container .wp-color-result:active{transform:translateY(-50%) !important}.wpz-insta-admin #wpbody-content>.wrap .wp-picker-container .wp-color-result .wp-color-result-text{display:none}.wpz-insta-admin #wpbody-content>.wrap .wp-picker-container .wp-picker-input-wrap{display:block}.wpz-insta-admin #wpbody-content>.wrap .wp-picker-container .wp-picker-input-wrap input{line-height:2;width:auto;padding-left:30px}.wpz-insta-admin #wpbody-content>.wrap .wp-picker-container .wp-picker-input-wrap .wp-picker-clear{display:none}.wpz-insta-admin #wpbody-content>.wrap .wp-picker-container .wp-picker-holder{display:block;position:fixed;top:100%;left:0;z-index:999;transition:all .2s ease}.wpz-insta-admin #wpbody-content>.wrap .wp-picker-container .wp-picker-holder .iris-picker{display:block !important}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_two-columns{display:flex;align-items:center;list-style:none;padding:0;margin:1.5em 0 0}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_two-columns.wpz-insta_two-columns-left-small{align-items:flex-start;gap:30px;margin-top:0}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_two-columns.wpz-insta_two-columns-left-small>*{text-align:left !important}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_two-columns.wpz-insta_two-columns-left-small>*:first-child{flex-grow:0;width:auto}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_two-columns>*{flex-grow:1;list-style:none;width:100%;padding:0;margin:0}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_two-columns>*:first-child{text-align:left}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_two-columns>*:last-child{text-align:right}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_notice{display:flex;align-items:center;font-size:12px;padding:0;margin:1.5em 0 0 !important}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_notice::before{content:"";display:block;background-image:url("data:image/svg+xml,%3Csvg width='14' height='14' viewBox='0 0 14 14' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M6.3 3.5H7.7V4.9H6.3V3.5ZM6.3 6.3H7.7V10.5H6.3V6.3ZM7 0C3.136 0 0 3.136 0 7C0 10.864 3.136 14 7 14C10.864 14 14 10.864 14 7C14 3.136 10.864 0 7 0ZM7 12.6C3.913 12.6 1.4 10.087 1.4 7C1.4 3.913 3.913 1.4 7 1.4C10.087 1.4 12.6 3.913 12.6 7C12.6 10.087 10.087 12.6 7 12.6Z'/%3E%3C/svg%3E");height:14px;width:14px;margin:0 .8em 0 0}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_notice p{padding:0;margin:0}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_settings-header{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;color:#242628;background:#fff;padding:15px 30px 0;border:1px solid #ddd;border-radius:3px;box-shadow:1px 1px 2px rgba(0,0,0,.1);margin:3em 0}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_settings-header #major-publishing-actions{background:transparent;padding:0 0 1em;border:0}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_settings-header #major-publishing-actions #publishing-action{display:flex;align-items:center;gap:20px;float:none}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_settings-header #major-publishing-actions #publishing-action .spinner{margin:0}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_settings-header.wpz-insta-wrap-sides{display:flex;align-items:center;margin-top:1em}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_settings-header.wpz-insta-wrap-sides .wpz-insta-wrap-left{flex-grow:1}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_settings-header .wpz-insta_settings-main-title{font-size:24px;font-weight:600;line-height:29px;padding:0;margin:0}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_settings-header .wpz-insta_settings-main-title small{font-size:14px;font-weight:normal;line-height:17px;color:#81909c}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_settings-header .wpz-insta_settings-main-title small a{text-decoration:none;color:#81909c;transition:all .2s ease}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_settings-header .wpz-insta_settings-main-title small a:hover,.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_settings-header .wpz-insta_settings-main-title small a:active{color:#3496ff}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_settings-header .wpz-insta_settings-main-title .pro{color:#f57c00}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_settings-header .wpz-insta_settings-main-title #title{position:relative;font-size:24px;font-weight:600;text-overflow:ellipsis;line-height:29px;background:transparent url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M3 17.2505V21.0005H6.75L17.81 9.94055L14.06 6.19055L3 17.2505ZM20.71 7.04055C21.1 6.65055 21.1 6.02055 20.71 5.63055L18.37 3.29055C17.98 2.90055 17.35 2.90055 16.96 3.29055L15.13 5.12055L18.88 8.87055L20.71 7.04055Z' fill='%2381909C'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:center right;min-width:100px;max-width:82%;padding:0 24px 0 0;border:0;outline:none;margin:0;overflow:hidden;box-shadow:0 0 0 1px transparent;transition:all .2s ease}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_settings-header .wpz-insta_settings-main-title #title:hover,.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_settings-header .wpz-insta_settings-main-title #title:focus{box-shadow:0 0 0 1px #3496ff}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_settings-header .wpz-insta_settings-sub-title{font-size:18px;font-weight:normal;line-height:22px;color:#242628;margin:16px 0}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_settings-header .wpz-insta_settings-main-nav{font-size:18px;font-weight:normal;line-height:22px;padding:0;margin:0}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_settings-header .wpz-insta_settings-main-nav ul{display:flex;list-style:none;gap:40px;padding:0;margin:0}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_settings-header .wpz-insta_settings-main-nav ul li{position:relative;list-style:none;padding:0;margin:0;transition:all .2s ease}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_settings-header .wpz-insta_settings-main-nav ul li.active a{cursor:default;pointer-events:none}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_settings-header .wpz-insta_settings-main-nav ul li.active a::after{transform:translateY(0)}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_settings-header .wpz-insta_settings-main-nav ul li a{display:block;position:relative;text-decoration:none;color:#242628;outline:none;padding:16px 0;box-shadow:none;overflow:hidden;transition:all .2s ease}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_settings-header .wpz-insta_settings-main-nav ul li a:active,.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_settings-header .wpz-insta_settings-main-nav ul li a:focus{outline:none;box-shadow:none}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_settings-header .wpz-insta_settings-main-nav ul li a:hover{color:#3496ff}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_settings-header .wpz-insta_settings-main-nav ul li a::after{content:"";position:absolute;left:0;right:0;bottom:0;background:#3496ff;height:6px;border-radius:2px 2px 0 0;transform:translateY(100%);transition:all .2s ease}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap.with-bg{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:14px;color:#242628;background:#fff;padding:25px 30px;border:1px solid #ddd;border-radius:3px;box-shadow:1px 1px 2px rgba(0,0,0,.1)}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap.with-bg *:not(h2):not(small){font-size:14px}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter{margin:2em 0 0}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;color:#242628;background:#fff;padding:15px 30px;border:1px solid #ddd;border-radius:3px;box-shadow:1px 1px 2px rgba(0,0,0,.1)}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table thead th,.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table thead td{border-bottom:1px solid #000}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table thead th.column-wpz-insta_account-photo,.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table thead th.column-wpz-insta_account-bio,.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table thead th.column-wpz-insta_account-token,.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table thead td.column-wpz-insta_account-photo,.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table thead td.column-wpz-insta_account-bio,.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table thead td.column-wpz-insta_account-token{display:none}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table thead th{font-weight:600;padding-left:0;padding-right:0}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table thead th.column-wpz-insta_actions{text-align:right}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table thead th a{color:#000;padding:14px 0;transition:all .2s ease}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table thead th a:hover,.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table thead th a:active{color:#3496ff}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody tr{display:table-row !important;position:relative;background:transparent}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody tr:first-child th,.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody tr:first-child td,.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody tr.inline-edit-row th,.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody tr.inline-edit-row td{border-top:none}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody tr.inline-edit-row td{padding-top:0}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody th,.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody td{vertical-align:middle;padding:20px 0;border-top:1px solid #ddd}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody th.column-wpz-insta_account-photo,.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody th.column-wpz-insta_account-bio,.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody th.column-wpz-insta_account-token,.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody td.column-wpz-insta_account-photo,.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody td.column-wpz-insta_account-bio,.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody td.column-wpz-insta_account-token{display:none}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody th.check-column{padding:0}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody td>*{margin:0}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody td a:not(.button){color:#3496ff;transition:all .2s ease}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody td a:not(.button):hover,.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody td a:not(.button):active{color:#000}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody td .row-actions{display:none}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody td .wpz-insta_quick-edit{overflow:hidden;-webkit-animation-name:slidedown;animation-name:slidedown;-webkit-animation-duration:1s;animation-duration:1s}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody td .wpz-insta_quick-edit .wpz-insta_quick-edit-columns{display:flex;list-style:none;padding:0;margin:0}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody td .wpz-insta_quick-edit .wpz-insta_quick-edit-columns>li{flex-grow:1;list-style:none;padding:0;margin:0}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody td .wpz-insta_quick-edit .wpz-insta_quick-edit-columns>li div{display:block;margin:0 0 10px}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody td .wpz-insta_quick-edit .wpz-insta_quick-edit-columns>li div:last-child{margin-bottom:0}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody td .wpz-insta_quick-edit .wpz-insta_quick-edit-columns>li strong:first-child,.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody td .wpz-insta_quick-edit .wpz-insta_quick-edit-columns>li label>strong:first-child{display:inline-block;margin:0 0 5px}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody td .wpz-insta_quick-edit .wpz-insta_quick-edit-columns>li input:not(.widefat),.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody td .wpz-insta_quick-edit .wpz-insta_quick-edit-columns>li textarea{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;width:60%}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody td .inline-edit-save{position:absolute;top:-10px;right:0;padding:0;transform:translateY(-100%)}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody td .inline-edit-save .button{float:none}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody td .inline-edit-save .button.cancel{color:#3496ff;background:transparent;box-shadow:inset 0 0 0 1px #3496ff;margin:0 1em 0 0}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody td .inline-edit-save .button.cancel:hover,.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody td .inline-edit-save .button.cancel:active,.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody td .inline-edit-save .button.cancel:focus{color:#000;box-shadow:inset 0 0 0 1px #000}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody td .inline-edit-save .spinner{float:left}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody .column-title,.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody .column-wpz-insta_account{width:50%}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody .column-wpz-insta_account a{color:#242628}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody .column-wpz-insta_account a:hover,.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody .column-wpz-insta_account a:active{color:#3496ff}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody .column-wpz-insta_actions{text-align:right;width:5%}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody .column-wpz-insta_actions strong{position:relative;cursor:pointer;font-size:20px;font-weight:600;text-align:right;white-space:nowrap;transition:all .2s ease}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody .column-wpz-insta_actions strong:hover,.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody .column-wpz-insta_actions strong:active{color:#3496ff}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody .wpz-insta_actions-menu{display:inline-block;position:relative;text-align:right}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody .wpz-insta_actions-menu:hover .wpz-insta_hidden{pointer-events:auto;opacity:1}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody .wpz-insta_actions-menu:hover strong{color:#3496ff}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody .wpz-insta_actions-menu:hover strong::after{content:"";position:absolute;left:-50px;right:0;bottom:-15px;height:25px}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody .wpz-insta_actions-menu .wpz-insta_hidden{position:absolute;right:0;bottom:-10px;z-index:999;pointer-events:none;text-align:left;background:#fff;min-width:200px;opacity:0;padding:0;border-radius:3px;margin:0;box-shadow:1px 4px 8px rgba(0,0,0,.1);transform:translate(0%, 100%);transition:opacity .2s ease}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody .wpz-insta_actions-menu .wpz-insta_hidden li{white-space:nowrap;margin:0;transition:all .2s ease}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody .wpz-insta_actions-menu .wpz-insta_hidden li:first-child a,.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody .wpz-insta_actions-menu .wpz-insta_hidden li:first-child button{padding-top:10px}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody .wpz-insta_actions-menu .wpz-insta_hidden li:last-child a,.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody .wpz-insta_actions-menu .wpz-insta_hidden li:last-child button{padding-bottom:10px}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody .wpz-insta_actions-menu .wpz-insta_hidden li.wpz-insta_actions-menu_divider{pointer-events:none;background:#ddd;height:1px;padding:0;margin:5px 20px}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody .wpz-insta_actions-menu .wpz-insta_hidden li.wpz-insta_actions-menu_delete a:hover{color:#ec2439}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody .wpz-insta_actions-menu .wpz-insta_hidden li a,.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody .wpz-insta_actions-menu .wpz-insta_hidden li button{display:block;white-space:nowrap;color:#242628;width:100%;padding:7px 20px;margin:0;box-sizing:border-box;transition:all .2s ease}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody .wpz-insta_actions-menu .wpz-insta_hidden li a:hover,.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody .wpz-insta_actions-menu .wpz-insta_hidden li button:hover{color:#3496ff}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody .inline-edit-col-left,.wpz-insta-admin #wpbody-content>.wrap .wpz-insta-wrap~#posts-filter .wp-list-table tbody .inline-edit-col-right{display:none}.wpz-insta-admin #wpbody-content>.wrap #poststuff{padding:0;margin:0}.wpz-insta-admin #wpbody-content>.wrap #poststuff #post-body{margin:0}.wpz-insta-admin #wpbody-content>.wrap #poststuff #post-body #post-body-content{float:none;margin:0}.wpz-insta-admin #wpbody-content>.wrap #poststuff #post-body .postbox-container{display:none}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_tabs-content{display:grid}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_tabs-content *{pointer-events:inherit}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_tabs-content>*{grid-column:1;grid-row:1;align-self:start}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_tabs-content>*:not(.active){pointer-events:none;opacity:0}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_tabs-content>*:not(.active) *{pointer-events:none !important}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar{display:flex;gap:20px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;color:#242628}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar.hide{pointer-events:none}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar:not(.show-pro) .wpz-insta_pro-only{display:none}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar input,.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar textarea,.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar select{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:14px}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar .wpz-insta_sidebar-left,.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar .wpz-insta_sidebar-right{background:#fff;border:1px solid #ddd;border-radius:3px;box-shadow:1px 1px 2px rgba(0,0,0,.1)}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar .wpz-insta_sidebar-left{display:grid;grid-template-rows:auto 1fr;flex-basis:28%}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar .wpz-insta_sidebar-left.is-pro .wpz-insta_sidebar-left-section{max-height:70vh !important}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar .wpz-insta_sidebar-left .wpz-insta_sidebar-left-section-head{display:flex;align-items:center;grid-column:1;grid-row:1;background:#fafafa;min-height:30px;padding:20px;border-bottom:1px solid #ddd}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar .wpz-insta_sidebar-left .wpz-insta_sidebar-left-section{grid-column:1;grid-row:2;align-self:start;transition:all .3s ease;overflow-x:hidden;overflow-y:auto}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar .wpz-insta_sidebar-left .wpz-insta_sidebar-left-section:not(.active){pointer-events:none;opacity:0}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar .wpz-insta_sidebar-right{flex-grow:1;position:relative}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar .wpz-insta_sidebar-right.is-loading{transition:all .3s ease}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar .wpz-insta_sidebar-right.is-loading.hide-loading::before{opacity:0}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar .wpz-insta_sidebar-right.is-loading::before{content:"";position:absolute;top:300px;left:50%;z-index:1;background-image:url("data:image/svg+xml,%3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' viewBox='0 0 50 50' xml:space='preserve'%3E%3Cpath fill='%233496ff' d='M43.935,25.145c0-10.318-8.364-18.683-18.683-18.683c-10.318,0-18.683,8.365-18.683,18.683h4.068c0-8.071,6.543-14.615,14.615-14.615c8.072,0,14.615,6.543,14.615,14.615H43.935z'%3E%3CanimateTransform attributeType='xml' attributeName='transform' type='rotate' from='0 25 25' to='360 25 25' dur='0.6s' repeatCount='indefinite'/%3E%3C/path%3E%3C/svg%3E");background-size:contain;height:64px;width:64px;opacity:1;transform:translateX(-50%);transition:all .3s ease}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section-big-title{font-size:18px;font-weight:600;margin:30px 20px}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section{padding:30px 0 0;border-top:1px solid #ddd;margin:30px 20px 20px}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section:first-child,.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section.no-top-border{padding-top:0;border-top:0;margin-top:20px}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_sidebar-section-title{font-size:18px;font-weight:600;margin:0 0 15px}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_sidebar-section-title.smaller-title{font-size:14px}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_sidebar-section-description{font-size:14px;font-weight:normal;margin:0 0 20px}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_sidebar-section-description:last-child{margin-bottom:0}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section p{font-size:14px}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section ul li,.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section ol li{margin-bottom:1em}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_text-btn-aligned{display:flex;align-items:stretch;gap:15px;width:100%}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_text-btn-aligned>input{flex-grow:1;margin:0}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_shortcode,.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_shortcode-copy-btn{display:flex;align-items:center;font-size:14px;line-height:2}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_shortcode{background:transparent;border:1px solid #ddd}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_shortcode-copy-btn{display:grid;text-align:center;color:#3496ff;background:transparent;border:1px solid #3496ff;box-shadow:none;transition:all .3s ease}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_shortcode-copy-btn:hover{color:#fff;background:#3496ff}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_shortcode-copy-btn.success{color:#fff;background:#2b6;border-color:#2b6}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_shortcode-copy-btn.success .wpz-insta_shortcode-copy-btn-text-normal{opacity:0}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_shortcode-copy-btn.success .wpz-insta_shortcode-copy-btn-text-success{opacity:1}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_shortcode-copy-btn .wpz-insta_shortcode-copy-btn-text-normal,.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_shortcode-copy-btn .wpz-insta_shortcode-copy-btn-text-success{grid-column:1;grid-row:1;transition:all .3s ease}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_shortcode-copy-btn .wpz-insta_shortcode-copy-btn-text-normal{opacity:1}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_shortcode-copy-btn .wpz-insta_shortcode-copy-btn-text-success{opacity:0}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_feed-user-select.is-set .wpz-insta_feed-user-select-input .wpz-insta_feed-user-select-button-wrap .wpz-insta_feed-user-select-button-highlight{display:none}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_feed-user-select.is-set .wpz-insta_feed-user-select-input .wpz-insta_feed-user-select-button-wrap .wpz-insta_feed-user-select-button{pointer-events:none;opacity:0}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_feed-user-select.is-set .wpz-insta_feed-user-select-edit-link{display:inline-block}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_feed-user-select:not(.is-set) .wpz-insta_feed-user-select-input .wpz-insta_feed-user-select-info{pointer-events:none;opacity:0}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_feed-user-select .wpz-insta_feed-user-select-input{display:grid;background:#eee;border:1px solid #9ca2a7;border-radius:4px}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_feed-user-select .wpz-insta_feed-user-select-input .wpz-insta_feed-user-select-info{display:flex;align-items:center;justify-content:space-between;grid-column:1;grid-row:1;margin:15px;transition:all .3s ease}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_feed-user-select .wpz-insta_feed-user-select-input .wpz-insta_feed-user-select-info .wpz-insta_feed-user-select-info-left .wpz-insta_feed-user-select-info-name{font-size:14px;font-weight:600;padding:0;margin:0}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_feed-user-select .wpz-insta_feed-user-select-input .wpz-insta_feed-user-select-info .wpz-insta_feed-user-select-info-left .wpz-insta_feed-user-select-info-type{font-size:12px;color:#81909c;padding:0;margin:0}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_feed-user-select .wpz-insta_feed-user-select-input .wpz-insta_feed-user-select-info .wpz-insta_feed-user-remove-button{font-size:13px;font-weight:600;color:#3496ff;background:transparent;border:1px solid #3496ff;box-shadow:none}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_feed-user-select .wpz-insta_feed-user-select-input .wpz-insta_feed-user-select-info .wpz-insta_feed-user-remove-button:hover{color:#ec2439;border-color:#ec2439}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_feed-user-select .wpz-insta_feed-user-select-input .wpz-insta_feed-user-select-button-wrap{position:relative;display:flex;align-items:stretch;justify-content:stretch;grid-column:1;grid-row:1;pointer-events:none}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_feed-user-select .wpz-insta_feed-user-select-input .wpz-insta_feed-user-select-button-wrap .wpz-insta_feed-user-select-button-highlight{display:block;position:absolute;top:-2px;left:-2px;right:-2px;bottom:-2px;z-index:1;pointer-events:none;border:0;border-radius:6px;box-shadow:inset 0 0 1px 1px #3496ff,0 0 1px 1px #3496ff;transition:all .3s ease;-webkit-animation:highlighting .8s infinite;animation:highlighting .8s infinite}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_feed-user-select .wpz-insta_feed-user-select-input .wpz-insta_feed-user-select-button-wrap .wpz-insta_feed-user-select-button{display:flex;flex-grow:1;position:relative;z-index:2;pointer-events:all;font-size:14px;font-weight:600;color:#242628;background:#eee;opacity:1;border:0;border-radius:4px;box-shadow:none;transition:all .3s ease}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_feed-user-select .wpz-insta_feed-user-select-input .wpz-insta_feed-user-select-button-wrap .wpz-insta_feed-user-select-button:hover{color:#fff;background:#3496ff}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_feed-user-select .wpz-insta_feed-user-select-edit-link{display:none;margin:20px 0 0}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_feed-layout{display:flex;align-items:end;gap:10px;max-height:999em;margin:0 0 20px}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_feed-layout .wpz-insta_feed-layout-pro{display:flex;gap:15px;padding:10px;border-radius:4px;box-shadow:0 0 0 2px #f57c00;max-width:76%;box-sizing:border-box}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_feed-layout .wpz-insta_feed-layout-pro legend{font-size:13px;font-weight:600;color:#fff;background:#f57c00;padding:0 5px;margin:0 auto;border-radius:2px;box-shadow:none}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_feed-layout .wpz-insta_feed-layout-pro .wpz-insta_feed-layout-option{pointer-events:none;opacity:.75}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_feed-layout>.wpz-insta_feed-layout-option{margin-bottom:10px !important;max-width:21%}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_feed-layout .wpz-insta_feed-layout-option{display:block;background:transparent;padding:0;border:0;box-shadow:none;outline:none;margin:0;transition:all .3s ease}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_feed-layout .wpz-insta_feed-layout-option.disabled{pointer-events:none;opacity:.4}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_feed-layout .wpz-insta_feed-layout-option:hover svg{color:#9ca2a7;fill:#9ca2a7}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_feed-layout .wpz-insta_feed-layout-option input{display:none}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_feed-layout .wpz-insta_feed-layout-option svg{display:block;color:#81909c;fill:#81909c;max-width:100%;height:auto;transition:all .3s ease}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_feed-layout .wpz-insta_feed-layout-option input:checked~svg{color:#3496ff;fill:#3496ff}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_feed-layout-etc,.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_feed-general,.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_feed-profile-general,.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_feed-load-more-general{font-size:14px}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_table{display:flex;flex-direction:column;gap:20px;width:100%}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_table .wpz-insta_table-row{display:flex;align-items:center;width:100%}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_table .wpz-insta_table-row.wpz-insta_table-row-full{flex-direction:column;align-items:stretch}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_table .wpz-insta_table-row.wpz-insta_table-row-full .wpz-insta_table-cell{width:100%}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_table .wpz-insta_table-row.hidden{display:none}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_table .wpz-insta_table-row .wpz-insta_table-cell{display:block;white-space:nowrap;line-height:30px;width:50%}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_table .wpz-insta_table-row .wpz-insta_table-cell input{margin:0}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_table .wpz-insta_table-row>input[type=checkbox]{margin:0 1em 0 0}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_show-on-hover{display:table-row}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_show-on-hover>strong{display:block;margin:0 0 20px}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_feed-only-pro{display:flex;flex-direction:column;gap:20px;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;padding:0}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_feed-only-pro.wpz-insta_pro-only-with-bottom{padding-bottom:10px;border-bottom:2px solid #f57c00}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_feed-only-pro.hidden{display:none}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_feed-only-pro legend{display:flex;width:100%;padding:0;border-bottom:2px solid #f57c00;margin:0 0 10px}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_feed-only-pro legend>strong{font-size:13px;color:#fff;background:#f57c00;padding:0 5px;border-top-left-radius:2px;border-top-right-radius:2px;box-shadow:none}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section .wpz-insta_feed-only-pro>label{opacity:.5}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section.wpz-insta_sidebar-section-token,.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section.wpz-insta_sidebar-section-check-new,.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section.wpz-insta_sidebar-section-request-timeout{max-height:0;opacity:0;overflow:hidden;padding-top:0;margin-top:0;margin-bottom:0;transition:all .3s ease}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section.wpz-insta_sidebar-section-token.active,.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section.wpz-insta_sidebar-section-check-new.active,.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section.wpz-insta_sidebar-section-request-timeout.active{max-height:999em;opacity:1;padding-top:30px;margin-top:30px;margin-bottom:20px;overflow:visible}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section.wpz-insta_sidebar-section-token #wpz-insta_user-token{display:block;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:14px;font-weight:normal;text-overflow:ellipsis;color:#242628;background:#fff;width:100%;padding:4px 8px;border:1px solid #ddd;border-radius:2px;box-shadow:none}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section.wpz-insta_sidebar-section-request-timeout>label>strong{font-size:14px}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section.wpz-insta_sidebar-section-load-more.wpz-insta_pro-only{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;padding-top:0;padding-bottom:20px;border-top:none;border-bottom:2px solid #f57c00;margin-top:0}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section.wpz-insta_sidebar-section-load-more.wpz-insta_pro-only .wpz-insta_sidebar-section-title,.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_sidebar-section.wpz-insta_sidebar-section-load-more.wpz-insta_pro-only .wpz-insta_table>label{opacity:.5}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_widget-preview{position:relative;z-index:2;padding:0;margin:0}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_widget-preview .wpz-insta_widget-preview-header{display:flex;align-items:center;padding:0;border-bottom:1px solid #ddd;margin:0}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_widget-preview .wpz-insta_widget-preview-header .wpz-insta_widget-preview-header-title{flex-grow:1;font-size:14px;font-weight:600;text-align:center;padding:0;margin:0}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_widget-preview .wpz-insta_widget-preview-header .wpz-insta_widget-preview-header-links{display:flex;padding:0;margin:0;transition:all .3s ease}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_widget-preview .wpz-insta_widget-preview-header .wpz-insta_widget-preview-header-links.disabled{pointer-events:none;opacity:.3}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_widget-preview .wpz-insta_widget-preview-header .wpz-insta_widget-preview-header-links.disabled .wpz-insta_widget-preview-header-link.active{background:#ddd}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_widget-preview .wpz-insta_widget-preview-header .wpz-insta_widget-preview-header-links.disabled .wpz-insta_widget-preview-header-link.active svg{fill:#81909c}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_widget-preview .wpz-insta_widget-preview-header .wpz-insta_widget-preview-header-links .wpz-insta_widget-preview-header-link{display:flex;align-items:center;justify-content:center;cursor:pointer;background:#ddd;min-width:70px;min-height:70px;padding:0;margin:0;transition:all .3s ease}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_widget-preview .wpz-insta_widget-preview-header .wpz-insta_widget-preview-header-links .wpz-insta_widget-preview-header-link:hover{background:#eee}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_widget-preview .wpz-insta_widget-preview-header .wpz-insta_widget-preview-header-links .wpz-insta_widget-preview-header-link.active{cursor:default;color:#fff;background:#3496ff}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_widget-preview .wpz-insta_widget-preview-header .wpz-insta_widget-preview-header-links .wpz-insta_widget-preview-header-link.active svg{fill:#fff}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_widget-preview .wpz-insta_widget-preview-header .wpz-insta_widget-preview-header-links .wpz-insta_widget-preview-header-link svg{fill:#81909c;padding:0;margin:0;transition:all .3s ease}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_widget-preview .wpz-insta_widget-preview-view{display:flex;align-items:start;justify-content:center;padding:0;margin:0;overflow-x:hidden;overflow-y:auto;transition:all .3s ease}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_widget-preview .wpz-insta_widget-preview-view.wpz-insta_widget-preview-size-desktop .wpz-insta_widget-preview-view-inner{max-width:500px}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_widget-preview .wpz-insta_widget-preview-view.wpz-insta_widget-preview-size-tablet .wpz-insta_widget-preview-view-inner{max-width:768px}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_widget-preview .wpz-insta_widget-preview-view.wpz-insta_widget-preview-size-mobile .wpz-insta_widget-preview-view-inner{max-width:380px}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_widget-preview .wpz-insta_widget-preview-view.layout-fullwidth.wpz-insta_widget-preview-size-desktop .wpz-insta_widget-preview-view-inner{max-width:100%}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_widget-preview .wpz-insta_widget-preview-view .wpz-insta_widget-preview-view-inner{flex-grow:1;padding:0;transition:all .3s ease}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_widget-preview .wpz-insta_widget-preview-view .wpz-insta_widget-preview-view-inner iframe{display:block;height:400px;width:100%;visibility:visible;opacity:1;overflow:hidden;transition:all .3s ease}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_widget-preview .wpz-insta_widget-preview-view .wpz-insta_widget-preview-view-inner iframe.wpz-insta_preview-hidden{pointer-events:none;visibility:hidden;opacity:0}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_tabs-config-connect{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;color:#242628;background:#fff;padding:25px 30px;border:1px solid #ddd;border-radius:3px;box-shadow:1px 1px 2px rgba(0,0,0,.1)}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_tabs-config-connect .wpz-insta_tabs-config-connect-title{font-size:24px;font-weight:600;padding:0;margin:0 0 10px}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_tabs-config-connect .wpz-insta_tabs-config-connect-description{padding:0;margin:0 0 20px}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_tabs-config-connect .wpz-insta_tabs-config-connect-accounts{display:grid;grid-template-columns:repeat(auto-fill, minmax(300px, 1fr));gap:30px;padding:0;margin:0}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_tabs-config-connect .wpz-insta_tabs-config-connect-accounts li{cursor:pointer;background:#eee;padding:15px;border:1px solid #9ca2a7;border-radius:4px;margin:0;transition:all .3s ease}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_tabs-config-connect .wpz-insta_tabs-config-connect-accounts li:hover{color:#fff;background:#3496ff;border-color:#0063cd}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_tabs-config-connect .wpz-insta_tabs-config-connect-accounts li:hover h3{color:#fff}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_tabs-config-connect .wpz-insta_tabs-config-connect-accounts li:hover p{color:rgba(255,255,255,.6)}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_tabs-config-connect .wpz-insta_tabs-config-connect-accounts li h3{font-size:14px;font-weight:600;padding:0;margin:0 0 5px;transition:all .3s ease}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_tabs-config-connect .wpz-insta_tabs-config-connect-accounts li p{font-size:12px;color:#81909c;padding:0;margin:0;transition:all .3s ease}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_tabs-config-connect hr{margin:30px 0}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_tabs-config-connect .wpz-insta_tabs-config-connect-subtitle{font-size:14px;font-weight:normal;padding:0;margin:0 0 20px}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_settings-support,.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_settings-license{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;color:#242628}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_settings-support .section-title,.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_settings-license .section-title{font-size:20px;font-weight:600;line-height:24px;margin:0 0 1em}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_settings-support .section-title svg,.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_settings-license .section-title svg{vertical-align:text-bottom;margin:0 5px 0 0}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_settings-support .section-description,.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_settings-license .section-description{padding:0;margin:0 0 2em}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_settings-connect{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;color:#242628;background:#fff;padding:25px 30px;border:1px solid #ddd;border-radius:3px;box-shadow:1px 1px 2px rgba(0,0,0,.1)}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_settings-connect .section-title{font-size:24px;font-weight:600;line-height:29px;margin:0 0 16px}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_settings-connect .section-description{font-size:14px;white-space:pre-wrap;margin:0 0 30px}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_settings-connect .account-options{display:flex;flex-wrap:wrap;gap:30px;margin:0 0 30px}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_settings-connect .account-options .account-option{display:flex;flex-direction:column;min-width:350px;padding:20px;border:1px solid #ddd;border-radius:3px}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_settings-connect .account-options .account-option .account-option-title{font-size:16px;font-weight:600;line-height:19px;margin:0 0 16px}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_settings-connect .account-options .account-option .account-option-checklist{font-size:14px;padding:0;margin:0 0 20px}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_settings-connect .account-options .account-option .account-option-checklist li{line-height:18px;background:url("data:image/svg+xml,%3Csvg width='18' height='18' viewBox='0 0 18 18' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M9 0C4.03759 0 0 4.03759 0 9C0 13.9624 4.03759 18 9 18C13.9624 18 18 13.9624 18 9C18 4.03759 13.9624 0 9 0ZM14.0301 6.63158L8.2782 12.3383C7.93985 12.6767 7.3985 12.6992 7.03759 12.3609L3.99248 9.58647C3.63158 9.24812 3.60902 8.68421 3.92481 8.32331C4.26316 7.96241 4.82707 7.93985 5.18797 8.2782L7.6015 10.4887L12.7444 5.34586C13.1053 4.98496 13.6692 4.98496 14.0301 5.34586C14.391 5.70677 14.391 6.27068 14.0301 6.63158Z' fill='%2322BB66'/%3E%3C/svg%3E");background-position:0 5px;background-repeat:no-repeat;min-height:18px;padding:5px 0 5px 32px;margin:0}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_settings-connect .account-options .account-option .account-option-token-input{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:14px;line-height:17px;color:#242628;padding:10px;border:1px solid #ddd;box-shadow:none;transition:all .3s ease}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_settings-connect .account-options .account-option .account-option-token-input:hover,.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_settings-connect .account-options .account-option .account-option-token-input:focus{border-color:#3496ff;box-shadow:none}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_settings-connect .account-options .account-option .account-option-button{display:flex;cursor:pointer;align-items:center;justify-content:center;font-weight:600;line-height:1;color:#fff;background:#3496ff;background-position:center left;background-repeat:no-repeat;width:100%;padding:15px 40px;border:0;border-radius:2px;margin:auto 0 0;box-shadow:none;transition:all .3s ease}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_settings-connect .account-options .account-option .account-option-button:hover,.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_settings-connect .account-options .account-option .account-option-button:focus{background-color:#70b5fe}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_settings-connect .account-options .account-option .account-option-button.disabled{pointer-events:none;opacity:.5}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_settings-connect .account-options .account-option .account-option-button svg{margin:0 16px 0 0}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_settings-connect .section-notice{display:flex;align-items:center;font-size:13px;margin:0}.wpz-insta-admin #wpbody-content>.wrap .wpz-insta_settings-connect .section-notice svg{margin:0 12px 0 0}.wpz-insta-admin .wpz-insta_settings-footer .wpz-insta_settings-footer-wrap{display:flex;align-items:center;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;color:#242628;background:#fff;padding:30px;border:1px solid #ddd;border-radius:3px;box-shadow:1px 1px 2px rgba(0,0,0,.1);margin:20px 0}.wpz-insta-admin .wpz-insta_settings-footer .wpz-insta_settings-footer-wrap .wpz-insta_settings-footer-logo{padding:0;margin:0 30px 0 0}.wpz-insta-admin .wpz-insta_settings-footer .wpz-insta_settings-footer-wrap .wpz-insta_settings-footer-logo a{display:block;text-indent:-999em;background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAsUAAAB1CAYAAACmnpxEAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA3BpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQwIDc5LjE2MDQ1MSwgMjAxNy8wNS8wNi0wMTowODoyMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDpGODdGMTE3NDA3MjA2ODExODIyQUJEN0ZFNTE5QkYyRSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoyMERERTJGNDlFNjgxMUU4ODM0NkExODhFNzlBMDMzQiIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoyMERERTJGMzlFNjgxMUU4ODM0NkExODhFNzlBMDMzQiIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxNSAoTWFjaW50b3NoKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjEyMzc5NGVhLTBiZGYtNDQ3Zi05ODc1LTY1ZDk5NjhjZGVlNiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpGODdGMTE3NDA3MjA2ODExODIyQUJEN0ZFNTE5QkYyRSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pkkr7JsAAB/xSURBVHja7F1RUhy5shWE/y9vBVNegdsroPi874dmBXSvAIi47xv4nhsBrIBmBW7/zP2kWIHbK3B5BbdnBbwSVnvaDNBdVSelTNU5ER0MY7u6pJNKHaVSqZ3Hx0dHEARBEARBEEPGLruAIAiCIAiCoCgmCIIgCIIgCIpigiAIgiAIgqAoJgiCIAiCIIhB4936Lzs7O+wRgiAIYiM+/PNfZfNjr/mMms8/ws9tUDef7+Gn/yy+/uffS/ZoMg6L8CGHhFmgikbsrD9o9L//txocJtAMwmrgDm0UJiULWDZ8LbZ00hbAScAmb1pQN/ZTG+LXzwue4/0gnEbo/vBjqvk8NJ9qG19BkMOEfbkn0H/m/YRRXVMv/vj9Zx+/e/aHk+Zzbqj/hh7avgpOzgL8AuZgi793b2jw/iL6w4Tgf34N/10PYXIPTuzeEW1w3XzODPB63HzGTj5YUoTPOHy3H0fz5vO5GUNzmgs5VIZJmH+lMWs+04Et3O4ji+Kz4I9fFMUEQXTD3toCZbw2yJdhQZBz9KQk/a0x0vhSYVKaBCFVJB5P/j0mYQx5cXAztKgZOdTbzZG+ZzwkUdzgk4u/+/3LnExRTBDyE8PY/RU98RPCPLMJ/gNpti2KQ/rLyfqCTtkYOvWf5j39AvNy6Klzxjlc+T/LHMYKBOw1/TUewm5J086rFH5x8cfvFUUxQaRD8WyCv2sc3sx4m0rS2kkkaBFS54Y49O9ZhrFzxtxjkxw+BQmschjyiYuIX3nofgRScrbhcZgXY+NvCzOWZCOItBP8beMQvjWfiVFnVjhDh3MViplk3918fO7evdFFjX/nLz66FETKIO2HHA4iCFBmbsd+/rhN9PUPFMUEoQ/FmjgeG3v3EenrxXvsCchvx94aFlLP4aNLFscNObTL4X5sPxEOTOaKFHnEKywoiglCt0j61DjAT4YiJ/ukzYYobmzqSXy4H4efcsJeGDe3uUeNB8ChhahxCoF6nKk9X7m0gZWKopgg9MNHTKxETkrSpXtB4bcnwzb7lbNT17wLvFC8D9uxuYmHoXB4aoDDFD5vnKFNp8ojXsHXJ15SFBOEDfyMnCh2arEK2OfMcYyJ58uAFi/eHr/ktN1MDlVxkYqDIjOb9oue28SvUb30P1l9Aj8gljwRTQBxGsTnmcIb9CiIFfdfWFCdDrBf/Xjx0cYD676YHKrjMKXP8ykUuWiLlHnEKzy89D8ZKW63srnf5jPU09CEGCZK7aokNb0wE/JV/iDWl4GKqeeiyuTCjRyq5TDlGYosUigU5BGvsKAo7ofzFgN5zO4iwNB4lTIP2fUQxF//82/4TVVBQHxxjOKbFcbkUDWHKQMB5lMoFOQRr7Bc/PE7RXGfVXtLoXvCXiMkhHEoxaQFJSlRJ4j9wqlgF9sUxuTwTQ6LxNwULv2Wv9kqFEryiFd4NQ2Fong7TFoOhlHKwvxE3rbY2NaFAgdH+9YpiJm69bKoUl+ujRxu5DB1qUoNPs/yLvStItt+eO0PeNBuO3SJ/PoVXcWuIwRw7q9IbcRVSvvqG3mrw0cjRkLOu8pUEFeBy+9rv6+EzMpO/hH+e5ToPf33+lzGqUaDI4cmOPygwFR8CkXR+BGtvvM1+75wunYWq21Fcd1CyCEHhj9Vv1BKpl+ZFR3+qY/oXQobb9c+K2MYV8d3bSP0CofZZlwEG3QJvrvzqruxr48JK1L0zSe+a979QuF4nwg5b29jR5mIKd+WuyDyN43r+QvvXIQ+9jY0jvju3ic/NO88oyAmh8LzneQc4fv72pAg9nZyrombxR+/v/p3dx4fH//6ZWenTUORpWLqxsjfKyW0z1Wal9om/uDMvqEca9O+j4lXn4jBdtA16rpWq3cUJogy4gRx3bz3WaK+/2/Pdh4kjnS/Joglct4Wob1L8PvGFFN1EFEz9EI/9PuxixNJ8hx81BJpI4f2OXyjTz45mXSHpPNuh/nxWwz7boTuDuI5fdIn7oCiWOWWwNpquCt82sWFMjtFOq07N3AEoVOFz3Wwm3GYIKTzv3wN45vY4wZx4ISCGMJBDDFVh8X9THAM+WfP1iJKksLK95cP6BwpsDlyaJzDiHPtOkaGUihi1SOGzSe7PQbBwmFzAjUmkPetIrEXJltNONRoiJkJ5Xnz8Q7b737MhL/uPEET+zp7ValSBgXxXoTJxr+zvzDmfaytar9Qaj4HQexITvjj1AdFyaF9DjfwWwpzq/7AXeQ8Ypit9a0+MQc26lgZod6gEYJWW3k2lJHWvLlv4wRRh4NVHwWF4CRBqaK++cSVonFuShAH+PeVLDHm/boXUteJxs08jJm54NekLg1FDu1z+BYOhZ+vujRbxDzinyanRRQ/ABs1UlYyB3V4QE15NvDqde6IbSeIVQ7YTOgrYi+8+trzg5LxMLImiEP0RSpK5N/3yO9ypL5S3H9/2G2RypkvUu3iDZDDy9w4jOAjt9EVhVJBvNoFiQlY0Gm3p9HPXftT+5uEqBYgVzlaVnXI1evg84k7jBcfNZYoJxRtYggOr68zTr7DsHbACY1aUBCXTi764jn5GHy6pjFz7eRKcJ0nsLshcniRE4dbcOz9Y4zLYrSmUMTKI163sUqFKA5ADsBDJUZdOmwplYmSKDhq9bpk6kTnwTtz+MjJXjjcZ8GG6tQHRARP/K+idBKC+OkCCqEumQchXyseMxKiqog4bshhBhxGnmc3QV0KRaJ6xFCbR4jizxmufCS2o08TGyty9crUiX4TxIVAH8ZaUPbNJ14kHgeSgvhAcLF462Rqns40bLUnWkxK+XpymC+HmnyxqhSKBHnEInPKLsDQoSkUqVd9wcgk3iH1qg7Zps+O6Iupw6YexVqd9/2eh4Rj26QgDj5RwieJXDktvJis0PYcQ1iQQ/scKvTFsb/rLftOkUf806xUieKAnFIopFadqQ8F7IOes9SWs2YRIapzBravGBND392GKkV/GxbEq5qsgxZTazgCLyYlff46h7fk0C6HLf1MzFTJQyWcRs8jXoOuSHEAMvozTmjQqDJsryFltBjVr5UjUMJ45rD5UKXw+CgBbV4kGNdWUyY8/HYkerFTGRVTEovJGHPOuYDtkUMluiHxe4xTn1dqvv/UpY1YqxTFyMjhXpjEUhm0pIGVKdoGTklh6gQWN8BnFcLv2tfxVQlsX+qSBHFBHCL/6LMI/n2PLA+YsJhE2lIh5ZfDc8mhYQ5bIkXkNmUg0ff5VcL+XqIPl+6CDHzp8rjI4yST73iOfeCzmDqBxVwpzxLPj5pPHATxvdBi4SBC1Bu95e799FT7gawtgT6wJSUsrsiheQ7b+JsUwvwwYXs/JbYhuA/eBT7LdBWKsDUcw6BTlGdD9ec8E2esBmGVWxt53b7jYxFxPK8EscSYnkoL4uCPSmvvHXHcVA4badwnh+TQqChPlUIhVU0lG1GMjHgVCU6TxoxORyvPFvoR1ZcqbiLLEKiBPRK0I8QBkiqSzUsL4lmEZqBLG80yPCCLvECoJIfk0LAojyrIQx6xhjzur+gHwkSxQApFzKLqXjROMhXgyH5k6oTugS2aD99X+MfYZchBEAtEGGsnd11yukHzg4sluN/JITm0KMqjpVAoyCP+ZV5BP/Ad+HkPQBHmheN1pI6dRCby6RaeSKt+1Op1ofW2JCLK5HUdcTwOVhAHoCOMZxmnPc2B/tuLmoocksOOQrFI2IdPKRTSNqIkj3h9XlKdPrEybhRGEfNkUhx+i/WdqEXKnSMICmLpdpQOG3GqMq8rjjzL8oEcksMeYjw1Yuyua8gjXkEktx4qikMkcWGJ5HChRookdfFbeMCl2CpHEHpx6+xHiD3QqVXTnEkHi8WCHCZBpZDDtkCkL9QK3uEtPYHMI64Bz9AvigPulBnaJqS8CUf6nnBU6kSdy4lnIj80zvpWaAF9FlMQC5xtmA0k5QklqkbkMMnCZqmJww6c+6BaCXhU3xJ1pWAbkXnEZ6DFy1eJtkqIYuhhO8kUikB0yoLf0qVUxgo5Jf6O39gFvQTxRODRs5BHHdUfgJ93ORAzWADtqa8/npBD8xymEKMV4NDhHnh3eL0/UXnEc6CesBEpFkihKAWNOfV96WLXSoMT/5lPLAsUTxUFMUwQp9iyPgG3oR6IKSAjRn2DJMfk0DyHbYHY0V6VO50peJfnQOURe1ueAvkxkz7h8VmZwb22+pkocAZSwhy1mGDqhI1Iw6CQmyAWOL1+OSBzqJXYJDk0zmFC/12Fn30DUGOwTU9Az/QR8KOQKoMQxbVUpQ0pUWyhXvGpkgFVSGx5ABcTFSWY+ESKwmIgfZZbhNgDGWGcD6x8ItLuR+TQvCiOFikGXY61DLf7rUqM9ekLWAoFOo94Lbi2r8xe5EUxgNjnJJcCr3msyCEcgwcqKvHf47MjrHD/JwWxSUGMXvwPKt0JHDHaI4dJOKyVcJiC8+r5gqjn83oHxIKGuAX15ezZgWXEokXsdt1dQWNBRouhKRRhS6AAPOoANbDA5dlQgniZeX1MDWDZvHbjNjtBDN52rzlmySERDYio5wN4QYSYU65A4tUHSM/WxkkBEtpiu6KSohi50kWnFyCic1XY8kAJEWRuMWoRQccsO5GWDpuDuMi4r7wYvs1NEIMXsRyz5JCIC3ikOHUKBTD4sJ5HvILqQ3aiohicQlGgci/DcxAO7Cb8RB2GmABLyaAc9IMjJIGsU13neg2soCD+JYqREMidMFaKIYdEHL+EEMSvHWRPkkIBziOevpAWA9Fxkvn2u8J2g1zxooTeCciQ54GcCiT+9xCrTvA2HiMWcg711DG6lFoQHyhZSKDsgJViyCERD4jUiUpoYdRaS4DziK9fSQGS7DMTohgZaeyd8gAsw3a54feuQEQOUc55nmvkUYHQKxz+NsOHDPspe0EMPkRccXSRQ8LUQuhFvw1KoWgblUXlEfvU0td24AqQ/7YpisNKATXxjACH0RCC2Lfn+QoI1c4C4GBR23isOiEzga5uB0KekM7uQORAIsTOYctHccySQyKOfypQAvKNP7vp+ezjFu2ZAPXR0RtzH0IUf5XkdjeC/WhKoUCkTsyeT6jh9xmojSc9BiqyFBsjFjKC+N7h62hSENsUxE/NBT6LY5YcEnGAmGcXG3Jj+/r1rVIowHnER2/4V9S8V1sXxSputwtJ8YhVyo3Qqu6nIfeIiKME8WJgheNjCL2RkCBG2p6WfroSeLRGQewctozXcsBjC2knbTEih+Y5jKZFtl0AhTm4T1s2FigA5xFfri4hkdQnG75DvygGp1CMe1RoQEWJ6zcMeAZq50nCgerB089Yh38qKIirXA7mrC0c0MX3tQpi6EJ2wEMMmoqUUBSTw3Qcphi325wD6TsXb0qhQOUR+zNIF5tcvIUxshvJ4JOmUITIK8KI74QNeIVJ10WDQr6GLIb9Iu5LcDxStyxdZtJXUoLYT5BTjYIYfGHP1wEPtRHYXsjhgDjsMG5LkJ+qIszF47fmJ4fJI669j43EcTaiGHkyvks0FHHSf7EpbB/+HEHaXsirbCsqEAO1ZupEP3HXfC6azzf340DdSPDr5tJbSRkI4gPFkXSkoBpylPE3mCptbytIDitymITDGBrkJT2x3KIttRNIoQiLOdS5jaNNbQEesvsubYjvIhn8HEjAeMtVyToZiAjqTYu/h2irT6GYIVaEHbgaGg4bO9nagQWHshrge0H4fgg/i0jv7N/nzHrHD1gQO2dvy1grUh7g2XOEdQ7bogQ8o81Zq7ue/XP8grBGVUCabuljUfyKLxyjRIqDoECJrb2WZcsmAPJ99HS2ZVtnoAlq1LKdzCfujlXO72uf/zZcPK4+ze/f1v7MO5fzsCgpIr7zpfWI/sAFMXKicDnsGBgVVORwQKI4BNmkS7E9BzSFomkDKo94tq0ucobOTuxGNPpUVSgQB+zaCkVUNYDjyAOVtynZgD9cd01BbFoQEzg7QtkQr7Unh60EZowFEDKFIuQRn4LEaZudSkR6zDLG2ZCYonge2zBDpLUAfN+18N9/DZMtD3KgUieGHKmwAu8gj4xPgsgyQBTEw06dKMFjK+W4JocYsSYJxDXFXbRQ30BbCcwj7nJ42cQhu6iiOHQgSnQVW9Y1FLmsY8u2zlDCONJA9eBtSvrFz5HlWqaCF5gMOUI85Kj4PvBZKYMCNTk0MRYQAagu0ey+QUW/64zKIz7r4GdHifpNrygWEF3jDZNv4eIesEOv7NoIe0Q7s7sqOENBbFr0CQriro6asI8SNb465uh/IAVqOBStnARM82i9+AKcyxqB/O51izziVb+h+M0rUgxa7axjU14xIkrc+WKE8O8QkYc3y7MBByoFMQWxVUE8beuoleA3mnYvmxo7XApOV1/N6hP2OdwWqOBTVz+eeifXV2HqUvHIUmWRuKIYkDD+S0e/lm8bJuAJ4Dv6RntRlRyOhQeqBw+Z6IQfLx8piLMTxB7fad69cAh81uce45PQweGDgXedJ/q3vcW8636WBbKbEmsO3E3QuciSX+M3/j+iDNu8J4kz0OqmfCOHGuVUGCnWB28/B5ZLr1EQR8HgopXA+vMrVB3/3Z/k0DyH275r0rxYcGnbtjjqMQ+NNHOrQRQjSX0tQR9xgx0qJ1gstxg4UOeWD29liNWBuikP1VEQR5p0rAG57b5QsPAkh7o5LJUI9xQpFJc9a2ibqTyRRBSDUyjGYeJdn4i98RYAUYKacGcOUzJp8rytwFU2q07ogS/n9z6TQ4+oIvEUxMRzHAOfdcfuTIITQxwidmQRBwFjzwv+XNVF138MPGQXLdVsN9FgqIDPGgsMtBkqQgfe8nhedHtfIR9E98WTF8NnOUTtG2fo62FOKIg3Lr5R/T2YSGOYaEvgI+fkMAmHIyUcbgOEvfWeZyOnUPTJI14BxXG+kWKBVd3+2kArXNoybK/hEvSc4w0Lgk7GZv26YOOiaBUZnubCg6Agvs4sQox09EPKSUVGifv6P3Jon8NtFisF4FGoHdlYOxsHgAANpMJOzCvQk4jicIoQZcTrwhAxEc/RAyw8D0FqsSrPFlbae4YGGLFmY+5HxPN/QmQ4m0WJoCCedSwHNBSUQ2hkCHwg7euGHJLDSLxAhF1IrZPeTUTVfTeVT5xMFK8JA8jqOtQ69DhRPMDQ0WJWnbADP6h9RNgfnttpPkc55sQKC+Jpbv0Fjn4M5RKJc+Czem9Fk8NOuNLE4RZAzLULcFqcZJt9YPBa0YKijmmc7xIODB+hPAU9az8cQtsDGG4l0Vj/3OYdPblFXyML2zkQY2PqBBR1+HgR/F3SniiIs8HSYXZ8ygHYWAm2MVTVHXLYjsOxQg6leUHPA5+F/K2fu6YgrlH5xF8HIYp9aB4kEl0YZAjDld6G8dHiW9BKG1KKjTr2CWeuxxbNUITvG87vioK41ySE8F1+x2yU+VXX5+DnXZJDcrjBt6ms8ORTKJp3Qy3G1hd3yDKgKFEcdX59l3iAVKDJFCGslxG2tOdB0PY1ZFREgfnEYVIburDtMWn48Xsq8OghCGKPB+B4PnaZ3rDW2NmpA1ecAO6SkcM0HM4i7HRCKjwJzS9zcDDiDLwgQ6UD1THtNLUoltoC6ALxAxd+BdY4hpmQiGhtaJlHJIg4gvhW4NHRBXHTlk+u37Zu13dGjkH//mcZ2pkPIqAjjEh/Tw7TcBgjqIOIFFdC74bUTzOBoCAiUryMneKZ8qBdrFOU2+I60vdoOe1cOYLQJ4gXiSLEfR141+tbkYKqABbL1wRvZ8ht4gocuSOHm/FJOYcv+bjC6SrFJqWfFkILsVLZ2NIvigM05LXOYl2YEFY9MwVt5i12hDpB3HwOErQHMflVPfxBDWzOSWa25nfVxuDHQgUAOdyKw1Izh68AZXeS4r2vfnq6oAOtf4CH7B5i26sGUaxBnMWO3qbO5V1mco0wkZkgTnSbX18H3reKC3IsjoPIz8HWPC9X4MfOhNLGyKF9Dp8DkU+8FH7XvlpC6tIolP3WsW02uShWkEJRxc6tDds+KfN5KYgJCmLc5Nd3LKOjIbcZ2Jrfar9HBwOcXLUCcmifw78tThD6IoKW6CocrwWDY+aud1YjimMYzgbcDOx7JRw4kb8gHmcqiD3KlONJIDBQWs5LXRNT6GuPb6QO7ZBD+xw+e39U38fYCe8ibCvhG0JRVTsGK4pTpVDUqdIIwknPVEKAkWKizQQxylgQe/SNalQKx+RtECYWcetwkaZ1X39hzK+Sw/gcroC6MbaK8K5tUyie8oiV+9RYfadWFKcSaakrQaT4/rkCEULYEsQSER8VghgREQJFM9C+oHD4XM4YfHgxNRZ4dIyKJnfk0DyHK5SAZ0S5MTb4nzbfcyTpd0M+PGK+qFPYrwpRHAiKLYz9d84SN/06wXey6gSRWhAvnY4IMWLyqxJNbNtgEvLALdjanuBV4dcxLufpmd9JDhVwuCbqrEU6t9VPlxH60eT1zqpEcSKxNks9KYfvjy3MK0cQFMQ/m9rz3yPz8yUOEN1qF1Vr+acS77lw8Q5mkcM8OCxBz4l5dmebXYp5pPQTs4fstIni2JFiLZdoxHyPRezbYQgK4hcEsaabFPtOgLBFpuA5A7WiKtjaF4fPP13Z2zTmAowc2ufQ4fKJ5xHtbtNOk/+zWOknmq/GtiOKg9HH6oS5FnEYjDlWu+8cQVAQr7d1r+f4RY9dqUWyOlEVLnXwtlYIfcVZInsjh7Y5LAHPWCTYDXtLhB9FfB/E4iiZPtMUKfaIlUJxo6zddwoGDUFBXLjhRIgRzhvenrC9KTUheFGVvKKBt7Pm46/9vRKwtRVmIWqbAtfk0CaHiIVyQJWAltd0xDSW7wUesks2V2gTxTFE2yJVWP6NiXAWYWVUM3WCeMOZeUf2aUCC2KPvNp+UH5HMn5w0ny+pauA23+tFv99qHwt+jffx01RGFSJy5NAmh6g2PSSwu8ULYjL2wqJANYei2P28Q1568tQWJY71XowSE28JYh8hRucEahbEDtBekYkvTGKSC3c/cd37SF+s64T9tn/z+db857mTiyy6MH8cKJjLyKFNDg9B/Keab++e9eNZ5O8vgTaQBO8UTlR3TiZh/2mSTriltgkzYWfDfGIipiD2ONIqiEO7NVza8Rr8ZPZFuBt8VGzc9IWfwO/QE3kQa5PmcyIsotYXYVNFlU3IoSEOQT5B2i9sEuM+dec6oc1/AD0n2byx8/j4+NcvOzsaJis/CL8JPf4y4o04XdouVePRp068NyLS7lv89cJhtmsWruWJ8aY/D5xxCAviqeIF6Ora6k+ax1Q4xBTz8oZVvXh/tqPqIkxCTmbZfI4Fgxuvvbu6XYmQanBukEM/Pg6tcxjasu0YQoni2nVIh9Q4p4SDncct/kmqnOzPiz9+hywG1EWKfQpFQ8RCaDBeO924FBLFlbODMsF3jtzAICyI/eR23HzHseIuKLSPKR/1afrwMOKY2Av+ZxJsZDW5e3/857N2rwuI30J/lom4VJum44MwTT/uk8NkHJYJ2lR08C9a5+jjRDbR9jthRRreKSWiEpisZ9qvNw4LgkrACHmLHRFLEK8m2zLzbox1kObI/diCLxK0sXhBKJ0r40F73jo5TMvhB2cDD0rfy4ofhy0qdpU2UCL/9cYIuej3XCZM+id0QlIQDwVRRFhYyB85mQshrMOCICaHaTm0IurU2XBIPTFhQ0j7USmKt7idpfUqQrvjXGv7HNx2CmJi3dHdUhDrcsJb+sMjdvvfRMR7Q37dv+eUtMXjMOyIFUb6olL4ToNcUOwqbihSzFmrvICscfngCMKJHuQcGqJPYKG2OkXVX3PDgfZ0uBc4nJPDqByaEXVKbXmQqSeaRTFKyNaaT8G/4TCWwGcRhKMgtr3QDH5s6KLKVxA6siaIyWESDveN9IfW3Q4ri4pqEKI4bKkgBo2VXOL1tvt2I4T83OrkQYiAtmB8Egui6uMAuVzlnl5Yb0jg8IAcisNKmpi63dxQGrcYoj/eVd7YOWAQzpxNIMQ8q04QKsRcTkh9TXwIGBwMiE8/D7xP3e8CNkQOZVEa6RuNdm1lQQFPPdEuivuKurnhbbYasCjIZhIhIKjZBXlMYGvCOOf0qKeqDZbTJchhGg4//PNfVgTxMsz12mAl9QTuj1WL4nAwoc9AunS20SdavFA62Ih0+M4u6A01W51eZHix4fIs9+UvWnqfeznJNQ6n5BAKK5HOSul7Wem/r4MSxQFdB9TcuigMW01dt9fuHEE8WyixC/KbxILo8FdOzzLp349Nm86GdB4i5BmTQxysRDq/Kn2vcqj+2IIo7ppCYe6AHbgdrDpBPEfNLshzYREijj7aeOBspk35d/aHsA6s1B4mh6o5HKyo64uhp57sPD4+/vXLzo7KljckPbad/JvOep+Ls2za/1/34+rc7NvfgetUE9gO+3d4grjh/aMRnv3Edm5AHMyaz11Oh+gGyuGNlsVMqJzwjfNI5/67cPquAn8J85B69IR1LdsH74z4Bx/1HLf4+9ZziZ/jpqWRMkpMvLpgcnZK7WiDGeEWRGYVrmo9Cf5zT5ENep82Y8lIciiA0gjFWv3JIC/tsCaKP7cQxUuDl3VssxJvI4qZT0xQFAvoFIPCanW98LQRV96HHiYSV4sgAu6Gmh5BDinqXuhPjSiH3H+WIsW3W/7dXHKJ151i3ThDL4wn24ge45POAadBUVti/w6X+3nwpdMQfRwHAVEKCKxF+PhoTsVKOCIcloE7cvgrfFDIQo1+rf15ZGQsVBLPNZFT/LT0++HEtxn0ixy35Jr2+7ZvUyZlyUgMQRAd/cvKz/7m/r6jsPK/yxfE05/h55L5weY5rDmHENaAyineQT2IIAiCIAiCIKxil11AEARBEARBUBQTBEEQBEEQBEUxQRAEQRAEQVAUEwRBEARBEARFMUEQBEEQBEEMGf8vwABaKb4tsBFP0wAAAABJRU5ErkJggg==");background-size:contain;background-repeat:no-repeat;height:16px;width:95px;overflow:hidden;transition:all .3s ease}.wpz-insta-admin .wpz-insta_settings-footer .wpz-insta_settings-footer-wrap .wpz-insta_settings-footer-logo a:hover,.wpz-insta-admin .wpz-insta_settings-footer .wpz-insta_settings-footer-wrap .wpz-insta_settings-footer-logo a:active{opacity:.5}.wpz-insta-admin .wpz-insta_settings-footer .wpz-insta_settings-footer-wrap .wpz-insta_settings-footer-links{display:flex;padding:0;margin:0}.wpz-insta-admin .wpz-insta_settings-footer .wpz-insta_settings-footer-wrap .wpz-insta_settings-footer-links li{padding:0;margin:0 30px 0 0}.wpz-insta-admin .wpz-insta_settings-footer .wpz-insta_settings-footer-wrap .wpz-insta_settings-footer-links li:last-child{margin-right:0}.wpz-insta-admin .wpz-insta_settings-footer .wpz-insta_settings-footer-wrap .wpz-insta_settings-footer-links li a{text-decoration:none;color:#000;transition:all .3s ease}.wpz-insta-admin .wpz-insta_settings-footer .wpz-insta_settings-footer-wrap .wpz-insta_settings-footer-links li a:hover,.wpz-insta-admin .wpz-insta_settings-footer .wpz-insta_settings-footer-wrap .wpz-insta_settings-footer-links li a:active{color:#3496ff}.wpz-insta-admin #wpz-insta_modal-dialog{display:flex;align-items:center;justify-content:center;position:fixed;top:0;left:0;right:0;bottom:0;z-index:999999999999;background:rgba(0,0,0,.4);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);transition:all .3s ease}.wpz-insta-admin #wpz-insta_modal-dialog:not(.open){pointer-events:none;opacity:0}.wpz-insta-admin #wpz-insta_modal-dialog.success .wpz-insta_modal-dialog_wrap .wpz-insta_modal-dialog_header .wpz-insta_modal-dialog_header-title::before{background-color:#2b6;background-image:url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M8.75204 15.8749L4.60249 11.7049L3.18945 13.1149L8.75204 18.7049L20.6932 6.70492L19.2901 5.29492L8.75204 15.8749Z' fill='white'/%3E%3C/svg%3E")}.wpz-insta-admin #wpz-insta_modal-dialog.fail .wpz-insta_modal-dialog_wrap .wpz-insta_modal-dialog_header .wpz-insta_modal-dialog_header-title::before{background-color:#ec2439;background-image:url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M18.9069 6.41L17.5038 5L11.9412 10.59L6.37867 5L4.97559 6.41L10.5381 12L4.97559 17.59L6.37867 19L11.9412 13.41L17.5038 19L18.9069 17.59L13.3443 12L18.9069 6.41Z' fill='white'/%3E%3C/svg%3E")}.wpz-insta-admin #wpz-insta_modal-dialog.confirm .wpz-insta_modal-dialog_wrap .wpz-insta_modal-dialog_header .wpz-insta_modal-dialog_header-title::before{content:"?";display:flex;align-items:center;justify-content:center;font-size:24px;font-weight:700;color:#fff;background-color:#242628;background-image:none}.wpz-insta-admin #wpz-insta_modal-dialog .wpz-insta_modal-dialog_wrap{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:14px;line-height:20px;color:#242628;background:#fff;min-width:850px;padding:30px;border-radius:3px;box-shadow:0 5px 10px rgba(0,0,0,.3)}.wpz-insta-admin #wpz-insta_modal-dialog .wpz-insta_modal-dialog_wrap .wpz-insta_modal-dialog_header{display:flex;align-items:center;justify-content:space-between;padding:0 0 20px;border-bottom:1px solid #ddd;margin:0 0 30px}.wpz-insta-admin #wpz-insta_modal-dialog .wpz-insta_modal-dialog_wrap .wpz-insta_modal-dialog_header .wpz-insta_modal-dialog_header-title{display:flex;align-items:center;font-size:20px;font-weight:600;padding:0;margin:0}.wpz-insta-admin #wpz-insta_modal-dialog .wpz-insta_modal-dialog_wrap .wpz-insta_modal-dialog_header .wpz-insta_modal-dialog_header-title::before{content:"";display:block;background-color:#81909c;background-repeat:no-repeat;background-position:center;height:28px;width:28px;border-radius:50%;margin:0 15px 0 0}.wpz-insta-admin #wpz-insta_modal-dialog .wpz-insta_modal-dialog_wrap .wpz-insta_modal-dialog_header .wpz-insta_modal-dialog_header-button{cursor:pointer;text-indent:-999em;background-color:#9ca2a7;-webkit-mask:url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M18.9069 6.41L17.5038 5L11.9412 10.59L6.37867 5L4.97559 6.41L10.5381 12L4.97559 17.59L6.37867 19L11.9412 13.41L17.5038 19L18.9069 17.59L13.3443 12L18.9069 6.41Z'/%3E%3C/svg%3E") center no-repeat;mask:url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M18.9069 6.41L17.5038 5L11.9412 10.59L6.37867 5L4.97559 6.41L10.5381 12L4.97559 17.59L6.37867 19L11.9412 13.41L17.5038 19L18.9069 17.59L13.3443 12L18.9069 6.41Z'/%3E%3C/svg%3E") center no-repeat;height:24px;width:24px;padding:0;margin:0;overflow:hidden;transition:all .3s ease}.wpz-insta-admin #wpz-insta_modal-dialog .wpz-insta_modal-dialog_wrap .wpz-insta_modal-dialog_header .wpz-insta_modal-dialog_header-button:hover{background-color:#3496ff}.wpz-insta-admin #wpz-insta_modal-dialog .wpz-insta_modal-dialog_wrap .wpz-insta_modal-dialog_content{overflow:auto}.wpz-insta-admin #wpz-insta_modal-dialog .wpz-insta_modal-dialog_wrap .wpz-insta_modal-dialog_content .severe{color:#ec2439}.wpz-insta-admin #wpz-insta_modal-dialog .wpz-insta_modal-dialog_wrap .wpz-insta_modal-dialog_footer{display:flex;align-items:center;justify-content:end;gap:10px;padding:20px 0 0;border-top:1px solid #ddd;margin:30px 0 0}.wpz-insta-admin #wpz-insta_modal-dialog .wpz-insta_modal-dialog_wrap .wpz-insta_modal-dialog_footer .wpz-insta_modal-dialog_footer-button{color:#fff;background:#3496ff;padding-left:30px;padding-right:30px;transition:all .3s ease}.wpz-insta-admin #wpz-insta_modal-dialog .wpz-insta_modal-dialog_wrap .wpz-insta_modal-dialog_footer .wpz-insta_modal-dialog_footer-button:hover,.wpz-insta-admin #wpz-insta_modal-dialog .wpz-insta_modal-dialog_wrap .wpz-insta_modal-dialog_footer .wpz-insta_modal-dialog_footer-button:active{color:#fff;background:#70b5fe}.wpz-insta-admin #wpz-insta_modal-dialog .wpz-insta_modal-dialog_wrap .wpz-insta_modal-dialog_footer .wpz-insta_modal-dialog_footer-button.button-secondary{color:#3496ff;background:transparent;border-color:#3496ff}.wpz-insta-admin #wpz-insta_modal-dialog .wpz-insta_modal-dialog_wrap .wpz-insta_modal-dialog_footer .wpz-insta_modal-dialog_footer-button.button-secondary:hover,.wpz-insta-admin #wpz-insta_modal-dialog .wpz-insta_modal-dialog_wrap .wpz-insta_modal-dialog_footer .wpz-insta_modal-dialog_footer-button.button-secondary:active{color:#fff;background-color:#70b5fe}@-webkit-keyframes slidedown{from{max-height:0}to{max-height:100em}}@keyframes slidedown{from{max-height:0}to{max-height:100em}}@-webkit-keyframes highlighting{0%{transform:scale(1)}50%{transform:scale(1.03, 1.2)}100%{transform:scale(1)}}@keyframes highlighting{0%{transform:scale(1)}50%{transform:scale(1.03, 1.2)}100%{transform:scale(1)}}@-webkit-keyframes bounceFade{0%{opacity:0}0%,20%,50%,80%,100%{transform:translateX(-50%) translateY(0)}20%{opacity:0}40%{transform:translateX(-50%) translateY(-30px)}60%{transform:translateX(-50%) translateY(-15px)}100%{opacity:1}}@keyframes bounceFade{0%{opacity:0}0%,20%,50%,80%,100%{transform:translateX(-50%) translateY(0)}20%{opacity:0}40%{transform:translateX(-50%) translateY(-30px)}60%{transform:translateX(-50%) translateY(-15px)}100%{opacity:1}}[data-tooltip]{position:relative;z-index:2;cursor:pointer}[data-tooltip]:before,[data-tooltip]:after{visibility:hidden;opacity:0;pointer-events:none}[data-tooltip]:before{position:absolute;bottom:150%;left:50%;margin-bottom:5px;margin-left:-100px;padding:7px;width:200px;border-radius:3px;background-color:#000;background-color:rgba(51,51,51,.9);color:#fff;content:attr(data-tooltip);text-align:center;font-size:14px;line-height:1.2}[data-tooltip]:after{position:absolute;bottom:150%;left:50%;margin-left:-5px;width:0;border-top:5px solid #000;border-top:5px solid rgba(51,51,51,.9);border-right:5px solid transparent;border-left:5px solid transparent;content:" ";font-size:0;line-height:0}[data-tooltip]:hover:before,[data-tooltip]:hover:after{visibility:visible;opacity:1}
dist/styles/frontend/block-rtl.css ADDED
@@ -0,0 +1 @@
 
1
+ .wpzoom-instagram-widget-select-feed select{max-width:100%}img{height:auto;max-width:100%}.wp-block-wpzoom-instagram-block .zoom-instagram,.zoom-instagram .zoom-instagram{background:none;padding:0;border:none}.wp-block-wpzoom-instagram-block form[disabled],.zoom-instagram form[disabled]{pointer-events:none}.wp-block-wpzoom-instagram-block form[disabled]:not(.loading),.zoom-instagram form[disabled]:not(.loading){opacity:.5}.wp-block-wpzoom-instagram-block .zoom-instagram-widget__header,.zoom-instagram .zoom-instagram-widget__header{display:flex;gap:20px;margin:0 0 25px}.wp-block-wpzoom-instagram-block .zoom-instagram-widget__header .zoom-instagram-widget__header-column-left,.zoom-instagram .zoom-instagram-widget__header .zoom-instagram-widget__header-column-left{min-width:70px}.wp-block-wpzoom-instagram-block .zoom-instagram-widget__header .zoom-instagram-widget__header-column-left img,.zoom-instagram .zoom-instagram-widget__header .zoom-instagram-widget__header-column-left img{width:70px;border-radius:50%}.wp-block-wpzoom-instagram-block .zoom-instagram-widget__header .zoom-instagram-widget__header-column-right,.zoom-instagram .zoom-instagram-widget__header .zoom-instagram-widget__header-column-right{display:flex;flex-direction:column;justify-content:center;text-align:right}.wp-block-wpzoom-instagram-block .zoom-instagram-widget__header .zoom-instagram-widget__header-name,.zoom-instagram .zoom-instagram-widget__header .zoom-instagram-widget__header-name{font-size:14px;font-weight:600;line-height:1.5;padding:0;margin:0}.wp-block-wpzoom-instagram-block .zoom-instagram-widget__header .zoom-instagram-widget__header-user,.zoom-instagram .zoom-instagram-widget__header .zoom-instagram-widget__header-user{font-size:13px;font-weight:600;line-height:normal;padding:0;margin:0}.wp-block-wpzoom-instagram-block .zoom-instagram-widget__header .zoom-instagram-widget__header-user a,.zoom-instagram .zoom-instagram-widget__header .zoom-instagram-widget__header-user a{text-decoration:none}.wp-block-wpzoom-instagram-block .zoom-instagram-widget__header .zoom-instagram-widget__header-bio,.zoom-instagram .zoom-instagram-widget__header .zoom-instagram-widget__header-bio{font-size:14px;font-weight:normal;line-height:1.6;padding:0;margin:6px 0 0;text-align:right}.wp-block-wpzoom-instagram-block .zoom-instagram-widget__footer,.zoom-instagram .zoom-instagram-widget__footer{display:flex;justify-content:center;align-items:center;flex-direction:row;flex-wrap:wrap;gap:15px;margin:25px 0 0}.wp-block-wpzoom-instagram-block .zoom-instagram-widget__footer>*,.zoom-instagram .zoom-instagram-widget__footer>*{display:block}.wp-block-wpzoom-instagram-block .zoom-instagram-widget__footer .wpz-insta-view-on-insta-button,.wp-block-wpzoom-instagram-block .zoom-instagram-widget__footer .wpzinsta-pro-load-more input[type=submit],.wp-block-wpzoom-instagram-block .zoom-instagram-widget__footer .wpzinsta-pro-load-more button[type=submit],.zoom-instagram .zoom-instagram-widget__footer .wpz-insta-view-on-insta-button,.zoom-instagram .zoom-instagram-widget__footer .wpzinsta-pro-load-more input[type=submit],.zoom-instagram .zoom-instagram-widget__footer .wpzinsta-pro-load-more button[type=submit]{display:flex;align-items:center;justify-content:center;gap:6px;cursor:pointer;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:14px;font-weight:500;text-decoration:none;text-transform:none;letter-spacing:normal;line-height:18px;color:#fff;background-color:#3496ff;padding:8px 12px;border:none;border-radius:3px;margin:0;transition:all .3s linear}.wp-block-wpzoom-instagram-block .zoom-instagram-widget__footer .wpz-insta-view-on-insta-button:hover,.wp-block-wpzoom-instagram-block .zoom-instagram-widget__footer .wpz-insta-view-on-insta-button:active,.wp-block-wpzoom-instagram-block .zoom-instagram-widget__footer .wpzinsta-pro-load-more input[type=submit]:hover,.wp-block-wpzoom-instagram-block .zoom-instagram-widget__footer .wpzinsta-pro-load-more input[type=submit]:active,.wp-block-wpzoom-instagram-block .zoom-instagram-widget__footer .wpzinsta-pro-load-more button[type=submit]:hover,.wp-block-wpzoom-instagram-block .zoom-instagram-widget__footer .wpzinsta-pro-load-more button[type=submit]:active,.zoom-instagram .zoom-instagram-widget__footer .wpz-insta-view-on-insta-button:hover,.zoom-instagram .zoom-instagram-widget__footer .wpz-insta-view-on-insta-button:active,.zoom-instagram .zoom-instagram-widget__footer .wpzinsta-pro-load-more input[type=submit]:hover,.zoom-instagram .zoom-instagram-widget__footer .wpzinsta-pro-load-more input[type=submit]:active,.zoom-instagram .zoom-instagram-widget__footer .wpzinsta-pro-load-more button[type=submit]:hover,.zoom-instagram .zoom-instagram-widget__footer .wpzinsta-pro-load-more button[type=submit]:active{text-decoration:none;opacity:.8}.wp-block-wpzoom-instagram-block .zoom-instagram-widget__footer .wpz-insta-view-on-insta-button .button-icon,.wp-block-wpzoom-instagram-block .zoom-instagram-widget__footer .wpzinsta-pro-load-more input[type=submit] .button-icon,.wp-block-wpzoom-instagram-block .zoom-instagram-widget__footer .wpzinsta-pro-load-more button[type=submit] .button-icon,.zoom-instagram .zoom-instagram-widget__footer .wpz-insta-view-on-insta-button .button-icon,.zoom-instagram .zoom-instagram-widget__footer .wpzinsta-pro-load-more input[type=submit] .button-icon,.zoom-instagram .zoom-instagram-widget__footer .wpzinsta-pro-load-more button[type=submit] .button-icon{height:18px;width:18px;transition:all .3s linear}.wp-block-wpzoom-instagram-block .zoom-instagram-widget__footer .wpzinsta-pro-load-more button[type=submit],.zoom-instagram .zoom-instagram-widget__footer .wpzinsta-pro-load-more button[type=submit]{gap:0}.wp-block-wpzoom-instagram-block .zoom-instagram-widget__footer .wpzinsta-pro-load-more button[type=submit]::before,.zoom-instagram .zoom-instagram-widget__footer .wpzinsta-pro-load-more button[type=submit]::before{content:"";background-image:url("data:image/svg+xml,%3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' viewBox='0 0 50 50' xml:space='preserve'%3E%3Cpath fill='%23ffffff' d='M43.935,25.145c0-10.318-8.364-18.683-18.683-18.683c-10.318,0-18.683,8.365-18.683,18.683h4.068c0-8.071,6.543-14.615,14.615-14.615c8.072,0,14.615,6.543,14.615,14.615H43.935z'%3E%3CanimateTransform attributeType='xml' attributeName='transform' type='rotate' from='0 25 25' to='360 25 25' dur='0.6s' repeatCount='indefinite'/%3E%3C/path%3E%3C/svg%3E");background-repeat:no-repeat;background-position:center;height:18px;width:0;transition:all .3s linear}.wp-block-wpzoom-instagram-block .wpzinsta-pro-load-more,.zoom-instagram .wpzinsta-pro-load-more{margin:0}.wp-block-wpzoom-instagram-block .wpzinsta-pro-load-more.loading button[type=submit],.zoom-instagram .wpzinsta-pro-load-more.loading button[type=submit]{gap:6px}.wp-block-wpzoom-instagram-block .wpzinsta-pro-load-more.loading button[type=submit]::before,.zoom-instagram .wpzinsta-pro-load-more.loading button[type=submit]::before{width:18px}.wp-block-wpzoom-instagram-block .zoom-instagram .zoom-instagram-widget__items-wrapper,.zoom-instagram .zoom-instagram .zoom-instagram-widget__items-wrapper{overflow:hidden}.wp-block-wpzoom-instagram-block .zoom-instagram .zoom-instagram-widget__items,.zoom-instagram .zoom-instagram .zoom-instagram-widget__items{list-style:none !important;padding:0;margin:0}.wp-block-wpzoom-instagram-block .zoom-instagram .zoom-instagram-widget__items.layout-grid,.zoom-instagram .zoom-instagram .zoom-instagram-widget__items.layout-grid{display:grid;grid-template-columns:repeat(3, 1fr);gap:10px}.wp-block-wpzoom-instagram-block .zoom-instagram .zoom-instagram-widget__items.layout-grid .zoom-instagram-widget__item img,.zoom-instagram .zoom-instagram .zoom-instagram-widget__items.layout-grid .zoom-instagram-widget__item img{-o-object-fit:cover;object-fit:cover;width:100%;height:100%;aspect-ratio:1/1}.wp-block-wpzoom-instagram-block .zoom-instagram .zoom-instagram-widget__items.layout-fullwidth,.zoom-instagram .zoom-instagram .zoom-instagram-widget__items.layout-fullwidth{display:flex;width:5000px}.wp-block-wpzoom-instagram-block .zoom-instagram .zoom-instagram-widget__items.layout-fullwidth .zoom-instagram-widget__item img,.zoom-instagram .zoom-instagram .zoom-instagram-widget__items.layout-fullwidth .zoom-instagram-widget__item img{aspect-ratio:1;-o-object-fit:cover;object-fit:cover}.wp-block-wpzoom-instagram-block .zoom-instagram-widget__item,.zoom-instagram .zoom-instagram-widget__item{position:relative;margin:0;list-style-type:none}.wp-block-wpzoom-instagram-block .zoom-instagram-widget__item.new,.zoom-instagram .zoom-instagram-widget__item.new{opacity:0;transform:scale(0);transform-origin:center;-webkit-animation:show 500ms linear forwards;animation:show 500ms linear forwards}.wp-block-wpzoom-instagram-block .zoom-instagram-widget__item .zoom-instagram-widget__item-inner-wrap,.zoom-instagram .zoom-instagram-widget__item .zoom-instagram-widget__item-inner-wrap{position:relative;height:100%;overflow:hidden}.wp-block-wpzoom-instagram-block .zoom-instagram-widget__items::before,.wp-block-wpzoom-instagram-block .zoom-instagram-widget__items::after,.zoom-instagram .zoom-instagram-widget__items::before,.zoom-instagram .zoom-instagram-widget__items::after{display:none}.wp-block-wpzoom-instagram-block .zoom-instagram-widget__items .zoom-instagram-widget__item .zoom-instagram-link,.zoom-instagram .zoom-instagram-widget__items .zoom-instagram-widget__item .zoom-instagram-link{height:100%}.wp-block-wpzoom-instagram-block .ig-b-,.zoom-instagram .ig-b-{display:inline-block}.wp-block-wpzoom-instagram-block a.ig-b-v-24,.zoom-instagram a.ig-b-v-24{border-color:#3897f0;color:#3897f0 !important;border-radius:3px;border-style:solid;border-width:1px;font-weight:600 !important;outline:none;overflow:hidden;white-space:nowrap;-webkit-appearance:none;font-family:sans-serif;padding:5px 15px;font-size:14px;transition:all .15s ease-in-out;-moz-transition:all .15s ease-in-out;-webkit-transition:all .15s ease-in-out;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none !important}.wp-block-wpzoom-instagram-block a.ig-b-v-24:hover,.zoom-instagram a.ig-b-v-24:hover{background:#3897f0;border-color:#3897f0;color:#fff !important}.wp-block-wpzoom-instagram-block .zoom-instagram-widget__item .hover-controls,.zoom-instagram .zoom-instagram-widget__item .hover-controls{opacity:0;z-index:9;margin-top:-15px;position:absolute;top:40%;width:100%;text-align:center;transition:opacity .25s ease-in-out;-moz-transition:opacity .25s ease-in-out;-webkit-transition:opacity .25s ease-in-out}.wp-block-wpzoom-instagram-block .zoom-instagram-widget__items[data-lightbox="1"] .zoom-instagram-widget__item .zoom-instagram-icon-wrap,.zoom-instagram .zoom-instagram-widget__items[data-lightbox="1"] .zoom-instagram-widget__item .zoom-instagram-icon-wrap{pointer-events:none}.wp-block-wpzoom-instagram-block .zoom-instagram-widget__item .zoom-instagram-widget__item-inner-wrap,.zoom-instagram .zoom-instagram-widget__item .zoom-instagram-widget__item-inner-wrap{position:relative;height:100%;overflow:hidden}.wp-block-wpzoom-instagram-block .zoom-instagram-widget__item .hover-controls~.zoom-instagram-icon-wrap,.zoom-instagram .zoom-instagram-widget__item .hover-controls~.zoom-instagram-icon-wrap{bottom:10%;pointer-events:all}.wp-block-wpzoom-instagram-block .zoom-instagram-widget__item .hover-layout.small .hover-controls~.zoom-instagram-icon-wrap,.zoom-instagram .zoom-instagram-widget__item .hover-layout.small .hover-controls~.zoom-instagram-icon-wrap{bottom:6%}.wp-block-wpzoom-instagram-block .zoom-instagram-widget__item .hover-layout.small .zoom-instagram-icon-wrap,.zoom-instagram .zoom-instagram-widget__item .hover-layout.small .zoom-instagram-icon-wrap{bottom:calc(50% - 15px)}.wp-block-wpzoom-instagram-block .zoom-instagram-widget__item .zoom-instagram-icon-wrap,.zoom-instagram .zoom-instagram-widget__item .zoom-instagram-icon-wrap{bottom:calc(50% - 15px);height:30px;width:100%;position:absolute;z-index:9;text-align:center}.wp-block-wpzoom-instagram-block .zoom-instagram-widget__item:hover .hover-controls,.zoom-instagram .zoom-instagram-widget__item:hover .hover-controls{opacity:1}.wp-block-wpzoom-instagram-block .zoom-instagram-widget__item .zoom-instagram-icon-wrap,.zoom-instagram .zoom-instagram-widget__item .zoom-instagram-icon-wrap{opacity:0;transition:opacity .25s ease-in-out;-moz-transition:opacity .25s ease-in-out;-webkit-transition:opacity .25s ease-in-out}.wp-block-wpzoom-instagram-block .zoom-instagram-widget__item:hover .zoom-instagram-icon-wrap,.zoom-instagram .zoom-instagram-widget__item:hover .zoom-instagram-icon-wrap{opacity:1}.wp-block-wpzoom-instagram-block .zoom-instagram-widget__item .hover-controls .dashicons,.zoom-instagram .zoom-instagram-widget__item .hover-controls .dashicons{font-size:20px;width:20px;height:20px;color:#fff;vertical-align:middle}.wp-block-wpzoom-instagram-block .zoom-instagram-widget__item .hover-controls .counter,.zoom-instagram .zoom-instagram-widget__item .hover-controls .counter{padding-right:1px;padding-left:12px;font-weight:500;color:#fff;font-size:14px;opacity:.8;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif}.wp-block-wpzoom-instagram-block .zoom-instagram-widget__overlay,.zoom-instagram .zoom-instagram-widget__overlay{position:absolute;top:0;right:0;left:0;bottom:0}.wp-block-wpzoom-instagram-block .zoom-instagram-widget__overlay:after,.zoom-instagram .zoom-instagram-widget__overlay:after{position:absolute;content:"";top:0;right:0;pointer-events:none;width:100%;height:100%;opacity:0;transition:opacity .25s ease-in-out;-moz-transition:opacity .25s ease-in-out;-webkit-transition:opacity .25s ease-in-out}.wp-block-wpzoom-instagram-block .zoom-instagram-widget__overlay:hover:after,.zoom-instagram .zoom-instagram-widget__overlay:hover:after{opacity:.7;background-color:#000}.wp-block-wpzoom-instagram-block .zoom-instagram-widget__black:after,.zoom-instagram .zoom-instagram-widget__black:after{background-color:#000}.wp-block-wpzoom-instagram-block .zoom-svg-instagram-simple,.zoom-instagram .zoom-svg-instagram-simple{display:inline-block;width:30px;height:30px;background:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHg9IjBweCIgeT0iMHB4IgogICAgIHdpZHRoPSI1MCIgaGVpZ2h0PSI1MCIKICAgICB2aWV3Qm94PSIwIDAgNTAgNTAiCiAgICAgc3R5bGU9ImZpbGw6I2ZmZmZmZjsiPiAgICA8cGF0aCBzdHlsZT0ibGluZS1oZWlnaHQ6bm9ybWFsO3RleHQtaW5kZW50OjA7dGV4dC1hbGlnbjpzdGFydDt0ZXh0LWRlY29yYXRpb24tbGluZTpub25lO3RleHQtZGVjb3JhdGlvbi1zdHlsZTpzb2xpZDt0ZXh0LWRlY29yYXRpb24tY29sb3I6IzAwMDt0ZXh0LXRyYW5zZm9ybTpub25lO2Jsb2NrLXByb2dyZXNzaW9uOnRiO2lzb2xhdGlvbjphdXRvO21peC1ibGVuZC1tb2RlOm5vcm1hbCIgZD0iTSAxNiAzIEMgOC44MzI0ODM5IDMgMyA4LjgzMjQ4MzkgMyAxNiBMIDMgMzQgQyAzIDQxLjE2NzUxNiA4LjgzMjQ4MzkgNDcgMTYgNDcgTCAzNCA0NyBDIDQxLjE2NzUxNiA0NyA0NyA0MS4xNjc1MTYgNDcgMzQgTCA0NyAxNiBDIDQ3IDguODMyNDgzOSA0MS4xNjc1MTYgMyAzNCAzIEwgMTYgMyB6IE0gMTYgNSBMIDM0IDUgQyA0MC4wODY0ODQgNSA0NSA5LjkxMzUxNjEgNDUgMTYgTCA0NSAzNCBDIDQ1IDQwLjA4NjQ4NCA0MC4wODY0ODQgNDUgMzQgNDUgTCAxNiA0NSBDIDkuOTEzNTE2MSA0NSA1IDQwLjA4NjQ4NCA1IDM0IEwgNSAxNiBDIDUgOS45MTM1MTYxIDkuOTEzNTE2MSA1IDE2IDUgeiBNIDM3IDExIEEgMiAyIDAgMCAwIDM1IDEzIEEgMiAyIDAgMCAwIDM3IDE1IEEgMiAyIDAgMCAwIDM5IDEzIEEgMiAyIDAgMCAwIDM3IDExIHogTSAyNSAxNCBDIDE4LjkzNjcxMiAxNCAxNCAxOC45MzY3MTIgMTQgMjUgQyAxNCAzMS4wNjMyODggMTguOTM2NzEyIDM2IDI1IDM2IEMgMzEuMDYzMjg4IDM2IDM2IDMxLjA2MzI4OCAzNiAyNSBDIDM2IDE4LjkzNjcxMiAzMS4wNjMyODggMTQgMjUgMTQgeiBNIDI1IDE2IEMgMjkuOTgyNDA3IDE2IDM0IDIwLjAxNzU5MyAzNCAyNSBDIDM0IDI5Ljk4MjQwNyAyOS45ODI0MDcgMzQgMjUgMzQgQyAyMC4wMTc1OTMgMzQgMTYgMjkuOTgyNDA3IDE2IDI1IEMgMTYgMjAuMDE3NTkzIDIwLjAxNzU5MyAxNiAyNSAxNiB6IiBmb250LXdlaWdodD0iNDAwIiBmb250LWZhbWlseT0ic2Fucy1zZXJpZiIgd2hpdGUtc3BhY2U9Im5vcm1hbCIgb3ZlcmZsb3c9InZpc2libGUiPjwvcGF0aD48L3N2Zz4=") 50% 50% no-repeat;background-size:100%}.wp-block-wpzoom-instagram-block .zoom-svg-instagram-stroke,.zoom-instagram .zoom-svg-instagram-stroke{display:inline-block;width:30px;height:30px;background:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHg9IjBweCIgeT0iMHB4IgogICAgIHdpZHRoPSI1MCIgaGVpZ2h0PSI1MCIKICAgICB2aWV3Qm94PSIwIDAgMjUyIDI1MiIKICAgICBzdHlsZT0iZmlsbDojMDAwMDAwOyI+PGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMi4zOTQsMi4zOTQpIHNjYWxlKDAuOTgxLDAuOTgxKSI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJub256ZXJvIiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9ImJ1dHQiIHN0cm9rZS1saW5lam9pbj0ibm9uZSIgc3Ryb2tlLW1pdGVybGltaXQ9IjEwIiBzdHJva2UtZGFzaGFycmF5PSIiIHN0cm9rZS1kYXNob2Zmc2V0PSIwIiBmb250LWZhbWlseT0ibm9uZSIgZm9udC13ZWlnaHQ9Im5vbmUiIGZvbnQtc2l6ZT0ibm9uZSIgdGV4dC1hbmNob3I9Im5vbmUiIHN0eWxlPSJtaXgtYmxlbmQtbW9kZTogbm9ybWFsIj48ZyBpZD0ib3JpZ2luYWwtaWNvbiAxIiBmaWxsPSIjZmZmZmZmIiBzdHJva2U9IiNmZmZmZmYiIHN0cm9rZS13aWR0aD0iNSIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBhdGggZD0iTTE3MS4zNiwxNS4xMmMzNi4xMjQyOCwwIDY1LjUyLDI5LjM5NTcyIDY1LjUyLDY1LjUydjkwLjcyYzAsMzYuMTI0MjggLTI5LjM5NTcyLDY1LjUyIC02NS41Miw2NS41MmgtOTAuNzJjLTM2LjEyNDI4LDAgLTY1LjUyLC0yOS4zOTU3MiAtNjUuNTIsLTY1LjUydi05MC43MmMwLC0zNi4xMjQyOCAyOS4zOTU3MiwtNjUuNTIgNjUuNTIsLTY1LjUyek0yNS4yLDgwLjY0djkwLjcyYzAsMzAuNjc1ODggMjQuNzY0MTIsNTUuNDQgNTUuNDQsNTUuNDRoOTAuNzJjMzAuNjc1ODgsMCA1NS40NCwtMjQuNzY0MTIgNTUuNDQsLTU1LjQ0di05MC43MmMwLC0zMC42NzU4OCAtMjQuNzY0MTIsLTU1LjQ0IC01NS40NCwtNTUuNDRoLTkwLjcyYy0zMC42NzU4OCwwIC01NS40NCwyNC43NjQxMiAtNTUuNDQsNTUuNDR6TTE5Ni41Niw2NS41MmMwLDUuNTY3MDMgLTQuNTEyOTcsMTAuMDggLTEwLjA4LDEwLjA4Yy01LjU2NzAzLDAgLTEwLjA4LC00LjUxMjk3IC0xMC4wOCwtMTAuMDhjMCwtNS41NjcwMyA0LjUxMjk3LC0xMC4wOCAxMC4wOCwtMTAuMDhjNS41NjcwMywwIDEwLjA4LDQuNTEyOTcgMTAuMDgsMTAuMDh6TTE4MS40NCwxMjZjMCwzMC41NTg5NyAtMjQuODgxMDMsNTUuNDQgLTU1LjQ0LDU1LjQ0Yy0zMC41NTg5NywwIC01NS40NCwtMjQuODgxMDMgLTU1LjQ0LC01NS40NGMwLC0zMC41NTg5NyAyNC44ODEwMywtNTUuNDQgNTUuNDQsLTU1LjQ0YzMwLjU1ODk3LDAgNTUuNDQsMjQuODgxMDMgNTUuNDQsNTUuNDR6TTgwLjY0LDEyNmMwLDI1LjExMTMzIDIwLjI0ODY3LDQ1LjM2IDQ1LjM2LDQ1LjM2YzI1LjExMTMzLDAgNDUuMzYsLTIwLjI0ODY3IDQ1LjM2LC00NS4zNmMwLC0yNS4xMTEzMyAtMjAuMjQ4NjcsLTQ1LjM2IC00NS4zNiwtNDUuMzZjLTI1LjExMTMzLDAgLTQ1LjM2LDIwLjI0ODY3IC00NS4zNiw0NS4zNnoiPjwvcGF0aD48L2c+PHBhdGggZD0iTTAsMjUydi0yNTJoMjUydjI1MnoiIGZpbGw9Im5vbmUiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBzdHJva2UtbGluZWpvaW49Im1pdGVyIj48L3BhdGg+PGcgaWQ9Im9yaWdpbmFsLWljb24iIGZpbGw9IiNmZmZmZmYiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBzdHJva2UtbGluZWpvaW49Im1pdGVyIj48cGF0aCBkPSJNODAuNjQsMTUuMTJjLTM2LjEyNDI4LDAgLTY1LjUyLDI5LjM5NTcyIC02NS41Miw2NS41MnY5MC43MmMwLDM2LjEyNDI4IDI5LjM5NTcyLDY1LjUyIDY1LjUyLDY1LjUyaDkwLjcyYzM2LjEyNDI4LDAgNjUuNTIsLTI5LjM5NTcyIDY1LjUyLC02NS41MnYtOTAuNzJjMCwtMzYuMTI0MjggLTI5LjM5NTcyLC02NS41MiAtNjUuNTIsLTY1LjUyek04MC42NCwyNS4yaDkwLjcyYzMwLjY3NTg4LDAgNTUuNDQsMjQuNzY0MTIgNTUuNDQsNTUuNDR2OTAuNzJjMCwzMC42NzU4OCAtMjQuNzY0MTIsNTUuNDQgLTU1LjQ0LDU1LjQ0aC05MC43MmMtMzAuNjc1ODgsMCAtNTUuNDQsLTI0Ljc2NDEyIC01NS40NCwtNTUuNDR2LTkwLjcyYzAsLTMwLjY3NTg4IDI0Ljc2NDEyLC01NS40NCA1NS40NCwtNTUuNDR6TTE4Ni40OCw1NS40NGMtNS41NjcwMywwIC0xMC4wOCw0LjUxMjk3IC0xMC4wOCwxMC4wOGMwLDUuNTY3MDMgNC41MTI5NywxMC4wOCAxMC4wOCwxMC4wOGM1LjU2NzAzLDAgMTAuMDgsLTQuNTEyOTcgMTAuMDgsLTEwLjA4YzAsLTUuNTY3MDMgLTQuNTEyOTcsLTEwLjA4IC0xMC4wOCwtMTAuMDh6TTEyNiw3MC41NmMtMzAuNTU4OTcsMCAtNTUuNDQsMjQuODgxMDMgLTU1LjQ0LDU1LjQ0YzAsMzAuNTU4OTcgMjQuODgxMDMsNTUuNDQgNTUuNDQsNTUuNDRjMzAuNTU4OTcsMCA1NS40NCwtMjQuODgxMDMgNTUuNDQsLTU1LjQ0YzAsLTMwLjU1ODk3IC0yNC44ODEwMywtNTUuNDQgLTU1LjQ0LC01NS40NHpNMTI2LDgwLjY0YzI1LjExMTMzLDAgNDUuMzYsMjAuMjQ4NjcgNDUuMzYsNDUuMzZjMCwyNS4xMTEzMyAtMjAuMjQ4NjcsNDUuMzYgLTQ1LjM2LDQ1LjM2Yy0yNS4xMTEzMywwIC00NS4zNiwtMjAuMjQ4NjcgLTQ1LjM2LC00NS4zNmMwLC0yNS4xMTEzMyAyMC4yNDg2NywtNDUuMzYgNDUuMzYsLTQ1LjM2eiI+PC9wYXRoPjwvZz48cGF0aCBkPSJNMTI2LDI1MmMtNjkuNTg3ODgsMCAtMTI2LC01Ni40MTIxMiAtMTI2LC0xMjZ2MGMwLC02OS41ODc4OCA1Ni40MTIxMiwtMTI2IDEyNiwtMTI2djBjNjkuNTg3ODgsMCAxMjYsNTYuNDEyMTIgMTI2LDEyNnYwYzAsNjkuNTg3ODggLTU2LjQxMjEyLDEyNiAtMTI2LDEyNnoiIGZpbGw9Im5vbmUiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBzdHJva2UtbGluZWpvaW49Im1pdGVyIj48L3BhdGg+PHBhdGggZD0iTTEyNiwyNDYuOTZjLTY2LjgwNDM2LDAgLTEyMC45NiwtNTQuMTU1NjQgLTEyMC45NiwtMTIwLjk2djBjMCwtNjYuODA0MzYgNTQuMTU1NjQsLTEyMC45NiAxMjAuOTYsLTEyMC45NmgwYzY2LjgwNDM2LDAgMTIwLjk2LDU0LjE1NTY0IDEyMC45NiwxMjAuOTZ2MGMwLDY2LjgwNDM2IC01NC4xNTU2NCwxMjAuOTYgLTEyMC45NiwxMjAuOTZ6IiBmaWxsPSJub25lIiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgc3Ryb2tlLWxpbmVqb2luPSJtaXRlciI+PC9wYXRoPjxwYXRoIGQ9IiIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjEiIHN0cm9rZS1saW5lam9pbj0ibWl0ZXIiPjwvcGF0aD48cGF0aCBkPSIiIGZpbGw9Im5vbmUiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBzdHJva2UtbGluZWpvaW49Im1pdGVyIj48L3BhdGg+PHBhdGggZD0iIiBmaWxsPSJub25lIiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgc3Ryb2tlLWxpbmVqb2luPSJtaXRlciI+PC9wYXRoPjxwYXRoIGQ9IiIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjEiIHN0cm9rZS1saW5lam9pbj0ibWl0ZXIiPjwvcGF0aD48L2c+PC9nPjwvc3ZnPg==") 50% 50% no-repeat;background-size:100%}.wp-block-wpzoom-instagram-block .zoom-instagram-widget__item .hover-layout.small .hover-controls .dashicons,.zoom-instagram .zoom-instagram-widget__item .hover-layout.small .hover-controls .dashicons{font-size:15px;width:15px;height:15px}.wp-block-wpzoom-instagram-block .zoom-instagram-widget__item .hover-layout.small .zoom-instagram-icon-wrap .zoom-svg-instagram-stroke,.zoom-instagram .zoom-instagram-widget__item .hover-layout.small .zoom-instagram-icon-wrap .zoom-svg-instagram-stroke{width:18px;height:18px}.wp-block-wpzoom-instagram-block .zoom-instagram-widget__item .hover-layout.small .hover-controls .counter,.zoom-instagram .zoom-instagram-widget__item .hover-layout.small .hover-controls .counter{padding-right:1px;padding-left:4px;font-size:11px}.wp-block-wpzoom-instagram-block .zoom-instagram-widget-user-info,.zoom-instagram .zoom-instagram-widget-user-info{display:flex;padding:0 0px 20px}.wp-block-wpzoom-instagram-block .zoom-instagram-widget-user-info .zoom-instagram-widget-user-info-picture,.zoom-instagram .zoom-instagram-widget-user-info .zoom-instagram-widget-user-info-picture{flex:1}.wp-block-wpzoom-instagram-block .zoom-instagram-widget-user-info .zoom-instagram-widget-user-info-picture img,.zoom-instagram .zoom-instagram-widget-user-info .zoom-instagram-widget-user-info-picture img{border-radius:50%}.wp-block-wpzoom-instagram-block .zoom-instagram-widget-user-info .zoom-instagram-widget-user-info-meta,.zoom-instagram .zoom-instagram-widget-user-info .zoom-instagram-widget-user-info-meta{display:flex;flex:3;flex-direction:column;margin-right:15px;text-align:right;justify-content:center}.wp-block-wpzoom-instagram-block .zoom-instagram-widget-user-info .zoom-instagram-widget-user-info-about-data,.zoom-instagram .zoom-instagram-widget-user-info .zoom-instagram-widget-user-info-about-data{display:flex;justify-content:space-between;margin-bottom:10px}.wp-block-wpzoom-instagram-block .zoom-instagram-widget-user-info .zoom-instagram-widget-user-info-stats,.zoom-instagram .zoom-instagram-widget-user-info .zoom-instagram-widget-user-info-stats{font-size:14px;line-height:1.2;justify-content:space-between;display:flex;text-align:center}.wp-block-wpzoom-instagram-block .zoom-instagram-widget-user-info .zoom-instagram-widget-user-info-follow-button,.zoom-instagram .zoom-instagram-widget-user-info .zoom-instagram-widget-user-info-follow-button{padding:0px 24px;margin-top:10px;background:#3897f0;color:#fff !important;font-size:14px;font-weight:600;line-height:26px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;text-transform:none;border-radius:3px;outline:0;overflow:hidden;text-overflow:ellipsis;display:block;border:none;box-shadow:none;text-decoration:none !important}.wp-block-wpzoom-instagram-block .zoom-instagram-widget-user-info .zoom-instagram-widget-user-info-follow-button:hover,.zoom-instagram .zoom-instagram-widget-user-info .zoom-instagram-widget-user-info-follow-button:hover{color:#fff;opacity:.8;box-shadow:none;border:none;text-decoration:none}.wp-block-wpzoom-instagram-block .zoom-instagram-widget-user-info .zoom-instagram-widget-user-info-counts,.zoom-instagram .zoom-instagram-widget-user-info .zoom-instagram-widget-user-info-counts{font-weight:600}.wp-block-wpzoom-instagram-block .zoom-instagram-widget-user-info .zoom-instagram-widget-user-info-counts-subhead,.zoom-instagram .zoom-instagram-widget-user-info .zoom-instagram-widget-user-info-counts-subhead{opacity:.7;font-size:14px}.wp-block-wpzoom-instagram-block .zoom-instagram-widget-user-info-middle-cell,.zoom-instagram .zoom-instagram-widget-user-info-middle-cell{padding:0px 20px}.wp-block-wpzoom-instagram-block .zoom-instagram-widget-user-info .zoom-instagram-widget-user-info-fullname,.zoom-instagram .zoom-instagram-widget-user-info .zoom-instagram-widget-user-info-fullname{font-weight:600;font-size:16px}.wp-block-wpzoom-instagram-block .zoom-instagram-widget-user-info .zoom-instagram-widget-user-info-names-wrapper,.zoom-instagram .zoom-instagram-widget-user-info .zoom-instagram-widget-user-info-names-wrapper{padding-left:20px;word-break:break-word}.wp-block-wpzoom-instagram-block .zoom-instagram-widget-user-info .zoom-instagram-widget-user-info-username,.zoom-instagram .zoom-instagram-widget-user-info .zoom-instagram-widget-user-info-username{font-size:14px;font-weight:600;word-break:break-all;opacity:.7}.wp-block-wpzoom-instagram-block .zoom-instagram-widget-user-info-bio,.zoom-instagram .zoom-instagram-widget-user-info-bio{text-align:right;font-size:14px;margin:0 0 15px}.wp-block-wpzoom-instagram-block .zoom-instagram-widget__items .zoom-instagram-widget__item-inner-wrap,.zoom-instagram .zoom-instagram-widget__items .zoom-instagram-widget__item-inner-wrap{position:relative;height:100%;overflow:hidden}.wp-block-wpzoom-instagram-block .zoom-instagram-widget__items .zoom-instagram-widget__item .zoom-instagram-link,.zoom-instagram .zoom-instagram-widget__items .zoom-instagram-widget__item .zoom-instagram-link{display:block;background-size:cover !important;background-position:center center !important;background-repeat:no-repeat !important}.wp-block-wpzoom-instagram-block .zoom-instagram-widget__items .svg-icon,.zoom-instagram .zoom-instagram-widget__items .svg-icon{position:absolute;width:32px;padding:8px;height:32px;display:flex;top:0;left:0;z-index:1}.wpz-insta-lightbox{pointer-events:all;display:flex;flex-direction:row;background-color:#fff}.wpz-insta-lightbox-wrapper{display:flex;justify-content:center;pointer-events:none}.wpz-insta-lightbox-wrapper .wpz-insta-lightbox .details-wrapper .wpz-insta-header{display:flex;align-items:center;padding:16px;border-bottom:1px solid #efefef}.wpz-insta-lightbox-wrapper .wpz-insta-lightbox .details-wrapper .wpz-insta-header .wpz-insta-avatar img{width:42px;height:42px;border-radius:50%}.wpz-insta-lightbox-wrapper .wpz-insta-lightbox .details-wrapper .wpz-insta-header .wpz-insta-username a,.wpz-insta-lightbox-wrapper .wpz-insta-lightbox .details-wrapper .wpz-insta-header .wpz-insta-follow a{color:#262626;font-weight:600;text-decoration:none;font-size:14px}.wpz-insta-lightbox-wrapper .wpz-insta-lightbox .details-wrapper .wpz-insta-header .wpz-insta-username a:hover{text-decoration:underline}.wpz-insta-lightbox-wrapper .wpz-insta-lightbox .details-wrapper .wpz-insta-header .wpz-insta-follow a{color:#0095f6}.wpz-insta-lightbox-wrapper .wpz-insta-lightbox .details-wrapper .wpz-insta-header>div{margin-left:13px}.wpz-insta-lightbox-wrapper .wpz-insta-lightbox .details-wrapper .wpz-insta-header .wpz-insta-buttons{display:flex}.wpz-insta-lightbox-wrapper .wpz-insta-lightbox .details-wrapper .wpz-insta-header .wpz-insta-buttons>div{padding:5px}.wpz-insta-lightbox-wrapper .wpz-insta-lightbox .details-wrapper .wpz-insta-caption{color:#262626;line-height:1.5;font-size:14px;padding:16px;font-weight:normal;overflow-y:scroll;max-height:384px;border-bottom:1px solid #efefef}.wpzoom-lightbox.mfp-gallery{z-index:100000;pointer-events:none}.wpzoom-lightbox button.mfp-close{pointer-events:all;color:#fff;font-size:50px;font-weight:100;margin-top:25px;margin-left:15px}.wpzoom-lightbox .mfp-prevent-close{pointer-events:all}.wpzoom-lightbox button.mfp-close:hover{text-decoration:none}.wpz-insta-lightbox-wrapper .wpz-insta-lightbox .details-wrapper .wpz-insta-date{font-size:12px;padding:16px;color:#8e8e8e;flex:1}.wpz-insta-lightbox-wrapper .wpz-insta-lightbox .image-wrapper{flex-grow:1;text-align:center;height:600px;width:600px;background:#000}.wpz-insta-lightbox-wrapper .wpz-insta-lightbox .image-wrapper img{height:100%;max-width:100%;-o-object-fit:contain;object-fit:contain}.wpz-insta-lightbox-wrapper>.swiper-container{pointer-events:none;width:70%;height:100%}.wpz-insta-lightbox-wrapper>.swiper-container .swiper-container{width:100%;height:100%}.wpz-insta-lightbox-wrapper>.swiper-container .swiper-container .swiper-slide{height:100%}.wpz-insta-lightbox-wrapper video{height:100%;max-width:100%}.wpz-insta-lightbox-wrapper>.swiper-container .swiper-container .swiper-button-prev,.wpz-insta-lightbox-wrapper>.swiper-container .swiper-container .swiper-button-next{--swiper-navigation-size: 34px;color:#000;background:#fff;width:var(--swiper-navigation-size);border-radius:50%}.wpz-insta-lightbox-wrapper>.swiper-container .swiper-container .swiper-button-prev::after,.wpz-insta-lightbox-wrapper>.swiper-container .swiper-container .swiper-button-next::after{font-size:16px}.wpz-insta-lightbox-wrapper>.swiper-container>.swiper-wrapper{pointer-events:all}.wpz-insta-lightbox-wrapper>.swiper-container>.swiper-button-prev,.wpz-insta-lightbox-wrapper>.swiper-container>.swiper-button-next{position:fixed;pointer-events:all}.wpz-insta-lightbox-wrapper>.swiper-container .swiper-button-prev,.wpz-insta-lightbox-wrapper>.swiper-container .swiper-button-next{color:#fff;opacity:.75}.wpz-insta-lightbox-wrapper>.swiper-container .swiper-button-prev:hover,.wpz-insta-lightbox-wrapper>.swiper-container .swiper-button-next:hover{opacity:1}.wpz-insta-lightbox-wrapper>.swiper-container .swiper-button-prev.swiper-button-disabled,.wpz-insta-lightbox-wrapper>.swiper-container .swiper-button-next.swiper-button-disabled{opacity:.25 !important}.wpz-insta-lightbox-wrapper .wpz-insta-lightbox .details-wrapper{display:flex;flex-direction:column;flex-grow:1}.wpz-insta-lightbox-wrapper .wpz-insta-lightbox .details-wrapper .view-post{padding:16px;text-decoration:none;font-size:12px;color:#262626;font-weight:400;line-height:20px;display:flex;border-top:1px solid #efefef}.wpz-insta-lightbox-wrapper .wpz-insta-lightbox .details-wrapper .view-post a{text-decoration:none;font-size:12px;color:#262626;font-weight:400;line-height:20px;text-align:center;display:inline-block}.wpz-insta-lightbox-wrapper .wpz-insta-lightbox .details-wrapper .view-post a span{margin-left:10px}.wpz-insta-lightbox-wrapper .wpz-insta-lightbox .details-wrapper .view-post .delimiter{padding:0px 10px}@-webkit-keyframes show{100%{transform:none;opacity:1}}@keyframes show{100%{transform:none;opacity:1}}@media screen and (max-width: 1200px){.wpz-insta-lightbox-wrapper .wpz-insta-lightbox{flex-wrap:wrap}}@media screen and (max-width: 860px){.wpz-insta-lightbox-wrapper .wpz-insta-lightbox .details-wrapper .wpz-insta-caption{font-size:12px;max-height:134px}}.wp-admin .wp-block-wpzoom-instagram-block .zoom-instagram-widget__overlay,.wp-admin .zoom-instagram .zoom-instagram-widget__overlay{cursor:pointer}.wp-admin .wp-block-wpzoom-instagram-block .zoom-instagram-widget__items .zoom-instagram-widget__item .zoom-instagram-link,.wp-admin .zoom-instagram .zoom-instagram-widget__items .zoom-instagram-widget__item .zoom-instagram-link{pointer-events:none}@media screen and (max-width: 768px){.wpz-insta-lightbox{flex-direction:column}.wpz-insta-lightbox-wrapper .wpz-insta-lightbox .image-wrapper{border-radius:4px 4px 0 0;max-width:100%}.wpz-insta-lightbox-wrapper .wpz-insta-lightbox .details-wrapper{width:100%}}
dist/styles/frontend/block.asset.php ADDED
@@ -0,0 +1 @@
 
1
+ <?php return array('dependencies' => array('wp-polyfill'), 'version' => 'abe5f50cc88d5abe11428e9648df5151');
dist/styles/frontend/block.css ADDED
@@ -0,0 +1 @@
 
1
+ .wpzoom-instagram-widget-select-feed select{max-width:100%}img{height:auto;max-width:100%}.wp-block-wpzoom-instagram-block .zoom-instagram,.zoom-instagram .zoom-instagram{background:none;padding:0;border:none}.wp-block-wpzoom-instagram-block form[disabled],.zoom-instagram form[disabled]{pointer-events:none}.wp-block-wpzoom-instagram-block form[disabled]:not(.loading),.zoom-instagram form[disabled]:not(.loading){opacity:.5}.wp-block-wpzoom-instagram-block .zoom-instagram-widget__header,.zoom-instagram .zoom-instagram-widget__header{display:flex;gap:20px;margin:0 0 25px}.wp-block-wpzoom-instagram-block .zoom-instagram-widget__header .zoom-instagram-widget__header-column-left,.zoom-instagram .zoom-instagram-widget__header .zoom-instagram-widget__header-column-left{min-width:70px}.wp-block-wpzoom-instagram-block .zoom-instagram-widget__header .zoom-instagram-widget__header-column-left img,.zoom-instagram .zoom-instagram-widget__header .zoom-instagram-widget__header-column-left img{width:70px;border-radius:50%}.wp-block-wpzoom-instagram-block .zoom-instagram-widget__header .zoom-instagram-widget__header-column-right,.zoom-instagram .zoom-instagram-widget__header .zoom-instagram-widget__header-column-right{display:flex;flex-direction:column;justify-content:center;text-align:left}.wp-block-wpzoom-instagram-block .zoom-instagram-widget__header .zoom-instagram-widget__header-name,.zoom-instagram .zoom-instagram-widget__header .zoom-instagram-widget__header-name{font-size:14px;font-weight:600;line-height:1.5;padding:0;margin:0}.wp-block-wpzoom-instagram-block .zoom-instagram-widget__header .zoom-instagram-widget__header-user,.zoom-instagram .zoom-instagram-widget__header .zoom-instagram-widget__header-user{font-size:13px;font-weight:600;line-height:normal;padding:0;margin:0}.wp-block-wpzoom-instagram-block .zoom-instagram-widget__header .zoom-instagram-widget__header-user a,.zoom-instagram .zoom-instagram-widget__header .zoom-instagram-widget__header-user a{text-decoration:none}.wp-block-wpzoom-instagram-block .zoom-instagram-widget__header .zoom-instagram-widget__header-bio,.zoom-instagram .zoom-instagram-widget__header .zoom-instagram-widget__header-bio{font-size:14px;font-weight:normal;line-height:1.6;padding:0;margin:6px 0 0;text-align:left}.wp-block-wpzoom-instagram-block .zoom-instagram-widget__footer,.zoom-instagram .zoom-instagram-widget__footer{display:flex;justify-content:center;align-items:center;flex-direction:row;flex-wrap:wrap;gap:15px;margin:25px 0 0}.wp-block-wpzoom-instagram-block .zoom-instagram-widget__footer>*,.zoom-instagram .zoom-instagram-widget__footer>*{display:block}.wp-block-wpzoom-instagram-block .zoom-instagram-widget__footer .wpz-insta-view-on-insta-button,.wp-block-wpzoom-instagram-block .zoom-instagram-widget__footer .wpzinsta-pro-load-more input[type=submit],.wp-block-wpzoom-instagram-block .zoom-instagram-widget__footer .wpzinsta-pro-load-more button[type=submit],.zoom-instagram .zoom-instagram-widget__footer .wpz-insta-view-on-insta-button,.zoom-instagram .zoom-instagram-widget__footer .wpzinsta-pro-load-more input[type=submit],.zoom-instagram .zoom-instagram-widget__footer .wpzinsta-pro-load-more button[type=submit]{display:flex;align-items:center;justify-content:center;gap:6px;cursor:pointer;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:14px;font-weight:500;text-decoration:none;text-transform:none;letter-spacing:normal;line-height:18px;color:#fff;background-color:#3496ff;padding:8px 12px;border:none;border-radius:3px;margin:0;transition:all .3s linear}.wp-block-wpzoom-instagram-block .zoom-instagram-widget__footer .wpz-insta-view-on-insta-button:hover,.wp-block-wpzoom-instagram-block .zoom-instagram-widget__footer .wpz-insta-view-on-insta-button:active,.wp-block-wpzoom-instagram-block .zoom-instagram-widget__footer .wpzinsta-pro-load-more input[type=submit]:hover,.wp-block-wpzoom-instagram-block .zoom-instagram-widget__footer .wpzinsta-pro-load-more input[type=submit]:active,.wp-block-wpzoom-instagram-block .zoom-instagram-widget__footer .wpzinsta-pro-load-more button[type=submit]:hover,.wp-block-wpzoom-instagram-block .zoom-instagram-widget__footer .wpzinsta-pro-load-more button[type=submit]:active,.zoom-instagram .zoom-instagram-widget__footer .wpz-insta-view-on-insta-button:hover,.zoom-instagram .zoom-instagram-widget__footer .wpz-insta-view-on-insta-button:active,.zoom-instagram .zoom-instagram-widget__footer .wpzinsta-pro-load-more input[type=submit]:hover,.zoom-instagram .zoom-instagram-widget__footer .wpzinsta-pro-load-more input[type=submit]:active,.zoom-instagram .zoom-instagram-widget__footer .wpzinsta-pro-load-more button[type=submit]:hover,.zoom-instagram .zoom-instagram-widget__footer .wpzinsta-pro-load-more button[type=submit]:active{text-decoration:none;opacity:.8}.wp-block-wpzoom-instagram-block .zoom-instagram-widget__footer .wpz-insta-view-on-insta-button .button-icon,.wp-block-wpzoom-instagram-block .zoom-instagram-widget__footer .wpzinsta-pro-load-more input[type=submit] .button-icon,.wp-block-wpzoom-instagram-block .zoom-instagram-widget__footer .wpzinsta-pro-load-more button[type=submit] .button-icon,.zoom-instagram .zoom-instagram-widget__footer .wpz-insta-view-on-insta-button .button-icon,.zoom-instagram .zoom-instagram-widget__footer .wpzinsta-pro-load-more input[type=submit] .button-icon,.zoom-instagram .zoom-instagram-widget__footer .wpzinsta-pro-load-more button[type=submit] .button-icon{height:18px;width:18px;transition:all .3s linear}.wp-block-wpzoom-instagram-block .zoom-instagram-widget__footer .wpzinsta-pro-load-more button[type=submit],.zoom-instagram .zoom-instagram-widget__footer .wpzinsta-pro-load-more button[type=submit]{gap:0}.wp-block-wpzoom-instagram-block .zoom-instagram-widget__footer .wpzinsta-pro-load-more button[type=submit]::before,.zoom-instagram .zoom-instagram-widget__footer .wpzinsta-pro-load-more button[type=submit]::before{content:"";background-image:url("data:image/svg+xml,%3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' viewBox='0 0 50 50' xml:space='preserve'%3E%3Cpath fill='%23ffffff' d='M43.935,25.145c0-10.318-8.364-18.683-18.683-18.683c-10.318,0-18.683,8.365-18.683,18.683h4.068c0-8.071,6.543-14.615,14.615-14.615c8.072,0,14.615,6.543,14.615,14.615H43.935z'%3E%3CanimateTransform attributeType='xml' attributeName='transform' type='rotate' from='0 25 25' to='360 25 25' dur='0.6s' repeatCount='indefinite'/%3E%3C/path%3E%3C/svg%3E");background-repeat:no-repeat;background-position:center;height:18px;width:0;transition:all .3s linear}.wp-block-wpzoom-instagram-block .wpzinsta-pro-load-more,.zoom-instagram .wpzinsta-pro-load-more{margin:0}.wp-block-wpzoom-instagram-block .wpzinsta-pro-load-more.loading button[type=submit],.zoom-instagram .wpzinsta-pro-load-more.loading button[type=submit]{gap:6px}.wp-block-wpzoom-instagram-block .wpzinsta-pro-load-more.loading button[type=submit]::before,.zoom-instagram .wpzinsta-pro-load-more.loading button[type=submit]::before{width:18px}.wp-block-wpzoom-instagram-block .zoom-instagram .zoom-instagram-widget__items-wrapper,.zoom-instagram .zoom-instagram .zoom-instagram-widget__items-wrapper{overflow:hidden}.wp-block-wpzoom-instagram-block .zoom-instagram .zoom-instagram-widget__items,.zoom-instagram .zoom-instagram .zoom-instagram-widget__items{list-style:none !important;padding:0;margin:0}.wp-block-wpzoom-instagram-block .zoom-instagram .zoom-instagram-widget__items.layout-grid,.zoom-instagram .zoom-instagram .zoom-instagram-widget__items.layout-grid{display:grid;grid-template-columns:repeat(3, 1fr);gap:10px}.wp-block-wpzoom-instagram-block .zoom-instagram .zoom-instagram-widget__items.layout-grid .zoom-instagram-widget__item img,.zoom-instagram .zoom-instagram .zoom-instagram-widget__items.layout-grid .zoom-instagram-widget__item img{-o-object-fit:cover;object-fit:cover;width:100%;height:100%;aspect-ratio:1/1}.wp-block-wpzoom-instagram-block .zoom-instagram .zoom-instagram-widget__items.layout-fullwidth,.zoom-instagram .zoom-instagram .zoom-instagram-widget__items.layout-fullwidth{display:flex;width:5000px}.wp-block-wpzoom-instagram-block .zoom-instagram .zoom-instagram-widget__items.layout-fullwidth .zoom-instagram-widget__item img,.zoom-instagram .zoom-instagram .zoom-instagram-widget__items.layout-fullwidth .zoom-instagram-widget__item img{aspect-ratio:1;-o-object-fit:cover;object-fit:cover}.wp-block-wpzoom-instagram-block .zoom-instagram-widget__item,.zoom-instagram .zoom-instagram-widget__item{position:relative;margin:0;list-style-type:none}.wp-block-wpzoom-instagram-block .zoom-instagram-widget__item.new,.zoom-instagram .zoom-instagram-widget__item.new{opacity:0;transform:scale(0);transform-origin:center;-webkit-animation:show 500ms linear forwards;animation:show 500ms linear forwards}.wp-block-wpzoom-instagram-block .zoom-instagram-widget__item .zoom-instagram-widget__item-inner-wrap,.zoom-instagram .zoom-instagram-widget__item .zoom-instagram-widget__item-inner-wrap{position:relative;height:100%;overflow:hidden}.wp-block-wpzoom-instagram-block .zoom-instagram-widget__items::before,.wp-block-wpzoom-instagram-block .zoom-instagram-widget__items::after,.zoom-instagram .zoom-instagram-widget__items::before,.zoom-instagram .zoom-instagram-widget__items::after{display:none}.wp-block-wpzoom-instagram-block .zoom-instagram-widget__items .zoom-instagram-widget__item .zoom-instagram-link,.zoom-instagram .zoom-instagram-widget__items .zoom-instagram-widget__item .zoom-instagram-link{height:100%}.wp-block-wpzoom-instagram-block .ig-b-,.zoom-instagram .ig-b-{display:inline-block}.wp-block-wpzoom-instagram-block a.ig-b-v-24,.zoom-instagram a.ig-b-v-24{border-color:#3897f0;color:#3897f0 !important;border-radius:3px;border-style:solid;border-width:1px;font-weight:600 !important;outline:none;overflow:hidden;white-space:nowrap;-webkit-appearance:none;font-family:sans-serif;padding:5px 15px;font-size:14px;transition:all .15s ease-in-out;-moz-transition:all .15s ease-in-out;-webkit-transition:all .15s ease-in-out;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none !important}.wp-block-wpzoom-instagram-block a.ig-b-v-24:hover,.zoom-instagram a.ig-b-v-24:hover{background:#3897f0;border-color:#3897f0;color:#fff !important}.wp-block-wpzoom-instagram-block .zoom-instagram-widget__item .hover-controls,.zoom-instagram .zoom-instagram-widget__item .hover-controls{opacity:0;z-index:9;margin-top:-15px;position:absolute;top:40%;width:100%;text-align:center;transition:opacity .25s ease-in-out;-moz-transition:opacity .25s ease-in-out;-webkit-transition:opacity .25s ease-in-out}.wp-block-wpzoom-instagram-block .zoom-instagram-widget__items[data-lightbox="1"] .zoom-instagram-widget__item .zoom-instagram-icon-wrap,.zoom-instagram .zoom-instagram-widget__items[data-lightbox="1"] .zoom-instagram-widget__item .zoom-instagram-icon-wrap{pointer-events:none}.wp-block-wpzoom-instagram-block .zoom-instagram-widget__item .zoom-instagram-widget__item-inner-wrap,.zoom-instagram .zoom-instagram-widget__item .zoom-instagram-widget__item-inner-wrap{position:relative;height:100%;overflow:hidden}.wp-block-wpzoom-instagram-block .zoom-instagram-widget__item .hover-controls~.zoom-instagram-icon-wrap,.zoom-instagram .zoom-instagram-widget__item .hover-controls~.zoom-instagram-icon-wrap{bottom:10%;pointer-events:all}.wp-block-wpzoom-instagram-block .zoom-instagram-widget__item .hover-layout.small .hover-controls~.zoom-instagram-icon-wrap,.zoom-instagram .zoom-instagram-widget__item .hover-layout.small .hover-controls~.zoom-instagram-icon-wrap{bottom:6%}.wp-block-wpzoom-instagram-block .zoom-instagram-widget__item .hover-layout.small .zoom-instagram-icon-wrap,.zoom-instagram .zoom-instagram-widget__item .hover-layout.small .zoom-instagram-icon-wrap{bottom:calc(50% - 15px)}.wp-block-wpzoom-instagram-block .zoom-instagram-widget__item .zoom-instagram-icon-wrap,.zoom-instagram .zoom-instagram-widget__item .zoom-instagram-icon-wrap{bottom:calc(50% - 15px);height:30px;width:100%;position:absolute;z-index:9;text-align:center}.wp-block-wpzoom-instagram-block .zoom-instagram-widget__item:hover .hover-controls,.zoom-instagram .zoom-instagram-widget__item:hover .hover-controls{opacity:1}.wp-block-wpzoom-instagram-block .zoom-instagram-widget__item .zoom-instagram-icon-wrap,.zoom-instagram .zoom-instagram-widget__item .zoom-instagram-icon-wrap{opacity:0;transition:opacity .25s ease-in-out;-moz-transition:opacity .25s ease-in-out;-webkit-transition:opacity .25s ease-in-out}.wp-block-wpzoom-instagram-block .zoom-instagram-widget__item:hover .zoom-instagram-icon-wrap,.zoom-instagram .zoom-instagram-widget__item:hover .zoom-instagram-icon-wrap{opacity:1}.wp-block-wpzoom-instagram-block .zoom-instagram-widget__item .hover-controls .dashicons,.zoom-instagram .zoom-instagram-widget__item .hover-controls .dashicons{font-size:20px;width:20px;height:20px;color:#fff;vertical-align:middle}.wp-block-wpzoom-instagram-block .zoom-instagram-widget__item .hover-controls .counter,.zoom-instagram .zoom-instagram-widget__item .hover-controls .counter{padding-left:1px;padding-right:12px;font-weight:500;color:#fff;font-size:14px;opacity:.8;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif}.wp-block-wpzoom-instagram-block .zoom-instagram-widget__overlay,.zoom-instagram .zoom-instagram-widget__overlay{position:absolute;top:0;left:0;right:0;bottom:0}.wp-block-wpzoom-instagram-block .zoom-instagram-widget__overlay:after,.zoom-instagram .zoom-instagram-widget__overlay:after{position:absolute;content:"";top:0;left:0;pointer-events:none;width:100%;height:100%;opacity:0;transition:opacity .25s ease-in-out;-moz-transition:opacity .25s ease-in-out;-webkit-transition:opacity .25s ease-in-out}.wp-block-wpzoom-instagram-block .zoom-instagram-widget__overlay:hover:after,.zoom-instagram .zoom-instagram-widget__overlay:hover:after{opacity:.7;background-color:#000}.wp-block-wpzoom-instagram-block .zoom-instagram-widget__black:after,.zoom-instagram .zoom-instagram-widget__black:after{background-color:#000}.wp-block-wpzoom-instagram-block .zoom-svg-instagram-simple,.zoom-instagram .zoom-svg-instagram-simple{display:inline-block;width:30px;height:30px;background:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHg9IjBweCIgeT0iMHB4IgogICAgIHdpZHRoPSI1MCIgaGVpZ2h0PSI1MCIKICAgICB2aWV3Qm94PSIwIDAgNTAgNTAiCiAgICAgc3R5bGU9ImZpbGw6I2ZmZmZmZjsiPiAgICA8cGF0aCBzdHlsZT0ibGluZS1oZWlnaHQ6bm9ybWFsO3RleHQtaW5kZW50OjA7dGV4dC1hbGlnbjpzdGFydDt0ZXh0LWRlY29yYXRpb24tbGluZTpub25lO3RleHQtZGVjb3JhdGlvbi1zdHlsZTpzb2xpZDt0ZXh0LWRlY29yYXRpb24tY29sb3I6IzAwMDt0ZXh0LXRyYW5zZm9ybTpub25lO2Jsb2NrLXByb2dyZXNzaW9uOnRiO2lzb2xhdGlvbjphdXRvO21peC1ibGVuZC1tb2RlOm5vcm1hbCIgZD0iTSAxNiAzIEMgOC44MzI0ODM5IDMgMyA4LjgzMjQ4MzkgMyAxNiBMIDMgMzQgQyAzIDQxLjE2NzUxNiA4LjgzMjQ4MzkgNDcgMTYgNDcgTCAzNCA0NyBDIDQxLjE2NzUxNiA0NyA0NyA0MS4xNjc1MTYgNDcgMzQgTCA0NyAxNiBDIDQ3IDguODMyNDgzOSA0MS4xNjc1MTYgMyAzNCAzIEwgMTYgMyB6IE0gMTYgNSBMIDM0IDUgQyA0MC4wODY0ODQgNSA0NSA5LjkxMzUxNjEgNDUgMTYgTCA0NSAzNCBDIDQ1IDQwLjA4NjQ4NCA0MC4wODY0ODQgNDUgMzQgNDUgTCAxNiA0NSBDIDkuOTEzNTE2MSA0NSA1IDQwLjA4NjQ4NCA1IDM0IEwgNSAxNiBDIDUgOS45MTM1MTYxIDkuOTEzNTE2MSA1IDE2IDUgeiBNIDM3IDExIEEgMiAyIDAgMCAwIDM1IDEzIEEgMiAyIDAgMCAwIDM3IDE1IEEgMiAyIDAgMCAwIDM5IDEzIEEgMiAyIDAgMCAwIDM3IDExIHogTSAyNSAxNCBDIDE4LjkzNjcxMiAxNCAxNCAxOC45MzY3MTIgMTQgMjUgQyAxNCAzMS4wNjMyODggMTguOTM2NzEyIDM2IDI1IDM2IEMgMzEuMDYzMjg4IDM2IDM2IDMxLjA2MzI4OCAzNiAyNSBDIDM2IDE4LjkzNjcxMiAzMS4wNjMyODggMTQgMjUgMTQgeiBNIDI1IDE2IEMgMjkuOTgyNDA3IDE2IDM0IDIwLjAxNzU5MyAzNCAyNSBDIDM0IDI5Ljk4MjQwNyAyOS45ODI0MDcgMzQgMjUgMzQgQyAyMC4wMTc1OTMgMzQgMTYgMjkuOTgyNDA3IDE2IDI1IEMgMTYgMjAuMDE3NTkzIDIwLjAxNzU5MyAxNiAyNSAxNiB6IiBmb250LXdlaWdodD0iNDAwIiBmb250LWZhbWlseT0ic2Fucy1zZXJpZiIgd2hpdGUtc3BhY2U9Im5vcm1hbCIgb3ZlcmZsb3c9InZpc2libGUiPjwvcGF0aD48L3N2Zz4=") 50% 50% no-repeat;background-size:100%}.wp-block-wpzoom-instagram-block .zoom-svg-instagram-stroke,.zoom-instagram .zoom-svg-instagram-stroke{display:inline-block;width:30px;height:30px;background:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHg9IjBweCIgeT0iMHB4IgogICAgIHdpZHRoPSI1MCIgaGVpZ2h0PSI1MCIKICAgICB2aWV3Qm94PSIwIDAgMjUyIDI1MiIKICAgICBzdHlsZT0iZmlsbDojMDAwMDAwOyI+PGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMi4zOTQsMi4zOTQpIHNjYWxlKDAuOTgxLDAuOTgxKSI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJub256ZXJvIiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9ImJ1dHQiIHN0cm9rZS1saW5lam9pbj0ibm9uZSIgc3Ryb2tlLW1pdGVybGltaXQ9IjEwIiBzdHJva2UtZGFzaGFycmF5PSIiIHN0cm9rZS1kYXNob2Zmc2V0PSIwIiBmb250LWZhbWlseT0ibm9uZSIgZm9udC13ZWlnaHQ9Im5vbmUiIGZvbnQtc2l6ZT0ibm9uZSIgdGV4dC1hbmNob3I9Im5vbmUiIHN0eWxlPSJtaXgtYmxlbmQtbW9kZTogbm9ybWFsIj48ZyBpZD0ib3JpZ2luYWwtaWNvbiAxIiBmaWxsPSIjZmZmZmZmIiBzdHJva2U9IiNmZmZmZmYiIHN0cm9rZS13aWR0aD0iNSIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBhdGggZD0iTTE3MS4zNiwxNS4xMmMzNi4xMjQyOCwwIDY1LjUyLDI5LjM5NTcyIDY1LjUyLDY1LjUydjkwLjcyYzAsMzYuMTI0MjggLTI5LjM5NTcyLDY1LjUyIC02NS41Miw2NS41MmgtOTAuNzJjLTM2LjEyNDI4LDAgLTY1LjUyLC0yOS4zOTU3MiAtNjUuNTIsLTY1LjUydi05MC43MmMwLC0zNi4xMjQyOCAyOS4zOTU3MiwtNjUuNTIgNjUuNTIsLTY1LjUyek0yNS4yLDgwLjY0djkwLjcyYzAsMzAuNjc1ODggMjQuNzY0MTIsNTUuNDQgNTUuNDQsNTUuNDRoOTAuNzJjMzAuNjc1ODgsMCA1NS40NCwtMjQuNzY0MTIgNTUuNDQsLTU1LjQ0di05MC43MmMwLC0zMC42NzU4OCAtMjQuNzY0MTIsLTU1LjQ0IC01NS40NCwtNTUuNDRoLTkwLjcyYy0zMC42NzU4OCwwIC01NS40NCwyNC43NjQxMiAtNTUuNDQsNTUuNDR6TTE5Ni41Niw2NS41MmMwLDUuNTY3MDMgLTQuNTEyOTcsMTAuMDggLTEwLjA4LDEwLjA4Yy01LjU2NzAzLDAgLTEwLjA4LC00LjUxMjk3IC0xMC4wOCwtMTAuMDhjMCwtNS41NjcwMyA0LjUxMjk3LC0xMC4wOCAxMC4wOCwtMTAuMDhjNS41NjcwMywwIDEwLjA4LDQuNTEyOTcgMTAuMDgsMTAuMDh6TTE4MS40NCwxMjZjMCwzMC41NTg5NyAtMjQuODgxMDMsNTUuNDQgLTU1LjQ0LDU1LjQ0Yy0zMC41NTg5NywwIC01NS40NCwtMjQuODgxMDMgLTU1LjQ0LC01NS40NGMwLC0zMC41NTg5NyAyNC44ODEwMywtNTUuNDQgNTUuNDQsLTU1LjQ0YzMwLjU1ODk3LDAgNTUuNDQsMjQuODgxMDMgNTUuNDQsNTUuNDR6TTgwLjY0LDEyNmMwLDI1LjExMTMzIDIwLjI0ODY3LDQ1LjM2IDQ1LjM2LDQ1LjM2YzI1LjExMTMzLDAgNDUuMzYsLTIwLjI0ODY3IDQ1LjM2LC00NS4zNmMwLC0yNS4xMTEzMyAtMjAuMjQ4NjcsLTQ1LjM2IC00NS4zNiwtNDUuMzZjLTI1LjExMTMzLDAgLTQ1LjM2LDIwLjI0ODY3IC00NS4zNiw0NS4zNnoiPjwvcGF0aD48L2c+PHBhdGggZD0iTTAsMjUydi0yNTJoMjUydjI1MnoiIGZpbGw9Im5vbmUiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBzdHJva2UtbGluZWpvaW49Im1pdGVyIj48L3BhdGg+PGcgaWQ9Im9yaWdpbmFsLWljb24iIGZpbGw9IiNmZmZmZmYiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBzdHJva2UtbGluZWpvaW49Im1pdGVyIj48cGF0aCBkPSJNODAuNjQsMTUuMTJjLTM2LjEyNDI4LDAgLTY1LjUyLDI5LjM5NTcyIC02NS41Miw2NS41MnY5MC43MmMwLDM2LjEyNDI4IDI5LjM5NTcyLDY1LjUyIDY1LjUyLDY1LjUyaDkwLjcyYzM2LjEyNDI4LDAgNjUuNTIsLTI5LjM5NTcyIDY1LjUyLC02NS41MnYtOTAuNzJjMCwtMzYuMTI0MjggLTI5LjM5NTcyLC02NS41MiAtNjUuNTIsLTY1LjUyek04MC42NCwyNS4yaDkwLjcyYzMwLjY3NTg4LDAgNTUuNDQsMjQuNzY0MTIgNTUuNDQsNTUuNDR2OTAuNzJjMCwzMC42NzU4OCAtMjQuNzY0MTIsNTUuNDQgLTU1LjQ0LDU1LjQ0aC05MC43MmMtMzAuNjc1ODgsMCAtNTUuNDQsLTI0Ljc2NDEyIC01NS40NCwtNTUuNDR2LTkwLjcyYzAsLTMwLjY3NTg4IDI0Ljc2NDEyLC01NS40NCA1NS40NCwtNTUuNDR6TTE4Ni40OCw1NS40NGMtNS41NjcwMywwIC0xMC4wOCw0LjUxMjk3IC0xMC4wOCwxMC4wOGMwLDUuNTY3MDMgNC41MTI5NywxMC4wOCAxMC4wOCwxMC4wOGM1LjU2NzAzLDAgMTAuMDgsLTQuNTEyOTcgMTAuMDgsLTEwLjA4YzAsLTUuNTY3MDMgLTQuNTEyOTcsLTEwLjA4IC0xMC4wOCwtMTAuMDh6TTEyNiw3MC41NmMtMzAuNTU4OTcsMCAtNTUuNDQsMjQuODgxMDMgLTU1LjQ0LDU1LjQ0YzAsMzAuNTU4OTcgMjQuODgxMDMsNTUuNDQgNTUuNDQsNTUuNDRjMzAuNTU4OTcsMCA1NS40NCwtMjQuODgxMDMgNTUuNDQsLTU1LjQ0YzAsLTMwLjU1ODk3IC0yNC44ODEwMywtNTUuNDQgLTU1LjQ0LC01NS40NHpNMTI2LDgwLjY0YzI1LjExMTMzLDAgNDUuMzYsMjAuMjQ4NjcgNDUuMzYsNDUuMzZjMCwyNS4xMTEzMyAtMjAuMjQ4NjcsNDUuMzYgLTQ1LjM2LDQ1LjM2Yy0yNS4xMTEzMywwIC00NS4zNiwtMjAuMjQ4NjcgLTQ1LjM2LC00NS4zNmMwLC0yNS4xMTEzMyAyMC4yNDg2NywtNDUuMzYgNDUuMzYsLTQ1LjM2eiI+PC9wYXRoPjwvZz48cGF0aCBkPSJNMTI2LDI1MmMtNjkuNTg3ODgsMCAtMTI2LC01Ni40MTIxMiAtMTI2LC0xMjZ2MGMwLC02OS41ODc4OCA1Ni40MTIxMiwtMTI2IDEyNiwtMTI2djBjNjkuNTg3ODgsMCAxMjYsNTYuNDEyMTIgMTI2LDEyNnYwYzAsNjkuNTg3ODggLTU2LjQxMjEyLDEyNiAtMTI2LDEyNnoiIGZpbGw9Im5vbmUiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBzdHJva2UtbGluZWpvaW49Im1pdGVyIj48L3BhdGg+PHBhdGggZD0iTTEyNiwyNDYuOTZjLTY2LjgwNDM2LDAgLTEyMC45NiwtNTQuMTU1NjQgLTEyMC45NiwtMTIwLjk2djBjMCwtNjYuODA0MzYgNTQuMTU1NjQsLTEyMC45NiAxMjAuOTYsLTEyMC45NmgwYzY2LjgwNDM2LDAgMTIwLjk2LDU0LjE1NTY0IDEyMC45NiwxMjAuOTZ2MGMwLDY2LjgwNDM2IC01NC4xNTU2NCwxMjAuOTYgLTEyMC45NiwxMjAuOTZ6IiBmaWxsPSJub25lIiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgc3Ryb2tlLWxpbmVqb2luPSJtaXRlciI+PC9wYXRoPjxwYXRoIGQ9IiIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjEiIHN0cm9rZS1saW5lam9pbj0ibWl0ZXIiPjwvcGF0aD48cGF0aCBkPSIiIGZpbGw9Im5vbmUiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBzdHJva2UtbGluZWpvaW49Im1pdGVyIj48L3BhdGg+PHBhdGggZD0iIiBmaWxsPSJub25lIiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgc3Ryb2tlLWxpbmVqb2luPSJtaXRlciI+PC9wYXRoPjxwYXRoIGQ9IiIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjEiIHN0cm9rZS1saW5lam9pbj0ibWl0ZXIiPjwvcGF0aD48L2c+PC9nPjwvc3ZnPg==") 50% 50% no-repeat;background-size:100%}.wp-block-wpzoom-instagram-block .zoom-instagram-widget__item .hover-layout.small .hover-controls .dashicons,.zoom-instagram .zoom-instagram-widget__item .hover-layout.small .hover-controls .dashicons{font-size:15px;width:15px;height:15px}.wp-block-wpzoom-instagram-block .zoom-instagram-widget__item .hover-layout.small .zoom-instagram-icon-wrap .zoom-svg-instagram-stroke,.zoom-instagram .zoom-instagram-widget__item .hover-layout.small .zoom-instagram-icon-wrap .zoom-svg-instagram-stroke{width:18px;height:18px}.wp-block-wpzoom-instagram-block .zoom-instagram-widget__item .hover-layout.small .hover-controls .counter,.zoom-instagram .zoom-instagram-widget__item .hover-layout.small .hover-controls .counter{padding-left:1px;padding-right:4px;font-size:11px}.wp-block-wpzoom-instagram-block .zoom-instagram-widget-user-info,.zoom-instagram .zoom-instagram-widget-user-info{display:flex;padding:0 0px 20px}.wp-block-wpzoom-instagram-block .zoom-instagram-widget-user-info .zoom-instagram-widget-user-info-picture,.zoom-instagram .zoom-instagram-widget-user-info .zoom-instagram-widget-user-info-picture{flex:1}.wp-block-wpzoom-instagram-block .zoom-instagram-widget-user-info .zoom-instagram-widget-user-info-picture img,.zoom-instagram .zoom-instagram-widget-user-info .zoom-instagram-widget-user-info-picture img{border-radius:50%}.wp-block-wpzoom-instagram-block .zoom-instagram-widget-user-info .zoom-instagram-widget-user-info-meta,.zoom-instagram .zoom-instagram-widget-user-info .zoom-instagram-widget-user-info-meta{display:flex;flex:3;flex-direction:column;margin-left:15px;text-align:left;justify-content:center}.wp-block-wpzoom-instagram-block .zoom-instagram-widget-user-info .zoom-instagram-widget-user-info-about-data,.zoom-instagram .zoom-instagram-widget-user-info .zoom-instagram-widget-user-info-about-data{display:flex;justify-content:space-between;margin-bottom:10px}.wp-block-wpzoom-instagram-block .zoom-instagram-widget-user-info .zoom-instagram-widget-user-info-stats,.zoom-instagram .zoom-instagram-widget-user-info .zoom-instagram-widget-user-info-stats{font-size:14px;line-height:1.2;justify-content:space-between;display:flex;text-align:center}.wp-block-wpzoom-instagram-block .zoom-instagram-widget-user-info .zoom-instagram-widget-user-info-follow-button,.zoom-instagram .zoom-instagram-widget-user-info .zoom-instagram-widget-user-info-follow-button{padding:0px 24px;margin-top:10px;background:#3897f0;color:#fff !important;font-size:14px;font-weight:600;line-height:26px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;text-transform:none;border-radius:3px;outline:0;overflow:hidden;text-overflow:ellipsis;display:block;border:none;box-shadow:none;text-decoration:none !important}.wp-block-wpzoom-instagram-block .zoom-instagram-widget-user-info .zoom-instagram-widget-user-info-follow-button:hover,.zoom-instagram .zoom-instagram-widget-user-info .zoom-instagram-widget-user-info-follow-button:hover{color:#fff;opacity:.8;box-shadow:none;border:none;text-decoration:none}.wp-block-wpzoom-instagram-block .zoom-instagram-widget-user-info .zoom-instagram-widget-user-info-counts,.zoom-instagram .zoom-instagram-widget-user-info .zoom-instagram-widget-user-info-counts{font-weight:600}.wp-block-wpzoom-instagram-block .zoom-instagram-widget-user-info .zoom-instagram-widget-user-info-counts-subhead,.zoom-instagram .zoom-instagram-widget-user-info .zoom-instagram-widget-user-info-counts-subhead{opacity:.7;font-size:14px}.wp-block-wpzoom-instagram-block .zoom-instagram-widget-user-info-middle-cell,.zoom-instagram .zoom-instagram-widget-user-info-middle-cell{padding:0px 20px}.wp-block-wpzoom-instagram-block .zoom-instagram-widget-user-info .zoom-instagram-widget-user-info-fullname,.zoom-instagram .zoom-instagram-widget-user-info .zoom-instagram-widget-user-info-fullname{font-weight:600;font-size:16px}.wp-block-wpzoom-instagram-block .zoom-instagram-widget-user-info .zoom-instagram-widget-user-info-names-wrapper,.zoom-instagram .zoom-instagram-widget-user-info .zoom-instagram-widget-user-info-names-wrapper{padding-right:20px;word-break:break-word}.wp-block-wpzoom-instagram-block .zoom-instagram-widget-user-info .zoom-instagram-widget-user-info-username,.zoom-instagram .zoom-instagram-widget-user-info .zoom-instagram-widget-user-info-username{font-size:14px;font-weight:600;word-break:break-all;opacity:.7}.wp-block-wpzoom-instagram-block .zoom-instagram-widget-user-info-bio,.zoom-instagram .zoom-instagram-widget-user-info-bio{text-align:left;font-size:14px;margin:0 0 15px}.wp-block-wpzoom-instagram-block .zoom-instagram-widget__items .zoom-instagram-widget__item-inner-wrap,.zoom-instagram .zoom-instagram-widget__items .zoom-instagram-widget__item-inner-wrap{position:relative;height:100%;overflow:hidden}.wp-block-wpzoom-instagram-block .zoom-instagram-widget__items .zoom-instagram-widget__item .zoom-instagram-link,.zoom-instagram .zoom-instagram-widget__items .zoom-instagram-widget__item .zoom-instagram-link{display:block;background-size:cover !important;background-position:center center !important;background-repeat:no-repeat !important}.wp-block-wpzoom-instagram-block .zoom-instagram-widget__items .svg-icon,.zoom-instagram .zoom-instagram-widget__items .svg-icon{position:absolute;width:32px;padding:8px;height:32px;display:flex;top:0;right:0;z-index:1}.wpz-insta-lightbox{pointer-events:all;display:flex;flex-direction:row;background-color:#fff}.wpz-insta-lightbox-wrapper{display:flex;justify-content:center;pointer-events:none}.wpz-insta-lightbox-wrapper .wpz-insta-lightbox .details-wrapper .wpz-insta-header{display:flex;align-items:center;padding:16px;border-bottom:1px solid #efefef}.wpz-insta-lightbox-wrapper .wpz-insta-lightbox .details-wrapper .wpz-insta-header .wpz-insta-avatar img{width:42px;height:42px;border-radius:50%}.wpz-insta-lightbox-wrapper .wpz-insta-lightbox .details-wrapper .wpz-insta-header .wpz-insta-username a,.wpz-insta-lightbox-wrapper .wpz-insta-lightbox .details-wrapper .wpz-insta-header .wpz-insta-follow a{color:#262626;font-weight:600;text-decoration:none;font-size:14px}.wpz-insta-lightbox-wrapper .wpz-insta-lightbox .details-wrapper .wpz-insta-header .wpz-insta-username a:hover{text-decoration:underline}.wpz-insta-lightbox-wrapper .wpz-insta-lightbox .details-wrapper .wpz-insta-header .wpz-insta-follow a{color:#0095f6}.wpz-insta-lightbox-wrapper .wpz-insta-lightbox .details-wrapper .wpz-insta-header>div{margin-right:13px}.wpz-insta-lightbox-wrapper .wpz-insta-lightbox .details-wrapper .wpz-insta-header .wpz-insta-buttons{display:flex}.wpz-insta-lightbox-wrapper .wpz-insta-lightbox .details-wrapper .wpz-insta-header .wpz-insta-buttons>div{padding:5px}.wpz-insta-lightbox-wrapper .wpz-insta-lightbox .details-wrapper .wpz-insta-caption{color:#262626;line-height:1.5;font-size:14px;padding:16px;font-weight:normal;overflow-y:scroll;max-height:384px;border-bottom:1px solid #efefef}.wpzoom-lightbox.mfp-gallery{z-index:100000;pointer-events:none}.wpzoom-lightbox button.mfp-close{pointer-events:all;color:#fff;font-size:50px;font-weight:100;margin-top:25px;margin-right:15px}.wpzoom-lightbox .mfp-prevent-close{pointer-events:all}.wpzoom-lightbox button.mfp-close:hover{text-decoration:none}.wpz-insta-lightbox-wrapper .wpz-insta-lightbox .details-wrapper .wpz-insta-date{font-size:12px;padding:16px;color:#8e8e8e;flex:1}.wpz-insta-lightbox-wrapper .wpz-insta-lightbox .image-wrapper{flex-grow:1;text-align:center;height:600px;width:600px;background:#000}.wpz-insta-lightbox-wrapper .wpz-insta-lightbox .image-wrapper img{height:100%;max-width:100%;-o-object-fit:contain;object-fit:contain}.wpz-insta-lightbox-wrapper>.swiper-container{pointer-events:none;width:70%;height:100%}.wpz-insta-lightbox-wrapper>.swiper-container .swiper-container{width:100%;height:100%}.wpz-insta-lightbox-wrapper>.swiper-container .swiper-container .swiper-slide{height:100%}.wpz-insta-lightbox-wrapper video{height:100%;max-width:100%}.wpz-insta-lightbox-wrapper>.swiper-container .swiper-container .swiper-button-prev,.wpz-insta-lightbox-wrapper>.swiper-container .swiper-container .swiper-button-next{--swiper-navigation-size: 34px;color:#000;background:#fff;width:var(--swiper-navigation-size);border-radius:50%}.wpz-insta-lightbox-wrapper>.swiper-container .swiper-container .swiper-button-prev::after,.wpz-insta-lightbox-wrapper>.swiper-container .swiper-container .swiper-button-next::after{font-size:16px}.wpz-insta-lightbox-wrapper>.swiper-container>.swiper-wrapper{pointer-events:all}.wpz-insta-lightbox-wrapper>.swiper-container>.swiper-button-prev,.wpz-insta-lightbox-wrapper>.swiper-container>.swiper-button-next{position:fixed;pointer-events:all}.wpz-insta-lightbox-wrapper>.swiper-container .swiper-button-prev,.wpz-insta-lightbox-wrapper>.swiper-container .swiper-button-next{color:#fff;opacity:.75}.wpz-insta-lightbox-wrapper>.swiper-container .swiper-button-prev:hover,.wpz-insta-lightbox-wrapper>.swiper-container .swiper-button-next:hover{opacity:1}.wpz-insta-lightbox-wrapper>.swiper-container .swiper-button-prev.swiper-button-disabled,.wpz-insta-lightbox-wrapper>.swiper-container .swiper-button-next.swiper-button-disabled{opacity:.25 !important}.wpz-insta-lightbox-wrapper .wpz-insta-lightbox .details-wrapper{display:flex;flex-direction:column;flex-grow:1}.wpz-insta-lightbox-wrapper .wpz-insta-lightbox .details-wrapper .view-post{padding:16px;text-decoration:none;font-size:12px;color:#262626;font-weight:400;line-height:20px;display:flex;border-top:1px solid #efefef}.wpz-insta-lightbox-wrapper .wpz-insta-lightbox .details-wrapper .view-post a{text-decoration:none;font-size:12px;color:#262626;font-weight:400;line-height:20px;text-align:center;display:inline-block}.wpz-insta-lightbox-wrapper .wpz-insta-lightbox .details-wrapper .view-post a span{margin-right:10px}.wpz-insta-lightbox-wrapper .wpz-insta-lightbox .details-wrapper .view-post .delimiter{padding:0px 10px}@-webkit-keyframes show{100%{transform:none;opacity:1}}@keyframes show{100%{transform:none;opacity:1}}@media screen and (max-width: 1200px){.wpz-insta-lightbox-wrapper .wpz-insta-lightbox{flex-wrap:wrap}}@media screen and (max-width: 860px){.wpz-insta-lightbox-wrapper .wpz-insta-lightbox .details-wrapper .wpz-insta-caption{font-size:12px;max-height:134px}}.wp-admin .wp-block-wpzoom-instagram-block .zoom-instagram-widget__overlay,.wp-admin .zoom-instagram .zoom-instagram-widget__overlay{cursor:pointer}.wp-admin .wp-block-wpzoom-instagram-block .zoom-instagram-widget__items .zoom-instagram-widget__item .zoom-instagram-link,.wp-admin .zoom-instagram .zoom-instagram-widget__items .zoom-instagram-widget__item .zoom-instagram-link{pointer-events:none}@media screen and (max-width: 768px){.wpz-insta-lightbox{flex-direction:column}.wpz-insta-lightbox-wrapper .wpz-insta-lightbox .image-wrapper{border-radius:4px 4px 0 0;max-width:100%}.wpz-insta-lightbox-wrapper .wpz-insta-lightbox .details-wrapper{width:100%}}
dist/styles/frontend/index-rtl.css ADDED
@@ -0,0 +1 @@
 
1
+ .zoom-instagram-widget__follow-me{margin-top:15px;text-align:center}.zoom-instagram{font-size:14px;overflow:hidden;display:block}.zoom-instagram form[disabled]{pointer-events:none}.zoom-instagram form[disabled]:not(.loading){opacity:.5}.zoom-instagram .zoom-instagram-widget__header{display:flex;gap:20px;margin:0 0 25px}.zoom-instagram .zoom-instagram-widget__header .zoom-instagram-widget__header-column-left img{height:70px;width:70px;border-radius:50%}.zoom-instagram .zoom-instagram-widget__header .zoom-instagram-widget__header-column-right{display:flex;flex-direction:column;justify-content:center}.zoom-instagram .zoom-instagram-widget__header .zoom-instagram-widget__header-name{font-size:1em;font-weight:600;line-height:1.5;padding:0;margin:0 0 5px;letter-spacing:0}.zoom-instagram .zoom-instagram-widget__header .zoom-instagram-widget__header-user{font-weight:600;line-height:normal;padding:0;margin:0;opacity:.8}.zoom-instagram .zoom-instagram-widget__header .zoom-instagram-widget__header-user a{text-decoration:none}.zoom-instagram .zoom-instagram-widget__header .zoom-instagram-widget__header-bio{font-size:13px;font-weight:normal;line-height:1.6;padding:0;margin:6px 0 0}.zoom-instagram .zoom-instagram-widget__footer{display:flex;justify-content:center;align-items:center;flex-direction:row;flex-wrap:wrap;gap:15px;margin:25px 0 0}.zoom-instagram .zoom-instagram-widget__footer>*{display:block}.zoom-instagram .zoom-instagram-widget__items-wrapper{overflow:hidden}.zoom-instagram .zoom-instagram-widget__items{display:grid;grid-template-columns:repeat(3, 1fr);gap:10px;list-style:none !important;padding:0;margin:0}.zoom-instagram .zoom-instagram-widget__items.layout-grid .zoom-instagram-widget__item img{width:100%;aspect-ratio:1/1}.zoom-instagram .zoom-instagram-widget__items.layout-fullwidth{display:flex;width:5000px}.zoom-instagram .zoom-instagram-widget__items.layout-fullwidth .zoom-instagram-widget__item img{aspect-ratio:1}.layout-legacy.zoom-instagram-widget__items{list-style:none !important}.layout-legacy.zoom-instagram-widget__items .zoom-instagram-widget__item{float:right;position:relative;margin-top:0 !important;padding:0}.layout-legacy.zoom-instagram-widget__items .zoom-instagram-widget__overlay{position:relative}.zoom-instagram-widget__item{position:relative;transition:all .1s ease-in-out}.zoom-instagram-widget__item.new{opacity:0;transform:scale(0);transform-origin:center;-webkit-animation:show 500ms linear forwards;animation:show 500ms linear forwards}.zoom-instagram-widget__item .zoom-instagram-widget__item-inner-wrap{position:relative;height:100%;overflow:hidden}.zoom-instagram-widget__item img{-o-object-fit:cover;object-fit:cover;-o-object-position:center;object-position:center;height:100%}.widget_block .zoom-instagram-widget__items ul li.zoom-instagram-widget__item,.widget.zoom-instagram-widget ul li.zoom-instagram-widget__item,.widget.zoom-new-instagram-widget ul li.zoom-instagram-widget__item{padding:0}.widget_block .zoom-instagram-widget__items-wrapper,.widget.zoom-new-instagram-widget .zoom-instagram-widget__items-wrapper{overflow:hidden}.widget_block .zoom-instagram-widget__items,.widget.zoom-new-instagram-widget .zoom-instagram-widget__items{display:grid;grid-template-columns:repeat(3, 1fr);gap:10px;padding:0;margin:0}.widget_block .zoom-instagram-widget__items::before,.widget_block .zoom-instagram-widget__items::after,.widget.zoom-new-instagram-widget .zoom-instagram-widget__items::before,.widget.zoom-new-instagram-widget .zoom-instagram-widget__items::after{display:none}.widget_block .zoom-instagram-widget__items.layout-grid .zoom-instagram-widget__item img,.widget.zoom-new-instagram-widget .zoom-instagram-widget__items.layout-grid .zoom-instagram-widget__item img{width:100%;aspect-ratio:1/1}.widget_block .zoom-instagram-widget__items.layout-fullwidth,.widget.zoom-new-instagram-widget .zoom-instagram-widget__items.layout-fullwidth{display:flex;width:5000px}.widget_block .zoom-instagram-widget__items.layout-fullwidth .zoom-instagram-widget__item img,.widget.zoom-new-instagram-widget .zoom-instagram-widget__items.layout-fullwidth .zoom-instagram-widget__item img{aspect-ratio:1}.widget_block .zoom-instagram-widget__items .zoom-instagram-widget__item .zoom-instagram-widget__item-inner-wrap,.widget.zoom-new-instagram-widget .zoom-instagram-widget__items .zoom-instagram-widget__item .zoom-instagram-widget__item-inner-wrap{position:relative;height:100%;overflow:hidden}.widget_block .zoom-instagram-widget__items .zoom-instagram-widget__item img,.widget.zoom-new-instagram-widget .zoom-instagram-widget__items .zoom-instagram-widget__item img{-o-object-fit:cover;object-fit:cover;-o-object-position:center;object-position:center;height:100%}.widget_block .zoom-instagram-widget__items .zoom-instagram-widget__item .zoom-instagram-link,.widget.zoom-new-instagram-widget .zoom-instagram-widget__items .zoom-instagram-widget__item .zoom-instagram-link{padding-bottom:100%}.ig-b-{display:inline-block}a.ig-b-v-24{border-color:#3897f0;color:#3897f0 !important;border-radius:3px;border-style:solid;border-width:1px;font-weight:600 !important;outline:none;overflow:hidden;white-space:nowrap;-webkit-appearance:none;font-family:sans-serif;padding:5px 15px;font-size:14px;transition:all .15s ease-in-out;-moz-transition:all .15s ease-in-out;-webkit-transition:all .15s ease-in-out;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none !important}a.ig-b-v-24:hover{background:#3897f0;border-color:#3897f0;color:#fff !important}.zoom-instagram-widget__item .hover-controls{opacity:0;z-index:9;margin-top:-15px;position:absolute;top:40%;width:100%;text-align:center;transition:opacity .25s ease-in-out;-moz-transition:opacity .25s ease-in-out;-webkit-transition:opacity .25s ease-in-out}.zoom-instagram-widget__items[data-lightbox="1"] .zoom-instagram-widget__item .zoom-instagram-icon-wrap{pointer-events:none}.zoom-instagram-widget__item .hover-controls~.zoom-instagram-icon-wrap{bottom:10%;pointer-events:all}.zoom-instagram-widget__item .hover-layout.small .hover-controls~.zoom-instagram-icon-wrap{bottom:6%}.zoom-instagram-widget__item .hover-layout.small .zoom-instagram-icon-wrap{bottom:calc(50% - 15px)}.zoom-instagram-widget__item .zoom-instagram-icon-wrap{bottom:calc(50% - 15px);height:30px;width:100%;position:absolute;z-index:9;text-align:center}.zoom-instagram-widget__item:hover .hover-controls{opacity:1}.zoom-instagram-widget__item .zoom-instagram-icon-wrap{opacity:0;transition:opacity .25s ease-in-out;-moz-transition:opacity .25s ease-in-out;-webkit-transition:opacity .25s ease-in-out}.zoom-instagram-widget__item:hover .zoom-instagram-icon-wrap{opacity:1}.zoom-instagram-widget__item .hover-controls .dashicons{font-size:20px;width:20px;height:20px;color:#fff;vertical-align:middle}.zoom-instagram-widget__item .hover-controls .counter{padding-right:1px;padding-left:12px;font-weight:500;color:#fff;font-size:14px;opacity:.8;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif}.zoom-instagram-widget__overlay{position:absolute;top:0;right:0;left:0;bottom:0}.zoom-instagram-widget__overlay:after{position:absolute;content:"";top:0;right:0;pointer-events:none;width:100%;height:100%;opacity:0;transition:opacity .25s ease-in-out;-moz-transition:opacity .25s ease-in-out;-webkit-transition:opacity .25s ease-in-out}.zoom-instagram-widget__overlay:hover:after{opacity:.7;background-color:#000}.zoom-instagram-widget__black:after{background-color:#000}.zoom-svg-instagram-simple{display:inline-block;width:30px;height:30px;background:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHg9IjBweCIgeT0iMHB4IgogICAgIHdpZHRoPSI1MCIgaGVpZ2h0PSI1MCIKICAgICB2aWV3Qm94PSIwIDAgNTAgNTAiCiAgICAgc3R5bGU9ImZpbGw6I2ZmZmZmZjsiPiAgICA8cGF0aCBzdHlsZT0ibGluZS1oZWlnaHQ6bm9ybWFsO3RleHQtaW5kZW50OjA7dGV4dC1hbGlnbjpzdGFydDt0ZXh0LWRlY29yYXRpb24tbGluZTpub25lO3RleHQtZGVjb3JhdGlvbi1zdHlsZTpzb2xpZDt0ZXh0LWRlY29yYXRpb24tY29sb3I6IzAwMDt0ZXh0LXRyYW5zZm9ybTpub25lO2Jsb2NrLXByb2dyZXNzaW9uOnRiO2lzb2xhdGlvbjphdXRvO21peC1ibGVuZC1tb2RlOm5vcm1hbCIgZD0iTSAxNiAzIEMgOC44MzI0ODM5IDMgMyA4LjgzMjQ4MzkgMyAxNiBMIDMgMzQgQyAzIDQxLjE2NzUxNiA4LjgzMjQ4MzkgNDcgMTYgNDcgTCAzNCA0NyBDIDQxLjE2NzUxNiA0NyA0NyA0MS4xNjc1MTYgNDcgMzQgTCA0NyAxNiBDIDQ3IDguODMyNDgzOSA0MS4xNjc1MTYgMyAzNCAzIEwgMTYgMyB6IE0gMTYgNSBMIDM0IDUgQyA0MC4wODY0ODQgNSA0NSA5LjkxMzUxNjEgNDUgMTYgTCA0NSAzNCBDIDQ1IDQwLjA4NjQ4NCA0MC4wODY0ODQgNDUgMzQgNDUgTCAxNiA0NSBDIDkuOTEzNTE2MSA0NSA1IDQwLjA4NjQ4NCA1IDM0IEwgNSAxNiBDIDUgOS45MTM1MTYxIDkuOTEzNTE2MSA1IDE2IDUgeiBNIDM3IDExIEEgMiAyIDAgMCAwIDM1IDEzIEEgMiAyIDAgMCAwIDM3IDE1IEEgMiAyIDAgMCAwIDM5IDEzIEEgMiAyIDAgMCAwIDM3IDExIHogTSAyNSAxNCBDIDE4LjkzNjcxMiAxNCAxNCAxOC45MzY3MTIgMTQgMjUgQyAxNCAzMS4wNjMyODggMTguOTM2NzEyIDM2IDI1IDM2IEMgMzEuMDYzMjg4IDM2IDM2IDMxLjA2MzI4OCAzNiAyNSBDIDM2IDE4LjkzNjcxMiAzMS4wNjMyODggMTQgMjUgMTQgeiBNIDI1IDE2IEMgMjkuOTgyNDA3IDE2IDM0IDIwLjAxNzU5MyAzNCAyNSBDIDM0IDI5Ljk4MjQwNyAyOS45ODI0MDcgMzQgMjUgMzQgQyAyMC4wMTc1OTMgMzQgMTYgMjkuOTgyNDA3IDE2IDI1IEMgMTYgMjAuMDE3NTkzIDIwLjAxNzU5MyAxNiAyNSAxNiB6IiBmb250LXdlaWdodD0iNDAwIiBmb250LWZhbWlseT0ic2Fucy1zZXJpZiIgd2hpdGUtc3BhY2U9Im5vcm1hbCIgb3ZlcmZsb3c9InZpc2libGUiPjwvcGF0aD48L3N2Zz4=") 50% 50% no-repeat;background-size:100%}.zoom-svg-instagram-stroke{display:inline-block;width:30px;height:30px;background:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHg9IjBweCIgeT0iMHB4IgogICAgIHdpZHRoPSI1MCIgaGVpZ2h0PSI1MCIKICAgICB2aWV3Qm94PSIwIDAgMjUyIDI1MiIKICAgICBzdHlsZT0iZmlsbDojMDAwMDAwOyI+PGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMi4zOTQsMi4zOTQpIHNjYWxlKDAuOTgxLDAuOTgxKSI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJub256ZXJvIiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9ImJ1dHQiIHN0cm9rZS1saW5lam9pbj0ibm9uZSIgc3Ryb2tlLW1pdGVybGltaXQ9IjEwIiBzdHJva2UtZGFzaGFycmF5PSIiIHN0cm9rZS1kYXNob2Zmc2V0PSIwIiBmb250LWZhbWlseT0ibm9uZSIgZm9udC13ZWlnaHQ9Im5vbmUiIGZvbnQtc2l6ZT0ibm9uZSIgdGV4dC1hbmNob3I9Im5vbmUiIHN0eWxlPSJtaXgtYmxlbmQtbW9kZTogbm9ybWFsIj48ZyBpZD0ib3JpZ2luYWwtaWNvbiAxIiBmaWxsPSIjZmZmZmZmIiBzdHJva2U9IiNmZmZmZmYiIHN0cm9rZS13aWR0aD0iNSIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBhdGggZD0iTTE3MS4zNiwxNS4xMmMzNi4xMjQyOCwwIDY1LjUyLDI5LjM5NTcyIDY1LjUyLDY1LjUydjkwLjcyYzAsMzYuMTI0MjggLTI5LjM5NTcyLDY1LjUyIC02NS41Miw2NS41MmgtOTAuNzJjLTM2LjEyNDI4LDAgLTY1LjUyLC0yOS4zOTU3MiAtNjUuNTIsLTY1LjUydi05MC43MmMwLC0zNi4xMjQyOCAyOS4zOTU3MiwtNjUuNTIgNjUuNTIsLTY1LjUyek0yNS4yLDgwLjY0djkwLjcyYzAsMzAuNjc1ODggMjQuNzY0MTIsNTUuNDQgNTUuNDQsNTUuNDRoOTAuNzJjMzAuNjc1ODgsMCA1NS40NCwtMjQuNzY0MTIgNTUuNDQsLTU1LjQ0di05MC43MmMwLC0zMC42NzU4OCAtMjQuNzY0MTIsLTU1LjQ0IC01NS40NCwtNTUuNDRoLTkwLjcyYy0zMC42NzU4OCwwIC01NS40NCwyNC43NjQxMiAtNTUuNDQsNTUuNDR6TTE5Ni41Niw2NS41MmMwLDUuNTY3MDMgLTQuNTEyOTcsMTAuMDggLTEwLjA4LDEwLjA4Yy01LjU2NzAzLDAgLTEwLjA4LC00LjUxMjk3IC0xMC4wOCwtMTAuMDhjMCwtNS41NjcwMyA0LjUxMjk3LC0xMC4wOCAxMC4wOCwtMTAuMDhjNS41NjcwMywwIDEwLjA4LDQuNTEyOTcgMTAuMDgsMTAuMDh6TTE4MS40NCwxMjZjMCwzMC41NTg5NyAtMjQuODgxMDMsNTUuNDQgLTU1LjQ0LDU1LjQ0Yy0zMC41NTg5NywwIC01NS40NCwtMjQuODgxMDMgLTU1LjQ0LC01NS40NGMwLC0zMC41NTg5NyAyNC44ODEwMywtNTUuNDQgNTUuNDQsLTU1LjQ0YzMwLjU1ODk3LDAgNTUuNDQsMjQuODgxMDMgNTUuNDQsNTUuNDR6TTgwLjY0LDEyNmMwLDI1LjExMTMzIDIwLjI0ODY3LDQ1LjM2IDQ1LjM2LDQ1LjM2YzI1LjExMTMzLDAgNDUuMzYsLTIwLjI0ODY3IDQ1LjM2LC00NS4zNmMwLC0yNS4xMTEzMyAtMjAuMjQ4NjcsLTQ1LjM2IC00NS4zNiwtNDUuMzZjLTI1LjExMTMzLDAgLTQ1LjM2LDIwLjI0ODY3IC00NS4zNiw0NS4zNnoiPjwvcGF0aD48L2c+PHBhdGggZD0iTTAsMjUydi0yNTJoMjUydjI1MnoiIGZpbGw9Im5vbmUiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBzdHJva2UtbGluZWpvaW49Im1pdGVyIj48L3BhdGg+PGcgaWQ9Im9yaWdpbmFsLWljb24iIGZpbGw9IiNmZmZmZmYiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBzdHJva2UtbGluZWpvaW49Im1pdGVyIj48cGF0aCBkPSJNODAuNjQsMTUuMTJjLTM2LjEyNDI4LDAgLTY1LjUyLDI5LjM5NTcyIC02NS41Miw2NS41MnY5MC43MmMwLDM2LjEyNDI4IDI5LjM5NTcyLDY1LjUyIDY1LjUyLDY1LjUyaDkwLjcyYzM2LjEyNDI4LDAgNjUuNTIsLTI5LjM5NTcyIDY1LjUyLC02NS41MnYtOTAuNzJjMCwtMzYuMTI0MjggLTI5LjM5NTcyLC02NS41MiAtNjUuNTIsLTY1LjUyek04MC42NCwyNS4yaDkwLjcyYzMwLjY3NTg4LDAgNTUuNDQsMjQuNzY0MTIgNTUuNDQsNTUuNDR2OTAuNzJjMCwzMC42NzU4OCAtMjQuNzY0MTIsNTUuNDQgLTU1LjQ0LDU1LjQ0aC05MC43MmMtMzAuNjc1ODgsMCAtNTUuNDQsLTI0Ljc2NDEyIC01NS40NCwtNTUuNDR2LTkwLjcyYzAsLTMwLjY3NTg4IDI0Ljc2NDEyLC01NS40NCA1NS40NCwtNTUuNDR6TTE4Ni40OCw1NS40NGMtNS41NjcwMywwIC0xMC4wOCw0LjUxMjk3IC0xMC4wOCwxMC4wOGMwLDUuNTY3MDMgNC41MTI5NywxMC4wOCAxMC4wOCwxMC4wOGM1LjU2NzAzLDAgMTAuMDgsLTQuNTEyOTcgMTAuMDgsLTEwLjA4YzAsLTUuNTY3MDMgLTQuNTEyOTcsLTEwLjA4IC0xMC4wOCwtMTAuMDh6TTEyNiw3MC41NmMtMzAuNTU4OTcsMCAtNTUuNDQsMjQuODgxMDMgLTU1LjQ0LDU1LjQ0YzAsMzAuNTU4OTcgMjQuODgxMDMsNTUuNDQgNTUuNDQsNTUuNDRjMzAuNTU4OTcsMCA1NS40NCwtMjQuODgxMDMgNTUuNDQsLTU1LjQ0YzAsLTMwLjU1ODk3IC0yNC44ODEwMywtNTUuNDQgLTU1LjQ0LC01NS40NHpNMTI2LDgwLjY0YzI1LjExMTMzLDAgNDUuMzYsMjAuMjQ4NjcgNDUuMzYsNDUuMzZjMCwyNS4xMTEzMyAtMjAuMjQ4NjcsNDUuMzYgLTQ1LjM2LDQ1LjM2Yy0yNS4xMTEzMywwIC00NS4zNiwtMjAuMjQ4NjcgLTQ1LjM2LC00NS4zNmMwLC0yNS4xMTEzMyAyMC4yNDg2NywtNDUuMzYgNDUuMzYsLTQ1LjM2eiI+PC9wYXRoPjwvZz48cGF0aCBkPSJNMTI2LDI1MmMtNjkuNTg3ODgsMCAtMTI2LC01Ni40MTIxMiAtMTI2LC0xMjZ2MGMwLC02OS41ODc4OCA1Ni40MTIxMiwtMTI2IDEyNiwtMTI2djBjNjkuNTg3ODgsMCAxMjYsNTYuNDEyMTIgMTI2LDEyNnYwYzAsNjkuNTg3ODggLTU2LjQxMjEyLDEyNiAtMTI2LDEyNnoiIGZpbGw9Im5vbmUiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBzdHJva2UtbGluZWpvaW49Im1pdGVyIj48L3BhdGg+PHBhdGggZD0iTTEyNiwyNDYuOTZjLTY2LjgwNDM2LDAgLTEyMC45NiwtNTQuMTU1NjQgLTEyMC45NiwtMTIwLjk2djBjMCwtNjYuODA0MzYgNTQuMTU1NjQsLTEyMC45NiAxMjAuOTYsLTEyMC45NmgwYzY2LjgwNDM2LDAgMTIwLjk2LDU0LjE1NTY0IDEyMC45NiwxMjAuOTZ2MGMwLDY2LjgwNDM2IC01NC4xNTU2NCwxMjAuOTYgLTEyMC45NiwxMjAuOTZ6IiBmaWxsPSJub25lIiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgc3Ryb2tlLWxpbmVqb2luPSJtaXRlciI+PC9wYXRoPjxwYXRoIGQ9IiIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjEiIHN0cm9rZS1saW5lam9pbj0ibWl0ZXIiPjwvcGF0aD48cGF0aCBkPSIiIGZpbGw9Im5vbmUiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBzdHJva2UtbGluZWpvaW49Im1pdGVyIj48L3BhdGg+PHBhdGggZD0iIiBmaWxsPSJub25lIiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgc3Ryb2tlLWxpbmVqb2luPSJtaXRlciI+PC9wYXRoPjxwYXRoIGQ9IiIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjEiIHN0cm9rZS1saW5lam9pbj0ibWl0ZXIiPjwvcGF0aD48L2c+PC9nPjwvc3ZnPg==") 50% 50% no-repeat;background-size:100%}.zoom-instagram-widget__item .hover-layout.small .hover-controls .dashicons{font-size:15px;width:15px;height:15px}.zoom-instagram-widget__item .hover-layout.small .zoom-instagram-icon-wrap .zoom-svg-instagram-stroke{width:18px;height:18px}.zoom-instagram-widget__item .hover-layout.small .hover-controls .counter{padding-right:1px;padding-left:4px;font-size:11px}.zoom-instagram-widget-user-info{display:flex;padding:0 0px 20px}.zoom-instagram-widget-user-info .zoom-instagram-widget-user-info-picture{flex:1}.zoom-instagram-widget-user-info .zoom-instagram-widget-user-info-picture img{border-radius:50%}.zoom-instagram-widget-user-info .zoom-instagram-widget-user-info-meta{display:flex;flex:3;flex-direction:column;margin-right:15px;text-align:right;justify-content:center}.zoom-instagram-widget-user-info .zoom-instagram-widget-user-info-about-data{display:flex;justify-content:space-between;margin-bottom:10px}.zoom-instagram-widget-user-info .zoom-instagram-widget-user-info-stats{font-size:14px;line-height:1.2;justify-content:space-between;display:flex;text-align:center}.zoom-instagram-widget-user-info .zoom-instagram-widget-user-info-follow-button{padding:0px 24px;margin-top:10px;background:#3897f0;color:#fff !important;font-size:14px;font-weight:600;line-height:26px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;text-transform:none;border-radius:3px;outline:0;overflow:hidden;text-overflow:ellipsis;display:block;border:none;box-shadow:none;text-decoration:none !important}.zoom-instagram-widget-user-info .zoom-instagram-widget-user-info-follow-button:hover{color:#fff;opacity:.8;box-shadow:none;border:none;text-decoration:none}.zoom-instagram-widget-user-info .zoom-instagram-widget-user-info-counts{font-weight:600}.zoom-instagram-widget-user-info .zoom-instagram-widget-user-info-counts-subhead{opacity:.7;font-size:14px}.zoom-instagram-widget-user-info-middle-cell{padding:0px 20px}.zoom-instagram-widget-user-info .zoom-instagram-widget-user-info-fullname{font-weight:600;font-size:16px}.zoom-instagram-widget-user-info .zoom-instagram-widget-user-info-names-wrapper{padding-left:20px;word-break:break-word}.zoom-instagram-widget-user-info .zoom-instagram-widget-user-info-username{font-size:14px;font-weight:600;word-break:break-all;opacity:.7}.zoom-instagram-widget-user-info-bio{text-align:right;font-size:14px;margin:0 0 15px}.zoom-instagram-widget__items .zoom-instagram-widget__item .zoom-instagram-link{display:block;background-size:cover !important;background-position:center center !important;background-repeat:no-repeat !important;padding-bottom:100%}.zoom-instagram-widget__items .zoom-instagram-widget__item .svg-icon{position:absolute;width:32px;padding:8px;height:32px;display:flex;top:0;left:0;z-index:1;transition:opacity .25s ease-in-out;-moz-transition:opacity .25s ease-in-out;-webkit-transition:opacity .25s ease-in-out}.zoom-instagram-widget__items .zoom-instagram-widget__item.media-icons-hover .svg-icon{opacity:0}.zoom-instagram-widget__items .zoom-instagram-widget__item.media-icons-hover:hover .svg-icon{opacity:1}.wpzoom-lightbox .mfp-inline-holder .mfp-content{max-width:none}.wpz-insta-lightbox{pointer-events:all;display:flex;flex-direction:row;background-color:#fff;border-radius:4px;height:100%}.wpz-insta-lightbox-wrapper{display:flex;justify-content:center;pointer-events:none}.wpz-insta-lightbox-wrapper .wpz-insta-lightbox .details-wrapper{width:30%}.wpz-insta-lightbox-wrapper .wpz-insta-lightbox .details-wrapper .wpz-insta-header{display:flex;align-items:center;padding:16px;border-bottom:1px solid #efefef;flex-wrap:wrap}.wpz-insta-lightbox-wrapper .wpz-insta-lightbox .details-wrapper .wpz-insta-header .wpz-insta-avatar img{width:42px;height:42px;border-radius:50%}.wpz-insta-lightbox-wrapper .wpz-insta-lightbox .details-wrapper .wpz-insta-header .wpz-insta-username a,.wpz-insta-lightbox-wrapper .wpz-insta-lightbox .details-wrapper .wpz-insta-header .wpz-insta-follow a{color:#262626;font-weight:600;text-decoration:none;font-size:14px}.wpz-insta-lightbox-wrapper .wpz-insta-lightbox .details-wrapper .wpz-insta-header .wpz-insta-username a:hover{text-decoration:underline}.wpz-insta-lightbox-wrapper .wpz-insta-lightbox .details-wrapper .wpz-insta-header .wpz-insta-follow a{color:#0095f6}.wpz-insta-lightbox-wrapper .wpz-insta-lightbox .details-wrapper .wpz-insta-header>div{margin-left:13px;min-width:42px}.wpz-insta-lightbox-wrapper .wpz-insta-lightbox .details-wrapper .wpz-insta-header .wpz-insta-buttons{display:flex}.wpz-insta-lightbox-wrapper .wpz-insta-lightbox .details-wrapper .wpz-insta-header .wpz-insta-buttons>div{padding:5px}.wpz-insta-lightbox-wrapper .wpz-insta-lightbox .details-wrapper .wpz-insta-caption{color:#262626;line-height:1.5;font-size:14px;padding:16px;font-weight:normal;overflow-y:scroll;max-height:384px;border-bottom:1px solid #efefef}.wpzoom-lightbox.mfp-gallery{z-index:100000;pointer-events:none}.wpzoom-lightbox button.mfp-close{pointer-events:all;color:#fff;font-size:50px;font-weight:100;margin-top:25px;margin-left:15px}.wpzoom-lightbox .mfp-prevent-close{pointer-events:all}.wpzoom-lightbox button.mfp-close:hover{text-decoration:none}.wpz-insta-lightbox-wrapper .wpz-insta-lightbox .details-wrapper .wpz-insta-date{font-size:12px;padding:16px;color:#8e8e8e;flex:1}.wpz-insta-lightbox-wrapper .wpz-insta-lightbox .image-wrapper img{height:100%;max-width:100%;-o-object-fit:contain;object-fit:contain;min-height:700px;min-width:700px}.wpz-insta-lightbox-wrapper .wpz-insta-lightbox .image-wrapper{flex-grow:1;text-align:center;height:auto;width:100%;max-width:70%;max-height:100%;background:#000;border-radius:0 4px 4px 0}.wpz-insta-lightbox-wrapper>.swiper-container{pointer-events:none;width:1000px;height:80vh}.wpz-insta-lightbox-wrapper>.swiper-container .swiper-container{width:100%;height:100%}.wpz-insta-lightbox-wrapper>.swiper-container .swiper-container .swiper-slide{max-height:100%}.wpz-insta-lightbox-wrapper>.swiper-container-autoheight,.swiper-container-autoheight .swiper-slide{height:100%;max-height:80vh}.wpz-insta-lightbox-wrapper video{height:100%;max-width:100%}.wpz-insta-lightbox-wrapper>.swiper-container .swiper-container .swiper-button-prev,.wpz-insta-lightbox-wrapper>.swiper-container .swiper-container .swiper-button-next{--swiper-navigation-size: 34px;color:#000;background:#fff;width:var(--swiper-navigation-size);border-radius:50%}.wpz-insta-lightbox-wrapper>.swiper-container .swiper-container .swiper-button-prev::after,.wpz-insta-lightbox-wrapper>.swiper-container .swiper-container .swiper-button-next::after{font-size:16px}.wpz-insta-lightbox-wrapper>.swiper-container>.swiper-wrapper{pointer-events:all}.wpz-insta-lightbox-wrapper>.swiper-container>.swiper-button-prev,.wpz-insta-lightbox-wrapper>.swiper-container>.swiper-button-next{position:fixed;pointer-events:all}.wpz-insta-lightbox-wrapper>.swiper-container .swiper-button-prev,.wpz-insta-lightbox-wrapper>.swiper-container .swiper-button-next{color:#fff;opacity:.75}.wpz-insta-lightbox-wrapper>.swiper-container .swiper-button-prev:hover,.wpz-insta-lightbox-wrapper>.swiper-container .swiper-button-next:hover{opacity:1}.wpz-insta-lightbox-wrapper>.swiper-container .swiper-button-prev.swiper-button-disabled,.wpz-insta-lightbox-wrapper>.swiper-container .swiper-button-next.swiper-button-disabled{opacity:.25 !important}.wpz-insta-lightbox-wrapper .wpz-insta-lightbox .details-wrapper{display:flex;flex-direction:column;flex-grow:1}.wpz-insta-lightbox-wrapper .wpz-insta-lightbox .details-wrapper .view-post{padding:16px;text-decoration:none;font-size:12px;color:#262626;font-weight:400;line-height:20px;display:flex;border-top:1px solid #efefef;flex-wrap:wrap;justify-content:flex-start}.wpz-insta-lightbox-wrapper .wpz-insta-lightbox .details-wrapper .view-post a{text-decoration:none;font-size:12px;color:#262626;font-weight:400;line-height:20px;text-align:center;display:inline-block}.wpz-insta-lightbox-wrapper .wpz-insta-lightbox .details-wrapper .view-post a span{margin-left:10px}.wpz-insta-lightbox-wrapper .wpz-insta-lightbox .details-wrapper .view-post .delimiter{padding:0px 10px}@-webkit-keyframes show{100%{transform:none;opacity:1}}@keyframes show{100%{transform:none;opacity:1}}@media screen and (max-width: 1200px){.wpz-insta-lightbox-wrapper .wpz-insta-lightbox{flex-wrap:wrap}.wpz-insta-lightbox-wrapper>.swiper-container{width:86%}.wpz-insta-lightbox-wrapper .wpz-insta-lightbox .image-wrapper img{min-height:500px;min-width:500px}}@media screen and (max-width: 860px){.wpz-insta-lightbox-wrapper .wpz-insta-lightbox .details-wrapper .wpz-insta-caption{font-size:12px}}@media screen and (max-width: 768px){.wpz-insta-lightbox{flex-direction:column}.wpz-insta-lightbox-wrapper .wpz-insta-lightbox .image-wrapper img{min-height:400px;min-width:400px}.wpz-insta-lightbox-wrapper .wpz-insta-lightbox .image-wrapper{border-radius:4px 4px 0 0;max-width:100%;height:65%}.wpz-insta-lightbox-wrapper .wpz-insta-lightbox .details-wrapper .wpz-insta-caption{max-height:134px}.wpz-insta-lightbox-wrapper .wpz-insta-lightbox .details-wrapper{width:100%;height:35%}}@media screen and (max-width: 600px){.wpz-insta-lightbox-wrapper .wpz-insta-lightbox .image-wrapper img{min-height:280px;min-width:280px}.wpz-insta-lightbox-wrapper>.swiper-container{width:76%}.wpz-insta-lightbox-wrapper .wpz-insta-lightbox .image-wrapper{height:55%}.wpz-insta-lightbox-wrapper .wpz-insta-lightbox .details-wrapper{height:45%}}
dist/styles/frontend/index.asset.php ADDED
@@ -0,0 +1 @@
 
1
+ <?php return array('dependencies' => array('wp-polyfill'), 'version' => 'a4d0e6ecf3b45e10a835e532b91e2880');
dist/styles/frontend/index.css ADDED
@@ -0,0 +1 @@
 
1
+ .zoom-instagram-widget__follow-me{margin-top:15px;text-align:center}.zoom-instagram{font-size:14px;overflow:hidden;display:block}.zoom-instagram form[disabled]{pointer-events:none}.zoom-instagram form[disabled]:not(.loading){opacity:.5}.zoom-instagram .zoom-instagram-widget__header{display:flex;gap:20px;margin:0 0 25px}.zoom-instagram .zoom-instagram-widget__header .zoom-instagram-widget__header-column-left img{height:70px;width:70px;border-radius:50%}.zoom-instagram .zoom-instagram-widget__header .zoom-instagram-widget__header-column-right{display:flex;flex-direction:column;justify-content:center}.zoom-instagram .zoom-instagram-widget__header .zoom-instagram-widget__header-name{font-size:1em;font-weight:600;line-height:1.5;padding:0;margin:0 0 5px;letter-spacing:0}.zoom-instagram .zoom-instagram-widget__header .zoom-instagram-widget__header-user{font-weight:600;line-height:normal;padding:0;margin:0;opacity:.8}.zoom-instagram .zoom-instagram-widget__header .zoom-instagram-widget__header-user a{text-decoration:none}.zoom-instagram .zoom-instagram-widget__header .zoom-instagram-widget__header-bio{font-size:13px;font-weight:normal;line-height:1.6;padding:0;margin:6px 0 0}.zoom-instagram .zoom-instagram-widget__footer{display:flex;justify-content:center;align-items:center;flex-direction:row;flex-wrap:wrap;gap:15px;margin:25px 0 0}.zoom-instagram .zoom-instagram-widget__footer>*{display:block}.zoom-instagram .zoom-instagram-widget__items-wrapper{overflow:hidden}.zoom-instagram .zoom-instagram-widget__items{display:grid;grid-template-columns:repeat(3, 1fr);gap:10px;list-style:none !important;padding:0;margin:0}.zoom-instagram .zoom-instagram-widget__items.layout-grid .zoom-instagram-widget__item img{width:100%;aspect-ratio:1/1}.zoom-instagram .zoom-instagram-widget__items.layout-fullwidth{display:flex;width:5000px}.zoom-instagram .zoom-instagram-widget__items.layout-fullwidth .zoom-instagram-widget__item img{aspect-ratio:1}.layout-legacy.zoom-instagram-widget__items{list-style:none !important}.layout-legacy.zoom-instagram-widget__items .zoom-instagram-widget__item{float:left;position:relative;margin-top:0 !important;padding:0}.layout-legacy.zoom-instagram-widget__items .zoom-instagram-widget__overlay{position:relative}.zoom-instagram-widget__item{position:relative;transition:all .1s ease-in-out}.zoom-instagram-widget__item.new{opacity:0;transform:scale(0);transform-origin:center;-webkit-animation:show 500ms linear forwards;animation:show 500ms linear forwards}.zoom-instagram-widget__item .zoom-instagram-widget__item-inner-wrap{position:relative;height:100%;overflow:hidden}.zoom-instagram-widget__item img{-o-object-fit:cover;object-fit:cover;-o-object-position:center;object-position:center;height:100%}.widget_block .zoom-instagram-widget__items ul li.zoom-instagram-widget__item,.widget.zoom-instagram-widget ul li.zoom-instagram-widget__item,.widget.zoom-new-instagram-widget ul li.zoom-instagram-widget__item{padding:0}.widget_block .zoom-instagram-widget__items-wrapper,.widget.zoom-new-instagram-widget .zoom-instagram-widget__items-wrapper{overflow:hidden}.widget_block .zoom-instagram-widget__items,.widget.zoom-new-instagram-widget .zoom-instagram-widget__items{display:grid;grid-template-columns:repeat(3, 1fr);gap:10px;padding:0;margin:0}.widget_block .zoom-instagram-widget__items::before,.widget_block .zoom-instagram-widget__items::after,.widget.zoom-new-instagram-widget .zoom-instagram-widget__items::before,.widget.zoom-new-instagram-widget .zoom-instagram-widget__items::after{display:none}.widget_block .zoom-instagram-widget__items.layout-grid .zoom-instagram-widget__item img,.widget.zoom-new-instagram-widget .zoom-instagram-widget__items.layout-grid .zoom-instagram-widget__item img{width:100%;aspect-ratio:1/1}.widget_block .zoom-instagram-widget__items.layout-fullwidth,.widget.zoom-new-instagram-widget .zoom-instagram-widget__items.layout-fullwidth{display:flex;width:5000px}.widget_block .zoom-instagram-widget__items.layout-fullwidth .zoom-instagram-widget__item img,.widget.zoom-new-instagram-widget .zoom-instagram-widget__items.layout-fullwidth .zoom-instagram-widget__item img{aspect-ratio:1}.widget_block .zoom-instagram-widget__items .zoom-instagram-widget__item .zoom-instagram-widget__item-inner-wrap,.widget.zoom-new-instagram-widget .zoom-instagram-widget__items .zoom-instagram-widget__item .zoom-instagram-widget__item-inner-wrap{position:relative;height:100%;overflow:hidden}.widget_block .zoom-instagram-widget__items .zoom-instagram-widget__item img,.widget.zoom-new-instagram-widget .zoom-instagram-widget__items .zoom-instagram-widget__item img{-o-object-fit:cover;object-fit:cover;-o-object-position:center;object-position:center;height:100%}.widget_block .zoom-instagram-widget__items .zoom-instagram-widget__item .zoom-instagram-link,.widget.zoom-new-instagram-widget .zoom-instagram-widget__items .zoom-instagram-widget__item .zoom-instagram-link{padding-bottom:100%}.ig-b-{display:inline-block}a.ig-b-v-24{border-color:#3897f0;color:#3897f0 !important;border-radius:3px;border-style:solid;border-width:1px;font-weight:600 !important;outline:none;overflow:hidden;white-space:nowrap;-webkit-appearance:none;font-family:sans-serif;padding:5px 15px;font-size:14px;transition:all .15s ease-in-out;-moz-transition:all .15s ease-in-out;-webkit-transition:all .15s ease-in-out;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none !important}a.ig-b-v-24:hover{background:#3897f0;border-color:#3897f0;color:#fff !important}.zoom-instagram-widget__item .hover-controls{opacity:0;z-index:9;margin-top:-15px;position:absolute;top:40%;width:100%;text-align:center;transition:opacity .25s ease-in-out;-moz-transition:opacity .25s ease-in-out;-webkit-transition:opacity .25s ease-in-out}.zoom-instagram-widget__items[data-lightbox="1"] .zoom-instagram-widget__item .zoom-instagram-icon-wrap{pointer-events:none}.zoom-instagram-widget__item .hover-controls~.zoom-instagram-icon-wrap{bottom:10%;pointer-events:all}.zoom-instagram-widget__item .hover-layout.small .hover-controls~.zoom-instagram-icon-wrap{bottom:6%}.zoom-instagram-widget__item .hover-layout.small .zoom-instagram-icon-wrap{bottom:calc(50% - 15px)}.zoom-instagram-widget__item .zoom-instagram-icon-wrap{bottom:calc(50% - 15px);height:30px;width:100%;position:absolute;z-index:9;text-align:center}.zoom-instagram-widget__item:hover .hover-controls{opacity:1}.zoom-instagram-widget__item .zoom-instagram-icon-wrap{opacity:0;transition:opacity .25s ease-in-out;-moz-transition:opacity .25s ease-in-out;-webkit-transition:opacity .25s ease-in-out}.zoom-instagram-widget__item:hover .zoom-instagram-icon-wrap{opacity:1}.zoom-instagram-widget__item .hover-controls .dashicons{font-size:20px;width:20px;height:20px;color:#fff;vertical-align:middle}.zoom-instagram-widget__item .hover-controls .counter{padding-left:1px;padding-right:12px;font-weight:500;color:#fff;font-size:14px;opacity:.8;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif}.zoom-instagram-widget__overlay{position:absolute;top:0;left:0;right:0;bottom:0}.zoom-instagram-widget__overlay:after{position:absolute;content:"";top:0;left:0;pointer-events:none;width:100%;height:100%;opacity:0;transition:opacity .25s ease-in-out;-moz-transition:opacity .25s ease-in-out;-webkit-transition:opacity .25s ease-in-out}.zoom-instagram-widget__overlay:hover:after{opacity:.7;background-color:#000}.zoom-instagram-widget__black:after{background-color:#000}.zoom-svg-instagram-simple{display:inline-block;width:30px;height:30px;background:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHg9IjBweCIgeT0iMHB4IgogICAgIHdpZHRoPSI1MCIgaGVpZ2h0PSI1MCIKICAgICB2aWV3Qm94PSIwIDAgNTAgNTAiCiAgICAgc3R5bGU9ImZpbGw6I2ZmZmZmZjsiPiAgICA8cGF0aCBzdHlsZT0ibGluZS1oZWlnaHQ6bm9ybWFsO3RleHQtaW5kZW50OjA7dGV4dC1hbGlnbjpzdGFydDt0ZXh0LWRlY29yYXRpb24tbGluZTpub25lO3RleHQtZGVjb3JhdGlvbi1zdHlsZTpzb2xpZDt0ZXh0LWRlY29yYXRpb24tY29sb3I6IzAwMDt0ZXh0LXRyYW5zZm9ybTpub25lO2Jsb2NrLXByb2dyZXNzaW9uOnRiO2lzb2xhdGlvbjphdXRvO21peC1ibGVuZC1tb2RlOm5vcm1hbCIgZD0iTSAxNiAzIEMgOC44MzI0ODM5IDMgMyA4LjgzMjQ4MzkgMyAxNiBMIDMgMzQgQyAzIDQxLjE2NzUxNiA4LjgzMjQ4MzkgNDcgMTYgNDcgTCAzNCA0NyBDIDQxLjE2NzUxNiA0NyA0NyA0MS4xNjc1MTYgNDcgMzQgTCA0NyAxNiBDIDQ3IDguODMyNDgzOSA0MS4xNjc1MTYgMyAzNCAzIEwgMTYgMyB6IE0gMTYgNSBMIDM0IDUgQyA0MC4wODY0ODQgNSA0NSA5LjkxMzUxNjEgNDUgMTYgTCA0NSAzNCBDIDQ1IDQwLjA4NjQ4NCA0MC4wODY0ODQgNDUgMzQgNDUgTCAxNiA0NSBDIDkuOTEzNTE2MSA0NSA1IDQwLjA4NjQ4NCA1IDM0IEwgNSAxNiBDIDUgOS45MTM1MTYxIDkuOTEzNTE2MSA1IDE2IDUgeiBNIDM3IDExIEEgMiAyIDAgMCAwIDM1IDEzIEEgMiAyIDAgMCAwIDM3IDE1IEEgMiAyIDAgMCAwIDM5IDEzIEEgMiAyIDAgMCAwIDM3IDExIHogTSAyNSAxNCBDIDE4LjkzNjcxMiAxNCAxNCAxOC45MzY3MTIgMTQgMjUgQyAxNCAzMS4wNjMyODggMTguOTM2NzEyIDM2IDI1IDM2IEMgMzEuMDYzMjg4IDM2IDM2IDMxLjA2MzI4OCAzNiAyNSBDIDM2IDE4LjkzNjcxMiAzMS4wNjMyODggMTQgMjUgMTQgeiBNIDI1IDE2IEMgMjkuOTgyNDA3IDE2IDM0IDIwLjAxNzU5MyAzNCAyNSBDIDM0IDI5Ljk4MjQwNyAyOS45ODI0MDcgMzQgMjUgMzQgQyAyMC4wMTc1OTMgMzQgMTYgMjkuOTgyNDA3IDE2IDI1IEMgMTYgMjAuMDE3NTkzIDIwLjAxNzU5MyAxNiAyNSAxNiB6IiBmb250LXdlaWdodD0iNDAwIiBmb250LWZhbWlseT0ic2Fucy1zZXJpZiIgd2hpdGUtc3BhY2U9Im5vcm1hbCIgb3ZlcmZsb3c9InZpc2libGUiPjwvcGF0aD48L3N2Zz4=") 50% 50% no-repeat;background-size:100%}.zoom-svg-instagram-stroke{display:inline-block;width:30px;height:30px;background:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHg9IjBweCIgeT0iMHB4IgogICAgIHdpZHRoPSI1MCIgaGVpZ2h0PSI1MCIKICAgICB2aWV3Qm94PSIwIDAgMjUyIDI1MiIKICAgICBzdHlsZT0iZmlsbDojMDAwMDAwOyI+PGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMi4zOTQsMi4zOTQpIHNjYWxlKDAuOTgxLDAuOTgxKSI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJub256ZXJvIiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9ImJ1dHQiIHN0cm9rZS1saW5lam9pbj0ibm9uZSIgc3Ryb2tlLW1pdGVybGltaXQ9IjEwIiBzdHJva2UtZGFzaGFycmF5PSIiIHN0cm9rZS1kYXNob2Zmc2V0PSIwIiBmb250LWZhbWlseT0ibm9uZSIgZm9udC13ZWlnaHQ9Im5vbmUiIGZvbnQtc2l6ZT0ibm9uZSIgdGV4dC1hbmNob3I9Im5vbmUiIHN0eWxlPSJtaXgtYmxlbmQtbW9kZTogbm9ybWFsIj48ZyBpZD0ib3JpZ2luYWwtaWNvbiAxIiBmaWxsPSIjZmZmZmZmIiBzdHJva2U9IiNmZmZmZmYiIHN0cm9rZS13aWR0aD0iNSIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBhdGggZD0iTTE3MS4zNiwxNS4xMmMzNi4xMjQyOCwwIDY1LjUyLDI5LjM5NTcyIDY1LjUyLDY1LjUydjkwLjcyYzAsMzYuMTI0MjggLTI5LjM5NTcyLDY1LjUyIC02NS41Miw2NS41MmgtOTAuNzJjLTM2LjEyNDI4LDAgLTY1LjUyLC0yOS4zOTU3MiAtNjUuNTIsLTY1LjUydi05MC43MmMwLC0zNi4xMjQyOCAyOS4zOTU3MiwtNjUuNTIgNjUuNTIsLTY1LjUyek0yNS4yLDgwLjY0djkwLjcyYzAsMzAuNjc1ODggMjQuNzY0MTIsNTUuNDQgNTUuNDQsNTUuNDRoOTAuNzJjMzAuNjc1ODgsMCA1NS40NCwtMjQuNzY0MTIgNTUuNDQsLTU1LjQ0di05MC43MmMwLC0zMC42NzU4OCAtMjQuNzY0MTIsLTU1LjQ0IC01NS40NCwtNTUuNDRoLTkwLjcyYy0zMC42NzU4OCwwIC01NS40NCwyNC43NjQxMiAtNTUuNDQsNTUuNDR6TTE5Ni41Niw2NS41MmMwLDUuNTY3MDMgLTQuNTEyOTcsMTAuMDggLTEwLjA4LDEwLjA4Yy01LjU2NzAzLDAgLTEwLjA4LC00LjUxMjk3IC0xMC4wOCwtMTAuMDhjMCwtNS41NjcwMyA0LjUxMjk3LC0xMC4wOCAxMC4wOCwtMTAuMDhjNS41NjcwMywwIDEwLjA4LDQuNTEyOTcgMTAuMDgsMTAuMDh6TTE4MS40NCwxMjZjMCwzMC41NTg5NyAtMjQuODgxMDMsNTUuNDQgLTU1LjQ0LDU1LjQ0Yy0zMC41NTg5NywwIC01NS40NCwtMjQuODgxMDMgLTU1LjQ0LC01NS40NGMwLC0zMC41NTg5NyAyNC44ODEwMywtNTUuNDQgNTUuNDQsLTU1LjQ0YzMwLjU1ODk3LDAgNTUuNDQsMjQuODgxMDMgNTUuNDQsNTUuNDR6TTgwLjY0LDEyNmMwLDI1LjExMTMzIDIwLjI0ODY3LDQ1LjM2IDQ1LjM2LDQ1LjM2YzI1LjExMTMzLDAgNDUuMzYsLTIwLjI0ODY3IDQ1LjM2LC00NS4zNmMwLC0yNS4xMTEzMyAtMjAuMjQ4NjcsLTQ1LjM2IC00NS4zNiwtNDUuMzZjLTI1LjExMTMzLDAgLTQ1LjM2LDIwLjI0ODY3IC00NS4zNiw0NS4zNnoiPjwvcGF0aD48L2c+PHBhdGggZD0iTTAsMjUydi0yNTJoMjUydjI1MnoiIGZpbGw9Im5vbmUiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBzdHJva2UtbGluZWpvaW49Im1pdGVyIj48L3BhdGg+PGcgaWQ9Im9yaWdpbmFsLWljb24iIGZpbGw9IiNmZmZmZmYiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBzdHJva2UtbGluZWpvaW49Im1pdGVyIj48cGF0aCBkPSJNODAuNjQsMTUuMTJjLTM2LjEyNDI4LDAgLTY1LjUyLDI5LjM5NTcyIC02NS41Miw2NS41MnY5MC43MmMwLDM2LjEyNDI4IDI5LjM5NTcyLDY1LjUyIDY1LjUyLDY1LjUyaDkwLjcyYzM2LjEyNDI4LDAgNjUuNTIsLTI5LjM5NTcyIDY1LjUyLC02NS41MnYtOTAuNzJjMCwtMzYuMTI0MjggLTI5LjM5NTcyLC02NS41MiAtNjUuNTIsLTY1LjUyek04MC42NCwyNS4yaDkwLjcyYzMwLjY3NTg4LDAgNTUuNDQsMjQuNzY0MTIgNTUuNDQsNTUuNDR2OTAuNzJjMCwzMC42NzU4OCAtMjQuNzY0MTIsNTUuNDQgLTU1LjQ0LDU1LjQ0aC05MC43MmMtMzAuNjc1ODgsMCAtNTUuNDQsLTI0Ljc2NDEyIC01NS40NCwtNTUuNDR2LTkwLjcyYzAsLTMwLjY3NTg4IDI0Ljc2NDEyLC01NS40NCA1NS40NCwtNTUuNDR6TTE4Ni40OCw1NS40NGMtNS41NjcwMywwIC0xMC4wOCw0LjUxMjk3IC0xMC4wOCwxMC4wOGMwLDUuNTY3MDMgNC41MTI5NywxMC4wOCAxMC4wOCwxMC4wOGM1LjU2NzAzLDAgMTAuMDgsLTQuNTEyOTcgMTAuMDgsLTEwLjA4YzAsLTUuNTY3MDMgLTQuNTEyOTcsLTEwLjA4IC0xMC4wOCwtMTAuMDh6TTEyNiw3MC41NmMtMzAuNTU4OTcsMCAtNTUuNDQsMjQuODgxMDMgLTU1LjQ0LDU1LjQ0YzAsMzAuNTU4OTcgMjQuODgxMDMsNTUuNDQgNTUuNDQsNTUuNDRjMzAuNTU4OTcsMCA1NS40NCwtMjQuODgxMDMgNTUuNDQsLTU1LjQ0YzAsLTMwLjU1ODk3IC0yNC44ODEwMywtNTUuNDQgLTU1LjQ0LC01NS40NHpNMTI2LDgwLjY0YzI1LjExMTMzLDAgNDUuMzYsMjAuMjQ4NjcgNDUuMzYsNDUuMzZjMCwyNS4xMTEzMyAtMjAuMjQ4NjcsNDUuMzYgLTQ1LjM2LDQ1LjM2Yy0yNS4xMTEzMywwIC00NS4zNiwtMjAuMjQ4NjcgLTQ1LjM2LC00NS4zNmMwLC0yNS4xMTEzMyAyMC4yNDg2NywtNDUuMzYgNDUuMzYsLTQ1LjM2eiI+PC9wYXRoPjwvZz48cGF0aCBkPSJNMTI2LDI1MmMtNjkuNTg3ODgsMCAtMTI2LC01Ni40MTIxMiAtMTI2LC0xMjZ2MGMwLC02OS41ODc4OCA1Ni40MTIxMiwtMTI2IDEyNiwtMTI2djBjNjkuNTg3ODgsMCAxMjYsNTYuNDEyMTIgMTI2LDEyNnYwYzAsNjkuNTg3ODggLTU2LjQxMjEyLDEyNiAtMTI2LDEyNnoiIGZpbGw9Im5vbmUiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBzdHJva2UtbGluZWpvaW49Im1pdGVyIj48L3BhdGg+PHBhdGggZD0iTTEyNiwyNDYuOTZjLTY2LjgwNDM2LDAgLTEyMC45NiwtNTQuMTU1NjQgLTEyMC45NiwtMTIwLjk2djBjMCwtNjYuODA0MzYgNTQuMTU1NjQsLTEyMC45NiAxMjAuOTYsLTEyMC45NmgwYzY2LjgwNDM2LDAgMTIwLjk2LDU0LjE1NTY0IDEyMC45NiwxMjAuOTZ2MGMwLDY2LjgwNDM2IC01NC4xNTU2NCwxMjAuOTYgLTEyMC45NiwxMjAuOTZ6IiBmaWxsPSJub25lIiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgc3Ryb2tlLWxpbmVqb2luPSJtaXRlciI+PC9wYXRoPjxwYXRoIGQ9IiIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjEiIHN0cm9rZS1saW5lam9pbj0ibWl0ZXIiPjwvcGF0aD48cGF0aCBkPSIiIGZpbGw9Im5vbmUiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBzdHJva2UtbGluZWpvaW49Im1pdGVyIj48L3BhdGg+PHBhdGggZD0iIiBmaWxsPSJub25lIiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgc3Ryb2tlLWxpbmVqb2luPSJtaXRlciI+PC9wYXRoPjxwYXRoIGQ9IiIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjEiIHN0cm9rZS1saW5lam9pbj0ibWl0ZXIiPjwvcGF0aD48L2c+PC9nPjwvc3ZnPg==") 50% 50% no-repeat;background-size:100%}.zoom-instagram-widget__item .hover-layout.small .hover-controls .dashicons{font-size:15px;width:15px;height:15px}.zoom-instagram-widget__item .hover-layout.small .zoom-instagram-icon-wrap .zoom-svg-instagram-stroke{width:18px;height:18px}.zoom-instagram-widget__item .hover-layout.small .hover-controls .counter{padding-left:1px;padding-right:4px;font-size:11px}.zoom-instagram-widget-user-info{display:flex;padding:0 0px 20px}.zoom-instagram-widget-user-info .zoom-instagram-widget-user-info-picture{flex:1}.zoom-instagram-widget-user-info .zoom-instagram-widget-user-info-picture img{border-radius:50%}.zoom-instagram-widget-user-info .zoom-instagram-widget-user-info-meta{display:flex;flex:3;flex-direction:column;margin-left:15px;text-align:left;justify-content:center}.zoom-instagram-widget-user-info .zoom-instagram-widget-user-info-about-data{display:flex;justify-content:space-between;margin-bottom:10px}.zoom-instagram-widget-user-info .zoom-instagram-widget-user-info-stats{font-size:14px;line-height:1.2;justify-content:space-between;display:flex;text-align:center}.zoom-instagram-widget-user-info .zoom-instagram-widget-user-info-follow-button{padding:0px 24px;margin-top:10px;background:#3897f0;color:#fff !important;font-size:14px;font-weight:600;line-height:26px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;text-transform:none;border-radius:3px;outline:0;overflow:hidden;text-overflow:ellipsis;display:block;border:none;box-shadow:none;text-decoration:none !important}.zoom-instagram-widget-user-info .zoom-instagram-widget-user-info-follow-button:hover{color:#fff;opacity:.8;box-shadow:none;border:none;text-decoration:none}.zoom-instagram-widget-user-info .zoom-instagram-widget-user-info-counts{font-weight:600}.zoom-instagram-widget-user-info .zoom-instagram-widget-user-info-counts-subhead{opacity:.7;font-size:14px}.zoom-instagram-widget-user-info-middle-cell{padding:0px 20px}.zoom-instagram-widget-user-info .zoom-instagram-widget-user-info-fullname{font-weight:600;font-size:16px}.zoom-instagram-widget-user-info .zoom-instagram-widget-user-info-names-wrapper{padding-right:20px;word-break:break-word}.zoom-instagram-widget-user-info .zoom-instagram-widget-user-info-username{font-size:14px;font-weight:600;word-break:break-all;opacity:.7}.zoom-instagram-widget-user-info-bio{text-align:left;font-size:14px;margin:0 0 15px}.zoom-instagram-widget__items .zoom-instagram-widget__item .zoom-instagram-link{display:block;background-size:cover !important;background-position:center center !important;background-repeat:no-repeat !important;padding-bottom:100%}.zoom-instagram-widget__items .zoom-instagram-widget__item .svg-icon{position:absolute;width:32px;padding:8px;height:32px;display:flex;top:0;right:0;z-index:1;transition:opacity .25s ease-in-out;-moz-transition:opacity .25s ease-in-out;-webkit-transition:opacity .25s ease-in-out}.zoom-instagram-widget__items .zoom-instagram-widget__item.media-icons-hover .svg-icon{opacity:0}.zoom-instagram-widget__items .zoom-instagram-widget__item.media-icons-hover:hover .svg-icon{opacity:1}.wpzoom-lightbox .mfp-inline-holder .mfp-content{max-width:none}.wpz-insta-lightbox{pointer-events:all;display:flex;flex-direction:row;background-color:#fff;border-radius:4px;height:100%}.wpz-insta-lightbox-wrapper{display:flex;justify-content:center;pointer-events:none}.wpz-insta-lightbox-wrapper .wpz-insta-lightbox .details-wrapper{width:30%}.wpz-insta-lightbox-wrapper .wpz-insta-lightbox .details-wrapper .wpz-insta-header{display:flex;align-items:center;padding:16px;border-bottom:1px solid #efefef;flex-wrap:wrap}.wpz-insta-lightbox-wrapper .wpz-insta-lightbox .details-wrapper .wpz-insta-header .wpz-insta-avatar img{width:42px;height:42px;border-radius:50%}.wpz-insta-lightbox-wrapper .wpz-insta-lightbox .details-wrapper .wpz-insta-header .wpz-insta-username a,.wpz-insta-lightbox-wrapper .wpz-insta-lightbox .details-wrapper .wpz-insta-header .wpz-insta-follow a{color:#262626;font-weight:600;text-decoration:none;font-size:14px}.wpz-insta-lightbox-wrapper .wpz-insta-lightbox .details-wrapper .wpz-insta-header .wpz-insta-username a:hover{text-decoration:underline}.wpz-insta-lightbox-wrapper .wpz-insta-lightbox .details-wrapper .wpz-insta-header .wpz-insta-follow a{color:#0095f6}.wpz-insta-lightbox-wrapper .wpz-insta-lightbox .details-wrapper .wpz-insta-header>div{margin-right:13px;min-width:42px}.wpz-insta-lightbox-wrapper .wpz-insta-lightbox .details-wrapper .wpz-insta-header .wpz-insta-buttons{display:flex}.wpz-insta-lightbox-wrapper .wpz-insta-lightbox .details-wrapper .wpz-insta-header .wpz-insta-buttons>div{padding:5px}.wpz-insta-lightbox-wrapper .wpz-insta-lightbox .details-wrapper .wpz-insta-caption{color:#262626;line-height:1.5;font-size:14px;padding:16px;font-weight:normal;overflow-y:scroll;max-height:384px;border-bottom:1px solid #efefef}.wpzoom-lightbox.mfp-gallery{z-index:100000;pointer-events:none}.wpzoom-lightbox button.mfp-close{pointer-events:all;color:#fff;font-size:50px;font-weight:100;margin-top:25px;margin-right:15px}.wpzoom-lightbox .mfp-prevent-close{pointer-events:all}.wpzoom-lightbox button.mfp-close:hover{text-decoration:none}.wpz-insta-lightbox-wrapper .wpz-insta-lightbox .details-wrapper .wpz-insta-date{font-size:12px;padding:16px;color:#8e8e8e;flex:1}.wpz-insta-lightbox-wrapper .wpz-insta-lightbox .image-wrapper img{height:100%;max-width:100%;-o-object-fit:contain;object-fit:contain;min-height:700px;min-width:700px}.wpz-insta-lightbox-wrapper .wpz-insta-lightbox .image-wrapper{flex-grow:1;text-align:center;height:auto;width:100%;max-width:70%;max-height:100%;background:#000;border-radius:4px 0 0 4px}.wpz-insta-lightbox-wrapper>.swiper-container{pointer-events:none;width:1000px;height:80vh}.wpz-insta-lightbox-wrapper>.swiper-container .swiper-container{width:100%;height:100%}.wpz-insta-lightbox-wrapper>.swiper-container .swiper-container .swiper-slide{max-height:100%}.wpz-insta-lightbox-wrapper>.swiper-container-autoheight,.swiper-container-autoheight .swiper-slide{height:100%;max-height:80vh}.wpz-insta-lightbox-wrapper video{height:100%;max-width:100%}.wpz-insta-lightbox-wrapper>.swiper-container .swiper-container .swiper-button-prev,.wpz-insta-lightbox-wrapper>.swiper-container .swiper-container .swiper-button-next{--swiper-navigation-size: 34px;color:#000;background:#fff;width:var(--swiper-navigation-size);border-radius:50%}.wpz-insta-lightbox-wrapper>.swiper-container .swiper-container .swiper-button-prev::after,.wpz-insta-lightbox-wrapper>.swiper-container .swiper-container .swiper-button-next::after{font-size:16px}.wpz-insta-lightbox-wrapper>.swiper-container>.swiper-wrapper{pointer-events:all}.wpz-insta-lightbox-wrapper>.swiper-container>.swiper-button-prev,.wpz-insta-lightbox-wrapper>.swiper-container>.swiper-button-next{position:fixed;pointer-events:all}.wpz-insta-lightbox-wrapper>.swiper-container .swiper-button-prev,.wpz-insta-lightbox-wrapper>.swiper-container .swiper-button-next{color:#fff;opacity:.75}.wpz-insta-lightbox-wrapper>.swiper-container .swiper-button-prev:hover,.wpz-insta-lightbox-wrapper>.swiper-container .swiper-button-next:hover{opacity:1}.wpz-insta-lightbox-wrapper>.swiper-container .swiper-button-prev.swiper-button-disabled,.wpz-insta-lightbox-wrapper>.swiper-container .swiper-button-next.swiper-button-disabled{opacity:.25 !important}.wpz-insta-lightbox-wrapper .wpz-insta-lightbox .details-wrapper{display:flex;flex-direction:column;flex-grow:1}.wpz-insta-lightbox-wrapper .wpz-insta-lightbox .details-wrapper .view-post{padding:16px;text-decoration:none;font-size:12px;color:#262626;font-weight:400;line-height:20px;display:flex;border-top:1px solid #efefef;flex-wrap:wrap;justify-content:flex-start}.wpz-insta-lightbox-wrapper .wpz-insta-lightbox .details-wrapper .view-post a{text-decoration:none;font-size:12px;color:#262626;font-weight:400;line-height:20px;text-align:center;display:inline-block}.wpz-insta-lightbox-wrapper .wpz-insta-lightbox .details-wrapper .view-post a span{margin-right:10px}.wpz-insta-lightbox-wrapper .wpz-insta-lightbox .details-wrapper .view-post .delimiter{padding:0px 10px}@-webkit-keyframes show{100%{transform:none;opacity:1}}@keyframes show{100%{transform:none;opacity:1}}@media screen and (max-width: 1200px){.wpz-insta-lightbox-wrapper .wpz-insta-lightbox{flex-wrap:wrap}.wpz-insta-lightbox-wrapper>.swiper-container{width:86%}.wpz-insta-lightbox-wrapper .wpz-insta-lightbox .image-wrapper img{min-height:500px;min-width:500px}}@media screen and (max-width: 860px){.wpz-insta-lightbox-wrapper .wpz-insta-lightbox .details-wrapper .wpz-insta-caption{font-size:12px}}@media screen and (max-width: 768px){.wpz-insta-lightbox{flex-direction:column}.wpz-insta-lightbox-wrapper .wpz-insta-lightbox .image-wrapper img{min-height:400px;min-width:400px}.wpz-insta-lightbox-wrapper .wpz-insta-lightbox .image-wrapper{border-radius:4px 4px 0 0;max-width:100%;height:65%}.wpz-insta-lightbox-wrapper .wpz-insta-lightbox .details-wrapper .wpz-insta-caption{max-height:134px}.wpz-insta-lightbox-wrapper .wpz-insta-lightbox .details-wrapper{width:100%;height:35%}}@media screen and (max-width: 600px){.wpz-insta-lightbox-wrapper .wpz-insta-lightbox .image-wrapper img{min-height:280px;min-width:280px}.wpz-insta-lightbox-wrapper>.swiper-container{width:76%}.wpz-insta-lightbox-wrapper .wpz-insta-lightbox .image-wrapper{height:55%}.wpz-insta-lightbox-wrapper .wpz-insta-lightbox .details-wrapper{height:45%}}
dist/styles/frontend/preview-rtl.css ADDED
@@ -0,0 +1 @@
 
1
+ html{background:transparent !important;padding:0 !important;border:0 !important;margin:0 !important}html body{background:transparent !important;padding:30px !important;border:0 !important;margin:0 !important}html body>*{display:none !important}html body>.zoom-new-instagram-widget{display:block !important;padding:0 !important;border:0 !important;margin:0 !important}html body>.zoom-new-instagram-widget .zoom-instagram{border:none}html body .zoom-instagram{background:rgba(0,0,0,.05);padding:25px;border:20px solid rgba(0,0,0,0) !important;border-radius:3px}html body .zoom-instagram .button,html body .zoom-instagram .wpzinsta-pro-load-more input[type=submit],html body .zoom-instagram .wpzinsta-pro-load-more button[type=submit]{display:flex !important;flex-direction:row !important;align-items:center !important;justify-content:center !important;gap:10px !important;cursor:pointer;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:.929em !important;font-weight:600 !important;text-decoration:none !important;line-height:35px !important;color:#fff !important;background:#3496ff !important;min-height:35px !important;padding:0 12px !important;border:0 !important;border-radius:2px !important;transition:all .2s ease !important}html body .zoom-instagram .button:hover,html body .zoom-instagram .button:active,html body .zoom-instagram .wpzinsta-pro-load-more input[type=submit]:hover,html body .zoom-instagram .wpzinsta-pro-load-more input[type=submit]:active,html body .zoom-instagram .wpzinsta-pro-load-more button[type=submit]:hover,html body .zoom-instagram .wpzinsta-pro-load-more button[type=submit]:active{text-decoration:none !important;color:#fff !important;background:#70b5fe !important}html body .zoom-instagram .button.disabled,html body .zoom-instagram .wpzinsta-pro-load-more input[type=submit].disabled,html body .zoom-instagram .wpzinsta-pro-load-more button[type=submit].disabled{pointer-events:none !important;opacity:.5 !important}html body .zoom-instagram .button>.button-icon,html body .zoom-instagram .wpzinsta-pro-load-more input[type=submit]>.button-icon,html body .zoom-instagram .wpzinsta-pro-load-more button[type=submit]>.button-icon{height:18px !important;width:18px !important}html body .zoom-instagram .select-a-feed{display:flex;align-items:center;justify-content:center;gap:8px;cursor:default;line-height:24px;padding:0;margin:0}html body .zoom-instagram .select-a-feed svg{flex-shrink:0;color:#3496ff;height:24px;width:24px;-webkit-animation:point 1s infinite;animation:point 1s infinite}@-webkit-keyframes point{0%{transform:translateX(0%)}50%{transform:translateX(30%)}100%{transform:translateX(0%)}}@keyframes point{0%{transform:translateX(0%)}50%{transform:translateX(30%)}100%{transform:translateX(0%)}}
dist/styles/frontend/preview.asset.php ADDED
@@ -0,0 +1 @@
 
1
+ <?php return array('dependencies' => array('wp-polyfill'), 'version' => '7f407cfcc29743d0f15ef12c58f53ecf');
dist/styles/frontend/preview.css ADDED
@@ -0,0 +1 @@
 
1
+ html{background:transparent !important;padding:0 !important;border:0 !important;margin:0 !important}html body{background:transparent !important;padding:30px !important;border:0 !important;margin:0 !important}html body>*{display:none !important}html body>.zoom-new-instagram-widget{display:block !important;padding:0 !important;border:0 !important;margin:0 !important}html body>.zoom-new-instagram-widget .zoom-instagram{border:none}html body .zoom-instagram{background:rgba(0,0,0,.05);padding:25px;border:20px solid rgba(0,0,0,0) !important;border-radius:3px}html body .zoom-instagram .button,html body .zoom-instagram .wpzinsta-pro-load-more input[type=submit],html body .zoom-instagram .wpzinsta-pro-load-more button[type=submit]{display:flex !important;flex-direction:row !important;align-items:center !important;justify-content:center !important;gap:10px !important;cursor:pointer;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:.929em !important;font-weight:600 !important;text-decoration:none !important;line-height:35px !important;color:#fff !important;background:#3496ff !important;min-height:35px !important;padding:0 12px !important;border:0 !important;border-radius:2px !important;transition:all .2s ease !important}html body .zoom-instagram .button:hover,html body .zoom-instagram .button:active,html body .zoom-instagram .wpzinsta-pro-load-more input[type=submit]:hover,html body .zoom-instagram .wpzinsta-pro-load-more input[type=submit]:active,html body .zoom-instagram .wpzinsta-pro-load-more button[type=submit]:hover,html body .zoom-instagram .wpzinsta-pro-load-more button[type=submit]:active{text-decoration:none !important;color:#fff !important;background:#70b5fe !important}html body .zoom-instagram .button.disabled,html body .zoom-instagram .wpzinsta-pro-load-more input[type=submit].disabled,html body .zoom-instagram .wpzinsta-pro-load-more button[type=submit].disabled{pointer-events:none !important;opacity:.5 !important}html body .zoom-instagram .button>.button-icon,html body .zoom-instagram .wpzinsta-pro-load-more input[type=submit]>.button-icon,html body .zoom-instagram .wpzinsta-pro-load-more button[type=submit]>.button-icon{height:18px !important;width:18px !important}html body .zoom-instagram .select-a-feed{display:flex;align-items:center;justify-content:center;gap:8px;cursor:default;line-height:24px;padding:0;margin:0}html body .zoom-instagram .select-a-feed svg{flex-shrink:0;color:#3496ff;height:24px;width:24px;-webkit-animation:point 1s infinite;animation:point 1s infinite}@-webkit-keyframes point{0%{transform:translateX(0%)}50%{transform:translateX(-30%)}100%{transform:translateX(0%)}}@keyframes point{0%{transform:translateX(0%)}50%{transform:translateX(-30%)}100%{transform:translateX(0%)}}
{assets/frontend/magnific-popup → dist/styles/library}/magnific-popup.css RENAMED
File without changes
{assets/frontend/swiper → dist/styles/library}/swiper.css RENAMED
File without changes
images/wpzoom.png DELETED
Binary file
instagram-widget-by-wpzoom.php CHANGED
@@ -1,9 +1,9 @@
1
  <?php
2
  /**
3
- * Plugin Name: WPZOOM Instagram Widget
4
  * Plugin URI: https://www.wpzoom.com/plugins/instagram-widget/
5
- * Description: Simple and lightweight widget for WordPress to display your Instagram feed. Now with a Lightbox!
6
- * Version: 1.9.5
7
  * Author: WPZOOM
8
  * Author URI: https://www.wpzoom.com/
9
  * Text Domain: instagram-widget-by-wpzoom
@@ -19,13 +19,16 @@ if ( ! defined( 'ABSPATH' ) ) {
19
  }
20
 
21
  if ( ! defined( 'WPZOOM_INSTAGRAM_VERSION' ) ) {
22
- define( 'WPZOOM_INSTAGRAM_VERSION', '1.9.5' );
23
  }
24
 
25
  require_once plugin_dir_path( __FILE__ ) . 'class-wpzoom-instagram-image-uploader.php';
26
  require_once plugin_dir_path( __FILE__ ) . 'class-wpzoom-instagram-widget-settings.php';
27
  require_once plugin_dir_path( __FILE__ ) . 'class-wpzoom-instagram-widget-api.php';
 
28
  require_once plugin_dir_path( __FILE__ ) . 'class-wpzoom-instagram-widget.php';
 
 
29
 
30
  add_action( 'widgets_init', 'zoom_instagram_widget_register' );
31
  function zoom_instagram_widget_register() {
@@ -34,7 +37,7 @@ function zoom_instagram_widget_register() {
34
 
35
  /* Display a notice that can be dismissed */
36
 
37
- add_action( 'admin_notices', 'wpzoom_instagram_admin_notice' );
38
 
39
  function wpzoom_instagram_admin_notice() {
40
  global $current_user, $pagenow;
@@ -49,7 +52,7 @@ function wpzoom_instagram_admin_notice() {
49
  $hide_notices_url = wpzoom_instagram_get_notice_dismiss_url();
50
 
51
  $notice_message = '<strong>' . __( 'Please configure Instagram Widget', 'instagram-widget-by-wpzoom' ) . '</strong><br/>';
52
- $notice_message .= sprintf( __( 'If you have just installed or updated this plugin, please go to the %1$s and %2$s it with your Instagram account.', 'instagram-widget-by-wpzoom' ), '<a href="options-general.php?page=wpzoom-instagram-widget">' . __( 'Settings page', 'instagram-widget-by-wpzoom' ) . '</a>', '<strong>' . __( 'connect', 'instagram-widget-by-wpzoom' ) . '</strong>' ) . '&nbsp;';
53
  $notice_message .= __( 'You have to generate Instagram Access Token to allow widget to display your media.', 'instagram-widget-by-wpzoom' );
54
  $notice_message .= '<a style="text-decoration: none" class="notice-dismiss" href="' . $hide_notices_url . '"></a>';
55
 
@@ -85,7 +88,7 @@ function wpzoom_instagram_admin_notice() {
85
  }
86
  }
87
 
88
- add_action( 'admin_init', 'wpzoom_instagram_ignore_admin_notice' );
89
 
90
  function wpzoom_instagram_ignore_admin_notice() {
91
  global $current_user;
@@ -107,7 +110,7 @@ function wpzoom_instagram_get_notice_dismiss_url() {
107
  array(
108
  'wpzoom_instagram_ignore_admin_notice' => '0',
109
  ),
110
- wpzoom_instagram_get_current_admin_url() ? wpzoom_instagram_get_current_admin_url() : admin_url( 'options-general.php?page=wpzoom-instagram-widget' )
111
  )
112
  );
113
 
@@ -138,6 +141,8 @@ add_action(
138
  update_option( $option_name, true );
139
  delete_transient( 'zoom_instagram_is_configured' );
140
  }
 
 
141
  }
142
  );
143
 
1
  <?php
2
  /**
3
+ * Plugin Name: WPZOOM Instagram Widget & Block
4
  * Plugin URI: https://www.wpzoom.com/plugins/instagram-widget/
5
+ * Description: Instagram Widget is a customizable and responsive plugin, made to help you gain even more followers by showcasing your Instagram feed on your WordPress website.
6
+ * Version: 2.0.0
7
  * Author: WPZOOM
8
  * Author URI: https://www.wpzoom.com/
9
  * Text Domain: instagram-widget-by-wpzoom
19
  }
20
 
21
  if ( ! defined( 'WPZOOM_INSTAGRAM_VERSION' ) ) {
22
+ define( 'WPZOOM_INSTAGRAM_VERSION', '2.0.0' );
23
  }
24
 
25
  require_once plugin_dir_path( __FILE__ ) . 'class-wpzoom-instagram-image-uploader.php';
26
  require_once plugin_dir_path( __FILE__ ) . 'class-wpzoom-instagram-widget-settings.php';
27
  require_once plugin_dir_path( __FILE__ ) . 'class-wpzoom-instagram-widget-api.php';
28
+ require_once plugin_dir_path( __FILE__ ) . 'class-wpzoom-instagram-widget-display.php';
29
  require_once plugin_dir_path( __FILE__ ) . 'class-wpzoom-instagram-widget.php';
30
+ require_once plugin_dir_path( __FILE__ ) . 'class-wpzoom-instagram-block.php';
31
+ require_once plugin_dir_path( __FILE__ ) . 'class-wpzoom-instagram-widget-after-setup.php';
32
 
33
  add_action( 'widgets_init', 'zoom_instagram_widget_register' );
34
  function zoom_instagram_widget_register() {
37
 
38
  /* Display a notice that can be dismissed */
39
 
40
+ // add_action( 'admin_notices', 'wpzoom_instagram_admin_notice' );
41
 
42
  function wpzoom_instagram_admin_notice() {
43
  global $current_user, $pagenow;
52
  $hide_notices_url = wpzoom_instagram_get_notice_dismiss_url();
53
 
54
  $notice_message = '<strong>' . __( 'Please configure Instagram Widget', 'instagram-widget-by-wpzoom' ) . '</strong><br/>';
55
+ $notice_message .= sprintf( __( 'If you have just installed or updated this plugin, please go to the %1$s and %2$s it with your Instagram account.', 'instagram-widget-by-wpzoom' ), '<a href="edit.php?post_type=wpz-insta_user">' . __( 'Settings page', 'instagram-widget-by-wpzoom' ) . '</a>', '<strong>' . __( 'connect', 'instagram-widget-by-wpzoom' ) . '</strong>' ) . '&nbsp;';
56
  $notice_message .= __( 'You have to generate Instagram Access Token to allow widget to display your media.', 'instagram-widget-by-wpzoom' );
57
  $notice_message .= '<a style="text-decoration: none" class="notice-dismiss" href="' . $hide_notices_url . '"></a>';
58
 
88
  }
89
  }
90
 
91
+ // add_action( 'admin_init', 'wpzoom_instagram_ignore_admin_notice' );
92
 
93
  function wpzoom_instagram_ignore_admin_notice() {
94
  global $current_user;
110
  array(
111
  'wpzoom_instagram_ignore_admin_notice' => '0',
112
  ),
113
+ wpzoom_instagram_get_current_admin_url() ? wpzoom_instagram_get_current_admin_url() : admin_url( 'edit.php?post_type=wpz-insta_user' )
114
  )
115
  );
116
 
141
  update_option( $option_name, true );
142
  delete_transient( 'zoom_instagram_is_configured' );
143
  }
144
+
145
+ Wpzoom_Instagram_Widget_Display::getInstance()->init();
146
  }
147
  );
148
 
js/admin-instagram-widget.js DELETED
@@ -1,169 +0,0 @@
1
- 'use strict';
2
-
3
- jQuery(function($) {
4
-
5
- $.fn.imageMediaControl = function () {
6
-
7
- this.each(function () {
8
- var $this = $(this);
9
-
10
- var mediaControl = {
11
- // Initializes a new media manager or returns an existing frame.
12
- // @see wp.media.featuredImage.frame()
13
- frame: function () {
14
- if (this._frame)
15
- return this._frame;
16
-
17
- this._frame = wp.media({
18
- title: $this.data('title'),
19
- library: {
20
- type: $this.data('type')
21
- },
22
- button: {
23
- text: $this.data('button')
24
- },
25
- multiple: false,
26
- selection: []
27
- });
28
-
29
- this._frame.on('open', this.updateFrame).state('library').on('select', this.select);
30
-
31
- return this._frame;
32
- },
33
- select: function () {
34
- var $attachmentInput = $this.find('.attachment-input');
35
- var selection = this.get('selection');
36
- var attachmentId = selection.pluck('id');
37
-
38
- $attachmentInput.val(attachmentId).trigger('change');
39
- },
40
-
41
- updateFrame: function () {
42
- },
43
-
44
- init: function () {
45
-
46
- var $fileWrapper = $this.find('.file-wrapper');
47
- var $attachmentInput = $this.find('.attachment-input');
48
- var $addButton = $this.find('.add-media');
49
- var $removeButton = $this.find('.remove-avatar');
50
-
51
- $addButton.on('click', function (e) {
52
- e.preventDefault();
53
- mediaControl.frame().open();
54
- });
55
-
56
- $removeButton.on('click', function (e) {
57
- e.preventDefault();
58
- $attachmentInput.val('').trigger('change');
59
- });
60
-
61
-
62
- $attachmentInput.on('change', function (e) {
63
- e.preventDefault();
64
-
65
- var attachmentId = $this.find('.attachment-input').val();
66
- if (!!attachmentId) {
67
- $addButton.text($this.data('button-replace-text'));
68
- $removeButton.show();
69
- var attachment = wp.media.attachment(attachmentId);
70
- attachment.fetch().then(function (fetched) {
71
- $fileWrapper.fadeOut(400, function () {
72
- var imgSrc = fetched.url;
73
-
74
- if (_.findKey(fetched, 'thumbnail')) {
75
- imgSrc = fetched.sizes.thumbnail.url;
76
- }
77
-
78
- $(this).html('<img width="150" height="150" src="' + imgSrc + '"/>').fadeIn(400);
79
- });
80
- });
81
- } else {
82
- $fileWrapper.hide();
83
- $removeButton.hide();
84
- $addButton.text($this.data('button-add-text'));
85
- }
86
- }).trigger('change');
87
- }
88
- };
89
-
90
- mediaControl.frame().on('open', function () {
91
- var $attachmentInput = $this.find('.attachment-input');
92
- var frame = mediaControl.frame();
93
- var selection = frame.state().get('selection'),
94
- attachmentId = $attachmentInput.val(),
95
- attachment = wp.media.attachment(attachmentId);
96
-
97
- frame.reset();
98
-
99
- if (attachment.id) {
100
- selection.add(attachment);
101
- }
102
- });
103
- mediaControl.init();
104
- });
105
- }
106
-
107
- $('.zoom-instagram-user-avatar-media-uploader').imageMediaControl();
108
-
109
- $('.wpzoom-instagram-widget-settings-request-type-wrapper').find('input[type=radio]').on('change', function (e) {
110
- e.preventDefault();
111
-
112
- var activeClass = $(this).val();
113
-
114
- var allDivs = ['with-access-token', 'with-basic-access-token', 'without-access-token'];
115
-
116
- var inactiveDivs = allDivs.filter(function(item){
117
- return item !== activeClass;
118
- });
119
-
120
- var $formTable = $(this).closest('.form-table');
121
- $formTable.find('.wpzoom-instagram-widget-' + activeClass + '-group').show();
122
-
123
- inactiveDivs.forEach(function(inactive){
124
- $formTable.find('.wpzoom-instagram-widget-' + inactive + '-group').hide();
125
-
126
- });
127
-
128
-
129
- });
130
-
131
- $('.wpzoom-instagram-widget-settings-request-type-wrapper').find('input[type=radio]:checked').change();
132
-
133
- var parsedHash = new URLSearchParams(
134
- window.location.hash.substr(1) // skip the first char (#)
135
- );
136
-
137
- if (!!parsedHash.get('access_token')) {
138
-
139
- var requestType = !!parsedHash.get('request_type') && parsedHash.get('request_type') === 'with-basic-access-token' ? 'with-basic-access-token' : 'with-access-token';
140
- var accessTokenInputName = requestType === 'with-basic-access-token' ? 'basic-access-token' : 'access-token';
141
- var $input = $('#wpzoom-instagram-widget-settings_' + accessTokenInputName);
142
-
143
- $input.val(parsedHash.get('access_token'));
144
- $input.closest('.form-table').find('input[type=radio]').removeAttr('checked');
145
-
146
- var $radio = $input.closest('.form-table').find('#wpzoom-instagram-widget-settings_' + requestType);
147
- $radio.prop('checked', true);
148
- $radio.trigger('change');
149
-
150
- $input.parents('form').find('#submit').click();
151
-
152
- }
153
-
154
- $('.zoom-instagram-widget .button-connect').on('click', function(event) {
155
- if ($(this).find('.zoom-instagarm-widget-connected').length) {
156
- var confirm = window.confirm(zoom_instagram_widget_admin.i18n_connect_confirm);
157
-
158
- if (!confirm) {
159
- event.preventDefault();
160
- }
161
- }
162
- });
163
-
164
- $('#wpzoom-instagram-widget-settings_is-forced-timeout').on('change', function(e){
165
- e.preventDefault();
166
- $('.wpzoom-instagram-widget-request-timeout')[$(this).is(":checked") ? 'show' :'hide']();
167
- }).trigger('change');
168
-
169
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
js/instagram-widget.js DELETED
@@ -1,210 +0,0 @@
1
- jQuery(function ($) {
2
- var ticking = false;
3
-
4
- $.fn.zoomLoadAsyncImages = function () {
5
- return $(this).each(function () {
6
- var $list = $(this);
7
-
8
- var desiredItemWidth = $list.data('image-width');
9
- var imageResolution = $list.data('image-resolution');
10
-
11
- var delayedItems = $list.find('li').filter(function () {
12
- return $(this).data('media-id');
13
- }).map(function () {
14
- return {
15
- 'media-id': $(this).attr('data-media-id'),
16
- 'nonce': $(this).attr('data-nonce'),
17
- 'regenerate-thumbnails': $(this)[0].hasAttribute("data-regenerate-thumbnails")
18
- };
19
- });
20
-
21
- var getAsyncImages = function (images) {
22
-
23
- var isLastImage = images.length == 0;
24
-
25
- if (isLastImage) {
26
- return;
27
- }
28
-
29
- var image = images.shift();
30
-
31
- wp.ajax.post('wpzoom_instagram_get_image_async', {
32
- 'media-id': image['media-id'],
33
- nonce: image['nonce'],
34
- 'image-resolution': imageResolution,
35
- 'image-width': desiredItemWidth,
36
- 'regenerate-thumbnails': image['regenerate-thumbnails']
37
- }).done(function (data) {
38
- $list.find('li[data-media-id="' + image['media-id'] + '"] .zoom-instagram-link').css('background-image', 'url(' + data.image_src + ')');
39
- }).fail(function () {
40
- }).always(function () {
41
- getAsyncImages(images);
42
- });
43
- };
44
-
45
- if (delayedItems.length) {
46
- getAsyncImages(delayedItems.toArray());
47
- }
48
- });
49
- };
50
-
51
- $.fn.zoomLightbox = function () {
52
- return $( this ).each( function () {
53
- const $swipe_el = $( this ).closest( '.zoom-instagram-widget' ).find( '.wpz-insta-lightbox-wrapper > .swiper-container' );
54
-
55
- if ( $swipe_el.length > 0 ) {
56
- const $nested = $swipe_el.find( '.image-wrapper > .swiper-container' );
57
-
58
- new Swiper( $swipe_el.get(0), {
59
- direction: 'horizontal',
60
- loop: false,
61
- spaceBetween: 20,
62
- autoHeight: true,
63
- watchOverflow: true,
64
- navigation: {
65
- nextEl: $swipe_el.find( '> .swiper-button-next' ).get(0),
66
- prevEl: $swipe_el.find( '> .swiper-button-prev' ).get(0)
67
- },
68
- keyboard: {
69
- enabled: true,
70
- onlyInViewport: true
71
- }
72
- } );
73
-
74
- $nested.each( function() {
75
- new Swiper( $( this ).get(0), {
76
- direction: 'horizontal',
77
- loop: false,
78
- spaceBetween: 20,
79
- nested: true,
80
- watchOverflow: true,
81
- pagination: {
82
- el: $( this ).find( '> .swiper-pagination' ).get(0),
83
- type: 'bullets',
84
- clickable: true,
85
- hideOnClick: false
86
- },
87
- navigation: {
88
- nextEl: $( this ).find( '> .swiper-button-next' ).get(0),
89
- prevEl: $( this ).find( '> .swiper-button-prev' ).get(0)
90
- },
91
- keyboard: {
92
- enabled: true,
93
- onlyInViewport: true
94
- }
95
- } );
96
- } );
97
-
98
- $( this ).find( '.zoom-instagram-link' ).magnificPopup( {
99
- items: {
100
- type: 'inline',
101
- src: $( this ).closest( '.zoom-instagram-widget' ).find( '.wpz-insta-lightbox-wrapper' )
102
- },
103
- closeBtnInside: false,
104
- mainClass: 'wpzoom-lightbox',
105
- midClick: true,
106
- callbacks: {
107
- open: function () {
108
- var magnificPopup = $.magnificPopup.instance,
109
- currentElement = magnificPopup.st.el;
110
- //console.log( currentElement );
111
- this.content.find( '> .swiper-container' ).get(0).swiper.slideTo(
112
- this.content.find( '> .swiper-container > .swiper-wrapper > .swiper-slide[data-uid="' + currentElement.data( 'mfp-src' ) + '"]' ).index()
113
- );
114
- }
115
- }
116
- } );
117
- }
118
- } );
119
- };
120
-
121
- $.fn.zoomInstagramWidget = function () {
122
- return $(this).each(function () {
123
- var $list = $(this);
124
-
125
- var minItemsPerRow = $list.data('images-per-row');
126
- var desiredItemWidth = $list.data('image-width');
127
- var itemSpacing = $list.data('image-spacing');
128
- var imageLazyLoading = $list.data('image-lazy-loading');
129
-
130
- var containerWidth = $list.width();
131
-
132
- var fitPerRow;
133
- var itemWidth;
134
-
135
- if (containerWidth / desiredItemWidth < minItemsPerRow) {
136
- fitPerRow = minItemsPerRow;
137
- itemWidth = Math.floor(((containerWidth - 1 - (minItemsPerRow - 1) * itemSpacing) / minItemsPerRow));
138
- } else {
139
- fitPerRow = Math.floor((containerWidth - 1) / desiredItemWidth);
140
- itemWidth = Math.floor(((containerWidth - 1 - (fitPerRow - 1) * itemSpacing) / fitPerRow));
141
- }
142
-
143
- $list.find('li').each(function (i) {
144
- var loop = ++i;
145
- if (loop % fitPerRow == 1) {
146
- $(this).css('clear', 'left');
147
- } else {
148
- $(this).css('clear', 'none');
149
- }
150
- if (loop % fitPerRow == 0) {
151
- $(this).css('margin-right', '0');
152
- } else {
153
- $(this).css('margin-right', itemSpacing + 'px');
154
- $(this).css('margin-bottom', itemSpacing + 'px');
155
- }
156
- });
157
-
158
- $list.find('a.zoom-instagram-link').css({
159
- width: itemWidth,
160
- height: itemWidth
161
- });
162
-
163
- if (imageLazyLoading) {
164
- $list.find('a.zoom-instagram-link').lazy();
165
- }
166
-
167
- $list.removeClass('zoom-instagram-widget__items--no-js');
168
- });
169
- };
170
-
171
- function requestTick() {
172
- if (!ticking) {
173
- ticking = true;
174
- requestAnimationFrame()(update);
175
- }
176
- }
177
-
178
- function requestAnimationFrame() {
179
- return window.requestAnimationFrame ||
180
- window.webkitRequestAnimationFrame ||
181
- window.mozRequestAnimationFrame ||
182
- function (callback) {
183
- window.setTimeout(callback, 1000 / 60);
184
- };
185
- }
186
-
187
- function update() {
188
- $('.zoom-instagram-widget__items').zoomInstagramWidget();
189
- ticking = false;
190
- }
191
-
192
- $(window).on('resize orientationchange', requestTick);
193
- requestTick();
194
-
195
- $('.zoom-instagram-widget__items').zoomLoadAsyncImages();
196
- $('.zoom-instagram-widget__items[data-lightbox="1"]').zoomLightbox();
197
-
198
- var siteOriginInit = function () {
199
- var $widgets = $('.zoom-instagram-widget__items');
200
- if ($widgets.length) {
201
- $('.zoom-instagram-widget__items').zoomInstagramWidget();
202
- $('.zoom-instagram-widget__items').zoomLoadAsyncImages();
203
- }
204
-
205
- };
206
-
207
- var debounceInit = _.debounce(siteOriginInit, 1500);
208
- $(document).on('panels_setup_preview', debounceInit);
209
-
210
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
languages/instagram-widget-by-wpzoom.pot CHANGED
@@ -1,464 +1,356 @@
1
  # Copyright (C) 2021 WPZOOM
2
  # This file is distributed under the GPLv2 or later.
 
3
  msgid ""
4
  msgstr ""
5
  "Project-Id-Version: WPZOOM Instagram Widget 1.7.7\n"
6
- "Report-Msgid-Bugs-To: "
7
- "https://wordpress.org/support/plugin/instagram-widget-by-wpzoom\n"
8
- "POT-Creation-Date: 2021-05-20 12:45:25+00:00\n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=utf-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
12
- "PO-Revision-Date: 2021-MO-DA HO:MI+ZONE\n"
13
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
14
  "Language-Team: LANGUAGE <LL@li.org>\n"
15
- "Language: en\n"
16
- "Plural-Forms: nplurals=2; plural=(n != 1);\n"
17
  "X-Poedit-Country: United States\n"
18
  "X-Poedit-SourceCharset: UTF-8\n"
19
- "X-Poedit-KeywordsList: "
20
- "__;_e;_x:1,2c;_ex:1,2c;_n:1,2;_nx:1,2,4c;_n_noop:1,2;_nx_noop:1,2,3c;esc_"
21
- "attr__;esc_html__;esc_attr_e;esc_html_e;esc_attr_x:1,2c;esc_html_x:1,2c;\n"
22
  "X-Poedit-Basepath: ../\n"
23
  "X-Poedit-SearchPath-0: .\n"
24
  "X-Poedit-Bookmarks: \n"
25
  "X-Textdomain-Support: yes\n"
26
- "X-Generator: grunt-wp-i18n 1.0.3\n"
27
 
28
- #: class-wpzoom-instagram-image-uploader.php:123
29
- msgid "Invalid nonce."
30
- msgstr ""
31
-
32
- #: class-wpzoom-instagram-image-uploader.php:123
33
- msgid "Invalid nonce provided for this action"
34
  msgstr ""
35
 
36
- #: class-wpzoom-instagram-image-uploader.php:131
37
- msgid "Invalid media id."
38
  msgstr ""
39
 
40
- #: class-wpzoom-instagram-image-uploader.php:131
41
- msgid "Could not retrieve image url with provided media id"
42
  msgstr ""
43
 
44
- #: class-wpzoom-instagram-widget-api.php:254
45
- msgid "Empty json user info from Public Feed."
46
  msgstr ""
47
 
48
- #: class-wpzoom-instagram-widget-api.php:258
49
- msgid ""
50
- "The request from the Public Feed failed. Invalid server response from "
51
- "Public JSON API url."
52
  msgstr ""
53
 
54
- #: class-wpzoom-instagram-widget-api.php:262
55
  msgid ""
56
- "The request from the Public Feed failed. Invalid JSON format from Public "
57
- "JSON API url."
58
  msgstr ""
59
 
60
- #: class-wpzoom-instagram-widget-api.php:266
61
- msgid "The request from the Public Feed failed. Check username."
62
  msgstr ""
63
 
64
- #: class-wpzoom-instagram-widget-api.php:270
 
65
  msgid ""
66
- "The request from the Public Feed failed. Invalid JSON format from parsed "
67
- "html body."
68
  msgstr ""
69
 
70
- #: class-wpzoom-instagram-widget-api.php:274
71
- msgid "Get items from the Public Feed failed. Invalid response."
 
 
 
72
  msgstr ""
73
 
74
- #: class-wpzoom-instagram-widget-api.php:278
75
- msgid "Get items from the Public Feed failed. Malformed data structure."
 
76
  msgstr ""
77
 
78
- #: class-wpzoom-instagram-widget-api.php:282
79
- msgid "Geting items from the Instagram API Feed failed. Invalid response."
80
  msgstr ""
81
 
82
- #: class-wpzoom-instagram-widget-api.php:286
83
- msgid "Get items from the Instagram API Feed failed. Malformed data structure."
84
  msgstr ""
85
 
86
- #: class-wpzoom-instagram-widget-api.php:290
87
- msgid "Get user data from the Instagram API Feed failed. Invalid response."
88
  msgstr ""
89
 
90
- #: class-wpzoom-instagram-widget-api.php:294
91
- msgid "Get user data from the Instagram API Feed failed. Malformed data structure."
92
  msgstr ""
93
 
94
- #: class-wpzoom-instagram-widget-api.php:422
95
- msgid "Invalid response from Instagram"
96
  msgstr ""
97
 
98
- #: class-wpzoom-instagram-widget-api.php:455
99
- msgid "Empty json decoded data."
100
  msgstr ""
101
 
102
- #: class-wpzoom-instagram-widget-settings.php:27
103
- msgid "Settings"
104
  msgstr ""
105
 
106
- #: class-wpzoom-instagram-widget-settings.php:61
107
- msgid "User Details (optional)"
108
  msgstr ""
109
 
110
- #: class-wpzoom-instagram-widget-settings.php:68
111
- msgid "Profile Picture"
112
  msgstr ""
113
 
114
- #: class-wpzoom-instagram-widget-settings.php:76
115
- msgid "Your Name"
 
 
 
116
  msgstr ""
117
 
118
- #: class-wpzoom-instagram-widget-settings.php:84
119
- msgid "Bio"
120
  msgstr ""
121
 
122
- #: class-wpzoom-instagram-widget-settings.php:92
123
- msgid "Request Type"
124
  msgstr ""
125
 
126
- #: class-wpzoom-instagram-widget-settings.php:113
127
- msgid "Access Token"
128
  msgstr ""
129
 
130
- #: class-wpzoom-instagram-widget-settings.php:131
131
- msgid "Username"
132
  msgstr ""
133
 
134
- #: class-wpzoom-instagram-widget-settings.php:140
135
- msgid "Check for new posts every"
136
  msgstr ""
137
 
138
- #: class-wpzoom-instagram-widget-settings.php:148
139
- msgid "Enable request timeout"
140
  msgstr ""
141
 
142
- #: class-wpzoom-instagram-widget-settings.php:156
143
- #: class-wpzoom-instagram-widget-settings.php:165
144
- msgid "Request timeout in seconds"
145
  msgstr ""
146
 
147
- #: class-wpzoom-instagram-widget-settings.php:188
148
- msgid ""
149
- "Using this method, you will be prompted to authorize the plugin to access "
150
- "your Instagram photos. The widget will automatically display the latest "
151
- "photos of the account which was authorized on this page."
152
  msgstr ""
153
 
154
- #: class-wpzoom-instagram-widget-settings.php:189
155
  msgid ""
156
- "Access tokens are valid for <u>60 days</u>. If the widget stops working, "
157
- "please generate a new Access Token below."
158
- msgstr ""
159
-
160
- #: class-wpzoom-instagram-widget-settings.php:195
161
- msgid "Connect with Instagram"
162
- msgstr ""
163
-
164
- #: class-wpzoom-instagram-widget-settings.php:197
165
- msgid "Re-connect with Instagram"
166
- msgstr ""
167
-
168
- #: class-wpzoom-instagram-widget-settings.php:220
169
- msgid "Hours"
170
- msgstr ""
171
-
172
- #: class-wpzoom-instagram-widget-settings.php:222
173
- msgid "Days"
174
  msgstr ""
175
 
176
- #: class-wpzoom-instagram-widget-settings.php:224
177
- msgid "Minutes"
178
- msgstr ""
179
-
180
- #: class-wpzoom-instagram-widget-settings.php:256
181
- msgid ""
182
- "The default timeout to get your Instagram feed is 15 seconds, but on some "
183
- "servers, this might not be enough time. Enter a higher value like 30 "
184
- "(seconds) and save changes to see if there is a difference."
185
  msgstr ""
186
 
187
- #: class-wpzoom-instagram-widget-settings.php:271
188
- msgid ""
189
- "The Instagram Access Token is a long string of characters unique to your "
190
- "account that grants other applications access to your Instagram feed. You "
191
- "can also get it manually from <a href=\"%1$s\">here</a>."
192
  msgstr ""
193
 
194
- #: class-wpzoom-instagram-widget-settings.php:284
195
- msgid ""
196
- "<strong style=\"color:#e44;\">This method is no longer supported by "
197
- "Instagram and it will be soon deprecated.</strong>"
198
  msgstr ""
199
 
200
- #: class-wpzoom-instagram-widget-settings.php:285
201
- msgid ""
202
- "Using this method, a public feed, limited to <strong>12 photos</strong>, "
203
- "will be displayed in the widget.<br/>This option is useful if you want to "
204
- "display the feed of an Instagram account which you don't own or you have "
205
- "troubles getting your Access Token."
206
  msgstr ""
207
 
208
- #: class-wpzoom-instagram-widget-settings.php:293
209
  msgid ""
210
- "Below you can add additional details which you can display in the header of "
211
- "the Instagram Widget."
 
212
  msgstr ""
213
 
214
- #: class-wpzoom-instagram-widget-settings.php:309
215
  msgid ""
216
- "The username entered here will be used in the Instagram feed, unless a "
217
- "different username will be entered in the widget settings."
218
  msgstr ""
219
 
220
- #: class-wpzoom-instagram-widget-settings.php:333
221
- msgid "With Access Token (Instagram API)"
222
- msgstr ""
223
-
224
- #: class-wpzoom-instagram-widget-settings.php:344
225
- msgid "Public Feed (12 photos)"
226
  msgstr ""
227
 
228
- #: class-wpzoom-instagram-widget-settings.php:371
229
- #: class-wpzoom-instagram-widget-settings.php:375
230
- msgid "Upload a picture"
231
  msgstr ""
232
 
233
- #: class-wpzoom-instagram-widget-settings.php:372
234
- msgid "Replace Profile Picture"
235
  msgstr ""
236
 
237
- #: class-wpzoom-instagram-widget-settings.php:378
238
- msgid "Remove Profile Picture"
 
239
  msgstr ""
240
 
241
- #: class-wpzoom-instagram-widget-settings.php:405
242
  #: class-wpzoom-instagram-widget.php:23
243
- msgid "Instagram Widget by WPZOOM"
244
  msgstr ""
245
 
246
- #: class-wpzoom-instagram-widget-settings.php:409
247
- msgid "Connect your Instagram account"
248
- msgstr ""
249
-
250
- #: class-wpzoom-instagram-widget-settings.php:411
251
  msgid ""
252
- "To get started, select an option below. If you want to show <strong>your "
253
- "own feed</strong>, use the first option. If you want to show the feed of an "
254
- "Instagram account which you don't own, use the option <strong>Public "
255
- "Feed</strong>."
256
- msgstr ""
257
-
258
- #: class-wpzoom-instagram-widget-settings.php:427
259
- msgid "Premium WordPress Themes by WPZOOM"
260
  msgstr ""
261
 
262
- #: class-wpzoom-instagram-widget-settings.php:429
263
- msgid ""
264
- "Are you looking to give your website a new look?<br/> Check out our "
265
- "collection of <strong>35 expertly-crafted themes</strong> and find the "
266
- "perfect one for your needs!"
267
  msgstr ""
268
 
269
- #: class-wpzoom-instagram-widget-settings.php:431
270
- msgid "Check out our Themes &rarr;"
271
  msgstr ""
272
 
273
- #: class-wpzoom-instagram-widget-settings.php:451
274
- msgid ""
275
- "Instagram Widget is already connected to Instagram.\r\n"
276
- "\r\n"
277
- "Do you want to connect again?"
278
  msgstr ""
279
 
280
- #: class-wpzoom-instagram-widget-settings.php:466
281
- msgid ""
282
- "Provided Access Token expired. Please connect the plugin with your "
283
- "Instagram account again."
284
  msgstr ""
285
 
286
- #: class-wpzoom-instagram-widget.php:26
287
- msgid "Displays a user's Instagram timeline."
288
  msgstr ""
289
 
290
- #: class-wpzoom-instagram-widget.php:31
291
- msgid "Instagram"
292
  msgstr ""
293
 
294
- #: class-wpzoom-instagram-widget.php:32
295
- msgid "View on Instagram"
296
  msgstr ""
297
 
298
- #: class-wpzoom-instagram-widget.php:171
299
- msgid ""
300
- "Instagram Widget misconfigured or your Access Token "
301
- "<strong>expired</strong>. Please check"
302
  msgstr ""
303
 
304
- #: class-wpzoom-instagram-widget.php:172
305
- msgid "Instagram Settings Page"
306
  msgstr ""
307
 
308
- #: class-wpzoom-instagram-widget.php:172
309
- msgid "and make sure the plugin is properly configured"
310
  msgstr ""
311
 
312
- #: class-wpzoom-instagram-widget.php:217
313
- msgid "Follow"
314
  msgstr ""
315
 
316
- #: class-wpzoom-instagram-widget.php:229
317
  msgid "posts"
318
  msgstr ""
319
 
320
- #: class-wpzoom-instagram-widget.php:240
321
- msgid "followers"
322
  msgstr ""
323
 
324
- #: class-wpzoom-instagram-widget.php:251
325
- msgid "following"
326
  msgstr ""
327
 
328
- #: class-wpzoom-instagram-widget.php:475
329
  msgid ""
330
- "You need to configure <a href=\"%1$s\">plugin settings</a> before using "
331
- "this widget."
332
- msgstr ""
333
-
334
- #: class-wpzoom-instagram-widget.php:484
335
- msgid "Title:"
336
- msgstr ""
337
-
338
- #: class-wpzoom-instagram-widget.php:492
339
- msgid "Number of Images Shown:"
340
- msgstr ""
341
-
342
- #: class-wpzoom-instagram-widget.php:499
343
- msgid "Desired number of Images per row:"
344
- msgstr ""
345
-
346
- #: class-wpzoom-instagram-widget.php:506
347
- msgid "Desired Image width in pixels:"
348
  msgstr ""
349
 
350
- #: class-wpzoom-instagram-widget.php:515
351
- msgid "Force image resolution:"
352
  msgstr ""
353
 
354
- #: class-wpzoom-instagram-widget.php:519
355
- msgid "By Default Algorithm"
356
- msgstr ""
357
-
358
- #: class-wpzoom-instagram-widget.php:522
359
- msgid "Thumbnail ( 150x150px )"
360
- msgstr ""
361
-
362
- #: class-wpzoom-instagram-widget.php:525
363
- msgid "Low Resolution ( 320x320px )"
364
- msgstr ""
365
-
366
- #: class-wpzoom-instagram-widget.php:529
367
  msgid "Standard Resolution ( 640x640px )"
368
  msgstr ""
369
 
370
- #: class-wpzoom-instagram-widget.php:535
371
- msgid "Image spacing in pixels:"
372
  msgstr ""
373
 
374
- #: class-wpzoom-instagram-widget.php:546
375
  msgid ""
376
- "Fields above do not influence directly widget appearance. Final number of "
377
- "images per row and image width is calculated depending on browser "
378
- "resolution. This ensures your photos look beautiful on all devices."
379
- msgstr ""
380
-
381
- #: class-wpzoom-instagram-widget.php:552
382
- msgid "Instagram @username:"
383
  msgstr ""
384
 
385
- #: class-wpzoom-instagram-widget.php:562
386
  msgid ""
387
- "If you have already connected your Instagram account in the <a "
388
- "href=\"%1$s\">plugin settings</a>, leave this field empty. You can use this "
389
- "option if you want to display the feed of a different Instagram account."
390
- msgstr ""
391
-
392
- #: class-wpzoom-instagram-widget.php:573
393
- msgid " Display <strong>User Details</strong>"
394
- msgstr ""
395
-
396
- #: class-wpzoom-instagram-widget.php:580
397
- msgid " Display <strong>Bio in User Details</strong>"
398
- msgstr ""
399
-
400
- #: class-wpzoom-instagram-widget.php:587
401
- msgid " Display <strong>View on Instagram</strong> button"
402
- msgstr ""
403
-
404
- #: class-wpzoom-instagram-widget.php:594
405
- msgid " Show <strong>overlay with Instagram icon</strong> on hover"
406
  msgstr ""
407
 
408
- #: class-wpzoom-instagram-widget.php:601
409
- msgid "Lazy Load <strong>images</strong>"
 
 
410
  msgstr ""
411
 
412
- #: class-wpzoom-instagram-widget.php:607
413
- msgid "Hide video <strong>thumbnails</strong>"
 
 
 
414
  msgstr ""
415
 
416
- #: class-wpzoom-instagram-widget.php:613
417
- msgid "Show <strong>media type icons</strong>"
418
  msgstr ""
419
 
420
- #: class-wpzoom-instagram-widget.php:616
421
- msgid "Button Text:"
422
  msgstr ""
423
 
424
- #: instagram-widget-by-wpzoom.php:62
425
- msgid "Please configure Instagram Widget"
 
426
  msgstr ""
427
 
428
- #: instagram-widget-by-wpzoom.php:63
 
429
  msgid ""
430
- "If you have just installed or updated this plugin, please go to the %1$s "
431
- "and %2$s it with your Instagram account."
432
- msgstr ""
433
-
434
- #: instagram-widget-by-wpzoom.php:63
435
- msgid "Settings page"
436
  msgstr ""
437
 
438
- #: instagram-widget-by-wpzoom.php:63
439
- msgid "connect"
440
  msgstr ""
441
 
442
- #: instagram-widget-by-wpzoom.php:64
443
- msgid "You can ignore this message if you have already configured it."
444
  msgstr ""
445
 
446
- #. Plugin Name of the plugin/theme
447
  msgid "WPZOOM Instagram Widget"
448
  msgstr ""
449
 
450
- #. Plugin URI of the plugin/theme
451
- msgid "https://www.wpzoom.com/plugins/instagram-widget/"
452
- msgstr ""
453
-
454
- #. Description of the plugin/theme
455
- msgid "Simple and lightweight widget for WordPress to display your Instagram feed"
456
  msgstr ""
457
 
458
- #. Author of the plugin/theme
459
- msgid "WPZOOM"
 
 
460
  msgstr ""
461
-
462
- #. Author URI of the plugin/theme
463
- msgid "https://www.wpzoom.com/"
464
- msgstr ""
1
  # Copyright (C) 2021 WPZOOM
2
  # This file is distributed under the GPLv2 or later.
3
+ #, fuzzy
4
  msgid ""
5
  msgstr ""
6
  "Project-Id-Version: WPZOOM Instagram Widget 1.7.7\n"
7
+ "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/instagram-widget-"
8
+ "by-wpzoom\n"
9
+ "POT-Creation-Date: 2022-06-16 09:07+0000\n"
10
  "MIME-Version: 1.0\n"
11
  "Content-Type: text/plain; charset=utf-8\n"
12
  "Content-Transfer-Encoding: 8bit\n"
13
+ "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
14
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
15
  "Language-Team: LANGUAGE <LL@li.org>\n"
16
+ "Language: \n"
17
+ "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
18
  "X-Poedit-Country: United States\n"
19
  "X-Poedit-SourceCharset: UTF-8\n"
20
+ "X-Poedit-KeywordsList: __;_e;_x:1,2c;_ex:1,2c;_n:1,2;_nx:1,2,4c;_n_noop:1,2;"
21
+ "_nx_noop:1,2,3c;esc_attr__;esc_html__;esc_attr_e;esc_html_e;esc_attr_x:1,2c;"
22
+ "esc_html_x:1,2c;\n"
23
  "X-Poedit-Basepath: ../\n"
24
  "X-Poedit-SearchPath-0: .\n"
25
  "X-Poedit-Bookmarks: \n"
26
  "X-Textdomain-Support: yes\n"
27
+ "X-Generator: Loco https://localise.biz/"
28
 
29
+ #: class-wpzoom-instagram-widget-display.php:290
30
+ msgid " [PRO only]"
 
 
 
 
31
  msgstr ""
32
 
33
+ #: class-wpzoom-instagram-widget.php:750
34
+ msgid " Display <strong>Bio in User Details</strong>"
35
  msgstr ""
36
 
37
+ #: class-wpzoom-instagram-widget.php:743
38
+ msgid " Display <strong>User Details</strong>"
39
  msgstr ""
40
 
41
+ #: class-wpzoom-instagram-widget.php:757
42
+ msgid " Display <strong>View on Instagram</strong> button"
43
  msgstr ""
44
 
45
+ #: class-wpzoom-instagram-widget.php:764
46
+ msgid " Show <strong>overlay with Instagram icon</strong> on hover"
 
 
47
  msgstr ""
48
 
49
+ #: class-wpzoom-instagram-block.php:152
50
  msgid ""
51
+ "<p class=\"error\"><strong>Please select a feed to display...</strong></p>"
 
52
  msgstr ""
53
 
54
+ #: class-wpzoom-instagram-widget-api.php:177
55
+ msgid "<strong>WPZOOM Instagram Widget:</strong> "
56
  msgstr ""
57
 
58
+ #: class-wpzoom-instagram-widget-api.php:181
59
+ #, php-format
60
  msgid ""
61
+ "<strong>WPZOOM Instagram Widget:</strong> The Access Token for the account "
62
+ "<em>%1$s</em> has expired!<br/>"
63
  msgstr ""
64
 
65
+ #: class-wpzoom-instagram-widget-api.php:159
66
+ #, php-format
67
+ msgid ""
68
+ "<strong>WPZOOM Instagram Widget:</strong> The Instagram Access Token was "
69
+ "refreshed automatically on %1$s at %2$s for the account <em>%3$s</em>."
70
  msgstr ""
71
 
72
+ #: class-wpzoom-instagram-widget-display.php:551
73
+ #: class-wpzoom-instagram-widget.php:232
74
+ msgid "and re-connect your account."
75
  msgstr ""
76
 
77
+ #: class-wpzoom-instagram-widget-api.php:103
78
+ msgid "Before Access Token Expires"
79
  msgstr ""
80
 
81
+ #: class-wpzoom-instagram-widget.php:792
82
+ msgid "Button Text:"
83
  msgstr ""
84
 
85
+ #: class-wpzoom-instagram-widget.php:689
86
+ msgid "By Default Algorithm"
87
  msgstr ""
88
 
89
+ #: instagram-widget-by-wpzoom.php:55
90
+ msgid "connect"
91
  msgstr ""
92
 
93
+ #: class-wpzoom-instagram-image-uploader.php:140
94
+ msgid "Could not retrieve image url with provided media id"
95
  msgstr ""
96
 
97
+ #: class-wpzoom-instagram-widget.php:676
98
+ msgid "Desired Image width in pixels:"
99
  msgstr ""
100
 
101
+ #: class-wpzoom-instagram-widget.php:669
102
+ msgid "Desired number of Images per row:"
103
  msgstr ""
104
 
105
+ #: class-wpzoom-instagram-widget.php:26
106
+ msgid "Displays a user's Instagram timeline."
107
  msgstr ""
108
 
109
+ #: class-wpzoom-instagram-widget-api.php:422
110
+ msgid "Empty json user info from Public Feed."
111
  msgstr ""
112
 
113
+ #: class-wpzoom-instagram-widget.php:716
114
+ msgid ""
115
+ "Fields above do not influence directly widget appearance. Final number of "
116
+ "images per row and image width is calculated depending on browser resolution."
117
+ " This ensures your photos look beautiful on all devices."
118
  msgstr ""
119
 
120
+ #: class-wpzoom-instagram-widget.php:277
121
+ msgid "Follow"
122
  msgstr ""
123
 
124
+ #: class-wpzoom-instagram-widget.php:300
125
+ msgid "followers"
126
  msgstr ""
127
 
128
+ #: class-wpzoom-instagram-widget.php:311
129
+ msgid "following"
130
  msgstr ""
131
 
132
+ #: class-wpzoom-instagram-widget.php:685
133
+ msgid "Force image resolution:"
134
  msgstr ""
135
 
136
+ #: class-wpzoom-instagram-widget-api.php:454
137
+ msgid "Get items from the Instagram API Feed failed. Malformed data structure."
138
  msgstr ""
139
 
140
+ #: class-wpzoom-instagram-widget-api.php:442
141
+ msgid "Get items from the Public Feed failed. Invalid response."
142
  msgstr ""
143
 
144
+ #: class-wpzoom-instagram-widget-api.php:446
145
+ msgid "Get items from the Public Feed failed. Malformed data structure."
 
146
  msgstr ""
147
 
148
+ #: class-wpzoom-instagram-widget-api.php:458
149
+ msgid "Get user data from the Instagram API Feed failed. Invalid response."
 
 
 
150
  msgstr ""
151
 
152
+ #: class-wpzoom-instagram-widget-api.php:462
153
  msgid ""
154
+ "Get user data from the Instagram API Feed failed. Malformed data structure."
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
155
  msgstr ""
156
 
157
+ #: class-wpzoom-instagram-widget-api.php:450
158
+ msgid "Geting items from the Instagram API Feed failed. Invalid response."
 
 
 
 
 
 
 
159
  msgstr ""
160
 
161
+ #: class-wpzoom-instagram-widget.php:783
162
+ msgid "Hide video <strong>thumbnails</strong>"
 
 
 
163
  msgstr ""
164
 
165
+ #. Author URI of the plugin
166
+ msgid "https://www.wpzoom.com/"
 
 
167
  msgstr ""
168
 
169
+ #. URI of the plugin
170
+ msgid "https://www.wpzoom.com/plugins/instagram-widget/"
 
 
 
 
171
  msgstr ""
172
 
173
+ #: class-wpzoom-instagram-widget.php:732
174
  msgid ""
175
+ "If you have already connected your Instagram account in the <a href=\"%1$s\">"
176
+ "plugin settings</a>, leave this field empty. You can use this option if you "
177
+ "want to display the feed of a different Instagram account."
178
  msgstr ""
179
 
180
+ #: instagram-widget-by-wpzoom.php:55
181
  msgid ""
182
+ "If you have just installed or updated this plugin, please go to the %1$s and "
183
+ "%2$s it with your Instagram account."
184
  msgstr ""
185
 
186
+ #: class-wpzoom-instagram-widget.php:705
187
+ msgid "Image spacing in pixels:"
 
 
 
 
188
  msgstr ""
189
 
190
+ #: class-wpzoom-instagram-widget.php:31
191
+ msgid "Instagram"
 
192
  msgstr ""
193
 
194
+ #: class-wpzoom-instagram-widget.php:722
195
+ msgid "Instagram @username:"
196
  msgstr ""
197
 
198
+ #: class-wpzoom-instagram-widget-display.php:550
199
+ #: class-wpzoom-instagram-widget.php:232
200
+ msgid "Instagram Settings Page"
201
  msgstr ""
202
 
 
203
  #: class-wpzoom-instagram-widget.php:23
204
+ msgid "Instagram Widget by WPZOOM (Legacy)"
205
  msgstr ""
206
 
207
+ #: class-wpzoom-instagram-widget-display.php:548
208
+ #: class-wpzoom-instagram-widget.php:231
 
 
 
209
  msgid ""
210
+ "Instagram Widget misconfigured or your Access Token <strong>expired</strong>."
211
+ " Please check"
 
 
 
 
 
 
212
  msgstr ""
213
 
214
+ #: class-wpzoom-instagram-widget-api.php:182
215
+ msgid "Instagram Widget Settings"
 
 
 
216
  msgstr ""
217
 
218
+ #: class-wpzoom-instagram-image-uploader.php:140
219
+ msgid "Invalid media id."
220
  msgstr ""
221
 
222
+ #: class-wpzoom-instagram-image-uploader.php:132
223
+ msgid "Invalid nonce provided for this action"
 
 
 
224
  msgstr ""
225
 
226
+ #: class-wpzoom-instagram-image-uploader.php:132
227
+ msgid "Invalid nonce."
 
 
228
  msgstr ""
229
 
230
+ #: class-wpzoom-instagram-widget.php:771
231
+ msgid "Lazy Load <strong>images</strong>"
232
  msgstr ""
233
 
234
+ #: class-wpzoom-instagram-widget-display.php:290
235
+ msgid "Load More"
236
  msgstr ""
237
 
238
+ #: class-wpzoom-instagram-widget.php:695
239
+ msgid "Low Resolution ( 320x320px )"
240
  msgstr ""
241
 
242
+ #: class-wpzoom-instagram-widget.php:662
243
+ msgid "Number of Images Shown:"
 
 
244
  msgstr ""
245
 
246
+ #: class-wpzoom-instagram-widget.php:777
247
+ msgid "Open items in a <strong>lightbox</strong>"
248
  msgstr ""
249
 
250
+ #: instagram-widget-by-wpzoom.php:54
251
+ msgid "Please configure Instagram Widget"
252
  msgstr ""
253
 
254
+ #: class-wpzoom-instagram-widget-display.php:314
255
+ msgid "Please select an account in the panel to the left&hellip;"
256
  msgstr ""
257
 
258
+ #: class-wpzoom-instagram-widget.php:289
259
  msgid "posts"
260
  msgstr ""
261
 
262
+ #: instagram-widget-by-wpzoom.php:55
263
+ msgid "Settings page"
264
  msgstr ""
265
 
266
+ #: class-wpzoom-instagram-widget.php:789
267
+ msgid "Show <strong>media type icons</strong>"
268
  msgstr ""
269
 
270
+ #. Description of the plugin
271
  msgid ""
272
+ "Showcase your Instagram Feeds on your WordPress site in seconds! Instagram "
273
+ "Widget is a customizable and responsive plugin, made to help you gain even "
274
+ "more followers by showcasing your Instagram feed on your WordPress website."
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
275
  msgstr ""
276
 
277
+ #: class-wpzoom-instagram-widget-api.php:165
278
+ msgid "Something wrong! Doesn't isset $data->error."
279
  msgstr ""
280
 
281
+ #: class-wpzoom-instagram-widget.php:699
 
 
 
 
 
 
 
 
 
 
 
 
282
  msgid "Standard Resolution ( 640x640px )"
283
  msgstr ""
284
 
285
+ #: class-wpzoom-instagram-widget-api.php:434
286
+ msgid "The request from the Public Feed failed. Check username."
287
  msgstr ""
288
 
289
+ #: class-wpzoom-instagram-widget-api.php:438
290
  msgid ""
291
+ "The request from the Public Feed failed. Invalid JSON format from parsed "
292
+ "html body."
 
 
 
 
 
293
  msgstr ""
294
 
295
+ #: class-wpzoom-instagram-widget-api.php:430
296
  msgid ""
297
+ "The request from the Public Feed failed. Invalid JSON format from Public "
298
+ "JSON API url."
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
299
  msgstr ""
300
 
301
+ #: class-wpzoom-instagram-widget-api.php:426
302
+ msgid ""
303
+ "The request from the Public Feed failed. Invalid server response from Public "
304
+ "JSON API url."
305
  msgstr ""
306
 
307
+ #: class-wpzoom-instagram-widget-display.php:99
308
+ #: class-wpzoom-instagram-widget-display.php:127
309
+ msgid ""
310
+ "There was a problem displaying the selected feed. Please check the "
311
+ "configuration..."
312
  msgstr ""
313
 
314
+ #: class-wpzoom-instagram-widget.php:692
315
+ msgid "Thumbnail ( 150x150px )"
316
  msgstr ""
317
 
318
+ #: class-wpzoom-instagram-widget.php:654
319
+ msgid "Title:"
320
  msgstr ""
321
 
322
+ #: class-wpzoom-instagram-widget-display.php:276
323
+ #: class-wpzoom-instagram-widget.php:32
324
+ msgid "View on Instagram"
325
  msgstr ""
326
 
327
+ #: class-wpzoom-instagram-widget-api.php:182
328
+ #, php-format
329
  msgid ""
330
+ "We cannot update access tokens automatically for Instagram private accounts. "
331
+ "You need to manually generate a new access token, reauthorize here: %1$s"
 
 
 
 
332
  msgstr ""
333
 
334
+ #. Author of the plugin
335
+ msgid "WPZOOM"
336
  msgstr ""
337
 
338
+ #: class-wpzoom-instagram-block.php:134
339
+ msgid "WPZOOM - Blocks"
340
  msgstr ""
341
 
342
+ #. Name of the plugin
343
  msgid "WPZOOM Instagram Widget"
344
  msgstr ""
345
 
346
+ #: instagram-widget-by-wpzoom.php:56
347
+ msgid ""
348
+ "You have to generate Instagram Access Token to allow widget to display your "
349
+ "media."
 
 
350
  msgstr ""
351
 
352
+ #: class-wpzoom-instagram-widget.php:645
353
+ msgid ""
354
+ "You need to configure <a href=\"%1$s\">plugin settings</a> before using this "
355
+ "widget."
356
  msgstr ""
 
 
 
 
postcss.config.js ADDED
@@ -0,0 +1,67 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ module.exports = {
2
+ ident: 'postcss',
3
+ plugins: [
4
+ require( '@wordpress/postcss-themes' )( {
5
+ defaults: {
6
+ primary: '#0085ba',
7
+ secondary: '#11a0d2',
8
+ toggle: '#11a0d2',
9
+ button: '#0085ba',
10
+ outlines: '#007cba',
11
+ },
12
+ themes: {
13
+ 'admin-color-light': {
14
+ primary: '#0085ba',
15
+ secondary: '#c75726',
16
+ toggle: '#11a0d2',
17
+ button: '#0085ba',
18
+ outlines: '#007cba',
19
+ },
20
+ 'admin-color-blue': {
21
+ primary: '#82b4cb',
22
+ secondary: '#d9ab59',
23
+ toggle: '#82b4cb',
24
+ button: '#d9ab59',
25
+ outlines: '#417e9B',
26
+ },
27
+ 'admin-color-coffee': {
28
+ primary: '#c2a68c',
29
+ secondary: '#9fa47b',
30
+ toggle: '#c2a68c',
31
+ button: '#c2a68c',
32
+ outlines: '#59524c',
33
+ },
34
+ 'admin-color-ectoplasm': {
35
+ primary: '#a7b656',
36
+ secondary: '#c77430',
37
+ toggle: '#a7b656',
38
+ button: '#a7b656',
39
+ outlines: '#523f6d',
40
+ },
41
+ 'admin-color-midnight': {
42
+ primary: '#e14d43',
43
+ secondary: '#77a6b9',
44
+ toggle: '#77a6b9',
45
+ button: '#e14d43',
46
+ outlines: '#497b8d',
47
+ },
48
+ 'admin-color-ocean': {
49
+ primary: '#a3b9a2',
50
+ secondary: '#a89d8a',
51
+ toggle: '#a3b9a2',
52
+ button: '#a3b9a2',
53
+ outlines: '#5e7d5e',
54
+ },
55
+ 'admin-color-sunrise': {
56
+ primary: '#d1864a',
57
+ secondary: '#c8b03c',
58
+ toggle: '#c8b03c',
59
+ button: '#d1864a',
60
+ outlines: '#837425',
61
+ },
62
+ },
63
+ } ),
64
+ require( 'autoprefixer' ),
65
+ require( 'postcss-color-function' ),
66
+ ],
67
+ };
readme.txt CHANGED
@@ -1,4 +1,4 @@
1
- === WPZOOM Social Feed Widget ===
2
  Contributors: WPZOOM, nvartolomei, ciorici
3
  Donate link: https://www.wpzoom.com/
4
  Tags: instagram, instagram feed, instagram gallery, instagram photos, instagram widget, instagram stories, widget, timeline, social network, latest images, feed, story, stories, insta
@@ -13,7 +13,12 @@ Formerly known as "Instagram Widget by WPZOOM". Simple and lightweight widget fo
13
 
14
  == Description ==
15
 
16
- Formerly known as *Instagram Widget by WPZOOM*, **WPZOOM Social Feed Widget** is a simple and lightweight widget for WordPress to display your **Instagram feed**.
 
 
 
 
 
17
 
18
 
19
  **[View Demo](https://demo.wpzoom.com/instagram-widget/)**
@@ -25,14 +30,27 @@ Formerly known as *Instagram Widget by WPZOOM*, **WPZOOM Social Feed Widget** is
25
  **WPZOOM Social Feed Widget** gives you a WordPress Widget that you can place anywhere you want to display your Instagram Feed. Easy setup and configuration!
26
 
27
 
28
- = Features =
29
 
30
- * **Lightbox** 🆕
 
 
 
 
31
  * Add your custom avatar and bio
32
  * Supports Lazy Loading
33
- * Lighweight plugin
34
  * Works with the new WordPress 5.8 block-based widgets screen
35
 
 
 
 
 
 
 
 
 
 
 
36
 
37
  = Where I can view a Demo? =
38
 
@@ -55,22 +73,33 @@ Once connected, go to the **Widgets** page and add the widget **Instagram Widget
55
 
56
  == Frequently Asked Questions ==
57
 
58
- = I just installed plugin and widget shows nothing =
59
 
60
- Make sure to connect your Instagram account with the plugin. You can do that in the **Settings > Instagram Widget** page from the Dashboard.
61
 
62
 
63
  == Screenshots ==
64
 
65
- 1. Examples of how the widget can be used
66
- 2. More examples
67
- 3. Perfect for Sidebar or Footer column
68
- 4. Customized button using CSS
69
- 5. Settings
70
 
71
 
72
  == Changelog ==
73
 
 
 
 
 
 
 
 
 
 
 
 
74
  = 1.9.5 =
75
  * Fixed a bug with the lightbox not working in specific themes, including Divi
76
 
@@ -240,5 +269,5 @@ Make sure to connect your Instagram account with the plugin. You can do that in
240
 
241
  == Upgrade Notice ==
242
 
243
- = 1.6.0 =
244
- ⚠️ IMPORTANT: On June 29, Instagram will stop supporting its old API which will disrupt feeds created using the old API. If your Instagram account is connected in the plugin settings, you will need to reconnect it again using the new API.
1
+ === WPZOOM Social Feed Widget & Block ===
2
  Contributors: WPZOOM, nvartolomei, ciorici
3
  Donate link: https://www.wpzoom.com/
4
  Tags: instagram, instagram feed, instagram gallery, instagram photos, instagram widget, instagram stories, widget, timeline, social network, latest images, feed, story, stories, insta
13
 
14
  == Description ==
15
 
16
+ ⭐️ **[Instagram Widget & Block PRO](https://www.wpzoom.com/plugins/instagram-widget/?utm_source=wporg&utm_medium=website&utm_campaign=free_description)** *NOW AVAILABLE!* ⭐️
17
+
18
+
19
+ **Showcase your Instagram Feeds on your WordPress site in seconds!**
20
+
21
+ Formerly known as *Instagram Widget by WPZOOM*, **WPZOOM Social Feed Widget** is a customizable and responsive plugin, made to help you gain even more followers by showcasing your Instagram feed on your WordPress website.
22
 
23
 
24
  **[View Demo](https://demo.wpzoom.com/instagram-widget/)**
30
  **WPZOOM Social Feed Widget** gives you a WordPress Widget that you can place anywhere you want to display your Instagram Feed. Easy setup and configuration!
31
 
32
 
33
+ = 📌 FEATURES =
34
 
35
+ * **Create Multiple Feeds** 🆕
36
+ * **Gutenberg Block** 🆕
37
+ * **Embed using Shortcode in Elementor and other page builders** 🆕
38
+ * **Multiple Layouts** 🆕
39
+ * **Lightbox**
40
  * Add your custom avatar and bio
41
  * Supports Lazy Loading
 
42
  * Works with the new WordPress 5.8 block-based widgets screen
43
 
44
+ = ⭐️ PRO FEATURES ⭐️ =
45
+ * **Connect Multiple Instagram Accounts - 🆕**
46
+ * **Masonry Layout - 🆕**
47
+ * **Load More button - 🆕**
48
+ * **Customize Colors - 🆕**
49
+ * Premium Support
50
+ * and many new features coming soon!
51
+
52
+ ⭐️ **[Get the PRO version!](https://www.wpzoom.com/plugins/instagram-widget/?utm_source=wporg&utm_medium=website&utm_campaign=free_description)** ⭐️
53
+
54
 
55
  = Where I can view a Demo? =
56
 
73
 
74
  == Frequently Asked Questions ==
75
 
76
+ = How do I create a new Instagram feed? =
77
 
78
+ Go to the **Instagram Widget** section in the WordPress Dashboard and connect your Instagram account. After that, create a new Feed and embed it in your posts or pages using the available Block or shortcode.
79
 
80
 
81
  == Screenshots ==
82
 
83
+ 1. Creating a new feed
84
+ 2. Manage feeds
85
+ 3. Instagram Block for Gutenberg
86
+ 4. Customize
87
+ 5. Embed the shortcode in Elementor
88
 
89
 
90
  == Changelog ==
91
 
92
+ = 2.0.0 =
93
+ * We've made our plugin better and more user-friendly!
94
+ * New: Gutenberg block
95
+ * New: Create multiple feeds with different configurations
96
+ * New: Embed your Instagram feeds using a shortcode anywhere you want
97
+ * New: Customize the colors
98
+ * New: Full-width layout
99
+ * New: Connect multiple Instagram accounts [PRO only]
100
+ * New: Masonry Layout [PRO only]
101
+ * New: Load More button [PRO only]
102
+
103
  = 1.9.5 =
104
  * Fixed a bug with the lightbox not working in specific themes, including Divi
105
 
269
 
270
  == Upgrade Notice ==
271
 
272
+ = 2.0.0 =
273
+ ⚠️ IMPORTANT: Version 2.0 includes major changes in the plugin. Existing Instagram widgets will not be affected, but we highly recommend creating a new feed in the new section "Instagram Widget" and embedding it using the new Gutenberg block or shortcode.
src/images/backend/user-avatar.jpg ADDED
Binary file
src/images/frontend/wpzoom-instagram-icons.svg ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <svg xmlns="http://www.w3.org/2000/svg">
3
+ <symbol xmlns="http://www.w3.org/2000/svg" id="carousel_album" viewBox="0 0 512 512" fill="#ffffff">
4
+ <path d="M464 0c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48H176c-26.51 0-48-21.49-48-48V48c0-26.51 21.49-48 48-48h288M176 416c-44.112 0-80-35.888-80-80V128H48c-26.51 0-48 21.49-48 48v288c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48v-48H176z"/>
5
+ </symbol>
6
+ <symbol xmlns="http://www.w3.org/2000/svg" id="video" viewBox="0 0 576 512" fill="#ffffff">
7
+ <path d="M336.2 64H47.8C21.4 64 0 85.4 0 111.8v288.4C0 426.6 21.4 448 47.8 448h288.4c26.4 0 47.8-21.4 47.8-47.8V111.8c0-26.4-21.4-47.8-47.8-47.8zm189.4 37.7L416 177.3v157.4l109.6 75.5c21.2 14.6 50.4-.3 50.4-25.8V127.5c0-25.4-29.1-40.4-50.4-25.8z"/>
8
+ </symbol>
9
+ </svg>
src/scripts/backend/block.js ADDED
@@ -0,0 +1,165 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import { isUndefined, pickBy } from 'lodash';
2
+ import { registerBlockType } from '@wordpress/blocks';
3
+ import { __ } from '@wordpress/i18n';
4
+ import { useBlockProps, InspectorControls } from '@wordpress/block-editor';
5
+ import { useSelect } from '@wordpress/data';
6
+ import { store as coreStore } from '@wordpress/core-data';
7
+ import CustomServerSideRender from './custom-server-side-render';
8
+ import {
9
+ __experimentalHeading as Heading,
10
+ Flex,
11
+ FlexItem,
12
+ Icon,
13
+ PanelBody,
14
+ SelectControl,
15
+ Spinner,
16
+ Placeholder,
17
+ Card,
18
+ CardHeader,
19
+ CardBody
20
+ } from '@wordpress/components';
21
+
22
+ const {fetch: origFetch} = window;
23
+ window.fetch = async (...args) => {
24
+ const requestUrl = args.length > 0 ? args[0] : '';
25
+ const response = await origFetch(...args);
26
+
27
+ if ( requestUrl.includes( 'wpzoom/instagram-block' ) ) {
28
+ response
29
+ .clone()
30
+ .json()
31
+ .then( body => window.setTimeout( () => window.wpzInstaFrontendInit(), 300 ) )
32
+ .catch( err => console.error( err ) )
33
+ ;
34
+ }
35
+
36
+ return response;
37
+ };
38
+
39
+ registerBlockType( 'wpzoom/instagram-block', {
40
+ apiVersion: 2,
41
+ title: 'Instagram Feed by WPZOOM',
42
+ icon: 'instagram',
43
+ category: 'wpzoom-blocks',
44
+ attributes: {
45
+ feed: {
46
+ type: 'integer',
47
+ default: -1,
48
+ },
49
+ },
50
+
51
+ edit: function ( props ) {
52
+ const {
53
+ attributes: { feed },
54
+ setAttributes,
55
+ className,
56
+ } = props;
57
+ const blockProps = useBlockProps();
58
+ const {
59
+ feedsList,
60
+ } = useSelect(
61
+ ( select ) => {
62
+ const { getEntityRecords } = select( coreStore );
63
+ const feeds = getEntityRecords(
64
+ 'postType',
65
+ 'wpz-insta_feed',
66
+ pickBy( { per_page: -1 }, ( value ) => ! isUndefined( value ) )
67
+ );
68
+
69
+ return {
70
+ feedsList: ! Array.isArray( feeds )
71
+ ? feeds
72
+ : feeds.map( ( feed ) => {
73
+ return {
74
+ value: feed.id,
75
+ label: 'title' in feed && 'rendered' in feed.title ? feed.title.rendered : __( '(No title)', 'instagram-widget-by-wpzoom' ),
76
+ };
77
+ } ),
78
+ }
79
+ }
80
+ );
81
+ const hasFeeds = !! feedsList?.length;
82
+
83
+ if ( ! hasFeeds ) {
84
+ return (
85
+ <div { ...blockProps }>
86
+ <Placeholder icon="instagram" label={ __( 'Instagram Feed by WPZOOM' ) }>
87
+ { ! Array.isArray( feedsList ) ? (
88
+ <Spinner />
89
+ ) : (
90
+ __( 'You must create some feeds to use this block properly.', 'instagram-widget-by-wpzoom' )
91
+ ) }
92
+ </Placeholder>
93
+ </div>
94
+ );
95
+ }
96
+
97
+ return (
98
+ <div { ...blockProps }>
99
+ {
100
+ <InspectorControls>
101
+ <PanelBody title={ __( 'Feed settings', 'instagram-widget-by-wpzoom' ) }>
102
+ <SelectControl
103
+ label={ __( 'Feed to Display', 'instagram-widget-by-wpzoom' ) }
104
+ value={ feed }
105
+ options={ [
106
+ {
107
+ label: __( '\u2014 Select a Feed \u2014', 'instagram-widget-by-wpzoom' ),
108
+ value: -1,
109
+ disabled: true,
110
+ hidden: true,
111
+ },
112
+ ...feedsList
113
+ ] }
114
+ onChange={ ( newFeed ) => {
115
+ setAttributes( { feed: Number( newFeed ) } );
116
+ } }
117
+ />
118
+ </PanelBody>
119
+ </InspectorControls>
120
+ }
121
+ {
122
+ feed > 0 ?
123
+ (
124
+ <CustomServerSideRender
125
+ block="wpzoom/instagram-block"
126
+ attributes={ props.attributes }
127
+ EmptyResponsePlaceholder={ () => (
128
+ <span>{ __( 'Instagram: No feed to show.', 'instagram-widget-by-wpzoom' ) }</span>
129
+ ) }
130
+ />
131
+ )
132
+ :
133
+ (
134
+ <Card size="large">
135
+ <CardHeader>
136
+ <Flex align="center" justify="start" gap={ 2 } wrap={ true }>
137
+ <Icon icon="instagram" />
138
+ <Heading level="5">{ __( 'Instagram Feed by WPZOOM', 'instagram-widget-by-wpzoom' ) }</Heading>
139
+ </Flex>
140
+ </CardHeader>
141
+ <CardBody>
142
+ <SelectControl
143
+ className='wpzoom-instagram-widget-select-feed'
144
+ value={ feed }
145
+ options={ [
146
+ {
147
+ label: __( '\u2014 Select a Feed to Display \u2014', 'instagram-widget-by-wpzoom' ),
148
+ value: -1,
149
+ disabled: true,
150
+ hidden: true,
151
+ },
152
+ ...feedsList
153
+ ] }
154
+ onChange={ ( newFeed ) => {
155
+ setAttributes( { feed: Number( newFeed ) } );
156
+ } }
157
+ />
158
+ </CardBody>
159
+ </Card>
160
+ )
161
+ }
162
+ </div>
163
+ );
164
+ },
165
+ } );
src/scripts/backend/custom-server-side-render/custom-server-side-render.js ADDED
@@ -0,0 +1,208 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * External dependencies
3
+ */
4
+ import { isEqual } from 'lodash';
5
+
6
+ /**
7
+ * WordPress dependencies
8
+ */
9
+ import { useDebounce, usePrevious } from '@wordpress/compose';
10
+ import { RawHTML, useEffect, useRef, useState } from '@wordpress/element';
11
+ import { __, sprintf } from '@wordpress/i18n';
12
+ import apiFetch from '@wordpress/api-fetch';
13
+ import { addQueryArgs } from '@wordpress/url';
14
+ import { Placeholder, Spinner } from '@wordpress/components';
15
+ import { __experimentalSanitizeBlockAttributes } from '@wordpress/blocks';
16
+
17
+ export function rendererPath( block, attributes = null, urlQueryArgs = {} ) {
18
+ return addQueryArgs( `/wp/v2/block-renderer/${ block }`, {
19
+ context: 'edit',
20
+ ...( null !== attributes ? { attributes } : {} ),
21
+ ...urlQueryArgs,
22
+ } );
23
+ }
24
+
25
+ function DefaultEmptyResponsePlaceholder( { className } ) {
26
+ return (
27
+ <Placeholder className={ className }>
28
+ { __( 'Block rendered as empty.' ) }
29
+ </Placeholder>
30
+ );
31
+ }
32
+
33
+ function DefaultErrorResponsePlaceholder( { response, className } ) {
34
+ const errorMessage = sprintf(
35
+ // translators: %s: error message describing the problem
36
+ __( 'Error loading block: %s' ),
37
+ response.errorMsg
38
+ );
39
+ return <Placeholder className={ className }>{ errorMessage }</Placeholder>;
40
+ }
41
+
42
+ function DefaultLoadingResponsePlaceholder( { children, showLoader } ) {
43
+ return (
44
+ <div style={ { position: 'relative' } }>
45
+ { showLoader && (
46
+ <div
47
+ style={ {
48
+ position: 'absolute',
49
+ top: '50%',
50
+ left: '50%',
51
+ marginTop: '-9px',
52
+ marginLeft: '-9px',
53
+ } }
54
+ >
55
+ <Spinner />
56
+ </div>
57
+ ) }
58
+ <div style={ { opacity: showLoader ? '0.3' : 1 } }>
59
+ { children }
60
+ </div>
61
+ </div>
62
+ );
63
+ }
64
+
65
+ export default function CustomServerSideRender( props ) {
66
+ const {
67
+ attributes,
68
+ block,
69
+ className,
70
+ httpMethod = 'GET',
71
+ urlQueryArgs,
72
+ EmptyResponsePlaceholder = DefaultEmptyResponsePlaceholder,
73
+ ErrorResponsePlaceholder = DefaultErrorResponsePlaceholder,
74
+ LoadingResponsePlaceholder = DefaultLoadingResponsePlaceholder,
75
+ } = props;
76
+
77
+ const isMountedRef = useRef( true );
78
+ const [ showLoader, setShowLoader ] = useState( false );
79
+ const fetchRequestRef = useRef();
80
+ const [ response, setResponse ] = useState( null );
81
+ const prevProps = usePrevious( props );
82
+ const [ isLoading, setIsLoading ] = useState( false );
83
+
84
+ function fetchData() {
85
+ if ( ! isMountedRef.current ) {
86
+ return;
87
+ }
88
+
89
+ setIsLoading( true );
90
+
91
+ const sanitizedAttributes =
92
+ attributes &&
93
+ __experimentalSanitizeBlockAttributes( block, attributes );
94
+
95
+ // If httpMethod is 'POST', send the attributes in the request body instead of the URL.
96
+ // This allows sending a larger attributes object than in a GET request, where the attributes are in the URL.
97
+ const isPostRequest = 'POST' === httpMethod;
98
+ const urlAttributes = isPostRequest
99
+ ? null
100
+ : sanitizedAttributes ?? null;
101
+ const path = rendererPath( block, urlAttributes, urlQueryArgs );
102
+ const data = isPostRequest
103
+ ? { attributes: sanitizedAttributes ?? null }
104
+ : null;
105
+
106
+ // Store the latest fetch request so that when we process it, we can
107
+ // check if it is the current request, to avoid race conditions on slow networks.
108
+ const fetchRequest = ( fetchRequestRef.current = apiFetch( {
109
+ path,
110
+ data,
111
+ method: isPostRequest ? 'POST' : 'GET',
112
+ } )
113
+ .then( ( fetchResponse ) => {
114
+ if (
115
+ isMountedRef.current &&
116
+ fetchRequest === fetchRequestRef.current &&
117
+ fetchResponse
118
+ ) {
119
+ setResponse( fetchResponse.rendered );
120
+ }
121
+ } )
122
+ .catch( ( error ) => {
123
+ if (
124
+ isMountedRef.current &&
125
+ fetchRequest === fetchRequestRef.current
126
+ ) {
127
+ setResponse( {
128
+ error: true,
129
+ errorMsg: error.message,
130
+ } );
131
+ }
132
+ } )
133
+ .finally( () => {
134
+ if (
135
+ isMountedRef.current &&
136
+ fetchRequest === fetchRequestRef.current
137
+ ) {
138
+ setIsLoading( false );
139
+
140
+ setTimeout( () => {
141
+ window.dispatchEvent( new Event( 'wpzInstaServerSideRenderDone' ) );
142
+ }, 300 );
143
+ }
144
+ } ) );
145
+
146
+ return fetchRequest;
147
+ }
148
+
149
+ const debouncedFetchData = useDebounce( fetchData, 500 );
150
+
151
+ // When the component unmounts, set isMountedRef to false. This will
152
+ // let the async fetch callbacks know when to stop.
153
+ useEffect(
154
+ () => () => {
155
+ isMountedRef.current = false;
156
+ },
157
+ []
158
+ );
159
+
160
+ useEffect( () => {
161
+ // Don't debounce the first fetch. This ensures that the first render
162
+ // shows data as soon as possible.
163
+ if ( prevProps === undefined ) {
164
+ fetchData();
165
+ } else if ( ! isEqual( prevProps, props ) ) {
166
+ debouncedFetchData();
167
+ }
168
+ } );
169
+
170
+ /**
171
+ * Effect to handle showing the loading placeholder.
172
+ * Show it only if there is no previous response or
173
+ * the request takes more than one second.
174
+ */
175
+ useEffect( () => {
176
+ if ( ! isLoading ) {
177
+ return;
178
+ }
179
+ const timeout = setTimeout( () => {
180
+ setShowLoader( true );
181
+ }, 1000 );
182
+ return () => clearTimeout( timeout );
183
+ }, [ isLoading ] );
184
+
185
+ const hasResponse = !! response;
186
+ const hasEmptyResponse = response === '';
187
+ const hasError = response?.error;
188
+
189
+ if ( isLoading ) {
190
+ return (
191
+ <LoadingResponsePlaceholder { ...props } showLoader={ showLoader }>
192
+ { hasResponse && (
193
+ <RawHTML className={ className }>{ response }</RawHTML>
194
+ ) }
195
+ </LoadingResponsePlaceholder>
196
+ );
197
+ }
198
+
199
+ if ( hasEmptyResponse || ! hasResponse ) {
200
+ return <EmptyResponsePlaceholder { ...props } />;
201
+ }
202
+
203
+ if ( hasError ) {
204
+ return <ErrorResponsePlaceholder response={ response } { ...props } />;
205
+ }
206
+
207
+ return <RawHTML className={ className }>{ response }</RawHTML>;
208
+ }
src/scripts/backend/custom-server-side-render/index.js ADDED
@@ -0,0 +1,50 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * WordPress dependencies
3
+ */
4
+ import { useMemo, forwardRef } from '@wordpress/element';
5
+ import { withSelect } from '@wordpress/data';
6
+ import deprecated from '@wordpress/deprecated';
7
+
8
+ /**
9
+ * Internal dependencies
10
+ */
11
+ import CustomServerSideRender from './custom-server-side-render';
12
+
13
+ /**
14
+ * Constants
15
+ */
16
+ const EMPTY_OBJECT = {};
17
+
18
+ const ExportedCustomServerSideRender = withSelect( ( select ) => {
19
+ // FIXME: @wordpress/server-side-render should not depend on @wordpress/editor.
20
+ // It is used by blocks that can be loaded into a *non-post* block editor.
21
+ // eslint-disable-next-line @wordpress/data-no-store-string-literals
22
+ const coreEditorSelect = select( 'core/editor' );
23
+ if ( coreEditorSelect ) {
24
+ const currentPostId = coreEditorSelect.getCurrentPostId();
25
+ // For templates and template parts we use a custom ID format.
26
+ // Since they aren't real posts, we don't want to use their ID
27
+ // for server-side rendering. Since they use a string based ID,
28
+ // we can assume real post IDs are numbers.
29
+ if ( currentPostId && typeof currentPostId === 'number' ) {
30
+ return {
31
+ currentPostId,
32
+ };
33
+ }
34
+ }
35
+ return EMPTY_OBJECT;
36
+ } )( ( { urlQueryArgs = EMPTY_OBJECT, currentPostId, ...props } ) => {
37
+ const newUrlQueryArgs = useMemo( () => {
38
+ if ( ! currentPostId ) {
39
+ return urlQueryArgs;
40
+ }
41
+ return {
42
+ post_id: currentPostId,
43
+ ...urlQueryArgs,
44
+ };
45
+ }, [ currentPostId, urlQueryArgs ] );
46
+
47
+ return <CustomServerSideRender urlQueryArgs={ newUrlQueryArgs } { ...props } />;
48
+ } );
49
+
50
+ export default ExportedCustomServerSideRender;
src/scripts/backend/index.js ADDED
@@ -0,0 +1,700 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 'use strict';
2
+
3
+ jQuery( function( $ ) {
4
+ var $imageMediaControlTarget = $();
5
+
6
+ $.fn.imageMediaControl = function () {
7
+
8
+ this.each(function () {
9
+ var $this = $(this);
10
+
11
+ var mediaControl = {
12
+ // Initializes a new media manager or returns an existing frame.
13
+ // @see wp.media.featuredImage.frame()
14
+ frame: function () {
15
+ if (this._frame)
16
+ return this._frame;
17
+
18
+ this._frame = wp.media({
19
+ title: $this.data('title'),
20
+ library: {
21
+ type: $this.data('type')
22
+ },
23
+ button: {
24
+ text: $this.data('button')
25
+ },
26
+ multiple: false,
27
+ selection: []
28
+ });
29
+
30
+ this._frame.on('open', this.updateFrame).state('library').on('select', this.select);
31
+
32
+ return this._frame;
33
+ },
34
+ select: function () {
35
+ var $attachmentInput = $this.find('.attachment-input').add($imageMediaControlTarget.find('input#wpz-insta_account-photo'));
36
+ var selection = this.get('selection');
37
+ var attachmentId = selection.pluck('id');
38
+
39
+ $attachmentInput.val('' + attachmentId).trigger('change');
40
+ $imageMediaControlTarget.find('img.wpz-insta_profile-photo').attr('src', '' + selection.first().toJSON().sizes.thumbnail.url);
41
+ },
42
+
43
+ updateFrame: function () {
44
+ },
45
+
46
+ init: function () {
47
+
48
+ var $fileWrapper = $this.find('.file-wrapper');
49
+ var $attachmentInput = $this.find('.attachment-input, #wpz-insta_account-photo');
50
+ var $addButton = $this.find('.add-media, #wpz-insta_edit-account-photo');
51
+ var $removeButton = $this.find('.remove-avatar, #wpz-insta_reset-account-photo');
52
+
53
+ $addButton.on('click', function (e) {
54
+ e.preventDefault();
55
+ $imageMediaControlTarget = $(this).closest('.wpz-insta_account-photo-wrapper');
56
+ mediaControl.frame().open();
57
+ });
58
+
59
+ $removeButton.on('click', function (e) {
60
+ e.preventDefault();
61
+
62
+ $('#the-list input.wpz-insta_profile-photo-input').val('-1').trigger('change');
63
+ $('#the-list img.wpz-insta_profile-photo').attr('src', zoom_instagram_widget_admin.default_user_thumbnail);
64
+ });
65
+
66
+ $attachmentInput.on('change', function (e) {
67
+ e.preventDefault();
68
+
69
+ var attachmentId = $this.find('.attachment-input').val();
70
+ if (!!attachmentId) {
71
+ $addButton.text($this.data('button-replace-text'));
72
+ $removeButton.show();
73
+ var attachment = wp.media.attachment(attachmentId);
74
+ attachment.fetch().then(function (fetched) {
75
+ $fileWrapper.fadeOut(400, function () {
76
+ var imgSrc = fetched.url;
77
+
78
+ if (_.findKey(fetched, 'thumbnail')) {
79
+ imgSrc = fetched.sizes.thumbnail.url;
80
+ }
81
+
82
+ $(this).html('<img width="150" height="150" src="' + imgSrc + '"/>').fadeIn(400);
83
+ });
84
+ });
85
+ } else {
86
+ $fileWrapper.hide();
87
+ $removeButton.hide();
88
+ $addButton.text($this.data('button-add-text'));
89
+ }
90
+ }).trigger('change');
91
+ }
92
+ };
93
+
94
+ mediaControl.frame().on('open', function () {
95
+ var $attachmentInput = $this.find('.attachment-input, #wpz-insta_account-photo');
96
+ var frame = mediaControl.frame();
97
+ var selection = frame.state().get('selection'),
98
+ attachmentId = $attachmentInput.val(),
99
+ attachment = wp.media.attachment(attachmentId);
100
+
101
+ frame.reset();
102
+
103
+ if (attachment.id) {
104
+ selection.add(attachment);
105
+ }
106
+ });
107
+ mediaControl.init();
108
+ });
109
+ }
110
+
111
+ $('.zoom-instagram-user-avatar-media-uploader, .inline-edit-wpz-insta_user .wpz-insta_quick-edit-columns .wpz-insta_two-columns').imageMediaControl();
112
+
113
+ $(window).on('beforeunload', function (e) {
114
+ if ( ! $.isEmptyObject( formChangedValues ) && ! formSubmitted ) {
115
+ e.preventDefault();
116
+ }
117
+ });
118
+
119
+ $('#the-list').on('click', '#wpz-insta_reconnect', function (e) {
120
+ e.preventDefault();
121
+ window.wpzInstaAuthenticateInstagram( $(this).attr('href') );
122
+ });
123
+
124
+ $('.wpzoom-instagram-widget-settings-request-type-wrapper').find('input[type=radio]').on('change', function (e) {
125
+ e.preventDefault();
126
+
127
+ var activeClass = $(this).val();
128
+
129
+ var allDivs = ['with-access-token', 'with-basic-access-token', 'without-access-token'];
130
+
131
+ var inactiveDivs = allDivs.filter(function(item){
132
+ return item !== activeClass;
133
+ });
134
+
135
+ var $formTable = $(this).closest('.form-table');
136
+ $formTable.find('.wpzoom-instagram-widget-' + activeClass + '-group').show();
137
+
138
+ inactiveDivs.forEach(function(inactive){
139
+ $formTable.find('.wpzoom-instagram-widget-' + inactive + '-group').hide();
140
+
141
+ });
142
+ });
143
+
144
+ $('.wpzoom-instagram-widget-settings-request-type-wrapper').find('input[type=radio]:checked').change();
145
+
146
+ setTimeout(
147
+ () => {
148
+ if ( 'hash' in window.location && '' != ('' + window.location.hash).trim() ) {
149
+ let $elem = $('.edit-php.post-type-wpz-insta_user #the-list').find( ('' + window.location.hash).trim() );
150
+
151
+ if ( $elem.length > 0 ) {
152
+ $elem.find('button.editinline').trigger('click');
153
+ }
154
+ }
155
+ },
156
+ 100
157
+ );
158
+
159
+ if ( window.opener && window.location.hash.length > 1 && window.location.hash.includes( 'access_token' ) ) {
160
+ window.opener.wpzInstaHandleReturnedToken( window.location );
161
+ window.close();
162
+ }
163
+
164
+ $( '#screen-meta #wpz-insta_account-photo-hide, #screen-meta #wpz-insta_account-bio-hide, #screen-meta #wpz-insta_account-token-hide, #screen-meta #wpz-insta_actions-hide' ).closest( 'label' ).remove();
165
+
166
+ $('#titlediv').remove();
167
+
168
+ if ( $('#title').length > 0 ) {
169
+ $('#title').attr( 'size', $('#title').val().trim().length + 3 );
170
+ $('#title').on( 'input', function(){ $(this).attr( 'size', $(this).val().trim().length + 3 ); } );
171
+ }
172
+
173
+ if ( $( '.wpz-insta_feed-edit-nav' ).length > 0 ) {
174
+ if ( window.location.hash ) {
175
+ setTab( window.location.hash );
176
+ }
177
+ $( '.wpz-insta_feed-edit-nav a' ).on( 'click', function() { setTab( $( this ).attr( 'href' ) ) } );
178
+ }
179
+
180
+ $( '#wpz-insta_show-pro' ).on( 'change', function( e ) {
181
+ e.preventDefault();
182
+
183
+ $( this ).closest( '.wpz-insta_sidebar' ).toggleClass( 'show-pro', this.checked );
184
+ } );
185
+
186
+ $( '.wpz-insta-wrap .account-options .account-option-button' ).on( 'click', function( e ) {
187
+ e.preventDefault();
188
+
189
+ if ( ! $( this ).is( '.disabled' ) ) {
190
+ if ( $( this ).is( '#wpz-insta_connect-personal' ) || $( this ).is( '#wpz-insta_connect-business' ) ) {
191
+ window.wpzInstaAuthenticateInstagram( $( this ).attr( 'href' ) );
192
+ } else if ( $( this ).is( '#wpz-insta_account-token-button' ) ) {
193
+ window.wpzInstaHandleReturnedToken( $( '#wpz-insta_account-token-input' ).val().trim().replace( /[^a-z0-9-_.]+/gi, '' ), true );
194
+ }
195
+ }
196
+ } );
197
+
198
+ $( '#wpz-insta_account-token-input' ).on( 'input', function() {
199
+ $( '#wpz-insta_account-token-button' ).toggleClass( 'disabled', ( $( '#wpz-insta_account-token-input' ).val().trim().length <= 0 ) );
200
+ } );
201
+
202
+ $( '.wpz-insta_sidebar-section-layout input[name="_wpz-insta_layout"]' ).on( 'change', function() {
203
+ const $colNumOption = $( this ).closest( '.wpz-insta_sidebar-section-layout' ).find( 'input[name="_wpz-insta_col-num"]' ).closest( '.wpz-insta_table-row' ),
204
+ $parentLeftSect = $( this ).closest( '.wpz-insta_sidebar-left-section' ),
205
+ $proFieldset = $parentLeftSect.find( '.wpz-insta_sidebar-section-feed .wpz-insta_show-on-hover fieldset.wpz-insta_feed-only-pro.wpz-insta_pro-only' ),
206
+ $loadMoreOptions = $parentLeftSect.find( '.wpz-insta_sidebar-section-load-more' ),
207
+ $toggleItems = $colNumOption.add( $proFieldset ).add( $loadMoreOptions );
208
+
209
+ $toggleItems.toggleClass( 'hidden', $( this ).val() == '1' );
210
+
211
+ $( '.wpz-insta-admin .wpz-insta_widget-preview .wpz-insta_widget-preview-view' ).toggleClass( 'layout-fullwidth', $( this ).val() == '1' );
212
+ } );
213
+
214
+ $( '#wpz-insta_modal-dialog' ).find( '.wpz-insta_modal-dialog_ok-button, .wpz-insta_modal-dialog_close-button' ).on( 'click', function( e ) {
215
+ e.preventDefault();
216
+
217
+ let $dialog = $('#wpz-insta_modal-dialog');
218
+
219
+ window.wpzInstaCloseConnectDoneDialog( $dialog.hasClass('success'), $dialog.hasClass('update') );
220
+ } );
221
+
222
+ $( '#wpz-insta_feed-user-select-btn' ).on( 'click', function( e ) {
223
+ e.preventDefault();
224
+
225
+ $( '#wpz-insta_tabs-config-cnnct' )
226
+ .removeClass( 'active' )
227
+ .addClass( 'active' )
228
+ .prev( '.wpz-insta_sidebar' )
229
+ .removeClass( 'active' );
230
+
231
+ $( '#wpz-insta_tabs-config-cnnct' ).closest( '.wpz-insta_tabs-content' ).find( '> .wpz-insta_sidebar').addClass( 'hide' );
232
+ } );
233
+
234
+ $( '#wpz-insta_feed-user-remove-btn' ).on( 'click', function( e ) {
235
+ e.preventDefault();
236
+
237
+ let $btn = $( '#wpz-insta_feed-user-select-btn' ),
238
+ $select = $btn.closest( '.wpz-insta_feed-user-select' ),
239
+ $info = $select.find( '.wpz-insta_feed-user-select-info' );
240
+
241
+ $( '#wpz-insta_user-id' ).val( '-1' ).trigger( 'change' );
242
+ $( '#wpz-insta_user-token' ).val( '-1' ).trigger( 'change' );
243
+
244
+ $( '#wpz-insta_user-token, #wpz-insta_check-new-posts-interval-number, #wpz-insta_enable-request-timeout' )
245
+ .closest( '.wpz-insta_sidebar-section' )
246
+ .removeClass( 'active' );
247
+
248
+ $( '#wpz-insta_widget-preview-links' ).addClass( 'disabled' );
249
+
250
+ $select.removeClass( 'is-set' );
251
+ $info.find( '.wpz-insta_feed-user-select-info-name' ).html( 'None' );
252
+ $info.find( '.wpz-insta_feed-user-select-info-type' ).html( 'None' );
253
+ $select.closest( '.wrap' ).find( '.wpz-insta_settings-header .wpz-insta_feed-edit-nav li:not(:first-child)' ).addClass( 'disable' );
254
+ } );
255
+
256
+ $( '#wpz-insta_tabs-config-cnnct .wpz-insta_tabs-config-connect-accounts li' ).on( 'click', function( e ) {
257
+ e.preventDefault();
258
+
259
+ let $btn = $( '#wpz-insta_feed-user-select-btn' ),
260
+ $select = $btn.closest( '.wpz-insta_feed-user-select' ),
261
+ $info = $select.find( '.wpz-insta_feed-user-select-info' );
262
+
263
+ $( '#wpz-insta_user-id' ).val( $( this ).data( 'user-id' ) ).trigger( 'change' );
264
+ $( '#wpz-insta_user-token' ).val( $( this ).data( 'user-token' ) ).trigger( 'change' );
265
+
266
+ $( '#wpz-insta_user-token, #wpz-insta_check-new-posts-interval-number, #wpz-insta_enable-request-timeout' )
267
+ .closest( '.wpz-insta_sidebar-section' )
268
+ .addClass( 'active' );
269
+
270
+ $select.addClass( 'is-set' );
271
+ $info.find( '.wpz-insta_feed-user-select-info-name' ).html( $( this ).data( 'user-name' ) );
272
+ $info.find( '.wpz-insta_feed-user-select-info-type' ).html( $( this ).data( 'user-type' ) );
273
+ $select.closest( '.wrap' ).find( '.wpz-insta_settings-header .wpz-insta_feed-edit-nav li' ).removeClass( 'disable' );
274
+ $select.find( '.wpz-insta_feed-user-select-edit-link' ).attr( 'href', zoom_instagram_widget_admin.edit_user_url + $( this ).data( 'user-id' ) );
275
+
276
+ $( '#wpz-insta_widget-preview-links' ).removeClass( 'disabled' );
277
+
278
+ $( '#wpz-insta_tabs-config-cnnct' )
279
+ .removeClass( 'active' )
280
+ .prev( '.wpz-insta_sidebar' )
281
+ .addClass( 'active' );
282
+
283
+ $( '#wpz-insta_tabs-config-cnnct' ).closest( '.wpz-insta_tabs-content' ).find( '> .wpz-insta_sidebar').removeClass( 'hide' );
284
+ } );
285
+
286
+ let formFields = {};
287
+ let formInitialValues = {};
288
+ let formChangedValues = {};
289
+ let formSubmitted = false;
290
+
291
+ $( 'form#post .wpz-insta_tabs-content > .wpz-insta_sidebar > .wpz-insta_sidebar-left' ).find( 'input, textarea, select' ).add( 'form#post #title' ).filter( "[name][name!='']" ).not( '.preview-exclude' ).each( function( index ) {
292
+ formFields[ $.trim( $(this).attr('name') ) ] = $(this);
293
+ } );
294
+
295
+ $.each( formFields, function( i, val ) {
296
+ formInitialValues[i] = val.is(':checkbox,:radio') ? ( val.is(':checked') ? '1' : '0' ) : $.trim( '' + val.val() );
297
+ } );
298
+
299
+ $( 'form#post' ).on( 'submit', () => formSubmitted = true );
300
+
301
+ $( 'form#post #title, form#post .wpz-insta_tabs-content > .wpz-insta_sidebar > .wpz-insta_sidebar-left' ).on(
302
+ 'input change',
303
+ debounce(
304
+ ( e ) => {
305
+ const $target = $( e.target );
306
+
307
+ if ( ! $target.is( '.preview-exclude' ) ) {
308
+ const key = $target.attr('name'),
309
+ currentValue = $target.is(':checkbox,:radio') ? ( $target.is(':checked') ? '1' : '0' ) : $.trim( '' + $target.val() );
310
+
311
+ if ( key in formInitialValues && currentValue != formInitialValues[key] ) {
312
+ if ( ! ( key in formChangedValues ) ) {
313
+ formChangedValues[key] = true;
314
+ }
315
+ } else {
316
+ if ( key in formChangedValues ) {
317
+ delete formChangedValues[key];
318
+ }
319
+ }
320
+
321
+ $( 'input#publish' ).toggleClass( 'disabled', $.isEmptyObject( formChangedValues ) );
322
+
323
+ window.wpzInstaReloadPreview();
324
+ }
325
+ },
326
+ 300
327
+ )
328
+ );
329
+
330
+ $( function() {
331
+ window.wpzInstaReloadPreview();
332
+
333
+ $( '.wpz-insta-cron-notice .notice-dismiss' ).on( 'click', function () {
334
+ let $notice = $(this).closest( '.notice' );
335
+
336
+ $.post( ajaxurl, {
337
+ action: 'wpz-insta_dismiss-cron-notice',
338
+ nonce: $notice.attr( 'data-nonce' ),
339
+ user_id: $notice.attr( 'data-user-id' ),
340
+ } );
341
+ } );
342
+ } );
343
+
344
+ $( '#wpz-insta_widget-preview-links .wpz-insta_widget-preview-header-link' ).on( 'click', function () {
345
+ if ( ! $( this ).hasClass( 'active' ) ) {
346
+ $( this ).addClass( 'active' ).siblings( '.wpz-insta_widget-preview-header-link' ).removeClass( 'active' );
347
+
348
+ $( this ).closest( '.wpz-insta_widget-preview' ).find( '.wpz-insta_widget-preview-view' )
349
+ .removeClass( 'wpz-insta_widget-preview-size-desktop wpz-insta_widget-preview-size-tablet wpz-insta_widget-preview-size-mobile' )
350
+ .addClass(
351
+ $( this ).hasClass( 'wpz-insta_widget-preview-header-links-tablet' )
352
+ ? 'wpz-insta_widget-preview-size-tablet'
353
+ : ( $( this ).hasClass( 'wpz-insta_widget-preview-header-links-mobile' )
354
+ ? 'wpz-insta_widget-preview-size-mobile'
355
+ : 'wpz-insta_widget-preview-size-desktop' )
356
+ );
357
+ }
358
+ } );
359
+
360
+ $( '#wpz-insta_widget-preview-view' ).on( 'transitionend', function () {
361
+ let $iframe = $(this).find('iframe');
362
+ $iframe.height( parseInt( $iframe.contents().find('body').prop('scrollHeight') ) + 20 );
363
+ } );
364
+
365
+ $( '#wpz-insta_widget-preview-view iframe' ).on( 'load', function() {
366
+ /*$(this).height( parseInt( $(this).contents().find('body').prop('scrollHeight') ) + 20 );*/
367
+ $(this).removeClass( 'wpz-insta_preview-hidden' );
368
+ $(this).closest( '.wpz-insta_sidebar-right' ).addClass( 'hide-loading' );
369
+ } );
370
+
371
+ $( '.wpz-insta_color-picker' ).wpColorPicker( {
372
+ change: function ( event, ui ) {
373
+ let changeEvent = $.Event( 'change' );
374
+ changeEvent.target = event.target;
375
+
376
+ $( event.target ).closest( 'form#post' ).find( '.wpz-insta_tabs-content > .wpz-insta_sidebar > .wpz-insta_sidebar-left' ).triggerHandler( changeEvent );
377
+ }
378
+ } );
379
+
380
+ $( '.wpzinsta-pointer' ).each( function () {
381
+ $(this).parent().addBack().one( 'click', function ( e ) {
382
+ e.stopPropagation();
383
+
384
+ let $target = $(this);
385
+
386
+ if ( $(this).is( 'li' ) ) {
387
+ $target = $(this).find( '.wpzinsta-pointer' );
388
+ }
389
+
390
+ $target.remove();
391
+ } );
392
+ } );
393
+
394
+ $( '#post-body-content .wpz-insta_sidebar .wpz-insta_sidebar-left .wpz-insta_sidebar-left-section' ).on( 'scroll', function () {
395
+ $(this).find( '.wp-picker-holder' ).each( function () {
396
+ let $parent = $(this).closest('.wp-picker-container');
397
+ let parentOffset = $parent.offset();
398
+ $(this).offset( { top: ( parentOffset.top + $parent.outerHeight() ), left: parentOffset.left } );
399
+ } );
400
+ } ).triggerHandler( 'scroll' );
401
+
402
+ $(window).on( 'scroll', function () {
403
+ $( '#post-body-content .wpz-insta_sidebar .wpz-insta_sidebar-left .wpz-insta_sidebar-left-section' ).each( function () {
404
+ $(this).triggerHandler( 'scroll' );
405
+ } );
406
+ } );
407
+
408
+ if ( $( '#post-body-content .wpz-insta_sidebar .wpz-insta_sidebar-left .wpz-insta_sidebar-left-section .wpz-insta_color-picker' ).length > 0 ) {
409
+ let observer = new IntersectionObserver( ( es, os ) => es.forEach( en => en.target.blur() ), { root: null, threshold: .1 } );
410
+ observer.observe( $( '#post-body-content .wpz-insta_sidebar .wpz-insta_sidebar-left .wpz-insta_sidebar-left-section .wpz-insta_color-picker' )[0] );
411
+ }
412
+
413
+ $( '#wpz-insta_shortcode' ).on( 'focus', function ( e ) {
414
+ e.preventDefault();
415
+ $( this ).select();
416
+ } );
417
+
418
+ var wpzInstaShortcodeCopyTimer;
419
+
420
+ $( '#wpz-insta_shortcode-copy-btn' ).on(
421
+ 'click',
422
+ debounce(
423
+ () => {
424
+ window.wpzInstaCopyToClipboard( $( '#wpz-insta_shortcode' ).val() )
425
+ .then( function() {
426
+ $( '#wpz-insta_shortcode-copy-btn' ).addClass( 'success' );
427
+
428
+ clearTimeout( wpzInstaShortcodeCopyTimer );
429
+ setTimeout(
430
+ () => {
431
+ $( '#wpz-insta_shortcode-copy-btn' ).removeClass( 'success' );
432
+ },
433
+ 3000
434
+ );
435
+ } );
436
+ },
437
+ 300
438
+ )
439
+ );
440
+
441
+ $('.wpz-insta_actions-menu_copy-shortcode').on(
442
+ 'click',
443
+ function ( e ) {
444
+ e.preventDefault();
445
+
446
+ let id = $(this).closest( 'tr' ).attr( 'id' ).replace( 'post-', '' );
447
+
448
+ window.wpzInstaCopyToClipboard( '[instagram feed="' + id + '"]' )
449
+ .then( () => {
450
+ window.wpzInstaShowDialog(
451
+ zoom_instagram_widget_admin.i18n_shortcode_success_title,
452
+ zoom_instagram_widget_admin.i18n_shortcode_success_content,
453
+ 'success update'
454
+ );
455
+ } );
456
+ }
457
+ );
458
+
459
+ $('.wpz-insta_actions-menu_delete').on(
460
+ 'click',
461
+ function ( e ) {
462
+ e.preventDefault();
463
+
464
+ let isFeed = $(this).hasClass('wpz-insta_actions-menu_delete-feed'),
465
+ href = $(this).find('a').attr('href');
466
+
467
+ window.wpzInstaShowConfirmDialog(
468
+ zoom_instagram_widget_admin[ 'i18n_delete_' + ( isFeed ? 'feed' : 'user' ) + '_confirm_title' ],
469
+ zoom_instagram_widget_admin[ 'i18n_delete_' + ( isFeed ? 'feed' : 'user' ) + '_confirm_content' ],
470
+ zoom_instagram_widget_admin[ 'i18n_delete_confirm_button_ok' ],
471
+ zoom_instagram_widget_admin[ 'i18n_delete_confirm_button_cancel' ]
472
+ ).then( ( result ) => {
473
+ if ( result === true ) {
474
+ window.location = href;
475
+ }
476
+
477
+ window.wpzInstaCloseDialog();
478
+ } );
479
+ }
480
+ )
481
+
482
+ function setTab( id ) {
483
+ if ( id ) {
484
+ const $target = $( '.wpz-insta_feed-edit-nav a[href="' + id + '"]' ),
485
+ $tabs = $target.closest( 'form' ).find( '.wpz-insta_tabs-content .wpz-insta_sidebar-left-section' );
486
+
487
+ $target.closest( '.wpz-insta_feed-edit-nav' ).find( 'li' ).removeClass( 'active' );
488
+ $target.closest( 'li' ).addClass( 'active' );
489
+
490
+ $tabs.removeClass( 'active' );
491
+ $tabs.filter( '[data-id="' + id + '"]' ).addClass( 'active' );
492
+ }
493
+ }
494
+
495
+ window.wpzInstaAuthenticateInstagram = function ( url, callback ) {
496
+ let popupWidth = 700,
497
+ popupHeight = 500,
498
+ popupTop = ( window.screen.height - popupHeight ) / 2,
499
+ popupLeft = ( window.screen.width - popupWidth ) / 2;
500
+
501
+ window.open( url, '', 'width=' + popupWidth + ',height=' + popupHeight + ',left=' + popupLeft + ',top=' + popupTop );
502
+ };
503
+
504
+ window.wpzInstaParseQuery = function ( queryString ) {
505
+ var query = {};
506
+ var pairs = ( queryString[0] === '?' || queryString[0] === '#' ? queryString.substr(1) : queryString ).split( '&' );
507
+
508
+ for ( var i = 0; i < pairs.length; i++ ) {
509
+ var pair = pairs[i].split( '=' );
510
+ query[ decodeURIComponent( pair[0] ) ] = decodeURIComponent( pair[1] || '' );
511
+ }
512
+
513
+ return query;
514
+ };
515
+
516
+ window.wpzInstaShowConnectDoneDialog = function ( success, update = false ) {
517
+ window.wpzInstaShowDialog(
518
+ ( success
519
+ ? ( update
520
+ ? zoom_instagram_widget_admin.i18n_reconnect_success_title
521
+ : zoom_instagram_widget_admin.i18n_connect_success_title )
522
+ : zoom_instagram_widget_admin.i18n_connect_fail_title
523
+ ),
524
+ ( success
525
+ ? ( update
526
+ ? zoom_instagram_widget_admin.i18n_reconnect_success_content
527
+ : zoom_instagram_widget_admin.i18n_connect_success_content )
528
+ : zoom_instagram_widget_admin.i18n_connect_fail_content ),
529
+ ( ( success ? 'success' : 'fail' ) + ( update ? ' update' : '' ) )
530
+ );
531
+ };
532
+
533
+ window.wpzInstaShowDialog = function ( title = '[DIALOG TITLE]', content = '[DIALOG CONTENT]', wrapperClass = 'success' ) {
534
+ let $dialog = $( '#wpz-insta_modal-dialog' ),
535
+ $title = $dialog.find( '.wpz-insta_modal-dialog_header-title' ),
536
+ $content = $dialog.find( '.wpz-insta_modal-dialog_content' ),
537
+ $buttonOk = $dialog.find( '.wpz-insta_modal-dialog_footer .wpz-insta_modal-dialog_ok-button' ),
538
+ $buttonCancel = $dialog.find( '.wpz-insta_modal-dialog_footer .wpz-insta_modal-dialog_cancel-button' );
539
+
540
+ $title.html( '' + title );
541
+ $content.html( '' + content );
542
+ $buttonCancel.addClass( 'hidden' );
543
+ $dialog.removeClass().addClass( 'open ' + wrapperClass );
544
+ };
545
+
546
+ window.wpzInstaShowConfirmDialog = function ( title = '[DIALOG TITLE]', content = '[DIALOG CONTENT]', okButtonLabel = '[OK]', cancelButtonLabel = '[CANCEL]' ) {
547
+ return new Promise( function ( resolve, reject ) {
548
+ let $dialog = $( '#wpz-insta_modal-dialog' ),
549
+ $title = $dialog.find( '.wpz-insta_modal-dialog_header-title' ),
550
+ $content = $dialog.find( '.wpz-insta_modal-dialog_content' ),
551
+ $buttonOk = $dialog.find( '.wpz-insta_modal-dialog_footer .wpz-insta_modal-dialog_ok-button' ),
552
+ $buttonCancel = $dialog.find( '.wpz-insta_modal-dialog_footer .wpz-insta_modal-dialog_cancel-button' );
553
+
554
+ $title.html( '' + title );
555
+ $content.html( '' + content );
556
+ $buttonOk.removeClass( 'hidden' ).html( '' + okButtonLabel );
557
+ $buttonOk.on( 'click', () => resolve( true ) );
558
+ $buttonCancel.removeClass( 'hidden' ).html( '' + cancelButtonLabel );
559
+ $buttonCancel.on( 'click', () => resolve( false ) );
560
+ $dialog.removeClass().addClass( 'open confirm' );
561
+ } );
562
+ };
563
+
564
+ window.wpzInstaCloseConnectDoneDialog = function ( success, update = false ) {
565
+ window.wpzInstaCloseDialog();
566
+
567
+ if ( success && ! update ) {
568
+ window.location.replace( zoom_instagram_widget_admin.feeds_url );
569
+ }
570
+ };
571
+
572
+ window.wpzInstaCloseDialog = function () {
573
+ $( '#wpz-insta_modal-dialog' ).removeClass( 'open' );
574
+ };
575
+
576
+ function debounce( func, timeout = 300 ) {
577
+ let timer;
578
+
579
+ return ( ...args ) => {
580
+ clearTimeout( timer );
581
+ timer = setTimeout( () => { func.apply( this, args ); }, timeout );
582
+ };
583
+ }
584
+
585
+ window.wpzInstaCopyToClipboard = function ( textToCopy ) {
586
+ if ( navigator.clipboard && window.isSecureContext ) {
587
+ return navigator.clipboard.writeText( textToCopy );
588
+ } else {
589
+ let textArea = document.createElement( 'textarea' );
590
+ textArea.value = textToCopy;
591
+ textArea.style.position = 'fixed';
592
+ textArea.style.left = '-999999px';
593
+ textArea.style.top = '-999999px';
594
+ document.body.appendChild( textArea );
595
+ textArea.focus();
596
+ textArea.select();
597
+ return new Promise( ( res, rej ) => {
598
+ document.execCommand( 'copy' ) ? res() : rej();
599
+ textArea.remove();
600
+ } );
601
+ }
602
+ };
603
+
604
+ if ( 'inlineEditPost' in window ) {
605
+ let origInlineEditPost = window.inlineEditPost.edit;
606
+
607
+ window.inlineEditPost.edit = function ( id ) {
608
+ origInlineEditPost.call( this, id );
609
+
610
+ if ( typeof( id ) === 'object' ) {
611
+ id = window.inlineEditPost.getId( id );
612
+ }
613
+
614
+ let fields = [ '_wpz-insta_account-type', '_wpz-insta_token', '_wpz-insta_token_expire', '_thumbnail_id', 'wpz-insta_profile-photo', '_wpz-insta_user_name', '_wpz-insta_user-bio' ],
615
+ rowData = $( '#inline_' + id ),
616
+ editRow = $( '#edit-' + id ),
617
+ val, field;
618
+
619
+ for ( let i = 0; i < fields.length; i++ ) {
620
+ field = fields[ i ];
621
+ val = $( '.' + field, rowData );
622
+ val = val.text();
623
+
624
+ if ( 'wpz-insta_profile-photo' == field ) {
625
+ $( 'img.' + field ).attr( 'src', val );
626
+ } else {
627
+ $( ':input[name="' + field + '"]', editRow ).val( val );
628
+ }
629
+ }
630
+ };
631
+ }
632
+
633
+ window.wpzInstaHandleReturnedToken = function ( url, rawToken = false ) {
634
+ if ( url ) {
635
+ const parsedHash = ! rawToken && 'hash' in url && '' != ('' + url.hash).trim() ? window.wpzInstaParseQuery( '' + url.hash ) : {};
636
+
637
+ if ( ( ! rawToken && ! $.isEmptyObject( parsedHash ) ) || ( rawToken && '' != ('' + url).trim() ) ) {
638
+ const token = rawToken ? ('' + url).trim() : ( 'access_token' in parsedHash ? ('' + parsedHash.access_token).trim() : '-1' );
639
+
640
+ if ( '' != token && '-1' != token ) {
641
+ const args = {
642
+ action: 'wpz-insta_connect-user',
643
+ nonce: zoom_instagram_widget_admin.nonce,
644
+ token: token,
645
+ };
646
+
647
+ if ( ! rawToken ) {
648
+ const parsedQuery = 'search' in url && '' != ('' + url.search).trim() ? window.wpzInstaParseQuery( '' + url.search ) : {};
649
+ args.post_id = ! $.isEmptyObject( parsedQuery ) && 'post' in parsedQuery ? parseInt( parsedQuery.post ) : 0;
650
+ }
651
+
652
+ $.post( ajaxurl, args )
653
+ .done( function ( response ) {
654
+ $('#the-list #wpz-insta_token').val(token);
655
+
656
+ let date = new Date();
657
+ date.setDate( date.getDate() + 60 );
658
+ $('#the-list #wpz-insta_token-expire-time').html(
659
+ date.toLocaleDateString(
660
+ 'en-US',
661
+ {
662
+ weekday: 'long',
663
+ day: 'numeric',
664
+ month: 'long',
665
+ year: 'numeric',
666
+ }
667
+ )
668
+ );
669
+
670
+ window.wpzInstaShowConnectDoneDialog(
671
+ response.success,
672
+ ( 'data' in response && 'update' in response.data && response.data.update )
673
+ );
674
+ } )
675
+ .fail( function () {
676
+ window.wpzInstaShowConnectDoneDialog( false );
677
+ } );
678
+ }
679
+ }
680
+ }
681
+ };
682
+
683
+ window.wpzInstaReloadPreview = function () {
684
+ let url = zoom_instagram_widget_admin.preview_url,
685
+ params = $.param( $( 'form#post #title, form#post .wpz-insta_tabs-content > .wpz-insta_sidebar > .wpz-insta_sidebar-left' ).find( 'input, textarea, select' ).not( '.preview-exclude' ).serializeArray() );
686
+
687
+ if ( params ) {
688
+ url += '&' + params;
689
+ }
690
+
691
+ $( '#wpz-insta_widget-preview-view' ).closest( '.wpz-insta_sidebar-right' ).removeClass( 'hide-loading' );
692
+ $( '#wpz-insta_widget-preview-view iframe' ).addClass( 'wpz-insta_preview-hidden' ).attr( 'src', url );
693
+ };
694
+
695
+ window.wpzInstaUpdatePreviewHeight = function () {
696
+ const $frame = $( '#wpz-insta_widget-preview-view iframe' );
697
+
698
+ $frame.height( parseInt( $frame.contents().find( 'body' ).prop( 'scrollHeight' ) ) );
699
+ };
700
+ } );
src/scripts/frontend/block.js ADDED
@@ -0,0 +1,79 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ( function( $ ) {
2
+ window.wpzInstaFrontendInit = function () {
3
+ $( '.zoom-instagram-widget__items[data-lightbox="1"]' ).each( function () {
4
+ const $swipe_el = $( this ).parent().parent().find( '.wpz-insta-lightbox-wrapper > .swiper-container' );
5
+
6
+ if ( $swipe_el.length > 0 ) {
7
+ const $nested = $swipe_el.find( '.image-wrapper > .swiper-container' );
8
+
9
+ new Swiper( $swipe_el.get(0), {
10
+ direction: 'horizontal',
11
+ loop: false,
12
+ spaceBetween: 20,
13
+ autoHeight: true,
14
+ watchOverflow: true,
15
+ navigation: {
16
+ nextEl: $swipe_el.find( '> .swiper-button-next' ).get(0),
17
+ prevEl: $swipe_el.find( '> .swiper-button-prev' ).get(0)
18
+ },
19
+ keyboard: {
20
+ enabled: true,
21
+ onlyInViewport: true
22
+ }
23
+ } );
24
+
25
+ $nested.each( function () {
26
+ new Swiper( $( this ).get(0), {
27
+ direction: 'horizontal',
28
+ loop: false,
29
+ spaceBetween: 20,
30
+ nested: true,
31
+ watchOverflow: true,
32
+ pagination: {
33
+ el: $( this ).find( '> .swiper-pagination' ).get(0),
34
+ type: 'bullets',
35
+ clickable: true,
36
+ hideOnClick: false
37
+ },
38
+ navigation: {
39
+ nextEl: $( this ).find( '> .swiper-button-next' ).get(0),
40
+ prevEl: $( this ).find( '> .swiper-button-prev' ).get(0)
41
+ },
42
+ keyboard: {
43
+ enabled: true,
44
+ onlyInViewport: true
45
+ }
46
+ } );
47
+ } );
48
+
49
+ $( this ).find( '.zoom-instagram-link' ).magnificPopup( {
50
+ items: {
51
+ type: 'inline',
52
+ src: $( this ).parent().parent().find( '.wpz-insta-lightbox-wrapper' )
53
+ },
54
+ closeBtnInside: false,
55
+ mainClass: 'wpzoom-lightbox',
56
+ midClick: true,
57
+ callbacks: {
58
+ open: function () {
59
+ const magnificPopup = $.magnificPopup.instance,
60
+ currentElement = magnificPopup.st.el,
61
+ $thisSwiper = this.content.find( '> .swiper-container' ).get(0).swiper;
62
+
63
+ //console.log( typeof $thisSwiper );
64
+
65
+ if ( typeof $thisSwiper === 'object' ) {
66
+ $thisSwiper.slideTo(
67
+ this.content.find( '> .swiper-container > .swiper-wrapper > .swiper-slide[data-uid="' + currentElement.data( 'mfp-src' ) + '"]' ).index()
68
+ );
69
+ }
70
+ }
71
+ }
72
+ } );
73
+ $( this ).find( '.zoom-instagram-link' ).addClass( 'magnific-active' );
74
+ }
75
+ } );
76
+ };
77
+
78
+ $( window ).on( 'load', window.wpzInstaFrontendInit );
79
+ } )( jQuery );
src/scripts/frontend/index.js ADDED
@@ -0,0 +1,215 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ( function( $ ) {
2
+ $( window ).on( 'load', function () {
3
+ var ticking = false;
4
+
5
+ $.fn.zoomLoadAsyncImages = function () {
6
+ return $(this).each(function () {
7
+ var $list = $(this);
8
+
9
+ var desiredItemWidth = $list.data('image-width');
10
+ var imageResolution = $list.data('image-resolution');
11
+
12
+ var delayedItems = $list.find('li').filter(function () {
13
+ return $(this).data('media-id');
14
+ }).map(function () {
15
+ return {
16
+ 'media-id': $(this).attr('data-media-id'),
17
+ 'nonce': $(this).attr('data-nonce'),
18
+ 'regenerate-thumbnails': $(this)[0].hasAttribute("data-regenerate-thumbnails")
19
+ };
20
+ });
21
+
22
+ var getAsyncImages = function (images) {
23
+
24
+ var isLastImage = images.length == 0;
25
+
26
+ if (isLastImage) {
27
+ return;
28
+ }
29
+
30
+ var image = images.shift();
31
+
32
+ wp.ajax.post('wpzoom_instagram_get_image_async', {
33
+ 'media-id': image['media-id'],
34
+ nonce: image['nonce'],
35
+ 'image-resolution': imageResolution,
36
+ 'image-width': desiredItemWidth,
37
+ 'regenerate-thumbnails': image['regenerate-thumbnails']
38
+ }).done(function (data) {
39
+ $list.find('li[data-media-id="' + image['media-id'] + '"] .zoom-instagram-link').css('background-image', 'url(' + data.image_src + ')');
40
+ }).fail(function () {
41
+ }).always(function () {
42
+ getAsyncImages(images);
43
+ });
44
+ };
45
+
46
+ if (delayedItems.length) {
47
+ getAsyncImages(delayedItems.toArray());
48
+ }
49
+ });
50
+ };
51
+
52
+ $.fn.zoomLightbox = function () {
53
+ return $( this ).each( function () {
54
+ const $swipe_el = $( this ).closest( '.widget' ).find( '.wpz-insta-lightbox-wrapper > .swiper-container' );
55
+
56
+ if ( $swipe_el.length > 0 ) {
57
+ const $nested = $swipe_el.find( '.image-wrapper > .swiper-container' );
58
+
59
+ new Swiper( $swipe_el.get(0), {
60
+ direction: 'horizontal',
61
+ loop: false,
62
+ spaceBetween: 20,
63
+ autoHeight: true,
64
+ watchOverflow: true,
65
+ navigation: {
66
+ nextEl: $swipe_el.find( '> .swiper-button-next' ).get(0),
67
+ prevEl: $swipe_el.find( '> .swiper-button-prev' ).get(0)
68
+ },
69
+ keyboard: {
70
+ enabled: true,
71
+ onlyInViewport: true
72
+ }
73
+ } );
74
+
75
+ $nested.each( function() {
76
+ new Swiper( $( this ).get(0), {
77
+ direction: 'horizontal',
78
+ loop: false,
79
+ spaceBetween: 20,
80
+ nested: true,
81
+ watchOverflow: true,
82
+ pagination: {
83
+ el: $( this ).find( '> .swiper-pagination' ).get(0),
84
+ type: 'bullets',
85
+ clickable: true,
86
+ hideOnClick: false
87
+ },
88
+ navigation: {
89
+ nextEl: $( this ).find( '> .swiper-button-next' ).get(0),
90
+ prevEl: $( this ).find( '> .swiper-button-prev' ).get(0)
91
+ },
92
+ keyboard: {
93
+ enabled: true,
94
+ onlyInViewport: true
95
+ }
96
+ } );
97
+ } );
98
+
99
+ $( this ).find( '.zoom-instagram-link' ).magnificPopup( {
100
+ items: {
101
+ type: 'inline',
102
+ src: $( this ).closest( '.widget' ).find( '.wpz-insta-lightbox-wrapper' )
103
+ },
104
+ closeBtnInside: false,
105
+ mainClass: 'wpzoom-lightbox',
106
+ midClick: true,
107
+ callbacks: {
108
+ open: function () {
109
+ const magnificPopup = $.magnificPopup.instance,
110
+ currentElement = magnificPopup.st.el,
111
+ $thisSwiper = this.content.find( '> .swiper-container' ).get(0).swiper;
112
+ //console.log( currentElement );
113
+ if ( typeof $thisSwiper === 'object' ) {
114
+ $thisSwiper.slideTo(
115
+ this.content.find( '> .swiper-container > .swiper-wrapper > .swiper-slide[data-uid="' + currentElement.data( 'mfp-src' ) + '"]' ).index()
116
+ );
117
+ }
118
+ }
119
+ }
120
+ } );
121
+ $( this ).find( '.zoom-instagram-link' ).addClass( 'magnific-active' );
122
+ }
123
+ } );
124
+ };
125
+
126
+ $.fn.zoomInstagramWidget = function () {
127
+ return $(this).each(function () {
128
+ var $list = $(this);
129
+
130
+ var minItemsPerRow = $list.data('images-per-row');
131
+ var desiredItemWidth = $list.data('image-width');
132
+ var itemSpacing = $list.data('image-spacing');
133
+ var imageLazyLoading = $list.data('image-lazy-loading');
134
+
135
+ var containerWidth = $list.width();
136
+
137
+ var fitPerRow;
138
+ var itemWidth;
139
+
140
+ if (containerWidth / desiredItemWidth < minItemsPerRow) {
141
+ fitPerRow = minItemsPerRow;
142
+ itemWidth = Math.floor(((containerWidth - 1 - (minItemsPerRow - 1) * itemSpacing) / minItemsPerRow));
143
+ } else {
144
+ fitPerRow = Math.floor((containerWidth - 1) / desiredItemWidth);
145
+ itemWidth = Math.floor(((containerWidth - 1 - (fitPerRow - 1) * itemSpacing) / fitPerRow));
146
+ }
147
+
148
+ $list.find('li').each(function (i) {
149
+ var loop = ++i;
150
+ if (loop % fitPerRow == 1) {
151
+ $(this).css('clear', 'left');
152
+ } else {
153
+ $(this).css('clear', 'none');
154
+ }
155
+ if (loop % fitPerRow == 0) {
156
+ $(this).css('margin-right', '0');
157
+ } else {
158
+ $(this).css('margin-right', itemSpacing + 'px');
159
+ $(this).css('margin-bottom', itemSpacing + 'px');
160
+ }
161
+ });
162
+
163
+ $list.find('a.zoom-instagram-link').css({
164
+ width: itemWidth,
165
+ height: itemWidth
166
+ });
167
+
168
+ if (imageLazyLoading) {
169
+ $list.find('a.zoom-instagram-link').lazy();
170
+ }
171
+
172
+ $list.removeClass('zoom-instagram-widget__items--no-js');
173
+ });
174
+ };
175
+
176
+ function requestTick() {
177
+ if (!ticking) {
178
+ ticking = true;
179
+ requestAnimationFrame()(update);
180
+ }
181
+ }
182
+
183
+ function requestAnimationFrame() {
184
+ return window.requestAnimationFrame ||
185
+ window.webkitRequestAnimationFrame ||
186
+ window.mozRequestAnimationFrame ||
187
+ function (callback) {
188
+ window.setTimeout(callback, 1000 / 60);
189
+ };
190
+ }
191
+
192
+ function update() {
193
+ $('.zoom-instagram-widget__items').zoomInstagramWidget();
194
+ ticking = false;
195
+ }
196
+
197
+ $(window).on('resize orientationchange', requestTick);
198
+ requestTick();
199
+
200
+ $('.zoom-instagram-widget__items').zoomLoadAsyncImages();
201
+ $('.zoom-instagram-widget__items[data-lightbox="1"]').zoomLightbox();
202
+
203
+ var siteOriginInit = function () {
204
+ var $widgets = $('.zoom-instagram-widget__items');
205
+ if ($widgets.length) {
206
+ $('.zoom-instagram-widget__items').zoomInstagramWidget();
207
+ $('.zoom-instagram-widget__items').zoomLoadAsyncImages();
208
+ }
209
+
210
+ };
211
+
212
+ var debounceInit = _.debounce(siteOriginInit, 1500);
213
+ $(document).on('panels_setup_preview', debounceInit);
214
+ } );
215
+ } )( jQuery );
src/scripts/frontend/preview.js ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ 'use strict';
2
+
3
+ document.body.addEventListener(
4
+ 'load',
5
+ function( event ) {
6
+ if ( 'IMG' == event.target.tagName && event.target.closest( '.zoom-instagram-widget__item' ) && typeof window.parent.wpzInstaUpdatePreviewHeight === 'function' ) {
7
+ window.parent.wpzInstaUpdatePreviewHeight();
8
+ }
9
+ },
10
+ true
11
+ );
js/jquery.lazy.min.js → src/scripts/library/lazy.js RENAMED
File without changes
assets/frontend/magnific-popup/jquery.magnific-popup.min.js → src/scripts/library/magnific-popup.js RENAMED
File without changes
{assets/frontend/swiper → src/scripts/library}/swiper.js RENAMED
File without changes
src/styles/backend/index.scss ADDED
@@ -0,0 +1,2549 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .zoom-instagram-widget .button-connect {
2
+ /*height: auto;*/
3
+ /*padding: 9px 12px;*/
4
+ color: #fff;
5
+ border: 1px solid #1c5380;
6
+ border-radius: 3px;
7
+ background-color: #6f97b6;
8
+ background-image: -webkit-linear-gradient(top, #6f97b6, #3f729b);
9
+ background-image: linear-gradient(to bottom, #6f97b6, #3f729b);
10
+ background-position: 50% 50%;
11
+ box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1), inset 1px 0 0 rgba(255, 255, 255, 0.05), inset -1px 0 0 rgba(255, 255, 255, 0.05), inset 0 1px 0 rgba(255, 255, 255, 0.2);
12
+ text-shadow: 0 1px 1px #1c5380;
13
+ }
14
+
15
+ .zoom-instagram-widget .button-connect:focus,
16
+ .zoom-instagram-widget .button-connect:hover {
17
+ border-color: #1c5380;
18
+ color: #fff;
19
+ background-image: -webkit-linear-gradient(top, #5D87A8, #3f729b);
20
+ background-image: linear-gradient(to bottom, #5D87A8, #3f729b);
21
+ }
22
+
23
+ .zoom-instagram-widget {
24
+ background: #fff;
25
+ padding: 30px;
26
+ border: 1px solid #DDD;
27
+ border-radius: 3px;
28
+ margin: 30px 10px 30px 0 !important;
29
+ box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.1);
30
+ max-width: 700px;
31
+ }
32
+
33
+ .zoom-themes-link {
34
+ border: 1px solid #E2E9EC;
35
+ /*background: #F7FAFA url('../images/wpzoom.png') no-repeat center bottom;*/
36
+ padding: 30px 30px 260px 30px;
37
+ border-radius: 3px;
38
+ margin: 30px 0 30px 0 !important;
39
+ box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.1);
40
+ max-width: 700px;
41
+ text-align: center;
42
+ }
43
+
44
+ .zoom-themes-link p {
45
+ font-size: 15px;
46
+ line-height: 1.6;
47
+ }
48
+
49
+ .cta-button {
50
+ text-align: center;
51
+ text-decoration: none;
52
+ color: #fff;
53
+ background: #3EBD3E;
54
+ padding: 10px 15px;
55
+ display: inline-block;
56
+ border-radius: 3px;
57
+ box-shadow: 0 -1px 1px rgba(0,0,0, 0.2) inset;
58
+ border: 1px solid #259425;
59
+ font-size: 16px;
60
+ text-shadow: 1px 1px rgba(0, 0, 0, 0.3);
61
+ }
62
+ .cta-button:hover {
63
+ background: #2A9B2A;
64
+ color: #fff;
65
+ }
66
+
67
+ #wpzoom-instagram-widget-settings_transient-lifetime-value{
68
+ max-width: 150px;
69
+ float: left;
70
+ }
71
+
72
+ #wpzoom-instagram-widget-settings_transient-lifetime-type{
73
+ float: left;
74
+ max-width: 100px;
75
+ }
76
+
77
+ .zoom-instagram-widget .wpzoom-instagram-widget-with-access-token-group {
78
+ background-color: #fff6f6;
79
+ }
80
+
81
+ .zoom-instagram-widget .wpzoom-instagram-widget-with-basic-access-token-group,
82
+ .zoom-instagram-widget .wpzoom-instagram-widget-without-access-token-group {
83
+ background-color: #e0f0e3;
84
+ }
85
+
86
+ .zoom-instagram-widget .wpzoom-instagram-widget-with-basic-access-token-group th,
87
+ .zoom-instagram-widget .wpzoom-instagram-widget-without-access-token-group th {
88
+ padding-left: 10px;
89
+ }
90
+
91
+ .zoom-instagram-widget .label-wrap input[type=radio]:checked + label[for='wpzoom-instagram-widget-settings_with-basic-access-token'],
92
+ .zoom-instagram-widget .label-wrap input[type=radio]:checked + label[for='wpzoom-instagram-widget-settings_without-access-token'] {
93
+ background-color: #e0f0e3;
94
+ }
95
+
96
+ .zoom-instagram-widget .label-wrap input[type=radio]:checked + label[for='wpzoom-instagram-widget-settings_with-access-token'] {
97
+ background-color: #fff6f6;
98
+ }
99
+
100
+ .zoom-instagram-widget .wpzoom-instagram-widget-settings-request-type-wrapper {
101
+ display: flex;
102
+ flex-direction: column;
103
+ }
104
+
105
+ .zoom-instagram-widget .wpzoom-instagram-widget-settings-request-type-wrapper .label-wrap {
106
+ display: flex;
107
+ align-items: center;
108
+ }
109
+
110
+ .zoom-instagram-widget .wpzoom-instagram-widget-settings-request-type-wrapper .label-wrap input[type=radio] {
111
+ z-index: 2;
112
+ }
113
+
114
+ .zoom-instagram-widget .wpzoom-instagram-widget-settings-request-type-wrapper .label-wrap label {
115
+ padding: 10px;
116
+ width: 100%;
117
+ margin-left: -30px;
118
+ padding-left: 40px;
119
+ z-index: 1;
120
+ }
121
+
122
+ .zoom-instagram-widget form h2 {
123
+ border-top: 2px solid #eee;
124
+ padding-top: 40px;
125
+ }
126
+
127
+
128
+ .zoom-instagram-widget .wpzoom-instagram-widget-with-token-group > td {
129
+ padding-right: 0px;
130
+ }
131
+
132
+
133
+ .zoom-instagram-user-avatar-media-uploader .remove-avatar {
134
+ margin: 6px 20px;
135
+ color: #a00;
136
+ }
137
+
138
+ .zoom-instagram-user-avatar-media-uploader .file-wrapper{
139
+ margin-top: 10px;
140
+ }
141
+ #wpzoom-instagram-widget-settings-user-info-biography{
142
+ width: 100%;
143
+ min-height: 100px;
144
+ }
145
+
146
+
147
+
148
+
149
+
150
+
151
+ /* New styles... */
152
+
153
+ // @import url('https://fonts.googleapis.com/css2?family=Inter:wght@100;200;300;400;500;600;700;800;900&display=swap');
154
+ // @import url('https://fonts.googleapis.com/css2?family=Roboto+Mono:wght@600&display=swap');
155
+
156
+ .wpz-insta-admin {
157
+ $primary-color: #3496ff;
158
+ $secondary-color: #70b5fe;
159
+ $light-color: #fff;
160
+ $light-grey-color: #ddd;
161
+ $lighter-grey-color: #eee;
162
+ $very-light-grey-color: #fafafa;
163
+ $blue-grey-color: #81909c;
164
+ $darker-blue-grey-color: #9ca2a7;
165
+ $green-color: #22bb66;
166
+ $light-green-color: #3bdb82;
167
+ $red-color: #ec2439;
168
+ $light-red-color: #f05161;
169
+ $orange-color: #f57c00;
170
+ $dark-color: #000;
171
+ $main-font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;
172
+ // $main-font-family: 'Inter', Tahoma, Verdana, sans-serif;
173
+ $main-font-color: #242628;
174
+ // $mono-font-family: 'Roboto Mono', monospace;
175
+ $mono-font-family: monospace;
176
+
177
+ &.post-php {
178
+ #wpbody-content {
179
+ padding-bottom: 0;
180
+
181
+ > .wrap #poststuff #post-body #post-body-content .wpz-insta_tabs-content .wpz-insta_sidebar {
182
+ .wpz-insta_sidebar-left .wpz-insta_sidebar-left-section,
183
+ .wpz-insta_widget-preview .wpz-insta_widget-preview-view {
184
+ // height: calc(100vh - 500px);
185
+ max-height: 60vh;
186
+ min-height: 200px;
187
+ }
188
+ }
189
+ }
190
+ }
191
+
192
+ #wpfooter {
193
+ position: relative;
194
+ }
195
+
196
+ #wpbody-content {
197
+ padding-bottom: 165px;
198
+
199
+ > .notice {
200
+ display: none !important;
201
+ }
202
+
203
+ .urgent {
204
+ color: $red-color;
205
+ }
206
+
207
+ .pro-only {
208
+ position: absolute;
209
+ top: 0;
210
+ right: 0;
211
+ line-height: 1.5;
212
+ color: $light-color;
213
+ background: $orange-color;
214
+ padding: 0 4px;
215
+ border-radius: 2px;
216
+ transform: translate(50%, -50%);
217
+ }
218
+
219
+ > .wrap {
220
+ > h1.wp-heading-inline,
221
+ > .page-title-action,
222
+ > .wp-header-end,
223
+ > .notice,
224
+ > .wpz-insta_settings-header > .notice,
225
+ > .wpz-insta-wrap ~ #posts-filter > .search-box,
226
+ > .wpz-insta-wrap ~ #posts-filter > .tablenav,
227
+ > .wpz-insta-wrap ~ #posts-filter > .wp-list-table > tfoot,
228
+ #titlediv {
229
+ display: none !important;
230
+ }
231
+
232
+ .wpz-insta-notices .notice {
233
+ display: block !important;
234
+ }
235
+
236
+ input, textarea, select {
237
+ font-family: $main-font-family;
238
+ font-weight: normal;
239
+ color: $main-font-color;
240
+ border: 1px solid $darker-blue-grey-color;
241
+ border-radius: 2px;
242
+ box-shadow: none;
243
+ transition: all 0.3s ease;
244
+
245
+ &:hover, &:focus {
246
+ color: $main-font-color;
247
+ border-color: $primary-color;
248
+ }
249
+ }
250
+
251
+ input {
252
+ // font-family: $mono-font-family;
253
+ color: $main-font-color;
254
+
255
+ &.wpz-insta_input {
256
+ font-family: $main-font-family;
257
+ }
258
+
259
+ &.wpz-insta_input-nobg {
260
+ background: transparent;
261
+ }
262
+
263
+ &[type='checkbox'] {
264
+ display: inline-flex;
265
+ align-items: center;
266
+ justify-content: center;
267
+ color: $light-color;
268
+ background-color: $light-color;
269
+ height: 1.25rem;
270
+ width: 1.25rem;
271
+ border: none;
272
+ border-radius: 2px;
273
+ box-shadow: inset 0 0 0 1px $blue-grey-color;
274
+ transition: all 0.3s ease;
275
+
276
+ &:hover {
277
+ background-color: $light-grey-color !important;
278
+ box-shadow: inset 0 0 0 1px $blue-grey-color !important;
279
+
280
+ &:checked {
281
+ background-color: $secondary-color !important;
282
+ box-shadow: inset 0 0 0 1px transparent !important;
283
+ }
284
+ }
285
+
286
+ &:focus {
287
+ outline: none;
288
+ box-shadow: inset 0 0 0 1px $blue-grey-color;
289
+
290
+ &:checked {
291
+ box-shadow: inset 0 0 0 1px transparent;
292
+ }
293
+ }
294
+
295
+ &::before {
296
+ transition: all 0.3s ease;
297
+ }
298
+
299
+ &:checked {
300
+ background-color: $primary-color;
301
+ box-shadow: inset 0 0 0 1px transparent;
302
+
303
+ &::before {
304
+ content: url('data:image/svg+xml;utf8,%3Csvg%20width%3D%2214%22%20height%3D%2212%22%20viewBox%3D%220%200%2014%2012%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M12.779%201.00004L5.3618%2010.9753L1.06089%207.77735%22%20stroke%3D%22white%22%20stroke-width%3D%221.2%22%2F%3E%3C%2Fsvg%3E%0A');
305
+ display: block;
306
+ float: none;
307
+ height: auto;
308
+ width: auto;
309
+ margin: 0;
310
+ }
311
+ }
312
+ }
313
+ }
314
+
315
+ .disabled,
316
+ .disable {
317
+ pointer-events: none;
318
+ }
319
+
320
+ .disable {
321
+ opacity: 0.5;
322
+ }
323
+
324
+ .help {
325
+ display: inline-block;
326
+ cursor: help;
327
+ font-size: 20px;
328
+ vertical-align: text-bottom;
329
+ height: 16px;
330
+ width: 16px;
331
+ transition: all 0.2s ease;
332
+ position: relative;
333
+
334
+ // &::before {
335
+ // content: '';
336
+ // display: block;
337
+ // background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='16' height='16'%3E%3Cpath fill='%23000' fill-rule='evenodd' clip-rule='evenodd' d='M12 2C6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10S17.523 2 12 2zm-1 16v-2h2v2h-2zm2-3v-1.141A3.991 3.991 0 0016 10a4 4 0 00-8 0h2c0-1.103.897-2 2-2s2 .897 2 2-.897 2-2 2a1 1 0 00-1 1v2h2z'%3E%3C/path%3E%3C/svg%3E");
338
+ // height: 100%;
339
+ // width: 100%;
340
+ // transition: all 0.2s ease;
341
+ // }
342
+
343
+ // &:hover {
344
+ // opacity: 1;
345
+ // }
346
+ }
347
+
348
+ .wide-text-field {
349
+ padding: 0;
350
+ margin: 0 0 2em;
351
+
352
+ label {
353
+ > strong {
354
+ font-size: 15px !important;
355
+ }
356
+
357
+ > em {
358
+ color: rgba($main-font-color, 0.8);
359
+ }
360
+ }
361
+
362
+ input[type='text'] {
363
+ display: block;
364
+ font-family: $main-font-family;
365
+ font-size: 15px;
366
+ font-weight: normal;
367
+ line-height: 40px;
368
+ color: $main-font-color;
369
+ width: 100%;
370
+ min-height: 40px;
371
+ padding: 0 10px;
372
+ box-sizing: border-box;
373
+ margin: 0.7em 0;
374
+ }
375
+ }
376
+
377
+ .submit-button {
378
+ padding: 0;
379
+ margin: 0;
380
+ }
381
+
382
+ .button.disabled {
383
+ pointer-events: none !important;
384
+ }
385
+
386
+ .button:not(.wp-color-result),
387
+ .button-primary,
388
+ .button-secondary {
389
+ display: inline-flex;
390
+ align-items: center;
391
+ justify-content: center;
392
+ font-family: $main-font-family;
393
+ font-size: 13px;
394
+ font-weight: 600;
395
+ line-height: 35px;
396
+ min-height: 35px;
397
+ padding: 0 12px;
398
+ border: 0;
399
+ border-radius: 2px;
400
+ transition: all 0.2s ease;
401
+
402
+ &.button-large {
403
+ min-height: 48px;
404
+ padding: 0 40px;
405
+ margin: 0;
406
+ }
407
+ }
408
+
409
+ .button.wp-color-result {
410
+ font-family: $main-font-family;
411
+ font-size: 13px;
412
+ }
413
+
414
+ .button-primary {
415
+ color: $light-color;
416
+ background: $primary-color;
417
+
418
+ &:hover,
419
+ &:active {
420
+ color: $light-color;
421
+ background: $secondary-color;
422
+ }
423
+
424
+ &.button-positive {
425
+ color: $light-color;
426
+ background: $green-color;
427
+
428
+ &:hover,
429
+ &:active {
430
+ background: $light-green-color;
431
+ }
432
+ }
433
+
434
+ &.button-negative {
435
+ color: $light-color;
436
+ background: $red-color;
437
+
438
+ &:hover,
439
+ &:active {
440
+ background: $light-red-color;
441
+ }
442
+ }
443
+ }
444
+
445
+ .button-secondary {
446
+ color: $blue-grey-color;
447
+ background: $light-color;
448
+ box-shadow: inset 0 0 0 1px $light-grey-color;
449
+
450
+ &:hover,
451
+ &:active {
452
+ background: $light-grey-color;
453
+ }
454
+
455
+ &.button-positive {
456
+ color: $green-color;
457
+ background: $light-color;
458
+ box-shadow: inset 0 0 0 1px $green-color;
459
+
460
+ &:hover,
461
+ &:active {
462
+ color: $main-font-color;
463
+ background: $light-color;
464
+ box-shadow: inset 0 0 0 1px $main-font-color;
465
+ }
466
+ }
467
+
468
+ &.button-negative {
469
+ color: $red-color;
470
+ background: $light-color;
471
+ box-shadow: inset 0 0 0 1px $red-color;
472
+
473
+ &:hover,
474
+ &:active {
475
+ color: $main-font-color;
476
+ background: $light-color;
477
+ box-shadow: inset 0 0 0 1px $main-font-color;
478
+ }
479
+ }
480
+ }
481
+
482
+ .button-link {
483
+ color: $primary-color;
484
+ transition: all 0.2s ease;
485
+
486
+ &.wpz-insta_button-link {
487
+ font-weight: normal;
488
+ line-height: 1;
489
+ min-height: 0;
490
+ padding: 0;
491
+ margin: 1.5em 0 0;
492
+
493
+ &:hover,
494
+ &:active,
495
+ &:focus {
496
+ color: $secondary-color;
497
+ background: transparent;
498
+ }
499
+ }
500
+
501
+ &:hover,
502
+ &:active,
503
+ &:focus {
504
+ color: $secondary-color;
505
+ }
506
+ }
507
+
508
+ .wpz-insta_suffixed-number-input {
509
+ display: flex;
510
+ gap: 12px;
511
+
512
+ > * {
513
+ margin: 0;
514
+
515
+ &:first-child {
516
+ flex-grow: 1;
517
+ }
518
+ }
519
+ }
520
+
521
+ .wpz-insta_profile-photo {
522
+ display: block;
523
+ height: 100px;
524
+ width: 100px;
525
+ border-radius: 50%;
526
+ }
527
+
528
+ a {
529
+ text-decoration: none;
530
+ color: $primary-color;
531
+ transition: all 0.2s ease;
532
+
533
+ &:hover,
534
+ &:active,
535
+ &:focus {
536
+ text-decoration: none;
537
+ color: $secondary-color;
538
+ }
539
+
540
+ &.linked {
541
+ border-bottom: 1px solid rgba($primary-color, 0.3);
542
+
543
+ &:hover,
544
+ &:active,
545
+ &:focus {
546
+ border-bottom-color: rgba($secondary-color, 0.3);
547
+ }
548
+ }
549
+ }
550
+
551
+ .wpz-insta_back-button {
552
+ display: inline-flex;
553
+ align-items: center;
554
+ font-family: $main-font-family;
555
+ font-size: 14px;
556
+ font-weight: 600;
557
+ text-decoration: none;
558
+ color: $main-font-color;
559
+ margin: 10px 0 0;
560
+ transition: all 0.2s ease;
561
+
562
+ &:hover, &:active {
563
+ color: $primary-color;
564
+
565
+ svg {
566
+ color: $primary-color;
567
+ fill: $primary-color;
568
+ }
569
+ }
570
+
571
+ svg {
572
+ color: $main-font-color;
573
+ fill: $main-font-color;
574
+ margin: 0 6px 0 0;
575
+ transition: all 0.2s ease;
576
+ }
577
+ }
578
+
579
+ .wpzinsta-pointer {
580
+ position: absolute;
581
+ top: calc(100% + 3px);
582
+ left: 50%;
583
+ z-index: 1000;
584
+ cursor: default;
585
+ font-size: 14px;
586
+ color: $light-color;
587
+ background: $primary-color;
588
+ width: max-content;
589
+ padding: 4px 10px;
590
+ border-radius: 3px;
591
+ box-shadow: 1px 1px 2px rgba($dark-color, 0.3);
592
+ transform: translateX(-50%);
593
+ animation-name: bounceFade;
594
+ animation-duration: 1s;
595
+ animation-fill-mode: both;
596
+
597
+ > i {
598
+ position: absolute;
599
+ top: -10px;
600
+ left: 50%;
601
+ pointer-events: none;
602
+ height: 10px;
603
+ width: 20px;
604
+ transform: translateX(-50%);
605
+ overflow: hidden;
606
+
607
+ &::before {
608
+ content: '';
609
+ position: absolute;
610
+ left: 50%;
611
+ bottom: -4px;
612
+ pointer-events: initial;
613
+ background: $primary-color;
614
+ height: 8px;
615
+ width: 8px;
616
+ box-shadow: 0 0 2px rgba($dark-color, 0.3);
617
+ transform: translateX(-50%) rotateZ(45deg);
618
+ }
619
+ }
620
+ }
621
+
622
+ .fit-max-content {
623
+ max-width: max-content;
624
+ }
625
+
626
+ .wpz-insta_settings-add-new a,
627
+ #wpz-insta_tabs-config-cnnct .wpz-insta_tabs-config-connect-add {
628
+ position: relative;
629
+ }
630
+
631
+ .wp-picker-container {
632
+ display: inline-flex;
633
+ position: relative;
634
+
635
+ &:not(:focus-within) {
636
+ .wp-picker-holder {
637
+ pointer-events: none;
638
+ opacity: 0;
639
+ }
640
+ }
641
+
642
+ .wp-color-result {
643
+ position: absolute;
644
+ top: 50%;
645
+ left: 5px;
646
+ pointer-events: none;
647
+ height: 20px;
648
+ min-height: 0;
649
+ width: 20px;
650
+ padding: 0;
651
+ border-radius: 4px;
652
+ margin: 0;
653
+ transform: translateY(-50%);
654
+
655
+ &:active {
656
+ transform: translateY(-50%) !important;
657
+ }
658
+
659
+ .wp-color-result-text {
660
+ display: none;
661
+ }
662
+ }
663
+
664
+ .wp-picker-input-wrap {
665
+ display: block;
666
+
667
+ input {
668
+ line-height: 2;
669
+ width: auto;
670
+ padding-left: 30px;
671
+ }
672
+
673
+ .wp-picker-clear {
674
+ display: none;
675
+ }
676
+ }
677
+
678
+ .wp-picker-holder {
679
+ display: block;
680
+ position: fixed;
681
+ top: 100%;
682
+ left: 0;
683
+ z-index: 999;
684
+ transition: all 0.2s ease;
685
+
686
+ .iris-picker {
687
+ display: block !important;
688
+ }
689
+ }
690
+ }
691
+
692
+ .wpz-insta_two-columns {
693
+ display: flex;
694
+ align-items: center;
695
+ list-style: none;
696
+ padding: 0;
697
+ margin: 1.5em 0 0;
698
+
699
+ &.wpz-insta_two-columns-left-small {
700
+ align-items: flex-start;
701
+ gap: 30px;
702
+ margin-top: 0;
703
+
704
+ > * {
705
+ text-align: left !important;
706
+
707
+ &:first-child {
708
+ flex-grow: 0;
709
+ width: auto;
710
+ }
711
+ }
712
+ }
713
+
714
+ > * {
715
+ flex-grow: 1;
716
+ list-style: none;
717
+ width: 100%;
718
+ padding: 0;
719
+ margin: 0;
720
+
721
+ &:first-child {
722
+ text-align: left;
723
+ }
724
+
725
+ &:last-child {
726
+ text-align: right;
727
+ }
728
+ }
729
+ }
730
+
731
+ .wpz-insta_notice {
732
+ display: flex;
733
+ align-items: center;
734
+ font-size: 12px;
735
+ padding: 0;
736
+ margin: 1.5em 0 0 !important;
737
+
738
+ &::before {
739
+ content: '';
740
+ display: block;
741
+ background-image: url("data:image/svg+xml,%3Csvg width='14' height='14' viewBox='0 0 14 14' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M6.3 3.5H7.7V4.9H6.3V3.5ZM6.3 6.3H7.7V10.5H6.3V6.3ZM7 0C3.136 0 0 3.136 0 7C0 10.864 3.136 14 7 14C10.864 14 14 10.864 14 7C14 3.136 10.864 0 7 0ZM7 12.6C3.913 12.6 1.4 10.087 1.4 7C1.4 3.913 3.913 1.4 7 1.4C10.087 1.4 12.6 3.913 12.6 7C12.6 10.087 10.087 12.6 7 12.6Z'/%3E%3C/svg%3E");
742
+ height: 14px;
743
+ width: 14px;
744
+ margin: 0 0.8em 0 0;
745
+ }
746
+
747
+ p {
748
+ padding: 0;
749
+ margin: 0;
750
+ }
751
+ }
752
+
753
+ .wpz-insta_settings-header {
754
+ font-family: $main-font-family;
755
+ color: $main-font-color;
756
+ background: $light-color;
757
+ padding: 15px 30px 0;
758
+ border: 1px solid $light-grey-color;
759
+ border-radius: 3px;
760
+ box-shadow: 1px 1px 2px rgba($dark-color, 0.1);
761
+ margin: 3em 0;
762
+
763
+ #major-publishing-actions {
764
+ background: transparent;
765
+ padding: 0 0 1em;
766
+ border: 0;
767
+
768
+ #publishing-action {
769
+ display: flex;
770
+ align-items: center;
771
+ gap: 20px;
772
+ float: none;
773
+
774
+ .spinner {
775
+ margin: 0;
776
+ }
777
+ }
778
+ }
779
+
780
+ &.wpz-insta-wrap-sides {
781
+ display: flex;
782
+ align-items: center;
783
+ margin-top: 1em;
784
+
785
+ .wpz-insta-wrap-left {
786
+ flex-grow: 1;
787
+ }
788
+ }
789
+
790
+ .wpz-insta_settings-main-title {
791
+ font-size: 24px;
792
+ font-weight: 600;
793
+ line-height: 29px;
794
+ padding: 0;
795
+ margin: 0;
796
+
797
+ small {
798
+ font-size: 14px;
799
+ font-weight: normal;
800
+ line-height: 17px;
801
+ color: $blue-grey-color;
802
+
803
+ a {
804
+ text-decoration: none;
805
+ color: $blue-grey-color;
806
+ transition: all 0.2s ease;
807
+
808
+ &:hover,
809
+ &:active {
810
+ color: $primary-color;
811
+ }
812
+ }
813
+ }
814
+
815
+ .pro {
816
+ color: $orange-color;
817
+ }
818
+
819
+ #title {
820
+ position: relative;
821
+ font-size: 24px;
822
+ font-weight: 600;
823
+ text-overflow: ellipsis;
824
+ line-height: 29px;
825
+ background: transparent url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M3 17.2505V21.0005H6.75L17.81 9.94055L14.06 6.19055L3 17.2505ZM20.71 7.04055C21.1 6.65055 21.1 6.02055 20.71 5.63055L18.37 3.29055C17.98 2.90055 17.35 2.90055 16.96 3.29055L15.13 5.12055L18.88 8.87055L20.71 7.04055Z' fill='%2381909C'/%3E%3C/svg%3E");
826
+ background-repeat: no-repeat;
827
+ background-position: center right;
828
+ min-width: 100px;
829
+ max-width: 82%;
830
+ padding: 0 24px 0 0;
831
+ border: 0;
832
+ outline: none;
833
+ margin: 0;
834
+ overflow: hidden;
835
+ box-shadow: 0 0 0 1px transparent;
836
+ transition: all 0.2s ease;
837
+
838
+ &:hover, &:focus {
839
+ box-shadow: 0 0 0 1px $primary-color;
840
+ }
841
+ }
842
+ }
843
+
844
+ .wpz-insta_settings-sub-title {
845
+ font-size: 18px;
846
+ font-weight: normal;
847
+ line-height: 22px;
848
+ color: $main-font-color;
849
+ margin: 16px 0;
850
+ }
851
+
852
+ .wpz-insta_settings-main-nav {
853
+ font-size: 18px;
854
+ font-weight: normal;
855
+ line-height: 22px;
856
+ padding: 0;
857
+ margin: 0;
858
+
859
+ ul {
860
+ display: flex;
861
+ list-style: none;
862
+ gap: 40px;
863
+ padding: 0;
864
+ margin: 0;
865
+
866
+ li {
867
+ position: relative;
868
+ list-style: none;
869
+ padding: 0;
870
+ margin: 0;
871
+ transition: all 0.2s ease;
872
+
873
+ &.active {
874
+ a {
875
+ cursor: default;
876
+ pointer-events: none;
877
+
878
+ &::after {
879
+ transform: translateY(0);
880
+ }
881
+ }
882
+ }
883
+
884
+ a {
885
+ display: block;
886
+ position: relative;
887
+ text-decoration: none;
888
+ color: $main-font-color;
889
+ outline: none;
890
+ padding: 16px 0;
891
+ box-shadow: none;
892
+ overflow: hidden;
893
+ transition: all 0.2s ease;
894
+
895
+ &:active,
896
+ &:focus {
897
+ outline: none;
898
+ box-shadow: none;
899
+ }
900
+
901
+ &:hover {
902
+ color: $primary-color;
903
+ }
904
+
905
+ &::after {
906
+ content: '';
907
+ position: absolute;
908
+ left: 0;
909
+ right: 0;
910
+ bottom: 0;
911
+ background: $primary-color;
912
+ height: 6px;
913
+ border-radius: 2px 2px 0 0;
914
+ transform: translateY(100%);
915
+ transition: all 0.2s ease;
916
+ }
917
+ }
918
+ }
919
+ }
920
+ }
921
+ }
922
+
923
+ .wpz-insta-wrap.with-bg {
924
+ font-family: $main-font-family;
925
+ font-size: 14px;
926
+ color: $main-font-color;
927
+ background: $light-color;
928
+ padding: 25px 30px;
929
+ border: 1px solid $light-grey-color;
930
+ border-radius: 3px;
931
+ box-shadow: 1px 1px 2px rgba($dark-color, 0.1);
932
+
933
+ *:not(h2):not(small) {
934
+ font-size: 14px;
935
+ }
936
+ }
937
+
938
+ .wpz-insta-wrap ~ #posts-filter {
939
+ margin: 2em 0 0;
940
+
941
+ .wp-list-table {
942
+ font-family: $main-font-family;
943
+ color: $main-font-color;
944
+ background: $light-color;
945
+ padding: 15px 30px;
946
+ border: 1px solid $light-grey-color;
947
+ border-radius: 3px;
948
+ box-shadow: 1px 1px 2px rgba($dark-color, 0.1);
949
+
950
+ thead {
951
+ th,
952
+ td {
953
+ border-bottom: 1px solid $dark-color;
954
+
955
+ &.column-wpz-insta_account-photo,
956
+ &.column-wpz-insta_account-bio,
957
+ &.column-wpz-insta_account-token {
958
+ display: none;
959
+ }
960
+ }
961
+
962
+ th {
963
+ font-weight: 600;
964
+ padding-left: 0;
965
+ padding-right: 0;
966
+
967
+ &.column-wpz-insta_actions {
968
+ text-align: right;
969
+ }
970
+
971
+ a {
972
+ color: $dark-color;
973
+ padding: 14px 0;
974
+ transition: all 0.2s ease;
975
+
976
+ &:hover,
977
+ &:active {
978
+ color: $primary-color;
979
+ }
980
+ }
981
+ }
982
+ }
983
+
984
+ tbody {
985
+ tr {
986
+ display: table-row !important;
987
+ position: relative;
988
+ background: transparent;
989
+ }
990
+
991
+ tr:first-child,
992
+ tr.inline-edit-row {
993
+ th,
994
+ td {
995
+ border-top: none;
996
+ }
997
+ }
998
+
999
+ tr.inline-edit-row td {
1000
+ padding-top: 0;
1001
+ }
1002
+
1003
+ th,
1004
+ td {
1005
+ vertical-align: middle;
1006
+ padding: 20px 0;
1007
+ border-top: 1px solid $light-grey-color;
1008
+
1009
+ &.column-wpz-insta_account-photo,
1010
+ &.column-wpz-insta_account-bio,
1011
+ &.column-wpz-insta_account-token {
1012
+ display: none;
1013
+ }
1014
+ }
1015
+
1016
+ th.check-column {
1017
+ padding: 0;
1018
+ }
1019
+
1020
+ td {
1021
+ > * {
1022
+ margin: 0;
1023
+ }
1024
+
1025
+ a:not(.button) {
1026
+ color: $primary-color;
1027
+ transition: all 0.2s ease;
1028
+
1029
+ &:hover,
1030
+ &:active {
1031
+ color: $dark-color;
1032
+ }
1033
+ }
1034
+
1035
+ .row-actions {
1036
+ display: none;
1037
+ }
1038
+
1039
+ .wpz-insta_quick-edit {
1040
+ overflow: hidden;
1041
+ animation-name: slidedown;
1042
+ animation-duration: 1s;
1043
+
1044
+ .wpz-insta_quick-edit-columns {
1045
+ display: flex;
1046
+ list-style: none;
1047
+ padding: 0;
1048
+ margin: 0;
1049
+
1050
+ > li {
1051
+ flex-grow: 1;
1052
+ list-style: none;
1053
+ padding: 0;
1054
+ margin: 0;
1055
+
1056
+ div {
1057
+ display: block;
1058
+ margin: 0 0 10px;
1059
+
1060
+ &:last-child {
1061
+ margin-bottom: 0;
1062
+ }
1063
+ }
1064
+
1065
+ strong:first-child,
1066
+ label > strong:first-child {
1067
+ display: inline-block;
1068
+ margin: 0 0 5px;
1069
+ }
1070
+
1071
+ input:not(.widefat),
1072
+ textarea {
1073
+ font-family: $main-font-family;
1074
+ width: 60%;
1075
+ }
1076
+ }
1077
+ }
1078
+ }
1079
+
1080
+ .inline-edit-save {
1081
+ position: absolute;
1082
+ top: -10px;
1083
+ right: 0;
1084
+ padding: 0;
1085
+ transform: translateY(-100%);
1086
+
1087
+ .button {
1088
+ float: none;
1089
+
1090
+ &.cancel {
1091
+ color: $primary-color;
1092
+ background: transparent;
1093
+ box-shadow: inset 0 0 0 1px $primary-color;
1094
+ margin: 0 1em 0 0;
1095
+
1096
+ &:hover,
1097
+ &:active,
1098
+ &:focus {
1099
+ color: $dark-color;
1100
+ box-shadow: inset 0 0 0 1px $dark-color;
1101
+ }
1102
+ }
1103
+ }
1104
+
1105
+ .spinner {
1106
+ float: left;
1107
+ }
1108
+ }
1109
+ }
1110
+
1111
+ .column-title,
1112
+ .column-wpz-insta_account {
1113
+ width: 50%;
1114
+ }
1115
+
1116
+ .column-wpz-insta_account {
1117
+ a {
1118
+ color: $main-font-color;
1119
+
1120
+ &:hover,
1121
+ &:active {
1122
+ color: $primary-color;
1123
+ }
1124
+ }
1125
+ }
1126
+
1127
+ .column-wpz-insta_actions {
1128
+ text-align: right;
1129
+ width: 5%;
1130
+
1131
+ strong {
1132
+ position: relative;
1133
+ cursor: pointer;
1134
+ font-size: 20px;
1135
+ font-weight: 600;
1136
+ text-align: right;
1137
+ white-space: nowrap;
1138
+ transition: all 0.2s ease;
1139
+
1140
+ &:hover,
1141
+ &:active {
1142
+ color: $primary-color;
1143
+ }
1144
+ }
1145
+ }
1146
+
1147
+ .wpz-insta_actions-menu {
1148
+ display: inline-block;
1149
+ position: relative;
1150
+ text-align: right;
1151
+
1152
+ &:hover {
1153
+ .wpz-insta_hidden {
1154
+ pointer-events: auto;
1155
+ opacity: 1;
1156
+ }
1157
+
1158
+ strong {
1159
+ color: $primary-color;
1160
+
1161
+ &::after {
1162
+ content: '';
1163
+ position: absolute;
1164
+ left: -50px;
1165
+ right: 0;
1166
+ bottom: -15px;
1167
+ height: 25px;
1168
+ }
1169
+ }
1170
+ }
1171
+
1172
+ .wpz-insta_hidden {
1173
+ position: absolute;
1174
+ right: 0;
1175
+ bottom: -10px;
1176
+ z-index: 999;
1177
+ pointer-events: none;
1178
+ text-align: left;
1179
+ background: $light-color;
1180
+ min-width: 200px;
1181
+ opacity: 0;
1182
+ padding: 0;
1183
+ border-radius: 3px;
1184
+ margin: 0;
1185
+ box-shadow: 1px 4px 8px rgba($dark-color, 0.1);
1186
+ transform: translate(0%, 100%);
1187
+ transition: opacity 0.2s ease;
1188
+
1189
+ li {
1190
+ white-space: nowrap;
1191
+ margin: 0;
1192
+ transition: all 0.2s ease;
1193
+
1194
+ &:first-child a,
1195
+ &:first-child button {
1196
+ padding-top: 10px;
1197
+ }
1198
+
1199
+ &:last-child a,
1200
+ &:last-child button {
1201
+ padding-bottom: 10px;
1202
+ }
1203
+
1204
+ &.wpz-insta_actions-menu_divider {
1205
+ pointer-events: none;
1206
+ background: $light-grey-color;
1207
+ height: 1px;
1208
+ padding: 0;
1209
+ margin: 5px 20px;
1210
+ }
1211
+
1212
+ &.wpz-insta_actions-menu_delete {
1213
+ a:hover {
1214
+ color: $red-color;
1215
+ }
1216
+ }
1217
+
1218
+ a,
1219
+ button {
1220
+ display: block;
1221
+ white-space: nowrap;
1222
+ color: $main-font-color;
1223
+ width: 100%;
1224
+ padding: 7px 20px;
1225
+ margin: 0;
1226
+ box-sizing: border-box;
1227
+ transition: all 0.2s ease;
1228
+
1229
+ &:hover {
1230
+ color: $primary-color;
1231
+ }
1232
+ }
1233
+ }
1234
+ }
1235
+ }
1236
+
1237
+ .inline-edit-col-left,
1238
+ .inline-edit-col-right {
1239
+ display: none;
1240
+ }
1241
+ }
1242
+ }
1243
+ }
1244
+
1245
+ #poststuff {
1246
+ padding: 0;
1247
+ margin: 0;
1248
+
1249
+ #post-body {
1250
+ margin: 0;
1251
+
1252
+ #post-body-content {
1253
+ float: none;
1254
+ margin: 0;
1255
+ }
1256
+
1257
+ .postbox-container {
1258
+ display: none;
1259
+ }
1260
+ }
1261
+ }
1262
+
1263
+ .wpz-insta_tabs-content {
1264
+ display: grid;
1265
+
1266
+ * {
1267
+ pointer-events: inherit;
1268
+ }
1269
+
1270
+ > * {
1271
+ grid-column: 1;
1272
+ grid-row: 1;
1273
+ align-self: start;
1274
+ // transition: all 0.3s ease;
1275
+
1276
+ &:not(.active) {
1277
+ pointer-events: none;
1278
+ opacity: 0;
1279
+
1280
+ * {
1281
+ pointer-events: none !important;
1282
+ }
1283
+ }
1284
+ }
1285
+ }
1286
+
1287
+ .wpz-insta_sidebar {
1288
+ display: flex;
1289
+ gap: 20px;
1290
+ font-family: $main-font-family;
1291
+ color: $main-font-color;
1292
+
1293
+ &.hide {
1294
+ pointer-events: none;
1295
+ }
1296
+
1297
+ &:not(.show-pro) {
1298
+ .wpz-insta_pro-only {
1299
+ /*opacity: 0;
1300
+ max-height: 0;
1301
+ overflow: hidden;
1302
+ margin: 0 0 -20px;*/
1303
+ display: none;
1304
+ }
1305
+ }
1306
+
1307
+ input, textarea, select {
1308
+ font-family: $main-font-family;
1309
+ font-size: 14px;
1310
+ }
1311
+
1312
+ .wpz-insta_sidebar-left,
1313
+ .wpz-insta_sidebar-right {
1314
+ background: $light-color;
1315
+ border: 1px solid $light-grey-color;
1316
+ border-radius: 3px;
1317
+ box-shadow: 1px 1px 2px rgba($dark-color, 0.1);
1318
+ }
1319
+
1320
+ .wpz-insta_sidebar-left {
1321
+ display: grid;
1322
+ grid-template-rows: auto 1fr;
1323
+ flex-basis: 28%;
1324
+
1325
+ &.is-pro {
1326
+ .wpz-insta_sidebar-left-section {
1327
+ max-height: 70vh !important;
1328
+ }
1329
+ }
1330
+
1331
+ .wpz-insta_sidebar-left-section-head {
1332
+ display: flex;
1333
+ align-items: center;
1334
+ grid-column: 1;
1335
+ grid-row: 1;
1336
+ background: $very-light-grey-color;
1337
+ min-height: 30px;
1338
+ padding: 20px;
1339
+ border-bottom: 1px solid $light-grey-color;
1340
+ }
1341
+
1342
+ .wpz-insta_sidebar-left-section {
1343
+ grid-column: 1;
1344
+ grid-row: 2;
1345
+ align-self: start;
1346
+ transition: all 0.3s ease;
1347
+ overflow-x: hidden;
1348
+ overflow-y: auto;
1349
+
1350
+ &:not(.active) {
1351
+ pointer-events: none;
1352
+ opacity: 0;
1353
+ }
1354
+ }
1355
+ }
1356
+
1357
+ .wpz-insta_sidebar-right {
1358
+ flex-grow: 1;
1359
+ position: relative;
1360
+
1361
+ &.is-loading {
1362
+ transition: all 0.3s ease;
1363
+
1364
+ &.hide-loading {
1365
+ &::before {
1366
+ opacity: 0;
1367
+ }
1368
+ }
1369
+
1370
+ &::before {
1371
+ content: '';
1372
+ position: absolute;
1373
+ top: 300px;
1374
+ left: 50%;
1375
+ z-index: 1;
1376
+ background-image: url("data:image/svg+xml,%3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' viewBox='0 0 50 50' xml:space='preserve'%3E%3Cpath fill='%233496ff' d='M43.935,25.145c0-10.318-8.364-18.683-18.683-18.683c-10.318,0-18.683,8.365-18.683,18.683h4.068c0-8.071,6.543-14.615,14.615-14.615c8.072,0,14.615,6.543,14.615,14.615H43.935z'%3E%3CanimateTransform attributeType='xml' attributeName='transform' type='rotate' from='0 25 25' to='360 25 25' dur='0.6s' repeatCount='indefinite'/%3E%3C/path%3E%3C/svg%3E");
1377
+ background-size: contain;
1378
+ height: 64px;
1379
+ width: 64px;
1380
+ opacity: 1;
1381
+ transform: translateX(-50%);
1382
+ transition: all 0.3s ease;
1383
+ }
1384
+ }
1385
+ }
1386
+ }
1387
+
1388
+ .wpz-insta_sidebar-section-big-title {
1389
+ font-size: 18px;
1390
+ font-weight: 600;
1391
+ margin: 30px 20px;
1392
+ }
1393
+
1394
+ .wpz-insta_sidebar-section {
1395
+ padding: 30px 0 0;
1396
+ border-top: 1px solid $light-grey-color;
1397
+ margin: 30px 20px 20px;
1398
+
1399
+ &:first-child,
1400
+ &.no-top-border {
1401
+ padding-top: 0;
1402
+ border-top: 0;
1403
+ margin-top: 20px;
1404
+ }
1405
+
1406
+ .wpz-insta_sidebar-section-title {
1407
+ font-size: 18px;
1408
+ font-weight: 600;
1409
+ margin: 0 0 15px;
1410
+
1411
+ &.smaller-title {
1412
+ font-size: 14px;
1413
+ }
1414
+ }
1415
+
1416
+ .wpz-insta_sidebar-section-description {
1417
+ font-size: 14px;
1418
+ font-weight: normal;
1419
+ margin: 0 0 20px;
1420
+
1421
+ &:last-child {
1422
+ margin-bottom: 0;
1423
+ }
1424
+ }
1425
+
1426
+ p {
1427
+ font-size: 14px;
1428
+ }
1429
+
1430
+ ul,
1431
+ ol {
1432
+ li {
1433
+ margin-bottom: 1em;
1434
+ }
1435
+ }
1436
+
1437
+ .wpz-insta_text-btn-aligned {
1438
+ display: flex;
1439
+ align-items: stretch;
1440
+ gap: 15px;
1441
+ width: 100%;
1442
+
1443
+ > input {
1444
+ flex-grow: 1;
1445
+ margin: 0;
1446
+ }
1447
+ }
1448
+
1449
+ .wpz-insta_shortcode,
1450
+ .wpz-insta_shortcode-copy-btn {
1451
+ display: flex;
1452
+ align-items: center;
1453
+ font-size: 14px;
1454
+ line-height: 2;
1455
+ }
1456
+
1457
+ .wpz-insta_shortcode {
1458
+ background: transparent;
1459
+ border: 1px solid $light-grey-color;
1460
+ }
1461
+
1462
+ .wpz-insta_shortcode-copy-btn {
1463
+ display: grid;
1464
+ text-align: center;
1465
+ color: $primary-color;
1466
+ background: transparent;
1467
+ border: 1px solid $primary-color;
1468
+ box-shadow: none;
1469
+ transition: all 0.3s ease;
1470
+
1471
+ &:hover {
1472
+ color: $light-color;
1473
+ background: $primary-color;
1474
+ }
1475
+
1476
+ &.success {
1477
+ color: $light-color;
1478
+ background: $green-color;
1479
+ border-color: $green-color;
1480
+
1481
+ .wpz-insta_shortcode-copy-btn-text-normal {
1482
+ opacity: 0;
1483
+ }
1484
+
1485
+ .wpz-insta_shortcode-copy-btn-text-success {
1486
+ opacity: 1;
1487
+ }
1488
+ }
1489
+
1490
+ .wpz-insta_shortcode-copy-btn-text-normal,
1491
+ .wpz-insta_shortcode-copy-btn-text-success {
1492
+ grid-column: 1;
1493
+ grid-row: 1;
1494
+ transition: all 0.3s ease;
1495
+ }
1496
+
1497
+ .wpz-insta_shortcode-copy-btn-text-normal {
1498
+ opacity: 1;
1499
+ }
1500
+
1501
+ .wpz-insta_shortcode-copy-btn-text-success {
1502
+ opacity: 0;
1503
+ }
1504
+ }
1505
+
1506
+ .wpz-insta_feed-user-select {
1507
+ &.is-set {
1508
+ .wpz-insta_feed-user-select-input {
1509
+ .wpz-insta_feed-user-select-button-wrap {
1510
+ .wpz-insta_feed-user-select-button-highlight {
1511
+ display: none;
1512
+ }
1513
+
1514
+ .wpz-insta_feed-user-select-button {
1515
+ pointer-events: none;
1516
+ opacity: 0;
1517
+ }
1518
+ }
1519
+ }
1520
+
1521
+ .wpz-insta_feed-user-select-edit-link {
1522
+ display: inline-block;
1523
+ }
1524
+ }
1525
+
1526
+ &:not(.is-set) {
1527
+ .wpz-insta_feed-user-select-input {
1528
+ .wpz-insta_feed-user-select-info {
1529
+ pointer-events: none;
1530
+ opacity: 0;
1531
+ }
1532
+ }
1533
+ }
1534
+
1535
+ .wpz-insta_feed-user-select-input {
1536
+ display: grid;
1537
+ background: $lighter-grey-color;
1538
+ border: 1px solid $darker-blue-grey-color;
1539
+ border-radius: 4px;
1540
+
1541
+ .wpz-insta_feed-user-select-info {
1542
+ display: flex;
1543
+ align-items: center;
1544
+ justify-content: space-between;
1545
+ grid-column: 1;
1546
+ grid-row: 1;
1547
+ margin: 15px;
1548
+ transition: all 0.3s ease;
1549
+
1550
+ .wpz-insta_feed-user-select-info-left {
1551
+ .wpz-insta_feed-user-select-info-name {
1552
+ font-size: 14px;
1553
+ font-weight: 600;
1554
+ padding: 0;
1555
+ margin: 0;
1556
+ }
1557
+
1558
+ .wpz-insta_feed-user-select-info-type {
1559
+ font-size: 12px;
1560
+ color: $blue-grey-color;
1561
+ padding: 0;
1562
+ margin: 0;
1563
+ }
1564
+ }
1565
+
1566
+ .wpz-insta_feed-user-remove-button {
1567
+ font-size: 13px;
1568
+ font-weight: 600;
1569
+ color: $primary-color;
1570
+ background: transparent;
1571
+ border: 1px solid $primary-color;
1572
+ box-shadow: none;
1573
+
1574
+ &:hover {
1575
+ color: $red-color;
1576
+ border-color: $red-color;
1577
+ }
1578
+ }
1579
+ }
1580
+
1581
+ .wpz-insta_feed-user-select-button-wrap {
1582
+ position: relative;
1583
+ display: flex;
1584
+ align-items: stretch;
1585
+ justify-content: stretch;
1586
+ grid-column: 1;
1587
+ grid-row: 1;
1588
+ pointer-events: none;
1589
+
1590
+ .wpz-insta_feed-user-select-button-highlight {
1591
+ display: block;
1592
+ position: absolute;
1593
+ top: -2px;
1594
+ left: -2px;
1595
+ right: -2px;
1596
+ bottom: -2px;
1597
+ z-index: 1;
1598
+ pointer-events: none;
1599
+ border: 0;
1600
+ border-radius: 6px;
1601
+ box-shadow: inset 0 0 1px 1px $primary-color, 0 0 1px 1px $primary-color;
1602
+ transition: all 0.3s ease;
1603
+ animation: highlighting 0.8s infinite;
1604
+ }
1605
+
1606
+ .wpz-insta_feed-user-select-button {
1607
+ display: flex;
1608
+ flex-grow: 1;
1609
+ position: relative;
1610
+ z-index: 2;
1611
+ pointer-events: all;
1612
+ font-size: 14px;
1613
+ font-weight: 600;
1614
+ color: $main-font-color;
1615
+ background: $lighter-grey-color;
1616
+ opacity: 1;
1617
+ border: 0;
1618
+ border-radius: 4px;
1619
+ box-shadow: none;
1620
+ transition: all 0.3s ease;
1621
+
1622
+ &:hover {
1623
+ color: $light-color;
1624
+ background: $primary-color;
1625
+ }
1626
+ }
1627
+ }
1628
+ }
1629
+
1630
+ .wpz-insta_feed-user-select-edit-link {
1631
+ display: none;
1632
+ margin: 20px 0 0;
1633
+ }
1634
+ }
1635
+
1636
+ .wpz-insta_feed-layout {
1637
+ display: flex;
1638
+ align-items: end;
1639
+ gap: 10px;
1640
+ max-height: 999em;
1641
+ margin: 0 0 20px;
1642
+ // transition: all 0.3s ease;
1643
+
1644
+ .wpz-insta_feed-layout-pro {
1645
+ display: flex;
1646
+ gap: 15px;
1647
+ padding: 10px;
1648
+ border-radius: 4px;
1649
+ box-shadow: 0 0 0 2px $orange-color;
1650
+ max-width: 76%;
1651
+ box-sizing: border-box;
1652
+
1653
+ legend {
1654
+ font-size: 13px;
1655
+ font-weight: 600;
1656
+ color: $light-color;
1657
+ background: $orange-color;
1658
+ padding: 0 5px;
1659
+ margin: 0 auto;
1660
+ border-radius: 2px;
1661
+ box-shadow: none;
1662
+ }
1663
+
1664
+ .wpz-insta_feed-layout-option {
1665
+ pointer-events: none;
1666
+ opacity: 0.75;
1667
+ }
1668
+ }
1669
+
1670
+ > .wpz-insta_feed-layout-option {
1671
+ margin-bottom: 10px !important;
1672
+ max-width: 21%;
1673
+ }
1674
+
1675
+ .wpz-insta_feed-layout-option {
1676
+ display: block;
1677
+ background: transparent;
1678
+ padding: 0;
1679
+ border: 0;
1680
+ box-shadow: none;
1681
+ outline: none;
1682
+ margin: 0;
1683
+ transition: all 0.3s ease;
1684
+
1685
+ &.disabled {
1686
+ pointer-events: none;
1687
+ opacity: 0.4;
1688
+ }
1689
+
1690
+ &:hover {
1691
+ svg {
1692
+ color: $darker-blue-grey-color;
1693
+ fill: $darker-blue-grey-color;
1694
+ }
1695
+ }
1696
+
1697
+ input {
1698
+ display: none;
1699
+ }
1700
+
1701
+ svg {
1702
+ display: block;
1703
+ color: $blue-grey-color;
1704
+ fill: $blue-grey-color;
1705
+ max-width: 100%;
1706
+ height: auto;
1707
+ transition: all 0.3s ease;
1708
+ }
1709
+
1710
+ input:checked ~ svg {
1711
+ color: $primary-color;
1712
+ fill: $primary-color;
1713
+ }
1714
+ }
1715
+ }
1716
+
1717
+ .wpz-insta_feed-layout-etc,
1718
+ .wpz-insta_feed-general,
1719
+ .wpz-insta_feed-profile-general,
1720
+ .wpz-insta_feed-load-more-general {
1721
+ font-size: 14px;
1722
+ }
1723
+
1724
+ .wpz-insta_table {
1725
+ display: flex;
1726
+ flex-direction: column;
1727
+ gap: 20px;
1728
+ width: 100%;
1729
+
1730
+ .wpz-insta_table-row {
1731
+ display: flex;
1732
+ align-items: center;
1733
+ width: 100%;
1734
+
1735
+ &.wpz-insta_table-row-full {
1736
+ flex-direction: column;
1737
+ align-items: stretch;
1738
+
1739
+ .wpz-insta_table-cell {
1740
+ width: 100%;
1741
+ }
1742
+ }
1743
+
1744
+ &.hidden {
1745
+ display: none;
1746
+ }
1747
+
1748
+ .wpz-insta_table-cell {
1749
+ display: block;
1750
+ white-space: nowrap;
1751
+ line-height: 30px;
1752
+ width: 50%;
1753
+
1754
+ input {
1755
+ margin: 0;
1756
+ }
1757
+ }
1758
+
1759
+ > input[type='checkbox'] {
1760
+ margin: 0 1em 0 0;
1761
+ }
1762
+ }
1763
+ }
1764
+
1765
+ .wpz-insta_show-on-hover {
1766
+ display: table-row;
1767
+
1768
+ > strong {
1769
+ display: block;
1770
+ margin: 0 0 20px;
1771
+ }
1772
+ }
1773
+
1774
+ .wpz-insta_feed-only-pro {
1775
+ display: flex;
1776
+ flex-direction: column;
1777
+ gap: 20px;
1778
+ pointer-events: none;
1779
+ user-select: none;
1780
+ padding: 0;
1781
+
1782
+ &.wpz-insta_pro-only-with-bottom {
1783
+ padding-bottom: 10px;
1784
+ border-bottom: 2px solid $orange-color;
1785
+ }
1786
+
1787
+ &.hidden {
1788
+ display: none;
1789
+ }
1790
+
1791
+ legend {
1792
+ display: flex;
1793
+ width: 100%;
1794
+ padding: 0;
1795
+ border-bottom: 2px solid $orange-color;
1796
+ margin: 0 0 10px;
1797
+
1798
+ > strong {
1799
+ font-size: 13px;
1800
+ color: $light-color;
1801
+ background: $orange-color;
1802
+ padding: 0 5px;
1803
+ border-top-left-radius: 2px;
1804
+ border-top-right-radius: 2px;
1805
+ box-shadow: none;
1806
+ }
1807
+ }
1808
+
1809
+ > label {
1810
+ opacity: 0.5;
1811
+ }
1812
+ }
1813
+
1814
+ &.wpz-insta_sidebar-section-token,
1815
+ &.wpz-insta_sidebar-section-check-new,
1816
+ &.wpz-insta_sidebar-section-request-timeout {
1817
+ max-height: 0;
1818
+ opacity: 0;
1819
+ overflow: hidden;
1820
+ padding-top: 0;
1821
+ margin-top: 0;
1822
+ margin-bottom: 0;
1823
+ transition: all 0.3s ease;
1824
+
1825
+ &.active {
1826
+ max-height: 999em;
1827
+ opacity: 1;
1828
+ padding-top: 30px;
1829
+ margin-top: 30px;
1830
+ margin-bottom: 20px;
1831
+ overflow: visible;
1832
+ }
1833
+ }
1834
+
1835
+ &.wpz-insta_sidebar-section-token {
1836
+ #wpz-insta_user-token {
1837
+ display: block;
1838
+ font-family: $main-font-family;
1839
+ font-size: 14px;
1840
+ font-weight: normal;
1841
+ text-overflow: ellipsis;
1842
+ color: $main-font-color;
1843
+ background: $light-color;
1844
+ width: 100%;
1845
+ padding: 4px 8px;
1846
+ border: 1px solid $light-grey-color;
1847
+ border-radius: 2px;
1848
+ box-shadow: none;
1849
+ }
1850
+ }
1851
+
1852
+ &.wpz-insta_sidebar-section-request-timeout > label > strong {
1853
+ font-size: 14px;
1854
+ }
1855
+
1856
+ &.wpz-insta_sidebar-section-load-more.wpz-insta_pro-only {
1857
+ pointer-events: none;
1858
+ user-select: none;
1859
+ padding-top: 0;
1860
+ padding-bottom: 20px;
1861
+ border-top: none;
1862
+ border-bottom: 2px solid $orange-color;
1863
+ margin-top: 0;
1864
+
1865
+ .wpz-insta_sidebar-section-title,
1866
+ .wpz-insta_table > label {
1867
+ opacity: 0.5;
1868
+ }
1869
+ }
1870
+ }
1871
+
1872
+ .wpz-insta_widget-preview {
1873
+ position: relative;
1874
+ z-index: 2;
1875
+ padding: 0;
1876
+ margin: 0;
1877
+
1878
+ .wpz-insta_widget-preview-header {
1879
+ display: flex;
1880
+ align-items: center;
1881
+ padding: 0;
1882
+ border-bottom: 1px solid $light-grey-color;
1883
+ margin: 0;
1884
+
1885
+ .wpz-insta_widget-preview-header-title {
1886
+ flex-grow: 1;
1887
+ font-size: 14px;
1888
+ font-weight: 600;
1889
+ text-align: center;
1890
+ padding: 0;
1891
+ margin: 0;
1892
+ }
1893
+
1894
+ .wpz-insta_widget-preview-header-links {
1895
+ display: flex;
1896
+ padding: 0;
1897
+ margin: 0;
1898
+ transition: all 0.3s ease;
1899
+
1900
+ &.disabled {
1901
+ pointer-events: none;
1902
+ opacity: 0.3;
1903
+
1904
+ .wpz-insta_widget-preview-header-link.active {
1905
+ background: $light-grey-color;
1906
+
1907
+ svg {
1908
+ fill: $blue-grey-color;
1909
+ }
1910
+ }
1911
+ }
1912
+
1913
+ .wpz-insta_widget-preview-header-link {
1914
+ display: flex;
1915
+ align-items: center;
1916
+ justify-content: center;
1917
+ cursor: pointer;
1918
+ background: $light-grey-color;
1919
+ min-width: 70px;
1920
+ min-height: 70px;
1921
+ padding: 0;
1922
+ margin: 0;
1923
+ transition: all 0.3s ease;
1924
+
1925
+ &:hover {
1926
+ background: $lighter-grey-color;
1927
+ }
1928
+
1929
+ &.active {
1930
+ cursor: default;
1931
+ color: $light-color;
1932
+ background: $primary-color;
1933
+
1934
+ svg {
1935
+ fill: $light-color;
1936
+ }
1937
+ }
1938
+
1939
+ svg {
1940
+ fill: $blue-grey-color;
1941
+ padding: 0;
1942
+ margin: 0;
1943
+ transition: all 0.3s ease;
1944
+ }
1945
+ }
1946
+ }
1947
+ }
1948
+
1949
+ .wpz-insta_widget-preview-view {
1950
+ display: flex;
1951
+ align-items: start;
1952
+ justify-content: center;
1953
+ padding: 0;
1954
+ margin: 0;
1955
+ overflow-x: hidden;
1956
+ overflow-y: auto;
1957
+ transition: all 0.3s ease;
1958
+
1959
+ &.wpz-insta_widget-preview-size-desktop .wpz-insta_widget-preview-view-inner {
1960
+ max-width: 500px;
1961
+ }
1962
+
1963
+ &.wpz-insta_widget-preview-size-tablet .wpz-insta_widget-preview-view-inner {
1964
+ max-width: 768px;
1965
+ }
1966
+
1967
+ &.wpz-insta_widget-preview-size-mobile .wpz-insta_widget-preview-view-inner {
1968
+ max-width: 380px;
1969
+ }
1970
+
1971
+ &.layout-fullwidth {
1972
+ &.wpz-insta_widget-preview-size-desktop .wpz-insta_widget-preview-view-inner {
1973
+ max-width: 100%;
1974
+ }
1975
+ }
1976
+
1977
+ .wpz-insta_widget-preview-view-inner {
1978
+ flex-grow: 1;
1979
+ padding: 0;
1980
+ transition: all 0.3s ease;
1981
+
1982
+ iframe {
1983
+ display: block;
1984
+ height: 400px;
1985
+ width: 100%;
1986
+ visibility: visible;
1987
+ opacity: 1;
1988
+ overflow: hidden;
1989
+ transition: all 0.3s ease;
1990
+
1991
+ &.wpz-insta_preview-hidden {
1992
+ pointer-events: none;
1993
+ visibility: hidden;
1994
+ opacity: 0;
1995
+ }
1996
+ }
1997
+ }
1998
+ }
1999
+ }
2000
+
2001
+ .wpz-insta_tabs-config-connect {
2002
+ font-family: $main-font-family;
2003
+ color: $main-font-color;
2004
+ background: $light-color;
2005
+ padding: 25px 30px;
2006
+ border: 1px solid $light-grey-color;
2007
+ border-radius: 3px;
2008
+ box-shadow: 1px 1px 2px rgba($dark-color, 0.1);
2009
+
2010
+ .wpz-insta_tabs-config-connect-title {
2011
+ font-size: 24px;
2012
+ font-weight: 600;
2013
+ padding: 0;
2014
+ margin: 0 0 10px;
2015
+ }
2016
+
2017
+ .wpz-insta_tabs-config-connect-description {
2018
+ padding: 0;
2019
+ margin: 0 0 20px;
2020
+ }
2021
+
2022
+ .wpz-insta_tabs-config-connect-accounts {
2023
+ display: grid;
2024
+ grid-template-columns: repeat(auto-fill, minmax(300px , 1fr));
2025
+ gap: 30px;
2026
+ padding: 0;
2027
+ margin: 0;
2028
+
2029
+ li {
2030
+ cursor: pointer;
2031
+ background: $lighter-grey-color;
2032
+ padding: 15px;
2033
+ border: 1px solid $darker-blue-grey-color;
2034
+ border-radius: 4px;
2035
+ margin: 0;
2036
+ transition: all 0.3s ease;
2037
+
2038
+ &:hover {
2039
+ color: $light-color;
2040
+ background: $primary-color;
2041
+ border-color: darken($primary-color, 20%);
2042
+
2043
+ h3 {
2044
+ color: $light-color;
2045
+ }
2046
+
2047
+ p {
2048
+ color: rgba($light-color, 0.6);
2049
+ }
2050
+ }
2051
+
2052
+ h3 {
2053
+ font-size: 14px;
2054
+ font-weight: 600;
2055
+ padding: 0;
2056
+ margin: 0 0 5px;
2057
+ transition: all 0.3s ease;
2058
+ }
2059
+
2060
+ p {
2061
+ font-size: 12px;
2062
+ color: $blue-grey-color;
2063
+ padding: 0;
2064
+ margin: 0;
2065
+ transition: all 0.3s ease;
2066
+ }
2067
+ }
2068
+ }
2069
+
2070
+ hr {
2071
+ margin: 30px 0;
2072
+ }
2073
+
2074
+ .wpz-insta_tabs-config-connect-subtitle {
2075
+ font-size: 14px;
2076
+ font-weight: normal;
2077
+ padding: 0;
2078
+ margin: 0 0 20px;
2079
+ }
2080
+ }
2081
+
2082
+ .wpz-insta_settings-support,
2083
+ .wpz-insta_settings-license {
2084
+ font-family: $main-font-family;
2085
+ color: $main-font-color;
2086
+
2087
+ .section-title {
2088
+ font-size: 20px;
2089
+ font-weight: 600;
2090
+ line-height: 24px;
2091
+ margin: 0 0 1em;
2092
+
2093
+ svg {
2094
+ vertical-align: text-bottom;
2095
+ margin: 0 5px 0 0;
2096
+ }
2097
+ }
2098
+
2099
+ .section-description {
2100
+ padding: 0;
2101
+ margin: 0 0 2em;
2102
+ }
2103
+ }
2104
+
2105
+ .wpz-insta_settings-connect {
2106
+ font-family: $main-font-family;
2107
+ color: $main-font-color;
2108
+ background: $light-color;
2109
+ padding: 25px 30px;
2110
+ border: 1px solid $light-grey-color;
2111
+ border-radius: 3px;
2112
+ box-shadow: 1px 1px 2px rgba($dark-color, 0.1);
2113
+
2114
+ .section-title {
2115
+ font-size: 24px;
2116
+ font-weight: 600;
2117
+ line-height: 29px;
2118
+ margin: 0 0 16px;
2119
+ }
2120
+
2121
+ .section-description {
2122
+ font-size: 14px;
2123
+ white-space: pre-wrap;
2124
+ margin: 0 0 30px;
2125
+ }
2126
+
2127
+ .account-options {
2128
+ display: flex;
2129
+ flex-wrap: wrap;
2130
+ gap: 30px;
2131
+ margin: 0 0 30px;
2132
+
2133
+ .account-option {
2134
+ display: flex;
2135
+ flex-direction: column;
2136
+ min-width: 350px;
2137
+ padding: 20px;
2138
+ border: 1px solid $light-grey-color;
2139
+ border-radius: 3px;
2140
+
2141
+ .account-option-title {
2142
+ font-size: 16px;
2143
+ font-weight: 600;
2144
+ line-height: 19px;
2145
+ margin: 0 0 16px;
2146
+ }
2147
+
2148
+ .account-option-checklist {
2149
+ font-size: 14px;
2150
+ padding: 0;
2151
+ margin: 0 0 20px;
2152
+
2153
+ li {
2154
+ line-height: 18px;
2155
+ background: url("data:image/svg+xml,%3Csvg width='18' height='18' viewBox='0 0 18 18' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M9 0C4.03759 0 0 4.03759 0 9C0 13.9624 4.03759 18 9 18C13.9624 18 18 13.9624 18 9C18 4.03759 13.9624 0 9 0ZM14.0301 6.63158L8.2782 12.3383C7.93985 12.6767 7.3985 12.6992 7.03759 12.3609L3.99248 9.58647C3.63158 9.24812 3.60902 8.68421 3.92481 8.32331C4.26316 7.96241 4.82707 7.93985 5.18797 8.2782L7.6015 10.4887L12.7444 5.34586C13.1053 4.98496 13.6692 4.98496 14.0301 5.34586C14.391 5.70677 14.391 6.27068 14.0301 6.63158Z' fill='%2322BB66'/%3E%3C/svg%3E");
2156
+ background-position: 0 5px;
2157
+ background-repeat: no-repeat;
2158
+ min-height: 18px;
2159
+ padding: 5px 0 5px 32px;
2160
+ margin: 0;
2161
+ }
2162
+ }
2163
+
2164
+ .account-option-token-input {
2165
+ font-family: $main-font-family;
2166
+ font-size: 14px;
2167
+ line-height: 17px;
2168
+ color: $main-font-color;
2169
+ padding: 10px;
2170
+ border: 1px solid $light-grey-color;
2171
+ box-shadow: none;
2172
+ transition: all 0.3s ease;
2173
+
2174
+ &:hover,
2175
+ &:focus {
2176
+ border-color: $primary-color;
2177
+ box-shadow: none;
2178
+ }
2179
+ }
2180
+
2181
+ .account-option-button {
2182
+ display: flex;
2183
+ cursor: pointer;
2184
+ align-items: center;
2185
+ justify-content: center;
2186
+ font-weight: 600;
2187
+ line-height: 1;
2188
+ color: #fff;
2189
+ background: $primary-color;
2190
+ background-position: center left;
2191
+ background-repeat: no-repeat;
2192
+ width: 100%;
2193
+ padding: 15px 40px;
2194
+ border: 0;
2195
+ border-radius: 2px;
2196
+ margin: auto 0 0;
2197
+ box-shadow: none;
2198
+ transition: all 0.3s ease;
2199
+
2200
+ &:hover,
2201
+ &:focus {
2202
+ background-color: $secondary-color;
2203
+ }
2204
+
2205
+ &.disabled {
2206
+ pointer-events: none;
2207
+ opacity: 0.5;
2208
+ }
2209
+
2210
+ svg {
2211
+ margin: 0 16px 0 0;
2212
+ }
2213
+ }
2214
+ }
2215
+ }
2216
+
2217
+ .section-notice {
2218
+ display: flex;
2219
+ align-items: center;
2220
+ font-size: 13px;
2221
+ margin: 0;
2222
+
2223
+ svg {
2224
+ margin: 0 12px 0 0;
2225
+ }
2226
+ }
2227
+ }
2228
+ }
2229
+ }
2230
+
2231
+ .wpz-insta_settings-footer .wpz-insta_settings-footer-wrap {
2232
+ display: flex;
2233
+ align-items: center;
2234
+ font-family: $main-font-family;
2235
+ color: $main-font-color;
2236
+ background: $light-color;
2237
+ padding: 30px;
2238
+ border: 1px solid $light-grey-color;
2239
+ border-radius: 3px;
2240
+ box-shadow: 1px 1px 2px rgba($dark-color, 0.1);
2241
+ margin: 20px 0;
2242
+
2243
+ .wpz-insta_settings-footer-logo {
2244
+ padding: 0;
2245
+ margin: 0 30px 0 0;
2246
+
2247
+ a {
2248
+ display: block;
2249
+ text-indent: -999em;
2250
+ background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAsUAAAB1CAYAAACmnpxEAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA3BpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQwIDc5LjE2MDQ1MSwgMjAxNy8wNS8wNi0wMTowODoyMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDpGODdGMTE3NDA3MjA2ODExODIyQUJEN0ZFNTE5QkYyRSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoyMERERTJGNDlFNjgxMUU4ODM0NkExODhFNzlBMDMzQiIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoyMERERTJGMzlFNjgxMUU4ODM0NkExODhFNzlBMDMzQiIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxNSAoTWFjaW50b3NoKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjEyMzc5NGVhLTBiZGYtNDQ3Zi05ODc1LTY1ZDk5NjhjZGVlNiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpGODdGMTE3NDA3MjA2ODExODIyQUJEN0ZFNTE5QkYyRSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pkkr7JsAAB/xSURBVHja7F1RUhy5shWE/y9vBVNegdsroPi874dmBXSvAIi47xv4nhsBrIBmBW7/zP2kWIHbK3B5BbdnBbwSVnvaDNBdVSelTNU5ER0MY7u6pJNKHaVSqZ3Hx0dHEARBEARBEEPGLruAIAiCIAiCoCgmCIIgCIIgCIpigiAIgiAIgqAoJgiCIAiCIIhB4936Lzs7O+wRgiAIYiM+/PNfZfNjr/mMms8/ws9tUDef7+Gn/yy+/uffS/ZoMg6L8CGHhFmgikbsrD9o9L//txocJtAMwmrgDm0UJiULWDZ8LbZ00hbAScAmb1pQN/ZTG+LXzwue4/0gnEbo/vBjqvk8NJ9qG19BkMOEfbkn0H/m/YRRXVMv/vj9Zx+/e/aHk+Zzbqj/hh7avgpOzgL8AuZgi793b2jw/iL6w4Tgf34N/10PYXIPTuzeEW1w3XzODPB63HzGTj5YUoTPOHy3H0fz5vO5GUNzmgs5VIZJmH+lMWs+04Et3O4ji+Kz4I9fFMUEQXTD3toCZbw2yJdhQZBz9KQk/a0x0vhSYVKaBCFVJB5P/j0mYQx5cXAztKgZOdTbzZG+ZzwkUdzgk4u/+/3LnExRTBDyE8PY/RU98RPCPLMJ/gNpti2KQ/rLyfqCTtkYOvWf5j39AvNy6Klzxjlc+T/LHMYKBOw1/TUewm5J086rFH5x8cfvFUUxQaRD8WyCv2sc3sx4m0rS2kkkaBFS54Y49O9ZhrFzxtxjkxw+BQmschjyiYuIX3nofgRScrbhcZgXY+NvCzOWZCOItBP8beMQvjWfiVFnVjhDh3MViplk3918fO7evdFFjX/nLz66FETKIO2HHA4iCFBmbsd+/rhN9PUPFMUEoQ/FmjgeG3v3EenrxXvsCchvx94aFlLP4aNLFscNObTL4X5sPxEOTOaKFHnEKywoiglCt0j61DjAT4YiJ/ukzYYobmzqSXy4H4efcsJeGDe3uUeNB8ChhahxCoF6nKk9X7m0gZWKopgg9MNHTKxETkrSpXtB4bcnwzb7lbNT17wLvFC8D9uxuYmHoXB4aoDDFD5vnKFNp8ojXsHXJ15SFBOEDfyMnCh2arEK2OfMcYyJ58uAFi/eHr/ktN1MDlVxkYqDIjOb9oue28SvUb30P1l9Aj8gljwRTQBxGsTnmcIb9CiIFfdfWFCdDrBf/Xjx0cYD676YHKrjMKXP8ykUuWiLlHnEKzy89D8ZKW63srnf5jPU09CEGCZK7aokNb0wE/JV/iDWl4GKqeeiyuTCjRyq5TDlGYosUigU5BGvsKAo7ofzFgN5zO4iwNB4lTIP2fUQxF//82/4TVVBQHxxjOKbFcbkUDWHKQMB5lMoFOQRr7Bc/PE7RXGfVXtLoXvCXiMkhHEoxaQFJSlRJ4j9wqlgF9sUxuTwTQ6LxNwULv2Wv9kqFEryiFd4NQ2Fong7TFoOhlHKwvxE3rbY2NaFAgdH+9YpiJm69bKoUl+ujRxu5DB1qUoNPs/yLvStItt+eO0PeNBuO3SJ/PoVXcWuIwRw7q9IbcRVSvvqG3mrw0cjRkLOu8pUEFeBy+9rv6+EzMpO/hH+e5ToPf33+lzGqUaDI4cmOPygwFR8CkXR+BGtvvM1+75wunYWq21Fcd1CyCEHhj9Vv1BKpl+ZFR3+qY/oXQobb9c+K2MYV8d3bSP0CofZZlwEG3QJvrvzqruxr48JK1L0zSe+a979QuF4nwg5b29jR5mIKd+WuyDyN43r+QvvXIQ+9jY0jvju3ic/NO88oyAmh8LzneQc4fv72pAg9nZyrombxR+/v/p3dx4fH//6ZWenTUORpWLqxsjfKyW0z1Wal9om/uDMvqEca9O+j4lXn4jBdtA16rpWq3cUJogy4gRx3bz3WaK+/2/Pdh4kjnS/Joglct4Wob1L8PvGFFN1EFEz9EI/9PuxixNJ8hx81BJpI4f2OXyjTz45mXSHpPNuh/nxWwz7boTuDuI5fdIn7oCiWOWWwNpquCt82sWFMjtFOq07N3AEoVOFz3Wwm3GYIKTzv3wN45vY4wZx4ISCGMJBDDFVh8X9THAM+WfP1iJKksLK95cP6BwpsDlyaJzDiHPtOkaGUihi1SOGzSe7PQbBwmFzAjUmkPetIrEXJltNONRoiJkJ5Xnz8Q7b737MhL/uPEET+zp7ValSBgXxXoTJxr+zvzDmfaytar9Qaj4HQexITvjj1AdFyaF9DjfwWwpzq/7AXeQ8Ypit9a0+MQc26lgZod6gEYJWW3k2lJHWvLlv4wRRh4NVHwWF4CRBqaK++cSVonFuShAH+PeVLDHm/boXUteJxs08jJm54NekLg1FDu1z+BYOhZ+vujRbxDzinyanRRQ/ABs1UlYyB3V4QE15NvDqde6IbSeIVQ7YTOgrYi+8+trzg5LxMLImiEP0RSpK5N/3yO9ypL5S3H9/2G2RypkvUu3iDZDDy9w4jOAjt9EVhVJBvNoFiQlY0Gm3p9HPXftT+5uEqBYgVzlaVnXI1evg84k7jBcfNZYoJxRtYggOr68zTr7DsHbACY1aUBCXTi764jn5GHy6pjFz7eRKcJ0nsLshcniRE4dbcOz9Y4zLYrSmUMTKI163sUqFKA5ADsBDJUZdOmwplYmSKDhq9bpk6kTnwTtz+MjJXjjcZ8GG6tQHRARP/K+idBKC+OkCCqEumQchXyseMxKiqog4bshhBhxGnmc3QV0KRaJ6xFCbR4jizxmufCS2o08TGyty9crUiX4TxIVAH8ZaUPbNJ14kHgeSgvhAcLF462Rqns40bLUnWkxK+XpymC+HmnyxqhSKBHnEInPKLsDQoSkUqVd9wcgk3iH1qg7Zps+O6Iupw6YexVqd9/2eh4Rj26QgDj5RwieJXDktvJis0PYcQ1iQQ/scKvTFsb/rLftOkUf806xUieKAnFIopFadqQ8F7IOes9SWs2YRIapzBravGBND392GKkV/GxbEq5qsgxZTazgCLyYlff46h7fk0C6HLf1MzFTJQyWcRs8jXoOuSHEAMvozTmjQqDJsryFltBjVr5UjUMJ45rD5UKXw+CgBbV4kGNdWUyY8/HYkerFTGRVTEovJGHPOuYDtkUMluiHxe4xTn1dqvv/UpY1YqxTFyMjhXpjEUhm0pIGVKdoGTklh6gQWN8BnFcLv2tfxVQlsX+qSBHFBHCL/6LMI/n2PLA+YsJhE2lIh5ZfDc8mhYQ5bIkXkNmUg0ff5VcL+XqIPl+6CDHzp8rjI4yST73iOfeCzmDqBxVwpzxLPj5pPHATxvdBi4SBC1Bu95e799FT7gawtgT6wJSUsrsiheQ7b+JsUwvwwYXs/JbYhuA/eBT7LdBWKsDUcw6BTlGdD9ec8E2esBmGVWxt53b7jYxFxPK8EscSYnkoL4uCPSmvvHXHcVA4badwnh+TQqChPlUIhVU0lG1GMjHgVCU6TxoxORyvPFvoR1ZcqbiLLEKiBPRK0I8QBkiqSzUsL4lmEZqBLG80yPCCLvECoJIfk0LAojyrIQx6xhjzur+gHwkSxQApFzKLqXjROMhXgyH5k6oTugS2aD99X+MfYZchBEAtEGGsnd11yukHzg4sluN/JITm0KMqjpVAoyCP+ZV5BP/Ad+HkPQBHmheN1pI6dRCby6RaeSKt+1Op1ofW2JCLK5HUdcTwOVhAHoCOMZxmnPc2B/tuLmoocksOOQrFI2IdPKRTSNqIkj3h9XlKdPrEybhRGEfNkUhx+i/WdqEXKnSMICmLpdpQOG3GqMq8rjjzL8oEcksMeYjw1Yuyua8gjXkEktx4qikMkcWGJ5HChRookdfFbeMCl2CpHEHpx6+xHiD3QqVXTnEkHi8WCHCZBpZDDtkCkL9QK3uEtPYHMI64Bz9AvigPulBnaJqS8CUf6nnBU6kSdy4lnIj80zvpWaAF9FlMQC5xtmA0k5QklqkbkMMnCZqmJww6c+6BaCXhU3xJ1pWAbkXnEZ6DFy1eJtkqIYuhhO8kUikB0yoLf0qVUxgo5Jf6O39gFvQTxRODRs5BHHdUfgJ93ORAzWADtqa8/npBD8xymEKMV4NDhHnh3eL0/UXnEc6CesBEpFkihKAWNOfV96WLXSoMT/5lPLAsUTxUFMUwQp9iyPgG3oR6IKSAjRn2DJMfk0DyHbYHY0V6VO50peJfnQOURe1ueAvkxkz7h8VmZwb22+pkocAZSwhy1mGDqhI1Iw6CQmyAWOL1+OSBzqJXYJDk0zmFC/12Fn30DUGOwTU9Az/QR8KOQKoMQxbVUpQ0pUWyhXvGpkgFVSGx5ABcTFSWY+ESKwmIgfZZbhNgDGWGcD6x8ItLuR+TQvCiOFikGXY61DLf7rUqM9ekLWAoFOo94Lbi2r8xe5EUxgNjnJJcCr3msyCEcgwcqKvHf47MjrHD/JwWxSUGMXvwPKt0JHDHaI4dJOKyVcJiC8+r5gqjn83oHxIKGuAX15ezZgWXEokXsdt1dQWNBRouhKRRhS6AAPOoANbDA5dlQgniZeX1MDWDZvHbjNjtBDN52rzlmySERDYio5wN4QYSYU65A4tUHSM/WxkkBEtpiu6KSohi50kWnFyCic1XY8kAJEWRuMWoRQccsO5GWDpuDuMi4r7wYvs1NEIMXsRyz5JCIC3ikOHUKBTD4sJ5HvILqQ3aiohicQlGgci/DcxAO7Cb8RB2GmABLyaAc9IMjJIGsU13neg2soCD+JYqREMidMFaKIYdEHL+EEMSvHWRPkkIBziOevpAWA9Fxkvn2u8J2g1zxooTeCciQ54GcCiT+9xCrTvA2HiMWcg711DG6lFoQHyhZSKDsgJViyCERD4jUiUpoYdRaS4DziK9fSQGS7DMTohgZaeyd8gAsw3a54feuQEQOUc55nmvkUYHQKxz+NsOHDPspe0EMPkRccXSRQ8LUQuhFvw1KoWgblUXlEfvU0td24AqQ/7YpisNKATXxjACH0RCC2Lfn+QoI1c4C4GBR23isOiEzga5uB0KekM7uQORAIsTOYctHccySQyKOfypQAvKNP7vp+ezjFu2ZAPXR0RtzH0IUf5XkdjeC/WhKoUCkTsyeT6jh9xmojSc9BiqyFBsjFjKC+N7h62hSENsUxE/NBT6LY5YcEnGAmGcXG3Jj+/r1rVIowHnER2/4V9S8V1sXxSputwtJ8YhVyo3Qqu6nIfeIiKME8WJgheNjCL2RkCBG2p6WfroSeLRGQewctozXcsBjC2knbTEih+Y5jKZFtl0AhTm4T1s2FigA5xFfri4hkdQnG75DvygGp1CMe1RoQEWJ6zcMeAZq50nCgerB089Yh38qKIirXA7mrC0c0MX3tQpi6EJ2wEMMmoqUUBSTw3Qcphi325wD6TsXb0qhQOUR+zNIF5tcvIUxshvJ4JOmUITIK8KI74QNeIVJ10WDQr6GLIb9Iu5LcDxStyxdZtJXUoLYT5BTjYIYfGHP1wEPtRHYXsjhgDjsMG5LkJ+qIszF47fmJ4fJI669j43EcTaiGHkyvks0FHHSf7EpbB/+HEHaXsirbCsqEAO1ZupEP3HXfC6azzf340DdSPDr5tJbSRkI4gPFkXSkoBpylPE3mCptbytIDitymITDGBrkJT2x3KIttRNIoQiLOdS5jaNNbQEesvsubYjvIhn8HEjAeMtVyToZiAjqTYu/h2irT6GYIVaEHbgaGg4bO9nagQWHshrge0H4fgg/i0jv7N/nzHrHD1gQO2dvy1grUh7g2XOEdQ7bogQ8o81Zq7ue/XP8grBGVUCabuljUfyKLxyjRIqDoECJrb2WZcsmAPJ99HS2ZVtnoAlq1LKdzCfujlXO72uf/zZcPK4+ze/f1v7MO5fzsCgpIr7zpfWI/sAFMXKicDnsGBgVVORwQKI4BNmkS7E9BzSFomkDKo94tq0ucobOTuxGNPpUVSgQB+zaCkVUNYDjyAOVtynZgD9cd01BbFoQEzg7QtkQr7Unh60EZowFEDKFIuQRn4LEaZudSkR6zDLG2ZCYonge2zBDpLUAfN+18N9/DZMtD3KgUieGHKmwAu8gj4xPgsgyQBTEw06dKMFjK+W4JocYsSYJxDXFXbRQ30BbCcwj7nJ42cQhu6iiOHQgSnQVW9Y1FLmsY8u2zlDCONJA9eBtSvrFz5HlWqaCF5gMOUI85Kj4PvBZKYMCNTk0MRYQAagu0ey+QUW/64zKIz7r4GdHifpNrygWEF3jDZNv4eIesEOv7NoIe0Q7s7sqOENBbFr0CQriro6asI8SNb465uh/IAVqOBStnARM82i9+AKcyxqB/O51izziVb+h+M0rUgxa7axjU14xIkrc+WKE8O8QkYc3y7MBByoFMQWxVUE8beuoleA3mnYvmxo7XApOV1/N6hP2OdwWqOBTVz+eeifXV2HqUvHIUmWRuKIYkDD+S0e/lm8bJuAJ4Dv6RntRlRyOhQeqBw+Z6IQfLx8piLMTxB7fad69cAh81uce45PQweGDgXedJ/q3vcW8636WBbKbEmsO3E3QuciSX+M3/j+iDNu8J4kz0OqmfCOHGuVUGCnWB28/B5ZLr1EQR8HgopXA+vMrVB3/3Z/k0DyH275r0rxYcGnbtjjqMQ+NNHOrQRQjSX0tQR9xgx0qJ1gstxg4UOeWD29liNWBuikP1VEQR5p0rAG57b5QsPAkh7o5LJUI9xQpFJc9a2ibqTyRRBSDUyjGYeJdn4i98RYAUYKacGcOUzJp8rytwFU2q07ogS/n9z6TQ4+oIvEUxMRzHAOfdcfuTIITQxwidmQRBwFjzwv+XNVF138MPGQXLdVsN9FgqIDPGgsMtBkqQgfe8nhedHtfIR9E98WTF8NnOUTtG2fo62FOKIg3Lr5R/T2YSGOYaEvgI+fkMAmHIyUcbgOEvfWeZyOnUPTJI14BxXG+kWKBVd3+2kArXNoybK/hEvSc4w0Lgk7GZv26YOOiaBUZnubCg6Agvs4sQox09EPKSUVGifv6P3Jon8NtFisF4FGoHdlYOxsHgAANpMJOzCvQk4jicIoQZcTrwhAxEc/RAyw8D0FqsSrPFlbae4YGGLFmY+5HxPN/QmQ4m0WJoCCedSwHNBSUQ2hkCHwg7euGHJLDSLxAhF1IrZPeTUTVfTeVT5xMFK8JA8jqOtQ69DhRPMDQ0WJWnbADP6h9RNgfnttpPkc55sQKC+Jpbv0Fjn4M5RKJc+Czem9Fk8NOuNLE4RZAzLULcFqcZJt9YPBa0YKijmmc7xIODB+hPAU9az8cQtsDGG4l0Vj/3OYdPblFXyML2zkQY2PqBBR1+HgR/F3SniiIs8HSYXZ8ygHYWAm2MVTVHXLYjsOxQg6leUHPA5+F/K2fu6YgrlH5xF8HIYp9aB4kEl0YZAjDld6G8dHiW9BKG1KKjTr2CWeuxxbNUITvG87vioK41ySE8F1+x2yU+VXX5+DnXZJDcrjBt6ms8ORTKJp3Qy3G1hd3yDKgKFEcdX59l3iAVKDJFCGslxG2tOdB0PY1ZFREgfnEYVIburDtMWn48Xsq8OghCGKPB+B4PnaZ3rDW2NmpA1ecAO6SkcM0HM4i7HRCKjwJzS9zcDDiDLwgQ6UD1THtNLUoltoC6ALxAxd+BdY4hpmQiGhtaJlHJIg4gvhW4NHRBXHTlk+u37Zu13dGjkH//mcZ2pkPIqAjjEh/Tw7TcBgjqIOIFFdC74bUTzOBoCAiUryMneKZ8qBdrFOU2+I60vdoOe1cOYLQJ4gXiSLEfR141+tbkYKqABbL1wRvZ8ht4gocuSOHm/FJOYcv+bjC6SrFJqWfFkILsVLZ2NIvigM05LXOYl2YEFY9MwVt5i12hDpB3HwOErQHMflVPfxBDWzOSWa25nfVxuDHQgUAOdyKw1Izh68AZXeS4r2vfnq6oAOtf4CH7B5i26sGUaxBnMWO3qbO5V1mco0wkZkgTnSbX18H3reKC3IsjoPIz8HWPC9X4MfOhNLGyKF9Dp8DkU+8FH7XvlpC6tIolP3WsW02uShWkEJRxc6tDds+KfN5KYgJCmLc5Nd3LKOjIbcZ2Jrfar9HBwOcXLUCcmifw78tThD6IoKW6CocrwWDY+aud1YjimMYzgbcDOx7JRw4kb8gHmcqiD3KlONJIDBQWs5LXRNT6GuPb6QO7ZBD+xw+e39U38fYCe8ibCvhG0JRVTsGK4pTpVDUqdIIwknPVEKAkWKizQQxylgQe/SNalQKx+RtECYWcetwkaZ1X39hzK+Sw/gcroC6MbaK8K5tUyie8oiV+9RYfadWFKcSaakrQaT4/rkCEULYEsQSER8VghgREQJFM9C+oHD4XM4YfHgxNRZ4dIyKJnfk0DyHK5SAZ0S5MTb4nzbfcyTpd0M+PGK+qFPYrwpRHAiKLYz9d84SN/06wXey6gSRWhAvnY4IMWLyqxJNbNtgEvLALdjanuBV4dcxLufpmd9JDhVwuCbqrEU6t9VPlxH60eT1zqpEcSKxNks9KYfvjy3MK0cQFMQ/m9rz3yPz8yUOEN1qF1Vr+acS77lw8Q5mkcM8OCxBz4l5dmebXYp5pPQTs4fstIni2JFiLZdoxHyPRezbYQgK4hcEsaabFPtOgLBFpuA5A7WiKtjaF4fPP13Z2zTmAowc2ufQ4fKJ5xHtbtNOk/+zWOknmq/GtiOKg9HH6oS5FnEYjDlWu+8cQVAQr7d1r+f4RY9dqUWyOlEVLnXwtlYIfcVZInsjh7Y5LAHPWCTYDXtLhB9FfB/E4iiZPtMUKfaIlUJxo6zddwoGDUFBXLjhRIgRzhvenrC9KTUheFGVvKKBt7Pm46/9vRKwtRVmIWqbAtfk0CaHiIVyQJWAltd0xDSW7wUesks2V2gTxTFE2yJVWP6NiXAWYWVUM3WCeMOZeUf2aUCC2KPvNp+UH5HMn5w0ny+pauA23+tFv99qHwt+jffx01RGFSJy5NAmh6g2PSSwu8ULYjL2wqJANYei2P28Q1568tQWJY71XowSE28JYh8hRucEahbEDtBekYkvTGKSC3c/cd37SF+s64T9tn/z+db857mTiyy6MH8cKJjLyKFNDg9B/Keab++e9eNZ5O8vgTaQBO8UTlR3TiZh/2mSTriltgkzYWfDfGIipiD2ONIqiEO7NVza8Rr8ZPZFuBt8VGzc9IWfwO/QE3kQa5PmcyIsotYXYVNFlU3IoSEOQT5B2i9sEuM+dec6oc1/AD0n2byx8/j4+NcvOzsaJis/CL8JPf4y4o04XdouVePRp068NyLS7lv89cJhtmsWruWJ8aY/D5xxCAviqeIF6Ora6k+ax1Q4xBTz8oZVvXh/tqPqIkxCTmbZfI4Fgxuvvbu6XYmQanBukEM/Pg6tcxjasu0YQoni2nVIh9Q4p4SDncct/kmqnOzPiz9+hywG1EWKfQpFQ8RCaDBeO924FBLFlbODMsF3jtzAICyI/eR23HzHseIuKLSPKR/1afrwMOKY2Av+ZxJsZDW5e3/857N2rwuI30J/lom4VJum44MwTT/uk8NkHJYJ2lR08C9a5+jjRDbR9jthRRreKSWiEpisZ9qvNw4LgkrACHmLHRFLEK8m2zLzbox1kObI/diCLxK0sXhBKJ0r40F73jo5TMvhB2cDD0rfy4ofhy0qdpU2UCL/9cYIuej3XCZM+id0QlIQDwVRRFhYyB85mQshrMOCICaHaTm0IurU2XBIPTFhQ0j7USmKt7idpfUqQrvjXGv7HNx2CmJi3dHdUhDrcsJb+sMjdvvfRMR7Q37dv+eUtMXjMOyIFUb6olL4ToNcUOwqbihSzFmrvICscfngCMKJHuQcGqJPYKG2OkXVX3PDgfZ0uBc4nJPDqByaEXVKbXmQqSeaRTFKyNaaT8G/4TCWwGcRhKMgtr3QDH5s6KLKVxA6siaIyWESDveN9IfW3Q4ri4pqEKI4bKkgBo2VXOL1tvt2I4T83OrkQYiAtmB8Egui6uMAuVzlnl5Yb0jg8IAcisNKmpi63dxQGrcYoj/eVd7YOWAQzpxNIMQ8q04QKsRcTkh9TXwIGBwMiE8/D7xP3e8CNkQOZVEa6RuNdm1lQQFPPdEuivuKurnhbbYasCjIZhIhIKjZBXlMYGvCOOf0qKeqDZbTJchhGg4//PNfVgTxMsz12mAl9QTuj1WL4nAwoc9AunS20SdavFA62Ih0+M4u6A01W51eZHix4fIs9+UvWnqfeznJNQ6n5BAKK5HOSul7Wem/r4MSxQFdB9TcuigMW01dt9fuHEE8WyixC/KbxILo8FdOzzLp349Nm86GdB4i5BmTQxysRDq/Kn2vcqj+2IIo7ppCYe6AHbgdrDpBPEfNLshzYREijj7aeOBspk35d/aHsA6s1B4mh6o5HKyo64uhp57sPD4+/vXLzo7KljckPbad/JvOep+Ls2za/1/34+rc7NvfgetUE9gO+3d4grjh/aMRnv3Edm5AHMyaz11Oh+gGyuGNlsVMqJzwjfNI5/67cPquAn8J85B69IR1LdsH74z4Bx/1HLf4+9ZziZ/jpqWRMkpMvLpgcnZK7WiDGeEWRGYVrmo9Cf5zT5ENep82Y8lIciiA0gjFWv3JIC/tsCaKP7cQxUuDl3VssxJvI4qZT0xQFAvoFIPCanW98LQRV96HHiYSV4sgAu6Gmh5BDinqXuhPjSiH3H+WIsW3W/7dXHKJ151i3ThDL4wn24ge45POAadBUVti/w6X+3nwpdMQfRwHAVEKCKxF+PhoTsVKOCIcloE7cvgrfFDIQo1+rf15ZGQsVBLPNZFT/LT0++HEtxn0ixy35Jr2+7ZvUyZlyUgMQRAd/cvKz/7m/r6jsPK/yxfE05/h55L5weY5rDmHENaAyineQT2IIAiCIAiCIKxil11AEARBEARBUBQTBEEQBEEQBEUxQRAEQRAEQVAUEwRBEARBEARFMUEQBEEQBEEMGf8vwABaKb4tsBFP0wAAAABJRU5ErkJggg==');
2251
+ background-size: contain;
2252
+ background-repeat: no-repeat;
2253
+ height: 16px;
2254
+ width: 95px;
2255
+ overflow: hidden;
2256
+ transition: all 0.3s ease;
2257
+
2258
+ &:hover,
2259
+ &:active {
2260
+ opacity: 0.5;
2261
+ }
2262
+ }
2263
+ }
2264
+
2265
+ .wpz-insta_settings-footer-links {
2266
+ display: flex;
2267
+ padding: 0;
2268
+ margin: 0;
2269
+
2270
+ li {
2271
+ padding: 0;
2272
+ margin: 0 30px 0 0;
2273
+
2274
+ &:last-child {
2275
+ margin-right: 0;
2276
+ }
2277
+
2278
+ a {
2279
+ text-decoration: none;
2280
+ color: $dark-color;
2281
+ transition: all 0.3s ease;
2282
+
2283
+ &:hover,
2284
+ &:active {
2285
+ color: $primary-color;
2286
+ }
2287
+ }
2288
+ }
2289
+ }
2290
+ }
2291
+
2292
+ #wpz-insta_modal-dialog {
2293
+ display: flex;
2294
+ align-items: center;
2295
+ justify-content: center;
2296
+ position: fixed;
2297
+ top: 0;
2298
+ left: 0;
2299
+ right: 0;
2300
+ bottom: 0;
2301
+ z-index: 999999999999;
2302
+ background: rgba(0, 0, 0, 0.4);
2303
+ backdrop-filter: blur(5px);
2304
+ transition: all 0.3s ease;
2305
+
2306
+ &:not(.open) {
2307
+ pointer-events: none;
2308
+ opacity: 0;
2309
+ }
2310
+
2311
+ &.success {
2312
+ .wpz-insta_modal-dialog_wrap .wpz-insta_modal-dialog_header .wpz-insta_modal-dialog_header-title::before {
2313
+ background-color: $green-color;
2314
+ background-image: url( "data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M8.75204 15.8749L4.60249 11.7049L3.18945 13.1149L8.75204 18.7049L20.6932 6.70492L19.2901 5.29492L8.75204 15.8749Z' fill='white'/%3E%3C/svg%3E" );
2315
+ }
2316
+ }
2317
+
2318
+ &.fail {
2319
+ .wpz-insta_modal-dialog_wrap .wpz-insta_modal-dialog_header .wpz-insta_modal-dialog_header-title::before {
2320
+ background-color: $red-color;
2321
+ background-image: url( "data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M18.9069 6.41L17.5038 5L11.9412 10.59L6.37867 5L4.97559 6.41L10.5381 12L4.97559 17.59L6.37867 19L11.9412 13.41L17.5038 19L18.9069 17.59L13.3443 12L18.9069 6.41Z' fill='white'/%3E%3C/svg%3E" );
2322
+ }
2323
+ }
2324
+
2325
+ &.confirm {
2326
+ .wpz-insta_modal-dialog_wrap .wpz-insta_modal-dialog_header .wpz-insta_modal-dialog_header-title::before {
2327
+ content: '?';
2328
+ display: flex;
2329
+ align-items: center;
2330
+ justify-content: center;
2331
+ font-size: 24px;
2332
+ font-weight: 700;
2333
+ color: $light-color;
2334
+ background-color: $main-font-color;
2335
+ background-image: none;
2336
+ }
2337
+ }
2338
+
2339
+ .wpz-insta_modal-dialog_wrap {
2340
+ font-family: $main-font-family;
2341
+ font-size: 14px;
2342
+ line-height: 20px;
2343
+ color: $main-font-color;
2344
+ background: $light-color;
2345
+ min-width: 850px;
2346
+ padding: 30px;
2347
+ border-radius: 3px;
2348
+ box-shadow: 0 5px 10px rgba(0, 0, 0, 0.3);
2349
+
2350
+ .wpz-insta_modal-dialog_header {
2351
+ display: flex;
2352
+ align-items: center;
2353
+ justify-content: space-between;
2354
+ padding: 0 0 20px;
2355
+ border-bottom: 1px solid $light-grey-color;
2356
+ margin: 0 0 30px;
2357
+
2358
+ .wpz-insta_modal-dialog_header-title {
2359
+ display: flex;
2360
+ align-items: center;
2361
+ font-size: 20px;
2362
+ font-weight: 600;
2363
+ padding: 0;
2364
+ margin: 0;
2365
+
2366
+ &::before {
2367
+ content: '';
2368
+ display: block;
2369
+ background-color: $blue-grey-color;
2370
+ background-repeat: no-repeat;
2371
+ background-position: center;
2372
+ height: 28px;
2373
+ width: 28px;
2374
+ border-radius: 50%;
2375
+ margin: 0 15px 0 0;
2376
+ }
2377
+ }
2378
+
2379
+ .wpz-insta_modal-dialog_header-button {
2380
+ cursor: pointer;
2381
+ text-indent: -999em;
2382
+ background-color: $darker-blue-grey-color;
2383
+ mask: url( "data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M18.9069 6.41L17.5038 5L11.9412 10.59L6.37867 5L4.97559 6.41L10.5381 12L4.97559 17.59L6.37867 19L11.9412 13.41L17.5038 19L18.9069 17.59L13.3443 12L18.9069 6.41Z'/%3E%3C/svg%3E" ) center no-repeat;
2384
+ height: 24px;
2385
+ width: 24px;
2386
+ padding: 0;
2387
+ margin: 0;
2388
+ overflow: hidden;
2389
+ transition: all 0.3s ease;
2390
+
2391
+ &:hover {
2392
+ background-color: $primary-color;
2393
+ }
2394
+ }
2395
+ }
2396
+
2397
+ .wpz-insta_modal-dialog_content {
2398
+ overflow: auto;
2399
+
2400
+ .severe {
2401
+ color: $red-color;
2402
+ }
2403
+ }
2404
+
2405
+ .wpz-insta_modal-dialog_footer {
2406
+ display: flex;
2407
+ align-items: center;
2408
+ justify-content: end;
2409
+ gap: 10px;
2410
+ padding: 20px 0 0;
2411
+ border-top: 1px solid $light-grey-color;
2412
+ margin: 30px 0 0;
2413
+
2414
+ .wpz-insta_modal-dialog_footer-button {
2415
+ color: $light-color;
2416
+ background: $primary-color;
2417
+ padding-left: 30px;
2418
+ padding-right: 30px;
2419
+ transition: all 0.3s ease;
2420
+
2421
+ &:hover,
2422
+ &:active {
2423
+ color: $light-color;
2424
+ background: $secondary-color;
2425
+ }
2426
+
2427
+ &.button-secondary {
2428
+ color: $primary-color;
2429
+ background: transparent;
2430
+ border-color: $primary-color;
2431
+
2432
+ &:hover,
2433
+ &:active {
2434
+ color: $light-color;
2435
+ background-color: $secondary-color;
2436
+ }
2437
+ }
2438
+ }
2439
+ }
2440
+ }
2441
+ }
2442
+ }
2443
+
2444
+ @keyframes slidedown {
2445
+ from {
2446
+ max-height: 0;
2447
+ }
2448
+
2449
+ to {
2450
+ max-height: 100em;
2451
+ }
2452
+ }
2453
+
2454
+ @keyframes highlighting {
2455
+ 0% {
2456
+ transform: scale(1);
2457
+ }
2458
+ 50% {
2459
+ transform: scale(1.03, 1.2);
2460
+ }
2461
+ 100% {
2462
+ transform: scale(1);
2463
+ }
2464
+ }
2465
+
2466
+ @keyframes bounceFade {
2467
+ 0% {
2468
+ opacity: 0;
2469
+ }
2470
+ 0%, 20%, 50%, 80%, 100% {
2471
+ transform: translateX(-50%) translateY(0);
2472
+ }
2473
+ 20% {
2474
+ opacity: 0;
2475
+ }
2476
+ 40% {
2477
+ transform: translateX(-50%) translateY(-30px);
2478
+ }
2479
+ 60% {
2480
+ transform: translateX(-50%) translateY(-15px);
2481
+ }
2482
+ 100% {
2483
+ opacity: 1;
2484
+ }
2485
+ }
2486
+
2487
+
2488
+ /**
2489
+ * Tooltip Styles
2490
+ */
2491
+
2492
+ /* Add this attribute to the element that needs a tooltip */
2493
+ [data-tooltip] {
2494
+ position: relative;
2495
+ z-index: 2;
2496
+ cursor: pointer;
2497
+ }
2498
+
2499
+ /* Hide the tooltip content by default */
2500
+ [data-tooltip]:before,
2501
+ [data-tooltip]:after {
2502
+ visibility: hidden;
2503
+ opacity: 0;
2504
+ pointer-events: none;
2505
+ }
2506
+
2507
+ /* Position tooltip above the element */
2508
+ [data-tooltip]:before {
2509
+ position: absolute;
2510
+ bottom: 150%;
2511
+ left: 50%;
2512
+ margin-bottom: 5px;
2513
+ margin-left: -100px;
2514
+ padding: 7px;
2515
+ width: 200px;
2516
+ -webkit-border-radius: 3px;
2517
+ -moz-border-radius: 3px;
2518
+ border-radius: 3px;
2519
+ background-color: #000;
2520
+ background-color: hsla(0, 0%, 20%, 0.9);
2521
+ color: #fff;
2522
+ content: attr(data-tooltip);
2523
+ text-align: center;
2524
+ font-size: 14px;
2525
+ line-height: 1.2;
2526
+ }
2527
+
2528
+ /* Triangle hack to make tooltip look like a speech bubble */
2529
+ [data-tooltip]:after {
2530
+ position: absolute;
2531
+ bottom: 150%;
2532
+ left: 50%;
2533
+ margin-left: -5px;
2534
+ width: 0;
2535
+ border-top: 5px solid #000;
2536
+ border-top: 5px solid hsla(0, 0%, 20%, 0.9);
2537
+ border-right: 5px solid transparent;
2538
+ border-left: 5px solid transparent;
2539
+ content: " ";
2540
+ font-size: 0;
2541
+ line-height: 0;
2542
+ }
2543
+
2544
+ /* Show tooltip content on hover */
2545
+ [data-tooltip]:hover:before,
2546
+ [data-tooltip]:hover:after {
2547
+ visibility: visible;
2548
+ opacity: 1;
2549
+ }
src/styles/frontend/block.scss ADDED
@@ -0,0 +1,865 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .wpzoom-instagram-widget-select-feed select {
2
+ max-width: 100%;
3
+ }
4
+ img {
5
+ height: auto;
6
+ max-width: 100%;
7
+ }
8
+
9
+
10
+ .wp-block-wpzoom-instagram-block,
11
+ .zoom-instagram {
12
+
13
+ .zoom-instagram {
14
+ background: none;
15
+ padding: 0;
16
+ border: none;
17
+ }
18
+
19
+ form[disabled] {
20
+ pointer-events: none;
21
+
22
+ &:not(.loading) {
23
+ opacity: 0.5;
24
+ }
25
+ }
26
+
27
+ .zoom-instagram-widget__header {
28
+ display: flex;
29
+ gap: 20px;
30
+ margin: 0 0 25px;
31
+
32
+ .zoom-instagram-widget__header-column-left {
33
+ min-width: 70px;
34
+
35
+ img {
36
+
37
+ width: 70px;
38
+ // height: auto;
39
+ // object-fit: cover;
40
+ border-radius: 50%;
41
+ }
42
+ }
43
+
44
+ .zoom-instagram-widget__header-column-right {
45
+ display: flex;
46
+ flex-direction: column;
47
+ justify-content: center;
48
+ text-align: left;
49
+ }
50
+
51
+ .zoom-instagram-widget__header-name {
52
+ font-size: 14px;
53
+ font-weight: 600;
54
+ line-height: 1.5;
55
+ padding: 0;
56
+ margin: 0;
57
+ }
58
+
59
+ .zoom-instagram-widget__header-user {
60
+ font-size: 13px;
61
+ font-weight: 600;
62
+ line-height: normal;
63
+ // opacity: 0.5;
64
+ padding: 0;
65
+ margin: 0;
66
+
67
+ a {
68
+ text-decoration: none;
69
+ }
70
+ }
71
+
72
+ .zoom-instagram-widget__header-bio {
73
+ font-size: 14px;
74
+ font-weight: normal;
75
+ line-height: 1.6;
76
+ padding: 0;
77
+ margin: 6px 0 0;
78
+ text-align: left;
79
+ }
80
+ }
81
+
82
+ .zoom-instagram-widget__footer {
83
+ display: flex;
84
+ justify-content: center;
85
+ align-items: center;
86
+ flex-direction: row;
87
+ flex-wrap: wrap;
88
+ gap: 15px;
89
+ margin: 25px 0 0;
90
+
91
+ > * {
92
+ display: block;
93
+ }
94
+
95
+ .wpz-insta-view-on-insta-button,
96
+ .wpzinsta-pro-load-more input[type='submit'],
97
+ .wpzinsta-pro-load-more button[type='submit'] {
98
+ display: flex;
99
+ align-items: center;
100
+ justify-content: center;
101
+ gap: 6px;
102
+ cursor: pointer;
103
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', sans-serif;
104
+ font-size: 14px;
105
+ font-weight: 500;
106
+ text-decoration: none;
107
+ text-transform: none;
108
+ letter-spacing: normal;
109
+ line-height: 18px;
110
+ color: #fff;
111
+ background-color: #3496ff;
112
+ padding: 8px 12px;
113
+ border: none;
114
+ border-radius: 3px;
115
+ margin: 0;
116
+ transition: all 0.3s linear;
117
+
118
+ &:hover,
119
+ &:active {
120
+ text-decoration: none;
121
+ // background-color: #70b5fe;
122
+ opacity: .8;
123
+ }
124
+
125
+ .button-icon {
126
+ height: 18px;
127
+ width: 18px;
128
+ transition: all 0.3s linear;
129
+ }
130
+ }
131
+
132
+ .wpzinsta-pro-load-more button[type='submit'] {
133
+ gap: 0;
134
+
135
+ &::before {
136
+ content: '';
137
+ background-image: url("data:image/svg+xml,%3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' viewBox='0 0 50 50' xml:space='preserve'%3E%3Cpath fill='%23ffffff' d='M43.935,25.145c0-10.318-8.364-18.683-18.683-18.683c-10.318,0-18.683,8.365-18.683,18.683h4.068c0-8.071,6.543-14.615,14.615-14.615c8.072,0,14.615,6.543,14.615,14.615H43.935z'%3E%3CanimateTransform attributeType='xml' attributeName='transform' type='rotate' from='0 25 25' to='360 25 25' dur='0.6s' repeatCount='indefinite'/%3E%3C/path%3E%3C/svg%3E");
138
+ background-repeat: no-repeat;
139
+ background-position: center;
140
+ height: 18px;
141
+ width: 0;
142
+ transition: all 0.3s linear;
143
+ }
144
+ }
145
+ }
146
+
147
+ .wpzinsta-pro-load-more {
148
+ margin: 0;
149
+
150
+ &.loading {
151
+ button[type='submit'] {
152
+ gap: 6px;
153
+
154
+ &::before {
155
+ width: 18px;
156
+ }
157
+ }
158
+ }
159
+ }
160
+
161
+ /* styling just for the block */
162
+ .zoom-instagram {
163
+ .zoom-instagram-widget__items-wrapper {
164
+ overflow: hidden;
165
+ }
166
+
167
+ .zoom-instagram-widget__items {
168
+ list-style: none !important;
169
+ padding: 0;
170
+ margin: 0;
171
+
172
+ &.layout-grid {
173
+ display: grid;
174
+ grid-template-columns: repeat(3, 1fr);
175
+ gap: 10px;
176
+
177
+ .zoom-instagram-widget__item {
178
+
179
+ img {
180
+ object-fit: cover;
181
+ width: 100%;
182
+ height: 100%;
183
+ aspect-ratio: 1/1;
184
+ }
185
+
186
+ }
187
+
188
+ }
189
+
190
+ &.layout-fullwidth {
191
+ display: flex;
192
+ width: 5000px;
193
+
194
+ .zoom-instagram-widget__item {
195
+ img {
196
+ aspect-ratio: 1;
197
+ object-fit: cover;
198
+ }
199
+ }
200
+ }
201
+
202
+ &::before,
203
+ &::after {
204
+ // content: "";
205
+ // clear: both;
206
+ // display: table;
207
+ }
208
+ }
209
+
210
+ }
211
+ .zoom-instagram-widget__item {
212
+ position: relative;
213
+ margin: 0;
214
+ list-style-type: none;
215
+
216
+ &.new {
217
+ opacity: 0;
218
+ transform: scale(0);
219
+ transform-origin: center;
220
+ animation: show 500ms linear forwards;
221
+ }
222
+
223
+ .zoom-instagram-widget__item-inner-wrap {
224
+ position: relative;
225
+ height: 100%;
226
+ overflow: hidden;
227
+ }
228
+ }
229
+
230
+ .zoom-instagram-widget__items {
231
+
232
+ &::before,
233
+ &::after {
234
+ display: none;
235
+ }
236
+
237
+ .zoom-instagram-widget__item .zoom-instagram-link {
238
+ height: 100%;
239
+ }
240
+ }
241
+
242
+ /* View on Instagram button */
243
+
244
+ .ig-b- {
245
+ display: inline-block;
246
+ }
247
+
248
+ a.ig-b-v-24 {
249
+ border-color: #3897f0;
250
+ color: #3897f0 !important;
251
+ border-radius: 3px;
252
+ border-style: solid;
253
+ border-width: 1px;
254
+ font-weight: 600 !important;
255
+ outline: none;
256
+ overflow: hidden;
257
+ white-space: nowrap;
258
+ -webkit-appearance: none;
259
+ font-family: sans-serif;
260
+ padding: 5px 15px;
261
+ font-size: 14px;
262
+ transition: all 0.15s ease-in-out;
263
+ -moz-transition: all 0.15s ease-in-out;
264
+ -webkit-transition: all 0.15s ease-in-out;
265
+ -webkit-font-smoothing: antialiased;
266
+ -moz-osx-font-smoothing: grayscale;
267
+ text-decoration: none !important;
268
+
269
+ &:hover {
270
+ background: #3897f0;
271
+ border-color: #3897f0;
272
+ color: #ffffff !important;
273
+ }
274
+ }
275
+
276
+ .zoom-instagram-widget__item .hover-controls {
277
+ opacity: 0;
278
+ z-index: 9;
279
+ margin-top: -15px;
280
+ position: absolute;
281
+ top: 40%;
282
+ width: 100%;
283
+ text-align: center;
284
+ transition: opacity 0.25s ease-in-out;
285
+ -moz-transition: opacity 0.25s ease-in-out;
286
+ -webkit-transition: opacity 0.25s ease-in-out;
287
+ }
288
+
289
+ .zoom-instagram-widget__items[data-lightbox="1"] .zoom-instagram-widget__item .zoom-instagram-icon-wrap {
290
+ pointer-events: none;
291
+ }
292
+
293
+ .zoom-instagram-widget__item {
294
+ .zoom-instagram-widget__item-inner-wrap {
295
+ position: relative;
296
+ height: 100%;
297
+ overflow: hidden;
298
+ }
299
+
300
+ .hover-controls ~ .zoom-instagram-icon-wrap {
301
+ bottom: 10%;
302
+ pointer-events: all;
303
+ }
304
+
305
+ .hover-layout.small {
306
+ .hover-controls ~ .zoom-instagram-icon-wrap {
307
+ bottom: 6%;
308
+ }
309
+
310
+ .zoom-instagram-icon-wrap {
311
+ bottom: calc(50% - 15px);
312
+ }
313
+ }
314
+
315
+ .zoom-instagram-icon-wrap {
316
+ bottom: calc(50% - 15px);
317
+ height: 30px;
318
+ width: 100%;
319
+ position: absolute;
320
+ z-index: 9;
321
+ text-align: center;
322
+ }
323
+
324
+ &:hover .hover-controls {
325
+ opacity: 1;
326
+ }
327
+
328
+ .zoom-instagram-icon-wrap {
329
+ opacity: 0;
330
+ transition: opacity 0.25s ease-in-out;
331
+ -moz-transition: opacity 0.25s ease-in-out;
332
+ -webkit-transition: opacity 0.25s ease-in-out;
333
+ }
334
+
335
+ &:hover .zoom-instagram-icon-wrap {
336
+ opacity: 1;
337
+ }
338
+
339
+ .hover-controls {
340
+ .dashicons {
341
+ font-size: 20px;
342
+ width: 20px;
343
+ height: 20px;
344
+ color: #ffffff;
345
+ vertical-align: middle;
346
+ }
347
+
348
+ .counter {
349
+ padding-left: 1px;
350
+ padding-right: 12px;
351
+ font-weight: 500;
352
+ color: #ffffff;
353
+ font-size: 14px;
354
+ opacity: 0.8;
355
+ font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell,
356
+ "Helvetica Neue", sans-serif;
357
+ }
358
+ }
359
+ }
360
+
361
+ .zoom-instagram-widget__overlay {
362
+ position: absolute;
363
+ top: 0;
364
+ left: 0;
365
+ right: 0;
366
+ bottom: 0;
367
+
368
+ &:after {
369
+ position: absolute;
370
+ content: "";
371
+ top: 0;
372
+ left: 0;
373
+ pointer-events: none;
374
+ width: 100%;
375
+ height: 100%;
376
+ opacity: 0;
377
+ transition: opacity 0.25s ease-in-out;
378
+ -moz-transition: opacity 0.25s ease-in-out;
379
+ -webkit-transition: opacity 0.25s ease-in-out;
380
+ }
381
+
382
+ &:hover:after {
383
+ opacity: 0.7;
384
+ background-color: #000000;
385
+ }
386
+ }
387
+
388
+ .zoom-instagram-widget__black:after {
389
+ background-color: #000000;
390
+ }
391
+
392
+ .zoom-svg-instagram-simple {
393
+ display: inline-block;
394
+ width: 30px;
395
+ height: 30px;
396
+ background: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHg9IjBweCIgeT0iMHB4IgogICAgIHdpZHRoPSI1MCIgaGVpZ2h0PSI1MCIKICAgICB2aWV3Qm94PSIwIDAgNTAgNTAiCiAgICAgc3R5bGU9ImZpbGw6I2ZmZmZmZjsiPiAgICA8cGF0aCBzdHlsZT0ibGluZS1oZWlnaHQ6bm9ybWFsO3RleHQtaW5kZW50OjA7dGV4dC1hbGlnbjpzdGFydDt0ZXh0LWRlY29yYXRpb24tbGluZTpub25lO3RleHQtZGVjb3JhdGlvbi1zdHlsZTpzb2xpZDt0ZXh0LWRlY29yYXRpb24tY29sb3I6IzAwMDt0ZXh0LXRyYW5zZm9ybTpub25lO2Jsb2NrLXByb2dyZXNzaW9uOnRiO2lzb2xhdGlvbjphdXRvO21peC1ibGVuZC1tb2RlOm5vcm1hbCIgZD0iTSAxNiAzIEMgOC44MzI0ODM5IDMgMyA4LjgzMjQ4MzkgMyAxNiBMIDMgMzQgQyAzIDQxLjE2NzUxNiA4LjgzMjQ4MzkgNDcgMTYgNDcgTCAzNCA0NyBDIDQxLjE2NzUxNiA0NyA0NyA0MS4xNjc1MTYgNDcgMzQgTCA0NyAxNiBDIDQ3IDguODMyNDgzOSA0MS4xNjc1MTYgMyAzNCAzIEwgMTYgMyB6IE0gMTYgNSBMIDM0IDUgQyA0MC4wODY0ODQgNSA0NSA5LjkxMzUxNjEgNDUgMTYgTCA0NSAzNCBDIDQ1IDQwLjA4NjQ4NCA0MC4wODY0ODQgNDUgMzQgNDUgTCAxNiA0NSBDIDkuOTEzNTE2MSA0NSA1IDQwLjA4NjQ4NCA1IDM0IEwgNSAxNiBDIDUgOS45MTM1MTYxIDkuOTEzNTE2MSA1IDE2IDUgeiBNIDM3IDExIEEgMiAyIDAgMCAwIDM1IDEzIEEgMiAyIDAgMCAwIDM3IDE1IEEgMiAyIDAgMCAwIDM5IDEzIEEgMiAyIDAgMCAwIDM3IDExIHogTSAyNSAxNCBDIDE4LjkzNjcxMiAxNCAxNCAxOC45MzY3MTIgMTQgMjUgQyAxNCAzMS4wNjMyODggMTguOTM2NzEyIDM2IDI1IDM2IEMgMzEuMDYzMjg4IDM2IDM2IDMxLjA2MzI4OCAzNiAyNSBDIDM2IDE4LjkzNjcxMiAzMS4wNjMyODggMTQgMjUgMTQgeiBNIDI1IDE2IEMgMjkuOTgyNDA3IDE2IDM0IDIwLjAxNzU5MyAzNCAyNSBDIDM0IDI5Ljk4MjQwNyAyOS45ODI0MDcgMzQgMjUgMzQgQyAyMC4wMTc1OTMgMzQgMTYgMjkuOTgyNDA3IDE2IDI1IEMgMTYgMjAuMDE3NTkzIDIwLjAxNzU5MyAxNiAyNSAxNiB6IiBmb250LXdlaWdodD0iNDAwIiBmb250LWZhbWlseT0ic2Fucy1zZXJpZiIgd2hpdGUtc3BhY2U9Im5vcm1hbCIgb3ZlcmZsb3c9InZpc2libGUiPjwvcGF0aD48L3N2Zz4=")
397
+ 50% 50% no-repeat;
398
+ background-size: 100%;
399
+ }
400
+
401
+ .zoom-svg-instagram-stroke {
402
+ display: inline-block;
403
+ width: 30px;
404
+ height: 30px;
405
+ background: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHg9IjBweCIgeT0iMHB4IgogICAgIHdpZHRoPSI1MCIgaGVpZ2h0PSI1MCIKICAgICB2aWV3Qm94PSIwIDAgMjUyIDI1MiIKICAgICBzdHlsZT0iZmlsbDojMDAwMDAwOyI+PGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMi4zOTQsMi4zOTQpIHNjYWxlKDAuOTgxLDAuOTgxKSI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJub256ZXJvIiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9ImJ1dHQiIHN0cm9rZS1saW5lam9pbj0ibm9uZSIgc3Ryb2tlLW1pdGVybGltaXQ9IjEwIiBzdHJva2UtZGFzaGFycmF5PSIiIHN0cm9rZS1kYXNob2Zmc2V0PSIwIiBmb250LWZhbWlseT0ibm9uZSIgZm9udC13ZWlnaHQ9Im5vbmUiIGZvbnQtc2l6ZT0ibm9uZSIgdGV4dC1hbmNob3I9Im5vbmUiIHN0eWxlPSJtaXgtYmxlbmQtbW9kZTogbm9ybWFsIj48ZyBpZD0ib3JpZ2luYWwtaWNvbiAxIiBmaWxsPSIjZmZmZmZmIiBzdHJva2U9IiNmZmZmZmYiIHN0cm9rZS13aWR0aD0iNSIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBhdGggZD0iTTE3MS4zNiwxNS4xMmMzNi4xMjQyOCwwIDY1LjUyLDI5LjM5NTcyIDY1LjUyLDY1LjUydjkwLjcyYzAsMzYuMTI0MjggLTI5LjM5NTcyLDY1LjUyIC02NS41Miw2NS41MmgtOTAuNzJjLTM2LjEyNDI4LDAgLTY1LjUyLC0yOS4zOTU3MiAtNjUuNTIsLTY1LjUydi05MC43MmMwLC0zNi4xMjQyOCAyOS4zOTU3MiwtNjUuNTIgNjUuNTIsLTY1LjUyek0yNS4yLDgwLjY0djkwLjcyYzAsMzAuNjc1ODggMjQuNzY0MTIsNTUuNDQgNTUuNDQsNTUuNDRoOTAuNzJjMzAuNjc1ODgsMCA1NS40NCwtMjQuNzY0MTIgNTUuNDQsLTU1LjQ0di05MC43MmMwLC0zMC42NzU4OCAtMjQuNzY0MTIsLTU1LjQ0IC01NS40NCwtNTUuNDRoLTkwLjcyYy0zMC42NzU4OCwwIC01NS40NCwyNC43NjQxMiAtNTUuNDQsNTUuNDR6TTE5Ni41Niw2NS41MmMwLDUuNTY3MDMgLTQuNTEyOTcsMTAuMDggLTEwLjA4LDEwLjA4Yy01LjU2NzAzLDAgLTEwLjA4LC00LjUxMjk3IC0xMC4wOCwtMTAuMDhjMCwtNS41NjcwMyA0LjUxMjk3LC0xMC4wOCAxMC4wOCwtMTAuMDhjNS41NjcwMywwIDEwLjA4LDQuNTEyOTcgMTAuMDgsMTAuMDh6TTE4MS40NCwxMjZjMCwzMC41NTg5NyAtMjQuODgxMDMsNTUuNDQgLTU1LjQ0LDU1LjQ0Yy0zMC41NTg5NywwIC01NS40NCwtMjQuODgxMDMgLTU1LjQ0LC01NS40NGMwLC0zMC41NTg5NyAyNC44ODEwMywtNTUuNDQgNTUuNDQsLTU1LjQ0YzMwLjU1ODk3LDAgNTUuNDQsMjQuODgxMDMgNTUuNDQsNTUuNDR6TTgwLjY0LDEyNmMwLDI1LjExMTMzIDIwLjI0ODY3LDQ1LjM2IDQ1LjM2LDQ1LjM2YzI1LjExMTMzLDAgNDUuMzYsLTIwLjI0ODY3IDQ1LjM2LC00NS4zNmMwLC0yNS4xMTEzMyAtMjAuMjQ4NjcsLTQ1LjM2IC00NS4zNiwtNDUuMzZjLTI1LjExMTMzLDAgLTQ1LjM2LDIwLjI0ODY3IC00NS4zNiw0NS4zNnoiPjwvcGF0aD48L2c+PHBhdGggZD0iTTAsMjUydi0yNTJoMjUydjI1MnoiIGZpbGw9Im5vbmUiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBzdHJva2UtbGluZWpvaW49Im1pdGVyIj48L3BhdGg+PGcgaWQ9Im9yaWdpbmFsLWljb24iIGZpbGw9IiNmZmZmZmYiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBzdHJva2UtbGluZWpvaW49Im1pdGVyIj48cGF0aCBkPSJNODAuNjQsMTUuMTJjLTM2LjEyNDI4LDAgLTY1LjUyLDI5LjM5NTcyIC02NS41Miw2NS41MnY5MC43MmMwLDM2LjEyNDI4IDI5LjM5NTcyLDY1LjUyIDY1LjUyLDY1LjUyaDkwLjcyYzM2LjEyNDI4LDAgNjUuNTIsLTI5LjM5NTcyIDY1LjUyLC02NS41MnYtOTAuNzJjMCwtMzYuMTI0MjggLTI5LjM5NTcyLC02NS41MiAtNjUuNTIsLTY1LjUyek04MC42NCwyNS4yaDkwLjcyYzMwLjY3NTg4LDAgNTUuNDQsMjQuNzY0MTIgNTUuNDQsNTUuNDR2OTAuNzJjMCwzMC42NzU4OCAtMjQuNzY0MTIsNTUuNDQgLTU1LjQ0LDU1LjQ0aC05MC43MmMtMzAuNjc1ODgsMCAtNTUuNDQsLTI0Ljc2NDEyIC01NS40NCwtNTUuNDR2LTkwLjcyYzAsLTMwLjY3NTg4IDI0Ljc2NDEyLC01NS40NCA1NS40NCwtNTUuNDR6TTE4Ni40OCw1NS40NGMtNS41NjcwMywwIC0xMC4wOCw0LjUxMjk3IC0xMC4wOCwxMC4wOGMwLDUuNTY3MDMgNC41MTI5NywxMC4wOCAxMC4wOCwxMC4wOGM1LjU2NzAzLDAgMTAuMDgsLTQuNTEyOTcgMTAuMDgsLTEwLjA4YzAsLTUuNTY3MDMgLTQuNTEyOTcsLTEwLjA4IC0xMC4wOCwtMTAuMDh6TTEyNiw3MC41NmMtMzAuNTU4OTcsMCAtNTUuNDQsMjQuODgxMDMgLTU1LjQ0LDU1LjQ0YzAsMzAuNTU4OTcgMjQuODgxMDMsNTUuNDQgNTUuNDQsNTUuNDRjMzAuNTU4OTcsMCA1NS40NCwtMjQuODgxMDMgNTUuNDQsLTU1LjQ0YzAsLTMwLjU1ODk3IC0yNC44ODEwMywtNTUuNDQgLTU1LjQ0LC01NS40NHpNMTI2LDgwLjY0YzI1LjExMTMzLDAgNDUuMzYsMjAuMjQ4NjcgNDUuMzYsNDUuMzZjMCwyNS4xMTEzMyAtMjAuMjQ4NjcsNDUuMzYgLTQ1LjM2LDQ1LjM2Yy0yNS4xMTEzMywwIC00NS4zNiwtMjAuMjQ4NjcgLTQ1LjM2LC00NS4zNmMwLC0yNS4xMTEzMyAyMC4yNDg2NywtNDUuMzYgNDUuMzYsLTQ1LjM2eiI+PC9wYXRoPjwvZz48cGF0aCBkPSJNMTI2LDI1MmMtNjkuNTg3ODgsMCAtMTI2LC01Ni40MTIxMiAtMTI2LC0xMjZ2MGMwLC02OS41ODc4OCA1Ni40MTIxMiwtMTI2IDEyNiwtMTI2djBjNjkuNTg3ODgsMCAxMjYsNTYuNDEyMTIgMTI2LDEyNnYwYzAsNjkuNTg3ODggLTU2LjQxMjEyLDEyNiAtMTI2LDEyNnoiIGZpbGw9Im5vbmUiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBzdHJva2UtbGluZWpvaW49Im1pdGVyIj48L3BhdGg+PHBhdGggZD0iTTEyNiwyNDYuOTZjLTY2LjgwNDM2LDAgLTEyMC45NiwtNTQuMTU1NjQgLTEyMC45NiwtMTIwLjk2djBjMCwtNjYuODA0MzYgNTQuMTU1NjQsLTEyMC45NiAxMjAuOTYsLTEyMC45NmgwYzY2LjgwNDM2LDAgMTIwLjk2LDU0LjE1NTY0IDEyMC45NiwxMjAuOTZ2MGMwLDY2LjgwNDM2IC01NC4xNTU2NCwxMjAuOTYgLTEyMC45NiwxMjAuOTZ6IiBmaWxsPSJub25lIiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgc3Ryb2tlLWxpbmVqb2luPSJtaXRlciI+PC9wYXRoPjxwYXRoIGQ9IiIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjEiIHN0cm9rZS1saW5lam9pbj0ibWl0ZXIiPjwvcGF0aD48cGF0aCBkPSIiIGZpbGw9Im5vbmUiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBzdHJva2UtbGluZWpvaW49Im1pdGVyIj48L3BhdGg+PHBhdGggZD0iIiBmaWxsPSJub25lIiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgc3Ryb2tlLWxpbmVqb2luPSJtaXRlciI+PC9wYXRoPjxwYXRoIGQ9IiIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjEiIHN0cm9rZS1saW5lam9pbj0ibWl0ZXIiPjwvcGF0aD48L2c+PC9nPjwvc3ZnPg==")
406
+ 50% 50% no-repeat;
407
+ background-size: 100%;
408
+ }
409
+
410
+ .zoom-instagram-widget__item .hover-layout.small {
411
+ .hover-controls .dashicons {
412
+ font-size: 15px;
413
+ width: 15px;
414
+ height: 15px;
415
+ }
416
+
417
+ .zoom-instagram-icon-wrap .zoom-svg-instagram-stroke {
418
+ width: 18px;
419
+ height: 18px;
420
+ }
421
+
422
+ .hover-controls .counter {
423
+ padding-left: 1px;
424
+ padding-right: 4px;
425
+ font-size: 11px;
426
+ }
427
+ }
428
+
429
+ /** Instagram user info **/
430
+
431
+ .zoom-instagram-widget-user-info {
432
+ display: flex;
433
+ padding: 0 0px 20px;
434
+
435
+ /*justify-content: space-between;*/
436
+
437
+ .zoom-instagram-widget-user-info-picture {
438
+ flex: 1;
439
+
440
+ img {
441
+ border-radius: 50%;
442
+ }
443
+ }
444
+
445
+ .zoom-instagram-widget-user-info-meta {
446
+ display: flex;
447
+ flex: 3;
448
+ flex-direction: column;
449
+ margin-left: 15px;
450
+ text-align: left;
451
+ justify-content: center;
452
+ }
453
+
454
+ .zoom-instagram-widget-user-info-about-data {
455
+ display: flex;
456
+ justify-content: space-between;
457
+ margin-bottom: 10px;
458
+ }
459
+
460
+ .zoom-instagram-widget-user-info-stats {
461
+ font-size: 14px;
462
+ line-height: 1.2;
463
+ justify-content: space-between;
464
+ display: flex;
465
+ text-align: center;
466
+ }
467
+
468
+ .zoom-instagram-widget-user-info-follow-button {
469
+ padding: 0px 24px;
470
+ margin-top: 10px;
471
+ background: #3897f0;
472
+ color: #fff !important;
473
+ font-size: 14px;
474
+ font-weight: 600;
475
+ line-height: 26px;
476
+ font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
477
+ text-transform: none;
478
+ border-radius: 3px;
479
+ outline: 0;
480
+ overflow: hidden;
481
+ text-overflow: ellipsis;
482
+ display: block;
483
+ border: none;
484
+ box-shadow: none;
485
+ text-decoration: none !important;
486
+
487
+ &:hover {
488
+ color: #fff;
489
+ opacity: 0.8;
490
+ box-shadow: none;
491
+ border: none;
492
+ text-decoration: none;
493
+ }
494
+ }
495
+
496
+ .zoom-instagram-widget-user-info-counts {
497
+ font-weight: 600;
498
+ }
499
+
500
+ .zoom-instagram-widget-user-info-counts-subhead {
501
+ /*color: #999;*/
502
+ opacity: 0.7;
503
+ font-size: 14px;
504
+ }
505
+ }
506
+
507
+ .zoom-instagram-widget-user-info-grey-color {
508
+ /*color: #b0b0b0;*/
509
+ }
510
+
511
+ .zoom-instagram-widget-user-info-middle-cell {
512
+ padding: 0px 20px;
513
+ }
514
+
515
+ .zoom-instagram-widget-user-info {
516
+ .zoom-instagram-widget-user-info-fullname {
517
+ font-weight: 600;
518
+ font-size: 16px;
519
+ }
520
+
521
+ .zoom-instagram-widget-user-info-names-wrapper {
522
+ padding-right: 20px;
523
+ word-break: break-word;
524
+ }
525
+
526
+ .zoom-instagram-widget-user-info-username {
527
+ font-size: 14px;
528
+ font-weight: 600;
529
+ word-break: break-all;
530
+ opacity: 0.7;
531
+ }
532
+ }
533
+
534
+ .zoom-instagram-widget-user-info-bio {
535
+ text-align: left;
536
+ font-size: 14px;
537
+ margin: 0 0 15px;
538
+ }
539
+
540
+ .zoom-instagram-widget-user-info .zoom-instagram-widget-user-info-fullname {
541
+ /*color: #262626;*/
542
+ }
543
+
544
+ .zoom-instagram-widget__items {
545
+ .zoom-instagram-widget__item-inner-wrap {
546
+ position: relative;
547
+ height: 100%;
548
+ overflow: hidden;
549
+ }
550
+
551
+ .zoom-instagram-widget__item .zoom-instagram-link {
552
+ display: block;
553
+ background-size: cover !important;
554
+ background-position: center center !important;
555
+ background-repeat: no-repeat !important;
556
+ }
557
+
558
+ .svg-icon {
559
+ position: absolute;
560
+ width: 32px;
561
+ padding: 8px;
562
+ height: 32px;
563
+ display: flex;
564
+ top: 0;
565
+ right: 0;
566
+ z-index: 1;
567
+ }
568
+ }
569
+ }
570
+
571
+ /** Lightbox **/
572
+
573
+ .wpz-insta-lightbox {
574
+ pointer-events: all;
575
+ display: flex;
576
+ flex-direction: row;
577
+ /*flex-wrap: wrap;*/
578
+ background-color: white;
579
+ }
580
+
581
+ .wpz-insta-lightbox-wrapper {
582
+ display: flex;
583
+ justify-content: center;
584
+ pointer-events: none;
585
+
586
+ .wpz-insta-lightbox .details-wrapper {
587
+ // width: 335px;
588
+
589
+ .wpz-insta-header {
590
+ display: flex;
591
+ align-items: center;
592
+ padding: 16px;
593
+ border-bottom: 1px solid #efefef;
594
+
595
+ .wpz-insta-avatar img {
596
+ width: 42px;
597
+ height: 42px;
598
+ border-radius: 50%;
599
+ }
600
+
601
+ .wpz-insta-username a,
602
+ .wpz-insta-follow a {
603
+ color: #262626;
604
+ font-weight: 600;
605
+ text-decoration: none;
606
+ font-size: 14px;
607
+ }
608
+
609
+ .wpz-insta-username a:hover {
610
+ text-decoration: underline;
611
+ }
612
+
613
+ .wpz-insta-follow a {
614
+ color: #0095f6;
615
+ }
616
+
617
+ > div {
618
+ margin-right: 13px;
619
+ }
620
+
621
+ .wpz-insta-buttons {
622
+ display: flex;
623
+
624
+ > div {
625
+ padding: 5px;
626
+ }
627
+ }
628
+ }
629
+
630
+ .wpz-insta-caption {
631
+ color: #262626;
632
+ line-height: 1.5;
633
+ font-size: 14px;
634
+ padding: 16px;
635
+ font-weight: normal;
636
+ overflow-y: scroll;
637
+ max-height: 384px;
638
+ border-bottom: 1px solid #efefef;
639
+ }
640
+ }
641
+ }
642
+
643
+ .wpzoom-lightbox {
644
+ &.mfp-gallery {
645
+ z-index: 100000;
646
+ pointer-events: none;
647
+ }
648
+
649
+ button.mfp-close {
650
+ pointer-events: all;
651
+ color: #fff;
652
+ font-size: 50px;
653
+ font-weight: 100;
654
+ margin-top: 25px;
655
+ margin-right: 15px;
656
+ }
657
+
658
+ .mfp-prevent-close {
659
+ pointer-events: all;
660
+ }
661
+
662
+ button.mfp-close:hover {
663
+ text-decoration: none;
664
+ }
665
+ }
666
+
667
+ .wpz-insta-lightbox-wrapper {
668
+ .wpz-insta-lightbox {
669
+ .details-wrapper .wpz-insta-date {
670
+ font-size: 12px;
671
+ padding: 16px;
672
+ color: #8e8e8e;
673
+ flex: 1;
674
+ }
675
+
676
+ .image-wrapper {
677
+ img {
678
+ height: 100%;
679
+ max-width: 100%;
680
+ object-fit: contain;
681
+ }
682
+
683
+ flex-grow: 1;
684
+ text-align: center;
685
+ height: 600px;
686
+ width: 600px;
687
+ background: #000;
688
+ }
689
+ }
690
+
691
+ > .swiper-container {
692
+ pointer-events: none;
693
+ width: 70%;
694
+ height: 100%;
695
+
696
+ .swiper-container {
697
+ width: 100%;
698
+ height: 100%;
699
+
700
+ .swiper-slide {
701
+ height: 100%;
702
+ }
703
+ }
704
+ }
705
+
706
+ video {
707
+ height: 100%;
708
+ max-width: 100%;
709
+ }
710
+
711
+ > .swiper-container {
712
+ .swiper-container {
713
+ .swiper-button-prev,
714
+ .swiper-button-next {
715
+ --swiper-navigation-size: 34px;
716
+ color: #000;
717
+ background: #fff;
718
+ width: var(--swiper-navigation-size);
719
+ border-radius: 50%;
720
+ }
721
+
722
+ .swiper-button-prev::after,
723
+ .swiper-button-next::after {
724
+ font-size: 16px;
725
+ }
726
+ }
727
+
728
+ > {
729
+ .swiper-wrapper {
730
+ pointer-events: all;
731
+ }
732
+
733
+ .swiper-button-prev,
734
+ .swiper-button-next {
735
+ position: fixed;
736
+ pointer-events: all;
737
+ }
738
+ }
739
+
740
+ .swiper-button-prev,
741
+ .swiper-button-next {
742
+ color: #fff;
743
+ opacity: 0.75;
744
+ }
745
+
746
+ .swiper-button-prev:hover,
747
+ .swiper-button-next:hover {
748
+ opacity: 1;
749
+ }
750
+
751
+ .swiper-button-prev.swiper-button-disabled,
752
+ .swiper-button-next.swiper-button-disabled {
753
+ opacity: 0.25 !important;
754
+ }
755
+ }
756
+
757
+ .wpz-insta-lightbox .details-wrapper {
758
+ display: flex;
759
+ flex-direction: column;
760
+ flex-grow: 1;
761
+
762
+ .view-post {
763
+ padding: 16px;
764
+ text-decoration: none;
765
+ font-size: 12px;
766
+ color: #262626;
767
+ font-weight: 400;
768
+ line-height: 20px;
769
+ display: flex;
770
+ border-top: 1px solid #efefef;
771
+
772
+ a {
773
+ text-decoration: none;
774
+ font-size: 12px;
775
+ color: #262626;
776
+ font-weight: 400;
777
+ line-height: 20px;
778
+ text-align: center;
779
+ display: inline-block;
780
+
781
+ span {
782
+ margin-right: 10px;
783
+ }
784
+ }
785
+
786
+ .delimiter {
787
+ padding: 0px 10px;
788
+ }
789
+ }
790
+ }
791
+ }
792
+
793
+ @keyframes show {
794
+ 100% {
795
+ transform: none;
796
+ opacity: 1;
797
+ }
798
+ }
799
+
800
+ @media screen and (max-width: 1200px) {
801
+ .wpz-insta-lightbox-wrapper {
802
+ .wpz-insta-lightbox {
803
+ flex-wrap: wrap;
804
+ }
805
+ }
806
+ }
807
+
808
+ @media screen and (max-width: 860px) {
809
+ .wpz-insta-lightbox-wrapper {
810
+ // display: block;
811
+ // max-width: 76%;
812
+ // margin-left: auto;
813
+ // margin-right: auto;
814
+
815
+ .wpz-insta-lightbox {
816
+ // .image-wrapper {
817
+ // height: auto;
818
+ // max-height: 600px;
819
+ // overflow: hidden;
820
+
821
+ // img {
822
+ // max-width: 100%;
823
+ // height: auto;
824
+ // }
825
+ // }
826
+
827
+ .details-wrapper .wpz-insta-caption {
828
+ font-size: 12px;
829
+ max-height: 134px;
830
+ }
831
+ }
832
+ }
833
+ }
834
+
835
+
836
+ .wp-admin {
837
+
838
+ .wp-block-wpzoom-instagram-block .zoom-instagram-widget__overlay, .zoom-instagram .zoom-instagram-widget__overlay {
839
+ cursor: pointer;
840
+ }
841
+
842
+ .wp-block-wpzoom-instagram-block .zoom-instagram-widget__items .zoom-instagram-widget__item .zoom-instagram-link, .zoom-instagram .zoom-instagram-widget__items .zoom-instagram-widget__item .zoom-instagram-link {
843
+ pointer-events: none;
844
+ }
845
+ }
846
+
847
+
848
+
849
+ @media screen and (max-width: 768px) {
850
+
851
+ .wpz-insta-lightbox {
852
+ flex-direction: column;
853
+ }
854
+
855
+ .wpz-insta-lightbox-wrapper .wpz-insta-lightbox .image-wrapper {
856
+ border-radius: 4px 4px 0 0;
857
+ max-width: 100%;
858
+ }
859
+
860
+ .wpz-insta-lightbox-wrapper .wpz-insta-lightbox .details-wrapper {
861
+ width: 100%;
862
+ }
863
+
864
+
865
+ }
css/instagram-widget.css → src/styles/frontend/index.scss RENAMED
@@ -1,31 +1,228 @@
1
  /* Widget Grid */
2
- .zoom-instagram-widget__follow-me { margin-top: 15px; text-align: center; }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3
 
4
- .zoom-instagram-widget__items { list-style: none !important; }
5
- .zoom-instagram-widget__items::before,
6
- .zoom-instagram-widget__items::after {
7
- content: '';
8
- clear: both;
9
- display: table;
10
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
11
  .zoom-instagram-widget__item {
12
- float: left;
13
  position: relative;
14
- margin-top: 0 !important;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
15
  }
16
 
17
  /* Prevent extra space conflict from theme */
18
- .widget.zoom-instagram-widget ul li.zoom-instagram-widget__item {
 
 
19
  padding: 0;
20
  }
21
 
22
- .zoom-instagram-widget__items--no-js.zoom-instagram-widget__items .zoom-instagram-widget__item { margin-right: 10px; margin-bottom: 10px;
23
- max-width: 100%;
 
24
  }
25
 
26
- .zoom-instagram-widget__items--no-js.zoom-instagram-widget__items .zoom-instagram-widget__item .zoom-instagram-link {
27
- width: 120px !important;
28
- height: 120px !important;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
29
  }
30
 
31
 
@@ -129,7 +326,11 @@ a.ig-b-v-24:hover {
129
  }
130
 
131
  .zoom-instagram-widget__overlay {
132
- position: relative;
 
 
 
 
133
  }
134
 
135
  .zoom-instagram-widget__overlay:after {
@@ -171,18 +372,18 @@ a.ig-b-v-24:hover {
171
  background-size: 100%;
172
  }
173
 
174
- .zoom-instagram-widget__item .hover-layout.small .hover-controls .dashicons{
175
  font-size: 15px;
176
  width: 15px;
177
  height: 15px;
178
  }
179
 
180
- .zoom-instagram-widget__item .hover-layout.small .zoom-instagram-icon-wrap .zoom-svg-instagram-stroke{
181
  width: 18px;
182
  height: 18px;
183
  }
184
 
185
- .zoom-instagram-widget__item .hover-layout.small .hover-controls .counter{
186
  padding-left: 1px;
187
  padding-right: 4px;
188
  font-size: 11px;
@@ -214,11 +415,9 @@ a.ig-b-v-24:hover {
214
  }
215
 
216
  .zoom-instagram-widget-user-info .zoom-instagram-widget-user-info-about-data {
217
-
218
  display: flex;
219
  justify-content: space-between;
220
  margin-bottom: 10px;
221
-
222
  }
223
 
224
  .zoom-instagram-widget-user-info .zoom-instagram-widget-user-info-stats{
@@ -257,33 +456,33 @@ a.ig-b-v-24:hover {
257
  text-decoration: none;
258
  }
259
 
260
- .zoom-instagram-widget-user-info .zoom-instagram-widget-user-info-counts{
261
  font-weight: 600;
262
  }
263
 
264
- .zoom-instagram-widget-user-info .zoom-instagram-widget-user-info-counts-subhead{
265
  /*color: #999;*/
266
  opacity: .7;
267
  font-size: 14px;
268
  }
269
 
270
- .zoom-instagram-widget-user-info-grey-color{
271
  /*color: #b0b0b0;*/
272
  }
273
- .zoom-instagram-widget-user-info-middle-cell{
274
  padding: 0px 20px;
275
  }
276
 
277
- .zoom-instagram-widget-user-info .zoom-instagram-widget-user-info-fullname{
278
  font-weight: 600;
279
  font-size: 16px;
280
  }
281
 
282
- .zoom-instagram-widget-user-info .zoom-instagram-widget-user-info-names-wrapper{
283
  padding-right: 20px;
284
  word-break: break-word;
285
  }
286
- .zoom-instagram-widget-user-info .zoom-instagram-widget-user-info-username{
287
  font-size: 14px;
288
  font-weight: 600;
289
  word-break: break-all;
@@ -296,7 +495,7 @@ a.ig-b-v-24:hover {
296
  margin: 0 0 15px;
297
  }
298
 
299
- .zoom-instagram-widget-user-info .zoom-instagram-widget-user-info-fullname{
300
  /*color: #262626;*/
301
  }
302
 
@@ -305,9 +504,10 @@ a.ig-b-v-24:hover {
305
  background-size: cover !important;
306
  background-position: center center !important;
307
  background-repeat: no-repeat !important;
 
308
  }
309
 
310
- .zoom-instagram-widget__items .svg-icon {
311
  position: absolute;
312
  width: 32px;
313
  padding: 8px;
@@ -316,15 +516,34 @@ a.ig-b-v-24:hover {
316
  top: 0;
317
  right: 0;
318
  z-index: 1;
 
 
 
 
 
 
 
 
 
 
 
319
  }
320
 
321
  /** Lightbox **/
 
 
 
 
 
 
322
  .wpz-insta-lightbox {
323
  pointer-events: all;
324
  display: flex;
325
  flex-direction: row;
326
- flex-wrap: wrap;
327
  background-color: white;
 
 
328
  }
329
 
330
  .wpz-insta-lightbox-wrapper {
@@ -334,7 +553,7 @@ a.ig-b-v-24:hover {
334
  }
335
 
336
  .wpz-insta-lightbox-wrapper .wpz-insta-lightbox .details-wrapper {
337
- width: 335px;
338
  }
339
 
340
  .wpz-insta-lightbox-wrapper .wpz-insta-lightbox .details-wrapper .wpz-insta-header {
@@ -342,6 +561,7 @@ a.ig-b-v-24:hover {
342
  align-items: center;
343
  padding: 16px;
344
  border-bottom: 1px solid #efefef;
 
345
  }
346
 
347
  .wpz-insta-lightbox-wrapper .wpz-insta-lightbox .details-wrapper .wpz-insta-header .wpz-insta-avatar img {
@@ -368,6 +588,7 @@ a.ig-b-v-24:hover {
368
 
369
  .wpz-insta-lightbox-wrapper .wpz-insta-lightbox .details-wrapper .wpz-insta-header > div {
370
  margin-right: 13px;
 
371
  }
372
 
373
  .wpz-insta-lightbox-wrapper .wpz-insta-lightbox .details-wrapper .wpz-insta-header .wpz-insta-buttons {
@@ -422,22 +643,25 @@ a.ig-b-v-24:hover {
422
  height: 100%;
423
  max-width: 100%;
424
  object-fit: contain;
425
- margin-left: auto;
426
- margin-right: auto;
427
  }
428
 
429
  .wpz-insta-lightbox-wrapper .wpz-insta-lightbox .image-wrapper {
430
  flex-grow: 1;
431
  text-align: center;
432
- height: 600px;
433
- width: 600px;
 
 
434
  background: #000;
 
435
  }
436
 
437
  .wpz-insta-lightbox-wrapper > .swiper-container {
438
  pointer-events: none;
439
- width: 70%;
440
- height: 100%;
441
  }
442
 
443
  .wpz-insta-lightbox-wrapper > .swiper-container .swiper-container {
@@ -446,11 +670,22 @@ a.ig-b-v-24:hover {
446
  }
447
 
448
  .wpz-insta-lightbox-wrapper > .swiper-container .swiper-container .swiper-slide {
449
- height: 100%;
 
 
 
 
 
 
 
 
450
  }
451
 
 
 
452
  .wpz-insta-lightbox-wrapper video {
453
  height: 100%;
 
454
  }
455
 
456
  .wpz-insta-lightbox-wrapper > .swiper-container .swiper-container .swiper-button-prev,
@@ -469,6 +704,7 @@ a.ig-b-v-24:hover {
469
 
470
  .wpz-insta-lightbox-wrapper > .swiper-container > .swiper-wrapper {
471
  pointer-events: all;
 
472
  }
473
 
474
  .wpz-insta-lightbox-wrapper > .swiper-container > .swiper-button-prev,
@@ -508,6 +744,8 @@ a.ig-b-v-24:hover {
508
  line-height: 20px;
509
  display: flex;
510
  border-top: 1px solid #efefef;
 
 
511
  }
512
 
513
  .wpz-insta-lightbox-wrapper .wpz-insta-lightbox .details-wrapper .view-post a {
@@ -529,29 +767,113 @@ a.ig-b-v-24:hover {
529
  }
530
 
531
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
532
  @media screen and (max-width: 860px) {
533
 
534
- .wpz-insta-lightbox-wrapper {
535
- display: block;
536
- max-width: 76%;
537
- margin-left: auto;
538
- margin-right: auto;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
539
  }
540
 
541
- .wpz-insta-lightbox-wrapper .wpz-insta-lightbox .image-wrapper {
542
- height: auto;
543
- max-height: 600px;
544
- overflow: hidden;
 
 
 
 
 
545
  }
546
 
547
  .wpz-insta-lightbox-wrapper .wpz-insta-lightbox .image-wrapper img {
 
 
 
 
 
 
548
  max-width: 100%;
549
- height: auto;
550
  }
551
 
 
552
  .wpz-insta-lightbox-wrapper .wpz-insta-lightbox .details-wrapper .wpz-insta-caption {
553
- font-size: 12px;
554
  max-height: 134px;
555
  }
556
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
557
  }
1
  /* Widget Grid */
2
+ .zoom-instagram-widget__follow-me {
3
+ margin-top: 15px;
4
+ text-align: center;
5
+ }
6
+
7
+
8
+ /* styling just for the block */
9
+ .zoom-instagram {
10
+ font-size: 14px;
11
+ overflow: hidden;
12
+ display: block; /* fix for Neve theme's display: flex; */
13
+
14
+ form[disabled] {
15
+ pointer-events: none;
16
+
17
+ &:not(.loading) {
18
+ opacity: 0.5;
19
+ }
20
+ }
21
+
22
+ .zoom-instagram-widget__header {
23
+ display: flex;
24
+ gap: 20px;
25
+ margin: 0 0 25px;
26
+
27
+ .zoom-instagram-widget__header-column-left {
28
+ img {
29
+ height: 70px;
30
+ width: 70px;
31
+ // object-fit: cover;
32
+ border-radius: 50%;
33
+ }
34
+ }
35
+
36
+ .zoom-instagram-widget__header-column-right {
37
+ display: flex;
38
+ flex-direction: column;
39
+ justify-content: center;
40
+ }
41
+
42
+ .zoom-instagram-widget__header-name {
43
+ font-size: 1em;
44
+ font-weight: 600;
45
+ line-height: 1.5;
46
+ padding: 0;
47
+ margin: 0 0 5px;
48
+ letter-spacing: 0;
49
+ }
50
+
51
+ .zoom-instagram-widget__header-user {
52
+ font-weight: 600;
53
+ line-height: normal;
54
+ padding: 0;
55
+ margin: 0;
56
+ opacity: .8;
57
+
58
+ a {
59
+ text-decoration: none;
60
+ }
61
+ }
62
+
63
+ .zoom-instagram-widget__header-bio {
64
+ font-size: 13px;
65
+ font-weight: normal;
66
+ line-height: 1.6;
67
+ padding: 0;
68
+ margin: 6px 0 0;
69
+ }
70
+ }
71
+
72
+ .zoom-instagram-widget__footer {
73
+ display: flex;
74
+ justify-content: center;
75
+ align-items: center;
76
+ flex-direction: row;
77
+ flex-wrap: wrap;
78
+ gap: 15px;
79
+ margin: 25px 0 0;
80
+
81
+ > * {
82
+ display: block;
83
+ }
84
+ }
85
+
86
+ .zoom-instagram-widget__items-wrapper {
87
+ overflow: hidden;
88
+ }
89
+
90
+ .zoom-instagram-widget__items {
91
+ display: grid;
92
+ grid-template-columns: repeat(3, 1fr);
93
+ gap: 10px;
94
+ list-style: none !important;
95
+ padding: 0;
96
+ margin: 0;
97
+
98
+ &.layout-grid {
99
+ .zoom-instagram-widget__item {
100
+ img {
101
+ width: 100%;
102
+ aspect-ratio: 1/1;
103
+ }
104
+ }
105
+ }
106
+
107
+ &.layout-fullwidth {
108
+ display: flex;
109
+ width: 5000px;
110
+
111
+ .zoom-instagram-widget__item {
112
+ img {
113
+ aspect-ratio: 1;
114
+ }
115
+ }
116
+ }
117
+ }
118
 
 
 
 
 
 
 
119
  }
120
+
121
+
122
+ .layout-legacy.zoom-instagram-widget__items {
123
+
124
+ list-style: none !important;
125
+
126
+ .zoom-instagram-widget__item {
127
+ float: left;
128
+ position: relative;
129
+ margin-top: 0 !important;
130
+ padding: 0;
131
+ }
132
+
133
+ .zoom-instagram-widget__overlay {
134
+ position: relative;
135
+ }
136
+
137
+ }
138
+
139
+
140
  .zoom-instagram-widget__item {
 
141
  position: relative;
142
+ transition: all 0.1s ease-in-out;
143
+
144
+ &.new {
145
+ opacity: 0;
146
+ transform: scale(0);
147
+ transform-origin: center;
148
+ animation: show 500ms linear forwards;
149
+ }
150
+
151
+ .zoom-instagram-widget__item-inner-wrap {
152
+ position: relative;
153
+ height: 100%;
154
+ overflow: hidden;
155
+ }
156
+
157
+ img {
158
+ object-fit: cover;
159
+ object-position: center;
160
+ height: 100%;
161
+ }
162
  }
163
 
164
  /* Prevent extra space conflict from theme */
165
+ .widget_block .zoom-instagram-widget__items ul li.zoom-instagram-widget__item,
166
+ .widget.zoom-instagram-widget ul li.zoom-instagram-widget__item,
167
+ .widget.zoom-new-instagram-widget ul li.zoom-instagram-widget__item {
168
  padding: 0;
169
  }
170
 
171
+ .widget_block .zoom-instagram-widget__items-wrapper,
172
+ .widget.zoom-new-instagram-widget .zoom-instagram-widget__items-wrapper {
173
+ overflow: hidden;
174
  }
175
 
176
+ .widget_block .zoom-instagram-widget__items,
177
+ .widget.zoom-new-instagram-widget .zoom-instagram-widget__items {
178
+ display: grid;
179
+ grid-template-columns: repeat(3, 1fr);
180
+ gap: 10px;
181
+ padding: 0;
182
+ margin: 0;
183
+
184
+ &::before,
185
+ &::after {
186
+ display: none;
187
+ }
188
+
189
+ &.layout-grid {
190
+ .zoom-instagram-widget__item {
191
+ img {
192
+ width: 100%;
193
+ aspect-ratio: 1/1;
194
+ }
195
+ }
196
+ }
197
+
198
+ &.layout-fullwidth {
199
+ display: flex;
200
+ width: 5000px;
201
+
202
+ .zoom-instagram-widget__item {
203
+ img {
204
+ aspect-ratio: 1;
205
+ }
206
+ }
207
+ }
208
+
209
+ .zoom-instagram-widget__item {
210
+ .zoom-instagram-widget__item-inner-wrap {
211
+ position: relative;
212
+ height: 100%;
213
+ overflow: hidden;
214
+ }
215
+
216
+ img {
217
+ object-fit: cover;
218
+ object-position: center;
219
+ height: 100%;
220
+ }
221
+
222
+ .zoom-instagram-link {
223
+ padding-bottom: 100%;
224
+ }
225
+ }
226
  }
227
 
228
 
326
  }
327
 
328
  .zoom-instagram-widget__overlay {
329
+ position: absolute;
330
+ top: 0;
331
+ left: 0;
332
+ right: 0;
333
+ bottom: 0;
334
  }
335
 
336
  .zoom-instagram-widget__overlay:after {
372
  background-size: 100%;
373
  }
374
 
375
+ .zoom-instagram-widget__item .hover-layout.small .hover-controls .dashicons {
376
  font-size: 15px;
377
  width: 15px;
378
  height: 15px;
379
  }
380
 
381
+ .zoom-instagram-widget__item .hover-layout.small .zoom-instagram-icon-wrap .zoom-svg-instagram-stroke {
382
  width: 18px;
383
  height: 18px;
384
  }
385
 
386
+ .zoom-instagram-widget__item .hover-layout.small .hover-controls .counter {
387
  padding-left: 1px;
388
  padding-right: 4px;
389
  font-size: 11px;
415
  }
416
 
417
  .zoom-instagram-widget-user-info .zoom-instagram-widget-user-info-about-data {
 
418
  display: flex;
419
  justify-content: space-between;
420
  margin-bottom: 10px;
 
421
  }
422
 
423
  .zoom-instagram-widget-user-info .zoom-instagram-widget-user-info-stats{
456
  text-decoration: none;
457
  }
458
 
459
+ .zoom-instagram-widget-user-info .zoom-instagram-widget-user-info-counts {
460
  font-weight: 600;
461
  }
462
 
463
+ .zoom-instagram-widget-user-info .zoom-instagram-widget-user-info-counts-subhead {
464
  /*color: #999;*/
465
  opacity: .7;
466
  font-size: 14px;
467
  }
468
 
469
+ .zoom-instagram-widget-user-info-grey-color {
470
  /*color: #b0b0b0;*/
471
  }
472
+ .zoom-instagram-widget-user-info-middle-cell {
473
  padding: 0px 20px;
474
  }
475
 
476
+ .zoom-instagram-widget-user-info .zoom-instagram-widget-user-info-fullname {
477
  font-weight: 600;
478
  font-size: 16px;
479
  }
480
 
481
+ .zoom-instagram-widget-user-info .zoom-instagram-widget-user-info-names-wrapper {
482
  padding-right: 20px;
483
  word-break: break-word;
484
  }
485
+ .zoom-instagram-widget-user-info .zoom-instagram-widget-user-info-username {
486
  font-size: 14px;
487
  font-weight: 600;
488
  word-break: break-all;
495
  margin: 0 0 15px;
496
  }
497
 
498
+ .zoom-instagram-widget-user-info .zoom-instagram-widget-user-info-fullname {
499
  /*color: #262626;*/
500
  }
501
 
504
  background-size: cover !important;
505
  background-position: center center !important;
506
  background-repeat: no-repeat !important;
507
+ padding-bottom: 100%;
508
  }
509
 
510
+ .zoom-instagram-widget__items .zoom-instagram-widget__item .svg-icon {
511
  position: absolute;
512
  width: 32px;
513
  padding: 8px;
516
  top: 0;
517
  right: 0;
518
  z-index: 1;
519
+ transition: opacity 0.25s ease-in-out;
520
+ -moz-transition: opacity 0.25s ease-in-out;
521
+ -webkit-transition: opacity 0.25s ease-in-out;
522
+ }
523
+
524
+ .zoom-instagram-widget__items .zoom-instagram-widget__item.media-icons-hover .svg-icon {
525
+ opacity: 0;
526
+ }
527
+
528
+ .zoom-instagram-widget__items .zoom-instagram-widget__item.media-icons-hover:hover .svg-icon {
529
+ opacity: 1;
530
  }
531
 
532
  /** Lightbox **/
533
+
534
+ .wpzoom-lightbox .mfp-inline-holder .mfp-content {
535
+ max-width: none;
536
+ }
537
+
538
+
539
  .wpz-insta-lightbox {
540
  pointer-events: all;
541
  display: flex;
542
  flex-direction: row;
543
+ /*flex-wrap: wrap;*/
544
  background-color: white;
545
+ border-radius: 4px;
546
+ height: 100%;
547
  }
548
 
549
  .wpz-insta-lightbox-wrapper {
553
  }
554
 
555
  .wpz-insta-lightbox-wrapper .wpz-insta-lightbox .details-wrapper {
556
+ width: 30%;
557
  }
558
 
559
  .wpz-insta-lightbox-wrapper .wpz-insta-lightbox .details-wrapper .wpz-insta-header {
561
  align-items: center;
562
  padding: 16px;
563
  border-bottom: 1px solid #efefef;
564
+ flex-wrap: wrap;
565
  }
566
 
567
  .wpz-insta-lightbox-wrapper .wpz-insta-lightbox .details-wrapper .wpz-insta-header .wpz-insta-avatar img {
588
 
589
  .wpz-insta-lightbox-wrapper .wpz-insta-lightbox .details-wrapper .wpz-insta-header > div {
590
  margin-right: 13px;
591
+ min-width: 42px;
592
  }
593
 
594
  .wpz-insta-lightbox-wrapper .wpz-insta-lightbox .details-wrapper .wpz-insta-header .wpz-insta-buttons {
643
  height: 100%;
644
  max-width: 100%;
645
  object-fit: contain;
646
+ min-height: 700px;
647
+ min-width: 700px;
648
  }
649
 
650
  .wpz-insta-lightbox-wrapper .wpz-insta-lightbox .image-wrapper {
651
  flex-grow: 1;
652
  text-align: center;
653
+ height: auto;
654
+ width: 100%;
655
+ max-width: 70%;
656
+ max-height: 100%;
657
  background: #000;
658
+ border-radius: 4px 0 0 4px;
659
  }
660
 
661
  .wpz-insta-lightbox-wrapper > .swiper-container {
662
  pointer-events: none;
663
+ width: 1000px;
664
+ height: 80vh;
665
  }
666
 
667
  .wpz-insta-lightbox-wrapper > .swiper-container .swiper-container {
670
  }
671
 
672
  .wpz-insta-lightbox-wrapper > .swiper-container .swiper-container .swiper-slide {
673
+ // height: 100%;
674
+ max-height: 100%;
675
+ }
676
+
677
+
678
+ .wpz-insta-lightbox-wrapper > .swiper-container-autoheight, .swiper-container-autoheight .swiper-slide {
679
+ height: 100%;
680
+ max-height: 80vh;
681
+
682
  }
683
 
684
+
685
+
686
  .wpz-insta-lightbox-wrapper video {
687
  height: 100%;
688
+ max-width: 100%;
689
  }
690
 
691
  .wpz-insta-lightbox-wrapper > .swiper-container .swiper-container .swiper-button-prev,
704
 
705
  .wpz-insta-lightbox-wrapper > .swiper-container > .swiper-wrapper {
706
  pointer-events: all;
707
+ // max-height: 80vh;
708
  }
709
 
710
  .wpz-insta-lightbox-wrapper > .swiper-container > .swiper-button-prev,
744
  line-height: 20px;
745
  display: flex;
746
  border-top: 1px solid #efefef;
747
+ flex-wrap: wrap;
748
+ justify-content: flex-start;
749
  }
750
 
751
  .wpz-insta-lightbox-wrapper .wpz-insta-lightbox .details-wrapper .view-post a {
767
  }
768
 
769
 
770
+ @keyframes show {
771
+ 100% {
772
+ transform: none;
773
+ opacity: 1;
774
+ }
775
+ }
776
+
777
+ @media screen and (max-width: 1200px) {
778
+ .wpz-insta-lightbox-wrapper {
779
+ .wpz-insta-lightbox {
780
+ flex-wrap: wrap;
781
+ }
782
+ }
783
+
784
+ .wpz-insta-lightbox-wrapper > .swiper-container {
785
+ width: 86%;
786
+ }
787
+
788
+ .wpz-insta-lightbox-wrapper .wpz-insta-lightbox .image-wrapper img {
789
+ min-height: 500px;
790
+ min-width: 500px;
791
+ }
792
+
793
+ }
794
+
795
  @media screen and (max-width: 860px) {
796
 
797
+ // .wpz-insta-lightbox-wrapper>.swiper-container {
798
+ // width: 70%;
799
+ // }
800
+
801
+ // .wpz-insta-lightbox-wrapper {
802
+ // display: block;
803
+ // max-width: 76%;
804
+ // margin-left: auto;
805
+ // margin-right: auto;
806
+ // }
807
+
808
+ // .wpz-insta-lightbox-wrapper .wpz-insta-lightbox .image-wrapper {
809
+ // height: auto;
810
+ // max-height: 100%;
811
+ // overflow: hidden;
812
+ // }
813
+
814
+ // .wpz-insta-lightbox-wrapper .wpz-insta-lightbox .image-wrapper img {
815
+ // max-width: 100%;
816
+ // height: auto;
817
+ // }
818
+
819
+ .wpz-insta-lightbox-wrapper .wpz-insta-lightbox .details-wrapper .wpz-insta-caption {
820
+ font-size: 12px;
821
  }
822
 
823
+
824
+
825
+ }
826
+
827
+
828
+ @media screen and (max-width: 768px) {
829
+
830
+ .wpz-insta-lightbox {
831
+ flex-direction: column;
832
  }
833
 
834
  .wpz-insta-lightbox-wrapper .wpz-insta-lightbox .image-wrapper img {
835
+ min-height: 400px;
836
+ min-width: 400px;
837
+ }
838
+
839
+ .wpz-insta-lightbox-wrapper .wpz-insta-lightbox .image-wrapper {
840
+ border-radius: 4px 4px 0 0;
841
  max-width: 100%;
842
+ height: 65%;
843
  }
844
 
845
+
846
  .wpz-insta-lightbox-wrapper .wpz-insta-lightbox .details-wrapper .wpz-insta-caption {
 
847
  max-height: 134px;
848
  }
849
 
850
+
851
+ .wpz-insta-lightbox-wrapper .wpz-insta-lightbox .details-wrapper {
852
+ width: 100%;
853
+ height: 35%;
854
+ }
855
+
856
+
857
+ }
858
+
859
+
860
+
861
+ @media screen and (max-width: 600px) {
862
+
863
+ .wpz-insta-lightbox-wrapper .wpz-insta-lightbox .image-wrapper img {
864
+ min-height: 280px;
865
+ min-width: 280px;
866
+ }
867
+
868
+ .wpz-insta-lightbox-wrapper > .swiper-container {
869
+ width: 76%;
870
+ }
871
+
872
+ .wpz-insta-lightbox-wrapper .wpz-insta-lightbox .image-wrapper {
873
+ height: 55%;
874
+ }
875
+
876
+ .wpz-insta-lightbox-wrapper .wpz-insta-lightbox .details-wrapper {
877
+ height: 45%;
878
+ }
879
  }
src/styles/frontend/preview.scss ADDED
@@ -0,0 +1,107 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ html {
2
+ background: transparent !important;
3
+ padding: 0 !important;
4
+ border: 0 !important;
5
+ margin: 0 !important;
6
+
7
+ body {
8
+ background: transparent !important;
9
+ padding: 30px !important;
10
+ border: 0 !important;
11
+ margin: 0 !important;
12
+
13
+ > * {
14
+ display: none !important;
15
+ }
16
+
17
+ > .zoom-new-instagram-widget {
18
+ display: block !important;
19
+ padding: 0 !important;
20
+ border: 0 !important;
21
+ margin: 0 !important;
22
+
23
+ .zoom-instagram {
24
+ border: none;
25
+ }
26
+ }
27
+
28
+ .zoom-instagram {
29
+ background: rgba(0, 0, 0, 0.05);
30
+ padding: 25px;
31
+ // border: 1px solid rgba(0, 0, 0, 0.1) !important;
32
+ border: 20px solid rgba(0, 0, 0, 0.0) !important;
33
+ border-radius: 3px;
34
+
35
+ .button,
36
+ .wpzinsta-pro-load-more input[type='submit'],
37
+ .wpzinsta-pro-load-more button[type='submit'] {
38
+ display: flex !important;
39
+ flex-direction: row !important;
40
+ align-items: center !important;
41
+ justify-content: center !important;
42
+ gap: 10px !important;
43
+ cursor: pointer;
44
+ font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;
45
+ font-size: 0.929em !important;
46
+ font-weight: 600 !important;
47
+ text-decoration: none !important;
48
+ line-height: 35px !important;
49
+ color: #fff !important;
50
+ background: #3496ff !important;
51
+ min-height: 35px !important;
52
+ padding: 0 12px !important;
53
+ border: 0 !important;
54
+ border-radius: 2px !important;
55
+ transition: all 0.2s ease !important;
56
+
57
+ &:hover,
58
+ &:active {
59
+ text-decoration: none !important;
60
+ color: #fff !important;
61
+ background: #70b5fe !important;
62
+ }
63
+
64
+ &.disabled {
65
+ pointer-events: none !important;
66
+ opacity: 0.5 !important;
67
+ }
68
+
69
+ > .button-icon {
70
+ height: 18px !important;
71
+ width: 18px !important;
72
+ }
73
+ }
74
+
75
+ .select-a-feed {
76
+ display: flex;
77
+ align-items: center;
78
+ justify-content: center;
79
+ gap: 8px;
80
+ cursor: default;
81
+ line-height: 24px;
82
+ padding: 0;
83
+ margin: 0;
84
+
85
+ svg {
86
+ flex-shrink: 0;
87
+ color: #3496ff;
88
+ height: 24px;
89
+ width: 24px;
90
+ animation: point 1s infinite;
91
+ }
92
+ }
93
+ }
94
+ }
95
+ }
96
+
97
+ @keyframes point {
98
+ 0% {
99
+ transform: translateX(0%);
100
+ }
101
+ 50% {
102
+ transform: translateX(-30%);
103
+ }
104
+ 100% {
105
+ transform: translateX(0%);
106
+ }
107
+ }
src/styles/library/magnific-popup.css ADDED
@@ -0,0 +1,351 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Magnific Popup CSS */
2
+ .mfp-bg {
3
+ top: 0;
4
+ left: 0;
5
+ width: 100%;
6
+ height: 100%;
7
+ z-index: 1042;
8
+ overflow: hidden;
9
+ position: fixed;
10
+ background: #0b0b0b;
11
+ opacity: 0.8; }
12
+
13
+ .mfp-wrap {
14
+ top: 0;
15
+ left: 0;
16
+ width: 100%;
17
+ height: 100%;
18
+ z-index: 1043;
19
+ position: fixed;
20
+ outline: none !important;
21
+ -webkit-backface-visibility: hidden; }
22
+
23
+ .mfp-container {
24
+ text-align: center;
25
+ position: absolute;
26
+ width: 100%;
27
+ height: 100%;
28
+ left: 0;
29
+ top: 0;
30
+ padding: 0 8px;
31
+ box-sizing: border-box; }
32
+
33
+ .mfp-container:before {
34
+ content: '';
35
+ display: inline-block;
36
+ height: 100%;
37
+ vertical-align: middle; }
38
+
39
+ .mfp-align-top .mfp-container:before {
40
+ display: none; }
41
+
42
+ .mfp-content {
43
+ position: relative;
44
+ display: inline-block;
45
+ vertical-align: middle;
46
+ margin: 0 auto;
47
+ text-align: left;
48
+ z-index: 1045; }
49
+
50
+ .mfp-inline-holder .mfp-content,
51
+ .mfp-ajax-holder .mfp-content {
52
+ width: 100%;
53
+ cursor: auto; }
54
+
55
+ .mfp-ajax-cur {
56
+ cursor: progress; }
57
+
58
+ .mfp-zoom-out-cur, .mfp-zoom-out-cur .mfp-image-holder .mfp-close {
59
+ cursor: -moz-zoom-out;
60
+ cursor: -webkit-zoom-out;
61
+ cursor: zoom-out; }
62
+
63
+ .mfp-zoom {
64
+ cursor: pointer;
65
+ cursor: -webkit-zoom-in;
66
+ cursor: -moz-zoom-in;
67
+ cursor: zoom-in; }
68
+
69
+ .mfp-auto-cursor .mfp-content {
70
+ cursor: auto; }
71
+
72
+ .mfp-close,
73
+ .mfp-arrow,
74
+ .mfp-preloader,
75
+ .mfp-counter {
76
+ -webkit-user-select: none;
77
+ -moz-user-select: none;
78
+ user-select: none; }
79
+
80
+ .mfp-loading.mfp-figure {
81
+ display: none; }
82
+
83
+ .mfp-hide {
84
+ display: none !important; }
85
+
86
+ .mfp-preloader {
87
+ color: #CCC;
88
+ position: absolute;
89
+ top: 50%;
90
+ width: auto;
91
+ text-align: center;
92
+ margin-top: -0.8em;
93
+ left: 8px;
94
+ right: 8px;
95
+ z-index: 1044; }
96
+ .mfp-preloader a {
97
+ color: #CCC; }
98
+ .mfp-preloader a:hover {
99
+ color: #FFF; }
100
+
101
+ .mfp-s-ready .mfp-preloader {
102
+ display: none; }
103
+
104
+ .mfp-s-error .mfp-content {
105
+ display: none; }
106
+
107
+ button.mfp-close,
108
+ button.mfp-arrow {
109
+ overflow: visible;
110
+ cursor: pointer;
111
+ background: transparent;
112
+ border: 0;
113
+ -webkit-appearance: none;
114
+ display: block;
115
+ outline: none;
116
+ padding: 0;
117
+ z-index: 1046;
118
+ box-shadow: none;
119
+ touch-action: manipulation; }
120
+
121
+ button::-moz-focus-inner {
122
+ padding: 0;
123
+ border: 0; }
124
+
125
+ .mfp-close {
126
+ width: 44px;
127
+ height: 44px;
128
+ line-height: 44px;
129
+ position: absolute;
130
+ right: 0;
131
+ top: 0;
132
+ text-decoration: none;
133
+ text-align: center;
134
+ opacity: 0.65;
135
+ padding: 0 0 18px 10px;
136
+ color: #FFF;
137
+ font-style: normal;
138
+ font-size: 28px;
139
+ font-family: Arial, Baskerville, monospace; }
140
+ .mfp-close:hover,
141
+ .mfp-close:focus {
142
+ opacity: 1; }
143
+ .mfp-close:active {
144
+ top: 1px; }
145
+
146
+ .mfp-close-btn-in .mfp-close {
147
+ color: #333; }
148
+
149
+ .mfp-image-holder .mfp-close,
150
+ .mfp-iframe-holder .mfp-close {
151
+ color: #FFF;
152
+ right: -6px;
153
+ text-align: right;
154
+ padding-right: 6px;
155
+ width: 100%; }
156
+
157
+ .mfp-counter {
158
+ position: absolute;
159
+ top: 0;
160
+ right: 0;
161
+ color: #CCC;
162
+ font-size: 12px;
163
+ line-height: 18px;
164
+ white-space: nowrap; }
165
+
166
+ .mfp-arrow {
167
+ position: absolute;
168
+ opacity: 0.65;
169
+ margin: 0;
170
+ top: 50%;
171
+ margin-top: -55px;
172
+ padding: 0;
173
+ width: 90px;
174
+ height: 110px;
175
+ -webkit-tap-highlight-color: transparent; }
176
+ .mfp-arrow:active {
177
+ margin-top: -54px; }
178
+ .mfp-arrow:hover,
179
+ .mfp-arrow:focus {
180
+ opacity: 1; }
181
+ .mfp-arrow:before,
182
+ .mfp-arrow:after {
183
+ content: '';
184
+ display: block;
185
+ width: 0;
186
+ height: 0;
187
+ position: absolute;
188
+ left: 0;
189
+ top: 0;
190
+ margin-top: 35px;
191
+ margin-left: 35px;
192
+ border: medium inset transparent; }
193
+ .mfp-arrow:after {
194
+ border-top-width: 13px;
195
+ border-bottom-width: 13px;
196
+ top: 8px; }
197
+ .mfp-arrow:before {
198
+ border-top-width: 21px;
199
+ border-bottom-width: 21px;
200
+ opacity: 0.7; }
201
+
202
+ .mfp-arrow-left {
203
+ left: 0; }
204
+ .mfp-arrow-left:after {
205
+ border-right: 17px solid #FFF;
206
+ margin-left: 31px; }
207
+ .mfp-arrow-left:before {
208
+ margin-left: 25px;
209
+ border-right: 27px solid #3F3F3F; }
210
+
211
+ .mfp-arrow-right {
212
+ right: 0; }
213
+ .mfp-arrow-right:after {
214
+ border-left: 17px solid #FFF;
215
+ margin-left: 39px; }
216
+ .mfp-arrow-right:before {
217
+ border-left: 27px solid #3F3F3F; }
218
+
219
+ .mfp-iframe-holder {
220
+ padding-top: 40px;
221
+ padding-bottom: 40px; }
222
+ .mfp-iframe-holder .mfp-content {
223
+ line-height: 0;
224
+ width: 100%;
225
+ max-width: 900px; }
226
+ .mfp-iframe-holder .mfp-close {
227
+ top: -40px; }
228
+
229
+ .mfp-iframe-scaler {
230
+ width: 100%;
231
+ height: 0;
232
+ overflow: hidden;
233
+ padding-top: 56.25%; }
234
+ .mfp-iframe-scaler iframe {
235
+ position: absolute;
236
+ display: block;
237
+ top: 0;
238
+ left: 0;
239
+ width: 100%;
240
+ height: 100%;
241
+ box-shadow: 0 0 8px rgba(0, 0, 0, 0.6);
242
+ background: #000; }
243
+
244
+ /* Main image in popup */
245
+ img.mfp-img {
246
+ width: auto;
247
+ max-width: 100%;
248
+ height: auto;
249
+ display: block;
250
+ line-height: 0;
251
+ box-sizing: border-box;
252
+ padding: 40px 0 40px;
253
+ margin: 0 auto; }
254
+
255
+ /* The shadow behind the image */
256
+ .mfp-figure {
257
+ line-height: 0; }
258
+ .mfp-figure:after {
259
+ content: '';
260
+ position: absolute;
261
+ left: 0;
262
+ top: 40px;
263
+ bottom: 40px;
264
+ display: block;
265
+ right: 0;
266
+ width: auto;
267
+ height: auto;
268
+ z-index: -1;
269
+ box-shadow: 0 0 8px rgba(0, 0, 0, 0.6);
270
+ background: #444; }
271
+ .mfp-figure small {
272
+ color: #BDBDBD;
273
+ display: block;
274
+ font-size: 12px;
275
+ line-height: 14px; }
276
+ .mfp-figure figure {
277
+ margin: 0; }
278
+
279
+ .mfp-bottom-bar {
280
+ margin-top: -36px;
281
+ position: absolute;
282
+ top: 100%;
283
+ left: 0;
284
+ width: 100%;
285
+ cursor: auto; }
286
+
287
+ .mfp-title {
288
+ text-align: left;
289
+ line-height: 18px;
290
+ color: #F3F3F3;
291
+ word-wrap: break-word;
292
+ padding-right: 36px; }
293
+
294
+ .mfp-image-holder .mfp-content {
295
+ max-width: 100%; }
296
+
297
+ .mfp-gallery .mfp-image-holder .mfp-figure {
298
+ cursor: pointer; }
299
+
300
+ @media screen and (max-width: 800px) and (orientation: landscape), screen and (max-height: 300px) {
301
+ /**
302
+ * Remove all paddings around the image on small screen
303
+ */
304
+ .mfp-img-mobile .mfp-image-holder {
305
+ padding-left: 0;
306
+ padding-right: 0; }
307
+ .mfp-img-mobile img.mfp-img {
308
+ padding: 0; }
309
+ .mfp-img-mobile .mfp-figure:after {
310
+ top: 0;
311
+ bottom: 0; }
312
+ .mfp-img-mobile .mfp-figure small {
313
+ display: inline;
314
+ margin-left: 5px; }
315
+ .mfp-img-mobile .mfp-bottom-bar {
316
+ background: rgba(0, 0, 0, 0.6);
317
+ bottom: 0;
318
+ margin: 0;
319
+ top: auto;
320
+ padding: 3px 5px;
321
+ position: fixed;
322
+ box-sizing: border-box; }
323
+ .mfp-img-mobile .mfp-bottom-bar:empty {
324
+ padding: 0; }
325
+ .mfp-img-mobile .mfp-counter {
326
+ right: 5px;
327
+ top: 3px; }
328
+ .mfp-img-mobile .mfp-close {
329
+ top: 0;
330
+ right: 0;
331
+ width: 35px;
332
+ height: 35px;
333
+ line-height: 35px;
334
+ background: rgba(0, 0, 0, 0.6);
335
+ position: fixed;
336
+ text-align: center;
337
+ padding: 0; } }
338
+
339
+ @media all and (max-width: 900px) {
340
+ .mfp-arrow {
341
+ -webkit-transform: scale(0.75);
342
+ transform: scale(0.75); }
343
+ .mfp-arrow-left {
344
+ -webkit-transform-origin: 0;
345
+ transform-origin: 0; }
346
+ .mfp-arrow-right {
347
+ -webkit-transform-origin: 100%;
348
+ transform-origin: 100%; }
349
+ .mfp-container {
350
+ padding-left: 6px;
351
+ padding-right: 6px; } }
src/styles/library/swiper.css ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * Swiper 7.0.0-alpha.12
3
+ * Most modern mobile touch slider and framework with hardware accelerated transitions
4
+ * https://swiperjs.com
5
+ *
6
+ * Copyright 2014-2021 Vladimir Kharlampidi
7
+ *
8
+ * Released under the MIT License
9
+ *
10
+ * Released on: August 6, 2021
11
+ */
12
+
13
+ @font-face{font-family:swiper-icons;src:url('data:application/font-woff;charset=utf-8;base64, d09GRgABAAAAAAZgABAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAGRAAAABoAAAAci6qHkUdERUYAAAWgAAAAIwAAACQAYABXR1BPUwAABhQAAAAuAAAANuAY7+xHU1VCAAAFxAAAAFAAAABm2fPczU9TLzIAAAHcAAAASgAAAGBP9V5RY21hcAAAAkQAAACIAAABYt6F0cBjdnQgAAACzAAAAAQAAAAEABEBRGdhc3AAAAWYAAAACAAAAAj//wADZ2x5ZgAAAywAAADMAAAD2MHtryVoZWFkAAABbAAAADAAAAA2E2+eoWhoZWEAAAGcAAAAHwAAACQC9gDzaG10eAAAAigAAAAZAAAArgJkABFsb2NhAAAC0AAAAFoAAABaFQAUGG1heHAAAAG8AAAAHwAAACAAcABAbmFtZQAAA/gAAAE5AAACXvFdBwlwb3N0AAAFNAAAAGIAAACE5s74hXjaY2BkYGAAYpf5Hu/j+W2+MnAzMYDAzaX6QjD6/4//Bxj5GA8AuRwMYGkAPywL13jaY2BkYGA88P8Agx4j+/8fQDYfA1AEBWgDAIB2BOoAeNpjYGRgYNBh4GdgYgABEMnIABJzYNADCQAACWgAsQB42mNgYfzCOIGBlYGB0YcxjYGBwR1Kf2WQZGhhYGBiYGVmgAFGBiQQkOaawtDAoMBQxXjg/wEGPcYDDA4wNUA2CCgwsAAAO4EL6gAAeNpj2M0gyAACqxgGNWBkZ2D4/wMA+xkDdgAAAHjaY2BgYGaAYBkGRgYQiAHyGMF8FgYHIM3DwMHABGQrMOgyWDLEM1T9/w8UBfEMgLzE////P/5//f/V/xv+r4eaAAeMbAxwIUYmIMHEgKYAYjUcsDAwsLKxc3BycfPw8jEQA/gZBASFhEVExcQlJKWkZWTl5BUUlZRVVNXUNTQZBgMAAMR+E+gAEQFEAAAAKgAqACoANAA+AEgAUgBcAGYAcAB6AIQAjgCYAKIArAC2AMAAygDUAN4A6ADyAPwBBgEQARoBJAEuATgBQgFMAVYBYAFqAXQBfgGIAZIBnAGmAbIBzgHsAAB42u2NMQ6CUAyGW568x9AneYYgm4MJbhKFaExIOAVX8ApewSt4Bic4AfeAid3VOBixDxfPYEza5O+Xfi04YADggiUIULCuEJK8VhO4bSvpdnktHI5QCYtdi2sl8ZnXaHlqUrNKzdKcT8cjlq+rwZSvIVczNiezsfnP/uznmfPFBNODM2K7MTQ45YEAZqGP81AmGGcF3iPqOop0r1SPTaTbVkfUe4HXj97wYE+yNwWYxwWu4v1ugWHgo3S1XdZEVqWM7ET0cfnLGxWfkgR42o2PvWrDMBSFj/IHLaF0zKjRgdiVMwScNRAoWUoH78Y2icB/yIY09An6AH2Bdu/UB+yxopYshQiEvnvu0dURgDt8QeC8PDw7Fpji3fEA4z/PEJ6YOB5hKh4dj3EvXhxPqH/SKUY3rJ7srZ4FZnh1PMAtPhwP6fl2PMJMPDgeQ4rY8YT6Gzao0eAEA409DuggmTnFnOcSCiEiLMgxCiTI6Cq5DZUd3Qmp10vO0LaLTd2cjN4fOumlc7lUYbSQcZFkutRG7g6JKZKy0RmdLY680CDnEJ+UMkpFFe1RN7nxdVpXrC4aTtnaurOnYercZg2YVmLN/d/gczfEimrE/fs/bOuq29Zmn8tloORaXgZgGa78yO9/cnXm2BpaGvq25Dv9S4E9+5SIc9PqupJKhYFSSl47+Qcr1mYNAAAAeNptw0cKwkAAAMDZJA8Q7OUJvkLsPfZ6zFVERPy8qHh2YER+3i/BP83vIBLLySsoKimrqKqpa2hp6+jq6RsYGhmbmJqZSy0sraxtbO3sHRydnEMU4uR6yx7JJXveP7WrDycAAAAAAAH//wACeNpjYGRgYOABYhkgZgJCZgZNBkYGLQZtIJsFLMYAAAw3ALgAeNolizEKgDAQBCchRbC2sFER0YD6qVQiBCv/H9ezGI6Z5XBAw8CBK/m5iQQVauVbXLnOrMZv2oLdKFa8Pjuru2hJzGabmOSLzNMzvutpB3N42mNgZGBg4GKQYzBhYMxJLMlj4GBgAYow/P/PAJJhLM6sSoWKfWCAAwDAjgbRAAB42mNgYGBkAIIbCZo5IPrmUn0hGA0AO8EFTQAA');font-weight:400;font-style:normal}:root{--swiper-theme-color:#007aff}.swiper-container{margin-left:auto;margin-right:auto;position:relative;overflow:hidden;list-style:none;padding:0;z-index:1}.swiper-container-vertical>.swiper-wrapper{flex-direction:column}.swiper-wrapper{position:relative;width:100%;height:100%;z-index:1;display:flex;transition-property:transform;box-sizing:content-box}.swiper-container-android .swiper-slide,.swiper-wrapper{transform:translate3d(0px,0,0)}.swiper-container-pointer-events{touch-action:pan-y}.swiper-container-pointer-events.swiper-container-vertical{touch-action:pan-x}.swiper-slide{flex-shrink:0;width:100%;height:100%;position:relative;transition-property:transform}.swiper-slide-invisible-blank{visibility:hidden}.swiper-container-autoheight,.swiper-container-autoheight .swiper-slide{height:auto}.swiper-container-autoheight .swiper-wrapper{align-items:flex-start;transition-property:transform,height}.swiper-container-3d,.swiper-container-3d.swiper-container-css-mode .swiper-wrapper{perspective:1200px}.swiper-container-3d .swiper-cube-shadow,.swiper-container-3d .swiper-slide,.swiper-container-3d .swiper-slide-shadow-bottom,.swiper-container-3d .swiper-slide-shadow-left,.swiper-container-3d .swiper-slide-shadow-right,.swiper-container-3d .swiper-slide-shadow-top,.swiper-container-3d .swiper-wrapper{transform-style:preserve-3d}.swiper-container-3d .swiper-slide-shadow-bottom,.swiper-container-3d .swiper-slide-shadow-left,.swiper-container-3d .swiper-slide-shadow-right,.swiper-container-3d .swiper-slide-shadow-top{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;z-index:10}.swiper-container-3d .swiper-slide-shadow-left{background-image:linear-gradient(to left,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-container-3d .swiper-slide-shadow-right{background-image:linear-gradient(to right,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-container-3d .swiper-slide-shadow-top{background-image:linear-gradient(to top,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-container-3d .swiper-slide-shadow-bottom{background-image:linear-gradient(to bottom,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-container-css-mode>.swiper-wrapper{overflow:auto;scrollbar-width:none;-ms-overflow-style:none}.swiper-container-css-mode>.swiper-wrapper::-webkit-scrollbar{display:none}.swiper-container-css-mode>.swiper-wrapper>.swiper-slide{scroll-snap-align:start start}.swiper-container-horizontal.swiper-container-css-mode>.swiper-wrapper{scroll-snap-type:x mandatory}.swiper-container-vertical.swiper-container-css-mode>.swiper-wrapper{scroll-snap-type:y mandatory}.swiper-container-centered>.swiper-wrapper::before{content:'';flex-shrink:0;order:9999}.swiper-container-centered.swiper-container-horizontal>.swiper-wrapper>.swiper-slide:first-child{margin-inline-start:var(--swiper-centered-offset-before)}.swiper-container-centered.swiper-container-horizontal>.swiper-wrapper::before{height:100%;width:var(--swiper-centered-offset-after)}.swiper-container-centered.swiper-container-vertical>.swiper-wrapper>.swiper-slide:first-child{margin-block-start:var(--swiper-centered-offset-before)}.swiper-container-centered.swiper-container-vertical>.swiper-wrapper::before{width:100%;height:var(--swiper-centered-offset-after)}.swiper-container-centered>.swiper-wrapper>.swiper-slide{scroll-snap-align:center center}.swiper-container-virtual.swiper-container-css-mode .swiper-wrapper::after{content:'';position:absolute;left:0;top:0;pointer-events:none}.swiper-container-virtual.swiper-container-css-mode.swiper-container-horizontal .swiper-wrapper::after{height:1px;width:var(--swiper-virtual-size)}.swiper-container-virtual.swiper-container-css-mode.swiper-container-vertical .swiper-wrapper::after{width:1px;height:var(--swiper-virtual-size)}:root{--swiper-navigation-size:44px}.swiper-button-next,.swiper-button-prev{position:absolute;top:50%;width:calc(var(--swiper-navigation-size)/ 44 * 27);height:var(--swiper-navigation-size);margin-top:calc(0px - (var(--swiper-navigation-size)/ 2));z-index:10;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--swiper-navigation-color,var(--swiper-theme-color))}.swiper-button-next.swiper-button-disabled,.swiper-button-prev.swiper-button-disabled{opacity:.35;cursor:auto;pointer-events:none}.swiper-button-next:after,.swiper-button-prev:after{font-family:swiper-icons;font-size:var(--swiper-navigation-size);text-transform:none!important;letter-spacing:0;text-transform:none;font-variant:initial;line-height:1}.swiper-button-prev,.swiper-container-rtl .swiper-button-next{left:10px;right:auto}.swiper-button-prev:after,.swiper-container-rtl .swiper-button-next:after{content:'prev'}.swiper-button-next,.swiper-container-rtl .swiper-button-prev{right:10px;left:auto}.swiper-button-next:after,.swiper-container-rtl .swiper-button-prev:after{content:'next'}.swiper-button-lock{display:none}.swiper-pagination{position:absolute;text-align:center;transition:.3s opacity;transform:translate3d(0,0,0);z-index:10}.swiper-pagination.swiper-pagination-hidden{opacity:0}.swiper-container-horizontal>.swiper-pagination-bullets,.swiper-pagination-custom,.swiper-pagination-fraction{bottom:10px;left:0;width:100%}.swiper-pagination-bullets-dynamic{overflow:hidden;font-size:0}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transform:scale(.33);position:relative}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active{transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-main{transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev-prev{transform:scale(.33)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next-next{transform:scale(.33)}.swiper-pagination-bullet{width:8px;height:8px;display:inline-block;border-radius:50%;background:#fff;opacity:.7}button.swiper-pagination-bullet{border:none;margin:0;padding:0;box-shadow:none;-webkit-appearance:none;appearance:none}.swiper-pagination-clickable .swiper-pagination-bullet{cursor:pointer}.swiper-pagination-bullet:only-child{display:none!important}.swiper-pagination-bullet-active{opacity:1;background:var(--swiper-pagination-color,var(--swiper-theme-color))}.swiper-container-vertical>.swiper-pagination-bullets{right:10px;top:50%;transform:translate3d(0px,-50%,0)}.swiper-container-vertical>.swiper-pagination-bullets .swiper-pagination-bullet{margin:6px 0;display:block}.swiper-container-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{top:50%;transform:translateY(-50%);width:8px}.swiper-container-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{display:inline-block;transition:.2s transform,.2s top}.swiper-container-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet{margin:0 4px}.swiper-container-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{left:50%;transform:translateX(-50%);white-space:nowrap}.swiper-container-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s left}.swiper-container-horizontal.swiper-container-rtl>.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s right}.swiper-pagination-progressbar{background:rgba(0,0,0,.25);position:absolute}.swiper-pagination-progressbar .swiper-pagination-progressbar-fill{background:var(--swiper-pagination-color,var(--swiper-theme-color));position:absolute;left:0;top:0;width:100%;height:100%;transform:scale(0);transform-origin:left top}.swiper-container-rtl .swiper-pagination-progressbar .swiper-pagination-progressbar-fill{transform-origin:right top}.swiper-container-horizontal>.swiper-pagination-progressbar,.swiper-container-vertical>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite{width:100%;height:4px;left:0;top:0}.swiper-container-horizontal>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite,.swiper-container-vertical>.swiper-pagination-progressbar{width:4px;height:100%;left:0;top:0}.swiper-pagination-lock{display:none}.swiper-scrollbar{border-radius:10px;position:relative;-ms-touch-action:none;background:rgba(0,0,0,.1)}.swiper-container-horizontal>.swiper-scrollbar{position:absolute;left:1%;bottom:3px;z-index:50;height:5px;width:98%}.swiper-container-vertical>.swiper-scrollbar{position:absolute;right:3px;top:1%;z-index:50;width:5px;height:98%}.swiper-scrollbar-drag{height:100%;width:100%;position:relative;background:rgba(0,0,0,.5);border-radius:10px;left:0;top:0}.swiper-scrollbar-cursor-drag{cursor:move}.swiper-scrollbar-lock{display:none}.swiper-zoom-container{width:100%;height:100%;display:flex;justify-content:center;align-items:center;text-align:center}.swiper-zoom-container>canvas,.swiper-zoom-container>img,.swiper-zoom-container>svg{max-width:100%;max-height:100%;object-fit:contain}.swiper-slide-zoomed{cursor:move}.swiper-lazy-preloader{width:42px;height:42px;position:absolute;left:50%;top:50%;margin-left:-21px;margin-top:-21px;z-index:10;transform-origin:50%;animation:swiper-preloader-spin 1s infinite linear;box-sizing:border-box;border:4px solid var(--swiper-preloader-color,var(--swiper-theme-color));border-radius:50%;border-top-color:transparent}.swiper-lazy-preloader-white{--swiper-preloader-color:#fff}.swiper-lazy-preloader-black{--swiper-preloader-color:#000}@keyframes swiper-preloader-spin{100%{transform:rotate(360deg)}}.swiper-container .swiper-notification{position:absolute;left:0;top:0;pointer-events:none;opacity:0;z-index:-1000}.swiper-container-fade.swiper-container-free-mode .swiper-slide{transition-timing-function:ease-out}.swiper-container-fade .swiper-slide{pointer-events:none;transition-property:opacity}.swiper-container-fade .swiper-slide .swiper-slide{pointer-events:none}.swiper-container-fade .swiper-slide-active,.swiper-container-fade .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-container-cube{overflow:visible}.swiper-container-cube .swiper-slide{pointer-events:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:1;visibility:hidden;transform-origin:0 0;width:100%;height:100%}.swiper-container-cube .swiper-slide .swiper-slide{pointer-events:none}.swiper-container-cube.swiper-container-rtl .swiper-slide{transform-origin:100% 0}.swiper-container-cube .swiper-slide-active,.swiper-container-cube .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-container-cube .swiper-slide-active,.swiper-container-cube .swiper-slide-next,.swiper-container-cube .swiper-slide-next+.swiper-slide,.swiper-container-cube .swiper-slide-prev{pointer-events:auto;visibility:visible}.swiper-container-cube .swiper-slide-shadow-bottom,.swiper-container-cube .swiper-slide-shadow-left,.swiper-container-cube .swiper-slide-shadow-right,.swiper-container-cube .swiper-slide-shadow-top{z-index:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-container-cube .swiper-cube-shadow{position:absolute;left:0;bottom:0px;width:100%;height:100%;opacity:.6;z-index:0}.swiper-container-cube .swiper-cube-shadow:before{content:'';background:#000;position:absolute;left:0;top:0;bottom:0;right:0;filter:blur(50px)}.swiper-container-flip{overflow:visible}.swiper-container-flip .swiper-slide{pointer-events:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:1}.swiper-container-flip .swiper-slide .swiper-slide{pointer-events:none}.swiper-container-flip .swiper-slide-active,.swiper-container-flip .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-container-flip .swiper-slide-shadow-bottom,.swiper-container-flip .swiper-slide-shadow-left,.swiper-container-flip .swiper-slide-shadow-right,.swiper-container-flip .swiper-slide-shadow-top{z-index:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-container-free-mode>.swiper-wrapper{transition-timing-function:ease-out;margin:0 auto}.swiper-container-grid>.swiper-wrapper{flex-wrap:wrap}.swiper-container-grid-column>.swiper-wrapper{flex-wrap:wrap;flex-direction:column}