Version Description
- 2021/07/15 =
- The plugin minimum compatible versions are now PHP 7.0 and WordPress 5.3
- Enhancement: Correctly display WordPress cover blocks when WebP and picture tag replacement is enabled (#546)
- Enhancement: Update our jQuery code to be compatible with the new jQuery version included in WordPress (#545)
- 3rd party compatibility: Correctly display WooCommerce variable products images when WebP and picture tag replacement is enabled (#495)
- Bugfix: Prevent nested picture tags when picture tag replacement is enabled (#537)
- Bugfix: Prevent a fatal error related to get_current_screen() in some cases (#567)
- Bugfix: Fixes some display issues related to the promotions in the checkout process (#556, #557)
- Bugfix: Fixes some display issues on the settings & bulk optimization pages on mobile (#566)
- Bugfix: Prevent PHP warning in some cases on the bulk optimization process (#565)
- Bugfix: Prevent PHP notice in somes cases for the $images_count variable (#573)
Download this release
Release Info
Developer | wp_media |
Plugin | Imagify Image Optimizer |
Version | 1.10 |
Comparing to | |
See all releases |
Code changes from version 1.9.14 to 1.10
- assets/css/admin.css +65 -1
- assets/css/admin.min.css +1 -1
- assets/css/bulk.css +231 -16
- assets/css/bulk.min.css +1 -1
- assets/css/notices.css +78 -16
- assets/css/notices.min.css +1 -1
- assets/css/options.css +37 -1
- assets/css/options.min.css +1 -1
- assets/css/pricing-modal.css +186 -0
- assets/css/pricing-modal.min.css +1 -1
- assets/js/admin.js +2 -2
- assets/js/admin.min.js +1 -1
- assets/js/bulk.js +5 -5
- assets/js/bulk.min.js +1 -1
- assets/js/es6-promise.auto.js +0 -1
- assets/js/options.js +14 -14
- assets/js/options.min.js +1 -1
- assets/js/pricing-modal.js +175 -50
- assets/js/pricing-modal.min.js +1 -1
- classes/Bulk/BulkInterface.php +2 -2
- classes/Bulk/CustomFolders.php +3 -3
- classes/Bulk/Noop.php +2 -2
- classes/Bulk/WP.php +3 -3
- classes/Job/MediaOptimization.php +1 -1
- classes/Optimization/Data/AbstractData.php +4 -4
- classes/Optimization/Data/CustomFolders.php +1 -1
- classes/Optimization/Data/DataInterface.php +2 -2
- classes/Optimization/Data/Noop.php +2 -2
- classes/Optimization/File.php +3 -3
- classes/Optimization/Process/AbstractProcess.php +55 -55
- classes/Optimization/Process/Noop.php +4 -4
- classes/Optimization/Process/ProcessInterface.php +5 -5
- classes/Stats/OptimizedMediaWithoutWebp.php +8 -8
- classes/Webp/Apache.php +1 -1
- classes/Webp/Display.php +5 -5
- classes/Webp/IIS.php +1 -1
- classes/Webp/Picture/Display.php +59 -13
- classes/Webp/RewriteRules/Apache.php +1 -1
- classes/Webp/RewriteRules/Display.php +5 -5
- classes/Webp/RewriteRules/IIS.php +1 -1
- classes/Webp/RewriteRules/Nginx.php +1 -1
- imagify.php +10 -6
- inc/3rd-party/3rd-party.php +1 -0
- inc/3rd-party/WooCommerce/class-woocommerce.php +95 -0
- inc/3rd-party/amazon-s3-and-cloudfront/classes/Main.php +13 -13
- inc/3rd-party/enable-media-replace/classes/Main.php +7 -7
- inc/3rd-party/nextgen-gallery/classes/Bulk/NGG.php +3 -3
- inc/3rd-party/nextgen-gallery/inc/common/attachments.php +9 -9
- inc/3rd-party/regenerate-thumbnails/classes/Main.php +2 -2
- inc/3rd-party/yoast-seo.php +3 -0
- inc/classes/class-imagify-abstract-cron.php +2 -2
- inc/classes/class-imagify-admin-ajax-post.php +7 -7
- inc/classes/class-imagify-cron-rating.php +1 -1
- inc/classes/class-imagify-custom-folders.php +5 -5
- inc/classes/class-imagify-files-list-table.php +3 -3
- inc/classes/class-imagify-notices.php +4 -1
- inc/classes/class-imagify-plugin.php +0 -1
- inc/classes/class-imagify-user.php +2 -0
- inc/classes/class-imagify.php +1 -1
- inc/common/attachments.php +3 -3
- inc/deprecated/classes/class-imagify-enable-media-replace-deprecated.php +1 -1
- inc/functions/admin-ui.php +4 -4
- inc/functions/common.php +3 -3
- inc/functions/compat.php +0 -545
- inc/functions/i18n.php +7 -4
- readme.txt +141 -84
- vendor/autoload.php +1 -1
- vendor/composer/autoload_classmap.php +0 -168
- vendor/composer/autoload_real.php +14 -5
- vendor/composer/autoload_static.php +4 -172
- vendor/composer/installed.json +8 -6
- vendor/composer/installers/composer.json +2 -0
- vendor/composer/installers/src/Composer/Installers/Installer.php +4 -1
- vendor/composer/installers/src/Composer/Installers/MauticInstaller.php +29 -6
- vendor/composer/installers/src/Composer/Installers/MiaoxingInstaller.php +10 -0
- vendor/composer/installers/src/Composer/Installers/OctoberInstaller.php +2 -1
- vendor/composer/installers/src/Composer/Installers/TastyIgniterInstaller.php +32 -0
- vendor/composer/installers/src/Composer/Installers/WinterInstaller.php +58 -0
- views/button/delete-webp.php +1 -1
- views/button/generate-webp.php +1 -1
- views/notice-almost-over-quota.php +3 -2
- views/notice-wp-rocket.php +0 -10
- views/page-bulk.php +5 -4
- views/page-settings.php +161 -160
- views/part-bulk-optimization-overquota-alert.php +1 -15
- views/part-discount-banner.php +4 -3
- views/part-settings-custom-folders.php +111 -103
- views/part-settings-library.php +66 -64
- views/part-settings-webp.php +6 -6
assets/css/admin.css
CHANGED
@@ -279,7 +279,8 @@ body.imagify-modal-is-open {
|
|
279 |
}
|
280 |
|
281 |
/* Buttons */
|
282 |
-
.imagify-
|
|
|
283 |
.imagify-welcome .button,
|
284 |
.imagify-notice .button,
|
285 |
.imagify-button.imagify-button,
|
@@ -1393,6 +1394,9 @@ ul.imagify-datas-details.imagify-datas-details {
|
|
1393 |
box-shadow: 1px 1px 4px rgba(0,0,0,.7);
|
1394 |
border-radius: 3px;
|
1395 |
}
|
|
|
|
|
|
|
1396 |
#imagify-visual-comparison .imagify-modal-content,
|
1397 |
.imagify-visual-comparison .imagify-modal-content {
|
1398 |
max-width: 1400px;
|
@@ -1437,6 +1441,7 @@ ul.imagify-datas-details.imagify-datas-details {
|
|
1437 |
.js .imagify-modal .close-btn {
|
1438 |
display: block;
|
1439 |
visibility: visible;
|
|
|
1440 |
}
|
1441 |
|
1442 |
/* Attachments specifics */
|
@@ -1479,3 +1484,62 @@ ul.imagify-datas-details.imagify-datas-details {
|
|
1479 |
background: #F4F7F9;
|
1480 |
}
|
1481 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
279 |
}
|
280 |
|
281 |
/* Buttons */
|
282 |
+
.imagify-main-content .button,
|
283 |
+
.imagify-settings-section .button,
|
284 |
.imagify-welcome .button,
|
285 |
.imagify-notice .button,
|
286 |
.imagify-button.imagify-button,
|
1394 |
box-shadow: 1px 1px 4px rgba(0,0,0,.7);
|
1395 |
border-radius: 3px;
|
1396 |
}
|
1397 |
+
.imagify-modal-loading .imagify-modal-content{
|
1398 |
+
overflow: hidden;
|
1399 |
+
}
|
1400 |
#imagify-visual-comparison .imagify-modal-content,
|
1401 |
.imagify-visual-comparison .imagify-modal-content {
|
1402 |
max-width: 1400px;
|
1441 |
.js .imagify-modal .close-btn {
|
1442 |
display: block;
|
1443 |
visibility: visible;
|
1444 |
+
z-index: 12;
|
1445 |
}
|
1446 |
|
1447 |
/* Attachments specifics */
|
1484 |
background: #F4F7F9;
|
1485 |
}
|
1486 |
}
|
1487 |
+
@media (max-width: 730px) {
|
1488 |
+
.imagify-settings .imagify-documentation-link-box{
|
1489 |
+
margin-top: 2em;
|
1490 |
+
}
|
1491 |
+
}
|
1492 |
+
|
1493 |
+
@media (max-width: 782px) {
|
1494 |
+
input[type="radio"], input[type="checkbox"] {
|
1495 |
+
height: 1.5625rem;
|
1496 |
+
width: 1.5625rem;
|
1497 |
+
margin: 1px;
|
1498 |
+
}
|
1499 |
+
[class*="imagify-"] .button-text{
|
1500 |
+
font-size: 13px;
|
1501 |
+
}
|
1502 |
+
.imagify-account-info-col .imagify-settings-section{
|
1503 |
+
padding: 0 10px;
|
1504 |
+
}
|
1505 |
+
.imagify-settings-section{
|
1506 |
+
padding: 10px;
|
1507 |
+
}
|
1508 |
+
.imagify-check-group.imagify-is-scrollable{
|
1509 |
+
margin: auto;
|
1510 |
+
}
|
1511 |
+
.imagify-settings-section .imagify-col,
|
1512 |
+
.imagify-col.imagify-col.imagify-shared-with-account-col,
|
1513 |
+
.imagify-media-lib-section .imagify-col,
|
1514 |
+
.imagify-custom-folders-section .imagify-col,
|
1515 |
+
.imagify-shared-with-account-col {
|
1516 |
+
width:100%;
|
1517 |
+
float: none;
|
1518 |
+
padding-right: 0;
|
1519 |
+
}
|
1520 |
+
.imagify-col.imagify-col.imagify-account-info-col,
|
1521 |
+
.imagify-media-lib-section .imagify-account-info-col,
|
1522 |
+
.imagify-custom-folders-section .imagify-account-info-col,
|
1523 |
+
.imagify-account-info-col{
|
1524 |
+
width: 100%;
|
1525 |
+
float: none;
|
1526 |
+
padding-left: 0;
|
1527 |
+
padding-right: 0;
|
1528 |
+
}
|
1529 |
+
.imagify-lb-text{
|
1530 |
+
font-size: 20px;
|
1531 |
+
}
|
1532 |
+
.imagify-vcenter{
|
1533 |
+
-webkit-flex-direction: column;
|
1534 |
+
-ms-flex-direction: column;
|
1535 |
+
flex-direction: column;
|
1536 |
+
-webkit-box-direction: normal;
|
1537 |
+
-webkit-box-orient: vertical;
|
1538 |
+
-moz-box-direction: normal;
|
1539 |
+
-moz-box-orient: vertical;
|
1540 |
+
align-items: center;
|
1541 |
+
}
|
1542 |
+
.imagify-pr2.imagify-pr2{
|
1543 |
+
padding-right: 0em;
|
1544 |
+
}
|
1545 |
+
}
|
assets/css/admin.min.css
CHANGED
@@ -1 +1 @@
|
|
1 |
-
.imagify-count-list li,.imagify-flex{display:-webkit-box;display:-ms-flexbox}.imagify-start,.wp_attachment_image .imagify-button-primary{float:left}.imagify-mt0.imagify-mt0,.imagify-section p:first-child{margin-top:0}.imagify-columns,.imagify-data-item,.imagify-datas-actions-links,.imagify-oh,body.imagify-modal-is-open{overflow:hidden}.imagify-flex{display:flex}.imagify-vcenter{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.imagify-noshrink{-ms-flex-negative:0;flex-shrink:0}.imagify-nogrow{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0}.imagify-wauto{width:auto}.imagify-hauto{height:auto}.imagify-full-width{width:100%}.imagify-end{float:right}.imagify-txt-start.imagify-txt-start.imagify-txt-start{text-align:left}.imagify-txt-center.imagify-txt-center.imagify-txt-center{text-align:center}.imagify-txt-end.imagify-txt-end.imagify-txt-end{text-align:right}.imagify-mt1.imagify-mt1{margin-top:1em}.imagify-mt2.imagify-mt2{margin-top:2em}.imagify-mt3.imagify-mt3{margin-top:3em}.imagify-mb0.imagify-mb0{margin-bottom:0}.imagify-mb1.imagify-mb1{margin-bottom:1em}.imagify-mr1.imagify-mr1{margin-right:1em}.imagify-ml2.imagify-ml2{margin-left:2em}.imagify-mr2.imagify-mr2{margin-right:2em}.imagify-pl0.imagify-pl0.imagify-pl0{padding-left:0}.imagify-pb0.imagify-pb0{padding-bottom:0}.imagify-pr1.imagify-pr1{padding-right:1em}.imagify-pr2.imagify-pr2{padding-right:2em}.imagify-clear{clear:both}.imagify-clearfix:after,.imagify-inline-options:after,.imagify-settings-main-content:after,.imagify-settings-section:after{content:"";display:table;width:100%;clear:both}.imagify-setting-optim-level .imagify-inline-options:after{display:none}.imagify-divider{height:1px;margin:20px 0;background:#D2D3D6}.imagify-pipe{display:inline-block;margin:0 .75em;vertical-align:middle;height:15px;width:1px;background:#979797}.imagify-cell,.imagify-cell.va-top,.imagify-logo,.va-top .imagify-cell{vertical-align:top}.imagify-h3-like.imagify-h3-like.imagify-h3-like{margin-bottom:0;font-size:19px;font-weight:500;color:#1F2332}.imagify-h4-like.imagify-h4-like.imagify-h4-like{font-size:14px;font-weight:700;color:#2E3243}.imagify-count.imagify-count{counter-reset:num}.imagify-count .imagify-count-title{font-weight:700}.imagify-default-settings{color:#73818c;font-weight:400}.imagify-count .imagify-count-title:before{counter-increment:num 1;content:counter(num) ". "}.imagify-count-list{counter-reset:listcount}.imagify-count-list li{display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.imagify-count-list li+li{margin-top:.5em}.imagify-count-list li:before{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-preferred-size:24px;flex-basis:24px;-ms-flex-negative:0;flex-shrink:0;-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;margin-right:16px;border:2px solid #40b1d0;width:24px;height:24px;counter-increment:listcount 1;content:counter(listcount);color:#40b1d0;border-radius:50%}.imagify-table{display:table;width:100%}.imagify-cell{display:table-cell;padding:10px}.imagify-bulk-submit .imagify-cell{padding-top:0}.imagify-spinner{display:inline-block;width:20px;height:20px;margin-right:5px;vertical-align:middle;background:url(../images/spinner.gif) 0 0/20px 20px no-repeat rgba(0,0,0,0);opacity:.7}.spinner.imagify-hidden{width:0;margin:4px 0 0}.imagify-primary.imagify-primary.imagify-primary{color:#40b1d0}.imagify-secondary.imagify-secondary.imagify-secondary,.imagify-valid{color:#8BC34A}.misc-pub-section.misc-pub-imagify h4{font-size:14px;margin-top:5px;margin-bottom:0}.imagify-chart{position:relative;top:1px;display:inline-block;vertical-align:middle}.imagify-chart-container{position:relative;display:inline-block;margin-right:5px}.imagify-chart-container canvas{display:block}.imagify-settings .button,.imagify-settings a,.imagify-settings input,.imagify-welcome .button,.imagify-welcome a,.imagify-weolcome input{-webkit-transition:all .275s;-o-transition:all .275s;transition:all .275s}.imagify-settings a{color:#40b1d0}.imagify-settings,.imagify-settings p,.imagify-settings th{color:#5F758E}.imagify-button-primary.imagify-button-primary,.imagify-button-secondary.imagify-button-secondary,.imagify-button.imagify-button,.imagify-notice .button,.imagify-settings .button,.imagify-welcome .button{height:auto;padding:11px 22px;border:0;font-size:14px;font-weight:600;text-transform:uppercase;letter-spacing:.01em;word-spacing:.01em;-webkit-box-shadow:0 3px 0 rgba(0,0,0,.15);box-shadow:0 3px 0 rgba(0,0,0,.15);border-radius:3px;cursor:pointer;-webkit-transition:all .275s;-o-transition:all .275s;transition:all .275s}.button-primary.button-mini{padding:2px 10px}.imagify-settings .button.button-mini-flat{padding:3px 6px 5px;font-size:12px;-webkit-box-shadow:none!important;box-shadow:none!important;line-height:1.2}.imagify-settings .button.button-mini-flat:focus,.imagify-settings .button.button-mini-flat:hover{-webkit-box-shadow:none!important;box-shadow:none!important}.imagify-button-ghost.imagify-button-ghost,.imagify-title .button-ghost.button-ghost{padding:2px 9px;border:1px solid #40B1D0;font-size:12px;font-weight:400;color:#40B1D0;background:0 0;-webkit-box-shadow:none;box-shadow:none}.imagify-button-ghost.imagify-button-ghost:focus,.imagify-button-ghost.imagify-button-ghost:hover,.imagify-title .button-ghost.button-ghost:focus,.imagify-title .button-ghost.button-ghost:hover{border-color:transparent;color:#000;background:#40B1D0}.imagify-button-ghost.imagify-button-ghost:focus,.imagify-button-ghost.imagify-button-ghost:hover{color:#FFF}.imagify-button-medium.imagify-button-medium{text-transform:uppercase;letter-spacing:.1em;padding:3px 10px;font-weight:700}.imagify-button-medium.imagify-button-ghost{border-width:2px}[class*=imagify-] .button .dashicons{margin-right:5px;vertical-align:middle}.imagify-button-primary.imagify-button-primary,.imagify-settings .button-primary.button-primary,.imagify-welcome .button-primary.button-primary{background:#40B1D0;color:#FFF;-webkit-box-shadow:0 3px 0 rgba(51,142,166,1);box-shadow:0 3px 0 rgba(51,142,166,1);text-shadow:0 -1px 1px #006799,1px 0 1px #006799,0 1px 1px #006799!important}.imagify-button-secondary.imagify-button-secondary{background:#8BC34A;color:#FFF;-webkit-box-shadow:0 3px 0 #6F9C3B;box-shadow:0 3px 0 #6F9C3B;text-shadow:0 -1px 1px #6F9C3B,1px 0 1px #6F9C3B,0 1px 1px #6F9C3B!important}.imagify-button-primary.imagify-button-primary:focus,.imagify-button-primary.imagify-button-primary:hover,.imagify-settings .button-primary:focus,.imagify-settings .button-primary:hover,.imagify-welcome .button-primary:focus,.imagify-welcome .button-primary:hover{background:#338ea6;-webkit-box-shadow:0 3px 0 #1f7a92;box-shadow:0 3px 0 #1f7a92}.imagify-button-secondary.imagify-button-secondary:focus,.imagify-button-secondary.imagify-button-secondary:hover{background:#6F9C3B;color:#FFF}.imagify-button-light.imagify-button-light{background:#FFF;color:#4a4a4a;-webkit-box-shadow:0 2px 0 rgba(0,0,0,.2);box-shadow:0 2px 0 rgba(0,0,0,.2)}.imagify-block-secondary .imagify-button-light.imagify-button-light{color:#6F9C3B}.imagify-button-light.imagify-button-light:focus,.imagify-button-light.imagify-button-light:hover{color:#FFF;background:rgba(0,0,0,.2)}.button.imagify-button-clean,.imagify-button-clean{padding:0;background:0 0;-webkit-box-shadow:none;box-shadow:none}.imagify-button-clean .dashicons-plus{width:32px;height:25px}.imagify-button-clean .dashicons-plus:before{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;width:25px;height:22px;margin-left:2px;padding-top:3px;font-size:17px;background:#40B1D0;color:#FFF;-webkit-transition:all .275s;-o-transition:all .275s;transition:all .275s}.button.imagify-button-clean:active,.button.imagify-button-clean:focus,.button.imagify-button-clean:hover,.button.imagify-button-clean[disabled]{background:0 0!important;color:#343A49;-webkit-box-shadow:none;box-shadow:none}.button.imagify-button-clean:focus .dashicons-plus:before,.button.imagify-button-clean:hover .dashicons-plus:before{background:#343A49}button.imagify-link-like{border:0;padding:0;color:inherit;text-decoration:underline;font-size:13px;-webkit-box-shadow:none;box-shadow:none;background:0 0;cursor:pointer}.imagify-section-positive .imagify-button-light{color:#709A41}.imagify-button.imagify-button-big{font-size:15px;padding:11px 30px}.imagify-button-big .dashicons{font-size:1.45em;margin-right:6px;margin-left:-4px}.imagify-button-primary.imagify-button-primary .dashicons,.imagify-button-secondary.imagify-button-secondary .dashicons,.imagify-button.imagify-button .dashicons,.imagify-notice .button .dashicons,.imagify-settings .button .dashicons,.imagify-welcome .button .dashicons{vertical-align:middle}[class*=imagify-] .button-text{display:inline-block;vertical-align:middle}.media-frame-content .imagify-button-primary,.wp_attachment_image .imagify-button-primary{padding:0 10px 1px;margin:0 5px 2px 0;font-size:13px;line-height:26px;-webkit-box-shadow:0 3px 0 rgba(51,142,166,1);box-shadow:0 3px 0 rgba(51,142,166,1)}.imagify-title.imagify-title{position:relative;padding:10px 30px;font-size:23px;background:#1F2332;color:#FFF}.imagify-welcome .imagify-logo{opacity:1}.imagify-welcome .imagify-title{display:-webkit-box;display:-ms-flexbox;display:flex;padding:20px 30px}.imagify-settings .imagify-title{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.imagify-settings .imagify-logo-block{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-ms-flex-negative:0;flex-shrink:0;-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;padding:0;margin-right:35px;color:inherit}.imagify-logo-block sup{color:#1F2332}.imagify-settings .imagify-title+.imagify-notice{margin:0;border-right:1px solid #D9D9D9;padding-top:15px;padding-bottom:15px}.imagify-title .title-text{font-size:28px;font-weight:700;color:#FFF}.imagify-lb-icon{padding-right:18px}.imagify-lb-text img{margin-bottom:.15em}.imagify-lb-text{font-size:23px;font-weight:700;color:#FFF}.imagify-logo{display:block;opacity:.4}.imagify-section,.imagify-settings div.submit,.imagify-sub-header,.imagify-sub-title.imagify-sub-title{margin:0;padding:20px;background:#F2F5F7}.imagify-section-positive,.imagify-sub-title.imagify-sub-title{padding-left:40px}.imagify-section-positive{background:#8cc152;color:#FFF}.imagify-section-positive p{color:#FFF}.imagify-section-gray{background:#D9E4EB}.imagify-section-gray .imagify-count-title{color:#4a4a4a}.imagify-section p:last-child{margin-bottom:0}.imagify-settings .imagify-documentation-link-box{display:-webkit-box;display:-ms-flexbox;display:flex;padding:12px 13px 14px;border:1px solid #40b1d0;color:#E5EBEF;border-radius:3px}.imagify-documentation-link-icon{width:23px;height:31px;font-size:2.6em;margin-right:15px;line-height:1.3}.imagify-documentation-link-box span{font-size:12px}.imagify-documentation-link-box a{font-weight:700}@media (max-width:1120px){.imagify-settings .imagify-title{-ms-flex-wrap:wrap;flex-wrap:wrap}}.imagify-settings-section{padding:10px 20px}.imagify-account-info-col .imagify-settings-section{padding-right:0}.imagify-settings-main-content,.imagify-welcome .imagify-settings-section{border:1px solid #D9D9D9;border-top-width:0;background:#FFF}.imagify-settings-main-content{padding-bottom:20px}.imagify-settings-main-content .imagify-setting-line,.imagify-settings-main-content p{font-size:14px;line-height:1.5}.imagify-settings-main-content .code{max-height:10em;padding:3px 5px 2px;overflow:auto;background:#EAEAEA;background:rgba(0,0,0,.07)}.imagify-settings-main-content+.imagify-settings-main-content{margin-top:20px;border-top-width:1px}.imagify-br{line-height:2}p.imagify-section-title.imagify-section-title{font-size:20px;margin-top:-.3em;margin-bottom:-.6em}.imagify-rate-us.imagify-rate-us{text-align:right;margin:-1em -2.4em -1em 0;color:#FFF}.imagify-rate-us a{color:#40B1D0}.imagify-rate-us .stars{display:inline-block;margin:2px 0 0 10px;text-decoration:none;letter-spacing:.2em;vertical-align:-1px}.imagify-rate-us .stars .dashicons:before{font-size:18px}.imagify-rate-us a:focus,.imagify-rate-us a:hover{color:#FEE102}@media (max-width:1220px){.imagify-rate-us.imagify-rate-us{position:static;margin-bottom:0;text-align:left}.imagify-rate-us.imagify-rate-us br{display:none}.imagify-rate-us .stars{display:block;margin-left:0}}.imagify-important{color:#F5A623}.imagify-settings .imagify-success,.imagify-success{color:#8BC34A}.imagify-info,.imagify-info a{color:#7A8996;font-size:12px}.imagify-info{position:relative;display:inline-block;padding-left:25px}.imagify-info .dashicons{position:absolute;left:0;top:0;color:#40B1D0}.imagify-checkbox.imagify-checkbox:checked,.imagify-checkbox.imagify-checkbox:not(:checked),.imagify-settings.imagify-settings [type=checkbox]:checked,.imagify-settings.imagify-settings [type=checkbox]:not(:checked){position:absolute;opacity:.01}.imagify-checkbox.imagify-checkbox:checked:focus,.imagify-checkbox.imagify-checkbox:not(:checked):focus,.imagify-settings.imagify-settings [type=checkbox]:checked:focus,.imagify-settings.imagify-settings [type=checkbox]:not(:checked):focus{-webkit-box-shadow:none!important;box-shadow:none!important;outline:0!important;border:0!important}.imagify-checkbox.imagify-checkbox:checked+label,.imagify-checkbox.imagify-checkbox:not(:checked)+label,.imagify-settings [type=checkbox]:checked+label,.imagify-settings [type=checkbox]:not(:checked)+label{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;min-height:24px;padding-left:40px;cursor:pointer;font-size:14px;font-weight:700;color:#2E3243}.imagify-checkbox.imagify-checkbox:checked+label:before,.imagify-checkbox.imagify-checkbox:not(:checked)+label:before,.imagify-settings [type=checkbox]:checked+label:before,.imagify-settings [type=checkbox]:not(:checked)+label:before{content:'';position:absolute;left:0;top:0;width:22px;height:22px;border:2px solid #8BA6B4;background:#FFF;border-radius:3px}.imagify-checkbox.imagify-checkbox:checked+label:after,.imagify-checkbox.imagify-checkbox:not(:checked)+label:after,.imagify-settings [type=checkbox]:checked+label:after,.imagify-settings [type=checkbox]:not(:checked)+label:after{content:"✓";position:absolute;font-size:1.4em;top:-2px;left:4.5px;color:#8BA6B4;font-weight:400;-webkit-transition:all .2s;-o-transition:all .2s;transition:all .2s}.imagify-checkbox.imagify-checkbox[disabled]:checked+label:before,.imagify-checkbox.imagify-checkbox[disabled]:not(:checked)+label:before,.imagify-settings [type=checkbox][disabled]:checked+label:before,.imagify-settings [type=checkbox][disabled]:not(:checked)+label:before{border-color:#ccc;background:#ddd}.imagify-checkbox.imagify-checkbox:not(:checked)+label:after,.imagify-settings [type=checkbox]:not(:checked)+label:after{opacity:0;-webkit-transform:scale(0);-ms-transform:scale(0);transform:scale(0)}.imagify-checkbox.imagify-checkbox:checked+label:after,.imagify-settings [type=checkbox]:checked+label:after{opacity:1;-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}.medium.imagify-checkbox:checked+label:before,.medium.imagify-checkbox:not(:checked)+label:before{width:22px;height:22px;border-width:1.5px;border-radius:2px;margin-top:0}.medium.imagify-checkbox:checked+label:after,.medium.imagify-checkbox:not(:checked)+label:after{font-size:1.1em;left:-17px;top:3px}.imagify-settings .mini[type=checkbox]:checked+label:before,.imagify-settings .mini[type=checkbox]:not(:checked)+label:before,.mini.imagify-checkbox:checked+label:before,.mini.imagify-checkbox:not(:checked)+label:before{width:15px;height:15px;border-width:1px;border-radius:2px;margin-top:0}.imagify-settings .mini[type=checkbox]:checked+label:after,.imagify-settings .mini[type=checkbox]:not(:checked)+label:after,.mini.imagify-checkbox:checked+label:after,.mini.imagify-checkbox:not(:checked)+label:after{font-size:.9em;left:-21px;top:-.5px}.imagify-checkbox.imagify-checkbox:checked:focus+label:before,.imagify-checkbox.imagify-checkbox:not(:checked):focus+label:before,.imagify-settings [type=checkbox]:checked:focus+label:before,.imagify-settings [type=checkbox]:not(:checked):focus+label:before{border-style:dotted;border-color:#40b1d0}.imagify-check-group{padding-left:2px;margin-bottom:0}.imagify-check-group.imagify-is-scrollable{height:15em;overflow-y:auto;padding:8px;margin:1.5em 0 0 -8px;background:#F4F7F9;border:1px solid #D2D3D6;border-radius:3px}.imagify-is-scrollable legend+p{margin-top:0}.imagify-is-scrollable [type=checkbox]:checked+label:before,.imagify-is-scrollable [type=checkbox]:not(:checked)+label:before{background:#F4F7F9}.imagify-settings .imagify-check-group.imagify-check-group label{color:#338EA6;font-weight:500}.imagify-inline-options{position:relative;display:table;width:100%;max-width:600px;border-collapse:collapse}.imagify-inline-options input[type=radio]:checked,.imagify-inline-options input[type=radio]:not(:checked){position:absolute;left:5px;top:5px;display:none}.imagify-inline-options input[type=radio]:checked+label,.imagify-inline-options input[type=radio]:not(:checked)+label{position:relative;display:table-cell;padding:13px 10px;text-align:center;font-weight:600;font-size:16px;text-transform:uppercase;letter-spacing:.1em;color:#FFF;background:#2E3243;-webkit-box-shadow:0 -3px 0 rgba(0,0,0,.1) inset;box-shadow:0 -3px 0 rgba(0,0,0,.1) inset;z-index:2;-webkit-transition:all .275s;-o-transition:all .275s;transition:all .275s}.imagify-inline-options input[type=radio]:checked+label:first-of-type,.imagify-inline-options input[type=radio]:not(:checked)+label:first-of-type{border-radius:3px 0 0 3px}.imagify-inline-options input[type=radio]:checked+label:last-of-type,.imagify-inline-options input[type=radio]:not(:checked)+label:last-of-type{border-radius:0 3px 3px 0}.imagify-inline-options input[type=radio]:checked+label{background:#8BC34A}.imagify-inline-options .imagify-info{margin-top:15px}.imagify-account-info-col,.imagify-col.imagify-col.imagify-account-info-col{width:380px;max-width:100%;padding:0 20px 0 0}.imagify-col.imagify-col.imagify-shared-with-account-col,.imagify-shared-with-account-col{width:calc(100% - 380px);padding:0}.imagify-account-info-col .imagify-options-title{padding:24px 26px;color:#FFF;background:#1F2332}.imagify-block-secondary{padding:26px 26px 35px;border:1px solid #75A345;background:#8BC34A;border-radius:3px;color:#FFF}.imagify-account-info-col .imagify-block-secondary.imagify-block-secondary h3,.imagify-block-secondary.imagify-block-secondary p{color:inherit}.imagify-account-info-col .imagify-col-content h3:first-child{margin-top:0}.imagify-account-info-col .imagify-col-content h3{font-size:19px}.imagify-account-info-col .imagify-col-content p{margin:1.5em 0}.imagify-account-info-col .imagify-col-content p:first-child{margin-top:0}.imagify-user-plan-label{float:right;margin-top:-4px;padding:2px 10px;border:2px solid #40B1D0;font-size:14px;text-transform:uppercase;letter-spacing:.02em;color:#40B1D0;border-radius:3px}.imagify-modal .h2,.imagify-modal .h3{letter-spacing:.075em;text-align:center;font-weight:400}.imagify-user-plan-label:empty{display:none}.imagify-columns{padding:15px 0;counter-reset:cols}.imagify-columns [class^=col-]{float:left;-webkit-box-sizing:border-box;box-sizing:border-box}.imagify-columns .col-1-3{width:33.333%;padding-left:28px}.imagify-columns .col-2-3{width:66.666%;padding-left:28px}.imagify-columns .col-1-2{width:50%;padding:0 20px}@media (max-width:830px){.imagify-columns [class^=col-]{float:none;margin-bottom:1.5em}.imagify-columns .col-1-2,.imagify-columns .col-1-3{width:auto;padding:0 28px;clear:both;padding-top:1em}}.column-imagify_optimized_file.column-imagify_optimized_file{width:300px;text-align:center;vertical-align:middle}.column-imagify_optimized_file>*{max-width:21em;margin:0 auto}@media (min-width:1151px) and (max-width:1800px){.column-imagify_optimized_file.column-imagify_optimized_file{width:21em}}@media (min-width:783px) and (max-width:1150px){.column-imagify_optimized_file.column-imagify_optimized_file{width:13em}table.media .column-title .has-media-icon~.row-actions.row-actions{margin-left:0}}@media (max-width:782px){table.media .column-imagify_optimized_file.column-imagify_optimized_file{text-align:left}table.media .imagify-datas-actions-links,table.media .imagify-datas-more-action{text-align:center}table.media .column-imagify_optimized_file .imagify-datas-actions-links a,table.media .column-imagify_optimized_file>*{max-width:100%;margin-left:0}}@media (min-width:783px) and (max-width:1150px),(max-width:360px){table.media .imagify-hide-if-small{position:absolute;margin:-1px;padding:0;height:1px;width:1px;overflow:hidden;clip:rect(0 0 0 0);border:0;word-wrap:normal!important}}.compat-field-imagify .label{vertical-align:top}.compat-field-imagify ul.imagify-datas-list{margin-top:7px;font-size:11px}ul.imagify-datas-list.imagify-datas-list{margin:0 auto;color:#555}ul.imagify-datas-list .big{font-size:12px;color:#40B1D0}li.imagify-data-item{clear:both;margin-bottom:2px}ul.imagify-datas-list .imagify-data-item span.data,ul.imagify-datas-list .imagify-data-item strong{float:left;width:38%;-webkit-box-sizing:border-box;box-sizing:border-box}ul.imagify-datas-list .imagify-data-item span.data{width:62%;padding-right:5px;text-align:left}.compat-field-imagify .imagify-datas-list .imagify-data-item .data{width:130px;text-align:left;font-weight:700}ul.imagify-datas-list .imagify-data-item strong{text-align:left;padding-left:5px}.media-sidebar .imagify-datas-list .imagify-data-item .data{width:auto;float:none}.media-sidebar .imagify-datas-list .imagify-data-item strong{display:inline-block;width:auto;float:none}.media-sidebar .imagify-datas-list .imagify-data-item .imagify-chart{float:left}.imagify-datas-more-action.imagify-datas-more-action{margin:.4em auto;background:-webkit-gradient(linear,left top,left bottom,from(transparent),color-stop(49%,transparent),color-stop(50%,rgba(0,0,0,.075)),color-stop(58%,rgba(0,0,0,.075)),color-stop(58%,transparent),to(transparent));background:-o-linear-gradient(top,transparent,transparent 49%,rgba(0,0,0,.075) 50%,rgba(0,0,0,.075) 58%,transparent 58%,transparent);background:linear-gradient(to bottom,transparent,transparent 49%,rgba(0,0,0,.075) 50%,rgba(0,0,0,.075) 58%,transparent 58%,transparent)}.imagify-datas-more-action a{display:inline-block;padding:0 5px;background:#40B1D0;color:#FFF;text-transform:uppercase;font-size:9px;font-weight:700;line-height:1.9;text-decoration:none}.imagify-datas-more-action a.is-open{background:#555}.imagify-datas-more-action a.is-open .dashicons{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.imagify-datas-more-action a .dashicons{font-size:14px;vertical-align:middle;line-height:.8}.imagify-datas-more-action a .dashicons:before{vertical-align:middle;line-height:20px}.imagify-datas-more-action .the-text{display:inline-block;vertical-align:middle;height:auto;line-height:inherit}ul.imagify-datas-details.imagify-datas-details{margin:.7em auto}.imagify-datas-details strong{color:#40B1D0}.imagify-datas-details .original{color:#555}.imagify-datas-actions-links{border-top:2px solid transparent;padding-top:5px;font-size:11px}.nggform .imagify-datas-actions-links{position:relative;z-index:2}.nggform .row-actions{z-index:1}.imagify-datas-actions-links a{position:relative;display:inline-block;padding-left:17px;text-decoration:none;font-weight:600}.compat-field-imagify .imagify-datas-actions-links{max-width:300px}.misc-pub-imagify .imagify-datas-actions-links{border-top:2px solid #f2f2f2;padding-bottom:5px}.column-imagify_optimized_file .imagify-datas-actions-links a{margin:0 .7em;padding-left:15px}.compat-field-imagify .imagify-datas-actions-links a,.misc-pub-imagify .imagify-datas-actions-links a{float:left;width:50%}.media-sidebar .compat-field-imagify .imagify-datas-actions-links a,.submitbox .misc-pub-imagify .imagify-datas-actions-links a{display:block;width:auto;float:none}.media-sidebar .compat-field-imagify .imagify-datas-actions-links br,.submitbox .misc-pub-imagify .imagify-datas-actions-links br{display:none}.imagify-datas-actions-links a:only-child{float:none;width:auto}.imagify-datas-details.is-open+.imagify-datas-actions-links{border-top-color:rgba(0,0,0,.075)}.imagify-datas-actions-links .dashicons{position:absolute;left:0;top:4px;width:12px;margin-right:2px;font-size:11px}.imagify-account,.imagify-account-link{padding-right:15px}.imagify-meteo-icon{display:inline-block;height:38px;vertical-align:middle;margin-right:10px}.imagify-user-plan{color:#40b1d0}.imagify-meteo-title.imagify-meteo-title{color:#FFF;font-size:17px}.imagify-space-left>p{color:#FFF}[class^=imagify-bar-]{position:relative;height:8px;width:100%;background:#60758D;color:#FFF;font-size:10px}.imagify-progress{height:8px;-webkit-transition:width .3s;-o-transition:width .3s;transition:width .3s}.imagify-bar-positive .imagify-progress{background:#8CC152}.imagify-bar-positive .imagify-barnb{color:#8CC152}.imagify-bar-primary .imagify-progress{background:#40B1D0}.imagify-bar-primary .imagify-barnb{color:#40B1D0}.imagify-bar-negative .imagify-progress{background:#D2D3D6}.imagify-bar-negative .imagify-barnb{color:#7A8996}.imagify-bar-neutral .imagify-progress{background:#F5A623}.imagify-space-left .imagify-bar-negative .imagify-progress{background:#C51162}.imagify-btn-ghost{display:inline-block;height:auto;padding:7px 10px;border:1px solid #FFF;text-align:center;background:0 0;color:#FFF;border-radius:3px;-webkit-transition:all .275s;-o-transition:all .275s;transition:all .275s}.imagify-btn-ghost:focus,.imagify-btn-ghost:hover{background:#FFF;color:#888}.imagify-error{background:#D0021B;color:#FFF}.imagify-settings-section .imagify-error{display:inline-block;padding:7px 10px;margin:10px 0 0 45px;border-radius:3px}.imagify-settings-section .imagify-error code{font-weight:400}.imagify-settings-section .imagify-error.hidden{display:none}.imagify-warning{background:#f5a623;color:#FFF;text-shadow:0 0 2px rgba(0,0,0,.2)}.imagify-modal{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.js .imagify-modal{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background-color:#1F2332;background-color:rgba(31,35,50,.95);z-index:99999}.imagify-modal-content{-webkit-box-sizing:border-box;box-sizing:border-box;position:relative;width:800px;max-width:95%;max-height:90vw;overflow:auto;padding:20px 25px;margin:1em auto;background:#FFF;-webkit-box-shadow:1px 1px 4px rgba(0,0,0,.7);box-shadow:1px 1px 4px rgba(0,0,0,.7);border-radius:3px}#imagify-visual-comparison .imagify-modal-content,.imagify-visual-comparison .imagify-modal-content{max-width:1400px;background:0 0;padding:5px;-webkit-box-shadow:none;box-shadow:none;border-radius:0}.imagify-modal .h2{margin:.5em 0;color:#8ba6b4;font-size:24px}.imagify-modal .h3{color:#40b1d0;font-size:18px}.imagify-modal .close-btn{display:none;visibility:hidden;position:absolute;right:20px;top:20px;font-size:1.2em;border:0;background:0 0;border-radius:0;cursor:pointer}.imagify-modal .close-btn i{margin-left:-2px}.imagify-modal .close-btn:focus,.imagify-modal .close-btn:hover{color:#40b1d0}.js .imagify-modal .close-btn{display:block;visibility:visible}.imagify-visual-comparison .close-btn,.wp_attachment_image #imagify-visual-comparison .close-btn{top:0}.imagify-visual-comparison .imagify-modal-content,.wp_attachment_image #imagify-visual-comparison .imagify-modal-content{padding-top:40px}.imagify-col{float:left;width:50%;-webkit-box-sizing:border-box;box-sizing:border-box;-ms-flex-preferred-size:50%;flex-basis:50%;padding-right:20px}.imagify-col+.imagify-col{padding-right:0;padding-left:20px}.imagify-col:target{-webkit-animation:hello 1s 3 linear backwards;animation:hello 1s 3 linear backwards}@-webkit-keyframes hello{0%,100%{background:#FFF}50%{background:#F4F7F9}}@keyframes hello{0%,100%{background:#FFF}50%{background:#F4F7F9}}
|
1 |
+
.imagify-start,.wp_attachment_image .imagify-button-primary{float:left}.imagify-mt0.imagify-mt0,.imagify-section p:first-child{margin-top:0}.imagify-columns,.imagify-data-item,.imagify-datas-actions-links,.imagify-oh,body.imagify-modal-is-open{overflow:hidden}.imagify-flex{display:-webkit-box;display:-ms-flexbox;display:flex}.imagify-vcenter{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.imagify-noshrink{-ms-flex-negative:0;flex-shrink:0}.imagify-nogrow{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0}.imagify-wauto{width:auto}.imagify-hauto{height:auto}.imagify-full-width{width:100%}.imagify-end{float:right}.imagify-txt-start.imagify-txt-start.imagify-txt-start{text-align:left}.imagify-txt-center.imagify-txt-center.imagify-txt-center{text-align:center}.imagify-txt-end.imagify-txt-end.imagify-txt-end{text-align:right}.imagify-mt1.imagify-mt1{margin-top:1em}.imagify-mt2.imagify-mt2{margin-top:2em}.imagify-mt3.imagify-mt3{margin-top:3em}.imagify-mb0.imagify-mb0{margin-bottom:0}.imagify-mb1.imagify-mb1{margin-bottom:1em}.imagify-mr1.imagify-mr1{margin-right:1em}.imagify-ml2.imagify-ml2{margin-left:2em}.imagify-mr2.imagify-mr2{margin-right:2em}.imagify-pl0.imagify-pl0.imagify-pl0{padding-left:0}.imagify-pb0.imagify-pb0{padding-bottom:0}.imagify-pr1.imagify-pr1{padding-right:1em}.imagify-pr2.imagify-pr2{padding-right:2em}.imagify-clear{clear:both}.imagify-clearfix:after,.imagify-inline-options:after,.imagify-settings-main-content:after,.imagify-settings-section:after{content:"";display:table;width:100%;clear:both}.imagify-setting-optim-level .imagify-inline-options:after{display:none}.imagify-divider{height:1px;margin:20px 0;background:#D2D3D6}.imagify-pipe{display:inline-block;margin:0 .75em;vertical-align:middle;height:15px;width:1px;background:#979797}.imagify-h3-like.imagify-h3-like.imagify-h3-like{margin-bottom:0;font-size:19px;font-weight:500;color:#1F2332}.imagify-h4-like.imagify-h4-like.imagify-h4-like{font-size:14px;font-weight:700;color:#2E3243}.imagify-count.imagify-count{counter-reset:num}.imagify-count .imagify-count-title{font-weight:700}.imagify-default-settings{color:#73818c;font-weight:400}.imagify-count .imagify-count-title:before{counter-increment:num 1;content:counter(num) ". "}.imagify-count-list{counter-reset:listcount}.imagify-count-list li{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.imagify-count-list li+li{margin-top:.5em}.imagify-count-list li:before{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-preferred-size:24px;flex-basis:24px;-ms-flex-negative:0;flex-shrink:0;-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;margin-right:16px;border:2px solid #40b1d0;width:24px;height:24px;counter-increment:listcount 1;content:counter(listcount);color:#40b1d0;border-radius:50%}.imagify-table{display:table;width:100%}.imagify-cell{display:table-cell;padding:10px;vertical-align:top}.imagify-cell.va-top,.va-top .imagify-cell{vertical-align:top}.imagify-bulk-submit .imagify-cell{padding-top:0}.imagify-spinner{display:inline-block;width:20px;height:20px;margin-right:5px;vertical-align:middle;background:url(../images/spinner.gif) 0 0/20px 20px no-repeat rgba(0,0,0,0);opacity:.7}.spinner.imagify-hidden{width:0;margin:4px 0 0}.imagify-primary.imagify-primary.imagify-primary{color:#40b1d0}.imagify-secondary.imagify-secondary.imagify-secondary,.imagify-valid{color:#8BC34A}.misc-pub-section.misc-pub-imagify h4{font-size:14px;margin-top:5px;margin-bottom:0}.imagify-chart{position:relative;top:1px;display:inline-block;vertical-align:middle}.imagify-chart-container{position:relative;display:inline-block;margin-right:5px}.imagify-chart-container canvas{display:block}.imagify-settings .button,.imagify-settings a,.imagify-settings input,.imagify-welcome .button,.imagify-welcome a,.imagify-weolcome input{-webkit-transition:all .275s;-o-transition:all .275s;transition:all .275s}.imagify-settings a{color:#40b1d0}.imagify-settings,.imagify-settings p,.imagify-settings th{color:#5F758E}.imagify-button-primary.imagify-button-primary,.imagify-button-secondary.imagify-button-secondary,.imagify-button.imagify-button,.imagify-main-content .button,.imagify-notice .button,.imagify-settings-section .button,.imagify-welcome .button{height:auto;padding:11px 22px;border:0;font-size:14px;font-weight:600;text-transform:uppercase;letter-spacing:.01em;word-spacing:.01em;-webkit-box-shadow:0 3px 0 rgba(0,0,0,.15);box-shadow:0 3px 0 rgba(0,0,0,.15);border-radius:3px;cursor:pointer;-webkit-transition:all .275s;-o-transition:all .275s;transition:all .275s}.button-primary.button-mini{padding:2px 10px}.imagify-settings .button.button-mini-flat{padding:3px 6px 5px;font-size:12px;-webkit-box-shadow:none!important;box-shadow:none!important;line-height:1.2}.imagify-settings .button.button-mini-flat:focus,.imagify-settings .button.button-mini-flat:hover{-webkit-box-shadow:none!important;box-shadow:none!important}.imagify-button-ghost.imagify-button-ghost,.imagify-title .button-ghost.button-ghost{padding:2px 9px;border:1px solid #40B1D0;font-size:12px;font-weight:400;color:#40B1D0;background:0 0;-webkit-box-shadow:none;box-shadow:none}.imagify-button-ghost.imagify-button-ghost:focus,.imagify-button-ghost.imagify-button-ghost:hover,.imagify-title .button-ghost.button-ghost:focus,.imagify-title .button-ghost.button-ghost:hover{border-color:transparent;color:#000;background:#40B1D0}.imagify-button-ghost.imagify-button-ghost:focus,.imagify-button-ghost.imagify-button-ghost:hover{color:#FFF}.imagify-button-medium.imagify-button-medium{text-transform:uppercase;letter-spacing:.1em;padding:3px 10px;font-weight:700}.imagify-button-medium.imagify-button-ghost{border-width:2px}[class*=imagify-] .button .dashicons{margin-right:5px;vertical-align:middle}.imagify-button-primary.imagify-button-primary,.imagify-settings .button-primary.button-primary,.imagify-welcome .button-primary.button-primary{background:#40B1D0;color:#FFF;-webkit-box-shadow:0 3px 0 rgba(51,142,166,1);box-shadow:0 3px 0 rgba(51,142,166,1);text-shadow:0 -1px 1px #006799,1px 0 1px #006799,0 1px 1px #006799!important}.imagify-button-secondary.imagify-button-secondary{background:#8BC34A;color:#FFF;-webkit-box-shadow:0 3px 0 #6F9C3B;box-shadow:0 3px 0 #6F9C3B;text-shadow:0 -1px 1px #6F9C3B,1px 0 1px #6F9C3B,0 1px 1px #6F9C3B!important}.imagify-button-primary.imagify-button-primary:focus,.imagify-button-primary.imagify-button-primary:hover,.imagify-settings .button-primary:focus,.imagify-settings .button-primary:hover,.imagify-welcome .button-primary:focus,.imagify-welcome .button-primary:hover{background:#338ea6;-webkit-box-shadow:0 3px 0 #1f7a92;box-shadow:0 3px 0 #1f7a92}.imagify-button-secondary.imagify-button-secondary:focus,.imagify-button-secondary.imagify-button-secondary:hover{background:#6F9C3B;color:#FFF}.imagify-button-light.imagify-button-light{background:#FFF;color:#4a4a4a;-webkit-box-shadow:0 2px 0 rgba(0,0,0,.2);box-shadow:0 2px 0 rgba(0,0,0,.2)}.imagify-block-secondary .imagify-button-light.imagify-button-light{color:#6F9C3B}.imagify-button-light.imagify-button-light:focus,.imagify-button-light.imagify-button-light:hover{color:#FFF;background:rgba(0,0,0,.2)}.button.imagify-button-clean,.imagify-button-clean{padding:0;background:0 0;-webkit-box-shadow:none;box-shadow:none}.imagify-button-clean .dashicons-plus{width:32px;height:25px}.imagify-button-clean .dashicons-plus:before{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;width:25px;height:22px;margin-left:2px;padding-top:3px;font-size:17px;background:#40B1D0;color:#FFF;-webkit-transition:all .275s;-o-transition:all .275s;transition:all .275s}.button.imagify-button-clean:active,.button.imagify-button-clean:focus,.button.imagify-button-clean:hover,.button.imagify-button-clean[disabled]{background:0 0!important;color:#343A49;-webkit-box-shadow:none;box-shadow:none}.button.imagify-button-clean:focus .dashicons-plus:before,.button.imagify-button-clean:hover .dashicons-plus:before{background:#343A49}button.imagify-link-like{border:0;padding:0;color:inherit;text-decoration:underline;font-size:13px;-webkit-box-shadow:none;box-shadow:none;background:0 0;cursor:pointer}.imagify-section-positive .imagify-button-light{color:#709A41}.imagify-button.imagify-button-big{font-size:15px;padding:11px 30px}.imagify-button-big .dashicons{font-size:1.45em;margin-right:6px;margin-left:-4px}.imagify-button-primary.imagify-button-primary .dashicons,.imagify-button-secondary.imagify-button-secondary .dashicons,.imagify-button.imagify-button .dashicons,.imagify-notice .button .dashicons,.imagify-settings .button .dashicons,.imagify-welcome .button .dashicons{vertical-align:middle}[class*=imagify-] .button-text{display:inline-block;vertical-align:middle}.media-frame-content .imagify-button-primary,.wp_attachment_image .imagify-button-primary{padding:0 10px 1px;margin:0 5px 2px 0;font-size:13px;line-height:26px;-webkit-box-shadow:0 3px 0 rgba(51,142,166,1);box-shadow:0 3px 0 rgba(51,142,166,1)}.imagify-title.imagify-title{position:relative;padding:10px 30px;font-size:23px;background:#1F2332;color:#FFF}.imagify-welcome .imagify-logo{opacity:1}.imagify-welcome .imagify-title{display:-webkit-box;display:-ms-flexbox;display:flex;padding:20px 30px}.imagify-settings .imagify-title{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.imagify-settings .imagify-logo-block{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-ms-flex-negative:0;flex-shrink:0;-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;padding:0;margin-right:35px;color:inherit}.imagify-logo-block sup{color:#1F2332}.imagify-settings .imagify-title+.imagify-notice{margin:0;border-right:1px solid #D9D9D9;padding-top:15px;padding-bottom:15px}.imagify-title .title-text{font-size:28px;font-weight:700;color:#FFF}.imagify-lb-icon{padding-right:18px}.imagify-lb-text img{margin-bottom:.15em}.imagify-lb-text{font-size:23px;font-weight:700;color:#FFF}.imagify-logo{display:block;vertical-align:top;opacity:.4}.imagify-section,.imagify-settings div.submit,.imagify-sub-header,.imagify-sub-title.imagify-sub-title{margin:0;padding:20px;background:#F2F5F7}.imagify-section-positive,.imagify-sub-title.imagify-sub-title{padding-left:40px}.imagify-section-positive{background:#8cc152;color:#FFF}.imagify-section-positive p{color:#FFF}.imagify-section-gray{background:#D9E4EB}.imagify-section-gray .imagify-count-title{color:#4a4a4a}.imagify-section p:last-child{margin-bottom:0}.imagify-settings .imagify-documentation-link-box{display:-webkit-box;display:-ms-flexbox;display:flex;padding:12px 13px 14px;border:1px solid #40b1d0;color:#E5EBEF;border-radius:3px}.imagify-documentation-link-icon{width:23px;height:31px;font-size:2.6em;margin-right:15px;line-height:1.3}.imagify-documentation-link-box span{font-size:12px}.imagify-documentation-link-box a{font-weight:700}@media (max-width:1120px){.imagify-settings .imagify-title{-ms-flex-wrap:wrap;flex-wrap:wrap}}.imagify-settings-section{padding:10px 20px}.imagify-account-info-col .imagify-settings-section{padding-right:0}.imagify-settings-main-content,.imagify-welcome .imagify-settings-section{border:1px solid #D9D9D9;border-top-width:0;background:#FFF}.imagify-settings-main-content{padding-bottom:20px}.imagify-settings-main-content .imagify-setting-line,.imagify-settings-main-content p{font-size:14px;line-height:1.5}.imagify-settings-main-content .code{max-height:10em;padding:3px 5px 2px;overflow:auto;background:#EAEAEA;background:rgba(0,0,0,.07)}.imagify-settings-main-content+.imagify-settings-main-content{margin-top:20px;border-top-width:1px}.imagify-br{line-height:2}p.imagify-section-title.imagify-section-title{font-size:20px;margin-top:-.3em;margin-bottom:-.6em}.imagify-rate-us.imagify-rate-us{text-align:right;margin:-1em -2.4em -1em 0;color:#FFF}.imagify-rate-us a{color:#40B1D0}.imagify-rate-us .stars{display:inline-block;margin:2px 0 0 10px;text-decoration:none;letter-spacing:.2em;vertical-align:-1px}.imagify-rate-us .stars .dashicons:before{font-size:18px}.imagify-rate-us a:focus,.imagify-rate-us a:hover{color:#FEE102}@media (max-width:1220px){.imagify-rate-us.imagify-rate-us{position:static;margin-bottom:0;text-align:left}.imagify-rate-us.imagify-rate-us br{display:none}.imagify-rate-us .stars{display:block;margin-left:0}}.imagify-important{color:#F5A623}.imagify-settings .imagify-success,.imagify-success{color:#8BC34A}.imagify-info,.imagify-info a{color:#7A8996;font-size:12px}.imagify-info{position:relative;display:inline-block;padding-left:25px}.imagify-info .dashicons{position:absolute;left:0;top:0;color:#40B1D0}.imagify-checkbox.imagify-checkbox:checked,.imagify-checkbox.imagify-checkbox:not(:checked),.imagify-settings.imagify-settings [type=checkbox]:checked,.imagify-settings.imagify-settings [type=checkbox]:not(:checked){position:absolute;opacity:.01}.imagify-checkbox.imagify-checkbox:checked:focus,.imagify-checkbox.imagify-checkbox:not(:checked):focus,.imagify-settings.imagify-settings [type=checkbox]:checked:focus,.imagify-settings.imagify-settings [type=checkbox]:not(:checked):focus{-webkit-box-shadow:none!important;box-shadow:none!important;outline:0!important;border:0!important}.imagify-checkbox.imagify-checkbox:checked+label,.imagify-checkbox.imagify-checkbox:not(:checked)+label,.imagify-settings [type=checkbox]:checked+label,.imagify-settings [type=checkbox]:not(:checked)+label{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;min-height:24px;padding-left:40px;cursor:pointer;font-size:14px;font-weight:700;color:#2E3243}.imagify-checkbox.imagify-checkbox:checked+label:before,.imagify-checkbox.imagify-checkbox:not(:checked)+label:before,.imagify-settings [type=checkbox]:checked+label:before,.imagify-settings [type=checkbox]:not(:checked)+label:before{content:'';position:absolute;left:0;top:0;width:22px;height:22px;border:2px solid #8BA6B4;background:#FFF;border-radius:3px}.imagify-checkbox.imagify-checkbox:checked+label:after,.imagify-checkbox.imagify-checkbox:not(:checked)+label:after,.imagify-settings [type=checkbox]:checked+label:after,.imagify-settings [type=checkbox]:not(:checked)+label:after{content:"✓";position:absolute;font-size:1.4em;top:-2px;left:4.5px;color:#8BA6B4;font-weight:400;-webkit-transition:all .2s;-o-transition:all .2s;transition:all .2s}.imagify-checkbox.imagify-checkbox[disabled]:checked+label:before,.imagify-checkbox.imagify-checkbox[disabled]:not(:checked)+label:before,.imagify-settings [type=checkbox][disabled]:checked+label:before,.imagify-settings [type=checkbox][disabled]:not(:checked)+label:before{border-color:#ccc;background:#ddd}.imagify-checkbox.imagify-checkbox:not(:checked)+label:after,.imagify-settings [type=checkbox]:not(:checked)+label:after{opacity:0;-webkit-transform:scale(0);-ms-transform:scale(0);transform:scale(0)}.imagify-checkbox.imagify-checkbox:checked+label:after,.imagify-settings [type=checkbox]:checked+label:after{opacity:1;-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}.medium.imagify-checkbox:checked+label:before,.medium.imagify-checkbox:not(:checked)+label:before{width:22px;height:22px;border-width:1.5px;border-radius:2px;margin-top:0}.medium.imagify-checkbox:checked+label:after,.medium.imagify-checkbox:not(:checked)+label:after{font-size:1.1em;left:-17px;top:3px}.imagify-settings .mini[type=checkbox]:checked+label:before,.imagify-settings .mini[type=checkbox]:not(:checked)+label:before,.mini.imagify-checkbox:checked+label:before,.mini.imagify-checkbox:not(:checked)+label:before{width:15px;height:15px;border-width:1px;border-radius:2px;margin-top:0}.imagify-settings .mini[type=checkbox]:checked+label:after,.imagify-settings .mini[type=checkbox]:not(:checked)+label:after,.mini.imagify-checkbox:checked+label:after,.mini.imagify-checkbox:not(:checked)+label:after{font-size:.9em;left:-21px;top:-.5px}.imagify-checkbox.imagify-checkbox:checked:focus+label:before,.imagify-checkbox.imagify-checkbox:not(:checked):focus+label:before,.imagify-settings [type=checkbox]:checked:focus+label:before,.imagify-settings [type=checkbox]:not(:checked):focus+label:before{border-style:dotted;border-color:#40b1d0}.imagify-check-group{padding-left:2px;margin-bottom:0}.imagify-check-group.imagify-is-scrollable{height:15em;overflow-y:auto;padding:8px;margin:1.5em 0 0 -8px;background:#F4F7F9;border:1px solid #D2D3D6;border-radius:3px}.imagify-is-scrollable legend+p{margin-top:0}.imagify-is-scrollable [type=checkbox]:checked+label:before,.imagify-is-scrollable [type=checkbox]:not(:checked)+label:before{background:#F4F7F9}.imagify-settings .imagify-check-group.imagify-check-group label{color:#338EA6;font-weight:500}.imagify-inline-options{position:relative;display:table;width:100%;max-width:600px;border-collapse:collapse}.imagify-inline-options input[type=radio]:checked,.imagify-inline-options input[type=radio]:not(:checked){position:absolute;left:5px;top:5px;display:none}.imagify-inline-options input[type=radio]:checked+label,.imagify-inline-options input[type=radio]:not(:checked)+label{position:relative;display:table-cell;padding:13px 10px;text-align:center;font-weight:600;font-size:16px;text-transform:uppercase;letter-spacing:.1em;color:#FFF;background:#2E3243;-webkit-box-shadow:0 -3px 0 rgba(0,0,0,.1) inset;box-shadow:0 -3px 0 rgba(0,0,0,.1) inset;z-index:2;-webkit-transition:all .275s;-o-transition:all .275s;transition:all .275s}.imagify-inline-options input[type=radio]:checked+label:first-of-type,.imagify-inline-options input[type=radio]:not(:checked)+label:first-of-type{border-radius:3px 0 0 3px}.imagify-inline-options input[type=radio]:checked+label:last-of-type,.imagify-inline-options input[type=radio]:not(:checked)+label:last-of-type{border-radius:0 3px 3px 0}.imagify-inline-options input[type=radio]:checked+label{background:#8BC34A}.imagify-inline-options .imagify-info{margin-top:15px}.imagify-account-info-col,.imagify-col.imagify-col.imagify-account-info-col{width:380px;max-width:100%;padding:0 20px 0 0}.imagify-col.imagify-col.imagify-shared-with-account-col,.imagify-shared-with-account-col{width:calc(100% - 380px);padding:0}.imagify-account-info-col .imagify-options-title{padding:24px 26px;color:#FFF;background:#1F2332}.imagify-block-secondary{padding:26px 26px 35px;border:1px solid #75A345;background:#8BC34A;border-radius:3px;color:#FFF}.imagify-account-info-col .imagify-block-secondary.imagify-block-secondary h3,.imagify-block-secondary.imagify-block-secondary p{color:inherit}.imagify-account-info-col .imagify-col-content h3:first-child{margin-top:0}.imagify-account-info-col .imagify-col-content h3{font-size:19px}.imagify-account-info-col .imagify-col-content p{margin:1.5em 0}.imagify-account-info-col .imagify-col-content p:first-child{margin-top:0}.imagify-user-plan-label{float:right;margin-top:-4px;padding:2px 10px;border:2px solid #40B1D0;font-size:14px;text-transform:uppercase;letter-spacing:.02em;color:#40B1D0;border-radius:3px}.imagify-user-plan-label:empty{display:none}.imagify-columns{padding:15px 0;counter-reset:cols}.imagify-columns [class^=col-]{float:left;-webkit-box-sizing:border-box;box-sizing:border-box}.imagify-columns .col-1-3{width:33.333%;padding-left:28px}.imagify-columns .col-2-3{width:66.666%;padding-left:28px}.imagify-columns .col-1-2{width:50%;padding:0 20px}@media (max-width:830px){.imagify-columns [class^=col-]{float:none;margin-bottom:1.5em}.imagify-columns .col-1-2,.imagify-columns .col-1-3{width:auto;padding:0 28px;clear:both;padding-top:1em}}.column-imagify_optimized_file.column-imagify_optimized_file{width:300px;text-align:center;vertical-align:middle}.column-imagify_optimized_file>*{max-width:21em;margin:0 auto}@media (min-width:1151px) and (max-width:1800px){.column-imagify_optimized_file.column-imagify_optimized_file{width:21em}}@media (min-width:783px) and (max-width:1150px){.column-imagify_optimized_file.column-imagify_optimized_file{width:13em}table.media .column-title .has-media-icon~.row-actions.row-actions{margin-left:0}}@media (max-width:782px){table.media .column-imagify_optimized_file.column-imagify_optimized_file{text-align:left}table.media .imagify-datas-actions-links,table.media .imagify-datas-more-action{text-align:center}table.media .column-imagify_optimized_file .imagify-datas-actions-links a,table.media .column-imagify_optimized_file>*{max-width:100%;margin-left:0}}@media (min-width:783px) and (max-width:1150px),(max-width:360px){table.media .imagify-hide-if-small{position:absolute;margin:-1px;padding:0;height:1px;width:1px;overflow:hidden;clip:rect(0 0 0 0);border:0;word-wrap:normal!important}}.compat-field-imagify .label{vertical-align:top}.compat-field-imagify ul.imagify-datas-list{margin-top:7px;font-size:11px}ul.imagify-datas-list.imagify-datas-list{margin:0 auto;color:#555}ul.imagify-datas-list .big{font-size:12px;color:#40B1D0}li.imagify-data-item{clear:both;margin-bottom:2px}ul.imagify-datas-list .imagify-data-item span.data,ul.imagify-datas-list .imagify-data-item strong{float:left;width:38%;-webkit-box-sizing:border-box;box-sizing:border-box}ul.imagify-datas-list .imagify-data-item span.data{width:62%;padding-right:5px;text-align:left}.compat-field-imagify .imagify-datas-list .imagify-data-item .data{width:130px;text-align:left;font-weight:700}ul.imagify-datas-list .imagify-data-item strong{text-align:left;padding-left:5px}.media-sidebar .imagify-datas-list .imagify-data-item .data{width:auto;float:none}.media-sidebar .imagify-datas-list .imagify-data-item strong{display:inline-block;width:auto;float:none}.media-sidebar .imagify-datas-list .imagify-data-item .imagify-chart{float:left}.imagify-datas-more-action.imagify-datas-more-action{margin:.4em auto;background:-webkit-gradient(linear,left top,left bottom,from(transparent),color-stop(49%,transparent),color-stop(50%,rgba(0,0,0,.075)),color-stop(58%,rgba(0,0,0,.075)),color-stop(58%,transparent),to(transparent));background:-o-linear-gradient(top,transparent,transparent 49%,rgba(0,0,0,.075) 50%,rgba(0,0,0,.075) 58%,transparent 58%,transparent);background:linear-gradient(to bottom,transparent,transparent 49%,rgba(0,0,0,.075) 50%,rgba(0,0,0,.075) 58%,transparent 58%,transparent)}.imagify-datas-more-action a{display:inline-block;padding:0 5px;background:#40B1D0;color:#FFF;text-transform:uppercase;font-size:9px;font-weight:700;line-height:1.9;text-decoration:none}.imagify-datas-more-action a.is-open{background:#555}.imagify-datas-more-action a.is-open .dashicons{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.imagify-datas-more-action a .dashicons{font-size:14px;vertical-align:middle;line-height:.8}.imagify-datas-more-action a .dashicons:before{vertical-align:middle;line-height:20px}.imagify-datas-more-action .the-text{display:inline-block;vertical-align:middle;height:auto;line-height:inherit}ul.imagify-datas-details.imagify-datas-details{margin:.7em auto}.imagify-datas-details strong{color:#40B1D0}.imagify-datas-details .original{color:#555}.imagify-datas-actions-links{border-top:2px solid transparent;padding-top:5px;font-size:11px}.nggform .imagify-datas-actions-links{position:relative;z-index:2}.nggform .row-actions{z-index:1}.imagify-datas-actions-links a{position:relative;display:inline-block;padding-left:17px;text-decoration:none;font-weight:600}.compat-field-imagify .imagify-datas-actions-links{max-width:300px}.misc-pub-imagify .imagify-datas-actions-links{border-top:2px solid #f2f2f2;padding-bottom:5px}.column-imagify_optimized_file .imagify-datas-actions-links a{margin:0 .7em;padding-left:15px}.compat-field-imagify .imagify-datas-actions-links a,.misc-pub-imagify .imagify-datas-actions-links a{float:left;width:50%}.media-sidebar .compat-field-imagify .imagify-datas-actions-links a,.submitbox .misc-pub-imagify .imagify-datas-actions-links a{display:block;width:auto;float:none}.media-sidebar .compat-field-imagify .imagify-datas-actions-links br,.submitbox .misc-pub-imagify .imagify-datas-actions-links br{display:none}.imagify-datas-actions-links a:only-child{float:none;width:auto}.imagify-datas-details.is-open+.imagify-datas-actions-links{border-top-color:rgba(0,0,0,.075)}.imagify-datas-actions-links .dashicons{position:absolute;left:0;top:4px;width:12px;margin-right:2px;font-size:11px}.imagify-account,.imagify-account-link{padding-right:15px}.imagify-meteo-icon{display:inline-block;height:38px;vertical-align:middle;margin-right:10px}.imagify-user-plan{color:#40b1d0}.imagify-meteo-title.imagify-meteo-title{color:#FFF;font-size:17px}.imagify-space-left>p{color:#FFF}[class^=imagify-bar-]{position:relative;height:8px;width:100%;background:#60758D;color:#FFF;font-size:10px}.imagify-progress{height:8px;-webkit-transition:width .3s;-o-transition:width .3s;transition:width .3s}.imagify-bar-positive .imagify-progress{background:#8CC152}.imagify-bar-positive .imagify-barnb{color:#8CC152}.imagify-bar-primary .imagify-progress{background:#40B1D0}.imagify-bar-primary .imagify-barnb{color:#40B1D0}.imagify-bar-negative .imagify-progress{background:#D2D3D6}.imagify-bar-negative .imagify-barnb{color:#7A8996}.imagify-bar-neutral .imagify-progress{background:#F5A623}.imagify-space-left .imagify-bar-negative .imagify-progress{background:#C51162}.imagify-btn-ghost{display:inline-block;height:auto;padding:7px 10px;border:1px solid #FFF;text-align:center;background:0 0;color:#FFF;border-radius:3px;-webkit-transition:all .275s;-o-transition:all .275s;transition:all .275s}.imagify-btn-ghost:focus,.imagify-btn-ghost:hover{background:#FFF;color:#888}.imagify-error{background:#D0021B;color:#FFF}.imagify-settings-section .imagify-error{display:inline-block;padding:7px 10px;margin:10px 0 0 45px;border-radius:3px}.imagify-settings-section .imagify-error code{font-weight:400}.imagify-settings-section .imagify-error.hidden{display:none}.imagify-warning{background:#f5a623;color:#FFF;text-shadow:0 0 2px rgba(0,0,0,.2)}.imagify-modal{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.js .imagify-modal{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background-color:#1F2332;background-color:rgba(31,35,50,.95);z-index:99999}.imagify-modal-content{-webkit-box-sizing:border-box;box-sizing:border-box;position:relative;width:800px;max-width:95%;max-height:90vw;overflow:auto;padding:20px 25px;margin:1em auto;background:#FFF;-webkit-box-shadow:1px 1px 4px rgba(0,0,0,.7);box-shadow:1px 1px 4px rgba(0,0,0,.7);border-radius:3px}.imagify-modal-loading .imagify-modal-content{overflow:hidden}#imagify-visual-comparison .imagify-modal-content,.imagify-visual-comparison .imagify-modal-content{max-width:1400px;background:0 0;padding:5px;-webkit-box-shadow:none;box-shadow:none;border-radius:0}.imagify-modal .h2{margin:.5em 0;color:#8ba6b4;font-weight:400;font-size:24px;letter-spacing:.075em;text-align:center}.imagify-modal .h3{color:#40b1d0;font-weight:400;font-size:18px;letter-spacing:.075em;text-align:center}.imagify-modal .close-btn{display:none;visibility:hidden;position:absolute;right:20px;top:20px;font-size:1.2em;border:0;background:0 0;border-radius:0;cursor:pointer}.imagify-modal .close-btn i{margin-left:-2px}.imagify-modal .close-btn:focus,.imagify-modal .close-btn:hover{color:#40b1d0}.js .imagify-modal .close-btn{display:block;visibility:visible;z-index:12}.imagify-visual-comparison .close-btn,.wp_attachment_image #imagify-visual-comparison .close-btn{top:0}.imagify-visual-comparison .imagify-modal-content,.wp_attachment_image #imagify-visual-comparison .imagify-modal-content{padding-top:40px}.imagify-col{float:left;width:50%;-webkit-box-sizing:border-box;box-sizing:border-box;-ms-flex-preferred-size:50%;flex-basis:50%;padding-right:20px}.imagify-col+.imagify-col{padding-right:0;padding-left:20px}.imagify-col:target{-webkit-animation:hello 1s 3 linear backwards;animation:hello 1s 3 linear backwards}@-webkit-keyframes hello{0%,100%{background:#FFF}50%{background:#F4F7F9}}@keyframes hello{0%,100%{background:#FFF}50%{background:#F4F7F9}}@media (max-width:730px){.imagify-settings .imagify-documentation-link-box{margin-top:2em}}@media (max-width:782px){input[type=checkbox],input[type=radio]{height:1.5625rem;width:1.5625rem;margin:1px}[class*=imagify-] .button-text{font-size:13px}.imagify-account-info-col .imagify-settings-section{padding:0 10px}.imagify-settings-section{padding:10px}.imagify-check-group.imagify-is-scrollable{margin:auto}.imagify-col.imagify-col.imagify-shared-with-account-col,.imagify-custom-folders-section .imagify-col,.imagify-media-lib-section .imagify-col,.imagify-settings-section .imagify-col,.imagify-shared-with-account-col{width:100%;float:none;padding-right:0}.imagify-account-info-col,.imagify-col.imagify-col.imagify-account-info-col,.imagify-custom-folders-section .imagify-account-info-col,.imagify-media-lib-section .imagify-account-info-col{width:100%;float:none;padding-left:0;padding-right:0}.imagify-lb-text{font-size:20px}.imagify-vcenter{-ms-flex-direction:column;flex-direction:column;-webkit-box-direction:normal;-webkit-box-orient:vertical;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.imagify-pr2.imagify-pr2{padding-right:0}}
|
assets/css/bulk.css
CHANGED
@@ -26,7 +26,8 @@
|
|
26 |
.imagify-doughnut-legend li span {
|
27 |
display: block;
|
28 |
position: absolute;
|
29 |
-
left: 0;
|
|
|
30 |
width: 25px;
|
31 |
height: 25px;
|
32 |
border-radius: 50%;
|
@@ -47,9 +48,11 @@
|
|
47 |
float: left;
|
48 |
margin-right: 20px;
|
49 |
}
|
|
|
50 |
.imagify-chart-percent {
|
51 |
position: absolute;
|
52 |
-
left: 0;
|
|
|
53 |
top: 50%;
|
54 |
margin-top: -.5em;
|
55 |
line-height: 1;
|
@@ -58,6 +61,7 @@
|
|
58 |
font-weight: bold;
|
59 |
color: #46B1CE;
|
60 |
}
|
|
|
61 |
.imagify-chart-percent span {
|
62 |
font-size: 20px;
|
63 |
vertical-align: super;
|
@@ -100,6 +104,7 @@ body[class*="_imagify-ngg-bulk-optimization"] .media-item .progress,
|
|
100 |
body[class*="_imagify-ngg-bulk-optimization"] .media-item .percent {
|
101 |
text-align: right;
|
102 |
}
|
|
|
103 |
.media_page_imagify-bulk-optimization .media-item .progress .bar,
|
104 |
body[class*="_imagify-ngg-bulk-optimization"] .media-item .progress .bar {
|
105 |
position: relative;
|
@@ -121,9 +126,11 @@ body[class*="_imagify-ngg-bulk-optimization"] .media-item .progress .bar {
|
|
121 |
width: calc(100% - 465px);
|
122 |
padding-left: 20px;
|
123 |
}
|
|
|
124 |
.imagify-columns .col-statistics.col-statistics {
|
125 |
width: 60%;
|
126 |
}
|
|
|
127 |
.imagify-columns .col-chart.col-chart {
|
128 |
width: 40%;
|
129 |
}
|
@@ -140,9 +147,11 @@ body[class*="_imagify-ngg-bulk-optimization"] .media-item .progress .bar {
|
|
140 |
float: none;
|
141 |
margin-right: 0;
|
142 |
}
|
|
|
143 |
.imagify-doughnut-legend {
|
144 |
margin-top: 18px;
|
145 |
}
|
|
|
146 |
.imagify-global-optim-phrase {
|
147 |
padding-top: 0;
|
148 |
width: auto;
|
@@ -156,6 +165,7 @@ body[class*="_imagify-ngg-bulk-optimization"] .media-item .progress .bar {
|
|
156 |
float: none;
|
157 |
padding: 0;
|
158 |
}
|
|
|
159 |
.imagify-columns .col-chart.col-chart {
|
160 |
margin-top: 3em;
|
161 |
}
|
@@ -166,6 +176,7 @@ body[class*="_imagify-ngg-bulk-optimization"] .media-item .progress .bar {
|
|
166 |
width: 1px;
|
167 |
background: rgba(255, 255, 255, .2);
|
168 |
}
|
|
|
169 |
.base-transparent {
|
170 |
background: transparent;
|
171 |
}
|
@@ -175,6 +186,7 @@ body[class*="_imagify-ngg-bulk-optimization"] .media-item .progress .bar {
|
|
175 |
box-sizing: border-box;
|
176 |
padding-right: 4.5em;
|
177 |
}
|
|
|
178 |
.right-outside-number .imagify-barnb {
|
179 |
display: block;
|
180 |
margin-right: -5.25em;
|
@@ -191,6 +203,7 @@ body[class*="_imagify-ngg-bulk-optimization"] .media-item .progress .bar {
|
|
191 |
color: #000;
|
192 |
font-weight: bold;
|
193 |
}
|
|
|
194 |
.imagify-h2-like .dashicons,
|
195 |
.imagify-h2-like .dashicons:before {
|
196 |
font-size: 38px;
|
@@ -200,6 +213,7 @@ body[class*="_imagify-ngg-bulk-optimization"] .media-item .progress .bar {
|
|
200 |
vertical-align: -5px;
|
201 |
color: #40B1D0;
|
202 |
}
|
|
|
203 |
.imagify-info-block {
|
204 |
position: relative;
|
205 |
padding: 10px;
|
@@ -208,10 +222,12 @@ body[class*="_imagify-ngg-bulk-optimization"] .media-item .progress .bar {
|
|
208 |
border-radius: 4px;
|
209 |
line-height: 1.6;
|
210 |
}
|
|
|
211 |
.imagify-list-infos {
|
212 |
margin: 0;
|
213 |
padding: 0;
|
214 |
}
|
|
|
215 |
.imagify-list-infos li {
|
216 |
display: flex;
|
217 |
align-items: center;
|
@@ -221,12 +237,15 @@ body[class*="_imagify-ngg-bulk-optimization"] .media-item .progress .bar {
|
|
221 |
line-height: 1.5;
|
222 |
color: #626E7B;
|
223 |
}
|
|
|
224 |
.imagify-list-infos li:first-child {
|
225 |
padding-top: 5px;
|
226 |
}
|
|
|
227 |
.imagify-list-infos li:last-child {
|
228 |
padding-bottom: 5px;
|
229 |
}
|
|
|
230 |
.imagify-list-infos li + li {
|
231 |
border-top: 1px solid #E9EFF2;
|
232 |
}
|
@@ -235,6 +254,7 @@ body[class*="_imagify-ngg-bulk-optimization"] .media-item .progress .bar {
|
|
235 |
flex-grow: 0;
|
236 |
flex-basis: 50px;
|
237 |
}
|
|
|
238 |
.imagify-info-icon + span {
|
239 |
padding-left: 20px;
|
240 |
}
|
@@ -251,11 +271,13 @@ body[class*="_imagify-ngg-bulk-optimization"] .media-item .progress .bar {
|
|
251 |
background: #FFF;
|
252 |
color: #4A4A4A;
|
253 |
}
|
|
|
254 |
.imagify-bulk p,
|
255 |
.imagify-bulk li,
|
256 |
.imagify-bulk h3 {
|
257 |
color: #4A4A4A;
|
258 |
}
|
|
|
259 |
.imagify-bulk .imagify-settings-section h3 {
|
260 |
margin-bottom: 2em;
|
261 |
}
|
@@ -265,12 +287,14 @@ body[class*="_imagify-ngg-bulk-optimization"] .media-item .progress .bar {
|
|
265 |
display: flex;
|
266 |
align-items: center;
|
267 |
}
|
|
|
268 |
.imagify-account-info-col p.imagify-meteo-title {
|
269 |
margin: 0;
|
270 |
font-size: 24px;
|
271 |
font-weight: bold;
|
272 |
color: #FFF;
|
273 |
}
|
|
|
274 |
.imagify-account-info-col .imagify-options-title > a {
|
275 |
flex-basis: 100px;
|
276 |
margin-left: auto;
|
@@ -278,6 +302,7 @@ body[class*="_imagify-ngg-bulk-optimization"] .media-item .progress .bar {
|
|
278 |
text-decoration: underline;
|
279 |
font-size: 12px;
|
280 |
}
|
|
|
281 |
.imagify-account-info-col .imagify-meteo-title .dashicons,
|
282 |
.imagify-account-info-col .imagify-meteo-title .dashicons:before {
|
283 |
font-size: 38px;
|
@@ -286,28 +311,34 @@ body[class*="_imagify-ngg-bulk-optimization"] .media-item .progress .bar {
|
|
286 |
margin-right: 4px;
|
287 |
color: #40B1D0;
|
288 |
}
|
|
|
289 |
.imagify-col-content {
|
290 |
background: #F4F7F9;
|
291 |
border-left: 1px solid #ddd;
|
292 |
border-right: 1px solid #ddd;
|
293 |
}
|
|
|
294 |
.imagify-col-content .imagify-block-secondary {
|
295 |
margin-left: -1px;
|
296 |
margin-right: -1px;
|
297 |
}
|
|
|
298 |
.imagify-col-content .imagify-space-left {
|
299 |
margin: 15px 30px 15px 0;
|
300 |
}
|
|
|
301 |
.imagify-col-content .imagify-space-left p {
|
302 |
margin: 0 0 10px 0;
|
303 |
font-size: 19px;
|
304 |
font-weight: 500;
|
305 |
color: #343A49;
|
306 |
}
|
|
|
307 |
.imagify-col-content .imagify-meteo-icon {
|
308 |
height: 64px;
|
309 |
margin: 15px 15px 15px 20px;
|
310 |
}
|
|
|
311 |
.imagify-col-content .imagify-section-title + p {
|
312 |
margin-top: 10px;
|
313 |
}
|
@@ -322,6 +353,7 @@ body[class*="_imagify-ngg-bulk-optimization"] .media-item .progress .bar {
|
|
322 |
top: 100%;
|
323 |
left: 0;
|
324 |
}
|
|
|
325 |
.imagify-tooltips .icon-round {
|
326 |
float: left;
|
327 |
display: inline-block;
|
@@ -337,6 +369,7 @@ body[class*="_imagify-ngg-bulk-optimization"] .media-item .progress .bar {
|
|
337 |
text-align: center;
|
338 |
border-radius: 50%;
|
339 |
}
|
|
|
340 |
.imagify-tooltips .tooltip-content {
|
341 |
display: block;
|
342 |
position: relative;
|
@@ -347,38 +380,48 @@ body[class*="_imagify-ngg-bulk-optimization"] .media-item .progress .bar {
|
|
347 |
font-size: 10px;
|
348 |
border-radius: 3px;
|
349 |
}
|
|
|
350 |
.imagify-tooltips.right .tooltip-content {
|
351 |
margin-left: 12px;
|
352 |
}
|
|
|
353 |
.imagify-tooltips.bottom .tooltip-content {
|
354 |
margin-top: 4px;
|
355 |
}
|
|
|
356 |
.imagify-inline-options label .tooltip-content {
|
357 |
position: absolute;
|
358 |
-
left: 0;
|
|
|
359 |
top: 100%;
|
360 |
text-transform: none;
|
361 |
font-size: 10px;
|
362 |
letter-spacing: 0;
|
363 |
text-align: center;
|
364 |
}
|
|
|
365 |
.imagify-tooltips .tooltip-content:after {
|
366 |
content: "";
|
367 |
position: absolute;
|
368 |
}
|
|
|
369 |
.imagify-tooltips.right .tooltip-content:after {
|
370 |
-
top: 16px;
|
|
|
371 |
border-right: 8px solid #2e3242;
|
372 |
border-top: 6px solid transparent;
|
373 |
border-bottom: 6px solid transparent;
|
374 |
}
|
|
|
375 |
.imagify-tooltips.bottom .tooltip-content:after {
|
376 |
-
top: -5px;
|
|
|
377 |
margin-left: -3px;
|
378 |
border-bottom: 6px solid #2e3242;
|
379 |
border-left: 6px solid transparent;
|
380 |
border-right: 6px solid transparent;
|
381 |
}
|
|
|
382 |
.imagify-space-tooltips .tooltip-content {
|
383 |
max-width: 280px;
|
384 |
margin-top: 20px;
|
@@ -388,6 +431,7 @@ body[class*="_imagify-ngg-bulk-optimization"] .media-item .progress .bar {
|
|
388 |
background: #40B1D0;
|
389 |
box-shadow: 0 3px 0 #338EA6;
|
390 |
}
|
|
|
391 |
.imagify-space-tooltips .tooltip-content:after {
|
392 |
top: -14px;
|
393 |
left: 50%;
|
@@ -397,31 +441,39 @@ body[class*="_imagify-ngg-bulk-optimization"] .media-item .progress .bar {
|
|
397 |
border-left: 15px solid transparent;
|
398 |
border-right: 15px solid transparent;
|
399 |
}
|
|
|
400 |
.tooltip-content.tooltip-table {
|
401 |
display: table;
|
402 |
width: 100%;
|
403 |
}
|
|
|
404 |
.tooltip-content.tooltip-table > * {
|
405 |
display: table-cell;
|
406 |
vertical-align: middle;
|
407 |
}
|
|
|
408 |
.tooltip-content .cell-icon {
|
409 |
width: 28px;
|
410 |
}
|
|
|
411 |
.tooltip-content .cell-icon .icon {
|
412 |
margin-bottom: 0;
|
413 |
}
|
|
|
414 |
.tooltip-content .cell-text {
|
415 |
padding: 5px 10px 5px 0;
|
416 |
line-height: 1.3;
|
417 |
}
|
|
|
418 |
.tooltip-content .cell-sep {
|
419 |
width: 1px;
|
420 |
background: rgba(255, 255, 255, .4);
|
421 |
}
|
|
|
422 |
.tooltip-content .cell-cta {
|
423 |
padding-left: 10px;
|
424 |
}
|
|
|
425 |
.tooltip-content .cell-cta a {
|
426 |
display: block;
|
427 |
color: #FFF;
|
@@ -435,6 +487,7 @@ body[class*="_imagify-ngg-bulk-optimization"] .media-item .progress .bar {
|
|
435 |
margin-bottom: 1.35em;
|
436 |
overflow: hidden;
|
437 |
}
|
|
|
438 |
.imagify-number-you-optimized .number {
|
439 |
display: table-cell;
|
440 |
padding-right: 15px;
|
@@ -445,9 +498,11 @@ body[class*="_imagify-ngg-bulk-optimization"] .media-item .progress .bar {
|
|
445 |
white-space: nowrap;
|
446 |
color: #000;
|
447 |
}
|
|
|
448 |
.imagify-number-you-optimized [id="imagify-total-optimized-attachments-pct"] {
|
449 |
color: #40B1D0;
|
450 |
}
|
|
|
451 |
.imagify-number-you-optimized .text {
|
452 |
display: table-cell;
|
453 |
vertical-align: middle;
|
@@ -455,6 +510,7 @@ body[class*="_imagify-ngg-bulk-optimization"] .media-item .progress .bar {
|
|
455 |
font-size: 12px;
|
456 |
color: #626E7B;
|
457 |
}
|
|
|
458 |
.imagify-number-you-optimized > p {
|
459 |
display: table;
|
460 |
}
|
@@ -463,14 +519,17 @@ body[class*="_imagify-ngg-bulk-optimization"] .media-item .progress .bar {
|
|
463 |
.imagify-bars {
|
464 |
padding-right: 15px;
|
465 |
}
|
|
|
466 |
.imagify-bars p {
|
467 |
font-size: 12px;
|
468 |
margin-bottom: 5px;
|
469 |
}
|
|
|
470 |
.imagify-bars + .imagify-number-you-optimized {
|
471 |
border-bottom: 0;
|
472 |
padding-top: 0.85em;
|
473 |
}
|
|
|
474 |
.imagify-bars + .imagify-number-you-optimized p {
|
475 |
color: #46b1ce;
|
476 |
}
|
@@ -486,11 +545,13 @@ body[class*="_imagify-ngg-bulk-optimization"] .media-item .progress .bar {
|
|
486 |
background: #343A49;
|
487 |
color: #FFF;
|
488 |
}
|
|
|
489 |
.imagify-newbie {
|
490 |
margin-top: 4em;
|
491 |
position: relative;
|
492 |
overflow: visible;
|
493 |
}
|
|
|
494 |
.imagify-newbie .imagify-new-feature.imagify-new-feature {
|
495 |
position: absolute;
|
496 |
top: 0;
|
@@ -505,11 +566,13 @@ body[class*="_imagify-ngg-bulk-optimization"] .media-item .progress .bar {
|
|
505 |
color: #FFF;
|
506 |
background: #8BC34A;
|
507 |
}
|
|
|
508 |
.imagify-newbie .imagify-table-header {
|
509 |
padding: 30px 25px;
|
510 |
border: 2px solid #8BC34A;
|
511 |
background: #F3F9EC;
|
512 |
}
|
|
|
513 |
.imagify-th-titles .dashicons,
|
514 |
.imagify-th-titles .dashicons:before {
|
515 |
width: 38px;
|
@@ -518,31 +581,38 @@ body[class*="_imagify-ngg-bulk-optimization"] .media-item .progress .bar {
|
|
518 |
font-size: 38px;
|
519 |
color: #40B1D0;
|
520 |
}
|
|
|
521 |
.imagify-newbie .imagify-th-titles .dashicons:before {
|
522 |
color: #8BC34A;
|
523 |
}
|
|
|
524 |
.imagify-th-title.imagify-th-title.imagify-th-title {
|
525 |
margin: 0;
|
526 |
font-size: 24px;
|
527 |
font-weight: 500;
|
528 |
color: #FFF;
|
529 |
}
|
|
|
530 |
.imagify-newbie .imagify-th-title.imagify-th-title {
|
531 |
color: #343A49;
|
532 |
}
|
|
|
533 |
.imagify-th-subtitle.imagify-th-subtitle.imagify-th-subtitle {
|
534 |
margin: 0 0 5px;
|
535 |
font-size: 14px;
|
536 |
color: #7A8996;
|
537 |
font-weight: 500;
|
538 |
}
|
|
|
539 |
.imagify-th-action .imagify-button-clean {
|
540 |
font-size: 12px;
|
541 |
color: #7A8996;
|
542 |
}
|
|
|
543 |
.imagify-th-action .imagify-is-active {
|
544 |
color: #FFF;
|
545 |
}
|
|
|
546 |
.imagify-th-action .button:hover,
|
547 |
.imagify-th-action .button:focus {
|
548 |
color: #FFF;
|
@@ -553,16 +623,20 @@ body[class*="_imagify-ngg-bulk-optimization"] .media-item .progress .bar {
|
|
553 |
border-spacing: 0;
|
554 |
border-collapse: collapse;
|
555 |
}
|
|
|
556 |
.imagify-bulk-table td {
|
557 |
padding: 20px;
|
558 |
}
|
|
|
559 |
.imagify-bulk-table-details {
|
560 |
border-bottom: 2px solid #E5EBEF;
|
561 |
}
|
|
|
562 |
.imagify-bulk-table-details thead tr,
|
563 |
.imagify-bulk-table-details thead th {
|
564 |
background: #4A5362;
|
565 |
}
|
|
|
566 |
.imagify-bulk-table-details thead th {
|
567 |
padding: 12px 20px;
|
568 |
text-align: left;
|
@@ -570,13 +644,16 @@ body[class*="_imagify-ngg-bulk-optimization"] .media-item .progress .bar {
|
|
570 |
color: #E5EBEF;
|
571 |
font-size: 12px;
|
572 |
}
|
|
|
573 |
.imagify-bulk-table-details tbody tr:nth-child(odd) td {
|
574 |
background: #F2F5F7;
|
575 |
}
|
|
|
576 |
.imagify-bulk-table-content {
|
577 |
border: 1px solid #D3D3D3;
|
578 |
border-top: 0;
|
579 |
}
|
|
|
580 |
.imagify-bulk-table-footer {
|
581 |
padding: 20px;
|
582 |
color: #626E7B;
|
@@ -586,6 +663,7 @@ body[class*="_imagify-ngg-bulk-optimization"] .media-item .progress .bar {
|
|
586 |
.imagify-bulk-table tbody tr + tr {
|
587 |
border-top: 3px solid #F2F5F7;
|
588 |
}
|
|
|
589 |
.imagify-bulk-table tbody tr,
|
590 |
.imagify-bulk-table tbody td {
|
591 |
background: #FFF;
|
@@ -599,6 +677,7 @@ body[class*="_imagify-ngg-bulk-optimization"] .media-item .progress .bar {
|
|
599 |
height: 8px;
|
600 |
padding: 0;
|
601 |
}
|
|
|
602 |
.imagify-bulk-table .imagify-no-uploaded-yet td {
|
603 |
height: 200px;
|
604 |
font-size: 17px;
|
@@ -616,6 +695,7 @@ body[class*="_imagify-ngg-bulk-optimization"] .media-item .progress .bar {
|
|
616 |
.imagify-selector {
|
617 |
position: relative;
|
618 |
}
|
|
|
619 |
.imagify-selector-list {
|
620 |
background: #FFF;
|
621 |
border: 1px solid #F4F7F9;
|
@@ -625,26 +705,33 @@ body[class*="_imagify-ngg-bulk-optimization"] .media-item .progress .bar {
|
|
625 |
text-transform: uppercase;
|
626 |
letter-spacing: .02em;
|
627 |
}
|
|
|
628 |
.imagify-selector-list li:first-child label {
|
629 |
border-radius: 3px 3px 0 0;
|
630 |
}
|
|
|
631 |
.imagify-selector-list li:last-child label {
|
632 |
border-radius: 0 0 3px 3px;
|
633 |
}
|
|
|
634 |
.imagify-selector-list li {
|
635 |
margin: 0;
|
636 |
}
|
|
|
637 |
.imagify-selector-list li + li {
|
638 |
border-top: 1px solid #F4F7F9;
|
639 |
}
|
|
|
640 |
.imagify-selector-list svg {
|
641 |
margin-right: 5px;
|
642 |
}
|
|
|
643 |
.imagify-selector-list input:checked + label,
|
644 |
.imagify-selector-list .imagify-selector-current-value label {
|
645 |
background: #343A49;
|
646 |
color: #FFF;
|
647 |
}
|
|
|
648 |
.imagify-selector-list input:checked + label:hover,
|
649 |
.imagify-selector-list .imagify-selector-current-value label:hover,
|
650 |
.imagify-selector-list label:hover,
|
@@ -653,6 +740,7 @@ body[class*="_imagify-ngg-bulk-optimization"] .media-item .progress .bar {
|
|
653 |
background: #40B1D0;
|
654 |
color: #F4F7F9;
|
655 |
}
|
|
|
656 |
.imagify-selector-list input:checked + label:hover polygon,
|
657 |
.imagify-selector-list .imagify-selector-current-value label:hover polygon,
|
658 |
.imagify-selector-list label:hover polygon,
|
@@ -660,6 +748,7 @@ body[class*="_imagify-ngg-bulk-optimization"] .media-item .progress .bar {
|
|
660 |
.imagify-selector-list .imagify-selector-current-value input:focus + label polygon {
|
661 |
fill: #FFF;
|
662 |
}
|
|
|
663 |
.imagify-selector-list input:checked + label:hover polygon[fill="#CCD1D6"],
|
664 |
.imagify-selector-list .imagify-selector-current-value label:hover polygon[fill="#CCD1D6"],
|
665 |
.imagify-selector-list label:hover polygon[fill="#CCD1D6"],
|
@@ -667,14 +756,17 @@ body[class*="_imagify-ngg-bulk-optimization"] .media-item .progress .bar {
|
|
667 |
.imagify-selector-list .imagify-selector-current-value input:focus + label polygon[fill="#CCD1D6"] {
|
668 |
fill: #3694AE;
|
669 |
}
|
|
|
670 |
.imagify-selector-list li label {
|
671 |
display: block;
|
672 |
padding: 10px;
|
673 |
transition: all .275s;
|
674 |
}
|
|
|
675 |
.imagify-selector-list polygon {
|
676 |
transition: all .275s;
|
677 |
}
|
|
|
678 |
.imagify-selector-list {
|
679 |
position: absolute;
|
680 |
top: 0;
|
@@ -683,20 +775,24 @@ body[class*="_imagify-ngg-bulk-optimization"] .media-item .progress .bar {
|
|
683 |
transition: all .275s;
|
684 |
transform: translateY(-50%);
|
685 |
}
|
|
|
686 |
.imagify-selector-list[aria-hidden="true"] {
|
687 |
opacity: 0;
|
688 |
visibility: hidden;
|
689 |
transform: translateY(-50%) scale(0);
|
690 |
}
|
|
|
691 |
.imagify-selector-list[aria-hidden="false"] {
|
692 |
opacity: 1;
|
693 |
visibility: visible;
|
694 |
transform: translateY(-50%) scale(1);
|
695 |
}
|
|
|
696 |
.button .imagify-selector-current-value-info {
|
697 |
position: relative;
|
698 |
padding-right: 20px;
|
699 |
}
|
|
|
700 |
.button .imagify-selector-current-value-info:after {
|
701 |
content: '';
|
702 |
position: absolute;
|
@@ -708,18 +804,19 @@ body[class*="_imagify-ngg-bulk-optimization"] .media-item .progress .bar {
|
|
708 |
border-right: 6px solid transparent;
|
709 |
}
|
710 |
|
711 |
-
|
712 |
/* Complete row / success */
|
713 |
.imagify-row-complete {
|
714 |
padding: 35px 20px;
|
715 |
margin-top: 2em;
|
716 |
background: #8BC34A;
|
717 |
color: #FFF;
|
718 |
-
text-shadow: 0 0 2px rgba(0,0,0
|
719 |
}
|
|
|
720 |
.imagify-row-complete .imagify-ac-chart {
|
721 |
margin-top: 3px;
|
722 |
}
|
|
|
723 |
.imagify-row-complete.imagify-row-complete p {
|
724 |
color: #FFF;
|
725 |
margin: 0;
|
@@ -727,17 +824,17 @@ body[class*="_imagify-ngg-bulk-optimization"] .media-item .progress .bar {
|
|
727 |
|
728 |
@-webkit-keyframes congrate {
|
729 |
0% {
|
730 |
-
|
731 |
-webkit-transform: scale(1);
|
732 |
}
|
733 |
50% {
|
734 |
-webkit-transform: scale(1.05);
|
735 |
opacity: 1;
|
736 |
}
|
737 |
-
|
738 |
-webkit-transform: scale(1);
|
739 |
opacity: 1;
|
740 |
-
|
741 |
}
|
742 |
|
743 |
@keyframes congrate {
|
@@ -755,7 +852,6 @@ body[class*="_imagify-ngg-bulk-optimization"] .media-item .progress .bar {
|
|
755 |
}
|
756 |
}
|
757 |
|
758 |
-
|
759 |
.imagify-row-complete.done {
|
760 |
-webkit-animation: congrate 500ms ease-in-out;
|
761 |
animation: congrate 500ms ease-in-out;
|
@@ -764,26 +860,32 @@ body[class*="_imagify-ngg-bulk-optimization"] .media-item .progress .bar {
|
|
764 |
.imagify-all-complete {
|
765 |
margin: 1.5em 0;
|
766 |
}
|
|
|
767 |
.imagify-all-complete > div {
|
768 |
display: inline-block;
|
769 |
vertical-align: middle;
|
770 |
}
|
|
|
771 |
.imagify-ac-report {
|
772 |
min-width: 310px;
|
773 |
margin-right: 20px;
|
774 |
}
|
|
|
775 |
.imagify-ac-chart {
|
776 |
width: 46px;
|
777 |
height: 46px;
|
778 |
float: left;
|
779 |
margin: 0 20px 0 10px;
|
780 |
}
|
|
|
781 |
.imagify-ac-report-text {
|
782 |
overflow: hidden;
|
783 |
}
|
|
|
784 |
.imagify-ac-report-text p {
|
785 |
line-height: 1.3;
|
786 |
}
|
|
|
787 |
.imagify-ac-rt-big {
|
788 |
font-weight: bold;
|
789 |
font-size: 24px;
|
@@ -791,28 +893,35 @@ body[class*="_imagify-ngg-bulk-optimization"] .media-item .progress .bar {
|
|
791 |
word-spacing: 0.15em;
|
792 |
text-transform: uppercase;
|
793 |
}
|
|
|
794 |
.imagify-ac-share {
|
795 |
text-align: right;
|
796 |
}
|
|
|
797 |
.imagify-ac-share-content {
|
798 |
display: inline-block;
|
799 |
padding: 10px 15px;
|
800 |
-
background: rgba(255,255,255
|
801 |
}
|
|
|
802 |
.imagify-ac-share-content > * {
|
803 |
display: inline-block;
|
804 |
vertical-align: middle;
|
805 |
}
|
|
|
806 |
.imagify-bulk-table .imagify-ac-share-content p {
|
807 |
margin-right: 5px;
|
808 |
}
|
|
|
809 |
.imagify-share-networks,
|
810 |
.imagify-share-networks li {
|
811 |
margin: 0;
|
812 |
}
|
|
|
813 |
.imagify-share-networks li {
|
814 |
display: inline-block;
|
815 |
}
|
|
|
816 |
.imagify-share-networks a {
|
817 |
display: inline-block;
|
818 |
vertical-align: -7px;
|
@@ -825,9 +934,11 @@ body[class*="_imagify-ngg-bulk-optimization"] .media-item .progress .bar {
|
|
825 |
.imagify-cell-checkbox {
|
826 |
width: 35px;
|
827 |
}
|
|
|
828 |
.imagify-cell-checkbox p {
|
829 |
margin: 0;
|
830 |
}
|
|
|
831 |
.imagify-cell-checkbox-loader {
|
832 |
display: block;
|
833 |
width: 27px;
|
@@ -835,6 +946,7 @@ body[class*="_imagify-ngg-bulk-optimization"] .media-item .progress .bar {
|
|
835 |
line-height: 0;
|
836 |
animation: loading 4s infinite linear;
|
837 |
}
|
|
|
838 |
@keyframes loading {
|
839 |
0% {
|
840 |
transform: rotate(0);
|
@@ -843,10 +955,12 @@ body[class*="_imagify-ngg-bulk-optimization"] .media-item .progress .bar {
|
|
843 |
transform: rotate(360deg);
|
844 |
}
|
845 |
}
|
|
|
846 |
.imagify-cell-checkbox-loader.hidden {
|
847 |
display: none;
|
848 |
animation: none;
|
849 |
}
|
|
|
850 |
.imagify-cell-title label,
|
851 |
.imagify-cell-label {
|
852 |
font-size: 14px;
|
@@ -854,55 +968,68 @@ body[class*="_imagify-ngg-bulk-optimization"] .media-item .progress .bar {
|
|
854 |
letter-spacing: .02em;
|
855 |
font-weight: bold;
|
856 |
}
|
|
|
857 |
.imagify-cell-label {
|
858 |
margin-right: 10px;
|
859 |
}
|
|
|
860 |
.imagify-cell-value {
|
861 |
font-size: 12px;
|
862 |
font-weight: 500;
|
863 |
color: #7A8996;
|
864 |
}
|
|
|
865 |
td.imagify-cell-title {
|
866 |
padding-left: 0;
|
867 |
}
|
|
|
868 |
.imagify-cell-title label,
|
869 |
.imagify-cell-original-size .imagify-cell-label {
|
870 |
color: #1F2332;
|
871 |
}
|
|
|
872 |
.imagify-cell-optimized-size,
|
873 |
.imagify-cell-original-size {
|
874 |
font-weight: 500;
|
875 |
color: #7A8996;
|
876 |
font-size: 12px;
|
877 |
}
|
|
|
878 |
.imagify-cell-optimized-size .imagify-cell-label {
|
879 |
color: #338EA6;
|
880 |
}
|
|
|
881 |
.imagify-cell-count-optimized {
|
882 |
font-size: 14px;
|
883 |
font-weight: bold;
|
884 |
color: #338EA6;
|
885 |
}
|
|
|
886 |
.imagify-cell-count-errors {
|
887 |
color: #C51162;
|
888 |
font-weight: bold;
|
889 |
font-size: 14px;
|
890 |
}
|
|
|
891 |
.imagify-cell-count-errors a {
|
892 |
margin-left: 5px;
|
893 |
color: #7A8996;
|
894 |
font-weight: normal;
|
895 |
font-size: 12px;
|
896 |
}
|
|
|
897 |
.imagify-cell-filename {
|
898 |
max-width: 200px;
|
899 |
}
|
|
|
900 |
.imagify-cell-status {
|
901 |
max-width: 145px;
|
902 |
}
|
|
|
903 |
.imagify-cell-status .dashicons-warning {
|
904 |
margin-right: 2px;
|
905 |
}
|
|
|
906 |
.imagify-cell-thumbnails {
|
907 |
max-width: 120px;
|
908 |
}
|
@@ -912,31 +1039,38 @@ td.imagify-cell-filename {
|
|
912 |
white-space: nowrap;
|
913 |
overflow: hidden;
|
914 |
}
|
|
|
915 |
.imagify-bulk-table .imagify-cell-thumbnails {
|
916 |
text-align: center;
|
917 |
}
|
|
|
918 |
.imagify-cell-percentage,
|
919 |
.imagify-cell-savings {
|
920 |
color: #46B1CE;
|
921 |
font-weight: bold;
|
922 |
}
|
|
|
923 |
.imagify-bulk-table td.imagify-cell-totaloriginal {
|
924 |
padding-right: 78px;
|
925 |
}
|
|
|
926 |
.imagify-cell-totaloriginal {
|
927 |
text-align: right;
|
928 |
}
|
|
|
929 |
.imagify-cell-level {
|
930 |
width: 145px;
|
931 |
}
|
|
|
932 |
.imagify-selector-button.imagify-selector-button {
|
933 |
border: 1px solid #FFF;
|
934 |
padding: 2px 10px;
|
935 |
}
|
|
|
936 |
.imagify-selector-button.imagify-selector-button:hover,
|
937 |
.imagify-selector-button.imagify-selector-button:focus {
|
938 |
border-color: #EEE;
|
939 |
-
box-shadow: 0 4px 8px rgba(0,0,0
|
940 |
}
|
941 |
|
942 |
.imagiuploaded,
|
@@ -947,9 +1081,11 @@ td.imagify-cell-filename {
|
|
947 |
color: #626E7B;
|
948 |
font-weight: 500;
|
949 |
}
|
|
|
950 |
.imagifilename {
|
951 |
font-size: 12px;
|
952 |
}
|
|
|
953 |
.imagiuploaded {
|
954 |
width: 33px;
|
955 |
height: 33px;
|
@@ -959,6 +1095,7 @@ td.imagify-cell-filename {
|
|
959 |
background: url(../images/upload-image.png) 0 0 no-repeat;
|
960 |
background-size: cover;
|
961 |
}
|
|
|
962 |
.imagiuploaded img {
|
963 |
max-width: 100%;
|
964 |
height: auto;
|
@@ -969,18 +1106,23 @@ td.imagify-cell-filename {
|
|
969 |
text-transform: uppercase;
|
970 |
font-weight: bold;
|
971 |
}
|
|
|
972 |
.imagistatus .dashicons {
|
973 |
margin-right: 5px;
|
974 |
}
|
|
|
975 |
.status-compressing {
|
976 |
color: #46B1CE;
|
977 |
}
|
|
|
978 |
.status-error {
|
979 |
color: #CE0B24;
|
980 |
}
|
|
|
981 |
.status-warning {
|
982 |
color: #f5a623;
|
983 |
}
|
|
|
984 |
.status-complete {
|
985 |
color: #8CC152;
|
986 |
}
|
@@ -991,9 +1133,9 @@ td.imagify-cell-filename {
|
|
991 |
}
|
992 |
|
993 |
.imagify-settings .button-primary.button-primary[disabled] {
|
994 |
-
color: #4A4A4A!important;
|
995 |
-
background: #D9E4EB!important;
|
996 |
-
text-shadow: none!important;
|
997 |
cursor: not-allowed;
|
998 |
}
|
999 |
|
@@ -1002,6 +1144,7 @@ td.imagify-cell-filename {
|
|
1002 |
-webkit-animation: icon-rotate 2.6s infinite linear;
|
1003 |
animation: icon-rotate 2.6s infinite linear;
|
1004 |
}
|
|
|
1005 |
.imagify-cell-status .dashicons-admin-generic {
|
1006 |
transform-origin: 48.75% 51.75%;
|
1007 |
}
|
@@ -1016,6 +1159,7 @@ td.imagify-cell-filename {
|
|
1016 |
transform: rotate(360deg);
|
1017 |
}
|
1018 |
}
|
|
|
1019 |
@keyframes icon-rotate {
|
1020 |
from {
|
1021 |
transform: rotate(0deg);
|
@@ -1035,6 +1179,7 @@ td.imagify-cell-filename {
|
|
1035 |
max-width: none;
|
1036 |
float: none;
|
1037 |
}
|
|
|
1038 |
.imagify-columns .col-overview.col-overview {
|
1039 |
float: none;
|
1040 |
width: auto;
|
@@ -1054,25 +1199,31 @@ td.imagify-cell-filename {
|
|
1054 |
.imagify-bulk-table-container tr {
|
1055 |
text-align: left;
|
1056 |
}
|
|
|
1057 |
.imagify-bulk-table-container tbody,
|
1058 |
.imagify-bulk-table-container tbody tr,
|
1059 |
.imagify-bulk-table-container tbody td {
|
1060 |
display: block;
|
1061 |
}
|
|
|
1062 |
.imagify-bulk-table-container tbody td {
|
1063 |
padding: 20px;
|
1064 |
}
|
|
|
1065 |
.imagify-cell-checkbox,
|
1066 |
.imagify-cell-title {
|
1067 |
float: left;
|
1068 |
}
|
|
|
1069 |
.imagify-cell-checkbox {
|
1070 |
width: 26px;
|
1071 |
}
|
|
|
1072 |
.imagify-bulk-table-container .imagify-cell-title {
|
1073 |
padding-left: 10px;
|
1074 |
width: calc(100% - 96px);
|
1075 |
}
|
|
|
1076 |
.imagify-cell-title:after,
|
1077 |
.imagify-cell-count-optimized:before {
|
1078 |
content: '';
|
@@ -1080,6 +1231,7 @@ td.imagify-cell-filename {
|
|
1080 |
clear: both;
|
1081 |
width: 100%;
|
1082 |
}
|
|
|
1083 |
.imagify-cell-count-optimized {
|
1084 |
clear: both;
|
1085 |
}
|
@@ -1097,6 +1249,7 @@ td.imagify-cell-filename {
|
|
1097 |
.imagify-settings .imagify-title {
|
1098 |
display: block;
|
1099 |
}
|
|
|
1100 |
.imagify-settings .imagify-documentation-link-box {
|
1101 |
display: inline-flex;
|
1102 |
}
|
@@ -1105,3 +1258,65 @@ td.imagify-cell-filename {
|
|
1105 |
.hidden {
|
1106 |
display: none;
|
1107 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
26 |
.imagify-doughnut-legend li span {
|
27 |
display: block;
|
28 |
position: absolute;
|
29 |
+
left: 0;
|
30 |
+
top: 0;
|
31 |
width: 25px;
|
32 |
height: 25px;
|
33 |
border-radius: 50%;
|
48 |
float: left;
|
49 |
margin-right: 20px;
|
50 |
}
|
51 |
+
|
52 |
.imagify-chart-percent {
|
53 |
position: absolute;
|
54 |
+
left: 0;
|
55 |
+
right: 0;
|
56 |
top: 50%;
|
57 |
margin-top: -.5em;
|
58 |
line-height: 1;
|
61 |
font-weight: bold;
|
62 |
color: #46B1CE;
|
63 |
}
|
64 |
+
|
65 |
.imagify-chart-percent span {
|
66 |
font-size: 20px;
|
67 |
vertical-align: super;
|
104 |
body[class*="_imagify-ngg-bulk-optimization"] .media-item .percent {
|
105 |
text-align: right;
|
106 |
}
|
107 |
+
|
108 |
.media_page_imagify-bulk-optimization .media-item .progress .bar,
|
109 |
body[class*="_imagify-ngg-bulk-optimization"] .media-item .progress .bar {
|
110 |
position: relative;
|
126 |
width: calc(100% - 465px);
|
127 |
padding-left: 20px;
|
128 |
}
|
129 |
+
|
130 |
.imagify-columns .col-statistics.col-statistics {
|
131 |
width: 60%;
|
132 |
}
|
133 |
+
|
134 |
.imagify-columns .col-chart.col-chart {
|
135 |
width: 40%;
|
136 |
}
|
147 |
float: none;
|
148 |
margin-right: 0;
|
149 |
}
|
150 |
+
|
151 |
.imagify-doughnut-legend {
|
152 |
margin-top: 18px;
|
153 |
}
|
154 |
+
|
155 |
.imagify-global-optim-phrase {
|
156 |
padding-top: 0;
|
157 |
width: auto;
|
165 |
float: none;
|
166 |
padding: 0;
|
167 |
}
|
168 |
+
|
169 |
.imagify-columns .col-chart.col-chart {
|
170 |
margin-top: 3em;
|
171 |
}
|
176 |
width: 1px;
|
177 |
background: rgba(255, 255, 255, .2);
|
178 |
}
|
179 |
+
|
180 |
.base-transparent {
|
181 |
background: transparent;
|
182 |
}
|
186 |
box-sizing: border-box;
|
187 |
padding-right: 4.5em;
|
188 |
}
|
189 |
+
|
190 |
.right-outside-number .imagify-barnb {
|
191 |
display: block;
|
192 |
margin-right: -5.25em;
|
203 |
color: #000;
|
204 |
font-weight: bold;
|
205 |
}
|
206 |
+
|
207 |
.imagify-h2-like .dashicons,
|
208 |
.imagify-h2-like .dashicons:before {
|
209 |
font-size: 38px;
|
213 |
vertical-align: -5px;
|
214 |
color: #40B1D0;
|
215 |
}
|
216 |
+
|
217 |
.imagify-info-block {
|
218 |
position: relative;
|
219 |
padding: 10px;
|
222 |
border-radius: 4px;
|
223 |
line-height: 1.6;
|
224 |
}
|
225 |
+
|
226 |
.imagify-list-infos {
|
227 |
margin: 0;
|
228 |
padding: 0;
|
229 |
}
|
230 |
+
|
231 |
.imagify-list-infos li {
|
232 |
display: flex;
|
233 |
align-items: center;
|
237 |
line-height: 1.5;
|
238 |
color: #626E7B;
|
239 |
}
|
240 |
+
|
241 |
.imagify-list-infos li:first-child {
|
242 |
padding-top: 5px;
|
243 |
}
|
244 |
+
|
245 |
.imagify-list-infos li:last-child {
|
246 |
padding-bottom: 5px;
|
247 |
}
|
248 |
+
|
249 |
.imagify-list-infos li + li {
|
250 |
border-top: 1px solid #E9EFF2;
|
251 |
}
|
254 |
flex-grow: 0;
|
255 |
flex-basis: 50px;
|
256 |
}
|
257 |
+
|
258 |
.imagify-info-icon + span {
|
259 |
padding-left: 20px;
|
260 |
}
|
271 |
background: #FFF;
|
272 |
color: #4A4A4A;
|
273 |
}
|
274 |
+
|
275 |
.imagify-bulk p,
|
276 |
.imagify-bulk li,
|
277 |
.imagify-bulk h3 {
|
278 |
color: #4A4A4A;
|
279 |
}
|
280 |
+
|
281 |
.imagify-bulk .imagify-settings-section h3 {
|
282 |
margin-bottom: 2em;
|
283 |
}
|
287 |
display: flex;
|
288 |
align-items: center;
|
289 |
}
|
290 |
+
|
291 |
.imagify-account-info-col p.imagify-meteo-title {
|
292 |
margin: 0;
|
293 |
font-size: 24px;
|
294 |
font-weight: bold;
|
295 |
color: #FFF;
|
296 |
}
|
297 |
+
|
298 |
.imagify-account-info-col .imagify-options-title > a {
|
299 |
flex-basis: 100px;
|
300 |
margin-left: auto;
|
302 |
text-decoration: underline;
|
303 |
font-size: 12px;
|
304 |
}
|
305 |
+
|
306 |
.imagify-account-info-col .imagify-meteo-title .dashicons,
|
307 |
.imagify-account-info-col .imagify-meteo-title .dashicons:before {
|
308 |
font-size: 38px;
|
311 |
margin-right: 4px;
|
312 |
color: #40B1D0;
|
313 |
}
|
314 |
+
|
315 |
.imagify-col-content {
|
316 |
background: #F4F7F9;
|
317 |
border-left: 1px solid #ddd;
|
318 |
border-right: 1px solid #ddd;
|
319 |
}
|
320 |
+
|
321 |
.imagify-col-content .imagify-block-secondary {
|
322 |
margin-left: -1px;
|
323 |
margin-right: -1px;
|
324 |
}
|
325 |
+
|
326 |
.imagify-col-content .imagify-space-left {
|
327 |
margin: 15px 30px 15px 0;
|
328 |
}
|
329 |
+
|
330 |
.imagify-col-content .imagify-space-left p {
|
331 |
margin: 0 0 10px 0;
|
332 |
font-size: 19px;
|
333 |
font-weight: 500;
|
334 |
color: #343A49;
|
335 |
}
|
336 |
+
|
337 |
.imagify-col-content .imagify-meteo-icon {
|
338 |
height: 64px;
|
339 |
margin: 15px 15px 15px 20px;
|
340 |
}
|
341 |
+
|
342 |
.imagify-col-content .imagify-section-title + p {
|
343 |
margin-top: 10px;
|
344 |
}
|
353 |
top: 100%;
|
354 |
left: 0;
|
355 |
}
|
356 |
+
|
357 |
.imagify-tooltips .icon-round {
|
358 |
float: left;
|
359 |
display: inline-block;
|
369 |
text-align: center;
|
370 |
border-radius: 50%;
|
371 |
}
|
372 |
+
|
373 |
.imagify-tooltips .tooltip-content {
|
374 |
display: block;
|
375 |
position: relative;
|
380 |
font-size: 10px;
|
381 |
border-radius: 3px;
|
382 |
}
|
383 |
+
|
384 |
.imagify-tooltips.right .tooltip-content {
|
385 |
margin-left: 12px;
|
386 |
}
|
387 |
+
|
388 |
.imagify-tooltips.bottom .tooltip-content {
|
389 |
margin-top: 4px;
|
390 |
}
|
391 |
+
|
392 |
.imagify-inline-options label .tooltip-content {
|
393 |
position: absolute;
|
394 |
+
left: 0;
|
395 |
+
right: 0;
|
396 |
top: 100%;
|
397 |
text-transform: none;
|
398 |
font-size: 10px;
|
399 |
letter-spacing: 0;
|
400 |
text-align: center;
|
401 |
}
|
402 |
+
|
403 |
.imagify-tooltips .tooltip-content:after {
|
404 |
content: "";
|
405 |
position: absolute;
|
406 |
}
|
407 |
+
|
408 |
.imagify-tooltips.right .tooltip-content:after {
|
409 |
+
top: 16px;
|
410 |
+
left: -6px;
|
411 |
border-right: 8px solid #2e3242;
|
412 |
border-top: 6px solid transparent;
|
413 |
border-bottom: 6px solid transparent;
|
414 |
}
|
415 |
+
|
416 |
.imagify-tooltips.bottom .tooltip-content:after {
|
417 |
+
top: -5px;
|
418 |
+
left: 50%;
|
419 |
margin-left: -3px;
|
420 |
border-bottom: 6px solid #2e3242;
|
421 |
border-left: 6px solid transparent;
|
422 |
border-right: 6px solid transparent;
|
423 |
}
|
424 |
+
|
425 |
.imagify-space-tooltips .tooltip-content {
|
426 |
max-width: 280px;
|
427 |
margin-top: 20px;
|
431 |
background: #40B1D0;
|
432 |
box-shadow: 0 3px 0 #338EA6;
|
433 |
}
|
434 |
+
|
435 |
.imagify-space-tooltips .tooltip-content:after {
|
436 |
top: -14px;
|
437 |
left: 50%;
|
441 |
border-left: 15px solid transparent;
|
442 |
border-right: 15px solid transparent;
|
443 |
}
|
444 |
+
|
445 |
.tooltip-content.tooltip-table {
|
446 |
display: table;
|
447 |
width: 100%;
|
448 |
}
|
449 |
+
|
450 |
.tooltip-content.tooltip-table > * {
|
451 |
display: table-cell;
|
452 |
vertical-align: middle;
|
453 |
}
|
454 |
+
|
455 |
.tooltip-content .cell-icon {
|
456 |
width: 28px;
|
457 |
}
|
458 |
+
|
459 |
.tooltip-content .cell-icon .icon {
|
460 |
margin-bottom: 0;
|
461 |
}
|
462 |
+
|
463 |
.tooltip-content .cell-text {
|
464 |
padding: 5px 10px 5px 0;
|
465 |
line-height: 1.3;
|
466 |
}
|
467 |
+
|
468 |
.tooltip-content .cell-sep {
|
469 |
width: 1px;
|
470 |
background: rgba(255, 255, 255, .4);
|
471 |
}
|
472 |
+
|
473 |
.tooltip-content .cell-cta {
|
474 |
padding-left: 10px;
|
475 |
}
|
476 |
+
|
477 |
.tooltip-content .cell-cta a {
|
478 |
display: block;
|
479 |
color: #FFF;
|
487 |
margin-bottom: 1.35em;
|
488 |
overflow: hidden;
|
489 |
}
|
490 |
+
|
491 |
.imagify-number-you-optimized .number {
|
492 |
display: table-cell;
|
493 |
padding-right: 15px;
|
498 |
white-space: nowrap;
|
499 |
color: #000;
|
500 |
}
|
501 |
+
|
502 |
.imagify-number-you-optimized [id="imagify-total-optimized-attachments-pct"] {
|
503 |
color: #40B1D0;
|
504 |
}
|
505 |
+
|
506 |
.imagify-number-you-optimized .text {
|
507 |
display: table-cell;
|
508 |
vertical-align: middle;
|
510 |
font-size: 12px;
|
511 |
color: #626E7B;
|
512 |
}
|
513 |
+
|
514 |
.imagify-number-you-optimized > p {
|
515 |
display: table;
|
516 |
}
|
519 |
.imagify-bars {
|
520 |
padding-right: 15px;
|
521 |
}
|
522 |
+
|
523 |
.imagify-bars p {
|
524 |
font-size: 12px;
|
525 |
margin-bottom: 5px;
|
526 |
}
|
527 |
+
|
528 |
.imagify-bars + .imagify-number-you-optimized {
|
529 |
border-bottom: 0;
|
530 |
padding-top: 0.85em;
|
531 |
}
|
532 |
+
|
533 |
.imagify-bars + .imagify-number-you-optimized p {
|
534 |
color: #46b1ce;
|
535 |
}
|
545 |
background: #343A49;
|
546 |
color: #FFF;
|
547 |
}
|
548 |
+
|
549 |
.imagify-newbie {
|
550 |
margin-top: 4em;
|
551 |
position: relative;
|
552 |
overflow: visible;
|
553 |
}
|
554 |
+
|
555 |
.imagify-newbie .imagify-new-feature.imagify-new-feature {
|
556 |
position: absolute;
|
557 |
top: 0;
|
566 |
color: #FFF;
|
567 |
background: #8BC34A;
|
568 |
}
|
569 |
+
|
570 |
.imagify-newbie .imagify-table-header {
|
571 |
padding: 30px 25px;
|
572 |
border: 2px solid #8BC34A;
|
573 |
background: #F3F9EC;
|
574 |
}
|
575 |
+
|
576 |
.imagify-th-titles .dashicons,
|
577 |
.imagify-th-titles .dashicons:before {
|
578 |
width: 38px;
|
581 |
font-size: 38px;
|
582 |
color: #40B1D0;
|
583 |
}
|
584 |
+
|
585 |
.imagify-newbie .imagify-th-titles .dashicons:before {
|
586 |
color: #8BC34A;
|
587 |
}
|
588 |
+
|
589 |
.imagify-th-title.imagify-th-title.imagify-th-title {
|
590 |
margin: 0;
|
591 |
font-size: 24px;
|
592 |
font-weight: 500;
|
593 |
color: #FFF;
|
594 |
}
|
595 |
+
|
596 |
.imagify-newbie .imagify-th-title.imagify-th-title {
|
597 |
color: #343A49;
|
598 |
}
|
599 |
+
|
600 |
.imagify-th-subtitle.imagify-th-subtitle.imagify-th-subtitle {
|
601 |
margin: 0 0 5px;
|
602 |
font-size: 14px;
|
603 |
color: #7A8996;
|
604 |
font-weight: 500;
|
605 |
}
|
606 |
+
|
607 |
.imagify-th-action .imagify-button-clean {
|
608 |
font-size: 12px;
|
609 |
color: #7A8996;
|
610 |
}
|
611 |
+
|
612 |
.imagify-th-action .imagify-is-active {
|
613 |
color: #FFF;
|
614 |
}
|
615 |
+
|
616 |
.imagify-th-action .button:hover,
|
617 |
.imagify-th-action .button:focus {
|
618 |
color: #FFF;
|
623 |
border-spacing: 0;
|
624 |
border-collapse: collapse;
|
625 |
}
|
626 |
+
|
627 |
.imagify-bulk-table td {
|
628 |
padding: 20px;
|
629 |
}
|
630 |
+
|
631 |
.imagify-bulk-table-details {
|
632 |
border-bottom: 2px solid #E5EBEF;
|
633 |
}
|
634 |
+
|
635 |
.imagify-bulk-table-details thead tr,
|
636 |
.imagify-bulk-table-details thead th {
|
637 |
background: #4A5362;
|
638 |
}
|
639 |
+
|
640 |
.imagify-bulk-table-details thead th {
|
641 |
padding: 12px 20px;
|
642 |
text-align: left;
|
644 |
color: #E5EBEF;
|
645 |
font-size: 12px;
|
646 |
}
|
647 |
+
|
648 |
.imagify-bulk-table-details tbody tr:nth-child(odd) td {
|
649 |
background: #F2F5F7;
|
650 |
}
|
651 |
+
|
652 |
.imagify-bulk-table-content {
|
653 |
border: 1px solid #D3D3D3;
|
654 |
border-top: 0;
|
655 |
}
|
656 |
+
|
657 |
.imagify-bulk-table-footer {
|
658 |
padding: 20px;
|
659 |
color: #626E7B;
|
663 |
.imagify-bulk-table tbody tr + tr {
|
664 |
border-top: 3px solid #F2F5F7;
|
665 |
}
|
666 |
+
|
667 |
.imagify-bulk-table tbody tr,
|
668 |
.imagify-bulk-table tbody td {
|
669 |
background: #FFF;
|
677 |
height: 8px;
|
678 |
padding: 0;
|
679 |
}
|
680 |
+
|
681 |
.imagify-bulk-table .imagify-no-uploaded-yet td {
|
682 |
height: 200px;
|
683 |
font-size: 17px;
|
695 |
.imagify-selector {
|
696 |
position: relative;
|
697 |
}
|
698 |
+
|
699 |
.imagify-selector-list {
|
700 |
background: #FFF;
|
701 |
border: 1px solid #F4F7F9;
|
705 |
text-transform: uppercase;
|
706 |
letter-spacing: .02em;
|
707 |
}
|
708 |
+
|
709 |
.imagify-selector-list li:first-child label {
|
710 |
border-radius: 3px 3px 0 0;
|
711 |
}
|
712 |
+
|
713 |
.imagify-selector-list li:last-child label {
|
714 |
border-radius: 0 0 3px 3px;
|
715 |
}
|
716 |
+
|
717 |
.imagify-selector-list li {
|
718 |
margin: 0;
|
719 |
}
|
720 |
+
|
721 |
.imagify-selector-list li + li {
|
722 |
border-top: 1px solid #F4F7F9;
|
723 |
}
|
724 |
+
|
725 |
.imagify-selector-list svg {
|
726 |
margin-right: 5px;
|
727 |
}
|
728 |
+
|
729 |
.imagify-selector-list input:checked + label,
|
730 |
.imagify-selector-list .imagify-selector-current-value label {
|
731 |
background: #343A49;
|
732 |
color: #FFF;
|
733 |
}
|
734 |
+
|
735 |
.imagify-selector-list input:checked + label:hover,
|
736 |
.imagify-selector-list .imagify-selector-current-value label:hover,
|
737 |
.imagify-selector-list label:hover,
|
740 |
background: #40B1D0;
|
741 |
color: #F4F7F9;
|
742 |
}
|
743 |
+
|
744 |
.imagify-selector-list input:checked + label:hover polygon,
|
745 |
.imagify-selector-list .imagify-selector-current-value label:hover polygon,
|
746 |
.imagify-selector-list label:hover polygon,
|
748 |
.imagify-selector-list .imagify-selector-current-value input:focus + label polygon {
|
749 |
fill: #FFF;
|
750 |
}
|
751 |
+
|
752 |
.imagify-selector-list input:checked + label:hover polygon[fill="#CCD1D6"],
|
753 |
.imagify-selector-list .imagify-selector-current-value label:hover polygon[fill="#CCD1D6"],
|
754 |
.imagify-selector-list label:hover polygon[fill="#CCD1D6"],
|
756 |
.imagify-selector-list .imagify-selector-current-value input:focus + label polygon[fill="#CCD1D6"] {
|
757 |
fill: #3694AE;
|
758 |
}
|
759 |
+
|
760 |
.imagify-selector-list li label {
|
761 |
display: block;
|
762 |
padding: 10px;
|
763 |
transition: all .275s;
|
764 |
}
|
765 |
+
|
766 |
.imagify-selector-list polygon {
|
767 |
transition: all .275s;
|
768 |
}
|
769 |
+
|
770 |
.imagify-selector-list {
|
771 |
position: absolute;
|
772 |
top: 0;
|
775 |
transition: all .275s;
|
776 |
transform: translateY(-50%);
|
777 |
}
|
778 |
+
|
779 |
.imagify-selector-list[aria-hidden="true"] {
|
780 |
opacity: 0;
|
781 |
visibility: hidden;
|
782 |
transform: translateY(-50%) scale(0);
|
783 |
}
|
784 |
+
|
785 |
.imagify-selector-list[aria-hidden="false"] {
|
786 |
opacity: 1;
|
787 |
visibility: visible;
|
788 |
transform: translateY(-50%) scale(1);
|
789 |
}
|
790 |
+
|
791 |
.button .imagify-selector-current-value-info {
|
792 |
position: relative;
|
793 |
padding-right: 20px;
|
794 |
}
|
795 |
+
|
796 |
.button .imagify-selector-current-value-info:after {
|
797 |
content: '';
|
798 |
position: absolute;
|
804 |
border-right: 6px solid transparent;
|
805 |
}
|
806 |
|
|
|
807 |
/* Complete row / success */
|
808 |
.imagify-row-complete {
|
809 |
padding: 35px 20px;
|
810 |
margin-top: 2em;
|
811 |
background: #8BC34A;
|
812 |
color: #FFF;
|
813 |
+
text-shadow: 0 0 2px rgba(0, 0, 0, .1);
|
814 |
}
|
815 |
+
|
816 |
.imagify-row-complete .imagify-ac-chart {
|
817 |
margin-top: 3px;
|
818 |
}
|
819 |
+
|
820 |
.imagify-row-complete.imagify-row-complete p {
|
821 |
color: #FFF;
|
822 |
margin: 0;
|
824 |
|
825 |
@-webkit-keyframes congrate {
|
826 |
0% {
|
827 |
+
opacity: 0;
|
828 |
-webkit-transform: scale(1);
|
829 |
}
|
830 |
50% {
|
831 |
-webkit-transform: scale(1.05);
|
832 |
opacity: 1;
|
833 |
}
|
834 |
+
100% {
|
835 |
-webkit-transform: scale(1);
|
836 |
opacity: 1;
|
837 |
+
}
|
838 |
}
|
839 |
|
840 |
@keyframes congrate {
|
852 |
}
|
853 |
}
|
854 |
|
|
|
855 |
.imagify-row-complete.done {
|
856 |
-webkit-animation: congrate 500ms ease-in-out;
|
857 |
animation: congrate 500ms ease-in-out;
|
860 |
.imagify-all-complete {
|
861 |
margin: 1.5em 0;
|
862 |
}
|
863 |
+
|
864 |
.imagify-all-complete > div {
|
865 |
display: inline-block;
|
866 |
vertical-align: middle;
|
867 |
}
|
868 |
+
|
869 |
.imagify-ac-report {
|
870 |
min-width: 310px;
|
871 |
margin-right: 20px;
|
872 |
}
|
873 |
+
|
874 |
.imagify-ac-chart {
|
875 |
width: 46px;
|
876 |
height: 46px;
|
877 |
float: left;
|
878 |
margin: 0 20px 0 10px;
|
879 |
}
|
880 |
+
|
881 |
.imagify-ac-report-text {
|
882 |
overflow: hidden;
|
883 |
}
|
884 |
+
|
885 |
.imagify-ac-report-text p {
|
886 |
line-height: 1.3;
|
887 |
}
|
888 |
+
|
889 |
.imagify-ac-rt-big {
|
890 |
font-weight: bold;
|
891 |
font-size: 24px;
|
893 |
word-spacing: 0.15em;
|
894 |
text-transform: uppercase;
|
895 |
}
|
896 |
+
|
897 |
.imagify-ac-share {
|
898 |
text-align: right;
|
899 |
}
|
900 |
+
|
901 |
.imagify-ac-share-content {
|
902 |
display: inline-block;
|
903 |
padding: 10px 15px;
|
904 |
+
background: rgba(255, 255, 255, .2);
|
905 |
}
|
906 |
+
|
907 |
.imagify-ac-share-content > * {
|
908 |
display: inline-block;
|
909 |
vertical-align: middle;
|
910 |
}
|
911 |
+
|
912 |
.imagify-bulk-table .imagify-ac-share-content p {
|
913 |
margin-right: 5px;
|
914 |
}
|
915 |
+
|
916 |
.imagify-share-networks,
|
917 |
.imagify-share-networks li {
|
918 |
margin: 0;
|
919 |
}
|
920 |
+
|
921 |
.imagify-share-networks li {
|
922 |
display: inline-block;
|
923 |
}
|
924 |
+
|
925 |
.imagify-share-networks a {
|
926 |
display: inline-block;
|
927 |
vertical-align: -7px;
|
934 |
.imagify-cell-checkbox {
|
935 |
width: 35px;
|
936 |
}
|
937 |
+
|
938 |
.imagify-cell-checkbox p {
|
939 |
margin: 0;
|
940 |
}
|
941 |
+
|
942 |
.imagify-cell-checkbox-loader {
|
943 |
display: block;
|
944 |
width: 27px;
|
946 |
line-height: 0;
|
947 |
animation: loading 4s infinite linear;
|
948 |
}
|
949 |
+
|
950 |
@keyframes loading {
|
951 |
0% {
|
952 |
transform: rotate(0);
|
955 |
transform: rotate(360deg);
|
956 |
}
|
957 |
}
|
958 |
+
|
959 |
.imagify-cell-checkbox-loader.hidden {
|
960 |
display: none;
|
961 |
animation: none;
|
962 |
}
|
963 |
+
|
964 |
.imagify-cell-title label,
|
965 |
.imagify-cell-label {
|
966 |
font-size: 14px;
|
968 |
letter-spacing: .02em;
|
969 |
font-weight: bold;
|
970 |
}
|
971 |
+
|
972 |
.imagify-cell-label {
|
973 |
margin-right: 10px;
|
974 |
}
|
975 |
+
|
976 |
.imagify-cell-value {
|
977 |
font-size: 12px;
|
978 |
font-weight: 500;
|
979 |
color: #7A8996;
|
980 |
}
|
981 |
+
|
982 |
td.imagify-cell-title {
|
983 |
padding-left: 0;
|
984 |
}
|
985 |
+
|
986 |
.imagify-cell-title label,
|
987 |
.imagify-cell-original-size .imagify-cell-label {
|
988 |
color: #1F2332;
|
989 |
}
|
990 |
+
|
991 |
.imagify-cell-optimized-size,
|
992 |
.imagify-cell-original-size {
|
993 |
font-weight: 500;
|
994 |
color: #7A8996;
|
995 |
font-size: 12px;
|
996 |
}
|
997 |
+
|
998 |
.imagify-cell-optimized-size .imagify-cell-label {
|
999 |
color: #338EA6;
|
1000 |
}
|
1001 |
+
|
1002 |
.imagify-cell-count-optimized {
|
1003 |
font-size: 14px;
|
1004 |
font-weight: bold;
|
1005 |
color: #338EA6;
|
1006 |
}
|
1007 |
+
|
1008 |
.imagify-cell-count-errors {
|
1009 |
color: #C51162;
|
1010 |
font-weight: bold;
|
1011 |
font-size: 14px;
|
1012 |
}
|
1013 |
+
|
1014 |
.imagify-cell-count-errors a {
|
1015 |
margin-left: 5px;
|
1016 |
color: #7A8996;
|
1017 |
font-weight: normal;
|
1018 |
font-size: 12px;
|
1019 |
}
|
1020 |
+
|
1021 |
.imagify-cell-filename {
|
1022 |
max-width: 200px;
|
1023 |
}
|
1024 |
+
|
1025 |
.imagify-cell-status {
|
1026 |
max-width: 145px;
|
1027 |
}
|
1028 |
+
|
1029 |
.imagify-cell-status .dashicons-warning {
|
1030 |
margin-right: 2px;
|
1031 |
}
|
1032 |
+
|
1033 |
.imagify-cell-thumbnails {
|
1034 |
max-width: 120px;
|
1035 |
}
|
1039 |
white-space: nowrap;
|
1040 |
overflow: hidden;
|
1041 |
}
|
1042 |
+
|
1043 |
.imagify-bulk-table .imagify-cell-thumbnails {
|
1044 |
text-align: center;
|
1045 |
}
|
1046 |
+
|
1047 |
.imagify-cell-percentage,
|
1048 |
.imagify-cell-savings {
|
1049 |
color: #46B1CE;
|
1050 |
font-weight: bold;
|
1051 |
}
|
1052 |
+
|
1053 |
.imagify-bulk-table td.imagify-cell-totaloriginal {
|
1054 |
padding-right: 78px;
|
1055 |
}
|
1056 |
+
|
1057 |
.imagify-cell-totaloriginal {
|
1058 |
text-align: right;
|
1059 |
}
|
1060 |
+
|
1061 |
.imagify-cell-level {
|
1062 |
width: 145px;
|
1063 |
}
|
1064 |
+
|
1065 |
.imagify-selector-button.imagify-selector-button {
|
1066 |
border: 1px solid #FFF;
|
1067 |
padding: 2px 10px;
|
1068 |
}
|
1069 |
+
|
1070 |
.imagify-selector-button.imagify-selector-button:hover,
|
1071 |
.imagify-selector-button.imagify-selector-button:focus {
|
1072 |
border-color: #EEE;
|
1073 |
+
box-shadow: 0 4px 8px rgba(0, 0, 0, .1);
|
1074 |
}
|
1075 |
|
1076 |
.imagiuploaded,
|
1081 |
color: #626E7B;
|
1082 |
font-weight: 500;
|
1083 |
}
|
1084 |
+
|
1085 |
.imagifilename {
|
1086 |
font-size: 12px;
|
1087 |
}
|
1088 |
+
|
1089 |
.imagiuploaded {
|
1090 |
width: 33px;
|
1091 |
height: 33px;
|
1095 |
background: url(../images/upload-image.png) 0 0 no-repeat;
|
1096 |
background-size: cover;
|
1097 |
}
|
1098 |
+
|
1099 |
.imagiuploaded img {
|
1100 |
max-width: 100%;
|
1101 |
height: auto;
|
1106 |
text-transform: uppercase;
|
1107 |
font-weight: bold;
|
1108 |
}
|
1109 |
+
|
1110 |
.imagistatus .dashicons {
|
1111 |
margin-right: 5px;
|
1112 |
}
|
1113 |
+
|
1114 |
.status-compressing {
|
1115 |
color: #46B1CE;
|
1116 |
}
|
1117 |
+
|
1118 |
.status-error {
|
1119 |
color: #CE0B24;
|
1120 |
}
|
1121 |
+
|
1122 |
.status-warning {
|
1123 |
color: #f5a623;
|
1124 |
}
|
1125 |
+
|
1126 |
.status-complete {
|
1127 |
color: #8CC152;
|
1128 |
}
|
1133 |
}
|
1134 |
|
1135 |
.imagify-settings .button-primary.button-primary[disabled] {
|
1136 |
+
color: #4A4A4A !important;
|
1137 |
+
background: #D9E4EB !important;
|
1138 |
+
text-shadow: none !important;
|
1139 |
cursor: not-allowed;
|
1140 |
}
|
1141 |
|
1144 |
-webkit-animation: icon-rotate 2.6s infinite linear;
|
1145 |
animation: icon-rotate 2.6s infinite linear;
|
1146 |
}
|
1147 |
+
|
1148 |
.imagify-cell-status .dashicons-admin-generic {
|
1149 |
transform-origin: 48.75% 51.75%;
|
1150 |
}
|
1159 |
transform: rotate(360deg);
|
1160 |
}
|
1161 |
}
|
1162 |
+
|
1163 |
@keyframes icon-rotate {
|
1164 |
from {
|
1165 |
transform: rotate(0deg);
|
1179 |
max-width: none;
|
1180 |
float: none;
|
1181 |
}
|
1182 |
+
|
1183 |
.imagify-columns .col-overview.col-overview {
|
1184 |
float: none;
|
1185 |
width: auto;
|
1199 |
.imagify-bulk-table-container tr {
|
1200 |
text-align: left;
|
1201 |
}
|
1202 |
+
|
1203 |
.imagify-bulk-table-container tbody,
|
1204 |
.imagify-bulk-table-container tbody tr,
|
1205 |
.imagify-bulk-table-container tbody td {
|
1206 |
display: block;
|
1207 |
}
|
1208 |
+
|
1209 |
.imagify-bulk-table-container tbody td {
|
1210 |
padding: 20px;
|
1211 |
}
|
1212 |
+
|
1213 |
.imagify-cell-checkbox,
|
1214 |
.imagify-cell-title {
|
1215 |
float: left;
|
1216 |
}
|
1217 |
+
|
1218 |
.imagify-cell-checkbox {
|
1219 |
width: 26px;
|
1220 |
}
|
1221 |
+
|
1222 |
.imagify-bulk-table-container .imagify-cell-title {
|
1223 |
padding-left: 10px;
|
1224 |
width: calc(100% - 96px);
|
1225 |
}
|
1226 |
+
|
1227 |
.imagify-cell-title:after,
|
1228 |
.imagify-cell-count-optimized:before {
|
1229 |
content: '';
|
1231 |
clear: both;
|
1232 |
width: 100%;
|
1233 |
}
|
1234 |
+
|
1235 |
.imagify-cell-count-optimized {
|
1236 |
clear: both;
|
1237 |
}
|
1249 |
.imagify-settings .imagify-title {
|
1250 |
display: block;
|
1251 |
}
|
1252 |
+
|
1253 |
.imagify-settings .imagify-documentation-link-box {
|
1254 |
display: inline-flex;
|
1255 |
}
|
1258 |
.hidden {
|
1259 |
display: none;
|
1260 |
}
|
1261 |
+
|
1262 |
+
@media (max-width: 782px) {
|
1263 |
+
.imagify-table-header,
|
1264 |
+
.imagify-newbie .imagify-table-header,
|
1265 |
+
.imagify-account-info-col .imagify-options-title{
|
1266 |
+
-webkit-flex-direction: column;
|
1267 |
+
-ms-flex-direction: column;
|
1268 |
+
flex-direction: column;
|
1269 |
+
-webkit-box-direction: normal;
|
1270 |
+
-webkit-box-orient: vertical;
|
1271 |
+
-moz-box-direction: normal;
|
1272 |
+
-moz-box-orient: vertical;
|
1273 |
+
align-items: center;
|
1274 |
+
}
|
1275 |
+
.imagify-newbie .imagify-th-titles{
|
1276 |
+
width: 100%;
|
1277 |
+
}
|
1278 |
+
.imagify-newbie .imagify-th-title.imagify-th-title {
|
1279 |
+
color: #343A49;
|
1280 |
+
font-size: 16px;
|
1281 |
+
padding-bottom: 20px;
|
1282 |
+
}
|
1283 |
+
.imagify-newbie .imagify-th-titles .dashicons,
|
1284 |
+
.imagify-newbie .imagify-th-titles .dashicons:before{
|
1285 |
+
margin: 0px;
|
1286 |
+
}
|
1287 |
+
.imagify-newbie .imagify-th-action{
|
1288 |
+
display: flex;
|
1289 |
+
max-width: 100%;
|
1290 |
+
}
|
1291 |
+
.imagify-newbie .imagify-th-action a{
|
1292 |
+
max-width: 100%;
|
1293 |
+
font-size: 11px;
|
1294 |
+
padding: 11px 12px;
|
1295 |
+
}
|
1296 |
+
.imagify-columns .col-chart.col-chart{
|
1297 |
+
text-align: center;
|
1298 |
+
}
|
1299 |
+
.imagify-doughnut-legend{
|
1300 |
+
margin-top: 18px;
|
1301 |
+
width: 60%;
|
1302 |
+
margin: 10px auto;
|
1303 |
+
}
|
1304 |
+
.imagify-account-info-col .imagify-options-title > a{
|
1305 |
+
flex-basis: unset;
|
1306 |
+
margin: auto;
|
1307 |
+
}
|
1308 |
+
.imagify-th-title.imagify-th-title.imagify-th-title{
|
1309 |
+
font-size: 20px;
|
1310 |
+
}
|
1311 |
+
.imagify-account-info-col p.imagify-meteo-title{
|
1312 |
+
font-size: 20px;
|
1313 |
+
}
|
1314 |
+
.imagify-bulk-table-container tbody td{
|
1315 |
+
padding: 10px;
|
1316 |
+
}
|
1317 |
+
.imagify-col-content .imagify-space-left{
|
1318 |
+
width: auto;
|
1319 |
+
margin: 0 0 15px 0;
|
1320 |
+
}
|
1321 |
+
}
|
1322 |
+
|
assets/css/bulk.min.css
CHANGED
@@ -1 +1 @@
|
|
1 |
-
#imagify-overview-chart-legend{overflow:hidden}.imagify-doughnut-legend{margin-top:38px;list-style:none}.imagify-doughnut-legend li{display:block;padding-left:30px;position:relative;margin-bottom:15px;border-radius:5px;padding:3px 8px 2px 31px;font-size:13px;cursor:default;-webkit-transition:background-color .2s ease-in-out;-o-transition:background-color .2s ease-in-out;transition:background-color .2s ease-in-out}.imagify-doughnut-legend li span{display:block;position:absolute;left:0;top:0;width:25px;height:25px;border-radius:50%}.imagify-global-optim-phrase{width:180px;padding-top:20px;font-size:14px;text-align:center}.imagify-total-percent{color:#46b1ce}.imagify-overview-chart-container{float:left;margin-right:20px}.imagify-chart-percent{position:absolute;left:0;right:0;top:50%;margin-top:-.5em;line-height:1;text-align:center;font-size:55px;font-weight:700;color:#46B1CE}.imagify-chart-percent span{font-size:20px;vertical-align:super}.media_page_imagify-bulk-optimization .media-item,body[class*="_imagify-ngg-bulk-optimization"] .media-item{margin:0}.media_page_imagify-bulk-optimization .media-item .progress,body[class*="_imagify-ngg-bulk-optimization"] .media-item .progress{float:none;width:100%;height:8px;margin:0;overflow:visible;background:#1F2331;-webkit-box-shadow:0;box-shadow:0;border-radius:0}.media_page_imagify-bulk-optimization .media-item .percent,body[class*="_imagify-ngg-bulk-optimization"] .media-item .percent{position:absolute;top:6px;right:0;text-shadow:none;width:auto;padding:0 5px;line-height:1.85;font-size:14px;font-weight:700;color:#40B1D0}.media_page_imagify-bulk-optimization .media-item .percent,.media_page_imagify-bulk-optimization .media-item .progress,body[class*="_imagify-ngg-bulk-optimization"] .media-item .percent,body[class*="_imagify-ngg-bulk-optimization"] .media-item .progress{text-align:right}.media_page_imagify-bulk-optimization .media-item .progress .bar,body[class*="_imagify-ngg-bulk-optimization"] .media-item .progress .bar{position:relative;width:1px;height:8px;margin-top:0;background:#46B1CE;border-radius:0;-webkit-transition:width .5s;-o-transition:width .5s;transition:width .5s}#imagify-bulk-action{padding:11px 20px}.imagify-columns .col-overview.col-overview{width:calc(100% - 465px);padding-left:20px}.imagify-columns .col-statistics.col-statistics{width:60%}.imagify-columns .col-chart.col-chart{width:40%}@media (max-width:1520px) and (min-width:1381px),(max-width:1086px){.imagify-columns .col-chart.col-chart,.imagify-columns .col-statistics.col-statistics{width:50%}}@media (max-width:1380px) and (min-width:1246px),(max-width:380px){.imagify-overview-chart-container{float:none;margin-right:0}.imagify-doughnut-legend{margin-top:18px}.imagify-global-optim-phrase{padding-top:0;width:auto}}@media (max-width:808px){.imagify-columns .col-chart.col-chart,.imagify-columns .col-statistics.col-statistics{width:auto;float:none;padding:0}.imagify-columns .col-chart.col-chart{margin-top:3em}}.imagify-sep-v{width:1px;background:rgba(255,255,255,.2)}.base-transparent{background:0 0}[class^=imagify-bar-].right-outside-number{-webkit-box-sizing:border-box;box-sizing:border-box;padding-right:4.5em}.right-outside-number .imagify-barnb{display:block;margin-right:-5.25em;text-align:right;font-weight:700;line-height:.8}.imagify-h2-like{margin:0 0 .5em;padding-bottom:.5em;border-bottom:1px solid #E9EFF2;font-size:24px;color:#000;font-weight:700}.imagify-h2-like .dashicons,.imagify-h2-like .dashicons:before{font-size:38px;height:38px;width:38px;margin-right:12px;vertical-align:-5px;color:#40B1D0}.imagify-info-block{position:relative;padding:10px;padding-left:42px;background:#D9E4EB;border-radius:4px;line-height:1.6}.imagify-list-infos{margin:0;padding:0}.imagify-list-infos li{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:15px 5px;text-align:left;font-size:14px;line-height:1.5;color:#626E7B}.imagify-list-infos li:first-child{padding-top:5px}.imagify-list-infos li:last-child{padding-bottom:5px}.imagify-list-infos li+li{border-top:1px solid #E9EFF2}.imagify-info-icon{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;-ms-flex-preferred-size:50px;flex-basis:50px}.imagify-info-icon+span{padding-left:20px}.imagify-list-infos a:before{content:'';display:block}.imagify-bulk .imagify-settings-section{border:1px solid #D9D9D9;border-top:0;background:#FFF;color:#4A4A4A}.imagify-bulk h3,.imagify-bulk li,.imagify-bulk p{color:#4A4A4A}.imagify-bulk .imagify-settings-section h3{margin-bottom:2em}.imagify-account-info-col .imagify-options-title{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.imagify-account-info-col p.imagify-meteo-title{margin:0;font-size:24px;font-weight:700;color:#FFF}.imagify-account-info-col .imagify-options-title>a{-ms-flex-preferred-size:100px;flex-basis:100px;margin-left:auto;margin-right:10px;text-decoration:underline;font-size:12px}.imagify-account-info-col .imagify-meteo-title .dashicons,.imagify-account-info-col .imagify-meteo-title .dashicons:before{font-size:38px;width:38px;height:38px;margin-right:4px;color:#40B1D0}.imagify-col-content{background:#F4F7F9;border-left:1px solid #ddd;border-right:1px solid #ddd}.imagify-col-content .imagify-block-secondary{margin-left:-1px;margin-right:-1px}.imagify-col-content .imagify-space-left{margin:15px 30px 15px 0}.imagify-col-content .imagify-space-left p{margin:0 0 10px;font-size:19px;font-weight:500;color:#343A49}.imagify-col-content .imagify-meteo-icon{height:64px;margin:15px 15px 15px 20px}.imagify-col-content .imagify-section-title+p{margin-top:10px}.imagify-account-info-col .imagify-h3-like.imagify-h3-like{color:inherit}.imagify-title .imagify-tooltips{position:absolute;top:100%;left:0}.imagify-tooltips .icon-round{float:left;display:inline-block;width:28px;height:28px;border:1px solid #FFF;margin-right:8px;margin-bottom:8px;font-size:17px;font-style:italic;line-height:29px;font-weight:700;text-align:center;border-radius:50%}.imagify-tooltips .tooltip-content{display:block;position:relative;max-width:250px;padding:7px 15px 8px;background:#2e3242;color:#FFF;font-size:10px;border-radius:3px}.imagify-tooltips.right .tooltip-content{margin-left:12px}.imagify-tooltips.bottom .tooltip-content{margin-top:4px}.imagify-inline-options label .tooltip-content{position:absolute;left:0;right:0;top:100%;text-transform:none;font-size:10px;letter-spacing:0;text-align:center}.imagify-tooltips .tooltip-content:after{content:"";position:absolute}.imagify-tooltips.right .tooltip-content:after{top:16px;left:-6px;border-right:8px solid #2e3242;border-top:6px solid transparent;border-bottom:6px solid transparent}.imagify-tooltips.bottom .tooltip-content:after{top:-5px;left:50%;margin-left:-3px;border-bottom:6px solid #2e3242;border-left:6px solid transparent;border-right:6px solid transparent}.imagify-space-tooltips .tooltip-content{max-width:280px;margin-top:20px;margin-left:0;padding:5px 15px;font-size:13px;background:#40B1D0;-webkit-box-shadow:0 3px 0 #338EA6;box-shadow:0 3px 0 #338EA6}.imagify-space-tooltips .tooltip-content:after{top:-14px;left:50%;margin-left:-7px;border:0;border-bottom:15px solid #40B1D0;border-left:15px solid transparent;border-right:15px solid transparent}.tooltip-content.tooltip-table{display:table;width:100%}.tooltip-content.tooltip-table>*{display:table-cell;vertical-align:middle}.tooltip-content .cell-icon{width:28px}.tooltip-content .cell-icon .icon{margin-bottom:0}.tooltip-content .cell-text{padding:5px 10px 5px 0;line-height:1.3}.tooltip-content .cell-sep{width:1px;background:rgba(255,255,255,.4)}.tooltip-content .cell-cta{padding-left:10px}.tooltip-content .cell-cta a{display:block;color:#FFF;width:100%;height:100%;white-space:nowrap}.imagify-number-you-optimized{margin-bottom:1.35em;overflow:hidden}.imagify-number-you-optimized .number{display:table-cell;padding-right:15px;font-size:48px;font-weight:700;line-height:1;vertical-align:middle;white-space:nowrap;color:#000}.imagify-number-you-optimized [id=imagify-total-optimized-attachments-pct]{color:#40B1D0}.imagify-number-you-optimized .text{display:table-cell;vertical-align:middle;overflow:hidden;font-size:12px;color:#626E7B}.imagify-number-you-optimized>p{display:table}.imagify-bars{padding-right:15px}.imagify-bars p{font-size:12px;margin-bottom:5px}.imagify-bars+.imagify-number-you-optimized{border-bottom:0;padding-top:.85em}.imagify-bars+.imagify-number-you-optimized p{color:#46b1ce}.imagify-bulk-table{margin-top:2em}.imagify-table-header{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;padding:15px 25px;background:#343A49;color:#FFF}.imagify-newbie{margin-top:4em;position:relative;overflow:visible}.imagify-newbie .imagify-new-feature.imagify-new-feature{position:absolute;top:0;left:25px;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);margin:0;padding:8px 20px;font-size:14px;letter-spacing:.02em;text-transform:uppercase;font-weight:700;color:#FFF;background:#8BC34A}.imagify-newbie .imagify-table-header{padding:30px 25px;border:2px solid #8BC34A;background:#F3F9EC}.imagify-th-titles .dashicons,.imagify-th-titles .dashicons:before{width:38px;height:38px;margin-right:20px;font-size:38px;color:#40B1D0}.imagify-newbie .imagify-th-titles .dashicons:before{color:#8BC34A}.imagify-th-title.imagify-th-title.imagify-th-title{margin:0;font-size:24px;font-weight:500;color:#FFF}.imagify-newbie .imagify-th-title.imagify-th-title{color:#343A49}.imagify-th-subtitle.imagify-th-subtitle.imagify-th-subtitle{margin:0 0 5px;font-size:14px;color:#7A8996;font-weight:500}.imagify-th-action .imagify-button-clean{font-size:12px;color:#7A8996}.imagify-th-action .button:focus,.imagify-th-action .button:hover,.imagify-th-action .imagify-is-active{color:#FFF}.imagify-bulk-table table{width:100%;border-spacing:0;border-collapse:collapse}.imagify-bulk-table td{padding:20px}.imagify-bulk-table-details{border-bottom:2px solid #E5EBEF}.imagify-bulk-table-details thead th,.imagify-bulk-table-details thead tr{background:#4A5362}.imagify-bulk-table-details thead th{padding:12px 20px;text-align:left;font-weight:700;color:#E5EBEF;font-size:12px}.imagify-bulk-table-details tbody tr:nth-child(odd) td{background:#F2F5F7}.imagify-bulk-table-content{border:1px solid #D3D3D3;border-top:0}.imagify-bulk-table-footer{padding:20px;color:#626E7B;background:#F2F5F7}.imagify-bulk-table tbody tr+tr{border-top:3px solid #F2F5F7}.imagify-bulk-table tbody td,.imagify-bulk-table tbody tr{background:#FFF}.imagify-bulk-table .imagify-row-progress{display:none;height:8px;padding:0}.imagify-bulk-table .imagify-no-uploaded-yet td{height:200px;font-size:17px;letter-spacing:.1em;word-spacing:.12em;vertical-align:middle;text-transform:uppercase;font-weight:700;text-align:center;color:#999;background-color:#FFF}.imagify-selector{position:relative}.imagify-selector-list{background:#FFF;border:1px solid #F4F7F9;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.1);box-shadow:0 6px 12px rgba(0,0,0,.1);border-radius:3px;font-weight:700;text-transform:uppercase;letter-spacing:.02em}.imagify-selector-list li:first-child label{border-radius:3px 3px 0 0}.imagify-selector-list li:last-child label{border-radius:0 0 3px 3px}.imagify-selector-list li{margin:0}.imagify-selector-list li+li{border-top:1px solid #F4F7F9}.imagify-selector-list svg{margin-right:5px}.imagify-selector-list .imagify-selector-current-value label,.imagify-selector-list input:checked+label{background:#343A49;color:#FFF}.imagify-selector-list .imagify-selector-current-value input:focus+label,.imagify-selector-list .imagify-selector-current-value label:hover,.imagify-selector-list input:checked+label:hover,.imagify-selector-list input:focus+label,.imagify-selector-list label:hover{background:#40B1D0;color:#F4F7F9}.imagify-selector-list .imagify-selector-current-value input:focus+label polygon,.imagify-selector-list .imagify-selector-current-value label:hover polygon,.imagify-selector-list input:checked+label:hover polygon,.imagify-selector-list input:focus+label polygon,.imagify-selector-list label:hover polygon{fill:#FFF}.imagify-selector-list .imagify-selector-current-value input:focus+label polygon[fill="#CCD1D6"],.imagify-selector-list .imagify-selector-current-value label:hover polygon[fill="#CCD1D6"],.imagify-selector-list input:checked+label:hover polygon[fill="#CCD1D6"],.imagify-selector-list input:focus+label polygon[fill="#CCD1D6"],.imagify-selector-list label:hover polygon[fill="#CCD1D6"]{fill:#3694AE}.imagify-selector-list li label{display:block;padding:10px;-webkit-transition:all .275s;-o-transition:all .275s;transition:all .275s}.imagify-selector-list polygon{-webkit-transition:all .275s;-o-transition:all .275s;transition:all .275s}.imagify-selector-list{position:absolute;top:0;left:0;right:0;-webkit-transition:all .275s;-o-transition:all .275s;transition:all .275s;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%)}.imagify-selector-list[aria-hidden=true]{opacity:0;visibility:hidden;-webkit-transform:translateY(-50%) scale(0);-ms-transform:translateY(-50%) scale(0);transform:translateY(-50%) scale(0)}.imagify-selector-list[aria-hidden=false]{opacity:1;visibility:visible;-webkit-transform:translateY(-50%) scale(1);-ms-transform:translateY(-50%) scale(1);transform:translateY(-50%) scale(1)}.button .imagify-selector-current-value-info{position:relative;padding-right:20px}.button .imagify-selector-current-value-info:after{content:'';position:absolute;right:0;top:50%;margin-top:-3px;border-top:6px solid #7A8996;border-left:6px solid transparent;border-right:6px solid transparent}.imagify-row-complete{padding:35px 20px;margin-top:2em;background:#8BC34A;color:#FFF;text-shadow:0 0 2px rgba(0,0,0,.1)}.imagify-row-complete .imagify-ac-chart{margin-top:3px}.imagify-row-complete.imagify-row-complete p{color:#FFF;margin:0}@-webkit-keyframes congrate{0%{opacity:0;-webkit-transform:scale(1)}50%{-webkit-transform:scale(1.05);opacity:1}100%{-webkit-transform:scale(1);opacity:1}}@keyframes congrate{0%{opacity:0;-webkit-transform:scale(1);transform:scale(1)}50%{-webkit-transform:scale(1.05);transform:scale(1.05);opacity:1}100%{-webkit-transform:scale(1);transform:scale(1);opacity:1}}.imagify-row-complete.done{-webkit-animation:congrate .5s ease-in-out;animation:congrate .5s ease-in-out}.imagify-all-complete{margin:1.5em 0}.imagify-all-complete>div{display:inline-block;vertical-align:middle}.imagify-ac-report{min-width:310px;margin-right:20px}.imagify-ac-chart{width:46px;height:46px;float:left;margin:0 20px 0 10px}.imagify-ac-report-text{overflow:hidden}.imagify-ac-report-text p{line-height:1.3}.imagify-ac-rt-big{font-weight:700;font-size:24px;letter-spacing:.15em;word-spacing:.15em;text-transform:uppercase}.imagify-ac-share{text-align:right}.imagify-ac-share-content{display:inline-block;padding:10px 15px;background:rgba(255,255,255,.2)}.imagify-ac-share-content>*{display:inline-block;vertical-align:middle}.imagify-bulk-table .imagify-ac-share-content p{margin-right:5px}.imagify-share-networks,.imagify-share-networks li{margin:0}.imagify-share-networks li{display:inline-block}.imagify-share-networks a{display:inline-block;vertical-align:-7px;margin:0 5px;text-decoration:none;color:#FFF}.imagify-cell-checkbox{width:35px}.imagify-cell-checkbox p{margin:0}.imagify-cell-checkbox-loader{display:block;width:27px;height:28px;line-height:0;-webkit-animation:loading 4s infinite linear;animation:loading 4s infinite linear}@-webkit-keyframes loading{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes loading{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.imagify-cell-checkbox-loader.hidden{display:none;-webkit-animation:none;animation:none}.imagify-cell-label,.imagify-cell-title label{font-size:14px;text-transform:uppercase;letter-spacing:.02em;font-weight:700}.imagify-cell-label{margin-right:10px}.imagify-cell-value{font-size:12px;font-weight:500;color:#7A8996}td.imagify-cell-title{padding-left:0}.imagify-cell-original-size .imagify-cell-label,.imagify-cell-title label{color:#1F2332}.imagify-cell-optimized-size,.imagify-cell-original-size{font-weight:500;color:#7A8996;font-size:12px}.imagify-cell-optimized-size .imagify-cell-label{color:#338EA6}.imagify-cell-count-optimized{font-size:14px;font-weight:700;color:#338EA6}.imagify-cell-count-errors{color:#C51162;font-weight:700;font-size:14px}.imagify-cell-count-errors a{margin-left:5px;color:#7A8996;font-weight:400;font-size:12px}.imagify-cell-filename{max-width:200px}.imagify-cell-status{max-width:145px}.imagify-cell-status .dashicons-warning{margin-right:2px}.imagistatus .dashicons,.imagiuploaded{margin-right:5px}.imagify-cell-thumbnails{max-width:120px}td.imagify-cell-filename{-o-text-overflow:clip;text-overflow:clip;white-space:nowrap;overflow:hidden}.imagify-bulk-table .imagify-cell-thumbnails{text-align:center}.imagify-cell-percentage,.imagify-cell-savings{color:#46B1CE;font-weight:700}.imagify-bulk-table td.imagify-cell-totaloriginal{padding-right:78px}.imagify-cell-totaloriginal{text-align:right}.imagify-cell-level{width:145px}.imagify-selector-button.imagify-selector-button{border:1px solid #FFF;padding:2px 10px}.imagify-selector-button.imagify-selector-button:focus,.imagify-selector-button.imagify-selector-button:hover{border-color:#EEE;-webkit-box-shadow:0 4px 8px rgba(0,0,0,.1);box-shadow:0 4px 8px rgba(0,0,0,.1)}.imagifilename,.imagiuploaded{display:inline-block;vertical-align:middle;margin-left:5px;color:#626E7B;font-weight:500}.imagifilename{font-size:12px}.imagiuploaded{width:33px;height:33px;margin-left:-8px;overflow:hidden;background:url(../images/upload-image.png) no-repeat;background-size:cover}.imagiuploaded img{max-width:100%;height:auto}.imagistatus{color:#8CA6B3;text-transform:uppercase;font-weight:700}.status-compressing{color:#46B1CE}.status-error{color:#CE0B24}.status-warning{color:#f5a623}.status-complete{color:#8CC152}.imagify-bulk-submit{padding:15px 0 8px}.imagify-settings .button-primary.button-primary[disabled]{color:#4A4A4A!important;background:#D9E4EB!important;text-shadow:none!important;cursor:not-allowed}.dashicons.rotate{-webkit-animation:icon-rotate 2.6s infinite linear;animation:icon-rotate 2.6s infinite linear}.imagify-cell-status .dashicons-admin-generic{-webkit-transform-origin:48.75% 51.75%;-ms-transform-origin:48.75% 51.75%;transform-origin:48.75% 51.75%}@-webkit-keyframes icon-rotate{from{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes icon-rotate{from{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.imagify-col.imagify-col.imagify-account-info-col{width:465px}@media (max-width:1245px){.imagify-col.imagify-col.imagify-account-info-col{width:auto;max-width:none;float:none}.imagify-columns .col-overview.col-overview{float:none;width:auto;padding-left:0;padding-right:0}}@media (max-width:1200px){.imagify-settings .imagify-title .imagify-logo{display:none}}@media (max-width:940px){.imagify-bulk-table-container tbody,.imagify-bulk-table-container tr{text-align:left}.imagify-bulk-table-container tbody,.imagify-bulk-table-container tbody td,.imagify-bulk-table-container tbody tr{display:block}.imagify-bulk-table-container tbody td{padding:20px}.imagify-cell-checkbox,.imagify-cell-title{float:left}.imagify-cell-checkbox{width:26px}.imagify-bulk-table-container .imagify-cell-title{padding-left:10px;width:calc(100% - 96px)}.imagify-cell-count-optimized:before,.imagify-cell-title:after{content:'';display:table;clear:both;width:100%}.imagify-cell-count-optimized{clear:both}.imagify-bulk-table-container .imagify-cell-title~td{display:inline-block}.imagify-bulk-table-container td.imagify-cell-level{display:block}}@media (max-width:918px){.imagify-settings .imagify-title{display:block}.imagify-settings .imagify-documentation-link-box{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex}}.hidden{display:none}
|
1 |
+
#imagify-overview-chart-legend{overflow:hidden}.imagify-doughnut-legend{margin-top:38px;list-style:none}.imagify-doughnut-legend li{display:block;padding-left:30px;position:relative;margin-bottom:15px;border-radius:5px;padding:3px 8px 2px 31px;font-size:13px;cursor:default;-webkit-transition:background-color .2s ease-in-out;-o-transition:background-color .2s ease-in-out;transition:background-color .2s ease-in-out}.imagify-doughnut-legend li span{display:block;position:absolute;left:0;top:0;width:25px;height:25px;border-radius:50%}.imagify-global-optim-phrase{width:180px;padding-top:20px;font-size:14px;text-align:center}.imagify-total-percent{color:#46b1ce}.imagify-overview-chart-container{float:left;margin-right:20px}.imagify-chart-percent{position:absolute;left:0;right:0;top:50%;margin-top:-.5em;line-height:1;text-align:center;font-size:55px;font-weight:700;color:#46B1CE}.imagify-chart-percent span{font-size:20px;vertical-align:super}.media_page_imagify-bulk-optimization .media-item,body[class*="_imagify-ngg-bulk-optimization"] .media-item{margin:0}.media_page_imagify-bulk-optimization .media-item .progress,body[class*="_imagify-ngg-bulk-optimization"] .media-item .progress{float:none;width:100%;height:8px;margin:0;overflow:visible;background:#1F2331;-webkit-box-shadow:0;box-shadow:0;border-radius:0}.media_page_imagify-bulk-optimization .media-item .percent,body[class*="_imagify-ngg-bulk-optimization"] .media-item .percent{position:absolute;top:6px;right:0;text-shadow:none;width:auto;padding:0 5px;line-height:1.85;font-size:14px;font-weight:700;color:#40B1D0}.media_page_imagify-bulk-optimization .media-item .percent,.media_page_imagify-bulk-optimization .media-item .progress,body[class*="_imagify-ngg-bulk-optimization"] .media-item .percent,body[class*="_imagify-ngg-bulk-optimization"] .media-item .progress{text-align:right}.media_page_imagify-bulk-optimization .media-item .progress .bar,body[class*="_imagify-ngg-bulk-optimization"] .media-item .progress .bar{position:relative;width:1px;height:8px;margin-top:0;background:#46B1CE;border-radius:0;-webkit-transition:width .5s;-o-transition:width .5s;transition:width .5s}#imagify-bulk-action{padding:11px 20px}.imagify-columns .col-overview.col-overview{width:calc(100% - 465px);padding-left:20px}.imagify-columns .col-statistics.col-statistics{width:60%}.imagify-columns .col-chart.col-chart{width:40%}@media (max-width:1520px) and (min-width:1381px),(max-width:1086px){.imagify-columns .col-chart.col-chart,.imagify-columns .col-statistics.col-statistics{width:50%}}@media (max-width:1380px) and (min-width:1246px),(max-width:380px){.imagify-overview-chart-container{float:none;margin-right:0}.imagify-doughnut-legend{margin-top:18px}.imagify-global-optim-phrase{padding-top:0;width:auto}}@media (max-width:808px){.imagify-columns .col-chart.col-chart,.imagify-columns .col-statistics.col-statistics{width:auto;float:none;padding:0}.imagify-columns .col-chart.col-chart{margin-top:3em}}.imagify-sep-v{width:1px;background:rgba(255,255,255,.2)}.base-transparent{background:0 0}[class^=imagify-bar-].right-outside-number{-webkit-box-sizing:border-box;box-sizing:border-box;padding-right:4.5em}.right-outside-number .imagify-barnb{display:block;margin-right:-5.25em;text-align:right;font-weight:700;line-height:.8}.imagify-h2-like{margin:0 0 .5em;padding-bottom:.5em;border-bottom:1px solid #E9EFF2;font-size:24px;color:#000;font-weight:700}.imagify-h2-like .dashicons,.imagify-h2-like .dashicons:before{font-size:38px;height:38px;width:38px;margin-right:12px;vertical-align:-5px;color:#40B1D0}.imagify-info-block{position:relative;padding:10px;padding-left:42px;background:#D9E4EB;border-radius:4px;line-height:1.6}.imagify-list-infos{margin:0;padding:0}.imagify-list-infos li{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:15px 5px;text-align:left;font-size:14px;line-height:1.5;color:#626E7B}.imagify-list-infos li:first-child{padding-top:5px}.imagify-list-infos li:last-child{padding-bottom:5px}.imagify-list-infos li+li{border-top:1px solid #E9EFF2}.imagify-info-icon{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;-ms-flex-preferred-size:50px;flex-basis:50px}.imagify-info-icon+span{padding-left:20px}.imagify-list-infos a:before{content:'';display:block}.imagify-bulk .imagify-settings-section{border:1px solid #D9D9D9;border-top:0;background:#FFF;color:#4A4A4A}.imagify-bulk h3,.imagify-bulk li,.imagify-bulk p{color:#4A4A4A}.imagify-bulk .imagify-settings-section h3{margin-bottom:2em}.imagify-account-info-col .imagify-options-title{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.imagify-account-info-col p.imagify-meteo-title{margin:0;font-size:24px;font-weight:700;color:#FFF}.imagify-account-info-col .imagify-options-title>a{-ms-flex-preferred-size:100px;flex-basis:100px;margin-left:auto;margin-right:10px;text-decoration:underline;font-size:12px}.imagify-account-info-col .imagify-meteo-title .dashicons,.imagify-account-info-col .imagify-meteo-title .dashicons:before{font-size:38px;width:38px;height:38px;margin-right:4px;color:#40B1D0}.imagify-col-content{background:#F4F7F9;border-left:1px solid #ddd;border-right:1px solid #ddd}.imagify-col-content .imagify-block-secondary{margin-left:-1px;margin-right:-1px}.imagify-col-content .imagify-space-left{margin:15px 30px 15px 0}.imagify-col-content .imagify-space-left p{margin:0 0 10px;font-size:19px;font-weight:500;color:#343A49}.imagify-col-content .imagify-meteo-icon{height:64px;margin:15px 15px 15px 20px}.imagify-col-content .imagify-section-title+p{margin-top:10px}.imagify-account-info-col .imagify-h3-like.imagify-h3-like{color:inherit}.imagify-title .imagify-tooltips{position:absolute;top:100%;left:0}.imagify-tooltips .icon-round{float:left;display:inline-block;width:28px;height:28px;border:1px solid #FFF;margin-right:8px;margin-bottom:8px;font-size:17px;font-style:italic;line-height:29px;font-weight:700;text-align:center;border-radius:50%}.imagify-tooltips .tooltip-content{display:block;position:relative;max-width:250px;padding:7px 15px 8px;background:#2e3242;color:#FFF;font-size:10px;border-radius:3px}.imagify-tooltips.right .tooltip-content{margin-left:12px}.imagify-tooltips.bottom .tooltip-content{margin-top:4px}.imagify-inline-options label .tooltip-content{position:absolute;left:0;right:0;top:100%;text-transform:none;font-size:10px;letter-spacing:0;text-align:center}.imagify-tooltips .tooltip-content:after{content:"";position:absolute}.imagify-tooltips.right .tooltip-content:after{top:16px;left:-6px;border-right:8px solid #2e3242;border-top:6px solid transparent;border-bottom:6px solid transparent}.imagify-tooltips.bottom .tooltip-content:after{top:-5px;left:50%;margin-left:-3px;border-bottom:6px solid #2e3242;border-left:6px solid transparent;border-right:6px solid transparent}.imagify-space-tooltips .tooltip-content{max-width:280px;margin-top:20px;margin-left:0;padding:5px 15px;font-size:13px;background:#40B1D0;-webkit-box-shadow:0 3px 0 #338EA6;box-shadow:0 3px 0 #338EA6}.imagify-space-tooltips .tooltip-content:after{top:-14px;left:50%;margin-left:-7px;border:0;border-bottom:15px solid #40B1D0;border-left:15px solid transparent;border-right:15px solid transparent}.tooltip-content.tooltip-table{display:table;width:100%}.tooltip-content.tooltip-table>*{display:table-cell;vertical-align:middle}.tooltip-content .cell-icon{width:28px}.tooltip-content .cell-icon .icon{margin-bottom:0}.tooltip-content .cell-text{padding:5px 10px 5px 0;line-height:1.3}.tooltip-content .cell-sep{width:1px;background:rgba(255,255,255,.4)}.tooltip-content .cell-cta{padding-left:10px}.tooltip-content .cell-cta a{display:block;color:#FFF;width:100%;height:100%;white-space:nowrap}.imagify-number-you-optimized{margin-bottom:1.35em;overflow:hidden}.imagify-number-you-optimized .number{display:table-cell;padding-right:15px;font-size:48px;font-weight:700;line-height:1;vertical-align:middle;white-space:nowrap;color:#000}.imagify-number-you-optimized [id=imagify-total-optimized-attachments-pct]{color:#40B1D0}.imagify-number-you-optimized .text{display:table-cell;vertical-align:middle;overflow:hidden;font-size:12px;color:#626E7B}.imagify-number-you-optimized>p{display:table}.imagify-bars{padding-right:15px}.imagify-bars p{font-size:12px;margin-bottom:5px}.imagify-bars+.imagify-number-you-optimized{border-bottom:0;padding-top:.85em}.imagify-bars+.imagify-number-you-optimized p{color:#46b1ce}.imagify-bulk-table{margin-top:2em}.imagify-table-header{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;padding:15px 25px;background:#343A49;color:#FFF}.imagify-newbie{margin-top:4em;position:relative;overflow:visible}.imagify-newbie .imagify-new-feature.imagify-new-feature{position:absolute;top:0;left:25px;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);margin:0;padding:8px 20px;font-size:14px;letter-spacing:.02em;text-transform:uppercase;font-weight:700;color:#FFF;background:#8BC34A}.imagify-newbie .imagify-table-header{padding:30px 25px;border:2px solid #8BC34A;background:#F3F9EC}.imagify-th-titles .dashicons,.imagify-th-titles .dashicons:before{width:38px;height:38px;margin-right:20px;font-size:38px;color:#40B1D0}.imagify-newbie .imagify-th-titles .dashicons:before{color:#8BC34A}.imagify-th-title.imagify-th-title.imagify-th-title{margin:0;font-size:24px;font-weight:500;color:#FFF}.imagify-newbie .imagify-th-title.imagify-th-title{color:#343A49}.imagify-th-subtitle.imagify-th-subtitle.imagify-th-subtitle{margin:0 0 5px;font-size:14px;color:#7A8996;font-weight:500}.imagify-th-action .imagify-button-clean{font-size:12px;color:#7A8996}.imagify-th-action .button:focus,.imagify-th-action .button:hover,.imagify-th-action .imagify-is-active{color:#FFF}.imagify-bulk-table table{width:100%;border-spacing:0;border-collapse:collapse}.imagify-bulk-table td{padding:20px}.imagify-bulk-table-details{border-bottom:2px solid #E5EBEF}.imagify-bulk-table-details thead th,.imagify-bulk-table-details thead tr{background:#4A5362}.imagify-bulk-table-details thead th{padding:12px 20px;text-align:left;font-weight:700;color:#E5EBEF;font-size:12px}.imagify-bulk-table-details tbody tr:nth-child(odd) td{background:#F2F5F7}.imagify-bulk-table-content{border:1px solid #D3D3D3;border-top:0}.imagify-bulk-table-footer{padding:20px;color:#626E7B;background:#F2F5F7}.imagify-bulk-table tbody tr+tr{border-top:3px solid #F2F5F7}.imagify-bulk-table tbody td,.imagify-bulk-table tbody tr{background:#FFF}.imagify-bulk-table .imagify-row-progress{display:none;height:8px;padding:0}.imagify-bulk-table .imagify-no-uploaded-yet td{height:200px;font-size:17px;letter-spacing:.1em;word-spacing:.12em;vertical-align:middle;text-transform:uppercase;font-weight:700;text-align:center;color:#999;background-color:#FFF}.imagify-selector{position:relative}.imagify-selector-list{background:#FFF;border:1px solid #F4F7F9;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.1);box-shadow:0 6px 12px rgba(0,0,0,.1);border-radius:3px;font-weight:700;text-transform:uppercase;letter-spacing:.02em}.imagify-selector-list li:first-child label{border-radius:3px 3px 0 0}.imagify-selector-list li:last-child label{border-radius:0 0 3px 3px}.imagify-selector-list li{margin:0}.imagify-selector-list li+li{border-top:1px solid #F4F7F9}.imagify-selector-list svg{margin-right:5px}.imagify-selector-list .imagify-selector-current-value label,.imagify-selector-list input:checked+label{background:#343A49;color:#FFF}.imagify-selector-list .imagify-selector-current-value input:focus+label,.imagify-selector-list .imagify-selector-current-value label:hover,.imagify-selector-list input:checked+label:hover,.imagify-selector-list input:focus+label,.imagify-selector-list label:hover{background:#40B1D0;color:#F4F7F9}.imagify-selector-list .imagify-selector-current-value input:focus+label polygon,.imagify-selector-list .imagify-selector-current-value label:hover polygon,.imagify-selector-list input:checked+label:hover polygon,.imagify-selector-list input:focus+label polygon,.imagify-selector-list label:hover polygon{fill:#FFF}.imagify-selector-list .imagify-selector-current-value input:focus+label polygon[fill="#CCD1D6"],.imagify-selector-list .imagify-selector-current-value label:hover polygon[fill="#CCD1D6"],.imagify-selector-list input:checked+label:hover polygon[fill="#CCD1D6"],.imagify-selector-list input:focus+label polygon[fill="#CCD1D6"],.imagify-selector-list label:hover polygon[fill="#CCD1D6"]{fill:#3694AE}.imagify-selector-list li label{display:block;padding:10px;-webkit-transition:all .275s;-o-transition:all .275s;transition:all .275s}.imagify-selector-list polygon{-webkit-transition:all .275s;-o-transition:all .275s;transition:all .275s}.imagify-selector-list{position:absolute;top:0;left:0;right:0;-webkit-transition:all .275s;-o-transition:all .275s;transition:all .275s;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%)}.imagify-selector-list[aria-hidden=true]{opacity:0;visibility:hidden;-webkit-transform:translateY(-50%) scale(0);-ms-transform:translateY(-50%) scale(0);transform:translateY(-50%) scale(0)}.imagify-selector-list[aria-hidden=false]{opacity:1;visibility:visible;-webkit-transform:translateY(-50%) scale(1);-ms-transform:translateY(-50%) scale(1);transform:translateY(-50%) scale(1)}.button .imagify-selector-current-value-info{position:relative;padding-right:20px}.button .imagify-selector-current-value-info:after{content:'';position:absolute;right:0;top:50%;margin-top:-3px;border-top:6px solid #7A8996;border-left:6px solid transparent;border-right:6px solid transparent}.imagify-row-complete{padding:35px 20px;margin-top:2em;background:#8BC34A;color:#FFF;text-shadow:0 0 2px rgba(0,0,0,.1)}.imagify-row-complete .imagify-ac-chart{margin-top:3px}.imagify-row-complete.imagify-row-complete p{color:#FFF;margin:0}@-webkit-keyframes congrate{0%{opacity:0;-webkit-transform:scale(1)}50%{-webkit-transform:scale(1.05);opacity:1}100%{-webkit-transform:scale(1);opacity:1}}@keyframes congrate{0%{opacity:0;-webkit-transform:scale(1);transform:scale(1)}50%{-webkit-transform:scale(1.05);transform:scale(1.05);opacity:1}100%{-webkit-transform:scale(1);transform:scale(1);opacity:1}}.imagify-row-complete.done{-webkit-animation:congrate .5s ease-in-out;animation:congrate .5s ease-in-out}.imagify-all-complete{margin:1.5em 0}.imagify-all-complete>div{display:inline-block;vertical-align:middle}.imagify-ac-report{min-width:310px;margin-right:20px}.imagify-ac-chart{width:46px;height:46px;float:left;margin:0 20px 0 10px}.imagify-ac-report-text{overflow:hidden}.imagify-ac-report-text p{line-height:1.3}.imagify-ac-rt-big{font-weight:700;font-size:24px;letter-spacing:.15em;word-spacing:.15em;text-transform:uppercase}.imagify-ac-share{text-align:right}.imagify-ac-share-content{display:inline-block;padding:10px 15px;background:rgba(255,255,255,.2)}.imagify-ac-share-content>*{display:inline-block;vertical-align:middle}.imagify-bulk-table .imagify-ac-share-content p{margin-right:5px}.imagify-share-networks,.imagify-share-networks li{margin:0}.imagify-share-networks li{display:inline-block}.imagify-share-networks a{display:inline-block;vertical-align:-7px;margin:0 5px;text-decoration:none;color:#FFF}.imagify-cell-checkbox{width:35px}.imagify-cell-checkbox p{margin:0}.imagify-cell-checkbox-loader{display:block;width:27px;height:28px;line-height:0;-webkit-animation:loading 4s infinite linear;animation:loading 4s infinite linear}@-webkit-keyframes loading{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes loading{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.imagify-cell-checkbox-loader.hidden{display:none;-webkit-animation:none;animation:none}.imagify-cell-label,.imagify-cell-title label{font-size:14px;text-transform:uppercase;letter-spacing:.02em;font-weight:700}.imagify-cell-label{margin-right:10px}.imagify-cell-value{font-size:12px;font-weight:500;color:#7A8996}td.imagify-cell-title{padding-left:0}.imagify-cell-original-size .imagify-cell-label,.imagify-cell-title label{color:#1F2332}.imagify-cell-optimized-size,.imagify-cell-original-size{font-weight:500;color:#7A8996;font-size:12px}.imagify-cell-optimized-size .imagify-cell-label{color:#338EA6}.imagify-cell-count-optimized{font-size:14px;font-weight:700;color:#338EA6}.imagify-cell-count-errors{color:#C51162;font-weight:700;font-size:14px}.imagify-cell-count-errors a{margin-left:5px;color:#7A8996;font-weight:400;font-size:12px}.imagify-cell-filename{max-width:200px}.imagify-cell-status{max-width:145px}.imagify-cell-status .dashicons-warning{margin-right:2px}.imagistatus .dashicons,.imagiuploaded{margin-right:5px}.imagify-cell-thumbnails{max-width:120px}td.imagify-cell-filename{-o-text-overflow:clip;text-overflow:clip;white-space:nowrap;overflow:hidden}.imagify-bulk-table .imagify-cell-thumbnails{text-align:center}.imagify-cell-percentage,.imagify-cell-savings{color:#46B1CE;font-weight:700}.imagify-bulk-table td.imagify-cell-totaloriginal{padding-right:78px}.imagify-cell-totaloriginal{text-align:right}.imagify-cell-level{width:145px}.imagify-selector-button.imagify-selector-button{border:1px solid #FFF;padding:2px 10px}.imagify-selector-button.imagify-selector-button:focus,.imagify-selector-button.imagify-selector-button:hover{border-color:#EEE;-webkit-box-shadow:0 4px 8px rgba(0,0,0,.1);box-shadow:0 4px 8px rgba(0,0,0,.1)}.imagifilename,.imagiuploaded{display:inline-block;vertical-align:middle;margin-left:5px;color:#626E7B;font-weight:500}.imagifilename{font-size:12px}.imagiuploaded{width:33px;height:33px;margin-left:-8px;overflow:hidden;background:url(../images/upload-image.png) no-repeat;background-size:cover}.imagiuploaded img{max-width:100%;height:auto}.imagistatus{color:#8CA6B3;text-transform:uppercase;font-weight:700}.status-compressing{color:#46B1CE}.status-error{color:#CE0B24}.status-warning{color:#f5a623}.status-complete{color:#8CC152}.imagify-bulk-submit{padding:15px 0 8px}.imagify-settings .button-primary.button-primary[disabled]{color:#4A4A4A!important;background:#D9E4EB!important;text-shadow:none!important;cursor:not-allowed}.dashicons.rotate{-webkit-animation:icon-rotate 2.6s infinite linear;animation:icon-rotate 2.6s infinite linear}.imagify-cell-status .dashicons-admin-generic{-webkit-transform-origin:48.75% 51.75%;-ms-transform-origin:48.75% 51.75%;transform-origin:48.75% 51.75%}@-webkit-keyframes icon-rotate{from{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes icon-rotate{from{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.imagify-col.imagify-col.imagify-account-info-col{width:465px}@media (max-width:1245px){.imagify-col.imagify-col.imagify-account-info-col{width:auto;max-width:none;float:none}.imagify-columns .col-overview.col-overview{float:none;width:auto;padding-left:0;padding-right:0}}@media (max-width:1200px){.imagify-settings .imagify-title .imagify-logo{display:none}}@media (max-width:940px){.imagify-bulk-table-container tbody,.imagify-bulk-table-container tr{text-align:left}.imagify-bulk-table-container tbody,.imagify-bulk-table-container tbody td,.imagify-bulk-table-container tbody tr{display:block}.imagify-bulk-table-container tbody td{padding:20px}.imagify-cell-checkbox,.imagify-cell-title{float:left}.imagify-cell-checkbox{width:26px}.imagify-bulk-table-container .imagify-cell-title{padding-left:10px;width:calc(100% - 96px)}.imagify-cell-count-optimized:before,.imagify-cell-title:after{content:'';display:table;clear:both;width:100%}.imagify-cell-count-optimized{clear:both}.imagify-bulk-table-container .imagify-cell-title~td{display:inline-block}.imagify-bulk-table-container td.imagify-cell-level{display:block}}@media (max-width:918px){.imagify-settings .imagify-title{display:block}.imagify-settings .imagify-documentation-link-box{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex}}.hidden{display:none}@media (max-width:782px){.imagify-account-info-col .imagify-options-title,.imagify-newbie .imagify-table-header,.imagify-table-header{-ms-flex-direction:column;flex-direction:column;-webkit-box-direction:normal;-webkit-box-orient:vertical;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.imagify-newbie .imagify-th-titles{width:100%}.imagify-newbie .imagify-th-title.imagify-th-title{color:#343A49;font-size:16px;padding-bottom:20px}.imagify-newbie .imagify-th-titles .dashicons,.imagify-newbie .imagify-th-titles .dashicons:before{margin:0}.imagify-newbie .imagify-th-action{display:-webkit-box;display:-ms-flexbox;display:flex;max-width:100%}.imagify-newbie .imagify-th-action a{max-width:100%;font-size:11px;padding:11px 12px}.imagify-columns .col-chart.col-chart{text-align:center}.imagify-doughnut-legend{margin-top:18px;width:60%;margin:10px auto}.imagify-account-info-col .imagify-options-title>a{-ms-flex-preferred-size:unset;flex-basis:unset;margin:auto}.imagify-account-info-col p.imagify-meteo-title,.imagify-th-title.imagify-th-title.imagify-th-title{font-size:20px}.imagify-bulk-table-container tbody td{padding:10px}.imagify-col-content .imagify-space-left{width:auto;margin:0 0 15px}}
|
assets/css/notices.css
CHANGED
@@ -4,10 +4,12 @@
|
|
4 |
padding-left: 20px;
|
5 |
list-style-type: disc
|
6 |
}
|
|
|
7 |
.imagify-plugins-error li {
|
8 |
-
width:300px;
|
9 |
-
line-height:30px
|
10 |
}
|
|
|
11 |
@media (max-width: 570px) {
|
12 |
.imagify-plugins-error li {
|
13 |
width: auto;
|
@@ -45,39 +47,47 @@ body[class*="_imagify-ngg-bulk-optimization"] .notice,
|
|
45 |
box-shadow: none;
|
46 |
color: #FFF;
|
47 |
}
|
48 |
-
|
|
|
49 |
.imagify-notice.imagify-notice,
|
50 |
.imagify-welcome {
|
51 |
margin-right: 12px;
|
52 |
}
|
53 |
}
|
|
|
54 |
@media (max-width: 450px) {
|
55 |
.imagify-notice.imagify-notice {
|
56 |
-webkit-box-orient: vertical;
|
57 |
-webkit-box-direction: normal;
|
58 |
-webkit-flex-direction: column;
|
59 |
-
|
60 |
-
|
61 |
}
|
62 |
}
|
|
|
63 |
.wrap .imagify-notice {
|
64 |
margin: 5px 15px 2px;
|
65 |
position: relative;
|
66 |
}
|
|
|
67 |
.imagify-notice-logo {
|
68 |
padding: 18px 23px;
|
69 |
background: #40B1D0;
|
70 |
}
|
|
|
71 |
.imagify-notice-logo .imagify-logo {
|
72 |
opacity: 1;
|
73 |
}
|
|
|
74 |
.imagify-flex-notice-content .imagify-notice-logo {
|
75 |
display: flex;
|
76 |
align-items: center;
|
77 |
}
|
|
|
78 |
.updated .imagify-notice-logo {
|
79 |
background: #8BC34A;
|
80 |
}
|
|
|
81 |
.error .imagify-notice-logo {
|
82 |
background: #C51162;
|
83 |
}
|
@@ -89,35 +99,44 @@ body[class*="_imagify-ngg-bulk-optimization"] .notice,
|
|
89 |
.imagify-notice-content {
|
90 |
padding: 5px 23px;
|
91 |
}
|
|
|
92 |
.imagify-notice-content.imagify-notice-content p {
|
93 |
margin: 0.65em 0;
|
94 |
}
|
|
|
95 |
.imagify-flex-notice-content .imagify-notice-content {
|
96 |
display: flex;
|
97 |
flex-wrap: wrap;
|
98 |
padding: 0;
|
99 |
}
|
|
|
100 |
.imagify-flex-notice-content .imagify-notice-content > * {
|
101 |
padding: 10px 20px;
|
102 |
}
|
|
|
103 |
.imagify-flex-notice-content .imagify-meteo-icon img {
|
104 |
height: 100%;
|
105 |
margin-top: 6px;
|
106 |
}
|
|
|
107 |
.imagify-notice-quota [class^="imagify-bar-"] {
|
108 |
background: #1F2332;
|
109 |
}
|
|
|
110 |
.imagify-notice-quota .imagify-space-left p {
|
111 |
margin: 0;
|
112 |
}
|
|
|
113 |
.imagify-flex-notice-content .imagify-notice-content .imagify-notice-quota {
|
114 |
padding-right: 24px;
|
115 |
padding-left: 8px;
|
116 |
background: #343A49;
|
117 |
}
|
|
|
118 |
.imagify-notice a {
|
119 |
color: #40B1D0;
|
120 |
}
|
|
|
121 |
.imagify-notice a:hover,
|
122 |
.imagify-notice a:focus {
|
123 |
color: #FEE102;
|
@@ -141,38 +160,47 @@ body[class*="_imagify-ngg-bulk-optimization"] .notice,
|
|
141 |
.imagify-welcome {
|
142 |
margin: 30px 20px 0 0;
|
143 |
}
|
|
|
144 |
.imagify-welcome .baseline {
|
145 |
display: inline-block;
|
146 |
margin: .2em 0 0 2em;
|
147 |
font-size: 17px;
|
148 |
}
|
|
|
149 |
.imagify-welcome .imagify-logo {
|
150 |
vertical-align: middle;
|
151 |
}
|
|
|
152 |
.imagify-welcome-remove {
|
153 |
position: absolute;
|
154 |
-
top: 50%;
|
|
|
155 |
margin-top: -8px;
|
156 |
color: #FFF;
|
157 |
text-decoration: none;
|
158 |
}
|
|
|
159 |
/* Welcome columns */
|
160 |
.imagify-columns [class^="col-"] img {
|
161 |
float: left;
|
162 |
margin-right: 18px;
|
163 |
}
|
|
|
164 |
.imagify-col-content {
|
165 |
overflow: hidden;
|
166 |
}
|
|
|
167 |
.imagify-col-title {
|
168 |
margin: 0 0 15px 0;
|
169 |
font-size: 23px;
|
170 |
}
|
|
|
171 |
.counter .imagify-col-title:before {
|
172 |
counter-increment: cols;
|
173 |
content: counter(cols) ". ";
|
174 |
color: #40B1D0;
|
175 |
}
|
|
|
176 |
.imagify-col-desc {
|
177 |
color: #5F758E;
|
178 |
margin-bottom: 2em;
|
@@ -196,39 +224,49 @@ body[class*="_imagify-ngg-bulk-optimization"] .notice,
|
|
196 |
color: #FFF;
|
197 |
background: #1F2332;
|
198 |
}
|
|
|
199 |
.media_page_imagify-bulk-optimization .imagify-rkt-notice {
|
200 |
margin-left: 2px;
|
201 |
margin-right: 20px;
|
202 |
}
|
|
|
203 |
@media (max-width: 782px) {
|
204 |
.media_page_imagify-bulk-optimization .imagify-rkt-notice {
|
205 |
margin-left: 0;
|
206 |
margin-right: 12px;
|
207 |
}
|
208 |
}
|
|
|
209 |
.imagify-rkt-notice .imagify-cross {
|
210 |
position: absolute;
|
211 |
-
right: 8px;
|
212 |
-
|
|
|
|
|
213 |
padding: 0;
|
214 |
margin-top: -11px;
|
215 |
background: transparent;
|
216 |
-
color: rgba(255,255,255
|
217 |
text-decoration: none;
|
218 |
border-radius: 50%;
|
219 |
transition: all .275s;
|
220 |
}
|
|
|
221 |
.imagify-rkt-notice .imagify-cross .dashicons {
|
222 |
position: relative;
|
223 |
-
top: 2px;
|
|
|
224 |
transition: all .275s;
|
225 |
}
|
|
|
226 |
.imagify-rkt-notice .imagify-cross:hover {
|
227 |
background: #FFF;
|
228 |
}
|
|
|
229 |
.imagify-rkt-notice .imagify-cross:hover .dashicons {
|
230 |
color: #412355;
|
231 |
}
|
|
|
232 |
.imagify-rkt-notice .imagify-rkt-cta,
|
233 |
.imagify-rkt-notice .imagify-rkt-logo,
|
234 |
.imagify-rkt-notice .imagify-rkt-coupon {
|
@@ -236,23 +274,27 @@ body[class*="_imagify-ngg-bulk-optimization"] .notice,
|
|
236 |
-ms-flex-negative: 0;
|
237 |
flex-shrink: 0;
|
238 |
}
|
|
|
239 |
.imagify-rkt-notice .imagify-rkt-logo {
|
240 |
-
width: 150px!important; /* !important because of a dirtugly WP Engine code */
|
241 |
text-align: center;
|
242 |
padding: 0 25px 0 30px;
|
243 |
line-height: 0.8;
|
244 |
}
|
|
|
245 |
.imagify-rkt-notice .imagify-rkt-msg {
|
246 |
-
width: 100
|
247 |
color: #FFF;
|
248 |
padding: 0 15px;
|
249 |
font-size: 14px;
|
250 |
line-height: 1.6;
|
251 |
}
|
|
|
252 |
.imagify-rkt-notice .imagify-rkt-coupon {
|
253 |
-
width: 150px!important; /* !important because of a dirtugly WP Engine code */
|
254 |
padding: 0 15px;
|
255 |
}
|
|
|
256 |
.imagify-rkt-notice .imagify-rkt-coupon-code {
|
257 |
padding: 5px 10px;
|
258 |
font-size: 23px;
|
@@ -260,8 +302,9 @@ body[class*="_imagify-ngg-bulk-optimization"] .notice,
|
|
260 |
border: 1px dashed #F56640;
|
261 |
color: #F56640;
|
262 |
}
|
|
|
263 |
.imagify-rkt-notice .imagify-rkt-cta {
|
264 |
-
width: 250px!important; /* !important because of a dirtugly WP Engine code */
|
265 |
-webkit-box-flex: 1;
|
266 |
-webkit-flex-grow: 1;
|
267 |
-ms-flex-positive: 1;
|
@@ -270,6 +313,7 @@ body[class*="_imagify-ngg-bulk-optimization"] .notice,
|
|
270 |
-ms-flex-preferred-size: 200px;
|
271 |
flex-basis: 200px;
|
272 |
}
|
|
|
273 |
.imagify-rkt-notice .button.button {
|
274 |
position: relative;
|
275 |
top: -1px;
|
@@ -280,25 +324,43 @@ body[class*="_imagify-ngg-bulk-optimization"] .notice,
|
|
280 |
padding: 9px 18px 9px;
|
281 |
background: #F56640;
|
282 |
box-shadow: none;
|
283 |
-
text-shadow: none!important;
|
284 |
}
|
|
|
285 |
@media (max-width: 880px) {
|
286 |
.imagify-rkt-notice {
|
287 |
-webkit-flex-wrap: wrap;
|
288 |
-ms-flex-wrap: wrap;
|
289 |
flex-wrap: wrap;
|
290 |
}
|
|
|
291 |
.imagify-rkt-notice .imagify-rkt-msg,
|
292 |
.imagify-rkt-notice .imagify-rkt-cta,
|
293 |
.imagify-rkt-notice .imagify-rkt-logo {
|
294 |
text-align: left;
|
295 |
padding: 5px 15px;
|
296 |
}
|
|
|
297 |
.imagify-cross.imagify-cross {
|
298 |
top: 8px;
|
299 |
margin-top: 0;
|
300 |
}
|
|
|
301 |
.imagify-rkt-notice .imagify-cross .dashicons {
|
302 |
top: 1px;
|
303 |
}
|
304 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4 |
padding-left: 20px;
|
5 |
list-style-type: disc
|
6 |
}
|
7 |
+
|
8 |
.imagify-plugins-error li {
|
9 |
+
width: 300px;
|
10 |
+
line-height: 30px
|
11 |
}
|
12 |
+
|
13 |
@media (max-width: 570px) {
|
14 |
.imagify-plugins-error li {
|
15 |
width: auto;
|
47 |
box-shadow: none;
|
48 |
color: #FFF;
|
49 |
}
|
50 |
+
|
51 |
+
@media (max-width: 782px) {
|
52 |
.imagify-notice.imagify-notice,
|
53 |
.imagify-welcome {
|
54 |
margin-right: 12px;
|
55 |
}
|
56 |
}
|
57 |
+
|
58 |
@media (max-width: 450px) {
|
59 |
.imagify-notice.imagify-notice {
|
60 |
-webkit-box-orient: vertical;
|
61 |
-webkit-box-direction: normal;
|
62 |
-webkit-flex-direction: column;
|
63 |
+
-ms-flex-direction: column;
|
64 |
+
flex-direction: column;
|
65 |
}
|
66 |
}
|
67 |
+
|
68 |
.wrap .imagify-notice {
|
69 |
margin: 5px 15px 2px;
|
70 |
position: relative;
|
71 |
}
|
72 |
+
|
73 |
.imagify-notice-logo {
|
74 |
padding: 18px 23px;
|
75 |
background: #40B1D0;
|
76 |
}
|
77 |
+
|
78 |
.imagify-notice-logo .imagify-logo {
|
79 |
opacity: 1;
|
80 |
}
|
81 |
+
|
82 |
.imagify-flex-notice-content .imagify-notice-logo {
|
83 |
display: flex;
|
84 |
align-items: center;
|
85 |
}
|
86 |
+
|
87 |
.updated .imagify-notice-logo {
|
88 |
background: #8BC34A;
|
89 |
}
|
90 |
+
|
91 |
.error .imagify-notice-logo {
|
92 |
background: #C51162;
|
93 |
}
|
99 |
.imagify-notice-content {
|
100 |
padding: 5px 23px;
|
101 |
}
|
102 |
+
|
103 |
.imagify-notice-content.imagify-notice-content p {
|
104 |
margin: 0.65em 0;
|
105 |
}
|
106 |
+
|
107 |
.imagify-flex-notice-content .imagify-notice-content {
|
108 |
display: flex;
|
109 |
flex-wrap: wrap;
|
110 |
padding: 0;
|
111 |
}
|
112 |
+
|
113 |
.imagify-flex-notice-content .imagify-notice-content > * {
|
114 |
padding: 10px 20px;
|
115 |
}
|
116 |
+
|
117 |
.imagify-flex-notice-content .imagify-meteo-icon img {
|
118 |
height: 100%;
|
119 |
margin-top: 6px;
|
120 |
}
|
121 |
+
|
122 |
.imagify-notice-quota [class^="imagify-bar-"] {
|
123 |
background: #1F2332;
|
124 |
}
|
125 |
+
|
126 |
.imagify-notice-quota .imagify-space-left p {
|
127 |
margin: 0;
|
128 |
}
|
129 |
+
|
130 |
.imagify-flex-notice-content .imagify-notice-content .imagify-notice-quota {
|
131 |
padding-right: 24px;
|
132 |
padding-left: 8px;
|
133 |
background: #343A49;
|
134 |
}
|
135 |
+
|
136 |
.imagify-notice a {
|
137 |
color: #40B1D0;
|
138 |
}
|
139 |
+
|
140 |
.imagify-notice a:hover,
|
141 |
.imagify-notice a:focus {
|
142 |
color: #FEE102;
|
160 |
.imagify-welcome {
|
161 |
margin: 30px 20px 0 0;
|
162 |
}
|
163 |
+
|
164 |
.imagify-welcome .baseline {
|
165 |
display: inline-block;
|
166 |
margin: .2em 0 0 2em;
|
167 |
font-size: 17px;
|
168 |
}
|
169 |
+
|
170 |
.imagify-welcome .imagify-logo {
|
171 |
vertical-align: middle;
|
172 |
}
|
173 |
+
|
174 |
.imagify-welcome-remove {
|
175 |
position: absolute;
|
176 |
+
top: 50%;
|
177 |
+
right: 15px;
|
178 |
margin-top: -8px;
|
179 |
color: #FFF;
|
180 |
text-decoration: none;
|
181 |
}
|
182 |
+
|
183 |
/* Welcome columns */
|
184 |
.imagify-columns [class^="col-"] img {
|
185 |
float: left;
|
186 |
margin-right: 18px;
|
187 |
}
|
188 |
+
|
189 |
.imagify-col-content {
|
190 |
overflow: hidden;
|
191 |
}
|
192 |
+
|
193 |
.imagify-col-title {
|
194 |
margin: 0 0 15px 0;
|
195 |
font-size: 23px;
|
196 |
}
|
197 |
+
|
198 |
.counter .imagify-col-title:before {
|
199 |
counter-increment: cols;
|
200 |
content: counter(cols) ". ";
|
201 |
color: #40B1D0;
|
202 |
}
|
203 |
+
|
204 |
.imagify-col-desc {
|
205 |
color: #5F758E;
|
206 |
margin-bottom: 2em;
|
224 |
color: #FFF;
|
225 |
background: #1F2332;
|
226 |
}
|
227 |
+
|
228 |
.media_page_imagify-bulk-optimization .imagify-rkt-notice {
|
229 |
margin-left: 2px;
|
230 |
margin-right: 20px;
|
231 |
}
|
232 |
+
|
233 |
@media (max-width: 782px) {
|
234 |
.media_page_imagify-bulk-optimization .imagify-rkt-notice {
|
235 |
margin-left: 0;
|
236 |
margin-right: 12px;
|
237 |
}
|
238 |
}
|
239 |
+
|
240 |
.imagify-rkt-notice .imagify-cross {
|
241 |
position: absolute;
|
242 |
+
right: 8px;
|
243 |
+
top: 50%;
|
244 |
+
width: 22px;
|
245 |
+
height: 22px;
|
246 |
padding: 0;
|
247 |
margin-top: -11px;
|
248 |
background: transparent;
|
249 |
+
color: rgba(255, 255, 255, .5);
|
250 |
text-decoration: none;
|
251 |
border-radius: 50%;
|
252 |
transition: all .275s;
|
253 |
}
|
254 |
+
|
255 |
.imagify-rkt-notice .imagify-cross .dashicons {
|
256 |
position: relative;
|
257 |
+
top: 2px;
|
258 |
+
left: 1px;
|
259 |
transition: all .275s;
|
260 |
}
|
261 |
+
|
262 |
.imagify-rkt-notice .imagify-cross:hover {
|
263 |
background: #FFF;
|
264 |
}
|
265 |
+
|
266 |
.imagify-rkt-notice .imagify-cross:hover .dashicons {
|
267 |
color: #412355;
|
268 |
}
|
269 |
+
|
270 |
.imagify-rkt-notice .imagify-rkt-cta,
|
271 |
.imagify-rkt-notice .imagify-rkt-logo,
|
272 |
.imagify-rkt-notice .imagify-rkt-coupon {
|
274 |
-ms-flex-negative: 0;
|
275 |
flex-shrink: 0;
|
276 |
}
|
277 |
+
|
278 |
.imagify-rkt-notice .imagify-rkt-logo {
|
279 |
+
width: 150px !important; /* !important because of a dirtugly WP Engine code */
|
280 |
text-align: center;
|
281 |
padding: 0 25px 0 30px;
|
282 |
line-height: 0.8;
|
283 |
}
|
284 |
+
|
285 |
.imagify-rkt-notice .imagify-rkt-msg {
|
286 |
+
width: 100% !important; /* !important because of a dirtugly WP Engine code */
|
287 |
color: #FFF;
|
288 |
padding: 0 15px;
|
289 |
font-size: 14px;
|
290 |
line-height: 1.6;
|
291 |
}
|
292 |
+
|
293 |
.imagify-rkt-notice .imagify-rkt-coupon {
|
294 |
+
width: 150px !important; /* !important because of a dirtugly WP Engine code */
|
295 |
padding: 0 15px;
|
296 |
}
|
297 |
+
|
298 |
.imagify-rkt-notice .imagify-rkt-coupon-code {
|
299 |
padding: 5px 10px;
|
300 |
font-size: 23px;
|
302 |
border: 1px dashed #F56640;
|
303 |
color: #F56640;
|
304 |
}
|
305 |
+
|
306 |
.imagify-rkt-notice .imagify-rkt-cta {
|
307 |
+
width: 250px !important; /* !important because of a dirtugly WP Engine code */
|
308 |
-webkit-box-flex: 1;
|
309 |
-webkit-flex-grow: 1;
|
310 |
-ms-flex-positive: 1;
|
313 |
-ms-flex-preferred-size: 200px;
|
314 |
flex-basis: 200px;
|
315 |
}
|
316 |
+
|
317 |
.imagify-rkt-notice .button.button {
|
318 |
position: relative;
|
319 |
top: -1px;
|
324 |
padding: 9px 18px 9px;
|
325 |
background: #F56640;
|
326 |
box-shadow: none;
|
327 |
+
text-shadow: none !important;
|
328 |
}
|
329 |
+
|
330 |
@media (max-width: 880px) {
|
331 |
.imagify-rkt-notice {
|
332 |
-webkit-flex-wrap: wrap;
|
333 |
-ms-flex-wrap: wrap;
|
334 |
flex-wrap: wrap;
|
335 |
}
|
336 |
+
|
337 |
.imagify-rkt-notice .imagify-rkt-msg,
|
338 |
.imagify-rkt-notice .imagify-rkt-cta,
|
339 |
.imagify-rkt-notice .imagify-rkt-logo {
|
340 |
text-align: left;
|
341 |
padding: 5px 15px;
|
342 |
}
|
343 |
+
|
344 |
.imagify-cross.imagify-cross {
|
345 |
top: 8px;
|
346 |
margin-top: 0;
|
347 |
}
|
348 |
+
|
349 |
.imagify-rkt-notice .imagify-cross .dashicons {
|
350 |
top: 1px;
|
351 |
}
|
352 |
+
}
|
353 |
+
|
354 |
+
@media (max-width: 782px) {
|
355 |
+
.imagify-flex-notice-content .imagify-notice-content .imagify-notice-quota {
|
356 |
+
width: 100%;
|
357 |
+
}
|
358 |
+
|
359 |
+
.imagify-notice-quota-btn-container{
|
360 |
+
text-align: center;
|
361 |
+
width: 100%;
|
362 |
+
}
|
363 |
+
.imagify-notice-quota-btn-container .imagify-button{
|
364 |
+
display: inline-block;
|
365 |
+
}
|
366 |
+
}
|
assets/css/notices.min.css
CHANGED
@@ -1 +1 @@
|
|
1 |
-
.imagify-plugins-error{overflow:hidden;padding-left:20px;list-style-type:disc}.imagify-plugins-error li{width:300px;line-height:30px}@media (max-width:570px){.imagify-plugins-error li{width:auto}}.imagify-notice-dismiss.notice-dismiss{text-decoration:none}.media_page_imagify-bulk-optimization .notice,.settings_page_imagify .notice,body[class*="_imagify-ngg-bulk-optimization"] .notice{margin-right:20px;margin-left:2px}.imagify-notice .button-mini{padding:2px 10px;font-size:13px}.imagify-notice.imagify-notice{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;padding:0;margin:10px 20px 10px 2px;border:0;background:#4A5362;-webkit-box-shadow:none;box-shadow:none;color:#FFF}@media (max-width:782px){.imagify-notice.imagify-notice,.imagify-welcome{margin-right:12px}}@media (max-width:450px){.imagify-notice.imagify-notice{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}}.wrap .imagify-notice{margin:5px 15px 2px;position:relative}.imagify-notice-logo{padding:18px 23px;background:#40B1D0}.imagify-notice-logo .imagify-logo{opacity:1}.imagify-flex-notice-content .imagify-notice-logo{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.updated .imagify-notice-logo{background:#8BC34A}.error .imagify-notice-logo{background:#C51162}.imagify-notice-title{font-size:15px}.imagify-notice-content{padding:5px 23px}.imagify-notice-content.imagify-notice-content p{margin:.65em 0}.imagify-flex-notice-content .imagify-notice-content{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding:0}.imagify-flex-notice-content .imagify-notice-content>*{padding:10px 20px}.imagify-flex-notice-content .imagify-meteo-icon img{height:100%;margin-top:6px}.imagify-notice .imagify-rate-us .stars,.imagify-notice-quota .imagify-space-left p{margin:0}.imagify-notice-quota [class^=imagify-bar-]{background:#1F2332}.imagify-flex-notice-content .imagify-notice-content .imagify-notice-quota{padding-right:24px;padding-left:8px;background:#343A49}.imagify-notice a{color:#40B1D0}.imagify-notice a:focus,.imagify-notice a:hover{color:#FEE102}.imagify-notice code{background:rgba(0,0,0,.4)}.imagify-notice .imagify-rate-us.imagify-rate-us{text-align:left}.imagify-welcome{margin:30px 20px 0 0}.imagify-welcome .baseline{display:inline-block;margin:.2em 0 0 2em;font-size:17px}.imagify-welcome .imagify-logo{vertical-align:middle}.imagify-welcome-remove{position:absolute;top:50%;right:15px;margin-top:-8px;color:#FFF;text-decoration:none}.imagify-columns [class^=col-] img{float:left;margin-right:18px}.imagify-col-content{overflow:hidden}.imagify-col-title{margin:0 0 15px;font-size:23px}.counter .imagify-col-title:before{counter-increment:cols;content:counter(cols) ". ";color:#40B1D0}.imagify-col-desc{color:#5F758E;margin-bottom:2em}.imagify-rkt-notice.imagify-rkt-notice{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;-ms-grid-row-align:center;align-items:center;padding:10px 45px 10px 0;border:0;-webkit-box-shadow:none;box-shadow:none;color:#FFF;background:#1F2332}.media_page_imagify-bulk-optimization .imagify-rkt-notice{margin-left:2px;margin-right:20px}
|
1 |
+
.imagify-plugins-error{overflow:hidden;padding-left:20px;list-style-type:disc}.imagify-plugins-error li{width:300px;line-height:30px}@media (max-width:570px){.imagify-plugins-error li{width:auto}}.imagify-notice-dismiss.notice-dismiss{text-decoration:none}.media_page_imagify-bulk-optimization .notice,.settings_page_imagify .notice,body[class*="_imagify-ngg-bulk-optimization"] .notice{margin-right:20px;margin-left:2px}.imagify-notice .button-mini{padding:2px 10px;font-size:13px}.imagify-notice.imagify-notice{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;padding:0;margin:10px 20px 10px 2px;border:0;background:#4A5362;-webkit-box-shadow:none;box-shadow:none;color:#FFF}@media (max-width:782px){.imagify-notice.imagify-notice,.imagify-welcome{margin-right:12px}}@media (max-width:450px){.imagify-notice.imagify-notice{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}}.wrap .imagify-notice{margin:5px 15px 2px;position:relative}.imagify-notice-logo{padding:18px 23px;background:#40B1D0}.imagify-notice-logo .imagify-logo{opacity:1}.imagify-flex-notice-content .imagify-notice-logo{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.updated .imagify-notice-logo{background:#8BC34A}.error .imagify-notice-logo{background:#C51162}.imagify-notice-title{font-size:15px}.imagify-notice-content{padding:5px 23px}.imagify-notice-content.imagify-notice-content p{margin:.65em 0}.imagify-flex-notice-content .imagify-notice-content{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding:0}.imagify-flex-notice-content .imagify-notice-content>*{padding:10px 20px}.imagify-flex-notice-content .imagify-meteo-icon img{height:100%;margin-top:6px}.imagify-notice .imagify-rate-us .stars,.imagify-notice-quota .imagify-space-left p{margin:0}.imagify-notice-quota [class^=imagify-bar-]{background:#1F2332}.imagify-flex-notice-content .imagify-notice-content .imagify-notice-quota{padding-right:24px;padding-left:8px;background:#343A49}.imagify-notice a{color:#40B1D0}.imagify-notice a:focus,.imagify-notice a:hover{color:#FEE102}.imagify-notice code{background:rgba(0,0,0,.4)}.imagify-notice .imagify-rate-us.imagify-rate-us{text-align:left}.imagify-welcome{margin:30px 20px 0 0}.imagify-welcome .baseline{display:inline-block;margin:.2em 0 0 2em;font-size:17px}.imagify-welcome .imagify-logo{vertical-align:middle}.imagify-welcome-remove{position:absolute;top:50%;right:15px;margin-top:-8px;color:#FFF;text-decoration:none}.imagify-columns [class^=col-] img{float:left;margin-right:18px}.imagify-col-content{overflow:hidden}.imagify-col-title{margin:0 0 15px;font-size:23px}.counter .imagify-col-title:before{counter-increment:cols;content:counter(cols) ". ";color:#40B1D0}.imagify-col-desc{color:#5F758E;margin-bottom:2em}.imagify-rkt-notice.imagify-rkt-notice{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;-ms-grid-row-align:center;align-items:center;padding:10px 45px 10px 0;border:0;-webkit-box-shadow:none;box-shadow:none;color:#FFF;background:#1F2332}.media_page_imagify-bulk-optimization .imagify-rkt-notice{margin-left:2px;margin-right:20px}.imagify-rkt-notice .imagify-cross{position:absolute;right:8px;top:50%;width:22px;height:22px;padding:0;margin-top:-11px;background:0 0;color:rgba(255,255,255,.5);text-decoration:none;border-radius:50%;-webkit-transition:all .275s;-o-transition:all .275s;transition:all .275s}.imagify-rkt-notice .imagify-cross .dashicons{position:relative;top:2px;left:1px;-webkit-transition:all .275s;-o-transition:all .275s;transition:all .275s}.imagify-rkt-notice .imagify-cross:hover{background:#FFF}.imagify-rkt-notice .imagify-cross:hover .dashicons{color:#412355}.imagify-rkt-notice .imagify-rkt-coupon,.imagify-rkt-notice .imagify-rkt-cta,.imagify-rkt-notice .imagify-rkt-logo{-ms-flex-negative:0;flex-shrink:0}.imagify-rkt-notice .imagify-rkt-logo{width:150px!important;text-align:center;padding:0 25px 0 30px;line-height:.8}.imagify-rkt-notice .imagify-rkt-msg{width:100%!important;color:#FFF;padding:0 15px;font-size:14px;line-height:1.6}.imagify-rkt-notice .imagify-rkt-coupon{width:150px!important;padding:0 15px}.imagify-rkt-notice .imagify-rkt-coupon-code{padding:5px 10px;font-size:23px;font-weight:700;border:1px dashed #F56640;color:#F56640}.imagify-rkt-notice .imagify-rkt-cta{width:250px!important;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;-ms-flex-preferred-size:200px;flex-basis:200px}.imagify-rkt-notice .button.button{position:relative;top:-1px;height:auto;font-weight:600;font-size:14px;border:0;padding:9px 18px;background:#F56640;-webkit-box-shadow:none;box-shadow:none;text-shadow:none!important}@media (max-width:880px){.imagify-rkt-notice{-ms-flex-wrap:wrap;flex-wrap:wrap}.imagify-rkt-notice .imagify-rkt-cta,.imagify-rkt-notice .imagify-rkt-logo,.imagify-rkt-notice .imagify-rkt-msg{text-align:left;padding:5px 15px}.imagify-cross.imagify-cross{top:8px;margin-top:0}.imagify-rkt-notice .imagify-cross .dashicons{top:1px}}@media (max-width:782px){.media_page_imagify-bulk-optimization .imagify-rkt-notice{margin-left:0;margin-right:12px}.imagify-flex-notice-content .imagify-notice-content .imagify-notice-quota{width:100%}.imagify-notice-quota-btn-container{text-align:center;width:100%}.imagify-notice-quota-btn-container .imagify-button{display:inline-block}}
|
assets/css/options.css
CHANGED
@@ -64,7 +64,6 @@ p.imagify-api-key-invite-title {
|
|
64 |
.imagify-no-api-key .imagify-api-line {
|
65 |
margin: 3em 0 0 0;
|
66 |
padding: 2em 0 0;
|
67 |
-
border-top: 1px solid #D5D6D9;
|
68 |
}
|
69 |
.imagify-no-api-key .imagify-api-line input[type="text"] {
|
70 |
margin-top: 5px;
|
@@ -152,6 +151,7 @@ p.imagify-api-key-invite-title {
|
|
152 |
flex-basis: 40%;
|
153 |
flex-shrink: 1;
|
154 |
padding-left: 20px;
|
|
|
155 |
color: #626E7B;
|
156 |
box-sizing: border-box;
|
157 |
}
|
@@ -286,6 +286,7 @@ label[for="imagify_sizes_full"] + .imagify-info {
|
|
286 |
.imagify-settings [type="text"],
|
287 |
.imagify-settings [type="number"] {
|
288 |
width: 20em;
|
|
|
289 |
height: auto;
|
290 |
padding: 6px;
|
291 |
margin: 0 6px;
|
@@ -324,6 +325,7 @@ label[for="imagify_sizes_full"] + .imagify-info {
|
|
324 |
.imagify-menu-bar-img {
|
325 |
box-sizing: border-box;
|
326 |
max-width: 100%;
|
|
|
327 |
height: auto;
|
328 |
margin-top: 0;
|
329 |
border: 1px solid #8BA6B4;
|
@@ -900,3 +902,37 @@ input:checked + label .imagify-fake-checkbox:after,
|
|
900 |
font-weight: 500;
|
901 |
color: #A2AFBC;
|
902 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
64 |
.imagify-no-api-key .imagify-api-line {
|
65 |
margin: 3em 0 0 0;
|
66 |
padding: 2em 0 0;
|
|
|
67 |
}
|
68 |
.imagify-no-api-key .imagify-api-line input[type="text"] {
|
69 |
margin-top: 5px;
|
151 |
flex-basis: 40%;
|
152 |
flex-shrink: 1;
|
153 |
padding-left: 20px;
|
154 |
+
margin-top: 20px;
|
155 |
color: #626E7B;
|
156 |
box-sizing: border-box;
|
157 |
}
|
286 |
.imagify-settings [type="text"],
|
287 |
.imagify-settings [type="number"] {
|
288 |
width: 20em;
|
289 |
+
max-width: 100%;
|
290 |
height: auto;
|
291 |
padding: 6px;
|
292 |
margin: 0 6px;
|
325 |
.imagify-menu-bar-img {
|
326 |
box-sizing: border-box;
|
327 |
max-width: 100%;
|
328 |
+
width: 350px;
|
329 |
height: auto;
|
330 |
margin-top: 0;
|
331 |
border: 1px solid #8BA6B4;
|
902 |
font-weight: 500;
|
903 |
color: #A2AFBC;
|
904 |
}
|
905 |
+
@media (max-width: 782px) {
|
906 |
+
.imagify-settings.imagify-have-rocket {
|
907 |
+
margin-right: 10px;
|
908 |
+
}
|
909 |
+
|
910 |
+
label + .imagify-info, .imagify-visual-label {
|
911 |
+
max-width: calc(100% - 65px);
|
912 |
+
padding-right: 0;
|
913 |
+
}
|
914 |
+
|
915 |
+
.imagify-options-title {
|
916 |
+
font-size: 22px;
|
917 |
+
}
|
918 |
+
|
919 |
+
.imagify-user-plan-label {
|
920 |
+
margin-right: -5px;
|
921 |
+
}
|
922 |
+
|
923 |
+
.imagify-col.imagify-main {
|
924 |
+
width:100%;
|
925 |
+
padding-right: 10px;
|
926 |
+
}
|
927 |
+
.imagify-col + .imagify-col{
|
928 |
+
padding:0px 10px 0px 0px;
|
929 |
+
}
|
930 |
+
.imagify-no-api-key .imagify-api-line input[type="text"]{
|
931 |
+
margin-left: 0;
|
932 |
+
}
|
933 |
+
}
|
934 |
+
@media (max-width: 513px) {
|
935 |
+
.imagify-setting-optim-level .imagify-visual-comparison-text{
|
936 |
+
margin-top: 20px;
|
937 |
+
}
|
938 |
+
}
|
assets/css/options.min.css
CHANGED
@@ -1 +1 @@
|
|
1 |
-
.wrap.imagify-settings{margin-right:0}.imagify-settings.imagify-have-rocket{margin-right:20px}#imagify-check-api-container{display:block;margin-top:6px;font-weight:700}#imagify-check-api-container .dashicons{font-size:25px}#imagify-check-api-container .dashicons-no:before{color:#f06e57;vertical-align:-1px}#imagify-check-api-container .imagify-icon{font-size:1.8em;margin-right:3px;margin-left:1px;color:#8BC34A;vertical-align:-2px}.imagify-account-info-col .imagify-api-line{padding:22px 26px;background:#343A49}.imagify-api-line label,p.imagify-api-key-invite-title{display:block;margin-bottom:6px;font-size:14px;text-transform:uppercase;letter-spacing:.02em;font-weight:700;color:#343A49}.imagify-account-info-col .imagify-api-line label{color:#E5EBEF;display:inline-block}.imagify-api-line.imagify-api-line input[type=text]{width:100%;padding:6px 10px;border:1px solid #40B1D0;font-family:"PT Mono",Consolas,monospace;font-size:14px;letter-spacing:.01em;font-weight:700;color:#40B1D0;background:0 0;-webkit-box-shadow:none;box-shadow:none}.imagify-no-api-key .imagify-api-line{margin:3em 0 0;padding:2em 0 0;border-top:1px solid #D5D6D9}.imagify-no-api-key .imagify-api-line input[type=text]{margin-top:5px;width:400px;max-width:100%}.imagify-settings .imagify-no-api-key div.submit.submit{border:0;padding:0 16px;margin-top:0;background:#FFF}.imagify-settings .imagify-no-api-key div.submit.submit p{padding-bottom:0}.imagify-options-title{margin:.75em 0 0;font-size:24px;letter-spacing:.02em;font-weight:700;color:#343A49}.imagify-options-subtitle{padding-bottom:.3em;margin-bottom:20px;border-bottom:1px solid #D2D3D6;font-size:14px;letter-spacing:.01em;font-weight:700;text-transform:uppercase;color:#626E7B}.imagify-options-subtitle a{font-size:12px;color:#338EA6;text-transform:none;letter-spacing:0}.imagify-options-subtitle .imagify-info{margin-left:15px}.imagify-setting-line{border-top:1px solid #D2D3D6;padding:25px 0 13px;margin:1em 0}.imagify-options-subtitle+.imagify-setting-line{border-top:0;padding-top:8px}.imagify-setting-optim-level{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:8px 0 18px}.imagify-setting-optim-level>p{margin:0}.imagify-setting-optim-level .imagify-inline-options{-ms-flex-preferred-size:60%;flex-basis:60%;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;width:auto;display:-webkit-box;display:-ms-flexbox;display:flex;background:#2E3243;border-radius:3px}.imagify-setting-optim-level .imagify-inline-options label{display:block!important;width:100%;font-size:14px!important;border-radius:3px!important}.imagify-setting-optim-level .imagify-visual-comparison-text{-ms-flex-preferred-size:40%;flex-basis:40%;-ms-flex-negative:1;flex-shrink:1;padding-left:20px;color:#626E7B;-webkit-box-sizing:border-box;box-sizing:border-box}.imagify-setting-optim-level.imagify-setting-optim-level .imagify-visual-comparison-btn{padding-top:5px;margin-top:2px;border-radius:2px;text-transform:none;letter-spacing:0;text-shadow:none!important}@media (max-width:782px){.imagify-settings .form-table th{padding-top:2em;padding-bottom:.5em}}.imagify-settings .form-table td{vertical-align:top}.imagify-settings .form-table th span{cursor:pointer}.imagify-middle th{padding-top:35px}.imagify-settings div.submit.submit{border-top:1px solid #D9D9D9;margin-top:2em;padding:18px 0 7px 30px}.imagify-settings .hidden+div.submit.submit{margin-top:-1px}.imagify-settings p.submit{float:left;margin-top:0}.imagify-settings p.submit .button{margin:0 5px}.imagify-sub-header th{text-align:right}.imagify-sub-header .form-table{margin:0}.imagify-sub-header td,.imagify-sub-header th{padding-top:0;padding-bottom:0}.imagify-sub-header [for=api_key]{padding-top:5px}@media (max-width:1120px){.imagify-settings .imagify-logo-block{margin-right:0}.imagify-settings .imagify-rate-us.imagify-rate-us{margin:1em 0 -1em}}.imagify-settings .imagify-rate-us{margin-right:25px;margin-left:auto}.imagify-visual-label,label+.imagify-info{display:inline-block;width:550px;max-width:calc(100% - 38px);margin-left:38px;padding-right:25px}.imagify-options-line{-webkit-transition:opacity .3s;-o-transition:opacity .3s;transition:opacity .3s}label~.imagify-options-line{display:block;margin:8px 0 20px 40px;font-size:14px}.imagify-options-line+.imagify-info{margin-left:38px}label+.imagify-info{margin-top:10px}.imagify-options-line+.imagify-info+.imagify-options-line{margin-top:20px}.imagify-visual-label{vertical-align:-5px}label[for=imagify_sizes_full]+.imagify-info{vertical-align:middle}.imagify-settings.imagify-settings [type=checkbox]:not(:checked)+label .imagify-visual-label,.imagify-settings.imagify-settings [type=checkbox]:not(:checked)+label~.imagify-options-line,:checked+label~.imagify-options-line :checked+label~.imagify-options-line .imagify-faded{opacity:.5}.imagify-settings.imagify-settings :not(:checked)+label~.imagify-options-line :not(:checked)+label~.imagify-options-line,.imagify-settings.imagify-settings [type=checkbox]:checked+label .imagify-visual-label,.imagify-settings.imagify-settings [type=checkbox]:checked+label~.imagify-options-line{opacity:1}.imagify-radio-group+.imagify-options-line{display:block;margin:0 0 0 1.7em;font-size:14px}.imagify-checkbox-marged{max-width:500px;margin-left:45px}.imagify-settings [type=text],.imagify-settings [type=number]{width:20em;height:auto;padding:6px;margin:0 6px;border:1px solid #8BA6B4;-webkit-box-shadow:none;box-shadow:none;border-radius:2px;color:#338EA6;font-weight:700}.imagify-settings [type=number]{width:5em}.imagify-settings ::-webkit-input-placeholder{color:#B1B1B1;font-weight:400}.imagify-settings ::-moz-placeholder{color:#B1B1B1;font-weight:400;opacity:1}.imagify-settings :-ms-input-placeholder{color:#B1B1B1;font-weight:400}.imagify-settings :-moz-placeholder{color:#B1B1B1;font-weight:400;opacity:1}.imagify-settings ::-ms-input-placeholder{color:#B1B1B1;font-weight:400}.imagify-settings ::placeholder{color:#B1B1B1;font-weight:400}.imagify-menu-bar-img{-webkit-box-sizing:border-box;box-sizing:border-box;max-width:100%;height:auto;margin-top:0;border:1px solid #8BA6B4}.imagify-col.imagify-main{float:left;width:calc(100% - 320px);padding-left:0;padding-right:0}.imagify-have-rocket .imagify-main{float:none;width:1265px;max-width:100%}.imagify-sidebar{float:left;width:300px;max-width:100%}.imagify-sidebar-section{border:1px solid #BBB;background:#1F2332;position:relative;padding:10px 20px;text-align:center;color:#F2F2F2}.imagify-sidebar-section+.imagify-sidebar-section{margin-top:2em}@media (max-width:820px){.imagify-main,.imagify-sidebar{float:none;width:auto}.imagify-settings{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.imagify-sidebar{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2;max-width:none;margin-left:0;margin-top:25px}.wp-media-products{text-align:center}.wp-media-products li{display:inline-block;width:100%;max-width:276px}}@media (min-width:1400px){.imagify-main{width:74%}}.imagify-sidebar-close{position:absolute;top:8px;right:12px;text-decoration:none}.imagify-sidebar-close i{font-size:2em;color:rgba(255,255,255,.5)}p.imagify-sidebar-title{margin:1.2em 0 1.5em;text-align:left;color:#F56640;text-transform:uppercase;letter-spacing:.015em;word-spacing:.015em;font-weight:700}p.imagify-sidebar-description{margin:1.5em 0;text-align:left;font-weight:500;color:#F2F2F2}.imagify-sidebar-description strong{color:#39CE9A}.imagify-rocket-cta-promo{display:block;padding:8px 10px;margin:1.3em 0 .5em;border:2px dashed #F56640;border-radius:3px;font-size:18px;font-weight:700;color:#F56640}.imagify-rocket-cta-promo strong,a.btn-rocket{color:#F2F2F2}a.btn-rocket{display:block;font-size:15px;padding:10px 12px;margin:0 0 1.5em;background:#F56640;border-radius:3px;text-transform:uppercase;font-weight:700;text-decoration:none}a.btn-rocket:focus,a.btn-rocket:hover{background:#AC2B15}.imagify-sidebar-section ul{margin-top:20px}.imagify-sidebar-section li{position:relative;margin:1.2em 0;padding-left:25px;text-align:left}.imagify-sidebar-section li:before{content:"✓";position:absolute;left:0;top:0;color:#39CE9A;font-size:18px}label[for=imagify_admin_bar_menu],label[for=imagify_partner_links]{font-weight:400!important;color:#626E7B!important}.imagify-select-all-buttons{margin-top:8px}.imagify-link-like.imagify-select-all{font-weight:700;font-size:12px;color:#3694AE}.imagify-select-all.imagify-is-inactive{color:inherit;text-decoration:none;cursor:default}.imagify-fts-header{padding:10px 16px;background:#343A49;color:#FFF}.imagify-fts-header i{font-size:1.8em;margin-right:12px}.imagify-fts-header p{margin:0;color:#FFF}#imagify-add-themes-to-custom-folder strong,.imagify-fts-header strong{color:#40B1D0;font-weight:700}.imagify-fts-content{padding:16px;background:#F4F7F9;border:1px solid #CDD0D4;border-top:0}.imagify-fts-content p{margin-top:0}.imagify-kindof-title{margin-top:2em;padding:0 0 10px;border-bottom:1px solid #D2D3D6;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;font-weight:700}.imagify-settings .imagify-button-mini{padding:4px 13px 4px 10px}.imagify-settings .imagify-button-mini .dashicons-plus{vertical-align:-7.5px}.imagify-settings .imagify-button-mini.imagify-button-primary:focus,.imagify-settings .imagify-button-mini.imagify-button-primary:hover{color:#FFF}p.imagify-custom-folder-line{position:relative;margin:0;padding:12px 15px;color:#4A5362;font-weight:500;-webkit-transition:all .75s;-o-transition:all .75s;transition:all .75s}.imagify-custom-folder-line:first-child,.imagify-empty-folder{margin-top:-.5em}.imagify-custom-folder-line.imagify-will-remove{background:#C51162;color:#FFF;-webkit-transform:translateX(-120px);-ms-transform:translateX(-120px);transform:translateX(-120px);opacity:0}.imagify-custom-folder-line+.imagify-custom-folder-line{border-top:1px solid #E9EFF2}.imagify-custom-folders-remove{position:absolute;right:0;top:6px;border:0;padding:5px 10px 4px;-webkit-box-shadow:none;box-shadow:none;color:#7A8996;border-radius:16px;font-size:13px;line-height:18px;background:#FFF;-webkit-transition:all .275s;-o-transition:all .275s;transition:all .275s;cursor:pointer}.imagify-custom-folders-remove-text{max-width:0;overflow:hidden;white-space:nowrap;display:inline-block;-webkit-transform:scale(0);-ms-transform:scale(0);transform:scale(0);opacity:0;-webkit-transition:all .275s;-o-transition:all .275s;transition:all .275s}.imagify-custom-folders-remove:focus,.imagify-custom-folders-remove:hover{background:#D9EFF6;color:#225E6E}.imagify-custom-folders-remove:focus .imagify-custom-folders-remove-text,.imagify-custom-folders-remove:hover .imagify-custom-folders-remove-text{max-width:6em;-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1);opacity:1}.imagify-settings .progress{height:8px;margin-top:1em;background:#343A49}.imagify-settings .bar{position:relative;width:1px;height:8px;background:#46B1CE;-webkit-transition:width .5s;-o-transition:width .5s;transition:width .5s}.imagify-settings .percent{position:absolute;top:6px;right:0;padding:0 5px;line-height:1.85;font-size:14px;font-weight:700;color:#40B1D0}.dashicons.rotate{-webkit-animation:icon-rotate 2.6s infinite linear;animation:icon-rotate 2.6s infinite linear}@-webkit-keyframes icon-rotate{from{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes icon-rotate{from{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.imagify-add-custom-folder+.imagify-loader{display:none;vertical-align:middle}.imagify-add-custom-folder[disabled]+.imagify-loader{display:inline-block}.imagify-folders-information{position:relative;margin:-5px 0 20px;padding:10px 10px 10px 40px;text-align:left;background:#F2F2F2}.imagify-folders-information i{position:absolute;left:10px;top:50%;margin-top:-10px}.imagify-folders-tree{margin:0;text-align:left}.imagify-folders-tree li{clear:left}.imagify-folders-tree .imagify-folder{-webkit-box-sizing:border-box;box-sizing:border-box;position:relative;width:48px;z-index:2;float:left;margin-top:-3px;padding:0 8px 0 0;border:0;background:0 0!important;-webkit-box-shadow:none;box-shadow:none;cursor:pointer;-webkit-transition:all .275s;-o-transition:all .275s;transition:all .275s}.imagify-folders-tree span.imagify-folder{padding-left:1.5px}.imagify-folders-tree .imagify-folder:before{content:"+";display:inline-block;width:13px;height:21px;font-size:1.5em;vertical-align:.15em}.imagify-folders-tree span.imagify-folder:before{content:''}.imagify-folders-tree .imagify-folder-icon path{-webkit-transition:all .275s;-o-transition:all .275s;transition:all .275s}.imagify-folders-tree .imagify-is-open .imagify-folder-icon path{stroke:#7A8996}.imagify-folders-tree .imagify-is-open.imagify-folder:before{content:"-";color:#7A8996}.imagify-folders-tree .imagify-is-open~label{color:#7A8996}.imagify-folders-tree .imagify-folder .imagify-loader,.imagify-folders-tree .imagify-folder.imagify-loading:before{display:none}.imagify-folders-tree .imagify-folder.imagify-loading .imagify-loader{display:inline-block;width:13px;height:21px;font-size:1.5em;vertical-align:.15em}.imagify-folders-tree .imagify-folder.imagify-loading .imagify-loader img{display:inline-block;width:100%;height:auto;vertical-align:middle}.imagify-folders-tree button.imagify-folder:focus,.imagify-folders-tree button.imagify-folder:focus path,.imagify-folders-tree button.imagify-folder:hover,.imagify-folders-tree button.imagify-folder:hover path{color:#3694AE;stroke:#3694AE}.imagify-folders-tree .imagify-folder.disabled,.imagify-folders-tree .imagify-folder:disabled{color:#7f7f7f}.imagify-swal-content .imagify-folders-tree label{position:relative;display:block;width:100%;padding:3px 0;font-size:15px;font-weight:500;vertical-align:top;-webkit-transition:all .475s;-o-transition:all .475s;transition:all .475s}.imagify-folders-tree input:focus+label,.imagify-swal-content .imagify-folders-tree label:hover{background:#F4F7F9}.imagify-folders-tree .imagify-folder-already-selected input:focus+label,.imagify-folders-tree .imagify-folder-already-selected label,.imagify-folders-tree .imagify-folder-already-selected label:hover{background:#40B1D0;color:#FFF;border-radius:3px;cursor:default}.imagify-folders-tree .imagify-folder-already-selected button,.imagify-folders-tree .imagify-folder-already-selected button path{color:#FFF;stroke:#FFF;cursor:default}.imagify-folders-tree .imagify-folder-already-selected button:focus path,.imagify-folders-tree .imagify-folder-already-selected button:hover path{stroke:#FFF}.imagify-folders-tree .imagify-folder-already-selected button:before{content:''}.imagify-add-ed-folder{position:absolute;top:0;bottom:0;right:0;font-size:11px;text-transform:uppercase;letter-spacing:.02em;word-spacing:.02em;color:#3694AE;background:#F4F7F9;opacity:0;-webkit-transform:translateX(15px);-ms-transform:translateX(15px);transform:translateX(15px);-webkit-transition:all .275s;-o-transition:all .275s;transition:all .275s}.imagify-folder-already-selected .imagify-add-ed-folder,input:checked+label .imagify-add-ed-folder,input:focus+label .imagify-add-ed-folder,label:hover .imagify-add-ed-folder{opacity:1;-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0)}input:checked+label .imagify-add-ed-folder{background:#FFF}input:checked+label:hover .imagify-add-ed-folder,input:checked:focus+label .imagify-add-ed-folder{background:#F4F7F9}.imagify-folder-already-selected .imagify-add-ed-folder{background:#40B1D0;color:#FFF}.imagify-fake-checkbox{position:relative;display:inline-block;width:14px;height:14px;margin:3.5px 15px 0 5px;border:1.5px solid #3694AE;border-radius:3px;vertical-align:-4px}.imagify-fake-checkbox:after{position:absolute;left:1px;top:0;content:"✓";color:#3694AE;font-size:14px;line-height:.9;font-style:normal;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;opacity:0;-webkit-transform:scale(0);-ms-transform:scale(0);transform:scale(0);-webkit-transition:all .475s;-o-transition:all .475s;transition:all .475s}.imagify-folder-already-selected .imagify-fake-checkbox:after,input:checked+label .imagify-fake-checkbox:after{opacity:1;-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}.imagify-folder-already-selected .imagify-fake-checkbox{border-color:#40B1D0}.imagify-folder-already-selected .imagify-fake-checkbox:after{color:#FFF}.imagify-folders-sub-tree{position:relative;margin-left:.75em;padding-top:.6em;padding-left:1em;border-left:1px dotted rgba(98,110,123,.3)}.imagify-folders-sub-tree li{position:relative;margin-bottom:4px}.imagify-folders-sub-tree li:before{content:"";position:absolute;top:12px;left:-1em;height:1px;width:.9em;border-top:1px dotted rgba(98,110,123,.3)}.imagify-folders-sub-tree li:last-child:after{content:"";position:absolute;left:-1.1em;bottom:0;height:11px;width:3px;background:#FFF}.imagify-empty-folder em{font-size:12px;font-weight:500;color:#A2AFBC}
|
1 |
+
.wrap.imagify-settings{margin-right:0}.imagify-settings.imagify-have-rocket{margin-right:20px}#imagify-check-api-container{display:block;margin-top:6px;font-weight:700}#imagify-check-api-container .dashicons{font-size:25px}#imagify-check-api-container .dashicons-no:before{color:#f06e57;vertical-align:-1px}#imagify-check-api-container .imagify-icon{font-size:1.8em;margin-right:3px;margin-left:1px;color:#8BC34A;vertical-align:-2px}.imagify-account-info-col .imagify-api-line{padding:22px 26px;background:#343A49}.imagify-api-line label,p.imagify-api-key-invite-title{display:block;margin-bottom:6px;font-size:14px;text-transform:uppercase;letter-spacing:.02em;font-weight:700;color:#343A49}.imagify-account-info-col .imagify-api-line label{color:#E5EBEF;display:inline-block}.imagify-api-line.imagify-api-line input[type=text]{width:100%;padding:6px 10px;border:1px solid #40B1D0;font-family:"PT Mono",Consolas,monospace;font-size:14px;letter-spacing:.01em;font-weight:700;color:#40B1D0;background:0 0;-webkit-box-shadow:none;box-shadow:none}.imagify-no-api-key .imagify-api-line{margin:3em 0 0;padding:2em 0 0}.imagify-no-api-key .imagify-api-line input[type=text]{margin-top:5px;width:400px;max-width:100%}.imagify-settings .imagify-no-api-key div.submit.submit{border:0;padding:0 16px;margin-top:0;background:#FFF}.imagify-settings .imagify-no-api-key div.submit.submit p{padding-bottom:0}.imagify-options-title{margin:.75em 0 0;font-size:24px;letter-spacing:.02em;font-weight:700;color:#343A49}.imagify-options-subtitle{padding-bottom:.3em;margin-bottom:20px;border-bottom:1px solid #D2D3D6;font-size:14px;letter-spacing:.01em;font-weight:700;text-transform:uppercase;color:#626E7B}.imagify-options-subtitle a{font-size:12px;color:#338EA6;text-transform:none;letter-spacing:0}.imagify-options-subtitle .imagify-info{margin-left:15px}.imagify-setting-line{border-top:1px solid #D2D3D6;padding:25px 0 13px;margin:1em 0}.imagify-options-subtitle+.imagify-setting-line{border-top:0;padding-top:8px}.imagify-setting-optim-level{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:8px 0 18px}.imagify-setting-optim-level>p{margin:0}.imagify-setting-optim-level .imagify-inline-options{-ms-flex-preferred-size:60%;flex-basis:60%;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;width:auto;display:-webkit-box;display:-ms-flexbox;display:flex;background:#2E3243;border-radius:3px}.imagify-setting-optim-level .imagify-inline-options label{display:block!important;width:100%;font-size:14px!important;border-radius:3px!important}.imagify-setting-optim-level .imagify-visual-comparison-text{-ms-flex-preferred-size:40%;flex-basis:40%;-ms-flex-negative:1;flex-shrink:1;padding-left:20px;margin-top:20px;color:#626E7B;-webkit-box-sizing:border-box;box-sizing:border-box}.imagify-setting-optim-level.imagify-setting-optim-level .imagify-visual-comparison-btn{padding-top:5px;margin-top:2px;border-radius:2px;text-transform:none;letter-spacing:0;text-shadow:none!important}@media (max-width:782px){.imagify-settings .form-table th{padding-top:2em;padding-bottom:.5em}}.imagify-settings .form-table td{vertical-align:top}.imagify-settings .form-table th span{cursor:pointer}.imagify-middle th{padding-top:35px}.imagify-settings div.submit.submit{border-top:1px solid #D9D9D9;margin-top:2em;padding:18px 0 7px 30px}.imagify-settings .hidden+div.submit.submit{margin-top:-1px}.imagify-settings p.submit{float:left;margin-top:0}.imagify-settings p.submit .button{margin:0 5px}.imagify-sub-header th{text-align:right}.imagify-sub-header .form-table{margin:0}.imagify-sub-header td,.imagify-sub-header th{padding-top:0;padding-bottom:0}.imagify-sub-header [for=api_key]{padding-top:5px}@media (max-width:1120px){.imagify-settings .imagify-logo-block{margin-right:0}.imagify-settings .imagify-rate-us.imagify-rate-us{margin:1em 0 -1em}}.imagify-settings .imagify-rate-us{margin-right:25px;margin-left:auto}.imagify-visual-label,label+.imagify-info{display:inline-block;width:550px;max-width:calc(100% - 38px);margin-left:38px;padding-right:25px}.imagify-options-line{-webkit-transition:opacity .3s;-o-transition:opacity .3s;transition:opacity .3s}label~.imagify-options-line{display:block;margin:8px 0 20px 40px;font-size:14px}.imagify-options-line+.imagify-info{margin-left:38px}label+.imagify-info{margin-top:10px}.imagify-options-line+.imagify-info+.imagify-options-line{margin-top:20px}.imagify-visual-label{vertical-align:-5px}label[for=imagify_sizes_full]+.imagify-info{vertical-align:middle}.imagify-settings.imagify-settings [type=checkbox]:not(:checked)+label .imagify-visual-label,.imagify-settings.imagify-settings [type=checkbox]:not(:checked)+label~.imagify-options-line,:checked+label~.imagify-options-line :checked+label~.imagify-options-line .imagify-faded{opacity:.5}.imagify-settings.imagify-settings :not(:checked)+label~.imagify-options-line :not(:checked)+label~.imagify-options-line,.imagify-settings.imagify-settings [type=checkbox]:checked+label .imagify-visual-label,.imagify-settings.imagify-settings [type=checkbox]:checked+label~.imagify-options-line{opacity:1}.imagify-radio-group+.imagify-options-line{display:block;margin:0 0 0 1.7em;font-size:14px}.imagify-checkbox-marged{max-width:500px;margin-left:45px}.imagify-settings [type=text],.imagify-settings [type=number]{width:20em;max-width:100%;height:auto;padding:6px;margin:0 6px;border:1px solid #8BA6B4;-webkit-box-shadow:none;box-shadow:none;border-radius:2px;color:#338EA6;font-weight:700}.imagify-settings [type=number]{width:5em}.imagify-settings ::-webkit-input-placeholder{color:#B1B1B1;font-weight:400}.imagify-settings ::-moz-placeholder{color:#B1B1B1;font-weight:400;opacity:1}.imagify-settings :-ms-input-placeholder{color:#B1B1B1;font-weight:400}.imagify-settings :-moz-placeholder{color:#B1B1B1;font-weight:400;opacity:1}.imagify-settings ::-ms-input-placeholder{color:#B1B1B1;font-weight:400}.imagify-settings ::placeholder{color:#B1B1B1;font-weight:400}.imagify-menu-bar-img{-webkit-box-sizing:border-box;box-sizing:border-box;max-width:100%;width:350px;height:auto;margin-top:0;border:1px solid #8BA6B4}.imagify-col.imagify-main{float:left;width:calc(100% - 320px);padding-left:0;padding-right:0}.imagify-have-rocket .imagify-main{float:none;width:1265px;max-width:100%}.imagify-sidebar{float:left;width:300px;max-width:100%}.imagify-sidebar-section{border:1px solid #BBB;background:#1F2332;position:relative;padding:10px 20px;text-align:center;color:#F2F2F2}.imagify-sidebar-section+.imagify-sidebar-section{margin-top:2em}@media (max-width:820px){.imagify-main,.imagify-sidebar{float:none;width:auto}.imagify-settings{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.imagify-sidebar{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2;max-width:none;margin-left:0;margin-top:25px}.wp-media-products{text-align:center}.wp-media-products li{display:inline-block;width:100%;max-width:276px}}@media (min-width:1400px){.imagify-main{width:74%}}.imagify-sidebar-close{position:absolute;top:8px;right:12px;text-decoration:none}.imagify-sidebar-close i{font-size:2em;color:rgba(255,255,255,.5)}p.imagify-sidebar-title{margin:1.2em 0 1.5em;text-align:left;color:#F56640;text-transform:uppercase;letter-spacing:.015em;word-spacing:.015em;font-weight:700}p.imagify-sidebar-description{margin:1.5em 0;text-align:left;font-weight:500;color:#F2F2F2}.imagify-sidebar-description strong{color:#39CE9A}.imagify-rocket-cta-promo{display:block;padding:8px 10px;margin:1.3em 0 .5em;border:2px dashed #F56640;border-radius:3px;font-size:18px;font-weight:700;color:#F56640}.imagify-rocket-cta-promo strong,a.btn-rocket{color:#F2F2F2}a.btn-rocket{display:block;font-size:15px;padding:10px 12px;margin:0 0 1.5em;background:#F56640;border-radius:3px;text-transform:uppercase;font-weight:700;text-decoration:none}a.btn-rocket:focus,a.btn-rocket:hover{background:#AC2B15}.imagify-sidebar-section ul{margin-top:20px}.imagify-sidebar-section li{position:relative;margin:1.2em 0;padding-left:25px;text-align:left}.imagify-sidebar-section li:before{content:"✓";position:absolute;left:0;top:0;color:#39CE9A;font-size:18px}label[for=imagify_admin_bar_menu],label[for=imagify_partner_links]{font-weight:400!important;color:#626E7B!important}.imagify-select-all-buttons{margin-top:8px}.imagify-link-like.imagify-select-all{font-weight:700;font-size:12px;color:#3694AE}.imagify-select-all.imagify-is-inactive{color:inherit;text-decoration:none;cursor:default}.imagify-fts-header{padding:10px 16px;background:#343A49;color:#FFF}.imagify-fts-header i{font-size:1.8em;margin-right:12px}.imagify-fts-header p{margin:0;color:#FFF}#imagify-add-themes-to-custom-folder strong,.imagify-fts-header strong{color:#40B1D0;font-weight:700}.imagify-fts-content{padding:16px;background:#F4F7F9;border:1px solid #CDD0D4;border-top:0}.imagify-fts-content p{margin-top:0}.imagify-kindof-title{margin-top:2em;padding:0 0 10px;border-bottom:1px solid #D2D3D6;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;font-weight:700}.imagify-settings .imagify-button-mini{padding:4px 13px 4px 10px}.imagify-settings .imagify-button-mini .dashicons-plus{vertical-align:-7.5px}.imagify-settings .imagify-button-mini.imagify-button-primary:focus,.imagify-settings .imagify-button-mini.imagify-button-primary:hover{color:#FFF}p.imagify-custom-folder-line{position:relative;margin:0;padding:12px 15px;color:#4A5362;font-weight:500;-webkit-transition:all .75s;-o-transition:all .75s;transition:all .75s}.imagify-custom-folder-line:first-child,.imagify-empty-folder{margin-top:-.5em}.imagify-custom-folder-line.imagify-will-remove{background:#C51162;color:#FFF;-webkit-transform:translateX(-120px);-ms-transform:translateX(-120px);transform:translateX(-120px);opacity:0}.imagify-custom-folder-line+.imagify-custom-folder-line{border-top:1px solid #E9EFF2}.imagify-custom-folders-remove{position:absolute;right:0;top:6px;border:0;padding:5px 10px 4px;-webkit-box-shadow:none;box-shadow:none;color:#7A8996;border-radius:16px;font-size:13px;line-height:18px;background:#FFF;-webkit-transition:all .275s;-o-transition:all .275s;transition:all .275s;cursor:pointer}.imagify-custom-folders-remove-text{max-width:0;overflow:hidden;white-space:nowrap;display:inline-block;-webkit-transform:scale(0);-ms-transform:scale(0);transform:scale(0);opacity:0;-webkit-transition:all .275s;-o-transition:all .275s;transition:all .275s}.imagify-custom-folders-remove:focus,.imagify-custom-folders-remove:hover{background:#D9EFF6;color:#225E6E}.imagify-custom-folders-remove:focus .imagify-custom-folders-remove-text,.imagify-custom-folders-remove:hover .imagify-custom-folders-remove-text{max-width:6em;-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1);opacity:1}.imagify-settings .progress{height:8px;margin-top:1em;background:#343A49}.imagify-settings .bar{position:relative;width:1px;height:8px;background:#46B1CE;-webkit-transition:width .5s;-o-transition:width .5s;transition:width .5s}.imagify-settings .percent{position:absolute;top:6px;right:0;padding:0 5px;line-height:1.85;font-size:14px;font-weight:700;color:#40B1D0}.dashicons.rotate{-webkit-animation:icon-rotate 2.6s infinite linear;animation:icon-rotate 2.6s infinite linear}@-webkit-keyframes icon-rotate{from{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes icon-rotate{from{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.imagify-add-custom-folder+.imagify-loader{display:none;vertical-align:middle}.imagify-add-custom-folder[disabled]+.imagify-loader{display:inline-block}.imagify-folders-information{position:relative;margin:-5px 0 20px;padding:10px 10px 10px 40px;text-align:left;background:#F2F2F2}.imagify-folders-information i{position:absolute;left:10px;top:50%;margin-top:-10px}.imagify-folders-tree{margin:0;text-align:left}.imagify-folders-tree li{clear:left}.imagify-folders-tree .imagify-folder{-webkit-box-sizing:border-box;box-sizing:border-box;position:relative;width:48px;z-index:2;float:left;margin-top:-3px;padding:0 8px 0 0;border:0;background:0 0!important;-webkit-box-shadow:none;box-shadow:none;cursor:pointer;-webkit-transition:all .275s;-o-transition:all .275s;transition:all .275s}.imagify-folders-tree span.imagify-folder{padding-left:1.5px}.imagify-folders-tree .imagify-folder:before{content:"+";display:inline-block;width:13px;height:21px;font-size:1.5em;vertical-align:.15em}.imagify-folders-tree span.imagify-folder:before{content:''}.imagify-folders-tree .imagify-folder-icon path{-webkit-transition:all .275s;-o-transition:all .275s;transition:all .275s}.imagify-folders-tree .imagify-is-open .imagify-folder-icon path{stroke:#7A8996}.imagify-folders-tree .imagify-is-open.imagify-folder:before{content:"-";color:#7A8996}.imagify-folders-tree .imagify-is-open~label{color:#7A8996}.imagify-folders-tree .imagify-folder .imagify-loader,.imagify-folders-tree .imagify-folder.imagify-loading:before{display:none}.imagify-folders-tree .imagify-folder.imagify-loading .imagify-loader{display:inline-block;width:13px;height:21px;font-size:1.5em;vertical-align:.15em}.imagify-folders-tree .imagify-folder.imagify-loading .imagify-loader img{display:inline-block;width:100%;height:auto;vertical-align:middle}.imagify-folders-tree button.imagify-folder:focus,.imagify-folders-tree button.imagify-folder:focus path,.imagify-folders-tree button.imagify-folder:hover,.imagify-folders-tree button.imagify-folder:hover path{color:#3694AE;stroke:#3694AE}.imagify-folders-tree .imagify-folder.disabled,.imagify-folders-tree .imagify-folder:disabled{color:#7f7f7f}.imagify-swal-content .imagify-folders-tree label{position:relative;display:block;width:100%;padding:3px 0;font-size:15px;font-weight:500;vertical-align:top;-webkit-transition:all .475s;-o-transition:all .475s;transition:all .475s}.imagify-folders-tree input:focus+label,.imagify-swal-content .imagify-folders-tree label:hover{background:#F4F7F9}.imagify-folders-tree .imagify-folder-already-selected input:focus+label,.imagify-folders-tree .imagify-folder-already-selected label,.imagify-folders-tree .imagify-folder-already-selected label:hover{background:#40B1D0;color:#FFF;border-radius:3px;cursor:default}.imagify-folders-tree .imagify-folder-already-selected button,.imagify-folders-tree .imagify-folder-already-selected button path{color:#FFF;stroke:#FFF;cursor:default}.imagify-folders-tree .imagify-folder-already-selected button:focus path,.imagify-folders-tree .imagify-folder-already-selected button:hover path{stroke:#FFF}.imagify-folders-tree .imagify-folder-already-selected button:before{content:''}.imagify-add-ed-folder{position:absolute;top:0;bottom:0;right:0;font-size:11px;text-transform:uppercase;letter-spacing:.02em;word-spacing:.02em;color:#3694AE;background:#F4F7F9;opacity:0;-webkit-transform:translateX(15px);-ms-transform:translateX(15px);transform:translateX(15px);-webkit-transition:all .275s;-o-transition:all .275s;transition:all .275s}.imagify-folder-already-selected .imagify-add-ed-folder,input:checked+label .imagify-add-ed-folder,input:focus+label .imagify-add-ed-folder,label:hover .imagify-add-ed-folder{opacity:1;-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0)}input:checked+label .imagify-add-ed-folder{background:#FFF}input:checked+label:hover .imagify-add-ed-folder,input:checked:focus+label .imagify-add-ed-folder{background:#F4F7F9}.imagify-folder-already-selected .imagify-add-ed-folder{background:#40B1D0;color:#FFF}.imagify-fake-checkbox{position:relative;display:inline-block;width:14px;height:14px;margin:3.5px 15px 0 5px;border:1.5px solid #3694AE;border-radius:3px;vertical-align:-4px}.imagify-fake-checkbox:after{position:absolute;left:1px;top:0;content:"✓";color:#3694AE;font-size:14px;line-height:.9;font-style:normal;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;opacity:0;-webkit-transform:scale(0);-ms-transform:scale(0);transform:scale(0);-webkit-transition:all .475s;-o-transition:all .475s;transition:all .475s}.imagify-folder-already-selected .imagify-fake-checkbox:after,input:checked+label .imagify-fake-checkbox:after{opacity:1;-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}.imagify-folder-already-selected .imagify-fake-checkbox{border-color:#40B1D0}.imagify-folder-already-selected .imagify-fake-checkbox:after{color:#FFF}.imagify-folders-sub-tree{position:relative;margin-left:.75em;padding-top:.6em;padding-left:1em;border-left:1px dotted rgba(98,110,123,.3)}.imagify-folders-sub-tree li{position:relative;margin-bottom:4px}.imagify-folders-sub-tree li:before{content:"";position:absolute;top:12px;left:-1em;height:1px;width:.9em;border-top:1px dotted rgba(98,110,123,.3)}.imagify-folders-sub-tree li:last-child:after{content:"";position:absolute;left:-1.1em;bottom:0;height:11px;width:3px;background:#FFF}.imagify-empty-folder em{font-size:12px;font-weight:500;color:#A2AFBC}@media (max-width:782px){.imagify-settings.imagify-have-rocket{margin-right:10px}.imagify-visual-label,label+.imagify-info{max-width:calc(100% - 65px);padding-right:0}.imagify-options-title{font-size:22px}.imagify-user-plan-label{margin-right:-5px}.imagify-col.imagify-main{width:100%;padding-right:10px}.imagify-col+.imagify-col{padding:0 10px 0 0}.imagify-no-api-key .imagify-api-line input[type=text]{margin-left:0}}@media (max-width:513px){.imagify-setting-optim-level .imagify-visual-comparison-text{margin-top:20px}}
|
assets/css/pricing-modal.css
CHANGED
@@ -1152,3 +1152,189 @@ p.imagify-modal-sidebar-title.imagify-modal-sidebar-title {
|
|
1152 |
float: right;
|
1153 |
font-weight: bold;
|
1154 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1152 |
float: right;
|
1153 |
font-weight: bold;
|
1154 |
}
|
1155 |
+
@media (max-width: 782px) {
|
1156 |
+
.imagify-payment-modal .imagify-modal-content{
|
1157 |
+
width: 90%;
|
1158 |
+
min-width: auto;
|
1159 |
+
-webkit-flex-direction: column;
|
1160 |
+
-ms-flex-direction: column;
|
1161 |
+
flex-direction: column;
|
1162 |
+
-webkit-box-direction: normal;
|
1163 |
+
-webkit-box-orient: vertical;
|
1164 |
+
-moz-box-direction: normal;
|
1165 |
+
-moz-box-orient: vertical;
|
1166 |
+
align-items: center;
|
1167 |
+
}
|
1168 |
+
.imagify-payment-modal .imagify-modal-main{
|
1169 |
+
width: 100%;
|
1170 |
+
}
|
1171 |
+
.imagify-payment-modal .imagify-modal-sidebar{
|
1172 |
+
width: 100%;
|
1173 |
+
|
1174 |
+
}
|
1175 |
+
.imagify-modal-section.section-gray{
|
1176 |
+
padding: 10px 10px 15px;
|
1177 |
+
}
|
1178 |
+
.imagify-modal-section{
|
1179 |
+
padding: 0 10px;
|
1180 |
+
}
|
1181 |
+
.imagify-submit-line{
|
1182 |
+
-webkit-flex-direction: column;
|
1183 |
+
-ms-flex-direction: column;
|
1184 |
+
flex-direction: column;
|
1185 |
+
-webkit-box-direction: normal;
|
1186 |
+
-webkit-box-orient: vertical;
|
1187 |
+
-moz-box-direction: normal;
|
1188 |
+
-moz-box-orient: vertical;
|
1189 |
+
align-items: center;
|
1190 |
+
}
|
1191 |
+
.imagify-coupon-section{
|
1192 |
+
-webkit-flex-direction: column;
|
1193 |
+
-ms-flex-direction: column;
|
1194 |
+
flex-direction: column;
|
1195 |
+
-webkit-box-direction: normal;
|
1196 |
+
-webkit-box-orient: vertical;
|
1197 |
+
-moz-box-direction: normal;
|
1198 |
+
-moz-box-orient: vertical;
|
1199 |
+
align-items: center;
|
1200 |
+
margin-bottom: 20px;
|
1201 |
+
}
|
1202 |
+
.imagify-coupon-section .imagify-coupon-text{
|
1203 |
+
text-align: center;
|
1204 |
+
width: 100%;
|
1205 |
+
padding: 0;
|
1206 |
+
margin-bottom: 20px;
|
1207 |
+
}
|
1208 |
+
|
1209 |
+
.imagify-modal-cols{
|
1210 |
+
-webkit-flex-direction: column;
|
1211 |
+
-ms-flex-direction: column;
|
1212 |
+
flex-direction: column;
|
1213 |
+
-webkit-box-direction: normal;
|
1214 |
+
-webkit-box-orient: vertical;
|
1215 |
+
-moz-box-direction: normal;
|
1216 |
+
-moz-box-orient: vertical;
|
1217 |
+
align-items: center;
|
1218 |
+
}
|
1219 |
+
.imagify-col{
|
1220 |
+
padding: 0;
|
1221 |
+
float: none;
|
1222 |
+
width: 100%;
|
1223 |
+
}
|
1224 |
+
.imagify-payment-modal .imagify-iconed{
|
1225 |
+
margin: 1.5em auto;
|
1226 |
+
max-width: 260px;
|
1227 |
+
}
|
1228 |
+
.imagify-offer-header{
|
1229 |
+
padding: 0;
|
1230 |
+
}
|
1231 |
+
.imagify-offer-header .imagify-inline-options input[type="radio"]:not(:checked) + label,
|
1232 |
+
.imagify-offer-header .imagify-inline-options input[type="radio"]:checked + label{
|
1233 |
+
padding: 7px 15px;
|
1234 |
+
}
|
1235 |
+
.imagify-offer-header .imagify-inline-options input[type="radio"]:checked + label{
|
1236 |
+
padding: 7px 15px;
|
1237 |
+
}
|
1238 |
+
.imagify-offer-header .imagify-offer-title.imagify-switch-my .imagify-monthly,
|
1239 |
+
.imagify-offer-header .imagify-offer-title.imagify-switch-my .imagify-yearly{
|
1240 |
+
padding: 10px 5px;
|
1241 |
+
font-size: 12px;
|
1242 |
+
}
|
1243 |
+
.imagify-offer-size{
|
1244 |
+
font-size: 18px;
|
1245 |
+
}
|
1246 |
+
.imagify-col-other-actions{
|
1247 |
+
padding: 10px;
|
1248 |
+
text-align: center;
|
1249 |
+
}
|
1250 |
+
.imagify-2-free{
|
1251 |
+
padding: 2px 5px;
|
1252 |
+
}
|
1253 |
+
.imagify-2-free.imagify-b-right {
|
1254 |
+
position: absolute;
|
1255 |
+
bottom: 100%;
|
1256 |
+
left: 0;
|
1257 |
+
right: 0;
|
1258 |
+
padding: 2px 5px;
|
1259 |
+
margin-bottom: 0px;
|
1260 |
+
margin-left: 0px;
|
1261 |
+
font-size: 0.8em;
|
1262 |
+
letter-spacing: 0;
|
1263 |
+
text-transform: none;
|
1264 |
+
text-align: center;
|
1265 |
+
color: #FFF;
|
1266 |
+
background: #10121A;
|
1267 |
+
border-radius: 2px;
|
1268 |
+
}
|
1269 |
+
.imagify-2-free.imagify-b-right:after{
|
1270 |
+
content: "";
|
1271 |
+
position: absolute;
|
1272 |
+
left: 50%;
|
1273 |
+
top: unset;
|
1274 |
+
bottom: -6px;
|
1275 |
+
margin-left: -3px;
|
1276 |
+
border-top: 3px solid #10121A;
|
1277 |
+
border-left: 3px solid transparent;
|
1278 |
+
border-right: 3px solid transparent;
|
1279 |
+
}
|
1280 |
+
div.imagify-col-price{
|
1281 |
+
-webkit-flex-direction: column;
|
1282 |
+
-ms-flex-direction: column;
|
1283 |
+
flex-direction: column;
|
1284 |
+
-webkit-box-direction: normal;
|
1285 |
+
-webkit-box-orient: vertical;
|
1286 |
+
-moz-box-direction: normal;
|
1287 |
+
-moz-box-orient: vertical;
|
1288 |
+
align-items: center;
|
1289 |
+
}
|
1290 |
+
.imagify-flex-table .imagify-price-complement{
|
1291 |
+
padding: 5px 0 0 0;
|
1292 |
+
margin: 0;
|
1293 |
+
text-align: center;
|
1294 |
+
}
|
1295 |
+
div.imagify-col-details{
|
1296 |
+
padding: 10px 0px 10px 10px;
|
1297 |
+
}
|
1298 |
+
.imagify-pricing-table .imagify-col-other-actions{
|
1299 |
+
padding: 0 10px 0 0;
|
1300 |
+
}
|
1301 |
+
.imagify-pricing-table .imagify-button-secondary{
|
1302 |
+
font-size: 12px;
|
1303 |
+
white-space: normal;
|
1304 |
+
line-height: 14px;
|
1305 |
+
padding: 10px;
|
1306 |
+
}
|
1307 |
+
.imagify-price-big{
|
1308 |
+
font-size: 24px;
|
1309 |
+
}
|
1310 |
+
span.imagify-price-mini{
|
1311 |
+
font-size: 12px;
|
1312 |
+
}
|
1313 |
+
.imagify-col-checkbox label{
|
1314 |
+
padding-left: 30px !important;
|
1315 |
+
}
|
1316 |
+
.medium.imagify-checkbox:not(:checked) + label:before,
|
1317 |
+
.medium.imagify-checkbox:checked + label:before{
|
1318 |
+
width: 15px;
|
1319 |
+
height: 15px;
|
1320 |
+
}
|
1321 |
+
div.imagify-col-checkbox{
|
1322 |
+
padding: 0;
|
1323 |
+
}
|
1324 |
+
.imagify-offer-monthly .imagify-flex-table .imagify-price-block,
|
1325 |
+
.imagify-offer-monthlies .imagify-price-block{
|
1326 |
+
padding: 0;
|
1327 |
+
}
|
1328 |
+
.imagify-pricing-table{
|
1329 |
+
margin: 0 .5em;
|
1330 |
+
}
|
1331 |
+
.imagify-payment-modal .close-btn{
|
1332 |
+
top: 5px;
|
1333 |
+
right: 5px;
|
1334 |
+
}
|
1335 |
+
.imagify-col-checkbox .imagify-checkbox.imagify-checkbox:not(:checked) + label:after,
|
1336 |
+
.imagify-col-checkbox .imagify-checkbox.imagify-checkbox:checked + label:after{
|
1337 |
+
top: -1px;
|
1338 |
+
left: 10px;
|
1339 |
+
}
|
1340 |
+
}
|
assets/css/pricing-modal.min.css
CHANGED
@@ -1 +1 @@
|
|
1 |
-
.imagify-border-styled,.imagify-flex-table,.imagify-modal-cols,.imagify-offer-header,.imagify-payment-modal .imagify-modal-content,.imagify-tabs{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.imagify-border-styled,.imagify-modal-cols{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.imagify-payment-modal{text-align:center;color:#7A8996}.imagify-payment-modal *{-webkit-box-sizing:border-box;box-sizing:border-box}.imagify-modal-loader{position:absolute;top:0;left:0;right:0;bottom:0;background:url(../images/loader-balls.svg) center no-repeat #fff;z-index:10}.imagify-payment-modal .imagify-modal-content{width:980px;max-width:100%;min-width:925px;padding:0}.imagify-modal-content.imagify-iframe-viewing{width:980px;height:672px;overflow:hidden}.imagify-iframe-viewing #imagify-payment-process-view{width:980px;height:668px}.imagify-payment-modal .imagify-modal-main{width:70%}.imagify-iframe-viewing .imagify-modal-main{width:auto}.imagify-payment-modal .imagify-modal-content.imagify-success-viewing{min-width:auto;width:450px;min-height:300px}.imagify-success-viewing .imagify-modal-main{width:100%}.imagify-payment-modal .imagify-modal-sidebar{width:30%;padding:15px 20px;background:#1F2332;color:#FFF}.imagify-modal-content.imagify-iframe-viewing .imagify-modal-sidebar,.imagify-modal-content.imagify-success-viewing .imagify-modal-sidebar{display:none}.imagify-modal-section{padding:0 25px}.imagify-modal-section.section-gray{margin:0 0 1em;padding:10px 25px 15px;background:#F6F7FB}.imagify-tabs-contents .section-gray{padding:8px 25px 10px}.imagify-modal-section .imagify-modal-title:first-child{margin-top:1em;margin-bottom:1.5em}.imagify-modal-section.section-gray .imagify-modal-title{margin-top:.5em;margin-bottom:.5em}.imagify-modal-title{font-size:1.8em}.imagify-modal-title .imagify-inner-sub-title{display:block;font-size:.56em}.imagify-analyzing .imagify-numbers-calc,.imagify-modal-section .imagify-loader,.imagify-modal-section.imagify-analyzing .imagify-modal-cols,.imagify-numbers-notcalc{display:none}.imagify-analyzing .imagify-numbers-notcalc,.imagify-modal-section.imagify-analyzing .imagify-loader{display:block}.imagify-modal-section .imagify-loader{margin:2em auto}.imagify-border-styled{width:200px;margin:0 auto;color:#8BC34A;font-weight:700;font-size:.925em}.imagify-big-number,.imagify-payment-modal strong{font-weight:700;color:#4A4A4A}.imagify-border-styled:after,.imagify-border-styled:before{content:"";height:1px;background:rgba(0,0,0,.1);-ms-flex-preferred-size:40px;flex-basis:40px}.imagify-border-styled:before{margin-right:5px}.imagify-border-styled:after{margin-left:5px}.imagify-big-number{font-size:3.7em;margin:-3px 0;line-height:1}.imagify-popin-message{padding:5px 15px;text-align:left}.imagify-popin-message.imagify-error p{color:#FFF}.imagify-small-options{width:300px;margin:1em auto .5em;background:#338EA6;border-radius:4px}.imagify-small-options input[type=radio]:checked+label,.imagify-small-options input[type=radio]:not(:checked)+label{padding:8px 10px;font-size:13px;color:#FFF;-webkit-box-shadow:none;box-shadow:none;border-left:0}.imagify-small-options input[type=radio]:not(:checked)+label{background:#338EA6;color:rgba(255,255,255,.4)}.imagify-small-options input[type=radio]:checked+label{background:#40B1D0}.imagify-cols:after{content:"";display:table;clear:both}.js .imagify-iframe-viewing .close-btn{display:none}.imagify-modal .imagify-cols{padding:0 20px}.imagify-payment-modal .imagify-iconed{margin:1.5em 5em 1.5em 0}.imagify-iconed{position:relative;text-align:left;padding-left:42px;margin-right:15px;font-weight:500}.imagify-iconed .dashicons,.imagify-iconed .icon{position:absolute;font-size:2em;left:0;top:2px;color:#40B1D0}.imagify-payment-modal .close-btn{top:10px;right:10px;width:24px;height:24px;padding:2px 0 0 4.5px;color:#FFF;background:#40B1D0;border-radius:50%;-webkit-transition:all .275s;-o-transition:all .275s;transition:all .275s}.imagify-payment-modal .close-btn i{margin-left:-3.5px;margin-top:-.5px}.imagify-payment-modal .close-btn:hover{background:#F6F7FB}.imagify-offer-line{margin-top:1.5em}.imagify-offer-line+.imagify-offer-line{margin-top:.75em}.imagify-offer-header{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:0 0 0 15px;border-radius:4px 4px 0 0;-webkit-transition:all .275s;-o-transition:all .275s;transition:all .275s}.imagify-offer-header.imagify-offer-header.imagify-offer-header .imagify-inline-options label:last-child{border-radius:0 4px 0 0}.imagify-offer-header .imagify-inline-options{width:auto}.imagify-offer-title{font-weight:700;margin:0}.imagify-offer-header,.imagify-offer-header .imagify-inline-options input[type=radio]:not(:checked)+label{background:#E5EBEF}.imagify-offer-onetime .imagify-offer-header{padding-top:8px;padding-bottom:8px}.imagify-offer-onetimes>div{padding-top:15px;padding-bottom:15px}.imagify-offer-header .imagify-inline-options input[type=radio]:checked+label,.imagify-offer-header .imagify-inline-options input[type=radio]:not(:checked)+label{position:relative;padding:7px 30px;font-size:1em;letter-spacing:.05em;color:inherit;-webkit-box-shadow:0 0 0;box-shadow:0 0 0;border-radius:0}.imagify-offer-header .imagify-inline-options input[type=radio]:checked+label{background:#F6F7FB}.imagify-2-free{position:absolute;bottom:100%;left:0;right:0;padding:2px 10px;margin-bottom:8px;font-size:.8em;letter-spacing:0;text-transform:none;text-align:center;color:#FFF;background:#10121A;border-radius:2px}.imagify-2-free:after{content:"";position:absolute;left:50%;bottom:-3px;margin-left:-3px;border-top:3px solid #10121A;border-left:3px solid transparent;border-right:3px solid transparent}.imagify-2-free.imagify-b-right{bottom:auto;left:100%;right:-100%;margin-bottom:0;margin-left:8px}.imagify-2-free.imagify-b-right:after{left:-3px;bottom:auto;top:50%;margin-top:-3px;margin-left:0;border-right:3px solid #10121A;border-top:3px solid transparent;border-bottom:3px solid transparent;border-left:0}.imagify-2-free.imagify-b-bottom{bottom:-100%;left:0;right:0;margin-top:8px}.imagify-2-free.imagify-b-bottom:after{top:-3px;bottom:auto;border-bottom:3px solid #10121A;border-left:3px solid transparent;border-right:3px solid transparent;border-top:0}.imagify-offer-content{text-align:left;background:#F6F7FB;border-radius:0 0 4px 4px;-webkit-transition:all .275s;-o-transition:all .275s;transition:all .275s}.imagify-offer-onetime .imagify-offer-content{padding:10px 0}div.imagify-col-checkbox{position:relative;width:25.5%;padding-top:10px;padding-bottom:7px}.imagify-col-checkbox label{display:block;padding-left:55px!important}.imagify-col-checkbox .imagify-checkbox.imagify-checkbox:checked,.imagify-col-checkbox .imagify-checkbox.imagify-checkbox:not(:checked){position:absolute;top:50%;left:6px;margin:-8px 0 0}.imagify-col-checkbox .imagify-checkbox.imagify-checkbox:checked+label:before,.imagify-col-checkbox .imagify-checkbox.imagify-checkbox:not(:checked)+label:before{margin:0;top:-2px;left:6px;-webkit-transition:all .275s;-o-transition:all .275s;transition:all .275s}.imagify-offer-by,.imagify-offer-size{-webkit-transition:all .275s;-o-transition:all .275s}.imagify-col-checkbox .imagify-checkbox.imagify-checkbox:checked+label:after,.imagify-col-checkbox .imagify-checkbox.imagify-checkbox:not(:checked)+label:after{top:1px;left:13px}.imagify-offer-size{font-size:30px;color:#2E3243;font-weight:700;transition:all .275s}.imagify-offer-by{font-size:10px;transition:all .275s}.imagify-approx{display:none;font-size:11px;line-height:1.2;-webkit-transition:all .275s;-o-transition:all .275s;transition:all .275s}div.imagify-col-price{width:35%}.imagify-flex-table .imagify-price-block{padding-left:0;padding-right:0}.imagify-offer-monthlies .imagify-price-block,.imagify-offer-monthly .imagify-flex-table .imagify-price-block{padding-top:0}.imagify-flex-table .imagify-price-complement{padding-right:0;font-size:10px;font-weight:700}.imagify-price-block,.imagify-price-discount{white-space:nowrap}.imagify-price-block span,.imagify-price-discount span{display:inline-block;vertical-align:middle}.imagify-price-discount.imagify-price-discount{position:relative;-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;padding-top:15px;font-weight:700;width:70px}.imagify-price-discount:before{content:"";position:absolute;top:25px;width:62%;height:2px;background:#2E3243;-webkit-transform:rotate(-15deg);-ms-transform:rotate(-15deg);transform:rotate(-15deg)}.imagify-offer-onetimes .imagify-price-discount:before{width:100%}.imagify-price-discount-dollar{color:#2E3243}.imagify-price-discount-number{color:#8BA6B4}.imagify-offer-selected .imagify-price-discount-number{color:#FFF}span.imagify-dollars{color:#1F2332;font-size:18px;font-weight:700;vertical-align:-2px}.imagify-offer-onetime .imagify-col-price{padding-top:0}.imagify-offer-onetime .imagify-dollars{vertical-align:-1px}.imagify-price-big,.imagify-price-mini{color:#40B1D0;font-weight:700}.imagify-price-big{font-size:36px}span.imagify-price-mini{font-size:18px;vertical-align:2px}span.imagify-price-by{font-size:10px;color:#1F2332;vertical-align:-13px;text-indent:-27px}.imagify-offer-selected,.imagify-offer-selected .imagify-checkbox.imagify-checkbox:checked+label:after,.imagify-offer-selected .imagify-checkbox.imagify-checkbox:not(:checked)+label:after,.imagify-offer-selected .imagify-col-other-actions a,.imagify-offer-selected .imagify-offer-size,.imagify-offer-selected .imagify-offer-title,.imagify-offer-selected .imagify-price-big,.imagify-offer-selected .imagify-price-complement,.imagify-offer-selected .imagify-price-mini{color:#FFF}.imagify-col-other-actions{width:18.5%;text-align:right}.imagify-col-other-actions a{font-size:11px}.imagify-offer-selected .imagify-offer-header,.imagify-offer-selected .imagify-offer-header .imagify-inline-options input[type=radio]:not(:checked)+label{background:#338EA6}.imagify-offer-selected .imagify-offer-content,.imagify-offer-selected .imagify-offer-header .imagify-inline-options input[type=radio]:checked+label{background:#40B1D0}.imagify-offer-selected .imagify-checkbox.imagify-checkbox:checked+label:before,.imagify-offer-selected .imagify-checkbox.imagify-checkbox:not(:checked)+label:before{border-color:#FFF;background:#40B1D0}.imagify-offer-selected .imagify-offer-by{color:#2E3243}.imagify-enough-free .imagify-not-enough-title,.imagify-enough-title{display:none}.imagify-enough-free .imagify-enough-title{display:block}.imagify-submit-line{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin:2em 0;text-align:left}.imagify-coupon-section{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.imagify-coupon-section p{margin:0;line-height:1.3}.imagify-coupon-text{width:200px;max-width:100%;padding-right:15px}.imagify-coupon-loader{display:none}.imagify-coupon-text.checking{text-align:right}.imagify-coupon-text.checking .imagify-coupon-loader{display:inline}.imagify-coupon-text.checking label{display:none}.imagify-coupon-input{position:relative}.imagify-coupon-input input{position:relative;z-index:1}[id=imagify-coupon-validate].button-secondary{position:absolute;top:1px;right:3px;bottom:2px;-webkit-box-shadow:none;box-shadow:none;padding:4px 10px;z-index:0;-webkit-transition:-webkit-transform .275s;-o-transition:transform .275s;transition:transform .275s;transition:transform .275s,-webkit-transform .275s}.imagify-canbe-validate [id=imagify-coupon-validate]{-webkit-transform:translateX(45px);-ms-transform:translateX(45px);transform:translateX(45px)}.imagify-modal-section+.imagify-modal-promotion{margin-top:-1em}.imagify-modal-promotion{position:relative;overflow:hidden;display:none;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:15px 25px;background:#604D90;text-shadow:0 0 3px rgba(0,0,0,.3)}.imagify-modal-promotion.active{display:-webkit-box;display:-ms-flexbox;display:flex}[id=imagify-pricing-tab-onetime] .imagify-modal-promotion{margin-bottom:4em}.imagify-modal-promotion:before{content:"\f488";position:absolute;top:28px;left:8%;font-family:dashicons;font-size:90px;color:#8476A9;text-shadow:none}.imagify-modal-promotion p{position:relative;margin:.2em 0;color:#FFF}.imagify-promo-title{-ms-flex-preferred-size:100%;flex-basis:100%;text-transform:uppercase;font-size:20px;font-weight:700;letter-spacing:.125em}.imagify-until-date{-ms-flex-preferred-size:200px;flex-basis:200px;text-align:right}.imagify-until-date strong{color:#FFF}.imagify-submit-line button{font-size:16px}input.imagify-coupon-code{padding:10px;border:2px solid #7A8996;font-size:.875em;font-weight:700;border-radius:3px}.validated.imagify-coupon-section .imagify-coupon-text,.validated.imagify-coupon-section strong{color:#8BC34A}.validated.imagify-coupon-section .imagify-coupon-code{color:#8BC34A;border-color:#8BC34A}.invalid.imagify-coupon-section .imagify-coupon-text,.invalid.imagify-coupon-section strong{color:#d0021b}.invalid.imagify-coupon-section .imagify-coupon-code{color:#d0021b;border-color:#d0021b}.imagify-footer-lines{width:500px;max-width:100%;margin:2em auto 2.5em;font-size:.85em;line-height:1.5}.imagify-year-selected .imagify-switch-my .imagify-yearly{display:block}.imagify-month-selected .imagify-switch-my .imagify-yearly,.imagify-year-selected .imagify-switch-my .imagify-monthly{display:none}.imagify-month-selected .imagify-switch-my .imagify-monthly{display:block}.imagify-flex-table{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.imagify-flex-table>*{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;padding:7px 15px}div.imagify-col-details{width:22%;padding-left:25px}.imagify-col-details p{margin:0}.imagify-pricing-table{margin:0 20px}.imagify-pricing-table .imagify-offer-line{padding:.6em 0;border:2px solid #E8EEF0;text-align:left;border-radius:3px}.imagify-pricing-table .imagify-offer-line:first-child{margin-top:.75em}.imagify-pricing-table .imagify-offer-line.imagify-offer-selected:first-child{margin-top:1.75em}.imagify-pricing-table .imagify-offer-line+.imagify-offer-line{margin-top:-2px}.imagify-pricing-table .imagify-col-other-actions{width:20.5%}.imagify-pricing-table .imagify-approx{margin-left:0;line-height:.5;margin-bottom:1em}.imagify-pricing-table .imagify-offer-selected{-webkit-transform:scale(1.03);-ms-transform:scale(1.03);transform:scale(1.03);background:#40B1D0;border-width:0}.imagify-pricing-table .imagify-offer-selected .imagify-approx{color:#FFF}.imagify-pricing-table .imagify-button-secondary{padding:3px 20px;-webkit-box-shadow:none;box-shadow:none;text-transform:uppercase;font-size:12px;letter-spacing:.025em}.imagify-offer-selected.imagify-offer-selected .imagify-button-secondary{border:2px solid #FFF;background:#40B1D0;-webkit-box-shadow:none;box-shadow:none;text-shadow:none!important}.imagify-offer-selected.imagify-offer-selected .imagify-button-secondary:focus,.imagify-offer-selected.imagify-offer-selected .imagify-button-secondary:hover{background:#FFF;color:#40B1D0}.imagify-col .imagify-special-needs{margin-left:25px}.imagify-special-needs strong{font-size:25px;font-weight:700;color:#40B1D0}.imagify-special-needs span{display:block;font-size:12px;margin-top:-.5em}div.imagify-col-price{position:relative}.imagify-recommend{display:none;position:absolute;left:-20px;bottom:100%;padding:0;margin-bottom:8px;color:#1F2332;font-weight:700;font-style:italic}.imagify-offer-selected .imagify-recommend,.imagify-tab a,.imagify-tab-content.imagify-current{display:block}[class*=imagify-onetime-] .imagify-recommend{left:65px;margin-bottom:20px}.imagify-recommend:before{content:"";position:absolute;top:7px;left:-35px;width:29px;height:30px;background:url(../images/icon-arrow-choice.png) 0 no-repeat;background-size:contain}@media only screen and (-webkit-min-device-pixel-ratio:2),only screen and (-o-min-device-pixel-ratio:2/1),only screen and (min-resolution:192dpi),only screen and (min-resolution:2dppx){.imagify-recommend:before{background-image:url(../images/icon-arrow-choice.svg)}}.imagify-offer-line[class*=imagify-onetime-]{padding:0;margin:.3em 0 0}.imagify-offer-line.imagify-offer-line[class*=imagify-onetime-]:first-child{margin-top:2em}.imagify-offer-line[class*=imagify-onetime-]+.imagify-offer-line{margin-top:.5em}.imagify-offer-selected.imagify-offer-line[class*=imagify-onetime-]{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1);border-width:2px}.imagify-offer-line[class*=imagify-onetime-] .imagify-col-details{position:relative;overflow:hidden;width:21%;background:#1F2332;color:#FFF}.imagify-offer-selected.imagify-offer-line[class*=imagify-onetime-] .imagify-col-details{background:#338EA6}.imagify-offer-line[class*=imagify-onetime-] .imagify-col-details:before{content:"";position:absolute;bottom:0;right:25px;width:75px;height:54px;background:url(../images/icon-pack.png)}.imagify-offer-line[class*=imagify-onetime-] .imagify-col-other-actions{width:30%}.imagify-offer-line[class*=imagify-onetime-] .imagify-approx,.imagify-offer-line[class*=imagify-onetime-] .imagify-offer-size{color:#FFF}.imagify-offer-line[class*=imagify-onetime-] .imagify-offer-size{font-size:24px}.imagify-offer-line[class*=imagify-onetime-] .imagify-approx{font-size:12px}.imagify-offer-line[class*=imagify-onetime-] .imagify-price-block{padding-left:10px}.imagify-offer-line[class*=imagify-onetime-] .imagify-dollars{vertical-align:middle}.imagify-offer-line[class*=imagify-onetime-] .imagify-price-big{vertical-align:-5px}.imagify-offer-line[class*=imagify-onetime-] .imagify-price-mini{vertical-align:7px}.imagify-tabs{margin-bottom:0;list-style:none;background:#E5EBEF}.imagify-modal-content .imagify-tabs{margin:1em 0 0}.imagify-tab{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;width:50%;margin:0;font-size:23px}.imagify-tab a{padding:15px 10px;color:inherit;text-decoration:none}.imagify-tab a:focus{-webkit-box-shadow:none;box-shadow:none;outline:0;color:#40B1D8}.imagify-tab.imagify-current a{background:#F6F7FB}.imagify-tab-content{display:none}.imagify-tab-content .imagify-modal-section:first-child{margin-top:0}.imagify-modal-sidebar-content,.imagify-payment-modal .imagify-modal-sidebar{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.imagify-modal-sidebar-content{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}p.imagify-modal-sidebar-title.imagify-modal-sidebar-title{margin-top:5px;padding-right:40px;font-size:18px;color:#FFF}.imagify-modal-testimony{margin-top:1em}.imagify-modal-testimony+.imagify-modal-testimony{margin-top:2em}@media (max-height:620px){.imagify-modal-testimony+.imagify-modal-testimony{display:none}}.imagify-modal-testimony-person{display:table;width:100%}.imagify-modal-testimony-person>*{display:table-cell;vertical-align:middle}.imagify-modal-avatar{width:114px;line-height:0}.imagify-modal-avatar img{border:2px solid #FFF;border-radius:50%;width:96px;height:96px}.imagify-modal-identity a{text-decoration:none;font-weight:700}.imagify-modal-identity a:first-child{font-size:13px}.imagify-modal-identity a:first-child+a{display:block;font-size:10px;color:#7A8996}.imagify-modal-testimony-content.imagify-modal-testimony-content p{font-size:13px;font-style:italic;line-height:1.7;color:#7A8996}.imagify-modal-sidebar-trust{margin-top:auto;padding-top:1.5em}.imagify-modal-sidebar-trust p{margin:0;font-weight:700;font-size:12px;line-height:1.7}.imagify-modal-sidebar-trust p img{margin-right:3px;vertical-align:-2px}.imagify-modal-sidebar-trust p+p{font-size:11px}.imagify-cart{text-align:left}.imagify-cart .imagify-cart-list{border-top:1px solid rgba(122,137,150,.2);border-bottom:1px solid rgba(122,137,150,.2)}.imagify-cart .imagify-cart-label{margin-bottom:.5em;font-size:10px;color:#2E3243}.imagify-cart-list p{margin:0;font-weight:700}.imagify-cart-item{margin:.4em 0}.imagify-cart .imagify-cart-suggestion{margin-top:-.3em}.imagify-cart-suggestion a,.imagify-cl-description p{font-size:10px}.imagify-remove-from-cart{border:0;padding:0;width:14px;height:14px;line-height:13px;border-radius:50%;background:#40B1D0;cursor:pointer;-webkit-transition:background .3s;-o-transition:background .3s;transition:background .3s}.imagify-remove-from-cart i:before{position:relative;top:-6px;left:-3px;font-size:13px;color:#FFF}.imagify-remove-from-cart:focus,.imagify-remove-from-cart:hover{background:#D0021B}.imagify-cart .imagify-cl-remove{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;width:45px}.imagify-cart .imagify-cl-name{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;width:200px}.imagify-cart .imagify-cl-description{-webkit-align-self:flex-start;-ms-flex-item-align:start;align-self:flex-start;padding-top:10px}.imagify-cart .imagify-cl-price{text-align:right}#imagify-payment-iframe{width:980px;height:672px;background:url(../images/loader-balls.svg) 50% 50% no-repeat #f6f7fb}.imagify-success-view{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;height:100%}.imagify-success-view p{font-weight:700;font-size:16px}.imagify-cart-emptied-item{margin:.3em auto;padding:6px 20px;background:#E6EBEF;border-radius:20px}.imagify-cart-emptied-item.imagify-cart-emptied-item p{font-weight:700}.imagify-cart-emptied-item a{color:#40b1d0;float:right;font-weight:700}
|
1 |
+
.imagify-border-styled,.imagify-flex-table,.imagify-modal-cols,.imagify-offer-header,.imagify-payment-modal .imagify-modal-content,.imagify-tabs{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.imagify-border-styled,.imagify-modal-cols{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.imagify-payment-modal{text-align:center;color:#7A8996}.imagify-payment-modal *{-webkit-box-sizing:border-box;box-sizing:border-box}.imagify-modal-loader{position:absolute;top:0;left:0;right:0;bottom:0;background:url(../images/loader-balls.svg) center no-repeat #fff;z-index:10}.imagify-payment-modal .imagify-modal-content{width:980px;max-width:100%;min-width:925px;padding:0}.imagify-modal-content.imagify-iframe-viewing{width:980px;height:672px;overflow:hidden}.imagify-iframe-viewing #imagify-payment-process-view{width:980px;height:668px}.imagify-payment-modal .imagify-modal-main{width:70%}.imagify-iframe-viewing .imagify-modal-main{width:auto}.imagify-payment-modal .imagify-modal-content.imagify-success-viewing{min-width:auto;width:450px;min-height:300px}.imagify-success-viewing .imagify-modal-main{width:100%}.imagify-payment-modal .imagify-modal-sidebar{width:30%;padding:15px 20px;background:#1F2332;color:#FFF}.imagify-modal-content.imagify-iframe-viewing .imagify-modal-sidebar,.imagify-modal-content.imagify-success-viewing .imagify-modal-sidebar{display:none}.imagify-modal-section{padding:0 25px}.imagify-modal-section.section-gray{margin:0 0 1em;padding:10px 25px 15px;background:#F6F7FB}.imagify-tabs-contents .section-gray{padding:8px 25px 10px}.imagify-modal-section .imagify-modal-title:first-child{margin-top:1em;margin-bottom:1.5em}.imagify-modal-section.section-gray .imagify-modal-title{margin-top:.5em;margin-bottom:.5em}.imagify-modal-title{font-size:1.8em}.imagify-modal-title .imagify-inner-sub-title{display:block;font-size:.56em}.imagify-analyzing .imagify-numbers-calc,.imagify-modal-section .imagify-loader,.imagify-modal-section.imagify-analyzing .imagify-modal-cols,.imagify-numbers-notcalc{display:none}.imagify-analyzing .imagify-numbers-notcalc,.imagify-modal-section.imagify-analyzing .imagify-loader{display:block}.imagify-modal-section .imagify-loader{margin:2em auto}.imagify-border-styled{width:200px;margin:0 auto;color:#8BC34A;font-weight:700;font-size:.925em}.imagify-big-number,.imagify-payment-modal strong{font-weight:700;color:#4A4A4A}.imagify-border-styled:after,.imagify-border-styled:before{content:"";height:1px;background:rgba(0,0,0,.1);-ms-flex-preferred-size:40px;flex-basis:40px}.imagify-border-styled:before{margin-right:5px}.imagify-border-styled:after{margin-left:5px}.imagify-big-number{font-size:3.7em;margin:-3px 0;line-height:1}.imagify-popin-message{padding:5px 15px;text-align:left}.imagify-popin-message.imagify-error p{color:#FFF}.imagify-small-options{width:300px;margin:1em auto .5em;background:#338EA6;border-radius:4px}.imagify-small-options input[type=radio]:checked+label,.imagify-small-options input[type=radio]:not(:checked)+label{padding:8px 10px;font-size:13px;color:#FFF;-webkit-box-shadow:none;box-shadow:none;border-left:0}.imagify-small-options input[type=radio]:not(:checked)+label{background:#338EA6;color:rgba(255,255,255,.4)}.imagify-small-options input[type=radio]:checked+label{background:#40B1D0}.imagify-cols:after{content:"";display:table;clear:both}.js .imagify-iframe-viewing .close-btn{display:none}.imagify-modal .imagify-cols{padding:0 20px}.imagify-payment-modal .imagify-iconed{margin:1.5em 5em 1.5em 0}.imagify-iconed{position:relative;text-align:left;padding-left:42px;margin-right:15px;font-weight:500}.imagify-iconed .dashicons,.imagify-iconed .icon{position:absolute;font-size:2em;left:0;top:2px;color:#40B1D0}.imagify-payment-modal .close-btn{top:10px;right:10px;width:24px;height:24px;padding:2px 0 0 4.5px;color:#FFF;background:#40B1D0;border-radius:50%;-webkit-transition:all .275s;-o-transition:all .275s;transition:all .275s}.imagify-payment-modal .close-btn i{margin-left:-3.5px;margin-top:-.5px}.imagify-payment-modal .close-btn:hover{background:#F6F7FB}.imagify-offer-line{margin-top:1.5em}.imagify-offer-line+.imagify-offer-line{margin-top:.75em}.imagify-offer-header{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:0 0 0 15px;border-radius:4px 4px 0 0;-webkit-transition:all .275s;-o-transition:all .275s;transition:all .275s}.imagify-offer-header.imagify-offer-header.imagify-offer-header .imagify-inline-options label:last-child{border-radius:0 4px 0 0}.imagify-offer-header .imagify-inline-options{width:auto}.imagify-offer-title{font-weight:700;margin:0}.imagify-offer-header,.imagify-offer-header .imagify-inline-options input[type=radio]:not(:checked)+label{background:#E5EBEF}.imagify-offer-onetime .imagify-offer-header{padding-top:8px;padding-bottom:8px}.imagify-offer-onetimes>div{padding-top:15px;padding-bottom:15px}.imagify-offer-header .imagify-inline-options input[type=radio]:checked+label,.imagify-offer-header .imagify-inline-options input[type=radio]:not(:checked)+label{position:relative;padding:7px 30px;font-size:1em;letter-spacing:.05em;color:inherit;-webkit-box-shadow:0 0 0;box-shadow:0 0 0;border-radius:0}.imagify-offer-header .imagify-inline-options input[type=radio]:checked+label{background:#F6F7FB}.imagify-2-free{position:absolute;bottom:100%;left:0;right:0;padding:2px 10px;margin-bottom:8px;font-size:.8em;letter-spacing:0;text-transform:none;text-align:center;color:#FFF;background:#10121A;border-radius:2px}.imagify-2-free:after{content:"";position:absolute;left:50%;bottom:-3px;margin-left:-3px;border-top:3px solid #10121A;border-left:3px solid transparent;border-right:3px solid transparent}.imagify-2-free.imagify-b-right{bottom:auto;left:100%;right:-100%;margin-bottom:0;margin-left:8px}.imagify-2-free.imagify-b-right:after{left:-3px;bottom:auto;top:50%;margin-top:-3px;margin-left:0;border-right:3px solid #10121A;border-top:3px solid transparent;border-bottom:3px solid transparent;border-left:0}.imagify-2-free.imagify-b-bottom{bottom:-100%;left:0;right:0;margin-top:8px}.imagify-2-free.imagify-b-bottom:after{top:-3px;bottom:auto;border-bottom:3px solid #10121A;border-left:3px solid transparent;border-right:3px solid transparent;border-top:0}.imagify-offer-content{text-align:left;background:#F6F7FB;border-radius:0 0 4px 4px;-webkit-transition:all .275s;-o-transition:all .275s;transition:all .275s}.imagify-offer-onetime .imagify-offer-content{padding:10px 0}div.imagify-col-checkbox{position:relative;width:25.5%;padding-top:10px;padding-bottom:7px}.imagify-col-checkbox label{display:block;padding-left:55px!important}.imagify-col-checkbox .imagify-checkbox.imagify-checkbox:checked,.imagify-col-checkbox .imagify-checkbox.imagify-checkbox:not(:checked){position:absolute;top:50%;left:6px;margin:-8px 0 0}.imagify-col-checkbox .imagify-checkbox.imagify-checkbox:checked+label:before,.imagify-col-checkbox .imagify-checkbox.imagify-checkbox:not(:checked)+label:before{margin:0;top:-2px;left:6px;-webkit-transition:all .275s;-o-transition:all .275s;transition:all .275s}.imagify-offer-by,.imagify-offer-size{-webkit-transition:all .275s;-o-transition:all .275s}.imagify-col-checkbox .imagify-checkbox.imagify-checkbox:checked+label:after,.imagify-col-checkbox .imagify-checkbox.imagify-checkbox:not(:checked)+label:after{top:1px;left:13px}.imagify-offer-size{font-size:30px;color:#2E3243;font-weight:700;transition:all .275s}.imagify-offer-by{font-size:10px;transition:all .275s}.imagify-approx{display:none;font-size:11px;line-height:1.2;-webkit-transition:all .275s;-o-transition:all .275s;transition:all .275s}div.imagify-col-price{width:35%}.imagify-flex-table .imagify-price-block{padding-left:0;padding-right:0}.imagify-offer-monthlies .imagify-price-block,.imagify-offer-monthly .imagify-flex-table .imagify-price-block{padding-top:0}.imagify-flex-table .imagify-price-complement{padding-right:0;font-size:10px;font-weight:700}.imagify-price-block,.imagify-price-discount{white-space:nowrap}.imagify-price-block span,.imagify-price-discount span{display:inline-block;vertical-align:middle}.imagify-price-discount.imagify-price-discount{position:relative;-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;padding-top:15px;font-weight:700;width:70px}.imagify-price-discount:before{content:"";position:absolute;top:25px;width:62%;height:2px;background:#2E3243;-webkit-transform:rotate(-15deg);-ms-transform:rotate(-15deg);transform:rotate(-15deg)}.imagify-offer-onetimes .imagify-price-discount:before{width:100%}.imagify-price-discount-dollar{color:#2E3243}.imagify-price-discount-number{color:#8BA6B4}.imagify-offer-selected .imagify-price-discount-number{color:#FFF}span.imagify-dollars{color:#1F2332;font-size:18px;font-weight:700;vertical-align:-2px}.imagify-offer-onetime .imagify-col-price{padding-top:0}.imagify-offer-onetime .imagify-dollars{vertical-align:-1px}.imagify-price-big,.imagify-price-mini{color:#40B1D0;font-weight:700}.imagify-price-big{font-size:36px}span.imagify-price-mini{font-size:18px;vertical-align:2px}span.imagify-price-by{font-size:10px;color:#1F2332;vertical-align:-13px;text-indent:-27px}.imagify-offer-selected,.imagify-offer-selected .imagify-checkbox.imagify-checkbox:checked+label:after,.imagify-offer-selected .imagify-checkbox.imagify-checkbox:not(:checked)+label:after,.imagify-offer-selected .imagify-col-other-actions a,.imagify-offer-selected .imagify-offer-size,.imagify-offer-selected .imagify-offer-title,.imagify-offer-selected .imagify-price-big,.imagify-offer-selected .imagify-price-complement,.imagify-offer-selected .imagify-price-mini{color:#FFF}.imagify-col-other-actions{width:18.5%;text-align:right}.imagify-col-other-actions a{font-size:11px}.imagify-offer-selected .imagify-offer-header,.imagify-offer-selected .imagify-offer-header .imagify-inline-options input[type=radio]:not(:checked)+label{background:#338EA6}.imagify-offer-selected .imagify-offer-content,.imagify-offer-selected .imagify-offer-header .imagify-inline-options input[type=radio]:checked+label{background:#40B1D0}.imagify-offer-selected .imagify-checkbox.imagify-checkbox:checked+label:before,.imagify-offer-selected .imagify-checkbox.imagify-checkbox:not(:checked)+label:before{border-color:#FFF;background:#40B1D0}.imagify-offer-selected .imagify-offer-by{color:#2E3243}.imagify-enough-free .imagify-not-enough-title,.imagify-enough-title{display:none}.imagify-enough-free .imagify-enough-title{display:block}.imagify-submit-line{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin:2em 0;text-align:left}.imagify-coupon-section{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.imagify-coupon-section p{margin:0;line-height:1.3}.imagify-coupon-text{width:200px;max-width:100%;padding-right:15px}.imagify-coupon-loader{display:none}.imagify-coupon-text.checking{text-align:right}.imagify-coupon-text.checking .imagify-coupon-loader{display:inline}.imagify-coupon-text.checking label{display:none}.imagify-coupon-input{position:relative}.imagify-coupon-input input{position:relative;z-index:1}[id=imagify-coupon-validate].button-secondary{position:absolute;top:1px;right:3px;bottom:2px;-webkit-box-shadow:none;box-shadow:none;padding:4px 10px;z-index:0;-webkit-transition:-webkit-transform .275s;-o-transition:transform .275s;transition:transform .275s;transition:transform .275s,-webkit-transform .275s}.imagify-canbe-validate [id=imagify-coupon-validate]{-webkit-transform:translateX(45px);-ms-transform:translateX(45px);transform:translateX(45px)}.imagify-modal-section+.imagify-modal-promotion{margin-top:-1em}.imagify-modal-promotion{position:relative;overflow:hidden;display:none;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:15px 25px;background:#604D90;text-shadow:0 0 3px rgba(0,0,0,.3)}.imagify-modal-promotion.active{display:-webkit-box;display:-ms-flexbox;display:flex}[id=imagify-pricing-tab-onetime] .imagify-modal-promotion{margin-bottom:4em}.imagify-modal-promotion:before{content:"\f488";position:absolute;top:28px;left:8%;font-family:dashicons;font-size:90px;color:#8476A9;text-shadow:none}.imagify-modal-promotion p{position:relative;margin:.2em 0;color:#FFF}.imagify-promo-title{-ms-flex-preferred-size:100%;flex-basis:100%;text-transform:uppercase;font-size:20px;font-weight:700;letter-spacing:.125em}.imagify-until-date{-ms-flex-preferred-size:200px;flex-basis:200px;text-align:right}.imagify-until-date strong{color:#FFF}.imagify-submit-line button{font-size:16px}input.imagify-coupon-code{padding:10px;border:2px solid #7A8996;font-size:.875em;font-weight:700;border-radius:3px}.validated.imagify-coupon-section .imagify-coupon-text,.validated.imagify-coupon-section strong{color:#8BC34A}.validated.imagify-coupon-section .imagify-coupon-code{color:#8BC34A;border-color:#8BC34A}.invalid.imagify-coupon-section .imagify-coupon-text,.invalid.imagify-coupon-section strong{color:#d0021b}.invalid.imagify-coupon-section .imagify-coupon-code{color:#d0021b;border-color:#d0021b}.imagify-footer-lines{width:500px;max-width:100%;margin:2em auto 2.5em;font-size:.85em;line-height:1.5}.imagify-year-selected .imagify-switch-my .imagify-yearly{display:block}.imagify-month-selected .imagify-switch-my .imagify-yearly,.imagify-year-selected .imagify-switch-my .imagify-monthly{display:none}.imagify-month-selected .imagify-switch-my .imagify-monthly{display:block}.imagify-flex-table{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.imagify-flex-table>*{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;padding:7px 15px}div.imagify-col-details{width:22%;padding-left:25px}.imagify-col-details p{margin:0}.imagify-pricing-table{margin:0 20px}.imagify-pricing-table .imagify-offer-line{padding:.6em 0;border:2px solid #E8EEF0;text-align:left;border-radius:3px}.imagify-pricing-table .imagify-offer-line:first-child{margin-top:.75em}.imagify-pricing-table .imagify-offer-line.imagify-offer-selected:first-child{margin-top:1.75em}.imagify-pricing-table .imagify-offer-line+.imagify-offer-line{margin-top:-2px}.imagify-pricing-table .imagify-col-other-actions{width:20.5%}.imagify-pricing-table .imagify-approx{margin-left:0;line-height:.5;margin-bottom:1em}.imagify-pricing-table .imagify-offer-selected{-webkit-transform:scale(1.03);-ms-transform:scale(1.03);transform:scale(1.03);background:#40B1D0;border-width:0}.imagify-pricing-table .imagify-offer-selected .imagify-approx{color:#FFF}.imagify-pricing-table .imagify-button-secondary{padding:3px 20px;-webkit-box-shadow:none;box-shadow:none;text-transform:uppercase;font-size:12px;letter-spacing:.025em}.imagify-offer-selected.imagify-offer-selected .imagify-button-secondary{border:2px solid #FFF;background:#40B1D0;-webkit-box-shadow:none;box-shadow:none;text-shadow:none!important}.imagify-offer-selected.imagify-offer-selected .imagify-button-secondary:focus,.imagify-offer-selected.imagify-offer-selected .imagify-button-secondary:hover{background:#FFF;color:#40B1D0}.imagify-col .imagify-special-needs{margin-left:25px}.imagify-special-needs strong{font-size:25px;font-weight:700;color:#40B1D0}.imagify-special-needs span{display:block;font-size:12px;margin-top:-.5em}div.imagify-col-price{position:relative}.imagify-recommend{display:none;position:absolute;left:-20px;bottom:100%;padding:0;margin-bottom:8px;color:#1F2332;font-weight:700;font-style:italic}.imagify-offer-selected .imagify-recommend,.imagify-tab a,.imagify-tab-content.imagify-current{display:block}[class*=imagify-onetime-] .imagify-recommend{left:65px;margin-bottom:20px}.imagify-recommend:before{content:"";position:absolute;top:7px;left:-35px;width:29px;height:30px;background:url(../images/icon-arrow-choice.png) 0 no-repeat;background-size:contain}@media only screen and (-webkit-min-device-pixel-ratio:2),only screen and (-o-min-device-pixel-ratio:2/1),only screen and (min-resolution:192dpi),only screen and (min-resolution:2dppx){.imagify-recommend:before{background-image:url(../images/icon-arrow-choice.svg)}}.imagify-offer-line[class*=imagify-onetime-]{padding:0;margin:.3em 0 0}.imagify-offer-line.imagify-offer-line[class*=imagify-onetime-]:first-child{margin-top:2em}.imagify-offer-line[class*=imagify-onetime-]+.imagify-offer-line{margin-top:.5em}.imagify-offer-selected.imagify-offer-line[class*=imagify-onetime-]{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1);border-width:2px}.imagify-offer-line[class*=imagify-onetime-] .imagify-col-details{position:relative;overflow:hidden;width:21%;background:#1F2332;color:#FFF}.imagify-offer-selected.imagify-offer-line[class*=imagify-onetime-] .imagify-col-details{background:#338EA6}.imagify-offer-line[class*=imagify-onetime-] .imagify-col-details:before{content:"";position:absolute;bottom:0;right:25px;width:75px;height:54px;background:url(../images/icon-pack.png)}.imagify-offer-line[class*=imagify-onetime-] .imagify-col-other-actions{width:30%}.imagify-offer-line[class*=imagify-onetime-] .imagify-approx,.imagify-offer-line[class*=imagify-onetime-] .imagify-offer-size{color:#FFF}.imagify-offer-line[class*=imagify-onetime-] .imagify-offer-size{font-size:24px}.imagify-offer-line[class*=imagify-onetime-] .imagify-approx{font-size:12px}.imagify-offer-line[class*=imagify-onetime-] .imagify-price-block{padding-left:10px}.imagify-offer-line[class*=imagify-onetime-] .imagify-dollars{vertical-align:middle}.imagify-offer-line[class*=imagify-onetime-] .imagify-price-big{vertical-align:-5px}.imagify-offer-line[class*=imagify-onetime-] .imagify-price-mini{vertical-align:7px}.imagify-tabs{margin-bottom:0;list-style:none;background:#E5EBEF}.imagify-modal-content .imagify-tabs{margin:1em 0 0}.imagify-tab{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;width:50%;margin:0;font-size:23px}.imagify-tab a{padding:15px 10px;color:inherit;text-decoration:none}.imagify-tab a:focus{-webkit-box-shadow:none;box-shadow:none;outline:0;color:#40B1D8}.imagify-tab.imagify-current a{background:#F6F7FB}.imagify-tab-content{display:none}.imagify-tab-content .imagify-modal-section:first-child{margin-top:0}.imagify-modal-sidebar-content,.imagify-payment-modal .imagify-modal-sidebar{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.imagify-modal-sidebar-content{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}p.imagify-modal-sidebar-title.imagify-modal-sidebar-title{margin-top:5px;padding-right:40px;font-size:18px;color:#FFF}.imagify-modal-testimony{margin-top:1em}.imagify-modal-testimony+.imagify-modal-testimony{margin-top:2em}@media (max-height:620px){.imagify-modal-testimony+.imagify-modal-testimony{display:none}}.imagify-modal-testimony-person{display:table;width:100%}.imagify-modal-testimony-person>*{display:table-cell;vertical-align:middle}.imagify-modal-avatar{width:114px;line-height:0}.imagify-modal-avatar img{border:2px solid #FFF;border-radius:50%;width:96px;height:96px}.imagify-modal-identity a{text-decoration:none;font-weight:700}.imagify-modal-identity a:first-child{font-size:13px}.imagify-modal-identity a:first-child+a{display:block;font-size:10px;color:#7A8996}.imagify-modal-testimony-content.imagify-modal-testimony-content p{font-size:13px;font-style:italic;line-height:1.7;color:#7A8996}.imagify-modal-sidebar-trust{margin-top:auto;padding-top:1.5em}.imagify-modal-sidebar-trust p{margin:0;font-weight:700;font-size:12px;line-height:1.7}.imagify-modal-sidebar-trust p img{margin-right:3px;vertical-align:-2px}.imagify-modal-sidebar-trust p+p{font-size:11px}.imagify-cart{text-align:left}.imagify-cart .imagify-cart-list{border-top:1px solid rgba(122,137,150,.2);border-bottom:1px solid rgba(122,137,150,.2)}.imagify-cart .imagify-cart-label{margin-bottom:.5em;font-size:10px;color:#2E3243}.imagify-cart-list p{margin:0;font-weight:700}.imagify-cart-item{margin:.4em 0}.imagify-cart .imagify-cart-suggestion{margin-top:-.3em}.imagify-cart-suggestion a,.imagify-cl-description p{font-size:10px}.imagify-remove-from-cart{border:0;padding:0;width:14px;height:14px;line-height:13px;border-radius:50%;background:#40B1D0;cursor:pointer;-webkit-transition:background .3s;-o-transition:background .3s;transition:background .3s}.imagify-remove-from-cart i:before{position:relative;top:-6px;left:-3px;font-size:13px;color:#FFF}.imagify-remove-from-cart:focus,.imagify-remove-from-cart:hover{background:#D0021B}.imagify-cart .imagify-cl-remove{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;width:45px}.imagify-cart .imagify-cl-name{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;width:200px}.imagify-cart .imagify-cl-description{-webkit-align-self:flex-start;-ms-flex-item-align:start;align-self:flex-start;padding-top:10px}.imagify-cart .imagify-cl-price{text-align:right}#imagify-payment-iframe{width:980px;height:672px;background:url(../images/loader-balls.svg) 50% 50% no-repeat #f6f7fb}.imagify-success-view{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;height:100%}.imagify-success-view p{font-weight:700;font-size:16px}.imagify-cart-emptied-item{margin:.3em auto;padding:6px 20px;background:#E6EBEF;border-radius:20px}.imagify-cart-emptied-item.imagify-cart-emptied-item p{font-weight:700}.imagify-cart-emptied-item a{color:#40b1d0;float:right;font-weight:700}@media (max-width:782px){.imagify-payment-modal .imagify-modal-content,.imagify-submit-line{-ms-flex-direction:column;-webkit-box-direction:normal;-webkit-box-orient:vertical}.imagify-payment-modal .imagify-modal-content{width:90%;min-width:auto;flex-direction:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.imagify-payment-modal .imagify-modal-main,.imagify-payment-modal .imagify-modal-sidebar{width:100%}.imagify-modal-section.section-gray{padding:10px 10px 15px}.imagify-modal-section{padding:0 10px}.imagify-submit-line{flex-direction:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.imagify-coupon-section,.imagify-modal-cols{-ms-flex-direction:column;-webkit-box-direction:normal;-webkit-box-orient:vertical}.imagify-coupon-section{flex-direction:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-bottom:20px}.imagify-coupon-section .imagify-coupon-text{text-align:center;width:100%;padding:0;margin-bottom:20px}.imagify-modal-cols{flex-direction:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.imagify-col{padding:0;float:none;width:100%}.imagify-payment-modal .imagify-iconed{margin:1.5em auto;max-width:260px}.imagify-offer-header{padding:0}.imagify-offer-header .imagify-inline-options input[type=radio]:checked+label,.imagify-offer-header .imagify-inline-options input[type=radio]:not(:checked)+label{padding:7px 15px}.imagify-offer-header .imagify-offer-title.imagify-switch-my .imagify-monthly,.imagify-offer-header .imagify-offer-title.imagify-switch-my .imagify-yearly{padding:10px 5px;font-size:12px}.imagify-offer-size{font-size:18px}.imagify-col-other-actions{padding:10px;text-align:center}.imagify-2-free{padding:2px 5px}.imagify-2-free.imagify-b-right{position:absolute;bottom:100%;left:0;right:0;padding:2px 5px;margin-bottom:0;margin-left:0;font-size:.8em;letter-spacing:0;text-transform:none;text-align:center;color:#FFF;background:#10121A;border-radius:2px}.imagify-2-free.imagify-b-right:after{content:"";position:absolute;left:50%;top:unset;bottom:-6px;margin-left:-3px;border-top:3px solid #10121A;border-left:3px solid transparent;border-right:3px solid transparent}div.imagify-col-price{-ms-flex-direction:column;flex-direction:column;-webkit-box-direction:normal;-webkit-box-orient:vertical;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.imagify-flex-table .imagify-price-complement{padding:5px 0 0;margin:0;text-align:center}div.imagify-col-details{padding:10px 0 10px 10px}.imagify-pricing-table .imagify-col-other-actions{padding:0 10px 0 0}.imagify-pricing-table .imagify-button-secondary{font-size:12px;white-space:normal;line-height:14px;padding:10px}.imagify-price-big{font-size:24px}span.imagify-price-mini{font-size:12px}.imagify-col-checkbox label{padding-left:30px!important}.medium.imagify-checkbox:checked+label:before,.medium.imagify-checkbox:not(:checked)+label:before{width:15px;height:15px}.imagify-offer-monthlies .imagify-price-block,.imagify-offer-monthly .imagify-flex-table .imagify-price-block,div.imagify-col-checkbox{padding:0}.imagify-pricing-table{margin:0 .5em}.imagify-payment-modal .close-btn{top:5px;right:5px}.imagify-col-checkbox .imagify-checkbox.imagify-checkbox:checked+label:after,.imagify-col-checkbox .imagify-checkbox.imagify-checkbox:not(:checked)+label:after{top:-1px;left:10px}}
|
assets/js/admin.js
CHANGED
@@ -18,7 +18,7 @@ jQuery.extend( window.imagify, {
|
|
18 |
jQuery( target ).css( 'display', 'flex' ).hide().fadeIn( 400 ).attr( {
|
19 |
'aria-hidden': 'false',
|
20 |
'tabindex': '0'
|
21 |
-
} ).focus
|
22 |
|
23 |
jQuery( 'body' ).addClass( 'imagify-modal-is-open' );
|
24 |
},
|
@@ -84,7 +84,7 @@ jQuery.extend( window.imagify, {
|
|
84 |
var $modal = $( this ).closest( '.imagify-modal' );
|
85 |
|
86 |
if ( $modal.attr( 'aria-hidden' ) === 'false' ) {
|
87 |
-
$modal.attr( 'tabindex', '0' ).focus
|
88 |
}
|
89 |
} )
|
90 |
// On click on dropped layer of modal, close modal.
|
18 |
jQuery( target ).css( 'display', 'flex' ).hide().fadeIn( 400 ).attr( {
|
19 |
'aria-hidden': 'false',
|
20 |
'tabindex': '0'
|
21 |
+
} ).trigger('focus').removeAttr( 'tabindex' ).addClass( 'modal-is-open' );
|
22 |
|
23 |
jQuery( 'body' ).addClass( 'imagify-modal-is-open' );
|
24 |
},
|
84 |
var $modal = $( this ).closest( '.imagify-modal' );
|
85 |
|
86 |
if ( $modal.attr( 'aria-hidden' ) === 'false' ) {
|
87 |
+
$modal.attr( 'tabindex', '0' ).trigger('focus').removeAttr( 'tabindex' );
|
88 |
}
|
89 |
} )
|
90 |
// On click on dropped layer of modal, close modal.
|
assets/js/admin.min.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
window.imagify=window.imagify||{},jQuery.extend(window.imagify,{concat:ajaxurl.indexOf("?")>0?"&":"?",log:function(a){void 0!==console&&console.log(a)},info:function(a){void 0!==console&&console.info(a)},openModal:function(a){var b=a.data("target")||a.attr("href");jQuery(b).css("display","flex").hide().fadeIn(400).attr({"aria-hidden":"false",tabindex:"0"}).focus
|
1 |
+
window.imagify=window.imagify||{},jQuery.extend(window.imagify,{concat:ajaxurl.indexOf("?")>0?"&":"?",log:function(a){void 0!==console&&console.log(a)},info:function(a){void 0!==console&&console.info(a)},openModal:function(a){var b=a.data("target")||a.attr("href");jQuery(b).css("display","flex").hide().fadeIn(400).attr({"aria-hidden":"false",tabindex:"0"}).trigger("focus").removeAttr("tabindex").addClass("modal-is-open"),jQuery("body").addClass("imagify-modal-is-open")},template:function(a){return void 0===_?"":_.memoize(function(b){var c,d={evaluate:/<#([\s\S]+?)#>/g,interpolate:/\{\{\{([\s\S]+?)\}\}\}/g,escape:/\{\{([^}]+?)\}\}(?!\})/g,variable:"data"};return function(){return c=c||_.template(jQuery("#tmpl-"+a).html(),null,d),b=b||{},c(b)}})},humanSize:function(a){var b,c=["B","kB","MB"];return 0===a?"0 kB":(b=parseInt(Math.floor(Math.log(a)/Math.log(1024)),10),(a/Math.pow(1024,b)).toFixed(2)+" "+c[b])}}),function(a,b,c,d){a(".imagify-modal").attr("aria-hidden","true"),a(b).on("click.imagify",".imagify-modal-trigger",function(b){b.preventDefault(),c.imagify.openModal(a(this))}).on("click.imagify",".imagify-modal .close-btn",function(){a(this).closest(".imagify-modal").fadeOut(400).attr("aria-hidden","true").removeClass("modal-is-open").trigger("modalClosed.imagify"),a("body").removeClass("imagify-modal-is-open")}).on("blur.imagify",".imagify-modal .close-btn",function(){var b=a(this).closest(".imagify-modal");"false"===b.attr("aria-hidden")&&b.attr("tabindex","0").trigger("focus").removeAttr("tabindex")}).on("click.imagify",".imagify-modal",function(b){a(b.target).filter(".modal-is-open").find(".close-btn").trigger("click.imagify")}).on("keydown.imagify",function(b){27===b.keyCode&&a(".imagify-modal.modal-is-open").length>0&&(b.preventDefault(),a(".imagify-modal.modal-is-open").find(".close-btn").trigger("click.imagify"))})}(jQuery,document,window);
|
assets/js/bulk.js
CHANGED
@@ -651,9 +651,9 @@ window.imagify = window.imagify || {};
|
|
651 |
|
652 |
// Enable or disable the Optimization button.
|
653 |
if ( $( '.imagify-bulk-table [name="group[]"]:checked' ).length ) {
|
654 |
-
$( '#imagify-bulk-action' ).
|
655 |
} else {
|
656 |
-
$( '#imagify-bulk-action' ).
|
657 |
}
|
658 |
},
|
659 |
|
@@ -690,7 +690,7 @@ window.imagify = window.imagify || {};
|
|
690 |
maybeLaunchAllProcesses: function () {
|
691 |
var $infosModal;
|
692 |
|
693 |
-
if ( $( this ).
|
694 |
return;
|
695 |
}
|
696 |
|
@@ -743,7 +743,7 @@ window.imagify = window.imagify || {};
|
|
743 |
skip = true;
|
744 |
|
745 |
// Disable the button.
|
746 |
-
$button.
|
747 |
|
748 |
// Add a message to be displayed when the user wants to quit the page.
|
749 |
$w.on( 'beforeunload', this.getConfirmMessage );
|
@@ -1230,7 +1230,7 @@ window.imagify = window.imagify || {};
|
|
1230 |
|
1231 |
// Enable (or not) the main button.
|
1232 |
if ( $( '.imagify-bulk-table [name="group[]"]:checked' ).length ) {
|
1233 |
-
$( '#imagify-bulk-action' ).
|
1234 |
} else {
|
1235 |
$( '#imagify-bulk-action' ).find( '.dashicons' ).removeClass( 'rotate' );
|
1236 |
}
|
651 |
|
652 |
// Enable or disable the Optimization button.
|
653 |
if ( $( '.imagify-bulk-table [name="group[]"]:checked' ).length ) {
|
654 |
+
$( '#imagify-bulk-action' ).prop( 'disabled', false );
|
655 |
} else {
|
656 |
+
$( '#imagify-bulk-action' ).prop( 'disabled', true );
|
657 |
}
|
658 |
},
|
659 |
|
690 |
maybeLaunchAllProcesses: function () {
|
691 |
var $infosModal;
|
692 |
|
693 |
+
if ( $( this ).prop('disabled') ) {
|
694 |
return;
|
695 |
}
|
696 |
|
743 |
skip = true;
|
744 |
|
745 |
// Disable the button.
|
746 |
+
$button.prop( 'disabled', true ).find( '.dashicons' ).addClass( 'rotate' );
|
747 |
|
748 |
// Add a message to be displayed when the user wants to quit the page.
|
749 |
$w.on( 'beforeunload', this.getConfirmMessage );
|
1230 |
|
1231 |
// Enable (or not) the main button.
|
1232 |
if ( $( '.imagify-bulk-table [name="group[]"]:checked' ).length ) {
|
1233 |
+
$( '#imagify-bulk-action' ).prop( 'disabled', false ).find( '.dashicons' ).removeClass( 'rotate' );
|
1234 |
} else {
|
1235 |
$( '#imagify-bulk-action' ).find( '.dashicons' ).removeClass( 'rotate' );
|
1236 |
}
|
assets/js/bulk.min.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
window.imagify=window.imagify||{},function(a,b){var c=a.propHooks.checked;a.propHooks.checked={set:function(b,d,e){var f;return f=void 0===c?b[e]=d:c(b,d,e),a(b).trigger("change.imagify"),f}},a.fn.imagifyHide=function(b,c){return b&&b>0?this.hide(b,function(){a(this).addClass("hidden").css("display",""),void 0!==c&&c()}):(this.addClass("hidden"),void 0!==c&&c()),this.attr("aria-hidden","true")},a.fn.imagifyShow=function(b,c){return void 0!==c&&c(),b&&b>0?this.show(b,function(){a(this).removeClass("hidden").css("display","")}):this.removeClass("hidden"),this.attr("aria-hidden","false")}}(jQuery),function(a,b,c,d){c.imagify.bulk={charts:{overview:{canvas:!1,donut:!1,data:{labels:[imagifyBulk.labels.overviewChartLabels.unoptimized,imagifyBulk.labels.overviewChartLabels.optimized,imagifyBulk.labels.overviewChartLabels.error],datasets:[{data:[],backgroundColor:["#10121A","#46B1CE","#C51162"],borderWidth:0}]}},files:{donuts:{}},share:{canvas:!1,donut:!1}},folderTypesQueue:[],status:{},displayedWaitMessage:!1,hasMultipleRows:!0,imagifyAction:"",processIsStopped:!1,processingMedia:[],globalGain:0,globalOriginalSize:0,globalOptimizedSize:0,folderTypesData:{},defaultThumb:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACEAAAAhBAMAAAClyt9cAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAABtQTFRFR3BMjo6Oh4eHqqqq4uLigoKC+fn5fn5+fHx8SBBv5wAAAAF0Uk5TAEDm2GYAAABWSURBVCjPY2BgEBIEAyERBhgQUoKAIAc0EXXjEDQRRTNzBzRdBokhaGoM2CQc0NQwJJegqWFgM3VAUSNsbGwugCKiqBQUpIAiAgICoyIDKyIIB0JAEQA54jRBweNV0AAAAABJRU5ErkJggg==",init:function(){var d=a(b);this.drawOverviewChart(),this.hasMultipleRows=a('.imagify-bulk-table [name="group[]"]').length>1,a(".imagify-selector-button").on("click.imagify",this.openSelectorFromButton),a(".imagify-selector-list input").on("change.imagify init.imagify",this.syncSelectorFromRadio).filter(":checked").trigger("init.imagify"),d.on("keypress.imagify click.imagify",this.closeSelectors),a('.imagify-bulk-table [name="group[]"]').on("change.imagify init.imagify",this.toggleOptimizationButton).trigger("init.imagify"),a(".imagify-show-table-details").on("click.imagify open.imagify close.imagify",this.toggleOptimizationDetails),a("#imagify-bulk-action").on("click.imagify",this.maybeLaunchAllProcesses),a(".imagify-share-networks a").on("click.imagify",this.share),a(c).on("processQueue.imagify",this.processQueue).on("optimizeFiles.imagify",this.optimizeFiles).on("queueEmpty.imagify",this.queueEmpty),imagifyBulk.ajaxActions.getStats&&a('.imagify-bulk-table [data-group-id="library"][data-context="wp"]').length&&(imagifyBulk.imagifybeatIDs.stats=!1),imagifyBulk.imagifybeatIDs.stats&&d.on("imagifybeat-send",this.addStatsImagifybeat).on("imagifybeat-tick",this.processStatsImagifybeat),d.on("imagifybeat-send",this.addQueueImagifybeat).on("imagifybeat-tick",this.processQueueImagifybeat),d.on("imagifybeat-send",this.addRequirementsImagifybeat).on("imagifybeat-tick",this.processRequirementsImagifybeat)},getAjaxUrl:function(a,b){var d=ajaxurl+c.imagify.concat+"_wpnonce="+imagifyBulk.ajaxNonce+"&action="+imagifyBulk.ajaxActions[a];return b&&b.context&&(d+="&context="+b.context),"getMediaIds"!==a&&"bulkProcess"!==a||(d+="&imagify_action="+c.imagify.bulk.imagifyAction),d},getFolderTypes:function(){return a.isEmptyObject(c.imagify.bulk.folderTypesData)?(a(".imagify-row-folder-type").each(function(){var b=a(this),d={groupID:b.data("group-id"),context:b.data("context")},e=d.groupID+"|"+d.context;c.imagify.bulk.folderTypesData[e]=d}),c.imagify.bulk.folderTypesData):c.imagify.bulk.folderTypesData},getConfirmMessage:function(){return imagifyBulk.labels.processing},closeLevelSelector:function(a,b){if(a&&a.length)return void 0!==b&&b>0?void c.setTimeout(function(){c.imagify.bulk.closeLevelSelector(a)},b):void a.attr("aria-hidden","true")},stopProcess:function(b,d){this.processIsStopped=!0,c.imagify.bulk.status[d.groupID]={isError:!0,id:b},a(c).trigger("queueEmpty.imagify")},hasBlockingError:function(b){return b=void 0!==b&&b,imagifyBulk.curlMissing?(b&&c.imagify.bulk.displayError({html:imagifyBulk.labels.curlMissing}),!0):imagifyBulk.editorMissing?(b&&c.imagify.bulk.displayError({html:imagifyBulk.labels.editorMissing}),!0):imagifyBulk.extHttpBlocked?(b&&c.imagify.bulk.displayError({html:imagifyBulk.labels.extHttpBlocked}),!0):imagifyBulk.apiDown?(b&&c.imagify.bulk.displayError({html:imagifyBulk.labels.apiDown}),!0):imagifyBulk.keyIsValid?!!imagifyBulk.isOverQuota&&(b&&c.imagify.bulk.displayError({title:imagifyBulk.labels.overQuotaTitle,html:a("#tmpl-imagify-overquota-alert").html(),type:"info",customClass:"imagify-swal-has-subtitle imagify-swal-error-header",showConfirmButton:!1}),!0):(b&&c.imagify.bulk.displayError({title:imagifyBulk.labels.invalidAPIKeyTitle,type:"info"}),!0)},displayError:function(b,c,d){var e={title:"",html:"",type:"error",customClass:"",width:620,padding:0,showCloseButton:!0,showConfirmButton:!0};a.isPlainObject(b)?d=a.extend({},e,b):(d=d||{},d=a.extend({},e,{title:b||"",html:c||""},d)),d.title=d.title||imagifyBulk.labels.error,d.customClass+=" imagify-sweet-alert",swal(d).catch(swal.noop)},displayErrorInRow:function(b,c){var d,e;return b=a(b()),d=b.find(".imagify-cell-status ~ td"),e=d.length,c=c||"",d.remove(),b.find(".imagify-cell-status").after('<td colspan="'+e+'">'+c+"</td>"),b},displayFolderRow:function(a,b){var d,e,f,g;return"resting"===a?(b.next(".imagify-row-waiting, .imagify-row-working").remove(),void b.imagifyShow()):(d=b.next(".imagify-row-waiting, .imagify-row-working"),"waiting"===a?(f="#d2d3d6",g=imagifyBulk.labels.waitingOtimizationsText):(f="#40b1d0",g=imagifyBulk.labels.imagesOptimizedText.replace("%s","<span>0</span>")),d.length?(d.hasClass("imagify-row-"+a)||(d.attr("class","imagify-row-"+a),d.find(".imagify-cell-checkbox svg").attr("fill",f),d.children(".imagify-cell-count-optimized").html(g)),b.imagifyHide(),void d.imagifyShow()):(d=b.clone().attr({class:"imagify-row-"+a,"aria-hidden":"false"}),e=c.imagify.template("imagify-spinner"),d.children(".imagify-cell-checkbox").html(e()).find("svg").attr("fill",f),d.children(".imagify-cell-title").html('<span class="imagify-cell-label">'+d.children(".imagify-cell-title").text()+"</span>"),d.children(".imagify-cell-count-optimized").html(g),d.children(".imagify-cell-count-errors, .imagify-cell-optimized-size, .imagify-cell-original-size, .imagify-cell-level").text(""),void b.imagifyHide().after(d)))},displayShareBox:function(){var b,d,e,f,g=imagifyBulk.labels.textToShare;if(!this.globalGain||this.folderTypesQueue.length)return this.globalGain=0,this.globalOriginalSize=0,void(this.globalOptimizedSize=0);b=(100-this.globalOptimizedSize/this.globalOriginalSize*100).toFixed(2),d=c.imagify.humanSize(this.globalGain,1),e=c.imagify.humanSize(this.globalOriginalSize,1),g=g.replace("%1$s",d),g=g.replace("%2$s",e),g=encodeURIComponent(g),f=a(".imagify-row-complete"),f.find(".imagify-ac-rt-total-gain").html(d),f.find(".imagify-ac-rt-total-original").html(e),f.find(".imagify-ac-chart").attr("data-percent",b),f.find(".imagify-sn-twitter").attr("href",imagifyBulk.labels.twitterShareURL+"&text="+g),this.drawShareChart(),f.addClass("done").imagifyShow(),a("html, body").animate({scrollTop:f.offset().top},200),this.globalGain=0,this.globalOriginalSize=0,this.globalOptimizedSize=0},updateStats:function(b){var d;b&&a.isPlainObject(b)&&(c.imagify.bulk.charts.overview.donut.data&&(d=c.imagify.bulk.charts.overview.donut.data.datasets[0].data,b.unoptimized_attachments===d[0]&&b.optimized_attachments===d[1]&&b.errors_attachments===d[2])||(b.unconsumed_quota=b.unconsumed_quota.toFixed(1),a(".imagify-meteo-icon").html(b.quota_icon),a(".imagify-unconsumed-percent").html(b.unconsumed_quota+"%"),a(".imagify-unconsumed-bar").css("width",b.unconsumed_quota+"%").parent().attr("class",b.quota_class),a("#imagify-overview-chart-percent").html(b.optimized_attachments_percent+"<span>%</span>"),a(".imagify-total-percent").html(b.optimized_attachments_percent+"%"),c.imagify.bulk.drawOverviewChart([b.unoptimized_attachments,b.optimized_attachments,b.errors_attachments]),a("#imagify-total-optimized-attachments").html(b.already_optimized_attachments),a("#imagify-original-bar").find(".imagify-barnb").html(b.original_human),a("#imagify-optimized-bar").css("width",100-b.optimized_percent+"%").find(".imagify-barnb").html(b.optimized_human),a("#imagify-total-optimized-attachments-pct").html(b.optimized_percent+"%")))},openSelectorFromButton:function(b){var c=a("#"+a(this).attr("aria-controls"));b.stopPropagation(),a(".imagify-selector-list").not(c).attr("aria-hidden","true"),c.attr("aria-hidden","false").find(":checked").trigger("focus.imagify")},syncSelectorFromRadio:function(){var b=a(this).closest(".imagify-selector-choice");b.addClass("imagify-selector-current-value").attr("aria-current","true").siblings(".imagify-selector-choice").removeClass("imagify-selector-current-value").attr("aria-current","false"),b.closest(".imagify-selector-list").siblings(".imagify-selector-button").find(".imagify-selector-current-value-info").html(b.find("label").html())},closeSelectors:function(b){"keypress"===b.type&&27!==b.keyCode&&13!==b.keyCode||c.imagify.bulk.closeLevelSelector(a('.imagify-selector-list[aria-hidden="false"]'))},toggleOptimizationButton:function(){if(!c.imagify.bulk.hasMultipleRows&&!this.checked)return void a(this).prop("checked",!0);a('.imagify-bulk-table [name="group[]"]:checked').length?a("#imagify-bulk-action").removeAttr("disabled"):a("#imagify-bulk-action").attr("disabled","disabled")},toggleOptimizationDetails:function(b){var c,d=a(this),e=d.closest(".imagify-bulk-table").find(".imagify-bulk-table-details");c="open"===b.type||"close"!==b.type&&e.hasClass("hidden"),c?(d.html(d.data("label-hide")+'<span class="dashicons dashicons-no-alt"></span>'),e.imagifyShow()):(d.html(d.data("label-show")+'<span class="dashicons dashicons-menu"></span>'),e.imagifyHide())},maybeLaunchAllProcesses:function(){var b;if(!a(this).attr("disabled")&&a('.imagify-bulk-table [name="group[]"]:checked').length&&!c.imagify.bulk.hasBlockingError(!0)){if(b=a("#tmpl-imagify-bulk-infos"),!b.length)return void c.imagify.bulk.launchAllProcesses();swal({title:imagifyBulk.labels.bulkInfoTitle,html:b.html(),type:"",customClass:"imagify-sweet-alert imagify-swal-has-subtitle imagify-before-bulk-infos",showCancelButton:!0,padding:0,width:554,confirmButtonText:imagifyBulk.labels.confirmBulk,cancelButtonText:imagifySwal.labels.cancelButtonText,reverseButtons:!0}).then(function(){var d=a('.imagify-bulk-table [name="group[]"]:checked').first().closest(".imagify-row-folder-type");a.get(c.imagify.bulk.getAjaxUrl("bulkInfoSeen",{context:d.data("context")})),b.remove(),c.imagify.bulk.launchAllProcesses()}).catch(swal.noop)}},launchAllProcesses:function(){var b=a(c),d=a("#imagify-bulk-action"),e=!0;d.attr("disabled","disabled").find(".dashicons").addClass("rotate"),b.on("beforeunload",this.getConfirmMessage),a(".imagify-row-complete").imagifyHide(200,function(){a(this).removeClass("done")}),a(".imagify-show-table-details").trigger("close.imagify"),this.folderTypesQueue=[],this.status={},this.displayedWaitMessage=!1,this.processIsStopped=!1,this.imagifyAction="optimize",this.globalGain=0,this.globalOriginalSize=0,this.globalOptimizedSize=0,a('.imagify-bulk-table [name="group[]"]:checked').each(function(){var b=a(this),d=b.closest(".imagify-row-folder-type"),f=d.data("group-id"),g=d.data("context"),h=d.find('.imagify-cell-level [name="level['+f+']"]:checked').val();if(c.imagify.bulk.folderTypesQueue.push({groupID:f,context:g,level:void 0===h?-1:parseInt(h,10)}),c.imagify.bulk.status[f]={isError:!1,id:"waiting"},e)return e=!1,!0;c.imagify.bulk.displayFolderRow("waiting",d)}),c.imagify.beat.interval(15),c.imagify.beat.disableSuspend(),b.trigger("processQueue.imagify")},processQueue:function(){var b,d;if(!c.imagify.bulk.processIsStopped){if(!c.imagify.bulk.folderTypesQueue.length)return void a(c).trigger("queueEmpty.imagify");c.imagify.bulk.displayedWaitMessage||(swal({title:imagifyBulk.labels.waitTitle,html:imagifyBulk.labels.waitText,showConfirmButton:!1,padding:0,imageUrl:imagifyBulk.waitImageUrl,customClass:"imagify-sweet-alert"}).catch(swal.noop),c.imagify.bulk.displayedWaitMessage=!0),d=c.imagify.bulk.folderTypesQueue.shift(),b=a("#cb-select-"+d.groupID).closest(".imagify-row-folder-type"),c.imagify.bulk.status[d.groupID].id="fetching",c.imagify.bulk.displayFolderRow("working",b),a.get(c.imagify.bulk.getAjaxUrl("getMediaIds",d)).done(function(e){var f;if(swal.close(),!c.imagify.bulk.processIsStopped){if(f=e.data&&e.data.message?e.data.message:imagifyBulk.ajaxErrorText,!e.success)return void c.imagify.bulk.stopProcess(f,d);if(!e.data||!a.isPlainObject(e.data)&&!a.isArray(e.data))return void c.imagify.bulk.stopProcess(f,d);if(!a.isEmptyObject(e.data))return void a(c).trigger("optimizeFiles.imagify",[d,e.data]);if(c.imagify.bulk.status[d.groupID].id="no-images",c.imagify.bulk.hasMultipleRows&&a("#cb-select-"+d.groupID).prop("checked",!1),!c.imagify.bulk.folderTypesQueue.length)return void a(c).trigger("queueEmpty.imagify");c.imagify.bulk.displayFolderRow("resting",b),a(c).trigger("processQueue.imagify")}}).fail(function(){c.imagify.bulk.stopProcess("get-unoptimized-images",d)})}},optimizeFiles:function(b,d,e){var f,g,h,i,j,k,l,m,n,o,p,q={groupID:d.groupID,mediaID:0,thumbnail:"",filename:"",status:"",icon:"",label:"",thumbnailsCount:"",originalSizeHuman:"",newSizeHuman:"",percentHuman:"",overallSavingHuman:""};c.imagify.bulk.processIsStopped||(f=a("#cb-select-"+d.groupID).closest(".imagify-row-folder-type"),g=f.next(".imagify-row-working"),i=g.find(".imagify-cell-count-errors span"),o=parseInt(i.text(),10),j=f.closest(".imagify-bulk-table"),k=j.find(".imagify-row-progress"),l=k.find(".bar"),"optimize"===c.imagify.bulk.imagifyAction&&(h=g.find(".imagify-cell-count-optimized span"),n=parseInt(h.text(),10)),c.imagify.bulk.status[d.groupID].id="optimizing",j.find(".imagify-bulk-table-details thead").html(a("#tmpl-imagify-file-header-"+d.groupID).html()),m=j.find(".imagify-bulk-table-details tbody").text(""),l.css("width","0%").find(".percent").text("0%"),k.slideDown().attr("aria-hidden","false"),p=new c.imagify.Optimizer({groupID:d.groupID,context:d.context,level:d.level,bufferSize:imagifyBulk.bufferSizes[d.context],ajaxUrl:c.imagify.bulk.getAjaxUrl("bulkProcess",d),files:e,defaultThumb:c.imagify.bulk.defaultThumb,doneEvent:"mediaProcessed.imagify"}),p.before(function(b){var e;c.imagify.bulk.processIsStopped||(e=c.imagify.template("imagify-file-row-"+d.groupID),c.imagify.bulk.processingMedia.push({context:d.context,mediaID:b.mediaID}),m.prepend(e(a.extend({},q,b,{status:"compressing",icon:"admin-generic rotate",label:imagifyBulk.labels.optimizing}))))}),p.each(function(b){var e,f;if(!c.imagify.bulk.processIsStopped){if(e=c.imagify.template("imagify-file-row-"+d.groupID),f=a("#"+d.groupID+"-"+b.mediaID),a.each(c.imagify.bulk.processingMedia,function(a,e){return e.context!==d.context||e.mediaID!==b.mediaID||(c.imagify.bulk.processingMedia.splice(a,1),!1)}),l.css("width",b.progress+"%").find(".percent").html(b.progress+"%"),b.success)return"already-optimized"!==b.status?(f.replaceWith(e(a.extend({},q,b,{status:"complete",icon:"yes",label:imagifyBulk.labels.complete}))),c.imagify.bulk.drawFileChart(a("#"+d.groupID+"-"+b.mediaID).find(".imagify-cell-percentage canvas"))):f.replaceWith(c.imagify.bulk.displayErrorInRow(e(a.extend({},q,b,{status:"complete",icon:"yes",label:imagifyBulk.labels.alreadyOptimized})),b.error)),void("optimize"===c.imagify.bulk.imagifyAction&&(n+=1,h.text(n)));f.replaceWith(c.imagify.bulk.displayErrorInRow(e(a.extend({},q,b,{status:"error",icon:"dismiss",label:imagifyBulk.labels.error})),b.error||b)),i.length?(o+=1,i.text(o)):(o=1,i=g.find(".imagify-cell-count-errors").html(imagifyBulk.labels.imagesErrorText.replace("%s","<span>1</span>")).find("span")),"over-quota"===b.status&&(p.stopProcess(),c.imagify.bulk.stopProcess(b.status,d))}}),p.done(function(b){c.imagify.bulk.hasMultipleRows&&a("#cb-select-"+d.groupID).prop("checked",!1),b.globalOriginalSize&&(c.imagify.bulk.globalGain+=parseInt(b.globalGain,10),c.imagify.bulk.globalOriginalSize+=parseInt(b.globalOriginalSize,10),c.imagify.bulk.globalOptimizedSize+=parseInt(b.globalOptimizedSize,10)),c.imagify.bulk.processIsStopped||(c.imagify.beat.resetInterval(),c.imagify.beat.enableSuspend(),a.isEmptyObject(c.imagify.bulk.status)||c.imagify.bulk.status[d.groupID].isError||(c.imagify.bulk.status[d.groupID].id="done"),f.addClass("updating"),a.get(c.imagify.bulk.getAjaxUrl("getFolderData",d)).done(function(b){c.imagify.bulk.processIsStopped||(b.success&&a.each(b.data,function(a,b){f.children(".imagify-cell-"+a).html(b)}),c.imagify.bulk.displayFolderRow("resting",f))}).always(function(){c.imagify.bulk.processIsStopped||(f.removeClass("updating"),c.imagify.bulk.folderTypesQueue.length?a(c).trigger("processQueue.imagify"):a(c).trigger("queueEmpty.imagify"))}))}),p.run())},queueEmpty:function(){var b=a(".imagify-bulk-table"),d={},e=!1,f=!0,g="";c.imagify.beat.resetInterval(),c.imagify.beat.enableSuspend(),c.imagify.bulk.displayShareBox(),c.imagify.bulk.folderTypesQueue=[],imagifyBulk.imagifybeatIDs.stats||a.get(c.imagify.bulk.getAjaxUrl("getStats"),{types:c.imagify.bulk.getFolderTypes()}).done(function(a){a.success&&c.imagify.bulk.updateStats(a.data)}),a.isEmptyObject(c.imagify.bulk.status)||(a.each(c.imagify.bulk.status,function(a,b){return b.isError?(e=b.id,f=!1,!1):"no-images"!==b.id?(f=!1,!1):void 0}),e?("invalid-api-key"===e?d={title:imagifyBulk.labels.invalidAPIKeyTitle,type:"info"}:"over-quota"===e?d={title:imagifyBulk.labels.overQuotaTitle,html:a("#tmpl-imagify-overquota-alert").html(),type:"info",customClass:"imagify-swal-has-subtitle imagify-swal-error-header",showConfirmButton:!1}:"get-unoptimized-images"!==e&&"consumed-all-data"!==e||(d={title:imagifyBulk.labels.getUnoptimizedImagesErrorTitle,html:imagifyBulk.labels.getUnoptimizedImagesErrorText,type:"info"}),c.imagify.bulk.displayError(d)):f&&(g=imagifyBulk.labels.nothingToDoText.hasOwnProperty(c.imagify.bulk.imagifyAction)?imagifyBulk.labels.nothingToDoText[c.imagify.bulk.imagifyAction]:imagifyBulk.labels.nothingToDoText.optimize,c.imagify.bulk.displayError({title:imagifyBulk.labels.nothingToDoTitle,html:g,type:"info"}))),c.imagify.bulk.status={},a(c).off("beforeunload",c.imagify.bulk.getConfirmMessage),c.imagify.bulk.displayFolderRow("resting",b.find(".imagify-row-folder-type").not(".updating")),b.find(".imagify-row-progress").slideUp().attr("aria-hidden","true").find(".bar").removeAttr("style").find(".percent").text("0%"),a('.imagify-bulk-table [name="group[]"]:checked').length?a("#imagify-bulk-action").removeAttr("disabled").find(".dashicons").removeClass("rotate"):a("#imagify-bulk-action").find(".dashicons").removeClass("rotate")},share:function(a){var d,e;a.preventDefault(),c.innerWidth?(d=(c.innerWidth-700)/2,e=(c.innerHeight-290)/2):(d=(b.body.clientWidth-700)/2,e=(b.body.clientHeight-290)/2),c.open(this.href,"","status=no, scrollbars=no, menubar=no, top="+e+", left="+d+", width=700, height=290")},addStatsImagifybeat:function(a,b){b[imagifyBulk.imagifybeatIDs.stats]=Object.keys(c.imagify.bulk.getFolderTypes())},processStatsImagifybeat:function(a,b){void 0!==b[imagifyBulk.imagifybeatIDs.stats]&&c.imagify.bulk.updateStats(b[imagifyBulk.imagifybeatIDs.stats])},addQueueImagifybeat:function(a,b){c.imagify.bulk.processingMedia.length&&(b[imagifyBulk.imagifybeatIDs.queue]=c.imagify.bulk.processingMedia)},processQueueImagifybeat:function(b,d){void 0!==d[imagifyBulk.imagifybeatIDs.queue]&&a.each(d[imagifyBulk.imagifybeatIDs.queue],function(b,d){a(c).trigger("mediaProcessed.imagify",[d])})},addRequirementsImagifybeat:function(a,b){b[imagifyBulk.imagifybeatIDs.requirements]=1},processRequirementsImagifybeat:function(a,b){void 0!==b[imagifyBulk.imagifybeatIDs.requirements]&&(b=b[imagifyBulk.imagifybeatIDs.requirements],imagifyBulk.curlMissing=b.curl_missing,imagifyBulk.editorMissing=b.editor_missing,imagifyBulk.extHttpBlocked=b.external_http_blocked,imagifyBulk.apiDown=b.api_down,imagifyBulk.keyIsValid=b.key_is_valid,imagifyBulk.isOverQuota=b.is_over_quota)},drawOverviewChart:function(d){var e,f;if(this.charts.overview.canvas||(this.charts.overview.canvas=b.getElementById("imagify-overview-chart"),this.charts.overview.canvas)){if(d=d&&a.isArray(d)?d:[],this.charts.overview.donut)return void(d.length&&(0===d.reduce(function(a,b){return a+b},0)&&(d[0]=1),this.charts.overview.donut.data.datasets[0].data=d,this.charts.overview.donut.update()));this.charts.overview.data.datasets[0].data=[parseInt(this.charts.overview.canvas.getAttribute("data-unoptimized"),10),parseInt(this.charts.overview.canvas.getAttribute("data-optimized"),10),parseInt(this.charts.overview.canvas.getAttribute("data-errors"),10)],e=a.extend({},this.charts.overview.data),d.length&&(e.datasets[0].data=d),0===e.datasets[0].data.reduce(function(a,b){return a+b},0)&&(e.datasets[0].data[0]=1),this.charts.overview.donut=new c.imagify.Chart(this.charts.overview.canvas,{type:"doughnut",data:e,options:{legend:{display:!1},events:[],animation:{easing:"easeOutBounce"},tooltips:{displayColors:!1,callbacks:{label:function(a,b){return b.datasets[a.datasetIndex].data[a.index]}}},responsive:!1,cutoutPercentage:85}}),f='<ul class="imagify-doughnut-legend">',a.each(e.labels,function(a,b){f+='<li><span style="background-color:'+e.datasets[0].backgroundColor[a]+'"></span>'+b+"</li>"}),f+="</ul>",b.getElementById("imagify-overview-chart-legend").innerHTML=f}},drawFileChart:function(b){var d=this.charts.files.donuts;b.each(function(){var b=parseInt(a(this).closest(".imagify-chart").next(".imagipercent").text().replace("%",""),10);if(void 0!==d[this.id])return d[this.id].data.datasets[0].data[0]=b,d[this.id].data.datasets[0].data[1]=100-b,void d[this.id].update();d[this.id]=new c.imagify.Chart(this,{type:"doughnut",data:{datasets:[{data:[b,100-b],backgroundColor:["#00B3D3","#D8D8D8"],borderColor:"#fff",borderWidth:1}]},options:{legend:{display:!1},events:[],animation:{easing:"easeOutBounce"},tooltips:{enabled:!1},responsive:!1}})}),this.charts.files.donuts=d},drawShareChart:function(){var d;if(this.charts.share.canvas||(this.charts.share.canvas=b.getElementById("imagify-ac-chart"),this.charts.share.canvas)){if(d=parseInt(a(this.charts.share.canvas).closest(".imagify-ac-chart").attr("data-percent"),10),this.charts.share.donut)return this.charts.share.donut.data.datasets[0].data[0]=d,this.charts.share.donut.data.datasets[0].data[1]=100-d,void this.charts.share.donut.update();this.charts.share.donut=new c.imagify.Chart(this.charts.share.canvas,{type:"doughnut",data:{datasets:[{data:[d,100-d],backgroundColor:["#40B1D0","#FFFFFF"],borderWidth:0}]},options:{legend:{display:!1},events:[],animation:{easing:"easeOutBounce"},tooltips:{enabled:!1},responsive:!1,cutoutPercentage:70}})}}},c.imagify.bulk.init()}(jQuery,document,window);
|
1 |
+
window.imagify=window.imagify||{},function(a,b){var c=a.propHooks.checked;a.propHooks.checked={set:function(b,d,e){var f;return f=void 0===c?b[e]=d:c(b,d,e),a(b).trigger("change.imagify"),f}},a.fn.imagifyHide=function(b,c){return b&&b>0?this.hide(b,function(){a(this).addClass("hidden").css("display",""),void 0!==c&&c()}):(this.addClass("hidden"),void 0!==c&&c()),this.attr("aria-hidden","true")},a.fn.imagifyShow=function(b,c){return void 0!==c&&c(),b&&b>0?this.show(b,function(){a(this).removeClass("hidden").css("display","")}):this.removeClass("hidden"),this.attr("aria-hidden","false")}}(jQuery),function(a,b,c,d){c.imagify.bulk={charts:{overview:{canvas:!1,donut:!1,data:{labels:[imagifyBulk.labels.overviewChartLabels.unoptimized,imagifyBulk.labels.overviewChartLabels.optimized,imagifyBulk.labels.overviewChartLabels.error],datasets:[{data:[],backgroundColor:["#10121A","#46B1CE","#C51162"],borderWidth:0}]}},files:{donuts:{}},share:{canvas:!1,donut:!1}},folderTypesQueue:[],status:{},displayedWaitMessage:!1,hasMultipleRows:!0,imagifyAction:"",processIsStopped:!1,processingMedia:[],globalGain:0,globalOriginalSize:0,globalOptimizedSize:0,folderTypesData:{},defaultThumb:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACEAAAAhBAMAAAClyt9cAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAABtQTFRFR3BMjo6Oh4eHqqqq4uLigoKC+fn5fn5+fHx8SBBv5wAAAAF0Uk5TAEDm2GYAAABWSURBVCjPY2BgEBIEAyERBhgQUoKAIAc0EXXjEDQRRTNzBzRdBokhaGoM2CQc0NQwJJegqWFgM3VAUSNsbGwugCKiqBQUpIAiAgICoyIDKyIIB0JAEQA54jRBweNV0AAAAABJRU5ErkJggg==",init:function(){var d=a(b);this.drawOverviewChart(),this.hasMultipleRows=a('.imagify-bulk-table [name="group[]"]').length>1,a(".imagify-selector-button").on("click.imagify",this.openSelectorFromButton),a(".imagify-selector-list input").on("change.imagify init.imagify",this.syncSelectorFromRadio).filter(":checked").trigger("init.imagify"),d.on("keypress.imagify click.imagify",this.closeSelectors),a('.imagify-bulk-table [name="group[]"]').on("change.imagify init.imagify",this.toggleOptimizationButton).trigger("init.imagify"),a(".imagify-show-table-details").on("click.imagify open.imagify close.imagify",this.toggleOptimizationDetails),a("#imagify-bulk-action").on("click.imagify",this.maybeLaunchAllProcesses),a(".imagify-share-networks a").on("click.imagify",this.share),a(c).on("processQueue.imagify",this.processQueue).on("optimizeFiles.imagify",this.optimizeFiles).on("queueEmpty.imagify",this.queueEmpty),imagifyBulk.ajaxActions.getStats&&a('.imagify-bulk-table [data-group-id="library"][data-context="wp"]').length&&(imagifyBulk.imagifybeatIDs.stats=!1),imagifyBulk.imagifybeatIDs.stats&&d.on("imagifybeat-send",this.addStatsImagifybeat).on("imagifybeat-tick",this.processStatsImagifybeat),d.on("imagifybeat-send",this.addQueueImagifybeat).on("imagifybeat-tick",this.processQueueImagifybeat),d.on("imagifybeat-send",this.addRequirementsImagifybeat).on("imagifybeat-tick",this.processRequirementsImagifybeat)},getAjaxUrl:function(a,b){var d=ajaxurl+c.imagify.concat+"_wpnonce="+imagifyBulk.ajaxNonce+"&action="+imagifyBulk.ajaxActions[a];return b&&b.context&&(d+="&context="+b.context),"getMediaIds"!==a&&"bulkProcess"!==a||(d+="&imagify_action="+c.imagify.bulk.imagifyAction),d},getFolderTypes:function(){return a.isEmptyObject(c.imagify.bulk.folderTypesData)?(a(".imagify-row-folder-type").each(function(){var b=a(this),d={groupID:b.data("group-id"),context:b.data("context")},e=d.groupID+"|"+d.context;c.imagify.bulk.folderTypesData[e]=d}),c.imagify.bulk.folderTypesData):c.imagify.bulk.folderTypesData},getConfirmMessage:function(){return imagifyBulk.labels.processing},closeLevelSelector:function(a,b){if(a&&a.length)return void 0!==b&&b>0?void c.setTimeout(function(){c.imagify.bulk.closeLevelSelector(a)},b):void a.attr("aria-hidden","true")},stopProcess:function(b,d){this.processIsStopped=!0,c.imagify.bulk.status[d.groupID]={isError:!0,id:b},a(c).trigger("queueEmpty.imagify")},hasBlockingError:function(b){return b=void 0!==b&&b,imagifyBulk.curlMissing?(b&&c.imagify.bulk.displayError({html:imagifyBulk.labels.curlMissing}),!0):imagifyBulk.editorMissing?(b&&c.imagify.bulk.displayError({html:imagifyBulk.labels.editorMissing}),!0):imagifyBulk.extHttpBlocked?(b&&c.imagify.bulk.displayError({html:imagifyBulk.labels.extHttpBlocked}),!0):imagifyBulk.apiDown?(b&&c.imagify.bulk.displayError({html:imagifyBulk.labels.apiDown}),!0):imagifyBulk.keyIsValid?!!imagifyBulk.isOverQuota&&(b&&c.imagify.bulk.displayError({title:imagifyBulk.labels.overQuotaTitle,html:a("#tmpl-imagify-overquota-alert").html(),type:"info",customClass:"imagify-swal-has-subtitle imagify-swal-error-header",showConfirmButton:!1}),!0):(b&&c.imagify.bulk.displayError({title:imagifyBulk.labels.invalidAPIKeyTitle,type:"info"}),!0)},displayError:function(b,c,d){var e={title:"",html:"",type:"error",customClass:"",width:620,padding:0,showCloseButton:!0,showConfirmButton:!0};a.isPlainObject(b)?d=a.extend({},e,b):(d=d||{},d=a.extend({},e,{title:b||"",html:c||""},d)),d.title=d.title||imagifyBulk.labels.error,d.customClass+=" imagify-sweet-alert",swal(d).catch(swal.noop)},displayErrorInRow:function(b,c){var d,e;return b=a(b()),d=b.find(".imagify-cell-status ~ td"),e=d.length,c=c||"",d.remove(),b.find(".imagify-cell-status").after('<td colspan="'+e+'">'+c+"</td>"),b},displayFolderRow:function(a,b){var d,e,f,g;return"resting"===a?(b.next(".imagify-row-waiting, .imagify-row-working").remove(),void b.imagifyShow()):(d=b.next(".imagify-row-waiting, .imagify-row-working"),"waiting"===a?(f="#d2d3d6",g=imagifyBulk.labels.waitingOtimizationsText):(f="#40b1d0",g=imagifyBulk.labels.imagesOptimizedText.replace("%s","<span>0</span>")),d.length?(d.hasClass("imagify-row-"+a)||(d.attr("class","imagify-row-"+a),d.find(".imagify-cell-checkbox svg").attr("fill",f),d.children(".imagify-cell-count-optimized").html(g)),b.imagifyHide(),void d.imagifyShow()):(d=b.clone().attr({class:"imagify-row-"+a,"aria-hidden":"false"}),e=c.imagify.template("imagify-spinner"),d.children(".imagify-cell-checkbox").html(e()).find("svg").attr("fill",f),d.children(".imagify-cell-title").html('<span class="imagify-cell-label">'+d.children(".imagify-cell-title").text()+"</span>"),d.children(".imagify-cell-count-optimized").html(g),d.children(".imagify-cell-count-errors, .imagify-cell-optimized-size, .imagify-cell-original-size, .imagify-cell-level").text(""),void b.imagifyHide().after(d)))},displayShareBox:function(){var b,d,e,f,g=imagifyBulk.labels.textToShare;if(!this.globalGain||this.folderTypesQueue.length)return this.globalGain=0,this.globalOriginalSize=0,void(this.globalOptimizedSize=0);b=(100-this.globalOptimizedSize/this.globalOriginalSize*100).toFixed(2),d=c.imagify.humanSize(this.globalGain,1),e=c.imagify.humanSize(this.globalOriginalSize,1),g=g.replace("%1$s",d),g=g.replace("%2$s",e),g=encodeURIComponent(g),f=a(".imagify-row-complete"),f.find(".imagify-ac-rt-total-gain").html(d),f.find(".imagify-ac-rt-total-original").html(e),f.find(".imagify-ac-chart").attr("data-percent",b),f.find(".imagify-sn-twitter").attr("href",imagifyBulk.labels.twitterShareURL+"&text="+g),this.drawShareChart(),f.addClass("done").imagifyShow(),a("html, body").animate({scrollTop:f.offset().top},200),this.globalGain=0,this.globalOriginalSize=0,this.globalOptimizedSize=0},updateStats:function(b){var d;b&&a.isPlainObject(b)&&(c.imagify.bulk.charts.overview.donut.data&&(d=c.imagify.bulk.charts.overview.donut.data.datasets[0].data,b.unoptimized_attachments===d[0]&&b.optimized_attachments===d[1]&&b.errors_attachments===d[2])||(b.unconsumed_quota=b.unconsumed_quota.toFixed(1),a(".imagify-meteo-icon").html(b.quota_icon),a(".imagify-unconsumed-percent").html(b.unconsumed_quota+"%"),a(".imagify-unconsumed-bar").css("width",b.unconsumed_quota+"%").parent().attr("class",b.quota_class),a("#imagify-overview-chart-percent").html(b.optimized_attachments_percent+"<span>%</span>"),a(".imagify-total-percent").html(b.optimized_attachments_percent+"%"),c.imagify.bulk.drawOverviewChart([b.unoptimized_attachments,b.optimized_attachments,b.errors_attachments]),a("#imagify-total-optimized-attachments").html(b.already_optimized_attachments),a("#imagify-original-bar").find(".imagify-barnb").html(b.original_human),a("#imagify-optimized-bar").css("width",100-b.optimized_percent+"%").find(".imagify-barnb").html(b.optimized_human),a("#imagify-total-optimized-attachments-pct").html(b.optimized_percent+"%")))},openSelectorFromButton:function(b){var c=a("#"+a(this).attr("aria-controls"));b.stopPropagation(),a(".imagify-selector-list").not(c).attr("aria-hidden","true"),c.attr("aria-hidden","false").find(":checked").trigger("focus.imagify")},syncSelectorFromRadio:function(){var b=a(this).closest(".imagify-selector-choice");b.addClass("imagify-selector-current-value").attr("aria-current","true").siblings(".imagify-selector-choice").removeClass("imagify-selector-current-value").attr("aria-current","false"),b.closest(".imagify-selector-list").siblings(".imagify-selector-button").find(".imagify-selector-current-value-info").html(b.find("label").html())},closeSelectors:function(b){"keypress"===b.type&&27!==b.keyCode&&13!==b.keyCode||c.imagify.bulk.closeLevelSelector(a('.imagify-selector-list[aria-hidden="false"]'))},toggleOptimizationButton:function(){if(!c.imagify.bulk.hasMultipleRows&&!this.checked)return void a(this).prop("checked",!0);a('.imagify-bulk-table [name="group[]"]:checked').length?a("#imagify-bulk-action").prop("disabled",!1):a("#imagify-bulk-action").prop("disabled",!0)},toggleOptimizationDetails:function(b){var c,d=a(this),e=d.closest(".imagify-bulk-table").find(".imagify-bulk-table-details");c="open"===b.type||"close"!==b.type&&e.hasClass("hidden"),c?(d.html(d.data("label-hide")+'<span class="dashicons dashicons-no-alt"></span>'),e.imagifyShow()):(d.html(d.data("label-show")+'<span class="dashicons dashicons-menu"></span>'),e.imagifyHide())},maybeLaunchAllProcesses:function(){var b;if(!a(this).prop("disabled")&&a('.imagify-bulk-table [name="group[]"]:checked').length&&!c.imagify.bulk.hasBlockingError(!0)){if(b=a("#tmpl-imagify-bulk-infos"),!b.length)return void c.imagify.bulk.launchAllProcesses();swal({title:imagifyBulk.labels.bulkInfoTitle,html:b.html(),type:"",customClass:"imagify-sweet-alert imagify-swal-has-subtitle imagify-before-bulk-infos",showCancelButton:!0,padding:0,width:554,confirmButtonText:imagifyBulk.labels.confirmBulk,cancelButtonText:imagifySwal.labels.cancelButtonText,reverseButtons:!0}).then(function(){var d=a('.imagify-bulk-table [name="group[]"]:checked').first().closest(".imagify-row-folder-type");a.get(c.imagify.bulk.getAjaxUrl("bulkInfoSeen",{context:d.data("context")})),b.remove(),c.imagify.bulk.launchAllProcesses()}).catch(swal.noop)}},launchAllProcesses:function(){var b=a(c),d=a("#imagify-bulk-action"),e=!0;d.prop("disabled",!0).find(".dashicons").addClass("rotate"),b.on("beforeunload",this.getConfirmMessage),a(".imagify-row-complete").imagifyHide(200,function(){a(this).removeClass("done")}),a(".imagify-show-table-details").trigger("close.imagify"),this.folderTypesQueue=[],this.status={},this.displayedWaitMessage=!1,this.processIsStopped=!1,this.imagifyAction="optimize",this.globalGain=0,this.globalOriginalSize=0,this.globalOptimizedSize=0,a('.imagify-bulk-table [name="group[]"]:checked').each(function(){var b=a(this),d=b.closest(".imagify-row-folder-type"),f=d.data("group-id"),g=d.data("context"),h=d.find('.imagify-cell-level [name="level['+f+']"]:checked').val();if(c.imagify.bulk.folderTypesQueue.push({groupID:f,context:g,level:void 0===h?-1:parseInt(h,10)}),c.imagify.bulk.status[f]={isError:!1,id:"waiting"},e)return e=!1,!0;c.imagify.bulk.displayFolderRow("waiting",d)}),c.imagify.beat.interval(15),c.imagify.beat.disableSuspend(),b.trigger("processQueue.imagify")},processQueue:function(){var b,d;if(!c.imagify.bulk.processIsStopped){if(!c.imagify.bulk.folderTypesQueue.length)return void a(c).trigger("queueEmpty.imagify");c.imagify.bulk.displayedWaitMessage||(swal({title:imagifyBulk.labels.waitTitle,html:imagifyBulk.labels.waitText,showConfirmButton:!1,padding:0,imageUrl:imagifyBulk.waitImageUrl,customClass:"imagify-sweet-alert"}).catch(swal.noop),c.imagify.bulk.displayedWaitMessage=!0),d=c.imagify.bulk.folderTypesQueue.shift(),b=a("#cb-select-"+d.groupID).closest(".imagify-row-folder-type"),c.imagify.bulk.status[d.groupID].id="fetching",c.imagify.bulk.displayFolderRow("working",b),a.get(c.imagify.bulk.getAjaxUrl("getMediaIds",d)).done(function(e){var f;if(swal.close(),!c.imagify.bulk.processIsStopped){if(f=e.data&&e.data.message?e.data.message:imagifyBulk.ajaxErrorText,!e.success)return void c.imagify.bulk.stopProcess(f,d);if(!e.data||!a.isPlainObject(e.data)&&!a.isArray(e.data))return void c.imagify.bulk.stopProcess(f,d);if(!a.isEmptyObject(e.data))return void a(c).trigger("optimizeFiles.imagify",[d,e.data]);if(c.imagify.bulk.status[d.groupID].id="no-images",c.imagify.bulk.hasMultipleRows&&a("#cb-select-"+d.groupID).prop("checked",!1),!c.imagify.bulk.folderTypesQueue.length)return void a(c).trigger("queueEmpty.imagify");c.imagify.bulk.displayFolderRow("resting",b),a(c).trigger("processQueue.imagify")}}).fail(function(){c.imagify.bulk.stopProcess("get-unoptimized-images",d)})}},optimizeFiles:function(b,d,e){var f,g,h,i,j,k,l,m,n,o,p,q={groupID:d.groupID,mediaID:0,thumbnail:"",filename:"",status:"",icon:"",label:"",thumbnailsCount:"",originalSizeHuman:"",newSizeHuman:"",percentHuman:"",overallSavingHuman:""};c.imagify.bulk.processIsStopped||(f=a("#cb-select-"+d.groupID).closest(".imagify-row-folder-type"),g=f.next(".imagify-row-working"),i=g.find(".imagify-cell-count-errors span"),o=parseInt(i.text(),10),j=f.closest(".imagify-bulk-table"),k=j.find(".imagify-row-progress"),l=k.find(".bar"),"optimize"===c.imagify.bulk.imagifyAction&&(h=g.find(".imagify-cell-count-optimized span"),n=parseInt(h.text(),10)),c.imagify.bulk.status[d.groupID].id="optimizing",j.find(".imagify-bulk-table-details thead").html(a("#tmpl-imagify-file-header-"+d.groupID).html()),m=j.find(".imagify-bulk-table-details tbody").text(""),l.css("width","0%").find(".percent").text("0%"),k.slideDown().attr("aria-hidden","false"),p=new c.imagify.Optimizer({groupID:d.groupID,context:d.context,level:d.level,bufferSize:imagifyBulk.bufferSizes[d.context],ajaxUrl:c.imagify.bulk.getAjaxUrl("bulkProcess",d),files:e,defaultThumb:c.imagify.bulk.defaultThumb,doneEvent:"mediaProcessed.imagify"}),p.before(function(b){var e;c.imagify.bulk.processIsStopped||(e=c.imagify.template("imagify-file-row-"+d.groupID),c.imagify.bulk.processingMedia.push({context:d.context,mediaID:b.mediaID}),m.prepend(e(a.extend({},q,b,{status:"compressing",icon:"admin-generic rotate",label:imagifyBulk.labels.optimizing}))))}),p.each(function(b){var e,f;if(!c.imagify.bulk.processIsStopped){if(e=c.imagify.template("imagify-file-row-"+d.groupID),f=a("#"+d.groupID+"-"+b.mediaID),a.each(c.imagify.bulk.processingMedia,function(a,e){return e.context!==d.context||e.mediaID!==b.mediaID||(c.imagify.bulk.processingMedia.splice(a,1),!1)}),l.css("width",b.progress+"%").find(".percent").html(b.progress+"%"),b.success)return"already-optimized"!==b.status?(f.replaceWith(e(a.extend({},q,b,{status:"complete",icon:"yes",label:imagifyBulk.labels.complete}))),c.imagify.bulk.drawFileChart(a("#"+d.groupID+"-"+b.mediaID).find(".imagify-cell-percentage canvas"))):f.replaceWith(c.imagify.bulk.displayErrorInRow(e(a.extend({},q,b,{status:"complete",icon:"yes",label:imagifyBulk.labels.alreadyOptimized})),b.error)),void("optimize"===c.imagify.bulk.imagifyAction&&(n+=1,h.text(n)));f.replaceWith(c.imagify.bulk.displayErrorInRow(e(a.extend({},q,b,{status:"error",icon:"dismiss",label:imagifyBulk.labels.error})),b.error||b)),i.length?(o+=1,i.text(o)):(o=1,i=g.find(".imagify-cell-count-errors").html(imagifyBulk.labels.imagesErrorText.replace("%s","<span>1</span>")).find("span")),"over-quota"===b.status&&(p.stopProcess(),c.imagify.bulk.stopProcess(b.status,d))}}),p.done(function(b){c.imagify.bulk.hasMultipleRows&&a("#cb-select-"+d.groupID).prop("checked",!1),b.globalOriginalSize&&(c.imagify.bulk.globalGain+=parseInt(b.globalGain,10),c.imagify.bulk.globalOriginalSize+=parseInt(b.globalOriginalSize,10),c.imagify.bulk.globalOptimizedSize+=parseInt(b.globalOptimizedSize,10)),c.imagify.bulk.processIsStopped||(c.imagify.beat.resetInterval(),c.imagify.beat.enableSuspend(),a.isEmptyObject(c.imagify.bulk.status)||c.imagify.bulk.status[d.groupID].isError||(c.imagify.bulk.status[d.groupID].id="done"),f.addClass("updating"),a.get(c.imagify.bulk.getAjaxUrl("getFolderData",d)).done(function(b){c.imagify.bulk.processIsStopped||(b.success&&a.each(b.data,function(a,b){f.children(".imagify-cell-"+a).html(b)}),c.imagify.bulk.displayFolderRow("resting",f))}).always(function(){c.imagify.bulk.processIsStopped||(f.removeClass("updating"),c.imagify.bulk.folderTypesQueue.length?a(c).trigger("processQueue.imagify"):a(c).trigger("queueEmpty.imagify"))}))}),p.run())},queueEmpty:function(){var b=a(".imagify-bulk-table"),d={},e=!1,f=!0,g="";c.imagify.beat.resetInterval(),c.imagify.beat.enableSuspend(),c.imagify.bulk.displayShareBox(),c.imagify.bulk.folderTypesQueue=[],imagifyBulk.imagifybeatIDs.stats||a.get(c.imagify.bulk.getAjaxUrl("getStats"),{types:c.imagify.bulk.getFolderTypes()}).done(function(a){a.success&&c.imagify.bulk.updateStats(a.data)}),a.isEmptyObject(c.imagify.bulk.status)||(a.each(c.imagify.bulk.status,function(a,b){return b.isError?(e=b.id,f=!1,!1):"no-images"!==b.id?(f=!1,!1):void 0}),e?("invalid-api-key"===e?d={title:imagifyBulk.labels.invalidAPIKeyTitle,type:"info"}:"over-quota"===e?d={title:imagifyBulk.labels.overQuotaTitle,html:a("#tmpl-imagify-overquota-alert").html(),type:"info",customClass:"imagify-swal-has-subtitle imagify-swal-error-header",showConfirmButton:!1}:"get-unoptimized-images"!==e&&"consumed-all-data"!==e||(d={title:imagifyBulk.labels.getUnoptimizedImagesErrorTitle,html:imagifyBulk.labels.getUnoptimizedImagesErrorText,type:"info"}),c.imagify.bulk.displayError(d)):f&&(g=imagifyBulk.labels.nothingToDoText.hasOwnProperty(c.imagify.bulk.imagifyAction)?imagifyBulk.labels.nothingToDoText[c.imagify.bulk.imagifyAction]:imagifyBulk.labels.nothingToDoText.optimize,c.imagify.bulk.displayError({title:imagifyBulk.labels.nothingToDoTitle,html:g,type:"info"}))),c.imagify.bulk.status={},a(c).off("beforeunload",c.imagify.bulk.getConfirmMessage),c.imagify.bulk.displayFolderRow("resting",b.find(".imagify-row-folder-type").not(".updating")),b.find(".imagify-row-progress").slideUp().attr("aria-hidden","true").find(".bar").removeAttr("style").find(".percent").text("0%"),a('.imagify-bulk-table [name="group[]"]:checked').length?a("#imagify-bulk-action").prop("disabled",!1).find(".dashicons").removeClass("rotate"):a("#imagify-bulk-action").find(".dashicons").removeClass("rotate")},share:function(a){var d,e;a.preventDefault(),c.innerWidth?(d=(c.innerWidth-700)/2,e=(c.innerHeight-290)/2):(d=(b.body.clientWidth-700)/2,e=(b.body.clientHeight-290)/2),c.open(this.href,"","status=no, scrollbars=no, menubar=no, top="+e+", left="+d+", width=700, height=290")},addStatsImagifybeat:function(a,b){b[imagifyBulk.imagifybeatIDs.stats]=Object.keys(c.imagify.bulk.getFolderTypes())},processStatsImagifybeat:function(a,b){void 0!==b[imagifyBulk.imagifybeatIDs.stats]&&c.imagify.bulk.updateStats(b[imagifyBulk.imagifybeatIDs.stats])},addQueueImagifybeat:function(a,b){c.imagify.bulk.processingMedia.length&&(b[imagifyBulk.imagifybeatIDs.queue]=c.imagify.bulk.processingMedia)},processQueueImagifybeat:function(b,d){void 0!==d[imagifyBulk.imagifybeatIDs.queue]&&a.each(d[imagifyBulk.imagifybeatIDs.queue],function(b,d){a(c).trigger("mediaProcessed.imagify",[d])})},addRequirementsImagifybeat:function(a,b){b[imagifyBulk.imagifybeatIDs.requirements]=1},processRequirementsImagifybeat:function(a,b){void 0!==b[imagifyBulk.imagifybeatIDs.requirements]&&(b=b[imagifyBulk.imagifybeatIDs.requirements],imagifyBulk.curlMissing=b.curl_missing,imagifyBulk.editorMissing=b.editor_missing,imagifyBulk.extHttpBlocked=b.external_http_blocked,imagifyBulk.apiDown=b.api_down,imagifyBulk.keyIsValid=b.key_is_valid,imagifyBulk.isOverQuota=b.is_over_quota)},drawOverviewChart:function(d){var e,f;if(this.charts.overview.canvas||(this.charts.overview.canvas=b.getElementById("imagify-overview-chart"),this.charts.overview.canvas)){if(d=d&&a.isArray(d)?d:[],this.charts.overview.donut)return void(d.length&&(0===d.reduce(function(a,b){return a+b},0)&&(d[0]=1),this.charts.overview.donut.data.datasets[0].data=d,this.charts.overview.donut.update()));this.charts.overview.data.datasets[0].data=[parseInt(this.charts.overview.canvas.getAttribute("data-unoptimized"),10),parseInt(this.charts.overview.canvas.getAttribute("data-optimized"),10),parseInt(this.charts.overview.canvas.getAttribute("data-errors"),10)],e=a.extend({},this.charts.overview.data),d.length&&(e.datasets[0].data=d),0===e.datasets[0].data.reduce(function(a,b){return a+b},0)&&(e.datasets[0].data[0]=1),this.charts.overview.donut=new c.imagify.Chart(this.charts.overview.canvas,{type:"doughnut",data:e,options:{legend:{display:!1},events:[],animation:{easing:"easeOutBounce"},tooltips:{displayColors:!1,callbacks:{label:function(a,b){return b.datasets[a.datasetIndex].data[a.index]}}},responsive:!1,cutoutPercentage:85}}),f='<ul class="imagify-doughnut-legend">',a.each(e.labels,function(a,b){f+='<li><span style="background-color:'+e.datasets[0].backgroundColor[a]+'"></span>'+b+"</li>"}),f+="</ul>",b.getElementById("imagify-overview-chart-legend").innerHTML=f}},drawFileChart:function(b){var d=this.charts.files.donuts;b.each(function(){var b=parseInt(a(this).closest(".imagify-chart").next(".imagipercent").text().replace("%",""),10);if(void 0!==d[this.id])return d[this.id].data.datasets[0].data[0]=b,d[this.id].data.datasets[0].data[1]=100-b,void d[this.id].update();d[this.id]=new c.imagify.Chart(this,{type:"doughnut",data:{datasets:[{data:[b,100-b],backgroundColor:["#00B3D3","#D8D8D8"],borderColor:"#fff",borderWidth:1}]},options:{legend:{display:!1},events:[],animation:{easing:"easeOutBounce"},tooltips:{enabled:!1},responsive:!1}})}),this.charts.files.donuts=d},drawShareChart:function(){var d;if(this.charts.share.canvas||(this.charts.share.canvas=b.getElementById("imagify-ac-chart"),this.charts.share.canvas)){if(d=parseInt(a(this.charts.share.canvas).closest(".imagify-ac-chart").attr("data-percent"),10),this.charts.share.donut)return this.charts.share.donut.data.datasets[0].data[0]=d,this.charts.share.donut.data.datasets[0].data[1]=100-d,void this.charts.share.donut.update();this.charts.share.donut=new c.imagify.Chart(this.charts.share.canvas,{type:"doughnut",data:{datasets:[{data:[d,100-d],backgroundColor:["#40B1D0","#FFFFFF"],borderWidth:0}]},options:{legend:{display:!1},events:[],animation:{easing:"easeOutBounce"},tooltips:{enabled:!1},responsive:!1,cutoutPercentage:70}})}}},c.imagify.bulk.init()}(jQuery,document,window);
|
assets/js/es6-promise.auto.js
CHANGED
@@ -1156,4 +1156,3 @@ return Promise$3;
|
|
1156 |
|
1157 |
})));
|
1158 |
|
1159 |
-
//# sourceMappingURL=es6-promise.auto.map
|
1156 |
|
1157 |
})));
|
1158 |
|
|
assets/js/options.js
CHANGED
@@ -265,11 +265,11 @@ window.imagify = window.imagify || {};
|
|
265 |
selected = [],
|
266 |
$folders;
|
267 |
|
268 |
-
if ( $button.
|
269 |
return;
|
270 |
}
|
271 |
|
272 |
-
$button.
|
273 |
|
274 |
$folders = $( '#imagify-custom-folders-selected' );
|
275 |
|
@@ -324,7 +324,7 @@ window.imagify = window.imagify || {};
|
|
324 |
} );
|
325 |
} )
|
326 |
.always( function(){
|
327 |
-
$button.
|
328 |
} );
|
329 |
} );
|
330 |
|
@@ -334,11 +334,11 @@ window.imagify = window.imagify || {};
|
|
334 |
$tree = $button.nextAll( '.imagify-folders-sub-tree' ),
|
335 |
selected = [];
|
336 |
|
337 |
-
if ( $button.
|
338 |
return;
|
339 |
}
|
340 |
|
341 |
-
$button.
|
342 |
|
343 |
if ( $tree.length ) {
|
344 |
if ( $button.hasClass( 'imagify-is-open' ) ) {
|
@@ -348,7 +348,7 @@ window.imagify = window.imagify || {};
|
|
348 |
$tree.removeClass( 'hidden' );
|
349 |
$button.addClass( 'imagify-is-open' );
|
350 |
}
|
351 |
-
$button.
|
352 |
return;
|
353 |
}
|
354 |
|
@@ -383,7 +383,7 @@ window.imagify = window.imagify || {};
|
|
383 |
} );
|
384 |
} )
|
385 |
.always( function(){
|
386 |
-
$button.
|
387 |
} );
|
388 |
} );
|
389 |
|
@@ -412,7 +412,7 @@ window.imagify = window.imagify || {};
|
|
412 |
} )(window, document, jQuery);
|
413 |
|
414 |
|
415 |
-
// Generate missing
|
416 |
/* eslint-disable no-underscore-dangle, consistent-this */
|
417 |
(function(w, d, $, undefined) { // eslint-disable-line no-unused-vars, no-shadow, no-shadow-restricted-names
|
418 |
|
@@ -519,7 +519,7 @@ window.imagify = window.imagify || {};
|
|
519 |
this.$progressBar = this.$progressWrap.find( '.bar' );
|
520 |
this.$progressText = this.$progressBar.find( '.percent' );
|
521 |
|
522 |
-
// Enable/Disable the button when the "Convert to
|
523 |
$( '#imagify_convert_to_webp' )
|
524 |
.on( 'change.imagify init.imagify', { imagifyOptionsBulk: this }, this.toggleButton )
|
525 |
.trigger( 'init.imagify' );
|
@@ -539,15 +539,15 @@ window.imagify = window.imagify || {};
|
|
539 |
// Event callbacks =========================================================================
|
540 |
|
541 |
/**
|
542 |
-
* Enable/Disable the button when the "Convert to
|
543 |
*
|
544 |
* @param {object} e Event object.
|
545 |
*/
|
546 |
toggleButton: function ( e ) {
|
547 |
if ( ! this.checked ) {
|
548 |
-
e.data.imagifyOptionsBulk.$button.
|
549 |
} else {
|
550 |
-
e.data.imagifyOptionsBulk.$button.
|
551 |
}
|
552 |
},
|
553 |
|
@@ -577,7 +577,7 @@ window.imagify = window.imagify || {};
|
|
577 |
e.data.imagifyOptionsBulk.totalMedia = 0;
|
578 |
|
579 |
// Disable the button.
|
580 |
-
e.data.imagifyOptionsBulk.$button.
|
581 |
|
582 |
// Add a message to be displayed when the user wants to quit the page.
|
583 |
$( w ).on( 'beforeunload.imagify', e.data.imagifyOptionsBulk.getConfirmMessage );
|
@@ -956,7 +956,7 @@ window.imagify = window.imagify || {};
|
|
956 |
this.$progressText.text( '0' );
|
957 |
|
958 |
// Enable the button.
|
959 |
-
this.$button.
|
960 |
},
|
961 |
|
962 |
// Tools ===================================================================================
|
265 |
selected = [],
|
266 |
$folders;
|
267 |
|
268 |
+
if ( $button.prop('disabled') ) {
|
269 |
return;
|
270 |
}
|
271 |
|
272 |
+
$button.prop( 'disabled', true ).next( 'img' ).attr( 'aria-hidden', 'false' );
|
273 |
|
274 |
$folders = $( '#imagify-custom-folders-selected' );
|
275 |
|
324 |
} );
|
325 |
} )
|
326 |
.always( function(){
|
327 |
+
$button.prop( 'disabled', false ).next( 'img' ).attr( 'aria-hidden', 'true' );
|
328 |
} );
|
329 |
} );
|
330 |
|
334 |
$tree = $button.nextAll( '.imagify-folders-sub-tree' ),
|
335 |
selected = [];
|
336 |
|
337 |
+
if ( $button.prop('disabled') || $button.siblings( ':checkbox' ).is( ':checked' ) ) {
|
338 |
return;
|
339 |
}
|
340 |
|
341 |
+
$button.prop( 'disabled', true ).addClass( 'imagify-loading' );
|
342 |
|
343 |
if ( $tree.length ) {
|
344 |
if ( $button.hasClass( 'imagify-is-open' ) ) {
|
348 |
$tree.removeClass( 'hidden' );
|
349 |
$button.addClass( 'imagify-is-open' );
|
350 |
}
|
351 |
+
$button.prop( 'disabled', false ).removeClass( 'imagify-loading' );
|
352 |
return;
|
353 |
}
|
354 |
|
383 |
} );
|
384 |
} )
|
385 |
.always( function(){
|
386 |
+
$button.prop( 'disabled', false ).removeClass( 'imagify-loading' );
|
387 |
} );
|
388 |
} );
|
389 |
|
412 |
} )(window, document, jQuery);
|
413 |
|
414 |
|
415 |
+
// Generate missing WebP versions ==================================================================
|
416 |
/* eslint-disable no-underscore-dangle, consistent-this */
|
417 |
(function(w, d, $, undefined) { // eslint-disable-line no-unused-vars, no-shadow, no-shadow-restricted-names
|
418 |
|
519 |
this.$progressBar = this.$progressWrap.find( '.bar' );
|
520 |
this.$progressText = this.$progressBar.find( '.percent' );
|
521 |
|
522 |
+
// Enable/Disable the button when the "Convert to WebP" checkbox is checked/unchecked.
|
523 |
$( '#imagify_convert_to_webp' )
|
524 |
.on( 'change.imagify init.imagify', { imagifyOptionsBulk: this }, this.toggleButton )
|
525 |
.trigger( 'init.imagify' );
|
539 |
// Event callbacks =========================================================================
|
540 |
|
541 |
/**
|
542 |
+
* Enable/Disable the button when the "Convert to WebP" checkbox is checked/unchecked.
|
543 |
*
|
544 |
* @param {object} e Event object.
|
545 |
*/
|
546 |
toggleButton: function ( e ) {
|
547 |
if ( ! this.checked ) {
|
548 |
+
e.data.imagifyOptionsBulk.$button.prop( 'disabled', true );
|
549 |
} else {
|
550 |
+
e.data.imagifyOptionsBulk.$button.prop( 'disabled', false );
|
551 |
}
|
552 |
},
|
553 |
|
577 |
e.data.imagifyOptionsBulk.totalMedia = 0;
|
578 |
|
579 |
// Disable the button.
|
580 |
+
e.data.imagifyOptionsBulk.$button.prop( 'disabled', true ).find( '.dashicons' ).addClass( 'rotate' );
|
581 |
|
582 |
// Add a message to be displayed when the user wants to quit the page.
|
583 |
$( w ).on( 'beforeunload.imagify', e.data.imagifyOptionsBulk.getConfirmMessage );
|
956 |
this.$progressText.text( '0' );
|
957 |
|
958 |
// Enable the button.
|
959 |
+
this.$button.prop( 'disabled', false ).find( '.dashicons' ).removeClass( 'rotate' );
|
960 |
},
|
961 |
|
962 |
// Tools ===================================================================================
|
assets/js/options.min.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
window.imagify=window.imagify||{},function(a,b,c,d){var e=!1,f=!1;a("#imagify-settings #api_key").on("blur.imagify",function(){var b=a(this),d=b.val();return""!==a.trim(d)&&(a("#check_api_key").val()===d?(a("#imagify-check-api-container").html('<span class="dashicons dashicons-yes"></span> '+imagifyOptions.labels.ValidApiKeyText),!1):(!0===e?f.abort():(a("#imagify-check-api-container").remove(),b.after('<span id="imagify-check-api-container"><span class="imagify-spinner"></span>'+imagifyOptions.labels.waitApiKeyCheckText+"</span>")),e=!0,void(f=a.get(ajaxurl+c.imagify.concat+"action=imagify_check_api_key_validity&api_key="+b.val()+"&imagifycheckapikeynonce="+a("#imagifycheckapikeynonce").val()).done(function(b){b.success?(a("#imagify-check-api-container").remove(),swal({title:imagifyOptions.labels.ApiKeyCheckSuccessTitle,html:imagifyOptions.labels.ApiKeyCheckSuccessText,type:"success",padding:0,customClass:"imagify-sweet-alert"}).then(function(){location.reload()})):a("#imagify-check-api-container").html('<span class="dashicons dashicons-no"></span> '+b.data),e=!1}))))}),a(".imagify-options-line").css("cursor","pointer").on("click.imagify",function(b){"INPUT"!==b.target.nodeName&&a('input[aria-describedby="'+a(this).attr("id")+'"]').trigger("click.imagify")}),a(".imagify-settings th span").on("click.imagify",function(){var b=a(this).parent().next("td").find(":checkbox");1===b.length&&b.trigger("click.imagify")}),a(".imagify-options-line").find("input").on("change.imagify focus.imagify",function(){var b;("checkbox"!==this.type||this.checked)&&(b=a(this).closest(".imagify-options-line").prev("label").prev(":checkbox"),b.length&&!b[0].checked&&b.prop("checked",!0))}),a('[name="imagify_settings[backup]"]').on("change.imagify",function(){var b=a(this),c=b.siblings("#backup-dir-is-writable"),d={action:"imagify_check_backup_dir_is_writable",_wpnonce:c.data("nonce")};if(b.is(":checked"))return void a.getJSON(ajaxurl,d).done(function(b){a.isPlainObject(b)&&b.success&&(b.data.is_writable?c.addClass("hidden"):c.removeClass("hidden"))});swal({title:imagifyOptions.labels.noBackupTitle,html:imagifyOptions.labels.noBackupText,type:"warning",customClass:"imagify-sweet-alert",padding:0,showCancelButton:!0,cancelButtonText:imagifySwal.labels.cancelButtonText,reverseButtons:!0}).then(function(){c.addClass("hidden")},function(){b.prop("checked",!0)})}),a('[name="imagify_settings[display_webp_method]"]').on("change.imagify init.imagify",function(b){"picture"===b.target.value?a(b.target).closest(".imagify-radio-group").next(".imagify-options-line").removeClass("imagify-faded"):a(b.target).closest(".imagify-radio-group").next(".imagify-options-line").addClass("imagify-faded")}).filter(":checked").trigger("init.imagify")}(jQuery,document,window),function(a,b,c,d){a.imagifyUser&&c.getJSON(ajaxurl,a.imagifyUser).done(function(a){c.isPlainObject(a)&&a.success&&(a.data.id=null,a.data.plan_id=null,a.data.is=[],c.each(a.data,function(b,d){var e=".imagify-user-"+b.replace(/_/g,"-");0===b.indexOf("is_")?d&&a.data.is.push(e):"is"!==b&&c(e).text(d)}),a.data.is.push("best-plan"),c(a.data.is.join(",")).removeClass("hidden"))})}(window,document,jQuery),function(a,b,c,d){function e(b){var d,e,f,g,h,i=!1,j=null;b&&(f=c("#imagify-custom-folders-selected"),g=f.find(".imagify-custom-folder-line"),h=g.find('[value="'+b+'"]'),h.length||(b=b.split("#///#"),d=b[1].replace(/\/+$/,"").toLowerCase(),e=a.imagify.template("imagify-custom-folder"),g.each(function(){var a=c(this),h=a.data("path").replace(/\/+$/,"").toLowerCase();return""!==h&&0===d.indexOf(h)?(i=!0,!1):d<h?(a.before(e({value:b[0],label:b[1]})),g=f.find(".imagify-custom-folder-line"),i=!0,!1):void 0}),i||(f.append(e({value:b[0],label:b[1]})),g=f.find(".imagify-custom-folder-line")),""!==d&&g.each(function(){var a=c(this),b=a.data("path").toLowerCase();null!==j&&0===b.indexOf(j)?a.find(".imagify-custom-folders-remove").trigger("click.imagify"):j=b}),f.next(".hidden").removeClass("hidden")))}imagifyOptions.getFilesTree&&(c("#imagify-add-custom-folder").on("click.imagify",function(){var a,b=c(this),d=[];b.attr("disabled")||(b.attr("disabled","disabled").next("img").attr("aria-hidden","false"),a=c("#imagify-custom-folders-selected"),a.find("input").each(function(){d.push(this.value)}),c.post(imagifyOptions.getFilesTree,{folder:"/",selected:d},null,"json").done(function(a){if(!a.success)return void swal({title:imagifyOptions.labels.error,html:a.data||"",type:"error",padding:0,customClass:"imagify-sweet-alert"});swal({title:imagifyOptions.labels.filesTreeTitle,html:'<div class="imagify-swal-subtitle">'+imagifyOptions.labels.filesTreeSubTitle+'</div><div class="imagify-swal-content"><p class="imagify-folders-information"><i class="dashicons dashicons-info" aria-hidden="true"></i>'+imagifyOptions.labels.cleaningInfo+'</p><ul id="imagify-folders-tree" class="imagify-folders-tree">'+a.data+"</ul></div>",type:"",customClass:"imagify-sweet-alert imagify-swal-has-subtitle imagify-folders-selection",showCancelButton:!0,padding:0,confirmButtonText:imagifyOptions.labels.confirmFilesTreeBtn,cancelButtonText:imagifySwal.labels.cancelButtonText,reverseButtons:!0}).then(function(){var a=c("#imagify-folders-tree input").serializeArray();a.length&&c.each(a,function(a,b){e(b.value)})}).catch(swal.noop)}).fail(function(){swal({title:imagifyOptions.labels.error,type:"error",customClass:"imagify-sweet-alert",padding:0})}).always(function(){b.removeAttr("disabled").next("img").attr("aria-hidden","true")}))}),c(b).on("click.imagify","#imagify-folders-tree [data-folder]",function(){var a=c(this),b=a.nextAll(".imagify-folders-sub-tree"),d=[];if(!a.attr("disabled")&&!a.siblings(":checkbox").is(":checked")){if(a.attr("disabled","disabled").addClass("imagify-loading"),b.length)return a.hasClass("imagify-is-open")?(b.addClass("hidden"),a.removeClass(" imagify-is-open")):(b.removeClass("hidden"),a.addClass("imagify-is-open")),void a.removeAttr("disabled").removeClass("imagify-loading");c("#imagify-custom-folders-selected").find("input").each(function(){d.push(this.value)}),c.post(imagifyOptions.getFilesTree,{folder:a.data("folder"),selected:d},null,"json").done(function(b){if(!b.success)return void swal({title:imagifyOptions.labels.error,html:b.data||"",type:"error",padding:0,customClass:"imagify-sweet-alert"});a.addClass("imagify-is-open").parent().append('<ul class="imagify-folders-sub-tree">'+b.data+"</ul>")}).fail(function(){swal({title:imagifyOptions.labels.error,type:"error",padding:0,customClass:"imagify-sweet-alert"})}).always(function(){a.removeAttr("disabled").removeClass("imagify-loading")})}}),c("#imagify-custom-folders").on("click.imagify",".imagify-custom-folders-remove",function(){var b=c(this).closest(".imagify-custom-folder-line").addClass("imagify-will-remove");a.setTimeout(function(){b.remove(),c("#imagify-custom-folders-selected").siblings(".imagify-success.hidden").removeClass("hidden")},750)}),c("#imagify-add-themes-to-custom-folder").on("click.imagify",function(){var a=c(this);e(a.data("theme")),e(a.data("theme-parent")),a.replaceWith("<p>"+imagifyOptions.labels.themesAdded+"</p>")}))}(window,document,jQuery),function(a,b,c,d){imagifyOptions.bulk&&(a.imagify.optionsBulk={fetchQueue:[],queue:[],processingQueue:[],fetchError:!1,error:!1,working:!1,processIsStopped:!0,processedMedia:0,totalMedia:0,$button:null,$progressWrap:null,$progressBar:null,$progressText:null,init:function(){this.$button=c("#imagify-generate-webp-versions"),this.$progressWrap=this.$button.siblings(".imagify-progress"),this.$progressBar=this.$progressWrap.find(".bar"),this.$progressText=this.$progressBar.find(".percent"),c("#imagify_convert_to_webp").on("change.imagify init.imagify",{imagifyOptionsBulk:this},this.toggleButton).trigger("init.imagify"),this.$button.on("click.imagify",{imagifyOptionsBulk:this},this.maybeLaunchAllProcesses),c(b).on("imagifybeat-send",{imagifyOptionsBulk:this},this.addQueueImagifybeat).on("imagifybeat-tick",{imagifyOptionsBulk:this},this.processQueueImagifybeat).on("imagifybeat-send",this.addRequirementsImagifybeat).on("imagifybeat-tick",{imagifyOptionsBulk:this},this.processRequirementsImagifybeat)},toggleButton:function(a){this.checked?a.data.imagifyOptionsBulk.$button.removeAttr("disabled"):a.data.imagifyOptionsBulk.$button.attr("disabled","disabled")},maybeLaunchAllProcesses:function(b){b.data.imagifyOptionsBulk&&!b.data.imagifyOptionsBulk.working&&(b.data.imagifyOptionsBulk.hasBlockingError(!0)||(b.data.imagifyOptionsBulk.fetchQueue=imagifyOptions.bulk.contexts.slice(),b.data.imagifyOptionsBulk.queue=[],b.data.imagifyOptionsBulk.processingQueue=[],b.data.imagifyOptionsBulk.fetchError=!1,b.data.imagifyOptionsBulk.error=!1,b.data.imagifyOptionsBulk.working=!0,b.data.imagifyOptionsBulk.processIsStopped=!1,b.data.imagifyOptionsBulk.processedMedia=0,b.data.imagifyOptionsBulk.totalMedia=0,b.data.imagifyOptionsBulk.$button.attr("disabled","disabled").find(".dashicons").addClass("rotate"),c(a).on("beforeunload.imagify",b.data.imagifyOptionsBulk.getConfirmMessage),a.imagify.beat.interval(15),a.imagify.beat.disableSuspend(),b.data.imagifyOptionsBulk.fetchIDs()))},getConfirmMessage:function(){return imagifyOptions.bulk.labels.processing},addQueueImagifybeat:function(a,b){a.data.imagifyOptionsBulk&&a.data.imagifyOptionsBulk.processingQueue.length&&(b[imagifyOptions.bulk.imagifybeatIDs.queue]=a.data.imagifyOptionsBulk.processingQueue)},processQueueImagifybeat:function(a,b){a.data.imagifyOptionsBulk&&void 0!==b[imagifyOptions.bulk.imagifybeatIDs.queue]&&c.each(b[imagifyOptions.bulk.imagifybeatIDs.queue],function(b,c){a.data.imagifyOptionsBulk.mediaProcessed(c)})},addRequirementsImagifybeat:function(a,b){b[imagifyOptions.bulk.imagifybeatIDs.requirements]=1},processRequirementsImagifybeat:function(a,b){a.data.imagifyOptionsBulk&&void 0===b[imagifyOptions.bulk.imagifybeatIDs.requirements]||(b=b[imagifyOptions.bulk.imagifybeatIDs.requirements],imagifyOptions.bulk.curlMissing=b.curl_missing,imagifyOptions.bulk.editorMissing=b.editor_missing,imagifyOptions.bulk.extHttpBlocked=b.external_http_blocked,imagifyOptions.bulk.apiDown=b.api_down,imagifyOptions.bulk.keyIsValid=b.key_is_valid,imagifyOptions.bulk.isOverQuota=b.is_over_quota)},fetchIDs:function(){var a,b;if(!this.processIsStopped){if(!this.fetchQueue.length)return this.queue.length?(this.$progressBar.removeAttr("style"),this.$progressText.text("0"+(this.totalMedia?"/"+this.totalMedia:"")),this.$progressWrap.slideDown().attr("aria-hidden","false"),void this.processQueue()):(this.fetchError||(this.fetchError="no-images"),this.stopProcess(this.fetchError),void(this.fetchError=!1));a=this,b=this.fetchQueue.shift(),c.get(this.getAjaxUrl("getMediaIds",b)).done(function(d){var e;if(!a.processIsStopped)return e=d.data&&d.data.message?d.data.message:imagifyOptions.bulk.ajaxErrorText,d.success&&c.isArray(d.data)?void(d.data.length&&(a.totalMedia+=d.data.length,a.queue.push({context:b,optimizeURL:a.getAjaxUrl("bulkProcess",b),mediaIDs:d.data}))):void(a.fetchError||(a.fetchError=e))}).fail(function(){a.fetchError||(a.fetchError="get-unoptimized-images")}).always(function(){a.fetchIDs()})}},processQueue:function(){var a=this;this.processIsStopped||(this.queue.length||this.processingQueue.length)&&c.each(this.queue,function(b,d){if(a.processingQueue.length>=imagifyOptions.bulk.bufferSize)return!1;c.each(d.mediaIDs,function(){if(a.processMedia({context:d.context,mediaID:d.mediaIDs.shift(),optimizeURL:d.optimizeURL}),d.mediaIDs.length||a.queue.shift(),a.processingQueue.length>=imagifyOptions.bulk.bufferSize)return!1})})},processMedia:function(a){var b=this,d={context:a.context,mediaID:a.mediaID};this.processingQueue.push({context:a.context,mediaID:a.mediaID}),c.post({url:a.optimizeURL,data:{media_id:a.mediaID,context:a.context},dataType:"json"}).done(function(a){a.success||b.mediaProcessed(d)}).fail(function(){b.mediaProcessed(d)})},mediaProcessed:function(a){var b=this;this.processIsStopped||(c.each(this.processingQueue,function(c,d){if(a.context===d.context&&a.mediaID===d.mediaID)return b.processingQueue.splice(c,1),!1}),++this.processedMedia,a.progress=Math.floor(this.processedMedia/this.totalMedia*100),this.$progressBar.css("width",a.progress+"%"),this.$progressText.text(this.processedMedia+"/"+this.totalMedia),this.queue.length||this.processingQueue.length?this.processQueue():this.totalMedia===this.processedMedia&&this.queueEmpty())},queueEmpty:function(){var b={};!1!==this.error&&(b="invalid-api-key"===this.error?{title:imagifyOptions.bulk.labels.invalidAPIKeyTitle,type:"info"}:"over-quota"===this.error?{title:imagifyOptions.bulk.labels.overQuotaTitle,html:c("#tmpl-imagify-overquota-alert").html(),type:"info",customClass:"imagify-swal-has-subtitle imagify-swal-error-header",showConfirmButton:!1}:"get-unoptimized-images"===this.error||"consumed-all-data"===this.error?{title:imagifyOptions.bulk.labels.getUnoptimizedImagesErrorTitle,html:imagifyOptions.bulk.labels.getUnoptimizedImagesErrorText,type:"info"}:"no-images"===this.error?{title:imagifyOptions.bulk.labels.nothingToDoTitle,html:imagifyOptions.bulk.labels.nothingToDoText,type:"info"}:"no-backup"===this.error?{title:imagifyOptions.bulk.labels.nothingToDoTitle,html:imagifyOptions.bulk.labels.nothingToDoNoBackupText,type:"info"}:{title:imagifyOptions.bulk.labels.error,html:this.error,type:"info"},this.displayError(b),this.error=!1),this.fetchQueue=[],this.queue=[],this.processingQueue=[],this.fetchError=!1,this.working=!1,this.processIsStopped=!1,this.processedMedia=0,this.totalMedia=0,a.imagify.beat.resetInterval(),a.imagify.beat.enableSuspend(),c(a).off("beforeunload.imagify",this.getConfirmMessage),this.$progressWrap.slideUp().attr("aria-hidden","true"),this.$progressBar.removeAttr("style"),this.$progressText.text("0"),this.$button.removeAttr("disabled").find(".dashicons").removeClass("rotate")},hasBlockingError:function(a){return a=void 0!==a&&a,imagifyOptions.bulk.curlMissing?(a&&this.displayError({html:imagifyOptions.bulk.labels.curlMissing}),!0):imagifyOptions.bulk.editorMissing?(a&&this.displayError({html:imagifyOptions.bulk.labels.editorMissing}),!0):imagifyOptions.bulk.extHttpBlocked?(a&&this.displayError({html:imagifyOptions.bulk.labels.extHttpBlocked}),!0):imagifyOptions.bulk.apiDown?(a&&this.displayError({html:imagifyOptions.bulk.labels.apiDown}),!0):imagifyOptions.bulk.keyIsValid?!!imagifyOptions.bulk.isOverQuota&&(a&&this.displayError({title:imagifyOptions.bulk.labels.overQuotaTitle,html:c("#tmpl-imagify-overquota-alert").html(),type:"info",customClass:"imagify-swal-has-subtitle imagify-swal-error-header",showConfirmButton:!1}),!0):(a&&this.displayError({title:imagifyOptions.bulk.labels.invalidAPIKeyTitle,type:"info"}),!0)},displayError:function(a,b,d){var e={title:"",html:"",type:"error",customClass:"",width:620,padding:0,showCloseButton:!0,showConfirmButton:!0};c.isPlainObject(a)?d=c.extend({},e,a):(d=d||{},d=c.extend({},e,{title:a||"",html:b||""},d)),d.title=d.title||imagifyOptions.bulk.labels.error,d.customClass+=" imagify-sweet-alert",swal(d).catch(swal.noop)},getAjaxUrl:function(b,c){var d;return d=ajaxurl+a.imagify.concat+"_wpnonce="+imagifyOptions.bulk.ajaxNonce,d+="&action="+imagifyOptions.bulk.ajaxActions[b],d+="&context="+c,d+="&imagify_action=generate_webp"},stopProcess:function(a){this.processIsStopped=!0,this.error=a,this.queueEmpty()}},a.imagify.optionsBulk.init())}(window,document,jQuery),function(a,b,c,d){var e=c.propHooks.checked;c.propHooks.checked={set:function(a,b,d){var f;return f=void 0===e?a[d]=b:e(a,b,d),c(a).trigger("change.imagify"),f}},c(".imagify-select-all").on("click.imagify",function(){var a=c(this),b=a.data("action"),d=a.closest(".imagify-select-all-buttons"),e=d.prev(".imagify-check-group"),f="imagify-is-inactive";if(a.hasClass(f))return!1;d.find(".imagify-select-all").removeClass(f).attr("aria-disabled","false"),a.addClass(f).attr("aria-disabled","true"),e.find(".imagify-row-check").prop("checked",function(){return!c(this).is(":hidden,:disabled")&&"select"===b})}),c(".imagify-check-group .imagify-row-check").on("change.imagify",function(){var a=c(this).closest(".imagify-check-group"),b=a.find(".imagify-row-check"),d=b.filter(":visible:enabled").length,e=b.filter(":visible:enabled:checked").length,f=a.next(".imagify-select-all-buttons"),g="imagify-is-inactive";0===e&&f.find('[data-action="unselect"]').addClass(g).attr("aria-disabled","true"),e===d&&f.find('[data-action="select"]').addClass(g).attr("aria-disabled","true"),e!==d&&e>0&&f.find(".imagify-select-all").removeClass(g).attr("aria-disabled","false")})}(window,document,jQuery);
|
1 |
+
window.imagify=window.imagify||{},function(a,b,c,d){var e=!1,f=!1;a("#imagify-settings #api_key").on("blur.imagify",function(){var b=a(this),d=b.val();return""!==a.trim(d)&&(a("#check_api_key").val()===d?(a("#imagify-check-api-container").html('<span class="dashicons dashicons-yes"></span> '+imagifyOptions.labels.ValidApiKeyText),!1):(!0===e?f.abort():(a("#imagify-check-api-container").remove(),b.after('<span id="imagify-check-api-container"><span class="imagify-spinner"></span>'+imagifyOptions.labels.waitApiKeyCheckText+"</span>")),e=!0,void(f=a.get(ajaxurl+c.imagify.concat+"action=imagify_check_api_key_validity&api_key="+b.val()+"&imagifycheckapikeynonce="+a("#imagifycheckapikeynonce").val()).done(function(b){b.success?(a("#imagify-check-api-container").remove(),swal({title:imagifyOptions.labels.ApiKeyCheckSuccessTitle,html:imagifyOptions.labels.ApiKeyCheckSuccessText,type:"success",padding:0,customClass:"imagify-sweet-alert"}).then(function(){location.reload()})):a("#imagify-check-api-container").html('<span class="dashicons dashicons-no"></span> '+b.data),e=!1}))))}),a(".imagify-options-line").css("cursor","pointer").on("click.imagify",function(b){"INPUT"!==b.target.nodeName&&a('input[aria-describedby="'+a(this).attr("id")+'"]').trigger("click.imagify")}),a(".imagify-settings th span").on("click.imagify",function(){var b=a(this).parent().next("td").find(":checkbox");1===b.length&&b.trigger("click.imagify")}),a(".imagify-options-line").find("input").on("change.imagify focus.imagify",function(){var b;("checkbox"!==this.type||this.checked)&&(b=a(this).closest(".imagify-options-line").prev("label").prev(":checkbox"),b.length&&!b[0].checked&&b.prop("checked",!0))}),a('[name="imagify_settings[backup]"]').on("change.imagify",function(){var b=a(this),c=b.siblings("#backup-dir-is-writable"),d={action:"imagify_check_backup_dir_is_writable",_wpnonce:c.data("nonce")};if(b.is(":checked"))return void a.getJSON(ajaxurl,d).done(function(b){a.isPlainObject(b)&&b.success&&(b.data.is_writable?c.addClass("hidden"):c.removeClass("hidden"))});swal({title:imagifyOptions.labels.noBackupTitle,html:imagifyOptions.labels.noBackupText,type:"warning",customClass:"imagify-sweet-alert",padding:0,showCancelButton:!0,cancelButtonText:imagifySwal.labels.cancelButtonText,reverseButtons:!0}).then(function(){c.addClass("hidden")},function(){b.prop("checked",!0)})}),a('[name="imagify_settings[display_webp_method]"]').on("change.imagify init.imagify",function(b){"picture"===b.target.value?a(b.target).closest(".imagify-radio-group").next(".imagify-options-line").removeClass("imagify-faded"):a(b.target).closest(".imagify-radio-group").next(".imagify-options-line").addClass("imagify-faded")}).filter(":checked").trigger("init.imagify")}(jQuery,document,window),function(a,b,c,d){a.imagifyUser&&c.getJSON(ajaxurl,a.imagifyUser).done(function(a){c.isPlainObject(a)&&a.success&&(a.data.id=null,a.data.plan_id=null,a.data.is=[],c.each(a.data,function(b,d){var e=".imagify-user-"+b.replace(/_/g,"-");0===b.indexOf("is_")?d&&a.data.is.push(e):"is"!==b&&c(e).text(d)}),a.data.is.push("best-plan"),c(a.data.is.join(",")).removeClass("hidden"))})}(window,document,jQuery),function(a,b,c,d){function e(b){var d,e,f,g,h,i=!1,j=null;b&&(f=c("#imagify-custom-folders-selected"),g=f.find(".imagify-custom-folder-line"),h=g.find('[value="'+b+'"]'),h.length||(b=b.split("#///#"),d=b[1].replace(/\/+$/,"").toLowerCase(),e=a.imagify.template("imagify-custom-folder"),g.each(function(){var a=c(this),h=a.data("path").replace(/\/+$/,"").toLowerCase();return""!==h&&0===d.indexOf(h)?(i=!0,!1):d<h?(a.before(e({value:b[0],label:b[1]})),g=f.find(".imagify-custom-folder-line"),i=!0,!1):void 0}),i||(f.append(e({value:b[0],label:b[1]})),g=f.find(".imagify-custom-folder-line")),""!==d&&g.each(function(){var a=c(this),b=a.data("path").toLowerCase();null!==j&&0===b.indexOf(j)?a.find(".imagify-custom-folders-remove").trigger("click.imagify"):j=b}),f.next(".hidden").removeClass("hidden")))}imagifyOptions.getFilesTree&&(c("#imagify-add-custom-folder").on("click.imagify",function(){var a,b=c(this),d=[];b.prop("disabled")||(b.prop("disabled",!0).next("img").attr("aria-hidden","false"),a=c("#imagify-custom-folders-selected"),a.find("input").each(function(){d.push(this.value)}),c.post(imagifyOptions.getFilesTree,{folder:"/",selected:d},null,"json").done(function(a){if(!a.success)return void swal({title:imagifyOptions.labels.error,html:a.data||"",type:"error",padding:0,customClass:"imagify-sweet-alert"});swal({title:imagifyOptions.labels.filesTreeTitle,html:'<div class="imagify-swal-subtitle">'+imagifyOptions.labels.filesTreeSubTitle+'</div><div class="imagify-swal-content"><p class="imagify-folders-information"><i class="dashicons dashicons-info" aria-hidden="true"></i>'+imagifyOptions.labels.cleaningInfo+'</p><ul id="imagify-folders-tree" class="imagify-folders-tree">'+a.data+"</ul></div>",type:"",customClass:"imagify-sweet-alert imagify-swal-has-subtitle imagify-folders-selection",showCancelButton:!0,padding:0,confirmButtonText:imagifyOptions.labels.confirmFilesTreeBtn,cancelButtonText:imagifySwal.labels.cancelButtonText,reverseButtons:!0}).then(function(){var a=c("#imagify-folders-tree input").serializeArray();a.length&&c.each(a,function(a,b){e(b.value)})}).catch(swal.noop)}).fail(function(){swal({title:imagifyOptions.labels.error,type:"error",customClass:"imagify-sweet-alert",padding:0})}).always(function(){b.prop("disabled",!1).next("img").attr("aria-hidden","true")}))}),c(b).on("click.imagify","#imagify-folders-tree [data-folder]",function(){var a=c(this),b=a.nextAll(".imagify-folders-sub-tree"),d=[];if(!a.prop("disabled")&&!a.siblings(":checkbox").is(":checked")){if(a.prop("disabled",!0).addClass("imagify-loading"),b.length)return a.hasClass("imagify-is-open")?(b.addClass("hidden"),a.removeClass(" imagify-is-open")):(b.removeClass("hidden"),a.addClass("imagify-is-open")),void a.prop("disabled",!1).removeClass("imagify-loading");c("#imagify-custom-folders-selected").find("input").each(function(){d.push(this.value)}),c.post(imagifyOptions.getFilesTree,{folder:a.data("folder"),selected:d},null,"json").done(function(b){if(!b.success)return void swal({title:imagifyOptions.labels.error,html:b.data||"",type:"error",padding:0,customClass:"imagify-sweet-alert"});a.addClass("imagify-is-open").parent().append('<ul class="imagify-folders-sub-tree">'+b.data+"</ul>")}).fail(function(){swal({title:imagifyOptions.labels.error,type:"error",padding:0,customClass:"imagify-sweet-alert"})}).always(function(){a.prop("disabled",!1).removeClass("imagify-loading")})}}),c("#imagify-custom-folders").on("click.imagify",".imagify-custom-folders-remove",function(){var b=c(this).closest(".imagify-custom-folder-line").addClass("imagify-will-remove");a.setTimeout(function(){b.remove(),c("#imagify-custom-folders-selected").siblings(".imagify-success.hidden").removeClass("hidden")},750)}),c("#imagify-add-themes-to-custom-folder").on("click.imagify",function(){var a=c(this);e(a.data("theme")),e(a.data("theme-parent")),a.replaceWith("<p>"+imagifyOptions.labels.themesAdded+"</p>")}))}(window,document,jQuery),function(a,b,c,d){imagifyOptions.bulk&&(a.imagify.optionsBulk={fetchQueue:[],queue:[],processingQueue:[],fetchError:!1,error:!1,working:!1,processIsStopped:!0,processedMedia:0,totalMedia:0,$button:null,$progressWrap:null,$progressBar:null,$progressText:null,init:function(){this.$button=c("#imagify-generate-webp-versions"),this.$progressWrap=this.$button.siblings(".imagify-progress"),this.$progressBar=this.$progressWrap.find(".bar"),this.$progressText=this.$progressBar.find(".percent"),c("#imagify_convert_to_webp").on("change.imagify init.imagify",{imagifyOptionsBulk:this},this.toggleButton).trigger("init.imagify"),this.$button.on("click.imagify",{imagifyOptionsBulk:this},this.maybeLaunchAllProcesses),c(b).on("imagifybeat-send",{imagifyOptionsBulk:this},this.addQueueImagifybeat).on("imagifybeat-tick",{imagifyOptionsBulk:this},this.processQueueImagifybeat).on("imagifybeat-send",this.addRequirementsImagifybeat).on("imagifybeat-tick",{imagifyOptionsBulk:this},this.processRequirementsImagifybeat)},toggleButton:function(a){this.checked?a.data.imagifyOptionsBulk.$button.prop("disabled",!1):a.data.imagifyOptionsBulk.$button.prop("disabled",!0)},maybeLaunchAllProcesses:function(b){b.data.imagifyOptionsBulk&&!b.data.imagifyOptionsBulk.working&&(b.data.imagifyOptionsBulk.hasBlockingError(!0)||(b.data.imagifyOptionsBulk.fetchQueue=imagifyOptions.bulk.contexts.slice(),b.data.imagifyOptionsBulk.queue=[],b.data.imagifyOptionsBulk.processingQueue=[],b.data.imagifyOptionsBulk.fetchError=!1,b.data.imagifyOptionsBulk.error=!1,b.data.imagifyOptionsBulk.working=!0,b.data.imagifyOptionsBulk.processIsStopped=!1,b.data.imagifyOptionsBulk.processedMedia=0,b.data.imagifyOptionsBulk.totalMedia=0,b.data.imagifyOptionsBulk.$button.prop("disabled",!0).find(".dashicons").addClass("rotate"),c(a).on("beforeunload.imagify",b.data.imagifyOptionsBulk.getConfirmMessage),a.imagify.beat.interval(15),a.imagify.beat.disableSuspend(),b.data.imagifyOptionsBulk.fetchIDs()))},getConfirmMessage:function(){return imagifyOptions.bulk.labels.processing},addQueueImagifybeat:function(a,b){a.data.imagifyOptionsBulk&&a.data.imagifyOptionsBulk.processingQueue.length&&(b[imagifyOptions.bulk.imagifybeatIDs.queue]=a.data.imagifyOptionsBulk.processingQueue)},processQueueImagifybeat:function(a,b){a.data.imagifyOptionsBulk&&void 0!==b[imagifyOptions.bulk.imagifybeatIDs.queue]&&c.each(b[imagifyOptions.bulk.imagifybeatIDs.queue],function(b,c){a.data.imagifyOptionsBulk.mediaProcessed(c)})},addRequirementsImagifybeat:function(a,b){b[imagifyOptions.bulk.imagifybeatIDs.requirements]=1},processRequirementsImagifybeat:function(a,b){a.data.imagifyOptionsBulk&&void 0===b[imagifyOptions.bulk.imagifybeatIDs.requirements]||(b=b[imagifyOptions.bulk.imagifybeatIDs.requirements],imagifyOptions.bulk.curlMissing=b.curl_missing,imagifyOptions.bulk.editorMissing=b.editor_missing,imagifyOptions.bulk.extHttpBlocked=b.external_http_blocked,imagifyOptions.bulk.apiDown=b.api_down,imagifyOptions.bulk.keyIsValid=b.key_is_valid,imagifyOptions.bulk.isOverQuota=b.is_over_quota)},fetchIDs:function(){var a,b;if(!this.processIsStopped){if(!this.fetchQueue.length)return this.queue.length?(this.$progressBar.removeAttr("style"),this.$progressText.text("0"+(this.totalMedia?"/"+this.totalMedia:"")),this.$progressWrap.slideDown().attr("aria-hidden","false"),void this.processQueue()):(this.fetchError||(this.fetchError="no-images"),this.stopProcess(this.fetchError),void(this.fetchError=!1));a=this,b=this.fetchQueue.shift(),c.get(this.getAjaxUrl("getMediaIds",b)).done(function(d){var e;if(!a.processIsStopped)return e=d.data&&d.data.message?d.data.message:imagifyOptions.bulk.ajaxErrorText,d.success&&c.isArray(d.data)?void(d.data.length&&(a.totalMedia+=d.data.length,a.queue.push({context:b,optimizeURL:a.getAjaxUrl("bulkProcess",b),mediaIDs:d.data}))):void(a.fetchError||(a.fetchError=e))}).fail(function(){a.fetchError||(a.fetchError="get-unoptimized-images")}).always(function(){a.fetchIDs()})}},processQueue:function(){var a=this;this.processIsStopped||(this.queue.length||this.processingQueue.length)&&c.each(this.queue,function(b,d){if(a.processingQueue.length>=imagifyOptions.bulk.bufferSize)return!1;c.each(d.mediaIDs,function(){if(a.processMedia({context:d.context,mediaID:d.mediaIDs.shift(),optimizeURL:d.optimizeURL}),d.mediaIDs.length||a.queue.shift(),a.processingQueue.length>=imagifyOptions.bulk.bufferSize)return!1})})},processMedia:function(a){var b=this,d={context:a.context,mediaID:a.mediaID};this.processingQueue.push({context:a.context,mediaID:a.mediaID}),c.post({url:a.optimizeURL,data:{media_id:a.mediaID,context:a.context},dataType:"json"}).done(function(a){a.success||b.mediaProcessed(d)}).fail(function(){b.mediaProcessed(d)})},mediaProcessed:function(a){var b=this;this.processIsStopped||(c.each(this.processingQueue,function(c,d){if(a.context===d.context&&a.mediaID===d.mediaID)return b.processingQueue.splice(c,1),!1}),++this.processedMedia,a.progress=Math.floor(this.processedMedia/this.totalMedia*100),this.$progressBar.css("width",a.progress+"%"),this.$progressText.text(this.processedMedia+"/"+this.totalMedia),this.queue.length||this.processingQueue.length?this.processQueue():this.totalMedia===this.processedMedia&&this.queueEmpty())},queueEmpty:function(){var b={};!1!==this.error&&(b="invalid-api-key"===this.error?{title:imagifyOptions.bulk.labels.invalidAPIKeyTitle,type:"info"}:"over-quota"===this.error?{title:imagifyOptions.bulk.labels.overQuotaTitle,html:c("#tmpl-imagify-overquota-alert").html(),type:"info",customClass:"imagify-swal-has-subtitle imagify-swal-error-header",showConfirmButton:!1}:"get-unoptimized-images"===this.error||"consumed-all-data"===this.error?{title:imagifyOptions.bulk.labels.getUnoptimizedImagesErrorTitle,html:imagifyOptions.bulk.labels.getUnoptimizedImagesErrorText,type:"info"}:"no-images"===this.error?{title:imagifyOptions.bulk.labels.nothingToDoTitle,html:imagifyOptions.bulk.labels.nothingToDoText,type:"info"}:"no-backup"===this.error?{title:imagifyOptions.bulk.labels.nothingToDoTitle,html:imagifyOptions.bulk.labels.nothingToDoNoBackupText,type:"info"}:{title:imagifyOptions.bulk.labels.error,html:this.error,type:"info"},this.displayError(b),this.error=!1),this.fetchQueue=[],this.queue=[],this.processingQueue=[],this.fetchError=!1,this.working=!1,this.processIsStopped=!1,this.processedMedia=0,this.totalMedia=0,a.imagify.beat.resetInterval(),a.imagify.beat.enableSuspend(),c(a).off("beforeunload.imagify",this.getConfirmMessage),this.$progressWrap.slideUp().attr("aria-hidden","true"),this.$progressBar.removeAttr("style"),this.$progressText.text("0"),this.$button.prop("disabled",!1).find(".dashicons").removeClass("rotate")},hasBlockingError:function(a){return a=void 0!==a&&a,imagifyOptions.bulk.curlMissing?(a&&this.displayError({html:imagifyOptions.bulk.labels.curlMissing}),!0):imagifyOptions.bulk.editorMissing?(a&&this.displayError({html:imagifyOptions.bulk.labels.editorMissing}),!0):imagifyOptions.bulk.extHttpBlocked?(a&&this.displayError({html:imagifyOptions.bulk.labels.extHttpBlocked}),!0):imagifyOptions.bulk.apiDown?(a&&this.displayError({html:imagifyOptions.bulk.labels.apiDown}),!0):imagifyOptions.bulk.keyIsValid?!!imagifyOptions.bulk.isOverQuota&&(a&&this.displayError({title:imagifyOptions.bulk.labels.overQuotaTitle,html:c("#tmpl-imagify-overquota-alert").html(),type:"info",customClass:"imagify-swal-has-subtitle imagify-swal-error-header",showConfirmButton:!1}),!0):(a&&this.displayError({title:imagifyOptions.bulk.labels.invalidAPIKeyTitle,type:"info"}),!0)},displayError:function(a,b,d){var e={title:"",html:"",type:"error",customClass:"",width:620,padding:0,showCloseButton:!0,showConfirmButton:!0};c.isPlainObject(a)?d=c.extend({},e,a):(d=d||{},d=c.extend({},e,{title:a||"",html:b||""},d)),d.title=d.title||imagifyOptions.bulk.labels.error,d.customClass+=" imagify-sweet-alert",swal(d).catch(swal.noop)},getAjaxUrl:function(b,c){var d;return d=ajaxurl+a.imagify.concat+"_wpnonce="+imagifyOptions.bulk.ajaxNonce,d+="&action="+imagifyOptions.bulk.ajaxActions[b],d+="&context="+c,d+="&imagify_action=generate_webp"},stopProcess:function(a){this.processIsStopped=!0,this.error=a,this.queueEmpty()}},a.imagify.optionsBulk.init())}(window,document,jQuery),function(a,b,c,d){var e=c.propHooks.checked;c.propHooks.checked={set:function(a,b,d){var f;return f=void 0===e?a[d]=b:e(a,b,d),c(a).trigger("change.imagify"),f}},c(".imagify-select-all").on("click.imagify",function(){var a=c(this),b=a.data("action"),d=a.closest(".imagify-select-all-buttons"),e=d.prev(".imagify-check-group"),f="imagify-is-inactive";if(a.hasClass(f))return!1;d.find(".imagify-select-all").removeClass(f).attr("aria-disabled","false"),a.addClass(f).attr("aria-disabled","true"),e.find(".imagify-row-check").prop("checked",function(){return!c(this).is(":hidden,:disabled")&&"select"===b})}),c(".imagify-check-group .imagify-row-check").on("change.imagify",function(){var a=c(this).closest(".imagify-check-group"),b=a.find(".imagify-row-check"),d=b.filter(":visible:enabled").length,e=b.filter(":visible:enabled:checked").length,f=a.next(".imagify-select-all-buttons"),g="imagify-is-inactive";0===e&&f.find('[data-action="unselect"]').addClass(g).attr("aria-disabled","true"),e===d&&f.find('[data-action="select"]').addClass(g).attr("aria-disabled","true"),e!==d&&e>0&&f.find(".imagify-select-all").removeClass(g).attr("aria-disabled","false")})}(window,document,jQuery);
|
assets/js/pricing-modal.js
CHANGED
@@ -152,12 +152,21 @@
|
|
152 |
quo = datas.quota, // 1000 (MB) - 5000 images (monthly/onetime)
|
153 |
cos = datas.cost, // 3.49 (onetime)
|
154 |
name = -1 === quo ? 'Unlimited' : (quo >= 1000 ? quo / 1000 + ' GB' : quo + ' MB'),
|
155 |
-
pcs = 'monthly' === type ? {
|
156 |
pcsd = pcs, // Used if discount is active.
|
157 |
-
percent, $datas_c, datas_content;
|
|
|
|
|
|
|
158 |
|
159 |
// Change pricing value only if discount in percentage is active and if offer is a monthly and not a onetime.
|
160 |
-
if (
|
|
|
|
|
|
|
|
|
|
|
|
|
161 |
percent = (100 - promo.coupon_value) / 100;
|
162 |
pcs = 'monthly' === type ? {
|
163 |
monthly: mon * percent,
|
@@ -176,12 +185,16 @@
|
|
176 |
$offer.find('.imagify-number-block').html(imagifyModal.getHtmlPrice(pcs, 'monthly'));
|
177 |
|
178 |
// discount prices
|
179 |
-
|
180 |
-
|
181 |
-
|
|
|
|
|
|
|
|
|
|
|
182 |
$offer.find('.imagify-price-block').before(imagifyModal.getHtmlDiscountPrice(pcsd, 'monthly'));
|
183 |
}
|
184 |
-
|
185 |
// Nb images.
|
186 |
$offer.find('.imagify-approx-nb').text(quo * 5);
|
187 |
|
@@ -194,9 +207,9 @@
|
|
194 |
$datas_c = $offer.find('.imagify-payment-btn-select-plan').length ? $offer.find('.imagify-payment-btn-select-plan') : $offer;
|
195 |
|
196 |
if ('monthly' === type) {
|
197 |
-
datas_content = '{"' + lab + '":{"id":' + id + ',"name":"' + name + '","data":' + quo + ',"dataf":"' + name + '","imgs":' + (quo * 5) + ',"prices":{"monthly":' + pcs.monthly + ',"yearly":' + pcs.yearly + ',"add":' + add + '}}}';
|
198 |
} else {
|
199 |
-
datas_content = '{"ot' + lab + '":{"id":' + id + ',"name":"' + name + '","data":' + quo + ',"dataf":"' + name + '","imgs":' + (quo * 5) + ',"price":' + pcs + '}}';
|
200 |
}
|
201 |
|
202 |
$datas_c.attr('data-offer', datas_content);
|
@@ -239,9 +252,9 @@
|
|
239 |
//$( '.imagify-global-amount' ).text( price ); // Not used.
|
240 |
|
241 |
if ('0.00' === price || 0 === price) {
|
242 |
-
$('#imagify-modal-checkout-btn').
|
243 |
} else {
|
244 |
-
$('#imagify-modal-checkout-btn').
|
245 |
}
|
246 |
},
|
247 |
|
@@ -249,19 +262,22 @@
|
|
249 |
var code = $('#imagify-coupon-code').val(),
|
250 |
$cptext, $label, $section, nonce;
|
251 |
|
|
|
|
|
|
|
|
|
252 |
if ('' === code) {
|
|
|
|
|
253 |
return;
|
254 |
}
|
255 |
|
256 |
-
$cptext = $('.imagify-coupon-text');
|
257 |
-
$label = $cptext.find('label');
|
258 |
-
$section = $('.imagify-coupon-section');
|
259 |
nonce = $('#imagify-get-pricing-modal').data('nonce');
|
260 |
|
261 |
$cptext.addClass('checking');
|
262 |
|
263 |
// Get the true prices.
|
264 |
-
$.post(ajaxurl, {
|
265 |
var coupon_value;
|
266 |
|
267 |
$cptext.removeClass('checking');
|
@@ -272,10 +288,20 @@
|
|
272 |
$label.text(imagifyPricingModal.labels.errorCouponAPI);
|
273 |
} else if (response.data.success) {
|
274 |
coupon_value = 'percentage' === response.data.coupon_type ? response.data.value + '%' : '$' + response.data.value;
|
275 |
-
$
|
276 |
-
$
|
277 |
-
|
278 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
279 |
} else {
|
280 |
$section.removeClass('validated').addClass('invalid');
|
281 |
$label.text(response.data.detail);
|
@@ -304,6 +330,7 @@
|
|
304 |
};
|
305 |
|
306 |
imagifyModal.$modal.find('.imagify-modal-loader').hide().show();
|
|
|
307 |
|
308 |
/**
|
309 |
* TODO: change the way to waterfall requests.
|
@@ -341,7 +368,7 @@
|
|
341 |
$mo_tpl, $ot_tpl,
|
342 |
ot_clone, mo_clone,
|
343 |
$estim_block, $offers_block,
|
344 |
-
$banners, date_end, promo, discount;
|
345 |
|
346 |
if (! discount_response.success) {
|
347 |
// TODO: replace modal content by any information.
|
@@ -415,6 +442,7 @@
|
|
415 |
|
416 |
// Show the modal content.
|
417 |
imagifyModal.$modal.find('.imagify-modal-loader').fadeOut(300);
|
|
|
418 |
return;
|
419 |
}
|
420 |
|
@@ -422,23 +450,39 @@
|
|
422 |
w.imagify_discount_datas = promo_datas;
|
423 |
|
424 |
if (promo_datas.is_active) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
425 |
$banners = $('.imagify-modal-promotion');
|
426 |
date_end = promo_datas.date_end.split('T')[0];
|
427 |
promo = promo_datas.coupon_value;
|
428 |
discount = 'percentage' === promo_datas.coupon_type ? promo + '%' : '$' + promo;
|
429 |
|
430 |
-
// Fill coupon code.
|
431 |
-
$('#imagify-coupon-code').val(promo_datas.label).attr('readonly', true);
|
432 |
|
433 |
// Show banners.
|
434 |
$banners.addClass('active').attr('aria-hidden', 'false');
|
435 |
|
436 |
// Populate banners.
|
437 |
$banners.find('.imagify-promotion-number').text(discount);
|
|
|
438 |
$banners.find('.imagify-promotion-date').text(date_end);
|
439 |
|
440 |
-
// Auto validate coupon.
|
441 |
-
imagifyModal.checkCoupon();
|
442 |
}
|
443 |
|
444 |
/**
|
@@ -475,7 +519,6 @@
|
|
475 |
// Add this offer as pre-selected item in pre-checkout view.
|
476 |
$offer.addClass('imagify-offer-selected').find('.imagify-checkbox').prop('checked', true);
|
477 |
}
|
478 |
-
|
479 |
// Populate the Pre-checkout view depending on user_cons.
|
480 |
imagifyModal.populateOffer($offer, value, 'monthly');
|
481 |
}
|
@@ -522,7 +565,15 @@
|
|
522 |
ot_html += $tpl[0].outerHTML;
|
523 |
});
|
524 |
}
|
525 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
526 |
// Fill pricing tables.
|
527 |
if ($mo_tpl.parent().find('.imagify-offer-line')) {
|
528 |
$mo_tpl.parent().find('.imagify-offer-line').remove();
|
@@ -538,6 +589,7 @@
|
|
538 |
|
539 |
// Show the content.
|
540 |
imagifyModal.$modal.find('.imagify-modal-loader').fadeOut(300);
|
|
|
541 |
|
542 |
}); // Third AJAX request to get discount information.
|
543 |
|
@@ -583,6 +635,14 @@
|
|
583 |
ot: false
|
584 |
};
|
585 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
586 |
/**
|
587 |
* Paid monthly plan.
|
588 |
*/
|
@@ -590,17 +650,21 @@
|
|
590 |
// if this is the unlimited plan, save it; we may need to come back to it.
|
591 |
if (0 > value.quota) {
|
592 |
unlimitedPlan = {
|
593 |
-
index:
|
594 |
-
selected:
|
|
|
|
|
595 |
};
|
596 |
}
|
597 |
|
598 |
// This is the biggest plan we've seen so far. Save it in case we need it later.
|
599 |
if (value.quota > biggestPlan.quota) {
|
600 |
biggestPlan = {
|
601 |
-
index:
|
602 |
-
selected:
|
603 |
-
quota:
|
|
|
|
|
604 |
};
|
605 |
}
|
606 |
|
@@ -620,8 +684,10 @@
|
|
620 |
if (('undefined' === typeof plan) || (plan.quota > value.quota)) {
|
621 |
plan = value;
|
622 |
suggested.mo = {
|
623 |
-
index:
|
624 |
-
selected:
|
|
|
|
|
625 |
};
|
626 |
}
|
627 |
|
@@ -660,16 +726,20 @@
|
|
660 |
|
661 |
// Suggested monthly plan.
|
662 |
suggested.ot = {
|
663 |
-
index:
|
664 |
-
selected:
|
|
|
|
|
665 |
};
|
666 |
return false;
|
667 |
});
|
668 |
|
669 |
if (false === suggested.ot) {
|
670 |
suggested.ot = {
|
671 |
-
index:
|
672 |
-
selected:
|
|
|
|
|
673 |
};
|
674 |
}
|
675 |
|
@@ -688,8 +758,10 @@
|
|
688 |
|
689 |
// Suggested one-time plan.
|
690 |
suggested.ot = {
|
691 |
-
index:
|
692 |
-
selected:
|
|
|
|
|
693 |
};
|
694 |
return false;
|
695 |
});
|
@@ -704,8 +776,10 @@
|
|
704 |
* In that case we fallback to the biggest available, and we need to increase the monthly plan.
|
705 |
*/
|
706 |
suggested.ot = {
|
707 |
-
index:
|
708 |
-
selected:
|
|
|
|
|
709 |
};
|
710 |
|
711 |
// Reset monthly plan.
|
@@ -723,8 +797,10 @@
|
|
723 |
|
724 |
// Suggested monthly plan.
|
725 |
suggested.mo = {
|
726 |
-
index:
|
727 |
-
selected:
|
|
|
|
|
728 |
};
|
729 |
return false;
|
730 |
});
|
@@ -735,8 +811,10 @@
|
|
735 |
* In that case we fallback to the biggest available.
|
736 |
*/
|
737 |
suggested.mo = {
|
738 |
-
index:
|
739 |
-
selected:
|
|
|
|
|
740 |
};
|
741 |
}
|
742 |
|
@@ -825,6 +903,7 @@
|
|
825 |
},
|
826 |
|
827 |
switchToView: function ($view, data) {
|
|
|
828 |
var viewId = $view.attr('id'),
|
829 |
$modalContent = imagifyModal.$modal.children('.imagify-modal-content');
|
830 |
|
@@ -962,7 +1041,7 @@
|
|
962 |
checkPluginMessage: function (e) {
|
963 |
var origin = e.origin || e.originalEvent.origin; // eslint-disable-line no-shadow
|
964 |
|
965 |
-
if (
|
966 |
return;
|
967 |
}
|
968 |
|
@@ -977,6 +1056,25 @@
|
|
977 |
imagifyModal.paymentSuccess();
|
978 |
break;
|
979 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
980 |
}
|
981 |
};
|
982 |
|
@@ -1014,6 +1112,8 @@
|
|
1014 |
*/
|
1015 |
$(d).on('modalClosed.imagify', '.imagify-payment-modal', function () {
|
1016 |
// Reset viewing class & aria-labelledby.
|
|
|
|
|
1017 |
$(this).find('.imagify-modal-content').removeClass('imagify-success-viewing imagify-iframe-viewing');
|
1018 |
|
1019 |
// Reset first view after fadeout ~= 300 ms.
|
@@ -1021,6 +1121,11 @@
|
|
1021 |
$('.imagify-modal-views').hide();
|
1022 |
$('#imagify-pre-checkout-view').show();
|
1023 |
}, 300);
|
|
|
|
|
|
|
|
|
|
|
1024 |
});
|
1025 |
|
1026 |
/**
|
@@ -1074,7 +1179,7 @@
|
|
1074 |
|
1075 |
e.preventDefault();
|
1076 |
|
1077 |
-
imagifyModal.switchToView(imagifyModal.$plansView, {
|
1078 |
});
|
1079 |
|
1080 |
/**
|
@@ -1096,7 +1201,8 @@
|
|
1096 |
monthly_txt = is_onetime ? '' : '<span class="imagify-price-by">' + $offer_line.find('.imagify-price-by').text() + '</span>',
|
1097 |
discount = $offer_line.find('.imagify-price-discount').html(),
|
1098 |
imgs = $offer_line.find('.imagify-approx-nb').text(),
|
1099 |
-
offer_size = $offer_line.find('.imagify-offer-size').text()
|
|
|
1100 |
|
1101 |
e.preventDefault();
|
1102 |
|
@@ -1107,7 +1213,15 @@
|
|
1107 |
$target_line.find('.imagify-number-block').html(price + monthly_txt);
|
1108 |
|
1109 |
// Change discount.
|
1110 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1111 |
|
1112 |
// Change approx images nb.
|
1113 |
$target_line.find('.imagify-approx-nb').text(imgs);
|
@@ -1130,6 +1244,18 @@
|
|
1130 |
$target_line.find('.imagify-inline-options').find('input:radio:checked').trigger('change.imagify');
|
1131 |
}
|
1132 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1133 |
// Update price information in button.
|
1134 |
imagifyModal.populatePayBtn();
|
1135 |
});
|
@@ -1177,7 +1303,6 @@
|
|
1177 |
imagifyModal.switchToView(imagifyModal.$paymentView);
|
1178 |
|
1179 |
checkout_datas.period = imagifyModal.getPeriod();
|
1180 |
-
|
1181 |
imagifyModal.iframeSetSrc(checkout_datas);
|
1182 |
});
|
1183 |
|
152 |
quo = datas.quota, // 1000 (MB) - 5000 images (monthly/onetime)
|
153 |
cos = datas.cost, // 3.49 (onetime)
|
154 |
name = -1 === quo ? 'Unlimited' : (quo >= 1000 ? quo / 1000 + ' GB' : quo + ' MB'),
|
155 |
+
pcs = 'monthly' === type ? {monthly: mon, yearly: Math.round(ann / 12 * 100) / 100} : cos,
|
156 |
pcsd = pcs, // Used if discount is active.
|
157 |
+
percent, $datas_c, datas_content, applies_to = [];
|
158 |
+
|
159 |
+
applies_to = imagifyModal.getPromoAppliesTo(promo);
|
160 |
+
|
161 |
|
162 |
// Change pricing value only if discount in percentage is active and if offer is a monthly and not a onetime.
|
163 |
+
if (
|
164 |
+
promo.is_active
|
165 |
+
&& 'percentage' === promo.coupon_type
|
166 |
+
&& 'monthly' === type
|
167 |
+
&& (0 < mon)
|
168 |
+
&& (applies_to.includes(lab) || 'all' === applies_to[0])
|
169 |
+
) {
|
170 |
percent = (100 - promo.coupon_value) / 100;
|
171 |
pcs = 'monthly' === type ? {
|
172 |
monthly: mon * percent,
|
185 |
$offer.find('.imagify-number-block').html(imagifyModal.getHtmlPrice(pcs, 'monthly'));
|
186 |
|
187 |
// discount prices
|
188 |
+
$offer.find('.imagify-price-block').prev('.imagify-price-discount').remove();
|
189 |
+
if (
|
190 |
+
promo.is_active
|
191 |
+
&& 'percentage' === promo.coupon_type
|
192 |
+
&& 'monthly' === type
|
193 |
+
&& (0 < mon)
|
194 |
+
&& (applies_to.includes(lab) || 'all' === applies_to[0])
|
195 |
+
) {
|
196 |
$offer.find('.imagify-price-block').before(imagifyModal.getHtmlDiscountPrice(pcsd, 'monthly'));
|
197 |
}
|
|
|
198 |
// Nb images.
|
199 |
$offer.find('.imagify-approx-nb').text(quo * 5);
|
200 |
|
207 |
$datas_c = $offer.find('.imagify-payment-btn-select-plan').length ? $offer.find('.imagify-payment-btn-select-plan') : $offer;
|
208 |
|
209 |
if ('monthly' === type) {
|
210 |
+
datas_content = '{"' + lab + '":{"id":' + id + ',"name":"' + name + '","label":"' + lab + '","data":' + quo + ',"dataf":"' + name + '","imgs":' + (quo * 5) + ',"prices":{"monthly":' + pcs.monthly + ',"yearly":' + pcs.yearly + ',"add":' + add + '}}}';
|
211 |
} else {
|
212 |
+
datas_content = '{"ot' + lab + '":{"id":' + id + ',"name":"' + name + '","label":"' + lab + '","data":' + quo + ',"dataf":"' + name + '","imgs":' + (quo * 5) + ',"price":' + pcs + '}}';
|
213 |
}
|
214 |
|
215 |
$datas_c.attr('data-offer', datas_content);
|
252 |
//$( '.imagify-global-amount' ).text( price ); // Not used.
|
253 |
|
254 |
if ('0.00' === price || 0 === price) {
|
255 |
+
$('#imagify-modal-checkout-btn').prop('disabled', true).addClass('imagify-button-disabled');
|
256 |
} else {
|
257 |
+
$('#imagify-modal-checkout-btn').prop('disabled', false).removeClass('imagify-button-disabled');
|
258 |
}
|
259 |
},
|
260 |
|
262 |
var code = $('#imagify-coupon-code').val(),
|
263 |
$cptext, $label, $section, nonce;
|
264 |
|
265 |
+
$cptext = $('.imagify-coupon-text');
|
266 |
+
$label = $cptext.find('label');
|
267 |
+
$section = $('.imagify-coupon-section');
|
268 |
+
|
269 |
if ('' === code) {
|
270 |
+
$section.removeClass('validated').removeClass('invalid');
|
271 |
+
$label.html(imagifyPricingModal.labels.defaultCouponLabel);
|
272 |
return;
|
273 |
}
|
274 |
|
|
|
|
|
|
|
275 |
nonce = $('#imagify-get-pricing-modal').data('nonce');
|
276 |
|
277 |
$cptext.addClass('checking');
|
278 |
|
279 |
// Get the true prices.
|
280 |
+
$.post(ajaxurl, {action: 'imagify_check_coupon', coupon: code, imagifynonce: nonce}, function (response) {
|
281 |
var coupon_value;
|
282 |
|
283 |
$cptext.removeClass('checking');
|
288 |
$label.text(imagifyPricingModal.labels.errorCouponAPI);
|
289 |
} else if (response.data.success) {
|
290 |
coupon_value = 'percentage' === response.data.coupon_type ? response.data.value + '%' : '$' + response.data.value;
|
291 |
+
var $selected_plan_line = $('.imagify-pre-checkout-view .imagify-pre-checkout-offers .imagify-offer-line');
|
292 |
+
var offer_data = JSON.parse($selected_plan_line.attr('data-offer'));
|
293 |
+
var applies_to = imagifyModal.getPromoAppliesTo(response.data);
|
294 |
+
if ( applies_to.includes(offer_data[Object.keys(offer_data)[0]].label ) || "all" === applies_to[0] ){
|
295 |
+
$section.removeClass('invalid').addClass('validated');
|
296 |
+
$label.html(imagifyPricingModal.labels.successCouponAPI);
|
297 |
+
$label.find('.imagify-coupon-offer').text(coupon_value);
|
298 |
+
$label.find('.imagify-coupon-word').text(code);
|
299 |
+
} else {
|
300 |
+
$section.removeClass('validated').addClass('invalid');
|
301 |
+
$label.html(imagifyPricingModal.labels.errorCouponPlan);
|
302 |
+
$('#imagify-coupon-code').val('');
|
303 |
+
|
304 |
+
}
|
305 |
} else {
|
306 |
$section.removeClass('validated').addClass('invalid');
|
307 |
$label.text(response.data.detail);
|
330 |
};
|
331 |
|
332 |
imagifyModal.$modal.find('.imagify-modal-loader').hide().show();
|
333 |
+
imagifyModal.$modal.addClass('imagify-modal-loading');
|
334 |
|
335 |
/**
|
336 |
* TODO: change the way to waterfall requests.
|
368 |
$mo_tpl, $ot_tpl,
|
369 |
ot_clone, mo_clone,
|
370 |
$estim_block, $offers_block,
|
371 |
+
$banners, date_end, plan_names, promo, discount;
|
372 |
|
373 |
if (! discount_response.success) {
|
374 |
// TODO: replace modal content by any information.
|
442 |
|
443 |
// Show the modal content.
|
444 |
imagifyModal.$modal.find('.imagify-modal-loader').fadeOut(300);
|
445 |
+
imagifyModal.$modal.removeClass('imagify-modal-loading');
|
446 |
return;
|
447 |
}
|
448 |
|
450 |
w.imagify_discount_datas = promo_datas;
|
451 |
|
452 |
if (promo_datas.is_active) {
|
453 |
+
if (promo_datas.applies_to instanceof Array) {
|
454 |
+
plan_names = [];
|
455 |
+
var plan_list = [];
|
456 |
+
|
457 |
+
for (var plan_infos = 0; plan_infos < promo_datas.applies_to.length; plan_infos++) {
|
458 |
+
plan_list.push(promo_datas.applies_to[plan_infos].plan_name);
|
459 |
+
}
|
460 |
+
|
461 |
+
plan_list.forEach(function (item) {
|
462 |
+
if (! plan_names.includes(item)) {
|
463 |
+
plan_names.push(item);
|
464 |
+
}
|
465 |
+
});
|
466 |
+
|
467 |
+
plan_names = plan_names.join(', ');
|
468 |
+
} else {
|
469 |
+
plan_names = promo_datas.applies_to;
|
470 |
+
}
|
471 |
+
|
472 |
$banners = $('.imagify-modal-promotion');
|
473 |
date_end = promo_datas.date_end.split('T')[0];
|
474 |
promo = promo_datas.coupon_value;
|
475 |
discount = 'percentage' === promo_datas.coupon_type ? promo + '%' : '$' + promo;
|
476 |
|
|
|
|
|
477 |
|
478 |
// Show banners.
|
479 |
$banners.addClass('active').attr('aria-hidden', 'false');
|
480 |
|
481 |
// Populate banners.
|
482 |
$banners.find('.imagify-promotion-number').text(discount);
|
483 |
+
$banners.find('.imagify-promotion-plan-name').text(plan_names);
|
484 |
$banners.find('.imagify-promotion-date').text(date_end);
|
485 |
|
|
|
|
|
486 |
}
|
487 |
|
488 |
/**
|
519 |
// Add this offer as pre-selected item in pre-checkout view.
|
520 |
$offer.addClass('imagify-offer-selected').find('.imagify-checkbox').prop('checked', true);
|
521 |
}
|
|
|
522 |
// Populate the Pre-checkout view depending on user_cons.
|
523 |
imagifyModal.populateOffer($offer, value, 'monthly');
|
524 |
}
|
565 |
ot_html += $tpl[0].outerHTML;
|
566 |
});
|
567 |
}
|
568 |
+
if (promo_datas){
|
569 |
+
var applies_to = imagifyModal.getPromoAppliesTo(promo_datas);
|
570 |
+
if ( applies_to.includes(suggested.mo.plan_label) || applies_to.includes(suggested.ot.plan_label) || 'all' === applies_to[0]){
|
571 |
+
$('#imagify-coupon-code').val(promo_datas.label);
|
572 |
+
}
|
573 |
+
if (promo_datas.is_active) {
|
574 |
+
imagifyModal.checkCoupon();
|
575 |
+
}
|
576 |
+
}
|
577 |
// Fill pricing tables.
|
578 |
if ($mo_tpl.parent().find('.imagify-offer-line')) {
|
579 |
$mo_tpl.parent().find('.imagify-offer-line').remove();
|
589 |
|
590 |
// Show the content.
|
591 |
imagifyModal.$modal.find('.imagify-modal-loader').fadeOut(300);
|
592 |
+
imagifyModal.$modal.removeClass('imagify-modal-loading');
|
593 |
|
594 |
}); // Third AJAX request to get discount information.
|
595 |
|
635 |
ot: false
|
636 |
};
|
637 |
|
638 |
+
if (0 > offers.ot.length){
|
639 |
+
var last_ot_plan_id = offers.ot[offers.ot.length - 1].id;
|
640 |
+
var last_ot_plan_label = offers.ot[offers.ot.length - 1].label;
|
641 |
+
}
|
642 |
+
if (0 > offers.ot.length){
|
643 |
+
var last_mo_plan_id = offers.mo[offers.mo.length - 1].id;
|
644 |
+
var last_mo_plan_label = offers.mo[offers.mo.length - 1].label;
|
645 |
+
}
|
646 |
/**
|
647 |
* Paid monthly plan.
|
648 |
*/
|
650 |
// if this is the unlimited plan, save it; we may need to come back to it.
|
651 |
if (0 > value.quota) {
|
652 |
unlimitedPlan = {
|
653 |
+
index: index,
|
654 |
+
selected: 1,
|
655 |
+
plan_id: value.id,
|
656 |
+
plan_label: value.label
|
657 |
};
|
658 |
}
|
659 |
|
660 |
// This is the biggest plan we've seen so far. Save it in case we need it later.
|
661 |
if (value.quota > biggestPlan.quota) {
|
662 |
biggestPlan = {
|
663 |
+
index: index,
|
664 |
+
selected: 1,
|
665 |
+
quota: value.quota,
|
666 |
+
plan_id: value.id,
|
667 |
+
plan_label: value.label
|
668 |
};
|
669 |
}
|
670 |
|
684 |
if (('undefined' === typeof plan) || (plan.quota > value.quota)) {
|
685 |
plan = value;
|
686 |
suggested.mo = {
|
687 |
+
index: index,
|
688 |
+
selected: (freeQuota > consumption.month) && (freeQuota > consumption.total) ? 0 : 1,
|
689 |
+
plan_id: value.id,
|
690 |
+
plan_label: value.label
|
691 |
};
|
692 |
}
|
693 |
|
726 |
|
727 |
// Suggested monthly plan.
|
728 |
suggested.ot = {
|
729 |
+
index: index,
|
730 |
+
selected: 0,
|
731 |
+
plan_id: value.id,
|
732 |
+
plan_label: value.label
|
733 |
};
|
734 |
return false;
|
735 |
});
|
736 |
|
737 |
if (false === suggested.ot) {
|
738 |
suggested.ot = {
|
739 |
+
index: offers.ot.length - 1,
|
740 |
+
selected: 0,
|
741 |
+
plan_id: last_ot_plan_id,
|
742 |
+
plan_label: last_ot_plan_label
|
743 |
};
|
744 |
}
|
745 |
|
758 |
|
759 |
// Suggested one-time plan.
|
760 |
suggested.ot = {
|
761 |
+
index: index,
|
762 |
+
selected: 1,
|
763 |
+
plan_id: value.id,
|
764 |
+
plan_label: value.label
|
765 |
};
|
766 |
return false;
|
767 |
});
|
776 |
* In that case we fallback to the biggest available, and we need to increase the monthly plan.
|
777 |
*/
|
778 |
suggested.ot = {
|
779 |
+
index: offers.ot.length - 1,
|
780 |
+
selected: 1,
|
781 |
+
plan_id: last_ot_plan_id,
|
782 |
+
plan_label: last_ot_plan_label
|
783 |
};
|
784 |
|
785 |
// Reset monthly plan.
|
797 |
|
798 |
// Suggested monthly plan.
|
799 |
suggested.mo = {
|
800 |
+
index: index,
|
801 |
+
selected: 1,
|
802 |
+
plan_id: value.id,
|
803 |
+
plan_label: value.label
|
804 |
};
|
805 |
return false;
|
806 |
});
|
811 |
* In that case we fallback to the biggest available.
|
812 |
*/
|
813 |
suggested.mo = {
|
814 |
+
index: offers.mo.length - 1,
|
815 |
+
selected: 1,
|
816 |
+
plan_id: last_mo_plan_id,
|
817 |
+
plan_label: last_mo_plan_label
|
818 |
};
|
819 |
}
|
820 |
|
903 |
},
|
904 |
|
905 |
switchToView: function ($view, data) {
|
906 |
+
|
907 |
var viewId = $view.attr('id'),
|
908 |
$modalContent = imagifyModal.$modal.children('.imagify-modal-content');
|
909 |
|
1041 |
checkPluginMessage: function (e) {
|
1042 |
var origin = e.origin || e.originalEvent.origin; // eslint-disable-line no-shadow
|
1043 |
|
1044 |
+
if ( imagifyPricingModal.imagify_app_domain !== origin ) {
|
1045 |
return;
|
1046 |
}
|
1047 |
|
1056 |
imagifyModal.paymentSuccess();
|
1057 |
break;
|
1058 |
}
|
1059 |
+
},
|
1060 |
+
getPromoAppliesTo: function(promo){
|
1061 |
+
var applies_to = [];
|
1062 |
+
if (promo.applies_to instanceof Array) {
|
1063 |
+
var plan_list = [];
|
1064 |
+
|
1065 |
+
for (var plan_infos = 0; plan_infos < promo.applies_to.length; plan_infos++) {
|
1066 |
+
plan_list.push(promo.applies_to[plan_infos].plan_name);
|
1067 |
+
}
|
1068 |
+
|
1069 |
+
plan_list.forEach(function (item) {
|
1070 |
+
if (! applies_to.includes(item)) {
|
1071 |
+
applies_to.push(item);
|
1072 |
+
}
|
1073 |
+
});
|
1074 |
+
} else {
|
1075 |
+
applies_to = [promo.applies_to];
|
1076 |
+
}
|
1077 |
+
return applies_to;
|
1078 |
}
|
1079 |
};
|
1080 |
|
1112 |
*/
|
1113 |
$(d).on('modalClosed.imagify', '.imagify-payment-modal', function () {
|
1114 |
// Reset viewing class & aria-labelledby.
|
1115 |
+
$('#imagify-coupon-code').val('');
|
1116 |
+
|
1117 |
$(this).find('.imagify-modal-content').removeClass('imagify-success-viewing imagify-iframe-viewing');
|
1118 |
|
1119 |
// Reset first view after fadeout ~= 300 ms.
|
1121 |
$('.imagify-modal-views').hide();
|
1122 |
$('#imagify-pre-checkout-view').show();
|
1123 |
}, 300);
|
1124 |
+
|
1125 |
+
//delay scrolltop top to avoid flickering
|
1126 |
+
setTimeout(function () {
|
1127 |
+
$('.imagify-payment-modal').find('.imagify-modal-content').scrollTop(0);
|
1128 |
+
}, 400);
|
1129 |
});
|
1130 |
|
1131 |
/**
|
1179 |
|
1180 |
e.preventDefault();
|
1181 |
|
1182 |
+
imagifyModal.switchToView(imagifyModal.$plansView, {tab: tab});
|
1183 |
});
|
1184 |
|
1185 |
/**
|
1201 |
monthly_txt = is_onetime ? '' : '<span class="imagify-price-by">' + $offer_line.find('.imagify-price-by').text() + '</span>',
|
1202 |
discount = $offer_line.find('.imagify-price-discount').html(),
|
1203 |
imgs = $offer_line.find('.imagify-approx-nb').text(),
|
1204 |
+
offer_size = $offer_line.find('.imagify-offer-size').text(),
|
1205 |
+
$coupon_input = $('#imagify-coupon-code');
|
1206 |
|
1207 |
e.preventDefault();
|
1208 |
|
1213 |
$target_line.find('.imagify-number-block').html(price + monthly_txt);
|
1214 |
|
1215 |
// Change discount.
|
1216 |
+
if (discount) {
|
1217 |
+
if ($target_line.find('.imagify-price-discount').length <= 0) {
|
1218 |
+
$target_line.find('.imagify-col-price').prepend('<span class="imagify-price-discount"></span>');
|
1219 |
+
}
|
1220 |
+
$target_line.find('.imagify-price-discount').html(discount);
|
1221 |
+
$target_line.find('.imagify-price-discount').show();
|
1222 |
+
} else {
|
1223 |
+
$target_line.find('.imagify-price-discount').hide();
|
1224 |
+
}
|
1225 |
|
1226 |
// Change approx images nb.
|
1227 |
$target_line.find('.imagify-approx-nb').text(imgs);
|
1244 |
$target_line.find('.imagify-inline-options').find('input:radio:checked').trigger('change.imagify');
|
1245 |
}
|
1246 |
|
1247 |
+
$coupon_input = $('#imagify-coupon-code');
|
1248 |
+
$coupon_input.val('');
|
1249 |
+
|
1250 |
+
if ( w.imagify_discount_datas ){
|
1251 |
+
var applies_to = imagifyModal.getPromoAppliesTo(w.imagify_discount_datas);
|
1252 |
+
if ( applies_to.includes(datas[Object.keys(datas)[0]].label ) || "all" === applies_to[0] ){
|
1253 |
+
$coupon_input.val(w.imagify_discount_datas.label);
|
1254 |
+
}
|
1255 |
+
}
|
1256 |
+
|
1257 |
+
imagifyModal.checkCoupon();
|
1258 |
+
|
1259 |
// Update price information in button.
|
1260 |
imagifyModal.populatePayBtn();
|
1261 |
});
|
1303 |
imagifyModal.switchToView(imagifyModal.$paymentView);
|
1304 |
|
1305 |
checkout_datas.period = imagifyModal.getPeriod();
|
|
|
1306 |
imagifyModal.iframeSetSrc(checkout_datas);
|
1307 |
});
|
1308 |
|
assets/js/pricing-modal.min.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
!function(a,b,c,d){a(b).on("click.imagify",".imagify-tab",function(b){var c,d=a(this);b.preventDefault(),d.hasClass("imagify-current")||(c=d.find("a").attr("href")||"#"+d.find("a").attr("aria-controls"),d.closest(".imagify-tabs").next(".imagify-tabs-contents").find(".imagify-tab-content").hide().attr("aria-hidden","true"),a(c).fadeIn(275).attr("aria-hidden","false"),d.closest(".imagify-tabs").find(".imagify-tab").removeClass("imagify-current").attr("aria-selected","false"),d.addClass("imagify-current").attr("aria-selected","true"))})}(jQuery,document,window),function(a,b,c,d){var e={};a("#imagify-pricing-modal").length&&(e={$modal:a("#imagify-pricing-modal"),$checkboxes:a(".imagify-offer-line .imagify-checkbox"),$radios:a(".imagify-payment-modal .imagify-radio-line input"),$preView:a("#imagify-pre-checkout-view"),$plansView:a("#imagify-plans-selection-view").hide(),$paymentView:a("#imagify-payment-process-view").hide(),$successView:a("#imagify-success-view").hide(),$anotherBtn:a(".imagify-choose-another-plan"),speedFadeIn:300,getHtmlPrice:function(a,b){var c,d,e,f,g;return b||(b=null),"object"!=typeof a?(a+="",a=a.split("."),a[1]=1===a[1].length?a[1]+"0":(""+a[1]).substring(0,2),g='<span class="imagify-price-big">'+a[0]+"</span> ",g+='<span class="imagify-price-mini">.'+a[1]+"</span>"):(c=a.monthly+"",d=a.yearly+"",e="0"===c?["0","00"]:c.split("."),f="0"===d?["0","00"]:d.split("."),g='<span class="imagify-switch-my">',g+='<span aria-hidden="'+("monthly"===b?"false":"true")+'" class="imagify-monthly">',g+='<span class="imagify-price-big">'+e[0]+"</span> ",g+='<span class="imagify-price-mini">.'+(1===e[1].length?e[1]+"0":(""+e[1]).substring(0,2))+"</span>",g+="</span> ",g+='<span aria-hidden="'+("yearly"===b?"false":"true")+'" class="imagify-yearly">',g+='<span class="imagify-price-big">'+f[0]+"</span> ",g+='<span class="imagify-price-mini">.'+(1===f[1].length?f[1]+"0":(""+f[1]).substring(0,2))+"</span>",g+="</span>",g+="</span>")},getHtmlDiscountPrice:function(a,b){var c,d,e="";return b||(b=null),"object"==typeof a?(c=a.monthly+"",d=a.yearly+"",e+='<span class="imagify-price-discount">',e+='<span class="imagify-price-discount-dollar">$</span>',e+='<span class="imagify-switch-my">',e+='<span aria-hidden="'+("monthly"===b?"false":"true")+'" class="imagify-monthly">',e+='<span class="imagify-price-discount-number">'+c+"</span>",e+="</span>",e+='<span aria-hidden="'+("yearly"===b?"false":"true")+'" class="imagify-yearly">',e+='<span class="imagify-price-discount-number">'+d+"</span>",e+="</span>",e+="</span>",e+="</span>"):(a+="",e+='<span class="imagify-price-discount">',e+='<span class="imagify-price-discount-dollar">$</span>',e+='<span class="imagify-price-discount-number">'+a+"</span>",e+="</span>"),e},populateOffer:function(a,b,d,f){var g,h,i,j=c.imagify_discount_datas,k=b.additional_gb,l=b.annual_cost,m=b.id,n=b.label,o=b.monthly_cost,p=b.quota,q=b.cost,r=-1===p?"Unlimited":p>=1e3?p/1e3+" GB":p+" MB",s="monthly"===d?{monthly:o,yearly:Math.round(l/12*100)/100}:q,t=s;return j.is_active&&"percentage"===j.coupon_type&&"monthly"===d&&(g=(100-j.coupon_value)/100,s="monthly"===d?{monthly:o*g,yearly:Math.round(l*g/12*100)/100}:q*g),void 0!==f&&a.addClass("imagify-"+d+"-"+n+f),a.find(".imagify-offer-size").text(r),a.find(".imagify-number-block").html(e.getHtmlPrice(s,"monthly")),j.is_active&&"percentage"===j.coupon_type&&"monthly"===d&&(a.find(".imagify-price-block").prev(".imagify-price-discount").remove(),a.find(".imagify-price-block").before(e.getHtmlDiscountPrice(t,"monthly"))),a.find(".imagify-approx-nb").text(5*p),"monthly"===d&&a.find(".imagify-price-add-data").text("$"+k),h=a.find(".imagify-payment-btn-select-plan").length?a.find(".imagify-payment-btn-select-plan"):a,i="monthly"===d?'{"'+n+'":{"id":'+m+',"name":"'+r+'","data":'+p+',"dataf":"'+r+'","imgs":'+5*p+',"prices":{"monthly":'+s.monthly+',"yearly":'+s.yearly+',"add":'+k+"}}}":'{"ot'+n+'":{"id":'+m+',"name":"'+r+'","data":'+p+',"dataf":"'+r+'","imgs":'+5*p+',"price":'+s+"}}",h.attr("data-offer",i),a},populatePayBtn:function(){var b,c,d=a(".imagify-offer-monthly"),e=a(".imagify-offer-onetime"),f=0,g=0,h=0;d.length&&(b=JSON.parse(d.attr("data-offer")),d.hasClass("imagify-offer-selected")&&(g=a("#imagify-subscription-monthly").filter(":checked").length?b[Object.keys(b)[0]].prices.monthly:12*b[Object.keys(b)[0]].prices.yearly)),e.length&&(c=JSON.parse(e.attr("data-offer")),e.hasClass("imagify-offer-selected")&&(h=c[Object.keys(c)[0]].price)),f=parseFloat(h+g).toFixed(2),"0.00"===f||0===f?a("#imagify-modal-checkout-btn").attr("disabled","disabled").addClass("imagify-button-disabled"):a("#imagify-modal-checkout-btn").removeAttr("disabled").removeClass("imagify-button-disabled")},checkCoupon:function(){var b,c,d,e,f=a("#imagify-coupon-code").val();""!==f&&(b=a(".imagify-coupon-text"),c=b.find("label"),d=a(".imagify-coupon-section"),e=a("#imagify-get-pricing-modal").data("nonce"),b.addClass("checking"),a.post(ajaxurl,{action:"imagify_check_coupon",coupon:f,imagifynonce:e},function(a){var e;b.removeClass("checking"),a.success?a.data.success?(e="percentage"===a.data.coupon_type?a.data.value+"%":"$"+a.data.value,d.removeClass("invalid").addClass("validated"),c.html(imagifyPricingModal.labels.successCouponAPI),c.find(".imagify-coupon-offer").text(e),c.find(".imagify-coupon-word").text(f)):(d.removeClass("validated").addClass("invalid"),c.text(a.data.detail)):(d.removeClass("validated").addClass("invalid"),c.text(imagifyPricingModal.labels.errorCouponAPI))}))},getPricing:function(b){var d=b.data("nonce"),f={action:"imagify_get_prices",imagifynonce:d},g={action:"imagify_get_images_counts",imagifynonce:d},h={action:"imagify_get_discount",imagifynonce:d};e.$modal.find(".imagify-modal-loader").hide().show(),a.post(ajaxurl,f,function(b){if(!b.success)return void e.populatePayBtn();a.post(ajaxurl,g,function(d){d.success&&a.post(ajaxurl,h,function(f){var g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w=25,x="",y="";if(f.success){if(g=d.data,h=b.data,i=f.data,j={mo:[],ot:[]},k={month:g.average_month_size.raw/Math.pow(1024,2),total:g.total_library_size.raw/Math.pow(1024,2)},m=a("#imagify-offer-monthly-template"),n=a("#imagify-offer-onetime-template"),o=n.html(),p=m.html(),q=a(".imagify-estimation-block"),a.each(h.monthlies,function(a,b){(void 0===b.active||void 0!==b.active&&!0===b.active)&&("free"===b.label&&(w=b.quota),j.mo.push(b))}),a.each(h.onetimes,function(a,b){(void 0===b.active||void 0!==b.active&&!0===b.active)&&j.ot.push(b)}),q.removeClass("imagify-analyzing"),q.find(".average-month-size").text(g.average_month_size.human),q.find(".total-library-size").text(g.total_library_size.human),k.total+k.month<w?a(".imagify-pre-checkout-offers .imagify-modal-title").addClass("imagify-enough-free"):a(".imagify-enough-free").removeClass("imagify-enough-free"),a(".imagify-offer-selected").removeClass("imagify-offer-selected").find(".imagify-checkbox").prop("checked",!1),null===j.mo||null===j.ot)return r=a(".imagify-pre-checkout-offers"),r.hide().attr("aria-hidden",!0),r.closest(".imagify-modal-views").find(".imagify-popin-message").remove(),r.after('<div class="imagify-popin-message imagify-error"><p>'+imagifyPricingModal.labels.errorPriceAPI+"</p></div>"),void e.$modal.find(".imagify-modal-loader").fadeOut(300);c.imagify_discount_datas=i,i.is_active&&(s=a(".imagify-modal-promotion"),t=i.date_end.split("T")[0],u=i.coupon_value,v="percentage"===i.coupon_type?u+"%":"$"+u,a("#imagify-coupon-code").val(i.label).attr("readonly",!0),s.addClass("active").attr("aria-hidden","false"),s.find(".imagify-promotion-number").text(v),s.find(".imagify-promotion-date").text(t),e.checkCoupon()),l=e.getSuggestedOffers(j,k,w),0===j.mo.length?(a(".imagify-pre-checkout-offers .imagify-offer-monthly").remove(),a(".imagify-tabs").remove(),a(".imagify-pricing-tab-monthly").remove()):a.each(j.mo,function(b,c){var d,f,g="";if(b-l.mo.index>2)return!0;b===l.mo.index&&(f=a(".imagify-pre-checkout-offers .imagify-offer-monthly"),l.mo.selected&&(g=" imagify-offer-selected",f.addClass("imagify-offer-selected").find(".imagify-checkbox").prop("checked",!0)),e.populateOffer(f,c,"monthly")),d=a(p).clone(),d=e.populateOffer(d,c,"monthly",g),y+=d[0].outerHTML}),0===j.ot.length?(a(".imagify-pre-checkout-offers .imagify-offer-onetime").remove(),a(".imagify-tabs").remove(),a(".imagify-pricing-tab-onetime").remove()):a.each(j.ot,function(b,c){var d,f,g="";b===l.ot.index&&(f=a(".imagify-pre-checkout-offers .imagify-offer-onetime"),l.ot.selected&&(g=" imagify-offer-selected",f.addClass("imagify-offer-selected").find(".imagify-checkbox").prop("checked",!0)),e.populateOffer(f,c,"onetime")),d=a(o).clone(),d=e.populateOffer(d,c,"onetime",g),x+=d[0].outerHTML}),m.parent().find(".imagify-offer-line")&&m.parent().find(".imagify-offer-line").remove(),m.before(y),n.parent().find(".imagify-offer-line")&&n.parent().find(".imagify-offer-line").remove(),n.before(x),e.$modal.find(".imagify-modal-loader").fadeOut(300)}})}),e.populatePayBtn()})},getSuggestedOffers:function(b,c,d){var e,f,g=c.total+c.month,h={quota:0},i={mo:!1,ot:!1};return a.each(b.mo,function(a,b){return 0>b.quota&&(f={index:a,selected:1}),b.quota>h.quota&&(h={index:a,selected:1,quota:b.quota}),0===b.monthly_cost&&0===b.annual_cost||(0>=b.quota&&c.month>b.quota||c.total>b.quota||(!(0<=b.quota&&c.month<b.quota&&c.total<b.quota)||((void 0===e||e.quota>b.quota)&&(e=b,i.mo={index:a,selected:d>c.month&&d>c.total?0:1}),!0)))}),!1===i.mo&&(i.mo=void 0!==f?f:h),g-=b.mo[i.mo.index].quota,0===b.ot.length?i:g<=0?(a.each(b.ot,function(a,b){return b.quota<c.total||(i.ot={index:a,selected:0},!1)}),!1===i.ot&&(i.ot={index:b.ot.length-1,selected:0}),i):(a.each(b.ot,function(a,b){return b.quota<g||(i.ot={index:a,selected:1},!1)}),!1!==i.ot?i:(i.ot={index:b.ot.length-1,selected:1},i.mo=!1,g=c.total+c.month-b.ot[i.ot.index].quota,a.each(b.mo,function(a,b){return b.quota<g||(i.mo={index:a,selected:1},!1)}),!1===i.mo&&(i.mo={index:b.mo.length-1,selected:1}),i))},checkCheckbox:function(b){b.each(function(){var b=a(this);b.is(":checked")?b.closest(".imagify-offer-line").addClass("imagify-offer-selected"):b.closest(".imagify-offer-line").removeClass("imagify-offer-selected")}),e.populatePayBtn()},checkRadio:function(b){return b.each(function(){var b,c,d=a(this);b=d.parent(".imagify-cart-list-switcher").length?d.closest(".imagify-cart"):d.parent(".imagify-small-options").length?d.parent(".imagify-small-options").next(".imagify-pricing-table"):d.closest(".imagify-offer-line"),c=b.find(".imagify-switch-my"),"yearly"===d.val()?(b.addClass("imagify-year-selected").removeClass("imagify-month-selected"),c.find(".imagify-monthly").attr("aria-hidden","true"),c.find(".imagify-yearly").attr("aria-hidden","false")):(b.addClass("imagify-month-selected").removeClass("imagify-year-selected"),c.find(".imagify-monthly").attr("aria-hidden","false"),c.find(".imagify-yearly").attr("aria-hidden","true"))}),e.populatePayBtn(),b},populateBtnPrice:setInterval(function(){e.populatePayBtn()},1e3),getPeriod:function(){return a(".imagify-offer-monthly").hasClass("imagify-month-selected")?"monthly":"yearly"},getApiKey:function(){return a("#imagify-payment-iframe").data("imagify-api")},switchToView:function(a,b){var c=a.attr("id"),d=e.$modal.children(".imagify-modal-content");a.siblings(".imagify-modal-views").hide().attr("aria-hidden","true"),b&&b.tab&&a.find('a[href="#'+b.tab+'"]').trigger("click.imagify"),"imagify-payment-process-view"===c?d.addClass("imagify-iframe-viewing"):d.removeClass("imagify-iframe-viewing"),"imagify-success-view"===c?(d.addClass("imagify-success-viewing"),e.$modal.attr("aria-labelledby","imagify-success-view")):(d.removeClass("imagify-success-viewing"),e.$modal.removeAttr("aria-labelledby")),a.fadeIn(e.speedFadeIn).attr("aria-hidden","false")},iframeSetSrc:function(b){var d,f,g,h,i,j,k,l=a("#imagify-payment-iframe"),m=l.attr("src"),n=l.data("src"),o=0,p=0;if("string"==typeof b&&""!==m)return k="monthly"===b?"yearly":"monthly",m=m.replace(k,b),void l.attr("src",m);if("object"==typeof b){if(b.monthly&&(o=b.monthly[Object.keys(b.monthly)[0]].id),b.onetime&&(p=b.onetime[Object.keys(b.onetime)[0]].id,p=p+""=="999"?b.onetime[Object.keys(b.onetime)[0]].data:p),!b.period)return void c.imagify.info("No period defined");e.getApiKey(),d=p,f="yearly"===b.period?o:0,g="monthly"===b.period?o:0,h=a("#imagify-coupon-code").val(),i=""===h?"none":h,parseFloat(a(".imagify-global-amount").text()).toFixed(2),n=n+d+"/"+g+"/"+f+"/"+i+"/",j=l.remove().attr("src",n),e.$paymentView.html(j)}},paymentClose:function(){a(".imagify-iframe-viewing .close-btn").trigger("click.imagify"),a(".imagify-iframe-viewing").removeClass("imagify-iframe-viewing")},paymentBack:function(){e.switchToView(e.$preView)},paymentSuccess:function(){e.switchToView(e.$successView)},checkPluginMessage:function(a){var b=a.origin||a.originalEvent.origin;if("https://app.imagify.io"===b||"http://dapp.imagify.io"===b)switch(a.data){case"cancel":e.paymentClose();break;case"back":e.paymentBack();break;case"success":e.paymentSuccess()}}},e.checkCheckbox(e.$checkboxes),e.checkRadio(e.$radios.filter(":checked")),e.checkCoupon(),e.$checkboxes.on("change.imagify",function(){e.checkCheckbox(a(this))}),e.$radios.on("change.imagify",function(){e.checkRadio(a(this))}),a("#imagify-get-pricing-modal").on("click.imagify-ajax",function(){e.getPricing(a(this))}),a(b).on("modalClosed.imagify",".imagify-payment-modal",function(){a(this).find(".imagify-modal-content").removeClass("imagify-success-viewing imagify-iframe-viewing"),setTimeout(function(){a(".imagify-modal-views").hide(),a("#imagify-pre-checkout-view").show()},300)}),a("#imagify-coupon-code").on("blur.imagify",function(){a(this).attr("readonly")||e.checkCoupon()}).on("keydown.imagify",function(b){var c=a(this);if(!c.attr("readonly"))return 13===b.keyCode||32===b.keyCode?(e.checkCoupon(),!1):void(c.val().length>=3?c.closest(".imagify-coupon-input").addClass("imagify-canbe-validate"):c.closest(".imagify-coupon-input").removeClass("imagify-canbe-validate"))}),a("#imagify-coupon-validate").on("click.imagify",function(){e.checkCoupon(),a(this).closest(".imagify-canbe-validate").removeClass("imagify-canbe-validate")}),e.$anotherBtn.on("click.imagify",function(b){var c=a(this).data("imagify-choose"),d="imagify-pricing-tab-"+("plan"===c?"monthly":"onetime");b.preventDefault(),e.switchToView(e.$plansView,{tab:d})}),e.$modal.on("click.imagify",".imagify-payment-btn-select-plan",function(b){var c=a(this),d=c.closest(".imagify-offer-line"),f=c.data("offer"),g=c.attr("data-offer"),h="imagify-pricing-tab-monthly"!==c.closest(".imagify-tab-content").attr("id"),i=h?e.$preView.find(".imagify-offer-onetime"):e.$preView.find(".imagify-offer-monthly"),j=h?null:c.closest(".imagify-pricing-table").hasClass("imagify-month-selected")?"monthly":"yearly",k=h?e.getHtmlPrice(f[Object.keys(f)[0]].price):e.getHtmlPrice(f[Object.keys(f)[0]].prices,j),l=h?"":'<span class="imagify-price-by">'+d.find(".imagify-price-by").text()+"</span>",m=d.find(".imagify-price-discount").html(),n=d.find(".imagify-approx-nb").text(),o=d.find(".imagify-offer-size").text();b.preventDefault(),e.switchToView(e.$preView),i.find(".imagify-number-block").html(k+l),i.find(".imagify-price-discount").html(m),i.find(".imagify-approx-nb").text(n),i.find(".imagify-offer-size").text(o),i.attr("data-offer",g),h||(i.find(".imagify-price-add-data").text(d.find(".imagify-price-add-data").text()),"monthly"===j?i.find("#imagify-subscription-monthly").trigger("click.imagify"):i.find("#imagify-subscription-yearly").trigger("click.imagify"),i.find(".imagify-inline-options").find("input:radio:checked").trigger("change.imagify")),e.populatePayBtn()}),a("#imagify-modal-checkout-btn").on("click.imagify",function(b){var c,d,f;b.preventDefault(),a(this).hasClass("imagify-button-disabled")||(c=a(".imagify-offer-monthly"),d=a(".imagify-offer-onetime"),f={},c.hasClass("imagify-offer-selected")&&(f.monthly=JSON.parse(c.attr("data-offer"))),d.hasClass("imagify-offer-selected")&&(f.onetime=JSON.parse(d.attr("data-offer"))),imagifyPricingModal.userDataCache&&a.post(ajaxurl,{action:imagifyPricingModal.userDataCache.deleteAction,_wpnonce:imagifyPricingModal.userDataCache.deleteNonce}),e.switchToView(e.$paymentView),f.period=e.getPeriod(),e.iframeSetSrc(f))}),a(".imagify-back-to-plans").on("click.imagify",function(b){var c=a(this),d=c.closest(".imagify-cart-item").hasClass("imagify-cart-item-onetime");b.preventDefault(),d?a(".imagify-offer-onetime").find(".imagify-choose-another-plan").trigger("click.imagify"):a(".imagify-offer-monthly").find(".imagify-choose-another-plan").trigger("click.imagify")}),c.addEventListener("message",e.checkPluginMessage,!0))}(jQuery,document,window);
|
1 |
+
!function(a,b,c,d){a(b).on("click.imagify",".imagify-tab",function(b){var c,d=a(this);b.preventDefault(),d.hasClass("imagify-current")||(c=d.find("a").attr("href")||"#"+d.find("a").attr("aria-controls"),d.closest(".imagify-tabs").next(".imagify-tabs-contents").find(".imagify-tab-content").hide().attr("aria-hidden","true"),a(c).fadeIn(275).attr("aria-hidden","false"),d.closest(".imagify-tabs").find(".imagify-tab").removeClass("imagify-current").attr("aria-selected","false"),d.addClass("imagify-current").attr("aria-selected","true"))})}(jQuery,document,window),function(a,b,c,d){var e={};a("#imagify-pricing-modal").length&&(e={$modal:a("#imagify-pricing-modal"),$checkboxes:a(".imagify-offer-line .imagify-checkbox"),$radios:a(".imagify-payment-modal .imagify-radio-line input"),$preView:a("#imagify-pre-checkout-view"),$plansView:a("#imagify-plans-selection-view").hide(),$paymentView:a("#imagify-payment-process-view").hide(),$successView:a("#imagify-success-view").hide(),$anotherBtn:a(".imagify-choose-another-plan"),speedFadeIn:300,getHtmlPrice:function(a,b){var c,d,e,f,g;return b||(b=null),"object"!=typeof a?(a+="",a=a.split("."),a[1]=1===a[1].length?a[1]+"0":(""+a[1]).substring(0,2),g='<span class="imagify-price-big">'+a[0]+"</span> ",g+='<span class="imagify-price-mini">.'+a[1]+"</span>"):(c=a.monthly+"",d=a.yearly+"",e="0"===c?["0","00"]:c.split("."),f="0"===d?["0","00"]:d.split("."),g='<span class="imagify-switch-my">',g+='<span aria-hidden="'+("monthly"===b?"false":"true")+'" class="imagify-monthly">',g+='<span class="imagify-price-big">'+e[0]+"</span> ",g+='<span class="imagify-price-mini">.'+(1===e[1].length?e[1]+"0":(""+e[1]).substring(0,2))+"</span>",g+="</span> ",g+='<span aria-hidden="'+("yearly"===b?"false":"true")+'" class="imagify-yearly">',g+='<span class="imagify-price-big">'+f[0]+"</span> ",g+='<span class="imagify-price-mini">.'+(1===f[1].length?f[1]+"0":(""+f[1]).substring(0,2))+"</span>",g+="</span>",g+="</span>")},getHtmlDiscountPrice:function(a,b){var c,d,e="";return b||(b=null),"object"==typeof a?(c=a.monthly+"",d=a.yearly+"",e+='<span class="imagify-price-discount">',e+='<span class="imagify-price-discount-dollar">$</span>',e+='<span class="imagify-switch-my">',e+='<span aria-hidden="'+("monthly"===b?"false":"true")+'" class="imagify-monthly">',e+='<span class="imagify-price-discount-number">'+c+"</span>",e+="</span>",e+='<span aria-hidden="'+("yearly"===b?"false":"true")+'" class="imagify-yearly">',e+='<span class="imagify-price-discount-number">'+d+"</span>",e+="</span>",e+="</span>",e+="</span>"):(a+="",e+='<span class="imagify-price-discount">',e+='<span class="imagify-price-discount-dollar">$</span>',e+='<span class="imagify-price-discount-number">'+a+"</span>",e+="</span>"),e},populateOffer:function(a,b,d,f){var g,h,i,j=c.imagify_discount_datas,k=b.additional_gb,l=b.annual_cost,m=b.id,n=b.label,o=b.monthly_cost,p=b.quota,q=b.cost,r=-1===p?"Unlimited":p>=1e3?p/1e3+" GB":p+" MB",s="monthly"===d?{monthly:o,yearly:Math.round(l/12*100)/100}:q,t=s,u=[];return u=e.getPromoAppliesTo(j),j.is_active&&"percentage"===j.coupon_type&&"monthly"===d&&0<o&&(u.includes(n)||"all"===u[0])&&(g=(100-j.coupon_value)/100,s="monthly"===d?{monthly:o*g,yearly:Math.round(l*g/12*100)/100}:q*g),void 0!==f&&a.addClass("imagify-"+d+"-"+n+f),a.find(".imagify-offer-size").text(r),a.find(".imagify-number-block").html(e.getHtmlPrice(s,"monthly")),a.find(".imagify-price-block").prev(".imagify-price-discount").remove(),j.is_active&&"percentage"===j.coupon_type&&"monthly"===d&&0<o&&(u.includes(n)||"all"===u[0])&&a.find(".imagify-price-block").before(e.getHtmlDiscountPrice(t,"monthly")),a.find(".imagify-approx-nb").text(5*p),"monthly"===d&&a.find(".imagify-price-add-data").text("$"+k),h=a.find(".imagify-payment-btn-select-plan").length?a.find(".imagify-payment-btn-select-plan"):a,i="monthly"===d?'{"'+n+'":{"id":'+m+',"name":"'+r+'","label":"'+n+'","data":'+p+',"dataf":"'+r+'","imgs":'+5*p+',"prices":{"monthly":'+s.monthly+',"yearly":'+s.yearly+',"add":'+k+"}}}":'{"ot'+n+'":{"id":'+m+',"name":"'+r+'","label":"'+n+'","data":'+p+',"dataf":"'+r+'","imgs":'+5*p+',"price":'+s+"}}",h.attr("data-offer",i),a},populatePayBtn:function(){var b,c,d=a(".imagify-offer-monthly"),e=a(".imagify-offer-onetime"),f=0,g=0,h=0;d.length&&(b=JSON.parse(d.attr("data-offer")),d.hasClass("imagify-offer-selected")&&(g=a("#imagify-subscription-monthly").filter(":checked").length?b[Object.keys(b)[0]].prices.monthly:12*b[Object.keys(b)[0]].prices.yearly)),e.length&&(c=JSON.parse(e.attr("data-offer")),e.hasClass("imagify-offer-selected")&&(h=c[Object.keys(c)[0]].price)),f=parseFloat(h+g).toFixed(2),"0.00"===f||0===f?a("#imagify-modal-checkout-btn").prop("disabled",!0).addClass("imagify-button-disabled"):a("#imagify-modal-checkout-btn").prop("disabled",!1).removeClass("imagify-button-disabled")},checkCoupon:function(){var b,c,d,f,g=a("#imagify-coupon-code").val();if(b=a(".imagify-coupon-text"),c=b.find("label"),d=a(".imagify-coupon-section"),""===g)return d.removeClass("validated").removeClass("invalid"),void c.html(imagifyPricingModal.labels.defaultCouponLabel);f=a("#imagify-get-pricing-modal").data("nonce"),b.addClass("checking"),a.post(ajaxurl,{action:"imagify_check_coupon",coupon:g,imagifynonce:f},function(f){var h;if(b.removeClass("checking"),f.success)if(f.data.success){h="percentage"===f.data.coupon_type?f.data.value+"%":"$"+f.data.value;var i=a(".imagify-pre-checkout-view .imagify-pre-checkout-offers .imagify-offer-line"),j=JSON.parse(i.attr("data-offer")),k=e.getPromoAppliesTo(f.data);k.includes(j[Object.keys(j)[0]].label)||"all"===k[0]?(d.removeClass("invalid").addClass("validated"),c.html(imagifyPricingModal.labels.successCouponAPI),c.find(".imagify-coupon-offer").text(h),c.find(".imagify-coupon-word").text(g)):(d.removeClass("validated").addClass("invalid"),c.html(imagifyPricingModal.labels.errorCouponPlan),a("#imagify-coupon-code").val(""))}else d.removeClass("validated").addClass("invalid"),c.text(f.data.detail);else d.removeClass("validated").addClass("invalid"),c.text(imagifyPricingModal.labels.errorCouponAPI)})},getPricing:function(b){var d=b.data("nonce"),f={action:"imagify_get_prices",imagifynonce:d},g={action:"imagify_get_images_counts",imagifynonce:d},h={action:"imagify_get_discount",imagifynonce:d};e.$modal.find(".imagify-modal-loader").hide().show(),e.$modal.addClass("imagify-modal-loading"),a.post(ajaxurl,f,function(b){if(!b.success)return void e.populatePayBtn();a.post(ajaxurl,g,function(d){d.success&&a.post(ajaxurl,h,function(f){var g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x=25,y="",z="";if(f.success){if(g=d.data,h=b.data,i=f.data,j={mo:[],ot:[]},k={month:g.average_month_size.raw/Math.pow(1024,2),total:g.total_library_size.raw/Math.pow(1024,2)},m=a("#imagify-offer-monthly-template"),n=a("#imagify-offer-onetime-template"),o=n.html(),p=m.html(),q=a(".imagify-estimation-block"),a.each(h.monthlies,function(a,b){(void 0===b.active||void 0!==b.active&&!0===b.active)&&("free"===b.label&&(x=b.quota),j.mo.push(b))}),a.each(h.onetimes,function(a,b){(void 0===b.active||void 0!==b.active&&!0===b.active)&&j.ot.push(b)}),q.removeClass("imagify-analyzing"),q.find(".average-month-size").text(g.average_month_size.human),q.find(".total-library-size").text(g.total_library_size.human),k.total+k.month<x?a(".imagify-pre-checkout-offers .imagify-modal-title").addClass("imagify-enough-free"):a(".imagify-enough-free").removeClass("imagify-enough-free"),a(".imagify-offer-selected").removeClass("imagify-offer-selected").find(".imagify-checkbox").prop("checked",!1),null===j.mo||null===j.ot)return r=a(".imagify-pre-checkout-offers"),r.hide().attr("aria-hidden",!0),r.closest(".imagify-modal-views").find(".imagify-popin-message").remove(),r.after('<div class="imagify-popin-message imagify-error"><p>'+imagifyPricingModal.labels.errorPriceAPI+"</p></div>"),e.$modal.find(".imagify-modal-loader").fadeOut(300),void e.$modal.removeClass("imagify-modal-loading");if(c.imagify_discount_datas=i,i.is_active){if(i.applies_to instanceof Array){u=[];for(var A=[],B=0;B<i.applies_to.length;B++)A.push(i.applies_to[B].plan_name);A.forEach(function(a){u.includes(a)||u.push(a)}),u=u.join(", ")}else u=i.applies_to;s=a(".imagify-modal-promotion"),t=i.date_end.split("T")[0],v=i.coupon_value,w="percentage"===i.coupon_type?v+"%":"$"+v,s.addClass("active").attr("aria-hidden","false"),s.find(".imagify-promotion-number").text(w),s.find(".imagify-promotion-plan-name").text(u),s.find(".imagify-promotion-date").text(t)}if(l=e.getSuggestedOffers(j,k,x),0===j.mo.length?(a(".imagify-pre-checkout-offers .imagify-offer-monthly").remove(),a(".imagify-tabs").remove(),a(".imagify-pricing-tab-monthly").remove()):a.each(j.mo,function(b,c){var d,f,g="";if(b-l.mo.index>2)return!0;b===l.mo.index&&(f=a(".imagify-pre-checkout-offers .imagify-offer-monthly"),l.mo.selected&&(g=" imagify-offer-selected",f.addClass("imagify-offer-selected").find(".imagify-checkbox").prop("checked",!0)),e.populateOffer(f,c,"monthly")),d=a(p).clone(),d=e.populateOffer(d,c,"monthly",g),z+=d[0].outerHTML}),0===j.ot.length?(a(".imagify-pre-checkout-offers .imagify-offer-onetime").remove(),a(".imagify-tabs").remove(),a(".imagify-pricing-tab-onetime").remove()):a.each(j.ot,function(b,c){var d,f,g="";b===l.ot.index&&(f=a(".imagify-pre-checkout-offers .imagify-offer-onetime"),l.ot.selected&&(g=" imagify-offer-selected",f.addClass("imagify-offer-selected").find(".imagify-checkbox").prop("checked",!0)),e.populateOffer(f,c,"onetime")),d=a(o).clone(),d=e.populateOffer(d,c,"onetime",g),y+=d[0].outerHTML}),i){var C=e.getPromoAppliesTo(i);(C.includes(l.mo.plan_label)||C.includes(l.ot.plan_label)||"all"===C[0])&&a("#imagify-coupon-code").val(i.label),i.is_active&&e.checkCoupon()}m.parent().find(".imagify-offer-line")&&m.parent().find(".imagify-offer-line").remove(),m.before(z),n.parent().find(".imagify-offer-line")&&n.parent().find(".imagify-offer-line").remove(),n.before(y),e.$modal.find(".imagify-modal-loader").fadeOut(300),e.$modal.removeClass("imagify-modal-loading")}})}),e.populatePayBtn()})},getSuggestedOffers:function(b,c,d){var e,f,g=c.total+c.month,h={quota:0},i={mo:!1,ot:!1};if(0>b.ot.length)var j=b.ot[b.ot.length-1].id,k=b.ot[b.ot.length-1].label;if(0>b.ot.length)var l=b.mo[b.mo.length-1].id,m=b.mo[b.mo.length-1].label;return a.each(b.mo,function(a,b){return 0>b.quota&&(f={index:a,selected:1,plan_id:b.id,plan_label:b.label}),b.quota>h.quota&&(h={index:a,selected:1,quota:b.quota,plan_id:b.id,plan_label:b.label}),0===b.monthly_cost&&0===b.annual_cost||(0>=b.quota&&c.month>b.quota||c.total>b.quota||(!(0<=b.quota&&c.month<b.quota&&c.total<b.quota)||((void 0===e||e.quota>b.quota)&&(e=b,i.mo={index:a,selected:d>c.month&&d>c.total?0:1,plan_id:b.id,plan_label:b.label}),!0)))}),!1===i.mo&&(i.mo=void 0!==f?f:h),g-=b.mo[i.mo.index].quota,0===b.ot.length?i:g<=0?(a.each(b.ot,function(a,b){return b.quota<c.total||(i.ot={index:a,selected:0,plan_id:b.id,plan_label:b.label},!1)}),!1===i.ot&&(i.ot={index:b.ot.length-1,selected:0,plan_id:j,plan_label:k}),i):(a.each(b.ot,function(a,b){return b.quota<g||(i.ot={index:a,selected:1,plan_id:b.id,plan_label:b.label},!1)}),!1!==i.ot?i:(i.ot={index:b.ot.length-1,selected:1,plan_id:j,plan_label:k},i.mo=!1,g=c.total+c.month-b.ot[i.ot.index].quota,a.each(b.mo,function(a,b){return b.quota<g||(i.mo={index:a,selected:1,plan_id:b.id,plan_label:b.label},!1)}),!1===i.mo&&(i.mo={index:b.mo.length-1,selected:1,plan_id:l,plan_label:m}),i))},checkCheckbox:function(b){b.each(function(){var b=a(this);b.is(":checked")?b.closest(".imagify-offer-line").addClass("imagify-offer-selected"):b.closest(".imagify-offer-line").removeClass("imagify-offer-selected")}),e.populatePayBtn()},checkRadio:function(b){return b.each(function(){var b,c,d=a(this);b=d.parent(".imagify-cart-list-switcher").length?d.closest(".imagify-cart"):d.parent(".imagify-small-options").length?d.parent(".imagify-small-options").next(".imagify-pricing-table"):d.closest(".imagify-offer-line"),c=b.find(".imagify-switch-my"),"yearly"===d.val()?(b.addClass("imagify-year-selected").removeClass("imagify-month-selected"),c.find(".imagify-monthly").attr("aria-hidden","true"),c.find(".imagify-yearly").attr("aria-hidden","false")):(b.addClass("imagify-month-selected").removeClass("imagify-year-selected"),c.find(".imagify-monthly").attr("aria-hidden","false"),c.find(".imagify-yearly").attr("aria-hidden","true"))}),e.populatePayBtn(),b},populateBtnPrice:setInterval(function(){e.populatePayBtn()},1e3),getPeriod:function(){return a(".imagify-offer-monthly").hasClass("imagify-month-selected")?"monthly":"yearly"},getApiKey:function(){return a("#imagify-payment-iframe").data("imagify-api")},switchToView:function(a,b){var c=a.attr("id"),d=e.$modal.children(".imagify-modal-content");a.siblings(".imagify-modal-views").hide().attr("aria-hidden","true"),b&&b.tab&&a.find('a[href="#'+b.tab+'"]').trigger("click.imagify"),"imagify-payment-process-view"===c?d.addClass("imagify-iframe-viewing"):d.removeClass("imagify-iframe-viewing"),"imagify-success-view"===c?(d.addClass("imagify-success-viewing"),e.$modal.attr("aria-labelledby","imagify-success-view")):(d.removeClass("imagify-success-viewing"),e.$modal.removeAttr("aria-labelledby")),a.fadeIn(e.speedFadeIn).attr("aria-hidden","false")},iframeSetSrc:function(b){var d,f,g,h,i,j,k,l=a("#imagify-payment-iframe"),m=l.attr("src"),n=l.data("src"),o=0,p=0;if("string"==typeof b&&""!==m)return k="monthly"===b?"yearly":"monthly",m=m.replace(k,b),void l.attr("src",m);if("object"==typeof b){if(b.monthly&&(o=b.monthly[Object.keys(b.monthly)[0]].id),b.onetime&&(p=b.onetime[Object.keys(b.onetime)[0]].id,p=p+""=="999"?b.onetime[Object.keys(b.onetime)[0]].data:p),!b.period)return void c.imagify.info("No period defined");e.getApiKey(),d=p,f="yearly"===b.period?o:0,g="monthly"===b.period?o:0,h=a("#imagify-coupon-code").val(),i=""===h?"none":h,parseFloat(a(".imagify-global-amount").text()).toFixed(2),n=n+d+"/"+g+"/"+f+"/"+i+"/",j=l.remove().attr("src",n),e.$paymentView.html(j)}},paymentClose:function(){a(".imagify-iframe-viewing .close-btn").trigger("click.imagify"),a(".imagify-iframe-viewing").removeClass("imagify-iframe-viewing")},paymentBack:function(){e.switchToView(e.$preView)},paymentSuccess:function(){e.switchToView(e.$successView)},checkPluginMessage:function(a){var b=a.origin||a.originalEvent.origin;if(imagifyPricingModal.imagify_app_domain===b)switch(a.data){case"cancel":e.paymentClose();break;case"back":e.paymentBack();break;case"success":e.paymentSuccess()}},getPromoAppliesTo:function(a){var b=[];if(a.applies_to instanceof Array){for(var c=[],d=0;d<a.applies_to.length;d++)c.push(a.applies_to[d].plan_name);c.forEach(function(a){b.includes(a)||b.push(a)})}else b=[a.applies_to];return b}},e.checkCheckbox(e.$checkboxes),e.checkRadio(e.$radios.filter(":checked")),e.checkCoupon(),e.$checkboxes.on("change.imagify",function(){e.checkCheckbox(a(this))}),e.$radios.on("change.imagify",function(){e.checkRadio(a(this))}),a("#imagify-get-pricing-modal").on("click.imagify-ajax",function(){e.getPricing(a(this))}),a(b).on("modalClosed.imagify",".imagify-payment-modal",function(){a("#imagify-coupon-code").val(""),a(this).find(".imagify-modal-content").removeClass("imagify-success-viewing imagify-iframe-viewing"),setTimeout(function(){a(".imagify-modal-views").hide(),a("#imagify-pre-checkout-view").show()},300),setTimeout(function(){a(".imagify-payment-modal").find(".imagify-modal-content").scrollTop(0)},400)}),a("#imagify-coupon-code").on("blur.imagify",function(){a(this).attr("readonly")||e.checkCoupon()}).on("keydown.imagify",function(b){var c=a(this);if(!c.attr("readonly"))return 13===b.keyCode||32===b.keyCode?(e.checkCoupon(),!1):void(c.val().length>=3?c.closest(".imagify-coupon-input").addClass("imagify-canbe-validate"):c.closest(".imagify-coupon-input").removeClass("imagify-canbe-validate"))}),a("#imagify-coupon-validate").on("click.imagify",function(){e.checkCoupon(),a(this).closest(".imagify-canbe-validate").removeClass("imagify-canbe-validate")}),e.$anotherBtn.on("click.imagify",function(b){var c=a(this).data("imagify-choose"),d="imagify-pricing-tab-"+("plan"===c?"monthly":"onetime");b.preventDefault(),e.switchToView(e.$plansView,{tab:d})}),e.$modal.on("click.imagify",".imagify-payment-btn-select-plan",function(b){var d=a(this),f=d.closest(".imagify-offer-line"),g=d.data("offer"),h=d.attr("data-offer"),i="imagify-pricing-tab-monthly"!==d.closest(".imagify-tab-content").attr("id"),j=i?e.$preView.find(".imagify-offer-onetime"):e.$preView.find(".imagify-offer-monthly"),k=i?null:d.closest(".imagify-pricing-table").hasClass("imagify-month-selected")?"monthly":"yearly",l=i?e.getHtmlPrice(g[Object.keys(g)[0]].price):e.getHtmlPrice(g[Object.keys(g)[0]].prices,k),m=i?"":'<span class="imagify-price-by">'+f.find(".imagify-price-by").text()+"</span>",n=f.find(".imagify-price-discount").html(),o=f.find(".imagify-approx-nb").text(),p=f.find(".imagify-offer-size").text(),q=a("#imagify-coupon-code");if(b.preventDefault(),e.switchToView(e.$preView),j.find(".imagify-number-block").html(l+m),n?(j.find(".imagify-price-discount").length<=0&&j.find(".imagify-col-price").prepend('<span class="imagify-price-discount"></span>'),j.find(".imagify-price-discount").html(n),j.find(".imagify-price-discount").show()):j.find(".imagify-price-discount").hide(),j.find(".imagify-approx-nb").text(o),j.find(".imagify-offer-size").text(p),j.attr("data-offer",h),i||(j.find(".imagify-price-add-data").text(f.find(".imagify-price-add-data").text()),"monthly"===k?j.find("#imagify-subscription-monthly").trigger("click.imagify"):j.find("#imagify-subscription-yearly").trigger("click.imagify"),j.find(".imagify-inline-options").find("input:radio:checked").trigger("change.imagify")),q=a("#imagify-coupon-code"),q.val(""),c.imagify_discount_datas){var r=e.getPromoAppliesTo(c.imagify_discount_datas);(r.includes(g[Object.keys(g)[0]].label)||"all"===r[0])&&q.val(c.imagify_discount_datas.label)}e.checkCoupon(),e.populatePayBtn()}),a("#imagify-modal-checkout-btn").on("click.imagify",function(b){var c,d,f;b.preventDefault(),a(this).hasClass("imagify-button-disabled")||(c=a(".imagify-offer-monthly"),d=a(".imagify-offer-onetime"),f={},c.hasClass("imagify-offer-selected")&&(f.monthly=JSON.parse(c.attr("data-offer"))),d.hasClass("imagify-offer-selected")&&(f.onetime=JSON.parse(d.attr("data-offer"))),imagifyPricingModal.userDataCache&&a.post(ajaxurl,{action:imagifyPricingModal.userDataCache.deleteAction,_wpnonce:imagifyPricingModal.userDataCache.deleteNonce}),e.switchToView(e.$paymentView),f.period=e.getPeriod(),e.iframeSetSrc(f))}),a(".imagify-back-to-plans").on("click.imagify",function(b){var c=a(this),d=c.closest(".imagify-cart-item").hasClass("imagify-cart-item-onetime");b.preventDefault(),d?a(".imagify-offer-onetime").find(".imagify-choose-another-plan").trigger("click.imagify"):a(".imagify-offer-monthly").find(".imagify-choose-another-plan").trigger("click.imagify")}),c.addEventListener("message",e.checkPluginMessage,!0))}(jQuery,document,window);
|
classes/Bulk/BulkInterface.php
CHANGED
@@ -24,7 +24,7 @@ interface BulkInterface {
|
|
24 |
public function get_unoptimized_media_ids( $optimization_level );
|
25 |
|
26 |
/**
|
27 |
-
* Get ids of all optimized media without
|
28 |
*
|
29 |
* @since 1.9
|
30 |
* @since 1.9.5 The method doesn't return the IDs directly anymore.
|
@@ -42,7 +42,7 @@ interface BulkInterface {
|
|
42 |
public function get_optimized_media_ids_without_webp();
|
43 |
|
44 |
/**
|
45 |
-
* Tell if there are optimized media without
|
46 |
*
|
47 |
* @since 1.9
|
48 |
* @access public
|
24 |
public function get_unoptimized_media_ids( $optimization_level );
|
25 |
|
26 |
/**
|
27 |
+
* Get ids of all optimized media without WebP versions.
|
28 |
*
|
29 |
* @since 1.9
|
30 |
* @since 1.9.5 The method doesn't return the IDs directly anymore.
|
42 |
public function get_optimized_media_ids_without_webp();
|
43 |
|
44 |
/**
|
45 |
+
* Tell if there are optimized media without WebP versions.
|
46 |
*
|
47 |
* @since 1.9
|
48 |
* @access public
|
classes/Bulk/CustomFolders.php
CHANGED
@@ -76,7 +76,7 @@ class CustomFolders extends AbstractBulk {
|
|
76 |
}
|
77 |
|
78 |
/**
|
79 |
-
* Get ids of all optimized media without
|
80 |
*
|
81 |
* @since 1.9
|
82 |
* @since 1.9.5 The method doesn't return the IDs directly anymore.
|
@@ -142,7 +142,7 @@ class CustomFolders extends AbstractBulk {
|
|
142 |
$backup_path = \Imagify_Custom_Folders::get_file_backup_path( $file_path );
|
143 |
|
144 |
if ( ! $this->filesystem->exists( $backup_path ) ) {
|
145 |
-
// No backup, no
|
146 |
$data['errors']['no_backup'][] = $file_id;
|
147 |
continue;
|
148 |
}
|
@@ -154,7 +154,7 @@ class CustomFolders extends AbstractBulk {
|
|
154 |
}
|
155 |
|
156 |
/**
|
157 |
-
* Tell if there are optimized media without
|
158 |
*
|
159 |
* @since 1.9
|
160 |
* @access public
|
76 |
}
|
77 |
|
78 |
/**
|
79 |
+
* Get ids of all optimized media without WebP versions.
|
80 |
*
|
81 |
* @since 1.9
|
82 |
* @since 1.9.5 The method doesn't return the IDs directly anymore.
|
142 |
$backup_path = \Imagify_Custom_Folders::get_file_backup_path( $file_path );
|
143 |
|
144 |
if ( ! $this->filesystem->exists( $backup_path ) ) {
|
145 |
+
// No backup, no WebP.
|
146 |
$data['errors']['no_backup'][] = $file_id;
|
147 |
continue;
|
148 |
}
|
154 |
}
|
155 |
|
156 |
/**
|
157 |
+
* Tell if there are optimized media without WebP versions.
|
158 |
*
|
159 |
* @since 1.9
|
160 |
* @access public
|
classes/Bulk/Noop.php
CHANGED
@@ -26,7 +26,7 @@ class Noop implements BulkInterface {
|
|
26 |
}
|
27 |
|
28 |
/**
|
29 |
-
* Get ids of all optimized media without
|
30 |
*
|
31 |
* @since 1.9
|
32 |
* @since 1.9.5 The method doesn't return the IDs directly anymore.
|
@@ -52,7 +52,7 @@ class Noop implements BulkInterface {
|
|
52 |
}
|
53 |
|
54 |
/**
|
55 |
-
* Tell if there are optimized media without
|
56 |
*
|
57 |
* @since 1.9
|
58 |
* @access public
|
26 |
}
|
27 |
|
28 |
/**
|
29 |
+
* Get ids of all optimized media without WebP versions.
|
30 |
*
|
31 |
* @since 1.9
|
32 |
* @since 1.9.5 The method doesn't return the IDs directly anymore.
|
52 |
}
|
53 |
|
54 |
/**
|
55 |
+
* Tell if there are optimized media without WebP versions.
|
56 |
*
|
57 |
* @since 1.9
|
58 |
* @access public
|
classes/Bulk/WP.php
CHANGED
@@ -171,7 +171,7 @@ class WP extends AbstractBulk {
|
|
171 |
}
|
172 |
|
173 |
/**
|
174 |
-
* Get ids of all optimized media without
|
175 |
*
|
176 |
* @since 1.9
|
177 |
* @since 1.9.5 The method doesn't return the IDs directly anymore.
|
@@ -271,7 +271,7 @@ class WP extends AbstractBulk {
|
|
271 |
$backup_path = get_imagify_attachment_backup_path( $file_path );
|
272 |
|
273 |
if ( ! $this->filesystem->exists( $backup_path ) ) {
|
274 |
-
// No backup, no
|
275 |
$data['errors']['no_backup'][] = $id;
|
276 |
continue;
|
277 |
}
|
@@ -283,7 +283,7 @@ class WP extends AbstractBulk {
|
|
283 |
}
|
284 |
|
285 |
/**
|
286 |
-
* Tell if there are optimized media without
|
287 |
*
|
288 |
* @since 1.9
|
289 |
* @access public
|
171 |
}
|
172 |
|
173 |
/**
|
174 |
+
* Get ids of all optimized media without WebP versions.
|
175 |
*
|
176 |
* @since 1.9
|
177 |
* @since 1.9.5 The method doesn't return the IDs directly anymore.
|
271 |
$backup_path = get_imagify_attachment_backup_path( $file_path );
|
272 |
|
273 |
if ( ! $this->filesystem->exists( $backup_path ) ) {
|
274 |
+
// No backup, no WebP.
|
275 |
$data['errors']['no_backup'][] = $id;
|
276 |
continue;
|
277 |
}
|
283 |
}
|
284 |
|
285 |
/**
|
286 |
+
* Tell if there are optimized media without WebP versions.
|
287 |
*
|
288 |
* @since 1.9
|
289 |
* @access public
|
classes/Job/MediaOptimization.php
CHANGED
@@ -211,7 +211,7 @@ class MediaOptimization extends \Imagify_Abstract_Background_Process {
|
|
211 |
$item['error'] = $data;
|
212 |
|
213 |
} elseif ( 'already_optimized' === $data['status'] ) {
|
214 |
-
// Status is "already_optimized", try to create
|
215 |
$item['sizes'] = array_filter( $item['sizes'], [ $this->optimization_process, 'is_size_webp' ] );
|
216 |
|
217 |
} elseif ( 'success' !== $data['status'] ) {
|
211 |
$item['error'] = $data;
|
212 |
|
213 |
} elseif ( 'already_optimized' === $data['status'] ) {
|
214 |
+
// Status is "already_optimized", try to create WebP versions only.
|
215 |
$item['sizes'] = array_filter( $item['sizes'], [ $this->optimization_process, 'is_size_webp' ] );
|
216 |
|
217 |
} elseif ( 'success' !== $data['status'] ) {
|
classes/Optimization/Data/AbstractData.php
CHANGED
@@ -280,7 +280,7 @@ abstract class AbstractData implements DataInterface {
|
|
280 |
|
281 |
/**
|
282 |
* Get the file size of the full size file.
|
283 |
-
* If the
|
284 |
*
|
285 |
* @since 1.9
|
286 |
* @access public
|
@@ -288,7 +288,7 @@ abstract class AbstractData implements DataInterface {
|
|
288 |
*
|
289 |
* @param bool $human_format True to display the image human format size (1Mb).
|
290 |
* @param int $decimals Precision of number of decimal places.
|
291 |
-
* @param bool $use_webp Use the
|
292 |
* @return string|int
|
293 |
*/
|
294 |
public function get_optimized_size( $human_format = true, $decimals = 2, $use_webp = true ) {
|
@@ -320,7 +320,7 @@ abstract class AbstractData implements DataInterface {
|
|
320 |
$filepath = false;
|
321 |
|
322 |
if ( $use_webp && ! empty( $data['sizes'][ $webp_size_name ]['success'] ) ) {
|
323 |
-
// Try with the
|
324 |
$filepath = $media->get_raw_fullsize_path();
|
325 |
$filepath = $filepath ? imagify_path_to_webp( $filepath ) : false;
|
326 |
|
@@ -330,7 +330,7 @@ abstract class AbstractData implements DataInterface {
|
|
330 |
}
|
331 |
|
332 |
if ( ! $filepath ) {
|
333 |
-
// No
|
334 |
$filepath = $media->get_fullsize_path();
|
335 |
}
|
336 |
|
280 |
|
281 |
/**
|
282 |
* Get the file size of the full size file.
|
283 |
+
* If the WebP size is available, it is used.
|
284 |
*
|
285 |
* @since 1.9
|
286 |
* @access public
|
288 |
*
|
289 |
* @param bool $human_format True to display the image human format size (1Mb).
|
290 |
* @param int $decimals Precision of number of decimal places.
|
291 |
+
* @param bool $use_webp Use the WebP size if available.
|
292 |
* @return string|int
|
293 |
*/
|
294 |
public function get_optimized_size( $human_format = true, $decimals = 2, $use_webp = true ) {
|
320 |
$filepath = false;
|
321 |
|
322 |
if ( $use_webp && ! empty( $data['sizes'][ $webp_size_name ]['success'] ) ) {
|
323 |
+
// Try with the WebP file first.
|
324 |
$filepath = $media->get_raw_fullsize_path();
|
325 |
$filepath = $filepath ? imagify_path_to_webp( $filepath ) : false;
|
326 |
|
330 |
}
|
331 |
|
332 |
if ( ! $filepath ) {
|
333 |
+
// No WebP? The full size then.
|
334 |
$filepath = $media->get_fullsize_path();
|
335 |
}
|
336 |
|
classes/Optimization/Data/CustomFolders.php
CHANGED
@@ -175,7 +175,7 @@ class CustomFolders extends AbstractData {
|
|
175 |
}
|
176 |
} else {
|
177 |
/**
|
178 |
-
*
|
179 |
*/
|
180 |
$old_data['data'] = ! empty( $old_data['data'] ) && is_array( $old_data['data'] ) ? $old_data['data'] : [];
|
181 |
$old_data['data']['sizes'] = ! empty( $old_data['data']['sizes'] ) && is_array( $old_data['data']['sizes'] ) ? $old_data['data']['sizes'] : [];
|
175 |
}
|
176 |
} else {
|
177 |
/**
|
178 |
+
* WebP version or any other size.
|
179 |
*/
|
180 |
$old_data['data'] = ! empty( $old_data['data'] ) && is_array( $old_data['data'] ) ? $old_data['data'] : [];
|
181 |
$old_data['data']['sizes'] = ! empty( $old_data['data']['sizes'] ) && is_array( $old_data['data']['sizes'] ) ? $old_data['data']['sizes'] : [];
|
classes/Optimization/Data/DataInterface.php
CHANGED
@@ -208,7 +208,7 @@ interface DataInterface {
|
|
208 |
|
209 |
/**
|
210 |
* Get the file size of the full size file.
|
211 |
-
* If the
|
212 |
*
|
213 |
* @since 1.9
|
214 |
* @access public
|
@@ -216,7 +216,7 @@ interface DataInterface {
|
|
216 |
*
|
217 |
* @param bool $human_format True to display the image human format size (1Mb).
|
218 |
* @param int $decimals Precision of number of decimal places.
|
219 |
-
* @param bool $use_webp Use the
|
220 |
* @return string|int
|
221 |
*/
|
222 |
public function get_optimized_size( $human_format = true, $decimals = 2, $use_webp = true );
|
208 |
|
209 |
/**
|
210 |
* Get the file size of the full size file.
|
211 |
+
* If the WebP size is available, it is used.
|
212 |
*
|
213 |
* @since 1.9
|
214 |
* @access public
|
216 |
*
|
217 |
* @param bool $human_format True to display the image human format size (1Mb).
|
218 |
* @param int $decimals Precision of number of decimal places.
|
219 |
+
* @param bool $use_webp Use the WebP size if available.
|
220 |
* @return string|int
|
221 |
*/
|
222 |
public function get_optimized_size( $human_format = true, $decimals = 2, $use_webp = true );
|
classes/Optimization/Data/Noop.php
CHANGED
@@ -208,7 +208,7 @@ class Noop implements DataInterface {
|
|
208 |
|
209 |
/**
|
210 |
* Get the file size of the full size file.
|
211 |
-
* If the
|
212 |
*
|
213 |
* @since 1.9
|
214 |
* @access public
|
@@ -216,7 +216,7 @@ class Noop implements DataInterface {
|
|
216 |
*
|
217 |
* @param bool $human_format True to display the image human format size (1Mb).
|
218 |
* @param int $decimals Precision of number of decimal places.
|
219 |
-
* @param bool $use_webp Use the
|
220 |
* @return string|int
|
221 |
*/
|
222 |
public function get_optimized_size( $human_format = true, $decimals = 2, $use_webp = true ) {
|
208 |
|
209 |
/**
|
210 |
* Get the file size of the full size file.
|
211 |
+
* If the WebP size is available, it is used.
|
212 |
*
|
213 |
* @since 1.9
|
214 |
* @access public
|
216 |
*
|
217 |
* @param bool $human_format True to display the image human format size (1Mb).
|
218 |
* @param int $decimals Precision of number of decimal places.
|
219 |
+
* @param bool $use_webp Use the WebP size if available.
|
220 |
* @return string|int
|
221 |
*/
|
222 |
public function get_optimized_size( $human_format = true, $decimals = 2, $use_webp = true ) {
|
classes/Optimization/File.php
CHANGED
@@ -454,7 +454,7 @@ class File {
|
|
454 |
* @type string $backup_path If a backup must be done, this is the path to use. Default is the backup path used for the WP Media Library.
|
455 |
* @type int $optimization_level The optimization level (2=ultra, 1=aggressive, 0=normal).
|
456 |
* @type bool $keep_exif To keep exif data or not.
|
457 |
-
* @type string $convert Set to 'webp' to convert the image to
|
458 |
* @type string $context The context.
|
459 |
* @type int $original_size The file size, sent to the API.
|
460 |
* }
|
@@ -768,7 +768,7 @@ class File {
|
|
768 |
}
|
769 |
|
770 |
/**
|
771 |
-
* Replace the file extension by
|
772 |
*
|
773 |
* @since 1.9
|
774 |
* @access public
|
@@ -789,7 +789,7 @@ class File {
|
|
789 |
}
|
790 |
|
791 |
/**
|
792 |
-
* Tell if the file is a
|
793 |
* Rejects "path/to/.webp" files.
|
794 |
*
|
795 |
* @since 1.9
|
454 |
* @type string $backup_path If a backup must be done, this is the path to use. Default is the backup path used for the WP Media Library.
|
455 |
* @type int $optimization_level The optimization level (2=ultra, 1=aggressive, 0=normal).
|
456 |
* @type bool $keep_exif To keep exif data or not.
|
457 |
+
* @type string $convert Set to 'webp' to convert the image to WebP.
|
458 |
* @type string $context The context.
|
459 |
* @type int $original_size The file size, sent to the API.
|
460 |
* }
|
768 |
}
|
769 |
|
770 |
/**
|
771 |
+
* Replace the file extension by WebP.
|
772 |
*
|
773 |
* @since 1.9
|
774 |
* @access public
|
789 |
}
|
790 |
|
791 |
/**
|
792 |
+
* Tell if the file is a WebP image.
|
793 |
* Rejects "path/to/.webp" files.
|
794 |
*
|
795 |
* @since 1.9
|
classes/Optimization/Process/AbstractProcess.php
CHANGED
@@ -289,12 +289,12 @@ abstract class AbstractProcess implements ProcessInterface {
|
|
289 |
}
|
290 |
|
291 |
if ( $data->is_already_optimized() && $this->has_webp() ) {
|
292 |
-
// If already optimized but has
|
293 |
$data->delete_optimization_data();
|
294 |
$deleted = $this->delete_webp_files();
|
295 |
|
296 |
if ( is_wp_error( $deleted ) ) {
|
297 |
-
return new \WP_Error( 'webp_not_deleted', __( 'Previous
|
298 |
}
|
299 |
}
|
300 |
|
@@ -395,7 +395,7 @@ abstract class AbstractProcess implements ProcessInterface {
|
|
395 |
|
396 |
if ( $media->is_image() ) {
|
397 |
if ( $this->get_option( 'convert_to_webp' ) ) {
|
398 |
-
// Add
|
399 |
$files = $media->get_media_files();
|
400 |
|
401 |
foreach ( $sizes as $size_name ) {
|
@@ -416,7 +416,7 @@ abstract class AbstractProcess implements ProcessInterface {
|
|
416 |
if ( ! $media->get_context_instance()->can_backup() && ! $media->get_backup_path() && ! $this->get_data()->get_size_data( 'full', 'success' ) ) {
|
417 |
/**
|
418 |
* Backup is NOT activated, and a backup file does NOT exist yet, and the full size is NOT optimized yet.
|
419 |
-
*
|
420 |
*/
|
421 |
$webp = false;
|
422 |
|
@@ -428,7 +428,7 @@ abstract class AbstractProcess implements ProcessInterface {
|
|
428 |
}
|
429 |
|
430 |
if ( $webp ) {
|
431 |
-
// We have at least one
|
432 |
$backuped = $this->get_original_file()->backup( $media->get_raw_backup_path() );
|
433 |
|
434 |
if ( $backuped ) {
|
@@ -499,7 +499,7 @@ abstract class AbstractProcess implements ProcessInterface {
|
|
499 |
|
500 |
if ( $webp ) {
|
501 |
// We'll make sure the file is an image later.
|
502 |
-
$thumb_size = $webp; // Contains the name of the non-
|
503 |
$webp = true;
|
504 |
}
|
505 |
|
@@ -522,7 +522,7 @@ abstract class AbstractProcess implements ProcessInterface {
|
|
522 |
'size_is_successfully_optimized',
|
523 |
sprintf(
|
524 |
/* translators: %s is a size name. */
|
525 |
-
__( 'The
|
526 |
'<code>' . esc_html( $thumb_size ) . '</code>'
|
527 |
)
|
528 |
);
|
@@ -546,11 +546,11 @@ abstract class AbstractProcess implements ProcessInterface {
|
|
546 |
$optimization_level = $this->sanitize_optimization_level( $optimization_level );
|
547 |
|
548 |
if ( $webp && $this->get_data()->get_size_data( $thumb_size, 'success' ) ) {
|
549 |
-
// We want a
|
550 |
$result = $this->create_temporary_copy( $thumb_size, $sizes );
|
551 |
|
552 |
if ( ! $result ) { // Bail out.
|
553 |
-
// Could not create a copy of the non-
|
554 |
$response = new \WP_Error(
|
555 |
'non_webp_copy_failed',
|
556 |
sprintf(
|
@@ -610,7 +610,7 @@ abstract class AbstractProcess implements ProcessInterface {
|
|
610 |
|
611 |
$response = new \WP_Error(
|
612 |
'no_webp',
|
613 |
-
__( 'This file is not an image and cannot be converted to
|
614 |
);
|
615 |
|
616 |
$this->update_size_optimization_data( $response, $size, $optimization_level );
|
@@ -629,10 +629,10 @@ abstract class AbstractProcess implements ProcessInterface {
|
|
629 |
*
|
630 |
* @param null|\WP_Error $response Null by default. Return a \WP_Error object to prevent optimization.
|
631 |
* @param ProcessInterface $process The optimization process instance.
|
632 |
-
* @param File $file The file instance. If $webp is true, $file references the non-
|
633 |
* @param string $thumb_size The media size.
|
634 |
* @param int $optimization_level The optimization level (0=normal, 1=aggressive, 2=ultra).
|
635 |
-
* @param bool $webp The image will be converted to
|
636 |
* @param bool $is_disabled Tell if this size is disabled from optimization.
|
637 |
*/
|
638 |
$response = apply_filters( 'imagify_before_optimize_size', null, $this, $file, $thumb_size, $optimization_level, $webp, $is_disabled );
|
@@ -660,7 +660,7 @@ abstract class AbstractProcess implements ProcessInterface {
|
|
660 |
} elseif ( $webp && ! $this->can_create_webp_version( $file->get_path() ) ) {
|
661 |
$response = new \WP_Error(
|
662 |
'is_animated_gif',
|
663 |
-
__( 'This file is an animated gif: since Imagify does not support animated
|
664 |
);
|
665 |
} elseif ( ! $this->filesystem->is_writable( $file->get_path() ) ) {
|
666 |
$response = new \WP_Error(
|
@@ -712,7 +712,7 @@ abstract class AbstractProcess implements ProcessInterface {
|
|
712 |
* @param File $file The file instance.
|
713 |
* @param string $thumb_size The media size.
|
714 |
* @param int $optimization_level The optimization level (0=normal, 1=aggressive, 2=ultra).
|
715 |
-
* @param bool $webp The image was supposed to be converted to
|
716 |
* @param bool $is_disabled Tell if this size is disabled from optimization.
|
717 |
*/
|
718 |
do_action( 'imagify_after_optimize_size', $this, $file, $thumb_size, $optimization_level, $webp, $is_disabled );
|
@@ -737,7 +737,7 @@ abstract class AbstractProcess implements ProcessInterface {
|
|
737 |
}
|
738 |
|
739 |
/**
|
740 |
-
* Compare the file size of a file and its
|
741 |
*
|
742 |
* @since 1.9.4
|
743 |
* @access protected
|
@@ -748,9 +748,9 @@ abstract class AbstractProcess implements ProcessInterface {
|
|
748 |
*
|
749 |
* @type \sdtClass|\WP_Error $response Optimized image data. A \WP_Error object on error.
|
750 |
* @type File $file The File instance of the file currently being optimized.
|
751 |
-
* @type bool $is_webp Tell if we're requesting a
|
752 |
-
* @type string $non_webp_thumb_size Name of the corresponding non-
|
753 |
-
* @type string $non_webp_file_path Path to the corresponding non-
|
754 |
* @type string $optimization_level The optimization level.
|
755 |
* }
|
756 |
* @return \sdtClass|\WP_Error Optimized image data. A \WP_Error object on error.
|
@@ -760,7 +760,7 @@ abstract class AbstractProcess implements ProcessInterface {
|
|
760 |
|
761 |
if ( ! isset( $keep_large_webp ) ) {
|
762 |
/**
|
763 |
-
* Allow to not store
|
764 |
*
|
765 |
* @since 1.9.4
|
766 |
* @author Grégory Viguier
|
@@ -777,55 +777,55 @@ abstract class AbstractProcess implements ProcessInterface {
|
|
777 |
// Optimization succeeded.
|
778 |
if ( $args['is_webp'] ) {
|
779 |
/**
|
780 |
-
* We just created a
|
781 |
-
* Check if it is lighter than the (maybe optimized) non-
|
782 |
*/
|
783 |
$data = $this->get_data()->get_size_data( $args['non_webp_thumb_size'] );
|
784 |
|
785 |
if ( ! $data ) {
|
786 |
-
// We haven’t tried to optimize the non-
|
787 |
return $args['response'];
|
788 |
}
|
789 |
|
790 |
if ( ! empty( $data['optimized_size'] ) ) {
|
791 |
-
// The non-
|
792 |
$non_webp_file_size = $data['optimized_size'];
|
793 |
} else {
|
794 |
-
// The non-
|
795 |
$non_webp_file_size = $this->filesystem->size( $args['non_webp_file_path'] );
|
796 |
}
|
797 |
|
798 |
if ( ! $non_webp_file_size || $non_webp_file_size > $args['response']->new_size ) {
|
799 |
-
// The new
|
800 |
return $args['response'];
|
801 |
}
|
802 |
|
803 |
-
// The new
|
804 |
$this->filesystem->delete( $args['file']->get_path() );
|
805 |
|
806 |
return new \WP_Error(
|
807 |
'webp_heavy',
|
808 |
sprintf(
|
809 |
/* translators: %s is a size name. */
|
810 |
-
__( 'The
|
811 |
'<code>' . esc_html( $args['non_webp_thumb_size'] ) . '</code>'
|
812 |
)
|
813 |
);
|
814 |
}
|
815 |
|
816 |
/**
|
817 |
-
* We just created a non-
|
818 |
-
* Check if its
|
819 |
*/
|
820 |
$webp_size = $args['non_webp_thumb_size'] . static::WEBP_SUFFIX;
|
821 |
$webp_file_size = $this->get_data()->get_size_data( $webp_size, 'optimized_size' );
|
822 |
|
823 |
if ( ! $webp_file_size || $webp_file_size < $args['response']->new_size ) {
|
824 |
-
// The
|
825 |
return $args['response'];
|
826 |
}
|
827 |
|
828 |
-
// The new optimized file is lighter than the
|
829 |
$webp_path = $args['file']->get_path_to_webp();
|
830 |
|
831 |
if ( $webp_path && $this->filesystem->is_writable( $webp_path ) ) {
|
@@ -836,7 +836,7 @@ abstract class AbstractProcess implements ProcessInterface {
|
|
836 |
'webp_heavy',
|
837 |
sprintf(
|
838 |
/* translators: %s is a size name. */
|
839 |
-
__( 'The
|
840 |
'<code>' . esc_html( $args['non_webp_thumb_size'] ) . '</code>'
|
841 |
)
|
842 |
);
|
@@ -932,7 +932,7 @@ abstract class AbstractProcess implements ProcessInterface {
|
|
932 |
// Restore the original dimensions in the database.
|
933 |
$media->update_dimensions();
|
934 |
|
935 |
-
// Delete the
|
936 |
$this->delete_webp_file( $original_path );
|
937 |
|
938 |
// Restore the thumbnails.
|
@@ -972,9 +972,9 @@ abstract class AbstractProcess implements ProcessInterface {
|
|
972 |
$media = $this->get_media();
|
973 |
|
974 |
/**
|
975 |
-
* Delete the
|
976 |
* If the full size file and the original file are not the same, the full size is considered like a thumbnail.
|
977 |
-
* In that case we must also delete the
|
978 |
*/
|
979 |
$keep_full_webp = $media->get_raw_original_path() === $media->get_raw_fullsize_path();
|
980 |
$this->delete_webp_files( $keep_full_webp );
|
@@ -1013,8 +1013,8 @@ abstract class AbstractProcess implements ProcessInterface {
|
|
1013 |
/** ----------------------------------------------------------------------------------------- */
|
1014 |
|
1015 |
/**
|
1016 |
-
* If we need to create a
|
1017 |
-
* The full size is always optimized before the
|
1018 |
* Then we use the backup file to create temporary files.
|
1019 |
*/
|
1020 |
|
@@ -1082,7 +1082,7 @@ abstract class AbstractProcess implements ProcessInterface {
|
|
1082 |
|
1083 |
if ( 'full' === $size ) {
|
1084 |
/**
|
1085 |
-
* We create a copy of the backup to be able to create a
|
1086 |
* That means the optimization process will resize the file if needed, so there is nothing more to do here.
|
1087 |
*/
|
1088 |
return true;
|
@@ -1335,7 +1335,7 @@ abstract class AbstractProcess implements ProcessInterface {
|
|
1335 |
}
|
1336 |
|
1337 |
if ( 'full' !== $size && 'full' . static::WEBP_SUFFIX !== $size ) {
|
1338 |
-
// We resize only the main file and its
|
1339 |
return false;
|
1340 |
}
|
1341 |
|
@@ -1385,7 +1385,7 @@ abstract class AbstractProcess implements ProcessInterface {
|
|
1385 |
}
|
1386 |
|
1387 |
if ( 'full' !== $size && 'full' . static::WEBP_SUFFIX !== $size ) {
|
1388 |
-
// We keep exif only on the main file and its
|
1389 |
return false;
|
1390 |
}
|
1391 |
|
@@ -1398,7 +1398,7 @@ abstract class AbstractProcess implements ProcessInterface {
|
|
1398 |
/** ----------------------------------------------------------------------------------------- */
|
1399 |
|
1400 |
/**
|
1401 |
-
* Generate
|
1402 |
*
|
1403 |
* @since 1.9
|
1404 |
* @access public
|
@@ -1414,7 +1414,7 @@ abstract class AbstractProcess implements ProcessInterface {
|
|
1414 |
$media = $this->get_media();
|
1415 |
|
1416 |
if ( ! $media->is_image() ) {
|
1417 |
-
return new \WP_Error( 'no_webp', __( 'This media is not an image and cannot be converted to
|
1418 |
}
|
1419 |
|
1420 |
if ( ! $media->has_backup() ) {
|
@@ -1428,7 +1428,7 @@ abstract class AbstractProcess implements ProcessInterface {
|
|
1428 |
}
|
1429 |
|
1430 |
if ( $this->has_webp() ) {
|
1431 |
-
return new \WP_Error( 'has_webp', __( 'This media already has
|
1432 |
}
|
1433 |
|
1434 |
$files = $media->get_media_files();
|
@@ -1444,7 +1444,7 @@ abstract class AbstractProcess implements ProcessInterface {
|
|
1444 |
}
|
1445 |
|
1446 |
if ( ! $sizes ) {
|
1447 |
-
return new \WP_Error( 'no_sizes', __( 'This media does not have files that can be converted to
|
1448 |
}
|
1449 |
|
1450 |
$optimization_level = $data->get_optimization_level();
|
@@ -1454,7 +1454,7 @@ abstract class AbstractProcess implements ProcessInterface {
|
|
1454 |
}
|
1455 |
|
1456 |
/**
|
1457 |
-
* Delete the
|
1458 |
* This doesn't delete the related optimization data.
|
1459 |
*
|
1460 |
* @since 1.9
|
@@ -1513,7 +1513,7 @@ abstract class AbstractProcess implements ProcessInterface {
|
|
1513 |
}
|
1514 |
|
1515 |
/**
|
1516 |
-
* Delete a
|
1517 |
* This doesn't delete the related optimization data.
|
1518 |
*
|
1519 |
* @since 1.9
|
@@ -1521,19 +1521,19 @@ abstract class AbstractProcess implements ProcessInterface {
|
|
1521 |
* @access protected
|
1522 |
* @author Grégory Viguier
|
1523 |
*
|
1524 |
-
* @param string $file_path Path to the non-
|
1525 |
* @return bool|\WP_Error True on success. A \WP_Error object on failure.
|
1526 |
*/
|
1527 |
protected function delete_webp_file( $file_path ) {
|
1528 |
if ( ! $file_path ) {
|
1529 |
-
return new \WP_Error( 'no_path', __( 'Path to non-
|
1530 |
}
|
1531 |
|
1532 |
$webp_file = new File( $file_path );
|
1533 |
$webp_path = $webp_file->get_path_to_webp();
|
1534 |
|
1535 |
if ( ! $webp_path ) {
|
1536 |
-
return new \WP_Error( 'no_webp_path', __( 'Could not get the path to the
|
1537 |
}
|
1538 |
|
1539 |
if ( ! $this->filesystem->exists( $webp_path ) ) {
|
@@ -1579,14 +1579,14 @@ abstract class AbstractProcess implements ProcessInterface {
|
|
1579 |
}
|
1580 |
|
1581 |
/**
|
1582 |
-
* Tell if a thumbnail size is an "Imagify
|
1583 |
*
|
1584 |
* @since 1.9
|
1585 |
* @access public
|
1586 |
* @author Grégory Viguier
|
1587 |
*
|
1588 |
* @param string $size_name The size name.
|
1589 |
-
* @return string|bool The unsuffixed name of the size if
|
1590 |
*/
|
1591 |
public function is_size_webp( $size_name ) {
|
1592 |
static $suffix;
|
@@ -1603,7 +1603,7 @@ abstract class AbstractProcess implements ProcessInterface {
|
|
1603 |
}
|
1604 |
|
1605 |
/**
|
1606 |
-
* Tell if the media has
|
1607 |
*
|
1608 |
* @since 1.9
|
1609 |
* @access public
|
@@ -1633,7 +1633,7 @@ abstract class AbstractProcess implements ProcessInterface {
|
|
1633 |
}
|
1634 |
|
1635 |
/**
|
1636 |
-
* Tell if a
|
1637 |
* Make sure the file is an image before using this method.
|
1638 |
*
|
1639 |
* @since 1.9.5
|
@@ -1649,13 +1649,13 @@ abstract class AbstractProcess implements ProcessInterface {
|
|
1649 |
}
|
1650 |
|
1651 |
/**
|
1652 |
-
* Tell if a
|
1653 |
* The file is an image.
|
1654 |
*
|
1655 |
* @since 1.9.5
|
1656 |
* @author Grégory Viguier
|
1657 |
*
|
1658 |
-
* @param bool $can True to create a
|
1659 |
* @param string $file_path Path to the file.
|
1660 |
*/
|
1661 |
$can = apply_filters( 'imagify_pre_can_create_webp_version', null, $file_path );
|
289 |
}
|
290 |
|
291 |
if ( $data->is_already_optimized() && $this->has_webp() ) {
|
292 |
+
// If already optimized but has WebP, delete WebP versions and optimization data.
|
293 |
$data->delete_optimization_data();
|
294 |
$deleted = $this->delete_webp_files();
|
295 |
|
296 |
if ( is_wp_error( $deleted ) ) {
|
297 |
+
return new \WP_Error( 'webp_not_deleted', __( 'Previous WebP files could not be deleted.', 'imagify' ) );
|
298 |
}
|
299 |
}
|
300 |
|
395 |
|
396 |
if ( $media->is_image() ) {
|
397 |
if ( $this->get_option( 'convert_to_webp' ) ) {
|
398 |
+
// Add WebP convertion.
|
399 |
$files = $media->get_media_files();
|
400 |
|
401 |
foreach ( $sizes as $size_name ) {
|
416 |
if ( ! $media->get_context_instance()->can_backup() && ! $media->get_backup_path() && ! $this->get_data()->get_size_data( 'full', 'success' ) ) {
|
417 |
/**
|
418 |
* Backup is NOT activated, and a backup file does NOT exist yet, and the full size is NOT optimized yet.
|
419 |
+
* WebP conversion needs a backup file, even a temporary one: we’ll create one.
|
420 |
*/
|
421 |
$webp = false;
|
422 |
|
428 |
}
|
429 |
|
430 |
if ( $webp ) {
|
431 |
+
// We have at least one WebP conversion to do: create a temporary backup.
|
432 |
$backuped = $this->get_original_file()->backup( $media->get_raw_backup_path() );
|
433 |
|
434 |
if ( $backuped ) {
|
499 |
|
500 |
if ( $webp ) {
|
501 |
// We'll make sure the file is an image later.
|
502 |
+
$thumb_size = $webp; // Contains the name of the non-WebP size.
|
503 |
$webp = true;
|
504 |
}
|
505 |
|
522 |
'size_is_successfully_optimized',
|
523 |
sprintf(
|
524 |
/* translators: %s is a size name. */
|
525 |
+
__( 'The WebP format for the size %s already exists.', 'imagify' ),
|
526 |
'<code>' . esc_html( $thumb_size ) . '</code>'
|
527 |
)
|
528 |
);
|
546 |
$optimization_level = $this->sanitize_optimization_level( $optimization_level );
|
547 |
|
548 |
if ( $webp && $this->get_data()->get_size_data( $thumb_size, 'success' ) ) {
|
549 |
+
// We want a WebP version but the source file is already optimized by Imagify.
|
550 |
$result = $this->create_temporary_copy( $thumb_size, $sizes );
|
551 |
|
552 |
if ( ! $result ) { // Bail out.
|
553 |
+
// Could not create a copy of the non-WebP version.
|
554 |
$response = new \WP_Error(
|
555 |
'non_webp_copy_failed',
|
556 |
sprintf(
|
610 |
|
611 |
$response = new \WP_Error(
|
612 |
'no_webp',
|
613 |
+
__( 'This file is not an image and cannot be converted to WebP format.', 'imagify' )
|
614 |
);
|
615 |
|
616 |
$this->update_size_optimization_data( $response, $size, $optimization_level );
|
629 |
*
|
630 |
* @param null|\WP_Error $response Null by default. Return a \WP_Error object to prevent optimization.
|
631 |
* @param ProcessInterface $process The optimization process instance.
|
632 |
+
* @param File $file The file instance. If $webp is true, $file references the non-WebP file.
|
633 |
* @param string $thumb_size The media size.
|
634 |
* @param int $optimization_level The optimization level (0=normal, 1=aggressive, 2=ultra).
|
635 |
+
* @param bool $webp The image will be converted to WebP.
|
636 |
* @param bool $is_disabled Tell if this size is disabled from optimization.
|
637 |
*/
|
638 |
$response = apply_filters( 'imagify_before_optimize_size', null, $this, $file, $thumb_size, $optimization_level, $webp, $is_disabled );
|
660 |
} elseif ( $webp && ! $this->can_create_webp_version( $file->get_path() ) ) {
|
661 |
$response = new \WP_Error(
|
662 |
'is_animated_gif',
|
663 |
+
__( 'This file is an animated gif: since Imagify does not support animated WebP, WebP creation for animated gif is disabled.', 'imagify' )
|
664 |
);
|
665 |
} elseif ( ! $this->filesystem->is_writable( $file->get_path() ) ) {
|
666 |
$response = new \WP_Error(
|
712 |
* @param File $file The file instance.
|
713 |
* @param string $thumb_size The media size.
|
714 |
* @param int $optimization_level The optimization level (0=normal, 1=aggressive, 2=ultra).
|
715 |
+
* @param bool $webp The image was supposed to be converted to WebP.
|
716 |
* @param bool $is_disabled Tell if this size is disabled from optimization.
|
717 |
*/
|
718 |
do_action( 'imagify_after_optimize_size', $this, $file, $thumb_size, $optimization_level, $webp, $is_disabled );
|
737 |
}
|
738 |
|
739 |
/**
|
740 |
+
* Compare the file size of a file and its WebP version: if the WebP version is heavier than the non-WebP file, delete it.
|
741 |
*
|
742 |
* @since 1.9.4
|
743 |
* @access protected
|
748 |
*
|
749 |
* @type \sdtClass|\WP_Error $response Optimized image data. A \WP_Error object on error.
|
750 |
* @type File $file The File instance of the file currently being optimized.
|
751 |
+
* @type bool $is_webp Tell if we're requesting a WebP file.
|
752 |
+
* @type string $non_webp_thumb_size Name of the corresponding non-WebP thumbnail size. If we're not creating a WebP file, this corresponds to the current thumbnail size.
|
753 |
+
* @type string $non_webp_file_path Path to the corresponding non-WebP file. If we're not creating a WebP file, this corresponds to the current file path.
|
754 |
* @type string $optimization_level The optimization level.
|
755 |
* }
|
756 |
* @return \sdtClass|\WP_Error Optimized image data. A \WP_Error object on error.
|
760 |
|
761 |
if ( ! isset( $keep_large_webp ) ) {
|
762 |
/**
|
763 |
+
* Allow to not store WebP images that are larger than their non-WebP version.
|
764 |
*
|
765 |
* @since 1.9.4
|
766 |
* @author Grégory Viguier
|
777 |
// Optimization succeeded.
|
778 |
if ( $args['is_webp'] ) {
|
779 |
/**
|
780 |
+
* We just created a WebP version:
|
781 |
+
* Check if it is lighter than the (maybe optimized) non-WebP file.
|
782 |
*/
|
783 |
$data = $this->get_data()->get_size_data( $args['non_webp_thumb_size'] );
|
784 |
|
785 |
if ( ! $data ) {
|
786 |
+
// We haven’t tried to optimize the non-WebP size yet.
|
787 |
return $args['response'];
|
788 |
}
|
789 |
|
790 |
if ( ! empty( $data['optimized_size'] ) ) {
|
791 |
+
// The non-WebP size is optimized, we know the file size.
|
792 |
$non_webp_file_size = $data['optimized_size'];
|
793 |
} else {
|
794 |
+
// The non-WebP size is "already optimized" or "error": grab the file size directly from the file.
|
795 |
$non_webp_file_size = $this->filesystem->size( $args['non_webp_file_path'] );
|
796 |
}
|
797 |
|
798 |
if ( ! $non_webp_file_size || $non_webp_file_size > $args['response']->new_size ) {
|
799 |
+
// The new WebP file is lighter.
|
800 |
return $args['response'];
|
801 |
}
|
802 |
|
803 |
+
// The new WebP file is heavier than the non-WebP file: delete it and return an error.
|
804 |
$this->filesystem->delete( $args['file']->get_path() );
|
805 |
|
806 |
return new \WP_Error(
|
807 |
'webp_heavy',
|
808 |
sprintf(
|
809 |
/* translators: %s is a size name. */
|
810 |
+
__( 'The WebP version of the size %s is heavier than its non-WebP version.', 'imagify' ),
|
811 |
'<code>' . esc_html( $args['non_webp_thumb_size'] ) . '</code>'
|
812 |
)
|
813 |
);
|
814 |
}
|
815 |
|
816 |
/**
|
817 |
+
* We just created a non-WebP version:
|
818 |
+
* Check if its WebP version file is lighter than this one.
|
819 |
*/
|
820 |
$webp_size = $args['non_webp_thumb_size'] . static::WEBP_SUFFIX;
|
821 |
$webp_file_size = $this->get_data()->get_size_data( $webp_size, 'optimized_size' );
|
822 |
|
823 |
if ( ! $webp_file_size || $webp_file_size < $args['response']->new_size ) {
|
824 |
+
// The WebP file is lighter than this one.
|
825 |
return $args['response'];
|
826 |
}
|
827 |
|
828 |
+
// The new optimized file is lighter than the WebP file: delete the WebP file and store an error.
|
829 |
$webp_path = $args['file']->get_path_to_webp();
|
830 |
|
831 |
if ( $webp_path && $this->filesystem->is_writable( $webp_path ) ) {
|
836 |
'webp_heavy',
|
837 |
sprintf(
|
838 |
/* translators: %s is a size name. */
|
839 |
+
__( 'The WebP version of the size %s is heavier than its non-WebP version.', 'imagify' ),
|
840 |
'<code>' . esc_html( $args['non_webp_thumb_size'] ) . '</code>'
|
841 |
)
|
842 |
);
|
932 |
// Restore the original dimensions in the database.
|
933 |
$media->update_dimensions();
|
934 |
|
935 |
+
// Delete the WebP version.
|
936 |
$this->delete_webp_file( $original_path );
|
937 |
|
938 |
// Restore the thumbnails.
|
972 |
$media = $this->get_media();
|
973 |
|
974 |
/**
|
975 |
+
* Delete the WebP versions.
|
976 |
* If the full size file and the original file are not the same, the full size is considered like a thumbnail.
|
977 |
+
* In that case we must also delete the WebP file associated to the full size.
|
978 |
*/
|
979 |
$keep_full_webp = $media->get_raw_original_path() === $media->get_raw_fullsize_path();
|
980 |
$this->delete_webp_files( $keep_full_webp );
|
1013 |
/** ----------------------------------------------------------------------------------------- */
|
1014 |
|
1015 |
/**
|
1016 |
+
* If we need to create a WebP version, we must create it from an unoptimized image.
|
1017 |
+
* The full size is always optimized before the WebP version creation, and in some cases it’s the same for the thumbnails.
|
1018 |
* Then we use the backup file to create temporary files.
|
1019 |
*/
|
1020 |
|
1082 |
|
1083 |
if ( 'full' === $size ) {
|
1084 |
/**
|
1085 |
+
* We create a copy of the backup to be able to create a WebP version from it.
|
1086 |
* That means the optimization process will resize the file if needed, so there is nothing more to do here.
|
1087 |
*/
|
1088 |
return true;
|
1335 |
}
|
1336 |
|
1337 |
if ( 'full' !== $size && 'full' . static::WEBP_SUFFIX !== $size ) {
|
1338 |
+
// We resize only the main file and its WebP version.
|
1339 |
return false;
|
1340 |
}
|
1341 |
|
1385 |
}
|
1386 |
|
1387 |
if ( 'full' !== $size && 'full' . static::WEBP_SUFFIX !== $size ) {
|
1388 |
+
// We keep exif only on the main file and its WebP version.
|
1389 |
return false;
|
1390 |
}
|
1391 |
|
1398 |
/** ----------------------------------------------------------------------------------------- */
|
1399 |
|
1400 |
/**
|
1401 |
+
* Generate WebP images if they are missing.
|
1402 |
*
|
1403 |
* @since 1.9
|
1404 |
* @access public
|
1414 |
$media = $this->get_media();
|
1415 |
|
1416 |
if ( ! $media->is_image() ) {
|
1417 |
+
return new \WP_Error( 'no_webp', __( 'This media is not an image and cannot be converted to WebP format.', 'imagify' ) );
|
1418 |
}
|
1419 |
|
1420 |
if ( ! $media->has_backup() ) {
|
1428 |
}
|
1429 |
|
1430 |
if ( $this->has_webp() ) {
|
1431 |
+
return new \WP_Error( 'has_webp', __( 'This media already has WebP versions.', 'imagify' ) );
|
1432 |
}
|
1433 |
|
1434 |
$files = $media->get_media_files();
|
1444 |
}
|
1445 |
|
1446 |
if ( ! $sizes ) {
|
1447 |
+
return new \WP_Error( 'no_sizes', __( 'This media does not have files that can be converted to WebP format.', 'imagify' ) );
|
1448 |
}
|
1449 |
|
1450 |
$optimization_level = $data->get_optimization_level();
|
1454 |
}
|
1455 |
|
1456 |
/**
|
1457 |
+
* Delete the WebP images.
|
1458 |
* This doesn't delete the related optimization data.
|
1459 |
*
|
1460 |
* @since 1.9
|
1513 |
}
|
1514 |
|
1515 |
/**
|
1516 |
+
* Delete a WebP image, given its non-WebP version's path.
|
1517 |
* This doesn't delete the related optimization data.
|
1518 |
*
|
1519 |
* @since 1.9
|
1521 |
* @access protected
|
1522 |
* @author Grégory Viguier
|
1523 |
*
|
1524 |
+
* @param string $file_path Path to the non-WebP file.
|
1525 |
* @return bool|\WP_Error True on success. A \WP_Error object on failure.
|
1526 |
*/
|
1527 |
protected function delete_webp_file( $file_path ) {
|
1528 |
if ( ! $file_path ) {
|
1529 |
+
return new \WP_Error( 'no_path', __( 'Path to non-WebP file not provided.', 'imagify' ) );
|
1530 |
}
|
1531 |
|
1532 |
$webp_file = new File( $file_path );
|
1533 |
$webp_path = $webp_file->get_path_to_webp();
|
1534 |
|
1535 |
if ( ! $webp_path ) {
|
1536 |
+
return new \WP_Error( 'no_webp_path', __( 'Could not get the path to the WebP file.', 'imagify' ) );
|
1537 |
}
|
1538 |
|
1539 |
if ( ! $this->filesystem->exists( $webp_path ) ) {
|
1579 |
}
|
1580 |
|
1581 |
/**
|
1582 |
+
* Tell if a thumbnail size is an "Imagify WebP" size.
|
1583 |
*
|
1584 |
* @since 1.9
|
1585 |
* @access public
|
1586 |
* @author Grégory Viguier
|
1587 |
*
|
1588 |
* @param string $size_name The size name.
|
1589 |
+
* @return string|bool The unsuffixed name of the size if WebP. False if not WebP.
|
1590 |
*/
|
1591 |
public function is_size_webp( $size_name ) {
|
1592 |
static $suffix;
|
1603 |
}
|
1604 |
|
1605 |
/**
|
1606 |
+
* Tell if the media has WebP versions.
|
1607 |
*
|
1608 |
* @since 1.9
|
1609 |
* @access public
|
1633 |
}
|
1634 |
|
1635 |
/**
|
1636 |
+
* Tell if a WebP version can be created for the given file.
|
1637 |
* Make sure the file is an image before using this method.
|
1638 |
*
|
1639 |
* @since 1.9.5
|
1649 |
}
|
1650 |
|
1651 |
/**
|
1652 |
+
* Tell if a WebP version can be created for the given file.
|
1653 |
* The file is an image.
|
1654 |
*
|
1655 |
* @since 1.9.5
|
1656 |
* @author Grégory Viguier
|
1657 |
*
|
1658 |
+
* @param bool $can True to create a WebP version, false otherwise. Null by default.
|
1659 |
* @param string $file_path Path to the file.
|
1660 |
*/
|
1661 |
$can = apply_filters( 'imagify_pre_can_create_webp_version', null, $file_path );
|
classes/Optimization/Process/Noop.php
CHANGED
@@ -287,7 +287,7 @@ class Noop implements ProcessInterface {
|
|
287 |
/** ----------------------------------------------------------------------------------------- */
|
288 |
|
289 |
/**
|
290 |
-
* Generate
|
291 |
*
|
292 |
* @since 1.9
|
293 |
* @access public
|
@@ -300,7 +300,7 @@ class Noop implements ProcessInterface {
|
|
300 |
}
|
301 |
|
302 |
/**
|
303 |
-
* Delete the
|
304 |
*
|
305 |
* @since 1.9
|
306 |
* @access public
|
@@ -309,14 +309,14 @@ class Noop implements ProcessInterface {
|
|
309 |
public function delete_webp_files() {}
|
310 |
|
311 |
/**
|
312 |
-
* Tell if a thumbnail size is an "Imagify
|
313 |
*
|
314 |
* @since 1.9
|
315 |
* @access public
|
316 |
* @author Grégory Viguier
|
317 |
*
|
318 |
* @param string $size_name The size name.
|
319 |
-
* @return string|bool The unsuffixed name of the size if
|
320 |
*/
|
321 |
public function is_size_webp( $size_name ) {
|
322 |
return false;
|
287 |
/** ----------------------------------------------------------------------------------------- */
|
288 |
|
289 |
/**
|
290 |
+
* Generate WebP images if they are missing.
|
291 |
*
|
292 |
* @since 1.9
|
293 |
* @access public
|
300 |
}
|
301 |
|
302 |
/**
|
303 |
+
* Delete the WebP images.
|
304 |
*
|
305 |
* @since 1.9
|
306 |
* @access public
|
309 |
public function delete_webp_files() {}
|
310 |
|
311 |
/**
|
312 |
+
* Tell if a thumbnail size is an "Imagify WebP" size.
|
313 |
*
|
314 |
* @since 1.9
|
315 |
* @access public
|
316 |
* @author Grégory Viguier
|
317 |
*
|
318 |
* @param string $size_name The size name.
|
319 |
+
* @return string|bool The unsuffixed name of the size if WebP. False if not WebP.
|
320 |
*/
|
321 |
public function is_size_webp( $size_name ) {
|
322 |
return false;
|
classes/Optimization/Process/ProcessInterface.php
CHANGED
@@ -238,7 +238,7 @@ interface ProcessInterface {
|
|
238 |
/** ----------------------------------------------------------------------------------------- */
|
239 |
|
240 |
/**
|
241 |
-
* Generate
|
242 |
*
|
243 |
* @since 1.9
|
244 |
* @access public
|
@@ -249,7 +249,7 @@ interface ProcessInterface {
|
|
249 |
public function generate_webp_versions();
|
250 |
|
251 |
/**
|
252 |
-
* Delete the
|
253 |
* This doesn't delete the related optimization data.
|
254 |
*
|
255 |
* @since 1.9
|
@@ -263,19 +263,19 @@ interface ProcessInterface {
|
|
263 |
public function delete_webp_files( $keep_full = false );
|
264 |
|
265 |
/**
|
266 |
-
* Tell if a thumbnail size is an "Imagify
|
267 |
*
|
268 |
* @since 1.9
|
269 |
* @access public
|
270 |
* @author Grégory Viguier
|
271 |
*
|
272 |
* @param string $size_name The size name.
|
273 |
-
* @return string|bool The unsuffixed name of the size if
|
274 |
*/
|
275 |
public function is_size_webp( $size_name );
|
276 |
|
277 |
/**
|
278 |
-
* Tell if the media has
|
279 |
*
|
280 |
* @since 1.9
|
281 |
* @access public
|
238 |
/** ----------------------------------------------------------------------------------------- */
|
239 |
|
240 |
/**
|
241 |
+
* Generate WebP images if they are missing.
|
242 |
*
|
243 |
* @since 1.9
|
244 |
* @access public
|
249 |
public function generate_webp_versions();
|
250 |
|
251 |
/**
|
252 |
+
* Delete the WebP images.
|
253 |
* This doesn't delete the related optimization data.
|
254 |
*
|
255 |
* @since 1.9
|
263 |
public function delete_webp_files( $keep_full = false );
|
264 |
|
265 |
/**
|
266 |
+
* Tell if a thumbnail size is an "Imagify WebP" size.
|
267 |
*
|
268 |
* @since 1.9
|
269 |
* @access public
|
270 |
* @author Grégory Viguier
|
271 |
*
|
272 |
* @param string $size_name The size name.
|
273 |
+
* @return string|bool The unsuffixed name of the size if WebP. False if not WebP.
|
274 |
*/
|
275 |
public function is_size_webp( $size_name );
|
276 |
|
277 |
/**
|
278 |
+
* Tell if the media has WebP versions.
|
279 |
*
|
280 |
* @since 1.9
|
281 |
* @access public
|
classes/Stats/OptimizedMediaWithoutWebp.php
CHANGED
@@ -4,7 +4,7 @@ namespace Imagify\Stats;
|
|
4 |
defined( 'ABSPATH' ) || die( 'Cheatin’ uh?' );
|
5 |
|
6 |
/**
|
7 |
-
* Class to get and cache the number of optimized media without
|
8 |
*
|
9 |
* @since 1.9
|
10 |
* @author Grégory Viguier
|
@@ -41,7 +41,7 @@ class OptimizedMediaWithoutWebp implements StatInterface {
|
|
41 |
/** ----------------------------------------------------------------------------------------- */
|
42 |
|
43 |
/**
|
44 |
-
* Get the number of optimized media without
|
45 |
*
|
46 |
* @since 1.9
|
47 |
* @access public
|
@@ -62,7 +62,7 @@ class OptimizedMediaWithoutWebp implements StatInterface {
|
|
62 |
}
|
63 |
|
64 |
/**
|
65 |
-
* Get and cache the number of optimized media without
|
66 |
*
|
67 |
* @since 1.9
|
68 |
* @access public
|
@@ -128,9 +128,9 @@ class OptimizedMediaWithoutWebp implements StatInterface {
|
|
128 |
|
129 |
if ( ! isset( $new_sizes['full'] ) && ! empty( $new_sizes[ $size_name ]['success'] ) ) {
|
130 |
/**
|
131 |
-
* We just successfully generated the
|
132 |
* The full size was not optimized at the same time, that means it was optimized previously.
|
133 |
-
* Meaning: we just added a
|
134 |
*/
|
135 |
$this->clear_cache();
|
136 |
return;
|
@@ -138,7 +138,7 @@ class OptimizedMediaWithoutWebp implements StatInterface {
|
|
138 |
|
139 |
if ( ! empty( $new_sizes['full']['success'] ) && empty( $new_sizes[ $size_name ]['success'] ) ) {
|
140 |
/**
|
141 |
-
* We now have a new optimized media without
|
142 |
*/
|
143 |
$this->clear_cache();
|
144 |
}
|
@@ -166,7 +166,7 @@ class OptimizedMediaWithoutWebp implements StatInterface {
|
|
166 |
|
167 |
if ( ! empty( $sizes['full']['success'] ) && empty( $sizes[ $size_name ]['success'] ) ) {
|
168 |
/**
|
169 |
-
* This media had no
|
170 |
*/
|
171 |
$this->clear_cache();
|
172 |
}
|
@@ -192,7 +192,7 @@ class OptimizedMediaWithoutWebp implements StatInterface {
|
|
192 |
|
193 |
if ( ! empty( $sizes['full']['success'] ) && empty( $sizes[ $size_name ]['success'] ) ) {
|
194 |
/**
|
195 |
-
* This media had no
|
196 |
*/
|
197 |
$this->clear_cache();
|
198 |
}
|
4 |
defined( 'ABSPATH' ) || die( 'Cheatin’ uh?' );
|
5 |
|
6 |
/**
|
7 |
+
* Class to get and cache the number of optimized media without WebP versions.
|
8 |
*
|
9 |
* @since 1.9
|
10 |
* @author Grégory Viguier
|
41 |
/** ----------------------------------------------------------------------------------------- */
|
42 |
|
43 |
/**
|
44 |
+
* Get the number of optimized media without WebP versions.
|
45 |
*
|
46 |
* @since 1.9
|
47 |
* @access public
|
62 |
}
|
63 |
|
64 |
/**
|
65 |
+
* Get and cache the number of optimized media without WebP versions.
|
66 |
*
|
67 |
* @since 1.9
|
68 |
* @access public
|
128 |
|
129 |
if ( ! isset( $new_sizes['full'] ) && ! empty( $new_sizes[ $size_name ]['success'] ) ) {
|
130 |
/**
|
131 |
+
* We just successfully generated the WebP version of the full size.
|
132 |
* The full size was not optimized at the same time, that means it was optimized previously.
|
133 |
+
* Meaning: we just added a WebP version to a media that was previously optimized, so there is one less optimized media without WebP.
|
134 |
*/
|
135 |
$this->clear_cache();
|
136 |
return;
|
138 |
|
139 |
if ( ! empty( $new_sizes['full']['success'] ) && empty( $new_sizes[ $size_name ]['success'] ) ) {
|
140 |
/**
|
141 |
+
* We now have a new optimized media without WebP.
|
142 |
*/
|
143 |
$this->clear_cache();
|
144 |
}
|
166 |
|
167 |
if ( ! empty( $sizes['full']['success'] ) && empty( $sizes[ $size_name ]['success'] ) ) {
|
168 |
/**
|
169 |
+
* This media had no WebP versions.
|
170 |
*/
|
171 |
$this->clear_cache();
|
172 |
}
|
192 |
|
193 |
if ( ! empty( $sizes['full']['success'] ) && empty( $sizes[ $size_name ]['success'] ) ) {
|
194 |
/**
|
195 |
+
* This media had no WebP versions.
|
196 |
*/
|
197 |
$this->clear_cache();
|
198 |
}
|
classes/Webp/Apache.php
CHANGED
@@ -4,7 +4,7 @@ namespace Imagify\Webp;
|
|
4 |
defined( 'ABSPATH' ) || die( 'Cheatin’ uh?' );
|
5 |
|
6 |
/**
|
7 |
-
* Add and remove contents to the .htaccess file to display
|
8 |
*
|
9 |
* @since 1.9
|
10 |
* @author Grégory Viguier
|
4 |
defined( 'ABSPATH' ) || die( 'Cheatin’ uh?' );
|
5 |
|
6 |
/**
|
7 |
+
* Add and remove contents to the .htaccess file to display WebP images on the site.
|
8 |
*
|
9 |
* @since 1.9
|
10 |
* @author Grégory Viguier
|
classes/Webp/Display.php
CHANGED
@@ -4,7 +4,7 @@ namespace Imagify\Webp;
|
|
4 |
defined( 'ABSPATH' ) || die( 'Cheatin’ uh?' );
|
5 |
|
6 |
/**
|
7 |
-
* Display
|
8 |
*
|
9 |
* @since 1.9
|
10 |
* @author Grégory Viguier
|
@@ -44,7 +44,7 @@ class Display {
|
|
44 |
/** ----------------------------------------------------------------------------------------- */
|
45 |
|
46 |
/**
|
47 |
-
* If display
|
48 |
*
|
49 |
* @since 1.9
|
50 |
* @access public
|
@@ -68,10 +68,10 @@ class Display {
|
|
68 |
}
|
69 |
|
70 |
if ( $new_value ) {
|
71 |
-
// Add the
|
72 |
$result = $this->get_server_conf()->add();
|
73 |
} else {
|
74 |
-
// Remove the
|
75 |
$result = $this->get_server_conf()->remove();
|
76 |
}
|
77 |
|
@@ -209,7 +209,7 @@ class Display {
|
|
209 |
}
|
210 |
|
211 |
/**
|
212 |
-
* Get the
|
213 |
*
|
214 |
* @since 1.9
|
215 |
* @access public
|
4 |
defined( 'ABSPATH' ) || die( 'Cheatin’ uh?' );
|
5 |
|
6 |
/**
|
7 |
+
* Display WebP images on the site.
|
8 |
*
|
9 |
* @since 1.9
|
10 |
* @author Grégory Viguier
|
44 |
/** ----------------------------------------------------------------------------------------- */
|
45 |
|
46 |
/**
|
47 |
+
* If display WebP images, add the WebP type to the .htaccess/etc file.
|
48 |
*
|
49 |
* @since 1.9
|
50 |
* @access public
|
68 |
}
|
69 |
|
70 |
if ( $new_value ) {
|
71 |
+
// Add the WebP file type.
|
72 |
$result = $this->get_server_conf()->add();
|
73 |
} else {
|
74 |
+
// Remove the WebP file type.
|
75 |
$result = $this->get_server_conf()->remove();
|
76 |
}
|
77 |
|
209 |
}
|
210 |
|
211 |
/**
|
212 |
+
* Get the WebP display method by validating the given value.
|
213 |
*
|
214 |
* @since 1.9
|
215 |
* @access public
|
classes/Webp/IIS.php
CHANGED
@@ -4,7 +4,7 @@ namespace Imagify\Webp;
|
|
4 |
defined( 'ABSPATH' ) || die( 'Cheatin’ uh?' );
|
5 |
|
6 |
/**
|
7 |
-
* Add and remove contents to the web.config file to display
|
8 |
*
|
9 |
* @since 1.9
|
10 |
* @author Grégory Viguier
|
4 |
defined( 'ABSPATH' ) || die( 'Cheatin’ uh?' );
|
5 |
|
6 |
/**
|
7 |
+
* Add and remove contents to the web.config file to display WebP images on the site.
|
8 |
*
|
9 |
* @since 1.9
|
10 |
* @author Grégory Viguier
|
classes/Webp/Picture/Display.php
CHANGED
@@ -4,7 +4,7 @@ namespace Imagify\Webp\Picture;
|
|
4 |
defined( 'ABSPATH' ) || die( 'Cheatin’ uh?' );
|
5 |
|
6 |
/**
|
7 |
-
* Display
|
8 |
*
|
9 |
* @since 1.9
|
10 |
* @author Grégory Viguier
|
@@ -136,7 +136,8 @@ class Display {
|
|
136 |
* @return string
|
137 |
*/
|
138 |
public function process_content( $content ) {
|
139 |
-
$
|
|
|
140 |
|
141 |
if ( ! $images ) {
|
142 |
return $content;
|
@@ -147,7 +148,28 @@ class Display {
|
|
147 |
$content = str_replace( $image['tag'], $tag, $content );
|
148 |
}
|
149 |
|
150 |
-
return $content;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
151 |
}
|
152 |
|
153 |
/** ----------------------------------------------------------------------------------------- */
|
@@ -194,6 +216,17 @@ class Display {
|
|
194 |
*/
|
195 |
$attributes = apply_filters( 'imagify_picture_attributes', $attributes, $image );
|
196 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
197 |
$output = '<picture' . $this->build_attributes( $attributes ) . ">\n";
|
198 |
/**
|
199 |
* Allow to add more <source> tags to the <picture> tag.
|
@@ -289,14 +322,27 @@ class Display {
|
|
289 |
* @return string A <img> tag.
|
290 |
*/
|
291 |
protected function build_img_tag( $image ) {
|
292 |
-
|
293 |
-
|
294 |
-
|
295 |
-
|
296 |
-
|
297 |
-
|
|
|
|
|
|
|
298 |
|
299 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
300 |
|
301 |
/**
|
302 |
* Filter the attributes to be added to the <img> tag.
|
@@ -415,19 +461,19 @@ class Display {
|
|
415 |
*
|
416 |
* @param string $image An image html tag.
|
417 |
* @return array|false {
|
418 |
-
* An array of data if the image has a
|
419 |
*
|
420 |
* @type string $tag The image tag.
|
421 |
* @type array $attributes The image attributes (minus src and srcset).
|
422 |
* @type array $src {
|
423 |
* @type string $url URL to the original image.
|
424 |
-
* @type string $webp_url URL to the
|
425 |
* }
|
426 |
* @type array $srcset {
|
427 |
* An array or arrays. Not set if not applicable.
|
428 |
*
|
429 |
* @type string $url URL to the original image.
|
430 |
-
* @type string $webp_url URL to the
|
431 |
* @type string $descriptor A src descriptor.
|
432 |
* }
|
433 |
* }
|
4 |
defined( 'ABSPATH' ) || die( 'Cheatin’ uh?' );
|
5 |
|
6 |
/**
|
7 |
+
* Display WebP images on the site with <picture> tags.
|
8 |
*
|
9 |
* @since 1.9
|
10 |
* @author Grégory Viguier
|
136 |
* @return string
|
137 |
*/
|
138 |
public function process_content( $content ) {
|
139 |
+
$html_no_picture_tags = $this->remove_picture_tags( $content );
|
140 |
+
$images = $this->get_images( $html_no_picture_tags );
|
141 |
|
142 |
if ( ! $images ) {
|
143 |
return $content;
|
148 |
$content = str_replace( $image['tag'], $tag, $content );
|
149 |
}
|
150 |
|
151 |
+
return $content; }
|
152 |
+
|
153 |
+
/**
|
154 |
+
* Remove pre-existing <picture> tags.
|
155 |
+
*
|
156 |
+
* We shouldn't replace images already nested inside picture tags
|
157 |
+
* that are already in the page.
|
158 |
+
*
|
159 |
+
* @since 1.10.0
|
160 |
+
*
|
161 |
+
* @param string $html Content of the page.
|
162 |
+
*
|
163 |
+
* @return string HTML content without pre-existing <picture> tags.
|
164 |
+
*/
|
165 |
+
private function remove_picture_tags( $html ) {
|
166 |
+
$replace = preg_replace( '#<picture[^>]*>.*?<\/picture\s*>#mis', '', $html );
|
167 |
+
|
168 |
+
if ( null === $replace ) {
|
169 |
+
return $html;
|
170 |
+
}
|
171 |
+
|
172 |
+
return $replace;
|
173 |
}
|
174 |
|
175 |
/** ----------------------------------------------------------------------------------------- */
|
216 |
*/
|
217 |
$attributes = apply_filters( 'imagify_picture_attributes', $attributes, $image );
|
218 |
|
219 |
+
/**
|
220 |
+
* Remove Gutenberg specific attributes from picture tag, leave them on img tag.
|
221 |
+
* Optional: $attributes['class'] = 'imagify-webp-cover-wrapper'; for website admin styling ease.
|
222 |
+
*/
|
223 |
+
if ( ! empty( $image['attributes']['class'] ) && strpos( $image['attributes']['class'], 'wp-block-cover__image-background' ) !== false ) {
|
224 |
+
unset( $attributes['style'] );
|
225 |
+
unset( $attributes['class'] );
|
226 |
+
unset( $attributes['data-object-fit'] );
|
227 |
+
unset( $attributes['data-object-position'] );
|
228 |
+
}
|
229 |
+
|
230 |
$output = '<picture' . $this->build_attributes( $attributes ) . ">\n";
|
231 |
/**
|
232 |
* Allow to add more <source> tags to the <picture> tag.
|
322 |
* @return string A <img> tag.
|
323 |
*/
|
324 |
protected function build_img_tag( $image ) {
|
325 |
+
/**
|
326 |
+
* Gutenberg fix.
|
327 |
+
* Check for the 'wp-block-cover__image-background' class on the original image, and leave that class and style attributes if found.
|
328 |
+
*/
|
329 |
+
if ( ! empty( $image['attributes']['class'] ) && strpos( $image['attributes']['class'], 'wp-block-cover__image-background' ) !== false ) {
|
330 |
+
$to_remove = [
|
331 |
+
'id' => '',
|
332 |
+
'title' => '',
|
333 |
+
];
|
334 |
|
335 |
+
$attributes = array_diff_key( $image['attributes'], $to_remove );
|
336 |
+
} else {
|
337 |
+
$to_remove = [
|
338 |
+
'class' => '',
|
339 |
+
'id' => '',
|
340 |
+
'style' => '',
|
341 |
+
'title' => '',
|
342 |
+
];
|
343 |
+
|
344 |
+
$attributes = array_diff_key( $image['attributes'], $to_remove );
|
345 |
+
}
|
346 |
|
347 |
/**
|
348 |
* Filter the attributes to be added to the <img> tag.
|
461 |
*
|
462 |
* @param string $image An image html tag.
|
463 |
* @return array|false {
|
464 |
+
* An array of data if the image has a WebP version. False otherwise.
|
465 |
*
|
466 |
* @type string $tag The image tag.
|
467 |
* @type array $attributes The image attributes (minus src and srcset).
|
468 |
* @type array $src {
|
469 |
* @type string $url URL to the original image.
|
470 |
+
* @type string $webp_url URL to the WebP version.
|
471 |
* }
|
472 |
* @type array $srcset {
|
473 |
* An array or arrays. Not set if not applicable.
|
474 |
*
|
475 |
* @type string $url URL to the original image.
|
476 |
+
* @type string $webp_url URL to the WebP version. Not set if not applicable.
|
477 |
* @type string $descriptor A src descriptor.
|
478 |
* }
|
479 |
* }
|
classes/Webp/RewriteRules/Apache.php
CHANGED
@@ -4,7 +4,7 @@ namespace Imagify\Webp\RewriteRules;
|
|
4 |
defined( 'ABSPATH' ) || die( 'Cheatin’ uh?' );
|
5 |
|
6 |
/**
|
7 |
-
* Add and remove rewrite rules to the .htaccess file to display
|
8 |
*
|
9 |
* @since 1.9
|
10 |
* @author Grégory Viguier
|
4 |
defined( 'ABSPATH' ) || die( 'Cheatin’ uh?' );
|
5 |
|
6 |
/**
|
7 |
+
* Add and remove rewrite rules to the .htaccess file to display WebP images on the site.
|
8 |
*
|
9 |
* @since 1.9
|
10 |
* @author Grégory Viguier
|
classes/Webp/RewriteRules/Display.php
CHANGED
@@ -4,7 +4,7 @@ namespace Imagify\Webp\RewriteRules;
|
|
4 |
defined( 'ABSPATH' ) || die( 'Cheatin’ uh?' );
|
5 |
|
6 |
/**
|
7 |
-
* Display
|
8 |
*
|
9 |
* @since 1.9
|
10 |
* @author Grégory Viguier
|
@@ -40,7 +40,7 @@ class Display {
|
|
40 |
/** ----------------------------------------------------------------------------------------- */
|
41 |
|
42 |
/**
|
43 |
-
* If display
|
44 |
*
|
45 |
* @since 1.9
|
46 |
* @access public
|
@@ -52,7 +52,7 @@ class Display {
|
|
52 |
public function maybe_add_rewrite_rules( $values ) {
|
53 |
global $is_apache, $is_iis7, $is_nginx;
|
54 |
|
55 |
-
// Display
|
56 |
$was_enabled = (bool) get_imagify_option( 'display_webp' );
|
57 |
// See \Imagify_Options->validate_values_on_update() for why we use 'convert_to_webp' here.
|
58 |
$is_enabled = ! empty( $values['display_webp'] ) && ! empty( $values['convert_to_webp'] );
|
@@ -67,10 +67,10 @@ class Display {
|
|
67 |
$add_or_remove = false;
|
68 |
|
69 |
if ( $is_enabled && $is_rewrite && ( ! $was_enabled || ! $was_rewrite ) ) {
|
70 |
-
// Display
|
71 |
$add_or_remove = 'add';
|
72 |
} elseif ( $was_enabled && $was_rewrite && ( ! $is_enabled || ! $is_rewrite ) ) {
|
73 |
-
// Was displaying
|
74 |
$add_or_remove = 'remove';
|
75 |
} else {
|
76 |
return $values;
|
4 |
defined( 'ABSPATH' ) || die( 'Cheatin’ uh?' );
|
5 |
|
6 |
/**
|
7 |
+
* Display WebP images on the site with rewrite rules.
|
8 |
*
|
9 |
* @since 1.9
|
10 |
* @author Grégory Viguier
|
40 |
/** ----------------------------------------------------------------------------------------- */
|
41 |
|
42 |
/**
|
43 |
+
* If display WebP images via rewrite rules, add the rules to the .htaccess/etc file.
|
44 |
*
|
45 |
* @since 1.9
|
46 |
* @access public
|
52 |
public function maybe_add_rewrite_rules( $values ) {
|
53 |
global $is_apache, $is_iis7, $is_nginx;
|
54 |
|
55 |
+
// Display WebP?
|
56 |
$was_enabled = (bool) get_imagify_option( 'display_webp' );
|
57 |
// See \Imagify_Options->validate_values_on_update() for why we use 'convert_to_webp' here.
|
58 |
$is_enabled = ! empty( $values['display_webp'] ) && ! empty( $values['convert_to_webp'] );
|
67 |
$add_or_remove = false;
|
68 |
|
69 |
if ( $is_enabled && $is_rewrite && ( ! $was_enabled || ! $was_rewrite ) ) {
|
70 |
+
// Display WebP & use rewrite method, but only if one of the values changed: add rules.
|
71 |
$add_or_remove = 'add';
|
72 |
} elseif ( $was_enabled && $was_rewrite && ( ! $is_enabled || ! $is_rewrite ) ) {
|
73 |
+
// Was displaying WebP & was using rewrite method, but only if one of the values changed: remove rules.
|
74 |
$add_or_remove = 'remove';
|
75 |
} else {
|
76 |
return $values;
|
classes/Webp/RewriteRules/IIS.php
CHANGED
@@ -4,7 +4,7 @@ namespace Imagify\Webp\RewriteRules;
|
|
4 |
defined( 'ABSPATH' ) || die( 'Cheatin’ uh?' );
|
5 |
|
6 |
/**
|
7 |
-
* Add and remove rewrite rules to the web.config file to display
|
8 |
*
|
9 |
* @since 1.9
|
10 |
* @author Grégory Viguier
|
4 |
defined( 'ABSPATH' ) || die( 'Cheatin’ uh?' );
|
5 |
|
6 |
/**
|
7 |
+
* Add and remove rewrite rules to the web.config file to display WebP images on the site.
|
8 |
*
|
9 |
* @since 1.9
|
10 |
* @author Grégory Viguier
|
classes/Webp/RewriteRules/Nginx.php
CHANGED
@@ -4,7 +4,7 @@ namespace Imagify\Webp\RewriteRules;
|
|
4 |
defined( 'ABSPATH' ) || die( 'Cheatin’ uh?' );
|
5 |
|
6 |
/**
|
7 |
-
* Add and remove rewrite rules to the imagify.conf file to display
|
8 |
*
|
9 |
* @since 1.9
|
10 |
* @author Grégory Viguier
|
4 |
defined( 'ABSPATH' ) || die( 'Cheatin’ uh?' );
|
5 |
|
6 |
/**
|
7 |
+
* Add and remove rewrite rules to the imagify.conf file to display WebP images on the site.
|
8 |
*
|
9 |
* @since 1.9
|
10 |
* @author Grégory Viguier
|
imagify.php
CHANGED
@@ -3,9 +3,9 @@
|
|
3 |
* Plugin Name: Imagify
|
4 |
* Plugin URI: https://wordpress.org/plugins/imagify/
|
5 |
* Description: Dramatically reduce image file sizes without losing quality, make your website load faster, boost your SEO and save money on your bandwidth using Imagify, the new most advanced image optimization tool.
|
6 |
-
* Version: 1.
|
7 |
-
* Requires at least:
|
8 |
-
* Requires PHP:
|
9 |
* Author: WP Media
|
10 |
* Author URI: https://wp-media.me/
|
11 |
* Licence: GPLv2
|
@@ -21,7 +21,7 @@
|
|
21 |
defined( 'ABSPATH' ) || die( 'Cheatin’ uh?' );
|
22 |
|
23 |
// Imagify defines.
|
24 |
-
define( 'IMAGIFY_VERSION', '1.
|
25 |
define( 'IMAGIFY_SLUG', 'imagify' );
|
26 |
define( 'IMAGIFY_FILE', __FILE__ );
|
27 |
define( 'IMAGIFY_PATH', realpath( plugin_dir_path( IMAGIFY_FILE ) ) . '/' );
|
@@ -29,6 +29,10 @@ define( 'IMAGIFY_URL', plugin_dir_url( IMAGIFY_FILE ) );
|
|
29 |
define( 'IMAGIFY_ASSETS_IMG_URL', IMAGIFY_URL . 'assets/images/' );
|
30 |
define( 'IMAGIFY_MAX_BYTES', 5242880 );
|
31 |
define( 'IMAGIFY_INT_MAX', PHP_INT_MAX - 30 );
|
|
|
|
|
|
|
|
|
32 |
|
33 |
add_action( 'plugins_loaded', '_imagify_init' );
|
34 |
/**
|
@@ -109,8 +113,8 @@ function imagify_pass_requirements() {
|
|
109 |
'plugin_name' => 'Imagify',
|
110 |
'plugin_file' => IMAGIFY_FILE,
|
111 |
'plugin_version' => IMAGIFY_VERSION,
|
112 |
-
'wp_version' => '
|
113 |
-
'php_version' => '
|
114 |
)
|
115 |
);
|
116 |
|
3 |
* Plugin Name: Imagify
|
4 |
* Plugin URI: https://wordpress.org/plugins/imagify/
|
5 |
* Description: Dramatically reduce image file sizes without losing quality, make your website load faster, boost your SEO and save money on your bandwidth using Imagify, the new most advanced image optimization tool.
|
6 |
+
* Version: 1.10
|
7 |
+
* Requires at least: 5.3
|
8 |
+
* Requires PHP: 7.0
|
9 |
* Author: WP Media
|
10 |
* Author URI: https://wp-media.me/
|
11 |
* Licence: GPLv2
|
21 |
defined( 'ABSPATH' ) || die( 'Cheatin’ uh?' );
|
22 |
|
23 |
// Imagify defines.
|
24 |
+
define( 'IMAGIFY_VERSION', '1.10' );
|
25 |
define( 'IMAGIFY_SLUG', 'imagify' );
|
26 |
define( 'IMAGIFY_FILE', __FILE__ );
|
27 |
define( 'IMAGIFY_PATH', realpath( plugin_dir_path( IMAGIFY_FILE ) ) . '/' );
|
29 |
define( 'IMAGIFY_ASSETS_IMG_URL', IMAGIFY_URL . 'assets/images/' );
|
30 |
define( 'IMAGIFY_MAX_BYTES', 5242880 );
|
31 |
define( 'IMAGIFY_INT_MAX', PHP_INT_MAX - 30 );
|
32 |
+
if ( ! defined( 'IMAGIFY_APP_DOMAIN' ) ) {
|
33 |
+
define( 'IMAGIFY_APP_DOMAIN', 'https://app.imagify.io' );
|
34 |
+
}
|
35 |
+
define( 'IMAGIFY_APP_API_URL', IMAGIFY_APP_DOMAIN . '/api/' );
|
36 |
|
37 |
add_action( 'plugins_loaded', '_imagify_init' );
|
38 |
/**
|
113 |
'plugin_name' => 'Imagify',
|
114 |
'plugin_file' => IMAGIFY_FILE,
|
115 |
'plugin_version' => IMAGIFY_VERSION,
|
116 |
+
'wp_version' => '5.3',
|
117 |
+
'php_version' => '7.0',
|
118 |
)
|
119 |
);
|
120 |
|
inc/3rd-party/3rd-party.php
CHANGED
@@ -14,6 +14,7 @@ require IMAGIFY_PATH . 'inc/3rd-party/screets-lc.php';
|
|
14 |
require IMAGIFY_PATH . 'inc/3rd-party/wp-real-media-library.php';
|
15 |
require IMAGIFY_PATH . 'inc/3rd-party/wp-rocket/wp-rocket.php';
|
16 |
require IMAGIFY_PATH . 'inc/3rd-party/yoast-seo.php';
|
|
|
17 |
|
18 |
/**
|
19 |
* Hosting.
|
14 |
require IMAGIFY_PATH . 'inc/3rd-party/wp-real-media-library.php';
|
15 |
require IMAGIFY_PATH . 'inc/3rd-party/wp-rocket/wp-rocket.php';
|
16 |
require IMAGIFY_PATH . 'inc/3rd-party/yoast-seo.php';
|
17 |
+
require IMAGIFY_PATH . 'inc/3rd-party/WooCommerce/class-woocommerce.php';
|
18 |
|
19 |
/**
|
20 |
* Hosting.
|
inc/3rd-party/WooCommerce/class-woocommerce.php
ADDED
@@ -0,0 +1,95 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
namespace Imagify\ThirdParty\WooCommerce;
|
3 |
+
|
4 |
+
/**
|
5 |
+
* Compatibility for WooCommerce.
|
6 |
+
*
|
7 |
+
* @since 1.10.0
|
8 |
+
*/
|
9 |
+
class WooCommerce {
|
10 |
+
/**
|
11 |
+
* Initialize compatibility functionality.
|
12 |
+
*
|
13 |
+
* @since 1.10.0
|
14 |
+
*
|
15 |
+
* @return void
|
16 |
+
*/
|
17 |
+
public function init() {
|
18 |
+
add_action( 'woocommerce_single_product_summary', [ $this, 'variable_products_webp_compat' ] );
|
19 |
+
}
|
20 |
+
|
21 |
+
/**
|
22 |
+
* Add Variable Products Webp Compatibility.
|
23 |
+
*
|
24 |
+
* @since 1.10.0
|
25 |
+
*
|
26 |
+
* @return void
|
27 |
+
*/
|
28 |
+
public function variable_products_webp_compat() {
|
29 |
+
global $product;
|
30 |
+
|
31 |
+
if ( ! isset( $product ) || ! $product->is_type( 'variable' ) ) {
|
32 |
+
return;
|
33 |
+
}
|
34 |
+
|
35 |
+
add_filter( 'imagify_picture_attributes', [ $this, 'remove_wp_post_image_class' ], 10, 2 );
|
36 |
+
add_filter(
|
37 |
+
'imagify_picture_source_attributes',
|
38 |
+
[ $this, 'maybe_add_wp_post_image_class_on_picture_internal_tags' ],
|
39 |
+
10,
|
40 |
+
2
|
41 |
+
);
|
42 |
+
add_filter(
|
43 |
+
'imagify_picture_img_attributes',
|
44 |
+
[ $this, 'maybe_add_wp_post_image_class_on_picture_internal_tags' ],
|
45 |
+
10,
|
46 |
+
2
|
47 |
+
);
|
48 |
+
}
|
49 |
+
|
50 |
+
/**
|
51 |
+
* Remove wp-post-image class from picture tags.
|
52 |
+
*
|
53 |
+
* @since 1.10.0
|
54 |
+
*
|
55 |
+
* @param array $attributes The picture tag attributes.
|
56 |
+
*
|
57 |
+
* @return array The picture tage attributes with modified or removed 'class'.
|
58 |
+
*/
|
59 |
+
public function remove_wp_post_image_class( $attributes ) {
|
60 |
+
if ( isset( $attributes['class'] ) ) {
|
61 |
+
$attributes['class'] = str_replace( 'wp-post-image', '', $attributes['class'] );
|
62 |
+
}
|
63 |
+
|
64 |
+
if ( empty( $attributes['class'] ) ) {
|
65 |
+
unset( $attributes['class'] );
|
66 |
+
}
|
67 |
+
|
68 |
+
return $attributes;
|
69 |
+
}
|
70 |
+
|
71 |
+
/**
|
72 |
+
* Add wp-post-image class to source and image tags internal to a picture tag.
|
73 |
+
*
|
74 |
+
* @since 1.10.0
|
75 |
+
*
|
76 |
+
* @param array $attributes The source or img tag attributes.
|
77 |
+
* @param array $image The original image tag data.
|
78 |
+
*
|
79 |
+
* @return array Source or image tag attributes with modified 'class'.
|
80 |
+
*/
|
81 |
+
public function maybe_add_wp_post_image_class_on_picture_internal_tags( $attributes, $image ) {
|
82 |
+
if (
|
83 |
+
! empty( $image['attributes']['class'] )
|
84 |
+
&& strpos( $image['attributes']['class'], 'wp-post-image' ) !== false
|
85 |
+
) {
|
86 |
+
$attributes['class'] = isset( $attributes['class'] )
|
87 |
+
? $attributes['class'] . ' wp-post-image'
|
88 |
+
: 'wp-post-image';
|
89 |
+
}
|
90 |
+
|
91 |
+
return $attributes;
|
92 |
+
}
|
93 |
+
}
|
94 |
+
|
95 |
+
( new WooCommerce() )->init();
|
inc/3rd-party/amazon-s3-and-cloudfront/classes/Main.php
CHANGED
@@ -60,7 +60,7 @@ class Main extends \Imagify_AS3CF_Deprecated {
|
|
60 |
$done = true;
|
61 |
|
62 |
/**
|
63 |
-
*
|
64 |
*/
|
65 |
add_action( 'as3cf_init', [ $this, 'store_s3_settings' ] );
|
66 |
add_filter( 'imagify_webp_picture_process_image', [ $this, 'picture_tag_webp_image' ] );
|
@@ -82,7 +82,7 @@ class Main extends \Imagify_AS3CF_Deprecated {
|
|
82 |
add_action( 'imagify_after_restore_media', [ $this, 'maybe_send_media_to_cdn_after_restore' ], 8, 4 );
|
83 |
|
84 |
/**
|
85 |
-
*
|
86 |
*/
|
87 |
add_filter( 'as3cf_attachment_file_paths', [ $this, 'add_webp_images_to_attachment' ], 8, 3 );
|
88 |
add_filter( 'mime_types', [ $this, 'add_webp_support' ] );
|
@@ -119,7 +119,7 @@ class Main extends \Imagify_AS3CF_Deprecated {
|
|
119 |
}
|
120 |
|
121 |
/**
|
122 |
-
*
|
123 |
*
|
124 |
* @since 1.9
|
125 |
* @see \Imagify\Webp\Picture\Display->process_image()
|
@@ -168,7 +168,7 @@ class Main extends \Imagify_AS3CF_Deprecated {
|
|
168 |
$webp_size_name = 'full' . $webp_size_suffix;
|
169 |
|
170 |
if ( ! empty( $imagify_data['sizes'][ $webp_size_name ]['success'] ) ) {
|
171 |
-
// We have a
|
172 |
$data['src']['webp_exists'] = true;
|
173 |
}
|
174 |
|
@@ -233,7 +233,7 @@ class Main extends \Imagify_AS3CF_Deprecated {
|
|
233 |
$webp_size_name = $size_name . $webp_size_suffix;
|
234 |
|
235 |
if ( ! empty( $imagify_data['sizes'][ $webp_size_name ]['success'] ) ) {
|
236 |
-
// We have a
|
237 |
$data['srcset'][ $i ]['webp_exists'] = true;
|
238 |
}
|
239 |
}
|
@@ -275,7 +275,7 @@ class Main extends \Imagify_AS3CF_Deprecated {
|
|
275 |
* @param File $file The file instance. If $webp is true, $file references the non-webp file.
|
276 |
* @param string $thumb_size The media size.
|
277 |
* @param int $optimization_level The optimization level (0=normal, 1=aggressive, 2=ultra).
|
278 |
-
* @param bool $webp The image will be converted to
|
279 |
* @return null|\WP_Error Null. A \WP_Error object on error.
|
280 |
*/
|
281 |
public function maybe_copy_file_from_cdn_before_optimization( $response, $process, $file, $thumb_size, $optimization_level, $webp ) {
|
@@ -336,7 +336,7 @@ class Main extends \Imagify_AS3CF_Deprecated {
|
|
336 |
* After restoring a media:
|
337 |
* - Save some data,
|
338 |
* - Upload the files to the CDN,
|
339 |
-
* - Maybe delete
|
340 |
*
|
341 |
* @since 1.9
|
342 |
* @access public
|
@@ -372,16 +372,16 @@ class Main extends \Imagify_AS3CF_Deprecated {
|
|
372 |
|
373 |
$cdn->send_to_cdn( false );
|
374 |
|
375 |
-
// Remove
|
376 |
$webp_files = [];
|
377 |
|
378 |
if ( $files ) {
|
379 |
-
// Get the paths to the
|
380 |
foreach ( $files as $size_name => $file ) {
|
381 |
$webp_size_name = $size_name . $process::WEBP_SUFFIX;
|
382 |
|
383 |
if ( empty( $data['sizes'][ $webp_size_name ]['success'] ) ) {
|
384 |
-
// This size has no
|
385 |
continue;
|
386 |
}
|
387 |
|
@@ -406,7 +406,7 @@ class Main extends \Imagify_AS3CF_Deprecated {
|
|
406 |
/** ----------------------------------------------------------------------------------------- */
|
407 |
|
408 |
/**
|
409 |
-
* Add the
|
410 |
*
|
411 |
* @since 1.9
|
412 |
* @access public
|
@@ -454,7 +454,7 @@ class Main extends \Imagify_AS3CF_Deprecated {
|
|
454 |
$webp_size_name = $size_name . $process::WEBP_SUFFIX;
|
455 |
|
456 |
if ( empty( $data['sizes'][ $webp_size_name ]['success'] ) ) {
|
457 |
-
// This size has no
|
458 |
continue;
|
459 |
}
|
460 |
|
@@ -469,7 +469,7 @@ class Main extends \Imagify_AS3CF_Deprecated {
|
|
469 |
}
|
470 |
|
471 |
/**
|
472 |
-
* Add
|
473 |
*
|
474 |
* @since 1.9
|
475 |
* @access public
|
60 |
$done = true;
|
61 |
|
62 |
/**
|
63 |
+
* WebP images to display with a <picture> tag.
|
64 |
*/
|
65 |
add_action( 'as3cf_init', [ $this, 'store_s3_settings' ] );
|
66 |
add_filter( 'imagify_webp_picture_process_image', [ $this, 'picture_tag_webp_image' ] );
|
82 |
add_action( 'imagify_after_restore_media', [ $this, 'maybe_send_media_to_cdn_after_restore' ], 8, 4 );
|
83 |
|
84 |
/**
|
85 |
+
* WebP support.
|
86 |
*/
|
87 |
add_filter( 'as3cf_attachment_file_paths', [ $this, 'add_webp_images_to_attachment' ], 8, 3 );
|
88 |
add_filter( 'mime_types', [ $this, 'add_webp_support' ] );
|
119 |
}
|
120 |
|
121 |
/**
|
122 |
+
* WebP images to display with a <picture> tag.
|
123 |
*
|
124 |
* @since 1.9
|
125 |
* @see \Imagify\Webp\Picture\Display->process_image()
|
168 |
$webp_size_name = 'full' . $webp_size_suffix;
|
169 |
|
170 |
if ( ! empty( $imagify_data['sizes'][ $webp_size_name ]['success'] ) ) {
|
171 |
+
// We have a WebP image.
|
172 |
$data['src']['webp_exists'] = true;
|
173 |
}
|
174 |
|
233 |
$webp_size_name = $size_name . $webp_size_suffix;
|
234 |
|
235 |
if ( ! empty( $imagify_data['sizes'][ $webp_size_name ]['success'] ) ) {
|
236 |
+
// We have a WebP image.
|
237 |
$data['srcset'][ $i ]['webp_exists'] = true;
|
238 |
}
|
239 |
}
|
275 |
* @param File $file The file instance. If $webp is true, $file references the non-webp file.
|
276 |
* @param string $thumb_size The media size.
|
277 |
* @param int $optimization_level The optimization level (0=normal, 1=aggressive, 2=ultra).
|
278 |
+
* @param bool $webp The image will be converted to WebP.
|
279 |
* @return null|\WP_Error Null. A \WP_Error object on error.
|
280 |
*/
|
281 |
public function maybe_copy_file_from_cdn_before_optimization( $response, $process, $file, $thumb_size, $optimization_level, $webp ) {
|
336 |
* After restoring a media:
|
337 |
* - Save some data,
|
338 |
* - Upload the files to the CDN,
|
339 |
+
* - Maybe delete WebP files from the CDN.
|
340 |
*
|
341 |
* @since 1.9
|
342 |
* @access public
|
372 |
|
373 |
$cdn->send_to_cdn( false );
|
374 |
|
375 |
+
// Remove WebP files from CDN.
|
376 |
$webp_files = [];
|
377 |
|
378 |
if ( $files ) {
|
379 |
+
// Get the paths to the WebP files.
|
380 |
foreach ( $files as $size_name => $file ) {
|
381 |
$webp_size_name = $size_name . $process::WEBP_SUFFIX;
|
382 |
|
383 |
if ( empty( $data['sizes'][ $webp_size_name ]['success'] ) ) {
|
384 |
+
// This size has no WebP version.
|
385 |
continue;
|
386 |
}
|
387 |
|
406 |
/** ----------------------------------------------------------------------------------------- */
|
407 |
|
408 |
/**
|
409 |
+
* Add the WebP files to the list of files that the CDN must handle.
|
410 |
*
|
411 |
* @since 1.9
|
412 |
* @access public
|
454 |
$webp_size_name = $size_name . $process::WEBP_SUFFIX;
|
455 |
|
456 |
if ( empty( $data['sizes'][ $webp_size_name ]['success'] ) ) {
|
457 |
+
// This size has no WebP version.
|
458 |
continue;
|
459 |
}
|
460 |
|
469 |
}
|
470 |
|
471 |
/**
|
472 |
+
* Add WebP format to the list of allowed mime types.
|
473 |
*
|
474 |
* @since 1.9
|
475 |
* @access public
|
inc/3rd-party/enable-media-replace/classes/Main.php
CHANGED
@@ -40,7 +40,7 @@ class Main extends Imagify_Enable_Media_Replace_Deprecated {
|
|
40 |
protected $old_backup_path;
|
41 |
|
42 |
/**
|
43 |
-
* List of paths to the old
|
44 |
*
|
45 |
* @var array
|
46 |
* @since 1.9.8
|
@@ -84,18 +84,18 @@ class Main extends Imagify_Enable_Media_Replace_Deprecated {
|
|
84 |
}
|
85 |
|
86 |
/**
|
87 |
-
* Keep track of existing
|
88 |
*
|
89 |
-
* Whether the user chooses to rename the files or not, we will need to delete the current
|
90 |
* - Rename the files: the old ones must be removed, they are useless now.
|
91 |
* - Do not rename the files: the thumbnails may still get new names because of the suffix containing the image dimensions, which may differ (for example when thumbnails are scaled, not cropped).
|
92 |
-
* In this last case, the thumbnails with the old dimensions are removed from the drive and from the WP’s post meta, so there is no need of keeping orphan
|
93 |
*/
|
94 |
foreach ( $this->process->get_media()->get_media_files() as $media_file ) {
|
95 |
$this->old_webp_paths[] = imagify_path_to_webp( $media_file['path'] );
|
96 |
}
|
97 |
|
98 |
-
// Delete the old backup file and old
|
99 |
add_action( 'imagify_before_auto_optimization', [ $this, 'delete_backup' ] );
|
100 |
add_action( 'imagify_not_optimized_attachment_updated', [ $this, 'delete_backup' ] );
|
101 |
}
|
@@ -106,7 +106,7 @@ class Main extends Imagify_Enable_Media_Replace_Deprecated {
|
|
106 |
/** ----------------------------------------------------------------------------------------- */
|
107 |
|
108 |
/**
|
109 |
-
* Delete previous backup file and
|
110 |
* This is done after the images have been already replaced by Enable Media Replace.
|
111 |
*
|
112 |
* @since 1.8.4
|
@@ -127,7 +127,7 @@ class Main extends Imagify_Enable_Media_Replace_Deprecated {
|
|
127 |
}
|
128 |
|
129 |
if ( ! empty( $this->old_webp_paths ) ) {
|
130 |
-
// Delete old
|
131 |
$this->old_webp_paths = array_filter( $this->old_webp_paths, [ $filesystem, 'exists' ] );
|
132 |
array_map( [ $filesystem, 'delete' ], $this->old_webp_paths );
|
133 |
$this->old_webp_paths = [];
|
40 |
protected $old_backup_path;
|
41 |
|
42 |
/**
|
43 |
+
* List of paths to the old WebP files.
|
44 |
*
|
45 |
* @var array
|
46 |
* @since 1.9.8
|
84 |
}
|
85 |
|
86 |
/**
|
87 |
+
* Keep track of existing WebP files.
|
88 |
*
|
89 |
+
* Whether the user chooses to rename the files or not, we will need to delete the current WebP files before creating new ones:
|
90 |
* - Rename the files: the old ones must be removed, they are useless now.
|
91 |
* - Do not rename the files: the thumbnails may still get new names because of the suffix containing the image dimensions, which may differ (for example when thumbnails are scaled, not cropped).
|
92 |
+
* In this last case, the thumbnails with the old dimensions are removed from the drive and from the WP’s post meta, so there is no need of keeping orphan WebP files that would stay on the drive for ever, even after the attachment is deleted from WP.
|
93 |
*/
|
94 |
foreach ( $this->process->get_media()->get_media_files() as $media_file ) {
|
95 |
$this->old_webp_paths[] = imagify_path_to_webp( $media_file['path'] );
|
96 |
}
|
97 |
|
98 |
+
// Delete the old backup file and old WebP files.
|
99 |
add_action( 'imagify_before_auto_optimization', [ $this, 'delete_backup' ] );
|
100 |
add_action( 'imagify_not_optimized_attachment_updated', [ $this, 'delete_backup' ] );
|
101 |
}
|
106 |
/** ----------------------------------------------------------------------------------------- */
|
107 |
|
108 |
/**
|
109 |
+
* Delete previous backup file and WebP files.
|
110 |
* This is done after the images have been already replaced by Enable Media Replace.
|
111 |
*
|
112 |
* @since 1.8.4
|
127 |
}
|
128 |
|
129 |
if ( ! empty( $this->old_webp_paths ) ) {
|
130 |
+
// Delete old WebP files.
|
131 |
$this->old_webp_paths = array_filter( $this->old_webp_paths, [ $filesystem, 'exists' ] );
|
132 |
array_map( [ $filesystem, 'delete' ], $this->old_webp_paths );
|
133 |
$this->old_webp_paths = [];
|
inc/3rd-party/nextgen-gallery/classes/Bulk/NGG.php
CHANGED
@@ -106,7 +106,7 @@ class NGG extends \Imagify\Bulk\AbstractBulk {
|
|
106 |
}
|
107 |
|
108 |
/**
|
109 |
-
* Get ids of all optimized media without
|
110 |
*
|
111 |
* @since 1.9
|
112 |
* @since 1.9.5 The method doesn't return the IDs directly anymore.
|
@@ -171,7 +171,7 @@ class NGG extends \Imagify\Bulk\AbstractBulk {
|
|
171 |
$backup_path = get_imagify_ngg_attachment_backup_path( $file_path );
|
172 |
|
173 |
if ( ! $this->filesystem->exists( $backup_path ) ) {
|
174 |
-
// No backup, no
|
175 |
$data['errors']['no_backup'][] = $file_id;
|
176 |
continue;
|
177 |
}
|
@@ -183,7 +183,7 @@ class NGG extends \Imagify\Bulk\AbstractBulk {
|
|
183 |
}
|
184 |
|
185 |
/**
|
186 |
-
* Tell if there are optimized media without
|
187 |
*
|
188 |
* @since 1.9
|
189 |
* @access public
|
106 |
}
|
107 |
|
108 |
/**
|
109 |
+
* Get ids of all optimized media without WebP versions.
|
110 |
*
|
111 |
* @since 1.9
|
112 |
* @since 1.9.5 The method doesn't return the IDs directly anymore.
|
171 |
$backup_path = get_imagify_ngg_attachment_backup_path( $file_path );
|
172 |
|
173 |
if ( ! $this->filesystem->exists( $backup_path ) ) {
|
174 |
+
// No backup, no WebP.
|
175 |
$data['errors']['no_backup'][] = $file_id;
|
176 |
continue;
|
177 |
}
|
183 |
}
|
184 |
|
185 |
/**
|
186 |
+
* Tell if there are optimized media without WebP versions.
|
187 |
*
|
188 |
* @since 1.9
|
189 |
* @access public
|
inc/3rd-party/nextgen-gallery/inc/common/attachments.php
CHANGED
@@ -150,7 +150,7 @@ function _imagify_ngg_media_library_imported_image_data( $image, $attachment ) {
|
|
150 |
}
|
151 |
|
152 |
/**
|
153 |
-
*
|
154 |
* Look for an existing copy locally:
|
155 |
* - if it exists, copy it (and its optimization data),
|
156 |
* - if not, add it to the optimization queue.
|
@@ -158,12 +158,12 @@ function _imagify_ngg_media_library_imported_image_data( $image, $attachment ) {
|
|
158 |
$add_full_webp = $wp_media->is_image() && get_imagify_option( 'convert_to_webp' );
|
159 |
|
160 |
if ( $add_full_webp ) {
|
161 |
-
// It's a supported image and
|
162 |
$wp_full_path_webp = false;
|
163 |
$webp_size_name = 'full' . $wp_process::WEBP_SUFFIX;
|
164 |
$wp_webp_data = $wp_data->get_size_data( $webp_size_name );
|
165 |
|
166 |
-
// Get the path to the
|
167 |
$wp_full_path_webp = $wp_process->get_fullsize_file()->get_path_to_webp();
|
168 |
|
169 |
if ( $wp_full_path_webp && ! $filesystem->exists( $wp_full_path_webp ) ) {
|
@@ -171,11 +171,11 @@ function _imagify_ngg_media_library_imported_image_data( $image, $attachment ) {
|
|
171 |
}
|
172 |
|
173 |
if ( $wp_full_path_webp ) {
|
174 |
-
// We know we have a
|
175 |
$wp_webp_data['success'] = true;
|
176 |
|
177 |
if ( empty( $wp_webp_data['original_size'] ) ) {
|
178 |
-
// The
|
179 |
$full_size_weight = $wp_full_size_data['original_size'];
|
180 |
|
181 |
if ( ! $full_size_weight && $wp_backup_path ) {
|
@@ -189,7 +189,7 @@ function _imagify_ngg_media_library_imported_image_data( $image, $attachment ) {
|
|
189 |
}
|
190 |
|
191 |
if ( ! empty( $wp_webp_data['original_size'] ) && empty( $wp_webp_data['optimized_size'] ) ) {
|
192 |
-
// The
|
193 |
$wp_webp_data['optimized_size'] = $filesystem->size( $wp_full_path_webp );
|
194 |
}
|
195 |
|
@@ -216,7 +216,7 @@ function _imagify_ngg_media_library_imported_image_data( $image, $attachment ) {
|
|
216 |
}
|
217 |
|
218 |
if ( ! $add_full_webp ) {
|
219 |
-
// The
|
220 |
$ngg_process->get_data()->update_size_optimization_data( $webp_size_name, $wp_webp_data );
|
221 |
}
|
222 |
}
|
@@ -227,7 +227,7 @@ function _imagify_ngg_media_library_imported_image_data( $image, $attachment ) {
|
|
227 |
unset( $sizes['full'] );
|
228 |
|
229 |
if ( $add_full_webp ) {
|
230 |
-
// We could not use a local
|
231 |
$sizes[ $webp_size_name ] = [];
|
232 |
}
|
233 |
|
@@ -282,7 +282,7 @@ function imagify_ngg_cleanup_after_media_deletion( $image_id, $image ) {
|
|
282 |
|
283 |
/**
|
284 |
* The backup file has already been deleted by NGG.
|
285 |
-
* Delete the
|
286 |
*/
|
287 |
$process->delete_webp_files();
|
288 |
$process->get_data()->delete_optimization_data();
|
150 |
}
|
151 |
|
152 |
/**
|
153 |
+
* WebP for the full size.
|
154 |
* Look for an existing copy locally:
|
155 |
* - if it exists, copy it (and its optimization data),
|
156 |
* - if not, add it to the optimization queue.
|
158 |
$add_full_webp = $wp_media->is_image() && get_imagify_option( 'convert_to_webp' );
|
159 |
|
160 |
if ( $add_full_webp ) {
|
161 |
+
// It's a supported image and WebP conversion is enabled.
|
162 |
$wp_full_path_webp = false;
|
163 |
$webp_size_name = 'full' . $wp_process::WEBP_SUFFIX;
|
164 |
$wp_webp_data = $wp_data->get_size_data( $webp_size_name );
|
165 |
|
166 |
+
// Get the path to the WebP image if it exists.
|
167 |
$wp_full_path_webp = $wp_process->get_fullsize_file()->get_path_to_webp();
|
168 |
|
169 |
if ( $wp_full_path_webp && ! $filesystem->exists( $wp_full_path_webp ) ) {
|
171 |
}
|
172 |
|
173 |
if ( $wp_full_path_webp ) {
|
174 |
+
// We know we have a WebP version. Make sure we have the right data.
|
175 |
$wp_webp_data['success'] = true;
|
176 |
|
177 |
if ( empty( $wp_webp_data['original_size'] ) ) {
|
178 |
+
// The WebP data is missing.
|
179 |
$full_size_weight = $wp_full_size_data['original_size'];
|
180 |
|
181 |
if ( ! $full_size_weight && $wp_backup_path ) {
|
189 |
}
|
190 |
|
191 |
if ( ! empty( $wp_webp_data['original_size'] ) && empty( $wp_webp_data['optimized_size'] ) ) {
|
192 |
+
// The WebP file size.
|
193 |
$wp_webp_data['optimized_size'] = $filesystem->size( $wp_full_path_webp );
|
194 |
}
|
195 |
|
216 |
}
|
217 |
|
218 |
if ( ! $add_full_webp ) {
|
219 |
+
// The WebP file has been successfully copied: now, copy the data.
|
220 |
$ngg_process->get_data()->update_size_optimization_data( $webp_size_name, $wp_webp_data );
|
221 |
}
|
222 |
}
|
227 |
unset( $sizes['full'] );
|
228 |
|
229 |
if ( $add_full_webp ) {
|
230 |
+
// We could not use a local WebP copy: ask for a new one.
|
231 |
$sizes[ $webp_size_name ] = [];
|
232 |
}
|
233 |
|
282 |
|
283 |
/**
|
284 |
* The backup file has already been deleted by NGG.
|
285 |
+
* Delete the WebP versions and the optimization data.
|
286 |
*/
|
287 |
$process->delete_webp_files();
|
288 |
$process->get_data()->delete_optimization_data();
|
inc/3rd-party/regenerate-thumbnails/classes/Main.php
CHANGED
@@ -158,7 +158,7 @@ class Main extends \Imagify_Regenerate_Thumbnails_Deprecated {
|
|
158 |
/**
|
159 |
* Optimize the sizes that have been regenerated.
|
160 |
*/
|
161 |
-
// If the media has
|
162 |
$data = $process->get_data();
|
163 |
$optimization_data = $data->get_optimization_data();
|
164 |
|
@@ -170,7 +170,7 @@ class Main extends \Imagify_Regenerate_Thumbnails_Deprecated {
|
|
170 |
continue;
|
171 |
}
|
172 |
|
173 |
-
// Add the
|
174 |
$sizes[ $size_name ] = [];
|
175 |
}
|
176 |
}
|
158 |
/**
|
159 |
* Optimize the sizes that have been regenerated.
|
160 |
*/
|
161 |
+
// If the media has WebP versions, recreate them for the sizes that have been regenerated.
|
162 |
$data = $process->get_data();
|
163 |
$optimization_data = $data->get_optimization_data();
|
164 |
|
170 |
continue;
|
171 |
}
|
172 |
|
173 |
+
// Add the WebP size.
|
174 |
$sizes[ $size_name ] = [];
|
175 |
}
|
176 |
}
|
inc/3rd-party/yoast-seo.php
CHANGED
@@ -10,6 +10,9 @@ if ( defined( 'WPSEO_VERSION' ) && is_admin() && ! wp_doing_ajax() ) :
|
|
10 |
* @since 1.4.1
|
11 |
*/
|
12 |
function _imagify_dequeue_yoastseo_script() {
|
|
|
|
|
|
|
13 |
$current_screen = get_current_screen();
|
14 |
|
15 |
if ( isset( $current_screen ) && 'post' === $current_screen->base && 'attachment' === $current_screen->post_type ) {
|
10 |
* @since 1.4.1
|
11 |
*/
|
12 |
function _imagify_dequeue_yoastseo_script() {
|
13 |
+
if ( ! function_exists( 'get_current_screen' ) ) {
|
14 |
+
return;
|
15 |
+
}
|
16 |
$current_screen = get_current_screen();
|
17 |
|
18 |
if ( isset( $current_screen ) && 'post' === $current_screen->base && 'attachment' === $current_screen->post_type ) {
|
inc/classes/class-imagify-abstract-cron.php
CHANGED
@@ -262,7 +262,7 @@ abstract class Imagify_Abstract_Cron {
|
|
262 |
* @return int Timestamp.
|
263 |
*/
|
264 |
public static function get_next_timestamp( $event_time = '00:00' ) {
|
265 |
-
$current_time_int = (int)
|
266 |
$event_time_int = (int) str_replace( ':', '', $event_time . '00' );
|
267 |
$event_time = explode( ':', $event_time );
|
268 |
$event_hour = (int) $event_time[0];
|
@@ -271,7 +271,7 @@ abstract class Imagify_Abstract_Cron {
|
|
271 |
|
272 |
if ( $event_time_int <= $current_time_int ) {
|
273 |
// The event time is passed, we need to schedule the event tomorrow.
|
274 |
-
return mktime( $event_hour, $event_minute, 0, (int)
|
275 |
}
|
276 |
|
277 |
// We haven't passed the event time yet, schedule the event today.
|
262 |
* @return int Timestamp.
|
263 |
*/
|
264 |
public static function get_next_timestamp( $event_time = '00:00' ) {
|
265 |
+
$current_time_int = (int) gmdate( 'Gis' );
|
266 |
$event_time_int = (int) str_replace( ':', '', $event_time . '00' );
|
267 |
$event_time = explode( ':', $event_time );
|
268 |
$event_hour = (int) $event_time[0];
|
271 |
|
272 |
if ( $event_time_int <= $current_time_int ) {
|
273 |
// The event time is passed, we need to schedule the event tomorrow.
|
274 |
+
return mktime( $event_hour, $event_minute, 0, (int) gmdate( 'n' ), (int) gmdate( 'j' ) + 1 ) - $offset;
|
275 |
}
|
276 |
|
277 |
// We haven't passed the event time yet, schedule the event today.
|
inc/classes/class-imagify-admin-ajax-post.php
CHANGED
@@ -224,7 +224,7 @@ class Imagify_Admin_Ajax_Post extends Imagify_Admin_Ajax_Post_Deprecated {
|
|
224 |
}
|
225 |
|
226 |
/**
|
227 |
-
* Generate
|
228 |
*
|
229 |
* @since 1.9
|
230 |
* @access protected
|
@@ -239,7 +239,7 @@ class Imagify_Admin_Ajax_Post extends Imagify_Admin_Ajax_Post_Deprecated {
|
|
239 |
}
|
240 |
|
241 |
/**
|
242 |
-
* Delete
|
243 |
*
|
244 |
* @since 1.9.6
|
245 |
* @access protected
|
@@ -270,7 +270,7 @@ class Imagify_Admin_Ajax_Post extends Imagify_Admin_Ajax_Post_Deprecated {
|
|
270 |
$deleted = $process->delete_webp_files();
|
271 |
|
272 |
if ( is_wp_error( $deleted ) ) {
|
273 |
-
return new \WP_Error( 'webp_not_deleted', __( 'Previous
|
274 |
}
|
275 |
|
276 |
return true;
|
@@ -329,7 +329,7 @@ class Imagify_Admin_Ajax_Post extends Imagify_Admin_Ajax_Post_Deprecated {
|
|
329 |
$data = $bulk->get_optimized_media_ids_without_webp();
|
330 |
|
331 |
if ( ! $data['ids'] && $data['errors']['no_backup'] ) {
|
332 |
-
// No backup, no
|
333 |
$data = 'no-backup';
|
334 |
} elseif ( ! $data['ids'] && $data['errors']['no_file_path'] ) {
|
335 |
// Error.
|
@@ -454,7 +454,7 @@ class Imagify_Admin_Ajax_Post extends Imagify_Admin_Ajax_Post_Deprecated {
|
|
454 |
imagify_check_nonce( 'imagify-bulk-optimize' );
|
455 |
|
456 |
$folder_types = filter_input( INPUT_GET, 'types', FILTER_SANITIZE_STRING, FILTER_REQUIRE_ARRAY );
|
457 |
-
$folder_types = is_array( $folder_types ) ? array_filter( $folder_types ) : [];
|
458 |
|
459 |
if ( ! $folder_types ) {
|
460 |
imagify_die( __( 'Invalid request', 'imagify' ) );
|
@@ -582,7 +582,7 @@ class Imagify_Admin_Ajax_Post extends Imagify_Admin_Ajax_Post_Deprecated {
|
|
582 |
}
|
583 |
|
584 |
/**
|
585 |
-
* Generate
|
586 |
*
|
587 |
* @since 1.9
|
588 |
* @access public
|
@@ -617,7 +617,7 @@ class Imagify_Admin_Ajax_Post extends Imagify_Admin_Ajax_Post_Deprecated {
|
|
617 |
}
|
618 |
|
619 |
/**
|
620 |
-
* Generate
|
621 |
*
|
622 |
* @since 1.9.6
|
623 |
* @access public
|
224 |
}
|
225 |
|
226 |
/**
|
227 |
+
* Generate WebP images if they are missing.
|
228 |
*
|
229 |
* @since 1.9
|
230 |
* @access protected
|
239 |
}
|
240 |
|
241 |
/**
|
242 |
+
* Delete WebP images for media that are "already_optimize".
|
243 |
*
|
244 |
* @since 1.9.6
|
245 |
* @access protected
|
270 |
$deleted = $process->delete_webp_files();
|
271 |
|
272 |
if ( is_wp_error( $deleted ) ) {
|
273 |
+
return new \WP_Error( 'webp_not_deleted', __( 'Previous WebP files could not be deleted.', 'imagify' ) );
|
274 |
}
|
275 |
|
276 |
return true;
|
329 |
$data = $bulk->get_optimized_media_ids_without_webp();
|
330 |
|
331 |
if ( ! $data['ids'] && $data['errors']['no_backup'] ) {
|
332 |
+
// No backup, no WebP.
|
333 |
$data = 'no-backup';
|
334 |
} elseif ( ! $data['ids'] && $data['errors']['no_file_path'] ) {
|
335 |
// Error.
|
454 |
imagify_check_nonce( 'imagify-bulk-optimize' );
|
455 |
|
456 |
$folder_types = filter_input( INPUT_GET, 'types', FILTER_SANITIZE_STRING, FILTER_REQUIRE_ARRAY );
|
457 |
+
$folder_types = is_array( $folder_types ) ? array_filter( $folder_types, 'is_string' ) : [];
|
458 |
|
459 |
if ( ! $folder_types ) {
|
460 |
imagify_die( __( 'Invalid request', 'imagify' ) );
|
582 |
}
|
583 |
|
584 |
/**
|
585 |
+
* Generate WebP images if they are missing.
|
586 |
*
|
587 |
* @since 1.9
|
588 |
* @access public
|
617 |
}
|
618 |
|
619 |
/**
|
620 |
+
* Generate WebP images if they are missing.
|
621 |
*
|
622 |
* @since 1.9.6
|
623 |
* @access public
|
inc/classes/class-imagify-cron-rating.php
CHANGED
@@ -103,7 +103,7 @@ class Imagify_Cron_Rating extends Imagify_Abstract_Cron {
|
|
103 |
|
104 |
$user = get_imagify_user();
|
105 |
|
106 |
-
if ( ! is_wp_error( $user ) && (int) $user->image_count > 100 ) {
|
107 |
set_site_transient( 'imagify_user_images_count', $user->image_count );
|
108 |
}
|
109 |
}
|
103 |
|
104 |
$user = get_imagify_user();
|
105 |
|
106 |
+
if ( ! is_wp_error( $user ) && isset( $user->image_count ) && (int) $user->image_count > 100 ) {
|
107 |
set_site_transient( 'imagify_user_images_count', $user->image_count );
|
108 |
}
|
109 |
}
|
inc/classes/class-imagify-custom-folders.php
CHANGED
@@ -261,7 +261,7 @@ class Imagify_Custom_Folders {
|
|
261 |
$filesystem->delete( $args['backup_path'] );
|
262 |
}
|
263 |
|
264 |
-
//
|
265 |
$mime_type = $filesystem->get_mime_type( $args['file_path'] );
|
266 |
$is_image = $mime_type && strpos( $mime_type, 'image/' ) === 0;
|
267 |
$webp_path = $is_image ? imagify_path_to_webp( $args['file_path'] ) : false;
|
@@ -321,7 +321,7 @@ class Imagify_Custom_Folders {
|
|
321 |
// Remove the corresponding folder if inactive and have no files left.
|
322 |
self::remove_empty_inactive_folders( $folder_id );
|
323 |
|
324 |
-
// Delete the
|
325 |
if ( $has_webp ) {
|
326 |
$filesystem->delete( $webp_path );
|
327 |
}
|
@@ -382,7 +382,7 @@ class Imagify_Custom_Folders {
|
|
382 |
self::remove_empty_inactive_folders( $old_data['folder_id'] );
|
383 |
}
|
384 |
|
385 |
-
// Delete the
|
386 |
if ( $has_webp ) {
|
387 |
$filesystem->delete( $webp_path );
|
388 |
}
|
@@ -402,7 +402,7 @@ class Imagify_Custom_Folders {
|
|
402 |
if ( $is_image ) {
|
403 |
$size = $filesystem->get_image_size( $file_path );
|
404 |
|
405 |
-
// Delete the
|
406 |
if ( $has_webp ) {
|
407 |
$filesystem->delete( $webp_path );
|
408 |
}
|
@@ -445,7 +445,7 @@ class Imagify_Custom_Folders {
|
|
445 |
'original_size' => $filesystem->size( $path ),
|
446 |
] );
|
447 |
|
448 |
-
//
|
449 |
$webp_size = 'full' . $process::WEBP_SUFFIX;
|
450 |
|
451 |
if ( $has_webp && empty( $old_data['data'][ $webp_size ]['success'] ) ) {
|
261 |
$filesystem->delete( $args['backup_path'] );
|
262 |
}
|
263 |
|
264 |
+
// WebP.
|
265 |
$mime_type = $filesystem->get_mime_type( $args['file_path'] );
|
266 |
$is_image = $mime_type && strpos( $mime_type, 'image/' ) === 0;
|
267 |
$webp_path = $is_image ? imagify_path_to_webp( $args['file_path'] ) : false;
|
321 |
// Remove the corresponding folder if inactive and have no files left.
|
322 |
self::remove_empty_inactive_folders( $folder_id );
|
323 |
|
324 |
+
// Delete the WebP version.
|
325 |
if ( $has_webp ) {
|
326 |
$filesystem->delete( $webp_path );
|
327 |
}
|
382 |
self::remove_empty_inactive_folders( $old_data['folder_id'] );
|
383 |
}
|
384 |
|
385 |
+
// Delete the WebP version.
|
386 |
if ( $has_webp ) {
|
387 |
$filesystem->delete( $webp_path );
|
388 |
}
|
402 |
if ( $is_image ) {
|
403 |
$size = $filesystem->get_image_size( $file_path );
|
404 |
|
405 |
+
// Delete the WebP version.
|
406 |
if ( $has_webp ) {
|
407 |
$filesystem->delete( $webp_path );
|
408 |
}
|
445 |
'original_size' => $filesystem->size( $path ),
|
446 |
] );
|
447 |
|
448 |
+
// WebP.
|
449 |
$webp_size = 'full' . $process::WEBP_SUFFIX;
|
450 |
|
451 |
if ( $has_webp && empty( $old_data['data'][ $webp_size ]['success'] ) ) {
|
inc/classes/class-imagify-files-list-table.php
CHANGED
@@ -643,7 +643,7 @@ class Imagify_Files_List_Table extends WP_List_Table {
|
|
643 |
$has_webp = $item->process->has_webp() ? __( 'Yes', 'imagify' ) : __( 'No', 'imagify' );
|
644 |
?>
|
645 |
<li class="imagify-data-item">
|
646 |
-
<span class="data"><?php esc_html_e( '
|
647 |
<strong class="data-value"><?php echo esc_html( $has_webp ); ?></strong>
|
648 |
</li>
|
649 |
<?php
|
@@ -854,7 +854,7 @@ class Imagify_Files_List_Table extends WP_List_Table {
|
|
854 |
}
|
855 |
|
856 |
/**
|
857 |
-
* Prints a button to generate
|
858 |
*
|
859 |
* @since 1.7
|
860 |
* @access protected
|
@@ -871,7 +871,7 @@ class Imagify_Files_List_Table extends WP_List_Table {
|
|
871 |
}
|
872 |
|
873 |
/**
|
874 |
-
* Prints a button to delete
|
875 |
*
|
876 |
* @since 1.9.6
|
877 |
* @access protected
|
643 |
$has_webp = $item->process->has_webp() ? __( 'Yes', 'imagify' ) : __( 'No', 'imagify' );
|
644 |
?>
|
645 |
<li class="imagify-data-item">
|
646 |
+
<span class="data"><?php esc_html_e( 'WebP generated:', 'imagify' ); ?></span>
|
647 |
<strong class="data-value"><?php echo esc_html( $has_webp ); ?></strong>
|
648 |
</li>
|
649 |
<?php
|
854 |
}
|
855 |
|
856 |
/**
|
857 |
+
* Prints a button to generate WebP versions if they are missing.
|
858 |
*
|
859 |
* @since 1.7
|
860 |
* @access protected
|
871 |
}
|
872 |
|
873 |
/**
|
874 |
+
* Prints a button to delete WebP versions when the status is "already_optimized".
|
875 |
*
|
876 |
* @since 1.9.6
|
877 |
* @access protected
|
inc/classes/class-imagify-notices.php
CHANGED
@@ -861,7 +861,10 @@ class Imagify_Notices extends Imagify_Notices_Deprecated {
|
|
861 |
* Get all notice IDs.
|
862 |
*
|
863 |
* @since 1.6.10
|
|
|
864 |
* @author Grégory Viguier
|
|
|
|
|
865 |
*/
|
866 |
protected function get_notice_ids() {
|
867 |
/**
|
@@ -872,7 +875,7 @@ class Imagify_Notices extends Imagify_Notices_Deprecated {
|
|
872 |
*
|
873 |
* @param array $notice_ids An array of notice "IDs".
|
874 |
*/
|
875 |
-
return apply_filters( 'imagify_notices', self::$notice_ids );
|
876 |
}
|
877 |
|
878 |
/**
|
861 |
* Get all notice IDs.
|
862 |
*
|
863 |
* @since 1.6.10
|
864 |
+
* @since 1.10 Cast return value to array.
|
865 |
* @author Grégory Viguier
|
866 |
+
*
|
867 |
+
* @return array The filtered notice ids.
|
868 |
*/
|
869 |
protected function get_notice_ids() {
|
870 |
/**
|
875 |
*
|
876 |
* @param array $notice_ids An array of notice "IDs".
|
877 |
*/
|
878 |
+
return (array) apply_filters( 'imagify_notices', self::$notice_ids );
|
879 |
}
|
880 |
|
881 |
/**
|
inc/classes/class-imagify-plugin.php
CHANGED
@@ -110,7 +110,6 @@ class Imagify_Plugin {
|
|
110 |
|
111 |
require_once $inc_path . 'deprecated/deprecated.php';
|
112 |
require_once $inc_path . 'deprecated/3rd-party.php';
|
113 |
-
require_once $inc_path . 'functions/compat.php';
|
114 |
require_once $inc_path . 'functions/common.php';
|
115 |
require_once $inc_path . 'functions/options.php';
|
116 |
require_once $inc_path . 'functions/formatting.php';
|
110 |
|
111 |
require_once $inc_path . 'deprecated/deprecated.php';
|
112 |
require_once $inc_path . 'deprecated/3rd-party.php';
|
|
|
113 |
require_once $inc_path . 'functions/common.php';
|
114 |
require_once $inc_path . 'functions/options.php';
|
115 |
require_once $inc_path . 'functions/formatting.php';
|
inc/classes/class-imagify-user.php
CHANGED
@@ -190,6 +190,8 @@ class Imagify_User {
|
|
190 |
$percent = min( max( 0, $percent ), 100 );
|
191 |
}
|
192 |
|
|
|
|
|
193 |
if ( $done ) {
|
194 |
return $percent;
|
195 |
}
|
190 |
$percent = min( max( 0, $percent ), 100 );
|
191 |
}
|
192 |
|
193 |
+
$percent = (float) $percent;
|
194 |
+
|
195 |
if ( $done ) {
|
196 |
return $percent;
|
197 |
}
|
inc/classes/class-imagify.php
CHANGED
@@ -12,7 +12,7 @@ class Imagify {
|
|
12 |
*
|
13 |
* @var string
|
14 |
*/
|
15 |
-
const API_ENDPOINT =
|
16 |
|
17 |
/**
|
18 |
* The Imagify API key.
|
12 |
*
|
13 |
* @var string
|
14 |
*/
|
15 |
+
const API_ENDPOINT = IMAGIFY_APP_API_URL;
|
16 |
|
17 |
/**
|
18 |
* The Imagify API key.
|
inc/common/attachments.php
CHANGED
@@ -22,7 +22,7 @@ function imagify_trigger_delete_attachment_hook( $post_id ) {
|
|
22 |
|
23 |
add_action( 'imagify_delete_media', 'imagify_cleanup_after_media_deletion' );
|
24 |
/**
|
25 |
-
* Delete the backup file and the
|
26 |
*
|
27 |
* @since 1.9
|
28 |
* @author Grégory Viguier
|
@@ -36,7 +36,7 @@ function imagify_cleanup_after_media_deletion( $process ) {
|
|
36 |
|
37 |
/**
|
38 |
* The optimization data will be automatically deleted by WP (post metas).
|
39 |
-
* Delete the
|
40 |
*/
|
41 |
$process->delete_webp_files();
|
42 |
$process->delete_backup();
|
@@ -44,7 +44,7 @@ function imagify_cleanup_after_media_deletion( $process ) {
|
|
44 |
|
45 |
add_filter( 'ext2type', 'imagify_add_webp_type' );
|
46 |
/**
|
47 |
-
* Add the
|
48 |
*
|
49 |
* @since 1.9
|
50 |
* @author Grégory Viguier
|
22 |
|
23 |
add_action( 'imagify_delete_media', 'imagify_cleanup_after_media_deletion' );
|
24 |
/**
|
25 |
+
* Delete the backup file and the WebP files when an attachement is deleted.
|
26 |
*
|
27 |
* @since 1.9
|
28 |
* @author Grégory Viguier
|
36 |
|
37 |
/**
|
38 |
* The optimization data will be automatically deleted by WP (post metas).
|
39 |
+
* Delete the WebP versions and the backup file.
|
40 |
*/
|
41 |
$process->delete_webp_files();
|
42 |
$process->delete_backup();
|
44 |
|
45 |
add_filter( 'ext2type', 'imagify_add_webp_type' );
|
46 |
/**
|
47 |
+
* Add the WebP extension to wp_get_ext_types().
|
48 |
*
|
49 |
* @since 1.9
|
50 |
* @author Grégory Viguier
|
inc/deprecated/classes/class-imagify-enable-media-replace-deprecated.php
CHANGED
@@ -141,7 +141,7 @@ class Imagify_Enable_Media_Replace_Deprecated {
|
|
141 |
if ( $backup_path ) {
|
142 |
$this->old_backup_path = $backup_path;
|
143 |
|
144 |
-
// Keep track of existing
|
145 |
$media_files = $media->get_media_files();
|
146 |
|
147 |
if ( $media_files ) {
|
141 |
if ( $backup_path ) {
|
142 |
$this->old_backup_path = $backup_path;
|
143 |
|
144 |
+
// Keep track of existing WebP files.
|
145 |
$media_files = $media->get_media_files();
|
146 |
|
147 |
if ( $media_files ) {
|
inc/functions/admin-ui.php
CHANGED
@@ -90,7 +90,7 @@ function get_imagify_attachment_optimization_text( $process ) {
|
|
90 |
|
91 |
if ( $media->is_image() ) {
|
92 |
$has_webp = $process->has_webp() ? __( 'Yes', 'imagify' ) : __( 'No', 'imagify' );
|
93 |
-
$output .= $output_before . '<span class="data">' . __( '
|
94 |
|
95 |
$total_optimized_thumbnails = $data->get_optimized_sizes_count();
|
96 |
|
@@ -310,7 +310,7 @@ function get_imagify_attachment_optimize_missing_thumbnails_link( $process ) {
|
|
310 |
}
|
311 |
|
312 |
/**
|
313 |
-
* Get the link to generate
|
314 |
*
|
315 |
* @since 1.9
|
316 |
* @author Grégory Viguier
|
@@ -346,7 +346,7 @@ function get_imagify_attachment_generate_webp_versions_link( $process ) {
|
|
346 |
$context = $media->get_context();
|
347 |
|
348 |
/**
|
349 |
-
* Allow to not display the "Generate
|
350 |
*
|
351 |
* @since 1.9
|
352 |
* @author Grégory Viguier
|
@@ -375,7 +375,7 @@ function get_imagify_attachment_generate_webp_versions_link( $process ) {
|
|
375 |
}
|
376 |
|
377 |
/**
|
378 |
-
* Get the link to delete
|
379 |
*
|
380 |
* @since 1.9.6
|
381 |
* @author Grégory Viguier
|
90 |
|
91 |
if ( $media->is_image() ) {
|
92 |
$has_webp = $process->has_webp() ? __( 'Yes', 'imagify' ) : __( 'No', 'imagify' );
|
93 |
+
$output .= $output_before . '<span class="data">' . __( 'WebP generated:', 'imagify' ) . '</span> <strong class="big">' . esc_html( $has_webp ) . '</strong>' . $output_after;
|
94 |
|
95 |
$total_optimized_thumbnails = $data->get_optimized_sizes_count();
|
96 |
|
310 |
}
|
311 |
|
312 |
/**
|
313 |
+
* Get the link to generate WebP versions if they are missing.
|
314 |
*
|
315 |
* @since 1.9
|
316 |
* @author Grégory Viguier
|
346 |
$context = $media->get_context();
|
347 |
|
348 |
/**
|
349 |
+
* Allow to not display the "Generate WebP versions" link.
|
350 |
*
|
351 |
* @since 1.9
|
352 |
* @author Grégory Viguier
|
375 |
}
|
376 |
|
377 |
/**
|
378 |
+
* Get the link to delete WebP versions when the status is "already_optimized".
|
379 |
*
|
380 |
* @since 1.9.6
|
381 |
* @author Grégory Viguier
|
inc/functions/common.php
CHANGED
@@ -169,7 +169,7 @@ function imagify_get_filesystem() {
|
|
169 |
}
|
170 |
|
171 |
/**
|
172 |
-
* Convert a path (or URL) to its
|
173 |
* To keep the function simple:
|
174 |
* - Not tested if it's an image.
|
175 |
* - File existance is not tested.
|
@@ -223,8 +223,8 @@ function imagify_can_optimize_custom_folders() {
|
|
223 |
* @return string The URL.
|
224 |
*/
|
225 |
function imagify_get_external_url( $target, $query_args = array() ) {
|
226 |
-
$site_url = '
|
227 |
-
$app_url = '
|
228 |
|
229 |
switch ( $target ) {
|
230 |
case 'plugin':
|
169 |
}
|
170 |
|
171 |
/**
|
172 |
+
* Convert a path (or URL) to its WebP version.
|
173 |
* To keep the function simple:
|
174 |
* - Not tested if it's an image.
|
175 |
* - File existance is not tested.
|
223 |
* @return string The URL.
|
224 |
*/
|
225 |
function imagify_get_external_url( $target, $query_args = array() ) {
|
226 |
+
$site_url = IMAGIFY_APP_DOMAIN . '/';
|
227 |
+
$app_url = IMAGIFY_APP_DOMAIN . '/#/';
|
228 |
|
229 |
switch ( $target ) {
|
230 |
case 'plugin':
|
inc/functions/compat.php
DELETED
@@ -1,545 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
defined( 'ABSPATH' ) || die( 'Cheatin’ uh?' );
|
3 |
-
|
4 |
-
/** --------------------------------------------------------------------------------------------- */
|
5 |
-
/** PHP ========================================================================================= */
|
6 |
-
/** --------------------------------------------------------------------------------------------- */
|
7 |
-
|
8 |
-
if ( ! function_exists( 'curl_file_create' ) ) :
|
9 |
-
/**
|
10 |
-
* PHP-agnostic version of curl_file_create(): create a CURLFile object.
|
11 |
-
*
|
12 |
-
* @since 1.0
|
13 |
-
* @since PHP 5.5
|
14 |
-
* @source http://dk2.php.net/manual/en/function.curl-file-create.php
|
15 |
-
*
|
16 |
-
* @param string $filename Path to the file which will be uploaded.
|
17 |
-
* @param string $mimetype Mimetype of the file.
|
18 |
-
* @param string $postname Name of the file to be used in the upload data.
|
19 |
-
* @return string The CURLFile object.
|
20 |
-
*/
|
21 |
-
function curl_file_create( $filename, $mimetype = '', $postname = '' ) {
|
22 |
-
return "@$filename;filename="
|
23 |
-
. ( $postname ? $postname : basename( $filename ) )
|
24 |
-
. ( $mimetype ? ";type=$mimetype" : '' );
|
25 |
-
}
|
26 |
-
endif;
|
27 |
-
|
28 |
-
/** --------------------------------------------------------------------------------------------- */
|
29 |
-
/** WORDPRESS =================================================================================== */
|
30 |
-
/** --------------------------------------------------------------------------------------------- */
|
31 |
-
|
32 |
-
if ( ! function_exists( 'wp_json_encode' ) ) :
|
33 |
-
/**
|
34 |
-
* Encode a variable into JSON, with some sanity checks.
|
35 |
-
*
|
36 |
-
* @since 1.6.5
|
37 |
-
* @since WP 4.1.0
|
38 |
-
*
|
39 |
-
* @param mixed $data Variable (usually an array or object) to encode as JSON.
|
40 |
-
* @param int $options Optional. Options to be passed to json_encode(). Default 0.
|
41 |
-
* @param int $depth Optional. Maximum depth to walk through $data. Must be greater than 0. Default 512.
|
42 |
-
* @return string|false The JSON encoded string, or false if it cannot be encoded.
|
43 |
-
*/
|
44 |
-
function wp_json_encode( $data, $options = 0, $depth = 512 ) {
|
45 |
-
/*
|
46 |
-
* json_encode() has had extra params added over the years.
|
47 |
-
* $options was added in 5.3, and $depth in 5.5.
|
48 |
-
* We need to make sure we call it with the correct arguments.
|
49 |
-
*/
|
50 |
-
if ( version_compare( PHP_VERSION, '5.5', '>=' ) ) {
|
51 |
-
$args = array( $data, $options, $depth );
|
52 |
-
} elseif ( version_compare( PHP_VERSION, '5.3', '>=' ) ) {
|
53 |
-
$args = array( $data, $options );
|
54 |
-
} else {
|
55 |
-
$args = array( $data );
|
56 |
-
}
|
57 |
-
|
58 |
-
// Prepare the data for JSON serialization.
|
59 |
-
$args[0] = _wp_json_prepare_data( $data );
|
60 |
-
|
61 |
-
$json = @call_user_func_array( 'json_encode', $args );
|
62 |
-
|
63 |
-
// If json_encode() was successful, no need to do more sanity checking.
|
64 |
-
// ... unless we're in an old version of PHP, and json_encode() returned
|
65 |
-
// a string containing 'null'. Then we need to do more sanity checking.
|
66 |
-
if ( false !== $json && ( version_compare( PHP_VERSION, '5.5', '>=' ) || false === strpos( $json, 'null' ) ) ) {
|
67 |
-
return $json;
|
68 |
-
}
|
69 |
-
|
70 |
-
try {
|
71 |
-
$args[0] = _wp_json_sanity_check( $data, $depth );
|
72 |
-
} catch ( Exception $e ) {
|
73 |
-
return false;
|
74 |
-
}
|
75 |
-
|
76 |
-
return call_user_func_array( 'json_encode', $args );
|
77 |
-
}
|
78 |
-
endif;
|
79 |
-
|
80 |
-
if ( ! function_exists( '_wp_json_prepare_data' ) ) :
|
81 |
-
/**
|
82 |
-
* Prepares response data to be serialized to JSON.
|
83 |
-
*
|
84 |
-
* This supports the JsonSerializable interface for PHP 5.2-5.3 as well.
|
85 |
-
*
|
86 |
-
* @since 1.6.5
|
87 |
-
* @since WP 4.4.0
|
88 |
-
* @access private
|
89 |
-
*
|
90 |
-
* @param mixed $data Native representation.
|
91 |
-
* @return bool|int|float|null|string|array Data ready for `json_encode()`.
|
92 |
-
*/
|
93 |
-
function _wp_json_prepare_data( $data ) {
|
94 |
-
if ( ! defined( 'WP_JSON_SERIALIZE_COMPATIBLE' ) || WP_JSON_SERIALIZE_COMPATIBLE === false ) {
|
95 |
-
return $data;
|
96 |
-
}
|
97 |
-
|
98 |
-
switch ( gettype( $data ) ) {
|
99 |
-
case 'boolean':
|
100 |
-
case 'integer':
|
101 |
-
case 'double':
|
102 |
-
case 'string':
|
103 |
-
case 'NULL':
|
104 |
-
// These values can be passed through.
|
105 |
-
return $data;
|
106 |
-
|
107 |
-
case 'array':
|
108 |
-
// Arrays must be mapped in case they also return objects.
|
109 |
-
return array_map( '_wp_json_prepare_data', $data );
|
110 |
-
|
111 |
-
case 'object':
|
112 |
-
// If this is an incomplete object (__PHP_Incomplete_Class), bail.
|
113 |
-
if ( ! is_object( $data ) ) {
|
114 |
-
return null;
|
115 |
-
}
|
116 |
-
|
117 |
-
if ( $data instanceof JsonSerializable ) {
|
118 |
-
$data = $data->jsonSerialize();
|
119 |
-
} else {
|
120 |
-
$data = get_object_vars( $data );
|
121 |
-
}
|
122 |
-
|
123 |
-
// Now, pass the array (or whatever was returned from jsonSerialize through).
|
124 |
-
return _wp_json_prepare_data( $data );
|
125 |
-
|
126 |
-
default:
|
127 |
-
return null;
|
128 |
-
}
|
129 |
-
}
|
130 |
-
endif;
|
131 |
-
|
132 |
-
if ( ! function_exists( '_wp_json_sanity_check' ) ) :
|
133 |
-
/**
|
134 |
-
* Perform sanity checks on data that shall be encoded to JSON.
|
135 |
-
*
|
136 |
-
* @since 1.6.5
|
137 |
-
* @since WP 4.1.0
|
138 |
-
* @access private
|
139 |
-
* @throws Exception If the depth limit is reached.
|
140 |
-
*
|
141 |
-
* @see wp_json_encode()
|
142 |
-
*
|
143 |
-
* @param mixed $data Variable (usually an array or object) to encode as JSON.
|
144 |
-
* @param int $depth Maximum depth to walk through $data. Must be greater than 0.
|
145 |
-
* @return mixed The sanitized data that shall be encoded to JSON.
|
146 |
-
*/
|
147 |
-
function _wp_json_sanity_check( $data, $depth ) {
|
148 |
-
if ( $depth < 0 ) {
|
149 |
-
throw new Exception( 'Reached depth limit' );
|
150 |
-
}
|
151 |
-
|
152 |
-
if ( is_array( $data ) ) {
|
153 |
-
$output = array();
|
154 |
-
foreach ( $data as $id => $el ) {
|
155 |
-
// Don't forget to sanitize the ID!
|
156 |
-
if ( is_string( $id ) ) {
|
157 |
-
$clean_id = _wp_json_convert_string( $id );
|
158 |
-
} else {
|
159 |
-
$clean_id = $id;
|
160 |
-
}
|
161 |
-
|
162 |
-
// Check the element type, so that we're only recursing if we really have to.
|
163 |
-
if ( is_array( $el ) || is_object( $el ) ) {
|
164 |
-
$output[ $clean_id ] = _wp_json_sanity_check( $el, $depth - 1 );
|
165 |
-
} elseif ( is_string( $el ) ) {
|
166 |
-
$output[ $clean_id ] = _wp_json_convert_string( $el );
|
167 |
-
} else {
|
168 |
-
$output[ $clean_id ] = $el;
|
169 |
-
}
|
170 |
-
}
|
171 |
-
} elseif ( is_object( $data ) ) {
|
172 |
-
$output = new stdClass();
|
173 |
-
foreach ( $data as $id => $el ) {
|
174 |
-
if ( is_string( $id ) ) {
|
175 |
-
$clean_id = _wp_json_convert_string( $id );
|
176 |
-
} else {
|
177 |
-
$clean_id = $id;
|
178 |
-
}
|
179 |
-
|
180 |
-
if ( is_array( $el ) || is_object( $el ) ) {
|
181 |
-
$output->$clean_id = _wp_json_sanity_check( $el, $depth - 1 );
|
182 |
-
} elseif ( is_string( $el ) ) {
|
183 |
-
$output->$clean_id = _wp_json_convert_string( $el );
|
184 |
-
} else {
|
185 |
-
$output->$clean_id = $el;
|
186 |
-
}
|
187 |
-
}
|
188 |
-
} elseif ( is_string( $data ) ) {
|
189 |
-
return _wp_json_convert_string( $data );
|
190 |
-
} else {
|
191 |
-
return $data;
|
192 |
-
} // End if().
|
193 |
-
|
194 |
-
return $output;
|
195 |
-
}
|
196 |
-
endif;
|
197 |
-
|
198 |
-
if ( ! function_exists( '_wp_json_convert_string' ) ) :
|
199 |
-
/**
|
200 |
-
* Convert a string to UTF-8, so that it can be safely encoded to JSON.
|
201 |
-
*
|
202 |
-
* @since 1.6.5
|
203 |
-
* @since WP 4.1.0
|
204 |
-
* @access private
|
205 |
-
*
|
206 |
-
* @see _wp_json_sanity_check()
|
207 |
-
*
|
208 |
-
* @staticvar bool $use_mb
|
209 |
-
*
|
210 |
-
* @param string $string The string which is to be converted.
|
211 |
-
* @return string The checked string.
|
212 |
-
*/
|
213 |
-
function _wp_json_convert_string( $string ) {
|
214 |
-
static $use_mb = null;
|
215 |
-
if ( is_null( $use_mb ) ) {
|
216 |
-
$use_mb = function_exists( 'mb_convert_encoding' );
|
217 |
-
}
|
218 |
-
|
219 |
-
if ( $use_mb ) {
|
220 |
-
$encoding = mb_detect_encoding( $string, mb_detect_order(), true );
|
221 |
-
if ( $encoding ) {
|
222 |
-
return mb_convert_encoding( $string, 'UTF-8', $encoding );
|
223 |
-
} else {
|
224 |
-
return mb_convert_encoding( $string, 'UTF-8', 'UTF-8' );
|
225 |
-
}
|
226 |
-
} else {
|
227 |
-
return wp_check_invalid_utf8( $string, true );
|
228 |
-
}
|
229 |
-
}
|
230 |
-
endif;
|
231 |
-
|
232 |
-
if ( ! function_exists( 'wp_parse_url' ) ) :
|
233 |
-
/**
|
234 |
-
* A wrapper for PHP's parse_url() function that handles consistency in the return
|
235 |
-
* values across PHP versions.
|
236 |
-
*
|
237 |
-
* PHP 5.4.7 expanded parse_url()'s ability to handle non-absolute url's, including
|
238 |
-
* schemeless and relative url's with :// in the path. This function works around
|
239 |
-
* those limitations providing a standard output on PHP 5.2~5.4+.
|
240 |
-
*
|
241 |
-
* Secondly, across various PHP versions, schemeless URLs starting containing a ":"
|
242 |
-
* in the query are being handled inconsistently. This function works around those
|
243 |
-
* differences as well.
|
244 |
-
*
|
245 |
-
* Error suppression is used as prior to PHP 5.3.3, an E_WARNING would be generated
|
246 |
-
* when URL parsing failed.
|
247 |
-
*
|
248 |
-
* @since 1.6.9
|
249 |
-
* @since WP 4.4.0
|
250 |
-
* @since WP 4.7.0 The $component parameter was added for parity with PHP's parse_url().
|
251 |
-
*
|
252 |
-
* @param (string) $url The URL to parse.
|
253 |
-
* @param (int) $component The specific component to retrieve. Use one of the PHP
|
254 |
-
* predefined constants to specify which one.
|
255 |
-
* Defaults to -1 (= return all parts as an array).
|
256 |
-
* @see http://php.net/manual/en/function.parse-url.php
|
257 |
-
*
|
258 |
-
* @return (mixed) False on parse failure; Array of URL components on success;
|
259 |
-
* When a specific component has been requested: null if the component
|
260 |
-
* doesn't exist in the given URL; a sting or - in the case of
|
261 |
-
* PHP_URL_PORT - integer when it does. See parse_url()'s return values.
|
262 |
-
*/
|
263 |
-
function wp_parse_url( $url, $component = -1 ) {
|
264 |
-
$to_unset = array();
|
265 |
-
$url = strval( $url );
|
266 |
-
|
267 |
-
if ( '//' === substr( $url, 0, 2 ) ) {
|
268 |
-
$to_unset[] = 'scheme';
|
269 |
-
$url = 'placeholder:' . $url;
|
270 |
-
} elseif ( '/' === substr( $url, 0, 1 ) ) {
|
271 |
-
$to_unset[] = 'scheme';
|
272 |
-
$to_unset[] = 'host';
|
273 |
-
$url = 'placeholder://placeholder' . $url;
|
274 |
-
}
|
275 |
-
|
276 |
-
$parts = @parse_url( $url );
|
277 |
-
|
278 |
-
if ( false === $parts ) {
|
279 |
-
// Parsing failure.
|
280 |
-
return $parts;
|
281 |
-
}
|
282 |
-
|
283 |
-
// Remove the placeholder values.
|
284 |
-
if ( $to_unset ) {
|
285 |
-
foreach ( $to_unset as $key ) {
|
286 |
-
unset( $parts[ $key ] );
|
287 |
-
}
|
288 |
-
}
|
289 |
-
|
290 |
-
return _get_component_from_parsed_url_array( $parts, $component );
|
291 |
-
}
|
292 |
-
endif;
|
293 |
-
|
294 |
-
if ( ! function_exists( '_get_component_from_parsed_url_array' ) ) :
|
295 |
-
/**
|
296 |
-
* Retrieve a specific component from a parsed URL array.
|
297 |
-
*
|
298 |
-
* @since 1.6.9
|
299 |
-
* @since WP 4.7.0
|
300 |
-
*
|
301 |
-
* @param (array|false) $url_parts The parsed URL. Can be false if the URL failed to parse.
|
302 |
-
* @param (int) $component The specific component to retrieve. Use one of the PHP
|
303 |
-
* predefined constants to specify which one.
|
304 |
-
* Defaults to -1 (= return all parts as an array).
|
305 |
-
* @see http://php.net/manual/en/function.parse-url.php
|
306 |
-
*
|
307 |
-
* @return (mixed) False on parse failure; Array of URL components on success;
|
308 |
-
* When a specific component has been requested: null if the component
|
309 |
-
* doesn't exist in the given URL; a sting or - in the case of
|
310 |
-
* PHP_URL_PORT - integer when it does. See parse_url()'s return values.
|
311 |
-
*/
|
312 |
-
function _get_component_from_parsed_url_array( $url_parts, $component = -1 ) {
|
313 |
-
if ( -1 === $component ) {
|
314 |
-
return $url_parts;
|
315 |
-
}
|
316 |
-
|
317 |
-
$key = _wp_translate_php_url_constant_to_key( $component );
|
318 |
-
|
319 |
-
if ( false !== $key && is_array( $url_parts ) && isset( $url_parts[ $key ] ) ) {
|
320 |
-
return $url_parts[ $key ];
|
321 |
-
} else {
|
322 |
-
return null;
|
323 |
-
}
|
324 |
-
}
|
325 |
-
endif;
|
326 |
-
|
327 |
-
if ( ! function_exists( '_wp_translate_php_url_constant_to_key' ) ) :
|
328 |
-
/**
|
329 |
-
* Translate a PHP_URL_* constant to the named array keys PHP uses.
|
330 |
-
*
|
331 |
-
* @since 1.6.9
|
332 |
-
* @since WP 4.7.0
|
333 |
-
* @see http://php.net/manual/en/url.constants.php
|
334 |
-
*
|
335 |
-
* @param (int) $constant PHP_URL_* constant.
|
336 |
-
*
|
337 |
-
* @return (string|bool) The named key or false.
|
338 |
-
*/
|
339 |
-
function _wp_translate_php_url_constant_to_key( $constant ) {
|
340 |
-
$translation = array(
|
341 |
-
PHP_URL_SCHEME => 'scheme',
|
342 |
-
PHP_URL_HOST => 'host',
|
343 |
-
PHP_URL_PORT => 'port',
|
344 |
-
PHP_URL_USER => 'user',
|
345 |
-
PHP_URL_PASS => 'pass',
|
346 |
-
PHP_URL_PATH => 'path',
|
347 |
-
PHP_URL_QUERY => 'query',
|
348 |
-
PHP_URL_FRAGMENT => 'fragment',
|
349 |
-
);
|
350 |
-
|
351 |
-
if ( isset( $translation[ $constant ] ) ) {
|
352 |
-
return $translation[ $constant ];
|
353 |
-
} else {
|
354 |
-
return false;
|
355 |
-
}
|
356 |
-
}
|
357 |
-
endif;
|
358 |
-
|
359 |
-
if ( ! function_exists( 'wp_get_additional_image_sizes' ) ) :
|
360 |
-
/**
|
361 |
-
* Retrieve additional image sizes.
|
362 |
-
*
|
363 |
-
* @since 1.6.10
|
364 |
-
* @since WP 4.7.0
|
365 |
-
*
|
366 |
-
* @global array $_wp_additional_image_sizes
|
367 |
-
*
|
368 |
-
* @return array Additional images size data.
|
369 |
-
*/
|
370 |
-
function wp_get_additional_image_sizes() {
|
371 |
-
global $_wp_additional_image_sizes;
|
372 |
-
if ( ! $_wp_additional_image_sizes ) {
|
373 |
-
$_wp_additional_image_sizes = array(); // WPCS: override ok.
|
374 |
-
}
|
375 |
-
return $_wp_additional_image_sizes;
|
376 |
-
}
|
377 |
-
endif;
|
378 |
-
|
379 |
-
if ( ! function_exists( 'wp_scripts' ) ) :
|
380 |
-
/**
|
381 |
-
* Initialize $wp_scripts if it has not been set.
|
382 |
-
*
|
383 |
-
* @global WP_Scripts $wp_scripts
|
384 |
-
*
|
385 |
-
* @since 1.6.11
|
386 |
-
* @since WP 4.2.0
|
387 |
-
*
|
388 |
-
* @return WP_Scripts WP_Scripts instance.
|
389 |
-
*/
|
390 |
-
function wp_scripts() {
|
391 |
-
global $wp_scripts;
|
392 |
-
if ( ! ( $wp_scripts instanceof WP_Scripts ) ) {
|
393 |
-
$wp_scripts = new WP_Scripts(); // WPCS: override ok.
|
394 |
-
}
|
395 |
-
return $wp_scripts;
|
396 |
-
}
|
397 |
-
endif;
|
398 |
-
|
399 |
-
if ( ! function_exists( 'wp_doing_ajax' ) ) :
|
400 |
-
/**
|
401 |
-
* Determines whether the current request is a WordPress Ajax request.
|
402 |
-
*
|
403 |
-
* @since 1.7
|
404 |
-
* @since WP 4.7.0
|
405 |
-
*
|
406 |
-
* @return bool True if it's a WordPress Ajax request, false otherwise.
|
407 |
-
*/
|
408 |
-
function wp_doing_ajax() {
|
409 |
-
/**
|
410 |
-
* Filters whether the current request is a WordPress Ajax request.
|
411 |
-
*
|
412 |
-
* @since 1.7
|
413 |
-
* @since WP 4.7.0
|
414 |
-
*
|
415 |
-
* @param bool $wp_doing_ajax Whether the current request is a WordPress Ajax request.
|
416 |
-
*/
|
417 |
-
return apply_filters( 'wp_doing_ajax', defined( 'DOING_AJAX' ) && DOING_AJAX );
|
418 |
-
}
|
419 |
-
endif;
|
420 |
-
|
421 |
-
if ( ! function_exists( '_deprecated_hook' ) ) :
|
422 |
-
/**
|
423 |
-
* Marks a deprecated action or filter hook as deprecated and throws a notice.
|
424 |
-
*
|
425 |
-
* Use the {@see 'deprecated_hook_run'} action to get the backtrace describing where
|
426 |
-
* the deprecated hook was called.
|
427 |
-
*
|
428 |
-
* Default behavior is to trigger a user error if `WP_DEBUG` is true.
|
429 |
-
*
|
430 |
-
* This function is called by the do_action_deprecated() and apply_filters_deprecated()
|
431 |
-
* functions, and so generally does not need to be called directly.
|
432 |
-
*
|
433 |
-
* @since 1.7
|
434 |
-
* @since WP 4.6.0
|
435 |
-
* @access private
|
436 |
-
*
|
437 |
-
* @param string $hook The hook that was used.
|
438 |
-
* @param string $version The version of WordPress that deprecated the hook.
|
439 |
-
* @param string $replacement Optional. The hook that should have been used.
|
440 |
-
* @param string $message Optional. A message regarding the change.
|
441 |
-
*/
|
442 |
-
function _deprecated_hook( $hook, $version, $replacement = null, $message = null ) {
|
443 |
-
/**
|
444 |
-
* Fires when a deprecated hook is called.
|
445 |
-
*
|
446 |
-
* @since 1.7
|
447 |
-
* @since WP 4.6.0
|
448 |
-
*
|
449 |
-
* @param string $hook The hook that was called.
|
450 |
-
* @param string $replacement The hook that should be used as a replacement.
|
451 |
-
* @param string $version The version of WordPress that deprecated the argument used.
|
452 |
-
* @param string $message A message regarding the change.
|
453 |
-
*/
|
454 |
-
do_action( 'deprecated_hook_run', $hook, $replacement, $version, $message );
|
455 |
-
|
456 |
-
/**
|
457 |
-
* Filters whether to trigger deprecated hook errors.
|
458 |
-
*
|
459 |
-
* @since 1.7
|
460 |
-
* @since WP 4.6.0
|
461 |
-
*
|
462 |
-
* @param bool $trigger Whether to trigger deprecated hook errors. Requires
|
463 |
-
* `WP_DEBUG` to be defined true.
|
464 |
-
*/
|
465 |
-
if ( WP_DEBUG && apply_filters( 'deprecated_hook_trigger_error', true ) ) {
|
466 |
-
$message = empty( $message ) ? '' : ' ' . $message;
|
467 |
-
if ( ! is_null( $replacement ) ) {
|
468 |
-
/* translators: 1: WordPress hook name, 2: version number, 3: alternative hook name */
|
469 |
-
trigger_error( sprintf( __( '%1$s is <strong>deprecated</strong> since version %2$s! Use %3$s instead.', 'imagify' ), $hook, $version, $replacement ) . $message );
|
470 |
-
} else {
|
471 |
-
/* translators: 1: WordPress hook name, 2: version number */
|
472 |
-
trigger_error( sprintf( __( '%1$s is <strong>deprecated</strong> since version %2$s with no alternative available.', 'imagify' ), $hook, $version ) . $message );
|
473 |
-
}
|
474 |
-
}
|
475 |
-
}
|
476 |
-
endif;
|
477 |
-
|
478 |
-
if ( ! function_exists( 'do_action_deprecated' ) ) :
|
479 |
-
/**
|
480 |
-
* Fires functions attached to a deprecated action hook.
|
481 |
-
*
|
482 |
-
* When an action hook is deprecated, the do_action() call is replaced with
|
483 |
-
* do_action_deprecated(), which triggers a deprecation notice and then fires
|
484 |
-
* the original hook.
|
485 |
-
*
|
486 |
-
* @since 1.9
|
487 |
-
* @since WP 4.6.0
|
488 |
-
*
|
489 |
-
* @see _deprecated_hook()
|
490 |
-
*
|
491 |
-
* @param string $tag The name of the action hook.
|
492 |
-
* @param array $args Array of additional function arguments to be passed to do_action().
|
493 |
-
* @param string $version The version of WordPress that deprecated the hook.
|
494 |
-
* @param string $replacement Optional. The hook that should have been used.
|
495 |
-
* @param string $message Optional. A message regarding the change.
|
496 |
-
*/
|
497 |
-
function do_action_deprecated( $tag, $args, $version, $replacement = false, $message = null ) {
|
498 |
-
if ( ! has_action( $tag ) ) {
|
499 |
-
return;
|
500 |
-
}
|
501 |
-
|
502 |
-
_deprecated_hook( $tag, $version, $replacement, $message );
|
503 |
-
|
504 |
-
do_action_ref_array( $tag, $args );
|
505 |
-
}
|
506 |
-
endif;
|
507 |
-
|
508 |
-
if ( ! function_exists( 'apply_filters_deprecated' ) ) :
|
509 |
-
/**
|
510 |
-
* Fires functions attached to a deprecated filter hook.
|
511 |
-
*
|
512 |
-
* When a filter hook is deprecated, the apply_filters() call is replaced with
|
513 |
-
* apply_filters_deprecated(), which triggers a deprecation notice and then fires
|
514 |
-
* the original filter hook.
|
515 |
-
*
|
516 |
-
* Note: the value and extra arguments passed to the original apply_filters() call
|
517 |
-
* must be passed here to `$args` as an array. For example:
|
518 |
-
*
|
519 |
-
* // Old filter.
|
520 |
-
* return apply_filters( 'wpdocs_filter', $value, $extra_arg );
|
521 |
-
*
|
522 |
-
* // Deprecated.
|
523 |
-
* return apply_filters_deprecated( 'wpdocs_filter', array( $value, $extra_arg ), '4.9', 'wpdocs_new_filter' );
|
524 |
-
*
|
525 |
-
* @since 1.7
|
526 |
-
* @since WP 4.6.0
|
527 |
-
*
|
528 |
-
* @see _deprecated_hook()
|
529 |
-
*
|
530 |
-
* @param string $tag The name of the filter hook.
|
531 |
-
* @param array $args Array of additional function arguments to be passed to apply_filters().
|
532 |
-
* @param string $version The version of WordPress that deprecated the hook.
|
533 |
-
* @param string $replacement Optional. The hook that should have been used. Default false.
|
534 |
-
* @param string $message Optional. A message regarding the change. Default null.
|
535 |
-
*/
|
536 |
-
function apply_filters_deprecated( $tag, $args, $version, $replacement = false, $message = null ) {
|
537 |
-
if ( ! has_filter( $tag ) ) {
|
538 |
-
return $args[0];
|
539 |
-
}
|
540 |
-
|
541 |
-
_deprecated_hook( $tag, $version, $replacement, $message );
|
542 |
-
|
543 |
-
return apply_filters_ref_array( $tag, $args );
|
544 |
-
}
|
545 |
-
endif;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inc/functions/i18n.php
CHANGED
@@ -106,8 +106,8 @@ function get_imagify_localize_script_translations( $context ) {
|
|
106 |
'overQuotaTitle' => __( 'You have used all your credits!', 'imagify' ),
|
107 |
'processing' => __( 'Imagify is still processing. Are you sure you want to leave this page?', 'imagify' ),
|
108 |
'nothingToDoTitle' => __( 'Hold on!', 'imagify' ),
|
109 |
-
'nothingToDoText' => __( 'All your optimized images already have a
|
110 |
-
'nothingToDoNoBackupText' => __( 'Because the selected images did not have a backup copy, Imagify was unable to create
|
111 |
'error' => __( 'Error', 'imagify' ),
|
112 |
'ajaxErrorText' => __( 'The operation failed.', 'imagify' ),
|
113 |
'getUnoptimizedImagesErrorTitle' => __( 'Oops, There is something wrong!', 'imagify' ),
|
@@ -116,7 +116,7 @@ function get_imagify_localize_script_translations( $context ) {
|
|
116 |
];
|
117 |
|
118 |
/**
|
119 |
-
* Filter the number of parallel queries generating
|
120 |
*
|
121 |
* @since 1.9
|
122 |
* @author Grégory Viguier
|
@@ -131,11 +131,14 @@ function get_imagify_localize_script_translations( $context ) {
|
|
131 |
|
132 |
case 'pricing-modal':
|
133 |
$translations = [
|
|
|
134 |
'labels' => [
|
135 |
'errorCouponAPI' => __( 'Error with checking this coupon.', 'imagify' ),
|
136 |
/* translators: 1 is a percentage, 2 is a coupon code. */
|
137 |
'successCouponAPI' => sprintf( _x( '%1$s off with %2$s', 'coupon validated', 'imagify' ), '<span class="imagify-coupon-offer"></span>', '<strong class="imagify-coupon-word"></strong>' ),
|
138 |
'errorPriceAPI' => __( 'Something went wrong with getting our updated offers. Please retry later.', 'imagify' ),
|
|
|
|
|
139 |
],
|
140 |
];
|
141 |
|
@@ -253,7 +256,7 @@ function get_imagify_localize_script_translations( $context ) {
|
|
253 |
'nothingToDoTitle' => __( 'Hold on!', 'imagify' ),
|
254 |
'nothingToDoText' => [
|
255 |
'optimize' => __( 'All your media files have been optimized by Imagify. Congratulations!', 'imagify' ),
|
256 |
-
'generate_webp' => __( 'All your optimized images already have a
|
257 |
],
|
258 |
'optimizing' => __( 'Optimizing', 'imagify' ),
|
259 |
'error' => __( 'Error', 'imagify' ),
|
106 |
'overQuotaTitle' => __( 'You have used all your credits!', 'imagify' ),
|
107 |
'processing' => __( 'Imagify is still processing. Are you sure you want to leave this page?', 'imagify' ),
|
108 |
'nothingToDoTitle' => __( 'Hold on!', 'imagify' ),
|
109 |
+
'nothingToDoText' => __( 'All your optimized images already have a WebP version. Congratulations!', 'imagify' ),
|
110 |
+
'nothingToDoNoBackupText' => __( 'Because the selected images did not have a backup copy, Imagify was unable to create WebP versions.', 'imagify' ),
|
111 |
'error' => __( 'Error', 'imagify' ),
|
112 |
'ajaxErrorText' => __( 'The operation failed.', 'imagify' ),
|
113 |
'getUnoptimizedImagesErrorTitle' => __( 'Oops, There is something wrong!', 'imagify' ),
|
116 |
];
|
117 |
|
118 |
/**
|
119 |
+
* Filter the number of parallel queries generating WebP images by bulk method.
|
120 |
*
|
121 |
* @since 1.9
|
122 |
* @author Grégory Viguier
|
131 |
|
132 |
case 'pricing-modal':
|
133 |
$translations = [
|
134 |
+
'imagify_app_domain' => IMAGIFY_APP_DOMAIN,
|
135 |
'labels' => [
|
136 |
'errorCouponAPI' => __( 'Error with checking this coupon.', 'imagify' ),
|
137 |
/* translators: 1 is a percentage, 2 is a coupon code. */
|
138 |
'successCouponAPI' => sprintf( _x( '%1$s off with %2$s', 'coupon validated', 'imagify' ), '<span class="imagify-coupon-offer"></span>', '<strong class="imagify-coupon-word"></strong>' ),
|
139 |
'errorPriceAPI' => __( 'Something went wrong with getting our updated offers. Please retry later.', 'imagify' ),
|
140 |
+
'defaultCouponLabel' => __( 'If you have a <strong>coupon code</strong><br> use it here:', 'imagify' ),
|
141 |
+
'errorCouponPlan' => __( 'This coupon is not valid with this plan.', 'imagify' ),
|
142 |
],
|
143 |
];
|
144 |
|
256 |
'nothingToDoTitle' => __( 'Hold on!', 'imagify' ),
|
257 |
'nothingToDoText' => [
|
258 |
'optimize' => __( 'All your media files have been optimized by Imagify. Congratulations!', 'imagify' ),
|
259 |
+
'generate_webp' => __( 'All your optimized images already have a WebP version. Congratulations!', 'imagify' ),
|
260 |
],
|
261 |
'optimizing' => __( 'Optimizing', 'imagify' ),
|
262 |
'error' => __( 'Error', 'imagify' ),
|
readme.txt
CHANGED
@@ -1,89 +1,101 @@
|
|
1 |
-
=== Imagify – Optimize
|
2 |
-
Contributors:
|
3 |
-
Tags: convert webp, webp,
|
4 |
-
|
5 |
-
|
6 |
-
Stable tag: 1.9.14
|
7 |
|
8 |
-
|
9 |
|
10 |
== Description ==
|
11 |
|
12 |
-
|
13 |
|
14 |
-
Imagify is the most advanced
|
15 |
|
16 |
-
|
17 |
|
18 |
-
|
19 |
|
20 |
-
|
21 |
|
22 |
-
|
23 |
|
24 |
-
|
25 |
|
26 |
-
|
27 |
|
28 |
-
|
29 |
|
30 |
-
|
31 |
|
32 |
-
|
33 |
|
34 |
-
You
|
35 |
|
36 |
-
Imagify
|
37 |
|
38 |
-
|
39 |
|
40 |
-
|
41 |
-
- Aggressive, a lossy compression algorithm. Stronger compression with a tiny loss of quality most of the time this is not even noticeable at all.
|
42 |
-
- Ultra, our strongest compression method using a lossy algorithm.
|
43 |
|
44 |
-
|
45 |
|
46 |
-
|
47 |
-
Now, for each image you optimize with the Imagify plugin, you will also get its **WebP version** (if you tick the option in the settings); in your Media library, this will result in the following image versions:
|
48 |
-
- full-sized optimized image,
|
49 |
-
- full-sized WebP image,
|
50 |
-
- optimized thumbnails,
|
51 |
-
- WebP thumbnails.
|
52 |
|
53 |
-
|
54 |
|
55 |
-
If you
|
56 |
-
- `<picture>` tag,
|
57 |
-
- rewrite rules in the .htaccess file.
|
58 |
|
59 |
-
|
60 |
|
61 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
62 |
|
63 |
> "Imagify is an awesome tool that is powerful & easy to use. It's fast, rivals and surpasses other established plugins/software. Awesome!" — [Simon Harper](https://twitter.com/SRHDesign/status/663758140505235456)
|
64 |
>
|
|
|
65 |
> "If you want to "squeeze" your images as much as possible and "trim out" your website on the highest professional level... Imagify" — [Ivica Delic](https://twitter.com/Free_LanceTools/status/685503950909476865)
|
66 |
>
|
|
|
67 |
> "Clearly Imagify is the most awesome WordPress plugin to compress images on your website! A must try" — [Eric Walter](https://twitter.com/EricWaltR/status/679053496382038016)
|
68 |
>
|
69 |
|
70 |
= Is Imagify Free? =
|
71 |
|
72 |
-
You can optimize for free 20MB of images (about 200 images) every month. You can convert WebP for free.
|
|
|
|
|
|
|
|
|
73 |
|
74 |
-
|
75 |
|
76 |
-
|
77 |
|
78 |
-
|
79 |
|
80 |
-
|
81 |
|
82 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
83 |
|
84 |
Our mission is to improve the web, we are making it faster with [WP Rocket](https://wp-rocket.me/) and lighter with Imagify.
|
85 |
|
86 |
-
= Get
|
87 |
|
88 |
* Website: [Imagify.io](https://imagify.io)
|
89 |
* Contact Us: [https://imagify.io/contact](https://imagify.io/contact)
|
@@ -91,7 +103,7 @@ Our mission is to improve the web, we are making it faster with [WP Rocket](http
|
|
91 |
|
92 |
= Related Plugins =
|
93 |
* [WP Rocket](https://wp-rocket.me/): Best caching plugin to speed-up your WordPress website.
|
94 |
-
* [Lazy Load](https://wordpress.org/plugins/rocket-lazy-load/): Best Lazy Load script to reduce the number of HTTP requests and improves the
|
95 |
|
96 |
License: GPLv2 or later
|
97 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
@@ -111,33 +123,66 @@ License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
|
111 |
|
112 |
== Frequently Asked Questions ==
|
113 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
114 |
= Which formats can be optimized? =
|
115 |
|
116 |
-
Imagify can optimize JPG, PNG, PDF and GIFs (whether animated or not).
|
|
|
|
|
117 |
|
118 |
-
=How should I know which compression level is best for me
|
119 |
|
120 |
-
There are three compression levels available - Normal, Aggressive and Ultra.
|
121 |
|
122 |
-
Normal compression is a "lossless" optimization. This means there is no loss of image quality.
|
123 |
|
124 |
-
Aggressive and Ultra compression are more powerful, so the picture quality will be somewhat reduced. The weight of the image will be much less.
|
125 |
|
126 |
-
We recommend Aggressive as the best balanced level that reduces the size but does not affect the quality.
|
127 |
|
128 |
-
It would be best, however, to test the 3 levels of compression on a smaller amount of images and see how it affects the quality of your image. Once you see which
|
129 |
|
130 |
=How does the optimization process work?=
|
131 |
|
132 |
-
The image optimization process is performed on our servers. Once done, Imagify returns the optimized image to your server. We do not edit images’
|
133 |
|
134 |
=How long are images stored by Imagify?=
|
135 |
|
136 |
-
Once your images have been optimized via the WP plugin,
|
137 |
|
138 |
-
During the optimization process, images sent via the API or WordPress plugin are stored for one hour on our server (they are already sent back to your site and stay there safely).
|
139 |
|
140 |
-
Using the online application, images are stored for 24 hours (with a free account) and for unlimited time if you have a paid subscription.
|
141 |
|
142 |
=Can I restore images after compression?=
|
143 |
|
@@ -149,11 +194,11 @@ Yes, your images will stay compressed even after removing Imagify (and even afte
|
|
149 |
|
150 |
=If I use Imagify, do I need to continue optimizing and resizing my images with Photoshop?=
|
151 |
|
152 |
-
Do not waste your time resizing and optimizing your images in Photoshop. Imagify takes care of everything!
|
153 |
|
154 |
=Is the EXIF data of images removed?=
|
155 |
|
156 |
-
By default EXIF data is removed. It is possible to keep it with the WordPress plugin by enabling the option in Imagify Settings page.
|
157 |
|
158 |
=I used Kraken, Optimus, EWWW or WP Smush, will Imagify further optimize my images?=
|
159 |
|
@@ -161,43 +206,43 @@ Absolutely. Most of the time, Imagify will still be able to optimize your images
|
|
161 |
|
162 |
= Will the original images be deleted? =
|
163 |
|
164 |
-
No. Imagify automatically replaces the images with an optimized image. The backup option allows you to keep the original images and restore them with one click.
|
165 |
|
166 |
= Is it possible to re-optimize images with a different level? =
|
167 |
|
168 |
-
Yes. By activating the backup option in the plugin, you can re-optimize each image with a different compression level.
|
169 |
|
170 |
= What happens when the plugin is disabled? =
|
171 |
|
172 |
When the plugin is disabled, your existing images remain optimized. Backups of the original images are still available if you have enabled the images backup option.
|
173 |
|
174 |
-
=On which web hosts can the plugin be used
|
175 |
|
176 |
The plugin can be used on all hosts including "managed hosting" providers like WP Engine.
|
177 |
|
178 |
-
=Is Imagify compatible with Multi-Site
|
179 |
|
180 |
Yes, Imagify is 100% compatible with multi-site.
|
181 |
|
182 |
-
=Can we use Imagify on WordPress.com
|
183 |
|
184 |
-
It is possible to use Imagify plugin on WordPress.com if you have a Business account.
|
185 |
|
186 |
=Do you offer support?=
|
187 |
|
188 |
-
Yes, the Imagify team offers full email support. You can contact us via [https://imagify.io/contact/](https://imagify.io/contact/).
|
189 |
|
190 |
-
When is support available?
|
191 |
|
192 |
-
Our support is currently available Monday-Friday 8AM-
|
193 |
|
194 |
=Is registration free?=
|
195 |
|
196 |
-
Yes and no credit card is required.
|
197 |
|
198 |
-
=Do you offer a trial version
|
199 |
|
200 |
-
No. However, you get 20MB of quota per month for free.
|
201 |
|
202 |
== Screenshots ==
|
203 |
|
@@ -210,6 +255,18 @@ No. However, you get 20MB of quota per month for free.
|
|
210 |
4. Other Media Page
|
211 |
|
212 |
== Changelog ==
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
213 |
= 1.9.14 =
|
214 |
* Fix: cURL not connecting to Imagify API when using PHP 8.
|
215 |
* Fix: Display issue in Chrome on scrollable check groups on Imagify admin page.
|
@@ -222,9 +279,9 @@ No. However, you get 20MB of quota per month for free.
|
|
222 |
|
223 |
= 1.9.11 - 2020/09/09 =
|
224 |
* Fix: Fix settings error on multi-sites with WordPress 5.5
|
225 |
-
* Fix: Write the correct conf file for use with
|
226 |
* Improvement: Namespace composer dependencies to avoid possible naming collisions.
|
227 |
-
* Security: Add blank index.php to imagify-created backup folders to disable public access.
|
228 |
|
229 |
= 1.9.10 - 2020/05/26 =
|
230 |
* Fix: Correctly optimize thumbnails during auto-optimization of image upload
|
@@ -236,7 +293,7 @@ No. However, you get 20MB of quota per month for free.
|
|
236 |
* Fix: php notices that could happen when optimizing.
|
237 |
|
238 |
= 1.9.8.1 - 2019/11/15 =
|
239 |
-
* Fix:
|
240 |
* Fix: a fatal error with WP Offload Media 2.3.
|
241 |
|
242 |
= 1.9.8 - 2019/11/11 =
|
@@ -244,7 +301,7 @@ No. However, you get 20MB of quota per month for free.
|
|
244 |
* New: among other things, WordPress 5.3 automatically resizes large images on upload, using a predefined threshold value that can be changed only by filter (no setting fields are provided). Imagify’s "Resize larger images" setting field is now used to tweak this threshold.
|
245 |
* Caution: to be able to work on WordPress 5.3, some adjustments have been made to our compatibility with Enable Media Replace and Regenerate Thumbnails. However, these plugins must be updated to work with WordPress 5.3: do not use them until then.
|
246 |
* Improvement: moved the `width` and `height` attributes from the `<picture>` tag to the `<img>` tag to be valid HTML markup.
|
247 |
-
* Fix: added a missing descriptor in `srcset` attribute when using `<picture>` tags to display
|
248 |
* Fix: fixed an issue with the user capacity used for "Other Media" menu item.
|
249 |
* Fix: a php notice `stripos(): Non-string needles will be interpreted as strings in the future.`.
|
250 |
|
@@ -254,23 +311,23 @@ No. However, you get 20MB of quota per month for free.
|
|
254 |
* Fix: display the "Welcome" banner correctly when it is shown on the WP Rocket’s settings page.
|
255 |
|
256 |
= 1.9.6 - 2019/07/22 =
|
257 |
-
* Improvement: now images that are "already optimized" can also get
|
258 |
* Fix: progress bar height in the admin bar for Chrome and Safari.
|
259 |
|
260 |
= 1.9.5 - 2019/07/16 =
|
261 |
* Improvement: Basic Authentication support. If it does not work automatically, you can still define the constants `IMAGIFY_AUTH_USER` and `IMAGIFY_AUTH_PASSWORD` in your `wp-config.php` file.
|
262 |
-
* Improvement:
|
263 |
-
* Improvement: when creating
|
264 |
* Improvement: clear the 5 minutes data cache when buying quota from the plugin.
|
265 |
-
* Improvement: when displaying
|
266 |
|
267 |
= 1.9.4 - 2019/07/10 =
|
268 |
-
* Improvement: if a
|
269 |
* Improvement: compatibility with Pressable.
|
270 |
* Improvement: renamed a php class to prevent some hosts to wrongly flag it as "suspicious" and trigger a fatal error.
|
271 |
* Improvement: better compatibility with WP Real Media Library plugin.
|
272 |
-
* Fix: rewrite rules for
|
273 |
-
* Fix: when using `<picture>` tags for
|
274 |
* Fix: the bulk method would not work in the NextGen Gallery list.
|
275 |
* Fix: php notice `Trying to get property "namespace" for a non object`.
|
276 |
|
@@ -278,7 +335,7 @@ No. However, you get 20MB of quota per month for free.
|
|
278 |
* Fix: conflict with plugins using an ancient version of Composer.
|
279 |
|
280 |
= 1.9.3 - 2019/06/17 =
|
281 |
-
* Improvement: better compatibility with CDNs when displaying
|
282 |
* Improvement: don’t use Heartbeat anymore. This speeds up the optimization process and prevents other plugins to break everything when they remove Heartbeat.
|
283 |
* Fix: a fatal error upon plugin deactivation.
|
284 |
* Fix: an occasional fatal error preventing the optimization process to work.
|
@@ -291,11 +348,11 @@ No. However, you get 20MB of quota per month for free.
|
|
291 |
* Fix: don’t display support bubble anymore.
|
292 |
|
293 |
= 1.9.1 - 2019/05/09 =
|
294 |
-
* Improvement: prevent "Generating missing
|
295 |
* Improvement: improved our "re-registering" of the Heartbeat library, that some plugins may deactivate.
|
296 |
|
297 |
= 1.9.0 - 2019/05/06 =
|
298 |
-
* New:
|
299 |
* Improvement: the optimization process has been entirely rebuilt. This new process allows you to optimize as many thumbnail sizes that you want. It also implies that many classes, functions, and hooks have been deprecated.
|
300 |
* Improvement: compatibility with Flywheel.
|
301 |
* Improvement: some error messages are now more accurate.
|
1 |
+
=== Imagify – Optimize Images & Convert WebP ===
|
2 |
+
Contributors: wp_rocket
|
3 |
+
Tags: optimize images, convert webp, webp converter, image optimization, compress images, image compressor, resize images, reduce image size, performance, image optimizer, core web vitals, best image optimization plugin
|
4 |
+
Tested up to: 6.0
|
5 |
+
Stable tag: 1.10
|
|
|
6 |
|
7 |
+
Compress images & convert WebP with the best WordPress image optimization plugin. Optimize images in 1-click & resize images with our image optimizer!
|
8 |
|
9 |
== Description ==
|
10 |
|
11 |
+
= The Best Image Optimization Plugin For WordPress =
|
12 |
|
13 |
+
[Imagify](https://imagify.io/) is the most advanced image optimization plugin to help you resize and compress images. You can now use its power directly in WordPress to optimize images and reduce the weight of the photos you want to add to your site – all in just one click and without sacrificing their quality.
|
14 |
|
15 |
+
Imagify is the best WordPress image optimizer. The plugin lets you optimize images in one go with its bulk optimization option. You can resize your images on the fly and, with 3 compression levels to choose from, your images are automatically optimized in the selected compression level. If needed, you can always restore your images to their original versions.
|
16 |
|
17 |
+
On top of optimizing images, you’ll choose the best WebP plugin for WordPress. Imagify also converts your images to WebP, a next-gen format for lighter images that will speed up your WordPress site, improve user experience, and even SEO. Convert WebP will make a difference in images optimization, you’ll see that from yourself.
|
18 |
|
19 |
+
Lastly, it’s easy to use the best image compression plugin for better site performance. Speed up your WordPress site and improve Core Web Vitals thanks to Imagify’s state-of-the-art image optimization process.
|
20 |
|
21 |
+
= Resize and Compress Images Without Losing Quality =
|
22 |
|
23 |
+
Imagify is a great image compressor and the ultimate solution to optimize images. You are able to resize and compress images from the most common image formats as well as PDF format. In case you have many images to optimize, you can also resize images in bulk thanks to our bulk optimization option. In just one click, you will be able to compress multiple images super easily.
|
24 |
|
25 |
+
Many of your high-quality images may be in sizes that are much too large. To reduce image size and compress large images, Imagify has a setting that allows you to choose a maximum width for all of your images, and if you upload images that are larger than that size, it will resize large images for you during optimization. Imagify will resize images proportionally without cropping them.
|
26 |
|
27 |
+
With such a great image optimizer like Imagify, you can choose between two types of image compression: [lossy compression and lossless compression](https://imagify.io/blog/lossless-vs-lossy-image-compression/). The Normal image compression level uses lossless compression, meaning there should be no difference in image quality after image optimization. The Aggressive and Ultra levels both use lossy compression, meaning you could notice some slight differences in image quality, but you will reduce image size even more!
|
28 |
|
29 |
+
When using our image compression tool, Imagify, you will enjoy smaller file sizes and faster loading times. But the best part is that you will optimize images and reduce their weight without losing quality: why should you have to choose between beauty and speed? If you want to compress images, it’s now easier than ever with Imagify!
|
30 |
|
31 |
+
= Convert Images to the WebP Format =
|
32 |
|
33 |
+
Thanks to Imagify, you can take a step further in your image optimization process. You can also convert all your images to next-gen image formats such as WebP. WebP format offers superior image compression and quality and is a way to optimize images and speed up their loading times on websites. To convert images to next-gen format, using the Imagify plugin will save you a precious amount of time.
|
34 |
|
35 |
+
With Imagify, WebP compression and conversion are indeed super easy. Wondering how the convert WebP option works? If the "Create WebP versions of images" option is enabled, the WebP versions of optimized images will be created automatically. Simple as that! Thanks to the best WebP plugin for WordPress, you’ll be able to take advantage of the convert WebP feature in no time.
|
36 |
|
37 |
+
Imagify can also display these WebP images directly on your front-end. But because some browsers don’t support WebP yet, Imagify lets you have both optimized versions of the original format images and the WebP versions ready. Imagify will serve the WebP versions if a visitor's browser supports them and the other optimized format if not.
|
38 |
|
39 |
+
WebP is definitively an excellent replacement for jpeg, png, and gif images. Imagify offers WebP conversion for all image formats: you can convert gif to webP, jpeg to WebP, and even png to WebP. Whatever your favorite image format, let Imagify optimize your images!
|
|
|
|
|
40 |
|
41 |
+
= Optimize Images to Make Your Site Faster and Improve Core Web Vitals =
|
42 |
|
43 |
+
Did you know that image optimization and web performance go hand in hand? In fact, when it comes to web page speed, one of the first things you should do is optimize your images. Large and heavy image sizes will indeed slow down your website and provide a bad user experience to your visitors – and that’s why you should compress images. On the contrary, when you optimize images and improve image loading speed, you should see a direct improvement in your website speed and performance. With Imagify, it’s time to say goodbye to images taking too long to load.
|
|
|
|
|
|
|
|
|
|
|
44 |
|
45 |
+
Images are one of the largest influencing factors in the Core Web Vitals. Image compression will ensure that your images load faster and improve your overall website performance, including your Core Web Vitals metrics. If you’re looking to improve user experience and speed up your WordPress site, images are a good place to start.
|
46 |
|
47 |
+
Even Google tells you to take care of your images! If you have ever run a performance audit on PageSpeed Insights, you might have seen the [“serve images in next-gen formats”](https://imagify.io/blog/serve-next-gen-formats-wordpress/) opportunity popping up. Another PageSpeed Insights recommendation related to images is to [“efficiently encode images”](https://imagify.io/blog/efficiently-encode-images-wordpress/). When you use Imagify, you will be able to address both recommendations and fix your images for a faster website.
|
|
|
|
|
48 |
|
49 |
+
= What Do Our Users Think Of Imagify? =
|
50 |
|
51 |
+
Here’s what our users have to say about us after optimizing their images with Imagify:
|
52 |
+
|
53 |
+
>"Images are other media are the largest parts on your web pages (most likely). Therefore don't forget to optimise images for the web before adding to your site. For WordPress there are many optimisation plugins available. My favourite is Imagify" — [Mark Wilkinson](https://twitter.com/wpmark/status/1479128422395830273)
|
54 |
+
>
|
55 |
+
|
56 |
+
>”To give your images a slimming treatment, without altering them aesthetically, there is a great plugin on WordPress: Imagify. Simple, efficient and functional, it’s really worth a look.”— [WP Marmite](https://twitter.com/wpmarmite_en/status/1383072818649255937)
|
57 |
+
>
|
58 |
|
59 |
> "Imagify is an awesome tool that is powerful & easy to use. It's fast, rivals and surpasses other established plugins/software. Awesome!" — [Simon Harper](https://twitter.com/SRHDesign/status/663758140505235456)
|
60 |
>
|
61 |
+
|
62 |
> "If you want to "squeeze" your images as much as possible and "trim out" your website on the highest professional level... Imagify" — [Ivica Delic](https://twitter.com/Free_LanceTools/status/685503950909476865)
|
63 |
>
|
64 |
+
|
65 |
> "Clearly Imagify is the most awesome WordPress plugin to compress images on your website! A must try" — [Eric Walter](https://twitter.com/EricWaltR/status/679053496382038016)
|
66 |
>
|
67 |
|
68 |
= Is Imagify Free? =
|
69 |
|
70 |
+
You can optimize for free 20MB of images (that’s about 200 images) every month. You can also convert to the next-gen WebP format for free.
|
71 |
+
|
72 |
+
Need to compress more images? Have a look at our plans: [https://imagify.io/pricing](https://imagify.io/pricing)
|
73 |
+
|
74 |
+
= Want Image Optimization Tips? =
|
75 |
|
76 |
+
If you want to know more about using WebP images on WordPress, improving your PageSpeed score with Imagify, or compressing multiple images online, take a look at our blog: [https://imagify.io/blog/](https://imagify.io/blog/)
|
77 |
|
78 |
+
It’s packed with advice on image compression and so much more!
|
79 |
|
80 |
+
*[How to Convert Images to WebP on WordPress with Imagify](https://imagify.io/blog/how-to-convert-images-to-webp/)
|
81 |
|
82 |
+
*[How to Optimize Images on WordPress for Performance and SEO](https://imagify.io/blog/image-optimization-manual-for-wordpress/)
|
83 |
|
84 |
+
*[How to Reduce Image Size Without Losing Quality (and Save Space)](https://imagify.io/blog/reduce-image-size-without-losing-quality/)
|
85 |
+
|
86 |
+
*[How to Resize and Compress Multiple Images Online (Easy Methods)](https://imagify.io/blog/how-to-resize-compress-multiple-images-online/)
|
87 |
+
|
88 |
+
*[How to Make Photos Load Faster on WordPress: 6 Key Tactics](https://imagify.io/blog/how-to-make-photos-load-faster-wordpress/)
|
89 |
+
|
90 |
+
*[How to Optimize Images for Page Speed (and Google)](https://imagify.io/blog/optimize-images-page-speed-google/)
|
91 |
+
|
92 |
+
= Who Are We? =
|
93 |
+
|
94 |
+
We are [WP Media](https://wp-media.me/), the company behind WP Rocket, the best caching plugin for WordPress.
|
95 |
|
96 |
Our mission is to improve the web, we are making it faster with [WP Rocket](https://wp-rocket.me/) and lighter with Imagify.
|
97 |
|
98 |
+
= Get In Touch! =
|
99 |
|
100 |
* Website: [Imagify.io](https://imagify.io)
|
101 |
* Contact Us: [https://imagify.io/contact](https://imagify.io/contact)
|
103 |
|
104 |
= Related Plugins =
|
105 |
* [WP Rocket](https://wp-rocket.me/): Best caching plugin to speed-up your WordPress website.
|
106 |
+
* [Lazy Load](https://wordpress.org/plugins/rocket-lazy-load/): Best Lazy Load script to reduce the number of HTTP requests and improves the website's loading time.
|
107 |
|
108 |
License: GPLv2 or later
|
109 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
123 |
|
124 |
== Frequently Asked Questions ==
|
125 |
|
126 |
+
= How can I measure the impact of Imagify on speed score? =
|
127 |
+
|
128 |
+
You can use GTMetrix and Google PageSpeed Insights to check the relevant suggestions. It is recommended to test the following metrics before and after the image optimization:
|
129 |
+
|
130 |
+
* Total Page Size (GTMetrix)
|
131 |
+
* Optimize images (GTMetrix)
|
132 |
+
* Serve images in next-gen formats (PageSpeed Insights)
|
133 |
+
* Efficiently encode images (PageSpeed Insights)
|
134 |
+
|
135 |
+
= What makes Imagify better than other image optimizer tools? =
|
136 |
+
|
137 |
+
Imagify is an extremely powerful image optimizer: our advanced compressing algorithm will compress images, reduce their weight without sacrificing their quality.
|
138 |
+
|
139 |
+
Imagify is also super easy to use. Thanks to its intuitive design, you can easily get familiar with the interface and services without thinking about it.
|
140 |
+
|
141 |
+
And our dedicated customer support will help you fix any issue with your image optimizing process. Support is available via contact form, either on our website, or directly on your Imagify plugin settings page.
|
142 |
+
|
143 |
+
= How many websites can I optimize with Imagify? =
|
144 |
+
|
145 |
+
You can use Imagify on as many websites as you wish. Your image optimization quota to compress images will be shared evenly across all of the websites.
|
146 |
+
|
147 |
+
If you need more control over how your Imagify subscription is used, you should create sub-accounts to allocate a quota for each.
|
148 |
+
|
149 |
+
= How does the WebP feature work on non-supported browsers? =
|
150 |
+
|
151 |
+
Imagify will deliver images in the original format for browsers that don’t support the next-gen WebP format automatically, so there is nothing further to be done.
|
152 |
+
|
153 |
+
= Is Imagify compatible with NextGEN? =
|
154 |
+
|
155 |
+
Yes, Imagify is fully compatible with NextGEN Gallery, the most popular photo gallery plugin for WordPress. All Imagify optimization features related to NextGEN Gallery images are located and usable within the NextGEN Gallery menus and pages. So when you add images to your NextGEN galleries, you’ll be able to optimize them as well.
|
156 |
+
|
157 |
= Which formats can be optimized? =
|
158 |
|
159 |
+
Imagify can optimize JPG, PNG, PDF files and GIFs (whether animated or not).
|
160 |
+
|
161 |
+
When you optimize JPG, PNG, and GIF files, Imagify will also create WebP versions of your original images and all your thumbnail sizes (if you have this option enabled).
|
162 |
|
163 |
+
= How should I know which image compression level is best for me? =
|
164 |
|
165 |
+
There are three image compression levels available - Normal, Aggressive and Ultra.
|
166 |
|
167 |
+
Normal compression is a "lossless" image optimization. This means there is no loss of image quality after compression.
|
168 |
|
169 |
+
Aggressive and Ultra compression are more powerful, so the picture quality will be somewhat reduced. The weight of the compressed image will be much less.
|
170 |
|
171 |
+
We recommend Aggressive as the best balanced level that reduces the size of the image but does not affect the quality.
|
172 |
|
173 |
+
It would be best, however, to test the 3 levels of compression on a smaller amount of images and see how it affects the quality of your image. Once you see which compression level suits your needs, you can easily run the others via Bulk optimization or Media Library page.
|
174 |
|
175 |
=How does the optimization process work?=
|
176 |
|
177 |
+
The image optimization process is performed on our servers. Once done, Imagify returns the optimized image to your server. We do not edit images’ titles or any other information, so there is nothing further to be done on your end than to compress images. Your original images will be moved to a dedicated backup folder (just make sure to keep the Backup option active in Imagify settings).
|
178 |
|
179 |
=How long are images stored by Imagify?=
|
180 |
|
181 |
+
Once your images have been optimized via the WP plugin, compressed images stay on your end forever (even if you delete the Imagify account).
|
182 |
|
183 |
+
During the optimization process, compressed images sent via the API or WordPress plugin are stored for one hour on our server (they are already sent back to your site and stay there safely).
|
184 |
|
185 |
+
Using the online application, compressed images are stored for 24 hours (with a free account) and for unlimited time if you have a paid subscription.
|
186 |
|
187 |
=Can I restore images after compression?=
|
188 |
|
194 |
|
195 |
=If I use Imagify, do I need to continue optimizing and resizing my images with Photoshop?=
|
196 |
|
197 |
+
Do not waste your time resizing and optimizing your images in Photoshop. Imagify takes care of everything to compress your images!
|
198 |
|
199 |
=Is the EXIF data of images removed?=
|
200 |
|
201 |
+
By default EXIF data is removed. It is possible to keep it with the WordPress plugin by enabling the option in the Imagify Settings page.
|
202 |
|
203 |
=I used Kraken, Optimus, EWWW or WP Smush, will Imagify further optimize my images?=
|
204 |
|
206 |
|
207 |
= Will the original images be deleted? =
|
208 |
|
209 |
+
No. Imagify automatically replaces the original images with an optimized image. The backup option allows you to keep the original images and restore them with one click.
|
210 |
|
211 |
= Is it possible to re-optimize images with a different level? =
|
212 |
|
213 |
+
Yes. By activating the backup option in the plugin, you can re-optimize each compressed image with a different image compression level.
|
214 |
|
215 |
= What happens when the plugin is disabled? =
|
216 |
|
217 |
When the plugin is disabled, your existing images remain optimized. Backups of the original images are still available if you have enabled the images backup option.
|
218 |
|
219 |
+
= On which web hosts can the plugin be used? =
|
220 |
|
221 |
The plugin can be used on all hosts including "managed hosting" providers like WP Engine.
|
222 |
|
223 |
+
= Is Imagify compatible with Multi-Site? =
|
224 |
|
225 |
Yes, Imagify is 100% compatible with multi-site.
|
226 |
|
227 |
+
= Can we use Imagify on WordPress.com? =
|
228 |
|
229 |
+
It is possible to use the Imagify plugin on WordPress.com if you have a Business account.
|
230 |
|
231 |
=Do you offer support?=
|
232 |
|
233 |
+
Yes, the Imagify team offers full email support for image optimization questions. You can contact us via [https://imagify.io/contact/](https://imagify.io/contact/).
|
234 |
|
235 |
+
= When is support available? =
|
236 |
|
237 |
+
Our support is currently available Monday-Friday 8AM-10PM CET. We answer every email so you can expect the answer from us within 24h max (unless during the weekends).
|
238 |
|
239 |
=Is registration free?=
|
240 |
|
241 |
+
Yes, and no credit card is required.
|
242 |
|
243 |
+
= Do you offer a trial version? =
|
244 |
|
245 |
+
No. However, you get 20MB of quota per month for free to optimize your images (around 200 images).
|
246 |
|
247 |
== Screenshots ==
|
248 |
|
255 |
4. Other Media Page
|
256 |
|
257 |
== Changelog ==
|
258 |
+
= 1.10 - 2021/07/15 =
|
259 |
+
* The plugin minimum compatible versions are now PHP 7.0 and WordPress 5.3
|
260 |
+
* Enhancement: Correctly display WordPress cover blocks when WebP and picture tag replacement is enabled (#546)
|
261 |
+
* Enhancement: Update our jQuery code to be compatible with the new jQuery version included in WordPress (#545)
|
262 |
+
* 3rd party compatibility: Correctly display WooCommerce variable products images when WebP and picture tag replacement is enabled (#495)
|
263 |
+
* Bugfix: Prevent nested picture tags when picture tag replacement is enabled (#537)
|
264 |
+
* Bugfix: Prevent a fatal error related to get_current_screen() in some cases (#567)
|
265 |
+
* Bugfix: Fixes some display issues related to the promotions in the checkout process (#556, #557)
|
266 |
+
* Bugfix: Fixes some display issues on the settings & bulk optimization pages on mobile (#566)
|
267 |
+
* Bugfix: Prevent PHP warning in some cases on the bulk optimization process (#565)
|
268 |
+
* Bugfix: Prevent PHP notice in somes cases for the $images_count variable (#573)
|
269 |
+
|
270 |
= 1.9.14 =
|
271 |
* Fix: cURL not connecting to Imagify API when using PHP 8.
|
272 |
* Fix: Display issue in Chrome on scrollable check groups on Imagify admin page.
|
279 |
|
280 |
= 1.9.11 - 2020/09/09 =
|
281 |
* Fix: Fix settings error on multi-sites with WordPress 5.5
|
282 |
+
* Fix: Write the correct conf file for use with WebP rewrites on nginx
|
283 |
* Improvement: Namespace composer dependencies to avoid possible naming collisions.
|
284 |
+
* Security: Add blank index.php to imagify-created backup folders to disable public access.
|
285 |
|
286 |
= 1.9.10 - 2020/05/26 =
|
287 |
* Fix: Correctly optimize thumbnails during auto-optimization of image upload
|
293 |
* Fix: php notices that could happen when optimizing.
|
294 |
|
295 |
= 1.9.8.1 - 2019/11/15 =
|
296 |
+
* Fix: WebP image not showing when using the `<picture>` method and the original `<img/>` does not have a `srcset` attribute.
|
297 |
* Fix: a fatal error with WP Offload Media 2.3.
|
298 |
|
299 |
= 1.9.8 - 2019/11/11 =
|
301 |
* New: among other things, WordPress 5.3 automatically resizes large images on upload, using a predefined threshold value that can be changed only by filter (no setting fields are provided). Imagify’s "Resize larger images" setting field is now used to tweak this threshold.
|
302 |
* Caution: to be able to work on WordPress 5.3, some adjustments have been made to our compatibility with Enable Media Replace and Regenerate Thumbnails. However, these plugins must be updated to work with WordPress 5.3: do not use them until then.
|
303 |
* Improvement: moved the `width` and `height` attributes from the `<picture>` tag to the `<img>` tag to be valid HTML markup.
|
304 |
+
* Fix: added a missing descriptor in `srcset` attribute when using `<picture>` tags to display WebP images. This should also fix an issue with LasyLoad.
|
305 |
* Fix: fixed an issue with the user capacity used for "Other Media" menu item.
|
306 |
* Fix: a php notice `stripos(): Non-string needles will be interpreted as strings in the future.`.
|
307 |
|
311 |
* Fix: display the "Welcome" banner correctly when it is shown on the WP Rocket’s settings page.
|
312 |
|
313 |
= 1.9.6 - 2019/07/22 =
|
314 |
+
* Improvement: now images that are "already optimized" can also get WebP versions.
|
315 |
* Fix: progress bar height in the admin bar for Chrome and Safari.
|
316 |
|
317 |
= 1.9.5 - 2019/07/16 =
|
318 |
* Improvement: Basic Authentication support. If it does not work automatically, you can still define the constants `IMAGIFY_AUTH_USER` and `IMAGIFY_AUTH_PASSWORD` in your `wp-config.php` file.
|
319 |
+
* Improvement: WebP images are not created for animated gif images by default anymore. Use the filter `imagify_pre_can_create_webp_version` if you still want to create an unanimated WebP version of them.
|
320 |
+
* Improvement: when creating WebP images from the settings page, we made more clear when all the images are missing a backup copy.
|
321 |
* Improvement: clear the 5 minutes data cache when buying quota from the plugin.
|
322 |
+
* Improvement: when displaying WebP images with the `<picture>` tag, allow to use relative URLs (starting with `/`).
|
323 |
|
324 |
= 1.9.4 - 2019/07/10 =
|
325 |
+
* Improvement: if a WebP image is larger than its non-webp version, it is now possible to not keep it. This can be done by using the filter `imagify_keep_large_webp`.
|
326 |
* Improvement: compatibility with Pressable.
|
327 |
* Improvement: renamed a php class to prevent some hosts to wrongly flag it as "suspicious" and trigger a fatal error.
|
328 |
* Improvement: better compatibility with WP Real Media Library plugin.
|
329 |
+
* Fix: rewrite rules for WebP could not work on some servers.
|
330 |
+
* Fix: when using `<picture>` tags for WebP, some attributes could disappear if they were written on multiple lines.
|
331 |
* Fix: the bulk method would not work in the NextGen Gallery list.
|
332 |
* Fix: php notice `Trying to get property "namespace" for a non object`.
|
333 |
|
335 |
* Fix: conflict with plugins using an ancient version of Composer.
|
336 |
|
337 |
= 1.9.3 - 2019/06/17 =
|
338 |
+
* Improvement: better compatibility with CDNs when displaying WebP images with `<picture>` tags. There is now a new setting field to fill in the CDN URL in use.
|
339 |
* Improvement: don’t use Heartbeat anymore. This speeds up the optimization process and prevents other plugins to break everything when they remove Heartbeat.
|
340 |
* Fix: a fatal error upon plugin deactivation.
|
341 |
* Fix: an occasional fatal error preventing the optimization process to work.
|
348 |
* Fix: don’t display support bubble anymore.
|
349 |
|
350 |
= 1.9.1 - 2019/05/09 =
|
351 |
+
* Improvement: prevent "Generating missing WebP versions" being stuck at 0% in the settings page by displaying a "done/total" label instead.
|
352 |
* Improvement: improved our "re-registering" of the Heartbeat library, that some plugins may deactivate.
|
353 |
|
354 |
= 1.9.0 - 2019/05/06 =
|
355 |
+
* New: WebP support. For each image or thumbnail, Imagify can create a WebP version of it. But since creating these images without using them does not make really sense, Imagify can also display your WebP images on your site. All of this can be enabled in the settings. For the images that are already optimized, you get the possibility to create the WebP versions separately (one by one or in the settings page), but only if you kept a backup copy of the original images.
|
356 |
* Improvement: the optimization process has been entirely rebuilt. This new process allows you to optimize as many thumbnail sizes that you want. It also implies that many classes, functions, and hooks have been deprecated.
|
357 |
* Improvement: compatibility with Flywheel.
|
358 |
* Improvement: some error messages are now more accurate.
|
vendor/autoload.php
CHANGED
@@ -4,4 +4,4 @@
|
|
4 |
|
5 |
require_once __DIR__ . '/composer/autoload_real.php';
|
6 |
|
7 |
-
return
|
4 |
|
5 |
require_once __DIR__ . '/composer/autoload_real.php';
|
6 |
|
7 |
+
return ComposerAutoloaderInit27c2f21fb0be1f8c2ef63f80977ab942::getLoader();
|
vendor/composer/autoload_classmap.php
CHANGED
@@ -6,175 +6,7 @@ $vendorDir = dirname(dirname(__FILE__));
|
|
6 |
$baseDir = dirname($vendorDir);
|
7 |
|
8 |
return array(
|
9 |
-
'Composer\\Installers\\AglInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/AglInstaller.php',
|
10 |
-
'Composer\\Installers\\AimeosInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/AimeosInstaller.php',
|
11 |
-
'Composer\\Installers\\AnnotateCmsInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/AnnotateCmsInstaller.php',
|
12 |
-
'Composer\\Installers\\AsgardInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/AsgardInstaller.php',
|
13 |
-
'Composer\\Installers\\AttogramInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/AttogramInstaller.php',
|
14 |
-
'Composer\\Installers\\BaseInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/BaseInstaller.php',
|
15 |
-
'Composer\\Installers\\BitrixInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/BitrixInstaller.php',
|
16 |
-
'Composer\\Installers\\BonefishInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/BonefishInstaller.php',
|
17 |
-
'Composer\\Installers\\CakePHPInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/CakePHPInstaller.php',
|
18 |
-
'Composer\\Installers\\ChefInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/ChefInstaller.php',
|
19 |
-
'Composer\\Installers\\CiviCrmInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/CiviCrmInstaller.php',
|
20 |
-
'Composer\\Installers\\ClanCatsFrameworkInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/ClanCatsFrameworkInstaller.php',
|
21 |
-
'Composer\\Installers\\CockpitInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/CockpitInstaller.php',
|
22 |
-
'Composer\\Installers\\CodeIgniterInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/CodeIgniterInstaller.php',
|
23 |
-
'Composer\\Installers\\Concrete5Installer' => $vendorDir . '/composer/installers/src/Composer/Installers/Concrete5Installer.php',
|
24 |
-
'Composer\\Installers\\CraftInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/CraftInstaller.php',
|
25 |
-
'Composer\\Installers\\CroogoInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/CroogoInstaller.php',
|
26 |
-
'Composer\\Installers\\DecibelInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/DecibelInstaller.php',
|
27 |
-
'Composer\\Installers\\DframeInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/DframeInstaller.php',
|
28 |
-
'Composer\\Installers\\DokuWikiInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/DokuWikiInstaller.php',
|
29 |
-
'Composer\\Installers\\DolibarrInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/DolibarrInstaller.php',
|
30 |
-
'Composer\\Installers\\DrupalInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/DrupalInstaller.php',
|
31 |
-
'Composer\\Installers\\ElggInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/ElggInstaller.php',
|
32 |
-
'Composer\\Installers\\EliasisInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/EliasisInstaller.php',
|
33 |
-
'Composer\\Installers\\ExpressionEngineInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/ExpressionEngineInstaller.php',
|
34 |
-
'Composer\\Installers\\EzPlatformInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/EzPlatformInstaller.php',
|
35 |
-
'Composer\\Installers\\FuelInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/FuelInstaller.php',
|
36 |
-
'Composer\\Installers\\FuelphpInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/FuelphpInstaller.php',
|
37 |
-
'Composer\\Installers\\GravInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/GravInstaller.php',
|
38 |
-
'Composer\\Installers\\HuradInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/HuradInstaller.php',
|
39 |
-
'Composer\\Installers\\ImageCMSInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/ImageCMSInstaller.php',
|
40 |
-
'Composer\\Installers\\Installer' => $vendorDir . '/composer/installers/src/Composer/Installers/Installer.php',
|
41 |
-
'Composer\\Installers\\ItopInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/ItopInstaller.php',
|
42 |
-
'Composer\\Installers\\JoomlaInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/JoomlaInstaller.php',
|
43 |
-
'Composer\\Installers\\KanboardInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/KanboardInstaller.php',
|
44 |
-
'Composer\\Installers\\KirbyInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/KirbyInstaller.php',
|
45 |
-
'Composer\\Installers\\KnownInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/KnownInstaller.php',
|
46 |
-
'Composer\\Installers\\KodiCMSInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/KodiCMSInstaller.php',
|
47 |
-
'Composer\\Installers\\KohanaInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/KohanaInstaller.php',
|
48 |
-
'Composer\\Installers\\LanManagementSystemInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/LanManagementSystemInstaller.php',
|
49 |
-
'Composer\\Installers\\LaravelInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/LaravelInstaller.php',
|
50 |
-
'Composer\\Installers\\LavaLiteInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/LavaLiteInstaller.php',
|
51 |
-
'Composer\\Installers\\LithiumInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/LithiumInstaller.php',
|
52 |
-
'Composer\\Installers\\MODULEWorkInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/MODULEWorkInstaller.php',
|
53 |
-
'Composer\\Installers\\MODXEvoInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/MODXEvoInstaller.php',
|
54 |
-
'Composer\\Installers\\MagentoInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/MagentoInstaller.php',
|
55 |
-
'Composer\\Installers\\MajimaInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/MajimaInstaller.php',
|
56 |
-
'Composer\\Installers\\MakoInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/MakoInstaller.php',
|
57 |
-
'Composer\\Installers\\MantisBTInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/MantisBTInstaller.php',
|
58 |
-
'Composer\\Installers\\MauticInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/MauticInstaller.php',
|
59 |
-
'Composer\\Installers\\MayaInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/MayaInstaller.php',
|
60 |
-
'Composer\\Installers\\MediaWikiInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/MediaWikiInstaller.php',
|
61 |
-
'Composer\\Installers\\MicroweberInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/MicroweberInstaller.php',
|
62 |
-
'Composer\\Installers\\ModxInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/ModxInstaller.php',
|
63 |
-
'Composer\\Installers\\MoodleInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/MoodleInstaller.php',
|
64 |
-
'Composer\\Installers\\OctoberInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/OctoberInstaller.php',
|
65 |
-
'Composer\\Installers\\OntoWikiInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/OntoWikiInstaller.php',
|
66 |
-
'Composer\\Installers\\OsclassInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/OsclassInstaller.php',
|
67 |
-
'Composer\\Installers\\OxidInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/OxidInstaller.php',
|
68 |
-
'Composer\\Installers\\PPIInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/PPIInstaller.php',
|
69 |
-
'Composer\\Installers\\PhiftyInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/PhiftyInstaller.php',
|
70 |
-
'Composer\\Installers\\PhpBBInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/PhpBBInstaller.php',
|
71 |
-
'Composer\\Installers\\PimcoreInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/PimcoreInstaller.php',
|
72 |
-
'Composer\\Installers\\PiwikInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/PiwikInstaller.php',
|
73 |
-
'Composer\\Installers\\PlentymarketsInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/PlentymarketsInstaller.php',
|
74 |
-
'Composer\\Installers\\Plugin' => $vendorDir . '/composer/installers/src/Composer/Installers/Plugin.php',
|
75 |
-
'Composer\\Installers\\PortoInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/PortoInstaller.php',
|
76 |
-
'Composer\\Installers\\PrestashopInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/PrestashopInstaller.php',
|
77 |
-
'Composer\\Installers\\ProcessWireInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/ProcessWireInstaller.php',
|
78 |
-
'Composer\\Installers\\PuppetInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/PuppetInstaller.php',
|
79 |
-
'Composer\\Installers\\PxcmsInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/PxcmsInstaller.php',
|
80 |
-
'Composer\\Installers\\RadPHPInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/RadPHPInstaller.php',
|
81 |
-
'Composer\\Installers\\ReIndexInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/ReIndexInstaller.php',
|
82 |
-
'Composer\\Installers\\Redaxo5Installer' => $vendorDir . '/composer/installers/src/Composer/Installers/Redaxo5Installer.php',
|
83 |
-
'Composer\\Installers\\RedaxoInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/RedaxoInstaller.php',
|
84 |
-
'Composer\\Installers\\RoundcubeInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/RoundcubeInstaller.php',
|
85 |
-
'Composer\\Installers\\SMFInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/SMFInstaller.php',
|
86 |
-
'Composer\\Installers\\ShopwareInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/ShopwareInstaller.php',
|
87 |
-
'Composer\\Installers\\SilverStripeInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/SilverStripeInstaller.php',
|
88 |
-
'Composer\\Installers\\SiteDirectInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/SiteDirectInstaller.php',
|
89 |
-
'Composer\\Installers\\StarbugInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/StarbugInstaller.php',
|
90 |
-
'Composer\\Installers\\SyDESInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/SyDESInstaller.php',
|
91 |
-
'Composer\\Installers\\SyliusInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/SyliusInstaller.php',
|
92 |
-
'Composer\\Installers\\Symfony1Installer' => $vendorDir . '/composer/installers/src/Composer/Installers/Symfony1Installer.php',
|
93 |
-
'Composer\\Installers\\TYPO3CmsInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/TYPO3CmsInstaller.php',
|
94 |
-
'Composer\\Installers\\TYPO3FlowInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/TYPO3FlowInstaller.php',
|
95 |
-
'Composer\\Installers\\TaoInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/TaoInstaller.php',
|
96 |
-
'Composer\\Installers\\TheliaInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/TheliaInstaller.php',
|
97 |
-
'Composer\\Installers\\TuskInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/TuskInstaller.php',
|
98 |
-
'Composer\\Installers\\UserFrostingInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/UserFrostingInstaller.php',
|
99 |
-
'Composer\\Installers\\VanillaInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/VanillaInstaller.php',
|
100 |
-
'Composer\\Installers\\VgmcpInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/VgmcpInstaller.php',
|
101 |
-
'Composer\\Installers\\WHMCSInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/WHMCSInstaller.php',
|
102 |
-
'Composer\\Installers\\WolfCMSInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/WolfCMSInstaller.php',
|
103 |
-
'Composer\\Installers\\WordPressInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/WordPressInstaller.php',
|
104 |
-
'Composer\\Installers\\YawikInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/YawikInstaller.php',
|
105 |
-
'Composer\\Installers\\ZendInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/ZendInstaller.php',
|
106 |
-
'Composer\\Installers\\ZikulaInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/ZikulaInstaller.php',
|
107 |
-
'Dangoodman\\ComposerForWordpress\\ComposerForWordpress' => $vendorDir . '/dangoodman/composer-for-wordpress/ComposerForWordpress.php',
|
108 |
'Imagify' => $baseDir . '/inc/classes/class-imagify.php',
|
109 |
-
'Imagify\\Auth\\Basic' => $baseDir . '/classes/Auth/Basic.php',
|
110 |
-
'Imagify\\Bulk\\AbstractBulk' => $baseDir . '/classes/Bulk/AbstractBulk.php',
|
111 |
-
'Imagify\\Bulk\\BulkInterface' => $baseDir . '/classes/Bulk/BulkInterface.php',
|
112 |
-
'Imagify\\Bulk\\CustomFolders' => $baseDir . '/classes/Bulk/CustomFolders.php',
|
113 |
-
'Imagify\\Bulk\\Noop' => $baseDir . '/classes/Bulk/Noop.php',
|
114 |
-
'Imagify\\Bulk\\WP' => $baseDir . '/classes/Bulk/WP.php',
|
115 |
-
'Imagify\\CDN\\PushCDNInterface' => $baseDir . '/classes/CDN/PushCDNInterface.php',
|
116 |
-
'Imagify\\Context\\AbstractContext' => $baseDir . '/classes/Context/AbstractContext.php',
|
117 |
-
'Imagify\\Context\\ContextInterface' => $baseDir . '/classes/Context/ContextInterface.php',
|
118 |
-
'Imagify\\Context\\CustomFolders' => $baseDir . '/classes/Context/CustomFolders.php',
|
119 |
-
'Imagify\\Context\\Noop' => $baseDir . '/classes/Context/Noop.php',
|
120 |
-
'Imagify\\Context\\WP' => $baseDir . '/classes/Context/WP.php',
|
121 |
-
'Imagify\\DB\\DBInterface' => $baseDir . '/classes/DB/DBInterface.php',
|
122 |
-
'Imagify\\Deprecated\\Traits\\Media\\CustomFoldersDeprecatedTrait' => $baseDir . '/inc/deprecated/Traits/Media/CustomFoldersDeprecatedTrait.php',
|
123 |
-
'Imagify\\Deprecated\\Traits\\Media\\NGGDeprecatedTrait' => $baseDir . '/inc/deprecated/Traits/Media/NGGDeprecatedTrait.php',
|
124 |
-
'Imagify\\Deprecated\\Traits\\Media\\NoopDeprecatedTrait' => $baseDir . '/inc/deprecated/Traits/Media/NoopDeprecatedTrait.php',
|
125 |
-
'Imagify\\Deprecated\\Traits\\Media\\WPDeprecatedTrait' => $baseDir . '/inc/deprecated/Traits/Media/WPDeprecatedTrait.php',
|
126 |
-
'Imagify\\Deprecated\\Traits\\Optimization\\Process\\AbstractProcessDeprecatedTrait' => $baseDir . '/inc/deprecated/Traits/Optimization/Process/AbstractProcessDeprecatedTrait.php',
|
127 |
-
'Imagify\\Imagifybeat\\Actions' => $baseDir . '/classes/Imagifybeat/Actions.php',
|
128 |
-
'Imagify\\Imagifybeat\\Core' => $baseDir . '/classes/Imagifybeat/Core.php',
|
129 |
-
'Imagify\\Job\\MediaOptimization' => $baseDir . '/classes/Job/MediaOptimization.php',
|
130 |
-
'Imagify\\Media\\AbstractMedia' => $baseDir . '/classes/Media/AbstractMedia.php',
|
131 |
-
'Imagify\\Media\\CustomFolders' => $baseDir . '/classes/Media/CustomFolders.php',
|
132 |
-
'Imagify\\Media\\MediaInterface' => $baseDir . '/classes/Media/MediaInterface.php',
|
133 |
-
'Imagify\\Media\\Noop' => $baseDir . '/classes/Media/Noop.php',
|
134 |
-
'Imagify\\Media\\WP' => $baseDir . '/classes/Media/WP.php',
|
135 |
-
'Imagify\\Optimization\\Data\\AbstractData' => $baseDir . '/classes/Optimization/Data/AbstractData.php',
|
136 |
-
'Imagify\\Optimization\\Data\\CustomFolders' => $baseDir . '/classes/Optimization/Data/CustomFolders.php',
|
137 |
-
'Imagify\\Optimization\\Data\\DataInterface' => $baseDir . '/classes/Optimization/Data/DataInterface.php',
|
138 |
-
'Imagify\\Optimization\\Data\\Noop' => $baseDir . '/classes/Optimization/Data/Noop.php',
|
139 |
-
'Imagify\\Optimization\\Data\\WP' => $baseDir . '/classes/Optimization/Data/WP.php',
|
140 |
-
'Imagify\\Optimization\\File' => $baseDir . '/classes/Optimization/File.php',
|
141 |
-
'Imagify\\Optimization\\Process\\AbstractProcess' => $baseDir . '/classes/Optimization/Process/AbstractProcess.php',
|
142 |
-
'Imagify\\Optimization\\Process\\CustomFolders' => $baseDir . '/classes/Optimization/Process/CustomFolders.php',
|
143 |
-
'Imagify\\Optimization\\Process\\Noop' => $baseDir . '/classes/Optimization/Process/Noop.php',
|
144 |
-
'Imagify\\Optimization\\Process\\ProcessInterface' => $baseDir . '/classes/Optimization/Process/ProcessInterface.php',
|
145 |
-
'Imagify\\Optimization\\Process\\WP' => $baseDir . '/classes/Optimization/Process/WP.php',
|
146 |
-
'Imagify\\Stats\\OptimizedMediaWithoutWebp' => $baseDir . '/classes/Stats/OptimizedMediaWithoutWebp.php',
|
147 |
-
'Imagify\\Stats\\StatInterface' => $baseDir . '/classes/Stats/StatInterface.php',
|
148 |
-
'Imagify\\ThirdParty\\AS3CF\\CDN\\WP\\AS3' => $baseDir . '/inc/3rd-party/amazon-s3-and-cloudfront/classes/CDN/WP/AS3.php',
|
149 |
-
'Imagify\\ThirdParty\\AS3CF\\Main' => $baseDir . '/inc/3rd-party/amazon-s3-and-cloudfront/classes/Main.php',
|
150 |
-
'Imagify\\ThirdParty\\EnableMediaReplace\\Main' => $baseDir . '/inc/3rd-party/enable-media-replace/classes/Main.php',
|
151 |
-
'Imagify\\ThirdParty\\FormidablePro\\Main' => $baseDir . '/inc/3rd-party/formidable-pro/classes/Main.php',
|
152 |
-
'Imagify\\ThirdParty\\NGG\\Bulk\\NGG' => $baseDir . '/inc/3rd-party/nextgen-gallery/classes/Bulk/NGG.php',
|
153 |
-
'Imagify\\ThirdParty\\NGG\\Context\\NGG' => $baseDir . '/inc/3rd-party/nextgen-gallery/classes/Context/NGG.php',
|
154 |
-
'Imagify\\ThirdParty\\NGG\\DB' => $baseDir . '/inc/3rd-party/nextgen-gallery/classes/DB.php',
|
155 |
-
'Imagify\\ThirdParty\\NGG\\DynamicThumbnails' => $baseDir . '/inc/3rd-party/nextgen-gallery/classes/DynamicThumbnails.php',
|
156 |
-
'Imagify\\ThirdParty\\NGG\\Main' => $baseDir . '/inc/3rd-party/nextgen-gallery/classes/Main.php',
|
157 |
-
'Imagify\\ThirdParty\\NGG\\Media\\NGG' => $baseDir . '/inc/3rd-party/nextgen-gallery/classes/Media/NGG.php',
|
158 |
-
'Imagify\\ThirdParty\\NGG\\NGGStorage' => $baseDir . '/inc/3rd-party/nextgen-gallery/classes/NGGStorage.php',
|
159 |
-
'Imagify\\ThirdParty\\NGG\\Optimization\\Data\\NGG' => $baseDir . '/inc/3rd-party/nextgen-gallery/classes/Optimization/Data/NGG.php',
|
160 |
-
'Imagify\\ThirdParty\\NGG\\Optimization\\Process\\NGG' => $baseDir . '/inc/3rd-party/nextgen-gallery/classes/Optimization/Process/NGG.php',
|
161 |
-
'Imagify\\ThirdParty\\RegenerateThumbnails\\Main' => $baseDir . '/inc/3rd-party/regenerate-thumbnails/classes/Main.php',
|
162 |
-
'Imagify\\ThirdParty\\WPRocket\\Main' => $baseDir . '/inc/3rd-party/wp-rocket/classes/Main.php',
|
163 |
-
'Imagify\\Traits\\InstanceGetterTrait' => $baseDir . '/classes/Traits/InstanceGetterTrait.php',
|
164 |
-
'Imagify\\Traits\\MediaRowTrait' => $baseDir . '/classes/Traits/MediaRowTrait.php',
|
165 |
-
'Imagify\\Webp\\Apache' => $baseDir . '/classes/Webp/Apache.php',
|
166 |
-
'Imagify\\Webp\\Display' => $baseDir . '/classes/Webp/Display.php',
|
167 |
-
'Imagify\\Webp\\IIS' => $baseDir . '/classes/Webp/IIS.php',
|
168 |
-
'Imagify\\Webp\\Picture\\Display' => $baseDir . '/classes/Webp/Picture/Display.php',
|
169 |
-
'Imagify\\Webp\\RewriteRules\\Apache' => $baseDir . '/classes/Webp/RewriteRules/Apache.php',
|
170 |
-
'Imagify\\Webp\\RewriteRules\\Display' => $baseDir . '/classes/Webp/RewriteRules/Display.php',
|
171 |
-
'Imagify\\Webp\\RewriteRules\\IIS' => $baseDir . '/classes/Webp/RewriteRules/IIS.php',
|
172 |
-
'Imagify\\Webp\\RewriteRules\\Nginx' => $baseDir . '/classes/Webp/RewriteRules/Nginx.php',
|
173 |
-
'Imagify\\WriteFile\\AbstractApacheDirConfFile' => $baseDir . '/classes/WriteFile/AbstractApacheDirConfFile.php',
|
174 |
-
'Imagify\\WriteFile\\AbstractIISDirConfFile' => $baseDir . '/classes/WriteFile/AbstractIISDirConfFile.php',
|
175 |
-
'Imagify\\WriteFile\\AbstractNginxDirConfFile' => $baseDir . '/classes/WriteFile/AbstractNginxDirConfFile.php',
|
176 |
-
'Imagify\\WriteFile\\AbstractWriteDirConfFile' => $baseDir . '/classes/WriteFile/AbstractWriteDirConfFile.php',
|
177 |
-
'Imagify\\WriteFile\\WriteFileInterface' => $baseDir . '/classes/WriteFile/WriteFileInterface.php',
|
178 |
'Imagify_AS3CF_Attachment' => $baseDir . '/inc/deprecated/classes/class-imagify-as3cf-attachment.php',
|
179 |
'Imagify_AS3CF_Deprecated' => $baseDir . '/inc/deprecated/classes/class-imagify-as3cf-deprecated.php',
|
180 |
'Imagify_Abstract_Attachment' => $baseDir . '/inc/deprecated/classes/class-imagify-abstract-attachment.php',
|
6 |
$baseDir = dirname($vendorDir);
|
7 |
|
8 |
return array(
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9 |
'Imagify' => $baseDir . '/inc/classes/class-imagify.php',
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10 |
'Imagify_AS3CF_Attachment' => $baseDir . '/inc/deprecated/classes/class-imagify-as3cf-attachment.php',
|
11 |
'Imagify_AS3CF_Deprecated' => $baseDir . '/inc/deprecated/classes/class-imagify-as3cf-deprecated.php',
|
12 |
'Imagify_Abstract_Attachment' => $baseDir . '/inc/deprecated/classes/class-imagify-abstract-attachment.php',
|
vendor/composer/autoload_real.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
|
3 |
// autoload_real.php @generated by Composer
|
4 |
|
5 |
-
class
|
6 |
{
|
7 |
private static $loader;
|
8 |
|
@@ -22,23 +22,32 @@ class ComposerAutoloaderInitee5f379dcd1f5ddc8ae5536c97dc2605
|
|
22 |
return self::$loader;
|
23 |
}
|
24 |
|
25 |
-
spl_autoload_register(array('
|
26 |
self::$loader = $loader = new \Composer\AutoloadWPMediaImagifyWordPressPlugin\ClassLoader();
|
27 |
-
spl_autoload_unregister(array('
|
28 |
|
29 |
$useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
|
30 |
if ($useStaticLoader) {
|
31 |
require_once __DIR__ . '/autoload_static.php';
|
32 |
|
33 |
-
call_user_func(\Composer\Autoload\
|
34 |
} else {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
35 |
$classMap = require __DIR__ . '/autoload_classmap.php';
|
36 |
if ($classMap) {
|
37 |
$loader->addClassMap($classMap);
|
38 |
}
|
39 |
}
|
40 |
|
41 |
-
$loader->setClassMapAuthoritative(true);
|
42 |
$loader->register(true);
|
43 |
|
44 |
return $loader;
|
2 |
|
3 |
// autoload_real.php @generated by Composer
|
4 |
|
5 |
+
class ComposerAutoloaderInit27c2f21fb0be1f8c2ef63f80977ab942
|
6 |
{
|
7 |
private static $loader;
|
8 |
|
22 |
return self::$loader;
|
23 |
}
|
24 |
|
25 |
+
spl_autoload_register(array('ComposerAutoloaderInit27c2f21fb0be1f8c2ef63f80977ab942', 'loadClassLoader'), true, true);
|
26 |
self::$loader = $loader = new \Composer\AutoloadWPMediaImagifyWordPressPlugin\ClassLoader();
|
27 |
+
spl_autoload_unregister(array('ComposerAutoloaderInit27c2f21fb0be1f8c2ef63f80977ab942', 'loadClassLoader'));
|
28 |
|
29 |
$useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
|
30 |
if ($useStaticLoader) {
|
31 |
require_once __DIR__ . '/autoload_static.php';
|
32 |
|
33 |
+
call_user_func(\Composer\Autoload\ComposerStaticInit27c2f21fb0be1f8c2ef63f80977ab942::getInitializer($loader));
|
34 |
} else {
|
35 |
+
$map = require __DIR__ . '/autoload_namespaces.php';
|
36 |
+
foreach ($map as $namespace => $path) {
|
37 |
+
$loader->set($namespace, $path);
|
38 |
+
}
|
39 |
+
|
40 |
+
$map = require __DIR__ . '/autoload_psr4.php';
|
41 |
+
foreach ($map as $namespace => $path) {
|
42 |
+
$loader->setPsr4($namespace, $path);
|
43 |
+
}
|
44 |
+
|
45 |
$classMap = require __DIR__ . '/autoload_classmap.php';
|
46 |
if ($classMap) {
|
47 |
$loader->addClassMap($classMap);
|
48 |
}
|
49 |
}
|
50 |
|
|
|
51 |
$loader->register(true);
|
52 |
|
53 |
return $loader;
|
vendor/composer/autoload_static.php
CHANGED
@@ -7,7 +7,7 @@ namespace Composer\Autoload;
|
|
7 |
use Composer\AutoloadWPMediaImagifyWordPressPlugin\ClassLoader as ClassLoaderWPMediaImagifyWordPressPlugin;
|
8 |
|
9 |
|
10 |
-
class
|
11 |
{
|
12 |
public static $prefixLengthsPsr4 = array (
|
13 |
'I' =>
|
@@ -80,175 +80,7 @@ class ComposerStaticInitee5f379dcd1f5ddc8ae5536c97dc2605
|
|
80 |
);
|
81 |
|
82 |
public static $classMap = array (
|
83 |
-
'Composer\\Installers\\AglInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/AglInstaller.php',
|
84 |
-
'Composer\\Installers\\AimeosInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/AimeosInstaller.php',
|
85 |
-
'Composer\\Installers\\AnnotateCmsInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/AnnotateCmsInstaller.php',
|
86 |
-
'Composer\\Installers\\AsgardInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/AsgardInstaller.php',
|
87 |
-
'Composer\\Installers\\AttogramInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/AttogramInstaller.php',
|
88 |
-
'Composer\\Installers\\BaseInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/BaseInstaller.php',
|
89 |
-
'Composer\\Installers\\BitrixInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/BitrixInstaller.php',
|
90 |
-
'Composer\\Installers\\BonefishInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/BonefishInstaller.php',
|
91 |
-
'Composer\\Installers\\CakePHPInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/CakePHPInstaller.php',
|
92 |
-
'Composer\\Installers\\ChefInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/ChefInstaller.php',
|
93 |
-
'Composer\\Installers\\CiviCrmInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/CiviCrmInstaller.php',
|
94 |
-
'Composer\\Installers\\ClanCatsFrameworkInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/ClanCatsFrameworkInstaller.php',
|
95 |
-
'Composer\\Installers\\CockpitInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/CockpitInstaller.php',
|
96 |
-
'Composer\\Installers\\CodeIgniterInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/CodeIgniterInstaller.php',
|
97 |
-
'Composer\\Installers\\Concrete5Installer' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/Concrete5Installer.php',
|
98 |
-
'Composer\\Installers\\CraftInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/CraftInstaller.php',
|
99 |
-
'Composer\\Installers\\CroogoInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/CroogoInstaller.php',
|
100 |
-
'Composer\\Installers\\DecibelInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/DecibelInstaller.php',
|
101 |
-
'Composer\\Installers\\DframeInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/DframeInstaller.php',
|
102 |
-
'Composer\\Installers\\DokuWikiInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/DokuWikiInstaller.php',
|
103 |
-
'Composer\\Installers\\DolibarrInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/DolibarrInstaller.php',
|
104 |
-
'Composer\\Installers\\DrupalInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/DrupalInstaller.php',
|
105 |
-
'Composer\\Installers\\ElggInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/ElggInstaller.php',
|
106 |
-
'Composer\\Installers\\EliasisInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/EliasisInstaller.php',
|
107 |
-
'Composer\\Installers\\ExpressionEngineInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/ExpressionEngineInstaller.php',
|
108 |
-
'Composer\\Installers\\EzPlatformInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/EzPlatformInstaller.php',
|
109 |
-
'Composer\\Installers\\FuelInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/FuelInstaller.php',
|
110 |
-
'Composer\\Installers\\FuelphpInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/FuelphpInstaller.php',
|
111 |
-
'Composer\\Installers\\GravInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/GravInstaller.php',
|
112 |
-
'Composer\\Installers\\HuradInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/HuradInstaller.php',
|
113 |
-
'Composer\\Installers\\ImageCMSInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/ImageCMSInstaller.php',
|
114 |
-
'Composer\\Installers\\Installer' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/Installer.php',
|
115 |
-
'Composer\\Installers\\ItopInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/ItopInstaller.php',
|
116 |
-
'Composer\\Installers\\JoomlaInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/JoomlaInstaller.php',
|
117 |
-
'Composer\\Installers\\KanboardInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/KanboardInstaller.php',
|
118 |
-
'Composer\\Installers\\KirbyInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/KirbyInstaller.php',
|
119 |
-
'Composer\\Installers\\KnownInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/KnownInstaller.php',
|
120 |
-
'Composer\\Installers\\KodiCMSInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/KodiCMSInstaller.php',
|
121 |
-
'Composer\\Installers\\KohanaInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/KohanaInstaller.php',
|
122 |
-
'Composer\\Installers\\LanManagementSystemInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/LanManagementSystemInstaller.php',
|
123 |
-
'Composer\\Installers\\LaravelInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/LaravelInstaller.php',
|
124 |
-
'Composer\\Installers\\LavaLiteInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/LavaLiteInstaller.php',
|
125 |
-
'Composer\\Installers\\LithiumInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/LithiumInstaller.php',
|
126 |
-
'Composer\\Installers\\MODULEWorkInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/MODULEWorkInstaller.php',
|
127 |
-
'Composer\\Installers\\MODXEvoInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/MODXEvoInstaller.php',
|
128 |
-
'Composer\\Installers\\MagentoInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/MagentoInstaller.php',
|
129 |
-
'Composer\\Installers\\MajimaInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/MajimaInstaller.php',
|
130 |
-
'Composer\\Installers\\MakoInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/MakoInstaller.php',
|
131 |
-
'Composer\\Installers\\MantisBTInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/MantisBTInstaller.php',
|
132 |
-
'Composer\\Installers\\MauticInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/MauticInstaller.php',
|
133 |
-
'Composer\\Installers\\MayaInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/MayaInstaller.php',
|
134 |
-
'Composer\\Installers\\MediaWikiInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/MediaWikiInstaller.php',
|
135 |
-
'Composer\\Installers\\MicroweberInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/MicroweberInstaller.php',
|
136 |
-
'Composer\\Installers\\ModxInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/ModxInstaller.php',
|
137 |
-
'Composer\\Installers\\MoodleInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/MoodleInstaller.php',
|
138 |
-
'Composer\\Installers\\OctoberInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/OctoberInstaller.php',
|
139 |
-
'Composer\\Installers\\OntoWikiInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/OntoWikiInstaller.php',
|
140 |
-
'Composer\\Installers\\OsclassInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/OsclassInstaller.php',
|
141 |
-
'Composer\\Installers\\OxidInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/OxidInstaller.php',
|
142 |
-
'Composer\\Installers\\PPIInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/PPIInstaller.php',
|
143 |
-
'Composer\\Installers\\PhiftyInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/PhiftyInstaller.php',
|
144 |
-
'Composer\\Installers\\PhpBBInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/PhpBBInstaller.php',
|
145 |
-
'Composer\\Installers\\PimcoreInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/PimcoreInstaller.php',
|
146 |
-
'Composer\\Installers\\PiwikInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/PiwikInstaller.php',
|
147 |
-
'Composer\\Installers\\PlentymarketsInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/PlentymarketsInstaller.php',
|
148 |
-
'Composer\\Installers\\Plugin' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/Plugin.php',
|
149 |
-
'Composer\\Installers\\PortoInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/PortoInstaller.php',
|
150 |
-
'Composer\\Installers\\PrestashopInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/PrestashopInstaller.php',
|
151 |
-
'Composer\\Installers\\ProcessWireInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/ProcessWireInstaller.php',
|
152 |
-
'Composer\\Installers\\PuppetInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/PuppetInstaller.php',
|
153 |
-
'Composer\\Installers\\PxcmsInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/PxcmsInstaller.php',
|
154 |
-
'Composer\\Installers\\RadPHPInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/RadPHPInstaller.php',
|
155 |
-
'Composer\\Installers\\ReIndexInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/ReIndexInstaller.php',
|
156 |
-
'Composer\\Installers\\Redaxo5Installer' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/Redaxo5Installer.php',
|
157 |
-
'Composer\\Installers\\RedaxoInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/RedaxoInstaller.php',
|
158 |
-
'Composer\\Installers\\RoundcubeInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/RoundcubeInstaller.php',
|
159 |
-
'Composer\\Installers\\SMFInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/SMFInstaller.php',
|
160 |
-
'Composer\\Installers\\ShopwareInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/ShopwareInstaller.php',
|
161 |
-
'Composer\\Installers\\SilverStripeInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/SilverStripeInstaller.php',
|
162 |
-
'Composer\\Installers\\SiteDirectInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/SiteDirectInstaller.php',
|
163 |
-
'Composer\\Installers\\StarbugInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/StarbugInstaller.php',
|
164 |
-
'Composer\\Installers\\SyDESInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/SyDESInstaller.php',
|
165 |
-
'Composer\\Installers\\SyliusInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/SyliusInstaller.php',
|
166 |
-
'Composer\\Installers\\Symfony1Installer' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/Symfony1Installer.php',
|
167 |
-
'Composer\\Installers\\TYPO3CmsInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/TYPO3CmsInstaller.php',
|
168 |
-
'Composer\\Installers\\TYPO3FlowInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/TYPO3FlowInstaller.php',
|
169 |
-
'Composer\\Installers\\TaoInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/TaoInstaller.php',
|
170 |
-
'Composer\\Installers\\TheliaInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/TheliaInstaller.php',
|
171 |
-
'Composer\\Installers\\TuskInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/TuskInstaller.php',
|
172 |
-
'Composer\\Installers\\UserFrostingInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/UserFrostingInstaller.php',
|
173 |
-
'Composer\\Installers\\VanillaInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/VanillaInstaller.php',
|
174 |
-
'Composer\\Installers\\VgmcpInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/VgmcpInstaller.php',
|
175 |
-
'Composer\\Installers\\WHMCSInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/WHMCSInstaller.php',
|
176 |
-
'Composer\\Installers\\WolfCMSInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/WolfCMSInstaller.php',
|
177 |
-
'Composer\\Installers\\WordPressInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/WordPressInstaller.php',
|
178 |
-
'Composer\\Installers\\YawikInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/YawikInstaller.php',
|
179 |
-
'Composer\\Installers\\ZendInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/ZendInstaller.php',
|
180 |
-
'Composer\\Installers\\ZikulaInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/ZikulaInstaller.php',
|
181 |
-
'Dangoodman\\ComposerForWordpress\\ComposerForWordpress' => __DIR__ . '/..' . '/dangoodman/composer-for-wordpress/ComposerForWordpress.php',
|
182 |
'Imagify' => __DIR__ . '/../..' . '/inc/classes/class-imagify.php',
|
183 |
-
'Imagify\\Auth\\Basic' => __DIR__ . '/../..' . '/classes/Auth/Basic.php',
|
184 |
-
'Imagify\\Bulk\\AbstractBulk' => __DIR__ . '/../..' . '/classes/Bulk/AbstractBulk.php',
|
185 |
-
'Imagify\\Bulk\\BulkInterface' => __DIR__ . '/../..' . '/classes/Bulk/BulkInterface.php',
|
186 |
-
'Imagify\\Bulk\\CustomFolders' => __DIR__ . '/../..' . '/classes/Bulk/CustomFolders.php',
|
187 |
-
'Imagify\\Bulk\\Noop' => __DIR__ . '/../..' . '/classes/Bulk/Noop.php',
|
188 |
-
'Imagify\\Bulk\\WP' => __DIR__ . '/../..' . '/classes/Bulk/WP.php',
|
189 |
-
'Imagify\\CDN\\PushCDNInterface' => __DIR__ . '/../..' . '/classes/CDN/PushCDNInterface.php',
|
190 |
-
'Imagify\\Context\\AbstractContext' => __DIR__ . '/../..' . '/classes/Context/AbstractContext.php',
|
191 |
-
'Imagify\\Context\\ContextInterface' => __DIR__ . '/../..' . '/classes/Context/ContextInterface.php',
|
192 |
-
'Imagify\\Context\\CustomFolders' => __DIR__ . '/../..' . '/classes/Context/CustomFolders.php',
|
193 |
-
'Imagify\\Context\\Noop' => __DIR__ . '/../..' . '/classes/Context/Noop.php',
|
194 |
-
'Imagify\\Context\\WP' => __DIR__ . '/../..' . '/classes/Context/WP.php',
|
195 |
-
'Imagify\\DB\\DBInterface' => __DIR__ . '/../..' . '/classes/DB/DBInterface.php',
|
196 |
-
'Imagify\\Deprecated\\Traits\\Media\\CustomFoldersDeprecatedTrait' => __DIR__ . '/../..' . '/inc/deprecated/Traits/Media/CustomFoldersDeprecatedTrait.php',
|
197 |
-
'Imagify\\Deprecated\\Traits\\Media\\NGGDeprecatedTrait' => __DIR__ . '/../..' . '/inc/deprecated/Traits/Media/NGGDeprecatedTrait.php',
|
198 |
-
'Imagify\\Deprecated\\Traits\\Media\\NoopDeprecatedTrait' => __DIR__ . '/../..' . '/inc/deprecated/Traits/Media/NoopDeprecatedTrait.php',
|
199 |
-
'Imagify\\Deprecated\\Traits\\Media\\WPDeprecatedTrait' => __DIR__ . '/../..' . '/inc/deprecated/Traits/Media/WPDeprecatedTrait.php',
|
200 |
-
'Imagify\\Deprecated\\Traits\\Optimization\\Process\\AbstractProcessDeprecatedTrait' => __DIR__ . '/../..' . '/inc/deprecated/Traits/Optimization/Process/AbstractProcessDeprecatedTrait.php',
|
201 |
-
'Imagify\\Imagifybeat\\Actions' => __DIR__ . '/../..' . '/classes/Imagifybeat/Actions.php',
|
202 |
-
'Imagify\\Imagifybeat\\Core' => __DIR__ . '/../..' . '/classes/Imagifybeat/Core.php',
|
203 |
-
'Imagify\\Job\\MediaOptimization' => __DIR__ . '/../..' . '/classes/Job/MediaOptimization.php',
|
204 |
-
'Imagify\\Media\\AbstractMedia' => __DIR__ . '/../..' . '/classes/Media/AbstractMedia.php',
|
205 |
-
'Imagify\\Media\\CustomFolders' => __DIR__ . '/../..' . '/classes/Media/CustomFolders.php',
|
206 |
-
'Imagify\\Media\\MediaInterface' => __DIR__ . '/../..' . '/classes/Media/MediaInterface.php',
|
207 |
-
'Imagify\\Media\\Noop' => __DIR__ . '/../..' . '/classes/Media/Noop.php',
|
208 |
-
'Imagify\\Media\\WP' => __DIR__ . '/../..' . '/classes/Media/WP.php',
|
209 |
-
'Imagify\\Optimization\\Data\\AbstractData' => __DIR__ . '/../..' . '/classes/Optimization/Data/AbstractData.php',
|
210 |
-
'Imagify\\Optimization\\Data\\CustomFolders' => __DIR__ . '/../..' . '/classes/Optimization/Data/CustomFolders.php',
|
211 |
-
'Imagify\\Optimization\\Data\\DataInterface' => __DIR__ . '/../..' . '/classes/Optimization/Data/DataInterface.php',
|
212 |
-
'Imagify\\Optimization\\Data\\Noop' => __DIR__ . '/../..' . '/classes/Optimization/Data/Noop.php',
|
213 |
-
'Imagify\\Optimization\\Data\\WP' => __DIR__ . '/../..' . '/classes/Optimization/Data/WP.php',
|
214 |
-
'Imagify\\Optimization\\File' => __DIR__ . '/../..' . '/classes/Optimization/File.php',
|
215 |
-
'Imagify\\Optimization\\Process\\AbstractProcess' => __DIR__ . '/../..' . '/classes/Optimization/Process/AbstractProcess.php',
|
216 |
-
'Imagify\\Optimization\\Process\\CustomFolders' => __DIR__ . '/../..' . '/classes/Optimization/Process/CustomFolders.php',
|
217 |
-
'Imagify\\Optimization\\Process\\Noop' => __DIR__ . '/../..' . '/classes/Optimization/Process/Noop.php',
|
218 |
-
'Imagify\\Optimization\\Process\\ProcessInterface' => __DIR__ . '/../..' . '/classes/Optimization/Process/ProcessInterface.php',
|
219 |
-
'Imagify\\Optimization\\Process\\WP' => __DIR__ . '/../..' . '/classes/Optimization/Process/WP.php',
|
220 |
-
'Imagify\\Stats\\OptimizedMediaWithoutWebp' => __DIR__ . '/../..' . '/classes/Stats/OptimizedMediaWithoutWebp.php',
|
221 |
-
'Imagify\\Stats\\StatInterface' => __DIR__ . '/../..' . '/classes/Stats/StatInterface.php',
|
222 |
-
'Imagify\\ThirdParty\\AS3CF\\CDN\\WP\\AS3' => __DIR__ . '/../..' . '/inc/3rd-party/amazon-s3-and-cloudfront/classes/CDN/WP/AS3.php',
|
223 |
-
'Imagify\\ThirdParty\\AS3CF\\Main' => __DIR__ . '/../..' . '/inc/3rd-party/amazon-s3-and-cloudfront/classes/Main.php',
|
224 |
-
'Imagify\\ThirdParty\\EnableMediaReplace\\Main' => __DIR__ . '/../..' . '/inc/3rd-party/enable-media-replace/classes/Main.php',
|
225 |
-
'Imagify\\ThirdParty\\FormidablePro\\Main' => __DIR__ . '/../..' . '/inc/3rd-party/formidable-pro/classes/Main.php',
|
226 |
-
'Imagify\\ThirdParty\\NGG\\Bulk\\NGG' => __DIR__ . '/../..' . '/inc/3rd-party/nextgen-gallery/classes/Bulk/NGG.php',
|
227 |
-
'Imagify\\ThirdParty\\NGG\\Context\\NGG' => __DIR__ . '/../..' . '/inc/3rd-party/nextgen-gallery/classes/Context/NGG.php',
|
228 |
-
'Imagify\\ThirdParty\\NGG\\DB' => __DIR__ . '/../..' . '/inc/3rd-party/nextgen-gallery/classes/DB.php',
|
229 |
-
'Imagify\\ThirdParty\\NGG\\DynamicThumbnails' => __DIR__ . '/../..' . '/inc/3rd-party/nextgen-gallery/classes/DynamicThumbnails.php',
|
230 |
-
'Imagify\\ThirdParty\\NGG\\Main' => __DIR__ . '/../..' . '/inc/3rd-party/nextgen-gallery/classes/Main.php',
|
231 |
-
'Imagify\\ThirdParty\\NGG\\Media\\NGG' => __DIR__ . '/../..' . '/inc/3rd-party/nextgen-gallery/classes/Media/NGG.php',
|
232 |
-
'Imagify\\ThirdParty\\NGG\\NGGStorage' => __DIR__ . '/../..' . '/inc/3rd-party/nextgen-gallery/classes/NGGStorage.php',
|
233 |
-
'Imagify\\ThirdParty\\NGG\\Optimization\\Data\\NGG' => __DIR__ . '/../..' . '/inc/3rd-party/nextgen-gallery/classes/Optimization/Data/NGG.php',
|
234 |
-
'Imagify\\ThirdParty\\NGG\\Optimization\\Process\\NGG' => __DIR__ . '/../..' . '/inc/3rd-party/nextgen-gallery/classes/Optimization/Process/NGG.php',
|
235 |
-
'Imagify\\ThirdParty\\RegenerateThumbnails\\Main' => __DIR__ . '/../..' . '/inc/3rd-party/regenerate-thumbnails/classes/Main.php',
|
236 |
-
'Imagify\\ThirdParty\\WPRocket\\Main' => __DIR__ . '/../..' . '/inc/3rd-party/wp-rocket/classes/Main.php',
|
237 |
-
'Imagify\\Traits\\InstanceGetterTrait' => __DIR__ . '/../..' . '/classes/Traits/InstanceGetterTrait.php',
|
238 |
-
'Imagify\\Traits\\MediaRowTrait' => __DIR__ . '/../..' . '/classes/Traits/MediaRowTrait.php',
|
239 |
-
'Imagify\\Webp\\Apache' => __DIR__ . '/../..' . '/classes/Webp/Apache.php',
|
240 |
-
'Imagify\\Webp\\Display' => __DIR__ . '/../..' . '/classes/Webp/Display.php',
|
241 |
-
'Imagify\\Webp\\IIS' => __DIR__ . '/../..' . '/classes/Webp/IIS.php',
|
242 |
-
'Imagify\\Webp\\Picture\\Display' => __DIR__ . '/../..' . '/classes/Webp/Picture/Display.php',
|
243 |
-
'Imagify\\Webp\\RewriteRules\\Apache' => __DIR__ . '/../..' . '/classes/Webp/RewriteRules/Apache.php',
|
244 |
-
'Imagify\\Webp\\RewriteRules\\Display' => __DIR__ . '/../..' . '/classes/Webp/RewriteRules/Display.php',
|
245 |
-
'Imagify\\Webp\\RewriteRules\\IIS' => __DIR__ . '/../..' . '/classes/Webp/RewriteRules/IIS.php',
|
246 |
-
'Imagify\\Webp\\RewriteRules\\Nginx' => __DIR__ . '/../..' . '/classes/Webp/RewriteRules/Nginx.php',
|
247 |
-
'Imagify\\WriteFile\\AbstractApacheDirConfFile' => __DIR__ . '/../..' . '/classes/WriteFile/AbstractApacheDirConfFile.php',
|
248 |
-
'Imagify\\WriteFile\\AbstractIISDirConfFile' => __DIR__ . '/../..' . '/classes/WriteFile/AbstractIISDirConfFile.php',
|
249 |
-
'Imagify\\WriteFile\\AbstractNginxDirConfFile' => __DIR__ . '/../..' . '/classes/WriteFile/AbstractNginxDirConfFile.php',
|
250 |
-
'Imagify\\WriteFile\\AbstractWriteDirConfFile' => __DIR__ . '/../..' . '/classes/WriteFile/AbstractWriteDirConfFile.php',
|
251 |
-
'Imagify\\WriteFile\\WriteFileInterface' => __DIR__ . '/../..' . '/classes/WriteFile/WriteFileInterface.php',
|
252 |
'Imagify_AS3CF_Attachment' => __DIR__ . '/../..' . '/inc/deprecated/classes/class-imagify-as3cf-attachment.php',
|
253 |
'Imagify_AS3CF_Deprecated' => __DIR__ . '/../..' . '/inc/deprecated/classes/class-imagify-as3cf-deprecated.php',
|
254 |
'Imagify_Abstract_Attachment' => __DIR__ . '/../..' . '/inc/deprecated/classes/class-imagify-abstract-attachment.php',
|
@@ -297,9 +129,9 @@ class ComposerStaticInitee5f379dcd1f5ddc8ae5536c97dc2605
|
|
297 |
public static function getInitializer(ClassLoaderWPMediaImagifyWordPressPlugin $loader)
|
298 |
{
|
299 |
return \Closure::bind(function () use ($loader) {
|
300 |
-
$loader->prefixLengthsPsr4 =
|
301 |
-
$loader->prefixDirsPsr4 =
|
302 |
-
$loader->classMap =
|
303 |
|
304 |
}, null, ClassLoaderWPMediaImagifyWordPressPlugin::class);
|
305 |
}
|
7 |
use Composer\AutoloadWPMediaImagifyWordPressPlugin\ClassLoader as ClassLoaderWPMediaImagifyWordPressPlugin;
|
8 |
|
9 |
|
10 |
+
class ComposerStaticInit27c2f21fb0be1f8c2ef63f80977ab942
|
11 |
{
|
12 |
public static $prefixLengthsPsr4 = array (
|
13 |
'I' =>
|
80 |
);
|
81 |
|
82 |
public static $classMap = array (
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
83 |
'Imagify' => __DIR__ . '/../..' . '/inc/classes/class-imagify.php',
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
84 |
'Imagify_AS3CF_Attachment' => __DIR__ . '/../..' . '/inc/deprecated/classes/class-imagify-as3cf-attachment.php',
|
85 |
'Imagify_AS3CF_Deprecated' => __DIR__ . '/../..' . '/inc/deprecated/classes/class-imagify-as3cf-deprecated.php',
|
86 |
'Imagify_Abstract_Attachment' => __DIR__ . '/../..' . '/inc/deprecated/classes/class-imagify-abstract-attachment.php',
|
129 |
public static function getInitializer(ClassLoaderWPMediaImagifyWordPressPlugin $loader)
|
130 |
{
|
131 |
return \Closure::bind(function () use ($loader) {
|
132 |
+
$loader->prefixLengthsPsr4 = ComposerStaticInit27c2f21fb0be1f8c2ef63f80977ab942::$prefixLengthsPsr4;
|
133 |
+
$loader->prefixDirsPsr4 = ComposerStaticInit27c2f21fb0be1f8c2ef63f80977ab942::$prefixDirsPsr4;
|
134 |
+
$loader->classMap = ComposerStaticInit27c2f21fb0be1f8c2ef63f80977ab942::$classMap;
|
135 |
|
136 |
}, null, ClassLoaderWPMediaImagifyWordPressPlugin::class);
|
137 |
}
|
vendor/composer/installed.json
CHANGED
@@ -1,17 +1,17 @@
|
|
1 |
[
|
2 |
{
|
3 |
"name": "composer/installers",
|
4 |
-
"version": "v1.
|
5 |
-
"version_normalized": "1.
|
6 |
"source": {
|
7 |
"type": "git",
|
8 |
"url": "https://github.com/composer/installers.git",
|
9 |
-
"reference": "
|
10 |
},
|
11 |
"dist": {
|
12 |
"type": "zip",
|
13 |
-
"url": "https://api.github.com/repos/composer/installers/zipball/
|
14 |
-
"reference": "
|
15 |
"shasum": ""
|
16 |
},
|
17 |
"require": {
|
@@ -29,7 +29,7 @@
|
|
29 |
"symfony/phpunit-bridge": "^4.2 || ^5",
|
30 |
"symfony/process": "^2.3"
|
31 |
},
|
32 |
-
"time": "2021-
|
33 |
"type": "composer-plugin",
|
34 |
"extra": {
|
35 |
"class": "Composer\\Installers\\Plugin",
|
@@ -107,6 +107,7 @@
|
|
107 |
"majima",
|
108 |
"mako",
|
109 |
"mediawiki",
|
|
|
110 |
"modulework",
|
111 |
"modx",
|
112 |
"moodle",
|
@@ -124,6 +125,7 @@
|
|
124 |
"sydes",
|
125 |
"sylius",
|
126 |
"symfony",
|
|
|
127 |
"typo3",
|
128 |
"wordpress",
|
129 |
"yawik",
|
1 |
[
|
2 |
{
|
3 |
"name": "composer/installers",
|
4 |
+
"version": "v1.11.0",
|
5 |
+
"version_normalized": "1.11.0.0",
|
6 |
"source": {
|
7 |
"type": "git",
|
8 |
"url": "https://github.com/composer/installers.git",
|
9 |
+
"reference": "ae03311f45dfe194412081526be2e003960df74b"
|
10 |
},
|
11 |
"dist": {
|
12 |
"type": "zip",
|
13 |
+
"url": "https://api.github.com/repos/composer/installers/zipball/ae03311f45dfe194412081526be2e003960df74b",
|
14 |
+
"reference": "ae03311f45dfe194412081526be2e003960df74b",
|
15 |
"shasum": ""
|
16 |
},
|
17 |
"require": {
|
29 |
"symfony/phpunit-bridge": "^4.2 || ^5",
|
30 |
"symfony/process": "^2.3"
|
31 |
},
|
32 |
+
"time": "2021-04-28T06:42:17+00:00",
|
33 |
"type": "composer-plugin",
|
34 |
"extra": {
|
35 |
"class": "Composer\\Installers\\Plugin",
|
107 |
"majima",
|
108 |
"mako",
|
109 |
"mediawiki",
|
110 |
+
"miaoxing",
|
111 |
"modulework",
|
112 |
"modx",
|
113 |
"moodle",
|
125 |
"sydes",
|
126 |
"sylius",
|
127 |
"symfony",
|
128 |
+
"tastyigniter",
|
129 |
"typo3",
|
130 |
"wordpress",
|
131 |
"yawik",
|
vendor/composer/installers/composer.json
CHANGED
@@ -46,6 +46,7 @@
|
|
46 |
"MODX",
|
47 |
"MODX Evo",
|
48 |
"MediaWiki",
|
|
|
49 |
"OXID",
|
50 |
"osclass",
|
51 |
"MODULEWork",
|
@@ -68,6 +69,7 @@
|
|
68 |
"SyDES",
|
69 |
"Sylius",
|
70 |
"symfony",
|
|
|
71 |
"Thelia",
|
72 |
"TYPO3",
|
73 |
"WHMCS",
|
46 |
"MODX",
|
47 |
"MODX Evo",
|
48 |
"MediaWiki",
|
49 |
+
"Miaoxing",
|
50 |
"OXID",
|
51 |
"osclass",
|
52 |
"MODULEWork",
|
69 |
"SyDES",
|
70 |
"Sylius",
|
71 |
"symfony",
|
72 |
+
"TastyIgniter",
|
73 |
"Thelia",
|
74 |
"TYPO3",
|
75 |
"WHMCS",
|
vendor/composer/installers/src/Composer/Installers/Installer.php
CHANGED
@@ -50,6 +50,7 @@ class Installer extends LibraryInstaller
|
|
50 |
'fuelphp' => 'FuelphpInstaller',
|
51 |
'grav' => 'GravInstaller',
|
52 |
'hurad' => 'HuradInstaller',
|
|
|
53 |
'imagecms' => 'ImageCMSInstaller',
|
54 |
'itop' => 'ItopInstaller',
|
55 |
'joomla' => 'JoomlaInstaller',
|
@@ -69,6 +70,7 @@ class Installer extends LibraryInstaller
|
|
69 |
'maya' => 'MayaInstaller',
|
70 |
'mautic' => 'MauticInstaller',
|
71 |
'mediawiki' => 'MediaWikiInstaller',
|
|
|
72 |
'microweber' => 'MicroweberInstaller',
|
73 |
'modulework' => 'MODULEWorkInstaller',
|
74 |
'modx' => 'ModxInstaller',
|
@@ -77,7 +79,7 @@ class Installer extends LibraryInstaller
|
|
77 |
'october' => 'OctoberInstaller',
|
78 |
'ontowiki' => 'OntoWikiInstaller',
|
79 |
'oxid' => 'OxidInstaller',
|
80 |
-
'osclass'
|
81 |
'pxcms' => 'PxcmsInstaller',
|
82 |
'phpbb' => 'PhpBBInstaller',
|
83 |
'pimcore' => 'PimcoreInstaller',
|
@@ -109,6 +111,7 @@ class Installer extends LibraryInstaller
|
|
109 |
'userfrosting' => 'UserFrostingInstaller',
|
110 |
'vanilla' => 'VanillaInstaller',
|
111 |
'whmcs' => 'WHMCSInstaller',
|
|
|
112 |
'wolfcms' => 'WolfCMSInstaller',
|
113 |
'wordpress' => 'WordPressInstaller',
|
114 |
'yawik' => 'YawikInstaller',
|
50 |
'fuelphp' => 'FuelphpInstaller',
|
51 |
'grav' => 'GravInstaller',
|
52 |
'hurad' => 'HuradInstaller',
|
53 |
+
'tastyigniter' => 'TastyIgniterInstaller',
|
54 |
'imagecms' => 'ImageCMSInstaller',
|
55 |
'itop' => 'ItopInstaller',
|
56 |
'joomla' => 'JoomlaInstaller',
|
70 |
'maya' => 'MayaInstaller',
|
71 |
'mautic' => 'MauticInstaller',
|
72 |
'mediawiki' => 'MediaWikiInstaller',
|
73 |
+
'miaoxing' => 'MiaoxingInstaller',
|
74 |
'microweber' => 'MicroweberInstaller',
|
75 |
'modulework' => 'MODULEWorkInstaller',
|
76 |
'modx' => 'ModxInstaller',
|
79 |
'october' => 'OctoberInstaller',
|
80 |
'ontowiki' => 'OntoWikiInstaller',
|
81 |
'oxid' => 'OxidInstaller',
|
82 |
+
'osclass' => 'OsclassInstaller',
|
83 |
'pxcms' => 'PxcmsInstaller',
|
84 |
'phpbb' => 'PhpBBInstaller',
|
85 |
'pimcore' => 'PimcoreInstaller',
|
111 |
'userfrosting' => 'UserFrostingInstaller',
|
112 |
'vanilla' => 'VanillaInstaller',
|
113 |
'whmcs' => 'WHMCSInstaller',
|
114 |
+
'winter' => 'WinterInstaller',
|
115 |
'wolfcms' => 'WolfCMSInstaller',
|
116 |
'wordpress' => 'WordPressInstaller',
|
117 |
'yawik' => 'YawikInstaller',
|
vendor/composer/installers/src/Composer/Installers/MauticInstaller.php
CHANGED
@@ -1,22 +1,45 @@
|
|
1 |
<?php
|
2 |
namespace Composer\Installers;
|
3 |
|
|
|
|
|
4 |
class MauticInstaller extends BaseInstaller
|
5 |
{
|
6 |
protected $locations = array(
|
7 |
-
'plugin'
|
8 |
-
'theme'
|
|
|
9 |
);
|
10 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
11 |
/**
|
12 |
* Format package name of mautic-plugins to CamelCase
|
13 |
*/
|
14 |
public function inflectPackageVars($vars)
|
15 |
{
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
}
|
21 |
|
22 |
return $vars;
|
1 |
<?php
|
2 |
namespace Composer\Installers;
|
3 |
|
4 |
+
use Composer\Package\PackageInterface;
|
5 |
+
|
6 |
class MauticInstaller extends BaseInstaller
|
7 |
{
|
8 |
protected $locations = array(
|
9 |
+
'plugin' => 'plugins/{$name}/',
|
10 |
+
'theme' => 'themes/{$name}/',
|
11 |
+
'core' => 'app/',
|
12 |
);
|
13 |
|
14 |
+
private function getDirectoryName()
|
15 |
+
{
|
16 |
+
$extra = $this->package->getExtra();
|
17 |
+
if (!empty($extra['install-directory-name'])) {
|
18 |
+
return $extra['install-directory-name'];
|
19 |
+
}
|
20 |
+
|
21 |
+
return $this->toCamelCase($this->package->getPrettyName());
|
22 |
+
}
|
23 |
+
|
24 |
+
/**
|
25 |
+
* @param string $packageName
|
26 |
+
*
|
27 |
+
* @return string
|
28 |
+
*/
|
29 |
+
private function toCamelCase($packageName)
|
30 |
+
{
|
31 |
+
return str_replace(' ', '', ucwords(str_replace('-', ' ', basename($packageName))));
|
32 |
+
}
|
33 |
+
|
34 |
/**
|
35 |
* Format package name of mautic-plugins to CamelCase
|
36 |
*/
|
37 |
public function inflectPackageVars($vars)
|
38 |
{
|
39 |
+
|
40 |
+
if ($vars['type'] == 'mautic-plugin' || $vars['type'] == 'mautic-theme') {
|
41 |
+
$directoryName = $this->getDirectoryName();
|
42 |
+
$vars['name'] = $directoryName;
|
43 |
}
|
44 |
|
45 |
return $vars;
|
vendor/composer/installers/src/Composer/Installers/MiaoxingInstaller.php
ADDED
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Composer\Installers;
|
4 |
+
|
5 |
+
class MiaoxingInstaller extends BaseInstaller
|
6 |
+
{
|
7 |
+
protected $locations = array(
|
8 |
+
'plugin' => 'plugins/{$name}/',
|
9 |
+
);
|
10 |
+
}
|
vendor/composer/installers/src/Composer/Installers/OctoberInstaller.php
CHANGED
@@ -6,7 +6,7 @@ class OctoberInstaller extends BaseInstaller
|
|
6 |
protected $locations = array(
|
7 |
'module' => 'modules/{$name}/',
|
8 |
'plugin' => 'plugins/{$vendor}/{$name}/',
|
9 |
-
'theme' => 'themes/{$name}/'
|
10 |
);
|
11 |
|
12 |
/**
|
@@ -41,6 +41,7 @@ class OctoberInstaller extends BaseInstaller
|
|
41 |
protected function inflectThemeVars($vars)
|
42 |
{
|
43 |
$vars['name'] = preg_replace('/^oc-|-theme$/', '', $vars['name']);
|
|
|
44 |
|
45 |
return $vars;
|
46 |
}
|
6 |
protected $locations = array(
|
7 |
'module' => 'modules/{$name}/',
|
8 |
'plugin' => 'plugins/{$vendor}/{$name}/',
|
9 |
+
'theme' => 'themes/{$vendor}-{$name}/'
|
10 |
);
|
11 |
|
12 |
/**
|
41 |
protected function inflectThemeVars($vars)
|
42 |
{
|
43 |
$vars['name'] = preg_replace('/^oc-|-theme$/', '', $vars['name']);
|
44 |
+
$vars['vendor'] = preg_replace('/[^a-z0-9_]/i', '', $vars['vendor']);
|
45 |
|
46 |
return $vars;
|
47 |
}
|
vendor/composer/installers/src/Composer/Installers/TastyIgniterInstaller.php
ADDED
@@ -0,0 +1,32 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Composer\Installers;
|
4 |
+
|
5 |
+
class TastyIgniterInstaller extends BaseInstaller
|
6 |
+
{
|
7 |
+
protected $locations = array(
|
8 |
+
'extension' => 'extensions/{$vendor}/{$name}/',
|
9 |
+
'theme' => 'themes/{$name}/',
|
10 |
+
);
|
11 |
+
|
12 |
+
/**
|
13 |
+
* Format package name.
|
14 |
+
*
|
15 |
+
* Cut off leading 'ti-ext-' or 'ti-theme-' if present.
|
16 |
+
* Strip vendor name of characters that is not alphanumeric or an underscore
|
17 |
+
*
|
18 |
+
*/
|
19 |
+
public function inflectPackageVars($vars)
|
20 |
+
{
|
21 |
+
if ($vars['type'] === 'tastyigniter-extension') {
|
22 |
+
$vars['vendor'] = preg_replace('/[^a-z0-9_]/i', '', $vars['vendor']);
|
23 |
+
$vars['name'] = preg_replace('/^ti-ext-/', '', $vars['name']);
|
24 |
+
}
|
25 |
+
|
26 |
+
if ($vars['type'] === 'tastyigniter-theme') {
|
27 |
+
$vars['name'] = preg_replace('/^ti-theme-/', '', $vars['name']);
|
28 |
+
}
|
29 |
+
|
30 |
+
return $vars;
|
31 |
+
}
|
32 |
+
}
|
vendor/composer/installers/src/Composer/Installers/WinterInstaller.php
ADDED
@@ -0,0 +1,58 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
namespace Composer\Installers;
|
3 |
+
|
4 |
+
class WinterInstaller extends BaseInstaller
|
5 |
+
{
|
6 |
+
protected $locations = array(
|
7 |
+
'module' => 'modules/{$name}/',
|
8 |
+
'plugin' => 'plugins/{$vendor}/{$name}/',
|
9 |
+
'theme' => 'themes/{$name}/'
|
10 |
+
);
|
11 |
+
|
12 |
+
/**
|
13 |
+
* Format package name.
|
14 |
+
*
|
15 |
+
* For package type winter-plugin, cut off a trailing '-plugin' if present.
|
16 |
+
*
|
17 |
+
* For package type winter-theme, cut off a trailing '-theme' if present.
|
18 |
+
*
|
19 |
+
*/
|
20 |
+
public function inflectPackageVars($vars)
|
21 |
+
{
|
22 |
+
if ($vars['type'] === 'winter-module') {
|
23 |
+
return $this->inflectModuleVars($vars);
|
24 |
+
}
|
25 |
+
|
26 |
+
if ($vars['type'] === 'winter-plugin') {
|
27 |
+
return $this->inflectPluginVars($vars);
|
28 |
+
}
|
29 |
+
|
30 |
+
if ($vars['type'] === 'winter-theme') {
|
31 |
+
return $this->inflectThemeVars($vars);
|
32 |
+
}
|
33 |
+
|
34 |
+
return $vars;
|
35 |
+
}
|
36 |
+
|
37 |
+
protected function inflectModuleVars($vars)
|
38 |
+
{
|
39 |
+
$vars['name'] = preg_replace('/^wn-|-module$/', '', $vars['name']);
|
40 |
+
|
41 |
+
return $vars;
|
42 |
+
}
|
43 |
+
|
44 |
+
protected function inflectPluginVars($vars)
|
45 |
+
{
|
46 |
+
$vars['name'] = preg_replace('/^wn-|-plugin$/', '', $vars['name']);
|
47 |
+
$vars['vendor'] = preg_replace('/[^a-z0-9_]/i', '', $vars['vendor']);
|
48 |
+
|
49 |
+
return $vars;
|
50 |
+
}
|
51 |
+
|
52 |
+
protected function inflectThemeVars($vars)
|
53 |
+
{
|
54 |
+
$vars['name'] = preg_replace('/^wn-|-theme$/', '', $vars['name']);
|
55 |
+
|
56 |
+
return $vars;
|
57 |
+
}
|
58 |
+
}
|
views/button/delete-webp.php
CHANGED
@@ -22,7 +22,7 @@ $html_atts = $this->build_attributes( $data['atts'] );
|
|
22 |
|
23 |
<a href="<?php echo esc_url( $data['url'] ); ?>"<?php echo $html_atts; ?>>
|
24 |
<span class="dashicons dashicons-image-rotate"></span>
|
25 |
-
<?php esc_html_e( 'Delete
|
26 |
</a>
|
27 |
|
28 |
<?php
|
22 |
|
23 |
<a href="<?php echo esc_url( $data['url'] ); ?>"<?php echo $html_atts; ?>>
|
24 |
<span class="dashicons dashicons-image-rotate"></span>
|
25 |
+
<?php esc_html_e( 'Delete WebP images', 'imagify' ); ?>
|
26 |
</a>
|
27 |
|
28 |
<?php
|
views/button/generate-webp.php
CHANGED
@@ -23,7 +23,7 @@ $html_atts = $this->build_attributes( $data['atts'] );
|
|
23 |
<a href="<?php echo esc_url( $data['url'] ); ?>"<?php echo $html_atts; ?>>
|
24 |
<span class="dashicons dashicons-admin-generic"></span>
|
25 |
<?php
|
26 |
-
esc_html_e( 'Generate
|
27 |
?>
|
28 |
</a>
|
29 |
|
23 |
<a href="<?php echo esc_url( $data['url'] ); ?>"<?php echo $html_atts; ?>>
|
24 |
<span class="dashicons dashicons-admin-generic"></span>
|
25 |
<?php
|
26 |
+
esc_html_e( 'Generate WebP versions', 'imagify' );
|
27 |
?>
|
28 |
</a>
|
29 |
|
views/notice-almost-over-quota.php
CHANGED
@@ -29,9 +29,10 @@ $views = Imagify_Views::get_instance();
|
|
29 |
</div>
|
30 |
<p>
|
31 |
<?php esc_html_e( 'You are running out of credit! Don’t forget to upgrade your Imagify’s account.', 'imagify' ); ?>
|
32 |
-
|
33 |
-
<a target="_blank" class="button imagify-button imagify-button-secondary button-mini" href="<?php echo esc_url( imagify_get_external_url( 'subscription' ) ); ?>"><?php esc_html_e( 'See our plans', 'imagify' ); ?></a>
|
34 |
</p>
|
|
|
|
|
|
|
35 |
<?php
|
36 |
$this->print_template( 'notice-footer', array(
|
37 |
'dismissible' => 'almost-over-quota',
|
29 |
</div>
|
30 |
<p>
|
31 |
<?php esc_html_e( 'You are running out of credit! Don’t forget to upgrade your Imagify’s account.', 'imagify' ); ?>
|
|
|
|
|
32 |
</p>
|
33 |
+
<div class="imagify-notice-quota-btn-container">
|
34 |
+
<a target="_blank" class="button imagify-button imagify-button-secondary button-mini" href="<?php echo esc_url( imagify_get_external_url( 'subscription' ) ); ?>"><?php esc_html_e( 'See our plans', 'imagify' ); ?></a>
|
35 |
+
</div>
|
36 |
<?php
|
37 |
$this->print_template( 'notice-footer', array(
|
38 |
'dismissible' => 'almost-over-quota',
|
views/notice-wp-rocket.php
CHANGED
@@ -2,7 +2,6 @@
|
|
2 |
defined( 'ABSPATH' ) || die( 'Cheatin’ uh?' );
|
3 |
|
4 |
$dismiss_url = get_imagify_admin_url( 'dismiss-notice', 'wp-rocket' );
|
5 |
-
$coupon_code = 'IMAGIFY20';
|
6 |
$wprocket_url = imagify_get_wp_rocket_url();
|
7 |
?>
|
8 |
<div class="updated imagify-rkt-notice">
|
@@ -14,17 +13,8 @@ $wprocket_url = imagify_get_wp_rocket_url();
|
|
14 |
<p class="imagify-rkt-msg">
|
15 |
<?php
|
16 |
esc_html_e( 'Discover the best caching plugin to speed up your website.', 'imagify' );
|
17 |
-
echo '<br>';
|
18 |
-
printf(
|
19 |
-
/* translators: 1 is a "bold" tag start, 2 is a pourcentage, 3 is the "bold" tag end, 4 is a coupon code. */
|
20 |
-
esc_html__( '%1$sGet %2$s off%3$s with this coupon code: %4$s', 'imagify' ),
|
21 |
-
'<strong>', '20%', '</strong>', $coupon_code
|
22 |
-
);
|
23 |
?>
|
24 |
</p>
|
25 |
-
<p class="imagify-rkt-coupon">
|
26 |
-
<span class="imagify-rkt-coupon-code"><?php echo $coupon_code; ?></span>
|
27 |
-
</p>
|
28 |
<p class="imagify-rkt-cta">
|
29 |
<a target="_blank" href="<?php echo esc_url( $wprocket_url ); ?>" class="button button-primary tgm-plugin-update-modal"><?php esc_html_e( 'Get WP Rocket now', 'imagify' ); ?></a>
|
30 |
</p>
|
2 |
defined( 'ABSPATH' ) || die( 'Cheatin’ uh?' );
|
3 |
|
4 |
$dismiss_url = get_imagify_admin_url( 'dismiss-notice', 'wp-rocket' );
|
|
|
5 |
$wprocket_url = imagify_get_wp_rocket_url();
|
6 |
?>
|
7 |
<div class="updated imagify-rkt-notice">
|
13 |
<p class="imagify-rkt-msg">
|
14 |
<?php
|
15 |
esc_html_e( 'Discover the best caching plugin to speed up your website.', 'imagify' );
|
|
|
|
|
|
|
|
|
|
|
|
|
16 |
?>
|
17 |
</p>
|
|
|
|
|
|
|
18 |
<p class="imagify-rkt-cta">
|
19 |
<a target="_blank" href="<?php echo esc_url( $wprocket_url ); ?>" class="button button-primary tgm-plugin-update-modal"><?php esc_html_e( 'Get WP Rocket now', 'imagify' ); ?></a>
|
20 |
</p>
|
views/page-bulk.php
CHANGED
@@ -89,11 +89,12 @@ defined( 'ABSPATH' ) || die( 'Cheatin’ uh?' );
|
|
89 |
$user = new Imagify_User();
|
90 |
?>
|
91 |
<div class="imagify-options-title">
|
92 |
-
<
|
93 |
<span class="dashicons dashicons-admin-users"></span>
|
94 |
-
|
95 |
-
|
96 |
-
|
|
|
97 |
<a href="<?php echo esc_url( imagify_get_external_url( 'subscription' ) ); ?>" target="_blank"><?php _e( 'View your profile', 'imagify' ); ?></a>
|
98 |
|
99 |
<p class="imagify-meteo-subs">
|
89 |
$user = new Imagify_User();
|
90 |
?>
|
91 |
<div class="imagify-options-title">
|
92 |
+
<div class="imagify-th-titles imagify-flex imagify-vcenter">
|
93 |
<span class="dashicons dashicons-admin-users"></span>
|
94 |
+
<p class="imagify-meteo-title">
|
95 |
+
<?php esc_html_e( 'Your Account', 'imagify' ); ?>
|
96 |
+
</p>
|
97 |
+
</div>
|
98 |
<a href="<?php echo esc_url( imagify_get_external_url( 'subscription' ) ); ?>" target="_blank"><?php _e( 'View your profile', 'imagify' ); ?></a>
|
99 |
|
100 |
<p class="imagify-meteo-subs">
|
views/page-settings.php
CHANGED
@@ -19,198 +19,199 @@ $wrapper_class = isset( $notices[ $notice ] ) || defined( 'WP_ROCKET_VERSION' )
|
|
19 |
<div class="imagify-col imagify-main">
|
20 |
|
21 |
<?php $this->print_template( 'part-settings-header' ); ?>
|
|
|
|
|
22 |
|
23 |
-
|
24 |
|
25 |
-
|
|
|
|
|
26 |
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
$this->print_template( 'part-settings-account' );
|
34 |
-
$this->print_template( 'part-settings-footer' );
|
35 |
-
}
|
36 |
-
?>
|
37 |
-
|
38 |
-
<div class="imagify-col imagify-shared-with-account-col<?php echo $hidden_class; ?>">
|
39 |
-
<div class="imagify-settings-section">
|
40 |
-
|
41 |
-
<h2 class="imagify-options-title"><?php _e( 'General Settings', 'imagify' ); ?></h2>
|
42 |
-
|
43 |
-
<p class="imagify-options-subtitle" id="imagify-optimization-level-label">
|
44 |
-
<?php _e( 'Optimization Level', 'imagify' ); ?>
|
45 |
-
|
46 |
-
<span class="imagify-info">
|
47 |
-
<span class="dashicons dashicons-info"></span>
|
48 |
-
<a href="#imagify-more-info" class="imagify-modal-trigger"><?php _e( 'More info?', 'imagify' ); ?></a>
|
49 |
-
</span>
|
50 |
-
</p>
|
51 |
|
52 |
-
|
53 |
-
|
54 |
-
<input type="radio" id="imagify-optimization_level_normal" name="<?php echo $option_name; ?>[optimization_level]" value="0" <?php checked( $options->get( 'optimization_level' ), 0 ); ?> aria-describedby="imagify-optimization-level-label">
|
55 |
-
<label for="imagify-optimization_level_normal">
|
56 |
-
<?php _e( 'Normal', 'imagify' ); ?>
|
57 |
-
</label>
|
58 |
|
59 |
-
|
60 |
-
<label for="imagify-optimization_level_aggro">
|
61 |
-
<?php _e( 'Aggressive', 'imagify' ); ?>
|
62 |
-
</label>
|
63 |
|
64 |
-
|
65 |
-
|
66 |
-
<?php _e( 'Ultra', 'imagify' ); ?>
|
67 |
-
</label>
|
68 |
-
</p>
|
69 |
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
__( 'Need help to choose? %1$sTry the Visual Comparison%2$s', 'imagify' ),
|
75 |
-
'<button type="button" class="button button-primary button-mini-flat imagify-visual-comparison-btn imagify-modal-trigger" data-target="#imagify-visual-comparison">',
|
76 |
-
'</button>'
|
77 |
-
);
|
78 |
-
?>
|
79 |
</p>
|
80 |
-
</div>
|
81 |
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
93 |
<?php
|
94 |
$settings->field_checkbox( array(
|
95 |
-
'option_name' => '
|
96 |
-
'label' => __( '
|
97 |
-
'info' => __( '
|
98 |
) );
|
99 |
-
|
100 |
-
$backup_error_class = $options->get( 'backup' ) && ! Imagify_Requirements::attachments_backup_dir_is_writable() ? '' : ' hidden';
|
101 |
?>
|
102 |
-
|
|
|
|
|
103 |
<?php
|
104 |
-
$
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
</p>
|
110 |
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
|
|
|
|
|
|
|
|
|
|
116 |
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
?>
|
123 |
-
</p>
|
124 |
-
</div>
|
125 |
-
</div>
|
126 |
|
127 |
-
|
128 |
-
|
129 |
-
|
|
|
|
|
|
|
|
|
|
|
130 |
</div>
|
131 |
-
<?php } ?>
|
132 |
-
</div>
|
133 |
-
|
134 |
-
<div class="imagify-settings-main-content<?php echo $hidden_class; ?>">
|
135 |
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
$this->print_template( 'part-settings-custom-folders' );
|
142 |
-
?>
|
143 |
</div>
|
144 |
-
</div>
|
145 |
|
146 |
-
|
147 |
-
<div class="imagify-settings-section imagify-clear">
|
148 |
-
<div class="imagify-col">
|
149 |
-
<h2 class="imagify-options-title"><?php _e( 'Display Options', 'imagify' ); ?></h2>
|
150 |
-
|
151 |
-
<p class="imagify-options-subtitle"><?php _e( 'Show Toolbar Menu', 'imagify' ); ?></p>
|
152 |
-
|
153 |
-
<div class="imagify-col">
|
154 |
-
<p>
|
155 |
-
<?php
|
156 |
-
$settings->field_checkbox( array(
|
157 |
-
'option_name' => 'admin_bar_menu',
|
158 |
-
'label' => __( 'I want this awesome quick access menu on my Toolbar.', 'imagify' ),
|
159 |
-
) );
|
160 |
-
?>
|
161 |
-
</p>
|
162 |
-
</div>
|
163 |
-
<div class="imagify-col">
|
164 |
-
<p>
|
165 |
-
<img class="imagify-menu-bar-img" src="<?php echo esc_url( IMAGIFY_ASSETS_IMG_URL . 'imagify-menu-bar-' . $lang . '.jpg' ); ?>" width="273" height="239" alt="">
|
166 |
-
</p>
|
167 |
-
</div>
|
168 |
|
|
|
|
|
169 |
<?php
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
*
|
177 |
-
* @param array $partners An array of partner names.
|
178 |
-
* @return array
|
179 |
-
*/
|
180 |
-
$partners = apply_filters( 'imagify_deactivatable_partners', array() );
|
181 |
-
|
182 |
-
if ( $partners ) {
|
183 |
-
?>
|
184 |
-
<p class="imagify-options-subtitle" id="imagify-partners-label">
|
185 |
-
<?php esc_html_e( 'Partners', 'imagify' ); ?>
|
186 |
|
187 |
-
|
188 |
-
|
189 |
-
|
190 |
-
|
191 |
-
</p>
|
192 |
|
193 |
-
<p>
|
|
|
|
|
|
|
194 |
<?php
|
195 |
$settings->field_checkbox( array(
|
196 |
-
'option_name' => '
|
197 |
-
'label' => __( '
|
198 |
) );
|
199 |
?>
|
200 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
201 |
<?php
|
202 |
-
|
203 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
204 |
</div>
|
205 |
-
</div>
|
206 |
|
207 |
-
|
208 |
-
|
209 |
-
|
210 |
-
|
211 |
-
|
212 |
-
|
213 |
-
|
|
|
214 |
</div>
|
215 |
|
216 |
<?php
|
19 |
<div class="imagify-col imagify-main">
|
20 |
|
21 |
<?php $this->print_template( 'part-settings-header' ); ?>
|
22 |
+
<div class="imagify-main-content">
|
23 |
+
<form action="<?php echo esc_url( $settings->get_form_action() ); ?>" id="imagify-settings" method="post">
|
24 |
|
25 |
+
<div class="imagify-settings-main-content<?php echo Imagify_Requirements::is_api_key_valid() ? '' : ' imagify-no-api-key'; ?>">
|
26 |
|
27 |
+
<?php settings_fields( $settings->get_settings_group() ); ?>
|
28 |
+
<?php wp_nonce_field( 'imagify-signup', 'imagifysignupnonce', false ); ?>
|
29 |
+
<?php wp_nonce_field( 'imagify-check-api-key', 'imagifycheckapikeynonce', false ); ?>
|
30 |
|
31 |
+
<?php
|
32 |
+
if ( ! Imagify_Requirements::is_api_key_valid() ) {
|
33 |
+
$this->print_template( 'part-settings-account' );
|
34 |
+
$this->print_template( 'part-settings-footer' );
|
35 |
+
}
|
36 |
+
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
37 |
|
38 |
+
<div class="imagify-col imagify-shared-with-account-col<?php echo $hidden_class; ?>">
|
39 |
+
<div class="imagify-settings-section">
|
|
|
|
|
|
|
|
|
40 |
|
41 |
+
<h2 class="imagify-options-title"><?php _e( 'General Settings', 'imagify' ); ?></h2>
|
|
|
|
|
|
|
42 |
|
43 |
+
<p class="imagify-options-subtitle" id="imagify-optimization-level-label">
|
44 |
+
<?php _e( 'Optimization Level', 'imagify' ); ?>
|
|
|
|
|
|
|
45 |
|
46 |
+
<span class="imagify-info">
|
47 |
+
<span class="dashicons dashicons-info"></span>
|
48 |
+
<a href="#imagify-more-info" class="imagify-modal-trigger"><?php _e( 'More info?', 'imagify' ); ?></a>
|
49 |
+
</span>
|
|
|
|
|
|
|
|
|
|
|
50 |
</p>
|
|
|
51 |
|
52 |
+
<div class="imagify-setting-optim-level">
|
53 |
+
<p class="imagify-inline-options">
|
54 |
+
<input type="radio" id="imagify-optimization_level_normal" name="<?php echo $option_name; ?>[optimization_level]" value="0" <?php checked( $options->get( 'optimization_level' ), 0 ); ?> aria-describedby="imagify-optimization-level-label">
|
55 |
+
<label for="imagify-optimization_level_normal">
|
56 |
+
<?php _e( 'Normal', 'imagify' ); ?>
|
57 |
+
</label>
|
58 |
+
|
59 |
+
<input type="radio" id="imagify-optimization_level_aggro" name="<?php echo $option_name; ?>[optimization_level]" value="1" <?php checked( $options->get( 'optimization_level' ), 1 ); ?> aria-describedby="imagify-optimization-level-label">
|
60 |
+
<label for="imagify-optimization_level_aggro">
|
61 |
+
<?php _e( 'Aggressive', 'imagify' ); ?>
|
62 |
+
</label>
|
63 |
+
|
64 |
+
<input type="radio" id="imagify-optimization_level_ultra" name="<?php echo $option_name; ?>[optimization_level]" value="2" <?php checked( $options->get( 'optimization_level' ), 2 ); ?> aria-describedby="imagify-optimization-level-label">
|
65 |
+
<label for="imagify-optimization_level_ultra">
|
66 |
+
<?php _e( 'Ultra', 'imagify' ); ?>
|
67 |
+
</label>
|
68 |
+
</p>
|
69 |
+
|
70 |
+
<p class="imagify-visual-comparison-text">
|
71 |
+
<?php
|
72 |
+
printf(
|
73 |
+
/* translators: 1 is a button tag start, 2 is the button tag end. */
|
74 |
+
__( 'Need help to choose? %1$sTry the Visual Comparison%2$s', 'imagify' ),
|
75 |
+
'<button type="button" class="button button-primary button-mini-flat imagify-visual-comparison-btn imagify-modal-trigger" data-target="#imagify-visual-comparison">',
|
76 |
+
'</button>'
|
77 |
+
);
|
78 |
+
?>
|
79 |
+
</p>
|
80 |
+
</div>
|
81 |
+
|
82 |
+
<p class="imagify-setting-line">
|
83 |
<?php
|
84 |
$settings->field_checkbox( array(
|
85 |
+
'option_name' => 'auto_optimize',
|
86 |
+
'label' => __( 'Auto-Optimize images on upload', 'imagify' ),
|
87 |
+
'info' => __( 'Automatically optimize every image you upload to WordPress.', 'imagify' ),
|
88 |
) );
|
|
|
|
|
89 |
?>
|
90 |
+
</p>
|
91 |
+
|
92 |
+
<p class="imagify-setting-line">
|
93 |
<?php
|
94 |
+
$settings->field_checkbox( array(
|
95 |
+
'option_name' => 'backup',
|
96 |
+
'label' => __( 'Backup original images', 'imagify' ),
|
97 |
+
'info' => __( 'Keep your original images in a separate folder before optimization process.', 'imagify' ),
|
98 |
+
) );
|
|
|
99 |
|
100 |
+
$backup_error_class = $options->get( 'backup' ) && ! Imagify_Requirements::attachments_backup_dir_is_writable() ? '' : ' hidden';
|
101 |
+
?>
|
102 |
+
<br/><strong id="backup-dir-is-writable" class="imagify-error<?php echo $backup_error_class; ?>" data-nonce="<?php echo esc_attr( wp_create_nonce( 'imagify_check_backup_dir_is_writable' ) ); ?>">
|
103 |
+
<?php
|
104 |
+
$backup_path = $this->filesystem->make_path_relative( get_imagify_backup_dir_path( true ) );
|
105 |
+
/* translators: %s is a file path. */
|
106 |
+
printf( __( 'The backup folder %s cannot be created or is not writable by the server, original images cannot be saved!', 'imagify' ), "<code>$backup_path</code>" );
|
107 |
+
?>
|
108 |
+
</strong>
|
109 |
+
</p>
|
110 |
|
111 |
+
<p class="imagify-setting-line">
|
112 |
+
<?php
|
113 |
+
$info = __( 'EXIF data is information stored in your pictures like shutter speed, exposure compensation, ISO, etc...', 'imagify' );
|
114 |
+
$info .= ' <a href="' . esc_url( imagify_get_external_url( 'exif' ) ) . '" target="_blank">' . __( 'Learn more', 'imagify' ) . '</a><br/><br/>';
|
115 |
+
$info .= __( 'If you are a photographer, you may be interested in this option if you are displaying info like the model of your camera on your pages. Also, keeping EXIF data can fix some colorimetric problems.', 'imagify' );
|
|
|
|
|
|
|
|
|
116 |
|
117 |
+
$settings->field_checkbox( array(
|
118 |
+
'option_name' => 'exif',
|
119 |
+
'label' => __( 'Keep all EXIF data from your images', 'imagify' ),
|
120 |
+
'info' => $info,
|
121 |
+
) );
|
122 |
+
?>
|
123 |
+
</p>
|
124 |
+
</div>
|
125 |
</div>
|
|
|
|
|
|
|
|
|
126 |
|
127 |
+
<?php if ( Imagify_Requirements::is_api_key_valid() ) { ?>
|
128 |
+
<div class="imagify-col imagify-account-info-col">
|
129 |
+
<?php $this->print_template( 'part-settings-account' ); ?>
|
130 |
+
</div>
|
131 |
+
<?php } ?>
|
|
|
|
|
132 |
</div>
|
|
|
133 |
|
134 |
+
<div class="imagify-settings-main-content<?php echo $hidden_class; ?>">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
135 |
|
136 |
+
<div class="imagify-settings-section imagify-clear">
|
137 |
+
<h2 class="imagify-options-title"><?php _e( 'Optimization', 'imagify' ); ?></h2>
|
138 |
<?php
|
139 |
+
$this->print_template( 'part-settings-webp' );
|
140 |
+
$this->print_template( 'part-settings-library' );
|
141 |
+
$this->print_template( 'part-settings-custom-folders' );
|
142 |
+
?>
|
143 |
+
</div>
|
144 |
+
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
145 |
|
146 |
+
<div class="imagify-settings-main-content imagify-pb0<?php echo $hidden_class; ?>">
|
147 |
+
<div class="imagify-settings-section imagify-clear">
|
148 |
+
<div>
|
149 |
+
<h2 class="imagify-options-title"><?php _e( 'Display Options', 'imagify' ); ?></h2>
|
|
|
150 |
|
151 |
+
<p class="imagify-options-subtitle"><?php _e( 'Show Toolbar Menu', 'imagify' ); ?></p>
|
152 |
+
|
153 |
+
<div class="imagify-col">
|
154 |
+
<p>
|
155 |
<?php
|
156 |
$settings->field_checkbox( array(
|
157 |
+
'option_name' => 'admin_bar_menu',
|
158 |
+
'label' => __( 'I want this awesome quick access menu on my Toolbar.', 'imagify' ),
|
159 |
) );
|
160 |
?>
|
161 |
+
</p>
|
162 |
+
</div>
|
163 |
+
<div class="imagify-col">
|
164 |
+
<p>
|
165 |
+
<img class="imagify-menu-bar-img" src="<?php echo esc_url( IMAGIFY_ASSETS_IMG_URL . 'imagify-menu-bar-' . $lang . '.jpg' ); ?>" width="273" height="239" alt="">
|
166 |
+
</p>
|
167 |
+
</div>
|
168 |
+
|
169 |
<?php
|
170 |
+
/**
|
171 |
+
* List of partners affected by this option.
|
172 |
+
* For internal use only.
|
173 |
+
*
|
174 |
+
* @since 1.8.2
|
175 |
+
* @author Grégory Viguier
|
176 |
+
*
|
177 |
+
* @param array $partners An array of partner names.
|
178 |
+
* @return array
|
179 |
+
*/
|
180 |
+
$partners = apply_filters( 'imagify_deactivatable_partners', array() );
|
181 |
+
|
182 |
+
if ( $partners ) {
|
183 |
+
?>
|
184 |
+
<p class="imagify-options-subtitle" id="imagify-partners-label">
|
185 |
+
<?php esc_html_e( 'Partners', 'imagify' ); ?>
|
186 |
+
|
187 |
+
<span class="imagify-info">
|
188 |
+
<span class="dashicons dashicons-info"></span>
|
189 |
+
<a href="#imagify-partners-info" class="imagify-modal-trigger"><?php _e( 'More info?', 'imagify' ); ?></a>
|
190 |
+
</span>
|
191 |
+
</p>
|
192 |
+
|
193 |
+
<p>
|
194 |
+
<?php
|
195 |
+
$settings->field_checkbox( array(
|
196 |
+
'option_name' => 'partner_links',
|
197 |
+
'label' => __( 'Display Partner Links', 'imagify' ),
|
198 |
+
) );
|
199 |
+
?>
|
200 |
+
</p>
|
201 |
+
<?php
|
202 |
+
}
|
203 |
+
?>
|
204 |
+
</div>
|
205 |
</div>
|
|
|
206 |
|
207 |
+
<?php
|
208 |
+
if ( Imagify_Requirements::is_api_key_valid() ) {
|
209 |
+
$this->print_template( 'part-settings-footer' );
|
210 |
+
}
|
211 |
+
?>
|
212 |
+
</div>
|
213 |
+
</form>
|
214 |
+
</div>
|
215 |
</div>
|
216 |
|
217 |
<?php
|
views/part-bulk-optimization-overquota-alert.php
CHANGED
@@ -10,21 +10,7 @@ $overquota_url = imagify_get_external_url( 'subscription', array(
|
|
10 |
<div class="imagify-swal-subtitle"><?php esc_html_e( 'Upgrade your account to continue optimizing your images.', 'imagify' ); ?></div>
|
11 |
<div class="imagify-swal-content imagify-txt-start">
|
12 |
<?php if ( Imagify_Requirements::is_api_key_valid() ) { ?>
|
13 |
-
<strong><?php esc_html_e( 'To continue optimizing your images, you can
|
14 |
-
<ul class="imagify-count-list">
|
15 |
-
<li>
|
16 |
-
<?php
|
17 |
-
/* translators: 1 is the beginning of strong tag 2 is the closing tag. */
|
18 |
-
printf( esc_html__( '%1$sUpgrade your subscription%2$s to optimize more images per month', 'imagify' ), '<strong>', '</strong> ' );
|
19 |
-
?>
|
20 |
-
</li>
|
21 |
-
<li>
|
22 |
-
<?php
|
23 |
-
/* translators: 1 is the beginning of strong tag 2 is the closing tag. */
|
24 |
-
printf( esc_html__( '%1$sBuy a One Time plan%2$s to optimize the remaining images only', 'imagify' ), '<strong>', '</strong> ' );
|
25 |
-
?>
|
26 |
-
</li>
|
27 |
-
</ul>
|
28 |
<?php } ?>
|
29 |
</div>
|
30 |
<div class="imagify-swal-buttonswrapper">
|
10 |
<div class="imagify-swal-subtitle"><?php esc_html_e( 'Upgrade your account to continue optimizing your images.', 'imagify' ); ?></div>
|
11 |
<div class="imagify-swal-content imagify-txt-start">
|
12 |
<?php if ( Imagify_Requirements::is_api_key_valid() ) { ?>
|
13 |
+
<strong><?php esc_html_e( 'To continue optimizing your images, you can upgrade your subscription.', 'imagify' ); ?></strong>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
14 |
<?php } ?>
|
15 |
</div>
|
16 |
<div class="imagify-swal-buttonswrapper">
|
views/part-discount-banner.php
CHANGED
@@ -6,9 +6,10 @@ defined( 'ABSPATH' ) || die( 'Cheatin’ uh?' );
|
|
6 |
<p class="imagify-promo-title">
|
7 |
<?php
|
8 |
printf(
|
9 |
-
/* translators: %s is a formatted percentage. */
|
10 |
-
__( '%s OFF on
|
11 |
-
'<span class="imagify-promotion-number"></span>'
|
|
|
12 |
);
|
13 |
?>
|
14 |
</p>
|
6 |
<p class="imagify-promo-title">
|
7 |
<?php
|
8 |
printf(
|
9 |
+
/* translators: %1$s is a formatted percentage, %2$s is a subscription plan name. */
|
10 |
+
__( '%1$s OFF on %2$s subscriptions', 'imagify' ),
|
11 |
+
'<span class="imagify-promotion-number"></span>',
|
12 |
+
'<span class="imagify-promotion-plan-name"></span>'
|
13 |
);
|
14 |
?>
|
15 |
</p>
|
views/part-settings-custom-folders.php
CHANGED
@@ -47,8 +47,8 @@ if ( ! is_network_admin() ) {
|
|
47 |
);
|
48 |
|
49 |
$themes[ $theme['path'] ] = $theme;
|
50 |
-
$added
|
51 |
-
$rel_path
|
52 |
|
53 |
foreach ( $custom_folders as $path => $label ) {
|
54 |
if ( strpos( $rel_path, strtolower( $label ) ) === 0 ) {
|
@@ -66,118 +66,126 @@ if ( ! is_network_admin() ) {
|
|
66 |
$themes_count = count( $themes );
|
67 |
}
|
68 |
?>
|
|
|
|
|
|
|
69 |
|
70 |
-
<div
|
71 |
-
<h3 class="imagify-options-subtitle"><?php _e( 'Custom Folders', 'imagify' ); ?></h3>
|
72 |
|
73 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
74 |
|
75 |
-
<?php if ( $themes ) { ?>
|
76 |
-
<div class="imagify-folder-themes-suggestion">
|
77 |
-
<div class="imagify-fts-header imagify-flex imagify-vcenter">
|
78 |
-
<span><i class="dashicons dashicons-info"></i></span>
|
79 |
-
<p>
|
80 |
-
<?php
|
81 |
-
$theme = reset( $themes );
|
82 |
-
|
83 |
-
/* translators: %s is a theme name. */
|
84 |
-
printf( __( 'You’re using %s', 'imagify' ), '<strong>' . $theme['name'] . '</strong>' );
|
85 |
-
|
86 |
-
if ( $themes_count > 1 ) {
|
87 |
-
$theme = end( $themes );
|
88 |
-
echo '<br>';
|
89 |
-
/* translators: %s is a theme name. */
|
90 |
-
printf( __( 'child theme of %s', 'imagify' ), '<strong>' . $theme['name'] . '</strong>' );
|
91 |
-
}
|
92 |
-
?>
|
93 |
-
</p>
|
94 |
-
</div>
|
95 |
-
|
96 |
-
<div class="imagify-fts-content">
|
97 |
-
<?php
|
98 |
-
if ( ! $themes_not_added ) {
|
99 |
-
?>
|
100 |
-
<p class="imagify-mb0"><?php echo _n( 'Your theme is already in the optimization process. All Good!', 'Your themes are already in the optimization process. All Good!', $themes_count, 'imagify' ); ?></p>
|
101 |
-
<?php
|
102 |
-
} elseif ( count( $themes_not_added ) !== $themes_count ) {
|
103 |
-
$theme = reset( $themes_not_added );
|
104 |
-
$theme = $themes[ $theme ];
|
105 |
-
?>
|
106 |
-
<p><?php _e( 'Only one of your current themes is in the optimization process, would you like to also optimize the other one?', 'imagify' ); ?></p>
|
107 |
-
|
108 |
-
<button id="imagify-add-themes-to-custom-folder" class="button imagify-button-clean imagify-add-themes" type="button" data-theme="<?php echo esc_attr( $theme['path'] ) . '#///#' . esc_attr( $theme['label'] ); ?>">
|
109 |
-
<span class="dashicons dashicons-plus"></span>
|
110 |
-
<span class="button-text"><?php
|
111 |
/* translators: %s is a theme name. */
|
112 |
-
printf( __( '
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
138 |
<span class="dashicons dashicons-plus"></span>
|
139 |
<span class="button-text"><?php _e( 'Add folders', 'imagify' ); ?></span>
|
140 |
</button>
|
141 |
<img class="imagify-loader" aria-hidden="true" alt="<?php esc_attr_e( 'Loading...', 'imagify' ); ?>" src="<?php echo esc_url( IMAGIFY_ASSETS_IMG_URL . 'loader-balls.svg' ); ?>" width="38" height="24"/>
|
142 |
</span>
|
143 |
-
|
144 |
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
149 |
$this->print_template( 'part-settings-row-custom-folder', array(
|
150 |
-
'value' =>
|
151 |
-
'label' =>
|
152 |
) );
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
</
|
157 |
-
|
158 |
-
<p>
|
159 |
-
<?php
|
160 |
-
printf(
|
161 |
-
/* translators: 1 and 2 are <strong> opening and closing tags. */
|
162 |
-
__( '%1$sSelecting a folder will also optimize images in sub-folders.%2$s The only exception is "Site’s root": when selected, only images that are directly at the site’s root will be optimized (sub-folders can be selected separately).', 'imagify' ),
|
163 |
-
'<strong>',
|
164 |
-
'</strong>'
|
165 |
-
);
|
166 |
-
?>
|
167 |
-
<br/>
|
168 |
-
<?php _e( 'Folders that are hidden in the folder selector window are excluded and will not be optimized even if a parent folder is selected.', 'imagify' ); ?>
|
169 |
-
</p>
|
170 |
-
|
171 |
-
<p class="imagify-success hidden"><?php _e( 'You changed your custom folder settings, don\'t forget to save your changes!', 'imagify' ); ?></p>
|
172 |
-
|
173 |
-
<script type="text/html" id="tmpl-imagify-custom-folder">
|
174 |
-
<?php
|
175 |
-
$this->print_template( 'part-settings-row-custom-folder', array(
|
176 |
-
'value' => '{{ data.value }}',
|
177 |
-
'label' => '{{ data.label }}',
|
178 |
-
) );
|
179 |
-
?>
|
180 |
-
</script>
|
181 |
</div>
|
182 |
-
</div>
|
183 |
<?php
|
47 |
);
|
48 |
|
49 |
$themes[ $theme['path'] ] = $theme;
|
50 |
+
$added = false;
|
51 |
+
$rel_path = strtolower( $theme['label'] );
|
52 |
|
53 |
foreach ( $custom_folders as $path => $label ) {
|
54 |
if ( strpos( $rel_path, strtolower( $label ) ) === 0 ) {
|
66 |
$themes_count = count( $themes );
|
67 |
}
|
68 |
?>
|
69 |
+
<div class="imagify-custom-folders-section">
|
70 |
+
<div class="imagify-col" id="custom-folders">
|
71 |
+
<h3 class="imagify-options-subtitle"><?php _e( 'Custom Folders', 'imagify' ); ?></h3>
|
72 |
|
73 |
+
<div id="imagify-custom-folders" class="hide-if-no-js imagify-mt2">
|
|
|
74 |
|
75 |
+
<?php if ( $themes ) { ?>
|
76 |
+
<div class="imagify-folder-themes-suggestion">
|
77 |
+
<div class="imagify-fts-header imagify-flex imagify-vcenter">
|
78 |
+
<span><i class="dashicons dashicons-info"></i></span>
|
79 |
+
<p>
|
80 |
+
<?php
|
81 |
+
$theme = reset( $themes );
|
82 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
83 |
/* translators: %s is a theme name. */
|
84 |
+
printf( __( 'You’re using %s', 'imagify' ), '<strong>' . $theme['name'] . '</strong>' );
|
85 |
+
|
86 |
+
if ( $themes_count > 1 ) {
|
87 |
+
$theme = end( $themes );
|
88 |
+
echo '<br>';
|
89 |
+
/* translators: %s is a theme name. */
|
90 |
+
printf( __( 'child theme of %s', 'imagify' ), '<strong>' . $theme['name'] . '</strong>' );
|
91 |
+
}
|
92 |
+
?>
|
93 |
+
</p>
|
94 |
+
</div>
|
95 |
+
|
96 |
+
<div class="imagify-fts-content">
|
97 |
+
<?php
|
98 |
+
if ( ! $themes_not_added ) {
|
99 |
+
?>
|
100 |
+
<p class="imagify-mb0"><?php echo _n( 'Your theme is already in the optimization process. All Good!', 'Your themes are already in the optimization process. All Good!', $themes_count, 'imagify' ); ?></p>
|
101 |
+
<?php
|
102 |
+
} elseif ( count( $themes_not_added ) !== $themes_count ) {
|
103 |
+
$theme = reset( $themes_not_added );
|
104 |
+
$theme = $themes[ $theme ];
|
105 |
+
?>
|
106 |
+
<p><?php _e( 'Only one of your current themes is in the optimization process, would you like to also optimize the other one?', 'imagify' ); ?></p>
|
107 |
+
|
108 |
+
<button id="imagify-add-themes-to-custom-folder"
|
109 |
+
class="button imagify-button-clean imagify-add-themes" type="button"
|
110 |
+
data-theme="<?php echo esc_attr( $theme['path'] ) . '#///#' . esc_attr( $theme['label'] ); ?>">
|
111 |
+
<span class="dashicons dashicons-plus"></span>
|
112 |
+
<span class="button-text"><?php
|
113 |
+
/* translators: %s is a theme name. */
|
114 |
+
printf( __( 'Add %s to optimization', 'imagify' ), '<strong>' . $theme['name'] . '</strong>' );
|
115 |
+
?></span>
|
116 |
+
</button>
|
117 |
+
<?php
|
118 |
+
} else {
|
119 |
+
foreach ( $themes as $path => $theme ) {
|
120 |
+
$themes[ $path ] = esc_attr( $theme['path'] ) . '#///#' . esc_attr( $theme['label'] );
|
121 |
+
}
|
122 |
+
?>
|
123 |
+
<p><?php echo _n( 'Would you like to optimize your theme?', 'Would you like to optimize your themes?', $themes_count, 'imagify' ); ?></p>
|
124 |
+
|
125 |
+
<button id="imagify-add-themes-to-custom-folder"
|
126 |
+
class="button imagify-button-clean imagify-add-themes" type="button"
|
127 |
+
data-theme="<?php echo implode( '" data-theme-parent="', $themes ); ?>">
|
128 |
+
<span class="dashicons dashicons-plus"></span>
|
129 |
+
<span
|
130 |
+
class="button-text"><?php echo _n( 'Add the theme to optimization', 'Add the themes to optimization', $themes_count, 'imagify' ); ?></span>
|
131 |
+
</button>
|
132 |
+
<?php
|
133 |
+
}
|
134 |
+
?>
|
135 |
+
</div>
|
136 |
+
</div>
|
137 |
+
<?php } ?>
|
138 |
+
|
139 |
+
<p class="imagify-kindof-title imagify-flex imagify-vcenter">
|
140 |
+
<span><?php _e( 'Select folders for optimization.', 'imagify' ); ?></span>
|
141 |
+
<span>
|
142 |
+
<button id="imagify-add-custom-folder"
|
143 |
+
class="button imagify-button-mini imagify-button-primary imagify-add-custom-folder"
|
144 |
+
type="button">
|
145 |
<span class="dashicons dashicons-plus"></span>
|
146 |
<span class="button-text"><?php _e( 'Add folders', 'imagify' ); ?></span>
|
147 |
</button>
|
148 |
<img class="imagify-loader" aria-hidden="true" alt="<?php esc_attr_e( 'Loading...', 'imagify' ); ?>" src="<?php echo esc_url( IMAGIFY_ASSETS_IMG_URL . 'loader-balls.svg' ); ?>" width="38" height="24"/>
|
149 |
</span>
|
150 |
+
</p>
|
151 |
|
152 |
+
<fieldset id="imagify-custom-folders-selected">
|
153 |
+
<?php
|
154 |
+
if ( $custom_folders ) {
|
155 |
+
foreach ( $custom_folders as $placeholder => $label ) {
|
156 |
+
$this->print_template( 'part-settings-row-custom-folder', array(
|
157 |
+
'value' => $placeholder,
|
158 |
+
'label' => $label,
|
159 |
+
) );
|
160 |
+
}
|
161 |
+
}
|
162 |
+
?>
|
163 |
+
</fieldset>
|
164 |
+
|
165 |
+
<p>
|
166 |
+
<?php
|
167 |
+
printf(
|
168 |
+
/* translators: 1 and 2 are <strong> opening and closing tags. */
|
169 |
+
__( '%1$sSelecting a folder will also optimize images in sub-folders.%2$s The only exception is "Site’s root": when selected, only images that are directly at the site’s root will be optimized (sub-folders can be selected separately).', 'imagify' ),
|
170 |
+
'<strong>',
|
171 |
+
'</strong>'
|
172 |
+
);
|
173 |
+
?>
|
174 |
+
<br/>
|
175 |
+
<?php _e( 'Folders that are hidden in the folder selector window are excluded and will not be optimized even if a parent folder is selected.', 'imagify' ); ?>
|
176 |
+
</p>
|
177 |
+
|
178 |
+
<p class="imagify-success hidden"><?php _e( 'You changed your custom folder settings, don\'t forget to save your changes!', 'imagify' ); ?></p>
|
179 |
+
|
180 |
+
<script type="text/html" id="tmpl-imagify-custom-folder">
|
181 |
+
<?php
|
182 |
$this->print_template( 'part-settings-row-custom-folder', array(
|
183 |
+
'value' => '{{ data.value }}',
|
184 |
+
'label' => '{{ data.label }}',
|
185 |
) );
|
186 |
+
?>
|
187 |
+
</script>
|
188 |
+
</div>
|
189 |
+
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
190 |
</div>
|
|
|
191 |
<?php
|
views/part-settings-library.php
CHANGED
@@ -5,29 +5,30 @@ $settings = Imagify_Settings::get_instance();
|
|
5 |
$options = Imagify_Options::get_instance();
|
6 |
$option_name = $options->get_option_name();
|
7 |
?>
|
8 |
-
<div class="
|
9 |
-
|
|
|
10 |
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
|
24 |
-
|
25 |
<label for="imagify_resize_larger_w">
|
26 |
<?php
|
27 |
$max_sizes = get_imagify_max_intermediate_image_size();
|
28 |
$resize_larger_w = $options->get( 'resize_larger_w' );
|
29 |
printf(
|
30 |
-
|
31 |
esc_html__( 'to maximum %s pixels width', 'imagify' ),
|
32 |
'<input type="number" id="imagify_resize_larger_w" min="' . $max_sizes['width'] . '" name="' . $option_name . '[resize_larger_w]" value="' . ( $resize_larger_w ? $resize_larger_w : '' ) . '" size="5">'
|
33 |
);
|
@@ -35,64 +36,65 @@ $option_name = $options->get_option_name();
|
|
35 |
</label>
|
36 |
</span>
|
37 |
|
38 |
-
|
39 |
<span class="dashicons dashicons-info"></span>
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
</span>
|
56 |
-
|
57 |
|
58 |
-
|
59 |
|
60 |
-
|
61 |
|
62 |
-
|
63 |
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
<?php esc_html_e( 'Remember each additional image size will affect your Imagify monthly usage!', 'imagify' ); ?>
|
79 |
</span>
|
80 |
-
|
81 |
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
|
96 |
-
|
97 |
-
</div>
|
|
|
98 |
<?php
|
5 |
$options = Imagify_Options::get_instance();
|
6 |
$option_name = $options->get_option_name();
|
7 |
?>
|
8 |
+
<div class="imagify-media-lib-section">
|
9 |
+
<div class="<?php echo imagify_can_optimize_custom_folders() ? 'imagify-col' : ''; ?>">
|
10 |
+
<h3 class="imagify-options-subtitle"><?php esc_html_e( 'Media Library', 'imagify' ); ?></h3>
|
11 |
|
12 |
+
<p class="imagify-setting-line">
|
13 |
+
<?php
|
14 |
+
$settings->field_checkbox(
|
15 |
+
[
|
16 |
+
'option_name' => 'resize_larger',
|
17 |
+
'label' => __( 'Resize larger images', 'imagify' ),
|
18 |
+
'attributes' => [
|
19 |
+
'aria-describedby' => 'describe-resize_larger',
|
20 |
+
],
|
21 |
+
]
|
22 |
+
);
|
23 |
+
?>
|
24 |
|
25 |
+
<span class="imagify-options-line">
|
26 |
<label for="imagify_resize_larger_w">
|
27 |
<?php
|
28 |
$max_sizes = get_imagify_max_intermediate_image_size();
|
29 |
$resize_larger_w = $options->get( 'resize_larger_w' );
|
30 |
printf(
|
31 |
+
/* translators: 1 is a text input for a number of pixels (don't use %d). */
|
32 |
esc_html__( 'to maximum %s pixels width', 'imagify' ),
|
33 |
'<input type="number" id="imagify_resize_larger_w" min="' . $max_sizes['width'] . '" name="' . $option_name . '[resize_larger_w]" value="' . ( $resize_larger_w ? $resize_larger_w : '' ) . '" size="5">'
|
34 |
);
|
36 |
</label>
|
37 |
</span>
|
38 |
|
39 |
+
<span id="describe-resize_larger" class="imagify-info">
|
40 |
<span class="dashicons dashicons-info"></span>
|
41 |
+
<?php
|
42 |
+
printf(
|
43 |
+
/* translators: 1 is a number of pixels. */
|
44 |
+
esc_html__( 'This option is recommended to reduce larger images. You can save up to 80%% after resizing. The new width should not be less than your largest thumbnail width, which is actually %dpx.', 'imagify' ),
|
45 |
+
$max_sizes['width']
|
46 |
+
);
|
47 |
+
echo ' ';
|
48 |
|
49 |
+
if ( function_exists( 'wp_get_original_image_path' ) ) {
|
50 |
+
// WP 5.3+.
|
51 |
+
echo '<strong>' . esc_html__( 'Resizing is done on upload or during optimization.', 'imagify' ) . '</strong>';
|
52 |
+
} else {
|
53 |
+
esc_html_e( 'Resizing is done only during optimization.', 'imagify' );
|
54 |
+
}
|
55 |
+
?>
|
56 |
</span>
|
57 |
+
</p>
|
58 |
|
59 |
+
<?php if ( ! imagify_is_active_for_network() ) : ?>
|
60 |
|
61 |
+
<div class="imagify-divider"></div>
|
62 |
|
63 |
+
<h4 class="imagify-h4-like"><?php esc_html_e( 'Files optimization', 'imagify' ); ?></h4>
|
64 |
|
65 |
+
<p>
|
66 |
+
<?php esc_html_e( 'You can choose to optimize different image sizes created by WordPress here.', 'imagify' ); ?>
|
67 |
+
</p>
|
68 |
|
69 |
+
<p>
|
70 |
+
<?php
|
71 |
+
printf(
|
72 |
+
/* translators: 1 is a "bold" tag start, 2 is the "bold" tag end. */
|
73 |
+
esc_html__( 'The %1$soriginal size%2$s is %1$sautomatically optimized%2$s by Imagify.', 'imagify' ),
|
74 |
+
'<strong>', '</strong>'
|
75 |
+
);
|
76 |
+
?>
|
77 |
+
<br>
|
78 |
+
<span class="imagify-success">
|
79 |
<?php esc_html_e( 'Remember each additional image size will affect your Imagify monthly usage!', 'imagify' ); ?>
|
80 |
</span>
|
81 |
+
</p>
|
82 |
|
83 |
+
<?php
|
84 |
+
/**
|
85 |
+
* Disallowed thumbnail sizes.
|
86 |
+
*/
|
87 |
+
$settings->field_checkbox_list(
|
88 |
+
[
|
89 |
+
'option_name' => 'disallowed-sizes',
|
90 |
+
'legend' => __( 'Choose the sizes to optimize', 'imagify' ),
|
91 |
+
'values' => Imagify_Settings::get_thumbnail_sizes(),
|
92 |
+
'reverse_check' => true,
|
93 |
+
]
|
94 |
+
);
|
95 |
+
?>
|
96 |
|
97 |
+
<?php endif; ?>
|
98 |
+
</div>
|
99 |
+
</div>
|
100 |
<?php
|
views/part-settings-webp.php
CHANGED
@@ -4,13 +4,13 @@ defined( 'ABSPATH' ) || die( 'Cheatin’ uh?' );
|
|
4 |
$settings = Imagify_Settings::get_instance();
|
5 |
?>
|
6 |
<div>
|
7 |
-
<h3 class="imagify-options-subtitle"><?php _e( '
|
8 |
|
9 |
<div class="imagify-setting-line">
|
10 |
<?php
|
11 |
$settings->field_checkbox( [
|
12 |
'option_name' => 'convert_to_webp',
|
13 |
-
'label' => __( 'Create
|
14 |
'attributes' => [
|
15 |
'aria-describedby' => 'describe-convert_to_webp',
|
16 |
],
|
@@ -21,7 +21,7 @@ $settings = Imagify_Settings::get_instance();
|
|
21 |
<?php
|
22 |
$settings->field_checkbox( [
|
23 |
'option_name' => 'display_webp',
|
24 |
-
'label' => __( 'Display images in
|
25 |
] );
|
26 |
?>
|
27 |
|
@@ -114,7 +114,7 @@ $settings = Imagify_Settings::get_instance();
|
|
114 |
echo '<br/>';
|
115 |
|
116 |
/**
|
117 |
-
* Add more information about
|
118 |
*
|
119 |
* @since 1.9
|
120 |
* @author Grégory Viguier
|
@@ -135,7 +135,7 @@ $settings = Imagify_Settings::get_instance();
|
|
135 |
echo esc_html(
|
136 |
sprintf(
|
137 |
/* translators: %s is a formatted number (don’t use %d). */
|
138 |
-
_n( 'It seems that you have %s optimized image without
|
139 |
number_format_i18n( $count )
|
140 |
)
|
141 |
);
|
@@ -144,7 +144,7 @@ $settings = Imagify_Settings::get_instance();
|
|
144 |
|
145 |
<button id="imagify-generate-webp-versions" class="button imagify-button-primary imagify-button-mini" type="button">
|
146 |
<span class="dashicons dashicons-admin-generic"></span>
|
147 |
-
<span class="button-text"><?php esc_html_e( 'Generate missing
|
148 |
</button>
|
149 |
|
150 |
<div aria-hidden="true" class="imagify-progress hidden">
|
4 |
$settings = Imagify_Settings::get_instance();
|
5 |
?>
|
6 |
<div>
|
7 |
+
<h3 class="imagify-options-subtitle"><?php _e( 'WebP format', 'imagify' ); ?></h3>
|
8 |
|
9 |
<div class="imagify-setting-line">
|
10 |
<?php
|
11 |
$settings->field_checkbox( [
|
12 |
'option_name' => 'convert_to_webp',
|
13 |
+
'label' => __( 'Create WebP versions of images', 'imagify' ),
|
14 |
'attributes' => [
|
15 |
'aria-describedby' => 'describe-convert_to_webp',
|
16 |
],
|
21 |
<?php
|
22 |
$settings->field_checkbox( [
|
23 |
'option_name' => 'display_webp',
|
24 |
+
'label' => __( 'Display images in WebP format on the site', 'imagify' ),
|
25 |
] );
|
26 |
?>
|
27 |
|
114 |
echo '<br/>';
|
115 |
|
116 |
/**
|
117 |
+
* Add more information about WebP.
|
118 |
*
|
119 |
* @since 1.9
|
120 |
* @author Grégory Viguier
|
135 |
echo esc_html(
|
136 |
sprintf(
|
137 |
/* translators: %s is a formatted number (don’t use %d). */
|
138 |
+
_n( 'It seems that you have %s optimized image without WebP versions. You can generate them here if a backup copy is available.', 'It seems that you have %s optimized images without WebP versions. You can generate them here if backup copies are available.', $count, 'imagify' ),
|
139 |
number_format_i18n( $count )
|
140 |
)
|
141 |
);
|
144 |
|
145 |
<button id="imagify-generate-webp-versions" class="button imagify-button-primary imagify-button-mini" type="button">
|
146 |
<span class="dashicons dashicons-admin-generic"></span>
|
147 |
+
<span class="button-text"><?php esc_html_e( 'Generate missing WebP versions', 'imagify' ); ?></span>
|
148 |
</button>
|
149 |
|
150 |
<div aria-hidden="true" class="imagify-progress hidden">
|