Version Description
(2022-10-11) =
* [Removed]
Action webpc_convert_dir
* [Removed]
Filter webpc_dir_files
* [Fixed]
Support for WordPress older than version 5.3
* [Added]
List of files for optimization in tree form
* [Added]
Handling unknown errors while converting with Imagick method
See changelog.txt for previous versions.
=
Download this release
Release Info
Developer | mateuszgbiorczyk |
Plugin | Converter for Media – Optimize images | Convert WebP & AVIF |
Version | 5.3.0 |
Comparing to | |
See all releases |
Code changes from version 5.2.4 to 5.3.0
- assets/build/css/styles.css +1 -1
- assets/build/js/scripts.js +1 -1
- assets/fonts/icons/icomoon.eot +0 -0
- assets/fonts/icons/icomoon.svg +4 -0
- assets/fonts/icons/icomoon.ttf +0 -0
- assets/fonts/icons/icomoon.woff +0 -0
- changelog.txt +7 -0
- readme.txt +9 -42
- src/Action/ConvertDir.php +0 -32
- src/Conversion/{DirectoryFiles.php → DirectoryFilesFinder.php} +23 -21
- src/Conversion/Endpoint/FilesStatsEndpoint.php +56 -0
- src/Conversion/Endpoint/ImagesCounterEndpoint.php +0 -71
- src/Conversion/FilesTreeFinder.php +196 -0
- src/Conversion/Method/GdMethod.php +25 -20
- src/Conversion/Method/ImagickMethod.php +22 -14
- src/Conversion/Method/LibraryMethodAbstract.php +6 -3
- src/Conversion/Method/MethodAbstract.php +10 -23
- src/Conversion/Method/MethodIntegrator.php +4 -4
- src/Conversion/Method/MethodInterface.php +4 -7
- src/Conversion/Method/RemoteMethod.php +11 -6
- src/Conversion/PathsFinder.php +80 -56
- src/Error/Detector/TokenStatusDetector.php +2 -4
- src/Model/Token.php +4 -0
- src/Repository/TokenRepository.php +6 -3
- src/Service/TokenValidator.php +2 -2
- src/Service/WpCliManager.php +49 -22
- src/Settings/Option/ExtraFeaturesOption.php +4 -0
- src/Settings/Option/ImageResizeOption.php +4 -1
- src/Settings/Option/OutputFormatsOption.php +4 -0
- src/Settings/Option/SupportedDirectoriesOption.php +4 -0
- src/Settings/Option/SupportedExtensionsOption.php +4 -0
- src/Settings/Page/GeneralSettingsPage.php +8 -7
- src/WebpConverter.php +2 -4
- templates/components/fields/image_size.php +4 -4
- templates/components/fields/token.php +17 -22
- templates/components/server/sub-sizes.php +5 -1
- templates/components/widgets/options-sidebar.php +0 -1
- templates/components/widgets/options.php +7 -7
- templates/components/widgets/regenerate.php +13 -2
- templates/views/settings.php +6 -5
- vendor/composer/autoload_classmap.php +3 -3
- vendor/composer/autoload_static.php +3 -3
- vendor/composer/installed.php +2 -2
- webp-converter-for-media.php +2 -2
assets/build/css/styles.css
CHANGED
@@ -1 +1 @@
|
|
1 |
-
@charset "UTF-8";@keyframes dotsLoading{0%,to{content:"..."}25%{content:" .."}50%{content:". ."}75%{content:".. "}}@font-face{font-family:webpc-icomoon;font-style:normal;font-weight:400;src:url(../../fonts/icons/icomoon.eot?ver=14651773);src:url(../../fonts/icons/icomoon.woff?ver=14651773) format("woff"),url(../../fonts/icons/icomoon.eot?ver=14651773#iefix) format("embedded-opentype"),url(../../fonts/icons/icomoon.ttf?ver=14651773) format("truetype"),url(../../fonts/icons/icomoon.svg?ver=14651773#icomoon) format("svg")}.webpcPage{color:#101517;margin:0;overflow:hidden;padding:0 20px 0 0}.webpcPage *,.webpcPage :after,.webpcPage :before{box-sizing:border-box;margin:0;padding:0}.webpcPage [hidden]{display:none!important}.webpcPage__headline{background-color:#11f3af;line-height:0;margin-bottom:30px;margin-top:10px;padding:20px 30px;position:relative;width:100%;z-index:1}.webpcPage__headline img{max-width:100%}.webpcPage__headline:before{background-image:url(../../img/logo-bg.png);background-position:0 0;background-repeat:repeat;content:"";height:100%;left:0;opacity:.05;position:absolute;top:0;width:100%;z-index:-1}.webpcPage__alert{background-color:#00a32a;color:#fff;font-size:14px;line-height:1.5714285714;margin-bottom:30px;padding:15px 20px}.webpcPage__columns{margin:0 -30px;overflow:hidden}.webpcPage__column{float:left;padding:0 30px}.webpcPage__column--large{width:66.666%}.webpcPage__column--small{width:33.333%}.webpcPage__widget{background-color:#fff}.webpcPage__widget+.webpcPage__widget{margin-top:60px}.webpcPage__widget--border{border:1px solid #11f3af;border-top:0}.webpcPage__widgetTitle{border-bottom:1px solid #dcdcde;font-size:16px;font-weight:600;line-height:1.5;padding:13px 30px;position:relative;z-index:1}.webpcMenu+.webpcPage__widget .webpcPage__widgetTitle{display:none}.webpcPage__widgetTitle--error{background-color:#d63638;border-color:transparent;color:#fff;font-weight:400}.webpcPage__widgetTitle--logo{background-color:#11f3af;border-color:transparent}.webpcPage__widgetTitle--logo:before{speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"\e902"!important;font-family:webpc-icomoon!important;font-size:30px;font-style:normal;font-variant:normal;font-weight:400;line-height:1;position:absolute;right:30px;text-transform:none;top:10px}.webpcPage__widgetTitle--logo:after{background-image:url(../../img/logo-bg.png);background-position:0 0;background-repeat:repeat;content:"";height:100%;left:0;opacity:.05;position:absolute;top:0;width:100%;z-index:-1}.webpcPage__widgetRow{padding-bottom:10px}.webpcPage__widgetRow:last-child{padding-bottom:0}.webpcPage__widgetRow .webpcButton{margin:10px 0}.webpcPage__widgetColumns{display:flex;flex-wrap:wrap;margin:0 -10px}.webpcPage__widgetColumn{padding:0 10px;width:50%}.webpcPage__widgetColumn:first-child:last-child{flex:1}.webpcPage__widgetNotice{background-color:#2271b1;margin:10px 0;padding:10px 20px}.webpcPage__widgetNotice p{color:#fff;font-size:1.2rem}.webpcPage__widgetNotice p+p{margin-top:0}.webpcPage__widgetNotice p a{color:inherit;font-weight:600;letter-spacing:1px;text-decoration:none;text-transform:uppercase}.webpcPage__footer{margin-top:30px}.webpcPage__footerLogo{text-align:center}.webpcPage__footerLogo:before{speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#dcdcde;content:"\e902"!important;font-family:webpc-icomoon!important;font-size:50px;font-style:normal;font-variant:normal;font-weight:400;line-height:1;text-transform:none}.webpcPage__footerContent{font-size:14px;line-height:1.5714285714;padding:14px 20px;text-align:center}.webpcPage__footerIcon{display:inline-block;padding:0 3px}.webpcPage__footerIcon--heart{color:#d63638}.webpcPage__footerIcon--heart:before{speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"\e901"!important;font-family:webpc-icomoon!important;font-style:normal;font-variant:normal;font-weight:400;text-transform:none}.webpcPage__footerIcon--stars{color:#f0c33c}.webpcPage__footerIcon--stars:before{content:"\e903"!important}#wp-admin-bar-webpc-menu .ab-icon:before,.webpcPage__footerIcon--stars:before{speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:webpc-icomoon!important;font-style:normal;font-variant:normal;font-weight:400;text-transform:none}#wp-admin-bar-webpc-menu .ab-icon:before{content:"\e900"!important}.notice[data-notice=webp-converter-for-media]{padding:0 8px 0 0!important;z-index:1}.notice[data-notice=webp-converter-for-media]~.notice[data-notice=webp-converter-for-media]{display:none}.notice[data-notice=webp-converter-for-media] .notice-dismiss{z-index:1}.webpcButton{background-color:#fff;border:1px solid transparent;box-shadow:none!important;box-sizing:border-box;cursor:pointer;display:inline-block;font-size:14px;line-height:1.5714285714;min-width:180px;opacity:1!important;outline:none!important;padding:9px 30px;position:relative;text-align:center;text-decoration:none!important;transition:color .3s!important;z-index:10}p>.webpcButton{margin:6px 0}.webpcButton:before{float:left;font-family:dashicons;font-size:20px;line-height:1.1;margin-right:10px}.webpcButton:after{content:"";height:100%;left:0;position:absolute;top:0;transition:width .3s;width:0;z-index:-1}.webpcButton:hover:after{width:100%}.webpcButton[disabled]{opacity:.5!important;pointer-events:none}.webpcButton--blue:hover,.webpcButton--gray:hover,.webpcButton--red:hover{color:#fff!important}.webpcButton--blue{border-color:#2271b1;color:#2271b1!important}.webpcButton--blue.webpcButton--bg,.webpcButton--blue:after{background-color:#2271b1}.webpcButton--blue.webpcButton--bg:after{background-color:#135e96}.webpcButton--red{border-color:#d63638;color:#d63638!important}.webpcButton--red.webpcButton--bg,.webpcButton--red:after{background-color:#d63638}.webpcButton--red.webpcButton--bg:after{background-color:#b32d2e}.webpcButton--gray{border-color:#c3c4c7;color:#c3c4c7!important}.webpcButton--gray.webpcButton--bg,.webpcButton--gray:after{background-color:#c3c4c7}.webpcButton--gray.webpcButton--bg:after{background-color:#a7aaad}.webpcButton--bg{color:#fff!important}.webpcContent{padding:20px 30px}.webpcContent--author{background-image:url(../../img/author.png);background-position:left calc(100% - 30px);background-repeat:no-repeat;background-size:152px 152px;margin-left:20px;padding-left:172px}.webpcContent p{font-size:14px;line-height:1.5714285714;max-width:800px}.webpcContent p.center{text-align:center}.webpcContent--wide p{max-width:100%}.webpcContent a{box-shadow:none;color:#2271b1;outline:none;text-decoration:underline;transition:opacity .3s}.webpcContent a:hover{opacity:.5}.webpcContent h1,.webpcContent h2,.webpcContent h3,.webpcContent h4,.webpcContent h5,.webpcContent h6{font-size:16px;font-weight:600;line-height:1.5}.webpcContent h1,.webpcContent h2,.webpcContent h3,.webpcContent h4,.webpcContent h5,.webpcContent h6,.webpcContent p{margin:10px 0 0;padding:4px 0}.webpcContent h1:first-child,.webpcContent h2:first-child,.webpcContent h3:first-child,.webpcContent h4:first-child,.webpcContent h5:first-child,.webpcContent h6:first-child,.webpcContent p:first-child,.webpcContent p>p{margin-top:0}.webpcInput+p{background-color:#f0f0f1;margin:0 0 10px;max-width:none;padding:14px 20px}.webpcContent h1+p,.webpcContent h2+p,.webpcContent h3+p,.webpcContent h4+p,.webpcContent h5+p,.webpcContent h6+p{font-size:12px;line-height:1.75;margin-top:0}.webpcContent--notice{position:relative}.webpcContent--notice h1+p,.webpcContent--notice h2+p,.webpcContent--notice h3+p,.webpcContent--notice h4+p,.webpcContent--notice h5+p,.webpcContent--notice h6+p{font-size:14px;line-height:1.5714285714}.webpcContent--notice img{bottom:30px;display:block;position:absolute;right:30px;z-index:-1}.webpcContent__buttons{margin-top:-10px;overflow:hidden;padding:10px 0}.webpcContent__button{float:left;margin:20px 20px 0 0}.webpcContent__button:last-child{margin-right:0}.webpcField{display:flex;padding:10px 0}.webpcField--center{align-items:center}.webpcField+.webpcField{margin-top:-12px}.webpcField__input{display:none!important}.webpcField__input+label{display:inline-block;position:relative}.webpcField__input[disabled]+label{pointer-events:none}.webpcField__input[disabled]+label:after,.webpcField__input[disabled]+label:before{opacity:.25}.webpcField__input--checkbox+label,.webpcField__input--radio+label{height:22px;width:22px}.webpcField__input--checkbox+label:after,.webpcField__input--checkbox+label:before,.webpcField__input--radio+label:after,.webpcField__input--radio+label:before{align-items:center;content:"";display:flex;height:22px;justify-content:center;left:0;position:absolute;top:0;width:22px}.webpcField__input--checkbox+label:before,.webpcField__input--radio+label:before{border:1px solid #c3c4c7}.webpcField__input--checkbox+label:after,.webpcField__input--radio+label:after{position:absolute;transform:scale(0);transition:transform .3s}.webpcField__input--checkbox:checked+label:after,.webpcField__input--radio:checked+label:after{transform:scale(1)}.webpcField__input--checkbox+label:after{color:#00a32a;content:"\f147";font-family:dashicons;font-size:20px;line-height:1}.webpcField__input--radio+label:before{border-radius:50%}.webpcField__input--radio+label:after{background-color:#00a32a;border-radius:50%;content:"";height:8px;left:7px;top:7px;width:8px}.webpcField__input--toggle+label{height:22px;width:44px}.webpcField__input--toggle+label:after,.webpcField__input--toggle+label:before{content:"";position:absolute}.webpcField__input--toggle+label:before{background-color:#dcdcde;border:1px solid #c3c4c7;border-radius:11px;height:22px;left:0;top:0;transition:background-color .3s;width:44px}.webpcField__input--toggle+label:after{background-color:#fff;border-radius:50%;height:16px;left:3px;position:absolute;top:3px;transition:transform .3s;width:16px}.webpcField__input--toggle:checked+label:before{background-color:#00a32a}.webpcField__input--toggle:checked+label:after{transform:translateX(22px)}.webpcField__label{display:block;font-size:14px;line-height:1.5714285714;max-width:650px;position:relative}.webpcField__input~.webpcField__label{margin-left:20px}.webpcInput{align-items:center;display:flex;padding:10px 0}.webpcInput__field{border:1px solid #c3c4c7!important;border-radius:0!important;box-shadow:none!important;flex:1;font-size:14px!important;line-height:1.5714285714!important;padding:9px 15px!important}.webpcInput__field--small{margin:0 10px;padding:4px 10px!important;width:80px}.webpcInput__field[readonly]{background-color:#f0f0f1}.webpcInput__button{margin:0 0 0 10px!important}.webpcLoader__columns{display:flex;justify-content:center;margin:-30px -30px 0;padding:10px 0;text-align:center}.webpcLoader__column{line-height:0;margin-top:30px;padding:0 30px}.webpcLoader__columnInner{display:inline-block;position:relative}.webpcLoader__columnInner:before{background-color:#f0f0f1;border-radius:50%;content:"";height:calc(100% - 10px);left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:calc(100% - 10px)}.webpcLoader__columnCircle{fill:none;stroke:#00a32a;stroke-width:10px;stroke-dasharray:596.90248;stroke-dashoffset:596.90248;height:200px;transform:rotate(-90deg);transition:stroke-dashoffset 2.5s;width:200px}.webpcLoader__column[data-percent="1"] .webpcLoader__columnCircle{stroke-dashoffset:590.9334552}.webpcLoader__column[data-percent="2"] .webpcLoader__columnCircle{stroke-dashoffset:584.9644304}.webpcLoader__column[data-percent="3"] .webpcLoader__columnCircle{stroke-dashoffset:578.9954056}.webpcLoader__column[data-percent="4"] .webpcLoader__columnCircle{stroke-dashoffset:573.0263808}.webpcLoader__column[data-percent="5"] .webpcLoader__columnCircle{stroke-dashoffset:567.057356}.webpcLoader__column[data-percent="6"] .webpcLoader__columnCircle{stroke-dashoffset:561.0883312}.webpcLoader__column[data-percent="7"] .webpcLoader__columnCircle{stroke-dashoffset:555.1193064}.webpcLoader__column[data-percent="8"] .webpcLoader__columnCircle{stroke-dashoffset:549.1502816}.webpcLoader__column[data-percent="9"] .webpcLoader__columnCircle{stroke-dashoffset:543.1812568}.webpcLoader__column[data-percent="10"] .webpcLoader__columnCircle{stroke-dashoffset:537.212232}.webpcLoader__column[data-percent="11"] .webpcLoader__columnCircle{stroke-dashoffset:531.2432072}.webpcLoader__column[data-percent="12"] .webpcLoader__columnCircle{stroke-dashoffset:525.2741824}.webpcLoader__column[data-percent="13"] .webpcLoader__columnCircle{stroke-dashoffset:519.3051576}.webpcLoader__column[data-percent="14"] .webpcLoader__columnCircle{stroke-dashoffset:513.3361328}.webpcLoader__column[data-percent="15"] .webpcLoader__columnCircle{stroke-dashoffset:507.367108}.webpcLoader__column[data-percent="16"] .webpcLoader__columnCircle{stroke-dashoffset:501.3980832}.webpcLoader__column[data-percent="17"] .webpcLoader__columnCircle{stroke-dashoffset:495.4290584}.webpcLoader__column[data-percent="18"] .webpcLoader__columnCircle{stroke-dashoffset:489.4600336}.webpcLoader__column[data-percent="19"] .webpcLoader__columnCircle{stroke-dashoffset:483.4910088}.webpcLoader__column[data-percent="20"] .webpcLoader__columnCircle{stroke-dashoffset:477.521984}.webpcLoader__column[data-percent="21"] .webpcLoader__columnCircle{stroke-dashoffset:471.5529592}.webpcLoader__column[data-percent="22"] .webpcLoader__columnCircle{stroke-dashoffset:465.5839344}.webpcLoader__column[data-percent="23"] .webpcLoader__columnCircle{stroke-dashoffset:459.6149096}.webpcLoader__column[data-percent="24"] .webpcLoader__columnCircle{stroke-dashoffset:453.6458848}.webpcLoader__column[data-percent="25"] .webpcLoader__columnCircle{stroke-dashoffset:447.67686}.webpcLoader__column[data-percent="26"] .webpcLoader__columnCircle{stroke-dashoffset:441.7078352}.webpcLoader__column[data-percent="27"] .webpcLoader__columnCircle{stroke-dashoffset:435.7388104}.webpcLoader__column[data-percent="28"] .webpcLoader__columnCircle{stroke-dashoffset:429.7697856}.webpcLoader__column[data-percent="29"] .webpcLoader__columnCircle{stroke-dashoffset:423.8007608}.webpcLoader__column[data-percent="30"] .webpcLoader__columnCircle{stroke-dashoffset:417.831736}.webpcLoader__column[data-percent="31"] .webpcLoader__columnCircle{stroke-dashoffset:411.8627112}.webpcLoader__column[data-percent="32"] .webpcLoader__columnCircle{stroke-dashoffset:405.8936864}.webpcLoader__column[data-percent="33"] .webpcLoader__columnCircle{stroke-dashoffset:399.9246616}.webpcLoader__column[data-percent="34"] .webpcLoader__columnCircle{stroke-dashoffset:393.9556368}.webpcLoader__column[data-percent="35"] .webpcLoader__columnCircle{stroke-dashoffset:387.986612}.webpcLoader__column[data-percent="36"] .webpcLoader__columnCircle{stroke-dashoffset:382.0175872}.webpcLoader__column[data-percent="37"] .webpcLoader__columnCircle{stroke-dashoffset:376.0485624}.webpcLoader__column[data-percent="38"] .webpcLoader__columnCircle{stroke-dashoffset:370.0795376}.webpcLoader__column[data-percent="39"] .webpcLoader__columnCircle{stroke-dashoffset:364.1105128}.webpcLoader__column[data-percent="40"] .webpcLoader__columnCircle{stroke-dashoffset:358.141488}.webpcLoader__column[data-percent="41"] .webpcLoader__columnCircle{stroke-dashoffset:352.1724632}.webpcLoader__column[data-percent="42"] .webpcLoader__columnCircle{stroke-dashoffset:346.2034384}.webpcLoader__column[data-percent="43"] .webpcLoader__columnCircle{stroke-dashoffset:340.2344136}.webpcLoader__column[data-percent="44"] .webpcLoader__columnCircle{stroke-dashoffset:334.2653888}.webpcLoader__column[data-percent="45"] .webpcLoader__columnCircle{stroke-dashoffset:328.296364}.webpcLoader__column[data-percent="46"] .webpcLoader__columnCircle{stroke-dashoffset:322.3273392}.webpcLoader__column[data-percent="47"] .webpcLoader__columnCircle{stroke-dashoffset:316.3583144}.webpcLoader__column[data-percent="48"] .webpcLoader__columnCircle{stroke-dashoffset:310.3892896}.webpcLoader__column[data-percent="49"] .webpcLoader__columnCircle{stroke-dashoffset:304.4202648}.webpcLoader__column[data-percent="50"] .webpcLoader__columnCircle{stroke-dashoffset:298.45124}.webpcLoader__column[data-percent="51"] .webpcLoader__columnCircle{stroke-dashoffset:292.4822152}.webpcLoader__column[data-percent="52"] .webpcLoader__columnCircle{stroke-dashoffset:286.5131904}.webpcLoader__column[data-percent="53"] .webpcLoader__columnCircle{stroke-dashoffset:280.5441656}.webpcLoader__column[data-percent="54"] .webpcLoader__columnCircle{stroke-dashoffset:274.5751408}.webpcLoader__column[data-percent="55"] .webpcLoader__columnCircle{stroke-dashoffset:268.606116}.webpcLoader__column[data-percent="56"] .webpcLoader__columnCircle{stroke-dashoffset:262.6370912}.webpcLoader__column[data-percent="57"] .webpcLoader__columnCircle{stroke-dashoffset:256.6680664}.webpcLoader__column[data-percent="58"] .webpcLoader__columnCircle{stroke-dashoffset:250.6990416}.webpcLoader__column[data-percent="59"] .webpcLoader__columnCircle{stroke-dashoffset:244.7300168}.webpcLoader__column[data-percent="60"] .webpcLoader__columnCircle{stroke-dashoffset:238.760992}.webpcLoader__column[data-percent="61"] .webpcLoader__columnCircle{stroke-dashoffset:232.7919672}.webpcLoader__column[data-percent="62"] .webpcLoader__columnCircle{stroke-dashoffset:226.8229424}.webpcLoader__column[data-percent="63"] .webpcLoader__columnCircle{stroke-dashoffset:220.8539176}.webpcLoader__column[data-percent="64"] .webpcLoader__columnCircle{stroke-dashoffset:214.8848928}.webpcLoader__column[data-percent="65"] .webpcLoader__columnCircle{stroke-dashoffset:208.915868}.webpcLoader__column[data-percent="66"] .webpcLoader__columnCircle{stroke-dashoffset:202.9468432}.webpcLoader__column[data-percent="67"] .webpcLoader__columnCircle{stroke-dashoffset:196.9778184}.webpcLoader__column[data-percent="68"] .webpcLoader__columnCircle{stroke-dashoffset:191.0087936}.webpcLoader__column[data-percent="69"] .webpcLoader__columnCircle{stroke-dashoffset:185.0397688}.webpcLoader__column[data-percent="70"] .webpcLoader__columnCircle{stroke-dashoffset:179.070744}.webpcLoader__column[data-percent="71"] .webpcLoader__columnCircle{stroke-dashoffset:173.1017192}.webpcLoader__column[data-percent="72"] .webpcLoader__columnCircle{stroke-dashoffset:167.1326944}.webpcLoader__column[data-percent="73"] .webpcLoader__columnCircle{stroke-dashoffset:161.1636696}.webpcLoader__column[data-percent="74"] .webpcLoader__columnCircle{stroke-dashoffset:155.1946448}.webpcLoader__column[data-percent="75"] .webpcLoader__columnCircle{stroke-dashoffset:149.22562}.webpcLoader__column[data-percent="76"] .webpcLoader__columnCircle{stroke-dashoffset:143.2565952}.webpcLoader__column[data-percent="77"] .webpcLoader__columnCircle{stroke-dashoffset:137.2875704}.webpcLoader__column[data-percent="78"] .webpcLoader__columnCircle{stroke-dashoffset:131.3185456}.webpcLoader__column[data-percent="79"] .webpcLoader__columnCircle{stroke-dashoffset:125.3495208}.webpcLoader__column[data-percent="80"] .webpcLoader__columnCircle{stroke-dashoffset:119.380496}.webpcLoader__column[data-percent="81"] .webpcLoader__columnCircle{stroke-dashoffset:113.4114712}.webpcLoader__column[data-percent="82"] .webpcLoader__columnCircle{stroke-dashoffset:107.4424464}.webpcLoader__column[data-percent="83"] .webpcLoader__columnCircle{stroke-dashoffset:101.4734216}.webpcLoader__column[data-percent="84"] .webpcLoader__columnCircle{stroke-dashoffset:95.5043968}.webpcLoader__column[data-percent="85"] .webpcLoader__columnCircle{stroke-dashoffset:89.535372}.webpcLoader__column[data-percent="86"] .webpcLoader__columnCircle{stroke-dashoffset:83.5663472}.webpcLoader__column[data-percent="87"] .webpcLoader__columnCircle{stroke-dashoffset:77.5973224}.webpcLoader__column[data-percent="88"] .webpcLoader__columnCircle{stroke-dashoffset:71.6282976}.webpcLoader__column[data-percent="89"] .webpcLoader__columnCircle{stroke-dashoffset:65.6592728}.webpcLoader__column[data-percent="90"] .webpcLoader__columnCircle{stroke-dashoffset:59.690248}.webpcLoader__column[data-percent="91"] .webpcLoader__columnCircle{stroke-dashoffset:53.7212232}.webpcLoader__column[data-percent="92"] .webpcLoader__columnCircle{stroke-dashoffset:47.7521984}.webpcLoader__column[data-percent="93"] .webpcLoader__columnCircle{stroke-dashoffset:41.7831736}.webpcLoader__column[data-percent="94"] .webpcLoader__columnCircle{stroke-dashoffset:35.8141488}.webpcLoader__column[data-percent="95"] .webpcLoader__columnCircle{stroke-dashoffset:29.845124}.webpcLoader__column[data-percent="96"] .webpcLoader__columnCircle{stroke-dashoffset:23.8760992}.webpcLoader__column[data-percent="97"] .webpcLoader__columnCircle{stroke-dashoffset:17.9070744}.webpcLoader__column[data-percent="98"] .webpcLoader__columnCircle{stroke-dashoffset:11.9380496}.webpcLoader__column[data-percent="99"] .webpcLoader__columnCircle{stroke-dashoffset:5.9690248}.webpcLoader__column[data-percent="100"] .webpcLoader__columnCircle{stroke-dashoffset:0}.webpcLoader__columnOverlay{left:0;position:absolute;text-align:center;top:50%;transform:translateY(-50%);width:100%}.webpcLoader__columnOverlayTitle{font-size:14px;font-weight:600;line-height:1.5714285714;padding:4px 20px}.webpcLoader__columnOverlayTitle strong{display:block;font-size:24px;line-height:1.2083333333}.webpcLoader__columnOverlayDesc{font-size:14px;line-height:1.5714285714;min-height:52px;padding:4px 20px}.webpcLoader__columnOverlayDesc--active{display:none}.webpcLoader__column[data-percent] .webpcLoader__columnOverlayDesc--active{display:block}.webpcLoader__column[data-percent] .webpcLoader__columnOverlayDesc--loading{display:none}.webpcLoader__columnOverlayDesc--loading:after{animation:dotsLoading 1s linear infinite;content:"...";font-family:monospace}.webpcLoader__statusProgress--error .webpcLoader__columnOverlayDesc--loading:after,.webpcLoader__statusProgress[data-percent="100"] .webpcLoader__columnOverlayDesc--loading:after{display:none}.webpcLoader__columnDesc{font-size:14px;line-height:1.5714285714;margin-bottom:-10px;margin-top:10px;padding:4px 0;text-align:center}.webpcLoader__status{margin-top:10px;padding-top:10px}.webpcLoader__statusProgress{font-size:0;height:31px;line-height:0;margin:10px 0;position:relative}.webpcLoader__statusProgress:before{background-color:#00a32a;content:"";height:100%;left:0;position:absolute;top:0;transition:width .3s;width:0}.webpcLoader__statusProgress--error:before{background-color:#d63638}.webpcLoader__statusProgress[data-percent="0"]:before{width:0}.webpcLoader__statusProgress[data-percent="1"]:before{width:1%}.webpcLoader__statusProgress[data-percent="2"]:before{width:2%}.webpcLoader__statusProgress[data-percent="3"]:before{width:3%}.webpcLoader__statusProgress[data-percent="4"]:before{width:4%}.webpcLoader__statusProgress[data-percent="5"]:before{width:5%}.webpcLoader__statusProgress[data-percent="6"]:before{width:6%}.webpcLoader__statusProgress[data-percent="7"]:before{width:7%}.webpcLoader__statusProgress[data-percent="8"]:before{width:8%}.webpcLoader__statusProgress[data-percent="9"]:before{width:9%}.webpcLoader__statusProgress[data-percent="10"]:before{width:10%}.webpcLoader__statusProgress[data-percent="11"]:before{width:11%}.webpcLoader__statusProgress[data-percent="12"]:before{width:12%}.webpcLoader__statusProgress[data-percent="13"]:before{width:13%}.webpcLoader__statusProgress[data-percent="14"]:before{width:14%}.webpcLoader__statusProgress[data-percent="15"]:before{width:15%}.webpcLoader__statusProgress[data-percent="16"]:before{width:16%}.webpcLoader__statusProgress[data-percent="17"]:before{width:17%}.webpcLoader__statusProgress[data-percent="18"]:before{width:18%}.webpcLoader__statusProgress[data-percent="19"]:before{width:19%}.webpcLoader__statusProgress[data-percent="20"]:before{width:20%}.webpcLoader__statusProgress[data-percent="21"]:before{width:21%}.webpcLoader__statusProgress[data-percent="22"]:before{width:22%}.webpcLoader__statusProgress[data-percent="23"]:before{width:23%}.webpcLoader__statusProgress[data-percent="24"]:before{width:24%}.webpcLoader__statusProgress[data-percent="25"]:before{width:25%}.webpcLoader__statusProgress[data-percent="26"]:before{width:26%}.webpcLoader__statusProgress[data-percent="27"]:before{width:27%}.webpcLoader__statusProgress[data-percent="28"]:before{width:28%}.webpcLoader__statusProgress[data-percent="29"]:before{width:29%}.webpcLoader__statusProgress[data-percent="30"]:before{width:30%}.webpcLoader__statusProgress[data-percent="31"]:before{width:31%}.webpcLoader__statusProgress[data-percent="32"]:before{width:32%}.webpcLoader__statusProgress[data-percent="33"]:before{width:33%}.webpcLoader__statusProgress[data-percent="34"]:before{width:34%}.webpcLoader__statusProgress[data-percent="35"]:before{width:35%}.webpcLoader__statusProgress[data-percent="36"]:before{width:36%}.webpcLoader__statusProgress[data-percent="37"]:before{width:37%}.webpcLoader__statusProgress[data-percent="38"]:before{width:38%}.webpcLoader__statusProgress[data-percent="39"]:before{width:39%}.webpcLoader__statusProgress[data-percent="40"]:before{width:40%}.webpcLoader__statusProgress[data-percent="41"]:before{width:41%}.webpcLoader__statusProgress[data-percent="42"]:before{width:42%}.webpcLoader__statusProgress[data-percent="43"]:before{width:43%}.webpcLoader__statusProgress[data-percent="44"]:before{width:44%}.webpcLoader__statusProgress[data-percent="45"]:before{width:45%}.webpcLoader__statusProgress[data-percent="46"]:before{width:46%}.webpcLoader__statusProgress[data-percent="47"]:before{width:47%}.webpcLoader__statusProgress[data-percent="48"]:before{width:48%}.webpcLoader__statusProgress[data-percent="49"]:before{width:49%}.webpcLoader__statusProgress[data-percent="50"]:before{width:50%}.webpcLoader__statusProgress[data-percent="51"]:before{width:51%}.webpcLoader__statusProgress[data-percent="52"]:before{width:52%}.webpcLoader__statusProgress[data-percent="53"]:before{width:53%}.webpcLoader__statusProgress[data-percent="54"]:before{width:54%}.webpcLoader__statusProgress[data-percent="55"]:before{width:55%}.webpcLoader__statusProgress[data-percent="56"]:before{width:56%}.webpcLoader__statusProgress[data-percent="57"]:before{width:57%}.webpcLoader__statusProgress[data-percent="58"]:before{width:58%}.webpcLoader__statusProgress[data-percent="59"]:before{width:59%}.webpcLoader__statusProgress[data-percent="60"]:before{width:60%}.webpcLoader__statusProgress[data-percent="61"]:before{width:61%}.webpcLoader__statusProgress[data-percent="62"]:before{width:62%}.webpcLoader__statusProgress[data-percent="63"]:before{width:63%}.webpcLoader__statusProgress[data-percent="64"]:before{width:64%}.webpcLoader__statusProgress[data-percent="65"]:before{width:65%}.webpcLoader__statusProgress[data-percent="66"]:before{width:66%}.webpcLoader__statusProgress[data-percent="67"]:before{width:67%}.webpcLoader__statusProgress[data-percent="68"]:before{width:68%}.webpcLoader__statusProgress[data-percent="69"]:before{width:69%}.webpcLoader__statusProgress[data-percent="70"]:before{width:70%}.webpcLoader__statusProgress[data-percent="71"]:before{width:71%}.webpcLoader__statusProgress[data-percent="72"]:before{width:72%}.webpcLoader__statusProgress[data-percent="73"]:before{width:73%}.webpcLoader__statusProgress[data-percent="74"]:before{width:74%}.webpcLoader__statusProgress[data-percent="75"]:before{width:75%}.webpcLoader__statusProgress[data-percent="76"]:before{width:76%}.webpcLoader__statusProgress[data-percent="77"]:before{width:77%}.webpcLoader__statusProgress[data-percent="78"]:before{width:78%}.webpcLoader__statusProgress[data-percent="79"]:before{width:79%}.webpcLoader__statusProgress[data-percent="80"]:before{width:80%}.webpcLoader__statusProgress[data-percent="81"]:before{width:81%}.webpcLoader__statusProgress[data-percent="82"]:before{width:82%}.webpcLoader__statusProgress[data-percent="83"]:before{width:83%}.webpcLoader__statusProgress[data-percent="84"]:before{width:84%}.webpcLoader__statusProgress[data-percent="85"]:before{width:85%}.webpcLoader__statusProgress[data-percent="86"]:before{width:86%}.webpcLoader__statusProgress[data-percent="87"]:before{width:87%}.webpcLoader__statusProgress[data-percent="88"]:before{width:88%}.webpcLoader__statusProgress[data-percent="89"]:before{width:89%}.webpcLoader__statusProgress[data-percent="90"]:before{width:90%}.webpcLoader__statusProgress[data-percent="91"]:before{width:91%}.webpcLoader__statusProgress[data-percent="92"]:before{width:92%}.webpcLoader__statusProgress[data-percent="93"]:before{width:93%}.webpcLoader__statusProgress[data-percent="94"]:before{width:94%}.webpcLoader__statusProgress[data-percent="95"]:before{width:95%}.webpcLoader__statusProgress[data-percent="96"]:before{width:96%}.webpcLoader__statusProgress[data-percent="97"]:before{width:97%}.webpcLoader__statusProgress[data-percent="98"]:before{width:98%}.webpcLoader__statusProgress[data-percent="99"]:before{width:99%}.webpcLoader__statusProgress[data-percent="100"]:before{width:100%}.webpcLoader__statusProgressCount{background-color:#00a32a;color:#fff;display:inline-block;font-family:monospace;font-size:12px;line-height:1.75;padding:5px 10px;position:relative}.webpcLoader__statusProgress--error .webpcLoader__statusProgressCount{background-color:#d63638}.webpcLoader__statusProgressCount:after{animation:dotsLoading 1s linear infinite;content:"...";margin-left:5px}.webpcLoader__statusProgress--error .webpcLoader__statusProgressCount:after,.webpcLoader__statusProgress[data-percent="100"] .webpcLoader__statusProgressCount:after{display:none}.webpcLoader__statusProgress[data-percent="0"] .webpcLoader__statusProgressCount:before{content:"0%"}.webpcLoader__statusProgress[data-percent="1"] .webpcLoader__statusProgressCount:before{content:"1%"}.webpcLoader__statusProgress[data-percent="2"] .webpcLoader__statusProgressCount:before{content:"2%"}.webpcLoader__statusProgress[data-percent="3"] .webpcLoader__statusProgressCount:before{content:"3%"}.webpcLoader__statusProgress[data-percent="4"] .webpcLoader__statusProgressCount:before{content:"4%"}.webpcLoader__statusProgress[data-percent="5"] .webpcLoader__statusProgressCount:before{content:"5%"}.webpcLoader__statusProgress[data-percent="6"] .webpcLoader__statusProgressCount:before{content:"6%"}.webpcLoader__statusProgress[data-percent="7"] .webpcLoader__statusProgressCount:before{content:"7%"}.webpcLoader__statusProgress[data-percent="8"] .webpcLoader__statusProgressCount:before{content:"8%"}.webpcLoader__statusProgress[data-percent="9"] .webpcLoader__statusProgressCount:before{content:"9%"}.webpcLoader__statusProgress[data-percent="10"] .webpcLoader__statusProgressCount:before{content:"10%"}.webpcLoader__statusProgress[data-percent="11"] .webpcLoader__statusProgressCount:before{content:"11%"}.webpcLoader__statusProgress[data-percent="12"] .webpcLoader__statusProgressCount:before{content:"12%"}.webpcLoader__statusProgress[data-percent="13"] .webpcLoader__statusProgressCount:before{content:"13%"}.webpcLoader__statusProgress[data-percent="14"] .webpcLoader__statusProgressCount:before{content:"14%"}.webpcLoader__statusProgress[data-percent="15"] .webpcLoader__statusProgressCount:before{content:"15%"}.webpcLoader__statusProgress[data-percent="16"] .webpcLoader__statusProgressCount:before{content:"16%"}.webpcLoader__statusProgress[data-percent="17"] .webpcLoader__statusProgressCount:before{content:"17%"}.webpcLoader__statusProgress[data-percent="18"] .webpcLoader__statusProgressCount:before{content:"18%"}.webpcLoader__statusProgress[data-percent="19"] .webpcLoader__statusProgressCount:before{content:"19%"}.webpcLoader__statusProgress[data-percent="20"] .webpcLoader__statusProgressCount:before{content:"20%"}.webpcLoader__statusProgress[data-percent="21"] .webpcLoader__statusProgressCount:before{content:"21%"}.webpcLoader__statusProgress[data-percent="22"] .webpcLoader__statusProgressCount:before{content:"22%"}.webpcLoader__statusProgress[data-percent="23"] .webpcLoader__statusProgressCount:before{content:"23%"}.webpcLoader__statusProgress[data-percent="24"] .webpcLoader__statusProgressCount:before{content:"24%"}.webpcLoader__statusProgress[data-percent="25"] .webpcLoader__statusProgressCount:before{content:"25%"}.webpcLoader__statusProgress[data-percent="26"] .webpcLoader__statusProgressCount:before{content:"26%"}.webpcLoader__statusProgress[data-percent="27"] .webpcLoader__statusProgressCount:before{content:"27%"}.webpcLoader__statusProgress[data-percent="28"] .webpcLoader__statusProgressCount:before{content:"28%"}.webpcLoader__statusProgress[data-percent="29"] .webpcLoader__statusProgressCount:before{content:"29%"}.webpcLoader__statusProgress[data-percent="30"] .webpcLoader__statusProgressCount:before{content:"30%"}.webpcLoader__statusProgress[data-percent="31"] .webpcLoader__statusProgressCount:before{content:"31%"}.webpcLoader__statusProgress[data-percent="32"] .webpcLoader__statusProgressCount:before{content:"32%"}.webpcLoader__statusProgress[data-percent="33"] .webpcLoader__statusProgressCount:before{content:"33%"}.webpcLoader__statusProgress[data-percent="34"] .webpcLoader__statusProgressCount:before{content:"34%"}.webpcLoader__statusProgress[data-percent="35"] .webpcLoader__statusProgressCount:before{content:"35%"}.webpcLoader__statusProgress[data-percent="36"] .webpcLoader__statusProgressCount:before{content:"36%"}.webpcLoader__statusProgress[data-percent="37"] .webpcLoader__statusProgressCount:before{content:"37%"}.webpcLoader__statusProgress[data-percent="38"] .webpcLoader__statusProgressCount:before{content:"38%"}.webpcLoader__statusProgress[data-percent="39"] .webpcLoader__statusProgressCount:before{content:"39%"}.webpcLoader__statusProgress[data-percent="40"] .webpcLoader__statusProgressCount:before{content:"40%"}.webpcLoader__statusProgress[data-percent="41"] .webpcLoader__statusProgressCount:before{content:"41%"}.webpcLoader__statusProgress[data-percent="42"] .webpcLoader__statusProgressCount:before{content:"42%"}.webpcLoader__statusProgress[data-percent="43"] .webpcLoader__statusProgressCount:before{content:"43%"}.webpcLoader__statusProgress[data-percent="44"] .webpcLoader__statusProgressCount:before{content:"44%"}.webpcLoader__statusProgress[data-percent="45"] .webpcLoader__statusProgressCount:before{content:"45%"}.webpcLoader__statusProgress[data-percent="46"] .webpcLoader__statusProgressCount:before{content:"46%"}.webpcLoader__statusProgress[data-percent="47"] .webpcLoader__statusProgressCount:before{content:"47%"}.webpcLoader__statusProgress[data-percent="48"] .webpcLoader__statusProgressCount:before{content:"48%"}.webpcLoader__statusProgress[data-percent="49"] .webpcLoader__statusProgressCount:before{content:"49%"}.webpcLoader__statusProgress[data-percent="50"] .webpcLoader__statusProgressCount:before{content:"50%"}.webpcLoader__statusProgress[data-percent="51"] .webpcLoader__statusProgressCount:before{content:"51%"}.webpcLoader__statusProgress[data-percent="52"] .webpcLoader__statusProgressCount:before{content:"52%"}.webpcLoader__statusProgress[data-percent="53"] .webpcLoader__statusProgressCount:before{content:"53%"}.webpcLoader__statusProgress[data-percent="54"] .webpcLoader__statusProgressCount:before{content:"54%"}.webpcLoader__statusProgress[data-percent="55"] .webpcLoader__statusProgressCount:before{content:"55%"}.webpcLoader__statusProgress[data-percent="56"] .webpcLoader__statusProgressCount:before{content:"56%"}.webpcLoader__statusProgress[data-percent="57"] .webpcLoader__statusProgressCount:before{content:"57%"}.webpcLoader__statusProgress[data-percent="58"] .webpcLoader__statusProgressCount:before{content:"58%"}.webpcLoader__statusProgress[data-percent="59"] .webpcLoader__statusProgressCount:before{content:"59%"}.webpcLoader__statusProgress[data-percent="60"] .webpcLoader__statusProgressCount:before{content:"60%"}.webpcLoader__statusProgress[data-percent="61"] .webpcLoader__statusProgressCount:before{content:"61%"}.webpcLoader__statusProgress[data-percent="62"] .webpcLoader__statusProgressCount:before{content:"62%"}.webpcLoader__statusProgress[data-percent="63"] .webpcLoader__statusProgressCount:before{content:"63%"}.webpcLoader__statusProgress[data-percent="64"] .webpcLoader__statusProgressCount:before{content:"64%"}.webpcLoader__statusProgress[data-percent="65"] .webpcLoader__statusProgressCount:before{content:"65%"}.webpcLoader__statusProgress[data-percent="66"] .webpcLoader__statusProgressCount:before{content:"66%"}.webpcLoader__statusProgress[data-percent="67"] .webpcLoader__statusProgressCount:before{content:"67%"}.webpcLoader__statusProgress[data-percent="68"] .webpcLoader__statusProgressCount:before{content:"68%"}.webpcLoader__statusProgress[data-percent="69"] .webpcLoader__statusProgressCount:before{content:"69%"}.webpcLoader__statusProgress[data-percent="70"] .webpcLoader__statusProgressCount:before{content:"70%"}.webpcLoader__statusProgress[data-percent="71"] .webpcLoader__statusProgressCount:before{content:"71%"}.webpcLoader__statusProgress[data-percent="72"] .webpcLoader__statusProgressCount:before{content:"72%"}.webpcLoader__statusProgress[data-percent="73"] .webpcLoader__statusProgressCount:before{content:"73%"}.webpcLoader__statusProgress[data-percent="74"] .webpcLoader__statusProgressCount:before{content:"74%"}.webpcLoader__statusProgress[data-percent="75"] .webpcLoader__statusProgressCount:before{content:"75%"}.webpcLoader__statusProgress[data-percent="76"] .webpcLoader__statusProgressCount:before{content:"76%"}.webpcLoader__statusProgress[data-percent="77"] .webpcLoader__statusProgressCount:before{content:"77%"}.webpcLoader__statusProgress[data-percent="78"] .webpcLoader__statusProgressCount:before{content:"78%"}.webpcLoader__statusProgress[data-percent="79"] .webpcLoader__statusProgressCount:before{content:"79%"}.webpcLoader__statusProgress[data-percent="80"] .webpcLoader__statusProgressCount:before{content:"80%"}.webpcLoader__statusProgress[data-percent="81"] .webpcLoader__statusProgressCount:before{content:"81%"}.webpcLoader__statusProgress[data-percent="82"] .webpcLoader__statusProgressCount:before{content:"82%"}.webpcLoader__statusProgress[data-percent="83"] .webpcLoader__statusProgressCount:before{content:"83%"}.webpcLoader__statusProgress[data-percent="84"] .webpcLoader__statusProgressCount:before{content:"84%"}.webpcLoader__statusProgress[data-percent="85"] .webpcLoader__statusProgressCount:before{content:"85%"}.webpcLoader__statusProgress[data-percent="86"] .webpcLoader__statusProgressCount:before{content:"86%"}.webpcLoader__statusProgress[data-percent="87"] .webpcLoader__statusProgressCount:before{content:"87%"}.webpcLoader__statusProgress[data-percent="88"] .webpcLoader__statusProgressCount:before{content:"88%"}.webpcLoader__statusProgress[data-percent="89"] .webpcLoader__statusProgressCount:before{content:"89%"}.webpcLoader__statusProgress[data-percent="90"] .webpcLoader__statusProgressCount:before{content:"90%"}.webpcLoader__statusProgress[data-percent="91"] .webpcLoader__statusProgressCount:before{content:"91%"}.webpcLoader__statusProgress[data-percent="92"] .webpcLoader__statusProgressCount:before{content:"92%"}.webpcLoader__statusProgress[data-percent="93"] .webpcLoader__statusProgressCount:before{content:"93%"}.webpcLoader__statusProgress[data-percent="94"] .webpcLoader__statusProgressCount:before{content:"94%"}.webpcLoader__statusProgress[data-percent="95"] .webpcLoader__statusProgressCount:before{content:"95%"}.webpcLoader__statusProgress[data-percent="96"] .webpcLoader__statusProgressCount:before{content:"96%"}.webpcLoader__statusProgress[data-percent="97"] .webpcLoader__statusProgressCount:before{content:"97%"}.webpcLoader__statusProgress[data-percent="98"] .webpcLoader__statusProgressCount:before{content:"98%"}.webpcLoader__statusProgress[data-percent="99"] .webpcLoader__statusProgressCount:before{content:"99%"}.webpcLoader__statusProgress[data-percent="100"] .webpcLoader__statusProgressCount:before{content:"100%"}.webpcLoader__statusContent{font-size:14px;line-height:1.5714285714;max-width:800px;padding:4px 0}.webpcLoader__statusContent--small{font-size:12px;line-height:1.75}.webpcLoader__statusContent strong{font-weight:600}.webpcLoader__success{padding:10px 0}.webpcLoader__successInner{border-left:2px solid #00a32a;padding:0 20px}.webpcLoader__successContent{color:#00a32a;font-size:14px;font-weight:600;line-height:1.5714285714;padding:4px 0}.webpcLoader__successContent a{color:inherit}.webpcLoader__errors{margin-top:10px;padding:10px 0}.webpcLoader__errorsInner{border-left:2px solid #c3c4c7}.webpcLoader__errorsTitle{background-color:#c3c4c7;color:#fff;display:inline-block;font-size:14px;line-height:1.5714285714;padding:4px 20px}.webpcLoader__errorsContent{padding:10px 0 10px 20px}.webpcLoader__errorsContent>p{font-size:12px;line-height:1.75;margin:0;max-width:100%}.webpcLoader__errorsContent>p.webpcLoader__errorsContentError{color:#d63638;font-size:14px;font-weight:600;line-height:1.5714285714}.webpcLoader__errorsContent pre{font-size:12px;line-height:1.75;white-space:normal}.webpcLoader__button--disabled{opacity:.25!important;pointer-events:none}.webpcMenu{margin-top:30px}.webpcMenu:first-child{margin-top:0}.webpcMenu__wrapper{border-bottom:1px solid #dcdcde}.webpcMenu__items{display:flex;font-size:0}.webpcMenu__itemLink{box-shadow:none!important;display:block;font-size:16px;line-height:1.5;outline:none!important;padding:13px 30px;text-align:center;text-decoration:none!important;transition:color .3s}.webpcMenu__itemLink:focus,.webpcMenu__itemLink:hover{color:rgba(34,113,177,.5)}.webpcMenu__itemLink--active{background-color:#fff;color:#101517;font-weight:600}.webpcMenu__itemLink--active:focus,.webpcMenu__itemLink--active:hover{color:inherit}.webpcPopup{margin-top:20px}.webpcPopup__inner{background-color:#fff;border:1px solid #c3c4c7;display:flex;flex-wrap:wrap}.webpcPopup__image{background-image:url(../../img/author.png);background-position:50%;background-repeat:no-repeat;background-size:cover;width:152px}.webpcPopup__content{border-left:1px solid #c3c4c7;flex:1;padding:10px 20px}.webpcQuality__items{display:flex;flex-wrap:wrap;justify-content:space-between}.webpcQuality__item{display:flex;flex:1;justify-content:center;position:relative}.webpcQuality__item:before{background-color:#c3c4c7;content:"";height:1px;left:0;position:absolute;top:50%;width:100%}.webpcQuality__item:first-child:before{left:50%}.webpcQuality__item:last-child:before{width:50%}.webpcQuality__itemInput{display:none!important}.webpcQuality__itemLabel{display:block;height:42px;position:relative;width:42px}.webpcQuality__itemLabel:after,.webpcQuality__itemLabel:before{border-radius:50%;content:"";height:22px;position:absolute;width:22px}.webpcQuality__itemLabel:before{background-color:#fff;border:1px solid #c3c4c7;left:10px;top:10px}.webpcQuality__itemLabel:after{background-color:#00a32a;height:8px;left:17px;top:17px;transform:scale(0);transition:transform .3s;width:8px}.webpcQuality__itemInput:checked+.webpcQuality__itemLabel:after{transform:scale(1)}.webpcQuality__texts{display:flex;flex-wrap:wrap}.webpcQuality__text{flex:1;font-size:12px;line-height:1.75;padding:4px 0;text-align:center}.webpcQuality__text strong{font-size:14px;line-height:1.5714285714}.webpcServerInfo{color:#222;text-align:center}.webpcServerInfo pre{font-family:monospace;margin:0}.webpcServerInfo h1,.webpcServerInfo h2{display:none}.webpcServerInfo p{max-width:100%}.webpcServerInfo table{border:0;border-collapse:collapse;margin:10px auto;width:100%}.webpcServerInfo td,.webpcServerInfo th{border:1px solid #666;font-family:monospace;font-size:12px;line-height:1.75;padding:4px 5px;text-align:center;vertical-align:baseline}.webpcServerInfo .p{text-align:left}.webpcServerInfo .e{background-color:#ccf;font-weight:700;width:300px}.webpcServerInfo .h{background-color:#99c;font-weight:700}.webpcServerInfo .v{word-wrap:break-word;background-color:#ddd;max-width:300px;overflow-x:auto}.webpcServerInfo .v i{color:#999}.webpcServerInfo img{border:0;float:right}@media screen and (max-width:1600px){.webpcPage__columns{margin:0 -15px}.webpcPage__column{padding:0 15px}.webpcPage__widget+.webpcPage__widget{margin-top:30px}}@media screen and (max-width:1279px){.webpcPage__column--large{width:100%}.webpcPage__column--small{margin-top:30px;width:100%}}@media screen and (max-width:1024px){.webpcPage__widgetColumns{display:block}.webpcPage__widgetColumn{width:100%}}@media screen and (max-width:782px){.webpcPage{padding-right:0}.webpcContent--author{background:none;margin-left:0;padding-left:30px}.webpcContent--notice img{bottom:auto;margin:20px 0 10px;position:relative;right:auto}.webpcInput{display:block}.webpcInput__field{width:100%}.webpcInput__field--small{width:calc(100% - 20px)}.webpcInput__button{margin:10px 0 0!important}.webpcLoader__columns,.webpcMenu__items{display:block}.webpcPopup__inner{border:1px solid #c3c4c7;display:block}.webpcPopup__image{height:152px;margin:20px auto 0}.webpcPopup__content{border-left:0}}
|
1 |
+
@charset "UTF-8";@keyframes dotsLoading{0%,to{content:"..."}25%{content:" .."}50%{content:". ."}75%{content:".. "}}@font-face{font-family:webpc-icomoon;font-style:normal;font-weight:400;src:url(../../fonts/icons/icomoon.eot?ver=16180816);src:url(../../fonts/icons/icomoon.woff?ver=16180816) format("woff"),url(../../fonts/icons/icomoon.eot?ver=16180816#iefix) format("embedded-opentype"),url(../../fonts/icons/icomoon.ttf?ver=16180816) format("truetype"),url(../../fonts/icons/icomoon.svg?ver=16180816#icomoon) format("svg")}.webpcPage{color:#101517;margin:0;overflow:hidden;padding:0 20px 0 0}.webpcPage *,.webpcPage :after,.webpcPage :before{box-sizing:border-box;margin:0;padding:0}.webpcPage [hidden]{display:none!important}.webpcPage__headline{background-color:#11f3af;line-height:0;margin-bottom:30px;margin-top:10px;padding:20px 30px;position:relative;width:100%;z-index:1}.webpcPage__headline img{max-width:100%}.webpcPage__headline:before{background-image:url(../../img/logo-bg.png);background-position:0 0;background-repeat:repeat;content:"";height:100%;left:0;opacity:.05;position:absolute;top:0;width:100%;z-index:-1}.webpcPage__alert{background-color:#00a32a;color:#fff;font-size:14px;line-height:1.5714285714;margin-bottom:30px;padding:15px 20px}.webpcPage__columns{margin:0 -30px;overflow:hidden}.webpcPage__column{float:left;padding:0 30px}.webpcPage__column--large{width:66.666%}.webpcPage__column--small{width:33.333%}.webpcPage__widget{background-color:#fff}.webpcPage__widget+.webpcPage__widget{margin-top:60px}.webpcPage__widget--border{border:1px solid #11f3af;border-top:0}.webpcPage__widgetTitle{border-bottom:1px solid #dcdcde;font-size:16px;font-weight:600;line-height:1.5;padding:13px 30px;position:relative;z-index:1}.webpcMenu+.webpcPage__widget .webpcPage__widgetTitle{display:none}.webpcPage__widgetTitle--error{background-color:#d63638;border-color:transparent;color:#fff;font-weight:400}.webpcPage__widgetTitle--logo{background-color:#11f3af;border-color:transparent}.webpcPage__widgetTitle--logo:before{speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"\e902"!important;font-family:webpc-icomoon!important;font-size:30px;font-style:normal;font-variant:normal;font-weight:400;line-height:1;position:absolute;right:30px;text-transform:none;top:10px}.webpcPage__widgetTitle--logo:after{background-image:url(../../img/logo-bg.png);background-position:0 0;background-repeat:repeat;content:"";height:100%;left:0;opacity:.05;position:absolute;top:0;width:100%;z-index:-1}.webpcPage__widgetRow{padding-bottom:10px}.webpcPage__widgetRow:last-child{padding-bottom:0}.webpcPage__widgetRow>.webpcButton{margin:10px 0}.webpcPage__widgetColumns{display:flex;flex-wrap:wrap;margin:0 -10px}.webpcPage__widgetColumn{padding:0 10px;width:50%}.webpcPage__widgetColumn:first-child:last-child{flex:1}.webpcPage__widgetNotice{background-color:#2271b1;margin:10px 0;padding:10px 20px}.webpcPage__widgetNotice p{color:#fff;font-size:1.2rem}.webpcPage__widgetNotice p+p{margin-top:0}.webpcPage__widgetNotice p a{color:inherit;font-weight:600;letter-spacing:1px;text-decoration:none;text-transform:uppercase}.webpcPage__footer{margin-top:30px}.webpcPage__footerLogo{text-align:center}.webpcPage__footerLogo:before{speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#dcdcde;content:"\e902"!important;font-family:webpc-icomoon!important;font-size:50px;font-style:normal;font-variant:normal;font-weight:400;line-height:1;text-transform:none}.webpcPage__footerContent{font-size:14px;line-height:1.5714285714;padding:14px 20px;text-align:center}.webpcPage__footerIcon{display:inline-block;padding:0 3px}.webpcPage__footerIcon--heart{color:#d63638}.webpcPage__footerIcon--heart:before{speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"\e901"!important;font-family:webpc-icomoon!important;font-style:normal;font-variant:normal;font-weight:400;text-transform:none}.webpcPage__footerIcon--stars{color:#f0c33c}.webpcPage__footerIcon--stars:before{content:"\e903"!important}#wp-admin-bar-webpc-menu .ab-icon:before,.webpcPage__footerIcon--stars:before{speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:webpc-icomoon!important;font-style:normal;font-variant:normal;font-weight:400;text-transform:none}#wp-admin-bar-webpc-menu .ab-icon:before{content:"\e900"!important}.notice[data-notice=webp-converter-for-media]{padding:0 8px 0 0!important;z-index:1}.notice[data-notice=webp-converter-for-media]~.notice[data-notice=webp-converter-for-media]{display:none}.notice[data-notice=webp-converter-for-media] .notice-dismiss{z-index:1}.webpcButton{background-color:#fff;border:1px solid transparent;box-shadow:none!important;box-sizing:border-box;cursor:pointer;display:inline-block;font-size:14px;line-height:1.5714285714;min-width:180px;opacity:1!important;outline:none!important;padding:9px 30px;position:relative;text-align:center;text-decoration:none!important;transition:color .3s!important;z-index:10}p>.webpcButton{margin:6px 0}.webpcButton:before{float:left;font-family:dashicons;font-size:20px;line-height:1.1;margin-right:10px}.webpcButton:after{content:"";height:100%;left:0;position:absolute;top:0;transition:width .3s;width:0;z-index:-1}.webpcButton:hover:after{width:100%}.webpcButton[disabled]{opacity:.5!important;pointer-events:none}.webpcButton--small{font-size:12px;line-height:1.6666666667;min-width:auto;padding:4px 20px}.webpcButton--blue:hover,.webpcButton--gray:hover,.webpcButton--red:hover{color:#fff!important}.webpcButton--blue{border-color:#2271b1;color:#2271b1!important}.webpcButton--blue.webpcButton--bg,.webpcButton--blue:after{background-color:#2271b1}.webpcButton--blue.webpcButton--bg:after{background-color:#135e96}.webpcButton--red{border-color:#d63638;color:#d63638!important}.webpcButton--red.webpcButton--bg,.webpcButton--red:after{background-color:#d63638}.webpcButton--red.webpcButton--bg:after{background-color:#b32d2e}.webpcButton--gray{border-color:#c3c4c7;color:#c3c4c7!important}.webpcButton--gray.webpcButton--bg,.webpcButton--gray:after{background-color:#c3c4c7}.webpcButton--gray.webpcButton--bg:after{background-color:#a7aaad}.webpcButton--bg{color:#fff!important}.webpcContent{padding:20px 30px}.webpcContent--author{background-image:url(../../img/author.png);background-position:left calc(100% - 30px);background-repeat:no-repeat;background-size:152px 152px;margin-left:20px;padding-left:172px}.webpcContent p{font-size:14px;line-height:1.5714285714;max-width:800px}.webpcContent p.center{text-align:center}.webpcContent--wide p{max-width:100%}.webpcContent a{box-shadow:none;color:#2271b1;outline:none;text-decoration:underline;transition:opacity .3s}.webpcContent a:hover{opacity:.5}.webpcContent h1,.webpcContent h2,.webpcContent h3,.webpcContent h4,.webpcContent h5,.webpcContent h6{font-size:16px;font-weight:600;line-height:1.5}.webpcContent h1,.webpcContent h2,.webpcContent h3,.webpcContent h4,.webpcContent h5,.webpcContent h6,.webpcContent p{margin:10px 0 0;padding:4px 0}.webpcContent h1:first-child,.webpcContent h2:first-child,.webpcContent h3:first-child,.webpcContent h4:first-child,.webpcContent h5:first-child,.webpcContent h6:first-child,.webpcContent p:first-child,.webpcContent p>p{margin-top:0}.webpcInput+p{background-color:#f0f0f1;margin:0 0 10px;max-width:none;padding:14px 20px}.webpcContent h1+p,.webpcContent h2+p,.webpcContent h3+p,.webpcContent h4+p,.webpcContent h5+p,.webpcContent h6+p{font-size:12px;line-height:1.75;margin-top:0}.webpcContent--notice{position:relative}.webpcContent--notice h1+p,.webpcContent--notice h2+p,.webpcContent--notice h3+p,.webpcContent--notice h4+p,.webpcContent--notice h5+p,.webpcContent--notice h6+p{font-size:14px;line-height:1.5714285714}.webpcContent--notice img{bottom:30px;display:block;position:absolute;right:30px;z-index:-1}.webpcContent__buttons{margin-top:-10px;overflow:hidden;padding:10px 0}.webpcContent__button{float:left;margin:20px 20px 0 0}.webpcContent__button:last-child{margin-right:0}.webpcContent__loader:after{animation:dotsLoading 1s linear infinite;content:"...";font-family:monospace;line-height:1;margin-left:5px}.webpcField{display:flex;padding:10px 0}.webpcField--center{align-items:center}.webpcField+.webpcField{margin-top:-12px}.webpcField__input{display:none!important}.webpcField__input+label{display:inline-block;position:relative}.webpcField__input[disabled]+label{pointer-events:none}.webpcField__input[disabled]+label:after,.webpcField__input[disabled]+label:before{opacity:.25}.webpcField__input--checkbox+label,.webpcField__input--radio+label{height:22px;width:22px}.webpcField__input--checkbox+label:after,.webpcField__input--checkbox+label:before,.webpcField__input--radio+label:after,.webpcField__input--radio+label:before{align-items:center;content:"";display:flex;height:22px;justify-content:center;left:0;position:absolute;top:0;width:22px}.webpcField__input--checkbox+label:before,.webpcField__input--radio+label:before{border:1px solid #c3c4c7}.webpcField__input--checkbox+label:after,.webpcField__input--radio+label:after{position:absolute;transform:scale(0);transition:transform .3s}.webpcField__input--checkbox:checked+label:after,.webpcField__input--radio:checked+label:after{transform:scale(1)}.webpcField__input--checkbox+label:after{color:#00a32a;content:"\f147";font-family:dashicons;font-size:20px;line-height:1}.webpcField__input--radio+label:before{border-radius:50%}.webpcField__input--radio+label:after{background-color:#00a32a;border-radius:50%;content:"";height:8px;left:7px;top:7px;width:8px}.webpcField__input--toggle+label{height:22px;width:44px}.webpcField__input--toggle+label:after,.webpcField__input--toggle+label:before{content:"";position:absolute}.webpcField__input--toggle+label:before{background-color:#dcdcde;border:1px solid #c3c4c7;border-radius:11px;height:22px;left:0;top:0;transition:background-color .3s;width:44px}.webpcField__input--toggle+label:after{background-color:#fff;border-radius:50%;height:16px;left:3px;position:absolute;top:3px;transition:transform .3s;width:16px}.webpcField__input--toggle:checked+label:before{background-color:#00a32a}.webpcField__input--toggle:checked+label:after{transform:translateX(22px)}.webpcField__label{display:block;font-size:14px;line-height:1.5714285714;max-width:650px;position:relative}.webpcField__input~.webpcField__label{margin-left:20px}.webpcInput{align-items:center;display:flex;padding:10px 0}.webpcInput__field{border:1px solid #c3c4c7!important;border-radius:0!important;box-shadow:none!important;flex:1;font-size:14px!important;line-height:1.5714285714!important;padding:9px 15px!important}.webpcInput__field--small{margin:0 10px;max-width:80px;padding:4px 10px!important;width:80px}.webpcInput__field[readonly]{background-color:#f0f0f1}.webpcInput__button{margin:0 0 0 10px!important}.webpcLoader__columns{display:flex;justify-content:center;margin:-30px -30px 0;padding:10px 0;text-align:center}.webpcLoader__column{line-height:0;margin-top:30px;padding:0 30px}.webpcLoader__columnInner{display:inline-block;position:relative}.webpcLoader__columnInner:before{background-color:#f0f0f1;border-radius:50%;content:"";height:calc(100% - 10px);left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:calc(100% - 10px)}.webpcLoader__columnCircle{fill:none;stroke:#00a32a;stroke-width:10px;stroke-dasharray:596.90248;stroke-dashoffset:596.90248;height:200px;transform:rotate(-90deg);transition:stroke-dashoffset 2.5s;width:200px}.webpcLoader__column[data-percent="1"] .webpcLoader__columnCircle{stroke-dashoffset:590.9334552}.webpcLoader__column[data-percent="2"] .webpcLoader__columnCircle{stroke-dashoffset:584.9644304}.webpcLoader__column[data-percent="3"] .webpcLoader__columnCircle{stroke-dashoffset:578.9954056}.webpcLoader__column[data-percent="4"] .webpcLoader__columnCircle{stroke-dashoffset:573.0263808}.webpcLoader__column[data-percent="5"] .webpcLoader__columnCircle{stroke-dashoffset:567.057356}.webpcLoader__column[data-percent="6"] .webpcLoader__columnCircle{stroke-dashoffset:561.0883312}.webpcLoader__column[data-percent="7"] .webpcLoader__columnCircle{stroke-dashoffset:555.1193064}.webpcLoader__column[data-percent="8"] .webpcLoader__columnCircle{stroke-dashoffset:549.1502816}.webpcLoader__column[data-percent="9"] .webpcLoader__columnCircle{stroke-dashoffset:543.1812568}.webpcLoader__column[data-percent="10"] .webpcLoader__columnCircle{stroke-dashoffset:537.212232}.webpcLoader__column[data-percent="11"] .webpcLoader__columnCircle{stroke-dashoffset:531.2432072}.webpcLoader__column[data-percent="12"] .webpcLoader__columnCircle{stroke-dashoffset:525.2741824}.webpcLoader__column[data-percent="13"] .webpcLoader__columnCircle{stroke-dashoffset:519.3051576}.webpcLoader__column[data-percent="14"] .webpcLoader__columnCircle{stroke-dashoffset:513.3361328}.webpcLoader__column[data-percent="15"] .webpcLoader__columnCircle{stroke-dashoffset:507.367108}.webpcLoader__column[data-percent="16"] .webpcLoader__columnCircle{stroke-dashoffset:501.3980832}.webpcLoader__column[data-percent="17"] .webpcLoader__columnCircle{stroke-dashoffset:495.4290584}.webpcLoader__column[data-percent="18"] .webpcLoader__columnCircle{stroke-dashoffset:489.4600336}.webpcLoader__column[data-percent="19"] .webpcLoader__columnCircle{stroke-dashoffset:483.4910088}.webpcLoader__column[data-percent="20"] .webpcLoader__columnCircle{stroke-dashoffset:477.521984}.webpcLoader__column[data-percent="21"] .webpcLoader__columnCircle{stroke-dashoffset:471.5529592}.webpcLoader__column[data-percent="22"] .webpcLoader__columnCircle{stroke-dashoffset:465.5839344}.webpcLoader__column[data-percent="23"] .webpcLoader__columnCircle{stroke-dashoffset:459.6149096}.webpcLoader__column[data-percent="24"] .webpcLoader__columnCircle{stroke-dashoffset:453.6458848}.webpcLoader__column[data-percent="25"] .webpcLoader__columnCircle{stroke-dashoffset:447.67686}.webpcLoader__column[data-percent="26"] .webpcLoader__columnCircle{stroke-dashoffset:441.7078352}.webpcLoader__column[data-percent="27"] .webpcLoader__columnCircle{stroke-dashoffset:435.7388104}.webpcLoader__column[data-percent="28"] .webpcLoader__columnCircle{stroke-dashoffset:429.7697856}.webpcLoader__column[data-percent="29"] .webpcLoader__columnCircle{stroke-dashoffset:423.8007608}.webpcLoader__column[data-percent="30"] .webpcLoader__columnCircle{stroke-dashoffset:417.831736}.webpcLoader__column[data-percent="31"] .webpcLoader__columnCircle{stroke-dashoffset:411.8627112}.webpcLoader__column[data-percent="32"] .webpcLoader__columnCircle{stroke-dashoffset:405.8936864}.webpcLoader__column[data-percent="33"] .webpcLoader__columnCircle{stroke-dashoffset:399.9246616}.webpcLoader__column[data-percent="34"] .webpcLoader__columnCircle{stroke-dashoffset:393.9556368}.webpcLoader__column[data-percent="35"] .webpcLoader__columnCircle{stroke-dashoffset:387.986612}.webpcLoader__column[data-percent="36"] .webpcLoader__columnCircle{stroke-dashoffset:382.0175872}.webpcLoader__column[data-percent="37"] .webpcLoader__columnCircle{stroke-dashoffset:376.0485624}.webpcLoader__column[data-percent="38"] .webpcLoader__columnCircle{stroke-dashoffset:370.0795376}.webpcLoader__column[data-percent="39"] .webpcLoader__columnCircle{stroke-dashoffset:364.1105128}.webpcLoader__column[data-percent="40"] .webpcLoader__columnCircle{stroke-dashoffset:358.141488}.webpcLoader__column[data-percent="41"] .webpcLoader__columnCircle{stroke-dashoffset:352.1724632}.webpcLoader__column[data-percent="42"] .webpcLoader__columnCircle{stroke-dashoffset:346.2034384}.webpcLoader__column[data-percent="43"] .webpcLoader__columnCircle{stroke-dashoffset:340.2344136}.webpcLoader__column[data-percent="44"] .webpcLoader__columnCircle{stroke-dashoffset:334.2653888}.webpcLoader__column[data-percent="45"] .webpcLoader__columnCircle{stroke-dashoffset:328.296364}.webpcLoader__column[data-percent="46"] .webpcLoader__columnCircle{stroke-dashoffset:322.3273392}.webpcLoader__column[data-percent="47"] .webpcLoader__columnCircle{stroke-dashoffset:316.3583144}.webpcLoader__column[data-percent="48"] .webpcLoader__columnCircle{stroke-dashoffset:310.3892896}.webpcLoader__column[data-percent="49"] .webpcLoader__columnCircle{stroke-dashoffset:304.4202648}.webpcLoader__column[data-percent="50"] .webpcLoader__columnCircle{stroke-dashoffset:298.45124}.webpcLoader__column[data-percent="51"] .webpcLoader__columnCircle{stroke-dashoffset:292.4822152}.webpcLoader__column[data-percent="52"] .webpcLoader__columnCircle{stroke-dashoffset:286.5131904}.webpcLoader__column[data-percent="53"] .webpcLoader__columnCircle{stroke-dashoffset:280.5441656}.webpcLoader__column[data-percent="54"] .webpcLoader__columnCircle{stroke-dashoffset:274.5751408}.webpcLoader__column[data-percent="55"] .webpcLoader__columnCircle{stroke-dashoffset:268.606116}.webpcLoader__column[data-percent="56"] .webpcLoader__columnCircle{stroke-dashoffset:262.6370912}.webpcLoader__column[data-percent="57"] .webpcLoader__columnCircle{stroke-dashoffset:256.6680664}.webpcLoader__column[data-percent="58"] .webpcLoader__columnCircle{stroke-dashoffset:250.6990416}.webpcLoader__column[data-percent="59"] .webpcLoader__columnCircle{stroke-dashoffset:244.7300168}.webpcLoader__column[data-percent="60"] .webpcLoader__columnCircle{stroke-dashoffset:238.760992}.webpcLoader__column[data-percent="61"] .webpcLoader__columnCircle{stroke-dashoffset:232.7919672}.webpcLoader__column[data-percent="62"] .webpcLoader__columnCircle{stroke-dashoffset:226.8229424}.webpcLoader__column[data-percent="63"] .webpcLoader__columnCircle{stroke-dashoffset:220.8539176}.webpcLoader__column[data-percent="64"] .webpcLoader__columnCircle{stroke-dashoffset:214.8848928}.webpcLoader__column[data-percent="65"] .webpcLoader__columnCircle{stroke-dashoffset:208.915868}.webpcLoader__column[data-percent="66"] .webpcLoader__columnCircle{stroke-dashoffset:202.9468432}.webpcLoader__column[data-percent="67"] .webpcLoader__columnCircle{stroke-dashoffset:196.9778184}.webpcLoader__column[data-percent="68"] .webpcLoader__columnCircle{stroke-dashoffset:191.0087936}.webpcLoader__column[data-percent="69"] .webpcLoader__columnCircle{stroke-dashoffset:185.0397688}.webpcLoader__column[data-percent="70"] .webpcLoader__columnCircle{stroke-dashoffset:179.070744}.webpcLoader__column[data-percent="71"] .webpcLoader__columnCircle{stroke-dashoffset:173.1017192}.webpcLoader__column[data-percent="72"] .webpcLoader__columnCircle{stroke-dashoffset:167.1326944}.webpcLoader__column[data-percent="73"] .webpcLoader__columnCircle{stroke-dashoffset:161.1636696}.webpcLoader__column[data-percent="74"] .webpcLoader__columnCircle{stroke-dashoffset:155.1946448}.webpcLoader__column[data-percent="75"] .webpcLoader__columnCircle{stroke-dashoffset:149.22562}.webpcLoader__column[data-percent="76"] .webpcLoader__columnCircle{stroke-dashoffset:143.2565952}.webpcLoader__column[data-percent="77"] .webpcLoader__columnCircle{stroke-dashoffset:137.2875704}.webpcLoader__column[data-percent="78"] .webpcLoader__columnCircle{stroke-dashoffset:131.3185456}.webpcLoader__column[data-percent="79"] .webpcLoader__columnCircle{stroke-dashoffset:125.3495208}.webpcLoader__column[data-percent="80"] .webpcLoader__columnCircle{stroke-dashoffset:119.380496}.webpcLoader__column[data-percent="81"] .webpcLoader__columnCircle{stroke-dashoffset:113.4114712}.webpcLoader__column[data-percent="82"] .webpcLoader__columnCircle{stroke-dashoffset:107.4424464}.webpcLoader__column[data-percent="83"] .webpcLoader__columnCircle{stroke-dashoffset:101.4734216}.webpcLoader__column[data-percent="84"] .webpcLoader__columnCircle{stroke-dashoffset:95.5043968}.webpcLoader__column[data-percent="85"] .webpcLoader__columnCircle{stroke-dashoffset:89.535372}.webpcLoader__column[data-percent="86"] .webpcLoader__columnCircle{stroke-dashoffset:83.5663472}.webpcLoader__column[data-percent="87"] .webpcLoader__columnCircle{stroke-dashoffset:77.5973224}.webpcLoader__column[data-percent="88"] .webpcLoader__columnCircle{stroke-dashoffset:71.6282976}.webpcLoader__column[data-percent="89"] .webpcLoader__columnCircle{stroke-dashoffset:65.6592728}.webpcLoader__column[data-percent="90"] .webpcLoader__columnCircle{stroke-dashoffset:59.690248}.webpcLoader__column[data-percent="91"] .webpcLoader__columnCircle{stroke-dashoffset:53.7212232}.webpcLoader__column[data-percent="92"] .webpcLoader__columnCircle{stroke-dashoffset:47.7521984}.webpcLoader__column[data-percent="93"] .webpcLoader__columnCircle{stroke-dashoffset:41.7831736}.webpcLoader__column[data-percent="94"] .webpcLoader__columnCircle{stroke-dashoffset:35.8141488}.webpcLoader__column[data-percent="95"] .webpcLoader__columnCircle{stroke-dashoffset:29.845124}.webpcLoader__column[data-percent="96"] .webpcLoader__columnCircle{stroke-dashoffset:23.8760992}.webpcLoader__column[data-percent="97"] .webpcLoader__columnCircle{stroke-dashoffset:17.9070744}.webpcLoader__column[data-percent="98"] .webpcLoader__columnCircle{stroke-dashoffset:11.9380496}.webpcLoader__column[data-percent="99"] .webpcLoader__columnCircle{stroke-dashoffset:5.9690248}.webpcLoader__column[data-percent="100"] .webpcLoader__columnCircle{stroke-dashoffset:0}.webpcLoader__columnOverlay{left:0;position:absolute;text-align:center;top:50%;transform:translateY(-50%);width:100%}.webpcLoader__columnOverlayTitle{font-size:14px;font-weight:600;line-height:1.5714285714;padding:4px 20px}.webpcLoader__columnOverlayTitle strong{display:block;font-size:24px;line-height:1.2083333333}.webpcLoader__columnOverlayDesc{font-size:14px;line-height:1.5714285714;min-height:52px;padding:4px 20px}.webpcLoader__columnOverlayDesc--active{display:none}.webpcLoader__column[data-percent] .webpcLoader__columnOverlayDesc--active{display:block}.webpcLoader__column[data-percent] .webpcLoader__columnOverlayDesc--loading{display:none}.webpcLoader__columnOverlayDesc--loading:after{animation:dotsLoading 1s linear infinite;content:"...";font-family:monospace;line-height:1}.webpcLoader__statusProgress--error .webpcLoader__columnOverlayDesc--loading:after,.webpcLoader__statusProgress[data-percent="100"] .webpcLoader__columnOverlayDesc--loading:after{display:none}.webpcLoader__columnDesc{font-size:14px;line-height:1.5714285714;margin-bottom:-10px;margin-top:10px;padding:4px 0;text-align:center}.webpcLoader__status{margin-top:10px;padding-top:10px}.webpcLoader__statusProgress{font-size:0;height:31px;line-height:0;margin:10px 0;position:relative}.webpcLoader__statusProgress:before{background-color:#00a32a;content:"";height:100%;left:0;position:absolute;top:0;transition:width .3s;width:0}.webpcLoader__statusProgress--error:before{background-color:#d63638}.webpcLoader__statusProgress[data-percent="0"]:before{width:0}.webpcLoader__statusProgress[data-percent="1"]:before{width:1%}.webpcLoader__statusProgress[data-percent="2"]:before{width:2%}.webpcLoader__statusProgress[data-percent="3"]:before{width:3%}.webpcLoader__statusProgress[data-percent="4"]:before{width:4%}.webpcLoader__statusProgress[data-percent="5"]:before{width:5%}.webpcLoader__statusProgress[data-percent="6"]:before{width:6%}.webpcLoader__statusProgress[data-percent="7"]:before{width:7%}.webpcLoader__statusProgress[data-percent="8"]:before{width:8%}.webpcLoader__statusProgress[data-percent="9"]:before{width:9%}.webpcLoader__statusProgress[data-percent="10"]:before{width:10%}.webpcLoader__statusProgress[data-percent="11"]:before{width:11%}.webpcLoader__statusProgress[data-percent="12"]:before{width:12%}.webpcLoader__statusProgress[data-percent="13"]:before{width:13%}.webpcLoader__statusProgress[data-percent="14"]:before{width:14%}.webpcLoader__statusProgress[data-percent="15"]:before{width:15%}.webpcLoader__statusProgress[data-percent="16"]:before{width:16%}.webpcLoader__statusProgress[data-percent="17"]:before{width:17%}.webpcLoader__statusProgress[data-percent="18"]:before{width:18%}.webpcLoader__statusProgress[data-percent="19"]:before{width:19%}.webpcLoader__statusProgress[data-percent="20"]:before{width:20%}.webpcLoader__statusProgress[data-percent="21"]:before{width:21%}.webpcLoader__statusProgress[data-percent="22"]:before{width:22%}.webpcLoader__statusProgress[data-percent="23"]:before{width:23%}.webpcLoader__statusProgress[data-percent="24"]:before{width:24%}.webpcLoader__statusProgress[data-percent="25"]:before{width:25%}.webpcLoader__statusProgress[data-percent="26"]:before{width:26%}.webpcLoader__statusProgress[data-percent="27"]:before{width:27%}.webpcLoader__statusProgress[data-percent="28"]:before{width:28%}.webpcLoader__statusProgress[data-percent="29"]:before{width:29%}.webpcLoader__statusProgress[data-percent="30"]:before{width:30%}.webpcLoader__statusProgress[data-percent="31"]:before{width:31%}.webpcLoader__statusProgress[data-percent="32"]:before{width:32%}.webpcLoader__statusProgress[data-percent="33"]:before{width:33%}.webpcLoader__statusProgress[data-percent="34"]:before{width:34%}.webpcLoader__statusProgress[data-percent="35"]:before{width:35%}.webpcLoader__statusProgress[data-percent="36"]:before{width:36%}.webpcLoader__statusProgress[data-percent="37"]:before{width:37%}.webpcLoader__statusProgress[data-percent="38"]:before{width:38%}.webpcLoader__statusProgress[data-percent="39"]:before{width:39%}.webpcLoader__statusProgress[data-percent="40"]:before{width:40%}.webpcLoader__statusProgress[data-percent="41"]:before{width:41%}.webpcLoader__statusProgress[data-percent="42"]:before{width:42%}.webpcLoader__statusProgress[data-percent="43"]:before{width:43%}.webpcLoader__statusProgress[data-percent="44"]:before{width:44%}.webpcLoader__statusProgress[data-percent="45"]:before{width:45%}.webpcLoader__statusProgress[data-percent="46"]:before{width:46%}.webpcLoader__statusProgress[data-percent="47"]:before{width:47%}.webpcLoader__statusProgress[data-percent="48"]:before{width:48%}.webpcLoader__statusProgress[data-percent="49"]:before{width:49%}.webpcLoader__statusProgress[data-percent="50"]:before{width:50%}.webpcLoader__statusProgress[data-percent="51"]:before{width:51%}.webpcLoader__statusProgress[data-percent="52"]:before{width:52%}.webpcLoader__statusProgress[data-percent="53"]:before{width:53%}.webpcLoader__statusProgress[data-percent="54"]:before{width:54%}.webpcLoader__statusProgress[data-percent="55"]:before{width:55%}.webpcLoader__statusProgress[data-percent="56"]:before{width:56%}.webpcLoader__statusProgress[data-percent="57"]:before{width:57%}.webpcLoader__statusProgress[data-percent="58"]:before{width:58%}.webpcLoader__statusProgress[data-percent="59"]:before{width:59%}.webpcLoader__statusProgress[data-percent="60"]:before{width:60%}.webpcLoader__statusProgress[data-percent="61"]:before{width:61%}.webpcLoader__statusProgress[data-percent="62"]:before{width:62%}.webpcLoader__statusProgress[data-percent="63"]:before{width:63%}.webpcLoader__statusProgress[data-percent="64"]:before{width:64%}.webpcLoader__statusProgress[data-percent="65"]:before{width:65%}.webpcLoader__statusProgress[data-percent="66"]:before{width:66%}.webpcLoader__statusProgress[data-percent="67"]:before{width:67%}.webpcLoader__statusProgress[data-percent="68"]:before{width:68%}.webpcLoader__statusProgress[data-percent="69"]:before{width:69%}.webpcLoader__statusProgress[data-percent="70"]:before{width:70%}.webpcLoader__statusProgress[data-percent="71"]:before{width:71%}.webpcLoader__statusProgress[data-percent="72"]:before{width:72%}.webpcLoader__statusProgress[data-percent="73"]:before{width:73%}.webpcLoader__statusProgress[data-percent="74"]:before{width:74%}.webpcLoader__statusProgress[data-percent="75"]:before{width:75%}.webpcLoader__statusProgress[data-percent="76"]:before{width:76%}.webpcLoader__statusProgress[data-percent="77"]:before{width:77%}.webpcLoader__statusProgress[data-percent="78"]:before{width:78%}.webpcLoader__statusProgress[data-percent="79"]:before{width:79%}.webpcLoader__statusProgress[data-percent="80"]:before{width:80%}.webpcLoader__statusProgress[data-percent="81"]:before{width:81%}.webpcLoader__statusProgress[data-percent="82"]:before{width:82%}.webpcLoader__statusProgress[data-percent="83"]:before{width:83%}.webpcLoader__statusProgress[data-percent="84"]:before{width:84%}.webpcLoader__statusProgress[data-percent="85"]:before{width:85%}.webpcLoader__statusProgress[data-percent="86"]:before{width:86%}.webpcLoader__statusProgress[data-percent="87"]:before{width:87%}.webpcLoader__statusProgress[data-percent="88"]:before{width:88%}.webpcLoader__statusProgress[data-percent="89"]:before{width:89%}.webpcLoader__statusProgress[data-percent="90"]:before{width:90%}.webpcLoader__statusProgress[data-percent="91"]:before{width:91%}.webpcLoader__statusProgress[data-percent="92"]:before{width:92%}.webpcLoader__statusProgress[data-percent="93"]:before{width:93%}.webpcLoader__statusProgress[data-percent="94"]:before{width:94%}.webpcLoader__statusProgress[data-percent="95"]:before{width:95%}.webpcLoader__statusProgress[data-percent="96"]:before{width:96%}.webpcLoader__statusProgress[data-percent="97"]:before{width:97%}.webpcLoader__statusProgress[data-percent="98"]:before{width:98%}.webpcLoader__statusProgress[data-percent="99"]:before{width:99%}.webpcLoader__statusProgress[data-percent="100"]:before{width:100%}.webpcLoader__statusProgressCount{background-color:#00a32a;color:#fff;display:inline-block;font-family:monospace;font-size:12px;line-height:1.75;padding:5px 10px;position:relative}.webpcLoader__statusProgress--error .webpcLoader__statusProgressCount{background-color:#d63638}.webpcLoader__statusProgressCount:after{animation:dotsLoading 1s linear infinite;content:"...";margin-left:5px}.webpcLoader__statusProgress--error .webpcLoader__statusProgressCount:after,.webpcLoader__statusProgress[data-percent="100"] .webpcLoader__statusProgressCount:after{display:none}.webpcLoader__statusProgress[data-percent="0"] .webpcLoader__statusProgressCount:before{content:"0%"}.webpcLoader__statusProgress[data-percent="1"] .webpcLoader__statusProgressCount:before{content:"1%"}.webpcLoader__statusProgress[data-percent="2"] .webpcLoader__statusProgressCount:before{content:"2%"}.webpcLoader__statusProgress[data-percent="3"] .webpcLoader__statusProgressCount:before{content:"3%"}.webpcLoader__statusProgress[data-percent="4"] .webpcLoader__statusProgressCount:before{content:"4%"}.webpcLoader__statusProgress[data-percent="5"] .webpcLoader__statusProgressCount:before{content:"5%"}.webpcLoader__statusProgress[data-percent="6"] .webpcLoader__statusProgressCount:before{content:"6%"}.webpcLoader__statusProgress[data-percent="7"] .webpcLoader__statusProgressCount:before{content:"7%"}.webpcLoader__statusProgress[data-percent="8"] .webpcLoader__statusProgressCount:before{content:"8%"}.webpcLoader__statusProgress[data-percent="9"] .webpcLoader__statusProgressCount:before{content:"9%"}.webpcLoader__statusProgress[data-percent="10"] .webpcLoader__statusProgressCount:before{content:"10%"}.webpcLoader__statusProgress[data-percent="11"] .webpcLoader__statusProgressCount:before{content:"11%"}.webpcLoader__statusProgress[data-percent="12"] .webpcLoader__statusProgressCount:before{content:"12%"}.webpcLoader__statusProgress[data-percent="13"] .webpcLoader__statusProgressCount:before{content:"13%"}.webpcLoader__statusProgress[data-percent="14"] .webpcLoader__statusProgressCount:before{content:"14%"}.webpcLoader__statusProgress[data-percent="15"] .webpcLoader__statusProgressCount:before{content:"15%"}.webpcLoader__statusProgress[data-percent="16"] .webpcLoader__statusProgressCount:before{content:"16%"}.webpcLoader__statusProgress[data-percent="17"] .webpcLoader__statusProgressCount:before{content:"17%"}.webpcLoader__statusProgress[data-percent="18"] .webpcLoader__statusProgressCount:before{content:"18%"}.webpcLoader__statusProgress[data-percent="19"] .webpcLoader__statusProgressCount:before{content:"19%"}.webpcLoader__statusProgress[data-percent="20"] .webpcLoader__statusProgressCount:before{content:"20%"}.webpcLoader__statusProgress[data-percent="21"] .webpcLoader__statusProgressCount:before{content:"21%"}.webpcLoader__statusProgress[data-percent="22"] .webpcLoader__statusProgressCount:before{content:"22%"}.webpcLoader__statusProgress[data-percent="23"] .webpcLoader__statusProgressCount:before{content:"23%"}.webpcLoader__statusProgress[data-percent="24"] .webpcLoader__statusProgressCount:before{content:"24%"}.webpcLoader__statusProgress[data-percent="25"] .webpcLoader__statusProgressCount:before{content:"25%"}.webpcLoader__statusProgress[data-percent="26"] .webpcLoader__statusProgressCount:before{content:"26%"}.webpcLoader__statusProgress[data-percent="27"] .webpcLoader__statusProgressCount:before{content:"27%"}.webpcLoader__statusProgress[data-percent="28"] .webpcLoader__statusProgressCount:before{content:"28%"}.webpcLoader__statusProgress[data-percent="29"] .webpcLoader__statusProgressCount:before{content:"29%"}.webpcLoader__statusProgress[data-percent="30"] .webpcLoader__statusProgressCount:before{content:"30%"}.webpcLoader__statusProgress[data-percent="31"] .webpcLoader__statusProgressCount:before{content:"31%"}.webpcLoader__statusProgress[data-percent="32"] .webpcLoader__statusProgressCount:before{content:"32%"}.webpcLoader__statusProgress[data-percent="33"] .webpcLoader__statusProgressCount:before{content:"33%"}.webpcLoader__statusProgress[data-percent="34"] .webpcLoader__statusProgressCount:before{content:"34%"}.webpcLoader__statusProgress[data-percent="35"] .webpcLoader__statusProgressCount:before{content:"35%"}.webpcLoader__statusProgress[data-percent="36"] .webpcLoader__statusProgressCount:before{content:"36%"}.webpcLoader__statusProgress[data-percent="37"] .webpcLoader__statusProgressCount:before{content:"37%"}.webpcLoader__statusProgress[data-percent="38"] .webpcLoader__statusProgressCount:before{content:"38%"}.webpcLoader__statusProgress[data-percent="39"] .webpcLoader__statusProgressCount:before{content:"39%"}.webpcLoader__statusProgress[data-percent="40"] .webpcLoader__statusProgressCount:before{content:"40%"}.webpcLoader__statusProgress[data-percent="41"] .webpcLoader__statusProgressCount:before{content:"41%"}.webpcLoader__statusProgress[data-percent="42"] .webpcLoader__statusProgressCount:before{content:"42%"}.webpcLoader__statusProgress[data-percent="43"] .webpcLoader__statusProgressCount:before{content:"43%"}.webpcLoader__statusProgress[data-percent="44"] .webpcLoader__statusProgressCount:before{content:"44%"}.webpcLoader__statusProgress[data-percent="45"] .webpcLoader__statusProgressCount:before{content:"45%"}.webpcLoader__statusProgress[data-percent="46"] .webpcLoader__statusProgressCount:before{content:"46%"}.webpcLoader__statusProgress[data-percent="47"] .webpcLoader__statusProgressCount:before{content:"47%"}.webpcLoader__statusProgress[data-percent="48"] .webpcLoader__statusProgressCount:before{content:"48%"}.webpcLoader__statusProgress[data-percent="49"] .webpcLoader__statusProgressCount:before{content:"49%"}.webpcLoader__statusProgress[data-percent="50"] .webpcLoader__statusProgressCount:before{content:"50%"}.webpcLoader__statusProgress[data-percent="51"] .webpcLoader__statusProgressCount:before{content:"51%"}.webpcLoader__statusProgress[data-percent="52"] .webpcLoader__statusProgressCount:before{content:"52%"}.webpcLoader__statusProgress[data-percent="53"] .webpcLoader__statusProgressCount:before{content:"53%"}.webpcLoader__statusProgress[data-percent="54"] .webpcLoader__statusProgressCount:before{content:"54%"}.webpcLoader__statusProgress[data-percent="55"] .webpcLoader__statusProgressCount:before{content:"55%"}.webpcLoader__statusProgress[data-percent="56"] .webpcLoader__statusProgressCount:before{content:"56%"}.webpcLoader__statusProgress[data-percent="57"] .webpcLoader__statusProgressCount:before{content:"57%"}.webpcLoader__statusProgress[data-percent="58"] .webpcLoader__statusProgressCount:before{content:"58%"}.webpcLoader__statusProgress[data-percent="59"] .webpcLoader__statusProgressCount:before{content:"59%"}.webpcLoader__statusProgress[data-percent="60"] .webpcLoader__statusProgressCount:before{content:"60%"}.webpcLoader__statusProgress[data-percent="61"] .webpcLoader__statusProgressCount:before{content:"61%"}.webpcLoader__statusProgress[data-percent="62"] .webpcLoader__statusProgressCount:before{content:"62%"}.webpcLoader__statusProgress[data-percent="63"] .webpcLoader__statusProgressCount:before{content:"63%"}.webpcLoader__statusProgress[data-percent="64"] .webpcLoader__statusProgressCount:before{content:"64%"}.webpcLoader__statusProgress[data-percent="65"] .webpcLoader__statusProgressCount:before{content:"65%"}.webpcLoader__statusProgress[data-percent="66"] .webpcLoader__statusProgressCount:before{content:"66%"}.webpcLoader__statusProgress[data-percent="67"] .webpcLoader__statusProgressCount:before{content:"67%"}.webpcLoader__statusProgress[data-percent="68"] .webpcLoader__statusProgressCount:before{content:"68%"}.webpcLoader__statusProgress[data-percent="69"] .webpcLoader__statusProgressCount:before{content:"69%"}.webpcLoader__statusProgress[data-percent="70"] .webpcLoader__statusProgressCount:before{content:"70%"}.webpcLoader__statusProgress[data-percent="71"] .webpcLoader__statusProgressCount:before{content:"71%"}.webpcLoader__statusProgress[data-percent="72"] .webpcLoader__statusProgressCount:before{content:"72%"}.webpcLoader__statusProgress[data-percent="73"] .webpcLoader__statusProgressCount:before{content:"73%"}.webpcLoader__statusProgress[data-percent="74"] .webpcLoader__statusProgressCount:before{content:"74%"}.webpcLoader__statusProgress[data-percent="75"] .webpcLoader__statusProgressCount:before{content:"75%"}.webpcLoader__statusProgress[data-percent="76"] .webpcLoader__statusProgressCount:before{content:"76%"}.webpcLoader__statusProgress[data-percent="77"] .webpcLoader__statusProgressCount:before{content:"77%"}.webpcLoader__statusProgress[data-percent="78"] .webpcLoader__statusProgressCount:before{content:"78%"}.webpcLoader__statusProgress[data-percent="79"] .webpcLoader__statusProgressCount:before{content:"79%"}.webpcLoader__statusProgress[data-percent="80"] .webpcLoader__statusProgressCount:before{content:"80%"}.webpcLoader__statusProgress[data-percent="81"] .webpcLoader__statusProgressCount:before{content:"81%"}.webpcLoader__statusProgress[data-percent="82"] .webpcLoader__statusProgressCount:before{content:"82%"}.webpcLoader__statusProgress[data-percent="83"] .webpcLoader__statusProgressCount:before{content:"83%"}.webpcLoader__statusProgress[data-percent="84"] .webpcLoader__statusProgressCount:before{content:"84%"}.webpcLoader__statusProgress[data-percent="85"] .webpcLoader__statusProgressCount:before{content:"85%"}.webpcLoader__statusProgress[data-percent="86"] .webpcLoader__statusProgressCount:before{content:"86%"}.webpcLoader__statusProgress[data-percent="87"] .webpcLoader__statusProgressCount:before{content:"87%"}.webpcLoader__statusProgress[data-percent="88"] .webpcLoader__statusProgressCount:before{content:"88%"}.webpcLoader__statusProgress[data-percent="89"] .webpcLoader__statusProgressCount:before{content:"89%"}.webpcLoader__statusProgress[data-percent="90"] .webpcLoader__statusProgressCount:before{content:"90%"}.webpcLoader__statusProgress[data-percent="91"] .webpcLoader__statusProgressCount:before{content:"91%"}.webpcLoader__statusProgress[data-percent="92"] .webpcLoader__statusProgressCount:before{content:"92%"}.webpcLoader__statusProgress[data-percent="93"] .webpcLoader__statusProgressCount:before{content:"93%"}.webpcLoader__statusProgress[data-percent="94"] .webpcLoader__statusProgressCount:before{content:"94%"}.webpcLoader__statusProgress[data-percent="95"] .webpcLoader__statusProgressCount:before{content:"95%"}.webpcLoader__statusProgress[data-percent="96"] .webpcLoader__statusProgressCount:before{content:"96%"}.webpcLoader__statusProgress[data-percent="97"] .webpcLoader__statusProgressCount:before{content:"97%"}.webpcLoader__statusProgress[data-percent="98"] .webpcLoader__statusProgressCount:before{content:"98%"}.webpcLoader__statusProgress[data-percent="99"] .webpcLoader__statusProgressCount:before{content:"99%"}.webpcLoader__statusProgress[data-percent="100"] .webpcLoader__statusProgressCount:before{content:"100%"}.webpcLoader__statusContent{font-size:14px;line-height:1.5714285714;max-width:800px;padding:4px 0}.webpcLoader__statusContent--small{font-size:12px;line-height:1.75}.webpcLoader__statusContent strong{font-weight:600}.webpcLoader__success{padding:10px 0}.webpcLoader__successInner{border-left:2px solid #00a32a;padding:0 20px}.webpcLoader__successContent{color:#00a32a;font-size:14px;font-weight:600;line-height:1.5714285714;padding:4px 0}.webpcLoader__successContent a{color:inherit}.webpcLoader__errors{margin-top:10px;padding:10px 0}.webpcLoader__errorsInner{border-left:2px solid #c3c4c7}.webpcLoader__errorsTitle{background-color:#c3c4c7;color:#fff;display:inline-block;font-size:14px;line-height:1.5714285714;padding:4px 20px}.webpcLoader__errorsContent{padding:10px 0 10px 20px}.webpcLoader__errorsContent>p{font-size:12px;line-height:1.75;margin:0;max-width:100%}.webpcLoader__errorsContent>p.webpcLoader__errorsContentError{color:#d63638;font-size:14px;font-weight:600;line-height:1.5714285714}.webpcLoader__errorsContent pre{font-size:12px;line-height:1.75;white-space:normal}.webpcLoader__button--disabled{opacity:.25!important;pointer-events:none}.webpcMenu{margin-top:30px}.webpcMenu:first-child{margin-top:0}.webpcMenu__wrapper{border-bottom:1px solid #dcdcde}.webpcMenu__items{display:flex;font-size:0}.webpcMenu__itemLink{box-shadow:none!important;display:block;font-size:16px;line-height:1.5;outline:none!important;padding:13px 30px;text-align:center;text-decoration:none!important;transition:color .3s}.webpcMenu__itemLink:focus,.webpcMenu__itemLink:hover{color:rgba(34,113,177,.5)}.webpcMenu__itemLink--active{background-color:#fff;color:#101517;font-weight:600}.webpcMenu__itemLink--active:focus,.webpcMenu__itemLink--active:hover{color:inherit}.webpcPopup{margin-top:20px}.webpcPopup__inner{background-color:#fff;border:1px solid #c3c4c7;display:flex;flex-wrap:wrap}.webpcPopup__image{background-image:url(../../img/author.png);background-position:50%;background-repeat:no-repeat;background-size:cover;width:152px}.webpcPopup__content{border-left:1px solid #c3c4c7;flex:1;padding:10px 20px}.webpcQuality__items{display:flex;flex-wrap:wrap;justify-content:space-between}.webpcQuality__item{display:flex;flex:1;justify-content:center;position:relative}.webpcQuality__item:before{background-color:#c3c4c7;content:"";height:1px;left:0;position:absolute;top:50%;width:100%}.webpcQuality__item:first-child:before{left:50%}.webpcQuality__item:last-child:before{width:50%}.webpcQuality__itemInput{display:none!important}.webpcQuality__itemLabel{display:block;height:42px;position:relative;width:42px}.webpcQuality__itemLabel:after,.webpcQuality__itemLabel:before{border-radius:50%;content:"";height:22px;position:absolute;width:22px}.webpcQuality__itemLabel:before{background-color:#fff;border:1px solid #c3c4c7;left:10px;top:10px}.webpcQuality__itemLabel:after{background-color:#00a32a;height:8px;left:17px;top:17px;transform:scale(0);transition:transform .3s;width:8px}.webpcQuality__itemInput:checked+.webpcQuality__itemLabel:after{transform:scale(1)}.webpcQuality__texts{display:flex;flex-wrap:wrap}.webpcQuality__text{flex:1;font-size:12px;line-height:1.75;padding:4px 0;text-align:center}.webpcQuality__text strong{font-size:14px;line-height:1.5714285714}.webpcServerInfo{color:#222;text-align:center}.webpcServerInfo pre{font-family:monospace;margin:0}.webpcServerInfo h1,.webpcServerInfo h2{display:none}.webpcServerInfo p{max-width:100%}.webpcServerInfo table{border:0;border-collapse:collapse;margin:10px auto;width:100%}.webpcServerInfo td,.webpcServerInfo th{border:1px solid #666;font-family:monospace;font-size:12px;line-height:1.75;padding:4px 5px;text-align:center;vertical-align:baseline}.webpcServerInfo .p{text-align:left}.webpcServerInfo .e{background-color:#ccf;font-weight:700;width:300px}.webpcServerInfo .h{background-color:#99c;font-weight:700}.webpcServerInfo .v{word-wrap:break-word;background-color:#ddd;max-width:300px;overflow-x:auto}.webpcServerInfo .v i{color:#999}.webpcServerInfo img{border:0;float:right}.webpcTree{background-color:#f6f7f7;max-height:400px;overflow-y:auto;padding:10px 20px}.webpcTree__headline{font-weight:600}.webpcTree__output{white-space:nowrap}.webpcTree__items{font-size:0;margin-left:20px;padding:4px 0}.webpcTree__items .webpcTree__items{display:none;padding:0}.webpcTree__itemCheckbox{display:none!important}.webpcTree__itemLabel{color:#101517;display:inline-block;font-size:14px;line-height:1.5714285714;padding-left:20px;position:relative;-webkit-user-select:none;-ms-user-select:none;user-select:none}.webpcTree__itemLabel:before{speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#f0c33c;content:"\e906"!important;font-family:webpc-icomoon!important;font-size:14px;font-style:normal;font-variant:normal;font-weight:400;left:0;line-height:1;position:absolute;text-transform:none;top:4px}.webpcTree__itemLabel:after{speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#101517;content:"\e905"!important;font-family:webpc-icomoon!important;font-size:10px;font-style:normal;font-variant:normal;font-weight:400;left:-25px;line-height:1;padding:5px;position:absolute;text-transform:none;top:1px}.webpcTree__itemLabel strong{color:#101517;font-weight:600}.webpcTree__itemLabel:hover{color:#787c82}.webpcTree__itemCheckbox:checked+.webpcTree__itemLabel:after{speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"\e904"!important;font-family:webpc-icomoon!important;font-style:normal;font-variant:normal;font-weight:400;text-transform:none}.webpcTree__itemCheckbox:checked~.webpcTree__items{display:block}.webpcTree__itemName{display:block;font-size:12px;line-height:1.6666666667;padding-left:20px;position:relative}.webpcTree__itemName:before{speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#4f94d4;content:"\e907"!important;font-family:webpc-icomoon!important;font-size:14px;font-style:normal;font-variant:normal;font-weight:400;left:0;line-height:1;position:absolute;text-transform:none;top:3px}@media screen and (max-width:1600px){.webpcPage__columns{margin:0 -15px}.webpcPage__column{padding:0 15px}.webpcPage__widget+.webpcPage__widget{margin-top:30px}}@media screen and (max-width:1279px){.webpcPage__column--large{width:100%}.webpcPage__column--small{margin-top:30px;width:100%}}@media screen and (max-width:1024px){.webpcPage__widgetColumns{display:block}.webpcPage__widgetColumn{width:100%}}@media screen and (max-width:782px){.webpcPage{padding-right:0}.webpcContent--author{background:none;margin-left:0;padding-left:30px}.webpcContent--notice img{bottom:auto;margin:20px 0 10px;position:relative;right:auto}.webpcInput{display:block}.webpcInput__field{width:100%}.webpcInput__field--small{width:calc(100% - 20px)}.webpcInput__button{margin:10px 0 0!important}.webpcLoader__columns,.webpcMenu__items{display:block}.webpcPopup__inner{border:1px solid #c3c4c7;display:block}.webpcPopup__image{height:152px;margin:20px auto 0}.webpcPopup__content{border-left:0}}
|
assets/build/js/scripts.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
!function(){var e,t={669:function(e,t,r){e.exports=r(609)},448:function(e,t,r){"use strict";var n=r(867),i=r(26),o=r(372),s=r(327),a=r(97),u=r(109),c=r(985),l=r(61);e.exports=function(e){return new Promise((function(t,r){var f=e.data,d=e.headers,h=e.responseType;n.isFormData(f)&&delete d["Content-Type"];var p=new XMLHttpRequest;if(e.auth){var v=e.auth.username||"",m=e.auth.password?unescape(encodeURIComponent(e.auth.password)):"";d.Authorization="Basic "+btoa(v+":"+m)}var _=a(e.baseURL,e.url);function g(){if(p){var n="getAllResponseHeaders"in p?u(p.getAllResponseHeaders()):null,o={data:h&&"text"!==h&&"json"!==h?p.response:p.responseText,status:p.status,statusText:p.statusText,headers:n,config:e,request:p};i(t,r,o),p=null}}if(p.open(e.method.toUpperCase(),s(_,e.params,e.paramsSerializer),!0),p.timeout=e.timeout,"onloadend"in p?p.onloadend=g:p.onreadystatechange=function(){p&&4===p.readyState&&(0!==p.status||p.responseURL&&0===p.responseURL.indexOf("file:"))&&setTimeout(g)},p.onabort=function(){p&&(r(l("Request aborted",e,"ECONNABORTED",p)),p=null)},p.onerror=function(){r(l("Network Error",e,null,p)),p=null},p.ontimeout=function(){var t="timeout of "+e.timeout+"ms exceeded";e.timeoutErrorMessage&&(t=e.timeoutErrorMessage),r(l(t,e,e.transitional&&e.transitional.clarifyTimeoutError?"ETIMEDOUT":"ECONNABORTED",p)),p=null},n.isStandardBrowserEnv()){var b=(e.withCredentials||c(_))&&e.xsrfCookieName?o.read(e.xsrfCookieName):void 0;b&&(d[e.xsrfHeaderName]=b)}"setRequestHeader"in p&&n.forEach(d,(function(e,t){void 0===f&&"content-type"===t.toLowerCase()?delete d[t]:p.setRequestHeader(t,e)})),n.isUndefined(e.withCredentials)||(p.withCredentials=!!e.withCredentials),h&&"json"!==h&&(p.responseType=e.responseType),"function"==typeof e.onDownloadProgress&&p.addEventListener("progress",e.onDownloadProgress),"function"==typeof e.onUploadProgress&&p.upload&&p.upload.addEventListener("progress",e.onUploadProgress),e.cancelToken&&e.cancelToken.promise.then((function(e){p&&(p.abort(),r(e),p=null)})),f||(f=null),p.send(f)}))}},609:function(e,t,r){"use strict";var n=r(867),i=r(849),o=r(321),s=r(185);function a(e){var t=new o(e),r=i(o.prototype.request,t);return n.extend(r,o.prototype,t),n.extend(r,t),r}var u=a(r(655));u.Axios=o,u.create=function(e){return a(s(u.defaults,e))},u.Cancel=r(263),u.CancelToken=r(972),u.isCancel=r(502),u.all=function(e){return Promise.all(e)},u.spread=r(713),u.isAxiosError=r(268),e.exports=u,e.exports.default=u},263:function(e){"use strict";function t(e){this.message=e}t.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")},t.prototype.__CANCEL__=!0,e.exports=t},972:function(e,t,r){"use strict";var n=r(263);function i(e){if("function"!=typeof e)throw new TypeError("executor must be a function.");var t;this.promise=new Promise((function(e){t=e}));var r=this;e((function(e){r.reason||(r.reason=new n(e),t(r.reason))}))}i.prototype.throwIfRequested=function(){if(this.reason)throw this.reason},i.source=function(){var e;return{token:new i((function(t){e=t})),cancel:e}},e.exports=i},502:function(e){"use strict";e.exports=function(e){return!(!e||!e.__CANCEL__)}},321:function(e,t,r){"use strict";var n=r(867),i=r(327),o=r(782),s=r(572),a=r(185),u=r(875),c=u.validators;function l(e){this.defaults=e,this.interceptors={request:new o,response:new o}}l.prototype.request=function(e){"string"==typeof e?(e=arguments[1]||{}).url=arguments[0]:e=e||{},(e=a(this.defaults,e)).method?e.method=e.method.toLowerCase():this.defaults.method?e.method=this.defaults.method.toLowerCase():e.method="get";var t=e.transitional;void 0!==t&&u.assertOptions(t,{silentJSONParsing:c.transitional(c.boolean,"1.0.0"),forcedJSONParsing:c.transitional(c.boolean,"1.0.0"),clarifyTimeoutError:c.transitional(c.boolean,"1.0.0")},!1);var r=[],n=!0;this.interceptors.request.forEach((function(t){"function"==typeof t.runWhen&&!1===t.runWhen(e)||(n=n&&t.synchronous,r.unshift(t.fulfilled,t.rejected))}));var i,o=[];if(this.interceptors.response.forEach((function(e){o.push(e.fulfilled,e.rejected)})),!n){var l=[s,void 0];for(Array.prototype.unshift.apply(l,r),l=l.concat(o),i=Promise.resolve(e);l.length;)i=i.then(l.shift(),l.shift());return i}for(var f=e;r.length;){var d=r.shift(),h=r.shift();try{f=d(f)}catch(e){h(e);break}}try{i=s(f)}catch(e){return Promise.reject(e)}for(;o.length;)i=i.then(o.shift(),o.shift());return i},l.prototype.getUri=function(e){return e=a(this.defaults,e),i(e.url,e.params,e.paramsSerializer).replace(/^\?/,"")},n.forEach(["delete","get","head","options"],(function(e){l.prototype[e]=function(t,r){return this.request(a(r||{},{method:e,url:t,data:(r||{}).data}))}})),n.forEach(["post","put","patch"],(function(e){l.prototype[e]=function(t,r,n){return this.request(a(n||{},{method:e,url:t,data:r}))}})),e.exports=l},782:function(e,t,r){"use strict";var n=r(867);function i(){this.handlers=[]}i.prototype.use=function(e,t,r){return this.handlers.push({fulfilled:e,rejected:t,synchronous:!!r&&r.synchronous,runWhen:r?r.runWhen:null}),this.handlers.length-1},i.prototype.eject=function(e){this.handlers[e]&&(this.handlers[e]=null)},i.prototype.forEach=function(e){n.forEach(this.handlers,(function(t){null!==t&&e(t)}))},e.exports=i},97:function(e,t,r){"use strict";var n=r(793),i=r(303);e.exports=function(e,t){return e&&!n(t)?i(e,t):t}},61:function(e,t,r){"use strict";var n=r(481);e.exports=function(e,t,r,i,o){var s=new Error(e);return n(s,t,r,i,o)}},572:function(e,t,r){"use strict";var n=r(867),i=r(527),o=r(502),s=r(655);function a(e){e.cancelToken&&e.cancelToken.throwIfRequested()}e.exports=function(e){return a(e),e.headers=e.headers||{},e.data=i.call(e,e.data,e.headers,e.transformRequest),e.headers=n.merge(e.headers.common||{},e.headers[e.method]||{},e.headers),n.forEach(["delete","get","head","post","put","patch","common"],(function(t){delete e.headers[t]})),(e.adapter||s.adapter)(e).then((function(t){return a(e),t.data=i.call(e,t.data,t.headers,e.transformResponse),t}),(function(t){return o(t)||(a(e),t&&t.response&&(t.response.data=i.call(e,t.response.data,t.response.headers,e.transformResponse))),Promise.reject(t)}))}},481:function(e){"use strict";e.exports=function(e,t,r,n,i){return e.config=t,r&&(e.code=r),e.request=n,e.response=i,e.isAxiosError=!0,e.toJSON=function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:this.config,code:this.code}},e}},185:function(e,t,r){"use strict";var n=r(867);e.exports=function(e,t){t=t||{};var r={},i=["url","method","data"],o=["headers","auth","proxy","params"],s=["baseURL","transformRequest","transformResponse","paramsSerializer","timeout","timeoutMessage","withCredentials","adapter","responseType","xsrfCookieName","xsrfHeaderName","onUploadProgress","onDownloadProgress","decompress","maxContentLength","maxBodyLength","maxRedirects","transport","httpAgent","httpsAgent","cancelToken","socketPath","responseEncoding"],a=["validateStatus"];function u(e,t){return n.isPlainObject(e)&&n.isPlainObject(t)?n.merge(e,t):n.isPlainObject(t)?n.merge({},t):n.isArray(t)?t.slice():t}function c(i){n.isUndefined(t[i])?n.isUndefined(e[i])||(r[i]=u(void 0,e[i])):r[i]=u(e[i],t[i])}n.forEach(i,(function(e){n.isUndefined(t[e])||(r[e]=u(void 0,t[e]))})),n.forEach(o,c),n.forEach(s,(function(i){n.isUndefined(t[i])?n.isUndefined(e[i])||(r[i]=u(void 0,e[i])):r[i]=u(void 0,t[i])})),n.forEach(a,(function(n){n in t?r[n]=u(e[n],t[n]):n in e&&(r[n]=u(void 0,e[n]))}));var l=i.concat(o).concat(s).concat(a),f=Object.keys(e).concat(Object.keys(t)).filter((function(e){return-1===l.indexOf(e)}));return n.forEach(f,c),r}},26:function(e,t,r){"use strict";var n=r(61);e.exports=function(e,t,r){var i=r.config.validateStatus;r.status&&i&&!i(r.status)?t(n("Request failed with status code "+r.status,r.config,null,r.request,r)):e(r)}},527:function(e,t,r){"use strict";var n=r(867),i=r(655);e.exports=function(e,t,r){var o=this||i;return n.forEach(r,(function(r){e=r.call(o,e,t)})),e}},655:function(e,t,r){"use strict";var n=r(155),i=r(867),o=r(16),s=r(481),a={"Content-Type":"application/x-www-form-urlencoded"};function u(e,t){!i.isUndefined(e)&&i.isUndefined(e["Content-Type"])&&(e["Content-Type"]=t)}var c,l={transitional:{silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},adapter:(("undefined"!=typeof XMLHttpRequest||void 0!==n&&"[object process]"===Object.prototype.toString.call(n))&&(c=r(448)),c),transformRequest:[function(e,t){return o(t,"Accept"),o(t,"Content-Type"),i.isFormData(e)||i.isArrayBuffer(e)||i.isBuffer(e)||i.isStream(e)||i.isFile(e)||i.isBlob(e)?e:i.isArrayBufferView(e)?e.buffer:i.isURLSearchParams(e)?(u(t,"application/x-www-form-urlencoded;charset=utf-8"),e.toString()):i.isObject(e)||t&&"application/json"===t["Content-Type"]?(u(t,"application/json"),function(e,t,r){if(i.isString(e))try{return(t||JSON.parse)(e),i.trim(e)}catch(e){if("SyntaxError"!==e.name)throw e}return(r||JSON.stringify)(e)}(e)):e}],transformResponse:[function(e){var t=this.transitional,r=t&&t.silentJSONParsing,n=t&&t.forcedJSONParsing,o=!r&&"json"===this.responseType;if(o||n&&i.isString(e)&&e.length)try{return JSON.parse(e)}catch(e){if(o){if("SyntaxError"===e.name)throw s(e,this,"E_JSON_PARSE");throw e}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,validateStatus:function(e){return e>=200&&e<300}};l.headers={common:{Accept:"application/json, text/plain, */*"}},i.forEach(["delete","get","head"],(function(e){l.headers[e]={}})),i.forEach(["post","put","patch"],(function(e){l.headers[e]=i.merge(a)})),e.exports=l},849:function(e){"use strict";e.exports=function(e,t){return function(){for(var r=new Array(arguments.length),n=0;n<r.length;n++)r[n]=arguments[n];return e.apply(t,r)}}},327:function(e,t,r){"use strict";var n=r(867);function i(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}e.exports=function(e,t,r){if(!t)return e;var o;if(r)o=r(t);else if(n.isURLSearchParams(t))o=t.toString();else{var s=[];n.forEach(t,(function(e,t){null!=e&&(n.isArray(e)?t+="[]":e=[e],n.forEach(e,(function(e){n.isDate(e)?e=e.toISOString():n.isObject(e)&&(e=JSON.stringify(e)),s.push(i(t)+"="+i(e))})))})),o=s.join("&")}if(o){var a=e.indexOf("#");-1!==a&&(e=e.slice(0,a)),e+=(-1===e.indexOf("?")?"?":"&")+o}return e}},303:function(e){"use strict";e.exports=function(e,t){return t?e.replace(/\/+$/,"")+"/"+t.replace(/^\/+/,""):e}},372:function(e,t,r){"use strict";var n=r(867);e.exports=n.isStandardBrowserEnv()?{write:function(e,t,r,i,o,s){var a=[];a.push(e+"="+encodeURIComponent(t)),n.isNumber(r)&&a.push("expires="+new Date(r).toGMTString()),n.isString(i)&&a.push("path="+i),n.isString(o)&&a.push("domain="+o),!0===s&&a.push("secure"),document.cookie=a.join("; ")},read:function(e){var t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove:function(e){this.write(e,"",Date.now()-864e5)}}:{write:function(){},read:function(){return null},remove:function(){}}},793:function(e){"use strict";e.exports=function(e){return/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(e)}},268:function(e){"use strict";e.exports=function(e){return"object"==typeof e&&!0===e.isAxiosError}},985:function(e,t,r){"use strict";var n=r(867);e.exports=n.isStandardBrowserEnv()?function(){var e,t=/(msie|trident)/i.test(navigator.userAgent),r=document.createElement("a");function i(e){var n=e;return t&&(r.setAttribute("href",n),n=r.href),r.setAttribute("href",n),{href:r.href,protocol:r.protocol?r.protocol.replace(/:$/,""):"",host:r.host,search:r.search?r.search.replace(/^\?/,""):"",hash:r.hash?r.hash.replace(/^#/,""):"",hostname:r.hostname,port:r.port,pathname:"/"===r.pathname.charAt(0)?r.pathname:"/"+r.pathname}}return e=i(window.location.href),function(t){var r=n.isString(t)?i(t):t;return r.protocol===e.protocol&&r.host===e.host}}():function(){return!0}},16:function(e,t,r){"use strict";var n=r(867);e.exports=function(e,t){n.forEach(e,(function(r,n){n!==t&&n.toUpperCase()===t.toUpperCase()&&(e[t]=r,delete e[n])}))}},109:function(e,t,r){"use strict";var n=r(867),i=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"];e.exports=function(e){var t,r,o,s={};return e?(n.forEach(e.split("\n"),(function(e){if(o=e.indexOf(":"),t=n.trim(e.substr(0,o)).toLowerCase(),r=n.trim(e.substr(o+1)),t){if(s[t]&&i.indexOf(t)>=0)return;s[t]="set-cookie"===t?(s[t]?s[t]:[]).concat([r]):s[t]?s[t]+", "+r:r}})),s):s}},713:function(e){"use strict";e.exports=function(e){return function(t){return e.apply(null,t)}}},875:function(e,t,r){"use strict";var n=r(593),i={};["object","boolean","number","function","string","symbol"].forEach((function(e,t){i[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}}));var o={},s=n.version.split(".");function a(e,t){for(var r=t?t.split("."):s,n=e.split("."),i=0;i<3;i++){if(r[i]>n[i])return!0;if(r[i]<n[i])return!1}return!1}i.transitional=function(e,t,r){var i=t&&a(t);return function(s,a,u){if(!1===e)throw new Error(function(e,t){return"[Axios v"+n.version+"] Transitional option '"+e+"'"+t+(r?". "+r:"")}(a," has been removed in "+t));return i&&!o[a]&&(o[a]=!0),!e||e(s,a,u)}},e.exports={isOlderVersion:a,assertOptions:function(e,t,r){if("object"!=typeof e)throw new TypeError("options must be an object");for(var n=Object.keys(e),i=n.length;i-- >0;){var o=n[i],s=t[o];if(s){var a=e[o],u=void 0===a||s(a,o,e);if(!0!==u)throw new TypeError("option "+o+" must be "+u)}else if(!0!==r)throw Error("Unknown option "+o)}},validators:i}},867:function(e,t,r){"use strict";var n=r(849),i=Object.prototype.toString;function o(e){return"[object Array]"===i.call(e)}function s(e){return void 0===e}function a(e){return null!==e&&"object"==typeof e}function u(e){if("[object Object]"!==i.call(e))return!1;var t=Object.getPrototypeOf(e);return null===t||t===Object.prototype}function c(e){return"[object Function]"===i.call(e)}function l(e,t){if(null!=e)if("object"!=typeof e&&(e=[e]),o(e))for(var r=0,n=e.length;r<n;r++)t.call(null,e[r],r,e);else for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.call(null,e[i],i,e)}e.exports={isArray:o,isArrayBuffer:function(e){return"[object ArrayBuffer]"===i.call(e)},isBuffer:function(e){return null!==e&&!s(e)&&null!==e.constructor&&!s(e.constructor)&&"function"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)},isFormData:function(e){return"undefined"!=typeof FormData&&e instanceof FormData},isArrayBufferView:function(e){return"undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&e.buffer instanceof ArrayBuffer},isString:function(e){return"string"==typeof e},isNumber:function(e){return"number"==typeof e},isObject:a,isPlainObject:u,isUndefined:s,isDate:function(e){return"[object Date]"===i.call(e)},isFile:function(e){return"[object File]"===i.call(e)},isBlob:function(e){return"[object Blob]"===i.call(e)},isFunction:c,isStream:function(e){return a(e)&&c(e.pipe)},isURLSearchParams:function(e){return"undefined"!=typeof URLSearchParams&&e instanceof URLSearchParams},isStandardBrowserEnv:function(){return("undefined"==typeof navigator||"ReactNative"!==navigator.product&&"NativeScript"!==navigator.product&&"NS"!==navigator.product)&&("undefined"!=typeof window&&"undefined"!=typeof document)},forEach:l,merge:function e(){var t={};function r(r,n){u(t[n])&&u(r)?t[n]=e(t[n],r):u(r)?t[n]=e({},r):o(r)?t[n]=r.slice():t[n]=r}for(var n=0,i=arguments.length;n<i;n++)l(arguments[n],r);return t},extend:function(e,t,r){return l(t,(function(t,i){e[i]=r&&"function"==typeof t?n(t,r):t})),e},trim:function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")},stripBOM:function(e){return 65279===e.charCodeAt(0)&&(e=e.slice(1)),e}}},917:function(e,t,r){"use strict";var n=r(669),i=r.n(n);function o(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}var s=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.set_vars()&&this.set_events()}var t,r,n;return t=e,(r=[{key:"set_vars",value:function(){if(this.section=document.querySelector("[data-calculate-widget]"),this.section)return this.button=this.section.querySelector("[data-calculate-widget-button]"),this.loading=this.section.querySelector("[data-calculate-widget-loading]"),this.output=this.section.querySelector("[data-calculate-widget-output]"),this.settings={ajax:{url_calculation:this.section.getAttribute("data-calculate-widget-api")}},!0}},{key:"set_events",value:function(){this.button.addEventListener("click",this.init_calculation.bind(this))}},{key:"init_calculation",value:function(e){e.preventDefault(),this.button.setAttribute("hidden","hidden"),this.output.setAttribute("hidden","hidden"),this.loading.removeAttribute("hidden"),this.send_request_for_calculation()}},{key:"send_request_for_calculation",value:function(){var e=this,t=this.settings.ajax.url_calculation,r=new Date;i()({method:"GET",url:t}).then((function(t){e.loading.setAttribute("hidden","hidden"),e.output.innerText=t.data.value_output,e.output.removeAttribute("hidden","hidden")})).catch((function(t){if(e.button.removeAttribute("hidden"),e.loading.setAttribute("hidden","hidden"),t.response){var n=(new Date-r)/1e3,i=t.response.status,o=JSON.stringify(t.response.data);e.output.innerText="HTTP Error ".concat(i," (").concat(n,"s): ").concat(o),e.output.removeAttribute("hidden","hidden")}}))}}])&&o(t.prototype,r),n&&o(t,n),e}();function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function u(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}var c=function(){function e(t){a(this,e),this.input_toggle=t,this.set_vars()&&this.set_events()}var t,r,n;return t=e,(r=[{key:"set_vars",value:function(){var e=this.input_toggle.getAttribute("data-inputs-group-toggle");return this.inputs=document.querySelectorAll('[data-inputs-group-input="'.concat(e,'"]')),!!this.inputs.length}},{key:"set_events",value:function(){this.input_toggle.addEventListener("change",this.toggle_inputs.bind(this))}},{key:"toggle_inputs",value:function(e){for(var t=this.inputs.length,r=0;r<t;r++)this.input_toggle.checked?this.inputs[r].removeAttribute("readonly"):this.inputs[r].setAttribute("readonly","readonly")}}])&&u(t.prototype,r),n&&u(t,n),e}(),l=function e(){a(this,e);for(var t=document.querySelectorAll("[data-inputs-group-toggle]"),r=t.length,n=0;n<r;n++)new c(t[n])};function f(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function d(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}var h=function(){function e(t){f(this,e),this.notice=t,this.set_vars()&&this.set_events()}var t,r,n;return t=e,(r=[{key:"set_vars",value:function(){return this.settings={ajax_action:this.notice.getAttribute("data-notice-action"),ajax_url:this.notice.getAttribute("data-notice-url"),button_close_class:".notice-dismiss",button_hide_class:"[data-permanently]"},this.events={click_on_close:this.click_on_close.bind(this)},!0}},{key:"set_events",value:function(){this.notice.addEventListener("click",this.events.click_on_close)}},{key:"click_on_close",value:function(e){var t=this.settings,r=t.button_close_class,n=t.button_hide_class;this.notice.removeEventListener("click",this.events.click_on_close),e.target.matches(r)?this.hide_notice(!1):e.target.matches(n)&&this.hide_notice(!0)}},{key:"hide_notice",value:function(e){var t=this.settings.button_close_class;this.send_request(e),e&&this.notice.querySelector(t).click()}},{key:"send_request",value:function(e){var t=this.settings.ajax_url;i()({method:"POST",url:t,data:this.get_data_for_request(e)})}},{key:"get_data_for_request",value:function(e){var t=this.settings.ajax_action,r=new FormData;return r.append("action",t),r.append("is_permanently",e?1:0),r}}])&&d(t.prototype,r),n&&d(t,n),e}(),p=function e(){f(this,e);for(var t=document.querySelectorAll('.notice[data-notice="webp-converter-for-media"][data-notice-action]'),r=t.length,n=0;n<r;n++)new h(t[n])};function v(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}var m=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.set_vars()&&(this.set_events(),this.send_request_for_calculation())}var t,r,n;return t=e,(r=[{key:"set_vars",value:function(){if(this.section=document.querySelector(".webpcLoader"),this.section)return this.counter_webp=this.section.querySelector('[data-counter="webp"]'),this.counter_webp_percent=this.counter_webp.querySelector("[data-counter-percent]"),this.counter_webp_images=this.counter_webp.querySelector("[data-counter-left]"),this.counter_avif=this.section.querySelector('[data-counter="avif"]'),this.counter_avif_percent=this.counter_avif.querySelector("[data-counter-percent]"),this.counter_avif_images=this.counter_avif.querySelector("[data-counter-left]"),this.wrapper_status=this.section.querySelector("[data-status]"),this.progress=this.wrapper_status.querySelector("[data-status-progress]"),this.progress_size=this.section.querySelector("[data-status-count-size]"),this.progress_success=this.section.querySelector("[data-status-count-success]"),this.progress_failed=this.section.querySelector("[data-status-count-error]"),this.wrapper_errors=this.section.querySelector("[data-errors]"),this.errors_output=this.wrapper_errors.querySelector("[data-errors-output]"),this.wrapper_success=this.section.querySelector("[data-success]"),this.option_force=this.section.querySelector('input[name="regenerate_force"]'),this.submit_button=this.section.querySelector("[data-submit]"),this.data={count:0,max:0,items:[],size:{before:0,after:0},files:{all:0,converted:0},files_counter:{webp_left:0,webp_converted:0,webp_all:0,avif_left:0,avif_converted:0,avif_all:0},errors:0},this.settings={is_disabled:!1,ajax:{url_calculate:this.section.getAttribute("data-api-calculate"),url_paths:this.section.getAttribute("data-api-paths"),url_regenerate:this.section.getAttribute("data-api-regenerate"),error_message:this.section.getAttribute("data-api-error-message")},units:["kB","MB","GB"],max_errors:1e3,connection_timeout:6e4},this.atts={progress:"data-percent",counter_percent:"data-percent"},this.classes={progress_error:"webpcLoader__statusProgress--error",button_disabled:"webpcLoader__button--disabled",error_message:"webpcLoader__errorsContentError"},!0}},{key:"set_events",value:function(){this.submit_button.addEventListener("click",this.init_regeneration.bind(this))}},{key:"send_request_for_calculation",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,r=this.settings.ajax.url_calculate;t>=3||i()({method:"GET",url:r}).then((function(t){e.data.files_counter.webp_left=t.data.value_webp_left||0,e.data.files_counter.webp_all=t.data.value_webp_all||0,e.data.files_counter.avif_left=t.data.value_avif_left||0,e.data.files_counter.avif_all=t.data.value_avif_all||0,e.update_calculation_stats()})).catch((function(r){e.send_request_for_calculation(t+1)}))}},{key:"update_calculation_stats",value:function(){var e=this.data.files_counter,t=this.atts.counter_percent,r=Math.min(Math.max(e.webp_left-e.webp_converted,0),e.webp_all),n=Math.min(Math.max(e.avif_left-e.avif_converted,0),e.avif_all),i=e.webp_all>0?Math.floor(100*(1-r/e.webp_all)):0,o=e.avif_all>0?Math.floor(100*(1-n/e.avif_all)):0;this.counter_webp.setAttribute(t,i),this.counter_webp_percent.innerText=i,this.counter_webp_images.innerText=r.toString().replace(/\B(?=(\d{3})+(?!\d))/g," "),this.counter_avif.setAttribute(t,o),this.counter_avif_percent.innerText=o,this.counter_avif_images.innerText=n.toString().replace(/\B(?=(\d{3})+(?!\d))/g," ")}},{key:"init_regeneration",value:function(e){e.preventDefault(),this.settings.is_disabled||(this.settings.is_disabled=!0,this.submit_button.classList.add(this.classes.button_disabled),this.option_force.setAttribute("disabled","disabled"),this.wrapper_status.removeAttribute("hidden"),this.send_request_for_paths())}},{key:"send_request_for_paths",value:function(){var e=this,t=this.settings.ajax.url_paths;i()({method:"POST",url:t,data:{regenerate_force:this.option_force.checked?1:0}}).then((function(t){e.data.items=t.data,e.data.max=t.data.length,e.regenerate_next_images()})).catch((function(t){e.catch_request_error(t,!0)}))}},{key:"regenerate_next_images",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;if(0===this.data.max&&this.update_progress(),!(this.data.count>=this.data.max)){e>=3?e=0:e>0&&this.data.count--;var t=this.data.items[this.data.count];this.data.count++,this.send_request_for_regeneration(t,e)}}},{key:"send_request_for_regeneration",value:function(e,t){var r=this,n=this.settings.ajax.url_regenerate;i()({method:"POST",url:n,data:{regenerate_force:this.option_force.checked?1:0,paths:e},timeout:this.settings.connection_timeout}).then((function(e){var t=e.data.is_fatal_error;r.update_errors(e.data.errors,t),t||(r.update_size(e.data),r.update_files_count(e.data),r.update_progress(),r.regenerate_next_images())})).catch((function(n){n.response?(r.catch_request_error(n,!1,e),setTimeout(r.regenerate_next_images.bind(r),1e3)):setTimeout(r.regenerate_next_images.bind(r,t+1),1e3)}))}},{key:"update_errors",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];this.data.errors>this.settings.max_errors&&(this.data.errors=0,this.errors_output.innerHTML="");for(var r=this.get_date(),n=0;n<e.length;n++)this.print_error_message(e[n],t,!1,r),this.data.errors++;t&&this.set_fatal_error()}},{key:"get_date",value:function(){var e=new Date,t=("0"+e.getHours()).substr(-2),r=("0"+e.getMinutes()).substr(-2),n=("0"+e.getSeconds()).substr(-2);return"".concat(t,":").concat(r,":").concat(n)}},{key:"set_fatal_error",value:function(){this.progress.classList.add(this.classes.progress_error)}},{key:"catch_request_error",value:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;t&&(this.print_error_message([this.settings.ajax.error_message],!0,!1),this.set_fatal_error());var n=null!==r?'["'.concat(r.join('", "'),'"]'):"";this.print_error_message("".concat(e.response.status," - ").concat(e.response.statusText," (").concat(e.response.config.url,") ").concat(n),!0,!0)}},{key:"print_error_message",value:function(e,t,r){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,i=document.createElement("p"),o=n||this.get_date();if(r){var s=document.createElement("pre");s.innerText=e,i.appendChild(s)}else i.innerHTML="<strong>".concat(o,"</strong> - ").concat(e);t&&i.classList.add(this.classes.error_message),this.wrapper_errors.removeAttribute("hidden"),this.errors_output.appendChild(i)}},{key:"update_size",value:function(e){var t=this.data.size;t.before+=e.size.before,t.after+=e.size.after;var r=t.before-t.after;if(r<0&&(r=0),0!==r){var n=Math.round(100*(1-t.after/t.before));n<0&&(n=0);var i=-1;do{i++,r/=1024}while(r>1024);var o=r.toFixed(2),s=this.settings.units[i];this.progress_size.innerHTML="".concat(o," ").concat(s," (").concat(n,"%)")}}},{key:"update_files_count",value:function(e){var t=this.data,r=t.files,n=t.files_counter;r.all+=e.files.all,r.converted+=e.files.converted,n.webp_converted+=e.files.converted_webp,n.avif_converted+=e.files.converted_avif,this.option_force.checked&&(n.webp_left=n.webp_all,n.avif_left=n.avif_all),this.progress_success.innerText=r.converted,this.progress_failed.innerText=r.all-r.converted,this.update_calculation_stats()}},{key:"update_progress",value:function(){var e=this.data.max>0?Math.floor(this.data.count/this.data.max*100):100;e>100&&(e=100),100===e&&this.wrapper_success.removeAttribute("hidden"),this.progress.setAttribute(this.atts.progress,e.toString())}}])&&v(t.prototype,r),n&&v(t,n),e}();new function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),new p,new m,new s,new l}},694:function(){},155:function(e){var t,r,n=e.exports={};function i(){throw new Error("setTimeout has not been defined")}function o(){throw new Error("clearTimeout has not been defined")}function s(e){if(t===setTimeout)return setTimeout(e,0);if((t===i||!t)&&setTimeout)return t=setTimeout,setTimeout(e,0);try{return t(e,0)}catch(r){try{return t.call(null,e,0)}catch(r){return t.call(this,e,0)}}}!function(){try{t="function"==typeof setTimeout?setTimeout:i}catch(e){t=i}try{r="function"==typeof clearTimeout?clearTimeout:o}catch(e){r=o}}();var a,u=[],c=!1,l=-1;function f(){c&&a&&(c=!1,a.length?u=a.concat(u):l=-1,u.length&&d())}function d(){if(!c){var e=s(f);c=!0;for(var t=u.length;t;){for(a=u,u=[];++l<t;)a&&a[l].run();l=-1,t=u.length}a=null,c=!1,function(e){if(r===clearTimeout)return clearTimeout(e);if((r===o||!r)&&clearTimeout)return r=clearTimeout,clearTimeout(e);try{r(e)}catch(t){try{return r.call(null,e)}catch(t){return r.call(this,e)}}}(e)}}function h(e,t){this.fun=e,this.array=t}function p(){}n.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var r=1;r<arguments.length;r++)t[r-1]=arguments[r];u.push(new h(e,t)),1!==u.length||c||s(d)},h.prototype.run=function(){this.fun.apply(null,this.array)},n.title="browser",n.browser=!0,n.env={},n.argv=[],n.version="",n.versions={},n.on=p,n.addListener=p,n.once=p,n.off=p,n.removeListener=p,n.removeAllListeners=p,n.emit=p,n.prependListener=p,n.prependOnceListener=p,n.listeners=function(e){return[]},n.binding=function(e){throw new Error("process.binding is not supported")},n.cwd=function(){return"/"},n.chdir=function(e){throw new Error("process.chdir is not supported")},n.umask=function(){return 0}},593:function(e){"use strict";e.exports=JSON.parse('{"name":"axios","version":"0.21.4","description":"Promise based HTTP client for the browser and node.js","main":"index.js","scripts":{"test":"grunt test","start":"node ./sandbox/server.js","build":"NODE_ENV=production grunt build","preversion":"npm test","version":"npm run build && grunt version && git add -A dist && git add CHANGELOG.md bower.json package.json","postversion":"git push && git push --tags","examples":"node ./examples/server.js","coveralls":"cat coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","fix":"eslint --fix lib/**/*.js"},"repository":{"type":"git","url":"https://github.com/axios/axios.git"},"keywords":["xhr","http","ajax","promise","node"],"author":"Matt Zabriskie","license":"MIT","bugs":{"url":"https://github.com/axios/axios/issues"},"homepage":"https://axios-http.com","devDependencies":{"coveralls":"^3.0.0","es6-promise":"^4.2.4","grunt":"^1.3.0","grunt-banner":"^0.6.0","grunt-cli":"^1.2.0","grunt-contrib-clean":"^1.1.0","grunt-contrib-watch":"^1.0.0","grunt-eslint":"^23.0.0","grunt-karma":"^4.0.0","grunt-mocha-test":"^0.13.3","grunt-ts":"^6.0.0-beta.19","grunt-webpack":"^4.0.2","istanbul-instrumenter-loader":"^1.0.0","jasmine-core":"^2.4.1","karma":"^6.3.2","karma-chrome-launcher":"^3.1.0","karma-firefox-launcher":"^2.1.0","karma-jasmine":"^1.1.1","karma-jasmine-ajax":"^0.1.13","karma-safari-launcher":"^1.0.0","karma-sauce-launcher":"^4.3.6","karma-sinon":"^1.0.5","karma-sourcemap-loader":"^0.3.8","karma-webpack":"^4.0.2","load-grunt-tasks":"^3.5.2","minimist":"^1.2.0","mocha":"^8.2.1","sinon":"^4.5.0","terser-webpack-plugin":"^4.2.3","typescript":"^4.0.5","url-search-params":"^0.10.0","webpack":"^4.44.2","webpack-dev-server":"^3.11.0"},"browser":{"./lib/adapters/http.js":"./lib/adapters/xhr.js"},"jsdelivr":"dist/axios.min.js","unpkg":"dist/axios.min.js","typings":"./index.d.ts","dependencies":{"follow-redirects":"^1.14.0"},"bundlesize":[{"path":"./dist/axios.min.js","threshold":"5kB"}]}')}},r={};function n(e){var i=r[e];if(void 0!==i)return i.exports;var o=r[e]={exports:{}};return t[e](o,o.exports,n),o.exports}n.m=t,e=[],n.O=function(t,r,i,o){if(!r){var s=1/0;for(l=0;l<e.length;l++){r=e[l][0],i=e[l][1],o=e[l][2];for(var a=!0,u=0;u<r.length;u++)(!1&o||s>=o)&&Object.keys(n.O).every((function(e){return n.O[e](r[u])}))?r.splice(u--,1):(a=!1,o<s&&(s=o));if(a){e.splice(l--,1);var c=i();void 0!==c&&(t=c)}}return t}o=o||0;for(var l=e.length;l>0&&e[l-1][2]>o;l--)e[l]=e[l-1];e[l]=[r,i,o]},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,{a:t}),t},n.d=function(e,t){for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},function(){var e={794:0,505:0};n.O.j=function(t){return 0===e[t]};var t=function(t,r){var i,o,s=r[0],a=r[1],u=r[2],c=0;if(s.some((function(t){return 0!==e[t]}))){for(i in a)n.o(a,i)&&(n.m[i]=a[i]);if(u)var l=u(n)}for(t&&t(r);c<s.length;c++)o=s[c],n.o(e,o)&&e[o]&&e[o][0](),e[s[c]]=0;return n.O(l)},r=self.webpackChunkwebp_converter_for_media=self.webpackChunkwebp_converter_for_media||[];r.forEach(t.bind(null,0)),r.push=t.bind(null,r.push.bind(r))}(),n.O(void 0,[505],(function(){return n(917)}));var i=n.O(void 0,[505],(function(){return n(694)}));i=n.O(i)}();
|
1 |
+
!function(){var e,t={669:function(e,t,r){e.exports=r(609)},448:function(e,t,r){"use strict";var n=r(867),s=r(26),o=r(372),i=r(327),a=r(97),u=r(109),c=r(985),f=r(61);e.exports=function(e){return new Promise((function(t,r){var l=e.data,h=e.headers,p=e.responseType;n.isFormData(l)&&delete h["Content-Type"];var d=new XMLHttpRequest;if(e.auth){var v=e.auth.username||"",_=e.auth.password?unescape(encodeURIComponent(e.auth.password)):"";h.Authorization="Basic "+btoa(v+":"+_)}var m=a(e.baseURL,e.url);function g(){if(d){var n="getAllResponseHeaders"in d?u(d.getAllResponseHeaders()):null,o={data:p&&"text"!==p&&"json"!==p?d.response:d.responseText,status:d.status,statusText:d.statusText,headers:n,config:e,request:d};s(t,r,o),d=null}}if(d.open(e.method.toUpperCase(),i(m,e.params,e.paramsSerializer),!0),d.timeout=e.timeout,"onloadend"in d?d.onloadend=g:d.onreadystatechange=function(){d&&4===d.readyState&&(0!==d.status||d.responseURL&&0===d.responseURL.indexOf("file:"))&&setTimeout(g)},d.onabort=function(){d&&(r(f("Request aborted",e,"ECONNABORTED",d)),d=null)},d.onerror=function(){r(f("Network Error",e,null,d)),d=null},d.ontimeout=function(){var t="timeout of "+e.timeout+"ms exceeded";e.timeoutErrorMessage&&(t=e.timeoutErrorMessage),r(f(t,e,e.transitional&&e.transitional.clarifyTimeoutError?"ETIMEDOUT":"ECONNABORTED",d)),d=null},n.isStandardBrowserEnv()){var b=(e.withCredentials||c(m))&&e.xsrfCookieName?o.read(e.xsrfCookieName):void 0;b&&(h[e.xsrfHeaderName]=b)}"setRequestHeader"in d&&n.forEach(h,(function(e,t){void 0===l&&"content-type"===t.toLowerCase()?delete h[t]:d.setRequestHeader(t,e)})),n.isUndefined(e.withCredentials)||(d.withCredentials=!!e.withCredentials),p&&"json"!==p&&(d.responseType=e.responseType),"function"==typeof e.onDownloadProgress&&d.addEventListener("progress",e.onDownloadProgress),"function"==typeof e.onUploadProgress&&d.upload&&d.upload.addEventListener("progress",e.onUploadProgress),e.cancelToken&&e.cancelToken.promise.then((function(e){d&&(d.abort(),r(e),d=null)})),l||(l=null),d.send(l)}))}},609:function(e,t,r){"use strict";var n=r(867),s=r(849),o=r(321),i=r(185);function a(e){var t=new o(e),r=s(o.prototype.request,t);return n.extend(r,o.prototype,t),n.extend(r,t),r}var u=a(r(655));u.Axios=o,u.create=function(e){return a(i(u.defaults,e))},u.Cancel=r(263),u.CancelToken=r(972),u.isCancel=r(502),u.all=function(e){return Promise.all(e)},u.spread=r(713),u.isAxiosError=r(268),e.exports=u,e.exports.default=u},263:function(e){"use strict";function t(e){this.message=e}t.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")},t.prototype.__CANCEL__=!0,e.exports=t},972:function(e,t,r){"use strict";var n=r(263);function s(e){if("function"!=typeof e)throw new TypeError("executor must be a function.");var t;this.promise=new Promise((function(e){t=e}));var r=this;e((function(e){r.reason||(r.reason=new n(e),t(r.reason))}))}s.prototype.throwIfRequested=function(){if(this.reason)throw this.reason},s.source=function(){var e;return{token:new s((function(t){e=t})),cancel:e}},e.exports=s},502:function(e){"use strict";e.exports=function(e){return!(!e||!e.__CANCEL__)}},321:function(e,t,r){"use strict";var n=r(867),s=r(327),o=r(782),i=r(572),a=r(185),u=r(875),c=u.validators;function f(e){this.defaults=e,this.interceptors={request:new o,response:new o}}f.prototype.request=function(e){"string"==typeof e?(e=arguments[1]||{}).url=arguments[0]:e=e||{},(e=a(this.defaults,e)).method?e.method=e.method.toLowerCase():this.defaults.method?e.method=this.defaults.method.toLowerCase():e.method="get";var t=e.transitional;void 0!==t&&u.assertOptions(t,{silentJSONParsing:c.transitional(c.boolean,"1.0.0"),forcedJSONParsing:c.transitional(c.boolean,"1.0.0"),clarifyTimeoutError:c.transitional(c.boolean,"1.0.0")},!1);var r=[],n=!0;this.interceptors.request.forEach((function(t){"function"==typeof t.runWhen&&!1===t.runWhen(e)||(n=n&&t.synchronous,r.unshift(t.fulfilled,t.rejected))}));var s,o=[];if(this.interceptors.response.forEach((function(e){o.push(e.fulfilled,e.rejected)})),!n){var f=[i,void 0];for(Array.prototype.unshift.apply(f,r),f=f.concat(o),s=Promise.resolve(e);f.length;)s=s.then(f.shift(),f.shift());return s}for(var l=e;r.length;){var h=r.shift(),p=r.shift();try{l=h(l)}catch(e){p(e);break}}try{s=i(l)}catch(e){return Promise.reject(e)}for(;o.length;)s=s.then(o.shift(),o.shift());return s},f.prototype.getUri=function(e){return e=a(this.defaults,e),s(e.url,e.params,e.paramsSerializer).replace(/^\?/,"")},n.forEach(["delete","get","head","options"],(function(e){f.prototype[e]=function(t,r){return this.request(a(r||{},{method:e,url:t,data:(r||{}).data}))}})),n.forEach(["post","put","patch"],(function(e){f.prototype[e]=function(t,r,n){return this.request(a(n||{},{method:e,url:t,data:r}))}})),e.exports=f},782:function(e,t,r){"use strict";var n=r(867);function s(){this.handlers=[]}s.prototype.use=function(e,t,r){return this.handlers.push({fulfilled:e,rejected:t,synchronous:!!r&&r.synchronous,runWhen:r?r.runWhen:null}),this.handlers.length-1},s.prototype.eject=function(e){this.handlers[e]&&(this.handlers[e]=null)},s.prototype.forEach=function(e){n.forEach(this.handlers,(function(t){null!==t&&e(t)}))},e.exports=s},97:function(e,t,r){"use strict";var n=r(793),s=r(303);e.exports=function(e,t){return e&&!n(t)?s(e,t):t}},61:function(e,t,r){"use strict";var n=r(481);e.exports=function(e,t,r,s,o){var i=new Error(e);return n(i,t,r,s,o)}},572:function(e,t,r){"use strict";var n=r(867),s=r(527),o=r(502),i=r(655);function a(e){e.cancelToken&&e.cancelToken.throwIfRequested()}e.exports=function(e){return a(e),e.headers=e.headers||{},e.data=s.call(e,e.data,e.headers,e.transformRequest),e.headers=n.merge(e.headers.common||{},e.headers[e.method]||{},e.headers),n.forEach(["delete","get","head","post","put","patch","common"],(function(t){delete e.headers[t]})),(e.adapter||i.adapter)(e).then((function(t){return a(e),t.data=s.call(e,t.data,t.headers,e.transformResponse),t}),(function(t){return o(t)||(a(e),t&&t.response&&(t.response.data=s.call(e,t.response.data,t.response.headers,e.transformResponse))),Promise.reject(t)}))}},481:function(e){"use strict";e.exports=function(e,t,r,n,s){return e.config=t,r&&(e.code=r),e.request=n,e.response=s,e.isAxiosError=!0,e.toJSON=function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:this.config,code:this.code}},e}},185:function(e,t,r){"use strict";var n=r(867);e.exports=function(e,t){t=t||{};var r={},s=["url","method","data"],o=["headers","auth","proxy","params"],i=["baseURL","transformRequest","transformResponse","paramsSerializer","timeout","timeoutMessage","withCredentials","adapter","responseType","xsrfCookieName","xsrfHeaderName","onUploadProgress","onDownloadProgress","decompress","maxContentLength","maxBodyLength","maxRedirects","transport","httpAgent","httpsAgent","cancelToken","socketPath","responseEncoding"],a=["validateStatus"];function u(e,t){return n.isPlainObject(e)&&n.isPlainObject(t)?n.merge(e,t):n.isPlainObject(t)?n.merge({},t):n.isArray(t)?t.slice():t}function c(s){n.isUndefined(t[s])?n.isUndefined(e[s])||(r[s]=u(void 0,e[s])):r[s]=u(e[s],t[s])}n.forEach(s,(function(e){n.isUndefined(t[e])||(r[e]=u(void 0,t[e]))})),n.forEach(o,c),n.forEach(i,(function(s){n.isUndefined(t[s])?n.isUndefined(e[s])||(r[s]=u(void 0,e[s])):r[s]=u(void 0,t[s])})),n.forEach(a,(function(n){n in t?r[n]=u(e[n],t[n]):n in e&&(r[n]=u(void 0,e[n]))}));var f=s.concat(o).concat(i).concat(a),l=Object.keys(e).concat(Object.keys(t)).filter((function(e){return-1===f.indexOf(e)}));return n.forEach(l,c),r}},26:function(e,t,r){"use strict";var n=r(61);e.exports=function(e,t,r){var s=r.config.validateStatus;r.status&&s&&!s(r.status)?t(n("Request failed with status code "+r.status,r.config,null,r.request,r)):e(r)}},527:function(e,t,r){"use strict";var n=r(867),s=r(655);e.exports=function(e,t,r){var o=this||s;return n.forEach(r,(function(r){e=r.call(o,e,t)})),e}},655:function(e,t,r){"use strict";var n=r(155),s=r(867),o=r(16),i=r(481),a={"Content-Type":"application/x-www-form-urlencoded"};function u(e,t){!s.isUndefined(e)&&s.isUndefined(e["Content-Type"])&&(e["Content-Type"]=t)}var c,f={transitional:{silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},adapter:(("undefined"!=typeof XMLHttpRequest||void 0!==n&&"[object process]"===Object.prototype.toString.call(n))&&(c=r(448)),c),transformRequest:[function(e,t){return o(t,"Accept"),o(t,"Content-Type"),s.isFormData(e)||s.isArrayBuffer(e)||s.isBuffer(e)||s.isStream(e)||s.isFile(e)||s.isBlob(e)?e:s.isArrayBufferView(e)?e.buffer:s.isURLSearchParams(e)?(u(t,"application/x-www-form-urlencoded;charset=utf-8"),e.toString()):s.isObject(e)||t&&"application/json"===t["Content-Type"]?(u(t,"application/json"),function(e,t,r){if(s.isString(e))try{return(t||JSON.parse)(e),s.trim(e)}catch(e){if("SyntaxError"!==e.name)throw e}return(r||JSON.stringify)(e)}(e)):e}],transformResponse:[function(e){var t=this.transitional,r=t&&t.silentJSONParsing,n=t&&t.forcedJSONParsing,o=!r&&"json"===this.responseType;if(o||n&&s.isString(e)&&e.length)try{return JSON.parse(e)}catch(e){if(o){if("SyntaxError"===e.name)throw i(e,this,"E_JSON_PARSE");throw e}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,validateStatus:function(e){return e>=200&&e<300}};f.headers={common:{Accept:"application/json, text/plain, */*"}},s.forEach(["delete","get","head"],(function(e){f.headers[e]={}})),s.forEach(["post","put","patch"],(function(e){f.headers[e]=s.merge(a)})),e.exports=f},849:function(e){"use strict";e.exports=function(e,t){return function(){for(var r=new Array(arguments.length),n=0;n<r.length;n++)r[n]=arguments[n];return e.apply(t,r)}}},327:function(e,t,r){"use strict";var n=r(867);function s(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}e.exports=function(e,t,r){if(!t)return e;var o;if(r)o=r(t);else if(n.isURLSearchParams(t))o=t.toString();else{var i=[];n.forEach(t,(function(e,t){null!=e&&(n.isArray(e)?t+="[]":e=[e],n.forEach(e,(function(e){n.isDate(e)?e=e.toISOString():n.isObject(e)&&(e=JSON.stringify(e)),i.push(s(t)+"="+s(e))})))})),o=i.join("&")}if(o){var a=e.indexOf("#");-1!==a&&(e=e.slice(0,a)),e+=(-1===e.indexOf("?")?"?":"&")+o}return e}},303:function(e){"use strict";e.exports=function(e,t){return t?e.replace(/\/+$/,"")+"/"+t.replace(/^\/+/,""):e}},372:function(e,t,r){"use strict";var n=r(867);e.exports=n.isStandardBrowserEnv()?{write:function(e,t,r,s,o,i){var a=[];a.push(e+"="+encodeURIComponent(t)),n.isNumber(r)&&a.push("expires="+new Date(r).toGMTString()),n.isString(s)&&a.push("path="+s),n.isString(o)&&a.push("domain="+o),!0===i&&a.push("secure"),document.cookie=a.join("; ")},read:function(e){var t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove:function(e){this.write(e,"",Date.now()-864e5)}}:{write:function(){},read:function(){return null},remove:function(){}}},793:function(e){"use strict";e.exports=function(e){return/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(e)}},268:function(e){"use strict";e.exports=function(e){return"object"==typeof e&&!0===e.isAxiosError}},985:function(e,t,r){"use strict";var n=r(867);e.exports=n.isStandardBrowserEnv()?function(){var e,t=/(msie|trident)/i.test(navigator.userAgent),r=document.createElement("a");function s(e){var n=e;return t&&(r.setAttribute("href",n),n=r.href),r.setAttribute("href",n),{href:r.href,protocol:r.protocol?r.protocol.replace(/:$/,""):"",host:r.host,search:r.search?r.search.replace(/^\?/,""):"",hash:r.hash?r.hash.replace(/^#/,""):"",hostname:r.hostname,port:r.port,pathname:"/"===r.pathname.charAt(0)?r.pathname:"/"+r.pathname}}return e=s(window.location.href),function(t){var r=n.isString(t)?s(t):t;return r.protocol===e.protocol&&r.host===e.host}}():function(){return!0}},16:function(e,t,r){"use strict";var n=r(867);e.exports=function(e,t){n.forEach(e,(function(r,n){n!==t&&n.toUpperCase()===t.toUpperCase()&&(e[t]=r,delete e[n])}))}},109:function(e,t,r){"use strict";var n=r(867),s=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"];e.exports=function(e){var t,r,o,i={};return e?(n.forEach(e.split("\n"),(function(e){if(o=e.indexOf(":"),t=n.trim(e.substr(0,o)).toLowerCase(),r=n.trim(e.substr(o+1)),t){if(i[t]&&s.indexOf(t)>=0)return;i[t]="set-cookie"===t?(i[t]?i[t]:[]).concat([r]):i[t]?i[t]+", "+r:r}})),i):i}},713:function(e){"use strict";e.exports=function(e){return function(t){return e.apply(null,t)}}},875:function(e,t,r){"use strict";var n=r(593),s={};["object","boolean","number","function","string","symbol"].forEach((function(e,t){s[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}}));var o={},i=n.version.split(".");function a(e,t){for(var r=t?t.split("."):i,n=e.split("."),s=0;s<3;s++){if(r[s]>n[s])return!0;if(r[s]<n[s])return!1}return!1}s.transitional=function(e,t,r){var s=t&&a(t);return function(i,a,u){if(!1===e)throw new Error(function(e,t){return"[Axios v"+n.version+"] Transitional option '"+e+"'"+t+(r?". "+r:"")}(a," has been removed in "+t));return s&&!o[a]&&(o[a]=!0),!e||e(i,a,u)}},e.exports={isOlderVersion:a,assertOptions:function(e,t,r){if("object"!=typeof e)throw new TypeError("options must be an object");for(var n=Object.keys(e),s=n.length;s-- >0;){var o=n[s],i=t[o];if(i){var a=e[o],u=void 0===a||i(a,o,e);if(!0!==u)throw new TypeError("option "+o+" must be "+u)}else if(!0!==r)throw Error("Unknown option "+o)}},validators:s}},867:function(e,t,r){"use strict";var n=r(849),s=Object.prototype.toString;function o(e){return"[object Array]"===s.call(e)}function i(e){return void 0===e}function a(e){return null!==e&&"object"==typeof e}function u(e){if("[object Object]"!==s.call(e))return!1;var t=Object.getPrototypeOf(e);return null===t||t===Object.prototype}function c(e){return"[object Function]"===s.call(e)}function f(e,t){if(null!=e)if("object"!=typeof e&&(e=[e]),o(e))for(var r=0,n=e.length;r<n;r++)t.call(null,e[r],r,e);else for(var s in e)Object.prototype.hasOwnProperty.call(e,s)&&t.call(null,e[s],s,e)}e.exports={isArray:o,isArrayBuffer:function(e){return"[object ArrayBuffer]"===s.call(e)},isBuffer:function(e){return null!==e&&!i(e)&&null!==e.constructor&&!i(e.constructor)&&"function"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)},isFormData:function(e){return"undefined"!=typeof FormData&&e instanceof FormData},isArrayBufferView:function(e){return"undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&e.buffer instanceof ArrayBuffer},isString:function(e){return"string"==typeof e},isNumber:function(e){return"number"==typeof e},isObject:a,isPlainObject:u,isUndefined:i,isDate:function(e){return"[object Date]"===s.call(e)},isFile:function(e){return"[object File]"===s.call(e)},isBlob:function(e){return"[object Blob]"===s.call(e)},isFunction:c,isStream:function(e){return a(e)&&c(e.pipe)},isURLSearchParams:function(e){return"undefined"!=typeof URLSearchParams&&e instanceof URLSearchParams},isStandardBrowserEnv:function(){return("undefined"==typeof navigator||"ReactNative"!==navigator.product&&"NativeScript"!==navigator.product&&"NS"!==navigator.product)&&("undefined"!=typeof window&&"undefined"!=typeof document)},forEach:f,merge:function e(){var t={};function r(r,n){u(t[n])&&u(r)?t[n]=e(t[n],r):u(r)?t[n]=e({},r):o(r)?t[n]=r.slice():t[n]=r}for(var n=0,s=arguments.length;n<s;n++)f(arguments[n],r);return t},extend:function(e,t,r){return f(t,(function(t,s){e[s]=r&&"function"==typeof t?n(t,r):t})),e},trim:function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")},stripBOM:function(e){return 65279===e.charCodeAt(0)&&(e=e.slice(1)),e}}},442:function(e,t,r){"use strict";var n=r(669),s=r.n(n);function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var i=function e(){o(this,e);for(var t=document.querySelectorAll('.notice[data-notice="webp-converter-for-media"][data-notice-action]'),r=t.length,n=0;n<r;n++)new NoticeCore(t[n])};function a(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}var u=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.status=this.set_vars()}var t,r,n;return t=e,(r=[{key:"set_vars",value:function(){if(this.counter_webp=document.querySelector('[data-counter="webp"]'),this.counter_avif=document.querySelector('[data-counter="avif"]'),this.counter_webp&&this.counter_avif)return this.counter_webp_percent=this.counter_webp.querySelector("[data-counter-percent]"),this.counter_webp_images=this.counter_webp.querySelector("[data-counter-left]"),this.counter_avif_percent=this.counter_avif.querySelector("[data-counter-percent]"),this.counter_avif_images=this.counter_avif.querySelector("[data-counter-left]"),this.data={webp_converted:0,webp_unconverted:0,webp_all:0,avif_converted:0,avif_unconverted:0,avif_all:0},this.atts={counter_percent:"data-percent"},!0}},{key:"set_files_webp",value:function(e,t){this.status&&(this.data.webp_converted+=e,this.data.webp_unconverted=t-e,this.data.webp_all=t||this.data.webp_all,this.refresh_stats())}},{key:"reset_files_webp",value:function(){this.status&&(this.data.webp_converted=0,this.data.webp_unconverted=this.data.webp_all,this.refresh_stats())}},{key:"set_files_avif",value:function(e,t){this.status&&(this.data.avif_converted+=e,this.data.avif_unconverted=t-e,this.data.avif_all=t,this.refresh_stats())}},{key:"reset_files_avif",value:function(){this.status&&(this.data.avif_converted=0,this.data.avif_unconverted=this.data.avif_all,this.refresh_stats())}},{key:"add_files_webp",value:function(e){this.status&&(this.data.webp_converted+=e,this.data.webp_unconverted-=e,this.refresh_stats())}},{key:"add_files_avif",value:function(e){this.status&&(this.data.avif_converted+=e,this.data.avif_unconverted-=e,this.refresh_stats())}},{key:"refresh_stats",value:function(){var e=this.data,t=e.webp_converted,r=e.webp_unconverted,n=e.webp_all,s=e.avif_converted,o=e.avif_unconverted,i=e.avif_all,a=this.atts.counter_percent,u=n>0?Math.floor(t/n*100):0,c=i>0?Math.floor(s/i*100):0;this.counter_webp.setAttribute(a,u),this.counter_webp_percent.innerText=u,this.counter_webp_images.innerText=Math.max(r,0).toString().replace(/\B(?=(\d{3})+(?!\d))/g," "),this.counter_avif.setAttribute(a,c),this.counter_avif_percent.innerText=c,this.counter_avif_images.innerText=Math.max(o,0).toString().replace(/\B(?=(\d{3})+(?!\d))/g," ")}}])&&a(t.prototype,r),n&&a(t,n),e}();function c(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}var f=function(){function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.conversion_stats_manager=t,this.set_vars()&&this.set_events()}var t,r,n;return t=e,(r=[{key:"set_vars",value:function(){if(this.section=document.querySelector(".webpcLoader"),this.section)return this.wrapper_status=this.section.querySelector("[data-status]"),this.progress=this.wrapper_status.querySelector("[data-status-progress]"),this.progress_size=this.section.querySelector("[data-status-count-size]"),this.progress_success=this.section.querySelector("[data-status-count-success]"),this.progress_failed=this.section.querySelector("[data-status-count-error]"),this.wrapper_errors=this.section.querySelector("[data-errors]"),this.errors_output=this.wrapper_errors.querySelector("[data-errors-output]"),this.wrapper_success=this.section.querySelector("[data-success]"),this.option_force=this.section.querySelector('input[name="regenerate_force"]'),this.submit_button=this.section.querySelector("[data-submit]"),this.data={count:0,max:0,items:[],size:{before:0,after:0},files_counter:{all:0,converted:0},errors:0},this.settings={is_disabled:!1,ajax:{url_paths:this.section.getAttribute("data-api-paths"),url_regenerate:this.section.getAttribute("data-api-regenerate"),error_message:this.section.getAttribute("data-api-error-message")},units:["kB","MB","GB"],max_errors:1e3,connection_timeout:6e4},this.atts={progress:"data-percent",counter_percent:"data-percent"},this.classes={progress_error:"webpcLoader__statusProgress--error",button_disabled:"webpcLoader__button--disabled",error_message:"webpcLoader__errorsContentError"},!0}},{key:"set_events",value:function(){this.submit_button.addEventListener("click",this.init_regeneration.bind(this))}},{key:"init_regeneration",value:function(e){e.preventDefault(),this.settings.is_disabled||(this.settings.is_disabled=!0,this.submit_button.classList.add(this.classes.button_disabled),this.option_force.setAttribute("disabled","disabled"),this.wrapper_status.removeAttribute("hidden"),this.send_request_for_paths())}},{key:"send_request_for_paths",value:function(){var e=this,t=this.settings.ajax.url_paths;s()({method:"POST",url:t,data:{regenerate_force:this.option_force.checked?1:0}}).then((function(t){var r=e.parse_files_paths(t.data);e.data.items=r,e.data.max=r.length,e.option_force.checked&&(e.conversion_stats_manager.reset_files_webp(),e.conversion_stats_manager.reset_files_avif()),e.regenerate_next_images()})).catch((function(t){e.catch_request_error(t,!0)}))}},{key:"parse_files_paths",value:function(e){var t=[];for(var r in e)for(var n=e[r].files.length,s=0;s<n;s++){for(var o=[],i=0;i<e[r].files[s].length;i++)o.push(e[r].path+"/"+e[r].files[s][i]);t.push(o)}return t}},{key:"regenerate_next_images",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;if(0===this.data.max&&this.update_progress(),!(this.data.count>=this.data.max)){e>=3?e=0:e>0&&this.data.count--;var t=this.data.items[this.data.count];this.data.count++,this.send_request_for_regeneration(t,e)}}},{key:"send_request_for_regeneration",value:function(e,t){var r=this,n=this.settings.ajax.url_regenerate;s()({method:"POST",url:n,data:{regenerate_force:this.option_force.checked?1:0,paths:e},timeout:this.settings.connection_timeout}).then((function(e){var t=e.data.is_fatal_error;r.update_errors(e.data.errors,t),t||(r.update_size(e.data),r.update_files_count(e.data),r.update_progress(),r.regenerate_next_images())})).catch((function(n){n.response?(r.catch_request_error(n,!1,e),setTimeout(r.regenerate_next_images.bind(r),1e3)):setTimeout(r.regenerate_next_images.bind(r,t+1),1e3)}))}},{key:"update_errors",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];this.data.errors>this.settings.max_errors&&(this.data.errors=0,this.errors_output.innerHTML="");for(var r=this.get_date(),n=0;n<e.length;n++)this.print_error_message(e[n],t,!1,r),this.data.errors++;t&&this.set_fatal_error()}},{key:"get_date",value:function(){var e=new Date,t=("0"+e.getHours()).substr(-2),r=("0"+e.getMinutes()).substr(-2),n=("0"+e.getSeconds()).substr(-2);return"".concat(t,":").concat(r,":").concat(n)}},{key:"set_fatal_error",value:function(){this.progress.classList.add(this.classes.progress_error)}},{key:"catch_request_error",value:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;t&&(this.print_error_message([this.settings.ajax.error_message],!0,!1),this.set_fatal_error());var n=null!==r?'["'.concat(r.join('", "'),'"]'):"";this.print_error_message("".concat(e.response.status," - ").concat(e.response.statusText," (").concat(e.response.config.url,") ").concat(n),!0,!0)}},{key:"print_error_message",value:function(e,t,r){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,s=document.createElement("p"),o=n||this.get_date();if(r){var i=document.createElement("pre");i.innerText=e,s.appendChild(i)}else s.innerHTML="<strong>".concat(o,"</strong> - ").concat(e);t&&s.classList.add(this.classes.error_message),this.wrapper_errors.removeAttribute("hidden"),this.errors_output.appendChild(s)}},{key:"update_size",value:function(e){var t=this.data.size;t.before+=e.size.before,t.after+=e.size.after;var r=t.before-t.after;if(r<0&&(r=0),0!==r){var n=Math.round(100*(1-t.after/t.before));n<0&&(n=0);var s=-1;do{s++,r/=1024}while(r>1024);var o=r.toFixed(2),i=this.settings.units[s];this.progress_size.innerHTML="".concat(o," ").concat(i," (").concat(n,"%)")}}},{key:"update_files_count",value:function(e){var t=this.data.files_counter,r=e.files;this.conversion_stats_manager.add_files_webp(r.webp_available),this.conversion_stats_manager.add_files_avif(r.avif_available),t.converted+=r.webp_converted+r.avif_converted,t.all+=r.webp_available+r.avif_available,this.progress_success.innerText=t.converted,this.progress_failed.innerText=t.all-t.converted}},{key:"update_progress",value:function(){var e=this.data.max>0?Math.floor(this.data.count/this.data.max*100):100;e>100&&(e=100),100===e&&this.wrapper_success.removeAttribute("hidden"),this.progress.setAttribute(this.atts.progress,e.toString())}}])&&c(t.prototype,r),n&&c(t,n),e}();function l(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}var h=function(){function e(t,r,n){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.conversion_stats_manager=t,this.images_tree_generator=r,this.plans_button_generator=n,this.set_vars()&&this.send_request()}var t,r,n;return t=e,(r=[{key:"set_vars",value:function(){if(this.section=document.querySelector("[data-api-stats]"),this.section)return this.output_wrapper=this.section.querySelector("[data-tree-output]"),this.settings={ajax_url:this.section.getAttribute("data-api-stats")},!0}},{key:"send_request",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;t>=3||s()({method:"GET",url:this.settings.ajax_url}).then((function(t){var r=t.data.value_webp_all||0,n=t.data.value_webp_converted||0,s=t.data.value_avif_all||0,o=t.data.value_avif_converted||0;e.conversion_stats_manager.set_files_webp(n,r),e.conversion_stats_manager.set_files_avif(o,s),e.images_tree_generator.generate_tree(t.data.tree),e.plans_button_generator.show_button(r-n,s-o)})).catch((function(r){e.send_request(t+1)}))}}])&&l(t.prototype,r),n&&l(t,n),e}();function p(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}var d=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.status=this.set_vars()}var t,r,n;return t=e,(r=[{key:"set_vars",value:function(){if(this.section=document.querySelector("[data-tree]"),this.section)return!0}},{key:"generate_tree",value:function(e){if(this.status){this.section.innerHTML=this.draw_tree(e);for(var t=this.section.querySelectorAll(".webpcTree__itemCheckbox"),r=0;r<t.length;r++)t[r].addEventListener("change",(function(e){if(!e.currentTarget.checked)for(var t=e.currentTarget.parentNode.querySelectorAll(".webpcTree__itemCheckbox"),r=0;r<t.length;r++)t[r].checked=!1}))}}},{key:"draw_tree",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"tree",n="",s=e.length;if(!s)return n;0===t&&(n+='<ul class="webpcTree__items">');for(var o=0;o<s;o++){var i="".concat(r,"-").concat(e[o].name).replace(/\s/g,"");n+='<li class="webpcTree__item">',n+='<input type="checkbox" id="'.concat(i,'" class="webpcTree__itemCheckbox">'),n+='<label for="'.concat(i,'" class="webpcTree__itemLabel">'),n+="".concat(e[o].name," <strong>(").concat(e[o].count.toString().replace(/\B(?=(\d{3})+(?!\d))/g," "),")</strong>"),n+="</label>",n+='<ul class="webpcTree__items">',e[o].items&&(n+=this.draw_tree(e[o].items,t+1,i));for(var a=0;a<e[o].files.length;a++)n+='<li class="webpcTree__item">',n+='<span class="webpcTree__itemName">'.concat(e[o].files[a],"</span>"),n+="</li>";n+="</ul>",n+="</li>"}return 0===t&&(n+="</ul>"),n}}])&&p(t.prototype,r),n&&p(t,n),e}();function v(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}var m=function(){function e(t){v(this,e),this.input_toggle=t,this.set_vars()&&this.set_events()}var t,r,n;return t=e,(r=[{key:"set_vars",value:function(){var e=this.input_toggle.getAttribute("data-inputs-group-toggle");return this.inputs=document.querySelectorAll('[data-inputs-group-input="'.concat(e,'"]')),!!this.inputs.length}},{key:"set_events",value:function(){this.input_toggle.addEventListener("change",this.toggle_inputs.bind(this))}},{key:"toggle_inputs",value:function(e){for(var t=this.inputs.length,r=0;r<t;r++)this.input_toggle.checked?this.inputs[r].removeAttribute("readonly"):this.inputs[r].setAttribute("readonly","readonly")}}])&&_(t.prototype,r),n&&_(t,n),e}(),g=function e(){v(this,e);for(var t=document.querySelectorAll("[data-inputs-group-toggle]"),r=t.length,n=0;n<r;n++)new m(t[n])};function b(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}var y=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.status=this.set_vars()}var t,r,n;return t=e,(r=[{key:"set_vars",value:function(){if(this.section=document.querySelector("[data-plans]"),this.section)return this.button=this.section.querySelector("[data-plans-button]"),this.loader=this.section.querySelector("[data-plans-loader]"),this.settings={button_url:this.button.getAttribute("href")},!0}},{key:"show_button",value:function(e,t){if(this.status){var r=this.settings.button_url.replace("webp=0","webp=".concat(e)).replace("avif=0","avif=".concat(t));this.button.setAttribute("href",r),this.button.removeAttribute("hidden"),this.loader.setAttribute("hidden","hidden")}}}])&&b(t.prototype,r),n&&b(t,n),e}();new function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e);var t=new u,r=new d,n=new y;new i,new f(t),new h(t,r,n),new g}},694:function(){},155:function(e){var t,r,n=e.exports={};function s(){throw new Error("setTimeout has not been defined")}function o(){throw new Error("clearTimeout has not been defined")}function i(e){if(t===setTimeout)return setTimeout(e,0);if((t===s||!t)&&setTimeout)return t=setTimeout,setTimeout(e,0);try{return t(e,0)}catch(r){try{return t.call(null,e,0)}catch(r){return t.call(this,e,0)}}}!function(){try{t="function"==typeof setTimeout?setTimeout:s}catch(e){t=s}try{r="function"==typeof clearTimeout?clearTimeout:o}catch(e){r=o}}();var a,u=[],c=!1,f=-1;function l(){c&&a&&(c=!1,a.length?u=a.concat(u):f=-1,u.length&&h())}function h(){if(!c){var e=i(l);c=!0;for(var t=u.length;t;){for(a=u,u=[];++f<t;)a&&a[f].run();f=-1,t=u.length}a=null,c=!1,function(e){if(r===clearTimeout)return clearTimeout(e);if((r===o||!r)&&clearTimeout)return r=clearTimeout,clearTimeout(e);try{r(e)}catch(t){try{return r.call(null,e)}catch(t){return r.call(this,e)}}}(e)}}function p(e,t){this.fun=e,this.array=t}function d(){}n.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var r=1;r<arguments.length;r++)t[r-1]=arguments[r];u.push(new p(e,t)),1!==u.length||c||i(h)},p.prototype.run=function(){this.fun.apply(null,this.array)},n.title="browser",n.browser=!0,n.env={},n.argv=[],n.version="",n.versions={},n.on=d,n.addListener=d,n.once=d,n.off=d,n.removeListener=d,n.removeAllListeners=d,n.emit=d,n.prependListener=d,n.prependOnceListener=d,n.listeners=function(e){return[]},n.binding=function(e){throw new Error("process.binding is not supported")},n.cwd=function(){return"/"},n.chdir=function(e){throw new Error("process.chdir is not supported")},n.umask=function(){return 0}},593:function(e){"use strict";e.exports=JSON.parse('{"name":"axios","version":"0.21.4","description":"Promise based HTTP client for the browser and node.js","main":"index.js","scripts":{"test":"grunt test","start":"node ./sandbox/server.js","build":"NODE_ENV=production grunt build","preversion":"npm test","version":"npm run build && grunt version && git add -A dist && git add CHANGELOG.md bower.json package.json","postversion":"git push && git push --tags","examples":"node ./examples/server.js","coveralls":"cat coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","fix":"eslint --fix lib/**/*.js"},"repository":{"type":"git","url":"https://github.com/axios/axios.git"},"keywords":["xhr","http","ajax","promise","node"],"author":"Matt Zabriskie","license":"MIT","bugs":{"url":"https://github.com/axios/axios/issues"},"homepage":"https://axios-http.com","devDependencies":{"coveralls":"^3.0.0","es6-promise":"^4.2.4","grunt":"^1.3.0","grunt-banner":"^0.6.0","grunt-cli":"^1.2.0","grunt-contrib-clean":"^1.1.0","grunt-contrib-watch":"^1.0.0","grunt-eslint":"^23.0.0","grunt-karma":"^4.0.0","grunt-mocha-test":"^0.13.3","grunt-ts":"^6.0.0-beta.19","grunt-webpack":"^4.0.2","istanbul-instrumenter-loader":"^1.0.0","jasmine-core":"^2.4.1","karma":"^6.3.2","karma-chrome-launcher":"^3.1.0","karma-firefox-launcher":"^2.1.0","karma-jasmine":"^1.1.1","karma-jasmine-ajax":"^0.1.13","karma-safari-launcher":"^1.0.0","karma-sauce-launcher":"^4.3.6","karma-sinon":"^1.0.5","karma-sourcemap-loader":"^0.3.8","karma-webpack":"^4.0.2","load-grunt-tasks":"^3.5.2","minimist":"^1.2.0","mocha":"^8.2.1","sinon":"^4.5.0","terser-webpack-plugin":"^4.2.3","typescript":"^4.0.5","url-search-params":"^0.10.0","webpack":"^4.44.2","webpack-dev-server":"^3.11.0"},"browser":{"./lib/adapters/http.js":"./lib/adapters/xhr.js"},"jsdelivr":"dist/axios.min.js","unpkg":"dist/axios.min.js","typings":"./index.d.ts","dependencies":{"follow-redirects":"^1.14.0"},"bundlesize":[{"path":"./dist/axios.min.js","threshold":"5kB"}]}')}},r={};function n(e){var s=r[e];if(void 0!==s)return s.exports;var o=r[e]={exports:{}};return t[e](o,o.exports,n),o.exports}n.m=t,e=[],n.O=function(t,r,s,o){if(!r){var i=1/0;for(f=0;f<e.length;f++){r=e[f][0],s=e[f][1],o=e[f][2];for(var a=!0,u=0;u<r.length;u++)(!1&o||i>=o)&&Object.keys(n.O).every((function(e){return n.O[e](r[u])}))?r.splice(u--,1):(a=!1,o<i&&(i=o));if(a){e.splice(f--,1);var c=s();void 0!==c&&(t=c)}}return t}o=o||0;for(var f=e.length;f>0&&e[f-1][2]>o;f--)e[f]=e[f-1];e[f]=[r,s,o]},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,{a:t}),t},n.d=function(e,t){for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},function(){var e={794:0,505:0};n.O.j=function(t){return 0===e[t]};var t=function(t,r){var s,o,i=r[0],a=r[1],u=r[2],c=0;if(i.some((function(t){return 0!==e[t]}))){for(s in a)n.o(a,s)&&(n.m[s]=a[s]);if(u)var f=u(n)}for(t&&t(r);c<i.length;c++)o=i[c],n.o(e,o)&&e[o]&&e[o][0](),e[i[c]]=0;return n.O(f)},r=self.webpackChunkwebp_converter_for_media=self.webpackChunkwebp_converter_for_media||[];r.forEach(t.bind(null,0)),r.push=t.bind(null,r.push.bind(r))}(),n.O(void 0,[505],(function(){return n(442)}));var s=n.O(void 0,[505],(function(){return n(694)}));s=n.O(s)}();
|
assets/fonts/icons/icomoon.eot
CHANGED
Binary file
|
assets/fonts/icons/icomoon.svg
CHANGED
@@ -11,4 +11,8 @@
|
|
11 |
<glyph unicode="" glyph-name="heart" horiz-adv-x="1198" d="M0 612.196v13.566c0 163.494 118.118 302.896 279.273 329.794 104.552 17.776 215.185-17.074 291.435-93.325l28.068-28.068 25.963 28.068c78.355 76.25 186.884 110.867 293.54 93.325 161.155-26.898 279.273-166.301 279.273-329.794v-13.566c0-97.067-40.23-189.924-111.335-256.117l-422.651-394.584c-17.542-16.373-40.698-25.495-64.789-25.495s-47.247 9.122-64.789 25.495l-422.651 394.584c-71.105 66.193-111.335 159.050-111.335 256.117v0z" />
|
12 |
<glyph unicode="" glyph-name="matt-plugins" horiz-adv-x="2423" d="M805.681 337.927c-0.913-23.293-20.096-41.563-43.39-40.649-22.38 0.913-40.193 18.726-40.649 40.649v225.627c0 22.837-18.726 41.563-41.563 41.563s-41.563-18.726-41.563-41.563v0-279.979c0-69.424-56.178-126.059-126.059-126.059s-126.059 56.178-126.059 126.059c0 0 0 0 0 0v279.979c0 22.837-18.726 41.563-41.563 41.563s-41.563-18.726-41.563-41.563v0-225.627c-0.913-23.293-20.096-41.563-43.39-40.649-22.38 0.913-40.193 18.726-40.649 40.649v225.627c1.37 69.424 58.919 125.145 128.343 123.775 66.683-1.37 121.492-56.178 122.862-123.775v-279.979c0-22.837 18.726-41.563 41.563-41.563s41.563 18.726 41.563 41.563v279.979c1.37 69.424 58.919 125.145 128.343 123.775 67.597-1.37 122.405-55.722 123.775-123.775v-225.627zM512 960c-282.719 0-512-229.281-512-512s229.281-512 512-512 512 229.281 512 512-229.281 512-512 512v0zM1957.566 498.241c-8.221 0-16.442-2.74-22.38-8.678-12.332-12.789-12.332-32.428 0-45.217 12.789-11.418 31.971-11.418 44.76 0 11.875 12.789 11.875 32.428 0 45.217-5.938 5.938-14.159 9.135-22.38 8.678zM1272.464 397.302c-13.245 7.764-27.861 11.418-42.933 11.418-17.356 0-30.601-2.74-40.193-8.678-8.221-5.024-15.529-11.875-20.553-20.096h-6.851v23.293h-47.957v-269.93h48.871v99.568h6.851c3.197-5.024 6.851-9.135 11.418-13.245 5.481-4.567 11.875-8.221 19.183-10.505 9.591-2.74 19.183-4.111 29.231-4.111 15.072 0 30.145 3.654 42.933 11.418 13.702 7.764 24.664 19.64 31.971 33.342 8.221 16.442 12.332 35.169 11.875 53.438v6.394c0.457 18.726-3.654 36.996-11.875 53.438-7.308 14.616-18.269 26.034-31.971 34.255zM1267.44 305.042c0-18.726-5.024-32.885-15.072-42.476-21.467-19.64-53.895-19.64-75.361 0-10.048 9.591-15.072 23.75-15.072 42.476v4.111c0 18.726 5.024 32.885 15.072 42.476 21.467 19.183 53.895 19.183 75.361 0 10.048-9.591 15.072-23.75 15.072-42.476v-4.111zM1582.587 305.499c0-17.813-4.111-31.515-12.332-41.563-8.678-10.048-21.467-15.529-34.712-15.072-13.245 0-23.293 3.654-30.601 10.962s-10.505 18.269-10.505 32.428v110.987h-48.871v-114.64c-0.457-14.616 2.74-28.774 9.135-42.020 5.938-11.875 15.072-21.467 26.034-28.318 11.875-6.851 25.577-10.505 39.279-10.505 17.356 0 30.145 3.197 38.822 9.135 7.308 5.024 13.245 11.418 17.356 19.183h6.851v-25.12h48.414v192.742h-48.871v-98.198zM1831.051 379.946h-6.851c-5.024 7.764-11.875 14.159-19.64 19.183-9.135 5.938-22.38 9.135-39.736 9.135-15.529 0-30.145-3.654-43.847-11.418s-24.664-19.183-31.971-32.885c-8.221-15.986-12.332-33.798-11.875-51.611v-6.394c-0.457-17.813 3.654-35.625 11.875-51.611 7.308-13.702 18.269-25.12 31.971-32.885 22.38-12.332 48.871-14.616 73.078-7.308 6.851 2.284 13.245 5.938 18.726 10.505 4.111 3.654 7.764 7.764 10.962 12.789h6.851v-50.241c0-7.764-3.654-11.875-10.962-11.875h-111.9v-42.476h128.343c11.418-0.457 22.837 3.654 31.058 11.875 8.221 8.678 12.332 20.096 11.418 31.515v226.997h-47.957v-23.293zM1831.051 307.326c0-17.356-5.024-30.601-15.072-40.193-21.467-19.183-53.895-19.183-75.361 0-10.048 9.591-15.072 22.837-15.072 40.193v4.111c0 17.356 5.024 31.058 15.072 40.649 21.467 18.726 53.895 18.726 75.361 0 10.048-9.591 15.072-22.837 15.072-40.649v-4.111zM1933.36 403.24h48.871v-192.285h-48.871v192.285zM2187.304 395.932c-11.875 6.851-25.577 10.505-39.279 10.505-17.356 0-30.145-3.197-38.822-9.135-7.308-5.024-13.245-11.418-17.356-19.183h-6.851v25.12h-47.957v-192.285h48.871v97.741c0 17.813 4.111 31.971 12.332 41.563 8.678 10.048 21.467 15.529 34.712 15.072 11.418 0.913 22.38-3.197 30.601-10.962 7.308-7.308 10.505-18.269 10.505-32.428v-110.987h48.871v114.64c0.457 14.616-2.74 29.231-9.135 42.020-6.394 11.875-15.529 21.467-26.491 28.318zM2412.931 300.475c-7.764 8.221-17.356 14.616-27.861 18.269-12.789 4.567-26.034 7.764-39.279 10.505l-10.505 1.827c-7.308 0.913-14.159 3.197-21.010 6.851-5.024 2.74-8.221 8.221-7.764 13.702 0 5.481 2.74 10.505 7.308 13.245 6.394 3.654 13.702 5.481 21.467 5.024 8.221 0.457 16.442-1.827 23.293-6.394 6.851-5.024 11.418-12.332 12.789-21.010l45.217 14.159c-4.567 15.529-14.159 28.774-27.861 37.452-15.986 10.048-34.712 15.072-53.438 14.616-22.837 0-41.106-5.024-54.808-15.529-14.159-10.048-21.010-24.664-21.010-43.847-0.457-11.418 3.197-22.38 10.048-31.058 7.308-8.221 16.442-15.072 26.947-18.726 11.875-4.567 24.207-8.221 36.996-10.505l10.962-1.827c8.678-1.37 16.899-3.654 24.664-7.764 5.024-2.74 7.764-8.221 7.764-13.702 0-5.938-3.197-11.875-8.221-15.072-5.481-4.111-13.702-5.938-25.12-5.938-6.851 0-14.159 0.913-20.553 3.197s-11.875 5.938-15.986 10.962c-4.567 6.394-7.764 13.702-9.135 21.467l-45.217-11.875c2.74-19.183 13.245-36.082 29.231-46.587 15.986-10.962 36.539-16.442 61.659-16.442 24.664 0 44.303 5.481 58.919 16.442s21.923 26.491 21.467 46.587c0 11.418-3.654 22.837-10.962 31.971zM1360.614 636.175c-10.048 5.024-21.010 7.764-32.428 7.764-14.616 0-26.034-2.74-34.255-8.221-7.764-5.024-14.159-12.332-18.726-20.553h-6.851c-4.567 8.678-10.962 15.529-19.183 20.553-10.048 5.938-21.467 8.678-32.885 7.764-10.505 0.457-21.467-1.827-30.601-7.308-6.851-4.111-12.789-10.048-16.442-16.899h-6.851v21.010h-47.957v-192.285h48.871v113.727c0 13.245 3.197 23.293 9.135 30.601 6.394 7.308 15.986 11.418 25.577 10.505 8.221 0.457 16.442-2.284 22.837-8.221 5.938-6.394 8.678-15.072 8.221-23.75v-122.862h48.871v113.727c0 13.245 3.197 23.293 9.135 30.601 6.394 7.308 15.986 11.418 25.577 10.505 8.221 0.457 16.442-2.284 22.837-8.221 5.938-6.394 8.678-15.072 8.221-23.75v-359.45h48.871v363.104c0.457 13.245-2.74 26.491-8.678 38.366-5.481 10.048-13.702 17.813-23.293 23.293zM1606.337 500.068v71.707c0 24.207-7.308 42.476-21.923 55.265s-34.712 19.183-60.289 19.183c-14.616 0.457-28.774-2.284-42.020-7.308-10.505-4.567-20.096-11.418-27.404-19.64-6.851-7.764-11.875-16.899-15.072-26.947l45.217-15.072c1.37 8.221 5.481 15.529 11.418 21.467 5.938 5.481 15.072 8.221 27.404 8.221s21.467-2.74 26.947-8.678c5.938-5.938 8.678-14.159 8.678-22.38v-10.962h-52.981c-13.245 0-26.491-2.284-38.822-6.851-10.505-4.111-19.64-10.962-26.491-20.096-6.394-9.591-10.048-21.467-9.591-33.342-0.457-11.875 2.74-23.75 9.591-33.342 6.394-9.135 15.529-16.442 25.577-21.010 11.875-5.024 24.207-7.308 36.996-7.308 10.962-0.457 21.923 1.37 31.971 5.938 6.851 3.197 12.789 7.764 16.899 13.245 2.74 3.654 5.024 7.764 6.851 12.332h7.308v-0.457c0-7.308 3.197-14.159 9.135-18.726 6.851-5.024 15.072-7.308 23.75-6.851h32.428v40.193h-15.529c-6.394-0.457-10.048 3.654-10.048 11.418zM1559.293 524.275c0.457-11.418-4.111-22.837-12.789-30.601-9.591-7.764-21.467-11.875-33.798-11.418-8.221-0.457-16.899 1.827-23.75 6.394-5.024 4.111-8.221 10.505-7.764 16.899-0.457 6.394 2.74 12.332 7.764 16.442 6.394 4.111 13.702 6.394 21.467 5.938h49.327l-0.457-3.654zM1856.171 700.118h-48.871v-59.832h-77.645v59.832h-48.871v-59.832h-47.957v-40.193h47.957v-108.703c-0.457-11.875 3.654-23.293 11.875-31.515s19.183-12.332 31.058-11.875h54.351v40.193h-37.452c-7.308 0-10.962 4.111-10.962 11.875v100.025h77.645v-108.703c-0.457-11.875 3.654-23.293 11.875-31.515s19.183-12.332 31.058-11.875h54.351v40.193h-36.996c-7.308 0-10.962 3.654-10.962 11.875v100.025h52.525v40.193h-52.981v59.832z" />
|
13 |
<glyph unicode="" glyph-name="stars" horiz-adv-x="6123" d="M713.633 659.134l287.142-42.227c24.28-3.167 43.282-20.058 51.728-43.282 7.39-23.225 1.056-48.561-15.835-65.452l-207.967-203.744 49.616-293.476c4.223-24.28-5.278-48.561-25.336-62.285s-46.449-15.835-67.563-4.223l-257.584 136.181-256.528-137.237c-21.113-11.612-47.505-9.501-67.563 4.223s-29.559 39.060-25.336 62.285l49.616 293.476-209.023 204.8c-16.891 16.891-23.225 42.227-15.835 65.452s27.447 40.115 51.728 43.282l287.142 42.227 128.792 264.973c10.557 22.169 32.726 35.893 57.006 35.893s46.449-13.724 58.062-35.893l127.736-264.973zM1980.437 659.134l287.142-42.227c24.28-3.167 43.282-20.058 51.728-43.282 7.39-23.225 1.056-48.561-15.835-65.452l-207.967-204.8 49.616-293.476c4.223-24.28-5.278-48.561-25.336-62.285s-46.449-15.835-67.563-4.223l-256.528 137.237-256.528-137.237c-21.113-11.612-47.505-9.501-67.563 4.223s-29.559 39.060-25.336 62.285l49.616 293.476-207.967 204.8c-16.891 16.891-23.225 42.227-15.835 65.452s27.447 40.115 51.728 43.282l287.142 42.227 128.792 264.973c10.557 22.169 32.726 35.893 57.006 35.893s46.449-13.724 58.062-35.893l125.625-264.973zM3247.241 659.134l287.142-42.227c24.28-3.167 43.282-20.058 51.728-43.282 7.39-23.225 1.056-48.561-15.835-65.452l-207.967-204.8 49.616-293.476c4.223-24.28-5.278-48.561-25.336-62.285s-46.449-15.835-67.563-4.223l-256.528 137.237-256.528-137.237c-21.113-11.612-47.505-9.501-67.563 4.223s-29.559 39.060-25.336 62.285l49.616 293.476-207.967 204.8c-16.891 16.891-23.225 42.227-15.835 65.452s27.447 40.115 51.728 43.282l287.142 42.227 128.792 264.973c10.557 22.169 32.726 35.893 57.006 35.893s46.449-13.724 58.062-35.893l125.625-264.973zM4514.045 659.134l287.142-42.227c24.28-3.167 43.282-20.058 51.728-43.282 7.39-23.225 1.056-48.561-15.835-65.452l-207.967-204.8 49.616-293.476c4.223-24.28-5.278-48.561-25.336-62.285s-46.449-15.835-67.563-4.223l-256.528 137.237-256.528-137.237c-21.113-11.612-47.505-9.501-67.563 4.223s-29.559 39.060-25.336 62.285l49.616 293.476-207.967 204.8c-16.891 16.891-23.225 42.227-15.835 65.452s27.447 40.115 51.728 43.282l287.142 42.227 128.792 264.973c10.557 22.169 32.726 35.893 57.006 35.893s46.449-13.724 58.062-35.893l125.625-264.973zM5780.849 659.134l287.142-42.227c24.28-3.167 43.282-20.058 51.728-43.282 7.39-23.225 1.056-48.561-15.835-65.452l-207.967-204.8 49.616-293.476c4.223-24.28-5.278-48.561-25.336-62.285s-46.449-15.835-67.563-4.223l-256.528 137.237-256.528-137.237c-21.113-11.612-47.505-9.501-67.563 4.223s-29.559 39.060-25.336 62.285l49.616 293.476-207.967 204.8c-16.891 16.891-23.225 42.227-15.835 65.452s27.447 40.115 51.728 43.282l287.142 42.227 128.792 264.973c10.557 22.169 32.726 35.893 57.006 35.893s46.449-13.724 58.062-35.893l125.625-264.973z" />
|
|
|
|
|
|
|
|
|
14 |
</font></defs></svg>
|
11 |
<glyph unicode="" glyph-name="heart" horiz-adv-x="1198" d="M0 612.196v13.566c0 163.494 118.118 302.896 279.273 329.794 104.552 17.776 215.185-17.074 291.435-93.325l28.068-28.068 25.963 28.068c78.355 76.25 186.884 110.867 293.54 93.325 161.155-26.898 279.273-166.301 279.273-329.794v-13.566c0-97.067-40.23-189.924-111.335-256.117l-422.651-394.584c-17.542-16.373-40.698-25.495-64.789-25.495s-47.247 9.122-64.789 25.495l-422.651 394.584c-71.105 66.193-111.335 159.050-111.335 256.117v0z" />
|
12 |
<glyph unicode="" glyph-name="matt-plugins" horiz-adv-x="2423" d="M805.681 337.927c-0.913-23.293-20.096-41.563-43.39-40.649-22.38 0.913-40.193 18.726-40.649 40.649v225.627c0 22.837-18.726 41.563-41.563 41.563s-41.563-18.726-41.563-41.563v0-279.979c0-69.424-56.178-126.059-126.059-126.059s-126.059 56.178-126.059 126.059c0 0 0 0 0 0v279.979c0 22.837-18.726 41.563-41.563 41.563s-41.563-18.726-41.563-41.563v0-225.627c-0.913-23.293-20.096-41.563-43.39-40.649-22.38 0.913-40.193 18.726-40.649 40.649v225.627c1.37 69.424 58.919 125.145 128.343 123.775 66.683-1.37 121.492-56.178 122.862-123.775v-279.979c0-22.837 18.726-41.563 41.563-41.563s41.563 18.726 41.563 41.563v279.979c1.37 69.424 58.919 125.145 128.343 123.775 67.597-1.37 122.405-55.722 123.775-123.775v-225.627zM512 960c-282.719 0-512-229.281-512-512s229.281-512 512-512 512 229.281 512 512-229.281 512-512 512v0zM1957.566 498.241c-8.221 0-16.442-2.74-22.38-8.678-12.332-12.789-12.332-32.428 0-45.217 12.789-11.418 31.971-11.418 44.76 0 11.875 12.789 11.875 32.428 0 45.217-5.938 5.938-14.159 9.135-22.38 8.678zM1272.464 397.302c-13.245 7.764-27.861 11.418-42.933 11.418-17.356 0-30.601-2.74-40.193-8.678-8.221-5.024-15.529-11.875-20.553-20.096h-6.851v23.293h-47.957v-269.93h48.871v99.568h6.851c3.197-5.024 6.851-9.135 11.418-13.245 5.481-4.567 11.875-8.221 19.183-10.505 9.591-2.74 19.183-4.111 29.231-4.111 15.072 0 30.145 3.654 42.933 11.418 13.702 7.764 24.664 19.64 31.971 33.342 8.221 16.442 12.332 35.169 11.875 53.438v6.394c0.457 18.726-3.654 36.996-11.875 53.438-7.308 14.616-18.269 26.034-31.971 34.255zM1267.44 305.042c0-18.726-5.024-32.885-15.072-42.476-21.467-19.64-53.895-19.64-75.361 0-10.048 9.591-15.072 23.75-15.072 42.476v4.111c0 18.726 5.024 32.885 15.072 42.476 21.467 19.183 53.895 19.183 75.361 0 10.048-9.591 15.072-23.75 15.072-42.476v-4.111zM1582.587 305.499c0-17.813-4.111-31.515-12.332-41.563-8.678-10.048-21.467-15.529-34.712-15.072-13.245 0-23.293 3.654-30.601 10.962s-10.505 18.269-10.505 32.428v110.987h-48.871v-114.64c-0.457-14.616 2.74-28.774 9.135-42.020 5.938-11.875 15.072-21.467 26.034-28.318 11.875-6.851 25.577-10.505 39.279-10.505 17.356 0 30.145 3.197 38.822 9.135 7.308 5.024 13.245 11.418 17.356 19.183h6.851v-25.12h48.414v192.742h-48.871v-98.198zM1831.051 379.946h-6.851c-5.024 7.764-11.875 14.159-19.64 19.183-9.135 5.938-22.38 9.135-39.736 9.135-15.529 0-30.145-3.654-43.847-11.418s-24.664-19.183-31.971-32.885c-8.221-15.986-12.332-33.798-11.875-51.611v-6.394c-0.457-17.813 3.654-35.625 11.875-51.611 7.308-13.702 18.269-25.12 31.971-32.885 22.38-12.332 48.871-14.616 73.078-7.308 6.851 2.284 13.245 5.938 18.726 10.505 4.111 3.654 7.764 7.764 10.962 12.789h6.851v-50.241c0-7.764-3.654-11.875-10.962-11.875h-111.9v-42.476h128.343c11.418-0.457 22.837 3.654 31.058 11.875 8.221 8.678 12.332 20.096 11.418 31.515v226.997h-47.957v-23.293zM1831.051 307.326c0-17.356-5.024-30.601-15.072-40.193-21.467-19.183-53.895-19.183-75.361 0-10.048 9.591-15.072 22.837-15.072 40.193v4.111c0 17.356 5.024 31.058 15.072 40.649 21.467 18.726 53.895 18.726 75.361 0 10.048-9.591 15.072-22.837 15.072-40.649v-4.111zM1933.36 403.24h48.871v-192.285h-48.871v192.285zM2187.304 395.932c-11.875 6.851-25.577 10.505-39.279 10.505-17.356 0-30.145-3.197-38.822-9.135-7.308-5.024-13.245-11.418-17.356-19.183h-6.851v25.12h-47.957v-192.285h48.871v97.741c0 17.813 4.111 31.971 12.332 41.563 8.678 10.048 21.467 15.529 34.712 15.072 11.418 0.913 22.38-3.197 30.601-10.962 7.308-7.308 10.505-18.269 10.505-32.428v-110.987h48.871v114.64c0.457 14.616-2.74 29.231-9.135 42.020-6.394 11.875-15.529 21.467-26.491 28.318zM2412.931 300.475c-7.764 8.221-17.356 14.616-27.861 18.269-12.789 4.567-26.034 7.764-39.279 10.505l-10.505 1.827c-7.308 0.913-14.159 3.197-21.010 6.851-5.024 2.74-8.221 8.221-7.764 13.702 0 5.481 2.74 10.505 7.308 13.245 6.394 3.654 13.702 5.481 21.467 5.024 8.221 0.457 16.442-1.827 23.293-6.394 6.851-5.024 11.418-12.332 12.789-21.010l45.217 14.159c-4.567 15.529-14.159 28.774-27.861 37.452-15.986 10.048-34.712 15.072-53.438 14.616-22.837 0-41.106-5.024-54.808-15.529-14.159-10.048-21.010-24.664-21.010-43.847-0.457-11.418 3.197-22.38 10.048-31.058 7.308-8.221 16.442-15.072 26.947-18.726 11.875-4.567 24.207-8.221 36.996-10.505l10.962-1.827c8.678-1.37 16.899-3.654 24.664-7.764 5.024-2.74 7.764-8.221 7.764-13.702 0-5.938-3.197-11.875-8.221-15.072-5.481-4.111-13.702-5.938-25.12-5.938-6.851 0-14.159 0.913-20.553 3.197s-11.875 5.938-15.986 10.962c-4.567 6.394-7.764 13.702-9.135 21.467l-45.217-11.875c2.74-19.183 13.245-36.082 29.231-46.587 15.986-10.962 36.539-16.442 61.659-16.442 24.664 0 44.303 5.481 58.919 16.442s21.923 26.491 21.467 46.587c0 11.418-3.654 22.837-10.962 31.971zM1360.614 636.175c-10.048 5.024-21.010 7.764-32.428 7.764-14.616 0-26.034-2.74-34.255-8.221-7.764-5.024-14.159-12.332-18.726-20.553h-6.851c-4.567 8.678-10.962 15.529-19.183 20.553-10.048 5.938-21.467 8.678-32.885 7.764-10.505 0.457-21.467-1.827-30.601-7.308-6.851-4.111-12.789-10.048-16.442-16.899h-6.851v21.010h-47.957v-192.285h48.871v113.727c0 13.245 3.197 23.293 9.135 30.601 6.394 7.308 15.986 11.418 25.577 10.505 8.221 0.457 16.442-2.284 22.837-8.221 5.938-6.394 8.678-15.072 8.221-23.75v-122.862h48.871v113.727c0 13.245 3.197 23.293 9.135 30.601 6.394 7.308 15.986 11.418 25.577 10.505 8.221 0.457 16.442-2.284 22.837-8.221 5.938-6.394 8.678-15.072 8.221-23.75v-359.45h48.871v363.104c0.457 13.245-2.74 26.491-8.678 38.366-5.481 10.048-13.702 17.813-23.293 23.293zM1606.337 500.068v71.707c0 24.207-7.308 42.476-21.923 55.265s-34.712 19.183-60.289 19.183c-14.616 0.457-28.774-2.284-42.020-7.308-10.505-4.567-20.096-11.418-27.404-19.64-6.851-7.764-11.875-16.899-15.072-26.947l45.217-15.072c1.37 8.221 5.481 15.529 11.418 21.467 5.938 5.481 15.072 8.221 27.404 8.221s21.467-2.74 26.947-8.678c5.938-5.938 8.678-14.159 8.678-22.38v-10.962h-52.981c-13.245 0-26.491-2.284-38.822-6.851-10.505-4.111-19.64-10.962-26.491-20.096-6.394-9.591-10.048-21.467-9.591-33.342-0.457-11.875 2.74-23.75 9.591-33.342 6.394-9.135 15.529-16.442 25.577-21.010 11.875-5.024 24.207-7.308 36.996-7.308 10.962-0.457 21.923 1.37 31.971 5.938 6.851 3.197 12.789 7.764 16.899 13.245 2.74 3.654 5.024 7.764 6.851 12.332h7.308v-0.457c0-7.308 3.197-14.159 9.135-18.726 6.851-5.024 15.072-7.308 23.75-6.851h32.428v40.193h-15.529c-6.394-0.457-10.048 3.654-10.048 11.418zM1559.293 524.275c0.457-11.418-4.111-22.837-12.789-30.601-9.591-7.764-21.467-11.875-33.798-11.418-8.221-0.457-16.899 1.827-23.75 6.394-5.024 4.111-8.221 10.505-7.764 16.899-0.457 6.394 2.74 12.332 7.764 16.442 6.394 4.111 13.702 6.394 21.467 5.938h49.327l-0.457-3.654zM1856.171 700.118h-48.871v-59.832h-77.645v59.832h-48.871v-59.832h-47.957v-40.193h47.957v-108.703c-0.457-11.875 3.654-23.293 11.875-31.515s19.183-12.332 31.058-11.875h54.351v40.193h-37.452c-7.308 0-10.962 4.111-10.962 11.875v100.025h77.645v-108.703c-0.457-11.875 3.654-23.293 11.875-31.515s19.183-12.332 31.058-11.875h54.351v40.193h-36.996c-7.308 0-10.962 3.654-10.962 11.875v100.025h52.525v40.193h-52.981v59.832z" />
|
13 |
<glyph unicode="" glyph-name="stars" horiz-adv-x="6123" d="M713.633 659.134l287.142-42.227c24.28-3.167 43.282-20.058 51.728-43.282 7.39-23.225 1.056-48.561-15.835-65.452l-207.967-203.744 49.616-293.476c4.223-24.28-5.278-48.561-25.336-62.285s-46.449-15.835-67.563-4.223l-257.584 136.181-256.528-137.237c-21.113-11.612-47.505-9.501-67.563 4.223s-29.559 39.060-25.336 62.285l49.616 293.476-209.023 204.8c-16.891 16.891-23.225 42.227-15.835 65.452s27.447 40.115 51.728 43.282l287.142 42.227 128.792 264.973c10.557 22.169 32.726 35.893 57.006 35.893s46.449-13.724 58.062-35.893l127.736-264.973zM1980.437 659.134l287.142-42.227c24.28-3.167 43.282-20.058 51.728-43.282 7.39-23.225 1.056-48.561-15.835-65.452l-207.967-204.8 49.616-293.476c4.223-24.28-5.278-48.561-25.336-62.285s-46.449-15.835-67.563-4.223l-256.528 137.237-256.528-137.237c-21.113-11.612-47.505-9.501-67.563 4.223s-29.559 39.060-25.336 62.285l49.616 293.476-207.967 204.8c-16.891 16.891-23.225 42.227-15.835 65.452s27.447 40.115 51.728 43.282l287.142 42.227 128.792 264.973c10.557 22.169 32.726 35.893 57.006 35.893s46.449-13.724 58.062-35.893l125.625-264.973zM3247.241 659.134l287.142-42.227c24.28-3.167 43.282-20.058 51.728-43.282 7.39-23.225 1.056-48.561-15.835-65.452l-207.967-204.8 49.616-293.476c4.223-24.28-5.278-48.561-25.336-62.285s-46.449-15.835-67.563-4.223l-256.528 137.237-256.528-137.237c-21.113-11.612-47.505-9.501-67.563 4.223s-29.559 39.060-25.336 62.285l49.616 293.476-207.967 204.8c-16.891 16.891-23.225 42.227-15.835 65.452s27.447 40.115 51.728 43.282l287.142 42.227 128.792 264.973c10.557 22.169 32.726 35.893 57.006 35.893s46.449-13.724 58.062-35.893l125.625-264.973zM4514.045 659.134l287.142-42.227c24.28-3.167 43.282-20.058 51.728-43.282 7.39-23.225 1.056-48.561-15.835-65.452l-207.967-204.8 49.616-293.476c4.223-24.28-5.278-48.561-25.336-62.285s-46.449-15.835-67.563-4.223l-256.528 137.237-256.528-137.237c-21.113-11.612-47.505-9.501-67.563 4.223s-29.559 39.060-25.336 62.285l49.616 293.476-207.967 204.8c-16.891 16.891-23.225 42.227-15.835 65.452s27.447 40.115 51.728 43.282l287.142 42.227 128.792 264.973c10.557 22.169 32.726 35.893 57.006 35.893s46.449-13.724 58.062-35.893l125.625-264.973zM5780.849 659.134l287.142-42.227c24.28-3.167 43.282-20.058 51.728-43.282 7.39-23.225 1.056-48.561-15.835-65.452l-207.967-204.8 49.616-293.476c4.223-24.28-5.278-48.561-25.336-62.285s-46.449-15.835-67.563-4.223l-256.528 137.237-256.528-137.237c-21.113-11.612-47.505-9.501-67.563 4.223s-29.559 39.060-25.336 62.285l49.616 293.476-207.967 204.8c-16.891 16.891-23.225 42.227-15.835 65.452s27.447 40.115 51.728 43.282l287.142 42.227 128.792 264.973c10.557 22.169 32.726 35.893 57.006 35.893s46.449-13.724 58.062-35.893l125.625-264.973z" />
|
14 |
+
<glyph unicode="" glyph-name="minus" d="M1024 369.231h-1024v157.538h1024v-157.538z" />
|
15 |
+
<glyph unicode="" glyph-name="plus" d="M590.769 881.231v78.769h-157.538v-433.231h-433.231v-157.538h433.231v-433.231h157.538v433.231h433.231v157.538h-433.231v354.462z" />
|
16 |
+
<glyph unicode="" glyph-name="folder" d="M128 0h768c70.6 0 128 57.4 128 128v512c0 70.6-57.4 128-128 128h-299c-34 0-66.6 13.4-90.6 37.4l-53 53.2c-24 24-56.6 37.4-90.6 37.4h-234.8c-70.6 0-128-57.4-128-128v-640c0-70.6 57.4-128 128-128z" />
|
17 |
+
<glyph unicode="" glyph-name="image" d="M0 768c0 70.6 57.4 128 128 128h768c70.6 0 128-57.4 128-128v-640c0-70.6-57.4-128-128-128h-768c-70.6 0-128 57.4-128 128v640zM647.6 555c-9 13.2-23.8 21-39.6 21s-30.8-7.8-39.6-21l-174-255.2-53 66.2c-9.2 11.4-23 18-37.4 18s-28.4-6.6-37.4-18l-128-160c-11.6-14.4-13.8-34.2-5.8-50.8s24.8-27.2 43.2-27.2h672c17.8 0 34.2 9.8 42.4 25.6s7.2 34.8-2.8 49.4l-240 352zM224 576c53 0 96 43 96 96s-43 96-96 96-96-43-96-96 43-96 96-96z" />
|
18 |
</font></defs></svg>
|
assets/fonts/icons/icomoon.ttf
CHANGED
Binary file
|
assets/fonts/icons/icomoon.woff
CHANGED
Binary file
|
changelog.txt
CHANGED
@@ -1,5 +1,12 @@
|
|
1 |
== Changelog ==
|
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3 |
= 5.2.4 (2022-09-27) =
|
4 |
* `[Changed]` Messages displayed during bulk optimization of images
|
5 |
* `[Added]` Debug information about registered image sub-sizes
|
1 |
== Changelog ==
|
2 |
|
3 |
+
= 5.3.0 (2022-10-11) =
|
4 |
+
* `[Removed]` Action `webpc_convert_dir`
|
5 |
+
* `[Removed]` Filter `webpc_dir_files`
|
6 |
+
* `[Fixed]` Support for WordPress older than version 5.3
|
7 |
+
* `[Added]` List of files for optimization in tree form
|
8 |
+
* `[Added]` Handling unknown errors while converting with Imagick method
|
9 |
+
|
10 |
= 5.2.4 (2022-09-27) =
|
11 |
* `[Changed]` Messages displayed during bulk optimization of images
|
12 |
* `[Added]` Debug information about registered image sub-sizes
|
readme.txt
CHANGED
@@ -272,15 +272,15 @@ The plugin supports WP-CLI, which enables faster image conversion from the serve
|
|
272 |
|
273 |
Checking how many maximum images for conversion are on website:
|
274 |
|
275 |
-
`wp
|
276 |
|
277 |
Converting all images:
|
278 |
|
279 |
-
`wp
|
280 |
|
281 |
Converting all images (with "Force convert all images again" option):
|
282 |
|
283 |
-
`wp
|
284 |
|
285 |
= Does plugin support CDN? =
|
286 |
|
@@ -342,45 +342,12 @@ In case of problems, please contact us in [the support forum](https://url.mattpl
|
|
342 |
|
343 |
== Changelog ==
|
344 |
|
345 |
-
= 5.
|
346 |
-
* `[
|
347 |
-
* `[
|
348 |
-
|
349 |
-
|
350 |
-
* `[Added]`
|
351 |
-
|
352 |
-
= 5.2.2 (2022-09-15) =
|
353 |
-
* `[Fixed]` Closing of admin notice
|
354 |
-
|
355 |
-
= 5.2.1 (2022-09-14) =
|
356 |
-
* `[Fixed]` Deleting converted files during plugin uninstallation
|
357 |
-
|
358 |
-
= 5.2.0 (2022-09-10) =
|
359 |
-
* `[Fixed]` Re-conversion of images modified after previous conversion
|
360 |
-
* `[Added]` Optimization statistics in Media Upload Popup
|
361 |
-
* `[Added]` Filter `webpc_source_directories` to add support for custom directories
|
362 |
-
|
363 |
-
= 5.1.0 (2022-08-28) =
|
364 |
-
* `[Fixed]` Exclusion of converted files from backup generated by UpdraftPlus plugin
|
365 |
-
* `[Added]` Optimization statistics in Media Library
|
366 |
-
|
367 |
-
= 5.0.1 (2022-08-26) =
|
368 |
-
* `[Removed]` Filter `webpc_uploads_prefix`
|
369 |
-
* `[Fixed]` Calculating number of images to convert in WP-CLI
|
370 |
-
* `[Fixed]` Converting files that contain plus sign in filename
|
371 |
-
* `[Changed]` Notification asking to clear cache for LiteSpeed
|
372 |
-
* `[Added]` Exclusion of converted files from backup generated by All-in-One WP Migration plugin
|
373 |
-
* `[Added]` Exclusion of converted files from backup generated by UpdraftPlus plugin
|
374 |
-
* `[Added]` Exclusion of converted files from backup generated by BackWPup plugin
|
375 |
-
|
376 |
-
= 5.0.0 (2022-08-20) =
|
377 |
-
* `[Changed]` Information about plugin operation and technical support on plugin settings page
|
378 |
-
* `[Changed]` Labels of options in plugin settings
|
379 |
-
* `[Changed]` Option field for configuration of quality level
|
380 |
-
* `[Changed]` Widget for conversion process
|
381 |
-
* `[Added]` Filter `webpc_htaccess_cache_control_private` to disable Cache-Control as private
|
382 |
-
* `[Added]` Statistics on number of converted images
|
383 |
-
* `[Added]` Tabs for plugin settings
|
384 |
|
385 |
See [changelog.txt](https://url.mattplugins.com/converter-readme-changelog) for previous versions.
|
386 |
|
272 |
|
273 |
Checking how many maximum images for conversion are on website:
|
274 |
|
275 |
+
`wp converter-for-media calculate`
|
276 |
|
277 |
Converting all images:
|
278 |
|
279 |
+
`wp converter-for-media regenerate`
|
280 |
|
281 |
Converting all images (with "Force convert all images again" option):
|
282 |
|
283 |
+
`wp converter-for-media regenerate -force`
|
284 |
|
285 |
= Does plugin support CDN? =
|
286 |
|
342 |
|
343 |
== Changelog ==
|
344 |
|
345 |
+
= 5.3.0 (2022-10-11) =
|
346 |
+
* `[Removed]` Action `webpc_convert_dir`
|
347 |
+
* `[Removed]` Filter `webpc_dir_files`
|
348 |
+
* `[Fixed]` Support for WordPress older than version 5.3
|
349 |
+
* `[Added]` List of files for optimization in tree form
|
350 |
+
* `[Added]` Handling unknown errors while converting with Imagick method
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
351 |
|
352 |
See [changelog.txt](https://url.mattplugins.com/converter-readme-changelog) for previous versions.
|
353 |
|
src/Action/ConvertDir.php
DELETED
@@ -1,32 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
namespace WebpConverter\Action;
|
4 |
-
|
5 |
-
use WebpConverter\HookableInterface;
|
6 |
-
|
7 |
-
/**
|
8 |
-
* Initializes conversion of all image sizes in directory.
|
9 |
-
*/
|
10 |
-
class ConvertDir implements HookableInterface {
|
11 |
-
|
12 |
-
/**
|
13 |
-
* {@inheritdoc}
|
14 |
-
*/
|
15 |
-
public function init_hooks() {
|
16 |
-
add_action( 'webpc_convert_dir', [ $this, 'convert_files_by_directory' ], 10, 2 );
|
17 |
-
}
|
18 |
-
|
19 |
-
/**
|
20 |
-
* Converts all images in directory to output formats.
|
21 |
-
*
|
22 |
-
* @param string $dir_path Server path of directory.
|
23 |
-
* @param bool $skip_converted Skip converted images?
|
24 |
-
*
|
25 |
-
* @return void
|
26 |
-
* @internal
|
27 |
-
*/
|
28 |
-
public function convert_files_by_directory( string $dir_path, bool $skip_converted = true ) {
|
29 |
-
$paths = apply_filters( 'webpc_dir_files', [], $dir_path, $skip_converted );
|
30 |
-
do_action( 'webpc_convert_paths', $paths );
|
31 |
-
}
|
32 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
src/Conversion/{DirectoryFiles.php → DirectoryFilesFinder.php}
RENAMED
@@ -2,7 +2,7 @@
|
|
2 |
|
3 |
namespace WebpConverter\Conversion;
|
4 |
|
5 |
-
use WebpConverter\
|
6 |
use WebpConverter\PluginData;
|
7 |
use WebpConverter\Service\ServerConfigurator;
|
8 |
use WebpConverter\Settings\Option\SupportedExtensionsOption;
|
@@ -10,7 +10,7 @@ use WebpConverter\Settings\Option\SupportedExtensionsOption;
|
|
10 |
/**
|
11 |
* Returns paths to files in given directory.
|
12 |
*/
|
13 |
-
class
|
14 |
|
15 |
/**
|
16 |
* @var PluginData
|
@@ -22,31 +22,25 @@ class DirectoryFiles implements HookableInterface {
|
|
22 |
*/
|
23 |
private $server_configurator;
|
24 |
|
25 |
-
public function __construct(
|
|
|
|
|
|
|
26 |
$this->plugin_data = $plugin_data;
|
27 |
$this->server_configurator = $server_configurator ?: new ServerConfigurator();
|
28 |
}
|
29 |
|
30 |
-
/**
|
31 |
-
* {@inheritdoc}
|
32 |
-
*/
|
33 |
-
public function init_hooks() {
|
34 |
-
add_filter( 'webpc_dir_files', [ $this, 'get_files_by_directory' ], 10, 3 );
|
35 |
-
}
|
36 |
-
|
37 |
/**
|
38 |
* Returns list of source images for directory.
|
39 |
*
|
40 |
-
* @param string
|
41 |
-
* @param string $dir_path Server path of source directory.
|
42 |
-
* @param bool $skip_converted Skip images already converted?
|
43 |
*
|
44 |
* @return string[] Server paths of source images.
|
45 |
* @internal
|
46 |
*/
|
47 |
-
public function get_files_by_directory(
|
48 |
if ( ! file_exists( $dir_path ) ) {
|
49 |
-
return
|
50 |
}
|
51 |
|
52 |
$this->server_configurator->set_memory_limit();
|
@@ -55,8 +49,7 @@ class DirectoryFiles implements HookableInterface {
|
|
55 |
$settings = $this->plugin_data->get_plugin_settings();
|
56 |
return $this->find_files_in_directory(
|
57 |
$dir_path,
|
58 |
-
$settings[ SupportedExtensionsOption::OPTION_NAME ]
|
59 |
-
$skip_converted
|
60 |
);
|
61 |
}
|
62 |
|
@@ -65,26 +58,35 @@ class DirectoryFiles implements HookableInterface {
|
|
65 |
*
|
66 |
* @param string $dir_path Server path of source directory.
|
67 |
* @param string[] $allowed_source_exts File extensions to find.
|
68 |
-
* @param
|
69 |
*
|
70 |
* @return string[] Server paths of source images.
|
71 |
*/
|
72 |
-
private function find_files_in_directory( string $dir_path, array $allowed_source_exts,
|
73 |
$paths = scandir( $dir_path );
|
74 |
$list = [];
|
75 |
if ( ! is_array( $paths ) ) {
|
76 |
return $list;
|
77 |
}
|
78 |
|
|
|
|
|
|
|
|
|
|
|
79 |
foreach ( $paths as $path ) {
|
80 |
$current_path = $dir_path . '/' . $path;
|
|
|
81 |
if ( is_dir( $current_path ) ) {
|
82 |
if ( apply_filters( 'webpc_supported_source_directory', true, basename( $current_path ), $current_path ) ) {
|
83 |
-
$list = array_merge(
|
|
|
|
|
|
|
84 |
}
|
85 |
} elseif ( in_array( strtolower( pathinfo( $current_path, PATHINFO_EXTENSION ) ), $allowed_source_exts ) ) {
|
86 |
if ( apply_filters( 'webpc_supported_source_file', true, basename( $current_path ), $current_path ) ) {
|
87 |
-
$list[] = $
|
88 |
}
|
89 |
}
|
90 |
}
|
2 |
|
3 |
namespace WebpConverter\Conversion;
|
4 |
|
5 |
+
use WebpConverter\Error\Detector\RewritesErrorsDetector;
|
6 |
use WebpConverter\PluginData;
|
7 |
use WebpConverter\Service\ServerConfigurator;
|
8 |
use WebpConverter\Settings\Option\SupportedExtensionsOption;
|
10 |
/**
|
11 |
* Returns paths to files in given directory.
|
12 |
*/
|
13 |
+
class DirectoryFilesFinder {
|
14 |
|
15 |
/**
|
16 |
* @var PluginData
|
22 |
*/
|
23 |
private $server_configurator;
|
24 |
|
25 |
+
public function __construct(
|
26 |
+
PluginData $plugin_data,
|
27 |
+
ServerConfigurator $server_configurator = null
|
28 |
+
) {
|
29 |
$this->plugin_data = $plugin_data;
|
30 |
$this->server_configurator = $server_configurator ?: new ServerConfigurator();
|
31 |
}
|
32 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
33 |
/**
|
34 |
* Returns list of source images for directory.
|
35 |
*
|
36 |
+
* @param string $dir_path Server path of source directory.
|
|
|
|
|
37 |
*
|
38 |
* @return string[] Server paths of source images.
|
39 |
* @internal
|
40 |
*/
|
41 |
+
public function get_files_by_directory( string $dir_path ): array {
|
42 |
if ( ! file_exists( $dir_path ) ) {
|
43 |
+
return [];
|
44 |
}
|
45 |
|
46 |
$this->server_configurator->set_memory_limit();
|
49 |
$settings = $this->plugin_data->get_plugin_settings();
|
50 |
return $this->find_files_in_directory(
|
51 |
$dir_path,
|
52 |
+
$settings[ SupportedExtensionsOption::OPTION_NAME ]
|
|
|
53 |
);
|
54 |
}
|
55 |
|
58 |
*
|
59 |
* @param string $dir_path Server path of source directory.
|
60 |
* @param string[] $allowed_source_exts File extensions to find.
|
61 |
+
* @param string $path_prefix File path related to directory path.
|
62 |
*
|
63 |
* @return string[] Server paths of source images.
|
64 |
*/
|
65 |
+
private function find_files_in_directory( string $dir_path, array $allowed_source_exts, string $path_prefix = '' ): array {
|
66 |
$paths = scandir( $dir_path );
|
67 |
$list = [];
|
68 |
if ( ! is_array( $paths ) ) {
|
69 |
return $list;
|
70 |
}
|
71 |
|
72 |
+
if ( $path_prefix === '' ) {
|
73 |
+
$paths = array_diff( $paths, [ basename( RewritesErrorsDetector::PATH_OUTPUT_FILE_PNG ) ] );
|
74 |
+
}
|
75 |
+
|
76 |
+
rsort( $paths );
|
77 |
foreach ( $paths as $path ) {
|
78 |
$current_path = $dir_path . '/' . $path;
|
79 |
+
|
80 |
if ( is_dir( $current_path ) ) {
|
81 |
if ( apply_filters( 'webpc_supported_source_directory', true, basename( $current_path ), $current_path ) ) {
|
82 |
+
$list = array_merge(
|
83 |
+
$list,
|
84 |
+
$this->find_files_in_directory( $current_path, $allowed_source_exts, trim( $path_prefix . '/' . $path, '/' ) )
|
85 |
+
);
|
86 |
}
|
87 |
} elseif ( in_array( strtolower( pathinfo( $current_path, PATHINFO_EXTENSION ) ), $allowed_source_exts ) ) {
|
88 |
if ( apply_filters( 'webpc_supported_source_file', true, basename( $current_path ), $current_path ) ) {
|
89 |
+
$list[] = trim( $path_prefix . '/' . $path, '/' );
|
90 |
}
|
91 |
}
|
92 |
}
|
src/Conversion/Endpoint/FilesStatsEndpoint.php
ADDED
@@ -0,0 +1,56 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace WebpConverter\Conversion\Endpoint;
|
4 |
+
|
5 |
+
use WebpConverter\Conversion\FilesTreeFinder;
|
6 |
+
use WebpConverter\Conversion\Format\AvifFormat;
|
7 |
+
use WebpConverter\Conversion\Format\WebpFormat;
|
8 |
+
use WebpConverter\PluginData;
|
9 |
+
|
10 |
+
/**
|
11 |
+
* Generated tree of files that can be optimized.
|
12 |
+
*/
|
13 |
+
class FilesStatsEndpoint extends EndpointAbstract {
|
14 |
+
|
15 |
+
/**
|
16 |
+
* @var PluginData
|
17 |
+
*/
|
18 |
+
private $plugin_data;
|
19 |
+
|
20 |
+
public function __construct( PluginData $plugin_data ) {
|
21 |
+
$this->plugin_data = $plugin_data;
|
22 |
+
}
|
23 |
+
|
24 |
+
/**
|
25 |
+
* {@inheritdoc}
|
26 |
+
*/
|
27 |
+
public function get_route_name(): string {
|
28 |
+
return 'images-stats';
|
29 |
+
}
|
30 |
+
|
31 |
+
/**
|
32 |
+
* {@inheritdoc}
|
33 |
+
*/
|
34 |
+
public function get_http_methods(): string {
|
35 |
+
return \WP_REST_Server::READABLE;
|
36 |
+
}
|
37 |
+
|
38 |
+
/**
|
39 |
+
* {@inheritdoc}
|
40 |
+
*/
|
41 |
+
public function get_route_response( \WP_REST_Request $request ) {
|
42 |
+
$stats_data = ( new FilesTreeFinder( $this->plugin_data ) )
|
43 |
+
->get_tree( [ WebpFormat::FORMAT_EXTENSION, AvifFormat::FORMAT_EXTENSION ] );
|
44 |
+
|
45 |
+
return new \WP_REST_Response(
|
46 |
+
[
|
47 |
+
'value_webp_all' => ( $stats_data['files_converted'][ WebpFormat::FORMAT_EXTENSION ] + $stats_data['files_unconverted'][ WebpFormat::FORMAT_EXTENSION ] ),
|
48 |
+
'value_webp_converted' => $stats_data['files_converted'][ WebpFormat::FORMAT_EXTENSION ],
|
49 |
+
'value_avif_all' => ( $stats_data['files_converted'][ AvifFormat::FORMAT_EXTENSION ] + $stats_data['files_unconverted'][ AvifFormat::FORMAT_EXTENSION ] ),
|
50 |
+
'value_avif_converted' => $stats_data['files_converted'][ AvifFormat::FORMAT_EXTENSION ],
|
51 |
+
'tree' => $stats_data['files_tree'],
|
52 |
+
],
|
53 |
+
200
|
54 |
+
);
|
55 |
+
}
|
56 |
+
}
|
src/Conversion/Endpoint/ImagesCounterEndpoint.php
DELETED
@@ -1,71 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
namespace WebpConverter\Conversion\Endpoint;
|
4 |
-
|
5 |
-
use WebpConverter\Conversion\Format\AvifFormat;
|
6 |
-
use WebpConverter\Conversion\Format\WebpFormat;
|
7 |
-
use WebpConverter\Conversion\PathsFinder;
|
8 |
-
use WebpConverter\PluginData;
|
9 |
-
use WebpConverter\Repository\TokenRepository;
|
10 |
-
|
11 |
-
/**
|
12 |
-
* Calculates the number of all images to be converted.
|
13 |
-
*/
|
14 |
-
class ImagesCounterEndpoint extends EndpointAbstract {
|
15 |
-
|
16 |
-
/**
|
17 |
-
* @var PluginData
|
18 |
-
*/
|
19 |
-
private $plugin_data;
|
20 |
-
|
21 |
-
/**
|
22 |
-
* @var TokenRepository
|
23 |
-
*/
|
24 |
-
private $token_repository;
|
25 |
-
|
26 |
-
public function __construct(
|
27 |
-
PluginData $plugin_data,
|
28 |
-
TokenRepository $token_repository
|
29 |
-
) {
|
30 |
-
$this->plugin_data = $plugin_data;
|
31 |
-
$this->token_repository = $token_repository;
|
32 |
-
}
|
33 |
-
|
34 |
-
/**
|
35 |
-
* {@inheritdoc}
|
36 |
-
*/
|
37 |
-
public function get_route_name(): string {
|
38 |
-
return 'images-counter';
|
39 |
-
}
|
40 |
-
|
41 |
-
/**
|
42 |
-
* {@inheritdoc}
|
43 |
-
*/
|
44 |
-
public function get_http_methods(): string {
|
45 |
-
return \WP_REST_Server::READABLE;
|
46 |
-
}
|
47 |
-
|
48 |
-
/**
|
49 |
-
* {@inheritdoc}
|
50 |
-
*/
|
51 |
-
public function get_route_response( \WP_REST_Request $request ) {
|
52 |
-
$images_count = ( new PathsFinder( $this->plugin_data, $this->token_repository ) )
|
53 |
-
->get_paths_count( [ AvifFormat::FORMAT_EXTENSION, WebpFormat::FORMAT_EXTENSION ] );
|
54 |
-
|
55 |
-
return new \WP_REST_Response(
|
56 |
-
[
|
57 |
-
'value_webp_left' => $images_count[ WebpFormat::FORMAT_EXTENSION ],
|
58 |
-
'value_webp_all' => $images_count[ 'all_' . WebpFormat::FORMAT_EXTENSION ],
|
59 |
-
'value_avif_left' => $images_count[ AvifFormat::FORMAT_EXTENSION ],
|
60 |
-
'value_avif_all' => $images_count[ 'all_' . AvifFormat::FORMAT_EXTENSION ],
|
61 |
-
'value_output' => sprintf(
|
62 |
-
/* translators: %1$s: images count */
|
63 |
-
__( '%1$s for AVIF and %2$s for WebP', 'webp-converter-for-media' ),
|
64 |
-
number_format( $images_count[ AvifFormat::FORMAT_EXTENSION ] ?? 0, 0, '', ' ' ),
|
65 |
-
number_format( $images_count[ WebpFormat::FORMAT_EXTENSION ] ?? 0, 0, '', ' ' )
|
66 |
-
),
|
67 |
-
],
|
68 |
-
200
|
69 |
-
);
|
70 |
-
}
|
71 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
src/Conversion/FilesTreeFinder.php
ADDED
@@ -0,0 +1,196 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace WebpConverter\Conversion;
|
4 |
+
|
5 |
+
use WebpConverter\Conversion\Format\AvifFormat;
|
6 |
+
use WebpConverter\Conversion\Format\WebpFormat;
|
7 |
+
use WebpConverter\Error\Detector\RewritesErrorsDetector;
|
8 |
+
use WebpConverter\PluginData;
|
9 |
+
use WebpConverter\Service\ServerConfigurator;
|
10 |
+
use WebpConverter\Service\StatsManager;
|
11 |
+
use WebpConverter\Settings\Option\SupportedDirectoriesOption;
|
12 |
+
use WebpConverter\Settings\Option\SupportedExtensionsOption;
|
13 |
+
|
14 |
+
/**
|
15 |
+
* Returns tree of paths to files to conversion.
|
16 |
+
*/
|
17 |
+
class FilesTreeFinder {
|
18 |
+
|
19 |
+
/**
|
20 |
+
* @var PluginData
|
21 |
+
*/
|
22 |
+
private $plugin_data;
|
23 |
+
|
24 |
+
/**
|
25 |
+
* @var ServerConfigurator
|
26 |
+
*/
|
27 |
+
private $server_configurator;
|
28 |
+
|
29 |
+
/**
|
30 |
+
* @var StatsManager
|
31 |
+
*/
|
32 |
+
private $stats_manager;
|
33 |
+
|
34 |
+
/**
|
35 |
+
* @var OutputPath
|
36 |
+
*/
|
37 |
+
private $output_path;
|
38 |
+
|
39 |
+
/**
|
40 |
+
* @var int[]
|
41 |
+
*/
|
42 |
+
private $files_converted;
|
43 |
+
|
44 |
+
/**
|
45 |
+
* @var int[]
|
46 |
+
*/
|
47 |
+
private $files_unconverted;
|
48 |
+
|
49 |
+
public function __construct(
|
50 |
+
PluginData $plugin_data,
|
51 |
+
ServerConfigurator $server_configurator = null,
|
52 |
+
StatsManager $stats_manager = null,
|
53 |
+
OutputPath $output_path = null
|
54 |
+
) {
|
55 |
+
$this->plugin_data = $plugin_data;
|
56 |
+
$this->server_configurator = $server_configurator ?: new ServerConfigurator();
|
57 |
+
$this->stats_manager = $stats_manager ?: new StatsManager();
|
58 |
+
$this->output_path = $output_path ?: new OutputPath();
|
59 |
+
}
|
60 |
+
|
61 |
+
/**
|
62 |
+
* Returns list of source images for directory.
|
63 |
+
*
|
64 |
+
* @param string[] $output_formats Allowed extensions.
|
65 |
+
*
|
66 |
+
* @return mixed[] {
|
67 |
+
* @type int[] $files_converted .
|
68 |
+
* @type int[] $files_unconverted .
|
69 |
+
* @type mixed[] $files_tree .
|
70 |
+
* }
|
71 |
+
* @internal
|
72 |
+
*/
|
73 |
+
public function get_tree( array $output_formats ): array {
|
74 |
+
$this->server_configurator->set_memory_limit();
|
75 |
+
$this->server_configurator->set_execution_time( 900 );
|
76 |
+
|
77 |
+
foreach ( $output_formats as $output_format ) {
|
78 |
+
$this->files_converted[ $output_format ] = 0;
|
79 |
+
$this->files_unconverted[ $output_format ] = 0;
|
80 |
+
}
|
81 |
+
|
82 |
+
$settings = $this->plugin_data->get_plugin_settings();
|
83 |
+
$values = [];
|
84 |
+
foreach ( $settings[ SupportedDirectoriesOption::OPTION_NAME ] as $dir_name ) {
|
85 |
+
$source_dir = apply_filters( 'webpc_dir_path', '', $dir_name );
|
86 |
+
$values[] = $this->find_tree_in_directory(
|
87 |
+
$source_dir,
|
88 |
+
$settings[ SupportedExtensionsOption::OPTION_NAME ],
|
89 |
+
$output_formats
|
90 |
+
);
|
91 |
+
}
|
92 |
+
|
93 |
+
$this->stats_manager->set_images_webp_all( $this->files_converted[ WebpFormat::FORMAT_EXTENSION ] + $this->files_unconverted[ WebpFormat::FORMAT_EXTENSION ] );
|
94 |
+
$this->stats_manager->set_images_webp_unconverted( $this->files_unconverted[ WebpFormat::FORMAT_EXTENSION ] );
|
95 |
+
$this->stats_manager->set_images_avif_all( $this->files_converted[ AvifFormat::FORMAT_EXTENSION ] + $this->files_unconverted[ AvifFormat::FORMAT_EXTENSION ] );
|
96 |
+
$this->stats_manager->set_images_avif_unconverted( $this->files_unconverted[ AvifFormat::FORMAT_EXTENSION ] );
|
97 |
+
|
98 |
+
return [
|
99 |
+
'files_converted' => $this->files_converted,
|
100 |
+
'files_unconverted' => $this->files_unconverted,
|
101 |
+
'files_tree' => $values,
|
102 |
+
];
|
103 |
+
}
|
104 |
+
|
105 |
+
/**
|
106 |
+
* Returns list of source images as tree.
|
107 |
+
*
|
108 |
+
* @param string $dir_path Server path of source directory.
|
109 |
+
* @param string[] $source_formats Allowed extensions.
|
110 |
+
* @param string[] $output_formats Allowed extensions.
|
111 |
+
* @param int $nesting_level .
|
112 |
+
*
|
113 |
+
* @return mixed[]
|
114 |
+
*/
|
115 |
+
private function find_tree_in_directory( string $dir_path, array $source_formats, array $output_formats, int $nesting_level = 0 ): array {
|
116 |
+
$paths = scandir( $dir_path );
|
117 |
+
$list = [
|
118 |
+
'name' => basename( $dir_path ),
|
119 |
+
'items' => [],
|
120 |
+
'files' => [],
|
121 |
+
'count' => 0,
|
122 |
+
];
|
123 |
+
if ( ! is_array( $paths ) ) {
|
124 |
+
return $list;
|
125 |
+
}
|
126 |
+
|
127 |
+
if ( $nesting_level === 0 ) {
|
128 |
+
$paths = array_diff( $paths, [ basename( RewritesErrorsDetector::PATH_OUTPUT_FILE_PNG ) ] );
|
129 |
+
}
|
130 |
+
|
131 |
+
sort( $paths, SORT_NATURAL | SORT_FLAG_CASE );
|
132 |
+
foreach ( $paths as $path ) {
|
133 |
+
$current_path = $dir_path . '/' . $path;
|
134 |
+
|
135 |
+
if ( is_dir( $current_path ) ) {
|
136 |
+
if ( apply_filters( 'webpc_supported_source_directory', true, basename( $current_path ), $current_path ) ) {
|
137 |
+
$children = $this->find_tree_in_directory( $current_path, $source_formats, $output_formats, ( $nesting_level + 1 ) );
|
138 |
+
if ( $children['items'] || $children['files'] ) {
|
139 |
+
$list['items'][] = $children;
|
140 |
+
}
|
141 |
+
}
|
142 |
+
} elseif ( in_array( strtolower( pathinfo( $current_path, PATHINFO_EXTENSION ) ), $source_formats ) ) {
|
143 |
+
if ( apply_filters( 'webpc_supported_source_file', true, basename( $current_path ), $current_path )
|
144 |
+
&& ! $this->is_converted_file( $current_path, $output_formats ) ) {
|
145 |
+
$list['files'][] = $path;
|
146 |
+
}
|
147 |
+
}
|
148 |
+
}
|
149 |
+
|
150 |
+
$list['count'] = $this->calculate_tree_count( $list );
|
151 |
+
return $list;
|
152 |
+
}
|
153 |
+
|
154 |
+
/**
|
155 |
+
* @param string $source_path .
|
156 |
+
* @param string[] $output_formats .
|
157 |
+
*
|
158 |
+
* @return bool
|
159 |
+
*/
|
160 |
+
private function is_converted_file( string $source_path, array $output_formats ): bool {
|
161 |
+
$is_not_converted = false;
|
162 |
+
|
163 |
+
foreach ( $output_formats as $output_format ) {
|
164 |
+
$output_path = $this->output_path->get_path( $source_path, false, $output_format );
|
165 |
+
if ( $output_path === null ) {
|
166 |
+
continue;
|
167 |
+
}
|
168 |
+
|
169 |
+
if ( file_exists( $output_path )
|
170 |
+
|| file_exists( $output_path . '.' . SkipLarger::DELETED_FILE_EXTENSION )
|
171 |
+
|| file_exists( $output_path . '.' . SkipCrashed::CRASHED_FILE_EXTENSION ) ) {
|
172 |
+
$this->files_converted[ $output_format ]++;
|
173 |
+
} else {
|
174 |
+
$this->files_unconverted[ $output_format ]++;
|
175 |
+
$is_not_converted = true;
|
176 |
+
}
|
177 |
+
}
|
178 |
+
|
179 |
+
return ! $is_not_converted;
|
180 |
+
}
|
181 |
+
|
182 |
+
/**
|
183 |
+
* @param mixed[] $tree .
|
184 |
+
*
|
185 |
+
* @return int
|
186 |
+
*/
|
187 |
+
private function calculate_tree_count( array $tree ): int {
|
188 |
+
$count = count( $tree['files'] );
|
189 |
+
|
190 |
+
foreach ( $tree['items'] as $tree_item ) {
|
191 |
+
$count += $this->calculate_tree_count( $tree_item );
|
192 |
+
}
|
193 |
+
|
194 |
+
return $count;
|
195 |
+
}
|
196 |
+
}
|
src/Conversion/Method/GdMethod.php
CHANGED
@@ -3,7 +3,12 @@
|
|
3 |
namespace WebpConverter\Conversion\Method;
|
4 |
|
5 |
use WebpConverter\Conversion\Format\WebpFormat;
|
6 |
-
use WebpConverter\Exception;
|
|
|
|
|
|
|
|
|
|
|
7 |
use WebpConverter\Settings\Option\ImagesQualityOption;
|
8 |
use WebpConverter\Settings\Option\SupportedExtensionsOption;
|
9 |
|
@@ -66,10 +71,10 @@ class GdMethod extends LibraryMethodAbstract {
|
|
66 |
* {@inheritdoc}
|
67 |
*
|
68 |
* @return resource Image object.
|
69 |
-
* @throws
|
70 |
-
* @throws
|
71 |
-
* @throws
|
72 |
-
* @throws
|
73 |
*/
|
74 |
public function create_image_by_path( string $source_path, array $plugin_settings ) {
|
75 |
$extension = strtolower( pathinfo( $source_path, PATHINFO_EXTENSION ) );
|
@@ -83,7 +88,7 @@ class GdMethod extends LibraryMethodAbstract {
|
|
83 |
);
|
84 |
|
85 |
if ( ( $extension === 'gif' ) && $this->is_animated( $source_path ) ) {
|
86 |
-
throw new
|
87 |
}
|
88 |
|
89 |
foreach ( $methods as $method => $extensions ) {
|
@@ -91,14 +96,14 @@ class GdMethod extends LibraryMethodAbstract {
|
|
91 |
|| ! in_array( $extension, $extensions ) ) {
|
92 |
continue;
|
93 |
} elseif ( ! function_exists( $method ) ) {
|
94 |
-
throw new
|
95 |
} elseif ( ! $image = @$method( $source_path ) ) { // phpcs:ignore
|
96 |
-
throw new
|
97 |
}
|
98 |
}
|
99 |
|
100 |
if ( ! isset( $image ) ) {
|
101 |
-
throw new
|
102 |
}
|
103 |
|
104 |
return $this->update_image_resource( $image, $extension );
|
@@ -111,16 +116,16 @@ class GdMethod extends LibraryMethodAbstract {
|
|
111 |
* @param string $extension Extension of output format.
|
112 |
*
|
113 |
* @return resource Image object.
|
114 |
-
* @throws
|
115 |
*/
|
116 |
private function update_image_resource( $image, string $extension ) {
|
117 |
if ( ! function_exists( 'imageistruecolor' ) ) {
|
118 |
-
throw new
|
119 |
}
|
120 |
|
121 |
if ( ! imageistruecolor( $image ) ) {
|
122 |
if ( ! function_exists( 'imagepalettetotruecolor' ) ) {
|
123 |
-
throw new
|
124 |
}
|
125 |
imagepalettetotruecolor( $image );
|
126 |
}
|
@@ -128,12 +133,12 @@ class GdMethod extends LibraryMethodAbstract {
|
|
128 |
switch ( $extension ) {
|
129 |
case 'png':
|
130 |
if ( ! function_exists( 'imagealphablending' ) ) {
|
131 |
-
throw new
|
132 |
}
|
133 |
imagealphablending( $image, false );
|
134 |
|
135 |
if ( ! function_exists( 'imagesavealpha' ) ) {
|
136 |
-
throw new
|
137 |
}
|
138 |
imagesavealpha( $image, true );
|
139 |
break;
|
@@ -145,9 +150,9 @@ class GdMethod extends LibraryMethodAbstract {
|
|
145 |
/**
|
146 |
* {@inheritdoc}
|
147 |
*
|
148 |
-
* @throws
|
149 |
-
* @throws
|
150 |
-
* @throws
|
151 |
*/
|
152 |
public function convert_image_to_output( $image, string $source_path, string $output_path, string $format, array $plugin_settings ) {
|
153 |
$function = self::get_format_function( $format );
|
@@ -159,11 +164,11 @@ class GdMethod extends LibraryMethodAbstract {
|
|
159 |
$output_quality = min( $plugin_settings[ ImagesQualityOption::OPTION_NAME ], self::MAX_METHOD_QUALITY );
|
160 |
|
161 |
if ( ! function_exists( $function ) ) {
|
162 |
-
throw new
|
163 |
} elseif ( ( imagesx( $image ) > 8192 ) || ( imagesy( $image ) > 8192 ) ) {
|
164 |
-
throw new
|
165 |
} elseif ( is_callable( $function ) && ! $function( $image, $output_path, $output_quality ) ) {
|
166 |
-
throw new
|
167 |
}
|
168 |
|
169 |
if ( filesize( $output_path ) % 2 === 1 ) {
|
3 |
namespace WebpConverter\Conversion\Method;
|
4 |
|
5 |
use WebpConverter\Conversion\Format\WebpFormat;
|
6 |
+
use WebpConverter\Exception\ConversionErrorException;
|
7 |
+
use WebpConverter\Exception\ExtensionUnsupportedException;
|
8 |
+
use WebpConverter\Exception\FunctionUnavailableException;
|
9 |
+
use WebpConverter\Exception\ImageAnimatedException;
|
10 |
+
use WebpConverter\Exception\ImageInvalidException;
|
11 |
+
use WebpConverter\Exception\ResolutionOversizeException;
|
12 |
use WebpConverter\Settings\Option\ImagesQualityOption;
|
13 |
use WebpConverter\Settings\Option\SupportedExtensionsOption;
|
14 |
|
71 |
* {@inheritdoc}
|
72 |
*
|
73 |
* @return resource Image object.
|
74 |
+
* @throws ExtensionUnsupportedException
|
75 |
+
* @throws FunctionUnavailableException
|
76 |
+
* @throws ImageInvalidException
|
77 |
+
* @throws ImageAnimatedException
|
78 |
*/
|
79 |
public function create_image_by_path( string $source_path, array $plugin_settings ) {
|
80 |
$extension = strtolower( pathinfo( $source_path, PATHINFO_EXTENSION ) );
|
88 |
);
|
89 |
|
90 |
if ( ( $extension === 'gif' ) && $this->is_animated( $source_path ) ) {
|
91 |
+
throw new ImageAnimatedException( $source_path );
|
92 |
}
|
93 |
|
94 |
foreach ( $methods as $method => $extensions ) {
|
96 |
|| ! in_array( $extension, $extensions ) ) {
|
97 |
continue;
|
98 |
} elseif ( ! function_exists( $method ) ) {
|
99 |
+
throw new FunctionUnavailableException( $method );
|
100 |
} elseif ( ! $image = @$method( $source_path ) ) { // phpcs:ignore
|
101 |
+
throw new ImageInvalidException( $source_path );
|
102 |
}
|
103 |
}
|
104 |
|
105 |
if ( ! isset( $image ) ) {
|
106 |
+
throw new ExtensionUnsupportedException( [ $extension, $source_path ] );
|
107 |
}
|
108 |
|
109 |
return $this->update_image_resource( $image, $extension );
|
116 |
* @param string $extension Extension of output format.
|
117 |
*
|
118 |
* @return resource Image object.
|
119 |
+
* @throws FunctionUnavailableException
|
120 |
*/
|
121 |
private function update_image_resource( $image, string $extension ) {
|
122 |
if ( ! function_exists( 'imageistruecolor' ) ) {
|
123 |
+
throw new FunctionUnavailableException( 'imageistruecolor' );
|
124 |
}
|
125 |
|
126 |
if ( ! imageistruecolor( $image ) ) {
|
127 |
if ( ! function_exists( 'imagepalettetotruecolor' ) ) {
|
128 |
+
throw new FunctionUnavailableException( 'imagepalettetotruecolor' );
|
129 |
}
|
130 |
imagepalettetotruecolor( $image );
|
131 |
}
|
133 |
switch ( $extension ) {
|
134 |
case 'png':
|
135 |
if ( ! function_exists( 'imagealphablending' ) ) {
|
136 |
+
throw new FunctionUnavailableException( 'imagealphablending' );
|
137 |
}
|
138 |
imagealphablending( $image, false );
|
139 |
|
140 |
if ( ! function_exists( 'imagesavealpha' ) ) {
|
141 |
+
throw new FunctionUnavailableException( 'imagesavealpha' );
|
142 |
}
|
143 |
imagesavealpha( $image, true );
|
144 |
break;
|
150 |
/**
|
151 |
* {@inheritdoc}
|
152 |
*
|
153 |
+
* @throws ConversionErrorException
|
154 |
+
* @throws FunctionUnavailableException
|
155 |
+
* @throws ResolutionOversizeException
|
156 |
*/
|
157 |
public function convert_image_to_output( $image, string $source_path, string $output_path, string $format, array $plugin_settings ) {
|
158 |
$function = self::get_format_function( $format );
|
164 |
$output_quality = min( $plugin_settings[ ImagesQualityOption::OPTION_NAME ], self::MAX_METHOD_QUALITY );
|
165 |
|
166 |
if ( ! function_exists( $function ) ) {
|
167 |
+
throw new FunctionUnavailableException( $function );
|
168 |
} elseif ( ( imagesx( $image ) > 8192 ) || ( imagesy( $image ) > 8192 ) ) {
|
169 |
+
throw new ResolutionOversizeException( $source_path );
|
170 |
} elseif ( is_callable( $function ) && ! $function( $image, $output_path, $output_quality ) ) {
|
171 |
+
throw new ConversionErrorException( $source_path );
|
172 |
}
|
173 |
|
174 |
if ( filesize( $output_path ) % 2 === 1 ) {
|
src/Conversion/Method/ImagickMethod.php
CHANGED
@@ -3,7 +3,12 @@
|
|
3 |
namespace WebpConverter\Conversion\Method;
|
4 |
|
5 |
use WebpConverter\Conversion\Format\WebpFormat;
|
6 |
-
use WebpConverter\Exception;
|
|
|
|
|
|
|
|
|
|
|
7 |
use WebpConverter\Settings\Option\ExtraFeaturesOption;
|
8 |
use WebpConverter\Settings\Option\ImagesQualityOption;
|
9 |
use WebpConverter\Settings\Option\SupportedExtensionsOption;
|
@@ -73,36 +78,36 @@ class ImagickMethod extends LibraryMethodAbstract {
|
|
73 |
* {@inheritdoc}
|
74 |
*
|
75 |
* @return \Imagick .
|
76 |
-
* @throws
|
77 |
-
* @throws
|
78 |
-
* @throws
|
79 |
-
* @throws
|
80 |
*/
|
81 |
public function create_image_by_path( string $source_path, array $plugin_settings ) {
|
82 |
$extension = strtolower( pathinfo( $source_path, PATHINFO_EXTENSION ) );
|
83 |
|
84 |
if ( ! extension_loaded( 'imagick' ) || ! class_exists( 'Imagick' ) ) {
|
85 |
-
throw new
|
86 |
} elseif ( ! in_array( $extension, $plugin_settings[ SupportedExtensionsOption::OPTION_NAME ] ) ) {
|
87 |
-
throw new
|
88 |
}
|
89 |
|
90 |
try {
|
91 |
$imagick = new \Imagick( $source_path );
|
92 |
if ( ( $extension === 'gif' ) && ( $imagick->identifyFormat( '%n' ) > 1 ) ) {
|
93 |
-
throw new
|
94 |
}
|
95 |
return $imagick;
|
96 |
} catch ( \ImagickException $e ) {
|
97 |
-
throw new
|
98 |
}
|
99 |
}
|
100 |
|
101 |
/**
|
102 |
* {@inheritdoc}
|
103 |
*
|
104 |
-
* @throws
|
105 |
-
* @throws
|
106 |
*/
|
107 |
public function convert_image_to_output( $image, string $source_path, string $output_path, string $format, array $plugin_settings ) {
|
108 |
$extension = self::get_format_extension( $format );
|
@@ -110,7 +115,7 @@ class ImagickMethod extends LibraryMethodAbstract {
|
|
110 |
$output_quality = min( $plugin_settings[ ImagesQualityOption::OPTION_NAME ], self::MAX_METHOD_QUALITY );
|
111 |
|
112 |
if ( ! in_array( $extension, $image->queryFormats() ) ) {
|
113 |
-
throw new
|
114 |
}
|
115 |
|
116 |
$image->setImageFormat( $extension );
|
@@ -118,7 +123,10 @@ class ImagickMethod extends LibraryMethodAbstract {
|
|
118 |
$image_profiles = $image->getImageProfiles( '*', true );
|
119 |
foreach ( $image_profiles as $profile_name => $image_profile ) {
|
120 |
if ( ! in_array( $profile_name, self::PROTECTED_IMAGE_PROFILES ) ) {
|
121 |
-
|
|
|
|
|
|
|
122 |
}
|
123 |
}
|
124 |
}
|
@@ -126,7 +134,7 @@ class ImagickMethod extends LibraryMethodAbstract {
|
|
126 |
$blob = $image->getImageBlob();
|
127 |
|
128 |
if ( ! file_put_contents( $output_path, $blob ) ) {
|
129 |
-
throw new
|
130 |
}
|
131 |
}
|
132 |
}
|
3 |
namespace WebpConverter\Conversion\Method;
|
4 |
|
5 |
use WebpConverter\Conversion\Format\WebpFormat;
|
6 |
+
use WebpConverter\Exception\ConversionErrorException;
|
7 |
+
use WebpConverter\Exception\ExtensionUnsupportedException;
|
8 |
+
use WebpConverter\Exception\ImageAnimatedException;
|
9 |
+
use WebpConverter\Exception\ImageInvalidException;
|
10 |
+
use WebpConverter\Exception\ImagickNotSupportWebpException;
|
11 |
+
use WebpConverter\Exception\ImagickUnavailableException;
|
12 |
use WebpConverter\Settings\Option\ExtraFeaturesOption;
|
13 |
use WebpConverter\Settings\Option\ImagesQualityOption;
|
14 |
use WebpConverter\Settings\Option\SupportedExtensionsOption;
|
78 |
* {@inheritdoc}
|
79 |
*
|
80 |
* @return \Imagick .
|
81 |
+
* @throws ExtensionUnsupportedException
|
82 |
+
* @throws ImagickUnavailableException
|
83 |
+
* @throws ImageInvalidException
|
84 |
+
* @throws ImageAnimatedException
|
85 |
*/
|
86 |
public function create_image_by_path( string $source_path, array $plugin_settings ) {
|
87 |
$extension = strtolower( pathinfo( $source_path, PATHINFO_EXTENSION ) );
|
88 |
|
89 |
if ( ! extension_loaded( 'imagick' ) || ! class_exists( 'Imagick' ) ) {
|
90 |
+
throw new ImagickUnavailableException();
|
91 |
} elseif ( ! in_array( $extension, $plugin_settings[ SupportedExtensionsOption::OPTION_NAME ] ) ) {
|
92 |
+
throw new ExtensionUnsupportedException( [ $extension, $source_path ] );
|
93 |
}
|
94 |
|
95 |
try {
|
96 |
$imagick = new \Imagick( $source_path );
|
97 |
if ( ( $extension === 'gif' ) && ( $imagick->identifyFormat( '%n' ) > 1 ) ) {
|
98 |
+
throw new ImageAnimatedException( $source_path );
|
99 |
}
|
100 |
return $imagick;
|
101 |
} catch ( \ImagickException $e ) {
|
102 |
+
throw new ImageInvalidException( $source_path );
|
103 |
}
|
104 |
}
|
105 |
|
106 |
/**
|
107 |
* {@inheritdoc}
|
108 |
*
|
109 |
+
* @throws ConversionErrorException
|
110 |
+
* @throws ImagickNotSupportWebpException
|
111 |
*/
|
112 |
public function convert_image_to_output( $image, string $source_path, string $output_path, string $format, array $plugin_settings ) {
|
113 |
$extension = self::get_format_extension( $format );
|
115 |
$output_quality = min( $plugin_settings[ ImagesQualityOption::OPTION_NAME ], self::MAX_METHOD_QUALITY );
|
116 |
|
117 |
if ( ! in_array( $extension, $image->queryFormats() ) ) {
|
118 |
+
throw new ImagickNotSupportWebpException();
|
119 |
}
|
120 |
|
121 |
$image->setImageFormat( $extension );
|
123 |
$image_profiles = $image->getImageProfiles( '*', true );
|
124 |
foreach ( $image_profiles as $profile_name => $image_profile ) {
|
125 |
if ( ! in_array( $profile_name, self::PROTECTED_IMAGE_PROFILES ) ) {
|
126 |
+
try {
|
127 |
+
$image->removeImageProfile( $profile_name );
|
128 |
+
} catch ( \ImagickException $e ) { // phpcs:ignore Generic.CodeAnalysis.EmptyStatement.DetectedCatch
|
129 |
+
}
|
130 |
}
|
131 |
}
|
132 |
}
|
134 |
$blob = $image->getImageBlob();
|
135 |
|
136 |
if ( ! file_put_contents( $output_path, $blob ) ) {
|
137 |
+
throw new ConversionErrorException( $source_path );
|
138 |
}
|
139 |
}
|
140 |
}
|
src/Conversion/Method/LibraryMethodAbstract.php
CHANGED
@@ -47,7 +47,7 @@ abstract class LibraryMethodAbstract extends MethodAbstract implements LibraryMe
|
|
47 |
$output_formats = $plugin_settings[ OutputFormatsOption::OPTION_NAME ];
|
48 |
foreach ( $output_formats as $output_format ) {
|
49 |
foreach ( $paths as $path ) {
|
50 |
-
$this->
|
51 |
$this->convert_path( $path, $output_format, $plugin_settings );
|
52 |
}
|
53 |
}
|
@@ -71,7 +71,7 @@ abstract class LibraryMethodAbstract extends MethodAbstract implements LibraryMe
|
|
71 |
$output_path = $this->get_image_output_path( $source_path, $format );
|
72 |
|
73 |
$this->skip_crashed->create_crashed_file( $output_path );
|
74 |
-
$this->
|
75 |
|
76 |
$image = $this->create_image_by_path( $source_path, $plugin_settings );
|
77 |
$this->convert_image_to_output( $image, $source_path, $output_path, $format, $plugin_settings );
|
@@ -80,9 +80,12 @@ abstract class LibraryMethodAbstract extends MethodAbstract implements LibraryMe
|
|
80 |
$this->skip_crashed->delete_crashed_file( $output_path );
|
81 |
$this->skip_larger->remove_image_if_is_larger( $output_path, $source_path, $plugin_settings );
|
82 |
$this->update_conversion_stats( $source_path, $output_path, $format );
|
83 |
-
} catch ( LargerThanOriginalException $e ) {
|
|
|
84 |
} catch ( ExceptionInterface $e ) {
|
85 |
$this->save_conversion_error( $e->getMessage(), $plugin_settings );
|
|
|
|
|
86 |
}
|
87 |
}
|
88 |
}
|
47 |
$output_formats = $plugin_settings[ OutputFormatsOption::OPTION_NAME ];
|
48 |
foreach ( $output_formats as $output_format ) {
|
49 |
foreach ( $paths as $path ) {
|
50 |
+
$this->files_available[ $output_format ]++;
|
51 |
$this->convert_path( $path, $output_format, $plugin_settings );
|
52 |
}
|
53 |
}
|
71 |
$output_path = $this->get_image_output_path( $source_path, $format );
|
72 |
|
73 |
$this->skip_crashed->create_crashed_file( $output_path );
|
74 |
+
$this->files_converted[ $format ]++;
|
75 |
|
76 |
$image = $this->create_image_by_path( $source_path, $plugin_settings );
|
77 |
$this->convert_image_to_output( $image, $source_path, $output_path, $format, $plugin_settings );
|
80 |
$this->skip_crashed->delete_crashed_file( $output_path );
|
81 |
$this->skip_larger->remove_image_if_is_larger( $output_path, $source_path, $plugin_settings );
|
82 |
$this->update_conversion_stats( $source_path, $output_path, $format );
|
83 |
+
} catch ( LargerThanOriginalException $e ) {
|
84 |
+
$this->files_converted[ $format ]--;
|
85 |
} catch ( ExceptionInterface $e ) {
|
86 |
$this->save_conversion_error( $e->getMessage(), $plugin_settings );
|
87 |
+
} catch ( \Exception $e ) {
|
88 |
+
$this->save_conversion_error( $e->getMessage(), $plugin_settings );
|
89 |
}
|
90 |
}
|
91 |
}
|
src/Conversion/Method/MethodAbstract.php
CHANGED
@@ -49,19 +49,17 @@ abstract class MethodAbstract implements MethodInterface {
|
|
49 |
protected $size_after = 0;
|
50 |
|
51 |
/**
|
52 |
-
* @var int
|
53 |
-
*/
|
54 |
-
protected $files_to_conversion = 0;
|
55 |
-
|
56 |
-
/**
|
57 |
-
* @var int
|
58 |
*/
|
59 |
-
protected $
|
|
|
|
|
|
|
60 |
|
61 |
/**
|
62 |
* @var int[]
|
63 |
*/
|
64 |
-
protected $
|
65 |
WebpFormat::FORMAT_EXTENSION => 0,
|
66 |
AvifFormat::FORMAT_EXTENSION => 0,
|
67 |
];
|
@@ -97,22 +95,15 @@ abstract class MethodAbstract implements MethodInterface {
|
|
97 |
/**
|
98 |
* {@inheritdoc}
|
99 |
*/
|
100 |
-
public function
|
101 |
-
return $this->
|
102 |
-
}
|
103 |
-
|
104 |
-
/**
|
105 |
-
* {@inheritdoc}
|
106 |
-
*/
|
107 |
-
public function get_files_converted(): int {
|
108 |
-
return $this->files_converted;
|
109 |
}
|
110 |
|
111 |
/**
|
112 |
* {@inheritdoc}
|
113 |
*/
|
114 |
-
public function
|
115 |
-
return $this->
|
116 |
}
|
117 |
|
118 |
/**
|
@@ -171,10 +162,6 @@ abstract class MethodAbstract implements MethodInterface {
|
|
171 |
|
172 |
$this->size_before += $size_before ?: 0;
|
173 |
$this->size_after += $size_after ?: 0;
|
174 |
-
|
175 |
-
if ( $output_exist ) {
|
176 |
-
$this->files_converted++;
|
177 |
-
}
|
178 |
}
|
179 |
|
180 |
/**
|
49 |
protected $size_after = 0;
|
50 |
|
51 |
/**
|
52 |
+
* @var int[]
|
|
|
|
|
|
|
|
|
|
|
53 |
*/
|
54 |
+
protected $files_available = [
|
55 |
+
WebpFormat::FORMAT_EXTENSION => 0,
|
56 |
+
AvifFormat::FORMAT_EXTENSION => 0,
|
57 |
+
];
|
58 |
|
59 |
/**
|
60 |
* @var int[]
|
61 |
*/
|
62 |
+
protected $files_converted = [
|
63 |
WebpFormat::FORMAT_EXTENSION => 0,
|
64 |
AvifFormat::FORMAT_EXTENSION => 0,
|
65 |
];
|
95 |
/**
|
96 |
* {@inheritdoc}
|
97 |
*/
|
98 |
+
public function get_files_available( string $output_format ): int {
|
99 |
+
return $this->files_available[ $output_format ];
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
100 |
}
|
101 |
|
102 |
/**
|
103 |
* {@inheritdoc}
|
104 |
*/
|
105 |
+
public function get_files_converted( string $output_format ): int {
|
106 |
+
return $this->files_converted[ $output_format ];
|
107 |
}
|
108 |
|
109 |
/**
|
162 |
|
163 |
$this->size_before += $size_before ?: 0;
|
164 |
$this->size_after += $size_after ?: 0;
|
|
|
|
|
|
|
|
|
165 |
}
|
166 |
|
167 |
/**
|
src/Conversion/Method/MethodIntegrator.php
CHANGED
@@ -39,10 +39,10 @@ class MethodIntegrator {
|
|
39 |
'is_fatal_error' => $method->is_fatal_error(),
|
40 |
'errors' => apply_filters( 'webpc_convert_errors', $method->get_errors() ),
|
41 |
'files' => [
|
42 |
-
'
|
43 |
-
'
|
44 |
-
'
|
45 |
-
'
|
46 |
],
|
47 |
'size' => [
|
48 |
'before' => $method->get_size_before(),
|
39 |
'is_fatal_error' => $method->is_fatal_error(),
|
40 |
'errors' => apply_filters( 'webpc_convert_errors', $method->get_errors() ),
|
41 |
'files' => [
|
42 |
+
'webp_available' => $method->get_files_available( WebpFormat::FORMAT_EXTENSION ),
|
43 |
+
'webp_converted' => $method->get_files_converted( WebpFormat::FORMAT_EXTENSION ),
|
44 |
+
'avif_available' => $method->get_files_available( AvifFormat::FORMAT_EXTENSION ),
|
45 |
+
'avif_converted' => $method->get_files_converted( AvifFormat::FORMAT_EXTENSION ),
|
46 |
],
|
47 |
'size' => [
|
48 |
'before' => $method->get_size_before(),
|
src/Conversion/Method/MethodInterface.php
CHANGED
@@ -69,21 +69,18 @@ interface MethodInterface {
|
|
69 |
public function get_size_after(): int;
|
70 |
|
71 |
/**
|
|
|
|
|
72 |
* @return int
|
73 |
*/
|
74 |
-
public function
|
75 |
-
|
76 |
-
/**
|
77 |
-
* @return int
|
78 |
-
*/
|
79 |
-
public function get_files_converted(): int;
|
80 |
|
81 |
/**
|
82 |
* @param string $output_format .
|
83 |
*
|
84 |
* @return int
|
85 |
*/
|
86 |
-
public function
|
87 |
|
88 |
/**
|
89 |
* Converts source paths to output formats.
|
69 |
public function get_size_after(): int;
|
70 |
|
71 |
/**
|
72 |
+
* @param string $output_format .
|
73 |
+
*
|
74 |
* @return int
|
75 |
*/
|
76 |
+
public function get_files_available( string $output_format ): int;
|
|
|
|
|
|
|
|
|
|
|
77 |
|
78 |
/**
|
79 |
* @param string $output_format .
|
80 |
*
|
81 |
* @return int
|
82 |
*/
|
83 |
+
public function get_files_converted( string $output_format ): int;
|
84 |
|
85 |
/**
|
86 |
* Converts source paths to output formats.
|
src/Conversion/Method/RemoteMethod.php
CHANGED
@@ -127,8 +127,6 @@ class RemoteMethod extends MethodAbstract {
|
|
127 |
$output_paths = [];
|
128 |
$this->token = $this->token_repository->get_token();
|
129 |
|
130 |
-
$this->files_to_conversion += ( count( $paths ) * count( $output_formats ) );
|
131 |
-
|
132 |
foreach ( $output_formats as $output_format ) {
|
133 |
try {
|
134 |
$file_paths = $this->get_source_paths( $paths, $plugin_settings, $output_format );
|
@@ -136,6 +134,8 @@ class RemoteMethod extends MethodAbstract {
|
|
136 |
continue;
|
137 |
}
|
138 |
|
|
|
|
|
139 |
$output_paths[ $output_format ] = $this->get_output_paths( $file_paths, $output_format );
|
140 |
$source_paths[ $output_format ] = $file_paths;
|
141 |
} catch ( ExceptionInterface $e ) {
|
@@ -150,7 +150,8 @@ class RemoteMethod extends MethodAbstract {
|
|
150 |
|| file_exists( $output_paths[ $output_format ][ $path_index ] . '.' . SkipLarger::DELETED_FILE_EXTENSION ) ) {
|
151 |
unset( $source_paths[ $output_format ][ $path_index ] );
|
152 |
unset( $output_paths[ $output_format ][ $path_index ] );
|
153 |
-
|
|
|
154 |
}
|
155 |
}
|
156 |
}
|
@@ -170,7 +171,8 @@ class RemoteMethod extends MethodAbstract {
|
|
170 |
try {
|
171 |
$this->skip_larger->remove_image_if_is_larger( $output_path, $source_path, $plugin_settings );
|
172 |
$this->update_conversion_stats( $source_path, $output_path, $output_format );
|
173 |
-
} catch ( LargerThanOriginalException $e ) {
|
|
|
174 |
}
|
175 |
}
|
176 |
}
|
@@ -189,6 +191,7 @@ class RemoteMethod extends MethodAbstract {
|
|
189 |
* @return string[]
|
190 |
*
|
191 |
* @throws SourcePathException
|
|
|
192 |
*/
|
193 |
private function get_source_paths( array $paths, array $plugin_settings, string $output_format ): array {
|
194 |
$source_paths = [];
|
@@ -199,6 +202,7 @@ class RemoteMethod extends MethodAbstract {
|
|
199 |
( new FilesizeOversizeException( [ self::MAX_FILESIZE_BYTES, $source_path ] ) )->getMessage(),
|
200 |
$plugin_settings
|
201 |
);
|
|
|
202 |
continue;
|
203 |
}
|
204 |
|
@@ -275,7 +279,8 @@ class RemoteMethod extends MethodAbstract {
|
|
275 |
if ( ( $http_code === 200 ) && $response ) {
|
276 |
$values[ $output_format ] = $values[ $output_format ] ?? [];
|
277 |
$values[ $output_format ][ $resource_id ] = $response;
|
278 |
-
|
|
|
279 |
} else {
|
280 |
$this->handle_request_error(
|
281 |
$source_paths[ $output_format ][ $resource_id ],
|
@@ -398,7 +403,7 @@ class RemoteMethod extends MethodAbstract {
|
|
398 |
$this->save_conversion_error( $error_message, $plugin_settings );
|
399 |
} elseif ( $http_code === 200 ) {
|
400 |
$this->skip_crashed->create_crashed_file( $output_path );
|
401 |
-
$this->
|
402 |
} else {
|
403 |
$this->save_conversion_error(
|
404 |
( new RemoteRequestException( [ $http_code, $source_path ] ) )->getMessage(),
|
127 |
$output_paths = [];
|
128 |
$this->token = $this->token_repository->get_token();
|
129 |
|
|
|
|
|
130 |
foreach ( $output_formats as $output_format ) {
|
131 |
try {
|
132 |
$file_paths = $this->get_source_paths( $paths, $plugin_settings, $output_format );
|
134 |
continue;
|
135 |
}
|
136 |
|
137 |
+
$this->files_available[ $output_format ] += count( $file_paths );
|
138 |
+
|
139 |
$output_paths[ $output_format ] = $this->get_output_paths( $file_paths, $output_format );
|
140 |
$source_paths[ $output_format ] = $file_paths;
|
141 |
} catch ( ExceptionInterface $e ) {
|
150 |
|| file_exists( $output_paths[ $output_format ][ $path_index ] . '.' . SkipLarger::DELETED_FILE_EXTENSION ) ) {
|
151 |
unset( $source_paths[ $output_format ][ $path_index ] );
|
152 |
unset( $output_paths[ $output_format ][ $path_index ] );
|
153 |
+
|
154 |
+
$this->files_available[ $output_format ]--;
|
155 |
}
|
156 |
}
|
157 |
}
|
171 |
try {
|
172 |
$this->skip_larger->remove_image_if_is_larger( $output_path, $source_path, $plugin_settings );
|
173 |
$this->update_conversion_stats( $source_path, $output_path, $output_format );
|
174 |
+
} catch ( LargerThanOriginalException $e ) {
|
175 |
+
$this->files_converted[ $output_format ]--;
|
176 |
}
|
177 |
}
|
178 |
}
|
191 |
* @return string[]
|
192 |
*
|
193 |
* @throws SourcePathException
|
194 |
+
* @throws OutputPathException
|
195 |
*/
|
196 |
private function get_source_paths( array $paths, array $plugin_settings, string $output_format ): array {
|
197 |
$source_paths = [];
|
202 |
( new FilesizeOversizeException( [ self::MAX_FILESIZE_BYTES, $source_path ] ) )->getMessage(),
|
203 |
$plugin_settings
|
204 |
);
|
205 |
+
$this->skip_crashed->create_crashed_file( $this->get_image_output_path( $source_path, $output_format ) );
|
206 |
continue;
|
207 |
}
|
208 |
|
279 |
if ( ( $http_code === 200 ) && $response ) {
|
280 |
$values[ $output_format ] = $values[ $output_format ] ?? [];
|
281 |
$values[ $output_format ][ $resource_id ] = $response;
|
282 |
+
|
283 |
+
$this->files_converted[ $output_format ]++;
|
284 |
} else {
|
285 |
$this->handle_request_error(
|
286 |
$source_paths[ $output_format ][ $resource_id ],
|
403 |
$this->save_conversion_error( $error_message, $plugin_settings );
|
404 |
} elseif ( $http_code === 200 ) {
|
405 |
$this->skip_crashed->create_crashed_file( $output_path );
|
406 |
+
$this->files_converted[ $output_format ]++;
|
407 |
} else {
|
408 |
$this->save_conversion_error(
|
409 |
( new RemoteRequestException( [ $http_code, $source_path ] ) )->getMessage(),
|
src/Conversion/PathsFinder.php
CHANGED
@@ -2,8 +2,6 @@
|
|
2 |
|
3 |
namespace WebpConverter\Conversion;
|
4 |
|
5 |
-
use WebpConverter\Conversion\Format\AvifFormat;
|
6 |
-
use WebpConverter\Conversion\Format\WebpFormat;
|
7 |
use WebpConverter\Conversion\Method\RemoteMethod;
|
8 |
use WebpConverter\PluginData;
|
9 |
use WebpConverter\Repository\TokenRepository;
|
@@ -42,6 +40,11 @@ class PathsFinder {
|
|
42 |
*/
|
43 |
private $output_path;
|
44 |
|
|
|
|
|
|
|
|
|
|
|
45 |
public function __construct(
|
46 |
PluginData $plugin_data,
|
47 |
TokenRepository $token_repository,
|
@@ -52,6 +55,7 @@ class PathsFinder {
|
|
52 |
$this->token_repository = $token_repository;
|
53 |
$this->stats_manager = $stats_manager ?: new StatsManager();
|
54 |
$this->output_path = $output_path ?: new OutputPath();
|
|
|
55 |
}
|
56 |
|
57 |
/**
|
@@ -60,18 +64,33 @@ class PathsFinder {
|
|
60 |
* @param bool $skip_converted Skip converted images?
|
61 |
* @param string[]|null $allowed_output_formats List of extensions or use selected in plugin settings.
|
62 |
*
|
63 |
-
* @return
|
|
|
|
|
|
|
64 |
*/
|
65 |
public function get_paths_by_chunks( bool $skip_converted = false, array $allowed_output_formats = null ): array {
|
66 |
$allowed_output_formats = $allowed_output_formats
|
67 |
?: $this->plugin_data->get_plugin_settings()[ OutputFormatsOption::OPTION_NAME ];
|
68 |
|
69 |
-
$
|
70 |
-
|
|
|
|
|
71 |
|
72 |
-
$
|
|
|
|
|
|
|
73 |
|
74 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
75 |
}
|
76 |
|
77 |
/**
|
@@ -84,44 +103,19 @@ class PathsFinder {
|
|
84 |
$allowed_output_formats = $allowed_output_formats
|
85 |
?: $this->plugin_data->get_plugin_settings()[ OutputFormatsOption::OPTION_NAME ];
|
86 |
|
87 |
-
$
|
88 |
-
if (
|
89 |
-
|
90 |
}
|
91 |
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
* @param string[] $allowed_output_formats List of extensions.
|
97 |
-
*
|
98 |
-
* @return int[] Number of images to be converted to given output formats.
|
99 |
-
*/
|
100 |
-
public function get_paths_count( array $allowed_output_formats ): array {
|
101 |
-
$source_paths = $this->find_source_paths( true );
|
102 |
-
$values = [];
|
103 |
-
foreach ( $allowed_output_formats as $output_format ) {
|
104 |
-
$values[ $output_format ] = 0;
|
105 |
-
$values[ 'all_' . $output_format ] = 0;
|
106 |
-
foreach ( $source_paths as $source_path ) {
|
107 |
-
$output_path = $this->output_path->get_path( $source_path, false, $output_format );
|
108 |
-
if ( $output_path === null ) {
|
109 |
-
continue;
|
110 |
-
}
|
111 |
-
|
112 |
-
$values[ 'all_' . $output_format ]++;
|
113 |
-
if ( ! $this->is_converted_file( $source_path, $output_path ) ) {
|
114 |
-
$values[ $output_format ]++;
|
115 |
-
}
|
116 |
}
|
117 |
}
|
118 |
|
119 |
-
|
120 |
-
$this->stats_manager->set_images_webp_unconverted( $values[ WebpFormat::FORMAT_EXTENSION ] ?? 0 );
|
121 |
-
$this->stats_manager->set_images_avif_all( $values[ 'all_' . AvifFormat::FORMAT_EXTENSION ] ?? 0 );
|
122 |
-
$this->stats_manager->set_images_avif_unconverted( $values[ AvifFormat::FORMAT_EXTENSION ] ?? 0 );
|
123 |
-
|
124 |
-
return $values;
|
125 |
}
|
126 |
|
127 |
/**
|
@@ -154,30 +148,60 @@ class PathsFinder {
|
|
154 |
}
|
155 |
|
156 |
/**
|
157 |
-
*
|
|
|
158 |
*
|
159 |
-
* @
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
160 |
*
|
161 |
-
* @return
|
|
|
|
|
|
|
162 |
*/
|
163 |
-
private function find_source_paths(
|
164 |
$settings = $this->plugin_data->get_plugin_settings();
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
$settings[ SupportedDirectoriesOption::OPTION_NAME ]
|
171 |
-
)
|
172 |
-
);
|
173 |
|
174 |
$list = [];
|
175 |
-
foreach ( $
|
176 |
-
$
|
177 |
-
|
|
|
|
|
178 |
}
|
179 |
|
180 |
-
rsort( $list );
|
181 |
return $list;
|
182 |
}
|
183 |
|
2 |
|
3 |
namespace WebpConverter\Conversion;
|
4 |
|
|
|
|
|
5 |
use WebpConverter\Conversion\Method\RemoteMethod;
|
6 |
use WebpConverter\PluginData;
|
7 |
use WebpConverter\Repository\TokenRepository;
|
40 |
*/
|
41 |
private $output_path;
|
42 |
|
43 |
+
/**
|
44 |
+
* @var DirectoryFilesFinder
|
45 |
+
*/
|
46 |
+
private $files_finder;
|
47 |
+
|
48 |
public function __construct(
|
49 |
PluginData $plugin_data,
|
50 |
TokenRepository $token_repository,
|
55 |
$this->token_repository = $token_repository;
|
56 |
$this->stats_manager = $stats_manager ?: new StatsManager();
|
57 |
$this->output_path = $output_path ?: new OutputPath();
|
58 |
+
$this->files_finder = new DirectoryFilesFinder( $plugin_data );
|
59 |
}
|
60 |
|
61 |
/**
|
64 |
* @param bool $skip_converted Skip converted images?
|
65 |
* @param string[]|null $allowed_output_formats List of extensions or use selected in plugin settings.
|
66 |
*
|
67 |
+
* @return mixed[] {
|
68 |
+
* @type string $path Directory path.
|
69 |
+
* @type string[] $files Files paths.
|
70 |
+
* }
|
71 |
*/
|
72 |
public function get_paths_by_chunks( bool $skip_converted = false, array $allowed_output_formats = null ): array {
|
73 |
$allowed_output_formats = $allowed_output_formats
|
74 |
?: $this->plugin_data->get_plugin_settings()[ OutputFormatsOption::OPTION_NAME ];
|
75 |
|
76 |
+
$paths_chunks = $this->find_source_paths();
|
77 |
+
if ( $skip_converted ) {
|
78 |
+
$paths_chunks = $this->skip_converted_paths_chunks( $paths_chunks, $allowed_output_formats );
|
79 |
+
}
|
80 |
|
81 |
+
$count = 0;
|
82 |
+
foreach ( $paths_chunks as $dir_data ) {
|
83 |
+
$count += count( $dir_data['files'] );
|
84 |
+
}
|
85 |
|
86 |
+
$chunk_size = $this->get_paths_chunk_size( $count );
|
87 |
+
foreach ( $paths_chunks as $dir_name => $dir_data ) {
|
88 |
+
$paths_chunks[ $dir_name ]['files'] = array_chunk( $dir_data['files'], $chunk_size );
|
89 |
+
}
|
90 |
+
|
91 |
+
$this->stats_manager->set_regeneration_images( $count );
|
92 |
+
|
93 |
+
return $paths_chunks;
|
94 |
}
|
95 |
|
96 |
/**
|
103 |
$allowed_output_formats = $allowed_output_formats
|
104 |
?: $this->plugin_data->get_plugin_settings()[ OutputFormatsOption::OPTION_NAME ];
|
105 |
|
106 |
+
$paths_chunks = $this->find_source_paths();
|
107 |
+
if ( $skip_converted ) {
|
108 |
+
$paths_chunks = $this->skip_converted_paths_chunks( $paths_chunks, $allowed_output_formats );
|
109 |
}
|
110 |
|
111 |
+
$paths = [];
|
112 |
+
foreach ( $paths_chunks as $dir_data ) {
|
113 |
+
foreach ( $dir_data['files'] as $source_path ) {
|
114 |
+
$paths[] = $dir_data['path'] . '/' . $source_path;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
115 |
}
|
116 |
}
|
117 |
|
118 |
+
return $paths;
|
|
|
|
|
|
|
|
|
|
|
119 |
}
|
120 |
|
121 |
/**
|
148 |
}
|
149 |
|
150 |
/**
|
151 |
+
* @param mixed[] $source_dirs Server paths of source images.
|
152 |
+
* @param string[]|null $allowed_output_formats List of extensions or use selected in plugin settings.
|
153 |
*
|
154 |
+
* @return mixed[] Server paths of source images.
|
155 |
+
*/
|
156 |
+
private function skip_converted_paths_chunks( array $source_dirs, array $allowed_output_formats = null ): array {
|
157 |
+
$allowed_output_formats = $allowed_output_formats
|
158 |
+
?: $this->plugin_data->get_plugin_settings()[ OutputFormatsOption::OPTION_NAME ];
|
159 |
+
|
160 |
+
foreach ( $source_dirs as $dir_name => $dir_data ) {
|
161 |
+
foreach ( $dir_data['files'] as $path_index => $source_file ) {
|
162 |
+
$source_path = $dir_data['path'] . '/' . $source_file;
|
163 |
+
$is_converted = true;
|
164 |
+
foreach ( $allowed_output_formats as $output_format ) {
|
165 |
+
$output_path = $this->output_path->get_path( $source_path, false, $output_format );
|
166 |
+
|
167 |
+
if ( $output_path && ! $this->is_converted_file( $source_path, $output_path ) ) {
|
168 |
+
$is_converted = false;
|
169 |
+
break;
|
170 |
+
}
|
171 |
+
}
|
172 |
+
if ( $is_converted ) {
|
173 |
+
unset( $source_dirs[ $dir_name ]['files'][ $path_index ] );
|
174 |
+
}
|
175 |
+
}
|
176 |
+
}
|
177 |
+
|
178 |
+
return $source_dirs;
|
179 |
+
}
|
180 |
+
|
181 |
+
/**
|
182 |
+
* Returns list of server paths of source images to be converted.
|
183 |
*
|
184 |
+
* @return mixed[] {
|
185 |
+
* @type string $path Directory path.
|
186 |
+
* @type string[] $files Files paths.
|
187 |
+
* }
|
188 |
*/
|
189 |
+
private function find_source_paths(): array {
|
190 |
$settings = $this->plugin_data->get_plugin_settings();
|
191 |
+
|
192 |
+
$source_dirs = [];
|
193 |
+
foreach ( $settings[ SupportedDirectoriesOption::OPTION_NAME ] as $dir_name ) {
|
194 |
+
$source_dirs[ $dir_name ] = apply_filters( 'webpc_dir_path', '', $dir_name );
|
195 |
+
}
|
|
|
|
|
|
|
196 |
|
197 |
$list = [];
|
198 |
+
foreach ( $source_dirs as $dir_name => $dir_path ) {
|
199 |
+
$list[ $dir_name ] = [
|
200 |
+
'path' => $dir_path,
|
201 |
+
'files' => $this->files_finder->get_files_by_directory( $dir_path ),
|
202 |
+
];
|
203 |
}
|
204 |
|
|
|
205 |
return $list;
|
206 |
}
|
207 |
|
src/Error/Detector/TokenStatusDetector.php
CHANGED
@@ -2,7 +2,6 @@
|
|
2 |
|
3 |
namespace WebpConverter\Error\Detector;
|
4 |
|
5 |
-
use WebpConverter\Conversion\PathsFinder;
|
6 |
use WebpConverter\Error\Notice\AccessTokenInvalidNotice;
|
7 |
use WebpConverter\Error\Notice\ApiLimitExceededNotice;
|
8 |
use WebpConverter\PluginData;
|
@@ -54,12 +53,11 @@ class TokenStatusDetector implements ErrorDetector {
|
|
54 |
return new AccessTokenInvalidNotice();
|
55 |
}
|
56 |
|
57 |
-
|
58 |
-
if ( $images_usage > $token->get_images_limit() ) {
|
59 |
$token = $this->token_validator->validate_token( $token->get_token_value() );
|
60 |
}
|
61 |
|
62 |
-
if (
|
63 |
return new ApiLimitExceededNotice();
|
64 |
}
|
65 |
|
2 |
|
3 |
namespace WebpConverter\Error\Detector;
|
4 |
|
|
|
5 |
use WebpConverter\Error\Notice\AccessTokenInvalidNotice;
|
6 |
use WebpConverter\Error\Notice\ApiLimitExceededNotice;
|
7 |
use WebpConverter\PluginData;
|
53 |
return new AccessTokenInvalidNotice();
|
54 |
}
|
55 |
|
56 |
+
if ( ! $token->is_active() ) {
|
|
|
57 |
$token = $this->token_validator->validate_token( $token->get_token_value() );
|
58 |
}
|
59 |
|
60 |
+
if ( ! $token->is_active() ) {
|
61 |
return new ApiLimitExceededNotice();
|
62 |
}
|
63 |
|
src/Model/Token.php
CHANGED
@@ -77,4 +77,8 @@ class Token {
|
|
77 |
public function get_images_limit(): int {
|
78 |
return $this->images_limit;
|
79 |
}
|
|
|
|
|
|
|
|
|
80 |
}
|
77 |
public function get_images_limit(): int {
|
78 |
return $this->images_limit;
|
79 |
}
|
80 |
+
|
81 |
+
public function is_active(): bool {
|
82 |
+
return ( $this->get_valid_status() && ( $this->get_images_usage() < $this->get_images_limit() ) );
|
83 |
+
}
|
84 |
}
|
src/Repository/TokenRepository.php
CHANGED
@@ -4,6 +4,8 @@ namespace WebpConverter\Repository;
|
|
4 |
|
5 |
use WebpConverter\Model\Token;
|
6 |
use WebpConverter\Service\OptionsAccessManager;
|
|
|
|
|
7 |
|
8 |
/**
|
9 |
* Manages the token for the PRO version.
|
@@ -16,9 +18,10 @@ class TokenRepository {
|
|
16 |
const TOKEN_VALUE_IMAGES_USAGE = 'images_usage';
|
17 |
const TOKEN_VALUE_IMAGES_LIMIT = 'images_limit';
|
18 |
|
19 |
-
public function get_token(): Token {
|
20 |
-
$values
|
21 |
-
|
|
|
22 |
return new Token();
|
23 |
}
|
24 |
|
4 |
|
5 |
use WebpConverter\Model\Token;
|
6 |
use WebpConverter\Service\OptionsAccessManager;
|
7 |
+
use WebpConverter\Settings\Option\AccessTokenOption;
|
8 |
+
use WebpConverter\Settings\SettingsSave;
|
9 |
|
10 |
/**
|
11 |
* Manages the token for the PRO version.
|
18 |
const TOKEN_VALUE_IMAGES_USAGE = 'images_usage';
|
19 |
const TOKEN_VALUE_IMAGES_LIMIT = 'images_limit';
|
20 |
|
21 |
+
public function get_token( string $token_value = null ): Token {
|
22 |
+
$values = OptionsAccessManager::get_option( self::TOKEN_OPTION, null );
|
23 |
+
$settings = OptionsAccessManager::get_option( SettingsSave::SETTINGS_OPTION, [] );
|
24 |
+
if ( ( $values === null ) || ( ! $token_value && ! ( $settings[ AccessTokenOption::OPTION_NAME ] ?? null ) ) ) {
|
25 |
return new Token();
|
26 |
}
|
27 |
|
src/Service/TokenValidator.php
CHANGED
@@ -28,7 +28,7 @@ class TokenValidator {
|
|
28 |
}
|
29 |
|
30 |
public function validate_token( string $token_value = null ): Token {
|
31 |
-
$this->token = $this->token_repository->get_token();
|
32 |
$status = ( $token_value && $this->check_access_token( $token_value ) );
|
33 |
|
34 |
if ( $status ) {
|
@@ -41,7 +41,7 @@ class TokenValidator {
|
|
41 |
$this->token_repository->reset_token();
|
42 |
}
|
43 |
|
44 |
-
return $this->token_repository->get_token();
|
45 |
}
|
46 |
|
47 |
private function check_access_token( string $token_value ): bool {
|
28 |
}
|
29 |
|
30 |
public function validate_token( string $token_value = null ): Token {
|
31 |
+
$this->token = $this->token_repository->get_token( $token_value );
|
32 |
$status = ( $token_value && $this->check_access_token( $token_value ) );
|
33 |
|
34 |
if ( $status ) {
|
41 |
$this->token_repository->reset_token();
|
42 |
}
|
43 |
|
44 |
+
return $this->token_repository->get_token( $token_value );
|
45 |
}
|
46 |
|
47 |
private function check_access_token( string $token_value ): bool {
|
src/Service/WpCliManager.php
CHANGED
@@ -2,6 +2,7 @@
|
|
2 |
|
3 |
namespace WebpConverter\Service;
|
4 |
|
|
|
5 |
use WebpConverter\Conversion\Format\AvifFormat;
|
6 |
use WebpConverter\Conversion\Format\WebpFormat;
|
7 |
use WebpConverter\Conversion\Method\MethodIntegrator;
|
@@ -40,6 +41,8 @@ class WpCliManager implements HookableInterface {
|
|
40 |
return;
|
41 |
}
|
42 |
|
|
|
|
|
43 |
\WP_CLI::add_command( 'webp-converter calculate', [ $this, 'calculate_images' ] );
|
44 |
\WP_CLI::add_command( 'webp-converter regenerate', [ $this, 'regenerate_images' ] );
|
45 |
}
|
@@ -52,15 +55,15 @@ class WpCliManager implements HookableInterface {
|
|
52 |
__( 'How many images to convert are remaining on my website?', 'webp-converter-for-media' )
|
53 |
);
|
54 |
|
55 |
-
$
|
56 |
-
->
|
57 |
|
58 |
\WP_CLI::success(
|
59 |
sprintf(
|
60 |
/* translators: %1$s: images count */
|
61 |
__( '%1$s for AVIF and %2$s for WebP', 'webp-converter-for-media' ),
|
62 |
-
number_format( $
|
63 |
-
number_format( $
|
64 |
)
|
65 |
);
|
66 |
}
|
@@ -76,38 +79,48 @@ class WpCliManager implements HookableInterface {
|
|
76 |
->get_paths_by_chunks( $skip_converted );
|
77 |
$conversion_method = ( new MethodIntegrator( $this->plugin_data ) );
|
78 |
|
|
|
|
|
|
|
|
|
|
|
79 |
$progress = \WP_CLI\Utils\make_progress_bar(
|
80 |
__( 'Bulk Optimization', 'webp-converter-for-media' ),
|
81 |
-
count
|
82 |
);
|
83 |
$size_before = 0;
|
84 |
$size_after = 0;
|
85 |
$files_all = 0;
|
86 |
$files_converted = 0;
|
87 |
|
88 |
-
foreach ( $paths_chunks as $
|
89 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
90 |
|
91 |
-
|
92 |
-
|
93 |
-
if ( ! $response['is_fatal_error'] ) {
|
94 |
-
\WP_CLI::warning( $error_message );
|
95 |
-
} else {
|
96 |
-
\WP_CLI::error( $error_message );
|
97 |
}
|
98 |
-
}
|
99 |
|
100 |
-
|
101 |
-
|
|
|
|
|
102 |
}
|
103 |
|
104 |
-
$
|
105 |
-
$size_after += $response['size']['after'];
|
106 |
-
$files_all += $response['files']['all'];
|
107 |
-
$files_converted += $response['files']['converted'];
|
108 |
}
|
109 |
-
|
110 |
-
$progress->tick();
|
111 |
}
|
112 |
|
113 |
$progress->finish();
|
@@ -140,6 +153,20 @@ class WpCliManager implements HookableInterface {
|
|
140 |
);
|
141 |
}
|
142 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
143 |
private function format_bytes( int $size ): string {
|
144 |
$suffixes = [ 'B', 'KB', 'MB', 'GB' ];
|
145 |
$base = floor( log( $size ) / log( 1024 ) );
|
2 |
|
3 |
namespace WebpConverter\Service;
|
4 |
|
5 |
+
use WebpConverter\Conversion\FilesTreeFinder;
|
6 |
use WebpConverter\Conversion\Format\AvifFormat;
|
7 |
use WebpConverter\Conversion\Format\WebpFormat;
|
8 |
use WebpConverter\Conversion\Method\MethodIntegrator;
|
41 |
return;
|
42 |
}
|
43 |
|
44 |
+
\WP_CLI::add_command( 'converter-for-media calculate', [ $this, 'calculate_images' ] );
|
45 |
+
\WP_CLI::add_command( 'converter-for-media regenerate', [ $this, 'regenerate_images' ] );
|
46 |
\WP_CLI::add_command( 'webp-converter calculate', [ $this, 'calculate_images' ] );
|
47 |
\WP_CLI::add_command( 'webp-converter regenerate', [ $this, 'regenerate_images' ] );
|
48 |
}
|
55 |
__( 'How many images to convert are remaining on my website?', 'webp-converter-for-media' )
|
56 |
);
|
57 |
|
58 |
+
$stats_data = ( new FilesTreeFinder( $this->plugin_data ) )
|
59 |
+
->get_tree( [ WebpFormat::FORMAT_EXTENSION, AvifFormat::FORMAT_EXTENSION ] );
|
60 |
|
61 |
\WP_CLI::success(
|
62 |
sprintf(
|
63 |
/* translators: %1$s: images count */
|
64 |
__( '%1$s for AVIF and %2$s for WebP', 'webp-converter-for-media' ),
|
65 |
+
number_format( $stats_data['files_unconverted'][ AvifFormat::FORMAT_EXTENSION ], 0, '', ' ' ),
|
66 |
+
number_format( $stats_data['files_unconverted'][ WebpFormat::FORMAT_EXTENSION ], 0, '', ' ' )
|
67 |
)
|
68 |
);
|
69 |
}
|
79 |
->get_paths_by_chunks( $skip_converted );
|
80 |
$conversion_method = ( new MethodIntegrator( $this->plugin_data ) );
|
81 |
|
82 |
+
$count = 0;
|
83 |
+
foreach ( $paths_chunks as $chunk_data ) {
|
84 |
+
$count += count( $chunk_data['files'] );
|
85 |
+
}
|
86 |
+
|
87 |
$progress = \WP_CLI\Utils\make_progress_bar(
|
88 |
__( 'Bulk Optimization', 'webp-converter-for-media' ),
|
89 |
+
$count
|
90 |
);
|
91 |
$size_before = 0;
|
92 |
$size_after = 0;
|
93 |
$files_all = 0;
|
94 |
$files_converted = 0;
|
95 |
|
96 |
+
foreach ( $paths_chunks as $chunk_data ) {
|
97 |
+
foreach ( $chunk_data['files'] as $images_paths ) {
|
98 |
+
$response = $conversion_method->init_conversion(
|
99 |
+
$this->parse_files_paths( $images_paths, $chunk_data['path'] ),
|
100 |
+
! $skip_converted
|
101 |
+
);
|
102 |
+
|
103 |
+
if ( $response !== null ) {
|
104 |
+
foreach ( $response['errors'] as $error_message ) {
|
105 |
+
if ( ! $response['is_fatal_error'] ) {
|
106 |
+
\WP_CLI::warning( $error_message );
|
107 |
+
} else {
|
108 |
+
\WP_CLI::error( $error_message );
|
109 |
+
}
|
110 |
+
}
|
111 |
|
112 |
+
if ( $response['is_fatal_error'] ) {
|
113 |
+
return;
|
|
|
|
|
|
|
|
|
114 |
}
|
|
|
115 |
|
116 |
+
$size_before += $response['size']['before'];
|
117 |
+
$size_after += $response['size']['after'];
|
118 |
+
$files_all += $response['files']['webp_available'] + $response['files']['avif_available'];
|
119 |
+
$files_converted += $response['files']['webp_converted'] + $response['files']['avif_converted'];
|
120 |
}
|
121 |
|
122 |
+
$progress->tick();
|
|
|
|
|
|
|
123 |
}
|
|
|
|
|
124 |
}
|
125 |
|
126 |
$progress->finish();
|
153 |
);
|
154 |
}
|
155 |
|
156 |
+
/**
|
157 |
+
* @param string[] $paths .
|
158 |
+
* @param string $path_prefix .
|
159 |
+
*
|
160 |
+
* @return string[]
|
161 |
+
*/
|
162 |
+
private function parse_files_paths( array $paths, string $path_prefix ): array {
|
163 |
+
$items = [];
|
164 |
+
foreach ( $paths as $path ) {
|
165 |
+
$items[] = $path_prefix . '/' . $path;
|
166 |
+
}
|
167 |
+
return $items;
|
168 |
+
}
|
169 |
+
|
170 |
private function format_bytes( int $size ): string {
|
171 |
$suffixes = [ 'B', 'KB', 'MB', 'GB' ];
|
172 |
$base = floor( log( $size ) / log( 1024 ) );
|
src/Settings/Option/ExtraFeaturesOption.php
CHANGED
@@ -94,6 +94,10 @@ class ExtraFeaturesOption extends OptionAbstract {
|
|
94 |
*/
|
95 |
public function get_valid_value( $current_value, array $available_values = null, array $disabled_values = null ) {
|
96 |
$valid_values = [];
|
|
|
|
|
|
|
|
|
97 |
foreach ( $current_value as $option_value ) {
|
98 |
if ( array_key_exists( $option_value, $available_values ?: [] )
|
99 |
&& ! in_array( $option_value, $disabled_values ?: [] ) ) {
|
94 |
*/
|
95 |
public function get_valid_value( $current_value, array $available_values = null, array $disabled_values = null ) {
|
96 |
$valid_values = [];
|
97 |
+
if ( ! $current_value ) {
|
98 |
+
return $valid_values;
|
99 |
+
}
|
100 |
+
|
101 |
foreach ( $current_value as $option_value ) {
|
102 |
if ( array_key_exists( $option_value, $available_values ?: [] )
|
103 |
&& ! in_array( $option_value, $disabled_values ?: [] ) ) {
|
src/Settings/Option/ImageResizeOption.php
CHANGED
@@ -147,7 +147,10 @@ class ImageResizeOption extends OptionAbstract {
|
|
147 |
* @return int[]
|
148 |
*/
|
149 |
private function get_max_image_size(): array {
|
150 |
-
$sizes
|
|
|
|
|
|
|
151 |
$column_width = array_column( $sizes, 'width' );
|
152 |
$column_height = array_column( $sizes, 'height' );
|
153 |
|
147 |
* @return int[]
|
148 |
*/
|
149 |
private function get_max_image_size(): array {
|
150 |
+
$sizes = ( function_exists( 'wp_get_registered_image_subsizes' ) )
|
151 |
+
? wp_get_registered_image_subsizes()
|
152 |
+
: wp_get_additional_image_sizes();
|
153 |
+
|
154 |
$column_width = array_column( $sizes, 'width' );
|
155 |
$column_height = array_column( $sizes, 'height' );
|
156 |
|
src/Settings/Option/OutputFormatsOption.php
CHANGED
@@ -114,6 +114,10 @@ class OutputFormatsOption extends OptionAbstract {
|
|
114 |
*/
|
115 |
public function get_valid_value( $current_value, array $available_values = null, array $disabled_values = null ) {
|
116 |
$valid_values = [];
|
|
|
|
|
|
|
|
|
117 |
foreach ( $current_value as $option_value ) {
|
118 |
if ( array_key_exists( $option_value, $available_values ?: [] )
|
119 |
&& ! in_array( $option_value, $disabled_values ?: [] ) ) {
|
114 |
*/
|
115 |
public function get_valid_value( $current_value, array $available_values = null, array $disabled_values = null ) {
|
116 |
$valid_values = [];
|
117 |
+
if ( ! $current_value ) {
|
118 |
+
return $valid_values;
|
119 |
+
}
|
120 |
+
|
121 |
foreach ( $current_value as $option_value ) {
|
122 |
if ( array_key_exists( $option_value, $available_values ?: [] )
|
123 |
&& ! in_array( $option_value, $disabled_values ?: [] ) ) {
|
src/Settings/Option/SupportedDirectoriesOption.php
CHANGED
@@ -60,6 +60,10 @@ class SupportedDirectoriesOption extends OptionAbstract {
|
|
60 |
*/
|
61 |
public function get_valid_value( $current_value, array $available_values = null, array $disabled_values = null ) {
|
62 |
$valid_values = [];
|
|
|
|
|
|
|
|
|
63 |
foreach ( $current_value as $option_value ) {
|
64 |
if ( array_key_exists( $option_value, $available_values ?: [] )
|
65 |
&& ! in_array( $option_value, $disabled_values ?: [] ) ) {
|
60 |
*/
|
61 |
public function get_valid_value( $current_value, array $available_values = null, array $disabled_values = null ) {
|
62 |
$valid_values = [];
|
63 |
+
if ( ! $current_value ) {
|
64 |
+
return $valid_values;
|
65 |
+
}
|
66 |
+
|
67 |
foreach ( $current_value as $option_value ) {
|
68 |
if ( array_key_exists( $option_value, $available_values ?: [] )
|
69 |
&& ! in_array( $option_value, $disabled_values ?: [] ) ) {
|
src/Settings/Option/SupportedExtensionsOption.php
CHANGED
@@ -67,6 +67,10 @@ class SupportedExtensionsOption extends OptionAbstract {
|
|
67 |
*/
|
68 |
public function get_valid_value( $current_value, array $available_values = null, array $disabled_values = null ) {
|
69 |
$valid_values = [];
|
|
|
|
|
|
|
|
|
70 |
foreach ( $current_value as $option_value ) {
|
71 |
if ( array_key_exists( $option_value, $available_values ?: [] )
|
72 |
&& ! in_array( $option_value, $disabled_values ?: [] ) ) {
|
67 |
*/
|
68 |
public function get_valid_value( $current_value, array $available_values = null, array $disabled_values = null ) {
|
69 |
$valid_values = [];
|
70 |
+
if ( ! $current_value ) {
|
71 |
+
return $valid_values;
|
72 |
+
}
|
73 |
+
|
74 |
foreach ( $current_value as $option_value ) {
|
75 |
if ( array_key_exists( $option_value, $available_values ?: [] )
|
76 |
&& ! in_array( $option_value, $disabled_values ?: [] ) ) {
|
src/Settings/Page/GeneralSettingsPage.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
|
4 |
namespace WebpConverter\Settings\Page;
|
5 |
|
6 |
-
use WebpConverter\Conversion\Endpoint\
|
7 |
use WebpConverter\Conversion\Endpoint\PathsEndpoint;
|
8 |
use WebpConverter\Conversion\Endpoint\RegenerateEndpoint;
|
9 |
use WebpConverter\Loader\LoaderAbstract;
|
@@ -74,8 +74,8 @@ class GeneralSettingsPage extends PageAbstract {
|
|
74 |
public function get_template_vars(): array {
|
75 |
( new SettingsSave( $this->plugin_data ) )->save_settings();
|
76 |
|
77 |
-
$
|
78 |
-
$data
|
79 |
'logo_url' => $this->plugin_info->get_plugin_directory_url() . 'assets/img/logo-headline.png',
|
80 |
'errors_messages' => apply_filters( 'webpc_server_errors_messages', [] ),
|
81 |
'errors_codes' => apply_filters( 'webpc_server_errors', [] ),
|
@@ -86,21 +86,22 @@ class GeneralSettingsPage extends PageAbstract {
|
|
86 |
'form_sidebar_input_value' => OptionAbstract::FORM_TYPE_SIDEBAR,
|
87 |
'nonce_input_name' => SettingsSave::NONCE_PARAM_KEY,
|
88 |
'nonce_input_value' => ( new NonceManager() )->generate_nonce( SettingsSave::NONCE_PARAM_VALUE ),
|
89 |
-
'token_valid_status' => $
|
90 |
-
'
|
91 |
'api_paths_url' => ( new PathsEndpoint( $this->plugin_data, $this->token_repository ) )->get_route_url(),
|
92 |
'api_regenerate_url' => ( new RegenerateEndpoint( $this->plugin_data ) )->get_route_url(),
|
|
|
93 |
'url_debug_page' => PageIntegration::get_settings_page_url( DebugPage::PAGE_SLUG ),
|
94 |
'output_formats' => [
|
95 |
'webp' => [
|
96 |
'label' => 'WebP',
|
97 |
-
'desc' => ( ! $
|
98 |
? __( 'available in the free version', 'webp-converter-for-media' )
|
99 |
: null,
|
100 |
],
|
101 |
'avif' => [
|
102 |
'label' => 'AVIF',
|
103 |
-
'desc' => ( ! $
|
104 |
? sprintf(
|
105 |
/* translators: %1$s: open anchor tag, %2$s: close anchor tag */
|
106 |
__( 'available in %1$sthe PRO version%2$s', 'webp-converter-for-media' ),
|
3 |
|
4 |
namespace WebpConverter\Settings\Page;
|
5 |
|
6 |
+
use WebpConverter\Conversion\Endpoint\FilesStatsEndpoint;
|
7 |
use WebpConverter\Conversion\Endpoint\PathsEndpoint;
|
8 |
use WebpConverter\Conversion\Endpoint\RegenerateEndpoint;
|
9 |
use WebpConverter\Loader\LoaderAbstract;
|
74 |
public function get_template_vars(): array {
|
75 |
( new SettingsSave( $this->plugin_data ) )->save_settings();
|
76 |
|
77 |
+
$token = $this->token_repository->get_token();
|
78 |
+
$data = [
|
79 |
'logo_url' => $this->plugin_info->get_plugin_directory_url() . 'assets/img/logo-headline.png',
|
80 |
'errors_messages' => apply_filters( 'webpc_server_errors_messages', [] ),
|
81 |
'errors_codes' => apply_filters( 'webpc_server_errors', [] ),
|
86 |
'form_sidebar_input_value' => OptionAbstract::FORM_TYPE_SIDEBAR,
|
87 |
'nonce_input_name' => SettingsSave::NONCE_PARAM_KEY,
|
88 |
'nonce_input_value' => ( new NonceManager() )->generate_nonce( SettingsSave::NONCE_PARAM_VALUE ),
|
89 |
+
'token_valid_status' => $token->get_valid_status(),
|
90 |
+
'token_active_status' => $token->is_active(),
|
91 |
'api_paths_url' => ( new PathsEndpoint( $this->plugin_data, $this->token_repository ) )->get_route_url(),
|
92 |
'api_regenerate_url' => ( new RegenerateEndpoint( $this->plugin_data ) )->get_route_url(),
|
93 |
+
'api_stats_url' => ( new FilesStatsEndpoint( $this->plugin_data ) )->get_route_url(),
|
94 |
'url_debug_page' => PageIntegration::get_settings_page_url( DebugPage::PAGE_SLUG ),
|
95 |
'output_formats' => [
|
96 |
'webp' => [
|
97 |
'label' => 'WebP',
|
98 |
+
'desc' => ( ! $token->get_valid_status() )
|
99 |
? __( 'available in the free version', 'webp-converter-for-media' )
|
100 |
: null,
|
101 |
],
|
102 |
'avif' => [
|
103 |
'label' => 'AVIF',
|
104 |
+
'desc' => ( ! $token->get_valid_status() )
|
105 |
? sprintf(
|
106 |
/* translators: %1$s: open anchor tag, %2$s: close anchor tag */
|
107 |
__( 'available in %1$sthe PRO version%2$s', 'webp-converter-for-media' ),
|
src/WebpConverter.php
CHANGED
@@ -24,15 +24,13 @@ class WebpConverter {
|
|
24 |
$token_repository = new TokenRepository();
|
25 |
|
26 |
( new Action\ConvertAttachment( $plugin_data ) )->init_hooks();
|
27 |
-
( new Action\ConvertDir() )->init_hooks();
|
28 |
( new Action\ConvertPaths( $plugin_data ) )->init_hooks();
|
29 |
( new Action\DeletePaths() )->init_hooks();
|
30 |
( new Conversion\Directory\DirectoryFactory() )->init_hooks();
|
31 |
-
( new
|
32 |
-
( new Endpoint\EndpointIntegration( new Endpoint\
|
33 |
( new Endpoint\EndpointIntegration( new Endpoint\PathsEndpoint( $plugin_data, $token_repository ) ) )->init_hooks();
|
34 |
( new Endpoint\EndpointIntegration( new Endpoint\RegenerateEndpoint( $plugin_data ) ) )->init_hooks();
|
35 |
-
( new Endpoint\EndpointIntegration( new Endpoint\CronConversionEndpoint( $plugin_data, $token_repository ) ) )->init_hooks();
|
36 |
( new Conversion\SkipExcludedPaths() )->init_hooks();
|
37 |
( new Cron\CronEventGenerator( $plugin_data, $token_repository ) )->init_hooks();
|
38 |
( new Cron\CronSchedulesGenerator() )->init_hooks();
|
24 |
$token_repository = new TokenRepository();
|
25 |
|
26 |
( new Action\ConvertAttachment( $plugin_data ) )->init_hooks();
|
|
|
27 |
( new Action\ConvertPaths( $plugin_data ) )->init_hooks();
|
28 |
( new Action\DeletePaths() )->init_hooks();
|
29 |
( new Conversion\Directory\DirectoryFactory() )->init_hooks();
|
30 |
+
( new Endpoint\EndpointIntegration( new Endpoint\CronConversionEndpoint( $plugin_data, $token_repository ) ) )->init_hooks();
|
31 |
+
( new Endpoint\EndpointIntegration( new Endpoint\FilesStatsEndpoint( $plugin_data ) ) )->init_hooks();
|
32 |
( new Endpoint\EndpointIntegration( new Endpoint\PathsEndpoint( $plugin_data, $token_repository ) ) )->init_hooks();
|
33 |
( new Endpoint\EndpointIntegration( new Endpoint\RegenerateEndpoint( $plugin_data ) ) )->init_hooks();
|
|
|
34 |
( new Conversion\SkipExcludedPaths() )->init_hooks();
|
35 |
( new Cron\CronEventGenerator( $plugin_data, $token_repository ) )->init_hooks();
|
36 |
( new Cron\CronSchedulesGenerator() )->init_hooks();
|
templates/components/fields/image_size.php
CHANGED
@@ -13,13 +13,13 @@
|
|
13 |
<input type="checkbox"
|
14 |
name="<?php echo esc_attr( $option['name'] ); ?>[0]"
|
15 |
value="yes"
|
16 |
-
id="<?php echo esc_attr( $option['name'] ); ?>"
|
17 |
class="webpcField__input webpcField__input--checkbox"
|
18 |
data-inputs-group-toggle="<?php echo esc_attr( $option['name'] ); ?>"
|
19 |
<?php echo ( ( $option['value'][0] ?? '' ) === 'yes' ) ? 'checked' : ''; ?>
|
20 |
<?php echo ( in_array( 'yes', $option['disabled'] ) ) ? 'disabled' : ''; ?>
|
21 |
>
|
22 |
-
<label for="<?php echo esc_attr( $option['name'] ); ?>"></label>
|
23 |
<span class="webpcField__label"><?php echo wp_kses_post( $option['info'] ); ?></span>
|
24 |
</div>
|
25 |
|
@@ -31,7 +31,7 @@
|
|
31 |
<input type="number" min="0" step="1"
|
32 |
name="<?php echo esc_attr( $option['name'] ); ?>[1]"
|
33 |
value="<?php echo esc_attr( $option['value'][1] ?? '' ); ?>"
|
34 |
-
id="<?php echo esc_attr( $option['name'] ); ?>"
|
35 |
class="webpcInput__field webpcInput__field--small"
|
36 |
data-inputs-group-input="<?php echo esc_attr( $option['name'] ); ?>"
|
37 |
<?php echo ( in_array( 'yes', $option['disabled'] ) || ( $option['value'][0] ?? '' ) !== 'yes' ) ? 'readonly' : ''; ?>
|
@@ -44,7 +44,7 @@
|
|
44 |
<input type="number" min="0" step="1"
|
45 |
name="<?php echo esc_attr( $option['name'] ); ?>[2]"
|
46 |
value="<?php echo esc_attr( $option['value'][2] ?? '' ); ?>"
|
47 |
-
id="<?php echo esc_attr( $option['name'] ); ?>"
|
48 |
class="webpcInput__field webpcInput__field--small"
|
49 |
data-inputs-group-input="<?php echo esc_attr( $option['name'] ); ?>"
|
50 |
<?php echo ( in_array( 'yes', $option['disabled'] ) || ( $option['value'][0] ?? '' ) !== 'yes' ) ? 'readonly' : ''; ?>
|
13 |
<input type="checkbox"
|
14 |
name="<?php echo esc_attr( $option['name'] ); ?>[0]"
|
15 |
value="yes"
|
16 |
+
id="<?php echo esc_attr( $option['name'] ); ?>[0]"
|
17 |
class="webpcField__input webpcField__input--checkbox"
|
18 |
data-inputs-group-toggle="<?php echo esc_attr( $option['name'] ); ?>"
|
19 |
<?php echo ( ( $option['value'][0] ?? '' ) === 'yes' ) ? 'checked' : ''; ?>
|
20 |
<?php echo ( in_array( 'yes', $option['disabled'] ) ) ? 'disabled' : ''; ?>
|
21 |
>
|
22 |
+
<label for="<?php echo esc_attr( $option['name'] ); ?>[0]"></label>
|
23 |
<span class="webpcField__label"><?php echo wp_kses_post( $option['info'] ); ?></span>
|
24 |
</div>
|
25 |
|
31 |
<input type="number" min="0" step="1"
|
32 |
name="<?php echo esc_attr( $option['name'] ); ?>[1]"
|
33 |
value="<?php echo esc_attr( $option['value'][1] ?? '' ); ?>"
|
34 |
+
id="<?php echo esc_attr( $option['name'] ); ?>[1]"
|
35 |
class="webpcInput__field webpcInput__field--small"
|
36 |
data-inputs-group-input="<?php echo esc_attr( $option['name'] ); ?>"
|
37 |
<?php echo ( in_array( 'yes', $option['disabled'] ) || ( $option['value'][0] ?? '' ) !== 'yes' ) ? 'readonly' : ''; ?>
|
44 |
<input type="number" min="0" step="1"
|
45 |
name="<?php echo esc_attr( $option['name'] ); ?>[2]"
|
46 |
value="<?php echo esc_attr( $option['value'][2] ?? '' ); ?>"
|
47 |
+
id="<?php echo esc_attr( $option['name'] ); ?>[2]"
|
48 |
class="webpcInput__field webpcInput__field--small"
|
49 |
data-inputs-group-input="<?php echo esc_attr( $option['name'] ); ?>"
|
50 |
<?php echo ( in_array( 'yes', $option['disabled'] ) || ( $option['value'][0] ?? '' ) !== 'yes' ) ? 'readonly' : ''; ?>
|
templates/components/fields/token.php
CHANGED
@@ -2,10 +2,10 @@
|
|
2 |
/**
|
3 |
* Field displayed in plugin settings form.
|
4 |
*
|
5 |
-
* @var bool $token_valid_status
|
6 |
-
* @var
|
7 |
-
* @var mixed[] $option
|
8 |
-
* @var string $index
|
9 |
*
|
10 |
* @package Converter for Media
|
11 |
*/
|
@@ -23,21 +23,16 @@
|
|
23 |
<?php echo ( $token_valid_status ) ? 'readonly' : ''; ?>
|
24 |
>
|
25 |
</div>
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
'
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
<strong data-calculate-widget-loading hidden>
|
40 |
-
<?php echo esc_html( __( 'Please wait...', 'webp-converter-for-media' ) ); ?>
|
41 |
-
</strong>
|
42 |
-
<strong style="display: block;" data-calculate-widget-output hidden></strong>
|
43 |
-
</p>
|
2 |
/**
|
3 |
* Field displayed in plugin settings form.
|
4 |
*
|
5 |
+
* @var bool $token_valid_status Status of access token.
|
6 |
+
* @var bool $token_active_status Status of PRO version.
|
7 |
+
* @var mixed[] $option Data of field.
|
8 |
+
* @var string $index Index of field.
|
9 |
*
|
10 |
* @package Converter for Media
|
11 |
*/
|
23 |
<?php echo ( $token_valid_status ) ? 'readonly' : ''; ?>
|
24 |
>
|
25 |
</div>
|
26 |
+
<?php if ( ! $token_active_status ) : ?>
|
27 |
+
<p data-plans>
|
28 |
+
<strong><?php echo esc_html( __( 'Which plan would be the best choice for me?', 'webp-converter-for-media' ) ); ?></strong>
|
29 |
+
<br>
|
30 |
+
<a href="https://url.mattplugins.com/converter-field-access-token-plans?webp=0&avif=0" target="_blank"
|
31 |
+
data-plans-button hidden>
|
32 |
+
<?php echo esc_html( __( 'Check the plans for you', 'webp-converter-for-media' ) ); ?>
|
33 |
+
</a>
|
34 |
+
<span class="webpcContent__loader" data-plans-loader>
|
35 |
+
<?php echo esc_html( __( 'Loading, please wait', 'webp-converter-for-media' ) ); ?>
|
36 |
+
</span>
|
37 |
+
</p>
|
38 |
+
<?php endif; ?>
|
|
|
|
|
|
|
|
|
|
templates/components/server/sub-sizes.php
CHANGED
@@ -5,6 +5,10 @@
|
|
5 |
* @package Converter for Media
|
6 |
*/
|
7 |
|
|
|
|
|
|
|
|
|
8 |
?>
|
9 |
<h4>
|
10 |
<?php
|
@@ -15,7 +19,7 @@
|
|
15 |
</h4>
|
16 |
<table>
|
17 |
<tbody>
|
18 |
-
<?php foreach (
|
19 |
<tr>
|
20 |
<td class="e"><?php echo esc_html( $size_name ); ?></td>
|
21 |
<td class="v">
|
5 |
* @package Converter for Media
|
6 |
*/
|
7 |
|
8 |
+
$image_sizes = ( function_exists( 'wp_get_registered_image_subsizes' ) )
|
9 |
+
? wp_get_registered_image_subsizes()
|
10 |
+
: wp_get_additional_image_sizes();
|
11 |
+
|
12 |
?>
|
13 |
<h4>
|
14 |
<?php
|
19 |
</h4>
|
20 |
<table>
|
21 |
<tbody>
|
22 |
+
<?php foreach ( $image_sizes as $size_name => $size_data ) : ?>
|
23 |
<tr>
|
24 |
<td class="e"><?php echo esc_html( $size_name ); ?></td>
|
25 |
<td class="v">
|
templates/components/widgets/options-sidebar.php
CHANGED
@@ -8,7 +8,6 @@
|
|
8 |
* @var string $nonce_input_name Name of hidden field with WordPress Nonce value.
|
9 |
* @var string $nonce_input_value WordPress Nonce value.
|
10 |
* @var bool $token_valid_status Status of PRO version.
|
11 |
-
* @var string $api_calculate_url URL of REST API endpoint.
|
12 |
*
|
13 |
* @package Converter for Media
|
14 |
*/
|
8 |
* @var string $nonce_input_name Name of hidden field with WordPress Nonce value.
|
9 |
* @var string $nonce_input_value WordPress Nonce value.
|
10 |
* @var bool $token_valid_status Status of PRO version.
|
|
|
11 |
*
|
12 |
* @package Converter for Media
|
13 |
*/
|
templates/components/widgets/options.php
CHANGED
@@ -2,13 +2,13 @@
|
|
2 |
/**
|
3 |
* Widget displayed in main container on plugin settings page.
|
4 |
*
|
5 |
-
* @var mixed[] $form_options
|
6 |
-
* @var string $form_input_name
|
7 |
-
* @var string $form_input_value
|
8 |
-
* @var string $nonce_input_name
|
9 |
-
* @var string $nonce_input_value
|
10 |
-
* @var bool $token_valid_status
|
11 |
-
* @var
|
12 |
*
|
13 |
* @package Converter for Media
|
14 |
*/
|
2 |
/**
|
3 |
* Widget displayed in main container on plugin settings page.
|
4 |
*
|
5 |
+
* @var mixed[] $form_options Settings options in main container.
|
6 |
+
* @var string $form_input_name Name of hidden field with form ID.
|
7 |
+
* @var string $form_input_value ID of settings form in main container.
|
8 |
+
* @var string $nonce_input_name Name of hidden field with WordPress Nonce value.
|
9 |
+
* @var string $nonce_input_value WordPress Nonce value.
|
10 |
+
* @var bool $token_valid_status Status of access token.
|
11 |
+
* @var bool $token_active_status Status of PRO version.
|
12 |
*
|
13 |
* @package Converter for Media
|
14 |
*/
|
templates/components/widgets/regenerate.php
CHANGED
@@ -2,9 +2,9 @@
|
|
2 |
/**
|
3 |
* Widget displayed on plugin settings page.
|
4 |
*
|
5 |
-
* @var string $api_calculate_url URL of REST API endpoint.
|
6 |
* @var string $api_paths_url URL of REST API endpoint.
|
7 |
* @var string $api_regenerate_url URL of REST API endpoint.
|
|
|
8 |
* @var string[][] $output_formats Data about output formats for regeneration.
|
9 |
*
|
10 |
* @package Converter for Media
|
@@ -16,7 +16,6 @@
|
|
16 |
<?php echo esc_html( __( 'Bulk Optimization of Images', 'webp-converter-for-media' ) ); ?>
|
17 |
</h3>
|
18 |
<div class="webpcLoader webpcContent"
|
19 |
-
data-api-calculate="<?php echo esc_url( $api_calculate_url ); ?>"
|
20 |
data-api-paths="<?php echo esc_url( $api_paths_url ); ?>"
|
21 |
data-api-regenerate="<?php echo esc_url( $api_regenerate_url ); ?>"
|
22 |
data-api-error-message="<?php echo esc_html( __( 'An error occurred while connecting to REST API. Please try again.', 'webp-converter-for-media' ) ); ?>"
|
@@ -37,6 +36,18 @@
|
|
37 |
?>
|
38 |
</p>
|
39 |
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
40 |
<div class="webpcPage__widgetRow">
|
41 |
<div class="webpcPage__widgetNotice">
|
42 |
<p>
|
2 |
/**
|
3 |
* Widget displayed on plugin settings page.
|
4 |
*
|
|
|
5 |
* @var string $api_paths_url URL of REST API endpoint.
|
6 |
* @var string $api_regenerate_url URL of REST API endpoint.
|
7 |
+
* @var string $api_stats_url URL of REST API endpoint.
|
8 |
* @var string[][] $output_formats Data about output formats for regeneration.
|
9 |
*
|
10 |
* @package Converter for Media
|
16 |
<?php echo esc_html( __( 'Bulk Optimization of Images', 'webp-converter-for-media' ) ); ?>
|
17 |
</h3>
|
18 |
<div class="webpcLoader webpcContent"
|
|
|
19 |
data-api-paths="<?php echo esc_url( $api_paths_url ); ?>"
|
20 |
data-api-regenerate="<?php echo esc_url( $api_regenerate_url ); ?>"
|
21 |
data-api-error-message="<?php echo esc_html( __( 'An error occurred while connecting to REST API. Please try again.', 'webp-converter-for-media' ) ); ?>"
|
36 |
?>
|
37 |
</p>
|
38 |
</div>
|
39 |
+
<div class="webpcPage__widgetRow">
|
40 |
+
<div class="webpcTree">
|
41 |
+
<p class="webpcTree__headline">
|
42 |
+
<?php echo wp_kses_post( __( 'List of files that can be optimized:', 'webp-converter-for-media' ) ); ?>
|
43 |
+
</p>
|
44 |
+
<div class="webpcTree__output" data-tree>
|
45 |
+
<p class="webpcContent__loader">
|
46 |
+
<?php echo wp_kses_post( sprintf( __( 'Loading, please wait', 'webp-converter-for-media' ) ) ); ?>
|
47 |
+
</p>
|
48 |
+
</div>
|
49 |
+
</div>
|
50 |
+
</div>
|
51 |
<div class="webpcPage__widgetRow">
|
52 |
<div class="webpcPage__widgetNotice">
|
53 |
<p>
|
templates/views/settings.php
CHANGED
@@ -13,10 +13,11 @@
|
|
13 |
* @var string $form_sidebar_input_value ID of settings form in sidebar.
|
14 |
* @var string $nonce_input_name Name of hidden field with WordPress Nonce value.
|
15 |
* @var string $nonce_input_value WordPress Nonce value.
|
16 |
-
* @var bool $token_valid_status Status of
|
17 |
-
* @var
|
18 |
-
* @var string
|
19 |
-
* @var string
|
|
|
20 |
* @var string $url_debug_page URL of debug tag in settings page.
|
21 |
* @var string[][] $output_formats Data about output formats for regeneration.
|
22 |
*
|
@@ -26,7 +27,7 @@
|
|
26 |
?>
|
27 |
<div class="wrap">
|
28 |
<hr class="wp-header-end">
|
29 |
-
<div class="webpcPage">
|
30 |
<div class="webpcPage__headline">
|
31 |
<img src="<?php echo esc_attr( $logo_url ); ?>" alt="<?php echo esc_attr( 'Converter for Media' ); ?>">
|
32 |
</div>
|
13 |
* @var string $form_sidebar_input_value ID of settings form in sidebar.
|
14 |
* @var string $nonce_input_name Name of hidden field with WordPress Nonce value.
|
15 |
* @var string $nonce_input_value WordPress Nonce value.
|
16 |
+
* @var bool $token_valid_status Status of access token.
|
17 |
+
* @var bool $token_active_status Status of PRO version.
|
18 |
+
* @var string $api_paths_url URL of REST API endpoint.
|
19 |
+
* @var string $api_regenerate_url URL of REST API endpoint.
|
20 |
+
* @var string $api_stats_url URL of REST API endpoint.
|
21 |
* @var string $url_debug_page URL of debug tag in settings page.
|
22 |
* @var string[][] $output_formats Data about output formats for regeneration.
|
23 |
*
|
27 |
?>
|
28 |
<div class="wrap">
|
29 |
<hr class="wp-header-end">
|
30 |
+
<div class="webpcPage" data-api-stats="<?php echo esc_url( $api_stats_url ); ?>">
|
31 |
<div class="webpcPage__headline">
|
32 |
<img src="<?php echo esc_attr( $logo_url ); ?>" alt="<?php echo esc_attr( 'Converter for Media' ); ?>">
|
33 |
</div>
|
vendor/composer/autoload_classmap.php
CHANGED
@@ -21,7 +21,6 @@ return array(
|
|
21 |
'WebpConverterVendor\\MattPlugins\\DeactivationModal\\Service\\AssetsPrinterService' => $baseDir . '/vendor_prefixed/src/Service/AssetsPrinterService.php',
|
22 |
'WebpConverterVendor\\MattPlugins\\DeactivationModal\\Service\\TemplateGeneratorService' => $baseDir . '/vendor_prefixed/src/Service/TemplateGeneratorService.php',
|
23 |
'WebpConverter\\Action\\ConvertAttachment' => $baseDir . '/src/Action/ConvertAttachment.php',
|
24 |
-
'WebpConverter\\Action\\ConvertDir' => $baseDir . '/src/Action/ConvertDir.php',
|
25 |
'WebpConverter\\Action\\ConvertPaths' => $baseDir . '/src/Action/ConvertPaths.php',
|
26 |
'WebpConverter\\Action\\DeletePaths' => $baseDir . '/src/Action/DeletePaths.php',
|
27 |
'WebpConverter\\Conversion\\Cron\\CronEventGenerator' => $baseDir . '/src/Conversion/Cron/CronEventGenerator.php',
|
@@ -29,7 +28,7 @@ return array(
|
|
29 |
'WebpConverter\\Conversion\\Cron\\CronSchedulesGenerator' => $baseDir . '/src/Conversion/Cron/CronSchedulesGenerator.php',
|
30 |
'WebpConverter\\Conversion\\Cron\\CronStatusManager' => $baseDir . '/src/Conversion/Cron/CronStatusManager.php',
|
31 |
'WebpConverter\\Conversion\\Cron\\CronStatusViewer' => $baseDir . '/src/Conversion/Cron/CronStatusViewer.php',
|
32 |
-
'WebpConverter\\Conversion\\
|
33 |
'WebpConverter\\Conversion\\Directory\\DirectoryAbstract' => $baseDir . '/src/Conversion/Directory/DirectoryAbstract.php',
|
34 |
'WebpConverter\\Conversion\\Directory\\DirectoryFactory' => $baseDir . '/src/Conversion/Directory/DirectoryFactory.php',
|
35 |
'WebpConverter\\Conversion\\Directory\\DirectoryIntegration' => $baseDir . '/src/Conversion/Directory/DirectoryIntegration.php',
|
@@ -40,9 +39,10 @@ return array(
|
|
40 |
'WebpConverter\\Conversion\\Endpoint\\EndpointAbstract' => $baseDir . '/src/Conversion/Endpoint/EndpointAbstract.php',
|
41 |
'WebpConverter\\Conversion\\Endpoint\\EndpointIntegration' => $baseDir . '/src/Conversion/Endpoint/EndpointIntegration.php',
|
42 |
'WebpConverter\\Conversion\\Endpoint\\EndpointInterface' => $baseDir . '/src/Conversion/Endpoint/EndpointInterface.php',
|
43 |
-
'WebpConverter\\Conversion\\Endpoint\\
|
44 |
'WebpConverter\\Conversion\\Endpoint\\PathsEndpoint' => $baseDir . '/src/Conversion/Endpoint/PathsEndpoint.php',
|
45 |
'WebpConverter\\Conversion\\Endpoint\\RegenerateEndpoint' => $baseDir . '/src/Conversion/Endpoint/RegenerateEndpoint.php',
|
|
|
46 |
'WebpConverter\\Conversion\\Format\\AvifFormat' => $baseDir . '/src/Conversion/Format/AvifFormat.php',
|
47 |
'WebpConverter\\Conversion\\Format\\FormatAbstract' => $baseDir . '/src/Conversion/Format/FormatAbstract.php',
|
48 |
'WebpConverter\\Conversion\\Format\\FormatFactory' => $baseDir . '/src/Conversion/Format/FormatFactory.php',
|
21 |
'WebpConverterVendor\\MattPlugins\\DeactivationModal\\Service\\AssetsPrinterService' => $baseDir . '/vendor_prefixed/src/Service/AssetsPrinterService.php',
|
22 |
'WebpConverterVendor\\MattPlugins\\DeactivationModal\\Service\\TemplateGeneratorService' => $baseDir . '/vendor_prefixed/src/Service/TemplateGeneratorService.php',
|
23 |
'WebpConverter\\Action\\ConvertAttachment' => $baseDir . '/src/Action/ConvertAttachment.php',
|
|
|
24 |
'WebpConverter\\Action\\ConvertPaths' => $baseDir . '/src/Action/ConvertPaths.php',
|
25 |
'WebpConverter\\Action\\DeletePaths' => $baseDir . '/src/Action/DeletePaths.php',
|
26 |
'WebpConverter\\Conversion\\Cron\\CronEventGenerator' => $baseDir . '/src/Conversion/Cron/CronEventGenerator.php',
|
28 |
'WebpConverter\\Conversion\\Cron\\CronSchedulesGenerator' => $baseDir . '/src/Conversion/Cron/CronSchedulesGenerator.php',
|
29 |
'WebpConverter\\Conversion\\Cron\\CronStatusManager' => $baseDir . '/src/Conversion/Cron/CronStatusManager.php',
|
30 |
'WebpConverter\\Conversion\\Cron\\CronStatusViewer' => $baseDir . '/src/Conversion/Cron/CronStatusViewer.php',
|
31 |
+
'WebpConverter\\Conversion\\DirectoryFilesFinder' => $baseDir . '/src/Conversion/DirectoryFilesFinder.php',
|
32 |
'WebpConverter\\Conversion\\Directory\\DirectoryAbstract' => $baseDir . '/src/Conversion/Directory/DirectoryAbstract.php',
|
33 |
'WebpConverter\\Conversion\\Directory\\DirectoryFactory' => $baseDir . '/src/Conversion/Directory/DirectoryFactory.php',
|
34 |
'WebpConverter\\Conversion\\Directory\\DirectoryIntegration' => $baseDir . '/src/Conversion/Directory/DirectoryIntegration.php',
|
39 |
'WebpConverter\\Conversion\\Endpoint\\EndpointAbstract' => $baseDir . '/src/Conversion/Endpoint/EndpointAbstract.php',
|
40 |
'WebpConverter\\Conversion\\Endpoint\\EndpointIntegration' => $baseDir . '/src/Conversion/Endpoint/EndpointIntegration.php',
|
41 |
'WebpConverter\\Conversion\\Endpoint\\EndpointInterface' => $baseDir . '/src/Conversion/Endpoint/EndpointInterface.php',
|
42 |
+
'WebpConverter\\Conversion\\Endpoint\\FilesStatsEndpoint' => $baseDir . '/src/Conversion/Endpoint/FilesStatsEndpoint.php',
|
43 |
'WebpConverter\\Conversion\\Endpoint\\PathsEndpoint' => $baseDir . '/src/Conversion/Endpoint/PathsEndpoint.php',
|
44 |
'WebpConverter\\Conversion\\Endpoint\\RegenerateEndpoint' => $baseDir . '/src/Conversion/Endpoint/RegenerateEndpoint.php',
|
45 |
+
'WebpConverter\\Conversion\\FilesTreeFinder' => $baseDir . '/src/Conversion/FilesTreeFinder.php',
|
46 |
'WebpConverter\\Conversion\\Format\\AvifFormat' => $baseDir . '/src/Conversion/Format/AvifFormat.php',
|
47 |
'WebpConverter\\Conversion\\Format\\FormatAbstract' => $baseDir . '/src/Conversion/Format/FormatAbstract.php',
|
48 |
'WebpConverter\\Conversion\\Format\\FormatFactory' => $baseDir . '/src/Conversion/Format/FormatFactory.php',
|
vendor/composer/autoload_static.php
CHANGED
@@ -36,7 +36,6 @@ class ComposerStaticInitba256ecdc5bb5675566d3dd845f3570f
|
|
36 |
'WebpConverterVendor\\MattPlugins\\DeactivationModal\\Service\\AssetsPrinterService' => __DIR__ . '/../..' . '/vendor_prefixed/src/Service/AssetsPrinterService.php',
|
37 |
'WebpConverterVendor\\MattPlugins\\DeactivationModal\\Service\\TemplateGeneratorService' => __DIR__ . '/../..' . '/vendor_prefixed/src/Service/TemplateGeneratorService.php',
|
38 |
'WebpConverter\\Action\\ConvertAttachment' => __DIR__ . '/../..' . '/src/Action/ConvertAttachment.php',
|
39 |
-
'WebpConverter\\Action\\ConvertDir' => __DIR__ . '/../..' . '/src/Action/ConvertDir.php',
|
40 |
'WebpConverter\\Action\\ConvertPaths' => __DIR__ . '/../..' . '/src/Action/ConvertPaths.php',
|
41 |
'WebpConverter\\Action\\DeletePaths' => __DIR__ . '/../..' . '/src/Action/DeletePaths.php',
|
42 |
'WebpConverter\\Conversion\\Cron\\CronEventGenerator' => __DIR__ . '/../..' . '/src/Conversion/Cron/CronEventGenerator.php',
|
@@ -44,7 +43,7 @@ class ComposerStaticInitba256ecdc5bb5675566d3dd845f3570f
|
|
44 |
'WebpConverter\\Conversion\\Cron\\CronSchedulesGenerator' => __DIR__ . '/../..' . '/src/Conversion/Cron/CronSchedulesGenerator.php',
|
45 |
'WebpConverter\\Conversion\\Cron\\CronStatusManager' => __DIR__ . '/../..' . '/src/Conversion/Cron/CronStatusManager.php',
|
46 |
'WebpConverter\\Conversion\\Cron\\CronStatusViewer' => __DIR__ . '/../..' . '/src/Conversion/Cron/CronStatusViewer.php',
|
47 |
-
'WebpConverter\\Conversion\\
|
48 |
'WebpConverter\\Conversion\\Directory\\DirectoryAbstract' => __DIR__ . '/../..' . '/src/Conversion/Directory/DirectoryAbstract.php',
|
49 |
'WebpConverter\\Conversion\\Directory\\DirectoryFactory' => __DIR__ . '/../..' . '/src/Conversion/Directory/DirectoryFactory.php',
|
50 |
'WebpConverter\\Conversion\\Directory\\DirectoryIntegration' => __DIR__ . '/../..' . '/src/Conversion/Directory/DirectoryIntegration.php',
|
@@ -55,9 +54,10 @@ class ComposerStaticInitba256ecdc5bb5675566d3dd845f3570f
|
|
55 |
'WebpConverter\\Conversion\\Endpoint\\EndpointAbstract' => __DIR__ . '/../..' . '/src/Conversion/Endpoint/EndpointAbstract.php',
|
56 |
'WebpConverter\\Conversion\\Endpoint\\EndpointIntegration' => __DIR__ . '/../..' . '/src/Conversion/Endpoint/EndpointIntegration.php',
|
57 |
'WebpConverter\\Conversion\\Endpoint\\EndpointInterface' => __DIR__ . '/../..' . '/src/Conversion/Endpoint/EndpointInterface.php',
|
58 |
-
'WebpConverter\\Conversion\\Endpoint\\
|
59 |
'WebpConverter\\Conversion\\Endpoint\\PathsEndpoint' => __DIR__ . '/../..' . '/src/Conversion/Endpoint/PathsEndpoint.php',
|
60 |
'WebpConverter\\Conversion\\Endpoint\\RegenerateEndpoint' => __DIR__ . '/../..' . '/src/Conversion/Endpoint/RegenerateEndpoint.php',
|
|
|
61 |
'WebpConverter\\Conversion\\Format\\AvifFormat' => __DIR__ . '/../..' . '/src/Conversion/Format/AvifFormat.php',
|
62 |
'WebpConverter\\Conversion\\Format\\FormatAbstract' => __DIR__ . '/../..' . '/src/Conversion/Format/FormatAbstract.php',
|
63 |
'WebpConverter\\Conversion\\Format\\FormatFactory' => __DIR__ . '/../..' . '/src/Conversion/Format/FormatFactory.php',
|
36 |
'WebpConverterVendor\\MattPlugins\\DeactivationModal\\Service\\AssetsPrinterService' => __DIR__ . '/../..' . '/vendor_prefixed/src/Service/AssetsPrinterService.php',
|
37 |
'WebpConverterVendor\\MattPlugins\\DeactivationModal\\Service\\TemplateGeneratorService' => __DIR__ . '/../..' . '/vendor_prefixed/src/Service/TemplateGeneratorService.php',
|
38 |
'WebpConverter\\Action\\ConvertAttachment' => __DIR__ . '/../..' . '/src/Action/ConvertAttachment.php',
|
|
|
39 |
'WebpConverter\\Action\\ConvertPaths' => __DIR__ . '/../..' . '/src/Action/ConvertPaths.php',
|
40 |
'WebpConverter\\Action\\DeletePaths' => __DIR__ . '/../..' . '/src/Action/DeletePaths.php',
|
41 |
'WebpConverter\\Conversion\\Cron\\CronEventGenerator' => __DIR__ . '/../..' . '/src/Conversion/Cron/CronEventGenerator.php',
|
43 |
'WebpConverter\\Conversion\\Cron\\CronSchedulesGenerator' => __DIR__ . '/../..' . '/src/Conversion/Cron/CronSchedulesGenerator.php',
|
44 |
'WebpConverter\\Conversion\\Cron\\CronStatusManager' => __DIR__ . '/../..' . '/src/Conversion/Cron/CronStatusManager.php',
|
45 |
'WebpConverter\\Conversion\\Cron\\CronStatusViewer' => __DIR__ . '/../..' . '/src/Conversion/Cron/CronStatusViewer.php',
|
46 |
+
'WebpConverter\\Conversion\\DirectoryFilesFinder' => __DIR__ . '/../..' . '/src/Conversion/DirectoryFilesFinder.php',
|
47 |
'WebpConverter\\Conversion\\Directory\\DirectoryAbstract' => __DIR__ . '/../..' . '/src/Conversion/Directory/DirectoryAbstract.php',
|
48 |
'WebpConverter\\Conversion\\Directory\\DirectoryFactory' => __DIR__ . '/../..' . '/src/Conversion/Directory/DirectoryFactory.php',
|
49 |
'WebpConverter\\Conversion\\Directory\\DirectoryIntegration' => __DIR__ . '/../..' . '/src/Conversion/Directory/DirectoryIntegration.php',
|
54 |
'WebpConverter\\Conversion\\Endpoint\\EndpointAbstract' => __DIR__ . '/../..' . '/src/Conversion/Endpoint/EndpointAbstract.php',
|
55 |
'WebpConverter\\Conversion\\Endpoint\\EndpointIntegration' => __DIR__ . '/../..' . '/src/Conversion/Endpoint/EndpointIntegration.php',
|
56 |
'WebpConverter\\Conversion\\Endpoint\\EndpointInterface' => __DIR__ . '/../..' . '/src/Conversion/Endpoint/EndpointInterface.php',
|
57 |
+
'WebpConverter\\Conversion\\Endpoint\\FilesStatsEndpoint' => __DIR__ . '/../..' . '/src/Conversion/Endpoint/FilesStatsEndpoint.php',
|
58 |
'WebpConverter\\Conversion\\Endpoint\\PathsEndpoint' => __DIR__ . '/../..' . '/src/Conversion/Endpoint/PathsEndpoint.php',
|
59 |
'WebpConverter\\Conversion\\Endpoint\\RegenerateEndpoint' => __DIR__ . '/../..' . '/src/Conversion/Endpoint/RegenerateEndpoint.php',
|
60 |
+
'WebpConverter\\Conversion\\FilesTreeFinder' => __DIR__ . '/../..' . '/src/Conversion/FilesTreeFinder.php',
|
61 |
'WebpConverter\\Conversion\\Format\\AvifFormat' => __DIR__ . '/../..' . '/src/Conversion/Format/AvifFormat.php',
|
62 |
'WebpConverter\\Conversion\\Format\\FormatAbstract' => __DIR__ . '/../..' . '/src/Conversion/Format/FormatAbstract.php',
|
63 |
'WebpConverter\\Conversion\\Format\\FormatFactory' => __DIR__ . '/../..' . '/src/Conversion/Format/FormatFactory.php',
|
vendor/composer/installed.php
CHANGED
@@ -5,7 +5,7 @@
|
|
5 |
'type' => 'library',
|
6 |
'install_path' => __DIR__ . '/../../',
|
7 |
'aliases' => array(),
|
8 |
-
'reference' => '
|
9 |
'name' => 'gbiorczyk/webp-converter-for-media',
|
10 |
'dev' => false,
|
11 |
),
|
@@ -16,7 +16,7 @@
|
|
16 |
'type' => 'library',
|
17 |
'install_path' => __DIR__ . '/../../',
|
18 |
'aliases' => array(),
|
19 |
-
'reference' => '
|
20 |
'dev_requirement' => false,
|
21 |
),
|
22 |
'matt-plugins/deactivation-modal' => array(
|
5 |
'type' => 'library',
|
6 |
'install_path' => __DIR__ . '/../../',
|
7 |
'aliases' => array(),
|
8 |
+
'reference' => '149b220cf7ca74f1d8d92d16400ee98612b1f8b0',
|
9 |
'name' => 'gbiorczyk/webp-converter-for-media',
|
10 |
'dev' => false,
|
11 |
),
|
16 |
'type' => 'library',
|
17 |
'install_path' => __DIR__ . '/../../',
|
18 |
'aliases' => array(),
|
19 |
+
'reference' => '149b220cf7ca74f1d8d92d16400ee98612b1f8b0',
|
20 |
'dev_requirement' => false,
|
21 |
),
|
22 |
'matt-plugins/deactivation-modal' => array(
|
webp-converter-for-media.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
/**
|
4 |
* Plugin Name: Converter for Media
|
5 |
* Description: Speed up your website by using our WebP & AVIF Converter (formerly WebP Converter for Media). Serve WebP and AVIF images instead of standard formats JPEG, PNG and GIF just now!
|
6 |
-
* Version: 5.
|
7 |
* Author: Image Optimization Team by matt plugins
|
8 |
* Author URI: https://url.mattplugins.com/converter-plugin-author-link
|
9 |
* Text Domain: webp-converter-for-media
|
@@ -13,5 +13,5 @@
|
|
13 |
require_once __DIR__ . '/vendor/autoload.php';
|
14 |
|
15 |
new WebpConverter\WebpConverter(
|
16 |
-
new WebpConverter\PluginInfo( __FILE__, '5.
|
17 |
);
|
3 |
/**
|
4 |
* Plugin Name: Converter for Media
|
5 |
* Description: Speed up your website by using our WebP & AVIF Converter (formerly WebP Converter for Media). Serve WebP and AVIF images instead of standard formats JPEG, PNG and GIF just now!
|
6 |
+
* Version: 5.3.0
|
7 |
* Author: Image Optimization Team by matt plugins
|
8 |
* Author URI: https://url.mattplugins.com/converter-plugin-author-link
|
9 |
* Text Domain: webp-converter-for-media
|
13 |
require_once __DIR__ . '/vendor/autoload.php';
|
14 |
|
15 |
new WebpConverter\WebpConverter(
|
16 |
+
new WebpConverter\PluginInfo( __FILE__, '5.3.0' )
|
17 |
);
|