WP Security Audit Log - Version 4.1.5.2

Version Description

(2021-01-21) =

  • Improvement
    • Replaced Swipebox with Simple Lightbox (compatible with WordPress 5.6)

Refer to the complete plugin changelog for more detailed information about what was new, improved and fixed in previous versions of the WP Activity Log plugin.

Download this release

Release Info

Developer WPWhiteSecurity
Plugin Icon 128x128 WP Security Audit Log
Version 4.1.5.2
Comparing to
See all releases

Code changes from version 4.1.5.1 to 4.1.5.2

classes/AbstractView.php CHANGED
@@ -251,4 +251,5 @@ abstract class WSAL_AbstractView {
251
  public function GetViewName() {
252
  return strtolower( str_replace( array( 'WSAL_Views_', 'WSAL_' ), '', get_class( $this ) ) );
253
  }
 
254
  }
251
  public function GetViewName() {
252
  return strtolower( str_replace( array( 'WSAL_Views_', 'WSAL_' ), '', get_class( $this ) ) );
253
  }
254
+
255
  }
classes/ExtensionPlaceholderView.php ADDED
@@ -0,0 +1,66 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Abstract class used for the plugin extension placeholder views/admin pages.
5
+ *
6
+ * @see Views/*.php
7
+ * @package Wsal
8
+ * @since 4.1.5.2
9
+ */
10
+ abstract class WSAL_ExtensionPlaceholderView extends WSAL_AbstractView {
11
+
12
+ public function is_title_visible() {
13
+ return false;
14
+ }
15
+
16
+ public function GetIcon() {
17
+ return 'dashicons-external';
18
+ }
19
+
20
+ public function Header() {
21
+ // Extension Page CSS.
22
+ $extensionsFile = '/css/extensions.css';
23
+ wp_enqueue_style(
24
+ 'extensions',
25
+ $this->_plugin->GetBaseUrl() . $extensionsFile,
26
+ array(),
27
+ filemtime( $this->_plugin->GetBaseDir() . $extensionsFile )
28
+ );
29
+
30
+ // Simple lightbox CSS.
31
+ $simpleLightboxFile = '/css/dist/simple-lightbox.min.css';
32
+ wp_enqueue_style(
33
+ 'wsal-simple-lightbox-css',
34
+ $this->_plugin->GetBaseUrl() . $simpleLightboxFile,
35
+ array(),
36
+ filemtime( $this->_plugin->GetBaseDir() . $simpleLightboxFile )
37
+ );
38
+ }
39
+
40
+ public function Footer() {
41
+ // jQuery.
42
+ wp_enqueue_script( 'jquery' );
43
+
44
+ // Simple lightbox JS.
45
+ $simpleLightboxFile = '/js/dist/simple-lightbox.jquery.min.js';
46
+ wp_register_script(
47
+ 'wsal-simple-lightbox-js',
48
+ $this->_plugin->GetBaseUrl() . $simpleLightboxFile,
49
+ array( 'jquery' ),
50
+ filemtime( $this->_plugin->GetBaseDir() . $simpleLightboxFile ),
51
+ false
52
+ );
53
+ wp_enqueue_script( 'wsal-simple-lightbox-js' );
54
+
55
+ // Extensions JS.
56
+ $extensionsFile = '/js/extensions.js';
57
+ wp_register_script(
58
+ 'wsal-extensions-js',
59
+ $this->_plugin->GetBaseUrl() . $extensionsFile,
60
+ array( 'wsal-simple-lightbox-js' ),
61
+ filemtime( $this->_plugin->GetBaseDir() . $extensionsFile ),
62
+ false
63
+ );
64
+ wp_enqueue_script( 'wsal-extensions-js' );
65
+ }
66
+ }
classes/Views/EmailNotifications.php CHANGED
@@ -19,7 +19,7 @@ if ( ! defined( 'ABSPATH' ) ) {
19
  *
20
  * @package Wsal
21
  */
22
- class WSAL_Views_EmailNotifications extends WSAL_AbstractView {
23
 
24
  /**
25
  * Get View Title.
@@ -28,13 +28,6 @@ class WSAL_Views_EmailNotifications extends WSAL_AbstractView {
28
  return __( 'Notifications Extension', 'wp-security-audit-log' );
29
  }
30
 
31
- /**
32
- * Get View Icon.
33
- */
34
- public function GetIcon() {
35
- return 'dashicons-external';
36
- }
37
-
38
  /**
39
  * Get View Name.
40
  */
@@ -49,64 +42,6 @@ class WSAL_Views_EmailNotifications extends WSAL_AbstractView {
49
  return 8;
50
  }
51
 
52
- /**
53
- * Check if the page title is visible.
54
- *
55
- * @return boolean
56
- */
57
- public function is_title_visible() {
58
- return false;
59
- }
60
-
61
- /**
62
- * Get View Header.
63
- */
64
- public function Header() {
65
- // Extension Page CSS.
66
- wp_enqueue_style(
67
- 'extensions',
68
- $this->_plugin->GetBaseUrl() . '/css/extensions.css',
69
- array(),
70
- filemtime( $this->_plugin->GetBaseDir() . '/css/extensions.css' )
71
- );
72
-
73
- // Swipebox CSS.
74
- wp_enqueue_style(
75
- 'wsal-swipebox-css',
76
- $this->_plugin->GetBaseUrl() . '/css/swipebox.min.css',
77
- array(),
78
- filemtime( $this->_plugin->GetBaseDir() . '/css/swipebox.min.css' )
79
- );
80
- }
81
-
82
- /**
83
- * Get View Footer.
84
- */
85
- public function Footer() {
86
- // jQuery.
87
- wp_enqueue_script( 'jquery' );
88
-
89
- // Swipebox JS.
90
- wp_register_script(
91
- 'wsal-swipebox-js',
92
- $this->_plugin->GetBaseUrl() . '/js/jquery.swipebox.min.js',
93
- array( 'jquery' ),
94
- filemtime( $this->_plugin->GetBaseDir() . '/js/jquery.swipebox.min.js' ),
95
- false
96
- );
97
- wp_enqueue_script( 'wsal-swipebox-js' );
98
-
99
- // Extensions JS.
100
- wp_register_script(
101
- 'wsal-extensions-js',
102
- $this->_plugin->GetBaseUrl() . '/js/extensions.js',
103
- array( 'wsal-swipebox-js' ),
104
- filemtime( $this->_plugin->GetBaseDir() . '/js/extensions.js' ),
105
- false
106
- );
107
- wp_enqueue_script( 'wsal-extensions-js' );
108
- }
109
-
110
  /**
111
  * Page View.
112
  */
19
  *
20
  * @package Wsal
21
  */
22
+ class WSAL_Views_EmailNotifications extends WSAL_ExtensionPlaceholderView {
23
 
24
  /**
25
  * Get View Title.
28
  return __( 'Notifications Extension', 'wp-security-audit-log' );
29
  }
30
 
 
 
 
 
 
 
 
31
  /**
32
  * Get View Name.
33
  */
42
  return 8;
43
  }
44
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
45
  /**
46
  * Page View.
47
  */
classes/Views/ExternalDB.php CHANGED
@@ -19,7 +19,7 @@ if ( ! defined( 'ABSPATH' ) ) {
19
  *
20
  * @package Wsal
21
  */
22
- class WSAL_Views_ExternalDB extends WSAL_AbstractView {
23
 
24
  /**
25
  * Method: Get View Title.
@@ -28,13 +28,6 @@ class WSAL_Views_ExternalDB extends WSAL_AbstractView {
28
  return __( 'External DB Extension', 'wp-security-audit-log' );
29
  }
30
 
31
- /**
32
- * Method: Get View Icon.
33
- */
34
- public function GetIcon() {
35
- return 'dashicons-external';
36
- }
37
-
38
  /**
39
  * Method: Get View Name.
40
  */
@@ -49,64 +42,6 @@ class WSAL_Views_ExternalDB extends WSAL_AbstractView {
49
  return 10;
50
  }
51
 
52
- /**
53
- * Check if the page title is visible.
54
- *
55
- * @return boolean
56
- */
57
- public function is_title_visible() {
58
- return false;
59
- }
60
-
61
- /**
62
- * Method: Get View Header.
63
- */
64
- public function Header() {
65
- // Extension Page CSS.
66
- wp_enqueue_style(
67
- 'extensions',
68
- $this->_plugin->GetBaseUrl() . '/css/extensions.css',
69
- array(),
70
- filemtime( $this->_plugin->GetBaseDir() . '/css/extensions.css' )
71
- );
72
-
73
- // Swipebox CSS.
74
- wp_enqueue_style(
75
- 'wsal-swipebox-css',
76
- $this->_plugin->GetBaseUrl() . '/css/swipebox.min.css',
77
- array(),
78
- filemtime( $this->_plugin->GetBaseDir() . '/css/swipebox.min.css' )
79
- );
80
- }
81
-
82
- /**
83
- * Method: Get View Footer.
84
- */
85
- public function Footer() {
86
- // jQuery.
87
- wp_enqueue_script( 'jquery' );
88
-
89
- // Swipebox JS.
90
- wp_register_script(
91
- 'wsal-swipebox-js',
92
- $this->_plugin->GetBaseUrl() . '/js/jquery.swipebox.min.js',
93
- array( 'jquery' ),
94
- filemtime( $this->_plugin->GetBaseDir() . '/js/jquery.swipebox.min.js' ),
95
- false
96
- );
97
- wp_enqueue_script( 'wsal-swipebox-js' );
98
-
99
- // Extensions JS.
100
- wp_register_script(
101
- 'wsal-extensions-js',
102
- $this->_plugin->GetBaseUrl() . '/js/extensions.js',
103
- array( 'wsal-swipebox-js' ),
104
- filemtime( $this->_plugin->GetBaseDir() . '/js/extensions.js' ),
105
- false
106
- );
107
- wp_enqueue_script( 'wsal-extensions-js' );
108
- }
109
-
110
  /**
111
  * Page View.
112
  */
19
  *
20
  * @package Wsal
21
  */
22
+ class WSAL_Views_ExternalDB extends WSAL_ExtensionPlaceholderView {
23
 
24
  /**
25
  * Method: Get View Title.
28
  return __( 'External DB Extension', 'wp-security-audit-log' );
29
  }
30
 
 
 
 
 
 
 
 
31
  /**
32
  * Method: Get View Name.
33
  */
42
  return 10;
43
  }
44
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
45
  /**
46
  * Page View.
47
  */
classes/Views/Help.php CHANGED
@@ -296,6 +296,7 @@ class WSAL_Views_Help extends WSAL_AbstractView {
296
  * Method: Get system information.
297
  *
298
  * @return string - System information.
 
299
  */
300
  public function get_sysinfo() {
301
  // System info.
296
  * Method: Get system information.
297
  *
298
  * @return string - System information.
299
+ * @throws Freemius_Exception
300
  */
301
  public function get_sysinfo() {
302
  // System info.
classes/Views/LogInUsers.php CHANGED
@@ -19,7 +19,7 @@ if ( ! defined( 'ABSPATH' ) ) {
19
  *
20
  * @package Wsal
21
  */
22
- class WSAL_Views_LogInUsers extends WSAL_AbstractView {
23
 
24
  /**
25
  * Method: Get View Title.
@@ -28,13 +28,6 @@ class WSAL_Views_LogInUsers extends WSAL_AbstractView {
28
  return __( 'User Sessions Management Extension', 'wp-security-audit-log' );
29
  }
30
 
31
- /**
32
- * Method: Get View Icon.
33
- */
34
- public function GetIcon() {
35
- return 'dashicons-external';
36
- }
37
-
38
  /**
39
  * Method: Get View Name.
40
  */
@@ -49,64 +42,6 @@ class WSAL_Views_LogInUsers extends WSAL_AbstractView {
49
  return 7;
50
  }
51
 
52
- /**
53
- * Check if the page title is visible.
54
- *
55
- * @return boolean
56
- */
57
- public function is_title_visible() {
58
- return false;
59
- }
60
-
61
- /**
62
- * Method: Get View Header.
63
- */
64
- public function Header() {
65
- // Extension Page CSS.
66
- wp_enqueue_style(
67
- 'extensions',
68
- $this->_plugin->GetBaseUrl() . '/css/extensions.css',
69
- array(),
70
- filemtime( $this->_plugin->GetBaseDir() . '/css/extensions.css' )
71
- );
72
-
73
- // Swipebox CSS.
74
- wp_enqueue_style(
75
- 'wsal-swipebox-css',
76
- $this->_plugin->GetBaseUrl() . '/css/swipebox.min.css',
77
- array(),
78
- filemtime( $this->_plugin->GetBaseDir() . '/css/swipebox.min.css' )
79
- );
80
- }
81
-
82
- /**
83
- * Method: Get View Footer.
84
- */
85
- public function Footer() {
86
- // jQuery.
87
- wp_enqueue_script( 'jquery' );
88
-
89
- // Swipebox JS.
90
- wp_register_script(
91
- 'wsal-swipebox-js',
92
- $this->_plugin->GetBaseUrl() . '/js/jquery.swipebox.min.js',
93
- array( 'jquery' ),
94
- filemtime( $this->_plugin->GetBaseDir() . '/js/jquery.swipebox.min.js' ),
95
- false
96
- );
97
- wp_enqueue_script( 'wsal-swipebox-js' );
98
-
99
- // Extensions JS.
100
- wp_register_script(
101
- 'wsal-extensions-js',
102
- $this->_plugin->GetBaseUrl() . '/js/extensions.js',
103
- array( 'wsal-swipebox-js' ),
104
- filemtime( $this->_plugin->GetBaseDir() . '/js/extensions.js' ),
105
- false
106
- );
107
- wp_enqueue_script( 'wsal-extensions-js' );
108
- }
109
-
110
  /**
111
  * Page View.
112
  */
19
  *
20
  * @package Wsal
21
  */
22
+ class WSAL_Views_LogInUsers extends WSAL_ExtensionPlaceholderView {
23
 
24
  /**
25
  * Method: Get View Title.
28
  return __( 'User Sessions Management Extension', 'wp-security-audit-log' );
29
  }
30
 
 
 
 
 
 
 
 
31
  /**
32
  * Method: Get View Name.
33
  */
42
  return 7;
43
  }
44
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
45
  /**
46
  * Page View.
47
  */
classes/Views/Reports.php CHANGED
@@ -19,7 +19,7 @@ if ( ! defined( 'ABSPATH' ) ) {
19
  *
20
  * @package Wsal
21
  */
22
- class WSAL_Views_Reports extends WSAL_AbstractView {
23
 
24
  /**
25
  * Method: Get View Title.
@@ -28,13 +28,6 @@ class WSAL_Views_Reports extends WSAL_AbstractView {
28
  return __( 'Reports Extension', 'wp-security-audit-log' );
29
  }
30
 
31
- /**
32
- * Method: Get View Icon.
33
- */
34
- public function GetIcon() {
35
- return 'dashicons-external';
36
- }
37
-
38
  /**
39
  * Method: Get View Name.
40
  */
@@ -49,64 +42,6 @@ class WSAL_Views_Reports extends WSAL_AbstractView {
49
  return 9;
50
  }
51
 
52
- /**
53
- * Check if the page title is visible.
54
- *
55
- * @return boolean
56
- */
57
- public function is_title_visible() {
58
- return false;
59
- }
60
-
61
- /**
62
- * Method: Get View Header.
63
- */
64
- public function Header() {
65
- // Extension Page CSS.
66
- wp_enqueue_style(
67
- 'extensions',
68
- $this->_plugin->GetBaseUrl() . '/css/extensions.css',
69
- array(),
70
- filemtime( $this->_plugin->GetBaseDir() . '/css/extensions.css' )
71
- );
72
-
73
- // Swipebox CSS.
74
- wp_enqueue_style(
75
- 'wsal-swipebox-css',
76
- $this->_plugin->GetBaseUrl() . '/css/swipebox.min.css',
77
- array(),
78
- filemtime( $this->_plugin->GetBaseDir() . '/css/swipebox.min.css' )
79
- );
80
- }
81
-
82
- /**
83
- * Method: Get View Footer.
84
- */
85
- public function Footer() {
86
- // jQuery.
87
- wp_enqueue_script( 'jquery' );
88
-
89
- // Swipebox JS.
90
- wp_register_script(
91
- 'wsal-swipebox-js',
92
- $this->_plugin->GetBaseUrl() . '/js/jquery.swipebox.min.js',
93
- array( 'jquery' ),
94
- filemtime( $this->_plugin->GetBaseDir() . '/js/jquery.swipebox.min.js' ),
95
- false
96
- );
97
- wp_enqueue_script( 'wsal-swipebox-js' );
98
-
99
- // Extensions JS.
100
- wp_register_script(
101
- 'wsal-extensions-js',
102
- $this->_plugin->GetBaseUrl() . '/js/extensions.js',
103
- array( 'wsal-swipebox-js' ),
104
- filemtime( $this->_plugin->GetBaseDir() . '/js/extensions.js' ),
105
- false
106
- );
107
- wp_enqueue_script( 'wsal-extensions-js' );
108
- }
109
-
110
  /**
111
  * Page View.
112
  */
19
  *
20
  * @package Wsal
21
  */
22
+ class WSAL_Views_Reports extends WSAL_ExtensionPlaceholderView {
23
 
24
  /**
25
  * Method: Get View Title.
28
  return __( 'Reports Extension', 'wp-security-audit-log' );
29
  }
30
 
 
 
 
 
 
 
 
31
  /**
32
  * Method: Get View Name.
33
  */
42
  return 9;
43
  }
44
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
45
  /**
46
  * Page View.
47
  */
classes/Views/Search.php CHANGED
@@ -19,7 +19,7 @@ if ( ! defined( 'ABSPATH' ) ) {
19
  *
20
  * @package Wsal
21
  */
22
- class WSAL_Views_Search extends WSAL_AbstractView {
23
 
24
  /**
25
  * Method: Get View Title.
@@ -28,13 +28,6 @@ class WSAL_Views_Search extends WSAL_AbstractView {
28
  return __( 'Search Extension', 'wp-security-audit-log' );
29
  }
30
 
31
- /**
32
- * Method: Get View Icon.
33
- */
34
- public function GetIcon() {
35
- return 'dashicons-external';
36
- }
37
-
38
  /**
39
  * Method: Get View Name.
40
  */
@@ -49,64 +42,6 @@ class WSAL_Views_Search extends WSAL_AbstractView {
49
  return 11;
50
  }
51
 
52
- /**
53
- * Check if the page title is visible.
54
- *
55
- * @return boolean
56
- */
57
- public function is_title_visible() {
58
- return false;
59
- }
60
-
61
- /**
62
- * Method: Get View Header.
63
- */
64
- public function Header() {
65
- // Extension Page CSS.
66
- wp_enqueue_style(
67
- 'extensions',
68
- $this->_plugin->GetBaseUrl() . '/css/extensions.css',
69
- array(),
70
- filemtime( $this->_plugin->GetBaseDir() . '/css/extensions.css' )
71
- );
72
-
73
- // Swipebox CSS.
74
- wp_enqueue_style(
75
- 'wsal-swipebox-css',
76
- $this->_plugin->GetBaseUrl() . '/css/swipebox.min.css',
77
- array(),
78
- filemtime( $this->_plugin->GetBaseDir() . '/css/swipebox.min.css' )
79
- );
80
- }
81
-
82
- /**
83
- * Method: Get View Footer.
84
- */
85
- public function Footer() {
86
- // jQuery.
87
- wp_enqueue_script( 'jquery' );
88
-
89
- // Swipebox JS.
90
- wp_register_script(
91
- 'wsal-swipebox-js',
92
- $this->_plugin->GetBaseUrl() . '/js/jquery.swipebox.min.js',
93
- array( 'jquery' ),
94
- filemtime( $this->_plugin->GetBaseDir() . '/js/jquery.swipebox.min.js' ),
95
- false
96
- );
97
- wp_enqueue_script( 'wsal-swipebox-js' );
98
-
99
- // Extensions JS.
100
- wp_register_script(
101
- 'wsal-extensions-js',
102
- $this->_plugin->GetBaseUrl() . '/js/extensions.js',
103
- array( 'wsal-swipebox-js' ),
104
- filemtime( $this->_plugin->GetBaseDir() . '/js/extensions.js' ),
105
- false
106
- );
107
- wp_enqueue_script( 'wsal-extensions-js' );
108
- }
109
-
110
  /**
111
  * Page View.
112
  */
19
  *
20
  * @package Wsal
21
  */
22
+ class WSAL_Views_Search extends WSAL_ExtensionPlaceholderView {
23
 
24
  /**
25
  * Method: Get View Title.
28
  return __( 'Search Extension', 'wp-security-audit-log' );
29
  }
30
 
 
 
 
 
 
 
 
31
  /**
32
  * Method: Get View Name.
33
  */
42
  return 11;
43
  }
44
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
45
  /**
46
  * Page View.
47
  */
classes/Views/addons/html-view.php CHANGED
@@ -107,7 +107,7 @@ if ( $this->_plugin->IsMultisite() && ! is_super_admin() ) {
107
  <?php foreach ( $screenshots as $screenshot ) : ?>
108
  <div class="user-login-content user-screenshots">
109
  <div class="user-content-right">
110
- <a class="swipebox img-wrap" href="<?php echo esc_url( $screenshot['img'] ); ?>" title="<?php echo esc_attr( $screenshot['desc'] ); ?>">
111
  <img src="<?php echo esc_url( $screenshot['img'] ); ?>" alt="">
112
  </a>
113
  </div>
107
  <?php foreach ( $screenshots as $screenshot ) : ?>
108
  <div class="user-login-content user-screenshots">
109
  <div class="user-content-right">
110
+ <a class="lightbox img-wrap" href="<?php echo esc_url( $screenshot['img'] ); ?>" title="<?php echo esc_attr( $screenshot['desc'] ); ?>">
111
  <img src="<?php echo esc_url( $screenshot['img'] ); ?>" alt="">
112
  </a>
113
  </div>
css/dist/simple-lightbox.css ADDED
@@ -0,0 +1,231 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*!
2
+ By André Rinas, www.andrerinas.de
3
+ Documentation, www.simplelightbox.de
4
+ Available for use under the MIT License
5
+ Version 2.7.0
6
+ */
7
+ body.hidden-scroll {
8
+ overflow: hidden; }
9
+
10
+ .sl-overlay {
11
+ position: fixed;
12
+ left: 0;
13
+ right: 0;
14
+ top: 0;
15
+ bottom: 0;
16
+ background: #fff;
17
+ opacity: 0.7;
18
+ display: none;
19
+ z-index: 1035; }
20
+
21
+ .sl-wrapper {
22
+ z-index: 1040;
23
+ width: 100%;
24
+ height: 100%;
25
+ left: 0;
26
+ top: 0;
27
+ position: fixed; }
28
+ .sl-wrapper * {
29
+ box-sizing: border-box; }
30
+ .sl-wrapper button {
31
+ border: 0 none;
32
+ background: transparent;
33
+ font-size: 28px;
34
+ padding: 0;
35
+ cursor: pointer; }
36
+ .sl-wrapper button:hover {
37
+ opacity: 0.7; }
38
+ .sl-wrapper .sl-close {
39
+ display: none;
40
+ position: fixed;
41
+ right: 30px;
42
+ top: 30px;
43
+ z-index: 10060;
44
+ margin-top: -14px;
45
+ margin-right: -14px;
46
+ height: 44px;
47
+ width: 44px;
48
+ line-height: 44px;
49
+ font-family: Arial, Baskerville, monospace;
50
+ color: #000;
51
+ font-size: 3rem; }
52
+ .sl-wrapper .sl-counter {
53
+ display: none;
54
+ position: fixed;
55
+ top: 30px;
56
+ left: 30px;
57
+ z-index: 1060;
58
+ color: #000;
59
+ font-size: 1rem; }
60
+ .sl-wrapper .sl-navigation {
61
+ width: 100%;
62
+ display: none; }
63
+ .sl-wrapper .sl-navigation button {
64
+ position: fixed;
65
+ top: 50%;
66
+ margin-top: -22px;
67
+ height: 44px;
68
+ width: 22px;
69
+ line-height: 44px;
70
+ text-align: center;
71
+ display: block;
72
+ z-index: 10060;
73
+ font-family: Arial, Baskerville, monospace;
74
+ color: #000; }
75
+ .sl-wrapper .sl-navigation button.sl-next {
76
+ right: 5px;
77
+ font-size: 2rem; }
78
+ .sl-wrapper .sl-navigation button.sl-prev {
79
+ left: 5px;
80
+ font-size: 2rem; }
81
+ @media (min-width: 35.5em) {
82
+ .sl-wrapper .sl-navigation button {
83
+ width: 44px; }
84
+ .sl-wrapper .sl-navigation button.sl-next {
85
+ right: 10px;
86
+ font-size: 3rem; }
87
+ .sl-wrapper .sl-navigation button.sl-prev {
88
+ left: 10px;
89
+ font-size: 3rem; } }
90
+ @media (min-width: 50em) {
91
+ .sl-wrapper .sl-navigation button {
92
+ width: 44px; }
93
+ .sl-wrapper .sl-navigation button.sl-next {
94
+ right: 20px;
95
+ font-size: 3rem; }
96
+ .sl-wrapper .sl-navigation button.sl-prev {
97
+ left: 20px;
98
+ font-size: 3rem; } }
99
+ .sl-wrapper.sl-dir-rtl .sl-navigation {
100
+ direction: ltr; }
101
+ .sl-wrapper .sl-image {
102
+ position: fixed;
103
+ -ms-touch-action: none;
104
+ touch-action: none;
105
+ z-index: 10000; }
106
+ .sl-wrapper .sl-image img {
107
+ margin: 0;
108
+ padding: 0;
109
+ display: block;
110
+ border: 0 none;
111
+ width: 100%;
112
+ height: auto; }
113
+ @media (min-width: 35.5em) {
114
+ .sl-wrapper .sl-image img {
115
+ border: 0 none; } }
116
+ @media (min-width: 50em) {
117
+ .sl-wrapper .sl-image img {
118
+ border: 0 none; } }
119
+ .sl-wrapper .sl-image iframe {
120
+ background: #000;
121
+ border: 0 none; }
122
+ @media (min-width: 35.5em) {
123
+ .sl-wrapper .sl-image iframe {
124
+ border: 0 none; } }
125
+ @media (min-width: 50em) {
126
+ .sl-wrapper .sl-image iframe {
127
+ border: 0 none; } }
128
+ .sl-wrapper .sl-image .sl-caption {
129
+ display: none;
130
+ padding: 10px;
131
+ color: #fff;
132
+ background: rgba(0, 0, 0, 0.8);
133
+ font-size: 1rem;
134
+ position: absolute;
135
+ bottom: 0;
136
+ left: 0;
137
+ right: 0; }
138
+ .sl-wrapper .sl-image .sl-caption.pos-top {
139
+ bottom: auto;
140
+ top: 0; }
141
+ .sl-wrapper .sl-image .sl-caption.pos-outside {
142
+ bottom: auto; }
143
+ .sl-wrapper .sl-image .sl-download {
144
+ display: none;
145
+ position: absolute;
146
+ bottom: 5px;
147
+ right: 5px;
148
+ color: #000;
149
+ z-index: 1060; }
150
+
151
+ .sl-spinner {
152
+ display: none;
153
+ border: 5px solid #333;
154
+ border-radius: 40px;
155
+ height: 40px;
156
+ left: 50%;
157
+ margin: -20px 0 0 -20px;
158
+ opacity: 0;
159
+ position: fixed;
160
+ top: 50%;
161
+ width: 40px;
162
+ z-index: 1007;
163
+ -webkit-animation: pulsate 1s ease-out infinite;
164
+ -moz-animation: pulsate 1s ease-out infinite;
165
+ -ms-animation: pulsate 1s ease-out infinite;
166
+ -o-animation: pulsate 1s ease-out infinite;
167
+ animation: pulsate 1s ease-out infinite; }
168
+
169
+ .sl-scrollbar-measure {
170
+ position: absolute;
171
+ top: -9999px;
172
+ width: 50px;
173
+ height: 50px;
174
+ overflow: scroll; }
175
+
176
+ .sl-transition {
177
+ transition: -moz-transform ease 200ms;
178
+ transition: -ms-transform ease 200ms;
179
+ transition: -o-transform ease 200ms;
180
+ transition: -webkit-transform ease 200ms;
181
+ transition: transform ease 200ms; }
182
+
183
+ @-webkit-keyframes pulsate {
184
+ 0% {
185
+ transform: scale(0.1);
186
+ opacity: 0.0; }
187
+ 50% {
188
+ opacity: 1; }
189
+ 100% {
190
+ transform: scale(1.2);
191
+ opacity: 0; } }
192
+
193
+ @keyframes pulsate {
194
+ 0% {
195
+ transform: scale(0.1);
196
+ opacity: 0.0; }
197
+ 50% {
198
+ opacity: 1; }
199
+ 100% {
200
+ transform: scale(1.2);
201
+ opacity: 0; } }
202
+
203
+ @-moz-keyframes pulsate {
204
+ 0% {
205
+ transform: scale(0.1);
206
+ opacity: 0.0; }
207
+ 50% {
208
+ opacity: 1; }
209
+ 100% {
210
+ transform: scale(1.2);
211
+ opacity: 0; } }
212
+
213
+ @-o-keyframes pulsate {
214
+ 0% {
215
+ transform: scale(0.1);
216
+ opacity: 0.0; }
217
+ 50% {
218
+ opacity: 1; }
219
+ 100% {
220
+ transform: scale(1.2);
221
+ opacity: 0; } }
222
+
223
+ @-ms-keyframes pulsate {
224
+ 0% {
225
+ transform: scale(0.1);
226
+ opacity: 0.0; }
227
+ 50% {
228
+ opacity: 1; }
229
+ 100% {
230
+ transform: scale(1.2);
231
+ opacity: 0; } }
css/dist/simple-lightbox.min.css ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
1
+ /*!
2
+ By André Rinas, www.andrerinas.de
3
+ Documentation, www.simplelightbox.de
4
+ Available for use under the MIT License
5
+ Version 2.7.0
6
+ */
7
+ body.hidden-scroll{overflow:hidden}.sl-overlay{position:fixed;left:0;right:0;top:0;bottom:0;background:#fff;opacity:.7;display:none;z-index:1035}.sl-wrapper{z-index:1040;width:100%;height:100%;left:0;top:0;position:fixed}.sl-wrapper *{box-sizing:border-box}.sl-wrapper button{border:0 none;background:transparent;font-size:28px;padding:0;cursor:pointer}.sl-wrapper button:hover{opacity:0.7}.sl-wrapper .sl-close{display:none;position:fixed;right:30px;top:30px;z-index:10060;margin-top:-14px;margin-right:-14px;height:44px;width:44px;line-height:44px;font-family:Arial,Baskerville,monospace;color:#000;font-size:3rem}.sl-wrapper .sl-counter{display:none;position:fixed;top:30px;left:30px;z-index:1060;color:#000;font-size:1rem}.sl-wrapper .sl-navigation{width:100%;display:none}.sl-wrapper .sl-navigation button{position:fixed;top:50%;margin-top:-22px;height:44px;width:22px;line-height:44px;text-align:center;display:block;z-index:10060;font-family:Arial,Baskerville,monospace;color:#000}.sl-wrapper .sl-navigation button.sl-next{right:5px;font-size:2rem}.sl-wrapper .sl-navigation button.sl-prev{left:5px;font-size:2rem}@media (min-width: 35.5em){.sl-wrapper .sl-navigation button{width:44px}.sl-wrapper .sl-navigation button.sl-next{right:10px;font-size:3rem}.sl-wrapper .sl-navigation button.sl-prev{left:10px;font-size:3rem}}@media (min-width: 50em){.sl-wrapper .sl-navigation button{width:44px}.sl-wrapper .sl-navigation button.sl-next{right:20px;font-size:3rem}.sl-wrapper .sl-navigation button.sl-prev{left:20px;font-size:3rem}}.sl-wrapper.sl-dir-rtl .sl-navigation{direction:ltr}.sl-wrapper .sl-image{position:fixed;-ms-touch-action:none;touch-action:none;z-index:10000}.sl-wrapper .sl-image img{margin:0;padding:0;display:block;border:0 none;width:100%;height:auto}@media (min-width: 35.5em){.sl-wrapper .sl-image img{border:0 none}}@media (min-width: 50em){.sl-wrapper .sl-image img{border:0 none}}.sl-wrapper .sl-image iframe{background:#000;border:0 none}@media (min-width: 35.5em){.sl-wrapper .sl-image iframe{border:0 none}}@media (min-width: 50em){.sl-wrapper .sl-image iframe{border:0 none}}.sl-wrapper .sl-image .sl-caption{display:none;padding:10px;color:#fff;background:rgba(0,0,0,0.8);font-size:1rem;position:absolute;bottom:0;left:0;right:0}.sl-wrapper .sl-image .sl-caption.pos-top{bottom:auto;top:0}.sl-wrapper .sl-image .sl-caption.pos-outside{bottom:auto}.sl-wrapper .sl-image .sl-download{display:none;position:absolute;bottom:5px;right:5px;color:#000;z-index:1060}.sl-spinner{display:none;border:5px solid #333;border-radius:40px;height:40px;left:50%;margin:-20px 0 0 -20px;opacity:0;position:fixed;top:50%;width:40px;z-index:1007;-webkit-animation:pulsate 1s ease-out infinite;-moz-animation:pulsate 1s ease-out infinite;-ms-animation:pulsate 1s ease-out infinite;-o-animation:pulsate 1s ease-out infinite;animation:pulsate 1s ease-out infinite}.sl-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}.sl-transition{transition:-moz-transform ease 200ms;transition:-ms-transform ease 200ms;transition:-o-transform ease 200ms;transition:-webkit-transform ease 200ms;transition:transform ease 200ms}@-webkit-keyframes pulsate{0%{transform:scale(0.1);opacity:0.0}50%{opacity:1}100%{transform:scale(1.2);opacity:0}}@keyframes pulsate{0%{transform:scale(0.1);opacity:0.0}50%{opacity:1}100%{transform:scale(1.2);opacity:0}}@-moz-keyframes pulsate{0%{transform:scale(0.1);opacity:0.0}50%{opacity:1}100%{transform:scale(1.2);opacity:0}}@-o-keyframes pulsate{0%{transform:scale(0.1);opacity:0.0}50%{opacity:1}100%{transform:scale(1.2);opacity:0}}@-ms-keyframes pulsate{0%{transform:scale(0.1);opacity:0.0}50%{opacity:1}100%{transform:scale(1.2);opacity:0}}
css/extensions.css CHANGED
@@ -391,7 +391,7 @@ ul.premium-list li:before {
391
  padding: 0 12px;
392
  }
393
 
394
- .swipebox {
395
  display: inline-block;
396
  margin-top: 10px;
397
  }
@@ -580,4 +580,15 @@ ul.premium-list li:before {
580
  margin: 0 auto 20px auto;
581
  }
582
  }
583
-
 
 
 
 
 
 
 
 
 
 
 
391
  padding: 0 12px;
392
  }
393
 
394
+ .lightbox {
395
  display: inline-block;
396
  margin-top: 10px;
397
  }
580
  margin: 0 auto 20px auto;
581
  }
582
  }
583
+
584
+ .sl-overlay {
585
+ z-index: 10040 !important;
586
+ }
587
+
588
+ .sl-wrapper {
589
+ z-index: 10050 !important;
590
+ }
591
+
592
+ .sl-wrapper .sl-close, .sl-wrapper .sl-counter {
593
+ top: 50px !important;
594
+ }
css/swipebox.min.css DELETED
@@ -1 +0,0 @@
1
- /*! Swipebox v1.3.0 | Constantin Saguin csag.co | MIT License | github.com/brutaldesign/swipebox */html.swipebox-html.swipebox-touch{overflow:hidden!important}#swipebox-overlay img{border:none!important}#swipebox-overlay{width:100%;height:100%;position:fixed;top:0;left:0;z-index:99999!important;overflow:hidden;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}#swipebox-container{position:relative;width:100%;height:100%}#swipebox-slider{-webkit-transition:-webkit-transform .4s ease;transition:transform .4s ease;height:100%;left:0;top:0;width:100%;white-space:nowrap;position:absolute;display:none;cursor:pointer}#swipebox-slider .slide{height:100%;width:100%;line-height:1px;text-align:center;display:inline-block}#swipebox-slider .slide:before{content:"";display:inline-block;height:50%;width:1px;margin-right:-1px}#swipebox-slider .slide .swipebox-inline-container,#swipebox-slider .slide .swipebox-video-container,#swipebox-slider .slide img{display:inline-block;max-height:100%;max-width:100%;margin:0;padding:0;width:auto;height:auto;vertical-align:middle}#swipebox-slider .slide .swipebox-video-container{background:0 0;max-width:1140px;max-height:100%;width:100%;padding:5%;-webkit-box-sizing:border-box;box-sizing:border-box}#swipebox-slider .slide .swipebox-video-container .swipebox-video{width:100%;height:0;padding-bottom:56.25%;overflow:hidden;position:relative}#swipebox-slider .slide .swipebox-video-container .swipebox-video iframe{width:100%!important;height:100%!important;position:absolute;top:0;left:0}#swipebox-slider .slide-loading{background:url(../img/swipebox/loader.gif) center center no-repeat}#swipebox-bottom-bar,#swipebox-top-bar{-webkit-transition:.5s;transition:.5s;position:absolute;left:0;z-index:999;height:50px;width:100%}#swipebox-bottom-bar{bottom:-50px}#swipebox-bottom-bar.visible-bars{-webkit-transform:translate3d(0,-50px,0);transform:translate3d(0,-50px,0)}#swipebox-top-bar{top:-50px}#swipebox-top-bar.visible-bars{-webkit-transform:translate3d(0,50px,0);transform:translate3d(0,50px,0)}#swipebox-title{display:block;width:100%;text-align:center}#swipebox-close,#swipebox-next,#swipebox-prev{background-image:url(../img/swipebox/icons.png);background-repeat:no-repeat;border:none!important;text-decoration:none!important;cursor:pointer;width:50px;height:50px;top:0}#swipebox-arrows{display:block;margin:0 auto;width:100%;height:50px}#swipebox-prev{background-position:-32px 13px;float:left}#swipebox-next{background-position:-78px 13px;float:right}#swipebox-close{top:0;right:0;position:absolute;z-index:9999;background-position:15px 12px}.swipebox-no-close-button #swipebox-close{display:none}#swipebox-next.disabled,#swipebox-prev.disabled{opacity:.3}.swipebox-no-touch #swipebox-overlay.rightSpring #swipebox-slider{-webkit-animation:rightSpring .3s;animation:rightSpring .3s}.swipebox-no-touch #swipebox-overlay.leftSpring #swipebox-slider{-webkit-animation:leftSpring .3s;animation:leftSpring .3s}.swipebox-touch #swipebox-container:after,.swipebox-touch #swipebox-container:before{-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-transition:all .3s ease;transition:all .3s ease;content:' ';position:absolute;z-index:999;top:0;height:100%;width:20px;opacity:0}.swipebox-touch #swipebox-container:before{left:0;-webkit-box-shadow:inset 10px 0 10px -8px #656565;box-shadow:inset 10px 0 10px -8px #656565}.swipebox-touch #swipebox-container:after{right:0;-webkit-box-shadow:inset -10px 0 10px -8px #656565;box-shadow:inset -10px 0 10px -8px #656565}.swipebox-touch #swipebox-overlay.leftSpringTouch #swipebox-container:before,.swipebox-touch #swipebox-overlay.rightSpringTouch #swipebox-container:after{opacity:1}@-webkit-keyframes rightSpring{0%{left:0}50%{left:-30px}100%{left:0}}@keyframes rightSpring{0%{left:0}50%{left:-30px}100%{left:0}}@-webkit-keyframes leftSpring{0%{left:0}50%{left:30px}100%{left:0}}@keyframes leftSpring{0%{left:0}50%{left:30px}100%{left:0}}@media screen and (min-width:800px){#swipebox-close{right:10px}#swipebox-arrows{width:92%;max-width:800px}}#swipebox-overlay{background:#0d0d0d}#swipebox-bottom-bar,#swipebox-top-bar{text-shadow:1px 1px 1px #000;background:#000;opacity:.95}#swipebox-top-bar{color:#fff!important;font-size:15px;line-height:43px;font-family:Helvetica,Arial,sans-serif}
 
js/dist/simple-lightbox.jquery.js ADDED
@@ -0,0 +1,1662 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*!
2
+ By André Rinas, www.andrerinas.de
3
+ Documentation, www.simplelightbox.de
4
+ Available for use under the MIT License
5
+ Version 2.7.0
6
+ */
7
+ (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()({1:[function(require,module,exports){
8
+ "use strict";
9
+
10
+ require('./simple-lightbox');
11
+
12
+ (function ($, window, document, undefined) {
13
+ 'use strict';
14
+
15
+ $.fn.simpleLightbox = function (options) {
16
+ return this.length ? new SimpleLightbox(this.get(), options) : null;
17
+ };
18
+ })(jQuery, window, document);
19
+
20
+ },{"./simple-lightbox":2}],2:[function(require,module,exports){
21
+ (function (global){(function (){
22
+ "use strict";
23
+
24
+ Object.defineProperty(exports, "__esModule", {
25
+ value: true
26
+ });
27
+ exports["default"] = void 0;
28
+
29
+ function _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
30
+
31
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
32
+
33
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
34
+
35
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
36
+
37
+ function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
38
+
39
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
40
+
41
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
42
+
43
+ var SimpleLightbox = /*#__PURE__*/function () {
44
+ function SimpleLightbox(elements, options) {
45
+ var _this = this;
46
+
47
+ _classCallCheck(this, SimpleLightbox);
48
+
49
+ _defineProperty(this, "defaultOptions", {
50
+ sourceAttr: 'href',
51
+ overlay: true,
52
+ spinner: true,
53
+ nav: true,
54
+ navText: ['&lsaquo;', '&rsaquo;'],
55
+ captions: true,
56
+ captionDelay: 0,
57
+ captionSelector: 'img',
58
+ captionType: 'attr',
59
+ captionsData: 'title',
60
+ captionPosition: 'bottom',
61
+ captionClass: '',
62
+ close: true,
63
+ closeText: '&times;',
64
+ swipeClose: true,
65
+ showCounter: true,
66
+ fileExt: 'png|jpg|jpeg|gif|webp',
67
+ animationSlide: true,
68
+ animationSpeed: 250,
69
+ preloading: true,
70
+ enableKeyboard: true,
71
+ loop: true,
72
+ rel: false,
73
+ docClose: true,
74
+ swipeTolerance: 50,
75
+ className: 'simple-lightbox',
76
+ widthRatio: 0.8,
77
+ heightRatio: 0.9,
78
+ scaleImageToRatio: false,
79
+ disableRightClick: false,
80
+ disableScroll: true,
81
+ alertError: true,
82
+ alertErrorMessage: 'Image not found, next image will be loaded',
83
+ additionalHtml: false,
84
+ history: true,
85
+ throttleInterval: 0,
86
+ doubleTapZoom: 2,
87
+ maxZoom: 10,
88
+ htmlClass: 'has-lightbox',
89
+ rtl: false,
90
+ fixedClass: 'sl-fixed',
91
+ fadeSpeed: 300,
92
+ uniqueImages: true,
93
+ focus: true
94
+ });
95
+
96
+ _defineProperty(this, "transitionPrefix", void 0);
97
+
98
+ _defineProperty(this, "transitionCapable", false);
99
+
100
+ _defineProperty(this, "isTouchDevice", 'ontouchstart' in window);
101
+
102
+ _defineProperty(this, "initialLocationHash", void 0);
103
+
104
+ _defineProperty(this, "pushStateSupport", 'pushState' in history);
105
+
106
+ _defineProperty(this, "isOpen", false);
107
+
108
+ _defineProperty(this, "isAnimating", false);
109
+
110
+ _defineProperty(this, "isClosing", false);
111
+
112
+ _defineProperty(this, "isFadeIn", false);
113
+
114
+ _defineProperty(this, "urlChangedOnce", false);
115
+
116
+ _defineProperty(this, "hashReseted", false);
117
+
118
+ _defineProperty(this, "historyHasChanges", false);
119
+
120
+ _defineProperty(this, "historyUpdateTimeout", null);
121
+
122
+ _defineProperty(this, "currentImage", void 0);
123
+
124
+ _defineProperty(this, "eventNamespace", 'simplelightbox');
125
+
126
+ _defineProperty(this, "domNodes", {});
127
+
128
+ _defineProperty(this, "loadedImages", []);
129
+
130
+ _defineProperty(this, "initialImageIndex", 0);
131
+
132
+ _defineProperty(this, "currentImageIndex", 0);
133
+
134
+ _defineProperty(this, "initialSelector", null);
135
+
136
+ _defineProperty(this, "globalScrollbarWidth", 0);
137
+
138
+ _defineProperty(this, "controlCoordinates", {
139
+ swipeDiff: 0,
140
+ swipeYDiff: 0,
141
+ swipeStart: 0,
142
+ swipeEnd: 0,
143
+ swipeYStart: 0,
144
+ swipeYEnd: 0,
145
+ mousedown: false,
146
+ imageLeft: 0,
147
+ zoomed: false,
148
+ containerHeight: 0,
149
+ containerWidth: 0,
150
+ containerOffsetX: 0,
151
+ containerOffsetY: 0,
152
+ imgHeight: 0,
153
+ imgWidth: 0,
154
+ capture: false,
155
+ initialOffsetX: 0,
156
+ initialOffsetY: 0,
157
+ initialPointerOffsetX: 0,
158
+ initialPointerOffsetY: 0,
159
+ initialPointerOffsetX2: 0,
160
+ initialPointerOffsetY2: 0,
161
+ initialScale: 1,
162
+ initialPinchDistance: 0,
163
+ pointerOffsetX: 0,
164
+ pointerOffsetY: 0,
165
+ pointerOffsetX2: 0,
166
+ pointerOffsetY2: 0,
167
+ targetOffsetX: 0,
168
+ targetOffsetY: 0,
169
+ targetScale: 0,
170
+ pinchOffsetX: 0,
171
+ pinchOffsetY: 0,
172
+ limitOffsetX: 0,
173
+ limitOffsetY: 0,
174
+ scaleDifference: 0,
175
+ targetPinchDistance: 0,
176
+ touchCount: 0,
177
+ doubleTapped: false,
178
+ touchmoveCount: 0
179
+ });
180
+
181
+ this.options = Object.assign(this.defaultOptions, options);
182
+
183
+ if (typeof elements === 'string') {
184
+ this.initialSelector = elements;
185
+ this.elements = Array.from(document.querySelectorAll(elements));
186
+ } else {
187
+ this.elements = typeof elements.length !== 'undefined' && elements.length > 0 ? Array.from(elements) : [elements];
188
+ }
189
+
190
+ this.relatedElements = [];
191
+ this.transitionPrefix = this.calculateTransitionPrefix();
192
+ this.transitionCapable = this.transitionPrefix !== false;
193
+ this.initialLocationHash = this.hash; // this should be handled by attribute selector IMHO! => 'a[rel=bla]'...
194
+
195
+ if (this.options.rel) {
196
+ this.elements = this.getRelated(this.options.rel);
197
+ }
198
+
199
+ if (this.options.uniqueImages) {
200
+ var imgArr = [];
201
+ this.elements = Array.from(this.elements).filter(function (element) {
202
+ var src = element.getAttribute(_this.options.sourceAttr);
203
+
204
+ if (imgArr.indexOf(src) === -1) {
205
+ imgArr.push(src);
206
+ return true;
207
+ }
208
+
209
+ return false;
210
+ });
211
+ }
212
+
213
+ this.createDomNodes();
214
+
215
+ if (this.options.close) {
216
+ this.domNodes.wrapper.appendChild(this.domNodes.closeButton);
217
+ }
218
+
219
+ if (this.options.nav) {
220
+ this.domNodes.wrapper.appendChild(this.domNodes.navigation);
221
+ }
222
+
223
+ if (this.options.spinner) {
224
+ this.domNodes.wrapper.appendChild(this.domNodes.spinner);
225
+ }
226
+
227
+ this.addEventListener(this.elements, 'click.' + this.eventNamespace, function (event) {
228
+ if (_this.isValidLink(event.currentTarget)) {
229
+ event.preventDefault();
230
+
231
+ if (_this.isAnimating) {
232
+ return false;
233
+ }
234
+
235
+ _this.initialImageIndex = _this.elements.indexOf(event.currentTarget);
236
+
237
+ _this.openImage(event.currentTarget);
238
+ }
239
+ }); // close addEventListener click addEventListener doc
240
+
241
+ if (this.options.docClose) {
242
+ this.addEventListener(this.domNodes.wrapper, ['click.' + this.eventNamespace, 'touchstart.' + this.eventNamespace], function (event) {
243
+ if (_this.isOpen && event.target === event.currentTarget) {
244
+ _this.close();
245
+ }
246
+ });
247
+ } // disable rightclick
248
+
249
+
250
+ if (this.options.disableRightClick) {
251
+ this.addEventListener(document.body, 'contextmenu.' + this.eventNamespace, function (event) {
252
+ if (event.target.classList.contains('sl-overlay')) {
253
+ event.preventDefault();
254
+ }
255
+ });
256
+ } // keyboard-control
257
+
258
+
259
+ if (this.options.enableKeyboard) {
260
+ this.addEventListener(document.body, 'keyup.' + this.eventNamespace, this.throttle(function (event) {
261
+ _this.controlCoordinates.swipeDiff = 0; // keyboard control only if lightbox is open
262
+
263
+ if (_this.isAnimating && event.key === 'Escape') {
264
+ _this.currentImage.setAttribute('src', '');
265
+
266
+ _this.isAnimating = false;
267
+ return _this.close();
268
+ }
269
+
270
+ if (_this.isOpen) {
271
+ event.preventDefault();
272
+
273
+ if (event.key === 'Escape') {
274
+ _this.close();
275
+ }
276
+
277
+ if (!_this.isAnimating && ['ArrowLeft', 'ArrowRight'].indexOf(event.key) > -1) {
278
+ _this.loadImage(event.key === 'ArrowRight' ? 1 : -1);
279
+ }
280
+ }
281
+ }, this.options.throttleInterval));
282
+ }
283
+
284
+ this.addEvents();
285
+ }
286
+
287
+ _createClass(SimpleLightbox, [{
288
+ key: "createDomNodes",
289
+ value: function createDomNodes() {
290
+ this.domNodes.overlay = document.createElement('div');
291
+ this.domNodes.overlay.classList.add('sl-overlay');
292
+ this.domNodes.overlay.dataset.opacityTarget = ".7";
293
+ this.domNodes.closeButton = document.createElement('button');
294
+ this.domNodes.closeButton.classList.add('sl-close');
295
+ this.domNodes.closeButton.innerHTML = this.options.closeText;
296
+ this.domNodes.spinner = document.createElement('div');
297
+ this.domNodes.spinner.classList.add('sl-spinner');
298
+ this.domNodes.spinner.innerHTML = '<div></div>';
299
+ this.domNodes.navigation = document.createElement('div');
300
+ this.domNodes.navigation.classList.add('sl-navigation');
301
+ this.domNodes.navigation.innerHTML = "<button class=\"sl-prev\">".concat(this.options.navText[0], "</button><button class=\"sl-next\">").concat(this.options.navText[1], "</button>");
302
+ this.domNodes.counter = document.createElement('div');
303
+ this.domNodes.counter.classList.add('sl-counter');
304
+ this.domNodes.counter.innerHTML = '<span class="sl-current"></span>/<span class="sl-total"></span>';
305
+ this.domNodes.caption = document.createElement('div');
306
+ this.domNodes.caption.classList.add('sl-caption', 'pos-' + this.options.captionPosition);
307
+
308
+ if (this.options.captionClass) {
309
+ this.domNodes.caption.classList.add(this.options.captionClass);
310
+ }
311
+
312
+ this.domNodes.image = document.createElement('div');
313
+ this.domNodes.image.classList.add('sl-image');
314
+ this.domNodes.wrapper = document.createElement('div');
315
+ this.domNodes.wrapper.classList.add('sl-wrapper');
316
+ this.domNodes.wrapper.setAttribute('tabindex', -1);
317
+ this.domNodes.wrapper.setAttribute('role', 'dialog');
318
+ this.domNodes.wrapper.setAttribute('aria-hidden', false);
319
+
320
+ if (this.options.className) {
321
+ this.domNodes.wrapper.classList.add(this.options.className);
322
+ }
323
+
324
+ if (this.options.rtl) {
325
+ this.domNodes.wrapper.classList.add('sl-dir-rtl');
326
+ }
327
+ }
328
+ }, {
329
+ key: "throttle",
330
+ value: function throttle(func, limit) {
331
+ var inThrottle;
332
+ return function () {
333
+ if (!inThrottle) {
334
+ func.apply(this, arguments);
335
+ inThrottle = true;
336
+ setTimeout(function () {
337
+ return inThrottle = false;
338
+ }, limit);
339
+ }
340
+ };
341
+ }
342
+ }, {
343
+ key: "isValidLink",
344
+ value: function isValidLink(element) {
345
+ return !this.options.fileExt || 'pathname' in element && new RegExp('(' + this.options.fileExt + ')$', 'i').test(element.pathname);
346
+ }
347
+ }, {
348
+ key: "calculateTransitionPrefix",
349
+ value: function calculateTransitionPrefix() {
350
+ var s = (document.body || document.documentElement).style;
351
+ return 'transition' in s ? '' : 'WebkitTransition' in s ? '-webkit-' : 'MozTransition' in s ? '-moz-' : 'OTransition' in s ? '-o' : false;
352
+ }
353
+ }, {
354
+ key: "toggleScrollbar",
355
+ value: function toggleScrollbar(type) {
356
+ var scrollbarWidth = 0;
357
+ var fixedElements = [].slice.call(document.querySelectorAll('.' + this.options.fixedClass));
358
+
359
+ if (type === 'hide') {
360
+ var fullWindowWidth = window.innerWidth;
361
+
362
+ if (!fullWindowWidth) {
363
+ var documentElementRect = document.documentElement.getBoundingClientRect();
364
+ fullWindowWidth = documentElementRect.right - Math.abs(documentElementRect.left);
365
+ }
366
+
367
+ if (document.body.clientWidth < fullWindowWidth) {
368
+ var scrollDiv = document.createElement('div'),
369
+ paddingRight = parseInt(document.body.style.paddingRight || 0, 10);
370
+ scrollDiv.classList.add('sl-scrollbar-measure');
371
+ document.body.appendChild(scrollDiv);
372
+ scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth;
373
+ document.body.removeChild(scrollDiv);
374
+ document.body.dataset.originalPaddingRight = paddingRight;
375
+
376
+ if (scrollbarWidth > 0) {
377
+ document.body.classList.add('hidden-scroll');
378
+ document.body.style.paddingRight = paddingRight + scrollbarWidth + 'px';
379
+ fixedElements.forEach(function (element) {
380
+ var actualPadding = element.style.paddingRight;
381
+ var calculatedPadding = window.getComputedStyle(element)['padding-right'];
382
+ element.dataset.originalPaddingRight = actualPadding;
383
+ element.style.paddingRight = "".concat(parseFloat(calculatedPadding) + scrollbarWidth, "px");
384
+ });
385
+ }
386
+ }
387
+ } else {
388
+ document.body.classList.remove('hidden-scroll');
389
+ document.body.style.paddingRight = document.body.dataset.originalPaddingRight;
390
+ fixedElements.forEach(function (element) {
391
+ var padding = element.dataset.originalPaddingRight;
392
+
393
+ if (typeof padding !== 'undefined') {
394
+ element.style.paddingRight = padding;
395
+ }
396
+ });
397
+ }
398
+
399
+ return scrollbarWidth;
400
+ }
401
+ }, {
402
+ key: "close",
403
+ value: function close() {
404
+ var _this2 = this;
405
+
406
+ if (!this.isOpen || this.isAnimating || this.isClosing) {
407
+ return false;
408
+ }
409
+
410
+ this.isClosing = true;
411
+ var element = this.relatedElements[this.currentImageIndex];
412
+ element.dispatchEvent(new Event('close.simplelightbox'));
413
+
414
+ if (this.options.history) {
415
+ this.historyHasChanges = false;
416
+
417
+ if (!this.hashReseted) {
418
+ this.resetHash();
419
+ }
420
+ }
421
+
422
+ this.removeEventListener(document, 'focusin.' + this.eventNamespace);
423
+ this.fadeOut(document.querySelectorAll('.sl-image img, .sl-overlay, .sl-close, .sl-navigation, .sl-image .sl-caption, .sl-counter'), this.options.fadeSpeed, function () {
424
+ if (_this2.options.disableScroll) {
425
+ _this2.toggleScrollbar('show');
426
+ }
427
+
428
+ if (_this2.options.htmlClass && _this2.options.htmlClass !== '') {
429
+ document.querySelector('html').classList.remove(_this2.options.htmlClass);
430
+ }
431
+
432
+ document.body.removeChild(_this2.domNodes.wrapper);
433
+ document.body.removeChild(_this2.domNodes.overlay);
434
+ _this2.domNodes.additionalHtml = null;
435
+ element.dispatchEvent(new Event('closed.simplelightbox'));
436
+ _this2.isClosing = false;
437
+ });
438
+ this.currentImage = null;
439
+ this.isOpen = false;
440
+ this.isAnimating = false; // reset touchcontrol coordinates
441
+
442
+ for (var key in this.controlCoordinates) {
443
+ this.controlCoordinates[key] = 0;
444
+ }
445
+
446
+ this.controlCoordinates.mousedown = false;
447
+ this.controlCoordinates.zoomed = false;
448
+ this.controlCoordinates.capture = false;
449
+ this.controlCoordinates.initialScale = this.minMax(1, 1, this.options.maxZoom);
450
+ this.controlCoordinates.doubleTapped = false;
451
+ }
452
+ }, {
453
+ key: "preload",
454
+ value: function preload() {
455
+ var _this3 = this;
456
+
457
+ var index = this.currentImageIndex,
458
+ length = this.relatedElements.length,
459
+ next = index + 1 < 0 ? length - 1 : index + 1 >= length - 1 ? 0 : index + 1,
460
+ prev = index - 1 < 0 ? length - 1 : index - 1 >= length - 1 ? 0 : index - 1,
461
+ nextImage = new Image(),
462
+ prevImage = new Image();
463
+ nextImage.addEventListener('load', function (event) {
464
+ var src = event.target.getAttribute('src');
465
+
466
+ if (_this3.loadedImages.indexOf(src) === -1) {
467
+ //is this condition even required... setting multiple times will not change usage...
468
+ _this3.loadedImages.push(src);
469
+ }
470
+
471
+ _this3.relatedElements[index].dispatchEvent(new Event('nextImageLoaded.' + _this3.eventNamespace));
472
+ });
473
+ nextImage.setAttribute('src', this.relatedElements[next].getAttribute(this.options.sourceAttr));
474
+ prevImage.addEventListener('load', function (event) {
475
+ var src = event.target.getAttribute('src');
476
+
477
+ if (_this3.loadedImages.indexOf(src) === -1) {
478
+ _this3.loadedImages.push(src);
479
+ }
480
+
481
+ _this3.relatedElements[index].dispatchEvent(new Event('prevImageLoaded.' + _this3.eventNamespace));
482
+ });
483
+ prevImage.setAttribute('src', this.relatedElements[prev].getAttribute(this.options.sourceAttr));
484
+ }
485
+ }, {
486
+ key: "loadImage",
487
+ value: function loadImage(direction) {
488
+ var _this4 = this;
489
+
490
+ var slideDirection = direction;
491
+
492
+ if (this.options.rtl) {
493
+ direction = -direction;
494
+ }
495
+
496
+ this.relatedElements[this.currentImageIndex].dispatchEvent(new Event('change.' + this.eventNamespace));
497
+ this.relatedElements[this.currentImageIndex].dispatchEvent(new Event((direction === 1 ? 'next' : 'prev') + '.' + this.eventNamespace));
498
+ var newIndex = this.currentImageIndex + direction;
499
+
500
+ if (this.isAnimating || (newIndex < 0 || newIndex >= this.relatedElements.length) && this.options.loop === false) {
501
+ return false;
502
+ }
503
+
504
+ this.currentImageIndex = newIndex < 0 ? this.relatedElements.length - 1 : newIndex > this.relatedElements.length - 1 ? 0 : newIndex;
505
+ this.domNodes.counter.querySelector('.sl-current').innerHTML = this.currentImageIndex + 1;
506
+
507
+ if (this.options.animationSlide) {
508
+ this.slide(this.options.animationSpeed / 1000, -100 * slideDirection - this.controlCoordinates.swipeDiff + 'px');
509
+ }
510
+
511
+ this.fadeOut(this.domNodes.image, this.options.fadeSpeed, function () {
512
+ _this4.isAnimating = true;
513
+
514
+ if (!_this4.isClosing) {
515
+ setTimeout(function () {
516
+ var element = _this4.relatedElements[_this4.currentImageIndex];
517
+
518
+ _this4.currentImage.setAttribute('src', element.getAttribute(_this4.options.sourceAttr));
519
+
520
+ if (_this4.loadedImages.indexOf(element.getAttribute(_this4.options.sourceAttr)) === -1) {
521
+ _this4.show(_this4.domNodes.spinner);
522
+ }
523
+
524
+ if (_this4.domNodes.image.contains(_this4.domNodes.caption)) {
525
+ _this4.domNodes.image.removeChild(_this4.domNodes.caption);
526
+ }
527
+
528
+ _this4.adjustImage(slideDirection);
529
+
530
+ if (_this4.options.preloading) _this4.preload();
531
+ }, 100);
532
+ } else {
533
+ _this4.isAnimating = false;
534
+ }
535
+ });
536
+ }
537
+ }, {
538
+ key: "adjustImage",
539
+ value: function adjustImage(direction) {
540
+ var _this5 = this;
541
+
542
+ if (!this.currentImage) {
543
+ return false;
544
+ }
545
+
546
+ var tmpImage = new Image(),
547
+ windowWidth = window.innerWidth * this.options.widthRatio,
548
+ windowHeight = window.innerHeight * this.options.heightRatio;
549
+ tmpImage.setAttribute('src', this.currentImage.getAttribute('src'));
550
+ this.currentImage.dataset.scale = 1;
551
+ this.currentImage.dataset.translateX = 0;
552
+ this.currentImage.dataset.translateY = 0;
553
+ this.zoomPanElement(0, 0, 1);
554
+ tmpImage.addEventListener('error', function (event) {
555
+ _this5.relatedElements[_this5.currentImageIndex].dispatchEvent(new Event('error.' + _this5.eventNamespace));
556
+
557
+ _this5.isAnimating = false;
558
+ _this5.isOpen = false;
559
+ _this5.domNodes.spinner.style.display = 'none';
560
+ var dirIsDefined = direction === 1 || direction === -1;
561
+
562
+ if (_this5.initialImageIndex === _this5.currentImageIndex && dirIsDefined) {
563
+ return _this5.close();
564
+ }
565
+
566
+ if (_this5.options.alertError) {
567
+ alert(_this5.options.alertErrorMessage);
568
+ }
569
+
570
+ _this5.loadImage(dirIsDefined ? direction : 1);
571
+ });
572
+ tmpImage.addEventListener('load', function (event) {
573
+ if (typeof direction !== 'undefined') {
574
+ _this5.relatedElements[_this5.currentImageIndex].dispatchEvent(new Event('changed.' + _this5.eventNamespace));
575
+
576
+ _this5.relatedElements[_this5.currentImageIndex].dispatchEvent(new Event((direction === 1 ? 'nextDone' : 'prevDone') + '.' + _this5.eventNamespace));
577
+ } // history
578
+
579
+
580
+ if (_this5.options.history) {
581
+ _this5.updateURL();
582
+ }
583
+
584
+ if (_this5.loadedImages.indexOf(_this5.currentImage.getAttribute('src')) === -1) {
585
+ _this5.loadedImages.push(_this5.currentImage.getAttribute('src'));
586
+ }
587
+
588
+ var imageWidth = event.target.width,
589
+ imageHeight = event.target.height;
590
+
591
+ if (_this5.options.scaleImageToRatio || imageWidth > windowWidth || imageHeight > windowHeight) {
592
+ var ratio = imageWidth / imageHeight > windowWidth / windowHeight ? imageWidth / windowWidth : imageHeight / windowHeight;
593
+ imageWidth /= ratio;
594
+ imageHeight /= ratio;
595
+ }
596
+
597
+ _this5.domNodes.image.style.top = (window.innerHeight - imageHeight) / 2 + 'px';
598
+ _this5.domNodes.image.style.left = (window.innerWidth - imageWidth - _this5.globalScrollbarWidth) / 2 + 'px';
599
+ _this5.domNodes.image.style.width = imageWidth + 'px';
600
+ _this5.domNodes.image.style.height = imageHeight + 'px';
601
+ _this5.domNodes.spinner.style.display = 'none';
602
+
603
+ if (_this5.options.focus) {
604
+ _this5.forceFocus();
605
+ }
606
+
607
+ _this5.fadeIn(_this5.currentImage, _this5.options.fadeSpeed, function () {
608
+ if (_this5.options.focus) {
609
+ _this5.domNodes.wrapper.focus();
610
+ }
611
+ });
612
+
613
+ _this5.isOpen = true;
614
+ var captionContainer, captionText;
615
+
616
+ if (typeof _this5.options.captionSelector === 'string') {
617
+ captionContainer = _this5.options.captionSelector === 'self' ? _this5.relatedElements[_this5.currentImageIndex] : _this5.relatedElements[_this5.currentImageIndex].querySelector(_this5.options.captionSelector);
618
+ } else if (typeof _this5.options.captionSelector === 'function') {
619
+ captionContainer = _this5.options.captionSelector(_this5.relatedElements[_this5.currentImageIndex]);
620
+ }
621
+
622
+ if (_this5.options.captions && captionContainer) {
623
+ if (_this5.options.captionType === 'data') {
624
+ captionText = captionContainer.dataset[_this5.options.captionsData];
625
+ } else if (_this5.options.captionType === 'text') {
626
+ captionText = captionContainer.innerHTML;
627
+ } else {
628
+ captionText = captionContainer.getAttribute(_this5.options.captionsData);
629
+ }
630
+ }
631
+
632
+ if (!_this5.options.loop) {
633
+ if (_this5.currentImageIndex === 0) {
634
+ _this5.hide(_this5.domNodes.navigation.querySelector('.sl-prev'));
635
+ }
636
+
637
+ if (_this5.currentImageIndex >= _this5.relatedElements.length - 1) {
638
+ _this5.hide(_this5.domNodes.navigation.querySelector('.sl-next'));
639
+ }
640
+
641
+ if (_this5.currentImageIndex > 0) {
642
+ _this5.show(_this5.domNodes.navigation.querySelector('.sl-prev'));
643
+ }
644
+
645
+ if (_this5.currentImageIndex < _this5.relatedElements.length - 1) {
646
+ _this5.show(_this5.domNodes.navigation.querySelector('.sl-next'));
647
+ }
648
+ }
649
+
650
+ if (_this5.relatedElements.length === 1) {
651
+ _this5.hide(_this5.domNodes.navigation.querySelectorAll('.sl-prev, .sl-next'));
652
+ } else {
653
+ _this5.show(_this5.domNodes.navigation.querySelectorAll('.sl-prev, .sl-next'));
654
+ }
655
+
656
+ if (direction === 1 || direction === -1) {
657
+ if (_this5.options.animationSlide) {
658
+ _this5.slide(0, 100 * direction + 'px');
659
+
660
+ setTimeout(function () {
661
+ _this5.slide(_this5.options.animationSpeed / 1000, 0 + 'px');
662
+ }, 50);
663
+ }
664
+
665
+ _this5.fadeIn(_this5.domNodes.image, _this5.options.fadeSpeed, function () {
666
+ _this5.isAnimating = false;
667
+
668
+ _this5.setCaption(captionText, imageWidth);
669
+ });
670
+ } else {
671
+ _this5.isAnimating = false;
672
+
673
+ _this5.setCaption(captionText, imageWidth);
674
+ }
675
+
676
+ if (_this5.options.additionalHtml && !_this5.domNodes.additionalHtml) {
677
+ _this5.domNodes.additionalHtml = document.createElement('div');
678
+
679
+ _this5.domNodes.additionalHtml.classList.add('sl-additional-html');
680
+
681
+ _this5.domNodes.additionalHtml.innerHTML = _this5.options.additionalHtml;
682
+
683
+ _this5.domNodes.image.appendChild(_this5.domNodes.additionalHtml);
684
+ }
685
+ });
686
+ }
687
+ }, {
688
+ key: "zoomPanElement",
689
+ value: function zoomPanElement(targetOffsetX, targetOffsetY, targetScale) {
690
+ this.currentImage.style[this.transitionPrefix + 'transform'] = 'translate(' + targetOffsetX + ',' + targetOffsetY + ') scale(' + targetScale + ')';
691
+ }
692
+ }, {
693
+ key: "minMax",
694
+ value: function minMax(value, min, max) {
695
+ return value < min ? min : value > max ? max : value;
696
+ }
697
+ }, {
698
+ key: "setZoomData",
699
+ value: function setZoomData(initialScale, targetOffsetX, targetOffsetY) {
700
+ this.currentImage.dataset.scale = initialScale;
701
+ this.currentImage.dataset.translateX = targetOffsetX;
702
+ this.currentImage.dataset.translateY = targetOffsetY;
703
+ }
704
+ }, {
705
+ key: "hashchangeHandler",
706
+ value: function hashchangeHandler() {
707
+ if (this.isOpen && this.hash === this.initialLocationHash) {
708
+ this.hashReseted = true;
709
+ this.close();
710
+ }
711
+ }
712
+ }, {
713
+ key: "addEvents",
714
+ value: function addEvents() {
715
+ var _this6 = this;
716
+
717
+ // resize/responsive
718
+ this.addEventListener(window, 'resize.' + this.eventNamespace, function (event) {
719
+ //this.adjustImage.bind(this)
720
+ if (_this6.isOpen) {
721
+ _this6.adjustImage();
722
+ }
723
+ });
724
+ this.addEventListener(this.domNodes.closeButton, ['click.' + this.eventNamespace, 'touchstart.' + this.eventNamespace], this.close.bind(this));
725
+
726
+ if (this.options.history) {
727
+ setTimeout(function () {
728
+ _this6.addEventListener(window, 'hashchange.' + _this6.eventNamespace, function (event) {
729
+ if (_this6.isOpen) {
730
+ _this6.hashchangeHandler();
731
+ }
732
+ });
733
+ }, 40);
734
+ }
735
+
736
+ this.addEventListener(this.domNodes.navigation.getElementsByTagName('button'), 'click.' + this.eventNamespace, function (event) {
737
+ if (!event.currentTarget.tagName.match(/button/i)) {
738
+ return true;
739
+ }
740
+
741
+ event.preventDefault();
742
+ _this6.controlCoordinates.swipeDiff = 0;
743
+
744
+ _this6.loadImage(event.currentTarget.classList.contains('sl-next') ? 1 : -1);
745
+ });
746
+ this.addEventListener(this.domNodes.image, ['touchstart.' + this.eventNamespace, 'mousedown.' + this.eventNamespace], function (event) {
747
+ if (event.target.tagName === 'A' && event.type === 'touchstart') {
748
+ return true;
749
+ }
750
+
751
+ if (event.type === 'mousedown') {
752
+ _this6.controlCoordinates.initialPointerOffsetX = event.clientX;
753
+ _this6.controlCoordinates.initialPointerOffsetY = event.clientY;
754
+ _this6.controlCoordinates.containerHeight = _this6.getDimensions(_this6.domNodes.image).height;
755
+ _this6.controlCoordinates.containerWidth = _this6.getDimensions(_this6.domNodes.image).width;
756
+ _this6.controlCoordinates.imgHeight = _this6.getDimensions(_this6.currentImage).height;
757
+ _this6.controlCoordinates.imgWidth = _this6.getDimensions(_this6.currentImage).width;
758
+ _this6.controlCoordinates.containerOffsetX = _this6.domNodes.image.offsetLeft;
759
+ _this6.controlCoordinates.containerOffsetY = _this6.domNodes.image.offsetTop;
760
+ _this6.controlCoordinates.initialOffsetX = parseFloat(_this6.currentImage.dataset.translateX);
761
+ _this6.controlCoordinates.initialOffsetY = parseFloat(_this6.currentImage.dataset.translateY);
762
+ _this6.controlCoordinates.capture = true;
763
+ } else {
764
+ _this6.controlCoordinates.touchCount = event.touches.length;
765
+ _this6.controlCoordinates.initialPointerOffsetX = event.touches[0].clientX;
766
+ _this6.controlCoordinates.initialPointerOffsetY = event.touches[0].clientY;
767
+ _this6.controlCoordinates.containerHeight = _this6.getDimensions(_this6.domNodes.image).height;
768
+ _this6.controlCoordinates.containerWidth = _this6.getDimensions(_this6.domNodes.image).width;
769
+ _this6.controlCoordinates.imgHeight = _this6.getDimensions(_this6.currentImage).height;
770
+ _this6.controlCoordinates.imgWidth = _this6.getDimensions(_this6.currentImage).width;
771
+ _this6.controlCoordinates.containerOffsetX = _this6.domNodes.image.offsetLeft;
772
+ _this6.controlCoordinates.containerOffsetY = _this6.domNodes.image.offsetTop;
773
+
774
+ if (_this6.controlCoordinates.touchCount === 1)
775
+ /* Single touch */
776
+ {
777
+ if (!_this6.controlCoordinates.doubleTapped) {
778
+ _this6.controlCoordinates.doubleTapped = true;
779
+ setTimeout(function () {
780
+ _this6.controlCoordinates.doubleTapped = false;
781
+ }, 300);
782
+ } else {
783
+ _this6.currentImage.classList.add('sl-transition');
784
+
785
+ if (!_this6.controlCoordinates.zoomed) {
786
+ _this6.controlCoordinates.initialScale = _this6.options.doubleTapZoom;
787
+
788
+ _this6.setZoomData(_this6.controlCoordinates.initialScale, 0, 0);
789
+
790
+ _this6.zoomPanElement(0 + "px", 0 + "px", _this6.controlCoordinates.initialScale);
791
+
792
+ if (!_this6.domNodes.caption.style.opacity && _this6.domNodes.caption.style.display !== 'none') {
793
+ _this6.fadeOut(_this6.domNodes.caption, _this6.options.fadeSpeed);
794
+ }
795
+
796
+ _this6.controlCoordinates.zoomed = true;
797
+ } else {
798
+ _this6.controlCoordinates.initialScale = 1;
799
+
800
+ _this6.setZoomData(_this6.controlCoordinates.initialScale, 0, 0);
801
+
802
+ _this6.zoomPanElement(0 + "px", 0 + "px", _this6.controlCoordinates.initialScale);
803
+
804
+ _this6.controlCoordinates.zoomed = false;
805
+ }
806
+
807
+ setTimeout(function () {
808
+ if (_this6.currentImage) {
809
+ _this6.currentImage.classList.remove('sl-transition');
810
+ }
811
+ }, 200);
812
+ return false;
813
+ }
814
+
815
+ _this6.controlCoordinates.initialOffsetX = parseFloat(_this6.currentImage.dataset.translateX);
816
+ _this6.controlCoordinates.initialOffsetY = parseFloat(_this6.currentImage.dataset.translateY);
817
+ } else if (_this6.controlCoordinates.touchCount === 2)
818
+ /* Pinch */
819
+ {
820
+ _this6.controlCoordinates.initialPointerOffsetX2 = event.touches[1].clientX;
821
+ _this6.controlCoordinates.initialPointerOffsetY2 = event.touches[1].clientY;
822
+ _this6.controlCoordinates.initialOffsetX = parseFloat(_this6.currentImage.dataset.translateX);
823
+ _this6.controlCoordinates.initialOffsetY = parseFloat(_this6.currentImage.dataset.translateY);
824
+ _this6.controlCoordinates.pinchOffsetX = (_this6.controlCoordinates.initialPointerOffsetX + _this6.controlCoordinates.initialPointerOffsetX2) / 2;
825
+ _this6.controlCoordinates.pinchOffsetY = (_this6.controlCoordinates.initialPointerOffsetY + _this6.controlCoordinates.initialPointerOffsetY2) / 2;
826
+ _this6.controlCoordinates.initialPinchDistance = Math.sqrt((_this6.controlCoordinates.initialPointerOffsetX - _this6.controlCoordinates.initialPointerOffsetX2) * (_this6.controlCoordinates.initialPointerOffsetX - _this6.controlCoordinates.initialPointerOffsetX2) + (_this6.controlCoordinates.initialPointerOffsetY - _this6.controlCoordinates.initialPointerOffsetY2) * (_this6.controlCoordinates.initialPointerOffsetY - _this6.controlCoordinates.initialPointerOffsetY2));
827
+ }
828
+
829
+ _this6.controlCoordinates.capture = true;
830
+ }
831
+
832
+ if (_this6.controlCoordinates.mousedown) return true;
833
+
834
+ if (_this6.transitionCapable) {
835
+ _this6.controlCoordinates.imageLeft = parseInt(_this6.domNodes.image.style.left, 10);
836
+ }
837
+
838
+ _this6.controlCoordinates.mousedown = true;
839
+ _this6.controlCoordinates.swipeDiff = 0;
840
+ _this6.controlCoordinates.swipeYDiff = 0;
841
+ _this6.controlCoordinates.swipeStart = event.pageX || event.touches[0].pageX;
842
+ _this6.controlCoordinates.swipeYStart = event.pageY || event.touches[0].pageY;
843
+ return false;
844
+ });
845
+ this.addEventListener(this.domNodes.image, ['touchmove.' + this.eventNamespace, 'mousemove.' + this.eventNamespace, 'MSPointerMove'], function (event) {
846
+ if (!_this6.controlCoordinates.mousedown) {
847
+ return true;
848
+ }
849
+
850
+ event.preventDefault();
851
+
852
+ if (event.type === 'touchmove') {
853
+ if (_this6.controlCoordinates.capture === false) {
854
+ return false;
855
+ }
856
+
857
+ _this6.controlCoordinates.pointerOffsetX = event.touches[0].clientX;
858
+ _this6.controlCoordinates.pointerOffsetY = event.touches[0].clientY;
859
+ _this6.controlCoordinates.touchCount = event.touches.length;
860
+ _this6.controlCoordinates.touchmoveCount++;
861
+
862
+ if (_this6.controlCoordinates.touchCount > 1)
863
+ /* Pinch */
864
+ {
865
+ _this6.controlCoordinates.pointerOffsetX2 = event.touches[1].clientX;
866
+ _this6.controlCoordinates.pointerOffsetY2 = event.touches[1].clientY;
867
+ _this6.controlCoordinates.targetPinchDistance = Math.sqrt((_this6.controlCoordinates.pointerOffsetX - _this6.controlCoordinates.pointerOffsetX2) * (_this6.controlCoordinates.pointerOffsetX - _this6.controlCoordinates.pointerOffsetX2) + (_this6.controlCoordinates.pointerOffsetY - _this6.controlCoordinates.pointerOffsetY2) * (_this6.controlCoordinates.pointerOffsetY - _this6.controlCoordinates.pointerOffsetY2));
868
+
869
+ if (_this6.controlCoordinates.initialPinchDistance === null) {
870
+ _this6.controlCoordinates.initialPinchDistance = _this6.controlCoordinates.targetPinchDistance;
871
+ }
872
+
873
+ if (Math.abs(_this6.controlCoordinates.initialPinchDistance - _this6.controlCoordinates.targetPinchDistance) >= 1) {
874
+ /* Initialize helpers */
875
+ _this6.controlCoordinates.targetScale = _this6.minMax(_this6.controlCoordinates.targetPinchDistance / _this6.controlCoordinates.initialPinchDistance * _this6.controlCoordinates.initialScale, 1, _this6.options.maxZoom);
876
+ _this6.controlCoordinates.limitOffsetX = (_this6.controlCoordinates.imgWidth * _this6.controlCoordinates.targetScale - _this6.controlCoordinates.containerWidth) / 2;
877
+ _this6.controlCoordinates.limitOffsetY = (_this6.controlCoordinates.imgHeight * _this6.controlCoordinates.targetScale - _this6.controlCoordinates.containerHeight) / 2;
878
+ _this6.controlCoordinates.scaleDifference = _this6.controlCoordinates.targetScale - _this6.controlCoordinates.initialScale;
879
+ _this6.controlCoordinates.targetOffsetX = _this6.controlCoordinates.imgWidth * _this6.controlCoordinates.targetScale <= _this6.controlCoordinates.containerWidth ? 0 : _this6.minMax(_this6.controlCoordinates.initialOffsetX - (_this6.controlCoordinates.pinchOffsetX - _this6.controlCoordinates.containerOffsetX - _this6.controlCoordinates.containerWidth / 2 - _this6.controlCoordinates.initialOffsetX) / (_this6.controlCoordinates.targetScale - _this6.controlCoordinates.scaleDifference) * _this6.controlCoordinates.scaleDifference, _this6.controlCoordinates.limitOffsetX * -1, _this6.controlCoordinates.limitOffsetX);
880
+ _this6.controlCoordinates.targetOffsetY = _this6.controlCoordinates.imgHeight * _this6.controlCoordinates.targetScale <= _this6.controlCoordinates.containerHeight ? 0 : _this6.minMax(_this6.controlCoordinates.initialOffsetY - (_this6.controlCoordinates.pinchOffsetY - _this6.controlCoordinates.containerOffsetY - _this6.controlCoordinates.containerHeight / 2 - _this6.controlCoordinates.initialOffsetY) / (_this6.controlCoordinates.targetScale - _this6.controlCoordinates.scaleDifference) * _this6.controlCoordinates.scaleDifference, _this6.controlCoordinates.limitOffsetY * -1, _this6.controlCoordinates.limitOffsetY);
881
+
882
+ _this6.zoomPanElement(_this6.controlCoordinates.targetOffsetX + "px", _this6.controlCoordinates.targetOffsetY + "px", _this6.controlCoordinates.targetScale);
883
+
884
+ if (_this6.controlCoordinates.targetScale > 1) {
885
+ _this6.controlCoordinates.zoomed = true;
886
+
887
+ if (!_this6.domNodes.caption.style.opacity && _this6.domNodes.caption.style.display !== 'none') {
888
+ _this6.fadeOut(_this6.domNodes.caption, _this6.options.fadeSpeed);
889
+ }
890
+ }
891
+
892
+ _this6.controlCoordinates.initialPinchDistance = _this6.controlCoordinates.targetPinchDistance;
893
+ _this6.controlCoordinates.initialScale = _this6.controlCoordinates.targetScale;
894
+ _this6.controlCoordinates.initialOffsetX = _this6.controlCoordinates.targetOffsetX;
895
+ _this6.controlCoordinates.initialOffsetY = _this6.controlCoordinates.targetOffsetY;
896
+ }
897
+ } else {
898
+ _this6.controlCoordinates.targetScale = _this6.controlCoordinates.initialScale;
899
+ _this6.controlCoordinates.limitOffsetX = (_this6.controlCoordinates.imgWidth * _this6.controlCoordinates.targetScale - _this6.controlCoordinates.containerWidth) / 2;
900
+ _this6.controlCoordinates.limitOffsetY = (_this6.controlCoordinates.imgHeight * _this6.controlCoordinates.targetScale - _this6.controlCoordinates.containerHeight) / 2;
901
+ _this6.controlCoordinates.targetOffsetX = _this6.controlCoordinates.imgWidth * _this6.controlCoordinates.targetScale <= _this6.controlCoordinates.containerWidth ? 0 : _this6.minMax(_this6.controlCoordinates.pointerOffsetX - (_this6.controlCoordinates.initialPointerOffsetX - _this6.controlCoordinates.initialOffsetX), _this6.controlCoordinates.limitOffsetX * -1, _this6.controlCoordinates.limitOffsetX);
902
+ _this6.controlCoordinates.targetOffsetY = _this6.controlCoordinates.imgHeight * _this6.controlCoordinates.targetScale <= _this6.controlCoordinates.containerHeight ? 0 : _this6.minMax(_this6.controlCoordinates.pointerOffsetY - (_this6.controlCoordinates.initialPointerOffsetY - _this6.controlCoordinates.initialOffsetY), _this6.controlCoordinates.limitOffsetY * -1, _this6.controlCoordinates.limitOffsetY);
903
+
904
+ if (Math.abs(_this6.controlCoordinates.targetOffsetX) === Math.abs(_this6.controlCoordinates.limitOffsetX)) {
905
+ _this6.controlCoordinates.initialOffsetX = _this6.controlCoordinates.targetOffsetX;
906
+ _this6.controlCoordinates.initialPointerOffsetX = _this6.controlCoordinates.pointerOffsetX;
907
+ }
908
+
909
+ if (Math.abs(_this6.controlCoordinates.targetOffsetY) === Math.abs(_this6.controlCoordinates.limitOffsetY)) {
910
+ _this6.controlCoordinates.initialOffsetY = _this6.controlCoordinates.targetOffsetY;
911
+ _this6.controlCoordinates.initialPointerOffsetY = _this6.controlCoordinates.pointerOffsetY;
912
+ }
913
+
914
+ _this6.setZoomData(_this6.controlCoordinates.initialScale, _this6.controlCoordinates.targetOffsetX, _this6.controlCoordinates.targetOffsetY);
915
+
916
+ _this6.zoomPanElement(_this6.controlCoordinates.targetOffsetX + "px", _this6.controlCoordinates.targetOffsetY + "px", _this6.controlCoordinates.targetScale);
917
+ }
918
+ }
919
+ /* Mouse Move implementation */
920
+
921
+
922
+ if (event.type === 'mousemove' && _this6.controlCoordinates.mousedown) {
923
+ if (event.type == 'touchmove') return true;
924
+ if (_this6.controlCoordinates.capture === false) return false;
925
+ _this6.controlCoordinates.pointerOffsetX = event.clientX;
926
+ _this6.controlCoordinates.pointerOffsetY = event.clientY;
927
+ _this6.controlCoordinates.targetScale = _this6.controlCoordinates.initialScale;
928
+ _this6.controlCoordinates.limitOffsetX = (_this6.controlCoordinates.imgWidth * _this6.controlCoordinates.targetScale - _this6.controlCoordinates.containerWidth) / 2;
929
+ _this6.controlCoordinates.limitOffsetY = (_this6.controlCoordinates.imgHeight * _this6.controlCoordinates.targetScale - _this6.controlCoordinates.containerHeight) / 2;
930
+ _this6.controlCoordinates.targetOffsetX = _this6.controlCoordinates.imgWidth * _this6.controlCoordinates.targetScale <= _this6.controlCoordinates.containerWidth ? 0 : _this6.minMax(_this6.controlCoordinates.pointerOffsetX - (_this6.controlCoordinates.initialPointerOffsetX - _this6.controlCoordinates.initialOffsetX), _this6.controlCoordinates.limitOffsetX * -1, _this6.controlCoordinates.limitOffsetX);
931
+ _this6.controlCoordinates.targetOffsetY = _this6.controlCoordinates.imgHeight * _this6.controlCoordinates.targetScale <= _this6.controlCoordinates.containerHeight ? 0 : _this6.minMax(_this6.controlCoordinates.pointerOffsetY - (_this6.controlCoordinates.initialPointerOffsetY - _this6.controlCoordinates.initialOffsetY), _this6.controlCoordinates.limitOffsetY * -1, _this6.controlCoordinates.limitOffsetY);
932
+
933
+ if (Math.abs(_this6.controlCoordinates.targetOffsetX) === Math.abs(_this6.controlCoordinates.limitOffsetX)) {
934
+ _this6.controlCoordinates.initialOffsetX = _this6.controlCoordinates.targetOffsetX;
935
+ _this6.controlCoordinates.initialPointerOffsetX = _this6.controlCoordinates.pointerOffsetX;
936
+ }
937
+
938
+ if (Math.abs(_this6.controlCoordinates.targetOffsetY) === Math.abs(_this6.controlCoordinates.limitOffsetY)) {
939
+ _this6.controlCoordinates.initialOffsetY = _this6.controlCoordinates.targetOffsetY;
940
+ _this6.controlCoordinates.initialPointerOffsetY = _this6.controlCoordinates.pointerOffsetY;
941
+ }
942
+
943
+ _this6.setZoomData(_this6.controlCoordinates.initialScale, _this6.controlCoordinates.targetOffsetX, _this6.controlCoordinates.targetOffsetY);
944
+
945
+ _this6.zoomPanElement(_this6.controlCoordinates.targetOffsetX + "px", _this6.controlCoordinates.targetOffsetY + "px", _this6.controlCoordinates.targetScale);
946
+ }
947
+
948
+ if (!_this6.controlCoordinates.zoomed) {
949
+ _this6.controlCoordinates.swipeEnd = event.pageX || event.touches[0].pageX;
950
+ _this6.controlCoordinates.swipeYEnd = event.pageY || event.touches[0].pageY;
951
+ _this6.controlCoordinates.swipeDiff = _this6.controlCoordinates.swipeStart - _this6.controlCoordinates.swipeEnd;
952
+ _this6.controlCoordinates.swipeYDiff = _this6.controlCoordinates.swipeYStart - _this6.controlCoordinates.swipeYEnd;
953
+
954
+ if (_this6.options.animationSlide) {
955
+ _this6.slide(0, -_this6.controlCoordinates.swipeDiff + 'px');
956
+ }
957
+ }
958
+ });
959
+ this.addEventListener(this.domNodes.image, ['touchend.' + this.eventNamespace, 'mouseup.' + this.eventNamespace, 'touchcancel.' + this.eventNamespace, 'mouseleave.' + this.eventNamespace, 'pointerup', 'pointercancel', 'MSPointerUp', 'MSPointerCancel'], function (event) {
960
+ if (_this6.isTouchDevice && event.type === 'touchend') {
961
+ _this6.controlCoordinates.touchCount = event.touches.length;
962
+
963
+ if (_this6.controlCoordinates.touchCount === 0)
964
+ /* No touch */
965
+ {
966
+ /* Set attributes */
967
+ if (_this6.currentImage) {
968
+ _this6.setZoomData(_this6.controlCoordinates.initialScale, _this6.controlCoordinates.targetOffsetX, _this6.controlCoordinates.targetOffsetY);
969
+ }
970
+
971
+ if (_this6.controlCoordinates.initialScale === 1) {
972
+ _this6.controlCoordinates.zoomed = false;
973
+
974
+ if (_this6.domNodes.caption.style.display === 'none') {
975
+ _this6.fadeIn(_this6.domNodes.caption, _this6.options.fadeSpeed);
976
+ }
977
+ }
978
+
979
+ _this6.controlCoordinates.initialPinchDistance = null;
980
+ _this6.controlCoordinates.capture = false;
981
+ } else if (_this6.controlCoordinates.touchCount === 1)
982
+ /* Single touch */
983
+ {
984
+ _this6.controlCoordinates.initialPointerOffsetX = event.touches[0].clientX;
985
+ _this6.controlCoordinates.initialPointerOffsetY = event.touches[0].clientY;
986
+ } else if (_this6.controlCoordinates.touchCount > 1)
987
+ /* Pinch */
988
+ {
989
+ _this6.controlCoordinates.initialPinchDistance = null;
990
+ }
991
+ }
992
+
993
+ if (_this6.controlCoordinates.mousedown) {
994
+ _this6.controlCoordinates.mousedown = false;
995
+ var possibleDir = true;
996
+
997
+ if (!_this6.options.loop) {
998
+ if (_this6.currentImageIndex === 0 && _this6.controlCoordinates.swipeDiff < 0) {
999
+ possibleDir = false;
1000
+ }
1001
+
1002
+ if (_this6.currentImageIndex >= _this6.relatedElements.length - 1 && _this6.controlCoordinates.swipeDiff > 0) {
1003
+ possibleDir = false;
1004
+ }
1005
+ }
1006
+
1007
+ if (Math.abs(_this6.controlCoordinates.swipeDiff) > _this6.options.swipeTolerance && possibleDir) {
1008
+ _this6.loadImage(_this6.controlCoordinates.swipeDiff > 0 ? 1 : -1);
1009
+ } else if (_this6.options.animationSlide) {
1010
+ _this6.slide(_this6.options.animationSpeed / 1000, 0 + 'px');
1011
+ }
1012
+
1013
+ if (_this6.options.swipeClose && Math.abs(_this6.controlCoordinates.swipeYDiff) > 50 && Math.abs(_this6.controlCoordinates.swipeDiff) < _this6.options.swipeTolerance) {
1014
+ _this6.close();
1015
+ }
1016
+ }
1017
+ });
1018
+ this.addEventListener(this.domNodes.image, ['dblclick'], function (event) {
1019
+ if (_this6.isTouchDevice) return;
1020
+ _this6.controlCoordinates.initialPointerOffsetX = event.clientX;
1021
+ _this6.controlCoordinates.initialPointerOffsetY = event.clientY;
1022
+ _this6.controlCoordinates.containerHeight = _this6.getDimensions(_this6.domNodes.image).height;
1023
+ _this6.controlCoordinates.containerWidth = _this6.getDimensions(_this6.domNodes.image).width;
1024
+ _this6.controlCoordinates.imgHeight = _this6.getDimensions(_this6.currentImage).height;
1025
+ _this6.controlCoordinates.imgWidth = _this6.getDimensions(_this6.currentImage).width;
1026
+ _this6.controlCoordinates.containerOffsetX = _this6.domNodes.image.offsetLeft;
1027
+ _this6.controlCoordinates.containerOffsetY = _this6.domNodes.image.offsetTop;
1028
+
1029
+ _this6.currentImage.classList.add('sl-transition');
1030
+
1031
+ if (!_this6.controlCoordinates.zoomed) {
1032
+ _this6.controlCoordinates.initialScale = _this6.options.doubleTapZoom;
1033
+
1034
+ _this6.setZoomData(_this6.controlCoordinates.initialScale, 0, 0);
1035
+
1036
+ _this6.zoomPanElement(0 + "px", 0 + "px", _this6.controlCoordinates.initialScale);
1037
+
1038
+ if (!_this6.domNodes.caption.style.opacity && _this6.domNodes.caption.style.display !== 'none') {
1039
+ _this6.fadeOut(_this6.domNodes.caption, _this6.options.fadeSpeed);
1040
+ }
1041
+
1042
+ _this6.controlCoordinates.zoomed = true;
1043
+ } else {
1044
+ _this6.controlCoordinates.initialScale = 1;
1045
+
1046
+ _this6.setZoomData(_this6.controlCoordinates.initialScale, 0, 0);
1047
+
1048
+ _this6.zoomPanElement(0 + "px", 0 + "px", _this6.controlCoordinates.initialScale);
1049
+
1050
+ _this6.controlCoordinates.zoomed = false;
1051
+
1052
+ if (_this6.domNodes.caption.style.display === 'none') {
1053
+ _this6.fadeIn(_this6.domNodes.caption, _this6.options.fadeSpeed);
1054
+ }
1055
+ }
1056
+
1057
+ setTimeout(function () {
1058
+ if (_this6.currentImage) {
1059
+ _this6.currentImage.classList.remove('sl-transition');
1060
+ }
1061
+ }, 200);
1062
+ _this6.controlCoordinates.capture = true;
1063
+ return false;
1064
+ });
1065
+ }
1066
+ }, {
1067
+ key: "getDimensions",
1068
+ value: function getDimensions(element) {
1069
+ var styles = window.getComputedStyle(element),
1070
+ height = element.offsetHeight,
1071
+ width = element.offsetWidth,
1072
+ borderTopWidth = parseFloat(styles.borderTopWidth),
1073
+ borderBottomWidth = parseFloat(styles.borderBottomWidth),
1074
+ paddingTop = parseFloat(styles.paddingTop),
1075
+ paddingBottom = parseFloat(styles.paddingBottom),
1076
+ borderLeftWidth = parseFloat(styles.borderLeftWidth),
1077
+ borderRightWidth = parseFloat(styles.borderRightWidth),
1078
+ paddingLeft = parseFloat(styles.paddingLeft),
1079
+ paddingRight = parseFloat(styles.paddingRight);
1080
+ return {
1081
+ height: height - borderBottomWidth - borderTopWidth - paddingTop - paddingBottom,
1082
+ width: width - borderLeftWidth - borderRightWidth - paddingLeft - paddingRight
1083
+ };
1084
+ }
1085
+ }, {
1086
+ key: "updateHash",
1087
+ value: function updateHash() {
1088
+ var newHash = 'pid=' + (this.currentImageIndex + 1),
1089
+ newURL = window.location.href.split('#')[0] + '#' + newHash;
1090
+ this.hashReseted = false;
1091
+
1092
+ if (this.pushStateSupport) {
1093
+ window.history[this.historyHasChanges ? 'replaceState' : 'pushState']('', document.title, newURL);
1094
+ } else {
1095
+ // what is the browser target of this?
1096
+ if (this.historyHasChanges) {
1097
+ window.location.replace(newURL);
1098
+ } else {
1099
+ window.location.hash = newHash;
1100
+ }
1101
+ }
1102
+
1103
+ if (!this.historyHasChanges) {
1104
+ this.urlChangedOnce = true;
1105
+ }
1106
+
1107
+ this.historyHasChanges = true;
1108
+ }
1109
+ }, {
1110
+ key: "resetHash",
1111
+ value: function resetHash() {
1112
+ this.hashReseted = true;
1113
+
1114
+ if (this.urlChangedOnce) {
1115
+ history.back();
1116
+ } else {
1117
+ if (this.pushStateSupport) {
1118
+ history.pushState('', document.title, window.location.pathname + window.location.search);
1119
+ } else {
1120
+ window.location.hash = '';
1121
+ }
1122
+ } //
1123
+ //in case an history operation is still pending
1124
+
1125
+
1126
+ clearTimeout(this.historyUpdateTimeout);
1127
+ }
1128
+ }, {
1129
+ key: "updateURL",
1130
+ value: function updateURL() {
1131
+ clearTimeout(this.historyUpdateTimeout);
1132
+
1133
+ if (!this.historyHasChanges) {
1134
+ this.updateHash(); // first time
1135
+ } else {
1136
+ this.historyUpdateTimeout = setTimeout(this.updateHash.bind(this), 800);
1137
+ }
1138
+ }
1139
+ }, {
1140
+ key: "setCaption",
1141
+ value: function setCaption(captionText, imageWidth) {
1142
+ var _this7 = this;
1143
+
1144
+ if (this.options.captions && captionText && captionText !== '' && typeof captionText !== "undefined") {
1145
+ this.hide(this.domNodes.caption);
1146
+ this.domNodes.caption.style.width = imageWidth + 'px';
1147
+ this.domNodes.caption.innerHTML = captionText;
1148
+ this.domNodes.image.appendChild(this.domNodes.caption);
1149
+ setTimeout(function () {
1150
+ _this7.fadeIn(_this7.domNodes.caption, _this7.options.fadeSpeed);
1151
+ }, this.options.captionDelay);
1152
+ }
1153
+ }
1154
+ }, {
1155
+ key: "slide",
1156
+ value: function slide(speed, pos) {
1157
+ if (!this.transitionCapable) {
1158
+ return this.domNodes.image.style.left = pos;
1159
+ }
1160
+
1161
+ this.domNodes.image.style[this.transitionPrefix + 'transform'] = 'translateX(' + pos + ')';
1162
+ this.domNodes.image.style[this.transitionPrefix + 'transition'] = this.transitionPrefix + 'transform ' + speed + 's linear';
1163
+ }
1164
+ }, {
1165
+ key: "getRelated",
1166
+ value: function getRelated(rel) {
1167
+ var elems;
1168
+
1169
+ if (rel && rel !== false && rel !== 'nofollow') {
1170
+ elems = Array.from(this.elements).filter(function (element) {
1171
+ return element.getAttribute('rel') === rel;
1172
+ });
1173
+ } else {
1174
+ elems = this.elements;
1175
+ }
1176
+
1177
+ return elems;
1178
+ }
1179
+ }, {
1180
+ key: "openImage",
1181
+ value: function openImage(element) {
1182
+ var _this8 = this;
1183
+
1184
+ element.dispatchEvent(new Event('show.' + this.eventNamespace));
1185
+
1186
+ if (this.options.disableScroll) {
1187
+ this.globalScrollbarWidth = this.toggleScrollbar('hide');
1188
+ }
1189
+
1190
+ if (this.options.htmlClass && this.options.htmlClass !== '') {
1191
+ document.querySelector('html').classList.add(this.options.htmlClass);
1192
+ }
1193
+
1194
+ document.body.appendChild(this.domNodes.wrapper);
1195
+ this.domNodes.wrapper.appendChild(this.domNodes.image);
1196
+
1197
+ if (this.options.overlay) {
1198
+ document.body.appendChild(this.domNodes.overlay);
1199
+ }
1200
+
1201
+ this.relatedElements = this.getRelated(element.rel);
1202
+
1203
+ if (this.options.showCounter) {
1204
+ if (this.relatedElements.length == 1 && this.domNodes.wrapper.contains(this.domNodes.counter)) {
1205
+ this.domNodes.wrapper.removeChild(this.domNodes.counter);
1206
+ } else if (this.relatedElements.length > 1 && !this.domNodes.wrapper.contains(this.domNodes.counter)) {
1207
+ this.domNodes.wrapper.appendChild(this.domNodes.counter);
1208
+ }
1209
+ }
1210
+
1211
+ this.isAnimating = true;
1212
+ this.currentImageIndex = this.relatedElements.indexOf(element);
1213
+ var targetURL = element.getAttribute(this.options.sourceAttr);
1214
+ this.currentImage = document.createElement('img');
1215
+ this.currentImage.style.display = 'none';
1216
+ this.currentImage.setAttribute('src', targetURL);
1217
+ this.currentImage.dataset.scale = 1;
1218
+ this.currentImage.dataset.translateX = 0;
1219
+ this.currentImage.dataset.translateY = 0;
1220
+
1221
+ if (this.loadedImages.indexOf(targetURL) === -1) {
1222
+ this.loadedImages.push(targetURL);
1223
+ }
1224
+
1225
+ this.domNodes.image.innerHTML = '';
1226
+ this.domNodes.image.setAttribute('style', '');
1227
+ this.domNodes.image.appendChild(this.currentImage);
1228
+ this.fadeIn(this.domNodes.overlay, this.options.fadeSpeed);
1229
+ this.fadeIn([this.domNodes.counter, this.domNodes.navigation, this.domNodes.closeButton], this.options.fadeSpeed);
1230
+ this.show(this.domNodes.spinner);
1231
+ this.domNodes.counter.querySelector('.sl-current').innerHTML = this.currentImageIndex + 1;
1232
+ this.domNodes.counter.querySelector('.sl-total').innerHTML = this.relatedElements.length;
1233
+ this.adjustImage();
1234
+
1235
+ if (this.options.preloading) {
1236
+ this.preload();
1237
+ }
1238
+
1239
+ setTimeout(function () {
1240
+ element.dispatchEvent(new Event('shown.' + _this8.eventNamespace));
1241
+ }, this.options.animationSpeed);
1242
+ }
1243
+ }, {
1244
+ key: "forceFocus",
1245
+ value: function forceFocus() {
1246
+ var _this9 = this;
1247
+
1248
+ this.removeEventListener(document, 'focusin.' + this.eventNamespace);
1249
+ this.addEventListener(document, 'focusin.' + this.eventNamespace, function (event) {
1250
+ if (document !== event.target && _this9.domNodes.wrapper !== event.target && !_this9.domNodes.wrapper.contains(event.target)) {
1251
+ _this9.domNodes.wrapper.focus();
1252
+ }
1253
+ });
1254
+ } // utility
1255
+
1256
+ }, {
1257
+ key: "addEventListener",
1258
+ value: function addEventListener(elements, events, callback, opts) {
1259
+ elements = this.wrap(elements);
1260
+ events = this.wrap(events);
1261
+
1262
+ var _iterator = _createForOfIteratorHelper(elements),
1263
+ _step;
1264
+
1265
+ try {
1266
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
1267
+ var element = _step.value;
1268
+
1269
+ if (!element.namespaces) {
1270
+ element.namespaces = {};
1271
+ } // save the namespaces addEventListener the DOM element itself
1272
+
1273
+
1274
+ var _iterator2 = _createForOfIteratorHelper(events),
1275
+ _step2;
1276
+
1277
+ try {
1278
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
1279
+ var event = _step2.value;
1280
+ var options = opts || false;
1281
+ element.namespaces[event] = callback;
1282
+ element.addEventListener(event.split('.')[0], callback, options);
1283
+ }
1284
+ } catch (err) {
1285
+ _iterator2.e(err);
1286
+ } finally {
1287
+ _iterator2.f();
1288
+ }
1289
+ }
1290
+ } catch (err) {
1291
+ _iterator.e(err);
1292
+ } finally {
1293
+ _iterator.f();
1294
+ }
1295
+ }
1296
+ }, {
1297
+ key: "removeEventListener",
1298
+ value: function removeEventListener(elements, events) {
1299
+ elements = this.wrap(elements);
1300
+ events = this.wrap(events);
1301
+
1302
+ var _iterator3 = _createForOfIteratorHelper(elements),
1303
+ _step3;
1304
+
1305
+ try {
1306
+ for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
1307
+ var element = _step3.value;
1308
+
1309
+ var _iterator4 = _createForOfIteratorHelper(events),
1310
+ _step4;
1311
+
1312
+ try {
1313
+ for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
1314
+ var event = _step4.value;
1315
+
1316
+ if (element.namespaces && element.namespaces[event]) {
1317
+ element.removeEventListener(event.split('.')[0], element.namespaces[event]);
1318
+ delete element.namespaces[event];
1319
+ }
1320
+ }
1321
+ } catch (err) {
1322
+ _iterator4.e(err);
1323
+ } finally {
1324
+ _iterator4.f();
1325
+ }
1326
+ }
1327
+ } catch (err) {
1328
+ _iterator3.e(err);
1329
+ } finally {
1330
+ _iterator3.f();
1331
+ }
1332
+ }
1333
+ }, {
1334
+ key: "fadeOut",
1335
+ value: function fadeOut(elements, duration, callback) {
1336
+ var _this10 = this;
1337
+
1338
+ elements = this.wrap(elements);
1339
+
1340
+ var _iterator5 = _createForOfIteratorHelper(elements),
1341
+ _step5;
1342
+
1343
+ try {
1344
+ for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
1345
+ var element = _step5.value;
1346
+ element.style.opacity = 1;
1347
+ }
1348
+ } catch (err) {
1349
+ _iterator5.e(err);
1350
+ } finally {
1351
+ _iterator5.f();
1352
+ }
1353
+
1354
+ this.isFadeIn = false;
1355
+
1356
+ var step = 16.66666 / (duration || this.options.fadeSpeed),
1357
+ fade = function fade() {
1358
+ var currentOpacity = parseFloat(elements[0].style.opacity);
1359
+
1360
+ if ((currentOpacity -= step) < 0) {
1361
+ var _iterator6 = _createForOfIteratorHelper(elements),
1362
+ _step6;
1363
+
1364
+ try {
1365
+ for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
1366
+ var element = _step6.value;
1367
+ element.style.display = "none";
1368
+ element.style.opacity = '';
1369
+ }
1370
+ } catch (err) {
1371
+ _iterator6.e(err);
1372
+ } finally {
1373
+ _iterator6.f();
1374
+ }
1375
+
1376
+ callback && callback.call(_this10, elements);
1377
+ } else {
1378
+ var _iterator7 = _createForOfIteratorHelper(elements),
1379
+ _step7;
1380
+
1381
+ try {
1382
+ for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {
1383
+ var _element = _step7.value;
1384
+ _element.style.opacity = currentOpacity;
1385
+ }
1386
+ } catch (err) {
1387
+ _iterator7.e(err);
1388
+ } finally {
1389
+ _iterator7.f();
1390
+ }
1391
+
1392
+ requestAnimationFrame(fade);
1393
+ }
1394
+ };
1395
+
1396
+ fade();
1397
+ }
1398
+ }, {
1399
+ key: "fadeIn",
1400
+ value: function fadeIn(elements, duration, callback, display) {
1401
+ var _this11 = this;
1402
+
1403
+ elements = this.wrap(elements);
1404
+
1405
+ var _iterator8 = _createForOfIteratorHelper(elements),
1406
+ _step8;
1407
+
1408
+ try {
1409
+ for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {
1410
+ var element = _step8.value;
1411
+ element.style.opacity = 0;
1412
+ element.style.display = display || "block";
1413
+ }
1414
+ } catch (err) {
1415
+ _iterator8.e(err);
1416
+ } finally {
1417
+ _iterator8.f();
1418
+ }
1419
+
1420
+ this.isFadeIn = true;
1421
+
1422
+ var opacityTarget = parseFloat(elements[0].dataset.opacityTarget || 1),
1423
+ step = 16.66666 * opacityTarget / (duration || this.options.fadeSpeed),
1424
+ fade = function fade() {
1425
+ var currentOpacity = parseFloat(elements[0].style.opacity);
1426
+
1427
+ if (!((currentOpacity += step) > opacityTarget)) {
1428
+ var _iterator9 = _createForOfIteratorHelper(elements),
1429
+ _step9;
1430
+
1431
+ try {
1432
+ for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) {
1433
+ var element = _step9.value;
1434
+ element.style.opacity = currentOpacity;
1435
+ }
1436
+ } catch (err) {
1437
+ _iterator9.e(err);
1438
+ } finally {
1439
+ _iterator9.f();
1440
+ }
1441
+
1442
+ if (!_this11.isFadeIn) return;
1443
+ requestAnimationFrame(fade);
1444
+ } else {
1445
+ var _iterator10 = _createForOfIteratorHelper(elements),
1446
+ _step10;
1447
+
1448
+ try {
1449
+ for (_iterator10.s(); !(_step10 = _iterator10.n()).done;) {
1450
+ var _element2 = _step10.value;
1451
+ _element2.style.opacity = '';
1452
+ }
1453
+ } catch (err) {
1454
+ _iterator10.e(err);
1455
+ } finally {
1456
+ _iterator10.f();
1457
+ }
1458
+
1459
+ callback && callback.call(_this11, elements);
1460
+ }
1461
+ };
1462
+
1463
+ fade();
1464
+ }
1465
+ }, {
1466
+ key: "hide",
1467
+ value: function hide(elements) {
1468
+ elements = this.wrap(elements);
1469
+
1470
+ var _iterator11 = _createForOfIteratorHelper(elements),
1471
+ _step11;
1472
+
1473
+ try {
1474
+ for (_iterator11.s(); !(_step11 = _iterator11.n()).done;) {
1475
+ var element = _step11.value;
1476
+ element.dataset.initialDisplay = element.style.display;
1477
+ element.style.display = 'none';
1478
+ }
1479
+ } catch (err) {
1480
+ _iterator11.e(err);
1481
+ } finally {
1482
+ _iterator11.f();
1483
+ }
1484
+ }
1485
+ }, {
1486
+ key: "show",
1487
+ value: function show(elements, display) {
1488
+ elements = this.wrap(elements);
1489
+
1490
+ var _iterator12 = _createForOfIteratorHelper(elements),
1491
+ _step12;
1492
+
1493
+ try {
1494
+ for (_iterator12.s(); !(_step12 = _iterator12.n()).done;) {
1495
+ var element = _step12.value;
1496
+ element.style.display = element.dataset.initialDisplay || display || 'block';
1497
+ }
1498
+ } catch (err) {
1499
+ _iterator12.e(err);
1500
+ } finally {
1501
+ _iterator12.f();
1502
+ }
1503
+ }
1504
+ }, {
1505
+ key: "wrap",
1506
+ value: function wrap(input) {
1507
+ return typeof input[Symbol.iterator] === 'function' && typeof input !== 'string' ? input : [input];
1508
+ }
1509
+ }, {
1510
+ key: "on",
1511
+ value: function on(events, callback) {
1512
+ events = this.wrap(events);
1513
+
1514
+ var _iterator13 = _createForOfIteratorHelper(this.elements),
1515
+ _step13;
1516
+
1517
+ try {
1518
+ for (_iterator13.s(); !(_step13 = _iterator13.n()).done;) {
1519
+ var element = _step13.value;
1520
+
1521
+ if (!element.fullyNamespacedEvents) {
1522
+ element.fullyNamespacedEvents = {};
1523
+ }
1524
+
1525
+ var _iterator14 = _createForOfIteratorHelper(events),
1526
+ _step14;
1527
+
1528
+ try {
1529
+ for (_iterator14.s(); !(_step14 = _iterator14.n()).done;) {
1530
+ var event = _step14.value;
1531
+ element.fullyNamespacedEvents[event] = callback;
1532
+ element.addEventListener(event, callback);
1533
+ }
1534
+ } catch (err) {
1535
+ _iterator14.e(err);
1536
+ } finally {
1537
+ _iterator14.f();
1538
+ }
1539
+ }
1540
+ } catch (err) {
1541
+ _iterator13.e(err);
1542
+ } finally {
1543
+ _iterator13.f();
1544
+ }
1545
+
1546
+ return this;
1547
+ }
1548
+ }, {
1549
+ key: "off",
1550
+ value: function off(events) {
1551
+ events = this.wrap(events);
1552
+
1553
+ var _iterator15 = _createForOfIteratorHelper(this.elements),
1554
+ _step15;
1555
+
1556
+ try {
1557
+ for (_iterator15.s(); !(_step15 = _iterator15.n()).done;) {
1558
+ var element = _step15.value;
1559
+
1560
+ var _iterator16 = _createForOfIteratorHelper(events),
1561
+ _step16;
1562
+
1563
+ try {
1564
+ for (_iterator16.s(); !(_step16 = _iterator16.n()).done;) {
1565
+ var event = _step16.value;
1566
+
1567
+ if (typeof element.fullyNamespacedEvents !== 'undefined' && event in element.fullyNamespacedEvents) {
1568
+ element.removeEventListener(event, element.fullyNamespacedEvents[event]);
1569
+ }
1570
+ }
1571
+ } catch (err) {
1572
+ _iterator16.e(err);
1573
+ } finally {
1574
+ _iterator16.f();
1575
+ }
1576
+ }
1577
+ } catch (err) {
1578
+ _iterator15.e(err);
1579
+ } finally {
1580
+ _iterator15.f();
1581
+ }
1582
+
1583
+ return this;
1584
+ } // api
1585
+
1586
+ }, {
1587
+ key: "open",
1588
+ value: function open(elem) {
1589
+ elem = elem || this.elements[0];
1590
+
1591
+ if (typeof jQuery !== "undefined" && elem instanceof jQuery) {
1592
+ elem = elem.get(0);
1593
+ }
1594
+
1595
+ this.initialImageIndex = this.elements.indexOf(elem);
1596
+
1597
+ if (this.initialImageIndex > -1) {
1598
+ this.openImage(elem);
1599
+ }
1600
+ }
1601
+ }, {
1602
+ key: "next",
1603
+ value: function next() {
1604
+ this.loadImage(1);
1605
+ }
1606
+ }, {
1607
+ key: "prev",
1608
+ value: function prev() {
1609
+ this.loadImage(-1);
1610
+ } //close is exposed anyways..
1611
+
1612
+ }, {
1613
+ key: "destroy",
1614
+ value: function destroy() {
1615
+ //remove all custom event listeners from elements
1616
+ this.off(['close.' + this.eventNamespace, 'closed.' + this.eventNamespace, 'nextImageLoaded.' + this.eventNamespace, 'prevImageLoaded.' + this.eventNamespace, 'change.' + this.eventNamespace, 'nextDone.' + this.eventNamespace, 'prevDone.' + this.eventNamespace, 'error.' + this.eventNamespace, 'changed.' + this.eventNamespace, 'next.' + this.eventNamespace, 'prev.' + this.eventNamespace, 'show.' + this.eventNamespace, 'shown.' + this.eventNamespace]);
1617
+ this.removeEventListener(this.elements, 'click.' + this.eventNamespace);
1618
+ this.removeEventListener(document, 'focusin.' + this.eventNamespace);
1619
+ this.removeEventListener(document.body, 'contextmenu.' + this.eventNamespace);
1620
+ this.removeEventListener(document.body, 'keyup.' + this.eventNamespace);
1621
+ this.removeEventListener(this.domNodes.navigation.getElementsByTagName('button'), 'click.' + this.eventNamespace);
1622
+ this.removeEventListener(this.domNodes.closeButton, 'click.' + this.eventNamespace);
1623
+ this.removeEventListener(window, 'resize.' + this.eventNamespace);
1624
+ this.removeEventListener(window, 'hashchange.' + this.eventNamespace);
1625
+ this.close();
1626
+
1627
+ if (this.isOpen) {
1628
+ document.body.removeChild(this.domNodes.wrapper);
1629
+ document.body.removeChild(this.domNodes.overlay);
1630
+ }
1631
+
1632
+ this.elements = null;
1633
+ }
1634
+ }, {
1635
+ key: "refresh",
1636
+ value: function refresh() {
1637
+ if (!this.initialSelector) {
1638
+ throw 'refreshing only works when you initialize using a selector!';
1639
+ }
1640
+
1641
+ var options = this.options,
1642
+ selector = this.initialSelector;
1643
+ this.destroy();
1644
+ this.constructor(selector, options);
1645
+ return this;
1646
+ }
1647
+ }, {
1648
+ key: "hash",
1649
+ get: function get() {
1650
+ return window.location.hash.substring(1);
1651
+ }
1652
+ }]);
1653
+
1654
+ return SimpleLightbox;
1655
+ }();
1656
+
1657
+ var _default = SimpleLightbox;
1658
+ exports["default"] = _default;
1659
+ global.SimpleLightbox = SimpleLightbox;
1660
+
1661
+ }).call(this)}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
1662
+ },{}]},{},[1]);
js/dist/simple-lightbox.jquery.min.js ADDED
@@ -0,0 +1 @@
 
1
+ !function s(a,r,l){function d(e,t){if(!r[e]){if(!a[e]){var o="function"==typeof require&&require;if(!t&&o)return o(e,!0);if(c)return c(e,!0);var i=new Error("Cannot find module '"+e+"'");throw i.code="MODULE_NOT_FOUND",i}var n=r[e]={exports:{}};a[e][0].call(n.exports,function(t){return d(a[e][1][t]||t)},n,n.exports,s,a,r,l)}return r[e].exports}for(var c="function"==typeof require&&require,t=0;t<l.length;t++)d(l[t]);return d}({1:[function(t,e,o){"use strict";var i;t("./simple-lightbox"),i=jQuery,window,document,i.fn.simpleLightbox=function(t){return this.length?new SimpleLightbox(this.get(),t):null}},{"./simple-lightbox":2}],2:[function(t,e,n){(function(o){(function(){"use strict";function h(t,e){var o;if("undefined"==typeof Symbol||null==t[Symbol.iterator]){if(Array.isArray(t)||(o=function(t,e){if(!t)return;if("string"==typeof t)return l(t,e);var o=Object.prototype.toString.call(t).slice(8,-1);"Object"===o&&t.constructor&&(o=t.constructor.name);if("Map"===o||"Set"===o)return Array.from(t);if("Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o))return l(t,e)}(t))||e&&t&&"number"==typeof t.length){o&&(t=o);var i=0,n=function(){};return{s:n,n:function(){return i>=t.length?{done:!0}:{done:!1,value:t[i++]}},e:function(t){throw t},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var s,a=!0,r=!1;return{s:function(){o=t[Symbol.iterator]()},n:function(){var t=o.next();return a=t.done,t},e:function(t){r=!0,s=t},f:function(){try{a||null==o.return||o.return()}finally{if(r)throw s}}}}function l(t,e){(null==e||e>t.length)&&(e=t.length);for(var o=0,i=new Array(e);o<e;o++)i[o]=t[o];return i}function i(t,e){for(var o=0;o<e.length;o++){var i=e[o];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function s(t,e,o){return e in t?Object.defineProperty(t,e,{value:o,enumerable:!0,configurable:!0,writable:!0}):t[e]=o,t}Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var t=function(){function n(t,e){var o=this;if(!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,n),s(this,"defaultOptions",{sourceAttr:"href",overlay:!0,spinner:!0,nav:!0,navText:["&lsaquo;","&rsaquo;"],captions:!0,captionDelay:0,captionSelector:"img",captionType:"attr",captionsData:"title",captionPosition:"bottom",captionClass:"",close:!0,closeText:"&times;",swipeClose:!0,showCounter:!0,fileExt:"png|jpg|jpeg|gif|webp",animationSlide:!0,animationSpeed:250,preloading:!0,enableKeyboard:!0,loop:!0,rel:!1,docClose:!0,swipeTolerance:50,className:"simple-lightbox",widthRatio:.8,heightRatio:.9,scaleImageToRatio:!1,disableRightClick:!1,disableScroll:!0,alertError:!0,alertErrorMessage:"Image not found, next image will be loaded",additionalHtml:!1,history:!0,throttleInterval:0,doubleTapZoom:2,maxZoom:10,htmlClass:"has-lightbox",rtl:!1,fixedClass:"sl-fixed",fadeSpeed:300,uniqueImages:!0,focus:!0}),s(this,"transitionPrefix",void 0),s(this,"transitionCapable",!1),s(this,"isTouchDevice","ontouchstart"in window),s(this,"initialLocationHash",void 0),s(this,"pushStateSupport","pushState"in history),s(this,"isOpen",!1),s(this,"isAnimating",!1),s(this,"isClosing",!1),s(this,"isFadeIn",!1),s(this,"urlChangedOnce",!1),s(this,"hashReseted",!1),s(this,"historyHasChanges",!1),s(this,"historyUpdateTimeout",null),s(this,"currentImage",void 0),s(this,"eventNamespace","simplelightbox"),s(this,"domNodes",{}),s(this,"loadedImages",[]),s(this,"initialImageIndex",0),s(this,"currentImageIndex",0),s(this,"initialSelector",null),s(this,"globalScrollbarWidth",0),s(this,"controlCoordinates",{swipeDiff:0,swipeYDiff:0,swipeStart:0,swipeEnd:0,swipeYStart:0,swipeYEnd:0,mousedown:!1,imageLeft:0,zoomed:!1,containerHeight:0,containerWidth:0,containerOffsetX:0,containerOffsetY:0,imgHeight:0,imgWidth:0,capture:!1,initialOffsetX:0,initialOffsetY:0,initialPointerOffsetX:0,initialPointerOffsetY:0,initialPointerOffsetX2:0,initialPointerOffsetY2:0,initialScale:1,initialPinchDistance:0,pointerOffsetX:0,pointerOffsetY:0,pointerOffsetX2:0,pointerOffsetY2:0,targetOffsetX:0,targetOffsetY:0,targetScale:0,pinchOffsetX:0,pinchOffsetY:0,limitOffsetX:0,limitOffsetY:0,scaleDifference:0,targetPinchDistance:0,touchCount:0,doubleTapped:!1,touchmoveCount:0}),this.options=Object.assign(this.defaultOptions,e),"string"==typeof t?(this.initialSelector=t,this.elements=Array.from(document.querySelectorAll(t))):this.elements=void 0!==t.length&&0<t.length?Array.from(t):[t],this.relatedElements=[],this.transitionPrefix=this.calculateTransitionPrefix(),this.transitionCapable=!1!==this.transitionPrefix,this.initialLocationHash=this.hash,this.options.rel&&(this.elements=this.getRelated(this.options.rel)),this.options.uniqueImages){var i=[];this.elements=Array.from(this.elements).filter(function(t){var e=t.getAttribute(o.options.sourceAttr);return-1===i.indexOf(e)&&(i.push(e),!0)})}this.createDomNodes(),this.options.close&&this.domNodes.wrapper.appendChild(this.domNodes.closeButton),this.options.nav&&this.domNodes.wrapper.appendChild(this.domNodes.navigation),this.options.spinner&&this.domNodes.wrapper.appendChild(this.domNodes.spinner),this.addEventListener(this.elements,"click."+this.eventNamespace,function(t){if(o.isValidLink(t.currentTarget)){if(t.preventDefault(),o.isAnimating)return!1;o.initialImageIndex=o.elements.indexOf(t.currentTarget),o.openImage(t.currentTarget)}}),this.options.docClose&&this.addEventListener(this.domNodes.wrapper,["click."+this.eventNamespace,"touchstart."+this.eventNamespace],function(t){o.isOpen&&t.target===t.currentTarget&&o.close()}),this.options.disableRightClick&&this.addEventListener(document.body,"contextmenu."+this.eventNamespace,function(t){t.target.classList.contains("sl-overlay")&&t.preventDefault()}),this.options.enableKeyboard&&this.addEventListener(document.body,"keyup."+this.eventNamespace,this.throttle(function(t){if(o.controlCoordinates.swipeDiff=0,o.isAnimating&&"Escape"===t.key)return o.currentImage.setAttribute("src",""),o.isAnimating=!1,o.close();o.isOpen&&(t.preventDefault(),"Escape"===t.key&&o.close(),!o.isAnimating&&-1<["ArrowLeft","ArrowRight"].indexOf(t.key)&&o.loadImage("ArrowRight"===t.key?1:-1))},this.options.throttleInterval)),this.addEvents()}var t,e,o;return t=n,(e=[{key:"createDomNodes",value:function(){this.domNodes.overlay=document.createElement("div"),this.domNodes.overlay.classList.add("sl-overlay"),this.domNodes.overlay.dataset.opacityTarget=".7",this.domNodes.closeButton=document.createElement("button"),this.domNodes.closeButton.classList.add("sl-close"),this.domNodes.closeButton.innerHTML=this.options.closeText,this.domNodes.spinner=document.createElement("div"),this.domNodes.spinner.classList.add("sl-spinner"),this.domNodes.spinner.innerHTML="<div></div>",this.domNodes.navigation=document.createElement("div"),this.domNodes.navigation.classList.add("sl-navigation"),this.domNodes.navigation.innerHTML='<button class="sl-prev">'.concat(this.options.navText[0],'</button><button class="sl-next">').concat(this.options.navText[1],"</button>"),this.domNodes.counter=document.createElement("div"),this.domNodes.counter.classList.add("sl-counter"),this.domNodes.counter.innerHTML='<span class="sl-current"></span>/<span class="sl-total"></span>',this.domNodes.caption=document.createElement("div"),this.domNodes.caption.classList.add("sl-caption","pos-"+this.options.captionPosition),this.options.captionClass&&this.domNodes.caption.classList.add(this.options.captionClass),this.domNodes.image=document.createElement("div"),this.domNodes.image.classList.add("sl-image"),this.domNodes.wrapper=document.createElement("div"),this.domNodes.wrapper.classList.add("sl-wrapper"),this.domNodes.wrapper.setAttribute("tabindex",-1),this.domNodes.wrapper.setAttribute("role","dialog"),this.domNodes.wrapper.setAttribute("aria-hidden",!1),this.options.className&&this.domNodes.wrapper.classList.add(this.options.className),this.options.rtl&&this.domNodes.wrapper.classList.add("sl-dir-rtl")}},{key:"throttle",value:function(t,e){var o;return function(){o||(t.apply(this,arguments),o=!0,setTimeout(function(){return o=!1},e))}}},{key:"isValidLink",value:function(t){return!this.options.fileExt||"pathname"in t&&new RegExp("("+this.options.fileExt+")$","i").test(t.pathname)}},{key:"calculateTransitionPrefix",value:function(){var t=(document.body||document.documentElement).style;return"transition"in t?"":"WebkitTransition"in t?"-webkit-":"MozTransition"in t?"-moz-":"OTransition"in t&&"-o"}},{key:"toggleScrollbar",value:function(t){var i=0,e=[].slice.call(document.querySelectorAll("."+this.options.fixedClass));if("hide"===t){var o=window.innerWidth;if(!o){var n=document.documentElement.getBoundingClientRect();o=n.right-Math.abs(n.left)}if(document.body.clientWidth<o){var s=document.createElement("div"),a=parseInt(document.body.style.paddingRight||0,10);s.classList.add("sl-scrollbar-measure"),document.body.appendChild(s),i=s.offsetWidth-s.clientWidth,document.body.removeChild(s),document.body.dataset.originalPaddingRight=a,0<i&&(document.body.classList.add("hidden-scroll"),document.body.style.paddingRight=a+i+"px",e.forEach(function(t){var e=t.style.paddingRight,o=window.getComputedStyle(t)["padding-right"];t.dataset.originalPaddingRight=e,t.style.paddingRight="".concat(parseFloat(o)+i,"px")}))}}else document.body.classList.remove("hidden-scroll"),document.body.style.paddingRight=document.body.dataset.originalPaddingRight,e.forEach(function(t){var e=t.dataset.originalPaddingRight;void 0!==e&&(t.style.paddingRight=e)});return i}},{key:"close",value:function(){var t=this;if(!this.isOpen||this.isAnimating||this.isClosing)return!1;this.isClosing=!0;var e=this.relatedElements[this.currentImageIndex];for(var o in e.dispatchEvent(new Event("close.simplelightbox")),this.options.history&&(this.historyHasChanges=!1,this.hashReseted||this.resetHash()),this.removeEventListener(document,"focusin."+this.eventNamespace),this.fadeOut(document.querySelectorAll(".sl-image img, .sl-overlay, .sl-close, .sl-navigation, .sl-image .sl-caption, .sl-counter"),this.options.fadeSpeed,function(){t.options.disableScroll&&t.toggleScrollbar("show"),t.options.htmlClass&&""!==t.options.htmlClass&&document.querySelector("html").classList.remove(t.options.htmlClass),document.body.removeChild(t.domNodes.wrapper),document.body.removeChild(t.domNodes.overlay),t.domNodes.additionalHtml=null,e.dispatchEvent(new Event("closed.simplelightbox")),t.isClosing=!1}),this.currentImage=null,this.isOpen=!1,this.isAnimating=!1,this.controlCoordinates)this.controlCoordinates[o]=0;this.controlCoordinates.mousedown=!1,this.controlCoordinates.zoomed=!1,this.controlCoordinates.capture=!1,this.controlCoordinates.initialScale=this.minMax(1,1,this.options.maxZoom),this.controlCoordinates.doubleTapped=!1}},{key:"preload",value:function(){var o=this,i=this.currentImageIndex,t=this.relatedElements.length,e=i+1<0?t-1:t-1<=i+1?0:i+1,n=i-1<0?t-1:t-1<=i-1?0:i-1,s=new Image,a=new Image;s.addEventListener("load",function(t){var e=t.target.getAttribute("src");-1===o.loadedImages.indexOf(e)&&o.loadedImages.push(e),o.relatedElements[i].dispatchEvent(new Event("nextImageLoaded."+o.eventNamespace))}),s.setAttribute("src",this.relatedElements[e].getAttribute(this.options.sourceAttr)),a.addEventListener("load",function(t){var e=t.target.getAttribute("src");-1===o.loadedImages.indexOf(e)&&o.loadedImages.push(e),o.relatedElements[i].dispatchEvent(new Event("prevImageLoaded."+o.eventNamespace))}),a.setAttribute("src",this.relatedElements[n].getAttribute(this.options.sourceAttr))}},{key:"loadImage",value:function(t){var e=this,o=t;this.options.rtl&&(t=-t),this.relatedElements[this.currentImageIndex].dispatchEvent(new Event("change."+this.eventNamespace)),this.relatedElements[this.currentImageIndex].dispatchEvent(new Event((1===t?"next":"prev")+"."+this.eventNamespace));var i=this.currentImageIndex+t;if(this.isAnimating||(i<0||i>=this.relatedElements.length)&&!1===this.options.loop)return!1;this.currentImageIndex=i<0?this.relatedElements.length-1:i>this.relatedElements.length-1?0:i,this.domNodes.counter.querySelector(".sl-current").innerHTML=this.currentImageIndex+1,this.options.animationSlide&&this.slide(this.options.animationSpeed/1e3,-100*o-this.controlCoordinates.swipeDiff+"px"),this.fadeOut(this.domNodes.image,this.options.fadeSpeed,function(){e.isAnimating=!0,e.isClosing?e.isAnimating=!1:setTimeout(function(){var t=e.relatedElements[e.currentImageIndex];e.currentImage.setAttribute("src",t.getAttribute(e.options.sourceAttr)),-1===e.loadedImages.indexOf(t.getAttribute(e.options.sourceAttr))&&e.show(e.domNodes.spinner),e.domNodes.image.contains(e.domNodes.caption)&&e.domNodes.image.removeChild(e.domNodes.caption),e.adjustImage(o),e.options.preloading&&e.preload()},100)})}},{key:"adjustImage",value:function(a){var r=this;if(!this.currentImage)return!1;var t=new Image,l=window.innerWidth*this.options.widthRatio,d=window.innerHeight*this.options.heightRatio;t.setAttribute("src",this.currentImage.getAttribute("src")),this.currentImage.dataset.scale=1,this.currentImage.dataset.translateX=0,this.currentImage.dataset.translateY=0,this.zoomPanElement(0,0,1),t.addEventListener("error",function(t){r.relatedElements[r.currentImageIndex].dispatchEvent(new Event("error."+r.eventNamespace)),r.isAnimating=!1,r.isOpen=!1,r.domNodes.spinner.style.display="none";var e=1===a||-1===a;if(r.initialImageIndex===r.currentImageIndex&&e)return r.close();r.options.alertError&&alert(r.options.alertErrorMessage),r.loadImage(e?a:1)}),t.addEventListener("load",function(t){void 0!==a&&(r.relatedElements[r.currentImageIndex].dispatchEvent(new Event("changed."+r.eventNamespace)),r.relatedElements[r.currentImageIndex].dispatchEvent(new Event((1===a?"nextDone":"prevDone")+"."+r.eventNamespace))),r.options.history&&r.updateURL(),-1===r.loadedImages.indexOf(r.currentImage.getAttribute("src"))&&r.loadedImages.push(r.currentImage.getAttribute("src"));var e,o,i=t.target.width,n=t.target.height;if(r.options.scaleImageToRatio||l<i||d<n){var s=l/d<i/n?i/l:n/d;i/=s,n/=s}r.domNodes.image.style.top=(window.innerHeight-n)/2+"px",r.domNodes.image.style.left=(window.innerWidth-i-r.globalScrollbarWidth)/2+"px",r.domNodes.image.style.width=i+"px",r.domNodes.image.style.height=n+"px",r.domNodes.spinner.style.display="none",r.options.focus&&r.forceFocus(),r.fadeIn(r.currentImage,r.options.fadeSpeed,function(){r.options.focus&&r.domNodes.wrapper.focus()}),r.isOpen=!0,"string"==typeof r.options.captionSelector?e="self"===r.options.captionSelector?r.relatedElements[r.currentImageIndex]:r.relatedElements[r.currentImageIndex].querySelector(r.options.captionSelector):"function"==typeof r.options.captionSelector&&(e=r.options.captionSelector(r.relatedElements[r.currentImageIndex])),r.options.captions&&e&&(o="data"===r.options.captionType?e.dataset[r.options.captionsData]:"text"===r.options.captionType?e.innerHTML:e.getAttribute(r.options.captionsData)),r.options.loop||(0===r.currentImageIndex&&r.hide(r.domNodes.navigation.querySelector(".sl-prev")),r.currentImageIndex>=r.relatedElements.length-1&&r.hide(r.domNodes.navigation.querySelector(".sl-next")),0<r.currentImageIndex&&r.show(r.domNodes.navigation.querySelector(".sl-prev")),r.currentImageIndex<r.relatedElements.length-1&&r.show(r.domNodes.navigation.querySelector(".sl-next"))),1===r.relatedElements.length?r.hide(r.domNodes.navigation.querySelectorAll(".sl-prev, .sl-next")):r.show(r.domNodes.navigation.querySelectorAll(".sl-prev, .sl-next")),1===a||-1===a?(r.options.animationSlide&&(r.slide(0,100*a+"px"),setTimeout(function(){r.slide(r.options.animationSpeed/1e3,"0px")},50)),r.fadeIn(r.domNodes.image,r.options.fadeSpeed,function(){r.isAnimating=!1,r.setCaption(o,i)})):(r.isAnimating=!1,r.setCaption(o,i)),r.options.additionalHtml&&!r.domNodes.additionalHtml&&(r.domNodes.additionalHtml=document.createElement("div"),r.domNodes.additionalHtml.classList.add("sl-additional-html"),r.domNodes.additionalHtml.innerHTML=r.options.additionalHtml,r.domNodes.image.appendChild(r.domNodes.additionalHtml))})}},{key:"zoomPanElement",value:function(t,e,o){this.currentImage.style[this.transitionPrefix+"transform"]="translate("+t+","+e+") scale("+o+")"}},{key:"minMax",value:function(t,e,o){return t<e?e:o<t?o:t}},{key:"setZoomData",value:function(t,e,o){this.currentImage.dataset.scale=t,this.currentImage.dataset.translateX=e,this.currentImage.dataset.translateY=o}},{key:"hashchangeHandler",value:function(){this.isOpen&&this.hash===this.initialLocationHash&&(this.hashReseted=!0,this.close())}},{key:"addEvents",value:function(){var o=this;this.addEventListener(window,"resize."+this.eventNamespace,function(t){o.isOpen&&o.adjustImage()}),this.addEventListener(this.domNodes.closeButton,["click."+this.eventNamespace,"touchstart."+this.eventNamespace],this.close.bind(this)),this.options.history&&setTimeout(function(){o.addEventListener(window,"hashchange."+o.eventNamespace,function(t){o.isOpen&&o.hashchangeHandler()})},40),this.addEventListener(this.domNodes.navigation.getElementsByTagName("button"),"click."+this.eventNamespace,function(t){if(!t.currentTarget.tagName.match(/button/i))return!0;t.preventDefault(),o.controlCoordinates.swipeDiff=0,o.loadImage(t.currentTarget.classList.contains("sl-next")?1:-1)}),this.addEventListener(this.domNodes.image,["touchstart."+this.eventNamespace,"mousedown."+this.eventNamespace],function(t){if("A"===t.target.tagName&&"touchstart"===t.type)return!0;if("mousedown"===t.type)o.controlCoordinates.initialPointerOffsetX=t.clientX,o.controlCoordinates.initialPointerOffsetY=t.clientY,o.controlCoordinates.containerHeight=o.getDimensions(o.domNodes.image).height,o.controlCoordinates.containerWidth=o.getDimensions(o.domNodes.image).width,o.controlCoordinates.imgHeight=o.getDimensions(o.currentImage).height,o.controlCoordinates.imgWidth=o.getDimensions(o.currentImage).width,o.controlCoordinates.containerOffsetX=o.domNodes.image.offsetLeft,o.controlCoordinates.containerOffsetY=o.domNodes.image.offsetTop,o.controlCoordinates.initialOffsetX=parseFloat(o.currentImage.dataset.translateX),o.controlCoordinates.initialOffsetY=parseFloat(o.currentImage.dataset.translateY),o.controlCoordinates.capture=!0;else{if(o.controlCoordinates.touchCount=t.touches.length,o.controlCoordinates.initialPointerOffsetX=t.touches[0].clientX,o.controlCoordinates.initialPointerOffsetY=t.touches[0].clientY,o.controlCoordinates.containerHeight=o.getDimensions(o.domNodes.image).height,o.controlCoordinates.containerWidth=o.getDimensions(o.domNodes.image).width,o.controlCoordinates.imgHeight=o.getDimensions(o.currentImage).height,o.controlCoordinates.imgWidth=o.getDimensions(o.currentImage).width,o.controlCoordinates.containerOffsetX=o.domNodes.image.offsetLeft,o.controlCoordinates.containerOffsetY=o.domNodes.image.offsetTop,1===o.controlCoordinates.touchCount){if(o.controlCoordinates.doubleTapped)return o.currentImage.classList.add("sl-transition"),o.controlCoordinates.zoomed?(o.controlCoordinates.initialScale=1,o.setZoomData(o.controlCoordinates.initialScale,0,0),o.zoomPanElement("0px","0px",o.controlCoordinates.initialScale),o.controlCoordinates.zoomed=!1):(o.controlCoordinates.initialScale=o.options.doubleTapZoom,o.setZoomData(o.controlCoordinates.initialScale,0,0),o.zoomPanElement("0px","0px",o.controlCoordinates.initialScale),o.domNodes.caption.style.opacity||"none"===o.domNodes.caption.style.display||o.fadeOut(o.domNodes.caption,o.options.fadeSpeed),o.controlCoordinates.zoomed=!0),setTimeout(function(){o.currentImage&&o.currentImage.classList.remove("sl-transition")},200),!1;o.controlCoordinates.doubleTapped=!0,setTimeout(function(){o.controlCoordinates.doubleTapped=!1},300),o.controlCoordinates.initialOffsetX=parseFloat(o.currentImage.dataset.translateX),o.controlCoordinates.initialOffsetY=parseFloat(o.currentImage.dataset.translateY)}else 2===o.controlCoordinates.touchCount&&(o.controlCoordinates.initialPointerOffsetX2=t.touches[1].clientX,o.controlCoordinates.initialPointerOffsetY2=t.touches[1].clientY,o.controlCoordinates.initialOffsetX=parseFloat(o.currentImage.dataset.translateX),o.controlCoordinates.initialOffsetY=parseFloat(o.currentImage.dataset.translateY),o.controlCoordinates.pinchOffsetX=(o.controlCoordinates.initialPointerOffsetX+o.controlCoordinates.initialPointerOffsetX2)/2,o.controlCoordinates.pinchOffsetY=(o.controlCoordinates.initialPointerOffsetY+o.controlCoordinates.initialPointerOffsetY2)/2,o.controlCoordinates.initialPinchDistance=Math.sqrt((o.controlCoordinates.initialPointerOffsetX-o.controlCoordinates.initialPointerOffsetX2)*(o.controlCoordinates.initialPointerOffsetX-o.controlCoordinates.initialPointerOffsetX2)+(o.controlCoordinates.initialPointerOffsetY-o.controlCoordinates.initialPointerOffsetY2)*(o.controlCoordinates.initialPointerOffsetY-o.controlCoordinates.initialPointerOffsetY2)));o.controlCoordinates.capture=!0}return!!o.controlCoordinates.mousedown||(o.transitionCapable&&(o.controlCoordinates.imageLeft=parseInt(o.domNodes.image.style.left,10)),o.controlCoordinates.mousedown=!0,o.controlCoordinates.swipeDiff=0,o.controlCoordinates.swipeYDiff=0,o.controlCoordinates.swipeStart=t.pageX||t.touches[0].pageX,o.controlCoordinates.swipeYStart=t.pageY||t.touches[0].pageY,!1)}),this.addEventListener(this.domNodes.image,["touchmove."+this.eventNamespace,"mousemove."+this.eventNamespace,"MSPointerMove"],function(t){if(!o.controlCoordinates.mousedown)return!0;if(t.preventDefault(),"touchmove"===t.type){if(!1===o.controlCoordinates.capture)return!1;o.controlCoordinates.pointerOffsetX=t.touches[0].clientX,o.controlCoordinates.pointerOffsetY=t.touches[0].clientY,o.controlCoordinates.touchCount=t.touches.length,o.controlCoordinates.touchmoveCount++,1<o.controlCoordinates.touchCount?(o.controlCoordinates.pointerOffsetX2=t.touches[1].clientX,o.controlCoordinates.pointerOffsetY2=t.touches[1].clientY,o.controlCoordinates.targetPinchDistance=Math.sqrt((o.controlCoordinates.pointerOffsetX-o.controlCoordinates.pointerOffsetX2)*(o.controlCoordinates.pointerOffsetX-o.controlCoordinates.pointerOffsetX2)+(o.controlCoordinates.pointerOffsetY-o.controlCoordinates.pointerOffsetY2)*(o.controlCoordinates.pointerOffsetY-o.controlCoordinates.pointerOffsetY2)),null===o.controlCoordinates.initialPinchDistance&&(o.controlCoordinates.initialPinchDistance=o.controlCoordinates.targetPinchDistance),1<=Math.abs(o.controlCoordinates.initialPinchDistance-o.controlCoordinates.targetPinchDistance)&&(o.controlCoordinates.targetScale=o.minMax(o.controlCoordinates.targetPinchDistance/o.controlCoordinates.initialPinchDistance*o.controlCoordinates.initialScale,1,o.options.maxZoom),o.controlCoordinates.limitOffsetX=(o.controlCoordinates.imgWidth*o.controlCoordinates.targetScale-o.controlCoordinates.containerWidth)/2,o.controlCoordinates.limitOffsetY=(o.controlCoordinates.imgHeight*o.controlCoordinates.targetScale-o.controlCoordinates.containerHeight)/2,o.controlCoordinates.scaleDifference=o.controlCoordinates.targetScale-o.controlCoordinates.initialScale,o.controlCoordinates.targetOffsetX=o.controlCoordinates.imgWidth*o.controlCoordinates.targetScale<=o.controlCoordinates.containerWidth?0:o.minMax(o.controlCoordinates.initialOffsetX-(o.controlCoordinates.pinchOffsetX-o.controlCoordinates.containerOffsetX-o.controlCoordinates.containerWidth/2-o.controlCoordinates.initialOffsetX)/(o.controlCoordinates.targetScale-o.controlCoordinates.scaleDifference)*o.controlCoordinates.scaleDifference,-1*o.controlCoordinates.limitOffsetX,o.controlCoordinates.limitOffsetX),o.controlCoordinates.targetOffsetY=o.controlCoordinates.imgHeight*o.controlCoordinates.targetScale<=o.controlCoordinates.containerHeight?0:o.minMax(o.controlCoordinates.initialOffsetY-(o.controlCoordinates.pinchOffsetY-o.controlCoordinates.containerOffsetY-o.controlCoordinates.containerHeight/2-o.controlCoordinates.initialOffsetY)/(o.controlCoordinates.targetScale-o.controlCoordinates.scaleDifference)*o.controlCoordinates.scaleDifference,-1*o.controlCoordinates.limitOffsetY,o.controlCoordinates.limitOffsetY),o.zoomPanElement(o.controlCoordinates.targetOffsetX+"px",o.controlCoordinates.targetOffsetY+"px",o.controlCoordinates.targetScale),1<o.controlCoordinates.targetScale&&(o.controlCoordinates.zoomed=!0,o.domNodes.caption.style.opacity||"none"===o.domNodes.caption.style.display||o.fadeOut(o.domNodes.caption,o.options.fadeSpeed)),o.controlCoordinates.initialPinchDistance=o.controlCoordinates.targetPinchDistance,o.controlCoordinates.initialScale=o.controlCoordinates.targetScale,o.controlCoordinates.initialOffsetX=o.controlCoordinates.targetOffsetX,o.controlCoordinates.initialOffsetY=o.controlCoordinates.targetOffsetY)):(o.controlCoordinates.targetScale=o.controlCoordinates.initialScale,o.controlCoordinates.limitOffsetX=(o.controlCoordinates.imgWidth*o.controlCoordinates.targetScale-o.controlCoordinates.containerWidth)/2,o.controlCoordinates.limitOffsetY=(o.controlCoordinates.imgHeight*o.controlCoordinates.targetScale-o.controlCoordinates.containerHeight)/2,o.controlCoordinates.targetOffsetX=o.controlCoordinates.imgWidth*o.controlCoordinates.targetScale<=o.controlCoordinates.containerWidth?0:o.minMax(o.controlCoordinates.pointerOffsetX-(o.controlCoordinates.initialPointerOffsetX-o.controlCoordinates.initialOffsetX),-1*o.controlCoordinates.limitOffsetX,o.controlCoordinates.limitOffsetX),o.controlCoordinates.targetOffsetY=o.controlCoordinates.imgHeight*o.controlCoordinates.targetScale<=o.controlCoordinates.containerHeight?0:o.minMax(o.controlCoordinates.pointerOffsetY-(o.controlCoordinates.initialPointerOffsetY-o.controlCoordinates.initialOffsetY),-1*o.controlCoordinates.limitOffsetY,o.controlCoordinates.limitOffsetY),Math.abs(o.controlCoordinates.targetOffsetX)===Math.abs(o.controlCoordinates.limitOffsetX)&&(o.controlCoordinates.initialOffsetX=o.controlCoordinates.targetOffsetX,o.controlCoordinates.initialPointerOffsetX=o.controlCoordinates.pointerOffsetX),Math.abs(o.controlCoordinates.targetOffsetY)===Math.abs(o.controlCoordinates.limitOffsetY)&&(o.controlCoordinates.initialOffsetY=o.controlCoordinates.targetOffsetY,o.controlCoordinates.initialPointerOffsetY=o.controlCoordinates.pointerOffsetY),o.setZoomData(o.controlCoordinates.initialScale,o.controlCoordinates.targetOffsetX,o.controlCoordinates.targetOffsetY),o.zoomPanElement(o.controlCoordinates.targetOffsetX+"px",o.controlCoordinates.targetOffsetY+"px",o.controlCoordinates.targetScale))}if("mousemove"===t.type&&o.controlCoordinates.mousedown){if("touchmove"==t.type)return!0;if(!1===o.controlCoordinates.capture)return!1;o.controlCoordinates.pointerOffsetX=t.clientX,o.controlCoordinates.pointerOffsetY=t.clientY,o.controlCoordinates.targetScale=o.controlCoordinates.initialScale,o.controlCoordinates.limitOffsetX=(o.controlCoordinates.imgWidth*o.controlCoordinates.targetScale-o.controlCoordinates.containerWidth)/2,o.controlCoordinates.limitOffsetY=(o.controlCoordinates.imgHeight*o.controlCoordinates.targetScale-o.controlCoordinates.containerHeight)/2,o.controlCoordinates.targetOffsetX=o.controlCoordinates.imgWidth*o.controlCoordinates.targetScale<=o.controlCoordinates.containerWidth?0:o.minMax(o.controlCoordinates.pointerOffsetX-(o.controlCoordinates.initialPointerOffsetX-o.controlCoordinates.initialOffsetX),-1*o.controlCoordinates.limitOffsetX,o.controlCoordinates.limitOffsetX),o.controlCoordinates.targetOffsetY=o.controlCoordinates.imgHeight*o.controlCoordinates.targetScale<=o.controlCoordinates.containerHeight?0:o.minMax(o.controlCoordinates.pointerOffsetY-(o.controlCoordinates.initialPointerOffsetY-o.controlCoordinates.initialOffsetY),-1*o.controlCoordinates.limitOffsetY,o.controlCoordinates.limitOffsetY),Math.abs(o.controlCoordinates.targetOffsetX)===Math.abs(o.controlCoordinates.limitOffsetX)&&(o.controlCoordinates.initialOffsetX=o.controlCoordinates.targetOffsetX,o.controlCoordinates.initialPointerOffsetX=o.controlCoordinates.pointerOffsetX),Math.abs(o.controlCoordinates.targetOffsetY)===Math.abs(o.controlCoordinates.limitOffsetY)&&(o.controlCoordinates.initialOffsetY=o.controlCoordinates.targetOffsetY,o.controlCoordinates.initialPointerOffsetY=o.controlCoordinates.pointerOffsetY),o.setZoomData(o.controlCoordinates.initialScale,o.controlCoordinates.targetOffsetX,o.controlCoordinates.targetOffsetY),o.zoomPanElement(o.controlCoordinates.targetOffsetX+"px",o.controlCoordinates.targetOffsetY+"px",o.controlCoordinates.targetScale)}o.controlCoordinates.zoomed||(o.controlCoordinates.swipeEnd=t.pageX||t.touches[0].pageX,o.controlCoordinates.swipeYEnd=t.pageY||t.touches[0].pageY,o.controlCoordinates.swipeDiff=o.controlCoordinates.swipeStart-o.controlCoordinates.swipeEnd,o.controlCoordinates.swipeYDiff=o.controlCoordinates.swipeYStart-o.controlCoordinates.swipeYEnd,o.options.animationSlide&&o.slide(0,-o.controlCoordinates.swipeDiff+"px"))}),this.addEventListener(this.domNodes.image,["touchend."+this.eventNamespace,"mouseup."+this.eventNamespace,"touchcancel."+this.eventNamespace,"mouseleave."+this.eventNamespace,"pointerup","pointercancel","MSPointerUp","MSPointerCancel"],function(t){if(o.isTouchDevice&&"touchend"===t.type&&(o.controlCoordinates.touchCount=t.touches.length,0===o.controlCoordinates.touchCount?(o.currentImage&&o.setZoomData(o.controlCoordinates.initialScale,o.controlCoordinates.targetOffsetX,o.controlCoordinates.targetOffsetY),1===o.controlCoordinates.initialScale&&(o.controlCoordinates.zoomed=!1,"none"===o.domNodes.caption.style.display&&o.fadeIn(o.domNodes.caption,o.options.fadeSpeed)),o.controlCoordinates.initialPinchDistance=null,o.controlCoordinates.capture=!1):1===o.controlCoordinates.touchCount?(o.controlCoordinates.initialPointerOffsetX=t.touches[0].clientX,o.controlCoordinates.initialPointerOffsetY=t.touches[0].clientY):1<o.controlCoordinates.touchCount&&(o.controlCoordinates.initialPinchDistance=null)),o.controlCoordinates.mousedown){var e=!(o.controlCoordinates.mousedown=!1);o.options.loop||(0===o.currentImageIndex&&o.controlCoordinates.swipeDiff<0&&(e=!1),o.currentImageIndex>=o.relatedElements.length-1&&0<o.controlCoordinates.swipeDiff&&(e=!1)),Math.abs(o.controlCoordinates.swipeDiff)>o.options.swipeTolerance&&e?o.loadImage(0<o.controlCoordinates.swipeDiff?1:-1):o.options.animationSlide&&o.slide(o.options.animationSpeed/1e3,"0px"),o.options.swipeClose&&50<Math.abs(o.controlCoordinates.swipeYDiff)&&Math.abs(o.controlCoordinates.swipeDiff)<o.options.swipeTolerance&&o.close()}}),this.addEventListener(this.domNodes.image,["dblclick"],function(t){if(!o.isTouchDevice)return o.controlCoordinates.initialPointerOffsetX=t.clientX,o.controlCoordinates.initialPointerOffsetY=t.clientY,o.controlCoordinates.containerHeight=o.getDimensions(o.domNodes.image).height,o.controlCoordinates.containerWidth=o.getDimensions(o.domNodes.image).width,o.controlCoordinates.imgHeight=o.getDimensions(o.currentImage).height,o.controlCoordinates.imgWidth=o.getDimensions(o.currentImage).width,o.controlCoordinates.containerOffsetX=o.domNodes.image.offsetLeft,o.controlCoordinates.containerOffsetY=o.domNodes.image.offsetTop,o.currentImage.classList.add("sl-transition"),o.controlCoordinates.zoomed?(o.controlCoordinates.initialScale=1,o.setZoomData(o.controlCoordinates.initialScale,0,0),o.zoomPanElement("0px","0px",o.controlCoordinates.initialScale),o.controlCoordinates.zoomed=!1,"none"===o.domNodes.caption.style.display&&o.fadeIn(o.domNodes.caption,o.options.fadeSpeed)):(o.controlCoordinates.initialScale=o.options.doubleTapZoom,o.setZoomData(o.controlCoordinates.initialScale,0,0),o.zoomPanElement("0px","0px",o.controlCoordinates.initialScale),o.domNodes.caption.style.opacity||"none"===o.domNodes.caption.style.display||o.fadeOut(o.domNodes.caption,o.options.fadeSpeed),o.controlCoordinates.zoomed=!0),setTimeout(function(){o.currentImage&&o.currentImage.classList.remove("sl-transition")},200),!(o.controlCoordinates.capture=!0)})}},{key:"getDimensions",value:function(t){var e=window.getComputedStyle(t),o=t.offsetHeight,i=t.offsetWidth,n=parseFloat(e.borderTopWidth);return{height:o-parseFloat(e.borderBottomWidth)-n-parseFloat(e.paddingTop)-parseFloat(e.paddingBottom),width:i-parseFloat(e.borderLeftWidth)-parseFloat(e.borderRightWidth)-parseFloat(e.paddingLeft)-parseFloat(e.paddingRight)}}},{key:"updateHash",value:function(){var t="pid="+(this.currentImageIndex+1),e=window.location.href.split("#")[0]+"#"+t;this.hashReseted=!1,this.pushStateSupport?window.history[this.historyHasChanges?"replaceState":"pushState"]("",document.title,e):this.historyHasChanges?window.location.replace(e):window.location.hash=t,this.historyHasChanges||(this.urlChangedOnce=!0),this.historyHasChanges=!0}},{key:"resetHash",value:function(){this.hashReseted=!0,this.urlChangedOnce?history.back():this.pushStateSupport?history.pushState("",document.title,window.location.pathname+window.location.search):window.location.hash="",clearTimeout(this.historyUpdateTimeout)}},{key:"updateURL",value:function(){clearTimeout(this.historyUpdateTimeout),this.historyHasChanges?this.historyUpdateTimeout=setTimeout(this.updateHash.bind(this),800):this.updateHash()}},{key:"setCaption",value:function(t,e){var o=this;this.options.captions&&t&&""!==t&&void 0!==t&&(this.hide(this.domNodes.caption),this.domNodes.caption.style.width=e+"px",this.domNodes.caption.innerHTML=t,this.domNodes.image.appendChild(this.domNodes.caption),setTimeout(function(){o.fadeIn(o.domNodes.caption,o.options.fadeSpeed)},this.options.captionDelay))}},{key:"slide",value:function(t,e){if(!this.transitionCapable)return this.domNodes.image.style.left=e;this.domNodes.image.style[this.transitionPrefix+"transform"]="translateX("+e+")",this.domNodes.image.style[this.transitionPrefix+"transition"]=this.transitionPrefix+"transform "+t+"s linear"}},{key:"getRelated",value:function(e){return e&&!1!==e&&"nofollow"!==e?Array.from(this.elements).filter(function(t){return t.getAttribute("rel")===e}):this.elements}},{key:"openImage",value:function(t){var e=this;t.dispatchEvent(new Event("show."+this.eventNamespace)),this.options.disableScroll&&(this.globalScrollbarWidth=this.toggleScrollbar("hide")),this.options.htmlClass&&""!==this.options.htmlClass&&document.querySelector("html").classList.add(this.options.htmlClass),document.body.appendChild(this.domNodes.wrapper),this.domNodes.wrapper.appendChild(this.domNodes.image),this.options.overlay&&document.body.appendChild(this.domNodes.overlay),this.relatedElements=this.getRelated(t.rel),this.options.showCounter&&(1==this.relatedElements.length&&this.domNodes.wrapper.contains(this.domNodes.counter)?this.domNodes.wrapper.removeChild(this.domNodes.counter):1<this.relatedElements.length&&!this.domNodes.wrapper.contains(this.domNodes.counter)&&this.domNodes.wrapper.appendChild(this.domNodes.counter)),this.isAnimating=!0,this.currentImageIndex=this.relatedElements.indexOf(t);var o=t.getAttribute(this.options.sourceAttr);this.currentImage=document.createElement("img"),this.currentImage.style.display="none",this.currentImage.setAttribute("src",o),this.currentImage.dataset.scale=1,this.currentImage.dataset.translateX=0,this.currentImage.dataset.translateY=0,-1===this.loadedImages.indexOf(o)&&this.loadedImages.push(o),this.domNodes.image.innerHTML="",this.domNodes.image.setAttribute("style",""),this.domNodes.image.appendChild(this.currentImage),this.fadeIn(this.domNodes.overlay,this.options.fadeSpeed),this.fadeIn([this.domNodes.counter,this.domNodes.navigation,this.domNodes.closeButton],this.options.fadeSpeed),this.show(this.domNodes.spinner),this.domNodes.counter.querySelector(".sl-current").innerHTML=this.currentImageIndex+1,this.domNodes.counter.querySelector(".sl-total").innerHTML=this.relatedElements.length,this.adjustImage(),this.options.preloading&&this.preload(),setTimeout(function(){t.dispatchEvent(new Event("shown."+e.eventNamespace))},this.options.animationSpeed)}},{key:"forceFocus",value:function(){var e=this;this.removeEventListener(document,"focusin."+this.eventNamespace),this.addEventListener(document,"focusin."+this.eventNamespace,function(t){document===t.target||e.domNodes.wrapper===t.target||e.domNodes.wrapper.contains(t.target)||e.domNodes.wrapper.focus()})}},{key:"addEventListener",value:function(t,e,o,i){t=this.wrap(t),e=this.wrap(e);var n,s=h(t);try{for(s.s();!(n=s.n()).done;){var a=n.value;a.namespaces||(a.namespaces={});var r,l=h(e);try{for(l.s();!(r=l.n()).done;){var d=r.value,c=i||!1;a.namespaces[d]=o,a.addEventListener(d.split(".")[0],o,c)}}catch(t){l.e(t)}finally{l.f()}}}catch(t){s.e(t)}finally{s.f()}}},{key:"removeEventListener",value:function(t,e){t=this.wrap(t),e=this.wrap(e);var o,i=h(t);try{for(i.s();!(o=i.n()).done;){var n,s=o.value,a=h(e);try{for(a.s();!(n=a.n()).done;){var r=n.value;s.namespaces&&s.namespaces[r]&&(s.removeEventListener(r.split(".")[0],s.namespaces[r]),delete s.namespaces[r])}}catch(t){a.e(t)}finally{a.f()}}}catch(t){i.e(t)}finally{i.f()}}},{key:"fadeOut",value:function(r,t,l){var e,d=this,o=h(r=this.wrap(r));try{for(o.s();!(e=o.n()).done;){e.value.style.opacity=1}}catch(t){o.e(t)}finally{o.f()}this.isFadeIn=!1;var c=16.66666/(t||this.options.fadeSpeed);!function t(){var e=parseFloat(r[0].style.opacity);if((e-=c)<0){var o,i=h(r);try{for(i.s();!(o=i.n()).done;){var n=o.value;n.style.display="none",n.style.opacity=""}}catch(t){i.e(t)}finally{i.f()}l&&l.call(d,r)}else{var s,a=h(r);try{for(a.s();!(s=a.n()).done;){s.value.style.opacity=e}}catch(t){a.e(t)}finally{a.f()}requestAnimationFrame(t)}}()}},{key:"fadeIn",value:function(a,t,r,e){var o,l=this,i=h(a=this.wrap(a));try{for(i.s();!(o=i.n()).done;){var n=o.value;n.style.opacity=0,n.style.display=e||"block"}}catch(t){i.e(t)}finally{i.f()}this.isFadeIn=!0;var d=parseFloat(a[0].dataset.opacityTarget||1),c=16.66666*d/(t||this.options.fadeSpeed);!function t(){var e=parseFloat(a[0].style.opacity);if((e+=c)>d){var o,i=h(a);try{for(i.s();!(o=i.n()).done;){o.value.style.opacity=""}}catch(t){i.e(t)}finally{i.f()}r&&r.call(l,a)}else{var n,s=h(a);try{for(s.s();!(n=s.n()).done;){n.value.style.opacity=e}}catch(t){s.e(t)}finally{s.f()}if(!l.isFadeIn)return;requestAnimationFrame(t)}}()}},{key:"hide",value:function(t){var e,o=h(t=this.wrap(t));try{for(o.s();!(e=o.n()).done;){var i=e.value;i.dataset.initialDisplay=i.style.display,i.style.display="none"}}catch(t){o.e(t)}finally{o.f()}}},{key:"show",value:function(t,e){var o,i=h(t=this.wrap(t));try{for(i.s();!(o=i.n()).done;){var n=o.value;n.style.display=n.dataset.initialDisplay||e||"block"}}catch(t){i.e(t)}finally{i.f()}}},{key:"wrap",value:function(t){return"function"==typeof t[Symbol.iterator]&&"string"!=typeof t?t:[t]}},{key:"on",value:function(t,e){t=this.wrap(t);var o,i=h(this.elements);try{for(i.s();!(o=i.n()).done;){var n=o.value;n.fullyNamespacedEvents||(n.fullyNamespacedEvents={});var s,a=h(t);try{for(a.s();!(s=a.n()).done;){var r=s.value;n.fullyNamespacedEvents[r]=e,n.addEventListener(r,e)}}catch(t){a.e(t)}finally{a.f()}}}catch(t){i.e(t)}finally{i.f()}return this}},{key:"off",value:function(t){t=this.wrap(t);var e,o=h(this.elements);try{for(o.s();!(e=o.n()).done;){var i,n=e.value,s=h(t);try{for(s.s();!(i=s.n()).done;){var a=i.value;void 0!==n.fullyNamespacedEvents&&a in n.fullyNamespacedEvents&&n.removeEventListener(a,n.fullyNamespacedEvents[a])}}catch(t){s.e(t)}finally{s.f()}}}catch(t){o.e(t)}finally{o.f()}return this}},{key:"open",value:function(t){t=t||this.elements[0],"undefined"!=typeof jQuery&&t instanceof jQuery&&(t=t.get(0)),this.initialImageIndex=this.elements.indexOf(t),-1<this.initialImageIndex&&this.openImage(t)}},{key:"next",value:function(){this.loadImage(1)}},{key:"prev",value:function(){this.loadImage(-1)}},{key:"destroy",value:function(){this.off(["close."+this.eventNamespace,"closed."+this.eventNamespace,"nextImageLoaded."+this.eventNamespace,"prevImageLoaded."+this.eventNamespace,"change."+this.eventNamespace,"nextDone."+this.eventNamespace,"prevDone."+this.eventNamespace,"error."+this.eventNamespace,"changed."+this.eventNamespace,"next."+this.eventNamespace,"prev."+this.eventNamespace,"show."+this.eventNamespace,"shown."+this.eventNamespace]),this.removeEventListener(this.elements,"click."+this.eventNamespace),this.removeEventListener(document,"focusin."+this.eventNamespace),this.removeEventListener(document.body,"contextmenu."+this.eventNamespace),this.removeEventListener(document.body,"keyup."+this.eventNamespace),this.removeEventListener(this.domNodes.navigation.getElementsByTagName("button"),"click."+this.eventNamespace),this.removeEventListener(this.domNodes.closeButton,"click."+this.eventNamespace),this.removeEventListener(window,"resize."+this.eventNamespace),this.removeEventListener(window,"hashchange."+this.eventNamespace),this.close(),this.isOpen&&(document.body.removeChild(this.domNodes.wrapper),document.body.removeChild(this.domNodes.overlay)),this.elements=null}},{key:"refresh",value:function(){if(!this.initialSelector)throw"refreshing only works when you initialize using a selector!";var t=this.options,e=this.initialSelector;return this.destroy(),this.constructor(e,t),this}},{key:"hash",get:function(){return window.location.hash.substring(1)}}])&&i(t.prototype,e),o&&i(t,o),n}(),e=t;n.default=e,o.SimpleLightbox=t}).call(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}]},{},[1]);
js/extensions.js CHANGED
@@ -1,8 +1,5 @@
1
  ( function( $ ) {
2
-
3
- $( '.swipebox' ).swipebox( {
4
- useCSS : true, // False will force the use of jQuery for animations
5
- useSVG : false, // False to force the use of png for buttons
6
- } );
7
-
8
  } )( jQuery );
1
  ( function( $ ) {
2
+ $('.lightbox').simpleLightbox({
3
+ showCounter: false
4
+ });
 
 
 
5
  } )( jQuery );
js/jquery.swipebox.min.js DELETED
@@ -1,2 +0,0 @@
1
- /*! Swipebox v1.4.4 | Constantin Saguin csag.co | MIT License | github.com/brutaldesign/swipebox */
2
- !function(a,b,c,d){c.swipebox=function(e,f){var g,h,i={useCSS:!0,useSVG:!0,initialIndexOnArray:0,removeBarsOnMobile:!0,hideCloseButtonOnMobile:!1,hideBarsDelay:3e3,videoMaxWidth:1140,vimeoColor:"cccccc",beforeOpen:null,afterOpen:null,afterClose:null,afterMedia:null,nextSlide:null,prevSlide:null,loopAtEnd:!1,autoplayVideos:!1,queryStringData:{},toggleClassOnLoad:""},j=this,k=[],l=e.selector,m=navigator.userAgent.match(/(iPad)|(iPhone)|(iPod)|(Android)|(PlayBook)|(BB10)|(BlackBerry)|(Opera Mini)|(IEMobile)|(webOS)|(MeeGo)/i),n=null!==m||b.createTouch!==d||"ontouchstart"in a||"onmsgesturechange"in a||navigator.msMaxTouchPoints,o=!!b.createElementNS&&!!b.createElementNS("http://www.w3.org/2000/svg","svg").createSVGRect,p=a.innerWidth?a.innerWidth:c(a).width(),q=a.innerHeight?a.innerHeight:c(a).height(),r=0,s='<div id="swipebox-overlay"> <div id="swipebox-container"> <div id="swipebox-slider"></div> <div id="swipebox-top-bar"> <div id="swipebox-title"></div> </div> <div id="swipebox-bottom-bar"> <div id="swipebox-arrows"> <a id="swipebox-prev"></a> <a id="swipebox-next"></a> </div> </div> <a id="swipebox-close"></a> </div> </div>';j.settings={},c.swipebox.close=function(){g.closeSlide()},c.swipebox.extend=function(){return g},j.init=function(){j.settings=c.extend({},i,f),c.isArray(e)?(k=e,g.target=c(a),g.init(j.settings.initialIndexOnArray)):c(b).on("click",l,function(a){if("slide current"===a.target.parentNode.className)return!1;c.isArray(e)||(g.destroy(),h=c(l),g.actions()),k=[];var b,d,f;f||(d="data-rel",f=c(this).attr(d)),f||(d="rel",f=c(this).attr(d)),h=f&&""!==f&&"nofollow"!==f?c(l).filter("["+d+'="'+f+'"]'):c(l),h.each(function(){var a=null,b=null;c(this).attr("title")&&(a=c(this).attr("title")),c(this).attr("href")&&(b=c(this).attr("href")),k.push({href:b,title:a})}),b=h.index(c(this)),a.preventDefault(),a.stopPropagation(),g.target=c(a.target),g.init(b)})},g={init:function(a){j.settings.beforeOpen&&j.settings.beforeOpen(),this.target.trigger("swipebox-start"),c.swipebox.isOpen=!0,this.build(),this.openSlide(a),this.openMedia(a),this.preloadMedia(a+1),this.preloadMedia(a-1),j.settings.afterOpen&&j.settings.afterOpen(a)},build:function(){var a,b=this;c("body").append(s),o&&j.settings.useSVG===!0&&(a=c("#swipebox-close").css("background-image"),a=a.replace("png","svg"),c("#swipebox-prev, #swipebox-next, #swipebox-close").css({"background-image":a})),m&&j.settings.removeBarsOnMobile&&c("#swipebox-bottom-bar, #swipebox-top-bar").remove(),c.each(k,function(){c("#swipebox-slider").append('<div class="slide"></div>')}),b.setDim(),b.actions(),n&&b.gesture(),b.keyboard(),b.animBars(),b.resize()},setDim:function(){var b,d,e={};"onorientationchange"in a?a.addEventListener("orientationchange",function(){0===a.orientation?(b=p,d=q):(90===a.orientation||-90===a.orientation)&&(b=q,d=p)},!1):(b=a.innerWidth?a.innerWidth:c(a).width(),d=a.innerHeight?a.innerHeight:c(a).height()),e={width:b,height:d},c("#swipebox-overlay").css(e)},resize:function(){var b=this;c(a).resize(function(){b.setDim()}).resize()},supportTransition:function(){var a,c="transition WebkitTransition MozTransition OTransition msTransition KhtmlTransition".split(" ");for(a=0;a<c.length;a++)if(b.createElement("div").style[c[a]]!==d)return c[a];return!1},doCssTrans:function(){return j.settings.useCSS&&this.supportTransition()?!0:void 0},gesture:function(){var a,b,d,e,f,g,h=this,i=!1,j=!1,l=10,m=50,n={},o={},q=c("#swipebox-top-bar, #swipebox-bottom-bar"),s=c("#swipebox-slider");q.addClass("visible-bars"),h.setTimeout(),c("body").bind("touchstart",function(h){return c(this).addClass("touching"),a=c("#swipebox-slider .slide").index(c("#swipebox-slider .slide.current")),o=h.originalEvent.targetTouches[0],n.pageX=h.originalEvent.targetTouches[0].pageX,n.pageY=h.originalEvent.targetTouches[0].pageY,c("#swipebox-slider").css({"-webkit-transform":"translate3d("+r+"%, 0, 0)",transform:"translate3d("+r+"%, 0, 0)"}),c(".touching").bind("touchmove",function(h){if(h.preventDefault(),h.stopPropagation(),o=h.originalEvent.targetTouches[0],!j&&(f=d,d=o.pageY-n.pageY,Math.abs(d)>=m||i)){var q=.75-Math.abs(d)/s.height();s.css({top:d+"px"}),s.css({opacity:q}),i=!0}e=b,b=o.pageX-n.pageX,g=100*b/p,!j&&!i&&Math.abs(b)>=l&&(c("#swipebox-slider").css({"-webkit-transition":"",transition:""}),j=!0),j&&(b>0?0===a?c("#swipebox-overlay").addClass("leftSpringTouch"):(c("#swipebox-overlay").removeClass("leftSpringTouch").removeClass("rightSpringTouch"),c("#swipebox-slider").css({"-webkit-transform":"translate3d("+(r+g)+"%, 0, 0)",transform:"translate3d("+(r+g)+"%, 0, 0)"})):0>b&&(k.length===a+1?c("#swipebox-overlay").addClass("rightSpringTouch"):(c("#swipebox-overlay").removeClass("leftSpringTouch").removeClass("rightSpringTouch"),c("#swipebox-slider").css({"-webkit-transform":"translate3d("+(r+g)+"%, 0, 0)",transform:"translate3d("+(r+g)+"%, 0, 0)"}))))}),!1}).bind("touchend",function(a){if(a.preventDefault(),a.stopPropagation(),c("#swipebox-slider").css({"-webkit-transition":"-webkit-transform 0.4s ease",transition:"transform 0.4s ease"}),d=o.pageY-n.pageY,b=o.pageX-n.pageX,g=100*b/p,i)if(i=!1,Math.abs(d)>=2*m&&Math.abs(d)>Math.abs(f)){var k=d>0?s.height():-s.height();s.animate({top:k+"px",opacity:0},300,function(){h.closeSlide()})}else s.animate({top:0,opacity:1},300);else j?(j=!1,b>=l&&b>=e?h.getPrev():-l>=b&&e>=b&&h.getNext()):q.hasClass("visible-bars")?(h.clearTimeout(),h.hideBars()):(h.showBars(),h.setTimeout());c("#swipebox-slider").css({"-webkit-transform":"translate3d("+r+"%, 0, 0)",transform:"translate3d("+r+"%, 0, 0)"}),c("#swipebox-overlay").removeClass("leftSpringTouch").removeClass("rightSpringTouch"),c(".touching").off("touchmove").removeClass("touching")})},setTimeout:function(){if(j.settings.hideBarsDelay>0){var b=this;b.clearTimeout(),b.timeout=a.setTimeout(function(){b.hideBars()},j.settings.hideBarsDelay)}},clearTimeout:function(){a.clearTimeout(this.timeout),this.timeout=null},showBars:function(){var a=c("#swipebox-top-bar, #swipebox-bottom-bar");this.doCssTrans()?a.addClass("visible-bars"):(c("#swipebox-top-bar").animate({top:0},500),c("#swipebox-bottom-bar").animate({bottom:0},500),setTimeout(function(){a.addClass("visible-bars")},1e3))},hideBars:function(){var a=c("#swipebox-top-bar, #swipebox-bottom-bar");this.doCssTrans()?a.removeClass("visible-bars"):(c("#swipebox-top-bar").animate({top:"-50px"},500),c("#swipebox-bottom-bar").animate({bottom:"-50px"},500),setTimeout(function(){a.removeClass("visible-bars")},1e3))},animBars:function(){var a=this,b=c("#swipebox-top-bar, #swipebox-bottom-bar");b.addClass("visible-bars"),a.setTimeout(),c("#swipebox-slider").click(function(){b.hasClass("visible-bars")||(a.showBars(),a.setTimeout())}),c("#swipebox-bottom-bar").hover(function(){a.showBars(),b.addClass("visible-bars"),a.clearTimeout()},function(){j.settings.hideBarsDelay>0&&(b.removeClass("visible-bars"),a.setTimeout())})},keyboard:function(){var b=this;c(a).bind("keyup",function(a){a.preventDefault(),a.stopPropagation(),37===a.keyCode?b.getPrev():39===a.keyCode?b.getNext():27===a.keyCode&&b.closeSlide()})},actions:function(){var a=this,b="touchend click";k.length<2?(c("#swipebox-bottom-bar").hide(),d===k[1]&&c("#swipebox-top-bar").hide()):(c("#swipebox-prev").bind(b,function(b){b.preventDefault(),b.stopPropagation(),a.getPrev(),a.setTimeout()}),c("#swipebox-next").bind(b,function(b){b.preventDefault(),b.stopPropagation(),a.getNext(),a.setTimeout()})),c("#swipebox-close").bind(b,function(){a.closeSlide()})},setSlide:function(a,b){b=b||!1;var d=c("#swipebox-slider");r=100*-a,this.doCssTrans()?d.css({"-webkit-transform":"translate3d("+100*-a+"%, 0, 0)",transform:"translate3d("+100*-a+"%, 0, 0)"}):d.animate({left:100*-a+"%"}),c("#swipebox-slider .slide").removeClass("current"),c("#swipebox-slider .slide").eq(a).addClass("current"),this.setTitle(a),b&&d.fadeIn(),c("#swipebox-prev, #swipebox-next").removeClass("disabled"),0===a?c("#swipebox-prev").addClass("disabled"):a===k.length-1&&j.settings.loopAtEnd!==!0&&c("#swipebox-next").addClass("disabled")},openSlide:function(b){c("html").addClass("swipebox-html"),n?(c("html").addClass("swipebox-touch"),j.settings.hideCloseButtonOnMobile&&c("html").addClass("swipebox-no-close-button")):c("html").addClass("swipebox-no-touch"),c(a).trigger("resize"),this.setSlide(b,!0)},preloadMedia:function(a){var b=this,c=null;k[a]!==d&&(c=k[a].href),b.isVideo(c)?b.openMedia(a):setTimeout(function(){b.openMedia(a)},1e3)},openMedia:function(a){var b,e,f=this;return k[a]!==d&&(b=k[a].href),0>a||a>=k.length?!1:(e=c("#swipebox-slider .slide").eq(a),void(f.isVideo(b)?(e.html(f.getVideo(b)),j.settings.afterMedia&&j.settings.afterMedia(a)):(e.addClass("slide-loading"),f.loadMedia(b,function(){e.removeClass("slide-loading"),e.html(this),j.settings.afterMedia&&j.settings.afterMedia(a)}))))},setTitle:function(a){var b=null;c("#swipebox-title").empty(),k[a]!==d&&(b=k[a].title),b?(c("#swipebox-top-bar").show(),c("#swipebox-title").append(b)):c("#swipebox-top-bar").hide()},isVideo:function(a){if(a){if(a.match(/(youtube\.com|youtube-nocookie\.com)\/watch\?v=([a-zA-Z0-9\-_]+)/)||a.match(/vimeo\.com\/([0-9]*)/)||a.match(/youtu\.be\/([a-zA-Z0-9\-_]+)/))return!0;if(a.toLowerCase().indexOf("swipeboxvideo=1")>=0)return!0}},parseUri:function(a,d){var e=b.createElement("a"),f={};return e.href=decodeURIComponent(a),e.search&&(f=JSON.parse('{"'+e.search.toLowerCase().replace("?","").replace(/&/g,'","').replace(/=/g,'":"')+'"}')),c.isPlainObject(d)&&(f=c.extend(f,d,j.settings.queryStringData)),c.map(f,function(a,b){return a&&a>""?encodeURIComponent(b)+"="+encodeURIComponent(a):void 0}).join("&")},getVideo:function(a){var b="",c=a.match(/((?:www\.)?youtube\.com|(?:www\.)?youtube-nocookie\.com)\/watch\?v=([a-zA-Z0-9\-_]+)/),d=a.match(/(?:www\.)?youtu\.be\/([a-zA-Z0-9\-_]+)/),e=a.match(/(?:www\.)?vimeo\.com\/([0-9]*)/),f="";return c||d?(d&&(c=d),f=g.parseUri(a,{autoplay:j.settings.autoplayVideos?"1":"0",v:""}),b='<iframe width="560" height="315" src="//'+c[1]+"/embed/"+c[2]+"?"+f+'" frameborder="0" allowfullscreen></iframe>'):e?(f=g.parseUri(a,{autoplay:j.settings.autoplayVideos?"1":"0",byline:"0",portrait:"0",color:j.settings.vimeoColor}),b='<iframe width="560" height="315" src="//player.vimeo.com/video/'+e[1]+"?"+f+'" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>'):b='<iframe width="560" height="315" src="'+a+'" frameborder="0" allowfullscreen></iframe>','<div class="swipebox-video-container" style="max-width:'+j.settings.videoMaxWidth+'px"><div class="swipebox-video">'+b+"</div></div>"},loadMedia:function(a,b){if(0===a.trim().indexOf("#"))b.call(c("<div>",{"class":"swipebox-inline-container"}).append(c(a).clone().toggleClass(j.settings.toggleClassOnLoad)));else if(!this.isVideo(a)){var d=c("<img>").on("load",function(){b.call(d)});d.attr("src",a)}},getNext:function(){var a,b=this,d=c("#swipebox-slider .slide").index(c("#swipebox-slider .slide.current"));d+1<k.length?(a=c("#swipebox-slider .slide").eq(d).contents().find("iframe").attr("src"),c("#swipebox-slider .slide").eq(d).contents().find("iframe").attr("src",a),d++,b.setSlide(d),b.preloadMedia(d+1),j.settings.nextSlide&&j.settings.nextSlide(d)):j.settings.loopAtEnd===!0?(a=c("#swipebox-slider .slide").eq(d).contents().find("iframe").attr("src"),c("#swipebox-slider .slide").eq(d).contents().find("iframe").attr("src",a),d=0,b.preloadMedia(d),b.setSlide(d),b.preloadMedia(d+1),j.settings.nextSlide&&j.settings.nextSlide(d)):(c("#swipebox-overlay").addClass("rightSpring"),setTimeout(function(){c("#swipebox-overlay").removeClass("rightSpring")},500))},getPrev:function(){var a,b=c("#swipebox-slider .slide").index(c("#swipebox-slider .slide.current"));b>0?(a=c("#swipebox-slider .slide").eq(b).contents().find("iframe").attr("src"),c("#swipebox-slider .slide").eq(b).contents().find("iframe").attr("src",a),b--,this.setSlide(b),this.preloadMedia(b-1),j.settings.prevSlide&&j.settings.prevSlide(b)):(c("#swipebox-overlay").addClass("leftSpring"),setTimeout(function(){c("#swipebox-overlay").removeClass("leftSpring")},500))},nextSlide:function(a){},prevSlide:function(a){},closeSlide:function(){c("html").removeClass("swipebox-html"),c("html").removeClass("swipebox-touch"),c(a).trigger("resize"),this.destroy()},destroy:function(){c(a).unbind("keyup"),c("body").unbind("touchstart"),c("body").unbind("touchmove"),c("body").unbind("touchend"),c("#swipebox-slider").unbind(),c("#swipebox-overlay").remove(),c.isArray(e)||e.removeData("_swipebox"),this.target&&this.target.trigger("swipebox-destroy"),c.swipebox.isOpen=!1,j.settings.afterClose&&j.settings.afterClose()}},j.init()},c.fn.swipebox=function(a){if(!c.data(this,"_swipebox")){var b=new c.swipebox(this,a);this.data("_swipebox",b)}return this.data("_swipebox")}}(window,document,jQuery);
 
 
languages/wp-security-audit-log.pot CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2020 wp-security-audit-log
2
  # This file is distributed under the same license as the wp-security-audit-log package.
3
  msgid ""
4
  msgstr ""
@@ -36,6 +36,14 @@ msgstr ""
36
  msgid "Informational events."
37
  msgstr ""
38
 
 
 
 
 
 
 
 
 
39
  #: defaults.php:88
40
  msgid "User logged in"
41
  msgstr ""
@@ -108,6 +116,14 @@ msgstr ""
108
  msgid "User deleted file from Uploads directory"
109
  msgstr ""
110
 
 
 
 
 
 
 
 
 
111
  #: defaults.php:104
112
  msgid "User created a new post and saved it as draft"
113
  msgstr ""
@@ -292,6 +308,10 @@ msgstr ""
292
  msgid "Pingbacks and Trackbacks in the post %PostTitle% %LineBreak% ID: %PostID% %LineBreak% Type: %PostType% %LineBreak% Status: %PostStatus% %PostUrlIfPlublished% %LineBreak% %EditorLinkPost%"
293
  msgstr ""
294
 
 
 
 
 
295
  #: defaults.php:130
296
  msgid "User added post tag"
297
  msgstr ""
@@ -348,6 +368,10 @@ msgstr ""
348
  msgid "Changed the description of the tag %tag% %LineBreak% Slug: %Slug% %LineBreak% Previous description: %old_desc% %LineBreak% New description: %new_desc% %LineBreak% %TagLink%"
349
  msgstr ""
350
 
 
 
 
 
351
  #: defaults.php:140
352
  msgid "User changed post category"
353
  msgstr ""
@@ -396,6 +420,10 @@ msgstr ""
396
  msgid "Changed the slug of the category: %CategoryName% %LineBreak% Previous slug: %old_slug% %LineBreak% New slug: %new_slug% %LineBreak% %cat_link%"
397
  msgstr ""
398
 
 
 
 
 
399
  #: defaults.php:149
400
  msgid "User created a custom field for a post"
401
  msgstr ""
@@ -428,6 +456,14 @@ msgstr ""
428
  msgid "Old custom field name: %MetaKeyOld% %LineBreak% New custom field name: %MetaKeyNew% %LineBreak% Post: %PostTitle% %LineBreak% Post ID: %PostID% %LineBreak% Post Type: %PostType% %LineBreak% Post Status: %PostStatus% %PostUrlIfPlublished% %LineBreak% %EditorLinkPost%"
429
  msgstr ""
430
 
 
 
 
 
 
 
 
 
431
  #: defaults.php:176
432
  msgid "User approved a comment"
433
  msgstr ""
@@ -512,6 +548,10 @@ msgstr ""
512
  msgid "Visitor posted a comment"
513
  msgstr ""
514
 
 
 
 
 
515
  #: defaults.php:197
516
  msgid "User added a new widget"
517
  msgstr ""
@@ -552,6 +592,10 @@ msgstr ""
552
  msgid "Changed the position of the %WidgetName% widget in %Sidebar%."
553
  msgstr ""
554
 
 
 
 
 
555
  #: defaults.php:208
556
  msgid "User created new menu"
557
  msgstr ""
@@ -624,6 +668,10 @@ msgstr ""
624
  msgid "Menu name: %MenuName% %LineBreak% Moved item %ItemName% as a sub-item of %ParentName%"
625
  msgstr ""
626
 
 
 
 
 
627
  #: defaults.php:228
628
  msgid "User modified a draft blog post"
629
  msgstr ""
@@ -824,6 +872,10 @@ msgstr ""
824
  msgid "Plugin modified the custom post %PostTitle%. View the post: %EditorLinkPost%."
825
  msgstr ""
826
 
 
 
 
 
827
  #: defaults.php:268
828
  msgid "User created a new WordPress page and saved it as draft"
829
  msgstr ""
@@ -1044,6 +1096,14 @@ msgstr ""
1044
  msgid "Plugin modified the page %PostTitle%. View the page: %EditorLinkPage%."
1045
  msgstr ""
1046
 
 
 
 
 
 
 
 
 
1047
  #: defaults.php:304
1048
  msgid "New user was created on WordPress"
1049
  msgstr ""
@@ -1164,6 +1224,10 @@ msgstr ""
1164
  msgid "Changed the display name of the user %TargetUsername% %LineBreak% Previous display name: %old_displayname% %LineBreak% New display name: %new_displayname% %LineBreak% Role: %Roles% %LineBreak% First name: %FirstName% %LineBreak% Last name: %LastName% %LineBreak% %EditUserLink%"
1165
  msgstr ""
1166
 
 
 
 
 
1167
  #: defaults.php:322
1168
  msgid "User granted Super Admin privileges"
1169
  msgstr ""
@@ -1204,6 +1268,14 @@ msgstr ""
1204
  msgid "Created a new network user %NewUserData->Username% %LineBreak% First name: %NewUserData->FirstName% %LineBreak% Last name: %NewUserData->LastName% %LineBreak% %EditUserLink%"
1205
  msgstr ""
1206
 
 
 
 
 
 
 
 
 
1207
  #: defaults.php:332
1208
  msgid "User installed a plugin"
1209
  msgstr ""
@@ -1280,6 +1352,10 @@ msgstr ""
1280
  msgid "Modified a file with the plugin editor %LineBreak% File: %File%"
1281
  msgstr ""
1282
 
 
 
 
 
1283
  #: defaults.php:346
1284
  msgid "User installed a theme"
1285
  msgstr ""
@@ -1340,6 +1416,10 @@ msgstr ""
1340
  msgid "Modified a file with the theme editor %LineBreak% File: %Theme%/%File%"
1341
  msgstr ""
1342
 
 
 
 
 
1343
  #: defaults.php:357
1344
  msgid "Activated theme on network"
1345
  msgstr ""
@@ -1356,6 +1436,10 @@ msgstr ""
1356
  msgid "Network deactivated the theme %Theme->Name% %LineBreak% Install location: %Theme->get_template_directory%"
1357
  msgstr ""
1358
 
 
 
 
 
1359
  #: defaults.php:362
1360
  msgid "Unknown component created tables"
1361
  msgstr ""
@@ -1404,6 +1488,14 @@ msgstr ""
1404
  msgid "WordPress deleted these tables from the database %LineBreak% Tables: %TableNames%"
1405
  msgstr ""
1406
 
 
 
 
 
 
 
 
 
1407
  #: defaults.php:373
1408
  msgid "Unknown Error"
1409
  msgstr ""
@@ -1452,6 +1544,10 @@ msgstr ""
1452
  msgid "%PromoName% %PromoMessage%"
1453
  msgstr ""
1454
 
 
 
 
 
1455
  #: defaults.php:384
1456
  msgid "Events automatically pruned by system"
1457
  msgstr ""
@@ -1480,6 +1576,10 @@ msgstr ""
1480
  msgid "Some WP Activity Log plugin settings on this site were propagated and overridden from the MainWP dashboard."
1481
  msgstr ""
1482
 
 
 
 
 
1483
  #: defaults.php:391
1484
  msgid "Option Anyone Can Register in WordPress settings changed"
1485
  msgstr ""
@@ -1612,6 +1712,14 @@ msgstr ""
1612
  msgid "Changed the site address (URL) %LineBreak% Previous URL: %old_url% %LineBreak% New URL: %new_url%"
1613
  msgstr ""
1614
 
 
 
 
 
 
 
 
 
1615
  #: defaults.php:413
1616
  msgid "New site added on the network"
1617
  msgstr ""
@@ -1668,181 +1776,189 @@ msgstr ""
1668
  msgid "Changed the <strong>Allow new registrations</strong> settings %LineBreak% Previous setting: %previous_setting% %LineBreak% New setting: %new_setting%"
1669
  msgstr ""
1670
 
 
 
 
 
 
 
 
 
1671
  #: defaults.php:430
1672
  msgid "Dummy"
1673
  msgstr ""
1674
 
1675
  #. translators: Username
1676
  #. translators: Username
1677
- #: wp-security-audit-log.php:906, wp-security-audit-log.php:933
1678
  msgid "Hey %1$s"
1679
  msgstr ""
1680
 
1681
- #: wp-security-audit-log.php:907
1682
  msgid "Never miss an important update! Opt-in to our security and feature updates notifications, and non-sensitive diagnostic tracking with freemius.com."
1683
  msgstr ""
1684
 
1685
- #: wp-security-audit-log.php:908, wp-security-audit-log.php:936
1686
  msgid "Note: "
1687
  msgstr ""
1688
 
1689
- #: wp-security-audit-log.php:909, wp-security-audit-log.php:937
1690
  msgid "NO ACTIVITY LOG ACTIVITY & DATA IS SENT BACK TO OUR SERVERS."
1691
  msgstr ""
1692
 
1693
  #. translators: 1: Plugin name. 2: Freemius link.
1694
- #: wp-security-audit-log.php:935
1695
  msgid "Please help us improve %2$s! If you opt-in, some non-sensitive data about your usage of %2$s will be sent to %5$s, a diagnostic tracking service we use. If you skip this, that's okay! %2$s will still work just fine."
1696
  msgstr ""
1697
 
1698
  #. translators: Plugin name
1699
- #: wp-security-audit-log.php:957
1700
  msgid "Get a free 7-day trial of the premium edition of %s. No credit card required, no commitments!"
1701
  msgstr ""
1702
 
1703
- #: wp-security-audit-log.php:958, classes/AlertManager.php:1145, extensions/external-db/classes/Connections.php:173
1704
  msgid "WP Activity Log"
1705
  msgstr ""
1706
 
1707
- #: wp-security-audit-log.php:962
1708
  msgid "Start free trial"
1709
  msgstr ""
1710
 
1711
- #: wp-security-audit-log.php:1030
1712
  msgid "You need to activate the licence key to use WP Activity Log Premium. %2$s"
1713
  msgstr ""
1714
 
1715
- #: wp-security-audit-log.php:1031
1716
  msgid "Activate the licence key now"
1717
  msgstr ""
1718
 
1719
  #. translators: Number of sites
1720
- #: wp-security-audit-log.php:1048
1721
  msgid "The license is limited to %s sub-sites. You need to upgrade your license to cover all the sub-sites on this network."
1722
  msgstr ""
1723
 
1724
- #: wp-security-audit-log.php:1158
1725
  msgid "Error: You do not have sufficient permissions to disable this custom field."
1726
  msgstr ""
1727
 
1728
- #: wp-security-audit-log.php:1193
1729
  msgid "Custom Field <strong>%1$s</strong> is no longer being monitored.<br />Enable the monitoring of this custom field again from the"
1730
  msgstr ""
1731
 
1732
- #: wp-security-audit-log.php:1196
1733
  msgid "Excluded Objects"
1734
  msgstr ""
1735
 
1736
- #: wp-security-audit-log.php:1197
1737
  msgid " tab in the plugin settings"
1738
  msgstr ""
1739
 
1740
- #: wp-security-audit-log.php:1210
1741
  msgid "Error: You do not have sufficient permissions to disable this alert."
1742
  msgstr ""
1743
 
1744
- #: wp-security-audit-log.php:1234
1745
  msgid "Alert %1$s is no longer being monitored.<br /> %2$s"
1746
  msgstr ""
1747
 
1748
- #: wp-security-audit-log.php:1234
1749
  msgid "You can enable this alert again from the Enable/Disable Alerts node in the plugin menu."
1750
  msgstr ""
1751
 
1752
- #: wp-security-audit-log.php:1259, classes/Views/SetupWizard.php:270
1753
  msgid "Installing, please wait"
1754
  msgstr ""
1755
 
1756
- #: wp-security-audit-log.php:1260, classes/Views/SetupWizard.php:271
1757
  msgid "Already installed"
1758
  msgstr ""
1759
 
1760
- #: wp-security-audit-log.php:1261, classes/Utilities/PluginInstallAndActivate.php:107, classes/Views/SetupWizard.php:272, classes/Views/SetupWizard.php:836
1761
  msgid "Extension installed"
1762
  msgstr ""
1763
 
1764
- #: wp-security-audit-log.php:1262, classes/Views/SetupWizard.php:273
1765
  msgid "Extension activated"
1766
  msgstr ""
1767
 
1768
- #: wp-security-audit-log.php:1263, classes/Views/SetupWizard.php:274
1769
  msgid "Install failed"
1770
  msgstr ""
1771
 
1772
  #. translators: %s: PHP Version
1773
- #: wp-security-audit-log.php:1314
1774
  msgid "You are using a version of PHP that is older than %s, which is no longer supported."
1775
  msgstr ""
1776
 
1777
- #: wp-security-audit-log.php:1316
1778
  msgid "Contact us on <a href=\"mailto:plugins@wpwhitesecurity.com\">plugins@wpwhitesecurity.com</a> to help you switch the version of PHP you are using."
1779
  msgstr ""
1780
 
1781
  #. translators: %s: Activity Log for MainWP plugin hyperlink
1782
- #: wp-security-audit-log.php:1321
1783
  msgid "Please install the %s plugin on the MainWP dashboard."
1784
  msgstr ""
1785
 
1786
- #: wp-security-audit-log.php:1321
1787
  msgid "Activity Log for MainWP"
1788
  msgstr ""
1789
 
1790
  #. translators: %s: Getting started guide hyperlink
1791
- #: wp-security-audit-log.php:1323
1792
  msgid "The WP Activity Log should be installed on the child sites only. Refer to the %s for more information."
1793
  msgstr ""
1794
 
1795
- #: wp-security-audit-log.php:1323
1796
  msgid "getting started guide"
1797
  msgstr ""
1798
 
1799
- #: wp-security-audit-log.php:1389
1800
  msgid "This plugin uses 3 tables in the WordPress database to store the activity log and settings. It seems that these tables were not created."
1801
  msgstr ""
1802
 
1803
- #: wp-security-audit-log.php:1391
1804
  msgid "This could happen because the database user does not have the right privileges to create the tables in the database. We recommend you to update the privileges and try enabling the plugin again."
1805
  msgstr ""
1806
 
1807
  #. translators: %s: Support Hyperlink
1808
- #: wp-security-audit-log.php:1393
1809
  msgid "If after doing so you still have issues, please send us an email on %s for assistance."
1810
  msgstr ""
1811
 
1812
- #: wp-security-audit-log.php:1393
1813
  msgid "support@wpsecurityauditlog.com"
1814
  msgstr ""
1815
 
1816
- #: wp-security-audit-log.php:1905
1817
  msgid "For security and auditing purposes, a record of all of your logged-in actions and changes within the WordPress dashboard will be recorded in an activity log with the <a href=\"https://wpactivitylog.com/\" target=\"_blank\">WP Activity Log plugin</a>. The audit log also includes the IP address where you accessed this site from."
1818
  msgstr ""
1819
 
1820
- #: wp-security-audit-log.php:1924
1821
  msgid "Every 6 hours"
1822
  msgstr ""
1823
 
1824
- #: wp-security-audit-log.php:1928
1825
  msgid "Every 45 minutes"
1826
  msgstr ""
1827
 
1828
- #: wp-security-audit-log.php:1932
1829
  msgid "Every 30 minutes"
1830
  msgstr ""
1831
 
1832
- #: wp-security-audit-log.php:1936
1833
  msgid "Every 15 minutes"
1834
  msgstr ""
1835
 
1836
- #: wp-security-audit-log.php:1940
1837
  msgid "Every 10 minutes"
1838
  msgstr ""
1839
 
1840
- #: wp-security-audit-log.php:1944
1841
  msgid "Every 1 minute"
1842
  msgstr ""
1843
 
1844
  #. translators: 1. Deprecated method name 2. Version since deprecated
1845
- #: wp-security-audit-log.php:1958
1846
  msgid "Method %1$s is deprecated since version %2$s!"
1847
  msgstr ""
1848
 
@@ -1877,10 +1993,6 @@ msgstr ""
1877
  msgid "User"
1878
  msgstr ""
1879
 
1880
- #: classes/AlertManager.php:1127, classes/AlertManager.php:1909, classes/AuditLogGridView.php:511, classes/AuditLogListView.php:533, extensions/email-notifications/classes/DailyNotification.php:241, extensions/email-notifications/classes/Notifier.php:627, extensions/reports/classes/Common.php:666
1881
- msgid "System"
1882
- msgstr ""
1883
-
1884
  #: classes/AlertManager.php:1128, classes/AuditLogGridView.php:502, classes/AuditLogListView.php:521
1885
  msgid "Plugin"
1886
  msgstr ""
@@ -2153,10 +2265,6 @@ msgstr ""
2153
  msgid "Unregistered user"
2154
  msgstr ""
2155
 
2156
- #: classes/AuditLogGridView.php:505, classes/AuditLogListView.php:525
2157
- msgid "Plugins"
2158
- msgstr ""
2159
-
2160
  #: classes/AuditLogGridView.php:484, classes/AuditLogListView.php:502
2161
  msgid "Show me all activity by this User"
2162
  msgstr ""
@@ -2600,59 +2708,59 @@ msgstr ""
2600
  msgid "Notifications Extension"
2601
  msgstr ""
2602
 
2603
- #: classes/Views/EmailNotifications.php:42
2604
  msgid "Notifications &#8682;"
2605
  msgstr ""
2606
 
2607
- #: classes/Views/EmailNotifications.php:114
2608
  msgid "SMS & Email Notifications"
2609
  msgstr ""
2610
 
2611
- #: classes/Views/EmailNotifications.php:115
2612
  msgid "Get instantly alerted of important changes on your site via SMS and email notifications. Upgrade to premium and:"
2613
  msgstr ""
2614
 
2615
- #: classes/Views/EmailNotifications.php:118
2616
  msgid "Configure any type of SMS & email notifications"
2617
  msgstr ""
2618
 
2619
- #: classes/Views/EmailNotifications.php:119
2620
  msgid "Receive notifications for when users login, change their password or change content"
2621
  msgstr ""
2622
 
2623
- #: classes/Views/EmailNotifications.php:120
2624
  msgid "Get alerted of site changes like plugin installs, theme changes etc"
2625
  msgstr ""
2626
 
2627
- #: classes/Views/EmailNotifications.php:121
2628
  msgid "Enable built-in security email notifications of suspicious user activity"
2629
  msgstr ""
2630
 
2631
- #: classes/Views/EmailNotifications.php:122
2632
  msgid "Personalize all email and SMS templates"
2633
  msgstr ""
2634
 
2635
- #: classes/Views/EmailNotifications.php:123
2636
  msgid "Use the trigger builder to configure any type of notification criteria!"
2637
  msgstr ""
2638
 
2639
- #: classes/Views/EmailNotifications.php:125
2640
  msgid "Getting started is really easy. You can use one of the plugin’s built-in notifications or create your own using the easy to use trigger builder."
2641
  msgstr ""
2642
 
2643
- #: classes/Views/EmailNotifications.php:128
2644
  msgid "Email and SMS notifications instantly alert you of important changes on your WordPress site."
2645
  msgstr ""
2646
 
2647
- #: classes/Views/EmailNotifications.php:132
2648
  msgid "Easily enable any of the built-in security and user management notifications."
2649
  msgstr ""
2650
 
2651
- #: classes/Views/EmailNotifications.php:136
2652
  msgid "Use the trigger builder to configure any type of email and SMS notification to get instantly alerted of site changes that are important to you and your business."
2653
  msgstr ""
2654
 
2655
- #: classes/Views/EmailNotifications.php:140
2656
  msgid "All email and SMS templates are configurable, allowing you to personalize them."
2657
  msgstr ""
2658
 
@@ -2660,43 +2768,43 @@ msgstr ""
2660
  msgid "External DB Extension"
2661
  msgstr ""
2662
 
2663
- #: classes/Views/ExternalDB.php:42
2664
  msgid "DB & Integrations &#8682;"
2665
  msgstr ""
2666
 
2667
- #: classes/Views/ExternalDB.php:114
2668
  msgid "Activity log database & integration tools"
2669
  msgstr ""
2670
 
2671
- #: classes/Views/ExternalDB.php:115
2672
  msgid "There are several benefits to segregating the logs from the main site database, and to be able to mirror the logs to third party and centralized business solutions. Upgrade to premium and:"
2673
  msgstr ""
2674
 
2675
- #: classes/Views/ExternalDB.php:118
2676
  msgid "Store the audit logs of your sites on an external database"
2677
  msgstr ""
2678
 
2679
- #: classes/Views/ExternalDB.php:119
2680
  msgid "Configuring archiving and store older log data in a segregated database"
2681
  msgstr ""
2682
 
2683
- #: classes/Views/ExternalDB.php:120
2684
  msgid "Mirror the logs to syslog, Slack, Papertrail and central business communication services"
2685
  msgstr ""
2686
 
2687
- #: classes/Views/ExternalDB.php:121
2688
  msgid "Configure filters to filter what is mirrored and archived in the databases and services"
2689
  msgstr ""
2690
 
2691
- #: classes/Views/ExternalDB.php:126
2692
  msgid "Easily configure integration and database connections thanks to a user friendly wizard."
2693
  msgstr ""
2694
 
2695
- #: classes/Views/ExternalDB.php:130
2696
  msgid "Configure activity log filters for third party services connections."
2697
  msgstr ""
2698
 
2699
- #: classes/Views/ExternalDB.php:134
2700
  msgid "Configure an unlimited number of connections to different databases and third party services."
2701
  msgstr ""
2702
 
@@ -2812,47 +2920,47 @@ msgstr ""
2812
  msgid "User Sessions Management Extension"
2813
  msgstr ""
2814
 
2815
- #: classes/Views/LogInUsers.php:42
2816
  msgid "Logged In Users &#8682;"
2817
  msgstr ""
2818
 
2819
- #: classes/Views/LogInUsers.php:114
2820
  msgid "Real-Time Users Sessions Management"
2821
  msgstr ""
2822
 
2823
- #: classes/Views/LogInUsers.php:115
2824
  msgid "Better manage your users’ logins and sessions. Upgrade to premium and:"
2825
  msgstr ""
2826
 
2827
- #: classes/Views/LogInUsers.php:119
2828
  msgid "See who is logged in to your site"
2829
  msgstr ""
2830
 
2831
- #: classes/Views/LogInUsers.php:120
2832
  msgid "When they logged in and from where"
2833
  msgstr ""
2834
 
2835
- #: classes/Views/LogInUsers.php:121
2836
  msgid "The last change they have done in real-time"
2837
  msgstr ""
2838
 
2839
- #: classes/Views/LogInUsers.php:122
2840
  msgid "Terminate any users’ session with a click of a button"
2841
  msgstr ""
2842
 
2843
- #: classes/Views/LogInUsers.php:123
2844
  msgid "Limit or block multiple sessions for the same user"
2845
  msgstr ""
2846
 
2847
- #: classes/Views/LogInUsers.php:124
2848
  msgid "Get alerted of multiple same user sessions"
2849
  msgstr ""
2850
 
2851
- #: classes/Views/LogInUsers.php:128
2852
  msgid "See who is logged in to your WordPress site and multisite network in real-time."
2853
  msgstr ""
2854
 
2855
- #: classes/Views/LogInUsers.php:132
2856
  msgid "Limit, manage and block multiple same user sessions easily."
2857
  msgstr ""
2858
 
@@ -2860,47 +2968,47 @@ msgstr ""
2860
  msgid "Reports Extension"
2861
  msgstr ""
2862
 
2863
- #: classes/Views/Reports.php:42
2864
  msgid "Reports &#8682;"
2865
  msgstr ""
2866
 
2867
- #: classes/Views/Reports.php:114
2868
  msgid "Individual, Scheduled & Automated Reports"
2869
  msgstr ""
2870
 
2871
- #: classes/Views/Reports.php:115
2872
  msgid "Many are not fans of reports, however reports are vital in business. With them you can make informed decisions that allow you to improve user productivity and the business. Upgrade to Premium so you can:"
2873
  msgstr ""
2874
 
2875
- #: classes/Views/Reports.php:118
2876
  msgid "Generate any type of user and site (in multisite) activity report"
2877
  msgstr ""
2878
 
2879
- #: classes/Views/Reports.php:119
2880
  msgid "Automate and schedule daily, weekly, monthly and quarterly reports"
2881
  msgstr ""
2882
 
2883
- #: classes/Views/Reports.php:120
2884
  msgid "Received reports automatically via email"
2885
  msgstr ""
2886
 
2887
- #: classes/Views/Reports.php:121
2888
  msgid "Create statistics reports about users’ views, logins, activity from IP addresses & more"
2889
  msgstr ""
2890
 
2891
- #: classes/Views/Reports.php:123
2892
  msgid "Reports are vital to the success of your business and management of your site."
2893
  msgstr ""
2894
 
2895
- #: classes/Views/Reports.php:126
2896
  msgid "Generate a HTML or CSV report."
2897
  msgstr ""
2898
 
2899
- #: classes/Views/Reports.php:130
2900
  msgid "Easily configure a criteria for your reports."
2901
  msgstr ""
2902
 
2903
- #: classes/Views/Reports.php:134
2904
  msgid "Schedule reports that are sent to you by email automatically."
2905
  msgstr ""
2906
 
@@ -2908,47 +3016,47 @@ msgstr ""
2908
  msgid "Search Extension"
2909
  msgstr ""
2910
 
2911
- #: classes/Views/Search.php:42
2912
  msgid "Search &#8682;"
2913
  msgstr ""
2914
 
2915
- #: classes/Views/Search.php:114
2916
  msgid "Search & Filters for the Activity Log"
2917
  msgstr ""
2918
 
2919
- #: classes/Views/Search.php:115
2920
  msgid "You can find all the information you want in the activity log, if you know what you are looking for and have the right tools. Upgrade to premium so you can:"
2921
  msgstr ""
2922
 
2923
- #: classes/Views/Search.php:118
2924
  msgid "Do text searches and use filters to fine tune the search results"
2925
  msgstr ""
2926
 
2927
- #: classes/Views/Search.php:119
2928
  msgid "Easily find when and who did a specific change on your site"
2929
  msgstr ""
2930
 
2931
- #: classes/Views/Search.php:120
2932
  msgid "Easily identify and track back suspicious user behaviour"
2933
  msgstr ""
2934
 
2935
- #: classes/Views/Search.php:121
2936
  msgid "Search for the cause of a problem and ease troubleshooting"
2937
  msgstr ""
2938
 
2939
- #: classes/Views/Search.php:122
2940
  msgid "Save search terms and filters for future use and improved productivity"
2941
  msgstr ""
2942
 
2943
- #: classes/Views/Search.php:127
2944
  msgid "Use the text search to find a specific change."
2945
  msgstr ""
2946
 
2947
- #: classes/Views/Search.php:131
2948
  msgid "Configure any filter you need to fine tune the search results and find what you are looking for with much less effort."
2949
  msgstr ""
2950
 
2951
- #: classes/Views/Search.php:135
2952
  msgid "Save search terms and filters to run the searches again in the future with just a single click."
2953
  msgstr ""
2954
 
@@ -2956,10 +3064,6 @@ msgstr ""
2956
  msgid "General"
2957
  msgstr ""
2958
 
2959
- #: classes/Views/Settings.php:99
2960
- msgid "File Changes"
2961
- msgstr ""
2962
-
2963
  #: classes/Views/Settings.php:105
2964
  msgid "Exclude Objects"
2965
  msgstr ""
@@ -4529,10 +4633,6 @@ msgstr ""
4529
  msgid "Critical Event is Generated"
4530
  msgstr ""
4531
 
4532
- #: extensions/email-notifications/classes/Notifications.php:1255
4533
- msgid "User Activity"
4534
- msgstr ""
4535
-
4536
  #: extensions/email-notifications/classes/Notifications.php:1264
4537
  msgid "User logs in (Event ID 1000)"
4538
  msgstr ""
1
+ # Copyright (C) 2021 wp-security-audit-log
2
  # This file is distributed under the same license as the wp-security-audit-log package.
3
  msgid ""
4
  msgstr ""
36
  msgid "Informational events."
37
  msgstr ""
38
 
39
+ #: defaults.php:86
40
+ msgid "Users Logins & Sessions Events"
41
+ msgstr ""
42
+
43
+ #: defaults.php:87, extensions/email-notifications/classes/Notifications.php:1255
44
+ msgid "User Activity"
45
+ msgstr ""
46
+
47
  #: defaults.php:88
48
  msgid "User logged in"
49
  msgstr ""
116
  msgid "User deleted file from Uploads directory"
117
  msgstr ""
118
 
119
+ #: defaults.php:102
120
+ msgid "Content & Comments"
121
+ msgstr ""
122
+
123
+ #: defaults.php:103
124
+ msgid "Content"
125
+ msgstr ""
126
+
127
  #: defaults.php:104
128
  msgid "User created a new post and saved it as draft"
129
  msgstr ""
308
  msgid "Pingbacks and Trackbacks in the post %PostTitle% %LineBreak% ID: %PostID% %LineBreak% Type: %PostType% %LineBreak% Status: %PostStatus% %PostUrlIfPlublished% %LineBreak% %EditorLinkPost%"
309
  msgstr ""
310
 
311
+ #: defaults.php:129
312
+ msgid "Tags"
313
+ msgstr ""
314
+
315
  #: defaults.php:130
316
  msgid "User added post tag"
317
  msgstr ""
368
  msgid "Changed the description of the tag %tag% %LineBreak% Slug: %Slug% %LineBreak% Previous description: %old_desc% %LineBreak% New description: %new_desc% %LineBreak% %TagLink%"
369
  msgstr ""
370
 
371
+ #: defaults.php:139
372
+ msgid "Categories"
373
+ msgstr ""
374
+
375
  #: defaults.php:140
376
  msgid "User changed post category"
377
  msgstr ""
420
  msgid "Changed the slug of the category: %CategoryName% %LineBreak% Previous slug: %old_slug% %LineBreak% New slug: %new_slug% %LineBreak% %cat_link%"
421
  msgstr ""
422
 
423
+ #: defaults.php:148
424
+ msgid "Custom Fields"
425
+ msgstr ""
426
+
427
  #: defaults.php:149
428
  msgid "User created a custom field for a post"
429
  msgstr ""
456
  msgid "Old custom field name: %MetaKeyOld% %LineBreak% New custom field name: %MetaKeyNew% %LineBreak% Post: %PostTitle% %LineBreak% Post ID: %PostID% %LineBreak% Post Type: %PostType% %LineBreak% Post Status: %PostStatus% %PostUrlIfPlublished% %LineBreak% %EditorLinkPost%"
457
  msgstr ""
458
 
459
+ #: defaults.php:155
460
+ msgid "Custom Fields (ACF)"
461
+ msgstr ""
462
+
463
+ #: defaults.php:175
464
+ msgid "Comments"
465
+ msgstr ""
466
+
467
  #: defaults.php:176
468
  msgid "User approved a comment"
469
  msgstr ""
548
  msgid "Visitor posted a comment"
549
  msgstr ""
550
 
551
+ #: defaults.php:196
552
+ msgid "Widgets"
553
+ msgstr ""
554
+
555
  #: defaults.php:197
556
  msgid "User added a new widget"
557
  msgstr ""
592
  msgid "Changed the position of the %WidgetName% widget in %Sidebar%."
593
  msgstr ""
594
 
595
+ #: defaults.php:207
596
+ msgid "Menus"
597
+ msgstr ""
598
+
599
  #: defaults.php:208
600
  msgid "User created new menu"
601
  msgstr ""
668
  msgid "Menu name: %MenuName% %LineBreak% Moved item %ItemName% as a sub-item of %ParentName%"
669
  msgstr ""
670
 
671
+ #: defaults.php:227
672
+ msgid "Custom Post Types"
673
+ msgstr ""
674
+
675
  #: defaults.php:228
676
  msgid "User modified a draft blog post"
677
  msgstr ""
872
  msgid "Plugin modified the custom post %PostTitle%. View the post: %EditorLinkPost%."
873
  msgstr ""
874
 
875
+ #: defaults.php:267
876
+ msgid "Pages"
877
+ msgstr ""
878
+
879
  #: defaults.php:268
880
  msgid "User created a new WordPress page and saved it as draft"
881
  msgstr ""
1096
  msgid "Plugin modified the page %PostTitle%. View the page: %EditorLinkPage%."
1097
  msgstr ""
1098
 
1099
+ #: defaults.php:302
1100
+ msgid "User Accounts"
1101
+ msgstr ""
1102
+
1103
+ #: defaults.php:303
1104
+ msgid "User Profiles"
1105
+ msgstr ""
1106
+
1107
  #: defaults.php:304
1108
  msgid "New user was created on WordPress"
1109
  msgstr ""
1224
  msgid "Changed the display name of the user %TargetUsername% %LineBreak% Previous display name: %old_displayname% %LineBreak% New display name: %new_displayname% %LineBreak% Role: %Roles% %LineBreak% First name: %FirstName% %LineBreak% Last name: %LastName% %LineBreak% %EditUserLink%"
1225
  msgstr ""
1226
 
1227
+ #: defaults.php:321
1228
+ msgid "Multisite User Profiles"
1229
+ msgstr ""
1230
+
1231
  #: defaults.php:322
1232
  msgid "User granted Super Admin privileges"
1233
  msgstr ""
1268
  msgid "Created a new network user %NewUserData->Username% %LineBreak% First name: %NewUserData->FirstName% %LineBreak% Last name: %NewUserData->LastName% %LineBreak% %EditUserLink%"
1269
  msgstr ""
1270
 
1271
+ #: defaults.php:330
1272
+ msgid "Plugins & Themes"
1273
+ msgstr ""
1274
+
1275
+ #: defaults.php:331, classes/AuditLogGridView.php:505, classes/AuditLogListView.php:525
1276
+ msgid "Plugins"
1277
+ msgstr ""
1278
+
1279
  #: defaults.php:332
1280
  msgid "User installed a plugin"
1281
  msgstr ""
1352
  msgid "Modified a file with the plugin editor %LineBreak% File: %File%"
1353
  msgstr ""
1354
 
1355
+ #: defaults.php:345
1356
+ msgid "Themes"
1357
+ msgstr ""
1358
+
1359
  #: defaults.php:346
1360
  msgid "User installed a theme"
1361
  msgstr ""
1416
  msgid "Modified a file with the theme editor %LineBreak% File: %Theme%/%File%"
1417
  msgstr ""
1418
 
1419
+ #: defaults.php:356
1420
+ msgid "Themes on Multisite"
1421
+ msgstr ""
1422
+
1423
  #: defaults.php:357
1424
  msgid "Activated theme on network"
1425
  msgstr ""
1436
  msgid "Network deactivated the theme %Theme->Name% %LineBreak% Install location: %Theme->get_template_directory%"
1437
  msgstr ""
1438
 
1439
+ #: defaults.php:361
1440
+ msgid "Database Events"
1441
+ msgstr ""
1442
+
1443
  #: defaults.php:362
1444
  msgid "Unknown component created tables"
1445
  msgstr ""
1488
  msgid "WordPress deleted these tables from the database %LineBreak% Tables: %TableNames%"
1489
  msgstr ""
1490
 
1491
+ #: defaults.php:371
1492
+ msgid "WordPress & System"
1493
+ msgstr ""
1494
+
1495
+ #: defaults.php:372, classes/AlertManager.php:1127, classes/AlertManager.php:1909, classes/AuditLogGridView.php:511, classes/AuditLogListView.php:533, extensions/email-notifications/classes/DailyNotification.php:241, extensions/email-notifications/classes/Notifier.php:627, extensions/reports/classes/Common.php:666
1496
+ msgid "System"
1497
+ msgstr ""
1498
+
1499
  #: defaults.php:373
1500
  msgid "Unknown Error"
1501
  msgstr ""
1544
  msgid "%PromoName% %PromoMessage%"
1545
  msgstr ""
1546
 
1547
+ #: defaults.php:383
1548
+ msgid "Activity log plugin"
1549
+ msgstr ""
1550
+
1551
  #: defaults.php:384
1552
  msgid "Events automatically pruned by system"
1553
  msgstr ""
1576
  msgid "Some WP Activity Log plugin settings on this site were propagated and overridden from the MainWP dashboard."
1577
  msgstr ""
1578
 
1579
+ #: defaults.php:390
1580
+ msgid "WordPress Site Settings"
1581
+ msgstr ""
1582
+
1583
  #: defaults.php:391
1584
  msgid "Option Anyone Can Register in WordPress settings changed"
1585
  msgstr ""
1712
  msgid "Changed the site address (URL) %LineBreak% Previous URL: %old_url% %LineBreak% New URL: %new_url%"
1713
  msgstr ""
1714
 
1715
+ #: defaults.php:411
1716
+ msgid "Multisite Network Sites"
1717
+ msgstr ""
1718
+
1719
+ #: defaults.php:412
1720
+ msgid "MultiSite"
1721
+ msgstr ""
1722
+
1723
  #: defaults.php:413
1724
  msgid "New site added on the network"
1725
  msgstr ""
1776
  msgid "Changed the <strong>Allow new registrations</strong> settings %LineBreak% Previous setting: %previous_setting% %LineBreak% New setting: %new_setting%"
1777
  msgstr ""
1778
 
1779
+ #: defaults.php:428, classes/Views/Settings.php:99
1780
+ msgid "File Changes"
1781
+ msgstr ""
1782
+
1783
+ #: defaults.php:429
1784
+ msgid "Monitor File Changes"
1785
+ msgstr ""
1786
+
1787
  #: defaults.php:430
1788
  msgid "Dummy"
1789
  msgstr ""
1790
 
1791
  #. translators: Username
1792
  #. translators: Username
1793
+ #: wp-security-audit-log.php:907, wp-security-audit-log.php:934
1794
  msgid "Hey %1$s"
1795
  msgstr ""
1796
 
1797
+ #: wp-security-audit-log.php:908
1798
  msgid "Never miss an important update! Opt-in to our security and feature updates notifications, and non-sensitive diagnostic tracking with freemius.com."
1799
  msgstr ""
1800
 
1801
+ #: wp-security-audit-log.php:909, wp-security-audit-log.php:937
1802
  msgid "Note: "
1803
  msgstr ""
1804
 
1805
+ #: wp-security-audit-log.php:910, wp-security-audit-log.php:938
1806
  msgid "NO ACTIVITY LOG ACTIVITY & DATA IS SENT BACK TO OUR SERVERS."
1807
  msgstr ""
1808
 
1809
  #. translators: 1: Plugin name. 2: Freemius link.
1810
+ #: wp-security-audit-log.php:936
1811
  msgid "Please help us improve %2$s! If you opt-in, some non-sensitive data about your usage of %2$s will be sent to %5$s, a diagnostic tracking service we use. If you skip this, that's okay! %2$s will still work just fine."
1812
  msgstr ""
1813
 
1814
  #. translators: Plugin name
1815
+ #: wp-security-audit-log.php:958
1816
  msgid "Get a free 7-day trial of the premium edition of %s. No credit card required, no commitments!"
1817
  msgstr ""
1818
 
1819
+ #: wp-security-audit-log.php:959, classes/AlertManager.php:1145, extensions/external-db/classes/Connections.php:173
1820
  msgid "WP Activity Log"
1821
  msgstr ""
1822
 
1823
+ #: wp-security-audit-log.php:963
1824
  msgid "Start free trial"
1825
  msgstr ""
1826
 
1827
+ #: wp-security-audit-log.php:1031
1828
  msgid "You need to activate the licence key to use WP Activity Log Premium. %2$s"
1829
  msgstr ""
1830
 
1831
+ #: wp-security-audit-log.php:1032
1832
  msgid "Activate the licence key now"
1833
  msgstr ""
1834
 
1835
  #. translators: Number of sites
1836
+ #: wp-security-audit-log.php:1049
1837
  msgid "The license is limited to %s sub-sites. You need to upgrade your license to cover all the sub-sites on this network."
1838
  msgstr ""
1839
 
1840
+ #: wp-security-audit-log.php:1159
1841
  msgid "Error: You do not have sufficient permissions to disable this custom field."
1842
  msgstr ""
1843
 
1844
+ #: wp-security-audit-log.php:1194
1845
  msgid "Custom Field <strong>%1$s</strong> is no longer being monitored.<br />Enable the monitoring of this custom field again from the"
1846
  msgstr ""
1847
 
1848
+ #: wp-security-audit-log.php:1197
1849
  msgid "Excluded Objects"
1850
  msgstr ""
1851
 
1852
+ #: wp-security-audit-log.php:1198
1853
  msgid " tab in the plugin settings"
1854
  msgstr ""
1855
 
1856
+ #: wp-security-audit-log.php:1211
1857
  msgid "Error: You do not have sufficient permissions to disable this alert."
1858
  msgstr ""
1859
 
1860
+ #: wp-security-audit-log.php:1235
1861
  msgid "Alert %1$s is no longer being monitored.<br /> %2$s"
1862
  msgstr ""
1863
 
1864
+ #: wp-security-audit-log.php:1235
1865
  msgid "You can enable this alert again from the Enable/Disable Alerts node in the plugin menu."
1866
  msgstr ""
1867
 
1868
+ #: wp-security-audit-log.php:1260, classes/Views/SetupWizard.php:270
1869
  msgid "Installing, please wait"
1870
  msgstr ""
1871
 
1872
+ #: wp-security-audit-log.php:1261, classes/Views/SetupWizard.php:271
1873
  msgid "Already installed"
1874
  msgstr ""
1875
 
1876
+ #: wp-security-audit-log.php:1262, classes/Utilities/PluginInstallAndActivate.php:107, classes/Views/SetupWizard.php:272, classes/Views/SetupWizard.php:836
1877
  msgid "Extension installed"
1878
  msgstr ""
1879
 
1880
+ #: wp-security-audit-log.php:1263, classes/Views/SetupWizard.php:273
1881
  msgid "Extension activated"
1882
  msgstr ""
1883
 
1884
+ #: wp-security-audit-log.php:1264, classes/Views/SetupWizard.php:274
1885
  msgid "Install failed"
1886
  msgstr ""
1887
 
1888
  #. translators: %s: PHP Version
1889
+ #: wp-security-audit-log.php:1315
1890
  msgid "You are using a version of PHP that is older than %s, which is no longer supported."
1891
  msgstr ""
1892
 
1893
+ #: wp-security-audit-log.php:1317
1894
  msgid "Contact us on <a href=\"mailto:plugins@wpwhitesecurity.com\">plugins@wpwhitesecurity.com</a> to help you switch the version of PHP you are using."
1895
  msgstr ""
1896
 
1897
  #. translators: %s: Activity Log for MainWP plugin hyperlink
1898
+ #: wp-security-audit-log.php:1322
1899
  msgid "Please install the %s plugin on the MainWP dashboard."
1900
  msgstr ""
1901
 
1902
+ #: wp-security-audit-log.php:1322
1903
  msgid "Activity Log for MainWP"
1904
  msgstr ""
1905
 
1906
  #. translators: %s: Getting started guide hyperlink
1907
+ #: wp-security-audit-log.php:1324
1908
  msgid "The WP Activity Log should be installed on the child sites only. Refer to the %s for more information."
1909
  msgstr ""
1910
 
1911
+ #: wp-security-audit-log.php:1324
1912
  msgid "getting started guide"
1913
  msgstr ""
1914
 
1915
+ #: wp-security-audit-log.php:1390
1916
  msgid "This plugin uses 3 tables in the WordPress database to store the activity log and settings. It seems that these tables were not created."
1917
  msgstr ""
1918
 
1919
+ #: wp-security-audit-log.php:1392
1920
  msgid "This could happen because the database user does not have the right privileges to create the tables in the database. We recommend you to update the privileges and try enabling the plugin again."
1921
  msgstr ""
1922
 
1923
  #. translators: %s: Support Hyperlink
1924
+ #: wp-security-audit-log.php:1394
1925
  msgid "If after doing so you still have issues, please send us an email on %s for assistance."
1926
  msgstr ""
1927
 
1928
+ #: wp-security-audit-log.php:1394
1929
  msgid "support@wpsecurityauditlog.com"
1930
  msgstr ""
1931
 
1932
+ #: wp-security-audit-log.php:1906
1933
  msgid "For security and auditing purposes, a record of all of your logged-in actions and changes within the WordPress dashboard will be recorded in an activity log with the <a href=\"https://wpactivitylog.com/\" target=\"_blank\">WP Activity Log plugin</a>. The audit log also includes the IP address where you accessed this site from."
1934
  msgstr ""
1935
 
1936
+ #: wp-security-audit-log.php:1925
1937
  msgid "Every 6 hours"
1938
  msgstr ""
1939
 
1940
+ #: wp-security-audit-log.php:1929
1941
  msgid "Every 45 minutes"
1942
  msgstr ""
1943
 
1944
+ #: wp-security-audit-log.php:1933
1945
  msgid "Every 30 minutes"
1946
  msgstr ""
1947
 
1948
+ #: wp-security-audit-log.php:1937
1949
  msgid "Every 15 minutes"
1950
  msgstr ""
1951
 
1952
+ #: wp-security-audit-log.php:1941
1953
  msgid "Every 10 minutes"
1954
  msgstr ""
1955
 
1956
+ #: wp-security-audit-log.php:1945
1957
  msgid "Every 1 minute"
1958
  msgstr ""
1959
 
1960
  #. translators: 1. Deprecated method name 2. Version since deprecated
1961
+ #: wp-security-audit-log.php:1959
1962
  msgid "Method %1$s is deprecated since version %2$s!"
1963
  msgstr ""
1964
 
1993
  msgid "User"
1994
  msgstr ""
1995
 
 
 
 
 
1996
  #: classes/AlertManager.php:1128, classes/AuditLogGridView.php:502, classes/AuditLogListView.php:521
1997
  msgid "Plugin"
1998
  msgstr ""
2265
  msgid "Unregistered user"
2266
  msgstr ""
2267
 
 
 
 
 
2268
  #: classes/AuditLogGridView.php:484, classes/AuditLogListView.php:502
2269
  msgid "Show me all activity by this User"
2270
  msgstr ""
2708
  msgid "Notifications Extension"
2709
  msgstr ""
2710
 
2711
+ #: classes/Views/EmailNotifications.php:35
2712
  msgid "Notifications &#8682;"
2713
  msgstr ""
2714
 
2715
+ #: classes/Views/EmailNotifications.php:49
2716
  msgid "SMS & Email Notifications"
2717
  msgstr ""
2718
 
2719
+ #: classes/Views/EmailNotifications.php:50
2720
  msgid "Get instantly alerted of important changes on your site via SMS and email notifications. Upgrade to premium and:"
2721
  msgstr ""
2722
 
2723
+ #: classes/Views/EmailNotifications.php:53
2724
  msgid "Configure any type of SMS & email notifications"
2725
  msgstr ""
2726
 
2727
+ #: classes/Views/EmailNotifications.php:54
2728
  msgid "Receive notifications for when users login, change their password or change content"
2729
  msgstr ""
2730
 
2731
+ #: classes/Views/EmailNotifications.php:55
2732
  msgid "Get alerted of site changes like plugin installs, theme changes etc"
2733
  msgstr ""
2734
 
2735
+ #: classes/Views/EmailNotifications.php:56
2736
  msgid "Enable built-in security email notifications of suspicious user activity"
2737
  msgstr ""
2738
 
2739
+ #: classes/Views/EmailNotifications.php:57
2740
  msgid "Personalize all email and SMS templates"
2741
  msgstr ""
2742
 
2743
+ #: classes/Views/EmailNotifications.php:58
2744
  msgid "Use the trigger builder to configure any type of notification criteria!"
2745
  msgstr ""
2746
 
2747
+ #: classes/Views/EmailNotifications.php:60
2748
  msgid "Getting started is really easy. You can use one of the plugin’s built-in notifications or create your own using the easy to use trigger builder."
2749
  msgstr ""
2750
 
2751
+ #: classes/Views/EmailNotifications.php:63
2752
  msgid "Email and SMS notifications instantly alert you of important changes on your WordPress site."
2753
  msgstr ""
2754
 
2755
+ #: classes/Views/EmailNotifications.php:67
2756
  msgid "Easily enable any of the built-in security and user management notifications."
2757
  msgstr ""
2758
 
2759
+ #: classes/Views/EmailNotifications.php:71
2760
  msgid "Use the trigger builder to configure any type of email and SMS notification to get instantly alerted of site changes that are important to you and your business."
2761
  msgstr ""
2762
 
2763
+ #: classes/Views/EmailNotifications.php:75
2764
  msgid "All email and SMS templates are configurable, allowing you to personalize them."
2765
  msgstr ""
2766
 
2768
  msgid "External DB Extension"
2769
  msgstr ""
2770
 
2771
+ #: classes/Views/ExternalDB.php:35
2772
  msgid "DB & Integrations &#8682;"
2773
  msgstr ""
2774
 
2775
+ #: classes/Views/ExternalDB.php:49
2776
  msgid "Activity log database & integration tools"
2777
  msgstr ""
2778
 
2779
+ #: classes/Views/ExternalDB.php:50
2780
  msgid "There are several benefits to segregating the logs from the main site database, and to be able to mirror the logs to third party and centralized business solutions. Upgrade to premium and:"
2781
  msgstr ""
2782
 
2783
+ #: classes/Views/ExternalDB.php:53
2784
  msgid "Store the audit logs of your sites on an external database"
2785
  msgstr ""
2786
 
2787
+ #: classes/Views/ExternalDB.php:54
2788
  msgid "Configuring archiving and store older log data in a segregated database"
2789
  msgstr ""
2790
 
2791
+ #: classes/Views/ExternalDB.php:55
2792
  msgid "Mirror the logs to syslog, Slack, Papertrail and central business communication services"
2793
  msgstr ""
2794
 
2795
+ #: classes/Views/ExternalDB.php:56
2796
  msgid "Configure filters to filter what is mirrored and archived in the databases and services"
2797
  msgstr ""
2798
 
2799
+ #: classes/Views/ExternalDB.php:61
2800
  msgid "Easily configure integration and database connections thanks to a user friendly wizard."
2801
  msgstr ""
2802
 
2803
+ #: classes/Views/ExternalDB.php:65
2804
  msgid "Configure activity log filters for third party services connections."
2805
  msgstr ""
2806
 
2807
+ #: classes/Views/ExternalDB.php:69
2808
  msgid "Configure an unlimited number of connections to different databases and third party services."
2809
  msgstr ""
2810
 
2920
  msgid "User Sessions Management Extension"
2921
  msgstr ""
2922
 
2923
+ #: classes/Views/LogInUsers.php:35
2924
  msgid "Logged In Users &#8682;"
2925
  msgstr ""
2926
 
2927
+ #: classes/Views/LogInUsers.php:49
2928
  msgid "Real-Time Users Sessions Management"
2929
  msgstr ""
2930
 
2931
+ #: classes/Views/LogInUsers.php:50
2932
  msgid "Better manage your users’ logins and sessions. Upgrade to premium and:"
2933
  msgstr ""
2934
 
2935
+ #: classes/Views/LogInUsers.php:54
2936
  msgid "See who is logged in to your site"
2937
  msgstr ""
2938
 
2939
+ #: classes/Views/LogInUsers.php:55
2940
  msgid "When they logged in and from where"
2941
  msgstr ""
2942
 
2943
+ #: classes/Views/LogInUsers.php:56
2944
  msgid "The last change they have done in real-time"
2945
  msgstr ""
2946
 
2947
+ #: classes/Views/LogInUsers.php:57
2948
  msgid "Terminate any users’ session with a click of a button"
2949
  msgstr ""
2950
 
2951
+ #: classes/Views/LogInUsers.php:58
2952
  msgid "Limit or block multiple sessions for the same user"
2953
  msgstr ""
2954
 
2955
+ #: classes/Views/LogInUsers.php:59
2956
  msgid "Get alerted of multiple same user sessions"
2957
  msgstr ""
2958
 
2959
+ #: classes/Views/LogInUsers.php:63
2960
  msgid "See who is logged in to your WordPress site and multisite network in real-time."
2961
  msgstr ""
2962
 
2963
+ #: classes/Views/LogInUsers.php:67
2964
  msgid "Limit, manage and block multiple same user sessions easily."
2965
  msgstr ""
2966
 
2968
  msgid "Reports Extension"
2969
  msgstr ""
2970
 
2971
+ #: classes/Views/Reports.php:35
2972
  msgid "Reports &#8682;"
2973
  msgstr ""
2974
 
2975
+ #: classes/Views/Reports.php:49
2976
  msgid "Individual, Scheduled & Automated Reports"
2977
  msgstr ""
2978
 
2979
+ #: classes/Views/Reports.php:50
2980
  msgid "Many are not fans of reports, however reports are vital in business. With them you can make informed decisions that allow you to improve user productivity and the business. Upgrade to Premium so you can:"
2981
  msgstr ""
2982
 
2983
+ #: classes/Views/Reports.php:53
2984
  msgid "Generate any type of user and site (in multisite) activity report"
2985
  msgstr ""
2986
 
2987
+ #: classes/Views/Reports.php:54
2988
  msgid "Automate and schedule daily, weekly, monthly and quarterly reports"
2989
  msgstr ""
2990
 
2991
+ #: classes/Views/Reports.php:55
2992
  msgid "Received reports automatically via email"
2993
  msgstr ""
2994
 
2995
+ #: classes/Views/Reports.php:56
2996
  msgid "Create statistics reports about users’ views, logins, activity from IP addresses & more"
2997
  msgstr ""
2998
 
2999
+ #: classes/Views/Reports.php:58
3000
  msgid "Reports are vital to the success of your business and management of your site."
3001
  msgstr ""
3002
 
3003
+ #: classes/Views/Reports.php:61
3004
  msgid "Generate a HTML or CSV report."
3005
  msgstr ""
3006
 
3007
+ #: classes/Views/Reports.php:65
3008
  msgid "Easily configure a criteria for your reports."
3009
  msgstr ""
3010
 
3011
+ #: classes/Views/Reports.php:69
3012
  msgid "Schedule reports that are sent to you by email automatically."
3013
  msgstr ""
3014
 
3016
  msgid "Search Extension"
3017
  msgstr ""
3018
 
3019
+ #: classes/Views/Search.php:35
3020
  msgid "Search &#8682;"
3021
  msgstr ""
3022
 
3023
+ #: classes/Views/Search.php:49
3024
  msgid "Search & Filters for the Activity Log"
3025
  msgstr ""
3026
 
3027
+ #: classes/Views/Search.php:50
3028
  msgid "You can find all the information you want in the activity log, if you know what you are looking for and have the right tools. Upgrade to premium so you can:"
3029
  msgstr ""
3030
 
3031
+ #: classes/Views/Search.php:53
3032
  msgid "Do text searches and use filters to fine tune the search results"
3033
  msgstr ""
3034
 
3035
+ #: classes/Views/Search.php:54
3036
  msgid "Easily find when and who did a specific change on your site"
3037
  msgstr ""
3038
 
3039
+ #: classes/Views/Search.php:55
3040
  msgid "Easily identify and track back suspicious user behaviour"
3041
  msgstr ""
3042
 
3043
+ #: classes/Views/Search.php:56
3044
  msgid "Search for the cause of a problem and ease troubleshooting"
3045
  msgstr ""
3046
 
3047
+ #: classes/Views/Search.php:57
3048
  msgid "Save search terms and filters for future use and improved productivity"
3049
  msgstr ""
3050
 
3051
+ #: classes/Views/Search.php:62
3052
  msgid "Use the text search to find a specific change."
3053
  msgstr ""
3054
 
3055
+ #: classes/Views/Search.php:66
3056
  msgid "Configure any filter you need to fine tune the search results and find what you are looking for with much less effort."
3057
  msgstr ""
3058
 
3059
+ #: classes/Views/Search.php:70
3060
  msgid "Save search terms and filters to run the searches again in the future with just a single click."
3061
  msgstr ""
3062
 
3064
  msgid "General"
3065
  msgstr ""
3066
 
 
 
 
 
3067
  #: classes/Views/Settings.php:105
3068
  msgid "Exclude Objects"
3069
  msgstr ""
4633
  msgid "Critical Event is Generated"
4634
  msgstr ""
4635
 
 
 
 
 
4636
  #: extensions/email-notifications/classes/Notifications.php:1264
4637
  msgid "User logs in (Event ID 1000)"
4638
  msgstr ""
readme.txt CHANGED
@@ -6,7 +6,7 @@ License URI: https://www.gnu.org/licenses/gpl.html
6
  Tags: activity log, wordpress activity logs, security audit log, audit log, user tracking, security event log, audit trail, wordpress security monitor, wordpress admin, wordpress admin monitoring, user activity, admin, multisite, SMS alerts, wordpress monitoring, email notification, wordpress email alerts, tracking, user tracking, user activity report, wordpress audit trail
7
  Requires at least: 3.6
8
  Tested up to: 5.6
9
- Stable tag: 4.1.5.1
10
  Requires PHP: 5.5
11
 
12
  The #1 user-rated activity log plugin. Keep a comprehensive log of the changes that happen on your site with this easy to use plugin.
@@ -206,13 +206,9 @@ Please refer to our [support pages](https://wpactivitylog.com/support/?utm_sourc
206
 
207
  == Changelog ==
208
 
209
- = 4.1.5.1 (2020-11-24) =
210
 
211
- * **Improvements**
212
- * Updated the Freemius SDK to the latest version.
213
- * Updated the Twilio SDK to the latest version.
214
-
215
- * **Bug fix**
216
- * In some edge cases, the time in the reports was incorrect.
217
 
218
  Refer to the [complete plugin changelog](https://wpactivitylog.com/support/kb/plugin-changelog/?utm_source=wordpress.org&utm_medium=referral&utm_campaign=WSAL&utm_content=plugin+repos+description) for more detailed information about what was new, improved and fixed in previous versions of the WP Activity Log plugin.
6
  Tags: activity log, wordpress activity logs, security audit log, audit log, user tracking, security event log, audit trail, wordpress security monitor, wordpress admin, wordpress admin monitoring, user activity, admin, multisite, SMS alerts, wordpress monitoring, email notification, wordpress email alerts, tracking, user tracking, user activity report, wordpress audit trail
7
  Requires at least: 3.6
8
  Tested up to: 5.6
9
+ Stable tag: 4.1.5.2
10
  Requires PHP: 5.5
11
 
12
  The #1 user-rated activity log plugin. Keep a comprehensive log of the changes that happen on your site with this easy to use plugin.
206
 
207
  == Changelog ==
208
 
209
+ = 4.1.5.2 (2021-01-21) =
210
 
211
+ * **Improvement**
212
+ * Replaced Swipebox with Simple Lightbox (compatible with WordPress 5.6)
 
 
 
 
213
 
214
  Refer to the [complete plugin changelog](https://wpactivitylog.com/support/kb/plugin-changelog/?utm_source=wordpress.org&utm_medium=referral&utm_campaign=WSAL&utm_content=plugin+repos+description) for more detailed information about what was new, improved and fixed in previous versions of the WP Activity Log plugin.
wp-security-audit-log.php CHANGED
@@ -4,7 +4,7 @@
4
  * Plugin URI: http://wpactivitylog.com/
5
  * Description: Identify WordPress security issues before they become a problem. Keep track of everything happening on your WordPress including WordPress users activity. Similar to Windows Event Log and Linux Syslog, WP Activity Log generates a security alert for everything that happens on your WordPress blogs and websites. Use the Activity log viewer included in the plugin to see all the security alerts.
6
  * Author: WP White Security
7
- * Version: 4.1.5.1
8
  * Text Domain: wp-security-audit-log
9
  * Author URI: http://www.wpwhitesecurity.com/
10
  * License: GPL2
@@ -47,7 +47,7 @@ if ( ! function_exists( 'wsal_freemius' ) ) {
47
  *
48
  * @var string
49
  */
50
- public $version = '4.1.5.1';
51
 
52
  /**
53
  * Plugin constants.
@@ -388,6 +388,7 @@ if ( ! function_exists( 'wsal_freemius' ) ) {
388
 
389
  // Views.
390
  require_once 'classes/AbstractView.php';
 
391
  require_once 'classes/AuditLogListView.php';
392
  require_once 'classes/AuditLogGridView.php';
393
  require_once 'classes/Views/AuditLog.php';
4
  * Plugin URI: http://wpactivitylog.com/
5
  * Description: Identify WordPress security issues before they become a problem. Keep track of everything happening on your WordPress including WordPress users activity. Similar to Windows Event Log and Linux Syslog, WP Activity Log generates a security alert for everything that happens on your WordPress blogs and websites. Use the Activity log viewer included in the plugin to see all the security alerts.
6
  * Author: WP White Security
7
+ * Version: 4.1.5.2
8
  * Text Domain: wp-security-audit-log
9
  * Author URI: http://www.wpwhitesecurity.com/
10
  * License: GPL2
47
  *
48
  * @var string
49
  */
50
+ public $version = '4.1.5.2';
51
 
52
  /**
53
  * Plugin constants.
388
 
389
  // Views.
390
  require_once 'classes/AbstractView.php';
391
+ require_once 'classes/ExtensionPlaceholderView.php';
392
  require_once 'classes/AuditLogListView.php';
393
  require_once 'classes/AuditLogGridView.php';
394
  require_once 'classes/Views/AuditLog.php';