WP Staging – DB & File Duplicator & Migration - Version 2.8.7

Version Description

  • Enh: Refactor our wp_login action hook to work with custom calls to this action with different parameter count than the one in WordPress Core #1223
  • Enh: Sort new staging sites in descending order by creation time #1226
  • Enh: Warn if creating a backup in PHP 32 bits #1231
  • Enh: Update the backups upload success message #1221
  • Enh: Show a notice for outdated wp staging on free version of plugin #1250
  • Enh: Refactor wpstg_existing_clones_beta in db option to wpstg_staging_sites #1211
  • Enh: Update the message shown when the entire delete of the staging site fails #1257
  • Fix: Fix a rare issue that could happen when creating a new staging site or restoring a backup when there is a row with primary key with value zero #1271
  • Fix: Try to repair MyISAM table if it's corrupt when creating a Backup #1222
  • Fix: FIx an issue on backup creation that would cause a database export to loop when encountering a table with negative integers or zeros as a primary key value #1251
  • Fix: Lock specific tables while exporting a backup, to prevent a rare duplicated row issue #1245
  • Fix: If the memory exhausts during a database export using the Backup feature, we now lower the memory usage/speed of the export and try again automatically #1230
  • Fix: Prevent failure of adding database to backup from causing a loop #1231
  • Fix: Fix issue when old clones from version 1.1.6 or lower replaces the existing clones from later version when upgrading from FREE to PRO version #1233
  • Fix: Fix inconsistent Unselect All Tables button's action #1243
  • Fix: Replace undefined date with proper formatted date during backups log for some warning and critical messages #1244
  • Fix: Split scanning of wp-content into scanning of plugins, themes, uploads and other directories to reduce timeout issues #1247
  • Fix: Rename .user.ini to .user.ini.bak after cloning into staging site reduce fatal errors on your staging site. Also show a notice about this #1255
  • Fix: Skip scanning the root directory if all other directories are are unselected #1256
  • Dev: fix the version of Selenium containers to 3.141.59-20210713 to avoid issues with broken latest version #1234
Download this release

Release Info

Developer ReneHermi
Plugin Icon 128x128 WP Staging – DB & File Duplicator & Migration
Version 2.8.7
Comparing to
See all releases

Code changes from version 2.8.6 to 2.8.7

Files changed (47) hide show
  1. .wordpress-org/icon-128x128.png +0 -0
  2. .wordpress-org/icon-256x256.png +0 -0
  3. Backend/Administrator.php +15 -7
  4. Backend/Feedback/Feedback.php +0 -2
  5. Backend/Modules/Jobs/CancelUpdate.php +2 -0
  6. Backend/Modules/Jobs/Cloning.php +2 -1
  7. Backend/Modules/Jobs/Delete.php +5 -4
  8. Backend/Modules/Jobs/Directories.php +95 -75
  9. Backend/Modules/Jobs/Finish.php +3 -2
  10. Backend/Modules/Jobs/PreserveDataFirstStep.php +6 -5
  11. Backend/Modules/Jobs/PreserveDataSecondStep.php +8 -7
  12. Backend/Modules/Jobs/ProcessLock.php +1 -0
  13. Backend/Modules/Jobs/Scan.php +2 -1
  14. Backend/Modules/SystemInfo.php +6 -3
  15. Backend/Notices/Notices.php +26 -1
  16. Backend/Notices/OutdatedWpStagingNotice.php +86 -0
  17. Backend/Upgrade/Upgrade.php +108 -98
  18. Backend/views/_main/header.php +1 -1
  19. Backend/views/backup/restore-wait.php +1 -1
  20. Backend/views/clone/ajax/single-overview.php +1 -1
  21. Backend/views/notices/_partial/notice_dismiss_action.php +46 -0
  22. Backend/views/notices/disabled-items-notice.php +12 -37
  23. Backend/views/notices/outdated-wp-staging-version.php +12 -0
  24. Backend/views/notices/wordfence-userini-renamed.php +29 -0
  25. Core/Utils/Logger.php +7 -2
  26. Framework/Adapter/Database/WpDbAdapter.php +3 -0
  27. Framework/CloningProcess/Data/DBCloningService.php +1 -1
  28. Framework/CloningProcess/Data/UpdateStagingOptionsTable.php +2 -1
  29. Framework/CloningProcess/Database/DatabaseCloningService.php +8 -1
  30. Framework/Staging/FirstRun.php +4 -0
  31. Framework/Staging/Sites.php +126 -0
  32. Framework/Support/ThirdParty/WordFence.php +67 -0
  33. Framework/Traits/DatabaseSearchReplaceTrait.php +2 -0
  34. Framework/Traits/MySQLRowsGeneratorTrait.php +1 -1
  35. Framework/Utils/Cache/BufferedCache.php +1 -1
  36. Framework/Utils/WpDefaultDirectories.php +17 -0
  37. Frontend/views/loginForm.php +1 -1
  38. assets/css/dist/wpstg-admin.css +10 -1
  39. assets/css/dist/wpstg-admin.css.map +1 -1
  40. assets/css/dist/wpstg-admin.min.css +1 -1
  41. assets/css/dist/wpstg-admin.min.css.map +1 -1
  42. assets/img/logo.svg +1 -0
  43. assets/img/logo_clean_small_212_25.png +0 -0
  44. assets/js/dist/wpstg-admin.js +8 -6
  45. assets/js/dist/wpstg-admin.js.map +1 -1
  46. assets/js/dist/wpstg-admin.min.js +1 -1
  47. assets/js/dist/wpstg-admin.min.js.map +0 -1
.wordpress-org/icon-128x128.png DELETED
Binary file
.wordpress-org/icon-256x256.png CHANGED
Binary file
Backend/Administrator.php CHANGED
@@ -35,6 +35,8 @@ use WPStaging\Backend\Pro\Notices\BackupsDifferentPrefixNotice;
35
  use WPStaging\Backend\Pro\Modules\Jobs\Processing;
36
  use WPStaging\Backend\Pro\Modules\Jobs\Backups\BackupUploadsDir;
37
  use WPStaging\Backend\Pluginmeta\Pluginmeta;
 
 
38
 
39
  /**
40
  * Class Administrator
@@ -385,7 +387,7 @@ class Administrator
385
  public function getClonePage()
386
  {
387
  // Existing clones
388
- $availableClones = get_option("wpstg_existing_clones_beta", []);
389
 
390
  require_once "{$this->path}views/clone/index.php";
391
  }
@@ -396,7 +398,7 @@ class Administrator
396
  public function getBackupPage()
397
  {
398
  // Existing clones
399
- $availableClones = get_option("wpstg_existing_clones_beta", []);
400
 
401
  $openBackupPage = true;
402
 
@@ -583,7 +585,7 @@ class Administrator
583
  }
584
 
585
  // Existing clones
586
- $availableClones = get_option("wpstg_existing_clones_beta", []);
587
 
588
  // Get license data
589
  $license = get_option('wpstg_license_status');
@@ -667,7 +669,7 @@ class Administrator
667
 
668
  $cloneDirectoryName = sanitize_key($_POST["directoryName"]);
669
  $cloneDirectoryNameLength = strlen($cloneDirectoryName);
670
- $existingClones = get_option("wpstg_existing_clones_beta", []);
671
 
672
  $cloneDestDir = trailingslashit(get_home_path()) . $cloneDirectoryName;
673
 
@@ -964,6 +966,12 @@ class Administrator
964
  return;
965
  }
966
 
 
 
 
 
 
 
967
  wp_send_json(null);
968
  }
969
 
@@ -1004,7 +1012,7 @@ class Administrator
1004
  return;
1005
  }
1006
 
1007
- $existingClones = get_option("wpstg_existing_clones_beta", []);
1008
  if (isset($_POST["clone"]) && array_key_exists($_POST["clone"], $existingClones)) {
1009
  $clone = $existingClones[$_POST["clone"]];
1010
  require_once "{$this->path}Pro/views/edit-clone-data.php";
@@ -1024,7 +1032,7 @@ class Administrator
1024
  return;
1025
  }
1026
 
1027
- $existingClones = get_option("wpstg_existing_clones_beta", []);
1028
  if (isset($_POST["clone"]) && array_key_exists($_POST["clone"], $existingClones)) {
1029
  if (empty($_POST['directoryName'])) {
1030
  echo __("Site name is required!");
@@ -1047,7 +1055,7 @@ class Administrator
1047
  $existingClones[$cloneId]["databaseServer"] = stripslashes($_POST["externalDBHost"]);
1048
  $existingClones[$cloneId]["databasePrefix"] = stripslashes($_POST["externalDBPrefix"]);
1049
 
1050
- update_option("wpstg_existing_clones_beta", $existingClones);
1051
 
1052
  echo __("Success");
1053
  } else {
35
  use WPStaging\Backend\Pro\Modules\Jobs\Processing;
36
  use WPStaging\Backend\Pro\Modules\Jobs\Backups\BackupUploadsDir;
37
  use WPStaging\Backend\Pluginmeta\Pluginmeta;
38
+ use WPStaging\Framework\Staging\Sites;
39
+ use WPStaging\Framework\Support\ThirdParty\WordFence;
40
 
41
  /**
42
  * Class Administrator
387
  public function getClonePage()
388
  {
389
  // Existing clones
390
+ $availableClones = get_option(Sites::STAGING_SITES_OPTION, []);
391
 
392
  require_once "{$this->path}views/clone/index.php";
393
  }
398
  public function getBackupPage()
399
  {
400
  // Existing clones
401
+ $availableClones = get_option(Sites::STAGING_SITES_OPTION, []);
402
 
403
  $openBackupPage = true;
404
 
585
  }
586
 
587
  // Existing clones
588
+ $availableClones = (new Sites())->getSortedStagingSites();
589
 
590
  // Get license data
591
  $license = get_option('wpstg_license_status');
669
 
670
  $cloneDirectoryName = sanitize_key($_POST["directoryName"]);
671
  $cloneDirectoryNameLength = strlen($cloneDirectoryName);
672
+ $existingClones = get_option(Sites::STAGING_SITES_OPTION, []);
673
 
674
  $cloneDestDir = trailingslashit(get_home_path()) . $cloneDirectoryName;
675
 
966
  return;
967
  }
968
 
969
+ // Dismiss wordfence user.ini renamed notice
970
+ if ($_POST['wpstg_notice'] === WordFence::NOTICE_NAME && (new WordFence())->disable() !== false) {
971
+ wp_send_json(true);
972
+ return;
973
+ }
974
+
975
  wp_send_json(null);
976
  }
977
 
1012
  return;
1013
  }
1014
 
1015
+ $existingClones = get_option(Sites::STAGING_SITES_OPTION, []);
1016
  if (isset($_POST["clone"]) && array_key_exists($_POST["clone"], $existingClones)) {
1017
  $clone = $existingClones[$_POST["clone"]];
1018
  require_once "{$this->path}Pro/views/edit-clone-data.php";
1032
  return;
1033
  }
1034
 
1035
+ $existingClones = get_option(Sites::STAGING_SITES_OPTION, []);
1036
  if (isset($_POST["clone"]) && array_key_exists($_POST["clone"], $existingClones)) {
1037
  if (empty($_POST['directoryName'])) {
1038
  echo __("Site name is required!");
1055
  $existingClones[$cloneId]["databaseServer"] = stripslashes($_POST["externalDBHost"]);
1056
  $existingClones[$cloneId]["databasePrefix"] = stripslashes($_POST["externalDBPrefix"]);
1057
 
1058
+ update_option(Sites::STAGING_SITES_OPTION, $existingClones);
1059
 
1060
  echo __("Success");
1061
  } else {
Backend/Feedback/Feedback.php CHANGED
@@ -22,8 +22,6 @@ class Feedback
22
  * Load feedback form
23
  *
24
  * @todo check if this is being used, remove otherwise.
25
- *
26
- * @return string
27
  */
28
  public function loadForm()
29
  {
22
  * Load feedback form
23
  *
24
  * @todo check if this is being used, remove otherwise.
 
 
25
  */
26
  public function loadForm()
27
  {
Backend/Modules/Jobs/CancelUpdate.php CHANGED
@@ -24,6 +24,8 @@ class CancelUpdate extends Job
24
  $this->deleteCacheFiles();
25
 
26
  $this->returnFinish();
 
 
27
  }
28
 
29
  /**
24
  $this->deleteCacheFiles();
25
 
26
  $this->returnFinish();
27
+
28
+ return true;
29
  }
30
 
31
  /**
Backend/Modules/Jobs/Cloning.php CHANGED
@@ -7,6 +7,7 @@ use WPStaging\Core\Utils\Helper;
7
  use WPStaging\Core\WPStaging;
8
  use WPStaging\Framework\Filesystem\Scanning\ScanConst;
9
  use WPStaging\Framework\Security\AccessToken;
 
10
  use WPStaging\Framework\Utils\SlashMode;
11
  use WPStaging\Framework\Utils\WpDefaultDirectories;
12
 
@@ -243,7 +244,7 @@ class Cloning extends Job
243
  "extraDirectories" => $this->options->extraDirectories,
244
  ];
245
 
246
- if (update_option("wpstg_existing_clones_beta", $this->options->existingClones) === false) {
247
  $this->log("Cloning: Failed to save {$this->options->clone}'s clone job data to database'");
248
  return false;
249
  }
7
  use WPStaging\Core\WPStaging;
8
  use WPStaging\Framework\Filesystem\Scanning\ScanConst;
9
  use WPStaging\Framework\Security\AccessToken;
10
+ use WPStaging\Framework\Staging\Sites;
11
  use WPStaging\Framework\Utils\SlashMode;
12
  use WPStaging\Framework\Utils\WpDefaultDirectories;
13
 
244
  "extraDirectories" => $this->options->extraDirectories,
245
  ];
246
 
247
+ if (update_option(Sites::STAGING_SITES_OPTION, $this->options->existingClones) === false) {
248
  $this->log("Cloning: Failed to save {$this->options->clone}'s clone job data to database'");
249
  return false;
250
  }
Backend/Modules/Jobs/Delete.php CHANGED
@@ -12,6 +12,7 @@ use WPStaging\Core\Utils\Logger;
12
  use WPStaging\Core\WPStaging;
13
  use WPStaging\Framework\Filesystem\Filesystem;
14
  use WPStaging\Framework\Filesystem\FilesystemExceptions;
 
15
  use WPStaging\Framework\Utils\Strings;
16
 
17
  /**
@@ -146,7 +147,7 @@ class Delete extends Job
146
  $name = (string)$_POST["clone"];
147
  }
148
 
149
- $clones = get_option("wpstg_existing_clones_beta", []);
150
 
151
  if (empty($clones) || !isset($clones[$name])) {
152
  $this->log("Couldn't find clone name {$name} or no existing clone", Logger::TYPE_FATAL);
@@ -390,7 +391,7 @@ class Delete extends Job
390
  }
391
 
392
  $clone = (string)$this->clone->path;
393
- $errorMessage = __(sprintf("Could not delete the entire staging site. The folder %s still exists and is not empty. <br/> Try to empty this folder manually by using FTP or file manager plugin and then try to delete again the staging site here.<br/> If this happens again please contact us at support@wp-staging.com", $clone), "wp-staging");
394
  $deleteStatus = "finished";
395
  if ($this->isNotEmpty($this->deleteDir)) {
396
  $fs = (new Filesystem())
@@ -460,7 +461,7 @@ class Delete extends Job
460
  'delete' => 'finished',
461
  ];
462
 
463
- $existingClones = get_option("wpstg_existing_clones_beta", []);
464
 
465
  // Check if clone exist and then remove it from options
466
  $this->log("Verifying existing clones...");
@@ -470,7 +471,7 @@ class Delete extends Job
470
  }
471
  }
472
 
473
- if (update_option("wpstg_existing_clones_beta", $existingClones) === false) {
474
  $this->log("Delete: Nothing to save.'");
475
  }
476
 
12
  use WPStaging\Core\WPStaging;
13
  use WPStaging\Framework\Filesystem\Filesystem;
14
  use WPStaging\Framework\Filesystem\FilesystemExceptions;
15
+ use WPStaging\Framework\Staging\Sites;
16
  use WPStaging\Framework\Utils\Strings;
17
 
18
  /**
147
  $name = (string)$_POST["clone"];
148
  }
149
 
150
+ $clones = get_option(Sites::STAGING_SITES_OPTION, []);
151
 
152
  if (empty($clones) || !isset($clones[$name])) {
153
  $this->log("Couldn't find clone name {$name} or no existing clone", Logger::TYPE_FATAL);
391
  }
392
 
393
  $clone = (string)$this->clone->path;
394
+ $errorMessage = __(sprintf("We could not delete the staging site completely. There are still files in the folder %s that could not be deleted. This could be a write permission issue. Try to delete the folder manually by using FTP or a file manager plugin.<br/> If this happens again please contact us at support@wp-staging.com", $clone), "wp-staging");
395
  $deleteStatus = "finished";
396
  if ($this->isNotEmpty($this->deleteDir)) {
397
  $fs = (new Filesystem())
461
  'delete' => 'finished',
462
  ];
463
 
464
+ $existingClones = get_option(Sites::STAGING_SITES_OPTION, []);
465
 
466
  // Check if clone exist and then remove it from options
467
  $this->log("Verifying existing clones...");
471
  }
472
  }
473
 
474
+ if (update_option(Sites::STAGING_SITES_OPTION, $existingClones) === false) {
475
  $this->log("Delete: Nothing to save.'");
476
  }
477
 
Backend/Modules/Jobs/Directories.php CHANGED
@@ -6,7 +6,6 @@ use Exception;
6
  use WPStaging\Core\WPStaging;
7
  use WPStaging\Framework\Adapter\Directory;
8
  use WPStaging\Framework\CloningProcess\ExcludedPlugins;
9
- use WPStaging\Framework\Filesystem\Filesystem;
10
  use WPStaging\Framework\Filesystem\Filters\ExcludeFilter;
11
  use WPStaging\Framework\Traits\FileScanToCacheTrait;
12
  use WPStaging\Framework\Utils\SlashMode;
@@ -30,7 +29,7 @@ class Directories extends JobExecutable
30
  * Total steps to do
31
  * @var int
32
  */
33
- private $total = 4;
34
 
35
  /**
36
  * path to the cache file
@@ -64,11 +63,6 @@ class Directories extends JobExecutable
64
  */
65
  protected function calculateTotalSteps()
66
  {
67
- // Set total to 5 for multisite
68
- if ($this->isMultisiteAndPro()) {
69
- $this->total = 5;
70
- }
71
-
72
  $this->options->totalSteps = $this->total + count($this->options->extraDirectories);
73
  }
74
 
@@ -94,6 +88,15 @@ class Directories extends JobExecutable
94
  */
95
  private function getWpRootFiles()
96
  {
 
 
 
 
 
 
 
 
 
97
  // open file handle
98
  $files = $this->open($this->filename, 'a');
99
 
@@ -111,38 +114,47 @@ class Directories extends JobExecutable
111
  }
112
 
113
  /**
114
- * Step 1
115
- * Get WP Content Files
 
 
116
  */
117
- private function getWpContentFiles()
118
  {
119
- $directory = WP_CONTENT_DIR;
 
 
 
 
 
 
 
 
 
 
120
  // Skip it
121
  if ($this->isDirectoryExcluded($directory)) {
122
- $this->log("Skip " . $directory);
123
  return true;
124
  }
 
 
 
 
125
  // open file handle
126
  $files = $this->open($this->filename, 'a');
127
 
128
- $relativeDirectory = str_replace(ABSPATH, '', $directory);
129
- $this->log("Scanning " . $relativeDirectory . " for its sub-directories and files");
130
-
131
  $excludePaths = [
132
- $this->wpDirectories->getRelativeWpContentPath(SlashMode::BOTH_SLASHES) . 'cache',
133
  '/' . str_replace(ABSPATH, '', rtrim(WPStaging::getContentDir(), '/')),
134
- '**/wp-staging*/**/node_modules', // only exclude node modules in WP Staging's plugins
135
  ];
136
 
137
- if (is_multisite() && !is_main_site()) {
138
- $excludePaths[] = $this->wpDirectories->getRelativeUploadPath(SlashMode::LEADING_SLASH);
139
- } else {
140
- $excludePaths[] = $this->wpDirectories->getRelativeUploadPath(SlashMode::BOTH_SLASHES) . 'sites';
 
141
  }
142
 
143
- // add excluded plugins defined by WP Staging
144
- $excludePaths = array_merge((new ExcludedPlugins())->getPluginsToExcludeWithRelativePath(), $excludePaths);
145
-
146
  $excludePaths = array_merge($this->getFilteredExcludedPaths(), $excludePaths);
147
 
148
  try {
@@ -157,13 +169,12 @@ class Directories extends JobExecutable
157
  }
158
 
159
  /**
160
- * Step 2
161
- * @return boolean
162
- * @throws Exception
163
  */
164
- private function getWpIncludesFiles()
165
  {
166
- $directory = ABSPATH . 'wp-includes';
167
  // Skip it
168
  if ($this->isDirectoryExcluded($directory)) {
169
  $this->log("Skip " . $directory);
@@ -173,10 +184,22 @@ class Directories extends JobExecutable
173
  $files = $this->open($this->filename, 'a');
174
 
175
  $relativeDirectory = str_replace(ABSPATH, '', $directory);
176
- $this->log("Scanning " . $relativeDirectory . " for its sub-directories and files");
 
 
 
 
 
 
 
 
 
 
 
 
177
 
178
  try {
179
- $this->options->totalFiles += $this->scanToCacheFile($files, $directory, true);
180
  } catch (Exception $e) {
181
  $this->returnException('Error: ' . $e->getMessage());
182
  }
@@ -187,13 +210,13 @@ class Directories extends JobExecutable
187
  }
188
 
189
  /**
190
- * Step 3
191
  * @return boolean
192
  * @throws Exception
193
  */
194
- private function getWpAdminFiles()
195
  {
196
- $directory = ABSPATH . 'wp-admin';
197
  // Skip it
198
  if ($this->isDirectoryExcluded($directory)) {
199
  $this->log("Skip " . $directory);
@@ -217,49 +240,26 @@ class Directories extends JobExecutable
217
  }
218
 
219
  /**
220
- * Step 4 (Multisite Only)
221
- * Get WP Content Uploads Files multisite folder wp-content/uploads/sites or wp-content/blogs.dir/ID/files
 
222
  */
223
- private function getWpContentUploadsSites()
224
  {
225
- // Skip if main site is cloned
226
- if (is_main_site()) {
227
- return true;
228
- }
229
-
230
- // Skip if symlink option selected
231
- if ($this->options->uploadsSymlinked) {
232
- return true;
233
- }
234
-
235
- // Absolute path to uploads folder
236
- $directory = $this->wpDirectories->getUploadsPath();
237
-
238
- // Skip it
239
- if (!is_dir($directory)) {
240
- $this->log("Skipping: {$directory} does not exist.");
241
- return true;
242
- }
243
-
244
  // Skip it
245
  if ($this->isDirectoryExcluded($directory)) {
246
- $this->log("Skipping: {$directory}");
247
  return true;
248
  }
249
-
250
-
251
  // open file handle
252
  $files = $this->open($this->filename, 'a');
253
 
254
- $excludePaths = [
255
- '/' . str_replace(ABSPATH, ' ', rtrim(WPStaging::getContentDir(), '/')),
256
- '**/node_modules',
257
- ];
258
-
259
- $excludePaths = array_merge($this->getFilteredExcludedPaths(), $excludePaths);
260
 
261
  try {
262
- $this->options->totalFiles += $this->scanToCacheFile($files, $directory, true, $excludePaths, $this->getFilteredExcludedFileSizes());
263
  } catch (Exception $e) {
264
  $this->returnException('Error: ' . $e->getMessage());
265
  }
@@ -270,8 +270,7 @@ class Directories extends JobExecutable
270
  }
271
 
272
  /**
273
- * Step 4 - x (Single Site)
274
- * Step 5 - x (Multisite)
275
  * Get extra folders of the wp root level
276
  * Does not collect wp-includes, wp-admin and wp-content folder
277
  * @param string $folder
@@ -369,33 +368,55 @@ class Directories extends JobExecutable
369
  return false;
370
  }
371
 
372
-
373
  if ($this->options->currentStep == 0) {
374
  $this->getWpRootFiles();
375
  $this->prepareResponse(false, true);
376
  return false;
377
  }
378
 
 
379
  if ($this->options->currentStep == 1) {
380
- $this->getWpContentFiles();
381
  $this->prepareResponse(false, true);
382
  return false;
383
  }
384
 
 
385
  if ($this->options->currentStep == 2) {
386
- $this->getWpIncludesFiles();
387
  $this->prepareResponse(false, true);
388
  return false;
389
  }
390
 
 
391
  if ($this->options->currentStep == 3) {
392
- $this->getWpAdminFiles();
393
  $this->prepareResponse(false, true);
394
  return false;
395
  }
396
 
397
- if ($this->isMultisiteAndPro() && $this->options->currentStep == 4) {
398
- $this->getWpContentUploadsSites();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
399
  $this->prepareResponse(false, true);
400
  return false;
401
  }
@@ -406,7 +427,6 @@ class Directories extends JobExecutable
406
  return false;
407
  }
408
 
409
-
410
  // Prepare response
411
  $this->prepareResponse(false, true);
412
  // Not finished
6
  use WPStaging\Core\WPStaging;
7
  use WPStaging\Framework\Adapter\Directory;
8
  use WPStaging\Framework\CloningProcess\ExcludedPlugins;
 
9
  use WPStaging\Framework\Filesystem\Filters\ExcludeFilter;
10
  use WPStaging\Framework\Traits\FileScanToCacheTrait;
11
  use WPStaging\Framework\Utils\SlashMode;
29
  * Total steps to do
30
  * @var int
31
  */
32
+ private $total = 8;
33
 
34
  /**
35
  * path to the cache file
63
  */
64
  protected function calculateTotalSteps()
65
  {
 
 
 
 
 
66
  $this->options->totalSteps = $this->total + count($this->options->extraDirectories);
67
  }
68
 
88
  */
89
  private function getWpRootFiles()
90
  {
91
+ // Skip scanning the root directory if all other directories are unselected
92
+ if (
93
+ $this->isDirectoryExcluded(ABSPATH . 'wp-admin') &&
94
+ $this->isDirectoryExcluded(ABSPATH . 'wp-includes')
95
+ ) {
96
+ $this->log("Skipping: /");
97
+ return true;
98
+ }
99
+
100
  // open file handle
101
  $files = $this->open($this->filename, 'a');
102
 
114
  }
115
 
116
  /**
117
+ * Step 1-4
118
+ * Scan plugins, mu-plugins, themes or uploads dir depending upon the input
119
+ *
120
+ * @param string $directory
121
  */
122
+ private function getWpContentSubDirectory($directory)
123
  {
124
+ // Skip if scanning uploads directory and symlink option selected
125
+ if ($this->wpDirectories->getUploadsPath() === $directory && $this->options->uploadsSymlinked) {
126
+ return true;
127
+ }
128
+
129
+ // Skip it
130
+ if (!is_dir($directory)) {
131
+ $this->log("Skipping: {$directory} does not exist.");
132
+ return true;
133
+ }
134
+
135
  // Skip it
136
  if ($this->isDirectoryExcluded($directory)) {
137
+ $this->log("Skipping: {$directory}");
138
  return true;
139
  }
140
+
141
+ $relativeDirectory = str_replace($this->strUtils->sanitizeDirectorySeparator(ABSPATH), '', $directory);
142
+ $this->log("Scanning " . $relativeDirectory . " and its sub-directories and files");
143
+
144
  // open file handle
145
  $files = $this->open($this->filename, 'a');
146
 
 
 
 
147
  $excludePaths = [
 
148
  '/' . str_replace(ABSPATH, '', rtrim(WPStaging::getContentDir(), '/')),
 
149
  ];
150
 
151
+ // Exclude predefined plugins if given directory is plugins dir
152
+ if (WP_PLUGIN_DIR === $directory) {
153
+ $excludePaths[] = '**/wp-staging*/**/node_modules'; // only exclude node modules in WP Staging's plugins
154
+ // add excluded plugins defined by WP Staging
155
+ $excludePaths = array_merge((new ExcludedPlugins())->getPluginsToExcludeWithRelativePath(), $excludePaths);
156
  }
157
 
 
 
 
158
  $excludePaths = array_merge($this->getFilteredExcludedPaths(), $excludePaths);
159
 
160
  try {
169
  }
170
 
171
  /**
172
+ * Step 5
173
+ * Get WP Content Files for other files than plugins, mu plugins, themes and uploads.
 
174
  */
175
+ private function getWpContentFiles()
176
  {
177
+ $directory = WP_CONTENT_DIR;
178
  // Skip it
179
  if ($this->isDirectoryExcluded($directory)) {
180
  $this->log("Skip " . $directory);
184
  $files = $this->open($this->filename, 'a');
185
 
186
  $relativeDirectory = str_replace(ABSPATH, '', $directory);
187
+ $this->log("Scanning " . $relativeDirectory . " for other directories");
188
+
189
+ $excludePaths = [
190
+ $this->wpDirectories->getRelativeWpContentPath(SlashMode::BOTH_SLASHES) . 'cache',
191
+ '/' . str_replace(ABSPATH, '', rtrim(WPStaging::getContentDir(), '/')),
192
+ '**/wp-staging*/**/node_modules', // only exclude node modules in WP Staging's plugins
193
+ $this->wpDirectories->getRelativeUploadPath(SlashMode::LEADING_SLASH),
194
+ $this->wpDirectories->getRelativePluginPath(SlashMode::LEADING_SLASH),
195
+ $this->wpDirectories->getRelativeMuPluginPath(SlashMode::LEADING_SLASH),
196
+ $this->wpDirectories->getRelativeThemePath(SlashMode::LEADING_SLASH),
197
+ ];
198
+
199
+ $excludePaths = array_merge($this->getFilteredExcludedPaths(), $excludePaths);
200
 
201
  try {
202
+ $this->options->totalFiles += $this->scanToCacheFile($files, $directory, true, $excludePaths, $this->getFilteredExcludedFileSizes());
203
  } catch (Exception $e) {
204
  $this->returnException('Error: ' . $e->getMessage());
205
  }
210
  }
211
 
212
  /**
213
+ * Step 6
214
  * @return boolean
215
  * @throws Exception
216
  */
217
+ private function getWpIncludesFiles()
218
  {
219
+ $directory = ABSPATH . 'wp-includes';
220
  // Skip it
221
  if ($this->isDirectoryExcluded($directory)) {
222
  $this->log("Skip " . $directory);
240
  }
241
 
242
  /**
243
+ * Step 7
244
+ * @return boolean
245
+ * @throws Exception
246
  */
247
+ private function getWpAdminFiles()
248
  {
249
+ $directory = ABSPATH . 'wp-admin';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
250
  // Skip it
251
  if ($this->isDirectoryExcluded($directory)) {
252
+ $this->log("Skip " . $directory);
253
  return true;
254
  }
 
 
255
  // open file handle
256
  $files = $this->open($this->filename, 'a');
257
 
258
+ $relativeDirectory = str_replace(ABSPATH, '', $directory);
259
+ $this->log("Scanning " . $relativeDirectory . " for its sub-directories and files");
 
 
 
 
260
 
261
  try {
262
+ $this->options->totalFiles += $this->scanToCacheFile($files, $directory, true);
263
  } catch (Exception $e) {
264
  $this->returnException('Error: ' . $e->getMessage());
265
  }
270
  }
271
 
272
  /**
273
+ * Step 8 - x
 
274
  * Get extra folders of the wp root level
275
  * Does not collect wp-includes, wp-admin and wp-content folder
276
  * @param string $folder
368
  return false;
369
  }
370
 
 
371
  if ($this->options->currentStep == 0) {
372
  $this->getWpRootFiles();
373
  $this->prepareResponse(false, true);
374
  return false;
375
  }
376
 
377
+ // Scan Plugins directory
378
  if ($this->options->currentStep == 1) {
379
+ $this->getWpContentSubDirectory(WP_PLUGIN_DIR);
380
  $this->prepareResponse(false, true);
381
  return false;
382
  }
383
 
384
+ // Scan Mu Plugins directory
385
  if ($this->options->currentStep == 2) {
386
+ $this->getWpContentSubDirectory(WPMU_PLUGIN_DIR);
387
  $this->prepareResponse(false, true);
388
  return false;
389
  }
390
 
391
+ // Scan Themes directory
392
  if ($this->options->currentStep == 3) {
393
+ $this->getWpContentSubDirectory(WP_CONTENT_DIR . '/themes');
394
  $this->prepareResponse(false, true);
395
  return false;
396
  }
397
 
398
+ // Scan Uploads directory
399
+ if ($this->options->currentStep == 4) {
400
+ $this->getWpContentSubDirectory($this->wpDirectories->getUploadsPath());
401
+ $this->prepareResponse(false, true);
402
+ return false;
403
+ }
404
+
405
+ // Scan WP Content directory except plugins, mu-plugins, themes and uploads directory
406
+ if ($this->options->currentStep == 5) {
407
+ $this->getWpContentFiles();
408
+ $this->prepareResponse(false, true);
409
+ return false;
410
+ }
411
+
412
+ if ($this->options->currentStep == 6) {
413
+ $this->getWpIncludesFiles();
414
+ $this->prepareResponse(false, true);
415
+ return false;
416
+ }
417
+
418
+ if ($this->options->currentStep == 7) {
419
+ $this->getWpAdminFiles();
420
  $this->prepareResponse(false, true);
421
  return false;
422
  }
427
  return false;
428
  }
429
 
 
430
  // Prepare response
431
  $this->prepareResponse(false, true);
432
  // Not finished
Backend/Modules/Jobs/Finish.php CHANGED
@@ -4,6 +4,7 @@ namespace WPStaging\Backend\Modules\Jobs;
4
 
5
  use WPStaging\Core\WPStaging;
6
  use WPStaging\Core\Utils\Helper;
 
7
 
8
  /**
9
  * Class Finish
@@ -90,7 +91,7 @@ class Finish extends Job
90
  $this->options->existingClones[$this->options->clone]['prefix'] = $this->options->prefix;
91
  $this->options->existingClones[$this->options->clone]['emailsAllowed'] = (bool) $this->options->emailsAllowed;
92
  $this->options->existingClones[$this->options->clone]['uploadsSymlinked'] = (bool) $this->options->uploadsSymlinked;
93
- update_option("wpstg_existing_clones_beta", $this->options->existingClones);
94
  $this->log("Finish: The job finished!");
95
  return true;
96
  }
@@ -115,7 +116,7 @@ class Finish extends Job
115
  "uploadsSymlinked" => (bool) $this->options->uploadsSymlinked
116
  ];
117
 
118
- if (update_option("wpstg_existing_clones_beta", $this->options->existingClones) === false) {
119
  $this->log("Finish: Failed to save {$this->options->clone}'s clone job data to database'");
120
  return false;
121
  }
4
 
5
  use WPStaging\Core\WPStaging;
6
  use WPStaging\Core\Utils\Helper;
7
+ use WPStaging\Framework\Staging\Sites;
8
 
9
  /**
10
  * Class Finish
91
  $this->options->existingClones[$this->options->clone]['prefix'] = $this->options->prefix;
92
  $this->options->existingClones[$this->options->clone]['emailsAllowed'] = (bool) $this->options->emailsAllowed;
93
  $this->options->existingClones[$this->options->clone]['uploadsSymlinked'] = (bool) $this->options->uploadsSymlinked;
94
+ update_option(Sites::STAGING_SITES_OPTION, $this->options->existingClones);
95
  $this->log("Finish: The job finished!");
96
  return true;
97
  }
116
  "uploadsSymlinked" => (bool) $this->options->uploadsSymlinked
117
  ];
118
 
119
+ if (update_option(Sites::STAGING_SITES_OPTION, $this->options->existingClones) === false) {
120
  $this->log("Finish: Failed to save {$this->options->clone}'s clone job data to database'");
121
  return false;
122
  }
Backend/Modules/Jobs/PreserveDataFirstStep.php CHANGED
@@ -5,9 +5,10 @@ namespace WPStaging\Backend\Modules\Jobs;
5
  use WPStaging\Core\WPStaging;
6
  use WPStaging\Framework\Adapter\SourceDatabase;
7
  use WPStaging\Framework\Staging\CloneOptions;
 
8
 
9
  /**
10
- * Preserve staging sites in wpstg_existing_clones_beta in staging database while updating a site
11
  * While cloning, copy an existing entry from staging site to wpstg_tmp_data and after cloning restore that data.
12
  * Mainly used while an existing staging site is updated, not initially cloned
13
  * @package WPStaging\Backend\Modules\Jobs
@@ -80,11 +81,11 @@ class PreserveDataFirstStep extends JobExecutable
80
  return true;
81
  }
82
 
83
- // Get wpstg_existing_clones_beta from staging database
84
  $stagingSites = $this->stagingDb->get_var(
85
  $this->stagingDb->prepare(
86
  "SELECT `option_value` FROM " . $this->stagingPrefix . "options WHERE `option_name` = %s",
87
- "wpstg_existing_clones_beta"
88
  )
89
  );
90
 
@@ -130,7 +131,7 @@ class PreserveDataFirstStep extends JobExecutable
130
  }
131
 
132
  if ($stagingSites === false) {
133
- $this->log("Preserve Data: Failed to get wpstg_existing_clones_beta");
134
  }
135
 
136
  if ($settings === false) {
@@ -142,7 +143,7 @@ class PreserveDataFirstStep extends JobExecutable
142
  }
143
 
144
  if ($insert === false) {
145
- $this->log("Preserve Data: Failed to insert wpstg_existing_clones_beta to wpstg_tmp_data");
146
  }
147
 
148
  return true;
5
  use WPStaging\Core\WPStaging;
6
  use WPStaging\Framework\Adapter\SourceDatabase;
7
  use WPStaging\Framework\Staging\CloneOptions;
8
+ use WPStaging\Framework\Staging\Sites;
9
 
10
  /**
11
+ * Preserve staging sites in wpstg_staging_sites in staging database while updating a site
12
  * While cloning, copy an existing entry from staging site to wpstg_tmp_data and after cloning restore that data.
13
  * Mainly used while an existing staging site is updated, not initially cloned
14
  * @package WPStaging\Backend\Modules\Jobs
81
  return true;
82
  }
83
 
84
+ // Get wpstg_staging_sites from staging database
85
  $stagingSites = $this->stagingDb->get_var(
86
  $this->stagingDb->prepare(
87
  "SELECT `option_value` FROM " . $this->stagingPrefix . "options WHERE `option_name` = %s",
88
+ Sites::STAGING_SITES_OPTION
89
  )
90
  );
91
 
131
  }
132
 
133
  if ($stagingSites === false) {
134
+ $this->log("Preserve Data: Failed to get wpstg_staging_sites");
135
  }
136
 
137
  if ($settings === false) {
143
  }
144
 
145
  if ($insert === false) {
146
+ $this->log("Preserve Data: Failed to insert wpstg_staging_sites to wpstg_tmp_data");
147
  }
148
 
149
  return true;
Backend/Modules/Jobs/PreserveDataSecondStep.php CHANGED
@@ -5,9 +5,10 @@ namespace WPStaging\Backend\Modules\Jobs;
5
  use WPStaging\Core\WPStaging;
6
  use WPStaging\Framework\Adapter\SourceDatabase;
7
  use WPStaging\Framework\Staging\CloneOptions;
 
8
 
9
  /**
10
- * Copy wpstg_tmp_data back to wpstg_existing_clones_beta after cloning with class::PreserveDataSecondStep
11
  * @package WPStaging\Backend\Modules\Jobs
12
  */
13
 
@@ -86,9 +87,9 @@ class PreserveDataSecondStep extends JobExecutable
86
  $this->productionDb->prepare("DELETE FROM " . $this->productionDb->prefix . "options WHERE `option_name` = %s", "wpstg_tmp_data")
87
  );
88
 
89
- // Delete wpstg_existing_clones_beta from the staging site
90
  $deleteStagingSites = $this->stagingDb->query(
91
- $this->stagingDb->prepare("DELETE FROM " . $this->stagingPrefix . "options WHERE `option_name` = %s", "wpstg_existing_clones_beta")
92
  );
93
 
94
  // Delete wpstg_settings from the staging site
@@ -103,11 +104,11 @@ class PreserveDataSecondStep extends JobExecutable
103
 
104
  $tempData = maybe_unserialize($result);
105
 
106
- // Insert wpstg_existing_clones_beta in staging database
107
  $insertStagingSites = $this->stagingDb->query(
108
  $this->stagingDb->prepare(
109
  "INSERT INTO `" . $this->stagingPrefix . "options` ( `option_id`, `option_name`, `option_value`, `autoload` ) VALUES ( NULL , %s, %s, %s )",
110
- "wpstg_existing_clones_beta",
111
  $tempData->stagingSites,
112
  "no"
113
  )
@@ -138,7 +139,7 @@ class PreserveDataSecondStep extends JobExecutable
138
  }
139
 
140
  if ($deleteStagingSites === false) {
141
- $this->log("Preserve Data Second Step: Failed to delete wpstg_existing_clones_beta from the staging site");
142
  }
143
 
144
  if ($deleteSettings === false) {
@@ -154,7 +155,7 @@ class PreserveDataSecondStep extends JobExecutable
154
  }
155
 
156
  if ($insertStagingSites === false) {
157
- $this->log("Preserve Data Second Step: Failed to insert preserved existing clones into wpstg_existing_clones_beta of the staging site");
158
  }
159
 
160
  if ($insertSettings === false) {
5
  use WPStaging\Core\WPStaging;
6
  use WPStaging\Framework\Adapter\SourceDatabase;
7
  use WPStaging\Framework\Staging\CloneOptions;
8
+ use WPStaging\Framework\Staging\Sites;
9
 
10
  /**
11
+ * Copy wpstg_tmp_data back to wpstg_staging_sites after cloning with class::PreserveDataSecondStep
12
  * @package WPStaging\Backend\Modules\Jobs
13
  */
14
 
87
  $this->productionDb->prepare("DELETE FROM " . $this->productionDb->prefix . "options WHERE `option_name` = %s", "wpstg_tmp_data")
88
  );
89
 
90
+ // Delete wpstg_staging_sites from the staging site
91
  $deleteStagingSites = $this->stagingDb->query(
92
+ $this->stagingDb->prepare("DELETE FROM " . $this->stagingPrefix . "options WHERE `option_name` = %s", Sites::STAGING_SITES_OPTION)
93
  );
94
 
95
  // Delete wpstg_settings from the staging site
104
 
105
  $tempData = maybe_unserialize($result);
106
 
107
+ // Insert wpstg_staging_sites in staging database
108
  $insertStagingSites = $this->stagingDb->query(
109
  $this->stagingDb->prepare(
110
  "INSERT INTO `" . $this->stagingPrefix . "options` ( `option_id`, `option_name`, `option_value`, `autoload` ) VALUES ( NULL , %s, %s, %s )",
111
+ Sites::STAGING_SITES_OPTION,
112
  $tempData->stagingSites,
113
  "no"
114
  )
139
  }
140
 
141
  if ($deleteStagingSites === false) {
142
+ $this->log("Preserve Data Second Step: Failed to delete wpstg_staging_sites from the staging site");
143
  }
144
 
145
  if ($deleteSettings === false) {
155
  }
156
 
157
  if ($insertStagingSites === false) {
158
+ $this->log("Preserve Data Second Step: Failed to insert preserved existing clones into wpstg_staging_sites of the staging site");
159
  }
160
 
161
  if ($insertSettings === false) {
Backend/Modules/Jobs/ProcessLock.php CHANGED
@@ -83,5 +83,6 @@ class ProcessLock extends JobExecutable
83
  */
84
  protected function execute()
85
  {
 
86
  }
87
  }
83
  */
84
  protected function execute()
85
  {
86
+ return false;
87
  }
88
  }
Backend/Modules/Jobs/Scan.php CHANGED
@@ -13,6 +13,7 @@ use WPStaging\Core\WPStaging;
13
  use WPStaging\Framework\Adapter\Directory;
14
  use WPStaging\Framework\Filesystem\DiskWriteCheck;
15
  use WPStaging\Framework\Filesystem\Scanning\ScanConst;
 
16
  use WPStaging\Framework\Utils\Strings;
17
  use WPStaging\Framework\Utils\WpDefaultDirectories;
18
  use WPStaging\Pro\Backup\Exceptions\DiskNotWritableException;
@@ -146,7 +147,7 @@ class Scan extends Job
146
  {
147
  // Basic Options
148
  $this->options->root = str_replace(["\\", '/'], DIRECTORY_SEPARATOR, WPStaging::getWPpath());
149
- $this->options->existingClones = get_option("wpstg_existing_clones_beta", []);
150
  $this->options->current = null;
151
 
152
  if (isset($_POST["clone"]) && array_key_exists($_POST["clone"], $this->options->existingClones)) {
13
  use WPStaging\Framework\Adapter\Directory;
14
  use WPStaging\Framework\Filesystem\DiskWriteCheck;
15
  use WPStaging\Framework\Filesystem\Scanning\ScanConst;
16
+ use WPStaging\Framework\Staging\Sites;
17
  use WPStaging\Framework\Utils\Strings;
18
  use WPStaging\Framework\Utils\WpDefaultDirectories;
19
  use WPStaging\Pro\Backup\Exceptions\DiskNotWritableException;
147
  {
148
  // Basic Options
149
  $this->options->root = str_replace(["\\", '/'], DIRECTORY_SEPARATOR, WPStaging::getWPpath());
150
+ $this->options->existingClones = get_option(Sites::STAGING_SITES_OPTION, []);
151
  $this->options->current = null;
152
 
153
  if (isset($_POST["clone"]) && array_key_exists($_POST["clone"], $this->options->existingClones)) {
Backend/Modules/SystemInfo.php CHANGED
@@ -8,6 +8,7 @@ use WPStaging\Core\WPStaging;
8
  use WPStaging\Core\Utils;
9
  use WPStaging\Core\Utils\Multisite;
10
  use WPStaging\Core\Utils\Helper;
 
11
 
12
  // No Direct Access
13
  if (!defined("WPINC")) {
@@ -165,7 +166,9 @@ class SystemInfo
165
  // Clones data < 1.1.6.x
166
  $clones = (object)get_option('wpstg_existing_clones', []);
167
  // Clones data version > 2.x
168
- $clonesBeta = get_option('wpstg_existing_clones_beta', []);
 
 
169
 
170
 
171
  $output = "-- WP Staging Settings" . PHP_EOL . PHP_EOL;
@@ -183,7 +186,7 @@ class SystemInfo
183
  }
184
  $output .= PHP_EOL . PHP_EOL . "-- Available Sites Version > 2.0.x" . PHP_EOL . PHP_EOL;
185
 
186
- foreach ($clonesBeta as $key => $clone) {
187
  $path = !empty($clone['path']) ? $clone['path'] : 'undefined';
188
 
189
  $output .= $this->info("Number:", isset($clone['number']) ? $clone['number'] : 'undefined');
@@ -197,7 +200,7 @@ class SystemInfo
197
  }
198
 
199
 
200
- $output .= $this->info("Raw Clones Data:", json_encode(get_option('wpstg_existing_clones_beta', 'undefined')));
201
 
202
  $output .= '' . PHP_EOL;
203
 
8
  use WPStaging\Core\Utils;
9
  use WPStaging\Core\Utils\Multisite;
10
  use WPStaging\Core\Utils\Helper;
11
+ use WPStaging\Framework\Staging\Sites;
12
 
13
  // No Direct Access
14
  if (!defined("WPINC")) {
166
  // Clones data < 1.1.6.x
167
  $clones = (object)get_option('wpstg_existing_clones', []);
168
  // Clones data version > 2.x
169
+ // old name wpstg_existing_clones_beta
170
+ // New name since version 4.0.3
171
+ $stagingSites = get_option(Sites::STAGING_SITES_OPTION, []);
172
 
173
 
174
  $output = "-- WP Staging Settings" . PHP_EOL . PHP_EOL;
186
  }
187
  $output .= PHP_EOL . PHP_EOL . "-- Available Sites Version > 2.0.x" . PHP_EOL . PHP_EOL;
188
 
189
+ foreach ($stagingSites as $key => $clone) {
190
  $path = !empty($clone['path']) ? $clone['path'] : 'undefined';
191
 
192
  $output .= $this->info("Number:", isset($clone['number']) ? $clone['number'] : 'undefined');
200
  }
201
 
202
 
203
+ $output .= $this->info("Raw Clones Data:", json_encode(get_option(Sites::STAGING_SITES_OPTION, 'undefined')));
204
 
205
  $output .= '' . PHP_EOL;
206
 
Backend/Notices/Notices.php CHANGED
@@ -19,6 +19,7 @@ use WPStaging\Framework\CloningProcess\ExcludedPlugins;
19
  use WPStaging\Framework\Staging\CloneOptions;
20
  use WPStaging\Framework\Staging\FirstRun;
21
  use WPStaging\Framework\Support\ThirdParty\FreemiusScript;
 
22
 
23
  /**
24
  * Class Notices
@@ -61,7 +62,7 @@ class Notices
61
  $currentPage = (isset($_GET["page"])) ? $_GET["page"] : null;
62
 
63
  $availablePages = [
64
- "wpstg-settings", "wpstg-addons", "wpstg-tools", "wpstg-clone", "wpstg_clone"
65
  ];
66
 
67
  return !(!is_admin() || !in_array($currentPage, $availablePages, true));
@@ -173,6 +174,10 @@ class Notices
173
  require "{$viewsNoticesPath}wp-options-missing-pk.php";
174
  }
175
 
 
 
 
 
176
  /**
177
  * Display all notices below this line in WP STAGING admin pages only and only to administrators!
178
  */
@@ -187,6 +192,13 @@ class Notices
187
  require "{$viewsNoticesPath}uploads-outside-wp-root.php";
188
  }
189
 
 
 
 
 
 
 
 
190
  // Show notice Cache directory is not writable
191
  /** @var Cache $cache */
192
  $cache = WPStaging::getInstance()->get("cache");
@@ -339,4 +351,17 @@ class Notices
339
  {
340
  return $this->assets;
341
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
342
  }
19
  use WPStaging\Framework\Staging\CloneOptions;
20
  use WPStaging\Framework\Staging\FirstRun;
21
  use WPStaging\Framework\Support\ThirdParty\FreemiusScript;
22
+ use WPStaging\Framework\Support\ThirdParty\WordFence;
23
 
24
  /**
25
  * Class Notices
62
  $currentPage = (isset($_GET["page"])) ? $_GET["page"] : null;
63
 
64
  $availablePages = [
65
+ "wpstg-settings", "wpstg-addons", "wpstg-tools", "wpstg-clone", "wpstg_clone", "wpstg_backup"
66
  ];
67
 
68
  return !(!is_admin() || !in_array($currentPage, $availablePages, true));
174
  require "{$viewsNoticesPath}wp-options-missing-pk.php";
175
  }
176
 
177
+ // Show notice if WordFence Firewall is disabled
178
+ /** @var WordFence */
179
+ WPStaging::make(WordFence::class)->showNotice($viewsNoticesPath);
180
+
181
  /**
182
  * Display all notices below this line in WP STAGING admin pages only and only to administrators!
183
  */
192
  require "{$viewsNoticesPath}uploads-outside-wp-root.php";
193
  }
194
 
195
+ /**
196
+ * Display outdated WP Staging version notice (Free Only)
197
+ */
198
+ /** @var OutdatedWpStagingNotice */
199
+ WPStaging::make(OutdatedWpStagingNotice::class)
200
+ ->showNotice($viewsNoticesPath);
201
+
202
  // Show notice Cache directory is not writable
203
  /** @var Cache $cache */
204
  $cache = WPStaging::getInstance()->get("cache");
351
  {
352
  return $this->assets;
353
  }
354
+
355
+ /**
356
+ * Render the notice dismiss action
357
+ *
358
+ * @param string $viewsNoticesPath
359
+ * @param string $wpstgNotice
360
+ * @param string $cssClassSelectorDismiss
361
+ * @param string $cssClassSelectorNotice
362
+ */
363
+ public static function renderNoticeDismissAction($viewsNoticesPath, $wpstgNotice, $cssClassSelectorDismiss, $cssClassSelectorNotice)
364
+ {
365
+ require "{$viewsNoticesPath}_partial/notice_dismiss_action.php";
366
+ }
367
  }
Backend/Notices/OutdatedWpStagingNotice.php ADDED
@@ -0,0 +1,86 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace WPStaging\Backend\Notices;
4
+
5
+ use WPStaging\Core\WPStaging;
6
+
7
+ /**
8
+ * Class OutdatedWpStagingNotice
9
+ *
10
+ * Check if using an outdated version of WP Staging Plugin
11
+ *
12
+ * @see \WPStaging\Backend\Notices\Notices
13
+ */
14
+ class OutdatedWpStagingNotice
15
+ {
16
+ /**
17
+ * @var string
18
+ */
19
+ private $currentWpstgVersion = null;
20
+
21
+ /**
22
+ * @var string
23
+ */
24
+ private $latestWpstgVersion = null;
25
+
26
+ public function showNotice($viewsNoticesPath)
27
+ {
28
+ // Early bail if PRO version and not an outdated version
29
+ if (!Notices::SHOW_ALL_NOTICES && (WPStaging::isPro() || !$this->isOutdatedWpStagingVersion())) {
30
+ return;
31
+ }
32
+
33
+ require "{$viewsNoticesPath}outdated-wp-staging-version.php";
34
+ }
35
+
36
+ /**
37
+ * @return string
38
+ */
39
+ public function getCurrentWpstgVersion()
40
+ {
41
+ if ($this->currentWpstgVersion === null) {
42
+ $this->currentWpstgVersion = WPStaging::getVersion();
43
+ }
44
+
45
+ return $this->currentWpstgVersion;
46
+ }
47
+
48
+ /**
49
+ * @return string
50
+ */
51
+ public function getLatestWpstgVersion()
52
+ {
53
+ if ($this->latestWpstgVersion === null) {
54
+ $this->latestWpstgVersion = $this->getNewestVersionToUpdateBySlug('wp-staging');
55
+ }
56
+
57
+ return $this->latestWpstgVersion;
58
+ }
59
+
60
+ /**
61
+ * @param string $slug
62
+ * @return null|string
63
+ */
64
+ private function getNewestVersionToUpdateBySlug($slug)
65
+ {
66
+ $plugins = get_site_transient('update_plugins');
67
+ $plugins = $plugins->response;
68
+ foreach ($plugins as $plugin) {
69
+ if ($plugin->slug === $slug) {
70
+ return $plugin->new_version;
71
+ }
72
+ }
73
+
74
+ return null;
75
+ }
76
+
77
+ private function isOutdatedWpStagingVersion()
78
+ {
79
+ // If latest version is not available that mean to update
80
+ if ($this->getLatestWpstgVersion() === null) {
81
+ return false;
82
+ }
83
+
84
+ return version_compare($this->getLatestWpstgVersion(), $this->getCurrentWpstgVersion(), '>=') ? true : false;
85
+ }
86
+ }
Backend/Upgrade/Upgrade.php CHANGED
@@ -2,10 +2,10 @@
2
 
3
  namespace WPStaging\Backend\Upgrade;
4
 
5
- use WPStaging\Core\WPStaging;
6
- use WPStaging\Core\Utils\Logger;
7
  use WPStaging\Core\Utils\IISWebConfig;
8
  use WPStaging\Core\Utils\Htaccess;
 
 
9
 
10
  /**
11
  * Upgrade Class
@@ -17,7 +17,8 @@ if( !defined( "WPINC" ) ) {
17
  die;
18
  }
19
 
20
- class Upgrade {
 
21
 
22
  /**
23
  * Previous Version number
@@ -25,110 +26,110 @@ class Upgrade {
25
  */
26
  private $previousVersion;
27
 
28
- /**
29
- * Clone data
30
- * @var object
31
- */
32
- private $clones;
33
-
34
  /**
35
  * Global settings
36
  * @var object
37
  */
38
  private $settings;
39
 
40
- /**
41
- * Cron data
42
- * @var object
43
- */
44
- private $cron;
45
-
46
- /**
47
- * Logger
48
- * @var object
49
- */
50
- private $logger;
51
-
52
  /**
53
  * db object
54
  * @var object
55
  */
56
  private $db;
57
 
58
- public function __construct() {
59
-
60
- // add wpstg_weekly_event to cron events
61
- $this->cron = new \WPStaging\Core\Cron\Cron;
62
 
 
 
63
  // Previous version
64
- $this->previousVersion = preg_replace( '/[^0-9.].*/', '', get_option( 'wpstg_version' ) );
65
 
66
- $this->settings = ( object ) get_option( "wpstg_settings", [] );
67
-
68
- // Logger
69
- $this->logger = new Logger;
70
 
71
  // db
72
- $this->db = WPStaging::getInstance()->get( "wpdb" );
 
 
 
73
  }
74
 
75
- public function doUpgrade() {
 
76
  $this->upgrade2_0_3();
77
  $this->upgrade2_1_2();
78
  $this->upgrade2_2_0();
79
  $this->upgrade2_4_4();
80
  $this->upgrade2_5_9();
 
81
 
82
  $this->setVersion();
83
  }
84
 
 
 
 
 
 
 
 
 
85
  /**
86
  * Fix array keys of staging sites
87
  */
88
- private function upgrade2_5_9() {
 
89
  // Previous version lower than 2.5.9
90
- if( version_compare( $this->previousVersion, '2.5.9', '<' ) ) {
91
 
92
  // Current options
93
- $sites = get_option( "wpstg_existing_clones_beta", [] );
94
 
95
  $new = [];
96
 
97
  // Fix keys. Replace white spaces with dash character
98
- foreach ( $sites as $oldKey => $site ) {
99
- $key = preg_replace( "#\W+#", '-', strtolower( $oldKey ) );
100
  $new[$key] = $sites[$oldKey];
101
  }
102
- update_option( "wpstg_existing_clones_beta", $new );
 
 
 
103
  }
104
  }
105
 
106
- private function upgrade2_4_4() {
 
107
  // Previous version lower than 2.4.4
108
- if( version_compare( $this->previousVersion, '2.4.4', '<' ) ) {
109
  // Add htaccess to wp staging uploads folder
110
  $htaccess = new Htaccess();
111
- $htaccess->create( trailingslashit( \WPStaging\Core\WPStaging::getContentDir() ) . '.htaccess' );
112
- $htaccess->create( trailingslashit( \WPStaging\Core\WPStaging::getContentDir() ) . 'logs/.htaccess' );
113
 
114
  // Add litespeed htaccess to wp root folder
115
- if( extension_loaded( 'litespeed' ) ) {
116
- $htaccess->createLitespeed( ABSPATH . '.htaccess' );
117
  }
118
 
119
  // create web.config file for IIS in wp staging uploads folder
120
  $webconfig = new IISWebConfig();
121
- $webconfig->create( trailingslashit( \WPStaging\Core\WPStaging::getContentDir() ) . 'web.config' );
122
- $webconfig->create( trailingslashit( \WPStaging\Core\WPStaging::getContentDir() ) . 'logs/web.config' );
123
  }
124
  }
125
 
126
  /**
127
  * Upgrade method 2.2.0
128
  */
129
- public function upgrade2_2_0() {
 
130
  // Previous version lower than 2.2.0
131
- if( version_compare( $this->previousVersion, '2.2.0', '<' ) ) {
132
  $this->upgradeElements();
133
  }
134
  }
@@ -136,27 +137,29 @@ class Upgrade {
136
  /**
137
  * Add missing elements
138
  */
139
- private function upgradeElements() {
 
140
  // Current options
141
- $sites = get_option( "wpstg_existing_clones_beta", [] );
142
 
143
- if( $sites === false || count( $sites ) === 0 ) {
144
  return;
145
  }
146
 
147
  // Check if key prefix is missing and add it
148
- foreach ( $sites as $key => $value ) {
149
- if( empty( $sites[$key]['directoryName'] ) ) {
150
  continue;
151
  }
 
152
  //!empty( $sites[$key]['prefix'] ) ? $sites[$key]['prefix'] = $value['prefix'] : $sites[$key]['prefix'] = $key . '_';
153
- !empty( $sites[$key]['prefix'] ) ?
154
  $sites[$key]['prefix'] = $value['prefix'] :
155
- $sites[$key]['prefix'] = $this->getStagingPrefix( $sites[$key]['directoryName'] );
156
  }
157
 
158
- if( !empty( $sites ) ) {
159
- update_option( 'wpstg_existing_clones_beta', $sites );
160
  }
161
  }
162
 
@@ -165,24 +168,26 @@ class Upgrade {
165
  * @param string $directory
166
  * @return string
167
  */
168
- private function getStagingPrefix( $directory ) {
 
169
  // Try to get staging prefix from wp-config.php of staging site
 
170
 
171
- $path = ABSPATH . $directory . "/wp-config.php";
172
- if( ($content = @file_get_contents( $path )) === false ) {
173
  $prefix = "";
174
  } else {
175
  // Get prefix from wp-config.php
176
- preg_match( "/table_prefix\s*=\s*'(\w*)';/", $content, $matches );
177
 
178
- if( !empty( $matches[1] ) ) {
179
  $prefix = $matches[1];
180
  } else {
181
  $prefix = "";
182
  }
183
  }
 
184
  // return result: Check if staging prefix is the same as the live prefix
185
- if( $this->db->prefix != $prefix ) {
186
  return $prefix;
187
  } else {
188
  return "";
@@ -190,12 +195,12 @@ class Upgrade {
190
  }
191
 
192
  /**
193
- * NEW INSTALLATION
194
  * Upgrade method 2.0.3
195
  */
196
- public function upgrade2_0_3() {
197
- // Previous version lower than 2.0.2 or new install
198
- if( $this->previousVersion === false || version_compare( $this->previousVersion, '2.0.2', '<' ) ) {
 
199
  $this->upgradeOptions();
200
  $this->upgradeNotices();
201
  }
@@ -205,48 +210,50 @@ class Upgrade {
205
  * Upgrade method 2.1.2
206
  * Sanitize the clone key value.
207
  */
208
- private function upgrade2_1_2() {
209
-
210
- // Current options
211
- $clonesBeta = get_option( "wpstg_existing_clones_beta", [] );
212
-
213
- if( $this->previousVersion === false || version_compare( $this->previousVersion, '2.1.7', '<' ) ) {
214
- foreach ($clonesBeta as $key => $value ) {
215
- unset( $clonesBeta[$key] );
216
- $clonesBeta[preg_replace( "#\W+#", '-', strtolower( $key ) )] = $value;
217
- }
218
- if( empty($clonesBeta) ) {
219
- return;
220
  }
221
 
222
- update_option( 'wpstg_existing_clones_beta', $clonesBeta);
 
 
223
  }
224
  }
225
 
226
  /**
227
  * Upgrade routine for new install
228
  */
229
- private function upgradeOptions() {
 
230
  // Write some default vars
231
- add_option( 'wpstg_installDate', date( 'Y-m-d h:i:s' ) );
232
  $this->settings->optimizer = 1;
233
- update_option( 'wpstg_settings', $this->settings );
234
  }
235
 
236
  /**
237
  * Write new version number into db
238
  * return bool
239
  */
240
- private function setVersion() {
 
241
  // Check if version number in DB is lower than version number in current plugin
242
- if( version_compare( $this->previousVersion, WPStaging::getVersion(), '<' ) ) {
243
  // Update Version number
244
- update_option( 'wpstg_version', preg_replace( '/[^0-9.].*/', '', WPStaging::getVersion() ) );
245
  // Update "upgraded from" version number
246
- update_option( 'wpstg_version_upgraded_from', preg_replace( '/[^0-9.].*/', '', $this->previousVersion ) );
247
 
248
  return true;
249
  }
 
250
  return false;
251
  }
252
 
@@ -254,19 +261,22 @@ class Upgrade {
254
  * Upgrade Notices db options from wpstg 1.3 -> 2.0.1
255
  * Fix some logical db options
256
  */
257
- private function upgradeNotices() {
258
- $poll = get_option( "wpstg_start_poll", false );
259
- $beta = get_option( "wpstg_hide_beta", false );
260
- $rating = get_option( "wpstg_RatingDiv", false );
261
-
262
- if( $poll && $poll === "no" ) {
263
- update_option( 'wpstg_poll', 'no' );
 
264
  }
265
- if( $beta && $beta === "yes" ) {
266
- update_option( 'wpstg_beta', 'no' );
 
267
  }
268
- if( $rating && $rating === 'yes' ) {
269
- update_option( 'wpstg_rating', 'no' );
 
270
  }
271
  }
272
 
2
 
3
  namespace WPStaging\Backend\Upgrade;
4
 
 
 
5
  use WPStaging\Core\Utils\IISWebConfig;
6
  use WPStaging\Core\Utils\Htaccess;
7
+ use WPStaging\Core\WPStaging;
8
+ use WPStaging\Framework\Staging\Sites;
9
 
10
  /**
11
  * Upgrade Class
17
  die;
18
  }
19
 
20
+ class Upgrade
21
+ {
22
 
23
  /**
24
  * Previous Version number
26
  */
27
  private $previousVersion;
28
 
 
 
 
 
 
 
29
  /**
30
  * Global settings
31
  * @var object
32
  */
33
  private $settings;
34
 
 
 
 
 
 
 
 
 
 
 
 
 
35
  /**
36
  * db object
37
  * @var object
38
  */
39
  private $db;
40
 
41
+ /**
42
+ * @var Sites
43
+ */
44
+ private $stagingSitesHelper;
45
 
46
+ public function __construct()
47
+ {
48
  // Previous version
49
+ $this->previousVersion = preg_replace('/[^0-9.].*/', '', get_option('wpstg_version'));
50
 
51
+ $this->settings = (object) get_option("wpstg_settings", []);
 
 
 
52
 
53
  // db
54
+ $this->db = WPStaging::getInstance()->get("wpdb");
55
+
56
+ /** @var Sites */
57
+ $this->stagingSitesHelper = WPStaging::make(Sites::class);
58
  }
59
 
60
+ public function doUpgrade()
61
+ {
62
  $this->upgrade2_0_3();
63
  $this->upgrade2_1_2();
64
  $this->upgrade2_2_0();
65
  $this->upgrade2_4_4();
66
  $this->upgrade2_5_9();
67
+ $this->upgrade2_8_7();
68
 
69
  $this->setVersion();
70
  }
71
 
72
+ /**
73
+ * Move existing staging sites to new option defined in Sites::STAGING_SITES_OPTION
74
+ */
75
+ private function upgrade2_8_7()
76
+ {
77
+ (new Sites())->upgradeStagingSitesOption();
78
+ }
79
+
80
  /**
81
  * Fix array keys of staging sites
82
  */
83
+ private function upgrade2_5_9()
84
+ {
85
  // Previous version lower than 2.5.9
86
+ if (version_compare($this->previousVersion, '2.5.9', '<')) {
87
 
88
  // Current options
89
+ $sites = $this->stagingSitesHelper->tryGettingStagingSites();
90
 
91
  $new = [];
92
 
93
  // Fix keys. Replace white spaces with dash character
94
+ foreach ($sites as $oldKey => $site) {
95
+ $key = preg_replace("#\W+#", '-', strtolower($oldKey));
96
  $new[$key] = $sites[$oldKey];
97
  }
98
+
99
+ if (!empty($new)) {
100
+ $this->stagingSitesHelper->updateStagingSites($new);
101
+ }
102
  }
103
  }
104
 
105
+ private function upgrade2_4_4()
106
+ {
107
  // Previous version lower than 2.4.4
108
+ if (version_compare($this->previousVersion, '2.4.4', '<')) {
109
  // Add htaccess to wp staging uploads folder
110
  $htaccess = new Htaccess();
111
+ $htaccess->create(trailingslashit(WPStaging::getContentDir()) . '.htaccess');
112
+ $htaccess->create(trailingslashit(WPStaging::getContentDir()) . 'logs/.htaccess');
113
 
114
  // Add litespeed htaccess to wp root folder
115
+ if (extension_loaded('litespeed')) {
116
+ $htaccess->createLitespeed(ABSPATH . '.htaccess');
117
  }
118
 
119
  // create web.config file for IIS in wp staging uploads folder
120
  $webconfig = new IISWebConfig();
121
+ $webconfig->create(trailingslashit(WPStaging::getContentDir()) . 'web.config');
122
+ $webconfig->create(trailingslashit(WPStaging::getContentDir()) . 'logs/web.config');
123
  }
124
  }
125
 
126
  /**
127
  * Upgrade method 2.2.0
128
  */
129
+ public function upgrade2_2_0()
130
+ {
131
  // Previous version lower than 2.2.0
132
+ if (version_compare($this->previousVersion, '2.2.0', '<')) {
133
  $this->upgradeElements();
134
  }
135
  }
137
  /**
138
  * Add missing elements
139
  */
140
+ private function upgradeElements()
141
+ {
142
  // Current options
143
+ $sites = $this->stagingSitesHelper->tryGettingStagingSites();
144
 
145
+ if ($sites === false || count($sites) === 0) {
146
  return;
147
  }
148
 
149
  // Check if key prefix is missing and add it
150
+ foreach ($sites as $key => $value) {
151
+ if (empty($sites[$key]['directoryName'])) {
152
  continue;
153
  }
154
+
155
  //!empty( $sites[$key]['prefix'] ) ? $sites[$key]['prefix'] = $value['prefix'] : $sites[$key]['prefix'] = $key . '_';
156
+ !empty($sites[$key]['prefix']) ?
157
  $sites[$key]['prefix'] = $value['prefix'] :
158
+ $sites[$key]['prefix'] = $this->getStagingPrefix($sites[$key]['directoryName']);
159
  }
160
 
161
+ if (!empty($sites)) {
162
+ $this->stagingSitesHelper->updateStagingSites($sites);
163
  }
164
  }
165
 
168
  * @param string $directory
169
  * @return string
170
  */
171
+ private function getStagingPrefix($directory)
172
+ {
173
  // Try to get staging prefix from wp-config.php of staging site
174
+ $path = ABSPATH . $directory . "/wp-config.php";
175
 
176
+ if (($content = @file_get_contents($path)) === false) {
 
177
  $prefix = "";
178
  } else {
179
  // Get prefix from wp-config.php
180
+ preg_match("/table_prefix\s*=\s*'(\w*)';/", $content, $matches);
181
 
182
+ if (!empty($matches[1])) {
183
  $prefix = $matches[1];
184
  } else {
185
  $prefix = "";
186
  }
187
  }
188
+
189
  // return result: Check if staging prefix is the same as the live prefix
190
+ if ($this->db->prefix != $prefix) {
191
  return $prefix;
192
  } else {
193
  return "";
195
  }
196
 
197
  /**
 
198
  * Upgrade method 2.0.3
199
  */
200
+ public function upgrade2_0_3()
201
+ {
202
+ // Previous version lower than 2.0.2
203
+ if (version_compare($this->previousVersion, '2.0.2', '<')) {
204
  $this->upgradeOptions();
205
  $this->upgradeNotices();
206
  }
210
  * Upgrade method 2.1.2
211
  * Sanitize the clone key value.
212
  */
213
+ private function upgrade2_1_2()
214
+ {
215
+ if ($this->previousVersion === false || version_compare($this->previousVersion, '2.1.2', '<')) {
216
+ // Current options
217
+ $clones = $this->stagingSitesHelper->tryGettingStagingSites();
218
+
219
+ foreach ($clones as $key => $value) {
220
+ unset($clones[$key]);
221
+ $clones[preg_replace("#\W+#", '-', strtolower($key))] = $value;
 
 
 
222
  }
223
 
224
+ if (!empty($clones)) {
225
+ $this->stagingSitesHelper->updateStagingSites($clones);
226
+ }
227
  }
228
  }
229
 
230
  /**
231
  * Upgrade routine for new install
232
  */
233
+ private function upgradeOptions()
234
+ {
235
  // Write some default vars
236
+ add_option('wpstg_installDate', date('Y-m-d h:i:s'));
237
  $this->settings->optimizer = 1;
238
+ update_option('wpstg_settings', $this->settings);
239
  }
240
 
241
  /**
242
  * Write new version number into db
243
  * return bool
244
  */
245
+ private function setVersion()
246
+ {
247
  // Check if version number in DB is lower than version number in current plugin
248
+ if (version_compare($this->previousVersion, WPStaging::getVersion(), '<')) {
249
  // Update Version number
250
+ update_option('wpstg_version', preg_replace('/[^0-9.].*/', '', WPStaging::getVersion()));
251
  // Update "upgraded from" version number
252
+ update_option('wpstg_version_upgraded_from', preg_replace('/[^0-9.].*/', '', $this->previousVersion));
253
 
254
  return true;
255
  }
256
+
257
  return false;
258
  }
259
 
261
  * Upgrade Notices db options from wpstg 1.3 -> 2.0.1
262
  * Fix some logical db options
263
  */
264
+ private function upgradeNotices()
265
+ {
266
+ $poll = get_option("wpstg_start_poll", false);
267
+ $beta = get_option("wpstg_hide_beta", false);
268
+ $rating = get_option("wpstg_RatingDiv", false);
269
+
270
+ if ($poll && $poll === "no") {
271
+ update_option('wpstg_poll', 'no');
272
  }
273
+
274
+ if ($beta && $beta === "yes") {
275
+ update_option('wpstg_beta', 'no');
276
  }
277
+
278
+ if ($rating && $rating === 'yes') {
279
+ update_option('wpstg_rating', 'no');
280
  }
281
  }
282
 
Backend/views/_main/header.php CHANGED
@@ -2,7 +2,7 @@
2
 
3
  <div>
4
  <span class="wpstg-logo">
5
- <img src="<?php echo $this->assets->getAssetsUrl("img/logo-wp-staging-1468x230.png") ?>" width="212">
6
  </span>
7
 
8
  <span class="wpstg-version">
2
 
3
  <div>
4
  <span class="wpstg-logo">
5
+ <img src="<?php echo $this->assets->getAssetsUrl("img/logo.svg") ?>" width="212">
6
  </span>
7
 
8
  <span class="wpstg-version">
Backend/views/backup/restore-wait.php CHANGED
@@ -7,7 +7,7 @@
7
  ?>
8
 
9
  <div id="wpstg-restore-wait">
10
- <div class="wpstg-logo"><img width="220" src="<?php echo WPSTG_PLUGIN_URL . "assets/img/logo-wp-staging-1468x230.png"; ?>"></div>
11
  <div class="wpstg-title"><?php _e('Backup Restore Successful!', 'wp-staging') ?></div>
12
  <div class="wpstg-text"><?php _e('You are being redirected to the login page...', 'wp-staging') ?></div>
13
  </div>
7
  ?>
8
 
9
  <div id="wpstg-restore-wait">
10
+ <div class="wpstg-logo"><img width="220" src="<?php echo WPSTG_PLUGIN_URL . "assets/img/logo.svg"; ?>"></div>
11
  <div class="wpstg-title"><?php _e('Backup Restore Successful!', 'wp-staging') ?></div>
12
  <div class="wpstg-text"><?php _e('You are being redirected to the login page...', 'wp-staging') ?></div>
13
  </div>
Backend/views/clone/ajax/single-overview.php CHANGED
@@ -20,7 +20,7 @@
20
  <?php _e("Your Staging Sites:", "wp-staging") ?>
21
  </h3>
22
  <?php foreach ($availableClones as $cloneID => $data) : ?>
23
- <div id="<?php echo $data['directoryName']; ?>" class="wpstg-clone">
24
  <?php $urlLogin = $data["url"]; ?>
25
  <div class="wpstg-clone-header">
26
  <a href="<?php echo $urlLogin ?>" class="wpstg-clone-title" target="_blank">
20
  <?php _e("Your Staging Sites:", "wp-staging") ?>
21
  </h3>
22
  <?php foreach ($availableClones as $cloneID => $data) : ?>
23
+ <div id="<?php echo $data['directoryName']; ?>" data-clone-id="<?php echo $cloneID; ?>" class="wpstg-clone">
24
  <?php $urlLogin = $data["url"]; ?>
25
  <div class="wpstg-clone-header">
26
  <a href="<?php echo $urlLogin ?>" class="wpstg-clone-title" target="_blank">
Backend/views/notices/_partial/notice_dismiss_action.php ADDED
@@ -0,0 +1,46 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * @var $cssClassSelectorNotice
4
+ * @var $cssClassSelectorDismiss
5
+ * @var $wpstgNotice
6
+ * @see \WPStaging\WPStaging\Backend\Notices\Notices::renderNoticeDismissAction
7
+ */
8
+ ?>
9
+ <a href="javascript:void(0);"
10
+ class="<?php echo substr($cssClassSelectorDismiss, 1) ?>"
11
+ title="<?php _e('Close this message', 'wp-staging') ?>"
12
+ style="font-weight:bold;">
13
+ <?php _e('Close this message', 'wp-staging') ?>
14
+ </a>
15
+ <script>
16
+ jQuery(document).ready(function ($) {
17
+ jQuery(document).on('click', '<?php echo $cssClassSelectorDismiss ?>', function (e) {
18
+ e.preventDefault();
19
+ jQuery.ajax({
20
+ url: ajaxurl,
21
+ type: 'POST',
22
+ data: {
23
+ action: 'wpstg_dismiss_notice',
24
+ wpstg_notice: '<?php echo $wpstgNotice ?>',
25
+ },
26
+ error: function error(xhr, textStatus, errorThrown) {
27
+ console.log(xhr.status + ' ' + xhr.statusText + '---' + textStatus);
28
+ console.log(textStatus);
29
+ alert('Unknown error. Please get in contact with us to solve it support@wp-staging.com');
30
+ },
31
+ success: function success(data) {
32
+ jQuery('<?php echo $cssClassSelectorNotice ?>').slideUp('fast');
33
+ return true;
34
+ },
35
+ statusCode: {
36
+ 404: function _() {
37
+ alert('Something went wrong; can\'t find ajax request URL! Please get in contact with us to solve it support@wp-staging.com');
38
+ },
39
+ 500: function _() {
40
+ alert('Something went wrong; internal server error while processing the request! Please get in contact with us to solve it support@wp-staging.com');
41
+ }
42
+ }
43
+ });
44
+ });
45
+ });
46
+ </script>
Backend/views/notices/disabled-items-notice.php CHANGED
@@ -1,11 +1,16 @@
1
  <?php
 
2
  /**
3
  * @var $this \WPStaging\Backend\Notices\Notices
 
4
  * @see \WPStaging\Backend\Notices\Notices::messages
5
  * @var bool $outgoingMailsDisabled
6
  * @var bool $freemiusOptionsCleared
7
  * @var array $excludedPlugins
8
  */
 
 
 
9
  ?>
10
  <div class="notice notice-warning wpstg-disabled-items-notice">
11
  <p><strong><?php _e('WP STAGING - Notes:', 'wp-staging'); ?></strong></p>
@@ -31,43 +36,13 @@
31
  </ul>
32
  </li>
33
  <?php endif; ?>
34
- </ol>
35
  <p>
36
- <a href="javascript:void(0);" class="wpstg_hide_disabled_items_notice" title="Close this message"
37
- style="font-weight:bold;">
38
- <?php _e('Close this message', 'wp-staging') ?>
39
- </a>
 
 
40
  </p>
41
  </div>
42
- <script>
43
- jQuery(document).ready(function ($) {
44
- jQuery(document).on('click', '.wpstg_hide_disabled_items_notice', function (e) {
45
- e.preventDefault();
46
- jQuery.ajax({
47
- url: ajaxurl,
48
- type: 'POST',
49
- data: {
50
- action: 'wpstg_dismiss_notice',
51
- wpstg_notice: 'disabled_items'
52
- },
53
- error: function error(xhr, textStatus, errorThrown) {
54
- console.log(xhr.status + ' ' + xhr.statusText + '---' + textStatus);
55
- console.log(textStatus);
56
- alert('Unknown error. Please get in contact with us to solve it support@wp-staging.com');
57
- },
58
- success: function success(data) {
59
- jQuery('.wpstg-disabled-items-notice').slideUp('fast');
60
- return true;
61
- },
62
- statusCode: {
63
- 404: function _() {
64
- alert('Something went wrong; can\'t find ajax request URL! Please get in contact with us to solve it support@wp-staging.com');
65
- },
66
- 500: function _() {
67
- alert('Something went wrong; internal server error while processing the request! Please get in contact with us to solve it support@wp-staging.com');
68
- }
69
- }
70
- });
71
- });
72
- });
73
- </script>
1
  <?php
2
+
3
  /**
4
  * @var $this \WPStaging\Backend\Notices\Notices
5
+ * @var $viewsNoticesPath
6
  * @see \WPStaging\Backend\Notices\Notices::messages
7
  * @var bool $outgoingMailsDisabled
8
  * @var bool $freemiusOptionsCleared
9
  * @var array $excludedPlugins
10
  */
11
+
12
+ use WPStaging\Backend\Notices\Notices;
13
+
14
  ?>
15
  <div class="notice notice-warning wpstg-disabled-items-notice">
16
  <p><strong><?php _e('WP STAGING - Notes:', 'wp-staging'); ?></strong></p>
36
  </ul>
37
  </li>
38
  <?php endif; ?>
39
+ </ol>
40
  <p>
41
+ <?php Notices::renderNoticeDismissAction(
42
+ $viewsNoticesPath,
43
+ 'disabled_items',
44
+ '.wpstg_dismiss_disabled_items_notice',
45
+ '.wpstg-disabled-items-notice'
46
+ ) ?>
47
  </p>
48
  </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Backend/views/notices/outdated-wp-staging-version.php ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * @var $this \WPStaging\Backend\Notices\OutdatedWpStagingNotice
4
+ * @see \WPStaging\Backend\Notices\OutdatedWpStagingNotice::showNotice
5
+ */
6
+ ?>
7
+ <div class="wpstg-version-outdated-notice notice notice-error">
8
+ <p>
9
+ <strong><?php _e('WP STAGING - Version Outdated.', 'wp-staging'); ?></strong> <br/>
10
+ <?php echo sprintf(__('WP STAGING v%s is outdated. Please <a href="%s">update</a> to latest version %s to make sure the plugin works with your WordPress version.', 'wp-staging'), $this->getCurrentWpstgVersion(), admin_url('plugins.php'), $this->getLatestWpstgVersion()); ?>
11
+ </p>
12
+ </div>
Backend/views/notices/wordfence-userini-renamed.php ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * @var $viewsNoticesPath
5
+ * @see \WPStaging\Framework\Support\ThirdParty\WordFence::showNotice
6
+ */
7
+
8
+ use WPStaging\Backend\Notices\Notices;
9
+ use WPStaging\Framework\Support\ThirdParty\WordFence;
10
+
11
+ ?>
12
+ <div class="notice notice-warning wpstg-wordfence-userini-renamed-notice">
13
+ <p>
14
+ <strong><?php _e('WP STAGING - Wordfence firewall deactivated', 'wp-staging'); ?></strong> <br/>
15
+ <?php _e('We`ve disabled the WordFence Web Application Firewall on this site by renaming the WordFence file user.ini to make sure this staging site will work perfectly fine.', 'wp-staging'); ?> <br/>
16
+ <?php _e('When you push this site to live, your WordFence firewall settings on the live site will not be affected by this step.', 'wp-staging'); ?> <br/>
17
+ </p>
18
+ <ul>
19
+ <li>- <?php echo sprintf(__('<a href="%s" target="_blank">Read this</a> why we had to disable the firewall and how you can activate it if you like to.', 'wp-staging'), 'https://wp-staging.com/docs/wordfence-fatal-error-after-migration/'); ?></li>
20
+ </ul>
21
+ <p>
22
+ <?php Notices::renderNoticeDismissAction(
23
+ $viewsNoticesPath,
24
+ WordFence::NOTICE_NAME,
25
+ '.wpstg_dismiss_wordfence_userini_renamed_notice',
26
+ '.wpstg-wordfence-userini-renamed-notice'
27
+ ) ?>
28
+ </p>
29
+ </div>
Core/Utils/Logger.php CHANGED
@@ -31,7 +31,12 @@ class Logger implements LoggerInterface, ShutdownableInterface
31
 
32
  const TYPE_INFO = "INFO";
33
 
34
- const TYPE_DEBUG = "DEBUG";
 
 
 
 
 
35
 
36
  /**
37
  * Log directory (full path)
@@ -113,7 +118,7 @@ class Logger implements LoggerInterface, ShutdownableInterface
113
  {
114
  $this->messages[] = [
115
  "type" => $type,
116
- "date" => date("Y/m/d H:i:s"),
117
  "message" => $message
118
  ];
119
  }
31
 
32
  const TYPE_INFO = "INFO";
33
 
34
+ const TYPE_DEBUG = "DEBUG";
35
+
36
+ /**
37
+ * @var string
38
+ */
39
+ const LOG_DATETIME_FORMAT = "Y/m/d H:i:s";
40
 
41
  /**
42
  * Log directory (full path)
118
  {
119
  $this->messages[] = [
120
  "type" => $type,
121
+ "date" => date(self::LOG_DATETIME_FORMAT),
122
  "message" => $message
123
  ];
124
  }
Framework/Adapter/Database/WpDbAdapter.php CHANGED
@@ -62,6 +62,7 @@ class WpDbAdapter extends AbstractDatabase
62
  public function insert(DatabaseQueryDto $queryDto)
63
  {
64
  // TODO: Implement insert() method.
 
65
  }
66
 
67
  /**
@@ -70,6 +71,7 @@ class WpDbAdapter extends AbstractDatabase
70
  public function update(DatabaseQueryDto $queryDto)
71
  {
72
  // TODO: Implement update() method.
 
73
  }
74
 
75
  /**
@@ -78,6 +80,7 @@ class WpDbAdapter extends AbstractDatabase
78
  public function delete($tableName, array $condition = [])
79
  {
80
  // TODO: Implement delete() method.
 
81
  }
82
 
83
  /**
62
  public function insert(DatabaseQueryDto $queryDto)
63
  {
64
  // TODO: Implement insert() method.
65
+ return false;
66
  }
67
 
68
  /**
71
  public function update(DatabaseQueryDto $queryDto)
72
  {
73
  // TODO: Implement update() method.
74
+ return false;
75
  }
76
 
77
  /**
80
  public function delete($tableName, array $condition = [])
81
  {
82
  // TODO: Implement delete() method.
83
+ return false;
84
  }
85
 
86
  /**
Framework/CloningProcess/Data/DBCloningService.php CHANGED
@@ -128,7 +128,7 @@ abstract class DBCloningService extends CloningService
128
  {
129
  $db = $this->dto->getStagingDb();
130
 
131
- $db->query(
132
  $db->prepare(
133
  "DELETE FROM `{$this->dto->getPrefix()}options` WHERE `option_name` = %s;",
134
  $name
128
  {
129
  $db = $this->dto->getStagingDb();
130
 
131
+ return $db->query(
132
  $db->prepare(
133
  "DELETE FROM `{$this->dto->getPrefix()}options` WHERE `option_name` = %s;",
134
  $name
Framework/CloningProcess/Data/UpdateStagingOptionsTable.php CHANGED
@@ -6,6 +6,7 @@ use WPStaging\Framework\CloningProcess\ExcludedPlugins;
6
  use WPStaging\Framework\Staging\CloneOptions;
7
  use WPStaging\Framework\Staging\FirstRun;
8
  use WPStaging\Core\Utils\Logger;
 
9
  use WPStaging\Framework\Support\ThirdParty\FreemiusScript;
10
 
11
  class UpdateStagingOptionsTable extends DBCloningService
@@ -54,7 +55,7 @@ class UpdateStagingOptionsTable extends DBCloningService
54
  'wpstg_connection' => json_encode(['prodHostname' => get_site_url()]),
55
  ];
56
  if ($this->dto->getMainJob() !== 'updating') {
57
- $update['wpstg_existing_clones_beta'] = serialize([]);
58
  }
59
 
60
  $this->updateOptions($update);
6
  use WPStaging\Framework\Staging\CloneOptions;
7
  use WPStaging\Framework\Staging\FirstRun;
8
  use WPStaging\Core\Utils\Logger;
9
+ use WPStaging\Framework\Staging\Sites;
10
  use WPStaging\Framework\Support\ThirdParty\FreemiusScript;
11
 
12
  class UpdateStagingOptionsTable extends DBCloningService
55
  'wpstg_connection' => json_encode(['prodHostname' => get_site_url()]),
56
  ];
57
  if ($this->dto->getMainJob() !== 'updating') {
58
+ $update[Sites::STAGING_SITES_OPTION] = serialize([]);
59
  }
60
 
61
  $this->updateOptions($update);
Framework/CloningProcess/Database/DatabaseCloningService.php CHANGED
@@ -65,9 +65,16 @@ class DatabaseCloningService
65
  $this->log(
66
  "{$old} as {$new} from {$offset} to {$rows} records"
67
  );
68
- $this->dto->getStagingDb()->query(
 
 
 
69
  "INSERT INTO {$new} SELECT * FROM {$old} {$limitation}"
70
  );
 
 
 
 
71
  }
72
  }
73
 
65
  $this->log(
66
  "{$old} as {$new} from {$offset} to {$rows} records"
67
  );
68
+
69
+ $this->dto->getStagingDb()->query("SET SESSION sql_mode='NO_AUTO_VALUE_ON_ZERO'");
70
+
71
+ $result = $this->dto->getStagingDb()->query(
72
  "INSERT INTO {$new} SELECT * FROM {$old} {$limitation}"
73
  );
74
+
75
+ if (!$result) {
76
+ $this->log($this->dto->getStagingDb()->last_error, Logger::TYPE_WARNING);
77
+ }
78
  }
79
  }
80
 
Framework/Staging/FirstRun.php CHANGED
@@ -5,6 +5,7 @@ namespace WPStaging\Framework\Staging;
5
  use WPStaging\Frontend\LoginNotice;
6
  use WPStaging\Backend\Notices\DisabledItemsNotice;
7
  use WPStaging\Framework\SiteInfo;
 
8
 
9
  /**
10
  * Class FirstRun
@@ -53,6 +54,9 @@ class FirstRun
53
  // Enable the notice which show what WP Staging Disabled on staging site admin.
54
  (new DisabledItemsNotice())->enable();
55
 
 
 
 
56
  // Allow users to attach custom actions by using this hook
57
  do_action('wpstg.clone_first_run');
58
  }
5
  use WPStaging\Frontend\LoginNotice;
6
  use WPStaging\Backend\Notices\DisabledItemsNotice;
7
  use WPStaging\Framework\SiteInfo;
8
+ use WPStaging\Framework\Support\ThirdParty\WordFence;
9
 
10
  /**
11
  * Class FirstRun
54
  // Enable the notice which show what WP Staging Disabled on staging site admin.
55
  (new DisabledItemsNotice())->enable();
56
 
57
+ // If user.ini present rename it to user.ini.bak and enable notice
58
+ (new WordFence())->renameUserIni();
59
+
60
  // Allow users to attach custom actions by using this hook
61
  do_action('wpstg.clone_first_run');
62
  }
Framework/Staging/Sites.php ADDED
@@ -0,0 +1,126 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace WPStaging\Framework\Staging;
4
+
5
+ /**
6
+ * Class Sites
7
+ *
8
+ * This is used to manage settings on the staging site
9
+ *
10
+ * @package WPStaging\Framework\Staging
11
+ *
12
+ * @todo Manage staging sites option CRUD here?
13
+ */
14
+ class Sites
15
+ {
16
+ /**
17
+ * The option that stores the staging sites
18
+ */
19
+ const STAGING_SITES_OPTION = 'wpstg_staging_sites';
20
+
21
+ /**
22
+ * The old option that was used to store the staging sites
23
+ * @deprecated 4.0.4
24
+ */
25
+ const OLD_STAGING_SITES_OPTION = 'wpstg_existing_clones_beta';
26
+
27
+ /**
28
+ * The option that we use to store our existing clone;
29
+ */
30
+ const CLONE_STRUCTURE_OPTION = 'wpstg_structure_updated';
31
+
32
+ /**
33
+ * Return list of staging sites in descending order of their creation time.
34
+ *
35
+ * @return array
36
+ */
37
+ public function getSortedStagingSites()
38
+ {
39
+ $stagingSites = get_option(self::STAGING_SITES_OPTION, []);
40
+
41
+ // No need to sort if no sites or only one site
42
+ if (empty($stagingSites) || count($stagingSites) === 1) {
43
+ return $stagingSites;
44
+ }
45
+
46
+ // Sort staging sites in descending order
47
+ uasort($stagingSites, function ($site1, $site2) {
48
+ // If datetime is same, sort by directory name
49
+ // Will also work if both sites datetime are not set
50
+ if ($site1['datetime'] === $site2['datetime']) {
51
+ return strcmp($site2['directoryName'], $site1['directoryName']);
52
+ }
53
+
54
+ if (!isset($site1['datetime'])) {
55
+ return 1;
56
+ }
57
+
58
+ if (!isset($site2['datetime'])) {
59
+ return -1;
60
+ }
61
+
62
+ return $site2['datetime'] < $site1['datetime'] ? -1 : 1;
63
+ });
64
+
65
+ return $stagingSites;
66
+ }
67
+
68
+ /**
69
+ * Upgrade old existing clone beta option to new staging site option
70
+ *
71
+ * @see WPStaging\Backend\Upgrade\Upgrade::upgrade2_8_7() (Free version)
72
+ * @see WPStaging\Backend\Pro\Upgrade\Upgrade::upgrade4_0_4() (Pro version)
73
+ */
74
+ public function upgradeStagingSitesOption()
75
+ {
76
+ // Early bail if structure is already updated
77
+ $isStagingSiteStructureUpdated = get_option(self::CLONE_STRUCTURE_OPTION, false);
78
+ if ($isStagingSiteStructureUpdated !== false) {
79
+ return;
80
+ }
81
+
82
+ // Get the staging sites from new option
83
+ $newSites = get_option(self::STAGING_SITES_OPTION, []);
84
+
85
+ // Get the staging sites from old option
86
+ $oldSites = get_option(self::OLD_STAGING_SITES_OPTION, []);
87
+
88
+ // Early bail if old sites option is empty or new sites option is already populated
89
+ if (empty($oldSites) || !empty($newSites)) {
90
+ update_option(self::CLONE_STRUCTURE_OPTION, true);
91
+ return;
92
+ }
93
+
94
+ // Update staging sites from old option to new option
95
+ update_option(self::STAGING_SITES_OPTION, $oldSites);
96
+
97
+ update_option(self::CLONE_STRUCTURE_OPTION, true);
98
+ }
99
+
100
+ /**
101
+ * Will try gettings staging sites from new option
102
+ * If that is empty, will get staging sites from old option
103
+ *
104
+ * @return array
105
+ */
106
+ public function tryGettingStagingSites()
107
+ {
108
+ $stagingSites = get_option(self::STAGING_SITES_OPTION, []);
109
+ if (!empty($stagingSites)) {
110
+ return $stagingSites;
111
+ }
112
+
113
+ return get_option(self::OLD_STAGING_SITES_OPTION, []);
114
+ }
115
+
116
+ /**
117
+ * Update staging sites option
118
+ *
119
+ * @param array $stagingSites
120
+ * @return boolean
121
+ */
122
+ public function updateStagingSites($stagingSites)
123
+ {
124
+ return update_option(self::STAGING_SITES_OPTION, $stagingSites);
125
+ }
126
+ }
Framework/Support/ThirdParty/WordFence.php ADDED
@@ -0,0 +1,67 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace WPStaging\Framework\Support\ThirdParty;
4
+
5
+ use WPStaging\Backend\Notices\BooleanNotice;
6
+ use WPStaging\Backend\Notices\Notices;
7
+
8
+ /**
9
+ * Class WordFence
10
+ *
11
+ * Rename .user.ini to .user.ini.bak and show notice regarding this on staging site
12
+ *
13
+ * @package WPStaging\Framework\Support\ThirdParty
14
+ */
15
+ class WordFence extends BooleanNotice
16
+ {
17
+ /**
18
+ * The option_name that is stored in the database to check if the freemius notice to be shown
19
+ * on the staging site
20
+ */
21
+ const NOTICE_OPTION = 'wpstg_wordfence_notice';
22
+
23
+ /**
24
+ * Notice parameter on which wordfence user.ini renamed notice will be dismissed
25
+ */
26
+ const NOTICE_NAME = 'wordfence_userini_renamed';
27
+
28
+ /**
29
+ * Check if .user.ini file exists. If it exists rename it to .user.ini.bak and enable the notice
30
+ */
31
+ public function renameUserIni()
32
+ {
33
+ $absolutePathToUserIni = ABSPATH . '/.user.ini';
34
+ // Early bail if not exist
35
+ if (!file_exists($absolutePathToUserIni)) {
36
+ return;
37
+ }
38
+
39
+ // Rename by appending .bak to its name
40
+ rename($absolutePathToUserIni, $absolutePathToUserIni . '.bak');
41
+
42
+ // Enable the notice
43
+ $this->enable();
44
+ }
45
+
46
+ /**
47
+ * Show the notice if the notice flag is enabled
48
+ *
49
+ * @param string $viewsNoticesPath
50
+ */
51
+ public function showNotice($viewsNoticesPath)
52
+ {
53
+ if (Notices::SHOW_ALL_NOTICES || $this->isEnabled()) {
54
+ require "{$viewsNoticesPath}wordfence-userini-renamed.php";
55
+ }
56
+ }
57
+
58
+ /**
59
+ * The name of option on which the visibility of this notice is stored in db
60
+ *
61
+ * @return string
62
+ */
63
+ public function getOptionName()
64
+ {
65
+ return self::NOTICE_OPTION;
66
+ }
67
+ }
Framework/Traits/DatabaseSearchReplaceTrait.php CHANGED
@@ -4,6 +4,7 @@ namespace WPStaging\Framework\Traits;
4
 
5
  use WPStaging\Core\Utils\Helper;
6
  use WPStaging\Core\WPStaging;
 
7
 
8
  /**
9
  * Trait DatabaseSearchReplaceTrait
@@ -28,6 +29,7 @@ trait DatabaseSearchReplaceTrait
28
  'upload_path',
29
  'wpstg_existing_clones_beta',
30
  'wpstg_existing_clones',
 
31
  'wpstg_settings',
32
  'wpstg_license_status',
33
  'wpstg_tmp_data',
4
 
5
  use WPStaging\Core\Utils\Helper;
6
  use WPStaging\Core\WPStaging;
7
+ use WPStaging\Framework\Staging\Sites;
8
 
9
  /**
10
  * Trait DatabaseSearchReplaceTrait
29
  'upload_path',
30
  'wpstg_existing_clones_beta',
31
  'wpstg_existing_clones',
32
+ Sites::STAGING_SITES_OPTION,
33
  'wpstg_settings',
34
  'wpstg_license_status',
35
  'wpstg_tmp_data',
Framework/Traits/MySQLRowsGeneratorTrait.php CHANGED
@@ -89,7 +89,7 @@ trait MySQLRowsGeneratorTrait
89
  if ($previousRequestId === $requestId) {
90
  list($requestId, $table, $offset, $batchSize) = array_replace([$requestId, $table, $offset, $batchSize], $lastQueryInfo);
91
 
92
- $batchSize = $batchSize / 2;
93
 
94
  if ($batchSize < 1) {
95
  throw new \RuntimeException(sprintf(
89
  if ($previousRequestId === $requestId) {
90
  list($requestId, $table, $offset, $batchSize) = array_replace([$requestId, $table, $offset, $batchSize], $lastQueryInfo);
91
 
92
+ $batchSize = $batchSize / 3;
93
 
94
  if ($batchSize < 1) {
95
  throw new \RuntimeException(sprintf(
Framework/Utils/Cache/BufferedCache.php CHANGED
@@ -390,7 +390,7 @@ class BufferedCache extends AbstractCache
390
 
391
  // Failed to write
392
  if ($bytesWrittenInThisRequest === false || ($bytesWrittenInThisRequest <= 0 && strlen($chunk) > 0)) {
393
- throw DiskNotWritableException::diskNotWritable();
394
  }
395
 
396
  // Finished writing, nothing more to write!
390
 
391
  // Failed to write
392
  if ($bytesWrittenInThisRequest === false || ($bytesWrittenInThisRequest <= 0 && strlen($chunk) > 0)) {
393
+ throw DiskNotWritableException::fileNotWritable($this->filePath);
394
  }
395
 
396
  // Finished writing, nothing more to write!
Framework/Utils/WpDefaultDirectories.php CHANGED
@@ -165,6 +165,23 @@ class WpDefaultDirectories
165
  return $this->slashit($relPath, $mode);
166
  }
167
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
168
  /**
169
  * Get the relative path of themes directory
170
  * @param int $mode Optional. Slash Mode. Default SlashMode::NO_SLASH.
165
  return $this->slashit($relPath, $mode);
166
  }
167
 
168
+ /**
169
+ * Get the relative path of mu plugins directory
170
+ * @param int $mode Optional. Slash Mode. Default SlashMode::NO_SLASH.
171
+ * Use SlashMode::NO_SLASH, if you don't want trailing and leading slash.
172
+ * Use SlashMode::TRAILING_SLASH, if you want trailing forward slash.
173
+ * Use SlashMode::LEADING_SLASH, if you want leading forward slash.
174
+ * Use SlashMode::BOTH_SLASHES, if you want both trailing and leading forward slash.
175
+ * @return string
176
+ */
177
+ public function getRelativeMuPluginPath($mode = SlashMode::NO_SLASH)
178
+ {
179
+ $wpPluginDir = $this->strUtils->sanitizeDirectorySeparator(WPMU_PLUGIN_DIR);
180
+ $relPath = str_replace($this->wpRoot, '', $wpPluginDir);
181
+
182
+ return $this->slashit($relPath, $mode);
183
+ }
184
+
185
  /**
186
  * Get the relative path of themes directory
187
  * @param int $mode Optional. Slash Mode. Default SlashMode::NO_SLASH.
Frontend/views/loginForm.php CHANGED
@@ -1,6 +1,6 @@
1
  <main class="wp-staging-login" >
2
  <div class="wpstg-text-center">
3
- <img width="220" src="<?php echo esc_url(WPSTG_PLUGIN_URL . 'assets/img/logo-wp-staging-1468x230.png'); ?>" alt="WP Staging Login" />
4
  </div>
5
  <form class="wp-staging-form" name="<?php echo $args['form_id']; ?>" id="<?php echo $args['form_id']; ?>" action="" method="post">
6
  <?php if ($showNotice) { ?>
1
  <main class="wp-staging-login" >
2
  <div class="wpstg-text-center">
3
+ <img width="220" src="<?php echo esc_url(WPSTG_PLUGIN_URL . 'assets/img/logo.svg'); ?>" alt="WP Staging Login" />
4
  </div>
5
  <form class="wp-staging-form" name="<?php echo $args['form_id']; ?>" id="<?php echo $args['form_id']; ?>" action="" method="post">
6
  <?php if ($showNotice) { ?>
assets/css/dist/wpstg-admin.css CHANGED
@@ -47,6 +47,14 @@
47
 
48
  /* CSS for Tabs */
49
 
 
 
 
 
 
 
 
 
50
  #wpstg-tab-container ul {
51
  list-style: none;
52
  margin: 0;
@@ -178,7 +186,7 @@
178
 
179
  .wpstg-version {
180
  display: block;
181
- padding-top: 34px;
182
  color: #9b9b9b;
183
  }
184
 
@@ -1544,6 +1552,7 @@ Tooltip top arrow
1544
  }
1545
 
1546
  .wpstg--modal--backup--import--upload--container img {
 
1547
  width: 4em;
1548
  align-self: center;
1549
  border: none;
47
 
48
  /* CSS for Tabs */
49
 
50
+ body.wp-staging-pro_page_wpstg_backup,
51
+ body.toplevel_page_wpstg_clone,
52
+ body.wp-staging-pro_page_wpstg-settings,
53
+ body.wp-staging-pro_page_wpstg-tools,
54
+ body.wp-staging-pro_page_wpstg-license {
55
+ background-color: #f3f5f7;
56
+ }
57
+
58
  #wpstg-tab-container ul {
59
  list-style: none;
60
  margin: 0;
186
 
187
  .wpstg-version {
188
  display: block;
189
+ padding-top: 40px;
190
  color: #9b9b9b;
191
  }
192
 
1552
  }
1553
 
1554
  .wpstg--modal--backup--import--upload--container img {
1555
+ margin-top: 10px;
1556
  width: 4em;
1557
  align-self: center;
1558
  border: none;
assets/css/dist/wpstg-admin.css.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["wpstg-admin.css"],"names":[],"mappings":"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","file":"wpstg-admin.css","sourcesContent":["/**\n * WPSTG Admin CSS\n *\n * @package WPSTG\n * @subpackage Admin CSS\n * @copyright Copyright (c) 2021, René Hermenau\n * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License\n*/\n\n/* Colors */\n\n.wpstg--violet {\n color: #9d37ae;\n}\n\n.wpstg-border--violet {\n border: 1px solid #9d37ae;\n}\n\n.wpstg--red {\n color: #E01E5A;\n}\n\n.wpstg-cta--red {\n color: #fe008f;\n}\n\n.wpstg--blue {\n color: #24a1f0;\n}\n\n.wpstg--darkblue {\n color: #0e86d9;\n}\n\n.wpstg--green {\n color: #83c11f;\n}\n\n.wpstg--grey {\n color: #3e3e3e;\n}\n\n.wpstg--darkgrey {\n color: #1b1b1b;\n}\n\n/* CSS for Tabs */\n\n#wpstg-tab-container ul {\n list-style: none;\n margin: 0;\n padding: 0;\n background: #f1f1f1;\n float: left;\n}\n\n#wpstg-tab-container ul li:first-child.selected-tab {\n border-top: none;\n}\n\n#wpstg-tab-container ul li a.selected-tab {\n font-weight: bold;\n text-decoration: none;\n}\n\n#wpstg-tab-container .row {\n padding-top: 10px;\n padding-bottom: 12px;\n}\n\n.wpstg-tabs-container .nav-tab-wrapper {\n padding: 0;\n}\n\n#wpstg-tab-container .row label strong,\n#wpstg-tab-container .row strong {\n font-weight: bold;\n}\n\n.wpstg-tabs a {\n padding: 5px;\n}\n\n#wpstg-tab-container > ul > li.wpstg-tabs.active {\n background-color: white;\n}\n\n#wpstg_settingsgeneral_header .row:nth-child(3),\n#wpstg_settingsgeneral_header .row:nth-child(4) {\n display: none;\n}\n\n#wpstg-tab-container .wpstg-settings-panel {\n padding: 0 20px 20px 20px;\n overflow: auto;\n}\n\n#wpstg-tab-container .wpstg-form-table th {\n vertical-align: top;\n text-align: left;\n padding: 20px 10px 20px 0;\n line-height: 1.3;\n font-weight: bold;\n font-size: 14px;\n color: #484848;\n width: 30%;\n}\n\n#wpstg-tab-container .wpstg-form-table tr {\n border-bottom: 1px solid #E7E7E7;\n}\n\n#wpstg-tab-container span.description {\n display: block;\n font-weight: 400;\n font-style: normal;\n font-size: 13px;\n margin-top: 7px;\n color: #484848;\n}\n\n#wpstg-tab-container .col-title {\n color: #484848;\n}\n\n@media only screen and (max-width: 680px) {\n #wpstg-tab-container ul {\n float: none;\n }\n\n #wpstg-tab-container .wpstg-form-table tr > th {\n width: 100%;\n }\n\n #wpstg-tab-container span.description {\n font-size: 14px;\n }\n\n #wpstg-tab-container .wpstg-form-table tr > th,\n #wpstg-tab-container .wpstg-form-table tr > td {\n padding: 10px;\n }\n}\n\n#wpstg-tab-container ul li {\n margin-bottom: 0;\n}\n\n#wpstg-tab-container ul li a {\n display: block;\n padding: 10px 4px 10px 14px;\n border-width: 1px 0;\n border-style: solid;\n border-top-color: white;\n border-bottom-color: #e7e7e7;\n text-decoration: none;\n color: #0097DF;\n font-weight: bold;\n}\n\n#wpstg-tab-container ul li a:hover {\n background-color: #e5e5e5;\n color: #777777;\n}\n\n.wpstg-logo {\n display: block;\n font-size: 16px;\n padding-top: 20px;\n width: 220px;\n float: left;\n}\n\n.wpstg-logo img {\n max-width: 212px;\n}\n\n.wpstg-version {\n display: block;\n padding-top: 34px;\n color: #9b9b9b;\n}\n\n.wpstg_admin .nav-tab {\n color: #3C3C3C;\n}\n\n#wpstg-tab-container table tbody tr:nth-child(1) > th > div {\n font-size: 20px;\n}\n\n/* Cloning workflow */\n\n#wpstg-clonepage-wrapper {\n margin-bottom: 20px;\n width: 98%;\n}\n\n@media screen and (min-width: 1090px) {\n #wpstg-clonepage-wrapper {\n float: left;\n margin-bottom: 20px;\n }\n}\n\n#wpstg-steps {\n margin-top: 0px;\n margin-left: 20px;\n}\n\n#wpstg-steps li {\n color: #444;\n line-height: 20px;\n padding-right: 10px;\n float: left;\n}\n\n.wpstg-step-num {\n border: 1px solid #3e3e3e;\n border-radius: 3px;\n display: inline-block;\n width: 20px;\n height: 20px;\n text-align: center;\n margin-right: 5px;\n}\n\n.wpstg-current-step {\n font-weight: bold;\n}\n\n.wpstg-current-step .wpstg-step-num {\n background: #3e3e3e;\n color: #eee;\n}\n\n.wpstg-box {\n margin: 10px 0;\n padding: 10px;\n position: relative;\n overflow: hidden;\n transition: border-color .2s ease-in-out;\n}\n\n.wpstg-clone {\n margin-bottom: 10px;\n padding: 16px;\n position: relative;\n transition: border-color .2s ease-in-out;\n background-color: #ffffff;\n color: #3e3e3e;\n border-radius: 3px;\n box-shadow: 0 0 1px rgba(0, 0, 0, .125), 0 1px 3px rgba(0, 0, 0, .1);\n}\n\n.wpstg-clone.active {\n border-color: #1d94cf;\n}\n\n.wpstg-clone-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n\n.wpstg-clone-title {\n display: inline-block;\n font-size: 15px;\n max-width: 300px;\n text-decoration: none;\n font-weight: bold;\n color: #3e3e3e;\n}\n\n.wpstg-clone-title:hover {\n color: #111111;\n}\n\n.wpstg-clone-actions {\n display: flex;\n margin-top: 5px;\n}\n\n.wpstg-dropdown {\n position: relative;\n}\n\n.wpstg-clone-actions .wpstg-dropdown-toggler {\n text-decoration: none;\n background: #25a1f0;\n padding: 6px 10px;\n border-radius: 2px;\n font-size: 14px;\n box-shadow: 0 0 1px rgba(0, 0, 0, .125), 0 1px 3px rgba(0, 0, 0, .2);\n color: #ffffff;\n}\n\n.wpstg-clone-actions .wpstg-dropdown-toggler:hover {\n background: #002648;\n color: white;\n}\n\n.wpstg-dropdown {\n position: relative;\n}\n\n.wpstg-dropdown > .wpstg-dropdown-menu {\n background: #fff;\n display: none;\n flex-direction: column;\n position: absolute;\n right: 0;\n top: calc(100% + 4px);\n padding: 8px;\n border-radius: 2px;\n width: 100px;\n box-shadow: 0 0 1px rgba(0, 0, 0, .125), 0 1px 3px rgba(0, 0, 0, .2);\n z-index: 1000;\n}\n\n.wpstg-dropdown > .wpstg-dropdown-menu.wpstg-menu-dropup {\n top: auto;\n bottom: 100%;\n transform: translate3d(0px, -3px, 0px);\n}\n\n.wpstg-dropdown > .wpstg-dropdown-menu.shown {\n display: flex;\n}\n\n.wpstg-clone-action,\n.wpstg-dropdown-action {\n color: #3e3e3e;\n padding: 6px 8px;\n border-radius: 3px;\n text-decoration: none;\n position: relative;\n transition: color .2s ease-in-out;\n border-bottom: 1px solid #f3f3f3;\n}\n\n.wpstg-clone-action:hover,\n.wpstg-dropdown-action:hover {\n background: rgba(0, 0, 0, 0.05);\n}\n\n.wpstg-dropdown-action {\n color: #3e3e3e;\n background: transparent;\n border: 0 solid black;\n outline: none;\n box-shadow: none;\n}\n\n.wpstg-remove-clone:hover {\n color: #E01E5A;\n}\n\n.wpstg-clone-action:last-child {\n border: none;\n}\n\n.wpstg-clone:hover .wpstg-clone-action {\n display: inline-block;\n}\n\n#wpstg-show-error-details:focus,\n#wpstg-workflow .wpstg-clone-action {\n outline: none;\n box-shadow: none;\n}\n\n.wpstg-link-btn {\n background: #45a1c9;\n color: #fff;\n display: inline-block;\n padding: 5px 10px;\n text-decoration: none;\n vertical-align: baseline;\n transition: all .2s ease-in-out;\n}\n\n.wpstg-link-btn:hover,\n.wpstg-link-btn:focus {\n color: #fff;\n outline: none;\n box-shadow: none;\n}\n\n#wpstg-workflow .wpstg-link-btn:active {\n vertical-align: baseline;\n}\n\n.wpstg-link-btn[disabled] {\n background: #777 !important;\n border-color: #555 !important;\n pointer-events: none;\n}\n\n#wpstg-cancel-cloning,\n#wpstg-cancel-cloning-update {\n margin-top: 5px;\n}\n\n#wpstg-cancel-cloning.success,\n#wpstg-cancel-cloning.success {\n background: #64dd58;\n border-color: #54bd4a;\n}\n\n#wpstg-error-wrapper,\n#wpstg-error-details {\n display: none;\n padding-top: 10px;\n font-size: 13px;\n clear: both;\n}\n\n#wpstg-show-error-details {\n display: inline-block;\n margin-left: 5px;\n color: #555;\n text-decoration: none;\n transition: color .2s ease-in-out;\n}\n\n#wpstg-show-error-details:hover {\n color: #1d94cf;\n}\n\n#wpstg-error-details {\n border-left: 5px solid #E01E5A;\n padding: 10px;\n width: 500px;\n}\n\n#wpstg-try-again {\n display: none;\n}\n\n#wpstg-home-link {\n float: right;\n}\n\n.wpstg-loader {\n content: url('../../img/loading.gif');\n margin-top: 10px;\n display: none;\n}\n\n.wpstg-loader.wpstg-finished {\n display: block;\n content: \"Finished\";\n background-color: #00c89a;\n color: white;\n padding: 2px 10px;\n margin-top: 0;\n border-radius: 3px;\n}\n\n#wpstg-workflow {\n max-width: 800px;\n position: relative;\n clear: both;\n padding-top: 20px;\n float: left;\n min-width: 500px;\n min-height: 380px;\n padding-right: 20px;\n padding-bottom: 20px;\n}\n\n#wpstg-sidebar {\n float: left;\n max-width: 400px;\n display: block;\n margin-left: 10px;\n}\n\n#wpstg-workflow.loading::after,\n#wpstg-removing-clone.loading::after {\n background: rgba(255, 255, 255, .7);\n content: 'Loading... may take a while for huge websites';\n display: block;\n width: 100%;\n height: 100%;\n font-size: 20px;\n padding-top: 100px;\n text-align: center;\n position: absolute;\n top: 0;\n left: 0;\n z-index: 99;\n}\n\n#wpstg-removing-clone.loading::after {\n content: 'REMOVING' !important;\n}\n\n#wpstg-existing-clones,\n#wpstg-removing-clone {\n position: relative;\n}\n\n#wpstg-existing-clones h3 {\n color: #3e3e3e;\n}\n\n#wpstg-removing-clone .wpstg-tab-section {\n display: block;\n}\n\n.wpstg-progress-bar {\n max-width: 900px;\n height: 27px;\n padding: 0;\n background-color: #d6d8d7;\n}\n\n.wpstg-progress {\n float: left;\n background: #3fa5ee;\n width: 0;\n height: 100%;\n transition: width .6s ease;\n color: white;\n line-height: 25px;\n text-align: center;\n overflow: hidden;\n}\n\n.wpstg-progress-files {\n background: #16b4f0;\n width: 0;\n height: 100%;\n transition: width .6s ease;\n color: white;\n line-height: 25px;\n text-align: center;\n}\n\n#wpstg-new-clone-id.wpstg-error-input,\n#wpstg-clone-path.wpstg-error-input {\n border: 1px solid #E01E5A;\n box-shadow: 0 0 2px rgba(255, 66, 53, .8);\n}\n\n#wpstg-new-clone-id {\n width: 450px;\n max-width: 100%;\n margin-left: 15px;\n}\n\n#wpstg-new-clone {\n background: #25a1f0;\n border-color: #2188c9;\n}\n\n#wpstg-new-clone:hover {\n background: #259be6;\n border-color: #2188c9;\n}\n\n#wpstg-clone-path {\n margin-left: 10px;\n width: 350px;\n}\n\n.wpstg-error-msg {\n color: #E01E5A;\n}\n\n#wpstg-clone-id-error {\n display: block;\n background-color: #f0f8ff;\n padding: 10px;\n margin: 20px;\n}\n\n#wpstg-start-cloning + .wpstg-error-msg {\n display: block;\n margin-top: 5px;\n}\n\n.wpstg-size-info {\n color: #999;\n font-weight: normal;\n position: relative;\n left: 2px;\n}\n\n.wpstg-db-table .wpstg-size-info {\n top: 2px;\n}\n\n.wpstg-db-table:hover {\n background-color: #f0f8ff;\n}\n\n#wpstg-workflow #wpstg-start-cloning {\n margin-left: 5px;\n vertical-align: baseline;\n}\n\n\n/* Tabs */\n\n.wpstg-tabs-wrapper {\n max-width: 640px;\n margin: 10px 0;\n}\n\n#wpstg-path-wrapper {\n border-bottom: 2px dashed #ccc;\n padding-bottom: 10px;\n margin-bottom: 10px;\n}\n\n.wpstg-tab-section {\n border-bottom: 1px solid #ddd;\n border-right: none;\n border-left: none;\n display: none;\n width: calc(100% - 72px);\n padding: 0px 36px;\n}\n\n.wpstg-tab-section::after {\n display: block;\n content: '';\n clear: both;\n}\n\n.wpstg-tab-header {\n border-bottom: 1px solid #ddd;\n border-right: none;\n border-left: none;\n color: #444;\n font-size: 16px;\n font-weight: bold;\n display: block;\n padding: 10px;;\n text-decoration: none;\n}\n\n.wpstg-tab-triangle {\n display: inline-block;\n margin-right: 12px;\n animation: transform 0.5s;\n width: 0;\n height: 0;\n margin-top: -3px;\n vertical-align: middle;\n border-top: 5px solid transparent;\n border-bottom: 5px solid transparent;\n border-left: 10px solid;\n transition: transform 0.2s;\n cursor: pointer;\n}\n\n.wpstg-tab-triangle.wpstg-no-icon {\n margin-right: 2px;\n width: auto;\n height: auto;\n vertical-align: auto;\n border-top: 0px solid;\n border-bottom: 0px solid;\n border-left: 0px solid;\n}\n\n.wpstg-tab-triangle.wpstg-rotate-90 {\n transform: rotate(90deg);\n}\n\n.wpstg-tab-header:focus {\n color: #444;\n outline: none;\n box-shadow: none;\n}\n\n#wpstg-large-files {\n display: none;\n border: 1px dashed #ccc;\n padding: 10px 10px 10px;\n margin-top: 20px;\n position: relative;\n font-size: 12px;\n}\n\n#wpstg-large-files h3 {\n background: #fff;\n margin: 0;\n padding: 0 5px;\n position: absolute;\n top: -10px;\n left: 5px;\n}\n\n.wpstg-subdir {\n display: none;\n margin-left: 20px;\n}\n\n.wpstg-subdir.wpstg-push {\n display: block;\n margin-left: 20px;\n}\n\n.wpstg-dir a.disabled {\n color: #888;\n cursor: default;\n text-decoration: none;\n}\n\n.wpstg-check-subdirs {\n display: inline-block;\n margin-left: 10px;\n}\n\n.wpstg-notice-alert {\n display: block;\n background-color: #E01E5A;\n padding: 20px;\n max-width: 600px;\n margin-top: 10px;\n color: white;\n}\n\n.wpstg-notice--white {\n display: block;\n background-color: #ffffff;\n padding: 20px;\n max-width: 600px;\n margin-top: 10px;\n}\n\n.wpstg-notice-alert a {\n color: white;\n}\n\n.wpstg-notice-alert h3 {\n color: white;\n}\n\n.wpstg-header {\n font-weight: 400;\n line-height: 1.6em;\n font-size: 19px;\n border-bottom: 1px solid #DFDFDF;\n clear: both;\n padding-top: 10px;\n}\n\n#wpstg-clone-label {\n font-size: 14px;\n font-weight: bold;\n}\n\n.wpstg-log-details {\n height: 300px;\n overflow: scroll;\n max-width: 650px;\n font-family: monospace;\n font-size: 12px;\n line-height: 15px;\n border: 1px solid #FFF;\n background-color: black;\n color: #c0c0c0;\n padding: 3px;\n white-space: nowrap;\n margin-top: 15px;\n}\n\n#wpstg-finished-result {\n display: none;\n}\n\n#wpstg-remove-cloning {\n background: #ff3428;\n border-color: #e72f24;\n margin-top: 5px;\n}\n\n#wpstg-success-notice {\n padding: 10px;\n background-color: white;\n max-width: 900px;\n border: 1px solid #ccc;\n margin-top: 20px;\n}\n\n.wpstg_beta_notice {\n margin-bottom: 20px;\n}\n\n.wpstg-sysinfo {\n width: 700px;\n height: 700px;\n}\n\n.wpstg-form-table .col-title label {\n font-weight: 600;\n}\n\n.wpstg-form-table td:first-child {\n width: 30%;\n}\n\n.wpstg-share-button-container {\n margin: 5px 0;\n}\n\n.wpstg-share-button-container p {\n margin: 0 0 10px 0;\n}\n\n.wpstg-share-button {\n display: inline-block;\n}\n\n.wpstg-share-button a {\n text-decoration: none;\n}\n\n.wpstg-share-button .wpstg-share {\n font-family: sans-serif;\n font-weight: bold;\n text-decoration: none;\n text-align: center;\n}\n\n.wpstg-share-button .wpstg-share {\n -webkit-border-radius: 2px;\n -moz-border-radius: 2px;\n border-radius: 2px;\n color: #FFF;\n display: inline;\n font-size: 12px;\n padding: 4px 8px;\n}\n\n.wpstg-share-button-twitter .wpstg-share {\n background-color: #00ABF0;\n}\n\n.wpstg-share-button-facebook .wpstg-share {\n background-color: #3b5998;\n}\n\n.wpstg-share-button-googleplus .wpstg-share {\n background-color: #F53424;\n}\n\n.wpstg-share-button-twitter .share:active,\n.wpstg-share-button-facebook .share:active,\n.wpstg-share-button-googleplus .share:active {\n background-color: #353535;\n}\n\n#wpstg-check-space {\n margin-left: 8px;\n}\n\n#wpstg-welcome li {\n font-size: 18px;\n line-height: 29px;\n position: relative;\n padding-left: 23px;\n list-style: none !important;\n}\n\n#wpstg-welcome {\n margin-top: 20px;\n margin-right: 20px;\n background-color: white;\n}\n\n.wpstg-heading-pro {\n font-weight: bold;\n}\n\n.wpstg-h2 {\n margin-top: 0;\n margin-bottom: 1.2rem;\n font-size: 30px;\n line-height: 2.5rem;\n}\n\n#wpstg-welcome li:before {\n width: 1em;\n height: 100%;\n background: url(data:image/svg+xml;charset=utf8,%3Csvg%20width%3D%221792%22%20height%3D%221792%22%20viewBox%3D%220%200%201792%201792%22%20xmlns%3D%22http%3A%2F%2Fwww%2Ew3%2Eorg%2F2000%2Fsvg%22%3E%3Cpath%20fill%3D%22%2377B227%22%20d%3D%22M1671%20566q0%2040%2D28%2068l%2D724%20724%2D136%20136q%2D28%2028%2D68%2028t%2D68%2D28l%2D136%2D136%2D362%2D362q%2D28%2D28%2D28%2D68t28%2D68l136%2D136q28%2D28%2068%2D28t68%2028l294%20295%20656%2D657q28%2D28%2068%2D28t68%2028l136%20136q28%2028%2028%2068z%22%2F%3E%3C%2Fsvg%3E) left .4em no-repeat;\n background-size: contain;\n content: \"\";\n position: absolute;\n top: -2px;\n left: 0;\n color: #77b227;\n}\n\n.wpstg-h1 {\n margin-bottom: 1.35rem;\n font-size: 2.5em;\n line-height: 3.68rem;\n letter-spacing: normal;\n}\n\n.wpstg--swal2-content h1 {\n color: #444;\n}\n\n#wpstg-welcome h2 {\n margin: 0 0 15px;\n}\n\n#wpstg-welcome .wpstg-footer {\n clear: both;\n margin-top: 20px;\n font-style: italic;\n}\n\n#wpstg-footer {\n clear: both;\n margin-top: 20px;\n margin-right: 10px;\n padding-top: 50px;\n}\n\n#wpstg-footer a {\n text-decoration: none;\n}\n\n#wpstg-footer li {\n margin-bottom: 2px;\n list-style: circle;\n}\n\n#wpstg-footer ul {\n margin-left: 15px;\n margin-top: 0px;\n}\n\n.wpstg-footer--title {\n margin-left: 15px;\n}\n\n.wpstg-staging-info {\n margin-top: 8px;\n color: #3e3e3e;\n font-size: 12px;\n}\n\n.wpstg-staging-info a {\n color: #3e3e3e;\n}\n\n.wpstg-staging-info li {\n margin-bottom: 2px;\n}\n\n.wpstg-bold {\n font-weight: 600;\n}\n\n#wpstg-processing-status {\n margin-top: 5px;\n font-size: 13px;\n font-weight: 400;\n float: left;\n}\n\n#wpstg-processing-timer {\n margin-top: 5px;\n font-size: 13px;\n font-weight: 400;\n float: right;\n}\n\n#wpstg-report-issue-button {\n margin-left: 50px;\n border: 1px solid #E01E5A;\n color: #E01E5A;\n background-color: white;\n}\n\n#wpstg-report-issue-button:hover {\n background-color: #dc2b62;\n color: #fff;\n}\n\n.wpstg-blue-primary {\n display: inline-block;\n text-decoration: none;\n font-size: 13px;\n /*line-height: 26px;*/\n height: 28px;\n margin: 0;\n padding: 0 10px 1px;\n cursor: pointer;\n border-width: 1px;\n border-style: solid;\n -webkit-appearance: none;\n border-radius: 3px;\n white-space: nowrap;\n box-sizing: border-box;\n background: #25a1f0;\n border-color: #2188c9;\n color: #fff;\n text-shadow: 0 -1px 1px #006799, 1px 0 1px #006799, 0 1px 1px #006799, -1px 0 1px #006799;\n}\n\n.wpstg-blue-primary:hover {\n background-color: #259be6;\n}\n\n.wpstg-report-issue-form {\n position: absolute;\n z-index: 999;\n width: 300px;\n background-color: #fff;\n padding: 15px 15px 10px;\n border: 1px solid #e8e8e8;\n border-radius: 3px;\n box-shadow: 0 1px 0 0 #fff inset;\n display: none;\n right: 0;\n top: 35px;\n}\n\n@media (max-width: 600px) {\n .wpstg-report-issue-form {\n position: relative;\n }\n}\n\n.wpstg-report-show {\n display: block;\n}\n\n.wpstg-field input[type=text],\n.wpstg-field textarea {\n width: 100%;\n font-weight: 400;\n line-height: 1.4;\n margin-bottom: 4px;\n}\n\n.wpstg-report-email,\n.wpstg-report-hosting-provider {\n width: 100%;\n font-weight: 400;\n font-size: .8rem;\n height: 2.3rem;\n line-height: 2.3rem;\n border-radius: 3px;\n margin-bottom: 4px;\n padding: 0 10px;\n}\n\n.wpstg-report-description {\n border-radius: 3px;\n font-size: .8rem;\n padding: 6px 10px;\n resize: none;\n}\n\n.wpstg-report-privacy-policy {\n font-size: 12px;\n margin-bottom: 15px;\n}\n\n#wpstg-report-cancel {\n float: right;\n margin-right: 5px;\n font-weight: bold;\n}\n\n#wpstg-success-button {\n font-weight: bold;\n}\n\n.wpstg-message {\n box-sizing: border-box;\n -moz-box-sizing: border-box;\n background-color: #f5e0de;\n border-radius: 3px;\n color: rgba(0, 0, 0, .6);\n height: auto;\n margin: 10px 0;\n min-height: 18px;\n padding: 6px 10px;\n position: relative;\n}\n\n.wpstg-message.wpstg-error-message {\n background-color: #f5e0de;\n color: #b65147;\n font-size: 12px;\n}\n\n.wpstg-message.wpstg-success-message {\n background-color: #d7f8e0;\n color: #515151;\n}\n\n.wpstg-message p {\n margin: 3px 0;\n font-size: 13px;\n}\n\n.wpstg-warning {\n display: block;\n padding: 10px;\n background-color: #ffb804;\n color: #ffffff;\n margin: 10px 10px 10px 0;\n}\n\n.wpstg-warning a {\n color: #ffffff;\n font-weight: bold;\n text-decoration: underline;\n}\n\n.wpstg-error {\n display: block;\n padding: 10px !important;\n background-color: #E01E5A !important;\n color: #ffffff;\n margin: 10px 10px 10px 0 !important;\n border-color: transparent !important;\n border-left-color: transparent !important;\n box-shadow: none !important;\n}\n\n.wpstg-error a {\n color: #ffffff;\n font-weight: bold;\n text-decoration: underline;\n}\n\n#wpstg-resume-cloning {\n display: none;\n}\n\n#wpstg-external-db th {\n text-align: left;\n width: 120px;\n}\n\n#wpstg-db-connect {\n font-weight: normal;\n}\n\n#wpstg-db-status {\n display: block;\n margin-top: 5px;\n padding: 5px;\n margin-bottom: 20px;\n border: 1px solid transparent;\n border-radius: 4px;\n text-decoration: none;\n text-align: center;\n}\n\n.wpstg-text-field > #wpstg-db-status {\n margin-top: 8px;\n margin-left: 150px;\n min-width: 300px;\n}\n\n.wpstg-success {\n color: #3c763d;\n background-color: #dff0d8;\n border-color: #d6e9c6;\n}\n\n.wpstg-failed {\n color: #a94442;\n background-color: #f2dede;\n border-color: #ebccd1;\n}\n\n#wpstg_select_tables_cloning {\n height: 600px;\n font-size: 13px;\n}\n\n#wpstg-update-notify {\n background-color: #E01E5A;\n font-size: 14px;\n color: #ffffff;\n line-height: normal;\n padding: 10px;\n}\n\n#wpstg-update-notify a {\n color: #ffffff;\n font-weight: bold;\n}\n\n.wpstg-pointer {\n cursor: pointer;\n}\n\n.wpstg--tab--header {\n background-color: white;\n /* margin-bottom: 10px; */\n /* padding: 16px; */\n position: relative;\n transition: border-color .2s ease-in-out;\n background-color: #ffffff;\n color: #3e3e3e;\n border-radius: 2px;\n box-shadow: 0 0 1px rgba(0, 0, 0, .125), 0 1px 3px rgba(0, 0, 0, .02);\n}\n\n.wpstg--tab--header ul {\n display: flex;\n}\n\n.wpstg--tab--header ul li {\n margin-right: 1em;\n margin-bottom: 0px;\n}\n\n.wpstg--tab--header ul li:last-child {\n margin-right: 0;\n}\n\n.wpstg--tab--header a {\n min-width: 150px;\n text-align: center;\n cursor: pointer;\n display: inline-block;\n padding: 1em 1.25em;\n padding-bottom: 9px;\n color: #c4c4c4;\n font-size: 18px;\n /*\n border: solid 1px;\n */\n}\n\n.wpstg--tab--header a.wpstg--tab--active {\n border-bottom: .4em solid #25A1F0;\n color: #25A1F0;\n}\n\n.wpstg--tab--header a:hover {\n background-color: #fefefe;\n border-bottom: 0.4em solid #25A1F0;\n color: #25A1F0;\n}\n\n.wpstg--tab--content {\n display: none;\n}\n\n.wpstg--tab--active {\n display: block;\n}\n\n.wpstg--text--strong,\n.wpstg--text--strong * {\n font-weight: bold !important;\n}\n\n.wpstg--text--danger {\n color: #a94442;\n}\n\n.wpstg--tooltip {\n position: relative;\n display: inline-block;\n border-bottom: 1px dotted black;\n margin-left: 10px;\n}\n\n.wpstg--tooltip .wpstg--tooltiptext {\n visibility: hidden;\n width: 300px;\n background-color: #ffffff;\n color: #505050;\n text-align: left;\n padding: 12px;\n border-radius: 3px;\n position: absolute;\n z-index: 1;\n -webkit-box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 6px rgba(0, 0, 0, 0.23);\n -moz-box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 6px rgba(0, 0, 0, 0.23);\n box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 6px rgba(0, 0, 0, 0.23);\n}\n\n.wpstg--tooltiptext-backups {\n width: 120px;\n top: 100%;\n left: -150%;\n margin-left: -56px;\n margin-top: 4px;\n}\n\n.wpstg--tooltip.wpstg--exclude-rules--tooltip {\n border-bottom: 0px solid transparent;\n}\n\n.wpstg--tooltip.wpstg--exclude-rules--tooltip > .wpstg--tooltiptext {\n margin-top: 0px;\n margin-left: -150px;\n}\n\n/**\nTooltip top arrow\n */\n\n.wpstg--tooltip .wpstg--tooltiptext-backups::after {\n content: \" \";\n position: absolute;\n bottom: 100%;\n /* At the top of the tooltip */\n left: 50%;\n margin-left: 25px;\n border-width: 5px;\n border-style: solid;\n border-color: transparent transparent white transparent;\n}\n\n.wpstg--tooltip .wpstg--tooltiptext.has-top-arrow {\n margin-top: 6px;\n}\n\n.wpstg--tooltip .wpstg--tooltiptext.has-top-arrow::after {\n content: \" \";\n position: absolute;\n bottom: 100%;\n left: 50%;\n margin-left: -18px;\n border-width: 5px;\n border-style: solid;\n border-color: transparent transparent white transparent;\n}\n\n.wpstg--snaphot-restore-table tr {\n line-height: 12px;\n}\n\n.wpstg-float-left {\n float: left;\n}\n\n.wpstg-beta-notice {\n background-color: #b0e8b0;\n border-radius: 3px;\n padding: 7px;\n margin-bottom: 20px;\n}\n\n#wpstg-backup-name {\n font-size: 1.875em;\n font-weight: 600;\n}\n\n#wpstg_select_tables_cloning option:checked {\n /* Cannot use background color here because Chrome and Firefox ignore it even if set to !important */\n -webkit-appearance: menulist-button;\n background-image: linear-gradient(0deg, #1e90ff 0%, #1e90ff 100%);\n}\n\n.wpstg--btn--cancel {\n background: #ff3428;\n border-color: #e72f24;\n color: #fff;\n height: auto;\n line-height: normal;\n font-size: 16px;\n padding: .5em;\n margin-bottom: 1.5em;\n}\n\n.wpstg--btn--cancel:hover {\n background: #ff3428;\n border-color: #e72f24;\n}\n\n.wpstg--process--content > .wpstg--swal2-html-container {\n padding: 4em 2em !important;\n}\n\n.wpstg--modal--process--logs,\n.wpstg--modal--error--logs {\n background: #ffffff;\n border: 1px solid #a8a8a8;\n border-radius: 3px;\n height: 300px;\n margin-top: 1em;\n display: none;\n padding-top: 10px;\n padding-left: 10px;\n overflow: auto;\n text-align: justify;\n}\n\n.wpstg--modal--error--logs {\n height: auto;\n max-height: 300px;\n}\n\n.wpstg--modal--process--logs p {\n font-size: 12px;\n white-space: nowrap;\n}\n\n.wpstg--modal--process--logs p.wpstg--modal--process--msg--info {\n color: #222222;\n}\n\n.wpstg--modal--process--logs p.wpstg--modal--process--msg--debug {\n color: #757575;\n}\n\n.wpstg--modal--process--title {\n color: #565656;\n margin: .25em 0;\n}\n\n.wpstg--modal--process--subtitle {\n margin: .5em 0;\n color: #565656;\n}\n\n.wpstg--modal--error--logs > p {\n text-align: left;\n font-size: 14px;\n color: #222222;\n}\n\n.wpstg--modal--process--logs p,\n.wpstg--modal--error--logs p {\n margin: 0px;\n margin-bottom: 2px;\n}\n\n.wpstg--modal--process--msg--error {\n color: #E01E5A;\n}\n\n.wpstg--modal--process--msg--critical {\n color: #E01E5A;\n}\n\n.wpstg--modal--process--msg--warning {\n color: darkorange;\n}\n\n.wpstg--modal--process--msg-found {\n font-size: 16px;\n color: #E01E5A;\n font-weight: bold;\n}\n\n.wpstg--modal--delete {\n text-align: left;\n margin-top: 8px;\n color: #565656;\n}\n\n.wpstg-swal-popup .wpstg--swal2-cancel.wpstg--btn--cancel {\n margin-bottom: 0;\n text-shadow: none !important;\n}\n\n.wpstg-swal-popup .wpstg-loader {\n display: inline-block !important;\n}\n\n.wpstg--modal--process--generic-problem {\n display: none;\n border-left: 5px solid #E01E5A;\n margin: .5em 0;\n}\n\n.wpstg--modal--process--logs--tail {\n font-size: 16px;\n color: #565656;\n background: none;\n border: none;\n cursor: pointer;\n}\n\n.wpstg--modal--backup--import--upload--title {\n color: #565656;\n}\n\n.wpstg--modal--backup--import--configure,\n.wpstg--modal--backup--import--upload--status,\n.wpstg--modal--backup--import--upload--container input[type=\"file\"] {\n display: none;\n}\n\n#wpstg--backups--import--file-list {\n font-size: 14px;\n font-weight: bold;\n}\n\n#wpstg--backups--import--file-list-empty {\n color: #E01E5A;\n}\n\n.wpstg--modal--backup--import--filesystem label {\n font-size: 14px;\n}\n\n.wpstg--modal--backup--import--filesystem button {\n margin-bottom: 20px;\n}\n\n.wpstg--modal--backup--import--upload {\n position: relative;\n min-height: 30px;\n}\n\n.wpstg--modal--backup--import--upload {\n color: #505050;\n}\n\n.wpstg--modal--backup--import--upload--container {\n position: relative;\n border-radius: 10px;\n margin: .5em;\n padding: 1em .5em;\n border: 3.5px dashed #dedede;\n transition: background-color 0.3s ease, color 0.3s ease;\n background-color: #f4fbff;\n min-height: 130px;\n}\n\n.wpstg--modal--backup--import--upload--container.wpstg--has-dragover span.wpstg--drop {\n display: inline-flex;\n}\n\n.wpstg--modal--backup--import--upload--container input[type='file'] {\n display: none;\n}\n\n.wpstg--modal--backup--import--upload--container img {\n width: 4em;\n align-self: center;\n border: none;\n}\n\n.wpstg--modal--backup--import--upload--container span {\n margin-top: 1em;\n}\n\n.wpstg--backup--import--options > button {\n margin-top: 1em;\n padding: 1em;\n align-self: center;\n width: 185px;\n height: auto;\n line-height: normal;\n}\n\n.wpstg--backup--import--options {\n position: relative;\n display: flex;\n justify-content: center;\n}\n\n.wpstg--backup--import--options ul {\n display: none;\n}\n\n.wpstg--backup--import--options.wpstg--show-options ul {\n padding: 0;\n margin: 54px 0 0 0;\n display: block;\n position: absolute;\n width: 185px;\n background: #25a1f0;\n box-sizing: border-box;\n border-radius: 0 0 3px 3px;\n border-width: 1px;\n border-color: #2188c9;\n text-shadow: 0 -1px 1px #006799, 1px 0 1px #006799, 0 1px 1px #006799, -1px 0 1px #006799;\n}\n\n.wpstg--backup--import--options.wpstg--show-options ul li {\n border-bottom: .1em solid #25a1f0;\n margin: 0;\n}\n\n.wpstg--backup--import--options.wpstg--show-options ul li:hover {\n background-color: #25a1f0;\n}\n\n.wpstg--backup--import--options.wpstg--show-options ul li:last-child {\n border-bottom: none;\n}\n\n.wpstg--backup--import--options ul li button {\n cursor: pointer;\n background: none;\n border: none;\n margin: 0;\n width: 100%;\n color: white;\n height: 40px;\n line-height: 40px;\n}\n\n.wpstg--backup--import--options ul li button:hover {\n background-color: #259be6;\n}\n\n.wpstg--modal--backup--import--search-replace--info {\n margin: 1em 0;\n display: flex;\n flex-direction: row;\n}\n\n.wpstg--modal--backup--import--info p {\n text-align: left;\n margin: 0;\n}\n\n.wpstg--modal--backup--import--search-replace--wrapper button {\n align-self: center;\n}\n\n.wpstg--import--advanced-options--button {\n border: 0;\n border-radius: 3px;\n font-size: 18px;\n text-shadow: 0 -1px 1px #006799, 1px 0 1px #006799, 0 1px 1px #006799, -1px 0 1px #006799;\n cursor: pointer;\n}\n\n.wpstg--modal--backup--import--search-replace--new {\n color: white;\n background-color: #25a1f0;\n}\n\n.wpstg--modal--backup--import--search-replace--remove {\n color: white;\n background-color: #25a1f0;\n width: 22px;\n height: 22px;\n margin-left: 5px;\n}\n\n.wpstg--modal--backup--import--search-replace--input-group:first-child button {\n display: none;\n}\n\n.wpstg--modal--backup--import--search-replace--input--container {\n flex: 1;\n display: flex;\n flex-direction: column;\n}\n\n.wpstg--modal--backup--import--search-replace--input-group {\n width: 100%;\n border-bottom: 6px solid #f1f1f1;\n margin-bottom: 10px;\n}\n\n.wpstg--modal--backup--import--search-replace--input-group input {\n min-width: 250px;\n width: calc(50% - 4px - 11px - 5px); /* -4px is half of the padding; -11px is half of the button; -5 is the margin left of the button */\n display: inline-block;\n line-height: 10px;\n border: 1px solid #dedede;\n border-radius: 3px;\n color: #666;\n padding: 8px;\n margin-bottom: 12px;\n}\n\n.wpstg--modal--import--upload--process {\n display: none;\n position: relative;\n height: 30px;\n margin-top: 20px;\n margin-bottom: 20px;\n width: 100%;\n top: 0;\n left: 0;\n text-indent: 1em;\n white-space: nowrap;\n overflow: hidden;\n color: #333333;\n justify-content: center;\n align-items: center;\n}\n\n.wpstg--modal--import--upload--progress {\n position: absolute;\n background: #98d452;\n color: white;\n height: 100%;\n border-radius: 4px;\n left: 0;\n top: 0;\n}\n\n.wpstg--modal--import--upload--progress--title {\n z-index: 9;\n}\n\n.wpstg-fieldset:disabled {\n opacity: 0.8;\n border-top: 1px solid white;\n margin-top: 20px;\n}\n\n.wpstg-fieldset {\n padding-left: 20px;\n}\n\n.wpstg-fs-14 {\n font-size: 14px;\n}\n\n.wpstg-dark-alert {\n font-weight: bold;\n background-color: #0e86d9;\n padding: 15px;\n margin-top: 0px;\n color: white;\n}\n\n.wpstg-dark-alert .wpstg-button--cta-red {\n margin-left:10px;\n}\n\n.wpstg-form-group {\n display: block;\n width: 100%;\n margin-bottom: 8px;\n align-items: center;\n}\n\n.wpstg-form-group > label {\n display: block;\n font-weight: 700;\n}\n\n.wpstg-text-field > input {\n width: 300px;\n display: block;\n line-height: 1.5;\n}\n\n.wpstg-code-segment {\n display: block;\n}\n\n.wpstg-text-field > .wpstg-code-segment {\n margin-top: 4px;\n min-width: 300px;\n}\n\n.wpstg-form-group > .wpstg-checkbox {\n min-width: 100%;\n width: 100%;\n position: relative;\n}\n\n.wpstg-form-group > .wpstg-checkbox > input[type='checkbox'] {\n left: 150px;\n}\n\n.wpstg-rounded {\n border-radius: 3px;\n}\n\n.wpstg-white-border {\n border: 1px solid white !important;\n}\n\n.wpstg-ml-4 {\n margin-left: 4px;\n}\n\n#wpstg-confirm-backup-restore-data {\n margin: 40px;\n text-align: left;\n}\n\n#wpstg-advanced-settings hr {\n margin: 20px 0;\n}\n\n.wpstg-form-row {\n display: block;\n}\n\n.wpstg-form-row label,\n.wpstg-form-row input {\n display: table-cell;\n padding-left: 5px;\n padding-right: 5px;\n margin-top: 3px;\n margin-bottom: 3px;\n}\n\n.wpstg-form-row input {\n width: 400px;\n}\n\n.wpstg-form-row label {\n font-weight: bold;\n width: 1px;\n white-space: nowrap;\n}\n\n#wpstg-db-connect-output #wpstg-db-status {\n width: 390px;\n}\n\n.wpstg-fs-14 {\n font-size: 14px;\n}\n\n.wpstg-code-segment {\n display: block;\n}\n\n.wpstg-form-group > .wpstg-checkbox {\n min-width: 100%;\n width: 100%;\n}\n\n.wpstg-form-group > .wpstg-checkbox > input[type='checkbox'] {\n margin-left: 10px;\n}\n\n@media only screen and (max-width: 768px) {\n .wpstg-form-group > label {\n min-width: auto;\n width: auto;\n }\n\n .wpstg-text-field > input {\n width: 100%;\n }\n\n .wpstg-text-field > .wpstg-code-segment {\n margin-left: 0;\n min-width: 100%;\n }\n\n .wpstg-tab-section {\n width: calc(100vw - 60px);\n max-width: 450px;\n }\n}\n\n.wpstg-rounded {\n border-radius: 3px;\n}\n\n.wpstg-white-border {\n border: 1px solid white !important;\n}\n\n.wpstg-m-0 {\n margin: 0;\n}\n\n.wpstg-mt-10px {\n margin-top: 10px !important;\n}\n\n.wpstg-my-10px {\n margin-top: 10px !important;\n margin-bottom: 10px !important;\n}\n\n.wpstg-w-100 {\n width: 100%;\n}\n\n.wpstg-box-shadow {\n box-shadow: 0 1px 1px 0 rgba(0, 0, 0, .1);\n}\n\n.wpstg-float-left {\n float: left;\n}\n\n.wpstg-bold-text {\n font-weight: bold;\n}\n\n.wpstg-warning.notice {\n border-left: 4px solid #ffba00;\n}\n\n.wpstg-confirmation-label {\n background-color: #5b9dd9;\n color: #fff;\n padding: 2px;\n border-radius: 3px;\n}\n\n.wpstg-my-6px {\n margin-bottom: 6px;\n margin-top: 6px;\n}\n\n.wpstg-mb-10px {\n margin-bottom: 10px;\n}\n\n.wpstg-clear-both {\n clear: both;\n}\n\n.wpstg-font-italic {\n font-style: italic;\n}\n\n.wpstg-mt-20px {\n margin-top: 20px;\n}\n\n.wpstg-welcome-container {\n border: 2px solid white;\n padding: 20px;\n margin-bottom: 20px;\n}\n\n.wpstg-ml-30px {\n margin-left: 30px;\n}\n\n.wpstg-text-center {\n text-align: center;\n}\n\n.wpstg-feedback-link {\n text-decoration: none;\n}\n\n.wpstg-feedback-span {\n display: block;\n margin-bottom: 3px;\n}\n\n#wpstg-confirm-backup-restore-data {\n margin: 40px;\n text-align: left;\n}\n\n#wpstg-confirm-backup-restore-wrapper {\n margin: 30px;\n margin-top: 0;\n}\n\n#wpstg-confirm-backup-restore-wrapper h3 {\n color: #E01E5A;\n}\n\n#wpstg-progress-db,\n#wpstg-progress-backup {\n background-color: #3fa5ee;\n}\n\n#wpstg-progress-sr,\n#wpstg-progress-files.wpstg-pro {\n background-color: #3c9ee4;\n}\n\n#wpstg-progress-dirs,\n#wpstg-progress-data {\n background-color: #3a96d7;\n}\n\n#wpstg-progress-files:not(.wpstg-pro),\n#wpstg-progress-finishing {\n background-color: #378cc9;\n}\n\n.wpstg-issue-resubmit-confirmation.wpstg--swal2-container,\n.wpstg-swal2-container.wpstg--swal2-container {\n z-index: 10500;\n}\n\n.wpstg-swal2-container.wpstg-swal2-loading .wpstg--swal2-actions,\n.wpstg-swal2-container.wpstg-swal2-loading .wpstg--swal2-header {\n display: none;\n}\n\nbody.toplevel_page_wpstg_backup .wpstg--swal2-container .wpstg--swal2-content,\nbody.toplevel_page_wpstg_clone .wpstg--swal2-container .wpstg--swal2-content {\n z-index: 2;\n}\n\n.toplevel_page_wpstg_clone #swal2-content h2 {\n color: #565656;\n}\n\n.toplevel_page_wpstg_clone #swal2-content {\n line-height: 1.5em;\n}\n\ndiv#exportUploadsWithoutDatabaseWarning {\n font-style: italic;\n font-size: 0.9rem;\n margin: 10px;\n padding: 10px;\n border: 1px solid #e3e3e3;\n border-radius: 5px;\n text-align: center;\n background-color: #fafafa;\n}\n\n.wpstg-advanced-options-dropdown-wrapper {\n display: none; /* ENABLE WHEN WE HAVE ADVANCED OPTIONS FOR EXPORTING */\n margin-top: 20px;\n}\n\n.wpstg--modal--backup--import--search-replace--wrapper {\n text-align: left;\n margin-top: 20px;\n}\n\n.wpstg--modal--backup--import--search-replace--new--wrapper {\n text-align: center;\n}\n\n.wpstg-import-backup-contains li {\n display: inline-block;\n}\n\n.wpstg-import-backup-contains li .wpstg-backups-contains {\n border-radius: 3px;\n color: #979797;\n background-color: #e3e3e3;\n border: 1px solid #c2c2c2;\n width: 17px;\n height: 17px;\n font-size: 17px;\n}\n\n.wpstg-import-backup-contains.wpstg-listing-single-backup li .wpstg-backups-contains {\n padding: 2px;\n background-color: white;\n border: 1px solid #c2c2c2;\n}\n\n.wpstg-import-backup-contains.wpstg-listing-single-backup li .wpstg-backups-contains > .wpstg--dashicons {\n filter: invert(50%);\n}\n\n.wpstg-import-backup-contains .wpstg--tooltiptext {\n width: 50px;\n font-size: x-small;\n padding: 5px;\n left: -25px;\n text-align: center;\n}\n\n.wpstg-import-backup-contains-title {\n display: inline-block;\n}\n\nul.wpstg-import-backup-contains {\n display: inline-block;\n}\n\n.wpstg-import-backup-name {\n display: inline-block;\n font-weight: bold;\n}\n\n.wpstg-backup-more-info-toggle {\n font-size: x-small;\n display: inline-block;\n font-style: italic;\n cursor: pointer;\n}\n\n.wpstg-backup-more-info-toggle::selection {\n background: none;\n}\n\nul.wpstg-import-backup-more-info {\n font-size: 14px;\n text-align: left;\n margin-bottom: 30px;\n margin-top: 10px;\n background-color: #f6f6f6;\n border: 1px solid #878787;\n border-radius: 3px;\n padding: 7px;\n cursor: pointer;\n}\n\nul.wpstg-import-backup-more-info:hover {\n background-color: #def2ff;\n border: 1px solid #25a1f0;\n}\n\nul.wpstg-import-backup-more-info li {\n height: 20px;\n}\n\n.wpstg-backup-list {\n max-width: 800px;\n}\n\n.wpstg-backup-list h3 {\n color:#3e3e3e;\n}\n\n.wpstg-backup-list ul ul {\n margin-block-start: 1em;\n margin-block-end: 1em;\n}\n\n.wpstg-push-confirmation-message {\n text-align: justify;\n font-size: 15px;\n}\n\n.wpstg-settings-row {\n padding-top: 10px;\n padding-bottom: 10px;\n}\n\n.wpstg-settings-title {\n font-weight: 600;\n}\n\n.wpstg-settings-form-group {\n display: flex;\n align-items: center;\n}\n\n.wpstg-settings-form-group > .wpstg-settings-message {\n width: 30%;\n padding: 0;\n margin: 7px 0 0;\n}\n\n/**\n * WP STAGING EXCLUSION RULES TABLE LAYOUT\n */\n\n.wpstg-excluded-filters-container {\n padding: 0;\n margin-top: 10px;\n margin-bottom: 10px;\n max-width: 100%;\n width: 100%;\n}\n\n.wpstg-excluded-filters-container > table {\n width: 100%;\n border-collapse: collapse;\n border-color: transparent;\n}\n\n.wpstg-excluded-filters-container td {\n padding-top: 4px;\n padding-bottom: 4px;\n height: 20px;\n}\n\n.wpstg-excluded-filters-container h4 {\n margin: 0;\n}\n\n.wpstg-exclude-filters-foot {\n display: flex;\n justify-content: flex-start;\n padding: 0;\n}\n\n/**\n * WP STAGING EXCLUSION RULE DROPDOWN STYLE\n */\n\n\n.wpstg-exclude-filter-dropdown > button:hover {\n background: #135e96;;\n border: 1px solid #135e96;;\n}\n\n.wpstg-exclude-filter-dropdown > .wpstg-dropdown-menu {\n width: 128px;\n}\n\n.wpstg-remove-exclude-rule {\n color: #fff !important;\n background-color: #e01e5a;\n border: 1px solid #e01e5a;\n width: 20px;\n height: 20px;\n border-radius: 10px;\n font-size: 24px;\n padding: 0;\n display: inline-flex;\n justify-content: center;\n outline: none;\n box-shadow: none;\n font-weight: 400;\n line-height: 0.7;\n margin-top: 5px;\n cursor: pointer;\n}\n\n.wpstg-remove-exclude-rule:hover {\n background-color: #E01E5A;\n border-color: #E01E5A;\n}\n\n.wpstg-code-block {\n margin-top: 4px;\n font-size: 1.2em;\n background: #f8f8f8;\n border-radius: 2px;\n}\n\n.wpstg-rule-info {\n background: #f8f8f8 !important;\n}\n\ncode.wpstg-code {\n display: inline-block;\n font-size: 11px;\n border: 1px solid #aaa;\n background: #fff;\n padding: 2px 4px;\n margin-bottom: 1px;\n color: #E01E5A;\n}\n\n.wpstg-exclusion-rule-info {\n color: #fff !important;\n background-color: #ffc107;\n border: 1px solid #ffc107;\n width: 14px;\n height: 14px;\n border-radius: 7px;\n font-size: 14px;\n padding: 0;\n display: inline-flex;\n justify-content: center;\n align-items: center;\n outline: none;\n box-shadow: none;\n font-weight: 400;\n vertical-align: middle;\n}\n\n.wpstg-exclusion-rule-info:hover {\n background-color: #ffba0c;\n border: 1px solid #ffba0c;\n}\n\n/**\n * WP STAGING INPUTS EXCLUSION RULES\n */\n\n.wpstg-exclude-rule-input {\n font-size: 12px !important;\n padding: 2px 6px;\n box-shadow: none;\n outline: none !important;\n display: inline-block;\n font-weight: 400;\n line-height: 1.5;\n color: #222;\n border-radius: 0 !important;\n background-color: #fff;\n border: 1px solid #bbb;\n min-height: 24px !important;\n margin-top: 4px;\n margin-left: 4px;\n vertical-align: baseline !important;\n transition: all 0.3s cubic-bezier(.25, .8, .25, 1);\n width: 135px;\n}\n\n.wpstg-excluded-filters-container tbody > tr:last-child .wpstg-exclude-rule-input {\n margin-bottom: 4px;\n}\n\n.wpstg-exclude-rule-input:hover {\n border: 1px solid #999;\n}\n\n.wpstg-exclude-rule-input:focus {\n border: 1px solid #25A0F1 !important;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24) !important;\n}\n\n.wpstg-file-size-exclude-select,\n.wpstg-path-exclude-select {\n width: 135px;\n}\n\n.wpstg-file-size-exclude-select-small {\n width: 52px;\n}\n\n.wpstg-file-size-exclude-input {\n width: 75px;\n}\n\n.wpstg-staging-option-title {\n margin: 15px 0 0;\n}\n\n.wpstg-swal-push-container.wpstg--swal2-container {\n z-index: 9995;\n}\n\n#wpstg-scanning-files {\n padding-bottom: 5px;\n}\n\n#wpstg-scanning-files.wpstg-tab-section, #wpstg-scanning-db.wpstg-tab-section {\n padding-top: 10px;\n}\n\n.wpstg-reset-excludes-container {\n margin: 10px 0;\n}\n\n.wpstg-swal2-ajax-loader {\n width: 100%;\n height: 150px;\n overflow: hidden;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n\n@keyframes wpstg-loading-icon-anim {\n 0% {\n transform: rotate(0);\n }\n 100% {\n transform: rotate(360deg);\n }\n}\n\n.wpstg-swal2-ajax-loader > img {\n width: 64px;\n height: 64px;\n animation: wpstg-loading-icon-anim 1s infinite linear;\n -webkit-animation: wpstg-loading-icon-anim 1s infinite linear;\n}\n\n.wpstg-swal2-container .wpstg-tab-section {\n width: auto !important;\n}\n\n#wpstg-no-staging-site-results {\n margin-top: 10px;\n max-width: 375px;\n}\n\nli#wpstg-backup-no-results {\n max-width: 500px;\n}\n\nli#wpstg-backup-no-results div, #wpstg-no-staging-site-results div {\n display: inline-block;\n text-align: center;\n}\n\nli#wpstg-backup-no-results .wpstg--dashicons, #wpstg-no-staging-site-results .wpstg--dashicons {\n filter: invert(50%);\n position: absolute;\n margin-top: 1px;\n}\n\nli#wpstg-backup-no-results .no-backups-found-text, #wpstg-no-staging-site-results .no-staging-site-found-text {\n color: #5d5d5d;\n margin-left: 20px;\n}\n\n@media only screen and (max-width: 680px) {\n li#wpstg-backup-no-results div, #wpstg-no-staging-site-results div {\n width: 100%;\n }\n}\n\n#wpstg--modal--backup--download-inner p.wpstg-download-modal-text {\n font-size: 16px;\n color: #565656;\n}\n\n#wpstg--modal--backup--download-inner h2 {\n color: #565656;\n}\n\n.wpstg-backup-restore-contains-database,\n.wpstg-backup-restore-contains-files {\n display: none;\n}\n\n.wpstg-green-button {\n background: #8bc34a;\n border: 1px solid #78a93f;\n color: white;\n text-shadow: 0 -1px 1px #78a93f, 1px 0 1px #78a93f, 0 1px 1px #40c921, -1px 0 1px #78a93f;\n}\n\n.wpstg-green-button:hover {\n background: #78a93f;\n}\n\n.wpstg-is-dir-loading {\n position: absolute;\n margin-top: -2px;\n margin-left: 8px;\n display: none;\n}\n\n.wpstg-ml-8px {\n margin-left: 8px;\n}\n\n.wpstg-mb-8px {\n margin-bottom: 8px;\n}\n\n\n.wpstg-btn-danger {\n background-color: #E01E5A;\n border: 1px solid #E01E5A;\n color: white;\n text-shadow: none;\n}\n\n.wpstg-btn-danger:hover {\n background: #c0194d;\n box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3);\n}\n\n.wpstg-swal2-container.wpstg-swal2-loading > .wpstg--swal2-modal {\n height: 200px;\n}\n\n.wpstg-reset-confirmation.wpstg-swal2-container:not(.wpstg-swal2-loading) > .wpstg--swal2-modal {\n max-width: 480px;\n}\n\n.wpstg-reset-confirmation.wpstg-swal2-container .wpstg--swal2-header {\n display: none;\n}\n\n.wpstg-reset-confirmation.wpstg-swal2-container .wpstg--swal2-content {\n height: auto;\n}\n\n.wpstg-reset-confirmation.wpstg-swal2-container > .wpstg--swal2-modal > .wpstg--swal2-content .wpstg-tabs-wrapper {\n overflow-y: auto;\n height: auto !important;\n}\n\n.wpstg-reset-confirmation.wpstg-swal2-container > .wpstg--swal2-modal > .wpstg--swal2-content {\n font-size: 13px;\n}\n\n.wpstg-reset-confirmation.wpstg-swal2-container > .wpstg--swal2-modal > .wpstg--swal2-content .wpstg-dir {\n margin-bottom: 4px;\n}\n\n.wpstg-reset-confirmation.wpstg-swal2-container > .wpstg--swal2-modal > .wpstg--swal2-content .wpstg-subdir {\n margin-top: 4px;\n}\n\n.wpstg-reset-confirmation.wpstg-swal2-container.has-collapsible-open .wpstg--swal2-modal {\n height: calc(100vh - 70px);\n}\n\n.wpstg-reset-confirmation.wpstg-swal2-container.has-collapsible-open > .wpstg--swal2-modal > .wpstg--swal2-content .wpstg-tabs-wrapper {\n height: calc(100vh - 350px) !important;\n}\n\n.wpstg--swal2-actions.wpstg--modal--actions > button {\n margin-left: 4px;\n margin-right: 4px;\n text-transform: uppercase;\n text-shadow: initial;\n font-weight: 500;\n min-width: 80px;\n}\n\n.wpstg-swal-popup {\n max-width: 1200px !important;\n}\n\n.wpstg-swal-popup.wpstg-push-finished .wpstg--swal2-title {\n color: #a8a8a8;\n}\n\n.wpstg-swal-popup.wpstg-push-finished .wpstg--swal2-content {\n margin-top: 8px;\n color: #a8a8a8;\n}\n\n.wpstg-swal-popup .wpstg--swal2-progress-steps .wpstg--swal2-progress-step.wpstg--swal2-active-progress-step,\n.wpstg-swal-popup .wpstg--swal2-progress-steps .wpstg--swal2-progress-step,\n.wpstg-swal-popup .wpstg--swal2-progress-steps .wpstg--swal2-progress-step-line {\n background: #25a1f0;\n}\n\n.wpstg-swal-popup .wpstg--swal2-progress-steps .wpstg--swal2-progress-step-line {\n width: 2.75em;\n}\n\n.wpstg--dashicons {\n width: 16px;\n height: 16px;\n}\n\n.wpstg--dashicons.wpstg-dashicons-grey {\n filter: invert(20%);\n}\n\n.wpstg--dashicons.wpstg-dashicons-19 {\n width: 19px;\n height: 19px;\n}\n\n.wpstg--dashicons.wpstg-dashicons-21 {\n width: 21px;\n height: 21px;\n}\n\n#wpstg--tab--backup #wpstg-step-1 {\n display: flex;\n align-items: center;\n}\n\n.wpstg-advanced-options .wpstg--tooltip,\n#wpstg--tab--backup #wpstg-step-1 .wpstg--tooltip {\n border-bottom: 0 solid transparent;\n display: inline-flex;\n align-items: center;\n}\n\n#wpstg--tab--backup #wpstg-step-1 .wpstg--tooltip {\n border-bottom: 0 solid transparent;\n display: flex;\n align-items: center;\n}\n\n.wpstg--tooltip .wpstg--tooltiptext-backups::after {\n left: calc(20% + 2px);\n}\n\n.wpstg-listing-single-backup .wpstg--dashicons {\n width: 17px;\n height: 17px;\n}\n\n.wpstg-100-width {\n width: 100px;\n}\n\n.wpstg-caret {\n display: inline-block;\n width: 0;\n height: 0;\n margin-left: 2px;\n vertical-align: middle;\n border-top: 4px solid;\n border-right: 4px solid transparent;\n border-left: 4px solid transparent;\n transition: transform 0.2s;\n cursor: pointer;\n}\n\n.wpstg-caret.wpstg-caret-up {\n transform: rotate(-180deg);\n}\n\n.wpstg-advanced-options-site label {\n font-size: 16px;\n display: block;\n margin: .5em 0;\n}\n\n#wpstg-confirm-backup-restore-data {\n font-size: 18px;\n margin: 0;\n margin-top: 30px;\n}\n\n/* Sweetalert WP STAGING Theme */\n\nbody.toplevel_page_wpstg_backup .wpstg--swal2-container.wpstg--swal2-backdrop-show,\nbody.toplevel_page_wpstg_clone .wpstg--swal2-container.wpstg--swal2-backdrop-show {\n background: rgba(0, 0, 0, .6);\n z-index: 9995;\n}\n\n.wpstg-swal-popup.wpstg--swal2-popup {\n border-radius: 8px;\n z-index: 9999;\n padding: 24px;\n color: #565656;\n font-family: Verdana, Geneva, Tahoma, sans-serif;\n}\n\n.wpstg-swal-popup .wpstg--swal2-title {\n font-size: 22px;\n color: #565656;\n}\n\n.wpstg-swal-popup.wpstg--swal2-popup:not(.centered-modal) .wpstg--swal2-title {\n align-self: flex-start; /* For an actual Swal title */\n text-align: left; /* Manually adding this class to a non flex display */\n margin-bottom: 0;\n}\n\n.wpstg-swal-popup .wpstg--swal2-close {\n top: 8px;\n right: 8px;\n z-index: 5;\n}\n\n.wpstg-swal-popup .wpstg--swal2-close:focus {\n outline: none;\n}\n\n.wpstg-swal-popup.wpstg--swal2-popup:not(.centered-modal) .wpstg--swal2-actions {\n justify-content: flex-end;\n}\n\n.wpstg-swal-popup .wpstg--swal2-actions > button {\n border-radius: 4px;\n font-weight: 900;\n border: 0;\n font-size: 15px;\n padding: 10px 12px;\n text-transform: capitalize;\n line-height: normal;\n height: 40px;\n min-width: 100px;\n text-shadow: none;\n}\n\n.wpstg-swal-popup.wpstg--swal2-popup:not(.centered-modal) .wpstg--swal2-actions > button {\n margin-left: 8px;\n}\n\n.wpstg-swal-popup .wpstg--swal2-actions > button.wpstg--swal2-cancel {\n border: 1px solid rgba(29, 28, 29, 0.3);\n background: #fff;\n color: rgb(29, 28, 29);\n font-weight: 500;\n width: 100px;\n text-shadow: none;\n}\n\n.wpstg-swal-popup .wpstg--swal2-actions > button:hover {\n box-shadow: 0 1px 3px 0 rgba(0 0 0 .1);\n}\n\n.wpstg-swal-popup .wpstg--swal2-actions > button.wpstg--swal2-cancel:hover {\n background: rgba(28, 29, 28, .04);\n}\n\n#wpstg-backup-name-input {\n height: 44px;\n font-size: 18px;\n}\n\n.wpstg-restore-finished-container .wpstg--swal2-title {\n color: #565656 !important;\n}\n\n/*#wpstg-restore-success {\n color: #565656;\n}*/\n\n.wpstg-restore-finished-container .wpstg--swal2-content {\n margin-top: 20px;\n color: #a8a8a8;\n}\n\n/* WP Staging Implementation of Windows Style Linear Loader */\n\n.wpstg-linear-loader > span[class*=\"wpstg-linear-loader-item\"] {\n height: 6px;\n width: 6px;\n background: #333;\n display: inline-block;\n margin: 12px 2px;\n border-radius: 100%;\n animation: wpstg_linear_loader 3s infinite;\n animation-timing-function: cubic-bezier(0.030, 0.615, 0.995, 0.415);\n animation-fill-mode: both;\n}\n\n.wpstg-linear-loader > span.wpstg-linear-loader-item:nth-child(1) {\n animation-delay: 1s;\n}\n\n.wpstg-linear-loader > span.wpstg-linear-loader-item:nth-child(2) {\n animation-delay: 0.8s;\n}\n\n.wpstg-linear-loader > span.wpstg-linear-loader-item:nth-child(3) {\n animation-delay: 0.6s;\n}\n\n.wpstg-linear-loader > span.wpstg-linear-loader-item:nth-child(4) {\n animation-delay: 0.4s;\n}\n\n.wpstg-linear-loader > span.wpstg-linear-loader-item:nth-child(5) {\n animation-delay: 0.2s;\n}\n\n.wpstg-linear-loader > span.wpstg-linear-loader-item:nth-child(6) {\n animation-delay: 0s;\n}\n\n@keyframes wpstg_linear_loader {\n 0% {\n transform: translateX(-30px);\n opacity: 0;\n }\n 25% {\n opacity: 1;\n }\n 50% {\n transform: translateX(30px);\n opacity: 0;\n }\n 100% {\n opacity: 0;\n }\n}\n\n/* END - Windows Style Linear Loader */\n\n.wpstg--modal--backup--import--upload--content {\n padding: .75em;\n margin: 1em auto;\n}\n\n.wpstg--modal--backup--import--upload--content .wpstg-linear-loader {\n display: none;\n}\n\n#wpstg-multisite-disabled .wpstg-clone {\n width: 355px;\n}\n\n#wpstg-free-version-backups .wpstg-clone {\n text-align: center;\n}\n\n#wpstg-free-version-backups .wpstg-clone p {\n font-size: 16px;\n}\n\n.wpstg-staging-info li .backup-notes {\n word-break: break-word;\n}\n\n.wpstg--modal--import--upload--progress--title small {\n font-weight: normal;\n}\n\n#wpstg-report-issue-wrapper {\n position: relative;\n}\n\n#wpstg-report-issue-wrapper .arrow-up {\n width: 0;\n height: 0;\n border-left: 8px solid transparent;\n border-right: 8px solid transparent;\n border-bottom: 8px solid white;\n position: absolute;\n top: -8px;\n right: 40px;\n}\n\n.notice {\n margin: 10px 20px 0 2px;\n}\n\n.wpstg--notice {\n box-shadow: 0 1px 1px rgba(0, 0, 0, .04);\n margin: 20px 20px 20px 0px;\n padding: 1px 12px;\n}\n\n.wpstg--error a:hover {\n color: #eeeeee;\n}\n\n.wpstg--error, .wpstg--error a {\n background: #E01E5A;\n color: white;\n}\n\n/**\n * Buttons\n */\n\n.wpstg-button {\n display: inline-block;\n border-radius: 2px;\n cursor: pointer;\n padding: 2px 10px 2px 10px;\n text-transform: uppercase;\n font-weight: 500;\n outline: 0;\n transition: background-color .1s ease-in;\n text-decoration: none;\n}\n\n.wpstg-button.wpstg-save {\n background-color: #1687A7;\n color: white;\n}\n\n.wpstg-button.wpstg-save:hover {\n background-color: #276678;\n}\n\n\n.wpstg-button.wpstg-button-light {\n background-color: #f8f8f8;\n border: 1px solid #eee;\n color: #333;\n animation: background-color 0.3s;\n}\n\n.wpstg-button.wpstg-button-light:hover {\n background-color: #e0e0e0;\n border: 1px solid #e0e0e0;\n}\n\n.wpstg-buttons .spinner {\n float: none;\n margin: 0 0 0 5px;\n}\n\n.wpstg-button.danger {\n display: inline-block;\n text-decoration: none;\n text-align: center;\n text-transform: inherit;\n background-color: #E01E5A;\n color: white;\n border-radius: 2px;\n border-color: transparent;\n}\n\n.wpstg-button.danger:hover {\n background-color: #c0194d;\n}\n\n.wpstg-button--big {\n display: inline-block;\n padding: 10px;\n min-width: 170px;\n font-size: 16px;\n text-decoration: none;\n text-align: center;\n margin-top: 20px;\n color: white;\n border-radius: 3px;\n}\n\n.wpstg-button--primary {\n display: inline-block;\n text-decoration: none;\n font-size: 13px;\n line-height: 2.15384615;\n min-height: 30px;\n margin: 0;\n padding: 0 10px;\n cursor: pointer;\n border: 1px solid rgba(29, 28, 29, 0.3);\n -webkit-appearance: none;\n border-radius: 2px;\n white-space: nowrap;\n box-sizing: border-box;\n color: #171717;\n}\n\n.wpstg-button--primary:hover {\n background: rgba(28, 29, 28, .04);\n color: black;\n}\n\n.wpstg-button--secondary {\n display: inline-block;\n background-color: transparent;\n color: #95a5a6;\n border-radius: 2px;\n border: 1px solid rgba(29, 28, 29, 0.3);\n cursor: pointer;\n padding: 4px 10px 2px 10px;\n font-weight: 500;\n outline: 0;\n transition: background-color .1s ease-in;\n text-decoration: none;\n}\n\n.wpstg-button--red {\n background-color: #E01E5A;\n border-color: #E01E5A;\n color: white;\n}\n\n.wpstg-button--red:hover {\n background-color: #d02358;\n border-color: #e0255f;\n color: white;\n}\n\n.wpstg-button--cta-red {\n background-color: #fe008f;\n border-color: #E01E5A;\n color: white;\n}\n\n.wpstg-button--cta-red:hover {\n background-color: #f31391;\n border-color: #e0255f;\n color: white;\n}\n\n.wpstg-button--blue {\n background-color: #25A0F1;\n border-color: #25A0F1;\n color: white;\n}\n\n.wpstg-button--blue:hover {\n background-color: #259be6;\n border-color: #259be6;\n color: white;\n}\n\n#wpstg-button-backup-upgrade {\n font-size: 16px;\n}\n\n.wpstg-staging-status {\n color: #E01E5A;\n}\n\n#wpstg-push-changes,\n#wpstg-start-updating,\n#wpstg-save-clone-data {\n margin-left: 5px;\n}\n\ninput.wpstg-textbox {\n border: 1px solid #aaa;\n border-radius: .25rem;\n padding: 0.25rem 0.5rem;\n font-size: 14px;\n}\n\ninput.wpstg-textbox:focus {\n outline: 0;\n border-color: #259be6;\n -webkit-box-shadow: 0 0 0 0.1rem rgba(221, 221, 221, .35);\n box-shadow: 0 0 0 0.1rem rgba(221, 221, 221, .35);\n}\n\ninput.wpstg-textbox::placeholder {\n color: #888;\n}\n\n.wpstg--advance-settings--checkbox {\n display: flex;\n align-items: center;\n}\n\n.wpstg--advance-settings--checkbox > label {\n font-size: 14px;\n font-weight: bolder;\n width: 165px;\n display: inline-block;\n}\n\n.wpstg--advance-settings--checkbox > .wpstg--tooltip {\n margin-top: 5px;\n margin-left: 5px;\n position: relative;\n display: inline-block;\n border-bottom: 0px solid transparent;\n}\n\n.wpstg--advance-settings--checkbox > .wpstg--tooltip > .wpstg--tooltiptext {\n top: 18px;\n left: -150px;\n}\n\n\ndiv#wpstg-restore-wait {\n display: none;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n text-align: center;\n height: 100vh;\n width: 100vw;\n position: fixed;\n top: 0;\n left: 0;\n background: white;\n z-index: 99999;\n}\n\ndiv#wpstg-restore-wait .wpstg-title {\n font-weight: bold;\n}\n\ndiv#wpstg-restore-wait div {\n font-size: 16px;\n margin-top: 12px;\n}\n\n.resumable-browse {\n cursor: pointer;\n}\n\n.resumable-browse a {\n text-decoration: underline;\n}\n\n.wpstg-upload-text {\n font-weight: 600;\n}\n\n.wpstg--modal--backup--import--upload--container.dragover {\n transition: background-color 0.7s;\n background-color: #94dc96;\n color: #FFF;\n}\n\n.wpstg--modal--backup--import--upload--container.dragover * {\n pointer-events: none; /* Avoids flickering when dragging to drop a file */\n}\n\n.wpstg--modal--backup--import--upload--container.dragover .wpstg-upload-text {\n display: none;\n}\n\n.wpstg--modal--backup--import--upload--container.dragover .wpstg-dragover-text {\n display: block;\n}\n\n.wpstg--modal--backup--import--upload--container .wpstg-dragover-text {\n display: none;\n}\n\n#wpstg-invalid-license-message, #wpstg-invalid-license-message a {\n font-weight: 500;\n color: #E01E5A;\n margin-left: 6px;\n}\n\n#wpstg-sidebar--banner {\n max-width: 200px;\n}\n\n@media screen and (max-width: 1234px) {\n .wpstg-h2 {\n font-size: 24px;\n }\n\n #wpstg-welcome li {\n font-size: 14px;\n }\n}\n\n.wpstg-exclamation {\n color: #ffffff;\n border-radius: 100%;\n background-color: #E01E5A;\n width: 20px;\n height: 20px;\n text-align: center;\n font-weight: bold;\n display: inline-block;\n margin: 6px;\n}\n\n.wpstg--tab--contents {\n padding-top: 1px;\n}\n\n.wpstg-swal-show.wpstg--swal2-show {\n -webkit-animation: wpstg-swal-show 0.2s !important;\n animation: wpstg-swal-show 0.2s !important;\n}\n\n@-webkit-keyframes wpstg-swal-show {\n 0% {\n transform: scale(0.3);\n }\n 100% {\n transform: scale(1);\n }\n}\n\n@keyframes wpstg-swal-show {\n 0% {\n transform: scale(0.3);\n }\n 100% {\n transform: scale(1);\n }\n}\n"]}
1
+ {"version":3,"sources":["wpstg-admin.css"],"names":[],"mappings":"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","file":"wpstg-admin.css","sourcesContent":["/**\n * WPSTG Admin CSS\n *\n * @package WPSTG\n * @subpackage Admin CSS\n * @copyright Copyright (c) 2021, René Hermenau\n * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License\n*/\n\n/* Colors */\n\n.wpstg--violet {\n color: #9d37ae;\n}\n\n.wpstg-border--violet {\n border: 1px solid #9d37ae;\n}\n\n.wpstg--red {\n color: #E01E5A;\n}\n\n.wpstg-cta--red {\n color: #fe008f;\n}\n\n.wpstg--blue {\n color: #24a1f0;\n}\n\n.wpstg--darkblue {\n color: #0e86d9;\n}\n\n.wpstg--green {\n color: #83c11f;\n}\n\n.wpstg--grey {\n color: #3e3e3e;\n}\n\n.wpstg--darkgrey {\n color: #1b1b1b;\n}\n\n/* CSS for Tabs */\n\nbody.wp-staging-pro_page_wpstg_backup,\nbody.toplevel_page_wpstg_clone,\nbody.wp-staging-pro_page_wpstg-settings,\nbody.wp-staging-pro_page_wpstg-tools,\nbody.wp-staging-pro_page_wpstg-license {\n background-color: #f3f5f7;\n}\n\n#wpstg-tab-container ul {\n list-style: none;\n margin: 0;\n padding: 0;\n background: #f1f1f1;\n float: left;\n}\n\n#wpstg-tab-container ul li:first-child.selected-tab {\n border-top: none;\n}\n\n#wpstg-tab-container ul li a.selected-tab {\n font-weight: bold;\n text-decoration: none;\n}\n\n#wpstg-tab-container .row {\n padding-top: 10px;\n padding-bottom: 12px;\n}\n\n.wpstg-tabs-container .nav-tab-wrapper {\n padding: 0;\n}\n\n#wpstg-tab-container .row label strong,\n#wpstg-tab-container .row strong {\n font-weight: bold;\n}\n\n.wpstg-tabs a {\n padding: 5px;\n}\n\n#wpstg-tab-container > ul > li.wpstg-tabs.active {\n background-color: white;\n}\n\n#wpstg_settingsgeneral_header .row:nth-child(3),\n#wpstg_settingsgeneral_header .row:nth-child(4) {\n display: none;\n}\n\n#wpstg-tab-container .wpstg-settings-panel {\n padding: 0 20px 20px 20px;\n overflow: auto;\n}\n\n#wpstg-tab-container .wpstg-form-table th {\n vertical-align: top;\n text-align: left;\n padding: 20px 10px 20px 0;\n line-height: 1.3;\n font-weight: bold;\n font-size: 14px;\n color: #484848;\n width: 30%;\n}\n\n#wpstg-tab-container .wpstg-form-table tr {\n border-bottom: 1px solid #E7E7E7;\n}\n\n#wpstg-tab-container span.description {\n display: block;\n font-weight: 400;\n font-style: normal;\n font-size: 13px;\n margin-top: 7px;\n color: #484848;\n}\n\n#wpstg-tab-container .col-title {\n color: #484848;\n}\n\n@media only screen and (max-width: 680px) {\n #wpstg-tab-container ul {\n float: none;\n }\n\n #wpstg-tab-container .wpstg-form-table tr > th {\n width: 100%;\n }\n\n #wpstg-tab-container span.description {\n font-size: 14px;\n }\n\n #wpstg-tab-container .wpstg-form-table tr > th,\n #wpstg-tab-container .wpstg-form-table tr > td {\n padding: 10px;\n }\n}\n\n#wpstg-tab-container ul li {\n margin-bottom: 0;\n}\n\n#wpstg-tab-container ul li a {\n display: block;\n padding: 10px 4px 10px 14px;\n border-width: 1px 0;\n border-style: solid;\n border-top-color: white;\n border-bottom-color: #e7e7e7;\n text-decoration: none;\n color: #0097DF;\n font-weight: bold;\n}\n\n#wpstg-tab-container ul li a:hover {\n background-color: #e5e5e5;\n color: #777777;\n}\n\n.wpstg-logo {\n display: block;\n font-size: 16px;\n padding-top: 20px;\n width: 220px;\n float: left;\n}\n\n.wpstg-logo img {\n max-width: 212px;\n}\n\n.wpstg-version {\n display: block;\n padding-top: 40px;\n color: #9b9b9b;\n}\n\n.wpstg_admin .nav-tab {\n color: #3C3C3C;\n}\n\n#wpstg-tab-container table tbody tr:nth-child(1) > th > div {\n font-size: 20px;\n}\n\n/* Cloning workflow */\n\n#wpstg-clonepage-wrapper {\n margin-bottom: 20px;\n width: 98%;\n}\n\n@media screen and (min-width: 1090px) {\n #wpstg-clonepage-wrapper {\n float: left;\n margin-bottom: 20px;\n }\n}\n\n#wpstg-steps {\n margin-top: 0px;\n margin-left: 20px;\n}\n\n#wpstg-steps li {\n color: #444;\n line-height: 20px;\n padding-right: 10px;\n float: left;\n}\n\n.wpstg-step-num {\n border: 1px solid #3e3e3e;\n border-radius: 3px;\n display: inline-block;\n width: 20px;\n height: 20px;\n text-align: center;\n margin-right: 5px;\n}\n\n.wpstg-current-step {\n font-weight: bold;\n}\n\n.wpstg-current-step .wpstg-step-num {\n background: #3e3e3e;\n color: #eee;\n}\n\n.wpstg-box {\n margin: 10px 0;\n padding: 10px;\n position: relative;\n overflow: hidden;\n transition: border-color .2s ease-in-out;\n}\n\n.wpstg-clone {\n margin-bottom: 10px;\n padding: 16px;\n position: relative;\n transition: border-color .2s ease-in-out;\n background-color: #ffffff;\n color: #3e3e3e;\n border-radius: 3px;\n box-shadow: 0 0 1px rgba(0, 0, 0, .125), 0 1px 3px rgba(0, 0, 0, .1);\n}\n\n.wpstg-clone.active {\n border-color: #1d94cf;\n}\n\n.wpstg-clone-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n\n.wpstg-clone-title {\n display: inline-block;\n font-size: 15px;\n max-width: 300px;\n text-decoration: none;\n font-weight: bold;\n color: #3e3e3e;\n}\n\n.wpstg-clone-title:hover {\n color: #111111;\n}\n\n.wpstg-clone-actions {\n display: flex;\n margin-top: 5px;\n}\n\n.wpstg-dropdown {\n position: relative;\n}\n\n.wpstg-clone-actions .wpstg-dropdown-toggler {\n text-decoration: none;\n background: #25a1f0;\n padding: 6px 10px;\n border-radius: 2px;\n font-size: 14px;\n box-shadow: 0 0 1px rgba(0, 0, 0, .125), 0 1px 3px rgba(0, 0, 0, .2);\n color: #ffffff;\n}\n\n.wpstg-clone-actions .wpstg-dropdown-toggler:hover {\n background: #002648;\n color: white;\n}\n\n.wpstg-dropdown {\n position: relative;\n}\n\n.wpstg-dropdown > .wpstg-dropdown-menu {\n background: #fff;\n display: none;\n flex-direction: column;\n position: absolute;\n right: 0;\n top: calc(100% + 4px);\n padding: 8px;\n border-radius: 2px;\n width: 100px;\n box-shadow: 0 0 1px rgba(0, 0, 0, .125), 0 1px 3px rgba(0, 0, 0, .2);\n z-index: 1000;\n}\n\n.wpstg-dropdown > .wpstg-dropdown-menu.wpstg-menu-dropup {\n top: auto;\n bottom: 100%;\n transform: translate3d(0px, -3px, 0px);\n}\n\n.wpstg-dropdown > .wpstg-dropdown-menu.shown {\n display: flex;\n}\n\n.wpstg-clone-action,\n.wpstg-dropdown-action {\n color: #3e3e3e;\n padding: 6px 8px;\n border-radius: 3px;\n text-decoration: none;\n position: relative;\n transition: color .2s ease-in-out;\n border-bottom: 1px solid #f3f3f3;\n}\n\n.wpstg-clone-action:hover,\n.wpstg-dropdown-action:hover {\n background: rgba(0, 0, 0, 0.05);\n}\n\n.wpstg-dropdown-action {\n color: #3e3e3e;\n background: transparent;\n border: 0 solid black;\n outline: none;\n box-shadow: none;\n}\n\n.wpstg-remove-clone:hover {\n color: #E01E5A;\n}\n\n.wpstg-clone-action:last-child {\n border: none;\n}\n\n.wpstg-clone:hover .wpstg-clone-action {\n display: inline-block;\n}\n\n#wpstg-show-error-details:focus,\n#wpstg-workflow .wpstg-clone-action {\n outline: none;\n box-shadow: none;\n}\n\n.wpstg-link-btn {\n background: #45a1c9;\n color: #fff;\n display: inline-block;\n padding: 5px 10px;\n text-decoration: none;\n vertical-align: baseline;\n transition: all .2s ease-in-out;\n}\n\n.wpstg-link-btn:hover,\n.wpstg-link-btn:focus {\n color: #fff;\n outline: none;\n box-shadow: none;\n}\n\n#wpstg-workflow .wpstg-link-btn:active {\n vertical-align: baseline;\n}\n\n.wpstg-link-btn[disabled] {\n background: #777 !important;\n border-color: #555 !important;\n pointer-events: none;\n}\n\n#wpstg-cancel-cloning,\n#wpstg-cancel-cloning-update {\n margin-top: 5px;\n}\n\n#wpstg-cancel-cloning.success,\n#wpstg-cancel-cloning.success {\n background: #64dd58;\n border-color: #54bd4a;\n}\n\n#wpstg-error-wrapper,\n#wpstg-error-details {\n display: none;\n padding-top: 10px;\n font-size: 13px;\n clear: both;\n}\n\n#wpstg-show-error-details {\n display: inline-block;\n margin-left: 5px;\n color: #555;\n text-decoration: none;\n transition: color .2s ease-in-out;\n}\n\n#wpstg-show-error-details:hover {\n color: #1d94cf;\n}\n\n#wpstg-error-details {\n border-left: 5px solid #E01E5A;\n padding: 10px;\n width: 500px;\n}\n\n#wpstg-try-again {\n display: none;\n}\n\n#wpstg-home-link {\n float: right;\n}\n\n.wpstg-loader {\n content: url('../../img/loading.gif');\n margin-top: 10px;\n display: none;\n}\n\n.wpstg-loader.wpstg-finished {\n display: block;\n content: \"Finished\";\n background-color: #00c89a;\n color: white;\n padding: 2px 10px;\n margin-top: 0;\n border-radius: 3px;\n}\n\n#wpstg-workflow {\n max-width: 800px;\n position: relative;\n clear: both;\n padding-top: 20px;\n float: left;\n min-width: 500px;\n min-height: 380px;\n padding-right: 20px;\n padding-bottom: 20px;\n}\n\n#wpstg-sidebar {\n float: left;\n max-width: 400px;\n display: block;\n margin-left: 10px;\n}\n\n#wpstg-workflow.loading::after,\n#wpstg-removing-clone.loading::after {\n background: rgba(255, 255, 255, .7);\n content: 'Loading... may take a while for huge websites';\n display: block;\n width: 100%;\n height: 100%;\n font-size: 20px;\n padding-top: 100px;\n text-align: center;\n position: absolute;\n top: 0;\n left: 0;\n z-index: 99;\n}\n\n#wpstg-removing-clone.loading::after {\n content: 'REMOVING' !important;\n}\n\n#wpstg-existing-clones,\n#wpstg-removing-clone {\n position: relative;\n}\n\n#wpstg-existing-clones h3 {\n color: #3e3e3e;\n}\n\n#wpstg-removing-clone .wpstg-tab-section {\n display: block;\n}\n\n.wpstg-progress-bar {\n max-width: 900px;\n height: 27px;\n padding: 0;\n background-color: #d6d8d7;\n}\n\n.wpstg-progress {\n float: left;\n background: #3fa5ee;\n width: 0;\n height: 100%;\n transition: width .6s ease;\n color: white;\n line-height: 25px;\n text-align: center;\n overflow: hidden;\n}\n\n.wpstg-progress-files {\n background: #16b4f0;\n width: 0;\n height: 100%;\n transition: width .6s ease;\n color: white;\n line-height: 25px;\n text-align: center;\n}\n\n#wpstg-new-clone-id.wpstg-error-input,\n#wpstg-clone-path.wpstg-error-input {\n border: 1px solid #E01E5A;\n box-shadow: 0 0 2px rgba(255, 66, 53, .8);\n}\n\n#wpstg-new-clone-id {\n width: 450px;\n max-width: 100%;\n margin-left: 15px;\n}\n\n#wpstg-new-clone {\n background: #25a1f0;\n border-color: #2188c9;\n}\n\n#wpstg-new-clone:hover {\n background: #259be6;\n border-color: #2188c9;\n}\n\n#wpstg-clone-path {\n margin-left: 10px;\n width: 350px;\n}\n\n.wpstg-error-msg {\n color: #E01E5A;\n}\n\n#wpstg-clone-id-error {\n display: block;\n background-color: #f0f8ff;\n padding: 10px;\n margin: 20px;\n}\n\n#wpstg-start-cloning + .wpstg-error-msg {\n display: block;\n margin-top: 5px;\n}\n\n.wpstg-size-info {\n color: #999;\n font-weight: normal;\n position: relative;\n left: 2px;\n}\n\n.wpstg-db-table .wpstg-size-info {\n top: 2px;\n}\n\n.wpstg-db-table:hover {\n background-color: #f0f8ff;\n}\n\n#wpstg-workflow #wpstg-start-cloning {\n margin-left: 5px;\n vertical-align: baseline;\n}\n\n\n/* Tabs */\n\n.wpstg-tabs-wrapper {\n max-width: 640px;\n margin: 10px 0;\n}\n\n#wpstg-path-wrapper {\n border-bottom: 2px dashed #ccc;\n padding-bottom: 10px;\n margin-bottom: 10px;\n}\n\n.wpstg-tab-section {\n border-bottom: 1px solid #ddd;\n border-right: none;\n border-left: none;\n display: none;\n width: calc(100% - 72px);\n padding: 0px 36px;\n}\n\n.wpstg-tab-section::after {\n display: block;\n content: '';\n clear: both;\n}\n\n.wpstg-tab-header {\n border-bottom: 1px solid #ddd;\n border-right: none;\n border-left: none;\n color: #444;\n font-size: 16px;\n font-weight: bold;\n display: block;\n padding: 10px;;\n text-decoration: none;\n}\n\n.wpstg-tab-triangle {\n display: inline-block;\n margin-right: 12px;\n animation: transform 0.5s;\n width: 0;\n height: 0;\n margin-top: -3px;\n vertical-align: middle;\n border-top: 5px solid transparent;\n border-bottom: 5px solid transparent;\n border-left: 10px solid;\n transition: transform 0.2s;\n cursor: pointer;\n}\n\n.wpstg-tab-triangle.wpstg-no-icon {\n margin-right: 2px;\n width: auto;\n height: auto;\n vertical-align: auto;\n border-top: 0px solid;\n border-bottom: 0px solid;\n border-left: 0px solid;\n}\n\n.wpstg-tab-triangle.wpstg-rotate-90 {\n transform: rotate(90deg);\n}\n\n.wpstg-tab-header:focus {\n color: #444;\n outline: none;\n box-shadow: none;\n}\n\n#wpstg-large-files {\n display: none;\n border: 1px dashed #ccc;\n padding: 10px 10px 10px;\n margin-top: 20px;\n position: relative;\n font-size: 12px;\n}\n\n#wpstg-large-files h3 {\n background: #fff;\n margin: 0;\n padding: 0 5px;\n position: absolute;\n top: -10px;\n left: 5px;\n}\n\n.wpstg-subdir {\n display: none;\n margin-left: 20px;\n}\n\n.wpstg-subdir.wpstg-push {\n display: block;\n margin-left: 20px;\n}\n\n.wpstg-dir a.disabled {\n color: #888;\n cursor: default;\n text-decoration: none;\n}\n\n.wpstg-check-subdirs {\n display: inline-block;\n margin-left: 10px;\n}\n\n.wpstg-notice-alert {\n display: block;\n background-color: #E01E5A;\n padding: 20px;\n max-width: 600px;\n margin-top: 10px;\n color: white;\n}\n\n.wpstg-notice--white {\n display: block;\n background-color: #ffffff;\n padding: 20px;\n max-width: 600px;\n margin-top: 10px;\n}\n\n.wpstg-notice-alert a {\n color: white;\n}\n\n.wpstg-notice-alert h3 {\n color: white;\n}\n\n.wpstg-header {\n font-weight: 400;\n line-height: 1.6em;\n font-size: 19px;\n border-bottom: 1px solid #DFDFDF;\n clear: both;\n padding-top: 10px;\n}\n\n#wpstg-clone-label {\n font-size: 14px;\n font-weight: bold;\n}\n\n.wpstg-log-details {\n height: 300px;\n overflow: scroll;\n max-width: 650px;\n font-family: monospace;\n font-size: 12px;\n line-height: 15px;\n border: 1px solid #FFF;\n background-color: black;\n color: #c0c0c0;\n padding: 3px;\n white-space: nowrap;\n margin-top: 15px;\n}\n\n#wpstg-finished-result {\n display: none;\n}\n\n#wpstg-remove-cloning {\n background: #ff3428;\n border-color: #e72f24;\n margin-top: 5px;\n}\n\n#wpstg-success-notice {\n padding: 10px;\n background-color: white;\n max-width: 900px;\n border: 1px solid #ccc;\n margin-top: 20px;\n}\n\n.wpstg_beta_notice {\n margin-bottom: 20px;\n}\n\n.wpstg-sysinfo {\n width: 700px;\n height: 700px;\n}\n\n.wpstg-form-table .col-title label {\n font-weight: 600;\n}\n\n.wpstg-form-table td:first-child {\n width: 30%;\n}\n\n.wpstg-share-button-container {\n margin: 5px 0;\n}\n\n.wpstg-share-button-container p {\n margin: 0 0 10px 0;\n}\n\n.wpstg-share-button {\n display: inline-block;\n}\n\n.wpstg-share-button a {\n text-decoration: none;\n}\n\n.wpstg-share-button .wpstg-share {\n font-family: sans-serif;\n font-weight: bold;\n text-decoration: none;\n text-align: center;\n}\n\n.wpstg-share-button .wpstg-share {\n -webkit-border-radius: 2px;\n -moz-border-radius: 2px;\n border-radius: 2px;\n color: #FFF;\n display: inline;\n font-size: 12px;\n padding: 4px 8px;\n}\n\n.wpstg-share-button-twitter .wpstg-share {\n background-color: #00ABF0;\n}\n\n.wpstg-share-button-facebook .wpstg-share {\n background-color: #3b5998;\n}\n\n.wpstg-share-button-googleplus .wpstg-share {\n background-color: #F53424;\n}\n\n.wpstg-share-button-twitter .share:active,\n.wpstg-share-button-facebook .share:active,\n.wpstg-share-button-googleplus .share:active {\n background-color: #353535;\n}\n\n#wpstg-check-space {\n margin-left: 8px;\n}\n\n#wpstg-welcome li {\n font-size: 18px;\n line-height: 29px;\n position: relative;\n padding-left: 23px;\n list-style: none !important;\n}\n\n#wpstg-welcome {\n margin-top: 20px;\n margin-right: 20px;\n background-color: white;\n}\n\n.wpstg-heading-pro {\n font-weight: bold;\n}\n\n.wpstg-h2 {\n margin-top: 0;\n margin-bottom: 1.2rem;\n font-size: 30px;\n line-height: 2.5rem;\n}\n\n#wpstg-welcome li:before {\n width: 1em;\n height: 100%;\n background: url(data:image/svg+xml;charset=utf8,%3Csvg%20width%3D%221792%22%20height%3D%221792%22%20viewBox%3D%220%200%201792%201792%22%20xmlns%3D%22http%3A%2F%2Fwww%2Ew3%2Eorg%2F2000%2Fsvg%22%3E%3Cpath%20fill%3D%22%2377B227%22%20d%3D%22M1671%20566q0%2040%2D28%2068l%2D724%20724%2D136%20136q%2D28%2028%2D68%2028t%2D68%2D28l%2D136%2D136%2D362%2D362q%2D28%2D28%2D28%2D68t28%2D68l136%2D136q28%2D28%2068%2D28t68%2028l294%20295%20656%2D657q28%2D28%2068%2D28t68%2028l136%20136q28%2028%2028%2068z%22%2F%3E%3C%2Fsvg%3E) left .4em no-repeat;\n background-size: contain;\n content: \"\";\n position: absolute;\n top: -2px;\n left: 0;\n color: #77b227;\n}\n\n.wpstg-h1 {\n margin-bottom: 1.35rem;\n font-size: 2.5em;\n line-height: 3.68rem;\n letter-spacing: normal;\n}\n\n.wpstg--swal2-content h1 {\n color: #444;\n}\n\n#wpstg-welcome h2 {\n margin: 0 0 15px;\n}\n\n#wpstg-welcome .wpstg-footer {\n clear: both;\n margin-top: 20px;\n font-style: italic;\n}\n\n#wpstg-footer {\n clear: both;\n margin-top: 20px;\n margin-right: 10px;\n padding-top: 50px;\n}\n\n#wpstg-footer a {\n text-decoration: none;\n}\n\n#wpstg-footer li {\n margin-bottom: 2px;\n list-style: circle;\n}\n\n#wpstg-footer ul {\n margin-left: 15px;\n margin-top: 0px;\n}\n\n.wpstg-footer--title {\n margin-left: 15px;\n}\n\n.wpstg-staging-info {\n margin-top: 8px;\n color: #3e3e3e;\n font-size: 12px;\n}\n\n.wpstg-staging-info a {\n color: #3e3e3e;\n}\n\n.wpstg-staging-info li {\n margin-bottom: 2px;\n}\n\n.wpstg-bold {\n font-weight: 600;\n}\n\n#wpstg-processing-status {\n margin-top: 5px;\n font-size: 13px;\n font-weight: 400;\n float: left;\n}\n\n#wpstg-processing-timer {\n margin-top: 5px;\n font-size: 13px;\n font-weight: 400;\n float: right;\n}\n\n#wpstg-report-issue-button {\n margin-left: 50px;\n border: 1px solid #E01E5A;\n color: #E01E5A;\n background-color: white;\n}\n\n#wpstg-report-issue-button:hover {\n background-color: #dc2b62;\n color: #fff;\n}\n\n.wpstg-blue-primary {\n display: inline-block;\n text-decoration: none;\n font-size: 13px;\n /*line-height: 26px;*/\n height: 28px;\n margin: 0;\n padding: 0 10px 1px;\n cursor: pointer;\n border-width: 1px;\n border-style: solid;\n -webkit-appearance: none;\n border-radius: 3px;\n white-space: nowrap;\n box-sizing: border-box;\n background: #25a1f0;\n border-color: #2188c9;\n color: #fff;\n text-shadow: 0 -1px 1px #006799, 1px 0 1px #006799, 0 1px 1px #006799, -1px 0 1px #006799;\n}\n\n.wpstg-blue-primary:hover {\n background-color: #259be6;\n}\n\n.wpstg-report-issue-form {\n position: absolute;\n z-index: 999;\n width: 300px;\n background-color: #fff;\n padding: 15px 15px 10px;\n border: 1px solid #e8e8e8;\n border-radius: 3px;\n box-shadow: 0 1px 0 0 #fff inset;\n display: none;\n right: 0;\n top: 35px;\n}\n\n@media (max-width: 600px) {\n .wpstg-report-issue-form {\n position: relative;\n }\n}\n\n.wpstg-report-show {\n display: block;\n}\n\n.wpstg-field input[type=text],\n.wpstg-field textarea {\n width: 100%;\n font-weight: 400;\n line-height: 1.4;\n margin-bottom: 4px;\n}\n\n.wpstg-report-email,\n.wpstg-report-hosting-provider {\n width: 100%;\n font-weight: 400;\n font-size: .8rem;\n height: 2.3rem;\n line-height: 2.3rem;\n border-radius: 3px;\n margin-bottom: 4px;\n padding: 0 10px;\n}\n\n.wpstg-report-description {\n border-radius: 3px;\n font-size: .8rem;\n padding: 6px 10px;\n resize: none;\n}\n\n.wpstg-report-privacy-policy {\n font-size: 12px;\n margin-bottom: 15px;\n}\n\n#wpstg-report-cancel {\n float: right;\n margin-right: 5px;\n font-weight: bold;\n}\n\n#wpstg-success-button {\n font-weight: bold;\n}\n\n.wpstg-message {\n box-sizing: border-box;\n -moz-box-sizing: border-box;\n background-color: #f5e0de;\n border-radius: 3px;\n color: rgba(0, 0, 0, .6);\n height: auto;\n margin: 10px 0;\n min-height: 18px;\n padding: 6px 10px;\n position: relative;\n}\n\n.wpstg-message.wpstg-error-message {\n background-color: #f5e0de;\n color: #b65147;\n font-size: 12px;\n}\n\n.wpstg-message.wpstg-success-message {\n background-color: #d7f8e0;\n color: #515151;\n}\n\n.wpstg-message p {\n margin: 3px 0;\n font-size: 13px;\n}\n\n.wpstg-warning {\n display: block;\n padding: 10px;\n background-color: #ffb804;\n color: #ffffff;\n margin: 10px 10px 10px 0;\n}\n\n.wpstg-warning a {\n color: #ffffff;\n font-weight: bold;\n text-decoration: underline;\n}\n\n.wpstg-error {\n display: block;\n padding: 10px !important;\n background-color: #E01E5A !important;\n color: #ffffff;\n margin: 10px 10px 10px 0 !important;\n border-color: transparent !important;\n border-left-color: transparent !important;\n box-shadow: none !important;\n}\n\n.wpstg-error a {\n color: #ffffff;\n font-weight: bold;\n text-decoration: underline;\n}\n\n#wpstg-resume-cloning {\n display: none;\n}\n\n#wpstg-external-db th {\n text-align: left;\n width: 120px;\n}\n\n#wpstg-db-connect {\n font-weight: normal;\n}\n\n#wpstg-db-status {\n display: block;\n margin-top: 5px;\n padding: 5px;\n margin-bottom: 20px;\n border: 1px solid transparent;\n border-radius: 4px;\n text-decoration: none;\n text-align: center;\n}\n\n.wpstg-text-field > #wpstg-db-status {\n margin-top: 8px;\n margin-left: 150px;\n min-width: 300px;\n}\n\n.wpstg-success {\n color: #3c763d;\n background-color: #dff0d8;\n border-color: #d6e9c6;\n}\n\n.wpstg-failed {\n color: #a94442;\n background-color: #f2dede;\n border-color: #ebccd1;\n}\n\n#wpstg_select_tables_cloning {\n height: 600px;\n font-size: 13px;\n}\n\n#wpstg-update-notify {\n background-color: #E01E5A;\n font-size: 14px;\n color: #ffffff;\n line-height: normal;\n padding: 10px;\n}\n\n#wpstg-update-notify a {\n color: #ffffff;\n font-weight: bold;\n}\n\n.wpstg-pointer {\n cursor: pointer;\n}\n\n.wpstg--tab--header {\n background-color: white;\n /* margin-bottom: 10px; */\n /* padding: 16px; */\n position: relative;\n transition: border-color .2s ease-in-out;\n background-color: #ffffff;\n color: #3e3e3e;\n border-radius: 2px;\n box-shadow: 0 0 1px rgba(0, 0, 0, .125), 0 1px 3px rgba(0, 0, 0, .02);\n}\n\n.wpstg--tab--header ul {\n display: flex;\n}\n\n.wpstg--tab--header ul li {\n margin-right: 1em;\n margin-bottom: 0px;\n}\n\n.wpstg--tab--header ul li:last-child {\n margin-right: 0;\n}\n\n.wpstg--tab--header a {\n min-width: 150px;\n text-align: center;\n cursor: pointer;\n display: inline-block;\n padding: 1em 1.25em;\n padding-bottom: 9px;\n color: #c4c4c4;\n font-size: 18px;\n /*\n border: solid 1px;\n */\n}\n\n.wpstg--tab--header a.wpstg--tab--active {\n border-bottom: .4em solid #25A1F0;\n color: #25A1F0;\n}\n\n.wpstg--tab--header a:hover {\n background-color: #fefefe;\n border-bottom: 0.4em solid #25A1F0;\n color: #25A1F0;\n}\n\n.wpstg--tab--content {\n display: none;\n}\n\n.wpstg--tab--active {\n display: block;\n}\n\n.wpstg--text--strong,\n.wpstg--text--strong * {\n font-weight: bold !important;\n}\n\n.wpstg--text--danger {\n color: #a94442;\n}\n\n.wpstg--tooltip {\n position: relative;\n display: inline-block;\n border-bottom: 1px dotted black;\n margin-left: 10px;\n}\n\n.wpstg--tooltip .wpstg--tooltiptext {\n visibility: hidden;\n width: 300px;\n background-color: #ffffff;\n color: #505050;\n text-align: left;\n padding: 12px;\n border-radius: 3px;\n position: absolute;\n z-index: 1;\n -webkit-box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 6px rgba(0, 0, 0, 0.23);\n -moz-box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 6px rgba(0, 0, 0, 0.23);\n box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 6px rgba(0, 0, 0, 0.23);\n}\n\n.wpstg--tooltiptext-backups {\n width: 120px;\n top: 100%;\n left: -150%;\n margin-left: -56px;\n margin-top: 4px;\n}\n\n.wpstg--tooltip.wpstg--exclude-rules--tooltip {\n border-bottom: 0px solid transparent;\n}\n\n.wpstg--tooltip.wpstg--exclude-rules--tooltip > .wpstg--tooltiptext {\n margin-top: 0px;\n margin-left: -150px;\n}\n\n/**\nTooltip top arrow\n */\n\n.wpstg--tooltip .wpstg--tooltiptext-backups::after {\n content: \" \";\n position: absolute;\n bottom: 100%;\n /* At the top of the tooltip */\n left: 50%;\n margin-left: 25px;\n border-width: 5px;\n border-style: solid;\n border-color: transparent transparent white transparent;\n}\n\n.wpstg--tooltip .wpstg--tooltiptext.has-top-arrow {\n margin-top: 6px;\n}\n\n.wpstg--tooltip .wpstg--tooltiptext.has-top-arrow::after {\n content: \" \";\n position: absolute;\n bottom: 100%;\n left: 50%;\n margin-left: -18px;\n border-width: 5px;\n border-style: solid;\n border-color: transparent transparent white transparent;\n}\n\n.wpstg--snaphot-restore-table tr {\n line-height: 12px;\n}\n\n.wpstg-float-left {\n float: left;\n}\n\n.wpstg-beta-notice {\n background-color: #b0e8b0;\n border-radius: 3px;\n padding: 7px;\n margin-bottom: 20px;\n}\n\n#wpstg-backup-name {\n font-size: 1.875em;\n font-weight: 600;\n}\n\n#wpstg_select_tables_cloning option:checked {\n /* Cannot use background color here because Chrome and Firefox ignore it even if set to !important */\n -webkit-appearance: menulist-button;\n background-image: linear-gradient(0deg, #1e90ff 0%, #1e90ff 100%);\n}\n\n.wpstg--btn--cancel {\n background: #ff3428;\n border-color: #e72f24;\n color: #fff;\n height: auto;\n line-height: normal;\n font-size: 16px;\n padding: .5em;\n margin-bottom: 1.5em;\n}\n\n.wpstg--btn--cancel:hover {\n background: #ff3428;\n border-color: #e72f24;\n}\n\n.wpstg--process--content > .wpstg--swal2-html-container {\n padding: 4em 2em !important;\n}\n\n.wpstg--modal--process--logs,\n.wpstg--modal--error--logs {\n background: #ffffff;\n border: 1px solid #a8a8a8;\n border-radius: 3px;\n height: 300px;\n margin-top: 1em;\n display: none;\n padding-top: 10px;\n padding-left: 10px;\n overflow: auto;\n text-align: justify;\n}\n\n.wpstg--modal--error--logs {\n height: auto;\n max-height: 300px;\n}\n\n.wpstg--modal--process--logs p {\n font-size: 12px;\n white-space: nowrap;\n}\n\n.wpstg--modal--process--logs p.wpstg--modal--process--msg--info {\n color: #222222;\n}\n\n.wpstg--modal--process--logs p.wpstg--modal--process--msg--debug {\n color: #757575;\n}\n\n.wpstg--modal--process--title {\n color: #565656;\n margin: .25em 0;\n}\n\n.wpstg--modal--process--subtitle {\n margin: .5em 0;\n color: #565656;\n}\n\n.wpstg--modal--error--logs > p {\n text-align: left;\n font-size: 14px;\n color: #222222;\n}\n\n.wpstg--modal--process--logs p,\n.wpstg--modal--error--logs p {\n margin: 0px;\n margin-bottom: 2px;\n}\n\n.wpstg--modal--process--msg--error {\n color: #E01E5A;\n}\n\n.wpstg--modal--process--msg--critical {\n color: #E01E5A;\n}\n\n.wpstg--modal--process--msg--warning {\n color: darkorange;\n}\n\n.wpstg--modal--process--msg-found {\n font-size: 16px;\n color: #E01E5A;\n font-weight: bold;\n}\n\n.wpstg--modal--delete {\n text-align: left;\n margin-top: 8px;\n color: #565656;\n}\n\n.wpstg-swal-popup .wpstg--swal2-cancel.wpstg--btn--cancel {\n margin-bottom: 0;\n text-shadow: none !important;\n}\n\n.wpstg-swal-popup .wpstg-loader {\n display: inline-block !important;\n}\n\n.wpstg--modal--process--generic-problem {\n display: none;\n border-left: 5px solid #E01E5A;\n margin: .5em 0;\n}\n\n.wpstg--modal--process--logs--tail {\n font-size: 16px;\n color: #565656;\n background: none;\n border: none;\n cursor: pointer;\n}\n\n.wpstg--modal--backup--import--upload--title {\n color: #565656;\n}\n\n.wpstg--modal--backup--import--configure,\n.wpstg--modal--backup--import--upload--status,\n.wpstg--modal--backup--import--upload--container input[type=\"file\"] {\n display: none;\n}\n\n#wpstg--backups--import--file-list {\n font-size: 14px;\n font-weight: bold;\n}\n\n#wpstg--backups--import--file-list-empty {\n color: #E01E5A;\n}\n\n.wpstg--modal--backup--import--filesystem label {\n font-size: 14px;\n}\n\n.wpstg--modal--backup--import--filesystem button {\n margin-bottom: 20px;\n}\n\n.wpstg--modal--backup--import--upload {\n position: relative;\n min-height: 30px;\n}\n\n.wpstg--modal--backup--import--upload {\n color: #505050;\n}\n\n.wpstg--modal--backup--import--upload--container {\n position: relative;\n border-radius: 10px;\n margin: .5em;\n padding: 1em .5em;\n border: 3.5px dashed #dedede;\n transition: background-color 0.3s ease, color 0.3s ease;\n background-color: #f4fbff;\n min-height: 130px;\n}\n\n.wpstg--modal--backup--import--upload--container.wpstg--has-dragover span.wpstg--drop {\n display: inline-flex;\n}\n\n.wpstg--modal--backup--import--upload--container input[type='file'] {\n display: none;\n}\n\n.wpstg--modal--backup--import--upload--container img {\n margin-top: 10px;\n width: 4em;\n align-self: center;\n border: none;\n}\n\n.wpstg--modal--backup--import--upload--container span {\n margin-top: 1em;\n}\n\n.wpstg--backup--import--options > button {\n margin-top: 1em;\n padding: 1em;\n align-self: center;\n width: 185px;\n height: auto;\n line-height: normal;\n}\n\n.wpstg--backup--import--options {\n position: relative;\n display: flex;\n justify-content: center;\n}\n\n.wpstg--backup--import--options ul {\n display: none;\n}\n\n.wpstg--backup--import--options.wpstg--show-options ul {\n padding: 0;\n margin: 54px 0 0 0;\n display: block;\n position: absolute;\n width: 185px;\n background: #25a1f0;\n box-sizing: border-box;\n border-radius: 0 0 3px 3px;\n border-width: 1px;\n border-color: #2188c9;\n text-shadow: 0 -1px 1px #006799, 1px 0 1px #006799, 0 1px 1px #006799, -1px 0 1px #006799;\n}\n\n.wpstg--backup--import--options.wpstg--show-options ul li {\n border-bottom: .1em solid #25a1f0;\n margin: 0;\n}\n\n.wpstg--backup--import--options.wpstg--show-options ul li:hover {\n background-color: #25a1f0;\n}\n\n.wpstg--backup--import--options.wpstg--show-options ul li:last-child {\n border-bottom: none;\n}\n\n.wpstg--backup--import--options ul li button {\n cursor: pointer;\n background: none;\n border: none;\n margin: 0;\n width: 100%;\n color: white;\n height: 40px;\n line-height: 40px;\n}\n\n.wpstg--backup--import--options ul li button:hover {\n background-color: #259be6;\n}\n\n.wpstg--modal--backup--import--search-replace--info {\n margin: 1em 0;\n display: flex;\n flex-direction: row;\n}\n\n.wpstg--modal--backup--import--info p {\n text-align: left;\n margin: 0;\n}\n\n.wpstg--modal--backup--import--search-replace--wrapper button {\n align-self: center;\n}\n\n.wpstg--import--advanced-options--button {\n border: 0;\n border-radius: 3px;\n font-size: 18px;\n text-shadow: 0 -1px 1px #006799, 1px 0 1px #006799, 0 1px 1px #006799, -1px 0 1px #006799;\n cursor: pointer;\n}\n\n.wpstg--modal--backup--import--search-replace--new {\n color: white;\n background-color: #25a1f0;\n}\n\n.wpstg--modal--backup--import--search-replace--remove {\n color: white;\n background-color: #25a1f0;\n width: 22px;\n height: 22px;\n margin-left: 5px;\n}\n\n.wpstg--modal--backup--import--search-replace--input-group:first-child button {\n display: none;\n}\n\n.wpstg--modal--backup--import--search-replace--input--container {\n flex: 1;\n display: flex;\n flex-direction: column;\n}\n\n.wpstg--modal--backup--import--search-replace--input-group {\n width: 100%;\n border-bottom: 6px solid #f1f1f1;\n margin-bottom: 10px;\n}\n\n.wpstg--modal--backup--import--search-replace--input-group input {\n min-width: 250px;\n width: calc(50% - 4px - 11px - 5px); /* -4px is half of the padding; -11px is half of the button; -5 is the margin left of the button */\n display: inline-block;\n line-height: 10px;\n border: 1px solid #dedede;\n border-radius: 3px;\n color: #666;\n padding: 8px;\n margin-bottom: 12px;\n}\n\n.wpstg--modal--import--upload--process {\n display: none;\n position: relative;\n height: 30px;\n margin-top: 20px;\n margin-bottom: 20px;\n width: 100%;\n top: 0;\n left: 0;\n text-indent: 1em;\n white-space: nowrap;\n overflow: hidden;\n color: #333333;\n justify-content: center;\n align-items: center;\n}\n\n.wpstg--modal--import--upload--progress {\n position: absolute;\n background: #98d452;\n color: white;\n height: 100%;\n border-radius: 4px;\n left: 0;\n top: 0;\n}\n\n.wpstg--modal--import--upload--progress--title {\n z-index: 9;\n}\n\n.wpstg-fieldset:disabled {\n opacity: 0.8;\n border-top: 1px solid white;\n margin-top: 20px;\n}\n\n.wpstg-fieldset {\n padding-left: 20px;\n}\n\n.wpstg-fs-14 {\n font-size: 14px;\n}\n\n.wpstg-dark-alert {\n font-weight: bold;\n background-color: #0e86d9;\n padding: 15px;\n margin-top: 0px;\n color: white;\n}\n\n.wpstg-dark-alert .wpstg-button--cta-red {\n margin-left:10px;\n}\n\n.wpstg-form-group {\n display: block;\n width: 100%;\n margin-bottom: 8px;\n align-items: center;\n}\n\n.wpstg-form-group > label {\n display: block;\n font-weight: 700;\n}\n\n.wpstg-text-field > input {\n width: 300px;\n display: block;\n line-height: 1.5;\n}\n\n.wpstg-code-segment {\n display: block;\n}\n\n.wpstg-text-field > .wpstg-code-segment {\n margin-top: 4px;\n min-width: 300px;\n}\n\n.wpstg-form-group > .wpstg-checkbox {\n min-width: 100%;\n width: 100%;\n position: relative;\n}\n\n.wpstg-form-group > .wpstg-checkbox > input[type='checkbox'] {\n left: 150px;\n}\n\n.wpstg-rounded {\n border-radius: 3px;\n}\n\n.wpstg-white-border {\n border: 1px solid white !important;\n}\n\n.wpstg-ml-4 {\n margin-left: 4px;\n}\n\n#wpstg-confirm-backup-restore-data {\n margin: 40px;\n text-align: left;\n}\n\n#wpstg-advanced-settings hr {\n margin: 20px 0;\n}\n\n.wpstg-form-row {\n display: block;\n}\n\n.wpstg-form-row label,\n.wpstg-form-row input {\n display: table-cell;\n padding-left: 5px;\n padding-right: 5px;\n margin-top: 3px;\n margin-bottom: 3px;\n}\n\n.wpstg-form-row input {\n width: 400px;\n}\n\n.wpstg-form-row label {\n font-weight: bold;\n width: 1px;\n white-space: nowrap;\n}\n\n#wpstg-db-connect-output #wpstg-db-status {\n width: 390px;\n}\n\n.wpstg-fs-14 {\n font-size: 14px;\n}\n\n.wpstg-code-segment {\n display: block;\n}\n\n.wpstg-form-group > .wpstg-checkbox {\n min-width: 100%;\n width: 100%;\n}\n\n.wpstg-form-group > .wpstg-checkbox > input[type='checkbox'] {\n margin-left: 10px;\n}\n\n@media only screen and (max-width: 768px) {\n .wpstg-form-group > label {\n min-width: auto;\n width: auto;\n }\n\n .wpstg-text-field > input {\n width: 100%;\n }\n\n .wpstg-text-field > .wpstg-code-segment {\n margin-left: 0;\n min-width: 100%;\n }\n\n .wpstg-tab-section {\n width: calc(100vw - 60px);\n max-width: 450px;\n }\n}\n\n.wpstg-rounded {\n border-radius: 3px;\n}\n\n.wpstg-white-border {\n border: 1px solid white !important;\n}\n\n.wpstg-m-0 {\n margin: 0;\n}\n\n.wpstg-mt-10px {\n margin-top: 10px !important;\n}\n\n.wpstg-my-10px {\n margin-top: 10px !important;\n margin-bottom: 10px !important;\n}\n\n.wpstg-w-100 {\n width: 100%;\n}\n\n.wpstg-box-shadow {\n box-shadow: 0 1px 1px 0 rgba(0, 0, 0, .1);\n}\n\n.wpstg-float-left {\n float: left;\n}\n\n.wpstg-bold-text {\n font-weight: bold;\n}\n\n.wpstg-warning.notice {\n border-left: 4px solid #ffba00;\n}\n\n.wpstg-confirmation-label {\n background-color: #5b9dd9;\n color: #fff;\n padding: 2px;\n border-radius: 3px;\n}\n\n.wpstg-my-6px {\n margin-bottom: 6px;\n margin-top: 6px;\n}\n\n.wpstg-mb-10px {\n margin-bottom: 10px;\n}\n\n.wpstg-clear-both {\n clear: both;\n}\n\n.wpstg-font-italic {\n font-style: italic;\n}\n\n.wpstg-mt-20px {\n margin-top: 20px;\n}\n\n.wpstg-welcome-container {\n border: 2px solid white;\n padding: 20px;\n margin-bottom: 20px;\n}\n\n.wpstg-ml-30px {\n margin-left: 30px;\n}\n\n.wpstg-text-center {\n text-align: center;\n}\n\n.wpstg-feedback-link {\n text-decoration: none;\n}\n\n.wpstg-feedback-span {\n display: block;\n margin-bottom: 3px;\n}\n\n#wpstg-confirm-backup-restore-data {\n margin: 40px;\n text-align: left;\n}\n\n#wpstg-confirm-backup-restore-wrapper {\n margin: 30px;\n margin-top: 0;\n}\n\n#wpstg-confirm-backup-restore-wrapper h3 {\n color: #E01E5A;\n}\n\n#wpstg-progress-db,\n#wpstg-progress-backup {\n background-color: #3fa5ee;\n}\n\n#wpstg-progress-sr,\n#wpstg-progress-files.wpstg-pro {\n background-color: #3c9ee4;\n}\n\n#wpstg-progress-dirs,\n#wpstg-progress-data {\n background-color: #3a96d7;\n}\n\n#wpstg-progress-files:not(.wpstg-pro),\n#wpstg-progress-finishing {\n background-color: #378cc9;\n}\n\n.wpstg-issue-resubmit-confirmation.wpstg--swal2-container,\n.wpstg-swal2-container.wpstg--swal2-container {\n z-index: 10500;\n}\n\n.wpstg-swal2-container.wpstg-swal2-loading .wpstg--swal2-actions,\n.wpstg-swal2-container.wpstg-swal2-loading .wpstg--swal2-header {\n display: none;\n}\n\nbody.toplevel_page_wpstg_backup .wpstg--swal2-container .wpstg--swal2-content,\nbody.toplevel_page_wpstg_clone .wpstg--swal2-container .wpstg--swal2-content {\n z-index: 2;\n}\n\n.toplevel_page_wpstg_clone #swal2-content h2 {\n color: #565656;\n}\n\n.toplevel_page_wpstg_clone #swal2-content {\n line-height: 1.5em;\n}\n\ndiv#exportUploadsWithoutDatabaseWarning {\n font-style: italic;\n font-size: 0.9rem;\n margin: 10px;\n padding: 10px;\n border: 1px solid #e3e3e3;\n border-radius: 5px;\n text-align: center;\n background-color: #fafafa;\n}\n\n.wpstg-advanced-options-dropdown-wrapper {\n display: none; /* ENABLE WHEN WE HAVE ADVANCED OPTIONS FOR EXPORTING */\n margin-top: 20px;\n}\n\n.wpstg--modal--backup--import--search-replace--wrapper {\n text-align: left;\n margin-top: 20px;\n}\n\n.wpstg--modal--backup--import--search-replace--new--wrapper {\n text-align: center;\n}\n\n.wpstg-import-backup-contains li {\n display: inline-block;\n}\n\n.wpstg-import-backup-contains li .wpstg-backups-contains {\n border-radius: 3px;\n color: #979797;\n background-color: #e3e3e3;\n border: 1px solid #c2c2c2;\n width: 17px;\n height: 17px;\n font-size: 17px;\n}\n\n.wpstg-import-backup-contains.wpstg-listing-single-backup li .wpstg-backups-contains {\n padding: 2px;\n background-color: white;\n border: 1px solid #c2c2c2;\n}\n\n.wpstg-import-backup-contains.wpstg-listing-single-backup li .wpstg-backups-contains > .wpstg--dashicons {\n filter: invert(50%);\n}\n\n.wpstg-import-backup-contains .wpstg--tooltiptext {\n width: 50px;\n font-size: x-small;\n padding: 5px;\n left: -25px;\n text-align: center;\n}\n\n.wpstg-import-backup-contains-title {\n display: inline-block;\n}\n\nul.wpstg-import-backup-contains {\n display: inline-block;\n}\n\n.wpstg-import-backup-name {\n display: inline-block;\n font-weight: bold;\n}\n\n.wpstg-backup-more-info-toggle {\n font-size: x-small;\n display: inline-block;\n font-style: italic;\n cursor: pointer;\n}\n\n.wpstg-backup-more-info-toggle::selection {\n background: none;\n}\n\nul.wpstg-import-backup-more-info {\n font-size: 14px;\n text-align: left;\n margin-bottom: 30px;\n margin-top: 10px;\n background-color: #f6f6f6;\n border: 1px solid #878787;\n border-radius: 3px;\n padding: 7px;\n cursor: pointer;\n}\n\nul.wpstg-import-backup-more-info:hover {\n background-color: #def2ff;\n border: 1px solid #25a1f0;\n}\n\nul.wpstg-import-backup-more-info li {\n height: 20px;\n}\n\n.wpstg-backup-list {\n max-width: 800px;\n}\n\n.wpstg-backup-list h3 {\n color:#3e3e3e;\n}\n\n.wpstg-backup-list ul ul {\n margin-block-start: 1em;\n margin-block-end: 1em;\n}\n\n.wpstg-push-confirmation-message {\n text-align: justify;\n font-size: 15px;\n}\n\n.wpstg-settings-row {\n padding-top: 10px;\n padding-bottom: 10px;\n}\n\n.wpstg-settings-title {\n font-weight: 600;\n}\n\n.wpstg-settings-form-group {\n display: flex;\n align-items: center;\n}\n\n.wpstg-settings-form-group > .wpstg-settings-message {\n width: 30%;\n padding: 0;\n margin: 7px 0 0;\n}\n\n/**\n * WP STAGING EXCLUSION RULES TABLE LAYOUT\n */\n\n.wpstg-excluded-filters-container {\n padding: 0;\n margin-top: 10px;\n margin-bottom: 10px;\n max-width: 100%;\n width: 100%;\n}\n\n.wpstg-excluded-filters-container > table {\n width: 100%;\n border-collapse: collapse;\n border-color: transparent;\n}\n\n.wpstg-excluded-filters-container td {\n padding-top: 4px;\n padding-bottom: 4px;\n height: 20px;\n}\n\n.wpstg-excluded-filters-container h4 {\n margin: 0;\n}\n\n.wpstg-exclude-filters-foot {\n display: flex;\n justify-content: flex-start;\n padding: 0;\n}\n\n/**\n * WP STAGING EXCLUSION RULE DROPDOWN STYLE\n */\n\n\n.wpstg-exclude-filter-dropdown > button:hover {\n background: #135e96;;\n border: 1px solid #135e96;;\n}\n\n.wpstg-exclude-filter-dropdown > .wpstg-dropdown-menu {\n width: 128px;\n}\n\n.wpstg-remove-exclude-rule {\n color: #fff !important;\n background-color: #e01e5a;\n border: 1px solid #e01e5a;\n width: 20px;\n height: 20px;\n border-radius: 10px;\n font-size: 24px;\n padding: 0;\n display: inline-flex;\n justify-content: center;\n outline: none;\n box-shadow: none;\n font-weight: 400;\n line-height: 0.7;\n margin-top: 5px;\n cursor: pointer;\n}\n\n.wpstg-remove-exclude-rule:hover {\n background-color: #E01E5A;\n border-color: #E01E5A;\n}\n\n.wpstg-code-block {\n margin-top: 4px;\n font-size: 1.2em;\n background: #f8f8f8;\n border-radius: 2px;\n}\n\n.wpstg-rule-info {\n background: #f8f8f8 !important;\n}\n\ncode.wpstg-code {\n display: inline-block;\n font-size: 11px;\n border: 1px solid #aaa;\n background: #fff;\n padding: 2px 4px;\n margin-bottom: 1px;\n color: #E01E5A;\n}\n\n.wpstg-exclusion-rule-info {\n color: #fff !important;\n background-color: #ffc107;\n border: 1px solid #ffc107;\n width: 14px;\n height: 14px;\n border-radius: 7px;\n font-size: 14px;\n padding: 0;\n display: inline-flex;\n justify-content: center;\n align-items: center;\n outline: none;\n box-shadow: none;\n font-weight: 400;\n vertical-align: middle;\n}\n\n.wpstg-exclusion-rule-info:hover {\n background-color: #ffba0c;\n border: 1px solid #ffba0c;\n}\n\n/**\n * WP STAGING INPUTS EXCLUSION RULES\n */\n\n.wpstg-exclude-rule-input {\n font-size: 12px !important;\n padding: 2px 6px;\n box-shadow: none;\n outline: none !important;\n display: inline-block;\n font-weight: 400;\n line-height: 1.5;\n color: #222;\n border-radius: 0 !important;\n background-color: #fff;\n border: 1px solid #bbb;\n min-height: 24px !important;\n margin-top: 4px;\n margin-left: 4px;\n vertical-align: baseline !important;\n transition: all 0.3s cubic-bezier(.25, .8, .25, 1);\n width: 135px;\n}\n\n.wpstg-excluded-filters-container tbody > tr:last-child .wpstg-exclude-rule-input {\n margin-bottom: 4px;\n}\n\n.wpstg-exclude-rule-input:hover {\n border: 1px solid #999;\n}\n\n.wpstg-exclude-rule-input:focus {\n border: 1px solid #25A0F1 !important;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24) !important;\n}\n\n.wpstg-file-size-exclude-select,\n.wpstg-path-exclude-select {\n width: 135px;\n}\n\n.wpstg-file-size-exclude-select-small {\n width: 52px;\n}\n\n.wpstg-file-size-exclude-input {\n width: 75px;\n}\n\n.wpstg-staging-option-title {\n margin: 15px 0 0;\n}\n\n.wpstg-swal-push-container.wpstg--swal2-container {\n z-index: 9995;\n}\n\n#wpstg-scanning-files {\n padding-bottom: 5px;\n}\n\n#wpstg-scanning-files.wpstg-tab-section, #wpstg-scanning-db.wpstg-tab-section {\n padding-top: 10px;\n}\n\n.wpstg-reset-excludes-container {\n margin: 10px 0;\n}\n\n.wpstg-swal2-ajax-loader {\n width: 100%;\n height: 150px;\n overflow: hidden;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n\n@keyframes wpstg-loading-icon-anim {\n 0% {\n transform: rotate(0);\n }\n 100% {\n transform: rotate(360deg);\n }\n}\n\n.wpstg-swal2-ajax-loader > img {\n width: 64px;\n height: 64px;\n animation: wpstg-loading-icon-anim 1s infinite linear;\n -webkit-animation: wpstg-loading-icon-anim 1s infinite linear;\n}\n\n.wpstg-swal2-container .wpstg-tab-section {\n width: auto !important;\n}\n\n#wpstg-no-staging-site-results {\n margin-top: 10px;\n max-width: 375px;\n}\n\nli#wpstg-backup-no-results {\n max-width: 500px;\n}\n\nli#wpstg-backup-no-results div, #wpstg-no-staging-site-results div {\n display: inline-block;\n text-align: center;\n}\n\nli#wpstg-backup-no-results .wpstg--dashicons, #wpstg-no-staging-site-results .wpstg--dashicons {\n filter: invert(50%);\n position: absolute;\n margin-top: 1px;\n}\n\nli#wpstg-backup-no-results .no-backups-found-text, #wpstg-no-staging-site-results .no-staging-site-found-text {\n color: #5d5d5d;\n margin-left: 20px;\n}\n\n@media only screen and (max-width: 680px) {\n li#wpstg-backup-no-results div, #wpstg-no-staging-site-results div {\n width: 100%;\n }\n}\n\n#wpstg--modal--backup--download-inner p.wpstg-download-modal-text {\n font-size: 16px;\n color: #565656;\n}\n\n#wpstg--modal--backup--download-inner h2 {\n color: #565656;\n}\n\n.wpstg-backup-restore-contains-database,\n.wpstg-backup-restore-contains-files {\n display: none;\n}\n\n.wpstg-green-button {\n background: #8bc34a;\n border: 1px solid #78a93f;\n color: white;\n text-shadow: 0 -1px 1px #78a93f, 1px 0 1px #78a93f, 0 1px 1px #40c921, -1px 0 1px #78a93f;\n}\n\n.wpstg-green-button:hover {\n background: #78a93f;\n}\n\n.wpstg-is-dir-loading {\n position: absolute;\n margin-top: -2px;\n margin-left: 8px;\n display: none;\n}\n\n.wpstg-ml-8px {\n margin-left: 8px;\n}\n\n.wpstg-mb-8px {\n margin-bottom: 8px;\n}\n\n\n.wpstg-btn-danger {\n background-color: #E01E5A;\n border: 1px solid #E01E5A;\n color: white;\n text-shadow: none;\n}\n\n.wpstg-btn-danger:hover {\n background: #c0194d;\n box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3);\n}\n\n.wpstg-swal2-container.wpstg-swal2-loading > .wpstg--swal2-modal {\n height: 200px;\n}\n\n.wpstg-reset-confirmation.wpstg-swal2-container:not(.wpstg-swal2-loading) > .wpstg--swal2-modal {\n max-width: 480px;\n}\n\n.wpstg-reset-confirmation.wpstg-swal2-container .wpstg--swal2-header {\n display: none;\n}\n\n.wpstg-reset-confirmation.wpstg-swal2-container .wpstg--swal2-content {\n height: auto;\n}\n\n.wpstg-reset-confirmation.wpstg-swal2-container > .wpstg--swal2-modal > .wpstg--swal2-content .wpstg-tabs-wrapper {\n overflow-y: auto;\n height: auto !important;\n}\n\n.wpstg-reset-confirmation.wpstg-swal2-container > .wpstg--swal2-modal > .wpstg--swal2-content {\n font-size: 13px;\n}\n\n.wpstg-reset-confirmation.wpstg-swal2-container > .wpstg--swal2-modal > .wpstg--swal2-content .wpstg-dir {\n margin-bottom: 4px;\n}\n\n.wpstg-reset-confirmation.wpstg-swal2-container > .wpstg--swal2-modal > .wpstg--swal2-content .wpstg-subdir {\n margin-top: 4px;\n}\n\n.wpstg-reset-confirmation.wpstg-swal2-container.has-collapsible-open .wpstg--swal2-modal {\n height: calc(100vh - 70px);\n}\n\n.wpstg-reset-confirmation.wpstg-swal2-container.has-collapsible-open > .wpstg--swal2-modal > .wpstg--swal2-content .wpstg-tabs-wrapper {\n height: calc(100vh - 350px) !important;\n}\n\n.wpstg--swal2-actions.wpstg--modal--actions > button {\n margin-left: 4px;\n margin-right: 4px;\n text-transform: uppercase;\n text-shadow: initial;\n font-weight: 500;\n min-width: 80px;\n}\n\n.wpstg-swal-popup {\n max-width: 1200px !important;\n}\n\n.wpstg-swal-popup.wpstg-push-finished .wpstg--swal2-title {\n color: #a8a8a8;\n}\n\n.wpstg-swal-popup.wpstg-push-finished .wpstg--swal2-content {\n margin-top: 8px;\n color: #a8a8a8;\n}\n\n.wpstg-swal-popup .wpstg--swal2-progress-steps .wpstg--swal2-progress-step.wpstg--swal2-active-progress-step,\n.wpstg-swal-popup .wpstg--swal2-progress-steps .wpstg--swal2-progress-step,\n.wpstg-swal-popup .wpstg--swal2-progress-steps .wpstg--swal2-progress-step-line {\n background: #25a1f0;\n}\n\n.wpstg-swal-popup .wpstg--swal2-progress-steps .wpstg--swal2-progress-step-line {\n width: 2.75em;\n}\n\n.wpstg--dashicons {\n width: 16px;\n height: 16px;\n}\n\n.wpstg--dashicons.wpstg-dashicons-grey {\n filter: invert(20%);\n}\n\n.wpstg--dashicons.wpstg-dashicons-19 {\n width: 19px;\n height: 19px;\n}\n\n.wpstg--dashicons.wpstg-dashicons-21 {\n width: 21px;\n height: 21px;\n}\n\n#wpstg--tab--backup #wpstg-step-1 {\n display: flex;\n align-items: center;\n}\n\n.wpstg-advanced-options .wpstg--tooltip,\n#wpstg--tab--backup #wpstg-step-1 .wpstg--tooltip {\n border-bottom: 0 solid transparent;\n display: inline-flex;\n align-items: center;\n}\n\n#wpstg--tab--backup #wpstg-step-1 .wpstg--tooltip {\n border-bottom: 0 solid transparent;\n display: flex;\n align-items: center;\n}\n\n.wpstg--tooltip .wpstg--tooltiptext-backups::after {\n left: calc(20% + 2px);\n}\n\n.wpstg-listing-single-backup .wpstg--dashicons {\n width: 17px;\n height: 17px;\n}\n\n.wpstg-100-width {\n width: 100px;\n}\n\n.wpstg-caret {\n display: inline-block;\n width: 0;\n height: 0;\n margin-left: 2px;\n vertical-align: middle;\n border-top: 4px solid;\n border-right: 4px solid transparent;\n border-left: 4px solid transparent;\n transition: transform 0.2s;\n cursor: pointer;\n}\n\n.wpstg-caret.wpstg-caret-up {\n transform: rotate(-180deg);\n}\n\n.wpstg-advanced-options-site label {\n font-size: 16px;\n display: block;\n margin: .5em 0;\n}\n\n#wpstg-confirm-backup-restore-data {\n font-size: 18px;\n margin: 0;\n margin-top: 30px;\n}\n\n/* Sweetalert WP STAGING Theme */\n\nbody.toplevel_page_wpstg_backup .wpstg--swal2-container.wpstg--swal2-backdrop-show,\nbody.toplevel_page_wpstg_clone .wpstg--swal2-container.wpstg--swal2-backdrop-show {\n background: rgba(0, 0, 0, .6);\n z-index: 9995;\n}\n\n.wpstg-swal-popup.wpstg--swal2-popup {\n border-radius: 8px;\n z-index: 9999;\n padding: 24px;\n color: #565656;\n font-family: Verdana, Geneva, Tahoma, sans-serif;\n}\n\n.wpstg-swal-popup .wpstg--swal2-title {\n font-size: 22px;\n color: #565656;\n}\n\n.wpstg-swal-popup.wpstg--swal2-popup:not(.centered-modal) .wpstg--swal2-title {\n align-self: flex-start; /* For an actual Swal title */\n text-align: left; /* Manually adding this class to a non flex display */\n margin-bottom: 0;\n}\n\n.wpstg-swal-popup .wpstg--swal2-close {\n top: 8px;\n right: 8px;\n z-index: 5;\n}\n\n.wpstg-swal-popup .wpstg--swal2-close:focus {\n outline: none;\n}\n\n.wpstg-swal-popup.wpstg--swal2-popup:not(.centered-modal) .wpstg--swal2-actions {\n justify-content: flex-end;\n}\n\n.wpstg-swal-popup .wpstg--swal2-actions > button {\n border-radius: 4px;\n font-weight: 900;\n border: 0;\n font-size: 15px;\n padding: 10px 12px;\n text-transform: capitalize;\n line-height: normal;\n height: 40px;\n min-width: 100px;\n text-shadow: none;\n}\n\n.wpstg-swal-popup.wpstg--swal2-popup:not(.centered-modal) .wpstg--swal2-actions > button {\n margin-left: 8px;\n}\n\n.wpstg-swal-popup .wpstg--swal2-actions > button.wpstg--swal2-cancel {\n border: 1px solid rgba(29, 28, 29, 0.3);\n background: #fff;\n color: rgb(29, 28, 29);\n font-weight: 500;\n width: 100px;\n text-shadow: none;\n}\n\n.wpstg-swal-popup .wpstg--swal2-actions > button:hover {\n box-shadow: 0 1px 3px 0 rgba(0 0 0 .1);\n}\n\n.wpstg-swal-popup .wpstg--swal2-actions > button.wpstg--swal2-cancel:hover {\n background: rgba(28, 29, 28, .04);\n}\n\n#wpstg-backup-name-input {\n height: 44px;\n font-size: 18px;\n}\n\n.wpstg-restore-finished-container .wpstg--swal2-title {\n color: #565656 !important;\n}\n\n/*#wpstg-restore-success {\n color: #565656;\n}*/\n\n.wpstg-restore-finished-container .wpstg--swal2-content {\n margin-top: 20px;\n color: #a8a8a8;\n}\n\n/* WP Staging Implementation of Windows Style Linear Loader */\n\n.wpstg-linear-loader > span[class*=\"wpstg-linear-loader-item\"] {\n height: 6px;\n width: 6px;\n background: #333;\n display: inline-block;\n margin: 12px 2px;\n border-radius: 100%;\n animation: wpstg_linear_loader 3s infinite;\n animation-timing-function: cubic-bezier(0.030, 0.615, 0.995, 0.415);\n animation-fill-mode: both;\n}\n\n.wpstg-linear-loader > span.wpstg-linear-loader-item:nth-child(1) {\n animation-delay: 1s;\n}\n\n.wpstg-linear-loader > span.wpstg-linear-loader-item:nth-child(2) {\n animation-delay: 0.8s;\n}\n\n.wpstg-linear-loader > span.wpstg-linear-loader-item:nth-child(3) {\n animation-delay: 0.6s;\n}\n\n.wpstg-linear-loader > span.wpstg-linear-loader-item:nth-child(4) {\n animation-delay: 0.4s;\n}\n\n.wpstg-linear-loader > span.wpstg-linear-loader-item:nth-child(5) {\n animation-delay: 0.2s;\n}\n\n.wpstg-linear-loader > span.wpstg-linear-loader-item:nth-child(6) {\n animation-delay: 0s;\n}\n\n@keyframes wpstg_linear_loader {\n 0% {\n transform: translateX(-30px);\n opacity: 0;\n }\n 25% {\n opacity: 1;\n }\n 50% {\n transform: translateX(30px);\n opacity: 0;\n }\n 100% {\n opacity: 0;\n }\n}\n\n/* END - Windows Style Linear Loader */\n\n.wpstg--modal--backup--import--upload--content {\n padding: .75em;\n margin: 1em auto;\n}\n\n.wpstg--modal--backup--import--upload--content .wpstg-linear-loader {\n display: none;\n}\n\n#wpstg-multisite-disabled .wpstg-clone {\n width: 355px;\n}\n\n#wpstg-free-version-backups .wpstg-clone {\n text-align: center;\n}\n\n#wpstg-free-version-backups .wpstg-clone p {\n font-size: 16px;\n}\n\n.wpstg-staging-info li .backup-notes {\n word-break: break-word;\n}\n\n.wpstg--modal--import--upload--progress--title small {\n font-weight: normal;\n}\n\n#wpstg-report-issue-wrapper {\n position: relative;\n}\n\n#wpstg-report-issue-wrapper .arrow-up {\n width: 0;\n height: 0;\n border-left: 8px solid transparent;\n border-right: 8px solid transparent;\n border-bottom: 8px solid white;\n position: absolute;\n top: -8px;\n right: 40px;\n}\n\n.notice {\n margin: 10px 20px 0 2px;\n}\n\n.wpstg--notice {\n box-shadow: 0 1px 1px rgba(0, 0, 0, .04);\n margin: 20px 20px 20px 0px;\n padding: 1px 12px;\n}\n\n.wpstg--error a:hover {\n color: #eeeeee;\n}\n\n.wpstg--error, .wpstg--error a {\n background: #E01E5A;\n color: white;\n}\n\n/**\n * Buttons\n */\n\n.wpstg-button {\n display: inline-block;\n border-radius: 2px;\n cursor: pointer;\n padding: 2px 10px 2px 10px;\n text-transform: uppercase;\n font-weight: 500;\n outline: 0;\n transition: background-color .1s ease-in;\n text-decoration: none;\n}\n\n.wpstg-button.wpstg-save {\n background-color: #1687A7;\n color: white;\n}\n\n.wpstg-button.wpstg-save:hover {\n background-color: #276678;\n}\n\n\n.wpstg-button.wpstg-button-light {\n background-color: #f8f8f8;\n border: 1px solid #eee;\n color: #333;\n animation: background-color 0.3s;\n}\n\n.wpstg-button.wpstg-button-light:hover {\n background-color: #e0e0e0;\n border: 1px solid #e0e0e0;\n}\n\n.wpstg-buttons .spinner {\n float: none;\n margin: 0 0 0 5px;\n}\n\n.wpstg-button.danger {\n display: inline-block;\n text-decoration: none;\n text-align: center;\n text-transform: inherit;\n background-color: #E01E5A;\n color: white;\n border-radius: 2px;\n border-color: transparent;\n}\n\n.wpstg-button.danger:hover {\n background-color: #c0194d;\n}\n\n.wpstg-button--big {\n display: inline-block;\n padding: 10px;\n min-width: 170px;\n font-size: 16px;\n text-decoration: none;\n text-align: center;\n margin-top: 20px;\n color: white;\n border-radius: 3px;\n}\n\n.wpstg-button--primary {\n display: inline-block;\n text-decoration: none;\n font-size: 13px;\n line-height: 2.15384615;\n min-height: 30px;\n margin: 0;\n padding: 0 10px;\n cursor: pointer;\n border: 1px solid rgba(29, 28, 29, 0.3);\n -webkit-appearance: none;\n border-radius: 2px;\n white-space: nowrap;\n box-sizing: border-box;\n color: #171717;\n}\n\n.wpstg-button--primary:hover {\n background: rgba(28, 29, 28, .04);\n color: black;\n}\n\n.wpstg-button--secondary {\n display: inline-block;\n background-color: transparent;\n color: #95a5a6;\n border-radius: 2px;\n border: 1px solid rgba(29, 28, 29, 0.3);\n cursor: pointer;\n padding: 4px 10px 2px 10px;\n font-weight: 500;\n outline: 0;\n transition: background-color .1s ease-in;\n text-decoration: none;\n}\n\n.wpstg-button--red {\n background-color: #E01E5A;\n border-color: #E01E5A;\n color: white;\n}\n\n.wpstg-button--red:hover {\n background-color: #d02358;\n border-color: #e0255f;\n color: white;\n}\n\n.wpstg-button--cta-red {\n background-color: #fe008f;\n border-color: #E01E5A;\n color: white;\n}\n\n.wpstg-button--cta-red:hover {\n background-color: #f31391;\n border-color: #e0255f;\n color: white;\n}\n\n.wpstg-button--blue {\n background-color: #25A0F1;\n border-color: #25A0F1;\n color: white;\n}\n\n.wpstg-button--blue:hover {\n background-color: #259be6;\n border-color: #259be6;\n color: white;\n}\n\n#wpstg-button-backup-upgrade {\n font-size: 16px;\n}\n\n.wpstg-staging-status {\n color: #E01E5A;\n}\n\n#wpstg-push-changes,\n#wpstg-start-updating,\n#wpstg-save-clone-data {\n margin-left: 5px;\n}\n\ninput.wpstg-textbox {\n border: 1px solid #aaa;\n border-radius: .25rem;\n padding: 0.25rem 0.5rem;\n font-size: 14px;\n}\n\ninput.wpstg-textbox:focus {\n outline: 0;\n border-color: #259be6;\n -webkit-box-shadow: 0 0 0 0.1rem rgba(221, 221, 221, .35);\n box-shadow: 0 0 0 0.1rem rgba(221, 221, 221, .35);\n}\n\ninput.wpstg-textbox::placeholder {\n color: #888;\n}\n\n.wpstg--advance-settings--checkbox {\n display: flex;\n align-items: center;\n}\n\n.wpstg--advance-settings--checkbox > label {\n font-size: 14px;\n font-weight: bolder;\n width: 165px;\n display: inline-block;\n}\n\n.wpstg--advance-settings--checkbox > .wpstg--tooltip {\n margin-top: 5px;\n margin-left: 5px;\n position: relative;\n display: inline-block;\n border-bottom: 0px solid transparent;\n}\n\n.wpstg--advance-settings--checkbox > .wpstg--tooltip > .wpstg--tooltiptext {\n top: 18px;\n left: -150px;\n}\n\n\ndiv#wpstg-restore-wait {\n display: none;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n text-align: center;\n height: 100vh;\n width: 100vw;\n position: fixed;\n top: 0;\n left: 0;\n background: white;\n z-index: 99999;\n}\n\ndiv#wpstg-restore-wait .wpstg-title {\n font-weight: bold;\n}\n\ndiv#wpstg-restore-wait div {\n font-size: 16px;\n margin-top: 12px;\n}\n\n.resumable-browse {\n cursor: pointer;\n}\n\n.resumable-browse a {\n text-decoration: underline;\n}\n\n.wpstg-upload-text {\n font-weight: 600;\n}\n\n.wpstg--modal--backup--import--upload--container.dragover {\n transition: background-color 0.7s;\n background-color: #94dc96;\n color: #FFF;\n}\n\n.wpstg--modal--backup--import--upload--container.dragover * {\n pointer-events: none; /* Avoids flickering when dragging to drop a file */\n}\n\n.wpstg--modal--backup--import--upload--container.dragover .wpstg-upload-text {\n display: none;\n}\n\n.wpstg--modal--backup--import--upload--container.dragover .wpstg-dragover-text {\n display: block;\n}\n\n.wpstg--modal--backup--import--upload--container .wpstg-dragover-text {\n display: none;\n}\n\n#wpstg-invalid-license-message, #wpstg-invalid-license-message a {\n font-weight: 500;\n color: #E01E5A;\n margin-left: 6px;\n}\n\n#wpstg-sidebar--banner {\n max-width: 200px;\n}\n\n@media screen and (max-width: 1234px) {\n .wpstg-h2 {\n font-size: 24px;\n }\n\n #wpstg-welcome li {\n font-size: 14px;\n }\n}\n\n.wpstg-exclamation {\n color: #ffffff;\n border-radius: 100%;\n background-color: #E01E5A;\n width: 20px;\n height: 20px;\n text-align: center;\n font-weight: bold;\n display: inline-block;\n margin: 6px;\n}\n\n.wpstg--tab--contents {\n padding-top: 1px;\n}\n\n.wpstg-swal-show.wpstg--swal2-show {\n -webkit-animation: wpstg-swal-show 0.2s !important;\n animation: wpstg-swal-show 0.2s !important;\n}\n\n@-webkit-keyframes wpstg-swal-show {\n 0% {\n transform: scale(0.3);\n }\n 100% {\n transform: scale(1);\n }\n}\n\n@keyframes wpstg-swal-show {\n 0% {\n transform: scale(0.3);\n }\n 100% {\n transform: scale(1);\n }\n}\n"]}
assets/css/dist/wpstg-admin.min.css CHANGED
@@ -1,2 +1,2 @@
1
- .wpstg--violet{color:#9d37ae}.wpstg-border--violet{border:1px solid #9d37ae}.wpstg--red{color:#e01e5a}.wpstg-cta--red{color:#fe008f}.wpstg--blue{color:#24a1f0}.wpstg--darkblue{color:#0e86d9}.wpstg--green{color:#83c11f}.wpstg--grey{color:#3e3e3e}.wpstg--darkgrey{color:#1b1b1b}#wpstg-tab-container ul{background:#f1f1f1;float:left;list-style:none;margin:0;padding:0}#wpstg-tab-container ul li:first-child.selected-tab{border-top:none}#wpstg-tab-container ul li a.selected-tab{font-weight:700;text-decoration:none}#wpstg-tab-container .row{padding-bottom:12px;padding-top:10px}.wpstg-tabs-container .nav-tab-wrapper{padding:0}#wpstg-tab-container .row label strong,#wpstg-tab-container .row strong{font-weight:700}.wpstg-tabs a{padding:5px}#wpstg-tab-container>ul>li.wpstg-tabs.active{background-color:#fff}#wpstg_settingsgeneral_header .row:nth-child(3),#wpstg_settingsgeneral_header .row:nth-child(4){display:none}#wpstg-tab-container .wpstg-settings-panel{overflow:auto;padding:0 20px 20px}#wpstg-tab-container .wpstg-form-table th{color:#484848;font-size:14px;font-weight:700;line-height:1.3;padding:20px 10px 20px 0;text-align:left;vertical-align:top;width:30%}#wpstg-tab-container .wpstg-form-table tr{border-bottom:1px solid #e7e7e7}#wpstg-tab-container span.description{color:#484848;display:block;font-size:13px;font-style:normal;font-weight:400;margin-top:7px}#wpstg-tab-container .col-title{color:#484848}@media only screen and (max-width:680px){#wpstg-tab-container ul{float:none}#wpstg-tab-container .wpstg-form-table tr>th{width:100%}#wpstg-tab-container span.description{font-size:14px}#wpstg-tab-container .wpstg-form-table tr>td,#wpstg-tab-container .wpstg-form-table tr>th{padding:10px}}#wpstg-tab-container ul li{margin-bottom:0}#wpstg-tab-container ul li a{border-bottom:1px solid #e7e7e7;border-left-style:solid;border-left-width:0;border-right-style:solid;border-right-width:0;border-top:1px solid #fff;color:#0097df;display:block;font-weight:700;padding:10px 4px 10px 14px;text-decoration:none}#wpstg-tab-container ul li a:hover{background-color:#e5e5e5;color:#777}.wpstg-logo{display:block;float:left;font-size:16px;padding-top:20px;width:220px}.wpstg-logo img{max-width:212px}.wpstg-version{color:#9b9b9b;display:block;padding-top:34px}.wpstg_admin .nav-tab{color:#3c3c3c}#wpstg-tab-container table tbody tr:first-child>th>div{font-size:20px}#wpstg-clonepage-wrapper{margin-bottom:20px;width:98%}@media screen and (min-width:1090px){#wpstg-clonepage-wrapper{float:left;margin-bottom:20px}}#wpstg-steps{margin-left:20px;margin-top:0}#wpstg-steps li{color:#444;float:left;line-height:20px;padding-right:10px}.wpstg-step-num{border:1px solid #3e3e3e;border-radius:3px;display:inline-block;height:20px;margin-right:5px;text-align:center;width:20px}.wpstg-current-step{font-weight:700}.wpstg-current-step .wpstg-step-num{background:#3e3e3e;color:#eee}.wpstg-box{margin:10px 0;overflow:hidden;padding:10px}.wpstg-box,.wpstg-clone{position:relative;transition:border-color .2s ease-in-out}.wpstg-clone{background-color:#fff;border-radius:3px;box-shadow:0 0 1px rgba(0,0,0,.125),0 1px 3px rgba(0,0,0,.1);color:#3e3e3e;margin-bottom:10px;padding:16px}.wpstg-clone.active{border-color:#1d94cf}.wpstg-clone-header{align-items:center;display:flex;justify-content:space-between}.wpstg-clone-title{color:#3e3e3e;display:inline-block;font-size:15px;font-weight:700;max-width:300px;text-decoration:none}.wpstg-clone-title:hover{color:#111}.wpstg-clone-actions{display:flex;margin-top:5px}.wpstg-clone-actions .wpstg-dropdown-toggler{background:#25a1f0;border-radius:2px;box-shadow:0 0 1px rgba(0,0,0,.125),0 1px 3px rgba(0,0,0,.2);color:#fff;font-size:14px;padding:6px 10px;text-decoration:none}.wpstg-clone-actions .wpstg-dropdown-toggler:hover{background:#002648;color:#fff}.wpstg-dropdown{position:relative}.wpstg-dropdown>.wpstg-dropdown-menu{background:#fff;border-radius:2px;box-shadow:0 0 1px rgba(0,0,0,.125),0 1px 3px rgba(0,0,0,.2);display:none;flex-direction:column;padding:8px;position:absolute;right:0;top:calc(100% + 4px);width:100px;z-index:1000}.wpstg-dropdown>.wpstg-dropdown-menu.wpstg-menu-dropup{bottom:100%;top:auto;transform:translate3d(0,-3px,0)}.wpstg-dropdown>.wpstg-dropdown-menu.shown{display:flex}.wpstg-clone-action,.wpstg-dropdown-action{border-bottom:1px solid #f3f3f3;border-radius:3px;color:#3e3e3e;padding:6px 8px;position:relative;text-decoration:none;transition:color .2s ease-in-out}.wpstg-clone-action:hover,.wpstg-dropdown-action:hover{background:rgba(0,0,0,.05)}.wpstg-dropdown-action{background:transparent;border:0 solid #000;box-shadow:none;color:#3e3e3e;outline:none}.wpstg-remove-clone:hover{color:#e01e5a}.wpstg-clone-action:last-child{border:none}.wpstg-clone:hover .wpstg-clone-action{display:inline-block}#wpstg-show-error-details:focus,#wpstg-workflow .wpstg-clone-action{box-shadow:none;outline:none}.wpstg-link-btn{background:#45a1c9;color:#fff;display:inline-block;padding:5px 10px;text-decoration:none;transition:all .2s ease-in-out;vertical-align:baseline}.wpstg-link-btn:focus,.wpstg-link-btn:hover{box-shadow:none;color:#fff;outline:none}#wpstg-workflow .wpstg-link-btn:active{vertical-align:baseline}.wpstg-link-btn[disabled]{background:#777!important;border-color:#555!important;pointer-events:none}#wpstg-cancel-cloning,#wpstg-cancel-cloning-update{margin-top:5px}#wpstg-cancel-cloning.success{background:#64dd58;border-color:#54bd4a}#wpstg-error-details,#wpstg-error-wrapper{clear:both;display:none;font-size:13px;padding-top:10px}#wpstg-show-error-details{color:#555;display:inline-block;margin-left:5px;text-decoration:none;transition:color .2s ease-in-out}#wpstg-show-error-details:hover{color:#1d94cf}#wpstg-error-details{border-left:5px solid #e01e5a;padding:10px;width:500px}#wpstg-try-again{display:none}#wpstg-home-link{float:right}.wpstg-loader{content:url(../../img/loading.gif);display:none;margin-top:10px}.wpstg-loader.wpstg-finished{background-color:#00c89a;border-radius:3px;color:#fff;content:"Finished";display:block;margin-top:0;padding:2px 10px}#wpstg-workflow{clear:both;float:left;max-width:800px;min-height:380px;min-width:500px;padding-bottom:20px;padding-right:20px;padding-top:20px;position:relative}#wpstg-sidebar{display:block;float:left;margin-left:10px;max-width:400px}#wpstg-removing-clone.loading:after,#wpstg-workflow.loading:after{background:hsla(0,0%,100%,.7);content:"Loading... may take a while for huge websites";display:block;font-size:20px;height:100%;left:0;padding-top:100px;position:absolute;text-align:center;top:0;width:100%;z-index:99}#wpstg-removing-clone.loading:after{content:"REMOVING"!important}#wpstg-existing-clones,#wpstg-removing-clone{position:relative}#wpstg-existing-clones h3{color:#3e3e3e}#wpstg-removing-clone .wpstg-tab-section{display:block}.wpstg-progress-bar{background-color:#d6d8d7;height:27px;max-width:900px;padding:0}.wpstg-progress{background:#3fa5ee;float:left;overflow:hidden}.wpstg-progress,.wpstg-progress-files{color:#fff;height:100%;line-height:25px;text-align:center;transition:width .6s ease;width:0}.wpstg-progress-files{background:#16b4f0}#wpstg-clone-path.wpstg-error-input,#wpstg-new-clone-id.wpstg-error-input{border:1px solid #e01e5a;box-shadow:0 0 2px rgba(255,66,53,.8)}#wpstg-new-clone-id{margin-left:15px;max-width:100%;width:450px}#wpstg-new-clone{background:#25a1f0;border-color:#2188c9}#wpstg-new-clone:hover{background:#259be6;border-color:#2188c9}#wpstg-clone-path{margin-left:10px;width:350px}.wpstg-error-msg{color:#e01e5a}#wpstg-clone-id-error{background-color:#f0f8ff;display:block;margin:20px;padding:10px}#wpstg-start-cloning+.wpstg-error-msg{display:block;margin-top:5px}.wpstg-size-info{color:#999;font-weight:400;left:2px;position:relative}.wpstg-db-table .wpstg-size-info{top:2px}.wpstg-db-table:hover{background-color:#f0f8ff}#wpstg-workflow #wpstg-start-cloning{margin-left:5px;vertical-align:baseline}.wpstg-tabs-wrapper{margin:10px 0;max-width:640px}#wpstg-path-wrapper{border-bottom:2px dashed #ccc;margin-bottom:10px;padding-bottom:10px}.wpstg-tab-section{border-bottom:1px solid #ddd;border-left:none;border-right:none;display:none;padding:0 36px;width:calc(100% - 72px)}.wpstg-tab-section:after{clear:both;content:"";display:block}.wpstg-tab-header{border-bottom:1px solid #ddd;border-left:none;border-right:none;color:#444;display:block;font-size:16px;font-weight:700;padding:10px;text-decoration:none}.wpstg-tab-triangle{animation:transform .5s;border-bottom:5px solid transparent;border-left:10px solid;border-top:5px solid transparent;cursor:pointer;display:inline-block;height:0;margin-right:12px;margin-top:-3px;transition:transform .2s;vertical-align:middle;width:0}.wpstg-tab-triangle.wpstg-no-icon{border-bottom:0 solid;border-left:0 solid;border-top:0 solid;height:auto;margin-right:2px;vertical-align:auto;width:auto}.wpstg-tab-triangle.wpstg-rotate-90{transform:rotate(90deg)}.wpstg-tab-header:focus{box-shadow:none;color:#444;outline:none}#wpstg-large-files{border:1px dashed #ccc;display:none;font-size:12px;margin-top:20px;padding:10px;position:relative}#wpstg-large-files h3{background:#fff;left:5px;margin:0;padding:0 5px;position:absolute;top:-10px}.wpstg-subdir{display:none;margin-left:20px}.wpstg-subdir.wpstg-push{display:block;margin-left:20px}.wpstg-dir a.disabled{color:#888;cursor:default;text-decoration:none}.wpstg-check-subdirs{display:inline-block;margin-left:10px}.wpstg-notice-alert{background-color:#e01e5a;color:#fff}.wpstg-notice--white,.wpstg-notice-alert{display:block;margin-top:10px;max-width:600px;padding:20px}.wpstg-notice--white{background-color:#fff}.wpstg-notice-alert a,.wpstg-notice-alert h3{color:#fff}.wpstg-header{border-bottom:1px solid #dfdfdf;clear:both;font-size:19px;font-weight:400;line-height:1.6em;padding-top:10px}#wpstg-clone-label{font-size:14px;font-weight:700}.wpstg-log-details{background-color:#000;border:1px solid #fff;color:silver;font-family:monospace;font-size:12px;height:300px;line-height:15px;margin-top:15px;max-width:650px;overflow:scroll;padding:3px;white-space:nowrap}#wpstg-finished-result{display:none}#wpstg-remove-cloning{background:#ff3428;border-color:#e72f24;margin-top:5px}#wpstg-success-notice{background-color:#fff;border:1px solid #ccc;margin-top:20px;max-width:900px;padding:10px}.wpstg_beta_notice{margin-bottom:20px}.wpstg-sysinfo{height:700px;width:700px}.wpstg-form-table .col-title label{font-weight:600}.wpstg-form-table td:first-child{width:30%}.wpstg-share-button-container{margin:5px 0}.wpstg-share-button-container p{margin:0 0 10px}.wpstg-share-button{display:inline-block}.wpstg-share-button a{text-decoration:none}.wpstg-share-button .wpstg-share{-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px;color:#fff;display:inline;font-family:sans-serif;font-size:12px;font-weight:700;padding:4px 8px;text-align:center;text-decoration:none}.wpstg-share-button-twitter .wpstg-share{background-color:#00abf0}.wpstg-share-button-facebook .wpstg-share{background-color:#3b5998}.wpstg-share-button-googleplus .wpstg-share{background-color:#f53424}.wpstg-share-button-facebook .share:active,.wpstg-share-button-googleplus .share:active,.wpstg-share-button-twitter .share:active{background-color:#353535}#wpstg-check-space{margin-left:8px}#wpstg-welcome li{font-size:18px;line-height:29px;list-style:none!important;padding-left:23px;position:relative}#wpstg-welcome{background-color:#fff;margin-right:20px;margin-top:20px}.wpstg-heading-pro{font-weight:700}.wpstg-h2{font-size:30px;line-height:2.5rem;margin-bottom:1.2rem;margin-top:0}#wpstg-welcome li:before{background:url(data:image/svg+xml;charset=utf8,%3Csvg%20width%3D%221792%22%20height%3D%221792%22%20viewBox%3D%220%200%201792%201792%22%20xmlns%3D%22http%3A%2F%2Fwww%2Ew3%2Eorg%2F2000%2Fsvg%22%3E%3Cpath%20fill%3D%22%2377B227%22%20d%3D%22M1671%20566q0%2040%2D28%2068l%2D724%20724%2D136%20136q%2D28%2028%2D68%2028t%2D68%2D28l%2D136%2D136%2D362%2D362q%2D28%2D28%2D28%2D68t28%2D68l136%2D136q28%2D28%2068%2D28t68%2028l294%20295%20656%2D657q28%2D28%2068%2D28t68%2028l136%20136q28%2028%2028%2068z%22%2F%3E%3C%2Fsvg%3E) left .4em no-repeat;background-size:contain;color:#77b227;content:"";height:100%;left:0;position:absolute;top:-2px;width:1em}.wpstg-h1{font-size:2.5em;letter-spacing:normal;line-height:3.68rem;margin-bottom:1.35rem}.wpstg--swal2-content h1{color:#444}#wpstg-welcome h2{margin:0 0 15px}#wpstg-welcome .wpstg-footer{clear:both;font-style:italic;margin-top:20px}#wpstg-footer{clear:both;margin-right:10px;margin-top:20px;padding-top:50px}#wpstg-footer a{text-decoration:none}#wpstg-footer li{list-style:circle;margin-bottom:2px}#wpstg-footer ul{margin-left:15px;margin-top:0}.wpstg-footer--title{margin-left:15px}.wpstg-staging-info{color:#3e3e3e;font-size:12px;margin-top:8px}.wpstg-staging-info a{color:#3e3e3e}.wpstg-staging-info li{margin-bottom:2px}.wpstg-bold{font-weight:600}#wpstg-processing-status{float:left;font-size:13px;font-weight:400;margin-top:5px}#wpstg-processing-timer{float:right;font-size:13px;font-weight:400;margin-top:5px}#wpstg-report-issue-button{background-color:#fff;border:1px solid #e01e5a;color:#e01e5a;margin-left:50px}#wpstg-report-issue-button:hover{background-color:#dc2b62;color:#fff}.wpstg-blue-primary{-webkit-appearance:none;background:#25a1f0;border:1px solid #2188c9;border-radius:3px;box-sizing:border-box;color:#fff;cursor:pointer;display:inline-block;font-size:13px;height:28px;margin:0;padding:0 10px 1px;text-decoration:none;text-shadow:0 -1px 1px #006799,1px 0 1px #006799,0 1px 1px #006799,-1px 0 1px #006799;white-space:nowrap}.wpstg-blue-primary:hover{background-color:#259be6}.wpstg-report-issue-form{background-color:#fff;border:1px solid #e8e8e8;border-radius:3px;box-shadow:inset 0 1px 0 0 #fff;display:none;padding:15px 15px 10px;position:absolute;right:0;top:35px;width:300px;z-index:999}@media (max-width:600px){.wpstg-report-issue-form{position:relative}}.wpstg-report-show{display:block}.wpstg-field input[type=text],.wpstg-field textarea{font-weight:400;line-height:1.4;margin-bottom:4px;width:100%}.wpstg-report-email,.wpstg-report-hosting-provider{border-radius:3px;font-size:.8rem;font-weight:400;height:2.3rem;line-height:2.3rem;margin-bottom:4px;padding:0 10px;width:100%}.wpstg-report-description{border-radius:3px;font-size:.8rem;padding:6px 10px;resize:none}.wpstg-report-privacy-policy{font-size:12px;margin-bottom:15px}#wpstg-report-cancel{float:right;font-weight:700;margin-right:5px}#wpstg-success-button{font-weight:700}.wpstg-message{background-color:#f5e0de;border-radius:3px;box-sizing:border-box;-moz-box-sizing:border-box;color:rgba(0,0,0,.6);height:auto;margin:10px 0;min-height:18px;padding:6px 10px;position:relative}.wpstg-message.wpstg-error-message{background-color:#f5e0de;color:#b65147;font-size:12px}.wpstg-message.wpstg-success-message{background-color:#d7f8e0;color:#515151}.wpstg-message p{font-size:13px;margin:3px 0}.wpstg-warning{background-color:#ffb804;color:#fff;display:block;margin:10px 10px 10px 0;padding:10px}.wpstg-warning a{color:#fff;font-weight:700;text-decoration:underline}.wpstg-error{background-color:#e01e5a!important;border-color:transparent!important;box-shadow:none!important;color:#fff;display:block;margin:10px 10px 10px 0!important;padding:10px!important}.wpstg-error a{color:#fff;font-weight:700;text-decoration:underline}#wpstg-resume-cloning{display:none}#wpstg-external-db th{text-align:left;width:120px}#wpstg-db-connect{font-weight:400}#wpstg-db-status{border:1px solid transparent;border-radius:4px;display:block;margin-bottom:20px;margin-top:5px;padding:5px;text-align:center;text-decoration:none}.wpstg-text-field>#wpstg-db-status{margin-left:150px;margin-top:8px;min-width:300px}.wpstg-success{background-color:#dff0d8;border-color:#d6e9c6;color:#3c763d}.wpstg-failed{background-color:#f2dede;border-color:#ebccd1;color:#a94442}#wpstg_select_tables_cloning{font-size:13px;height:600px}#wpstg-update-notify{background-color:#e01e5a;color:#fff;font-size:14px;line-height:normal;padding:10px}#wpstg-update-notify a{color:#fff;font-weight:700}.wpstg-pointer{cursor:pointer}.wpstg--tab--header{background-color:#fff;border-radius:2px;box-shadow:0 0 1px rgba(0,0,0,.125),0 1px 3px rgba(0,0,0,.02);color:#3e3e3e;position:relative;transition:border-color .2s ease-in-out}.wpstg--tab--header ul{display:flex}.wpstg--tab--header ul li{margin-bottom:0;margin-right:1em}.wpstg--tab--header ul li:last-child{margin-right:0}.wpstg--tab--header a{color:#c4c4c4;cursor:pointer;display:inline-block;font-size:18px;min-width:150px;padding:1em 1.25em 9px;text-align:center}.wpstg--tab--header a.wpstg--tab--active,.wpstg--tab--header a:hover{border-bottom:.4em solid #25a1f0;color:#25a1f0}.wpstg--tab--header a:hover{background-color:#fefefe}.wpstg--tab--content{display:none}.wpstg--tab--active{display:block}.wpstg--text--strong,.wpstg--text--strong *{font-weight:700!important}.wpstg--text--danger{color:#a94442}.wpstg--tooltip{border-bottom:1px dotted #000;display:inline-block;margin-left:10px;position:relative}.wpstg--tooltip .wpstg--tooltiptext{background-color:#fff;border-radius:3px;-webkit-box-shadow:0 3px 6px rgba(0,0,0,.16),0 3px 6px rgba(0,0,0,.23);-moz-box-shadow:0 3px 6px rgba(0,0,0,.16),0 3px 6px rgba(0,0,0,.23);box-shadow:0 3px 6px rgba(0,0,0,.16),0 3px 6px rgba(0,0,0,.23);color:#505050;padding:12px;position:absolute;text-align:left;visibility:hidden;width:300px;z-index:1}.wpstg--tooltiptext-backups{left:-150%;margin-left:-56px;margin-top:4px;top:100%;width:120px}.wpstg--tooltip.wpstg--exclude-rules--tooltip{border-bottom:0 solid transparent}.wpstg--tooltip.wpstg--exclude-rules--tooltip>.wpstg--tooltiptext{margin-left:-150px;margin-top:0}.wpstg--tooltip .wpstg--tooltiptext-backups:after{border:5px solid transparent;border-bottom-color:#fff;bottom:100%;content:" ";left:50%;margin-left:25px;position:absolute}.wpstg--tooltip .wpstg--tooltiptext.has-top-arrow{margin-top:6px}.wpstg--tooltip .wpstg--tooltiptext.has-top-arrow:after{border:5px solid transparent;border-bottom-color:#fff;bottom:100%;content:" ";left:50%;margin-left:-18px;position:absolute}.wpstg--snaphot-restore-table tr{line-height:12px}.wpstg-beta-notice{background-color:#b0e8b0;border-radius:3px;margin-bottom:20px;padding:7px}#wpstg-backup-name{font-size:1.875em;font-weight:600}#wpstg_select_tables_cloning option:checked{-webkit-appearance:menulist-button;background-image:linear-gradient(0deg,#1e90ff,#1e90ff)}.wpstg--btn--cancel{color:#fff;font-size:16px;height:auto;line-height:normal;margin-bottom:1.5em;padding:.5em}.wpstg--btn--cancel,.wpstg--btn--cancel:hover{background:#ff3428;border-color:#e72f24}.wpstg--process--content>.wpstg--swal2-html-container{padding:4em 2em!important}.wpstg--modal--error--logs,.wpstg--modal--process--logs{background:#fff;border:1px solid #a8a8a8;border-radius:3px;display:none;height:300px;margin-top:1em;overflow:auto;padding-left:10px;padding-top:10px;text-align:justify}.wpstg--modal--error--logs{height:auto;max-height:300px}.wpstg--modal--process--logs p{font-size:12px;white-space:nowrap}.wpstg--modal--process--logs p.wpstg--modal--process--msg--info{color:#222}.wpstg--modal--process--logs p.wpstg--modal--process--msg--debug{color:#757575}.wpstg--modal--process--title{color:#565656;margin:.25em 0}.wpstg--modal--process--subtitle{color:#565656;margin:.5em 0}.wpstg--modal--error--logs>p{color:#222;font-size:14px;text-align:left}.wpstg--modal--error--logs p,.wpstg--modal--process--logs p{margin:0 0 2px}.wpstg--modal--process--msg--critical,.wpstg--modal--process--msg--error{color:#e01e5a}.wpstg--modal--process--msg--warning{color:#ff8c00}.wpstg--modal--process--msg-found{color:#e01e5a;font-size:16px;font-weight:700}.wpstg--modal--delete{color:#565656;margin-top:8px;text-align:left}.wpstg-swal-popup .wpstg--swal2-cancel.wpstg--btn--cancel{margin-bottom:0;text-shadow:none!important}.wpstg-swal-popup .wpstg-loader{display:inline-block!important}.wpstg--modal--process--generic-problem{border-left:5px solid #e01e5a;display:none;margin:.5em 0}.wpstg--modal--process--logs--tail{background:none;border:none;color:#565656;cursor:pointer;font-size:16px}.wpstg--modal--backup--import--upload--title{color:#565656}.wpstg--modal--backup--import--configure,.wpstg--modal--backup--import--upload--container input[type=file],.wpstg--modal--backup--import--upload--status{display:none}#wpstg--backups--import--file-list{font-size:14px;font-weight:700}#wpstg--backups--import--file-list-empty{color:#e01e5a}.wpstg--modal--backup--import--filesystem label{font-size:14px}.wpstg--modal--backup--import--filesystem button{margin-bottom:20px}.wpstg--modal--backup--import--upload{color:#505050;min-height:30px;position:relative}.wpstg--modal--backup--import--upload--container{background-color:#f4fbff;border:3.5px dashed #dedede;border-radius:10px;margin:.5em;min-height:130px;padding:1em .5em;position:relative;transition:background-color .3s ease,color .3s ease}.wpstg--modal--backup--import--upload--container.wpstg--has-dragover span.wpstg--drop{display:inline-flex}.wpstg--modal--backup--import--upload--container input[type=file]{display:none}.wpstg--modal--backup--import--upload--container img{align-self:center;border:none;width:4em}.wpstg--modal--backup--import--upload--container span{margin-top:1em}.wpstg--backup--import--options>button{align-self:center;height:auto;line-height:normal;margin-top:1em;padding:1em;width:185px}.wpstg--backup--import--options{display:flex;justify-content:center;position:relative}.wpstg--backup--import--options ul{display:none}.wpstg--backup--import--options.wpstg--show-options ul{background:#25a1f0;border-color:#2188c9;border-radius:0 0 3px 3px;border-width:1px;box-sizing:border-box;display:block;margin:54px 0 0;padding:0;position:absolute;text-shadow:0 -1px 1px #006799,1px 0 1px #006799,0 1px 1px #006799,-1px 0 1px #006799;width:185px}.wpstg--backup--import--options.wpstg--show-options ul li{border-bottom:.1em solid #25a1f0;margin:0}.wpstg--backup--import--options.wpstg--show-options ul li:hover{background-color:#25a1f0}.wpstg--backup--import--options.wpstg--show-options ul li:last-child{border-bottom:none}.wpstg--backup--import--options ul li button{background:none;border:none;color:#fff;cursor:pointer;height:40px;line-height:40px;margin:0;width:100%}.wpstg--backup--import--options ul li button:hover{background-color:#259be6}.wpstg--modal--backup--import--search-replace--info{display:flex;flex-direction:row;margin:1em 0}.wpstg--modal--backup--import--info p{margin:0;text-align:left}.wpstg--modal--backup--import--search-replace--wrapper button{align-self:center}.wpstg--import--advanced-options--button{border:0;border-radius:3px;cursor:pointer;font-size:18px;text-shadow:0 -1px 1px #006799,1px 0 1px #006799,0 1px 1px #006799,-1px 0 1px #006799}.wpstg--modal--backup--import--search-replace--new{background-color:#25a1f0;color:#fff}.wpstg--modal--backup--import--search-replace--remove{background-color:#25a1f0;color:#fff;height:22px;margin-left:5px;width:22px}.wpstg--modal--backup--import--search-replace--input-group:first-child button{display:none}.wpstg--modal--backup--import--search-replace--input--container{display:flex;flex:1;flex-direction:column}.wpstg--modal--backup--import--search-replace--input-group{border-bottom:6px solid #f1f1f1;margin-bottom:10px;width:100%}.wpstg--modal--backup--import--search-replace--input-group input{border:1px solid #dedede;border-radius:3px;color:#666;display:inline-block;line-height:10px;margin-bottom:12px;min-width:250px;padding:8px;width:calc(50% - 20px)}.wpstg--modal--import--upload--process{align-items:center;color:#333;display:none;height:30px;justify-content:center;left:0;margin-bottom:20px;margin-top:20px;overflow:hidden;position:relative;text-indent:1em;top:0;white-space:nowrap;width:100%}.wpstg--modal--import--upload--progress{background:#98d452;border-radius:4px;color:#fff;height:100%;left:0;position:absolute;top:0}.wpstg--modal--import--upload--progress--title{z-index:9}.wpstg-fieldset:disabled{border-top:1px solid #fff;margin-top:20px;opacity:.8}.wpstg-fieldset{padding-left:20px}.wpstg-dark-alert{background-color:#0e86d9;color:#fff;font-weight:700;margin-top:0;padding:15px}.wpstg-dark-alert .wpstg-button--cta-red{margin-left:10px}.wpstg-form-group{align-items:center;display:block;margin-bottom:8px;width:100%}.wpstg-form-group>label{display:block;font-weight:700}.wpstg-text-field>input{display:block;line-height:1.5;width:300px}.wpstg-text-field>.wpstg-code-segment{margin-top:4px;min-width:300px}.wpstg-form-group>.wpstg-checkbox{position:relative}.wpstg-form-group>.wpstg-checkbox>input[type=checkbox]{left:150px}.wpstg-ml-4{margin-left:4px}#wpstg-advanced-settings hr{margin:20px 0}.wpstg-form-row{display:block}.wpstg-form-row input,.wpstg-form-row label{display:table-cell;margin-bottom:3px;margin-top:3px;padding-left:5px;padding-right:5px}.wpstg-form-row input{width:400px}.wpstg-form-row label{font-weight:700;white-space:nowrap;width:1px}#wpstg-db-connect-output #wpstg-db-status{width:390px}.wpstg-fs-14{font-size:14px}.wpstg-code-segment{display:block}.wpstg-form-group>.wpstg-checkbox{min-width:100%;width:100%}.wpstg-form-group>.wpstg-checkbox>input[type=checkbox]{margin-left:10px}@media only screen and (max-width:768px){.wpstg-form-group>label{min-width:auto;width:auto}.wpstg-text-field>input{width:100%}.wpstg-text-field>.wpstg-code-segment{margin-left:0;min-width:100%}.wpstg-tab-section{max-width:450px;width:calc(100vw - 60px)}}.wpstg-rounded{border-radius:3px}.wpstg-white-border{border:1px solid #fff!important}.wpstg-m-0{margin:0}.wpstg-mt-10px,.wpstg-my-10px{margin-top:10px!important}.wpstg-my-10px{margin-bottom:10px!important}.wpstg-w-100{width:100%}.wpstg-box-shadow{box-shadow:0 1px 1px 0 rgba(0,0,0,.1)}.wpstg-float-left{float:left}.wpstg-bold-text{font-weight:700}.wpstg-warning.notice{border-left:4px solid #ffba00}.wpstg-confirmation-label{background-color:#5b9dd9;border-radius:3px;color:#fff;padding:2px}.wpstg-my-6px{margin-bottom:6px;margin-top:6px}.wpstg-mb-10px{margin-bottom:10px}.wpstg-clear-both{clear:both}.wpstg-font-italic{font-style:italic}.wpstg-mt-20px{margin-top:20px}.wpstg-welcome-container{border:2px solid #fff;margin-bottom:20px;padding:20px}.wpstg-ml-30px{margin-left:30px}.wpstg-text-center{text-align:center}.wpstg-feedback-link{text-decoration:none}.wpstg-feedback-span{display:block;margin-bottom:3px}#wpstg-confirm-backup-restore-data{margin:40px;text-align:left}#wpstg-confirm-backup-restore-wrapper{margin:0 30px 30px}#wpstg-confirm-backup-restore-wrapper h3{color:#e01e5a}#wpstg-progress-backup,#wpstg-progress-db{background-color:#3fa5ee}#wpstg-progress-files.wpstg-pro,#wpstg-progress-sr{background-color:#3c9ee4}#wpstg-progress-data,#wpstg-progress-dirs{background-color:#3a96d7}#wpstg-progress-files:not(.wpstg-pro),#wpstg-progress-finishing{background-color:#378cc9}.wpstg-issue-resubmit-confirmation.wpstg--swal2-container,.wpstg-swal2-container.wpstg--swal2-container{z-index:10500}.wpstg-swal2-container.wpstg-swal2-loading .wpstg--swal2-actions,.wpstg-swal2-container.wpstg-swal2-loading .wpstg--swal2-header{display:none}body.toplevel_page_wpstg_backup .wpstg--swal2-container .wpstg--swal2-content,body.toplevel_page_wpstg_clone .wpstg--swal2-container .wpstg--swal2-content{z-index:2}.toplevel_page_wpstg_clone #swal2-content h2{color:#565656}.toplevel_page_wpstg_clone #swal2-content{line-height:1.5em}div#exportUploadsWithoutDatabaseWarning{background-color:#fafafa;border:1px solid #e3e3e3;border-radius:5px;font-size:.9rem;font-style:italic;margin:10px;padding:10px;text-align:center}.wpstg-advanced-options-dropdown-wrapper{display:none;margin-top:20px}.wpstg--modal--backup--import--search-replace--wrapper{margin-top:20px;text-align:left}.wpstg--modal--backup--import--search-replace--new--wrapper{text-align:center}.wpstg-import-backup-contains li{display:inline-block}.wpstg-import-backup-contains li .wpstg-backups-contains{background-color:#e3e3e3;border:1px solid #c2c2c2;border-radius:3px;color:#979797;font-size:17px;height:17px;width:17px}.wpstg-import-backup-contains.wpstg-listing-single-backup li .wpstg-backups-contains{background-color:#fff;border:1px solid #c2c2c2;padding:2px}.wpstg-import-backup-contains.wpstg-listing-single-backup li .wpstg-backups-contains>.wpstg--dashicons{filter:invert(50%)}.wpstg-import-backup-contains .wpstg--tooltiptext{font-size:x-small;left:-25px;padding:5px;text-align:center;width:50px}.wpstg-import-backup-contains-title,ul.wpstg-import-backup-contains{display:inline-block}.wpstg-import-backup-name{display:inline-block;font-weight:700}.wpstg-backup-more-info-toggle{cursor:pointer;display:inline-block;font-size:x-small;font-style:italic}.wpstg-backup-more-info-toggle::selection{background:none}ul.wpstg-import-backup-more-info{background-color:#f6f6f6;border:1px solid #878787;border-radius:3px;cursor:pointer;font-size:14px;margin-bottom:30px;margin-top:10px;padding:7px;text-align:left}ul.wpstg-import-backup-more-info:hover{background-color:#def2ff;border:1px solid #25a1f0}ul.wpstg-import-backup-more-info li{height:20px}.wpstg-backup-list{max-width:800px}.wpstg-backup-list h3{color:#3e3e3e}.wpstg-backup-list ul ul{margin-block-end:1em;margin-block-start:1em}.wpstg-push-confirmation-message{font-size:15px;text-align:justify}.wpstg-settings-row{padding-bottom:10px;padding-top:10px}.wpstg-settings-title{font-weight:600}.wpstg-settings-form-group{align-items:center;display:flex}.wpstg-settings-form-group>.wpstg-settings-message{margin:7px 0 0;padding:0;width:30%}.wpstg-excluded-filters-container{margin-bottom:10px;margin-top:10px;max-width:100%;padding:0;width:100%}.wpstg-excluded-filters-container>table{border-collapse:collapse;border-color:transparent;width:100%}.wpstg-excluded-filters-container td{height:20px;padding-bottom:4px;padding-top:4px}.wpstg-excluded-filters-container h4{margin:0}.wpstg-exclude-filters-foot{display:flex;justify-content:flex-start;padding:0}.wpstg-exclude-filter-dropdown>button:hover{background:#135e96;border:1px solid #135e96}.wpstg-exclude-filter-dropdown>.wpstg-dropdown-menu{width:128px}.wpstg-remove-exclude-rule{background-color:#e01e5a;border:1px solid #e01e5a;border-radius:10px;box-shadow:none;color:#fff!important;cursor:pointer;display:inline-flex;font-size:24px;font-weight:400;height:20px;justify-content:center;line-height:.7;margin-top:5px;outline:none;padding:0;width:20px}.wpstg-remove-exclude-rule:hover{background-color:#e01e5a;border-color:#e01e5a}.wpstg-code-block{background:#f8f8f8;border-radius:2px;font-size:1.2em;margin-top:4px}.wpstg-rule-info{background:#f8f8f8!important}code.wpstg-code{background:#fff;border:1px solid #aaa;color:#e01e5a;display:inline-block;font-size:11px;margin-bottom:1px;padding:2px 4px}.wpstg-exclusion-rule-info{align-items:center;background-color:#ffc107;border:1px solid #ffc107;border-radius:7px;box-shadow:none;color:#fff!important;display:inline-flex;font-size:14px;font-weight:400;height:14px;justify-content:center;outline:none;padding:0;vertical-align:middle;width:14px}.wpstg-exclusion-rule-info:hover{background-color:#ffba0c;border:1px solid #ffba0c}.wpstg-exclude-rule-input{background-color:#fff;border:1px solid #bbb;border-radius:0!important;box-shadow:none;color:#222;display:inline-block;font-size:12px!important;font-weight:400;line-height:1.5;margin-left:4px;margin-top:4px;min-height:24px!important;outline:none!important;padding:2px 6px;transition:all .3s cubic-bezier(.25,.8,.25,1);vertical-align:baseline!important;width:135px}.wpstg-excluded-filters-container tbody>tr:last-child .wpstg-exclude-rule-input{margin-bottom:4px}.wpstg-exclude-rule-input:hover{border:1px solid #999}.wpstg-exclude-rule-input:focus{border:1px solid #25a0f1!important;box-shadow:0 1px 3px rgba(0,0,0,.12),0 1px 2px rgba(0,0,0,.24)!important}.wpstg-file-size-exclude-select,.wpstg-path-exclude-select{width:135px}.wpstg-file-size-exclude-select-small{width:52px}.wpstg-file-size-exclude-input{width:75px}.wpstg-staging-option-title{margin:15px 0 0}.wpstg-swal-push-container.wpstg--swal2-container{z-index:9995}#wpstg-scanning-files{padding-bottom:5px}#wpstg-scanning-db.wpstg-tab-section,#wpstg-scanning-files.wpstg-tab-section{padding-top:10px}.wpstg-reset-excludes-container{margin:10px 0}.wpstg-swal2-ajax-loader{align-items:center;display:flex;height:150px;justify-content:center;overflow:hidden;width:100%}@keyframes wpstg-loading-icon-anim{0%{transform:rotate(0)}to{transform:rotate(1turn)}}.wpstg-swal2-ajax-loader>img{animation:wpstg-loading-icon-anim 1s linear infinite;-webkit-animation:wpstg-loading-icon-anim 1s linear infinite;height:64px;width:64px}.wpstg-swal2-container .wpstg-tab-section{width:auto!important}#wpstg-no-staging-site-results{margin-top:10px;max-width:375px}li#wpstg-backup-no-results{max-width:500px}#wpstg-no-staging-site-results div,li#wpstg-backup-no-results div{display:inline-block;text-align:center}#wpstg-no-staging-site-results .wpstg--dashicons,li#wpstg-backup-no-results .wpstg--dashicons{filter:invert(50%);margin-top:1px;position:absolute}#wpstg-no-staging-site-results .no-staging-site-found-text,li#wpstg-backup-no-results .no-backups-found-text{color:#5d5d5d;margin-left:20px}@media only screen and (max-width:680px){#wpstg-no-staging-site-results div,li#wpstg-backup-no-results div{width:100%}}#wpstg--modal--backup--download-inner p.wpstg-download-modal-text{color:#565656;font-size:16px}#wpstg--modal--backup--download-inner h2{color:#565656}.wpstg-backup-restore-contains-database,.wpstg-backup-restore-contains-files{display:none}.wpstg-green-button{background:#8bc34a;border:1px solid #78a93f;color:#fff;text-shadow:0 -1px 1px #78a93f,1px 0 1px #78a93f,0 1px 1px #40c921,-1px 0 1px #78a93f}.wpstg-green-button:hover{background:#78a93f}.wpstg-is-dir-loading{display:none;margin-left:8px;margin-top:-2px;position:absolute}.wpstg-ml-8px{margin-left:8px}.wpstg-mb-8px{margin-bottom:8px}.wpstg-btn-danger{background-color:#e01e5a;border:1px solid #e01e5a;color:#fff;text-shadow:none}.wpstg-btn-danger:hover{background:#c0194d;box-shadow:0 1px 4px rgba(0,0,0,.3)}.wpstg-swal2-container.wpstg-swal2-loading>.wpstg--swal2-modal{height:200px}.wpstg-reset-confirmation.wpstg-swal2-container:not(.wpstg-swal2-loading)>.wpstg--swal2-modal{max-width:480px}.wpstg-reset-confirmation.wpstg-swal2-container .wpstg--swal2-header{display:none}.wpstg-reset-confirmation.wpstg-swal2-container .wpstg--swal2-content{height:auto}.wpstg-reset-confirmation.wpstg-swal2-container>.wpstg--swal2-modal>.wpstg--swal2-content .wpstg-tabs-wrapper{height:auto!important;overflow-y:auto}.wpstg-reset-confirmation.wpstg-swal2-container>.wpstg--swal2-modal>.wpstg--swal2-content{font-size:13px}.wpstg-reset-confirmation.wpstg-swal2-container>.wpstg--swal2-modal>.wpstg--swal2-content .wpstg-dir{margin-bottom:4px}.wpstg-reset-confirmation.wpstg-swal2-container>.wpstg--swal2-modal>.wpstg--swal2-content .wpstg-subdir{margin-top:4px}.wpstg-reset-confirmation.wpstg-swal2-container.has-collapsible-open .wpstg--swal2-modal{height:calc(100vh - 70px)}.wpstg-reset-confirmation.wpstg-swal2-container.has-collapsible-open>.wpstg--swal2-modal>.wpstg--swal2-content .wpstg-tabs-wrapper{height:calc(100vh - 350px)!important}.wpstg--swal2-actions.wpstg--modal--actions>button{font-weight:500;margin-left:4px;margin-right:4px;min-width:80px;text-shadow:none;text-transform:uppercase}.wpstg-swal-popup{max-width:1200px!important}.wpstg-swal-popup.wpstg-push-finished .wpstg--swal2-title{color:#a8a8a8}.wpstg-swal-popup.wpstg-push-finished .wpstg--swal2-content{color:#a8a8a8;margin-top:8px}.wpstg-swal-popup .wpstg--swal2-progress-steps .wpstg--swal2-progress-step,.wpstg-swal-popup .wpstg--swal2-progress-steps .wpstg--swal2-progress-step-line,.wpstg-swal-popup .wpstg--swal2-progress-steps .wpstg--swal2-progress-step.wpstg--swal2-active-progress-step{background:#25a1f0}.wpstg-swal-popup .wpstg--swal2-progress-steps .wpstg--swal2-progress-step-line{width:2.75em}.wpstg--dashicons{height:16px;width:16px}.wpstg--dashicons.wpstg-dashicons-grey{filter:invert(20%)}.wpstg--dashicons.wpstg-dashicons-19{height:19px;width:19px}.wpstg--dashicons.wpstg-dashicons-21{height:21px;width:21px}#wpstg--tab--backup #wpstg-step-1{align-items:center;display:flex}#wpstg--tab--backup #wpstg-step-1 .wpstg--tooltip,.wpstg-advanced-options .wpstg--tooltip{align-items:center;border-bottom:0 solid transparent;display:inline-flex}#wpstg--tab--backup #wpstg-step-1 .wpstg--tooltip{align-items:center;border-bottom:0 solid transparent;display:flex}.wpstg--tooltip .wpstg--tooltiptext-backups:after{left:calc(20% + 2px)}.wpstg-listing-single-backup .wpstg--dashicons{height:17px;width:17px}.wpstg-100-width{width:100px}.wpstg-caret{border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid;cursor:pointer;display:inline-block;height:0;margin-left:2px;transition:transform .2s;vertical-align:middle;width:0}.wpstg-caret.wpstg-caret-up{transform:rotate(-180deg)}.wpstg-advanced-options-site label{display:block;font-size:16px;margin:.5em 0}#wpstg-confirm-backup-restore-data{font-size:18px;margin:30px 0 0}body.toplevel_page_wpstg_backup .wpstg--swal2-container.wpstg--swal2-backdrop-show,body.toplevel_page_wpstg_clone .wpstg--swal2-container.wpstg--swal2-backdrop-show{background:rgba(0,0,0,.6);z-index:9995}.wpstg-swal-popup.wpstg--swal2-popup{border-radius:8px;color:#565656;font-family:Verdana,Geneva,Tahoma,sans-serif;padding:24px;z-index:9999}.wpstg-swal-popup .wpstg--swal2-title{color:#565656;font-size:22px}.wpstg-swal-popup.wpstg--swal2-popup:not(.centered-modal) .wpstg--swal2-title{align-self:flex-start;margin-bottom:0;text-align:left}.wpstg-swal-popup .wpstg--swal2-close{right:8px;top:8px;z-index:5}.wpstg-swal-popup .wpstg--swal2-close:focus{outline:none}.wpstg-swal-popup.wpstg--swal2-popup:not(.centered-modal) .wpstg--swal2-actions{justify-content:flex-end}.wpstg-swal-popup .wpstg--swal2-actions>button{border:0;border-radius:4px;font-size:15px;font-weight:900;height:40px;line-height:normal;min-width:100px;padding:10px 12px;text-shadow:none;text-transform:capitalize}.wpstg-swal-popup.wpstg--swal2-popup:not(.centered-modal) .wpstg--swal2-actions>button{margin-left:8px}.wpstg-swal-popup .wpstg--swal2-actions>button.wpstg--swal2-cancel{background:#fff;border:1px solid rgba(29,28,29,.3);color:#1d1c1d;font-weight:500;text-shadow:none;width:100px}.wpstg-swal-popup .wpstg--swal2-actions>button:hover{box-shadow:0 1px 3px 0 rgba(0 0 0 .1)}.wpstg-swal-popup .wpstg--swal2-actions>button.wpstg--swal2-cancel:hover{background:rgba(28,29,28,.04)}#wpstg-backup-name-input{font-size:18px;height:44px}.wpstg-restore-finished-container .wpstg--swal2-title{color:#565656!important}.wpstg-restore-finished-container .wpstg--swal2-content{color:#a8a8a8;margin-top:20px}.wpstg-linear-loader>span[class*=wpstg-linear-loader-item]{animation:wpstg_linear_loader 3s infinite;animation-fill-mode:both;animation-timing-function:cubic-bezier(.03,.615,.995,.415);background:#333;border-radius:100%;display:inline-block;height:6px;margin:12px 2px;width:6px}.wpstg-linear-loader>span.wpstg-linear-loader-item:first-child{animation-delay:1s}.wpstg-linear-loader>span.wpstg-linear-loader-item:nth-child(2){animation-delay:.8s}.wpstg-linear-loader>span.wpstg-linear-loader-item:nth-child(3){animation-delay:.6s}.wpstg-linear-loader>span.wpstg-linear-loader-item:nth-child(4){animation-delay:.4s}.wpstg-linear-loader>span.wpstg-linear-loader-item:nth-child(5){animation-delay:.2s}.wpstg-linear-loader>span.wpstg-linear-loader-item:nth-child(6){animation-delay:0s}@keyframes wpstg_linear_loader{0%{opacity:0;transform:translateX(-30px)}25%{opacity:1}50%{opacity:0;transform:translateX(30px)}to{opacity:0}}.wpstg--modal--backup--import--upload--content{margin:1em auto;padding:.75em}.wpstg--modal--backup--import--upload--content .wpstg-linear-loader{display:none}#wpstg-multisite-disabled .wpstg-clone{width:355px}#wpstg-free-version-backups .wpstg-clone{text-align:center}#wpstg-free-version-backups .wpstg-clone p{font-size:16px}.wpstg-staging-info li .backup-notes{word-break:break-word}.wpstg--modal--import--upload--progress--title small{font-weight:400}#wpstg-report-issue-wrapper{position:relative}#wpstg-report-issue-wrapper .arrow-up{border-bottom:8px solid #fff;border-left:8px solid transparent;border-right:8px solid transparent;height:0;position:absolute;right:40px;top:-8px;width:0}.notice{margin:10px 20px 0 2px}.wpstg--notice{box-shadow:0 1px 1px rgba(0,0,0,.04);margin:20px 20px 20px 0;padding:1px 12px}.wpstg--error a:hover{color:#eee}.wpstg--error,.wpstg--error a{background:#e01e5a;color:#fff}.wpstg-button{border-radius:2px;cursor:pointer;display:inline-block;font-weight:500;outline:0;padding:2px 10px;text-decoration:none;text-transform:uppercase;transition:background-color .1s ease-in}.wpstg-button.wpstg-save{background-color:#1687a7;color:#fff}.wpstg-button.wpstg-save:hover{background-color:#276678}.wpstg-button.wpstg-button-light{animation:background-color .3s;background-color:#f8f8f8;border:1px solid #eee;color:#333}.wpstg-button.wpstg-button-light:hover{background-color:#e0e0e0;border:1px solid #e0e0e0}.wpstg-buttons .spinner{float:none;margin:0 0 0 5px}.wpstg-button.danger{background-color:#e01e5a;border-color:transparent;border-radius:2px;color:#fff;display:inline-block;text-align:center;text-decoration:none;text-transform:inherit}.wpstg-button.danger:hover{background-color:#c0194d}.wpstg-button--big{border-radius:3px;color:#fff;display:inline-block;font-size:16px;margin-top:20px;min-width:170px;padding:10px;text-align:center;text-decoration:none}.wpstg-button--primary{-webkit-appearance:none;border:1px solid rgba(29,28,29,.3);border-radius:2px;box-sizing:border-box;color:#171717;cursor:pointer;display:inline-block;font-size:13px;line-height:2.15384615;margin:0;min-height:30px;padding:0 10px;text-decoration:none;white-space:nowrap}.wpstg-button--primary:hover{background:rgba(28,29,28,.04);color:#000}.wpstg-button--secondary{background-color:transparent;border:1px solid rgba(29,28,29,.3);border-radius:2px;color:#95a5a6;cursor:pointer;display:inline-block;font-weight:500;outline:0;padding:4px 10px 2px;text-decoration:none;transition:background-color .1s ease-in}.wpstg-button--red{background-color:#e01e5a;border-color:#e01e5a;color:#fff}.wpstg-button--red:hover{background-color:#d02358;border-color:#e0255f;color:#fff}.wpstg-button--cta-red{background-color:#fe008f;border-color:#e01e5a;color:#fff}.wpstg-button--cta-red:hover{background-color:#f31391;border-color:#e0255f;color:#fff}.wpstg-button--blue{background-color:#25a0f1;border-color:#25a0f1;color:#fff}.wpstg-button--blue:hover{background-color:#259be6;border-color:#259be6;color:#fff}#wpstg-button-backup-upgrade{font-size:16px}.wpstg-staging-status{color:#e01e5a}#wpstg-push-changes,#wpstg-save-clone-data,#wpstg-start-updating{margin-left:5px}input.wpstg-textbox{border:1px solid #aaa;border-radius:.25rem;font-size:14px;padding:.25rem .5rem}input.wpstg-textbox:focus{border-color:#259be6;-webkit-box-shadow:0 0 0 .1rem hsla(0,0%,86.7%,.35);box-shadow:0 0 0 .1rem hsla(0,0%,86.7%,.35);outline:0}input.wpstg-textbox::placeholder{color:#888}.wpstg--advance-settings--checkbox{align-items:center;display:flex}.wpstg--advance-settings--checkbox>label{display:inline-block;font-size:14px;font-weight:bolder;width:165px}.wpstg--advance-settings--checkbox>.wpstg--tooltip{border-bottom:0 solid transparent;display:inline-block;margin-left:5px;margin-top:5px;position:relative}.wpstg--advance-settings--checkbox>.wpstg--tooltip>.wpstg--tooltiptext{left:-150px;top:18px}div#wpstg-restore-wait{align-items:center;background:#fff;display:none;flex-direction:column;height:100vh;justify-content:center;left:0;position:fixed;text-align:center;top:0;width:100vw;z-index:99999}div#wpstg-restore-wait .wpstg-title{font-weight:700}div#wpstg-restore-wait div{font-size:16px;margin-top:12px}.resumable-browse{cursor:pointer}.resumable-browse a{text-decoration:underline}.wpstg-upload-text{font-weight:600}.wpstg--modal--backup--import--upload--container.dragover{background-color:#94dc96;color:#fff;transition:background-color .7s}.wpstg--modal--backup--import--upload--container.dragover *{pointer-events:none}.wpstg--modal--backup--import--upload--container.dragover .wpstg-upload-text{display:none}.wpstg--modal--backup--import--upload--container.dragover .wpstg-dragover-text{display:block}.wpstg--modal--backup--import--upload--container .wpstg-dragover-text{display:none}#wpstg-invalid-license-message,#wpstg-invalid-license-message a{color:#e01e5a;font-weight:500;margin-left:6px}#wpstg-sidebar--banner{max-width:200px}@media screen and (max-width:1234px){.wpstg-h2{font-size:24px}#wpstg-welcome li{font-size:14px}}.wpstg-exclamation{background-color:#e01e5a;border-radius:100%;color:#fff;display:inline-block;font-weight:700;height:20px;margin:6px;text-align:center;width:20px}.wpstg--tab--contents{padding-top:1px}.wpstg-swal-show.wpstg--swal2-show{-webkit-animation:wpstg-swal-show .2s!important;animation:wpstg-swal-show .2s!important}@-webkit-keyframes wpstg-swal-show{0%{transform:scale(.3)}to{transform:scale(1)}}@keyframes wpstg-swal-show{0%{transform:scale(.3)}to{transform:scale(1)}}
2
  /*# sourceMappingURL=wpstg-admin.min.css.map */
1
+ .wpstg--violet{color:#9d37ae}.wpstg-border--violet{border:1px solid #9d37ae}.wpstg--red{color:#e01e5a}.wpstg-cta--red{color:#fe008f}.wpstg--blue{color:#24a1f0}.wpstg--darkblue{color:#0e86d9}.wpstg--green{color:#83c11f}.wpstg--grey{color:#3e3e3e}.wpstg--darkgrey{color:#1b1b1b}body.toplevel_page_wpstg_clone,body.wp-staging-pro_page_wpstg-license,body.wp-staging-pro_page_wpstg-settings,body.wp-staging-pro_page_wpstg-tools,body.wp-staging-pro_page_wpstg_backup{background-color:#f3f5f7}#wpstg-tab-container ul{background:#f1f1f1;float:left;list-style:none;margin:0;padding:0}#wpstg-tab-container ul li:first-child.selected-tab{border-top:none}#wpstg-tab-container ul li a.selected-tab{font-weight:700;text-decoration:none}#wpstg-tab-container .row{padding-bottom:12px;padding-top:10px}.wpstg-tabs-container .nav-tab-wrapper{padding:0}#wpstg-tab-container .row label strong,#wpstg-tab-container .row strong{font-weight:700}.wpstg-tabs a{padding:5px}#wpstg-tab-container>ul>li.wpstg-tabs.active{background-color:#fff}#wpstg_settingsgeneral_header .row:nth-child(3),#wpstg_settingsgeneral_header .row:nth-child(4){display:none}#wpstg-tab-container .wpstg-settings-panel{overflow:auto;padding:0 20px 20px}#wpstg-tab-container .wpstg-form-table th{color:#484848;font-size:14px;font-weight:700;line-height:1.3;padding:20px 10px 20px 0;text-align:left;vertical-align:top;width:30%}#wpstg-tab-container .wpstg-form-table tr{border-bottom:1px solid #e7e7e7}#wpstg-tab-container span.description{color:#484848;display:block;font-size:13px;font-style:normal;font-weight:400;margin-top:7px}#wpstg-tab-container .col-title{color:#484848}@media only screen and (max-width:680px){#wpstg-tab-container ul{float:none}#wpstg-tab-container .wpstg-form-table tr>th{width:100%}#wpstg-tab-container span.description{font-size:14px}#wpstg-tab-container .wpstg-form-table tr>td,#wpstg-tab-container .wpstg-form-table tr>th{padding:10px}}#wpstg-tab-container ul li{margin-bottom:0}#wpstg-tab-container ul li a{border-bottom:1px solid #e7e7e7;border-left-style:solid;border-left-width:0;border-right-style:solid;border-right-width:0;border-top:1px solid #fff;color:#0097df;display:block;font-weight:700;padding:10px 4px 10px 14px;text-decoration:none}#wpstg-tab-container ul li a:hover{background-color:#e5e5e5;color:#777}.wpstg-logo{display:block;float:left;font-size:16px;padding-top:20px;width:220px}.wpstg-logo img{max-width:212px}.wpstg-version{color:#9b9b9b;display:block;padding-top:40px}.wpstg_admin .nav-tab{color:#3c3c3c}#wpstg-tab-container table tbody tr:first-child>th>div{font-size:20px}#wpstg-clonepage-wrapper{margin-bottom:20px;width:98%}@media screen and (min-width:1090px){#wpstg-clonepage-wrapper{float:left;margin-bottom:20px}}#wpstg-steps{margin-left:20px;margin-top:0}#wpstg-steps li{color:#444;float:left;line-height:20px;padding-right:10px}.wpstg-step-num{border:1px solid #3e3e3e;border-radius:3px;display:inline-block;height:20px;margin-right:5px;text-align:center;width:20px}.wpstg-current-step{font-weight:700}.wpstg-current-step .wpstg-step-num{background:#3e3e3e;color:#eee}.wpstg-box{margin:10px 0;overflow:hidden;padding:10px}.wpstg-box,.wpstg-clone{position:relative;transition:border-color .2s ease-in-out}.wpstg-clone{background-color:#fff;border-radius:3px;box-shadow:0 0 1px rgba(0,0,0,.125),0 1px 3px rgba(0,0,0,.1);color:#3e3e3e;margin-bottom:10px;padding:16px}.wpstg-clone.active{border-color:#1d94cf}.wpstg-clone-header{align-items:center;display:flex;justify-content:space-between}.wpstg-clone-title{color:#3e3e3e;display:inline-block;font-size:15px;font-weight:700;max-width:300px;text-decoration:none}.wpstg-clone-title:hover{color:#111}.wpstg-clone-actions{display:flex;margin-top:5px}.wpstg-clone-actions .wpstg-dropdown-toggler{background:#25a1f0;border-radius:2px;box-shadow:0 0 1px rgba(0,0,0,.125),0 1px 3px rgba(0,0,0,.2);color:#fff;font-size:14px;padding:6px 10px;text-decoration:none}.wpstg-clone-actions .wpstg-dropdown-toggler:hover{background:#002648;color:#fff}.wpstg-dropdown{position:relative}.wpstg-dropdown>.wpstg-dropdown-menu{background:#fff;border-radius:2px;box-shadow:0 0 1px rgba(0,0,0,.125),0 1px 3px rgba(0,0,0,.2);display:none;flex-direction:column;padding:8px;position:absolute;right:0;top:calc(100% + 4px);width:100px;z-index:1000}.wpstg-dropdown>.wpstg-dropdown-menu.wpstg-menu-dropup{bottom:100%;top:auto;transform:translate3d(0,-3px,0)}.wpstg-dropdown>.wpstg-dropdown-menu.shown{display:flex}.wpstg-clone-action,.wpstg-dropdown-action{border-bottom:1px solid #f3f3f3;border-radius:3px;color:#3e3e3e;padding:6px 8px;position:relative;text-decoration:none;transition:color .2s ease-in-out}.wpstg-clone-action:hover,.wpstg-dropdown-action:hover{background:rgba(0,0,0,.05)}.wpstg-dropdown-action{background:transparent;border:0 solid #000;box-shadow:none;color:#3e3e3e;outline:none}.wpstg-remove-clone:hover{color:#e01e5a}.wpstg-clone-action:last-child{border:none}.wpstg-clone:hover .wpstg-clone-action{display:inline-block}#wpstg-show-error-details:focus,#wpstg-workflow .wpstg-clone-action{box-shadow:none;outline:none}.wpstg-link-btn{background:#45a1c9;color:#fff;display:inline-block;padding:5px 10px;text-decoration:none;transition:all .2s ease-in-out;vertical-align:baseline}.wpstg-link-btn:focus,.wpstg-link-btn:hover{box-shadow:none;color:#fff;outline:none}#wpstg-workflow .wpstg-link-btn:active{vertical-align:baseline}.wpstg-link-btn[disabled]{background:#777!important;border-color:#555!important;pointer-events:none}#wpstg-cancel-cloning,#wpstg-cancel-cloning-update{margin-top:5px}#wpstg-cancel-cloning.success{background:#64dd58;border-color:#54bd4a}#wpstg-error-details,#wpstg-error-wrapper{clear:both;display:none;font-size:13px;padding-top:10px}#wpstg-show-error-details{color:#555;display:inline-block;margin-left:5px;text-decoration:none;transition:color .2s ease-in-out}#wpstg-show-error-details:hover{color:#1d94cf}#wpstg-error-details{border-left:5px solid #e01e5a;padding:10px;width:500px}#wpstg-try-again{display:none}#wpstg-home-link{float:right}.wpstg-loader{content:url(../../img/loading.gif);display:none;margin-top:10px}.wpstg-loader.wpstg-finished{background-color:#00c89a;border-radius:3px;color:#fff;content:"Finished";display:block;margin-top:0;padding:2px 10px}#wpstg-workflow{clear:both;float:left;max-width:800px;min-height:380px;min-width:500px;padding-bottom:20px;padding-right:20px;padding-top:20px;position:relative}#wpstg-sidebar{display:block;float:left;margin-left:10px;max-width:400px}#wpstg-removing-clone.loading:after,#wpstg-workflow.loading:after{background:hsla(0,0%,100%,.7);content:"Loading... may take a while for huge websites";display:block;font-size:20px;height:100%;left:0;padding-top:100px;position:absolute;text-align:center;top:0;width:100%;z-index:99}#wpstg-removing-clone.loading:after{content:"REMOVING"!important}#wpstg-existing-clones,#wpstg-removing-clone{position:relative}#wpstg-existing-clones h3{color:#3e3e3e}#wpstg-removing-clone .wpstg-tab-section{display:block}.wpstg-progress-bar{background-color:#d6d8d7;height:27px;max-width:900px;padding:0}.wpstg-progress{background:#3fa5ee;float:left;overflow:hidden}.wpstg-progress,.wpstg-progress-files{color:#fff;height:100%;line-height:25px;text-align:center;transition:width .6s ease;width:0}.wpstg-progress-files{background:#16b4f0}#wpstg-clone-path.wpstg-error-input,#wpstg-new-clone-id.wpstg-error-input{border:1px solid #e01e5a;box-shadow:0 0 2px rgba(255,66,53,.8)}#wpstg-new-clone-id{margin-left:15px;max-width:100%;width:450px}#wpstg-new-clone{background:#25a1f0;border-color:#2188c9}#wpstg-new-clone:hover{background:#259be6;border-color:#2188c9}#wpstg-clone-path{margin-left:10px;width:350px}.wpstg-error-msg{color:#e01e5a}#wpstg-clone-id-error{background-color:#f0f8ff;display:block;margin:20px;padding:10px}#wpstg-start-cloning+.wpstg-error-msg{display:block;margin-top:5px}.wpstg-size-info{color:#999;font-weight:400;left:2px;position:relative}.wpstg-db-table .wpstg-size-info{top:2px}.wpstg-db-table:hover{background-color:#f0f8ff}#wpstg-workflow #wpstg-start-cloning{margin-left:5px;vertical-align:baseline}.wpstg-tabs-wrapper{margin:10px 0;max-width:640px}#wpstg-path-wrapper{border-bottom:2px dashed #ccc;margin-bottom:10px;padding-bottom:10px}.wpstg-tab-section{border-bottom:1px solid #ddd;border-left:none;border-right:none;display:none;padding:0 36px;width:calc(100% - 72px)}.wpstg-tab-section:after{clear:both;content:"";display:block}.wpstg-tab-header{border-bottom:1px solid #ddd;border-left:none;border-right:none;color:#444;display:block;font-size:16px;font-weight:700;padding:10px;text-decoration:none}.wpstg-tab-triangle{animation:transform .5s;border-bottom:5px solid transparent;border-left:10px solid;border-top:5px solid transparent;cursor:pointer;display:inline-block;height:0;margin-right:12px;margin-top:-3px;transition:transform .2s;vertical-align:middle;width:0}.wpstg-tab-triangle.wpstg-no-icon{border-bottom:0 solid;border-left:0 solid;border-top:0 solid;height:auto;margin-right:2px;vertical-align:auto;width:auto}.wpstg-tab-triangle.wpstg-rotate-90{transform:rotate(90deg)}.wpstg-tab-header:focus{box-shadow:none;color:#444;outline:none}#wpstg-large-files{border:1px dashed #ccc;display:none;font-size:12px;margin-top:20px;padding:10px;position:relative}#wpstg-large-files h3{background:#fff;left:5px;margin:0;padding:0 5px;position:absolute;top:-10px}.wpstg-subdir{display:none;margin-left:20px}.wpstg-subdir.wpstg-push{display:block;margin-left:20px}.wpstg-dir a.disabled{color:#888;cursor:default;text-decoration:none}.wpstg-check-subdirs{display:inline-block;margin-left:10px}.wpstg-notice-alert{background-color:#e01e5a;color:#fff}.wpstg-notice--white,.wpstg-notice-alert{display:block;margin-top:10px;max-width:600px;padding:20px}.wpstg-notice--white{background-color:#fff}.wpstg-notice-alert a,.wpstg-notice-alert h3{color:#fff}.wpstg-header{border-bottom:1px solid #dfdfdf;clear:both;font-size:19px;font-weight:400;line-height:1.6em;padding-top:10px}#wpstg-clone-label{font-size:14px;font-weight:700}.wpstg-log-details{background-color:#000;border:1px solid #fff;color:silver;font-family:monospace;font-size:12px;height:300px;line-height:15px;margin-top:15px;max-width:650px;overflow:scroll;padding:3px;white-space:nowrap}#wpstg-finished-result{display:none}#wpstg-remove-cloning{background:#ff3428;border-color:#e72f24;margin-top:5px}#wpstg-success-notice{background-color:#fff;border:1px solid #ccc;margin-top:20px;max-width:900px;padding:10px}.wpstg_beta_notice{margin-bottom:20px}.wpstg-sysinfo{height:700px;width:700px}.wpstg-form-table .col-title label{font-weight:600}.wpstg-form-table td:first-child{width:30%}.wpstg-share-button-container{margin:5px 0}.wpstg-share-button-container p{margin:0 0 10px}.wpstg-share-button{display:inline-block}.wpstg-share-button a{text-decoration:none}.wpstg-share-button .wpstg-share{-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px;color:#fff;display:inline;font-family:sans-serif;font-size:12px;font-weight:700;padding:4px 8px;text-align:center;text-decoration:none}.wpstg-share-button-twitter .wpstg-share{background-color:#00abf0}.wpstg-share-button-facebook .wpstg-share{background-color:#3b5998}.wpstg-share-button-googleplus .wpstg-share{background-color:#f53424}.wpstg-share-button-facebook .share:active,.wpstg-share-button-googleplus .share:active,.wpstg-share-button-twitter .share:active{background-color:#353535}#wpstg-check-space{margin-left:8px}#wpstg-welcome li{font-size:18px;line-height:29px;list-style:none!important;padding-left:23px;position:relative}#wpstg-welcome{background-color:#fff;margin-right:20px;margin-top:20px}.wpstg-heading-pro{font-weight:700}.wpstg-h2{font-size:30px;line-height:2.5rem;margin-bottom:1.2rem;margin-top:0}#wpstg-welcome li:before{background:url(data:image/svg+xml;charset=utf8,%3Csvg%20width%3D%221792%22%20height%3D%221792%22%20viewBox%3D%220%200%201792%201792%22%20xmlns%3D%22http%3A%2F%2Fwww%2Ew3%2Eorg%2F2000%2Fsvg%22%3E%3Cpath%20fill%3D%22%2377B227%22%20d%3D%22M1671%20566q0%2040%2D28%2068l%2D724%20724%2D136%20136q%2D28%2028%2D68%2028t%2D68%2D28l%2D136%2D136%2D362%2D362q%2D28%2D28%2D28%2D68t28%2D68l136%2D136q28%2D28%2068%2D28t68%2028l294%20295%20656%2D657q28%2D28%2068%2D28t68%2028l136%20136q28%2028%2028%2068z%22%2F%3E%3C%2Fsvg%3E) left .4em no-repeat;background-size:contain;color:#77b227;content:"";height:100%;left:0;position:absolute;top:-2px;width:1em}.wpstg-h1{font-size:2.5em;letter-spacing:normal;line-height:3.68rem;margin-bottom:1.35rem}.wpstg--swal2-content h1{color:#444}#wpstg-welcome h2{margin:0 0 15px}#wpstg-welcome .wpstg-footer{clear:both;font-style:italic;margin-top:20px}#wpstg-footer{clear:both;margin-right:10px;margin-top:20px;padding-top:50px}#wpstg-footer a{text-decoration:none}#wpstg-footer li{list-style:circle;margin-bottom:2px}#wpstg-footer ul{margin-left:15px;margin-top:0}.wpstg-footer--title{margin-left:15px}.wpstg-staging-info{color:#3e3e3e;font-size:12px;margin-top:8px}.wpstg-staging-info a{color:#3e3e3e}.wpstg-staging-info li{margin-bottom:2px}.wpstg-bold{font-weight:600}#wpstg-processing-status{float:left;font-size:13px;font-weight:400;margin-top:5px}#wpstg-processing-timer{float:right;font-size:13px;font-weight:400;margin-top:5px}#wpstg-report-issue-button{background-color:#fff;border:1px solid #e01e5a;color:#e01e5a;margin-left:50px}#wpstg-report-issue-button:hover{background-color:#dc2b62;color:#fff}.wpstg-blue-primary{-webkit-appearance:none;background:#25a1f0;border:1px solid #2188c9;border-radius:3px;box-sizing:border-box;color:#fff;cursor:pointer;display:inline-block;font-size:13px;height:28px;margin:0;padding:0 10px 1px;text-decoration:none;text-shadow:0 -1px 1px #006799,1px 0 1px #006799,0 1px 1px #006799,-1px 0 1px #006799;white-space:nowrap}.wpstg-blue-primary:hover{background-color:#259be6}.wpstg-report-issue-form{background-color:#fff;border:1px solid #e8e8e8;border-radius:3px;box-shadow:inset 0 1px 0 0 #fff;display:none;padding:15px 15px 10px;position:absolute;right:0;top:35px;width:300px;z-index:999}@media (max-width:600px){.wpstg-report-issue-form{position:relative}}.wpstg-report-show{display:block}.wpstg-field input[type=text],.wpstg-field textarea{font-weight:400;line-height:1.4;margin-bottom:4px;width:100%}.wpstg-report-email,.wpstg-report-hosting-provider{border-radius:3px;font-size:.8rem;font-weight:400;height:2.3rem;line-height:2.3rem;margin-bottom:4px;padding:0 10px;width:100%}.wpstg-report-description{border-radius:3px;font-size:.8rem;padding:6px 10px;resize:none}.wpstg-report-privacy-policy{font-size:12px;margin-bottom:15px}#wpstg-report-cancel{float:right;font-weight:700;margin-right:5px}#wpstg-success-button{font-weight:700}.wpstg-message{background-color:#f5e0de;border-radius:3px;box-sizing:border-box;-moz-box-sizing:border-box;color:rgba(0,0,0,.6);height:auto;margin:10px 0;min-height:18px;padding:6px 10px;position:relative}.wpstg-message.wpstg-error-message{background-color:#f5e0de;color:#b65147;font-size:12px}.wpstg-message.wpstg-success-message{background-color:#d7f8e0;color:#515151}.wpstg-message p{font-size:13px;margin:3px 0}.wpstg-warning{background-color:#ffb804;color:#fff;display:block;margin:10px 10px 10px 0;padding:10px}.wpstg-warning a{color:#fff;font-weight:700;text-decoration:underline}.wpstg-error{background-color:#e01e5a!important;border-color:transparent!important;box-shadow:none!important;color:#fff;display:block;margin:10px 10px 10px 0!important;padding:10px!important}.wpstg-error a{color:#fff;font-weight:700;text-decoration:underline}#wpstg-resume-cloning{display:none}#wpstg-external-db th{text-align:left;width:120px}#wpstg-db-connect{font-weight:400}#wpstg-db-status{border:1px solid transparent;border-radius:4px;display:block;margin-bottom:20px;margin-top:5px;padding:5px;text-align:center;text-decoration:none}.wpstg-text-field>#wpstg-db-status{margin-left:150px;margin-top:8px;min-width:300px}.wpstg-success{background-color:#dff0d8;border-color:#d6e9c6;color:#3c763d}.wpstg-failed{background-color:#f2dede;border-color:#ebccd1;color:#a94442}#wpstg_select_tables_cloning{font-size:13px;height:600px}#wpstg-update-notify{background-color:#e01e5a;color:#fff;font-size:14px;line-height:normal;padding:10px}#wpstg-update-notify a{color:#fff;font-weight:700}.wpstg-pointer{cursor:pointer}.wpstg--tab--header{background-color:#fff;border-radius:2px;box-shadow:0 0 1px rgba(0,0,0,.125),0 1px 3px rgba(0,0,0,.02);color:#3e3e3e;position:relative;transition:border-color .2s ease-in-out}.wpstg--tab--header ul{display:flex}.wpstg--tab--header ul li{margin-bottom:0;margin-right:1em}.wpstg--tab--header ul li:last-child{margin-right:0}.wpstg--tab--header a{color:#c4c4c4;cursor:pointer;display:inline-block;font-size:18px;min-width:150px;padding:1em 1.25em 9px;text-align:center}.wpstg--tab--header a.wpstg--tab--active,.wpstg--tab--header a:hover{border-bottom:.4em solid #25a1f0;color:#25a1f0}.wpstg--tab--header a:hover{background-color:#fefefe}.wpstg--tab--content{display:none}.wpstg--tab--active{display:block}.wpstg--text--strong,.wpstg--text--strong *{font-weight:700!important}.wpstg--text--danger{color:#a94442}.wpstg--tooltip{border-bottom:1px dotted #000;display:inline-block;margin-left:10px;position:relative}.wpstg--tooltip .wpstg--tooltiptext{background-color:#fff;border-radius:3px;-webkit-box-shadow:0 3px 6px rgba(0,0,0,.16),0 3px 6px rgba(0,0,0,.23);-moz-box-shadow:0 3px 6px rgba(0,0,0,.16),0 3px 6px rgba(0,0,0,.23);box-shadow:0 3px 6px rgba(0,0,0,.16),0 3px 6px rgba(0,0,0,.23);color:#505050;padding:12px;position:absolute;text-align:left;visibility:hidden;width:300px;z-index:1}.wpstg--tooltiptext-backups{left:-150%;margin-left:-56px;margin-top:4px;top:100%;width:120px}.wpstg--tooltip.wpstg--exclude-rules--tooltip{border-bottom:0 solid transparent}.wpstg--tooltip.wpstg--exclude-rules--tooltip>.wpstg--tooltiptext{margin-left:-150px;margin-top:0}.wpstg--tooltip .wpstg--tooltiptext-backups:after{border:5px solid transparent;border-bottom-color:#fff;bottom:100%;content:" ";left:50%;margin-left:25px;position:absolute}.wpstg--tooltip .wpstg--tooltiptext.has-top-arrow{margin-top:6px}.wpstg--tooltip .wpstg--tooltiptext.has-top-arrow:after{border:5px solid transparent;border-bottom-color:#fff;bottom:100%;content:" ";left:50%;margin-left:-18px;position:absolute}.wpstg--snaphot-restore-table tr{line-height:12px}.wpstg-beta-notice{background-color:#b0e8b0;border-radius:3px;margin-bottom:20px;padding:7px}#wpstg-backup-name{font-size:1.875em;font-weight:600}#wpstg_select_tables_cloning option:checked{-webkit-appearance:menulist-button;background-image:linear-gradient(0deg,#1e90ff,#1e90ff)}.wpstg--btn--cancel{color:#fff;font-size:16px;height:auto;line-height:normal;margin-bottom:1.5em;padding:.5em}.wpstg--btn--cancel,.wpstg--btn--cancel:hover{background:#ff3428;border-color:#e72f24}.wpstg--process--content>.wpstg--swal2-html-container{padding:4em 2em!important}.wpstg--modal--error--logs,.wpstg--modal--process--logs{background:#fff;border:1px solid #a8a8a8;border-radius:3px;display:none;height:300px;margin-top:1em;overflow:auto;padding-left:10px;padding-top:10px;text-align:justify}.wpstg--modal--error--logs{height:auto;max-height:300px}.wpstg--modal--process--logs p{font-size:12px;white-space:nowrap}.wpstg--modal--process--logs p.wpstg--modal--process--msg--info{color:#222}.wpstg--modal--process--logs p.wpstg--modal--process--msg--debug{color:#757575}.wpstg--modal--process--title{color:#565656;margin:.25em 0}.wpstg--modal--process--subtitle{color:#565656;margin:.5em 0}.wpstg--modal--error--logs>p{color:#222;font-size:14px;text-align:left}.wpstg--modal--error--logs p,.wpstg--modal--process--logs p{margin:0 0 2px}.wpstg--modal--process--msg--critical,.wpstg--modal--process--msg--error{color:#e01e5a}.wpstg--modal--process--msg--warning{color:#ff8c00}.wpstg--modal--process--msg-found{color:#e01e5a;font-size:16px;font-weight:700}.wpstg--modal--delete{color:#565656;margin-top:8px;text-align:left}.wpstg-swal-popup .wpstg--swal2-cancel.wpstg--btn--cancel{margin-bottom:0;text-shadow:none!important}.wpstg-swal-popup .wpstg-loader{display:inline-block!important}.wpstg--modal--process--generic-problem{border-left:5px solid #e01e5a;display:none;margin:.5em 0}.wpstg--modal--process--logs--tail{background:none;border:none;color:#565656;cursor:pointer;font-size:16px}.wpstg--modal--backup--import--upload--title{color:#565656}.wpstg--modal--backup--import--configure,.wpstg--modal--backup--import--upload--container input[type=file],.wpstg--modal--backup--import--upload--status{display:none}#wpstg--backups--import--file-list{font-size:14px;font-weight:700}#wpstg--backups--import--file-list-empty{color:#e01e5a}.wpstg--modal--backup--import--filesystem label{font-size:14px}.wpstg--modal--backup--import--filesystem button{margin-bottom:20px}.wpstg--modal--backup--import--upload{color:#505050;min-height:30px;position:relative}.wpstg--modal--backup--import--upload--container{background-color:#f4fbff;border:3.5px dashed #dedede;border-radius:10px;margin:.5em;min-height:130px;padding:1em .5em;position:relative;transition:background-color .3s ease,color .3s ease}.wpstg--modal--backup--import--upload--container.wpstg--has-dragover span.wpstg--drop{display:inline-flex}.wpstg--modal--backup--import--upload--container input[type=file]{display:none}.wpstg--modal--backup--import--upload--container img{align-self:center;border:none;margin-top:10px;width:4em}.wpstg--modal--backup--import--upload--container span{margin-top:1em}.wpstg--backup--import--options>button{align-self:center;height:auto;line-height:normal;margin-top:1em;padding:1em;width:185px}.wpstg--backup--import--options{display:flex;justify-content:center;position:relative}.wpstg--backup--import--options ul{display:none}.wpstg--backup--import--options.wpstg--show-options ul{background:#25a1f0;border-color:#2188c9;border-radius:0 0 3px 3px;border-width:1px;box-sizing:border-box;display:block;margin:54px 0 0;padding:0;position:absolute;text-shadow:0 -1px 1px #006799,1px 0 1px #006799,0 1px 1px #006799,-1px 0 1px #006799;width:185px}.wpstg--backup--import--options.wpstg--show-options ul li{border-bottom:.1em solid #25a1f0;margin:0}.wpstg--backup--import--options.wpstg--show-options ul li:hover{background-color:#25a1f0}.wpstg--backup--import--options.wpstg--show-options ul li:last-child{border-bottom:none}.wpstg--backup--import--options ul li button{background:none;border:none;color:#fff;cursor:pointer;height:40px;line-height:40px;margin:0;width:100%}.wpstg--backup--import--options ul li button:hover{background-color:#259be6}.wpstg--modal--backup--import--search-replace--info{display:flex;flex-direction:row;margin:1em 0}.wpstg--modal--backup--import--info p{margin:0;text-align:left}.wpstg--modal--backup--import--search-replace--wrapper button{align-self:center}.wpstg--import--advanced-options--button{border:0;border-radius:3px;cursor:pointer;font-size:18px;text-shadow:0 -1px 1px #006799,1px 0 1px #006799,0 1px 1px #006799,-1px 0 1px #006799}.wpstg--modal--backup--import--search-replace--new{background-color:#25a1f0;color:#fff}.wpstg--modal--backup--import--search-replace--remove{background-color:#25a1f0;color:#fff;height:22px;margin-left:5px;width:22px}.wpstg--modal--backup--import--search-replace--input-group:first-child button{display:none}.wpstg--modal--backup--import--search-replace--input--container{display:flex;flex:1;flex-direction:column}.wpstg--modal--backup--import--search-replace--input-group{border-bottom:6px solid #f1f1f1;margin-bottom:10px;width:100%}.wpstg--modal--backup--import--search-replace--input-group input{border:1px solid #dedede;border-radius:3px;color:#666;display:inline-block;line-height:10px;margin-bottom:12px;min-width:250px;padding:8px;width:calc(50% - 20px)}.wpstg--modal--import--upload--process{align-items:center;color:#333;display:none;height:30px;justify-content:center;left:0;margin-bottom:20px;margin-top:20px;overflow:hidden;position:relative;text-indent:1em;top:0;white-space:nowrap;width:100%}.wpstg--modal--import--upload--progress{background:#98d452;border-radius:4px;color:#fff;height:100%;left:0;position:absolute;top:0}.wpstg--modal--import--upload--progress--title{z-index:9}.wpstg-fieldset:disabled{border-top:1px solid #fff;margin-top:20px;opacity:.8}.wpstg-fieldset{padding-left:20px}.wpstg-dark-alert{background-color:#0e86d9;color:#fff;font-weight:700;margin-top:0;padding:15px}.wpstg-dark-alert .wpstg-button--cta-red{margin-left:10px}.wpstg-form-group{align-items:center;display:block;margin-bottom:8px;width:100%}.wpstg-form-group>label{display:block;font-weight:700}.wpstg-text-field>input{display:block;line-height:1.5;width:300px}.wpstg-text-field>.wpstg-code-segment{margin-top:4px;min-width:300px}.wpstg-form-group>.wpstg-checkbox{position:relative}.wpstg-form-group>.wpstg-checkbox>input[type=checkbox]{left:150px}.wpstg-ml-4{margin-left:4px}#wpstg-advanced-settings hr{margin:20px 0}.wpstg-form-row{display:block}.wpstg-form-row input,.wpstg-form-row label{display:table-cell;margin-bottom:3px;margin-top:3px;padding-left:5px;padding-right:5px}.wpstg-form-row input{width:400px}.wpstg-form-row label{font-weight:700;white-space:nowrap;width:1px}#wpstg-db-connect-output #wpstg-db-status{width:390px}.wpstg-fs-14{font-size:14px}.wpstg-code-segment{display:block}.wpstg-form-group>.wpstg-checkbox{min-width:100%;width:100%}.wpstg-form-group>.wpstg-checkbox>input[type=checkbox]{margin-left:10px}@media only screen and (max-width:768px){.wpstg-form-group>label{min-width:auto;width:auto}.wpstg-text-field>input{width:100%}.wpstg-text-field>.wpstg-code-segment{margin-left:0;min-width:100%}.wpstg-tab-section{max-width:450px;width:calc(100vw - 60px)}}.wpstg-rounded{border-radius:3px}.wpstg-white-border{border:1px solid #fff!important}.wpstg-m-0{margin:0}.wpstg-mt-10px,.wpstg-my-10px{margin-top:10px!important}.wpstg-my-10px{margin-bottom:10px!important}.wpstg-w-100{width:100%}.wpstg-box-shadow{box-shadow:0 1px 1px 0 rgba(0,0,0,.1)}.wpstg-float-left{float:left}.wpstg-bold-text{font-weight:700}.wpstg-warning.notice{border-left:4px solid #ffba00}.wpstg-confirmation-label{background-color:#5b9dd9;border-radius:3px;color:#fff;padding:2px}.wpstg-my-6px{margin-bottom:6px;margin-top:6px}.wpstg-mb-10px{margin-bottom:10px}.wpstg-clear-both{clear:both}.wpstg-font-italic{font-style:italic}.wpstg-mt-20px{margin-top:20px}.wpstg-welcome-container{border:2px solid #fff;margin-bottom:20px;padding:20px}.wpstg-ml-30px{margin-left:30px}.wpstg-text-center{text-align:center}.wpstg-feedback-link{text-decoration:none}.wpstg-feedback-span{display:block;margin-bottom:3px}#wpstg-confirm-backup-restore-data{margin:40px;text-align:left}#wpstg-confirm-backup-restore-wrapper{margin:0 30px 30px}#wpstg-confirm-backup-restore-wrapper h3{color:#e01e5a}#wpstg-progress-backup,#wpstg-progress-db{background-color:#3fa5ee}#wpstg-progress-files.wpstg-pro,#wpstg-progress-sr{background-color:#3c9ee4}#wpstg-progress-data,#wpstg-progress-dirs{background-color:#3a96d7}#wpstg-progress-files:not(.wpstg-pro),#wpstg-progress-finishing{background-color:#378cc9}.wpstg-issue-resubmit-confirmation.wpstg--swal2-container,.wpstg-swal2-container.wpstg--swal2-container{z-index:10500}.wpstg-swal2-container.wpstg-swal2-loading .wpstg--swal2-actions,.wpstg-swal2-container.wpstg-swal2-loading .wpstg--swal2-header{display:none}body.toplevel_page_wpstg_backup .wpstg--swal2-container .wpstg--swal2-content,body.toplevel_page_wpstg_clone .wpstg--swal2-container .wpstg--swal2-content{z-index:2}.toplevel_page_wpstg_clone #swal2-content h2{color:#565656}.toplevel_page_wpstg_clone #swal2-content{line-height:1.5em}div#exportUploadsWithoutDatabaseWarning{background-color:#fafafa;border:1px solid #e3e3e3;border-radius:5px;font-size:.9rem;font-style:italic;margin:10px;padding:10px;text-align:center}.wpstg-advanced-options-dropdown-wrapper{display:none;margin-top:20px}.wpstg--modal--backup--import--search-replace--wrapper{margin-top:20px;text-align:left}.wpstg--modal--backup--import--search-replace--new--wrapper{text-align:center}.wpstg-import-backup-contains li{display:inline-block}.wpstg-import-backup-contains li .wpstg-backups-contains{background-color:#e3e3e3;border:1px solid #c2c2c2;border-radius:3px;color:#979797;font-size:17px;height:17px;width:17px}.wpstg-import-backup-contains.wpstg-listing-single-backup li .wpstg-backups-contains{background-color:#fff;border:1px solid #c2c2c2;padding:2px}.wpstg-import-backup-contains.wpstg-listing-single-backup li .wpstg-backups-contains>.wpstg--dashicons{filter:invert(50%)}.wpstg-import-backup-contains .wpstg--tooltiptext{font-size:x-small;left:-25px;padding:5px;text-align:center;width:50px}.wpstg-import-backup-contains-title,ul.wpstg-import-backup-contains{display:inline-block}.wpstg-import-backup-name{display:inline-block;font-weight:700}.wpstg-backup-more-info-toggle{cursor:pointer;display:inline-block;font-size:x-small;font-style:italic}.wpstg-backup-more-info-toggle::selection{background:none}ul.wpstg-import-backup-more-info{background-color:#f6f6f6;border:1px solid #878787;border-radius:3px;cursor:pointer;font-size:14px;margin-bottom:30px;margin-top:10px;padding:7px;text-align:left}ul.wpstg-import-backup-more-info:hover{background-color:#def2ff;border:1px solid #25a1f0}ul.wpstg-import-backup-more-info li{height:20px}.wpstg-backup-list{max-width:800px}.wpstg-backup-list h3{color:#3e3e3e}.wpstg-backup-list ul ul{margin-block-end:1em;margin-block-start:1em}.wpstg-push-confirmation-message{font-size:15px;text-align:justify}.wpstg-settings-row{padding-bottom:10px;padding-top:10px}.wpstg-settings-title{font-weight:600}.wpstg-settings-form-group{align-items:center;display:flex}.wpstg-settings-form-group>.wpstg-settings-message{margin:7px 0 0;padding:0;width:30%}.wpstg-excluded-filters-container{margin-bottom:10px;margin-top:10px;max-width:100%;padding:0;width:100%}.wpstg-excluded-filters-container>table{border-collapse:collapse;border-color:transparent;width:100%}.wpstg-excluded-filters-container td{height:20px;padding-bottom:4px;padding-top:4px}.wpstg-excluded-filters-container h4{margin:0}.wpstg-exclude-filters-foot{display:flex;justify-content:flex-start;padding:0}.wpstg-exclude-filter-dropdown>button:hover{background:#135e96;border:1px solid #135e96}.wpstg-exclude-filter-dropdown>.wpstg-dropdown-menu{width:128px}.wpstg-remove-exclude-rule{background-color:#e01e5a;border:1px solid #e01e5a;border-radius:10px;box-shadow:none;color:#fff!important;cursor:pointer;display:inline-flex;font-size:24px;font-weight:400;height:20px;justify-content:center;line-height:.7;margin-top:5px;outline:none;padding:0;width:20px}.wpstg-remove-exclude-rule:hover{background-color:#e01e5a;border-color:#e01e5a}.wpstg-code-block{background:#f8f8f8;border-radius:2px;font-size:1.2em;margin-top:4px}.wpstg-rule-info{background:#f8f8f8!important}code.wpstg-code{background:#fff;border:1px solid #aaa;color:#e01e5a;display:inline-block;font-size:11px;margin-bottom:1px;padding:2px 4px}.wpstg-exclusion-rule-info{align-items:center;background-color:#ffc107;border:1px solid #ffc107;border-radius:7px;box-shadow:none;color:#fff!important;display:inline-flex;font-size:14px;font-weight:400;height:14px;justify-content:center;outline:none;padding:0;vertical-align:middle;width:14px}.wpstg-exclusion-rule-info:hover{background-color:#ffba0c;border:1px solid #ffba0c}.wpstg-exclude-rule-input{background-color:#fff;border:1px solid #bbb;border-radius:0!important;box-shadow:none;color:#222;display:inline-block;font-size:12px!important;font-weight:400;line-height:1.5;margin-left:4px;margin-top:4px;min-height:24px!important;outline:none!important;padding:2px 6px;transition:all .3s cubic-bezier(.25,.8,.25,1);vertical-align:baseline!important;width:135px}.wpstg-excluded-filters-container tbody>tr:last-child .wpstg-exclude-rule-input{margin-bottom:4px}.wpstg-exclude-rule-input:hover{border:1px solid #999}.wpstg-exclude-rule-input:focus{border:1px solid #25a0f1!important;box-shadow:0 1px 3px rgba(0,0,0,.12),0 1px 2px rgba(0,0,0,.24)!important}.wpstg-file-size-exclude-select,.wpstg-path-exclude-select{width:135px}.wpstg-file-size-exclude-select-small{width:52px}.wpstg-file-size-exclude-input{width:75px}.wpstg-staging-option-title{margin:15px 0 0}.wpstg-swal-push-container.wpstg--swal2-container{z-index:9995}#wpstg-scanning-files{padding-bottom:5px}#wpstg-scanning-db.wpstg-tab-section,#wpstg-scanning-files.wpstg-tab-section{padding-top:10px}.wpstg-reset-excludes-container{margin:10px 0}.wpstg-swal2-ajax-loader{align-items:center;display:flex;height:150px;justify-content:center;overflow:hidden;width:100%}@keyframes wpstg-loading-icon-anim{0%{transform:rotate(0)}to{transform:rotate(1turn)}}.wpstg-swal2-ajax-loader>img{animation:wpstg-loading-icon-anim 1s linear infinite;-webkit-animation:wpstg-loading-icon-anim 1s linear infinite;height:64px;width:64px}.wpstg-swal2-container .wpstg-tab-section{width:auto!important}#wpstg-no-staging-site-results{margin-top:10px;max-width:375px}li#wpstg-backup-no-results{max-width:500px}#wpstg-no-staging-site-results div,li#wpstg-backup-no-results div{display:inline-block;text-align:center}#wpstg-no-staging-site-results .wpstg--dashicons,li#wpstg-backup-no-results .wpstg--dashicons{filter:invert(50%);margin-top:1px;position:absolute}#wpstg-no-staging-site-results .no-staging-site-found-text,li#wpstg-backup-no-results .no-backups-found-text{color:#5d5d5d;margin-left:20px}@media only screen and (max-width:680px){#wpstg-no-staging-site-results div,li#wpstg-backup-no-results div{width:100%}}#wpstg--modal--backup--download-inner p.wpstg-download-modal-text{color:#565656;font-size:16px}#wpstg--modal--backup--download-inner h2{color:#565656}.wpstg-backup-restore-contains-database,.wpstg-backup-restore-contains-files{display:none}.wpstg-green-button{background:#8bc34a;border:1px solid #78a93f;color:#fff;text-shadow:0 -1px 1px #78a93f,1px 0 1px #78a93f,0 1px 1px #40c921,-1px 0 1px #78a93f}.wpstg-green-button:hover{background:#78a93f}.wpstg-is-dir-loading{display:none;margin-left:8px;margin-top:-2px;position:absolute}.wpstg-ml-8px{margin-left:8px}.wpstg-mb-8px{margin-bottom:8px}.wpstg-btn-danger{background-color:#e01e5a;border:1px solid #e01e5a;color:#fff;text-shadow:none}.wpstg-btn-danger:hover{background:#c0194d;box-shadow:0 1px 4px rgba(0,0,0,.3)}.wpstg-swal2-container.wpstg-swal2-loading>.wpstg--swal2-modal{height:200px}.wpstg-reset-confirmation.wpstg-swal2-container:not(.wpstg-swal2-loading)>.wpstg--swal2-modal{max-width:480px}.wpstg-reset-confirmation.wpstg-swal2-container .wpstg--swal2-header{display:none}.wpstg-reset-confirmation.wpstg-swal2-container .wpstg--swal2-content{height:auto}.wpstg-reset-confirmation.wpstg-swal2-container>.wpstg--swal2-modal>.wpstg--swal2-content .wpstg-tabs-wrapper{height:auto!important;overflow-y:auto}.wpstg-reset-confirmation.wpstg-swal2-container>.wpstg--swal2-modal>.wpstg--swal2-content{font-size:13px}.wpstg-reset-confirmation.wpstg-swal2-container>.wpstg--swal2-modal>.wpstg--swal2-content .wpstg-dir{margin-bottom:4px}.wpstg-reset-confirmation.wpstg-swal2-container>.wpstg--swal2-modal>.wpstg--swal2-content .wpstg-subdir{margin-top:4px}.wpstg-reset-confirmation.wpstg-swal2-container.has-collapsible-open .wpstg--swal2-modal{height:calc(100vh - 70px)}.wpstg-reset-confirmation.wpstg-swal2-container.has-collapsible-open>.wpstg--swal2-modal>.wpstg--swal2-content .wpstg-tabs-wrapper{height:calc(100vh - 350px)!important}.wpstg--swal2-actions.wpstg--modal--actions>button{font-weight:500;margin-left:4px;margin-right:4px;min-width:80px;text-shadow:none;text-transform:uppercase}.wpstg-swal-popup{max-width:1200px!important}.wpstg-swal-popup.wpstg-push-finished .wpstg--swal2-title{color:#a8a8a8}.wpstg-swal-popup.wpstg-push-finished .wpstg--swal2-content{color:#a8a8a8;margin-top:8px}.wpstg-swal-popup .wpstg--swal2-progress-steps .wpstg--swal2-progress-step,.wpstg-swal-popup .wpstg--swal2-progress-steps .wpstg--swal2-progress-step-line,.wpstg-swal-popup .wpstg--swal2-progress-steps .wpstg--swal2-progress-step.wpstg--swal2-active-progress-step{background:#25a1f0}.wpstg-swal-popup .wpstg--swal2-progress-steps .wpstg--swal2-progress-step-line{width:2.75em}.wpstg--dashicons{height:16px;width:16px}.wpstg--dashicons.wpstg-dashicons-grey{filter:invert(20%)}.wpstg--dashicons.wpstg-dashicons-19{height:19px;width:19px}.wpstg--dashicons.wpstg-dashicons-21{height:21px;width:21px}#wpstg--tab--backup #wpstg-step-1{align-items:center;display:flex}#wpstg--tab--backup #wpstg-step-1 .wpstg--tooltip,.wpstg-advanced-options .wpstg--tooltip{align-items:center;border-bottom:0 solid transparent;display:inline-flex}#wpstg--tab--backup #wpstg-step-1 .wpstg--tooltip{align-items:center;border-bottom:0 solid transparent;display:flex}.wpstg--tooltip .wpstg--tooltiptext-backups:after{left:calc(20% + 2px)}.wpstg-listing-single-backup .wpstg--dashicons{height:17px;width:17px}.wpstg-100-width{width:100px}.wpstg-caret{border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid;cursor:pointer;display:inline-block;height:0;margin-left:2px;transition:transform .2s;vertical-align:middle;width:0}.wpstg-caret.wpstg-caret-up{transform:rotate(-180deg)}.wpstg-advanced-options-site label{display:block;font-size:16px;margin:.5em 0}#wpstg-confirm-backup-restore-data{font-size:18px;margin:30px 0 0}body.toplevel_page_wpstg_backup .wpstg--swal2-container.wpstg--swal2-backdrop-show,body.toplevel_page_wpstg_clone .wpstg--swal2-container.wpstg--swal2-backdrop-show{background:rgba(0,0,0,.6);z-index:9995}.wpstg-swal-popup.wpstg--swal2-popup{border-radius:8px;color:#565656;font-family:Verdana,Geneva,Tahoma,sans-serif;padding:24px;z-index:9999}.wpstg-swal-popup .wpstg--swal2-title{color:#565656;font-size:22px}.wpstg-swal-popup.wpstg--swal2-popup:not(.centered-modal) .wpstg--swal2-title{align-self:flex-start;margin-bottom:0;text-align:left}.wpstg-swal-popup .wpstg--swal2-close{right:8px;top:8px;z-index:5}.wpstg-swal-popup .wpstg--swal2-close:focus{outline:none}.wpstg-swal-popup.wpstg--swal2-popup:not(.centered-modal) .wpstg--swal2-actions{justify-content:flex-end}.wpstg-swal-popup .wpstg--swal2-actions>button{border:0;border-radius:4px;font-size:15px;font-weight:900;height:40px;line-height:normal;min-width:100px;padding:10px 12px;text-shadow:none;text-transform:capitalize}.wpstg-swal-popup.wpstg--swal2-popup:not(.centered-modal) .wpstg--swal2-actions>button{margin-left:8px}.wpstg-swal-popup .wpstg--swal2-actions>button.wpstg--swal2-cancel{background:#fff;border:1px solid rgba(29,28,29,.3);color:#1d1c1d;font-weight:500;text-shadow:none;width:100px}.wpstg-swal-popup .wpstg--swal2-actions>button:hover{box-shadow:0 1px 3px 0 rgba(0 0 0 .1)}.wpstg-swal-popup .wpstg--swal2-actions>button.wpstg--swal2-cancel:hover{background:rgba(28,29,28,.04)}#wpstg-backup-name-input{font-size:18px;height:44px}.wpstg-restore-finished-container .wpstg--swal2-title{color:#565656!important}.wpstg-restore-finished-container .wpstg--swal2-content{color:#a8a8a8;margin-top:20px}.wpstg-linear-loader>span[class*=wpstg-linear-loader-item]{animation:wpstg_linear_loader 3s infinite;animation-fill-mode:both;animation-timing-function:cubic-bezier(.03,.615,.995,.415);background:#333;border-radius:100%;display:inline-block;height:6px;margin:12px 2px;width:6px}.wpstg-linear-loader>span.wpstg-linear-loader-item:first-child{animation-delay:1s}.wpstg-linear-loader>span.wpstg-linear-loader-item:nth-child(2){animation-delay:.8s}.wpstg-linear-loader>span.wpstg-linear-loader-item:nth-child(3){animation-delay:.6s}.wpstg-linear-loader>span.wpstg-linear-loader-item:nth-child(4){animation-delay:.4s}.wpstg-linear-loader>span.wpstg-linear-loader-item:nth-child(5){animation-delay:.2s}.wpstg-linear-loader>span.wpstg-linear-loader-item:nth-child(6){animation-delay:0s}@keyframes wpstg_linear_loader{0%{opacity:0;transform:translateX(-30px)}25%{opacity:1}50%{opacity:0;transform:translateX(30px)}to{opacity:0}}.wpstg--modal--backup--import--upload--content{margin:1em auto;padding:.75em}.wpstg--modal--backup--import--upload--content .wpstg-linear-loader{display:none}#wpstg-multisite-disabled .wpstg-clone{width:355px}#wpstg-free-version-backups .wpstg-clone{text-align:center}#wpstg-free-version-backups .wpstg-clone p{font-size:16px}.wpstg-staging-info li .backup-notes{word-break:break-word}.wpstg--modal--import--upload--progress--title small{font-weight:400}#wpstg-report-issue-wrapper{position:relative}#wpstg-report-issue-wrapper .arrow-up{border-bottom:8px solid #fff;border-left:8px solid transparent;border-right:8px solid transparent;height:0;position:absolute;right:40px;top:-8px;width:0}.notice{margin:10px 20px 0 2px}.wpstg--notice{box-shadow:0 1px 1px rgba(0,0,0,.04);margin:20px 20px 20px 0;padding:1px 12px}.wpstg--error a:hover{color:#eee}.wpstg--error,.wpstg--error a{background:#e01e5a;color:#fff}.wpstg-button{border-radius:2px;cursor:pointer;display:inline-block;font-weight:500;outline:0;padding:2px 10px;text-decoration:none;text-transform:uppercase;transition:background-color .1s ease-in}.wpstg-button.wpstg-save{background-color:#1687a7;color:#fff}.wpstg-button.wpstg-save:hover{background-color:#276678}.wpstg-button.wpstg-button-light{animation:background-color .3s;background-color:#f8f8f8;border:1px solid #eee;color:#333}.wpstg-button.wpstg-button-light:hover{background-color:#e0e0e0;border:1px solid #e0e0e0}.wpstg-buttons .spinner{float:none;margin:0 0 0 5px}.wpstg-button.danger{background-color:#e01e5a;border-color:transparent;border-radius:2px;color:#fff;display:inline-block;text-align:center;text-decoration:none;text-transform:inherit}.wpstg-button.danger:hover{background-color:#c0194d}.wpstg-button--big{border-radius:3px;color:#fff;display:inline-block;font-size:16px;margin-top:20px;min-width:170px;padding:10px;text-align:center;text-decoration:none}.wpstg-button--primary{-webkit-appearance:none;border:1px solid rgba(29,28,29,.3);border-radius:2px;box-sizing:border-box;color:#171717;cursor:pointer;display:inline-block;font-size:13px;line-height:2.15384615;margin:0;min-height:30px;padding:0 10px;text-decoration:none;white-space:nowrap}.wpstg-button--primary:hover{background:rgba(28,29,28,.04);color:#000}.wpstg-button--secondary{background-color:transparent;border:1px solid rgba(29,28,29,.3);border-radius:2px;color:#95a5a6;cursor:pointer;display:inline-block;font-weight:500;outline:0;padding:4px 10px 2px;text-decoration:none;transition:background-color .1s ease-in}.wpstg-button--red{background-color:#e01e5a;border-color:#e01e5a;color:#fff}.wpstg-button--red:hover{background-color:#d02358;border-color:#e0255f;color:#fff}.wpstg-button--cta-red{background-color:#fe008f;border-color:#e01e5a;color:#fff}.wpstg-button--cta-red:hover{background-color:#f31391;border-color:#e0255f;color:#fff}.wpstg-button--blue{background-color:#25a0f1;border-color:#25a0f1;color:#fff}.wpstg-button--blue:hover{background-color:#259be6;border-color:#259be6;color:#fff}#wpstg-button-backup-upgrade{font-size:16px}.wpstg-staging-status{color:#e01e5a}#wpstg-push-changes,#wpstg-save-clone-data,#wpstg-start-updating{margin-left:5px}input.wpstg-textbox{border:1px solid #aaa;border-radius:.25rem;font-size:14px;padding:.25rem .5rem}input.wpstg-textbox:focus{border-color:#259be6;-webkit-box-shadow:0 0 0 .1rem hsla(0,0%,86.7%,.35);box-shadow:0 0 0 .1rem hsla(0,0%,86.7%,.35);outline:0}input.wpstg-textbox::placeholder{color:#888}.wpstg--advance-settings--checkbox{align-items:center;display:flex}.wpstg--advance-settings--checkbox>label{display:inline-block;font-size:14px;font-weight:bolder;width:165px}.wpstg--advance-settings--checkbox>.wpstg--tooltip{border-bottom:0 solid transparent;display:inline-block;margin-left:5px;margin-top:5px;position:relative}.wpstg--advance-settings--checkbox>.wpstg--tooltip>.wpstg--tooltiptext{left:-150px;top:18px}div#wpstg-restore-wait{align-items:center;background:#fff;display:none;flex-direction:column;height:100vh;justify-content:center;left:0;position:fixed;text-align:center;top:0;width:100vw;z-index:99999}div#wpstg-restore-wait .wpstg-title{font-weight:700}div#wpstg-restore-wait div{font-size:16px;margin-top:12px}.resumable-browse{cursor:pointer}.resumable-browse a{text-decoration:underline}.wpstg-upload-text{font-weight:600}.wpstg--modal--backup--import--upload--container.dragover{background-color:#94dc96;color:#fff;transition:background-color .7s}.wpstg--modal--backup--import--upload--container.dragover *{pointer-events:none}.wpstg--modal--backup--import--upload--container.dragover .wpstg-upload-text{display:none}.wpstg--modal--backup--import--upload--container.dragover .wpstg-dragover-text{display:block}.wpstg--modal--backup--import--upload--container .wpstg-dragover-text{display:none}#wpstg-invalid-license-message,#wpstg-invalid-license-message a{color:#e01e5a;font-weight:500;margin-left:6px}#wpstg-sidebar--banner{max-width:200px}@media screen and (max-width:1234px){.wpstg-h2{font-size:24px}#wpstg-welcome li{font-size:14px}}.wpstg-exclamation{background-color:#e01e5a;border-radius:100%;color:#fff;display:inline-block;font-weight:700;height:20px;margin:6px;text-align:center;width:20px}.wpstg--tab--contents{padding-top:1px}.wpstg-swal-show.wpstg--swal2-show{-webkit-animation:wpstg-swal-show .2s!important;animation:wpstg-swal-show .2s!important}@-webkit-keyframes wpstg-swal-show{0%{transform:scale(.3)}to{transform:scale(1)}}@keyframes wpstg-swal-show{0%{transform:scale(.3)}to{transform:scale(1)}}
2
  /*# sourceMappingURL=wpstg-admin.min.css.map */
assets/css/dist/wpstg-admin.min.css.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["wpstg-admin.css"],"names":[],"mappings":"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","file":"wpstg-admin.min.css","sourcesContent":["/**\n * WPSTG Admin CSS\n *\n * @package WPSTG\n * @subpackage Admin CSS\n * @copyright Copyright (c) 2021, René Hermenau\n * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License\n*/\n\n/* Colors */\n\n.wpstg--violet {\n color: #9d37ae;\n}\n\n.wpstg-border--violet {\n border: 1px solid #9d37ae;\n}\n\n.wpstg--red {\n color: #E01E5A;\n}\n\n.wpstg-cta--red {\n color: #fe008f;\n}\n\n.wpstg--blue {\n color: #24a1f0;\n}\n\n.wpstg--darkblue {\n color: #0e86d9;\n}\n\n.wpstg--green {\n color: #83c11f;\n}\n\n.wpstg--grey {\n color: #3e3e3e;\n}\n\n.wpstg--darkgrey {\n color: #1b1b1b;\n}\n\n/* CSS for Tabs */\n\n#wpstg-tab-container ul {\n list-style: none;\n margin: 0;\n padding: 0;\n background: #f1f1f1;\n float: left;\n}\n\n#wpstg-tab-container ul li:first-child.selected-tab {\n border-top: none;\n}\n\n#wpstg-tab-container ul li a.selected-tab {\n font-weight: bold;\n text-decoration: none;\n}\n\n#wpstg-tab-container .row {\n padding-top: 10px;\n padding-bottom: 12px;\n}\n\n.wpstg-tabs-container .nav-tab-wrapper {\n padding: 0;\n}\n\n#wpstg-tab-container .row label strong,\n#wpstg-tab-container .row strong {\n font-weight: bold;\n}\n\n.wpstg-tabs a {\n padding: 5px;\n}\n\n#wpstg-tab-container > ul > li.wpstg-tabs.active {\n background-color: white;\n}\n\n#wpstg_settingsgeneral_header .row:nth-child(3),\n#wpstg_settingsgeneral_header .row:nth-child(4) {\n display: none;\n}\n\n#wpstg-tab-container .wpstg-settings-panel {\n padding: 0 20px 20px 20px;\n overflow: auto;\n}\n\n#wpstg-tab-container .wpstg-form-table th {\n vertical-align: top;\n text-align: left;\n padding: 20px 10px 20px 0;\n line-height: 1.3;\n font-weight: bold;\n font-size: 14px;\n color: #484848;\n width: 30%;\n}\n\n#wpstg-tab-container .wpstg-form-table tr {\n border-bottom: 1px solid #E7E7E7;\n}\n\n#wpstg-tab-container span.description {\n display: block;\n font-weight: 400;\n font-style: normal;\n font-size: 13px;\n margin-top: 7px;\n color: #484848;\n}\n\n#wpstg-tab-container .col-title {\n color: #484848;\n}\n\n@media only screen and (max-width: 680px) {\n #wpstg-tab-container ul {\n float: none;\n }\n\n #wpstg-tab-container .wpstg-form-table tr > th {\n width: 100%;\n }\n\n #wpstg-tab-container span.description {\n font-size: 14px;\n }\n\n #wpstg-tab-container .wpstg-form-table tr > th,\n #wpstg-tab-container .wpstg-form-table tr > td {\n padding: 10px;\n }\n}\n\n#wpstg-tab-container ul li {\n margin-bottom: 0;\n}\n\n#wpstg-tab-container ul li a {\n display: block;\n padding: 10px 4px 10px 14px;\n border-width: 1px 0;\n border-style: solid;\n border-top-color: white;\n border-bottom-color: #e7e7e7;\n text-decoration: none;\n color: #0097DF;\n font-weight: bold;\n}\n\n#wpstg-tab-container ul li a:hover {\n background-color: #e5e5e5;\n color: #777777;\n}\n\n.wpstg-logo {\n display: block;\n font-size: 16px;\n padding-top: 20px;\n width: 220px;\n float: left;\n}\n\n.wpstg-logo img {\n max-width: 212px;\n}\n\n.wpstg-version {\n display: block;\n padding-top: 34px;\n color: #9b9b9b;\n}\n\n.wpstg_admin .nav-tab {\n color: #3C3C3C;\n}\n\n#wpstg-tab-container table tbody tr:nth-child(1) > th > div {\n font-size: 20px;\n}\n\n/* Cloning workflow */\n\n#wpstg-clonepage-wrapper {\n margin-bottom: 20px;\n width: 98%;\n}\n\n@media screen and (min-width: 1090px) {\n #wpstg-clonepage-wrapper {\n float: left;\n margin-bottom: 20px;\n }\n}\n\n#wpstg-steps {\n margin-top: 0px;\n margin-left: 20px;\n}\n\n#wpstg-steps li {\n color: #444;\n line-height: 20px;\n padding-right: 10px;\n float: left;\n}\n\n.wpstg-step-num {\n border: 1px solid #3e3e3e;\n border-radius: 3px;\n display: inline-block;\n width: 20px;\n height: 20px;\n text-align: center;\n margin-right: 5px;\n}\n\n.wpstg-current-step {\n font-weight: bold;\n}\n\n.wpstg-current-step .wpstg-step-num {\n background: #3e3e3e;\n color: #eee;\n}\n\n.wpstg-box {\n margin: 10px 0;\n padding: 10px;\n position: relative;\n overflow: hidden;\n transition: border-color .2s ease-in-out;\n}\n\n.wpstg-clone {\n margin-bottom: 10px;\n padding: 16px;\n position: relative;\n transition: border-color .2s ease-in-out;\n background-color: #ffffff;\n color: #3e3e3e;\n border-radius: 3px;\n box-shadow: 0 0 1px rgba(0, 0, 0, .125), 0 1px 3px rgba(0, 0, 0, .1);\n}\n\n.wpstg-clone.active {\n border-color: #1d94cf;\n}\n\n.wpstg-clone-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n\n.wpstg-clone-title {\n display: inline-block;\n font-size: 15px;\n max-width: 300px;\n text-decoration: none;\n font-weight: bold;\n color: #3e3e3e;\n}\n\n.wpstg-clone-title:hover {\n color: #111111;\n}\n\n.wpstg-clone-actions {\n display: flex;\n margin-top: 5px;\n}\n\n.wpstg-dropdown {\n position: relative;\n}\n\n.wpstg-clone-actions .wpstg-dropdown-toggler {\n text-decoration: none;\n background: #25a1f0;\n padding: 6px 10px;\n border-radius: 2px;\n font-size: 14px;\n box-shadow: 0 0 1px rgba(0, 0, 0, .125), 0 1px 3px rgba(0, 0, 0, .2);\n color: #ffffff;\n}\n\n.wpstg-clone-actions .wpstg-dropdown-toggler:hover {\n background: #002648;\n color: white;\n}\n\n.wpstg-dropdown {\n position: relative;\n}\n\n.wpstg-dropdown > .wpstg-dropdown-menu {\n background: #fff;\n display: none;\n flex-direction: column;\n position: absolute;\n right: 0;\n top: calc(100% + 4px);\n padding: 8px;\n border-radius: 2px;\n width: 100px;\n box-shadow: 0 0 1px rgba(0, 0, 0, .125), 0 1px 3px rgba(0, 0, 0, .2);\n z-index: 1000;\n}\n\n.wpstg-dropdown > .wpstg-dropdown-menu.wpstg-menu-dropup {\n top: auto;\n bottom: 100%;\n transform: translate3d(0px, -3px, 0px);\n}\n\n.wpstg-dropdown > .wpstg-dropdown-menu.shown {\n display: flex;\n}\n\n.wpstg-clone-action,\n.wpstg-dropdown-action {\n color: #3e3e3e;\n padding: 6px 8px;\n border-radius: 3px;\n text-decoration: none;\n position: relative;\n transition: color .2s ease-in-out;\n border-bottom: 1px solid #f3f3f3;\n}\n\n.wpstg-clone-action:hover,\n.wpstg-dropdown-action:hover {\n background: rgba(0, 0, 0, 0.05);\n}\n\n.wpstg-dropdown-action {\n color: #3e3e3e;\n background: transparent;\n border: 0 solid black;\n outline: none;\n box-shadow: none;\n}\n\n.wpstg-remove-clone:hover {\n color: #E01E5A;\n}\n\n.wpstg-clone-action:last-child {\n border: none;\n}\n\n.wpstg-clone:hover .wpstg-clone-action {\n display: inline-block;\n}\n\n#wpstg-show-error-details:focus,\n#wpstg-workflow .wpstg-clone-action {\n outline: none;\n box-shadow: none;\n}\n\n.wpstg-link-btn {\n background: #45a1c9;\n color: #fff;\n display: inline-block;\n padding: 5px 10px;\n text-decoration: none;\n vertical-align: baseline;\n transition: all .2s ease-in-out;\n}\n\n.wpstg-link-btn:hover,\n.wpstg-link-btn:focus {\n color: #fff;\n outline: none;\n box-shadow: none;\n}\n\n#wpstg-workflow .wpstg-link-btn:active {\n vertical-align: baseline;\n}\n\n.wpstg-link-btn[disabled] {\n background: #777 !important;\n border-color: #555 !important;\n pointer-events: none;\n}\n\n#wpstg-cancel-cloning,\n#wpstg-cancel-cloning-update {\n margin-top: 5px;\n}\n\n#wpstg-cancel-cloning.success,\n#wpstg-cancel-cloning.success {\n background: #64dd58;\n border-color: #54bd4a;\n}\n\n#wpstg-error-wrapper,\n#wpstg-error-details {\n display: none;\n padding-top: 10px;\n font-size: 13px;\n clear: both;\n}\n\n#wpstg-show-error-details {\n display: inline-block;\n margin-left: 5px;\n color: #555;\n text-decoration: none;\n transition: color .2s ease-in-out;\n}\n\n#wpstg-show-error-details:hover {\n color: #1d94cf;\n}\n\n#wpstg-error-details {\n border-left: 5px solid #E01E5A;\n padding: 10px;\n width: 500px;\n}\n\n#wpstg-try-again {\n display: none;\n}\n\n#wpstg-home-link {\n float: right;\n}\n\n.wpstg-loader {\n content: url('../../img/loading.gif');\n margin-top: 10px;\n display: none;\n}\n\n.wpstg-loader.wpstg-finished {\n display: block;\n content: \"Finished\";\n background-color: #00c89a;\n color: white;\n padding: 2px 10px;\n margin-top: 0;\n border-radius: 3px;\n}\n\n#wpstg-workflow {\n max-width: 800px;\n position: relative;\n clear: both;\n padding-top: 20px;\n float: left;\n min-width: 500px;\n min-height: 380px;\n padding-right: 20px;\n padding-bottom: 20px;\n}\n\n#wpstg-sidebar {\n float: left;\n max-width: 400px;\n display: block;\n margin-left: 10px;\n}\n\n#wpstg-workflow.loading::after,\n#wpstg-removing-clone.loading::after {\n background: rgba(255, 255, 255, .7);\n content: 'Loading... may take a while for huge websites';\n display: block;\n width: 100%;\n height: 100%;\n font-size: 20px;\n padding-top: 100px;\n text-align: center;\n position: absolute;\n top: 0;\n left: 0;\n z-index: 99;\n}\n\n#wpstg-removing-clone.loading::after {\n content: 'REMOVING' !important;\n}\n\n#wpstg-existing-clones,\n#wpstg-removing-clone {\n position: relative;\n}\n\n#wpstg-existing-clones h3 {\n color: #3e3e3e;\n}\n\n#wpstg-removing-clone .wpstg-tab-section {\n display: block;\n}\n\n.wpstg-progress-bar {\n max-width: 900px;\n height: 27px;\n padding: 0;\n background-color: #d6d8d7;\n}\n\n.wpstg-progress {\n float: left;\n background: #3fa5ee;\n width: 0;\n height: 100%;\n transition: width .6s ease;\n color: white;\n line-height: 25px;\n text-align: center;\n overflow: hidden;\n}\n\n.wpstg-progress-files {\n background: #16b4f0;\n width: 0;\n height: 100%;\n transition: width .6s ease;\n color: white;\n line-height: 25px;\n text-align: center;\n}\n\n#wpstg-new-clone-id.wpstg-error-input,\n#wpstg-clone-path.wpstg-error-input {\n border: 1px solid #E01E5A;\n box-shadow: 0 0 2px rgba(255, 66, 53, .8);\n}\n\n#wpstg-new-clone-id {\n width: 450px;\n max-width: 100%;\n margin-left: 15px;\n}\n\n#wpstg-new-clone {\n background: #25a1f0;\n border-color: #2188c9;\n}\n\n#wpstg-new-clone:hover {\n background: #259be6;\n border-color: #2188c9;\n}\n\n#wpstg-clone-path {\n margin-left: 10px;\n width: 350px;\n}\n\n.wpstg-error-msg {\n color: #E01E5A;\n}\n\n#wpstg-clone-id-error {\n display: block;\n background-color: #f0f8ff;\n padding: 10px;\n margin: 20px;\n}\n\n#wpstg-start-cloning + .wpstg-error-msg {\n display: block;\n margin-top: 5px;\n}\n\n.wpstg-size-info {\n color: #999;\n font-weight: normal;\n position: relative;\n left: 2px;\n}\n\n.wpstg-db-table .wpstg-size-info {\n top: 2px;\n}\n\n.wpstg-db-table:hover {\n background-color: #f0f8ff;\n}\n\n#wpstg-workflow #wpstg-start-cloning {\n margin-left: 5px;\n vertical-align: baseline;\n}\n\n\n/* Tabs */\n\n.wpstg-tabs-wrapper {\n max-width: 640px;\n margin: 10px 0;\n}\n\n#wpstg-path-wrapper {\n border-bottom: 2px dashed #ccc;\n padding-bottom: 10px;\n margin-bottom: 10px;\n}\n\n.wpstg-tab-section {\n border-bottom: 1px solid #ddd;\n border-right: none;\n border-left: none;\n display: none;\n width: calc(100% - 72px);\n padding: 0px 36px;\n}\n\n.wpstg-tab-section::after {\n display: block;\n content: '';\n clear: both;\n}\n\n.wpstg-tab-header {\n border-bottom: 1px solid #ddd;\n border-right: none;\n border-left: none;\n color: #444;\n font-size: 16px;\n font-weight: bold;\n display: block;\n padding: 10px;;\n text-decoration: none;\n}\n\n.wpstg-tab-triangle {\n display: inline-block;\n margin-right: 12px;\n animation: transform 0.5s;\n width: 0;\n height: 0;\n margin-top: -3px;\n vertical-align: middle;\n border-top: 5px solid transparent;\n border-bottom: 5px solid transparent;\n border-left: 10px solid;\n transition: transform 0.2s;\n cursor: pointer;\n}\n\n.wpstg-tab-triangle.wpstg-no-icon {\n margin-right: 2px;\n width: auto;\n height: auto;\n vertical-align: auto;\n border-top: 0px solid;\n border-bottom: 0px solid;\n border-left: 0px solid;\n}\n\n.wpstg-tab-triangle.wpstg-rotate-90 {\n transform: rotate(90deg);\n}\n\n.wpstg-tab-header:focus {\n color: #444;\n outline: none;\n box-shadow: none;\n}\n\n#wpstg-large-files {\n display: none;\n border: 1px dashed #ccc;\n padding: 10px 10px 10px;\n margin-top: 20px;\n position: relative;\n font-size: 12px;\n}\n\n#wpstg-large-files h3 {\n background: #fff;\n margin: 0;\n padding: 0 5px;\n position: absolute;\n top: -10px;\n left: 5px;\n}\n\n.wpstg-subdir {\n display: none;\n margin-left: 20px;\n}\n\n.wpstg-subdir.wpstg-push {\n display: block;\n margin-left: 20px;\n}\n\n.wpstg-dir a.disabled {\n color: #888;\n cursor: default;\n text-decoration: none;\n}\n\n.wpstg-check-subdirs {\n display: inline-block;\n margin-left: 10px;\n}\n\n.wpstg-notice-alert {\n display: block;\n background-color: #E01E5A;\n padding: 20px;\n max-width: 600px;\n margin-top: 10px;\n color: white;\n}\n\n.wpstg-notice--white {\n display: block;\n background-color: #ffffff;\n padding: 20px;\n max-width: 600px;\n margin-top: 10px;\n}\n\n.wpstg-notice-alert a {\n color: white;\n}\n\n.wpstg-notice-alert h3 {\n color: white;\n}\n\n.wpstg-header {\n font-weight: 400;\n line-height: 1.6em;\n font-size: 19px;\n border-bottom: 1px solid #DFDFDF;\n clear: both;\n padding-top: 10px;\n}\n\n#wpstg-clone-label {\n font-size: 14px;\n font-weight: bold;\n}\n\n.wpstg-log-details {\n height: 300px;\n overflow: scroll;\n max-width: 650px;\n font-family: monospace;\n font-size: 12px;\n line-height: 15px;\n border: 1px solid #FFF;\n background-color: black;\n color: #c0c0c0;\n padding: 3px;\n white-space: nowrap;\n margin-top: 15px;\n}\n\n#wpstg-finished-result {\n display: none;\n}\n\n#wpstg-remove-cloning {\n background: #ff3428;\n border-color: #e72f24;\n margin-top: 5px;\n}\n\n#wpstg-success-notice {\n padding: 10px;\n background-color: white;\n max-width: 900px;\n border: 1px solid #ccc;\n margin-top: 20px;\n}\n\n.wpstg_beta_notice {\n margin-bottom: 20px;\n}\n\n.wpstg-sysinfo {\n width: 700px;\n height: 700px;\n}\n\n.wpstg-form-table .col-title label {\n font-weight: 600;\n}\n\n.wpstg-form-table td:first-child {\n width: 30%;\n}\n\n.wpstg-share-button-container {\n margin: 5px 0;\n}\n\n.wpstg-share-button-container p {\n margin: 0 0 10px 0;\n}\n\n.wpstg-share-button {\n display: inline-block;\n}\n\n.wpstg-share-button a {\n text-decoration: none;\n}\n\n.wpstg-share-button .wpstg-share {\n font-family: sans-serif;\n font-weight: bold;\n text-decoration: none;\n text-align: center;\n}\n\n.wpstg-share-button .wpstg-share {\n -webkit-border-radius: 2px;\n -moz-border-radius: 2px;\n border-radius: 2px;\n color: #FFF;\n display: inline;\n font-size: 12px;\n padding: 4px 8px;\n}\n\n.wpstg-share-button-twitter .wpstg-share {\n background-color: #00ABF0;\n}\n\n.wpstg-share-button-facebook .wpstg-share {\n background-color: #3b5998;\n}\n\n.wpstg-share-button-googleplus .wpstg-share {\n background-color: #F53424;\n}\n\n.wpstg-share-button-twitter .share:active,\n.wpstg-share-button-facebook .share:active,\n.wpstg-share-button-googleplus .share:active {\n background-color: #353535;\n}\n\n#wpstg-check-space {\n margin-left: 8px;\n}\n\n#wpstg-welcome li {\n font-size: 18px;\n line-height: 29px;\n position: relative;\n padding-left: 23px;\n list-style: none !important;\n}\n\n#wpstg-welcome {\n margin-top: 20px;\n margin-right: 20px;\n background-color: white;\n}\n\n.wpstg-heading-pro {\n font-weight: bold;\n}\n\n.wpstg-h2 {\n margin-top: 0;\n margin-bottom: 1.2rem;\n font-size: 30px;\n line-height: 2.5rem;\n}\n\n#wpstg-welcome li:before {\n width: 1em;\n height: 100%;\n background: url(data:image/svg+xml;charset=utf8,%3Csvg%20width%3D%221792%22%20height%3D%221792%22%20viewBox%3D%220%200%201792%201792%22%20xmlns%3D%22http%3A%2F%2Fwww%2Ew3%2Eorg%2F2000%2Fsvg%22%3E%3Cpath%20fill%3D%22%2377B227%22%20d%3D%22M1671%20566q0%2040%2D28%2068l%2D724%20724%2D136%20136q%2D28%2028%2D68%2028t%2D68%2D28l%2D136%2D136%2D362%2D362q%2D28%2D28%2D28%2D68t28%2D68l136%2D136q28%2D28%2068%2D28t68%2028l294%20295%20656%2D657q28%2D28%2068%2D28t68%2028l136%20136q28%2028%2028%2068z%22%2F%3E%3C%2Fsvg%3E) left .4em no-repeat;\n background-size: contain;\n content: \"\";\n position: absolute;\n top: -2px;\n left: 0;\n color: #77b227;\n}\n\n.wpstg-h1 {\n margin-bottom: 1.35rem;\n font-size: 2.5em;\n line-height: 3.68rem;\n letter-spacing: normal;\n}\n\n.wpstg--swal2-content h1 {\n color: #444;\n}\n\n#wpstg-welcome h2 {\n margin: 0 0 15px;\n}\n\n#wpstg-welcome .wpstg-footer {\n clear: both;\n margin-top: 20px;\n font-style: italic;\n}\n\n#wpstg-footer {\n clear: both;\n margin-top: 20px;\n margin-right: 10px;\n padding-top: 50px;\n}\n\n#wpstg-footer a {\n text-decoration: none;\n}\n\n#wpstg-footer li {\n margin-bottom: 2px;\n list-style: circle;\n}\n\n#wpstg-footer ul {\n margin-left: 15px;\n margin-top: 0px;\n}\n\n.wpstg-footer--title {\n margin-left: 15px;\n}\n\n.wpstg-staging-info {\n margin-top: 8px;\n color: #3e3e3e;\n font-size: 12px;\n}\n\n.wpstg-staging-info a {\n color: #3e3e3e;\n}\n\n.wpstg-staging-info li {\n margin-bottom: 2px;\n}\n\n.wpstg-bold {\n font-weight: 600;\n}\n\n#wpstg-processing-status {\n margin-top: 5px;\n font-size: 13px;\n font-weight: 400;\n float: left;\n}\n\n#wpstg-processing-timer {\n margin-top: 5px;\n font-size: 13px;\n font-weight: 400;\n float: right;\n}\n\n#wpstg-report-issue-button {\n margin-left: 50px;\n border: 1px solid #E01E5A;\n color: #E01E5A;\n background-color: white;\n}\n\n#wpstg-report-issue-button:hover {\n background-color: #dc2b62;\n color: #fff;\n}\n\n.wpstg-blue-primary {\n display: inline-block;\n text-decoration: none;\n font-size: 13px;\n /*line-height: 26px;*/\n height: 28px;\n margin: 0;\n padding: 0 10px 1px;\n cursor: pointer;\n border-width: 1px;\n border-style: solid;\n -webkit-appearance: none;\n border-radius: 3px;\n white-space: nowrap;\n box-sizing: border-box;\n background: #25a1f0;\n border-color: #2188c9;\n color: #fff;\n text-shadow: 0 -1px 1px #006799, 1px 0 1px #006799, 0 1px 1px #006799, -1px 0 1px #006799;\n}\n\n.wpstg-blue-primary:hover {\n background-color: #259be6;\n}\n\n.wpstg-report-issue-form {\n position: absolute;\n z-index: 999;\n width: 300px;\n background-color: #fff;\n padding: 15px 15px 10px;\n border: 1px solid #e8e8e8;\n border-radius: 3px;\n box-shadow: 0 1px 0 0 #fff inset;\n display: none;\n right: 0;\n top: 35px;\n}\n\n@media (max-width: 600px) {\n .wpstg-report-issue-form {\n position: relative;\n }\n}\n\n.wpstg-report-show {\n display: block;\n}\n\n.wpstg-field input[type=text],\n.wpstg-field textarea {\n width: 100%;\n font-weight: 400;\n line-height: 1.4;\n margin-bottom: 4px;\n}\n\n.wpstg-report-email,\n.wpstg-report-hosting-provider {\n width: 100%;\n font-weight: 400;\n font-size: .8rem;\n height: 2.3rem;\n line-height: 2.3rem;\n border-radius: 3px;\n margin-bottom: 4px;\n padding: 0 10px;\n}\n\n.wpstg-report-description {\n border-radius: 3px;\n font-size: .8rem;\n padding: 6px 10px;\n resize: none;\n}\n\n.wpstg-report-privacy-policy {\n font-size: 12px;\n margin-bottom: 15px;\n}\n\n#wpstg-report-cancel {\n float: right;\n margin-right: 5px;\n font-weight: bold;\n}\n\n#wpstg-success-button {\n font-weight: bold;\n}\n\n.wpstg-message {\n box-sizing: border-box;\n -moz-box-sizing: border-box;\n background-color: #f5e0de;\n border-radius: 3px;\n color: rgba(0, 0, 0, .6);\n height: auto;\n margin: 10px 0;\n min-height: 18px;\n padding: 6px 10px;\n position: relative;\n}\n\n.wpstg-message.wpstg-error-message {\n background-color: #f5e0de;\n color: #b65147;\n font-size: 12px;\n}\n\n.wpstg-message.wpstg-success-message {\n background-color: #d7f8e0;\n color: #515151;\n}\n\n.wpstg-message p {\n margin: 3px 0;\n font-size: 13px;\n}\n\n.wpstg-warning {\n display: block;\n padding: 10px;\n background-color: #ffb804;\n color: #ffffff;\n margin: 10px 10px 10px 0;\n}\n\n.wpstg-warning a {\n color: #ffffff;\n font-weight: bold;\n text-decoration: underline;\n}\n\n.wpstg-error {\n display: block;\n padding: 10px !important;\n background-color: #E01E5A !important;\n color: #ffffff;\n margin: 10px 10px 10px 0 !important;\n border-color: transparent !important;\n border-left-color: transparent !important;\n box-shadow: none !important;\n}\n\n.wpstg-error a {\n color: #ffffff;\n font-weight: bold;\n text-decoration: underline;\n}\n\n#wpstg-resume-cloning {\n display: none;\n}\n\n#wpstg-external-db th {\n text-align: left;\n width: 120px;\n}\n\n#wpstg-db-connect {\n font-weight: normal;\n}\n\n#wpstg-db-status {\n display: block;\n margin-top: 5px;\n padding: 5px;\n margin-bottom: 20px;\n border: 1px solid transparent;\n border-radius: 4px;\n text-decoration: none;\n text-align: center;\n}\n\n.wpstg-text-field > #wpstg-db-status {\n margin-top: 8px;\n margin-left: 150px;\n min-width: 300px;\n}\n\n.wpstg-success {\n color: #3c763d;\n background-color: #dff0d8;\n border-color: #d6e9c6;\n}\n\n.wpstg-failed {\n color: #a94442;\n background-color: #f2dede;\n border-color: #ebccd1;\n}\n\n#wpstg_select_tables_cloning {\n height: 600px;\n font-size: 13px;\n}\n\n#wpstg-update-notify {\n background-color: #E01E5A;\n font-size: 14px;\n color: #ffffff;\n line-height: normal;\n padding: 10px;\n}\n\n#wpstg-update-notify a {\n color: #ffffff;\n font-weight: bold;\n}\n\n.wpstg-pointer {\n cursor: pointer;\n}\n\n.wpstg--tab--header {\n background-color: white;\n /* margin-bottom: 10px; */\n /* padding: 16px; */\n position: relative;\n transition: border-color .2s ease-in-out;\n background-color: #ffffff;\n color: #3e3e3e;\n border-radius: 2px;\n box-shadow: 0 0 1px rgba(0, 0, 0, .125), 0 1px 3px rgba(0, 0, 0, .02);\n}\n\n.wpstg--tab--header ul {\n display: flex;\n}\n\n.wpstg--tab--header ul li {\n margin-right: 1em;\n margin-bottom: 0px;\n}\n\n.wpstg--tab--header ul li:last-child {\n margin-right: 0;\n}\n\n.wpstg--tab--header a {\n min-width: 150px;\n text-align: center;\n cursor: pointer;\n display: inline-block;\n padding: 1em 1.25em;\n padding-bottom: 9px;\n color: #c4c4c4;\n font-size: 18px;\n /*\n border: solid 1px;\n */\n}\n\n.wpstg--tab--header a.wpstg--tab--active {\n border-bottom: .4em solid #25A1F0;\n color: #25A1F0;\n}\n\n.wpstg--tab--header a:hover {\n background-color: #fefefe;\n border-bottom: 0.4em solid #25A1F0;\n color: #25A1F0;\n}\n\n.wpstg--tab--content {\n display: none;\n}\n\n.wpstg--tab--active {\n display: block;\n}\n\n.wpstg--text--strong,\n.wpstg--text--strong * {\n font-weight: bold !important;\n}\n\n.wpstg--text--danger {\n color: #a94442;\n}\n\n.wpstg--tooltip {\n position: relative;\n display: inline-block;\n border-bottom: 1px dotted black;\n margin-left: 10px;\n}\n\n.wpstg--tooltip .wpstg--tooltiptext {\n visibility: hidden;\n width: 300px;\n background-color: #ffffff;\n color: #505050;\n text-align: left;\n padding: 12px;\n border-radius: 3px;\n position: absolute;\n z-index: 1;\n -webkit-box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 6px rgba(0, 0, 0, 0.23);\n -moz-box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 6px rgba(0, 0, 0, 0.23);\n box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 6px rgba(0, 0, 0, 0.23);\n}\n\n.wpstg--tooltiptext-backups {\n width: 120px;\n top: 100%;\n left: -150%;\n margin-left: -56px;\n margin-top: 4px;\n}\n\n.wpstg--tooltip.wpstg--exclude-rules--tooltip {\n border-bottom: 0px solid transparent;\n}\n\n.wpstg--tooltip.wpstg--exclude-rules--tooltip > .wpstg--tooltiptext {\n margin-top: 0px;\n margin-left: -150px;\n}\n\n/**\nTooltip top arrow\n */\n\n.wpstg--tooltip .wpstg--tooltiptext-backups::after {\n content: \" \";\n position: absolute;\n bottom: 100%;\n /* At the top of the tooltip */\n left: 50%;\n margin-left: 25px;\n border-width: 5px;\n border-style: solid;\n border-color: transparent transparent white transparent;\n}\n\n.wpstg--tooltip .wpstg--tooltiptext.has-top-arrow {\n margin-top: 6px;\n}\n\n.wpstg--tooltip .wpstg--tooltiptext.has-top-arrow::after {\n content: \" \";\n position: absolute;\n bottom: 100%;\n left: 50%;\n margin-left: -18px;\n border-width: 5px;\n border-style: solid;\n border-color: transparent transparent white transparent;\n}\n\n.wpstg--snaphot-restore-table tr {\n line-height: 12px;\n}\n\n.wpstg-float-left {\n float: left;\n}\n\n.wpstg-beta-notice {\n background-color: #b0e8b0;\n border-radius: 3px;\n padding: 7px;\n margin-bottom: 20px;\n}\n\n#wpstg-backup-name {\n font-size: 1.875em;\n font-weight: 600;\n}\n\n#wpstg_select_tables_cloning option:checked {\n /* Cannot use background color here because Chrome and Firefox ignore it even if set to !important */\n -webkit-appearance: menulist-button;\n background-image: linear-gradient(0deg, #1e90ff 0%, #1e90ff 100%);\n}\n\n.wpstg--btn--cancel {\n background: #ff3428;\n border-color: #e72f24;\n color: #fff;\n height: auto;\n line-height: normal;\n font-size: 16px;\n padding: .5em;\n margin-bottom: 1.5em;\n}\n\n.wpstg--btn--cancel:hover {\n background: #ff3428;\n border-color: #e72f24;\n}\n\n.wpstg--process--content > .wpstg--swal2-html-container {\n padding: 4em 2em !important;\n}\n\n.wpstg--modal--process--logs,\n.wpstg--modal--error--logs {\n background: #ffffff;\n border: 1px solid #a8a8a8;\n border-radius: 3px;\n height: 300px;\n margin-top: 1em;\n display: none;\n padding-top: 10px;\n padding-left: 10px;\n overflow: auto;\n text-align: justify;\n}\n\n.wpstg--modal--error--logs {\n height: auto;\n max-height: 300px;\n}\n\n.wpstg--modal--process--logs p {\n font-size: 12px;\n white-space: nowrap;\n}\n\n.wpstg--modal--process--logs p.wpstg--modal--process--msg--info {\n color: #222222;\n}\n\n.wpstg--modal--process--logs p.wpstg--modal--process--msg--debug {\n color: #757575;\n}\n\n.wpstg--modal--process--title {\n color: #565656;\n margin: .25em 0;\n}\n\n.wpstg--modal--process--subtitle {\n margin: .5em 0;\n color: #565656;\n}\n\n.wpstg--modal--error--logs > p {\n text-align: left;\n font-size: 14px;\n color: #222222;\n}\n\n.wpstg--modal--process--logs p,\n.wpstg--modal--error--logs p {\n margin: 0px;\n margin-bottom: 2px;\n}\n\n.wpstg--modal--process--msg--error {\n color: #E01E5A;\n}\n\n.wpstg--modal--process--msg--critical {\n color: #E01E5A;\n}\n\n.wpstg--modal--process--msg--warning {\n color: darkorange;\n}\n\n.wpstg--modal--process--msg-found {\n font-size: 16px;\n color: #E01E5A;\n font-weight: bold;\n}\n\n.wpstg--modal--delete {\n text-align: left;\n margin-top: 8px;\n color: #565656;\n}\n\n.wpstg-swal-popup .wpstg--swal2-cancel.wpstg--btn--cancel {\n margin-bottom: 0;\n text-shadow: none !important;\n}\n\n.wpstg-swal-popup .wpstg-loader {\n display: inline-block !important;\n}\n\n.wpstg--modal--process--generic-problem {\n display: none;\n border-left: 5px solid #E01E5A;\n margin: .5em 0;\n}\n\n.wpstg--modal--process--logs--tail {\n font-size: 16px;\n color: #565656;\n background: none;\n border: none;\n cursor: pointer;\n}\n\n.wpstg--modal--backup--import--upload--title {\n color: #565656;\n}\n\n.wpstg--modal--backup--import--configure,\n.wpstg--modal--backup--import--upload--status,\n.wpstg--modal--backup--import--upload--container input[type=\"file\"] {\n display: none;\n}\n\n#wpstg--backups--import--file-list {\n font-size: 14px;\n font-weight: bold;\n}\n\n#wpstg--backups--import--file-list-empty {\n color: #E01E5A;\n}\n\n.wpstg--modal--backup--import--filesystem label {\n font-size: 14px;\n}\n\n.wpstg--modal--backup--import--filesystem button {\n margin-bottom: 20px;\n}\n\n.wpstg--modal--backup--import--upload {\n position: relative;\n min-height: 30px;\n}\n\n.wpstg--modal--backup--import--upload {\n color: #505050;\n}\n\n.wpstg--modal--backup--import--upload--container {\n position: relative;\n border-radius: 10px;\n margin: .5em;\n padding: 1em .5em;\n border: 3.5px dashed #dedede;\n transition: background-color 0.3s ease, color 0.3s ease;\n background-color: #f4fbff;\n min-height: 130px;\n}\n\n.wpstg--modal--backup--import--upload--container.wpstg--has-dragover span.wpstg--drop {\n display: inline-flex;\n}\n\n.wpstg--modal--backup--import--upload--container input[type='file'] {\n display: none;\n}\n\n.wpstg--modal--backup--import--upload--container img {\n width: 4em;\n align-self: center;\n border: none;\n}\n\n.wpstg--modal--backup--import--upload--container span {\n margin-top: 1em;\n}\n\n.wpstg--backup--import--options > button {\n margin-top: 1em;\n padding: 1em;\n align-self: center;\n width: 185px;\n height: auto;\n line-height: normal;\n}\n\n.wpstg--backup--import--options {\n position: relative;\n display: flex;\n justify-content: center;\n}\n\n.wpstg--backup--import--options ul {\n display: none;\n}\n\n.wpstg--backup--import--options.wpstg--show-options ul {\n padding: 0;\n margin: 54px 0 0 0;\n display: block;\n position: absolute;\n width: 185px;\n background: #25a1f0;\n box-sizing: border-box;\n border-radius: 0 0 3px 3px;\n border-width: 1px;\n border-color: #2188c9;\n text-shadow: 0 -1px 1px #006799, 1px 0 1px #006799, 0 1px 1px #006799, -1px 0 1px #006799;\n}\n\n.wpstg--backup--import--options.wpstg--show-options ul li {\n border-bottom: .1em solid #25a1f0;\n margin: 0;\n}\n\n.wpstg--backup--import--options.wpstg--show-options ul li:hover {\n background-color: #25a1f0;\n}\n\n.wpstg--backup--import--options.wpstg--show-options ul li:last-child {\n border-bottom: none;\n}\n\n.wpstg--backup--import--options ul li button {\n cursor: pointer;\n background: none;\n border: none;\n margin: 0;\n width: 100%;\n color: white;\n height: 40px;\n line-height: 40px;\n}\n\n.wpstg--backup--import--options ul li button:hover {\n background-color: #259be6;\n}\n\n.wpstg--modal--backup--import--search-replace--info {\n margin: 1em 0;\n display: flex;\n flex-direction: row;\n}\n\n.wpstg--modal--backup--import--info p {\n text-align: left;\n margin: 0;\n}\n\n.wpstg--modal--backup--import--search-replace--wrapper button {\n align-self: center;\n}\n\n.wpstg--import--advanced-options--button {\n border: 0;\n border-radius: 3px;\n font-size: 18px;\n text-shadow: 0 -1px 1px #006799, 1px 0 1px #006799, 0 1px 1px #006799, -1px 0 1px #006799;\n cursor: pointer;\n}\n\n.wpstg--modal--backup--import--search-replace--new {\n color: white;\n background-color: #25a1f0;\n}\n\n.wpstg--modal--backup--import--search-replace--remove {\n color: white;\n background-color: #25a1f0;\n width: 22px;\n height: 22px;\n margin-left: 5px;\n}\n\n.wpstg--modal--backup--import--search-replace--input-group:first-child button {\n display: none;\n}\n\n.wpstg--modal--backup--import--search-replace--input--container {\n flex: 1;\n display: flex;\n flex-direction: column;\n}\n\n.wpstg--modal--backup--import--search-replace--input-group {\n width: 100%;\n border-bottom: 6px solid #f1f1f1;\n margin-bottom: 10px;\n}\n\n.wpstg--modal--backup--import--search-replace--input-group input {\n min-width: 250px;\n width: calc(50% - 4px - 11px - 5px); /* -4px is half of the padding; -11px is half of the button; -5 is the margin left of the button */\n display: inline-block;\n line-height: 10px;\n border: 1px solid #dedede;\n border-radius: 3px;\n color: #666;\n padding: 8px;\n margin-bottom: 12px;\n}\n\n.wpstg--modal--import--upload--process {\n display: none;\n position: relative;\n height: 30px;\n margin-top: 20px;\n margin-bottom: 20px;\n width: 100%;\n top: 0;\n left: 0;\n text-indent: 1em;\n white-space: nowrap;\n overflow: hidden;\n color: #333333;\n justify-content: center;\n align-items: center;\n}\n\n.wpstg--modal--import--upload--progress {\n position: absolute;\n background: #98d452;\n color: white;\n height: 100%;\n border-radius: 4px;\n left: 0;\n top: 0;\n}\n\n.wpstg--modal--import--upload--progress--title {\n z-index: 9;\n}\n\n.wpstg-fieldset:disabled {\n opacity: 0.8;\n border-top: 1px solid white;\n margin-top: 20px;\n}\n\n.wpstg-fieldset {\n padding-left: 20px;\n}\n\n.wpstg-fs-14 {\n font-size: 14px;\n}\n\n.wpstg-dark-alert {\n font-weight: bold;\n background-color: #0e86d9;\n padding: 15px;\n margin-top: 0px;\n color: white;\n}\n\n.wpstg-dark-alert .wpstg-button--cta-red {\n margin-left:10px;\n}\n\n.wpstg-form-group {\n display: block;\n width: 100%;\n margin-bottom: 8px;\n align-items: center;\n}\n\n.wpstg-form-group > label {\n display: block;\n font-weight: 700;\n}\n\n.wpstg-text-field > input {\n width: 300px;\n display: block;\n line-height: 1.5;\n}\n\n.wpstg-code-segment {\n display: block;\n}\n\n.wpstg-text-field > .wpstg-code-segment {\n margin-top: 4px;\n min-width: 300px;\n}\n\n.wpstg-form-group > .wpstg-checkbox {\n min-width: 100%;\n width: 100%;\n position: relative;\n}\n\n.wpstg-form-group > .wpstg-checkbox > input[type='checkbox'] {\n left: 150px;\n}\n\n.wpstg-rounded {\n border-radius: 3px;\n}\n\n.wpstg-white-border {\n border: 1px solid white !important;\n}\n\n.wpstg-ml-4 {\n margin-left: 4px;\n}\n\n#wpstg-confirm-backup-restore-data {\n margin: 40px;\n text-align: left;\n}\n\n#wpstg-advanced-settings hr {\n margin: 20px 0;\n}\n\n.wpstg-form-row {\n display: block;\n}\n\n.wpstg-form-row label,\n.wpstg-form-row input {\n display: table-cell;\n padding-left: 5px;\n padding-right: 5px;\n margin-top: 3px;\n margin-bottom: 3px;\n}\n\n.wpstg-form-row input {\n width: 400px;\n}\n\n.wpstg-form-row label {\n font-weight: bold;\n width: 1px;\n white-space: nowrap;\n}\n\n#wpstg-db-connect-output #wpstg-db-status {\n width: 390px;\n}\n\n.wpstg-fs-14 {\n font-size: 14px;\n}\n\n.wpstg-code-segment {\n display: block;\n}\n\n.wpstg-form-group > .wpstg-checkbox {\n min-width: 100%;\n width: 100%;\n}\n\n.wpstg-form-group > .wpstg-checkbox > input[type='checkbox'] {\n margin-left: 10px;\n}\n\n@media only screen and (max-width: 768px) {\n .wpstg-form-group > label {\n min-width: auto;\n width: auto;\n }\n\n .wpstg-text-field > input {\n width: 100%;\n }\n\n .wpstg-text-field > .wpstg-code-segment {\n margin-left: 0;\n min-width: 100%;\n }\n\n .wpstg-tab-section {\n width: calc(100vw - 60px);\n max-width: 450px;\n }\n}\n\n.wpstg-rounded {\n border-radius: 3px;\n}\n\n.wpstg-white-border {\n border: 1px solid white !important;\n}\n\n.wpstg-m-0 {\n margin: 0;\n}\n\n.wpstg-mt-10px {\n margin-top: 10px !important;\n}\n\n.wpstg-my-10px {\n margin-top: 10px !important;\n margin-bottom: 10px !important;\n}\n\n.wpstg-w-100 {\n width: 100%;\n}\n\n.wpstg-box-shadow {\n box-shadow: 0 1px 1px 0 rgba(0, 0, 0, .1);\n}\n\n.wpstg-float-left {\n float: left;\n}\n\n.wpstg-bold-text {\n font-weight: bold;\n}\n\n.wpstg-warning.notice {\n border-left: 4px solid #ffba00;\n}\n\n.wpstg-confirmation-label {\n background-color: #5b9dd9;\n color: #fff;\n padding: 2px;\n border-radius: 3px;\n}\n\n.wpstg-my-6px {\n margin-bottom: 6px;\n margin-top: 6px;\n}\n\n.wpstg-mb-10px {\n margin-bottom: 10px;\n}\n\n.wpstg-clear-both {\n clear: both;\n}\n\n.wpstg-font-italic {\n font-style: italic;\n}\n\n.wpstg-mt-20px {\n margin-top: 20px;\n}\n\n.wpstg-welcome-container {\n border: 2px solid white;\n padding: 20px;\n margin-bottom: 20px;\n}\n\n.wpstg-ml-30px {\n margin-left: 30px;\n}\n\n.wpstg-text-center {\n text-align: center;\n}\n\n.wpstg-feedback-link {\n text-decoration: none;\n}\n\n.wpstg-feedback-span {\n display: block;\n margin-bottom: 3px;\n}\n\n#wpstg-confirm-backup-restore-data {\n margin: 40px;\n text-align: left;\n}\n\n#wpstg-confirm-backup-restore-wrapper {\n margin: 30px;\n margin-top: 0;\n}\n\n#wpstg-confirm-backup-restore-wrapper h3 {\n color: #E01E5A;\n}\n\n#wpstg-progress-db,\n#wpstg-progress-backup {\n background-color: #3fa5ee;\n}\n\n#wpstg-progress-sr,\n#wpstg-progress-files.wpstg-pro {\n background-color: #3c9ee4;\n}\n\n#wpstg-progress-dirs,\n#wpstg-progress-data {\n background-color: #3a96d7;\n}\n\n#wpstg-progress-files:not(.wpstg-pro),\n#wpstg-progress-finishing {\n background-color: #378cc9;\n}\n\n.wpstg-issue-resubmit-confirmation.wpstg--swal2-container,\n.wpstg-swal2-container.wpstg--swal2-container {\n z-index: 10500;\n}\n\n.wpstg-swal2-container.wpstg-swal2-loading .wpstg--swal2-actions,\n.wpstg-swal2-container.wpstg-swal2-loading .wpstg--swal2-header {\n display: none;\n}\n\nbody.toplevel_page_wpstg_backup .wpstg--swal2-container .wpstg--swal2-content,\nbody.toplevel_page_wpstg_clone .wpstg--swal2-container .wpstg--swal2-content {\n z-index: 2;\n}\n\n.toplevel_page_wpstg_clone #swal2-content h2 {\n color: #565656;\n}\n\n.toplevel_page_wpstg_clone #swal2-content {\n line-height: 1.5em;\n}\n\ndiv#exportUploadsWithoutDatabaseWarning {\n font-style: italic;\n font-size: 0.9rem;\n margin: 10px;\n padding: 10px;\n border: 1px solid #e3e3e3;\n border-radius: 5px;\n text-align: center;\n background-color: #fafafa;\n}\n\n.wpstg-advanced-options-dropdown-wrapper {\n display: none; /* ENABLE WHEN WE HAVE ADVANCED OPTIONS FOR EXPORTING */\n margin-top: 20px;\n}\n\n.wpstg--modal--backup--import--search-replace--wrapper {\n text-align: left;\n margin-top: 20px;\n}\n\n.wpstg--modal--backup--import--search-replace--new--wrapper {\n text-align: center;\n}\n\n.wpstg-import-backup-contains li {\n display: inline-block;\n}\n\n.wpstg-import-backup-contains li .wpstg-backups-contains {\n border-radius: 3px;\n color: #979797;\n background-color: #e3e3e3;\n border: 1px solid #c2c2c2;\n width: 17px;\n height: 17px;\n font-size: 17px;\n}\n\n.wpstg-import-backup-contains.wpstg-listing-single-backup li .wpstg-backups-contains {\n padding: 2px;\n background-color: white;\n border: 1px solid #c2c2c2;\n}\n\n.wpstg-import-backup-contains.wpstg-listing-single-backup li .wpstg-backups-contains > .wpstg--dashicons {\n filter: invert(50%);\n}\n\n.wpstg-import-backup-contains .wpstg--tooltiptext {\n width: 50px;\n font-size: x-small;\n padding: 5px;\n left: -25px;\n text-align: center;\n}\n\n.wpstg-import-backup-contains-title {\n display: inline-block;\n}\n\nul.wpstg-import-backup-contains {\n display: inline-block;\n}\n\n.wpstg-import-backup-name {\n display: inline-block;\n font-weight: bold;\n}\n\n.wpstg-backup-more-info-toggle {\n font-size: x-small;\n display: inline-block;\n font-style: italic;\n cursor: pointer;\n}\n\n.wpstg-backup-more-info-toggle::selection {\n background: none;\n}\n\nul.wpstg-import-backup-more-info {\n font-size: 14px;\n text-align: left;\n margin-bottom: 30px;\n margin-top: 10px;\n background-color: #f6f6f6;\n border: 1px solid #878787;\n border-radius: 3px;\n padding: 7px;\n cursor: pointer;\n}\n\nul.wpstg-import-backup-more-info:hover {\n background-color: #def2ff;\n border: 1px solid #25a1f0;\n}\n\nul.wpstg-import-backup-more-info li {\n height: 20px;\n}\n\n.wpstg-backup-list {\n max-width: 800px;\n}\n\n.wpstg-backup-list h3 {\n color:#3e3e3e;\n}\n\n.wpstg-backup-list ul ul {\n margin-block-start: 1em;\n margin-block-end: 1em;\n}\n\n.wpstg-push-confirmation-message {\n text-align: justify;\n font-size: 15px;\n}\n\n.wpstg-settings-row {\n padding-top: 10px;\n padding-bottom: 10px;\n}\n\n.wpstg-settings-title {\n font-weight: 600;\n}\n\n.wpstg-settings-form-group {\n display: flex;\n align-items: center;\n}\n\n.wpstg-settings-form-group > .wpstg-settings-message {\n width: 30%;\n padding: 0;\n margin: 7px 0 0;\n}\n\n/**\n * WP STAGING EXCLUSION RULES TABLE LAYOUT\n */\n\n.wpstg-excluded-filters-container {\n padding: 0;\n margin-top: 10px;\n margin-bottom: 10px;\n max-width: 100%;\n width: 100%;\n}\n\n.wpstg-excluded-filters-container > table {\n width: 100%;\n border-collapse: collapse;\n border-color: transparent;\n}\n\n.wpstg-excluded-filters-container td {\n padding-top: 4px;\n padding-bottom: 4px;\n height: 20px;\n}\n\n.wpstg-excluded-filters-container h4 {\n margin: 0;\n}\n\n.wpstg-exclude-filters-foot {\n display: flex;\n justify-content: flex-start;\n padding: 0;\n}\n\n/**\n * WP STAGING EXCLUSION RULE DROPDOWN STYLE\n */\n\n\n.wpstg-exclude-filter-dropdown > button:hover {\n background: #135e96;;\n border: 1px solid #135e96;;\n}\n\n.wpstg-exclude-filter-dropdown > .wpstg-dropdown-menu {\n width: 128px;\n}\n\n.wpstg-remove-exclude-rule {\n color: #fff !important;\n background-color: #e01e5a;\n border: 1px solid #e01e5a;\n width: 20px;\n height: 20px;\n border-radius: 10px;\n font-size: 24px;\n padding: 0;\n display: inline-flex;\n justify-content: center;\n outline: none;\n box-shadow: none;\n font-weight: 400;\n line-height: 0.7;\n margin-top: 5px;\n cursor: pointer;\n}\n\n.wpstg-remove-exclude-rule:hover {\n background-color: #E01E5A;\n border-color: #E01E5A;\n}\n\n.wpstg-code-block {\n margin-top: 4px;\n font-size: 1.2em;\n background: #f8f8f8;\n border-radius: 2px;\n}\n\n.wpstg-rule-info {\n background: #f8f8f8 !important;\n}\n\ncode.wpstg-code {\n display: inline-block;\n font-size: 11px;\n border: 1px solid #aaa;\n background: #fff;\n padding: 2px 4px;\n margin-bottom: 1px;\n color: #E01E5A;\n}\n\n.wpstg-exclusion-rule-info {\n color: #fff !important;\n background-color: #ffc107;\n border: 1px solid #ffc107;\n width: 14px;\n height: 14px;\n border-radius: 7px;\n font-size: 14px;\n padding: 0;\n display: inline-flex;\n justify-content: center;\n align-items: center;\n outline: none;\n box-shadow: none;\n font-weight: 400;\n vertical-align: middle;\n}\n\n.wpstg-exclusion-rule-info:hover {\n background-color: #ffba0c;\n border: 1px solid #ffba0c;\n}\n\n/**\n * WP STAGING INPUTS EXCLUSION RULES\n */\n\n.wpstg-exclude-rule-input {\n font-size: 12px !important;\n padding: 2px 6px;\n box-shadow: none;\n outline: none !important;\n display: inline-block;\n font-weight: 400;\n line-height: 1.5;\n color: #222;\n border-radius: 0 !important;\n background-color: #fff;\n border: 1px solid #bbb;\n min-height: 24px !important;\n margin-top: 4px;\n margin-left: 4px;\n vertical-align: baseline !important;\n transition: all 0.3s cubic-bezier(.25, .8, .25, 1);\n width: 135px;\n}\n\n.wpstg-excluded-filters-container tbody > tr:last-child .wpstg-exclude-rule-input {\n margin-bottom: 4px;\n}\n\n.wpstg-exclude-rule-input:hover {\n border: 1px solid #999;\n}\n\n.wpstg-exclude-rule-input:focus {\n border: 1px solid #25A0F1 !important;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24) !important;\n}\n\n.wpstg-file-size-exclude-select,\n.wpstg-path-exclude-select {\n width: 135px;\n}\n\n.wpstg-file-size-exclude-select-small {\n width: 52px;\n}\n\n.wpstg-file-size-exclude-input {\n width: 75px;\n}\n\n.wpstg-staging-option-title {\n margin: 15px 0 0;\n}\n\n.wpstg-swal-push-container.wpstg--swal2-container {\n z-index: 9995;\n}\n\n#wpstg-scanning-files {\n padding-bottom: 5px;\n}\n\n#wpstg-scanning-files.wpstg-tab-section, #wpstg-scanning-db.wpstg-tab-section {\n padding-top: 10px;\n}\n\n.wpstg-reset-excludes-container {\n margin: 10px 0;\n}\n\n.wpstg-swal2-ajax-loader {\n width: 100%;\n height: 150px;\n overflow: hidden;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n\n@keyframes wpstg-loading-icon-anim {\n 0% {\n transform: rotate(0);\n }\n 100% {\n transform: rotate(360deg);\n }\n}\n\n.wpstg-swal2-ajax-loader > img {\n width: 64px;\n height: 64px;\n animation: wpstg-loading-icon-anim 1s infinite linear;\n -webkit-animation: wpstg-loading-icon-anim 1s infinite linear;\n}\n\n.wpstg-swal2-container .wpstg-tab-section {\n width: auto !important;\n}\n\n#wpstg-no-staging-site-results {\n margin-top: 10px;\n max-width: 375px;\n}\n\nli#wpstg-backup-no-results {\n max-width: 500px;\n}\n\nli#wpstg-backup-no-results div, #wpstg-no-staging-site-results div {\n display: inline-block;\n text-align: center;\n}\n\nli#wpstg-backup-no-results .wpstg--dashicons, #wpstg-no-staging-site-results .wpstg--dashicons {\n filter: invert(50%);\n position: absolute;\n margin-top: 1px;\n}\n\nli#wpstg-backup-no-results .no-backups-found-text, #wpstg-no-staging-site-results .no-staging-site-found-text {\n color: #5d5d5d;\n margin-left: 20px;\n}\n\n@media only screen and (max-width: 680px) {\n li#wpstg-backup-no-results div, #wpstg-no-staging-site-results div {\n width: 100%;\n }\n}\n\n#wpstg--modal--backup--download-inner p.wpstg-download-modal-text {\n font-size: 16px;\n color: #565656;\n}\n\n#wpstg--modal--backup--download-inner h2 {\n color: #565656;\n}\n\n.wpstg-backup-restore-contains-database,\n.wpstg-backup-restore-contains-files {\n display: none;\n}\n\n.wpstg-green-button {\n background: #8bc34a;\n border: 1px solid #78a93f;\n color: white;\n text-shadow: 0 -1px 1px #78a93f, 1px 0 1px #78a93f, 0 1px 1px #40c921, -1px 0 1px #78a93f;\n}\n\n.wpstg-green-button:hover {\n background: #78a93f;\n}\n\n.wpstg-is-dir-loading {\n position: absolute;\n margin-top: -2px;\n margin-left: 8px;\n display: none;\n}\n\n.wpstg-ml-8px {\n margin-left: 8px;\n}\n\n.wpstg-mb-8px {\n margin-bottom: 8px;\n}\n\n\n.wpstg-btn-danger {\n background-color: #E01E5A;\n border: 1px solid #E01E5A;\n color: white;\n text-shadow: none;\n}\n\n.wpstg-btn-danger:hover {\n background: #c0194d;\n box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3);\n}\n\n.wpstg-swal2-container.wpstg-swal2-loading > .wpstg--swal2-modal {\n height: 200px;\n}\n\n.wpstg-reset-confirmation.wpstg-swal2-container:not(.wpstg-swal2-loading) > .wpstg--swal2-modal {\n max-width: 480px;\n}\n\n.wpstg-reset-confirmation.wpstg-swal2-container .wpstg--swal2-header {\n display: none;\n}\n\n.wpstg-reset-confirmation.wpstg-swal2-container .wpstg--swal2-content {\n height: auto;\n}\n\n.wpstg-reset-confirmation.wpstg-swal2-container > .wpstg--swal2-modal > .wpstg--swal2-content .wpstg-tabs-wrapper {\n overflow-y: auto;\n height: auto !important;\n}\n\n.wpstg-reset-confirmation.wpstg-swal2-container > .wpstg--swal2-modal > .wpstg--swal2-content {\n font-size: 13px;\n}\n\n.wpstg-reset-confirmation.wpstg-swal2-container > .wpstg--swal2-modal > .wpstg--swal2-content .wpstg-dir {\n margin-bottom: 4px;\n}\n\n.wpstg-reset-confirmation.wpstg-swal2-container > .wpstg--swal2-modal > .wpstg--swal2-content .wpstg-subdir {\n margin-top: 4px;\n}\n\n.wpstg-reset-confirmation.wpstg-swal2-container.has-collapsible-open .wpstg--swal2-modal {\n height: calc(100vh - 70px);\n}\n\n.wpstg-reset-confirmation.wpstg-swal2-container.has-collapsible-open > .wpstg--swal2-modal > .wpstg--swal2-content .wpstg-tabs-wrapper {\n height: calc(100vh - 350px) !important;\n}\n\n.wpstg--swal2-actions.wpstg--modal--actions > button {\n margin-left: 4px;\n margin-right: 4px;\n text-transform: uppercase;\n text-shadow: initial;\n font-weight: 500;\n min-width: 80px;\n}\n\n.wpstg-swal-popup {\n max-width: 1200px !important;\n}\n\n.wpstg-swal-popup.wpstg-push-finished .wpstg--swal2-title {\n color: #a8a8a8;\n}\n\n.wpstg-swal-popup.wpstg-push-finished .wpstg--swal2-content {\n margin-top: 8px;\n color: #a8a8a8;\n}\n\n.wpstg-swal-popup .wpstg--swal2-progress-steps .wpstg--swal2-progress-step.wpstg--swal2-active-progress-step,\n.wpstg-swal-popup .wpstg--swal2-progress-steps .wpstg--swal2-progress-step,\n.wpstg-swal-popup .wpstg--swal2-progress-steps .wpstg--swal2-progress-step-line {\n background: #25a1f0;\n}\n\n.wpstg-swal-popup .wpstg--swal2-progress-steps .wpstg--swal2-progress-step-line {\n width: 2.75em;\n}\n\n.wpstg--dashicons {\n width: 16px;\n height: 16px;\n}\n\n.wpstg--dashicons.wpstg-dashicons-grey {\n filter: invert(20%);\n}\n\n.wpstg--dashicons.wpstg-dashicons-19 {\n width: 19px;\n height: 19px;\n}\n\n.wpstg--dashicons.wpstg-dashicons-21 {\n width: 21px;\n height: 21px;\n}\n\n#wpstg--tab--backup #wpstg-step-1 {\n display: flex;\n align-items: center;\n}\n\n.wpstg-advanced-options .wpstg--tooltip,\n#wpstg--tab--backup #wpstg-step-1 .wpstg--tooltip {\n border-bottom: 0 solid transparent;\n display: inline-flex;\n align-items: center;\n}\n\n#wpstg--tab--backup #wpstg-step-1 .wpstg--tooltip {\n border-bottom: 0 solid transparent;\n display: flex;\n align-items: center;\n}\n\n.wpstg--tooltip .wpstg--tooltiptext-backups::after {\n left: calc(20% + 2px);\n}\n\n.wpstg-listing-single-backup .wpstg--dashicons {\n width: 17px;\n height: 17px;\n}\n\n.wpstg-100-width {\n width: 100px;\n}\n\n.wpstg-caret {\n display: inline-block;\n width: 0;\n height: 0;\n margin-left: 2px;\n vertical-align: middle;\n border-top: 4px solid;\n border-right: 4px solid transparent;\n border-left: 4px solid transparent;\n transition: transform 0.2s;\n cursor: pointer;\n}\n\n.wpstg-caret.wpstg-caret-up {\n transform: rotate(-180deg);\n}\n\n.wpstg-advanced-options-site label {\n font-size: 16px;\n display: block;\n margin: .5em 0;\n}\n\n#wpstg-confirm-backup-restore-data {\n font-size: 18px;\n margin: 0;\n margin-top: 30px;\n}\n\n/* Sweetalert WP STAGING Theme */\n\nbody.toplevel_page_wpstg_backup .wpstg--swal2-container.wpstg--swal2-backdrop-show,\nbody.toplevel_page_wpstg_clone .wpstg--swal2-container.wpstg--swal2-backdrop-show {\n background: rgba(0, 0, 0, .6);\n z-index: 9995;\n}\n\n.wpstg-swal-popup.wpstg--swal2-popup {\n border-radius: 8px;\n z-index: 9999;\n padding: 24px;\n color: #565656;\n font-family: Verdana, Geneva, Tahoma, sans-serif;\n}\n\n.wpstg-swal-popup .wpstg--swal2-title {\n font-size: 22px;\n color: #565656;\n}\n\n.wpstg-swal-popup.wpstg--swal2-popup:not(.centered-modal) .wpstg--swal2-title {\n align-self: flex-start; /* For an actual Swal title */\n text-align: left; /* Manually adding this class to a non flex display */\n margin-bottom: 0;\n}\n\n.wpstg-swal-popup .wpstg--swal2-close {\n top: 8px;\n right: 8px;\n z-index: 5;\n}\n\n.wpstg-swal-popup .wpstg--swal2-close:focus {\n outline: none;\n}\n\n.wpstg-swal-popup.wpstg--swal2-popup:not(.centered-modal) .wpstg--swal2-actions {\n justify-content: flex-end;\n}\n\n.wpstg-swal-popup .wpstg--swal2-actions > button {\n border-radius: 4px;\n font-weight: 900;\n border: 0;\n font-size: 15px;\n padding: 10px 12px;\n text-transform: capitalize;\n line-height: normal;\n height: 40px;\n min-width: 100px;\n text-shadow: none;\n}\n\n.wpstg-swal-popup.wpstg--swal2-popup:not(.centered-modal) .wpstg--swal2-actions > button {\n margin-left: 8px;\n}\n\n.wpstg-swal-popup .wpstg--swal2-actions > button.wpstg--swal2-cancel {\n border: 1px solid rgba(29, 28, 29, 0.3);\n background: #fff;\n color: rgb(29, 28, 29);\n font-weight: 500;\n width: 100px;\n text-shadow: none;\n}\n\n.wpstg-swal-popup .wpstg--swal2-actions > button:hover {\n box-shadow: 0 1px 3px 0 rgba(0 0 0 .1);\n}\n\n.wpstg-swal-popup .wpstg--swal2-actions > button.wpstg--swal2-cancel:hover {\n background: rgba(28, 29, 28, .04);\n}\n\n#wpstg-backup-name-input {\n height: 44px;\n font-size: 18px;\n}\n\n.wpstg-restore-finished-container .wpstg--swal2-title {\n color: #565656 !important;\n}\n\n/*#wpstg-restore-success {\n color: #565656;\n}*/\n\n.wpstg-restore-finished-container .wpstg--swal2-content {\n margin-top: 20px;\n color: #a8a8a8;\n}\n\n/* WP Staging Implementation of Windows Style Linear Loader */\n\n.wpstg-linear-loader > span[class*=\"wpstg-linear-loader-item\"] {\n height: 6px;\n width: 6px;\n background: #333;\n display: inline-block;\n margin: 12px 2px;\n border-radius: 100%;\n animation: wpstg_linear_loader 3s infinite;\n animation-timing-function: cubic-bezier(0.030, 0.615, 0.995, 0.415);\n animation-fill-mode: both;\n}\n\n.wpstg-linear-loader > span.wpstg-linear-loader-item:nth-child(1) {\n animation-delay: 1s;\n}\n\n.wpstg-linear-loader > span.wpstg-linear-loader-item:nth-child(2) {\n animation-delay: 0.8s;\n}\n\n.wpstg-linear-loader > span.wpstg-linear-loader-item:nth-child(3) {\n animation-delay: 0.6s;\n}\n\n.wpstg-linear-loader > span.wpstg-linear-loader-item:nth-child(4) {\n animation-delay: 0.4s;\n}\n\n.wpstg-linear-loader > span.wpstg-linear-loader-item:nth-child(5) {\n animation-delay: 0.2s;\n}\n\n.wpstg-linear-loader > span.wpstg-linear-loader-item:nth-child(6) {\n animation-delay: 0s;\n}\n\n@keyframes wpstg_linear_loader {\n 0% {\n transform: translateX(-30px);\n opacity: 0;\n }\n 25% {\n opacity: 1;\n }\n 50% {\n transform: translateX(30px);\n opacity: 0;\n }\n 100% {\n opacity: 0;\n }\n}\n\n/* END - Windows Style Linear Loader */\n\n.wpstg--modal--backup--import--upload--content {\n padding: .75em;\n margin: 1em auto;\n}\n\n.wpstg--modal--backup--import--upload--content .wpstg-linear-loader {\n display: none;\n}\n\n#wpstg-multisite-disabled .wpstg-clone {\n width: 355px;\n}\n\n#wpstg-free-version-backups .wpstg-clone {\n text-align: center;\n}\n\n#wpstg-free-version-backups .wpstg-clone p {\n font-size: 16px;\n}\n\n.wpstg-staging-info li .backup-notes {\n word-break: break-word;\n}\n\n.wpstg--modal--import--upload--progress--title small {\n font-weight: normal;\n}\n\n#wpstg-report-issue-wrapper {\n position: relative;\n}\n\n#wpstg-report-issue-wrapper .arrow-up {\n width: 0;\n height: 0;\n border-left: 8px solid transparent;\n border-right: 8px solid transparent;\n border-bottom: 8px solid white;\n position: absolute;\n top: -8px;\n right: 40px;\n}\n\n.notice {\n margin: 10px 20px 0 2px;\n}\n\n.wpstg--notice {\n box-shadow: 0 1px 1px rgba(0, 0, 0, .04);\n margin: 20px 20px 20px 0px;\n padding: 1px 12px;\n}\n\n.wpstg--error a:hover {\n color: #eeeeee;\n}\n\n.wpstg--error, .wpstg--error a {\n background: #E01E5A;\n color: white;\n}\n\n/**\n * Buttons\n */\n\n.wpstg-button {\n display: inline-block;\n border-radius: 2px;\n cursor: pointer;\n padding: 2px 10px 2px 10px;\n text-transform: uppercase;\n font-weight: 500;\n outline: 0;\n transition: background-color .1s ease-in;\n text-decoration: none;\n}\n\n.wpstg-button.wpstg-save {\n background-color: #1687A7;\n color: white;\n}\n\n.wpstg-button.wpstg-save:hover {\n background-color: #276678;\n}\n\n\n.wpstg-button.wpstg-button-light {\n background-color: #f8f8f8;\n border: 1px solid #eee;\n color: #333;\n animation: background-color 0.3s;\n}\n\n.wpstg-button.wpstg-button-light:hover {\n background-color: #e0e0e0;\n border: 1px solid #e0e0e0;\n}\n\n.wpstg-buttons .spinner {\n float: none;\n margin: 0 0 0 5px;\n}\n\n.wpstg-button.danger {\n display: inline-block;\n text-decoration: none;\n text-align: center;\n text-transform: inherit;\n background-color: #E01E5A;\n color: white;\n border-radius: 2px;\n border-color: transparent;\n}\n\n.wpstg-button.danger:hover {\n background-color: #c0194d;\n}\n\n.wpstg-button--big {\n display: inline-block;\n padding: 10px;\n min-width: 170px;\n font-size: 16px;\n text-decoration: none;\n text-align: center;\n margin-top: 20px;\n color: white;\n border-radius: 3px;\n}\n\n.wpstg-button--primary {\n display: inline-block;\n text-decoration: none;\n font-size: 13px;\n line-height: 2.15384615;\n min-height: 30px;\n margin: 0;\n padding: 0 10px;\n cursor: pointer;\n border: 1px solid rgba(29, 28, 29, 0.3);\n -webkit-appearance: none;\n border-radius: 2px;\n white-space: nowrap;\n box-sizing: border-box;\n color: #171717;\n}\n\n.wpstg-button--primary:hover {\n background: rgba(28, 29, 28, .04);\n color: black;\n}\n\n.wpstg-button--secondary {\n display: inline-block;\n background-color: transparent;\n color: #95a5a6;\n border-radius: 2px;\n border: 1px solid rgba(29, 28, 29, 0.3);\n cursor: pointer;\n padding: 4px 10px 2px 10px;\n font-weight: 500;\n outline: 0;\n transition: background-color .1s ease-in;\n text-decoration: none;\n}\n\n.wpstg-button--red {\n background-color: #E01E5A;\n border-color: #E01E5A;\n color: white;\n}\n\n.wpstg-button--red:hover {\n background-color: #d02358;\n border-color: #e0255f;\n color: white;\n}\n\n.wpstg-button--cta-red {\n background-color: #fe008f;\n border-color: #E01E5A;\n color: white;\n}\n\n.wpstg-button--cta-red:hover {\n background-color: #f31391;\n border-color: #e0255f;\n color: white;\n}\n\n.wpstg-button--blue {\n background-color: #25A0F1;\n border-color: #25A0F1;\n color: white;\n}\n\n.wpstg-button--blue:hover {\n background-color: #259be6;\n border-color: #259be6;\n color: white;\n}\n\n#wpstg-button-backup-upgrade {\n font-size: 16px;\n}\n\n.wpstg-staging-status {\n color: #E01E5A;\n}\n\n#wpstg-push-changes,\n#wpstg-start-updating,\n#wpstg-save-clone-data {\n margin-left: 5px;\n}\n\ninput.wpstg-textbox {\n border: 1px solid #aaa;\n border-radius: .25rem;\n padding: 0.25rem 0.5rem;\n font-size: 14px;\n}\n\ninput.wpstg-textbox:focus {\n outline: 0;\n border-color: #259be6;\n -webkit-box-shadow: 0 0 0 0.1rem rgba(221, 221, 221, .35);\n box-shadow: 0 0 0 0.1rem rgba(221, 221, 221, .35);\n}\n\ninput.wpstg-textbox::placeholder {\n color: #888;\n}\n\n.wpstg--advance-settings--checkbox {\n display: flex;\n align-items: center;\n}\n\n.wpstg--advance-settings--checkbox > label {\n font-size: 14px;\n font-weight: bolder;\n width: 165px;\n display: inline-block;\n}\n\n.wpstg--advance-settings--checkbox > .wpstg--tooltip {\n margin-top: 5px;\n margin-left: 5px;\n position: relative;\n display: inline-block;\n border-bottom: 0px solid transparent;\n}\n\n.wpstg--advance-settings--checkbox > .wpstg--tooltip > .wpstg--tooltiptext {\n top: 18px;\n left: -150px;\n}\n\n\ndiv#wpstg-restore-wait {\n display: none;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n text-align: center;\n height: 100vh;\n width: 100vw;\n position: fixed;\n top: 0;\n left: 0;\n background: white;\n z-index: 99999;\n}\n\ndiv#wpstg-restore-wait .wpstg-title {\n font-weight: bold;\n}\n\ndiv#wpstg-restore-wait div {\n font-size: 16px;\n margin-top: 12px;\n}\n\n.resumable-browse {\n cursor: pointer;\n}\n\n.resumable-browse a {\n text-decoration: underline;\n}\n\n.wpstg-upload-text {\n font-weight: 600;\n}\n\n.wpstg--modal--backup--import--upload--container.dragover {\n transition: background-color 0.7s;\n background-color: #94dc96;\n color: #FFF;\n}\n\n.wpstg--modal--backup--import--upload--container.dragover * {\n pointer-events: none; /* Avoids flickering when dragging to drop a file */\n}\n\n.wpstg--modal--backup--import--upload--container.dragover .wpstg-upload-text {\n display: none;\n}\n\n.wpstg--modal--backup--import--upload--container.dragover .wpstg-dragover-text {\n display: block;\n}\n\n.wpstg--modal--backup--import--upload--container .wpstg-dragover-text {\n display: none;\n}\n\n#wpstg-invalid-license-message, #wpstg-invalid-license-message a {\n font-weight: 500;\n color: #E01E5A;\n margin-left: 6px;\n}\n\n#wpstg-sidebar--banner {\n max-width: 200px;\n}\n\n@media screen and (max-width: 1234px) {\n .wpstg-h2 {\n font-size: 24px;\n }\n\n #wpstg-welcome li {\n font-size: 14px;\n }\n}\n\n.wpstg-exclamation {\n color: #ffffff;\n border-radius: 100%;\n background-color: #E01E5A;\n width: 20px;\n height: 20px;\n text-align: center;\n font-weight: bold;\n display: inline-block;\n margin: 6px;\n}\n\n.wpstg--tab--contents {\n padding-top: 1px;\n}\n\n.wpstg-swal-show.wpstg--swal2-show {\n -webkit-animation: wpstg-swal-show 0.2s !important;\n animation: wpstg-swal-show 0.2s !important;\n}\n\n@-webkit-keyframes wpstg-swal-show {\n 0% {\n transform: scale(0.3);\n }\n 100% {\n transform: scale(1);\n }\n}\n\n@keyframes wpstg-swal-show {\n 0% {\n transform: scale(0.3);\n }\n 100% {\n transform: scale(1);\n }\n}\n"]}
1
+ {"version":3,"sources":["wpstg-admin.css"],"names":[],"mappings":"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","file":"wpstg-admin.min.css","sourcesContent":["/**\n * WPSTG Admin CSS\n *\n * @package WPSTG\n * @subpackage Admin CSS\n * @copyright Copyright (c) 2021, René Hermenau\n * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License\n*/\n\n/* Colors */\n\n.wpstg--violet {\n color: #9d37ae;\n}\n\n.wpstg-border--violet {\n border: 1px solid #9d37ae;\n}\n\n.wpstg--red {\n color: #E01E5A;\n}\n\n.wpstg-cta--red {\n color: #fe008f;\n}\n\n.wpstg--blue {\n color: #24a1f0;\n}\n\n.wpstg--darkblue {\n color: #0e86d9;\n}\n\n.wpstg--green {\n color: #83c11f;\n}\n\n.wpstg--grey {\n color: #3e3e3e;\n}\n\n.wpstg--darkgrey {\n color: #1b1b1b;\n}\n\n/* CSS for Tabs */\n\nbody.wp-staging-pro_page_wpstg_backup,\nbody.toplevel_page_wpstg_clone,\nbody.wp-staging-pro_page_wpstg-settings,\nbody.wp-staging-pro_page_wpstg-tools,\nbody.wp-staging-pro_page_wpstg-license {\n background-color: #f3f5f7;\n}\n\n#wpstg-tab-container ul {\n list-style: none;\n margin: 0;\n padding: 0;\n background: #f1f1f1;\n float: left;\n}\n\n#wpstg-tab-container ul li:first-child.selected-tab {\n border-top: none;\n}\n\n#wpstg-tab-container ul li a.selected-tab {\n font-weight: bold;\n text-decoration: none;\n}\n\n#wpstg-tab-container .row {\n padding-top: 10px;\n padding-bottom: 12px;\n}\n\n.wpstg-tabs-container .nav-tab-wrapper {\n padding: 0;\n}\n\n#wpstg-tab-container .row label strong,\n#wpstg-tab-container .row strong {\n font-weight: bold;\n}\n\n.wpstg-tabs a {\n padding: 5px;\n}\n\n#wpstg-tab-container > ul > li.wpstg-tabs.active {\n background-color: white;\n}\n\n#wpstg_settingsgeneral_header .row:nth-child(3),\n#wpstg_settingsgeneral_header .row:nth-child(4) {\n display: none;\n}\n\n#wpstg-tab-container .wpstg-settings-panel {\n padding: 0 20px 20px 20px;\n overflow: auto;\n}\n\n#wpstg-tab-container .wpstg-form-table th {\n vertical-align: top;\n text-align: left;\n padding: 20px 10px 20px 0;\n line-height: 1.3;\n font-weight: bold;\n font-size: 14px;\n color: #484848;\n width: 30%;\n}\n\n#wpstg-tab-container .wpstg-form-table tr {\n border-bottom: 1px solid #E7E7E7;\n}\n\n#wpstg-tab-container span.description {\n display: block;\n font-weight: 400;\n font-style: normal;\n font-size: 13px;\n margin-top: 7px;\n color: #484848;\n}\n\n#wpstg-tab-container .col-title {\n color: #484848;\n}\n\n@media only screen and (max-width: 680px) {\n #wpstg-tab-container ul {\n float: none;\n }\n\n #wpstg-tab-container .wpstg-form-table tr > th {\n width: 100%;\n }\n\n #wpstg-tab-container span.description {\n font-size: 14px;\n }\n\n #wpstg-tab-container .wpstg-form-table tr > th,\n #wpstg-tab-container .wpstg-form-table tr > td {\n padding: 10px;\n }\n}\n\n#wpstg-tab-container ul li {\n margin-bottom: 0;\n}\n\n#wpstg-tab-container ul li a {\n display: block;\n padding: 10px 4px 10px 14px;\n border-width: 1px 0;\n border-style: solid;\n border-top-color: white;\n border-bottom-color: #e7e7e7;\n text-decoration: none;\n color: #0097DF;\n font-weight: bold;\n}\n\n#wpstg-tab-container ul li a:hover {\n background-color: #e5e5e5;\n color: #777777;\n}\n\n.wpstg-logo {\n display: block;\n font-size: 16px;\n padding-top: 20px;\n width: 220px;\n float: left;\n}\n\n.wpstg-logo img {\n max-width: 212px;\n}\n\n.wpstg-version {\n display: block;\n padding-top: 40px;\n color: #9b9b9b;\n}\n\n.wpstg_admin .nav-tab {\n color: #3C3C3C;\n}\n\n#wpstg-tab-container table tbody tr:nth-child(1) > th > div {\n font-size: 20px;\n}\n\n/* Cloning workflow */\n\n#wpstg-clonepage-wrapper {\n margin-bottom: 20px;\n width: 98%;\n}\n\n@media screen and (min-width: 1090px) {\n #wpstg-clonepage-wrapper {\n float: left;\n margin-bottom: 20px;\n }\n}\n\n#wpstg-steps {\n margin-top: 0px;\n margin-left: 20px;\n}\n\n#wpstg-steps li {\n color: #444;\n line-height: 20px;\n padding-right: 10px;\n float: left;\n}\n\n.wpstg-step-num {\n border: 1px solid #3e3e3e;\n border-radius: 3px;\n display: inline-block;\n width: 20px;\n height: 20px;\n text-align: center;\n margin-right: 5px;\n}\n\n.wpstg-current-step {\n font-weight: bold;\n}\n\n.wpstg-current-step .wpstg-step-num {\n background: #3e3e3e;\n color: #eee;\n}\n\n.wpstg-box {\n margin: 10px 0;\n padding: 10px;\n position: relative;\n overflow: hidden;\n transition: border-color .2s ease-in-out;\n}\n\n.wpstg-clone {\n margin-bottom: 10px;\n padding: 16px;\n position: relative;\n transition: border-color .2s ease-in-out;\n background-color: #ffffff;\n color: #3e3e3e;\n border-radius: 3px;\n box-shadow: 0 0 1px rgba(0, 0, 0, .125), 0 1px 3px rgba(0, 0, 0, .1);\n}\n\n.wpstg-clone.active {\n border-color: #1d94cf;\n}\n\n.wpstg-clone-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n\n.wpstg-clone-title {\n display: inline-block;\n font-size: 15px;\n max-width: 300px;\n text-decoration: none;\n font-weight: bold;\n color: #3e3e3e;\n}\n\n.wpstg-clone-title:hover {\n color: #111111;\n}\n\n.wpstg-clone-actions {\n display: flex;\n margin-top: 5px;\n}\n\n.wpstg-dropdown {\n position: relative;\n}\n\n.wpstg-clone-actions .wpstg-dropdown-toggler {\n text-decoration: none;\n background: #25a1f0;\n padding: 6px 10px;\n border-radius: 2px;\n font-size: 14px;\n box-shadow: 0 0 1px rgba(0, 0, 0, .125), 0 1px 3px rgba(0, 0, 0, .2);\n color: #ffffff;\n}\n\n.wpstg-clone-actions .wpstg-dropdown-toggler:hover {\n background: #002648;\n color: white;\n}\n\n.wpstg-dropdown {\n position: relative;\n}\n\n.wpstg-dropdown > .wpstg-dropdown-menu {\n background: #fff;\n display: none;\n flex-direction: column;\n position: absolute;\n right: 0;\n top: calc(100% + 4px);\n padding: 8px;\n border-radius: 2px;\n width: 100px;\n box-shadow: 0 0 1px rgba(0, 0, 0, .125), 0 1px 3px rgba(0, 0, 0, .2);\n z-index: 1000;\n}\n\n.wpstg-dropdown > .wpstg-dropdown-menu.wpstg-menu-dropup {\n top: auto;\n bottom: 100%;\n transform: translate3d(0px, -3px, 0px);\n}\n\n.wpstg-dropdown > .wpstg-dropdown-menu.shown {\n display: flex;\n}\n\n.wpstg-clone-action,\n.wpstg-dropdown-action {\n color: #3e3e3e;\n padding: 6px 8px;\n border-radius: 3px;\n text-decoration: none;\n position: relative;\n transition: color .2s ease-in-out;\n border-bottom: 1px solid #f3f3f3;\n}\n\n.wpstg-clone-action:hover,\n.wpstg-dropdown-action:hover {\n background: rgba(0, 0, 0, 0.05);\n}\n\n.wpstg-dropdown-action {\n color: #3e3e3e;\n background: transparent;\n border: 0 solid black;\n outline: none;\n box-shadow: none;\n}\n\n.wpstg-remove-clone:hover {\n color: #E01E5A;\n}\n\n.wpstg-clone-action:last-child {\n border: none;\n}\n\n.wpstg-clone:hover .wpstg-clone-action {\n display: inline-block;\n}\n\n#wpstg-show-error-details:focus,\n#wpstg-workflow .wpstg-clone-action {\n outline: none;\n box-shadow: none;\n}\n\n.wpstg-link-btn {\n background: #45a1c9;\n color: #fff;\n display: inline-block;\n padding: 5px 10px;\n text-decoration: none;\n vertical-align: baseline;\n transition: all .2s ease-in-out;\n}\n\n.wpstg-link-btn:hover,\n.wpstg-link-btn:focus {\n color: #fff;\n outline: none;\n box-shadow: none;\n}\n\n#wpstg-workflow .wpstg-link-btn:active {\n vertical-align: baseline;\n}\n\n.wpstg-link-btn[disabled] {\n background: #777 !important;\n border-color: #555 !important;\n pointer-events: none;\n}\n\n#wpstg-cancel-cloning,\n#wpstg-cancel-cloning-update {\n margin-top: 5px;\n}\n\n#wpstg-cancel-cloning.success,\n#wpstg-cancel-cloning.success {\n background: #64dd58;\n border-color: #54bd4a;\n}\n\n#wpstg-error-wrapper,\n#wpstg-error-details {\n display: none;\n padding-top: 10px;\n font-size: 13px;\n clear: both;\n}\n\n#wpstg-show-error-details {\n display: inline-block;\n margin-left: 5px;\n color: #555;\n text-decoration: none;\n transition: color .2s ease-in-out;\n}\n\n#wpstg-show-error-details:hover {\n color: #1d94cf;\n}\n\n#wpstg-error-details {\n border-left: 5px solid #E01E5A;\n padding: 10px;\n width: 500px;\n}\n\n#wpstg-try-again {\n display: none;\n}\n\n#wpstg-home-link {\n float: right;\n}\n\n.wpstg-loader {\n content: url('../../img/loading.gif');\n margin-top: 10px;\n display: none;\n}\n\n.wpstg-loader.wpstg-finished {\n display: block;\n content: \"Finished\";\n background-color: #00c89a;\n color: white;\n padding: 2px 10px;\n margin-top: 0;\n border-radius: 3px;\n}\n\n#wpstg-workflow {\n max-width: 800px;\n position: relative;\n clear: both;\n padding-top: 20px;\n float: left;\n min-width: 500px;\n min-height: 380px;\n padding-right: 20px;\n padding-bottom: 20px;\n}\n\n#wpstg-sidebar {\n float: left;\n max-width: 400px;\n display: block;\n margin-left: 10px;\n}\n\n#wpstg-workflow.loading::after,\n#wpstg-removing-clone.loading::after {\n background: rgba(255, 255, 255, .7);\n content: 'Loading... may take a while for huge websites';\n display: block;\n width: 100%;\n height: 100%;\n font-size: 20px;\n padding-top: 100px;\n text-align: center;\n position: absolute;\n top: 0;\n left: 0;\n z-index: 99;\n}\n\n#wpstg-removing-clone.loading::after {\n content: 'REMOVING' !important;\n}\n\n#wpstg-existing-clones,\n#wpstg-removing-clone {\n position: relative;\n}\n\n#wpstg-existing-clones h3 {\n color: #3e3e3e;\n}\n\n#wpstg-removing-clone .wpstg-tab-section {\n display: block;\n}\n\n.wpstg-progress-bar {\n max-width: 900px;\n height: 27px;\n padding: 0;\n background-color: #d6d8d7;\n}\n\n.wpstg-progress {\n float: left;\n background: #3fa5ee;\n width: 0;\n height: 100%;\n transition: width .6s ease;\n color: white;\n line-height: 25px;\n text-align: center;\n overflow: hidden;\n}\n\n.wpstg-progress-files {\n background: #16b4f0;\n width: 0;\n height: 100%;\n transition: width .6s ease;\n color: white;\n line-height: 25px;\n text-align: center;\n}\n\n#wpstg-new-clone-id.wpstg-error-input,\n#wpstg-clone-path.wpstg-error-input {\n border: 1px solid #E01E5A;\n box-shadow: 0 0 2px rgba(255, 66, 53, .8);\n}\n\n#wpstg-new-clone-id {\n width: 450px;\n max-width: 100%;\n margin-left: 15px;\n}\n\n#wpstg-new-clone {\n background: #25a1f0;\n border-color: #2188c9;\n}\n\n#wpstg-new-clone:hover {\n background: #259be6;\n border-color: #2188c9;\n}\n\n#wpstg-clone-path {\n margin-left: 10px;\n width: 350px;\n}\n\n.wpstg-error-msg {\n color: #E01E5A;\n}\n\n#wpstg-clone-id-error {\n display: block;\n background-color: #f0f8ff;\n padding: 10px;\n margin: 20px;\n}\n\n#wpstg-start-cloning + .wpstg-error-msg {\n display: block;\n margin-top: 5px;\n}\n\n.wpstg-size-info {\n color: #999;\n font-weight: normal;\n position: relative;\n left: 2px;\n}\n\n.wpstg-db-table .wpstg-size-info {\n top: 2px;\n}\n\n.wpstg-db-table:hover {\n background-color: #f0f8ff;\n}\n\n#wpstg-workflow #wpstg-start-cloning {\n margin-left: 5px;\n vertical-align: baseline;\n}\n\n\n/* Tabs */\n\n.wpstg-tabs-wrapper {\n max-width: 640px;\n margin: 10px 0;\n}\n\n#wpstg-path-wrapper {\n border-bottom: 2px dashed #ccc;\n padding-bottom: 10px;\n margin-bottom: 10px;\n}\n\n.wpstg-tab-section {\n border-bottom: 1px solid #ddd;\n border-right: none;\n border-left: none;\n display: none;\n width: calc(100% - 72px);\n padding: 0px 36px;\n}\n\n.wpstg-tab-section::after {\n display: block;\n content: '';\n clear: both;\n}\n\n.wpstg-tab-header {\n border-bottom: 1px solid #ddd;\n border-right: none;\n border-left: none;\n color: #444;\n font-size: 16px;\n font-weight: bold;\n display: block;\n padding: 10px;;\n text-decoration: none;\n}\n\n.wpstg-tab-triangle {\n display: inline-block;\n margin-right: 12px;\n animation: transform 0.5s;\n width: 0;\n height: 0;\n margin-top: -3px;\n vertical-align: middle;\n border-top: 5px solid transparent;\n border-bottom: 5px solid transparent;\n border-left: 10px solid;\n transition: transform 0.2s;\n cursor: pointer;\n}\n\n.wpstg-tab-triangle.wpstg-no-icon {\n margin-right: 2px;\n width: auto;\n height: auto;\n vertical-align: auto;\n border-top: 0px solid;\n border-bottom: 0px solid;\n border-left: 0px solid;\n}\n\n.wpstg-tab-triangle.wpstg-rotate-90 {\n transform: rotate(90deg);\n}\n\n.wpstg-tab-header:focus {\n color: #444;\n outline: none;\n box-shadow: none;\n}\n\n#wpstg-large-files {\n display: none;\n border: 1px dashed #ccc;\n padding: 10px 10px 10px;\n margin-top: 20px;\n position: relative;\n font-size: 12px;\n}\n\n#wpstg-large-files h3 {\n background: #fff;\n margin: 0;\n padding: 0 5px;\n position: absolute;\n top: -10px;\n left: 5px;\n}\n\n.wpstg-subdir {\n display: none;\n margin-left: 20px;\n}\n\n.wpstg-subdir.wpstg-push {\n display: block;\n margin-left: 20px;\n}\n\n.wpstg-dir a.disabled {\n color: #888;\n cursor: default;\n text-decoration: none;\n}\n\n.wpstg-check-subdirs {\n display: inline-block;\n margin-left: 10px;\n}\n\n.wpstg-notice-alert {\n display: block;\n background-color: #E01E5A;\n padding: 20px;\n max-width: 600px;\n margin-top: 10px;\n color: white;\n}\n\n.wpstg-notice--white {\n display: block;\n background-color: #ffffff;\n padding: 20px;\n max-width: 600px;\n margin-top: 10px;\n}\n\n.wpstg-notice-alert a {\n color: white;\n}\n\n.wpstg-notice-alert h3 {\n color: white;\n}\n\n.wpstg-header {\n font-weight: 400;\n line-height: 1.6em;\n font-size: 19px;\n border-bottom: 1px solid #DFDFDF;\n clear: both;\n padding-top: 10px;\n}\n\n#wpstg-clone-label {\n font-size: 14px;\n font-weight: bold;\n}\n\n.wpstg-log-details {\n height: 300px;\n overflow: scroll;\n max-width: 650px;\n font-family: monospace;\n font-size: 12px;\n line-height: 15px;\n border: 1px solid #FFF;\n background-color: black;\n color: #c0c0c0;\n padding: 3px;\n white-space: nowrap;\n margin-top: 15px;\n}\n\n#wpstg-finished-result {\n display: none;\n}\n\n#wpstg-remove-cloning {\n background: #ff3428;\n border-color: #e72f24;\n margin-top: 5px;\n}\n\n#wpstg-success-notice {\n padding: 10px;\n background-color: white;\n max-width: 900px;\n border: 1px solid #ccc;\n margin-top: 20px;\n}\n\n.wpstg_beta_notice {\n margin-bottom: 20px;\n}\n\n.wpstg-sysinfo {\n width: 700px;\n height: 700px;\n}\n\n.wpstg-form-table .col-title label {\n font-weight: 600;\n}\n\n.wpstg-form-table td:first-child {\n width: 30%;\n}\n\n.wpstg-share-button-container {\n margin: 5px 0;\n}\n\n.wpstg-share-button-container p {\n margin: 0 0 10px 0;\n}\n\n.wpstg-share-button {\n display: inline-block;\n}\n\n.wpstg-share-button a {\n text-decoration: none;\n}\n\n.wpstg-share-button .wpstg-share {\n font-family: sans-serif;\n font-weight: bold;\n text-decoration: none;\n text-align: center;\n}\n\n.wpstg-share-button .wpstg-share {\n -webkit-border-radius: 2px;\n -moz-border-radius: 2px;\n border-radius: 2px;\n color: #FFF;\n display: inline;\n font-size: 12px;\n padding: 4px 8px;\n}\n\n.wpstg-share-button-twitter .wpstg-share {\n background-color: #00ABF0;\n}\n\n.wpstg-share-button-facebook .wpstg-share {\n background-color: #3b5998;\n}\n\n.wpstg-share-button-googleplus .wpstg-share {\n background-color: #F53424;\n}\n\n.wpstg-share-button-twitter .share:active,\n.wpstg-share-button-facebook .share:active,\n.wpstg-share-button-googleplus .share:active {\n background-color: #353535;\n}\n\n#wpstg-check-space {\n margin-left: 8px;\n}\n\n#wpstg-welcome li {\n font-size: 18px;\n line-height: 29px;\n position: relative;\n padding-left: 23px;\n list-style: none !important;\n}\n\n#wpstg-welcome {\n margin-top: 20px;\n margin-right: 20px;\n background-color: white;\n}\n\n.wpstg-heading-pro {\n font-weight: bold;\n}\n\n.wpstg-h2 {\n margin-top: 0;\n margin-bottom: 1.2rem;\n font-size: 30px;\n line-height: 2.5rem;\n}\n\n#wpstg-welcome li:before {\n width: 1em;\n height: 100%;\n background: url(data:image/svg+xml;charset=utf8,%3Csvg%20width%3D%221792%22%20height%3D%221792%22%20viewBox%3D%220%200%201792%201792%22%20xmlns%3D%22http%3A%2F%2Fwww%2Ew3%2Eorg%2F2000%2Fsvg%22%3E%3Cpath%20fill%3D%22%2377B227%22%20d%3D%22M1671%20566q0%2040%2D28%2068l%2D724%20724%2D136%20136q%2D28%2028%2D68%2028t%2D68%2D28l%2D136%2D136%2D362%2D362q%2D28%2D28%2D28%2D68t28%2D68l136%2D136q28%2D28%2068%2D28t68%2028l294%20295%20656%2D657q28%2D28%2068%2D28t68%2028l136%20136q28%2028%2028%2068z%22%2F%3E%3C%2Fsvg%3E) left .4em no-repeat;\n background-size: contain;\n content: \"\";\n position: absolute;\n top: -2px;\n left: 0;\n color: #77b227;\n}\n\n.wpstg-h1 {\n margin-bottom: 1.35rem;\n font-size: 2.5em;\n line-height: 3.68rem;\n letter-spacing: normal;\n}\n\n.wpstg--swal2-content h1 {\n color: #444;\n}\n\n#wpstg-welcome h2 {\n margin: 0 0 15px;\n}\n\n#wpstg-welcome .wpstg-footer {\n clear: both;\n margin-top: 20px;\n font-style: italic;\n}\n\n#wpstg-footer {\n clear: both;\n margin-top: 20px;\n margin-right: 10px;\n padding-top: 50px;\n}\n\n#wpstg-footer a {\n text-decoration: none;\n}\n\n#wpstg-footer li {\n margin-bottom: 2px;\n list-style: circle;\n}\n\n#wpstg-footer ul {\n margin-left: 15px;\n margin-top: 0px;\n}\n\n.wpstg-footer--title {\n margin-left: 15px;\n}\n\n.wpstg-staging-info {\n margin-top: 8px;\n color: #3e3e3e;\n font-size: 12px;\n}\n\n.wpstg-staging-info a {\n color: #3e3e3e;\n}\n\n.wpstg-staging-info li {\n margin-bottom: 2px;\n}\n\n.wpstg-bold {\n font-weight: 600;\n}\n\n#wpstg-processing-status {\n margin-top: 5px;\n font-size: 13px;\n font-weight: 400;\n float: left;\n}\n\n#wpstg-processing-timer {\n margin-top: 5px;\n font-size: 13px;\n font-weight: 400;\n float: right;\n}\n\n#wpstg-report-issue-button {\n margin-left: 50px;\n border: 1px solid #E01E5A;\n color: #E01E5A;\n background-color: white;\n}\n\n#wpstg-report-issue-button:hover {\n background-color: #dc2b62;\n color: #fff;\n}\n\n.wpstg-blue-primary {\n display: inline-block;\n text-decoration: none;\n font-size: 13px;\n /*line-height: 26px;*/\n height: 28px;\n margin: 0;\n padding: 0 10px 1px;\n cursor: pointer;\n border-width: 1px;\n border-style: solid;\n -webkit-appearance: none;\n border-radius: 3px;\n white-space: nowrap;\n box-sizing: border-box;\n background: #25a1f0;\n border-color: #2188c9;\n color: #fff;\n text-shadow: 0 -1px 1px #006799, 1px 0 1px #006799, 0 1px 1px #006799, -1px 0 1px #006799;\n}\n\n.wpstg-blue-primary:hover {\n background-color: #259be6;\n}\n\n.wpstg-report-issue-form {\n position: absolute;\n z-index: 999;\n width: 300px;\n background-color: #fff;\n padding: 15px 15px 10px;\n border: 1px solid #e8e8e8;\n border-radius: 3px;\n box-shadow: 0 1px 0 0 #fff inset;\n display: none;\n right: 0;\n top: 35px;\n}\n\n@media (max-width: 600px) {\n .wpstg-report-issue-form {\n position: relative;\n }\n}\n\n.wpstg-report-show {\n display: block;\n}\n\n.wpstg-field input[type=text],\n.wpstg-field textarea {\n width: 100%;\n font-weight: 400;\n line-height: 1.4;\n margin-bottom: 4px;\n}\n\n.wpstg-report-email,\n.wpstg-report-hosting-provider {\n width: 100%;\n font-weight: 400;\n font-size: .8rem;\n height: 2.3rem;\n line-height: 2.3rem;\n border-radius: 3px;\n margin-bottom: 4px;\n padding: 0 10px;\n}\n\n.wpstg-report-description {\n border-radius: 3px;\n font-size: .8rem;\n padding: 6px 10px;\n resize: none;\n}\n\n.wpstg-report-privacy-policy {\n font-size: 12px;\n margin-bottom: 15px;\n}\n\n#wpstg-report-cancel {\n float: right;\n margin-right: 5px;\n font-weight: bold;\n}\n\n#wpstg-success-button {\n font-weight: bold;\n}\n\n.wpstg-message {\n box-sizing: border-box;\n -moz-box-sizing: border-box;\n background-color: #f5e0de;\n border-radius: 3px;\n color: rgba(0, 0, 0, .6);\n height: auto;\n margin: 10px 0;\n min-height: 18px;\n padding: 6px 10px;\n position: relative;\n}\n\n.wpstg-message.wpstg-error-message {\n background-color: #f5e0de;\n color: #b65147;\n font-size: 12px;\n}\n\n.wpstg-message.wpstg-success-message {\n background-color: #d7f8e0;\n color: #515151;\n}\n\n.wpstg-message p {\n margin: 3px 0;\n font-size: 13px;\n}\n\n.wpstg-warning {\n display: block;\n padding: 10px;\n background-color: #ffb804;\n color: #ffffff;\n margin: 10px 10px 10px 0;\n}\n\n.wpstg-warning a {\n color: #ffffff;\n font-weight: bold;\n text-decoration: underline;\n}\n\n.wpstg-error {\n display: block;\n padding: 10px !important;\n background-color: #E01E5A !important;\n color: #ffffff;\n margin: 10px 10px 10px 0 !important;\n border-color: transparent !important;\n border-left-color: transparent !important;\n box-shadow: none !important;\n}\n\n.wpstg-error a {\n color: #ffffff;\n font-weight: bold;\n text-decoration: underline;\n}\n\n#wpstg-resume-cloning {\n display: none;\n}\n\n#wpstg-external-db th {\n text-align: left;\n width: 120px;\n}\n\n#wpstg-db-connect {\n font-weight: normal;\n}\n\n#wpstg-db-status {\n display: block;\n margin-top: 5px;\n padding: 5px;\n margin-bottom: 20px;\n border: 1px solid transparent;\n border-radius: 4px;\n text-decoration: none;\n text-align: center;\n}\n\n.wpstg-text-field > #wpstg-db-status {\n margin-top: 8px;\n margin-left: 150px;\n min-width: 300px;\n}\n\n.wpstg-success {\n color: #3c763d;\n background-color: #dff0d8;\n border-color: #d6e9c6;\n}\n\n.wpstg-failed {\n color: #a94442;\n background-color: #f2dede;\n border-color: #ebccd1;\n}\n\n#wpstg_select_tables_cloning {\n height: 600px;\n font-size: 13px;\n}\n\n#wpstg-update-notify {\n background-color: #E01E5A;\n font-size: 14px;\n color: #ffffff;\n line-height: normal;\n padding: 10px;\n}\n\n#wpstg-update-notify a {\n color: #ffffff;\n font-weight: bold;\n}\n\n.wpstg-pointer {\n cursor: pointer;\n}\n\n.wpstg--tab--header {\n background-color: white;\n /* margin-bottom: 10px; */\n /* padding: 16px; */\n position: relative;\n transition: border-color .2s ease-in-out;\n background-color: #ffffff;\n color: #3e3e3e;\n border-radius: 2px;\n box-shadow: 0 0 1px rgba(0, 0, 0, .125), 0 1px 3px rgba(0, 0, 0, .02);\n}\n\n.wpstg--tab--header ul {\n display: flex;\n}\n\n.wpstg--tab--header ul li {\n margin-right: 1em;\n margin-bottom: 0px;\n}\n\n.wpstg--tab--header ul li:last-child {\n margin-right: 0;\n}\n\n.wpstg--tab--header a {\n min-width: 150px;\n text-align: center;\n cursor: pointer;\n display: inline-block;\n padding: 1em 1.25em;\n padding-bottom: 9px;\n color: #c4c4c4;\n font-size: 18px;\n /*\n border: solid 1px;\n */\n}\n\n.wpstg--tab--header a.wpstg--tab--active {\n border-bottom: .4em solid #25A1F0;\n color: #25A1F0;\n}\n\n.wpstg--tab--header a:hover {\n background-color: #fefefe;\n border-bottom: 0.4em solid #25A1F0;\n color: #25A1F0;\n}\n\n.wpstg--tab--content {\n display: none;\n}\n\n.wpstg--tab--active {\n display: block;\n}\n\n.wpstg--text--strong,\n.wpstg--text--strong * {\n font-weight: bold !important;\n}\n\n.wpstg--text--danger {\n color: #a94442;\n}\n\n.wpstg--tooltip {\n position: relative;\n display: inline-block;\n border-bottom: 1px dotted black;\n margin-left: 10px;\n}\n\n.wpstg--tooltip .wpstg--tooltiptext {\n visibility: hidden;\n width: 300px;\n background-color: #ffffff;\n color: #505050;\n text-align: left;\n padding: 12px;\n border-radius: 3px;\n position: absolute;\n z-index: 1;\n -webkit-box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 6px rgba(0, 0, 0, 0.23);\n -moz-box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 6px rgba(0, 0, 0, 0.23);\n box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 6px rgba(0, 0, 0, 0.23);\n}\n\n.wpstg--tooltiptext-backups {\n width: 120px;\n top: 100%;\n left: -150%;\n margin-left: -56px;\n margin-top: 4px;\n}\n\n.wpstg--tooltip.wpstg--exclude-rules--tooltip {\n border-bottom: 0px solid transparent;\n}\n\n.wpstg--tooltip.wpstg--exclude-rules--tooltip > .wpstg--tooltiptext {\n margin-top: 0px;\n margin-left: -150px;\n}\n\n/**\nTooltip top arrow\n */\n\n.wpstg--tooltip .wpstg--tooltiptext-backups::after {\n content: \" \";\n position: absolute;\n bottom: 100%;\n /* At the top of the tooltip */\n left: 50%;\n margin-left: 25px;\n border-width: 5px;\n border-style: solid;\n border-color: transparent transparent white transparent;\n}\n\n.wpstg--tooltip .wpstg--tooltiptext.has-top-arrow {\n margin-top: 6px;\n}\n\n.wpstg--tooltip .wpstg--tooltiptext.has-top-arrow::after {\n content: \" \";\n position: absolute;\n bottom: 100%;\n left: 50%;\n margin-left: -18px;\n border-width: 5px;\n border-style: solid;\n border-color: transparent transparent white transparent;\n}\n\n.wpstg--snaphot-restore-table tr {\n line-height: 12px;\n}\n\n.wpstg-float-left {\n float: left;\n}\n\n.wpstg-beta-notice {\n background-color: #b0e8b0;\n border-radius: 3px;\n padding: 7px;\n margin-bottom: 20px;\n}\n\n#wpstg-backup-name {\n font-size: 1.875em;\n font-weight: 600;\n}\n\n#wpstg_select_tables_cloning option:checked {\n /* Cannot use background color here because Chrome and Firefox ignore it even if set to !important */\n -webkit-appearance: menulist-button;\n background-image: linear-gradient(0deg, #1e90ff 0%, #1e90ff 100%);\n}\n\n.wpstg--btn--cancel {\n background: #ff3428;\n border-color: #e72f24;\n color: #fff;\n height: auto;\n line-height: normal;\n font-size: 16px;\n padding: .5em;\n margin-bottom: 1.5em;\n}\n\n.wpstg--btn--cancel:hover {\n background: #ff3428;\n border-color: #e72f24;\n}\n\n.wpstg--process--content > .wpstg--swal2-html-container {\n padding: 4em 2em !important;\n}\n\n.wpstg--modal--process--logs,\n.wpstg--modal--error--logs {\n background: #ffffff;\n border: 1px solid #a8a8a8;\n border-radius: 3px;\n height: 300px;\n margin-top: 1em;\n display: none;\n padding-top: 10px;\n padding-left: 10px;\n overflow: auto;\n text-align: justify;\n}\n\n.wpstg--modal--error--logs {\n height: auto;\n max-height: 300px;\n}\n\n.wpstg--modal--process--logs p {\n font-size: 12px;\n white-space: nowrap;\n}\n\n.wpstg--modal--process--logs p.wpstg--modal--process--msg--info {\n color: #222222;\n}\n\n.wpstg--modal--process--logs p.wpstg--modal--process--msg--debug {\n color: #757575;\n}\n\n.wpstg--modal--process--title {\n color: #565656;\n margin: .25em 0;\n}\n\n.wpstg--modal--process--subtitle {\n margin: .5em 0;\n color: #565656;\n}\n\n.wpstg--modal--error--logs > p {\n text-align: left;\n font-size: 14px;\n color: #222222;\n}\n\n.wpstg--modal--process--logs p,\n.wpstg--modal--error--logs p {\n margin: 0px;\n margin-bottom: 2px;\n}\n\n.wpstg--modal--process--msg--error {\n color: #E01E5A;\n}\n\n.wpstg--modal--process--msg--critical {\n color: #E01E5A;\n}\n\n.wpstg--modal--process--msg--warning {\n color: darkorange;\n}\n\n.wpstg--modal--process--msg-found {\n font-size: 16px;\n color: #E01E5A;\n font-weight: bold;\n}\n\n.wpstg--modal--delete {\n text-align: left;\n margin-top: 8px;\n color: #565656;\n}\n\n.wpstg-swal-popup .wpstg--swal2-cancel.wpstg--btn--cancel {\n margin-bottom: 0;\n text-shadow: none !important;\n}\n\n.wpstg-swal-popup .wpstg-loader {\n display: inline-block !important;\n}\n\n.wpstg--modal--process--generic-problem {\n display: none;\n border-left: 5px solid #E01E5A;\n margin: .5em 0;\n}\n\n.wpstg--modal--process--logs--tail {\n font-size: 16px;\n color: #565656;\n background: none;\n border: none;\n cursor: pointer;\n}\n\n.wpstg--modal--backup--import--upload--title {\n color: #565656;\n}\n\n.wpstg--modal--backup--import--configure,\n.wpstg--modal--backup--import--upload--status,\n.wpstg--modal--backup--import--upload--container input[type=\"file\"] {\n display: none;\n}\n\n#wpstg--backups--import--file-list {\n font-size: 14px;\n font-weight: bold;\n}\n\n#wpstg--backups--import--file-list-empty {\n color: #E01E5A;\n}\n\n.wpstg--modal--backup--import--filesystem label {\n font-size: 14px;\n}\n\n.wpstg--modal--backup--import--filesystem button {\n margin-bottom: 20px;\n}\n\n.wpstg--modal--backup--import--upload {\n position: relative;\n min-height: 30px;\n}\n\n.wpstg--modal--backup--import--upload {\n color: #505050;\n}\n\n.wpstg--modal--backup--import--upload--container {\n position: relative;\n border-radius: 10px;\n margin: .5em;\n padding: 1em .5em;\n border: 3.5px dashed #dedede;\n transition: background-color 0.3s ease, color 0.3s ease;\n background-color: #f4fbff;\n min-height: 130px;\n}\n\n.wpstg--modal--backup--import--upload--container.wpstg--has-dragover span.wpstg--drop {\n display: inline-flex;\n}\n\n.wpstg--modal--backup--import--upload--container input[type='file'] {\n display: none;\n}\n\n.wpstg--modal--backup--import--upload--container img {\n margin-top: 10px;\n width: 4em;\n align-self: center;\n border: none;\n}\n\n.wpstg--modal--backup--import--upload--container span {\n margin-top: 1em;\n}\n\n.wpstg--backup--import--options > button {\n margin-top: 1em;\n padding: 1em;\n align-self: center;\n width: 185px;\n height: auto;\n line-height: normal;\n}\n\n.wpstg--backup--import--options {\n position: relative;\n display: flex;\n justify-content: center;\n}\n\n.wpstg--backup--import--options ul {\n display: none;\n}\n\n.wpstg--backup--import--options.wpstg--show-options ul {\n padding: 0;\n margin: 54px 0 0 0;\n display: block;\n position: absolute;\n width: 185px;\n background: #25a1f0;\n box-sizing: border-box;\n border-radius: 0 0 3px 3px;\n border-width: 1px;\n border-color: #2188c9;\n text-shadow: 0 -1px 1px #006799, 1px 0 1px #006799, 0 1px 1px #006799, -1px 0 1px #006799;\n}\n\n.wpstg--backup--import--options.wpstg--show-options ul li {\n border-bottom: .1em solid #25a1f0;\n margin: 0;\n}\n\n.wpstg--backup--import--options.wpstg--show-options ul li:hover {\n background-color: #25a1f0;\n}\n\n.wpstg--backup--import--options.wpstg--show-options ul li:last-child {\n border-bottom: none;\n}\n\n.wpstg--backup--import--options ul li button {\n cursor: pointer;\n background: none;\n border: none;\n margin: 0;\n width: 100%;\n color: white;\n height: 40px;\n line-height: 40px;\n}\n\n.wpstg--backup--import--options ul li button:hover {\n background-color: #259be6;\n}\n\n.wpstg--modal--backup--import--search-replace--info {\n margin: 1em 0;\n display: flex;\n flex-direction: row;\n}\n\n.wpstg--modal--backup--import--info p {\n text-align: left;\n margin: 0;\n}\n\n.wpstg--modal--backup--import--search-replace--wrapper button {\n align-self: center;\n}\n\n.wpstg--import--advanced-options--button {\n border: 0;\n border-radius: 3px;\n font-size: 18px;\n text-shadow: 0 -1px 1px #006799, 1px 0 1px #006799, 0 1px 1px #006799, -1px 0 1px #006799;\n cursor: pointer;\n}\n\n.wpstg--modal--backup--import--search-replace--new {\n color: white;\n background-color: #25a1f0;\n}\n\n.wpstg--modal--backup--import--search-replace--remove {\n color: white;\n background-color: #25a1f0;\n width: 22px;\n height: 22px;\n margin-left: 5px;\n}\n\n.wpstg--modal--backup--import--search-replace--input-group:first-child button {\n display: none;\n}\n\n.wpstg--modal--backup--import--search-replace--input--container {\n flex: 1;\n display: flex;\n flex-direction: column;\n}\n\n.wpstg--modal--backup--import--search-replace--input-group {\n width: 100%;\n border-bottom: 6px solid #f1f1f1;\n margin-bottom: 10px;\n}\n\n.wpstg--modal--backup--import--search-replace--input-group input {\n min-width: 250px;\n width: calc(50% - 4px - 11px - 5px); /* -4px is half of the padding; -11px is half of the button; -5 is the margin left of the button */\n display: inline-block;\n line-height: 10px;\n border: 1px solid #dedede;\n border-radius: 3px;\n color: #666;\n padding: 8px;\n margin-bottom: 12px;\n}\n\n.wpstg--modal--import--upload--process {\n display: none;\n position: relative;\n height: 30px;\n margin-top: 20px;\n margin-bottom: 20px;\n width: 100%;\n top: 0;\n left: 0;\n text-indent: 1em;\n white-space: nowrap;\n overflow: hidden;\n color: #333333;\n justify-content: center;\n align-items: center;\n}\n\n.wpstg--modal--import--upload--progress {\n position: absolute;\n background: #98d452;\n color: white;\n height: 100%;\n border-radius: 4px;\n left: 0;\n top: 0;\n}\n\n.wpstg--modal--import--upload--progress--title {\n z-index: 9;\n}\n\n.wpstg-fieldset:disabled {\n opacity: 0.8;\n border-top: 1px solid white;\n margin-top: 20px;\n}\n\n.wpstg-fieldset {\n padding-left: 20px;\n}\n\n.wpstg-fs-14 {\n font-size: 14px;\n}\n\n.wpstg-dark-alert {\n font-weight: bold;\n background-color: #0e86d9;\n padding: 15px;\n margin-top: 0px;\n color: white;\n}\n\n.wpstg-dark-alert .wpstg-button--cta-red {\n margin-left:10px;\n}\n\n.wpstg-form-group {\n display: block;\n width: 100%;\n margin-bottom: 8px;\n align-items: center;\n}\n\n.wpstg-form-group > label {\n display: block;\n font-weight: 700;\n}\n\n.wpstg-text-field > input {\n width: 300px;\n display: block;\n line-height: 1.5;\n}\n\n.wpstg-code-segment {\n display: block;\n}\n\n.wpstg-text-field > .wpstg-code-segment {\n margin-top: 4px;\n min-width: 300px;\n}\n\n.wpstg-form-group > .wpstg-checkbox {\n min-width: 100%;\n width: 100%;\n position: relative;\n}\n\n.wpstg-form-group > .wpstg-checkbox > input[type='checkbox'] {\n left: 150px;\n}\n\n.wpstg-rounded {\n border-radius: 3px;\n}\n\n.wpstg-white-border {\n border: 1px solid white !important;\n}\n\n.wpstg-ml-4 {\n margin-left: 4px;\n}\n\n#wpstg-confirm-backup-restore-data {\n margin: 40px;\n text-align: left;\n}\n\n#wpstg-advanced-settings hr {\n margin: 20px 0;\n}\n\n.wpstg-form-row {\n display: block;\n}\n\n.wpstg-form-row label,\n.wpstg-form-row input {\n display: table-cell;\n padding-left: 5px;\n padding-right: 5px;\n margin-top: 3px;\n margin-bottom: 3px;\n}\n\n.wpstg-form-row input {\n width: 400px;\n}\n\n.wpstg-form-row label {\n font-weight: bold;\n width: 1px;\n white-space: nowrap;\n}\n\n#wpstg-db-connect-output #wpstg-db-status {\n width: 390px;\n}\n\n.wpstg-fs-14 {\n font-size: 14px;\n}\n\n.wpstg-code-segment {\n display: block;\n}\n\n.wpstg-form-group > .wpstg-checkbox {\n min-width: 100%;\n width: 100%;\n}\n\n.wpstg-form-group > .wpstg-checkbox > input[type='checkbox'] {\n margin-left: 10px;\n}\n\n@media only screen and (max-width: 768px) {\n .wpstg-form-group > label {\n min-width: auto;\n width: auto;\n }\n\n .wpstg-text-field > input {\n width: 100%;\n }\n\n .wpstg-text-field > .wpstg-code-segment {\n margin-left: 0;\n min-width: 100%;\n }\n\n .wpstg-tab-section {\n width: calc(100vw - 60px);\n max-width: 450px;\n }\n}\n\n.wpstg-rounded {\n border-radius: 3px;\n}\n\n.wpstg-white-border {\n border: 1px solid white !important;\n}\n\n.wpstg-m-0 {\n margin: 0;\n}\n\n.wpstg-mt-10px {\n margin-top: 10px !important;\n}\n\n.wpstg-my-10px {\n margin-top: 10px !important;\n margin-bottom: 10px !important;\n}\n\n.wpstg-w-100 {\n width: 100%;\n}\n\n.wpstg-box-shadow {\n box-shadow: 0 1px 1px 0 rgba(0, 0, 0, .1);\n}\n\n.wpstg-float-left {\n float: left;\n}\n\n.wpstg-bold-text {\n font-weight: bold;\n}\n\n.wpstg-warning.notice {\n border-left: 4px solid #ffba00;\n}\n\n.wpstg-confirmation-label {\n background-color: #5b9dd9;\n color: #fff;\n padding: 2px;\n border-radius: 3px;\n}\n\n.wpstg-my-6px {\n margin-bottom: 6px;\n margin-top: 6px;\n}\n\n.wpstg-mb-10px {\n margin-bottom: 10px;\n}\n\n.wpstg-clear-both {\n clear: both;\n}\n\n.wpstg-font-italic {\n font-style: italic;\n}\n\n.wpstg-mt-20px {\n margin-top: 20px;\n}\n\n.wpstg-welcome-container {\n border: 2px solid white;\n padding: 20px;\n margin-bottom: 20px;\n}\n\n.wpstg-ml-30px {\n margin-left: 30px;\n}\n\n.wpstg-text-center {\n text-align: center;\n}\n\n.wpstg-feedback-link {\n text-decoration: none;\n}\n\n.wpstg-feedback-span {\n display: block;\n margin-bottom: 3px;\n}\n\n#wpstg-confirm-backup-restore-data {\n margin: 40px;\n text-align: left;\n}\n\n#wpstg-confirm-backup-restore-wrapper {\n margin: 30px;\n margin-top: 0;\n}\n\n#wpstg-confirm-backup-restore-wrapper h3 {\n color: #E01E5A;\n}\n\n#wpstg-progress-db,\n#wpstg-progress-backup {\n background-color: #3fa5ee;\n}\n\n#wpstg-progress-sr,\n#wpstg-progress-files.wpstg-pro {\n background-color: #3c9ee4;\n}\n\n#wpstg-progress-dirs,\n#wpstg-progress-data {\n background-color: #3a96d7;\n}\n\n#wpstg-progress-files:not(.wpstg-pro),\n#wpstg-progress-finishing {\n background-color: #378cc9;\n}\n\n.wpstg-issue-resubmit-confirmation.wpstg--swal2-container,\n.wpstg-swal2-container.wpstg--swal2-container {\n z-index: 10500;\n}\n\n.wpstg-swal2-container.wpstg-swal2-loading .wpstg--swal2-actions,\n.wpstg-swal2-container.wpstg-swal2-loading .wpstg--swal2-header {\n display: none;\n}\n\nbody.toplevel_page_wpstg_backup .wpstg--swal2-container .wpstg--swal2-content,\nbody.toplevel_page_wpstg_clone .wpstg--swal2-container .wpstg--swal2-content {\n z-index: 2;\n}\n\n.toplevel_page_wpstg_clone #swal2-content h2 {\n color: #565656;\n}\n\n.toplevel_page_wpstg_clone #swal2-content {\n line-height: 1.5em;\n}\n\ndiv#exportUploadsWithoutDatabaseWarning {\n font-style: italic;\n font-size: 0.9rem;\n margin: 10px;\n padding: 10px;\n border: 1px solid #e3e3e3;\n border-radius: 5px;\n text-align: center;\n background-color: #fafafa;\n}\n\n.wpstg-advanced-options-dropdown-wrapper {\n display: none; /* ENABLE WHEN WE HAVE ADVANCED OPTIONS FOR EXPORTING */\n margin-top: 20px;\n}\n\n.wpstg--modal--backup--import--search-replace--wrapper {\n text-align: left;\n margin-top: 20px;\n}\n\n.wpstg--modal--backup--import--search-replace--new--wrapper {\n text-align: center;\n}\n\n.wpstg-import-backup-contains li {\n display: inline-block;\n}\n\n.wpstg-import-backup-contains li .wpstg-backups-contains {\n border-radius: 3px;\n color: #979797;\n background-color: #e3e3e3;\n border: 1px solid #c2c2c2;\n width: 17px;\n height: 17px;\n font-size: 17px;\n}\n\n.wpstg-import-backup-contains.wpstg-listing-single-backup li .wpstg-backups-contains {\n padding: 2px;\n background-color: white;\n border: 1px solid #c2c2c2;\n}\n\n.wpstg-import-backup-contains.wpstg-listing-single-backup li .wpstg-backups-contains > .wpstg--dashicons {\n filter: invert(50%);\n}\n\n.wpstg-import-backup-contains .wpstg--tooltiptext {\n width: 50px;\n font-size: x-small;\n padding: 5px;\n left: -25px;\n text-align: center;\n}\n\n.wpstg-import-backup-contains-title {\n display: inline-block;\n}\n\nul.wpstg-import-backup-contains {\n display: inline-block;\n}\n\n.wpstg-import-backup-name {\n display: inline-block;\n font-weight: bold;\n}\n\n.wpstg-backup-more-info-toggle {\n font-size: x-small;\n display: inline-block;\n font-style: italic;\n cursor: pointer;\n}\n\n.wpstg-backup-more-info-toggle::selection {\n background: none;\n}\n\nul.wpstg-import-backup-more-info {\n font-size: 14px;\n text-align: left;\n margin-bottom: 30px;\n margin-top: 10px;\n background-color: #f6f6f6;\n border: 1px solid #878787;\n border-radius: 3px;\n padding: 7px;\n cursor: pointer;\n}\n\nul.wpstg-import-backup-more-info:hover {\n background-color: #def2ff;\n border: 1px solid #25a1f0;\n}\n\nul.wpstg-import-backup-more-info li {\n height: 20px;\n}\n\n.wpstg-backup-list {\n max-width: 800px;\n}\n\n.wpstg-backup-list h3 {\n color:#3e3e3e;\n}\n\n.wpstg-backup-list ul ul {\n margin-block-start: 1em;\n margin-block-end: 1em;\n}\n\n.wpstg-push-confirmation-message {\n text-align: justify;\n font-size: 15px;\n}\n\n.wpstg-settings-row {\n padding-top: 10px;\n padding-bottom: 10px;\n}\n\n.wpstg-settings-title {\n font-weight: 600;\n}\n\n.wpstg-settings-form-group {\n display: flex;\n align-items: center;\n}\n\n.wpstg-settings-form-group > .wpstg-settings-message {\n width: 30%;\n padding: 0;\n margin: 7px 0 0;\n}\n\n/**\n * WP STAGING EXCLUSION RULES TABLE LAYOUT\n */\n\n.wpstg-excluded-filters-container {\n padding: 0;\n margin-top: 10px;\n margin-bottom: 10px;\n max-width: 100%;\n width: 100%;\n}\n\n.wpstg-excluded-filters-container > table {\n width: 100%;\n border-collapse: collapse;\n border-color: transparent;\n}\n\n.wpstg-excluded-filters-container td {\n padding-top: 4px;\n padding-bottom: 4px;\n height: 20px;\n}\n\n.wpstg-excluded-filters-container h4 {\n margin: 0;\n}\n\n.wpstg-exclude-filters-foot {\n display: flex;\n justify-content: flex-start;\n padding: 0;\n}\n\n/**\n * WP STAGING EXCLUSION RULE DROPDOWN STYLE\n */\n\n\n.wpstg-exclude-filter-dropdown > button:hover {\n background: #135e96;;\n border: 1px solid #135e96;;\n}\n\n.wpstg-exclude-filter-dropdown > .wpstg-dropdown-menu {\n width: 128px;\n}\n\n.wpstg-remove-exclude-rule {\n color: #fff !important;\n background-color: #e01e5a;\n border: 1px solid #e01e5a;\n width: 20px;\n height: 20px;\n border-radius: 10px;\n font-size: 24px;\n padding: 0;\n display: inline-flex;\n justify-content: center;\n outline: none;\n box-shadow: none;\n font-weight: 400;\n line-height: 0.7;\n margin-top: 5px;\n cursor: pointer;\n}\n\n.wpstg-remove-exclude-rule:hover {\n background-color: #E01E5A;\n border-color: #E01E5A;\n}\n\n.wpstg-code-block {\n margin-top: 4px;\n font-size: 1.2em;\n background: #f8f8f8;\n border-radius: 2px;\n}\n\n.wpstg-rule-info {\n background: #f8f8f8 !important;\n}\n\ncode.wpstg-code {\n display: inline-block;\n font-size: 11px;\n border: 1px solid #aaa;\n background: #fff;\n padding: 2px 4px;\n margin-bottom: 1px;\n color: #E01E5A;\n}\n\n.wpstg-exclusion-rule-info {\n color: #fff !important;\n background-color: #ffc107;\n border: 1px solid #ffc107;\n width: 14px;\n height: 14px;\n border-radius: 7px;\n font-size: 14px;\n padding: 0;\n display: inline-flex;\n justify-content: center;\n align-items: center;\n outline: none;\n box-shadow: none;\n font-weight: 400;\n vertical-align: middle;\n}\n\n.wpstg-exclusion-rule-info:hover {\n background-color: #ffba0c;\n border: 1px solid #ffba0c;\n}\n\n/**\n * WP STAGING INPUTS EXCLUSION RULES\n */\n\n.wpstg-exclude-rule-input {\n font-size: 12px !important;\n padding: 2px 6px;\n box-shadow: none;\n outline: none !important;\n display: inline-block;\n font-weight: 400;\n line-height: 1.5;\n color: #222;\n border-radius: 0 !important;\n background-color: #fff;\n border: 1px solid #bbb;\n min-height: 24px !important;\n margin-top: 4px;\n margin-left: 4px;\n vertical-align: baseline !important;\n transition: all 0.3s cubic-bezier(.25, .8, .25, 1);\n width: 135px;\n}\n\n.wpstg-excluded-filters-container tbody > tr:last-child .wpstg-exclude-rule-input {\n margin-bottom: 4px;\n}\n\n.wpstg-exclude-rule-input:hover {\n border: 1px solid #999;\n}\n\n.wpstg-exclude-rule-input:focus {\n border: 1px solid #25A0F1 !important;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24) !important;\n}\n\n.wpstg-file-size-exclude-select,\n.wpstg-path-exclude-select {\n width: 135px;\n}\n\n.wpstg-file-size-exclude-select-small {\n width: 52px;\n}\n\n.wpstg-file-size-exclude-input {\n width: 75px;\n}\n\n.wpstg-staging-option-title {\n margin: 15px 0 0;\n}\n\n.wpstg-swal-push-container.wpstg--swal2-container {\n z-index: 9995;\n}\n\n#wpstg-scanning-files {\n padding-bottom: 5px;\n}\n\n#wpstg-scanning-files.wpstg-tab-section, #wpstg-scanning-db.wpstg-tab-section {\n padding-top: 10px;\n}\n\n.wpstg-reset-excludes-container {\n margin: 10px 0;\n}\n\n.wpstg-swal2-ajax-loader {\n width: 100%;\n height: 150px;\n overflow: hidden;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n\n@keyframes wpstg-loading-icon-anim {\n 0% {\n transform: rotate(0);\n }\n 100% {\n transform: rotate(360deg);\n }\n}\n\n.wpstg-swal2-ajax-loader > img {\n width: 64px;\n height: 64px;\n animation: wpstg-loading-icon-anim 1s infinite linear;\n -webkit-animation: wpstg-loading-icon-anim 1s infinite linear;\n}\n\n.wpstg-swal2-container .wpstg-tab-section {\n width: auto !important;\n}\n\n#wpstg-no-staging-site-results {\n margin-top: 10px;\n max-width: 375px;\n}\n\nli#wpstg-backup-no-results {\n max-width: 500px;\n}\n\nli#wpstg-backup-no-results div, #wpstg-no-staging-site-results div {\n display: inline-block;\n text-align: center;\n}\n\nli#wpstg-backup-no-results .wpstg--dashicons, #wpstg-no-staging-site-results .wpstg--dashicons {\n filter: invert(50%);\n position: absolute;\n margin-top: 1px;\n}\n\nli#wpstg-backup-no-results .no-backups-found-text, #wpstg-no-staging-site-results .no-staging-site-found-text {\n color: #5d5d5d;\n margin-left: 20px;\n}\n\n@media only screen and (max-width: 680px) {\n li#wpstg-backup-no-results div, #wpstg-no-staging-site-results div {\n width: 100%;\n }\n}\n\n#wpstg--modal--backup--download-inner p.wpstg-download-modal-text {\n font-size: 16px;\n color: #565656;\n}\n\n#wpstg--modal--backup--download-inner h2 {\n color: #565656;\n}\n\n.wpstg-backup-restore-contains-database,\n.wpstg-backup-restore-contains-files {\n display: none;\n}\n\n.wpstg-green-button {\n background: #8bc34a;\n border: 1px solid #78a93f;\n color: white;\n text-shadow: 0 -1px 1px #78a93f, 1px 0 1px #78a93f, 0 1px 1px #40c921, -1px 0 1px #78a93f;\n}\n\n.wpstg-green-button:hover {\n background: #78a93f;\n}\n\n.wpstg-is-dir-loading {\n position: absolute;\n margin-top: -2px;\n margin-left: 8px;\n display: none;\n}\n\n.wpstg-ml-8px {\n margin-left: 8px;\n}\n\n.wpstg-mb-8px {\n margin-bottom: 8px;\n}\n\n\n.wpstg-btn-danger {\n background-color: #E01E5A;\n border: 1px solid #E01E5A;\n color: white;\n text-shadow: none;\n}\n\n.wpstg-btn-danger:hover {\n background: #c0194d;\n box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3);\n}\n\n.wpstg-swal2-container.wpstg-swal2-loading > .wpstg--swal2-modal {\n height: 200px;\n}\n\n.wpstg-reset-confirmation.wpstg-swal2-container:not(.wpstg-swal2-loading) > .wpstg--swal2-modal {\n max-width: 480px;\n}\n\n.wpstg-reset-confirmation.wpstg-swal2-container .wpstg--swal2-header {\n display: none;\n}\n\n.wpstg-reset-confirmation.wpstg-swal2-container .wpstg--swal2-content {\n height: auto;\n}\n\n.wpstg-reset-confirmation.wpstg-swal2-container > .wpstg--swal2-modal > .wpstg--swal2-content .wpstg-tabs-wrapper {\n overflow-y: auto;\n height: auto !important;\n}\n\n.wpstg-reset-confirmation.wpstg-swal2-container > .wpstg--swal2-modal > .wpstg--swal2-content {\n font-size: 13px;\n}\n\n.wpstg-reset-confirmation.wpstg-swal2-container > .wpstg--swal2-modal > .wpstg--swal2-content .wpstg-dir {\n margin-bottom: 4px;\n}\n\n.wpstg-reset-confirmation.wpstg-swal2-container > .wpstg--swal2-modal > .wpstg--swal2-content .wpstg-subdir {\n margin-top: 4px;\n}\n\n.wpstg-reset-confirmation.wpstg-swal2-container.has-collapsible-open .wpstg--swal2-modal {\n height: calc(100vh - 70px);\n}\n\n.wpstg-reset-confirmation.wpstg-swal2-container.has-collapsible-open > .wpstg--swal2-modal > .wpstg--swal2-content .wpstg-tabs-wrapper {\n height: calc(100vh - 350px) !important;\n}\n\n.wpstg--swal2-actions.wpstg--modal--actions > button {\n margin-left: 4px;\n margin-right: 4px;\n text-transform: uppercase;\n text-shadow: initial;\n font-weight: 500;\n min-width: 80px;\n}\n\n.wpstg-swal-popup {\n max-width: 1200px !important;\n}\n\n.wpstg-swal-popup.wpstg-push-finished .wpstg--swal2-title {\n color: #a8a8a8;\n}\n\n.wpstg-swal-popup.wpstg-push-finished .wpstg--swal2-content {\n margin-top: 8px;\n color: #a8a8a8;\n}\n\n.wpstg-swal-popup .wpstg--swal2-progress-steps .wpstg--swal2-progress-step.wpstg--swal2-active-progress-step,\n.wpstg-swal-popup .wpstg--swal2-progress-steps .wpstg--swal2-progress-step,\n.wpstg-swal-popup .wpstg--swal2-progress-steps .wpstg--swal2-progress-step-line {\n background: #25a1f0;\n}\n\n.wpstg-swal-popup .wpstg--swal2-progress-steps .wpstg--swal2-progress-step-line {\n width: 2.75em;\n}\n\n.wpstg--dashicons {\n width: 16px;\n height: 16px;\n}\n\n.wpstg--dashicons.wpstg-dashicons-grey {\n filter: invert(20%);\n}\n\n.wpstg--dashicons.wpstg-dashicons-19 {\n width: 19px;\n height: 19px;\n}\n\n.wpstg--dashicons.wpstg-dashicons-21 {\n width: 21px;\n height: 21px;\n}\n\n#wpstg--tab--backup #wpstg-step-1 {\n display: flex;\n align-items: center;\n}\n\n.wpstg-advanced-options .wpstg--tooltip,\n#wpstg--tab--backup #wpstg-step-1 .wpstg--tooltip {\n border-bottom: 0 solid transparent;\n display: inline-flex;\n align-items: center;\n}\n\n#wpstg--tab--backup #wpstg-step-1 .wpstg--tooltip {\n border-bottom: 0 solid transparent;\n display: flex;\n align-items: center;\n}\n\n.wpstg--tooltip .wpstg--tooltiptext-backups::after {\n left: calc(20% + 2px);\n}\n\n.wpstg-listing-single-backup .wpstg--dashicons {\n width: 17px;\n height: 17px;\n}\n\n.wpstg-100-width {\n width: 100px;\n}\n\n.wpstg-caret {\n display: inline-block;\n width: 0;\n height: 0;\n margin-left: 2px;\n vertical-align: middle;\n border-top: 4px solid;\n border-right: 4px solid transparent;\n border-left: 4px solid transparent;\n transition: transform 0.2s;\n cursor: pointer;\n}\n\n.wpstg-caret.wpstg-caret-up {\n transform: rotate(-180deg);\n}\n\n.wpstg-advanced-options-site label {\n font-size: 16px;\n display: block;\n margin: .5em 0;\n}\n\n#wpstg-confirm-backup-restore-data {\n font-size: 18px;\n margin: 0;\n margin-top: 30px;\n}\n\n/* Sweetalert WP STAGING Theme */\n\nbody.toplevel_page_wpstg_backup .wpstg--swal2-container.wpstg--swal2-backdrop-show,\nbody.toplevel_page_wpstg_clone .wpstg--swal2-container.wpstg--swal2-backdrop-show {\n background: rgba(0, 0, 0, .6);\n z-index: 9995;\n}\n\n.wpstg-swal-popup.wpstg--swal2-popup {\n border-radius: 8px;\n z-index: 9999;\n padding: 24px;\n color: #565656;\n font-family: Verdana, Geneva, Tahoma, sans-serif;\n}\n\n.wpstg-swal-popup .wpstg--swal2-title {\n font-size: 22px;\n color: #565656;\n}\n\n.wpstg-swal-popup.wpstg--swal2-popup:not(.centered-modal) .wpstg--swal2-title {\n align-self: flex-start; /* For an actual Swal title */\n text-align: left; /* Manually adding this class to a non flex display */\n margin-bottom: 0;\n}\n\n.wpstg-swal-popup .wpstg--swal2-close {\n top: 8px;\n right: 8px;\n z-index: 5;\n}\n\n.wpstg-swal-popup .wpstg--swal2-close:focus {\n outline: none;\n}\n\n.wpstg-swal-popup.wpstg--swal2-popup:not(.centered-modal) .wpstg--swal2-actions {\n justify-content: flex-end;\n}\n\n.wpstg-swal-popup .wpstg--swal2-actions > button {\n border-radius: 4px;\n font-weight: 900;\n border: 0;\n font-size: 15px;\n padding: 10px 12px;\n text-transform: capitalize;\n line-height: normal;\n height: 40px;\n min-width: 100px;\n text-shadow: none;\n}\n\n.wpstg-swal-popup.wpstg--swal2-popup:not(.centered-modal) .wpstg--swal2-actions > button {\n margin-left: 8px;\n}\n\n.wpstg-swal-popup .wpstg--swal2-actions > button.wpstg--swal2-cancel {\n border: 1px solid rgba(29, 28, 29, 0.3);\n background: #fff;\n color: rgb(29, 28, 29);\n font-weight: 500;\n width: 100px;\n text-shadow: none;\n}\n\n.wpstg-swal-popup .wpstg--swal2-actions > button:hover {\n box-shadow: 0 1px 3px 0 rgba(0 0 0 .1);\n}\n\n.wpstg-swal-popup .wpstg--swal2-actions > button.wpstg--swal2-cancel:hover {\n background: rgba(28, 29, 28, .04);\n}\n\n#wpstg-backup-name-input {\n height: 44px;\n font-size: 18px;\n}\n\n.wpstg-restore-finished-container .wpstg--swal2-title {\n color: #565656 !important;\n}\n\n/*#wpstg-restore-success {\n color: #565656;\n}*/\n\n.wpstg-restore-finished-container .wpstg--swal2-content {\n margin-top: 20px;\n color: #a8a8a8;\n}\n\n/* WP Staging Implementation of Windows Style Linear Loader */\n\n.wpstg-linear-loader > span[class*=\"wpstg-linear-loader-item\"] {\n height: 6px;\n width: 6px;\n background: #333;\n display: inline-block;\n margin: 12px 2px;\n border-radius: 100%;\n animation: wpstg_linear_loader 3s infinite;\n animation-timing-function: cubic-bezier(0.030, 0.615, 0.995, 0.415);\n animation-fill-mode: both;\n}\n\n.wpstg-linear-loader > span.wpstg-linear-loader-item:nth-child(1) {\n animation-delay: 1s;\n}\n\n.wpstg-linear-loader > span.wpstg-linear-loader-item:nth-child(2) {\n animation-delay: 0.8s;\n}\n\n.wpstg-linear-loader > span.wpstg-linear-loader-item:nth-child(3) {\n animation-delay: 0.6s;\n}\n\n.wpstg-linear-loader > span.wpstg-linear-loader-item:nth-child(4) {\n animation-delay: 0.4s;\n}\n\n.wpstg-linear-loader > span.wpstg-linear-loader-item:nth-child(5) {\n animation-delay: 0.2s;\n}\n\n.wpstg-linear-loader > span.wpstg-linear-loader-item:nth-child(6) {\n animation-delay: 0s;\n}\n\n@keyframes wpstg_linear_loader {\n 0% {\n transform: translateX(-30px);\n opacity: 0;\n }\n 25% {\n opacity: 1;\n }\n 50% {\n transform: translateX(30px);\n opacity: 0;\n }\n 100% {\n opacity: 0;\n }\n}\n\n/* END - Windows Style Linear Loader */\n\n.wpstg--modal--backup--import--upload--content {\n padding: .75em;\n margin: 1em auto;\n}\n\n.wpstg--modal--backup--import--upload--content .wpstg-linear-loader {\n display: none;\n}\n\n#wpstg-multisite-disabled .wpstg-clone {\n width: 355px;\n}\n\n#wpstg-free-version-backups .wpstg-clone {\n text-align: center;\n}\n\n#wpstg-free-version-backups .wpstg-clone p {\n font-size: 16px;\n}\n\n.wpstg-staging-info li .backup-notes {\n word-break: break-word;\n}\n\n.wpstg--modal--import--upload--progress--title small {\n font-weight: normal;\n}\n\n#wpstg-report-issue-wrapper {\n position: relative;\n}\n\n#wpstg-report-issue-wrapper .arrow-up {\n width: 0;\n height: 0;\n border-left: 8px solid transparent;\n border-right: 8px solid transparent;\n border-bottom: 8px solid white;\n position: absolute;\n top: -8px;\n right: 40px;\n}\n\n.notice {\n margin: 10px 20px 0 2px;\n}\n\n.wpstg--notice {\n box-shadow: 0 1px 1px rgba(0, 0, 0, .04);\n margin: 20px 20px 20px 0px;\n padding: 1px 12px;\n}\n\n.wpstg--error a:hover {\n color: #eeeeee;\n}\n\n.wpstg--error, .wpstg--error a {\n background: #E01E5A;\n color: white;\n}\n\n/**\n * Buttons\n */\n\n.wpstg-button {\n display: inline-block;\n border-radius: 2px;\n cursor: pointer;\n padding: 2px 10px 2px 10px;\n text-transform: uppercase;\n font-weight: 500;\n outline: 0;\n transition: background-color .1s ease-in;\n text-decoration: none;\n}\n\n.wpstg-button.wpstg-save {\n background-color: #1687A7;\n color: white;\n}\n\n.wpstg-button.wpstg-save:hover {\n background-color: #276678;\n}\n\n\n.wpstg-button.wpstg-button-light {\n background-color: #f8f8f8;\n border: 1px solid #eee;\n color: #333;\n animation: background-color 0.3s;\n}\n\n.wpstg-button.wpstg-button-light:hover {\n background-color: #e0e0e0;\n border: 1px solid #e0e0e0;\n}\n\n.wpstg-buttons .spinner {\n float: none;\n margin: 0 0 0 5px;\n}\n\n.wpstg-button.danger {\n display: inline-block;\n text-decoration: none;\n text-align: center;\n text-transform: inherit;\n background-color: #E01E5A;\n color: white;\n border-radius: 2px;\n border-color: transparent;\n}\n\n.wpstg-button.danger:hover {\n background-color: #c0194d;\n}\n\n.wpstg-button--big {\n display: inline-block;\n padding: 10px;\n min-width: 170px;\n font-size: 16px;\n text-decoration: none;\n text-align: center;\n margin-top: 20px;\n color: white;\n border-radius: 3px;\n}\n\n.wpstg-button--primary {\n display: inline-block;\n text-decoration: none;\n font-size: 13px;\n line-height: 2.15384615;\n min-height: 30px;\n margin: 0;\n padding: 0 10px;\n cursor: pointer;\n border: 1px solid rgba(29, 28, 29, 0.3);\n -webkit-appearance: none;\n border-radius: 2px;\n white-space: nowrap;\n box-sizing: border-box;\n color: #171717;\n}\n\n.wpstg-button--primary:hover {\n background: rgba(28, 29, 28, .04);\n color: black;\n}\n\n.wpstg-button--secondary {\n display: inline-block;\n background-color: transparent;\n color: #95a5a6;\n border-radius: 2px;\n border: 1px solid rgba(29, 28, 29, 0.3);\n cursor: pointer;\n padding: 4px 10px 2px 10px;\n font-weight: 500;\n outline: 0;\n transition: background-color .1s ease-in;\n text-decoration: none;\n}\n\n.wpstg-button--red {\n background-color: #E01E5A;\n border-color: #E01E5A;\n color: white;\n}\n\n.wpstg-button--red:hover {\n background-color: #d02358;\n border-color: #e0255f;\n color: white;\n}\n\n.wpstg-button--cta-red {\n background-color: #fe008f;\n border-color: #E01E5A;\n color: white;\n}\n\n.wpstg-button--cta-red:hover {\n background-color: #f31391;\n border-color: #e0255f;\n color: white;\n}\n\n.wpstg-button--blue {\n background-color: #25A0F1;\n border-color: #25A0F1;\n color: white;\n}\n\n.wpstg-button--blue:hover {\n background-color: #259be6;\n border-color: #259be6;\n color: white;\n}\n\n#wpstg-button-backup-upgrade {\n font-size: 16px;\n}\n\n.wpstg-staging-status {\n color: #E01E5A;\n}\n\n#wpstg-push-changes,\n#wpstg-start-updating,\n#wpstg-save-clone-data {\n margin-left: 5px;\n}\n\ninput.wpstg-textbox {\n border: 1px solid #aaa;\n border-radius: .25rem;\n padding: 0.25rem 0.5rem;\n font-size: 14px;\n}\n\ninput.wpstg-textbox:focus {\n outline: 0;\n border-color: #259be6;\n -webkit-box-shadow: 0 0 0 0.1rem rgba(221, 221, 221, .35);\n box-shadow: 0 0 0 0.1rem rgba(221, 221, 221, .35);\n}\n\ninput.wpstg-textbox::placeholder {\n color: #888;\n}\n\n.wpstg--advance-settings--checkbox {\n display: flex;\n align-items: center;\n}\n\n.wpstg--advance-settings--checkbox > label {\n font-size: 14px;\n font-weight: bolder;\n width: 165px;\n display: inline-block;\n}\n\n.wpstg--advance-settings--checkbox > .wpstg--tooltip {\n margin-top: 5px;\n margin-left: 5px;\n position: relative;\n display: inline-block;\n border-bottom: 0px solid transparent;\n}\n\n.wpstg--advance-settings--checkbox > .wpstg--tooltip > .wpstg--tooltiptext {\n top: 18px;\n left: -150px;\n}\n\n\ndiv#wpstg-restore-wait {\n display: none;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n text-align: center;\n height: 100vh;\n width: 100vw;\n position: fixed;\n top: 0;\n left: 0;\n background: white;\n z-index: 99999;\n}\n\ndiv#wpstg-restore-wait .wpstg-title {\n font-weight: bold;\n}\n\ndiv#wpstg-restore-wait div {\n font-size: 16px;\n margin-top: 12px;\n}\n\n.resumable-browse {\n cursor: pointer;\n}\n\n.resumable-browse a {\n text-decoration: underline;\n}\n\n.wpstg-upload-text {\n font-weight: 600;\n}\n\n.wpstg--modal--backup--import--upload--container.dragover {\n transition: background-color 0.7s;\n background-color: #94dc96;\n color: #FFF;\n}\n\n.wpstg--modal--backup--import--upload--container.dragover * {\n pointer-events: none; /* Avoids flickering when dragging to drop a file */\n}\n\n.wpstg--modal--backup--import--upload--container.dragover .wpstg-upload-text {\n display: none;\n}\n\n.wpstg--modal--backup--import--upload--container.dragover .wpstg-dragover-text {\n display: block;\n}\n\n.wpstg--modal--backup--import--upload--container .wpstg-dragover-text {\n display: none;\n}\n\n#wpstg-invalid-license-message, #wpstg-invalid-license-message a {\n font-weight: 500;\n color: #E01E5A;\n margin-left: 6px;\n}\n\n#wpstg-sidebar--banner {\n max-width: 200px;\n}\n\n@media screen and (max-width: 1234px) {\n .wpstg-h2 {\n font-size: 24px;\n }\n\n #wpstg-welcome li {\n font-size: 14px;\n }\n}\n\n.wpstg-exclamation {\n color: #ffffff;\n border-radius: 100%;\n background-color: #E01E5A;\n width: 20px;\n height: 20px;\n text-align: center;\n font-weight: bold;\n display: inline-block;\n margin: 6px;\n}\n\n.wpstg--tab--contents {\n padding-top: 1px;\n}\n\n.wpstg-swal-show.wpstg--swal2-show {\n -webkit-animation: wpstg-swal-show 0.2s !important;\n animation: wpstg-swal-show 0.2s !important;\n}\n\n@-webkit-keyframes wpstg-swal-show {\n 0% {\n transform: scale(0.3);\n }\n 100% {\n transform: scale(1);\n }\n}\n\n@keyframes wpstg-swal-show {\n 0% {\n transform: scale(0.3);\n }\n 100% {\n transform: scale(1);\n }\n}\n"]}
assets/img/logo.svg ADDED
@@ -0,0 +1 @@
 
1
+ <svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 1772.09 396.7"><defs><style>.cls-1{fill:url(#linear-gradient);}.cls-2{fill:url(#linear-gradient-2);}</style><linearGradient id="linear-gradient" x1="443.1" y1="120.85" x2="693.38" y2="120.85" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#36b6fc"/><stop offset="1" stop-color="#2eb67d"/></linearGradient><linearGradient id="linear-gradient-2" x1="443.09" y1="275.85" x2="693.38" y2="275.85" gradientUnits="userSpaceOnUse"><stop offset="0.01" stop-color="#e01f5a"/><stop offset="1" stop-color="#ecb02e"/></linearGradient></defs><path d="M820.07,192.46h0c-6.85-3.11-19-6.61-37.07-10.71-21.34-4.82-28.93-8.67-31.55-11.06A15.75,15.75,0,0,1,746,158.3c0-5.92,2.59-10.87,7.93-15.15s14.53-6.59,27-6.59c11.9,0,20.93,2.46,26.83,7.3s9.3,12.06,10.33,21.62l.32,2.89,26.69-2-.11-2.89A53.19,53.19,0,0,0,836.39,136c-5.33-8.12-13-14.34-22.87-18.49-9.66-4.07-20.93-6.14-33.5-6.14a81.82,81.82,0,0,0-31.39,5.85c-9.6,4-17,9.89-22.06,17.61a45.08,45.08,0,0,0-7.57,25,40.72,40.72,0,0,0,6.26,22.12c4.12,6.54,10.43,12.06,18.72,16.4,6.36,3.38,17,6.83,32.53,10.56,15,3.59,24.7,6.25,29,7.92,6.35,2.42,10.9,5.37,13.54,8.77a18.33,18.33,0,0,1,3.87,11.71,20.47,20.47,0,0,1-4.1,12.35c-2.75,3.81-7.08,6.89-12.87,9.14a57.94,57.94,0,0,1-21,3.51,60.12,60.12,0,0,1-24.1-4.65c-6.93-3-12.08-7-15.3-11.74s-5.4-11.25-6.31-19l-.34-2.89-26.29,2.29.08,2.83a58.77,58.77,0,0,0,9.54,31.19,55.65,55.65,0,0,0,25,20.73c10.42,4.49,23.43,6.77,38.69,6.77a78.77,78.77,0,0,0,33-6.74c9.89-4.53,17.6-11,22.91-19.2a48,48,0,0,0,8-26.42,44.16,44.16,0,0,0-7.37-25.13C837.69,203.1,830.13,197.09,820.07,192.46Z"/><polygon points="998.02 114.14 861.36 114.14 861.36 139.6 915.67 139.6 915.67 284.99 943.48 284.99 943.48 139.6 998.02 139.6 998.02 114.14"/><path d="M1043.45,114.14,977.84,285h29.63l18.1-49.93h64.77L1109.57,285H1141L1071,114.14Zm37.86,97.16h-47.22l16.6-44.32c2.53-6.91,4.71-13.92,6.51-20.94,2.26,6.89,5.09,14.81,8.44,23.66Z"/><path d="M1228,220.33h48.47v26.32c-4.35,3.57-10.6,7-18.59,10.24a70.59,70.59,0,0,1-26.54,5.23,65.74,65.74,0,0,1-29.48-6.88,45.79,45.79,0,0,1-20.75-20.72c-4.82-9.42-7.26-21.37-7.26-35.52a83.69,83.69,0,0,1,6.06-32,54.36,54.36,0,0,1,9.86-15.45,45.43,45.43,0,0,1,16.53-11.22c6.87-2.87,15.18-4.32,24.7-4.32a55.14,55.14,0,0,1,21.55,4.09c6.3,2.67,11.19,6.23,14.53,10.59s6.37,10.81,8.72,18.81l.83,2.83,25.37-7-.74-2.86c-2.94-11.45-7.32-20.91-13-28.11s-13.82-13-23.89-17a89.55,89.55,0,0,0-33.45-6c-16.84,0-32,3.53-44.93,10.48s-23.28,17.89-30.24,32.32a105.38,105.38,0,0,0-10.36,46.22c0,16.6,3.51,31.86,10.45,45.34a72,72,0,0,0,31.24,31.37c13.6,7.13,28.92,10.74,45.53,10.74a101.78,101.78,0,0,0,36.14-6.66,126.68,126.68,0,0,0,34-19.74l1.13-.91V194.87L1228,195Z"/><rect x="1333.74" y="114.14" width="27.81" height="170.85"/><polygon points="1502.75 236.69 1420.77 114.14 1393.79 114.14 1393.79 284.99 1420.7 284.99 1420.7 162.34 1502.68 284.99 1529.66 284.99 1529.66 114.14 1502.75 114.14 1502.75 236.69"/><path d="M1637.46,195v25.33h48.46v26.32c-4.35,3.57-10.59,7-18.59,10.24a70.57,70.57,0,0,1-26.53,5.23,65.71,65.71,0,0,1-29.48-6.88,45.81,45.81,0,0,1-20.76-20.72c-4.82-9.42-7.26-21.37-7.26-35.52a83.51,83.51,0,0,1,6.07-32,54.36,54.36,0,0,1,9.86-15.45,45.47,45.47,0,0,1,16.52-11.22c6.87-2.87,15.18-4.32,24.71-4.32a55.13,55.13,0,0,1,21.54,4.09c6.31,2.67,11.2,6.23,14.53,10.59s6.37,10.81,8.73,18.81l.83,2.83,25.37-7-.74-2.86c-2.94-11.45-7.33-20.91-13-28.11s-13.81-13-23.89-17a89.53,89.53,0,0,0-33.44-6c-16.84,0-32,3.53-44.94,10.48s-23.28,17.89-30.24,32.32a105.52,105.52,0,0,0-10.36,46.22c0,16.6,3.52,31.86,10.45,45.34a72.08,72.08,0,0,0,31.25,31.37c13.6,7.13,28.91,10.74,45.52,10.74a101.88,101.88,0,0,0,36.15-6.66,127,127,0,0,0,34-19.74l1.13-.91V194.87Z"/><path d="M224,223.35c-1.82,7.27-3.46,14.15-4.92,20.57-2.58-13.76-6-28.21-10.31-43.16L184.5,115.14H153.65l-32,113.52c-.55,2-1.92,7.52-4.18,16.91-1.34-6.68-2.82-13.38-4.4-20L87.46,115.14H58.8L104.13,286H131L166.56,158.2q1-3.55,2.08-7.8c.62,2.28,1.34,4.87,2.15,7.79L206.15,286h25.6l46.84-170.85H250.38Z"/><path d="M404.33,125h0c-5.81-4-13.07-6.78-21.52-8.18-5.93-1.08-14.55-1.63-25.61-1.63H292V286h27.82V219h39.28c24.08,0,41.09-5.22,50.56-15.53s14.17-22.89,14.17-37.62A53.78,53.78,0,0,0,418.53,142,43.69,43.69,0,0,0,404.33,125Zm-44.88,68.57H319.83V140.6H359c9.58,0,16.17.45,19.55,1.35a21.37,21.37,0,0,1,12.13,8.57,27,27,0,0,1,4.67,16c0,8.7-2.57,15.21-7.87,19.9h0C382.15,191.12,372.72,193.52,359.45,193.52Z"/><path class="cls-1" d="M657.18,106.31a128,128,0,0,0-214.08,65h34.64A94.43,94.43,0,0,1,633.35,130l-41.66,41.38H693.38v-101Z"/><path class="cls-2" d="M658.74,225.35a94.44,94.44,0,0,1-155.62,41.38l41.66-41.38H443.09v101l36.2-36a128,128,0,0,0,214.09-65Z"/></svg>
assets/img/logo_clean_small_212_25.png DELETED
Binary file
assets/js/dist/wpstg-admin.js CHANGED
@@ -1633,7 +1633,8 @@
1633
  progressBar: 0,
1634
  cloneExcludeFilters: null,
1635
  directoryNavigator: null,
1636
- notyf: null
 
1637
  };
1638
  var cache = {
1639
  elements: []
@@ -1731,7 +1732,6 @@
1731
 
1732
  var elements = function elements() {
1733
  var $workFlow = cache.get('#wpstg-workflow');
1734
- var isAllChecked = true;
1735
  var urlSpinner = ajaxurl.replace('/admin-ajax.php', '') + '/images/spinner';
1736
  var timer;
1737
 
@@ -1746,16 +1746,16 @@
1746
  .on('click', '.wpstg-button-unselect', function (e) {
1747
  e.preventDefault();
1748
 
1749
- if (false === isAllChecked) {
1750
  cache.get('#wpstg_select_tables_cloning .wpstg-db-table').prop('selected', 'selected');
1751
  cache.get('.wpstg-button-unselect').text('Unselect All');
1752
  cache.get('.wpstg-db-table-checkboxes').prop('checked', true);
1753
- isAllChecked = true;
1754
  } else {
1755
  cache.get('#wpstg_select_tables_cloning .wpstg-db-table').prop('selected', false);
1756
  cache.get('.wpstg-button-unselect').text('Select All');
1757
  cache.get('.wpstg-db-table-checkboxes').prop('checked', false);
1758
- isAllChecked = false;
1759
  }
1760
  })
1761
  /**
@@ -2036,6 +2036,7 @@
2036
  var clone = $(this).data('clone');
2037
  var resetModal = new WpstgResetModal(clone);
2038
  var promise = resetModal.showModal();
 
2039
  promise.then(function (result) {
2040
  if (result.value) {
2041
  var dirNavigator = resetModal.getDirectoryNavigator();
@@ -2391,6 +2392,7 @@
2391
  that.cloneExcludeFilters = null;
2392
 
2393
  if (that.data.action === 'wpstg_scanning') {
 
2394
  that.directoryNavigator = new WpstgDirectoryNavigation('#wpstg-directories-listing', wpstg, that.notyf);
2395
  that.switchStep(2);
2396
  that.cloneExcludeFilters = new WpstgExcludeFilters();
@@ -2525,7 +2527,7 @@
2525
  cache.get('#wpstg-removing-clone').removeClass('loading').html('');
2526
 
2527
  if (response["delete"] === 'finished' && response.error === undefined) {
2528
- $('.wpstg-clone#' + clone).remove();
2529
  } // No staging site message is also of type/class .wpstg-class but hidden
2530
  // We have just excluded that from search when counting no of clones
2531
 
1633
  progressBar: 0,
1634
  cloneExcludeFilters: null,
1635
  directoryNavigator: null,
1636
+ notyf: null,
1637
+ areAllTablesChecked: true
1638
  };
1639
  var cache = {
1640
  elements: []
1732
 
1733
  var elements = function elements() {
1734
  var $workFlow = cache.get('#wpstg-workflow');
 
1735
  var urlSpinner = ajaxurl.replace('/admin-ajax.php', '') + '/images/spinner';
1736
  var timer;
1737
 
1746
  .on('click', '.wpstg-button-unselect', function (e) {
1747
  e.preventDefault();
1748
 
1749
+ if (false === that.areAllTablesChecked) {
1750
  cache.get('#wpstg_select_tables_cloning .wpstg-db-table').prop('selected', 'selected');
1751
  cache.get('.wpstg-button-unselect').text('Unselect All');
1752
  cache.get('.wpstg-db-table-checkboxes').prop('checked', true);
1753
+ that.areAllTablesChecked = true;
1754
  } else {
1755
  cache.get('#wpstg_select_tables_cloning .wpstg-db-table').prop('selected', false);
1756
  cache.get('.wpstg-button-unselect').text('Select All');
1757
  cache.get('.wpstg-db-table-checkboxes').prop('checked', false);
1758
+ that.areAllTablesChecked = false;
1759
  }
1760
  })
1761
  /**
2036
  var clone = $(this).data('clone');
2037
  var resetModal = new WpstgResetModal(clone);
2038
  var promise = resetModal.showModal();
2039
+ that.areAllTablesChecked = true;
2040
  promise.then(function (result) {
2041
  if (result.value) {
2042
  var dirNavigator = resetModal.getDirectoryNavigator();
2392
  that.cloneExcludeFilters = null;
2393
 
2394
  if (that.data.action === 'wpstg_scanning') {
2395
+ that.areAllTablesChecked = true;
2396
  that.directoryNavigator = new WpstgDirectoryNavigation('#wpstg-directories-listing', wpstg, that.notyf);
2397
  that.switchStep(2);
2398
  that.cloneExcludeFilters = new WpstgExcludeFilters();
2527
  cache.get('#wpstg-removing-clone').removeClass('loading').html('');
2528
 
2529
  if (response["delete"] === 'finished' && response.error === undefined) {
2530
+ $('.wpstg-clone[data-clone-id="' + clone + '"]').remove();
2531
  } // No staging site message is also of type/class .wpstg-class but hidden
2532
  // We have just excluded that from search when counting no of clones
2533
 
assets/js/dist/wpstg-admin.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"wpstg-admin.js","sources":["../src/modules/wpstg-dom-utils.js","../src/modules/wpstg-clone-staging.js","../src/modules/wpstg-directory-navigation.js","../src/modules/wpstg-exclude-filters.js","../src/modules/wpstg-modal.js","../src/modules/wpstg-hover-intent.js","../src/wpstg.js","../src/modules/wpstg-reset-modal.js","../src/modules/wpstg-cloning-advance-settings.js","../src/modules/wpstg-main-menu.js","../src/wpstg-admin.js"],"sourcesContent":["/**\n * WP STAGING basic jQuery replacement\n */\n\n/**\n * Shortcut for document.querySelector() or jQuery's $()\n * Return single element only\n */\nexport function qs(selector) {\n return document.querySelector(selector);\n}\n\n/**\n * Shortcut for document.querySelector() or jQuery's $()\n * Return collection of elements\n */\nexport function all(selector) {\n return document.querySelectorAll(selector);\n}\n\n/**\n * alternative of jQuery - $(parent).on(event, selector, handler)\n */\nexport function addEvent(parent, evt, selector, handler) {\n parent.addEventListener(evt, function(event) {\n if (event.target.matches(selector + ', ' + selector + ' *')) {\n handler(event.target.closest(selector), event);\n }\n }, false);\n}\n\nexport function slideDown(element, duration = 400) {\n element.style.display = 'block';\n element.style.overflow = 'hidden';\n const height = element.offsetHeight;\n element.style.height = '0px';\n element.style.transitionProperty = 'height';\n element.style.transitionDuration = duration + 'ms';\n setTimeout(() => {\n element.style.height = height + 'px';\n window.setTimeout(() => {\n element.style.removeProperty('height');\n element.style.removeProperty('overflow');\n element.style.removeProperty('transition-duration');\n element.style.removeProperty('transition-property');\n }, duration);\n }, 0);\n}\n\nexport function slideUp(element, duration = 400) {\n element.style.display = 'block';\n element.style.overflow = 'hidden';\n const height = element.offsetHeight;\n element.style.height = height + 'px';\n element.style.transitionProperty = 'height';\n element.style.transitionDuration = duration + 'ms';\n setTimeout(() => {\n element.style.height = '0px';\n window.setTimeout(() => {\n element.style.display = 'none';\n element.style.removeProperty('height');\n element.style.removeProperty('overflow');\n element.style.removeProperty('transition-duration');\n element.style.removeProperty('transition-property');\n }, duration);\n }, 0);\n}\n\nexport function getNextSibling(element, selector) {\n let sibling = element.nextElementSibling;\n\n while (sibling) {\n if (sibling.matches(selector)) {\n return sibling;\n }\n\n sibling = sibling.nextElementSibling;\n }\n};\n\nexport function getParents(element, selector) {\n const result = [];\n for (let parent = element && element.parentElement; parent; parent = parent.parentElement) {\n if (parent.matches(selector)) {\n result.push(parent);\n }\n }\n\n return result;\n}\n\n/**\n * Check if element has class name\n * @param element\n * @param className\n * @return {boolean}\n */\nexport function hasClass(element, className) {\n return (' ' + element.className + ' ').indexOf(' ' + className+ ' ') > -1;\n}\n","import * as dom from './wpstg-dom-utils.js';\n\n/**\n * Enable/Disable cloning for staging site\n */\nexport default class WpstgCloneStaging {\n constructor(\n pageWrapperId = '#wpstg-clonepage-wrapper',\n wpstgObject = wpstg,\n ) {\n this.pageWrapper = dom.qs(pageWrapperId);\n this.wpstgObject = wpstgObject;\n this.enableButtonId = '#wpstg-enable-staging-cloning';\n this.enableAction = 'wpstg_enable_staging_cloning';\n\n this.notyf = new Notyf({\n duration: 10000,\n position: {\n x: 'center',\n y: 'bottom',\n },\n dismissible: true,\n types: [\n {\n type: 'warning',\n background: 'orange',\n icon: false,\n },\n ],\n });\n this.init();\n }\n\n addEvents() {\n if (this.pageWrapper === null) {\n return;\n }\n\n dom.addEvent(this.pageWrapper, 'click', this.enableButtonId, () => {\n this.sendRequest(this.enableAction);\n });\n }\n\n init() {\n this.addEvents();\n }\n\n sendRequest(action) {\n fetch(this.wpstgObject.ajaxUrl, {\n method: 'POST',\n credentials: 'same-origin',\n body: new URLSearchParams({\n action: action,\n accessToken: this.wpstgObject.accessToken,\n nonce: this.wpstgObject.nonce,\n }),\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n },\n }).then((response) => {\n if (response.ok) {\n return response.json();\n }\n\n return Promise.reject(response);\n }).then((data) => {\n // Reload current page if successful.\n if ('undefined' !== typeof (data.success) && data.success) {\n location.reload();\n return;\n }\n\n // There will be message probably in case of error\n if ('undefined' !== typeof (data.message)) {\n this.notyf.error(data.message);\n return;\n }\n\n this.notyf.error(this.wpstgObject.i18n['somethingWentWrong']);\n }).catch((error) => {\n console.warn(this.wpstgObject.i18n['somethingWentWrong'], error);\n });\n }\n}\n","import * as dom from './wpstg-dom-utils.js';\n\n/**\n * Fetch directory direct child directories\n */\nexport default class WpstgDirectoryNavigation {\n constructor(\n directoryListingSelector = '#wpstg-directories-listing',\n wpstgObject = wpstg,\n notyf = null,\n ) {\n this.directoryListingContainer = dom.qs(directoryListingSelector);\n this.wpstgObject = wpstgObject;\n this.dirCheckboxSelector = '.wpstg-check-dir';\n this.dirExpandSelector = '.wpstg-expand-dirs';\n this.unselectAllDirsSelector = '.wpstg-unselect-dirs';\n this.selectDefaultDirsSelector = '.wpstg-select-dirs-default';\n this.fetchChildrenAction = 'wpstg_fetch_dir_childrens';\n this.currentCheckboxElement = null;\n this.currentParentDiv = null;\n this.currentLoader = null;\n this.existingExcludes = [];\n this.excludedDirectories = [];\n this.isDefaultSelected = false;\n this.notyf = notyf;\n\n this.init();\n }\n\n addEvents() {\n if (this.directoryListingContainer === null) {\n console.log('Error: directory navigation add events');\n return;\n }\n\n dom.addEvent(this.directoryListingContainer, 'click', this.dirExpandSelector, (element, event) => {\n event.preventDefault();\n if (this.toggleDirExpand(element)) {\n this.sendRequest(this.fetchChildrenAction, element);\n }\n });\n\n dom.addEvent(this.directoryListingContainer, 'click', this.unselectAllDirsSelector, () => {\n this.unselectAll();\n });\n\n dom.addEvent(this.directoryListingContainer, 'click', this.selectDefaultDirsSelector, () => {\n this.selectDefault();\n });\n }\n\n init() {\n this.addEvents();\n this.parseExcludes();\n }\n\n /**\n * Toggle Dir Expand,\n * Return true if children aren't fetched\n * @param {HTMLElement} element\n * @return {boolean}\n */\n toggleDirExpand(element) {\n this.currentParentDiv = element.parentElement;\n this.currentCheckboxElement = element.previousSibling;\n this.currentLoader = this.currentParentDiv.querySelector('.wpstg-is-dir-loading');\n if (this.currentCheckboxElement.getAttribute('data-navigateable', 'false') === 'false') {\n return false;\n }\n\n if (this.currentCheckboxElement.getAttribute('data-scanned', 'false') === 'false') {\n return true;\n }\n\n return false;\n }\n\n sendRequest(action) {\n if (this.currentLoader !== null) {\n this.currentLoader.style.display = 'inline-block';\n }\n\n fetch(this.wpstgObject.ajaxUrl, {\n method: 'POST',\n credentials: 'same-origin',\n body: new URLSearchParams({\n action: action,\n accessToken: this.wpstgObject.accessToken,\n nonce: this.wpstgObject.nonce,\n dirPath: this.currentCheckboxElement.value,\n isChecked: this.currentCheckboxElement.checked,\n forceDefault: this.isDefaultSelected,\n }),\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n },\n }).then((response) => {\n if (response.ok) {\n return response.json();\n }\n\n return Promise.reject(response);\n }).then((data) => {\n if ('undefined' !== typeof (data.success) && data.success) {\n this.currentCheckboxElement.setAttribute('data-scanned', true);\n const dirContainer = document.createElement('div');\n dirContainer.classList.add('wpstg-dir');\n dirContainer.classList.add('wpstg-subdir');\n dirContainer.innerHTML = JSON.parse(data.directoryListing);\n this.currentParentDiv.appendChild(dirContainer);\n if (this.currentLoader !== null) {\n this.currentLoader.style.display = 'none';\n }\n\n dom.slideDown(dirContainer);\n\n return;\n }\n\n if (this.notyf !== null) {\n this.notyf.error(this.wpstgObject.i18n['somethingWentWrong']);\n } else {\n alert('Error: ' + this.wpstgObject.i18n['somethingWentWrong']);\n }\n }).catch((error) => {\n console.warn(this.wpstgObject.i18n['somethingWentWrong'], error);\n });\n }\n\n getExcludedDirectories() {\n this.excludedDirectories = [];\n this.directoryListingContainer.querySelectorAll('.wpstg-dir input:not(:checked)').forEach((element) => {\n if (!this.isParentExcluded(element.value)) {\n this.excludedDirectories.push(element.value);\n }\n });\n\n this.existingExcludes.forEach((exclude) => {\n if (!this.isParentExcluded(exclude) && !this.isExcludeScanned(exclude)) {\n this.excludedDirectories.push(exclude);\n }\n });\n\n return this.excludedDirectories.join(this.wpstgObject.settings.directorySeparator);\n }\n\n /**\n * @param {string} path\n * @return {bool}\n */\n isParentExcluded(path) {\n let isParentAlreadyExcluded = false;\n this.excludedDirectories.forEach((dir) => {\n if (path.startsWith(dir + '/')) {\n isParentAlreadyExcluded = true;\n }\n });\n\n return isParentAlreadyExcluded;\n }\n\n getExtraDirectoriesRootOnly() {\n this.getExcludedDirectories();\n const extraDirectories = [];\n this.directoryListingContainer.querySelectorAll(':not(.wpstg-subdir)>.wpstg-dir>input.wpstg-wp-non-core-dir:checked').forEach((element) => {\n extraDirectories.push(element.value);\n });\n\n // Check if extra directories text area exists\n // TODO: remove extraCustomDirectories code if no one require extraCustomDirectories...\n const extraDirectoriesTextArea = dom.qs('#wpstg_extraDirectories');\n if (extraDirectoriesTextArea === null || extraDirectoriesTextArea.value === '') {\n return extraDirectories.join(this.wpstgObject.settings.directorySeparator);\n }\n\n const extraCustomDirectories = extraDirectoriesTextArea.value.split(/\\r?\\n/);\n\n return extraDirectories.concat(extraCustomDirectories).join(this.wpstgObject.settings.directorySeparator);\n }\n\n unselectAll() {\n this.directoryListingContainer.querySelectorAll('.wpstg-dir input').forEach((element) => {\n element.checked = false;\n });\n }\n\n selectDefault() {\n // unselect all checkboxes\n this.unselectAll();\n\n // only select those checkboxes whose class is wpstg-wp-core-dir\n this.directoryListingContainer.querySelectorAll('.wpstg-dir input.wpstg-wp-core-dir').forEach((element) => {\n element.checked = true;\n });\n\n // then unselect those checkboxes whose parent has wpstg extra checkbox\n this.directoryListingContainer.querySelectorAll('.wpstg-dir > .wpstg-wp-non-core-dir').forEach((element) => {\n element.parentElement.querySelectorAll('input.wpstg-wp-core-dir').forEach((element) => {\n element.checked = false;\n });\n });\n\n this.isDefaultSelected = true;\n }\n\n parseExcludes() {\n this.existingExcludes = this.directoryListingContainer.getAttribute('data-existing-excludes', []);\n if (this.existingExcludes === '') {\n this.existingExcludes = [];\n }\n\n if (this.existingExcludes.length !== 0) {\n this.existingExcludes = this.existingExcludes.split(',');\n }\n }\n\n isExcludeScanned(exclude) {\n this.directoryListingContainer.querySelectorAll('.wpstg-dir input').forEach((element) => {\n if (element.value === exclude) {\n return true;\n }\n });\n\n return false;\n }\n}\n","import * as dom from './wpstg-dom-utils.js';\n\n/**\n * Rich Exclude Filter Module\n */\nexport default class WpstgExcludeFilters {\n constructor(\n excludeFilterContainerSelector = '#wpstg-exclude-filters-container',\n wpstgObject = wpstg,\n ) {\n this.excludeContainer = dom.qs(excludeFilterContainerSelector);\n this.excludeTableBody = dom.qs(`${excludeFilterContainerSelector} tbody`);\n this.wpstgObject = wpstgObject;\n this.init();\n }\n\n addEvents() {\n dom.addEvent(this.excludeContainer, 'click', '.wpstg-file-size-rule', () => {\n this.addFileSizeExclude();\n });\n\n dom.addEvent(this.excludeContainer, 'click', '.wpstg-file-ext-rule', () => {\n this.addFileExtExclude();\n });\n\n dom.addEvent(this.excludeContainer, 'click', '.wpstg-file-name-rule', () => {\n this.addFileNameExclude();\n });\n\n dom.addEvent(this.excludeContainer, 'click', '.wpstg-dir-name-rule', () => {\n this.addDirNameExclude();\n });\n\n dom.addEvent(this.excludeContainer, 'click', '.wpstg-clear-all-rules', () => {\n this.clearExcludes();\n });\n\n dom.addEvent(this.excludeContainer, 'click', '.wpstg-remove-exclude-rule', (target) => {\n this.removeExclude(target);\n });\n }\n\n init() {\n if (this.excludeContainer === null) {\n console.log('Error: Given table selector not found!');\n return;\n }\n\n this.addEvents();\n }\n\n addFileSizeExclude() {\n this.addExcludeRuleRow('#wpstg-file-size-exclude-filter-template');\n }\n\n addFileExtExclude() {\n this.addExcludeRuleRow('#wpstg-file-ext-exclude-filter-template');\n }\n\n addFileNameExclude() {\n this.addExcludeRuleRow('#wpstg-file-name-exclude-filter-template');\n }\n\n addDirNameExclude() {\n this.addExcludeRuleRow('#wpstg-dir-name-exclude-filter-template');\n }\n\n addExcludeRuleRow(templateName) {\n const excludeRowTemplate = dom.qs(templateName);\n if (excludeRowTemplate !== null) {\n const clone = excludeRowTemplate.content.cloneNode(true);\n const excludeRow = clone.querySelector('tr');\n\n this.excludeTableBody.appendChild(excludeRow);\n dom.all('.wpstg-has-exclude-rules').forEach((e) => {\n e.style.display = 'inherit';\n });\n }\n }\n\n clearExcludes() {\n this.excludeTableBody.innerHTML = '';\n dom.all('.wpstg-has-exclude-rules').forEach((e) => {\n e.style.display = 'none';\n });\n }\n\n removeExclude(target) {\n if (target.parentElement !== null && target.parentElement.parentElement !== null) {\n this.excludeTableBody.removeChild(target.parentElement.parentElement);\n }\n\n if (this.excludeTableBody.innerHTML.trim() === '') {\n dom.all('.wpstg-has-exclude-rules').forEach((e) => {\n e.style.display = 'none';\n });\n }\n }\n\n /**\n * Converts all the exclude filters arrays into one single string to keep size of post request small\n * @return {string}\n */\n getExcludeFilters() {\n const globExcludes = [];\n const sizeExcludes = [];\n\n const sizeCompares = this.excludeTableBody.querySelectorAll('select[name=\"wpstgFileSizeExcludeRuleCompare[]\"]');\n const sizeSizes = this.excludeTableBody.querySelectorAll('input[name=\"wpstgFileSizeExcludeRuleSize[]\"]');\n const sizeByte = this.excludeTableBody.querySelectorAll('select[name=\"wpstgFileSizeExcludeRuleByte[]\"]');\n for (const [key, sizeInput] of Object.entries(sizeSizes)) {\n if (sizeInput.value !== '') {\n sizeExcludes.push(sizeCompares[key].value + ' ' + sizeInput.value + sizeByte[key].value);\n }\n }\n\n const extensionInputs = this.excludeTableBody.querySelectorAll('input[name=\"wpstgFileExtExcludeRule[]\"]');\n extensionInputs.forEach((x) => {\n const ext = this.cleanStringForGlob(x.value);\n if (ext !== '') {\n globExcludes.push('ext:' + ext.trim());\n }\n });\n\n const fileNamesPos = this.excludeTableBody.querySelectorAll('select[name=\"wpstgFileNameExcludeRulePos[]\"]');\n const fileNames = this.excludeTableBody.querySelectorAll('input[name=\"wpstgFileNameExcludeRulePath[]\"]');\n for (const [key, fileInput] of Object.entries(fileNames)) {\n const fileName = this.cleanStringForGlob(fileInput.value);\n if (fileName !== '') {\n globExcludes.push('file:' + fileNamesPos[key].value + ' ' + fileName.trim());\n }\n }\n\n const dirNamesPos = this.excludeTableBody.querySelectorAll('select[name=\"wpstgDirNameExcludeRulePos[]\"]');\n const dirNames = this.excludeTableBody.querySelectorAll('input[name=\"wpstgDirNameExcludeRulePath[]\"]');\n for (const [key, dirInput] of Object.entries(dirNames)) {\n const dirName = this.cleanStringForGlob(dirInput.value);\n if (dirName !== '') {\n globExcludes.push('dir:' + dirNamesPos[key].value + ' ' + dirName.trim());\n }\n }\n\n return {\n 'sizes': sizeExcludes.filter(this.onlyUnique).join(','),\n // return set of unique rules\n 'globs': globExcludes.filter(this.onlyUnique).join(','),\n };\n }\n\n onlyUnique(value, index, self) {\n return self.indexOf(value) === index;\n }\n\n /**\n * Remove most of the comment glob characters from the string\n * @param {String} value\n * @return {String}\n */\n cleanStringForGlob(value) {\n // will replace character like * ^ / \\ ! ? [ from the string\n return value.replace(/[*^//!\\.[?]/g, '');\n }\n}\n","/**\n * Basic WP Staging Modal implemented with help of Sweetalerts\n */\nexport default class WpstgModal {\n constructor(\n confirmAction,\n wpstgObject = wpstg,\n ) {\n this.confirmAction = confirmAction;\n this.wpstgObject = wpstgObject;\n }\n\n show(swalOptions, additionalParams = {}, callback = null) {\n wpstgSwal.fire(swalOptions).then((result) => {\n if (result.value && this.error !== null) {\n this.triggerConfirmAction(additionalParams, callback);\n }\n });\n }\n\n triggerConfirmAction(additionalParams = {}, callback = null) {\n fetch(this.wpstgObject.ajaxUrl, {\n method: 'POST',\n credentials: 'same-origin',\n body: new URLSearchParams(Object.assign({\n action: this.confirmAction,\n accessToken: this.wpstgObject.accessToken,\n nonce: this.wpstgObject.nonce,\n }, additionalParams)),\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n },\n }).then((response) => {\n if (response.ok) {\n return response.json();\n }\n\n return Promise.reject(response);\n }).then((response) => {\n if (callback !== null) {\n callback(response);\n }\n }).catch((error) => {\n console.log(this.wpstgObject.i18n['somethingWentWrong'], error);\n });\n }\n}\n","'use strict';\n\n/**\n * This is a namespaced port of https://github.com/tristen/hoverintent,\n * with slight modification to accept selector with dynamically added element in dom,\n * instead of just already present element.\n *\n * @param {HTMLElement} parent\n * @param {string} selector\n * @param {CallableFunction} onOver\n * @param {CallableFunction} onOut\n *\n * @return {object}\n */\nexport default function(parent, selector, onOver, onOut) {\n let x; let y; let pX; let pY;\n let mouseOver = false;\n let focused = false;\n const h = {};\n let state = 0;\n let timer = 0;\n\n let options = {\n sensitivity: 7,\n interval: 100,\n timeout: 0,\n handleFocus: false,\n };\n\n function delay(el, e) {\n if (timer) {\n timer = clearTimeout(timer);\n }\n\n state = 0;\n return focused ? undefined : onOut(el, e);\n }\n\n function tracker(e) {\n x = e.clientX;\n y = e.clientY;\n }\n\n function compare(el, e) {\n if (timer) timer = clearTimeout(timer);\n if ((Math.abs(pX - x) + Math.abs(pY - y)) < options.sensitivity) {\n state = 1;\n return focused ? undefined : onOver(el, e);\n } else {\n pX = x;\n pY = y;\n timer = setTimeout(function() {\n compare(el, e);\n }, options.interval);\n }\n }\n\n // Public methods\n h.options = function(opt) {\n const focusOptionChanged = opt.handleFocus !== options.handleFocus;\n options = Object.assign({}, options, opt);\n if (focusOptionChanged) {\n options.handleFocus ? addFocus() : removeFocus();\n }\n\n return h;\n };\n\n function dispatchOver(el, e) {\n mouseOver = true;\n if (timer) {\n timer = clearTimeout(timer);\n }\n\n el.removeEventListener('mousemove', tracker, false);\n\n if (state !== 1) {\n pX = e.clientX;\n pY = e.clientY;\n\n el.addEventListener('mousemove', tracker, false);\n\n timer = setTimeout(function() {\n compare(el, e);\n }, options.interval);\n }\n\n return this;\n }\n\n /**\n * Newly added method,\n * A wrapper around dispatchOver to support dynamically added elements to dom\n */\n function onMouseOver(event) {\n if (event.target.matches(selector + ', ' + selector + ' *')) {\n dispatchOver(event.target.closest(selector), event);\n }\n };\n\n function dispatchOut(el, e) {\n mouseOver = false;\n if (timer) {\n timer = clearTimeout(timer);\n }\n\n el.removeEventListener('mousemove', tracker, false);\n\n if (state === 1) {\n timer = setTimeout(function() {\n delay(el, e);\n }, options.timeout);\n }\n\n return this;\n }\n\n /**\n * Newly added method,\n * A wrapper around dispatchOut to support dynamically added elements to dom\n */\n function onMouseOut(event) {\n if (event.target.matches(selector + ', ' + selector + ' *')) {\n dispatchOut(event.target.closest(selector), event);\n }\n };\n\n function dispatchFocus(el, e) {\n if (!mouseOver) {\n focused = true;\n onOver(el, e);\n }\n }\n\n /**\n * Newly added method,\n * A wrapper around dispatchFocus to support dynamically added elements to dom\n */\n function onFocus(event) {\n if (event.target.matches(selector + ', ' + selector + ' *')) {\n dispatchFocus(event.target.closest(selector), event);\n }\n };\n\n function dispatchBlur(el, e) {\n if (!mouseOver && focused) {\n focused = false;\n onOut(el, e);\n }\n }\n\n /**\n * Newly added method,\n * A wrapper around dispatchBlur to support dynamically added elements to dom\n */\n function onBlur(event) {\n if (event.target.matches(selector + ', ' + selector + ' *')) {\n dispatchBlur(event.target.closest(selector), event);\n }\n };\n\n /**\n * Modified to support dynamically added element\n */\n function addFocus() {\n parent.addEventListener('focus', onFocus, false);\n parent.addEventListener('blur', onBlur, false);\n }\n\n /**\n * Modified to support dynamically added element\n */\n function removeFocus() {\n parent.removeEventListener('focus', onFocus, false);\n parent.removeEventListener('blur', onBlur, false);\n }\n\n /**\n * Modified to support dynamically added element\n */\n h.remove = function() {\n if (!parent) {\n return;\n }\n\n parent.removeEventListener('mouseover', onMouseOver, false);\n parent.removeEventListener('mouseout', onMouseOut, false);\n removeFocus();\n };\n\n /**\n * Modified to support dynamically added element\n */\n if (parent) {\n parent.addEventListener('mouseover', onMouseOver, false);\n parent.addEventListener('mouseout', onMouseOut, false);\n }\n\n return h;\n};\n","import wpstgHoverIntent from './modules/wpstg-hover-intent';\n\nexport default (function($) {\n const WPStagingCommon = {\n continueErrorHandle: true,\n cache: {\n elements: [],\n get: function(selector) {\n // It is already cached!\n if ($.inArray(selector, this.elements) !== -1) {\n return this.elements[selector];\n }\n\n // Create cache and return\n this.elements[selector] = $(selector);\n\n return this.elements[selector];\n },\n refresh: function(selector) {\n selector.elements[selector] = $(selector);\n },\n },\n listenTooltip: function() {\n wpstgHoverIntent(document, '.wpstg--tooltip', function(target, event) {\n target.querySelector('.wpstg--tooltiptext').style.visibility = 'visible';\n }, function(target, event) {\n target.querySelector('.wpstg--tooltiptext').style.visibility = 'hidden';\n });\n },\n isEmpty: function(obj) {\n for (const prop in obj) {\n if (obj.hasOwnProperty(prop)) {\n return false;\n }\n }\n\n return true;\n },\n // Get the custom themed Swal Modal for WP Staging\n // Easy to maintain now in one place now\n getSwalModal: function(isContentCentered = false, customClasses = {}) {\n // common style for all swal modal used in WP Staging\n const defaultCustomClasses = {\n confirmButton: 'wpstg--btn--confirm wpstg-blue-primary wpstg-button wpstg-link-btn wpstg-100-width',\n cancelButton: 'wpstg--btn--cancel wpstg-blue-primary wpstg-link-btn wpstg-100-width',\n actions: 'wpstg--modal--actions',\n popup: isContentCentered ? 'wpstg-swal-popup centered-modal' : 'wpstg-swal-popup',\n };\n\n // If a attribute exists in both default and additional attributes,\n // The class(es) of the additional attribute will overrite the default one.\n const options = {\n customClass: Object.assign(defaultCustomClasses, customClasses),\n buttonsStyling: false,\n reverseButtons: true,\n showClass: {\n popup: 'wpstg--swal2-show wpstg-swal-show',\n },\n };\n\n return wpstgSwal.mixin(options);\n },\n showSuccessModal: function(htmlContent) {\n this.getSwalModal().fire({\n showConfirmButton: false,\n showCancelButton: true,\n cancelButtonText: 'OK',\n icon: 'success',\n title: 'Success!',\n html: '<div class=\"wpstg--grey\" style=\"text-align: left; margin-top: 8px;\">' + htmlContent + '</div>',\n });\n },\n showWarningModal: function(htmlContent) {\n this.getSwalModal().fire({\n showConfirmButton: false,\n showCancelButton: true,\n cancelButtonText: 'OK',\n icon: 'warning',\n title: '',\n html: '<div class=\"wpstg--grey\" style=\"text-align: left; margin-top: 8px;\">' + htmlContent + '</div>',\n });\n },\n showErrorModal: function(htmlContent) {\n this.getSwalModal().fire({\n showConfirmButton: false,\n showCancelButton: true,\n cancelButtonText: 'OK',\n icon: 'error',\n title: 'Error!',\n html: '<div class=\"wpstg--grey\" style=\"text-align: left; margin-top: 8px;\">' + htmlContent + '</div>',\n });\n },\n getSwalContainer: function() {\n return wpstgSwal.getContainer();\n },\n closeSwalModal: function() {\n wpstgSwal.close();\n },\n /**\n * Treats a default response object generated by WordPress's\n * wp_send_json_success() or wp_send_json_error() functions in\n * PHP, parses it in JavaScript, and either throws if it's an error,\n * or returns the data if the response is successful.\n *\n * @param {object} response\n * @return {*}\n */\n getDataFromWordPressResponse(response) {\n if (typeof response !== 'object') {\n throw new Error('Unexpected response (ERR 1341)');\n }\n\n if (!response.hasOwnProperty('success')) {\n throw new Error('Unexpected response (ERR 1342)');\n }\n\n if (!response.hasOwnProperty('data')) {\n throw new Error('Unexpected response (ERR 1343)');\n }\n\n if (response.success === false) {\n if (response.data instanceof Array && response.data.length > 0) {\n throw new Error(response.data.shift());\n } else {\n throw new Error('Response was not successful');\n }\n } else {\n // Successful response. Return the data.\n return response.data;\n }\n },\n isLoading: function(isLoading) {\n if (!isLoading || isLoading === false) {\n WPStagingCommon.cache.get('.wpstg-loader').hide();\n } else {\n WPStagingCommon.cache.get('.wpstg-loader').show();\n }\n },\n /**\n * Convert the given url to make it slug compatible\n * @param {string} url\n */\n slugify: function(url) {\n return url.toString()\n .toLowerCase()\n .normalize('NFD')\n .replace(/[\\u0300-\\u036f]/g, '')\n .replace(/\\s+/g, '-')\n .replace(/&/g, '-and-')\n .replace(/[^a-z0-9\\-]/g, '')\n .replace(/-+/g, '-')\n .replace(/^-*/, '')\n .replace(/-*$/, '')\n ;\n },\n showAjaxFatalError: function(response, prependMessage, appendMessage) {\n prependMessage = prependMessage ? prependMessage + '<br/><br/>' : 'Something went wrong! <br/><br/>';\n appendMessage = appendMessage ? appendMessage + '<br/><br/>' : '<br/><br/>Please try the <a href=\\'https://wp-staging.com/docs/wp-staging-settings-for-small-servers/\\' target=\\'_blank\\'>WP Staging Small Server Settings</a> or submit an error report and contact us.';\n\n if (response === false) {\n WPStagingCommon.showError(prependMessage + ' Error: No response.' + appendMessage);\n window.removeEventListener('beforeunload', WPStaging.warnIfClosingDuringProcess);\n return;\n }\n\n if (typeof response.error !== 'undefined' && response.error) {\n WPStagingCommon.showError(prependMessage + ' Error: ' + response.message + appendMessage);\n window.removeEventListener('beforeunload', WPStaging.warnIfClosingDuringProcess);\n return;\n }\n },\n handleFetchErrors: function(response) {\n if (!response.ok) {\n WPStagingCommon.showError('Error: ' + response.status + ' - ' + response.statusText + '. Please try again or contact support.');\n }\n return response;\n },\n showError: function(message) {\n WPStagingCommon.cache.get('#wpstg-try-again').css('display', 'inline-block');\n WPStagingCommon.cache.get('#wpstg-cancel-cloning').text('Reset');\n WPStagingCommon.cache.get('#wpstg-resume-cloning').show();\n WPStagingCommon.cache.get('#wpstg-error-wrapper').show();\n WPStagingCommon.cache.get('#wpstg-error-details').show().html(message);\n WPStagingCommon.cache.get('#wpstg-removing-clone').removeClass('loading');\n WPStagingCommon.cache.get('.wpstg-loader').hide();\n $('.wpstg--modal--process--generic-problem').show().html(message);\n },\n resetErrors: function() {\n WPStagingCommon.cache.get('#wpstg-error-details').hide().html('');\n },\n /**\n * Ajax Requests\n * @param {Object} data\n * @param {Function} callback\n * @param {string} dataType\n * @param {bool} showErrors\n * @param {int} tryCount\n * @param {float} incrementRatio\n * @param errorCallback\n */\n ajax: function(data, callback, dataType, showErrors, tryCount, incrementRatio = null, errorCallback = null) {\n if ('undefined' === typeof (dataType)) {\n dataType = 'json';\n }\n\n if (false !== showErrors) {\n showErrors = true;\n }\n\n tryCount = 'undefined' === typeof (tryCount) ? 0 : tryCount;\n\n const retryLimit = 10;\n\n let retryTimeout = 10000 * tryCount;\n\n incrementRatio = parseInt(incrementRatio);\n if (!isNaN(incrementRatio)) {\n retryTimeout *= incrementRatio;\n }\n\n $.ajax({\n url: ajaxurl + '?action=wpstg_processing&_=' + (Date.now() / 1000),\n type: 'POST',\n dataType: dataType,\n cache: false,\n data: data,\n error: function(xhr, textStatus, errorThrown) {\n console.log(xhr.status + ' ' + xhr.statusText + '---' + textStatus);\n\n if (typeof (errorCallback) === 'function') {\n // Custom error handler\n errorCallback(xhr, textStatus, errorThrown);\n\n if (!WPStagingCommon.continueErrorHandle) {\n // Reset state\n WPStagingCommon.continueErrorHandle = true;\n\n return;\n }\n }\n\n // Default error handler\n tryCount++;\n if (tryCount <= retryLimit) {\n setTimeout(function() {\n WPStagingCommon.ajax(data, callback, dataType, showErrors, tryCount, incrementRatio);\n return;\n }, retryTimeout);\n } else {\n const errorCode = 'undefined' === typeof (xhr.status) ? 'Unknown' : xhr.status;\n WPStagingCommon.showError(\n 'Fatal Error: ' + errorCode + ' Please try the <a href=\\'https://wp-staging.com/docs/wp-staging-settings-for-small-servers/\\' target=\\'_blank\\'>WP Staging Small Server Settings</a> or submit an error report and contact us.',\n );\n }\n },\n success: function(data) {\n if ('function' === typeof (callback)) {\n callback(data);\n }\n },\n statusCode: {\n 404: function() {\n if (tryCount >= retryLimit) {\n WPStagingCommon.showError('Error 404 - Can\\'t find ajax request URL! Please try the <a href=\\'https://wp-staging.com/docs/wp-staging-settings-for-small-servers/\\' target=\\'_blank\\'>WP Staging Small Server Settings</a> or submit an error report and contact us.');\n }\n },\n 500: function() {\n if (tryCount >= retryLimit) {\n WPStagingCommon.showError('Fatal Error 500 - Internal server error while processing the request! Please try the <a href=\\'https://wp-staging.com/docs/wp-staging-settings-for-small-servers/\\' target=\\'_blank\\'>WP Staging Small Server Settings</a> or submit an error report and contact us.');\n }\n },\n 504: function() {\n if (tryCount > retryLimit) {\n WPStagingCommon.showError('Error 504 - It looks like your server is rate limiting ajax requests. Please try to resume after a minute. If this still not works try the <a href=\\'https://wp-staging.com/docs/wp-staging-settings-for-small-servers/\\' target=\\'_blank\\'>WP Staging Small Server Settings</a> or submit an error report and contact us.\\n\\ ');\n }\n },\n 502: function() {\n if (tryCount >= retryLimit) {\n WPStagingCommon.showError('Error 502 - It looks like your server is rate limiting ajax requests. Please try to resume after a minute. If this still not works try the <a href=\\'https://wp-staging.com/docs/wp-staging-settings-for-small-servers/\\' target=\\'_blank\\'>WP Staging Small Server Settings</a> or submit an error report and contact us.\\n\\ ');\n }\n },\n 503: function() {\n if (tryCount >= retryLimit) {\n WPStagingCommon.showError('Error 503 - It looks like your server is rate limiting ajax requests. Please try to resume after a minute. If this still not works try the <a href=\\'https://wp-staging.com/docs/wp-staging-settings-for-small-servers/\\' target=\\'_blank\\'>WP Staging Small Server Settings</a> or submit an error report and contact us.\\n\\ ');\n }\n },\n 429: function() {\n if (tryCount >= retryLimit) {\n WPStagingCommon.showError('Error 429 - It looks like your server is rate limiting ajax requests. Please try to resume after a minute. If this still not works try the <a href=\\'https://wp-staging.com/docs/wp-staging-settings-for-small-servers/\\' target=\\'_blank\\'>WP Staging Small Server Settings</a> or submit an error report and contact us.\\n\\ ');\n }\n },\n 403: function() {\n if (tryCount >= retryLimit) {\n WPStagingCommon.showError('Refresh page or login again! The process should be finished successfully. \\n\\ ');\n }\n },\n },\n });\n },\n };\n\n return WPStagingCommon;\n})(jQuery);\n","\nimport * as dom from './wpstg-dom-utils.js';\nimport WpstgDirectoryNavigation from './wpstg-directory-navigation.js';\nimport WpstgExcludeFilters from './wpstg-exclude-filters.js';\nimport WpstgModal from './wpstg-modal.js';\nimport WPStagingCommon from './../wpstg.js';\n\n/**\n * Manage RESET MODAL\n */\nexport default class WpstgResetModal {\n constructor(\n cloneID,\n workflowSelector = '#wpstg-workflow',\n fetchExcludeSettingsAction = 'wpstg_clone_excludes_settings',\n modalErrorAction = 'wpstg_modal_error',\n wpstgObject = wpstg,\n ) {\n this.cloneID = cloneID;\n this.workflow = dom.qs(workflowSelector);\n this.wpstgObject = wpstgObject;\n this.fetchExcludeSettingsAction = fetchExcludeSettingsAction;\n this.modalErrorAction = modalErrorAction;\n this.resetButtonClass = 'wpstg-confirm-reset-clone';\n this.resetModalContainerClass = 'wpstg-reset-confirmation';\n this.resetTabSelector = '.wpstg-reset-exclude-tab';\n this.directoryNavigator = null;\n this.excludeFilters = null;\n this.isAllTablesChecked = true;\n }\n\n addEvents() {\n const resetModalContainer = dom.qs('.' + this.resetModalContainerClass);\n if (resetModalContainer === null) {\n console.log('Exit');\n return;\n }\n\n dom.addEvent(resetModalContainer, 'click', this.resetTabSelector, (target) => {\n this.toggleContent(target);\n });\n\n dom.addEvent(resetModalContainer, 'click', '.wpstg-button-select', () => {\n this.selectDefaultTables();\n });\n\n dom.addEvent(resetModalContainer, 'click', '.wpstg-button-unselect', () => {\n this.toggleTableSelection();\n });\n\n dom.addEvent(resetModalContainer, 'click', '.wpstg-expand-dirs', (target, event) => {\n event.preventDefault();\n this.toggleDirectoryNavigation(target);\n });\n\n dom.addEvent(resetModalContainer, 'change', 'input.wpstg-check-dir', (target) => {\n this.updateDirectorySelection(target);\n });\n }\n\n init() {\n this.addEvents();\n }\n\n toggleContent(target) {\n const resetModalContainer = dom.qs('.' + this.resetModalContainerClass);\n const contentId = target.getAttribute('data-id');\n const tabTriangle = target.querySelector('.wpstg-tab-triangle');\n const isCollapsed = target.getAttribute('data-collapsed', 'true');\n const content = dom.qs(contentId);\n if (isCollapsed === 'true') {\n if (resetModalContainer.classList.contains('has-collapsible-open')) {\n resetModalContainer.classList.add('has-collapsible-open-2');\n } else {\n resetModalContainer.classList.add('has-collapsible-open');\n }\n\n dom.slideDown(content);\n tabTriangle.style.transform = 'rotate(90deg)';\n target.setAttribute('data-collapsed', 'false');\n } else {\n if (resetModalContainer.classList.contains('has-collapsible-open-2')) {\n resetModalContainer.classList.remove('has-collapsible-open-2');\n } else {\n resetModalContainer.classList.remove('has-collapsible-open');\n }\n\n dom.slideUp(content);\n tabTriangle.style.removeProperty('transform');\n target.setAttribute('data-collapsed', 'true');\n }\n }\n\n /**\n * Show Swal alert with loader and send ajax request to fetch content of alert.\n * @return Promise\n */\n showModal() {\n const swalPromise = this.loadModal();\n this.init();\n this.fetchCloneExcludes();\n return swalPromise;\n }\n\n loadModal() {\n return WPStagingCommon.getSwalModal(false, {\n confirmButton: this.resetButtonClass + ' wpstg-confirm-reset-clone wpstg--btn--confirm wpstg-blue-primary wpstg-button wpstg-link-btn',\n container: this.resetModalContainerClass + ' wpstg-swal2-container wpstg-swal2-loading',\n }).fire({\n title: '',\n icon: 'warning',\n html: this.getAjaxLoader(),\n width: '400px',\n focusConfirm: false,\n confirmButtonText: this.wpstgObject.i18n.resetClone,\n showCancelButton: true,\n });\n }\n\n fetchCloneExcludes() {\n this.error = null;\n // send ajax request and fetch preserved exclude settings\n fetch(this.wpstgObject.ajaxUrl, {\n method: 'POST',\n credentials: 'same-origin',\n body: new URLSearchParams({\n action: this.fetchExcludeSettingsAction,\n accessToken: this.wpstgObject.accessToken,\n nonce: this.wpstgObject.nonce,\n clone: this.cloneID,\n job: 'resetting',\n }),\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n },\n }).then((response) => {\n if (response.ok) {\n return response.json();\n }\n\n return Promise.reject(response);\n }).then((data) => {\n if (!data.success) {\n const errorModal = new WpstgModal(this.modalErrorAction, this.wpstgObject);\n errorModal.show(Object.assign({\n title: 'Error',\n icon: 'error',\n html: this.wpstgObject.i18n['somethingWentWrong'],\n width: '500px',\n confirmButtonText: 'Ok',\n showCancelButton: false,\n customClass: {\n confirmButton: 'wpstg--btn--confirm wpstg-blue-primary wpstg-button wpstg-link-btn',\n cancelButton: 'wpstg--btn--cancel wpstg-blue-primary wpstg-link-btn',\n actions: 'wpstg--modal--actions',\n popup: 'wpstg-swal-popup centered-modal',\n },\n buttonsStyling: false,\n reverseButtons: true,\n }, data.swalOptions), {\n type: data.type,\n });\n\n return;\n }\n\n const modal = dom.qs('.wpstg-reset-confirmation');\n modal.classList.remove('wpstg-swal2-loading');\n modal.querySelector('.wpstg--swal2-popup').style.width = '500px';\n modal.querySelector('.wpstg--swal2-content').innerHTML = data.html;\n this.directoryNavigator = new WpstgDirectoryNavigation();\n this.excludeFilters = new WpstgExcludeFilters();\n }).catch((error) => {\n this.renderError({\n 'html': this.wpstgObject.i18n['somethingWentWrong'] + ' ' + error,\n });\n });\n }\n\n getDirectoryNavigator() {\n return this.directoryNavigator;\n }\n\n getExcludeFilters() {\n return this.excludeFilters;\n }\n\n getAjaxLoader() {\n return '<div class=\"wpstg-swal2-ajax-loader\"><img src=\"' + this.wpstgObject.wpstgIcon + '\" /></div>';\n }\n\n toggleDirectoryNavigation(element) {\n const cbElement = element.previousSibling;\n if (cbElement.getAttribute('data-navigateable', 'false') === 'false') {\n return;\n }\n\n if (cbElement.getAttribute('data-scanned', 'false') === 'false') {\n return;\n }\n\n const subDirectories = dom.getNextSibling(element, '.wpstg-subdir');\n\n if (subDirectories.style.display === 'none') {\n dom.slideDown(subDirectories);\n } else {\n dom.slideUp(subDirectories);\n }\n }\n\n updateDirectorySelection(element) {\n const parent = element.parentElement;\n if (element.checked) {\n dom.getParents(parent, '.wpstg-dir').forEach((parElem) => {\n for (let i = 0; i < parElem.children.length; i++) {\n if (parElem.children[i].matches('.wpstg-check-dir')) {\n parElem.children[i].checked = true;\n }\n }\n });\n parent.querySelectorAll('.wpstg-expand-dirs').forEach((x) => {\n x.classList.remove('disabled');\n });\n parent.querySelectorAll('.wpstg-subdir .wpstg-check-dir').forEach((x) => {\n x.checked = true;\n });\n } else {\n parent.querySelectorAll('.wpstg-expand-dirs, .wpstg-check-subdirs').forEach((x) => {\n x.classList.add('disabled');\n });\n parent.querySelectorAll('.wpstg-dir .wpstg-check-dir').forEach((x) => {\n x.checked = false;\n });\n }\n }\n\n selectDefaultTables() {\n const resetModalContainer = dom.qs('.' + this.resetModalContainerClass);\n const options = resetModalContainer.querySelectorAll('#wpstg_select_tables_cloning .wpstg-db-table');\n const multisitePattern = '^' + this.wpstgObject.tblprefix + '([^0-9])_*';\n const singleSitePattern = '^' + this.wpstgObject.tblprefix;\n options.forEach((option) => {\n const name = option.getAttribute('name', '');\n if (this.wpstgObject.isMultisite === '1' && name.match(multisitePattern)) {\n option.setAttribute('selected', 'selected');\n } else if (this.wpstgObject.isMultisite === '' && name.match(singleSitePattern)) {\n option.setAttribute('selected', 'selected');\n } else {\n option.removeAttribute('selected');\n }\n });\n }\n\n toggleTableSelection() {\n const resetModalContainer = dom.qs('.' + this.resetModalContainerClass);\n if (false === this.isAllTablesChecked) {\n resetModalContainer.querySelectorAll('#wpstg_select_tables_cloning .wpstg-db-table').forEach((option) => {\n option.setAttribute('selected', 'selected');\n });\n resetModalContainer.querySelector('.wpstg-button-unselect').innerHTML = 'Unselect All';\n // cache.get('.wpstg-db-table-checkboxes').prop('checked', true);\n this.isAllTablesChecked = true;\n } else {\n resetModalContainer.querySelectorAll('#wpstg_select_tables_cloning .wpstg-db-table').forEach((option) => {\n option.removeAttribute('selected');\n });\n resetModalContainer.querySelector('.wpstg-button-unselect').innerHTML = 'Select All';\n // cache.get('.wpstg-db-table-checkboxes').prop('checked', false);\n this.isAllTablesChecked = false;\n }\n }\n}\n","import * as dom from './wpstg-dom-utils.js';\n\n/**\n * Handle toggle of advance settings checkboxes\n */\nexport default class WpstgCloningAdvanceSettings {\n constructor(\n baseContainerSelector = '#wpstg-clonepage-wrapper',\n ) {\n this.baseContainer = dom.qs(baseContainerSelector);\n this.checkBoxSettingTogglerSelector = '.wpstg-toggle-advance-settings-section';\n this.init();\n }\n\n /**\n * Add events\n * @return {void}\n */\n addEvents() {\n if (this.baseContainer === null) {\n return;\n }\n\n dom.addEvent(this.baseContainer, 'change', this.checkBoxSettingTogglerSelector, (element) => {\n this.toggleSettings(element);\n });\n }\n\n /**\n * @return {void}\n */\n init() {\n this.addEvents();\n }\n\n /**\n * Expand/Collapse checkbox content on change\n * @return {void}\n */\n toggleSettings(element) {\n const target = dom.qs('#' + element.getAttribute('data-id'));\n if (element.checked) {\n dom.slideDown(target);\n } else {\n dom.slideUp(target);\n }\n }\n}\n","import * as dom from './wpstg-dom-utils.js';\n\nexport default class WpstgMainMenu {\n constructor() {\n this.activeTabClass = 'wpstg--tab--active';\n this.mainMenu();\n }\n\n mainMenu() {\n const tabHeader = dom.qs('.wpstg--tab--header');\n // Early bail if tab header is not available\n if (tabHeader === null) {\n return;\n }\n\n dom.addEvent(dom.qs('.wpstg--tab--header'), 'click', '.wpstg-button', (element) => {\n const $this = element;\n const target = $this.getAttribute('data-target');\n const targetElements = dom.all(target);\n const menuItems = dom.all('.wpstg--tab--header a[data-target]');\n const contents = dom.all('.wpstg--tab--contents > .wpstg--tab--content');\n\n contents.forEach((content) => {\n // active tab class is without the css dot class prefix\n if (content.matches('.' + this.activeTabClass + ':not(' + target + ')')) {\n content.classList.remove(this.activeTabClass);\n }\n });\n\n menuItems.forEach((menuItem) => {\n if (menuItem !== $this) {\n menuItem.classList.remove(this.activeTabClass);\n }\n });\n\n $this.classList.add(this.activeTabClass);\n\n targetElements.forEach((targetElement) => {\n targetElement.classList.add(this.activeTabClass);\n });\n\n if ('#wpstg--tab--backup' === target) {\n window.dispatchEvent(new Event('backups-tab'));\n }\n });\n };\n}\n","import WpstgCloneStaging from './modules/wpstg-clone-staging.js';\nimport WpstgDirectoryNavigation from './modules/wpstg-directory-navigation.js';\nimport WpstgExcludeFilters from './modules/wpstg-exclude-filters.js';\nimport WpstgResetModal from './modules/wpstg-reset-modal.js';\nimport WpstgModal from './modules/wpstg-modal.js';\nimport WpstgCloningAdvanceSettings from './modules/wpstg-cloning-advance-settings.js';\nimport WpstgMainMenu from './modules/wpstg-main-menu.js';\nimport WPStagingCommon from './wpstg.js';\n\nvar WPStaging = (function($) {\n const that = {\n isCancelled: false,\n isFinished: false,\n getLogs: false,\n time: 1,\n executionTime: false,\n progressBar: 0,\n cloneExcludeFilters: null,\n directoryNavigator: null,\n notyf: null,\n };\n const cache = {elements: []};\n let timeout; let ajaxSpinner;\n\n /**\n * Get / Set Cache for Selector\n * @param {String} selector\n * @return {*}\n */\n cache.get = function(selector) {\n // It is already cached!\n if ($.inArray(selector, cache.elements) !== -1) {\n return cache.elements[selector];\n }\n\n // Create cache and return\n cache.elements[selector] = jQuery(selector);\n\n return cache.elements[selector];\n };\n\n /**\n * Refreshes given cache\n * @param {String} selector\n */\n cache.refresh = function(selector) {\n selector.elements[selector] = jQuery(selector);\n };\n\n /**\n * Show and Log Error Message\n * @param {String} message\n */\n const showError = function(message) {\n cache.get('#wpstg-try-again').css('display', 'inline-block');\n cache.get('#wpstg-cancel-cloning').text('Reset');\n cache.get('#wpstg-resume-cloning').show();\n cache.get('#wpstg-error-wrapper').show();\n cache.get('#wpstg-error-details').show().html(message);\n cache.get('#wpstg-removing-clone').removeClass('loading');\n cache.get('.wpstg-loader').hide();\n $('.wpstg--modal--process--generic-problem').show().html(message);\n };\n\n /**\n * Show warning during cloning or push process when closing tab or browser, or changing page\n * @param {beforeunload} event\n * @return {null}\n */\n that.warnIfClosingDuringProcess = function(event) {\n // Only some browsers show the message below, most say something like \"Changes you made may not be saved\" (Chrome) or \"You have unsaved changes. Exit?\"\n event.returnValue = 'You MUST leave this window open while cloning/pushing. Please wait...';\n return null;\n };\n\n /**\n *\n * @param response the error object\n * @param prependMessage Overwrite default error message at beginning\n * @param appendMessage Overwrite default error message at end\n * @returns void\n */\n\n const showAjaxFatalError = function(response, prependMessage, appendMessage) {\n prependMessage = prependMessage ? prependMessage + '<br/><br/>' : 'Something went wrong! <br/><br/>';\n appendMessage = appendMessage ? appendMessage + '<br/><br/>' : '<br/><br/>Please try the <a href=\\'https://wp-staging.com/docs/wp-staging-settings-for-small-servers/\\' target=\\'_blank\\'>WP Staging Small Server Settings</a> or submit an error report and contact us.';\n\n if (response === false) {\n showError(prependMessage + ' Error: No response.' + appendMessage);\n window.removeEventListener('beforeunload', WPStaging.warnIfClosingDuringProcess);\n return;\n }\n\n if (typeof response.error !== 'undefined' && response.error) {\n console.error(response.message);\n showError(prependMessage + ' Error: ' + response.message + appendMessage);\n window.removeEventListener('beforeunload', WPStaging.warnIfClosingDuringProcess);\n return;\n }\n };\n\n /**\n *\n * @param response\n * @return {{ok}|*}\n */\n const handleFetchErrors = function(response) {\n if (!response.ok) {\n showError('Error: ' + response.status + ' - ' + response.statusText + '. Please try again or contact support.');\n }\n return response;\n };\n\n /** Hide and reset previous thrown visible errors */\n const resetErrors = function() {\n cache.get('#wpstg-error-details').hide().html('');\n };\n\n /**\n * Common Elements\n */\n const elements = function() {\n const $workFlow = cache.get('#wpstg-workflow');\n let isAllChecked = true;\n let urlSpinner = ajaxurl.replace('/admin-ajax.php', '') + '/images/spinner';\n let timer;\n\n if (2 < window.devicePixelRatio) {\n urlSpinner += '-2x';\n }\n\n urlSpinner += '.gif';\n\n ajaxSpinner = '<img src=\\'\\'' + urlSpinner + '\\' alt=\\'\\' class=\\'ajax-spinner general-spinner\\' />';\n\n const getBaseValues = function() {\n const path = $('#wpstg-use-target-dir').data('base-path');\n const uri = $('#wpstg-use-target-hostname').data('base-uri');\n return {\n path,\n };\n };\n\n $workFlow\n // Check / Un-check All Database Tables New\n .on('click', '.wpstg-button-unselect', function(e) {\n e.preventDefault();\n\n if (false === isAllChecked) {\n cache.get('#wpstg_select_tables_cloning .wpstg-db-table').prop('selected', 'selected');\n cache.get('.wpstg-button-unselect').text('Unselect All');\n cache.get('.wpstg-db-table-checkboxes').prop('checked', true);\n isAllChecked = true;\n } else {\n cache.get('#wpstg_select_tables_cloning .wpstg-db-table').prop('selected', false);\n cache.get('.wpstg-button-unselect').text('Select All');\n cache.get('.wpstg-db-table-checkboxes').prop('checked', false);\n isAllChecked = false;\n }\n })\n\n /**\n * Select tables with certain tbl prefix | NEW\n * @param obj e\n * @returns {undefined}\n */\n .on('click', '.wpstg-button-select', function(e) {\n e.preventDefault();\n $('#wpstg_select_tables_cloning .wpstg-db-table').each(function() {\n if (wpstg.isMultisite == 1) {\n if ($(this).attr('name').match('^' + wpstg.tblprefix + '([^0-9])_*')) {\n $(this).prop('selected', 'selected');\n } else {\n $(this).prop('selected', false);\n }\n }\n\n if (wpstg.isMultisite == 0) {\n if ($(this).attr('name').match('^' + wpstg.tblprefix)) {\n $(this).prop('selected', 'selected');\n } else {\n $(this).prop('selected', false);\n }\n }\n });\n })\n // Expand Directories\n .on('click', '.wpstg-expand-dirs', function(e) {\n e.preventDefault();\n\n const $this = $(this);\n\n $this.siblings('.wpstg-subdir').slideToggle();\n })\n // When a directory checkbox is Selected\n .on('change', 'input.wpstg-check-dir', function() {\n const $directory = $(this).parent('.wpstg-dir');\n\n if (this.checked) {\n $directory.parents('.wpstg-dir').children('.wpstg-check-dir').prop('checked', true);\n $directory.find('.wpstg-expand-dirs').removeClass('disabled');\n $directory.find('.wpstg-subdir .wpstg-check-dir').prop('checked', true);\n } else {\n $directory.find('.wpstg-dir .wpstg-check-dir').prop('checked', false);\n $directory.find('.wpstg-expand-dirs, .wpstg-check-subdirs').addClass('disabled');\n $directory.find('.wpstg-check-subdirs').data('action', 'check').text('check');\n }\n })\n // When a directory name is Selected\n .on('change', 'href.wpstg-check-dir', function() {\n const $directory = $(this).parent('.wpstg-dir');\n\n if (this.checked) {\n $directory.parents('.wpstg-dir').children('.wpstg-check-dir').prop('checked', true);\n $directory.find('.wpstg-expand-dirs').removeClass('disabled');\n $directory.find('.wpstg-subdir .wpstg-check-dir').prop('checked', true);\n } else {\n $directory.find('.wpstg-dir .wpstg-check-dir').prop('checked', false);\n $directory.find('.wpstg-expand-dirs, .wpstg-check-subdirs').addClass('disabled');\n $directory.find('.wpstg-check-subdirs').data('action', 'check').text('check');\n }\n })\n // Check the max length of the clone name and if the clone name already exists\n .on('keyup', '#wpstg-new-clone-id', function() {\n // Hide previous errors\n document.getElementById('wpstg-error-details').style.display = 'none';\n\n // This request was already sent, clear it up!\n if ('number' === typeof (timer)) {\n clearInterval(timer);\n }\n\n // Early bail if site name is empty\n if (this.value === undefined || this.value === '') {\n cache.get('#wpstg-new-clone-id').removeClass('wpstg-error-input');\n cache.get('#wpstg-start-cloning').removeAttr('disabled');\n cache.get('#wpstg-clone-id-error').text('').hide();\n return;\n }\n\n // Convert the site name to directory name (slugify the site name to create directory name)\n const cloneDirectoryName = WPStagingCommon.slugify(this.value);\n\n timer = setTimeout(\n function() {\n ajax(\n {\n action: 'wpstg_check_clone',\n accessToken: wpstg.accessToken,\n nonce: wpstg.nonce,\n directoryName: cloneDirectoryName,\n },\n function(response) {\n if (response.status === 'success') {\n cache.get('#wpstg-new-clone-id').removeClass('wpstg-error-input');\n cache.get('#wpstg-start-cloning').removeAttr('disabled');\n cache.get('#wpstg-clone-id-error').text('').hide();\n } else {\n cache.get('#wpstg-new-clone-id').addClass('wpstg-error-input');\n cache.get('#wpstg-start-cloning').prop('disabled', true);\n cache.get('#wpstg-clone-id-error').text(response.message).show();\n }\n },\n );\n },\n 500,\n );\n })\n // Restart cloning process\n .on('click', '#wpstg-start-cloning', function() {\n resetErrors();\n that.isCancelled = false;\n that.getLogs = false;\n that.progressBar = 0;\n })\n .on('input', '#wpstg-new-clone-id', function() {\n if ($('#wpstg-clone-directory').length < 1) {\n return;\n }\n\n const slug = WPStagingCommon.slugify(this.value);\n const $targetDir = $('#wpstg-use-target-dir');\n const $targetUri = $('#wpstg-use-target-hostname');\n let path = $targetDir.data('base-path');\n let uri = $targetUri.data('base-uri');\n\n if (path) {\n path = path.replace(/\\/+$/g, '') + '/' + slug + '/';\n }\n\n if (uri) {\n uri = uri.replace(/\\/+$/g, '') + '/' + slug;\n }\n\n\n $('.wpstg-use-target-dir--value').text(path);\n $('.wpstg-use-target-hostname--value').text(uri);\n\n $targetDir.attr('data-path', path);\n $targetUri.attr('data-uri', uri);\n $('#wpstg_clone_dir').attr('placeholder', path);\n $('#wpstg_clone_hostname').attr('placeholder', uri);\n })\n .on('input', '#wpstg_clone_hostname', function() {\n if ($(this).val() === '' || validateTargetHost()) {\n $('#wpstg_clone_hostname_error').remove();\n return;\n }\n if (!validateTargetHost() && !$('#wpstg_clone_hostname_error').length) {\n $('#wpstg-clone-directory tr:last-of-type').after('<tr><td>&nbsp;</td><td><p id=\"wpstg_clone_hostname_error\" style=\"color: red;\">&nbsp;Invalid host name. Please provide it in a format like http://example.com</p></td></tr>');\n }\n })\n ;\n\n cloneActions();\n };\n\n /* @returns {boolean} */\n var validateTargetHost = function() {\n const the_domain = $('#wpstg_clone_hostname').val();\n\n if (the_domain === '') {\n return true;\n }\n\n const reg = /^http(s)?:\\/\\/.*$/;\n if (reg.test(the_domain) === false) {\n return false;\n }\n return true;\n };\n\n /**\n * Clone actions\n */\n var cloneActions = function() {\n const $workFlow = cache.get('#wpstg-workflow');\n\n $workFlow\n // Cancel cloning\n .on('click', '#wpstg-cancel-cloning', function() {\n if (!confirm('Are you sure you want to cancel cloning process?')) {\n return false;\n }\n\n const $this = $(this);\n\n $('#wpstg-try-again, #wpstg-home-link').hide();\n $this.prop('disabled', true);\n\n that.isCancelled = true;\n that.progressBar = 0;\n\n $('#wpstg-processing-status').text('Please wait...this can take up a while.');\n $('.wpstg-loader, #wpstg-show-log-button').hide();\n\n $this.parent().append(ajaxSpinner);\n\n cancelCloning();\n })\n // Resume cloning\n .on('click', '#wpstg-resume-cloning', function() {\n resetErrors();\n const $this = $(this);\n\n $('#wpstg-try-again, #wpstg-home-link').hide();\n\n that.isCancelled = false;\n\n $('#wpstg-processing-status').text('Try to resume cloning process...');\n $('#wpstg-error-details').hide();\n $('.wpstg-loader').show();\n\n $this.parent().append(ajaxSpinner);\n\n that.startCloning();\n })\n // Cancel update cloning\n .on('click', '#wpstg-cancel-cloning-update', function() {\n resetErrors();\n\n const $this = $(this);\n\n $('#wpstg-try-again, #wpstg-home-link').hide();\n $this.prop('disabled', true);\n\n that.isCancelled = true;\n\n $('#wpstg-cloning-result').text('Please wait...this can take up a while.');\n $('.wpstg-loader, #wpstg-show-log-button').hide();\n\n $this.parent().append(ajaxSpinner);\n\n cancelCloningUpdate();\n })\n // Restart cloning\n .on('click', '#wpstg-restart-cloning', function() {\n resetErrors();\n\n const $this = $(this);\n\n $('#wpstg-try-again, #wpstg-home-link').hide();\n $this.prop('disabled', true);\n\n that.isCancelled = true;\n\n $('#wpstg-cloning-result').text('Please wait...this can take up a while.');\n $('.wpstg-loader, #wpstg-show-log-button').hide();\n\n $this.parent().append(ajaxSpinner);\n\n restart();\n })\n // Delete clone - confirmation\n .on('click', '.wpstg-remove-clone[data-clone]', function(e) {\n resetErrors();\n e.preventDefault();\n\n const $existingClones = cache.get('#wpstg-existing-clones');\n\n $workFlow.removeClass('active');\n\n cache.get('.wpstg-loader').show();\n\n ajax(\n {\n action: 'wpstg_confirm_delete_clone',\n accessToken: wpstg.accessToken,\n nonce: wpstg.nonce,\n clone: $(this).data('clone'),\n },\n function(response) {\n cache.get('#wpstg-removing-clone').html(response);\n\n $existingClones.children('img').remove();\n\n cache.get('.wpstg-loader').hide();\n\n $('html, body').animate({\n // This logic is meant to be a \"scrollBottom\"\n scrollTop: $('#wpstg-remove-clone').offset().top - $(window).height() +\n $('#wpstg-remove-clone').height() + 50,\n }, 100);\n },\n 'HTML',\n );\n })\n // Delete clone - confirmed\n .on('click', '#wpstg-remove-clone', function(e) {\n resetErrors();\n e.preventDefault();\n\n cache.get('#wpstg-removing-clone').addClass('loading');\n\n cache.get('.wpstg-loader').show();\n\n deleteClone($(this).data('clone'));\n })\n // Cancel deleting clone\n .on('click', '#wpstg-cancel-removing', function(e) {\n e.preventDefault();\n $('.wpstg-clone').removeClass('active');\n cache.get('#wpstg-removing-clone').html('');\n })\n // Update\n .on('click', '.wpstg-execute-clone', function(e) {\n e.preventDefault();\n\n const clone = $(this).data('clone');\n\n $workFlow.addClass('loading');\n that.cloneExcludeFilters = null;\n ajax(\n {\n action: 'wpstg_scanning',\n clone: clone,\n accessToken: wpstg.accessToken,\n nonce: wpstg.nonce,\n },\n function(response) {\n if (response.length < 1) {\n showError(\n 'Something went wrong! Error: No response. Please try the <a href=\\'https://wp-staging.com/docs/wp-staging-settings-for-small-servers/\\' target=\\'_blank\\'>WP Staging Small Server Settings</a> or submit an error report and contact us.',\n );\n }\n\n const jsonResponse = tryParseJson(response);\n if (jsonResponse !== false && jsonResponse.success === false) {\n $workFlow.removeClass('loading');\n showErrorModal(jsonResponse);\n\n return;\n }\n\n $workFlow.removeClass('loading').html(response);\n // register check disk space function for clone update process.\n checkDiskSpace();\n that.directoryNavigator = new WpstgDirectoryNavigation('#wpstg-directories-listing', wpstg, that.notyf);\n that.cloneExcludeFilters = new WpstgExcludeFilters();\n that.switchStep(2);\n },\n 'HTML',\n );\n })\n // Reset Clone\n .on('click', '.wpstg-reset-clone', function(e) {\n e.preventDefault();\n const clone = $(this).data('clone');\n const resetModal = new WpstgResetModal(clone);\n const promise = resetModal.showModal();\n\n promise.then((result) => {\n if (result.value) {\n const dirNavigator = resetModal.getDirectoryNavigator();\n const exclFilters = resetModal.getExcludeFilters().getExcludeFilters();\n resetClone(clone, {\n includedTables: getIncludedTables(),\n excludeSizeRules: encodeURIComponent(exclFilters.sizes),\n excludeGlobRules: encodeURIComponent(exclFilters.globs),\n excludedDirectories: dirNavigator.getExcludedDirectories(),\n extraDirectories: dirNavigator.getExtraDirectoriesRootOnly(),\n });\n }\n });\n\n return;\n });\n };\n\n /**\n * Ajax Requests\n * @param Object data\n * @param Function callback\n * @param string dataType\n * @param bool showErrors\n * @param int tryCount\n * @param float incrementRatio\n */\n var ajax = function(data, callback, dataType, showErrors, tryCount, incrementRatio = null) {\n if ('undefined' === typeof (dataType)) {\n dataType = 'json';\n }\n\n if (false !== showErrors) {\n showErrors = true;\n }\n\n tryCount = 'undefined' === typeof (tryCount) ? 0 : tryCount;\n\n const retryLimit = 10;\n\n let retryTimeout = 10000 * tryCount;\n\n incrementRatio = parseInt(incrementRatio);\n if (!isNaN(incrementRatio)) {\n retryTimeout *= incrementRatio;\n }\n\n $.ajax({\n url: ajaxurl + '?action=wpstg_processing&_=' + (Date.now() / 1000),\n type: 'POST',\n dataType: dataType,\n cache: false,\n data: data,\n error: function(xhr, textStatus, errorThrown) {\n // try again after 10 seconds\n tryCount++;\n if (tryCount <= retryLimit) {\n setTimeout(function() {\n ajax(data, callback, dataType, showErrors, tryCount, incrementRatio);\n return;\n }, retryTimeout);\n } else {\n const errorCode = 'undefined' === typeof (xhr.status) ? 'Unknown' : xhr.status;\n showError(\n 'Fatal Error: ' + errorCode + ' Please try the <a href=\\'https://wp-staging.com/docs/wp-staging-settings-for-small-servers/\\' target=\\'_blank\\'>WP Staging Small Server Settings</a> or submit an error report and contact us.',\n );\n }\n },\n success: function(data) {\n if ('function' === typeof (callback)) {\n callback(data);\n }\n },\n statusCode: {\n 404: function() {\n if (tryCount >= retryLimit) {\n showError('Error 404 - Can\\'t find ajax request URL! Please try the <a href=\\'https://wp-staging.com/docs/wp-staging-settings-for-small-servers/\\' target=\\'_blank\\'>WP Staging Small Server Settings</a> or submit an error report and contact us.');\n }\n },\n 500: function() {\n if (tryCount >= retryLimit) {\n showError('Fatal Error 500 - Internal server error while processing the request! Please try the <a href=\\'https://wp-staging.com/docs/wp-staging-settings-for-small-servers/\\' target=\\'_blank\\'>WP Staging Small Server Settings</a> or submit an error report and contact us.');\n }\n },\n 504: function() {\n if (tryCount > retryLimit) {\n showError('Error 504 - It looks like your server is rate limiting ajax requests. Please try to resume after a minute. If this still not works try the <a href=\\'https://wp-staging.com/docs/wp-staging-settings-for-small-servers/\\' target=\\'_blank\\'>WP Staging Small Server Settings</a> or submit an error report and contact us.\\n\\ ');\n }\n },\n 502: function() {\n if (tryCount >= retryLimit) {\n showError('Error 502 - It looks like your server is rate limiting ajax requests. Please try to resume after a minute. If this still not works try the <a href=\\'https://wp-staging.com/docs/wp-staging-settings-for-small-servers/\\' target=\\'_blank\\'>WP Staging Small Server Settings</a> or submit an error report and contact us.\\n\\ ');\n }\n },\n 503: function() {\n if (tryCount >= retryLimit) {\n showError('Error 503 - It looks like your server is rate limiting ajax requests. Please try to resume after a minute. If this still not works try the <a href=\\'https://wp-staging.com/docs/wp-staging-settings-for-small-servers/\\' target=\\'_blank\\'>WP Staging Small Server Settings</a> or submit an error report and contact us.\\n\\ ');\n }\n },\n 429: function() {\n if (tryCount >= retryLimit) {\n showError('Error 429 - It looks like your server is rate limiting ajax requests. Please try to resume after a minute. If this still not works try the <a href=\\'https://wp-staging.com/docs/wp-staging-settings-for-small-servers/\\' target=\\'_blank\\'>WP Staging Small Server Settings</a> or submit an error report and contact us.\\n\\ ');\n }\n },\n 403: function() {\n if (tryCount >= retryLimit) {\n showError('Refresh page or login again! The process should be finished successfully. \\n\\ ');\n }\n },\n },\n });\n };\n\n /**\n * Next / Previous Step Clicks to Navigate Through Staging Job\n */\n const stepButtons = function() {\n const $workFlow = cache.get('#wpstg-workflow');\n\n $workFlow\n // Next Button\n .on('click', '.wpstg-next-step-link', function(e) {\n e.preventDefault();\n\n const $this = $(this);\n const isScan = false;\n\n if ($('#wpstg_clone_hostname').length && !validateTargetHost()) {\n $('#wpstg_clone_hostname').focus();\n return false;\n }\n\n if ($this.data('action') === 'wpstg_update' || $this.data('action') === 'wpstg_reset') {\n // Update / Reset Clone - confirmed\n let onlyUpdateMessage = '';\n if ($this.data('action') === 'wpstg_update') {\n onlyUpdateMessage = ' \\n\\nExclude all tables and folders you do not want to overwrite, first! \\n\\nDo not cancel the updating process! This can break your staging site. \\n\\n\\Create a backup of your staging website before you proceed.';\n }\n\n if (!confirm('STOP! This will overwrite your staging site with all selected data from the production site! This should be used only if you want to clone again your production site. Are you sure you want to do this?' + onlyUpdateMessage)) {\n return false;\n }\n }\n\n // Button is disabled\n if ($this.attr('disabled')) {\n return false;\n }\n\n if ($this.data('action') === 'wpstg_cloning') {\n // Verify External Database If Checked and Not Skipped\n if ($('#wpstg-ext-db').is(':checked')) {\n verifyExternalDatabase($this, $workFlow);\n return;\n }\n }\n\n proceedCloning($this, $workFlow);\n })\n // Previous Button\n .on('click', '.wpstg-prev-step-link', function(e) {\n e.preventDefault();\n cache.get('.wpstg-loader').removeClass('wpstg-finished');\n cache.get('.wpstg-loader').hide();\n loadOverview();\n });\n };\n\n /**\n * Get Included (Checked) Database Tables\n * @return {Array}\n */\n const getIncludedTables = function() {\n const includedTables = [];\n\n $('#wpstg_select_tables_cloning option:selected').each(function() {\n includedTables.push(this.value);\n });\n\n return includedTables;\n };\n\n /**\n * Get Excluded (Unchecked) Database Tables\n * Not used anymore!\n * @return {Array}\n */\n const getExcludedTables = function() {\n const excludedTables = [];\n\n $('.wpstg-db-table input:not(:checked)').each(function() {\n excludedTables.push(this.name);\n });\n\n return excludedTables;\n };\n\n /**\n * Verify External Database for Cloning\n */\n var verifyExternalDatabase = function($this, workflow) {\n cache.get('.wpstg-loader').show();\n ajax(\n {\n action: 'wpstg_database_verification',\n accessToken: wpstg.accessToken,\n nonce: wpstg.nonce,\n databaseUser: cache.get('#wpstg_db_username').val(),\n databasePassword: cache.get('#wpstg_db_password').val(),\n databaseServer: cache.get('#wpstg_db_server').val(),\n databaseDatabase: cache.get('#wpstg_db_database').val(),\n },\n function(response) {\n // Undefined Error\n if (false === response) {\n showError(\n 'Something went wrong! Error: No response.' +\n 'Please try again. If that does not help, ' +\n '<a href=\\'https://wp-staging.com/support/\\' target=\\'_blank\\'>open a support ticket</a> ',\n );\n cache.get('.wpstg-loader').hide();\n return;\n }\n\n // Throw Error\n if ('undefined' === typeof (response.success)) {\n showError(\n 'Something went wrong! Error: Invalid response.' +\n 'Please try again. If that does not help, ' +\n '<a href=\\'https://wp-staging.com/support/\\' target=\\'_blank\\'>open a support ticket</a> ',\n );\n cache.get('.wpstg-loader').hide();\n return;\n }\n\n if (response.success) {\n cache.get('.wpstg-loader').hide();\n proceedCloning($this, workflow);\n return;\n }\n\n if (response.error_type === 'comparison') {\n cache.get('.wpstg-loader').hide();\n let render = '<table style=\"width: 100%;\"><thead><tr><th>Property</th><th>Production DB</th><th>Staging DB</th><th>Status</th></tr></thead><tbody>';\n response.checks.forEach((x) => {\n let icon = '<i style=\"color: #00ff00\">✔</i>';\n if (x.production !== x.staging) {\n icon = '<i style=\"color: #ff0000\">❌</i>';\n }\n render += '<tr><td>' + x.name + '</td><td>' + x.production + '</td><td>' + x.staging + '</td><td>' + icon + '</td></tr>';\n });\n render += '</tbody></table><p>Note: Some mySQL properties do not match. You may proceed but the staging site may not work as expected.</p>';\n WPStagingCommon.getSwalModal().fire({\n title: 'Different Database Properties',\n icon: 'warning',\n html: render,\n width: '650px',\n focusConfirm: false,\n confirmButtonText: 'Proceed Anyway',\n showCancelButton: true,\n }).then(function(result) {\n if (result.value) {\n proceedCloning($this, workflow);\n }\n });\n return;\n }\n\n WPStagingCommon.getSwalModal(true).fire({\n title: 'Different Database Properties',\n icon: 'error',\n html: response.message,\n focusConfirm: true,\n confirmButtonText: 'Ok',\n showCancelButton: false,\n });\n cache.get('.wpstg-loader').hide();\n },\n 'json',\n false,\n );\n };\n\n /**\n * Get Cloning Step Data\n */\n const getCloningData = function() {\n if ('wpstg_cloning' !== that.data.action && 'wpstg_update' !== that.data.action && 'wpstg_reset' !== that.data.action) {\n return;\n }\n\n that.data.cloneID = new Date().getTime().toString();\n if ('wpstg_update' === that.data.action) {\n that.data.cloneID = $('#wpstg-new-clone-id').data('clone');\n }\n\n that.data.cloneName = $('#wpstg-new-clone-id').val() || that.data.cloneID;\n\n // Remove this to keep &_POST[] small otherwise mod_security will throw error 404\n // that.data.excludedTables = getExcludedTables();\n\n if (that.directoryNavigator !== null) {\n that.data.excludedDirectories = encodeURIComponent(that.directoryNavigator.getExcludedDirectories());\n that.data.extraDirectories = encodeURIComponent(that.directoryNavigator.getExtraDirectoriesRootOnly());\n }\n\n that.data.excludeGlobRules = '';\n that.data.excludeSizeRules = '';\n if (that.cloneExcludeFilters instanceof WpstgExcludeFilters) {\n const rules = that.cloneExcludeFilters.getExcludeFilters();\n that.data.excludeGlobRules = encodeURIComponent(rules.globs);\n that.data.excludeSizeRules = encodeURIComponent(rules.sizes);\n }\n\n that.data.includedTables = getIncludedTables();\n that.data.databaseServer = $('#wpstg_db_server').val();\n that.data.databaseUser = $('#wpstg_db_username').val();\n that.data.databasePassword = $('#wpstg_db_password').val();\n that.data.databaseDatabase = $('#wpstg_db_database').val();\n that.data.databasePrefix = $('#wpstg_db_prefix').val();\n const cloneDir = $('#wpstg_clone_dir').val();\n that.data.cloneDir = encodeURIComponent($.trim(cloneDir));\n that.data.cloneHostname = $('#wpstg_clone_hostname').val();\n that.data.emailsAllowed = $('#wpstg_allow_emails').is(':checked');\n that.data.uploadsSymlinked = $('#wpstg_symlink_upload').is(':checked');\n that.data.cleanPluginsThemes = $('#wpstg-clean-plugins-themes').is(':checked');\n that.data.cleanUploadsDir = $('#wpstg-clean-uploads').is(':checked');\n };\n\n var proceedCloning = function($this, workflow) {\n // Add loading overlay\n workflow.addClass('loading');\n\n // Prepare data\n that.data = {\n action: $this.data('action'),\n accessToken: wpstg.accessToken,\n nonce: wpstg.nonce,\n };\n\n // Cloning data\n getCloningData();\n\n sendCloningAjax(workflow);\n };\n\n var sendCloningAjax = function(workflow) {\n // Send ajax request\n ajax(\n that.data,\n function(response) {\n // Undefined Error\n if (false === response) {\n showError(\n 'Something went wrong!<br/><br/> Go to WP Staging > Settings and lower \\'File Copy Limit\\' and \\'DB Query Limit\\'. Also set \\'CPU Load Priority to low \\'' +\n 'and try again. If that does not help, ' +\n '<a href=\\'https://wp-staging.com/support/\\' target=\\'_blank\\'>open a support ticket</a> ',\n );\n }\n\n\n if (response.length < 1) {\n showError(\n 'Something went wrong! No response. Go to WP Staging > Settings and lower \\'File Copy Limit\\' and \\'DB Query Limit\\'. Also set \\'CPU Load Priority to low \\'' +\n 'and try again. If that does not help, ' +\n '<a href=\\'https://wp-staging.com/support/\\' target=\\'_blank\\'>open a support ticket</a> ',\n );\n }\n\n const jsonResponse = tryParseJson(response);\n if (jsonResponse !== false && jsonResponse.success === false) {\n workflow.removeClass('loading');\n showErrorModal(jsonResponse);\n\n return;\n }\n\n // Styling of elements\n workflow.removeClass('loading').html(response);\n that.cloneExcludeFilters = null;\n if (that.data.action === 'wpstg_scanning') {\n that.directoryNavigator = new WpstgDirectoryNavigation('#wpstg-directories-listing', wpstg, that.notyf);\n that.switchStep(2);\n that.cloneExcludeFilters = new WpstgExcludeFilters();\n } else if (that.data.action === 'wpstg_cloning' || that.data.action === 'wpstg_update' || that.data.action === 'wpstg_reset') {\n that.switchStep(3);\n }\n\n // Start cloning\n that.startCloning();\n },\n 'HTML',\n );\n };\n\n var showErrorModal = function(response) {\n const errorModal = new WpstgModal('wpstg_modal_error', wpstg);\n errorModal.show(Object.assign({\n title: 'Error',\n icon: 'error',\n html: wpstg.i18n['somethingWentWrong'],\n width: '500px',\n confirmButtonText: 'Ok',\n showCancelButton: false,\n customClass: {\n confirmButton: 'wpstg--btn--confirm wpstg-blue-primary wpstg-button wpstg-link-btn',\n cancelButton: 'wpstg--btn--cancel wpstg-blue-primary wpstg-link-btn',\n actions: 'wpstg--modal--actions',\n popup: 'wpstg-swal-popup centered-modal',\n },\n buttonsStyling: false,\n reverseButtons: true,\n }, response.swalOptions), {\n type: response.type,\n });\n };\n\n const tryParseJson = function(json) {\n // early bail if not string\n if (!json) {\n return false;\n }\n\n try {\n const object = JSON.parse(json);\n if (object && typeof object === 'object') {\n return object;\n }\n } catch (e) {\n // do nothing on catch\n }\n\n return false;\n };\n\n var resetClone = function(clone, excludeOptions) {\n that.data = {\n action: 'wpstg_reset',\n accessToken: wpstg.accessToken,\n nonce: wpstg.nonce,\n cloneID: clone,\n };\n\n that.data = {...that.data, ...excludeOptions};\n\n const $workFlow = cache.get('#wpstg-workflow');\n sendCloningAjax($workFlow);\n };\n\n /**\n * Loads Overview (first step) of Staging Job\n */\n var loadOverview = function() {\n const $workFlow = cache.get('#wpstg-workflow');\n\n $workFlow.addClass('loading');\n\n ajax(\n {\n action: 'wpstg_overview',\n accessToken: wpstg.accessToken,\n nonce: wpstg.nonce,\n },\n function(response) {\n if (response.length < 1) {\n showError(\n 'Something went wrong! No response. Please try the <a href=\\'https://wp-staging.com/docs/wp-staging-settings-for-small-servers/\\' target=\\'_blank\\'>WP Staging Small Server Settings</a> or submit an error report.',\n );\n }\n\n const $currentStep = cache.get('.wpstg-current-step');\n\n // Styling of elements\n $workFlow.removeClass('loading').html(response);\n },\n 'HTML',\n );\n\n that.switchStep(1);\n cache.get('.wpstg-step3-cloning').show();\n cache.get('.wpstg-step3-pushing').hide();\n };\n\n /**\n * Load Tabs\n */\n const tabs = function() {\n cache.get('#wpstg-workflow').on('click', '.wpstg-tab-header', function(e) {\n e.preventDefault();\n\n const $this = $(this);\n const $section = cache.get($this.data('id'));\n\n $this.toggleClass('expand');\n\n $section.slideToggle();\n\n const tabTriangle = $this.find('.wpstg-tab-triangle');\n\n if ($this.hasClass('expand')) {\n tabTriangle.removeClass('wpstg-no-icon');\n tabTriangle.text('');\n tabTriangle.addClass('wpstg-rotate-90');\n } else {\n tabTriangle.removeClass('wpstg-rotate-90');\n }\n });\n };\n\n /**\n * Delete Clone\n * @param {String} clone\n */\n var deleteClone = function(clone) {\n const deleteDir = $('#deleteDirectory:checked').data('deletepath');\n\n ajax(\n {\n action: 'wpstg_delete_clone',\n clone: clone,\n accessToken: wpstg.accessToken,\n nonce: wpstg.nonce,\n excludedTables: getExcludedTables(),\n deleteDir: deleteDir,\n },\n function(response) {\n if (response) {\n showAjaxFatalError(response);\n\n // Finished\n if ('undefined' !== typeof response.delete && (response.delete === 'finished' || response.delete === 'unfinished')) {\n cache.get('#wpstg-removing-clone').removeClass('loading').html('');\n\n if (response.delete === 'finished' && response.error === undefined) {\n $('.wpstg-clone#' + clone).remove();\n }\n\n // No staging site message is also of type/class .wpstg-class but hidden\n // We have just excluded that from search when counting no of clones\n if ($('#wpstg-existing-clones .wpstg-clone').length < 1) {\n cache.get('#wpstg-existing-clones').find('h3').text('');\n cache.get('#wpstg-no-staging-site-results').show();\n }\n\n cache.get('.wpstg-loader').hide();\n return;\n }\n }\n // continue\n if (true !== response) {\n deleteClone(clone);\n return;\n }\n },\n );\n };\n\n /**\n * Cancel Cloning Process\n */\n var cancelCloning = function() {\n that.timer('stop');\n\n\n if (true === that.isFinished) {\n return true;\n }\n\n ajax(\n {\n action: 'wpstg_cancel_clone',\n clone: that.data.cloneID,\n accessToken: wpstg.accessToken,\n nonce: wpstg.nonce,\n },\n function(response) {\n if (response && 'undefined' !== typeof (response.delete) && response.delete === 'finished') {\n cache.get('.wpstg-loader').hide();\n // Load overview\n loadOverview();\n return;\n }\n\n if (true !== response) {\n // continue\n cancelCloning();\n return;\n }\n\n // Load overview\n loadOverview();\n },\n );\n };\n\n /**\n * Cancel Cloning Process\n */\n var cancelCloningUpdate = function() {\n if (true === that.isFinished) {\n return true;\n }\n\n ajax(\n {\n action: 'wpstg_cancel_update',\n clone: that.data.cloneID,\n accessToken: wpstg.accessToken,\n nonce: wpstg.nonce,\n },\n function(response) {\n if (response && 'undefined' !== typeof (response.delete) && response.delete === 'finished') {\n // Load overview\n loadOverview();\n return;\n }\n\n if (true !== response) {\n // continue\n cancelCloningUpdate();\n return;\n }\n\n // Load overview\n loadOverview();\n },\n );\n };\n\n /**\n * Cancel Cloning Process\n */\n var restart = function() {\n if (true === that.isFinished) {\n return true;\n }\n\n ajax(\n {\n action: 'wpstg_restart',\n // clone: that.data.cloneID,\n accessToken: wpstg.accessToken,\n nonce: wpstg.nonce,\n },\n function(response) {\n if (response && 'undefined' !== typeof (response.delete) && response.delete === 'finished') {\n // Load overview\n loadOverview();\n return;\n }\n\n if (true !== response) {\n // continue\n cancelCloningUpdate();\n return;\n }\n\n // Load overview\n loadOverview();\n },\n );\n };\n\n /**\n * Scroll the window log to bottom\n * @return void\n */\n const logscroll = function() {\n const $div = cache.get('.wpstg-log-details');\n if ('undefined' !== typeof ($div[0])) {\n $div.scrollTop($div[0].scrollHeight);\n }\n };\n\n /**\n * Append the log to the logging window\n * @param string log\n * @return void\n */\n const getLogs = function(log) {\n if (log != null && 'undefined' !== typeof (log)) {\n if (log.constructor === Array) {\n $.each(log, function(index, value) {\n if (value === null) {\n return;\n }\n if (value.type === 'ERROR') {\n cache.get('.wpstg-log-details').append('<span class=\"wpstg--red\">[' + value.type + ']</span>-' + '[' + value.date + '] ' + value.message + '</br>');\n } else {\n cache.get('.wpstg-log-details').append('[' + value.type + ']-' + '[' + value.date + '] ' + value.message + '</br>');\n }\n });\n } else {\n cache.get('.wpstg-log-details').append('[' + log.type + ']-' + '[' + log.date + '] ' + log.message + '</br>');\n }\n }\n logscroll();\n };\n\n /**\n * Check diskspace\n * @return string json\n */\n var checkDiskSpace = function() {\n cache.get('#wpstg-check-space').on('click', function(e) {\n cache.get('.wpstg-loader').show();\n const excludedDirectories = encodeURIComponent(that.directoryNavigator.getExcludedDirectories());\n const extraDirectories = encodeURIComponent(that.directoryNavigator.getExtraDirectoriesRootOnly());\n\n ajax(\n {\n action: 'wpstg_check_disk_space',\n accessToken: wpstg.accessToken,\n nonce: wpstg.nonce,\n excludedDirectories: excludedDirectories,\n extraDirectories: extraDirectories,\n },\n function(response) {\n if (false === response) {\n cache.get('#wpstg-clone-id-error').text('Can not detect required disk space').show();\n cache.get('.wpstg-loader').hide();\n return;\n }\n\n // Show required disk space\n cache.get('#wpstg-clone-id-error').html(\n 'Estimated necessary disk space: ' + response.requiredSpace +\n (response.errorMessage !== null ? ('<br>' + response.errorMessage) : '') +\n '<br> <span style=\"color:#444;\">Before you proceed ensure your account has enough free disk space to hold the entire instance of the production site. You can check the available space from your hosting account (cPanel or similar).</span>').show();\n cache.get('.wpstg-loader').hide();\n },\n 'json',\n false,\n );\n });\n };\n\n /**\n * Show or hide animated loading icon\n * @param isLoading bool\n */\n const isLoading = function(isLoading) {\n if (!isLoading || isLoading === false) {\n cache.get('.wpstg-loader').hide();\n } else {\n cache.get('.wpstg-loader').show();\n }\n };\n\n /**\n * Count up processing execution time\n * @param string status\n * @return html\n */\n that.timer = function(status) {\n if (status === 'stop') {\n const time = that.time;\n that.time = 1;\n clearInterval(that.executionTime);\n return that.convertSeconds(time);\n }\n\n\n that.executionTime = setInterval(function() {\n if (null !== document.getElementById('wpstg-processing-timer')) {\n document.getElementById('wpstg-processing-timer').innerHTML = 'Elapsed Time: ' + that.convertSeconds(that.time);\n }\n that.time++;\n if (status === 'stop') {\n that.time = 1;\n clearInterval(that.executionTime);\n }\n }, 1000);\n };\n\n /**\n * Convert seconds to hourly format\n * @param int seconds\n * @return string\n */\n that.convertSeconds = function(seconds) {\n const date = new Date(null);\n date.setSeconds(seconds); // specify value for SECONDS here\n return date.toISOString().substr(11, 8);\n };\n\n /**\n * Start Cloning Process\n * @type {Function}\n */\n that.startCloning = (function() {\n resetErrors();\n\n // Register function for checking disk space\n checkDiskSpace();\n\n if ('wpstg_cloning' !== that.data.action && 'wpstg_update' !== that.data.action && 'wpstg_reset' !== that.data.action) {\n return;\n }\n\n that.isCancelled = false;\n\n // Start the process\n start();\n\n // Functions\n // Start\n function start() {\n cache.get('.wpstg-loader').show();\n cache.get('#wpstg-cancel-cloning').text('Cancel');\n cache.get('#wpstg-resume-cloning').hide();\n cache.get('#wpstg-error-details').hide();\n\n\n // Clone Database\n setTimeout(function() {\n // cloneDatabase();\n window.addEventListener('beforeunload', WPStaging.warnIfClosingDuringProcess);\n processing();\n }, wpstg.delayReq);\n\n that.timer('start');\n }\n\n\n /**\n * Start ajax processing\n * @return string\n */\n var processing = function() {\n if (true === that.isCancelled) {\n window.removeEventListener('beforeunload', WPStaging.warnIfClosingDuringProcess);\n return false;\n }\n\n isLoading(true);\n\n let excludedDirectories = '';\n let extraDirectories = '';\n if (that.directoryNavigator !== null) {\n excludedDirectories = that.directoryNavigator.getExcludedDirectories();\n extraDirectories = that.directoryNavigator.getExtraDirectoriesRootOnly();\n }\n\n // Show logging window\n cache.get('.wpstg-log-details').show();\n\n WPStaging.ajax(\n {\n action: 'wpstg_processing',\n accessToken: wpstg.accessToken,\n nonce: wpstg.nonce,\n excludedTables: getExcludedTables(),\n excludedDirectories: encodeURIComponent(excludedDirectories),\n extraDirectories: encodeURIComponent(extraDirectories),\n },\n function(response) {\n showAjaxFatalError(response);\n\n // Add Log messages\n if ('undefined' !== typeof (response.last_msg) && response.last_msg) {\n getLogs(response.last_msg);\n }\n // Continue processing\n if (false === response.status) {\n progressBar(response);\n\n setTimeout(function() {\n cache.get('.wpstg-loader').show();\n processing();\n }, wpstg.delayReq);\n } else if (true === response.status && 'finished' !== response.status) {\n cache.get('#wpstg-error-details').hide();\n cache.get('#wpstg-error-wrapper').hide();\n progressBar(response, true);\n processing();\n } else if ('finished' === response.status || ('undefined' !== typeof (response.job_done) && response.job_done)) {\n window.removeEventListener('beforeunload', WPStaging.warnIfClosingDuringProcess);\n finish(response);\n }\n ;\n },\n 'json',\n false,\n );\n };\n\n // Finish\n function finish(response) {\n if (true === that.getLogs) {\n getLogs();\n }\n\n progressBar(response);\n\n // Add Log\n if ('undefined' !== typeof (response.last_msg)) {\n getLogs(response.last_msg);\n }\n\n cache.get('.wpstg-loader').hide();\n cache.get('#wpstg-processing-header').html('Processing Complete');\n $('#wpstg-processing-status').text('Succesfully finished');\n\n cache.get('#wpstg_staging_name').html(that.data.cloneID);\n cache.get('#wpstg-finished-result').show();\n cache.get('#wpstg-cancel-cloning').hide();\n cache.get('#wpstg-resume-cloning').hide();\n cache.get('#wpstg-cancel-cloning-update').prop('disabled', true);\n\n const $link1 = cache.get('#wpstg-clone-url-1');\n const $link = cache.get('#wpstg-clone-url');\n $link1.attr('href', response.url);\n $link1.html(response.url);\n $link.attr('href', response.url);\n\n cache.get('#wpstg-remove-clone').data('clone', that.data.cloneID);\n\n // Finished\n that.isFinished = true;\n that.timer('stop');\n\n\n cache.get('.wpstg-loader').hide();\n cache.get('#wpstg-processing-header').html('Processing Complete');\n\n // show alert\n let msg = wpstg.i18n.cloneResetComplete;\n if (that.data.action === 'wpstg_update') {\n msg = wpstg.i18n.cloneUpdateComplete;\n }\n\n if (that.data.action === 'wpstg_update' || that.data.action === 'wpstg_reset') {\n cache.get('#wpstg-cancel-cloning-update').hide();\n cache.get('.wpstg-prev-step-link').show();\n\n WPStagingCommon.getSwalModal(true, {\n confirmButton: 'wpstg--btn--confirm wpstg-green-button wpstg-button wpstg-link-btn wpstg-100-width',\n }).fire({\n title: '',\n icon: 'success',\n html: msg,\n width: '500px',\n focusConfirm: true,\n });\n }\n\n return false;\n }\n\n /**\n * Add percentage progress bar\n * @param object response\n * @return {Boolean}\n */\n var progressBar = function(response, restart) {\n if ('undefined' === typeof (response.percentage)) {\n return false;\n }\n\n if (response.job === 'database') {\n cache.get('#wpstg-progress-db').width(response.percentage * 0.2 + '%').html(response.percentage + '%');\n cache.get('#wpstg-processing-status').html(response.percentage.toFixed(0) + '%' + ' - Step 1 of 4 Cloning Database Tables...');\n }\n\n if (response.job === 'SearchReplace') {\n cache.get('#wpstg-progress-db').css('background-color', '#3bc36b');\n cache.get('#wpstg-progress-db').html('1. Database');\n // Assumption: All previous steps are done.\n // This avoids bugs where some steps are skipped and the progress bar is incomplete as a result\n cache.get('#wpstg-progress-db').width('20%');\n\n cache.get('#wpstg-progress-sr').width(response.percentage * 0.1 + '%').html(response.percentage + '%');\n cache.get('#wpstg-processing-status').html(response.percentage.toFixed(0) + '%' + ' - Step 2 of 4 Preparing Database Data...');\n }\n\n if (response.job === 'directories') {\n cache.get('#wpstg-progress-sr').css('background-color', '#3bc36b');\n cache.get('#wpstg-progress-sr').html('2. Data');\n cache.get('#wpstg-progress-sr').width('10%');\n\n cache.get('#wpstg-progress-dirs').width(response.percentage * 0.1 + '%').html(response.percentage + '%');\n cache.get('#wpstg-processing-status').html(response.percentage.toFixed(0) + '%' + ' - Step 3 of 4 Getting files...');\n }\n if (response.job === 'files') {\n cache.get('#wpstg-progress-dirs').css('background-color', '#3bc36b');\n cache.get('#wpstg-progress-dirs').html('3. Files');\n cache.get('#wpstg-progress-dirs').width('10%');\n\n cache.get('#wpstg-progress-files').width(response.percentage * 0.6 + '%').html(response.percentage + '%');\n cache.get('#wpstg-processing-status').html(response.percentage.toFixed(0) + '%' + ' - Step 4 of 4 Copy files...');\n }\n if (response.job === 'finish') {\n cache.get('#wpstg-progress-files').css('background-color', '#3bc36b');\n cache.get('#wpstg-progress-files').html('4. Copy Files');\n cache.get('#wpstg-progress-files').width('60%');\n\n cache.get('#wpstg-processing-status').html(response.percentage.toFixed(0) + '%' + ' - Cloning Process Finished');\n }\n };\n });\n\n that.switchStep = function(step) {\n cache.get('.wpstg-current-step')\n .removeClass('wpstg-current-step');\n cache.get('.wpstg-step' + step)\n .addClass('wpstg-current-step');\n };\n\n /**\n * Initiation\n * @type {Function}\n */\n that.init = (function() {\n loadOverview();\n elements();\n stepButtons();\n tabs();\n WPStagingCommon.listenTooltip();\n new WpstgMainMenu();\n new WpstgCloneStaging();\n new WpstgCloningAdvanceSettings();\n that.notyf = new Notyf({\n duration: 10000,\n position: {\n x: 'center',\n y: 'bottom',\n },\n dismissible: true,\n types: [\n {\n type: 'warning',\n background: 'orange',\n icon: false,\n },\n ],\n });\n });\n\n /**\n * Ajax call\n * @type {ajax}\n */\n that.ajax = ajax;\n that.showError = showError;\n that.getLogs = getLogs;\n that.loadOverview = loadOverview;\n\n return that;\n})(jQuery);\n\njQuery(document).ready(function() {\n WPStaging.init();\n // This is necessary to make WPStaging var accessibile in WP Staging PRO js script\n window.WPStaging = WPStaging;\n});\n\n/**\n * Report Issue modal\n */\njQuery(document).ready(function($) {\n $('body').on('click', '#wpstg-report-issue-button', function(e) {\n console.log('REPORT');\n $('.wpstg--tab--active .wpstg-report-issue-form').toggleClass('wpstg-report-show');\n e.preventDefault();\n });\n\n $('body').on('click', '#wpstg-backups-report-issue-button', function(e) {\n $('.wpstg--tab--active .wpstg-report-issue-form').toggleClass('wpstg-report-show');\n e.preventDefault();\n });\n\n $('body').on('click', '#wpstg-report-cancel', function(e) {\n $('.wpstg--tab--active .wpstg-report-issue-form').removeClass('wpstg-report-show');\n e.preventDefault();\n });\n\n $('body').on('click', '.wpstg--tab--active #wpstg-report-submit', function(e) {\n const self = $(this);\n sendIssueReport(self, 'false');\n e.preventDefault();\n });\n\n /*\n * Close Success Modal\n */\n\n $('body').on('click', '#wpstg-success-button', function(e) {\n e.preventDefault();\n $('.wpstg-report-issue-form').removeClass('wpstg-report-show');\n });\n\n function sendIssueReport(button, forceSend = 'false') {\n const spinner = button.next();\n const email = $('.wpstg--tab--active .wpstg-report-email').val();\n const hosting_provider = $('.wpstg--tab--active .wpstg-report-hosting-provider').val();\n const message = $('.wpstg--tab--active .wpstg-report-description').val();\n const syslog = $('.wpstg--tab--active .wpstg-report-syslog').is(':checked');\n const terms = $('.wpstg--tab--active .wpstg-report-terms').is(':checked');\n\n button.attr('disabled', true);\n spinner.css('visibility', 'visible');\n\n $.ajax({\n url: ajaxurl,\n type: 'POST',\n dataType: 'json',\n async: true,\n data: {\n 'action': 'wpstg_send_report',\n 'accessToken': wpstg.accessToken,\n 'nonce': wpstg.nonce,\n 'wpstg_email': email,\n 'wpstg_provider': hosting_provider,\n 'wpstg_message': message,\n 'wpstg_syslog': +syslog,\n 'wpstg_terms': +terms,\n 'wpstg_force_send': forceSend,\n },\n }).done(function(data) {\n button.attr('disabled', false);\n spinner.css('visibility', 'hidden');\n\n if (data.errors.length > 0) {\n $('.wpstg--tab--active .wpstg-report-issue-form .wpstg-message').remove();\n\n let errorMessage = $('<div />').addClass('wpstg-message wpstg-error-message');\n $.each(data.errors, function(key, value) {\n if (value.status === 'already_submitted') {\n errorMessage = '';\n // TODO: remove default custom classes\n WPStagingCommon.getSwalModal(true, {\n container: 'wpstg-issue-resubmit-confirmation',\n }).fire({\n title: '',\n icon: 'warning',\n html: value.message,\n showCancelButton: true,\n focusConfirm: false,\n confirmButtonText: 'Yes',\n cancelButtonText: 'No',\n }).then((result) => {\n if (result.isConfirmed) {\n sendIssueReport(button, 'true');\n }\n });\n } else {\n errorMessage.append('<p>' + value + '</p>');\n }\n });\n\n $('.wpstg--tab--active .wpstg-report-issue-form').prepend(errorMessage);\n } else {\n const successMessage = $('<div />').addClass('wpstg-message wpstg-success-message');\n successMessage.append('<p>Thanks for submitting your request! You should receive an auto reply mail with your ticket ID immediately for confirmation!<br><br>If you do not get that mail please contact us directly at <strong>support@wp-staging.com</strong></p>');\n\n $('.wpstg--tab--active .wpstg-report-issue-form').html(successMessage);\n $('.wpstg--tab--active .wpstg-success-message').append('<div style=\"float:right;margin-top:10px;\"><a id=\"wpstg-success-button\" href=\"#\" class=\"wpstg--red\">[X] CLOSE</a></div>');\n\n // Hide message\n setTimeout(function() {\n $('.wpstg--tab--active .wpstg-report-issue-form').removeClass('wpstg-report-active');\n }, 2000);\n }\n });\n }\n\n // Open/close actions drop down menu\n $(document).on('click', '.wpstg-dropdown>.wpstg-dropdown-toggler', function(e) {\n e.preventDefault();\n $(e.target).next('.wpstg-dropdown-menu').toggleClass('shown');\n\n $(e.target).find('.wpstg-caret').toggleClass('wpstg-caret-up');\n });\n\n $(document).on('click', '.wpstg-caret', function(e) {\n e.preventDefault();\n\n const toggler = $(e.target).closest('.wpstg-dropdown-toggler');\n\n if (toggler) {\n toggler.trigger('click');\n }\n });\n\n // Close action drop down menu if clicked anywhere outside\n document.addEventListener('click', function(event) {\n const isClickInside = event.target.closest('.wpstg-dropdown-toggler');\n if (!isClickInside) {\n const dropDown = document.getElementsByClassName('wpstg-dropdown-menu');\n for (let i = 0; i < dropDown.length; i++) {\n dropDown[i].classList.remove('shown');\n }\n $('.wpstg-caret').removeClass('wpstg-caret-up');\n }\n });\n});\n"],"names":["qs","selector","document","querySelector","all","querySelectorAll","addEvent","parent","evt","handler","addEventListener","event","target","matches","closest","slideDown","element","duration","style","display","overflow","height","offsetHeight","transitionProperty","transitionDuration","setTimeout","window","removeProperty","slideUp","getNextSibling","sibling","nextElementSibling","getParents","result","parentElement","push","WpstgCloneStaging","pageWrapperId","wpstgObject","wpstg","pageWrapper","dom","enableButtonId","enableAction","notyf","Notyf","position","x","y","dismissible","types","type","background","icon","init","addEvents","sendRequest","action","fetch","ajaxUrl","method","credentials","body","URLSearchParams","accessToken","nonce","headers","then","response","ok","json","Promise","reject","data","success","location","reload","message","error","i18n","console","warn","WpstgDirectoryNavigation","directoryListingSelector","directoryListingContainer","dirCheckboxSelector","dirExpandSelector","unselectAllDirsSelector","selectDefaultDirsSelector","fetchChildrenAction","currentCheckboxElement","currentParentDiv","currentLoader","existingExcludes","excludedDirectories","isDefaultSelected","log","preventDefault","toggleDirExpand","unselectAll","selectDefault","parseExcludes","previousSibling","getAttribute","dirPath","value","isChecked","checked","forceDefault","setAttribute","dirContainer","createElement","classList","add","innerHTML","JSON","parse","directoryListing","appendChild","alert","getExcludedDirectories","forEach","isParentExcluded","exclude","isExcludeScanned","join","settings","directorySeparator","path","isParentAlreadyExcluded","dir","startsWith","getExtraDirectoriesRootOnly","extraDirectories","extraDirectoriesTextArea","extraCustomDirectories","split","concat","length","WpstgExcludeFilters","excludeFilterContainerSelector","excludeContainer","excludeTableBody","addFileSizeExclude","addFileExtExclude","addFileNameExclude","addDirNameExclude","clearExcludes","removeExclude","addExcludeRuleRow","templateName","excludeRowTemplate","clone","content","cloneNode","excludeRow","e","removeChild","trim","getExcludeFilters","globExcludes","sizeExcludes","sizeCompares","sizeSizes","sizeByte","Object","entries","key","sizeInput","extensionInputs","ext","cleanStringForGlob","fileNamesPos","fileNames","fileInput","fileName","dirNamesPos","dirNames","dirInput","dirName","filter","onlyUnique","index","self","indexOf","replace","WpstgModal","confirmAction","show","swalOptions","additionalParams","callback","wpstgSwal","fire","triggerConfirmAction","assign","onOver","onOut","pX","pY","mouseOver","focused","h","state","timer","options","sensitivity","interval","timeout","handleFocus","delay","el","clearTimeout","undefined","tracker","clientX","clientY","compare","Math","abs","opt","focusOptionChanged","addFocus","removeFocus","dispatchOver","removeEventListener","onMouseOver","dispatchOut","onMouseOut","dispatchFocus","onFocus","dispatchBlur","onBlur","remove","$","WPStagingCommon","continueErrorHandle","cache","elements","get","inArray","refresh","listenTooltip","wpstgHoverIntent","visibility","isEmpty","obj","prop","hasOwnProperty","getSwalModal","isContentCentered","customClasses","defaultCustomClasses","confirmButton","cancelButton","actions","popup","customClass","buttonsStyling","reverseButtons","showClass","mixin","showSuccessModal","htmlContent","showConfirmButton","showCancelButton","cancelButtonText","title","html","showWarningModal","showErrorModal","getSwalContainer","getContainer","closeSwalModal","close","getDataFromWordPressResponse","Error","Array","shift","isLoading","hide","slugify","url","toString","toLowerCase","normalize","showAjaxFatalError","prependMessage","appendMessage","showError","WPStaging","warnIfClosingDuringProcess","handleFetchErrors","status","statusText","css","text","removeClass","resetErrors","ajax","dataType","showErrors","tryCount","incrementRatio","errorCallback","retryLimit","retryTimeout","parseInt","isNaN","ajaxurl","Date","now","xhr","textStatus","errorThrown","errorCode","statusCode","jQuery","WpstgResetModal","cloneID","workflowSelector","fetchExcludeSettingsAction","modalErrorAction","workflow","resetButtonClass","resetModalContainerClass","resetTabSelector","directoryNavigator","excludeFilters","isAllTablesChecked","resetModalContainer","toggleContent","selectDefaultTables","toggleTableSelection","toggleDirectoryNavigation","updateDirectorySelection","contentId","tabTriangle","isCollapsed","contains","transform","showModal","swalPromise","loadModal","fetchCloneExcludes","container","getAjaxLoader","width","focusConfirm","confirmButtonText","resetClone","job","errorModal","modal","renderError","getDirectoryNavigator","wpstgIcon","cbElement","subDirectories","parElem","i","children","multisitePattern","tblprefix","singleSitePattern","option","name","isMultisite","match","removeAttribute","WpstgCloningAdvanceSettings","baseContainerSelector","baseContainer","checkBoxSettingTogglerSelector","toggleSettings","WpstgMainMenu","activeTabClass","mainMenu","tabHeader","$this","targetElements","menuItems","contents","menuItem","targetElement","dispatchEvent","Event","that","isCancelled","isFinished","getLogs","time","executionTime","progressBar","cloneExcludeFilters","ajaxSpinner","returnValue","$workFlow","isAllChecked","urlSpinner","devicePixelRatio","on","each","attr","siblings","slideToggle","$directory","parents","find","addClass","getElementById","clearInterval","removeAttr","cloneDirectoryName","directoryName","slug","$targetDir","$targetUri","uri","val","validateTargetHost","after","cloneActions","the_domain","reg","test","confirm","append","cancelCloning","startCloning","cancelCloningUpdate","restart","$existingClones","animate","scrollTop","offset","top","deleteClone","jsonResponse","tryParseJson","checkDiskSpace","switchStep","resetModal","promise","dirNavigator","exclFilters","includedTables","getIncludedTables","excludeSizeRules","encodeURIComponent","sizes","excludeGlobRules","globs","stepButtons","focus","onlyUpdateMessage","is","verifyExternalDatabase","proceedCloning","loadOverview","getExcludedTables","excludedTables","databaseUser","databasePassword","databaseServer","databaseDatabase","error_type","render","checks","production","staging","getCloningData","getTime","cloneName","rules","databasePrefix","cloneDir","cloneHostname","emailsAllowed","uploadsSymlinked","cleanPluginsThemes","cleanUploadsDir","sendCloningAjax","object","excludeOptions","tabs","$section","toggleClass","hasClass","deleteDir","logscroll","$div","scrollHeight","constructor","date","requiredSpace","errorMessage","convertSeconds","setInterval","seconds","setSeconds","toISOString","substr","start","processing","delayReq","last_msg","job_done","finish","$link1","$link","msg","cloneResetComplete","cloneUpdateComplete","percentage","toFixed","step","ready","sendIssueReport","button","forceSend","spinner","next","email","hosting_provider","syslog","terms","async","done","errors","isConfirmed","prepend","successMessage","toggler","trigger","isClickInside","dropDown","getElementsByClassName"],"mappings":"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"}
1
+ {"version":3,"file":"wpstg-admin.js","sources":["../src/modules/wpstg-dom-utils.js","../src/modules/wpstg-clone-staging.js","../src/modules/wpstg-directory-navigation.js","../src/modules/wpstg-exclude-filters.js","../src/modules/wpstg-modal.js","../src/modules/wpstg-hover-intent.js","../src/wpstg.js","../src/modules/wpstg-reset-modal.js","../src/modules/wpstg-cloning-advance-settings.js","../src/modules/wpstg-main-menu.js","../src/wpstg-admin.js"],"sourcesContent":["/**\n * WP STAGING basic jQuery replacement\n */\n\n/**\n * Shortcut for document.querySelector() or jQuery's $()\n * Return single element only\n */\nexport function qs(selector) {\n return document.querySelector(selector);\n}\n\n/**\n * Shortcut for document.querySelector() or jQuery's $()\n * Return collection of elements\n */\nexport function all(selector) {\n return document.querySelectorAll(selector);\n}\n\n/**\n * alternative of jQuery - $(parent).on(event, selector, handler)\n */\nexport function addEvent(parent, evt, selector, handler) {\n parent.addEventListener(evt, function(event) {\n if (event.target.matches(selector + ', ' + selector + ' *')) {\n handler(event.target.closest(selector), event);\n }\n }, false);\n}\n\nexport function slideDown(element, duration = 400) {\n element.style.display = 'block';\n element.style.overflow = 'hidden';\n const height = element.offsetHeight;\n element.style.height = '0px';\n element.style.transitionProperty = 'height';\n element.style.transitionDuration = duration + 'ms';\n setTimeout(() => {\n element.style.height = height + 'px';\n window.setTimeout(() => {\n element.style.removeProperty('height');\n element.style.removeProperty('overflow');\n element.style.removeProperty('transition-duration');\n element.style.removeProperty('transition-property');\n }, duration);\n }, 0);\n}\n\nexport function slideUp(element, duration = 400) {\n element.style.display = 'block';\n element.style.overflow = 'hidden';\n const height = element.offsetHeight;\n element.style.height = height + 'px';\n element.style.transitionProperty = 'height';\n element.style.transitionDuration = duration + 'ms';\n setTimeout(() => {\n element.style.height = '0px';\n window.setTimeout(() => {\n element.style.display = 'none';\n element.style.removeProperty('height');\n element.style.removeProperty('overflow');\n element.style.removeProperty('transition-duration');\n element.style.removeProperty('transition-property');\n }, duration);\n }, 0);\n}\n\nexport function getNextSibling(element, selector) {\n let sibling = element.nextElementSibling;\n\n while (sibling) {\n if (sibling.matches(selector)) {\n return sibling;\n }\n\n sibling = sibling.nextElementSibling;\n }\n};\n\nexport function getParents(element, selector) {\n const result = [];\n for (let parent = element && element.parentElement; parent; parent = parent.parentElement) {\n if (parent.matches(selector)) {\n result.push(parent);\n }\n }\n\n return result;\n}\n\n/**\n * Check if element has class name\n * @param element\n * @param className\n * @return {boolean}\n */\nexport function hasClass(element, className) {\n return (' ' + element.className + ' ').indexOf(' ' + className+ ' ') > -1;\n}\n","import * as dom from './wpstg-dom-utils.js';\n\n/**\n * Enable/Disable cloning for staging site\n */\nexport default class WpstgCloneStaging {\n constructor(\n pageWrapperId = '#wpstg-clonepage-wrapper',\n wpstgObject = wpstg,\n ) {\n this.pageWrapper = dom.qs(pageWrapperId);\n this.wpstgObject = wpstgObject;\n this.enableButtonId = '#wpstg-enable-staging-cloning';\n this.enableAction = 'wpstg_enable_staging_cloning';\n\n this.notyf = new Notyf({\n duration: 10000,\n position: {\n x: 'center',\n y: 'bottom',\n },\n dismissible: true,\n types: [\n {\n type: 'warning',\n background: 'orange',\n icon: false,\n },\n ],\n });\n this.init();\n }\n\n addEvents() {\n if (this.pageWrapper === null) {\n return;\n }\n\n dom.addEvent(this.pageWrapper, 'click', this.enableButtonId, () => {\n this.sendRequest(this.enableAction);\n });\n }\n\n init() {\n this.addEvents();\n }\n\n sendRequest(action) {\n fetch(this.wpstgObject.ajaxUrl, {\n method: 'POST',\n credentials: 'same-origin',\n body: new URLSearchParams({\n action: action,\n accessToken: this.wpstgObject.accessToken,\n nonce: this.wpstgObject.nonce,\n }),\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n },\n }).then((response) => {\n if (response.ok) {\n return response.json();\n }\n\n return Promise.reject(response);\n }).then((data) => {\n // Reload current page if successful.\n if ('undefined' !== typeof (data.success) && data.success) {\n location.reload();\n return;\n }\n\n // There will be message probably in case of error\n if ('undefined' !== typeof (data.message)) {\n this.notyf.error(data.message);\n return;\n }\n\n this.notyf.error(this.wpstgObject.i18n['somethingWentWrong']);\n }).catch((error) => {\n console.warn(this.wpstgObject.i18n['somethingWentWrong'], error);\n });\n }\n}\n","import * as dom from './wpstg-dom-utils.js';\n\n/**\n * Fetch directory direct child directories\n */\nexport default class WpstgDirectoryNavigation {\n constructor(\n directoryListingSelector = '#wpstg-directories-listing',\n wpstgObject = wpstg,\n notyf = null,\n ) {\n this.directoryListingContainer = dom.qs(directoryListingSelector);\n this.wpstgObject = wpstgObject;\n this.dirCheckboxSelector = '.wpstg-check-dir';\n this.dirExpandSelector = '.wpstg-expand-dirs';\n this.unselectAllDirsSelector = '.wpstg-unselect-dirs';\n this.selectDefaultDirsSelector = '.wpstg-select-dirs-default';\n this.fetchChildrenAction = 'wpstg_fetch_dir_childrens';\n this.currentCheckboxElement = null;\n this.currentParentDiv = null;\n this.currentLoader = null;\n this.existingExcludes = [];\n this.excludedDirectories = [];\n this.isDefaultSelected = false;\n this.notyf = notyf;\n\n this.init();\n }\n\n addEvents() {\n if (this.directoryListingContainer === null) {\n console.log('Error: directory navigation add events');\n return;\n }\n\n dom.addEvent(this.directoryListingContainer, 'click', this.dirExpandSelector, (element, event) => {\n event.preventDefault();\n if (this.toggleDirExpand(element)) {\n this.sendRequest(this.fetchChildrenAction, element);\n }\n });\n\n dom.addEvent(this.directoryListingContainer, 'click', this.unselectAllDirsSelector, () => {\n this.unselectAll();\n });\n\n dom.addEvent(this.directoryListingContainer, 'click', this.selectDefaultDirsSelector, () => {\n this.selectDefault();\n });\n }\n\n init() {\n this.addEvents();\n this.parseExcludes();\n }\n\n /**\n * Toggle Dir Expand,\n * Return true if children aren't fetched\n * @param {HTMLElement} element\n * @return {boolean}\n */\n toggleDirExpand(element) {\n this.currentParentDiv = element.parentElement;\n this.currentCheckboxElement = element.previousSibling;\n this.currentLoader = this.currentParentDiv.querySelector('.wpstg-is-dir-loading');\n if (this.currentCheckboxElement.getAttribute('data-navigateable', 'false') === 'false') {\n return false;\n }\n\n if (this.currentCheckboxElement.getAttribute('data-scanned', 'false') === 'false') {\n return true;\n }\n\n return false;\n }\n\n sendRequest(action) {\n if (this.currentLoader !== null) {\n this.currentLoader.style.display = 'inline-block';\n }\n\n fetch(this.wpstgObject.ajaxUrl, {\n method: 'POST',\n credentials: 'same-origin',\n body: new URLSearchParams({\n action: action,\n accessToken: this.wpstgObject.accessToken,\n nonce: this.wpstgObject.nonce,\n dirPath: this.currentCheckboxElement.value,\n isChecked: this.currentCheckboxElement.checked,\n forceDefault: this.isDefaultSelected,\n }),\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n },\n }).then((response) => {\n if (response.ok) {\n return response.json();\n }\n\n return Promise.reject(response);\n }).then((data) => {\n if ('undefined' !== typeof (data.success) && data.success) {\n this.currentCheckboxElement.setAttribute('data-scanned', true);\n const dirContainer = document.createElement('div');\n dirContainer.classList.add('wpstg-dir');\n dirContainer.classList.add('wpstg-subdir');\n dirContainer.innerHTML = JSON.parse(data.directoryListing);\n this.currentParentDiv.appendChild(dirContainer);\n if (this.currentLoader !== null) {\n this.currentLoader.style.display = 'none';\n }\n\n dom.slideDown(dirContainer);\n\n return;\n }\n\n if (this.notyf !== null) {\n this.notyf.error(this.wpstgObject.i18n['somethingWentWrong']);\n } else {\n alert('Error: ' + this.wpstgObject.i18n['somethingWentWrong']);\n }\n }).catch((error) => {\n console.warn(this.wpstgObject.i18n['somethingWentWrong'], error);\n });\n }\n\n getExcludedDirectories() {\n this.excludedDirectories = [];\n this.directoryListingContainer.querySelectorAll('.wpstg-dir input:not(:checked)').forEach((element) => {\n if (!this.isParentExcluded(element.value)) {\n this.excludedDirectories.push(element.value);\n }\n });\n\n this.existingExcludes.forEach((exclude) => {\n if (!this.isParentExcluded(exclude) && !this.isExcludeScanned(exclude)) {\n this.excludedDirectories.push(exclude);\n }\n });\n\n return this.excludedDirectories.join(this.wpstgObject.settings.directorySeparator);\n }\n\n /**\n * @param {string} path\n * @return {bool}\n */\n isParentExcluded(path) {\n let isParentAlreadyExcluded = false;\n this.excludedDirectories.forEach((dir) => {\n if (path.startsWith(dir + '/')) {\n isParentAlreadyExcluded = true;\n }\n });\n\n return isParentAlreadyExcluded;\n }\n\n getExtraDirectoriesRootOnly() {\n this.getExcludedDirectories();\n const extraDirectories = [];\n this.directoryListingContainer.querySelectorAll(':not(.wpstg-subdir)>.wpstg-dir>input.wpstg-wp-non-core-dir:checked').forEach((element) => {\n extraDirectories.push(element.value);\n });\n\n // Check if extra directories text area exists\n // TODO: remove extraCustomDirectories code if no one require extraCustomDirectories...\n const extraDirectoriesTextArea = dom.qs('#wpstg_extraDirectories');\n if (extraDirectoriesTextArea === null || extraDirectoriesTextArea.value === '') {\n return extraDirectories.join(this.wpstgObject.settings.directorySeparator);\n }\n\n const extraCustomDirectories = extraDirectoriesTextArea.value.split(/\\r?\\n/);\n\n return extraDirectories.concat(extraCustomDirectories).join(this.wpstgObject.settings.directorySeparator);\n }\n\n unselectAll() {\n this.directoryListingContainer.querySelectorAll('.wpstg-dir input').forEach((element) => {\n element.checked = false;\n });\n }\n\n selectDefault() {\n // unselect all checkboxes\n this.unselectAll();\n\n // only select those checkboxes whose class is wpstg-wp-core-dir\n this.directoryListingContainer.querySelectorAll('.wpstg-dir input.wpstg-wp-core-dir').forEach((element) => {\n element.checked = true;\n });\n\n // then unselect those checkboxes whose parent has wpstg extra checkbox\n this.directoryListingContainer.querySelectorAll('.wpstg-dir > .wpstg-wp-non-core-dir').forEach((element) => {\n element.parentElement.querySelectorAll('input.wpstg-wp-core-dir').forEach((element) => {\n element.checked = false;\n });\n });\n\n this.isDefaultSelected = true;\n }\n\n parseExcludes() {\n this.existingExcludes = this.directoryListingContainer.getAttribute('data-existing-excludes', []);\n if (this.existingExcludes === '') {\n this.existingExcludes = [];\n }\n\n if (this.existingExcludes.length !== 0) {\n this.existingExcludes = this.existingExcludes.split(',');\n }\n }\n\n isExcludeScanned(exclude) {\n this.directoryListingContainer.querySelectorAll('.wpstg-dir input').forEach((element) => {\n if (element.value === exclude) {\n return true;\n }\n });\n\n return false;\n }\n}\n","import * as dom from './wpstg-dom-utils.js';\n\n/**\n * Rich Exclude Filter Module\n */\nexport default class WpstgExcludeFilters {\n constructor(\n excludeFilterContainerSelector = '#wpstg-exclude-filters-container',\n wpstgObject = wpstg,\n ) {\n this.excludeContainer = dom.qs(excludeFilterContainerSelector);\n this.excludeTableBody = dom.qs(`${excludeFilterContainerSelector} tbody`);\n this.wpstgObject = wpstgObject;\n this.init();\n }\n\n addEvents() {\n dom.addEvent(this.excludeContainer, 'click', '.wpstg-file-size-rule', () => {\n this.addFileSizeExclude();\n });\n\n dom.addEvent(this.excludeContainer, 'click', '.wpstg-file-ext-rule', () => {\n this.addFileExtExclude();\n });\n\n dom.addEvent(this.excludeContainer, 'click', '.wpstg-file-name-rule', () => {\n this.addFileNameExclude();\n });\n\n dom.addEvent(this.excludeContainer, 'click', '.wpstg-dir-name-rule', () => {\n this.addDirNameExclude();\n });\n\n dom.addEvent(this.excludeContainer, 'click', '.wpstg-clear-all-rules', () => {\n this.clearExcludes();\n });\n\n dom.addEvent(this.excludeContainer, 'click', '.wpstg-remove-exclude-rule', (target) => {\n this.removeExclude(target);\n });\n }\n\n init() {\n if (this.excludeContainer === null) {\n console.log('Error: Given table selector not found!');\n return;\n }\n\n this.addEvents();\n }\n\n addFileSizeExclude() {\n this.addExcludeRuleRow('#wpstg-file-size-exclude-filter-template');\n }\n\n addFileExtExclude() {\n this.addExcludeRuleRow('#wpstg-file-ext-exclude-filter-template');\n }\n\n addFileNameExclude() {\n this.addExcludeRuleRow('#wpstg-file-name-exclude-filter-template');\n }\n\n addDirNameExclude() {\n this.addExcludeRuleRow('#wpstg-dir-name-exclude-filter-template');\n }\n\n addExcludeRuleRow(templateName) {\n const excludeRowTemplate = dom.qs(templateName);\n if (excludeRowTemplate !== null) {\n const clone = excludeRowTemplate.content.cloneNode(true);\n const excludeRow = clone.querySelector('tr');\n\n this.excludeTableBody.appendChild(excludeRow);\n dom.all('.wpstg-has-exclude-rules').forEach((e) => {\n e.style.display = 'inherit';\n });\n }\n }\n\n clearExcludes() {\n this.excludeTableBody.innerHTML = '';\n dom.all('.wpstg-has-exclude-rules').forEach((e) => {\n e.style.display = 'none';\n });\n }\n\n removeExclude(target) {\n if (target.parentElement !== null && target.parentElement.parentElement !== null) {\n this.excludeTableBody.removeChild(target.parentElement.parentElement);\n }\n\n if (this.excludeTableBody.innerHTML.trim() === '') {\n dom.all('.wpstg-has-exclude-rules').forEach((e) => {\n e.style.display = 'none';\n });\n }\n }\n\n /**\n * Converts all the exclude filters arrays into one single string to keep size of post request small\n * @return {string}\n */\n getExcludeFilters() {\n const globExcludes = [];\n const sizeExcludes = [];\n\n const sizeCompares = this.excludeTableBody.querySelectorAll('select[name=\"wpstgFileSizeExcludeRuleCompare[]\"]');\n const sizeSizes = this.excludeTableBody.querySelectorAll('input[name=\"wpstgFileSizeExcludeRuleSize[]\"]');\n const sizeByte = this.excludeTableBody.querySelectorAll('select[name=\"wpstgFileSizeExcludeRuleByte[]\"]');\n for (const [key, sizeInput] of Object.entries(sizeSizes)) {\n if (sizeInput.value !== '') {\n sizeExcludes.push(sizeCompares[key].value + ' ' + sizeInput.value + sizeByte[key].value);\n }\n }\n\n const extensionInputs = this.excludeTableBody.querySelectorAll('input[name=\"wpstgFileExtExcludeRule[]\"]');\n extensionInputs.forEach((x) => {\n const ext = this.cleanStringForGlob(x.value);\n if (ext !== '') {\n globExcludes.push('ext:' + ext.trim());\n }\n });\n\n const fileNamesPos = this.excludeTableBody.querySelectorAll('select[name=\"wpstgFileNameExcludeRulePos[]\"]');\n const fileNames = this.excludeTableBody.querySelectorAll('input[name=\"wpstgFileNameExcludeRulePath[]\"]');\n for (const [key, fileInput] of Object.entries(fileNames)) {\n const fileName = this.cleanStringForGlob(fileInput.value);\n if (fileName !== '') {\n globExcludes.push('file:' + fileNamesPos[key].value + ' ' + fileName.trim());\n }\n }\n\n const dirNamesPos = this.excludeTableBody.querySelectorAll('select[name=\"wpstgDirNameExcludeRulePos[]\"]');\n const dirNames = this.excludeTableBody.querySelectorAll('input[name=\"wpstgDirNameExcludeRulePath[]\"]');\n for (const [key, dirInput] of Object.entries(dirNames)) {\n const dirName = this.cleanStringForGlob(dirInput.value);\n if (dirName !== '') {\n globExcludes.push('dir:' + dirNamesPos[key].value + ' ' + dirName.trim());\n }\n }\n\n return {\n 'sizes': sizeExcludes.filter(this.onlyUnique).join(','),\n // return set of unique rules\n 'globs': globExcludes.filter(this.onlyUnique).join(','),\n };\n }\n\n onlyUnique(value, index, self) {\n return self.indexOf(value) === index;\n }\n\n /**\n * Remove most of the comment glob characters from the string\n * @param {String} value\n * @return {String}\n */\n cleanStringForGlob(value) {\n // will replace character like * ^ / \\ ! ? [ from the string\n return value.replace(/[*^//!\\.[?]/g, '');\n }\n}\n","/**\n * Basic WP Staging Modal implemented with help of Sweetalerts\n */\nexport default class WpstgModal {\n constructor(\n confirmAction,\n wpstgObject = wpstg,\n ) {\n this.confirmAction = confirmAction;\n this.wpstgObject = wpstgObject;\n }\n\n show(swalOptions, additionalParams = {}, callback = null) {\n wpstgSwal.fire(swalOptions).then((result) => {\n if (result.value && this.error !== null) {\n this.triggerConfirmAction(additionalParams, callback);\n }\n });\n }\n\n triggerConfirmAction(additionalParams = {}, callback = null) {\n fetch(this.wpstgObject.ajaxUrl, {\n method: 'POST',\n credentials: 'same-origin',\n body: new URLSearchParams(Object.assign({\n action: this.confirmAction,\n accessToken: this.wpstgObject.accessToken,\n nonce: this.wpstgObject.nonce,\n }, additionalParams)),\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n },\n }).then((response) => {\n if (response.ok) {\n return response.json();\n }\n\n return Promise.reject(response);\n }).then((response) => {\n if (callback !== null) {\n callback(response);\n }\n }).catch((error) => {\n console.log(this.wpstgObject.i18n['somethingWentWrong'], error);\n });\n }\n}\n","'use strict';\n\n/**\n * This is a namespaced port of https://github.com/tristen/hoverintent,\n * with slight modification to accept selector with dynamically added element in dom,\n * instead of just already present element.\n *\n * @param {HTMLElement} parent\n * @param {string} selector\n * @param {CallableFunction} onOver\n * @param {CallableFunction} onOut\n *\n * @return {object}\n */\nexport default function(parent, selector, onOver, onOut) {\n let x; let y; let pX; let pY;\n let mouseOver = false;\n let focused = false;\n const h = {};\n let state = 0;\n let timer = 0;\n\n let options = {\n sensitivity: 7,\n interval: 100,\n timeout: 0,\n handleFocus: false,\n };\n\n function delay(el, e) {\n if (timer) {\n timer = clearTimeout(timer);\n }\n\n state = 0;\n return focused ? undefined : onOut(el, e);\n }\n\n function tracker(e) {\n x = e.clientX;\n y = e.clientY;\n }\n\n function compare(el, e) {\n if (timer) timer = clearTimeout(timer);\n if ((Math.abs(pX - x) + Math.abs(pY - y)) < options.sensitivity) {\n state = 1;\n return focused ? undefined : onOver(el, e);\n } else {\n pX = x;\n pY = y;\n timer = setTimeout(function() {\n compare(el, e);\n }, options.interval);\n }\n }\n\n // Public methods\n h.options = function(opt) {\n const focusOptionChanged = opt.handleFocus !== options.handleFocus;\n options = Object.assign({}, options, opt);\n if (focusOptionChanged) {\n options.handleFocus ? addFocus() : removeFocus();\n }\n\n return h;\n };\n\n function dispatchOver(el, e) {\n mouseOver = true;\n if (timer) {\n timer = clearTimeout(timer);\n }\n\n el.removeEventListener('mousemove', tracker, false);\n\n if (state !== 1) {\n pX = e.clientX;\n pY = e.clientY;\n\n el.addEventListener('mousemove', tracker, false);\n\n timer = setTimeout(function() {\n compare(el, e);\n }, options.interval);\n }\n\n return this;\n }\n\n /**\n * Newly added method,\n * A wrapper around dispatchOver to support dynamically added elements to dom\n */\n function onMouseOver(event) {\n if (event.target.matches(selector + ', ' + selector + ' *')) {\n dispatchOver(event.target.closest(selector), event);\n }\n };\n\n function dispatchOut(el, e) {\n mouseOver = false;\n if (timer) {\n timer = clearTimeout(timer);\n }\n\n el.removeEventListener('mousemove', tracker, false);\n\n if (state === 1) {\n timer = setTimeout(function() {\n delay(el, e);\n }, options.timeout);\n }\n\n return this;\n }\n\n /**\n * Newly added method,\n * A wrapper around dispatchOut to support dynamically added elements to dom\n */\n function onMouseOut(event) {\n if (event.target.matches(selector + ', ' + selector + ' *')) {\n dispatchOut(event.target.closest(selector), event);\n }\n };\n\n function dispatchFocus(el, e) {\n if (!mouseOver) {\n focused = true;\n onOver(el, e);\n }\n }\n\n /**\n * Newly added method,\n * A wrapper around dispatchFocus to support dynamically added elements to dom\n */\n function onFocus(event) {\n if (event.target.matches(selector + ', ' + selector + ' *')) {\n dispatchFocus(event.target.closest(selector), event);\n }\n };\n\n function dispatchBlur(el, e) {\n if (!mouseOver && focused) {\n focused = false;\n onOut(el, e);\n }\n }\n\n /**\n * Newly added method,\n * A wrapper around dispatchBlur to support dynamically added elements to dom\n */\n function onBlur(event) {\n if (event.target.matches(selector + ', ' + selector + ' *')) {\n dispatchBlur(event.target.closest(selector), event);\n }\n };\n\n /**\n * Modified to support dynamically added element\n */\n function addFocus() {\n parent.addEventListener('focus', onFocus, false);\n parent.addEventListener('blur', onBlur, false);\n }\n\n /**\n * Modified to support dynamically added element\n */\n function removeFocus() {\n parent.removeEventListener('focus', onFocus, false);\n parent.removeEventListener('blur', onBlur, false);\n }\n\n /**\n * Modified to support dynamically added element\n */\n h.remove = function() {\n if (!parent) {\n return;\n }\n\n parent.removeEventListener('mouseover', onMouseOver, false);\n parent.removeEventListener('mouseout', onMouseOut, false);\n removeFocus();\n };\n\n /**\n * Modified to support dynamically added element\n */\n if (parent) {\n parent.addEventListener('mouseover', onMouseOver, false);\n parent.addEventListener('mouseout', onMouseOut, false);\n }\n\n return h;\n};\n","import wpstgHoverIntent from './modules/wpstg-hover-intent';\n\nexport default (function($) {\n const WPStagingCommon = {\n continueErrorHandle: true,\n cache: {\n elements: [],\n get: function(selector) {\n // It is already cached!\n if ($.inArray(selector, this.elements) !== -1) {\n return this.elements[selector];\n }\n\n // Create cache and return\n this.elements[selector] = $(selector);\n\n return this.elements[selector];\n },\n refresh: function(selector) {\n selector.elements[selector] = $(selector);\n },\n },\n listenTooltip: function() {\n wpstgHoverIntent(document, '.wpstg--tooltip', function(target, event) {\n target.querySelector('.wpstg--tooltiptext').style.visibility = 'visible';\n }, function(target, event) {\n target.querySelector('.wpstg--tooltiptext').style.visibility = 'hidden';\n });\n },\n isEmpty: function(obj) {\n for (const prop in obj) {\n if (obj.hasOwnProperty(prop)) {\n return false;\n }\n }\n\n return true;\n },\n // Get the custom themed Swal Modal for WP Staging\n // Easy to maintain now in one place now\n getSwalModal: function(isContentCentered = false, customClasses = {}) {\n // common style for all swal modal used in WP Staging\n const defaultCustomClasses = {\n confirmButton: 'wpstg--btn--confirm wpstg-blue-primary wpstg-button wpstg-link-btn wpstg-100-width',\n cancelButton: 'wpstg--btn--cancel wpstg-blue-primary wpstg-link-btn wpstg-100-width',\n actions: 'wpstg--modal--actions',\n popup: isContentCentered ? 'wpstg-swal-popup centered-modal' : 'wpstg-swal-popup',\n };\n\n // If a attribute exists in both default and additional attributes,\n // The class(es) of the additional attribute will overrite the default one.\n const options = {\n customClass: Object.assign(defaultCustomClasses, customClasses),\n buttonsStyling: false,\n reverseButtons: true,\n showClass: {\n popup: 'wpstg--swal2-show wpstg-swal-show',\n },\n };\n\n return wpstgSwal.mixin(options);\n },\n showSuccessModal: function(htmlContent) {\n this.getSwalModal().fire({\n showConfirmButton: false,\n showCancelButton: true,\n cancelButtonText: 'OK',\n icon: 'success',\n title: 'Success!',\n html: '<div class=\"wpstg--grey\" style=\"text-align: left; margin-top: 8px;\">' + htmlContent + '</div>',\n });\n },\n showWarningModal: function(htmlContent) {\n this.getSwalModal().fire({\n showConfirmButton: false,\n showCancelButton: true,\n cancelButtonText: 'OK',\n icon: 'warning',\n title: '',\n html: '<div class=\"wpstg--grey\" style=\"text-align: left; margin-top: 8px;\">' + htmlContent + '</div>',\n });\n },\n showErrorModal: function(htmlContent) {\n this.getSwalModal().fire({\n showConfirmButton: false,\n showCancelButton: true,\n cancelButtonText: 'OK',\n icon: 'error',\n title: 'Error!',\n html: '<div class=\"wpstg--grey\" style=\"text-align: left; margin-top: 8px;\">' + htmlContent + '</div>',\n });\n },\n getSwalContainer: function() {\n return wpstgSwal.getContainer();\n },\n closeSwalModal: function() {\n wpstgSwal.close();\n },\n /**\n * Treats a default response object generated by WordPress's\n * wp_send_json_success() or wp_send_json_error() functions in\n * PHP, parses it in JavaScript, and either throws if it's an error,\n * or returns the data if the response is successful.\n *\n * @param {object} response\n * @return {*}\n */\n getDataFromWordPressResponse(response) {\n if (typeof response !== 'object') {\n throw new Error('Unexpected response (ERR 1341)');\n }\n\n if (!response.hasOwnProperty('success')) {\n throw new Error('Unexpected response (ERR 1342)');\n }\n\n if (!response.hasOwnProperty('data')) {\n throw new Error('Unexpected response (ERR 1343)');\n }\n\n if (response.success === false) {\n if (response.data instanceof Array && response.data.length > 0) {\n throw new Error(response.data.shift());\n } else {\n throw new Error('Response was not successful');\n }\n } else {\n // Successful response. Return the data.\n return response.data;\n }\n },\n isLoading: function(isLoading) {\n if (!isLoading || isLoading === false) {\n WPStagingCommon.cache.get('.wpstg-loader').hide();\n } else {\n WPStagingCommon.cache.get('.wpstg-loader').show();\n }\n },\n /**\n * Convert the given url to make it slug compatible\n * @param {string} url\n */\n slugify: function(url) {\n return url.toString()\n .toLowerCase()\n .normalize('NFD')\n .replace(/[\\u0300-\\u036f]/g, '')\n .replace(/\\s+/g, '-')\n .replace(/&/g, '-and-')\n .replace(/[^a-z0-9\\-]/g, '')\n .replace(/-+/g, '-')\n .replace(/^-*/, '')\n .replace(/-*$/, '')\n ;\n },\n showAjaxFatalError: function(response, prependMessage, appendMessage) {\n prependMessage = prependMessage ? prependMessage + '<br/><br/>' : 'Something went wrong! <br/><br/>';\n appendMessage = appendMessage ? appendMessage + '<br/><br/>' : '<br/><br/>Please try the <a href=\\'https://wp-staging.com/docs/wp-staging-settings-for-small-servers/\\' target=\\'_blank\\'>WP Staging Small Server Settings</a> or submit an error report and contact us.';\n\n if (response === false) {\n WPStagingCommon.showError(prependMessage + ' Error: No response.' + appendMessage);\n window.removeEventListener('beforeunload', WPStaging.warnIfClosingDuringProcess);\n return;\n }\n\n if (typeof response.error !== 'undefined' && response.error) {\n WPStagingCommon.showError(prependMessage + ' Error: ' + response.message + appendMessage);\n window.removeEventListener('beforeunload', WPStaging.warnIfClosingDuringProcess);\n return;\n }\n },\n handleFetchErrors: function(response) {\n if (!response.ok) {\n WPStagingCommon.showError('Error: ' + response.status + ' - ' + response.statusText + '. Please try again or contact support.');\n }\n return response;\n },\n showError: function(message) {\n WPStagingCommon.cache.get('#wpstg-try-again').css('display', 'inline-block');\n WPStagingCommon.cache.get('#wpstg-cancel-cloning').text('Reset');\n WPStagingCommon.cache.get('#wpstg-resume-cloning').show();\n WPStagingCommon.cache.get('#wpstg-error-wrapper').show();\n WPStagingCommon.cache.get('#wpstg-error-details').show().html(message);\n WPStagingCommon.cache.get('#wpstg-removing-clone').removeClass('loading');\n WPStagingCommon.cache.get('.wpstg-loader').hide();\n $('.wpstg--modal--process--generic-problem').show().html(message);\n },\n resetErrors: function() {\n WPStagingCommon.cache.get('#wpstg-error-details').hide().html('');\n },\n /**\n * Ajax Requests\n * @param {Object} data\n * @param {Function} callback\n * @param {string} dataType\n * @param {bool} showErrors\n * @param {int} tryCount\n * @param {float} incrementRatio\n * @param errorCallback\n */\n ajax: function(data, callback, dataType, showErrors, tryCount, incrementRatio = null, errorCallback = null) {\n if ('undefined' === typeof (dataType)) {\n dataType = 'json';\n }\n\n if (false !== showErrors) {\n showErrors = true;\n }\n\n tryCount = 'undefined' === typeof (tryCount) ? 0 : tryCount;\n\n const retryLimit = 10;\n\n let retryTimeout = 10000 * tryCount;\n\n incrementRatio = parseInt(incrementRatio);\n if (!isNaN(incrementRatio)) {\n retryTimeout *= incrementRatio;\n }\n\n $.ajax({\n url: ajaxurl + '?action=wpstg_processing&_=' + (Date.now() / 1000),\n type: 'POST',\n dataType: dataType,\n cache: false,\n data: data,\n error: function(xhr, textStatus, errorThrown) {\n console.log(xhr.status + ' ' + xhr.statusText + '---' + textStatus);\n\n if (typeof (errorCallback) === 'function') {\n // Custom error handler\n errorCallback(xhr, textStatus, errorThrown);\n\n if (!WPStagingCommon.continueErrorHandle) {\n // Reset state\n WPStagingCommon.continueErrorHandle = true;\n\n return;\n }\n }\n\n // Default error handler\n tryCount++;\n if (tryCount <= retryLimit) {\n setTimeout(function() {\n WPStagingCommon.ajax(data, callback, dataType, showErrors, tryCount, incrementRatio);\n return;\n }, retryTimeout);\n } else {\n const errorCode = 'undefined' === typeof (xhr.status) ? 'Unknown' : xhr.status;\n WPStagingCommon.showError(\n 'Fatal Error: ' + errorCode + ' Please try the <a href=\\'https://wp-staging.com/docs/wp-staging-settings-for-small-servers/\\' target=\\'_blank\\'>WP Staging Small Server Settings</a> or submit an error report and contact us.',\n );\n }\n },\n success: function(data) {\n if ('function' === typeof (callback)) {\n callback(data);\n }\n },\n statusCode: {\n 404: function() {\n if (tryCount >= retryLimit) {\n WPStagingCommon.showError('Error 404 - Can\\'t find ajax request URL! Please try the <a href=\\'https://wp-staging.com/docs/wp-staging-settings-for-small-servers/\\' target=\\'_blank\\'>WP Staging Small Server Settings</a> or submit an error report and contact us.');\n }\n },\n 500: function() {\n if (tryCount >= retryLimit) {\n WPStagingCommon.showError('Fatal Error 500 - Internal server error while processing the request! Please try the <a href=\\'https://wp-staging.com/docs/wp-staging-settings-for-small-servers/\\' target=\\'_blank\\'>WP Staging Small Server Settings</a> or submit an error report and contact us.');\n }\n },\n 504: function() {\n if (tryCount > retryLimit) {\n WPStagingCommon.showError('Error 504 - It looks like your server is rate limiting ajax requests. Please try to resume after a minute. If this still not works try the <a href=\\'https://wp-staging.com/docs/wp-staging-settings-for-small-servers/\\' target=\\'_blank\\'>WP Staging Small Server Settings</a> or submit an error report and contact us.\\n\\ ');\n }\n },\n 502: function() {\n if (tryCount >= retryLimit) {\n WPStagingCommon.showError('Error 502 - It looks like your server is rate limiting ajax requests. Please try to resume after a minute. If this still not works try the <a href=\\'https://wp-staging.com/docs/wp-staging-settings-for-small-servers/\\' target=\\'_blank\\'>WP Staging Small Server Settings</a> or submit an error report and contact us.\\n\\ ');\n }\n },\n 503: function() {\n if (tryCount >= retryLimit) {\n WPStagingCommon.showError('Error 503 - It looks like your server is rate limiting ajax requests. Please try to resume after a minute. If this still not works try the <a href=\\'https://wp-staging.com/docs/wp-staging-settings-for-small-servers/\\' target=\\'_blank\\'>WP Staging Small Server Settings</a> or submit an error report and contact us.\\n\\ ');\n }\n },\n 429: function() {\n if (tryCount >= retryLimit) {\n WPStagingCommon.showError('Error 429 - It looks like your server is rate limiting ajax requests. Please try to resume after a minute. If this still not works try the <a href=\\'https://wp-staging.com/docs/wp-staging-settings-for-small-servers/\\' target=\\'_blank\\'>WP Staging Small Server Settings</a> or submit an error report and contact us.\\n\\ ');\n }\n },\n 403: function() {\n if (tryCount >= retryLimit) {\n WPStagingCommon.showError('Refresh page or login again! The process should be finished successfully. \\n\\ ');\n }\n },\n },\n });\n },\n };\n\n return WPStagingCommon;\n})(jQuery);\n","\nimport * as dom from './wpstg-dom-utils.js';\nimport WpstgDirectoryNavigation from './wpstg-directory-navigation.js';\nimport WpstgExcludeFilters from './wpstg-exclude-filters.js';\nimport WpstgModal from './wpstg-modal.js';\nimport WPStagingCommon from './../wpstg.js';\n\n/**\n * Manage RESET MODAL\n */\nexport default class WpstgResetModal {\n constructor(\n cloneID,\n workflowSelector = '#wpstg-workflow',\n fetchExcludeSettingsAction = 'wpstg_clone_excludes_settings',\n modalErrorAction = 'wpstg_modal_error',\n wpstgObject = wpstg,\n ) {\n this.cloneID = cloneID;\n this.workflow = dom.qs(workflowSelector);\n this.wpstgObject = wpstgObject;\n this.fetchExcludeSettingsAction = fetchExcludeSettingsAction;\n this.modalErrorAction = modalErrorAction;\n this.resetButtonClass = 'wpstg-confirm-reset-clone';\n this.resetModalContainerClass = 'wpstg-reset-confirmation';\n this.resetTabSelector = '.wpstg-reset-exclude-tab';\n this.directoryNavigator = null;\n this.excludeFilters = null;\n this.isAllTablesChecked = true;\n }\n\n addEvents() {\n const resetModalContainer = dom.qs('.' + this.resetModalContainerClass);\n if (resetModalContainer === null) {\n console.log('Exit');\n return;\n }\n\n dom.addEvent(resetModalContainer, 'click', this.resetTabSelector, (target) => {\n this.toggleContent(target);\n });\n\n dom.addEvent(resetModalContainer, 'click', '.wpstg-button-select', () => {\n this.selectDefaultTables();\n });\n\n dom.addEvent(resetModalContainer, 'click', '.wpstg-button-unselect', () => {\n this.toggleTableSelection();\n });\n\n dom.addEvent(resetModalContainer, 'click', '.wpstg-expand-dirs', (target, event) => {\n event.preventDefault();\n this.toggleDirectoryNavigation(target);\n });\n\n dom.addEvent(resetModalContainer, 'change', 'input.wpstg-check-dir', (target) => {\n this.updateDirectorySelection(target);\n });\n }\n\n init() {\n this.addEvents();\n }\n\n toggleContent(target) {\n const resetModalContainer = dom.qs('.' + this.resetModalContainerClass);\n const contentId = target.getAttribute('data-id');\n const tabTriangle = target.querySelector('.wpstg-tab-triangle');\n const isCollapsed = target.getAttribute('data-collapsed', 'true');\n const content = dom.qs(contentId);\n if (isCollapsed === 'true') {\n if (resetModalContainer.classList.contains('has-collapsible-open')) {\n resetModalContainer.classList.add('has-collapsible-open-2');\n } else {\n resetModalContainer.classList.add('has-collapsible-open');\n }\n\n dom.slideDown(content);\n tabTriangle.style.transform = 'rotate(90deg)';\n target.setAttribute('data-collapsed', 'false');\n } else {\n if (resetModalContainer.classList.contains('has-collapsible-open-2')) {\n resetModalContainer.classList.remove('has-collapsible-open-2');\n } else {\n resetModalContainer.classList.remove('has-collapsible-open');\n }\n\n dom.slideUp(content);\n tabTriangle.style.removeProperty('transform');\n target.setAttribute('data-collapsed', 'true');\n }\n }\n\n /**\n * Show Swal alert with loader and send ajax request to fetch content of alert.\n * @return Promise\n */\n showModal() {\n const swalPromise = this.loadModal();\n this.init();\n this.fetchCloneExcludes();\n return swalPromise;\n }\n\n loadModal() {\n return WPStagingCommon.getSwalModal(false, {\n confirmButton: this.resetButtonClass + ' wpstg-confirm-reset-clone wpstg--btn--confirm wpstg-blue-primary wpstg-button wpstg-link-btn',\n container: this.resetModalContainerClass + ' wpstg-swal2-container wpstg-swal2-loading',\n }).fire({\n title: '',\n icon: 'warning',\n html: this.getAjaxLoader(),\n width: '400px',\n focusConfirm: false,\n confirmButtonText: this.wpstgObject.i18n.resetClone,\n showCancelButton: true,\n });\n }\n\n fetchCloneExcludes() {\n this.error = null;\n // send ajax request and fetch preserved exclude settings\n fetch(this.wpstgObject.ajaxUrl, {\n method: 'POST',\n credentials: 'same-origin',\n body: new URLSearchParams({\n action: this.fetchExcludeSettingsAction,\n accessToken: this.wpstgObject.accessToken,\n nonce: this.wpstgObject.nonce,\n clone: this.cloneID,\n job: 'resetting',\n }),\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n },\n }).then((response) => {\n if (response.ok) {\n return response.json();\n }\n\n return Promise.reject(response);\n }).then((data) => {\n if (!data.success) {\n const errorModal = new WpstgModal(this.modalErrorAction, this.wpstgObject);\n errorModal.show(Object.assign({\n title: 'Error',\n icon: 'error',\n html: this.wpstgObject.i18n['somethingWentWrong'],\n width: '500px',\n confirmButtonText: 'Ok',\n showCancelButton: false,\n customClass: {\n confirmButton: 'wpstg--btn--confirm wpstg-blue-primary wpstg-button wpstg-link-btn',\n cancelButton: 'wpstg--btn--cancel wpstg-blue-primary wpstg-link-btn',\n actions: 'wpstg--modal--actions',\n popup: 'wpstg-swal-popup centered-modal',\n },\n buttonsStyling: false,\n reverseButtons: true,\n }, data.swalOptions), {\n type: data.type,\n });\n\n return;\n }\n\n const modal = dom.qs('.wpstg-reset-confirmation');\n modal.classList.remove('wpstg-swal2-loading');\n modal.querySelector('.wpstg--swal2-popup').style.width = '500px';\n modal.querySelector('.wpstg--swal2-content').innerHTML = data.html;\n this.directoryNavigator = new WpstgDirectoryNavigation();\n this.excludeFilters = new WpstgExcludeFilters();\n }).catch((error) => {\n this.renderError({\n 'html': this.wpstgObject.i18n['somethingWentWrong'] + ' ' + error,\n });\n });\n }\n\n getDirectoryNavigator() {\n return this.directoryNavigator;\n }\n\n getExcludeFilters() {\n return this.excludeFilters;\n }\n\n getAjaxLoader() {\n return '<div class=\"wpstg-swal2-ajax-loader\"><img src=\"' + this.wpstgObject.wpstgIcon + '\" /></div>';\n }\n\n toggleDirectoryNavigation(element) {\n const cbElement = element.previousSibling;\n if (cbElement.getAttribute('data-navigateable', 'false') === 'false') {\n return;\n }\n\n if (cbElement.getAttribute('data-scanned', 'false') === 'false') {\n return;\n }\n\n const subDirectories = dom.getNextSibling(element, '.wpstg-subdir');\n\n if (subDirectories.style.display === 'none') {\n dom.slideDown(subDirectories);\n } else {\n dom.slideUp(subDirectories);\n }\n }\n\n updateDirectorySelection(element) {\n const parent = element.parentElement;\n if (element.checked) {\n dom.getParents(parent, '.wpstg-dir').forEach((parElem) => {\n for (let i = 0; i < parElem.children.length; i++) {\n if (parElem.children[i].matches('.wpstg-check-dir')) {\n parElem.children[i].checked = true;\n }\n }\n });\n parent.querySelectorAll('.wpstg-expand-dirs').forEach((x) => {\n x.classList.remove('disabled');\n });\n parent.querySelectorAll('.wpstg-subdir .wpstg-check-dir').forEach((x) => {\n x.checked = true;\n });\n } else {\n parent.querySelectorAll('.wpstg-expand-dirs, .wpstg-check-subdirs').forEach((x) => {\n x.classList.add('disabled');\n });\n parent.querySelectorAll('.wpstg-dir .wpstg-check-dir').forEach((x) => {\n x.checked = false;\n });\n }\n }\n\n selectDefaultTables() {\n const resetModalContainer = dom.qs('.' + this.resetModalContainerClass);\n const options = resetModalContainer.querySelectorAll('#wpstg_select_tables_cloning .wpstg-db-table');\n const multisitePattern = '^' + this.wpstgObject.tblprefix + '([^0-9])_*';\n const singleSitePattern = '^' + this.wpstgObject.tblprefix;\n options.forEach((option) => {\n const name = option.getAttribute('name', '');\n if (this.wpstgObject.isMultisite === '1' && name.match(multisitePattern)) {\n option.setAttribute('selected', 'selected');\n } else if (this.wpstgObject.isMultisite === '' && name.match(singleSitePattern)) {\n option.setAttribute('selected', 'selected');\n } else {\n option.removeAttribute('selected');\n }\n });\n }\n\n toggleTableSelection() {\n const resetModalContainer = dom.qs('.' + this.resetModalContainerClass);\n if (false === this.isAllTablesChecked) {\n resetModalContainer.querySelectorAll('#wpstg_select_tables_cloning .wpstg-db-table').forEach((option) => {\n option.setAttribute('selected', 'selected');\n });\n resetModalContainer.querySelector('.wpstg-button-unselect').innerHTML = 'Unselect All';\n // cache.get('.wpstg-db-table-checkboxes').prop('checked', true);\n this.isAllTablesChecked = true;\n } else {\n resetModalContainer.querySelectorAll('#wpstg_select_tables_cloning .wpstg-db-table').forEach((option) => {\n option.removeAttribute('selected');\n });\n resetModalContainer.querySelector('.wpstg-button-unselect').innerHTML = 'Select All';\n // cache.get('.wpstg-db-table-checkboxes').prop('checked', false);\n this.isAllTablesChecked = false;\n }\n }\n}\n","import * as dom from './wpstg-dom-utils.js';\n\n/**\n * Handle toggle of advance settings checkboxes\n */\nexport default class WpstgCloningAdvanceSettings {\n constructor(\n baseContainerSelector = '#wpstg-clonepage-wrapper',\n ) {\n this.baseContainer = dom.qs(baseContainerSelector);\n this.checkBoxSettingTogglerSelector = '.wpstg-toggle-advance-settings-section';\n this.init();\n }\n\n /**\n * Add events\n * @return {void}\n */\n addEvents() {\n if (this.baseContainer === null) {\n return;\n }\n\n dom.addEvent(this.baseContainer, 'change', this.checkBoxSettingTogglerSelector, (element) => {\n this.toggleSettings(element);\n });\n }\n\n /**\n * @return {void}\n */\n init() {\n this.addEvents();\n }\n\n /**\n * Expand/Collapse checkbox content on change\n * @return {void}\n */\n toggleSettings(element) {\n const target = dom.qs('#' + element.getAttribute('data-id'));\n if (element.checked) {\n dom.slideDown(target);\n } else {\n dom.slideUp(target);\n }\n }\n}\n","import * as dom from './wpstg-dom-utils.js';\n\nexport default class WpstgMainMenu {\n constructor() {\n this.activeTabClass = 'wpstg--tab--active';\n this.mainMenu();\n }\n\n mainMenu() {\n const tabHeader = dom.qs('.wpstg--tab--header');\n // Early bail if tab header is not available\n if (tabHeader === null) {\n return;\n }\n\n dom.addEvent(dom.qs('.wpstg--tab--header'), 'click', '.wpstg-button', (element) => {\n const $this = element;\n const target = $this.getAttribute('data-target');\n const targetElements = dom.all(target);\n const menuItems = dom.all('.wpstg--tab--header a[data-target]');\n const contents = dom.all('.wpstg--tab--contents > .wpstg--tab--content');\n\n contents.forEach((content) => {\n // active tab class is without the css dot class prefix\n if (content.matches('.' + this.activeTabClass + ':not(' + target + ')')) {\n content.classList.remove(this.activeTabClass);\n }\n });\n\n menuItems.forEach((menuItem) => {\n if (menuItem !== $this) {\n menuItem.classList.remove(this.activeTabClass);\n }\n });\n\n $this.classList.add(this.activeTabClass);\n\n targetElements.forEach((targetElement) => {\n targetElement.classList.add(this.activeTabClass);\n });\n\n if ('#wpstg--tab--backup' === target) {\n window.dispatchEvent(new Event('backups-tab'));\n }\n });\n };\n}\n","import WpstgCloneStaging from './modules/wpstg-clone-staging.js';\nimport WpstgDirectoryNavigation from './modules/wpstg-directory-navigation.js';\nimport WpstgExcludeFilters from './modules/wpstg-exclude-filters.js';\nimport WpstgResetModal from './modules/wpstg-reset-modal.js';\nimport WpstgModal from './modules/wpstg-modal.js';\nimport WpstgCloningAdvanceSettings from './modules/wpstg-cloning-advance-settings.js';\nimport WpstgMainMenu from './modules/wpstg-main-menu.js';\nimport WPStagingCommon from './wpstg.js';\n\nvar WPStaging = (function($) {\n const that = {\n isCancelled: false,\n isFinished: false,\n getLogs: false,\n time: 1,\n executionTime: false,\n progressBar: 0,\n cloneExcludeFilters: null,\n directoryNavigator: null,\n notyf: null,\n areAllTablesChecked: true,\n };\n const cache = {elements: []};\n let timeout; let ajaxSpinner;\n\n /**\n * Get / Set Cache for Selector\n * @param {String} selector\n * @return {*}\n */\n cache.get = function(selector) {\n // It is already cached!\n if ($.inArray(selector, cache.elements) !== -1) {\n return cache.elements[selector];\n }\n\n // Create cache and return\n cache.elements[selector] = jQuery(selector);\n\n return cache.elements[selector];\n };\n\n /**\n * Refreshes given cache\n * @param {String} selector\n */\n cache.refresh = function(selector) {\n selector.elements[selector] = jQuery(selector);\n };\n\n /**\n * Show and Log Error Message\n * @param {String} message\n */\n const showError = function(message) {\n cache.get('#wpstg-try-again').css('display', 'inline-block');\n cache.get('#wpstg-cancel-cloning').text('Reset');\n cache.get('#wpstg-resume-cloning').show();\n cache.get('#wpstg-error-wrapper').show();\n cache.get('#wpstg-error-details').show().html(message);\n cache.get('#wpstg-removing-clone').removeClass('loading');\n cache.get('.wpstg-loader').hide();\n $('.wpstg--modal--process--generic-problem').show().html(message);\n };\n\n /**\n * Show warning during cloning or push process when closing tab or browser, or changing page\n * @param {beforeunload} event\n * @return {null}\n */\n that.warnIfClosingDuringProcess = function(event) {\n // Only some browsers show the message below, most say something like \"Changes you made may not be saved\" (Chrome) or \"You have unsaved changes. Exit?\"\n event.returnValue = 'You MUST leave this window open while cloning/pushing. Please wait...';\n return null;\n };\n\n /**\n *\n * @param response the error object\n * @param prependMessage Overwrite default error message at beginning\n * @param appendMessage Overwrite default error message at end\n * @returns void\n */\n\n const showAjaxFatalError = function(response, prependMessage, appendMessage) {\n prependMessage = prependMessage ? prependMessage + '<br/><br/>' : 'Something went wrong! <br/><br/>';\n appendMessage = appendMessage ? appendMessage + '<br/><br/>' : '<br/><br/>Please try the <a href=\\'https://wp-staging.com/docs/wp-staging-settings-for-small-servers/\\' target=\\'_blank\\'>WP Staging Small Server Settings</a> or submit an error report and contact us.';\n\n if (response === false) {\n showError(prependMessage + ' Error: No response.' + appendMessage);\n window.removeEventListener('beforeunload', WPStaging.warnIfClosingDuringProcess);\n return;\n }\n\n if (typeof response.error !== 'undefined' && response.error) {\n console.error(response.message);\n showError(prependMessage + ' Error: ' + response.message + appendMessage);\n window.removeEventListener('beforeunload', WPStaging.warnIfClosingDuringProcess);\n return;\n }\n };\n\n /**\n *\n * @param response\n * @return {{ok}|*}\n */\n const handleFetchErrors = function(response) {\n if (!response.ok) {\n showError('Error: ' + response.status + ' - ' + response.statusText + '. Please try again or contact support.');\n }\n return response;\n };\n\n /** Hide and reset previous thrown visible errors */\n const resetErrors = function() {\n cache.get('#wpstg-error-details').hide().html('');\n };\n\n /**\n * Common Elements\n */\n const elements = function() {\n const $workFlow = cache.get('#wpstg-workflow');\n let urlSpinner = ajaxurl.replace('/admin-ajax.php', '') + '/images/spinner';\n let timer;\n\n if (2 < window.devicePixelRatio) {\n urlSpinner += '-2x';\n }\n\n urlSpinner += '.gif';\n\n ajaxSpinner = '<img src=\\'\\'' + urlSpinner + '\\' alt=\\'\\' class=\\'ajax-spinner general-spinner\\' />';\n\n const getBaseValues = function() {\n const path = $('#wpstg-use-target-dir').data('base-path');\n const uri = $('#wpstg-use-target-hostname').data('base-uri');\n return {\n path,\n };\n };\n\n $workFlow\n // Check / Un-check All Database Tables New\n .on('click', '.wpstg-button-unselect', function(e) {\n e.preventDefault();\n\n if (false === that.areAllTablesChecked) {\n cache.get('#wpstg_select_tables_cloning .wpstg-db-table').prop('selected', 'selected');\n cache.get('.wpstg-button-unselect').text('Unselect All');\n cache.get('.wpstg-db-table-checkboxes').prop('checked', true);\n that.areAllTablesChecked = true;\n } else {\n cache.get('#wpstg_select_tables_cloning .wpstg-db-table').prop('selected', false);\n cache.get('.wpstg-button-unselect').text('Select All');\n cache.get('.wpstg-db-table-checkboxes').prop('checked', false);\n that.areAllTablesChecked = false;\n }\n })\n\n /**\n * Select tables with certain tbl prefix | NEW\n * @param obj e\n * @returns {undefined}\n */\n .on('click', '.wpstg-button-select', function(e) {\n e.preventDefault();\n $('#wpstg_select_tables_cloning .wpstg-db-table').each(function() {\n if (wpstg.isMultisite == 1) {\n if ($(this).attr('name').match('^' + wpstg.tblprefix + '([^0-9])_*')) {\n $(this).prop('selected', 'selected');\n } else {\n $(this).prop('selected', false);\n }\n }\n\n if (wpstg.isMultisite == 0) {\n if ($(this).attr('name').match('^' + wpstg.tblprefix)) {\n $(this).prop('selected', 'selected');\n } else {\n $(this).prop('selected', false);\n }\n }\n });\n })\n // Expand Directories\n .on('click', '.wpstg-expand-dirs', function(e) {\n e.preventDefault();\n\n const $this = $(this);\n\n $this.siblings('.wpstg-subdir').slideToggle();\n })\n // When a directory checkbox is Selected\n .on('change', 'input.wpstg-check-dir', function() {\n const $directory = $(this).parent('.wpstg-dir');\n\n if (this.checked) {\n $directory.parents('.wpstg-dir').children('.wpstg-check-dir').prop('checked', true);\n $directory.find('.wpstg-expand-dirs').removeClass('disabled');\n $directory.find('.wpstg-subdir .wpstg-check-dir').prop('checked', true);\n } else {\n $directory.find('.wpstg-dir .wpstg-check-dir').prop('checked', false);\n $directory.find('.wpstg-expand-dirs, .wpstg-check-subdirs').addClass('disabled');\n $directory.find('.wpstg-check-subdirs').data('action', 'check').text('check');\n }\n })\n // When a directory name is Selected\n .on('change', 'href.wpstg-check-dir', function() {\n const $directory = $(this).parent('.wpstg-dir');\n\n if (this.checked) {\n $directory.parents('.wpstg-dir').children('.wpstg-check-dir').prop('checked', true);\n $directory.find('.wpstg-expand-dirs').removeClass('disabled');\n $directory.find('.wpstg-subdir .wpstg-check-dir').prop('checked', true);\n } else {\n $directory.find('.wpstg-dir .wpstg-check-dir').prop('checked', false);\n $directory.find('.wpstg-expand-dirs, .wpstg-check-subdirs').addClass('disabled');\n $directory.find('.wpstg-check-subdirs').data('action', 'check').text('check');\n }\n })\n // Check the max length of the clone name and if the clone name already exists\n .on('keyup', '#wpstg-new-clone-id', function() {\n // Hide previous errors\n document.getElementById('wpstg-error-details').style.display = 'none';\n\n // This request was already sent, clear it up!\n if ('number' === typeof (timer)) {\n clearInterval(timer);\n }\n\n // Early bail if site name is empty\n if (this.value === undefined || this.value === '') {\n cache.get('#wpstg-new-clone-id').removeClass('wpstg-error-input');\n cache.get('#wpstg-start-cloning').removeAttr('disabled');\n cache.get('#wpstg-clone-id-error').text('').hide();\n return;\n }\n\n // Convert the site name to directory name (slugify the site name to create directory name)\n const cloneDirectoryName = WPStagingCommon.slugify(this.value);\n\n timer = setTimeout(\n function() {\n ajax(\n {\n action: 'wpstg_check_clone',\n accessToken: wpstg.accessToken,\n nonce: wpstg.nonce,\n directoryName: cloneDirectoryName,\n },\n function(response) {\n if (response.status === 'success') {\n cache.get('#wpstg-new-clone-id').removeClass('wpstg-error-input');\n cache.get('#wpstg-start-cloning').removeAttr('disabled');\n cache.get('#wpstg-clone-id-error').text('').hide();\n } else {\n cache.get('#wpstg-new-clone-id').addClass('wpstg-error-input');\n cache.get('#wpstg-start-cloning').prop('disabled', true);\n cache.get('#wpstg-clone-id-error').text(response.message).show();\n }\n },\n );\n },\n 500,\n );\n })\n // Restart cloning process\n .on('click', '#wpstg-start-cloning', function() {\n resetErrors();\n that.isCancelled = false;\n that.getLogs = false;\n that.progressBar = 0;\n })\n .on('input', '#wpstg-new-clone-id', function() {\n if ($('#wpstg-clone-directory').length < 1) {\n return;\n }\n\n const slug = WPStagingCommon.slugify(this.value);\n const $targetDir = $('#wpstg-use-target-dir');\n const $targetUri = $('#wpstg-use-target-hostname');\n let path = $targetDir.data('base-path');\n let uri = $targetUri.data('base-uri');\n\n if (path) {\n path = path.replace(/\\/+$/g, '') + '/' + slug + '/';\n }\n\n if (uri) {\n uri = uri.replace(/\\/+$/g, '') + '/' + slug;\n }\n\n\n $('.wpstg-use-target-dir--value').text(path);\n $('.wpstg-use-target-hostname--value').text(uri);\n\n $targetDir.attr('data-path', path);\n $targetUri.attr('data-uri', uri);\n $('#wpstg_clone_dir').attr('placeholder', path);\n $('#wpstg_clone_hostname').attr('placeholder', uri);\n })\n .on('input', '#wpstg_clone_hostname', function() {\n if ($(this).val() === '' || validateTargetHost()) {\n $('#wpstg_clone_hostname_error').remove();\n return;\n }\n if (!validateTargetHost() && !$('#wpstg_clone_hostname_error').length) {\n $('#wpstg-clone-directory tr:last-of-type').after('<tr><td>&nbsp;</td><td><p id=\"wpstg_clone_hostname_error\" style=\"color: red;\">&nbsp;Invalid host name. Please provide it in a format like http://example.com</p></td></tr>');\n }\n })\n ;\n\n cloneActions();\n };\n\n /* @returns {boolean} */\n var validateTargetHost = function() {\n const the_domain = $('#wpstg_clone_hostname').val();\n\n if (the_domain === '') {\n return true;\n }\n\n const reg = /^http(s)?:\\/\\/.*$/;\n if (reg.test(the_domain) === false) {\n return false;\n }\n return true;\n };\n\n /**\n * Clone actions\n */\n var cloneActions = function() {\n const $workFlow = cache.get('#wpstg-workflow');\n\n $workFlow\n // Cancel cloning\n .on('click', '#wpstg-cancel-cloning', function() {\n if (!confirm('Are you sure you want to cancel cloning process?')) {\n return false;\n }\n\n const $this = $(this);\n\n $('#wpstg-try-again, #wpstg-home-link').hide();\n $this.prop('disabled', true);\n\n that.isCancelled = true;\n that.progressBar = 0;\n\n $('#wpstg-processing-status').text('Please wait...this can take up a while.');\n $('.wpstg-loader, #wpstg-show-log-button').hide();\n\n $this.parent().append(ajaxSpinner);\n\n cancelCloning();\n })\n // Resume cloning\n .on('click', '#wpstg-resume-cloning', function() {\n resetErrors();\n const $this = $(this);\n\n $('#wpstg-try-again, #wpstg-home-link').hide();\n\n that.isCancelled = false;\n\n $('#wpstg-processing-status').text('Try to resume cloning process...');\n $('#wpstg-error-details').hide();\n $('.wpstg-loader').show();\n\n $this.parent().append(ajaxSpinner);\n\n that.startCloning();\n })\n // Cancel update cloning\n .on('click', '#wpstg-cancel-cloning-update', function() {\n resetErrors();\n\n const $this = $(this);\n\n $('#wpstg-try-again, #wpstg-home-link').hide();\n $this.prop('disabled', true);\n\n that.isCancelled = true;\n\n $('#wpstg-cloning-result').text('Please wait...this can take up a while.');\n $('.wpstg-loader, #wpstg-show-log-button').hide();\n\n $this.parent().append(ajaxSpinner);\n\n cancelCloningUpdate();\n })\n // Restart cloning\n .on('click', '#wpstg-restart-cloning', function() {\n resetErrors();\n\n const $this = $(this);\n\n $('#wpstg-try-again, #wpstg-home-link').hide();\n $this.prop('disabled', true);\n\n that.isCancelled = true;\n\n $('#wpstg-cloning-result').text('Please wait...this can take up a while.');\n $('.wpstg-loader, #wpstg-show-log-button').hide();\n\n $this.parent().append(ajaxSpinner);\n\n restart();\n })\n // Delete clone - confirmation\n .on('click', '.wpstg-remove-clone[data-clone]', function(e) {\n resetErrors();\n e.preventDefault();\n\n const $existingClones = cache.get('#wpstg-existing-clones');\n\n $workFlow.removeClass('active');\n\n cache.get('.wpstg-loader').show();\n\n ajax(\n {\n action: 'wpstg_confirm_delete_clone',\n accessToken: wpstg.accessToken,\n nonce: wpstg.nonce,\n clone: $(this).data('clone'),\n },\n function(response) {\n cache.get('#wpstg-removing-clone').html(response);\n\n $existingClones.children('img').remove();\n\n cache.get('.wpstg-loader').hide();\n\n $('html, body').animate({\n // This logic is meant to be a \"scrollBottom\"\n scrollTop: $('#wpstg-remove-clone').offset().top - $(window).height() +\n $('#wpstg-remove-clone').height() + 50,\n }, 100);\n },\n 'HTML',\n );\n })\n // Delete clone - confirmed\n .on('click', '#wpstg-remove-clone', function(e) {\n resetErrors();\n e.preventDefault();\n\n cache.get('#wpstg-removing-clone').addClass('loading');\n\n cache.get('.wpstg-loader').show();\n\n deleteClone($(this).data('clone'));\n })\n // Cancel deleting clone\n .on('click', '#wpstg-cancel-removing', function(e) {\n e.preventDefault();\n $('.wpstg-clone').removeClass('active');\n cache.get('#wpstg-removing-clone').html('');\n })\n // Update\n .on('click', '.wpstg-execute-clone', function(e) {\n e.preventDefault();\n\n const clone = $(this).data('clone');\n\n $workFlow.addClass('loading');\n that.cloneExcludeFilters = null;\n ajax(\n {\n action: 'wpstg_scanning',\n clone: clone,\n accessToken: wpstg.accessToken,\n nonce: wpstg.nonce,\n },\n function(response) {\n if (response.length < 1) {\n showError(\n 'Something went wrong! Error: No response. Please try the <a href=\\'https://wp-staging.com/docs/wp-staging-settings-for-small-servers/\\' target=\\'_blank\\'>WP Staging Small Server Settings</a> or submit an error report and contact us.',\n );\n }\n\n const jsonResponse = tryParseJson(response);\n if (jsonResponse !== false && jsonResponse.success === false) {\n $workFlow.removeClass('loading');\n showErrorModal(jsonResponse);\n\n return;\n }\n\n $workFlow.removeClass('loading').html(response);\n // register check disk space function for clone update process.\n checkDiskSpace();\n that.directoryNavigator = new WpstgDirectoryNavigation('#wpstg-directories-listing', wpstg, that.notyf);\n that.cloneExcludeFilters = new WpstgExcludeFilters();\n that.switchStep(2);\n },\n 'HTML',\n );\n })\n // Reset Clone\n .on('click', '.wpstg-reset-clone', function(e) {\n e.preventDefault();\n const clone = $(this).data('clone');\n const resetModal = new WpstgResetModal(clone);\n const promise = resetModal.showModal();\n that.areAllTablesChecked = true;\n\n promise.then((result) => {\n if (result.value) {\n const dirNavigator = resetModal.getDirectoryNavigator();\n const exclFilters = resetModal.getExcludeFilters().getExcludeFilters();\n resetClone(clone, {\n includedTables: getIncludedTables(),\n excludeSizeRules: encodeURIComponent(exclFilters.sizes),\n excludeGlobRules: encodeURIComponent(exclFilters.globs),\n excludedDirectories: dirNavigator.getExcludedDirectories(),\n extraDirectories: dirNavigator.getExtraDirectoriesRootOnly(),\n });\n }\n });\n\n return;\n });\n };\n\n /**\n * Ajax Requests\n * @param Object data\n * @param Function callback\n * @param string dataType\n * @param bool showErrors\n * @param int tryCount\n * @param float incrementRatio\n */\n var ajax = function(data, callback, dataType, showErrors, tryCount, incrementRatio = null) {\n if ('undefined' === typeof (dataType)) {\n dataType = 'json';\n }\n\n if (false !== showErrors) {\n showErrors = true;\n }\n\n tryCount = 'undefined' === typeof (tryCount) ? 0 : tryCount;\n\n const retryLimit = 10;\n\n let retryTimeout = 10000 * tryCount;\n\n incrementRatio = parseInt(incrementRatio);\n if (!isNaN(incrementRatio)) {\n retryTimeout *= incrementRatio;\n }\n\n $.ajax({\n url: ajaxurl + '?action=wpstg_processing&_=' + (Date.now() / 1000),\n type: 'POST',\n dataType: dataType,\n cache: false,\n data: data,\n error: function(xhr, textStatus, errorThrown) {\n // try again after 10 seconds\n tryCount++;\n if (tryCount <= retryLimit) {\n setTimeout(function() {\n ajax(data, callback, dataType, showErrors, tryCount, incrementRatio);\n return;\n }, retryTimeout);\n } else {\n const errorCode = 'undefined' === typeof (xhr.status) ? 'Unknown' : xhr.status;\n showError(\n 'Fatal Error: ' + errorCode + ' Please try the <a href=\\'https://wp-staging.com/docs/wp-staging-settings-for-small-servers/\\' target=\\'_blank\\'>WP Staging Small Server Settings</a> or submit an error report and contact us.',\n );\n }\n },\n success: function(data) {\n if ('function' === typeof (callback)) {\n callback(data);\n }\n },\n statusCode: {\n 404: function() {\n if (tryCount >= retryLimit) {\n showError('Error 404 - Can\\'t find ajax request URL! Please try the <a href=\\'https://wp-staging.com/docs/wp-staging-settings-for-small-servers/\\' target=\\'_blank\\'>WP Staging Small Server Settings</a> or submit an error report and contact us.');\n }\n },\n 500: function() {\n if (tryCount >= retryLimit) {\n showError('Fatal Error 500 - Internal server error while processing the request! Please try the <a href=\\'https://wp-staging.com/docs/wp-staging-settings-for-small-servers/\\' target=\\'_blank\\'>WP Staging Small Server Settings</a> or submit an error report and contact us.');\n }\n },\n 504: function() {\n if (tryCount > retryLimit) {\n showError('Error 504 - It looks like your server is rate limiting ajax requests. Please try to resume after a minute. If this still not works try the <a href=\\'https://wp-staging.com/docs/wp-staging-settings-for-small-servers/\\' target=\\'_blank\\'>WP Staging Small Server Settings</a> or submit an error report and contact us.\\n\\ ');\n }\n },\n 502: function() {\n if (tryCount >= retryLimit) {\n showError('Error 502 - It looks like your server is rate limiting ajax requests. Please try to resume after a minute. If this still not works try the <a href=\\'https://wp-staging.com/docs/wp-staging-settings-for-small-servers/\\' target=\\'_blank\\'>WP Staging Small Server Settings</a> or submit an error report and contact us.\\n\\ ');\n }\n },\n 503: function() {\n if (tryCount >= retryLimit) {\n showError('Error 503 - It looks like your server is rate limiting ajax requests. Please try to resume after a minute. If this still not works try the <a href=\\'https://wp-staging.com/docs/wp-staging-settings-for-small-servers/\\' target=\\'_blank\\'>WP Staging Small Server Settings</a> or submit an error report and contact us.\\n\\ ');\n }\n },\n 429: function() {\n if (tryCount >= retryLimit) {\n showError('Error 429 - It looks like your server is rate limiting ajax requests. Please try to resume after a minute. If this still not works try the <a href=\\'https://wp-staging.com/docs/wp-staging-settings-for-small-servers/\\' target=\\'_blank\\'>WP Staging Small Server Settings</a> or submit an error report and contact us.\\n\\ ');\n }\n },\n 403: function() {\n if (tryCount >= retryLimit) {\n showError('Refresh page or login again! The process should be finished successfully. \\n\\ ');\n }\n },\n },\n });\n };\n\n /**\n * Next / Previous Step Clicks to Navigate Through Staging Job\n */\n const stepButtons = function() {\n const $workFlow = cache.get('#wpstg-workflow');\n\n $workFlow\n // Next Button\n .on('click', '.wpstg-next-step-link', function(e) {\n e.preventDefault();\n\n const $this = $(this);\n const isScan = false;\n\n if ($('#wpstg_clone_hostname').length && !validateTargetHost()) {\n $('#wpstg_clone_hostname').focus();\n return false;\n }\n\n if ($this.data('action') === 'wpstg_update' || $this.data('action') === 'wpstg_reset') {\n // Update / Reset Clone - confirmed\n let onlyUpdateMessage = '';\n if ($this.data('action') === 'wpstg_update') {\n onlyUpdateMessage = ' \\n\\nExclude all tables and folders you do not want to overwrite, first! \\n\\nDo not cancel the updating process! This can break your staging site. \\n\\n\\Create a backup of your staging website before you proceed.';\n }\n\n if (!confirm('STOP! This will overwrite your staging site with all selected data from the production site! This should be used only if you want to clone again your production site. Are you sure you want to do this?' + onlyUpdateMessage)) {\n return false;\n }\n }\n\n // Button is disabled\n if ($this.attr('disabled')) {\n return false;\n }\n\n if ($this.data('action') === 'wpstg_cloning') {\n // Verify External Database If Checked and Not Skipped\n if ($('#wpstg-ext-db').is(':checked')) {\n verifyExternalDatabase($this, $workFlow);\n return;\n }\n }\n\n proceedCloning($this, $workFlow);\n })\n // Previous Button\n .on('click', '.wpstg-prev-step-link', function(e) {\n e.preventDefault();\n cache.get('.wpstg-loader').removeClass('wpstg-finished');\n cache.get('.wpstg-loader').hide();\n loadOverview();\n });\n };\n\n /**\n * Get Included (Checked) Database Tables\n * @return {Array}\n */\n const getIncludedTables = function() {\n const includedTables = [];\n\n $('#wpstg_select_tables_cloning option:selected').each(function() {\n includedTables.push(this.value);\n });\n\n return includedTables;\n };\n\n /**\n * Get Excluded (Unchecked) Database Tables\n * Not used anymore!\n * @return {Array}\n */\n const getExcludedTables = function() {\n const excludedTables = [];\n\n $('.wpstg-db-table input:not(:checked)').each(function() {\n excludedTables.push(this.name);\n });\n\n return excludedTables;\n };\n\n /**\n * Verify External Database for Cloning\n */\n var verifyExternalDatabase = function($this, workflow) {\n cache.get('.wpstg-loader').show();\n ajax(\n {\n action: 'wpstg_database_verification',\n accessToken: wpstg.accessToken,\n nonce: wpstg.nonce,\n databaseUser: cache.get('#wpstg_db_username').val(),\n databasePassword: cache.get('#wpstg_db_password').val(),\n databaseServer: cache.get('#wpstg_db_server').val(),\n databaseDatabase: cache.get('#wpstg_db_database').val(),\n },\n function(response) {\n // Undefined Error\n if (false === response) {\n showError(\n 'Something went wrong! Error: No response.' +\n 'Please try again. If that does not help, ' +\n '<a href=\\'https://wp-staging.com/support/\\' target=\\'_blank\\'>open a support ticket</a> ',\n );\n cache.get('.wpstg-loader').hide();\n return;\n }\n\n // Throw Error\n if ('undefined' === typeof (response.success)) {\n showError(\n 'Something went wrong! Error: Invalid response.' +\n 'Please try again. If that does not help, ' +\n '<a href=\\'https://wp-staging.com/support/\\' target=\\'_blank\\'>open a support ticket</a> ',\n );\n cache.get('.wpstg-loader').hide();\n return;\n }\n\n if (response.success) {\n cache.get('.wpstg-loader').hide();\n proceedCloning($this, workflow);\n return;\n }\n\n if (response.error_type === 'comparison') {\n cache.get('.wpstg-loader').hide();\n let render = '<table style=\"width: 100%;\"><thead><tr><th>Property</th><th>Production DB</th><th>Staging DB</th><th>Status</th></tr></thead><tbody>';\n response.checks.forEach((x) => {\n let icon = '<i style=\"color: #00ff00\">✔</i>';\n if (x.production !== x.staging) {\n icon = '<i style=\"color: #ff0000\">❌</i>';\n }\n render += '<tr><td>' + x.name + '</td><td>' + x.production + '</td><td>' + x.staging + '</td><td>' + icon + '</td></tr>';\n });\n render += '</tbody></table><p>Note: Some mySQL properties do not match. You may proceed but the staging site may not work as expected.</p>';\n WPStagingCommon.getSwalModal().fire({\n title: 'Different Database Properties',\n icon: 'warning',\n html: render,\n width: '650px',\n focusConfirm: false,\n confirmButtonText: 'Proceed Anyway',\n showCancelButton: true,\n }).then(function(result) {\n if (result.value) {\n proceedCloning($this, workflow);\n }\n });\n return;\n }\n\n WPStagingCommon.getSwalModal(true).fire({\n title: 'Different Database Properties',\n icon: 'error',\n html: response.message,\n focusConfirm: true,\n confirmButtonText: 'Ok',\n showCancelButton: false,\n });\n cache.get('.wpstg-loader').hide();\n },\n 'json',\n false,\n );\n };\n\n /**\n * Get Cloning Step Data\n */\n const getCloningData = function() {\n if ('wpstg_cloning' !== that.data.action && 'wpstg_update' !== that.data.action && 'wpstg_reset' !== that.data.action) {\n return;\n }\n\n that.data.cloneID = new Date().getTime().toString();\n if ('wpstg_update' === that.data.action) {\n that.data.cloneID = $('#wpstg-new-clone-id').data('clone');\n }\n\n that.data.cloneName = $('#wpstg-new-clone-id').val() || that.data.cloneID;\n\n // Remove this to keep &_POST[] small otherwise mod_security will throw error 404\n // that.data.excludedTables = getExcludedTables();\n\n if (that.directoryNavigator !== null) {\n that.data.excludedDirectories = encodeURIComponent(that.directoryNavigator.getExcludedDirectories());\n that.data.extraDirectories = encodeURIComponent(that.directoryNavigator.getExtraDirectoriesRootOnly());\n }\n\n that.data.excludeGlobRules = '';\n that.data.excludeSizeRules = '';\n if (that.cloneExcludeFilters instanceof WpstgExcludeFilters) {\n const rules = that.cloneExcludeFilters.getExcludeFilters();\n that.data.excludeGlobRules = encodeURIComponent(rules.globs);\n that.data.excludeSizeRules = encodeURIComponent(rules.sizes);\n }\n\n that.data.includedTables = getIncludedTables();\n that.data.databaseServer = $('#wpstg_db_server').val();\n that.data.databaseUser = $('#wpstg_db_username').val();\n that.data.databasePassword = $('#wpstg_db_password').val();\n that.data.databaseDatabase = $('#wpstg_db_database').val();\n that.data.databasePrefix = $('#wpstg_db_prefix').val();\n const cloneDir = $('#wpstg_clone_dir').val();\n that.data.cloneDir = encodeURIComponent($.trim(cloneDir));\n that.data.cloneHostname = $('#wpstg_clone_hostname').val();\n that.data.emailsAllowed = $('#wpstg_allow_emails').is(':checked');\n that.data.uploadsSymlinked = $('#wpstg_symlink_upload').is(':checked');\n that.data.cleanPluginsThemes = $('#wpstg-clean-plugins-themes').is(':checked');\n that.data.cleanUploadsDir = $('#wpstg-clean-uploads').is(':checked');\n };\n\n var proceedCloning = function($this, workflow) {\n // Add loading overlay\n workflow.addClass('loading');\n\n // Prepare data\n that.data = {\n action: $this.data('action'),\n accessToken: wpstg.accessToken,\n nonce: wpstg.nonce,\n };\n\n // Cloning data\n getCloningData();\n\n sendCloningAjax(workflow);\n };\n\n var sendCloningAjax = function(workflow) {\n // Send ajax request\n ajax(\n that.data,\n function(response) {\n // Undefined Error\n if (false === response) {\n showError(\n 'Something went wrong!<br/><br/> Go to WP Staging > Settings and lower \\'File Copy Limit\\' and \\'DB Query Limit\\'. Also set \\'CPU Load Priority to low \\'' +\n 'and try again. If that does not help, ' +\n '<a href=\\'https://wp-staging.com/support/\\' target=\\'_blank\\'>open a support ticket</a> ',\n );\n }\n\n\n if (response.length < 1) {\n showError(\n 'Something went wrong! No response. Go to WP Staging > Settings and lower \\'File Copy Limit\\' and \\'DB Query Limit\\'. Also set \\'CPU Load Priority to low \\'' +\n 'and try again. If that does not help, ' +\n '<a href=\\'https://wp-staging.com/support/\\' target=\\'_blank\\'>open a support ticket</a> ',\n );\n }\n\n const jsonResponse = tryParseJson(response);\n if (jsonResponse !== false && jsonResponse.success === false) {\n workflow.removeClass('loading');\n showErrorModal(jsonResponse);\n\n return;\n }\n\n // Styling of elements\n workflow.removeClass('loading').html(response);\n that.cloneExcludeFilters = null;\n if (that.data.action === 'wpstg_scanning') {\n that.areAllTablesChecked = true;\n that.directoryNavigator = new WpstgDirectoryNavigation('#wpstg-directories-listing', wpstg, that.notyf);\n that.switchStep(2);\n that.cloneExcludeFilters = new WpstgExcludeFilters();\n } else if (that.data.action === 'wpstg_cloning' || that.data.action === 'wpstg_update' || that.data.action === 'wpstg_reset') {\n that.switchStep(3);\n }\n\n // Start cloning\n that.startCloning();\n },\n 'HTML',\n );\n };\n\n var showErrorModal = function(response) {\n const errorModal = new WpstgModal('wpstg_modal_error', wpstg);\n errorModal.show(Object.assign({\n title: 'Error',\n icon: 'error',\n html: wpstg.i18n['somethingWentWrong'],\n width: '500px',\n confirmButtonText: 'Ok',\n showCancelButton: false,\n customClass: {\n confirmButton: 'wpstg--btn--confirm wpstg-blue-primary wpstg-button wpstg-link-btn',\n cancelButton: 'wpstg--btn--cancel wpstg-blue-primary wpstg-link-btn',\n actions: 'wpstg--modal--actions',\n popup: 'wpstg-swal-popup centered-modal',\n },\n buttonsStyling: false,\n reverseButtons: true,\n }, response.swalOptions), {\n type: response.type,\n });\n };\n\n const tryParseJson = function(json) {\n // early bail if not string\n if (!json) {\n return false;\n }\n\n try {\n const object = JSON.parse(json);\n if (object && typeof object === 'object') {\n return object;\n }\n } catch (e) {\n // do nothing on catch\n }\n\n return false;\n };\n\n var resetClone = function(clone, excludeOptions) {\n that.data = {\n action: 'wpstg_reset',\n accessToken: wpstg.accessToken,\n nonce: wpstg.nonce,\n cloneID: clone,\n };\n\n that.data = {...that.data, ...excludeOptions};\n\n const $workFlow = cache.get('#wpstg-workflow');\n sendCloningAjax($workFlow);\n };\n\n /**\n * Loads Overview (first step) of Staging Job\n */\n var loadOverview = function() {\n const $workFlow = cache.get('#wpstg-workflow');\n\n $workFlow.addClass('loading');\n\n ajax(\n {\n action: 'wpstg_overview',\n accessToken: wpstg.accessToken,\n nonce: wpstg.nonce,\n },\n function(response) {\n if (response.length < 1) {\n showError(\n 'Something went wrong! No response. Please try the <a href=\\'https://wp-staging.com/docs/wp-staging-settings-for-small-servers/\\' target=\\'_blank\\'>WP Staging Small Server Settings</a> or submit an error report.',\n );\n }\n\n const $currentStep = cache.get('.wpstg-current-step');\n\n // Styling of elements\n $workFlow.removeClass('loading').html(response);\n },\n 'HTML',\n );\n\n that.switchStep(1);\n cache.get('.wpstg-step3-cloning').show();\n cache.get('.wpstg-step3-pushing').hide();\n };\n\n /**\n * Load Tabs\n */\n const tabs = function() {\n cache.get('#wpstg-workflow').on('click', '.wpstg-tab-header', function(e) {\n e.preventDefault();\n\n const $this = $(this);\n const $section = cache.get($this.data('id'));\n\n $this.toggleClass('expand');\n\n $section.slideToggle();\n\n const tabTriangle = $this.find('.wpstg-tab-triangle');\n\n if ($this.hasClass('expand')) {\n tabTriangle.removeClass('wpstg-no-icon');\n tabTriangle.text('');\n tabTriangle.addClass('wpstg-rotate-90');\n } else {\n tabTriangle.removeClass('wpstg-rotate-90');\n }\n });\n };\n\n /**\n * Delete Clone\n * @param {String} clone\n */\n var deleteClone = function(clone) {\n const deleteDir = $('#deleteDirectory:checked').data('deletepath');\n\n ajax(\n {\n action: 'wpstg_delete_clone',\n clone: clone,\n accessToken: wpstg.accessToken,\n nonce: wpstg.nonce,\n excludedTables: getExcludedTables(),\n deleteDir: deleteDir,\n },\n function(response) {\n if (response) {\n showAjaxFatalError(response);\n\n // Finished\n if ('undefined' !== typeof response.delete && (response.delete === 'finished' || response.delete === 'unfinished')) {\n cache.get('#wpstg-removing-clone').removeClass('loading').html('');\n\n if (response.delete === 'finished' && response.error === undefined) {\n $('.wpstg-clone[data-clone-id=\"' + clone + '\"]').remove();\n }\n\n // No staging site message is also of type/class .wpstg-class but hidden\n // We have just excluded that from search when counting no of clones\n if ($('#wpstg-existing-clones .wpstg-clone').length < 1) {\n cache.get('#wpstg-existing-clones').find('h3').text('');\n cache.get('#wpstg-no-staging-site-results').show();\n }\n\n cache.get('.wpstg-loader').hide();\n return;\n }\n }\n // continue\n if (true !== response) {\n deleteClone(clone);\n return;\n }\n },\n );\n };\n\n /**\n * Cancel Cloning Process\n */\n var cancelCloning = function() {\n that.timer('stop');\n\n\n if (true === that.isFinished) {\n return true;\n }\n\n ajax(\n {\n action: 'wpstg_cancel_clone',\n clone: that.data.cloneID,\n accessToken: wpstg.accessToken,\n nonce: wpstg.nonce,\n },\n function(response) {\n if (response && 'undefined' !== typeof (response.delete) && response.delete === 'finished') {\n cache.get('.wpstg-loader').hide();\n // Load overview\n loadOverview();\n return;\n }\n\n if (true !== response) {\n // continue\n cancelCloning();\n return;\n }\n\n // Load overview\n loadOverview();\n },\n );\n };\n\n /**\n * Cancel Cloning Process\n */\n var cancelCloningUpdate = function() {\n if (true === that.isFinished) {\n return true;\n }\n\n ajax(\n {\n action: 'wpstg_cancel_update',\n clone: that.data.cloneID,\n accessToken: wpstg.accessToken,\n nonce: wpstg.nonce,\n },\n function(response) {\n if (response && 'undefined' !== typeof (response.delete) && response.delete === 'finished') {\n // Load overview\n loadOverview();\n return;\n }\n\n if (true !== response) {\n // continue\n cancelCloningUpdate();\n return;\n }\n\n // Load overview\n loadOverview();\n },\n );\n };\n\n /**\n * Cancel Cloning Process\n */\n var restart = function() {\n if (true === that.isFinished) {\n return true;\n }\n\n ajax(\n {\n action: 'wpstg_restart',\n // clone: that.data.cloneID,\n accessToken: wpstg.accessToken,\n nonce: wpstg.nonce,\n },\n function(response) {\n if (response && 'undefined' !== typeof (response.delete) && response.delete === 'finished') {\n // Load overview\n loadOverview();\n return;\n }\n\n if (true !== response) {\n // continue\n cancelCloningUpdate();\n return;\n }\n\n // Load overview\n loadOverview();\n },\n );\n };\n\n /**\n * Scroll the window log to bottom\n * @return void\n */\n const logscroll = function() {\n const $div = cache.get('.wpstg-log-details');\n if ('undefined' !== typeof ($div[0])) {\n $div.scrollTop($div[0].scrollHeight);\n }\n };\n\n /**\n * Append the log to the logging window\n * @param string log\n * @return void\n */\n const getLogs = function(log) {\n if (log != null && 'undefined' !== typeof (log)) {\n if (log.constructor === Array) {\n $.each(log, function(index, value) {\n if (value === null) {\n return;\n }\n if (value.type === 'ERROR') {\n cache.get('.wpstg-log-details').append('<span class=\"wpstg--red\">[' + value.type + ']</span>-' + '[' + value.date + '] ' + value.message + '</br>');\n } else {\n cache.get('.wpstg-log-details').append('[' + value.type + ']-' + '[' + value.date + '] ' + value.message + '</br>');\n }\n });\n } else {\n cache.get('.wpstg-log-details').append('[' + log.type + ']-' + '[' + log.date + '] ' + log.message + '</br>');\n }\n }\n logscroll();\n };\n\n /**\n * Check diskspace\n * @return string json\n */\n var checkDiskSpace = function() {\n cache.get('#wpstg-check-space').on('click', function(e) {\n cache.get('.wpstg-loader').show();\n const excludedDirectories = encodeURIComponent(that.directoryNavigator.getExcludedDirectories());\n const extraDirectories = encodeURIComponent(that.directoryNavigator.getExtraDirectoriesRootOnly());\n\n ajax(\n {\n action: 'wpstg_check_disk_space',\n accessToken: wpstg.accessToken,\n nonce: wpstg.nonce,\n excludedDirectories: excludedDirectories,\n extraDirectories: extraDirectories,\n },\n function(response) {\n if (false === response) {\n cache.get('#wpstg-clone-id-error').text('Can not detect required disk space').show();\n cache.get('.wpstg-loader').hide();\n return;\n }\n\n // Show required disk space\n cache.get('#wpstg-clone-id-error').html(\n 'Estimated necessary disk space: ' + response.requiredSpace +\n (response.errorMessage !== null ? ('<br>' + response.errorMessage) : '') +\n '<br> <span style=\"color:#444;\">Before you proceed ensure your account has enough free disk space to hold the entire instance of the production site. You can check the available space from your hosting account (cPanel or similar).</span>').show();\n cache.get('.wpstg-loader').hide();\n },\n 'json',\n false,\n );\n });\n };\n\n /**\n * Show or hide animated loading icon\n * @param isLoading bool\n */\n const isLoading = function(isLoading) {\n if (!isLoading || isLoading === false) {\n cache.get('.wpstg-loader').hide();\n } else {\n cache.get('.wpstg-loader').show();\n }\n };\n\n /**\n * Count up processing execution time\n * @param string status\n * @return html\n */\n that.timer = function(status) {\n if (status === 'stop') {\n const time = that.time;\n that.time = 1;\n clearInterval(that.executionTime);\n return that.convertSeconds(time);\n }\n\n\n that.executionTime = setInterval(function() {\n if (null !== document.getElementById('wpstg-processing-timer')) {\n document.getElementById('wpstg-processing-timer').innerHTML = 'Elapsed Time: ' + that.convertSeconds(that.time);\n }\n that.time++;\n if (status === 'stop') {\n that.time = 1;\n clearInterval(that.executionTime);\n }\n }, 1000);\n };\n\n /**\n * Convert seconds to hourly format\n * @param int seconds\n * @return string\n */\n that.convertSeconds = function(seconds) {\n const date = new Date(null);\n date.setSeconds(seconds); // specify value for SECONDS here\n return date.toISOString().substr(11, 8);\n };\n\n /**\n * Start Cloning Process\n * @type {Function}\n */\n that.startCloning = (function() {\n resetErrors();\n\n // Register function for checking disk space\n checkDiskSpace();\n\n if ('wpstg_cloning' !== that.data.action && 'wpstg_update' !== that.data.action && 'wpstg_reset' !== that.data.action) {\n return;\n }\n\n that.isCancelled = false;\n\n // Start the process\n start();\n\n // Functions\n // Start\n function start() {\n cache.get('.wpstg-loader').show();\n cache.get('#wpstg-cancel-cloning').text('Cancel');\n cache.get('#wpstg-resume-cloning').hide();\n cache.get('#wpstg-error-details').hide();\n\n\n // Clone Database\n setTimeout(function() {\n // cloneDatabase();\n window.addEventListener('beforeunload', WPStaging.warnIfClosingDuringProcess);\n processing();\n }, wpstg.delayReq);\n\n that.timer('start');\n }\n\n\n /**\n * Start ajax processing\n * @return string\n */\n var processing = function() {\n if (true === that.isCancelled) {\n window.removeEventListener('beforeunload', WPStaging.warnIfClosingDuringProcess);\n return false;\n }\n\n isLoading(true);\n\n let excludedDirectories = '';\n let extraDirectories = '';\n if (that.directoryNavigator !== null) {\n excludedDirectories = that.directoryNavigator.getExcludedDirectories();\n extraDirectories = that.directoryNavigator.getExtraDirectoriesRootOnly();\n }\n\n // Show logging window\n cache.get('.wpstg-log-details').show();\n\n WPStaging.ajax(\n {\n action: 'wpstg_processing',\n accessToken: wpstg.accessToken,\n nonce: wpstg.nonce,\n excludedTables: getExcludedTables(),\n excludedDirectories: encodeURIComponent(excludedDirectories),\n extraDirectories: encodeURIComponent(extraDirectories),\n },\n function(response) {\n showAjaxFatalError(response);\n\n // Add Log messages\n if ('undefined' !== typeof (response.last_msg) && response.last_msg) {\n getLogs(response.last_msg);\n }\n // Continue processing\n if (false === response.status) {\n progressBar(response);\n\n setTimeout(function() {\n cache.get('.wpstg-loader').show();\n processing();\n }, wpstg.delayReq);\n } else if (true === response.status && 'finished' !== response.status) {\n cache.get('#wpstg-error-details').hide();\n cache.get('#wpstg-error-wrapper').hide();\n progressBar(response, true);\n processing();\n } else if ('finished' === response.status || ('undefined' !== typeof (response.job_done) && response.job_done)) {\n window.removeEventListener('beforeunload', WPStaging.warnIfClosingDuringProcess);\n finish(response);\n }\n ;\n },\n 'json',\n false,\n );\n };\n\n // Finish\n function finish(response) {\n if (true === that.getLogs) {\n getLogs();\n }\n\n progressBar(response);\n\n // Add Log\n if ('undefined' !== typeof (response.last_msg)) {\n getLogs(response.last_msg);\n }\n\n cache.get('.wpstg-loader').hide();\n cache.get('#wpstg-processing-header').html('Processing Complete');\n $('#wpstg-processing-status').text('Succesfully finished');\n\n cache.get('#wpstg_staging_name').html(that.data.cloneID);\n cache.get('#wpstg-finished-result').show();\n cache.get('#wpstg-cancel-cloning').hide();\n cache.get('#wpstg-resume-cloning').hide();\n cache.get('#wpstg-cancel-cloning-update').prop('disabled', true);\n\n const $link1 = cache.get('#wpstg-clone-url-1');\n const $link = cache.get('#wpstg-clone-url');\n $link1.attr('href', response.url);\n $link1.html(response.url);\n $link.attr('href', response.url);\n\n cache.get('#wpstg-remove-clone').data('clone', that.data.cloneID);\n\n // Finished\n that.isFinished = true;\n that.timer('stop');\n\n\n cache.get('.wpstg-loader').hide();\n cache.get('#wpstg-processing-header').html('Processing Complete');\n\n // show alert\n let msg = wpstg.i18n.cloneResetComplete;\n if (that.data.action === 'wpstg_update') {\n msg = wpstg.i18n.cloneUpdateComplete;\n }\n\n if (that.data.action === 'wpstg_update' || that.data.action === 'wpstg_reset') {\n cache.get('#wpstg-cancel-cloning-update').hide();\n cache.get('.wpstg-prev-step-link').show();\n\n WPStagingCommon.getSwalModal(true, {\n confirmButton: 'wpstg--btn--confirm wpstg-green-button wpstg-button wpstg-link-btn wpstg-100-width',\n }).fire({\n title: '',\n icon: 'success',\n html: msg,\n width: '500px',\n focusConfirm: true,\n });\n }\n\n return false;\n }\n\n /**\n * Add percentage progress bar\n * @param object response\n * @return {Boolean}\n */\n var progressBar = function(response, restart) {\n if ('undefined' === typeof (response.percentage)) {\n return false;\n }\n\n if (response.job === 'database') {\n cache.get('#wpstg-progress-db').width(response.percentage * 0.2 + '%').html(response.percentage + '%');\n cache.get('#wpstg-processing-status').html(response.percentage.toFixed(0) + '%' + ' - Step 1 of 4 Cloning Database Tables...');\n }\n\n if (response.job === 'SearchReplace') {\n cache.get('#wpstg-progress-db').css('background-color', '#3bc36b');\n cache.get('#wpstg-progress-db').html('1. Database');\n // Assumption: All previous steps are done.\n // This avoids bugs where some steps are skipped and the progress bar is incomplete as a result\n cache.get('#wpstg-progress-db').width('20%');\n\n cache.get('#wpstg-progress-sr').width(response.percentage * 0.1 + '%').html(response.percentage + '%');\n cache.get('#wpstg-processing-status').html(response.percentage.toFixed(0) + '%' + ' - Step 2 of 4 Preparing Database Data...');\n }\n\n if (response.job === 'directories') {\n cache.get('#wpstg-progress-sr').css('background-color', '#3bc36b');\n cache.get('#wpstg-progress-sr').html('2. Data');\n cache.get('#wpstg-progress-sr').width('10%');\n\n cache.get('#wpstg-progress-dirs').width(response.percentage * 0.1 + '%').html(response.percentage + '%');\n cache.get('#wpstg-processing-status').html(response.percentage.toFixed(0) + '%' + ' - Step 3 of 4 Getting files...');\n }\n if (response.job === 'files') {\n cache.get('#wpstg-progress-dirs').css('background-color', '#3bc36b');\n cache.get('#wpstg-progress-dirs').html('3. Files');\n cache.get('#wpstg-progress-dirs').width('10%');\n\n cache.get('#wpstg-progress-files').width(response.percentage * 0.6 + '%').html(response.percentage + '%');\n cache.get('#wpstg-processing-status').html(response.percentage.toFixed(0) + '%' + ' - Step 4 of 4 Copy files...');\n }\n if (response.job === 'finish') {\n cache.get('#wpstg-progress-files').css('background-color', '#3bc36b');\n cache.get('#wpstg-progress-files').html('4. Copy Files');\n cache.get('#wpstg-progress-files').width('60%');\n\n cache.get('#wpstg-processing-status').html(response.percentage.toFixed(0) + '%' + ' - Cloning Process Finished');\n }\n };\n });\n\n that.switchStep = function(step) {\n cache.get('.wpstg-current-step')\n .removeClass('wpstg-current-step');\n cache.get('.wpstg-step' + step)\n .addClass('wpstg-current-step');\n };\n\n /**\n * Initiation\n * @type {Function}\n */\n that.init = (function() {\n loadOverview();\n elements();\n stepButtons();\n tabs();\n WPStagingCommon.listenTooltip();\n new WpstgMainMenu();\n new WpstgCloneStaging();\n new WpstgCloningAdvanceSettings();\n that.notyf = new Notyf({\n duration: 10000,\n position: {\n x: 'center',\n y: 'bottom',\n },\n dismissible: true,\n types: [\n {\n type: 'warning',\n background: 'orange',\n icon: false,\n },\n ],\n });\n });\n\n /**\n * Ajax call\n * @type {ajax}\n */\n that.ajax = ajax;\n that.showError = showError;\n that.getLogs = getLogs;\n that.loadOverview = loadOverview;\n\n return that;\n})(jQuery);\n\njQuery(document).ready(function() {\n WPStaging.init();\n // This is necessary to make WPStaging var accessibile in WP Staging PRO js script\n window.WPStaging = WPStaging;\n});\n\n/**\n * Report Issue modal\n */\njQuery(document).ready(function($) {\n $('body').on('click', '#wpstg-report-issue-button', function(e) {\n console.log('REPORT');\n $('.wpstg--tab--active .wpstg-report-issue-form').toggleClass('wpstg-report-show');\n e.preventDefault();\n });\n\n $('body').on('click', '#wpstg-backups-report-issue-button', function(e) {\n $('.wpstg--tab--active .wpstg-report-issue-form').toggleClass('wpstg-report-show');\n e.preventDefault();\n });\n\n $('body').on('click', '#wpstg-report-cancel', function(e) {\n $('.wpstg--tab--active .wpstg-report-issue-form').removeClass('wpstg-report-show');\n e.preventDefault();\n });\n\n $('body').on('click', '.wpstg--tab--active #wpstg-report-submit', function(e) {\n const self = $(this);\n sendIssueReport(self, 'false');\n e.preventDefault();\n });\n\n /*\n * Close Success Modal\n */\n\n $('body').on('click', '#wpstg-success-button', function(e) {\n e.preventDefault();\n $('.wpstg-report-issue-form').removeClass('wpstg-report-show');\n });\n\n function sendIssueReport(button, forceSend = 'false') {\n const spinner = button.next();\n const email = $('.wpstg--tab--active .wpstg-report-email').val();\n const hosting_provider = $('.wpstg--tab--active .wpstg-report-hosting-provider').val();\n const message = $('.wpstg--tab--active .wpstg-report-description').val();\n const syslog = $('.wpstg--tab--active .wpstg-report-syslog').is(':checked');\n const terms = $('.wpstg--tab--active .wpstg-report-terms').is(':checked');\n\n button.attr('disabled', true);\n spinner.css('visibility', 'visible');\n\n $.ajax({\n url: ajaxurl,\n type: 'POST',\n dataType: 'json',\n async: true,\n data: {\n 'action': 'wpstg_send_report',\n 'accessToken': wpstg.accessToken,\n 'nonce': wpstg.nonce,\n 'wpstg_email': email,\n 'wpstg_provider': hosting_provider,\n 'wpstg_message': message,\n 'wpstg_syslog': +syslog,\n 'wpstg_terms': +terms,\n 'wpstg_force_send': forceSend,\n },\n }).done(function(data) {\n button.attr('disabled', false);\n spinner.css('visibility', 'hidden');\n\n if (data.errors.length > 0) {\n $('.wpstg--tab--active .wpstg-report-issue-form .wpstg-message').remove();\n\n let errorMessage = $('<div />').addClass('wpstg-message wpstg-error-message');\n $.each(data.errors, function(key, value) {\n if (value.status === 'already_submitted') {\n errorMessage = '';\n // TODO: remove default custom classes\n WPStagingCommon.getSwalModal(true, {\n container: 'wpstg-issue-resubmit-confirmation',\n }).fire({\n title: '',\n icon: 'warning',\n html: value.message,\n showCancelButton: true,\n focusConfirm: false,\n confirmButtonText: 'Yes',\n cancelButtonText: 'No',\n }).then((result) => {\n if (result.isConfirmed) {\n sendIssueReport(button, 'true');\n }\n });\n } else {\n errorMessage.append('<p>' + value + '</p>');\n }\n });\n\n $('.wpstg--tab--active .wpstg-report-issue-form').prepend(errorMessage);\n } else {\n const successMessage = $('<div />').addClass('wpstg-message wpstg-success-message');\n successMessage.append('<p>Thanks for submitting your request! You should receive an auto reply mail with your ticket ID immediately for confirmation!<br><br>If you do not get that mail please contact us directly at <strong>support@wp-staging.com</strong></p>');\n\n $('.wpstg--tab--active .wpstg-report-issue-form').html(successMessage);\n $('.wpstg--tab--active .wpstg-success-message').append('<div style=\"float:right;margin-top:10px;\"><a id=\"wpstg-success-button\" href=\"#\" class=\"wpstg--red\">[X] CLOSE</a></div>');\n\n // Hide message\n setTimeout(function() {\n $('.wpstg--tab--active .wpstg-report-issue-form').removeClass('wpstg-report-active');\n }, 2000);\n }\n });\n }\n\n // Open/close actions drop down menu\n $(document).on('click', '.wpstg-dropdown>.wpstg-dropdown-toggler', function(e) {\n e.preventDefault();\n $(e.target).next('.wpstg-dropdown-menu').toggleClass('shown');\n\n $(e.target).find('.wpstg-caret').toggleClass('wpstg-caret-up');\n });\n\n $(document).on('click', '.wpstg-caret', function(e) {\n e.preventDefault();\n\n const toggler = $(e.target).closest('.wpstg-dropdown-toggler');\n\n if (toggler) {\n toggler.trigger('click');\n }\n });\n\n // Close action drop down menu if clicked anywhere outside\n document.addEventListener('click', function(event) {\n const isClickInside = event.target.closest('.wpstg-dropdown-toggler');\n if (!isClickInside) {\n const dropDown = document.getElementsByClassName('wpstg-dropdown-menu');\n for (let i = 0; i < dropDown.length; i++) {\n dropDown[i].classList.remove('shown');\n }\n $('.wpstg-caret').removeClass('wpstg-caret-up');\n }\n });\n});\n"],"names":["qs","selector","document","querySelector","all","querySelectorAll","addEvent","parent","evt","handler","addEventListener","event","target","matches","closest","slideDown","element","duration","style","display","overflow","height","offsetHeight","transitionProperty","transitionDuration","setTimeout","window","removeProperty","slideUp","getNextSibling","sibling","nextElementSibling","getParents","result","parentElement","push","WpstgCloneStaging","pageWrapperId","wpstgObject","wpstg","pageWrapper","dom","enableButtonId","enableAction","notyf","Notyf","position","x","y","dismissible","types","type","background","icon","init","addEvents","sendRequest","action","fetch","ajaxUrl","method","credentials","body","URLSearchParams","accessToken","nonce","headers","then","response","ok","json","Promise","reject","data","success","location","reload","message","error","i18n","console","warn","WpstgDirectoryNavigation","directoryListingSelector","directoryListingContainer","dirCheckboxSelector","dirExpandSelector","unselectAllDirsSelector","selectDefaultDirsSelector","fetchChildrenAction","currentCheckboxElement","currentParentDiv","currentLoader","existingExcludes","excludedDirectories","isDefaultSelected","log","preventDefault","toggleDirExpand","unselectAll","selectDefault","parseExcludes","previousSibling","getAttribute","dirPath","value","isChecked","checked","forceDefault","setAttribute","dirContainer","createElement","classList","add","innerHTML","JSON","parse","directoryListing","appendChild","alert","getExcludedDirectories","forEach","isParentExcluded","exclude","isExcludeScanned","join","settings","directorySeparator","path","isParentAlreadyExcluded","dir","startsWith","getExtraDirectoriesRootOnly","extraDirectories","extraDirectoriesTextArea","extraCustomDirectories","split","concat","length","WpstgExcludeFilters","excludeFilterContainerSelector","excludeContainer","excludeTableBody","addFileSizeExclude","addFileExtExclude","addFileNameExclude","addDirNameExclude","clearExcludes","removeExclude","addExcludeRuleRow","templateName","excludeRowTemplate","clone","content","cloneNode","excludeRow","e","removeChild","trim","getExcludeFilters","globExcludes","sizeExcludes","sizeCompares","sizeSizes","sizeByte","Object","entries","key","sizeInput","extensionInputs","ext","cleanStringForGlob","fileNamesPos","fileNames","fileInput","fileName","dirNamesPos","dirNames","dirInput","dirName","filter","onlyUnique","index","self","indexOf","replace","WpstgModal","confirmAction","show","swalOptions","additionalParams","callback","wpstgSwal","fire","triggerConfirmAction","assign","onOver","onOut","pX","pY","mouseOver","focused","h","state","timer","options","sensitivity","interval","timeout","handleFocus","delay","el","clearTimeout","undefined","tracker","clientX","clientY","compare","Math","abs","opt","focusOptionChanged","addFocus","removeFocus","dispatchOver","removeEventListener","onMouseOver","dispatchOut","onMouseOut","dispatchFocus","onFocus","dispatchBlur","onBlur","remove","$","WPStagingCommon","continueErrorHandle","cache","elements","get","inArray","refresh","listenTooltip","wpstgHoverIntent","visibility","isEmpty","obj","prop","hasOwnProperty","getSwalModal","isContentCentered","customClasses","defaultCustomClasses","confirmButton","cancelButton","actions","popup","customClass","buttonsStyling","reverseButtons","showClass","mixin","showSuccessModal","htmlContent","showConfirmButton","showCancelButton","cancelButtonText","title","html","showWarningModal","showErrorModal","getSwalContainer","getContainer","closeSwalModal","close","getDataFromWordPressResponse","Error","Array","shift","isLoading","hide","slugify","url","toString","toLowerCase","normalize","showAjaxFatalError","prependMessage","appendMessage","showError","WPStaging","warnIfClosingDuringProcess","handleFetchErrors","status","statusText","css","text","removeClass","resetErrors","ajax","dataType","showErrors","tryCount","incrementRatio","errorCallback","retryLimit","retryTimeout","parseInt","isNaN","ajaxurl","Date","now","xhr","textStatus","errorThrown","errorCode","statusCode","jQuery","WpstgResetModal","cloneID","workflowSelector","fetchExcludeSettingsAction","modalErrorAction","workflow","resetButtonClass","resetModalContainerClass","resetTabSelector","directoryNavigator","excludeFilters","isAllTablesChecked","resetModalContainer","toggleContent","selectDefaultTables","toggleTableSelection","toggleDirectoryNavigation","updateDirectorySelection","contentId","tabTriangle","isCollapsed","contains","transform","showModal","swalPromise","loadModal","fetchCloneExcludes","container","getAjaxLoader","width","focusConfirm","confirmButtonText","resetClone","job","errorModal","modal","renderError","getDirectoryNavigator","wpstgIcon","cbElement","subDirectories","parElem","i","children","multisitePattern","tblprefix","singleSitePattern","option","name","isMultisite","match","removeAttribute","WpstgCloningAdvanceSettings","baseContainerSelector","baseContainer","checkBoxSettingTogglerSelector","toggleSettings","WpstgMainMenu","activeTabClass","mainMenu","tabHeader","$this","targetElements","menuItems","contents","menuItem","targetElement","dispatchEvent","Event","that","isCancelled","isFinished","getLogs","time","executionTime","progressBar","cloneExcludeFilters","areAllTablesChecked","ajaxSpinner","returnValue","$workFlow","urlSpinner","devicePixelRatio","on","each","attr","siblings","slideToggle","$directory","parents","find","addClass","getElementById","clearInterval","removeAttr","cloneDirectoryName","directoryName","slug","$targetDir","$targetUri","uri","val","validateTargetHost","after","cloneActions","the_domain","reg","test","confirm","append","cancelCloning","startCloning","cancelCloningUpdate","restart","$existingClones","animate","scrollTop","offset","top","deleteClone","jsonResponse","tryParseJson","checkDiskSpace","switchStep","resetModal","promise","dirNavigator","exclFilters","includedTables","getIncludedTables","excludeSizeRules","encodeURIComponent","sizes","excludeGlobRules","globs","stepButtons","focus","onlyUpdateMessage","is","verifyExternalDatabase","proceedCloning","loadOverview","getExcludedTables","excludedTables","databaseUser","databasePassword","databaseServer","databaseDatabase","error_type","render","checks","production","staging","getCloningData","getTime","cloneName","rules","databasePrefix","cloneDir","cloneHostname","emailsAllowed","uploadsSymlinked","cleanPluginsThemes","cleanUploadsDir","sendCloningAjax","object","excludeOptions","tabs","$section","toggleClass","hasClass","deleteDir","logscroll","$div","scrollHeight","constructor","date","requiredSpace","errorMessage","convertSeconds","setInterval","seconds","setSeconds","toISOString","substr","start","processing","delayReq","last_msg","job_done","finish","$link1","$link","msg","cloneResetComplete","cloneUpdateComplete","percentage","toFixed","step","ready","sendIssueReport","button","forceSend","spinner","next","email","hosting_provider","syslog","terms","async","done","errors","isConfirmed","prepend","successMessage","toggler","trigger","isClickInside","dropDown","getElementsByClassName"],"mappings":"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"}
assets/js/dist/wpstg-admin.min.js CHANGED
@@ -1,2 +1,2 @@
1
- !function(){"use strict";function e(){return(e=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var s=arguments[t];for(var n in s)Object.prototype.hasOwnProperty.call(s,n)&&(e[n]=s[n])}return e}).apply(this,arguments)}function t(e){return document.querySelector(e)}function s(e){return document.querySelectorAll(e)}function n(e,t,s,n){e.addEventListener(t,(function(e){e.target.matches(s+", "+s+" *")&&n(e.target.closest(s),e)}),!1)}function r(e,t){void 0===t&&(t=400),e.style.display="block",e.style.overflow="hidden";var s=e.offsetHeight;e.style.height="0px",e.style.transitionProperty="height",e.style.transitionDuration=t+"ms",setTimeout((function(){e.style.height=s+"px",window.setTimeout((function(){e.style.removeProperty("height"),e.style.removeProperty("overflow"),e.style.removeProperty("transition-duration"),e.style.removeProperty("transition-property")}),t)}),0)}function o(e,t){void 0===t&&(t=400),e.style.display="block",e.style.overflow="hidden";var s=e.offsetHeight;e.style.height=s+"px",e.style.transitionProperty="height",e.style.transitionDuration=t+"ms",setTimeout((function(){e.style.height="0px",window.setTimeout((function(){e.style.display="none",e.style.removeProperty("height"),e.style.removeProperty("overflow"),e.style.removeProperty("transition-duration"),e.style.removeProperty("transition-property")}),t)}),0)}var i=function(){function e(e,s){void 0===e&&(e="#wpstg-clonepage-wrapper"),void 0===s&&(s=wpstg),this.pageWrapper=t(e),this.wpstgObject=s,this.enableButtonId="#wpstg-enable-staging-cloning",this.enableAction="wpstg_enable_staging_cloning",this.notyf=new Notyf({duration:1e4,position:{x:"center",y:"bottom"},dismissible:!0,types:[{type:"warning",background:"orange",icon:!1}]}),this.init()}var s=e.prototype;return s.addEvents=function(){var e=this;null!==this.pageWrapper&&n(this.pageWrapper,"click",this.enableButtonId,(function(){e.sendRequest(e.enableAction)}))},s.init=function(){this.addEvents()},s.sendRequest=function(e){var t=this;fetch(this.wpstgObject.ajaxUrl,{method:"POST",credentials:"same-origin",body:new URLSearchParams({action:e,accessToken:this.wpstgObject.accessToken,nonce:this.wpstgObject.nonce}),headers:{"Content-Type":"application/x-www-form-urlencoded"}}).then((function(e){return e.ok?e.json():Promise.reject(e)})).then((function(e){void 0!==e.success&&e.success?location.reload():void 0===e.message?t.notyf.error(t.wpstgObject.i18n.somethingWentWrong):t.notyf.error(e.message)})).catch((function(e){console.warn(t.wpstgObject.i18n.somethingWentWrong,e)}))},e}(),a=function(){function e(e,s,n){void 0===e&&(e="#wpstg-directories-listing"),void 0===s&&(s=wpstg),void 0===n&&(n=null),this.directoryListingContainer=t(e),this.wpstgObject=s,this.dirCheckboxSelector=".wpstg-check-dir",this.dirExpandSelector=".wpstg-expand-dirs",this.unselectAllDirsSelector=".wpstg-unselect-dirs",this.selectDefaultDirsSelector=".wpstg-select-dirs-default",this.fetchChildrenAction="wpstg_fetch_dir_childrens",this.currentCheckboxElement=null,this.currentParentDiv=null,this.currentLoader=null,this.existingExcludes=[],this.excludedDirectories=[],this.isDefaultSelected=!1,this.notyf=n,this.init()}var s=e.prototype;return s.addEvents=function(){var e=this;null!==this.directoryListingContainer?(n(this.directoryListingContainer,"click",this.dirExpandSelector,(function(t,s){s.preventDefault(),e.toggleDirExpand(t)&&e.sendRequest(e.fetchChildrenAction,t)})),n(this.directoryListingContainer,"click",this.unselectAllDirsSelector,(function(){e.unselectAll()})),n(this.directoryListingContainer,"click",this.selectDefaultDirsSelector,(function(){e.selectDefault()}))):console.log("Error: directory navigation add events")},s.init=function(){this.addEvents(),this.parseExcludes()},s.toggleDirExpand=function(e){return this.currentParentDiv=e.parentElement,this.currentCheckboxElement=e.previousSibling,this.currentLoader=this.currentParentDiv.querySelector(".wpstg-is-dir-loading"),"false"!==this.currentCheckboxElement.getAttribute("data-navigateable","false")&&"false"===this.currentCheckboxElement.getAttribute("data-scanned","false")},s.sendRequest=function(e){var t=this;null!==this.currentLoader&&(this.currentLoader.style.display="inline-block"),fetch(this.wpstgObject.ajaxUrl,{method:"POST",credentials:"same-origin",body:new URLSearchParams({action:e,accessToken:this.wpstgObject.accessToken,nonce:this.wpstgObject.nonce,dirPath:this.currentCheckboxElement.value,isChecked:this.currentCheckboxElement.checked,forceDefault:this.isDefaultSelected}),headers:{"Content-Type":"application/x-www-form-urlencoded"}}).then((function(e){return e.ok?e.json():Promise.reject(e)})).then((function(e){if(void 0!==e.success&&e.success){t.currentCheckboxElement.setAttribute("data-scanned",!0);var s=document.createElement("div");return s.classList.add("wpstg-dir"),s.classList.add("wpstg-subdir"),s.innerHTML=JSON.parse(e.directoryListing),t.currentParentDiv.appendChild(s),null!==t.currentLoader&&(t.currentLoader.style.display="none"),void r(s)}null!==t.notyf?t.notyf.error(t.wpstgObject.i18n.somethingWentWrong):alert("Error: "+t.wpstgObject.i18n.somethingWentWrong)})).catch((function(e){console.warn(t.wpstgObject.i18n.somethingWentWrong,e)}))},s.getExcludedDirectories=function(){var e=this;return this.excludedDirectories=[],this.directoryListingContainer.querySelectorAll(".wpstg-dir input:not(:checked)").forEach((function(t){e.isParentExcluded(t.value)||e.excludedDirectories.push(t.value)})),this.existingExcludes.forEach((function(t){e.isParentExcluded(t)||e.isExcludeScanned(t)||e.excludedDirectories.push(t)})),this.excludedDirectories.join(this.wpstgObject.settings.directorySeparator)},s.isParentExcluded=function(e){var t=!1;return this.excludedDirectories.forEach((function(s){e.startsWith(s+"/")&&(t=!0)})),t},s.getExtraDirectoriesRootOnly=function(){this.getExcludedDirectories();var e=[];this.directoryListingContainer.querySelectorAll(":not(.wpstg-subdir)>.wpstg-dir>input.wpstg-wp-non-core-dir:checked").forEach((function(t){e.push(t.value)}));var s=t("#wpstg_extraDirectories");if(null===s||""===s.value)return e.join(this.wpstgObject.settings.directorySeparator);var n=s.value.split(/\r?\n/);return e.concat(n).join(this.wpstgObject.settings.directorySeparator)},s.unselectAll=function(){this.directoryListingContainer.querySelectorAll(".wpstg-dir input").forEach((function(e){e.checked=!1}))},s.selectDefault=function(){this.unselectAll(),this.directoryListingContainer.querySelectorAll(".wpstg-dir input.wpstg-wp-core-dir").forEach((function(e){e.checked=!0})),this.directoryListingContainer.querySelectorAll(".wpstg-dir > .wpstg-wp-non-core-dir").forEach((function(e){e.parentElement.querySelectorAll("input.wpstg-wp-core-dir").forEach((function(e){e.checked=!1}))})),this.isDefaultSelected=!0},s.parseExcludes=function(){this.existingExcludes=this.directoryListingContainer.getAttribute("data-existing-excludes",[]),""===this.existingExcludes&&(this.existingExcludes=[]),0!==this.existingExcludes.length&&(this.existingExcludes=this.existingExcludes.split(","))},s.isExcludeScanned=function(e){return this.directoryListingContainer.querySelectorAll(".wpstg-dir input").forEach((function(t){if(t.value===e)return!0})),!1},e}(),c=function(){function e(e,s){void 0===e&&(e="#wpstg-exclude-filters-container"),void 0===s&&(s=wpstg),this.excludeContainer=t(e),this.excludeTableBody=t(e+" tbody"),this.wpstgObject=s,this.init()}var r=e.prototype;return r.addEvents=function(){var e=this;n(this.excludeContainer,"click",".wpstg-file-size-rule",(function(){e.addFileSizeExclude()})),n(this.excludeContainer,"click",".wpstg-file-ext-rule",(function(){e.addFileExtExclude()})),n(this.excludeContainer,"click",".wpstg-file-name-rule",(function(){e.addFileNameExclude()})),n(this.excludeContainer,"click",".wpstg-dir-name-rule",(function(){e.addDirNameExclude()})),n(this.excludeContainer,"click",".wpstg-clear-all-rules",(function(){e.clearExcludes()})),n(this.excludeContainer,"click",".wpstg-remove-exclude-rule",(function(t){e.removeExclude(t)}))},r.init=function(){null!==this.excludeContainer?this.addEvents():console.log("Error: Given table selector not found!")},r.addFileSizeExclude=function(){this.addExcludeRuleRow("#wpstg-file-size-exclude-filter-template")},r.addFileExtExclude=function(){this.addExcludeRuleRow("#wpstg-file-ext-exclude-filter-template")},r.addFileNameExclude=function(){this.addExcludeRuleRow("#wpstg-file-name-exclude-filter-template")},r.addDirNameExclude=function(){this.addExcludeRuleRow("#wpstg-dir-name-exclude-filter-template")},r.addExcludeRuleRow=function(e){var n=t(e);if(null!==n){var r=n.content.cloneNode(!0).querySelector("tr");this.excludeTableBody.appendChild(r),s(".wpstg-has-exclude-rules").forEach((function(e){e.style.display="inherit"}))}},r.clearExcludes=function(){this.excludeTableBody.innerHTML="",s(".wpstg-has-exclude-rules").forEach((function(e){e.style.display="none"}))},r.removeExclude=function(e){null!==e.parentElement&&null!==e.parentElement.parentElement&&this.excludeTableBody.removeChild(e.parentElement.parentElement),""===this.excludeTableBody.innerHTML.trim()&&s(".wpstg-has-exclude-rules").forEach((function(e){e.style.display="none"}))},r.getExcludeFilters=function(){for(var e=this,t=[],s=[],n=this.excludeTableBody.querySelectorAll('select[name="wpstgFileSizeExcludeRuleCompare[]"]'),r=this.excludeTableBody.querySelectorAll('input[name="wpstgFileSizeExcludeRuleSize[]"]'),o=this.excludeTableBody.querySelectorAll('select[name="wpstgFileSizeExcludeRuleByte[]"]'),i=0,a=Object.entries(r);i<a.length;i++){var c=a[i],l=c[0],g=c[1];""!==g.value&&s.push(n[l].value+" "+g.value+o[l].value)}this.excludeTableBody.querySelectorAll('input[name="wpstgFileExtExcludeRule[]"]').forEach((function(s){var n=e.cleanStringForGlob(s.value);""!==n&&t.push("ext:"+n.trim())}));for(var p=this.excludeTableBody.querySelectorAll('select[name="wpstgFileNameExcludeRulePos[]"]'),d=this.excludeTableBody.querySelectorAll('input[name="wpstgFileNameExcludeRulePath[]"]'),u=0,w=Object.entries(d);u<w.length;u++){var h=w[u],f=h[0],m=h[1],v=this.cleanStringForGlob(m.value);""!==v&&t.push("file:"+p[f].value+" "+v.trim())}for(var b=this.excludeTableBody.querySelectorAll('select[name="wpstgDirNameExcludeRulePos[]"]'),y=this.excludeTableBody.querySelectorAll('input[name="wpstgDirNameExcludeRulePath[]"]'),x=0,k=Object.entries(y);x<k.length;x++){var S=k[x],E=S[0],C=S[1],_=this.cleanStringForGlob(C.value);""!==_&&t.push("dir:"+b[E].value+" "+_.trim())}return{sizes:s.filter(this.onlyUnique).join(","),globs:t.filter(this.onlyUnique).join(",")}},r.onlyUnique=function(e,t,s){return s.indexOf(e)===t},r.cleanStringForGlob=function(e){return e.replace(/[*^//!\.[?]/g,"")},e}(),l=function(){function e(e,t){void 0===t&&(t=wpstg),this.confirmAction=e,this.wpstgObject=t}var t=e.prototype;return t.show=function(e,t,s){var n=this;void 0===t&&(t={}),void 0===s&&(s=null),wpstgSwal.fire(e).then((function(e){e.value&&null!==n.error&&n.triggerConfirmAction(t,s)}))},t.triggerConfirmAction=function(e,t){var s=this;void 0===e&&(e={}),void 0===t&&(t=null),fetch(this.wpstgObject.ajaxUrl,{method:"POST",credentials:"same-origin",body:new URLSearchParams(Object.assign({action:this.confirmAction,accessToken:this.wpstgObject.accessToken,nonce:this.wpstgObject.nonce},e)),headers:{"Content-Type":"application/x-www-form-urlencoded"}}).then((function(e){return e.ok?e.json():Promise.reject(e)})).then((function(e){null!==t&&t(e)})).catch((function(e){console.log(s.wpstgObject.i18n.somethingWentWrong,e)}))},e}();function g(e,t,s,n){var r,o,i,a,c=!1,l=!1,g={},p=0,d=0,u={sensitivity:7,interval:100,timeout:0,handleFocus:!1};function w(e){r=e.clientX,o=e.clientY}function h(e,t){if(d&&(d=clearTimeout(d)),Math.abs(i-r)+Math.abs(a-o)<u.sensitivity)return p=1,l?void 0:s(e,t);i=r,a=o,d=setTimeout((function(){h(e,t)}),u.interval)}function f(e,t){return c=!0,d&&(d=clearTimeout(d)),e.removeEventListener("mousemove",w,!1),1!==p&&(i=t.clientX,a=t.clientY,e.addEventListener("mousemove",w,!1),d=setTimeout((function(){h(e,t)}),u.interval)),this}function m(e){e.target.matches(t+", "+t+" *")&&f(e.target.closest(t),e)}function v(e,t){return c=!1,d&&(d=clearTimeout(d)),e.removeEventListener("mousemove",w,!1),1===p&&(d=setTimeout((function(){!function(e,t){d&&(d=clearTimeout(d)),p=0,l||n(e,t)}(e,t)}),u.timeout)),this}function b(e){e.target.matches(t+", "+t+" *")&&v(e.target.closest(t),e)}function y(e){var n,r;e.target.matches(t+", "+t+" *")&&(n=e.target.closest(t),r=e,c||(l=!0,s(n,r)))}function x(e){var s,r;e.target.matches(t+", "+t+" *")&&(s=e.target.closest(t),r=e,!c&&l&&(l=!1,n(s,r)))}function k(){e.removeEventListener("focus",y,!1),e.removeEventListener("blur",x,!1)}return g.options=function(t){var s=t.handleFocus!==u.handleFocus;return u=Object.assign({},u,t),s&&(u.handleFocus?(e.addEventListener("focus",y,!1),e.addEventListener("blur",x,!1)):k()),g},g.remove=function(){e&&(e.removeEventListener("mouseover",m,!1),e.removeEventListener("mouseout",b,!1),k())},e&&(e.addEventListener("mouseover",m,!1),e.addEventListener("mouseout",b,!1)),g}var p=function(e){var t={continueErrorHandle:!0,cache:{elements:[],get:function(t){return-1!==e.inArray(t,this.elements)||(this.elements[t]=e(t)),this.elements[t]},refresh:function(t){t.elements[t]=e(t)}},listenTooltip:function(){g(document,".wpstg--tooltip",(function(e,t){e.querySelector(".wpstg--tooltiptext").style.visibility="visible"}),(function(e,t){e.querySelector(".wpstg--tooltiptext").style.visibility="hidden"}))},isEmpty:function(e){for(var t in e)if(e.hasOwnProperty(t))return!1;return!0},getSwalModal:function(e,t){void 0===e&&(e=!1),void 0===t&&(t={});var s={confirmButton:"wpstg--btn--confirm wpstg-blue-primary wpstg-button wpstg-link-btn wpstg-100-width",cancelButton:"wpstg--btn--cancel wpstg-blue-primary wpstg-link-btn wpstg-100-width",actions:"wpstg--modal--actions",popup:e?"wpstg-swal-popup centered-modal":"wpstg-swal-popup"},n={customClass:Object.assign(s,t),buttonsStyling:!1,reverseButtons:!0,showClass:{popup:"wpstg--swal2-show wpstg-swal-show"}};return wpstgSwal.mixin(n)},showSuccessModal:function(e){this.getSwalModal().fire({showConfirmButton:!1,showCancelButton:!0,cancelButtonText:"OK",icon:"success",title:"Success!",html:'<div class="wpstg--grey" style="text-align: left; margin-top: 8px;">'+e+"</div>"})},showWarningModal:function(e){this.getSwalModal().fire({showConfirmButton:!1,showCancelButton:!0,cancelButtonText:"OK",icon:"warning",title:"",html:'<div class="wpstg--grey" style="text-align: left; margin-top: 8px;">'+e+"</div>"})},showErrorModal:function(e){this.getSwalModal().fire({showConfirmButton:!1,showCancelButton:!0,cancelButtonText:"OK",icon:"error",title:"Error!",html:'<div class="wpstg--grey" style="text-align: left; margin-top: 8px;">'+e+"</div>"})},getSwalContainer:function(){return wpstgSwal.getContainer()},closeSwalModal:function(){wpstgSwal.close()},getDataFromWordPressResponse:function(e){if("object"!=typeof e)throw new Error("Unexpected response (ERR 1341)");if(!e.hasOwnProperty("success"))throw new Error("Unexpected response (ERR 1342)");if(!e.hasOwnProperty("data"))throw new Error("Unexpected response (ERR 1343)");if(!1===e.success)throw e.data instanceof Array&&e.data.length>0?new Error(e.data.shift()):new Error("Response was not successful");return e.data},isLoading:function(e){e&&!1!==e?t.cache.get(".wpstg-loader").show():t.cache.get(".wpstg-loader").hide()},slugify:function(e){return e.toString().toLowerCase().normalize("NFD").replace(/[\u0300-\u036f]/g,"").replace(/\s+/g,"-").replace(/&/g,"-and-").replace(/[^a-z0-9\-]/g,"").replace(/-+/g,"-").replace(/^-*/,"").replace(/-*$/,"")},showAjaxFatalError:function(e,s,n){return s=s?s+"<br/><br/>":"Something went wrong! <br/><br/>",n=n?n+"<br/><br/>":"<br/><br/>Please try the <a href='https://wp-staging.com/docs/wp-staging-settings-for-small-servers/' target='_blank'>WP Staging Small Server Settings</a> or submit an error report and contact us.",!1===e?(t.showError(s+" Error: No response."+n),void window.removeEventListener("beforeunload",WPStaging.warnIfClosingDuringProcess)):void 0!==e.error&&e.error?(t.showError(s+" Error: "+e.message+n),void window.removeEventListener("beforeunload",WPStaging.warnIfClosingDuringProcess)):void 0},handleFetchErrors:function(e){return e.ok||t.showError("Error: "+e.status+" - "+e.statusText+". Please try again or contact support."),e},showError:function(s){t.cache.get("#wpstg-try-again").css("display","inline-block"),t.cache.get("#wpstg-cancel-cloning").text("Reset"),t.cache.get("#wpstg-resume-cloning").show(),t.cache.get("#wpstg-error-wrapper").show(),t.cache.get("#wpstg-error-details").show().html(s),t.cache.get("#wpstg-removing-clone").removeClass("loading"),t.cache.get(".wpstg-loader").hide(),e(".wpstg--modal--process--generic-problem").show().html(s)},resetErrors:function(){t.cache.get("#wpstg-error-details").hide().html("")},ajax:function(s,n,r,o,i,a,c){void 0===a&&(a=null),void 0===c&&(c=null),void 0===r&&(r="json"),!1!==o&&(o=!0);var l=10,g=1e4*(i=void 0===i?0:i);a=parseInt(a),isNaN(a)||(g*=a),e.ajax({url:ajaxurl+"?action=wpstg_processing&_="+Date.now()/1e3,type:"POST",dataType:r,cache:!1,data:s,error:function(e,p,d){if(console.log(e.status+" "+e.statusText+"---"+p),"function"!=typeof c||(c(e,p,d),t.continueErrorHandle))if(++i<=l)setTimeout((function(){t.ajax(s,n,r,o,i,a)}),g);else{var u=void 0===e.status?"Unknown":e.status;t.showError("Fatal Error: "+u+" Please try the <a href='https://wp-staging.com/docs/wp-staging-settings-for-small-servers/' target='_blank'>WP Staging Small Server Settings</a> or submit an error report and contact us.")}else t.continueErrorHandle=!0},success:function(e){"function"==typeof n&&n(e)},statusCode:{404:function(){i>=l&&t.showError("Error 404 - Can't find ajax request URL! Please try the <a href='https://wp-staging.com/docs/wp-staging-settings-for-small-servers/' target='_blank'>WP Staging Small Server Settings</a> or submit an error report and contact us.")},500:function(){i>=l&&t.showError("Fatal Error 500 - Internal server error while processing the request! Please try the <a href='https://wp-staging.com/docs/wp-staging-settings-for-small-servers/' target='_blank'>WP Staging Small Server Settings</a> or submit an error report and contact us.")},504:function(){i>l&&t.showError("Error 504 - It looks like your server is rate limiting ajax requests. Please try to resume after a minute. If this still not works try the <a href='https://wp-staging.com/docs/wp-staging-settings-for-small-servers/' target='_blank'>WP Staging Small Server Settings</a> or submit an error report and contact us.\n ")},502:function(){i>=l&&t.showError("Error 502 - It looks like your server is rate limiting ajax requests. Please try to resume after a minute. If this still not works try the <a href='https://wp-staging.com/docs/wp-staging-settings-for-small-servers/' target='_blank'>WP Staging Small Server Settings</a> or submit an error report and contact us.\n ")},503:function(){i>=l&&t.showError("Error 503 - It looks like your server is rate limiting ajax requests. Please try to resume after a minute. If this still not works try the <a href='https://wp-staging.com/docs/wp-staging-settings-for-small-servers/' target='_blank'>WP Staging Small Server Settings</a> or submit an error report and contact us.\n ")},429:function(){i>=l&&t.showError("Error 429 - It looks like your server is rate limiting ajax requests. Please try to resume after a minute. If this still not works try the <a href='https://wp-staging.com/docs/wp-staging-settings-for-small-servers/' target='_blank'>WP Staging Small Server Settings</a> or submit an error report and contact us.\n ")},403:function(){i>=l&&t.showError("Refresh page or login again! The process should be finished successfully. \n ")}}})}};return t}(jQuery),d=function(){function e(e,s,n,r,o){void 0===s&&(s="#wpstg-workflow"),void 0===n&&(n="wpstg_clone_excludes_settings"),void 0===r&&(r="wpstg_modal_error"),void 0===o&&(o=wpstg),this.cloneID=e,this.workflow=t(s),this.wpstgObject=o,this.fetchExcludeSettingsAction=n,this.modalErrorAction=r,this.resetButtonClass="wpstg-confirm-reset-clone",this.resetModalContainerClass="wpstg-reset-confirmation",this.resetTabSelector=".wpstg-reset-exclude-tab",this.directoryNavigator=null,this.excludeFilters=null,this.isAllTablesChecked=!0}var s=e.prototype;return s.addEvents=function(){var e=this,s=t("."+this.resetModalContainerClass);null!==s?(n(s,"click",this.resetTabSelector,(function(t){e.toggleContent(t)})),n(s,"click",".wpstg-button-select",(function(){e.selectDefaultTables()})),n(s,"click",".wpstg-button-unselect",(function(){e.toggleTableSelection()})),n(s,"click",".wpstg-expand-dirs",(function(t,s){s.preventDefault(),e.toggleDirectoryNavigation(t)})),n(s,"change","input.wpstg-check-dir",(function(t){e.updateDirectorySelection(t)}))):console.log("Exit")},s.init=function(){this.addEvents()},s.toggleContent=function(e){var s=t("."+this.resetModalContainerClass),n=e.getAttribute("data-id"),i=e.querySelector(".wpstg-tab-triangle"),a=e.getAttribute("data-collapsed","true"),c=t(n);"true"===a?(s.classList.contains("has-collapsible-open")?s.classList.add("has-collapsible-open-2"):s.classList.add("has-collapsible-open"),r(c),i.style.transform="rotate(90deg)",e.setAttribute("data-collapsed","false")):(s.classList.contains("has-collapsible-open-2")?s.classList.remove("has-collapsible-open-2"):s.classList.remove("has-collapsible-open"),o(c),i.style.removeProperty("transform"),e.setAttribute("data-collapsed","true"))},s.showModal=function(){var e=this.loadModal();return this.init(),this.fetchCloneExcludes(),e},s.loadModal=function(){return p.getSwalModal(!1,{confirmButton:this.resetButtonClass+" wpstg-confirm-reset-clone wpstg--btn--confirm wpstg-blue-primary wpstg-button wpstg-link-btn",container:this.resetModalContainerClass+" wpstg-swal2-container wpstg-swal2-loading"}).fire({title:"",icon:"warning",html:this.getAjaxLoader(),width:"400px",focusConfirm:!1,confirmButtonText:this.wpstgObject.i18n.resetClone,showCancelButton:!0})},s.fetchCloneExcludes=function(){var e=this;this.error=null,fetch(this.wpstgObject.ajaxUrl,{method:"POST",credentials:"same-origin",body:new URLSearchParams({action:this.fetchExcludeSettingsAction,accessToken:this.wpstgObject.accessToken,nonce:this.wpstgObject.nonce,clone:this.cloneID,job:"resetting"}),headers:{"Content-Type":"application/x-www-form-urlencoded"}}).then((function(e){return e.ok?e.json():Promise.reject(e)})).then((function(s){if(s.success){var n=t(".wpstg-reset-confirmation");n.classList.remove("wpstg-swal2-loading"),n.querySelector(".wpstg--swal2-popup").style.width="500px",n.querySelector(".wpstg--swal2-content").innerHTML=s.html,e.directoryNavigator=new a,e.excludeFilters=new c}else{new l(e.modalErrorAction,e.wpstgObject).show(Object.assign({title:"Error",icon:"error",html:e.wpstgObject.i18n.somethingWentWrong,width:"500px",confirmButtonText:"Ok",showCancelButton:!1,customClass:{confirmButton:"wpstg--btn--confirm wpstg-blue-primary wpstg-button wpstg-link-btn",cancelButton:"wpstg--btn--cancel wpstg-blue-primary wpstg-link-btn",actions:"wpstg--modal--actions",popup:"wpstg-swal-popup centered-modal"},buttonsStyling:!1,reverseButtons:!0},s.swalOptions),{type:s.type})}})).catch((function(t){e.renderError({html:e.wpstgObject.i18n.somethingWentWrong+" "+t})}))},s.getDirectoryNavigator=function(){return this.directoryNavigator},s.getExcludeFilters=function(){return this.excludeFilters},s.getAjaxLoader=function(){return'<div class="wpstg-swal2-ajax-loader"><img src="'+this.wpstgObject.wpstgIcon+'" /></div>'},s.toggleDirectoryNavigation=function(e){var t=e.previousSibling;if("false"!==t.getAttribute("data-navigateable","false")&&"false"!==t.getAttribute("data-scanned","false")){var s=function(e,t){for(var s=e.nextElementSibling;s;){if(s.matches(t))return s;s=s.nextElementSibling}}(e,".wpstg-subdir");"none"===s.style.display?r(s):o(s)}},s.updateDirectorySelection=function(e){var t=e.parentElement;e.checked?(function(e,t){for(var s=[],n=e&&e.parentElement;n;n=n.parentElement)n.matches(t)&&s.push(n);return s}(t,".wpstg-dir").forEach((function(e){for(var t=0;t<e.children.length;t++)e.children[t].matches(".wpstg-check-dir")&&(e.children[t].checked=!0)})),t.querySelectorAll(".wpstg-expand-dirs").forEach((function(e){e.classList.remove("disabled")})),t.querySelectorAll(".wpstg-subdir .wpstg-check-dir").forEach((function(e){e.checked=!0}))):(t.querySelectorAll(".wpstg-expand-dirs, .wpstg-check-subdirs").forEach((function(e){e.classList.add("disabled")})),t.querySelectorAll(".wpstg-dir .wpstg-check-dir").forEach((function(e){e.checked=!1})))},s.selectDefaultTables=function(){var e=this,s=t("."+this.resetModalContainerClass).querySelectorAll("#wpstg_select_tables_cloning .wpstg-db-table"),n="^"+this.wpstgObject.tblprefix+"([^0-9])_*",r="^"+this.wpstgObject.tblprefix;s.forEach((function(t){var s=t.getAttribute("name","");"1"===e.wpstgObject.isMultisite&&s.match(n)||""===e.wpstgObject.isMultisite&&s.match(r)?t.setAttribute("selected","selected"):t.removeAttribute("selected")}))},s.toggleTableSelection=function(){var e=t("."+this.resetModalContainerClass);!1===this.isAllTablesChecked?(e.querySelectorAll("#wpstg_select_tables_cloning .wpstg-db-table").forEach((function(e){e.setAttribute("selected","selected")})),e.querySelector(".wpstg-button-unselect").innerHTML="Unselect All",this.isAllTablesChecked=!0):(e.querySelectorAll("#wpstg_select_tables_cloning .wpstg-db-table").forEach((function(e){e.removeAttribute("selected")})),e.querySelector(".wpstg-button-unselect").innerHTML="Select All",this.isAllTablesChecked=!1)},e}(),u=function(){function e(e){void 0===e&&(e="#wpstg-clonepage-wrapper"),this.baseContainer=t(e),this.checkBoxSettingTogglerSelector=".wpstg-toggle-advance-settings-section",this.init()}var s=e.prototype;return s.addEvents=function(){var e=this;null!==this.baseContainer&&n(this.baseContainer,"change",this.checkBoxSettingTogglerSelector,(function(t){e.toggleSettings(t)}))},s.init=function(){this.addEvents()},s.toggleSettings=function(e){var s=t("#"+e.getAttribute("data-id"));e.checked?r(s):o(s)},e}(),w=function(){function e(){this.activeTabClass="wpstg--tab--active",this.mainMenu()}return e.prototype.mainMenu=function(){var e=this;null!==t(".wpstg--tab--header")&&n(t(".wpstg--tab--header"),"click",".wpstg-button",(function(t){var n=t,r=n.getAttribute("data-target"),o=s(r),i=s(".wpstg--tab--header a[data-target]");s(".wpstg--tab--contents > .wpstg--tab--content").forEach((function(t){t.matches("."+e.activeTabClass+":not("+r+")")&&t.classList.remove(e.activeTabClass)})),i.forEach((function(t){t!==n&&t.classList.remove(e.activeTabClass)})),n.classList.add(e.activeTabClass),o.forEach((function(t){t.classList.add(e.activeTabClass)})),"#wpstg--tab--backup"===r&&window.dispatchEvent(new Event("backups-tab"))}))},e}(),h=function(t){var s,n={isCancelled:!1,isFinished:!1,getLogs:!1,time:1,executionTime:!1,progressBar:0,cloneExcludeFilters:null,directoryNavigator:null,notyf:null},r={elements:[]};r.get=function(e){return-1!==t.inArray(e,r.elements)||(r.elements[e]=jQuery(e)),r.elements[e]},r.refresh=function(e){e.elements[e]=jQuery(e)};var o=function(e){r.get("#wpstg-try-again").css("display","inline-block"),r.get("#wpstg-cancel-cloning").text("Reset"),r.get("#wpstg-resume-cloning").show(),r.get("#wpstg-error-wrapper").show(),r.get("#wpstg-error-details").show().html(e),r.get("#wpstg-removing-clone").removeClass("loading"),r.get(".wpstg-loader").hide(),t(".wpstg--modal--process--generic-problem").show().html(e)};n.warnIfClosingDuringProcess=function(e){return e.returnValue="You MUST leave this window open while cloning/pushing. Please wait...",null};var g=function(e,t,s){return t=t?t+"<br/><br/>":"Something went wrong! <br/><br/>",s=s?s+"<br/><br/>":"<br/><br/>Please try the <a href='https://wp-staging.com/docs/wp-staging-settings-for-small-servers/' target='_blank'>WP Staging Small Server Settings</a> or submit an error report and contact us.",!1===e?(o(t+" Error: No response."+s),void window.removeEventListener("beforeunload",h.warnIfClosingDuringProcess)):void 0!==e.error&&e.error?(console.error(e.message),o(t+" Error: "+e.message+s),void window.removeEventListener("beforeunload",h.warnIfClosingDuringProcess)):void 0},f=function(){r.get("#wpstg-error-details").hide().html("")},m=function(){var e=t("#wpstg_clone_hostname").val();if(""===e)return!0;return!1!==/^http(s)?:\/\/.*$/.test(e)},v=function(){var e=r.get("#wpstg-workflow");e.on("click","#wpstg-cancel-cloning",(function(){if(!confirm("Are you sure you want to cancel cloning process?"))return!1;var e=t(this);t("#wpstg-try-again, #wpstg-home-link").hide(),e.prop("disabled",!0),n.isCancelled=!0,n.progressBar=0,t("#wpstg-processing-status").text("Please wait...this can take up a while."),t(".wpstg-loader, #wpstg-show-log-button").hide(),e.parent().append(s),j()})).on("click","#wpstg-resume-cloning",(function(){f();var e=t(this);t("#wpstg-try-again, #wpstg-home-link").hide(),n.isCancelled=!1,t("#wpstg-processing-status").text("Try to resume cloning process..."),t("#wpstg-error-details").hide(),t(".wpstg-loader").show(),e.parent().append(s),n.startCloning()})).on("click","#wpstg-cancel-cloning-update",(function(){f();var e=t(this);t("#wpstg-try-again, #wpstg-home-link").hide(),e.prop("disabled",!0),n.isCancelled=!0,t("#wpstg-cloning-result").text("Please wait...this can take up a while."),t(".wpstg-loader, #wpstg-show-log-button").hide(),e.parent().append(s),L()})).on("click","#wpstg-restart-cloning",(function(){f();var e=t(this);t("#wpstg-try-again, #wpstg-home-link").hide(),e.prop("disabled",!0),n.isCancelled=!0,t("#wpstg-cloning-result").text("Please wait...this can take up a while."),t(".wpstg-loader, #wpstg-show-log-button").hide(),e.parent().append(s),A()})).on("click",".wpstg-remove-clone[data-clone]",(function(s){f(),s.preventDefault();var n=r.get("#wpstg-existing-clones");e.removeClass("active"),r.get(".wpstg-loader").show(),b({action:"wpstg_confirm_delete_clone",accessToken:wpstg.accessToken,nonce:wpstg.nonce,clone:t(this).data("clone")},(function(e){r.get("#wpstg-removing-clone").html(e),n.children("img").remove(),r.get(".wpstg-loader").hide(),t("html, body").animate({scrollTop:t("#wpstg-remove-clone").offset().top-t(window).height()+t("#wpstg-remove-clone").height()+50},100)}),"HTML")})).on("click","#wpstg-remove-clone",(function(e){f(),e.preventDefault(),r.get("#wpstg-removing-clone").addClass("loading"),r.get(".wpstg-loader").show(),P(t(this).data("clone"))})).on("click","#wpstg-cancel-removing",(function(e){e.preventDefault(),t(".wpstg-clone").removeClass("active"),r.get("#wpstg-removing-clone").html("")})).on("click",".wpstg-execute-clone",(function(s){s.preventDefault();var r=t(this).data("clone");e.addClass("loading"),n.cloneExcludeFilters=null,b({action:"wpstg_scanning",clone:r,accessToken:wpstg.accessToken,nonce:wpstg.nonce},(function(t){t.length<1&&o("Something went wrong! Error: No response. Please try the <a href='https://wp-staging.com/docs/wp-staging-settings-for-small-servers/' target='_blank'>WP Staging Small Server Settings</a> or submit an error report and contact us.");var s=_(t);if(!1!==s&&!1===s.success)return e.removeClass("loading"),void C(s);e.removeClass("loading").html(t),R(),n.directoryNavigator=new a("#wpstg-directories-listing",wpstg,n.notyf),n.cloneExcludeFilters=new c,n.switchStep(2)}),"HTML")})).on("click",".wpstg-reset-clone",(function(e){e.preventDefault();var s=t(this).data("clone"),n=new d(s);n.showModal().then((function(e){if(e.value){var t=n.getDirectoryNavigator(),r=n.getExcludeFilters().getExcludeFilters();T(s,{includedTables:y(),excludeSizeRules:encodeURIComponent(r.sizes),excludeGlobRules:encodeURIComponent(r.globs),excludedDirectories:t.getExcludedDirectories(),extraDirectories:t.getExtraDirectoriesRootOnly()})}}))}))},b=function e(s,n,r,i,a,c){void 0===c&&(c=null),void 0===r&&(r="json"),!1!==i&&(i=!0);var l=10,g=1e4*(a=void 0===a?0:a);c=parseInt(c),isNaN(c)||(g*=c),t.ajax({url:ajaxurl+"?action=wpstg_processing&_="+Date.now()/1e3,type:"POST",dataType:r,cache:!1,data:s,error:function(t,p,d){if(++a<=l)setTimeout((function(){e(s,n,r,i,a,c)}),g);else{var u=void 0===t.status?"Unknown":t.status;o("Fatal Error: "+u+" Please try the <a href='https://wp-staging.com/docs/wp-staging-settings-for-small-servers/' target='_blank'>WP Staging Small Server Settings</a> or submit an error report and contact us.")}},success:function(e){"function"==typeof n&&n(e)},statusCode:{404:function(){a>=l&&o("Error 404 - Can't find ajax request URL! Please try the <a href='https://wp-staging.com/docs/wp-staging-settings-for-small-servers/' target='_blank'>WP Staging Small Server Settings</a> or submit an error report and contact us.")},500:function(){a>=l&&o("Fatal Error 500 - Internal server error while processing the request! Please try the <a href='https://wp-staging.com/docs/wp-staging-settings-for-small-servers/' target='_blank'>WP Staging Small Server Settings</a> or submit an error report and contact us.")},504:function(){a>l&&o("Error 504 - It looks like your server is rate limiting ajax requests. Please try to resume after a minute. If this still not works try the <a href='https://wp-staging.com/docs/wp-staging-settings-for-small-servers/' target='_blank'>WP Staging Small Server Settings</a> or submit an error report and contact us.\n ")},502:function(){a>=l&&o("Error 502 - It looks like your server is rate limiting ajax requests. Please try to resume after a minute. If this still not works try the <a href='https://wp-staging.com/docs/wp-staging-settings-for-small-servers/' target='_blank'>WP Staging Small Server Settings</a> or submit an error report and contact us.\n ")},503:function(){a>=l&&o("Error 503 - It looks like your server is rate limiting ajax requests. Please try to resume after a minute. If this still not works try the <a href='https://wp-staging.com/docs/wp-staging-settings-for-small-servers/' target='_blank'>WP Staging Small Server Settings</a> or submit an error report and contact us.\n ")},429:function(){a>=l&&o("Error 429 - It looks like your server is rate limiting ajax requests. Please try to resume after a minute. If this still not works try the <a href='https://wp-staging.com/docs/wp-staging-settings-for-small-servers/' target='_blank'>WP Staging Small Server Settings</a> or submit an error report and contact us.\n ")},403:function(){a>=l&&o("Refresh page or login again! The process should be finished successfully. \n ")}}})},y=function(){var e=[];return t("#wpstg_select_tables_cloning option:selected").each((function(){e.push(this.value)})),e},x=function(){var e=[];return t(".wpstg-db-table input:not(:checked)").each((function(){e.push(this.name)})),e},k=function(e,t){r.get(".wpstg-loader").show(),b({action:"wpstg_database_verification",accessToken:wpstg.accessToken,nonce:wpstg.nonce,databaseUser:r.get("#wpstg_db_username").val(),databasePassword:r.get("#wpstg_db_password").val(),databaseServer:r.get("#wpstg_db_server").val(),databaseDatabase:r.get("#wpstg_db_database").val()},(function(s){if(!1===s)return o("Something went wrong! Error: No response.Please try again. If that does not help, <a href='https://wp-staging.com/support/' target='_blank'>open a support ticket</a> "),void r.get(".wpstg-loader").hide();if(void 0===s.success)return o("Something went wrong! Error: Invalid response.Please try again. If that does not help, <a href='https://wp-staging.com/support/' target='_blank'>open a support ticket</a> "),void r.get(".wpstg-loader").hide();if(s.success)return r.get(".wpstg-loader").hide(),void S(e,t);if("comparison"===s.error_type){r.get(".wpstg-loader").hide();var n='<table style="width: 100%;"><thead><tr><th>Property</th><th>Production DB</th><th>Staging DB</th><th>Status</th></tr></thead><tbody>';return s.checks.forEach((function(e){var t='<i style="color: #00ff00">✔</i>';e.production!==e.staging&&(t='<i style="color: #ff0000">❌</i>'),n+="<tr><td>"+e.name+"</td><td>"+e.production+"</td><td>"+e.staging+"</td><td>"+t+"</td></tr>"})),n+="</tbody></table><p>Note: Some mySQL properties do not match. You may proceed but the staging site may not work as expected.</p>",void p.getSwalModal().fire({title:"Different Database Properties",icon:"warning",html:n,width:"650px",focusConfirm:!1,confirmButtonText:"Proceed Anyway",showCancelButton:!0}).then((function(s){s.value&&S(e,t)}))}p.getSwalModal(!0).fire({title:"Different Database Properties",icon:"error",html:s.message,focusConfirm:!0,confirmButtonText:"Ok",showCancelButton:!1}),r.get(".wpstg-loader").hide()}),"json",!1)},S=function(e,s){s.addClass("loading"),n.data={action:e.data("action"),accessToken:wpstg.accessToken,nonce:wpstg.nonce},function(){if("wpstg_cloning"===n.data.action||"wpstg_update"===n.data.action||"wpstg_reset"===n.data.action){if(n.data.cloneID=(new Date).getTime().toString(),"wpstg_update"===n.data.action&&(n.data.cloneID=t("#wpstg-new-clone-id").data("clone")),n.data.cloneName=t("#wpstg-new-clone-id").val()||n.data.cloneID,null!==n.directoryNavigator&&(n.data.excludedDirectories=encodeURIComponent(n.directoryNavigator.getExcludedDirectories()),n.data.extraDirectories=encodeURIComponent(n.directoryNavigator.getExtraDirectoriesRootOnly())),n.data.excludeGlobRules="",n.data.excludeSizeRules="",n.cloneExcludeFilters instanceof c){var e=n.cloneExcludeFilters.getExcludeFilters();n.data.excludeGlobRules=encodeURIComponent(e.globs),n.data.excludeSizeRules=encodeURIComponent(e.sizes)}n.data.includedTables=y(),n.data.databaseServer=t("#wpstg_db_server").val(),n.data.databaseUser=t("#wpstg_db_username").val(),n.data.databasePassword=t("#wpstg_db_password").val(),n.data.databaseDatabase=t("#wpstg_db_database").val(),n.data.databasePrefix=t("#wpstg_db_prefix").val();var s=t("#wpstg_clone_dir").val();n.data.cloneDir=encodeURIComponent(t.trim(s)),n.data.cloneHostname=t("#wpstg_clone_hostname").val(),n.data.emailsAllowed=t("#wpstg_allow_emails").is(":checked"),n.data.uploadsSymlinked=t("#wpstg_symlink_upload").is(":checked"),n.data.cleanPluginsThemes=t("#wpstg-clean-plugins-themes").is(":checked"),n.data.cleanUploadsDir=t("#wpstg-clean-uploads").is(":checked")}}(),E(s)},E=function(e){b(n.data,(function(t){!1===t&&o("Something went wrong!<br/><br/> Go to WP Staging > Settings and lower 'File Copy Limit' and 'DB Query Limit'. Also set 'CPU Load Priority to low 'and try again. If that does not help, <a href='https://wp-staging.com/support/' target='_blank'>open a support ticket</a> "),t.length<1&&o("Something went wrong! No response. Go to WP Staging > Settings and lower 'File Copy Limit' and 'DB Query Limit'. Also set 'CPU Load Priority to low 'and try again. If that does not help, <a href='https://wp-staging.com/support/' target='_blank'>open a support ticket</a> ");var s=_(t);if(!1!==s&&!1===s.success)return e.removeClass("loading"),void C(s);e.removeClass("loading").html(t),n.cloneExcludeFilters=null,"wpstg_scanning"===n.data.action?(n.directoryNavigator=new a("#wpstg-directories-listing",wpstg,n.notyf),n.switchStep(2),n.cloneExcludeFilters=new c):"wpstg_cloning"!==n.data.action&&"wpstg_update"!==n.data.action&&"wpstg_reset"!==n.data.action||n.switchStep(3),n.startCloning()}),"HTML")},C=function(e){new l("wpstg_modal_error",wpstg).show(Object.assign({title:"Error",icon:"error",html:wpstg.i18n.somethingWentWrong,width:"500px",confirmButtonText:"Ok",showCancelButton:!1,customClass:{confirmButton:"wpstg--btn--confirm wpstg-blue-primary wpstg-button wpstg-link-btn",cancelButton:"wpstg--btn--cancel wpstg-blue-primary wpstg-link-btn",actions:"wpstg--modal--actions",popup:"wpstg-swal-popup centered-modal"},buttonsStyling:!1,reverseButtons:!0},e.swalOptions),{type:e.type})},_=function(e){if(!e)return!1;try{var t=JSON.parse(e);if(t&&"object"==typeof t)return t}catch(e){}return!1},T=function(t,s){n.data={action:"wpstg_reset",accessToken:wpstg.accessToken,nonce:wpstg.nonce,cloneID:t},n.data=e({},n.data,s);var o=r.get("#wpstg-workflow");E(o)},D=function(){var e=r.get("#wpstg-workflow");e.addClass("loading"),b({action:"wpstg_overview",accessToken:wpstg.accessToken,nonce:wpstg.nonce},(function(t){t.length<1&&o("Something went wrong! No response. Please try the <a href='https://wp-staging.com/docs/wp-staging-settings-for-small-servers/' target='_blank'>WP Staging Small Server Settings</a> or submit an error report."),r.get(".wpstg-current-step"),e.removeClass("loading").html(t)}),"HTML"),n.switchStep(1),r.get(".wpstg-step3-cloning").show(),r.get(".wpstg-step3-pushing").hide()},P=function e(s){var n=t("#deleteDirectory:checked").data("deletepath");b({action:"wpstg_delete_clone",clone:s,accessToken:wpstg.accessToken,nonce:wpstg.nonce,excludedTables:x(),deleteDir:n},(function(n){if(n&&(g(n),void 0!==n.delete&&("finished"===n.delete||"unfinished"===n.delete)))return r.get("#wpstg-removing-clone").removeClass("loading").html(""),"finished"===n.delete&&void 0===n.error&&t(".wpstg-clone#"+s).remove(),t("#wpstg-existing-clones .wpstg-clone").length<1&&(r.get("#wpstg-existing-clones").find("h3").text(""),r.get("#wpstg-no-staging-site-results").show()),void r.get(".wpstg-loader").hide();!0===n||e(s)}))},j=function e(){if(n.timer("stop"),!0===n.isFinished)return!0;b({action:"wpstg_cancel_clone",clone:n.data.cloneID,accessToken:wpstg.accessToken,nonce:wpstg.nonce},(function(t){if(t&&void 0!==t.delete&&"finished"===t.delete)return r.get(".wpstg-loader").hide(),void D();!0===t?D():e()}))},L=function e(){if(!0===n.isFinished)return!0;b({action:"wpstg_cancel_update",clone:n.data.cloneID,accessToken:wpstg.accessToken,nonce:wpstg.nonce},(function(t){t&&void 0!==t.delete&&"finished"===t.delete||!0===t?D():e()}))},A=function(){if(!0===n.isFinished)return!0;b({action:"wpstg_restart",accessToken:wpstg.accessToken,nonce:wpstg.nonce},(function(e){e&&void 0!==e.delete&&"finished"===e.delete||!0===e?D():L()}))},O=function(e){var s;null!=e&&void 0!==e&&(e.constructor===Array?t.each(e,(function(e,t){null!==t&&("ERROR"===t.type?r.get(".wpstg-log-details").append('<span class="wpstg--red">['+t.type+"]</span>-["+t.date+"] "+t.message+"</br>"):r.get(".wpstg-log-details").append("["+t.type+"]-["+t.date+"] "+t.message+"</br>"))})):r.get(".wpstg-log-details").append("["+e.type+"]-["+e.date+"] "+e.message+"</br>")),void 0!==(s=r.get(".wpstg-log-details"))[0]&&s.scrollTop(s[0].scrollHeight)},R=function(){r.get("#wpstg-check-space").on("click",(function(e){r.get(".wpstg-loader").show();var t=encodeURIComponent(n.directoryNavigator.getExcludedDirectories()),s=encodeURIComponent(n.directoryNavigator.getExtraDirectoriesRootOnly());b({action:"wpstg_check_disk_space",accessToken:wpstg.accessToken,nonce:wpstg.nonce,excludedDirectories:t,extraDirectories:s},(function(e){if(!1===e)return r.get("#wpstg-clone-id-error").text("Can not detect required disk space").show(),void r.get(".wpstg-loader").hide();r.get("#wpstg-clone-id-error").html("Estimated necessary disk space: "+e.requiredSpace+(null!==e.errorMessage?"<br>"+e.errorMessage:"")+'<br> <span style="color:#444;">Before you proceed ensure your account has enough free disk space to hold the entire instance of the production site. You can check the available space from your hosting account (cPanel or similar).</span>').show(),r.get(".wpstg-loader").hide()}),"json",!1)}))};return n.timer=function(e){if("stop"===e){var t=n.time;return n.time=1,clearInterval(n.executionTime),n.convertSeconds(t)}n.executionTime=setInterval((function(){null!==document.getElementById("wpstg-processing-timer")&&(document.getElementById("wpstg-processing-timer").innerHTML="Elapsed Time: "+n.convertSeconds(n.time)),n.time++,"stop"===e&&(n.time=1,clearInterval(n.executionTime))}),1e3)},n.convertSeconds=function(e){var t=new Date(null);return t.setSeconds(e),t.toISOString().substr(11,8)},n.startCloning=function(){if(f(),R(),"wpstg_cloning"===n.data.action||"wpstg_update"===n.data.action||"wpstg_reset"===n.data.action){n.isCancelled=!1,r.get(".wpstg-loader").show(),r.get("#wpstg-cancel-cloning").text("Cancel"),r.get("#wpstg-resume-cloning").hide(),r.get("#wpstg-error-details").hide(),setTimeout((function(){window.addEventListener("beforeunload",h.warnIfClosingDuringProcess),e()}),wpstg.delayReq),n.timer("start");var e=function e(){if(!0===n.isCancelled)return window.removeEventListener("beforeunload",h.warnIfClosingDuringProcess),!1;var o;(o=!0)&&!1!==o?r.get(".wpstg-loader").show():r.get(".wpstg-loader").hide();var i="",a="";null!==n.directoryNavigator&&(i=n.directoryNavigator.getExcludedDirectories(),a=n.directoryNavigator.getExtraDirectoriesRootOnly()),r.get(".wpstg-log-details").show(),h.ajax({action:"wpstg_processing",accessToken:wpstg.accessToken,nonce:wpstg.nonce,excludedTables:x(),excludedDirectories:encodeURIComponent(i),extraDirectories:encodeURIComponent(a)},(function(o){g(o),void 0!==o.last_msg&&o.last_msg&&O(o.last_msg),!1===o.status?(s(o),setTimeout((function(){r.get(".wpstg-loader").show(),e()}),wpstg.delayReq)):!0===o.status&&"finished"!==o.status?(r.get("#wpstg-error-details").hide(),r.get("#wpstg-error-wrapper").hide(),s(o),e()):("finished"===o.status||void 0!==o.job_done&&o.job_done)&&(window.removeEventListener("beforeunload",h.warnIfClosingDuringProcess),function(e){!0===n.getLogs&&O();s(e),void 0!==e.last_msg&&O(e.last_msg);r.get(".wpstg-loader").hide(),r.get("#wpstg-processing-header").html("Processing Complete"),t("#wpstg-processing-status").text("Succesfully finished"),r.get("#wpstg_staging_name").html(n.data.cloneID),r.get("#wpstg-finished-result").show(),r.get("#wpstg-cancel-cloning").hide(),r.get("#wpstg-resume-cloning").hide(),r.get("#wpstg-cancel-cloning-update").prop("disabled",!0);var o=r.get("#wpstg-clone-url-1"),i=r.get("#wpstg-clone-url");o.attr("href",e.url),o.html(e.url),i.attr("href",e.url),r.get("#wpstg-remove-clone").data("clone",n.data.cloneID),n.isFinished=!0,n.timer("stop"),r.get(".wpstg-loader").hide(),r.get("#wpstg-processing-header").html("Processing Complete");var a=wpstg.i18n.cloneResetComplete;"wpstg_update"===n.data.action&&(a=wpstg.i18n.cloneUpdateComplete);"wpstg_update"!==n.data.action&&"wpstg_reset"!==n.data.action||(r.get("#wpstg-cancel-cloning-update").hide(),r.get(".wpstg-prev-step-link").show(),p.getSwalModal(!0,{confirmButton:"wpstg--btn--confirm wpstg-green-button wpstg-button wpstg-link-btn wpstg-100-width"}).fire({title:"",icon:"success",html:a,width:"500px",focusConfirm:!0}))}(o))}),"json",!1)},s=function(e,t){if(void 0===e.percentage)return!1;"database"===e.job&&(r.get("#wpstg-progress-db").width(.2*e.percentage+"%").html(e.percentage+"%"),r.get("#wpstg-processing-status").html(e.percentage.toFixed(0)+"% - Step 1 of 4 Cloning Database Tables...")),"SearchReplace"===e.job&&(r.get("#wpstg-progress-db").css("background-color","#3bc36b"),r.get("#wpstg-progress-db").html("1. Database"),r.get("#wpstg-progress-db").width("20%"),r.get("#wpstg-progress-sr").width(.1*e.percentage+"%").html(e.percentage+"%"),r.get("#wpstg-processing-status").html(e.percentage.toFixed(0)+"% - Step 2 of 4 Preparing Database Data...")),"directories"===e.job&&(r.get("#wpstg-progress-sr").css("background-color","#3bc36b"),r.get("#wpstg-progress-sr").html("2. Data"),r.get("#wpstg-progress-sr").width("10%"),r.get("#wpstg-progress-dirs").width(.1*e.percentage+"%").html(e.percentage+"%"),r.get("#wpstg-processing-status").html(e.percentage.toFixed(0)+"% - Step 3 of 4 Getting files...")),"files"===e.job&&(r.get("#wpstg-progress-dirs").css("background-color","#3bc36b"),r.get("#wpstg-progress-dirs").html("3. Files"),r.get("#wpstg-progress-dirs").width("10%"),r.get("#wpstg-progress-files").width(.6*e.percentage+"%").html(e.percentage+"%"),r.get("#wpstg-processing-status").html(e.percentage.toFixed(0)+"% - Step 4 of 4 Copy files...")),"finish"===e.job&&(r.get("#wpstg-progress-files").css("background-color","#3bc36b"),r.get("#wpstg-progress-files").html("4. Copy Files"),r.get("#wpstg-progress-files").width("60%"),r.get("#wpstg-processing-status").html(e.percentage.toFixed(0)+"% - Cloning Process Finished"))}}},n.switchStep=function(e){r.get(".wpstg-current-step").removeClass("wpstg-current-step"),r.get(".wpstg-step"+e).addClass("wpstg-current-step")},n.init=function(){var e,o,a,c;D(),o=r.get("#wpstg-workflow"),a=!0,c=ajaxurl.replace("/admin-ajax.php","")+"/images/spinner",2<window.devicePixelRatio&&(c+="-2x"),s="<img src=''"+(c+=".gif")+"' alt='' class='ajax-spinner general-spinner' />",o.on("click",".wpstg-button-unselect",(function(e){e.preventDefault(),!1===a?(r.get("#wpstg_select_tables_cloning .wpstg-db-table").prop("selected","selected"),r.get(".wpstg-button-unselect").text("Unselect All"),r.get(".wpstg-db-table-checkboxes").prop("checked",!0),a=!0):(r.get("#wpstg_select_tables_cloning .wpstg-db-table").prop("selected",!1),r.get(".wpstg-button-unselect").text("Select All"),r.get(".wpstg-db-table-checkboxes").prop("checked",!1),a=!1)})).on("click",".wpstg-button-select",(function(e){e.preventDefault(),t("#wpstg_select_tables_cloning .wpstg-db-table").each((function(){1==wpstg.isMultisite&&(t(this).attr("name").match("^"+wpstg.tblprefix+"([^0-9])_*")?t(this).prop("selected","selected"):t(this).prop("selected",!1)),0==wpstg.isMultisite&&(t(this).attr("name").match("^"+wpstg.tblprefix)?t(this).prop("selected","selected"):t(this).prop("selected",!1))}))})).on("click",".wpstg-expand-dirs",(function(e){e.preventDefault(),t(this).siblings(".wpstg-subdir").slideToggle()})).on("change","input.wpstg-check-dir",(function(){var e=t(this).parent(".wpstg-dir");this.checked?(e.parents(".wpstg-dir").children(".wpstg-check-dir").prop("checked",!0),e.find(".wpstg-expand-dirs").removeClass("disabled"),e.find(".wpstg-subdir .wpstg-check-dir").prop("checked",!0)):(e.find(".wpstg-dir .wpstg-check-dir").prop("checked",!1),e.find(".wpstg-expand-dirs, .wpstg-check-subdirs").addClass("disabled"),e.find(".wpstg-check-subdirs").data("action","check").text("check"))})).on("change","href.wpstg-check-dir",(function(){var e=t(this).parent(".wpstg-dir");this.checked?(e.parents(".wpstg-dir").children(".wpstg-check-dir").prop("checked",!0),e.find(".wpstg-expand-dirs").removeClass("disabled"),e.find(".wpstg-subdir .wpstg-check-dir").prop("checked",!0)):(e.find(".wpstg-dir .wpstg-check-dir").prop("checked",!1),e.find(".wpstg-expand-dirs, .wpstg-check-subdirs").addClass("disabled"),e.find(".wpstg-check-subdirs").data("action","check").text("check"))})).on("keyup","#wpstg-new-clone-id",(function(){if(document.getElementById("wpstg-error-details").style.display="none","number"==typeof e&&clearInterval(e),void 0===this.value||""===this.value)return r.get("#wpstg-new-clone-id").removeClass("wpstg-error-input"),r.get("#wpstg-start-cloning").removeAttr("disabled"),void r.get("#wpstg-clone-id-error").text("").hide();var t=p.slugify(this.value);e=setTimeout((function(){b({action:"wpstg_check_clone",accessToken:wpstg.accessToken,nonce:wpstg.nonce,directoryName:t},(function(e){"success"===e.status?(r.get("#wpstg-new-clone-id").removeClass("wpstg-error-input"),r.get("#wpstg-start-cloning").removeAttr("disabled"),r.get("#wpstg-clone-id-error").text("").hide()):(r.get("#wpstg-new-clone-id").addClass("wpstg-error-input"),r.get("#wpstg-start-cloning").prop("disabled",!0),r.get("#wpstg-clone-id-error").text(e.message).show())}))}),500)})).on("click","#wpstg-start-cloning",(function(){f(),n.isCancelled=!1,n.getLogs=!1,n.progressBar=0})).on("input","#wpstg-new-clone-id",(function(){if(!(t("#wpstg-clone-directory").length<1)){var e=p.slugify(this.value),s=t("#wpstg-use-target-dir"),n=t("#wpstg-use-target-hostname"),r=s.data("base-path"),o=n.data("base-uri");r&&(r=r.replace(/\/+$/g,"")+"/"+e+"/"),o&&(o=o.replace(/\/+$/g,"")+"/"+e),t(".wpstg-use-target-dir--value").text(r),t(".wpstg-use-target-hostname--value").text(o),s.attr("data-path",r),n.attr("data-uri",o),t("#wpstg_clone_dir").attr("placeholder",r),t("#wpstg_clone_hostname").attr("placeholder",o)}})).on("input","#wpstg_clone_hostname",(function(){""===t(this).val()||m()?t("#wpstg_clone_hostname_error").remove():m()||t("#wpstg_clone_hostname_error").length||t("#wpstg-clone-directory tr:last-of-type").after('<tr><td>&nbsp;</td><td><p id="wpstg_clone_hostname_error" style="color: red;">&nbsp;Invalid host name. Please provide it in a format like http://example.com</p></td></tr>')})),v(),function(){var e=r.get("#wpstg-workflow");e.on("click",".wpstg-next-step-link",(function(s){s.preventDefault();var n=t(this);if(t("#wpstg_clone_hostname").length&&!m())return t("#wpstg_clone_hostname").focus(),!1;if("wpstg_update"===n.data("action")||"wpstg_reset"===n.data("action")){var r="";if("wpstg_update"===n.data("action")&&(r=" \n\nExclude all tables and folders you do not want to overwrite, first! \n\nDo not cancel the updating process! This can break your staging site. \n\nCreate a backup of your staging website before you proceed."),!confirm("STOP! This will overwrite your staging site with all selected data from the production site! This should be used only if you want to clone again your production site. Are you sure you want to do this?"+r))return!1}if(n.attr("disabled"))return!1;"wpstg_cloning"===n.data("action")&&t("#wpstg-ext-db").is(":checked")?k(n,e):S(n,e)})).on("click",".wpstg-prev-step-link",(function(e){e.preventDefault(),r.get(".wpstg-loader").removeClass("wpstg-finished"),r.get(".wpstg-loader").hide(),D()}))}(),r.get("#wpstg-workflow").on("click",".wpstg-tab-header",(function(e){e.preventDefault();var s=t(this),n=r.get(s.data("id"));s.toggleClass("expand"),n.slideToggle();var o=s.find(".wpstg-tab-triangle");s.hasClass("expand")?(o.removeClass("wpstg-no-icon"),o.text(""),o.addClass("wpstg-rotate-90")):o.removeClass("wpstg-rotate-90")})),p.listenTooltip(),new w,new i,new u,n.notyf=new Notyf({duration:1e4,position:{x:"center",y:"bottom"},dismissible:!0,types:[{type:"warning",background:"orange",icon:!1}]})},n.ajax=b,n.showError=o,n.getLogs=O,n.loadOverview=D,n}(jQuery);jQuery(document).ready((function(){h.init(),window.WPStaging=h})),jQuery(document).ready((function(e){function t(s,n){void 0===n&&(n="false");var r=s.next(),o=e(".wpstg--tab--active .wpstg-report-email").val(),i=e(".wpstg--tab--active .wpstg-report-hosting-provider").val(),a=e(".wpstg--tab--active .wpstg-report-description").val(),c=e(".wpstg--tab--active .wpstg-report-syslog").is(":checked"),l=e(".wpstg--tab--active .wpstg-report-terms").is(":checked");s.attr("disabled",!0),r.css("visibility","visible"),e.ajax({url:ajaxurl,type:"POST",dataType:"json",async:!0,data:{action:"wpstg_send_report",accessToken:wpstg.accessToken,nonce:wpstg.nonce,wpstg_email:o,wpstg_provider:i,wpstg_message:a,wpstg_syslog:+c,wpstg_terms:+l,wpstg_force_send:n}}).done((function(n){if(s.attr("disabled",!1),r.css("visibility","hidden"),n.errors.length>0){e(".wpstg--tab--active .wpstg-report-issue-form .wpstg-message").remove();var o=e("<div />").addClass("wpstg-message wpstg-error-message");e.each(n.errors,(function(e,n){"already_submitted"===n.status?(o="",p.getSwalModal(!0,{container:"wpstg-issue-resubmit-confirmation"}).fire({title:"",icon:"warning",html:n.message,showCancelButton:!0,focusConfirm:!1,confirmButtonText:"Yes",cancelButtonText:"No"}).then((function(e){e.isConfirmed&&t(s,"true")}))):o.append("<p>"+n+"</p>")})),e(".wpstg--tab--active .wpstg-report-issue-form").prepend(o)}else{var i=e("<div />").addClass("wpstg-message wpstg-success-message");i.append("<p>Thanks for submitting your request! You should receive an auto reply mail with your ticket ID immediately for confirmation!<br><br>If you do not get that mail please contact us directly at <strong>support@wp-staging.com</strong></p>"),e(".wpstg--tab--active .wpstg-report-issue-form").html(i),e(".wpstg--tab--active .wpstg-success-message").append('<div style="float:right;margin-top:10px;"><a id="wpstg-success-button" href="#" class="wpstg--red">[X] CLOSE</a></div>'),setTimeout((function(){e(".wpstg--tab--active .wpstg-report-issue-form").removeClass("wpstg-report-active")}),2e3)}}))}e("body").on("click","#wpstg-report-issue-button",(function(t){console.log("REPORT"),e(".wpstg--tab--active .wpstg-report-issue-form").toggleClass("wpstg-report-show"),t.preventDefault()})),e("body").on("click","#wpstg-backups-report-issue-button",(function(t){e(".wpstg--tab--active .wpstg-report-issue-form").toggleClass("wpstg-report-show"),t.preventDefault()})),e("body").on("click","#wpstg-report-cancel",(function(t){e(".wpstg--tab--active .wpstg-report-issue-form").removeClass("wpstg-report-show"),t.preventDefault()})),e("body").on("click",".wpstg--tab--active #wpstg-report-submit",(function(s){t(e(this),"false"),s.preventDefault()})),e("body").on("click","#wpstg-success-button",(function(t){t.preventDefault(),e(".wpstg-report-issue-form").removeClass("wpstg-report-show")})),e(document).on("click",".wpstg-dropdown>.wpstg-dropdown-toggler",(function(t){t.preventDefault(),e(t.target).next(".wpstg-dropdown-menu").toggleClass("shown"),e(t.target).find(".wpstg-caret").toggleClass("wpstg-caret-up")})),e(document).on("click",".wpstg-caret",(function(t){t.preventDefault();var s=e(t.target).closest(".wpstg-dropdown-toggler");s&&s.trigger("click")})),document.addEventListener("click",(function(t){if(!t.target.closest(".wpstg-dropdown-toggler")){for(var s=document.getElementsByClassName("wpstg-dropdown-menu"),n=0;n<s.length;n++)s[n].classList.remove("shown");e(".wpstg-caret").removeClass("wpstg-caret-up")}}))}))}();
2
  //# sourceMappingURL=wpstg-admin.min.js.map
1
+ !function(){"use strict";function e(){return(e=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var s=arguments[t];for(var n in s)Object.prototype.hasOwnProperty.call(s,n)&&(e[n]=s[n])}return e}).apply(this,arguments)}function t(e){return document.querySelector(e)}function s(e){return document.querySelectorAll(e)}function n(e,t,s,n){e.addEventListener(t,(function(e){e.target.matches(s+", "+s+" *")&&n(e.target.closest(s),e)}),!1)}function r(e,t){void 0===t&&(t=400),e.style.display="block",e.style.overflow="hidden";var s=e.offsetHeight;e.style.height="0px",e.style.transitionProperty="height",e.style.transitionDuration=t+"ms",setTimeout((function(){e.style.height=s+"px",window.setTimeout((function(){e.style.removeProperty("height"),e.style.removeProperty("overflow"),e.style.removeProperty("transition-duration"),e.style.removeProperty("transition-property")}),t)}),0)}function o(e,t){void 0===t&&(t=400),e.style.display="block",e.style.overflow="hidden";var s=e.offsetHeight;e.style.height=s+"px",e.style.transitionProperty="height",e.style.transitionDuration=t+"ms",setTimeout((function(){e.style.height="0px",window.setTimeout((function(){e.style.display="none",e.style.removeProperty("height"),e.style.removeProperty("overflow"),e.style.removeProperty("transition-duration"),e.style.removeProperty("transition-property")}),t)}),0)}var i=function(){function e(e,s){void 0===e&&(e="#wpstg-clonepage-wrapper"),void 0===s&&(s=wpstg),this.pageWrapper=t(e),this.wpstgObject=s,this.enableButtonId="#wpstg-enable-staging-cloning",this.enableAction="wpstg_enable_staging_cloning",this.notyf=new Notyf({duration:1e4,position:{x:"center",y:"bottom"},dismissible:!0,types:[{type:"warning",background:"orange",icon:!1}]}),this.init()}var s=e.prototype;return s.addEvents=function(){var e=this;null!==this.pageWrapper&&n(this.pageWrapper,"click",this.enableButtonId,(function(){e.sendRequest(e.enableAction)}))},s.init=function(){this.addEvents()},s.sendRequest=function(e){var t=this;fetch(this.wpstgObject.ajaxUrl,{method:"POST",credentials:"same-origin",body:new URLSearchParams({action:e,accessToken:this.wpstgObject.accessToken,nonce:this.wpstgObject.nonce}),headers:{"Content-Type":"application/x-www-form-urlencoded"}}).then((function(e){return e.ok?e.json():Promise.reject(e)})).then((function(e){void 0!==e.success&&e.success?location.reload():void 0===e.message?t.notyf.error(t.wpstgObject.i18n.somethingWentWrong):t.notyf.error(e.message)})).catch((function(e){console.warn(t.wpstgObject.i18n.somethingWentWrong,e)}))},e}(),a=function(){function e(e,s,n){void 0===e&&(e="#wpstg-directories-listing"),void 0===s&&(s=wpstg),void 0===n&&(n=null),this.directoryListingContainer=t(e),this.wpstgObject=s,this.dirCheckboxSelector=".wpstg-check-dir",this.dirExpandSelector=".wpstg-expand-dirs",this.unselectAllDirsSelector=".wpstg-unselect-dirs",this.selectDefaultDirsSelector=".wpstg-select-dirs-default",this.fetchChildrenAction="wpstg_fetch_dir_childrens",this.currentCheckboxElement=null,this.currentParentDiv=null,this.currentLoader=null,this.existingExcludes=[],this.excludedDirectories=[],this.isDefaultSelected=!1,this.notyf=n,this.init()}var s=e.prototype;return s.addEvents=function(){var e=this;null!==this.directoryListingContainer?(n(this.directoryListingContainer,"click",this.dirExpandSelector,(function(t,s){s.preventDefault(),e.toggleDirExpand(t)&&e.sendRequest(e.fetchChildrenAction,t)})),n(this.directoryListingContainer,"click",this.unselectAllDirsSelector,(function(){e.unselectAll()})),n(this.directoryListingContainer,"click",this.selectDefaultDirsSelector,(function(){e.selectDefault()}))):console.log("Error: directory navigation add events")},s.init=function(){this.addEvents(),this.parseExcludes()},s.toggleDirExpand=function(e){return this.currentParentDiv=e.parentElement,this.currentCheckboxElement=e.previousSibling,this.currentLoader=this.currentParentDiv.querySelector(".wpstg-is-dir-loading"),"false"!==this.currentCheckboxElement.getAttribute("data-navigateable","false")&&"false"===this.currentCheckboxElement.getAttribute("data-scanned","false")},s.sendRequest=function(e){var t=this;null!==this.currentLoader&&(this.currentLoader.style.display="inline-block"),fetch(this.wpstgObject.ajaxUrl,{method:"POST",credentials:"same-origin",body:new URLSearchParams({action:e,accessToken:this.wpstgObject.accessToken,nonce:this.wpstgObject.nonce,dirPath:this.currentCheckboxElement.value,isChecked:this.currentCheckboxElement.checked,forceDefault:this.isDefaultSelected}),headers:{"Content-Type":"application/x-www-form-urlencoded"}}).then((function(e){return e.ok?e.json():Promise.reject(e)})).then((function(e){if(void 0!==e.success&&e.success){t.currentCheckboxElement.setAttribute("data-scanned",!0);var s=document.createElement("div");return s.classList.add("wpstg-dir"),s.classList.add("wpstg-subdir"),s.innerHTML=JSON.parse(e.directoryListing),t.currentParentDiv.appendChild(s),null!==t.currentLoader&&(t.currentLoader.style.display="none"),void r(s)}null!==t.notyf?t.notyf.error(t.wpstgObject.i18n.somethingWentWrong):alert("Error: "+t.wpstgObject.i18n.somethingWentWrong)})).catch((function(e){console.warn(t.wpstgObject.i18n.somethingWentWrong,e)}))},s.getExcludedDirectories=function(){var e=this;return this.excludedDirectories=[],this.directoryListingContainer.querySelectorAll(".wpstg-dir input:not(:checked)").forEach((function(t){e.isParentExcluded(t.value)||e.excludedDirectories.push(t.value)})),this.existingExcludes.forEach((function(t){e.isParentExcluded(t)||e.isExcludeScanned(t)||e.excludedDirectories.push(t)})),this.excludedDirectories.join(this.wpstgObject.settings.directorySeparator)},s.isParentExcluded=function(e){var t=!1;return this.excludedDirectories.forEach((function(s){e.startsWith(s+"/")&&(t=!0)})),t},s.getExtraDirectoriesRootOnly=function(){this.getExcludedDirectories();var e=[];this.directoryListingContainer.querySelectorAll(":not(.wpstg-subdir)>.wpstg-dir>input.wpstg-wp-non-core-dir:checked").forEach((function(t){e.push(t.value)}));var s=t("#wpstg_extraDirectories");if(null===s||""===s.value)return e.join(this.wpstgObject.settings.directorySeparator);var n=s.value.split(/\r?\n/);return e.concat(n).join(this.wpstgObject.settings.directorySeparator)},s.unselectAll=function(){this.directoryListingContainer.querySelectorAll(".wpstg-dir input").forEach((function(e){e.checked=!1}))},s.selectDefault=function(){this.unselectAll(),this.directoryListingContainer.querySelectorAll(".wpstg-dir input.wpstg-wp-core-dir").forEach((function(e){e.checked=!0})),this.directoryListingContainer.querySelectorAll(".wpstg-dir > .wpstg-wp-non-core-dir").forEach((function(e){e.parentElement.querySelectorAll("input.wpstg-wp-core-dir").forEach((function(e){e.checked=!1}))})),this.isDefaultSelected=!0},s.parseExcludes=function(){this.existingExcludes=this.directoryListingContainer.getAttribute("data-existing-excludes",[]),""===this.existingExcludes&&(this.existingExcludes=[]),0!==this.existingExcludes.length&&(this.existingExcludes=this.existingExcludes.split(","))},s.isExcludeScanned=function(e){return this.directoryListingContainer.querySelectorAll(".wpstg-dir input").forEach((function(t){if(t.value===e)return!0})),!1},e}(),c=function(){function e(e,s){void 0===e&&(e="#wpstg-exclude-filters-container"),void 0===s&&(s=wpstg),this.excludeContainer=t(e),this.excludeTableBody=t(e+" tbody"),this.wpstgObject=s,this.init()}var r=e.prototype;return r.addEvents=function(){var e=this;n(this.excludeContainer,"click",".wpstg-file-size-rule",(function(){e.addFileSizeExclude()})),n(this.excludeContainer,"click",".wpstg-file-ext-rule",(function(){e.addFileExtExclude()})),n(this.excludeContainer,"click",".wpstg-file-name-rule",(function(){e.addFileNameExclude()})),n(this.excludeContainer,"click",".wpstg-dir-name-rule",(function(){e.addDirNameExclude()})),n(this.excludeContainer,"click",".wpstg-clear-all-rules",(function(){e.clearExcludes()})),n(this.excludeContainer,"click",".wpstg-remove-exclude-rule",(function(t){e.removeExclude(t)}))},r.init=function(){null!==this.excludeContainer?this.addEvents():console.log("Error: Given table selector not found!")},r.addFileSizeExclude=function(){this.addExcludeRuleRow("#wpstg-file-size-exclude-filter-template")},r.addFileExtExclude=function(){this.addExcludeRuleRow("#wpstg-file-ext-exclude-filter-template")},r.addFileNameExclude=function(){this.addExcludeRuleRow("#wpstg-file-name-exclude-filter-template")},r.addDirNameExclude=function(){this.addExcludeRuleRow("#wpstg-dir-name-exclude-filter-template")},r.addExcludeRuleRow=function(e){var n=t(e);if(null!==n){var r=n.content.cloneNode(!0).querySelector("tr");this.excludeTableBody.appendChild(r),s(".wpstg-has-exclude-rules").forEach((function(e){e.style.display="inherit"}))}},r.clearExcludes=function(){this.excludeTableBody.innerHTML="",s(".wpstg-has-exclude-rules").forEach((function(e){e.style.display="none"}))},r.removeExclude=function(e){null!==e.parentElement&&null!==e.parentElement.parentElement&&this.excludeTableBody.removeChild(e.parentElement.parentElement),""===this.excludeTableBody.innerHTML.trim()&&s(".wpstg-has-exclude-rules").forEach((function(e){e.style.display="none"}))},r.getExcludeFilters=function(){for(var e=this,t=[],s=[],n=this.excludeTableBody.querySelectorAll('select[name="wpstgFileSizeExcludeRuleCompare[]"]'),r=this.excludeTableBody.querySelectorAll('input[name="wpstgFileSizeExcludeRuleSize[]"]'),o=this.excludeTableBody.querySelectorAll('select[name="wpstgFileSizeExcludeRuleByte[]"]'),i=0,a=Object.entries(r);i<a.length;i++){var c=a[i],l=c[0],g=c[1];""!==g.value&&s.push(n[l].value+" "+g.value+o[l].value)}this.excludeTableBody.querySelectorAll('input[name="wpstgFileExtExcludeRule[]"]').forEach((function(s){var n=e.cleanStringForGlob(s.value);""!==n&&t.push("ext:"+n.trim())}));for(var p=this.excludeTableBody.querySelectorAll('select[name="wpstgFileNameExcludeRulePos[]"]'),d=this.excludeTableBody.querySelectorAll('input[name="wpstgFileNameExcludeRulePath[]"]'),u=0,w=Object.entries(d);u<w.length;u++){var h=w[u],f=h[0],m=h[1],v=this.cleanStringForGlob(m.value);""!==v&&t.push("file:"+p[f].value+" "+v.trim())}for(var b=this.excludeTableBody.querySelectorAll('select[name="wpstgDirNameExcludeRulePos[]"]'),y=this.excludeTableBody.querySelectorAll('input[name="wpstgDirNameExcludeRulePath[]"]'),x=0,k=Object.entries(y);x<k.length;x++){var S=k[x],E=S[0],C=S[1],_=this.cleanStringForGlob(C.value);""!==_&&t.push("dir:"+b[E].value+" "+_.trim())}return{sizes:s.filter(this.onlyUnique).join(","),globs:t.filter(this.onlyUnique).join(",")}},r.onlyUnique=function(e,t,s){return s.indexOf(e)===t},r.cleanStringForGlob=function(e){return e.replace(/[*^//!\.[?]/g,"")},e}(),l=function(){function e(e,t){void 0===t&&(t=wpstg),this.confirmAction=e,this.wpstgObject=t}var t=e.prototype;return t.show=function(e,t,s){var n=this;void 0===t&&(t={}),void 0===s&&(s=null),wpstgSwal.fire(e).then((function(e){e.value&&null!==n.error&&n.triggerConfirmAction(t,s)}))},t.triggerConfirmAction=function(e,t){var s=this;void 0===e&&(e={}),void 0===t&&(t=null),fetch(this.wpstgObject.ajaxUrl,{method:"POST",credentials:"same-origin",body:new URLSearchParams(Object.assign({action:this.confirmAction,accessToken:this.wpstgObject.accessToken,nonce:this.wpstgObject.nonce},e)),headers:{"Content-Type":"application/x-www-form-urlencoded"}}).then((function(e){return e.ok?e.json():Promise.reject(e)})).then((function(e){null!==t&&t(e)})).catch((function(e){console.log(s.wpstgObject.i18n.somethingWentWrong,e)}))},e}();function g(e,t,s,n){var r,o,i,a,c=!1,l=!1,g={},p=0,d=0,u={sensitivity:7,interval:100,timeout:0,handleFocus:!1};function w(e){r=e.clientX,o=e.clientY}function h(e,t){if(d&&(d=clearTimeout(d)),Math.abs(i-r)+Math.abs(a-o)<u.sensitivity)return p=1,l?void 0:s(e,t);i=r,a=o,d=setTimeout((function(){h(e,t)}),u.interval)}function f(e,t){return c=!0,d&&(d=clearTimeout(d)),e.removeEventListener("mousemove",w,!1),1!==p&&(i=t.clientX,a=t.clientY,e.addEventListener("mousemove",w,!1),d=setTimeout((function(){h(e,t)}),u.interval)),this}function m(e){e.target.matches(t+", "+t+" *")&&f(e.target.closest(t),e)}function v(e,t){return c=!1,d&&(d=clearTimeout(d)),e.removeEventListener("mousemove",w,!1),1===p&&(d=setTimeout((function(){!function(e,t){d&&(d=clearTimeout(d)),p=0,l||n(e,t)}(e,t)}),u.timeout)),this}function b(e){e.target.matches(t+", "+t+" *")&&v(e.target.closest(t),e)}function y(e){var n,r;e.target.matches(t+", "+t+" *")&&(n=e.target.closest(t),r=e,c||(l=!0,s(n,r)))}function x(e){var s,r;e.target.matches(t+", "+t+" *")&&(s=e.target.closest(t),r=e,!c&&l&&(l=!1,n(s,r)))}function k(){e.removeEventListener("focus",y,!1),e.removeEventListener("blur",x,!1)}return g.options=function(t){var s=t.handleFocus!==u.handleFocus;return u=Object.assign({},u,t),s&&(u.handleFocus?(e.addEventListener("focus",y,!1),e.addEventListener("blur",x,!1)):k()),g},g.remove=function(){e&&(e.removeEventListener("mouseover",m,!1),e.removeEventListener("mouseout",b,!1),k())},e&&(e.addEventListener("mouseover",m,!1),e.addEventListener("mouseout",b,!1)),g}var p=function(e){var t={continueErrorHandle:!0,cache:{elements:[],get:function(t){return-1!==e.inArray(t,this.elements)||(this.elements[t]=e(t)),this.elements[t]},refresh:function(t){t.elements[t]=e(t)}},listenTooltip:function(){g(document,".wpstg--tooltip",(function(e,t){e.querySelector(".wpstg--tooltiptext").style.visibility="visible"}),(function(e,t){e.querySelector(".wpstg--tooltiptext").style.visibility="hidden"}))},isEmpty:function(e){for(var t in e)if(e.hasOwnProperty(t))return!1;return!0},getSwalModal:function(e,t){void 0===e&&(e=!1),void 0===t&&(t={});var s={confirmButton:"wpstg--btn--confirm wpstg-blue-primary wpstg-button wpstg-link-btn wpstg-100-width",cancelButton:"wpstg--btn--cancel wpstg-blue-primary wpstg-link-btn wpstg-100-width",actions:"wpstg--modal--actions",popup:e?"wpstg-swal-popup centered-modal":"wpstg-swal-popup"},n={customClass:Object.assign(s,t),buttonsStyling:!1,reverseButtons:!0,showClass:{popup:"wpstg--swal2-show wpstg-swal-show"}};return wpstgSwal.mixin(n)},showSuccessModal:function(e){this.getSwalModal().fire({showConfirmButton:!1,showCancelButton:!0,cancelButtonText:"OK",icon:"success",title:"Success!",html:'<div class="wpstg--grey" style="text-align: left; margin-top: 8px;">'+e+"</div>"})},showWarningModal:function(e){this.getSwalModal().fire({showConfirmButton:!1,showCancelButton:!0,cancelButtonText:"OK",icon:"warning",title:"",html:'<div class="wpstg--grey" style="text-align: left; margin-top: 8px;">'+e+"</div>"})},showErrorModal:function(e){this.getSwalModal().fire({showConfirmButton:!1,showCancelButton:!0,cancelButtonText:"OK",icon:"error",title:"Error!",html:'<div class="wpstg--grey" style="text-align: left; margin-top: 8px;">'+e+"</div>"})},getSwalContainer:function(){return wpstgSwal.getContainer()},closeSwalModal:function(){wpstgSwal.close()},getDataFromWordPressResponse:function(e){if("object"!=typeof e)throw new Error("Unexpected response (ERR 1341)");if(!e.hasOwnProperty("success"))throw new Error("Unexpected response (ERR 1342)");if(!e.hasOwnProperty("data"))throw new Error("Unexpected response (ERR 1343)");if(!1===e.success)throw e.data instanceof Array&&e.data.length>0?new Error(e.data.shift()):new Error("Response was not successful");return e.data},isLoading:function(e){e&&!1!==e?t.cache.get(".wpstg-loader").show():t.cache.get(".wpstg-loader").hide()},slugify:function(e){return e.toString().toLowerCase().normalize("NFD").replace(/[\u0300-\u036f]/g,"").replace(/\s+/g,"-").replace(/&/g,"-and-").replace(/[^a-z0-9\-]/g,"").replace(/-+/g,"-").replace(/^-*/,"").replace(/-*$/,"")},showAjaxFatalError:function(e,s,n){return s=s?s+"<br/><br/>":"Something went wrong! <br/><br/>",n=n?n+"<br/><br/>":"<br/><br/>Please try the <a href='https://wp-staging.com/docs/wp-staging-settings-for-small-servers/' target='_blank'>WP Staging Small Server Settings</a> or submit an error report and contact us.",!1===e?(t.showError(s+" Error: No response."+n),void window.removeEventListener("beforeunload",WPStaging.warnIfClosingDuringProcess)):void 0!==e.error&&e.error?(t.showError(s+" Error: "+e.message+n),void window.removeEventListener("beforeunload",WPStaging.warnIfClosingDuringProcess)):void 0},handleFetchErrors:function(e){return e.ok||t.showError("Error: "+e.status+" - "+e.statusText+". Please try again or contact support."),e},showError:function(s){t.cache.get("#wpstg-try-again").css("display","inline-block"),t.cache.get("#wpstg-cancel-cloning").text("Reset"),t.cache.get("#wpstg-resume-cloning").show(),t.cache.get("#wpstg-error-wrapper").show(),t.cache.get("#wpstg-error-details").show().html(s),t.cache.get("#wpstg-removing-clone").removeClass("loading"),t.cache.get(".wpstg-loader").hide(),e(".wpstg--modal--process--generic-problem").show().html(s)},resetErrors:function(){t.cache.get("#wpstg-error-details").hide().html("")},ajax:function(s,n,r,o,i,a,c){void 0===a&&(a=null),void 0===c&&(c=null),void 0===r&&(r="json"),!1!==o&&(o=!0);var l=10,g=1e4*(i=void 0===i?0:i);a=parseInt(a),isNaN(a)||(g*=a),e.ajax({url:ajaxurl+"?action=wpstg_processing&_="+Date.now()/1e3,type:"POST",dataType:r,cache:!1,data:s,error:function(e,p,d){if(console.log(e.status+" "+e.statusText+"---"+p),"function"!=typeof c||(c(e,p,d),t.continueErrorHandle))if(++i<=l)setTimeout((function(){t.ajax(s,n,r,o,i,a)}),g);else{var u=void 0===e.status?"Unknown":e.status;t.showError("Fatal Error: "+u+" Please try the <a href='https://wp-staging.com/docs/wp-staging-settings-for-small-servers/' target='_blank'>WP Staging Small Server Settings</a> or submit an error report and contact us.")}else t.continueErrorHandle=!0},success:function(e){"function"==typeof n&&n(e)},statusCode:{404:function(){i>=l&&t.showError("Error 404 - Can't find ajax request URL! Please try the <a href='https://wp-staging.com/docs/wp-staging-settings-for-small-servers/' target='_blank'>WP Staging Small Server Settings</a> or submit an error report and contact us.")},500:function(){i>=l&&t.showError("Fatal Error 500 - Internal server error while processing the request! Please try the <a href='https://wp-staging.com/docs/wp-staging-settings-for-small-servers/' target='_blank'>WP Staging Small Server Settings</a> or submit an error report and contact us.")},504:function(){i>l&&t.showError("Error 504 - It looks like your server is rate limiting ajax requests. Please try to resume after a minute. If this still not works try the <a href='https://wp-staging.com/docs/wp-staging-settings-for-small-servers/' target='_blank'>WP Staging Small Server Settings</a> or submit an error report and contact us.\n ")},502:function(){i>=l&&t.showError("Error 502 - It looks like your server is rate limiting ajax requests. Please try to resume after a minute. If this still not works try the <a href='https://wp-staging.com/docs/wp-staging-settings-for-small-servers/' target='_blank'>WP Staging Small Server Settings</a> or submit an error report and contact us.\n ")},503:function(){i>=l&&t.showError("Error 503 - It looks like your server is rate limiting ajax requests. Please try to resume after a minute. If this still not works try the <a href='https://wp-staging.com/docs/wp-staging-settings-for-small-servers/' target='_blank'>WP Staging Small Server Settings</a> or submit an error report and contact us.\n ")},429:function(){i>=l&&t.showError("Error 429 - It looks like your server is rate limiting ajax requests. Please try to resume after a minute. If this still not works try the <a href='https://wp-staging.com/docs/wp-staging-settings-for-small-servers/' target='_blank'>WP Staging Small Server Settings</a> or submit an error report and contact us.\n ")},403:function(){i>=l&&t.showError("Refresh page or login again! The process should be finished successfully. \n ")}}})}};return t}(jQuery),d=function(){function e(e,s,n,r,o){void 0===s&&(s="#wpstg-workflow"),void 0===n&&(n="wpstg_clone_excludes_settings"),void 0===r&&(r="wpstg_modal_error"),void 0===o&&(o=wpstg),this.cloneID=e,this.workflow=t(s),this.wpstgObject=o,this.fetchExcludeSettingsAction=n,this.modalErrorAction=r,this.resetButtonClass="wpstg-confirm-reset-clone",this.resetModalContainerClass="wpstg-reset-confirmation",this.resetTabSelector=".wpstg-reset-exclude-tab",this.directoryNavigator=null,this.excludeFilters=null,this.isAllTablesChecked=!0}var s=e.prototype;return s.addEvents=function(){var e=this,s=t("."+this.resetModalContainerClass);null!==s?(n(s,"click",this.resetTabSelector,(function(t){e.toggleContent(t)})),n(s,"click",".wpstg-button-select",(function(){e.selectDefaultTables()})),n(s,"click",".wpstg-button-unselect",(function(){e.toggleTableSelection()})),n(s,"click",".wpstg-expand-dirs",(function(t,s){s.preventDefault(),e.toggleDirectoryNavigation(t)})),n(s,"change","input.wpstg-check-dir",(function(t){e.updateDirectorySelection(t)}))):console.log("Exit")},s.init=function(){this.addEvents()},s.toggleContent=function(e){var s=t("."+this.resetModalContainerClass),n=e.getAttribute("data-id"),i=e.querySelector(".wpstg-tab-triangle"),a=e.getAttribute("data-collapsed","true"),c=t(n);"true"===a?(s.classList.contains("has-collapsible-open")?s.classList.add("has-collapsible-open-2"):s.classList.add("has-collapsible-open"),r(c),i.style.transform="rotate(90deg)",e.setAttribute("data-collapsed","false")):(s.classList.contains("has-collapsible-open-2")?s.classList.remove("has-collapsible-open-2"):s.classList.remove("has-collapsible-open"),o(c),i.style.removeProperty("transform"),e.setAttribute("data-collapsed","true"))},s.showModal=function(){var e=this.loadModal();return this.init(),this.fetchCloneExcludes(),e},s.loadModal=function(){return p.getSwalModal(!1,{confirmButton:this.resetButtonClass+" wpstg-confirm-reset-clone wpstg--btn--confirm wpstg-blue-primary wpstg-button wpstg-link-btn",container:this.resetModalContainerClass+" wpstg-swal2-container wpstg-swal2-loading"}).fire({title:"",icon:"warning",html:this.getAjaxLoader(),width:"400px",focusConfirm:!1,confirmButtonText:this.wpstgObject.i18n.resetClone,showCancelButton:!0})},s.fetchCloneExcludes=function(){var e=this;this.error=null,fetch(this.wpstgObject.ajaxUrl,{method:"POST",credentials:"same-origin",body:new URLSearchParams({action:this.fetchExcludeSettingsAction,accessToken:this.wpstgObject.accessToken,nonce:this.wpstgObject.nonce,clone:this.cloneID,job:"resetting"}),headers:{"Content-Type":"application/x-www-form-urlencoded"}}).then((function(e){return e.ok?e.json():Promise.reject(e)})).then((function(s){if(s.success){var n=t(".wpstg-reset-confirmation");n.classList.remove("wpstg-swal2-loading"),n.querySelector(".wpstg--swal2-popup").style.width="500px",n.querySelector(".wpstg--swal2-content").innerHTML=s.html,e.directoryNavigator=new a,e.excludeFilters=new c}else{new l(e.modalErrorAction,e.wpstgObject).show(Object.assign({title:"Error",icon:"error",html:e.wpstgObject.i18n.somethingWentWrong,width:"500px",confirmButtonText:"Ok",showCancelButton:!1,customClass:{confirmButton:"wpstg--btn--confirm wpstg-blue-primary wpstg-button wpstg-link-btn",cancelButton:"wpstg--btn--cancel wpstg-blue-primary wpstg-link-btn",actions:"wpstg--modal--actions",popup:"wpstg-swal-popup centered-modal"},buttonsStyling:!1,reverseButtons:!0},s.swalOptions),{type:s.type})}})).catch((function(t){e.renderError({html:e.wpstgObject.i18n.somethingWentWrong+" "+t})}))},s.getDirectoryNavigator=function(){return this.directoryNavigator},s.getExcludeFilters=function(){return this.excludeFilters},s.getAjaxLoader=function(){return'<div class="wpstg-swal2-ajax-loader"><img src="'+this.wpstgObject.wpstgIcon+'" /></div>'},s.toggleDirectoryNavigation=function(e){var t=e.previousSibling;if("false"!==t.getAttribute("data-navigateable","false")&&"false"!==t.getAttribute("data-scanned","false")){var s=function(e,t){for(var s=e.nextElementSibling;s;){if(s.matches(t))return s;s=s.nextElementSibling}}(e,".wpstg-subdir");"none"===s.style.display?r(s):o(s)}},s.updateDirectorySelection=function(e){var t=e.parentElement;e.checked?(function(e,t){for(var s=[],n=e&&e.parentElement;n;n=n.parentElement)n.matches(t)&&s.push(n);return s}(t,".wpstg-dir").forEach((function(e){for(var t=0;t<e.children.length;t++)e.children[t].matches(".wpstg-check-dir")&&(e.children[t].checked=!0)})),t.querySelectorAll(".wpstg-expand-dirs").forEach((function(e){e.classList.remove("disabled")})),t.querySelectorAll(".wpstg-subdir .wpstg-check-dir").forEach((function(e){e.checked=!0}))):(t.querySelectorAll(".wpstg-expand-dirs, .wpstg-check-subdirs").forEach((function(e){e.classList.add("disabled")})),t.querySelectorAll(".wpstg-dir .wpstg-check-dir").forEach((function(e){e.checked=!1})))},s.selectDefaultTables=function(){var e=this,s=t("."+this.resetModalContainerClass).querySelectorAll("#wpstg_select_tables_cloning .wpstg-db-table"),n="^"+this.wpstgObject.tblprefix+"([^0-9])_*",r="^"+this.wpstgObject.tblprefix;s.forEach((function(t){var s=t.getAttribute("name","");"1"===e.wpstgObject.isMultisite&&s.match(n)||""===e.wpstgObject.isMultisite&&s.match(r)?t.setAttribute("selected","selected"):t.removeAttribute("selected")}))},s.toggleTableSelection=function(){var e=t("."+this.resetModalContainerClass);!1===this.isAllTablesChecked?(e.querySelectorAll("#wpstg_select_tables_cloning .wpstg-db-table").forEach((function(e){e.setAttribute("selected","selected")})),e.querySelector(".wpstg-button-unselect").innerHTML="Unselect All",this.isAllTablesChecked=!0):(e.querySelectorAll("#wpstg_select_tables_cloning .wpstg-db-table").forEach((function(e){e.removeAttribute("selected")})),e.querySelector(".wpstg-button-unselect").innerHTML="Select All",this.isAllTablesChecked=!1)},e}(),u=function(){function e(e){void 0===e&&(e="#wpstg-clonepage-wrapper"),this.baseContainer=t(e),this.checkBoxSettingTogglerSelector=".wpstg-toggle-advance-settings-section",this.init()}var s=e.prototype;return s.addEvents=function(){var e=this;null!==this.baseContainer&&n(this.baseContainer,"change",this.checkBoxSettingTogglerSelector,(function(t){e.toggleSettings(t)}))},s.init=function(){this.addEvents()},s.toggleSettings=function(e){var s=t("#"+e.getAttribute("data-id"));e.checked?r(s):o(s)},e}(),w=function(){function e(){this.activeTabClass="wpstg--tab--active",this.mainMenu()}return e.prototype.mainMenu=function(){var e=this;null!==t(".wpstg--tab--header")&&n(t(".wpstg--tab--header"),"click",".wpstg-button",(function(t){var n=t,r=n.getAttribute("data-target"),o=s(r),i=s(".wpstg--tab--header a[data-target]");s(".wpstg--tab--contents > .wpstg--tab--content").forEach((function(t){t.matches("."+e.activeTabClass+":not("+r+")")&&t.classList.remove(e.activeTabClass)})),i.forEach((function(t){t!==n&&t.classList.remove(e.activeTabClass)})),n.classList.add(e.activeTabClass),o.forEach((function(t){t.classList.add(e.activeTabClass)})),"#wpstg--tab--backup"===r&&window.dispatchEvent(new Event("backups-tab"))}))},e}(),h=function(t){var s,n={isCancelled:!1,isFinished:!1,getLogs:!1,time:1,executionTime:!1,progressBar:0,cloneExcludeFilters:null,directoryNavigator:null,notyf:null,areAllTablesChecked:!0},r={elements:[]};r.get=function(e){return-1!==t.inArray(e,r.elements)||(r.elements[e]=jQuery(e)),r.elements[e]},r.refresh=function(e){e.elements[e]=jQuery(e)};var o=function(e){r.get("#wpstg-try-again").css("display","inline-block"),r.get("#wpstg-cancel-cloning").text("Reset"),r.get("#wpstg-resume-cloning").show(),r.get("#wpstg-error-wrapper").show(),r.get("#wpstg-error-details").show().html(e),r.get("#wpstg-removing-clone").removeClass("loading"),r.get(".wpstg-loader").hide(),t(".wpstg--modal--process--generic-problem").show().html(e)};n.warnIfClosingDuringProcess=function(e){return e.returnValue="You MUST leave this window open while cloning/pushing. Please wait...",null};var g=function(e,t,s){return t=t?t+"<br/><br/>":"Something went wrong! <br/><br/>",s=s?s+"<br/><br/>":"<br/><br/>Please try the <a href='https://wp-staging.com/docs/wp-staging-settings-for-small-servers/' target='_blank'>WP Staging Small Server Settings</a> or submit an error report and contact us.",!1===e?(o(t+" Error: No response."+s),void window.removeEventListener("beforeunload",h.warnIfClosingDuringProcess)):void 0!==e.error&&e.error?(console.error(e.message),o(t+" Error: "+e.message+s),void window.removeEventListener("beforeunload",h.warnIfClosingDuringProcess)):void 0},f=function(){r.get("#wpstg-error-details").hide().html("")},m=function(){var e=t("#wpstg_clone_hostname").val();if(""===e)return!0;return!1!==/^http(s)?:\/\/.*$/.test(e)},v=function(){var e=r.get("#wpstg-workflow");e.on("click","#wpstg-cancel-cloning",(function(){if(!confirm("Are you sure you want to cancel cloning process?"))return!1;var e=t(this);t("#wpstg-try-again, #wpstg-home-link").hide(),e.prop("disabled",!0),n.isCancelled=!0,n.progressBar=0,t("#wpstg-processing-status").text("Please wait...this can take up a while."),t(".wpstg-loader, #wpstg-show-log-button").hide(),e.parent().append(s),j()})).on("click","#wpstg-resume-cloning",(function(){f();var e=t(this);t("#wpstg-try-again, #wpstg-home-link").hide(),n.isCancelled=!1,t("#wpstg-processing-status").text("Try to resume cloning process..."),t("#wpstg-error-details").hide(),t(".wpstg-loader").show(),e.parent().append(s),n.startCloning()})).on("click","#wpstg-cancel-cloning-update",(function(){f();var e=t(this);t("#wpstg-try-again, #wpstg-home-link").hide(),e.prop("disabled",!0),n.isCancelled=!0,t("#wpstg-cloning-result").text("Please wait...this can take up a while."),t(".wpstg-loader, #wpstg-show-log-button").hide(),e.parent().append(s),L()})).on("click","#wpstg-restart-cloning",(function(){f();var e=t(this);t("#wpstg-try-again, #wpstg-home-link").hide(),e.prop("disabled",!0),n.isCancelled=!0,t("#wpstg-cloning-result").text("Please wait...this can take up a while."),t(".wpstg-loader, #wpstg-show-log-button").hide(),e.parent().append(s),A()})).on("click",".wpstg-remove-clone[data-clone]",(function(s){f(),s.preventDefault();var n=r.get("#wpstg-existing-clones");e.removeClass("active"),r.get(".wpstg-loader").show(),b({action:"wpstg_confirm_delete_clone",accessToken:wpstg.accessToken,nonce:wpstg.nonce,clone:t(this).data("clone")},(function(e){r.get("#wpstg-removing-clone").html(e),n.children("img").remove(),r.get(".wpstg-loader").hide(),t("html, body").animate({scrollTop:t("#wpstg-remove-clone").offset().top-t(window).height()+t("#wpstg-remove-clone").height()+50},100)}),"HTML")})).on("click","#wpstg-remove-clone",(function(e){f(),e.preventDefault(),r.get("#wpstg-removing-clone").addClass("loading"),r.get(".wpstg-loader").show(),P(t(this).data("clone"))})).on("click","#wpstg-cancel-removing",(function(e){e.preventDefault(),t(".wpstg-clone").removeClass("active"),r.get("#wpstg-removing-clone").html("")})).on("click",".wpstg-execute-clone",(function(s){s.preventDefault();var r=t(this).data("clone");e.addClass("loading"),n.cloneExcludeFilters=null,b({action:"wpstg_scanning",clone:r,accessToken:wpstg.accessToken,nonce:wpstg.nonce},(function(t){t.length<1&&o("Something went wrong! Error: No response. Please try the <a href='https://wp-staging.com/docs/wp-staging-settings-for-small-servers/' target='_blank'>WP Staging Small Server Settings</a> or submit an error report and contact us.");var s=_(t);if(!1!==s&&!1===s.success)return e.removeClass("loading"),void C(s);e.removeClass("loading").html(t),R(),n.directoryNavigator=new a("#wpstg-directories-listing",wpstg,n.notyf),n.cloneExcludeFilters=new c,n.switchStep(2)}),"HTML")})).on("click",".wpstg-reset-clone",(function(e){e.preventDefault();var s=t(this).data("clone"),r=new d(s),o=r.showModal();n.areAllTablesChecked=!0,o.then((function(e){if(e.value){var t=r.getDirectoryNavigator(),n=r.getExcludeFilters().getExcludeFilters();T(s,{includedTables:y(),excludeSizeRules:encodeURIComponent(n.sizes),excludeGlobRules:encodeURIComponent(n.globs),excludedDirectories:t.getExcludedDirectories(),extraDirectories:t.getExtraDirectoriesRootOnly()})}}))}))},b=function e(s,n,r,i,a,c){void 0===c&&(c=null),void 0===r&&(r="json"),!1!==i&&(i=!0);var l=10,g=1e4*(a=void 0===a?0:a);c=parseInt(c),isNaN(c)||(g*=c),t.ajax({url:ajaxurl+"?action=wpstg_processing&_="+Date.now()/1e3,type:"POST",dataType:r,cache:!1,data:s,error:function(t,p,d){if(++a<=l)setTimeout((function(){e(s,n,r,i,a,c)}),g);else{var u=void 0===t.status?"Unknown":t.status;o("Fatal Error: "+u+" Please try the <a href='https://wp-staging.com/docs/wp-staging-settings-for-small-servers/' target='_blank'>WP Staging Small Server Settings</a> or submit an error report and contact us.")}},success:function(e){"function"==typeof n&&n(e)},statusCode:{404:function(){a>=l&&o("Error 404 - Can't find ajax request URL! Please try the <a href='https://wp-staging.com/docs/wp-staging-settings-for-small-servers/' target='_blank'>WP Staging Small Server Settings</a> or submit an error report and contact us.")},500:function(){a>=l&&o("Fatal Error 500 - Internal server error while processing the request! Please try the <a href='https://wp-staging.com/docs/wp-staging-settings-for-small-servers/' target='_blank'>WP Staging Small Server Settings</a> or submit an error report and contact us.")},504:function(){a>l&&o("Error 504 - It looks like your server is rate limiting ajax requests. Please try to resume after a minute. If this still not works try the <a href='https://wp-staging.com/docs/wp-staging-settings-for-small-servers/' target='_blank'>WP Staging Small Server Settings</a> or submit an error report and contact us.\n ")},502:function(){a>=l&&o("Error 502 - It looks like your server is rate limiting ajax requests. Please try to resume after a minute. If this still not works try the <a href='https://wp-staging.com/docs/wp-staging-settings-for-small-servers/' target='_blank'>WP Staging Small Server Settings</a> or submit an error report and contact us.\n ")},503:function(){a>=l&&o("Error 503 - It looks like your server is rate limiting ajax requests. Please try to resume after a minute. If this still not works try the <a href='https://wp-staging.com/docs/wp-staging-settings-for-small-servers/' target='_blank'>WP Staging Small Server Settings</a> or submit an error report and contact us.\n ")},429:function(){a>=l&&o("Error 429 - It looks like your server is rate limiting ajax requests. Please try to resume after a minute. If this still not works try the <a href='https://wp-staging.com/docs/wp-staging-settings-for-small-servers/' target='_blank'>WP Staging Small Server Settings</a> or submit an error report and contact us.\n ")},403:function(){a>=l&&o("Refresh page or login again! The process should be finished successfully. \n ")}}})},y=function(){var e=[];return t("#wpstg_select_tables_cloning option:selected").each((function(){e.push(this.value)})),e},x=function(){var e=[];return t(".wpstg-db-table input:not(:checked)").each((function(){e.push(this.name)})),e},k=function(e,t){r.get(".wpstg-loader").show(),b({action:"wpstg_database_verification",accessToken:wpstg.accessToken,nonce:wpstg.nonce,databaseUser:r.get("#wpstg_db_username").val(),databasePassword:r.get("#wpstg_db_password").val(),databaseServer:r.get("#wpstg_db_server").val(),databaseDatabase:r.get("#wpstg_db_database").val()},(function(s){if(!1===s)return o("Something went wrong! Error: No response.Please try again. If that does not help, <a href='https://wp-staging.com/support/' target='_blank'>open a support ticket</a> "),void r.get(".wpstg-loader").hide();if(void 0===s.success)return o("Something went wrong! Error: Invalid response.Please try again. If that does not help, <a href='https://wp-staging.com/support/' target='_blank'>open a support ticket</a> "),void r.get(".wpstg-loader").hide();if(s.success)return r.get(".wpstg-loader").hide(),void S(e,t);if("comparison"===s.error_type){r.get(".wpstg-loader").hide();var n='<table style="width: 100%;"><thead><tr><th>Property</th><th>Production DB</th><th>Staging DB</th><th>Status</th></tr></thead><tbody>';return s.checks.forEach((function(e){var t='<i style="color: #00ff00">✔</i>';e.production!==e.staging&&(t='<i style="color: #ff0000">❌</i>'),n+="<tr><td>"+e.name+"</td><td>"+e.production+"</td><td>"+e.staging+"</td><td>"+t+"</td></tr>"})),n+="</tbody></table><p>Note: Some mySQL properties do not match. You may proceed but the staging site may not work as expected.</p>",void p.getSwalModal().fire({title:"Different Database Properties",icon:"warning",html:n,width:"650px",focusConfirm:!1,confirmButtonText:"Proceed Anyway",showCancelButton:!0}).then((function(s){s.value&&S(e,t)}))}p.getSwalModal(!0).fire({title:"Different Database Properties",icon:"error",html:s.message,focusConfirm:!0,confirmButtonText:"Ok",showCancelButton:!1}),r.get(".wpstg-loader").hide()}),"json",!1)},S=function(e,s){s.addClass("loading"),n.data={action:e.data("action"),accessToken:wpstg.accessToken,nonce:wpstg.nonce},function(){if("wpstg_cloning"===n.data.action||"wpstg_update"===n.data.action||"wpstg_reset"===n.data.action){if(n.data.cloneID=(new Date).getTime().toString(),"wpstg_update"===n.data.action&&(n.data.cloneID=t("#wpstg-new-clone-id").data("clone")),n.data.cloneName=t("#wpstg-new-clone-id").val()||n.data.cloneID,null!==n.directoryNavigator&&(n.data.excludedDirectories=encodeURIComponent(n.directoryNavigator.getExcludedDirectories()),n.data.extraDirectories=encodeURIComponent(n.directoryNavigator.getExtraDirectoriesRootOnly())),n.data.excludeGlobRules="",n.data.excludeSizeRules="",n.cloneExcludeFilters instanceof c){var e=n.cloneExcludeFilters.getExcludeFilters();n.data.excludeGlobRules=encodeURIComponent(e.globs),n.data.excludeSizeRules=encodeURIComponent(e.sizes)}n.data.includedTables=y(),n.data.databaseServer=t("#wpstg_db_server").val(),n.data.databaseUser=t("#wpstg_db_username").val(),n.data.databasePassword=t("#wpstg_db_password").val(),n.data.databaseDatabase=t("#wpstg_db_database").val(),n.data.databasePrefix=t("#wpstg_db_prefix").val();var s=t("#wpstg_clone_dir").val();n.data.cloneDir=encodeURIComponent(t.trim(s)),n.data.cloneHostname=t("#wpstg_clone_hostname").val(),n.data.emailsAllowed=t("#wpstg_allow_emails").is(":checked"),n.data.uploadsSymlinked=t("#wpstg_symlink_upload").is(":checked"),n.data.cleanPluginsThemes=t("#wpstg-clean-plugins-themes").is(":checked"),n.data.cleanUploadsDir=t("#wpstg-clean-uploads").is(":checked")}}(),E(s)},E=function(e){b(n.data,(function(t){!1===t&&o("Something went wrong!<br/><br/> Go to WP Staging > Settings and lower 'File Copy Limit' and 'DB Query Limit'. Also set 'CPU Load Priority to low 'and try again. If that does not help, <a href='https://wp-staging.com/support/' target='_blank'>open a support ticket</a> "),t.length<1&&o("Something went wrong! No response. Go to WP Staging > Settings and lower 'File Copy Limit' and 'DB Query Limit'. Also set 'CPU Load Priority to low 'and try again. If that does not help, <a href='https://wp-staging.com/support/' target='_blank'>open a support ticket</a> ");var s=_(t);if(!1!==s&&!1===s.success)return e.removeClass("loading"),void C(s);e.removeClass("loading").html(t),n.cloneExcludeFilters=null,"wpstg_scanning"===n.data.action?(n.areAllTablesChecked=!0,n.directoryNavigator=new a("#wpstg-directories-listing",wpstg,n.notyf),n.switchStep(2),n.cloneExcludeFilters=new c):"wpstg_cloning"!==n.data.action&&"wpstg_update"!==n.data.action&&"wpstg_reset"!==n.data.action||n.switchStep(3),n.startCloning()}),"HTML")},C=function(e){new l("wpstg_modal_error",wpstg).show(Object.assign({title:"Error",icon:"error",html:wpstg.i18n.somethingWentWrong,width:"500px",confirmButtonText:"Ok",showCancelButton:!1,customClass:{confirmButton:"wpstg--btn--confirm wpstg-blue-primary wpstg-button wpstg-link-btn",cancelButton:"wpstg--btn--cancel wpstg-blue-primary wpstg-link-btn",actions:"wpstg--modal--actions",popup:"wpstg-swal-popup centered-modal"},buttonsStyling:!1,reverseButtons:!0},e.swalOptions),{type:e.type})},_=function(e){if(!e)return!1;try{var t=JSON.parse(e);if(t&&"object"==typeof t)return t}catch(e){}return!1},T=function(t,s){n.data={action:"wpstg_reset",accessToken:wpstg.accessToken,nonce:wpstg.nonce,cloneID:t},n.data=e({},n.data,s);var o=r.get("#wpstg-workflow");E(o)},D=function(){var e=r.get("#wpstg-workflow");e.addClass("loading"),b({action:"wpstg_overview",accessToken:wpstg.accessToken,nonce:wpstg.nonce},(function(t){t.length<1&&o("Something went wrong! No response. Please try the <a href='https://wp-staging.com/docs/wp-staging-settings-for-small-servers/' target='_blank'>WP Staging Small Server Settings</a> or submit an error report."),r.get(".wpstg-current-step"),e.removeClass("loading").html(t)}),"HTML"),n.switchStep(1),r.get(".wpstg-step3-cloning").show(),r.get(".wpstg-step3-pushing").hide()},P=function e(s){var n=t("#deleteDirectory:checked").data("deletepath");b({action:"wpstg_delete_clone",clone:s,accessToken:wpstg.accessToken,nonce:wpstg.nonce,excludedTables:x(),deleteDir:n},(function(n){if(n&&(g(n),void 0!==n.delete&&("finished"===n.delete||"unfinished"===n.delete)))return r.get("#wpstg-removing-clone").removeClass("loading").html(""),"finished"===n.delete&&void 0===n.error&&t('.wpstg-clone[data-clone-id="'+s+'"]').remove(),t("#wpstg-existing-clones .wpstg-clone").length<1&&(r.get("#wpstg-existing-clones").find("h3").text(""),r.get("#wpstg-no-staging-site-results").show()),void r.get(".wpstg-loader").hide();!0===n||e(s)}))},j=function e(){if(n.timer("stop"),!0===n.isFinished)return!0;b({action:"wpstg_cancel_clone",clone:n.data.cloneID,accessToken:wpstg.accessToken,nonce:wpstg.nonce},(function(t){if(t&&void 0!==t.delete&&"finished"===t.delete)return r.get(".wpstg-loader").hide(),void D();!0===t?D():e()}))},L=function e(){if(!0===n.isFinished)return!0;b({action:"wpstg_cancel_update",clone:n.data.cloneID,accessToken:wpstg.accessToken,nonce:wpstg.nonce},(function(t){t&&void 0!==t.delete&&"finished"===t.delete||!0===t?D():e()}))},A=function(){if(!0===n.isFinished)return!0;b({action:"wpstg_restart",accessToken:wpstg.accessToken,nonce:wpstg.nonce},(function(e){e&&void 0!==e.delete&&"finished"===e.delete||!0===e?D():L()}))},O=function(e){var s;null!=e&&void 0!==e&&(e.constructor===Array?t.each(e,(function(e,t){null!==t&&("ERROR"===t.type?r.get(".wpstg-log-details").append('<span class="wpstg--red">['+t.type+"]</span>-["+t.date+"] "+t.message+"</br>"):r.get(".wpstg-log-details").append("["+t.type+"]-["+t.date+"] "+t.message+"</br>"))})):r.get(".wpstg-log-details").append("["+e.type+"]-["+e.date+"] "+e.message+"</br>")),void 0!==(s=r.get(".wpstg-log-details"))[0]&&s.scrollTop(s[0].scrollHeight)},R=function(){r.get("#wpstg-check-space").on("click",(function(e){r.get(".wpstg-loader").show();var t=encodeURIComponent(n.directoryNavigator.getExcludedDirectories()),s=encodeURIComponent(n.directoryNavigator.getExtraDirectoriesRootOnly());b({action:"wpstg_check_disk_space",accessToken:wpstg.accessToken,nonce:wpstg.nonce,excludedDirectories:t,extraDirectories:s},(function(e){if(!1===e)return r.get("#wpstg-clone-id-error").text("Can not detect required disk space").show(),void r.get(".wpstg-loader").hide();r.get("#wpstg-clone-id-error").html("Estimated necessary disk space: "+e.requiredSpace+(null!==e.errorMessage?"<br>"+e.errorMessage:"")+'<br> <span style="color:#444;">Before you proceed ensure your account has enough free disk space to hold the entire instance of the production site. You can check the available space from your hosting account (cPanel or similar).</span>').show(),r.get(".wpstg-loader").hide()}),"json",!1)}))};return n.timer=function(e){if("stop"===e){var t=n.time;return n.time=1,clearInterval(n.executionTime),n.convertSeconds(t)}n.executionTime=setInterval((function(){null!==document.getElementById("wpstg-processing-timer")&&(document.getElementById("wpstg-processing-timer").innerHTML="Elapsed Time: "+n.convertSeconds(n.time)),n.time++,"stop"===e&&(n.time=1,clearInterval(n.executionTime))}),1e3)},n.convertSeconds=function(e){var t=new Date(null);return t.setSeconds(e),t.toISOString().substr(11,8)},n.startCloning=function(){if(f(),R(),"wpstg_cloning"===n.data.action||"wpstg_update"===n.data.action||"wpstg_reset"===n.data.action){n.isCancelled=!1,r.get(".wpstg-loader").show(),r.get("#wpstg-cancel-cloning").text("Cancel"),r.get("#wpstg-resume-cloning").hide(),r.get("#wpstg-error-details").hide(),setTimeout((function(){window.addEventListener("beforeunload",h.warnIfClosingDuringProcess),e()}),wpstg.delayReq),n.timer("start");var e=function e(){if(!0===n.isCancelled)return window.removeEventListener("beforeunload",h.warnIfClosingDuringProcess),!1;var o;(o=!0)&&!1!==o?r.get(".wpstg-loader").show():r.get(".wpstg-loader").hide();var i="",a="";null!==n.directoryNavigator&&(i=n.directoryNavigator.getExcludedDirectories(),a=n.directoryNavigator.getExtraDirectoriesRootOnly()),r.get(".wpstg-log-details").show(),h.ajax({action:"wpstg_processing",accessToken:wpstg.accessToken,nonce:wpstg.nonce,excludedTables:x(),excludedDirectories:encodeURIComponent(i),extraDirectories:encodeURIComponent(a)},(function(o){g(o),void 0!==o.last_msg&&o.last_msg&&O(o.last_msg),!1===o.status?(s(o),setTimeout((function(){r.get(".wpstg-loader").show(),e()}),wpstg.delayReq)):!0===o.status&&"finished"!==o.status?(r.get("#wpstg-error-details").hide(),r.get("#wpstg-error-wrapper").hide(),s(o),e()):("finished"===o.status||void 0!==o.job_done&&o.job_done)&&(window.removeEventListener("beforeunload",h.warnIfClosingDuringProcess),function(e){!0===n.getLogs&&O();s(e),void 0!==e.last_msg&&O(e.last_msg);r.get(".wpstg-loader").hide(),r.get("#wpstg-processing-header").html("Processing Complete"),t("#wpstg-processing-status").text("Succesfully finished"),r.get("#wpstg_staging_name").html(n.data.cloneID),r.get("#wpstg-finished-result").show(),r.get("#wpstg-cancel-cloning").hide(),r.get("#wpstg-resume-cloning").hide(),r.get("#wpstg-cancel-cloning-update").prop("disabled",!0);var o=r.get("#wpstg-clone-url-1"),i=r.get("#wpstg-clone-url");o.attr("href",e.url),o.html(e.url),i.attr("href",e.url),r.get("#wpstg-remove-clone").data("clone",n.data.cloneID),n.isFinished=!0,n.timer("stop"),r.get(".wpstg-loader").hide(),r.get("#wpstg-processing-header").html("Processing Complete");var a=wpstg.i18n.cloneResetComplete;"wpstg_update"===n.data.action&&(a=wpstg.i18n.cloneUpdateComplete);"wpstg_update"!==n.data.action&&"wpstg_reset"!==n.data.action||(r.get("#wpstg-cancel-cloning-update").hide(),r.get(".wpstg-prev-step-link").show(),p.getSwalModal(!0,{confirmButton:"wpstg--btn--confirm wpstg-green-button wpstg-button wpstg-link-btn wpstg-100-width"}).fire({title:"",icon:"success",html:a,width:"500px",focusConfirm:!0}))}(o))}),"json",!1)},s=function(e,t){if(void 0===e.percentage)return!1;"database"===e.job&&(r.get("#wpstg-progress-db").width(.2*e.percentage+"%").html(e.percentage+"%"),r.get("#wpstg-processing-status").html(e.percentage.toFixed(0)+"% - Step 1 of 4 Cloning Database Tables...")),"SearchReplace"===e.job&&(r.get("#wpstg-progress-db").css("background-color","#3bc36b"),r.get("#wpstg-progress-db").html("1. Database"),r.get("#wpstg-progress-db").width("20%"),r.get("#wpstg-progress-sr").width(.1*e.percentage+"%").html(e.percentage+"%"),r.get("#wpstg-processing-status").html(e.percentage.toFixed(0)+"% - Step 2 of 4 Preparing Database Data...")),"directories"===e.job&&(r.get("#wpstg-progress-sr").css("background-color","#3bc36b"),r.get("#wpstg-progress-sr").html("2. Data"),r.get("#wpstg-progress-sr").width("10%"),r.get("#wpstg-progress-dirs").width(.1*e.percentage+"%").html(e.percentage+"%"),r.get("#wpstg-processing-status").html(e.percentage.toFixed(0)+"% - Step 3 of 4 Getting files...")),"files"===e.job&&(r.get("#wpstg-progress-dirs").css("background-color","#3bc36b"),r.get("#wpstg-progress-dirs").html("3. Files"),r.get("#wpstg-progress-dirs").width("10%"),r.get("#wpstg-progress-files").width(.6*e.percentage+"%").html(e.percentage+"%"),r.get("#wpstg-processing-status").html(e.percentage.toFixed(0)+"% - Step 4 of 4 Copy files...")),"finish"===e.job&&(r.get("#wpstg-progress-files").css("background-color","#3bc36b"),r.get("#wpstg-progress-files").html("4. Copy Files"),r.get("#wpstg-progress-files").width("60%"),r.get("#wpstg-processing-status").html(e.percentage.toFixed(0)+"% - Cloning Process Finished"))}}},n.switchStep=function(e){r.get(".wpstg-current-step").removeClass("wpstg-current-step"),r.get(".wpstg-step"+e).addClass("wpstg-current-step")},n.init=function(){var e,o,a;D(),o=r.get("#wpstg-workflow"),a=ajaxurl.replace("/admin-ajax.php","")+"/images/spinner",2<window.devicePixelRatio&&(a+="-2x"),s="<img src=''"+(a+=".gif")+"' alt='' class='ajax-spinner general-spinner' />",o.on("click",".wpstg-button-unselect",(function(e){e.preventDefault(),!1===n.areAllTablesChecked?(r.get("#wpstg_select_tables_cloning .wpstg-db-table").prop("selected","selected"),r.get(".wpstg-button-unselect").text("Unselect All"),r.get(".wpstg-db-table-checkboxes").prop("checked",!0),n.areAllTablesChecked=!0):(r.get("#wpstg_select_tables_cloning .wpstg-db-table").prop("selected",!1),r.get(".wpstg-button-unselect").text("Select All"),r.get(".wpstg-db-table-checkboxes").prop("checked",!1),n.areAllTablesChecked=!1)})).on("click",".wpstg-button-select",(function(e){e.preventDefault(),t("#wpstg_select_tables_cloning .wpstg-db-table").each((function(){1==wpstg.isMultisite&&(t(this).attr("name").match("^"+wpstg.tblprefix+"([^0-9])_*")?t(this).prop("selected","selected"):t(this).prop("selected",!1)),0==wpstg.isMultisite&&(t(this).attr("name").match("^"+wpstg.tblprefix)?t(this).prop("selected","selected"):t(this).prop("selected",!1))}))})).on("click",".wpstg-expand-dirs",(function(e){e.preventDefault(),t(this).siblings(".wpstg-subdir").slideToggle()})).on("change","input.wpstg-check-dir",(function(){var e=t(this).parent(".wpstg-dir");this.checked?(e.parents(".wpstg-dir").children(".wpstg-check-dir").prop("checked",!0),e.find(".wpstg-expand-dirs").removeClass("disabled"),e.find(".wpstg-subdir .wpstg-check-dir").prop("checked",!0)):(e.find(".wpstg-dir .wpstg-check-dir").prop("checked",!1),e.find(".wpstg-expand-dirs, .wpstg-check-subdirs").addClass("disabled"),e.find(".wpstg-check-subdirs").data("action","check").text("check"))})).on("change","href.wpstg-check-dir",(function(){var e=t(this).parent(".wpstg-dir");this.checked?(e.parents(".wpstg-dir").children(".wpstg-check-dir").prop("checked",!0),e.find(".wpstg-expand-dirs").removeClass("disabled"),e.find(".wpstg-subdir .wpstg-check-dir").prop("checked",!0)):(e.find(".wpstg-dir .wpstg-check-dir").prop("checked",!1),e.find(".wpstg-expand-dirs, .wpstg-check-subdirs").addClass("disabled"),e.find(".wpstg-check-subdirs").data("action","check").text("check"))})).on("keyup","#wpstg-new-clone-id",(function(){if(document.getElementById("wpstg-error-details").style.display="none","number"==typeof e&&clearInterval(e),void 0===this.value||""===this.value)return r.get("#wpstg-new-clone-id").removeClass("wpstg-error-input"),r.get("#wpstg-start-cloning").removeAttr("disabled"),void r.get("#wpstg-clone-id-error").text("").hide();var t=p.slugify(this.value);e=setTimeout((function(){b({action:"wpstg_check_clone",accessToken:wpstg.accessToken,nonce:wpstg.nonce,directoryName:t},(function(e){"success"===e.status?(r.get("#wpstg-new-clone-id").removeClass("wpstg-error-input"),r.get("#wpstg-start-cloning").removeAttr("disabled"),r.get("#wpstg-clone-id-error").text("").hide()):(r.get("#wpstg-new-clone-id").addClass("wpstg-error-input"),r.get("#wpstg-start-cloning").prop("disabled",!0),r.get("#wpstg-clone-id-error").text(e.message).show())}))}),500)})).on("click","#wpstg-start-cloning",(function(){f(),n.isCancelled=!1,n.getLogs=!1,n.progressBar=0})).on("input","#wpstg-new-clone-id",(function(){if(!(t("#wpstg-clone-directory").length<1)){var e=p.slugify(this.value),s=t("#wpstg-use-target-dir"),n=t("#wpstg-use-target-hostname"),r=s.data("base-path"),o=n.data("base-uri");r&&(r=r.replace(/\/+$/g,"")+"/"+e+"/"),o&&(o=o.replace(/\/+$/g,"")+"/"+e),t(".wpstg-use-target-dir--value").text(r),t(".wpstg-use-target-hostname--value").text(o),s.attr("data-path",r),n.attr("data-uri",o),t("#wpstg_clone_dir").attr("placeholder",r),t("#wpstg_clone_hostname").attr("placeholder",o)}})).on("input","#wpstg_clone_hostname",(function(){""===t(this).val()||m()?t("#wpstg_clone_hostname_error").remove():m()||t("#wpstg_clone_hostname_error").length||t("#wpstg-clone-directory tr:last-of-type").after('<tr><td>&nbsp;</td><td><p id="wpstg_clone_hostname_error" style="color: red;">&nbsp;Invalid host name. Please provide it in a format like http://example.com</p></td></tr>')})),v(),function(){var e=r.get("#wpstg-workflow");e.on("click",".wpstg-next-step-link",(function(s){s.preventDefault();var n=t(this);if(t("#wpstg_clone_hostname").length&&!m())return t("#wpstg_clone_hostname").focus(),!1;if("wpstg_update"===n.data("action")||"wpstg_reset"===n.data("action")){var r="";if("wpstg_update"===n.data("action")&&(r=" \n\nExclude all tables and folders you do not want to overwrite, first! \n\nDo not cancel the updating process! This can break your staging site. \n\nCreate a backup of your staging website before you proceed."),!confirm("STOP! This will overwrite your staging site with all selected data from the production site! This should be used only if you want to clone again your production site. Are you sure you want to do this?"+r))return!1}if(n.attr("disabled"))return!1;"wpstg_cloning"===n.data("action")&&t("#wpstg-ext-db").is(":checked")?k(n,e):S(n,e)})).on("click",".wpstg-prev-step-link",(function(e){e.preventDefault(),r.get(".wpstg-loader").removeClass("wpstg-finished"),r.get(".wpstg-loader").hide(),D()}))}(),r.get("#wpstg-workflow").on("click",".wpstg-tab-header",(function(e){e.preventDefault();var s=t(this),n=r.get(s.data("id"));s.toggleClass("expand"),n.slideToggle();var o=s.find(".wpstg-tab-triangle");s.hasClass("expand")?(o.removeClass("wpstg-no-icon"),o.text(""),o.addClass("wpstg-rotate-90")):o.removeClass("wpstg-rotate-90")})),p.listenTooltip(),new w,new i,new u,n.notyf=new Notyf({duration:1e4,position:{x:"center",y:"bottom"},dismissible:!0,types:[{type:"warning",background:"orange",icon:!1}]})},n.ajax=b,n.showError=o,n.getLogs=O,n.loadOverview=D,n}(jQuery);jQuery(document).ready((function(){h.init(),window.WPStaging=h})),jQuery(document).ready((function(e){function t(s,n){void 0===n&&(n="false");var r=s.next(),o=e(".wpstg--tab--active .wpstg-report-email").val(),i=e(".wpstg--tab--active .wpstg-report-hosting-provider").val(),a=e(".wpstg--tab--active .wpstg-report-description").val(),c=e(".wpstg--tab--active .wpstg-report-syslog").is(":checked"),l=e(".wpstg--tab--active .wpstg-report-terms").is(":checked");s.attr("disabled",!0),r.css("visibility","visible"),e.ajax({url:ajaxurl,type:"POST",dataType:"json",async:!0,data:{action:"wpstg_send_report",accessToken:wpstg.accessToken,nonce:wpstg.nonce,wpstg_email:o,wpstg_provider:i,wpstg_message:a,wpstg_syslog:+c,wpstg_terms:+l,wpstg_force_send:n}}).done((function(n){if(s.attr("disabled",!1),r.css("visibility","hidden"),n.errors.length>0){e(".wpstg--tab--active .wpstg-report-issue-form .wpstg-message").remove();var o=e("<div />").addClass("wpstg-message wpstg-error-message");e.each(n.errors,(function(e,n){"already_submitted"===n.status?(o="",p.getSwalModal(!0,{container:"wpstg-issue-resubmit-confirmation"}).fire({title:"",icon:"warning",html:n.message,showCancelButton:!0,focusConfirm:!1,confirmButtonText:"Yes",cancelButtonText:"No"}).then((function(e){e.isConfirmed&&t(s,"true")}))):o.append("<p>"+n+"</p>")})),e(".wpstg--tab--active .wpstg-report-issue-form").prepend(o)}else{var i=e("<div />").addClass("wpstg-message wpstg-success-message");i.append("<p>Thanks for submitting your request! You should receive an auto reply mail with your ticket ID immediately for confirmation!<br><br>If you do not get that mail please contact us directly at <strong>support@wp-staging.com</strong></p>"),e(".wpstg--tab--active .wpstg-report-issue-form").html(i),e(".wpstg--tab--active .wpstg-success-message").append('<div style="float:right;margin-top:10px;"><a id="wpstg-success-button" href="#" class="wpstg--red">[X] CLOSE</a></div>'),setTimeout((function(){e(".wpstg--tab--active .wpstg-report-issue-form").removeClass("wpstg-report-active")}),2e3)}}))}e("body").on("click","#wpstg-report-issue-button",(function(t){console.log("REPORT"),e(".wpstg--tab--active .wpstg-report-issue-form").toggleClass("wpstg-report-show"),t.preventDefault()})),e("body").on("click","#wpstg-backups-report-issue-button",(function(t){e(".wpstg--tab--active .wpstg-report-issue-form").toggleClass("wpstg-report-show"),t.preventDefault()})),e("body").on("click","#wpstg-report-cancel",(function(t){e(".wpstg--tab--active .wpstg-report-issue-form").removeClass("wpstg-report-show"),t.preventDefault()})),e("body").on("click",".wpstg--tab--active #wpstg-report-submit",(function(s){t(e(this),"false"),s.preventDefault()})),e("body").on("click","#wpstg-success-button",(function(t){t.preventDefault(),e(".wpstg-report-issue-form").removeClass("wpstg-report-show")})),e(document).on("click",".wpstg-dropdown>.wpstg-dropdown-toggler",(function(t){t.preventDefault(),e(t.target).next(".wpstg-dropdown-menu").toggleClass("shown"),e(t.target).find(".wpstg-caret").toggleClass("wpstg-caret-up")})),e(document).on("click",".wpstg-caret",(function(t){t.preventDefault();var s=e(t.target).closest(".wpstg-dropdown-toggler");s&&s.trigger("click")})),document.addEventListener("click",(function(t){if(!t.target.closest(".wpstg-dropdown-toggler")){for(var s=document.getElementsByClassName("wpstg-dropdown-menu"),n=0;n<s.length;n++)s[n].classList.remove("shown");e(".wpstg-caret").removeClass("wpstg-caret-up")}}))}))}();
2
  //# sourceMappingURL=wpstg-admin.min.js.map
assets/js/dist/wpstg-admin.min.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"wpstg-admin.min.js","sources":["../src/modules/wpstg-dom-utils.js","../src/modules/wpstg-clone-staging.js","../src/modules/wpstg-directory-navigation.js","../src/modules/wpstg-exclude-filters.js","../src/modules/wpstg-modal.js","../src/modules/wpstg-hover-intent.js","../src/wpstg.js","../src/modules/wpstg-reset-modal.js","../src/modules/wpstg-cloning-advance-settings.js","../src/modules/wpstg-main-menu.js","../src/wpstg-admin.js"],"sourcesContent":["/**\n * WP STAGING basic jQuery replacement\n */\n\n/**\n * Shortcut for document.querySelector() or jQuery's $()\n * Return single element only\n */\nexport function qs(selector) {\n return document.querySelector(selector);\n}\n\n/**\n * Shortcut for document.querySelector() or jQuery's $()\n * Return collection of elements\n */\nexport function all(selector) {\n return document.querySelectorAll(selector);\n}\n\n/**\n * alternative of jQuery - $(parent).on(event, selector, handler)\n */\nexport function addEvent(parent, evt, selector, handler) {\n parent.addEventListener(evt, function(event) {\n if (event.target.matches(selector + ', ' + selector + ' *')) {\n handler(event.target.closest(selector), event);\n }\n }, false);\n}\n\nexport function slideDown(element, duration = 400) {\n element.style.display = 'block';\n element.style.overflow = 'hidden';\n const height = element.offsetHeight;\n element.style.height = '0px';\n element.style.transitionProperty = 'height';\n element.style.transitionDuration = duration + 'ms';\n setTimeout(() => {\n element.style.height = height + 'px';\n window.setTimeout(() => {\n element.style.removeProperty('height');\n element.style.removeProperty('overflow');\n element.style.removeProperty('transition-duration');\n element.style.removeProperty('transition-property');\n }, duration);\n }, 0);\n}\n\nexport function slideUp(element, duration = 400) {\n element.style.display = 'block';\n element.style.overflow = 'hidden';\n const height = element.offsetHeight;\n element.style.height = height + 'px';\n element.style.transitionProperty = 'height';\n element.style.transitionDuration = duration + 'ms';\n setTimeout(() => {\n element.style.height = '0px';\n window.setTimeout(() => {\n element.style.display = 'none';\n element.style.removeProperty('height');\n element.style.removeProperty('overflow');\n element.style.removeProperty('transition-duration');\n element.style.removeProperty('transition-property');\n }, duration);\n }, 0);\n}\n\nexport function getNextSibling(element, selector) {\n let sibling = element.nextElementSibling;\n\n while (sibling) {\n if (sibling.matches(selector)) {\n return sibling;\n }\n\n sibling = sibling.nextElementSibling;\n }\n};\n\nexport function getParents(element, selector) {\n const result = [];\n for (let parent = element && element.parentElement; parent; parent = parent.parentElement) {\n if (parent.matches(selector)) {\n result.push(parent);\n }\n }\n\n return result;\n}\n\n/**\n * Check if element has class name\n * @param element\n * @param className\n * @return {boolean}\n */\nexport function hasClass(element, className) {\n return (' ' + element.className + ' ').indexOf(' ' + className+ ' ') > -1;\n}\n","import * as dom from './wpstg-dom-utils.js';\n\n/**\n * Enable/Disable cloning for staging site\n */\nexport default class WpstgCloneStaging {\n constructor(\n pageWrapperId = '#wpstg-clonepage-wrapper',\n wpstgObject = wpstg,\n ) {\n this.pageWrapper = dom.qs(pageWrapperId);\n this.wpstgObject = wpstgObject;\n this.enableButtonId = '#wpstg-enable-staging-cloning';\n this.enableAction = 'wpstg_enable_staging_cloning';\n\n this.notyf = new Notyf({\n duration: 10000,\n position: {\n x: 'center',\n y: 'bottom',\n },\n dismissible: true,\n types: [\n {\n type: 'warning',\n background: 'orange',\n icon: false,\n },\n ],\n });\n this.init();\n }\n\n addEvents() {\n if (this.pageWrapper === null) {\n return;\n }\n\n dom.addEvent(this.pageWrapper, 'click', this.enableButtonId, () => {\n this.sendRequest(this.enableAction);\n });\n }\n\n init() {\n this.addEvents();\n }\n\n sendRequest(action) {\n fetch(this.wpstgObject.ajaxUrl, {\n method: 'POST',\n credentials: 'same-origin',\n body: new URLSearchParams({\n action: action,\n accessToken: this.wpstgObject.accessToken,\n nonce: this.wpstgObject.nonce,\n }),\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n },\n }).then((response) => {\n if (response.ok) {\n return response.json();\n }\n\n return Promise.reject(response);\n }).then((data) => {\n // Reload current page if successful.\n if ('undefined' !== typeof (data.success) && data.success) {\n location.reload();\n return;\n }\n\n // There will be message probably in case of error\n if ('undefined' !== typeof (data.message)) {\n this.notyf.error(data.message);\n return;\n }\n\n this.notyf.error(this.wpstgObject.i18n['somethingWentWrong']);\n }).catch((error) => {\n console.warn(this.wpstgObject.i18n['somethingWentWrong'], error);\n });\n }\n}\n","import * as dom from './wpstg-dom-utils.js';\n\n/**\n * Fetch directory direct child directories\n */\nexport default class WpstgDirectoryNavigation {\n constructor(\n directoryListingSelector = '#wpstg-directories-listing',\n wpstgObject = wpstg,\n notyf = null,\n ) {\n this.directoryListingContainer = dom.qs(directoryListingSelector);\n this.wpstgObject = wpstgObject;\n this.dirCheckboxSelector = '.wpstg-check-dir';\n this.dirExpandSelector = '.wpstg-expand-dirs';\n this.unselectAllDirsSelector = '.wpstg-unselect-dirs';\n this.selectDefaultDirsSelector = '.wpstg-select-dirs-default';\n this.fetchChildrenAction = 'wpstg_fetch_dir_childrens';\n this.currentCheckboxElement = null;\n this.currentParentDiv = null;\n this.currentLoader = null;\n this.existingExcludes = [];\n this.excludedDirectories = [];\n this.isDefaultSelected = false;\n this.notyf = notyf;\n\n this.init();\n }\n\n addEvents() {\n if (this.directoryListingContainer === null) {\n console.log('Error: directory navigation add events');\n return;\n }\n\n dom.addEvent(this.directoryListingContainer, 'click', this.dirExpandSelector, (element, event) => {\n event.preventDefault();\n if (this.toggleDirExpand(element)) {\n this.sendRequest(this.fetchChildrenAction, element);\n }\n });\n\n dom.addEvent(this.directoryListingContainer, 'click', this.unselectAllDirsSelector, () => {\n this.unselectAll();\n });\n\n dom.addEvent(this.directoryListingContainer, 'click', this.selectDefaultDirsSelector, () => {\n this.selectDefault();\n });\n }\n\n init() {\n this.addEvents();\n this.parseExcludes();\n }\n\n /**\n * Toggle Dir Expand,\n * Return true if children aren't fetched\n * @param {HTMLElement} element\n * @return {boolean}\n */\n toggleDirExpand(element) {\n this.currentParentDiv = element.parentElement;\n this.currentCheckboxElement = element.previousSibling;\n this.currentLoader = this.currentParentDiv.querySelector('.wpstg-is-dir-loading');\n if (this.currentCheckboxElement.getAttribute('data-navigateable', 'false') === 'false') {\n return false;\n }\n\n if (this.currentCheckboxElement.getAttribute('data-scanned', 'false') === 'false') {\n return true;\n }\n\n return false;\n }\n\n sendRequest(action) {\n if (this.currentLoader !== null) {\n this.currentLoader.style.display = 'inline-block';\n }\n\n fetch(this.wpstgObject.ajaxUrl, {\n method: 'POST',\n credentials: 'same-origin',\n body: new URLSearchParams({\n action: action,\n accessToken: this.wpstgObject.accessToken,\n nonce: this.wpstgObject.nonce,\n dirPath: this.currentCheckboxElement.value,\n isChecked: this.currentCheckboxElement.checked,\n forceDefault: this.isDefaultSelected,\n }),\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n },\n }).then((response) => {\n if (response.ok) {\n return response.json();\n }\n\n return Promise.reject(response);\n }).then((data) => {\n if ('undefined' !== typeof (data.success) && data.success) {\n this.currentCheckboxElement.setAttribute('data-scanned', true);\n const dirContainer = document.createElement('div');\n dirContainer.classList.add('wpstg-dir');\n dirContainer.classList.add('wpstg-subdir');\n dirContainer.innerHTML = JSON.parse(data.directoryListing);\n this.currentParentDiv.appendChild(dirContainer);\n if (this.currentLoader !== null) {\n this.currentLoader.style.display = 'none';\n }\n\n dom.slideDown(dirContainer);\n\n return;\n }\n\n if (this.notyf !== null) {\n this.notyf.error(this.wpstgObject.i18n['somethingWentWrong']);\n } else {\n alert('Error: ' + this.wpstgObject.i18n['somethingWentWrong']);\n }\n }).catch((error) => {\n console.warn(this.wpstgObject.i18n['somethingWentWrong'], error);\n });\n }\n\n getExcludedDirectories() {\n this.excludedDirectories = [];\n this.directoryListingContainer.querySelectorAll('.wpstg-dir input:not(:checked)').forEach((element) => {\n if (!this.isParentExcluded(element.value)) {\n this.excludedDirectories.push(element.value);\n }\n });\n\n this.existingExcludes.forEach((exclude) => {\n if (!this.isParentExcluded(exclude) && !this.isExcludeScanned(exclude)) {\n this.excludedDirectories.push(exclude);\n }\n });\n\n return this.excludedDirectories.join(this.wpstgObject.settings.directorySeparator);\n }\n\n /**\n * @param {string} path\n * @return {bool}\n */\n isParentExcluded(path) {\n let isParentAlreadyExcluded = false;\n this.excludedDirectories.forEach((dir) => {\n if (path.startsWith(dir + '/')) {\n isParentAlreadyExcluded = true;\n }\n });\n\n return isParentAlreadyExcluded;\n }\n\n getExtraDirectoriesRootOnly() {\n this.getExcludedDirectories();\n const extraDirectories = [];\n this.directoryListingContainer.querySelectorAll(':not(.wpstg-subdir)>.wpstg-dir>input.wpstg-wp-non-core-dir:checked').forEach((element) => {\n extraDirectories.push(element.value);\n });\n\n // Check if extra directories text area exists\n // TODO: remove extraCustomDirectories code if no one require extraCustomDirectories...\n const extraDirectoriesTextArea = dom.qs('#wpstg_extraDirectories');\n if (extraDirectoriesTextArea === null || extraDirectoriesTextArea.value === '') {\n return extraDirectories.join(this.wpstgObject.settings.directorySeparator);\n }\n\n const extraCustomDirectories = extraDirectoriesTextArea.value.split(/\\r?\\n/);\n\n return extraDirectories.concat(extraCustomDirectories).join(this.wpstgObject.settings.directorySeparator);\n }\n\n unselectAll() {\n this.directoryListingContainer.querySelectorAll('.wpstg-dir input').forEach((element) => {\n element.checked = false;\n });\n }\n\n selectDefault() {\n // unselect all checkboxes\n this.unselectAll();\n\n // only select those checkboxes whose class is wpstg-wp-core-dir\n this.directoryListingContainer.querySelectorAll('.wpstg-dir input.wpstg-wp-core-dir').forEach((element) => {\n element.checked = true;\n });\n\n // then unselect those checkboxes whose parent has wpstg extra checkbox\n this.directoryListingContainer.querySelectorAll('.wpstg-dir > .wpstg-wp-non-core-dir').forEach((element) => {\n element.parentElement.querySelectorAll('input.wpstg-wp-core-dir').forEach((element) => {\n element.checked = false;\n });\n });\n\n this.isDefaultSelected = true;\n }\n\n parseExcludes() {\n this.existingExcludes = this.directoryListingContainer.getAttribute('data-existing-excludes', []);\n if (this.existingExcludes === '') {\n this.existingExcludes = [];\n }\n\n if (this.existingExcludes.length !== 0) {\n this.existingExcludes = this.existingExcludes.split(',');\n }\n }\n\n isExcludeScanned(exclude) {\n this.directoryListingContainer.querySelectorAll('.wpstg-dir input').forEach((element) => {\n if (element.value === exclude) {\n return true;\n }\n });\n\n return false;\n }\n}\n","import * as dom from './wpstg-dom-utils.js';\n\n/**\n * Rich Exclude Filter Module\n */\nexport default class WpstgExcludeFilters {\n constructor(\n excludeFilterContainerSelector = '#wpstg-exclude-filters-container',\n wpstgObject = wpstg,\n ) {\n this.excludeContainer = dom.qs(excludeFilterContainerSelector);\n this.excludeTableBody = dom.qs(`${excludeFilterContainerSelector} tbody`);\n this.wpstgObject = wpstgObject;\n this.init();\n }\n\n addEvents() {\n dom.addEvent(this.excludeContainer, 'click', '.wpstg-file-size-rule', () => {\n this.addFileSizeExclude();\n });\n\n dom.addEvent(this.excludeContainer, 'click', '.wpstg-file-ext-rule', () => {\n this.addFileExtExclude();\n });\n\n dom.addEvent(this.excludeContainer, 'click', '.wpstg-file-name-rule', () => {\n this.addFileNameExclude();\n });\n\n dom.addEvent(this.excludeContainer, 'click', '.wpstg-dir-name-rule', () => {\n this.addDirNameExclude();\n });\n\n dom.addEvent(this.excludeContainer, 'click', '.wpstg-clear-all-rules', () => {\n this.clearExcludes();\n });\n\n dom.addEvent(this.excludeContainer, 'click', '.wpstg-remove-exclude-rule', (target) => {\n this.removeExclude(target);\n });\n }\n\n init() {\n if (this.excludeContainer === null) {\n console.log('Error: Given table selector not found!');\n return;\n }\n\n this.addEvents();\n }\n\n addFileSizeExclude() {\n this.addExcludeRuleRow('#wpstg-file-size-exclude-filter-template');\n }\n\n addFileExtExclude() {\n this.addExcludeRuleRow('#wpstg-file-ext-exclude-filter-template');\n }\n\n addFileNameExclude() {\n this.addExcludeRuleRow('#wpstg-file-name-exclude-filter-template');\n }\n\n addDirNameExclude() {\n this.addExcludeRuleRow('#wpstg-dir-name-exclude-filter-template');\n }\n\n addExcludeRuleRow(templateName) {\n const excludeRowTemplate = dom.qs(templateName);\n if (excludeRowTemplate !== null) {\n const clone = excludeRowTemplate.content.cloneNode(true);\n const excludeRow = clone.querySelector('tr');\n\n this.excludeTableBody.appendChild(excludeRow);\n dom.all('.wpstg-has-exclude-rules').forEach((e) => {\n e.style.display = 'inherit';\n });\n }\n }\n\n clearExcludes() {\n this.excludeTableBody.innerHTML = '';\n dom.all('.wpstg-has-exclude-rules').forEach((e) => {\n e.style.display = 'none';\n });\n }\n\n removeExclude(target) {\n if (target.parentElement !== null && target.parentElement.parentElement !== null) {\n this.excludeTableBody.removeChild(target.parentElement.parentElement);\n }\n\n if (this.excludeTableBody.innerHTML.trim() === '') {\n dom.all('.wpstg-has-exclude-rules').forEach((e) => {\n e.style.display = 'none';\n });\n }\n }\n\n /**\n * Converts all the exclude filters arrays into one single string to keep size of post request small\n * @return {string}\n */\n getExcludeFilters() {\n const globExcludes = [];\n const sizeExcludes = [];\n\n const sizeCompares = this.excludeTableBody.querySelectorAll('select[name=\"wpstgFileSizeExcludeRuleCompare[]\"]');\n const sizeSizes = this.excludeTableBody.querySelectorAll('input[name=\"wpstgFileSizeExcludeRuleSize[]\"]');\n const sizeByte = this.excludeTableBody.querySelectorAll('select[name=\"wpstgFileSizeExcludeRuleByte[]\"]');\n for (const [key, sizeInput] of Object.entries(sizeSizes)) {\n if (sizeInput.value !== '') {\n sizeExcludes.push(sizeCompares[key].value + ' ' + sizeInput.value + sizeByte[key].value);\n }\n }\n\n const extensionInputs = this.excludeTableBody.querySelectorAll('input[name=\"wpstgFileExtExcludeRule[]\"]');\n extensionInputs.forEach((x) => {\n const ext = this.cleanStringForGlob(x.value);\n if (ext !== '') {\n globExcludes.push('ext:' + ext.trim());\n }\n });\n\n const fileNamesPos = this.excludeTableBody.querySelectorAll('select[name=\"wpstgFileNameExcludeRulePos[]\"]');\n const fileNames = this.excludeTableBody.querySelectorAll('input[name=\"wpstgFileNameExcludeRulePath[]\"]');\n for (const [key, fileInput] of Object.entries(fileNames)) {\n const fileName = this.cleanStringForGlob(fileInput.value);\n if (fileName !== '') {\n globExcludes.push('file:' + fileNamesPos[key].value + ' ' + fileName.trim());\n }\n }\n\n const dirNamesPos = this.excludeTableBody.querySelectorAll('select[name=\"wpstgDirNameExcludeRulePos[]\"]');\n const dirNames = this.excludeTableBody.querySelectorAll('input[name=\"wpstgDirNameExcludeRulePath[]\"]');\n for (const [key, dirInput] of Object.entries(dirNames)) {\n const dirName = this.cleanStringForGlob(dirInput.value);\n if (dirName !== '') {\n globExcludes.push('dir:' + dirNamesPos[key].value + ' ' + dirName.trim());\n }\n }\n\n return {\n 'sizes': sizeExcludes.filter(this.onlyUnique).join(','),\n // return set of unique rules\n 'globs': globExcludes.filter(this.onlyUnique).join(','),\n };\n }\n\n onlyUnique(value, index, self) {\n return self.indexOf(value) === index;\n }\n\n /**\n * Remove most of the comment glob characters from the string\n * @param {String} value\n * @return {String}\n */\n cleanStringForGlob(value) {\n // will replace character like * ^ / \\ ! ? [ from the string\n return value.replace(/[*^//!\\.[?]/g, '');\n }\n}\n","/**\n * Basic WP Staging Modal implemented with help of Sweetalerts\n */\nexport default class WpstgModal {\n constructor(\n confirmAction,\n wpstgObject = wpstg,\n ) {\n this.confirmAction = confirmAction;\n this.wpstgObject = wpstgObject;\n }\n\n show(swalOptions, additionalParams = {}, callback = null) {\n wpstgSwal.fire(swalOptions).then((result) => {\n if (result.value && this.error !== null) {\n this.triggerConfirmAction(additionalParams, callback);\n }\n });\n }\n\n triggerConfirmAction(additionalParams = {}, callback = null) {\n fetch(this.wpstgObject.ajaxUrl, {\n method: 'POST',\n credentials: 'same-origin',\n body: new URLSearchParams(Object.assign({\n action: this.confirmAction,\n accessToken: this.wpstgObject.accessToken,\n nonce: this.wpstgObject.nonce,\n }, additionalParams)),\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n },\n }).then((response) => {\n if (response.ok) {\n return response.json();\n }\n\n return Promise.reject(response);\n }).then((response) => {\n if (callback !== null) {\n callback(response);\n }\n }).catch((error) => {\n console.log(this.wpstgObject.i18n['somethingWentWrong'], error);\n });\n }\n}\n","'use strict';\n\n/**\n * This is a namespaced port of https://github.com/tristen/hoverintent,\n * with slight modification to accept selector with dynamically added element in dom,\n * instead of just already present element.\n *\n * @param {HTMLElement} parent\n * @param {string} selector\n * @param {CallableFunction} onOver\n * @param {CallableFunction} onOut\n *\n * @return {object}\n */\nexport default function(parent, selector, onOver, onOut) {\n let x; let y; let pX; let pY;\n let mouseOver = false;\n let focused = false;\n const h = {};\n let state = 0;\n let timer = 0;\n\n let options = {\n sensitivity: 7,\n interval: 100,\n timeout: 0,\n handleFocus: false,\n };\n\n function delay(el, e) {\n if (timer) {\n timer = clearTimeout(timer);\n }\n\n state = 0;\n return focused ? undefined : onOut(el, e);\n }\n\n function tracker(e) {\n x = e.clientX;\n y = e.clientY;\n }\n\n function compare(el, e) {\n if (timer) timer = clearTimeout(timer);\n if ((Math.abs(pX - x) + Math.abs(pY - y)) < options.sensitivity) {\n state = 1;\n return focused ? undefined : onOver(el, e);\n } else {\n pX = x;\n pY = y;\n timer = setTimeout(function() {\n compare(el, e);\n }, options.interval);\n }\n }\n\n // Public methods\n h.options = function(opt) {\n const focusOptionChanged = opt.handleFocus !== options.handleFocus;\n options = Object.assign({}, options, opt);\n if (focusOptionChanged) {\n options.handleFocus ? addFocus() : removeFocus();\n }\n\n return h;\n };\n\n function dispatchOver(el, e) {\n mouseOver = true;\n if (timer) {\n timer = clearTimeout(timer);\n }\n\n el.removeEventListener('mousemove', tracker, false);\n\n if (state !== 1) {\n pX = e.clientX;\n pY = e.clientY;\n\n el.addEventListener('mousemove', tracker, false);\n\n timer = setTimeout(function() {\n compare(el, e);\n }, options.interval);\n }\n\n return this;\n }\n\n /**\n * Newly added method,\n * A wrapper around dispatchOver to support dynamically added elements to dom\n */\n function onMouseOver(event) {\n if (event.target.matches(selector + ', ' + selector + ' *')) {\n dispatchOver(event.target.closest(selector), event);\n }\n };\n\n function dispatchOut(el, e) {\n mouseOver = false;\n if (timer) {\n timer = clearTimeout(timer);\n }\n\n el.removeEventListener('mousemove', tracker, false);\n\n if (state === 1) {\n timer = setTimeout(function() {\n delay(el, e);\n }, options.timeout);\n }\n\n return this;\n }\n\n /**\n * Newly added method,\n * A wrapper around dispatchOut to support dynamically added elements to dom\n */\n function onMouseOut(event) {\n if (event.target.matches(selector + ', ' + selector + ' *')) {\n dispatchOut(event.target.closest(selector), event);\n }\n };\n\n function dispatchFocus(el, e) {\n if (!mouseOver) {\n focused = true;\n onOver(el, e);\n }\n }\n\n /**\n * Newly added method,\n * A wrapper around dispatchFocus to support dynamically added elements to dom\n */\n function onFocus(event) {\n if (event.target.matches(selector + ', ' + selector + ' *')) {\n dispatchFocus(event.target.closest(selector), event);\n }\n };\n\n function dispatchBlur(el, e) {\n if (!mouseOver && focused) {\n focused = false;\n onOut(el, e);\n }\n }\n\n /**\n * Newly added method,\n * A wrapper around dispatchBlur to support dynamically added elements to dom\n */\n function onBlur(event) {\n if (event.target.matches(selector + ', ' + selector + ' *')) {\n dispatchBlur(event.target.closest(selector), event);\n }\n };\n\n /**\n * Modified to support dynamically added element\n */\n function addFocus() {\n parent.addEventListener('focus', onFocus, false);\n parent.addEventListener('blur', onBlur, false);\n }\n\n /**\n * Modified to support dynamically added element\n */\n function removeFocus() {\n parent.removeEventListener('focus', onFocus, false);\n parent.removeEventListener('blur', onBlur, false);\n }\n\n /**\n * Modified to support dynamically added element\n */\n h.remove = function() {\n if (!parent) {\n return;\n }\n\n parent.removeEventListener('mouseover', onMouseOver, false);\n parent.removeEventListener('mouseout', onMouseOut, false);\n removeFocus();\n };\n\n /**\n * Modified to support dynamically added element\n */\n if (parent) {\n parent.addEventListener('mouseover', onMouseOver, false);\n parent.addEventListener('mouseout', onMouseOut, false);\n }\n\n return h;\n};\n","import wpstgHoverIntent from './modules/wpstg-hover-intent';\n\nexport default (function($) {\n const WPStagingCommon = {\n continueErrorHandle: true,\n cache: {\n elements: [],\n get: function(selector) {\n // It is already cached!\n if ($.inArray(selector, this.elements) !== -1) {\n return this.elements[selector];\n }\n\n // Create cache and return\n this.elements[selector] = $(selector);\n\n return this.elements[selector];\n },\n refresh: function(selector) {\n selector.elements[selector] = $(selector);\n },\n },\n listenTooltip: function() {\n wpstgHoverIntent(document, '.wpstg--tooltip', function(target, event) {\n target.querySelector('.wpstg--tooltiptext').style.visibility = 'visible';\n }, function(target, event) {\n target.querySelector('.wpstg--tooltiptext').style.visibility = 'hidden';\n });\n },\n isEmpty: function(obj) {\n for (const prop in obj) {\n if (obj.hasOwnProperty(prop)) {\n return false;\n }\n }\n\n return true;\n },\n // Get the custom themed Swal Modal for WP Staging\n // Easy to maintain now in one place now\n getSwalModal: function(isContentCentered = false, customClasses = {}) {\n // common style for all swal modal used in WP Staging\n const defaultCustomClasses = {\n confirmButton: 'wpstg--btn--confirm wpstg-blue-primary wpstg-button wpstg-link-btn wpstg-100-width',\n cancelButton: 'wpstg--btn--cancel wpstg-blue-primary wpstg-link-btn wpstg-100-width',\n actions: 'wpstg--modal--actions',\n popup: isContentCentered ? 'wpstg-swal-popup centered-modal' : 'wpstg-swal-popup',\n };\n\n // If a attribute exists in both default and additional attributes,\n // The class(es) of the additional attribute will overrite the default one.\n const options = {\n customClass: Object.assign(defaultCustomClasses, customClasses),\n buttonsStyling: false,\n reverseButtons: true,\n showClass: {\n popup: 'wpstg--swal2-show wpstg-swal-show',\n },\n };\n\n return wpstgSwal.mixin(options);\n },\n showSuccessModal: function(htmlContent) {\n this.getSwalModal().fire({\n showConfirmButton: false,\n showCancelButton: true,\n cancelButtonText: 'OK',\n icon: 'success',\n title: 'Success!',\n html: '<div class=\"wpstg--grey\" style=\"text-align: left; margin-top: 8px;\">' + htmlContent + '</div>',\n });\n },\n showWarningModal: function(htmlContent) {\n this.getSwalModal().fire({\n showConfirmButton: false,\n showCancelButton: true,\n cancelButtonText: 'OK',\n icon: 'warning',\n title: '',\n html: '<div class=\"wpstg--grey\" style=\"text-align: left; margin-top: 8px;\">' + htmlContent + '</div>',\n });\n },\n showErrorModal: function(htmlContent) {\n this.getSwalModal().fire({\n showConfirmButton: false,\n showCancelButton: true,\n cancelButtonText: 'OK',\n icon: 'error',\n title: 'Error!',\n html: '<div class=\"wpstg--grey\" style=\"text-align: left; margin-top: 8px;\">' + htmlContent + '</div>',\n });\n },\n getSwalContainer: function() {\n return wpstgSwal.getContainer();\n },\n closeSwalModal: function() {\n wpstgSwal.close();\n },\n /**\n * Treats a default response object generated by WordPress's\n * wp_send_json_success() or wp_send_json_error() functions in\n * PHP, parses it in JavaScript, and either throws if it's an error,\n * or returns the data if the response is successful.\n *\n * @param {object} response\n * @return {*}\n */\n getDataFromWordPressResponse(response) {\n if (typeof response !== 'object') {\n throw new Error('Unexpected response (ERR 1341)');\n }\n\n if (!response.hasOwnProperty('success')) {\n throw new Error('Unexpected response (ERR 1342)');\n }\n\n if (!response.hasOwnProperty('data')) {\n throw new Error('Unexpected response (ERR 1343)');\n }\n\n if (response.success === false) {\n if (response.data instanceof Array && response.data.length > 0) {\n throw new Error(response.data.shift());\n } else {\n throw new Error('Response was not successful');\n }\n } else {\n // Successful response. Return the data.\n return response.data;\n }\n },\n isLoading: function(isLoading) {\n if (!isLoading || isLoading === false) {\n WPStagingCommon.cache.get('.wpstg-loader').hide();\n } else {\n WPStagingCommon.cache.get('.wpstg-loader').show();\n }\n },\n /**\n * Convert the given url to make it slug compatible\n * @param {string} url\n */\n slugify: function(url) {\n return url.toString()\n .toLowerCase()\n .normalize('NFD')\n .replace(/[\\u0300-\\u036f]/g, '')\n .replace(/\\s+/g, '-')\n .replace(/&/g, '-and-')\n .replace(/[^a-z0-9\\-]/g, '')\n .replace(/-+/g, '-')\n .replace(/^-*/, '')\n .replace(/-*$/, '')\n ;\n },\n showAjaxFatalError: function(response, prependMessage, appendMessage) {\n prependMessage = prependMessage ? prependMessage + '<br/><br/>' : 'Something went wrong! <br/><br/>';\n appendMessage = appendMessage ? appendMessage + '<br/><br/>' : '<br/><br/>Please try the <a href=\\'https://wp-staging.com/docs/wp-staging-settings-for-small-servers/\\' target=\\'_blank\\'>WP Staging Small Server Settings</a> or submit an error report and contact us.';\n\n if (response === false) {\n WPStagingCommon.showError(prependMessage + ' Error: No response.' + appendMessage);\n window.removeEventListener('beforeunload', WPStaging.warnIfClosingDuringProcess);\n return;\n }\n\n if (typeof response.error !== 'undefined' && response.error) {\n WPStagingCommon.showError(prependMessage + ' Error: ' + response.message + appendMessage);\n window.removeEventListener('beforeunload', WPStaging.warnIfClosingDuringProcess);\n return;\n }\n },\n handleFetchErrors: function(response) {\n if (!response.ok) {\n WPStagingCommon.showError('Error: ' + response.status + ' - ' + response.statusText + '. Please try again or contact support.');\n }\n return response;\n },\n showError: function(message) {\n WPStagingCommon.cache.get('#wpstg-try-again').css('display', 'inline-block');\n WPStagingCommon.cache.get('#wpstg-cancel-cloning').text('Reset');\n WPStagingCommon.cache.get('#wpstg-resume-cloning').show();\n WPStagingCommon.cache.get('#wpstg-error-wrapper').show();\n WPStagingCommon.cache.get('#wpstg-error-details').show().html(message);\n WPStagingCommon.cache.get('#wpstg-removing-clone').removeClass('loading');\n WPStagingCommon.cache.get('.wpstg-loader').hide();\n $('.wpstg--modal--process--generic-problem').show().html(message);\n },\n resetErrors: function() {\n WPStagingCommon.cache.get('#wpstg-error-details').hide().html('');\n },\n /**\n * Ajax Requests\n * @param {Object} data\n * @param {Function} callback\n * @param {string} dataType\n * @param {bool} showErrors\n * @param {int} tryCount\n * @param {float} incrementRatio\n * @param errorCallback\n */\n ajax: function(data, callback, dataType, showErrors, tryCount, incrementRatio = null, errorCallback = null) {\n if ('undefined' === typeof (dataType)) {\n dataType = 'json';\n }\n\n if (false !== showErrors) {\n showErrors = true;\n }\n\n tryCount = 'undefined' === typeof (tryCount) ? 0 : tryCount;\n\n const retryLimit = 10;\n\n let retryTimeout = 10000 * tryCount;\n\n incrementRatio = parseInt(incrementRatio);\n if (!isNaN(incrementRatio)) {\n retryTimeout *= incrementRatio;\n }\n\n $.ajax({\n url: ajaxurl + '?action=wpstg_processing&_=' + (Date.now() / 1000),\n type: 'POST',\n dataType: dataType,\n cache: false,\n data: data,\n error: function(xhr, textStatus, errorThrown) {\n console.log(xhr.status + ' ' + xhr.statusText + '---' + textStatus);\n\n if (typeof (errorCallback) === 'function') {\n // Custom error handler\n errorCallback(xhr, textStatus, errorThrown);\n\n if (!WPStagingCommon.continueErrorHandle) {\n // Reset state\n WPStagingCommon.continueErrorHandle = true;\n\n return;\n }\n }\n\n // Default error handler\n tryCount++;\n if (tryCount <= retryLimit) {\n setTimeout(function() {\n WPStagingCommon.ajax(data, callback, dataType, showErrors, tryCount, incrementRatio);\n return;\n }, retryTimeout);\n } else {\n const errorCode = 'undefined' === typeof (xhr.status) ? 'Unknown' : xhr.status;\n WPStagingCommon.showError(\n 'Fatal Error: ' + errorCode + ' Please try the <a href=\\'https://wp-staging.com/docs/wp-staging-settings-for-small-servers/\\' target=\\'_blank\\'>WP Staging Small Server Settings</a> or submit an error report and contact us.',\n );\n }\n },\n success: function(data) {\n if ('function' === typeof (callback)) {\n callback(data);\n }\n },\n statusCode: {\n 404: function() {\n if (tryCount >= retryLimit) {\n WPStagingCommon.showError('Error 404 - Can\\'t find ajax request URL! Please try the <a href=\\'https://wp-staging.com/docs/wp-staging-settings-for-small-servers/\\' target=\\'_blank\\'>WP Staging Small Server Settings</a> or submit an error report and contact us.');\n }\n },\n 500: function() {\n if (tryCount >= retryLimit) {\n WPStagingCommon.showError('Fatal Error 500 - Internal server error while processing the request! Please try the <a href=\\'https://wp-staging.com/docs/wp-staging-settings-for-small-servers/\\' target=\\'_blank\\'>WP Staging Small Server Settings</a> or submit an error report and contact us.');\n }\n },\n 504: function() {\n if (tryCount > retryLimit) {\n WPStagingCommon.showError('Error 504 - It looks like your server is rate limiting ajax requests. Please try to resume after a minute. If this still not works try the <a href=\\'https://wp-staging.com/docs/wp-staging-settings-for-small-servers/\\' target=\\'_blank\\'>WP Staging Small Server Settings</a> or submit an error report and contact us.\\n\\ ');\n }\n },\n 502: function() {\n if (tryCount >= retryLimit) {\n WPStagingCommon.showError('Error 502 - It looks like your server is rate limiting ajax requests. Please try to resume after a minute. If this still not works try the <a href=\\'https://wp-staging.com/docs/wp-staging-settings-for-small-servers/\\' target=\\'_blank\\'>WP Staging Small Server Settings</a> or submit an error report and contact us.\\n\\ ');\n }\n },\n 503: function() {\n if (tryCount >= retryLimit) {\n WPStagingCommon.showError('Error 503 - It looks like your server is rate limiting ajax requests. Please try to resume after a minute. If this still not works try the <a href=\\'https://wp-staging.com/docs/wp-staging-settings-for-small-servers/\\' target=\\'_blank\\'>WP Staging Small Server Settings</a> or submit an error report and contact us.\\n\\ ');\n }\n },\n 429: function() {\n if (tryCount >= retryLimit) {\n WPStagingCommon.showError('Error 429 - It looks like your server is rate limiting ajax requests. Please try to resume after a minute. If this still not works try the <a href=\\'https://wp-staging.com/docs/wp-staging-settings-for-small-servers/\\' target=\\'_blank\\'>WP Staging Small Server Settings</a> or submit an error report and contact us.\\n\\ ');\n }\n },\n 403: function() {\n if (tryCount >= retryLimit) {\n WPStagingCommon.showError('Refresh page or login again! The process should be finished successfully. \\n\\ ');\n }\n },\n },\n });\n },\n };\n\n return WPStagingCommon;\n})(jQuery);\n","\nimport * as dom from './wpstg-dom-utils.js';\nimport WpstgDirectoryNavigation from './wpstg-directory-navigation.js';\nimport WpstgExcludeFilters from './wpstg-exclude-filters.js';\nimport WpstgModal from './wpstg-modal.js';\nimport WPStagingCommon from './../wpstg.js';\n\n/**\n * Manage RESET MODAL\n */\nexport default class WpstgResetModal {\n constructor(\n cloneID,\n workflowSelector = '#wpstg-workflow',\n fetchExcludeSettingsAction = 'wpstg_clone_excludes_settings',\n modalErrorAction = 'wpstg_modal_error',\n wpstgObject = wpstg,\n ) {\n this.cloneID = cloneID;\n this.workflow = dom.qs(workflowSelector);\n this.wpstgObject = wpstgObject;\n this.fetchExcludeSettingsAction = fetchExcludeSettingsAction;\n this.modalErrorAction = modalErrorAction;\n this.resetButtonClass = 'wpstg-confirm-reset-clone';\n this.resetModalContainerClass = 'wpstg-reset-confirmation';\n this.resetTabSelector = '.wpstg-reset-exclude-tab';\n this.directoryNavigator = null;\n this.excludeFilters = null;\n this.isAllTablesChecked = true;\n }\n\n addEvents() {\n const resetModalContainer = dom.qs('.' + this.resetModalContainerClass);\n if (resetModalContainer === null) {\n console.log('Exit');\n return;\n }\n\n dom.addEvent(resetModalContainer, 'click', this.resetTabSelector, (target) => {\n this.toggleContent(target);\n });\n\n dom.addEvent(resetModalContainer, 'click', '.wpstg-button-select', () => {\n this.selectDefaultTables();\n });\n\n dom.addEvent(resetModalContainer, 'click', '.wpstg-button-unselect', () => {\n this.toggleTableSelection();\n });\n\n dom.addEvent(resetModalContainer, 'click', '.wpstg-expand-dirs', (target, event) => {\n event.preventDefault();\n this.toggleDirectoryNavigation(target);\n });\n\n dom.addEvent(resetModalContainer, 'change', 'input.wpstg-check-dir', (target) => {\n this.updateDirectorySelection(target);\n });\n }\n\n init() {\n this.addEvents();\n }\n\n toggleContent(target) {\n const resetModalContainer = dom.qs('.' + this.resetModalContainerClass);\n const contentId = target.getAttribute('data-id');\n const tabTriangle = target.querySelector('.wpstg-tab-triangle');\n const isCollapsed = target.getAttribute('data-collapsed', 'true');\n const content = dom.qs(contentId);\n if (isCollapsed === 'true') {\n if (resetModalContainer.classList.contains('has-collapsible-open')) {\n resetModalContainer.classList.add('has-collapsible-open-2');\n } else {\n resetModalContainer.classList.add('has-collapsible-open');\n }\n\n dom.slideDown(content);\n tabTriangle.style.transform = 'rotate(90deg)';\n target.setAttribute('data-collapsed', 'false');\n } else {\n if (resetModalContainer.classList.contains('has-collapsible-open-2')) {\n resetModalContainer.classList.remove('has-collapsible-open-2');\n } else {\n resetModalContainer.classList.remove('has-collapsible-open');\n }\n\n dom.slideUp(content);\n tabTriangle.style.removeProperty('transform');\n target.setAttribute('data-collapsed', 'true');\n }\n }\n\n /**\n * Show Swal alert with loader and send ajax request to fetch content of alert.\n * @return Promise\n */\n showModal() {\n const swalPromise = this.loadModal();\n this.init();\n this.fetchCloneExcludes();\n return swalPromise;\n }\n\n loadModal() {\n return WPStagingCommon.getSwalModal(false, {\n confirmButton: this.resetButtonClass + ' wpstg-confirm-reset-clone wpstg--btn--confirm wpstg-blue-primary wpstg-button wpstg-link-btn',\n container: this.resetModalContainerClass + ' wpstg-swal2-container wpstg-swal2-loading',\n }).fire({\n title: '',\n icon: 'warning',\n html: this.getAjaxLoader(),\n width: '400px',\n focusConfirm: false,\n confirmButtonText: this.wpstgObject.i18n.resetClone,\n showCancelButton: true,\n });\n }\n\n fetchCloneExcludes() {\n this.error = null;\n // send ajax request and fetch preserved exclude settings\n fetch(this.wpstgObject.ajaxUrl, {\n method: 'POST',\n credentials: 'same-origin',\n body: new URLSearchParams({\n action: this.fetchExcludeSettingsAction,\n accessToken: this.wpstgObject.accessToken,\n nonce: this.wpstgObject.nonce,\n clone: this.cloneID,\n job: 'resetting',\n }),\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n },\n }).then((response) => {\n if (response.ok) {\n return response.json();\n }\n\n return Promise.reject(response);\n }).then((data) => {\n if (!data.success) {\n const errorModal = new WpstgModal(this.modalErrorAction, this.wpstgObject);\n errorModal.show(Object.assign({\n title: 'Error',\n icon: 'error',\n html: this.wpstgObject.i18n['somethingWentWrong'],\n width: '500px',\n confirmButtonText: 'Ok',\n showCancelButton: false,\n customClass: {\n confirmButton: 'wpstg--btn--confirm wpstg-blue-primary wpstg-button wpstg-link-btn',\n cancelButton: 'wpstg--btn--cancel wpstg-blue-primary wpstg-link-btn',\n actions: 'wpstg--modal--actions',\n popup: 'wpstg-swal-popup centered-modal',\n },\n buttonsStyling: false,\n reverseButtons: true,\n }, data.swalOptions), {\n type: data.type,\n });\n\n return;\n }\n\n const modal = dom.qs('.wpstg-reset-confirmation');\n modal.classList.remove('wpstg-swal2-loading');\n modal.querySelector('.wpstg--swal2-popup').style.width = '500px';\n modal.querySelector('.wpstg--swal2-content').innerHTML = data.html;\n this.directoryNavigator = new WpstgDirectoryNavigation();\n this.excludeFilters = new WpstgExcludeFilters();\n }).catch((error) => {\n this.renderError({\n 'html': this.wpstgObject.i18n['somethingWentWrong'] + ' ' + error,\n });\n });\n }\n\n getDirectoryNavigator() {\n return this.directoryNavigator;\n }\n\n getExcludeFilters() {\n return this.excludeFilters;\n }\n\n getAjaxLoader() {\n return '<div class=\"wpstg-swal2-ajax-loader\"><img src=\"' + this.wpstgObject.wpstgIcon + '\" /></div>';\n }\n\n toggleDirectoryNavigation(element) {\n const cbElement = element.previousSibling;\n if (cbElement.getAttribute('data-navigateable', 'false') === 'false') {\n return;\n }\n\n if (cbElement.getAttribute('data-scanned', 'false') === 'false') {\n return;\n }\n\n const subDirectories = dom.getNextSibling(element, '.wpstg-subdir');\n\n if (subDirectories.style.display === 'none') {\n dom.slideDown(subDirectories);\n } else {\n dom.slideUp(subDirectories);\n }\n }\n\n updateDirectorySelection(element) {\n const parent = element.parentElement;\n if (element.checked) {\n dom.getParents(parent, '.wpstg-dir').forEach((parElem) => {\n for (let i = 0; i < parElem.children.length; i++) {\n if (parElem.children[i].matches('.wpstg-check-dir')) {\n parElem.children[i].checked = true;\n }\n }\n });\n parent.querySelectorAll('.wpstg-expand-dirs').forEach((x) => {\n x.classList.remove('disabled');\n });\n parent.querySelectorAll('.wpstg-subdir .wpstg-check-dir').forEach((x) => {\n x.checked = true;\n });\n } else {\n parent.querySelectorAll('.wpstg-expand-dirs, .wpstg-check-subdirs').forEach((x) => {\n x.classList.add('disabled');\n });\n parent.querySelectorAll('.wpstg-dir .wpstg-check-dir').forEach((x) => {\n x.checked = false;\n });\n }\n }\n\n selectDefaultTables() {\n const resetModalContainer = dom.qs('.' + this.resetModalContainerClass);\n const options = resetModalContainer.querySelectorAll('#wpstg_select_tables_cloning .wpstg-db-table');\n const multisitePattern = '^' + this.wpstgObject.tblprefix + '([^0-9])_*';\n const singleSitePattern = '^' + this.wpstgObject.tblprefix;\n options.forEach((option) => {\n const name = option.getAttribute('name', '');\n if (this.wpstgObject.isMultisite === '1' && name.match(multisitePattern)) {\n option.setAttribute('selected', 'selected');\n } else if (this.wpstgObject.isMultisite === '' && name.match(singleSitePattern)) {\n option.setAttribute('selected', 'selected');\n } else {\n option.removeAttribute('selected');\n }\n });\n }\n\n toggleTableSelection() {\n const resetModalContainer = dom.qs('.' + this.resetModalContainerClass);\n if (false === this.isAllTablesChecked) {\n resetModalContainer.querySelectorAll('#wpstg_select_tables_cloning .wpstg-db-table').forEach((option) => {\n option.setAttribute('selected', 'selected');\n });\n resetModalContainer.querySelector('.wpstg-button-unselect').innerHTML = 'Unselect All';\n // cache.get('.wpstg-db-table-checkboxes').prop('checked', true);\n this.isAllTablesChecked = true;\n } else {\n resetModalContainer.querySelectorAll('#wpstg_select_tables_cloning .wpstg-db-table').forEach((option) => {\n option.removeAttribute('selected');\n });\n resetModalContainer.querySelector('.wpstg-button-unselect').innerHTML = 'Select All';\n // cache.get('.wpstg-db-table-checkboxes').prop('checked', false);\n this.isAllTablesChecked = false;\n }\n }\n}\n","import * as dom from './wpstg-dom-utils.js';\n\n/**\n * Handle toggle of advance settings checkboxes\n */\nexport default class WpstgCloningAdvanceSettings {\n constructor(\n baseContainerSelector = '#wpstg-clonepage-wrapper',\n ) {\n this.baseContainer = dom.qs(baseContainerSelector);\n this.checkBoxSettingTogglerSelector = '.wpstg-toggle-advance-settings-section';\n this.init();\n }\n\n /**\n * Add events\n * @return {void}\n */\n addEvents() {\n if (this.baseContainer === null) {\n return;\n }\n\n dom.addEvent(this.baseContainer, 'change', this.checkBoxSettingTogglerSelector, (element) => {\n this.toggleSettings(element);\n });\n }\n\n /**\n * @return {void}\n */\n init() {\n this.addEvents();\n }\n\n /**\n * Expand/Collapse checkbox content on change\n * @return {void}\n */\n toggleSettings(element) {\n const target = dom.qs('#' + element.getAttribute('data-id'));\n if (element.checked) {\n dom.slideDown(target);\n } else {\n dom.slideUp(target);\n }\n }\n}\n","import * as dom from './wpstg-dom-utils.js';\n\nexport default class WpstgMainMenu {\n constructor() {\n this.activeTabClass = 'wpstg--tab--active';\n this.mainMenu();\n }\n\n mainMenu() {\n const tabHeader = dom.qs('.wpstg--tab--header');\n // Early bail if tab header is not available\n if (tabHeader === null) {\n return;\n }\n\n dom.addEvent(dom.qs('.wpstg--tab--header'), 'click', '.wpstg-button', (element) => {\n const $this = element;\n const target = $this.getAttribute('data-target');\n const targetElements = dom.all(target);\n const menuItems = dom.all('.wpstg--tab--header a[data-target]');\n const contents = dom.all('.wpstg--tab--contents > .wpstg--tab--content');\n\n contents.forEach((content) => {\n // active tab class is without the css dot class prefix\n if (content.matches('.' + this.activeTabClass + ':not(' + target + ')')) {\n content.classList.remove(this.activeTabClass);\n }\n });\n\n menuItems.forEach((menuItem) => {\n if (menuItem !== $this) {\n menuItem.classList.remove(this.activeTabClass);\n }\n });\n\n $this.classList.add(this.activeTabClass);\n\n targetElements.forEach((targetElement) => {\n targetElement.classList.add(this.activeTabClass);\n });\n\n if ('#wpstg--tab--backup' === target) {\n window.dispatchEvent(new Event('backups-tab'));\n }\n });\n };\n}\n","import WpstgCloneStaging from './modules/wpstg-clone-staging.js';\nimport WpstgDirectoryNavigation from './modules/wpstg-directory-navigation.js';\nimport WpstgExcludeFilters from './modules/wpstg-exclude-filters.js';\nimport WpstgResetModal from './modules/wpstg-reset-modal.js';\nimport WpstgModal from './modules/wpstg-modal.js';\nimport WpstgCloningAdvanceSettings from './modules/wpstg-cloning-advance-settings.js';\nimport WpstgMainMenu from './modules/wpstg-main-menu.js';\nimport WPStagingCommon from './wpstg.js';\n\nvar WPStaging = (function($) {\n const that = {\n isCancelled: false,\n isFinished: false,\n getLogs: false,\n time: 1,\n executionTime: false,\n progressBar: 0,\n cloneExcludeFilters: null,\n directoryNavigator: null,\n notyf: null,\n };\n const cache = {elements: []};\n let timeout; let ajaxSpinner;\n\n /**\n * Get / Set Cache for Selector\n * @param {String} selector\n * @return {*}\n */\n cache.get = function(selector) {\n // It is already cached!\n if ($.inArray(selector, cache.elements) !== -1) {\n return cache.elements[selector];\n }\n\n // Create cache and return\n cache.elements[selector] = jQuery(selector);\n\n return cache.elements[selector];\n };\n\n /**\n * Refreshes given cache\n * @param {String} selector\n */\n cache.refresh = function(selector) {\n selector.elements[selector] = jQuery(selector);\n };\n\n /**\n * Show and Log Error Message\n * @param {String} message\n */\n const showError = function(message) {\n cache.get('#wpstg-try-again').css('display', 'inline-block');\n cache.get('#wpstg-cancel-cloning').text('Reset');\n cache.get('#wpstg-resume-cloning').show();\n cache.get('#wpstg-error-wrapper').show();\n cache.get('#wpstg-error-details').show().html(message);\n cache.get('#wpstg-removing-clone').removeClass('loading');\n cache.get('.wpstg-loader').hide();\n $('.wpstg--modal--process--generic-problem').show().html(message);\n };\n\n /**\n * Show warning during cloning or push process when closing tab or browser, or changing page\n * @param {beforeunload} event\n * @return {null}\n */\n that.warnIfClosingDuringProcess = function(event) {\n // Only some browsers show the message below, most say something like \"Changes you made may not be saved\" (Chrome) or \"You have unsaved changes. Exit?\"\n event.returnValue = 'You MUST leave this window open while cloning/pushing. Please wait...';\n return null;\n };\n\n /**\n *\n * @param response the error object\n * @param prependMessage Overwrite default error message at beginning\n * @param appendMessage Overwrite default error message at end\n * @returns void\n */\n\n const showAjaxFatalError = function(response, prependMessage, appendMessage) {\n prependMessage = prependMessage ? prependMessage + '<br/><br/>' : 'Something went wrong! <br/><br/>';\n appendMessage = appendMessage ? appendMessage + '<br/><br/>' : '<br/><br/>Please try the <a href=\\'https://wp-staging.com/docs/wp-staging-settings-for-small-servers/\\' target=\\'_blank\\'>WP Staging Small Server Settings</a> or submit an error report and contact us.';\n\n if (response === false) {\n showError(prependMessage + ' Error: No response.' + appendMessage);\n window.removeEventListener('beforeunload', WPStaging.warnIfClosingDuringProcess);\n return;\n }\n\n if (typeof response.error !== 'undefined' && response.error) {\n console.error(response.message);\n showError(prependMessage + ' Error: ' + response.message + appendMessage);\n window.removeEventListener('beforeunload', WPStaging.warnIfClosingDuringProcess);\n return;\n }\n };\n\n /**\n *\n * @param response\n * @return {{ok}|*}\n */\n const handleFetchErrors = function(response) {\n if (!response.ok) {\n showError('Error: ' + response.status + ' - ' + response.statusText + '. Please try again or contact support.');\n }\n return response;\n };\n\n /** Hide and reset previous thrown visible errors */\n const resetErrors = function() {\n cache.get('#wpstg-error-details').hide().html('');\n };\n\n /**\n * Common Elements\n */\n const elements = function() {\n const $workFlow = cache.get('#wpstg-workflow');\n let isAllChecked = true;\n let urlSpinner = ajaxurl.replace('/admin-ajax.php', '') + '/images/spinner';\n let timer;\n\n if (2 < window.devicePixelRatio) {\n urlSpinner += '-2x';\n }\n\n urlSpinner += '.gif';\n\n ajaxSpinner = '<img src=\\'\\'' + urlSpinner + '\\' alt=\\'\\' class=\\'ajax-spinner general-spinner\\' />';\n\n const getBaseValues = function() {\n const path = $('#wpstg-use-target-dir').data('base-path');\n const uri = $('#wpstg-use-target-hostname').data('base-uri');\n return {\n path,\n };\n };\n\n $workFlow\n // Check / Un-check All Database Tables New\n .on('click', '.wpstg-button-unselect', function(e) {\n e.preventDefault();\n\n if (false === isAllChecked) {\n cache.get('#wpstg_select_tables_cloning .wpstg-db-table').prop('selected', 'selected');\n cache.get('.wpstg-button-unselect').text('Unselect All');\n cache.get('.wpstg-db-table-checkboxes').prop('checked', true);\n isAllChecked = true;\n } else {\n cache.get('#wpstg_select_tables_cloning .wpstg-db-table').prop('selected', false);\n cache.get('.wpstg-button-unselect').text('Select All');\n cache.get('.wpstg-db-table-checkboxes').prop('checked', false);\n isAllChecked = false;\n }\n })\n\n /**\n * Select tables with certain tbl prefix | NEW\n * @param obj e\n * @returns {undefined}\n */\n .on('click', '.wpstg-button-select', function(e) {\n e.preventDefault();\n $('#wpstg_select_tables_cloning .wpstg-db-table').each(function() {\n if (wpstg.isMultisite == 1) {\n if ($(this).attr('name').match('^' + wpstg.tblprefix + '([^0-9])_*')) {\n $(this).prop('selected', 'selected');\n } else {\n $(this).prop('selected', false);\n }\n }\n\n if (wpstg.isMultisite == 0) {\n if ($(this).attr('name').match('^' + wpstg.tblprefix)) {\n $(this).prop('selected', 'selected');\n } else {\n $(this).prop('selected', false);\n }\n }\n });\n })\n // Expand Directories\n .on('click', '.wpstg-expand-dirs', function(e) {\n e.preventDefault();\n\n const $this = $(this);\n\n $this.siblings('.wpstg-subdir').slideToggle();\n })\n // When a directory checkbox is Selected\n .on('change', 'input.wpstg-check-dir', function() {\n const $directory = $(this).parent('.wpstg-dir');\n\n if (this.checked) {\n $directory.parents('.wpstg-dir').children('.wpstg-check-dir').prop('checked', true);\n $directory.find('.wpstg-expand-dirs').removeClass('disabled');\n $directory.find('.wpstg-subdir .wpstg-check-dir').prop('checked', true);\n } else {\n $directory.find('.wpstg-dir .wpstg-check-dir').prop('checked', false);\n $directory.find('.wpstg-expand-dirs, .wpstg-check-subdirs').addClass('disabled');\n $directory.find('.wpstg-check-subdirs').data('action', 'check').text('check');\n }\n })\n // When a directory name is Selected\n .on('change', 'href.wpstg-check-dir', function() {\n const $directory = $(this).parent('.wpstg-dir');\n\n if (this.checked) {\n $directory.parents('.wpstg-dir').children('.wpstg-check-dir').prop('checked', true);\n $directory.find('.wpstg-expand-dirs').removeClass('disabled');\n $directory.find('.wpstg-subdir .wpstg-check-dir').prop('checked', true);\n } else {\n $directory.find('.wpstg-dir .wpstg-check-dir').prop('checked', false);\n $directory.find('.wpstg-expand-dirs, .wpstg-check-subdirs').addClass('disabled');\n $directory.find('.wpstg-check-subdirs').data('action', 'check').text('check');\n }\n })\n // Check the max length of the clone name and if the clone name already exists\n .on('keyup', '#wpstg-new-clone-id', function() {\n // Hide previous errors\n document.getElementById('wpstg-error-details').style.display = 'none';\n\n // This request was already sent, clear it up!\n if ('number' === typeof (timer)) {\n clearInterval(timer);\n }\n\n // Early bail if site name is empty\n if (this.value === undefined || this.value === '') {\n cache.get('#wpstg-new-clone-id').removeClass('wpstg-error-input');\n cache.get('#wpstg-start-cloning').removeAttr('disabled');\n cache.get('#wpstg-clone-id-error').text('').hide();\n return;\n }\n\n // Convert the site name to directory name (slugify the site name to create directory name)\n const cloneDirectoryName = WPStagingCommon.slugify(this.value);\n\n timer = setTimeout(\n function() {\n ajax(\n {\n action: 'wpstg_check_clone',\n accessToken: wpstg.accessToken,\n nonce: wpstg.nonce,\n directoryName: cloneDirectoryName,\n },\n function(response) {\n if (response.status === 'success') {\n cache.get('#wpstg-new-clone-id').removeClass('wpstg-error-input');\n cache.get('#wpstg-start-cloning').removeAttr('disabled');\n cache.get('#wpstg-clone-id-error').text('').hide();\n } else {\n cache.get('#wpstg-new-clone-id').addClass('wpstg-error-input');\n cache.get('#wpstg-start-cloning').prop('disabled', true);\n cache.get('#wpstg-clone-id-error').text(response.message).show();\n }\n },\n );\n },\n 500,\n );\n })\n // Restart cloning process\n .on('click', '#wpstg-start-cloning', function() {\n resetErrors();\n that.isCancelled = false;\n that.getLogs = false;\n that.progressBar = 0;\n })\n .on('input', '#wpstg-new-clone-id', function() {\n if ($('#wpstg-clone-directory').length < 1) {\n return;\n }\n\n const slug = WPStagingCommon.slugify(this.value);\n const $targetDir = $('#wpstg-use-target-dir');\n const $targetUri = $('#wpstg-use-target-hostname');\n let path = $targetDir.data('base-path');\n let uri = $targetUri.data('base-uri');\n\n if (path) {\n path = path.replace(/\\/+$/g, '') + '/' + slug + '/';\n }\n\n if (uri) {\n uri = uri.replace(/\\/+$/g, '') + '/' + slug;\n }\n\n\n $('.wpstg-use-target-dir--value').text(path);\n $('.wpstg-use-target-hostname--value').text(uri);\n\n $targetDir.attr('data-path', path);\n $targetUri.attr('data-uri', uri);\n $('#wpstg_clone_dir').attr('placeholder', path);\n $('#wpstg_clone_hostname').attr('placeholder', uri);\n })\n .on('input', '#wpstg_clone_hostname', function() {\n if ($(this).val() === '' || validateTargetHost()) {\n $('#wpstg_clone_hostname_error').remove();\n return;\n }\n if (!validateTargetHost() && !$('#wpstg_clone_hostname_error').length) {\n $('#wpstg-clone-directory tr:last-of-type').after('<tr><td>&nbsp;</td><td><p id=\"wpstg_clone_hostname_error\" style=\"color: red;\">&nbsp;Invalid host name. Please provide it in a format like http://example.com</p></td></tr>');\n }\n })\n ;\n\n cloneActions();\n };\n\n /* @returns {boolean} */\n var validateTargetHost = function() {\n const the_domain = $('#wpstg_clone_hostname').val();\n\n if (the_domain === '') {\n return true;\n }\n\n const reg = /^http(s)?:\\/\\/.*$/;\n if (reg.test(the_domain) === false) {\n return false;\n }\n return true;\n };\n\n /**\n * Clone actions\n */\n var cloneActions = function() {\n const $workFlow = cache.get('#wpstg-workflow');\n\n $workFlow\n // Cancel cloning\n .on('click', '#wpstg-cancel-cloning', function() {\n if (!confirm('Are you sure you want to cancel cloning process?')) {\n return false;\n }\n\n const $this = $(this);\n\n $('#wpstg-try-again, #wpstg-home-link').hide();\n $this.prop('disabled', true);\n\n that.isCancelled = true;\n that.progressBar = 0;\n\n $('#wpstg-processing-status').text('Please wait...this can take up a while.');\n $('.wpstg-loader, #wpstg-show-log-button').hide();\n\n $this.parent().append(ajaxSpinner);\n\n cancelCloning();\n })\n // Resume cloning\n .on('click', '#wpstg-resume-cloning', function() {\n resetErrors();\n const $this = $(this);\n\n $('#wpstg-try-again, #wpstg-home-link').hide();\n\n that.isCancelled = false;\n\n $('#wpstg-processing-status').text('Try to resume cloning process...');\n $('#wpstg-error-details').hide();\n $('.wpstg-loader').show();\n\n $this.parent().append(ajaxSpinner);\n\n that.startCloning();\n })\n // Cancel update cloning\n .on('click', '#wpstg-cancel-cloning-update', function() {\n resetErrors();\n\n const $this = $(this);\n\n $('#wpstg-try-again, #wpstg-home-link').hide();\n $this.prop('disabled', true);\n\n that.isCancelled = true;\n\n $('#wpstg-cloning-result').text('Please wait...this can take up a while.');\n $('.wpstg-loader, #wpstg-show-log-button').hide();\n\n $this.parent().append(ajaxSpinner);\n\n cancelCloningUpdate();\n })\n // Restart cloning\n .on('click', '#wpstg-restart-cloning', function() {\n resetErrors();\n\n const $this = $(this);\n\n $('#wpstg-try-again, #wpstg-home-link').hide();\n $this.prop('disabled', true);\n\n that.isCancelled = true;\n\n $('#wpstg-cloning-result').text('Please wait...this can take up a while.');\n $('.wpstg-loader, #wpstg-show-log-button').hide();\n\n $this.parent().append(ajaxSpinner);\n\n restart();\n })\n // Delete clone - confirmation\n .on('click', '.wpstg-remove-clone[data-clone]', function(e) {\n resetErrors();\n e.preventDefault();\n\n const $existingClones = cache.get('#wpstg-existing-clones');\n\n $workFlow.removeClass('active');\n\n cache.get('.wpstg-loader').show();\n\n ajax(\n {\n action: 'wpstg_confirm_delete_clone',\n accessToken: wpstg.accessToken,\n nonce: wpstg.nonce,\n clone: $(this).data('clone'),\n },\n function(response) {\n cache.get('#wpstg-removing-clone').html(response);\n\n $existingClones.children('img').remove();\n\n cache.get('.wpstg-loader').hide();\n\n $('html, body').animate({\n // This logic is meant to be a \"scrollBottom\"\n scrollTop: $('#wpstg-remove-clone').offset().top - $(window).height() +\n $('#wpstg-remove-clone').height() + 50,\n }, 100);\n },\n 'HTML',\n );\n })\n // Delete clone - confirmed\n .on('click', '#wpstg-remove-clone', function(e) {\n resetErrors();\n e.preventDefault();\n\n cache.get('#wpstg-removing-clone').addClass('loading');\n\n cache.get('.wpstg-loader').show();\n\n deleteClone($(this).data('clone'));\n })\n // Cancel deleting clone\n .on('click', '#wpstg-cancel-removing', function(e) {\n e.preventDefault();\n $('.wpstg-clone').removeClass('active');\n cache.get('#wpstg-removing-clone').html('');\n })\n // Update\n .on('click', '.wpstg-execute-clone', function(e) {\n e.preventDefault();\n\n const clone = $(this).data('clone');\n\n $workFlow.addClass('loading');\n that.cloneExcludeFilters = null;\n ajax(\n {\n action: 'wpstg_scanning',\n clone: clone,\n accessToken: wpstg.accessToken,\n nonce: wpstg.nonce,\n },\n function(response) {\n if (response.length < 1) {\n showError(\n 'Something went wrong! Error: No response. Please try the <a href=\\'https://wp-staging.com/docs/wp-staging-settings-for-small-servers/\\' target=\\'_blank\\'>WP Staging Small Server Settings</a> or submit an error report and contact us.',\n );\n }\n\n const jsonResponse = tryParseJson(response);\n if (jsonResponse !== false && jsonResponse.success === false) {\n $workFlow.removeClass('loading');\n showErrorModal(jsonResponse);\n\n return;\n }\n\n $workFlow.removeClass('loading').html(response);\n // register check disk space function for clone update process.\n checkDiskSpace();\n that.directoryNavigator = new WpstgDirectoryNavigation('#wpstg-directories-listing', wpstg, that.notyf);\n that.cloneExcludeFilters = new WpstgExcludeFilters();\n that.switchStep(2);\n },\n 'HTML',\n );\n })\n // Reset Clone\n .on('click', '.wpstg-reset-clone', function(e) {\n e.preventDefault();\n const clone = $(this).data('clone');\n const resetModal = new WpstgResetModal(clone);\n const promise = resetModal.showModal();\n\n promise.then((result) => {\n if (result.value) {\n const dirNavigator = resetModal.getDirectoryNavigator();\n const exclFilters = resetModal.getExcludeFilters().getExcludeFilters();\n resetClone(clone, {\n includedTables: getIncludedTables(),\n excludeSizeRules: encodeURIComponent(exclFilters.sizes),\n excludeGlobRules: encodeURIComponent(exclFilters.globs),\n excludedDirectories: dirNavigator.getExcludedDirectories(),\n extraDirectories: dirNavigator.getExtraDirectoriesRootOnly(),\n });\n }\n });\n\n return;\n });\n };\n\n /**\n * Ajax Requests\n * @param Object data\n * @param Function callback\n * @param string dataType\n * @param bool showErrors\n * @param int tryCount\n * @param float incrementRatio\n */\n var ajax = function(data, callback, dataType, showErrors, tryCount, incrementRatio = null) {\n if ('undefined' === typeof (dataType)) {\n dataType = 'json';\n }\n\n if (false !== showErrors) {\n showErrors = true;\n }\n\n tryCount = 'undefined' === typeof (tryCount) ? 0 : tryCount;\n\n const retryLimit = 10;\n\n let retryTimeout = 10000 * tryCount;\n\n incrementRatio = parseInt(incrementRatio);\n if (!isNaN(incrementRatio)) {\n retryTimeout *= incrementRatio;\n }\n\n $.ajax({\n url: ajaxurl + '?action=wpstg_processing&_=' + (Date.now() / 1000),\n type: 'POST',\n dataType: dataType,\n cache: false,\n data: data,\n error: function(xhr, textStatus, errorThrown) {\n // try again after 10 seconds\n tryCount++;\n if (tryCount <= retryLimit) {\n setTimeout(function() {\n ajax(data, callback, dataType, showErrors, tryCount, incrementRatio);\n return;\n }, retryTimeout);\n } else {\n const errorCode = 'undefined' === typeof (xhr.status) ? 'Unknown' : xhr.status;\n showError(\n 'Fatal Error: ' + errorCode + ' Please try the <a href=\\'https://wp-staging.com/docs/wp-staging-settings-for-small-servers/\\' target=\\'_blank\\'>WP Staging Small Server Settings</a> or submit an error report and contact us.',\n );\n }\n },\n success: function(data) {\n if ('function' === typeof (callback)) {\n callback(data);\n }\n },\n statusCode: {\n 404: function() {\n if (tryCount >= retryLimit) {\n showError('Error 404 - Can\\'t find ajax request URL! Please try the <a href=\\'https://wp-staging.com/docs/wp-staging-settings-for-small-servers/\\' target=\\'_blank\\'>WP Staging Small Server Settings</a> or submit an error report and contact us.');\n }\n },\n 500: function() {\n if (tryCount >= retryLimit) {\n showError('Fatal Error 500 - Internal server error while processing the request! Please try the <a href=\\'https://wp-staging.com/docs/wp-staging-settings-for-small-servers/\\' target=\\'_blank\\'>WP Staging Small Server Settings</a> or submit an error report and contact us.');\n }\n },\n 504: function() {\n if (tryCount > retryLimit) {\n showError('Error 504 - It looks like your server is rate limiting ajax requests. Please try to resume after a minute. If this still not works try the <a href=\\'https://wp-staging.com/docs/wp-staging-settings-for-small-servers/\\' target=\\'_blank\\'>WP Staging Small Server Settings</a> or submit an error report and contact us.\\n\\ ');\n }\n },\n 502: function() {\n if (tryCount >= retryLimit) {\n showError('Error 502 - It looks like your server is rate limiting ajax requests. Please try to resume after a minute. If this still not works try the <a href=\\'https://wp-staging.com/docs/wp-staging-settings-for-small-servers/\\' target=\\'_blank\\'>WP Staging Small Server Settings</a> or submit an error report and contact us.\\n\\ ');\n }\n },\n 503: function() {\n if (tryCount >= retryLimit) {\n showError('Error 503 - It looks like your server is rate limiting ajax requests. Please try to resume after a minute. If this still not works try the <a href=\\'https://wp-staging.com/docs/wp-staging-settings-for-small-servers/\\' target=\\'_blank\\'>WP Staging Small Server Settings</a> or submit an error report and contact us.\\n\\ ');\n }\n },\n 429: function() {\n if (tryCount >= retryLimit) {\n showError('Error 429 - It looks like your server is rate limiting ajax requests. Please try to resume after a minute. If this still not works try the <a href=\\'https://wp-staging.com/docs/wp-staging-settings-for-small-servers/\\' target=\\'_blank\\'>WP Staging Small Server Settings</a> or submit an error report and contact us.\\n\\ ');\n }\n },\n 403: function() {\n if (tryCount >= retryLimit) {\n showError('Refresh page or login again! The process should be finished successfully. \\n\\ ');\n }\n },\n },\n });\n };\n\n /**\n * Next / Previous Step Clicks to Navigate Through Staging Job\n */\n const stepButtons = function() {\n const $workFlow = cache.get('#wpstg-workflow');\n\n $workFlow\n // Next Button\n .on('click', '.wpstg-next-step-link', function(e) {\n e.preventDefault();\n\n const $this = $(this);\n const isScan = false;\n\n if ($('#wpstg_clone_hostname').length && !validateTargetHost()) {\n $('#wpstg_clone_hostname').focus();\n return false;\n }\n\n if ($this.data('action') === 'wpstg_update' || $this.data('action') === 'wpstg_reset') {\n // Update / Reset Clone - confirmed\n let onlyUpdateMessage = '';\n if ($this.data('action') === 'wpstg_update') {\n onlyUpdateMessage = ' \\n\\nExclude all tables and folders you do not want to overwrite, first! \\n\\nDo not cancel the updating process! This can break your staging site. \\n\\n\\Create a backup of your staging website before you proceed.';\n }\n\n if (!confirm('STOP! This will overwrite your staging site with all selected data from the production site! This should be used only if you want to clone again your production site. Are you sure you want to do this?' + onlyUpdateMessage)) {\n return false;\n }\n }\n\n // Button is disabled\n if ($this.attr('disabled')) {\n return false;\n }\n\n if ($this.data('action') === 'wpstg_cloning') {\n // Verify External Database If Checked and Not Skipped\n if ($('#wpstg-ext-db').is(':checked')) {\n verifyExternalDatabase($this, $workFlow);\n return;\n }\n }\n\n proceedCloning($this, $workFlow);\n })\n // Previous Button\n .on('click', '.wpstg-prev-step-link', function(e) {\n e.preventDefault();\n cache.get('.wpstg-loader').removeClass('wpstg-finished');\n cache.get('.wpstg-loader').hide();\n loadOverview();\n });\n };\n\n /**\n * Get Included (Checked) Database Tables\n * @return {Array}\n */\n const getIncludedTables = function() {\n const includedTables = [];\n\n $('#wpstg_select_tables_cloning option:selected').each(function() {\n includedTables.push(this.value);\n });\n\n return includedTables;\n };\n\n /**\n * Get Excluded (Unchecked) Database Tables\n * Not used anymore!\n * @return {Array}\n */\n const getExcludedTables = function() {\n const excludedTables = [];\n\n $('.wpstg-db-table input:not(:checked)').each(function() {\n excludedTables.push(this.name);\n });\n\n return excludedTables;\n };\n\n /**\n * Verify External Database for Cloning\n */\n var verifyExternalDatabase = function($this, workflow) {\n cache.get('.wpstg-loader').show();\n ajax(\n {\n action: 'wpstg_database_verification',\n accessToken: wpstg.accessToken,\n nonce: wpstg.nonce,\n databaseUser: cache.get('#wpstg_db_username').val(),\n databasePassword: cache.get('#wpstg_db_password').val(),\n databaseServer: cache.get('#wpstg_db_server').val(),\n databaseDatabase: cache.get('#wpstg_db_database').val(),\n },\n function(response) {\n // Undefined Error\n if (false === response) {\n showError(\n 'Something went wrong! Error: No response.' +\n 'Please try again. If that does not help, ' +\n '<a href=\\'https://wp-staging.com/support/\\' target=\\'_blank\\'>open a support ticket</a> ',\n );\n cache.get('.wpstg-loader').hide();\n return;\n }\n\n // Throw Error\n if ('undefined' === typeof (response.success)) {\n showError(\n 'Something went wrong! Error: Invalid response.' +\n 'Please try again. If that does not help, ' +\n '<a href=\\'https://wp-staging.com/support/\\' target=\\'_blank\\'>open a support ticket</a> ',\n );\n cache.get('.wpstg-loader').hide();\n return;\n }\n\n if (response.success) {\n cache.get('.wpstg-loader').hide();\n proceedCloning($this, workflow);\n return;\n }\n\n if (response.error_type === 'comparison') {\n cache.get('.wpstg-loader').hide();\n let render = '<table style=\"width: 100%;\"><thead><tr><th>Property</th><th>Production DB</th><th>Staging DB</th><th>Status</th></tr></thead><tbody>';\n response.checks.forEach((x) => {\n let icon = '<i style=\"color: #00ff00\">✔</i>';\n if (x.production !== x.staging) {\n icon = '<i style=\"color: #ff0000\">❌</i>';\n }\n render += '<tr><td>' + x.name + '</td><td>' + x.production + '</td><td>' + x.staging + '</td><td>' + icon + '</td></tr>';\n });\n render += '</tbody></table><p>Note: Some mySQL properties do not match. You may proceed but the staging site may not work as expected.</p>';\n WPStagingCommon.getSwalModal().fire({\n title: 'Different Database Properties',\n icon: 'warning',\n html: render,\n width: '650px',\n focusConfirm: false,\n confirmButtonText: 'Proceed Anyway',\n showCancelButton: true,\n }).then(function(result) {\n if (result.value) {\n proceedCloning($this, workflow);\n }\n });\n return;\n }\n\n WPStagingCommon.getSwalModal(true).fire({\n title: 'Different Database Properties',\n icon: 'error',\n html: response.message,\n focusConfirm: true,\n confirmButtonText: 'Ok',\n showCancelButton: false,\n });\n cache.get('.wpstg-loader').hide();\n },\n 'json',\n false,\n );\n };\n\n /**\n * Get Cloning Step Data\n */\n const getCloningData = function() {\n if ('wpstg_cloning' !== that.data.action && 'wpstg_update' !== that.data.action && 'wpstg_reset' !== that.data.action) {\n return;\n }\n\n that.data.cloneID = new Date().getTime().toString();\n if ('wpstg_update' === that.data.action) {\n that.data.cloneID = $('#wpstg-new-clone-id').data('clone');\n }\n\n that.data.cloneName = $('#wpstg-new-clone-id').val() || that.data.cloneID;\n\n // Remove this to keep &_POST[] small otherwise mod_security will throw error 404\n // that.data.excludedTables = getExcludedTables();\n\n if (that.directoryNavigator !== null) {\n that.data.excludedDirectories = encodeURIComponent(that.directoryNavigator.getExcludedDirectories());\n that.data.extraDirectories = encodeURIComponent(that.directoryNavigator.getExtraDirectoriesRootOnly());\n }\n\n that.data.excludeGlobRules = '';\n that.data.excludeSizeRules = '';\n if (that.cloneExcludeFilters instanceof WpstgExcludeFilters) {\n const rules = that.cloneExcludeFilters.getExcludeFilters();\n that.data.excludeGlobRules = encodeURIComponent(rules.globs);\n that.data.excludeSizeRules = encodeURIComponent(rules.sizes);\n }\n\n that.data.includedTables = getIncludedTables();\n that.data.databaseServer = $('#wpstg_db_server').val();\n that.data.databaseUser = $('#wpstg_db_username').val();\n that.data.databasePassword = $('#wpstg_db_password').val();\n that.data.databaseDatabase = $('#wpstg_db_database').val();\n that.data.databasePrefix = $('#wpstg_db_prefix').val();\n const cloneDir = $('#wpstg_