WebP Express - Version 0.21.0

Version Description

(released: 25 Oct 2021) * Added image browser (in Media tab) * Updated webp convert library to 2.7.0. * ImageMagick now supports the "near-lossless" option (provided Imagick >

Download this release

Release Info

Developer rosell.dk
Plugin Icon 128x128 WebP Express
Version 0.21.0
Comparing to
See all releases

Code changes from version 0.20.1 to 0.21.0

Files changed (72) hide show
  1. README.md +2 -1
  2. README.txt +25 -9
  3. changelog.txt +14 -0
  4. composer.json +3 -2
  5. docs/publishing.md +149 -0
  6. lib/classes/AdminUi.php +1 -2
  7. lib/classes/AlterHtmlHelper.php +3 -2
  8. lib/classes/Convert.php +14 -0
  9. lib/classes/ConvertHelperIndependent.php +2 -2
  10. lib/classes/Destination.php +208 -0
  11. lib/classes/DestinationOptions.php +42 -0
  12. lib/classes/DestinationUrl.php +229 -0
  13. lib/classes/FileHelper.php +6 -1
  14. lib/classes/ImageRoot.php +3 -0
  15. lib/classes/Paths.php +66 -1
  16. lib/classes/PluginDeactivate.php +1 -1
  17. lib/classes/WCFMApi.php +110 -19
  18. lib/classes/WCFMPage.php +28 -7
  19. lib/options/submit.php +1 -1
  20. lib/wcfm/style.css +1 -1
  21. lib/wcfm/vendor.b4e4e155.js +16 -0
  22. lib/wcfm/wcfm-options.js +31 -5
  23. lib/wcfm/wcfm.js +27 -1
  24. vendor/composer/ClassLoader.php +102 -11
  25. vendor/composer/InstalledVersions.php +326 -352
  26. vendor/composer/autoload_classmap.php +2 -0
  27. vendor/composer/autoload_static.php +2 -0
  28. vendor/composer/installed.json +57 -31
  29. vendor/composer/installed.php +86 -99
  30. vendor/composer/installers/composer.json +1 -0
  31. vendor/composer/installers/src/Composer/Installers/CakePHPInstaller.php +1 -0
  32. vendor/composer/installers/src/Composer/Installers/Installer.php +1 -0
  33. vendor/composer/installers/src/Composer/Installers/PantheonInstaller.php +12 -0
  34. vendor/rosell-dk/dom-util-for-webp/README.md +2 -2
  35. vendor/rosell-dk/dom-util-for-webp/composer.json +5 -9
  36. vendor/rosell-dk/dom-util-for-webp/docs/development.md +43 -0
  37. vendor/rosell-dk/dom-util-for-webp/phpunit-41.xml.dist +38 -0
  38. vendor/rosell-dk/dom-util-for-webp/phpunit.xml.dist +25 -38
  39. vendor/rosell-dk/dom-util-for-webp/src/ImageUrlReplacer.php +4 -4
  40. vendor/rosell-dk/dom-util-for-webp/src/PictureTags.php +51 -4
  41. vendor/rosell-dk/image-mime-type-guesser/.circleci/config.yml +76 -0
  42. vendor/rosell-dk/image-mime-type-guesser/README.md +5 -7
  43. vendor/rosell-dk/image-mime-type-guesser/composer.json +3 -2
  44. vendor/rosell-dk/image-mime-type-guesser/src/Detectors/ExifImageType.php +4 -1
  45. vendor/rosell-dk/image-mime-type-guesser/src/Detectors/FInfo.php +12 -6
  46. vendor/rosell-dk/image-mime-type-guesser/src/Detectors/MimeContentType.php +5 -0
  47. vendor/rosell-dk/image-mime-type-guesser/src/Detectors/Stack.php +2 -2
  48. vendor/rosell-dk/webp-convert/README.md +19 -14
  49. vendor/rosell-dk/webp-convert/src/Convert/Converters/AbstractConverter.php +1 -1
  50. vendor/rosell-dk/webp-convert/src/Convert/Converters/BaseTraits/OptionsTrait.php +331 -28
  51. vendor/rosell-dk/webp-convert/src/Convert/Converters/Cwebp.php +115 -20
  52. vendor/rosell-dk/webp-convert/src/Convert/Converters/Ewww.php +27 -4
  53. vendor/rosell-dk/webp-convert/src/Convert/Converters/FFMpeg.php +1 -0
  54. vendor/rosell-dk/webp-convert/src/Convert/Converters/Gd.php +45 -29
  55. vendor/rosell-dk/webp-convert/src/Convert/Converters/Gmagick.php +1 -1
  56. vendor/rosell-dk/webp-convert/src/Convert/Converters/GraphicsMagick.php +2 -3
  57. vendor/rosell-dk/webp-convert/src/Convert/Converters/ImageMagick.php +79 -9
  58. vendor/rosell-dk/webp-convert/src/Convert/Converters/Imagick.php +32 -3
  59. vendor/rosell-dk/webp-convert/src/Options/ArrayOption.php +3 -3
  60. vendor/rosell-dk/webp-convert/src/Options/BooleanOption.php +1 -1
  61. vendor/rosell-dk/webp-convert/src/Options/IntegerOption.php +10 -2
  62. vendor/rosell-dk/webp-convert/src/Options/IntegerOrNullOption.php +7 -1
  63. vendor/rosell-dk/webp-convert/src/Options/MetadataOption.php +1 -1
  64. vendor/rosell-dk/webp-convert/src/Options/Option.php +77 -9
  65. vendor/rosell-dk/webp-convert/src/Options/OptionFactory.php +92 -0
  66. vendor/rosell-dk/webp-convert/src/Options/Options.php +27 -2
  67. vendor/rosell-dk/webp-convert/src/Options/QualityOption.php +2 -2
  68. vendor/rosell-dk/webp-convert/src/Options/SensitiveArrayOption.php +7 -0
  69. vendor/rosell-dk/webp-convert/src/Options/SensitiveStringOption.php +9 -2
  70. vendor/rosell-dk/webp-convert/src/Options/StringOption.php +16 -6
  71. vendor/rosell-dk/webp-convert/src/WebPConvert.php +62 -6
  72. webp-express.php +1 -1
README.md CHANGED
@@ -29,13 +29,14 @@ The plugin implements the "WebP On Demand" solution described [here](https://git
29
  - [DOM Util for WebP](https://github.com/rosell-dk/dom-util-for-webp): For the Alter HTML functionality
30
  - [Image MimeType Guesser](https://github.com/rosell-dk/image-mime-type-guesser): For detecting mime types of images.
31
  - [HTAccess Capability Tester](https://github.com/rosell-dk/htaccess-capability-tester): For testing .htaccess capabilities in a given directory, using live tests
 
32
 
33
  ### Benefits
34
  - Much faster load time for images in browsers that supports webp. The converted images are typically *less than half the size* (for jpeg), while maintaining the same quality. Bear in mind that for most web sites, images are responsible for the largest part of the waiting time.
35
  - Better user experience (whether performance goes from terrible to bad, or from good to impressive, it is a benefit).
36
  - Better ranking in Google searches (performance is taken into account by Google).
37
  - Less bandwidth consumption - makes a huge difference in the parts of the world where the internet is slow and costly (you know, ~80% of the world population lives under these circumstances).
38
- - Currently ~94% of all traffic, and ~96% of mobile browsing traffic are done with browsers supporting webp. Check current numbers on [caniuse.com](https://caniuse.com/webp).
39
  - It's great for the environment too! Reducing network traffic reduces electricity consumption which reduces CO2 emissions.
40
 
41
  ## Installation
29
  - [DOM Util for WebP](https://github.com/rosell-dk/dom-util-for-webp): For the Alter HTML functionality
30
  - [Image MimeType Guesser](https://github.com/rosell-dk/image-mime-type-guesser): For detecting mime types of images.
31
  - [HTAccess Capability Tester](https://github.com/rosell-dk/htaccess-capability-tester): For testing .htaccess capabilities in a given directory, using live tests
32
+ - [WebP Convert File Manager](https://github.com/rosell-dk/webp-convert-filemanager): For browsing conversions (planned feature: triggering conversions).
33
 
34
  ### Benefits
35
  - Much faster load time for images in browsers that supports webp. The converted images are typically *less than half the size* (for jpeg), while maintaining the same quality. Bear in mind that for most web sites, images are responsible for the largest part of the waiting time.
36
  - Better user experience (whether performance goes from terrible to bad, or from good to impressive, it is a benefit).
37
  - Better ranking in Google searches (performance is taken into account by Google).
38
  - Less bandwidth consumption - makes a huge difference in the parts of the world where the internet is slow and costly (you know, ~80% of the world population lives under these circumstances).
39
+ - Currently ~95% of all traffic, and ~96% of mobile browsing traffic are done with browsers supporting webp. Check current numbers on [caniuse.com](https://caniuse.com/webp).
40
  - It's great for the environment too! Reducing network traffic reduces electricity consumption which reduces CO2 emissions.
41
 
42
  ## Installation
README.txt CHANGED
@@ -4,7 +4,7 @@ Donate link: https://ko-fi.com/rosell
4
  Tags: webp, images, performance
5
  Requires at least: 4.0
6
  Tested up to: 5.8
7
- Stable tag: 0.20.1
8
  Requires PHP: 5.6
9
  License: GPLv3
10
  License URI: https://www.gnu.org/licenses/gpl-3.0.html
@@ -29,18 +29,19 @@ The plugin supports different ways of delivering webps to browsers that supports
29
  5. You can also deliver webp to *all* browsers and add the [webpjs](http://webpjs.appspot.com) javascript, which provides webp support for browsers that doesn't support webp natively. However, beware that the javascript doesn't support srcset attributes, which is why I haven't added that method to the plugin (yet).
30
 
31
  The plugin implements the "WebP On Demand" solution described [here](https://github.com/rosell-dk/webp-convert/blob/master/docs/v2.0/webp-on-demand/webp-on-demand.md) and builds on a bunch of open source libraries (all maintained by me):
32
- - [WebPConvert](https://github.com/rosell-dk/webp-convert): For converting images to webp
33
  - [WebP Convert Cloud Service](https://github.com/rosell-dk/webp-convert-cloud-service): For the Web Service functionality
34
  - [DOM Util for WebP](https://github.com/rosell-dk/dom-util-for-webp): For the Alter HTML functionality
35
  - [Image MimeType Guesser](https://github.com/rosell-dk/image-mime-type-guesser): For detecting mime types of images.
36
  - [HTAccess Capability Tester](https://github.com/rosell-dk/htaccess-capability-tester): For testing .htaccess capabilities in a given directory, using live tests
 
37
 
38
  ### Benefits
39
  - Much faster load time for images in browsers that supports webp. The converted images are typically *less than half the size* (for jpeg), while maintaining the same quality. Bear in mind that for most web sites, images are responsible for the largest part of the waiting time.
40
  - Better user experience (whether performance goes from terrible to bad, or from good to impressive, it is a benefit).
41
  - Better ranking in Google searches (performance is taken into account by Google).
42
  - Less bandwidth consumption - makes a huge difference in the parts of the world where the internet is slow and costly (you know, ~80% of the world population lives under these circumstances).
43
- - Currently ~94% of all traffic, and ~96% of mobile browsing traffic are done with browsers supporting webp. Check current numbers on [caniuse.com](https://caniuse.com/webp).
44
  - It's great for the environment too! Reducing network traffic reduces electricity consumption which reduces CO2 emissions.
45
 
46
  == Installation ==
@@ -174,9 +175,10 @@ Bread on the table don't come for free, even though this plugin does, and always
174
  * Ruben Solvang
175
 
176
  **Persons who recently contributed with [ko-fi](https://ko-fi.com/rosell) - Thanks!**
 
 
 
177
  * 8 Jul: Raj
178
- * 18 Jun: Jerry Simmons
179
- * 17 Jun: Erica Dreisbach
180
 
181
  **Persons who contributed with extra generously amounts of coffee / lifetime backing (>30$) - thanks!:**
182
 
@@ -188,6 +190,7 @@ Bread on the table don't come for free, even though this plugin does, and always
188
  * Steven Sullivan ($51)
189
  * Mathieu Gollain-Dupont ($50)
190
  * Erica Dreisbach ($50)
 
191
 
192
  == Frequently Asked Questions ==
193
 
@@ -772,6 +775,20 @@ If you want to make sure that my coffee supplies don't run dry, you can even buy
772
 
773
  == Changelog ==
774
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
775
  = 0.20.1 =
776
  *(released: 20 Jun 2021)*
777
  * Bugfix: Removed composer.lock. It was locked on PHP 7.2, which caused server error on some sites (only some sites with old php were affected). Also deleted the library which required PHP 7.2 (onnov/detect-encoding/). The functionality is not really needed.
@@ -786,14 +803,13 @@ If you want to make sure that my coffee supplies don't run dry, you can even buy
786
 
787
  For more info, see the closed issues on the [0.20.0 milestone on the github repository](https://github.com/rosell-dk/webp-express/milestone/38?closed=1)
788
 
789
- = 0.19.1 =
790
- *(released: 03 May 2021)*
791
- * Bugfix for PHP 8.0 - fread() does not permit second argument to be 0. Thanks to @trition for reporting and fixing this bug.
792
-
793
  For older releases, check out changelog.txt
794
 
795
  == Upgrade Notice ==
796
 
 
 
 
797
  = 0.20.1 =
798
  * Bugfix for PHP 7.1 and below
799
 
4
  Tags: webp, images, performance
5
  Requires at least: 4.0
6
  Tested up to: 5.8
7
+ Stable tag: 0.21.0
8
  Requires PHP: 5.6
9
  License: GPLv3
10
  License URI: https://www.gnu.org/licenses/gpl-3.0.html
29
  5. You can also deliver webp to *all* browsers and add the [webpjs](http://webpjs.appspot.com) javascript, which provides webp support for browsers that doesn't support webp natively. However, beware that the javascript doesn't support srcset attributes, which is why I haven't added that method to the plugin (yet).
30
 
31
  The plugin implements the "WebP On Demand" solution described [here](https://github.com/rosell-dk/webp-convert/blob/master/docs/v2.0/webp-on-demand/webp-on-demand.md) and builds on a bunch of open source libraries (all maintained by me):
32
+ - [WebP Convert](https://github.com/rosell-dk/webp-convert): For converting images to webp
33
  - [WebP Convert Cloud Service](https://github.com/rosell-dk/webp-convert-cloud-service): For the Web Service functionality
34
  - [DOM Util for WebP](https://github.com/rosell-dk/dom-util-for-webp): For the Alter HTML functionality
35
  - [Image MimeType Guesser](https://github.com/rosell-dk/image-mime-type-guesser): For detecting mime types of images.
36
  - [HTAccess Capability Tester](https://github.com/rosell-dk/htaccess-capability-tester): For testing .htaccess capabilities in a given directory, using live tests
37
+ - [WebP Convert File Manager](https://github.com/rosell-dk/webp-convert-filemanager): For browsing conversions (planned feature: triggering conversions).
38
 
39
  ### Benefits
40
  - Much faster load time for images in browsers that supports webp. The converted images are typically *less than half the size* (for jpeg), while maintaining the same quality. Bear in mind that for most web sites, images are responsible for the largest part of the waiting time.
41
  - Better user experience (whether performance goes from terrible to bad, or from good to impressive, it is a benefit).
42
  - Better ranking in Google searches (performance is taken into account by Google).
43
  - Less bandwidth consumption - makes a huge difference in the parts of the world where the internet is slow and costly (you know, ~80% of the world population lives under these circumstances).
44
+ - Currently ~95% of all traffic, and ~96% of mobile browsing traffic are done with browsers supporting webp. Check current numbers on [caniuse.com](https://caniuse.com/webp).
45
  - It's great for the environment too! Reducing network traffic reduces electricity consumption which reduces CO2 emissions.
46
 
47
  == Installation ==
175
  * Ruben Solvang
176
 
177
  **Persons who recently contributed with [ko-fi](https://ko-fi.com/rosell) - Thanks!**
178
+ * 29 Aug: Pawa Tecnologia
179
+ * 29 Jul: Brian Laursen
180
+ * 24 Jul: Hans Konings
181
  * 8 Jul: Raj
 
 
182
 
183
  **Persons who contributed with extra generously amounts of coffee / lifetime backing (>30$) - thanks!:**
184
 
190
  * Steven Sullivan ($51)
191
  * Mathieu Gollain-Dupont ($50)
192
  * Erica Dreisbach ($50)
193
+ * Brian Laursen ($50)
194
 
195
  == Frequently Asked Questions ==
196
 
775
 
776
  == Changelog ==
777
 
778
+ = 0.21.0 =
779
+ *(released: 25 Oct 2021)*
780
+ * Added image browser (in Media tab)
781
+ * Updated webp convert library to 2.7.0.
782
+ * ImageMagick now supports the "near-lossless" option (provided Imagick >= 7.0.10-54)
783
+ * Added "try-common-system-paths" option for ImageMagick (default: true). Thanks to Henrik Alves for adding this option.
784
+ * Bugfix: Handling Uncaught Fatal Exception during .htaccess read failure. Thanks to Manuel D'Orso from Italy for the fix.
785
+ * Bugfix: File names which were not UTF8 caused trouble in the Bulk Convert. Thank to "mills4078" for the fix
786
+ * Bugfix: Redirection back to settings after saving settings failed on some systems. Thanks to Martin Rehberger (@kingkero) from Germany for the fix.
787
+ * Bugfix: Webp urls did not contain port number (only relevant when the website was not on default port number). Thanks to Nicolas LIENART (@nicolnt) from France for providing the fix.
788
+
789
+ For more info, see the closed issues on the [webp-express 0.21.0 milestone](https://github.com/rosell-dk/webp-express/milestone/41?closed=1) and the
790
+ [webp-convert 2.7.0 milestone](https://github.com/rosell-dk/webp-convert/milestone/24?closed=1)
791
+
792
  = 0.20.1 =
793
  *(released: 20 Jun 2021)*
794
  * Bugfix: Removed composer.lock. It was locked on PHP 7.2, which caused server error on some sites (only some sites with old php were affected). Also deleted the library which required PHP 7.2 (onnov/detect-encoding/). The functionality is not really needed.
803
 
804
  For more info, see the closed issues on the [0.20.0 milestone on the github repository](https://github.com/rosell-dk/webp-express/milestone/38?closed=1)
805
 
 
 
 
 
806
  For older releases, check out changelog.txt
807
 
808
  == Upgrade Notice ==
809
 
810
+ = 0.21.0 =
811
+ * Image browser and various bug fixes
812
+
813
  = 0.20.1 =
814
  * Bugfix for PHP 7.1 and below
815
 
changelog.txt CHANGED
@@ -1,3 +1,17 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  = 0.20.1 =
2
  *(released: 20 Jun 2021)*
3
  * Bugfix: Removed composer.lock. It was locked on PHP 7.2, which caused server error on some sites (only some sites with old php were affected). Also deleted the library which required PHP 7.2 (onnov/detect-encoding/). The functionality is not really needed.
1
+ = 0.21.0 =
2
+ *(released: 25 Oct 2021)*
3
+ * Added image browser (in Media tab)
4
+ * Updated webp convert library to 2.7.0.
5
+ * ImageMagick now supports the "near-lossless" option (provided Imagick >= 7.0.10-54)
6
+ * Added "try-common-system-paths" option for ImageMagick (default: true). Thanks to Henrik Alves for adding this option.
7
+ * Bugfix: Handling Uncaught Fatal Exception during .htaccess read failure. Thanks to Manuel D'Orso from Italy for the fix.
8
+ * Bugfix: File names which were not UTF8 caused trouble in the Bulk Convert. Thank to "mills4078" for the fix
9
+ * Bugfix: Redirection back to settings after saving settings failed on some systems. Thanks to Martin Rehberger (@kingkero) from Germany for the fix.
10
+ * Bugfix: Webp urls did not contain port number (only relevant when the website was not on default port number). Thanks to Nicolas LIENART (@nicolnt) from France for providing the fix.
11
+
12
+ For more info, see the closed issues on the [webp-express 0.21.0 milestone](https://github.com/rosell-dk/webp-express/milestone/41?closed=1) and the
13
+ [webp-convert 2.7.0 milestone](https://github.com/rosell-dk/webp-convert/milestone/24?closed=1)
14
+
15
  = 0.20.1 =
16
  *(released: 20 Jun 2021)*
17
  * Bugfix: Removed composer.lock. It was locked on PHP 7.2, which caused server error on some sites (only some sites with old php were affected). Also deleted the library which required PHP 7.2 (onnov/detect-encoding/). The functionality is not really needed.
composer.json CHANGED
@@ -5,7 +5,7 @@
5
  "license": "MIT",
6
  "require": {
7
  "composer/installers": "^1.0.0",
8
- "rosell-dk/webp-convert": "^2.4.0",
9
  "rosell-dk/webp-convert-cloud-service": "^2.0.0",
10
  "rosell-dk/dom-util-for-webp": "^0.4.0",
11
  "rosell-dk/htaccess-capability-tester": "^0.9.0"
@@ -15,7 +15,8 @@
15
  "scripts": {
16
  "ci": [
17
  "@composer validate --no-check-all --strict"
18
- ]
 
19
  },
20
  "authors": [
21
  {
5
  "license": "MIT",
6
  "require": {
7
  "composer/installers": "^1.0.0",
8
+ "rosell-dk/webp-convert": "^2.7.0",
9
  "rosell-dk/webp-convert-cloud-service": "^2.0.0",
10
  "rosell-dk/dom-util-for-webp": "^0.4.0",
11
  "rosell-dk/htaccess-capability-tester": "^0.9.0"
15
  "scripts": {
16
  "ci": [
17
  "@composer validate --no-check-all --strict"
18
+ ],
19
+ "copylocalwebpconvert": "rsync -varz /home/rosell/github/webp-convert/src/ /home/rosell/github/webp-express/vendor/rosell-dk/webp-convert/src/"
20
  },
21
  "authors": [
22
  {
docs/publishing.md ADDED
@@ -0,0 +1,149 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ *These instructions are actually just notes for myself*. Some commands work only in my environment.
2
+
3
+ If it is only the README.txt that has been changed:
4
+
5
+ 1. Validate the readme: https://wordpress.org/plugins/developers/readme-validator/
6
+ 2. Update the tag below to current
7
+ 3. Update the commit message below
8
+ 4. Run the below
9
+ ```
10
+ cd /var/www/we/svn/
11
+ cp ~/github/webp-express/README.txt trunk
12
+ cp ~/github/webp-express/README.txt tags/0.20.1
13
+ svn status
14
+ svn ci -m 'minor change in README (now tested with Wordpress 5.8 RC2)'
15
+ ```
16
+
17
+ After that, check out if it is applied, on http://plugins.svn.wordpress.org/webp-express/
18
+
19
+ and here:
20
+ https://wordpress.org/plugins/webp-express/
21
+
22
+ 'changelog.txt' changed too?
23
+ WELL - DON'T PUBLISH THAT, without publishing a new release. Wordfence will complain!
24
+
25
+ -------------------
26
+
27
+
28
+
29
+
30
+
31
+ before rsync, do this:
32
+
33
+ - Run `composer update` in plugin root (and remove unneeded files. Check development.md !)
34
+ 1. `composer update`
35
+ 2. `composer dump-autoload -o`
36
+ 3.
37
+ rm -r vendor/rosell-dk/webp-convert/docs
38
+ rm -r vendor/rosell-dk/webp-convert/src/Helpers/*.txt
39
+ rm vendor/rosell-dk/dom-util-for-webp/phpstan.neon
40
+ rm composer.lock
41
+ rmdir vendor/bin
42
+
43
+ - Make sure you remembered to update version in:
44
+ 1. the *webp-express.php* file
45
+ 2. in `lib/options/enqueue_scripts.php`
46
+ 3. in `lib/classes/ConverterHelperIndependent.php`
47
+ 4. in `README.txt` (Stable tag)
48
+ - Perhaps make some final improvements of the readme.
49
+ Inspiration: https://www.smashingmagazine.com/2011/11/improve-wordpress-plugins-readme-txt/
50
+ https://pippinsplugins.com/how-to-properly-format-and-enhance-your-plugins-readme-txt-file-for-the-wordpress-org-repository/
51
+ - Make sure you upgraded the *Upgrade Notice* section.
52
+ - Skim: https://codex.wordpress.org/Writing_a_Plugin
53
+ - https://developer.wordpress.org/plugins/wordpress-org/
54
+ - Validate the readme: https://wordpress.org/plugins/developers/readme-validator/
55
+ - Make sure you have pushed the latest commits to github
56
+ - Make sure you have released the new version on github
57
+
58
+ And then:
59
+
60
+ ```
61
+ cd /var/www/we/svn
62
+ svn up
63
+ ```
64
+
65
+ If you have deleted folders (check with rsync --dry-run), then do this:
66
+ ```
67
+ cd trunk
68
+ svn delete [folder] (ie: svn delete lib/options/js/0.14.5). It is ok that the folder contains files
69
+ svn ci -m 'deleted folder'
70
+ ```
71
+ (workflow cycle: http://svnbook.red-bean.com/en/1.7/svn.tour.cycle.html)
72
+
73
+ Then time to rsync into trunk:
74
+ dry-run first:
75
+ ```
76
+ cd /var/www/we/svn
77
+ rsync -avh --dry-run --exclude '.git' --exclude '.github' --exclude='composer.lock' --exclude='scripts' --exclude='vendor/rosell-dk/webp-convert/.git' --exclude='vendor/rosell-dk/webp-convert/.git' --exclude='.gitignore' ~/github/webp-express/ /var/www/we/svn/trunk/ --delete
78
+ ```
79
+
80
+ ```
81
+ cd /var/www/we/svn
82
+ rsync -avh --exclude '.git' --exclude '.github' --exclude='composer.lock' --exclude='scripts' --exclude='vendor/rosell-dk/webp-convert/.git' --exclude='.gitignore' ~/github/webp-express/ /var/www/we/svn/trunk/ --delete
83
+ ```
84
+
85
+ **It should NOT contain a long list of files! (unless you have run phpreplace)**
86
+
87
+ *- and then WITHOUT "--dry-run" (remove "--dry-run" from above, and run)*
88
+
89
+
90
+ ## TESTING
91
+
92
+ 1. Create a zip
93
+ - Select all the files in trunk (not the trunk dir itself)
94
+ - Save it to /var/www/we/pre-releases/version-number/webp-express.zip
95
+ 2. Upload the zip to the LiteSpeed test site and test
96
+ - Login to https://betasite.com.br/rosell/wp-admin/plugins.php
97
+ - Go to Plugins | Add new and click the "Upload Plugin button"
98
+ 3. Upload the zip to other sites and test
99
+ - https://lutzenmanagement.dk/wp-admin/plugin-install.php
100
+ - http://mystress.dk/wp-admin/plugin-install.php
101
+ ... etc
102
+
103
+
104
+ ### Committing
105
+ Add new and remove deleted (no need to do anything with the modified):
106
+ ```
107
+ cd svn
108
+ svn stat (to see what has changed)
109
+ svn add --force . (this will add all new files - https://stackoverflow.com/questions/2120844/how-do-i-add-all-new-files-to-svn)
110
+ svn status | grep '^!' (to see if any files have been deleted)
111
+ svn status | grep '^!' | awk '{print $2}' | xargs svn delete --force (this will delete locally deleted files in the repository as well - see https://stackoverflow.com/questions/4608798/how-to-remove-all-deleted-files-from-repository/33139931)
112
+ ```
113
+
114
+ Then add a new tag
115
+ ```
116
+ cd svn
117
+ svn cp trunk tags/0.20.1 (this will copy trunk into a new tag)
118
+ ```
119
+
120
+ And commit!
121
+ ```
122
+ svn ci -m '0.20.1'
123
+ ```
124
+
125
+
126
+ After that, check out if it is applied, on http://plugins.svn.wordpress.org/webp-express/
127
+ And then, of course, test the update
128
+ ... And THEN. Grab a beer and celebrate!
129
+
130
+ And lastly, check if there are any new issues on https://coderisk.com
131
+
132
+
133
+ # New:
134
+
135
+ # svn co https://plugins.svn.wordpress.org/webp-express /var/www/webp-express-tests/svn
136
+
137
+
138
+ BTW: Link til referral (optimole): https://app.impact.com/
139
+
140
+
141
+
142
+ # On brand new system:
143
+
144
+ 1. Install svn
145
+ `sudo apt-get install subversion`
146
+
147
+ 2. create dir for plugin, and `cd` into it
148
+ 3. Check out
149
+ `svn co https://plugins.svn.wordpress.org/webp-express my-local-dir` (if in dir, replace "my-lockal-dir" with ".")
lib/classes/AdminUi.php CHANGED
@@ -74,7 +74,6 @@ class AdminUi
74
  );
75
 
76
  // Add Media page
77
- /* Uncommented until ready!
78
  add_media_page(
79
  'WebP Express', //Page Title
80
  'WebP Express', //Menu Title
@@ -82,6 +81,6 @@ class AdminUi
82
  'webp_express_conversion_page', // slug
83
  array('\WebPExpress\WCFMPage', 'display') //The function to be called to output the content for this page.
84
  );
85
- */
86
  }
87
  }
74
  );
75
 
76
  // Add Media page
 
77
  add_media_page(
78
  'WebP Express', //Page Title
79
  'WebP Express', //Menu Title
81
  'webp_express_conversion_page', // slug
82
  array('\WebPExpress\WCFMPage', 'display') //The function to be called to output the content for this page.
83
  );
84
+
85
  }
86
  }
lib/classes/AlterHtmlHelper.php CHANGED
@@ -221,7 +221,8 @@ class AlterHtmlHelper
221
  // Fix scheme (use same as source)
222
  $sourceUrlComponents = parse_url($sourceUrl);
223
  $destUrlComponents = parse_url($destUrl);
224
- return $sourceUrlComponents['scheme'] . '://' . $sourceUrlComponents['host'] . $destUrlComponents['path'];
 
225
  }
226
 
227
 
@@ -241,7 +242,7 @@ class AlterHtmlHelper
241
  if (self::$options['only-for-webp-enabled-browsers']) {
242
  if (!isset($_SERVER['HTTP_ACCEPT']) || (strpos($_SERVER['HTTP_ACCEPT'], 'image/webp') === false)) {
243
  return $returnValueOnFail;
244
- }
245
  }
246
 
247
  // Fail for relative urls. Wordpress doesn't use such very much anyway
221
  // Fix scheme (use same as source)
222
  $sourceUrlComponents = parse_url($sourceUrl);
223
  $destUrlComponents = parse_url($destUrl);
224
+ $port = isset($sourceUrlComponents['port']) ? ":" . $sourceUrlComponents['port'] : "";
225
+ return $sourceUrlComponents['scheme'] . '://' . $sourceUrlComponents['host'] . $port . $destUrlComponents['path'];
226
  }
227
 
228
 
242
  if (self::$options['only-for-webp-enabled-browsers']) {
243
  if (!isset($_SERVER['HTTP_ACCEPT']) || (strpos($_SERVER['HTTP_ACCEPT'], 'image/webp') === false)) {
244
  return $returnValueOnFail;
245
+ }
246
  }
247
 
248
  // Fail for relative urls. Wordpress doesn't use such very much anyway
lib/classes/Convert.php CHANGED
@@ -288,8 +288,22 @@ class Convert
288
 
289
  $result['nonce-tick'] = $nonceTick;
290
 
 
 
 
291
  echo json_encode($result, JSON_UNESCAPED_SLASHES | JSON_NUMERIC_CHECK | JSON_PRETTY_PRINT);
 
292
  wp_die();
293
  }
294
 
 
 
 
 
 
 
 
 
 
 
295
  }
288
 
289
  $result['nonce-tick'] = $nonceTick;
290
 
291
+
292
+ $result = self::utf8ize($result);
293
+
294
  echo json_encode($result, JSON_UNESCAPED_SLASHES | JSON_NUMERIC_CHECK | JSON_PRETTY_PRINT);
295
+
296
  wp_die();
297
  }
298
 
299
+ private static function utf8ize($d) {
300
+ if (is_array($d)) {
301
+ foreach ($d as $k => $v) {
302
+ $d[$k] = self::utf8ize($v);
303
+ }
304
+ } else if (is_string ($d)) {
305
+ return utf8_encode($d);
306
+ }
307
+ return $d;
308
+ }
309
  }
lib/classes/ConvertHelperIndependent.php CHANGED
@@ -1,7 +1,7 @@
1
  <?php
2
 
3
  /*
4
- This class is made to be dependent only on a few WebPExpress classes, and must be kept like that.
5
  It is used by webp-on-demand.php, which does not register an auto loader. It is also used for bulk conversion.
6
  */
7
  namespace WebPExpress;
@@ -571,7 +571,7 @@ APACHE
571
  $text = preg_replace('#' . preg_quote($_SERVER["DOCUMENT_ROOT"]) . '#', '[doc-root]', $text);
572
 
573
  // TODO: Put version number somewhere else. Ie \WebPExpress\VersionNumber::version
574
- $text = 'WebP Express 0.20.1. ' . $msgTop . ', ' . date("Y-m-d H:i:s") . "\n\r\n\r" . $text;
575
 
576
  $logFile = self::getLogFilename($source, $logDir);
577
 
1
  <?php
2
 
3
  /*
4
+ This class is made to not be dependent on Wordpress functions and must be kept like that.
5
  It is used by webp-on-demand.php, which does not register an auto loader. It is also used for bulk conversion.
6
  */
7
  namespace WebPExpress;
571
  $text = preg_replace('#' . preg_quote($_SERVER["DOCUMENT_ROOT"]) . '#', '[doc-root]', $text);
572
 
573
  // TODO: Put version number somewhere else. Ie \WebPExpress\VersionNumber::version
574
+ $text = 'WebP Express 0.21.0. ' . $msgTop . ', ' . date("Y-m-d H:i:s") . "\n\r\n\r" . $text;
575
 
576
  $logFile = self::getLogFilename($source, $logDir);
577
 
lib/classes/Destination.php ADDED
@@ -0,0 +1,208 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /*
4
+ This class is made to not be dependent on Wordpress functions and must be kept like that.
5
+ It is used by webp-on-demand.php, which does not register an auto loader. It is also used for bulk conversion.
6
+ */
7
+ namespace WebPExpress;
8
+
9
+ class Destination
10
+ {
11
+
12
+ /**
13
+ *
14
+ * @return boolean Whether or not the destination corresponding to a given source should be stored in the same folder
15
+ * or the separate folder (in wp-content/webp-express)
16
+ */
17
+ private static function storeMingledOrNot($source, $mingled, $uploadDirAbs)
18
+ {
19
+ if ($mingled == false) {
20
+ return false;
21
+ }
22
+
23
+ // Option is set for mingled, but this does not neccessarily means we should store "mingled".
24
+ // - because the mingled option only applies to upload folder, the rest is stored in separate cache folder
25
+ // So, return true, if $source is located in upload folder
26
+ return (strpos($source, $uploadDirAbs) === 0);
27
+ }
28
+
29
+ /**
30
+ * Append ".webp" to path or replace extension with "webp", depending on what is appropriate.
31
+ *
32
+ * If destination-folder is set to mingled and destination-extension is set to "set" and
33
+ * the path is inside upload folder, the appropriate thing is to SET the extension.
34
+ * Otherwise, it is to APPEND.
35
+ *
36
+ * @param string $path
37
+ * @param boolean $mingled Mingled setting (notice that mingled only applies to uploads)
38
+ * @param string $replaceExt If file extension should be replaced with ".webp". If false, ".webp" is appended.
39
+ * @param boolean $inUploadFolder
40
+ */
41
+ public static function appendOrSetExtension($path, $mingled, $replaceExt, $inUploadFolder)
42
+ {
43
+ if ($mingled && $replaceExt && $inUploadFolder) {
44
+ return preg_replace('/\\.(jpe?g|png)$/i', '', $path) . '.webp';
45
+ } else {
46
+ return $path . '.webp';
47
+ }
48
+ }
49
+
50
+ /**
51
+ * Get destination path corresponding to the source path given (and some configurations)
52
+ *
53
+ * If for example Operation mode is set to "mingled" and extension is set to "Append .webp",
54
+ * the result of finding the destination path that corresponds to "/path/to/logo.jpg" will be "/path/to/logo.jpg.webp".
55
+ *
56
+ * The imageRoots are tried in order.
57
+ * This means that ie "uploads" is preferred over "wp-content" even though the source resides in both (when uploads is inside wp-content)
58
+ * So destination is ie [..]/wp-content/webp-express/uploads/[..]", rather than same but with "wp-content"
59
+ *
60
+ * @param string $source Path to source file
61
+ * @param string $webExpressContentDirAbs
62
+ * @param string $uploadDirAbs
63
+ * @param DestinationOptions $destinationOptions
64
+ * @param ImageRoots $imageRoots An image roots object
65
+ *
66
+ * @return string|false Returns path to destination corresponding to source, or false on failure
67
+ */
68
+ public static function getDestinationPathCorrespondingToSource(
69
+ $source,
70
+ $webExpressContentDirAbs,
71
+ $uploadDirAbs,
72
+ $destinationOptions,
73
+ $imageRoots
74
+ ) {
75
+ // At this point, everything has already been checked for sanity. But for good meassure, lets
76
+ // check the most important parts again. This is after all a public method.
77
+ // ------------------------------------------------------------------
78
+
79
+ $mingled = $destinationOptions->mingled;
80
+ $replaceExt = $destinationOptions->replaceExt;
81
+ $useDocRoot = $destinationOptions->useDocRoot;
82
+
83
+ try {
84
+ // Check source
85
+ // --------------
86
+ // TODO: make this check work with symlinks
87
+ //$source = SanityCheck::absPathExistsAndIsFileInDocRoot($source);
88
+
89
+ // Calculate destination and check that the result is sane
90
+ // -------------------------------------------------------
91
+ if (self::storeMingledOrNot($source, $mingled, $uploadDirAbs)) {
92
+ $destination = self::appendOrSetExtension($source, $mingled, $replaceExt, true);
93
+ } else {
94
+
95
+ if ($useDocRoot) {
96
+ // We must find the relative path from document root to source.
97
+ // However, we dont know if document root is resolved or not.
98
+ // We also do not know if source begins with a resolved or unresolved document root.
99
+ // And we cannot be sure that document root is resolvable.
100
+
101
+ // Lets say:
102
+ // 1. document root is unresolvable.
103
+ // 2. document root is configured to something unresolved ("/my-website")
104
+ // 3. source is resolved and within an image root ("/var/www/my-website/wp-content/uploads/test.jpg")
105
+ // 4. all image roots are resolvable.
106
+ // 5. Paths::canUseDocRootForRelPaths()) returned true
107
+
108
+ // Can the relative path then be found?
109
+ // Actually, yes.
110
+ // We can loop through the image roots.
111
+ // When we get to the "uploads" root, it must neccessarily contain the unresolved document root.
112
+ // It will in other words be: "my-website/wp-content/uploads"
113
+ // It can not be configured to the resolved path because canUseDocRootForRelPaths would have then returned false as
114
+ // It would not be possible to establish that "/var/www/my-website/wp-content/uploads/" is within document root, as
115
+ // document root is "/my-website" and unresolvable.
116
+ // To sum up, we have:
117
+ // If document root is unresolvable while canUseDocRootForRelPaths() succeeded, then the image roots will all begin with
118
+ // the unresolved path.
119
+ // In this method, if $useDocRootForStructuringCacheDir is true, then it is assumed that canUseDocRootForRelPaths()
120
+ // succeeded.
121
+ // OH!
122
+ // I realize that the image root can be passed as well:
123
+ // $imageRoot = $webExpressContentDirAbs . '/webp-images';
124
+ // So the question is: Will $webExpressContentDirAbs also be the unresolved path?
125
+ // That variable is calculated in WodConfigLoader based on various methods available.
126
+ // I'm not digging into it, but would expect it to in some cases be resolved. Which means that relative path can not
127
+ // be found.
128
+ // So. Lets play it safe and require that document root is resolvable in order to use docRoot for structure
129
+
130
+ if (!PathHelper::isDocRootAvailable()) {
131
+ throw new \Exception(
132
+ 'Can not calculate destination using "doc-root" structure as document root is not available. $_SERVER["DOCUMENT_ROOT"] is empty. ' .
133
+ 'This is probably a misconfiguration on the server. ' .
134
+ 'However, WebP Express can function without using documument root. If you resave options and regenerate the .htaccess files, it should ' .
135
+ 'automatically start to structure the webp files in subfolders that are relative the image root folders rather than document-root.'
136
+ );
137
+ }
138
+
139
+ if (!PathHelper::isDocRootAvailableAndResolvable()) {
140
+ throw new \Exception(
141
+ 'Can not calculate destination using "doc-root" structure as document root cannot be resolved for symlinks using "realpath". The ' .
142
+ 'reason for that is probably that open_basedir protection has been set up and that document root is outside outside that open_basedir. ' .
143
+ 'WebP Express can function in that setting, however you will need to resave options and regenerate the .htaccess files. It should then ' .
144
+ 'automatically stop to structure the webp files as relative to document root and instead structure them as relative to image root folders.'
145
+ );
146
+ }
147
+ $docRoot = rtrim(realpath($_SERVER["DOCUMENT_ROOT"]), '/');
148
+ $imageRoot = $webExpressContentDirAbs . '/webp-images';
149
+
150
+ // TODO: make this check work with symlinks
151
+ //SanityCheck::absPathIsInDocRoot($imageRoot);
152
+
153
+ $sourceRel = substr(realpath($source), strlen($docRoot) + 1);
154
+ $destination = $imageRoot . '/doc-root/' . $sourceRel;
155
+ $destination = self::appendOrSetExtension($destination, $mingled, $replaceExt, false);
156
+
157
+
158
+ // TODO: make this check work with symlinks
159
+ //$destination = SanityCheck::absPathIsInDocRoot($destination);
160
+ } else {
161
+ $destination = '';
162
+
163
+ $sourceResolved = realpath($source);
164
+
165
+
166
+ // Check roots until we (hopefully) get a match.
167
+ // (that is: find a root which the source is inside)
168
+ foreach ($imageRoots->getArray() as $i => $imageRoot) {
169
+ // in $obj, "rel-path" is only set when document root can be used for relative paths.
170
+ // So, if it is set, we can use it (beware: we cannot neccessarily use realpath on document root,
171
+ // but we do not need to - see the long comment in Paths::canUseDocRootForRelPaths())
172
+
173
+ $rootPath = $imageRoot->getAbsPath();
174
+ /*
175
+ if (isset($obj['rel-path'])) {
176
+ $docRoot = rtrim($_SERVER["DOCUMENT_ROOT"], '/');
177
+ $rootPath = $docRoot . '/' . $obj['rel-path'];
178
+ } else {
179
+ // If "rel-path" isn't set, then abs-path is, and we can use that.
180
+ $rootPath = $obj['abs-path'];
181
+ }*/
182
+
183
+ // $source may be resolved or not. Same goes for $rootPath.
184
+ // We can assume that $rootPath is resolvable using realpath (it ought to exist and be within open_basedir for WP to function)
185
+ // We can also assume that $source is resolvable (it ought to exist and within open_basedir)
186
+ // So: Resolve both! and test if the resolved source begins with the resolved rootPath.
187
+ if (strpos($sourceResolved, realpath($rootPath)) !== false) {
188
+ $relPath = substr($sourceResolved, strlen(realpath($rootPath)) + 1);
189
+ $relPath = self::appendOrSetExtension($relPath, $mingled, $replaceExt, false);
190
+
191
+ $destination = $webExpressContentDirAbs . '/webp-images/' . $imageRoot->id . '/' . $relPath;
192
+ break;
193
+ }
194
+ }
195
+ if ($destination == '') {
196
+ return false;
197
+ }
198
+ }
199
+ }
200
+
201
+ } catch (SanityException $e) {
202
+ return false;
203
+ }
204
+
205
+ return $destination;
206
+ }
207
+
208
+ }
lib/classes/DestinationOptions.php ADDED
@@ -0,0 +1,42 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace WebPExpress;
4
+
5
+ class DestinationOptions
6
+ {
7
+
8
+ public $mingled;
9
+ public $useDocRoot;
10
+ public $replaceExt;
11
+ public $scope;
12
+
13
+ /**
14
+ * Constructor.
15
+ *
16
+ * @param array $imageRootDef assoc array containing "id", "url" and either "abs-path", "rel-path" or both.
17
+ */
18
+ public function __construct($mingled, $useDocRoot, $replaceExt, $scope)
19
+ {
20
+ $this->mingled = $mingled;
21
+ $this->useDocRoot = $useDocRoot;
22
+ $this->replaceExt = $replaceExt;
23
+ $this->scope = $scope;
24
+ }
25
+
26
+ /**
27
+ * Set properties from config file
28
+ *
29
+ * @param array $config WebP Express configuration object
30
+ */
31
+ public static function createFromConfig(&$config)
32
+ {
33
+ return new DestinationOptions(
34
+ $config['destination-folder'] == 'mingled', // "mingled" or "separate"
35
+ $config['destination-structure'] == 'doc-root', // "doc-root" or "image-roots"
36
+ $config['destination-extension'] == 'set', // "set" or "append"
37
+ $config['scope']
38
+ );
39
+ }
40
+
41
+
42
+ }
lib/classes/DestinationUrl.php ADDED
@@ -0,0 +1,229 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace WebPExpress;
4
+
5
+ /**
6
+ * This class is not used yet! - and not finished!
7
+ * It is the beginning of a refactor, where code is to be moved from AlterHtmlHelper to here
8
+ */
9
+ class DestinationUrl
10
+ {
11
+
12
+ /**
13
+ * Gets relative path between a base url and another.
14
+ * Returns false if the url isn't a subpath
15
+ *
16
+ * @param $imageUrl (ie "http://example.com/wp-content/image.jpg")
17
+ * @param $baseUrl (ie "http://example.com/wp-content")
18
+ * @return path or false (ie "/image.jpg")
19
+ */
20
+ public static function getRelUrlPath($imageUrl, $baseUrl)
21
+ {
22
+ $baseUrlComponents = parse_url($baseUrl);
23
+ /* ie:
24
+ (
25
+ [scheme] => http
26
+ [host] => we0
27
+ [path] => /wordpress/uploads-moved
28
+ )*/
29
+
30
+ $imageUrlComponents = parse_url($imageUrl);
31
+ /* ie:
32
+ (
33
+ [scheme] => http
34
+ [host] => we0
35
+ [path] => /wordpress/uploads-moved/logo.jpg
36
+ )*/
37
+ if ($baseUrlComponents['host'] != $imageUrlComponents['host']) {
38
+ return false;
39
+ }
40
+
41
+ // Check if path begins with base path
42
+ if (strpos($imageUrlComponents['path'], $baseUrlComponents['path']) !== 0) {
43
+ return false;
44
+ }
45
+
46
+ // Remove base path from path (we know it begins with basepath, from previous check)
47
+ return substr($imageUrlComponents['path'], strlen($baseUrlComponents['path']));
48
+
49
+ }
50
+
51
+ /**
52
+ * Get url for webp from source url, (if ), given a certain baseUrl / baseDir.
53
+ * Base can for example be uploads or wp-content.
54
+ *
55
+ * returns false
56
+ * - if no source file found in that base
57
+ * - or source file is found but webp file isn't there and the `only-for-webps-that-exists` option is set
58
+ *
59
+ * @param string $sourceUrl Url of source image (ie http://example.com/wp-content/image.jpg)
60
+ * @param string $rootId Id (created in Config::updateAutoloadedOptions). Ie "uploads", "content" or any image root id
61
+ * @param string $baseUrl Base url of source image (ie http://example.com/wp-content)
62
+ * @param string $baseDir Base dir of source image (ie /var/www/example.com/wp-content)
63
+ * @param object $destinationOptions
64
+ */
65
+ public static function getWebPUrlInImageRoot($sourceUrl, $rootId, $baseUrl, $baseDir, $destinationOptions)
66
+ {
67
+ //error_log('getWebPUrlInImageRoot:' . $sourceUrl . ':' . $baseUrl . ':' . $baseDir);
68
+
69
+
70
+ $srcPathRel = self::getRelUrlPath($sourceUrl, $baseUrl);
71
+
72
+ if ($srcPathRel === false) {
73
+ return false;
74
+ }
75
+
76
+ // Calculate file path to source
77
+ $srcPathAbs = $baseDir . $srcPathRel;
78
+
79
+ // Check that source file exists
80
+ if (!@file_exists($srcPathAbs)) {
81
+ return false;
82
+ }
83
+
84
+ // Calculate destination of webp (both path and url)
85
+ // ----------------------------------------
86
+
87
+ // We are calculating: $destPathAbs and $destUrl.
88
+
89
+ if (!isset($destinationOptions->scope) || !in_array($rootId, $destinationOptions->scope)) {
90
+ return false;
91
+ }
92
+
93
+ $destinationRoot = Paths::destinationRoot2(
94
+ $rootId,
95
+ $destinationOptions
96
+ );
97
+
98
+ $relPathFromImageRootToSource = PathHelper::getRelDir(
99
+ realpath(Paths::getAbsDirById($rootId)),
100
+ realpath($srcPathAbs)
101
+ );
102
+ $relPathFromImageRootToDest = Destination::appendOrSetExtension(
103
+ $relPathFromImageRootToSource,
104
+ $destinationOptions->mingled,
105
+ $destinationOptions->replaceExt,
106
+ ($rootId == 'uploads')
107
+ );
108
+ $destPathAbs = $destinationRoot['abs-path'] . '/' . $relPathFromImageRootToDest;
109
+ $webpMustExist = self::$options['only-for-webps-that-exists'];
110
+ if ($webpMustExist && (!@file_exists($destPathAbs))) {
111
+ return false;
112
+ }
113
+
114
+ $destUrl = $destinationRoot['url'] . '/' . $relPathFromImageRootToDest;
115
+
116
+ // Fix scheme (use same as source)
117
+ $sourceUrlComponents = parse_url($sourceUrl);
118
+ $destUrlComponents = parse_url($destUrl);
119
+ $port = isset($sourceUrlComponents['port']) ? ":" . $sourceUrlComponents['port'] : "";
120
+ return $sourceUrlComponents['scheme'] . '://' . $sourceUrlComponents['host'] . $port . $destUrlComponents['path'];
121
+ }
122
+
123
+
124
+ /**
125
+ * Get url for webp
126
+ * returns second argument if no webp
127
+ *
128
+ * @param $sourceUrl
129
+ * @param $returnValueOnFail
130
+ */
131
+ public static function getWebPUrl($sourceUrl, $returnValueOnFail)
132
+ {
133
+ // Get the options
134
+ self::getOptions();
135
+
136
+ // Fail for webp-disabled browsers (when "only-for-webp-enabled-browsers" is set)
137
+ if (self::$options['only-for-webp-enabled-browsers']) {
138
+ if (!isset($_SERVER['HTTP_ACCEPT']) || (strpos($_SERVER['HTTP_ACCEPT'], 'image/webp') === false)) {
139
+ return $returnValueOnFail;
140
+ }
141
+ }
142
+
143
+ // Fail for relative urls. Wordpress doesn't use such very much anyway
144
+ if (!preg_match('#^https?://#', $sourceUrl)) {
145
+ return $returnValueOnFail;
146
+ }
147
+
148
+ // Fail if the image type isn't enabled
149
+ switch (self::$options['image-types']) {
150
+ case 0:
151
+ return $returnValueOnFail;
152
+ case 1:
153
+ if (!preg_match('#(jpe?g)$#', $sourceUrl)) {
154
+ return $returnValueOnFail;
155
+ }
156
+ break;
157
+ case 2:
158
+ if (!preg_match('#(png)$#', $sourceUrl)) {
159
+ return $returnValueOnFail;
160
+ }
161
+ break;
162
+ case 3:
163
+ if (!preg_match('#(jpe?g|png)$#', $sourceUrl)) {
164
+ return $returnValueOnFail;
165
+ }
166
+ break;
167
+ }
168
+
169
+ //error_log('source url:' . $sourceUrl);
170
+
171
+ // Try all image roots
172
+ foreach (self::$options['scope'] as $rootId) {
173
+ $baseDir = Paths::getAbsDirById($rootId);
174
+ $baseUrl = Paths::getUrlById($rootId);
175
+
176
+ //error_log('baseurl: ' . $baseUrl);
177
+ if (Multisite::isMultisite() && ($rootId == 'uploads')) {
178
+ $baseUrl = Paths::getUploadUrl();
179
+ $baseDir = Paths::getUploadDirAbs();
180
+ }
181
+
182
+ $result = self::getWebPUrlInImageRoot($sourceUrl, $rootId, $baseUrl, $baseDir);
183
+ if ($result !== false) {
184
+ return $result;
185
+ }
186
+
187
+ // Try the hostname aliases.
188
+ if (!isset(self::$options['hostname-aliases'])) {
189
+ continue;
190
+ }
191
+ $hostnameAliases = self::$options['hostname-aliases'];
192
+
193
+ $hostname = Paths::getHostNameOfUrl($baseUrl);
194
+ $baseUrlComponents = parse_url($baseUrl);
195
+ $sourceUrlComponents = parse_url($sourceUrl);
196
+ // ie: [scheme] => http, [host] => we0, [path] => /wordpress/uploads-moved
197
+
198
+ if ((!isset($baseUrlComponents['host'])) || (!isset($sourceUrlComponents['host']))) {
199
+ continue;
200
+ }
201
+
202
+ foreach ($hostnameAliases as $hostnameAlias) {
203
+
204
+ if ($sourceUrlComponents['host'] != $hostnameAlias) {
205
+ continue;
206
+ }
207
+ //error_log('hostname alias:' . $hostnameAlias);
208
+
209
+ $baseUrlOnAlias = $baseUrlComponents['scheme'] . '://' . $hostnameAlias . $baseUrlComponents['path'];
210
+ //error_log('baseurl (alias):' . $baseUrlOnAlias);
211
+
212
+ $result = self::getWebPUrlInImageRoot($sourceUrl, $rootId, $baseUrlOnAlias, $baseDir);
213
+ if ($result !== false) {
214
+ $resultUrlComponents = parse_url($result);
215
+ return $sourceUrlComponents['scheme'] . '://' . $hostnameAlias . $resultUrlComponents['path'];
216
+ }
217
+ }
218
+ }
219
+
220
+ return $returnValueOnFail;
221
+ }
222
+
223
+ /*
224
+ public static function getWebPUrlOrSame($sourceUrl, $returnValueOnFail)
225
+ {
226
+ return self::getWebPUrl($sourceUrl, $sourceUrl);
227
+ }*/
228
+
229
+ }
lib/classes/FileHelper.php CHANGED
@@ -222,7 +222,12 @@ class FileHelper
222
  }
223
 
224
  $return = false;
225
- $handle = @fopen($filename, "r");
 
 
 
 
 
226
  if ($handle !== false) {
227
  // Return value is either file content or false
228
  if (filesize($filename) == 0) {
222
  }
223
 
224
  $return = false;
225
+ try {
226
+ $handle = @fopen($filename, "r");
227
+ } catch (\ErrorException $exception) {
228
+ $handle = false;
229
+ error_log($exception->getMessage());
230
+ }
231
  if ($handle !== false) {
232
  // Return value is either file content or false
233
  if (filesize($filename) == 0) {
lib/classes/ImageRoot.php CHANGED
@@ -6,6 +6,9 @@ use \WebPExpress\PathHelper;
6
 
7
  class ImageRoot
8
  {
 
 
 
9
  /**
10
  * Constructor.
11
  *
6
 
7
  class ImageRoot
8
  {
9
+
10
+ public $id;
11
+
12
  /**
13
  * Constructor.
14
  *
lib/classes/Paths.php CHANGED
@@ -604,6 +604,54 @@ APACHE
604
  }
605
  }
606
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
607
  /**
608
  * Append ".webp" to path or replace extension with "webp", depending on what is appropriate.
609
  *
@@ -639,7 +687,14 @@ APACHE
639
  *
640
  * @return array url and abs-path of destination
641
  */
642
- public static function destinationPath($rootId, $relPath, $destinationFolder, $destinationExtension, $destinationStructure) {
 
 
 
 
 
 
 
643
  $root = self::destinationRoot($rootId, $destinationFolder, $destinationStructure);
644
  $inUploadFolder = ($rootId == 'upload');
645
  $relPath = ConvertHelperIndependent::appendOrSetExtension($relPath, $destinationFolder, $destinationExt, $inUploadFolder);
@@ -658,6 +713,16 @@ APACHE
658
  $config['destination-extension'],
659
  $config['destination-structure']
660
  );
 
 
 
 
 
 
 
 
 
 
661
  }
662
 
663
  public static function getUrlPathById($dirId) {
604
  }
605
  }
606
 
607
+ // this shall replace destinationRoot
608
+ public static function destinationRoot2($rootId, $destinationOptions)
609
+ {
610
+ if (($destinationOptions->mingled) && ($rootId == 'uploads')) {
611
+ return [
612
+ 'url' => self::getUrlById('uploads'),
613
+ 'abs-path' => self::getUploadDirAbs()
614
+ ];
615
+ } else {
616
+
617
+ // Its within these bases:
618
+ $destUrl = self::getUrlById('wp-content') . '/webp-express/webp-images';
619
+ $destPath = self::getAbsDirById('wp-content') . '/webp-express/webp-images';
620
+
621
+ if (($destinationOptions->useDocRoot) && self::canUseDocRootForStructuringCacheDir()) {
622
+ $relPathFromDocRootToSourceImageRoot = PathHelper::getRelPathFromDocRootToDirNoDirectoryTraversalAllowed(
623
+ self::getAbsDirById($rootId)
624
+ );
625
+ return [
626
+ 'url' => $destUrl . '/doc-root/' . $relPathFromDocRootToSourceImageRoot,
627
+ 'abs-path' => $destPath . '/doc-root/' . $relPathFromDocRootToSourceImageRoot
628
+ ];
629
+ } else {
630
+ return [
631
+ 'url' => $destUrl . '/' . $rootId,
632
+ 'abs-path' => $destPath . '/' . $rootId
633
+ ];
634
+ }
635
+ }
636
+ }
637
+
638
+ public static function getRootAndRelPathForDestination($destinationPath, $imageRoots) {
639
+ foreach ($imageRoots->getArray() as $i => $imageRoot) {
640
+ $rootPath = $imageRoot->getAbsPath();
641
+ if (strpos($destinationPath, realpath($rootPath)) !== false) {
642
+ $relPath = substr($destinationPath, strlen(realpath($rootPath)) + 1);
643
+ return [$imageRoot->id, $relPath];
644
+ }
645
+ }
646
+ return ['', ''];
647
+ }
648
+
649
+
650
+
651
+ // PST:
652
+ // appendOrSetExtension() have been copied from ConvertHelperIndependent.
653
+ // TODO: I should complete the move ASAP.
654
+
655
  /**
656
  * Append ".webp" to path or replace extension with "webp", depending on what is appropriate.
657
  *
687
  *
688
  * @return array url and abs-path of destination
689
  */
690
+ /*
691
+ public static function destinationPath($rootId, $relPath, $destinationFolder, $destinationExt, $destinationStructure) {
692
+
693
+ // TODO: Current logic will not do!
694
+ // We must use ConvertHelper::getDestination for the abs path.
695
+ // And we must use logic from AlterHtmlHelper to get the URL
696
+ // Perhaps this method must be abandonned
697
+
698
  $root = self::destinationRoot($rootId, $destinationFolder, $destinationStructure);
699
  $inUploadFolder = ($rootId == 'upload');
700
  $relPath = ConvertHelperIndependent::appendOrSetExtension($relPath, $destinationFolder, $destinationExt, $inUploadFolder);
713
  $config['destination-extension'],
714
  $config['destination-structure']
715
  );
716
+ }*/
717
+
718
+ public static function getDestinationPathCorrespondingToSource($source, $destinationOptions) {
719
+ return Destination::getDestinationPathCorrespondingToSource(
720
+ $source,
721
+ Paths::getWebPExpressContentDirAbs(),
722
+ Paths::getUploadDirAbs(),
723
+ $destinationOptions,
724
+ new ImageRoots(self::getImageRootsDef())
725
+ );
726
  }
727
 
728
  public static function getUrlPathById($dirId) {
lib/classes/PluginDeactivate.php CHANGED
@@ -29,7 +29,7 @@ class PluginDeactivate
29
  $msg
30
  );
31
 
32
- wp_redirect( $_SERVER['HTTP_REFERER']);
33
  exit;
34
  }
35
  }
29
  $msg
30
  );
31
 
32
+ wp_redirect(admin_url('options-general.php?page=webp_express_settings_page'));
33
  exit;
34
  }
35
  }
lib/classes/WCFMApi.php CHANGED
@@ -3,6 +3,7 @@
3
  namespace WebPExpress;
4
 
5
  use \WebPConvert\Convert\Converters\Stack;
 
6
 
7
  /**
8
  *
@@ -27,9 +28,12 @@ class WCFMApi
27
  case 'info':
28
  $result = self::processInfo();
29
  break;
 
 
 
30
  }
31
 
32
- $json = wp_json_encode($result, JSON_UNESCAPED_SLASHES | JSON_NUMERIC_CHECK | JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE);
33
  if ($json === false) {
34
  // TODO: We can do better error handling than this!
35
  throw new \Exception('Failed encoding result to JSON');
@@ -126,6 +130,7 @@ class WCFMApi
126
  require_once __DIR__ . "/../../vendor/autoload.php";
127
  $availableConverters = Stack::getAvailableConverters();
128
 
 
129
  $converters = [];
130
  //$supportsEncoding = [];
131
  foreach ($availableConverters as $converter) {
@@ -136,7 +141,10 @@ class WCFMApi
136
  /*if () {
137
  $supportsEncoding[] = $converter;
138
  }*/
139
- }
 
 
 
140
  $systemStatus = [
141
  'converterRequirements' => [
142
  'gd' => [
@@ -151,7 +159,8 @@ class WCFMApi
151
  //supportedStandardOptions: {
152
 
153
  return [
154
- 'converters' => $converters,
 
155
  'systemStatus' => $systemStatus
156
  ];
157
 
@@ -204,26 +213,75 @@ class WCFMApi
204
  $absPath = Paths::getAbsDirById($rootId) . '/' . $relPath;
205
  //absPathExistsAndIsFile
206
  SanityCheck::absPathExists($absPath);
 
 
 
 
 
 
 
 
207
 
208
- // TODO: What if it is a dir?
 
 
 
209
 
210
- $destination = Paths::destinationPathConvenience($rootId, $relPath, $config);
 
 
 
 
 
 
 
 
 
 
 
211
 
212
- $absPathDest = $destination['abs-path'] . '/' . $relPath;
 
 
 
 
 
 
 
 
213
 
214
- return [
215
- 'original' => [
216
- 'name' => $absPath,
217
- 'size' => filesize($absPath),
218
- 'url' => '',
219
- ],
220
- 'converted' => [
221
- 'name' => $destination['abs-path'],
222
- 'size' => 70,
223
- 'url' => ''
224
- ],
225
- 'log' => 'blah blah blah'
226
- ];
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
227
  }
228
 
229
  public static function processGetTree() {
@@ -260,4 +318,37 @@ class WCFMApi
260
 
261
  }
262
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
263
  }
3
  namespace WebPExpress;
4
 
5
  use \WebPConvert\Convert\Converters\Stack;
6
+ use \WebPConvert\WebPConvert;
7
 
8
  /**
9
  *
28
  case 'info':
29
  $result = self::processInfo();
30
  break;
31
+ case 'convert':
32
+ $result = self::processConvert();
33
+ break;
34
  }
35
 
36
+ $json = wp_json_encode($result, JSON_UNESCAPED_SLASHES | JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE);
37
  if ($json === false) {
38
  // TODO: We can do better error handling than this!
39
  throw new \Exception('Failed encoding result to JSON');
130
  require_once __DIR__ . "/../../vendor/autoload.php";
131
  $availableConverters = Stack::getAvailableConverters();
132
 
133
+ /*
134
  $converters = [];
135
  //$supportsEncoding = [];
136
  foreach ($availableConverters as $converter) {
141
  /*if () {
142
  $supportsEncoding[] = $converter;
143
  }*/
144
+ //}
145
+
146
+
147
+
148
  $systemStatus = [
149
  'converterRequirements' => [
150
  'gd' => [
159
  //supportedStandardOptions: {
160
 
161
  return [
162
+ //'converters' => $converters,
163
+ //'options' => WebPConvert::getConverterOptionDefinitions('png', false, true)['general'],
164
  'systemStatus' => $systemStatus
165
  ];
166
 
213
  $absPath = Paths::getAbsDirById($rootId) . '/' . $relPath;
214
  //absPathExistsAndIsFile
215
  SanityCheck::absPathExists($absPath);
216
+ $result = [
217
+ 'original' => [
218
+ //'filename' => $absPath,
219
+ //'abspath' => $absPath,
220
+ 'size' => filesize($absPath),
221
+ 'url' => Paths::getUrlById($rootId) . '/' . $relPath,
222
+ ]
223
+ ];
224
 
225
+ // TODO: NO!
226
+ // We must use ConvertHelper::getDestination for the abs path.
227
+ // And we must use logic from AlterHtmlHelper to get the URL
228
+ //error_log('path:' . $absPathDest);
229
 
230
+ $destinationOptions = DestinationOptions::createFromConfig($config);
231
+ if ($destinationOptions->useDocRoot) {
232
+ if (!(Paths::canUseDocRootForStructuringCacheDir())) {
233
+ $destinationOptions->useDocRoot = false;
234
+ }
235
+ }
236
+ $imageRoots = new ImageRoots(Paths::getImageRootsDef());
237
+ $destinationPath = Paths::getDestinationPathCorrespondingToSource($absPath, $destinationOptions);
238
+ list($rootId, $destRelPath) = Paths::getRootAndRelPathForDestination($destinationPath, $imageRoots);
239
+ if ($rootId != '') {
240
+ $absPathDest = Paths::getAbsDirById($rootId) . '/' . $destRelPath;
241
+ $destinationUrl = Paths::getUrlById($rootId) . '/' . $destRelPath;
242
 
243
+ SanityCheck::absPath($absPathDest);
244
+ if (@file_exists($absPathDest)) {
245
+ $result['converted'] = [
246
+ 'abspath' => $absPathDest,
247
+ 'size' => filesize($absPathDest),
248
+ 'url' => $destinationUrl,
249
+ 'log' => ''
250
+ ];
251
+ }
252
 
253
+ }
254
+
255
+
256
+ //$destinationUrl = DestinationUrl::
257
+
258
+ /*
259
+ error_log('dest:' . $destinationPath);
260
+ error_log('dest root:' . $rootId);
261
+ error_log('dest path:' . $destRelPath);
262
+ error_log('dest abs-dir:' . Paths::getAbsDirById($rootId) . '/' . $destRelPath);
263
+ error_log('dest url:' . Paths::getUrlById($rootId) . '/' . $destRelPath);
264
+ */
265
+
266
+ //error_log('url:' . $destinationPath);
267
+ //error_log('destinationOptions' . print_r($destinationOptions, true));
268
+
269
+ /*
270
+ $destination = Paths::destinationPathConvenience($rootId, $relPath, $config);
271
+ $absPathDest = $destination['abs-path'];
272
+ SanityCheck::absPath($absPathDest);
273
+ error_log('path:' . $absPathDest);
274
+
275
+ if (@file_exists($absPathDest)) {
276
+ $result['converted'] = [
277
+ 'abspath' => $destination['abs-path'],
278
+ 'size' => filesize($destination['abs-path']),
279
+ 'url' => $destination['url'],
280
+ 'log' => ''
281
+ ];
282
+ }
283
+ */
284
+ return $result;
285
  }
286
 
287
  public static function processGetTree() {
318
 
319
  }
320
 
321
+ public static function processConvert() {
322
+
323
+ Validate::postHasKey('args');
324
+
325
+ //$args = json_decode(sanitize_text_field(stripslashes($_POST['args'])), true);
326
+
327
+ $args = $_POST['args'];
328
+ if (!array_key_exists('path', $args)) {
329
+ throw new \Exception('"path" argument missing for command');
330
+ }
331
+ if (!array_key_exists('convertOptions', $args)) {
332
+ throw new \Exception('"convertOptions" argument missing for command');
333
+ }
334
+
335
+ return ['success' => true, 'optionsReceived' => $args['convertOptions']];
336
+
337
+ /*
338
+ $path = SanityCheck::pathWithoutDirectoryTraversal($args['path']);
339
+ $path = ltrim($path, '/');
340
+ $pathTokens = explode('/', $path);
341
+
342
+ $rootId = array_shift($pathTokens); // Shift off the first item, which is the scope
343
+ $relPath = implode('/', $pathTokens);
344
+ $config = Config::loadConfigAndFix();
345
+ $rootIds = Paths::filterOutSubRoots($config['scope']);
346
+ if (!in_array($rootId, $rootIds)) {
347
+ throw new \Exception('Invalid scope');
348
+ }
349
+
350
+ $absPath = Paths::getAbsDirById($rootId) . '/' . $relPath;
351
+ //absPathExistsAndIsFile
352
+ SanityCheck::absPathExists($absPath); */
353
+ }
354
  }
lib/classes/WCFMPage.php CHANGED
@@ -1,7 +1,7 @@
1
  <?php
2
 
3
  namespace WebPExpress;
4
-
5
  /**
6
  *
7
  */
@@ -11,10 +11,27 @@ class WCFMPage
11
 
12
  // callback (registred in AdminUi)
13
  public static function display() {
14
- echo '<h1>WebP Express Conversion Manager</h1>';
15
- echo '<p>Work in progress! Currently, actions are not working, only file browser</p>';
16
- echo '<div id="webpconvert-filemanager">loading</div>';
 
 
 
 
 
 
17
  //include WEBPEXPRESS_PLUGIN_DIR . '/lib/options/page.php';
 
 
 
 
 
 
 
 
 
 
 
18
  }
19
 
20
  /* We add directly to head instead, to get the type="module"
@@ -31,10 +48,14 @@ class WCFMPage
31
  $wcfmNonce = wp_create_nonce('webpexpress-wcfm-nonce');
32
  echo '<scr' . 'ipt>window.webpExpressWCFMNonce = "' . $wcfmNonce . '";</scr' . 'ipt>';
33
 
34
- echo '<scr' . 'ipt src="' . $baseUrl . '/wcfm-options.js?7"></scr' . 'ipt>';
35
- echo '<scr' . 'ipt type="module" src="' . $baseUrl . '/wcfm.js?3"></scr' . 'ipt>';
 
 
 
 
36
 
37
- echo '<link rel="stylesheet" href="' . $baseUrl . '/style.css?1">';
38
  }
39
 
40
  }
1
  <?php
2
 
3
  namespace WebPExpress;
4
+ use \WebPConvert\WebPConvert;
5
  /**
6
  *
7
  */
11
 
12
  // callback (registred in AdminUi)
13
  public static function display() {
14
+ echo '<div id="wcfmintro">' .
15
+ '<h1>WebP Express Conversion Browser</h1>' .
16
+ '<p>' .
17
+ 'Note: To convert manually, you still need to use Bulk Convert on the settings page ' .
18
+ '(or you can use WP CLI)' .
19
+ '</p>' .
20
+ '</div>';
21
+
22
+ echo '<div id="webpconvert-filemanager" style="position:relative; min-height:400px">loading</div>';
23
  //include WEBPEXPRESS_PLUGIN_DIR . '/lib/options/page.php';
24
+
25
+ /* require_once __DIR__ . "/../../vendor/autoload.php";
26
+ // print_r(WebPConvert::getConverterOptionDefinitions('png', false, true));
27
+ echo '<pre>' .
28
+ print_r(
29
+ json_encode(
30
+ WebPConvert::getConverterOptionDefinitions('png', false, true),
31
+ JSON_PRETTY_PRINT
32
+ ),
33
+ true
34
+ ) . '</pre>';*/
35
  }
36
 
37
  /* We add directly to head instead, to get the type="module"
48
  $wcfmNonce = wp_create_nonce('webpexpress-wcfm-nonce');
49
  echo '<scr' . 'ipt>window.webpExpressWCFMNonce = "' . $wcfmNonce . '";</scr' . 'ipt>';
50
 
51
+ echo '<scr' . 'ipt src="' . $baseUrl . '/wcfm-options.js?11"></scr' . 'ipt>';
52
+ //echo '<scr' . 'ipt type="module" src="' . $baseUrl . '/vendor.js?1"></scr' . 'ipt>';
53
+
54
+ // TODO: Use generated name (ie index.bc30fc12.js) and make a script in npm for automatically
55
+ // updating this file when copying
56
+ echo '<scr' . 'ipt type="module" src="' . $baseUrl . '/wcfm.js?22"></scr' . 'ipt>';
57
 
58
+ echo '<link rel="stylesheet" href="' . $baseUrl . '/style.css?9">';
59
  }
60
 
61
  }
lib/options/submit.php CHANGED
@@ -790,6 +790,6 @@ if (!$result['saved-both-config']) {
790
  }
791
  }
792
 
793
- wp_redirect( $_SERVER['HTTP_REFERER']);
794
 
795
  exit();
790
  }
791
  }
792
 
793
+ wp_redirect(admin_url('options-general.php?page=webp_express_settings_page'));
794
 
795
  exit();
lib/wcfm/style.css CHANGED
@@ -1 +1 @@
1
- .selectbox[data-v-a8799ec4]{width:200px;position:relative;display:inline-block}.selectbox .box[data-v-a8799ec4]{border:1px solid #000;padding:5px 10px;width:100%;box-sizing:border-box;cursor:pointer;user-select:none}.selectbox .box[data-v-a8799ec4]::after{position:absolute;content:"";top:14px;right:10px;width:0;height:0;border:6px solid transparent;border-color:#000 transparent transparent}.selectbox .box.is-open[data-v-a8799ec4]::after{border-color:transparent transparent #000;top:6px}.selectbox .dropdown[data-v-a8799ec4]{position:absolute;z-index:100;background-color:#fff;border:1px solid #eee;left:0;right:0}.selectbox .dropdown .option[data-v-a8799ec4]{padding:5px 10px;border-bottom:1px solid #eee}.selectbox .dropdown .option .icon[data-v-a8799ec4]{width:18px;height:18px;float:right}.selectbox .dropdown .option[data-v-a8799ec4]:hover{background-color:#eee;cursor:pointer;user-select:none}.quality-lossy .input-quality[data-v-74dc2e9e]{width:40px;padding:3px 5px}.quality-lossy .auto label[data-v-74dc2e9e]{padding:0 10px 0 20px}.quality-lossless .input-quality[data-v-db8a8a84]{width:40px}.convert-options>div>div[data-v-115f004a]:first-child{min-width:120px}.convert-options>div>div[data-v-115f004a]:last-child{width:300px;box-sizing:border-box}.convert-options>div>div:last-child [data-v-115f004a]{box-sizing:border-box;width:100%}.convert-options>div input.method[data-v-115f004a]{width:40px}.fileitem[data-v-a2787766]{vertical-align:middle;white-space:nowrap}.fileitem p[data-v-a2787766]:hover{background:#eee}.fileitem p[data-v-a2787766]{user-select:none;cursor:pointer;margin:0;padding:3px;line-height:25px;border-bottom:1px solid #f2f2f2}.fileitem p .foldUnfold[data-v-a2787766]{user-select:none;cursor:pointer}.fileitem p .buttons[data-v-a2787766]{float:right;cursor:default}.fileitem p .buttons button[data-v-a2787766]{margin-top:2px;margin-bottom:0;cursor:pointer;background-color:#fff;margin-right:10px}.fileitem p svg.icon-fold[data-v-a2787766],.fileitem p svg.icon-unfold[data-v-a2787766]{width:12px;height:12px;vertical-align:middle;padding:3px;margin-right:3px;display:inline-block;border:0 solid grey}.fileitem p svg.icon-file[data-v-a2787766],.fileitem p svg.icon-folder[data-v-a2787766]{width:20px;height:20px;display:inline;vertical-align:middle;padding-top:1px;padding-bottom:2px;padding-right:5px}.fileitem p svg.icon-file[data-v-a2787766]{margin-left:22px}ul{list-style-type:none;padding:0;margin:0}li{margin:0 0 0 20px}.multipane{display:flex;align-items:stretch}.multipane.layout-h{flex-direction:column}.multipane.layout-v{flex-direction:row}.multipane div.pane{position:relative;z-index:1;padding:15px;overflow:auto;border:1px solid #ccc;background:#fff}@media (max-width:800px){.multipane{flex-direction:column!important}div.pane{width:100%!important;margin-bottom:8px;box-sizing:border-box}.multipane-resizer{display:none!important}}.multipane-resizer{display:block;position:relative;z-index:2}.layout-h>.multipane-resizer{height:10px;margin-top:-10px;top:5px;cursor:row-resize}.layout-v>.multipane-resizer{width:14px;cursor:col-resize}.layout-v>.multipane-resizer:before{display:block;content:"";width:3px;height:40px;position:absolute;top:50%;left:50%;margin-top:-20px;margin-left:-2px;border-left:1px solid #ccc;border-right:1px solid #ccc}.layout-v>.multipane-resizer:hover:before{border-color:#999}#webpconvert-filemanager,.mainpanel{height:100%}.mainpanel{min-height:400px}#app{font-family:Avenir,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}input{padding:3px 5px}.table-table{display:table}.table-table>*{display:table-row}.table-table>*>*{display:table-cell;padding:5px 20px 5px 0}.table-inline-block>div>*{display:inline-block;margin-right:10px;padding:5px 20px 5px 0}.table-inline-block>div>:first-child{width:120px}
1
+ .splitpanes{display:-webkit-box;display:-ms-flexbox;display:flex;width:100%;height:100%}.splitpanes--vertical{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.splitpanes--horizontal{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.splitpanes--dragging *{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.splitpanes__pane{width:100%;height:100%;overflow:hidden}.splitpanes--vertical .splitpanes__pane{-webkit-transition:width .2s ease-out;transition:width .2s ease-out}.splitpanes--horizontal .splitpanes__pane{-webkit-transition:height .2s ease-out;transition:height .2s ease-out}.splitpanes--dragging .splitpanes__pane{-webkit-transition:none;transition:none}.splitpanes__splitter{-ms-touch-action:none;touch-action:none}.splitpanes--vertical>.splitpanes__splitter{min-width:1px;cursor:col-resize}.splitpanes--horizontal>.splitpanes__splitter{min-height:1px;cursor:row-resize}.splitpanes.default-theme .splitpanes__pane{background-color:#f2f2f2}.splitpanes.default-theme .splitpanes__splitter{background-color:#fff;-webkit-box-sizing:border-box;box-sizing:border-box;position:relative;-ms-flex-negative:0;flex-shrink:0}.splitpanes.default-theme .splitpanes__splitter:after,.splitpanes.default-theme .splitpanes__splitter:before{content:"";position:absolute;top:50%;left:50%;background-color:#00000026;-webkit-transition:background-color .3s;transition:background-color .3s}.splitpanes.default-theme .splitpanes__splitter:hover:after,.splitpanes.default-theme .splitpanes__splitter:hover:before{background-color:#00000040}.splitpanes.default-theme .splitpanes__splitter:first-child{cursor:auto}.default-theme.splitpanes .splitpanes .splitpanes__splitter{z-index:1}.default-theme.splitpanes--vertical>.splitpanes__splitter,.default-theme .splitpanes--vertical>.splitpanes__splitter{width:7px;border-left:1px solid #eee;margin-left:-1px}.default-theme.splitpanes--vertical>.splitpanes__splitter:after,.default-theme .splitpanes--vertical>.splitpanes__splitter:after,.default-theme.splitpanes--vertical>.splitpanes__splitter:before,.default-theme .splitpanes--vertical>.splitpanes__splitter:before{-webkit-transform:translateY(-50%);transform:translateY(-50%);width:1px;height:30px}.default-theme.splitpanes--vertical>.splitpanes__splitter:before,.default-theme .splitpanes--vertical>.splitpanes__splitter:before{margin-left:-2px}.default-theme.splitpanes--vertical>.splitpanes__splitter:after,.default-theme .splitpanes--vertical>.splitpanes__splitter:after{margin-left:1px}.default-theme.splitpanes--horizontal>.splitpanes__splitter,.default-theme .splitpanes--horizontal>.splitpanes__splitter{height:7px;border-top:1px solid #eee;margin-top:-1px}.default-theme.splitpanes--horizontal>.splitpanes__splitter:after,.default-theme .splitpanes--horizontal>.splitpanes__splitter:after,.default-theme.splitpanes--horizontal>.splitpanes__splitter:before,.default-theme .splitpanes--horizontal>.splitpanes__splitter:before{-webkit-transform:translateX(-50%);transform:translate(-50%);width:30px;height:1px}.default-theme.splitpanes--horizontal>.splitpanes__splitter:before,.default-theme .splitpanes--horizontal>.splitpanes__splitter:before{margin-top:-2px}.default-theme.splitpanes--horizontal>.splitpanes__splitter:after,.default-theme .splitpanes--horizontal>.splitpanes__splitter:after{margin-top:1px}.selectbox[data-v-3ed78ba0]{width:200px;position:relative;display:inline-block}.selectbox .box[data-v-3ed78ba0]{border:1px solid black;padding:5px 10px;width:100%;box-sizing:border-box;cursor:pointer;user-select:none}.selectbox .box[data-v-3ed78ba0]:after{position:absolute;content:"";top:14px;right:10px;width:0;height:0;border:6px solid transparent;border-color:black transparent transparent transparent}.selectbox .box.is-open[data-v-3ed78ba0]:after{border-color:transparent transparent black transparent;top:6px}.selectbox .dropdown[data-v-3ed78ba0]{position:absolute;z-index:100;background-color:#fff;border:1px solid #eee;left:0;right:0}.selectbox .dropdown .option[data-v-3ed78ba0]{padding:5px 10px;border-bottom:1px solid #eee}.selectbox .dropdown .option .icon[data-v-3ed78ba0]{width:18px;height:18px;float:right}.selectbox .dropdown .option[data-v-3ed78ba0]:hover{background-color:#eee;cursor:pointer;user-select:none}.help-icon{display:inline-block;margin-left:2px}.convert-option-menu{display:inline-block;margin-left:2px}.menu-inner{font-size:16px}.icon{width:16px;height:16px;vertical-align:top;padding:0 2px 1px}.buttons a:first-child{margin-left:0}.buttons a{margin:0 5px;background-color:#f5f5f5;border-radius:0;color:#000!important;padding:2px 10px;border-color:#fff;text-decoration:none!important;font-family:arial,sans-serif;font-size:13.33px;border-width:1px;border-style:solid;border-bottom-color:#ccc;border-right-color:#ccc}.buttons a:hover{background-color:#fff}.buttons a.mouse-down{border-bottom-color:#fff;border-right-color:#fff;border-top-color:#ccc;border-left-color:#ccc}input[data-v-641ada22]{width:100%}input.small[data-v-641ada22]{max-width:100px}.multiselect__option--selected .click-to-add{display:none}.click-to-add[data-v-6b6f53d2]{float:right;font-size:13px}.vue-toggles{cursor:pointer;display:flex;align-items:center;border-radius:9999px;overflow:hidden;transition:background-color ease .2s,width ease .2s,height ease .2s}.vue-toggles .dot{position:relative;display:flex;align-items:center;border-radius:9999px;box-shadow:0 1px 3px #0000001a,0 1px 2px #0000000f;transition:margin ease .2s}.vue-toggles .text{position:absolute;font-family:inherit;user-select:none;white-space:nowrap}@media all and (-ms-high-contrast: none){.vue-toggles .text{top:50%;transform:translateY(-50%)}}@media (prefers-reduced-motion){.vue-toggles,.vue-toggles *,.vue-toggles *:before,.vue-toggles *:after{animation:none!important;transition:none!important;transition-duration:none!important}}.slider-target,.slider-target *{-webkit-touch-callout:none;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-user-select:none;touch-action:none;-ms-user-select:none;-moz-user-select:none;user-select:none;box-sizing:border-box}.slider-target{position:relative}.slider-base,.slider-connects{width:100%;height:100%;position:relative;z-index:1}.slider-connects{overflow:hidden;z-index:0}.slider-connect,.slider-origin{will-change:transform;position:absolute;z-index:1;top:0;right:0;-ms-transform-origin:0 0;-webkit-transform-origin:0 0;-webkit-transform-style:preserve-3d;transform-origin:0 0;transform-style:flat}.slider-connect{height:100%;width:100%}.slider-origin{height:10%;width:10%}.slider-txt-dir-rtl.slider-horizontal .slider-origin{left:0;right:auto}.slider-vertical .slider-origin{width:0}.slider-horizontal .slider-origin{height:0}.slider-handle{-webkit-backface-visibility:hidden;backface-visibility:hidden;position:absolute}.slider-touch-area{height:100%;width:100%}.slider-state-tap .slider-connect,.slider-state-tap .slider-origin{transition:transform .3s}.slider-state-drag *{cursor:inherit!important}.slider-horizontal{height:6px}.slider-horizontal .slider-handle{width:16px;height:16px;top:-6px;right:-8px}.slider-vertical{width:6px;height:300px}.slider-vertical .slider-handle{width:16px;height:16px;top:-8px;right:-6px}.slider-txt-dir-rtl.slider-horizontal .slider-handle{left:-8px;right:auto}.slider-base{background-color:#d4e0e7}.slider-base,.slider-connects{border-radius:3px}.slider-connect{background:#41b883;cursor:pointer}.slider-draggable{cursor:ew-resize}.slider-vertical .slider-draggable{cursor:ns-resize}.slider-handle{width:16px;height:16px;border-radius:50%;background:#fff;border:0;right:-8px;box-shadow:.5px .5px 2px 1px #00000052;cursor:-webkit-grab;cursor:grab}.slider-handle:focus{outline:none}.slider-active{box-shadow:.5px .5px 2px 1px #0000006b;cursor:-webkit-grabbing;cursor:grabbing}[disabled] .slider-connect{background:#b8b8b8}[disabled].slider-handle,[disabled] .slider-handle,[disabled].slider-target{cursor:not-allowed}[disabled] .slider-tooltip{background:#b8b8b8;border-color:#b8b8b8}.slider-tooltip{position:absolute;display:block;font-size:14px;font-weight:500;white-space:nowrap;padding:2px 5px;min-width:20px;text-align:center;color:#fff;border-radius:5px;border:1px solid #41b883;background:#41b883}.slider-horizontal .slider-tooltip{transform:translate(-50%);left:50%;bottom:24px}.slider-horizontal .slider-tooltip:before{content:"";position:absolute;bottom:-10px;left:50%;width:0;height:0;border:5px solid transparent;border-top-color:inherit;transform:translate(-50%)}.slider-vertical .slider-tooltip{transform:translateY(-50%);top:50%;right:24px}.slider-vertical .slider-tooltip:before{content:"";position:absolute;right:-10px;top:50%;width:0;height:0;border:5px solid transparent;border-left-color:inherit;transform:translateY(-50%)}.slider-horizontal .slider-origin>.slider-tooltip{transform:translate(50%);left:auto;bottom:14px}.slider-vertical .slider-origin>.slider-tooltip{transform:translateY(-18px);top:auto;right:18px}.slider-pips,.slider-pips *{box-sizing:border-box}.slider-pips{position:absolute;color:#999}.slider-value{position:absolute;white-space:nowrap;text-align:center}.slider-value-sub{color:#ccc;font-size:10px}.slider-marker{position:absolute;background:#ccc}.slider-marker-large,.slider-marker-sub{background:#aaa}.slider-pips-horizontal{padding:10px 0;height:80px;top:100%;left:0;width:100%}.slider-value-horizontal{transform:translate(-50%,50%)}.slider-rtl .slider-value-horizontal{transform:translate(50%,50%)}.slider-marker-horizontal.slider-marker{margin-left:-1px;width:2px;height:5px}.slider-marker-horizontal.slider-marker-sub{height:10px}.slider-marker-horizontal.slider-marker-large{height:15px}.slider-pips-vertical{padding:0 10px;height:100%;top:0;left:100%}.slider-value-vertical{transform:translateY(-50%);padding-left:25px}.slider-rtl .slider-value-vertical{transform:translateY(50%)}.slider-marker-vertical.slider-marker{width:5px;height:2px;margin-top:-1px}.slider-marker-vertical.slider-marker-sub{width:10px}.slider-marker-vertical.slider-marker-large{width:15px}.slider[data-v-636c0afb]{padding:10px 0}.slider .slider-connect{background-color:#0075ff}.slider .slider-tooltip{background-color:#0075ff;border-color:#0075ff;display:none}.slider:hover .slider-tooltip{display:block}.slider .slider-active .slider-tooltip{display:block}.convert-option>div[data-v-5def6a67]:first-child{min-width:210px;vertical-align:top;padding-top:10px}.convert-option>div[data-v-5def6a67]:last-child{width:300px;box-sizing:border-box}.convert-option input.method[data-v-5def6a67]{width:40px}.fade-enter-active[data-v-5def6a67]{transition:all 1s;opacity:0;transform:scale(0);transform:translate(30px)}.fade-enter-to[data-v-5def6a67]{opacity:1;transform:translate(0);transform:scale(1)}.fade-leave-active[data-v-5def6a67]{transition:all 1s;opacity:1}.fade-leave-to[data-v-5def6a67]{opacity:0}.view-select[data-v-563ca147]{display:block;text-align:right}.view *[data-v-563ca147]:first-child{display:inline-block;margin-right:10px}.view *[data-v-563ca147]:last-child{width:200px;display:inline-block}.fileitem.selected p[data-v-1c7f963e]{background:#ccc!important}.fileitem[data-v-1c7f963e]{vertical-align:middle;white-space:nowrap}.fileitem p[data-v-1c7f963e]:hover{background:#eee}.fileitem p[data-v-1c7f963e]{user-select:none;cursor:pointer;margin:0;padding:3px;line-height:25px;border-bottom:1px solid #f2f2f2}.fileitem p .fold-unfold[data-v-1c7f963e]{user-select:none;cursor:pointer}.fileitem p .fold-unfold.empty[data-v-1c7f963e]{visibility:hidden}.fileitem p svg.icon-unfold[data-v-1c7f963e],.fileitem p svg.icon-fold[data-v-1c7f963e]{width:12px;height:12px;vertical-align:middle;padding:3px;margin-right:3px;display:inline-block;border:0px solid grey}.fileitem p svg.icon-folder[data-v-1c7f963e],.fileitem p svg.icon-file[data-v-1c7f963e]{width:20px;height:20px;display:inline;vertical-align:middle;padding-top:1px;padding-bottom:2px;padding-right:5px}.fileitem p svg.icon-file[data-v-1c7f963e]{margin-left:22px}ul{list-style-type:none;padding:0;margin:0}li{margin:0 0 0 20px}.modal-mask{position:fixed;z-index:9998;top:0;left:0;width:100%;height:100%;background-color:#00000080;display:table}.modal-mask .modal-wrapper{height:100%;width:100%;padding-top:30px}.modal-mask .modal-wrapper .modal-container{padding:0;background-color:#fff;border-radius:2px;box-shadow:0 2px 8px #00000054;font-family:Helvetica,Arial,sans-serif;position:relative}.modal-mask .modal-wrapper .modal-container .title{position:absolute;left:0px;top:0;right:0;height:20px;background-color:#ccc;padding:5px 0 0 15px;font-size:14px;font-weight:bold}.modal-mask .modal-wrapper .modal-container .close-button{position:absolute;right:2px;top:2px;background-color:#fff;padding:2px 5px;font-size:12px;z-index:999;border-radius:20px;border:1px solid #ccc}.modal-mask .modal-wrapper .modal-container .close-button:hover{cursor:pointer}.modal-mask .modal-wrapper .modal-container .modal-body{position:absolute;top:25px;bottom:0px;left:0;right:0;overflow-y:auto;padding:20px}.modal-mask .modal-wrapper .modal-container .modal-body .close-button-with-text{text-align:right;margin-bottom:5px}.modal-mask .modal-wrapper .modal-container .modal-body .close-button-with-text button{padding:3px 20px}.modal-enter-active,.modal-leave-active{transition:opacity .5s ease}.modal-enter-from,.modal-leave-to{opacity:0}.image-viewport{position:relative}.image-viewport>.zoomer{width:100%;border:solid 1px silver;overflow:hidden}.image-viewport>.zoomer img{vertical-align:top;object-fit:contain;width:100%;height:100%;user-drag:none;-webkit-user-drag:none;-moz-user-drag:none}.image-viewport .zoom-info{display:none;position:absolute;bottom:0px;right:0px;padding:1px 4px;font-size:9px;background-color:#fff}.image-viewport:hover .zoom-info{display:block;cursor:pointer}.variant[data-v-0372e854]{display:inline-block;width:48%;margin-right:2%;margin-bottom:20px}.variant .header .title[data-v-0372e854]{display:inline-block}.variant .header .size[data-v-0372e854]{display:inline-block;float:right}.variant .header .zoom[data-v-0372e854]{display:inline-block;float:right;visibility:hidden}.variant .footer[data-v-0372e854]{font-style:italic;margin-top:2px}.variant .footer .select[data-v-0372e854]{float:right}.variant .footer .select button[data-v-0372e854]{padding:3px 10px}.variant:hover .header .zoom[data-v-0372e854]{visibility:visible}.variants-component .variants .variant.selected[data-v-25a3327e]{background-color:#ccc}.variants-component .variants .variant[data-v-25a3327e]{display:inline-block;width:47%;margin-right:1%;padding:1%;margin-bottom:20px}.variants-component .variants .variant .header .title[data-v-25a3327e]{display:inline-block}.variants-component .variants .variant .header .size[data-v-25a3327e]{display:inline-block;float:right}.variants-component .variants .variant .header .zoom[data-v-25a3327e]{display:inline-block;float:right;visibility:hidden}.variants-component .variants .variant .footer[data-v-25a3327e]{font-style:italic}.variants-component .variants .variant .footer .select[data-v-25a3327e]{float:right}.variants-component .variants .variant .footer .select button[data-v-25a3327e]{padding:3px 10px}.variants-component .variants .variant:hover .header .zoom[data-v-25a3327e]{visibility:visible}.file-properties .error[data-v-32d950b3]{color:red;font-weight:bold}.file-properties .path[data-v-32d950b3]{margin-bottom:20px}.file-properties .path .path[data-v-32d950b3]{color:#666;font-style:italic}.folder-properties .path{margin-bottom:20px}.folder-properties .path .path{color:#666;font-style:italic}.welcome{padding:20px 30px}.welcome .headline h3{margin-top:0;padding-top:0;font-size:24px}.welcome h4{margin-bottom:3px}.convertOptionsButton{position:absolute;right:10px;top:8px}.splitpanes__pane{background-color:#fff!important;padding:0;min-height:80px;box-shadow:inset 0 0 3px #0003}.pane-content{height:100%;overflow-y:auto}.pane-content>*{padding:10px 20px}body,html{height:100%;margin:0;padding:0}.mainpanel,#webpconvert-filemanager{height:100%;min-height:300px;position:relative}.mainpanel{min-height:400px}.wcfm,input{font-family:"Avenir",Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#222;font-size:14px}input{padding:5px 8px;border-color:#333;border-width:1px;box-sizing:border-box}div .multiselect{min-height:30px}div .multiselect__select{height:30px;line-height:16px;width:30px}div .multiselect__select:before{border-top-color:#000;border-width:6px 6px 0 6px}div .multiselect__single{margin-bottom:3px}div .multiselect__tags{border-color:#333;border-radius:0;padding:5px 40px 0 5px;min-height:30px}li.multiselect__element{margin-left:0}div .multiselect__tag{margin-bottom:0;padding-bottom:3px;padding-top:3px}fieldset[disabled] .multiselect{pointer-events:none}.multiselect__spinner{position:absolute;right:1px;top:1px;width:48px;height:35px;background:#fff;display:block}.multiselect__spinner:after,.multiselect__spinner:before{position:absolute;content:"";top:50%;left:50%;margin:-8px 0 0 -8px;width:16px;height:16px;border-radius:100%;border-color:#41b883 transparent transparent;border-style:solid;border-width:2px;box-shadow:0 0 0 1px transparent}.multiselect__spinner:before{-webkit-animation:spinning 2.4s cubic-bezier(.41,.26,.2,.62);animation:spinning 2.4s cubic-bezier(.41,.26,.2,.62);-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.multiselect__spinner:after{-webkit-animation:spinning 2.4s cubic-bezier(.51,.09,.21,.8);animation:spinning 2.4s cubic-bezier(.51,.09,.21,.8);-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.multiselect__loading-enter-active,.multiselect__loading-leave-active{transition:opacity .4s ease-in-out;opacity:1}.multiselect__loading-enter,.multiselect__loading-leave-active{opacity:0}.multiselect,.multiselect__input,.multiselect__single{font-family:inherit;font-size:16px;touch-action:manipulation}.multiselect{box-sizing:content-box;display:block;position:relative;width:100%;min-height:40px;text-align:left;color:#35495e}.multiselect *{box-sizing:border-box}.multiselect:focus{outline:none}.multiselect--disabled{background:#ededed;pointer-events:none;opacity:.6}.multiselect--active{z-index:50}.multiselect--active:not(.multiselect--above) .multiselect__current,.multiselect--active:not(.multiselect--above) .multiselect__input,.multiselect--active:not(.multiselect--above) .multiselect__tags{border-bottom-left-radius:0;border-bottom-right-radius:0}.multiselect--active .multiselect__select{transform:rotate(180deg)}.multiselect--above.multiselect--active .multiselect__current,.multiselect--above.multiselect--active .multiselect__input,.multiselect--above.multiselect--active .multiselect__tags{border-top-left-radius:0;border-top-right-radius:0}.multiselect__input,.multiselect__single{position:relative;display:inline-block;min-height:20px;line-height:20px;border:none;border-radius:5px;background:#fff;padding:0 0 0 5px;width:100%;transition:border .1s ease;box-sizing:border-box;margin-bottom:8px;vertical-align:top}.multiselect__input::-moz-placeholder{color:#35495e}.multiselect__input:-ms-input-placeholder{color:#35495e}.multiselect__input::placeholder{color:#35495e}.multiselect__tag~.multiselect__input,.multiselect__tag~.multiselect__single{width:auto}.multiselect__input:hover,.multiselect__single:hover{border-color:#cfcfcf}.multiselect__input:focus,.multiselect__single:focus{border-color:#a8a8a8;outline:none}.multiselect__single{padding-left:5px;margin-bottom:8px}.multiselect__tags-wrap{display:inline}.multiselect__tags{min-height:40px;display:block;padding:8px 40px 0 8px;border-radius:5px;border:1px solid #e8e8e8;background:#fff;font-size:14px}.multiselect__tag{position:relative;display:inline-block;padding:4px 26px 4px 10px;border-radius:5px;margin-right:10px;color:#fff;line-height:1;background:#41b883;margin-bottom:5px;white-space:nowrap;overflow:hidden;max-width:100%;text-overflow:ellipsis}.multiselect__tag-icon{cursor:pointer;margin-left:7px;position:absolute;right:0;top:0;bottom:0;font-weight:700;font-style:normal;width:22px;text-align:center;line-height:22px;transition:all .2s ease;border-radius:5px}.multiselect__tag-icon:after{content:"\d7";color:#266d4d;font-size:14px}.multiselect__tag-icon:focus:after,.multiselect__tag-icon:hover:after{color:#fff}.multiselect__current{min-height:40px;overflow:hidden;padding:8px 30px 0 12px;white-space:nowrap;border-radius:5px;border:1px solid #e8e8e8}.multiselect__current,.multiselect__select{line-height:16px;box-sizing:border-box;display:block;margin:0;text-decoration:none;cursor:pointer}.multiselect__select{position:absolute;width:40px;height:38px;right:1px;top:1px;padding:4px 8px;text-align:center;transition:transform .2s ease}.multiselect__select:before{position:relative;right:0;top:65%;color:#999;margin-top:4px;border-style:solid;border-width:5px 5px 0 5px;border-color:#999 transparent transparent transparent;content:""}.multiselect__placeholder{color:#adadad;display:inline-block;margin-bottom:10px;padding-top:2px}.multiselect--active .multiselect__placeholder{display:none}.multiselect__content-wrapper{position:absolute;display:block;background:#fff;width:100%;max-height:240px;overflow:auto;border:1px solid #e8e8e8;border-top:none;border-bottom-left-radius:5px;border-bottom-right-radius:5px;z-index:50;-webkit-overflow-scrolling:touch}.multiselect__content{list-style:none;display:inline-block;padding:0;margin:0;min-width:100%;vertical-align:top}.multiselect--above .multiselect__content-wrapper{bottom:100%;border-radius:5px 5px 0 0;border-bottom:none;border-top:1px solid #e8e8e8}.multiselect__content::-webkit-scrollbar{display:none}.multiselect__element{display:block}.multiselect__option{display:block;padding:12px;min-height:40px;line-height:16px;text-decoration:none;text-transform:none;vertical-align:middle;position:relative;cursor:pointer;white-space:nowrap}.multiselect__option:after{top:0;right:0;position:absolute;line-height:40px;padding-right:12px;padding-left:20px;font-size:13px}.multiselect__option--highlight{background:#41b883;outline:none;color:#fff}.multiselect__option--highlight:after{content:attr(data-select);background:#41b883;color:#fff}.multiselect__option--selected{background:#f3f3f3;color:#35495e;font-weight:700}.multiselect__option--selected:after{content:attr(data-selected);color:silver}.multiselect__option--selected.multiselect__option--highlight{background:#ff6a6a;color:#fff}.multiselect__option--selected.multiselect__option--highlight:after{background:#ff6a6a;content:attr(data-deselect);color:#fff}.multiselect--disabled .multiselect__current,.multiselect--disabled .multiselect__select{background:#ededed;color:#a6a6a6}.multiselect__option--disabled{background:#ededed!important;color:#a6a6a6!important;cursor:text;pointer-events:none}.multiselect__option--group{background:#ededed;color:#35495e}.multiselect__option--group.multiselect__option--highlight{background:#35495e;color:#fff}.multiselect__option--group.multiselect__option--highlight:after{background:#35495e}.multiselect__option--disabled.multiselect__option--highlight{background:#dedede}.multiselect__option--group-selected.multiselect__option--highlight{background:#ff6a6a;color:#fff}.multiselect__option--group-selected.multiselect__option--highlight:after{background:#ff6a6a;content:attr(data-deselect);color:#fff}.multiselect-enter-active,.multiselect-leave-active{transition:all .15s ease}.multiselect-enter,.multiselect-leave-active{opacity:0}.multiselect__strong{margin-bottom:8px;line-height:20px;display:inline-block;vertical-align:top}[dir=rtl] .multiselect{text-align:right}[dir=rtl] .multiselect__select{right:auto;left:1px}[dir=rtl] .multiselect__tags{padding:8px 8px 0 40px}[dir=rtl] .multiselect__content{text-align:right}[dir=rtl] .multiselect__option:after{right:auto;left:0}[dir=rtl] .multiselect__clear{right:auto;left:12px}[dir=rtl] .multiselect__spinner{right:auto;left:1px}@-webkit-keyframes spinning{0%{transform:rotate(0)}to{transform:rotate(2turn)}}@keyframes spinning{0%{transform:rotate(0)}to{transform:rotate(2turn)}}div.v-popper--theme-menu .v-popper__inner{background-color:#66f;color:#fff;padding:10px 15px 11px;line-height:1.2;max-width:300px}.v-popper__inner a{color:#fff;text-decoration:underline}.v-popper__inner p{margin-top:0}.v-popper__inner p:last-child{margin-bottom:0}.table-table{display:table}.table-table>*{display:table-row}.table-table>*>*{display:table-cell;padding:5px 20px 5px 0}.table-inline-block>div>*{display:inline-block;margin-right:10px;padding:5px 20px 5px 0}.table-inline-block>div>*:first-child{width:120px}.resize-observer[data-v-b329ee4c]{position:absolute;top:0;left:0;z-index:-1;width:100%;height:100%;border:none;background-color:transparent;pointer-events:none;display:block;overflow:hidden;opacity:0}.resize-observer[data-v-b329ee4c] object{display:block;position:absolute;top:0;left:0;height:100%;width:100%;overflow:hidden;pointer-events:none;z-index:-1}.v-popper--theme-dropdown .v-popper__inner{background:#fff;color:#000;padding:24px;border-radius:6px;box-shadow:0 6px 30px #0000001a}.v-popper--theme-dropdown .v-popper__arrow{border-color:#fff}.v-popper{width:max-content}.v-popper--theme-tooltip .v-popper__inner{background:rgba(0,0,0,.8);color:#fff;border-radius:6px;padding:7px 12px 6px}.v-popper--theme-tooltip .v-popper__arrow{border-color:#000c}.v-popper__popper{z-index:10000}.v-popper__popper.v-popper__popper--hidden{visibility:hidden;opacity:0;transition:opacity .15s,visibility .15s}.v-popper__popper.v-popper__popper--shown{visibility:visible;opacity:1;transition:opacity .15s}.v-popper__popper.v-popper__popper--skip-transition,.v-popper__popper.v-popper__popper--skip-transition>.v-popper__wrapper{transition:none!important}.v-popper__inner{position:relative}.v-popper__arrow-container{width:10px;height:10px}.v-popper__arrow{border-style:solid;position:relative;width:0;height:0}.v-popper__popper[data-popper-placement^=top] .v-popper__arrow{border-width:5px 5px 0 5px;border-left-color:transparent!important;border-right-color:transparent!important;border-bottom-color:transparent!important}.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-container{top:0}.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow{border-width:0 5px 5px 5px;border-left-color:transparent!important;border-right-color:transparent!important;border-top-color:transparent!important;top:-5px}.v-popper__popper[data-popper-placement^=right] .v-popper__arrow{border-width:5px 5px 5px 0;border-left-color:transparent!important;border-top-color:transparent!important;border-bottom-color:transparent!important;left:-5px}.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-container{right:-5px}.v-popper__popper[data-popper-placement^=left] .v-popper__arrow{border-width:5px 0 5px 5px;border-top-color:transparent!important;border-right-color:transparent!important;border-bottom-color:transparent!important;right:-5px}
lib/wcfm/vendor.b4e4e155.js ADDED
@@ -0,0 +1,16 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ var Fh=Object.defineProperty;var Rc=Object.getOwnPropertySymbols;var jh=Object.prototype.hasOwnProperty,Vh=Object.prototype.propertyIsEnumerable;var qs=(e,t,n)=>t in e?Fh(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,po=(e,t)=>{for(var n in t||(t={}))jh.call(t,n)&&qs(e,n,t[n]);if(Rc)for(var n of Rc(t))Vh.call(t,n)&&qs(e,n,t[n]);return e};var Sr=(e,t,n)=>(qs(e,typeof t!="symbol"?t+"":t,n),n);function it(e,t){const n=Object.create(null),r=e.split(",");for(let i=0;i<r.length;i++)n[r[i]]=!0;return t?i=>!!n[i.toLowerCase()]:i=>!!n[i]}const _s={[1]:"TEXT",[2]:"CLASS",[4]:"STYLE",[8]:"PROPS",[16]:"FULL_PROPS",[32]:"HYDRATE_EVENTS",[64]:"STABLE_FRAGMENT",[128]:"KEYED_FRAGMENT",[256]:"UNKEYED_FRAGMENT",[512]:"NEED_PATCH",[1024]:"DYNAMIC_SLOTS",[2048]:"DEV_ROOT_FRAGMENT",[-1]:"HOISTED",[-2]:"BAIL"},zh={[1]:"STABLE",[2]:"DYNAMIC",[3]:"FORWARDED"},Bh="Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt",Ic=it(Bh),$c=2;function Lc(e,t=0,n=e.length){let r=e.split(/(\r?\n)/);const i=r.filter((a,l)=>l%2==1);r=r.filter((a,l)=>l%2==0);let o=0;const s=[];for(let a=0;a<r.length;a++)if(o+=r[a].length+(i[a]&&i[a].length||0),o>=t){for(let l=a-$c;l<=a+$c||n>o;l++){if(l<0||l>=r.length)continue;const c=l+1;s.push(`${c}${" ".repeat(Math.max(3-String(c).length,0))}| ${r[l]}`);const u=r[l].length,f=i[l]&&i[l].length||0;if(l===a){const p=t-(o-(u+f)),d=Math.max(1,n>o?u-p:n-t);s.push(" | "+" ".repeat(p)+"^".repeat(d))}else if(l>a){if(n>o){const p=Math.max(Math.min(n-o,u),1);s.push(" | "+"^".repeat(p))}o+=u+f}}break}return s.join(`
2
+ `)}const Dc="itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly",Fc=it(Dc),Hh=it(Dc+",async,autofocus,autoplay,controls,default,defer,disabled,hidden,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected");function ea(e){return!!e||e===""}const kh=/[>/="'\u0009\u000a\u000c\u0020]/,ta={};function Uh(e){if(ta.hasOwnProperty(e))return ta[e];const t=kh.test(e);return t&&console.error(`unsafe attribute name: ${e}`),ta[e]=!t}const Kh={acceptCharset:"accept-charset",className:"class",htmlFor:"for",httpEquiv:"http-equiv"},jc=it("animation-iteration-count,border-image-outset,border-image-slice,border-image-width,box-flex,box-flex-group,box-ordinal-group,column-count,columns,flex,flex-grow,flex-positive,flex-shrink,flex-negative,flex-order,grid-row,grid-row-end,grid-row-span,grid-row-start,grid-column,grid-column-end,grid-column-span,grid-column-start,font-weight,line-clamp,line-height,opacity,order,orphans,tab-size,widows,z-index,zoom,fill-opacity,flood-opacity,stop-opacity,stroke-dasharray,stroke-dashoffset,stroke-miterlimit,stroke-opacity,stroke-width"),Wh=it("accept,accept-charset,accesskey,action,align,allow,alt,async,autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,border,buffered,capture,challenge,charset,checked,cite,class,code,codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,formaction,formenctype,formmethod,formnovalidate,formtarget,headers,height,hidden,high,href,hreflang,http-equiv,icon,id,importance,integrity,ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,start,step,style,summary,tabindex,target,title,translate,type,usemap,value,width,wrap"),Yh=it("xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,color-interpolation-filters,color-profile,color-rendering,contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,font-family,font-size,font-size-adjust,font-stretch,font-style,font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,overflow,overline-position,overline-thickness,panose-1,paint-order,path,pathLength,patternContentUnits,patternTransform,patternUnits,ping,pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,specularConstant,specularExponent,speed,spreadMethod,startOffset,stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,string,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,text-decoration,text-rendering,textLength,to,transform,transform-origin,type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xml:base,xml:lang,xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan");function Zt(e){if(ue(e)){const t={};for(let n=0;n<e.length;n++){const r=e[n],i=be(r)?na(r):Zt(r);if(i)for(const o in i)t[o]=i[o]}return t}else{if(be(e))return e;if(je(e))return e}}const Xh=/;(?![^(]*\))/g,Gh=/:(.+)/;function na(e){const t={};return e.split(Xh).forEach(n=>{if(n){const r=n.split(Gh);r.length>1&&(t[r[0].trim()]=r[1].trim())}}),t}function Zh(e){let t="";if(!e||be(e))return t;for(const n in e){const r=e[n],i=n.startsWith("--")?n:Ot(n);(be(r)||typeof r=="number"&&jc(i))&&(t+=`${i}:${r};`)}return t}function vn(e){let t="";if(be(e))t=e;else if(ue(e))for(let n=0;n<e.length;n++){const r=vn(e[n]);r&&(t+=r+" ")}else if(je(e))for(const n in e)e[n]&&(t+=n+" ");return t.trim()}function Vc(e){if(!e)return null;let{class:t,style:n}=e;return t&&!be(t)&&(e.class=vn(t)),n&&(e.style=Zt(n)),e}const Jh="html,body,base,head,link,meta,style,title,address,article,aside,footer,header,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot",Qh="svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,feDistanceLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,text,textPath,title,tspan,unknown,use,view",qh="area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr",zc=it(Jh),Bc=it(Qh),Hc=it(qh),_h=/["'&<>]/;function em(e){const t=""+e,n=_h.exec(t);if(!n)return t;let r="",i,o,s=0;for(o=n.index;o<t.length;o++){switch(t.charCodeAt(o)){case 34:i="&quot;";break;case 38:i="&amp;";break;case 39:i="&#39;";break;case 60:i="&lt;";break;case 62:i="&gt;";break;default:continue}s!==o&&(r+=t.substring(s,o)),s=o+1,r+=i}return s!==o?r+t.substring(s,o):r}const tm=/^-?>|<!--|-->|--!>|<!-$/g;function nm(e){return e.replace(tm,"")}function rm(e,t){if(e.length!==t.length)return!1;let n=!0;for(let r=0;n&&r<e.length;r++)n=ln(e[r],t[r]);return n}function ln(e,t){if(e===t)return!0;let n=ia(e),r=ia(t);if(n||r)return n&&r?e.getTime()===t.getTime():!1;if(n=ue(e),r=ue(t),n||r)return n&&r?rm(e,t):!1;if(n=je(e),r=je(t),n||r){if(!n||!r)return!1;const i=Object.keys(e).length,o=Object.keys(t).length;if(i!==o)return!1;for(const s in e){const a=e.hasOwnProperty(s),l=t.hasOwnProperty(s);if(a&&!l||!a&&l||!ln(e[s],t[s]))return!1}}return String(e)===String(t)}function ti(e,t){return e.findIndex(n=>ln(n,t))}const Jt=e=>e==null?"":ue(e)||je(e)&&(e.toString===sa||!ye(e.toString))?JSON.stringify(e,kc,2):String(e),kc=(e,t)=>t&&t.__v_isRef?kc(e,t.value):Kn(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[r,i])=>(n[`${r} =>`]=i,n),{})}:bn(t)?{[`Set(${t.size})`]:[...t.values()]}:je(t)&&!ue(t)&&!aa(t)?String(t):t,im=["bigInt","optionalChaining","nullishCoalescingOperator"],Ce={},Un=[],pt=()=>{},ni=()=>!1,om=/^on[^a-z]/,yn=e=>om.test(e),ho=e=>e.startsWith("onUpdate:"),Me=Object.assign,ra=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},sm=Object.prototype.hasOwnProperty,xe=(e,t)=>sm.call(e,t),ue=Array.isArray,Kn=e=>ri(e)==="[object Map]",bn=e=>ri(e)==="[object Set]",ia=e=>e instanceof Date,ye=e=>typeof e=="function",be=e=>typeof e=="string",Wn=e=>typeof e=="symbol",je=e=>e!==null&&typeof e=="object",oa=e=>je(e)&&ye(e.then)&&ye(e.catch),sa=Object.prototype.toString,ri=e=>sa.call(e),Uc=e=>ri(e).slice(8,-1),aa=e=>ri(e)==="[object Object]",mo=e=>be(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,Sn=it(",key,ref,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),go=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},am=/-(\w)/g,st=go(e=>e.replace(am,(t,n)=>n?n.toUpperCase():"")),lm=/\B([A-Z])/g,Ot=go(e=>e.replace(lm,"-$1").toLowerCase()),En=go(e=>e.charAt(0).toUpperCase()+e.slice(1)),Yn=go(e=>e?`on${En(e)}`:""),Er=(e,t)=>!Object.is(e,t),Xn=(e,t)=>{for(let n=0;n<e.length;n++)e[n](t)},ii=(e,t,n)=>{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,value:n})},cn=e=>{const t=parseFloat(e);return isNaN(t)?e:t};let Kc;const Wc=()=>Kc||(Kc=typeof globalThis!="undefined"?globalThis:typeof self!="undefined"?self:typeof window!="undefined"?window:typeof global!="undefined"?global:{});var cm=Object.freeze({__proto__:null,[Symbol.toStringTag]:"Module",EMPTY_ARR:Un,EMPTY_OBJ:Ce,NO:ni,NOOP:pt,PatchFlagNames:_s,babelParserDefaultPlugins:im,camelize:st,capitalize:En,def:ii,escapeHtml:em,escapeHtmlComment:nm,extend:Me,generateCodeFrame:Lc,getGlobalThis:Wc,hasChanged:Er,hasOwn:xe,hyphenate:Ot,includeBooleanAttr:ea,invokeArrayFns:Xn,isArray:ue,isBooleanAttr:Hh,isDate:ia,isFunction:ye,isGloballyWhitelisted:Ic,isHTMLTag:zc,isIntegerKey:mo,isKnownHtmlAttr:Wh,isKnownSvgAttr:Yh,isMap:Kn,isModelListener:ho,isNoUnitNumericStyleProp:jc,isObject:je,isOn:yn,isPlainObject:aa,isPromise:oa,isReservedProp:Sn,isSSRSafeAttrName:Uh,isSVGTag:Bc,isSet:bn,isSpecialBooleanAttr:Fc,isString:be,isSymbol:Wn,isVoidTag:Hc,looseEqual:ln,looseIndexOf:ti,makeMap:it,normalizeClass:vn,normalizeProps:Vc,normalizeStyle:Zt,objectToString:sa,parseStringStyle:na,propsToAttrMap:Kh,remove:ra,slotFlagsText:zh,stringifyStyle:Zh,toDisplayString:Jt,toHandlerKey:Yn,toNumber:cn,toRawType:Uc,toTypeString:ri});let Qt;const vo=[];class la{constructor(t=!1){this.active=!0,this.effects=[],this.cleanups=[],!t&&Qt&&(this.parent=Qt,this.index=(Qt.scopes||(Qt.scopes=[])).push(this)-1)}run(t){if(this.active)try{return this.on(),t()}finally{this.off()}}on(){this.active&&(vo.push(this),Qt=this)}off(){this.active&&(vo.pop(),Qt=vo[vo.length-1])}stop(t){if(this.active){if(this.effects.forEach(n=>n.stop()),this.cleanups.forEach(n=>n()),this.scopes&&this.scopes.forEach(n=>n.stop(!0)),this.parent&&!t){const n=this.parent.scopes.pop();n&&n!==this&&(this.parent.scopes[this.index]=n,n.index=this.index)}this.active=!1}}}function um(e){return new la(e)}function Yc(e,t){t=t||Qt,t&&t.active&&t.effects.push(e)}function fm(){return Qt}function pm(e){Qt&&Qt.cleanups.push(e)}const ca=e=>{const t=new Set(e);return t.w=0,t.n=0,t},Xc=e=>(e.w&On)>0,Gc=e=>(e.n&On)>0,dm=({deps:e})=>{if(e.length)for(let t=0;t<e.length;t++)e[t].w|=On},hm=e=>{const{deps:t}=e;if(t.length){let n=0;for(let r=0;r<t.length;r++){const i=t[r];Xc(i)&&!Gc(i)?i.delete(e):t[n++]=i,i.w&=~On,i.n&=~On}t.length=n}},ua=new WeakMap;let oi=0,On=1;const fa=30,si=[];let Gn;const Zn=Symbol(""),pa=Symbol("");class ai{constructor(t,n=null,r){this.fn=t,this.scheduler=n,this.active=!0,this.deps=[],Yc(this,r)}run(){if(!this.active)return this.fn();if(!si.includes(this))try{return si.push(Gn=this),vm(),On=1<<++oi,oi<=fa?dm(this):Zc(this),this.fn()}finally{oi<=fa&&hm(this),On=1<<--oi,wn(),si.pop();const t=si.length;Gn=t>0?si[t-1]:void 0}}stop(){this.active&&(Zc(this),this.onStop&&this.onStop(),this.active=!1)}}function Zc(e){const{deps:t}=e;if(t.length){for(let n=0;n<t.length;n++)t[n].delete(e);t.length=0}}function mm(e,t){e.effect&&(e=e.effect.fn);const n=new ai(e);t&&(Me(n,t),t.scope&&Yc(n,t.scope)),(!t||!t.lazy)&&n.run();const r=n.run.bind(n);return r.effect=n,r}function gm(e){e.effect.stop()}let Or=!0;const da=[];function Jn(){da.push(Or),Or=!1}function vm(){da.push(Or),Or=!0}function wn(){const e=da.pop();Or=e===void 0?!0:e}function wt(e,t,n){if(!Jc())return;let r=ua.get(e);r||ua.set(e,r=new Map);let i=r.get(n);i||r.set(n,i=ca()),Qc(i)}function Jc(){return Or&&Gn!==void 0}function Qc(e,t){let n=!1;oi<=fa?Gc(e)||(e.n|=On,n=!Xc(e)):n=!e.has(Gn),n&&(e.add(Gn),Gn.deps.push(e))}function un(e,t,n,r,i,o){const s=ua.get(e);if(!s)return;let a=[];if(t==="clear")a=[...s.values()];else if(n==="length"&&ue(e))s.forEach((l,c)=>{(c==="length"||c>=r)&&a.push(l)});else switch(n!==void 0&&a.push(s.get(n)),t){case"add":ue(e)?mo(n)&&a.push(s.get("length")):(a.push(s.get(Zn)),Kn(e)&&a.push(s.get(pa)));break;case"delete":ue(e)||(a.push(s.get(Zn)),Kn(e)&&a.push(s.get(pa)));break;case"set":Kn(e)&&a.push(s.get(Zn));break}if(a.length===1)a[0]&&ha(a[0]);else{const l=[];for(const c of a)c&&l.push(...c);ha(ca(l))}}function ha(e,t){for(const n of ue(e)?e:[...e])(n!==Gn||n.allowRecurse)&&(n.scheduler?n.scheduler():n.run())}const ym=it("__proto__,__v_isRef,__isVue"),qc=new Set(Object.getOwnPropertyNames(Symbol).map(e=>Symbol[e]).filter(Wn)),bm=yo(),Sm=yo(!1,!0),Em=yo(!0),Om=yo(!0,!0),_c=wm();function wm(){const e={};return["includes","indexOf","lastIndexOf"].forEach(t=>{e[t]=function(...n){const r=Te(this);for(let o=0,s=this.length;o<s;o++)wt(r,"get",o+"");const i=r[t](...n);return i===-1||i===!1?r[t](...n.map(Te)):i}}),["push","pop","shift","unshift","splice"].forEach(t=>{e[t]=function(...n){Jn();const r=Te(this)[t].apply(this,n);return wn(),r}}),e}function yo(e=!1,t=!1){return function(r,i,o){if(i==="__v_isReactive")return!e;if(i==="__v_isReadonly")return e;if(i==="__v_raw"&&o===(e?t?uu:cu:t?lu:au).get(r))return r;const s=ue(r);if(!e&&s&&xe(_c,i))return Reflect.get(_c,i,o);const a=Reflect.get(r,i,o);return(Wn(i)?qc.has(i):ym(i))||(e||wt(r,"get",i),t)?a:at(a)?!s||!mo(i)?a.value:a:je(a)?e?ga(a):xo(a):a}}const Tm=eu(),Pm=eu(!0);function eu(e=!1){return function(n,r,i,o){let s=n[r];if(!e&&(i=Te(i),s=Te(s),!ue(n)&&at(s)&&!at(i)))return s.value=i,!0;const a=ue(n)&&mo(r)?Number(r)<n.length:xe(n,r),l=Reflect.set(n,r,i,o);return n===Te(o)&&(a?Er(i,s)&&un(n,"set",r,i):un(n,"add",r,i)),l}}function xm(e,t){const n=xe(e,t);e[t];const r=Reflect.deleteProperty(e,t);return r&&n&&un(e,"delete",t,void 0),r}function Cm(e,t){const n=Reflect.has(e,t);return(!Wn(t)||!qc.has(t))&&wt(e,"has",t),n}function Mm(e){return wt(e,"iterate",ue(e)?"length":Zn),Reflect.ownKeys(e)}const tu={get:bm,set:Tm,deleteProperty:xm,has:Cm,ownKeys:Mm},nu={get:Em,set(e,t){return!0},deleteProperty(e,t){return!0}},Am=Me({},tu,{get:Sm,set:Pm}),Nm=Me({},nu,{get:Om}),ma=e=>e,bo=e=>Reflect.getPrototypeOf(e);function So(e,t,n=!1,r=!1){e=e.__v_raw;const i=Te(e),o=Te(t);t!==o&&!n&&wt(i,"get",t),!n&&wt(i,"get",o);const{has:s}=bo(i),a=r?ma:n?Sa:li;if(s.call(i,t))return a(e.get(t));if(s.call(i,o))return a(e.get(o));e!==i&&e.get(t)}function Eo(e,t=!1){const n=this.__v_raw,r=Te(n),i=Te(e);return e!==i&&!t&&wt(r,"has",e),!t&&wt(r,"has",i),e===i?n.has(e):n.has(e)||n.has(i)}function Oo(e,t=!1){return e=e.__v_raw,!t&&wt(Te(e),"iterate",Zn),Reflect.get(e,"size",e)}function ru(e){e=Te(e);const t=Te(this);return bo(t).has.call(t,e)||(t.add(e),un(t,"add",e,e)),this}function iu(e,t){t=Te(t);const n=Te(this),{has:r,get:i}=bo(n);let o=r.call(n,e);o||(e=Te(e),o=r.call(n,e));const s=i.call(n,e);return n.set(e,t),o?Er(t,s)&&un(n,"set",e,t):un(n,"add",e,t),this}function ou(e){const t=Te(this),{has:n,get:r}=bo(t);let i=n.call(t,e);i||(e=Te(e),i=n.call(t,e)),r&&r.call(t,e);const o=t.delete(e);return i&&un(t,"delete",e,void 0),o}function su(){const e=Te(this),t=e.size!==0,n=e.clear();return t&&un(e,"clear",void 0,void 0),n}function wo(e,t){return function(r,i){const o=this,s=o.__v_raw,a=Te(s),l=t?ma:e?Sa:li;return!e&&wt(a,"iterate",Zn),s.forEach((c,u)=>r.call(i,l(c),l(u),o))}}function To(e,t,n){return function(...r){const i=this.__v_raw,o=Te(i),s=Kn(o),a=e==="entries"||e===Symbol.iterator&&s,l=e==="keys"&&s,c=i[e](...r),u=n?ma:t?Sa:li;return!t&&wt(o,"iterate",l?pa:Zn),{next(){const{value:f,done:p}=c.next();return p?{value:f,done:p}:{value:a?[u(f[0]),u(f[1])]:u(f),done:p}},[Symbol.iterator](){return this}}}}function Tn(e){return function(...t){return e==="delete"?!1:this}}function Rm(){const e={get(o){return So(this,o)},get size(){return Oo(this)},has:Eo,add:ru,set:iu,delete:ou,clear:su,forEach:wo(!1,!1)},t={get(o){return So(this,o,!1,!0)},get size(){return Oo(this)},has:Eo,add:ru,set:iu,delete:ou,clear:su,forEach:wo(!1,!0)},n={get(o){return So(this,o,!0)},get size(){return Oo(this,!0)},has(o){return Eo.call(this,o,!0)},add:Tn("add"),set:Tn("set"),delete:Tn("delete"),clear:Tn("clear"),forEach:wo(!0,!1)},r={get(o){return So(this,o,!0,!0)},get size(){return Oo(this,!0)},has(o){return Eo.call(this,o,!0)},add:Tn("add"),set:Tn("set"),delete:Tn("delete"),clear:Tn("clear"),forEach:wo(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(o=>{e[o]=To(o,!1,!1),n[o]=To(o,!0,!1),t[o]=To(o,!1,!0),r[o]=To(o,!0,!0)}),[e,n,t,r]}const[Im,$m,Lm,Dm]=Rm();function Po(e,t){const n=t?e?Dm:Lm:e?$m:Im;return(r,i,o)=>i==="__v_isReactive"?!e:i==="__v_isReadonly"?e:i==="__v_raw"?r:Reflect.get(xe(n,i)&&i in r?n:r,i,o)}const Fm={get:Po(!1,!1)},jm={get:Po(!1,!0)},Vm={get:Po(!0,!1)},zm={get:Po(!0,!0)},au=new WeakMap,lu=new WeakMap,cu=new WeakMap,uu=new WeakMap;function Bm(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Hm(e){return e.__v_skip||!Object.isExtensible(e)?0:Bm(Uc(e))}function xo(e){return e&&e.__v_isReadonly?e:Co(e,!1,tu,Fm,au)}function fu(e){return Co(e,!1,Am,jm,lu)}function ga(e){return Co(e,!0,nu,Vm,cu)}function km(e){return Co(e,!0,Nm,zm,uu)}function Co(e,t,n,r,i){if(!je(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const o=i.get(e);if(o)return o;const s=Hm(e);if(s===0)return e;const a=new Proxy(e,s===2?r:n);return i.set(e,a),a}function Qn(e){return va(e)?Qn(e.__v_raw):!!(e&&e.__v_isReactive)}function va(e){return!!(e&&e.__v_isReadonly)}function ya(e){return Qn(e)||va(e)}function Te(e){const t=e&&e.__v_raw;return t?Te(t):e}function ba(e){return ii(e,"__v_skip",!0),e}const li=e=>je(e)?xo(e):e,Sa=e=>je(e)?ga(e):e;function Ea(e){Jc()&&(e=Te(e),e.dep||(e.dep=ca()),Qc(e.dep))}function Mo(e,t){e=Te(e),e.dep&&ha(e.dep)}function at(e){return Boolean(e&&e.__v_isRef===!0)}function Pn(e){return pu(e,!1)}function Um(e){return pu(e,!0)}function pu(e,t){return at(e)?e:new Km(e,t)}class Km{constructor(t,n){this._shallow=n,this.dep=void 0,this.__v_isRef=!0,this._rawValue=n?t:Te(t),this._value=n?t:li(t)}get value(){return Ea(this),this._value}set value(t){t=this._shallow?t:Te(t),Er(t,this._rawValue)&&(this._rawValue=t,this._value=this._shallow?t:li(t),Mo(this))}}function Wm(e){Mo(e)}function du(e){return at(e)?e.value:e}const Ym={get:(e,t,n)=>du(Reflect.get(e,t,n)),set:(e,t,n,r)=>{const i=e[t];return at(i)&&!at(n)?(i.value=n,!0):Reflect.set(e,t,n,r)}};function Oa(e){return Qn(e)?e:new Proxy(e,Ym)}class Xm{constructor(t){this.dep=void 0,this.__v_isRef=!0;const{get:n,set:r}=t(()=>Ea(this),()=>Mo(this));this._get=n,this._set=r}get value(){return this._get()}set value(t){this._set(t)}}function Gm(e){return new Xm(e)}function ci(e){const t=ue(e)?new Array(e.length):{};for(const n in e)t[n]=hu(e,n);return t}class Zm{constructor(t,n){this._object=t,this._key=n,this.__v_isRef=!0}get value(){return this._object[this._key]}set value(t){this._object[this._key]=t}}function hu(e,t){const n=e[t];return at(n)?n:new Zm(e,t)}class Jm{constructor(t,n,r){this._setter=n,this.dep=void 0,this._dirty=!0,this.__v_isRef=!0,this.effect=new ai(t,()=>{this._dirty||(this._dirty=!0,Mo(this))}),this.__v_isReadonly=r}get value(){const t=Te(this);return Ea(t),t._dirty&&(t._dirty=!1,t._value=t.effect.run()),t._value}set value(t){this._setter(t)}}function xn(e,t){let n,r;const i=ye(e);return i?(n=e,r=pt):(n=e.get,r=e.set),new Jm(n,r,i||!r)}Promise.resolve();let ui,mu=[];function gu(e,t){ui=e,ui?(ui.enabled=!0,mu.forEach(({event:n,args:r})=>ui.emit(n,...r)),mu=[]):(t.__VUE_DEVTOOLS_HOOK_REPLAY__=t.__VUE_DEVTOOLS_HOOK_REPLAY__||[]).push(r=>{gu(r,t)})}function Qm(e,t,...n){const r=e.vnode.props||Ce;let i=n;const o=t.startsWith("update:"),s=o&&t.slice(7);if(s&&s in r){const u=`${s==="modelValue"?"model":s}Modifiers`,{number:f,trim:p}=r[u]||Ce;p?i=n.map(d=>d.trim()):f&&(i=n.map(cn))}let a,l=r[a=Yn(t)]||r[a=Yn(st(t))];!l&&o&&(l=r[a=Yn(Ot(t))]),l&&xt(l,e,6,i);const c=r[a+"Once"];if(c){if(!e.emitted)e.emitted={};else if(e.emitted[a])return;e.emitted[a]=!0,xt(c,e,6,i)}}function vu(e,t,n=!1){const r=t.emitsCache,i=r.get(e);if(i!==void 0)return i;const o=e.emits;let s={},a=!1;if(!ye(e)){const l=c=>{const u=vu(c,t,!0);u&&(a=!0,Me(s,u))};!n&&t.mixins.length&&t.mixins.forEach(l),e.extends&&l(e.extends),e.mixins&&e.mixins.forEach(l)}return!o&&!a?(r.set(e,null),null):(ue(o)?o.forEach(l=>s[l]=null):Me(s,o),r.set(e,s),s)}function wa(e,t){return!e||!yn(t)?!1:(t=t.slice(2).replace(/Once$/,""),xe(e,t[0].toLowerCase()+t.slice(1))||xe(e,Ot(t))||xe(e,t))}let Tt=null,Ao=null;function fi(e){const t=Tt;return Tt=e,Ao=e&&e.type.__scopeId||null,t}function yu(e){Ao=e}function bu(){Ao=null}const Su=e=>qt;function qt(e,t=Tt,n){if(!t||e._n)return e;const r=(...i)=>{r._d&&ka(-1);const o=fi(t),s=e(...i);return fi(o),r._d&&ka(1),s};return r._n=!0,r._c=!0,r._d=!0,r}function No(e){const{type:t,vnode:n,proxy:r,withProxy:i,props:o,propsOptions:[s],slots:a,attrs:l,emit:c,render:u,renderCache:f,data:p,setupState:d,ctx:m,inheritAttrs:b}=e;let v,S;const g=fi(e);try{if(n.shapeFlag&4){const E=i||r;v=Pt(u.call(E,E,f,o,d,p,m)),S=l}else{const E=t;v=Pt(E.length>1?E(o,{attrs:l,slots:a,emit:c}):E(o,null)),S=t.props?l:_m(l)}}catch(E){bi.length=0,nr(E,e,1),v=he(ht)}let O=v;if(S&&b!==!1){const E=Object.keys(S),{shapeFlag:$}=O;E.length&&$&(1|6)&&(s&&E.some(ho)&&(S=eg(S,s)),O=An(O,S))}return n.dirs&&(O.dirs=O.dirs?O.dirs.concat(n.dirs):n.dirs),n.transition&&(O.transition=n.transition),v=O,fi(g),v}function qm(e){let t;for(let n=0;n<e.length;n++){const r=e[n];if(Mn(r)){if(r.type!==ht||r.children==="v-if"){if(t)return;t=r}}else return}return t}const _m=e=>{let t;for(const n in e)(n==="class"||n==="style"||yn(n))&&((t||(t={}))[n]=e[n]);return t},eg=(e,t)=>{const n={};for(const r in e)(!ho(r)||!(r.slice(9)in t))&&(n[r]=e[r]);return n};function tg(e,t,n){const{props:r,children:i,component:o}=e,{props:s,children:a,patchFlag:l}=t,c=o.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&l>=0){if(l&1024)return!0;if(l&16)return r?Eu(r,s,c):!!s;if(l&8){const u=t.dynamicProps;for(let f=0;f<u.length;f++){const p=u[f];if(s[p]!==r[p]&&!wa(c,p))return!0}}}else return(i||a)&&(!a||!a.$stable)?!0:r===s?!1:r?s?Eu(r,s,c):!0:!!s;return!1}function Eu(e,t,n){const r=Object.keys(t);if(r.length!==Object.keys(e).length)return!0;for(let i=0;i<r.length;i++){const o=r[i];if(t[o]!==e[o]&&!wa(n,o))return!0}return!1}function Ta({vnode:e,parent:t},n){for(;t&&t.subTree===e;)(e=t.vnode).el=n,t=t.parent}const ng=e=>e.__isSuspense,rg={name:"Suspense",__isSuspense:!0,process(e,t,n,r,i,o,s,a,l,c){e==null?og(t,n,r,i,o,s,a,l,c):sg(e,t,n,r,i,s,a,l,c)},hydrate:ag,create:Pa,normalize:lg},ig=rg;function pi(e,t){const n=e.props&&e.props[t];ye(n)&&n()}function og(e,t,n,r,i,o,s,a,l){const{p:c,o:{createElement:u}}=l,f=u("div"),p=e.suspense=Pa(e,i,r,t,f,n,o,s,a,l);c(null,p.pendingBranch=e.ssContent,f,null,r,p,o,s),p.deps>0?(pi(e,"onPending"),pi(e,"onFallback"),c(null,e.ssFallback,t,n,r,null,o,s),wr(p,e.ssFallback)):p.resolve()}function sg(e,t,n,r,i,o,s,a,{p:l,um:c,o:{createElement:u}}){const f=t.suspense=e.suspense;f.vnode=t,t.el=e.el;const p=t.ssContent,d=t.ssFallback,{activeBranch:m,pendingBranch:b,isInFallback:v,isHydrating:S}=f;if(b)f.pendingBranch=p,tn(p,b)?(l(b,p,f.hiddenContainer,null,i,f,o,s,a),f.deps<=0?f.resolve():v&&(l(m,d,n,r,i,null,o,s,a),wr(f,d))):(f.pendingId++,S?(f.isHydrating=!1,f.activeBranch=b):c(b,i,f),f.deps=0,f.effects.length=0,f.hiddenContainer=u("div"),v?(l(null,p,f.hiddenContainer,null,i,f,o,s,a),f.deps<=0?f.resolve():(l(m,d,n,r,i,null,o,s,a),wr(f,d))):m&&tn(p,m)?(l(m,p,n,r,i,f,o,s,a),f.resolve(!0)):(l(null,p,f.hiddenContainer,null,i,f,o,s,a),f.deps<=0&&f.resolve()));else if(m&&tn(p,m))l(m,p,n,r,i,f,o,s,a),wr(f,p);else if(pi(t,"onPending"),f.pendingBranch=p,f.pendingId++,l(null,p,f.hiddenContainer,null,i,f,o,s,a),f.deps<=0)f.resolve();else{const{timeout:g,pendingId:O}=f;g>0?setTimeout(()=>{f.pendingId===O&&f.fallback(d)},g):g===0&&f.fallback(d)}}function Pa(e,t,n,r,i,o,s,a,l,c,u=!1){const{p:f,m:p,um:d,n:m,o:{parentNode:b,remove:v}}=c,S=cn(e.props&&e.props.timeout),g={vnode:e,parent:t,parentComponent:n,isSVG:s,container:r,hiddenContainer:i,anchor:o,deps:0,pendingId:0,timeout:typeof S=="number"?S:-1,activeBranch:null,pendingBranch:null,isInFallback:!0,isHydrating:u,isUnmounted:!1,effects:[],resolve(O=!1){const{vnode:E,activeBranch:$,pendingBranch:R,pendingId:T,effects:P,parentComponent:N,container:j}=g;if(g.isHydrating)g.isHydrating=!1;else if(!O){const C=$&&R.transition&&R.transition.mode==="out-in";C&&($.transition.afterLeave=()=>{T===g.pendingId&&p(R,j,w,0)});let{anchor:w}=g;$&&(w=m($),d($,N,g,!0)),C||p(R,j,w,0)}wr(g,R),g.pendingBranch=null,g.isInFallback=!1;let V=g.parent,F=!1;for(;V;){if(V.pendingBranch){V.effects.push(...P),F=!0;break}V=V.parent}F||_a(P),g.effects=[],pi(E,"onResolve")},fallback(O){if(!g.pendingBranch)return;const{vnode:E,activeBranch:$,parentComponent:R,container:T,isSVG:P}=g;pi(E,"onFallback");const N=m($),j=()=>{!g.isInFallback||(f(null,O,T,N,R,null,P,a,l),wr(g,O))},V=O.transition&&O.transition.mode==="out-in";V&&($.transition.afterLeave=j),g.isInFallback=!0,d($,R,null,!0),V||j()},move(O,E,$){g.activeBranch&&p(g.activeBranch,O,E,$),g.container=O},next(){return g.activeBranch&&m(g.activeBranch)},registerDep(O,E){const $=!!g.pendingBranch;$&&g.deps++;const R=O.vnode.el;O.asyncDep.catch(T=>{nr(T,O,0)}).then(T=>{if(O.isUnmounted||g.isUnmounted||g.pendingId!==O.suspenseId)return;O.asyncResolved=!0;const{vnode:P}=O;Ya(O,T,!1),R&&(P.el=R);const N=!R&&O.subTree.el;E(O,P,b(R||O.subTree.el),R?null:m(O.subTree),g,s,l),N&&v(N),Ta(O,P.el),$&&--g.deps==0&&g.resolve()})},unmount(O,E){g.isUnmounted=!0,g.activeBranch&&d(g.activeBranch,n,O,E),g.pendingBranch&&d(g.pendingBranch,n,O,E)}};return g}function ag(e,t,n,r,i,o,s,a,l){const c=t.suspense=Pa(t,r,n,e.parentNode,document.createElement("div"),null,i,o,s,a,!0),u=l(e,c.pendingBranch=t.ssContent,n,c,o,s);return c.deps===0&&c.resolve(),u}function lg(e){const{shapeFlag:t,children:n}=e,r=t&32;e.ssContent=Ou(r?n.default:n),e.ssFallback=r?Ou(n.fallback):he(ht)}function Ou(e){let t;if(ye(e)){const n=Mr&&e._c;n&&(e._d=!1,Ie()),e=e(),n&&(e._d=!0,t=en,nf())}return ue(e)&&(e=qm(e)),e=Pt(e),t&&!e.dynamicChildren&&(e.dynamicChildren=t.filter(n=>n!==e)),e}function wu(e,t){t&&t.pendingBranch?ue(e)?t.effects.push(...e):t.effects.push(e):_a(e)}function wr(e,t){e.activeBranch=t;const{vnode:n,parentComponent:r}=e,i=n.el=t.el;r&&r.subTree===n&&(r.vnode.el=i,Ta(r,i))}function Tu(e,t){if(et){let n=et.provides;const r=et.parent&&et.parent.provides;r===n&&(n=et.provides=Object.create(r)),n[e]=t}}function di(e,t,n=!1){const r=et||Tt;if(r){const i=r.parent==null?r.vnode.appContext&&r.vnode.appContext.provides:r.parent.provides;if(i&&e in i)return i[e];if(arguments.length>1)return n&&ye(t)?t.call(r.proxy):t}}function xa(){const e={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return Pr(()=>{e.isMounted=!0}),Lo(()=>{e.isUnmounting=!0}),e}const $t=[Function,Array],cg={name:"BaseTransition",props:{mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:$t,onEnter:$t,onAfterEnter:$t,onEnterCancelled:$t,onBeforeLeave:$t,onLeave:$t,onAfterLeave:$t,onLeaveCancelled:$t,onBeforeAppear:$t,onAppear:$t,onAfterAppear:$t,onAppearCancelled:$t},setup(e,{slots:t}){const n=In(),r=xa();let i;return()=>{const o=t.default&&Ro(t.default(),!0);if(!o||!o.length)return;const s=Te(e),{mode:a}=s,l=o[0];if(r.isLeaving)return Ma(l);const c=xu(l);if(!c)return Ma(l);const u=Tr(c,s,r,n);qn(c,u);const f=n.subTree,p=f&&xu(f);let d=!1;const{getTransitionKey:m}=c.type;if(m){const b=m();i===void 0?i=b:b!==i&&(i=b,d=!0)}if(p&&p.type!==ht&&(!tn(c,p)||d)){const b=Tr(p,s,r,n);if(qn(p,b),a==="out-in")return r.isLeaving=!0,b.afterLeave=()=>{r.isLeaving=!1,n.update()},Ma(l);a==="in-out"&&c.type!==ht&&(b.delayLeave=(v,S,g)=>{const O=Pu(r,p);O[String(p.key)]=p,v._leaveCb=()=>{S(),v._leaveCb=void 0,delete u.delayedLeave},u.delayedLeave=g})}return l}}},Ca=cg;function Pu(e,t){const{leavingVNodes:n}=e;let r=n.get(t.type);return r||(r=Object.create(null),n.set(t.type,r)),r}function Tr(e,t,n,r){const{appear:i,mode:o,persisted:s=!1,onBeforeEnter:a,onEnter:l,onAfterEnter:c,onEnterCancelled:u,onBeforeLeave:f,onLeave:p,onAfterLeave:d,onLeaveCancelled:m,onBeforeAppear:b,onAppear:v,onAfterAppear:S,onAppearCancelled:g}=t,O=String(e.key),E=Pu(n,e),$=(T,P)=>{T&&xt(T,r,9,P)},R={mode:o,persisted:s,beforeEnter(T){let P=a;if(!n.isMounted)if(i)P=b||a;else return;T._leaveCb&&T._leaveCb(!0);const N=E[O];N&&tn(e,N)&&N.el._leaveCb&&N.el._leaveCb(),$(P,[T])},enter(T){let P=l,N=c,j=u;if(!n.isMounted)if(i)P=v||l,N=S||c,j=g||u;else return;let V=!1;const F=T._enterCb=C=>{V||(V=!0,C?$(j,[T]):$(N,[T]),R.delayedLeave&&R.delayedLeave(),T._enterCb=void 0)};P?(P(T,F),P.length<=1&&F()):F()},leave(T,P){const N=String(e.key);if(T._enterCb&&T._enterCb(!0),n.isUnmounting)return P();$(f,[T]);let j=!1;const V=T._leaveCb=F=>{j||(j=!0,P(),F?$(m,[T]):$(d,[T]),T._leaveCb=void 0,E[N]===e&&delete E[N])};E[N]=e,p?(p(T,V),p.length<=1&&V()):V()},clone(T){return Tr(T,t,n,r)}};return R}function Ma(e){if(mi(e))return e=An(e),e.children=null,e}function xu(e){return mi(e)?e.children?e.children[0]:void 0:e}function qn(e,t){e.shapeFlag&6&&e.component?qn(e.component.subTree,t):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function Ro(e,t=!1){let n=[],r=0;for(let i=0;i<e.length;i++){const o=e[i];o.type===Ye?(o.patchFlag&128&&r++,n=n.concat(Ro(o.children,t))):(t||o.type!==ht)&&n.push(o)}if(r>1)for(let i=0;i<n.length;i++)n[i].patchFlag=-2;return n}function Aa(e){return ye(e)?{setup:e,name:e.name}:e}const hi=e=>!!e.type.__asyncLoader;function ug(e){ye(e)&&(e={loader:e});const{loader:t,loadingComponent:n,errorComponent:r,delay:i=200,timeout:o,suspensible:s=!0,onError:a}=e;let l=null,c,u=0;const f=()=>(u++,l=null,p()),p=()=>{let d;return l||(d=l=t().catch(m=>{if(m=m instanceof Error?m:new Error(String(m)),a)return new Promise((b,v)=>{a(m,()=>b(f()),()=>v(m),u+1)});throw m}).then(m=>d!==l&&l?l:(m&&(m.__esModule||m[Symbol.toStringTag]==="Module")&&(m=m.default),c=m,m)))};return Aa({name:"AsyncComponentWrapper",__asyncLoader:p,get __asyncResolved(){return c},setup(){const d=et;if(c)return()=>Na(c,d);const m=g=>{l=null,nr(g,d,13,!r)};if(s&&d.suspense||Oi)return p().then(g=>()=>Na(g,d)).catch(g=>(m(g),()=>r?he(r,{error:g}):null));const b=Pn(!1),v=Pn(),S=Pn(!!i);return i&&setTimeout(()=>{S.value=!1},i),o!=null&&setTimeout(()=>{if(!b.value&&!v.value){const g=new Error(`Async component timed out after ${o}ms.`);m(g),v.value=g}},o),p().then(()=>{b.value=!0,d.parent&&mi(d.parent.vnode)&&qa(d.parent.update)}).catch(g=>{m(g),v.value=g}),()=>{if(b.value&&c)return Na(c,d);if(v.value&&r)return he(r,{error:v.value});if(n&&!S.value)return he(n)}}})}function Na(e,{vnode:{ref:t,props:n,children:r}}){const i=he(e,n,r);return i.ref=t,i}const mi=e=>e.type.__isKeepAlive,fg={name:"KeepAlive",__isKeepAlive:!0,props:{include:[String,RegExp,Array],exclude:[String,RegExp,Array],max:[String,Number]},setup(e,{slots:t}){const n=In(),r=n.ctx;if(!r.renderer)return t.default;const i=new Map,o=new Set;let s=null;const a=n.suspense,{renderer:{p:l,m:c,um:u,o:{createElement:f}}}=r,p=f("div");r.activate=(g,O,E,$,R)=>{const T=g.component;c(g,O,E,0,a),l(T.vnode,g,O,E,T,a,$,g.slotScopeIds,R),ot(()=>{T.isDeactivated=!1,T.a&&Xn(T.a);const P=g.props&&g.props.onVnodeMounted;P&&St(P,T.parent,g)},a)},r.deactivate=g=>{const O=g.component;c(g,p,null,1,a),ot(()=>{O.da&&Xn(O.da);const E=g.props&&g.props.onVnodeUnmounted;E&&St(E,O.parent,g),O.isDeactivated=!0},a)};function d(g){Ra(g),u(g,n,a)}function m(g){i.forEach((O,E)=>{const $=Wo(O.type);$&&(!g||!g($))&&b(E)})}function b(g){const O=i.get(g);!s||O.type!==s.type?d(O):s&&Ra(s),i.delete(g),o.delete(g)}lt(()=>[e.include,e.exclude],([g,O])=>{g&&m(E=>gi(g,E)),O&&m(E=>!gi(O,E))},{flush:"post",deep:!0});let v=null;const S=()=>{v!=null&&i.set(v,Ia(n.subTree))};return Pr(S),$o(S),Lo(()=>{i.forEach(g=>{const{subTree:O,suspense:E}=n,$=Ia(O);if(g.type===$.type){Ra($);const R=$.component.da;R&&ot(R,E);return}d(g)})}),()=>{if(v=null,!t.default)return null;const g=t.default(),O=g[0];if(g.length>1)return s=null,g;if(!Mn(O)||!(O.shapeFlag&4)&&!(O.shapeFlag&128))return s=null,O;let E=Ia(O);const $=E.type,R=Wo(hi(E)?E.type.__asyncResolved||{}:$),{include:T,exclude:P,max:N}=e;if(T&&(!R||!gi(T,R))||P&&R&&gi(P,R))return s=E,O;const j=E.key==null?$:E.key,V=i.get(j);return E.el&&(E=An(E),O.shapeFlag&128&&(O.ssContent=E)),v=j,V?(E.el=V.el,E.component=V.component,E.transition&&qn(E,E.transition),E.shapeFlag|=512,o.delete(j),o.add(j)):(o.add(j),N&&o.size>parseInt(N,10)&&b(o.values().next().value)),E.shapeFlag|=256,s=E,O}}},pg=fg;function gi(e,t){return ue(e)?e.some(n=>gi(n,t)):be(e)?e.split(",").indexOf(t)>-1:e.test?e.test(t):!1}function Cu(e,t){Au(e,"a",t)}function Mu(e,t){Au(e,"da",t)}function Au(e,t,n=et){const r=e.__wdc||(e.__wdc=()=>{let i=n;for(;i;){if(i.isDeactivated)return;i=i.parent}e()});if(Io(t,r,n),n){let i=n.parent;for(;i&&i.parent;)mi(i.parent.vnode)&&dg(r,t,n,i),i=i.parent}}function dg(e,t,n,r){const i=Io(t,e,r,!0);vi(()=>{ra(r[t],i)},n)}function Ra(e){let t=e.shapeFlag;t&256&&(t-=256),t&512&&(t-=512),e.shapeFlag=t}function Ia(e){return e.shapeFlag&128?e.ssContent:e}function Io(e,t,n=et,r=!1){if(n){const i=n[e]||(n[e]=[]),o=t.__weh||(t.__weh=(...s)=>{if(n.isUnmounted)return;Jn(),$n(n);const a=xt(t,n,e,s);return Ln(),wn(),a});return r?i.unshift(o):i.push(o),o}}const fn=e=>(t,n=et)=>(!Oi||e==="sp")&&Io(e,t,n),Nu=fn("bm"),Pr=fn("m"),Ru=fn("bu"),$o=fn("u"),Lo=fn("bum"),vi=fn("um"),Iu=fn("sp"),$u=fn("rtg"),Lu=fn("rtc");function Du(e,t=et){Io("ec",e,t)}let $a=!0;function hg(e){const t=Vu(e),n=e.proxy,r=e.ctx;$a=!1,t.beforeCreate&&Fu(t.beforeCreate,e,"bc");const{data:i,computed:o,methods:s,watch:a,provide:l,inject:c,created:u,beforeMount:f,mounted:p,beforeUpdate:d,updated:m,activated:b,deactivated:v,beforeDestroy:S,beforeUnmount:g,destroyed:O,unmounted:E,render:$,renderTracked:R,renderTriggered:T,errorCaptured:P,serverPrefetch:N,expose:j,inheritAttrs:V,components:F,directives:C,filters:w}=t;if(c&&mg(c,r,null,e.appContext.config.unwrapInjectedRef),s)for(const z in s){const B=s[z];ye(B)&&(r[z]=B.bind(n))}if(i){const z=i.call(n,n);je(z)&&(e.data=xo(z))}if($a=!0,o)for(const z in o){const B=o[z],K=ye(B)?B.bind(n,n):ye(B.get)?B.get.bind(n,n):pt,G=!ye(B)&&ye(B.set)?B.set.bind(n):pt,de=xn({get:K,set:G});Object.defineProperty(r,z,{enumerable:!0,configurable:!0,get:()=>de.value,set:ce=>de.value=ce})}if(a)for(const z in a)ju(a[z],r,n,z);if(l){const z=ye(l)?l.call(n):l;Reflect.ownKeys(z).forEach(B=>{Tu(B,z[B])})}u&&Fu(u,e,"c");function L(z,B){ue(B)?B.forEach(K=>z(K.bind(n))):B&&z(B.bind(n))}if(L(Nu,f),L(Pr,p),L(Ru,d),L($o,m),L(Cu,b),L(Mu,v),L(Du,P),L(Lu,R),L($u,T),L(Lo,g),L(vi,E),L(Iu,N),ue(j))if(j.length){const z=e.exposed||(e.exposed={});j.forEach(B=>{Object.defineProperty(z,B,{get:()=>n[B],set:K=>n[B]=K})})}else e.exposed||(e.exposed={});$&&e.render===pt&&(e.render=$),V!=null&&(e.inheritAttrs=V),F&&(e.components=F),C&&(e.directives=C)}function mg(e,t,n=pt,r=!1){ue(e)&&(e=La(e));for(const i in e){const o=e[i];let s;je(o)?"default"in o?s=di(o.from||i,o.default,!0):s=di(o.from||i):s=di(o),at(s)&&r?Object.defineProperty(t,i,{enumerable:!0,configurable:!0,get:()=>s.value,set:a=>s.value=a}):t[i]=s}}function Fu(e,t,n){xt(ue(e)?e.map(r=>r.bind(t.proxy)):e.bind(t.proxy),t,n)}function ju(e,t,n,r){const i=r.includes(".")?Of(n,r):()=>n[r];if(be(e)){const o=t[e];ye(o)&&lt(i,o)}else if(ye(e))lt(i,e.bind(n));else if(je(e))if(ue(e))e.forEach(o=>ju(o,t,n,r));else{const o=ye(e.handler)?e.handler.bind(n):t[e.handler];ye(o)&&lt(i,o,e)}}function Vu(e){const t=e.type,{mixins:n,extends:r}=t,{mixins:i,optionsCache:o,config:{optionMergeStrategies:s}}=e.appContext,a=o.get(t);let l;return a?l=a:!i.length&&!n&&!r?l=t:(l={},i.length&&i.forEach(c=>Do(l,c,s,!0)),Do(l,t,s)),o.set(t,l),l}function Do(e,t,n,r=!1){const{mixins:i,extends:o}=t;o&&Do(e,o,n,!0),i&&i.forEach(s=>Do(e,s,n,!0));for(const s in t)if(!(r&&s==="expose")){const a=gg[s]||n&&n[s];e[s]=a?a(e[s],t[s]):t[s]}return e}const gg={data:zu,props:_n,emits:_n,methods:_n,computed:_n,beforeCreate:dt,created:dt,beforeMount:dt,mounted:dt,beforeUpdate:dt,updated:dt,beforeDestroy:dt,beforeUnmount:dt,destroyed:dt,unmounted:dt,activated:dt,deactivated:dt,errorCaptured:dt,serverPrefetch:dt,components:_n,directives:_n,watch:yg,provide:zu,inject:vg};function zu(e,t){return t?e?function(){return Me(ye(e)?e.call(this,this):e,ye(t)?t.call(this,this):t)}:t:e}function vg(e,t){return _n(La(e),La(t))}function La(e){if(ue(e)){const t={};for(let n=0;n<e.length;n++)t[e[n]]=e[n];return t}return e}function dt(e,t){return e?[...new Set([].concat(e,t))]:t}function _n(e,t){return e?Me(Me(Object.create(null),e),t):t}function yg(e,t){if(!e)return t;if(!t)return e;const n=Me(Object.create(null),e);for(const r in t)n[r]=dt(e[r],t[r]);return n}function bg(e,t,n,r=!1){const i={},o={};ii(o,zo,1),e.propsDefaults=Object.create(null),Bu(e,t,i,o);for(const s in e.propsOptions[0])s in i||(i[s]=void 0);n?e.props=r?i:fu(i):e.type.props?e.props=i:e.props=o,e.attrs=o}function Sg(e,t,n,r){const{props:i,attrs:o,vnode:{patchFlag:s}}=e,a=Te(i),[l]=e.propsOptions;let c=!1;if((r||s>0)&&!(s&16)){if(s&8){const u=e.vnode.dynamicProps;for(let f=0;f<u.length;f++){let p=u[f];const d=t[p];if(l)if(xe(o,p))d!==o[p]&&(o[p]=d,c=!0);else{const m=st(p);i[m]=Da(l,a,m,d,e,!1)}else d!==o[p]&&(o[p]=d,c=!0)}}}else{Bu(e,t,i,o)&&(c=!0);let u;for(const f in a)(!t||!xe(t,f)&&((u=Ot(f))===f||!xe(t,u)))&&(l?n&&(n[f]!==void 0||n[u]!==void 0)&&(i[f]=Da(l,a,f,void 0,e,!0)):delete i[f]);if(o!==a)for(const f in o)(!t||!xe(t,f))&&(delete o[f],c=!0)}c&&un(e,"set","$attrs")}function Bu(e,t,n,r){const[i,o]=e.propsOptions;let s=!1,a;if(t)for(let l in t){if(Sn(l))continue;const c=t[l];let u;i&&xe(i,u=st(l))?!o||!o.includes(u)?n[u]=c:(a||(a={}))[u]=c:wa(e.emitsOptions,l)||c!==r[l]&&(r[l]=c,s=!0)}if(o){const l=Te(n),c=a||Ce;for(let u=0;u<o.length;u++){const f=o[u];n[f]=Da(i,l,f,c[f],e,!xe(c,f))}}return s}function Da(e,t,n,r,i,o){const s=e[n];if(s!=null){const a=xe(s,"default");if(a&&r===void 0){const l=s.default;if(s.type!==Function&&ye(l)){const{propsDefaults:c}=i;n in c?r=c[n]:($n(i),r=c[n]=l.call(null,t),Ln())}else r=l}s[0]&&(o&&!a?r=!1:s[1]&&(r===""||r===Ot(n))&&(r=!0))}return r}function Hu(e,t,n=!1){const r=t.propsCache,i=r.get(e);if(i)return i;const o=e.props,s={},a=[];let l=!1;if(!ye(e)){const u=f=>{l=!0;const[p,d]=Hu(f,t,!0);Me(s,p),d&&a.push(...d)};!n&&t.mixins.length&&t.mixins.forEach(u),e.extends&&u(e.extends),e.mixins&&e.mixins.forEach(u)}if(!o&&!l)return r.set(e,Un),Un;if(ue(o))for(let u=0;u<o.length;u++){const f=st(o[u]);ku(f)&&(s[f]=Ce)}else if(o)for(const u in o){const f=st(u);if(ku(f)){const p=o[u],d=s[f]=ue(p)||ye(p)?{type:p}:p;if(d){const m=Wu(Boolean,d.type),b=Wu(String,d.type);d[0]=m>-1,d[1]=b<0||m<b,(m>-1||xe(d,"default"))&&a.push(f)}}}const c=[s,a];return r.set(e,c),c}function ku(e){return e[0]!=="$"}function Uu(e){const t=e&&e.toString().match(/^\s*function (\w+)/);return t?t[1]:e===null?"null":""}function Ku(e,t){return Uu(e)===Uu(t)}function Wu(e,t){return ue(t)?t.findIndex(n=>Ku(n,e)):ye(t)&&Ku(t,e)?0:-1}const Yu=e=>e[0]==="_"||e==="$stable",Fa=e=>ue(e)?e.map(Pt):[Pt(e)],Eg=(e,t,n)=>{const r=qt((...i)=>Fa(t(...i)),n);return r._c=!1,r},Xu=(e,t,n)=>{const r=e._ctx;for(const i in e){if(Yu(i))continue;const o=e[i];if(ye(o))t[i]=Eg(i,o,r);else if(o!=null){const s=Fa(o);t[i]=()=>s}}},Gu=(e,t)=>{const n=Fa(t);e.slots.default=()=>n},Og=(e,t)=>{if(e.vnode.shapeFlag&32){const n=t._;n?(e.slots=Te(t),ii(t,"_",n)):Xu(t,e.slots={})}else e.slots={},t&&Gu(e,t);ii(e.slots,zo,1)},wg=(e,t,n)=>{const{vnode:r,slots:i}=e;let o=!0,s=Ce;if(r.shapeFlag&32){const a=t._;a?n&&a===1?o=!1:(Me(i,t),!n&&a===1&&delete i._):(o=!t.$stable,Xu(t,i)),s=t}else t&&(Gu(e,t),s={default:1});if(o)for(const a in i)!Yu(a)&&!(a in s)&&delete i[a]};function xr(e,t){const n=Tt;if(n===null)return e;const r=n.proxy,i=e.dirs||(e.dirs=[]);for(let o=0;o<t.length;o++){let[s,a,l,c=Ce]=t[o];ye(s)&&(s={mounted:s,updated:s}),s.deep&&rr(a),i.push({dir:s,instance:r,value:a,oldValue:void 0,arg:l,modifiers:c})}return e}function _t(e,t,n,r){const i=e.dirs,o=t&&t.dirs;for(let s=0;s<i.length;s++){const a=i[s];o&&(a.oldValue=o[s].value);let l=a.dir[r];l&&(Jn(),xt(l,n,8,[e.el,a,e,t]),wn())}}function Zu(){return{app:null,config:{isNativeTag:ni,performance:!1,globalProperties:{},optionMergeStrategies:{},errorHandler:void 0,warnHandler:void 0,compilerOptions:{}},mixins:[],components:{},directives:{},provides:Object.create(null),optionsCache:new WeakMap,propsCache:new WeakMap,emitsCache:new WeakMap}}let Tg=0;function Pg(e,t){return function(r,i=null){i!=null&&!je(i)&&(i=null);const o=Zu(),s=new Set;let a=!1;const l=o.app={_uid:Tg++,_component:r,_props:i,_container:null,_context:o,_instance:null,version:Cf,get config(){return o.config},set config(c){},use(c,...u){return s.has(c)||(c&&ye(c.install)?(s.add(c),c.install(l,...u)):ye(c)&&(s.add(c),c(l,...u))),l},mixin(c){return o.mixins.includes(c)||o.mixins.push(c),l},component(c,u){return u?(o.components[c]=u,l):o.components[c]},directive(c,u){return u?(o.directives[c]=u,l):o.directives[c]},mount(c,u,f){if(!a){const p=he(r,i);return p.appContext=o,u&&t?t(p,c):e(p,c,f),a=!0,l._container=c,c.__vue_app__=l,Ga(p.component)||p.component.proxy}},unmount(){a&&(e(null,l._container),delete l._container.__vue_app__)},provide(c,u){return o.provides[c]=u,l}};return l}}let Cn=!1;const Fo=e=>/svg/.test(e.namespaceURI)&&e.tagName!=="foreignObject",ja=e=>e.nodeType===8;function xg(e){const{mt:t,p:n,o:{patchProp:r,nextSibling:i,parentNode:o,remove:s,insert:a,createComment:l}}=e,c=(v,S)=>{if(!S.hasChildNodes()){n(null,v,S),Go();return}Cn=!1,u(S.firstChild,v,null,null,null),Go(),Cn&&console.error("Hydration completed but contains mismatches.")},u=(v,S,g,O,E,$=!1)=>{const R=ja(v)&&v.data==="[",T=()=>m(v,S,g,O,E,R),{type:P,ref:N,shapeFlag:j}=S,V=v.nodeType;S.el=v;let F=null;switch(P){case Cr:V!==3?F=T():(v.data!==S.children&&(Cn=!0,v.data=S.children),F=i(v));break;case ht:V!==8||R?F=T():F=i(v);break;case tr:if(V!==1)F=T();else{F=v;const C=!S.children.length;for(let w=0;w<S.staticCount;w++)C&&(S.children+=F.outerHTML),w===S.staticCount-1&&(S.anchor=F),F=i(F);return F}break;case Ye:R?F=d(v,S,g,O,E,$):F=T();break;default:if(j&1)V!==1||S.type.toLowerCase()!==v.tagName.toLowerCase()?F=T():F=f(v,S,g,O,E,$);else if(j&6){S.slotScopeIds=E;const C=o(v);if(t(S,C,null,g,O,Fo(C),$),F=R?b(v):i(v),hi(S)){let w;R?(w=he(Ye),w.anchor=F?F.previousSibling:C.lastChild):w=v.nodeType===3?Nn(""):he("div"),w.el=v,S.component.subTree=w}}else j&64?V!==8?F=T():F=S.type.hydrate(v,S,g,O,E,$,e,p):j&128&&(F=S.type.hydrate(v,S,g,O,Fo(o(v)),E,$,e,u))}return N!=null&&jo(N,null,O,S),F},f=(v,S,g,O,E,$)=>{$=$||!!S.dynamicChildren;const{type:R,props:T,patchFlag:P,shapeFlag:N,dirs:j}=S,V=R==="input"&&j||R==="option";if(V||P!==-1){if(j&&_t(S,null,g,"created"),T)if(V||!$||P&(16|32))for(const C in T)(V&&C.endsWith("value")||yn(C)&&!Sn(C))&&r(v,C,null,T[C],!1,void 0,g);else T.onClick&&r(v,"onClick",null,T.onClick,!1,void 0,g);let F;if((F=T&&T.onVnodeBeforeMount)&&St(F,g,S),j&&_t(S,null,g,"beforeMount"),((F=T&&T.onVnodeMounted)||j)&&wu(()=>{F&&St(F,g,S),j&&_t(S,null,g,"mounted")},O),N&16&&!(T&&(T.innerHTML||T.textContent))){let C=p(v.firstChild,S,v,g,O,E,$);for(;C;){Cn=!0;const w=C;C=C.nextSibling,s(w)}}else N&8&&v.textContent!==S.children&&(Cn=!0,v.textContent=S.children)}return v.nextSibling},p=(v,S,g,O,E,$,R)=>{R=R||!!S.dynamicChildren;const T=S.children,P=T.length;for(let N=0;N<P;N++){const j=R?T[N]:T[N]=Pt(T[N]);if(v)v=u(v,j,O,E,$,R);else{if(j.type===Cr&&!j.children)continue;Cn=!0,n(null,j,g,null,O,E,Fo(g),$)}}return v},d=(v,S,g,O,E,$)=>{const{slotScopeIds:R}=S;R&&(E=E?E.concat(R):R);const T=o(v),P=p(i(v),S,T,g,O,E,$);return P&&ja(P)&&P.data==="]"?i(S.anchor=P):(Cn=!0,a(S.anchor=l("]"),T,P),P)},m=(v,S,g,O,E,$)=>{if(Cn=!0,S.el=null,$){const P=b(v);for(;;){const N=i(v);if(N&&N!==P)s(N);else break}}const R=i(v),T=o(v);return s(v),n(null,S,T,R,g,O,Fo(T),E),R},b=v=>{let S=0;for(;v;)if(v=i(v),v&&ja(v)&&(v.data==="["&&S++,v.data==="]")){if(S===0)return i(v);S--}return v};return[c,u]}const ot=wu;function Ju(e){return qu(e)}function Qu(e){return qu(e,xg)}function qu(e,t){const n=Wc();n.__VUE__=!0;const{insert:r,remove:i,patchProp:o,createElement:s,createText:a,createComment:l,setText:c,setElementText:u,parentNode:f,nextSibling:p,setScopeId:d=pt,cloneNode:m,insertStaticContent:b}=e,v=(x,I,k,X=null,W=null,q=null,ne=!1,_=null,ee=!!I.dynamicChildren)=>{if(x===I)return;x&&!tn(x,I)&&(X=ft(x),ve(x,W,q,!0),x=null),I.patchFlag===-2&&(ee=!1,I.dynamicChildren=null);const{type:Q,ref:fe,shapeFlag:le}=I;switch(Q){case Cr:S(x,I,k,X);break;case ht:g(x,I,k,X);break;case tr:x==null&&O(I,k,X,ne);break;case Ye:C(x,I,k,X,W,q,ne,_,ee);break;default:le&1?R(x,I,k,X,W,q,ne,_,ee):le&6?w(x,I,k,X,W,q,ne,_,ee):(le&64||le&128)&&Q.process(x,I,k,X,W,q,ne,_,ee,Ve)}fe!=null&&W&&jo(fe,x&&x.ref,q,I||x,!I)},S=(x,I,k,X)=>{if(x==null)r(I.el=a(I.children),k,X);else{const W=I.el=x.el;I.children!==x.children&&c(W,I.children)}},g=(x,I,k,X)=>{x==null?r(I.el=l(I.children||""),k,X):I.el=x.el},O=(x,I,k,X)=>{[x.el,x.anchor]=b(x.children,I,k,X)},E=({el:x,anchor:I},k,X)=>{let W;for(;x&&x!==I;)W=p(x),r(x,k,X),x=W;r(I,k,X)},$=({el:x,anchor:I})=>{let k;for(;x&&x!==I;)k=p(x),i(x),x=k;i(I)},R=(x,I,k,X,W,q,ne,_,ee)=>{ne=ne||I.type==="svg",x==null?T(I,k,X,W,q,ne,_,ee):j(x,I,W,q,ne,_,ee)},T=(x,I,k,X,W,q,ne,_)=>{let ee,Q;const{type:fe,props:le,shapeFlag:pe,transition:y,patchFlag:h,dirs:U}=x;if(x.el&&m!==void 0&&h===-1)ee=x.el=m(x.el);else{if(ee=x.el=s(x.type,q,le&&le.is,le),pe&8?u(ee,x.children):pe&16&&N(x.children,ee,null,X,W,q&&fe!=="foreignObject",ne,_),U&&_t(x,null,X,"created"),le){for(const Z in le)Z!=="value"&&!Sn(Z)&&o(ee,Z,null,le[Z],q,x.children,X,W,Qe);"value"in le&&o(ee,"value",null,le.value),(Q=le.onVnodeBeforeMount)&&St(Q,X,x)}P(ee,x,x.scopeId,ne,X)}U&&_t(x,null,X,"beforeMount");const Y=(!W||W&&!W.pendingBranch)&&y&&!y.persisted;Y&&y.beforeEnter(ee),r(ee,I,k),((Q=le&&le.onVnodeMounted)||Y||U)&&ot(()=>{Q&&St(Q,X,x),Y&&y.enter(ee),U&&_t(x,null,X,"mounted")},W)},P=(x,I,k,X,W)=>{if(k&&d(x,k),X)for(let q=0;q<X.length;q++)d(x,X[q]);if(W){let q=W.subTree;if(I===q){const ne=W.vnode;P(x,ne,ne.scopeId,ne.slotScopeIds,W.parent)}}},N=(x,I,k,X,W,q,ne,_,ee=0)=>{for(let Q=ee;Q<x.length;Q++){const fe=x[Q]=_?Rn(x[Q]):Pt(x[Q]);v(null,fe,I,k,X,W,q,ne,_)}},j=(x,I,k,X,W,q,ne)=>{const _=I.el=x.el;let{patchFlag:ee,dynamicChildren:Q,dirs:fe}=I;ee|=x.patchFlag&16;const le=x.props||Ce,pe=I.props||Ce;let y;(y=pe.onVnodeBeforeUpdate)&&St(y,k,I,x),fe&&_t(I,x,k,"beforeUpdate");const h=W&&I.type!=="foreignObject";if(Q?V(x.dynamicChildren,Q,_,k,X,h,q):ne||K(x,I,_,null,k,X,h,q,!1),ee>0){if(ee&16)F(_,I,le,pe,k,X,W);else if(ee&2&&le.class!==pe.class&&o(_,"class",null,pe.class,W),ee&4&&o(_,"style",le.style,pe.style,W),ee&8){const U=I.dynamicProps;for(let Y=0;Y<U.length;Y++){const Z=U[Y],me=le[Z],Oe=pe[Z];(Oe!==me||Z==="value")&&o(_,Z,me,Oe,W,x.children,k,X,Qe)}}ee&1&&x.children!==I.children&&u(_,I.children)}else!ne&&Q==null&&F(_,I,le,pe,k,X,W);((y=pe.onVnodeUpdated)||fe)&&ot(()=>{y&&St(y,k,I,x),fe&&_t(I,x,k,"updated")},X)},V=(x,I,k,X,W,q,ne)=>{for(let _=0;_<I.length;_++){const ee=x[_],Q=I[_],fe=ee.el&&(ee.type===Ye||!tn(ee,Q)||ee.shapeFlag&(6|64))?f(ee.el):k;v(ee,Q,fe,null,X,W,q,ne,!0)}},F=(x,I,k,X,W,q,ne)=>{if(k!==X){for(const _ in X){if(Sn(_))continue;const ee=X[_],Q=k[_];ee!==Q&&_!=="value"&&o(x,_,Q,ee,ne,I.children,W,q,Qe)}if(k!==Ce)for(const _ in k)!Sn(_)&&!(_ in X)&&o(x,_,k[_],null,ne,I.children,W,q,Qe);"value"in X&&o(x,"value",k.value,X.value)}},C=(x,I,k,X,W,q,ne,_,ee)=>{const Q=I.el=x?x.el:a(""),fe=I.anchor=x?x.anchor:a("");let{patchFlag:le,dynamicChildren:pe,slotScopeIds:y}=I;y&&(_=_?_.concat(y):y),x==null?(r(Q,k,X),r(fe,k,X),N(I.children,k,fe,W,q,ne,_,ee)):le>0&&le&64&&pe&&x.dynamicChildren?(V(x.dynamicChildren,pe,k,W,q,ne,_),(I.key!=null||W&&I===W.subTree)&&Va(x,I,!0)):K(x,I,k,fe,W,q,ne,_,ee)},w=(x,I,k,X,W,q,ne,_,ee)=>{I.slotScopeIds=_,x==null?I.shapeFlag&512?W.ctx.activate(I,k,X,ne,ee):M(I,k,X,W,q,ne,ee):L(x,I,ee)},M=(x,I,k,X,W,q,ne)=>{const _=x.component=lf(x,X,W);if(mi(x)&&(_.ctx.renderer=Ve),uf(_),_.asyncDep){if(W&&W.registerDep(_,z),!x.el){const ee=_.subTree=he(ht);g(null,ee,I,k)}return}z(_,x,I,k,W,q,ne)},L=(x,I,k)=>{const X=I.component=x.component;if(tg(x,I,k))if(X.asyncDep&&!X.asyncResolved){B(X,I,k);return}else X.next=I,nv(X.update),X.update();else I.component=x.component,I.el=x.el,X.vnode=I},z=(x,I,k,X,W,q,ne)=>{const _=()=>{if(x.isMounted){let{next:fe,bu:le,u:pe,parent:y,vnode:h}=x,U=fe,Y;ee.allowRecurse=!1,fe?(fe.el=h.el,B(x,fe,ne)):fe=h,le&&Xn(le),(Y=fe.props&&fe.props.onVnodeBeforeUpdate)&&St(Y,y,fe,h),ee.allowRecurse=!0;const Z=No(x),me=x.subTree;x.subTree=Z,v(me,Z,f(me.el),ft(me),x,W,q),fe.el=Z.el,U===null&&Ta(x,Z.el),pe&&ot(pe,W),(Y=fe.props&&fe.props.onVnodeUpdated)&&ot(()=>St(Y,y,fe,h),W)}else{let fe;const{el:le,props:pe}=I,{bm:y,m:h,parent:U}=x,Y=hi(I);if(ee.allowRecurse=!1,y&&Xn(y),!Y&&(fe=pe&&pe.onVnodeBeforeMount)&&St(fe,U,I),ee.allowRecurse=!0,le&&vt){const Z=()=>{x.subTree=No(x),vt(le,x.subTree,x,W,null)};Y?I.type.__asyncLoader().then(()=>!x.isUnmounted&&Z()):Z()}else{const Z=x.subTree=No(x);v(null,Z,k,X,x,W,q),I.el=Z.el}if(h&&ot(h,W),!Y&&(fe=pe&&pe.onVnodeMounted)){const Z=I;ot(()=>St(fe,U,Z),W)}I.shapeFlag&256&&x.a&&ot(x.a,W),x.isMounted=!0,I=k=X=null}},ee=new ai(_,()=>qa(x.update),x.scope),Q=x.update=ee.run.bind(ee);Q.id=x.uid,ee.allowRecurse=Q.allowRecurse=!0,Q()},B=(x,I,k)=>{I.component=x;const X=x.vnode.props;x.vnode=I,x.next=null,Sg(x,I.props,X,k),wg(x,I.children,k),Jn(),el(void 0,x.update),wn()},K=(x,I,k,X,W,q,ne,_,ee=!1)=>{const Q=x&&x.children,fe=x?x.shapeFlag:0,le=I.children,{patchFlag:pe,shapeFlag:y}=I;if(pe>0){if(pe&128){de(Q,le,k,X,W,q,ne,_,ee);return}else if(pe&256){G(Q,le,k,X,W,q,ne,_,ee);return}}y&8?(fe&16&&Qe(Q,W,q),le!==Q&&u(k,le)):fe&16?y&16?de(Q,le,k,X,W,q,ne,_,ee):Qe(Q,W,q,!0):(fe&8&&u(k,""),y&16&&N(le,k,X,W,q,ne,_,ee))},G=(x,I,k,X,W,q,ne,_,ee)=>{x=x||Un,I=I||Un;const Q=x.length,fe=I.length,le=Math.min(Q,fe);let pe;for(pe=0;pe<le;pe++){const y=I[pe]=ee?Rn(I[pe]):Pt(I[pe]);v(x[pe],y,k,null,W,q,ne,_,ee)}Q>fe?Qe(x,W,q,!0,!1,le):N(I,k,X,W,q,ne,_,ee,le)},de=(x,I,k,X,W,q,ne,_,ee)=>{let Q=0;const fe=I.length;let le=x.length-1,pe=fe-1;for(;Q<=le&&Q<=pe;){const y=x[Q],h=I[Q]=ee?Rn(I[Q]):Pt(I[Q]);if(tn(y,h))v(y,h,k,null,W,q,ne,_,ee);else break;Q++}for(;Q<=le&&Q<=pe;){const y=x[le],h=I[pe]=ee?Rn(I[pe]):Pt(I[pe]);if(tn(y,h))v(y,h,k,null,W,q,ne,_,ee);else break;le--,pe--}if(Q>le){if(Q<=pe){const y=pe+1,h=y<fe?I[y].el:X;for(;Q<=pe;)v(null,I[Q]=ee?Rn(I[Q]):Pt(I[Q]),k,h,W,q,ne,_,ee),Q++}}else if(Q>pe)for(;Q<=le;)ve(x[Q],W,q,!0),Q++;else{const y=Q,h=Q,U=new Map;for(Q=h;Q<=pe;Q++){const te=I[Q]=ee?Rn(I[Q]):Pt(I[Q]);te.key!=null&&U.set(te.key,Q)}let Y,Z=0;const me=pe-h+1;let Oe=!1,Fe=0;const Le=new Array(me);for(Q=0;Q<me;Q++)Le[Q]=0;for(Q=y;Q<=le;Q++){const te=x[Q];if(Z>=me){ve(te,W,q,!0);continue}let oe;if(te.key!=null)oe=U.get(te.key);else for(Y=h;Y<=pe;Y++)if(Le[Y-h]===0&&tn(te,I[Y])){oe=Y;break}oe===void 0?ve(te,W,q,!0):(Le[oe-h]=Q+1,oe>=Fe?Fe=oe:Oe=!0,v(te,I[oe],k,null,W,q,ne,_,ee),Z++)}const ge=Oe?Cg(Le):Un;for(Y=ge.length-1,Q=me-1;Q>=0;Q--){const te=h+Q,oe=I[te],ae=te+1<fe?I[te+1].el:X;Le[Q]===0?v(null,oe,k,ae,W,q,ne,_,ee):Oe&&(Y<0||Q!==ge[Y]?ce(oe,k,ae,2):Y--)}}},ce=(x,I,k,X,W=null)=>{const{el:q,type:ne,transition:_,children:ee,shapeFlag:Q}=x;if(Q&6){ce(x.component.subTree,I,k,X);return}if(Q&128){x.suspense.move(I,k,X);return}if(Q&64){ne.move(x,I,k,Ve);return}if(ne===Ye){r(q,I,k);for(let le=0;le<ee.length;le++)ce(ee[le],I,k,X);r(x.anchor,I,k);return}if(ne===tr){E(x,I,k);return}if(X!==2&&Q&1&&_)if(X===0)_.beforeEnter(q),r(q,I,k),ot(()=>_.enter(q),W);else{const{leave:le,delayLeave:pe,afterLeave:y}=_,h=()=>r(q,I,k),U=()=>{le(q,()=>{h(),y&&y()})};pe?pe(q,h,U):U()}else r(q,I,k)},ve=(x,I,k,X=!1,W=!1)=>{const{type:q,props:ne,ref:_,children:ee,dynamicChildren:Q,shapeFlag:fe,patchFlag:le,dirs:pe}=x;if(_!=null&&jo(_,null,k,x,!0),fe&256){I.ctx.deactivate(x);return}const y=fe&1&&pe,h=!hi(x);let U;if(h&&(U=ne&&ne.onVnodeBeforeUnmount)&&St(U,I,x),fe&6)Je(x.component,k,X);else{if(fe&128){x.suspense.unmount(k,X);return}y&&_t(x,null,I,"beforeUnmount"),fe&64?x.type.remove(x,I,k,W,Ve,X):Q&&(q!==Ye||le>0&&le&64)?Qe(Q,I,k,!1,!0):(q===Ye&&le&(128|256)||!W&&fe&16)&&Qe(ee,I,k),X&&Se(x)}(h&&(U=ne&&ne.onVnodeUnmounted)||y)&&ot(()=>{U&&St(U,I,x),y&&_t(x,null,I,"unmounted")},k)},Se=x=>{const{type:I,el:k,anchor:X,transition:W}=x;if(I===Ye){Re(k,X);return}if(I===tr){$(x);return}const q=()=>{i(k),W&&!W.persisted&&W.afterLeave&&W.afterLeave()};if(x.shapeFlag&1&&W&&!W.persisted){const{leave:ne,delayLeave:_}=W,ee=()=>ne(k,q);_?_(x.el,q,ee):ee()}else q()},Re=(x,I)=>{let k;for(;x!==I;)k=p(x),i(x),x=k;i(I)},Je=(x,I,k)=>{const{bum:X,scope:W,update:q,subTree:ne,um:_}=x;X&&Xn(X),W.stop(),q&&(q.active=!1,ve(ne,x,I,k)),_&&ot(_,I),ot(()=>{x.isUnmounted=!0},I),I&&I.pendingBranch&&!I.isUnmounted&&x.asyncDep&&!x.asyncResolved&&x.suspenseId===I.pendingId&&(I.deps--,I.deps===0&&I.resolve())},Qe=(x,I,k,X=!1,W=!1,q=0)=>{for(let ne=q;ne<x.length;ne++)ve(x[ne],I,k,X,W)},ft=x=>x.shapeFlag&6?ft(x.component.subTree):x.shapeFlag&128?x.suspense.next():p(x.anchor||x.el),kt=(x,I,k)=>{x==null?I._vnode&&ve(I._vnode,null,null,!0):v(I._vnode||null,x,I,null,null,null,k),Go(),I._vnode=x},Ve={p:v,um:ve,m:ce,r:Se,mt:M,mc:N,pc:K,pbc:V,n:ft,o:e};let ze,vt;return t&&([ze,vt]=t(Ve)),{render:kt,hydrate:ze,createApp:Pg(kt,ze)}}function jo(e,t,n,r,i=!1){if(ue(e)){e.forEach((p,d)=>jo(p,t&&(ue(t)?t[d]:t),n,r,i));return}if(hi(r)&&!i)return;const o=r.shapeFlag&4?Ga(r.component)||r.component.proxy:r.el,s=i?null:o,{i:a,r:l}=e,c=t&&t.r,u=a.refs===Ce?a.refs={}:a.refs,f=a.setupState;if(c!=null&&c!==l&&(be(c)?(u[c]=null,xe(f,c)&&(f[c]=null)):at(c)&&(c.value=null)),be(l)){const p=()=>{u[l]=s,xe(f,l)&&(f[l]=s)};s?(p.id=-1,ot(p,n)):p()}else if(at(l)){const p=()=>{l.value=s};s?(p.id=-1,ot(p,n)):p()}else ye(l)&&nn(l,a,12,[s,u])}function St(e,t,n,r=null){xt(e,t,7,[n,r])}function Va(e,t,n=!1){const r=e.children,i=t.children;if(ue(r)&&ue(i))for(let o=0;o<r.length;o++){const s=r[o];let a=i[o];a.shapeFlag&1&&!a.dynamicChildren&&((a.patchFlag<=0||a.patchFlag===32)&&(a=i[o]=Rn(i[o]),a.el=s.el),n||Va(s,a))}}function Cg(e){const t=e.slice(),n=[0];let r,i,o,s,a;const l=e.length;for(r=0;r<l;r++){const c=e[r];if(c!==0){if(i=n[n.length-1],e[i]<c){t[r]=i,n.push(r);continue}for(o=0,s=n.length-1;o<s;)a=o+s>>1,e[n[a]]<c?o=a+1:s=a;c<e[n[o]]&&(o>0&&(t[r]=n[o-1]),n[o]=r)}}for(o=n.length,s=n[o-1];o-- >0;)n[o]=s,s=t[s];return n}const Mg=e=>e.__isTeleport,yi=e=>e&&(e.disabled||e.disabled===""),_u=e=>typeof SVGElement!="undefined"&&e instanceof SVGElement,za=(e,t)=>{const n=e&&e.to;return be(n)?t?t(n):null:n},Ag={__isTeleport:!0,process(e,t,n,r,i,o,s,a,l,c){const{mc:u,pc:f,pbc:p,o:{insert:d,querySelector:m,createText:b,createComment:v}}=c,S=yi(t.props);let{shapeFlag:g,children:O,dynamicChildren:E}=t;if(e==null){const $=t.el=b(""),R=t.anchor=b("");d($,n,r),d(R,n,r);const T=t.target=za(t.props,m),P=t.targetAnchor=b("");T&&(d(P,T),s=s||_u(T));const N=(j,V)=>{g&16&&u(O,j,V,i,o,s,a,l)};S?N(n,R):T&&N(T,P)}else{t.el=e.el;const $=t.anchor=e.anchor,R=t.target=e.target,T=t.targetAnchor=e.targetAnchor,P=yi(e.props),N=P?n:R,j=P?$:T;if(s=s||_u(R),E?(p(e.dynamicChildren,E,N,i,o,s,a),Va(e,t,!0)):l||f(e,t,N,j,i,o,s,a,!1),S)P||Vo(t,n,$,c,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const V=t.target=za(t.props,m);V&&Vo(t,V,null,c,0)}else P&&Vo(t,R,T,c,1)}},remove(e,t,n,r,{um:i,o:{remove:o}},s){const{shapeFlag:a,children:l,anchor:c,targetAnchor:u,target:f,props:p}=e;if(f&&o(u),(s||!yi(p))&&(o(c),a&16))for(let d=0;d<l.length;d++){const m=l[d];i(m,t,n,!0,!!m.dynamicChildren)}},move:Vo,hydrate:Ng};function Vo(e,t,n,{o:{insert:r},m:i},o=2){o===0&&r(e.targetAnchor,t,n);const{el:s,anchor:a,shapeFlag:l,children:c,props:u}=e,f=o===2;if(f&&r(s,t,n),(!f||yi(u))&&l&16)for(let p=0;p<c.length;p++)i(c[p],t,n,2);f&&r(a,t,n)}function Ng(e,t,n,r,i,o,{o:{nextSibling:s,parentNode:a,querySelector:l}},c){const u=t.target=za(t.props,l);if(u){const f=u._lpa||u.firstChild;t.shapeFlag&16&&(yi(t.props)?(t.anchor=c(s(e),t,a(e),n,r,i,o),t.targetAnchor=f):(t.anchor=s(e),t.targetAnchor=c(f,t,u,n,r,i,o)),u._lpa=t.targetAnchor&&s(t.targetAnchor))}return t.anchor&&s(t.anchor)}const Rg=Ag,Ba="components",Ig="directives";function er(e,t){return Ha(Ba,e,!0,t)||e}const ef=Symbol();function $g(e){return be(e)?Ha(Ba,e,!1)||e:e||ef}function Lg(e){return Ha(Ig,e)}function Ha(e,t,n=!0,r=!1){const i=Tt||et;if(i){const o=i.type;if(e===Ba){const a=Wo(o);if(a&&(a===t||a===st(t)||a===En(st(t))))return o}const s=tf(i[e]||o[e],t)||tf(i.appContext[e],t);return!s&&r?o:s}}function tf(e,t){return e&&(e[t]||e[st(t)]||e[En(st(t))])}const Ye=Symbol(void 0),Cr=Symbol(void 0),ht=Symbol(void 0),tr=Symbol(void 0),bi=[];let en=null;function Ie(e=!1){bi.push(en=e?null:[])}function nf(){bi.pop(),en=bi[bi.length-1]||null}let Mr=1;function ka(e){Mr+=e}function rf(e){return e.dynamicChildren=Mr>0?en||Un:null,nf(),Mr>0&&en&&en.push(e),e}function Si(e,t,n,r,i,o){return rf(Ho(e,t,n,r,i,o,!0))}function ke(e,t,n,r,i){return rf(he(e,t,n,r,i,!0))}function Mn(e){return e?e.__v_isVNode===!0:!1}function tn(e,t){return e.type===t.type&&e.key===t.key}function Dg(e){}const zo="__vInternal",of=({key:e})=>e!=null?e:null,Bo=({ref:e})=>e!=null?be(e)||at(e)||ye(e)?{i:Tt,r:e}:e:null;function Ho(e,t=null,n=null,r=0,i=null,o=e===Ye?0:1,s=!1,a=!1){const l={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&of(t),ref:t&&Bo(t),scopeId:Ao,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetAnchor:null,staticCount:0,shapeFlag:o,patchFlag:r,dynamicProps:i,dynamicChildren:null,appContext:null};return a?(Ua(l,n),o&128&&e.normalize(l)):n&&(l.shapeFlag|=be(n)?8:16),Mr>0&&!s&&en&&(l.patchFlag>0||o&6)&&l.patchFlag!==32&&en.push(l),l}const he=Fg;function Fg(e,t=null,n=null,r=0,i=null,o=!1){if((!e||e===ef)&&(e=ht),Mn(e)){const a=An(e,t,!0);return n&&Ua(a,n),a}if(Zg(e)&&(e=e.__vccOpts),t){t=sf(t);let{class:a,style:l}=t;a&&!be(a)&&(t.class=vn(a)),je(l)&&(ya(l)&&!ue(l)&&(l=Me({},l)),t.style=Zt(l))}const s=be(e)?1:ng(e)?128:Mg(e)?64:je(e)?4:ye(e)?2:0;return Ho(e,t,n,r,i,s,o,!0)}function sf(e){return e?ya(e)||zo in e?Me({},e):e:null}function An(e,t,n=!1){const{props:r,ref:i,patchFlag:o,children:s}=e,a=t?Ei(r||{},t):r;return{__v_isVNode:!0,__v_skip:!0,type:e.type,props:a,key:a&&of(a),ref:t&&t.ref?n&&i?ue(i)?i.concat(Bo(t)):[i,Bo(t)]:Bo(t):i,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:s,target:e.target,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==Ye?o===-1?16:o|16:o,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:e.transition,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&An(e.ssContent),ssFallback:e.ssFallback&&An(e.ssFallback),el:e.el,anchor:e.anchor}}function Nn(e=" ",t=0){return he(Cr,null,e,t)}function jg(e,t){const n=he(tr,null,e);return n.staticCount=t,n}function Lt(e="",t=!1){return t?(Ie(),ke(ht,null,e)):he(ht,null,e)}function Pt(e){return e==null||typeof e=="boolean"?he(ht):ue(e)?he(Ye,null,e.slice()):typeof e=="object"?Rn(e):he(Cr,null,String(e))}function Rn(e){return e.el===null||e.memo?e:An(e)}function Ua(e,t){let n=0;const{shapeFlag:r}=e;if(t==null)t=null;else if(ue(t))n=16;else if(typeof t=="object")if(r&(1|64)){const i=t.default;i&&(i._c&&(i._d=!1),Ua(e,i()),i._c&&(i._d=!0));return}else{n=32;const i=t._;!i&&!(zo in t)?t._ctx=Tt:i===3&&Tt&&(Tt.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else ye(t)?(t={default:t,_ctx:Tt},n=32):(t=String(t),r&64?(n=16,t=[Nn(t)]):n=8);e.children=t,e.shapeFlag|=n}function Ei(...e){const t={};for(let n=0;n<e.length;n++){const r=e[n];for(const i in r)if(i==="class")t.class!==r.class&&(t.class=vn([t.class,r.class]));else if(i==="style")t.style=Zt([t.style,r.style]);else if(yn(i)){const o=t[i],s=r[i];o!==s&&(t[i]=o?[].concat(o,s):s)}else i!==""&&(t[i]=r[i])}return t}function ko(e,t,n,r){let i;const o=n&&n[r];if(ue(e)||be(e)){i=new Array(e.length);for(let s=0,a=e.length;s<a;s++)i[s]=t(e[s],s,void 0,o&&o[s])}else if(typeof e=="number"){i=new Array(e);for(let s=0;s<e;s++)i[s]=t(s+1,s,void 0,o&&o[s])}else if(je(e))if(e[Symbol.iterator])i=Array.from(e,(s,a)=>t(s,a,void 0,o&&o[a]));else{const s=Object.keys(e);i=new Array(s.length);for(let a=0,l=s.length;a<l;a++){const c=s[a];i[a]=t(e[c],c,a,o&&o[a])}}else i=[];return n&&(n[r]=i),i}function Vg(e,t){for(let n=0;n<t.length;n++){const r=t[n];if(ue(r))for(let i=0;i<r.length;i++)e[r[i].name]=r[i].fn;else r&&(e[r.name]=r.fn)}return e}function qe(e,t,n={},r,i){if(Tt.isCE)return he("slot",t==="default"?null:{name:t},r&&r());let o=e[t];o&&o._c&&(o._d=!1),Ie();const s=o&&af(o(n)),a=ke(Ye,{key:n.key||`_${t}`},s||(r?r():[]),s&&e._===1?64:-2);return!i&&a.scopeId&&(a.slotScopeIds=[a.scopeId+"-s"]),o&&o._c&&(o._d=!0),a}function af(e){return e.some(t=>Mn(t)?!(t.type===ht||t.type===Ye&&!af(t.children)):!0)?e:null}function zg(e){const t={};for(const n in e)t[Yn(n)]=e[n];return t}const Ka=e=>e?cf(e)?Ga(e)||e.proxy:Ka(e.parent):null,Uo=Me(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>Ka(e.parent),$root:e=>Ka(e.root),$emit:e=>e.emit,$options:e=>Vu(e),$forceUpdate:e=>()=>qa(e.update),$nextTick:e=>Xo.bind(e.proxy),$watch:e=>sv.bind(e)}),Wa={get({_:e},t){const{ctx:n,setupState:r,data:i,props:o,accessCache:s,type:a,appContext:l}=e;let c;if(t[0]!=="$"){const d=s[t];if(d!==void 0)switch(d){case 0:return r[t];case 1:return i[t];case 3:return n[t];case 2:return o[t]}else{if(r!==Ce&&xe(r,t))return s[t]=0,r[t];if(i!==Ce&&xe(i,t))return s[t]=1,i[t];if((c=e.propsOptions[0])&&xe(c,t))return s[t]=2,o[t];if(n!==Ce&&xe(n,t))return s[t]=3,n[t];$a&&(s[t]=4)}}const u=Uo[t];let f,p;if(u)return t==="$attrs"&&wt(e,"get",t),u(e);if((f=a.__cssModules)&&(f=f[t]))return f;if(n!==Ce&&xe(n,t))return s[t]=3,n[t];if(p=l.config.globalProperties,xe(p,t))return p[t]},set({_:e},t,n){const{data:r,setupState:i,ctx:o}=e;if(i!==Ce&&xe(i,t))i[t]=n;else if(r!==Ce&&xe(r,t))r[t]=n;else if(xe(e.props,t))return!1;return t[0]==="$"&&t.slice(1)in e?!1:(o[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:i,propsOptions:o}},s){let a;return n[s]!==void 0||e!==Ce&&xe(e,s)||t!==Ce&&xe(t,s)||(a=o[0])&&xe(a,s)||xe(r,s)||xe(Uo,s)||xe(i.config.globalProperties,s)}},Bg=Me({},Wa,{get(e,t){if(t!==Symbol.unscopables)return Wa.get(e,t,e)},has(e,t){return t[0]!=="_"&&!Ic(t)}}),Hg=Zu();let kg=0;function lf(e,t,n){const r=e.type,i=(t?t.appContext:e.appContext)||Hg,o={uid:kg++,vnode:e,type:r,parent:t,appContext:i,root:null,next:null,subTree:null,update:null,scope:new la(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:t?t.provides:Object.create(i.provides),accessCache:null,renderCache:[],components:null,directives:null,propsOptions:Hu(r,i),emitsOptions:vu(r,i),emit:null,emitted:null,propsDefaults:Ce,inheritAttrs:r.inheritAttrs,ctx:Ce,data:Ce,props:Ce,attrs:Ce,slots:Ce,refs:Ce,setupState:Ce,setupContext:null,suspense:n,suspenseId:n?n.pendingId:0,asyncDep:null,asyncResolved:!1,isMounted:!1,isUnmounted:!1,isDeactivated:!1,bc:null,c:null,bm:null,m:null,bu:null,u:null,um:null,bum:null,da:null,a:null,rtg:null,rtc:null,ec:null,sp:null};return o.ctx={_:o},o.root=t?t.root:o,o.emit=Qm.bind(null,o),e.ce&&e.ce(o),o}let et=null;const In=()=>et||Tt,$n=e=>{et=e,e.scope.on()},Ln=()=>{et&&et.scope.off(),et=null};function cf(e){return e.vnode.shapeFlag&4}let Oi=!1;function uf(e,t=!1){Oi=t;const{props:n,children:r}=e.vnode,i=cf(e);bg(e,n,i,t),Og(e,r);const o=i?Ug(e,t):void 0;return Oi=!1,o}function Ug(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=ba(new Proxy(e.ctx,Wa));const{setup:r}=n;if(r){const i=e.setupContext=r.length>1?pf(e):null;$n(e),Jn();const o=nn(r,e,0,[e.props,i]);if(wn(),Ln(),oa(o)){if(o.then(Ln,Ln),t)return o.then(s=>{Ya(e,s,t)}).catch(s=>{nr(s,e,0)});e.asyncDep=o}else Ya(e,o,t)}else ff(e,t)}function Ya(e,t,n){ye(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:je(t)&&(e.setupState=Oa(t)),ff(e,n)}let Ko,Xa;function Kg(e){Ko=e,Xa=t=>{t.render._rc&&(t.withProxy=new Proxy(t.ctx,Bg))}}const Wg=()=>!Ko;function ff(e,t,n){const r=e.type;if(!e.render){if(!t&&Ko&&!r.render){const i=r.template;if(i){const{isCustomElement:o,compilerOptions:s}=e.appContext.config,{delimiters:a,compilerOptions:l}=r,c=Me(Me({isCustomElement:o,delimiters:a},s),l);r.render=Ko(i,c)}}e.render=r.render||pt,Xa&&Xa(e)}$n(e),Jn(),hg(e),wn(),Ln()}function Yg(e){return new Proxy(e.attrs,{get(t,n){return wt(e,"get","$attrs"),t[n]}})}function pf(e){const t=r=>{e.exposed=r||{}};let n;return{get attrs(){return n||(n=Yg(e))},slots:e.slots,emit:e.emit,expose:t}}function Ga(e){if(e.exposed)return e.exposeProxy||(e.exposeProxy=new Proxy(Oa(ba(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in Uo)return Uo[n](e)}}))}const Xg=/(?:^|[-_])(\w)/g,Gg=e=>e.replace(Xg,t=>t.toUpperCase()).replace(/[-_]/g,"");function Wo(e){return ye(e)&&e.displayName||e.name}function df(e,t,n=!1){let r=Wo(t);if(!r&&t.__file){const i=t.__file.match(/([^/\\]+)\.\w+$/);i&&(r=i[1])}if(!r&&e&&e.parent){const i=o=>{for(const s in o)if(o[s]===t)return s};r=i(e.components||e.parent.type.components)||i(e.appContext.components)}return r?Gg(r):n?"App":"Anonymous"}function Zg(e){return ye(e)&&"__vccOpts"in e}const wi=[];function hf(e,...t){Jn();const n=wi.length?wi[wi.length-1].component:null,r=n&&n.appContext.config.warnHandler,i=Jg();if(r)nn(r,n,11,[e+t.join(""),n&&n.proxy,i.map(({vnode:o})=>`at <${df(n,o.type)}>`).join(`
3
+ `),i]);else{const o=[`[Vue warn]: ${e}`,...t];i.length&&o.push(`
4
+ `,...Qg(i)),console.warn(...o)}wn()}function Jg(){let e=wi[wi.length-1];if(!e)return[];const t=[];for(;e;){const n=t[0];n&&n.vnode===e?n.recurseCount++:t.push({vnode:e,recurseCount:0});const r=e.component&&e.component.parent;e=r&&r.vnode}return t}function Qg(e){const t=[];return e.forEach((n,r)=>{t.push(...r===0?[]:[`
5
+ `],...qg(n))}),t}function qg({vnode:e,recurseCount:t}){const n=t>0?`... (${t} recursive calls)`:"",r=e.component?e.component.parent==null:!1,i=` at <${df(e.component,e.type,r)}`,o=">"+n;return e.props?[i,..._g(e.props),o]:[i+o]}function _g(e){const t=[],n=Object.keys(e);return n.slice(0,3).forEach(r=>{t.push(...mf(r,e[r]))}),n.length>3&&t.push(" ..."),t}function mf(e,t,n){return be(t)?(t=JSON.stringify(t),n?t:[`${e}=${t}`]):typeof t=="number"||typeof t=="boolean"||t==null?n?t:[`${e}=${t}`]:at(t)?(t=mf(e,Te(t.value),!0),n?t:[`${e}=Ref<`,t,">"]):ye(t)?[`${e}=fn${t.name?`<${t.name}>`:""}`]:(t=Te(t),n?t:[`${e}=`,t])}function nn(e,t,n,r){let i;try{i=r?e(...r):e()}catch(o){nr(o,t,n)}return i}function xt(e,t,n,r){if(ye(e)){const o=nn(e,t,n,r);return o&&oa(o)&&o.catch(s=>{nr(s,t,n)}),o}const i=[];for(let o=0;o<e.length;o++)i.push(xt(e[o],t,n,r));return i}function nr(e,t,n,r=!0){const i=t?t.vnode:null;if(t){let o=t.parent;const s=t.proxy,a=n;for(;o;){const c=o.ec;if(c){for(let u=0;u<c.length;u++)if(c[u](e,s,a)===!1)return}o=o.parent}const l=t.appContext.config.errorHandler;if(l){nn(l,null,10,[e,s,a]);return}}ev(e,n,i,r)}function ev(e,t,n,r=!0){console.error(e)}let Yo=!1,Za=!1;const Ct=[];let pn=0;const Ti=[];let Pi=null,Ar=0;const xi=[];let Dn=null,Nr=0;const gf=Promise.resolve();let Ja=null,Qa=null;function Xo(e){const t=Ja||gf;return e?t.then(this?e.bind(this):e):t}function tv(e){let t=pn+1,n=Ct.length;for(;t<n;){const r=t+n>>>1;Ci(Ct[r])<e?t=r+1:n=r}return t}function qa(e){(!Ct.length||!Ct.includes(e,Yo&&e.allowRecurse?pn+1:pn))&&e!==Qa&&(e.id==null?Ct.push(e):Ct.splice(tv(e.id),0,e),vf())}function vf(){!Yo&&!Za&&(Za=!0,Ja=gf.then(bf))}function nv(e){const t=Ct.indexOf(e);t>pn&&Ct.splice(t,1)}function yf(e,t,n,r){ue(e)?n.push(...e):(!t||!t.includes(e,e.allowRecurse?r+1:r))&&n.push(e),vf()}function rv(e){yf(e,Pi,Ti,Ar)}function _a(e){yf(e,Dn,xi,Nr)}function el(e,t=null){if(Ti.length){for(Qa=t,Pi=[...new Set(Ti)],Ti.length=0,Ar=0;Ar<Pi.length;Ar++)Pi[Ar]();Pi=null,Ar=0,Qa=null,el(e,t)}}function Go(e){if(xi.length){const t=[...new Set(xi)];if(xi.length=0,Dn){Dn.push(...t);return}for(Dn=t,Dn.sort((n,r)=>Ci(n)-Ci(r)),Nr=0;Nr<Dn.length;Nr++)Dn[Nr]();Dn=null,Nr=0}}const Ci=e=>e.id==null?1/0:e.id;function bf(e){Za=!1,Yo=!0,el(e),Ct.sort((n,r)=>Ci(n)-Ci(r));const t=pt;try{for(pn=0;pn<Ct.length;pn++){const n=Ct[pn];n&&n.active!==!1&&nn(n,null,14)}}finally{pn=0,Ct.length=0,Go(),Yo=!1,Ja=null,(Ct.length||Ti.length||xi.length)&&bf(e)}}function iv(e,t){return Mi(e,null,t)}function Sf(e,t){return Mi(e,null,{flush:"post"})}function ov(e,t){return Mi(e,null,{flush:"sync"})}const Ef={};function lt(e,t,n){return Mi(e,t,n)}function Mi(e,t,{immediate:n,deep:r,flush:i,onTrack:o,onTrigger:s}=Ce){const a=et;let l,c=!1,u=!1;if(at(e)?(l=()=>e.value,c=!!e._shallow):Qn(e)?(l=()=>e,r=!0):ue(e)?(u=!0,c=e.some(Qn),l=()=>e.map(S=>{if(at(S))return S.value;if(Qn(S))return rr(S);if(ye(S))return nn(S,a,2)})):ye(e)?t?l=()=>nn(e,a,2):l=()=>{if(!(a&&a.isUnmounted))return f&&f(),xt(e,a,3,[p])}:l=pt,t&&r){const S=l;l=()=>rr(S())}let f,p=S=>{f=v.onStop=()=>{nn(S,a,4)}};if(Oi)return p=pt,t?n&&xt(t,a,3,[l(),u?[]:void 0,p]):l(),pt;let d=u?[]:Ef;const m=()=>{if(!!v.active)if(t){const S=v.run();(r||c||(u?S.some((g,O)=>Er(g,d[O])):Er(S,d)))&&(f&&f(),xt(t,a,3,[S,d===Ef?void 0:d,p]),d=S)}else v.run()};m.allowRecurse=!!t;let b;i==="sync"?b=m:i==="post"?b=()=>ot(m,a&&a.suspense):b=()=>{!a||a.isMounted?rv(m):m()};const v=new ai(l,b);return t?n?m():d=v.run():i==="post"?ot(v.run.bind(v),a&&a.suspense):v.run(),()=>{v.stop(),a&&a.scope&&ra(a.scope.effects,v)}}function sv(e,t,n){const r=this.proxy,i=be(e)?e.includes(".")?Of(r,e):()=>r[e]:e.bind(r,r);let o;ye(t)?o=t:(o=t.handler,n=t);const s=et;$n(this);const a=Mi(i,o.bind(r),n);return s?$n(s):Ln(),a}function Of(e,t){const n=t.split(".");return()=>{let r=e;for(let i=0;i<n.length&&r;i++)r=r[n[i]];return r}}function rr(e,t){if(!je(e)||e.__v_skip||(t=t||new Set,t.has(e)))return e;if(t.add(e),at(e))rr(e.value,t);else if(ue(e))for(let n=0;n<e.length;n++)rr(e[n],t);else if(bn(e)||Kn(e))e.forEach(n=>{rr(n,t)});else if(aa(e))for(const n in e)rr(e[n],t);return e}const wf=e=>typeof e=="function",av=e=>e!==null&&typeof e=="object",lv=e=>av(e)&&wf(e.then)&&wf(e.catch);function cv(){return null}function uv(){return null}function fv(e){}function pv(e,t){return null}function dv(){return Tf().slots}function hv(){return Tf().attrs}function Tf(){const e=In();return e.setupContext||(e.setupContext=pf(e))}function mv(e,t){for(const n in t){const r=e[n];r?r.default=t[n]:r===null&&(e[n]={default:t[n]})}return e}function gv(e){const t=In();let n=e();return Ln(),lv(n)&&(n=n.catch(r=>{throw $n(t),r})),[n,()=>$n(t)]}function tl(e,t,n){const r=arguments.length;return r===2?je(t)&&!ue(t)?Mn(t)?he(e,null,[t]):he(e,t):he(e,null,t):(r>3?n=Array.prototype.slice.call(arguments,2):r===3&&Mn(n)&&(n=[n]),he(e,t,n))}const Pf=Symbol(""),vv=()=>{{const e=di(Pf);return e||hf("Server rendering context not provided. Make sure to only call useSSRContext() conditionally in the server build."),e}};function yv(){}function bv(e,t,n,r){const i=n[r];if(i&&xf(i,e))return i;const o=t();return o.memo=e.slice(),n[r]=o}function xf(e,t){const n=e.memo;if(n.length!=t.length)return!1;for(let r=0;r<n.length;r++)if(n[r]!==t[r])return!1;return Mr>0&&en&&en.push(e),!0}const Cf="3.2.19",Sv={createComponentInstance:lf,setupComponent:uf,renderComponentRoot:No,setCurrentRenderingInstance:fi,isVNode:Mn,normalizeVNode:Pt},Ev=Sv,Ov=null,wv=null,Tv="http://www.w3.org/2000/svg",Rr=typeof document!="undefined"?document:null,Mf=new Map,Pv={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{const i=t?Rr.createElementNS(Tv,e):Rr.createElement(e,n?{is:n}:void 0);return e==="select"&&r&&r.multiple!=null&&i.setAttribute("multiple",r.multiple),i},createText:e=>Rr.createTextNode(e),createComment:e=>Rr.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Rr.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},cloneNode(e){const t=e.cloneNode(!0);return"_value"in e&&(t._value=e._value),t},insertStaticContent(e,t,n,r){const i=n?n.previousSibling:t.lastChild;let o=Mf.get(e);if(!o){const s=Rr.createElement("template");if(s.innerHTML=r?`<svg>${e}</svg>`:e,o=s.content,r){const a=o.firstChild;for(;a.firstChild;)o.appendChild(a.firstChild);o.removeChild(a)}Mf.set(e,o)}return t.insertBefore(o.cloneNode(!0),n),[i?i.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}};function xv(e,t,n){const r=e._vtc;r&&(t=(t?[t,...r]:[...r]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}function Cv(e,t,n){const r=e.style,i=r.display;if(!n)e.removeAttribute("style");else if(be(n))t!==n&&(r.cssText=n);else{for(const o in n)nl(r,o,n[o]);if(t&&!be(t))for(const o in t)n[o]==null&&nl(r,o,"")}"_vod"in e&&(r.display=i)}const Af=/\s*!important$/;function nl(e,t,n){if(ue(n))n.forEach(r=>nl(e,t,r));else if(t.startsWith("--"))e.setProperty(t,n);else{const r=Mv(e,t);Af.test(n)?e.setProperty(Ot(r),n.replace(Af,""),"important"):e[r]=n}}const Nf=["Webkit","Moz","ms"],rl={};function Mv(e,t){const n=rl[t];if(n)return n;let r=st(t);if(r!=="filter"&&r in e)return rl[t]=r;r=En(r);for(let i=0;i<Nf.length;i++){const o=Nf[i]+r;if(o in e)return rl[t]=o}return t}const Rf="http://www.w3.org/1999/xlink";function Av(e,t,n,r,i){if(r&&t.startsWith("xlink:"))n==null?e.removeAttributeNS(Rf,t.slice(6,t.length)):e.setAttributeNS(Rf,t,n);else{const o=Fc(t);n==null||o&&!ea(n)?e.removeAttribute(t):e.setAttribute(t,o?"":n)}}function Nv(e,t,n,r,i,o,s){if(t==="innerHTML"||t==="textContent"){r&&s(r,i,o),e[t]=n==null?"":n;return}if(t==="value"&&e.tagName!=="PROGRESS"){e._value=n;const a=n==null?"":n;e.value!==a&&(e.value=a),n==null&&e.removeAttribute(t);return}if(n===""||n==null){const a=typeof e[t];if(a==="boolean"){e[t]=ea(n);return}else if(n==null&&a==="string"){e[t]="",e.removeAttribute(t);return}else if(a==="number"){try{e[t]=0}catch(l){}e.removeAttribute(t);return}}try{e[t]=n}catch(a){}}let Zo=Date.now,If=!1;if(typeof window!="undefined"){Zo()>document.createEvent("Event").timeStamp&&(Zo=()=>performance.now());const e=navigator.userAgent.match(/firefox\/(\d+)/i);If=!!(e&&Number(e[1])<=53)}let il=0;const Rv=Promise.resolve(),Iv=()=>{il=0},$v=()=>il||(Rv.then(Iv),il=Zo());function dn(e,t,n,r){e.addEventListener(t,n,r)}function Lv(e,t,n,r){e.removeEventListener(t,n,r)}function Dv(e,t,n,r,i=null){const o=e._vei||(e._vei={}),s=o[t];if(r&&s)s.value=r;else{const[a,l]=Fv(t);if(r){const c=o[t]=jv(r,i);dn(e,a,c,l)}else s&&(Lv(e,a,s,l),o[t]=void 0)}}const $f=/(?:Once|Passive|Capture)$/;function Fv(e){let t;if($f.test(e)){t={};let n;for(;n=e.match($f);)e=e.slice(0,e.length-n[0].length),t[n[0].toLowerCase()]=!0}return[Ot(e.slice(2)),t]}function jv(e,t){const n=r=>{const i=r.timeStamp||Zo();(If||i>=n.attached-1)&&xt(Vv(r,n.value),t,5,[r])};return n.value=e,n.attached=$v(),n}function Vv(e,t){if(ue(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(r=>i=>!i._stopped&&r(i))}else return t}const Lf=/^on[a-z]/,zv=(e,t,n,r,i=!1,o,s,a,l)=>{t==="class"?xv(e,r,i):t==="style"?Cv(e,n,r):yn(t)?ho(t)||Dv(e,t,n,r,s):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):Bv(e,t,r,i))?Nv(e,t,r,o,s,a,l):(t==="true-value"?e._trueValue=r:t==="false-value"&&(e._falseValue=r),Av(e,t,r,i))};function Bv(e,t,n,r){return r?!!(t==="innerHTML"||t==="textContent"||t in e&&Lf.test(t)&&ye(n)):t==="spellcheck"||t==="draggable"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA"||Lf.test(t)&&be(n)?!1:t in e}function Df(e,t){const n=Aa(e);class r extends Jo{constructor(o){super(n,o,t)}}return r.def=n,r}const Hv=e=>Df(e,rp),kv=typeof HTMLElement!="undefined"?HTMLElement:class{};class Jo extends kv{constructor(t,n={},r){super();this._def=t,this._props=n,this._instance=null,this._connected=!1,this._resolved=!1,this._numberProps=null,this.shadowRoot&&r?r(this._createVNode(),this.shadowRoot):this.attachShadow({mode:"open"});for(let i=0;i<this.attributes.length;i++)this._setAttr(this.attributes[i].name);new MutationObserver(i=>{for(const o of i)this._setAttr(o.attributeName)}).observe(this,{attributes:!0})}connectedCallback(){this._connected=!0,this._instance||(this._resolveDef(),this._update())}disconnectedCallback(){this._connected=!1,Xo(()=>{this._connected||(cl(null,this.shadowRoot),this._instance=null)})}_resolveDef(){if(this._resolved)return;const t=r=>{this._resolved=!0;const{props:i,styles:o}=r,s=!ue(i),a=i?s?Object.keys(i):i:[];let l;if(s)for(const c in this._props){const u=i[c];(u===Number||u&&u.type===Number)&&(this._props[c]=cn(this._props[c]),(l||(l=Object.create(null)))[c]=!0)}l&&(this._numberProps=l,this._update());for(const c of Object.keys(this))c[0]!=="_"&&this._setProp(c,this[c]);for(const c of a.map(st))Object.defineProperty(this,c,{get(){return this._getProp(c)},set(u){this._setProp(c,u)}});this._applyStyles(o)},n=this._def.__asyncLoader;n?n().then(t):t(this._def)}_setAttr(t){let n=this.getAttribute(t);this._numberProps&&this._numberProps[t]&&(n=cn(n)),this._setProp(st(t),n,!1)}_getProp(t){return this._props[t]}_setProp(t,n,r=!0){n!==this._props[t]&&(this._props[t]=n,this._instance&&this._update(),r&&(n===!0?this.setAttribute(Ot(t),""):typeof n=="string"||typeof n=="number"?this.setAttribute(Ot(t),n+""):n||this.removeAttribute(Ot(t))))}_update(){cl(this._createVNode(),this.shadowRoot)}_createVNode(){const t=he(this._def,Me({},this._props));return this._instance||(t.ce=n=>{this._instance=n,n.isCE=!0,n.emit=(i,...o)=>{this.dispatchEvent(new CustomEvent(i,{detail:o}))};let r=this;for(;r=r&&(r.parentNode||r.host);)if(r instanceof Jo){n.parent=r._instance;break}}),t}_applyStyles(t){t&&t.forEach(n=>{const r=document.createElement("style");r.textContent=n,this.shadowRoot.appendChild(r)})}}function Uv(e="$style"){{const t=In();if(!t)return Ce;const n=t.type.__cssModules;if(!n)return Ce;const r=n[e];return r||Ce}}function Kv(e){const t=In();if(!t)return;const n=()=>ol(t.subTree,e(t.proxy));Sf(n),Pr(()=>{const r=new MutationObserver(n);r.observe(t.subTree.el.parentNode,{childList:!0}),vi(()=>r.disconnect())})}function ol(e,t){if(e.shapeFlag&128){const n=e.suspense;e=n.activeBranch,n.pendingBranch&&!n.isHydrating&&n.effects.push(()=>{ol(n.activeBranch,t)})}for(;e.component;)e=e.component.subTree;if(e.shapeFlag&1&&e.el)Ff(e.el,t);else if(e.type===Ye)e.children.forEach(n=>ol(n,t));else if(e.type===tr){let{el:n,anchor:r}=e;for(;n&&(Ff(n,t),n!==r);)n=n.nextSibling}}function Ff(e,t){if(e.nodeType===1){const n=e.style;for(const r in t)n.setProperty(`--${r}`,t[r])}}const Fn="transition",Ai="animation",Ni=(e,{slots:t})=>tl(Ca,zf(e),t);Ni.displayName="Transition";const jf={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},Wv=Ni.props=Me({},Ca.props,jf),ir=(e,t=[])=>{ue(e)?e.forEach(n=>n(...t)):e&&e(...t)},Vf=e=>e?ue(e)?e.some(t=>t.length>1):e.length>1:!1;function zf(e){const t={};for(const F in e)F in jf||(t[F]=e[F]);if(e.css===!1)return t;const{name:n="v",type:r,duration:i,enterFromClass:o=`${n}-enter-from`,enterActiveClass:s=`${n}-enter-active`,enterToClass:a=`${n}-enter-to`,appearFromClass:l=o,appearActiveClass:c=s,appearToClass:u=a,leaveFromClass:f=`${n}-leave-from`,leaveActiveClass:p=`${n}-leave-active`,leaveToClass:d=`${n}-leave-to`}=e,m=Yv(i),b=m&&m[0],v=m&&m[1],{onBeforeEnter:S,onEnter:g,onEnterCancelled:O,onLeave:E,onLeaveCancelled:$,onBeforeAppear:R=S,onAppear:T=g,onAppearCancelled:P=O}=t,N=(F,C,w)=>{or(F,C?u:a),or(F,C?c:s),w&&w()},j=(F,C)=>{or(F,d),or(F,p),C&&C()},V=F=>(C,w)=>{const M=F?T:g,L=()=>N(C,F,w);ir(M,[C,L]),Bf(()=>{or(C,F?l:o),hn(C,F?u:a),Vf(M)||Hf(C,r,b,L)})};return Me(t,{onBeforeEnter(F){ir(S,[F]),hn(F,o),hn(F,s)},onBeforeAppear(F){ir(R,[F]),hn(F,l),hn(F,c)},onEnter:V(!1),onAppear:V(!0),onLeave(F,C){const w=()=>j(F,C);hn(F,f),Wf(),hn(F,p),Bf(()=>{or(F,f),hn(F,d),Vf(E)||Hf(F,r,v,w)}),ir(E,[F,w])},onEnterCancelled(F){N(F,!1),ir(O,[F])},onAppearCancelled(F){N(F,!0),ir(P,[F])},onLeaveCancelled(F){j(F),ir($,[F])}})}function Yv(e){if(e==null)return null;if(je(e))return[sl(e.enter),sl(e.leave)];{const t=sl(e);return[t,t]}}function sl(e){return cn(e)}function hn(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e._vtc||(e._vtc=new Set)).add(t)}function or(e,t){t.split(/\s+/).forEach(r=>r&&e.classList.remove(r));const{_vtc:n}=e;n&&(n.delete(t),n.size||(e._vtc=void 0))}function Bf(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let Xv=0;function Hf(e,t,n,r){const i=e._endId=++Xv,o=()=>{i===e._endId&&r()};if(n)return setTimeout(o,n);const{type:s,timeout:a,propCount:l}=kf(e,t);if(!s)return r();const c=s+"end";let u=0;const f=()=>{e.removeEventListener(c,p),o()},p=d=>{d.target===e&&++u>=l&&f()};setTimeout(()=>{u<l&&f()},a+1),e.addEventListener(c,p)}function kf(e,t){const n=window.getComputedStyle(e),r=m=>(n[m]||"").split(", "),i=r(Fn+"Delay"),o=r(Fn+"Duration"),s=Uf(i,o),a=r(Ai+"Delay"),l=r(Ai+"Duration"),c=Uf(a,l);let u=null,f=0,p=0;t===Fn?s>0&&(u=Fn,f=s,p=o.length):t===Ai?c>0&&(u=Ai,f=c,p=l.length):(f=Math.max(s,c),u=f>0?s>c?Fn:Ai:null,p=u?u===Fn?o.length:l.length:0);const d=u===Fn&&/\b(transform|all)(,|$)/.test(n[Fn+"Property"]);return{type:u,timeout:f,propCount:p,hasTransform:d}}function Uf(e,t){for(;e.length<t.length;)e=e.concat(e);return Math.max(...t.map((n,r)=>Kf(n)+Kf(e[r])))}function Kf(e){return Number(e.slice(0,-1).replace(",","."))*1e3}function Wf(){return document.body.offsetHeight}const Yf=new WeakMap,Xf=new WeakMap,Gv={name:"TransitionGroup",props:Me({},Wv,{tag:String,moveClass:String}),setup(e,{slots:t}){const n=In(),r=xa();let i,o;return $o(()=>{if(!i.length)return;const s=e.moveClass||`${e.name||"v"}-move`;if(!_v(i[0].el,n.vnode.el,s))return;i.forEach(Jv),i.forEach(Qv);const a=i.filter(qv);Wf(),a.forEach(l=>{const c=l.el,u=c.style;hn(c,s),u.transform=u.webkitTransform=u.transitionDuration="";const f=c._moveCb=p=>{p&&p.target!==c||(!p||/transform$/.test(p.propertyName))&&(c.removeEventListener("transitionend",f),c._moveCb=null,or(c,s))};c.addEventListener("transitionend",f)})}),()=>{const s=Te(e),a=zf(s);let l=s.tag||Ye;i=o,o=t.default?Ro(t.default()):[];for(let c=0;c<o.length;c++){const u=o[c];u.key!=null&&qn(u,Tr(u,a,r,n))}if(i)for(let c=0;c<i.length;c++){const u=i[c];qn(u,Tr(u,a,r,n)),Yf.set(u,u.el.getBoundingClientRect())}return he(l,null,o)}}},Zv=Gv;function Jv(e){const t=e.el;t._moveCb&&t._moveCb(),t._enterCb&&t._enterCb()}function Qv(e){Xf.set(e,e.el.getBoundingClientRect())}function qv(e){const t=Yf.get(e),n=Xf.get(e),r=t.left-n.left,i=t.top-n.top;if(r||i){const o=e.el.style;return o.transform=o.webkitTransform=`translate(${r}px,${i}px)`,o.transitionDuration="0s",e}}function _v(e,t,n){const r=e.cloneNode();e._vtc&&e._vtc.forEach(s=>{s.split(/\s+/).forEach(a=>a&&r.classList.remove(a))}),n.split(/\s+/).forEach(s=>s&&r.classList.add(s)),r.style.display="none";const i=t.nodeType===1?t:t.parentNode;i.appendChild(r);const{hasTransform:o}=kf(r);return i.removeChild(r),o}const jn=e=>{const t=e.props["onUpdate:modelValue"];return ue(t)?n=>Xn(t,n):t};function ey(e){e.target.composing=!0}function Gf(e){const t=e.target;t.composing&&(t.composing=!1,ty(t,"input"))}function ty(e,t){const n=document.createEvent("HTMLEvents");n.initEvent(t,!0,!0),e.dispatchEvent(n)}const Qo={created(e,{modifiers:{lazy:t,trim:n,number:r}},i){e._assign=jn(i);const o=r||i.props&&i.props.type==="number";dn(e,t?"change":"input",s=>{if(s.target.composing)return;let a=e.value;n?a=a.trim():o&&(a=cn(a)),e._assign(a)}),n&&dn(e,"change",()=>{e.value=e.value.trim()}),t||(dn(e,"compositionstart",ey),dn(e,"compositionend",Gf),dn(e,"change",Gf))},mounted(e,{value:t}){e.value=t==null?"":t},beforeUpdate(e,{value:t,modifiers:{lazy:n,trim:r,number:i}},o){if(e._assign=jn(o),e.composing||document.activeElement===e&&(n||r&&e.value.trim()===t||(i||e.type==="number")&&cn(e.value)===t))return;const s=t==null?"":t;e.value!==s&&(e.value=s)}},al={deep:!0,created(e,t,n){e._assign=jn(n),dn(e,"change",()=>{const r=e._modelValue,i=Ir(e),o=e.checked,s=e._assign;if(ue(r)){const a=ti(r,i),l=a!==-1;if(o&&!l)s(r.concat(i));else if(!o&&l){const c=[...r];c.splice(a,1),s(c)}}else if(bn(r)){const a=new Set(r);o?a.add(i):a.delete(i),s(a)}else s(qf(e,o))})},mounted:Zf,beforeUpdate(e,t,n){e._assign=jn(n),Zf(e,t,n)}};function Zf(e,{value:t,oldValue:n},r){e._modelValue=t,ue(t)?e.checked=ti(t,r.props.value)>-1:bn(t)?e.checked=t.has(r.props.value):t!==n&&(e.checked=ln(t,qf(e,!0)))}const ll={created(e,{value:t},n){e.checked=ln(t,n.props.value),e._assign=jn(n),dn(e,"change",()=>{e._assign(Ir(e))})},beforeUpdate(e,{value:t,oldValue:n},r){e._assign=jn(r),t!==n&&(e.checked=ln(t,r.props.value))}},Jf={deep:!0,created(e,{value:t,modifiers:{number:n}},r){const i=bn(t);dn(e,"change",()=>{const o=Array.prototype.filter.call(e.options,s=>s.selected).map(s=>n?cn(Ir(s)):Ir(s));e._assign(e.multiple?i?new Set(o):o:o[0])}),e._assign=jn(r)},mounted(e,{value:t}){Qf(e,t)},beforeUpdate(e,t,n){e._assign=jn(n)},updated(e,{value:t}){Qf(e,t)}};function Qf(e,t){const n=e.multiple;if(!(n&&!ue(t)&&!bn(t))){for(let r=0,i=e.options.length;r<i;r++){const o=e.options[r],s=Ir(o);if(n)ue(t)?o.selected=ti(t,s)>-1:o.selected=t.has(s);else if(ln(Ir(o),t)){e.selectedIndex!==r&&(e.selectedIndex=r);return}}!n&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}}function Ir(e){return"_value"in e?e._value:e.value}function qf(e,t){const n=t?"_trueValue":"_falseValue";return n in e?e[n]:t}const ny={created(e,t,n){qo(e,t,n,null,"created")},mounted(e,t,n){qo(e,t,n,null,"mounted")},beforeUpdate(e,t,n,r){qo(e,t,n,r,"beforeUpdate")},updated(e,t,n,r){qo(e,t,n,r,"updated")}};function qo(e,t,n,r,i){let o;switch(e.tagName){case"SELECT":o=Jf;break;case"TEXTAREA":o=Qo;break;default:switch(n.props&&n.props.type){case"checkbox":o=al;break;case"radio":o=ll;break;default:o=Qo}}const s=o[i];s&&s(e,t,n,r)}function ry(){Qo.getSSRProps=({value:e})=>({value:e}),ll.getSSRProps=({value:e},t)=>{if(t.props&&ln(t.props.value,e))return{checked:!0}},al.getSSRProps=({value:e},t)=>{if(ue(e)){if(t.props&&ti(e,t.props.value)>-1)return{checked:!0}}else if(bn(e)){if(t.props&&e.has(t.props.value))return{checked:!0}}else if(e)return{checked:!0}}}const iy=["ctrl","shift","alt","meta"],oy={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>iy.some(n=>e[`${n}Key`]&&!t.includes(n))},Xe=(e,t)=>(n,...r)=>{for(let i=0;i<t.length;i++){const o=oy[t[i]];if(o&&o(n,t))return}return e(n,...r)},sy={esc:"escape",space:" ",up:"arrow-up",left:"arrow-left",right:"arrow-right",down:"arrow-down",delete:"backspace"},Dt=(e,t)=>n=>{if(!("key"in n))return;const r=Ot(n.key);if(t.some(i=>i===r||sy[i]===r))return e(n)},sr={beforeMount(e,{value:t},{transition:n}){e._vod=e.style.display==="none"?"":e.style.display,n&&t?n.beforeEnter(e):Ri(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:r}){!t!=!n&&(r?t?(r.beforeEnter(e),Ri(e,!0),r.enter(e)):r.leave(e,()=>{Ri(e,!1)}):Ri(e,t))},beforeUnmount(e,{value:t}){Ri(e,t)}};function Ri(e,t){e.style.display=t?e._vod:"none"}function ay(){sr.getSSRProps=({value:e})=>{if(!e)return{style:{display:"none"}}}}const _f=Me({patchProp:zv},Pv);let Ii,ep=!1;function tp(){return Ii||(Ii=Ju(_f))}function np(){return Ii=ep?Ii:Qu(_f),ep=!0,Ii}const cl=(...e)=>{tp().render(...e)},rp=(...e)=>{np().hydrate(...e)},ip=(...e)=>{const t=tp().createApp(...e),{mount:n}=t;return t.mount=r=>{const i=op(r);if(!i)return;const o=t._component;!ye(o)&&!o.render&&!o.template&&(o.template=i.innerHTML),i.innerHTML="";const s=n(i,!1,i instanceof SVGElement);return i instanceof Element&&(i.removeAttribute("v-cloak"),i.setAttribute("data-v-app","")),s},t},ly=(...e)=>{const t=np().createApp(...e),{mount:n}=t;return t.mount=r=>{const i=op(r);if(i)return n(i,!0,i instanceof SVGElement)},t};function op(e){return be(e)?document.querySelector(e):e}let sp=!1;const cy=()=>{sp||(sp=!0,ry(),ay())};var uy=Object.freeze({__proto__:null,[Symbol.toStringTag]:"Module",Transition:Ni,TransitionGroup:Zv,VueElement:Jo,createApp:ip,createSSRApp:ly,defineCustomElement:Df,defineSSRCustomElement:Hv,hydrate:rp,initDirectivesForSSR:cy,render:cl,useCssModule:Uv,useCssVars:Kv,vModelCheckbox:al,vModelDynamic:ny,vModelRadio:ll,vModelSelect:Jf,vModelText:Qo,vShow:sr,withKeys:Dt,withModifiers:Xe,EffectScope:la,ReactiveEffect:ai,computed:xn,customRef:Gm,effect:mm,effectScope:um,getCurrentScope:fm,isProxy:ya,isReactive:Qn,isReadonly:va,isRef:at,markRaw:ba,onScopeDispose:pm,proxyRefs:Oa,reactive:xo,readonly:ga,ref:Pn,shallowReactive:fu,shallowReadonly:km,shallowRef:Um,stop:gm,toRaw:Te,toRef:hu,toRefs:ci,triggerRef:Wm,unref:du,camelize:st,capitalize:En,normalizeClass:vn,normalizeProps:Vc,normalizeStyle:Zt,toDisplayString:Jt,toHandlerKey:Yn,BaseTransition:Ca,Comment:ht,Fragment:Ye,KeepAlive:pg,Static:tr,Suspense:ig,Teleport:Rg,Text:Cr,callWithAsyncErrorHandling:xt,callWithErrorHandling:nn,cloneVNode:An,compatUtils:wv,createBlock:ke,createCommentVNode:Lt,createElementBlock:Si,createElementVNode:Ho,createHydrationRenderer:Qu,createRenderer:Ju,createSlots:Vg,createStaticVNode:jg,createTextVNode:Nn,createVNode:he,defineAsyncComponent:ug,defineComponent:Aa,defineEmits:uv,defineExpose:fv,defineProps:cv,get devtools(){return ui},getCurrentInstance:In,getTransitionRawChildren:Ro,guardReactiveProps:sf,h:tl,handleError:nr,initCustomFormatter:yv,inject:di,isMemoSame:xf,isRuntimeOnly:Wg,isVNode:Mn,mergeDefaults:mv,mergeProps:Ei,nextTick:Xo,onActivated:Cu,onBeforeMount:Nu,onBeforeUnmount:Lo,onBeforeUpdate:Ru,onDeactivated:Mu,onErrorCaptured:Du,onMounted:Pr,onRenderTracked:Lu,onRenderTriggered:$u,onServerPrefetch:Iu,onUnmounted:vi,onUpdated:$o,openBlock:Ie,popScopeId:bu,provide:Tu,pushScopeId:yu,queuePostFlushCb:_a,registerRuntimeCompiler:Kg,renderList:ko,renderSlot:qe,resolveComponent:er,resolveDirective:Lg,resolveDynamicComponent:$g,resolveFilter:Ov,resolveTransitionHooks:Tr,setBlockTracking:ka,setDevtoolsHook:gu,setTransitionHooks:qn,ssrContextKey:Pf,ssrUtils:Ev,toHandlers:zg,transformVNodeArgs:Dg,useAttrs:hv,useSSRContext:vv,useSlots:dv,useTransitionState:xa,version:Cf,warn:hf,watch:lt,watchEffect:iv,watchPostEffect:Sf,watchSyncEffect:ov,withAsyncContext:gv,withCtx:qt,withDefaults:pv,withDirectives:xr,withMemo:bv,withScopeId:Su});function ul(e){if(e.__esModule)return e;var t=Object.defineProperty({},"__esModule",{value:!0});return Object.keys(e).forEach(function(n){var r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:function(){return e[n]}})}),t}var fy={exports:{}},ap={exports:{}},lp={};function fl(e){throw e}function cp(e){}function Be(e,t,n,r){const i=e,o=new SyntaxError(String(i));return o.code=e,o.loc=t,o}const $r=Symbol(""),Lr=Symbol(""),_o=Symbol(""),$i=Symbol(""),pl=Symbol(""),Vn=Symbol(""),dl=Symbol(""),hl=Symbol(""),es=Symbol(""),ts=Symbol(""),Dr=Symbol(""),ns=Symbol(""),ml=Symbol(""),rs=Symbol(""),Li=Symbol(""),is=Symbol(""),os=Symbol(""),ss=Symbol(""),as=Symbol(""),gl=Symbol(""),vl=Symbol(""),Di=Symbol(""),Fi=Symbol(""),ls=Symbol(""),cs=Symbol(""),Fr=Symbol(""),jr=Symbol(""),us=Symbol(""),fs=Symbol(""),up=Symbol(""),ps=Symbol(""),ji=Symbol(""),fp=Symbol(""),pp=Symbol(""),ds=Symbol(""),dp=Symbol(""),hp=Symbol(""),hs=Symbol(""),yl=Symbol(""),mn={[$r]:"Fragment",[Lr]:"Teleport",[_o]:"Suspense",[$i]:"KeepAlive",[pl]:"BaseTransition",[Vn]:"openBlock",[dl]:"createBlock",[hl]:"createElementBlock",[es]:"createVNode",[ts]:"createElementVNode",[Dr]:"createCommentVNode",[ns]:"createTextVNode",[ml]:"createStaticVNode",[rs]:"resolveComponent",[Li]:"resolveDynamicComponent",[is]:"resolveDirective",[os]:"resolveFilter",[ss]:"withDirectives",[as]:"renderList",[gl]:"renderSlot",[vl]:"createSlots",[Di]:"toDisplayString",[Fi]:"mergeProps",[ls]:"normalizeClass",[cs]:"normalizeStyle",[Fr]:"normalizeProps",[jr]:"guardReactiveProps",[us]:"toHandlers",[fs]:"camelize",[up]:"capitalize",[ps]:"toHandlerKey",[ji]:"setBlockTracking",[fp]:"pushScopeId",[pp]:"popScopeId",[ds]:"withCtx",[dp]:"unref",[hp]:"isRef",[hs]:"withMemo",[yl]:"isMemoSame"};function mp(e){Object.getOwnPropertySymbols(e).forEach(t=>{mn[t]=e[t]})}const tt={source:"",start:{line:1,column:1,offset:0},end:{line:1,column:1,offset:0}};function gp(e,t=tt){return{type:0,children:e,helpers:[],components:[],directives:[],hoists:[],imports:[],cached:0,temps:0,codegenNode:void 0,loc:t}}function Vr(e,t,n,r,i,o,s,a=!1,l=!1,c=!1,u=tt){return e&&(a?(e.helper(Vn),e.helper(ur(e.inSSR,c))):e.helper(cr(e.inSSR,c)),s&&e.helper(ss)),{type:13,tag:t,props:n,children:r,patchFlag:i,dynamicProps:o,directives:s,isBlock:a,disableTracking:l,isComponent:c,loc:u}}function zr(e,t=tt){return{type:17,loc:t,elements:e}}function Mt(e,t=tt){return{type:15,loc:t,properties:e}}function Ge(e,t){return{type:16,loc:tt,key:be(e)?Ee(e,!0):e,value:t}}function Ee(e,t=!1,n=tt,r=0){return{type:4,loc:n,content:e,isStatic:t,constType:t?3:r}}function py(e,t){return{type:5,loc:t,content:be(e)?Ee(e,!1,t):e}}function Kt(e,t=tt){return{type:8,loc:t,children:e}}function Ze(e,t=[],n=tt){return{type:14,loc:n,callee:e,arguments:t}}function ar(e,t=void 0,n=!1,r=!1,i=tt){return{type:18,params:e,returns:t,newline:n,isSlot:r,loc:i}}function ms(e,t,n,r=!0){return{type:19,test:e,consequent:t,alternate:n,newline:r,loc:tt}}function vp(e,t,n=!1){return{type:20,index:e,value:t,isVNode:n,loc:tt}}function yp(e){return{type:21,body:e,loc:tt}}function dy(e){return{type:22,elements:e,loc:tt}}function hy(e,t,n){return{type:23,test:e,consequent:t,alternate:n,loc:tt}}function my(e,t){return{type:24,left:e,right:t,loc:tt}}function gy(e){return{type:25,expressions:e,loc:tt}}function vy(e){return{type:26,returns:e,loc:tt}}const mt=e=>e.type===4&&e.isStatic,lr=(e,t)=>e===t||e===Ot(t);function bl(e){if(lr(e,"Teleport"))return Lr;if(lr(e,"Suspense"))return _o;if(lr(e,"KeepAlive"))return $i;if(lr(e,"BaseTransition"))return pl}const yy=/^\d|[^\$\w]/,Vi=e=>!yy.test(e),by=/[A-Za-z_$\xA0-\uFFFF]/,Sy=/[\.\?\w$\xA0-\uFFFF]/,Ey=/\s+[.[]\s*|\s*[.[]\s+/g,bp=e=>{e=e.trim().replace(Ey,s=>s.trim());let t=0,n=[],r=0,i=0,o=null;for(let s=0;s<e.length;s++){const a=e.charAt(s);switch(t){case 0:if(a==="[")n.push(t),t=1,r++;else if(a==="(")n.push(t),t=2,i++;else if(!(s===0?by:Sy).test(a))return!1;break;case 1:a==="'"||a==='"'||a==="`"?(n.push(t),t=3,o=a):a==="["?r++:a==="]"&&(--r||(t=n.pop()));break;case 2:if(a==="'"||a==='"'||a==="`")n.push(t),t=3,o=a;else if(a==="(")i++;else if(a===")"){if(s===e.length-1)return!1;--i||(t=n.pop())}break;case 3:a===o&&(t=n.pop(),o=null);break}}return!r&&!i},Oy=pt,Sl=bp;function El(e,t,n){const i={source:e.source.substr(t,n),start:zi(e.start,e.source,t),end:e.end};return n!=null&&(i.end=zi(e.start,e.source,t+n)),i}function zi(e,t,n=t.length){return Bi(Me({},e),t,n)}function Bi(e,t,n=t.length){let r=0,i=-1;for(let o=0;o<n;o++)t.charCodeAt(o)===10&&(r++,i=o);return e.offset+=n,e.line+=r,e.column=i===-1?e.column+n:n-i,e}function wy(e,t){if(!e)throw new Error(t||"unexpected compiler condition")}function Et(e,t,n=!1){for(let r=0;r<e.props.length;r++){const i=e.props[r];if(i.type===7&&(n||i.exp)&&(be(t)?i.name===t:t.test(i.name)))return i}}function Br(e,t,n=!1,r=!1){for(let i=0;i<e.props.length;i++){const o=e.props[i];if(o.type===6){if(n)continue;if(o.name===t&&(o.value||r))return o}else if(o.name==="bind"&&(o.exp||r)&&Hi(o.arg,t))return o}}function Hi(e,t){return!!(e&&mt(e)&&e.content===t)}function Sp(e){return e.props.some(t=>t.type===7&&t.name==="bind"&&(!t.arg||t.arg.type!==4||!t.arg.isStatic))}function gs(e){return e.type===5||e.type===2}function Ol(e){return e.type===7&&e.name==="slot"}function Hr(e){return e.type===1&&e.tagType===3}function ki(e){return e.type===1&&e.tagType===2}function cr(e,t){return e||t?es:ts}function ur(e,t){return e||t?dl:hl}const Ty=new Set([Fr,jr]);function Ep(e,t=[]){if(e&&!be(e)&&e.type===14){const n=e.callee;if(!be(n)&&Ty.has(n))return Ep(e.arguments[0],t.concat(e))}return[e,t]}function Ui(e,t,n){let r,o=e.type===13?e.props:e.arguments[2],s=[],a;if(o&&!be(o)&&o.type===14){const l=Ep(o);o=l[0],s=l[1],a=s[s.length-1]}if(o==null||be(o))r=Mt([t]);else if(o.type===14){const l=o.arguments[0];!be(l)&&l.type===15?l.properties.unshift(t):o.callee===us?r=Ze(n.helper(Fi),[Mt([t]),o]):o.arguments.unshift(Mt([t])),!r&&(r=o)}else if(o.type===15){let l=!1;if(t.key.type===4){const c=t.key.content;l=o.properties.some(u=>u.key.type===4&&u.key.content===c)}l||o.properties.unshift(t),r=o}else r=Ze(n.helper(Fi),[Mt([t]),o]),a&&a.callee===jr&&(a=s[s.length-2]);e.type===13?a?a.arguments[0]=r:e.props=r:a?a.arguments[0]=r:e.arguments[2]=r}function kr(e,t){return`_${t}_${e.replace(/[^\w]/g,(n,r)=>n==="-"?"_":e.charCodeAt(r).toString())}`}function Wt(e,t){if(!e||Object.keys(t).length===0)return!1;switch(e.type){case 1:for(let n=0;n<e.props.length;n++){const r=e.props[n];if(r.type===7&&(Wt(r.arg,t)||Wt(r.exp,t)))return!0}return e.children.some(n=>Wt(n,t));case 11:return Wt(e.source,t)?!0:e.children.some(n=>Wt(n,t));case 9:return e.branches.some(n=>Wt(n,t));case 10:return Wt(e.condition,t)?!0:e.children.some(n=>Wt(n,t));case 4:return!e.isStatic&&Vi(e.content)&&!!t[e.content];case 8:return e.children.some(n=>je(n)&&Wt(n,t));case 5:case 12:return Wt(e.content,t);case 2:case 3:return!1;default:return!1}}function Op(e){return e.type===14&&e.callee===hs?e.arguments[1].returns:e}function vs(e,{helper:t,removeHelper:n,inSSR:r}){e.isBlock||(e.isBlock=!0,n(cr(r,e.isComponent)),t(Vn),t(ur(r,e.isComponent)))}const Py={COMPILER_IS_ON_ELEMENT:{message:'Platform-native elements with "is" prop will no longer be treated as components in Vue 3 unless the "is" value is explicitly prefixed with "vue:".',link:"https://v3.vuejs.org/guide/migration/custom-elements-interop.html"},COMPILER_V_BIND_SYNC:{message:e=>`.sync modifier for v-bind has been removed. Use v-model with argument instead. \`v-bind:${e}.sync\` should be changed to \`v-model:${e}\`.`,link:"https://v3.vuejs.org/guide/migration/v-model.html"},COMPILER_V_BIND_PROP:{message:".prop modifier for v-bind has been removed and no longer necessary. Vue 3 will automatically set a binding as DOM property when appropriate."},COMPILER_V_BIND_OBJECT_ORDER:{message:'v-bind="obj" usage is now order sensitive and behaves like JavaScript object spread: it will now overwrite an existing non-mergeable attribute that appears before v-bind in the case of conflict. To retain 2.x behavior, move v-bind to make it the first attribute. You can also suppress this warning if the usage is intended.',link:"https://v3.vuejs.org/guide/migration/v-bind.html"},COMPILER_V_ON_NATIVE:{message:".native modifier for v-on has been removed as is no longer necessary.",link:"https://v3.vuejs.org/guide/migration/v-on-native-modifier-removed.html"},COMPILER_V_IF_V_FOR_PRECEDENCE:{message:"v-if / v-for precedence when used on the same element has changed in Vue 3: v-if now takes higher precedence and will no longer have access to v-for scope variables. It is best to avoid the ambiguity with <template> tags or use a computed property that filters v-for data source.",link:"https://v3.vuejs.org/guide/migration/v-if-v-for.html"},COMPILER_V_FOR_REF:{message:"Ref usage on v-for no longer creates array ref values in Vue 3. Consider using function refs or refactor to avoid ref usage altogether.",link:"https://v3.vuejs.org/guide/migration/array-refs.html"},COMPILER_NATIVE_TEMPLATE:{message:"<template> with no special directives will render as a native template element instead of its inner content in Vue 3."},COMPILER_INLINE_TEMPLATE:{message:'"inline-template" has been removed in Vue 3.',link:"https://v3.vuejs.org/guide/migration/inline-template-attribute.html"},COMPILER_FILTER:{message:'filters have been removed in Vue 3. The "|" symbol will be treated as native JavaScript bitwise OR operator. Use method calls or computed properties instead.',link:"https://v3.vuejs.org/guide/migration/filters.html"}};function wl(e,t){const n=t.options?t.options.compatConfig:t.compatConfig,r=n&&n[e];return e==="MODE"?r||3:r}function fr(e,t){const n=wl("MODE",t),r=wl(e,t);return n===3?r===!0:r!==!1}function pr(e,t,n,...r){return fr(e,t)}function xy(e,t,n,...r){if(wl(e,t)==="suppress-warning")return;const{message:o,link:s}=Py[e],a=`(deprecation ${e}) ${typeof o=="function"?o(...r):o}${s?`
6
+ Details: ${s}`:""}`,l=new SyntaxError(a);l.code=e,n&&(l.loc=n),t.onWarn(l)}const Cy=/&(gt|lt|amp|apos|quot);/g,My={gt:">",lt:"<",amp:"&",apos:"'",quot:'"'},wp={delimiters:["{{","}}"],getNamespace:()=>0,getTextMode:()=>0,isVoidTag:ni,isPreTag:ni,isCustomElement:ni,decodeEntities:e=>e.replace(Cy,(t,n)=>My[n]),onError:fl,onWarn:cp,comments:!1};function Tl(e,t={}){const n=Ay(e,t),r=At(n);return gp(Pl(n,0,[]),Ft(n,r))}function Ay(e,t){const n=Me({},wp);let r;for(r in t)n[r]=t[r]===void 0?wp[r]:t[r];return{options:n,column:1,line:1,offset:0,originalSource:e,source:e,inPre:!1,inVPre:!1,onWarn:n.onWarn}}function Pl(e,t,n){const r=ys(n),i=r?r.ns:0,o=[];for(;!Vy(e,t,n);){const a=e.source;let l;if(t===0||t===1){if(!e.inVPre&&ct(a,e.options.delimiters[0]))l=Fy(e,t);else if(t===0&&a[0]==="<")if(a.length===1)Ne(e,5,1);else if(a[1]==="!")ct(a,"<!--")?l=Ry(e):ct(a,"<!DOCTYPE")?l=Ki(e):ct(a,"<![CDATA[")?i!==0?l=Ny(e,n):(Ne(e,1),l=Ki(e)):(Ne(e,11),l=Ki(e));else if(a[1]==="/")if(a.length===2)Ne(e,5,2);else if(a[2]===">"){Ne(e,14,2),nt(e,3);continue}else if(/[a-z]/i.test(a[2])){Ne(e,23),xl(e,1,r);continue}else Ne(e,12,2),l=Ki(e);else/[a-z]/i.test(a[1])?(l=Iy(e,n),fr("COMPILER_NATIVE_TEMPLATE",e)&&l&&l.tag==="template"&&!l.props.some(c=>c.type===7&&Pp(c.name))&&(l=l.children)):a[1]==="?"?(Ne(e,21,1),l=Ki(e)):Ne(e,12,1)}if(l||(l=jy(e,t)),ue(l))for(let c=0;c<l.length;c++)Tp(o,l[c]);else Tp(o,l)}let s=!1;if(t!==2&&t!==1){const a=e.options.whitespace!=="preserve";for(let l=0;l<o.length;l++){const c=o[l];if(!e.inPre&&c.type===2)if(/[^\t\r\n\f ]/.test(c.content))a&&(c.content=c.content.replace(/[\t\r\n\f ]+/g," "));else{const u=o[l-1],f=o[l+1];!u||!f||a&&(u.type===3||f.type===3||u.type===1&&f.type===1&&/[\r\n]/.test(c.content))?(s=!0,o[l]=null):c.content=" "}else c.type===3&&!e.options.comments&&(s=!0,o[l]=null)}if(e.inPre&&r&&e.options.isPreTag(r.tag)){const l=o[0];l&&l.type===2&&(l.content=l.content.replace(/^\r?\n/,""))}}return s?o.filter(Boolean):o}function Tp(e,t){if(t.type===2){const n=ys(e);if(n&&n.type===2&&n.loc.end.offset===t.loc.start.offset){n.content+=t.content,n.loc.end=t.loc.end,n.loc.source+=t.loc.source;return}}e.push(t)}function Ny(e,t){nt(e,9);const n=Pl(e,3,t);return e.source.length===0?Ne(e,6):nt(e,3),n}function Ry(e){const t=At(e);let n;const r=/--(\!)?>/.exec(e.source);if(!r)n=e.source.slice(4),nt(e,e.source.length),Ne(e,7);else{r.index<=3&&Ne(e,0),r[1]&&Ne(e,10),n=e.source.slice(4,r.index);const i=e.source.slice(0,r.index);let o=1,s=0;for(;(s=i.indexOf("<!--",o))!==-1;)nt(e,s-o+1),s+4<i.length&&Ne(e,16),o=s+1;nt(e,r.index+r[0].length-o+1)}return{type:3,content:n,loc:Ft(e,t)}}function Ki(e){const t=At(e),n=e.source[1]==="?"?1:2;let r;const i=e.source.indexOf(">");return i===-1?(r=e.source.slice(n),nt(e,e.source.length)):(r=e.source.slice(n,i),nt(e,i+1)),{type:3,content:r,loc:Ft(e,t)}}function Iy(e,t){const n=e.inPre,r=e.inVPre,i=ys(t),o=xl(e,0,i),s=e.inPre&&!n,a=e.inVPre&&!r;if(o.isSelfClosing||e.options.isVoidTag(o.tag))return s&&(e.inPre=!1),a&&(e.inVPre=!1),o;t.push(o);const l=e.options.getTextMode(o,i),c=Pl(e,l,t);t.pop();{const u=o.props.find(f=>f.type===6&&f.name==="inline-template");if(u&&pr("COMPILER_INLINE_TEMPLATE",e,u.loc)){const f=Ft(e,o.loc.end);u.value={type:2,content:f.source,loc:f}}}if(o.children=c,Cl(e.source,o.tag))xl(e,1,i);else if(Ne(e,24,0,o.loc.start),e.source.length===0&&o.tag.toLowerCase()==="script"){const u=c[0];u&&ct(u.loc.source,"<!--")&&Ne(e,8)}return o.loc=Ft(e,o.loc.start),s&&(e.inPre=!1),a&&(e.inVPre=!1),o}const Pp=it("if,else,else-if,for,slot");function xl(e,t,n){const r=At(e),i=/^<\/?([a-z][^\t\r\n\f />]*)/i.exec(e.source),o=i[1],s=e.options.getNamespace(o,n);nt(e,i[0].length),Yi(e);const a=At(e),l=e.source;e.options.isPreTag(o)&&(e.inPre=!0);let c=xp(e,t);t===0&&!e.inVPre&&c.some(p=>p.type===7&&p.name==="pre")&&(e.inVPre=!0,Me(e,a),e.source=l,c=xp(e,t).filter(p=>p.name!=="v-pre"));let u=!1;if(e.source.length===0?Ne(e,9):(u=ct(e.source,"/>"),t===1&&u&&Ne(e,4),nt(e,u?2:1)),t===1)return;let f=0;return e.inVPre||(o==="slot"?f=2:o==="template"?c.some(p=>p.type===7&&Pp(p.name))&&(f=3):$y(o,c,e)&&(f=1)),{type:1,ns:s,tag:o,tagType:f,props:c,isSelfClosing:u,children:[],loc:Ft(e,r),codegenNode:void 0}}function $y(e,t,n){const r=n.options;if(r.isCustomElement(e))return!1;if(e==="component"||/^[A-Z]/.test(e)||bl(e)||r.isBuiltInComponent&&r.isBuiltInComponent(e)||r.isNativeTag&&!r.isNativeTag(e))return!0;for(let i=0;i<t.length;i++){const o=t[i];if(o.type===6){if(o.name==="is"&&o.value){if(o.value.content.startsWith("vue:"))return!0;if(pr("COMPILER_IS_ON_ELEMENT",n,o.loc))return!0}}else{if(o.name==="is")return!0;if(o.name==="bind"&&Hi(o.arg,"is")&&!0&&pr("COMPILER_IS_ON_ELEMENT",n,o.loc))return!0}}}function xp(e,t){const n=[],r=new Set;for(;e.source.length>0&&!ct(e.source,">")&&!ct(e.source,"/>");){if(ct(e.source,"/")){Ne(e,22),nt(e,1),Yi(e);continue}t===1&&Ne(e,3);const i=Ly(e,r);i.type===6&&i.value&&i.name==="class"&&(i.value.content=i.value.content.replace(/\s+/g," ").trim()),t===0&&n.push(i),/^[^\t\r\n\f />]/.test(e.source)&&Ne(e,15),Yi(e)}return n}function Ly(e,t){const n=At(e),i=/^[^\t\r\n\f />][^\t\r\n\f />=]*/.exec(e.source)[0];t.has(i)&&Ne(e,2),t.add(i),i[0]==="="&&Ne(e,19);{const a=/["'<]/g;let l;for(;l=a.exec(i);)Ne(e,17,l.index)}nt(e,i.length);let o;/^[\t\r\n\f ]*=/.test(e.source)&&(Yi(e),nt(e,1),Yi(e),o=Dy(e),o||Ne(e,13));const s=Ft(e,n);if(!e.inVPre&&/^(v-[A-Za-z0-9-]|:|\.|@|#)/.test(i)){const a=/(?:^v-([a-z0-9-]+))?(?:(?::|^\.|^@|^#)(\[[^\]]+\]|[^\.]+))?(.+)?$/i.exec(i);let l=ct(i,"."),c=a[1]||(l||ct(i,":")?"bind":ct(i,"@")?"on":"slot"),u;if(a[2]){const p=c==="slot",d=i.lastIndexOf(a[2]),m=Ft(e,Cp(e,n,d),Cp(e,n,d+a[2].length+(p&&a[3]||"").length));let b=a[2],v=!0;b.startsWith("[")?(v=!1,b.endsWith("]")?b=b.substr(1,b.length-2):(Ne(e,27),b=b.substr(1))):p&&(b+=a[3]||""),u={type:4,content:b,isStatic:v,constType:v?3:0,loc:m}}if(o&&o.isQuoted){const p=o.loc;p.start.offset++,p.start.column++,p.end=zi(p.start,o.content),p.source=p.source.slice(1,-1)}const f=a[3]?a[3].substr(1).split("."):[];return l&&f.push("prop"),c==="bind"&&u&&f.includes("sync")&&pr("COMPILER_V_BIND_SYNC",e,s,u.loc.source)&&(c="model",f.splice(f.indexOf("sync"),1)),{type:7,name:c,exp:o&&{type:4,content:o.content,isStatic:!1,constType:0,loc:o.loc},arg:u,modifiers:f,loc:s}}return!e.inVPre&&ct(i,"v-")&&Ne(e,26),{type:6,name:i,value:o&&{type:2,content:o.content,loc:o.loc},loc:s}}function Dy(e){const t=At(e);let n;const r=e.source[0],i=r==='"'||r==="'";if(i){nt(e,1);const o=e.source.indexOf(r);o===-1?n=Wi(e,e.source.length,4):(n=Wi(e,o,4),nt(e,1))}else{const o=/^[^\t\r\n\f >]+/.exec(e.source);if(!o)return;const s=/["'<=`]/g;let a;for(;a=s.exec(o[0]);)Ne(e,18,a.index);n=Wi(e,o[0].length,4)}return{content:n,isQuoted:i,loc:Ft(e,t)}}function Fy(e,t){const[n,r]=e.options.delimiters,i=e.source.indexOf(r,n.length);if(i===-1){Ne(e,25);return}const o=At(e);nt(e,n.length);const s=At(e),a=At(e),l=i-n.length,c=e.source.slice(0,l),u=Wi(e,l,t),f=u.trim(),p=u.indexOf(f);p>0&&Bi(s,c,p);const d=l-(u.length-f.length-p);return Bi(a,c,d),nt(e,r.length),{type:5,content:{type:4,isStatic:!1,constType:0,content:f,loc:Ft(e,s,a)},loc:Ft(e,o)}}function jy(e,t){const n=t===3?["]]>"]:["<",e.options.delimiters[0]];let r=e.source.length;for(let s=0;s<n.length;s++){const a=e.source.indexOf(n[s],1);a!==-1&&r>a&&(r=a)}const i=At(e),o=Wi(e,r,t);return{type:2,content:o,loc:Ft(e,i)}}function Wi(e,t,n){const r=e.source.slice(0,t);return nt(e,t),n===2||n===3||r.indexOf("&")===-1?r:e.options.decodeEntities(r,n===4)}function At(e){const{column:t,line:n,offset:r}=e;return{column:t,line:n,offset:r}}function Ft(e,t,n){return n=n||At(e),{start:t,end:n,source:e.originalSource.slice(t.offset,n.offset)}}function ys(e){return e[e.length-1]}function ct(e,t){return e.startsWith(t)}function nt(e,t){const{source:n}=e;Bi(e,n,t),e.source=n.slice(t)}function Yi(e){const t=/^[\t\r\n\f ]+/.exec(e.source);t&&nt(e,t[0].length)}function Cp(e,t,n){return zi(t,e.originalSource.slice(t.offset,n),n)}function Ne(e,t,n,r=At(e)){n&&(r.offset+=n,r.column+=n),e.options.onError(Be(t,{start:r,end:r,source:""}))}function Vy(e,t,n){const r=e.source;switch(t){case 0:if(ct(r,"</")){for(let i=n.length-1;i>=0;--i)if(Cl(r,n[i].tag))return!0}break;case 1:case 2:{const i=ys(n);if(i&&Cl(r,i.tag))return!0;break}case 3:if(ct(r,"]]>"))return!0;break}return!r}function Cl(e,t){return ct(e,"</")&&e.substr(2,t.length).toLowerCase()===t.toLowerCase()&&/[\t\r\n\f />]/.test(e[2+t.length]||">")}function zy(e,t){bs(e,t,Mp(e,e.children[0]))}function Mp(e,t){const{children:n}=e;return n.length===1&&t.type===1&&!ki(t)}function bs(e,t,n=!1){let r=!0;const{children:i}=e,o=i.length;let s=0;for(let a=0;a<i.length;a++){const l=i[a];if(l.type===1&&l.tagType===0){const c=n?0:jt(l,t);if(c>0){if(c<3&&(r=!1),c>=2){l.codegenNode.patchFlag=-1+"",l.codegenNode=t.hoist(l.codegenNode),s++;continue}}else{const u=l.codegenNode;if(u.type===13){const f=Ip(u);if((!f||f===512||f===1)&&Np(l,t)>=2){const p=Rp(l);p&&(u.props=t.hoist(p))}u.dynamicProps&&(u.dynamicProps=t.hoist(u.dynamicProps))}}}else if(l.type===12){const c=jt(l.content,t);c>0&&(c<3&&(r=!1),c>=2&&(l.codegenNode=t.hoist(l.codegenNode),s++))}if(l.type===1){const c=l.tagType===1;c&&t.scopes.vSlot++,bs(l,t),c&&t.scopes.vSlot--}else if(l.type===11)bs(l,t,l.children.length===1);else if(l.type===9)for(let c=0;c<l.branches.length;c++)bs(l.branches[c],t,l.branches[c].children.length===1)}r&&s&&t.transformHoist&&t.transformHoist(i,t,e),s&&s===o&&e.type===1&&e.tagType===0&&e.codegenNode&&e.codegenNode.type===13&&ue(e.codegenNode.children)&&(e.codegenNode.children=t.hoist(zr(e.codegenNode.children)))}function jt(e,t){const{constantCache:n}=t;switch(e.type){case 1:if(e.tagType!==0)return 0;const r=n.get(e);if(r!==void 0)return r;const i=e.codegenNode;if(i.type!==13)return 0;if(Ip(i))return n.set(e,0),0;{let a=3;const l=Np(e,t);if(l===0)return n.set(e,0),0;l<a&&(a=l);for(let c=0;c<e.children.length;c++){const u=jt(e.children[c],t);if(u===0)return n.set(e,0),0;u<a&&(a=u)}if(a>1)for(let c=0;c<e.props.length;c++){const u=e.props[c];if(u.type===7&&u.name==="bind"&&u.exp){const f=jt(u.exp,t);if(f===0)return n.set(e,0),0;f<a&&(a=f)}}return i.isBlock&&(t.removeHelper(Vn),t.removeHelper(ur(t.inSSR,i.isComponent)),i.isBlock=!1,t.helper(cr(t.inSSR,i.isComponent))),n.set(e,a),a}case 2:case 3:return 3;case 9:case 11:case 10:return 0;case 5:case 12:return jt(e.content,t);case 4:return e.constType;case 8:let s=3;for(let a=0;a<e.children.length;a++){const l=e.children[a];if(be(l)||Wn(l))continue;const c=jt(l,t);if(c===0)return 0;c<s&&(s=c)}return s;default:return 0}}const By=new Set([ls,cs,Fr,jr]);function Ap(e,t){if(e.type===14&&!be(e.callee)&&By.has(e.callee)){const n=e.arguments[0];if(n.type===4)return jt(n,t);if(n.type===14)return Ap(n,t)}return 0}function Np(e,t){let n=3;const r=Rp(e);if(r&&r.type===15){const{properties:i}=r;for(let o=0;o<i.length;o++){const{key:s,value:a}=i[o],l=jt(s,t);if(l===0)return l;l<n&&(n=l);let c;if(a.type===4?c=jt(a,t):a.type===14?c=Ap(a,t):c=0,c===0)return c;c<n&&(n=c)}}return n}function Rp(e){const t=e.codegenNode;if(t.type===13)return t.props}function Ip(e){const t=e.patchFlag;return t?parseInt(t,10):void 0}function $p(e,{filename:t="",prefixIdentifiers:n=!1,hoistStatic:r=!1,cacheHandlers:i=!1,nodeTransforms:o=[],directiveTransforms:s={},transformHoist:a=null,isBuiltInComponent:l=pt,isCustomElement:c=pt,expressionPlugins:u=[],scopeId:f=null,slotted:p=!0,ssr:d=!1,inSSR:m=!1,ssrCssVars:b="",bindingMetadata:v=Ce,inline:S=!1,isTS:g=!1,onError:O=fl,onWarn:E=cp,compatConfig:$}){const R=t.replace(/\?.*$/,"").match(/([^/\\]+)\.\w+$/),T={selfName:R&&En(st(R[1])),prefixIdentifiers:n,hoistStatic:r,cacheHandlers:i,nodeTransforms:o,directiveTransforms:s,transformHoist:a,isBuiltInComponent:l,isCustomElement:c,expressionPlugins:u,scopeId:f,slotted:p,ssr:d,inSSR:m,ssrCssVars:b,bindingMetadata:v,inline:S,isTS:g,onError:O,onWarn:E,compatConfig:$,root:e,helpers:new Map,components:new Set,directives:new Set,hoists:[],imports:[],constantCache:new Map,temps:0,cached:0,identifiers:Object.create(null),scopes:{vFor:0,vSlot:0,vPre:0,vOnce:0},parent:null,currentNode:e,childIndex:0,inVOnce:!1,helper(P){const N=T.helpers.get(P)||0;return T.helpers.set(P,N+1),P},removeHelper(P){const N=T.helpers.get(P);if(N){const j=N-1;j?T.helpers.set(P,j):T.helpers.delete(P)}},helperString(P){return`_${mn[T.helper(P)]}`},replaceNode(P){T.parent.children[T.childIndex]=T.currentNode=P},removeNode(P){const N=T.parent.children,j=P?N.indexOf(P):T.currentNode?T.childIndex:-1;!P||P===T.currentNode?(T.currentNode=null,T.onNodeRemoved()):T.childIndex>j&&(T.childIndex--,T.onNodeRemoved()),T.parent.children.splice(j,1)},onNodeRemoved:()=>{},addIdentifiers(P){},removeIdentifiers(P){},hoist(P){be(P)&&(P=Ee(P)),T.hoists.push(P);const N=Ee(`_hoisted_${T.hoists.length}`,!1,P.loc,2);return N.hoisted=P,N},cache(P,N=!1){return vp(T.cached++,P,N)}};return T.filters=new Set,T}function Lp(e,t){const n=$p(e,t);Xi(e,n),t.hoistStatic&&zy(e,n),t.ssr||Hy(e,n),e.helpers=[...n.helpers.keys()],e.components=[...n.components],e.directives=[...n.directives],e.imports=n.imports,e.hoists=n.hoists,e.temps=n.temps,e.cached=n.cached,e.filters=[...n.filters]}function Hy(e,t){const{helper:n}=t,{children:r}=e;if(r.length===1){const i=r[0];if(Mp(e,i)&&i.codegenNode){const o=i.codegenNode;o.type===13&&vs(o,t),e.codegenNode=o}else e.codegenNode=i}else if(r.length>1){let i=64;_s[64],e.codegenNode=Vr(t,n($r),void 0,e.children,i+"",void 0,void 0,!0,void 0,!1)}}function ky(e,t){let n=0;const r=()=>{n--};for(;n<e.children.length;n++){const i=e.children[n];be(i)||(t.parent=e,t.childIndex=n,t.onNodeRemoved=r,Xi(i,t))}}function Xi(e,t){t.currentNode=e;const{nodeTransforms:n}=t,r=[];for(let o=0;o<n.length;o++){const s=n[o](e,t);if(s&&(ue(s)?r.push(...s):r.push(s)),t.currentNode)e=t.currentNode;else return}switch(e.type){case 3:t.ssr||t.helper(Dr);break;case 5:t.ssr||t.helper(Di);break;case 9:for(let o=0;o<e.branches.length;o++)Xi(e.branches[o],t);break;case 10:case 11:case 1:case 0:ky(e,t);break}t.currentNode=e;let i=r.length;for(;i--;)r[i]()}function Ml(e,t){const n=be(e)?r=>r===e:r=>e.test(r);return(r,i)=>{if(r.type===1){const{props:o}=r;if(r.tagType===3&&o.some(Ol))return;const s=[];for(let a=0;a<o.length;a++){const l=o[a];if(l.type===7&&n(l.name)){o.splice(a,1),a--;const c=t(r,l,i);c&&s.push(c)}}return s}}}const Ss="/*#__PURE__*/";function Uy(e,{mode:t="function",prefixIdentifiers:n=t==="module",sourceMap:r=!1,filename:i="template.vue.html",scopeId:o=null,optimizeImports:s=!1,runtimeGlobalName:a="Vue",runtimeModuleName:l="vue",ssrRuntimeModuleName:c="vue/server-renderer",ssr:u=!1,isTS:f=!1,inSSR:p=!1}){const d={mode:t,prefixIdentifiers:n,sourceMap:r,filename:i,scopeId:o,optimizeImports:s,runtimeGlobalName:a,runtimeModuleName:l,ssrRuntimeModuleName:c,ssr:u,isTS:f,inSSR:p,source:e.loc.source,code:"",column:1,line:1,offset:0,indentLevel:0,pure:!1,map:void 0,helper(b){return`_${mn[b]}`},push(b,v){d.code+=b},indent(){m(++d.indentLevel)},deindent(b=!1){b?--d.indentLevel:m(--d.indentLevel)},newline(){m(d.indentLevel)}};function m(b){d.push(`
7
+ `+" ".repeat(b))}return d}function Dp(e,t={}){const n=Uy(e,t);t.onContextCreated&&t.onContextCreated(n);const{mode:r,push:i,prefixIdentifiers:o,indent:s,deindent:a,newline:l,scopeId:c,ssr:u}=n,f=e.helpers.length>0,p=!o&&r!=="module";Ky(e,n);const m=u?"ssrRender":"render",v=(u?["_ctx","_push","_parent","_attrs"]:["_ctx","_cache"]).join(", ");if(i(`function ${m}(${v}) {`),s(),p&&(i("with (_ctx) {"),s(),f&&(i(`const { ${e.helpers.map(S=>`${mn[S]}: _${mn[S]}`).join(", ")} } = _Vue`),i(`
8
+ `),l())),e.components.length&&(Al(e.components,"component",n),(e.directives.length||e.temps>0)&&l()),e.directives.length&&(Al(e.directives,"directive",n),e.temps>0&&l()),e.filters&&e.filters.length&&(l(),Al(e.filters,"filter",n),l()),e.temps>0){i("let ");for(let S=0;S<e.temps;S++)i(`${S>0?", ":""}_temp${S}`)}return(e.components.length||e.directives.length||e.temps)&&(i(`
9
+ `),l()),u||i("return "),e.codegenNode?ut(e.codegenNode,n):i("null"),p&&(a(),i("}")),a(),i("}"),{ast:e,code:n.code,preamble:"",map:n.map?n.map.toJSON():void 0}}function Ky(e,t){const{ssr:n,prefixIdentifiers:r,push:i,newline:o,runtimeModuleName:s,runtimeGlobalName:a,ssrRuntimeModuleName:l}=t,c=a,u=f=>`${mn[f]}: _${mn[f]}`;if(e.helpers.length>0&&(i(`const _Vue = ${c}
10
+ `),e.hoists.length)){const f=[es,ts,Dr,ns,ml].filter(p=>e.helpers.includes(p)).map(u).join(", ");i(`const { ${f} } = _Vue
11
+ `)}Wy(e.hoists,t),o(),i("return ")}function Al(e,t,{helper:n,push:r,newline:i,isTS:o}){const s=n(t==="filter"?os:t==="component"?rs:is);for(let a=0;a<e.length;a++){let l=e[a];const c=l.endsWith("__self");c&&(l=l.slice(0,-6)),r(`const ${kr(l,t)} = ${s}(${JSON.stringify(l)}${c?", true":""})${o?"!":""}`),a<e.length-1&&i()}}function Wy(e,t){if(!e.length)return;t.pure=!0;const{push:n,newline:r,helper:i,scopeId:o,mode:s}=t;r();for(let a=0;a<e.length;a++){const l=e[a];l&&(n(`const _hoisted_${a+1} = `),ut(l,t),r())}t.pure=!1}function Nl(e,t){const n=e.length>3||!1;t.push("["),n&&t.indent(),Gi(e,t,n),n&&t.deindent(),t.push("]")}function Gi(e,t,n=!1,r=!0){const{push:i,newline:o}=t;for(let s=0;s<e.length;s++){const a=e[s];be(a)?i(a):ue(a)?Nl(a,t):ut(a,t),s<e.length-1&&(n?(r&&i(","),o()):r&&i(", "))}}function ut(e,t){if(be(e)){t.push(e);return}if(Wn(e)){t.push(t.helper(e));return}switch(e.type){case 1:case 9:case 11:ut(e.codegenNode,t);break;case 2:Yy(e,t);break;case 4:Fp(e,t);break;case 5:Xy(e,t);break;case 12:ut(e.codegenNode,t);break;case 8:jp(e,t);break;case 3:Zy(e,t);break;case 13:Jy(e,t);break;case 14:qy(e,t);break;case 15:_y(e,t);break;case 17:eb(e,t);break;case 18:tb(e,t);break;case 19:nb(e,t);break;case 20:rb(e,t);break;case 21:Gi(e.body,t,!0,!1);break}}function Yy(e,t){t.push(JSON.stringify(e.content),e)}function Fp(e,t){const{content:n,isStatic:r}=e;t.push(r?JSON.stringify(n):n,e)}function Xy(e,t){const{push:n,helper:r,pure:i}=t;i&&n(Ss),n(`${r(Di)}(`),ut(e.content,t),n(")")}function jp(e,t){for(let n=0;n<e.children.length;n++){const r=e.children[n];be(r)?t.push(r):ut(r,t)}}function Gy(e,t){const{push:n}=t;if(e.type===8)n("["),jp(e,t),n("]");else if(e.isStatic){const r=Vi(e.content)?e.content:JSON.stringify(e.content);n(r,e)}else n(`[${e.content}]`,e)}function Zy(e,t){const{push:n,helper:r,pure:i}=t;i&&n(Ss),n(`${r(Dr)}(${JSON.stringify(e.content)})`,e)}function Jy(e,t){const{push:n,helper:r,pure:i}=t,{tag:o,props:s,children:a,patchFlag:l,dynamicProps:c,directives:u,isBlock:f,disableTracking:p,isComponent:d}=e;u&&n(r(ss)+"("),f&&n(`(${r(Vn)}(${p?"true":""}), `),i&&n(Ss);const m=f?ur(t.inSSR,d):cr(t.inSSR,d);n(r(m)+"(",e),Gi(Qy([o,s,a,l,c]),t),n(")"),f&&n(")"),u&&(n(", "),ut(u,t),n(")"))}function Qy(e){let t=e.length;for(;t--&&e[t]==null;);return e.slice(0,t+1).map(n=>n||"null")}function qy(e,t){const{push:n,helper:r,pure:i}=t,o=be(e.callee)?e.callee:r(e.callee);i&&n(Ss),n(o+"(",e),Gi(e.arguments,t),n(")")}function _y(e,t){const{push:n,indent:r,deindent:i,newline:o}=t,{properties:s}=e;if(!s.length){n("{}",e);return}const a=s.length>1||!1;n(a?"{":"{ "),a&&r();for(let l=0;l<s.length;l++){const{key:c,value:u}=s[l];Gy(c,t),n(": "),ut(u,t),l<s.length-1&&(n(","),o())}a&&i(),n(a?"}":" }")}function eb(e,t){Nl(e.elements,t)}function tb(e,t){const{push:n,indent:r,deindent:i}=t,{params:o,returns:s,body:a,newline:l,isSlot:c}=e;c&&n(`_${mn[ds]}(`),n("(",e),ue(o)?Gi(o,t):o&&ut(o,t),n(") => "),(l||a)&&(n("{"),r()),s?(l&&n("return "),ue(s)?Nl(s,t):ut(s,t)):a&&ut(a,t),(l||a)&&(i(),n("}")),c&&(e.isNonScopedSlot&&n(", undefined, true"),n(")"))}function nb(e,t){const{test:n,consequent:r,alternate:i,newline:o}=e,{push:s,indent:a,deindent:l,newline:c}=t;if(n.type===4){const f=!Vi(n.content);f&&s("("),Fp(n,t),f&&s(")")}else s("("),ut(n,t),s(")");o&&a(),t.indentLevel++,o||s(" "),s("? "),ut(r,t),t.indentLevel--,o&&c(),o||s(" "),s(": ");const u=i.type===19;u||t.indentLevel++,ut(i,t),u||t.indentLevel--,o&&l(!0)}function rb(e,t){const{push:n,helper:r,indent:i,deindent:o,newline:s}=t;n(`_cache[${e.index}] || (`),e.isVNode&&(i(),n(`${r(ji)}(-1),`),s()),n(`_cache[${e.index}] = `),ut(e.value,t),e.isVNode&&(n(","),s(),n(`${r(ji)}(1),`),s(),n(`_cache[${e.index}]`),o()),n(")")}function ib(e,t,n=!1,r=[],i=Object.create(null)){}function ob(e,t,n){return!1}function sb(e,t){if(e&&(e.type==="ObjectProperty"||e.type==="ArrayPattern")){let n=t.length;for(;n--;){const r=t[n];if(r.type==="AssignmentExpression")return!0;if(r.type!=="ObjectProperty"&&!r.type.endsWith("Pattern"))break}}return!1}function ab(e,t){for(const n of e.params)for(const r of zn(n))t(r)}function lb(e,t){for(const n of e.body)if(n.type==="VariableDeclaration"){if(n.declare)continue;for(const r of n.declarations)for(const i of zn(r.id))t(i)}else if(n.type==="FunctionDeclaration"||n.type==="ClassDeclaration"){if(n.declare||!n.id)continue;t(n.id)}}function zn(e,t=[]){switch(e.type){case"Identifier":t.push(e);break;case"MemberExpression":let n=e;for(;n.type==="MemberExpression";)n=n.object;t.push(n);break;case"ObjectPattern":for(const r of e.properties)r.type==="RestElement"?zn(r.argument,t):zn(r.value,t);break;case"ArrayPattern":e.elements.forEach(r=>{r&&zn(r,t)});break;case"RestElement":zn(e.argument,t);break;case"AssignmentPattern":zn(e.left,t);break}return t}const cb=e=>/Function(?:Expression|Declaration)$|Method$/.test(e.type),Vp=e=>e&&(e.type==="ObjectProperty"||e.type==="ObjectMethod")&&!e.computed,ub=(e,t)=>Vp(t)&&t.key===e;new RegExp("\\b"+"do,if,for,let,new,try,var,case,else,with,await,break,catch,class,const,super,throw,while,yield,delete,export,import,return,switch,default,extends,finally,continue,debugger,function,arguments,typeof,void".split(",").join("\\b|\\b")+"\\b");const fb=(e,t)=>{if(e.type===5)e.content=Es(e.content,t);else if(e.type===1)for(let n=0;n<e.props.length;n++){const r=e.props[n];if(r.type===7&&r.name!=="for"){const i=r.exp,o=r.arg;i&&i.type===4&&!(r.name==="on"&&o)&&(r.exp=Es(i,t,r.name==="slot")),o&&o.type===4&&!o.isStatic&&(r.arg=Es(o,t))}}};function Es(e,t,n=!1,r=!1,i=Object.create(t.identifiers)){return e}const pb=Ml(/^(if|else|else-if)$/,(e,t,n)=>zp(e,t,n,(r,i,o)=>{const s=n.parent.children;let a=s.indexOf(r),l=0;for(;a-->=0;){const c=s[a];c&&c.type===9&&(l+=c.branches.length)}return()=>{if(o)r.codegenNode=Hp(i,l,n);else{const c=db(r.codegenNode);c.alternate=Hp(i,l+r.branches.length-1,n)}}}));function zp(e,t,n,r){if(t.name!=="else"&&(!t.exp||!t.exp.content.trim())){const i=t.exp?t.exp.loc:e.loc;n.onError(Be(28,t.loc)),t.exp=Ee("true",!1,i)}if(t.name==="if"){const i=Bp(e,t),o={type:9,loc:e.loc,branches:[i]};if(n.replaceNode(o),r)return r(o,i,!0)}else{const i=n.parent.children;let o=i.indexOf(e);for(;o-->=-1;){const s=i[o];if(s&&s.type===2&&!s.content.trim().length){n.removeNode(s);continue}if(s&&s.type===9){t.name==="else-if"&&s.branches[s.branches.length-1].condition===void 0&&n.onError(Be(30,e.loc)),n.removeNode();const a=Bp(e,t);s.branches.push(a);const l=r&&r(s,a,!1);Xi(a,n),l&&l(),n.currentNode=null}else n.onError(Be(30,e.loc));break}}}function Bp(e,t){return{type:10,loc:e.loc,condition:t.name==="else"?void 0:t.exp,children:e.tagType===3&&!Et(e,"for")?e.children:[e],userKey:Br(e,"key")}}function Hp(e,t,n){return e.condition?ms(e.condition,kp(e,t,n),Ze(n.helper(Dr),['""',"true"])):kp(e,t,n)}function kp(e,t,n){const{helper:r}=n,i=Ge("key",Ee(`${t}`,!1,tt,2)),{children:o}=e,s=o[0];if(o.length!==1||s.type!==1)if(o.length===1&&s.type===11){const l=s.codegenNode;return Ui(l,i,n),l}else{let l=64;return _s[64],Vr(n,r($r),Mt([i]),o,l+"",void 0,void 0,!0,!1,!1,e.loc)}else{const l=s.codegenNode,c=Op(l);return c.type===13&&vs(c,n),Ui(c,i,n),l}}function db(e){for(;;)if(e.type===19)if(e.alternate.type===19)e=e.alternate;else return e;else e.type===20&&(e=e.value)}const hb=Ml("for",(e,t,n)=>{const{helper:r,removeHelper:i}=n;return Up(e,t,n,o=>{const s=Ze(r(as),[o.source]),a=Et(e,"memo"),l=Br(e,"key"),c=l&&(l.type===6?Ee(l.value.content,!0):l.exp),u=l?Ge("key",c):null,f=o.source.type===4&&o.source.constType>0,p=f?64:l?128:256;return o.codegenNode=Vr(n,r($r),void 0,s,p+"",void 0,void 0,!0,!f,!1,e.loc),()=>{let d;const m=Hr(e),{children:b}=o,v=b.length!==1||b[0].type!==1,S=ki(e)?e:m&&e.children.length===1&&ki(e.children[0])?e.children[0]:null;if(S?(d=S.codegenNode,m&&u&&Ui(d,u,n)):v?d=Vr(n,r($r),u?Mt([u]):void 0,e.children,64+"",void 0,void 0,!0,void 0,!1):(d=b[0].codegenNode,m&&u&&Ui(d,u,n),d.isBlock!==!f&&(d.isBlock?(i(Vn),i(ur(n.inSSR,d.isComponent))):i(cr(n.inSSR,d.isComponent))),d.isBlock=!f,d.isBlock?(r(Vn),r(ur(n.inSSR,d.isComponent))):r(cr(n.inSSR,d.isComponent))),a){const g=ar(ws(o.parseResult,[Ee("_cached")]));g.body=yp([Kt(["const _memo = (",a.exp,")"]),Kt(["if (_cached",...c?[" && _cached.key === ",c]:[],` && ${n.helperString(yl)}(_cached, _memo)) return _cached`]),Kt(["const _item = ",d]),Ee("_item.memo = _memo"),Ee("return _item")]),s.arguments.push(g,Ee("_cache"),Ee(String(n.cached++)))}else s.arguments.push(ar(ws(o.parseResult),d,!0))}})});function Up(e,t,n,r){if(!t.exp){n.onError(Be(31,t.loc));return}const i=Rl(t.exp);if(!i){n.onError(Be(32,t.loc));return}const{addIdentifiers:o,removeIdentifiers:s,scopes:a}=n,{source:l,value:c,key:u,index:f}=i,p={type:11,loc:t.loc,source:l,valueAlias:c,keyAlias:u,objectIndexAlias:f,parseResult:i,children:Hr(e)?e.children:[e]};n.replaceNode(p),a.vFor++;const d=r&&r(p);return()=>{a.vFor--,d&&d()}}const mb=/([\s\S]*?)\s+(?:in|of)\s+([\s\S]*)/,Kp=/,([^,\}\]]*)(?:,([^,\}\]]*))?$/,gb=/^\(|\)$/g;function Rl(e,t){const n=e.loc,r=e.content,i=r.match(mb);if(!i)return;const[,o,s]=i,a={source:Os(n,s.trim(),r.indexOf(s,o.length)),value:void 0,key:void 0,index:void 0};let l=o.trim().replace(gb,"").trim();const c=o.indexOf(l),u=l.match(Kp);if(u){l=l.replace(Kp,"").trim();const f=u[1].trim();let p;if(f&&(p=r.indexOf(f,c+l.length),a.key=Os(n,f,p)),u[2]){const d=u[2].trim();d&&(a.index=Os(n,d,r.indexOf(d,a.key?p+f.length:c+l.length)))}}return l&&(a.value=Os(n,l,c)),a}function Os(e,t,n){return Ee(t,!1,El(e,n,t.length))}function ws({value:e,key:t,index:n},r=[]){return vb([e,t,n,...r])}function vb(e){let t=e.length;for(;t--&&!e[t];);return e.slice(0,t+1).map((n,r)=>n||Ee("_".repeat(r+1),!1))}const Wp=Ee("undefined",!1),Yp=(e,t)=>{if(e.type===1&&(e.tagType===1||e.tagType===3)){const n=Et(e,"slot");if(n)return n.exp,t.scopes.vSlot++,()=>{t.scopes.vSlot--}}},yb=(e,t)=>{let n;if(Hr(e)&&e.props.some(Ol)&&(n=Et(e,"for"))){const r=n.parseResult=Rl(n.exp);if(r){const{value:i,key:o,index:s}=r,{addIdentifiers:a,removeIdentifiers:l}=t;return i&&a(i),o&&a(o),s&&a(s),()=>{i&&l(i),o&&l(o),s&&l(s)}}}},bb=(e,t,n)=>ar(e,t,!1,!0,t.length?t[0].loc:n);function Xp(e,t,n=bb){t.helper(ds);const{children:r,loc:i}=e,o=[],s=[];let a=t.scopes.vSlot>0||t.scopes.vFor>0;const l=Et(e,"slot",!0);if(l){const{arg:b,exp:v}=l;b&&!mt(b)&&(a=!0),o.push(Ge(b||Ee("default",!0),n(v,r,i)))}let c=!1,u=!1;const f=[],p=new Set;for(let b=0;b<r.length;b++){const v=r[b];let S;if(!Hr(v)||!(S=Et(v,"slot",!0))){v.type!==3&&f.push(v);continue}if(l){t.onError(Be(37,S.loc));break}c=!0;const{children:g,loc:O}=v,{arg:E=Ee("default",!0),exp:$,loc:R}=S;let T;mt(E)?T=E?E.content:"default":a=!0;const P=n($,g,O);let N,j,V;if(N=Et(v,"if"))a=!0,s.push(ms(N.exp,Ts(E,P),Wp));else if(j=Et(v,/^else(-if)?$/,!0)){let F=b,C;for(;F--&&(C=r[F],C.type===3););if(C&&Hr(C)&&Et(C,"if")){r.splice(b,1),b--;let w=s[s.length-1];for(;w.alternate.type===19;)w=w.alternate;w.alternate=j.exp?ms(j.exp,Ts(E,P),Wp):Ts(E,P)}else t.onError(Be(30,j.loc))}else if(V=Et(v,"for")){a=!0;const F=V.parseResult||Rl(V.exp);F?s.push(Ze(t.helper(as),[F.source,ar(ws(F),Ts(E,P),!0)])):t.onError(Be(32,V.loc))}else{if(T){if(p.has(T)){t.onError(Be(38,R));continue}p.add(T),T==="default"&&(u=!0)}o.push(Ge(E,P))}}if(!l){const b=(v,S)=>{const g=n(v,S,i);return t.compatConfig&&(g.isNonScopedSlot=!0),Ge("default",g)};c?f.length&&f.some(v=>Gp(v))&&(u?t.onError(Be(39,f[0].loc)):o.push(b(void 0,f))):o.push(b(void 0,r))}const d=a?2:Ps(e.children)?3:1;let m=Mt(o.concat(Ge("_",Ee(d+"",!1))),i);return s.length&&(m=Ze(t.helper(vl),[m,zr(s)])),{slots:m,hasDynamicSlots:a}}function Ts(e,t){return Mt([Ge("name",e),Ge("fn",t)])}function Ps(e){for(let t=0;t<e.length;t++){const n=e[t];switch(n.type){case 1:if(n.tagType===2||Ps(n.children))return!0;break;case 9:if(Ps(n.branches))return!0;break;case 10:case 11:if(Ps(n.children))return!0;break}}return!1}function Gp(e){return e.type!==2&&e.type!==12?!0:e.type===2?!!e.content.trim():Gp(e.content)}const Zp=new WeakMap,Jp=(e,t)=>function(){if(e=t.currentNode,!(e.type===1&&(e.tagType===0||e.tagType===1)))return;const{tag:r,props:i}=e,o=e.tagType===1;let s=o?Qp(e,t):`"${r}"`;const a=je(s)&&s.callee===Li;let l,c,u,f=0,p,d,m,b=a||s===Lr||s===_o||!o&&(r==="svg"||r==="foreignObject"||Br(e,"key",!0));if(i.length>0){const v=Il(e,t);l=v.props,f=v.patchFlag,d=v.dynamicPropNames;const S=v.directives;m=S&&S.length?zr(S.map(g=>Eb(g,t))):void 0}if(e.children.length>0)if(s===$i&&(b=!0,f|=1024),o&&s!==Lr&&s!==$i){const{slots:S,hasDynamicSlots:g}=Xp(e,t);c=S,g&&(f|=1024)}else if(e.children.length===1&&s!==Lr){const S=e.children[0],g=S.type,O=g===5||g===8;O&&jt(S,t)===0&&(f|=1),O||g===2?c=S:c=e.children}else c=e.children;f!==0&&(u=String(f),d&&d.length&&(p=Ob(d))),e.codegenNode=Vr(t,s,l,c,u,p,m,!!b,!1,o,e.loc)};function Qp(e,t,n=!1){let{tag:r}=e;const i=Ll(r),o=Br(e,"is");if(o)if(i||fr("COMPILER_IS_ON_ELEMENT",t)){const l=o.type===6?o.value&&Ee(o.value.content,!0):o.exp;if(l)return Ze(t.helper(Li),[l])}else o.type===6&&o.value.content.startsWith("vue:")&&(r=o.value.content.slice(4));const s=!i&&Et(e,"is");if(s&&s.exp)return Ze(t.helper(Li),[s.exp]);const a=bl(r)||t.isBuiltInComponent(r);return a?(n||t.helper(a),a):(t.helper(rs),t.components.add(r),kr(r,"component"))}function Il(e,t,n=e.props,r=!1){const{tag:i,loc:o}=e,s=e.tagType===1;let a=[];const l=[],c=[];let u=0,f=!1,p=!1,d=!1,m=!1,b=!1,v=!1;const S=[],g=({key:E,value:$})=>{if(mt(E)){const R=E.content,T=yn(R);if(!s&&T&&R.toLowerCase()!=="onclick"&&R!=="onUpdate:modelValue"&&!Sn(R)&&(m=!0),T&&Sn(R)&&(v=!0),$.type===20||($.type===4||$.type===8)&&jt($,t)>0)return;R==="ref"?f=!0:R==="class"?p=!0:R==="style"?d=!0:R!=="key"&&!S.includes(R)&&S.push(R),s&&(R==="class"||R==="style")&&!S.includes(R)&&S.push(R)}else b=!0};for(let E=0;E<n.length;E++){const $=n[E];if($.type===6){const{loc:R,name:T,value:P}=$;let N=Ee(P?P.content:"",!0,P?P.loc:R);if(T==="ref"&&(f=!0),T==="is"&&(Ll(i)||P&&P.content.startsWith("vue:")||fr("COMPILER_IS_ON_ELEMENT",t)))continue;a.push(Ge(Ee(T,!0,El(R,0,T.length)),N))}else{const{name:R,arg:T,exp:P,loc:N}=$,j=R==="bind",V=R==="on";if(R==="slot"){s||t.onError(Be(40,N));continue}if(R==="once"||R==="memo"||R==="is"||j&&Hi(T,"is")&&(Ll(i)||fr("COMPILER_IS_ON_ELEMENT",t))||V&&r)continue;if(!T&&(j||V)){if(b=!0,P)if(a.length&&(l.push(Mt($l(a),o)),a=[]),j){if(fr("COMPILER_V_BIND_OBJECT_ORDER",t)){l.unshift(P);continue}l.push(P)}else l.push({type:14,loc:N,callee:t.helper(us),arguments:[P]});else t.onError(Be(j?34:35,N));continue}const F=t.directiveTransforms[R];if(F){const{props:C,needRuntime:w}=F($,e,t);!r&&C.forEach(g),a.push(...C),w&&(c.push($),Wn(w)&&Zp.set($,w))}else c.push($)}$.type===6&&$.name==="ref"&&t.scopes.vFor>0&&pr("COMPILER_V_FOR_REF",t,$.loc)&&a.push(Ge(Ee("refInFor",!0),Ee("true",!1)))}let O;if(l.length?(a.length&&l.push(Mt($l(a),o)),l.length>1?O=Ze(t.helper(Fi),l,o):O=l[0]):a.length&&(O=Mt($l(a),o)),b?u|=16:(p&&!s&&(u|=2),d&&!s&&(u|=4),S.length&&(u|=8),m&&(u|=32)),(u===0||u===32)&&(f||v||c.length>0)&&(u|=512),!t.inSSR&&O)switch(O.type){case 15:let E=-1,$=-1,R=!1;for(let N=0;N<O.properties.length;N++){const j=O.properties[N].key;mt(j)?j.content==="class"?E=N:j.content==="style"&&($=N):j.isHandlerKey||(R=!0)}const T=O.properties[E],P=O.properties[$];R?O=Ze(t.helper(Fr),[O]):(T&&!mt(T.value)&&(T.value=Ze(t.helper(ls),[T.value])),P&&!mt(P.value)&&(d||P.value.type===17)&&(P.value=Ze(t.helper(cs),[P.value])));break;case 14:break;default:O=Ze(t.helper(Fr),[Ze(t.helper(jr),[O])]);break}return{props:O,directives:c,patchFlag:u,dynamicPropNames:S}}function $l(e){const t=new Map,n=[];for(let r=0;r<e.length;r++){const i=e[r];if(i.key.type===8||!i.key.isStatic){n.push(i);continue}const o=i.key.content,s=t.get(o);s?(o==="style"||o==="class"||yn(o))&&Sb(s,i):(t.set(o,i),n.push(i))}return n}function Sb(e,t){e.value.type===17?e.value.elements.push(t.value):e.value=zr([e.value,t.value],e.loc)}function Eb(e,t){const n=[],r=Zp.get(e);r?n.push(t.helperString(r)):(t.helper(is),t.directives.add(e.name),n.push(kr(e.name,"directive")));const{loc:i}=e;if(e.exp&&n.push(e.exp),e.arg&&(e.exp||n.push("void 0"),n.push(e.arg)),Object.keys(e.modifiers).length){e.arg||(e.exp||n.push("void 0"),n.push("void 0"));const o=Ee("true",!1,i);n.push(Mt(e.modifiers.map(s=>Ge(s,o)),i))}return zr(n,e.loc)}function Ob(e){let t="[";for(let n=0,r=e.length;n<r;n++)t+=JSON.stringify(e[n]),n<r-1&&(t+=", ");return t+"]"}function Ll(e){return e[0].toLowerCase()+e.slice(1)==="component"}const wb=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},Tb=/-(\w)/g,qp=wb(e=>e.replace(Tb,(t,n)=>n?n.toUpperCase():"")),Pb=(e,t)=>{if(ki(e)){const{children:n,loc:r}=e,{slotName:i,slotProps:o}=_p(e,t),s=[t.prefixIdentifiers?"_ctx.$slots":"$slots",i,"{}","undefined","true"];let a=2;o&&(s[2]=o,a=3),n.length&&(s[3]=ar([],n,!1,!1,r),a=4),t.scopeId&&!t.slotted&&(a=5),s.splice(a),e.codegenNode=Ze(t.helper(gl),s,r)}};function _p(e,t){let n='"default"',r;const i=[];for(let o=0;o<e.props.length;o++){const s=e.props[o];s.type===6?s.value&&(s.name==="name"?n=JSON.stringify(s.value.content):(s.name=qp(s.name),i.push(s))):s.name==="bind"&&Hi(s.arg,"name")?s.exp&&(n=s.exp):(s.name==="bind"&&s.arg&&mt(s.arg)&&(s.arg.content=qp(s.arg.content)),i.push(s))}if(i.length>0){const{props:o,directives:s}=Il(e,t,i);r=o,s.length&&t.onError(Be(36,s[0].loc))}return{slotName:n,slotProps:r}}const xb=/^\s*([\w$_]+|(async\s*)?\([^)]*?\))\s*=>|^\s*(async\s+)?function(?:\s+[\w$]+)?\s*\(/,Dl=(e,t,n,r)=>{const{loc:i,modifiers:o,arg:s}=e;!e.exp&&!o.length&&n.onError(Be(35,i));let a;if(s.type===4)if(s.isStatic){const f=s.content;a=Ee(Yn(st(f)),!0,s.loc)}else a=Kt([`${n.helperString(ps)}(`,s,")"]);else a=s,a.children.unshift(`${n.helperString(ps)}(`),a.children.push(")");let l=e.exp;l&&!l.content.trim()&&(l=void 0);let c=n.cacheHandlers&&!l&&!n.inVOnce;if(l){const f=Sl(l.content),p=!(f||xb.test(l.content)),d=l.content.includes(";");(p||c&&f)&&(l=Kt([`${p?"$event":"(...args)"} => ${d?"{":"("}`,l,d?"}":")"]))}let u={props:[Ge(a,l||Ee("() => {}",!1,i))]};return r&&(u=r(u)),c&&(u.props[0].value=n.cache(u.props[0].value)),u.props.forEach(f=>f.key.isHandlerKey=!0),u},ed=(e,t,n)=>{const{exp:r,modifiers:i,loc:o}=e,s=e.arg;return s.type!==4?(s.children.unshift("("),s.children.push(') || ""')):s.isStatic||(s.content=`${s.content} || ""`),i.includes("camel")&&(s.type===4?s.isStatic?s.content=st(s.content):s.content=`${n.helperString(fs)}(${s.content})`:(s.children.unshift(`${n.helperString(fs)}(`),s.children.push(")"))),n.inSSR||(i.includes("prop")&&td(s,"."),i.includes("attr")&&td(s,"^")),!r||r.type===4&&!r.content.trim()?(n.onError(Be(34,o)),{props:[Ge(s,Ee("",!0,o))]}):{props:[Ge(s,r)]}},td=(e,t)=>{e.type===4?e.isStatic?e.content=t+e.content:e.content=`\`${t}\${${e.content}}\``:(e.children.unshift(`'${t}' + (`),e.children.push(")"))},Cb=(e,t)=>{if(e.type===0||e.type===1||e.type===11||e.type===10)return()=>{const n=e.children;let r,i=!1;for(let o=0;o<n.length;o++){const s=n[o];if(gs(s)){i=!0;for(let a=o+1;a<n.length;a++){const l=n[a];if(gs(l))r||(r=n[o]={type:8,loc:s.loc,children:[s]}),r.children.push(" + ",l),n.splice(a,1),a--;else{r=void 0;break}}}}if(!(!i||n.length===1&&(e.type===0||e.type===1&&e.tagType===0&&!e.props.find(o=>o.type===7&&!t.directiveTransforms[o.name])&&e.tag!=="template")))for(let o=0;o<n.length;o++){const s=n[o];if(gs(s)||s.type===8){const a=[];(s.type!==2||s.content!==" ")&&a.push(s),!t.ssr&&jt(s,t)===0&&a.push(1+""),n[o]={type:12,content:s,loc:s.loc,codegenNode:Ze(t.helper(ns),a)}}}}},nd=new WeakSet,Mb=(e,t)=>{if(e.type===1&&Et(e,"once",!0))return nd.has(e)||t.inVOnce?void 0:(nd.add(e),t.inVOnce=!0,t.helper(ji),()=>{t.inVOnce=!1;const n=t.currentNode;n.codegenNode&&(n.codegenNode=t.cache(n.codegenNode,!0))})},Fl=(e,t,n)=>{const{exp:r,arg:i}=e;if(!r)return n.onError(Be(41,e.loc)),jl();const o=r.loc.source,s=r.type===4?r.content:o;n.bindingMetadata[o];const a=!1;if(!s.trim()||!Sl(s)&&!a)return n.onError(Be(42,r.loc)),jl();const l=i||Ee("modelValue",!0),c=i?mt(i)?`onUpdate:${i.content}`:Kt(['"onUpdate:" + ',i]):"onUpdate:modelValue";let u;const f=n.isTS?"($event: any)":"$event";u=Kt([`${f} => ((`,r,") = $event)"]);const p=[Ge(l,e.exp),Ge(c,u)];if(e.modifiers.length&&t.tagType===1){const d=e.modifiers.map(b=>(Vi(b)?b:JSON.stringify(b))+": true").join(", "),m=i?mt(i)?`${i.content}Modifiers`:Kt([i,' + "Modifiers"']):"modelModifiers";p.push(Ge(m,Ee(`{ ${d} }`,!1,e.loc,2)))}return jl(p)};function jl(e=[]){return{props:e}}const Ab=/[\w).+\-_$\]]/,Nb=(e,t)=>{!fr("COMPILER_FILTER",t)||(e.type===5&&xs(e.content,t),e.type===1&&e.props.forEach(n=>{n.type===7&&n.name!=="for"&&n.exp&&xs(n.exp,t)}))};function xs(e,t){if(e.type===4)rd(e,t);else for(let n=0;n<e.children.length;n++){const r=e.children[n];typeof r=="object"&&(r.type===4?rd(r,t):r.type===8?xs(e,t):r.type===5&&xs(r.content,t))}}function rd(e,t){const n=e.content;let r=!1,i=!1,o=!1,s=!1,a=0,l=0,c=0,u=0,f,p,d,m,b=[];for(d=0;d<n.length;d++)if(p=f,f=n.charCodeAt(d),r)f===39&&p!==92&&(r=!1);else if(i)f===34&&p!==92&&(i=!1);else if(o)f===96&&p!==92&&(o=!1);else if(s)f===47&&p!==92&&(s=!1);else if(f===124&&n.charCodeAt(d+1)!==124&&n.charCodeAt(d-1)!==124&&!a&&!l&&!c)m===void 0?(u=d+1,m=n.slice(0,d).trim()):v();else{switch(f){case 34:i=!0;break;case 39:r=!0;break;case 96:o=!0;break;case 40:c++;break;case 41:c--;break;case 91:l++;break;case 93:l--;break;case 123:a++;break;case 125:a--;break}if(f===47){let S=d-1,g;for(;S>=0&&(g=n.charAt(S),g===" ");S--);(!g||!Ab.test(g))&&(s=!0)}}m===void 0?m=n.slice(0,d).trim():u!==0&&v();function v(){b.push(n.slice(u,d).trim()),u=d+1}if(b.length){for(d=0;d<b.length;d++)m=Rb(m,b[d],t);e.content=m}}function Rb(e,t,n){n.helper(os);const r=t.indexOf("(");if(r<0)return n.filters.add(t),`${kr(t,"filter")}(${e})`;{const i=t.slice(0,r),o=t.slice(r+1);return n.filters.add(i),`${kr(i,"filter")}(${e}${o!==")"?","+o:o}`}}const id=new WeakSet,Ib=(e,t)=>{if(e.type===1){const n=Et(e,"memo");return!n||id.has(e)?void 0:(id.add(e),()=>{const r=e.codegenNode||t.currentNode.codegenNode;r&&r.type===13&&(e.tagType!==1&&vs(r,t),e.codegenNode=Ze(t.helper(hs),[n.exp,ar(void 0,r),"_cache",String(t.cached++)]))})}};function od(e){return[[Mb,pb,Ib,hb,Nb,Pb,Jp,Yp,Cb],{on:Dl,bind:ed,model:Fl}]}function sd(e,t={}){const n=t.onError||fl,r=t.mode==="module";t.prefixIdentifiers===!0?n(Be(46)):r&&n(Be(47));const i=!1;t.cacheHandlers&&n(Be(48)),t.scopeId&&!r&&n(Be(49));const o=be(e)?Tl(e,t):e,[s,a]=od();return Lp(o,Me({},t,{prefixIdentifiers:i,nodeTransforms:[...s,...t.nodeTransforms||[]],directiveTransforms:Me({},a,t.directiveTransforms||{})})),Dp(o,Me({},t,{prefixIdentifiers:i}))}const ad=()=>({props:[]}),Vl=Symbol(""),zl=Symbol(""),Bl=Symbol(""),Hl=Symbol(""),Cs=Symbol(""),kl=Symbol(""),Ul=Symbol(""),Kl=Symbol(""),Wl=Symbol(""),Yl=Symbol("");mp({[Vl]:"vModelRadio",[zl]:"vModelCheckbox",[Bl]:"vModelText",[Hl]:"vModelSelect",[Cs]:"vModelDynamic",[kl]:"withModifiers",[Ul]:"withKeys",[Kl]:"vShow",[Wl]:"Transition",[Yl]:"TransitionGroup"});let Ur;function $b(e,t=!1){return Ur||(Ur=document.createElement("div")),t?(Ur.innerHTML=`<div foo="${e.replace(/"/g,"&quot;")}">`,Ur.children[0].getAttribute("foo")):(Ur.innerHTML=e,Ur.textContent)}const Lb=it("style,iframe,script,noscript",!0),Xl={isVoidTag:Hc,isNativeTag:e=>zc(e)||Bc(e),isPreTag:e=>e==="pre",decodeEntities:$b,isBuiltInComponent:e=>{if(lr(e,"Transition"))return Wl;if(lr(e,"TransitionGroup"))return Yl},getNamespace(e,t){let n=t?t.ns:0;if(t&&n===2)if(t.tag==="annotation-xml"){if(e==="svg")return 1;t.props.some(r=>r.type===6&&r.name==="encoding"&&r.value!=null&&(r.value.content==="text/html"||r.value.content==="application/xhtml+xml"))&&(n=0)}else/^m(?:[ions]|text)$/.test(t.tag)&&e!=="mglyph"&&e!=="malignmark"&&(n=0);else t&&n===1&&(t.tag==="foreignObject"||t.tag==="desc"||t.tag==="title")&&(n=0);if(n===0){if(e==="svg")return 1;if(e==="math")return 2}return n},getTextMode({tag:e,ns:t}){if(t===0){if(e==="textarea"||e==="title")return 1;if(Lb(e))return 2}return 0}},ld=e=>{e.type===1&&e.props.forEach((t,n)=>{t.type===6&&t.name==="style"&&t.value&&(e.props[n]={type:7,name:"bind",arg:Ee("style",!0,t.loc),exp:Db(t.value.content,t.loc),modifiers:[],loc:t.loc})})},Db=(e,t)=>{const n=na(e);return Ee(JSON.stringify(n),!1,t,3)};function rn(e,t){return Be(e,t)}const Fb=(e,t,n)=>{const{exp:r,loc:i}=e;return r||n.onError(rn(50,i)),t.children.length&&(n.onError(rn(51,i)),t.children.length=0),{props:[Ge(Ee("innerHTML",!0,i),r||Ee("",!0))]}},jb=(e,t,n)=>{const{exp:r,loc:i}=e;return r||n.onError(rn(52,i)),t.children.length&&(n.onError(rn(53,i)),t.children.length=0),{props:[Ge(Ee("textContent",!0),r?Ze(n.helperString(Di),[r],i):Ee("",!0))]}},Vb=(e,t,n)=>{const r=Fl(e,t,n);if(!r.props.length||t.tagType===1)return r;e.arg&&n.onError(rn(55,e.arg.loc));const{tag:i}=t,o=n.isCustomElement(i);if(i==="input"||i==="textarea"||i==="select"||o){let s=Bl,a=!1;if(i==="input"||o){const l=Br(t,"type");if(l){if(l.type===7)s=Cs;else if(l.value)switch(l.value.content){case"radio":s=Vl;break;case"checkbox":s=zl;break;case"file":a=!0,n.onError(rn(56,e.loc));break}}else Sp(t)&&(s=Cs)}else i==="select"&&(s=Hl);a||(r.needRuntime=n.helper(s))}else n.onError(rn(54,e.loc));return r.props=r.props.filter(s=>!(s.key.type===4&&s.key.content==="modelValue")),r},zb=it("passive,once,capture"),Bb=it("stop,prevent,self,ctrl,shift,alt,meta,exact,middle"),Hb=it("left,right"),cd=it("onkeyup,onkeydown,onkeypress",!0),kb=(e,t,n,r)=>{const i=[],o=[],s=[];for(let a=0;a<t.length;a++){const l=t[a];l==="native"&&pr("COMPILER_V_ON_NATIVE",n)||zb(l)?s.push(l):Hb(l)?mt(e)?cd(e.content)?i.push(l):o.push(l):(i.push(l),o.push(l)):Bb(l)?o.push(l):i.push(l)}return{keyModifiers:i,nonKeyModifiers:o,eventOptionModifiers:s}},ud=(e,t)=>mt(e)&&e.content.toLowerCase()==="onclick"?Ee(t,!0):e.type!==4?Kt(["(",e,`) === "onClick" ? "${t}" : (`,e,")"]):e,Ub=(e,t,n)=>Dl(e,t,n,r=>{const{modifiers:i}=e;if(!i.length)return r;let{key:o,value:s}=r.props[0];const{keyModifiers:a,nonKeyModifiers:l,eventOptionModifiers:c}=kb(o,i,n,e.loc);if(l.includes("right")&&(o=ud(o,"onContextmenu")),l.includes("middle")&&(o=ud(o,"onMouseup")),l.length&&(s=Ze(n.helper(kl),[s,JSON.stringify(l)])),a.length&&(!mt(o)||cd(o.content))&&(s=Ze(n.helper(Ul),[s,JSON.stringify(a)])),c.length){const u=c.map(En).join("");o=mt(o)?Ee(`${o.content}${u}`,!0):Kt(["(",o,`) + "${u}"`])}return{props:[Ge(o,s)]}}),Kb=(e,t,n)=>{const{exp:r,loc:i}=e;return r||n.onError(rn(58,i)),{props:[],needRuntime:n.helper(Kl)}},Wb=(e,t)=>{e.type===1&&e.tagType===0&&(e.tag==="script"||e.tag==="style")&&(t.onError(rn(60,e.loc)),t.removeNode())},fd=[ld],pd={cloak:ad,html:Fb,text:jb,model:Vb,on:Ub,show:Kb};function Yb(e,t={}){return sd(e,Me({},Xl,t,{nodeTransforms:[Wb,...fd,...t.nodeTransforms||[]],directiveTransforms:Me({},pd,t.directiveTransforms||{}),transformHoist:null}))}function Xb(e,t={}){return Tl(e,Me({},Xl,t))}var Gb=Object.freeze({__proto__:null,[Symbol.toStringTag]:"Module",DOMDirectiveTransforms:pd,DOMNodeTransforms:fd,TRANSITION:Wl,TRANSITION_GROUP:Yl,V_MODEL_CHECKBOX:zl,V_MODEL_DYNAMIC:Cs,V_MODEL_RADIO:Vl,V_MODEL_SELECT:Hl,V_MODEL_TEXT:Bl,V_ON_WITH_KEYS:Ul,V_ON_WITH_MODIFIERS:kl,V_SHOW:Kl,compile:Yb,createDOMCompilerError:rn,parse:Xb,parserOptions:Xl,transformStyle:ld,generateCodeFrame:Lc,BASE_TRANSITION:pl,CAMELIZE:fs,CAPITALIZE:up,CREATE_BLOCK:dl,CREATE_COMMENT:Dr,CREATE_ELEMENT_BLOCK:hl,CREATE_ELEMENT_VNODE:ts,CREATE_SLOTS:vl,CREATE_STATIC:ml,CREATE_TEXT:ns,CREATE_VNODE:es,FRAGMENT:$r,GUARD_REACTIVE_PROPS:jr,IS_MEMO_SAME:yl,IS_REF:hp,KEEP_ALIVE:$i,MERGE_PROPS:Fi,NORMALIZE_CLASS:ls,NORMALIZE_PROPS:Fr,NORMALIZE_STYLE:cs,OPEN_BLOCK:Vn,POP_SCOPE_ID:pp,PUSH_SCOPE_ID:fp,RENDER_LIST:as,RENDER_SLOT:gl,RESOLVE_COMPONENT:rs,RESOLVE_DIRECTIVE:is,RESOLVE_DYNAMIC_COMPONENT:Li,RESOLVE_FILTER:os,SET_BLOCK_TRACKING:ji,SUSPENSE:_o,TELEPORT:Lr,TO_DISPLAY_STRING:Di,TO_HANDLERS:us,TO_HANDLER_KEY:ps,UNREF:dp,WITH_CTX:ds,WITH_DIRECTIVES:ss,WITH_MEMO:hs,advancePositionWithClone:zi,advancePositionWithMutation:Bi,assert:wy,baseCompile:sd,baseParse:Tl,buildProps:Il,buildSlots:Xp,checkCompatEnabled:pr,createArrayExpression:zr,createAssignmentExpression:my,createBlockStatement:yp,createCacheExpression:vp,createCallExpression:Ze,createCompilerError:Be,createCompoundExpression:Kt,createConditionalExpression:ms,createForLoopParams:ws,createFunctionExpression:ar,createIfStatement:hy,createInterpolation:py,createObjectExpression:Mt,createObjectProperty:Ge,createReturnStatement:vy,createRoot:gp,createSequenceExpression:gy,createSimpleExpression:Ee,createStructuralDirectiveTransform:Ml,createTemplateLiteral:dy,createTransformContext:$p,createVNodeCall:Vr,extractIdentifiers:zn,findDir:Et,findProp:Br,generate:Dp,getBaseTransformPreset:od,getInnerRange:El,getMemoedVNodeCall:Op,getVNodeBlockHelper:ur,getVNodeHelper:cr,hasDynamicKeyVBind:Sp,hasScopeRef:Wt,helperNameMap:mn,injectProp:Ui,isBindKey:Hi,isBuiltInType:lr,isCoreComponent:bl,isFunctionType:cb,isInDestructureAssignment:sb,isMemberExpression:Sl,isMemberExpressionBrowser:bp,isMemberExpressionNode:Oy,isReferencedIdentifier:ob,isSimpleIdentifier:Vi,isSlotOutlet:ki,isStaticExp:mt,isStaticProperty:Vp,isStaticPropertyKey:ub,isTemplateNode:Hr,isText:gs,isVSlot:Ol,locStub:tt,makeBlock:vs,noopDirectiveTransform:ad,processExpression:Es,processFor:Up,processIf:zp,processSlotOutlet:_p,registerRuntimeHelpers:mp,resolveComponentType:Qp,toValidAssetId:kr,trackSlotScopes:Yp,trackVForSlotScopes:yb,transform:Lp,transformBind:ed,transformElement:Jp,transformExpression:fb,transformModel:Fl,transformOn:Dl,traverseNode:Xi,walkBlockDeclarations:lb,walkFunctionParams:ab,walkIdentifiers:ib,warnDeprecation:xy}),Zb=ul(Gb),Jb=ul(uy),Qb=ul(cm);(function(e){Object.defineProperty(e,"__esModule",{value:!0});var t=Zb,n=Jb,r=Qb;function i(l){if(l&&l.__esModule)return l;var c=Object.create(null);return l&&Object.keys(l).forEach(function(u){c[u]=l[u]}),c.default=l,Object.freeze(c)}var o=i(n);const s=Object.create(null);function a(l,c){if(!r.isString(l))if(l.nodeType)l=l.innerHTML;else return r.NOOP;const u=l,f=s[u];if(f)return f;if(l[0]==="#"){const m=document.querySelector(l);l=m?m.innerHTML:""}const{code:p}=t.compile(l,r.extend({hoistStatic:!0,onError:void 0,onWarn:r.NOOP},c)),d=new Function("Vue",p)(o);return d._rc=!0,s[u]=d}n.registerRuntimeCompiler(a),Object.keys(n).forEach(function(l){l!=="default"&&(e[l]=n[l])}),e.compile=a})(lp);ap.exports=lp;(function(e){e.exports=function(t){var n={};function r(i){if(n[i])return n[i].exports;var o=n[i]={i,l:!1,exports:{}};return t[i].call(o.exports,o,o.exports,r),o.l=!0,o.exports}return r.m=t,r.c=n,r.d=function(i,o,s){r.o(i,o)||Object.defineProperty(i,o,{enumerable:!0,get:s})},r.r=function(i){typeof Symbol!="undefined"&&Symbol.toStringTag&&Object.defineProperty(i,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(i,"__esModule",{value:!0})},r.t=function(i,o){if(o&1&&(i=r(i)),o&8||o&4&&typeof i=="object"&&i&&i.__esModule)return i;var s=Object.create(null);if(r.r(s),Object.defineProperty(s,"default",{enumerable:!0,value:i}),o&2&&typeof i!="string")for(var a in i)r.d(s,a,function(l){return i[l]}.bind(null,a));return s},r.n=function(i){var o=i&&i.__esModule?function(){return i.default}:function(){return i};return r.d(o,"a",o),o},r.o=function(i,o){return Object.prototype.hasOwnProperty.call(i,o)},r.p="",r(r.s="fae3")}({"00ee":function(t,n,r){var i=r("b622"),o=i("toStringTag"),s={};s[o]="z",t.exports=String(s)==="[object z]"},"0366":function(t,n,r){var i=r("1c0b");t.exports=function(o,s,a){if(i(o),s===void 0)return o;switch(a){case 0:return function(){return o.call(s)};case 1:return function(l){return o.call(s,l)};case 2:return function(l,c){return o.call(s,l,c)};case 3:return function(l,c,u){return o.call(s,l,c,u)}}return function(){return o.apply(s,arguments)}}},"057f":function(t,n,r){var i=r("fc6a"),o=r("241c").f,s={}.toString,a=typeof window=="object"&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],l=function(c){try{return o(c)}catch(u){return a.slice()}};t.exports.f=function(u){return a&&s.call(u)=="[object Window]"?l(u):o(i(u))}},"06cf":function(t,n,r){var i=r("83ab"),o=r("d1e7"),s=r("5c6c"),a=r("fc6a"),l=r("c04e"),c=r("5135"),u=r("0cfb"),f=Object.getOwnPropertyDescriptor;n.f=i?f:function(d,m){if(d=a(d),m=l(m,!0),u)try{return f(d,m)}catch(b){}if(c(d,m))return s(!o.f.call(d,m),d[m])}},"0cfb":function(t,n,r){var i=r("83ab"),o=r("d039"),s=r("cc12");t.exports=!i&&!o(function(){return Object.defineProperty(s("div"),"a",{get:function(){return 7}}).a!=7})},"159b":function(t,n,r){var i=r("da84"),o=r("fdbc"),s=r("17c2"),a=r("9112");for(var l in o){var c=i[l],u=c&&c.prototype;if(u&&u.forEach!==s)try{a(u,"forEach",s)}catch(f){u.forEach=s}}},"17c2":function(t,n,r){var i=r("b727").forEach,o=r("a640"),s=o("forEach");t.exports=s?[].forEach:function(l){return i(this,l,arguments.length>1?arguments[1]:void 0)}},"1be4":function(t,n,r){var i=r("d066");t.exports=i("document","documentElement")},"1c0b":function(t,n){t.exports=function(r){if(typeof r!="function")throw TypeError(String(r)+" is not a function");return r}},"1c7e":function(t,n,r){var i=r("b622"),o=i("iterator"),s=!1;try{var a=0,l={next:function(){return{done:!!a++}},return:function(){s=!0}};l[o]=function(){return this},Array.from(l,function(){throw 2})}catch(c){}t.exports=function(c,u){if(!u&&!s)return!1;var f=!1;try{var p={};p[o]=function(){return{next:function(){return{done:f=!0}}}},c(p)}catch(d){}return f}},"1d80":function(t,n){t.exports=function(r){if(r==null)throw TypeError("Can't call method on "+r);return r}},"1dde":function(t,n,r){var i=r("d039"),o=r("b622"),s=r("2d00"),a=o("species");t.exports=function(l){return s>=51||!i(function(){var c=[],u=c.constructor={};return u[a]=function(){return{foo:1}},c[l](Boolean).foo!==1})}},"23cb":function(t,n,r){var i=r("a691"),o=Math.max,s=Math.min;t.exports=function(a,l){var c=i(a);return c<0?o(c+l,0):s(c,l)}},"23e7":function(t,n,r){var i=r("da84"),o=r("06cf").f,s=r("9112"),a=r("6eeb"),l=r("ce4e"),c=r("e893"),u=r("94ca");t.exports=function(f,p){var d=f.target,m=f.global,b=f.stat,v,S,g,O,E,$;if(m?S=i:b?S=i[d]||l(d,{}):S=(i[d]||{}).prototype,S)for(g in p){if(E=p[g],f.noTargetGet?($=o(S,g),O=$&&$.value):O=S[g],v=u(m?g:d+(b?".":"#")+g,f.forced),!v&&O!==void 0){if(typeof E==typeof O)continue;c(E,O)}(f.sham||O&&O.sham)&&s(E,"sham",!0),a(S,g,E,f)}}},"241c":function(t,n,r){var i=r("ca84"),o=r("7839"),s=o.concat("length","prototype");n.f=Object.getOwnPropertyNames||function(l){return i(l,s)}},"2532":function(t,n,r){var i=r("23e7"),o=r("5a34"),s=r("1d80"),a=r("ab13");i({target:"String",proto:!0,forced:!a("includes")},{includes:function(c){return!!~String(s(this)).indexOf(o(c),arguments.length>1?arguments[1]:void 0)}})},"2a62":function(t,n,r){var i=r("825a");t.exports=function(o){var s=o.return;if(s!==void 0)return i(s.call(o)).value}},"2d00":function(t,n,r){var i=r("da84"),o=r("342f"),s=i.process,a=s&&s.versions,l=a&&a.v8,c,u;l?(c=l.split("."),u=c[0]<4?1:c[0]+c[1]):o&&(c=o.match(/Edge\/(\d+)/),(!c||c[1]>=74)&&(c=o.match(/Chrome\/(\d+)/),c&&(u=c[1]))),t.exports=u&&+u},"342f":function(t,n,r){var i=r("d066");t.exports=i("navigator","userAgent")||""},"35a1":function(t,n,r){var i=r("f5df"),o=r("3f8c"),s=r("b622"),a=s("iterator");t.exports=function(l){if(l!=null)return l[a]||l["@@iterator"]||o[i(l)]}},"37e8":function(t,n,r){var i=r("83ab"),o=r("9bf2"),s=r("825a"),a=r("df75");t.exports=i?Object.defineProperties:function(c,u){s(c);for(var f=a(u),p=f.length,d=0,m;p>d;)o.f(c,m=f[d++],u[m]);return c}},"3bbe":function(t,n,r){var i=r("861d");t.exports=function(o){if(!i(o)&&o!==null)throw TypeError("Can't set "+String(o)+" as a prototype");return o}},"3ca3":function(t,n,r){var i=r("6547").charAt,o=r("69f3"),s=r("7dd0"),a="String Iterator",l=o.set,c=o.getterFor(a);s(String,"String",function(u){l(this,{type:a,string:String(u),index:0})},function(){var f=c(this),p=f.string,d=f.index,m;return d>=p.length?{value:void 0,done:!0}:(m=i(p,d),f.index+=m.length,{value:m,done:!1})})},"3f8c":function(t,n){t.exports={}},"428f":function(t,n,r){var i=r("da84");t.exports=i},"44ad":function(t,n,r){var i=r("d039"),o=r("c6b6"),s="".split;t.exports=i(function(){return!Object("z").propertyIsEnumerable(0)})?function(a){return o(a)=="String"?s.call(a,""):Object(a)}:Object},"44d2":function(t,n,r){var i=r("b622"),o=r("7c73"),s=r("9bf2"),a=i("unscopables"),l=Array.prototype;l[a]==null&&s.f(l,a,{configurable:!0,value:o(null)}),t.exports=function(c){l[a][c]=!0}},"44e7":function(t,n,r){var i=r("861d"),o=r("c6b6"),s=r("b622"),a=s("match");t.exports=function(l){var c;return i(l)&&((c=l[a])!==void 0?!!c:o(l)=="RegExp")}},"4930":function(t,n,r){var i=r("2d00"),o=r("d039");t.exports=!!Object.getOwnPropertySymbols&&!o(function(){var s=Symbol();return!String(s)||!(Object(s)instanceof Symbol)||!Symbol.sham&&i&&i<41})},"4d64":function(t,n,r){var i=r("fc6a"),o=r("50c4"),s=r("23cb"),a=function(l){return function(c,u,f){var p=i(c),d=o(p.length),m=s(f,d),b;if(l&&u!=u){for(;d>m;)if(b=p[m++],b!=b)return!0}else for(;d>m;m++)if((l||m in p)&&p[m]===u)return l||m||0;return!l&&-1}};t.exports={includes:a(!0),indexOf:a(!1)}},"4de4":function(t,n,r){var i=r("23e7"),o=r("b727").filter,s=r("1dde"),a=s("filter");i({target:"Array",proto:!0,forced:!a},{filter:function(c){return o(this,c,arguments.length>1?arguments[1]:void 0)}})},"4df4":function(t,n,r){var i=r("0366"),o=r("7b0b"),s=r("9bdd"),a=r("e95a"),l=r("50c4"),c=r("8418"),u=r("35a1");t.exports=function(p){var d=o(p),m=typeof this=="function"?this:Array,b=arguments.length,v=b>1?arguments[1]:void 0,S=v!==void 0,g=u(d),O=0,E,$,R,T,P,N;if(S&&(v=i(v,b>2?arguments[2]:void 0,2)),g!=null&&!(m==Array&&a(g)))for(T=g.call(d),P=T.next,$=new m;!(R=P.call(T)).done;O++)N=S?s(T,v,[R.value,O],!0):R.value,c($,O,N);else for(E=l(d.length),$=new m(E);E>O;O++)N=S?v(d[O],O):d[O],c($,O,N);return $.length=O,$}},"4fad":function(t,n,r){var i=r("23e7"),o=r("6f53").entries;i({target:"Object",stat:!0},{entries:function(a){return o(a)}})},"50c4":function(t,n,r){var i=r("a691"),o=Math.min;t.exports=function(s){return s>0?o(i(s),9007199254740991):0}},"5135":function(t,n,r){var i=r("7b0b"),o={}.hasOwnProperty;t.exports=Object.hasOwn||function(a,l){return o.call(i(a),l)}},"5692":function(t,n,r){var i=r("c430"),o=r("c6cd");(t.exports=function(s,a){return o[s]||(o[s]=a!==void 0?a:{})})("versions",[]).push({version:"3.15.2",mode:i?"pure":"global",copyright:"\xA9 2021 Denis Pushkarev (zloirock.ru)"})},"56ef":function(t,n,r){var i=r("d066"),o=r("241c"),s=r("7418"),a=r("825a");t.exports=i("Reflect","ownKeys")||function(c){var u=o.f(a(c)),f=s.f;return f?u.concat(f(c)):u}},"5899":function(t,n){t.exports=`
12
+ \v\f\r \xA0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF`},"58a8":function(t,n,r){var i=r("1d80"),o=r("5899"),s="["+o+"]",a=RegExp("^"+s+s+"*"),l=RegExp(s+s+"*$"),c=function(u){return function(f){var p=String(i(f));return u&1&&(p=p.replace(a,"")),u&2&&(p=p.replace(l,"")),p}};t.exports={start:c(1),end:c(2),trim:c(3)}},"5a34":function(t,n,r){var i=r("44e7");t.exports=function(o){if(i(o))throw TypeError("The method doesn't accept regular expressions");return o}},"5c6c":function(t,n){t.exports=function(r,i){return{enumerable:!(r&1),configurable:!(r&2),writable:!(r&4),value:i}}},"6547":function(t,n,r){var i=r("a691"),o=r("1d80"),s=function(a){return function(l,c){var u=String(o(l)),f=i(c),p=u.length,d,m;return f<0||f>=p?a?"":void 0:(d=u.charCodeAt(f),d<55296||d>56319||f+1===p||(m=u.charCodeAt(f+1))<56320||m>57343?a?u.charAt(f):d:a?u.slice(f,f+2):(d-55296<<10)+(m-56320)+65536)}};t.exports={codeAt:s(!1),charAt:s(!0)}},"65f0":function(t,n,r){var i=r("861d"),o=r("e8b5"),s=r("b622"),a=s("species");t.exports=function(l,c){var u;return o(l)&&(u=l.constructor,typeof u=="function"&&(u===Array||o(u.prototype))?u=void 0:i(u)&&(u=u[a],u===null&&(u=void 0))),new(u===void 0?Array:u)(c===0?0:c)}},"69f3":function(t,n,r){var i=r("7f9a"),o=r("da84"),s=r("861d"),a=r("9112"),l=r("5135"),c=r("c6cd"),u=r("f772"),f=r("d012"),p="Object already initialized",d=o.WeakMap,m,b,v,S=function(P){return v(P)?b(P):m(P,{})},g=function(P){return function(N){var j;if(!s(N)||(j=b(N)).type!==P)throw TypeError("Incompatible receiver, "+P+" required");return j}};if(i||c.state){var O=c.state||(c.state=new d),E=O.get,$=O.has,R=O.set;m=function(P,N){if($.call(O,P))throw new TypeError(p);return N.facade=P,R.call(O,P,N),N},b=function(P){return E.call(O,P)||{}},v=function(P){return $.call(O,P)}}else{var T=u("state");f[T]=!0,m=function(P,N){if(l(P,T))throw new TypeError(p);return N.facade=P,a(P,T,N),N},b=function(P){return l(P,T)?P[T]:{}},v=function(P){return l(P,T)}}t.exports={set:m,get:b,has:v,enforce:S,getterFor:g}},"6eeb":function(t,n,r){var i=r("da84"),o=r("9112"),s=r("5135"),a=r("ce4e"),l=r("8925"),c=r("69f3"),u=c.get,f=c.enforce,p=String(String).split("String");(t.exports=function(d,m,b,v){var S=v?!!v.unsafe:!1,g=v?!!v.enumerable:!1,O=v?!!v.noTargetGet:!1,E;if(typeof b=="function"&&(typeof m=="string"&&!s(b,"name")&&o(b,"name",m),E=f(b),E.source||(E.source=p.join(typeof m=="string"?m:""))),d===i){g?d[m]=b:a(m,b);return}else S?!O&&d[m]&&(g=!0):delete d[m];g?d[m]=b:o(d,m,b)})(Function.prototype,"toString",function(){return typeof this=="function"&&u(this).source||l(this)})},"6f53":function(t,n,r){var i=r("83ab"),o=r("df75"),s=r("fc6a"),a=r("d1e7").f,l=function(c){return function(u){for(var f=s(u),p=o(f),d=p.length,m=0,b=[],v;d>m;)v=p[m++],(!i||a.call(f,v))&&b.push(c?[v,f[v]]:f[v]);return b}};t.exports={entries:l(!0),values:l(!1)}},"7156":function(t,n,r){var i=r("861d"),o=r("d2bb");t.exports=function(s,a,l){var c,u;return o&&typeof(c=a.constructor)=="function"&&c!==l&&i(u=c.prototype)&&u!==l.prototype&&o(s,u),s}},"7418":function(t,n){n.f=Object.getOwnPropertySymbols},"746f":function(t,n,r){var i=r("428f"),o=r("5135"),s=r("e538"),a=r("9bf2").f;t.exports=function(l){var c=i.Symbol||(i.Symbol={});o(c,l)||a(c,l,{value:s.f(l)})}},"7839":function(t,n){t.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},"7b0b":function(t,n,r){var i=r("1d80");t.exports=function(o){return Object(i(o))}},"7c73":function(t,n,r){var i=r("825a"),o=r("37e8"),s=r("7839"),a=r("d012"),l=r("1be4"),c=r("cc12"),u=r("f772"),f=">",p="<",d="prototype",m="script",b=u("IE_PROTO"),v=function(){},S=function(R){return p+m+f+R+p+"/"+m+f},g=function(R){R.write(S("")),R.close();var T=R.parentWindow.Object;return R=null,T},O=function(){var R=c("iframe"),T="java"+m+":",P;return R.style.display="none",l.appendChild(R),R.src=String(T),P=R.contentWindow.document,P.open(),P.write(S("document.F=Object")),P.close(),P.F},E,$=function(){try{E=document.domain&&new ActiveXObject("htmlfile")}catch(T){}$=E?g(E):O();for(var R=s.length;R--;)delete $[d][s[R]];return $()};a[b]=!0,t.exports=Object.create||function(T,P){var N;return T!==null?(v[d]=i(T),N=new v,v[d]=null,N[b]=T):N=$(),P===void 0?N:o(N,P)}},"7db0":function(t,n,r){var i=r("23e7"),o=r("b727").find,s=r("44d2"),a="find",l=!0;a in[]&&Array(1)[a](function(){l=!1}),i({target:"Array",proto:!0,forced:l},{find:function(u){return o(this,u,arguments.length>1?arguments[1]:void 0)}}),s(a)},"7dd0":function(t,n,r){var i=r("23e7"),o=r("9ed3"),s=r("e163"),a=r("d2bb"),l=r("d44e"),c=r("9112"),u=r("6eeb"),f=r("b622"),p=r("c430"),d=r("3f8c"),m=r("ae93"),b=m.IteratorPrototype,v=m.BUGGY_SAFARI_ITERATORS,S=f("iterator"),g="keys",O="values",E="entries",$=function(){return this};t.exports=function(R,T,P,N,j,V,F){o(P,T,N);var C=function(ve){if(ve===j&&B)return B;if(!v&&ve in L)return L[ve];switch(ve){case g:return function(){return new P(this,ve)};case O:return function(){return new P(this,ve)};case E:return function(){return new P(this,ve)}}return function(){return new P(this)}},w=T+" Iterator",M=!1,L=R.prototype,z=L[S]||L["@@iterator"]||j&&L[j],B=!v&&z||C(j),K=T=="Array"&&L.entries||z,G,de,ce;if(K&&(G=s(K.call(new R)),b!==Object.prototype&&G.next&&(!p&&s(G)!==b&&(a?a(G,b):typeof G[S]!="function"&&c(G,S,$)),l(G,w,!0,!0),p&&(d[w]=$))),j==O&&z&&z.name!==O&&(M=!0,B=function(){return z.call(this)}),(!p||F)&&L[S]!==B&&c(L,S,B),d[T]=B,j)if(de={values:C(O),keys:V?B:C(g),entries:C(E)},F)for(ce in de)(v||M||!(ce in L))&&u(L,ce,de[ce]);else i({target:T,proto:!0,forced:v||M},de);return de}},"7f9a":function(t,n,r){var i=r("da84"),o=r("8925"),s=i.WeakMap;t.exports=typeof s=="function"&&/native code/.test(o(s))},"825a":function(t,n,r){var i=r("861d");t.exports=function(o){if(!i(o))throw TypeError(String(o)+" is not an object");return o}},"83ab":function(t,n,r){var i=r("d039");t.exports=!i(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!=7})},"8418":function(t,n,r){var i=r("c04e"),o=r("9bf2"),s=r("5c6c");t.exports=function(a,l,c){var u=i(l);u in a?o.f(a,u,s(0,c)):a[u]=c}},"861d":function(t,n){t.exports=function(r){return typeof r=="object"?r!==null:typeof r=="function"}},"8875":function(t,n,r){var i,o,s;(function(a,l){o=[],i=l,s=typeof i=="function"?i.apply(n,o):i,s!==void 0&&(t.exports=s)})(typeof self!="undefined"?self:this,function(){function a(){var l=Object.getOwnPropertyDescriptor(document,"currentScript");if(!l&&"currentScript"in document&&document.currentScript||l&&l.get!==a&&document.currentScript)return document.currentScript;try{throw new Error}catch(E){var c=/.*at [^(]*\((.*):(.+):(.+)\)$/ig,u=/@([^@]*):(\d+):(\d+)\s*$/ig,f=c.exec(E.stack)||u.exec(E.stack),p=f&&f[1]||!1,d=f&&f[2]||!1,m=document.location.href.replace(document.location.hash,""),b,v,S,g=document.getElementsByTagName("script");p===m&&(b=document.documentElement.outerHTML,v=new RegExp("(?:[^\\n]+?\\n){0,"+(d-2)+"}[^<]*<script>([\\d\\D]*?)<\\/script>[\\d\\D]*","i"),S=b.replace(v,"$1").trim());for(var O=0;O<g.length;O++)if(g[O].readyState==="interactive"||g[O].src===p||p===m&&g[O].innerHTML&&g[O].innerHTML.trim()===S)return g[O];return null}}return a})},"8925":function(t,n,r){var i=r("c6cd"),o=Function.toString;typeof i.inspectSource!="function"&&(i.inspectSource=function(s){return o.call(s)}),t.exports=i.inspectSource},"8bbf":function(t,n){t.exports=ap.exports},"90e3":function(t,n){var r=0,i=Math.random();t.exports=function(o){return"Symbol("+String(o===void 0?"":o)+")_"+(++r+i).toString(36)}},"9112":function(t,n,r){var i=r("83ab"),o=r("9bf2"),s=r("5c6c");t.exports=i?function(a,l,c){return o.f(a,l,s(1,c))}:function(a,l,c){return a[l]=c,a}},"94ca":function(t,n,r){var i=r("d039"),o=/#|\.prototype\./,s=function(f,p){var d=l[a(f)];return d==u?!0:d==c?!1:typeof p=="function"?i(p):!!p},a=s.normalize=function(f){return String(f).replace(o,".").toLowerCase()},l=s.data={},c=s.NATIVE="N",u=s.POLYFILL="P";t.exports=s},"9bdd":function(t,n,r){var i=r("825a"),o=r("2a62");t.exports=function(s,a,l,c){try{return c?a(i(l)[0],l[1]):a(l)}catch(u){throw o(s),u}}},"9bf2":function(t,n,r){var i=r("83ab"),o=r("0cfb"),s=r("825a"),a=r("c04e"),l=Object.defineProperty;n.f=i?l:function(u,f,p){if(s(u),f=a(f,!0),s(p),o)try{return l(u,f,p)}catch(d){}if("get"in p||"set"in p)throw TypeError("Accessors not supported");return"value"in p&&(u[f]=p.value),u}},"9ed3":function(t,n,r){var i=r("ae93").IteratorPrototype,o=r("7c73"),s=r("5c6c"),a=r("d44e"),l=r("3f8c"),c=function(){return this};t.exports=function(u,f,p){var d=f+" Iterator";return u.prototype=o(i,{next:s(1,p)}),a(u,d,!1,!0),l[d]=c,u}},a434:function(t,n,r){var i=r("23e7"),o=r("23cb"),s=r("a691"),a=r("50c4"),l=r("7b0b"),c=r("65f0"),u=r("8418"),f=r("1dde"),p=f("splice"),d=Math.max,m=Math.min,b=9007199254740991,v="Maximum allowed length exceeded";i({target:"Array",proto:!0,forced:!p},{splice:function(g,O){var E=l(this),$=a(E.length),R=o(g,$),T=arguments.length,P,N,j,V,F,C;if(T===0?P=N=0:T===1?(P=0,N=$-R):(P=T-2,N=m(d(s(O),0),$-R)),$+P-N>b)throw TypeError(v);for(j=c(E,N),V=0;V<N;V++)F=R+V,F in E&&u(j,V,E[F]);if(j.length=N,P<N){for(V=R;V<$-N;V++)F=V+N,C=V+P,F in E?E[C]=E[F]:delete E[C];for(V=$;V>$-N+P;V--)delete E[V-1]}else if(P>N)for(V=$-N;V>R;V--)F=V+N-1,C=V+P-1,F in E?E[C]=E[F]:delete E[C];for(V=0;V<P;V++)E[V+R]=arguments[V+2];return E.length=$-N+P,j}})},a4d3:function(t,n,r){var i=r("23e7"),o=r("da84"),s=r("d066"),a=r("c430"),l=r("83ab"),c=r("4930"),u=r("fdbf"),f=r("d039"),p=r("5135"),d=r("e8b5"),m=r("861d"),b=r("825a"),v=r("7b0b"),S=r("fc6a"),g=r("c04e"),O=r("5c6c"),E=r("7c73"),$=r("df75"),R=r("241c"),T=r("057f"),P=r("7418"),N=r("06cf"),j=r("9bf2"),V=r("d1e7"),F=r("9112"),C=r("6eeb"),w=r("5692"),M=r("f772"),L=r("d012"),z=r("90e3"),B=r("b622"),K=r("e538"),G=r("746f"),de=r("d44e"),ce=r("69f3"),ve=r("b727").forEach,Se=M("hidden"),Re="Symbol",Je="prototype",Qe=B("toPrimitive"),ft=ce.set,kt=ce.getterFor(Re),Ve=Object[Je],ze=o.Symbol,vt=s("JSON","stringify"),x=N.f,I=j.f,k=T.f,X=V.f,W=w("symbols"),q=w("op-symbols"),ne=w("string-to-symbol-registry"),_=w("symbol-to-string-registry"),ee=w("wks"),Q=o.QObject,fe=!Q||!Q[Je]||!Q[Je].findChild,le=l&&f(function(){return E(I({},"a",{get:function(){return I(this,"a",{value:7}).a}})).a!=7})?function(ge,te,oe){var ae=x(Ve,te);ae&&delete Ve[te],I(ge,te,oe),ae&&ge!==Ve&&I(Ve,te,ae)}:I,pe=function(ge,te){var oe=W[ge]=E(ze[Je]);return ft(oe,{type:Re,tag:ge,description:te}),l||(oe.description=te),oe},y=u?function(ge){return typeof ge=="symbol"}:function(ge){return Object(ge)instanceof ze},h=function(te,oe,ae){te===Ve&&h(q,oe,ae),b(te);var we=g(oe,!0);return b(ae),p(W,we)?(ae.enumerable?(p(te,Se)&&te[Se][we]&&(te[Se][we]=!1),ae=E(ae,{enumerable:O(0,!1)})):(p(te,Se)||I(te,Se,O(1,{})),te[Se][we]=!0),le(te,we,ae)):I(te,we,ae)},U=function(te,oe){b(te);var ae=S(oe),we=$(ae).concat(Fe(ae));return ve(we,function(Pe){(!l||Z.call(ae,Pe))&&h(te,Pe,ae[Pe])}),te},Y=function(te,oe){return oe===void 0?E(te):U(E(te),oe)},Z=function(te){var oe=g(te,!0),ae=X.call(this,oe);return this===Ve&&p(W,oe)&&!p(q,oe)?!1:ae||!p(this,oe)||!p(W,oe)||p(this,Se)&&this[Se][oe]?ae:!0},me=function(te,oe){var ae=S(te),we=g(oe,!0);if(!(ae===Ve&&p(W,we)&&!p(q,we))){var Pe=x(ae,we);return Pe&&p(W,we)&&!(p(ae,Se)&&ae[Se][we])&&(Pe.enumerable=!0),Pe}},Oe=function(te){var oe=k(S(te)),ae=[];return ve(oe,function(we){!p(W,we)&&!p(L,we)&&ae.push(we)}),ae},Fe=function(te){var oe=te===Ve,ae=k(oe?q:S(te)),we=[];return ve(ae,function(Pe){p(W,Pe)&&(!oe||p(Ve,Pe))&&we.push(W[Pe])}),we};if(c||(ze=function(){if(this instanceof ze)throw TypeError("Symbol is not a constructor");var te=!arguments.length||arguments[0]===void 0?void 0:String(arguments[0]),oe=z(te),ae=function(we){this===Ve&&ae.call(q,we),p(this,Se)&&p(this[Se],oe)&&(this[Se][oe]=!1),le(this,oe,O(1,we))};return l&&fe&&le(Ve,oe,{configurable:!0,set:ae}),pe(oe,te)},C(ze[Je],"toString",function(){return kt(this).tag}),C(ze,"withoutSetter",function(ge){return pe(z(ge),ge)}),V.f=Z,j.f=h,N.f=me,R.f=T.f=Oe,P.f=Fe,K.f=function(ge){return pe(B(ge),ge)},l&&(I(ze[Je],"description",{configurable:!0,get:function(){return kt(this).description}}),a||C(Ve,"propertyIsEnumerable",Z,{unsafe:!0}))),i({global:!0,wrap:!0,forced:!c,sham:!c},{Symbol:ze}),ve($(ee),function(ge){G(ge)}),i({target:Re,stat:!0,forced:!c},{for:function(ge){var te=String(ge);if(p(ne,te))return ne[te];var oe=ze(te);return ne[te]=oe,_[oe]=te,oe},keyFor:function(te){if(!y(te))throw TypeError(te+" is not a symbol");if(p(_,te))return _[te]},useSetter:function(){fe=!0},useSimple:function(){fe=!1}}),i({target:"Object",stat:!0,forced:!c,sham:!l},{create:Y,defineProperty:h,defineProperties:U,getOwnPropertyDescriptor:me}),i({target:"Object",stat:!0,forced:!c},{getOwnPropertyNames:Oe,getOwnPropertySymbols:Fe}),i({target:"Object",stat:!0,forced:f(function(){P.f(1)})},{getOwnPropertySymbols:function(te){return P.f(v(te))}}),vt){var Le=!c||f(function(){var ge=ze();return vt([ge])!="[null]"||vt({a:ge})!="{}"||vt(Object(ge))!="{}"});i({target:"JSON",stat:!0,forced:Le},{stringify:function(te,oe,ae){for(var we=[te],Pe=1,yt;arguments.length>Pe;)we.push(arguments[Pe++]);if(yt=oe,!(!m(oe)&&te===void 0||y(te)))return d(oe)||(oe=function(qr,bt){if(typeof yt=="function"&&(bt=yt.call(this,qr,bt)),!y(bt))return bt}),we[1]=oe,vt.apply(null,we)}})}ze[Je][Qe]||F(ze[Je],Qe,ze[Je].valueOf),de(ze,Re),L[Se]=!0},a630:function(t,n,r){var i=r("23e7"),o=r("4df4"),s=r("1c7e"),a=!s(function(l){Array.from(l)});i({target:"Array",stat:!0,forced:a},{from:o})},a640:function(t,n,r){var i=r("d039");t.exports=function(o,s){var a=[][o];return!!a&&i(function(){a.call(null,s||function(){throw 1},1)})}},a691:function(t,n){var r=Math.ceil,i=Math.floor;t.exports=function(o){return isNaN(o=+o)?0:(o>0?i:r)(o)}},a9e3:function(t,n,r){var i=r("83ab"),o=r("da84"),s=r("94ca"),a=r("6eeb"),l=r("5135"),c=r("c6b6"),u=r("7156"),f=r("c04e"),p=r("d039"),d=r("7c73"),m=r("241c").f,b=r("06cf").f,v=r("9bf2").f,S=r("58a8").trim,g="Number",O=o[g],E=O.prototype,$=c(d(E))==g,R=function(V){var F=f(V,!1),C,w,M,L,z,B,K,G;if(typeof F=="string"&&F.length>2){if(F=S(F),C=F.charCodeAt(0),C===43||C===45){if(w=F.charCodeAt(2),w===88||w===120)return NaN}else if(C===48){switch(F.charCodeAt(1)){case 66:case 98:M=2,L=49;break;case 79:case 111:M=8,L=55;break;default:return+F}for(z=F.slice(2),B=z.length,K=0;K<B;K++)if(G=z.charCodeAt(K),G<48||G>L)return NaN;return parseInt(z,M)}}return+F};if(s(g,!O(" 0o1")||!O("0b1")||O("+0x1"))){for(var T=function(F){var C=arguments.length<1?0:F,w=this;return w instanceof T&&($?p(function(){E.valueOf.call(w)}):c(w)!=g)?u(new O(R(C)),w,T):R(C)},P=i?m(O):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger,fromString,range".split(","),N=0,j;P.length>N;N++)l(O,j=P[N])&&!l(T,j)&&v(T,j,b(O,j));T.prototype=E,E.constructor=T,a(o,g,T)}},ab13:function(t,n,r){var i=r("b622"),o=i("match");t.exports=function(s){var a=/./;try{"/./"[s](a)}catch(l){try{return a[o]=!1,"/./"[s](a)}catch(c){}}return!1}},ae93:function(t,n,r){var i=r("d039"),o=r("e163"),s=r("9112"),a=r("5135"),l=r("b622"),c=r("c430"),u=l("iterator"),f=!1,p=function(){return this},d,m,b;[].keys&&(b=[].keys(),"next"in b?(m=o(o(b)),m!==Object.prototype&&(d=m)):f=!0);var v=d==null||i(function(){var S={};return d[u].call(S)!==S});v&&(d={}),(!c||v)&&!a(d,u)&&s(d,u,p),t.exports={IteratorPrototype:d,BUGGY_SAFARI_ITERATORS:f}},b041:function(t,n,r){var i=r("00ee"),o=r("f5df");t.exports=i?{}.toString:function(){return"[object "+o(this)+"]"}},b0c0:function(t,n,r){var i=r("83ab"),o=r("9bf2").f,s=Function.prototype,a=s.toString,l=/^\s*function ([^ (]*)/,c="name";i&&!(c in s)&&o(s,c,{configurable:!0,get:function(){try{return a.call(this).match(l)[1]}catch(u){return""}}})},b622:function(t,n,r){var i=r("da84"),o=r("5692"),s=r("5135"),a=r("90e3"),l=r("4930"),c=r("fdbf"),u=o("wks"),f=i.Symbol,p=c?f:f&&f.withoutSetter||a;t.exports=function(d){return(!s(u,d)||!(l||typeof u[d]=="string"))&&(l&&s(f,d)?u[d]=f[d]:u[d]=p("Symbol."+d)),u[d]}},b64b:function(t,n,r){var i=r("23e7"),o=r("7b0b"),s=r("df75"),a=r("d039"),l=a(function(){s(1)});i({target:"Object",stat:!0,forced:l},{keys:function(u){return s(o(u))}})},b727:function(t,n,r){var i=r("0366"),o=r("44ad"),s=r("7b0b"),a=r("50c4"),l=r("65f0"),c=[].push,u=function(f){var p=f==1,d=f==2,m=f==3,b=f==4,v=f==6,S=f==7,g=f==5||v;return function(O,E,$,R){for(var T=s(O),P=o(T),N=i(E,$,3),j=a(P.length),V=0,F=R||l,C=p?F(O,j):d||S?F(O,0):void 0,w,M;j>V;V++)if((g||V in P)&&(w=P[V],M=N(w,V,T),f))if(p)C[V]=M;else if(M)switch(f){case 3:return!0;case 5:return w;case 6:return V;case 2:c.call(C,w)}else switch(f){case 4:return!1;case 7:c.call(C,w)}return v?-1:m||b?b:C}};t.exports={forEach:u(0),map:u(1),filter:u(2),some:u(3),every:u(4),find:u(5),findIndex:u(6),filterOut:u(7)}},c04e:function(t,n,r){var i=r("861d");t.exports=function(o,s){if(!i(o))return o;var a,l;if(s&&typeof(a=o.toString)=="function"&&!i(l=a.call(o))||typeof(a=o.valueOf)=="function"&&!i(l=a.call(o))||!s&&typeof(a=o.toString)=="function"&&!i(l=a.call(o)))return l;throw TypeError("Can't convert object to primitive value")}},c14f:function(t,n,r){r("ce77")},c430:function(t,n){t.exports=!1},c6b6:function(t,n){var r={}.toString;t.exports=function(i){return r.call(i).slice(8,-1)}},c6cd:function(t,n,r){var i=r("da84"),o=r("ce4e"),s="__core-js_shared__",a=i[s]||o(s,{});t.exports=a},c740:function(t,n,r){var i=r("23e7"),o=r("b727").findIndex,s=r("44d2"),a="findIndex",l=!0;a in[]&&Array(1)[a](function(){l=!1}),i({target:"Array",proto:!0,forced:l},{findIndex:function(u){return o(this,u,arguments.length>1?arguments[1]:void 0)}}),s(a)},c8ba:function(t,n){var r;r=function(){return this}();try{r=r||new Function("return this")()}catch(i){typeof window=="object"&&(r=window)}t.exports=r},ca84:function(t,n,r){var i=r("5135"),o=r("fc6a"),s=r("4d64").indexOf,a=r("d012");t.exports=function(l,c){var u=o(l),f=0,p=[],d;for(d in u)!i(a,d)&&i(u,d)&&p.push(d);for(;c.length>f;)i(u,d=c[f++])&&(~s(p,d)||p.push(d));return p}},caad:function(t,n,r){var i=r("23e7"),o=r("4d64").includes,s=r("44d2");i({target:"Array",proto:!0},{includes:function(l){return o(this,l,arguments.length>1?arguments[1]:void 0)}}),s("includes")},cc12:function(t,n,r){var i=r("da84"),o=r("861d"),s=i.document,a=o(s)&&o(s.createElement);t.exports=function(l){return a?s.createElement(l):{}}},ce4e:function(t,n,r){var i=r("da84"),o=r("9112");t.exports=function(s,a){try{o(i,s,a)}catch(l){i[s]=a}return a}},ce77:function(t,n,r){},d012:function(t,n){t.exports={}},d039:function(t,n){t.exports=function(r){try{return!!r()}catch(i){return!0}}},d066:function(t,n,r){var i=r("428f"),o=r("da84"),s=function(a){return typeof a=="function"?a:void 0};t.exports=function(a,l){return arguments.length<2?s(i[a])||s(o[a]):i[a]&&i[a][l]||o[a]&&o[a][l]}},d1e7:function(t,n,r){var i={}.propertyIsEnumerable,o=Object.getOwnPropertyDescriptor,s=o&&!i.call({1:2},1);n.f=s?function(l){var c=o(this,l);return!!c&&c.enumerable}:i},d28b:function(t,n,r){var i=r("746f");i("iterator")},d2bb:function(t,n,r){var i=r("825a"),o=r("3bbe");t.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var s=!1,a={},l;try{l=Object.getOwnPropertyDescriptor(Object.prototype,"__proto__").set,l.call(a,[]),s=a instanceof Array}catch(c){}return function(u,f){return i(u),o(f),s?l.call(u,f):u.__proto__=f,u}}():void 0)},d3b7:function(t,n,r){var i=r("00ee"),o=r("6eeb"),s=r("b041");i||o(Object.prototype,"toString",s,{unsafe:!0})},d44e:function(t,n,r){var i=r("9bf2").f,o=r("5135"),s=r("b622"),a=s("toStringTag");t.exports=function(l,c,u){l&&!o(l=u?l:l.prototype,a)&&i(l,a,{configurable:!0,value:c})}},d81d:function(t,n,r){var i=r("23e7"),o=r("b727").map,s=r("1dde"),a=s("map");i({target:"Array",proto:!0,forced:!a},{map:function(c){return o(this,c,arguments.length>1?arguments[1]:void 0)}})},da84:function(t,n,r){(function(i){var o=function(s){return s&&s.Math==Math&&s};t.exports=o(typeof globalThis=="object"&&globalThis)||o(typeof window=="object"&&window)||o(typeof self=="object"&&self)||o(typeof i=="object"&&i)||function(){return this}()||Function("return this")()}).call(this,r("c8ba"))},dbb4:function(t,n,r){var i=r("23e7"),o=r("83ab"),s=r("56ef"),a=r("fc6a"),l=r("06cf"),c=r("8418");i({target:"Object",stat:!0,sham:!o},{getOwnPropertyDescriptors:function(f){for(var p=a(f),d=l.f,m=s(p),b={},v=0,S,g;m.length>v;)g=d(p,S=m[v++]),g!==void 0&&c(b,S,g);return b}})},ddb0:function(t,n,r){var i=r("da84"),o=r("fdbc"),s=r("e260"),a=r("9112"),l=r("b622"),c=l("iterator"),u=l("toStringTag"),f=s.values;for(var p in o){var d=i[p],m=d&&d.prototype;if(m){if(m[c]!==f)try{a(m,c,f)}catch(v){m[c]=f}if(m[u]||a(m,u,p),o[p]){for(var b in s)if(m[b]!==s[b])try{a(m,b,s[b])}catch(v){m[b]=s[b]}}}}},df75:function(t,n,r){var i=r("ca84"),o=r("7839");t.exports=Object.keys||function(a){return i(a,o)}},e01a:function(t,n,r){var i=r("23e7"),o=r("83ab"),s=r("da84"),a=r("5135"),l=r("861d"),c=r("9bf2").f,u=r("e893"),f=s.Symbol;if(o&&typeof f=="function"&&(!("description"in f.prototype)||f().description!==void 0)){var p={},d=function(){var O=arguments.length<1||arguments[0]===void 0?void 0:String(arguments[0]),E=this instanceof d?new f(O):O===void 0?f():f(O);return O===""&&(p[E]=!0),E};u(d,f);var m=d.prototype=f.prototype;m.constructor=d;var b=m.toString,v=String(f("test"))=="Symbol(test)",S=/^Symbol\((.*)\)[^)]+$/;c(m,"description",{configurable:!0,get:function(){var O=l(this)?this.valueOf():this,E=b.call(O);if(a(p,O))return"";var $=v?E.slice(7,-1):E.replace(S,"$1");return $===""?void 0:$}}),i({global:!0,forced:!0},{Symbol:d})}},e163:function(t,n,r){var i=r("5135"),o=r("7b0b"),s=r("f772"),a=r("e177"),l=s("IE_PROTO"),c=Object.prototype;t.exports=a?Object.getPrototypeOf:function(u){return u=o(u),i(u,l)?u[l]:typeof u.constructor=="function"&&u instanceof u.constructor?u.constructor.prototype:u instanceof Object?c:null}},e177:function(t,n,r){var i=r("d039");t.exports=!i(function(){function o(){}return o.prototype.constructor=null,Object.getPrototypeOf(new o)!==o.prototype})},e260:function(t,n,r){var i=r("fc6a"),o=r("44d2"),s=r("3f8c"),a=r("69f3"),l=r("7dd0"),c="Array Iterator",u=a.set,f=a.getterFor(c);t.exports=l(Array,"Array",function(p,d){u(this,{type:c,target:i(p),index:0,kind:d})},function(){var p=f(this),d=p.target,m=p.kind,b=p.index++;return!d||b>=d.length?(p.target=void 0,{value:void 0,done:!0}):m=="keys"?{value:b,done:!1}:m=="values"?{value:d[b],done:!1}:{value:[b,d[b]],done:!1}},"values"),s.Arguments=s.Array,o("keys"),o("values"),o("entries")},e439:function(t,n,r){var i=r("23e7"),o=r("d039"),s=r("fc6a"),a=r("06cf").f,l=r("83ab"),c=o(function(){a(1)}),u=!l||c;i({target:"Object",stat:!0,forced:u,sham:!l},{getOwnPropertyDescriptor:function(p,d){return a(s(p),d)}})},e538:function(t,n,r){var i=r("b622");n.f=i},e893:function(t,n,r){var i=r("5135"),o=r("56ef"),s=r("06cf"),a=r("9bf2");t.exports=function(l,c){for(var u=o(c),f=a.f,p=s.f,d=0;d<u.length;d++){var m=u[d];i(l,m)||f(l,m,p(c,m))}}},e8b5:function(t,n,r){var i=r("c6b6");t.exports=Array.isArray||function(s){return i(s)=="Array"}},e95a:function(t,n,r){var i=r("b622"),o=r("3f8c"),s=i("iterator"),a=Array.prototype;t.exports=function(l){return l!==void 0&&(o.Array===l||a[s]===l)}},f5df:function(t,n,r){var i=r("00ee"),o=r("c6b6"),s=r("b622"),a=s("toStringTag"),l=o(function(){return arguments}())=="Arguments",c=function(u,f){try{return u[f]}catch(p){}};t.exports=i?o:function(u){var f,p,d;return u===void 0?"Undefined":u===null?"Null":typeof(p=c(f=Object(u),a))=="string"?p:l?o(f):(d=o(f))=="Object"&&typeof f.callee=="function"?"Arguments":d}},f772:function(t,n,r){var i=r("5692"),o=r("90e3"),s=i("keys");t.exports=function(a){return s[a]||(s[a]=o(a))}},fae3:function(t,n,r){if(r.r(n),r.d(n,"Splitpanes",function(){return N}),r.d(n,"Pane",function(){return F}),typeof window!="undefined"){var i=window.document.currentScript;{var o=r("8875");i=o(),"currentScript"in document||Object.defineProperty(document,"currentScript",{get:o})}var s=i&&i.src.match(/(.+\/)[^/]+\.js(\?.*)?$/);s&&(r.p=s[1])}r("b64b"),r("a4d3"),r("4de4"),r("e439"),r("159b"),r("dbb4");function a(C,w,M){return w in C?Object.defineProperty(C,w,{value:M,enumerable:!0,configurable:!0,writable:!0}):C[w]=M,C}function l(C,w){var M=Object.keys(C);if(Object.getOwnPropertySymbols){var L=Object.getOwnPropertySymbols(C);w&&(L=L.filter(function(z){return Object.getOwnPropertyDescriptor(C,z).enumerable})),M.push.apply(M,L)}return M}function c(C){for(var w=1;w<arguments.length;w++){var M=arguments[w]!=null?arguments[w]:{};w%2?l(Object(M),!0).forEach(function(L){a(C,L,M[L])}):Object.getOwnPropertyDescriptors?Object.defineProperties(C,Object.getOwnPropertyDescriptors(M)):l(Object(M)).forEach(function(L){Object.defineProperty(C,L,Object.getOwnPropertyDescriptor(M,L))})}return C}function u(C){if(Array.isArray(C))return C}r("e01a"),r("d3b7"),r("d28b"),r("e260"),r("3ca3"),r("ddb0");function f(C,w){var M=C==null?null:typeof Symbol!="undefined"&&C[Symbol.iterator]||C["@@iterator"];if(M!=null){var L=[],z=!0,B=!1,K,G;try{for(M=M.call(C);!(z=(K=M.next()).done)&&(L.push(K.value),!(w&&L.length===w));z=!0);}catch(de){B=!0,G=de}finally{try{!z&&M.return!=null&&M.return()}finally{if(B)throw G}}return L}}r("fb6a"),r("b0c0"),r("a630");function p(C,w){(w==null||w>C.length)&&(w=C.length);for(var M=0,L=new Array(w);M<w;M++)L[M]=C[M];return L}function d(C,w){if(!!C){if(typeof C=="string")return p(C,w);var M=Object.prototype.toString.call(C).slice(8,-1);if(M==="Object"&&C.constructor&&(M=C.constructor.name),M==="Map"||M==="Set")return Array.from(C);if(M==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(M))return p(C,w)}}function m(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
13
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function b(C,w){return u(C)||f(C,w)||d(C,w)||m()}function v(C,w){if(C==null)return{};var M={},L=Object.keys(C),z,B;for(B=0;B<L.length;B++)z=L[B],!(w.indexOf(z)>=0)&&(M[z]=C[z]);return M}function S(C,w){if(C==null)return{};var M=v(C,w),L,z;if(Object.getOwnPropertySymbols){var B=Object.getOwnPropertySymbols(C);for(z=0;z<B.length;z++)L=B[z],!(w.indexOf(L)>=0)&&(!Object.prototype.propertyIsEnumerable.call(C,L)||(M[L]=C[L]))}return M}function g(C){if(Array.isArray(C))return p(C)}function O(C){if(typeof Symbol!="undefined"&&C[Symbol.iterator]!=null||C["@@iterator"]!=null)return Array.from(C)}function E(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
14
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function $(C){return g(C)||O(C)||d(C)||E()}r("d81d"),r("7db0"),r("caad"),r("2532"),r("4fad"),r("a434"),r("c740");var R=r("8bbf"),T=["target"],P={name:"splitpanes",emits:["ready","resize","resized","pane-click","pane-maximize","pane-add","pane-remove","splitter-click"],props:{horizontal:{type:Boolean},pushOtherPanes:{type:Boolean,default:!0},dblClickSplitter:{type:Boolean,default:!0},rtl:{type:Boolean,default:!1},firstSplitter:{type:Boolean}},provide:function(){return{requestUpdate:this.requestUpdate,onPaneAdd:this.onPaneAdd,onPaneRemove:this.onPaneRemove,onPaneClick:this.onPaneClick}},data:function(){return{container:null,ready:!1,panes:[],touch:{mouseDown:!1,dragging:!1,activeSplitter:null},splitterTaps:{splitter:null,timeoutId:null}}},computed:{panesCount:function(){return this.panes.length},indexedPanes:function(){return this.panes.reduce(function(w,M){return(w[M.id]=M)&&w},{})}},methods:{updatePaneComponents:function(){var w=this;this.panes.forEach(function(M){M.update&&M.update(a({},w.horizontal?"height":"width","".concat(w.indexedPanes[M.id].size,"%")))})},bindEvents:function(){document.addEventListener("mousemove",this.onMouseMove,{passive:!1}),document.addEventListener("mouseup",this.onMouseUp),"ontouchstart"in window&&(document.addEventListener("touchmove",this.onMouseMove,{passive:!1}),document.addEventListener("touchend",this.onMouseUp))},unbindEvents:function(){document.removeEventListener("mousemove",this.onMouseMove,{passive:!1}),document.removeEventListener("mouseup",this.onMouseUp),"ontouchstart"in window&&(document.removeEventListener("touchmove",this.onMouseMove,{passive:!1}),document.removeEventListener("touchend",this.onMouseUp))},onMouseDown:function(w,M){this.bindEvents(),this.touch.mouseDown=!0,this.touch.activeSplitter=M},onMouseMove:function(w){this.touch.mouseDown&&(w.preventDefault(),this.touch.dragging=!0,this.calculatePanesSize(this.getCurrentMouseDrag(w)),this.$emit("resize",this.panes.map(function(M){return{min:M.min,max:M.max,size:M.size}})))},onMouseUp:function(){var w=this;this.touch.dragging&&this.$emit("resized",this.panes.map(function(M){return{min:M.min,max:M.max,size:M.size}})),this.touch.mouseDown=!1,setTimeout(function(){w.touch.dragging=!1,w.unbindEvents()},100)},onSplitterClick:function(w,M){var L=this;"ontouchstart"in window&&(w.preventDefault(),this.dblClickSplitter&&(this.splitterTaps.splitter===M?(clearTimeout(this.splitterTaps.timeoutId),this.splitterTaps.timeoutId=null,this.onSplitterDblClick(w,M),this.splitterTaps.splitter=null):(this.splitterTaps.splitter=M,this.splitterTaps.timeoutId=setTimeout(function(){L.splitterTaps.splitter=null},500)))),this.touch.dragging||this.$emit("splitter-click",this.panes[M])},onSplitterDblClick:function(w,M){var L=0;this.panes=this.panes.map(function(z,B){return z.size=B===M?z.max:z.min,B!==M&&(L+=z.min),z}),this.panes[M].size-=L,this.$emit("pane-maximize",this.panes[M])},onPaneClick:function(w,M){this.$emit("pane-click",this.indexedPanes[M])},getCurrentMouseDrag:function(w){var M=this.container.getBoundingClientRect(),L="ontouchstart"in window&&w.touches?w.touches[0]:w,z=L.clientX,B=L.clientY;return{x:z-M.left,y:B-M.top}},getCurrentDragPercentage:function(w){w=w[this.horizontal?"y":"x"];var M=this.container[this.horizontal?"clientHeight":"clientWidth"];return this.rtl&&!this.horizontal&&(w=M-w),w*100/M},calculatePanesSize:function(w){var M=this.touch.activeSplitter,L={prevPanesSize:this.sumPrevPanesSize(M),nextPanesSize:this.sumNextPanesSize(M),prevReachedMinPanes:0,nextReachedMinPanes:0},z=0+(this.pushOtherPanes?0:L.prevPanesSize),B=100-(this.pushOtherPanes?0:L.nextPanesSize),K=Math.max(Math.min(this.getCurrentDragPercentage(w),B),z),G=[M,M+1],de=this.panes[G[0]]||null,ce=this.panes[G[1]]||null,ve=de.max<100&&K>=de.max+L.prevPanesSize,Se=ce.max<100&&K<=100-(ce.max+this.sumNextPanesSize(M+1));if(ve||Se){ve?(de.size=de.max,ce.size=Math.max(100-de.max-L.prevPanesSize-L.nextPanesSize,0)):(de.size=Math.max(100-ce.max-L.prevPanesSize-this.sumNextPanesSize(M+1),0),ce.size=ce.max);return}if(this.pushOtherPanes){var Re=this.doPushOtherPanes(L,K);if(!Re)return;L=Re.sums,G=Re.panesToResize,de=this.panes[G[0]]||null,ce=this.panes[G[1]]||null}de!==null&&(de.size=Math.min(Math.max(K-L.prevPanesSize-L.prevReachedMinPanes,de.min),de.max)),ce!==null&&(ce.size=Math.min(Math.max(100-K-L.nextPanesSize-L.nextReachedMinPanes,ce.min),ce.max))},doPushOtherPanes:function(w,M){var L=this,z=this.touch.activeSplitter,B=[z,z+1];return M<w.prevPanesSize+this.panes[B[0]].min&&(B[0]=this.findPrevExpandedPane(z).index,w.prevReachedMinPanes=0,B[0]<z&&this.panes.forEach(function(K,G){G>B[0]&&G<=z&&(K.size=K.min,w.prevReachedMinPanes+=K.min)}),w.prevPanesSize=this.sumPrevPanesSize(B[0]),B[0]===void 0)?(w.prevReachedMinPanes=0,this.panes[0].size=this.panes[0].min,this.panes.forEach(function(K,G){G>0&&G<=z&&(K.size=K.min,w.prevReachedMinPanes+=K.min)}),this.panes[B[1]].size=100-w.prevReachedMinPanes-this.panes[0].min-w.prevPanesSize-w.nextPanesSize,null):M>100-w.nextPanesSize-this.panes[B[1]].min&&(B[1]=this.findNextExpandedPane(z).index,w.nextReachedMinPanes=0,B[1]>z+1&&this.panes.forEach(function(K,G){G>z&&G<B[1]&&(K.size=K.min,w.nextReachedMinPanes+=K.min)}),w.nextPanesSize=this.sumNextPanesSize(B[1]-1),B[1]===void 0)?(w.nextReachedMinPanes=0,this.panes[this.panesCount-1].size=this.panes[this.panesCount-1].min,this.panes.forEach(function(K,G){G<L.panesCount-1&&G>=z+1&&(K.size=K.min,w.nextReachedMinPanes+=K.min)}),this.panes[B[0]].size=100-w.prevPanesSize-w.nextReachedMinPanes-this.panes[this.panesCount-1].min-w.nextPanesSize,null):{sums:w,panesToResize:B}},sumPrevPanesSize:function(w){return this.panes.reduce(function(M,L,z){return M+(z<w?L.size:0)},0)},sumNextPanesSize:function(w){return this.panes.reduce(function(M,L,z){return M+(z>w+1?L.size:0)},0)},findPrevExpandedPane:function(w){var M=$(this.panes).reverse().find(function(L){return L.index<w&&L.size>L.min});return M||{}},findNextExpandedPane:function(w){var M=this.panes.find(function(L){return L.index>w+1&&L.size>L.min});return M||{}},checkSplitpanesNodes:function(){var w=Array.from(this.container.children);w.forEach(function(M){var L=M.classList.contains("splitpanes__pane"),z=M.classList.contains("splitpanes__splitter");if(!L&&!z){M.parentNode.removeChild(M),console.warn("Splitpanes: Only <pane> elements are allowed at the root of <splitpanes>. One of your DOM nodes was removed.");return}})},addSplitter:function(w,M){var L=this,z=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,B=w-1,K=document.createElement("div");K.classList.add("splitpanes__splitter"),z||(K.onmousedown=function(G){return L.onMouseDown(G,B)},typeof window!="undefined"&&"ontouchstart"in window&&(K.ontouchstart=function(G){return L.onMouseDown(G,B)}),K.onclick=function(G){return L.onSplitterClick(G,B+1)}),this.dblClickSplitter&&(K.ondblclick=function(G){return L.onSplitterDblClick(G,B+1)}),M.parentNode.insertBefore(K,M)},removeSplitter:function(w){w.onmousedown=void 0,w.onclick=void 0,w.ondblclick=void 0,w.parentNode.removeChild(w)},redoSplitters:function(){var w=this,M=Array.from(this.container.children);M.forEach(function(z){z.className.includes("splitpanes__splitter")&&w.removeSplitter(z)});var L=0;M.forEach(function(z){z.className.includes("splitpanes__pane")&&(!L&&w.firstSplitter?w.addSplitter(L,z,!0):L&&w.addSplitter(L,z),L++)})},requestUpdate:function(w){var M=w.target,L=S(w,T),z=this.indexedPanes[M._.uid];Object.entries(L).forEach(function(B){var K=b(B,2),G=K[0],de=K[1];return z[G]=de})},onPaneAdd:function(w){var M=this,L=-1;Array.from(w.$el.parentNode.children).some(function(K){return K.className.includes("splitpanes__pane")&&L++,K===w.$el});var z=parseFloat(w.minSize),B=parseFloat(w.maxSize);this.panes.splice(L,0,{id:w._.uid,index:L,min:isNaN(z)?0:z,max:isNaN(B)?100:B,size:w.size===null?null:parseFloat(w.size),givenSize:w.size,update:w.update}),this.panes.forEach(function(K,G){return K.index=G}),this.ready&&this.$nextTick(function(){M.redoSplitters(),M.resetPaneSizes({addedPane:M.panes[L]}),M.$emit("pane-add",{index:L,panes:M.panes.map(function(K){return{min:K.min,max:K.max,size:K.size}})})})},onPaneRemove:function(w){var M=this,L=this.panes.findIndex(function(B){return B.id===w._.uid}),z=this.panes.splice(L,1)[0];this.panes.forEach(function(B,K){return B.index=K}),this.$nextTick(function(){M.redoSplitters(),M.resetPaneSizes({removedPane:c(c({},z),{},{index:L})}),M.$emit("pane-remove",{removed:z,panes:M.panes.map(function(B){return{min:B.min,max:B.max,size:B.size}})})})},resetPaneSizes:function(){var w=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};!w.addedPane&&!w.removedPane?this.initialPanesSizing():this.panes.some(function(M){return M.givenSize!==null||M.min||M.max<100})?this.equalizeAfterAddOrRemove(w):this.equalize(),this.ready&&this.$emit("resized",this.panes.map(function(M){return{min:M.min,max:M.max,size:M.size}}))},equalize:function(){var w=100/this.panesCount,M=0,L=[],z=[];this.panes.forEach(function(B){B.size=Math.max(Math.min(w,B.max),B.min),M-=B.size,B.size>=B.max&&L.push(B.id),B.size<=B.min&&z.push(B.id)}),M>.1&&this.readjustSizes(M,L,z)},initialPanesSizing:function(){var w=this;100/this.panesCount;var M=100,L=[],z=[],B=0;this.panes.forEach(function(G){M-=G.size,G.size!==null&&B++,G.size>=G.max&&L.push(G.id),G.size<=G.min&&z.push(G.id)});var K=100;M>.1&&(this.panes.forEach(function(G){G.size===null&&(G.size=Math.max(Math.min(M/(w.panesCount-B),G.max),G.min)),K-=G.size}),K>.1&&this.readjustSizes(M,L,z))},equalizeAfterAddOrRemove:function(){var w=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},M=w.addedPane;w.removedPane;var L=100/this.panesCount,z=0,B=[],K=[];M&&M.givenSize!==null&&(L=(100-M.givenSize)/(this.panesCount-1)),this.panes.forEach(function(G){z-=G.size,G.size>=G.max&&B.push(G.id),G.size<=G.min&&K.push(G.id)}),!(Math.abs(z)<.1)&&(this.panes.forEach(function(G){M&&M.givenSize!==null&&M.id===G.id||(G.size=Math.max(Math.min(L,G.max),G.min)),z-=G.size,G.size>=G.max&&B.push(G.id),G.size<=G.min&&K.push(G.id)}),z>.1&&this.readjustSizes(z,B,K))},readjustSizes:function(w,M,L){var z=this,B;w>0?B=w/(this.panesCount-M.length):B=w/(this.panesCount-L.length),this.panes.forEach(function(K,G){if(w>0&&!M.includes(K.id)){var de=Math.max(Math.min(K.size+B,K.max),K.min),ce=de-K.size;w-=ce,K.size=de}else if(!L.includes(K.id)){var ve=Math.max(Math.min(K.size+B,K.max),K.min),Se=ve-K.size;w-=Se,K.size=ve}K.update(a({},z.horizontal?"height":"width","".concat(z.indexedPanes[K.id].size,"%")))}),Math.abs(w)>.1&&this.$nextTick(function(){z.ready&&console.warn("Splitpanes: Could not resize panes correctly due to their constraints.")})}},watch:{panes:{deep:!0,immediate:!1,handler:function(){this.updatePaneComponents()}},horizontal:function(){this.updatePaneComponents()},firstSplitter:function(){this.redoSplitters()},dblClickSplitter:function(w){var M=this,L=$(this.container.querySelectorAll(".splitpanes__splitter"));L.forEach(function(z,B){z.ondblclick=w?function(K){return M.onSplitterDblClick(K,B)}:void 0})}},beforeUnmount:function(){this.ready=!1},mounted:function(){this.container=this.$refs.container,this.checkSplitpanesNodes(),this.redoSplitters(),this.resetPaneSizes(),this.$emit("ready"),this.ready=!0},render:function(){return Object(R.h)("div",{ref:"container",class:["splitpanes","splitpanes--".concat(this.horizontal?"horizontal":"vertical"),{"splitpanes--dragging":this.touch.dragging}]},this.$slots.default())}};r("c14f");var N=P;function j(C,w,M,L,z,B){return Object(R.openBlock)(),Object(R.createBlock)("div",{class:"splitpanes__pane",onClick:w[1]||(w[1]=function(K){return B.onPaneClick(K,C._.uid)}),style:C.style},[Object(R.renderSlot)(C.$slots,"default")],4)}r("a9e3");var V={name:"pane",inject:["requestUpdate","onPaneAdd","onPaneRemove","onPaneClick"],props:{size:{type:[Number,String],default:null},minSize:{type:[Number,String],default:0},maxSize:{type:[Number,String],default:100}},data:function(){return{style:{}}},mounted:function(){this.onPaneAdd(this)},beforeUnmount:function(){this.onPaneRemove(this)},methods:{update:function(w){this.style=w}},computed:{sizeNumber:function(){return this.size||this.size===0?parseFloat(this.size):null},minSizeNumber:function(){return parseFloat(this.minSize)},maxSizeNumber:function(){return parseFloat(this.maxSize)}},watch:{sizeNumber:function(w){this.requestUpdate({target:this,size:w})},minSizeNumber:function(w){this.requestUpdate({target:this,min:w})},maxSizeNumber:function(w){this.requestUpdate({target:this,max:w})}}};V.render=j;var F=V},fb6a:function(t,n,r){var i=r("23e7"),o=r("861d"),s=r("e8b5"),a=r("23cb"),l=r("50c4"),c=r("fc6a"),u=r("8418"),f=r("b622"),p=r("1dde"),d=p("slice"),m=f("species"),b=[].slice,v=Math.max;i({target:"Array",proto:!0,forced:!d},{slice:function(g,O){var E=c(this),$=l(E.length),R=a(g,$),T=a(O===void 0?$:O,$),P,N,j;if(s(E)&&(P=E.constructor,typeof P=="function"&&(P===Array||s(P.prototype))?P=void 0:o(P)&&(P=P[m],P===null&&(P=void 0)),P===Array||P===void 0))return b.call(E,R,T);for(N=new(P===void 0?Array:P)(v(T-R,0)),j=0;R<T;R++,j++)R in E&&u(N,j,E[R]);return N.length=j,N}})},fc6a:function(t,n,r){var i=r("44ad"),o=r("1d80");t.exports=function(s){return i(o(s))}},fdbc:function(t,n){t.exports={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}},fdbf:function(t,n,r){var i=r("4930");t.exports=i&&!Symbol.sham&&typeof Symbol.iterator=="symbol"}})})(fy);var dd=(e,t)=>{for(const[n,r]of t)e[n]=r;return e};function Gl(e){return e===0?!1:Array.isArray(e)&&e.length===0?!0:!e}function qb(e){return(...t)=>!e(...t)}function _b(e,t){return e===void 0&&(e="undefined"),e===null&&(e="null"),e===!1&&(e="false"),e.toString().toLowerCase().indexOf(t.trim())!==-1}function hd(e,t,n,r){return t?e.filter(i=>_b(r(i,n),t)).sort((i,o)=>r(i,n).length-r(o,n).length):e}function e0(e){return e.filter(t=>!t.$isLabel)}function Zl(e,t){return n=>n.reduce((r,i)=>i[e]&&i[e].length?(r.push({$groupLabel:i[t],$isLabel:!0}),r.concat(i[e])):r,[])}function t0(e,t,n,r,i){return o=>o.map(s=>{if(!s[n])return console.warn("Options passed to vue-multiselect do not contain groups, despite the config."),[];const a=hd(s[n],e,t,i);return a.length?{[r]:s[r],[n]:a}:[]})}const md=(...e)=>t=>e.reduce((n,r)=>r(n),t);var n0={data(){return{search:"",isOpen:!1,preferredOpenDirection:"below",optimizedHeight:this.maxHeight}},props:{internalSearch:{type:Boolean,default:!0},options:{type:Array,required:!0},multiple:{type:Boolean,default:!1},trackBy:{type:String},label:{type:String},searchable:{type:Boolean,default:!0},clearOnSelect:{type:Boolean,default:!0},hideSelected:{type:Boolean,default:!1},placeholder:{type:String,default:"Select option"},allowEmpty:{type:Boolean,default:!0},resetAfter:{type:Boolean,default:!1},closeOnSelect:{type:Boolean,default:!0},customLabel:{type:Function,default(e,t){return Gl(e)?"":t?e[t]:e}},taggable:{type:Boolean,default:!1},tagPlaceholder:{type:String,default:"Press enter to create a tag"},tagPosition:{type:String,default:"top"},max:{type:[Number,Boolean],default:!1},id:{default:null},optionsLimit:{type:Number,default:1e3},groupValues:{type:String},groupLabel:{type:String},groupSelect:{type:Boolean,default:!1},blockKeys:{type:Array,default(){return[]}},preserveSearch:{type:Boolean,default:!1},preselectFirst:{type:Boolean,default:!1}},mounted(){!this.multiple&&this.max&&console.warn("[Vue-Multiselect warn]: Max prop should not be used when prop Multiple equals false."),this.preselectFirst&&!this.internalValue.length&&this.options.length&&this.select(this.filteredOptions[0])},computed:{internalValue(){return this.modelValue||this.modelValue===0?Array.isArray(this.modelValue)?this.modelValue:[this.modelValue]:[]},filteredOptions(){const e=this.search||"",t=e.toLowerCase().trim();let n=this.options.concat();return this.internalSearch?n=this.groupValues?this.filterAndFlat(n,t,this.label):hd(n,t,this.label,this.customLabel):n=this.groupValues?Zl(this.groupValues,this.groupLabel)(n):n,n=this.hideSelected?n.filter(qb(this.isSelected)):n,this.taggable&&t.length&&!this.isExistingOption(t)&&(this.tagPosition==="bottom"?n.push({isTag:!0,label:e}):n.unshift({isTag:!0,label:e})),n.slice(0,this.optionsLimit)},valueKeys(){return this.trackBy?this.internalValue.map(e=>e[this.trackBy]):this.internalValue},optionKeys(){return(this.groupValues?this.flatAndStrip(this.options):this.options).map(t=>this.customLabel(t,this.label).toString().toLowerCase())},currentOptionLabel(){return this.multiple?this.searchable?"":this.placeholder:this.internalValue.length?this.getOptionLabel(this.internalValue[0]):this.searchable?"":this.placeholder}},watch:{internalValue(){this.resetAfter&&this.internalValue.length&&(this.search="",this.$emit("update:modelValue",this.multiple?[]:null))},search(){this.$emit("search-change",this.search)}},emits:["open","search-change","close","select","update:modelValue","remove","tag"],methods:{getValue(){return this.multiple?this.internalValue:this.internalValue.length===0?null:this.internalValue[0]},filterAndFlat(e,t,n){return md(t0(t,n,this.groupValues,this.groupLabel,this.customLabel),Zl(this.groupValues,this.groupLabel))(e)},flatAndStrip(e){return md(Zl(this.groupValues,this.groupLabel),e0)(e)},updateSearch(e){this.search=e},isExistingOption(e){return this.options?this.optionKeys.indexOf(e)>-1:!1},isSelected(e){const t=this.trackBy?e[this.trackBy]:e;return this.valueKeys.indexOf(t)>-1},isOptionDisabled(e){return!!e.$isDisabled},getOptionLabel(e){if(Gl(e))return"";if(e.isTag)return e.label;if(e.$isLabel)return e.$groupLabel;const t=this.customLabel(e,this.label);return Gl(t)?"":t},select(e,t){if(e.$isLabel&&this.groupSelect){this.selectGroup(e);return}if(!(this.blockKeys.indexOf(t)!==-1||this.disabled||e.$isDisabled||e.$isLabel)&&!(this.max&&this.multiple&&this.internalValue.length===this.max)&&!(t==="Tab"&&!this.pointerDirty)){if(e.isTag)this.$emit("tag",e.label,this.id),this.search="",this.closeOnSelect&&!this.multiple&&this.deactivate();else{if(this.isSelected(e)){t!=="Tab"&&this.removeElement(e);return}this.$emit("select",e,this.id),this.multiple?this.$emit("update:modelValue",this.internalValue.concat([e])):this.$emit("update:modelValue",e),this.clearOnSelect&&(this.search="")}this.closeOnSelect&&this.deactivate()}},selectGroup(e){const t=this.options.find(n=>n[this.groupLabel]===e.$groupLabel);if(!!t){if(this.wholeGroupSelected(t)){this.$emit("remove",t[this.groupValues],this.id);const n=this.internalValue.filter(r=>t[this.groupValues].indexOf(r)===-1);this.$emit("update:modelValue",n)}else{const n=t[this.groupValues].filter(r=>!(this.isOptionDisabled(r)||this.isSelected(r)));this.$emit("select",n,this.id),this.$emit("update:modelValue",this.internalValue.concat(n))}this.closeOnSelect&&this.deactivate()}},wholeGroupSelected(e){return e[this.groupValues].every(t=>this.isSelected(t)||this.isOptionDisabled(t))},wholeGroupDisabled(e){return e[this.groupValues].every(this.isOptionDisabled)},removeElement(e,t=!0){if(this.disabled||e.$isDisabled)return;if(!this.allowEmpty&&this.internalValue.length<=1){this.deactivate();return}const n=typeof e=="object"?this.valueKeys.indexOf(e[this.trackBy]):this.valueKeys.indexOf(e);if(this.$emit("remove",e,this.id),this.multiple){const r=this.internalValue.slice(0,n).concat(this.internalValue.slice(n+1));this.$emit("update:modelValue",r)}else this.$emit("update:modelValue",null);this.closeOnSelect&&t&&this.deactivate()},removeLastElement(){this.blockKeys.indexOf("Delete")===-1&&this.search.length===0&&Array.isArray(this.internalValue)&&this.internalValue.length&&this.removeElement(this.internalValue[this.internalValue.length-1],!1)},activate(){this.isOpen||this.disabled||(this.adjustPosition(),this.groupValues&&this.pointer===0&&this.filteredOptions.length&&(this.pointer=1),this.isOpen=!0,this.searchable?(this.preserveSearch||(this.search=""),this.$nextTick(()=>this.$refs.search&&this.$refs.search.focus())):this.$el.focus(),this.$emit("open",this.id))},deactivate(){!this.isOpen||(this.isOpen=!1,this.searchable?this.$refs.search&&this.$refs.search.blur():this.$el.blur(),this.preserveSearch||(this.search=""),this.$emit("close",this.getValue(),this.id))},toggle(){this.isOpen?this.deactivate():this.activate()},adjustPosition(){if(typeof window=="undefined")return;const e=this.$el.getBoundingClientRect().top,t=window.innerHeight-this.$el.getBoundingClientRect().bottom;t>this.maxHeight||t>e||this.openDirection==="below"||this.openDirection==="bottom"?(this.preferredOpenDirection="below",this.optimizedHeight=Math.min(t-40,this.maxHeight)):(this.preferredOpenDirection="above",this.optimizedHeight=Math.min(e-40,this.maxHeight))}}},r0={data(){return{pointer:0,pointerDirty:!1}},props:{showPointer:{type:Boolean,default:!0},optionHeight:{type:Number,default:40}},computed:{pointerPosition(){return this.pointer*this.optionHeight},visibleElements(){return this.optimizedHeight/this.optionHeight}},watch:{filteredOptions(){this.pointerAdjust()},isOpen(){this.pointerDirty=!1},pointer(){this.$refs.search&&this.$refs.search.setAttribute("aria-activedescendant",this.id+"-"+this.pointer.toString())}},methods:{optionHighlight(e,t){return{"multiselect__option--highlight":e===this.pointer&&this.showPointer,"multiselect__option--selected":this.isSelected(t)}},groupHighlight(e,t){if(!this.groupSelect)return["multiselect__option--disabled",{"multiselect__option--group":t.$isLabel}];const n=this.options.find(r=>r[this.groupLabel]===t.$groupLabel);return n&&!this.wholeGroupDisabled(n)?["multiselect__option--group",{"multiselect__option--highlight":e===this.pointer&&this.showPointer},{"multiselect__option--group-selected":this.wholeGroupSelected(n)}]:"multiselect__option--disabled"},addPointerElement({key:e}="Enter"){this.filteredOptions.length>0&&this.select(this.filteredOptions[this.pointer],e),this.pointerReset()},pointerForward(){this.pointer<this.filteredOptions.length-1&&(this.pointer++,this.$refs.list.scrollTop<=this.pointerPosition-(this.visibleElements-1)*this.optionHeight&&(this.$refs.list.scrollTop=this.pointerPosition-(this.visibleElements-1)*this.optionHeight),this.filteredOptions[this.pointer]&&this.filteredOptions[this.pointer].$isLabel&&!this.groupSelect&&this.pointerForward()),this.pointerDirty=!0},pointerBackward(){this.pointer>0?(this.pointer--,this.$refs.list.scrollTop>=this.pointerPosition&&(this.$refs.list.scrollTop=this.pointerPosition),this.filteredOptions[this.pointer]&&this.filteredOptions[this.pointer].$isLabel&&!this.groupSelect&&this.pointerBackward()):this.filteredOptions[this.pointer]&&this.filteredOptions[0].$isLabel&&!this.groupSelect&&this.pointerForward(),this.pointerDirty=!0},pointerReset(){!this.closeOnSelect||(this.pointer=0,this.$refs.list&&(this.$refs.list.scrollTop=0))},pointerAdjust(){this.pointer>=this.filteredOptions.length-1&&(this.pointer=this.filteredOptions.length?this.filteredOptions.length-1:0),this.filteredOptions.length>0&&this.filteredOptions[this.pointer].$isLabel&&!this.groupSelect&&this.pointerForward()},pointerSet(e){this.pointer=e,this.pointerDirty=!0}}},i0={name:"vue-multiselect",mixins:[n0,r0],props:{name:{type:String,default:""},modelValue:{type:null,default(){return[]}},selectLabel:{type:String,default:"Press enter to select"},selectGroupLabel:{type:String,default:"Press enter to select group"},selectedLabel:{type:String,default:"Selected"},deselectLabel:{type:String,default:"Press enter to remove"},deselectGroupLabel:{type:String,default:"Press enter to deselect group"},showLabels:{type:Boolean,default:!0},limit:{type:Number,default:99999},maxHeight:{type:Number,default:300},limitText:{type:Function,default:e=>`and ${e} more`},loading:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},openDirection:{type:String,default:""},showNoOptions:{type:Boolean,default:!0},showNoResults:{type:Boolean,default:!0},tabindex:{type:Number,default:0}},computed:{isSingleLabelVisible(){return(this.singleValue||this.singleValue===0)&&(!this.isOpen||!this.searchable)&&!this.visibleValues.length},isPlaceholderVisible(){return!this.internalValue.length&&(!this.searchable||!this.isOpen)},visibleValues(){return this.multiple?this.internalValue.slice(0,this.limit):[]},singleValue(){return this.internalValue[0]},deselectLabelText(){return this.showLabels?this.deselectLabel:""},deselectGroupLabelText(){return this.showLabels?this.deselectGroupLabel:""},selectLabelText(){return this.showLabels?this.selectLabel:""},selectGroupLabelText(){return this.showLabels?this.selectGroupLabel:""},selectedLabelText(){return this.showLabels?this.selectedLabel:""},inputStyle(){return this.searchable||this.multiple&&this.modelValue&&this.modelValue.length?this.isOpen?{width:"100%"}:{width:"0",position:"absolute",padding:"0"}:""},contentStyle(){return this.options.length?{display:"inline-block"}:{display:"block"}},isAbove(){return this.openDirection==="above"||this.openDirection==="top"?!0:this.openDirection==="below"||this.openDirection==="bottom"?!1:this.preferredOpenDirection==="above"},showSearchInput(){return this.searchable&&(this.hasSingleSelectedSlot&&(this.visibleSingleValue||this.visibleSingleValue===0)?this.isOpen:!0)}}};const o0={ref:"tags",class:"multiselect__tags"},s0={class:"multiselect__tags-wrap"},a0={class:"multiselect__spinner"},l0={key:0},c0={class:"multiselect__option"},u0={class:"multiselect__option"},f0=Nn("No elements found. Consider changing the search query."),p0={class:"multiselect__option"},d0=Nn("List is empty.");function h0(e,t,n,r,i,o){return Ie(),ke("div",{tabindex:e.searchable?-1:n.tabindex,class:[{"multiselect--active":e.isOpen,"multiselect--disabled":n.disabled,"multiselect--above":o.isAbove},"multiselect"],onFocus:t[14]||(t[14]=s=>e.activate()),onBlur:t[15]||(t[15]=s=>e.searchable?!1:e.deactivate()),onKeydown:[t[16]||(t[16]=Dt(Xe(s=>e.pointerForward(),["self","prevent"]),["down"])),t[17]||(t[17]=Dt(Xe(s=>e.pointerBackward(),["self","prevent"]),["up"]))],onKeypress:t[18]||(t[18]=Dt(Xe(s=>e.addPointerElement(s),["stop","self"]),["enter","tab"])),onKeyup:t[19]||(t[19]=Dt(s=>e.deactivate(),["esc"])),role:"combobox","aria-owns":"listbox-"+e.id},[qe(e.$slots,"caret",{toggle:e.toggle},()=>[he("div",{onMousedown:t[1]||(t[1]=Xe(s=>e.toggle(),["prevent","stop"])),class:"multiselect__select"},null,32)]),qe(e.$slots,"clear",{search:e.search}),he("div",o0,[qe(e.$slots,"selection",{search:e.search,remove:e.removeElement,values:o.visibleValues,isOpen:e.isOpen},()=>[xr(he("div",s0,[(Ie(!0),ke(Ye,null,ko(o.visibleValues,(s,a)=>qe(e.$slots,"tag",{option:s,search:e.search,remove:e.removeElement},()=>[(Ie(),ke("span",{class:"multiselect__tag",key:a},[he("span",{textContent:Jt(e.getOptionLabel(s))},null,8,["textContent"]),he("i",{tabindex:"1",onKeypress:Dt(Xe(l=>e.removeElement(s),["prevent"]),["enter"]),onMousedown:Xe(l=>e.removeElement(s),["prevent"]),class:"multiselect__tag-icon"},null,40,["onKeypress","onMousedown"])]))])),256))],512),[[sr,o.visibleValues.length>0]]),e.internalValue&&e.internalValue.length>n.limit?qe(e.$slots,"limit",{key:0},()=>[he("strong",{class:"multiselect__strong",textContent:Jt(n.limitText(e.internalValue.length-n.limit))},null,8,["textContent"])]):Lt("v-if",!0)]),he(Ni,{name:"multiselect__loading"},{default:qt(()=>[qe(e.$slots,"loading",{},()=>[xr(he("div",a0,null,512),[[sr,n.loading]])])]),_:3}),e.searchable?(Ie(),ke("input",{key:0,ref:"search",name:n.name,id:e.id,type:"text",autocomplete:"off",spellcheck:"false",placeholder:e.placeholder,style:o.inputStyle,value:e.search,disabled:n.disabled,tabindex:n.tabindex,onInput:t[2]||(t[2]=s=>e.updateSearch(s.target.value)),onFocus:t[3]||(t[3]=Xe(s=>e.activate(),["prevent"])),onBlur:t[4]||(t[4]=Xe(s=>e.deactivate(),["prevent"])),onKeyup:t[5]||(t[5]=Dt(s=>e.deactivate(),["esc"])),onKeydown:[t[6]||(t[6]=Dt(Xe(s=>e.pointerForward(),["prevent"]),["down"])),t[7]||(t[7]=Dt(Xe(s=>e.pointerBackward(),["prevent"]),["up"])),t[9]||(t[9]=Dt(Xe(s=>e.removeLastElement(),["stop"]),["delete"]))],onKeypress:t[8]||(t[8]=Dt(Xe(s=>e.addPointerElement(s),["prevent","stop","self"]),["enter"])),class:"multiselect__input","aria-controls":"listbox-"+e.id},null,44,["name","id","placeholder","value","disabled","tabindex","aria-controls"])):Lt("v-if",!0),o.isSingleLabelVisible?(Ie(),ke("span",{key:1,class:"multiselect__single",onMousedown:t[10]||(t[10]=Xe((...s)=>e.toggle&&e.toggle(...s),["prevent"]))},[qe(e.$slots,"singleLabel",{option:o.singleValue},()=>[Nn(Jt(e.currentOptionLabel),1)])],32)):Lt("v-if",!0),o.isPlaceholderVisible?(Ie(),ke("span",{key:2,class:"multiselect__placeholder",onMousedown:t[11]||(t[11]=Xe((...s)=>e.toggle&&e.toggle(...s),["prevent"]))},[qe(e.$slots,"placeholder",{},()=>[Nn(Jt(e.placeholder),1)])],32)):Lt("v-if",!0)],512),he(Ni,{name:"multiselect"},{default:qt(()=>[xr(he("div",{class:"multiselect__content-wrapper",onFocus:t[12]||(t[12]=(...s)=>e.activate&&e.activate(...s)),tabindex:"-1",onMousedown:t[13]||(t[13]=Xe(()=>{},["prevent"])),style:{maxHeight:e.optimizedHeight+"px"},ref:"list"},[he("ul",{class:"multiselect__content",style:o.contentStyle,role:"listbox",id:"listbox-"+e.id},[qe(e.$slots,"beforeList"),e.multiple&&e.max===e.internalValue.length?(Ie(),ke("li",l0,[he("span",c0,[qe(e.$slots,"maxElements",{},()=>[Nn("Maximum of "+Jt(e.max)+" options selected. First remove a selected option to select another.",1)])])])):Lt("v-if",!0),!e.max||e.internalValue.length<e.max?(Ie(!0),ke(Ye,{key:1},ko(e.filteredOptions,(s,a)=>(Ie(),ke("li",{class:"multiselect__element",key:a,id:e.id+"-"+a,role:s&&(s.$isLabel||s.$isDisabled)?null:"option"},[s&&(s.$isLabel||s.$isDisabled)?Lt("v-if",!0):(Ie(),ke("span",{key:0,class:[e.optionHighlight(a,s),"multiselect__option"],onClick:Xe(l=>e.select(s),["stop"]),onMouseenter:Xe(l=>e.pointerSet(a),["self"]),"data-select":s&&s.isTag?e.tagPlaceholder:o.selectLabelText,"data-selected":o.selectedLabelText,"data-deselect":o.deselectLabelText},[qe(e.$slots,"option",{option:s,search:e.search,index:a},()=>[he("span",null,Jt(e.getOptionLabel(s)),1)])],42,["onClick","onMouseenter","data-select","data-selected","data-deselect"])),s&&(s.$isLabel||s.$isDisabled)?(Ie(),ke("span",{key:1,"data-select":e.groupSelect&&o.selectGroupLabelText,"data-deselect":e.groupSelect&&o.deselectGroupLabelText,class:[e.groupHighlight(a,s),"multiselect__option"],onMouseenter:Xe(l=>e.groupSelect&&e.pointerSet(a),["self"]),onMousedown:Xe(l=>e.selectGroup(s),["prevent"])},[qe(e.$slots,"option",{option:s,search:e.search,index:a},()=>[he("span",null,Jt(e.getOptionLabel(s)),1)])],42,["data-select","data-deselect","onMouseenter","onMousedown"])):Lt("v-if",!0)],8,["id","role"]))),128)):Lt("v-if",!0),xr(he("li",null,[he("span",u0,[qe(e.$slots,"noResult",{search:e.search},()=>[f0])])],512),[[sr,n.showNoResults&&e.filteredOptions.length===0&&e.search&&!n.loading]]),xr(he("li",null,[he("span",p0,[qe(e.$slots,"noOptions",{},()=>[d0])])],512),[[sr,n.showNoOptions&&e.options.length===0&&!e.search&&!n.loading]]),qe(e.$slots,"afterList")],12,["id"])],36),[[sr,e.isOpen]])]),_:3})],42,["tabindex","aria-owns"])}i0.render=h0;function Jl(e){return[null,void 0,!1].indexOf(e)!==-1}function gd(e){var t={exports:{}};return e(t,t.exports),t.exports}function vd(e){return(vd=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(e)}var yd=gd(function(e,t){e.exports=function(){var n=["decimals","thousand","mark","prefix","suffix","encoder","decoder","negativeBefore","negative","edit","undo"];function r(m){return m.split("").reverse().join("")}function i(m,b){return m.substring(0,b.length)===b}function o(m,b){return m.slice(-1*b.length)===b}function s(m,b,v){if((m[b]||m[v])&&m[b]===m[v])throw new Error(b)}function a(m){return typeof m=="number"&&isFinite(m)}function l(m,b){return m=m.toString().split("e"),(+((m=(m=Math.round(+(m[0]+"e"+(m[1]?+m[1]+b:b)))).toString().split("e"))[0]+"e"+(m[1]?+m[1]-b:-b))).toFixed(b)}function c(m,b,v,S,g,O,E,$,R,T,P,N){var j,V,F,C=N,w="",M="";return O&&(N=O(N)),!!a(N)&&(m!==!1&&parseFloat(N.toFixed(m))===0&&(N=0),N<0&&(j=!0,N=Math.abs(N)),m!==!1&&(N=l(N,m)),(N=N.toString()).indexOf(".")!==-1?(F=(V=N.split("."))[0],v&&(w=v+V[1])):F=N,b&&(F=r(F).match(/.{1,3}/g),F=r(F.join(r(b)))),j&&$&&(M+=$),S&&(M+=S),j&&R&&(M+=R),M+=F,M+=w,g&&(M+=g),T&&(M=T(M,C)),M)}function u(m,b,v,S,g,O,E,$,R,T,P,N){var j,V="";return P&&(N=P(N)),!(!N||typeof N!="string")&&($&&i(N,$)&&(N=N.replace($,""),j=!0),S&&i(N,S)&&(N=N.replace(S,"")),R&&i(N,R)&&(N=N.replace(R,""),j=!0),g&&o(N,g)&&(N=N.slice(0,-1*g.length)),b&&(N=N.split(b).join("")),v&&(N=N.replace(v,".")),j&&(V+="-"),(V=(V+=N).replace(/[^0-9\.\-.]/g,""))!==""&&(V=Number(V),E&&(V=E(V)),!!a(V)&&V))}function f(m){var b,v,S,g={};for(m.suffix===void 0&&(m.suffix=m.postfix),b=0;b<n.length;b+=1)if((S=m[v=n[b]])===void 0)v!=="negative"||g.negativeBefore?v==="mark"&&g.thousand!=="."?g[v]=".":g[v]=!1:g[v]="-";else if(v==="decimals"){if(!(S>=0&&S<8))throw new Error(v);g[v]=S}else if(v==="encoder"||v==="decoder"||v==="edit"||v==="undo"){if(typeof S!="function")throw new Error(v);g[v]=S}else{if(typeof S!="string")throw new Error(v);g[v]=S}return s(g,"mark","thousand"),s(g,"prefix","negative"),s(g,"prefix","negativeBefore"),g}function p(m,b,v){var S,g=[];for(S=0;S<n.length;S+=1)g.push(m[n[S]]);return g.push(v),b.apply("",g)}function d(m){if(!(this instanceof d))return new d(m);vd(m)==="object"&&(m=f(m),this.to=function(b){return p(m,c,b)},this.from=function(b){return p(m,u,b)})}return d}()});function Kr(e){return(Kr=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(e)}var m0=gd(function(e,t){e.exports=function(){var n="14.6.3";function r(y){return Kr(y)==="object"&&typeof y.to=="function"&&typeof y.from=="function"}function i(y){y.parentElement.removeChild(y)}function o(y){return y!=null}function s(y){y.preventDefault()}function a(y){return y.filter(function(h){return!this[h]&&(this[h]=!0)},{})}function l(y,h){return Math.round(y/h)*h}function c(y,h){var U=y.getBoundingClientRect(),Y=y.ownerDocument,Z=Y.documentElement,me=g(Y);return/webkit.*Chrome.*Mobile/i.test(navigator.userAgent)&&(me.x=0),h?U.top+me.y-Z.clientTop:U.left+me.x-Z.clientLeft}function u(y){return typeof y=="number"&&!isNaN(y)&&isFinite(y)}function f(y,h,U){U>0&&(b(y,h),setTimeout(function(){v(y,h)},U))}function p(y){return Math.max(Math.min(y,100),0)}function d(y){return Array.isArray(y)?y:[y]}function m(y){var h=(y=String(y)).split(".");return h.length>1?h[1].length:0}function b(y,h){y.classList&&!/\s/.test(h)?y.classList.add(h):y.className+=" "+h}function v(y,h){y.classList&&!/\s/.test(h)?y.classList.remove(h):y.className=y.className.replace(new RegExp("(^|\\b)"+h.split(" ").join("|")+"(\\b|$)","gi")," ")}function S(y,h){return y.classList?y.classList.contains(h):new RegExp("\\b"+h+"\\b").test(y.className)}function g(y){var h=window.pageXOffset!==void 0,U=(y.compatMode||"")==="CSS1Compat";return{x:h?window.pageXOffset:U?y.documentElement.scrollLeft:y.body.scrollLeft,y:h?window.pageYOffset:U?y.documentElement.scrollTop:y.body.scrollTop}}function O(){return window.navigator.pointerEnabled?{start:"pointerdown",move:"pointermove",end:"pointerup"}:window.navigator.msPointerEnabled?{start:"MSPointerDown",move:"MSPointerMove",end:"MSPointerUp"}:{start:"mousedown touchstart",move:"mousemove touchmove",end:"mouseup touchend"}}function E(){var y=!1;try{var h=Object.defineProperty({},"passive",{get:function(){y=!0}});window.addEventListener("test",null,h)}catch(U){}return y}function $(){return window.CSS&&CSS.supports&&CSS.supports("touch-action","none")}function R(y,h){return 100/(h-y)}function T(y,h,U){return 100*h/(y[U+1]-y[U])}function P(y,h){return T(y,y[0]<0?h+Math.abs(y[0]):h-y[0],0)}function N(y,h){return h*(y[1]-y[0])/100+y[0]}function j(y,h){for(var U=1;y>=h[U];)U+=1;return U}function V(y,h,U){if(U>=y.slice(-1)[0])return 100;var Y=j(U,y),Z=y[Y-1],me=y[Y],Oe=h[Y-1],Fe=h[Y];return Oe+P([Z,me],U)/R(Oe,Fe)}function F(y,h,U){if(U>=100)return y.slice(-1)[0];var Y=j(U,h),Z=y[Y-1],me=y[Y],Oe=h[Y-1];return N([Z,me],(U-Oe)*R(Oe,h[Y]))}function C(y,h,U,Y){if(Y===100)return Y;var Z=j(Y,y),me=y[Z-1],Oe=y[Z];return U?Y-me>(Oe-me)/2?Oe:me:h[Z-1]?y[Z-1]+l(Y-y[Z-1],h[Z-1]):Y}function w(y,h,U){var Y;if(typeof h=="number"&&(h=[h]),!Array.isArray(h))throw new Error("noUiSlider ("+n+"): 'range' contains invalid value.");if(!u(Y=y==="min"?0:y==="max"?100:parseFloat(y))||!u(h[0]))throw new Error("noUiSlider ("+n+"): 'range' value isn't numeric.");U.xPct.push(Y),U.xVal.push(h[0]),Y?U.xSteps.push(!isNaN(h[1])&&h[1]):isNaN(h[1])||(U.xSteps[0]=h[1]),U.xHighestCompleteStep.push(0)}function M(y,h,U){if(h)if(U.xVal[y]!==U.xVal[y+1]){U.xSteps[y]=T([U.xVal[y],U.xVal[y+1]],h,0)/R(U.xPct[y],U.xPct[y+1]);var Y=(U.xVal[y+1]-U.xVal[y])/U.xNumSteps[y],Z=Math.ceil(Number(Y.toFixed(3))-1),me=U.xVal[y]+U.xNumSteps[y]*Z;U.xHighestCompleteStep[y]=me}else U.xSteps[y]=U.xHighestCompleteStep[y]=U.xVal[y]}function L(y,h,U){var Y;this.xPct=[],this.xVal=[],this.xSteps=[U||!1],this.xNumSteps=[!1],this.xHighestCompleteStep=[],this.snap=h;var Z=[];for(Y in y)y.hasOwnProperty(Y)&&Z.push([y[Y],Y]);for(Z.length&&Kr(Z[0][0])==="object"?Z.sort(function(me,Oe){return me[0][0]-Oe[0][0]}):Z.sort(function(me,Oe){return me[0]-Oe[0]}),Y=0;Y<Z.length;Y++)w(Z[Y][1],Z[Y][0],this);for(this.xNumSteps=this.xSteps.slice(0),Y=0;Y<this.xNumSteps.length;Y++)M(Y,this.xNumSteps[Y],this)}L.prototype.getDistance=function(y){var h,U=[];for(h=0;h<this.xNumSteps.length-1;h++){var Y=this.xNumSteps[h];if(Y&&y/Y%1!=0)throw new Error("noUiSlider ("+n+"): 'limit', 'margin' and 'padding' of "+this.xPct[h]+"% range must be divisible by step.");U[h]=T(this.xVal,y,h)}return U},L.prototype.getAbsoluteDistance=function(y,h,U){var Y,Z=0;if(y<this.xPct[this.xPct.length-1])for(;y>this.xPct[Z+1];)Z++;else y===this.xPct[this.xPct.length-1]&&(Z=this.xPct.length-2);U||y!==this.xPct[Z+1]||Z++;var me=1,Oe=h[Z],Fe=0,Le=0,ge=0,te=0;for(Y=U?(y-this.xPct[Z])/(this.xPct[Z+1]-this.xPct[Z]):(this.xPct[Z+1]-y)/(this.xPct[Z+1]-this.xPct[Z]);Oe>0;)Fe=this.xPct[Z+1+te]-this.xPct[Z+te],h[Z+te]*me+100-100*Y>100?(Le=Fe*Y,me=(Oe-100*Y)/h[Z+te],Y=1):(Le=h[Z+te]*Fe/100*me,me=0),U?(ge-=Le,this.xPct.length+te>=1&&te--):(ge+=Le,this.xPct.length-te>=1&&te++),Oe=h[Z+te]*me;return y+ge},L.prototype.toStepping=function(y){return y=V(this.xVal,this.xPct,y)},L.prototype.fromStepping=function(y){return F(this.xVal,this.xPct,y)},L.prototype.getStep=function(y){return y=C(this.xPct,this.xSteps,this.snap,y)},L.prototype.getDefaultStep=function(y,h,U){var Y=j(y,this.xPct);return(y===100||h&&y===this.xPct[Y-1])&&(Y=Math.max(Y-1,1)),(this.xVal[Y]-this.xVal[Y-1])/U},L.prototype.getNearbySteps=function(y){var h=j(y,this.xPct);return{stepBefore:{startValue:this.xVal[h-2],step:this.xNumSteps[h-2],highestStep:this.xHighestCompleteStep[h-2]},thisStep:{startValue:this.xVal[h-1],step:this.xNumSteps[h-1],highestStep:this.xHighestCompleteStep[h-1]},stepAfter:{startValue:this.xVal[h],step:this.xNumSteps[h],highestStep:this.xHighestCompleteStep[h]}}},L.prototype.countStepDecimals=function(){var y=this.xNumSteps.map(m);return Math.max.apply(null,y)},L.prototype.convert=function(y){return this.getStep(this.toStepping(y))};var z={to:function(y){return y!==void 0&&y.toFixed(2)},from:Number},B={target:"target",base:"base",origin:"origin",handle:"handle",handleLower:"handle-lower",handleUpper:"handle-upper",touchArea:"touch-area",horizontal:"horizontal",vertical:"vertical",background:"background",connect:"connect",connects:"connects",ltr:"ltr",rtl:"rtl",textDirectionLtr:"txt-dir-ltr",textDirectionRtl:"txt-dir-rtl",draggable:"draggable",drag:"state-drag",tap:"state-tap",active:"active",tooltip:"tooltip",pips:"pips",pipsHorizontal:"pips-horizontal",pipsVertical:"pips-vertical",marker:"marker",markerHorizontal:"marker-horizontal",markerVertical:"marker-vertical",markerNormal:"marker-normal",markerLarge:"marker-large",markerSub:"marker-sub",value:"value",valueHorizontal:"value-horizontal",valueVertical:"value-vertical",valueNormal:"value-normal",valueLarge:"value-large",valueSub:"value-sub"},K={tooltips:".__tooltips",aria:".__aria"};function G(y){if(r(y))return!0;throw new Error("noUiSlider ("+n+"): 'format' requires 'to' and 'from' methods.")}function de(y,h){if(!u(h))throw new Error("noUiSlider ("+n+"): 'step' is not numeric.");y.singleStep=h}function ce(y,h){if(!u(h))throw new Error("noUiSlider ("+n+"): 'keyboardPageMultiplier' is not numeric.");y.keyboardPageMultiplier=h}function ve(y,h){if(!u(h))throw new Error("noUiSlider ("+n+"): 'keyboardDefaultStep' is not numeric.");y.keyboardDefaultStep=h}function Se(y,h){if(Kr(h)!=="object"||Array.isArray(h))throw new Error("noUiSlider ("+n+"): 'range' is not an object.");if(h.min===void 0||h.max===void 0)throw new Error("noUiSlider ("+n+"): Missing 'min' or 'max' in 'range'.");if(h.min===h.max)throw new Error("noUiSlider ("+n+"): 'range' 'min' and 'max' cannot be equal.");y.spectrum=new L(h,y.snap,y.singleStep)}function Re(y,h){if(h=d(h),!Array.isArray(h)||!h.length)throw new Error("noUiSlider ("+n+"): 'start' option is incorrect.");y.handles=h.length,y.start=h}function Je(y,h){if(y.snap=h,typeof h!="boolean")throw new Error("noUiSlider ("+n+"): 'snap' option must be a boolean.")}function Qe(y,h){if(y.animate=h,typeof h!="boolean")throw new Error("noUiSlider ("+n+"): 'animate' option must be a boolean.")}function ft(y,h){if(y.animationDuration=h,typeof h!="number")throw new Error("noUiSlider ("+n+"): 'animationDuration' option must be a number.")}function kt(y,h){var U,Y=[!1];if(h==="lower"?h=[!0,!1]:h==="upper"&&(h=[!1,!0]),h===!0||h===!1){for(U=1;U<y.handles;U++)Y.push(h);Y.push(!1)}else{if(!Array.isArray(h)||!h.length||h.length!==y.handles+1)throw new Error("noUiSlider ("+n+"): 'connect' option doesn't match handle count.");Y=h}y.connect=Y}function Ve(y,h){switch(h){case"horizontal":y.ort=0;break;case"vertical":y.ort=1;break;default:throw new Error("noUiSlider ("+n+"): 'orientation' option is invalid.")}}function ze(y,h){if(!u(h))throw new Error("noUiSlider ("+n+"): 'margin' option must be numeric.");h!==0&&(y.margin=y.spectrum.getDistance(h))}function vt(y,h){if(!u(h))throw new Error("noUiSlider ("+n+"): 'limit' option must be numeric.");if(y.limit=y.spectrum.getDistance(h),!y.limit||y.handles<2)throw new Error("noUiSlider ("+n+"): 'limit' option is only supported on linear sliders with 2 or more handles.")}function x(y,h){var U;if(!u(h)&&!Array.isArray(h))throw new Error("noUiSlider ("+n+"): 'padding' option must be numeric or array of exactly 2 numbers.");if(Array.isArray(h)&&h.length!==2&&!u(h[0])&&!u(h[1]))throw new Error("noUiSlider ("+n+"): 'padding' option must be numeric or array of exactly 2 numbers.");if(h!==0){for(Array.isArray(h)||(h=[h,h]),y.padding=[y.spectrum.getDistance(h[0]),y.spectrum.getDistance(h[1])],U=0;U<y.spectrum.xNumSteps.length-1;U++)if(y.padding[0][U]<0||y.padding[1][U]<0)throw new Error("noUiSlider ("+n+"): 'padding' option must be a positive number(s).");var Y=h[0]+h[1],Z=y.spectrum.xVal[0];if(Y/(y.spectrum.xVal[y.spectrum.xVal.length-1]-Z)>1)throw new Error("noUiSlider ("+n+"): 'padding' option must not exceed 100% of the range.")}}function I(y,h){switch(h){case"ltr":y.dir=0;break;case"rtl":y.dir=1;break;default:throw new Error("noUiSlider ("+n+"): 'direction' option was not recognized.")}}function k(y,h){if(typeof h!="string")throw new Error("noUiSlider ("+n+"): 'behaviour' must be a string containing options.");var U=h.indexOf("tap")>=0,Y=h.indexOf("drag")>=0,Z=h.indexOf("fixed")>=0,me=h.indexOf("snap")>=0,Oe=h.indexOf("hover")>=0,Fe=h.indexOf("unconstrained")>=0;if(Z){if(y.handles!==2)throw new Error("noUiSlider ("+n+"): 'fixed' behaviour must be used with 2 handles");ze(y,y.start[1]-y.start[0])}if(Fe&&(y.margin||y.limit))throw new Error("noUiSlider ("+n+"): 'unconstrained' behaviour cannot be used with margin or limit");y.events={tap:U||me,drag:Y,fixed:Z,snap:me,hover:Oe,unconstrained:Fe}}function X(y,h){if(h!==!1)if(h===!0){y.tooltips=[];for(var U=0;U<y.handles;U++)y.tooltips.push(!0)}else{if(y.tooltips=d(h),y.tooltips.length!==y.handles)throw new Error("noUiSlider ("+n+"): must pass a formatter for all handles.");y.tooltips.forEach(function(Y){if(typeof Y!="boolean"&&(Kr(Y)!=="object"||typeof Y.to!="function"))throw new Error("noUiSlider ("+n+"): 'tooltips' must be passed a formatter or 'false'.")})}}function W(y,h){y.ariaFormat=h,G(h)}function q(y,h){y.format=h,G(h)}function ne(y,h){if(y.keyboardSupport=h,typeof h!="boolean")throw new Error("noUiSlider ("+n+"): 'keyboardSupport' option must be a boolean.")}function _(y,h){y.documentElement=h}function ee(y,h){if(typeof h!="string"&&h!==!1)throw new Error("noUiSlider ("+n+"): 'cssPrefix' must be a string or `false`.");y.cssPrefix=h}function Q(y,h){if(Kr(h)!=="object")throw new Error("noUiSlider ("+n+"): 'cssClasses' must be an object.");if(typeof y.cssPrefix=="string")for(var U in y.cssClasses={},h)h.hasOwnProperty(U)&&(y.cssClasses[U]=y.cssPrefix+h[U]);else y.cssClasses=h}function fe(y){var h={margin:0,limit:0,padding:0,animate:!0,animationDuration:300,ariaFormat:z,format:z},U={step:{r:!1,t:de},keyboardPageMultiplier:{r:!1,t:ce},keyboardDefaultStep:{r:!1,t:ve},start:{r:!0,t:Re},connect:{r:!0,t:kt},direction:{r:!0,t:I},snap:{r:!1,t:Je},animate:{r:!1,t:Qe},animationDuration:{r:!1,t:ft},range:{r:!0,t:Se},orientation:{r:!1,t:Ve},margin:{r:!1,t:ze},limit:{r:!1,t:vt},padding:{r:!1,t:x},behaviour:{r:!0,t:k},ariaFormat:{r:!1,t:W},format:{r:!1,t:q},tooltips:{r:!1,t:X},keyboardSupport:{r:!0,t:ne},documentElement:{r:!1,t:_},cssPrefix:{r:!0,t:ee},cssClasses:{r:!0,t:Q}},Y={connect:!1,direction:"ltr",behaviour:"tap",orientation:"horizontal",keyboardSupport:!0,cssPrefix:"noUi-",cssClasses:B,keyboardPageMultiplier:5,keyboardDefaultStep:10};y.format&&!y.ariaFormat&&(y.ariaFormat=y.format),Object.keys(U).forEach(function(Le){if(!o(y[Le])&&Y[Le]===void 0){if(U[Le].r)throw new Error("noUiSlider ("+n+"): '"+Le+"' is required.");return!0}U[Le].t(h,o(y[Le])?y[Le]:Y[Le])}),h.pips=y.pips;var Z=document.createElement("div"),me=Z.style.msTransform!==void 0,Oe=Z.style.transform!==void 0;h.transformRule=Oe?"transform":me?"msTransform":"webkitTransform";var Fe=[["left","top"],["right","bottom"]];return h.style=Fe[h.dir][h.ort],h}function le(y,h,U){var Y,Z,me,Oe,Fe,Le,ge=O(),te=$()&&E(),oe=y,ae=h.spectrum,we=[],Pe=[],yt=[],qr=0,bt={},gr=y.ownerDocument,so=h.documentElement||gr.documentElement,ao=gr.body,uh=-1,lo=0,Bs=1,Hs=2,fh=gr.dir==="rtl"||h.ort===1?0:100;function an(A,D){var H=gr.createElement("div");return D&&b(H,D),A.appendChild(H),H}function ph(A,D){var H=an(A,h.cssClasses.origin),J=an(H,h.cssClasses.handle);return an(J,h.cssClasses.touchArea),J.setAttribute("data-handle",D),h.keyboardSupport&&(J.setAttribute("tabindex","0"),J.addEventListener("keydown",function(re){return xh(re,D)})),J.setAttribute("role","slider"),J.setAttribute("aria-orientation",h.ort?"vertical":"horizontal"),D===0?b(J,h.cssClasses.handleLower):D===h.handles-1&&b(J,h.cssClasses.handleUpper),H}function mc(A,D){return!!D&&an(A,h.cssClasses.connect)}function dh(A,D){var H=an(D,h.cssClasses.connects);Z=[],(me=[]).push(mc(H,A[0]));for(var J=0;J<h.handles;J++)Z.push(ph(D,J)),yt[J]=J,me.push(mc(H,A[J+1]))}function hh(A){return b(A,h.cssClasses.target),h.dir===0?b(A,h.cssClasses.ltr):b(A,h.cssClasses.rtl),h.ort===0?b(A,h.cssClasses.horizontal):b(A,h.cssClasses.vertical),b(A,getComputedStyle(A).direction==="rtl"?h.cssClasses.textDirectionRtl:h.cssClasses.textDirectionLtr),an(A,h.cssClasses.base)}function mh(A,D){return!!h.tooltips[D]&&an(A.firstChild,h.cssClasses.tooltip)}function gc(){return oe.hasAttribute("disabled")}function ks(A){return Z[A].hasAttribute("disabled")}function Us(){Fe&&(_r("update"+K.tooltips),Fe.forEach(function(A){A&&i(A)}),Fe=null)}function vc(){Us(),Fe=Z.map(mh),Gs("update"+K.tooltips,function(A,D,H){if(Fe[D]){var J=A[D];h.tooltips[D]!==!0&&(J=h.tooltips[D].to(H[D])),Fe[D].innerHTML=J}})}function gh(){_r("update"+K.aria),Gs("update"+K.aria,function(A,D,H,J,re){yt.forEach(function(ie){var se=Z[ie],$e=co(Pe,ie,0,!0,!0,!0),De=co(Pe,ie,100,!0,!0,!0),Ue=re[ie],Ae=h.ariaFormat.to(H[ie]);$e=ae.fromStepping($e).toFixed(1),De=ae.fromStepping(De).toFixed(1),Ue=ae.fromStepping(Ue).toFixed(1),se.children[0].setAttribute("aria-valuemin",$e),se.children[0].setAttribute("aria-valuemax",De),se.children[0].setAttribute("aria-valuenow",Ue),se.children[0].setAttribute("aria-valuetext",Ae)})})}function vh(A,D,H){if(A==="range"||A==="steps")return ae.xVal;if(A==="count"){if(D<2)throw new Error("noUiSlider ("+n+"): 'values' (>= 2) required for mode 'count'.");var J=D-1,re=100/J;for(D=[];J--;)D[J]=J*re;D.push(100),A="positions"}return A==="positions"?D.map(function(ie){return ae.fromStepping(H?ae.getStep(ie):ie)}):A==="values"?H?D.map(function(ie){return ae.fromStepping(ae.getStep(ae.toStepping(ie)))}):D:void 0}function yh(A,D,H){function J(Ae,Ke){return(Ae+Ke).toFixed(7)/1}var re={},ie=ae.xVal[0],se=ae.xVal[ae.xVal.length-1],$e=!1,De=!1,Ue=0;return(H=a(H.slice().sort(function(Ae,Ke){return Ae-Ke})))[0]!==ie&&(H.unshift(ie),$e=!0),H[H.length-1]!==se&&(H.push(se),De=!0),H.forEach(function(Ae,Ke){var rt,We,yr,ei,Ut,xc,Qs,Cc,Mc,Ac,fo=Ae,br=H[Ke+1],Nc=D==="steps";if(Nc&&(rt=ae.xNumSteps[Ke]),rt||(rt=br-fo),fo!==!1)for(br===void 0&&(br=fo),rt=Math.max(rt,1e-7),We=fo;We<=br;We=J(We,rt)){for(Cc=(Ut=(ei=ae.toStepping(We))-Ue)/A,Ac=Ut/(Mc=Math.round(Cc)),yr=1;yr<=Mc;yr+=1)re[(xc=Ue+yr*Ac).toFixed(5)]=[ae.fromStepping(xc),0];Qs=H.indexOf(We)>-1?Bs:Nc?Hs:lo,!Ke&&$e&&We!==br&&(Qs=0),We===br&&De||(re[ei.toFixed(5)]=[We,Qs]),Ue=ei}}),re}function bh(A,D,H){var J=gr.createElement("div"),re=[];re[lo]=h.cssClasses.valueNormal,re[Bs]=h.cssClasses.valueLarge,re[Hs]=h.cssClasses.valueSub;var ie=[];ie[lo]=h.cssClasses.markerNormal,ie[Bs]=h.cssClasses.markerLarge,ie[Hs]=h.cssClasses.markerSub;var se=[h.cssClasses.valueHorizontal,h.cssClasses.valueVertical],$e=[h.cssClasses.markerHorizontal,h.cssClasses.markerVertical];function De(Ae,Ke){var rt=Ke===h.cssClasses.value,We=rt?re:ie;return Ke+" "+(rt?se:$e)[h.ort]+" "+We[Ae]}function Ue(Ae,Ke,rt){if((rt=D?D(Ke,rt):rt)!==uh){var We=an(J,!1);We.className=De(rt,h.cssClasses.marker),We.style[h.style]=Ae+"%",rt>lo&&((We=an(J,!1)).className=De(rt,h.cssClasses.value),We.setAttribute("data-value",Ke),We.style[h.style]=Ae+"%",We.innerHTML=H.to(Ke))}}return b(J,h.cssClasses.pips),b(J,h.ort===0?h.cssClasses.pipsHorizontal:h.cssClasses.pipsVertical),Object.keys(A).forEach(function(Ae){Ue(Ae,A[Ae][0],A[Ae][1])}),J}function Ks(){Oe&&(i(Oe),Oe=null)}function Ws(A){Ks();var D=A.mode,H=A.density||1,J=A.filter||!1,re=yh(H,D,vh(D,A.values||!1,A.stepped||!1)),ie=A.format||{to:Math.round};return Oe=oe.appendChild(bh(re,J,ie))}function yc(){var A=Y.getBoundingClientRect(),D="offset"+["Width","Height"][h.ort];return h.ort===0?A.width||Y[D]:A.height||Y[D]}function kn(A,D,H,J){var re=function(se){return!!(se=Sh(se,J.pageOffset,J.target||D))&&!(gc()&&!J.doNotReject)&&!(S(oe,h.cssClasses.tap)&&!J.doNotReject)&&!(A===ge.start&&se.buttons!==void 0&&se.buttons>1)&&(!J.hover||!se.buttons)&&(te||se.preventDefault(),se.calcPoint=se.points[h.ort],void H(se,J))},ie=[];return A.split(" ").forEach(function(se){D.addEventListener(se,re,!!te&&{passive:!0}),ie.push([se,re])}),ie}function Sh(A,D,H){var J,re,ie=A.type.indexOf("touch")===0,se=A.type.indexOf("mouse")===0,$e=A.type.indexOf("pointer")===0;if(A.type.indexOf("MSPointer")===0&&($e=!0),A.type==="mousedown"&&!A.buttons&&!A.touches)return!1;if(ie){var De=function(Ke){return Ke.target===H||H.contains(Ke.target)||Ke.target.shadowRoot&&Ke.target.shadowRoot.contains(H)};if(A.type==="touchstart"){var Ue=Array.prototype.filter.call(A.touches,De);if(Ue.length>1)return!1;J=Ue[0].pageX,re=Ue[0].pageY}else{var Ae=Array.prototype.find.call(A.changedTouches,De);if(!Ae)return!1;J=Ae.pageX,re=Ae.pageY}}return D=D||g(gr),(se||$e)&&(J=A.clientX+D.x,re=A.clientY+D.y),A.pageOffset=D,A.points=[J,re],A.cursor=se||$e,A}function bc(A){var D=100*(A-c(Y,h.ort))/yc();return D=p(D),h.dir?100-D:D}function Eh(A){var D=100,H=!1;return Z.forEach(function(J,re){if(!ks(re)){var ie=Pe[re],se=Math.abs(ie-A);(se<D||se<=D&&A>ie||se===100&&D===100)&&(H=re,D=se)}}),H}function Oh(A,D){A.type==="mouseout"&&A.target.nodeName==="HTML"&&A.relatedTarget===null&&Ys(A,D)}function wh(A,D){if(navigator.appVersion.indexOf("MSIE 9")===-1&&A.buttons===0&&D.buttonsProperty!==0)return Ys(A,D);var H=(h.dir?-1:1)*(A.calcPoint-D.startCalcPoint);Sc(H>0,100*H/D.baseSize,D.locations,D.handleNumbers)}function Ys(A,D){D.handle&&(v(D.handle,h.cssClasses.active),qr-=1),D.listeners.forEach(function(H){so.removeEventListener(H[0],H[1])}),qr===0&&(v(oe,h.cssClasses.drag),Js(),A.cursor&&(ao.style.cursor="",ao.removeEventListener("selectstart",s))),D.handleNumbers.forEach(function(H){_e("change",H),_e("set",H),_e("end",H)})}function Xs(A,D){if(D.handleNumbers.some(ks))return!1;var H;D.handleNumbers.length===1&&(H=Z[D.handleNumbers[0]].children[0],qr+=1,b(H,h.cssClasses.active)),A.stopPropagation();var J=[],re=kn(ge.move,so,wh,{target:A.target,handle:H,listeners:J,startCalcPoint:A.calcPoint,baseSize:yc(),pageOffset:A.pageOffset,handleNumbers:D.handleNumbers,buttonsProperty:A.buttons,locations:Pe.slice()}),ie=kn(ge.end,so,Ys,{target:A.target,handle:H,listeners:J,doNotReject:!0,handleNumbers:D.handleNumbers}),se=kn("mouseout",so,Oh,{target:A.target,handle:H,listeners:J,doNotReject:!0,handleNumbers:D.handleNumbers});J.push.apply(J,re.concat(ie,se)),A.cursor&&(ao.style.cursor=getComputedStyle(A.target).cursor,Z.length>1&&b(oe,h.cssClasses.drag),ao.addEventListener("selectstart",s,!1)),D.handleNumbers.forEach(function($e){_e("start",$e)})}function Th(A){A.stopPropagation();var D=bc(A.calcPoint),H=Eh(D);if(H===!1)return!1;h.events.snap||f(oe,h.cssClasses.tap,h.animationDuration),vr(H,D,!0,!0),Js(),_e("slide",H,!0),_e("update",H,!0),_e("change",H,!0),_e("set",H,!0),h.events.snap&&Xs(A,{handleNumbers:[H]})}function Ph(A){var D=bc(A.calcPoint),H=ae.getStep(D),J=ae.fromStepping(H);Object.keys(bt).forEach(function(re){re.split(".")[0]==="hover"&&bt[re].forEach(function(ie){ie.call(Le,J)})})}function xh(A,D){if(gc()||ks(D))return!1;var H=["Left","Right"],J=["Down","Up"],re=["PageDown","PageUp"],ie=["Home","End"];h.dir&&!h.ort?H.reverse():h.ort&&!h.dir&&(J.reverse(),re.reverse());var se,$e=A.key.replace("Arrow",""),De=$e===re[0],Ue=$e===re[1],Ae=$e===J[0]||$e===H[0]||De,Ke=$e===J[1]||$e===H[1]||Ue,rt=$e===ie[0],We=$e===ie[1];if(!(Ae||Ke||rt||We))return!0;if(A.preventDefault(),Ke||Ae){var yr=h.keyboardPageMultiplier,ei=Ae?0:1,Ut=Pc(D)[ei];if(Ut===null)return!1;Ut===!1&&(Ut=ae.getDefaultStep(Pe[D],Ae,h.keyboardDefaultStep)),(Ue||De)&&(Ut*=yr),Ut=Math.max(Ut,1e-7),Ut*=Ae?-1:1,se=we[D]+Ut}else se=We?h.spectrum.xVal[h.spectrum.xVal.length-1]:h.spectrum.xVal[0];return vr(D,ae.toStepping(se),!0,!0),_e("slide",D),_e("update",D),_e("change",D),_e("set",D),!1}function Ch(A){A.fixed||Z.forEach(function(D,H){kn(ge.start,D.children[0],Xs,{handleNumbers:[H]})}),A.tap&&kn(ge.start,Y,Th,{}),A.hover&&kn(ge.move,Y,Ph,{hover:!0}),A.drag&&me.forEach(function(D,H){if(D!==!1&&H!==0&&H!==me.length-1){var J=Z[H-1],re=Z[H],ie=[D];b(D,h.cssClasses.draggable),A.fixed&&(ie.push(J.children[0]),ie.push(re.children[0])),ie.forEach(function(se){kn(ge.start,se,Xs,{handles:[J,re],handleNumbers:[H-1,H]})})}})}function Gs(A,D){bt[A]=bt[A]||[],bt[A].push(D),A.split(".")[0]==="update"&&Z.forEach(function(H,J){_e("update",J)})}function Mh(A){return A===K.aria||A===K.tooltips}function _r(A){var D=A&&A.split(".")[0],H=D?A.substring(D.length):A;Object.keys(bt).forEach(function(J){var re=J.split(".")[0],ie=J.substring(re.length);D&&D!==re||H&&H!==ie||Mh(ie)&&H!==ie||delete bt[J]})}function _e(A,D,H){Object.keys(bt).forEach(function(J){var re=J.split(".")[0];A===re&&bt[J].forEach(function(ie){ie.call(Le,we.map(h.format.to),D,we.slice(),H||!1,Pe.slice(),Le)})})}function co(A,D,H,J,re,ie){var se;return Z.length>1&&!h.events.unconstrained&&(J&&D>0&&(se=ae.getAbsoluteDistance(A[D-1],h.margin,0),H=Math.max(H,se)),re&&D<Z.length-1&&(se=ae.getAbsoluteDistance(A[D+1],h.margin,1),H=Math.min(H,se))),Z.length>1&&h.limit&&(J&&D>0&&(se=ae.getAbsoluteDistance(A[D-1],h.limit,0),H=Math.min(H,se)),re&&D<Z.length-1&&(se=ae.getAbsoluteDistance(A[D+1],h.limit,1),H=Math.max(H,se))),h.padding&&(D===0&&(se=ae.getAbsoluteDistance(0,h.padding[0],0),H=Math.max(H,se)),D===Z.length-1&&(se=ae.getAbsoluteDistance(100,h.padding[1],1),H=Math.min(H,se))),!((H=p(H=ae.getStep(H)))===A[D]&&!ie)&&H}function Zs(A,D){var H=h.ort;return(H?D:A)+", "+(H?A:D)}function Sc(A,D,H,J){var re=H.slice(),ie=[!A,A],se=[A,!A];J=J.slice(),A&&J.reverse(),J.length>1?J.forEach(function(De,Ue){var Ae=co(re,De,re[De]+D,ie[Ue],se[Ue],!1);Ae===!1?D=0:(D=Ae-re[De],re[De]=Ae)}):ie=se=[!0];var $e=!1;J.forEach(function(De,Ue){$e=vr(De,H[De]+D,ie[Ue],se[Ue])||$e}),$e&&J.forEach(function(De){_e("update",De),_e("slide",De)})}function Ec(A,D){return h.dir?100-A-D:A}function Ah(A,D){Pe[A]=D,we[A]=ae.fromStepping(D);var H="translate("+Zs(10*(Ec(D,0)-fh)+"%","0")+")";Z[A].style[h.transformRule]=H,Oc(A),Oc(A+1)}function Js(){yt.forEach(function(A){var D=Pe[A]>50?-1:1,H=3+(Z.length+D*A);Z[A].style.zIndex=H})}function vr(A,D,H,J,re){return re||(D=co(Pe,A,D,H,J,!1)),D!==!1&&(Ah(A,D),!0)}function Oc(A){if(me[A]){var D=0,H=100;A!==0&&(D=Pe[A-1]),A!==me.length-1&&(H=Pe[A]);var J=H-D,re="translate("+Zs(Ec(D,J)+"%","0")+")",ie="scale("+Zs(J/100,"1")+")";me[A].style[h.transformRule]=re+" "+ie}}function wc(A,D){return A===null||A===!1||A===void 0?Pe[D]:(typeof A=="number"&&(A=String(A)),A=h.format.from(A),(A=ae.toStepping(A))===!1||isNaN(A)?Pe[D]:A)}function uo(A,D,H){var J=d(A),re=Pe[0]===void 0;D=D===void 0||!!D,h.animate&&!re&&f(oe,h.cssClasses.tap,h.animationDuration),yt.forEach(function(se){vr(se,wc(J[se],se),!0,!1,H)});for(var ie=yt.length===1?0:1;ie<yt.length;++ie)yt.forEach(function(se){vr(se,Pe[se],!0,!0,H)});Js(),yt.forEach(function(se){_e("update",se),J[se]!==null&&D&&_e("set",se)})}function Nh(A){uo(h.start,A)}function Rh(A,D,H,J){if(!((A=Number(A))>=0&&A<yt.length))throw new Error("noUiSlider ("+n+"): invalid handle number, got: "+A);vr(A,wc(D,A),!0,!0,J),_e("update",A),H&&_e("set",A)}function Tc(){var A=we.map(h.format.to);return A.length===1?A[0]:A}function Ih(){for(var A in _r(K.aria),_r(K.tooltips),h.cssClasses)h.cssClasses.hasOwnProperty(A)&&v(oe,h.cssClasses[A]);for(;oe.firstChild;)oe.removeChild(oe.firstChild);delete oe.noUiSlider}function Pc(A){var D=Pe[A],H=ae.getNearbySteps(D),J=we[A],re=H.thisStep.step,ie=null;if(h.snap)return[J-H.stepBefore.startValue||null,H.stepAfter.startValue-J||null];re!==!1&&J+re>H.stepAfter.startValue&&(re=H.stepAfter.startValue-J),ie=J>H.thisStep.startValue?H.thisStep.step:H.stepBefore.step!==!1&&J-H.stepBefore.highestStep,D===100?re=null:D===0&&(ie=null);var se=ae.countStepDecimals();return re!==null&&re!==!1&&(re=Number(re.toFixed(se))),ie!==null&&ie!==!1&&(ie=Number(ie.toFixed(se))),[ie,re]}function $h(){return yt.map(Pc)}function Lh(A,D){var H=Tc(),J=["margin","limit","padding","range","animate","snap","step","format","pips","tooltips"];J.forEach(function(ie){A[ie]!==void 0&&(U[ie]=A[ie])});var re=fe(U);J.forEach(function(ie){A[ie]!==void 0&&(h[ie]=re[ie])}),ae=re.spectrum,h.margin=re.margin,h.limit=re.limit,h.padding=re.padding,h.pips?Ws(h.pips):Ks(),h.tooltips?vc():Us(),Pe=[],uo(A.start||H,D)}function Dh(){Y=hh(oe),dh(h.connect,Y),Ch(h.events),uo(h.start),h.pips&&Ws(h.pips),h.tooltips&&vc(),gh()}return Dh(),Le={destroy:Ih,steps:$h,on:Gs,off:_r,get:Tc,set:uo,setHandle:Rh,reset:Nh,__moveHandles:function(A,D,H){Sc(A,D,Pe,H)},options:U,updateOptions:Lh,target:oe,removePips:Ks,removeTooltips:Us,getTooltips:function(){return Fe},getOrigins:function(){return Z},pips:Ws}}function pe(y,h){if(!y||!y.nodeName)throw new Error("noUiSlider ("+n+"): create requires a single element, got: "+y);if(y.noUiSlider)throw new Error("noUiSlider ("+n+"): Slider was already initialized.");var U=le(y,fe(h),h);return y.noUiSlider=U,U}return{__spectrum:L,version:n,cssClasses:B,create:pe}}()}),bd={name:"Slider",emits:["input","update:modelValue","update","change"],props:{value:{validator:function(e){return t=>typeof t=="number"||t instanceof Array||t==null||t===!1},required:!1},modelValue:{validator:function(e){return t=>typeof t=="number"||t instanceof Array||t==null||t===!1},required:!1},id:{type:[String,Number],required:!1,default:"slider"},disabled:{type:Boolean,required:!1,default:!1},min:{type:Number,required:!1,default:0},max:{type:Number,required:!1,default:100},step:{type:Number,required:!1,default:1},orientation:{type:String,required:!1,default:"horizontal"},direction:{type:String,required:!1,default:"ltr"},tooltips:{type:Boolean,required:!1,default:!0},options:{type:Object,required:!1,default:()=>({})},merge:{type:Number,required:!1,default:-1},height:{type:String,required:!1,default:"300px"},format:{type:[Object,Function,Boolean],required:!1,default:null}},setup(e,t){const n=function(s,a,l){var c=ci(s),u=c.value,f=c.modelValue,p=a.expose!==void 0?f:u,d=Pn(p.value);if(Jl(p.value))throw new Error("Slider v-model must be a Number or Array");if(Array.isArray(p.value)&&p.value.length==0)throw new Error("Slider v-model must not be an empty array");return{value:p,initialValue:d}}(e,t),r=function(s,a,l){var c=ci(s),u=c.orientation,f=c.height;return{style:xn(function(){return u.value=="vertical"?{height:f.value}:[]})}}(e),i=function(s,a,l){var c=ci(s),u=c.format,f=c.step,p=l.value,d=xn(function(){return u&&u.value?typeof u.value=="function"?{to:u.value}:yd(Object.assign({},u.value)):yd({decimals:f.value>=0?0:2})});return{tooltipsFormat:xn(function(){return Array.isArray(p.value)?p.value.map(function(m){return d.value}):d.value}),tooltipsMerge:function(m,b,v){var S=getComputedStyle(m).direction==="rtl",g=m.noUiSlider.options.direction==="rtl",O=m.noUiSlider.options.orientation==="vertical",E=m.noUiSlider.getTooltips(),$=m.noUiSlider.getOrigins();E.forEach(function(R,T){R&&$[T].appendChild(R)}),m.noUiSlider.on("update",function(R,T,P,N,j){var V=[[]],F=[[]],C=[[]],w=0;E[0]&&(V[0][0]=0,F[0][0]=j[0],C[0][0]=d.value.to(parseFloat(R[0])));for(var M=1;M<j.length;M++)(!E[M]||j[M]-j[M-1]>b)&&(V[++w]=[],C[w]=[],F[w]=[]),E[M]&&(V[w].push(M),C[w].push(d.value.to(parseFloat(R[M]))),F[w].push(j[M]));V.forEach(function(L,z){for(var B=L.length,K=0;K<B;K++){var G=L[K];if(K===B-1){var de=0;F[z].forEach(function(Re){de+=1e3-10*Re});var ce=O?"bottom":"right",ve=g?0:B-1,Se=1e3-10*F[z][ve];de=(S&&!O?100:0)+de/B-Se,E[G].innerHTML=C[z].join(v),E[G].style.display="block",E[G].style[ce]=de+"%"}else E[G].style.display="none"}})})}}}(e,0,{value:n.value}),o=function(s,a,l){var c=ci(s),u=c.options,f=c.orientation,p=c.direction,d=c.tooltips,m=c.step,b=c.min,v=c.max,S=c.merge,g=c.format,O=c.id,E=c.disabled,$=l.value,R=l.initialValue,T=l.tooltipsFormat,P=l.tooltipsMerge,N=l.style,j=Pn(null),V=Pn(null),F=Pn(!1),C=xn(function(){var ce={cssPrefix:"slider-",orientation:f.value,direction:p.value,tooltips:!!d.value&&T.value,connect:"lower",start:Jl($.value)?b.value:$.value,range:{min:b.value,max:v.value}};return m.value>0&&(ce.step=m.value),Array.isArray($.value)&&(ce.connect=!0),ce}),w=xn(function(){var ce={id:O.value,style:N.value};return E.value&&(ce.disabled=!0),ce}),M=xn(function(){return Array.isArray($.value)}),L=function(){var ce=V.value.get();return Array.isArray(ce)?ce.map(function(ve){return parseFloat(ve)}):parseFloat(ce)},z=function(ce){var ve=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1];V.value.set(ce,ve)},B=function(ce){a.emit("input",ce),a.emit("update:modelValue",ce),a.emit("update",ce)},K=function(){V.value=m0.create(j.value,Object.assign({},C.value,u.value)),d.value&&M.value&&S.value>=0&&P(j.value,S.value," - "),V.value.on("set",function(ce){a.emit("change",L())}),V.value.on("update",function(ce){F.value&&B(L())}),F.value=!0},G=function(){V.value.off(),V.value.destroy(),V.value=null},de=function(){F.value=!1,G(),K()};return Pr(K),vi(G),lt(M,de,{immediate:!1}),lt(b,de,{immediate:!1}),lt(v,de,{immediate:!1}),lt(m,de,{immediate:!1}),lt(f,de,{immediate:!1}),lt(p,de,{immediate:!1}),lt(d,de,{immediate:!1}),lt(g,de,{immediate:!1,deep:!0}),lt(S,de,{immediate:!1}),lt(u,de,{immediate:!1,deep:!0}),lt($,function(ce){var ve,Se,Re;Jl(ce)?z(b.value,!1):(M.value&&(ve=ce,Se=L(),Re=Se.slice().sort(),ve.length!==Se.length||!ve.slice().sort().every(function(Je,Qe){return Je===Re[Qe]}))||!M.value&&ce!=L())&&z(ce,!1)},{deep:!0}),{slider:j,slider$:V,isRange:M,sliderProps:w,init:K,destroy:G,refresh:de,update:z,reset:function(){B(R.value)}}}(e,t,{value:n.value,initialValue:n.initialValue,tooltipsFormat:i.tooltipsFormat,tooltipsMerge:i.tooltipsMerge,style:r.style});return po(po(po({},r),i),o)}};bd.render=function(e,t,n,r,i,o){return Ie(),ke("div",Ei(e.sliderProps,{ref:"slider"}),null,16)},bd.__file="src/Slider.vue";var Ql={d:(e,t)=>{for(var n in t)Ql.o(t,n)&&!Ql.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)},Wr={};Ql.d(Wr,{vX:()=>dr,KV:()=>Sd,_b:()=>Yr,d2:()=>gt,ZP:()=>v0});class gt{static tokenize(t){var n=t.trim(),r=[],i=[[-2,/^([a-zA-Z_$][a-zA-Z_$1-9]*)\(\s*\)/],[-1,/^([a-zA-Z_$][a-zA-Z_$1-9]*)(\()/],[-11,/^([\<]{2}|[\>]{2,3}|[\*]{1,2}|[\?]{1,2}|[\&]{1,2}|[\|]{1,2}|[\=]{2,3}|[\!][\=]{1,2}|[\>\<][\=]|[\+\-\/\%\|\^\>\<\=\,\:\.])/],[-12,/^([\!\~])/],[-4,/^([-+]{0,1}(?:(?:[0-9]+[.][0-9]+)|(?:[0-9]+)))/,f=>parseFloat(f)],[-4,/^'((?:(\\')|[^'])*)'/],[-4,/^"((?:(\\")|[^"])*)"/],[-5,/^([a-zA-Z_$][a-zA-Z_$1-9]*)/],[-6,/^([\(\[\{])/],[-7,/^([\)\]\}])/]],o=0;e:for(;n!=""&&o<99;){n=n.trimLeft(),o++;for(var s=0;s<i.length;s++){let f=i[s],p=f[1];if(p.test(n)){var a=p.exec(n);if(a!=null){let d=a[0],m=a[1],b=d.length;a[2]&&(b-=a[2].length),n=n.substr(b),f[2]&&(m=f[2](m)),r.push([f[0],m]);continue e}}}}let l,c={NaN:[-4,NaN],undefined:[-4,void 0],void:[-12,"void"],typeof:[-12,"typeof"],null:[-4,null],true:[-4,!0],false:[-4,!1]};for(let f=0;f<r.length;f++)if(l=r[f],l[0]==-5&&c.hasOwnProperty(l[1])){let p=c[l[1]];p&&(l[0]=p[0],l[1]=p[1])}let u=[];for(let f=0;f<r.length;f++)l=r[f],l[0]==-6&&u.push(l[1]),l[0]==-7&&u.pop(),l[0]==-5&&u[u.length-1]=="{"&&(l[0]=-4);for(let f=0;f<r.length;f++){l=r[f];let p=f==0?null:r[f-1];l[0]!=-11||l[1]!="-"&&l[1]!="+"||p!=null&&!gt.isOperator(p)&&p[0]!=-6&&p[1]!=","||(l[0]=-12)}return r}static isInfix(t){return t[0]==-11}static isPrefix(t){return t[0]==-12}static isOperator(t){return t[0]==-11||t[0]==-12}static isFunctionCall(t){return t[0]==-1||t[0]==-2}static isOperatorOrFunctionCall(t){return gt.isOperator(t)||gt.isFunctionCall(t)}static isLiteral(t){return t[0]==-4}}const It=class{static getPrecedence(t){if(gt.isFunctionCall(t))return 100;if(gt.isOperator(t))return It.precendenceHash[t[1]]+1;if(gt.isLiteral(t)||t[0]==-5)return 100;throw new Error("Could not get precedence of token:"+JSON.stringify(t))}static isRightAssociative(t){return It.rightAssociative.indexOf(t[1])>-1}static createPrecendenceHash(t){It.precendenceHash===null&&(It.precendenceHash={},It.precendence.forEach(function(n,r){n.forEach?n.forEach(function(i){It.precendenceHash[i]=r}):It.precendenceHash[n]=r}))}static parse(t){It.createPrecendenceHash();let n,r=[],i=0;for(let o=0;o<t.length;o++)n=t[o],o==0||t[o-1],n[0]!=-12||n[1]!="-"&&n[1]!="+"||(n[1]=="+"?t.splice(o,1):n[1]="+/"+n[1]);for(let o=0;o<t.length;o++)if(n=t[o],n[0]==-6){let s=o==0?null:t[o-1],a=s!=null&&!gt.isOperator(s)&&s[0]!=-6&&s[1]!=",";n[1]=="["&&a&&n.push([-11,"."])}for(let o=0;o<t.length&&(i++,!(i>1e3));o++){let s=t[o];if(gt.isOperatorOrFunctionCall(s)){let a,l=It.getPrecedence(s),c=0,u=0;for(c=0;o+c<t.length-1;c++){if(a=t[o+c+1],a[0]==-7){if(u--,u<0)break;continue}if(a[0]==-6){u++;continue}if(u>0)continue;if(a==null){console.log("Warning: ran too long. This should not happen");break}let f=It.getPrecedence(a,t[o+c]);if(!(l<f)){if(l!=f){if(l>f)break;break}if(!It.isRightAssociative(a)||r.indexOf(a)>=0)break}}if(c>0){let f=t.splice(o,1);r.push(f[0]),t.splice(o+c,0,f[0]),o--}}}return t.filter(o=>!(o[1]=="("||o[1]==")"))}};let Yr=It;Sr(Yr,"precendence",[",",["?",":"],"??","||","&&","|","^","&",["==","!=","===","!=="],["<",">","<=",">="],["<<",">>",">>>"],["+","-"],["*","/","%"],"**",["!","~","+/-","+/+","typeof","void"],"."]),Sr(Yr,"rightAssociative",["?",":","**","!","~","+/-","+/+","typeof","void"]),Sr(Yr,"precendenceHash",null);class Ms extends Array{toArray(){return this.slice(0)}}class g0{constructor(t,n){this.a=t,this.b=n}}const Gt=class{static setGlobalContext(t,n="global"){Gt.contexts[n]=t}static getVariable(t,n,r=null){return n.hasOwnProperty(t)?n[t]:r!=null&&Gt.contexts.hasOwnProperty(r)&&Gt.contexts[r].hasOwnProperty(t)?Gt.contexts[r][t]:void 0}static evaluate(t,n={},r=null){let i,o,s=[];for(let a=0;a<t.length;a++){let l=t[a],c=l[0],u=l[1];if(c==-4)s.push(u);else if(gt.isInfix(l)){o=s.pop(),i=s.pop();let f=Gt.ops[u](i,o);s.push(f)}else if(gt.isPrefix(l))s.push(Gt.ops[u](s.pop()));else if(l[0]==-5){if(a<t.length-1&&t[a+1][1]=="."){s.push(l[1]);continue}let f=l[1];s.push(Gt.getVariable(f,n,r))}else if(c==-6)s.push(l);else if(c==-7){let f,p=[];if(i=s.pop(),i[0]==-6?f=i:(f=s.pop(),p=i instanceof Ms?i.toArray():[i]),u=="]"){if(f[1]!="[")throw Error("Bracket mismatch");if(f[2]){let d=f[2],m=d[1];gt.isInfix(d)&&s.push(Gt.ops[m](s.pop(),p[0]))}else s.push(p)}else if(u=="}"){if(f[1]!="{")throw Error("Curly bracket mismatch");let d={};p.forEach(m=>{d[m.a]=m.b}),s.push(d)}}else if(gt.isFunctionCall(l)){let f=l[1],p=Gt.getVariable(f,n,r);if(p==null)throw new Error("Function does not exist: "+f);if(l[0]==-2)s.push(p());else{let d=s.pop(),m=[];d instanceof Ms?m=d:m.push(d),s.push(p(...m))}}}return s[0]}};let dr=Gt;Sr(dr,"ops",{",":(t,n)=>t instanceof Ms?(t.push(n),t):new Ms(t,n),":":(t,n)=>new g0(t,n),"?":(t,n)=>t?n.a:n.b,"??":(t,n)=>t!=null?t:n,"||":(t,n)=>t||n,"&&":(t,n)=>t&&n,"|":(t,n)=>t|n,"^":(t,n)=>t^n,"&":(t,n)=>t&n,"==":(t,n)=>t==n,"!=":(t,n)=>t!=n,"===":(t,n)=>t===n,"!==":(t,n)=>t!==n,"<":(t,n)=>t<n,">":(t,n)=>t>n,"<=":(t,n)=>t<=n,">=":(t,n)=>t>=n,"<<":(t,n)=>t<<n,">>":(t,n)=>t>>n,">>>":(t,n)=>t>>>n,"+":(t,n)=>t+n,"-":(t,n)=>t-n,"*":(t,n)=>t*n,"/":(t,n)=>t/n,"%":(t,n)=>t%n,"**":(t,n)=>t**n,"!":t=>!t,"~":t=>~t,"+/-":t=>-t,"+/+":t=>t,typeof:t=>typeof t,".":(t,n)=>t[n],void:t=>{}}),Sr(dr,"contexts",{});class Sd{constructor(t=""){this.setExpression(t),this.extra={functions:{},variables:{}}}setExpression(t=""){this.expression=t,this.tokens=void 0,this.rpn=void 0}tokenize(){return this.tokens==null&&(this.tokens=gt.tokenize(this.expression)),this.tokens}parse(){return this.rpn==null&&(this.rpn=Yr.parse(this.tokenize())),this.rpn}setLocalContext(t){this.localContext=t}static setGlobalContext(t,n="global"){dr.setGlobalContext(t,n)}evaluate(t,n){return t!==void 0&&(typeof t=="string"?n=t:this.setLocalContext(t)),n==null&&dr.contexts.hasOwnProperty("global")&&(n="global"),dr.evaluate(this.parse(),this.localContext,n)}}const v0=Sd;Wr.vX;Wr.KV;Wr._b;Wr.d2;Wr.ZP;if(typeof Zi=="undefined")var Zi=window;var y0=Object.create,ql=Object.defineProperty,b0=Object.getPrototypeOf,S0=Object.prototype.hasOwnProperty,E0=Object.getOwnPropertyNames,O0=Object.getOwnPropertyDescriptor,w0=e=>ql(e,"__esModule",{value:!0}),Vt=(e,t)=>()=>(t||(t={exports:{}},e(t.exports,t)),t.exports),T0=(e,t,n)=>{if(w0(e),t&&typeof t=="object"||typeof t=="function")for(let r of E0(t))!S0.call(e,r)&&r!=="default"&&ql(e,r,{get:()=>t[r],enumerable:!(n=O0(t,r))||n.enumerable});return e},P0=e=>e&&e.__esModule?e:T0(ql(e!=null?y0(b0(e)):{},"default",{value:e,enumerable:!0}),e),Ed=Vt((e,t)=>{function n(r){var i=typeof r;return r!=null&&(i=="object"||i=="function")}t.exports=n}),x0=Vt((e,t)=>{var n=typeof Zi=="object"&&Zi&&Zi.Object===Object&&Zi;t.exports=n}),Od=Vt((e,t)=>{var n=x0(),r=typeof self=="object"&&self&&self.Object===Object&&self,i=n||r||Function("return this")();t.exports=i}),C0=Vt((e,t)=>{var n=Od(),r=function(){return n.Date.now()};t.exports=r}),wd=Vt((e,t)=>{var n=Od(),r=n.Symbol;t.exports=r}),M0=Vt((e,t)=>{var n=wd(),r=Object.prototype,i=r.hasOwnProperty,o=r.toString,s=n?n.toStringTag:void 0;function a(l){var c=i.call(l,s),u=l[s];try{l[s]=void 0;var f=!0}catch(d){}var p=o.call(l);return f&&(c?l[s]=u:delete l[s]),p}t.exports=a}),A0=Vt((e,t)=>{var n=Object.prototype,r=n.toString;function i(o){return r.call(o)}t.exports=i}),N0=Vt((e,t)=>{var n=wd(),r=M0(),i=A0(),o="[object Null]",s="[object Undefined]",a=n?n.toStringTag:void 0;function l(c){return c==null?c===void 0?s:o:a&&a in Object(c)?r(c):i(c)}t.exports=l}),R0=Vt((e,t)=>{function n(r){return r!=null&&typeof r=="object"}t.exports=n}),I0=Vt((e,t)=>{var n=N0(),r=R0(),i="[object Symbol]";function o(s){return typeof s=="symbol"||r(s)&&n(s)==i}t.exports=o}),$0=Vt((e,t)=>{var n=Ed(),r=I0(),i=0/0,o=/^\s+|\s+$/g,s=/^[-+]0x[0-9a-f]+$/i,a=/^0b[01]+$/i,l=/^0o[0-7]+$/i,c=parseInt;function u(f){if(typeof f=="number")return f;if(r(f))return i;if(n(f)){var p=typeof f.valueOf=="function"?f.valueOf():f;f=n(p)?p+"":p}if(typeof f!="string")return f===0?f:+f;f=f.replace(o,"");var d=a.test(f);return d||l.test(f)?c(f.slice(2),d?2:8):s.test(f)?i:+f}t.exports=u}),L0=Vt((e,t)=>{var n=Ed(),r=C0(),i=$0(),o="Expected a function",s=Math.max,a=Math.min;function l(c,u,f){var p,d,m,b,v,S,g=0,O=!1,E=!1,$=!0;if(typeof c!="function")throw new TypeError(o);u=i(u)||0,n(f)&&(O=!!f.leading,E="maxWait"in f,m=E?s(i(f.maxWait)||0,u):m,$="trailing"in f?!!f.trailing:$);function R(M){var L=p,z=d;return p=d=void 0,g=M,b=c.apply(z,L),b}function T(M){return g=M,v=setTimeout(j,u),O?R(M):b}function P(M){var L=M-S,z=M-g,B=u-L;return E?a(B,m-z):B}function N(M){var L=M-S,z=M-g;return S===void 0||L>=u||L<0||E&&z>=m}function j(){var M=r();if(N(M))return V(M);v=setTimeout(j,P(M))}function V(M){return v=void 0,$&&p?R(M):(p=d=void 0,b)}function F(){v!==void 0&&clearTimeout(v),g=0,p=S=d=v=void 0}function C(){return v===void 0?b:V(r())}function w(){var M=r(),L=N(M);if(p=arguments,d=this,S=M,L){if(v===void 0)return T(S);if(E)return clearTimeout(v),v=setTimeout(j,u),R(S)}return v===void 0&&(v=setTimeout(j,u)),b}return w.cancel=F,w.flush=C,w}t.exports=l}),D0=P0(L0()),F0=D0.default;function j0(){let e=[],t=[];function n(g,O){g.forEach(E=>{E.call(null,O)})}this.onSingleTap=function(g){typeof g=="function"&&!e.includes(g)&&e.push(g)},this.onDoubleTap=function(g){typeof g=="function"&&!t.includes(g)&&t.push(g)},this.attach=function(g){if(!(g instanceof Element)){console.error("TapDetector.attach: arg must be an Element");return}g.addEventListener("touchstart",c),g.addEventListener("touchmove",f),g.addEventListener("touchend",u),g.addEventListener("mousedown",p),g.addEventListener("mouseup",d),g.addEventListener("mousemove",m)},this.detach=function(g){g.removeEventListener("touchstart",c),g.removeEventListener("touchmove",f),g.removeEventListener("touchend",u),g.removeEventListener("mousedown",p),g.removeEventListener("mouseup",d),g.removeEventListener("mousemove",m)};let r=!1,i=0,o=0,s=0,a=0,l=0;function c(g){r=!0,g.touches.length===1&&b(g.touches[0].clientX,g.touches[0].clientY)}function u(g){g.touches.length===0&&v()}function f(g){g.touches.length===1&&S(g.touches[0].clientX,g.touches[0].clientY)}function p(g){r||b(g.clientX,g.clientY)}function d(g){r||v()}function m(g){r||g.button===0&&S(g.clientX,g.clientY)}function b(g,O){a=g,l=O,s=0}function v(){let g=Date.now();s<10&&(g-i<300?o+=1:o=1,i=Date.now(),n(e,{clientX:a,clientY:l}),o===2&&(n(t,{clientX:a,clientY:l}),o=0)),s=0}function S(g,O){let E=a-g,$=l-O;s+=Math.sqrt(E*E+$*$),a=g,l=O}}const V0={props:{minScale:{type:Number,default:1},maxScale:{type:Number,default:5},zoomed:{type:Boolean,default:!1},resetTrigger:{type:Number,default:1e5},aspectRatio:{type:Number,default:1},backgroundColor:{type:String,default:"transparent"},pivot:{type:String,default:"cursor"},zoomingElastic:{type:Boolean,default:!0},limitTranslation:{type:Boolean,default:!0},doubleClickToZoom:{type:Boolean,default:!0},mouseWheelToZoom:{type:Boolean,default:!0},lockPanOnNoScale:{type:Boolean,default:!0}},data(){return{containerWidth:1,containerHeight:1,containerLeft:0,containerTop:0,translateX:0,animTranslateX:0,translateY:0,animTranslateY:0,scale:1,animScale:1,lastFullWheelTime:0,lastWheelTime:0,lastWheelDirection:"y",isPointerDown:!1,pointerPosX:-1,pointerPosY:-1,twoFingerInitDist:0,panLocked:!0,raf:null,tapDetector:null}},computed:{wrapperStyle(){let e=this.containerWidth*this.animTranslateX,t=this.containerHeight*this.animTranslateY;return{transform:[`translate(${e}px, ${t}px)`,`scale(${this.animScale})`].join(" ")}}},watch:{scale(e){e!==1&&(this.$emit("update:zoomed",!0),this.panLocked=!1)},resetTrigger:"reset"},mounted(){this.tapDetector=new j0,this.tapDetector.attach(this.$refs.root),this.doubleClickToZoom&&this.tapDetector.onDoubleTap(this.onDoubleTap),window.addEventListener("resize",this.onWindowResize),this.onWindowResize(),this.refreshContainerPos(),this.loop()},beforeUnmount(){this.tapDetector.detach(this.$refs.root),window.removeEventListener("resize",this.onWindowResize),window.cancelAnimationFrame(this.raf)},methods:{reset(){this.scale=1,this.panLocked=!0,this.translateX=0,this.translateY=0},zoomIn(e=2){this.tryToScale(e),this.onInteractionEnd()},zoomOut(e=.5){this.tryToScale(e),this.onInteractionEnd()},tryToScale(e){let t=this.scale*e;if(this.zoomingElastic){if(t<this.minScale||t>this.maxScale){let n=Math.log2(e);n*=.2,e=Math.pow(2,n),t=this.scale*e}}else t<this.minScale?t=this.minScale:t>this.maxScale&&(t=this.maxScale);if(e=t/this.scale,this.scale=t,this.pivot!=="image-center"){let n=(this.pointerPosX-this.containerLeft)/this.containerWidth,r=(this.pointerPosY-this.containerTop)/this.containerHeight;this.translateX=(.5+this.translateX-n)*e+n-.5,this.translateY=(.5+this.translateY-r)*e+r-.5}},setPointerPosCenter(){this.pointerPosX=this.containerLeft+this.containerWidth/2,this.pointerPosY=this.containerTop+this.containerHeight/2},onPointerMove(e,t){if(this.isPointerDown){let n=e-this.pointerPosX,r=t-this.pointerPosY;(!this.lockPanOnNoScale||!this.panLocked)&&(this.translateX+=n/this.containerWidth,this.translateY+=r/this.containerHeight)}this.pointerPosX=e,this.pointerPosY=t},onInteractionEnd:F0(function(){this.limit(),this.panLocked=this.scale===1,this.$emit("update:zoomed",!this.panLocked)},100),limit(){if(this.scale<this.minScale?this.scale=this.minScale:this.scale>this.maxScale&&this.tryToScale(this.maxScale/this.scale),this.limitTranslation){let e=this.calcTranslateLimit();Math.abs(this.translateX)>e.x&&(this.translateX*=e.x/Math.abs(this.translateX)),Math.abs(this.translateY)>e.y&&(this.translateY*=e.y/Math.abs(this.translateY))}},calcTranslateLimit(){if(this.getMarginDirection()==="y"){let e=this.containerWidth/this.aspectRatio/this.containerHeight,t=(this.scale*e-1)/2;return t<0&&(t=0),{x:(this.scale-1)/2,y:t}}else{let e=this.containerHeight*this.aspectRatio/this.containerWidth,t=(this.scale*e-1)/2;return t<0&&(t=0),{x:t,y:(this.scale-1)/2}}},getMarginDirection(){return this.containerWidth/this.containerHeight>this.aspectRatio?"x":"y"},onDoubleTap(e){this.scale===1?(e.clientX>0&&(this.pointerPosX=e.clientX,this.pointerPosY=e.clientY),this.tryToScale(Math.min(3,this.maxScale))):this.reset(),this.onInteractionEnd()},onWindowResize(){let e=window.getComputedStyle(this.$refs.root);this.containerWidth=parseFloat(e.width),this.containerHeight=parseFloat(e.height),this.setPointerPosCenter(),this.limit()},refreshContainerPos(){let e=this.$refs.root.getBoundingClientRect();this.containerLeft=e.left,this.containerTop=e.top},loop(){this.animScale=this.gainOn(this.animScale,this.scale),this.animTranslateX=this.gainOn(this.animTranslateX,this.translateX),this.animTranslateY=this.gainOn(this.animTranslateY,this.translateY),this.raf=window.requestAnimationFrame(this.loop)},gainOn(e,t){let n=(t-e)*.3;return Math.abs(n)>1e-5?e+n:t},onMouseWheel(e){if(!this.mouseWheelToZoom)return;e.preventDefault(),e.detail&&(e.wheelDelta=e.detail*-10);let t=Date.now();Math.abs(e.wheelDelta)===120?t-this.lastFullWheelTime>50&&(this.onMouseWheelDo(e.wheelDelta),this.lastFullWheelTime=t):(t-this.lastWheelTime>50&&typeof e.deltaX=="number"&&(this.lastWheelDirection=e.detail==0&&Math.abs(e.deltaX)>Math.abs(e.deltaY)?"x":"y",this.lastWheelDirection==="x"&&this.$emit("swipe",e.deltaX>0?"left":"right")),this.lastWheelDirection==="y"&&this.onMouseWheelDo(e.wheelDelta)),this.lastWheelTime=t},onMouseWheelDo(e){let t=Math.pow(1.25,e/120);this.tryToScale(t),this.onInteractionEnd()},onMouseDown(e){this.refreshContainerPos(),this.isPointerDown=!0,this.pointerPosX=e.clientX,this.pointerPosY=e.clientY},onMouseUp(e){this.isPointerDown=!1,this.onInteractionEnd()},onMouseMove(e){this.onPointerMove(e.clientX,e.clientY)},onTouchStart(e){if(e.touches.length===1)this.refreshContainerPos(),this.pointerPosX=e.touches[0].clientX,this.pointerPosY=e.touches[0].clientY,this.isPointerDown=!0;else if(e.touches.length===2){this.isPointerDown=!0,this.pointerPosX=(e.touches[0].clientX+e.touches[1].clientX)/2,this.pointerPosY=(e.touches[0].clientY+e.touches[1].clientY)/2;let t=e.touches[0].clientX-e.touches[1].clientX,n=e.touches[0].clientY-e.touches[1].clientY;this.twoFingerInitDist=Math.sqrt(t*t+n*n)}},onTouchEnd(e){e.touches.length===0?(this.isPointerDown=!1,Math.abs(this.scale-1)<.1&&(this.scale=1),this.onInteractionEnd()):e.touches.length===1&&(this.pointerPosX=e.touches[0].clientX,this.pointerPosY=e.touches[0].clientY)},onTouchMove(e){if(e.touches.length===1)this.onPointerMove(e.touches[0].clientX,e.touches[0].clientY);else if(e.touches.length===2){let t=(e.touches[0].clientX+e.touches[1].clientX)/2,n=(e.touches[0].clientY+e.touches[1].clientY)/2;this.onPointerMove(t,n),this.pointerPosX=t,this.pointerPosY=n;let r=e.touches[0].clientX-e.touches[1].clientX,i=e.touches[0].clientY-e.touches[1].clientY,o=Math.sqrt(r*r+i*i);this.tryToScale(o/this.twoFingerInitDist),this.twoFingerInitDist=o}}}};function z0(e,t,n,r,i,o){return Ie(),Si("div",{ref:"root",class:"vue-zoomer",style:Zt({backgroundColor:n.backgroundColor}),onMousewheel:t[0]||(t[0]=(...s)=>o.onMouseWheel&&o.onMouseWheel(...s)),onDOMMouseScroll:t[1]||(t[1]=(...s)=>o.onMouseWheel&&o.onMouseWheel(...s)),onMousedown:t[2]||(t[2]=(...s)=>o.onMouseDown&&o.onMouseDown(...s)),onMouseup:t[3]||(t[3]=(...s)=>o.onMouseUp&&o.onMouseUp(...s)),onMousemove:t[4]||(t[4]=(...s)=>o.onMouseMove&&o.onMouseMove(...s)),onMouseout:t[5]||(t[5]=(...s)=>o.setPointerPosCenter&&o.setPointerPosCenter(...s)),onTouchstart:t[6]||(t[6]=(...s)=>o.onTouchStart&&o.onTouchStart(...s)),onTouchend:t[7]||(t[7]=(...s)=>o.onTouchEnd&&o.onTouchEnd(...s)),onTouchmove:t[8]||(t[8]=(...s)=>o.onTouchMove&&o.onTouchMove(...s))},[Ho("div",{class:"zoomer",style:Zt(o.wrapperStyle)},[qe(e.$slots,"default",{},void 0,!0)],4)],36)}var B0=dd(V0,[["render",z0],["__scopeId","data-v-3ce6d41b"]]);const H0=50,k0={props:{modelValue:{type:Number,required:!0},list:{type:Array,required:!0},backgroundColor:{type:String,default:"#333"},pivot:{type:String,default:"cursor"},zoomingElastic:{type:Boolean,default:!0},limitTranslation:{type:Boolean,default:!0},doubleClickToZoom:{type:Boolean,default:!0},mouseWheelToZoom:{type:Boolean,default:!0}},data(){return{zoomerRefs:[],containerWidth:1,containerHeight:1,selIndex:this.modelValue,animSelIndex:this.modelValue,currentZoomed:!1,autoSliding:!1,imageAspectRatios:[],isPointerDown:!1,lastPointerX:0,slideOffsetX:0}},computed:{middleStyle(){return{left:`${0+this.slideOffsetX}px`}},leftStyle(){return{left:`${-this.containerWidth+this.slideOffsetX}px`}},rightStyle(){return{left:`${this.containerWidth+this.slideOffsetX}px`}},slideThresh(){return Math.max(H0,this.containerWidth*.1)}},watch:{modelValue(e){e!==this.animSelIndex&&(this.selIndex=e,this.animSelIndex=e)},selIndex(){this.$nextTick(()=>{this.zoomerRefs.forEach(e=>{e.refreshContainerPos()})})}},mounted(){window.addEventListener("resize",this.onWindowResize),this.onWindowResize()},unmounted(){window.removeEventListener("resize",this.onWindowResize)},methods:{reset(){this.zoomerRefs.forEach(e=>{e.reset()})},zoomIn(e){this.zoomerRefs[1]&&this.zoomerRefs[1].zoomIn(e)},zoomOut(e){this.zoomerRefs[1]&&this.zoomerRefs[1].zoomOut(e)},onWindowResize(){let e=window.getComputedStyle(this.$refs.root);this.containerWidth=parseFloat(e.width),this.containerHeight=parseFloat(e.height)},onPointerMove(e){if(this.isPointerDown&&!this.currentZoomed){let t=this.selIndex===0&&e>0&&this.slideOffsetX+e>0||this.selIndex===this.list.length-1&&e<0&&this.slideOffsetX+e<0?.3:1;this.slideOffsetX+=e*t}},onPointerUp(){this.slideOffsetX<-this.slideThresh?this.paginate(1):this.slideOffsetX>this.slideThresh?this.paginate(-1):this.paginate(0)},onImageDragStart(e){return e.preventDefault(),!1},paginate(e){let t=this.selIndex+e;if(t<0||t>=this.list.length){this.slideOffsetX=0;return}this.slideOffsetX=this.containerWidth*-e,this.autoSliding=!0,this.$emit("update:modelValue",t),this.animSelIndex=t,setTimeout(()=>{this.selIndex=t,this.slideOffsetX=0,this.autoSliding=!1},400)},onMouseDown(e){this.isPointerDown=!0,this.lastPointerX=e.clientX},onMouseUp(e){this.isPointerDown=!1,this.onPointerUp()},onMouseMove(e){this.isPointerDown&&(this.onPointerMove(e.clientX-this.lastPointerX),this.lastPointerX=e.clientX)},onTouchStart(e){e.touches.length===1&&(this.isPointerDown=!0,this.lastPointerX=e.touches[0].clientX)},onTouchEnd(e){e.touches.length===0&&(this.isPointerDown=!1,this.onPointerUp())},onTouchMove(e){e.touches.length===1&&(this.onPointerMove(e.touches[0].clientX-this.lastPointerX),this.lastPointerX=e.touches[0].clientX)},onImageLoad(e,t){let n=t.target.naturalWidth/t.target.naturalHeight;this.imageAspectRatios[e]=n},onImageSwipe(e){this.paginate(e=="right"?-1:1)}}},U0=["src","onLoad"];function K0(e,t,n,r,i,o){const s=er("v-zoomer");return Ie(),Si("div",{ref:"root",class:vn([{anim:i.autoSliding&&!i.isPointerDown},"vue-zoomer-gallery"]),style:Zt({"background-color":n.backgroundColor}),onMousemove:t[2]||(t[2]=(...a)=>o.onMouseMove&&o.onMouseMove(...a)),onMousedown:t[3]||(t[3]=(...a)=>o.onMouseDown&&o.onMouseDown(...a)),onMouseout:t[4]||(t[4]=(...a)=>o.onMouseUp&&o.onMouseUp(...a)),onMouseup:t[5]||(t[5]=(...a)=>o.onMouseUp&&o.onMouseUp(...a)),onTouchstart:t[6]||(t[6]=(...a)=>o.onTouchStart&&o.onTouchStart(...a)),onTouchend:t[7]||(t[7]=(...a)=>o.onTouchEnd&&o.onTouchEnd(...a)),onTouchmove:t[8]||(t[8]=Xe((...a)=>o.onTouchMove&&o.onTouchMove(...a),["prevent"]))},[(Ie(),Si(Ye,null,ko(3,(a,l)=>he(s,{ref:c=>{i.zoomerRefs[l]=c},key:l+"-"+i.selIndex,class:vn([["left","middle","right"][l],"slide"]),style:Zt([o.leftStyle,o.middleStyle,o.rightStyle][l]),"max-scale":10,zoomed:i.currentZoomed,"onUpdate:zoomed":t[1]||(t[1]=c=>i.currentZoomed=c),"reset-trigger":l,"aspect-ratio":i.imageAspectRatios[i.selIndex+l-1]||1,pivot:n.pivot,"zooming-elastic":n.zoomingElastic,"limit-translation":n.limitTranslation,"double-click-to-zoom":n.doubleClickToZoom,"mouse-wheel-to-zoom":n.mouseWheelToZoom,onSwipe:o.onImageSwipe},{default:qt(()=>[i.selIndex+l-1>-1&&i.selIndex+l-1<n.list.length?(Ie(),Si("img",{key:0,src:n.list[i.selIndex+l-1],draggable:"false",style:{"object-fit":"contain",width:"100%",height:"100%"},onLoad:c=>o.onImageLoad(i.selIndex+l-1,c),onDragstart:t[0]||(t[0]=(...c)=>o.onImageDragStart&&o.onImageDragStart(...c))},null,40,U0)):Lt("",!0)]),_:2},1032,["class","style","zoomed","reset-trigger","aspect-ratio","pivot","zooming-elastic","limit-translation","double-click-to-zoom","mouse-wheel-to-zoom","onSwipe"])),64))],38)}var W0=dd(k0,[["render",K0],["__scopeId","data-v-1af1e362"]]),O1={install(e){e.component("VZoomer",B0),e.component("VZoomerGallery",W0)}},Nt="top",zt="bottom",Bt="right",Rt="left",_l="auto",Ji=[Nt,zt,Bt,Rt],Xr="start",Qi="end",Y0="clippingParents",Td="viewport",qi="popper",X0="reference",Pd=Ji.reduce(function(e,t){return e.concat([t+"-"+Xr,t+"-"+Qi])},[]),As=[].concat(Ji,[_l]).reduce(function(e,t){return e.concat([t,t+"-"+Xr,t+"-"+Qi])},[]),G0="beforeRead",Z0="read",J0="afterRead",Q0="beforeMain",q0="main",_0="afterMain",eS="beforeWrite",tS="write",nS="afterWrite",rS=[G0,Z0,J0,Q0,q0,_0,eS,tS,nS];function on(e){return e?(e.nodeName||"").toLowerCase():null}function Yt(e){if(e==null)return window;if(e.toString()!=="[object Window]"){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function _i(e){var t=Yt(e).Element;return e instanceof t||e instanceof Element}function Ht(e){var t=Yt(e).HTMLElement;return e instanceof t||e instanceof HTMLElement}function xd(e){if(typeof ShadowRoot=="undefined")return!1;var t=Yt(e).ShadowRoot;return e instanceof t||e instanceof ShadowRoot}function iS(e){var t=e.state;Object.keys(t.elements).forEach(function(n){var r=t.styles[n]||{},i=t.attributes[n]||{},o=t.elements[n];!Ht(o)||!on(o)||(Object.assign(o.style,r),Object.keys(i).forEach(function(s){var a=i[s];a===!1?o.removeAttribute(s):o.setAttribute(s,a===!0?"":a)}))})}function oS(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow),function(){Object.keys(t.elements).forEach(function(r){var i=t.elements[r],o=t.attributes[r]||{},s=Object.keys(t.styles.hasOwnProperty(r)?t.styles[r]:n[r]),a=s.reduce(function(l,c){return l[c]="",l},{});!Ht(i)||!on(i)||(Object.assign(i.style,a),Object.keys(o).forEach(function(l){i.removeAttribute(l)}))})}}var sS={name:"applyStyles",enabled:!0,phase:"write",fn:iS,effect:oS,requires:["computeStyles"]};function sn(e){return e.split("-")[0]}function Gr(e,t){var n=e.getBoundingClientRect(),r=1,i=1;return{width:n.width/r,height:n.height/i,top:n.top/i,right:n.right/r,bottom:n.bottom/i,left:n.left/r,x:n.left/r,y:n.top/i}}function ec(e){var t=Gr(e),n=e.offsetWidth,r=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-r)<=1&&(r=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:r}}function Cd(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&xd(n)){var r=t;do{if(r&&e.isSameNode(r))return!0;r=r.parentNode||r.host}while(r)}return!1}function gn(e){return Yt(e).getComputedStyle(e)}function aS(e){return["table","td","th"].indexOf(on(e))>=0}function Bn(e){return((_i(e)?e.ownerDocument:e.document)||window.document).documentElement}function Ns(e){return on(e)==="html"?e:e.assignedSlot||e.parentNode||(xd(e)?e.host:null)||Bn(e)}function Md(e){return!Ht(e)||gn(e).position==="fixed"?null:e.offsetParent}function lS(e){var t=navigator.userAgent.toLowerCase().indexOf("firefox")!==-1,n=navigator.userAgent.indexOf("Trident")!==-1;if(n&&Ht(e)){var r=gn(e);if(r.position==="fixed")return null}for(var i=Ns(e);Ht(i)&&["html","body"].indexOf(on(i))<0;){var o=gn(i);if(o.transform!=="none"||o.perspective!=="none"||o.contain==="paint"||["transform","perspective"].indexOf(o.willChange)!==-1||t&&o.willChange==="filter"||t&&o.filter&&o.filter!=="none")return i;i=i.parentNode}return null}function eo(e){for(var t=Yt(e),n=Md(e);n&&aS(n)&&gn(n).position==="static";)n=Md(n);return n&&(on(n)==="html"||on(n)==="body"&&gn(n).position==="static")?t:n||lS(e)||t}function tc(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}var Hn=Math.max,to=Math.min,Rs=Math.round;function Is(e,t,n){return Hn(e,to(t,n))}function Ad(){return{top:0,right:0,bottom:0,left:0}}function Nd(e){return Object.assign({},Ad(),e)}function Rd(e,t){return t.reduce(function(n,r){return n[r]=e,n},{})}var cS=function(t,n){return t=typeof t=="function"?t(Object.assign({},n.rects,{placement:n.placement})):t,Nd(typeof t!="number"?t:Rd(t,Ji))};function uS(e){var t,n=e.state,r=e.name,i=e.options,o=n.elements.arrow,s=n.modifiersData.popperOffsets,a=sn(n.placement),l=tc(a),c=[Rt,Bt].indexOf(a)>=0,u=c?"height":"width";if(!(!o||!s)){var f=cS(i.padding,n),p=ec(o),d=l==="y"?Nt:Rt,m=l==="y"?zt:Bt,b=n.rects.reference[u]+n.rects.reference[l]-s[l]-n.rects.popper[u],v=s[l]-n.rects.reference[l],S=eo(o),g=S?l==="y"?S.clientHeight||0:S.clientWidth||0:0,O=b/2-v/2,E=f[d],$=g-p[u]-f[m],R=g/2-p[u]/2+O,T=Is(E,R,$),P=l;n.modifiersData[r]=(t={},t[P]=T,t.centerOffset=T-R,t)}}function fS(e){var t=e.state,n=e.options,r=n.element,i=r===void 0?"[data-popper-arrow]":r;i!=null&&(typeof i=="string"&&(i=t.elements.popper.querySelector(i),!i)||!Cd(t.elements.popper,i)||(t.elements.arrow=i))}var pS={name:"arrow",enabled:!0,phase:"main",fn:uS,effect:fS,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function Zr(e){return e.split("-")[1]}var dS={top:"auto",right:"auto",bottom:"auto",left:"auto"};function hS(e){var t=e.x,n=e.y,r=window,i=r.devicePixelRatio||1;return{x:Rs(Rs(t*i)/i)||0,y:Rs(Rs(n*i)/i)||0}}function Id(e){var t,n=e.popper,r=e.popperRect,i=e.placement,o=e.variation,s=e.offsets,a=e.position,l=e.gpuAcceleration,c=e.adaptive,u=e.roundOffsets,f=u===!0?hS(s):typeof u=="function"?u(s):s,p=f.x,d=p===void 0?0:p,m=f.y,b=m===void 0?0:m,v=s.hasOwnProperty("x"),S=s.hasOwnProperty("y"),g=Rt,O=Nt,E=window;if(c){var $=eo(n),R="clientHeight",T="clientWidth";$===Yt(n)&&($=Bn(n),gn($).position!=="static"&&a==="absolute"&&(R="scrollHeight",T="scrollWidth")),$=$,(i===Nt||(i===Rt||i===Bt)&&o===Qi)&&(O=zt,b-=$[R]-r.height,b*=l?1:-1),(i===Rt||(i===Nt||i===zt)&&o===Qi)&&(g=Bt,d-=$[T]-r.width,d*=l?1:-1)}var P=Object.assign({position:a},c&&dS);if(l){var N;return Object.assign({},P,(N={},N[O]=S?"0":"",N[g]=v?"0":"",N.transform=(E.devicePixelRatio||1)<=1?"translate("+d+"px, "+b+"px)":"translate3d("+d+"px, "+b+"px, 0)",N))}return Object.assign({},P,(t={},t[O]=S?b+"px":"",t[g]=v?d+"px":"",t.transform="",t))}function mS(e){var t=e.state,n=e.options,r=n.gpuAcceleration,i=r===void 0?!0:r,o=n.adaptive,s=o===void 0?!0:o,a=n.roundOffsets,l=a===void 0?!0:a,c={placement:sn(t.placement),variation:Zr(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:i};t.modifiersData.popperOffsets!=null&&(t.styles.popper=Object.assign({},t.styles.popper,Id(Object.assign({},c,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:s,roundOffsets:l})))),t.modifiersData.arrow!=null&&(t.styles.arrow=Object.assign({},t.styles.arrow,Id(Object.assign({},c,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:l})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})}var gS={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:mS,data:{}},$s={passive:!0};function vS(e){var t=e.state,n=e.instance,r=e.options,i=r.scroll,o=i===void 0?!0:i,s=r.resize,a=s===void 0?!0:s,l=Yt(t.elements.popper),c=[].concat(t.scrollParents.reference,t.scrollParents.popper);return o&&c.forEach(function(u){u.addEventListener("scroll",n.update,$s)}),a&&l.addEventListener("resize",n.update,$s),function(){o&&c.forEach(function(u){u.removeEventListener("scroll",n.update,$s)}),a&&l.removeEventListener("resize",n.update,$s)}}var yS={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:vS,data:{}},bS={left:"right",right:"left",bottom:"top",top:"bottom"};function Ls(e){return e.replace(/left|right|bottom|top/g,function(t){return bS[t]})}var SS={start:"end",end:"start"};function $d(e){return e.replace(/start|end/g,function(t){return SS[t]})}function nc(e){var t=Yt(e),n=t.pageXOffset,r=t.pageYOffset;return{scrollLeft:n,scrollTop:r}}function rc(e){return Gr(Bn(e)).left+nc(e).scrollLeft}function ES(e){var t=Yt(e),n=Bn(e),r=t.visualViewport,i=n.clientWidth,o=n.clientHeight,s=0,a=0;return r&&(i=r.width,o=r.height,/^((?!chrome|android).)*safari/i.test(navigator.userAgent)||(s=r.offsetLeft,a=r.offsetTop)),{width:i,height:o,x:s+rc(e),y:a}}function OS(e){var t,n=Bn(e),r=nc(e),i=(t=e.ownerDocument)==null?void 0:t.body,o=Hn(n.scrollWidth,n.clientWidth,i?i.scrollWidth:0,i?i.clientWidth:0),s=Hn(n.scrollHeight,n.clientHeight,i?i.scrollHeight:0,i?i.clientHeight:0),a=-r.scrollLeft+rc(e),l=-r.scrollTop;return gn(i||n).direction==="rtl"&&(a+=Hn(n.clientWidth,i?i.clientWidth:0)-o),{width:o,height:s,x:a,y:l}}function ic(e){var t=gn(e),n=t.overflow,r=t.overflowX,i=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+i+r)}function Ld(e){return["html","body","#document"].indexOf(on(e))>=0?e.ownerDocument.body:Ht(e)&&ic(e)?e:Ld(Ns(e))}function no(e,t){var n;t===void 0&&(t=[]);var r=Ld(e),i=r===((n=e.ownerDocument)==null?void 0:n.body),o=Yt(r),s=i?[o].concat(o.visualViewport||[],ic(r)?r:[]):r,a=t.concat(s);return i?a:a.concat(no(Ns(s)))}function oc(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function wS(e){var t=Gr(e);return t.top=t.top+e.clientTop,t.left=t.left+e.clientLeft,t.bottom=t.top+e.clientHeight,t.right=t.left+e.clientWidth,t.width=e.clientWidth,t.height=e.clientHeight,t.x=t.left,t.y=t.top,t}function Dd(e,t){return t===Td?oc(ES(e)):Ht(t)?wS(t):oc(OS(Bn(e)))}function TS(e){var t=no(Ns(e)),n=["absolute","fixed"].indexOf(gn(e).position)>=0,r=n&&Ht(e)?eo(e):e;return _i(r)?t.filter(function(i){return _i(i)&&Cd(i,r)&&on(i)!=="body"}):[]}function PS(e,t,n){var r=t==="clippingParents"?TS(e):[].concat(t),i=[].concat(r,[n]),o=i[0],s=i.reduce(function(a,l){var c=Dd(e,l);return a.top=Hn(c.top,a.top),a.right=to(c.right,a.right),a.bottom=to(c.bottom,a.bottom),a.left=Hn(c.left,a.left),a},Dd(e,o));return s.width=s.right-s.left,s.height=s.bottom-s.top,s.x=s.left,s.y=s.top,s}function Fd(e){var t=e.reference,n=e.element,r=e.placement,i=r?sn(r):null,o=r?Zr(r):null,s=t.x+t.width/2-n.width/2,a=t.y+t.height/2-n.height/2,l;switch(i){case Nt:l={x:s,y:t.y-n.height};break;case zt:l={x:s,y:t.y+t.height};break;case Bt:l={x:t.x+t.width,y:a};break;case Rt:l={x:t.x-n.width,y:a};break;default:l={x:t.x,y:t.y}}var c=i?tc(i):null;if(c!=null){var u=c==="y"?"height":"width";switch(o){case Xr:l[c]=l[c]-(t[u]/2-n[u]/2);break;case Qi:l[c]=l[c]+(t[u]/2-n[u]/2);break}}return l}function ro(e,t){t===void 0&&(t={});var n=t,r=n.placement,i=r===void 0?e.placement:r,o=n.boundary,s=o===void 0?Y0:o,a=n.rootBoundary,l=a===void 0?Td:a,c=n.elementContext,u=c===void 0?qi:c,f=n.altBoundary,p=f===void 0?!1:f,d=n.padding,m=d===void 0?0:d,b=Nd(typeof m!="number"?m:Rd(m,Ji)),v=u===qi?X0:qi,S=e.rects.popper,g=e.elements[p?v:u],O=PS(_i(g)?g:g.contextElement||Bn(e.elements.popper),s,l),E=Gr(e.elements.reference),$=Fd({reference:E,element:S,strategy:"absolute",placement:i}),R=oc(Object.assign({},S,$)),T=u===qi?R:E,P={top:O.top-T.top+b.top,bottom:T.bottom-O.bottom+b.bottom,left:O.left-T.left+b.left,right:T.right-O.right+b.right},N=e.modifiersData.offset;if(u===qi&&N){var j=N[i];Object.keys(P).forEach(function(V){var F=[Bt,zt].indexOf(V)>=0?1:-1,C=[Nt,zt].indexOf(V)>=0?"y":"x";P[V]+=j[C]*F})}return P}function xS(e,t){t===void 0&&(t={});var n=t,r=n.placement,i=n.boundary,o=n.rootBoundary,s=n.padding,a=n.flipVariations,l=n.allowedAutoPlacements,c=l===void 0?As:l,u=Zr(r),f=u?a?Pd:Pd.filter(function(m){return Zr(m)===u}):Ji,p=f.filter(function(m){return c.indexOf(m)>=0});p.length===0&&(p=f);var d=p.reduce(function(m,b){return m[b]=ro(e,{placement:b,boundary:i,rootBoundary:o,padding:s})[sn(b)],m},{});return Object.keys(d).sort(function(m,b){return d[m]-d[b]})}function CS(e){if(sn(e)===_l)return[];var t=Ls(e);return[$d(e),t,$d(t)]}function MS(e){var t=e.state,n=e.options,r=e.name;if(!t.modifiersData[r]._skip){for(var i=n.mainAxis,o=i===void 0?!0:i,s=n.altAxis,a=s===void 0?!0:s,l=n.fallbackPlacements,c=n.padding,u=n.boundary,f=n.rootBoundary,p=n.altBoundary,d=n.flipVariations,m=d===void 0?!0:d,b=n.allowedAutoPlacements,v=t.options.placement,S=sn(v),g=S===v,O=l||(g||!m?[Ls(v)]:CS(v)),E=[v].concat(O).reduce(function(Se,Re){return Se.concat(sn(Re)===_l?xS(t,{placement:Re,boundary:u,rootBoundary:f,padding:c,flipVariations:m,allowedAutoPlacements:b}):Re)},[]),$=t.rects.reference,R=t.rects.popper,T=new Map,P=!0,N=E[0],j=0;j<E.length;j++){var V=E[j],F=sn(V),C=Zr(V)===Xr,w=[Nt,zt].indexOf(F)>=0,M=w?"width":"height",L=ro(t,{placement:V,boundary:u,rootBoundary:f,altBoundary:p,padding:c}),z=w?C?Bt:Rt:C?zt:Nt;$[M]>R[M]&&(z=Ls(z));var B=Ls(z),K=[];if(o&&K.push(L[F]<=0),a&&K.push(L[z]<=0,L[B]<=0),K.every(function(Se){return Se})){N=V,P=!1;break}T.set(V,K)}if(P)for(var G=m?3:1,de=function(Re){var Je=E.find(function(Qe){var ft=T.get(Qe);if(ft)return ft.slice(0,Re).every(function(kt){return kt})});if(Je)return N=Je,"break"},ce=G;ce>0;ce--){var ve=de(ce);if(ve==="break")break}t.placement!==N&&(t.modifiersData[r]._skip=!0,t.placement=N,t.reset=!0)}}var AS={name:"flip",enabled:!0,phase:"main",fn:MS,requiresIfExists:["offset"],data:{_skip:!1}};function jd(e,t,n){return n===void 0&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function Vd(e){return[Nt,Bt,zt,Rt].some(function(t){return e[t]>=0})}function NS(e){var t=e.state,n=e.name,r=t.rects.reference,i=t.rects.popper,o=t.modifiersData.preventOverflow,s=ro(t,{elementContext:"reference"}),a=ro(t,{altBoundary:!0}),l=jd(s,r),c=jd(a,i,o),u=Vd(l),f=Vd(c);t.modifiersData[n]={referenceClippingOffsets:l,popperEscapeOffsets:c,isReferenceHidden:u,hasPopperEscaped:f},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":u,"data-popper-escaped":f})}var RS={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:NS};function IS(e,t,n){var r=sn(e),i=[Rt,Nt].indexOf(r)>=0?-1:1,o=typeof n=="function"?n(Object.assign({},t,{placement:e})):n,s=o[0],a=o[1];return s=s||0,a=(a||0)*i,[Rt,Bt].indexOf(r)>=0?{x:a,y:s}:{x:s,y:a}}function $S(e){var t=e.state,n=e.options,r=e.name,i=n.offset,o=i===void 0?[0,0]:i,s=As.reduce(function(u,f){return u[f]=IS(f,t.rects,o),u},{}),a=s[t.placement],l=a.x,c=a.y;t.modifiersData.popperOffsets!=null&&(t.modifiersData.popperOffsets.x+=l,t.modifiersData.popperOffsets.y+=c),t.modifiersData[r]=s}var LS={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:$S};function DS(e){var t=e.state,n=e.name;t.modifiersData[n]=Fd({reference:t.rects.reference,element:t.rects.popper,strategy:"absolute",placement:t.placement})}var FS={name:"popperOffsets",enabled:!0,phase:"read",fn:DS,data:{}};function jS(e){return e==="x"?"y":"x"}function VS(e){var t=e.state,n=e.options,r=e.name,i=n.mainAxis,o=i===void 0?!0:i,s=n.altAxis,a=s===void 0?!1:s,l=n.boundary,c=n.rootBoundary,u=n.altBoundary,f=n.padding,p=n.tether,d=p===void 0?!0:p,m=n.tetherOffset,b=m===void 0?0:m,v=ro(t,{boundary:l,rootBoundary:c,padding:f,altBoundary:u}),S=sn(t.placement),g=Zr(t.placement),O=!g,E=tc(S),$=jS(E),R=t.modifiersData.popperOffsets,T=t.rects.reference,P=t.rects.popper,N=typeof b=="function"?b(Object.assign({},t.rects,{placement:t.placement})):b,j={x:0,y:0};if(!!R){if(o||a){var V=E==="y"?Nt:Rt,F=E==="y"?zt:Bt,C=E==="y"?"height":"width",w=R[E],M=R[E]+v[V],L=R[E]-v[F],z=d?-P[C]/2:0,B=g===Xr?T[C]:P[C],K=g===Xr?-P[C]:-T[C],G=t.elements.arrow,de=d&&G?ec(G):{width:0,height:0},ce=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:Ad(),ve=ce[V],Se=ce[F],Re=Is(0,T[C],de[C]),Je=O?T[C]/2-z-Re-ve-N:B-Re-ve-N,Qe=O?-T[C]/2+z+Re+Se+N:K+Re+Se+N,ft=t.elements.arrow&&eo(t.elements.arrow),kt=ft?E==="y"?ft.clientTop||0:ft.clientLeft||0:0,Ve=t.modifiersData.offset?t.modifiersData.offset[t.placement][E]:0,ze=R[E]+Je-Ve-kt,vt=R[E]+Qe-Ve;if(o){var x=Is(d?to(M,ze):M,w,d?Hn(L,vt):L);R[E]=x,j[E]=x-w}if(a){var I=E==="x"?Nt:Rt,k=E==="x"?zt:Bt,X=R[$],W=X+v[I],q=X-v[k],ne=Is(d?to(W,ze):W,X,d?Hn(q,vt):q);R[$]=ne,j[$]=ne-X}}t.modifiersData[r]=j}}var zS={name:"preventOverflow",enabled:!0,phase:"main",fn:VS,requiresIfExists:["offset"]};function BS(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}}function HS(e){return e===Yt(e)||!Ht(e)?nc(e):BS(e)}function kS(e){var t=e.getBoundingClientRect(),n=t.width/e.offsetWidth||1,r=t.height/e.offsetHeight||1;return n!==1||r!==1}function US(e,t,n){n===void 0&&(n=!1);var r=Ht(t);Ht(t)&&kS(t);var i=Bn(t),o=Gr(e),s={scrollLeft:0,scrollTop:0},a={x:0,y:0};return(r||!r&&!n)&&((on(t)!=="body"||ic(i))&&(s=HS(t)),Ht(t)?(a=Gr(t),a.x+=t.clientLeft,a.y+=t.clientTop):i&&(a.x=rc(i))),{x:o.left+s.scrollLeft-a.x,y:o.top+s.scrollTop-a.y,width:o.width,height:o.height}}function KS(e){var t=new Map,n=new Set,r=[];e.forEach(function(o){t.set(o.name,o)});function i(o){n.add(o.name);var s=[].concat(o.requires||[],o.requiresIfExists||[]);s.forEach(function(a){if(!n.has(a)){var l=t.get(a);l&&i(l)}}),r.push(o)}return e.forEach(function(o){n.has(o.name)||i(o)}),r}function WS(e){var t=KS(e);return rS.reduce(function(n,r){return n.concat(t.filter(function(i){return i.phase===r}))},[])}function YS(e){var t;return function(){return t||(t=new Promise(function(n){Promise.resolve().then(function(){t=void 0,n(e())})})),t}}function XS(e){var t=e.reduce(function(n,r){var i=n[r.name];return n[r.name]=i?Object.assign({},i,r,{options:Object.assign({},i.options,r.options),data:Object.assign({},i.data,r.data)}):r,n},{});return Object.keys(t).map(function(n){return t[n]})}var zd={placement:"bottom",modifiers:[],strategy:"absolute"};function Bd(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return!t.some(function(r){return!(r&&typeof r.getBoundingClientRect=="function")})}function GS(e){e===void 0&&(e={});var t=e,n=t.defaultModifiers,r=n===void 0?[]:n,i=t.defaultOptions,o=i===void 0?zd:i;return function(a,l,c){c===void 0&&(c=o);var u={placement:"bottom",orderedModifiers:[],options:Object.assign({},zd,o),modifiersData:{},elements:{reference:a,popper:l},attributes:{},styles:{}},f=[],p=!1,d={state:u,setOptions:function(S){var g=typeof S=="function"?S(u.options):S;b(),u.options=Object.assign({},o,u.options,g),u.scrollParents={reference:_i(a)?no(a):a.contextElement?no(a.contextElement):[],popper:no(l)};var O=WS(XS([].concat(r,u.options.modifiers)));return u.orderedModifiers=O.filter(function(E){return E.enabled}),m(),d.update()},forceUpdate:function(){if(!p){var S=u.elements,g=S.reference,O=S.popper;if(!!Bd(g,O)){u.rects={reference:US(g,eo(O),u.options.strategy==="fixed"),popper:ec(O)},u.reset=!1,u.placement=u.options.placement,u.orderedModifiers.forEach(function(j){return u.modifiersData[j.name]=Object.assign({},j.data)});for(var E=0;E<u.orderedModifiers.length;E++){if(u.reset===!0){u.reset=!1,E=-1;continue}var $=u.orderedModifiers[E],R=$.fn,T=$.options,P=T===void 0?{}:T,N=$.name;typeof R=="function"&&(u=R({state:u,options:P,name:N,instance:d})||u)}}}},update:YS(function(){return new Promise(function(v){d.forceUpdate(),v(u)})}),destroy:function(){b(),p=!0}};if(!Bd(a,l))return d;d.setOptions(c).then(function(v){!p&&c.onFirstUpdate&&c.onFirstUpdate(v)});function m(){u.orderedModifiers.forEach(function(v){var S=v.name,g=v.options,O=g===void 0?{}:g,E=v.effect;if(typeof E=="function"){var $=E({state:u,name:S,instance:d,options:O}),R=function(){};f.push($||R)}})}function b(){f.forEach(function(v){return v()}),f=[]}return d}}var ZS=[yS,FS,gS,sS,LS,AS,zS,pS,RS],JS=GS({defaultModifiers:ZS});function QS(){var e=window.navigator.userAgent,t=e.indexOf("MSIE ");if(t>0)return parseInt(e.substring(t+5,e.indexOf(".",t)),10);var n=e.indexOf("Trident/");if(n>0){var r=e.indexOf("rv:");return parseInt(e.substring(r+3,e.indexOf(".",r)),10)}var i=e.indexOf("Edge/");return i>0?parseInt(e.substring(i+5,e.indexOf(".",i)),10):-1}let Ds;function sc(){sc.init||(sc.init=!0,Ds=QS()!==-1)}var Fs={name:"ResizeObserver",props:{emitOnMount:{type:Boolean,default:!1},ignoreWidth:{type:Boolean,default:!1},ignoreHeight:{type:Boolean,default:!1}},emits:["notify"],mounted(){sc(),Xo(()=>{this._w=this.$el.offsetWidth,this._h=this.$el.offsetHeight,this.emitOnMount&&this.emitSize()});const e=document.createElement("object");this._resizeObject=e,e.setAttribute("aria-hidden","true"),e.setAttribute("tabindex",-1),e.onload=this.addResizeHandlers,e.type="text/html",Ds&&this.$el.appendChild(e),e.data="about:blank",Ds||this.$el.appendChild(e)},beforeUnmount(){this.removeResizeHandlers()},methods:{compareAndNotify(){(!this.ignoreWidth&&this._w!==this.$el.offsetWidth||!this.ignoreHeight&&this._h!==this.$el.offsetHeight)&&(this._w=this.$el.offsetWidth,this._h=this.$el.offsetHeight,this.emitSize())},emitSize(){this.$emit("notify",{width:this._w,height:this._h})},addResizeHandlers(){this._resizeObject.contentDocument.defaultView.addEventListener("resize",this.compareAndNotify),this.compareAndNotify()},removeResizeHandlers(){this._resizeObject&&this._resizeObject.onload&&(!Ds&&this._resizeObject.contentDocument&&this._resizeObject.contentDocument.defaultView.removeEventListener("resize",this.compareAndNotify),this.$el.removeChild(this._resizeObject),this._resizeObject.onload=null,this._resizeObject=null)}}};const qS=Su("data-v-b329ee4c");yu("data-v-b329ee4c");const _S={class:"resize-observer",tabindex:"-1"};bu();const e1=qS((e,t,n,r,i,o)=>(Ie(),ke("div",_S)));Fs.render=e1;Fs.__scopeId="data-v-b329ee4c";Fs.__file="src/components/ResizeObserver.vue";function io(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?io=function(t){return typeof t}:io=function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},io(e)}function Hd(e,t,n,r,i,o,s){try{var a=e[o](s),l=a.value}catch(c){n(c);return}a.done?t(l):Promise.resolve(l).then(r,i)}function hr(e){return function(){var t=this,n=arguments;return new Promise(function(r,i){var o=e.apply(t,n);function s(l){Hd(o,r,i,s,a,"next",l)}function a(l){Hd(o,r,i,s,a,"throw",l)}s(void 0)})}}function t1(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function kd(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function Xt(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?kd(Object(n),!0).forEach(function(r){t1(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):kd(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function Ud(e){return n1(e)||r1(e)||Kd(e)||i1()}function n1(e){if(Array.isArray(e))return ac(e)}function r1(e){if(typeof Symbol!="undefined"&&Symbol.iterator in Object(e))return Array.from(e)}function Kd(e,t){if(!!e){if(typeof e=="string")return ac(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return ac(e,t)}}function ac(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function i1(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
15
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function lc(e,t){var n;if(typeof Symbol=="undefined"||e[Symbol.iterator]==null){if(Array.isArray(e)||(n=Kd(e))||t&&e&&typeof e.length=="number"){n&&(e=n);var r=0,i=function(){};return{s:i,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(l){throw l},f:i}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
16
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var o=!0,s=!1,a;return{s:function(){n=e[Symbol.iterator]()},n:function(){var l=n.next();return o=l.done,l},e:function(l){s=!0,a=l},f:function(){try{!o&&n.return!=null&&n.return()}finally{if(s)throw a}}}}function Wd(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(io(t[n])==="object"&&e[n]?Wd(e[n],t[n]):e[n]=t[n])}var mr={disabled:!1,offset:[0,5],container:"body",boundary:void 0,instantMove:!1,disposeTimeout:5e3,popperTriggers:[],strategy:"absolute",modifiers:[],popperOptions:{},themes:{tooltip:{placement:"top",triggers:["hover","focus","touch"],hideTriggers:function(t){return[].concat(Ud(t),["click"])},delay:{show:200,hide:0},handleResize:!1,html:!1,loadingContent:"..."},dropdown:{placement:"bottom",triggers:["click"],delay:0,handleResize:!0,autoHide:!0},menu:{$extend:"dropdown",triggers:["hover","focus"],popperTriggers:["hover","focus"],delay:{show:0,hide:400}}}};function He(e,t){var n=mr.themes[e]||{},r;do r=n[t],typeof r=="undefined"?n.$extend?n=mr.themes[n.$extend]||{}:(n=null,r=mr[t]):n=null;while(n);return r}function o1(e){var t=[e],n=mr.themes[e]||{};do n.$extend&&!n.$resetCss?(t.push(n.$extend),n=mr.themes[n.$extend]||{}):n=null;while(n);return t.map(function(r){return"v-popper--theme-".concat(r)})}var js=!1;if(typeof window!="undefined"){js=!1;try{var s1=Object.defineProperty({},"passive",{get:function(){js=!0}});window.addEventListener("test",null,s1)}catch(e){}}var Yd=!1;typeof window!="undefined"&&typeof navigator!="undefined"&&(Yd=/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream);function Vs(e,t,n){var r=e.find(function(i){return i.name===t});r||(r={name:t,options:{}},e.push(r)),Object.assign(r.options,n)}var Xd={hover:"mouseenter",focus:"focus",click:"click",touch:"touchstart"},Gd={hover:"mouseleave",focus:"blur",click:"click",touch:"touchend"};function a1(e,t){var n=e.indexOf(t);n!==-1&&e.splice(n,1)}var Jr=[],Qr=null,cc=function(){};typeof window!="undefined"&&(cc=window.Element);var Zd=function(){return{name:"VPopper",props:{theme:{type:String,required:!0},targetNodes:{type:Function,required:!0},referenceNode:{type:Function,required:!0},popperNode:{type:Function,required:!0},arrowNode:{type:Function,default:null},shown:{type:Boolean,default:!1},showGroup:{type:String,default:null},ariaId:{default:null},disabled:{type:Boolean,default:function(t){return He(t.theme,"disabled")}},placement:{type:String,default:function(t){return He(t.theme,"placement")},validator:function(t){return As.includes(t)}},delay:{type:[String,Number,Object],default:function(t){return He(t.theme,"delay")}},offset:{type:[Array,Function],default:function(t){return He(t.theme,"offset")}},triggers:{type:Array,default:function(t){return He(t.theme,"triggers")}},showTriggers:{type:[Array,Function],default:function(t){return He(t.theme,"showTriggers")}},hideTriggers:{type:[Array,Function],default:function(t){return He(t.theme,"hideTriggers")}},popperTriggers:{type:Array,default:function(t){return He(t.theme,"popperTriggers")}},popperShowTriggers:{type:[Array,Function],default:function(t){return He(t.theme,"popperShowTriggers")}},popperHideTriggers:{type:[Array,Function],default:function(t){return He(t.theme,"popperHideTriggers")}},container:{type:[String,Object,cc,Boolean],default:function(t){return He(t.theme,"container")}},boundary:{type:[String,cc],default:function(t){return He(t.theme,"boundary")}},strategy:{type:String,validator:function(t){return["absolute","fixed"].includes(t)},default:function(t){return He(t.theme,"strategy")}},modifiers:{type:Array,default:function(t){return He(t.theme,"modifiers")}},popperOptions:{type:Object,default:function(t){return He(t.theme,"popperOptions")}},autoHide:{type:Boolean,default:function(t){return He(t.theme,"autoHide")}},handleResize:{type:Boolean,default:function(t){return He(t.theme,"handleResize")}},instantMove:{type:Boolean,default:function(t){return He(t.theme,"instantMove")}},eagerMount:{type:Boolean,default:function(t){return He(t.theme,"eagerMount")}}},emits:["show","hide","update:shown","apply-show","apply-hide","close-group","close-directive","auto-hide","resize","dispose"],data:function(){return{isShown:!1,isMounted:!1,skipTransition:!1,classes:{showFrom:!1,showTo:!1,hideFrom:!1,hideTo:!0}}},computed:{popperId:function(){return this.ariaId!=null?this.ariaId:this.randomId},shouldMountContent:function(){return this.eagerMount||this.isMounted},slotData:function(){return{popperId:this.popperId,isShown:this.isShown,shouldMountContent:this.shouldMountContent,skipTransition:this.skipTransition,autoHide:this.autoHide,hide:this.hide,handleResize:this.handleResize,onResize:this.onResize,classes:Xt({},this.classes)}}},watch:{shown:"$_autoShowHide",disabled:function(t){t?this.dispose():this.init()},container:function(){var t=this;return hr(function*(){t.isShown&&t.popperInstance&&(t.$_ensureContainer(),yield t.popperInstance.update())})()},triggers:function(){this.$_removeEventListeners(),this.$_addEventListeners()},placement:"$_refreshPopperOptions",offset:"$_refreshPopperOptions",boundary:"$_refreshPopperOptions",strategy:"$_refreshPopperOptions",modifiers:"$_refreshPopperOptions",popperOptions:{handler:"$_refreshPopperOptions",deep:!0}},created:function(){this.randomId="popper_".concat([Math.random(),Date.now()].map(function(t){return t.toString(36).substr(2,10)}).join("_"))},mounted:function(){this.init()},activated:function(){this.$_autoShowHide()},deactivated:function(){this.hide()},beforeUnmount:function(){this.dispose()},methods:{show:function(){var t=this,n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r=n.event,i=n.skipDelay,o=i===void 0?!1:i,s=n.force,a=s===void 0?!1:s;(a||!this.disabled)&&(this.$_scheduleShow(r,o),this.$emit("show"),this.$_showFrameLocked=!0,requestAnimationFrame(function(){t.$_showFrameLocked=!1})),this.$emit("update:shown",!0)},hide:function(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},n=t.event,r=t.skipDelay,i=r===void 0?!1:r;this.$_scheduleHide(n,i),this.$emit("hide"),this.$emit("update:shown",!1)},init:function(){this.$_isDisposed=!1,this.isMounted=!1,this.$_events=[],this.$_preventShow=!1,this.$_targetNodes=this.targetNodes().filter(function(t){return t.nodeType===t.ELEMENT_NODE}),this.$_popperNode=this.popperNode(),this.$_swapTargetAttrs("title","data-original-title"),this.$_detachPopperNode(),this.triggers.length&&this.$_addEventListeners(),this.shown&&this.show()},dispose:function(){this.$_isDisposed=!0,this.$_removeEventListeners(),this.hide({skipDelay:!0}),this.popperInstance&&(this.popperInstance.destroy(),this.$_detachPopperNode()),this.isMounted=!1,this.popperInstance=null,this.isShown=!1,this.$_swapTargetAttrs("data-original-title","title"),this.$emit("dispose")},onResize:function(){var t=this;return hr(function*(){t.isShown&&t.popperInstance&&(yield t.popperInstance.update(),t.$emit("resize"))})()},$_getPopperOptions:function(){var t=this,n=Xt(Xt({},this.popperOptions),{},{placement:this.placement,strategy:this.strategy,modifiers:this.modifiers,onFirstUpdate:function(){var r=hr(function*(o){t.popperOptions.onFirstUpdate&&t.popperOptions.onFirstUpdate(o),yield t.$_applyShowEffect()});function i(o){return r.apply(this,arguments)}return i}()});return n.modifiers||(n.modifiers=[]),Vs(n.modifiers,"arrow",{element:this.arrowNode&&this.arrowNode()||"[data-popper-arrow]"}),this.offset&&Vs(n.modifiers,"offset",{offset:this.offset}),this.boundary&&Vs(n.modifiers,"preventOverflow",{boundary:this.boundary}),this.isShown||Vs(n.modifiers,"eventListeners",{enabled:!1}),n},$_refreshPopperOptions:function(){var t=this;return hr(function*(){t.popperInstance&&(yield t.popperInstance.setOptions(t.$_getPopperOptions()))})()},$_scheduleShow:function(){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;if(this.$_hideInProgress=!1,clearTimeout(this.$_scheduleTimer),Qr&&this.instantMove&&Qr.instantMove){Qr.$_applyHide(!0),this.$_applyShow(!0);return}t?this.$_applyShow():this.$_scheduleTimer=setTimeout(this.$_applyShow.bind(this),this.$_computeDelay("show"))},$_scheduleHide:function(){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;this.$_hideInProgress=!0,clearTimeout(this.$_scheduleTimer),this.isShown&&(Qr=this),t?this.$_applyHide():this.$_scheduleTimer=setTimeout(this.$_applyHide.bind(this),this.$_computeDelay("hide"))},$_computeDelay:function(t){var n=this.delay;return parseInt(n&&n[t]||n||0)},$_applyShow:function(){var t=arguments,n=this;return hr(function*(){var r=t.length>0&&t[0]!==void 0?t[0]:!1;clearTimeout(n.$_disposeTimer),clearTimeout(n.$_scheduleTimer),n.skipTransition=r,!n.isShown&&(n.isMounted||(n.$_ensureContainer(),n.isMounted=!0),n.popperInstance?(yield n.popperInstance.update(),yield n.$_refreshPopperOptions(),yield n.$_applyShowEffect()):n.popperInstance=JS(n.referenceNode(),n.$_popperNode,n.$_getPopperOptions()))})()},$_applyShowEffect:function(){var t=this;return hr(function*(){if(!t.$_hideInProgress){t.isShown=!0,t.$_applyAttrsToTarget({"aria-describedby":t.popperId,"data-popper-shown":""});var n=t.showGroup;if(n)for(var r,i=0;i<Jr.length;i++)r=Jr[i],r.showGroup!==n&&(r.hide(),r.$emit("close-group"));Jr.push(t),t.$emit("apply-show"),t.$_popperNode.setAttribute("data-popper-placement",t.popperInstance.state.placement),t.classes.showFrom=!0,t.classes.showTo=!1,t.classes.hideFrom=!1,t.classes.hideTo=!1,yield Qd(),t.classes.showFrom=!1,t.classes.showTo=!0}})()},$_applyHide:function(){var t=arguments,n=this;return hr(function*(){var r=t.length>0&&t[0]!==void 0?t[0]:!1;if(clearTimeout(n.$_scheduleTimer),!!n.isShown){n.skipTransition=r,a1(Jr,n),Qr===n&&(Qr=null),n.isShown=!1,n.popperInstance&&(yield n.$_refreshPopperOptions()),n.$_applyAttrsToTarget({"aria-describedby":void 0,"data-popper-shown":void 0}),clearTimeout(n.$_disposeTimer);var i=He(n.theme,"disposeTimeout");i!==null&&(n.$_disposeTimer=setTimeout(function(){n.$_popperNode&&(n.$_detachPopperNode(),n.isMounted=!1)},i)),n.$emit("apply-hide"),n.classes.showFrom=!1,n.classes.showTo=!1,n.classes.hideFrom=!0,n.classes.hideTo=!1,yield Qd(),n.classes.hideFrom=!1,n.classes.hideTo=!0}})()},$_autoShowHide:function(){this.shown?this.show():this.hide()},$_ensureContainer:function(){var t=this.container;if(typeof t=="string"?t=window.document.querySelector(t):t===!1&&(t=this.$_targetNodes[0].parentNode),!t)throw new Error("No container for popover: "+this.container);t.appendChild(this.$_popperNode)},$_addEventListeners:function(){var t=this,n=function(s,a,l,c,u){var f=l;c!=null&&(f=typeof c=="function"?c(f):c),f.forEach(function(p){var d=a[p];d&&(t.$_events.push({targetNodes:s,eventType:d,handler:u}),s.forEach(function(m){return m.addEventListener(d,u)}))})},r=function(s){t.isShown&&!t.$_hideInProgress||(s.usedByTooltip=!0,!t.$_preventShow&&t.show({event:s}))};n(this.$_targetNodes,Xd,this.triggers,this.showTriggers,r),n([this.$_popperNode],Xd,this.popperTriggers,this.popperShowTriggers,r);var i=function(s){s.usedByTooltip||t.hide({event:s})};n(this.$_targetNodes,Gd,this.triggers,this.hideTriggers,i),n([this.$_popperNode],Gd,this.popperTriggers,this.popperHideTriggers,i)},$_removeEventListeners:function(){this.$_events.forEach(function(t){var n=t.targetNodes,r=t.eventType,i=t.handler;n.forEach(function(o){return o.removeEventListener(r,i)})}),this.$_events=[]},$_handleGlobalClose:function(t){var n=this,r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;this.$_showFrameLocked||(this.hide({event:t}),t.closePopover?this.$emit("close-directive"):this.$emit("auto-hide"),r&&(this.$_preventShow=!0,setTimeout(function(){n.$_preventShow=!1},300)))},$_detachPopperNode:function(){this.$_popperNode.parentNode&&this.$_popperNode.parentNode.removeChild(this.$_popperNode)},$_swapTargetAttrs:function(t,n){var r=lc(this.$_targetNodes),i;try{for(r.s();!(i=r.n()).done;){var o=i.value,s=o.getAttribute(t);s&&(o.removeAttribute(t),o.setAttribute(n,s))}}catch(a){r.e(a)}finally{r.f()}},$_applyAttrsToTarget:function(t){var n=lc(this.$_targetNodes),r;try{for(n.s();!(r=n.n()).done;){var i=r.value;for(var o in t){var s=t[o];s==null?i.removeAttribute(o):i.setAttribute(o,s)}}}catch(a){n.e(a)}finally{n.f()}}},render:function(){return this.$slots.default(this.slotData)}}};typeof document!="undefined"&&typeof window!="undefined"&&(Yd?document.addEventListener("touchend",c1,js?{passive:!0,capture:!0}:!0):window.addEventListener("click",l1,!0));function l1(e){Jd(e)}function c1(e){Jd(e,!0)}function Jd(e){for(var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,n=function(o){var s=Jr[o],a=s.popperNode(),l=a.contains(e.target);requestAnimationFrame(function(){(e.closeAllPopover||e.closePopover&&l||s.autoHide&&!l)&&s.$_handleGlobalClose(e,t)})},r=0;r<Jr.length;r++)n(r)}function Qd(){return new Promise(function(e){return requestAnimationFrame(e)})}var qd={computed:{themeClass:function(){return o1(this.theme)}}},zs={name:"VPopperContent",components:{ResizeObserver:Fs},mixins:[qd],props:{popperId:String,theme:String,shown:Boolean,mounted:Boolean,skipTransition:Boolean,autoHide:Boolean,handleResize:Boolean,classes:Object},emits:["hide","resize"]},u1={class:"v-popper__wrapper"},f1={ref:"inner",class:"v-popper__inner"},p1={ref:"arrow",class:"v-popper__arrow-container"},d1=he("div",{class:"v-popper__arrow"},null,-1);function h1(e,t,n,r,i,o){var s=er("ResizeObserver");return Ie(),ke("div",{id:n.popperId,ref:"popover",class:["v-popper__popper",[e.themeClass,{"v-popper__popper--shown":n.shown,"v-popper__popper--hidden":!n.shown,"v-popper__popper--show-from":n.classes.showFrom,"v-popper__popper--show-to":n.classes.showTo,"v-popper__popper--hide-from":n.classes.hideFrom,"v-popper__popper--hide-to":n.classes.hideTo,"v-popper__popper--skip-transition":n.skipTransition}]],"aria-hidden":n.shown?"false":"true",tabindex:n.autoHide?0:void 0,onKeyup:t[2]||(t[2]=Dt(function(a){return n.autoHide&&e.$emit("hide")},["esc"]))},[he("div",u1,[he("div",f1,[n.mounted?(Ie(),ke(Ye,{key:0},[he("div",null,[qe(e.$slots,"default")]),n.handleResize?(Ie(),ke(s,{key:0,onNotify:t[1]||(t[1]=function(a){return e.$emit("resize",a)})})):Lt("v-if",!0)],64)):Lt("v-if",!0)],512),he("div",p1,[d1],512)])],42,["id","aria-hidden","tabindex"])}zs.render=h1;zs.__file="src/components/PopperContent.vue";var _d={methods:{show:function(){var t;return(t=this.$refs.popper).show.apply(t,arguments)},hide:function(){var t;return(t=this.$refs.popper).hide.apply(t,arguments)},dispose:function(){var t;return(t=this.$refs.popper).dispose.apply(t,arguments)},onResize:function(){var t;return(t=this.$refs.popper).onResize.apply(t,arguments)}}},oo={name:"VPopperWrapper",components:{Popper:Zd(),PopperContent:zs},mixins:[_d,qd],inheritAttrs:!1,props:{theme:{type:String,default:null}},computed:{finalTheme:function(){var t;return(t=this.theme)!==null&&t!==void 0?t:this.$options.vPopperTheme}},methods:{getTargetNodes:function(){var t=Ud(this.$refs.reference.children);return t.slice(0,t.length-1).filter(Boolean)}}};function m1(e,t,n,r,i,o){var s=er("PopperContent"),a=er("Popper");return Ie(),ke(a,Ei({ref:"popper"},e.$attrs,{theme:o.finalTheme,"target-nodes":o.getTargetNodes,"reference-node":function(){return e.$refs.reference},"popper-node":function(){return e.$refs.popperContent.$el},"arrow-node":function(){return e.$refs.popperContent.$refs.arrow}}),{default:qt(function(l){var c=l.popperId,u=l.isShown,f=l.shouldMountContent,p=l.skipTransition,d=l.autoHide,m=l.hide,b=l.handleResize,v=l.onResize,S=l.classes;return[he("div",{ref:"reference",class:["v-popper",[e.themeClass,{"v-popper--shown":u}]]},[qe(e.$slots,"default"),he(s,{ref:"popperContent","popper-id":c,theme:o.finalTheme,shown:u,mounted:f,"skip-transition":p,"auto-hide":d,"handle-resize":b,classes:S,onHide:m,onResize:v},{default:qt(function(){return[qe(e.$slots,"popper",{shown:u})]}),_:2},1032,["popper-id","theme","shown","mounted","skip-transition","auto-hide","handle-resize","classes","onHide","onResize"])],2)]}),_:3},16,["theme","target-nodes","reference-node","popper-node","arrow-node"])}oo.render=m1;oo.__file="src/components/PopperWrapper.vue";var uc=Xt(Xt({},oo),{},{name:"VDropdown",vPopperTheme:"dropdown"});uc.__file="src/components/Dropdown.vue";var fc=Xt(Xt({},oo),{},{name:"VMenu",vPopperTheme:"menu"});fc.__file="src/components/Menu.vue";var pc=Xt(Xt({},oo),{},{name:"VTooltip",vPopperTheme:"tooltip"});pc.__file="src/components/Tooltip.vue";var dc={name:"VTooltipDirective",components:{Popper:Zd(),PopperContent:zs},mixins:[_d],inheritAttrs:!1,props:{theme:{type:String,default:"tooltip"},html:{type:Boolean,default:function(t){return He(t.theme,"html")}},content:{type:[String,Number,Function],default:null},loadingContent:{type:String,default:function(t){return He(t.theme,"loadingContent")}}},data:function(){return{asyncContent:null}},computed:{isContentAsync:function(){return typeof this.content=="function"},loading:function(){return this.isContentAsync&&this.asyncContent==null},finalContent:function(){return this.isContentAsync?this.loading?this.loadingContent:this.asyncContent:this.content}},watch:{content:{handler:function(){this.fetchContent(!0)},immediate:!0},finalContent:function(t){var n=this;this.$nextTick(function(){n.$refs.popper.onResize()})}},created:function(){this.$_fetchId=0},methods:{fetchContent:function(t){var n=this;if(typeof this.content=="function"&&this.$_isShown&&(t||!this.$_loading&&this.asyncContent==null)){this.asyncContent=null,this.$_loading=!0;var r=++this.$_fetchId,i=this.content(this);i.then?i.then(function(o){return n.onResult(r,o)}):this.onResult(r,i)}},onResult:function(t,n){t===this.$_fetchId&&(this.$_loading=!1,this.asyncContent=n)},onShow:function(){this.$_isShown=!0,this.fetchContent()},onHide:function(){this.$_isShown=!1}}};function g1(e,t,n,r,i,o){var s=er("PopperContent"),a=er("Popper");return Ie(),ke(a,Ei({ref:"popper"},e.$attrs,{theme:n.theme,"popper-node":function(){return e.$refs.popperContent.$el},"arrow-node":function(){return e.$refs.popperContent.$refs.arrow},onApplyShow:o.onShow,onApplyHide:o.onHide}),{default:qt(function(l){var c=l.popperId,u=l.isShown,f=l.shouldMountContent,p=l.skipTransition,d=l.autoHide,m=l.hide,b=l.handleResize,v=l.onResize,S=l.classes;return[he(s,{ref:"popperContent",class:{"v-popper--tooltip-loading":o.loading},"popper-id":c,theme:n.theme,shown:u,mounted:f,"skip-transition":p,"auto-hide":d,"handle-resize":b,classes:S,onHide:m,onResize:v},{default:qt(function(){return[n.html?(Ie(),ke("div",{key:0,innerHTML:o.finalContent},null,8,["innerHTML"])):(Ie(),ke("div",{key:1,textContent:Jt(o.finalContent)},null,8,["textContent"]))]}),_:2},1032,["class","popper-id","theme","shown","mounted","skip-transition","auto-hide","handle-resize","classes","onHide","onResize"])]}),_:1},16,["theme","popper-node","arrow-node","onApplyShow","onApplyHide"])}dc.render=g1;dc.__file="src/components/TooltipDirective.vue";var eh="v-popper--has-tooltip";function v1(e,t){var n=e.placement;if(!n&&t){var r=lc(As),i;try{for(r.s();!(i=r.n()).done;){var o=i.value;t[o]&&(n=o)}}catch(s){r.e(s)}finally{r.f()}}return n||(n=He(e.theme||"tooltip","placement")),n}function th(e,t,n){var r,i=io(t);return i==="string"?r={content:t}:t&&i==="object"?r=t:r={content:!1},r.placement=v1(r,n),r.targetNodes=function(){return[e]},r.referenceNode=function(){return e},r}function y1(e,t,n){var r=th(e,t,n),i=e.$_popper=ip({name:"VTooltipDirective",data:function(){return{options:r}},render:function(){return tl(dc,Xt(Xt({},this.options),{},{ref:"tooltip"}))}}),o=document.createElement("div");return document.body.appendChild(o),i.mount(o),e.classList&&e.classList.add(eh),i}function nh(e){e.$_popper&&(e.$_popper.unmount(),delete e.$_popper,delete e.$_popperOldShown),e.classList&&e.classList.remove(eh)}function rh(e,t){var n=t.value,r=t.modifiers,i=th(e,n,r);if(!i.content||He(i.theme||"tooltip","disabled"))nh(e);else{var o;e.$_popper?(o=e.$_popper,o.options=i):o=y1(e,n,r),typeof n.shown!="undefined"&&n.shown!==e.$_popperOldShown&&(e.$_popperOldShown=n.shown,n.shown?o.$refs.tooltip.show():o.$refs.tooltip.hide())}}var b1={beforeMount:rh,updated:rh,beforeUnmount:function(t){nh(t)}};function ih(e){e.addEventListener("click",sh),e.addEventListener("touchstart",ah,js?{passive:!0}:!1)}function oh(e){e.removeEventListener("click",sh),e.removeEventListener("touchstart",ah),e.removeEventListener("touchend",lh),e.removeEventListener("touchcancel",ch)}function sh(e){var t=e.currentTarget;e.closePopover=!t.$_vclosepopover_touch,e.closeAllPopover=t.$_closePopoverModifiers&&!!t.$_closePopoverModifiers.all}function ah(e){if(e.changedTouches.length===1){var t=e.currentTarget;t.$_vclosepopover_touch=!0;var n=e.changedTouches[0];t.$_vclosepopover_touchPoint=n,t.addEventListener("touchend",lh),t.addEventListener("touchcancel",ch)}}function lh(e){var t=e.currentTarget;if(t.$_vclosepopover_touch=!1,e.changedTouches.length===1){var n=e.changedTouches[0],r=t.$_vclosepopover_touchPoint;e.closePopover=Math.abs(n.screenY-r.screenY)<20&&Math.abs(n.screenX-r.screenX)<20,e.closeAllPopover=t.$_closePopoverModifiers&&!!t.$_closePopoverModifiers.all}}function ch(e){var t=e.currentTarget;t.$_vclosepopover_touch=!1}var S1={beforeMount:function(t,n){var r=n.value,i=n.modifiers;t.$_closePopoverModifiers=i,(typeof r=="undefined"||r)&&ih(t)},updated:function(t,n){var r=n.value,i=n.oldValue,o=n.modifiers;t.$_closePopoverModifiers=o,r!==i&&(typeof r=="undefined"||r?ih(t):oh(t))},beforeUnmount:function(t){oh(t)}};function hc(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};hc.installed||(hc.installed=!0,Wd(mr,t),e.directive("tooltip",b1),e.directive("close-popper",S1),e.component("v-tooltip",pc),e.component("VTooltip",pc),e.component("v-dropdown",uc),e.component("VDropdown",uc),e.component("v-menu",fc),e.component("VMenu",fc))}var w1={version:"4.0.0-alpha.1",install:hc,options:mr};export{Ye as F,O1 as V,dd as _,jg as a,Ho as b,Si as c,Lt as d,Nn as e,bu as f,he as g,ko as h,ke as i,Zt as j,qe as k,xr as l,bd as m,vn as n,Ie as o,yu as p,ip as q,er as r,fy as s,Jt as t,w1 as u,sr as v,qt as w};
lib/wcfm/wcfm-options.js CHANGED
@@ -3,8 +3,8 @@ window["wcfmoptions"] = {};
3
 
4
  window["wcfmoptions"]['poster'] = function(action, options, successCallback, errorCallback) {
5
 
6
- console.log('wcfmoptions.poster called. Action: ' + action);
7
- console.log('wcfmoptions.poster called. Options: ' + JSON.stringify(options));
8
 
9
  // Call the API
10
  jQuery.ajax({
@@ -22,14 +22,40 @@ window["wcfmoptions"]['poster'] = function(action, options, successCallback, err
22
  console.log(errorThrown);
23
  },
24
  success: function(responseText) {
25
- console.log('ajax response', responseText);
26
  //response = "[{name:'hello'}]";
27
  try {
28
  responseObj = JSON.parse(responseText);
29
- successCallback(responseObj);
30
  } catch (e) {
31
- errorCallback(response)
 
 
 
32
  }
 
33
  }
34
  });
35
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3
 
4
  window["wcfmoptions"]['poster'] = function(action, options, successCallback, errorCallback) {
5
 
6
+ //console.log('wcfmoptions.poster called. Action: ' + action);
7
+ //console.log('wcfmoptions.poster called. Options: ' + JSON.stringify(options));
8
 
9
  // Call the API
10
  jQuery.ajax({
22
  console.log(errorThrown);
23
  },
24
  success: function(responseText) {
25
+ //console.log('ajax response', responseText);
26
  //response = "[{name:'hello'}]";
27
  try {
28
  responseObj = JSON.parse(responseText);
 
29
  } catch (e) {
30
+ console.log('The "' + action + '" response could not be parsed as JSON. ' + e.name + ':' + e.message);
31
+ console.log('response:' + responseText);
32
+ errorCallback(responseText);
33
+ return
34
  }
35
+ successCallback(responseObj);
36
  }
37
  });
38
  }
39
+
40
+ function adjustWCFMHeight() {
41
+ var usedHeight =
42
+ document.getElementById('wpadminbar').offsetHeight +
43
+ document.getElementById('wpfooter').offsetHeight +
44
+ document.getElementById('screen-meta').offsetHeight +
45
+ document.getElementById('wcfmintro').offsetHeight;
46
+
47
+ var wcfm = document.getElementById('webpconvert-filemanager');
48
+
49
+ var h = Math.max(document.body.clientHeight - usedHeight - 30, 300);
50
+ //console.log('setting height', h, document.body.clientHeight, usedHeight);
51
+ wcfm.style.height = h + 'px';
52
+ }
53
+
54
+ window.addEventListener('load', function(event) {
55
+ adjustWCFMHeight();
56
+ });
57
+
58
+
59
+ window.addEventListener('resize', function(event) {
60
+ adjustWCFMHeight();
61
+ });
lib/wcfm/wcfm.js CHANGED
@@ -1 +1,27 @@
1
- function e(e,t){const n=Object.create(null),o=e.split(",");for(let e=0;e<o.length;e++)n[o[e]]=!0;return t?e=>!!n[e.toLowerCase()]:e=>!!n[e]}const t=e("Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl"),n=e("itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly");function o(e){if(k(e)){const t={};for(let n=0;n<e.length;n++){const l=e[n],s=o(E(l)?i(l):l);if(s)for(const e in s)t[e]=s[e]}return t}if(F(e))return e}const l=/;(?![^(]*\))/g,s=/:(.+)/;function i(e){const t={};return e.split(l).forEach((e=>{if(e){const n=e.split(s);n.length>1&&(t[n[0].trim()]=n[1].trim())}})),t}function r(e){let t="";if(E(e))t=e;else if(k(e))for(let n=0;n<e.length;n++)t+=r(e[n])+" ";else if(F(e))for(const n in e)e[n]&&(t+=n+" ");return t.trim()}function c(e,t){if(e===t)return!0;let n=O(e),o=O(t);if(n||o)return!(!n||!o)&&e.getTime()===t.getTime();if(n=k(e),o=k(t),n||o)return!(!n||!o)&&function(e,t){if(e.length!==t.length)return!1;let n=!0;for(let o=0;n&&o<e.length;o++)n=c(e[o],t[o]);return n}(e,t);if(n=F(e),o=F(t),n||o){if(!n||!o)return!1;if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const n in e){const o=e.hasOwnProperty(n),l=t.hasOwnProperty(n);if(o&&!l||!o&&l||!c(e[n],t[n]))return!1}}return String(e)===String(t)}function a(e,t){return e.findIndex((e=>c(e,t)))}const u=e=>null==e?"":F(e)?JSON.stringify(e,d,2):String(e),d=(e,t)=>S(t)?{[`Map(${t.size})`]:[...t.entries()].reduce(((e,[t,n])=>(e[t+" =>"]=n,e)),{})}:C(t)?{[`Set(${t.size})`]:[...t.values()]}:!F(t)||k(t)||P(t)?t:String(t),p={},f=[],h=()=>{},m=()=>!1,v=/^on[^a-z]/,g=e=>v.test(e),y=e=>e.startsWith("onUpdate:"),b=Object.assign,_=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},w=Object.prototype.hasOwnProperty,x=(e,t)=>w.call(e,t),k=Array.isArray,S=e=>"[object Map]"===q(e),C=e=>"[object Set]"===q(e),O=e=>e instanceof Date,V=e=>"function"==typeof e,E=e=>"string"==typeof e,L=e=>"symbol"==typeof e,F=e=>null!==e&&"object"==typeof e,M=e=>F(e)&&V(e.then)&&V(e.catch),R=Object.prototype.toString,q=e=>R.call(e),P=e=>"[object Object]"===q(e),U=e=>E(e)&&"NaN"!==e&&"-"!==e[0]&&""+parseInt(e,10)===e,I=e(",key,ref,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),z=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},D=/-(\w)/g,$=z((e=>e.replace(D,((e,t)=>t?t.toUpperCase():"")))),A=/\B([A-Z])/g,T=z((e=>e.replace(A,"-$1").toLowerCase())),j=z((e=>e.charAt(0).toUpperCase()+e.slice(1))),N=z((e=>e?"on"+j(e):"")),B=(e,t)=>e!==t&&(e==e||t==t),H=(e,t)=>{for(let n=0;n<e.length;n++)e[n](t)},W=(e,t,n)=>{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,value:n})},K=e=>{const t=parseFloat(e);return isNaN(t)?e:t},Q=new WeakMap,G=[];let Y;const J=Symbol(""),X=Symbol("");function Z(e,t=p){(function(e){return e&&!0===e._isEffect})(e)&&(e=e.raw);const n=function(e,t){const n=function(){if(!n.active)return t.scheduler?void 0:e();if(!G.includes(n)){ne(n);try{return le.push(oe),oe=!0,G.push(n),Y=n,e()}finally{G.pop(),ie(),Y=G[G.length-1]}}};return n.id=te++,n.allowRecurse=!!t.allowRecurse,n._isEffect=!0,n.active=!0,n.raw=e,n.deps=[],n.options=t,n}(e,t);return t.lazy||n(),n}function ee(e){e.active&&(ne(e),e.options.onStop&&e.options.onStop(),e.active=!1)}let te=0;function ne(e){const{deps:t}=e;if(t.length){for(let n=0;n<t.length;n++)t[n].delete(e);t.length=0}}let oe=!0;const le=[];function se(){le.push(oe),oe=!1}function ie(){const e=le.pop();oe=void 0===e||e}function re(e,t,n){if(!oe||void 0===Y)return;let o=Q.get(e);o||Q.set(e,o=new Map);let l=o.get(n);l||o.set(n,l=new Set),l.has(Y)||(l.add(Y),Y.deps.push(l))}function ce(e,t,n,o,l,s){const i=Q.get(e);if(!i)return;const r=new Set,c=e=>{e&&e.forEach((e=>{(e!==Y||e.allowRecurse)&&r.add(e)}))};if("clear"===t)i.forEach(c);else if("length"===n&&k(e))i.forEach(((e,t)=>{("length"===t||t>=o)&&c(e)}));else switch(void 0!==n&&c(i.get(n)),t){case"add":k(e)?U(n)&&c(i.get("length")):(c(i.get(J)),S(e)&&c(i.get(X)));break;case"delete":k(e)||(c(i.get(J)),S(e)&&c(i.get(X)));break;case"set":S(e)&&c(i.get(J))}r.forEach((e=>{e.options.scheduler?e.options.scheduler(e):e()}))}const ae=new Set(Object.getOwnPropertyNames(Symbol).map((e=>Symbol[e])).filter(L)),ue=me(),de=me(!1,!0),pe=me(!0),fe=me(!0,!0),he={};function me(e=!1,t=!1){return function(n,o,l){if("__v_isReactive"===o)return!e;if("__v_isReadonly"===o)return e;if("__v_raw"===o&&l===(e?je:Te).get(n))return n;const s=k(n);if(s&&x(he,o))return Reflect.get(he,o,l);const i=Reflect.get(n,o,l);if(L(o)?ae.has(o):"__proto__"===o||"__v_isRef"===o)return i;if(e||re(n,0,o),t)return i;if(Je(i)){return!s||!U(o)?i.value:i}return F(i)?e?He(i):Be(i):i}}["includes","indexOf","lastIndexOf"].forEach((e=>{const t=Array.prototype[e];he[e]=function(...e){const n=Ye(this);for(let e=0,t=this.length;e<t;e++)re(n,0,e+"");const o=t.apply(n,e);return-1===o||!1===o?t.apply(n,e.map(Ye)):o}})),["push","pop","shift","unshift","splice"].forEach((e=>{const t=Array.prototype[e];he[e]=function(...e){se();const n=t.apply(this,e);return ie(),n}}));function ve(e=!1){return function(t,n,o,l){const s=t[n];if(!e&&(o=Ye(o),!k(t)&&Je(s)&&!Je(o)))return s.value=o,!0;const i=k(t)&&U(n)?Number(n)<t.length:x(t,n),r=Reflect.set(t,n,o,l);return t===Ye(l)&&(i?B(o,s)&&ce(t,"set",n,o):ce(t,"add",n,o)),r}}const ge={get:ue,set:ve(),deleteProperty:function(e,t){const n=x(e,t),o=(e[t],Reflect.deleteProperty(e,t));return o&&n&&ce(e,"delete",t,void 0),o},has:function(e,t){const n=Reflect.has(e,t);return L(t)&&ae.has(t)||re(e,0,t),n},ownKeys:function(e){return re(e,0,k(e)?"length":J),Reflect.ownKeys(e)}},ye={get:pe,set:(e,t)=>!0,deleteProperty:(e,t)=>!0},be=b({},ge,{get:de,set:ve(!0)}),_e=(b({},ye,{get:fe}),e=>F(e)?Be(e):e),we=e=>F(e)?He(e):e,xe=e=>e,ke=e=>Reflect.getPrototypeOf(e);function Se(e,t,n=!1,o=!1){const l=Ye(e=e.__v_raw),s=Ye(t);t!==s&&!n&&re(l,0,t),!n&&re(l,0,s);const{has:i}=ke(l),r=n?we:o?xe:_e;return i.call(l,t)?r(e.get(t)):i.call(l,s)?r(e.get(s)):void 0}function Ce(e,t=!1){const n=this.__v_raw,o=Ye(n),l=Ye(e);return e!==l&&!t&&re(o,0,e),!t&&re(o,0,l),e===l?n.has(e):n.has(e)||n.has(l)}function Oe(e,t=!1){return e=e.__v_raw,!t&&re(Ye(e),0,J),Reflect.get(e,"size",e)}function Ve(e){e=Ye(e);const t=Ye(this),n=ke(t).has.call(t,e),o=t.add(e);return n||ce(t,"add",e,e),o}function Ee(e,t){t=Ye(t);const n=Ye(this),{has:o,get:l}=ke(n);let s=o.call(n,e);s||(e=Ye(e),s=o.call(n,e));const i=l.call(n,e),r=n.set(e,t);return s?B(t,i)&&ce(n,"set",e,t):ce(n,"add",e,t),r}function Le(e){const t=Ye(this),{has:n,get:o}=ke(t);let l=n.call(t,e);l||(e=Ye(e),l=n.call(t,e));o&&o.call(t,e);const s=t.delete(e);return l&&ce(t,"delete",e,void 0),s}function Fe(){const e=Ye(this),t=0!==e.size,n=e.clear();return t&&ce(e,"clear",void 0,void 0),n}function Me(e,t){return function(n,o){const l=this,s=l.__v_raw,i=Ye(s),r=e?we:t?xe:_e;return!e&&re(i,0,J),s.forEach(((e,t)=>n.call(o,r(e),r(t),l)))}}function Re(e,t,n){return function(...o){const l=this.__v_raw,s=Ye(l),i=S(s),r="entries"===e||e===Symbol.iterator&&i,c="keys"===e&&i,a=l[e](...o),u=t?we:n?xe:_e;return!t&&re(s,0,c?X:J),{next(){const{value:e,done:t}=a.next();return t?{value:e,done:t}:{value:r?[u(e[0]),u(e[1])]:u(e),done:t}},[Symbol.iterator](){return this}}}}function qe(e){return function(...t){return"delete"!==e&&this}}const Pe={get(e){return Se(this,e)},get size(){return Oe(this)},has:Ce,add:Ve,set:Ee,delete:Le,clear:Fe,forEach:Me(!1,!1)},Ue={get(e){return Se(this,e,!1,!0)},get size(){return Oe(this)},has:Ce,add:Ve,set:Ee,delete:Le,clear:Fe,forEach:Me(!1,!0)},Ie={get(e){return Se(this,e,!0)},get size(){return Oe(this,!0)},has(e){return Ce.call(this,e,!0)},add:qe("add"),set:qe("set"),delete:qe("delete"),clear:qe("clear"),forEach:Me(!0,!1)};function ze(e,t){const n=t?Ue:e?Ie:Pe;return(t,o,l)=>"__v_isReactive"===o?!e:"__v_isReadonly"===o?e:"__v_raw"===o?t:Reflect.get(x(n,o)&&o in t?n:t,o,l)}["keys","values","entries",Symbol.iterator].forEach((e=>{Pe[e]=Re(e,!1,!1),Ie[e]=Re(e,!0,!1),Ue[e]=Re(e,!1,!0)}));const De={get:ze(!1,!1)},$e={get:ze(!1,!0)},Ae={get:ze(!0,!1)},Te=new WeakMap,je=new WeakMap;function Ne(e){return e.__v_skip||!Object.isExtensible(e)?0:function(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}((e=>q(e).slice(8,-1))(e))}function Be(e){return e&&e.__v_isReadonly?e:We(e,!1,ge,De)}function He(e){return We(e,!0,ye,Ae)}function We(e,t,n,o){if(!F(e))return e;if(e.__v_raw&&(!t||!e.__v_isReactive))return e;const l=t?je:Te,s=l.get(e);if(s)return s;const i=Ne(e);if(0===i)return e;const r=new Proxy(e,2===i?o:n);return l.set(e,r),r}function Ke(e){return Qe(e)?Ke(e.__v_raw):!(!e||!e.__v_isReactive)}function Qe(e){return!(!e||!e.__v_isReadonly)}function Ge(e){return Ke(e)||Qe(e)}function Ye(e){return e&&Ye(e.__v_raw)||e}function Je(e){return Boolean(e&&!0===e.__v_isRef)}const Xe={get:(e,t,n)=>{return Je(o=Reflect.get(e,t,n))?o.value:o;var o},set:(e,t,n,o)=>{const l=e[t];return Je(l)&&!Je(n)?(l.value=n,!0):Reflect.set(e,t,n,o)}};class Ze{constructor(e,t,n){this._setter=t,this._dirty=!0,this.__v_isRef=!0,this.effect=Z(e,{lazy:!0,scheduler:()=>{this._dirty||(this._dirty=!0,ce(Ye(this),"set","value"))}}),this.__v_isReadonly=n}get value(){return this._dirty&&(this._value=this.effect(),this._dirty=!1),re(Ye(this),0,"value"),this._value}set value(e){this._setter(e)}}function et(e,t,n,o){let l;try{l=o?e(...o):e()}catch(e){nt(e,t,n)}return l}function tt(e,t,n,o){if(V(e)){const l=et(e,t,n,o);return l&&M(l)&&l.catch((e=>{nt(e,t,n)})),l}const l=[];for(let s=0;s<e.length;s++)l.push(tt(e[s],t,n,o));return l}function nt(e,t,n,o=!0){t&&t.vnode;if(t){let o=t.parent;const l=t.proxy,s=n;for(;o;){const t=o.ec;if(t)for(let n=0;n<t.length;n++)if(!1===t[n](e,l,s))return;o=o.parent}const i=t.appContext.config.errorHandler;if(i)return void et(i,null,10,[e,l,s])}!function(e,t,n,o=!0){console.error(e)}(e,0,0,o)}let ot=!1,lt=!1;const st=[];let it=0;const rt=[];let ct=null,at=0;const ut=[];let dt=null,pt=0;const ft=Promise.resolve();let ht=null,mt=null;function vt(e){const t=ht||ft;return e?t.then(this?e.bind(this):e):t}function gt(e){st.length&&st.includes(e,ot&&e.allowRecurse?it+1:it)||e===mt||(st.push(e),yt())}function yt(){ot||lt||(lt=!0,ht=ft.then(kt))}function bt(e,t,n,o){k(e)?n.push(...e):t&&t.includes(e,e.allowRecurse?o+1:o)||n.push(e),yt()}function _t(e,t=null){if(rt.length){for(mt=t,ct=[...new Set(rt)],rt.length=0,at=0;at<ct.length;at++)ct[at]();ct=null,at=0,mt=null,_t(e,t)}}function wt(e){if(ut.length){const e=[...new Set(ut)];if(ut.length=0,dt)return void dt.push(...e);for(dt=e,dt.sort(((e,t)=>xt(e)-xt(t))),pt=0;pt<dt.length;pt++)dt[pt]();dt=null,pt=0}}const xt=e=>null==e.id?1/0:e.id;function kt(e){lt=!1,ot=!0,_t(e),st.sort(((e,t)=>xt(e)-xt(t)));try{for(it=0;it<st.length;it++){const e=st[it];e&&et(e,null,14)}}finally{it=0,st.length=0,wt(),ot=!1,ht=null,(st.length||ut.length)&&kt(e)}}function St(e,t,...n){const o=e.vnode.props||p;let l=n;const s=t.startsWith("update:"),i=s&&t.slice(7);if(i&&i in o){const e=("modelValue"===i?"model":i)+"Modifiers",{number:t,trim:s}=o[e]||p;s?l=n.map((e=>e.trim())):t&&(l=n.map(K))}let r=N($(t)),c=o[r];!c&&s&&(r=N(T(t)),c=o[r]),c&&tt(c,e,6,l);const a=o[r+"Once"];if(a){if(e.emitted){if(e.emitted[r])return}else(e.emitted={})[r]=!0;tt(a,e,6,l)}}function Ct(e,t,n=!1){if(!t.deopt&&void 0!==e.__emits)return e.__emits;const o=e.emits;let l={},s=!1;if(!V(e)){const o=e=>{s=!0,b(l,Ct(e,t,!0))};!n&&t.mixins.length&&t.mixins.forEach(o),e.extends&&o(e.extends),e.mixins&&e.mixins.forEach(o)}return o||s?(k(o)?o.forEach((e=>l[e]=null)):b(l,o),e.__emits=l):e.__emits=null}function Ot(e,t){return!(!e||!g(t))&&(t=t.replace(/Once$/,""),x(e,t[2].toLowerCase()+t.slice(3))||x(e,t.slice(2)))}let Vt=null;function Et(e){Vt=e}function Lt(e){const{type:t,vnode:n,proxy:o,withProxy:l,props:s,propsOptions:[i],slots:r,attrs:c,emit:a,render:u,renderCache:d,data:p,setupState:f,ctx:h}=e;let m;Vt=e;try{let e;if(4&n.shapeFlag){const t=l||o;m=to(u.call(t,t,d,s,f,p,h)),e=c}else{const n=t;0,m=to(n.length>1?n(s,{attrs:c,slots:r,emit:a}):n(s,null)),e=t.props?c:Mt(c)}let v=m;if(!1!==t.inheritAttrs&&e){const t=Object.keys(e),{shapeFlag:n}=v;t.length&&(1&n||6&n)&&(i&&t.some(y)&&(e=Rt(e,i)),v=Xn(v,e))}n.dirs&&(v.dirs=v.dirs?v.dirs.concat(n.dirs):n.dirs),n.transition&&(v.transition=n.transition),m=v}catch(t){nt(t,e,1),m=Jn($n)}return Vt=null,m}function Ft(e){const t=e.filter((e=>!(Wn(e)&&e.type===$n&&"v-if"!==e.children)));return 1===t.length&&Wn(t[0])?t[0]:null}const Mt=e=>{let t;for(const n in e)("class"===n||"style"===n||g(n))&&((t||(t={}))[n]=e[n]);return t},Rt=(e,t)=>{const n={};for(const o in e)y(o)&&o.slice(9)in t||(n[o]=e[o]);return n};function qt(e,t,n){const o=Object.keys(t);if(o.length!==Object.keys(e).length)return!0;for(let l=0;l<o.length;l++){const s=o[l];if(t[s]!==e[s]&&!Ot(n,s))return!0}return!1}function Pt(e){if(V(e)&&(e=e()),k(e)){e=Ft(e)}return to(e)}let Ut=0;const It=e=>Ut+=e;function zt(e,t,n={},o){let l=e[t];Ut++;const s=(Nn(),Hn(zn,{key:n.key},l?l(n):o?o():[],1===e._?64:-2));return Ut--,s}function Dt(e,t=Vt){if(!t)return e;const n=(...n)=>{Ut||Nn(!0);const o=Vt;Et(t);const l=e(...n);return Et(o),Ut||Bn(),l};return n._c=!0,n}let $t=null;const At=[];function Tt(e){At.push($t=e)}function jt(){At.pop(),$t=At[At.length-1]||null}function Nt(e){return t=>Dt((function(){Tt(e);const n=t.apply(this,arguments);return jt(),n}))}function Bt(e,t,n,o=!1){const l={},s={};W(s,Qn,1),Ht(e,t,l,s),n?e.props=o?l:We(l,!1,be,$e):e.type.props?e.props=l:e.props=s,e.attrs=s}function Ht(e,t,n,o){const[l,s]=e.propsOptions;if(t)for(const s in t){const i=t[s];if(I(s))continue;let r;l&&x(l,r=$(s))?n[r]=i:Ot(e.emitsOptions,s)||(o[s]=i)}if(s){const t=Ye(n);for(let o=0;o<s.length;o++){const i=s[o];n[i]=Wt(l,t,i,t[i],e)}}}function Wt(e,t,n,o,l){const s=e[n];if(null!=s){const e=x(s,"default");if(e&&void 0===o){const e=s.default;s.type!==Function&&V(e)?(xo(l),o=e(t),xo(null)):o=e}s[0]&&(x(t,n)||e?!s[1]||""!==o&&o!==T(n)||(o=!0):o=!1)}return o}function Kt(e,t,n=!1){if(!t.deopt&&e.__props)return e.__props;const o=e.props,l={},s=[];let i=!1;if(!V(e)){const o=e=>{i=!0;const[n,o]=Kt(e,t,!0);b(l,n),o&&s.push(...o)};!n&&t.mixins.length&&t.mixins.forEach(o),e.extends&&o(e.extends),e.mixins&&e.mixins.forEach(o)}if(!o&&!i)return e.__props=f;if(k(o))for(let e=0;e<o.length;e++){const t=$(o[e]);Qt(t)&&(l[t]=p)}else if(o)for(const e in o){const t=$(e);if(Qt(t)){const n=o[e],i=l[t]=k(n)||V(n)?{type:n}:n;if(i){const e=Jt(Boolean,i.type),n=Jt(String,i.type);i[0]=e>-1,i[1]=n<0||e<n,(e>-1||x(i,"default"))&&s.push(t)}}}return e.__props=[l,s]}function Qt(e){return"$"!==e[0]}function Gt(e){const t=e&&e.toString().match(/^\s*function (\w+)/);return t?t[1]:""}function Yt(e,t){return Gt(e)===Gt(t)}function Jt(e,t){if(k(t)){for(let n=0,o=t.length;n<o;n++)if(Yt(t[n],e))return n}else if(V(t))return Yt(t,e)?0:-1;return-1}function Xt(e,t,n=wo,o=!1){if(n){const l=n[e]||(n[e]=[]),s=t.__weh||(t.__weh=(...o)=>{if(n.isUnmounted)return;se(),xo(n);const l=tt(t,n,e,o);return xo(null),ie(),l});return o?l.unshift(s):l.push(s),s}}const Zt=e=>(t,n=wo)=>!ko&&Xt(e,t,n),en=Zt("bm"),tn=Zt("m"),nn=Zt("bu"),on=Zt("u"),ln=Zt("bum"),sn=Zt("um"),rn=Zt("rtg"),cn=Zt("rtc"),an={};function un(e,t,n){return dn(e,t,n)}function dn(e,t,{immediate:n,deep:o,flush:l,onTrack:s,onTrigger:i}=p,r=wo){let c,a,u=!1;if(Je(e)?(c=()=>e.value,u=!!e._shallow):Ke(e)?(c=()=>e,o=!0):c=k(e)?()=>e.map((e=>Je(e)?e.value:Ke(e)?fn(e):V(e)?et(e,r,2):void 0)):V(e)?t?()=>et(e,r,2):()=>{if(!r||!r.isUnmounted)return a&&a(),et(e,r,3,[d])}:h,t&&o){const e=c;c=()=>fn(e())}const d=e=>{a=g.options.onStop=()=>{et(e,r,4)}};let f=k(e)?[]:an;const m=()=>{if(g.active)if(t){const e=g();(o||u||B(e,f))&&(a&&a(),tt(t,r,3,[e,f===an?void 0:f,d]),f=e)}else g()};let v;m.allowRecurse=!!t,v="sync"===l?m:"post"===l?()=>En(m,r&&r.suspense):()=>{!r||r.isMounted?function(e){bt(e,ct,rt,at)}(m):m()};const g=Z(c,{lazy:!0,onTrack:s,onTrigger:i,scheduler:v});return Oo(g),t?n?m():f=g():"post"===l?En(g,r&&r.suspense):g(),()=>{ee(g),r&&_(r.effects,g)}}function pn(e,t,n){const o=this.proxy;return dn(E(e)?()=>o[e]:e.bind(o),t.bind(o),n,this)}function fn(e,t=new Set){if(!F(e)||t.has(e))return e;if(t.add(e),Je(e))fn(e.value,t);else if(k(e))for(let n=0;n<e.length;n++)fn(e[n],t);else if(C(e)||S(e))e.forEach((e=>{fn(e,t)}));else for(const n in e)fn(e[n],t);return e}const hn=e=>e.type.__isKeepAlive;function mn(e,t,n=wo){const o=e.__wdc||(e.__wdc=()=>{let t=n;for(;t;){if(t.isDeactivated)return;t=t.parent}e()});if(Xt(t,o,n),n){let e=n.parent;for(;e&&e.parent;)hn(e.parent.vnode)&&vn(o,t,n,e),e=e.parent}}function vn(e,t,n,o){const l=Xt(t,e,o,!0);sn((()=>{_(o[t],l)}),n)}const gn=e=>"_"===e[0]||"$stable"===e,yn=e=>k(e)?e.map(to):[to(e)],bn=(e,t,n)=>Dt((e=>yn(t(e))),n),_n=(e,t)=>{const n=e._ctx;for(const o in e){if(gn(o))continue;const l=e[o];if(V(l))t[o]=bn(0,l,n);else if(null!=l){const e=yn(l);t[o]=()=>e}}},wn=(e,t)=>{const n=yn(t);e.slots.default=()=>n};function xn(e,t){if(null===Vt)return e;const n=Vt.proxy,o=e.dirs||(e.dirs=[]);for(let e=0;e<t.length;e++){let[l,s,i,r=p]=t[e];V(l)&&(l={mounted:l,updated:l}),o.push({dir:l,instance:n,value:s,oldValue:void 0,arg:i,modifiers:r})}return e}function kn(e,t,n,o){const l=e.dirs,s=t&&t.dirs;for(let i=0;i<l.length;i++){const r=l[i];s&&(r.oldValue=s[i].value);const c=r.dir[o];c&&tt(c,n,8,[e.el,r,e,t])}}function Sn(){return{app:null,config:{isNativeTag:m,performance:!1,globalProperties:{},optionMergeStrategies:{},isCustomElement:m,errorHandler:void 0,warnHandler:void 0},mixins:[],components:{},directives:{},provides:Object.create(null)}}let Cn=0;function On(e,t){return function(n,o=null){null==o||F(o)||(o=null);const l=Sn(),s=new Set;let i=!1;const r=l.app={_uid:Cn++,_component:n,_props:o,_container:null,_context:l,version:Lo,get config(){return l.config},set config(e){},use:(e,...t)=>(s.has(e)||(e&&V(e.install)?(s.add(e),e.install(r,...t)):V(e)&&(s.add(e),e(r,...t))),r),mixin:e=>(l.mixins.includes(e)||(l.mixins.push(e),(e.props||e.emits)&&(l.deopt=!0)),r),component:(e,t)=>t?(l.components[e]=t,r):l.components[e],directive:(e,t)=>t?(l.directives[e]=t,r):l.directives[e],mount(s,c){if(!i){const a=Jn(n,o);return a.appContext=l,c&&t?t(a,s):e(a,s),i=!0,r._container=s,s.__vue_app__=r,a.component.proxy}},unmount(){i&&e(null,r._container)},provide:(e,t)=>(l.provides[e]=t,r)};return r}}const Vn={scheduler:gt,allowRecurse:!0},En=function(e,t){t&&t.pendingBranch?k(e)?t.effects.push(...e):t.effects.push(e):bt(e,dt,ut,pt)},Ln=(e,t,n,o,l)=>{if(k(e))return void e.forEach(((e,s)=>Ln(e,t&&(k(t)?t[s]:t),n,o,l)));let s;s=l?4&l.shapeFlag?l.component.proxy:l.el:null;const{i:i,r:r}=e,c=t&&t.r,a=i.refs===p?i.refs={}:i.refs,u=i.setupState;if(null!=c&&c!==r&&(E(c)?(a[c]=null,x(u,c)&&(u[c]=null)):Je(c)&&(c.value=null)),E(r)){const e=()=>{a[r]=s,x(u,r)&&(u[r]=s)};s?(e.id=-1,En(e,o)):e()}else if(Je(r)){const e=()=>{r.value=s};s?(e.id=-1,En(e,o)):e()}else V(r)&&et(r,n,12,[s,a])};function Fn(e){return function(e,t){const{insert:n,remove:o,patchProp:l,forcePatchProp:s,createElement:i,createText:r,createComment:c,setText:a,setElementText:u,parentNode:d,nextSibling:m,setScopeId:v=h,cloneNode:g,insertStaticContent:y}=e,_=(e,t,n,o=null,l=null,s=null,i=!1,r=!1)=>{e&&!Kn(e,t)&&(o=te(e),Q(e,l,s,!0),e=null),-2===t.patchFlag&&(r=!1,t.dynamicChildren=null);const{type:c,ref:a,shapeFlag:u}=t;switch(c){case Dn:w(e,t,n,o);break;case $n:k(e,t,n,o);break;case An:null==e&&S(t,n,o,i);break;case zn:q(e,t,n,o,l,s,i,r);break;default:1&u?C(e,t,n,o,l,s,i,r):6&u?P(e,t,n,o,l,s,i,r):(64&u||128&u)&&c.process(e,t,n,o,l,s,i,r,oe)}null!=a&&l&&Ln(a,e&&e.ref,l,s,t)},w=(e,t,o,l)=>{if(null==e)n(t.el=r(t.children),o,l);else{const n=t.el=e.el;t.children!==e.children&&a(n,t.children)}},k=(e,t,o,l)=>{null==e?n(t.el=c(t.children||""),o,l):t.el=e.el},S=(e,t,n,o)=>{[e.el,e.anchor]=y(e.children,t,n,o)},C=(e,t,n,o,l,s,i,r)=>{i=i||"svg"===t.type,null==e?O(t,n,o,l,s,i,r):L(e,t,l,s,i,r)},O=(e,t,o,s,r,c,a)=>{let d,p;const{type:f,props:h,shapeFlag:m,transition:v,scopeId:y,patchFlag:b,dirs:_}=e;if(e.el&&void 0!==g&&-1===b)d=e.el=g(e.el);else{if(d=e.el=i(e.type,c,h&&h.is),8&m?u(d,e.children):16&m&&E(e.children,d,null,s,r,c&&"foreignObject"!==f,a||!!e.dynamicChildren),_&&kn(e,null,s,"created"),h){for(const t in h)I(t)||l(d,t,null,h[t],c,e.children,s,r,X);(p=h.onVnodeBeforeMount)&&Mn(p,s,e)}V(d,y,e,s)}_&&kn(e,null,s,"beforeMount");const w=(!r||r&&!r.pendingBranch)&&v&&!v.persisted;w&&v.beforeEnter(d),n(d,t,o),((p=h&&h.onVnodeMounted)||w||_)&&En((()=>{p&&Mn(p,s,e),w&&v.enter(d),_&&kn(e,null,s,"mounted")}),r)},V=(e,t,n,o)=>{if(t&&v(e,t),o){const l=o.type.__scopeId;l&&l!==t&&v(e,l+"-s"),n===o.subTree&&V(e,o.vnode.scopeId,o.vnode,o.parent)}},E=(e,t,n,o,l,s,i,r=0)=>{for(let c=r;c<e.length;c++){const r=e[c]=i?no(e[c]):to(e[c]);_(null,r,t,n,o,l,s,i)}},L=(e,t,n,o,i,r)=>{const c=t.el=e.el;let{patchFlag:a,dynamicChildren:d,dirs:f}=t;a|=16&e.patchFlag;const h=e.props||p,m=t.props||p;let v;if((v=m.onVnodeBeforeUpdate)&&Mn(v,n,t,e),f&&kn(t,e,n,"beforeUpdate"),a>0){if(16&a)R(c,t,h,m,n,o,i);else if(2&a&&h.class!==m.class&&l(c,"class",null,m.class,i),4&a&&l(c,"style",h.style,m.style,i),8&a){const r=t.dynamicProps;for(let t=0;t<r.length;t++){const a=r[t],u=h[a],d=m[a];(d!==u||s&&s(c,a))&&l(c,a,u,d,i,e.children,n,o,X)}}1&a&&e.children!==t.children&&u(c,t.children)}else r||null!=d||R(c,t,h,m,n,o,i);const g=i&&"foreignObject"!==t.type;d?F(e.dynamicChildren,d,c,n,o,g):r||j(e,t,c,null,n,o,g),((v=m.onVnodeUpdated)||f)&&En((()=>{v&&Mn(v,n,t,e),f&&kn(t,e,n,"updated")}),o)},F=(e,t,n,o,l,s)=>{for(let i=0;i<t.length;i++){const r=e[i],c=t[i],a=r.type===zn||!Kn(r,c)||6&r.shapeFlag||64&r.shapeFlag?d(r.el):n;_(r,c,a,null,o,l,s,!0)}},R=(e,t,n,o,i,r,c)=>{if(n!==o){for(const a in o){if(I(a))continue;const u=o[a],d=n[a];(u!==d||s&&s(e,a))&&l(e,a,d,u,c,t.children,i,r,X)}if(n!==p)for(const s in n)I(s)||s in o||l(e,s,n[s],null,c,t.children,i,r,X)}},q=(e,t,o,l,s,i,c,a)=>{const u=t.el=e?e.el:r(""),d=t.anchor=e?e.anchor:r("");let{patchFlag:p,dynamicChildren:f}=t;p>0&&(a=!0),null==e?(n(u,o,l),n(d,o,l),E(t.children,o,d,s,i,c,a)):p>0&&64&p&&f?(F(e.dynamicChildren,f,o,s,i,c),(null!=t.key||s&&t===s.subTree)&&Rn(e,t,!0)):j(e,t,o,d,s,i,c,a)},P=(e,t,n,o,l,s,i,r)=>{null==e?512&t.shapeFlag?l.ctx.activate(t,n,o,i,r):U(t,n,o,l,s,i,r):z(e,t,r)},U=(e,t,n,o,l,s,i)=>{const r=e.component=function(e,t,n){const o=e.type,l=(t?t.appContext:e.appContext)||bo,s={uid:_o++,vnode:e,type:o,parent:t,appContext:l,root:null,next:null,subTree:null,update:null,render:null,proxy:null,withProxy:null,effects:null,provides:t?t.provides:Object.create(l.provides),accessCache:null,renderCache:[],components:null,directives:null,propsOptions:Kt(o,l),emitsOptions:Ct(o,l),emit:null,emitted:null,ctx:p,data:p,props:p,attrs:p,slots:p,refs:p,setupState:p,setupContext:null,suspense:n,suspenseId:n?n.pendingId:0,asyncDep:null,asyncResolved:!1,isMounted:!1,isUnmounted:!1,isDeactivated:!1,bc:null,c:null,bm:null,m:null,bu:null,u:null,um:null,bum:null,da:null,a:null,rtg:null,rtc:null,ec:null};return s.ctx={_:s},s.root=t?t.root:s,s.emit=St.bind(null,s),s}(e,o,l);if(hn(e)&&(r.ctx.renderer=oe),function(e,t=!1){ko=t;const{props:n,children:o,shapeFlag:l}=e.vnode,s=4&l;Bt(e,n,s,t),((e,t)=>{if(32&e.vnode.shapeFlag){const n=t._;n?(e.slots=t,W(t,"_",n)):_n(t,e.slots={})}else e.slots={},t&&wn(e,t);W(e.slots,Qn,1)})(e,o);const i=s?function(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,go);const{setup:o}=n;if(o){const n=e.setupContext=o.length>1?function(e){return{attrs:e.attrs,slots:e.slots,emit:e.emit}}(e):null;wo=e,se();const l=et(o,e,0,[e.props,n]);if(ie(),wo=null,M(l)){if(t)return l.then((t=>{So(e,t)}));e.asyncDep=l}else So(e,l)}else Co(e)}(e,t):void 0;ko=!1}(r),r.asyncDep){if(l&&l.registerDep(r,D),!e.el){const e=r.subTree=Jn($n);k(null,e,t,n)}}else D(r,e,t,n,l,s,i)},z=(e,t,n)=>{const o=t.component=e.component;if(function(e,t,n){const{props:o,children:l,component:s}=e,{props:i,children:r,patchFlag:c}=t,a=s.emitsOptions;if(t.dirs||t.transition)return!0;if(!(n&&c>0))return!(!l&&!r||r&&r.$stable)||o!==i&&(o?!i||qt(o,i,a):!!i);if(1024&c)return!0;if(16&c)return o?qt(o,i,a):!!i;if(8&c){const e=t.dynamicProps;for(let t=0;t<e.length;t++){const n=e[t];if(i[n]!==o[n]&&!Ot(a,n))return!0}}return!1}(e,t,n)){if(o.asyncDep&&!o.asyncResolved)return void A(o,t,n);o.next=t,function(e){const t=st.indexOf(e);t>-1&&(st[t]=null)}(o.update),o.update()}else t.component=e.component,t.el=e.el,o.vnode=t},D=(e,t,n,o,l,s,i)=>{e.update=Z((function(){if(e.isMounted){let t,{next:n,bu:o,u:r,parent:c,vnode:a}=e,u=n;n?(n.el=a.el,A(e,n,i)):n=a,o&&H(o),(t=n.props&&n.props.onVnodeBeforeUpdate)&&Mn(t,c,n,a);const p=Lt(e),f=e.subTree;e.subTree=p,_(f,p,d(f.el),te(f),e,l,s),n.el=p.el,null===u&&function({vnode:e,parent:t},n){for(;t&&t.subTree===e;)(e=t.vnode).el=n,t=t.parent}(e,p.el),r&&En(r,l),(t=n.props&&n.props.onVnodeUpdated)&&En((()=>{Mn(t,c,n,a)}),l)}else{let i;const{el:r,props:c}=t,{bm:a,m:u,parent:d}=e;a&&H(a),(i=c&&c.onVnodeBeforeMount)&&Mn(i,d,t);const p=e.subTree=Lt(e);r&&re?re(t.el,p,e,l):(_(null,p,n,o,e,l,s),t.el=p.el),u&&En(u,l),(i=c&&c.onVnodeMounted)&&En((()=>{Mn(i,d,t)}),l);const{a:f}=e;f&&256&t.shapeFlag&&En(f,l),e.isMounted=!0}}),Vn)},A=(e,t,n)=>{t.component=e;const o=e.vnode.props;e.vnode=t,e.next=null,function(e,t,n,o){const{props:l,attrs:s,vnode:{patchFlag:i}}=e,r=Ye(l),[c]=e.propsOptions;if(!(o||i>0)||16&i){let o;Ht(e,t,l,s);for(const s in r)t&&(x(t,s)||(o=T(s))!==s&&x(t,o))||(c?!n||void 0===n[s]&&void 0===n[o]||(l[s]=Wt(c,t||p,s,void 0,e)):delete l[s]);if(s!==r)for(const e in s)t&&x(t,e)||delete s[e]}else if(8&i){const n=e.vnode.dynamicProps;for(let o=0;o<n.length;o++){const i=n[o],a=t[i];if(c)if(x(s,i))s[i]=a;else{const t=$(i);l[t]=Wt(c,r,t,a,e)}else s[i]=a}}ce(e,"set","$attrs")}(e,t.props,o,n),((e,t)=>{const{vnode:n,slots:o}=e;let l=!0,s=p;if(32&n.shapeFlag){const e=t._;e?1===e?l=!1:b(o,t):(l=!t.$stable,_n(t,o)),s=t}else t&&(wn(e,t),s={default:1});if(l)for(const e in o)gn(e)||e in s||delete o[e]})(e,t.children),_t(void 0,e.update)},j=(e,t,n,o,l,s,i,r=!1)=>{const c=e&&e.children,a=e?e.shapeFlag:0,d=t.children,{patchFlag:p,shapeFlag:f}=t;if(p>0){if(128&p)return void B(c,d,n,o,l,s,i,r);if(256&p)return void N(c,d,n,o,l,s,i,r)}8&f?(16&a&&X(c,l,s),d!==c&&u(n,d)):16&a?16&f?B(c,d,n,o,l,s,i,r):X(c,l,s,!0):(8&a&&u(n,""),16&f&&E(d,n,o,l,s,i,r))},N=(e,t,n,o,l,s,i,r)=>{t=t||f;const c=(e=e||f).length,a=t.length,u=Math.min(c,a);let d;for(d=0;d<u;d++){const o=t[d]=r?no(t[d]):to(t[d]);_(e[d],o,n,null,l,s,i,r)}c>a?X(e,l,s,!0,!1,u):E(t,n,o,l,s,i,r,u)},B=(e,t,n,o,l,s,i,r)=>{let c=0;const a=t.length;let u=e.length-1,d=a-1;for(;c<=u&&c<=d;){const o=e[c],a=t[c]=r?no(t[c]):to(t[c]);if(!Kn(o,a))break;_(o,a,n,null,l,s,i,r),c++}for(;c<=u&&c<=d;){const o=e[u],c=t[d]=r?no(t[d]):to(t[d]);if(!Kn(o,c))break;_(o,c,n,null,l,s,i,r),u--,d--}if(c>u){if(c<=d){const e=d+1,u=e<a?t[e].el:o;for(;c<=d;)_(null,t[c]=r?no(t[c]):to(t[c]),n,u,l,s,i),c++}}else if(c>d)for(;c<=u;)Q(e[c],l,s,!0),c++;else{const p=c,h=c,m=new Map;for(c=h;c<=d;c++){const e=t[c]=r?no(t[c]):to(t[c]);null!=e.key&&m.set(e.key,c)}let v,g=0;const y=d-h+1;let b=!1,w=0;const x=new Array(y);for(c=0;c<y;c++)x[c]=0;for(c=p;c<=u;c++){const o=e[c];if(g>=y){Q(o,l,s,!0);continue}let a;if(null!=o.key)a=m.get(o.key);else for(v=h;v<=d;v++)if(0===x[v-h]&&Kn(o,t[v])){a=v;break}void 0===a?Q(o,l,s,!0):(x[a-h]=c+1,a>=w?w=a:b=!0,_(o,t[a],n,null,l,s,i,r),g++)}const k=b?function(e){const t=e.slice(),n=[0];let o,l,s,i,r;const c=e.length;for(o=0;o<c;o++){const c=e[o];if(0!==c){if(l=n[n.length-1],e[l]<c){t[o]=l,n.push(o);continue}for(s=0,i=n.length-1;s<i;)r=(s+i)/2|0,e[n[r]]<c?s=r+1:i=r;c<e[n[s]]&&(s>0&&(t[o]=n[s-1]),n[s]=o)}}s=n.length,i=n[s-1];for(;s-- >0;)n[s]=i,i=t[i];return n}(x):f;for(v=k.length-1,c=y-1;c>=0;c--){const e=h+c,r=t[e],u=e+1<a?t[e+1].el:o;0===x[c]?_(null,r,n,u,l,s,i):b&&(v<0||c!==k[v]?K(r,n,u,2):v--)}}},K=(e,t,o,l,s=null)=>{const{el:i,type:r,transition:c,children:a,shapeFlag:u}=e;if(6&u)return void K(e.component.subTree,t,o,l);if(128&u)return void e.suspense.move(t,o,l);if(64&u)return void r.move(e,t,o,oe);if(r===zn){n(i,t,o);for(let e=0;e<a.length;e++)K(a[e],t,o,l);return void n(e.anchor,t,o)}if(2!==l&&1&u&&c)if(0===l)c.beforeEnter(i),n(i,t,o),En((()=>c.enter(i)),s);else{const{leave:e,delayLeave:l,afterLeave:s}=c,r=()=>n(i,t,o),a=()=>{e(i,(()=>{r(),s&&s()}))};l?l(i,r,a):a()}else n(i,t,o)},Q=(e,t,n,o=!1,l=!1)=>{const{type:s,props:i,ref:r,children:c,dynamicChildren:a,shapeFlag:u,patchFlag:d,dirs:p}=e;if(null!=r&&t&&Ln(r,null,t,n,null),256&u)return void t.ctx.deactivate(e);const f=1&u&&p;let h;if((h=i&&i.onVnodeBeforeUnmount)&&Mn(h,t,e),6&u)J(e.component,n,o);else{if(128&u)return void e.suspense.unmount(n,o);f&&kn(e,null,t,"beforeUnmount"),a&&(s!==zn||d>0&&64&d)?X(a,t,n,!1,!0):(s===zn&&(128&d||256&d)||!l&&16&u)&&X(c,t,n),64&u&&(o||!qn(e.props))&&e.type.remove(e,oe),o&&G(e)}((h=i&&i.onVnodeUnmounted)||f)&&En((()=>{h&&Mn(h,t,e),f&&kn(e,null,t,"unmounted")}),n)},G=e=>{const{type:t,el:n,anchor:l,transition:s}=e;if(t===zn)return void Y(n,l);const i=()=>{o(n),s&&!s.persisted&&s.afterLeave&&s.afterLeave()};if(1&e.shapeFlag&&s&&!s.persisted){const{leave:t,delayLeave:o}=s,l=()=>t(n,i);o?o(e.el,i,l):l()}else i()},Y=(e,t)=>{let n;for(;e!==t;)n=m(e),o(e),e=n;o(t)},J=(e,t,n)=>{const{bum:o,effects:l,update:s,subTree:i,um:r}=e;if(o&&H(o),l)for(let e=0;e<l.length;e++)ee(l[e]);s&&(ee(s),Q(i,e,t,n)),r&&En(r,t),En((()=>{e.isUnmounted=!0}),t),t&&t.pendingBranch&&!t.isUnmounted&&e.asyncDep&&!e.asyncResolved&&e.suspenseId===t.pendingId&&(t.deps--,0===t.deps&&t.resolve())},X=(e,t,n,o=!1,l=!1,s=0)=>{for(let i=s;i<e.length;i++)Q(e[i],t,n,o,l)},te=e=>6&e.shapeFlag?te(e.component.subTree):128&e.shapeFlag?e.suspense.next():m(e.anchor||e.el),ne=(e,t)=>{null==e?t._vnode&&Q(t._vnode,null,null,!0):_(t._vnode||null,e,t),wt(),t._vnode=e},oe={p:_,um:Q,m:K,r:G,mt:U,mc:E,pc:j,pbc:F,n:te,o:e};let le,re;t&&([le,re]=t(oe));return{render:ne,hydrate:le,createApp:On(ne,le)}}(e)}function Mn(e,t,n,o=null){tt(e,t,7,[n,o])}function Rn(e,t,n=!1){const o=e.children,l=t.children;if(k(o)&&k(l))for(let e=0;e<o.length;e++){const t=o[e];let s=l[e];1&s.shapeFlag&&!s.dynamicChildren&&((s.patchFlag<=0||32===s.patchFlag)&&(s=l[e]=no(l[e]),s.el=t.el),n||Rn(t,s))}}const qn=e=>e&&(e.disabled||""===e.disabled);function Pn(e){return function(e,t,n=!0){const o=Vt||wo;if(o){const n=o.type;if("components"===e){const e=n.displayName||n.name;if(e&&(e===t||e===$(t)||e===j($(t))))return n}return In(o[e]||n[e],t)||In(o.appContext[e],t)}}("components",e)||e}const Un=Symbol();function In(e,t){return e&&(e[t]||e[$(t)]||e[j($(t))])}const zn=Symbol(void 0),Dn=Symbol(void 0),$n=Symbol(void 0),An=Symbol(void 0),Tn=[];let jn=null;function Nn(e=!1){Tn.push(jn=e?null:[])}function Bn(){Tn.pop(),jn=Tn[Tn.length-1]||null}function Hn(e,t,n,o,l){const s=Jn(e,t,n,o,l,!0);return s.dynamicChildren=jn||f,Bn(),jn&&jn.push(s),s}function Wn(e){return!!e&&!0===e.__v_isVNode}function Kn(e,t){return e.type===t.type&&e.key===t.key}const Qn="__vInternal",Gn=({key:e})=>null!=e?e:null,Yn=({ref:e})=>null!=e?k(e)?e:{i:Vt,r:e}:null,Jn=function(e,t=null,n=null,l=0,s=null,i=!1){e&&e!==Un||(e=$n);if(Wn(e)){const o=Xn(e,t,!0);return n&&oo(o,n),o}c=e,V(c)&&"__vccOpts"in c&&(e=e.__vccOpts);var c;if(t){(Ge(t)||Qn in t)&&(t=b({},t));let{class:e,style:n}=t;e&&!E(e)&&(t.class=r(e)),F(n)&&(Ge(n)&&!k(n)&&(n=b({},n)),t.style=o(n))}const a=E(e)?1:(e=>e.__isSuspense)(e)?128:(e=>e.__isTeleport)(e)?64:F(e)?4:V(e)?2:0,u={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Gn(t),ref:t&&Yn(t),scopeId:$t,children:null,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetAnchor:null,staticCount:0,shapeFlag:a,patchFlag:l,dynamicProps:s,dynamicChildren:null,appContext:null};if(oo(u,n),128&a){const{content:e,fallback:t}=function(e){const{shapeFlag:t,children:n}=e;let o,l;return 32&t?(o=Pt(n.default),l=Pt(n.fallback)):(o=Pt(n),l=to(null)),{content:o,fallback:l}}(u);u.ssContent=e,u.ssFallback=t}!i&&jn&&(l>0||6&a)&&32!==l&&jn.push(u);return u};function Xn(e,t,n=!1){const{props:l,ref:s,patchFlag:i}=e,c=t?function(...e){const t=b({},e[0]);for(let n=1;n<e.length;n++){const l=e[n];for(const e in l)if("class"===e)t.class!==l.class&&(t.class=r([t.class,l.class]));else if("style"===e)t.style=o([t.style,l.style]);else if(g(e)){const n=t[e],o=l[e];n!==o&&(t[e]=n?[].concat(n,l[e]):o)}else""!==e&&(t[e]=l[e])}return t}(l||{},t):l;return{__v_isVNode:!0,__v_skip:!0,type:e.type,props:c,key:c&&Gn(c),ref:t&&t.ref?n&&s?k(s)?s.concat(Yn(t)):[s,Yn(t)]:Yn(t):s,scopeId:e.scopeId,children:e.children,target:e.target,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==zn?-1===i?16:16|i:i,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:e.transition,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Xn(e.ssContent),ssFallback:e.ssFallback&&Xn(e.ssFallback),el:e.el,anchor:e.anchor}}function Zn(e=" ",t=0){return Jn(Dn,null,e,t)}function eo(e="",t=!1){return t?(Nn(),Hn($n,null,e)):Jn($n,null,e)}function to(e){return null==e||"boolean"==typeof e?Jn($n):k(e)?Jn(zn,null,e):"object"==typeof e?null===e.el?e:Xn(e):Jn(Dn,null,String(e))}function no(e){return null===e.el?e:Xn(e)}function oo(e,t){let n=0;const{shapeFlag:o}=e;if(null==t)t=null;else if(k(t))n=16;else if("object"==typeof t){if(1&o||64&o){const n=t.default;return void(n&&(n._c&&It(1),oo(e,n()),n._c&&It(-1)))}{n=32;const o=t._;o||Qn in t?3===o&&Vt&&(1024&Vt.vnode.patchFlag?(t._=2,e.patchFlag|=1024):t._=1):t._ctx=Vt}}else V(t)?(t={default:t,_ctx:Vt},n=32):(t=String(t),64&o?(n=16,t=[Zn(t)]):n=8);e.children=t,e.shapeFlag|=n}function lo(e,t){if(wo){let n=wo.provides;const o=wo.parent&&wo.parent.provides;o===n&&(n=wo.provides=Object.create(o)),n[e]=t}else;}function so(e,t,n=!1){const o=wo||Vt;if(o){const l=null==o.parent?o.vnode.appContext&&o.vnode.appContext.provides:o.parent.provides;if(l&&e in l)return l[e];if(arguments.length>1)return n&&V(t)?t():t}}let io=!1;function ro(e,t,n=[],o=[],l=[],s=!1){const{mixins:i,extends:r,data:c,computed:a,methods:u,watch:d,provide:p,inject:f,components:m,directives:v,beforeMount:g,mounted:y,beforeUpdate:_,updated:w,activated:x,deactivated:S,beforeDestroy:C,beforeUnmount:O,destroyed:E,unmounted:L,render:M,renderTracked:R,renderTriggered:q,errorCaptured:P}=t,U=e.proxy,I=e.ctx,z=e.appContext.mixins;if(s&&M&&e.render===h&&(e.render=M),s||(io=!0,co("beforeCreate","bc",t,e,z),io=!1,po(e,z,n,o,l)),r&&ro(e,r,n,o,l,!0),i&&po(e,i,n,o,l),f)if(k(f))for(let e=0;e<f.length;e++){const t=f[e];I[t]=so(t)}else for(const e in f){const t=f[e];F(t)?I[e]=so(t.from||e,t.default,!0):I[e]=so(t)}if(u)for(const e in u){const t=u[e];V(t)&&(I[e]=t.bind(U))}if(s?c&&n.push(c):(n.length&&n.forEach((t=>fo(e,t,U))),c&&fo(e,c,U)),a)for(const e in a){const t=a[e],n=Vo({get:V(t)?t.bind(U,U):V(t.get)?t.get.bind(U,U):h,set:!V(t)&&V(t.set)?t.set.bind(U):h});Object.defineProperty(I,e,{enumerable:!0,configurable:!0,get:()=>n.value,set:e=>n.value=e})}var D;d&&o.push(d),!s&&o.length&&o.forEach((e=>{for(const t in e)ho(e[t],I,U,t)})),p&&l.push(p),!s&&l.length&&l.forEach((e=>{const t=V(e)?e.call(U):e;for(const e in t)lo(e,t[e])})),s&&(m&&b(e.components||(e.components=b({},e.type.components)),m),v&&b(e.directives||(e.directives=b({},e.type.directives)),v)),s||co("created","c",t,e,z),g&&en(g.bind(U)),y&&tn(y.bind(U)),_&&nn(_.bind(U)),w&&on(w.bind(U)),x&&mn(x.bind(U),"a",D),S&&function(e,t){mn(e,"da",t)}(S.bind(U)),P&&((e,t=wo)=>{Xt("ec",e,t)})(P.bind(U)),R&&cn(R.bind(U)),q&&rn(q.bind(U)),O&&ln(O.bind(U)),L&&sn(L.bind(U))}function co(e,t,n,o,l){uo(e,t,l,o);const{extends:s,mixins:i}=n;s&&ao(e,t,s,o),i&&uo(e,t,i,o);const r=n[e];r&&tt(r.bind(o.proxy),o,t)}function ao(e,t,n,o){n.extends&&ao(e,t,n.extends,o);const l=n[e];l&&tt(l.bind(o.proxy),o,t)}function uo(e,t,n,o){for(let l=0;l<n.length;l++){const s=n[l].mixins;s&&uo(e,t,s,o);const i=n[l][e];i&&tt(i.bind(o.proxy),o,t)}}function po(e,t,n,o,l){for(let s=0;s<t.length;s++)ro(e,t[s],n,o,l,!0)}function fo(e,t,n){const o=t.call(n,n);F(o)&&(e.data===p?e.data=Be(o):b(e.data,o))}function ho(e,t,n,o){const l=o.includes(".")?function(e,t){const n=t.split(".");return()=>{let t=e;for(let e=0;e<n.length&&t;e++)t=t[n[e]];return t}}(n,o):()=>n[o];if(E(e)){const n=t[e];V(n)&&un(l,n)}else if(V(e))un(l,e.bind(n));else if(F(e))if(k(e))e.forEach((e=>ho(e,t,n,o)));else{const o=V(e.handler)?e.handler.bind(n):t[e.handler];V(o)&&un(l,o,e)}}function mo(e,t,n){const o=n.appContext.config.optionMergeStrategies,{mixins:l,extends:s}=t;s&&mo(e,s,n),l&&l.forEach((t=>mo(e,t,n)));for(const l in t)o&&x(o,l)?e[l]=o[l](e[l],t[l],n.proxy,l):e[l]=t[l]}const vo=b(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>e.parent&&e.parent.proxy,$root:e=>e.root&&e.root.proxy,$emit:e=>e.emit,$options:e=>function(e){const t=e.type,{__merged:n,mixins:o,extends:l}=t;if(n)return n;const s=e.appContext.mixins;if(!s.length&&!o&&!l)return t;const i={};return s.forEach((t=>mo(i,t,e))),mo(i,t,e),t.__merged=i}(e),$forceUpdate:e=>()=>gt(e.update),$nextTick:e=>vt.bind(e.proxy),$watch:e=>pn.bind(e)}),go={get({_:e},t){const{ctx:n,setupState:o,data:l,props:s,accessCache:i,type:r,appContext:c}=e;if("__v_skip"===t)return!0;let a;if("$"!==t[0]){const r=i[t];if(void 0!==r)switch(r){case 0:return o[t];case 1:return l[t];case 3:return n[t];case 2:return s[t]}else{if(o!==p&&x(o,t))return i[t]=0,o[t];if(l!==p&&x(l,t))return i[t]=1,l[t];if((a=e.propsOptions[0])&&x(a,t))return i[t]=2,s[t];if(n!==p&&x(n,t))return i[t]=3,n[t];io||(i[t]=4)}}const u=vo[t];let d,f;return u?("$attrs"===t&&re(e,0,t),u(e)):(d=r.__cssModules)&&(d=d[t])?d:n!==p&&x(n,t)?(i[t]=3,n[t]):(f=c.config.globalProperties,x(f,t)?f[t]:void 0)},set({_:e},t,n){const{data:o,setupState:l,ctx:s}=e;if(l!==p&&x(l,t))l[t]=n;else if(o!==p&&x(o,t))o[t]=n;else if(t in e.props)return!1;return("$"!==t[0]||!(t.slice(1)in e))&&(s[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:o,appContext:l,propsOptions:s}},i){let r;return void 0!==n[i]||e!==p&&x(e,i)||t!==p&&x(t,i)||(r=s[0])&&x(r,i)||x(o,i)||x(vo,i)||x(l.config.globalProperties,i)}},yo=b({},go,{get(e,t){if(t!==Symbol.unscopables)return go.get(e,t,e)},has:(e,n)=>"_"!==n[0]&&!t(n)}),bo=Sn();let _o=0;let wo=null;const xo=e=>{wo=e};let ko=!1;function So(e,t,n){var o;V(t)?e.render=t:F(t)&&(e.setupState=Ke(o=t)?o:new Proxy(o,Xe)),Co(e)}function Co(e,t){const n=e.type;e.render||(e.render=n.render||h,e.render._rc&&(e.withProxy=new Proxy(e.ctx,yo))),wo=e,ro(e,n),wo=null}function Oo(e){wo&&(wo.effects||(wo.effects=[])).push(e)}function Vo(e){const t=function(e){let t,n;return V(e)?(t=e,n=h):(t=e.get,n=e.set),new Ze(t,n,V(e)||!e.set)}(e);return Oo(t.effect),t}function Eo(e,t){let n;if(k(e)||E(e)){n=new Array(e.length);for(let o=0,l=e.length;o<l;o++)n[o]=t(e[o],o)}else if("number"==typeof e){n=new Array(e);for(let o=0;o<e;o++)n[o]=t(o+1,o)}else if(F(e))if(e[Symbol.iterator])n=Array.from(e,t);else{const o=Object.keys(e);n=new Array(o.length);for(let l=0,s=o.length;l<s;l++){const s=o[l];n[l]=t(e[s],s,l)}}else n=[];return n}const Lo="3.0.2",Fo="http://www.w3.org/2000/svg",Mo="undefined"!=typeof document?document:null;let Ro,qo;const Po={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n)=>t?Mo.createElementNS(Fo,e):Mo.createElement(e,n?{is:n}:void 0),createText:e=>Mo.createTextNode(e),createComment:e=>Mo.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Mo.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},cloneNode:e=>e.cloneNode(!0),insertStaticContent(e,t,n,o){const l=o?qo||(qo=Mo.createElementNS(Fo,"svg")):Ro||(Ro=Mo.createElement("div"));l.innerHTML=e;const s=l.firstChild;let i=s,r=i;for(;i;)r=i,Po.insert(i,t,n),i=l.firstChild;return[s,r]}};const Uo=/\s*!important$/;function Io(e,t,n){if(k(n))n.forEach((n=>Io(e,t,n)));else if(t.startsWith("--"))e.setProperty(t,n);else{const o=function(e,t){const n=Do[t];if(n)return n;let o=$(t);if("filter"!==o&&o in e)return Do[t]=o;o=j(o);for(let n=0;n<zo.length;n++){const l=zo[n]+o;if(l in e)return Do[t]=l}return t}(e,t);Uo.test(n)?e.setProperty(T(o),n.replace(Uo,""),"important"):e[o]=n}}const zo=["Webkit","Moz","ms"],Do={};const $o="http://www.w3.org/1999/xlink";let Ao=Date.now;"undefined"!=typeof document&&Ao()>document.createEvent("Event").timeStamp&&(Ao=()=>performance.now());let To=0;const jo=Promise.resolve(),No=()=>{To=0};function Bo(e,t,n,o){e.addEventListener(t,n,o)}function Ho(e,t,n,o,l=null){const s=e._vei||(e._vei={}),i=s[t];if(o&&i)i.value=o;else{const[n,r]=function(e){let t;if(Wo.test(e)){let n;for(t={};n=e.match(Wo);)e=e.slice(0,e.length-n[0].length),t[n[0].toLowerCase()]=!0}return[e.slice(2).toLowerCase(),t]}(t);if(o){Bo(e,n,s[t]=function(e,t){const n=e=>{(e.timeStamp||Ao())>=n.attached-1&&tt(function(e,t){if(k(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map((e=>t=>!t._stopped&&e(t)))}return t}(e,n.value),t,5,[e])};return n.value=e,n.attached=(()=>To||(jo.then(No),To=Ao()))(),n}(o,l),r)}else i&&(!function(e,t,n,o){e.removeEventListener(t,n,o)}(e,n,i,r),s[t]=void 0)}}const Wo=/(?:Once|Passive|Capture)$/;const Ko=/^on[a-z]/;const Qo=e=>{const t=e.props["onUpdate:modelValue"];return k(t)?e=>H(t,e):t};function Go(e){e.target.composing=!0}function Yo(e){const t=e.target;t.composing&&(t.composing=!1,function(e,t){const n=document.createEvent("HTMLEvents");n.initEvent(t,!0,!0),e.dispatchEvent(n)}(t,"input"))}const Jo={created(e,{modifiers:{lazy:t,trim:n,number:o}},l){e._assign=Qo(l);const s=o||"number"===e.type;Bo(e,t?"change":"input",(t=>{if(t.target.composing)return;let o=e.value;n?o=o.trim():s&&(o=K(o)),e._assign(o)})),n&&Bo(e,"change",(()=>{e.value=e.value.trim()})),t||(Bo(e,"compositionstart",Go),Bo(e,"compositionend",Yo),Bo(e,"change",Yo))},mounted(e,{value:t}){e.value=null==t?"":t},beforeUpdate(e,{value:t,modifiers:{trim:n,number:o}},l){if(e._assign=Qo(l),e.composing)return;if(document.activeElement===e){if(n&&e.value.trim()===t)return;if((o||"number"===e.type)&&K(e.value)===t)return}const s=null==t?"":t;e.value!==s&&(e.value=s)}},Xo={created(e,t,n){Zo(e,t,n),e._assign=Qo(n),Bo(e,"change",(()=>{const t=e._modelValue,n=function(e){return"_value"in e?e._value:e.value}(e),o=e.checked,l=e._assign;if(k(t)){const e=a(t,n),s=-1!==e;if(o&&!s)l(t.concat(n));else if(!o&&s){const n=[...t];n.splice(e,1),l(n)}}else C(t)?o?t.add(n):t.delete(n):l(el(e,o))}))},beforeUpdate(e,t,n){e._assign=Qo(n),Zo(e,t,n)}};function Zo(e,{value:t,oldValue:n},o){e._modelValue=t,k(t)?e.checked=a(t,o.props.value)>-1:C(t)?e.checked=t.has(o.props.value):t!==n&&(e.checked=c(t,el(e,!0)))}function el(e,t){const n=t?"_trueValue":"_falseValue";return n in e?e[n]:t}const tl=["ctrl","shift","alt","meta"],nl={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&0!==e.button,middle:e=>"button"in e&&1!==e.button,right:e=>"button"in e&&2!==e.button,exact:(e,t)=>tl.some((n=>e[n+"Key"]&&!t.includes(n)))},ol=(e,t)=>(n,...o)=>{for(let e=0;e<t.length;e++){const o=nl[t[e]];if(o&&o(n,t))return}return e(n,...o)},ll={beforeMount(e,{value:t},{transition:n}){e._vod="none"===e.style.display?"":e.style.display,n&&t?n.beforeEnter(e):sl(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:o}){!t!=!n&&(o?t?(o.beforeEnter(e),sl(e,!0),o.enter(e)):o.leave(e,(()=>{sl(e,!1)})):sl(e,t))},beforeUnmount(e,{value:t}){sl(e,t)}};function sl(e,t){e.style.display=t?e._vod:"none"}const il=b({patchProp:(e,t,o,l,s=!1,i,r,c,a)=>{switch(t){case"class":!function(e,t,n){if(null==t&&(t=""),n)e.setAttribute("class",t);else{const n=e._vtc;n&&(t=(t?[t,...n]:[...n]).join(" ")),e.className=t}}(e,l,s);break;case"style":!function(e,t,n){const o=e.style;if(n)if(E(n))t!==n&&(o.cssText=n);else{for(const e in n)Io(o,e,n[e]);if(t&&!E(t))for(const e in t)null==n[e]&&Io(o,e,"")}else e.removeAttribute("style")}(e,o,l);break;default:g(t)?y(t)||Ho(e,t,0,l,r):function(e,t,n,o){if(o)return"innerHTML"===t||!!(t in e&&Ko.test(t)&&V(n));if("spellcheck"===t||"draggable"===t)return!1;if("form"===t&&"string"==typeof n)return!1;if("list"===t&&"INPUT"===e.tagName)return!1;if(Ko.test(t)&&E(n))return!1;return t in e}(e,t,l,s)?function(e,t,n,o,l,s,i){if("innerHTML"===t||"textContent"===t)return o&&i(o,l,s),void(e[t]=null==n?"":n);if("value"!==t||"PROGRESS"===e.tagName)if(""===n&&"boolean"==typeof e[t])e[t]=!0;else if(null==n&&"string"==typeof e[t])e[t]="",e.removeAttribute(t);else try{e[t]=n}catch(e){}else{e._value=n;const t=null==n?"":n;e.value!==t&&(e.value=t)}}(e,t,l,i,r,c,a):("true-value"===t?e._trueValue=l:"false-value"===t&&(e._falseValue=l),function(e,t,o,l){if(l&&t.startsWith("xlink:"))null==o?e.removeAttributeNS($o,t.slice(6,t.length)):e.setAttributeNS($o,t,o);else{const l=n(t);null==o||l&&!1===o?e.removeAttribute(t):e.setAttribute(t,l?"":o)}}(e,t,l,s))}},forcePatchProp:(e,t)=>"value"===t},Po);let rl;class cl{static post(e,t,n){var o=this;window.wcfmoptions.poster(e,t,(function(e){n.call(o,e)}),(function(){console.log("failure")}))}}const al={style:{position:"absolute",width:"0",height:"0"},width:"0",height:"0",version:"1.1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink"},ul=Jn("defs",null,[Jn("symbol",{id:"icon-folder",viewBox:"0 0 309.267 309.267"},[Jn("g",null,[Jn("path",{style:{fill:"#D0994B"},d:"M260.944,43.491H125.64c0,0-18.324-28.994-28.994-28.994H48.323c-10.67,0-19.329,8.65-19.329,19.329\n \t\tv222.286c0,10.67,8.659,19.329,19.329,19.329h212.621c10.67,0,19.329-8.659,19.329-19.329V62.82\n \t\tC280.273,52.15,271.614,43.491,260.944,43.491z"}),Jn("path",{style:{fill:"#E4E7E7"},d:"M28.994,72.484h251.279v77.317H28.994V72.484z"}),Jn("path",{style:{fill:"#F4B459"},d:"M19.329,91.814h270.609c10.67,0,19.329,8.65,19.329,19.329l-19.329,164.298\n \t\tc0,10.67-8.659,19.329-19.329,19.329H38.658c-10.67,0-19.329-8.659-19.329-19.329L0,111.143C0,100.463,8.659,91.814,19.329,91.814z\n \t\t"})])]),Jn("symbol",{id:"icon-unfold",viewBox:"0 0 32 32"},[Jn("path",{d:"M28,14H18V4c0-1.104-0.896-2-2-2s-2,0.896-2,2v10H4c-1.104,0-2,0.896-2,2s0.896,2,2,2h10v10c0,1.104,0.896,2,2,2 s2-0.896,2-2V18h10c1.104,0,2-0.896,2-2S29.104,14,28,14z"})]),Jn("symbol",{id:"icon-fold",viewBox:"0 0 24 24"},[Jn("g",{fill:"none",stroke:"#000","stroke-width":"3","stroke-linecap":"round","stroke-linejoin":"round"},[Jn("line",{x1:"5",y1:"12",x2:"19",y2:"12"})])]),Jn("symbol",{id:"icon-file",viewBox:"0 0 56 56"},[Jn("g",null,[Jn("path",{style:{fill:"#E9E9E0"},d:"M36.985,0H7.963C7.155,0,6.5,0.655,6.5,1.926V55c0,0.345,0.655,1,1.463,1h40.074\n \t\tc0.808,0,1.463-0.655,1.463-1V12.978c0-0.696-0.093-0.92-0.257-1.085L37.607,0.257C37.442,0.093,37.218,0,36.985,0z"}),Jn("polygon",{style:{fill:"#D9D7CA"},points:"37.5,0.151 37.5,12 49.349,12 \t"}),Jn("circle",{style:{fill:"#F3D55B"},cx:"18.931",cy:"14.431",r:"4.569"}),Jn("polygon",{style:{fill:"#26B99A"},points:"6.5,39 17.5,39 49.5,39 49.5,28 39.5,18.5 29,30 23.517,24.517 \t"}),Jn("path",{style:{fill:"#14A085"},d:"M48.037,56H7.963C7.155,56,6.5,55.345,6.5,54.537V39h43v15.537C49.5,55.345,48.845,56,48.037,56z"}),Jn("g")])]),Jn("svg",{id:"icon-ok",viewBox:"0 0 256 256"},[Jn("g",{fill:"green",stroke:"none",transform:"translate(0.000000,256.000000) scale(0.100000,-0.100000)"},[Jn("path",{d:"M1064 2545 c-406 -72 -744 -324 -927 -690 -96 -193 -127 -333 -127 -575 0 -243 33 -387 133 -585 177 -351 518 -606 907 -676 118 -22 393 -17 511 8 110 24 252 78 356 136 327 183 569 525 628 887 19 122 19 338 0 460 -81 498 -483 914 -990 1025 -101 22 -389 28 -491 10z m814 -745 c39 -27 73 -59 77 -70 9 -27 10 -25 -372 -590 -345 -510 -357 -524 -420 -512 -19 4 -98 74 -250 225 -123 121 -225 228 -228 238 -3 10 1 31 9 47 20 40 125 132 149 132 11 0 79 -59 162 -140 79 -77 146 -140 149 -140 3 0 38 48 78 108 95 143 465 678 496 720 35 46 64 42 150 -18z"})])]),Jn("svg",{id:"icon-not-available",viewBox:"0 0 500.000000 500.000000",preserveAspectRatio:"xMidYMid meet"},[Jn("g",{fill:"#b11010",stroke:"none",transform:"translate(0.000000,500.000000) scale(0.100000,-0.100000)"},[Jn("path",{d:"M2315 4800 c-479 -35 -928 -217 -1303 -527 -352 -293 -615 -702 -738 -1151 -104 -380 -104 -824 0 -1204 107 -389 302 -724 591 -1013 354 -354 785 -572 1279 -646 196 -30 476 -30 672 0 494 74 925 292 1279 646 354 354 571 784 646 1279 30 197 30 475 0 672 -75 495 -292 925 -646 1279 -289 289 -624 484 -1013 591 -228 62 -528 91 -767 74z m353 -511 c458 -50 874 -272 1170 -624 417 -497 536 -1174 308 -1763 -56 -145 -176 -367 -235 -434 -4 -4 -566 552 -1250 1236 l-1243 1243 94 60 c354 229 754 327 1156 282z m864 -3200 c-67 -59 -289 -179 -434 -235 -946 -366 -2024 172 -2322 1158 -47 155 -66 276 -73 453 -13 362 84 704 290 1023 l60 94 1243 -1243 c684 -684 1240 -1246 1236 -1250z"})])])],-1);const dl={render:function(e,t){return Nn(),Hn("svg",al,[ul])}};var pl={name:"SelectBox",props:{options:Array,optionsLabel:String,optionsKey:String,placeholder:String,modelValue:String},emits:["update:modelValue"],data:()=>({selectedOption:null,isOpen:!1}),watch:{modelValue(e,t){this.select(e)}},mounted(){document.addEventListener("click",this.onDocumentClick),this.select(this.modelValue)},beforeUnmount:function(){document.removeEventListener("click",this.onDocumentClick)},methods:{onDocumentClick(e){e.target.parentNode!=this.$el&&(this.isOpen=!1)},onBoxClick(){this.isOpen=!this.isOpen},onOptionClick(e){this.isOpen=!1,this.select(e.target.getAttribute("data-key")),this.$emit("update:modelValue",this.selectedOption[this.optionsKey])},getOptionByKey(e){return this.options.find((t=>t[this.optionsKey]==e))},select(e){this.selectedOption=this.getOptionByKey(e)}}};const fl=Nt("data-v-a8799ec4");Tt("data-v-a8799ec4");const hl={class:"selectbox"},ml={class:"dropdown"},vl={class:"icon"};jt();const gl=fl((function(e,t,n,o,l,s){return Nn(),Hn("div",hl,[Jn("div",{class:["box",{"is-open":l.isOpen}],onClick:t[1]||(t[1]=(...e)=>s.onBoxClick(...e))},u(l.selectedOption?l.selectedOption[n.optionsLabel]:n.placeholder),3),xn(Jn("div",ml,[(Nn(!0),Hn(zn,null,Eo(n.options,(o=>(Nn(),Hn("div",null,[Jn("div",{class:"option","data-key":o[n.optionsKey],onClick:t[2]||(t[2]=e=>s.onOptionClick(e))},[Zn(u(o[n.optionsLabel])+" ",1),o.icon?zt(e.$slots,"default",{key:0},(()=>[(Nn(),Hn("svg",vl,[Jn("use",{"xlink:href":"#icon-"+o.icon},null,8,["xlink:href"])]))])):eo("",!0)],8,["data-key"])])))),256))],512),[[ll,l.isOpen]])])}));pl.render=gl,pl.__scopeId="data-v-a8799ec4";var yl={name:"EncodingSelector",components:{SelectBox:pl},props:{converter:String,modelValue:String},emits:["update:modelValue"],data(){return{encoding:this.modelValue,encodings:[{id:"auto",name:"Auto"},{id:"lossy",name:"Lossy"},{id:"lossless",name:"Lossless"}]}},watch:{modelValue(e,t){this.encoding=e}},methods:{onUpdate(){this.$emit("update:modelValue",this.encoding)},encodingSupported(){return"gd"!=this.converter&&"ewww"!=this.converter}}};const bl=Nt("data-v-8124cea8");Tt("data-v-8124cea8");const _l={class:"encoding-selector"};jt();const wl=bl((function(e,t,n,o,l,s){const i=Pn("SelectBox");return Nn(),Hn("div",_l,[xn(Jn("div",null,"lossy (gd can only produce lossy webp)",512),[[ll,"gd"==n.converter]]),xn(Jn("div",null,"lossy for jpeg, lossy for png (ewww behaviour)",512),[[ll,"ewww"==n.converter]]),xn(Jn("div",null,[Jn(i,{modelValue:l.encoding,"onUpdate:modelValue":[t[1]||(t[1]=e=>l.encoding=e),s.onUpdate],options:l.encodings,optionsLabel:"name",optionsKey:"id",placeholder:"Select"},null,8,["modelValue","options","onUpdate:modelValue"])],512),[[ll,s.encodingSupported()]])])}));yl.render=wl,yl.__scopeId="data-v-8124cea8";var xl={name:"QualityLossy",components:{},props:{converter:String,qualityDetectionSupported:Boolean,modelValue:Object},emits:["update:modelValue"],mounted(){this.updateLocalModel(this.modelValue)},data:()=>({auto:{max:15,limit:!0},noAuto:{quality:75}}),watch:{modelValue(e,t){this.updateLocalModel(e)}},methods:{updateLocalModel(e){this.auto.max=e.max,this.auto.limit="auto"==e.quality,this.noAuto.quality=e.default},onLocalChange(){this.qualityDetectionSupported?this.$emit("update:modelValue",{quality:this.auto.limit?"auto":this.auto.max,max:this.auto.max,default:this.auto.max}):this.$emit("update:modelValue",{quality:this.noAuto.quality,max:this.noAuto.quality,default:this.noAuto.quality})}}};const kl=Nt("data-v-74dc2e9e");Tt("data-v-74dc2e9e");const Sl={class:"quality-lossy"},Cl={key:0,class:"auto"},Ol=Jn("label",null,"Prevent excess?",-1),Vl={key:1,class:"no-auto"};jt();const El=kl((function(e,t,n,o,l,s){return Nn(),Hn("div",Sl,[n.qualityDetectionSupported?(Nn(),Hn("div",Cl,[xn(Jn("input",{type:"number",class:"input-quality","onUpdate:modelValue":t[1]||(t[1]=e=>l.auto.max=e),onInput:t[2]||(t[2]=e=>s.onLocalChange())},null,544),[[Jo,l.auto.max]]),Ol,xn(Jn("input",{type:"checkbox","onUpdate:modelValue":t[3]||(t[3]=e=>l.auto.limit=e),onInput:t[4]||(t[4]=e=>s.onLocalChange())},null,544),[[Xo,l.auto.limit]])])):eo("",!0),n.qualityDetectionSupported?eo("",!0):(Nn(),Hn("div",Vl,[xn(Jn("input",{class:"input-quality","onUpdate:modelValue":t[5]||(t[5]=e=>l.noAuto.quality=e),type:"number",onInput:t[6]||(t[6]=e=>s.onLocalChange())},null,544),[[Jo,l.noAuto.quality]])]))])}));xl.render=El,xl.__scopeId="data-v-74dc2e9e";var Ll={name:"QualityLossless",components:{},props:{modelValue:Object},emits:["update:modelValue"],mounted(){this.updateLocalModel(this.modelValue)},data:()=>({quality:60}),watch:{modelValue(e,t){this.updateLocalModel(e)}},methods:{updateLocalModel(e){this.quality=e.quality},onLocalChange(){this.$emit("update:modelValue",{quality:this.quality})}}};const Fl=Nt("data-v-db8a8a84");Tt("data-v-db8a8a84");const Ml={class:"quality-lossless"};jt();const Rl=Fl((function(e,t,n,o,l,s){return Nn(),Hn("div",Ml,[xn(Jn("input",{class:"input-quality","onUpdate:modelValue":t[1]||(t[1]=e=>l.quality=e),type:"number",onInput:t[2]||(t[2]=e=>s.onLocalChange())},null,544),[[Jo,l.quality]])])}));Ll.render=Rl,Ll.__scopeId="data-v-db8a8a84";var ql={name:"ConvertOptions",components:{SelectBox:pl,EncodingSelector:yl,QualityLossy:xl,QualityLossless:Ll},props:{item:Object},computed:{converterSupportsEncoding(){return this.converterSupports("encoding")},converterSupportsNearLossless(){return this.converterSupports("nearLossless")},converterSupportsMethod(){return this.converterSupports("method")}},data:()=>({converters:[{id:"cwebp",name:"cwebp"},{id:"vips",name:"vips"},{id:"ewww",name:"ewww"},{id:"gd",name:"gd"}],supportedOptions:{encoding:["cwebp","vips","imagick","gmagick","imagemagick","graphicsmagick","ffmpeg","wpc"],method:["cwebp","imagick","gmagick","imagemagick","graphicsmagick","ffmpeg","wpc"],nearLossless:["cwebp","vips","wpc"]},qualityDetectionSupported:!0,encoding:"auto",converter:"cwebp",qualityLossy:{quality:"auto",max:85,default:75},"use-nice":!0,qualityLossless:{quality:60},method:5,converterOptions:{ewww:{"api-key":"bogus-key-for-testing","check-key-status-before-converting":!1},cwebp:{}}}),mounted(){var e=this;cl.post("conversion-settings",{folder:""},(function(t){if(t.supportedStandardOptions){var n=t.supportedStandardOptions;n.encoding&&(e.supportedOptions.encoding=n.encoding),n.method&&(e.supportedOptions.method=n.method),n.nearLossless&&(e.supportedOptions.nearLossless=n.nearLossless)}var o=null;if(t.converters?o=t.converters:t.systemStatus.converterRequirements&&(o=e.converters),t.systemStatus.converterRequirements)for(var l=t.systemStatus.converterRequirements,s=0;s<o.length;s++){var i=o[s].id;if(l[i]){var r=l[i];for(var c in r)!1===r[c]&&(o[s].icon="not-available")}}if(o){e.converters=o;var a=e.converter;e.converter="vips",e.converter=a}if(t.overrideDefaults){var u=t.overrideDefaults;u.converter&&(e.converter=u.converter),u.encoding&&(e.encoding=u.encoding),u.method&&(e.method=u.method)}})),this.qualityDetectionSupported||(this.qualityLossy.quality=this.qualityLossy.default)},watch:{converter(e,t){}},methods:{optionSupported(e,t){t=this.converter;return this.supportedOptions[e].find((function(e){return e==t}))},converterSupports(e){return this.optionSupported(e,this.converter)}}};const Pl=Nt("data-v-115f004a");Tt("data-v-115f004a");const Ul={class:"table-table convert-options"},Il=Jn("div",null,[Jn("label",null,"Converter")],-1),zl=Jn("div",null,[Jn("label",null,"WebP encoding")],-1),Dl=Jn("div",null,[Jn("label",null,"Method (0-5)")],-1),$l={key:0},Al=Jn("div",null,[Jn("label",null,"Api key")],-1);jt();const Tl=Pl((function(e,t,n,o,l,s){const i=Pn("SelectBox"),r=Pn("EncodingSelector"),c=Pn("QualityLossy"),a=Pn("QualityLossless");return Nn(),Hn(zn,null,[Jn("div",Ul,[Jn("div",null,[Il,Jn("div",null,[Jn(i,{modelValue:l.converter,"onUpdate:modelValue":t[1]||(t[1]=e=>l.converter=e),options:l.converters,optionsLabel:"name",optionsKey:"id",placeholder:"Select converter"},null,8,["modelValue","options"])])]),xn(Jn("div",null,[zl,Jn("div",null,[Jn(r,{modelValue:l.encoding,"onUpdate:modelValue":t[2]||(t[2]=e=>l.encoding=e),converter:l.converter},null,8,["modelValue","converter"])])],512),[[ll,l.converter&&s.converterSupportsEncoding]]),xn(Jn("div",null,[Jn("div",null,[Jn("label",null,"Quality"+u(s.converterSupportsEncoding&&"lossy"!=l.encoding?" (lossy)":""),1)]),Jn("div",null,[Jn(c,{modelValue:l.qualityLossy,"onUpdate:modelValue":t[3]||(t[3]=e=>l.qualityLossy=e),converter:l.converter,qualityDetectionSupported:l.qualityDetectionSupported},null,8,["modelValue","converter","qualityDetectionSupported"])])],512),[[ll,l.converter&&("auto"==l.encoding||"lossy"==l.encoding||!s.converterSupportsEncoding)]]),xn(Jn("div",null,[Jn("div",null,[Jn("label",null,"Quality"+u("lossless"!=l.encoding?" (lossless)":""),1)]),Jn("div",null,[Jn(a,{modelValue:l.qualityLossless,"onUpdate:modelValue":t[4]||(t[4]=e=>l.qualityLossless=e),converter:l.converter},null,8,["modelValue","converter"])])],512),[[ll,s.converterSupportsNearLossless&&("auto"==l.encoding||"lossless"==l.encoding)]]),xn(Jn("div",null,[Dl,Jn("div",null,[xn(Jn("input",{type:"number",class:"method","onUpdate:modelValue":t[5]||(t[5]=e=>l.method=e)},null,512),[[Jo,l.method]])])],512),[[ll,s.converterSupportsMethod]]),"ewww"==l.converter?(Nn(),Hn("div",$l,[Al,Jn("div",null,[xn(Jn("input",{"onUpdate:modelValue":t[6]||(t[6]=e=>l.converterOptions.ewww["api-key"]=e)},null,512),[[Jo,l.converterOptions.ewww["api-key"]]])])])):eo("",!0)]),Jn("pre",null," Converter: "+u(l.converter)+"\n Encoding: "+u(l.encoding)+"\n Quality (lossy):\n quality: "+u(l.qualityLossy.quality)+",\n max: "+u(l.qualityLossy.max)+",\n\n default: "+u(l.qualityLossy.default)+"\n",1)],64)}));ql.render=Tl,ql.__scopeId="data-v-115f004a";var jl={name:"FileItem",emits:["foldUnfoldClick"],props:{item:Object},data:()=>({hover:!1}),inject:["wcfm"],methods:{getWCFM(){return this.wcfm},getFullPath(){for(var e=this.$parent,t=[];null!==e&&null!==e.$parent;)e.item&&t.push(e.item.name),e=e.$parent;return t.reverse().join("/")},infoClick(){this.getWCFM().displayInfo(this.getFullPath())},convertClick(){this.getWCFM().onConvertClick(this.getFullPath())}}};const Nl=Nt("data-v-a2787766");Tt("data-v-a2787766");const Bl={key:0,class:"icon-fold"},Hl=Jn("use",{"xlink:href":"#icon-fold"},null,-1),Wl={key:1,class:"icon-unfold"},Kl=Jn("use",{"xlink:href":"#icon-unfold"},null,-1),Ql=Jn("use",{"xlink:href":"#icon-folder"},null,-1),Gl={key:2,class:"icon-file"},Yl=Jn("use",{"xlink:href":"#icon-file"},null,-1),Jl={class:"buttons"};jt();const Xl=Nl((function(e,t,n,o,l,s){return Nn(),Hn("div",{class:"fileitem",onMouseover:t[5]||(t[5]=e=>l.hover=!0),onMouseleave:t[6]||(t[6]=e=>l.hover=!1)},[Jn("p",null,[n.item.isDir?(Nn(),Hn("span",{key:0,class:"foldUnfold",onClick:t[1]||(t[1]=e=>this.$emit("foldUnfoldClick"))},[n.item.isOpen?(Nn(),Hn("svg",Bl,[Hl])):eo("",!0),n.item.isOpen?eo("",!0):(Nn(),Hn("svg",Wl,[Kl]))])):eo("",!0),n.item.isDir?(Nn(),Hn("svg",{key:1,class:"icon-folder",onClick:t[2]||(t[2]=e=>this.$emit("foldUnfoldClick"))},[Ql])):eo("",!0),n.item.isDir?eo("",!0):(Nn(),Hn("svg",Gl,[Yl])),Zn(" "+u(n.item.name)+" ",1),Jn("div",Jl,[l.hover?(Nn(),Hn("button",{key:0,onClick:t[3]||(t[3]=ol((e=>s.infoClick()),["stop"]))},"Info")):eo("",!0),l.hover?(Nn(),Hn("button",{key:1,onClick:t[4]||(t[4]=ol((e=>s.convertClick()),["stop"])),innerHTML:n.item.isConverted?"Reconvert":"Convert"},null,8,["innerHTML"])):eo("",!0)])])],32)}));jl.render=Xl,jl.__scopeId="data-v-a2787766";var Zl={name:"FileTree",components:{FileItem:jl},props:{item:Object},methods:{toggle(){this.item.isOpen=!this.item.isOpen}}};const es={key:0,class:"tree"};Zl.render=function(e,t,n,o,l,s){const i=Pn("FileItem"),r=Pn("FileTree");return Nn(),Hn(zn,null,[Jn(i,{item:n.item,onDblclick:t[1]||(t[1]=e=>s.toggle()),onClick:t[2]||(t[2]=e=>s.toggle())},null,8,["item"]),void 0!==n.item.children&&n.item.isOpen?(Nn(),Hn("ul",es,[(Nn(!0),Hn(zn,null,Eo(n.item.children,(e=>(Nn(),Hn("li",null,[Jn(r,{item:e},null,8,["item"])])))),256))])):eo("",!0)],64)};var ts={name:"InfoPane",components:{},props:{info:Object},methods:{}};const ns={key:0},os=Jn("h2",null,"Original",-1),ls=Jn("br",null,null,-1),ss=Jn("br",null,null,-1),is={key:1},rs=Jn("h2",null,"Converted",-1),cs=Jn("br",null,null,-1),as=Jn("br",null,null,-1),us={key:2},ds=Jn("h2",null,"Conversion log",-1);ts.render=function(e,t,n,o,l,s){return Nn(),Hn(zn,null,[n.info.original?(Nn(),Hn("div",ns,[os,Zn(" Filename: "+u(n.info.original.name),1),ls,Zn(" Size: "+u(n.info.original.size),1),ss])):eo("",!0),n.info.converted?(Nn(),Hn("div",is,[rs,Zn(" Filename: "+u(n.info.converted.name),1),cs,Zn(" Size: "+u(n.info.converted.size),1),as])):eo("",!0),n.info.log?(Nn(),Hn("div",us,[ds,Zn(" "+u(n.info.log),1)])):eo("",!0)],64)};var ps={name:"multipane",props:{layout:{type:String,default:"vertical"}},data:()=>({isResizing:!1}),computed:{classnames(){return["multipane","layout-"+this.layout.slice(0,1),this.isResizing?"is-resizing":""]},cursor(){return this.isResizing?"vertical"==this.layout?"col-resize":"row-resize":""},userSelect(){return this.isResizing?"none":""}},methods:{onMouseDown({target:e,pageX:t,pageY:n}){if("string"==typeof e.className&&e.className.match("multipane-resizer")){let o=this,{$el:l,layout:s}=o,i=e.previousElementSibling,{offsetWidth:r,offsetHeight:c}=i,a=!!(i.style.width+"").match("%");const{addEventListener:u,removeEventListener:d}=window,p=(e,t=0)=>{if(t-=30,"vertical"==s){let n=l.clientWidth,o=e+t;return i.style.width=a?o/n*100+"%":o+"px"}if("horizontal"==s){let n=l.clientHeight,o=e+t;return i.style.height=a?o/n*100+"%":o+"px"}};o.isResizing=!0;let f=p();o.$emit("paneResizeStart",i,e,f);const h=function({pageX:l,pageY:a}){f="vertical"==s?p(r,l-t):p(c,a-n),o.$emit("paneResize",i,e,f)},m=function(){f=p("vertical"==s?i.clientWidth:i.clientHeight),o.isResizing=!1,d("mousemove",h),d("mouseup",m),o.$emit("paneResizeStop",i,e,f)};u("mousemove",h),u("mouseup",m)}}}};ps.render=function(e,t,n,o,l,s){return Nn(),Hn("div",{class:s.classnames,style:{cursor:s.cursor,userSelect:s.userSelect},onMousedown:t[1]||(t[1]=(...e)=>s.onMouseDown(...e))},[zt(e.$slots,"default")],38)};const fs={class:"multipane-resizer"},hs=Jn("div",null,null,-1);const ms={render:function(e,t){return Nn(),Hn("div",fs,[hs,zt(e.$slots,"default")])}};var vs={name:"WCFM",components:{SVGs:dl,ConvertOptions:ql,FileTree:Zl,InfoPane:ts,Multipane:ps,MultipaneResizer:ms},methods:{onConvertClick(e){alert(e)},displayInfo(e){var t=this;cl.post("info",{path:e},(function(e){t.selectedInfo=e}))}},mounted(){var e=this;cl.post("get-tree",{folder:""},(function(t){e.item=t}))},data:()=>({selectedPath:null,selectedItem:null,item:{},selectedInfo:{}}),provide(){return{wcfm:this}}};const gs={class:"pane",style:{width:"48%"}},ys={class:"pane",style:{flexGrow:1}},bs=Jn("hr",null,null,-1);vs.render=function(e,t,n,o,l,s){const i=Pn("SVGs"),r=Pn("FileTree"),c=Pn("multipane-resizer"),a=Pn("ConvertOptions"),u=Pn("InfoPane"),d=Pn("multipane");return Nn(),Hn(zn,null,[Jn(i),Jn(d,{class:"mainpanel",layout:"vertical"},{default:Dt((()=>[Jn("div",gs,[Jn(r,{item:l.item},null,8,["item"])]),Jn(c),Jn("div",ys,[Jn(a),bs,Jn(u,{info:l.selectedInfo},null,8,["info"])])])),_:1})],64)};const _s=((...e)=>{const t=(rl||(rl=Fn(il))).createApp(...e),{mount:n}=t;return t.mount=e=>{const o=function(e){if(E(e)){return document.querySelector(e)}return e}(e);if(!o)return;const l=t._component;V(l)||l.render||l.template||(l.template=o.innerHTML),o.innerHTML="";const s=n(o);return o.removeAttribute("v-cloak"),o.setAttribute("data-v-app",""),s},t})(vs);window.wcfmoptions||(window.wcfmoptions={},window.wcfmoptions.poster=function(e,t,n,o){switch(e){case"get-tree":var l={name:"root",isDir:!0,isOpen:!0,children:[{name:"folder",isDir:!0,children:[{name:"file",isDir:!1},{name:"subfolder",isDir:!0,children:[{name:"file",isDir:!1}]},{name:"file",isDir:!1}]},{name:"file",isDir:!1,isConverted:!0},{name:"file2",isDir:!1,isConverted:!1}]};break;case"conversion-settings":l={converters:[{id:"cwebp",name:"cwebp"},{id:"vips",name:"vips"},{id:"ewww",name:"ewww"},{id:"gd",name:"gd"}],supportedStandardOptions:{encoding:["cwebp","vips","imagick","gmagick","imagemagick","graphicsmagick","ffmpeg","wpc"],method:["cwebp","imagick","gmagick","imagemagick","graphicsmagick","ffmpeg","wpc"],nearLossless:["cwebp","vips","wpc"]},overrideDefaults:{converter:"cwebp",encoding:"lossless",method:3},systemStatus:{converterRequirements:{gd:{extensionLoaded:!1,compiledWithWebP:!0}}}};break;case"info":l={original:{name:"file.png",size:100,url:""},converted:{name:"file.png.webp",size:70,url:""},log:"blah blah blah"};break;default:l="ok"}n(l)}),_s.mount("#webpconvert-filemanager");
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import{_ as u,o as c,c as d,a as Z,b as n,n as w,d as m,e as v,t as f,p as C,f as S,r as h,g as _,F as z,h as F,i as y,j as M,k as P,m as H,V as R,w as b,l as k,v as V,s as Y,q as L,u as j}from"./vendor.b4e4e155.js";const B=function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))l(s);new MutationObserver(s=>{for(const i of s)if(i.type==="childList")for(const a of i.addedNodes)a.tagName==="LINK"&&a.rel==="modulepreload"&&l(a)}).observe(document,{childList:!0,subtree:!0});function o(s){const i={};return s.integrity&&(i.integrity=s.integrity),s.referrerpolicy&&(i.referrerPolicy=s.referrerpolicy),s.crossorigin==="use-credentials"?i.credentials="include":s.crossorigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function l(s){if(s.ep)return;s.ep=!0;const i=o(s);fetch(s.href,i)}};B();class x{static post(t,o,l){var s=this;window.wcfmoptions.poster(t,o,function(i){l.call(s,i)},function(){console.log("failure")})}}const U={},E={style:{position:"absolute",width:"0",height:"0"},width:"0",height:"0",version:"1.1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink"},A=Z(`<defs><symbol id="icon-folder" viewBox="0 0 309.267 309.267"><g><path style="fill:#D0994B;" d="M260.944,43.491H125.64c0,0-18.324-28.994-28.994-28.994H48.323c-10.67,0-19.329,8.65-19.329,19.329
2
+ v222.286c0,10.67,8.659,19.329,19.329,19.329h212.621c10.67,0,19.329-8.659,19.329-19.329V62.82
3
+ C280.273,52.15,271.614,43.491,260.944,43.491z"></path><path style="fill:#E4E7E7;" d="M28.994,72.484h251.279v77.317H28.994V72.484z"></path><path style="fill:#F4B459;" d="M19.329,91.814h270.609c10.67,0,19.329,8.65,19.329,19.329l-19.329,164.298
4
+ c0,10.67-8.659,19.329-19.329,19.329H38.658c-10.67,0-19.329-8.659-19.329-19.329L0,111.143C0,100.463,8.659,91.814,19.329,91.814z
5
+ "></path></g></symbol><symbol id="icon-unfold" viewBox="0 0 32 32"><path d="M28,14H18V4c0-1.104-0.896-2-2-2s-2,0.896-2,2v10H4c-1.104,0-2,0.896-2,2s0.896,2,2,2h10v10c0,1.104,0.896,2,2,2 s2-0.896,2-2V18h10c1.104,0,2-0.896,2-2S29.104,14,28,14z"></path></symbol><symbol id="icon-fold" viewBox="0 0 24 24"><g fill="none" stroke="#000" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="5" y1="12" x2="19" y2="12"></line></g></symbol><symbol id="icon-file" viewBox="0 0 56 56"><g><path style="fill:#E9E9E0;" d="M36.985,0H7.963C7.155,0,6.5,0.655,6.5,1.926V55c0,0.345,0.655,1,1.463,1h40.074
6
+ c0.808,0,1.463-0.655,1.463-1V12.978c0-0.696-0.093-0.92-0.257-1.085L37.607,0.257C37.442,0.093,37.218,0,36.985,0z"></path><polygon style="fill:#D9D7CA;" points="37.5,0.151 37.5,12 49.349,12 "></polygon><circle style="fill:#F3D55B;" cx="18.931" cy="14.431" r="4.569"></circle><polygon style="fill:#26B99A;" points="6.5,39 17.5,39 49.5,39 49.5,28 39.5,18.5 29,30 23.517,24.517 "></polygon><path style="fill:#14A085;" d="M48.037,56H7.963C7.155,56,6.5,55.345,6.5,54.537V39h43v15.537C49.5,55.345,48.845,56,48.037,56z"></path><g></g></g></symbol><svg id="icon-ok" viewBox="0 0 256 256"><g fill="green" stroke="none" transform="translate(0.000000,256.000000) scale(0.100000,-0.100000)"><path d="M1064 2545 c-406 -72 -744 -324 -927 -690 -96 -193 -127 -333 -127 -575 0 -243 33 -387 133 -585 177 -351 518 -606 907 -676 118 -22 393 -17 511 8 110 24 252 78 356 136 327 183 569 525 628 887 19 122 19 338 0 460 -81 498 -483 914 -990 1025 -101 22 -389 28 -491 10z m814 -745 c39 -27 73 -59 77 -70 9 -27 10 -25 -372 -590 -345 -510 -357 -524 -420 -512 -19 4 -98 74 -250 225 -123 121 -225 228 -228 238 -3 10 1 31 9 47 20 40 125 132 149 132 11 0 79 -59 162 -140 79 -77 146 -140 149 -140 3 0 38 48 78 108 95 143 465 678 496 720 35 46 64 42 150 -18z"></path></g></svg><svg id="icon-not-available" viewBox="0 0 500.000000 500.000000" preserveAspectRatio="xMidYMid meet"><g fill="#b11010" stroke="none" transform="translate(0.000000,500.000000) scale(0.100000,-0.100000)"><path d="M2315 4800 c-479 -35 -928 -217 -1303 -527 -352 -293 -615 -702 -738 -1151 -104 -380 -104 -824 0 -1204 107 -389 302 -724 591 -1013 354 -354 785 -572 1279 -646 196 -30 476 -30 672 0 494 74 925 292 1279 646 354 354 571 784 646 1279 30 197 30 475 0 672 -75 495 -292 925 -646 1279 -289 289 -624 484 -1013 591 -228 62 -528 91 -767 74z m353 -511 c458 -50 874 -272 1170 -624 417 -497 536 -1174 308 -1763 -56 -145 -176 -367 -235 -434 -4 -4 -566 552 -1250 1236 l-1243 1243 94 60 c354 229 754 327 1156 282z m864 -3200 c-67 -59 -289 -179 -434 -235 -946 -366 -2024 172 -2322 1158 -47 155 -66 276 -73 453 -13 362 84 704 290 1023 l60 94 1243 -1243 c684 -684 1240 -1246 1236 -1250z"></path></g></svg><svg id="icon-help" viewBox="0 0 400 400" style="enable-background:new 0 0 400 400;" xml:space="preserve"><g><path style="fill:#cccccc;" d="M199.996,0C89.719,0,0,89.72,0,200c0,110.279,89.719,200,199.996,200C310.281,400,400,310.279,400,200
7
+ C400,89.72,310.281,0,199.996,0z M199.996,373.77C104.187,373.77,26.23,295.816,26.23,200
8
+ c0-95.817,77.957-173.769,173.766-173.769c95.816,0,173.772,77.953,173.772,173.769
9
+ C373.769,295.816,295.812,373.77,199.996,373.77z"></path><path style="fill:#000000;" d="M199.996,91.382c-35.176,0-63.789,28.616-63.789,63.793c0,7.243,5.871,13.115,13.113,13.115
10
+ c7.246,0,13.117-5.873,13.117-13.115c0-20.71,16.848-37.562,37.559-37.562c20.719,0,37.566,16.852,37.566,37.562
11
+ c0,20.714-16.849,37.566-37.566,37.566c-7.242,0-13.113,5.873-13.113,13.114v45.684c0,7.243,5.871,13.115,13.113,13.115
12
+ s13.117-5.872,13.117-13.115v-33.938c28.905-6.064,50.68-31.746,50.68-62.427C263.793,119.998,235.176,91.382,199.996,91.382z"></path><path d="M200.004,273.738c-9.086,0-16.465,7.371-16.465,16.462s7.379,16.465,16.465,16.465c9.094,0,16.457-7.374,16.457-16.465
13
+ S209.098,273.738,200.004,273.738z"></path></g></svg><svg id="icon-help2" viewBox="0 0 431.855 431.855" style="enable-background:new 0 0 431.855 431.855;" xml:space="preserve"><g><path style="fill:#aaaaaa;" d="M215.936,0C96.722,0,0.008,96.592,0.008,215.814c0,119.336,96.714,216.041,215.927,216.041
14
+ c119.279,0,215.911-96.706,215.911-216.041C431.847,96.592,335.214,0,215.936,0z M231.323,335.962
15
+ c-5.015,4.463-10.827,6.706-17.411,6.706c-6.812,0-12.754-2.203-17.826-6.617c-5.08-4.406-7.625-10.575-7.625-18.501
16
+ c0-7.031,2.463-12.949,7.373-17.745c4.91-4.796,10.933-7.194,18.078-7.194c7.031,0,12.949,2.398,17.753,7.194
17
+ c4.796,4.796,7.202,10.713,7.202,17.745C238.858,325.362,236.346,331.5,231.323,335.962z M293.856,180.934
18
+ c-3.853,7.145-8.429,13.306-13.737,18.501c-5.292,5.194-14.81,13.924-28.548,26.198c-3.788,3.463-6.836,6.503-9.12,9.12
19
+ c-2.284,2.626-3.991,5.023-5.105,7.202c-1.122,2.178-1.983,4.357-2.593,6.535c-0.61,2.17-1.528,5.999-2.772,11.469
20
+ c-2.113,11.608-8.754,17.411-19.915,17.411c-5.804,0-10.681-1.894-14.656-5.69c-3.959-3.796-5.934-9.429-5.934-16.907
21
+ c0-9.372,1.455-17.493,4.357-24.361c2.886-6.869,6.747-12.892,11.543-18.086c4.804-5.194,11.274-11.356,19.427-18.501
22
+ c7.145-6.251,12.307-10.965,15.485-14.144c3.186-3.186,5.861-6.73,8.031-10.632c2.187-3.91,3.26-8.145,3.26-12.721
23
+ c0-8.933-3.308-16.46-9.957-22.597c-6.641-6.137-15.209-9.21-25.703-9.21c-12.282,0-21.321,3.097-27.125,9.291
24
+ c-5.804,6.194-10.705,15.314-14.729,27.369c-3.804,12.616-11.006,18.923-21.598,18.923c-6.251,0-11.526-2.203-15.826-6.609
25
+ c-4.292-4.406-6.438-9.177-6.438-14.314c0-10.6,3.406-21.346,10.21-32.23c6.812-10.884,16.745-19.899,29.807-27.036
26
+ c13.054-7.145,28.296-10.722,45.699-10.722c16.184,0,30.466,2.991,42.854,8.966c12.388,5.966,21.963,14.087,28.718,24.361
27
+ c6.747,10.266,10.128,21.427,10.128,33.482C299.635,165.473,297.709,173.789,293.856,180.934z"></path></g></svg></defs>`,1),q=[A];function G(e,t){return c(),d("svg",E,q)}var K=u(U,[["render",G]]);const J={name:"FileItem",emits:["toggle","select"],props:{item:Object},data(){return{hover:!1,selected:!1}},inject:["wcfm"],methods:{onClick(e){this.selected=!0,this.$emit("select",this)},getWCFM(){return this.wcfm},getFullPath(){for(var e=this.$parent,t=[];e!==null&&e.$parent!==null;)e.item&&t.push(e.item.name),e=e.$parent;return t.pop(),t.reverse().join("/")},infoClick(){this.getWCFM().displayInfo(this.getFullPath())},convertClick(){this.getWCFM().onConvertClick(this.getFullPath())}}},$=e=>(C("data-v-1c7f963e"),e=e(),S(),e),Q={key:0,class:"icon-fold"},ee=$(()=>n("use",{"xlink:href":"#icon-fold"},null,-1)),te=[ee],oe={key:1,class:"icon-unfold"},se=$(()=>n("use",{"xlink:href":"#icon-unfold"},null,-1)),ie=[se],ne=$(()=>n("use",{"xlink:href":"#icon-folder"},null,-1)),le=[ne],ae={key:2,class:"icon-file"},re=$(()=>n("use",{"xlink:href":"#icon-file"},null,-1)),ce=[re];function de(e,t,o,l,s,i){return c(),d("div",{class:w({fileitem:!0,selected:s.selected}),onMouseover:t[2]||(t[2]=a=>s.hover=!0),onMouseleave:t[3]||(t[3]=a=>s.hover=!1),onClick:t[4]||(t[4]=(...a)=>i.onClick&&i.onClick(...a))},[n("p",null,[o.item.isDir?(c(),d("span",{key:0,class:w({"fold-unfold":!0,empty:o.item.children.length==0}),onClick:t[0]||(t[0]=a=>this.$emit("toggle"))},[o.item.isOpen?(c(),d("svg",Q,te)):m("",!0),o.item.isOpen?m("",!0):(c(),d("svg",oe,ie))],2)):m("",!0),o.item.isDir?(c(),d("svg",{key:1,class:"icon-folder",onClick:t[1]||(t[1]=a=>this.$emit("toggle"))},le)):m("",!0),o.item.isDir?m("",!0):(c(),d("svg",ae,ce)),v(" "+f(o.item.name),1)])],34)}var he=u(J,[["render",de],["__scopeId","data-v-1c7f963e"]]);const ue={name:"FileTree",components:{FileItem:he},emits:["select"],props:{item:Object},methods:{toggle(){this.item.isOpen=!this.item.isOpen},onSelect(e){this.$emit("select",e)}}},me={key:0,class:"tree"};function _e(e,t,o,l,s,i){const a=h("FileItem"),r=h("FileTree",!0);return c(),d(z,null,[_(a,{item:o.item,onDblclick:i.toggle,onToggle:i.toggle,onSelect:i.onSelect},null,8,["item","onDblclick","onToggle","onSelect"]),o.item.children!==void 0&&o.item.isOpen?(c(),d("ul",me,[(c(!0),d(z,null,F(o.item.children,p=>(c(),d("li",null,[_(r,{item:p,onSelect:i.onSelect},null,8,["item","onSelect"])]))),256))])):m("",!0)],64)}var fe=u(ue,[["render",_e]]);const pe={name:"Files",components:{FileTree:fe},emits:["select"],props:{item:Object,statusText:String},methods:{onSelect(e){this.selectedItem&&(this.selectedItem.selected=!1),this.selectedItem=e,this.$emit("select",this.selectedItem.getFullPath(),this.selectedItem.item.isDir)}},data(){return{selected:null}}},ge={key:1};function ve(e,t,o,l,s,i){const a=h("FileTree");return c(),d(z,null,[o.item?(c(),y(a,{key:0,item:o.item,onSelect:i.onSelect},null,8,["item","onSelect"])):m("",!0),o.item?m("",!0):(c(),d("div",ge,f(o.statusText),1))],64)}var ye=u(pe,[["render",ve]]);const ze={name:"Modal",emits:["close"],props:{title:{type:String},closeButtonText:{type:String},alignment:{type:String},width:{type:[Number,String],default:"95%"},height:{type:[Number,String],default:"95%"},maxheight:{type:[Number,String],default:"700px"}},computed:{containerStyle(){let e={width:this.width,height:this.height,"max-height":this.maxheight};return this.alignment=="center"&&(e.margin="0px auto"),this.alignment=="right"&&(e.position="absolute",e.right="10px"),e}},methods:{onCloseClick(){this.$emit("close")}}},be={class:"modal-mask"},xe={class:"modal-wrapper"},$e={class:"title"},we={class:"modal-body"},Ce={class:"content"},Se=v(" default body "),ke={class:"close-button-with-text"};function Ve(e,t,o,l,s,i){return c(),d("div",be,[n("div",xe,[n("div",{class:"modal-container",style:M(i.containerStyle)},[n("a",{class:"close-button",onClick:t[0]||(t[0]=(...a)=>i.onCloseClick&&i.onCloseClick(...a))},"X"),n("div",$e,f(o.title),1),n("div",we,[n("div",Ce,[P(e.$slots,"default",{},()=>[Se]),n("div",ke,[n("button",{onClick:t[1]||(t[1]=(...a)=>i.onCloseClick&&i.onCloseClick(...a))},f(o.closeButtonText),1)])])])],4)])])}var Ie=u(ze,[["render",Ve]]);const Fe={name:"ZoomSlider",components:{Slider:H},emits:["update:zoom"],props:{zoom:{type:Number,default:1}},watch:{exp(e,t){this.$emit("update:zoom",2**e)},zoom(e,t){this.exp=Math.log2(e)}},methods:{sliderFormat(e){return Math.round(2**e*100)+"%"}},mounted(){},data(){return{exp:0}}},Me={class:"zoom-slider"};function Re(e,t,o,l,s,i){const a=h("Slider");return c(),d("div",Me,[_(a,{modelValue:s.exp,"onUpdate:modelValue":t[0]||(t[0]=r=>s.exp=r),min:-4,max:4,width:100,step:-1,format:i.sliderFormat,tooltipPosition:"bottom",orientation:"horizontal"},null,8,["modelValue","format"])])}var Ye=u(Fe,[["render",Re]]);const Xe={name:"ImageViewport",components:{VueZoomer:R,ZoomSlider:Ye},emits:["update:zoom","update:translateX","update:translateY","load","resize"],props:{src:{type:String},height:{type:Number,default:500},zoom:{type:Number,default:1},scaleZoomRatio:{type:Number},translateX:{type:Number,default:1},translateY:{type:Number,default:1}},data(){return{ratio:1,ro:null}},watch:{height(e,t){var o;((o=this.$refs)==null?void 0:o.zoomer)&&(this.$refs.zoomer.onWindowResize(),this.$refs.zoomer.refreshContainerPos())},scaleZoomRatio(e){var t;((t=this.$refs)==null?void 0:t.zoomer)&&(this.$refs.zoomer.onWindowResize(),this.$refs.zoomer.refreshContainerPos()),this.$refs.zoomer.scale=this.zoom*this.scaleZoomRatio},zoom(e,t){this.isImageReady(),this.$refs.zoomer.scale=e*this.scaleZoomRatio},translateX(e,t){this.$refs.zoomer.translateX!=e&&(this.$refs.zoomer.translateX=e)},translateY(e,t){this.$refs.zoomer.translateY!=e&&(this.$refs.zoomer.translateY=e)}},methods:{getGoodContainerHeight(){var e,t,o;if((t=(e=this.$refs)==null?void 0:e.theimg)==null?void 0:t.naturalWidth){let l=this.$refs.theimg.naturalWidth/this.$refs.theimg.naturalHeight,i=((o=this.$refs.root)==null?void 0:o.offsetWidth)/l;return i>300&&(i=300),i}return 300},updateContainerHeight(){},isImageReady(){var e,t,o;return!(!((t=(e=this.$refs)==null?void 0:e.theimg)==null?void 0:t.naturalWidth)||!((o=this.$refs.root)==null?void 0:o.offsetWidth))},calcScaleZoomRatio(){var l,s;if(!this.isImageReady())return 1;let e=this.$refs.theimg.naturalWidth/((l=this.$refs.root)==null?void 0:l.offsetWidth),t=this.$refs.theimg.naturalHeight/((s=this.$refs.root)==null?void 0:s.offsetHeight),o=Math.max(e,t);return isNaN(o)?1:o},updateRatio(){},updateScale(){this.zoom&&(this.$refs.zoomer.scale=this.zoom*this.scaleZoomRatio)},zoomToFit(){},onImgLoad(){var e,t;((t=(e=this.$refs)==null?void 0:e.theimg)==null?void 0:t.naturalWidth)&&this.$emit("load")},onResize(){this.$emit("resize")},onDoubleTap(){console.log("double tab - zoom to 100%"),this.$emit("update:zoom",1),this.$emit("update:translateX",0),this.$emit("update:translateY",0)}},mounted(){window.ResizeObserver&&(this.ro=new ResizeObserver(this.onResize).observe(this.$refs.root)),this.$refs.zoomer.tapDetector.onDoubleTap(this.onDoubleTap),this.$watch("$refs.zoomer.scale",(e,t)=>{this.isImageReady(),this.$emit("update:zoom",e/this.scaleZoomRatio)}),this.$watch("$refs.zoomer.translateX",(e,t)=>{this.$emit("update:translateX",e)}),this.$watch("$refs.zoomer.translateY",(e,t)=>{this.$emit("update:translateY",e)})},beforeDestroy(){window.ResizeObserver&&this.ro.unobserve(this.$refs.zoomer)}},Oe={ref:"root",class:"image-viewport"},Te=["src"],De={class:"zoom-info"};function We(e,t,o,l,s,i){const a=h("v-zoomer");return c(),d("div",Oe,[_(a,{ref:"zoomer",class:"zoomer",minScale:.1,maxScale:8,onResize:i.onResize,doubleClickToZoom:!1,style:M({height:o.height+"px"}),pivot:"cursor",limitTranslation:!1,lockPanOnNoScale:!1},{default:b(()=>[n("img",{ref:"theimg",src:o.src,onLoad:t[0]||(t[0]=(...r)=>i.onImgLoad&&i.onImgLoad(...r))},null,40,Te)]),_:1},8,["minScale","onResize","style"]),n("div",De," zoom: "+f(Math.round(o.zoom*100))+"% ",1)],512)}var Ne=u(Xe,[["render",We]]);const Ze={name:"Variant",components:{ImageViewport:Ne},emits:["select","update:zoom","update:translateX","update:translateY","load","resize"],props:{title:{type:String},info:{type:Object},url:{type:String,default:""},height:{type:Number},zoom:{type:Number},scaleZoomRatio:{type:Number},translateX:{type:Number},translateY:{type:Number},variantIndex:{type:Number}},computed:{imageUrl:function(){var e;return(e=this.info)==null?void 0:e.url},filesize:function(){var t;if(!((t=this.info)==null?void 0:t.size))return"";let e=this.info.size;return e<1024?e+" bytes":(e/=1024,e<1024?Math.round(e*10)/10+" kb":(e/=1024,Math.round(e*10)/10+" MB"))}},methods:{onVariantSelect(){this.$emit("select",this.variantIndex)},onLoad(){this.$emit("load")},zoomToFit(){this.$refs.theport.zoomToFit()}},mounted(){this.$watch("$refs.theport.zoom",(e,t)=>{this.$emit("update:zoom",e)}),this.$watch("$refs.theport.translateX",(e,t)=>{this.$emit("update:translateX",e)}),this.$watch("$refs.theport.translateY",(e,t)=>{this.$emit("update:translateY",e)})},data(){return{}}},Pe={class:"variant"},He={class:"header"},Le={class:"title"},je={class:"size"};function Be(e,t,o,l,s,i){const a=h("ImageViewport");return c(),d("div",Pe,[n("div",He,[n("div",Le,f(o.title),1),n("div",je,f(i.filesize),1)]),_(a,{ref:"theport",src:i.imageUrl,height:o.height,zoom:o.zoom,"onUpdate:zoom":t[0]||(t[0]=r=>o.zoom=r),scaleZoomRatio:o.scaleZoomRatio,translateX:o.translateX,"onUpdate:translateX":t[1]||(t[1]=r=>o.translateX=r),translateY:o.translateY,"onUpdate:translateY":t[2]||(t[2]=r=>o.translateY=r),onLoad:i.onLoad,onResize:t[3]||(t[3]=r=>this.$emit("resize"))},null,8,["src","height","zoom","scaleZoomRatio","translateX","translateY","onLoad"])])}var X=u(Ze,[["render",Be],["__scopeId","data-v-0372e854"]]);const Ue={name:"Variants",components:{Variant:X},emits:["update:zoom","update:translateX","update:translateY"],props:{file:{type:Object},viewport:{type:Object},height:{type:Number},zoom:{type:Number,default:1},translateX:{type:Number,default:0},translateY:{type:Number,default:0}},watch:{file(e,t){}},methods:{onZoomChange(e){this.$emit("update:zoom",e)},onTranslateXChange(e){this.$emit("update:translateX",e)},onTranslateYChange(e){this.$emit("update:translateY",e)},sliderFormat(e){return Math.round(e*100)+"%"},changeImage(){this.imageUrl=="http://localhost:3000/src/assets/dummy.jpg"?this.imageUrl="http://localhost:3000/src/assets/dummy2.jpg":this.imageUrl="http://localhost:3000/src/assets/dummy.jpg",this.selectedVariant=-1},onVariantSelect(e){this.selectedVariant=e}},mounted(){this.$watch("$refs.variants.zoom",(e,t)=>{})},data(){var e="http://localhost:3000/src/assets/200x100.jpg";return{imageUrl:"",selectedVariant:-1,variants:[{title:"Existing conversion",size:732,url:e},{title:"Lossy, q:20",size:35e5,url:e}]}}},O=e=>(C("data-v-25a3327e"),e=e(),S(),e),Ee={class:"variants-component"},Ae=O(()=>n("br",null,null,-1)),qe=O(()=>n("br",null,null,-1)),Ge={class:"variants"};function Ke(e,t,o,l,s,i){const a=h("Variant");return c(),d("div",Ee,[v(" File: "+f(o.file)+" ",1),n("button",{onClick:t[0]||(t[0]=r=>i.changeImage())},"Change image"),Ae,qe,n("div",Ge,[(c(!0),d(z,null,F(s.variants,(r,p)=>(c(),y(a,{title:r.title,info:r,variantIndex:p,class:w({selected:p==s.selectedVariant}),height:o.height,zoom:o.zoom,"onUpdate:zoom":[t[1]||(t[1]=g=>o.zoom=g),i.onZoomChange],translateX:o.translateX,"onUpdate:translateX":[t[2]||(t[2]=g=>o.translateX=g),i.onTranslateXChange],translateY:o.translateY,"onUpdate:translateY":[t[3]||(t[3]=g=>o.translateY=g),i.onTranslateYChange],onSelect:i.onVariantSelect},null,8,["title","info","variantIndex","class","height","zoom","translateX","translateY","onSelect","onUpdate:zoom","onUpdate:translateX","onUpdate:translateY"]))),256))])])}var Je=u(Ue,[["render",Ke],["__scopeId","data-v-25a3327e"]]);const Qe={name:"FileProperties",components:{Variant:X,Variants:Je},props:{file:{type:Object,default:{}}},watch:{file(e,t){e.isDir||this.load(e.path)}},methods:{onVariantSelect(e){this.selectedVariant=e},onOriginalLoad(){if(this.updateHeight(),this.$refs.original.$refs.theport.calcScaleZoomRatio()>1){let t=this.$refs.original.$refs.theport,o=t.$refs.theimg,l=t.$refs.root,s=o.naturalWidth,i=o.naturalHeight,a=l.offsetWidth,p=this.height/i,g=a/s;this.zoom=Math.min(p,g)}else this.zoom=1;this.translateX=0,this.translateY=0},onOriginalResize(){this.updateHeight()},updateHeight(){this.$refs.original&&(this.height=this.$refs.original.$refs.theport.getGoodContainerHeight(),this.scaleZoomRatio=this.$refs.original.$refs.theport.calcScaleZoomRatio())},reset(){this.originalInfo=null,this.convertedInfo=null,this.errorMsg=""},load(e){let t=this;t.reset(),t.loading=!0,x.post("info",{path:e},function(o){o.success||(t.errorMsg=o.data),t.loading=!1,t.originalInfo=o.original,o.converted&&(t.convertedInfo=o.converted)})}},mounted(){this.file&&this.load(this.file.path)},data(){return{zoom:1,scaleZoomRatio:1,translateX:0,translateY:0,height:100,loading:!1,errorMsg:"",originalInfo:null,convertedInfo:null}}},T=e=>(C("data-v-32d950b3"),e=e(),S(),e),et={class:"file-properties"},tt={class:"path"},ot=v(" Path: "),st={class:"path"},it={key:0,class:"error"},nt=T(()=>n("p",null," Above, you see the original image. If it has been converted, you also see the converted image (provided that your browser supports webp). ",-1)),lt=T(()=>n("p",null," You can zoom in on the image, ie using scroll wheel. Both images will zoom, allowing you to compare the quality. Double-click the image to set zoom to 100%. You can also drag the image. ",-1));function at(e,t,o,l,s,i){const a=h("Variant");return c(),d("div",et,[n("div",tt,[ot,n("span",st,f(o.file.path),1)]),s.errorMsg?(c(),d("div",it,f(s.errorMsg),1)):m("",!0),k(n("div",null,"Getting info...",512),[[V,s.loading]]),k(_(a,{ref:"original",title:"Original",info:s.originalInfo,height:s.height,zoom:s.zoom,"onUpdate:zoom":t[0]||(t[0]=r=>s.zoom=r),scaleZoomRatio:s.scaleZoomRatio,translateX:s.translateX,"onUpdate:translateX":t[1]||(t[1]=r=>s.translateX=r),translateY:s.translateY,"onUpdate:translateY":t[2]||(t[2]=r=>s.translateY=r),onLoad:i.onOriginalLoad,onResize:i.onOriginalResize},null,8,["info","height","zoom","scaleZoomRatio","translateX","translateY","onLoad","onResize"]),[[V,s.originalInfo]]),k(_(a,{title:"Existing conversion",info:s.convertedInfo,height:s.height,zoom:s.zoom,"onUpdate:zoom":t[3]||(t[3]=r=>s.zoom=r),scaleZoomRatio:s.scaleZoomRatio,translateX:s.translateX,"onUpdate:translateX":t[4]||(t[4]=r=>s.translateX=r),translateY:s.translateY,"onUpdate:translateY":t[5]||(t[5]=r=>s.translateY=r)},null,8,["info","height","zoom","scaleZoomRatio","translateX","translateY"]),[[V,s.convertedInfo]]),nt,lt])}var rt=u(Qe,[["render",at],["__scopeId","data-v-32d950b3"]]);const ct={name:"FolderProperties",components:{},props:{file:{type:Object,default:{}}},watch:{file(e,t){}}},dt={class:"folder-properties"},ht={class:"path"},ut=v(" Path: "),mt={class:"path"},_t=n("p",null," You cannot do anything on folders yet. Browse to an image... ",-1);function ft(e,t,o,l,s,i){return c(),d("div",dt,[n("div",ht,[ut,n("span",mt,f(o.file.path),1)]),_t])}var pt=u(ct,[["render",ft]]);const gt={name:"Welcome"},vt={class:"welcome"},yt=n("p",{class:"headline"},[n("div",null,"Welcome to"),n("h3",null,"WebP Convert file manager 0.1")],-1),zt=n("p",null,[v(" At current stage you can browse the image files and compare the original vs the converted file."),n("br"),v(' To open a folder, click the "+" sign next to the folder name or double click the folder name')],-1),bt=n("p",null,[n("h4",null,"Whats new?"),v(" Everything is new! This is the first tentative pre-alpha work-in-progress release. ")],-1),xt=n("p",null,[n("h4",null,"Whats planned ahead?"),v(" Next thing is of course to enable you to trigger conversions. To support development, you can "),n("a",{href:"https://ko-fi.com/rosell",target:"_blank"},"buy me a cup of coffee")],-1),$t=[yt,zt,bt,xt];function wt(e,t,o,l,s,i){return c(),d("div",vt,$t)}var Ct=u(gt,[["render",wt]]);const St={name:"WCFM",components:{SVGs:K,FileProperties:rt,FolderProperties:pt,Modal:Ie,Files:ye,Splitpanes:Y.exports.Splitpanes,Pane:Y.exports.Pane,Welcome:Ct},methods:{onConvertClick(e){var l,s;let t=(s=(l=this.$refs.convertOptions)==null?void 0:l.general)==null?void 0:s.data,o={path:e,convertOptions:t};console.log(o),x.post("convert",o,function(i){console.log("convert response:",i)})},onConvertCloseClick(){console.log("CLRCL"),this.showConvertOptions=!1},onFileSelect(e,t){this.file={path:e,isDir:t}},displayInfo(e){var t=this;x.post("info",{path:e},function(o){t.selectedInfo=o})},sortTree(e){var t=this;return e.children.sort(function(o,l){return o.isDir&&!l.isDir?-1:!o.isDir&&l.isDir||o.name>l.name?1:o.name<l.name?-1:0}),e.children.forEach(function(o){o.isDir&&(o=t.sortTree(o))}),e}},mounted(){var e=this;x.post("get-tree",{folder:""},function(t){e.treeStatusText="sorting...",e.item=e.sortTree(t)})},data(){return{file:null,selectedItem:null,item:null,treeStatusText:"loading file tree...",selectedInfo:{},showConvertOptions:!1}},provide(){return{wcfm:this}}},kt={class:"wcfm",style:{overflow:"hidden"}},Vt={class:"pane-content"},It={key:0,class:"pane-content"};function Ft(e,t,o,l,s,i){const a=h("SVGs"),r=h("Files"),p=h("pane"),g=h("FileProperties"),D=h("FolderProperties"),W=h("Welcome"),N=h("splitpanes");return c(),d("div",kt,[_(a),_(N,{class:"default-theme",style:{position:"absolute",top:"0",left:"0"}},{default:b(()=>[_(p,{size:"30"},{default:b(()=>[n("div",Vt,[n("div",null,[_(r,{item:s.item,statusText:s.treeStatusText,onSelect:i.onFileSelect},null,8,["item","statusText","onSelect"])])])]),_:1}),_(p,{size:"70",style:{"overflow-y":"auto"}},{default:b(()=>[s.file?(c(),d("div",It,[s.file.isDir?m("",!0):(c(),y(g,{key:0,file:s.file},null,8,["file"])),s.file.isDir?(c(),y(D,{key:1,file:s.file},null,8,["file"])):m("",!0)])):m("",!0),s.file?m("",!0):(c(),y(W,{key:1}))]),_:1})]),_:1})])}var Mt=u(St,[["render",Ft]]);const I=L(Mt);I.use(R);I.use(j,{defaultHtml:!1});window.wcfmoptions||(window.wcfmoptions={},window.wcfmoptions.poster=function(e,t,o,l){switch(e){case"get-tree":var s={name:"root",isDir:!0,isOpen:!0,children:[{name:"empty-folder",isDir:!0,children:[]},{name:"file",isDir:!1,isConverted:!0},{name:"aaa",isDir:!1,isConverted:!0},{name:"test-folder",isDir:!0,children:[{name:"banana",isDir:!1},{name:"subfolder",isDir:!0,children:[{name:"file2",isDir:!1},{name:"file1",isDir:!1}]},{name:"apple",isDir:!1}]},{name:"file2",isDir:!1,isConverted:!1}]};break;case"conversion-settings":var s={systemStatus:{converterRequirements:{gd:{extensionLoaded:!1,compiledWithWebP:!0}}}};break;case"info":if(t.path=="root/file2")var s={original:{filename:"file.png",size:100,url:"http://localhost:3000/src/assets/200x100.jpg"},converted:{filename:"file.png.webp",size:70,url:"http://localhost:3000/src/assets/200x100.jpg"},log:"blah blah blah"};else if(t.path=="root/file")var s={original:{filename:"file.png",size:100,url:"http://localhost:3000/src/assets/dummy2.jpg"},log:"blah blah blah"};else var s={original:{filename:"file.png",size:100,url:"http://localhost:3000/src/assets/dummy.jpg"},converted:{filename:"file.png.webp",size:70,url:"http://localhost:3000/src/assets/dummy.jpg"},log:"blah blah blah"};break;case"convert":var s={success:!1,msg:"Image type could not be detected"};break;default:var s="ok";break}o(s)});I.mount("#webpconvert-filemanager");
vendor/composer/ClassLoader.php CHANGED
@@ -42,30 +42,75 @@ namespace Composer\Autoload;
42
  */
43
  class ClassLoader
44
  {
 
45
  private $vendorDir;
46
 
47
  // PSR-4
 
 
 
 
48
  private $prefixLengthsPsr4 = array();
 
 
 
 
49
  private $prefixDirsPsr4 = array();
 
 
 
 
50
  private $fallbackDirsPsr4 = array();
51
 
52
  // PSR-0
 
 
 
 
53
  private $prefixesPsr0 = array();
 
 
 
 
54
  private $fallbackDirsPsr0 = array();
55
 
 
56
  private $useIncludePath = false;
 
 
 
 
 
57
  private $classMap = array();
 
 
58
  private $classMapAuthoritative = false;
 
 
 
 
 
59
  private $missingClasses = array();
 
 
60
  private $apcuPrefix;
61
 
 
 
 
62
  private static $registeredLoaders = array();
63
 
 
 
 
64
  public function __construct($vendorDir = null)
65
  {
66
  $this->vendorDir = $vendorDir;
67
  }
68
 
 
 
 
69
  public function getPrefixes()
70
  {
71
  if (!empty($this->prefixesPsr0)) {
@@ -75,28 +120,47 @@ class ClassLoader
75
  return array();
76
  }
77
 
 
 
 
 
78
  public function getPrefixesPsr4()
79
  {
80
  return $this->prefixDirsPsr4;
81
  }
82
 
 
 
 
 
83
  public function getFallbackDirs()
84
  {
85
  return $this->fallbackDirsPsr0;
86
  }
87
 
 
 
 
 
88
  public function getFallbackDirsPsr4()
89
  {
90
  return $this->fallbackDirsPsr4;
91
  }
92
 
 
 
 
 
93
  public function getClassMap()
94
  {
95
  return $this->classMap;
96
  }
97
 
98
  /**
99
- * @param array $classMap Class to filename map
 
 
 
100
  */
101
  public function addClassMap(array $classMap)
102
  {
@@ -111,9 +175,11 @@ class ClassLoader
111
  * Registers a set of PSR-0 directories for a given prefix, either
112
  * appending or prepending to the ones previously set for this prefix.
113
  *
114
- * @param string $prefix The prefix
115
- * @param array|string $paths The PSR-0 root directories
116
- * @param bool $prepend Whether to prepend the directories
 
 
117
  */
118
  public function add($prefix, $paths, $prepend = false)
119
  {
@@ -156,11 +222,13 @@ class ClassLoader
156
  * Registers a set of PSR-4 directories for a given namespace, either
157
  * appending or prepending to the ones previously set for this namespace.
158
  *
159
- * @param string $prefix The prefix/namespace, with trailing '\\'
160
- * @param array|string $paths The PSR-4 base directories
161
- * @param bool $prepend Whether to prepend the directories
162
  *
163
  * @throws \InvalidArgumentException
 
 
164
  */
165
  public function addPsr4($prefix, $paths, $prepend = false)
166
  {
@@ -204,8 +272,10 @@ class ClassLoader
204
  * Registers a set of PSR-0 directories for a given prefix,
205
  * replacing any others previously set for this prefix.
206
  *
207
- * @param string $prefix The prefix
208
- * @param array|string $paths The PSR-0 base directories
 
 
209
  */
210
  public function set($prefix, $paths)
211
  {
@@ -220,10 +290,12 @@ class ClassLoader
220
  * Registers a set of PSR-4 directories for a given namespace,
221
  * replacing any others previously set for this namespace.
222
  *
223
- * @param string $prefix The prefix/namespace, with trailing '\\'
224
- * @param array|string $paths The PSR-4 base directories
225
  *
226
  * @throws \InvalidArgumentException
 
 
227
  */
228
  public function setPsr4($prefix, $paths)
229
  {
@@ -243,6 +315,8 @@ class ClassLoader
243
  * Turns on searching the include path for class files.
244
  *
245
  * @param bool $useIncludePath
 
 
246
  */
247
  public function setUseIncludePath($useIncludePath)
248
  {
@@ -265,6 +339,8 @@ class ClassLoader
265
  * that have not been registered with the class map.
266
  *
267
  * @param bool $classMapAuthoritative
 
 
268
  */
269
  public function setClassMapAuthoritative($classMapAuthoritative)
270
  {
@@ -285,6 +361,8 @@ class ClassLoader
285
  * APCu prefix to use to cache found/not-found classes, if the extension is enabled.
286
  *
287
  * @param string|null $apcuPrefix
 
 
288
  */
289
  public function setApcuPrefix($apcuPrefix)
290
  {
@@ -305,6 +383,8 @@ class ClassLoader
305
  * Registers this instance as an autoloader.
306
  *
307
  * @param bool $prepend Whether to prepend the autoloader or not
 
 
308
  */
309
  public function register($prepend = false)
310
  {
@@ -324,6 +404,8 @@ class ClassLoader
324
 
325
  /**
326
  * Unregisters this instance as an autoloader.
 
 
327
  */
328
  public function unregister()
329
  {
@@ -403,6 +485,11 @@ class ClassLoader
403
  return self::$registeredLoaders;
404
  }
405
 
 
 
 
 
 
406
  private function findFileWithExtension($class, $ext)
407
  {
408
  // PSR-4 lookup
@@ -474,6 +561,10 @@ class ClassLoader
474
  * Scope isolated include.
475
  *
476
  * Prevents access to $this/self from included files.
 
 
 
 
477
  */
478
  function includeFile($file)
479
  {
42
  */
43
  class ClassLoader
44
  {
45
+ /** @var ?string */
46
  private $vendorDir;
47
 
48
  // PSR-4
49
+ /**
50
+ * @var array[]
51
+ * @psalm-var array<string, array<string, int>>
52
+ */
53
  private $prefixLengthsPsr4 = array();
54
+ /**
55
+ * @var array[]
56
+ * @psalm-var array<string, array<int, string>>
57
+ */
58
  private $prefixDirsPsr4 = array();
59
+ /**
60
+ * @var array[]
61
+ * @psalm-var array<string, string>
62
+ */
63
  private $fallbackDirsPsr4 = array();
64
 
65
  // PSR-0
66
+ /**
67
+ * @var array[]
68
+ * @psalm-var array<string, array<string, string[]>>
69
+ */
70
  private $prefixesPsr0 = array();
71
+ /**
72
+ * @var array[]
73
+ * @psalm-var array<string, string>
74
+ */
75
  private $fallbackDirsPsr0 = array();
76
 
77
+ /** @var bool */
78
  private $useIncludePath = false;
79
+
80
+ /**
81
+ * @var string[]
82
+ * @psalm-var array<string, string>
83
+ */
84
  private $classMap = array();
85
+
86
+ /** @var bool */
87
  private $classMapAuthoritative = false;
88
+
89
+ /**
90
+ * @var bool[]
91
+ * @psalm-var array<string, bool>
92
+ */
93
  private $missingClasses = array();
94
+
95
+ /** @var ?string */
96
  private $apcuPrefix;
97
 
98
+ /**
99
+ * @var self[]
100
+ */
101
  private static $registeredLoaders = array();
102
 
103
+ /**
104
+ * @param ?string $vendorDir
105
+ */
106
  public function __construct($vendorDir = null)
107
  {
108
  $this->vendorDir = $vendorDir;
109
  }
110
 
111
+ /**
112
+ * @return string[]
113
+ */
114
  public function getPrefixes()
115
  {
116
  if (!empty($this->prefixesPsr0)) {
120
  return array();
121
  }
122
 
123
+ /**
124
+ * @return array[]
125
+ * @psalm-return array<string, array<int, string>>
126
+ */
127
  public function getPrefixesPsr4()
128
  {
129
  return $this->prefixDirsPsr4;
130
  }
131
 
132
+ /**
133
+ * @return array[]
134
+ * @psalm-return array<string, string>
135
+ */
136
  public function getFallbackDirs()
137
  {
138
  return $this->fallbackDirsPsr0;
139
  }
140
 
141
+ /**
142
+ * @return array[]
143
+ * @psalm-return array<string, string>
144
+ */
145
  public function getFallbackDirsPsr4()
146
  {
147
  return $this->fallbackDirsPsr4;
148
  }
149
 
150
+ /**
151
+ * @return string[] Array of classname => path
152
+ * @psalm-var array<string, string>
153
+ */
154
  public function getClassMap()
155
  {
156
  return $this->classMap;
157
  }
158
 
159
  /**
160
+ * @param string[] $classMap Class to filename map
161
+ * @psalm-param array<string, string> $classMap
162
+ *
163
+ * @return void
164
  */
165
  public function addClassMap(array $classMap)
166
  {
175
  * Registers a set of PSR-0 directories for a given prefix, either
176
  * appending or prepending to the ones previously set for this prefix.
177
  *
178
+ * @param string $prefix The prefix
179
+ * @param string[]|string $paths The PSR-0 root directories
180
+ * @param bool $prepend Whether to prepend the directories
181
+ *
182
+ * @return void
183
  */
184
  public function add($prefix, $paths, $prepend = false)
185
  {
222
  * Registers a set of PSR-4 directories for a given namespace, either
223
  * appending or prepending to the ones previously set for this namespace.
224
  *
225
+ * @param string $prefix The prefix/namespace, with trailing '\\'
226
+ * @param string[]|string $paths The PSR-4 base directories
227
+ * @param bool $prepend Whether to prepend the directories
228
  *
229
  * @throws \InvalidArgumentException
230
+ *
231
+ * @return void
232
  */
233
  public function addPsr4($prefix, $paths, $prepend = false)
234
  {
272
  * Registers a set of PSR-0 directories for a given prefix,
273
  * replacing any others previously set for this prefix.
274
  *
275
+ * @param string $prefix The prefix
276
+ * @param string[]|string $paths The PSR-0 base directories
277
+ *
278
+ * @return void
279
  */
280
  public function set($prefix, $paths)
281
  {
290
  * Registers a set of PSR-4 directories for a given namespace,
291
  * replacing any others previously set for this namespace.
292
  *
293
+ * @param string $prefix The prefix/namespace, with trailing '\\'
294
+ * @param string[]|string $paths The PSR-4 base directories
295
  *
296
  * @throws \InvalidArgumentException
297
+ *
298
+ * @return void
299
  */
300
  public function setPsr4($prefix, $paths)
301
  {
315
  * Turns on searching the include path for class files.
316
  *
317
  * @param bool $useIncludePath
318
+ *
319
+ * @return void
320
  */
321
  public function setUseIncludePath($useIncludePath)
322
  {
339
  * that have not been registered with the class map.
340
  *
341
  * @param bool $classMapAuthoritative
342
+ *
343
+ * @return void
344
  */
345
  public function setClassMapAuthoritative($classMapAuthoritative)
346
  {
361
  * APCu prefix to use to cache found/not-found classes, if the extension is enabled.
362
  *
363
  * @param string|null $apcuPrefix
364
+ *
365
+ * @return void
366
  */
367
  public function setApcuPrefix($apcuPrefix)
368
  {
383
  * Registers this instance as an autoloader.
384
  *
385
  * @param bool $prepend Whether to prepend the autoloader or not
386
+ *
387
+ * @return void
388
  */
389
  public function register($prepend = false)
390
  {
404
 
405
  /**
406
  * Unregisters this instance as an autoloader.
407
+ *
408
+ * @return void
409
  */
410
  public function unregister()
411
  {
485
  return self::$registeredLoaders;
486
  }
487
 
488
+ /**
489
+ * @param string $class
490
+ * @param string $ext
491
+ * @return string|false
492
+ */
493
  private function findFileWithExtension($class, $ext)
494
  {
495
  // PSR-4 lookup
561
  * Scope isolated include.
562
  *
563
  * Prevents access to $this/self from included files.
564
+ *
565
+ * @param string $file
566
+ * @return void
567
+ * @private
568
  */
569
  function includeFile($file)
570
  {
vendor/composer/InstalledVersions.php CHANGED
@@ -1,363 +1,337 @@
1
  <?php
2
 
3
-
4
-
5
-
6
-
7
-
8
-
9
-
10
-
11
-
12
 
13
  namespace Composer;
14
 
15
  use Composer\Autoload\ClassLoader;
16
  use Composer\Semver\VersionParser;
17
 
18
-
19
-
20
-
21
-
22
-
23
-
24
-
25
  class InstalledVersions
26
  {
27
- private static $installed = array (
28
- 'root' =>
29
- array (
30
- 'pretty_version' => 'dev-master',
31
- 'version' => 'dev-master',
32
- 'aliases' =>
33
- array (
34
- ),
35
- 'reference' => '936c03c18aaf2ecd964705afb55866b9803bc713',
36
- 'name' => 'rosell-dk/webp-express',
37
- 'dev' => true,
38
- ),
39
- 'versions' =>
40
- array (
41
- 'composer/installers' =>
42
- array (
43
- 'pretty_version' => 'v1.11.0',
44
- 'version' => '1.11.0.0',
45
- 'aliases' =>
46
- array (
47
- ),
48
- 'reference' => 'ae03311f45dfe194412081526be2e003960df74b',
49
- 'dev-requirement' => false,
50
- ),
51
- 'rosell-dk/dom-util-for-webp' =>
52
- array (
53
- 'pretty_version' => '0.4.0',
54
- 'version' => '0.4.0.0',
55
- 'aliases' =>
56
- array (
57
- ),
58
- 'reference' => '5928aecf64d59124b341dce23ce8ecf48a6eded6',
59
- 'dev-requirement' => false,
60
- ),
61
- 'rosell-dk/htaccess-capability-tester' =>
62
- array (
63
- 'pretty_version' => '0.9',
64
- 'version' => '0.9.0.0',
65
- 'aliases' =>
66
- array (
67
- ),
68
- 'reference' => '2eb2cf38a9f42fc3aa647d6e9c896e124bfebf4c',
69
- 'dev-requirement' => false,
70
- ),
71
- 'rosell-dk/image-mime-type-guesser' =>
72
- array (
73
- 'pretty_version' => '0.3',
74
- 'version' => '0.3.0.0',
75
- 'aliases' =>
76
- array (
77
- ),
78
- 'reference' => '204fd61ca81e3b0ba46c6165dab8f74816b1fe99',
79
- 'dev-requirement' => false,
80
- ),
81
- 'rosell-dk/webp-convert' =>
82
- array (
83
- 'pretty_version' => '2.6.0',
84
- 'version' => '2.6.0.0',
85
- 'aliases' =>
86
- array (
87
- ),
88
- 'reference' => 'ed230afe56d3157dc402c33585e3ab7f15c7ac80',
89
- 'dev-requirement' => false,
90
- ),
91
- 'rosell-dk/webp-convert-cloud-service' =>
92
- array (
93
- 'pretty_version' => '2.0.1',
94
- 'version' => '2.0.1.0',
95
- 'aliases' =>
96
- array (
97
- ),
98
- 'reference' => '703c2f1c76d30468ee3977170bfa3da138d8c4ad',
99
- 'dev-requirement' => false,
100
- ),
101
- 'rosell-dk/webp-express' =>
102
- array (
103
- 'pretty_version' => 'dev-master',
104
- 'version' => 'dev-master',
105
- 'aliases' =>
106
- array (
107
- ),
108
- 'reference' => '936c03c18aaf2ecd964705afb55866b9803bc713',
109
- 'dev-requirement' => false,
110
- ),
111
- 'roundcube/plugin-installer' =>
112
- array (
113
- 'dev-requirement' => false,
114
- 'replaced' =>
115
- array (
116
- 0 => '*',
117
- ),
118
- ),
119
- 'shama/baton' =>
120
- array (
121
- 'dev-requirement' => false,
122
- 'replaced' =>
123
- array (
124
- 0 => '*',
125
- ),
126
- ),
127
- ),
128
- );
129
- private static $canGetVendors;
130
- private static $installedByVendor = array();
131
-
132
-
133
-
134
-
135
-
136
-
137
-
138
- public static function getInstalledPackages()
139
- {
140
- $packages = array();
141
- foreach (self::getInstalled() as $installed) {
142
- $packages[] = array_keys($installed['versions']);
143
- }
144
-
145
- if (1 === \count($packages)) {
146
- return $packages[0];
147
- }
148
-
149
- return array_keys(array_flip(\call_user_func_array('array_merge', $packages)));
150
- }
151
-
152
-
153
-
154
-
155
-
156
-
157
-
158
-
159
-
160
-
161
- public static function isInstalled($packageName, $includeDevRequirements = true)
162
- {
163
- foreach (self::getInstalled() as $installed) {
164
- if (isset($installed['versions'][$packageName])) {
165
- return $includeDevRequirements || empty($installed['versions'][$packageName]['dev-requirement']);
166
- }
167
- }
168
-
169
- return false;
170
- }
171
-
172
-
173
-
174
-
175
-
176
-
177
-
178
-
179
-
180
-
181
-
182
-
183
-
184
- public static function satisfies(VersionParser $parser, $packageName, $constraint)
185
- {
186
- $constraint = $parser->parseConstraints($constraint);
187
- $provided = $parser->parseConstraints(self::getVersionRanges($packageName));
188
-
189
- return $provided->matches($constraint);
190
- }
191
-
192
-
193
-
194
-
195
-
196
-
197
-
198
-
199
-
200
-
201
- public static function getVersionRanges($packageName)
202
- {
203
- foreach (self::getInstalled() as $installed) {
204
- if (!isset($installed['versions'][$packageName])) {
205
- continue;
206
- }
207
-
208
- $ranges = array();
209
- if (isset($installed['versions'][$packageName]['pretty_version'])) {
210
- $ranges[] = $installed['versions'][$packageName]['pretty_version'];
211
- }
212
- if (array_key_exists('aliases', $installed['versions'][$packageName])) {
213
- $ranges = array_merge($ranges, $installed['versions'][$packageName]['aliases']);
214
- }
215
- if (array_key_exists('replaced', $installed['versions'][$packageName])) {
216
- $ranges = array_merge($ranges, $installed['versions'][$packageName]['replaced']);
217
- }
218
- if (array_key_exists('provided', $installed['versions'][$packageName])) {
219
- $ranges = array_merge($ranges, $installed['versions'][$packageName]['provided']);
220
- }
221
-
222
- return implode(' || ', $ranges);
223
- }
224
-
225
- throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
226
- }
227
-
228
-
229
-
230
-
231
-
232
- public static function getVersion($packageName)
233
- {
234
- foreach (self::getInstalled() as $installed) {
235
- if (!isset($installed['versions'][$packageName])) {
236
- continue;
237
- }
238
-
239
- if (!isset($installed['versions'][$packageName]['version'])) {
240
- return null;
241
- }
242
-
243
- return $installed['versions'][$packageName]['version'];
244
- }
245
-
246
- throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
247
- }
248
-
249
-
250
-
251
-
252
-
253
- public static function getPrettyVersion($packageName)
254
- {
255
- foreach (self::getInstalled() as $installed) {
256
- if (!isset($installed['versions'][$packageName])) {
257
- continue;
258
- }
259
-
260
- if (!isset($installed['versions'][$packageName]['pretty_version'])) {
261
- return null;
262
- }
263
-
264
- return $installed['versions'][$packageName]['pretty_version'];
265
- }
266
-
267
- throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
268
- }
269
-
270
-
271
-
272
-
273
-
274
- public static function getReference($packageName)
275
- {
276
- foreach (self::getInstalled() as $installed) {
277
- if (!isset($installed['versions'][$packageName])) {
278
- continue;
279
- }
280
-
281
- if (!isset($installed['versions'][$packageName]['reference'])) {
282
- return null;
283
- }
284
-
285
- return $installed['versions'][$packageName]['reference'];
286
- }
287
-
288
- throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
289
- }
290
-
291
-
292
-
293
-
294
-
295
- public static function getRootPackage()
296
- {
297
- $installed = self::getInstalled();
298
-
299
- return $installed[0]['root'];
300
- }
301
-
302
-
303
-
304
-
305
-
306
-
307
-
308
- public static function getRawData()
309
- {
310
- return self::$installed;
311
- }
312
-
313
-
314
-
315
-
316
-
317
-
318
-
319
-
320
-
321
-
322
-
323
-
324
-
325
-
326
-
327
-
328
-
329
-
330
-
331
- public static function reload($data)
332
- {
333
- self::$installed = $data;
334
- self::$installedByVendor = array();
335
- }
336
-
337
-
338
-
339
-
340
-
341
- private static function getInstalled()
342
- {
343
- if (null === self::$canGetVendors) {
344
- self::$canGetVendors = method_exists('Composer\Autoload\ClassLoader', 'getRegisteredLoaders');
345
- }
346
-
347
- $installed = array();
348
-
349
- if (self::$canGetVendors) {
350
- foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) {
351
- if (isset(self::$installedByVendor[$vendorDir])) {
352
- $installed[] = self::$installedByVendor[$vendorDir];
353
- } elseif (is_file($vendorDir.'/composer/installed.php')) {
354
- $installed[] = self::$installedByVendor[$vendorDir] = require $vendorDir.'/composer/installed.php';
355
- }
356
- }
357
- }
358
-
359
- $installed[] = self::$installed;
360
-
361
- return $installed;
362
- }
363
  }
1
  <?php
2
 
3
+ /*
4
+ * This file is part of Composer.
5
+ *
6
+ * (c) Nils Adermann <naderman@naderman.de>
7
+ * Jordi Boggiano <j.boggiano@seld.be>
8
+ *
9
+ * For the full copyright and license information, please view the LICENSE
10
+ * file that was distributed with this source code.
11
+ */
12
 
13
  namespace Composer;
14
 
15
  use Composer\Autoload\ClassLoader;
16
  use Composer\Semver\VersionParser;
17
 
18
+ /**
19
+ * This class is copied in every Composer installed project and available to all
20
+ *
21
+ * See also https://getcomposer.org/doc/07-runtime.md#installed-versions
22
+ *
23
+ * To require its presence, you can require `composer-runtime-api ^2.0`
24
+ */
25
  class InstalledVersions
26
  {
27
+ private static $installed;
28
+ private static $canGetVendors;
29
+ private static $installedByVendor = array();
30
+
31
+ /**
32
+ * Returns a list of all package names which are present, either by being installed, replaced or provided
33
+ *
34
+ * @return string[]
35
+ * @psalm-return list<string>
36
+ */
37
+ public static function getInstalledPackages()
38
+ {
39
+ $packages = array();
40
+ foreach (self::getInstalled() as $installed) {
41
+ $packages[] = array_keys($installed['versions']);
42
+ }
43
+
44
+ if (1 === \count($packages)) {
45
+ return $packages[0];
46
+ }
47
+
48
+ return array_keys(array_flip(\call_user_func_array('array_merge', $packages)));
49
+ }
50
+
51
+ /**
52
+ * Returns a list of all package names with a specific type e.g. 'library'
53
+ *
54
+ * @param string $type
55
+ * @return string[]
56
+ * @psalm-return list<string>
57
+ */
58
+ public static function getInstalledPackagesByType($type)
59
+ {
60
+ $packagesByType = array();
61
+
62
+ foreach (self::getInstalled() as $installed) {
63
+ foreach ($installed['versions'] as $name => $package) {
64
+ if (isset($package['type']) && $package['type'] === $type) {
65
+ $packagesByType[] = $name;
66
+ }
67
+ }
68
+ }
69
+
70
+ return $packagesByType;
71
+ }
72
+
73
+ /**
74
+ * Checks whether the given package is installed
75
+ *
76
+ * This also returns true if the package name is provided or replaced by another package
77
+ *
78
+ * @param string $packageName
79
+ * @param bool $includeDevRequirements
80
+ * @return bool
81
+ */
82
+ public static function isInstalled($packageName, $includeDevRequirements = true)
83
+ {
84
+ foreach (self::getInstalled() as $installed) {
85
+ if (isset($installed['versions'][$packageName])) {
86
+ return $includeDevRequirements || empty($installed['versions'][$packageName]['dev_requirement']);
87
+ }
88
+ }
89
+
90
+ return false;
91
+ }
92
+
93
+ /**
94
+ * Checks whether the given package satisfies a version constraint
95
+ *
96
+ * e.g. If you want to know whether version 2.3+ of package foo/bar is installed, you would call:
97
+ *
98
+ * Composer\InstalledVersions::satisfies(new VersionParser, 'foo/bar', '^2.3')
99
+ *
100
+ * @param VersionParser $parser Install composer/semver to have access to this class and functionality
101
+ * @param string $packageName
102
+ * @param string|null $constraint A version constraint to check for, if you pass one you have to make sure composer/semver is required by your package
103
+ * @return bool
104
+ */
105
+ public static function satisfies(VersionParser $parser, $packageName, $constraint)
106
+ {
107
+ $constraint = $parser->parseConstraints($constraint);
108
+ $provided = $parser->parseConstraints(self::getVersionRanges($packageName));
109
+
110
+ return $provided->matches($constraint);
111
+ }
112
+
113
+ /**
114
+ * Returns a version constraint representing all the range(s) which are installed for a given package
115
+ *
116
+ * It is easier to use this via isInstalled() with the $constraint argument if you need to check
117
+ * whether a given version of a package is installed, and not just whether it exists
118
+ *
119
+ * @param string $packageName
120
+ * @return string Version constraint usable with composer/semver
121
+ */
122
+ public static function getVersionRanges($packageName)
123
+ {
124
+ foreach (self::getInstalled() as $installed) {
125
+ if (!isset($installed['versions'][$packageName])) {
126
+ continue;
127
+ }
128
+
129
+ $ranges = array();
130
+ if (isset($installed['versions'][$packageName]['pretty_version'])) {
131
+ $ranges[] = $installed['versions'][$packageName]['pretty_version'];
132
+ }
133
+ if (array_key_exists('aliases', $installed['versions'][$packageName])) {
134
+ $ranges = array_merge($ranges, $installed['versions'][$packageName]['aliases']);
135
+ }
136
+ if (array_key_exists('replaced', $installed['versions'][$packageName])) {
137
+ $ranges = array_merge($ranges, $installed['versions'][$packageName]['replaced']);
138
+ }
139
+ if (array_key_exists('provided', $installed['versions'][$packageName])) {
140
+ $ranges = array_merge($ranges, $installed['versions'][$packageName]['provided']);
141
+ }
142
+
143
+ return implode(' || ', $ranges);
144
+ }
145
+
146
+ throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
147
+ }
148
+
149
+ /**
150
+ * @param string $packageName
151
+ * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present
152
+ */
153
+ public static function getVersion($packageName)
154
+ {
155
+ foreach (self::getInstalled() as $installed) {
156
+ if (!isset($installed['versions'][$packageName])) {
157
+ continue;
158
+ }
159
+
160
+ if (!isset($installed['versions'][$packageName]['version'])) {
161
+ return null;
162
+ }
163
+
164
+ return $installed['versions'][$packageName]['version'];
165
+ }
166
+
167
+ throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
168
+ }
169
+
170
+ /**
171
+ * @param string $packageName
172
+ * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present
173
+ */
174
+ public static function getPrettyVersion($packageName)
175
+ {
176
+ foreach (self::getInstalled() as $installed) {
177
+ if (!isset($installed['versions'][$packageName])) {
178
+ continue;
179
+ }
180
+
181
+ if (!isset($installed['versions'][$packageName]['pretty_version'])) {
182
+ return null;
183
+ }
184
+
185
+ return $installed['versions'][$packageName]['pretty_version'];
186
+ }
187
+
188
+ throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
189
+ }
190
+
191
+ /**
192
+ * @param string $packageName
193
+ * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as reference
194
+ */
195
+ public static function getReference($packageName)
196
+ {
197
+ foreach (self::getInstalled() as $installed) {
198
+ if (!isset($installed['versions'][$packageName])) {
199
+ continue;
200
+ }
201
+
202
+ if (!isset($installed['versions'][$packageName]['reference'])) {
203
+ return null;
204
+ }
205
+
206
+ return $installed['versions'][$packageName]['reference'];
207
+ }
208
+
209
+ throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
210
+ }
211
+
212
+ /**
213
+ * @param string $packageName
214
+ * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as install path. Packages of type metapackages also have a null install path.
215
+ */
216
+ public static function getInstallPath($packageName)
217
+ {
218
+ foreach (self::getInstalled() as $installed) {
219
+ if (!isset($installed['versions'][$packageName])) {
220
+ continue;
221
+ }
222
+
223
+ return isset($installed['versions'][$packageName]['install_path']) ? $installed['versions'][$packageName]['install_path'] : null;
224
+ }
225
+
226
+ throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
227
+ }
228
+
229
+ /**
230
+ * @return array
231
+ * @psalm-return array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}
232
+ */
233
+ public static function getRootPackage()
234
+ {
235
+ $installed = self::getInstalled();
236
+
237
+ return $installed[0]['root'];
238
+ }
239
+
240
+ /**
241
+ * Returns the raw installed.php data for custom implementations
242
+ *
243
+ * @deprecated Use getAllRawData() instead which returns all datasets for all autoloaders present in the process. getRawData only returns the first dataset loaded, which may not be what you expect.
244
+ * @return array[]
245
+ * @psalm-return array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>}
246
+ */
247
+ public static function getRawData()
248
+ {
249
+ @trigger_error('getRawData only returns the first dataset loaded, which may not be what you expect. Use getAllRawData() instead which returns all datasets for all autoloaders present in the process.', E_USER_DEPRECATED);
250
+
251
+ if (null === self::$installed) {
252
+ // only require the installed.php file if this file is loaded from its dumped location,
253
+ // and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937
254
+ if (substr(__DIR__, -8, 1) !== 'C') {
255
+ self::$installed = include __DIR__ . '/installed.php';
256
+ } else {
257
+ self::$installed = array();
258
+ }
259
+ }
260
+
261
+ return self::$installed;
262
+ }
263
+
264
+ /**
265
+ * Returns the raw data of all installed.php which are currently loaded for custom implementations
266
+ *
267
+ * @return array[]
268
+ * @psalm-return list<array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>}>
269
+ */
270
+ public static function getAllRawData()
271
+ {
272
+ return self::getInstalled();
273
+ }
274
+
275
+ /**
276
+ * Lets you reload the static array from another file
277
+ *
278
+ * This is only useful for complex integrations in which a project needs to use
279
+ * this class but then also needs to execute another project's autoloader in process,
280
+ * and wants to ensure both projects have access to their version of installed.php.
281
+ *
282
+ * A typical case would be PHPUnit, where it would need to make sure it reads all
283
+ * the data it needs from this class, then call reload() with
284
+ * `require $CWD/vendor/composer/installed.php` (or similar) as input to make sure
285
+ * the project in which it runs can then also use this class safely, without
286
+ * interference between PHPUnit's dependencies and the project's dependencies.
287
+ *
288
+ * @param array[] $data A vendor/composer/installed.php data set
289
+ * @return void
290
+ *
291
+ * @psalm-param array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>} $data
292
+ */
293
+ public static function reload($data)
294
+ {
295
+ self::$installed = $data;
296
+ self::$installedByVendor = array();
297
+ }
298
+
299
+ /**
300
+ * @return array[]
301
+ * @psalm-return list<array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>}>
302
+ */
303
+ private static function getInstalled()
304
+ {
305
+ if (null === self::$canGetVendors) {
306
+ self::$canGetVendors = method_exists('Composer\Autoload\ClassLoader', 'getRegisteredLoaders');
307
+ }
308
+
309
+ $installed = array();
310
+
311
+ if (self::$canGetVendors) {
312
+ foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) {
313
+ if (isset(self::$installedByVendor[$vendorDir])) {
314
+ $installed[] = self::$installedByVendor[$vendorDir];
315
+ } elseif (is_file($vendorDir.'/composer/installed.php')) {
316
+ $installed[] = self::$installedByVendor[$vendorDir] = require $vendorDir.'/composer/installed.php';
317
+ if (null === self::$installed && strtr($vendorDir.'/composer', '\\', '/') === strtr(__DIR__, '\\', '/')) {
318
+ self::$installed = $installed[count($installed) - 1];
319
+ }
320
+ }
321
+ }
322
+ }
323
+
324
+ if (null === self::$installed) {
325
+ // only require the installed.php file if this file is loaded from its dumped location,
326
+ // and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937
327
+ if (substr(__DIR__, -8, 1) !== 'C') {
328
+ self::$installed = require __DIR__ . '/installed.php';
329
+ } else {
330
+ self::$installed = array();
331
+ }
332
+ }
333
+ $installed[] = self::$installed;
334
+
335
+ return $installed;
336
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
337
  }
vendor/composer/autoload_classmap.php CHANGED
@@ -68,6 +68,7 @@ return array(
68
  'Composer\\Installers\\OsclassInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/OsclassInstaller.php',
69
  'Composer\\Installers\\OxidInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/OxidInstaller.php',
70
  'Composer\\Installers\\PPIInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/PPIInstaller.php',
 
71
  'Composer\\Installers\\PhiftyInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/PhiftyInstaller.php',
72
  'Composer\\Installers\\PhpBBInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/PhpBBInstaller.php',
73
  'Composer\\Installers\\PimcoreInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/PimcoreInstaller.php',
@@ -207,6 +208,7 @@ return array(
207
  'WebPConvert\\Options\\IntegerOrNullOption' => $vendorDir . '/rosell-dk/webp-convert/src/Options/IntegerOrNullOption.php',
208
  'WebPConvert\\Options\\MetadataOption' => $vendorDir . '/rosell-dk/webp-convert/src/Options/MetadataOption.php',
209
  'WebPConvert\\Options\\Option' => $vendorDir . '/rosell-dk/webp-convert/src/Options/Option.php',
 
210
  'WebPConvert\\Options\\Options' => $vendorDir . '/rosell-dk/webp-convert/src/Options/Options.php',
211
  'WebPConvert\\Options\\QualityOption' => $vendorDir . '/rosell-dk/webp-convert/src/Options/QualityOption.php',
212
  'WebPConvert\\Options\\SensitiveArrayOption' => $vendorDir . '/rosell-dk/webp-convert/src/Options/SensitiveArrayOption.php',
68
  'Composer\\Installers\\OsclassInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/OsclassInstaller.php',
69
  'Composer\\Installers\\OxidInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/OxidInstaller.php',
70
  'Composer\\Installers\\PPIInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/PPIInstaller.php',
71
+ 'Composer\\Installers\\PantheonInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/PantheonInstaller.php',
72
  'Composer\\Installers\\PhiftyInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/PhiftyInstaller.php',
73
  'Composer\\Installers\\PhpBBInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/PhpBBInstaller.php',
74
  'Composer\\Installers\\PimcoreInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/PimcoreInstaller.php',
208
  'WebPConvert\\Options\\IntegerOrNullOption' => $vendorDir . '/rosell-dk/webp-convert/src/Options/IntegerOrNullOption.php',
209
  'WebPConvert\\Options\\MetadataOption' => $vendorDir . '/rosell-dk/webp-convert/src/Options/MetadataOption.php',
210
  'WebPConvert\\Options\\Option' => $vendorDir . '/rosell-dk/webp-convert/src/Options/Option.php',
211
+ 'WebPConvert\\Options\\OptionFactory' => $vendorDir . '/rosell-dk/webp-convert/src/Options/OptionFactory.php',
212
  'WebPConvert\\Options\\Options' => $vendorDir . '/rosell-dk/webp-convert/src/Options/Options.php',
213
  'WebPConvert\\Options\\QualityOption' => $vendorDir . '/rosell-dk/webp-convert/src/Options/QualityOption.php',
214
  'WebPConvert\\Options\\SensitiveArrayOption' => $vendorDir . '/rosell-dk/webp-convert/src/Options/SensitiveArrayOption.php',
vendor/composer/autoload_static.php CHANGED
@@ -120,6 +120,7 @@ class ComposerStaticInit16597e36dd1bfcd787ed5a8e6d908243
120
  'Composer\\Installers\\OsclassInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/OsclassInstaller.php',
121
  'Composer\\Installers\\OxidInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/OxidInstaller.php',
122
  'Composer\\Installers\\PPIInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/PPIInstaller.php',
 
123
  'Composer\\Installers\\PhiftyInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/PhiftyInstaller.php',
124
  'Composer\\Installers\\PhpBBInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/PhpBBInstaller.php',
125
  'Composer\\Installers\\PimcoreInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/PimcoreInstaller.php',
@@ -259,6 +260,7 @@ class ComposerStaticInit16597e36dd1bfcd787ed5a8e6d908243
259
  'WebPConvert\\Options\\IntegerOrNullOption' => __DIR__ . '/..' . '/rosell-dk/webp-convert/src/Options/IntegerOrNullOption.php',
260
  'WebPConvert\\Options\\MetadataOption' => __DIR__ . '/..' . '/rosell-dk/webp-convert/src/Options/MetadataOption.php',
261
  'WebPConvert\\Options\\Option' => __DIR__ . '/..' . '/rosell-dk/webp-convert/src/Options/Option.php',
 
262
  'WebPConvert\\Options\\Options' => __DIR__ . '/..' . '/rosell-dk/webp-convert/src/Options/Options.php',
263
  'WebPConvert\\Options\\QualityOption' => __DIR__ . '/..' . '/rosell-dk/webp-convert/src/Options/QualityOption.php',
264
  'WebPConvert\\Options\\SensitiveArrayOption' => __DIR__ . '/..' . '/rosell-dk/webp-convert/src/Options/SensitiveArrayOption.php',
120
  'Composer\\Installers\\OsclassInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/OsclassInstaller.php',
121
  'Composer\\Installers\\OxidInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/OxidInstaller.php',
122
  'Composer\\Installers\\PPIInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/PPIInstaller.php',
123
+ 'Composer\\Installers\\PantheonInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/PantheonInstaller.php',
124
  'Composer\\Installers\\PhiftyInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/PhiftyInstaller.php',
125
  'Composer\\Installers\\PhpBBInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/PhpBBInstaller.php',
126
  'Composer\\Installers\\PimcoreInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/PimcoreInstaller.php',
260
  'WebPConvert\\Options\\IntegerOrNullOption' => __DIR__ . '/..' . '/rosell-dk/webp-convert/src/Options/IntegerOrNullOption.php',
261
  'WebPConvert\\Options\\MetadataOption' => __DIR__ . '/..' . '/rosell-dk/webp-convert/src/Options/MetadataOption.php',
262
  'WebPConvert\\Options\\Option' => __DIR__ . '/..' . '/rosell-dk/webp-convert/src/Options/Option.php',
263
+ 'WebPConvert\\Options\\OptionFactory' => __DIR__ . '/..' . '/rosell-dk/webp-convert/src/Options/OptionFactory.php',
264
  'WebPConvert\\Options\\Options' => __DIR__ . '/..' . '/rosell-dk/webp-convert/src/Options/Options.php',
265
  'WebPConvert\\Options\\QualityOption' => __DIR__ . '/..' . '/rosell-dk/webp-convert/src/Options/QualityOption.php',
266
  'WebPConvert\\Options\\SensitiveArrayOption' => __DIR__ . '/..' . '/rosell-dk/webp-convert/src/Options/SensitiveArrayOption.php',
vendor/composer/installed.json CHANGED
@@ -2,17 +2,17 @@
2
  "packages": [
3
  {
4
  "name": "composer/installers",
5
- "version": "v1.11.0",
6
- "version_normalized": "1.11.0.0",
7
  "source": {
8
  "type": "git",
9
  "url": "https://github.com/composer/installers.git",
10
- "reference": "ae03311f45dfe194412081526be2e003960df74b"
11
  },
12
  "dist": {
13
  "type": "zip",
14
- "url": "https://api.github.com/repos/composer/installers/zipball/ae03311f45dfe194412081526be2e003960df74b",
15
- "reference": "ae03311f45dfe194412081526be2e003960df74b",
16
  "shasum": ""
17
  },
18
  "require": {
@@ -30,7 +30,7 @@
30
  "symfony/phpunit-bridge": "^4.2 || ^5",
31
  "symfony/process": "^2.3"
32
  },
33
- "time": "2021-04-28T06:42:17+00:00",
34
  "type": "composer-plugin",
35
  "extra": {
36
  "class": "Composer\\Installers\\Plugin",
@@ -113,6 +113,7 @@
113
  "modx",
114
  "moodle",
115
  "osclass",
 
116
  "phpbb",
117
  "piwik",
118
  "ppi",
@@ -135,7 +136,7 @@
135
  ],
136
  "support": {
137
  "issues": "https://github.com/composer/installers/issues",
138
- "source": "https://github.com/composer/installers/tree/v1.11.0"
139
  },
140
  "funding": [
141
  {
@@ -155,28 +156,25 @@
155
  },
156
  {
157
  "name": "rosell-dk/dom-util-for-webp",
158
- "version": "0.4.0",
159
- "version_normalized": "0.4.0.0",
160
  "source": {
161
  "type": "git",
162
  "url": "https://github.com/rosell-dk/dom-util-for-webp.git",
163
- "reference": "5928aecf64d59124b341dce23ce8ecf48a6eded6"
164
  },
165
  "dist": {
166
  "type": "zip",
167
- "url": "https://api.github.com/repos/rosell-dk/dom-util-for-webp/zipball/5928aecf64d59124b341dce23ce8ecf48a6eded6",
168
- "reference": "5928aecf64d59124b341dce23ce8ecf48a6eded6",
169
  "shasum": ""
170
  },
171
  "require-dev": {
172
  "friendsofphp/php-cs-fixer": "^2.11",
173
- "phpunit/phpunit": "5.7.27",
174
  "squizlabs/php_codesniffer": "3.*"
175
  },
176
- "suggest": {
177
- "phpstan/phpstan": "Suggested for dev, in order to analyse code before committing"
178
- },
179
- "time": "2020-02-02T11:16:27+00:00",
180
  "type": "library",
181
  "extra": {
182
  "scripts-descriptions": {
@@ -212,6 +210,20 @@
212
  "images",
213
  "replace"
214
  ],
 
 
 
 
 
 
 
 
 
 
 
 
 
 
215
  "install-path": "../rosell-dk/dom-util-for-webp"
216
  },
217
  {
@@ -279,25 +291,25 @@
279
  },
280
  {
281
  "name": "rosell-dk/image-mime-type-guesser",
282
- "version": "0.3",
283
- "version_normalized": "0.3.0.0",
284
  "source": {
285
  "type": "git",
286
  "url": "https://github.com/rosell-dk/image-mime-type-guesser.git",
287
- "reference": "204fd61ca81e3b0ba46c6165dab8f74816b1fe99"
288
  },
289
  "dist": {
290
  "type": "zip",
291
- "url": "https://api.github.com/repos/rosell-dk/image-mime-type-guesser/zipball/204fd61ca81e3b0ba46c6165dab8f74816b1fe99",
292
- "reference": "204fd61ca81e3b0ba46c6165dab8f74816b1fe99",
293
  "shasum": ""
294
  },
295
  "require-dev": {
296
  "friendsofphp/php-cs-fixer": "^2.11",
297
- "phpunit/phpunit": "^5.7.27",
298
  "squizlabs/php_codesniffer": "3.*"
299
  },
300
- "time": "2019-03-29T09:33:28+00:00",
301
  "type": "library",
302
  "extra": {
303
  "scripts-descriptions": {
@@ -333,21 +345,35 @@
333
  "mime",
334
  "mime type"
335
  ],
 
 
 
 
 
 
 
 
 
 
 
 
 
 
336
  "install-path": "../rosell-dk/image-mime-type-guesser"
337
  },
338
  {
339
  "name": "rosell-dk/webp-convert",
340
- "version": "2.6.0",
341
- "version_normalized": "2.6.0.0",
342
  "source": {
343
  "type": "git",
344
  "url": "https://github.com/rosell-dk/webp-convert.git",
345
- "reference": "ed230afe56d3157dc402c33585e3ab7f15c7ac80"
346
  },
347
  "dist": {
348
  "type": "zip",
349
- "url": "https://api.github.com/repos/rosell-dk/webp-convert/zipball/ed230afe56d3157dc402c33585e3ab7f15c7ac80",
350
- "reference": "ed230afe56d3157dc402c33585e3ab7f15c7ac80",
351
  "shasum": ""
352
  },
353
  "require": {
@@ -365,7 +391,7 @@
365
  "ext-vips": "to use Vips extension for converting.",
366
  "php-stan/php-stan": "Suggested for dev, in order to analyse code before committing"
367
  },
368
- "time": "2021-05-20T10:56:47+00:00",
369
  "type": "library",
370
  "extra": {
371
  "scripts-descriptions": {
@@ -414,7 +440,7 @@
414
  ],
415
  "support": {
416
  "issues": "https://github.com/rosell-dk/webp-convert/issues",
417
- "source": "https://github.com/rosell-dk/webp-convert/tree/2.6.0"
418
  },
419
  "funding": [
420
  {
2
  "packages": [
3
  {
4
  "name": "composer/installers",
5
+ "version": "v1.12.0",
6
+ "version_normalized": "1.12.0.0",
7
  "source": {
8
  "type": "git",
9
  "url": "https://github.com/composer/installers.git",
10
+ "reference": "d20a64ed3c94748397ff5973488761b22f6d3f19"
11
  },
12
  "dist": {
13
  "type": "zip",
14
+ "url": "https://api.github.com/repos/composer/installers/zipball/d20a64ed3c94748397ff5973488761b22f6d3f19",
15
+ "reference": "d20a64ed3c94748397ff5973488761b22f6d3f19",
16
  "shasum": ""
17
  },
18
  "require": {
30
  "symfony/phpunit-bridge": "^4.2 || ^5",
31
  "symfony/process": "^2.3"
32
  },
33
+ "time": "2021-09-13T08:19:44+00:00",
34
  "type": "composer-plugin",
35
  "extra": {
36
  "class": "Composer\\Installers\\Plugin",
113
  "modx",
114
  "moodle",
115
  "osclass",
116
+ "pantheon",
117
  "phpbb",
118
  "piwik",
119
  "ppi",
136
  ],
137
  "support": {
138
  "issues": "https://github.com/composer/installers/issues",
139
+ "source": "https://github.com/composer/installers/tree/v1.12.0"
140
  },
141
  "funding": [
142
  {
156
  },
157
  {
158
  "name": "rosell-dk/dom-util-for-webp",
159
+ "version": "0.4.1",
160
+ "version_normalized": "0.4.1.0",
161
  "source": {
162
  "type": "git",
163
  "url": "https://github.com/rosell-dk/dom-util-for-webp.git",
164
+ "reference": "f06a38fe0950e2ca0e5137a6ecd44e93d9b6b2d9"
165
  },
166
  "dist": {
167
  "type": "zip",
168
+ "url": "https://api.github.com/repos/rosell-dk/dom-util-for-webp/zipball/f06a38fe0950e2ca0e5137a6ecd44e93d9b6b2d9",
169
+ "reference": "f06a38fe0950e2ca0e5137a6ecd44e93d9b6b2d9",
170
  "shasum": ""
171
  },
172
  "require-dev": {
173
  "friendsofphp/php-cs-fixer": "^2.11",
174
+ "phpunit/phpunit": "^9.3",
175
  "squizlabs/php_codesniffer": "3.*"
176
  },
177
+ "time": "2021-06-23T17:58:50+00:00",
 
 
 
178
  "type": "library",
179
  "extra": {
180
  "scripts-descriptions": {
210
  "images",
211
  "replace"
212
  ],
213
+ "support": {
214
+ "issues": "https://github.com/rosell-dk/dom-util-for-webp/issues",
215
+ "source": "https://github.com/rosell-dk/dom-util-for-webp/tree/0.4.1"
216
+ },
217
+ "funding": [
218
+ {
219
+ "url": "https://github.com/rosell-dk",
220
+ "type": "github"
221
+ },
222
+ {
223
+ "url": "https://ko-fi.com/rosell",
224
+ "type": "ko_fi"
225
+ }
226
+ ],
227
  "install-path": "../rosell-dk/dom-util-for-webp"
228
  },
229
  {
291
  },
292
  {
293
  "name": "rosell-dk/image-mime-type-guesser",
294
+ "version": "0.3.1",
295
+ "version_normalized": "0.3.1.0",
296
  "source": {
297
  "type": "git",
298
  "url": "https://github.com/rosell-dk/image-mime-type-guesser.git",
299
+ "reference": "5915934d66a7869cecc7141adf90581aad81023d"
300
  },
301
  "dist": {
302
  "type": "zip",
303
+ "url": "https://api.github.com/repos/rosell-dk/image-mime-type-guesser/zipball/5915934d66a7869cecc7141adf90581aad81023d",
304
+ "reference": "5915934d66a7869cecc7141adf90581aad81023d",
305
  "shasum": ""
306
  },
307
  "require-dev": {
308
  "friendsofphp/php-cs-fixer": "^2.11",
309
+ "phpunit/phpunit": "^9.3",
310
  "squizlabs/php_codesniffer": "3.*"
311
  },
312
+ "time": "2021-06-30T19:14:59+00:00",
313
  "type": "library",
314
  "extra": {
315
  "scripts-descriptions": {
345
  "mime",
346
  "mime type"
347
  ],
348
+ "support": {
349
+ "issues": "https://github.com/rosell-dk/image-mime-type-guesser/issues",
350
+ "source": "https://github.com/rosell-dk/image-mime-type-guesser/tree/0.3.1"
351
+ },
352
+ "funding": [
353
+ {
354
+ "url": "https://github.com/rosell-dk",
355
+ "type": "github"
356
+ },
357
+ {
358
+ "url": "https://ko-fi.com/rosell",
359
+ "type": "ko_fi"
360
+ }
361
+ ],
362
  "install-path": "../rosell-dk/image-mime-type-guesser"
363
  },
364
  {
365
  "name": "rosell-dk/webp-convert",
366
+ "version": "2.7.0",
367
+ "version_normalized": "2.7.0.0",
368
  "source": {
369
  "type": "git",
370
  "url": "https://github.com/rosell-dk/webp-convert.git",
371
+ "reference": "9f1677e56352b7aa23f00680d4ed41d53f3c4d8a"
372
  },
373
  "dist": {
374
  "type": "zip",
375
+ "url": "https://api.github.com/repos/rosell-dk/webp-convert/zipball/9f1677e56352b7aa23f00680d4ed41d53f3c4d8a",
376
+ "reference": "9f1677e56352b7aa23f00680d4ed41d53f3c4d8a",
377
  "shasum": ""
378
  },
379
  "require": {
391
  "ext-vips": "to use Vips extension for converting.",
392
  "php-stan/php-stan": "Suggested for dev, in order to analyse code before committing"
393
  },
394
+ "time": "2021-10-25T08:34:22+00:00",
395
  "type": "library",
396
  "extra": {
397
  "scripts-descriptions": {
440
  ],
441
  "support": {
442
  "issues": "https://github.com/rosell-dk/webp-convert/issues",
443
+ "source": "https://github.com/rosell-dk/webp-convert/tree/2.7.0"
444
  },
445
  "funding": [
446
  {
vendor/composer/installed.php CHANGED
@@ -1,102 +1,89 @@
1
- <?php return array (
2
- 'root' =>
3
- array (
4
- 'pretty_version' => 'dev-master',
5
- 'version' => 'dev-master',
6
- 'aliases' =>
7
- array (
 
 
 
8
  ),
9
- 'reference' => '936c03c18aaf2ecd964705afb55866b9803bc713',
10
- 'name' => 'rosell-dk/webp-express',
11
- 'dev' => true,
12
- ),
13
- 'versions' =>
14
- array (
15
- 'composer/installers' =>
16
- array (
17
- 'pretty_version' => 'v1.11.0',
18
- 'version' => '1.11.0.0',
19
- 'aliases' =>
20
- array (
21
- ),
22
- 'reference' => 'ae03311f45dfe194412081526be2e003960df74b',
23
- 'dev-requirement' => false,
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
24
  ),
25
- 'rosell-dk/dom-util-for-webp' =>
26
- array (
27
- 'pretty_version' => '0.4.0',
28
- 'version' => '0.4.0.0',
29
- 'aliases' =>
30
- array (
31
- ),
32
- 'reference' => '5928aecf64d59124b341dce23ce8ecf48a6eded6',
33
- 'dev-requirement' => false,
34
- ),
35
- 'rosell-dk/htaccess-capability-tester' =>
36
- array (
37
- 'pretty_version' => '0.9',
38
- 'version' => '0.9.0.0',
39
- 'aliases' =>
40
- array (
41
- ),
42
- 'reference' => '2eb2cf38a9f42fc3aa647d6e9c896e124bfebf4c',
43
- 'dev-requirement' => false,
44
- ),
45
- 'rosell-dk/image-mime-type-guesser' =>
46
- array (
47
- 'pretty_version' => '0.3',
48
- 'version' => '0.3.0.0',
49
- 'aliases' =>
50
- array (
51
- ),
52
- 'reference' => '204fd61ca81e3b0ba46c6165dab8f74816b1fe99',
53
- 'dev-requirement' => false,
54
- ),
55
- 'rosell-dk/webp-convert' =>
56
- array (
57
- 'pretty_version' => '2.6.0',
58
- 'version' => '2.6.0.0',
59
- 'aliases' =>
60
- array (
61
- ),
62
- 'reference' => 'ed230afe56d3157dc402c33585e3ab7f15c7ac80',
63
- 'dev-requirement' => false,
64
- ),
65
- 'rosell-dk/webp-convert-cloud-service' =>
66
- array (
67
- 'pretty_version' => '2.0.1',
68
- 'version' => '2.0.1.0',
69
- 'aliases' =>
70
- array (
71
- ),
72
- 'reference' => '703c2f1c76d30468ee3977170bfa3da138d8c4ad',
73
- 'dev-requirement' => false,
74
- ),
75
- 'rosell-dk/webp-express' =>
76
- array (
77
- 'pretty_version' => 'dev-master',
78
- 'version' => 'dev-master',
79
- 'aliases' =>
80
- array (
81
- ),
82
- 'reference' => '936c03c18aaf2ecd964705afb55866b9803bc713',
83
- 'dev-requirement' => false,
84
- ),
85
- 'roundcube/plugin-installer' =>
86
- array (
87
- 'dev-requirement' => false,
88
- 'replaced' =>
89
- array (
90
- 0 => '*',
91
- ),
92
- ),
93
- 'shama/baton' =>
94
- array (
95
- 'dev-requirement' => false,
96
- 'replaced' =>
97
- array (
98
- 0 => '*',
99
- ),
100
- ),
101
- ),
102
  );
1
+ <?php return array(
2
+ 'root' => array(
3
+ 'pretty_version' => 'dev-master',
4
+ 'version' => 'dev-master',
5
+ 'type' => 'wordpress-plugin',
6
+ 'install_path' => __DIR__ . '/../../',
7
+ 'aliases' => array(),
8
+ 'reference' => 'b010c2c57ab39a7ca057ff68360803b6fb940428',
9
+ 'name' => 'rosell-dk/webp-express',
10
+ 'dev' => true,
11
  ),
12
+ 'versions' => array(
13
+ 'composer/installers' => array(
14
+ 'pretty_version' => 'v1.12.0',
15
+ 'version' => '1.12.0.0',
16
+ 'type' => 'composer-plugin',
17
+ 'install_path' => __DIR__ . '/./installers',
18
+ 'aliases' => array(),
19
+ 'reference' => 'd20a64ed3c94748397ff5973488761b22f6d3f19',
20
+ 'dev_requirement' => false,
21
+ ),
22
+ 'rosell-dk/dom-util-for-webp' => array(
23
+ 'pretty_version' => '0.4.1',
24
+ 'version' => '0.4.1.0',
25
+ 'type' => 'library',
26
+ 'install_path' => __DIR__ . '/../rosell-dk/dom-util-for-webp',
27
+ 'aliases' => array(),
28
+ 'reference' => 'f06a38fe0950e2ca0e5137a6ecd44e93d9b6b2d9',
29
+ 'dev_requirement' => false,
30
+ ),
31
+ 'rosell-dk/htaccess-capability-tester' => array(
32
+ 'pretty_version' => '0.9',
33
+ 'version' => '0.9.0.0',
34
+ 'type' => 'library',
35
+ 'install_path' => __DIR__ . '/../rosell-dk/htaccess-capability-tester',
36
+ 'aliases' => array(),
37
+ 'reference' => '2eb2cf38a9f42fc3aa647d6e9c896e124bfebf4c',
38
+ 'dev_requirement' => false,
39
+ ),
40
+ 'rosell-dk/image-mime-type-guesser' => array(
41
+ 'pretty_version' => '0.3.1',
42
+ 'version' => '0.3.1.0',
43
+ 'type' => 'library',
44
+ 'install_path' => __DIR__ . '/../rosell-dk/image-mime-type-guesser',
45
+ 'aliases' => array(),
46
+ 'reference' => '5915934d66a7869cecc7141adf90581aad81023d',
47
+ 'dev_requirement' => false,
48
+ ),
49
+ 'rosell-dk/webp-convert' => array(
50
+ 'pretty_version' => '2.7.0',
51
+ 'version' => '2.7.0.0',
52
+ 'type' => 'library',
53
+ 'install_path' => __DIR__ . '/../rosell-dk/webp-convert',
54
+ 'aliases' => array(),
55
+ 'reference' => '9f1677e56352b7aa23f00680d4ed41d53f3c4d8a',
56
+ 'dev_requirement' => false,
57
+ ),
58
+ 'rosell-dk/webp-convert-cloud-service' => array(
59
+ 'pretty_version' => '2.0.1',
60
+ 'version' => '2.0.1.0',
61
+ 'type' => 'library',
62
+ 'install_path' => __DIR__ . '/../rosell-dk/webp-convert-cloud-service',
63
+ 'aliases' => array(),
64
+ 'reference' => '703c2f1c76d30468ee3977170bfa3da138d8c4ad',
65
+ 'dev_requirement' => false,
66
+ ),
67
+ 'rosell-dk/webp-express' => array(
68
+ 'pretty_version' => 'dev-master',
69
+ 'version' => 'dev-master',
70
+ 'type' => 'wordpress-plugin',
71
+ 'install_path' => __DIR__ . '/../../',
72
+ 'aliases' => array(),
73
+ 'reference' => 'b010c2c57ab39a7ca057ff68360803b6fb940428',
74
+ 'dev_requirement' => false,
75
+ ),
76
+ 'roundcube/plugin-installer' => array(
77
+ 'dev_requirement' => false,
78
+ 'replaced' => array(
79
+ 0 => '*',
80
+ ),
81
+ ),
82
+ 'shama/baton' => array(
83
+ 'dev_requirement' => false,
84
+ 'replaced' => array(
85
+ 0 => '*',
86
+ ),
87
+ ),
88
  ),
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
89
  );
vendor/composer/installers/composer.json CHANGED
@@ -51,6 +51,7 @@
51
  "osclass",
52
  "MODULEWork",
53
  "Moodle",
 
54
  "Piwik",
55
  "pxcms",
56
  "phpBB",
51
  "osclass",
52
  "MODULEWork",
53
  "Moodle",
54
+ "Pantheon",
55
  "Piwik",
56
  "pxcms",
57
  "phpBB",
vendor/composer/installers/src/Composer/Installers/CakePHPInstaller.php CHANGED
@@ -47,6 +47,7 @@ class CakePHPInstaller extends BaseInstaller
47
  * @param string $matcher
48
  * @param string $version
49
  * @return bool
 
50
  */
51
  protected function matchesCakeVersion($matcher, $version)
52
  {
47
  * @param string $matcher
48
  * @param string $version
49
  * @return bool
50
+ * @phpstan-param Constraint::STR_OP_* $matcher
51
  */
52
  protected function matchesCakeVersion($matcher, $version)
53
  {
vendor/composer/installers/src/Composer/Installers/Installer.php CHANGED
@@ -91,6 +91,7 @@ class Installer extends LibraryInstaller
91
  'phifty' => 'PhiftyInstaller',
92
  'porto' => 'PortoInstaller',
93
  'processwire' => 'ProcessWireInstaller',
 
94
  'redaxo' => 'RedaxoInstaller',
95
  'redaxo5' => 'Redaxo5Installer',
96
  'reindex' => 'ReIndexInstaller',
91
  'phifty' => 'PhiftyInstaller',
92
  'porto' => 'PortoInstaller',
93
  'processwire' => 'ProcessWireInstaller',
94
+ 'quicksilver' => 'PantheonInstaller',
95
  'redaxo' => 'RedaxoInstaller',
96
  'redaxo5' => 'Redaxo5Installer',
97
  'reindex' => 'ReIndexInstaller',
vendor/composer/installers/src/Composer/Installers/PantheonInstaller.php ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace Composer\Installers;
4
+
5
+ class PantheonInstaller extends BaseInstaller
6
+ {
7
+ /** @var array<string, string> */
8
+ protected $locations = array(
9
+ 'script' => 'web/private/scripts/quicksilver/{$name}',
10
+ 'module' => 'web/private/scripts/quicksilver/{$name}',
11
+ );
12
+ }
vendor/rosell-dk/dom-util-for-webp/README.md CHANGED
@@ -1,8 +1,8 @@
1
  # dom-util-for-webp
2
 
3
- [![Latest Stable Version](https://img.shields.io/packagist/v/rosell-dk/image-mime-type-guesser.svg?style=flat-square)](https://packagist.org/packages/rosell-dk/dom-util-for-webp)
4
  [![Minimum PHP Version](https://img.shields.io/badge/php-%3E%3D%205.6-8892BF.svg?style=flat-square)](https://php.net)
5
- [![Build Status](https://img.shields.io/travis/rosell-dk/dom-util-for-webp/master.svg?style=flat-square)](https://travis-ci.org/rosell-dk/dom-util-for-webp)
6
  [![Coverage Status](https://img.shields.io/scrutinizer/coverage/g/rosell-dk/dom-util-for-webp.svg?style=flat-square)](https://scrutinizer-ci.com/g/rosell-dk/dom-util-for-webp/code-structure/master)
7
  [![Quality Score](https://img.shields.io/scrutinizer/g/rosell-dk/dom-util-for-webp.svg?style=flat-square)](https://scrutinizer-ci.com/g/rosell-dk/dom-util-for-webp/)
8
  [![Software License](https://img.shields.io/badge/license-MIT-brightgreen.svg?style=flat-square)](https://github.com/rosell-dk/dom-util-for-webp/blob/master/LICENSE)
1
  # dom-util-for-webp
2
 
3
+ [![Latest Stable Version](https://img.shields.io/packagist/v/rosell-dk/dom-util-for-webp.svg?style=flat-square)](https://packagist.org/packages/rosell-dk/dom-util-for-webp)
4
  [![Minimum PHP Version](https://img.shields.io/badge/php-%3E%3D%205.6-8892BF.svg?style=flat-square)](https://php.net)
5
+ [![Build Status](https://img.shields.io/travis/com/rosell-dk/dom-util-for-webp/master.svg?style=flat-square)](https://travis-ci.com/github/rosell-dk/dom-util-for-webp)
6
  [![Coverage Status](https://img.shields.io/scrutinizer/coverage/g/rosell-dk/dom-util-for-webp.svg?style=flat-square)](https://scrutinizer-ci.com/g/rosell-dk/dom-util-for-webp/code-structure/master)
7
  [![Quality Score](https://img.shields.io/scrutinizer/g/rosell-dk/dom-util-for-webp.svg?style=flat-square)](https://scrutinizer-ci.com/g/rosell-dk/dom-util-for-webp/)
8
  [![Software License](https://img.shields.io/badge/license-MIT-brightgreen.svg?style=flat-square)](https://github.com/rosell-dk/dom-util-for-webp/blob/master/LICENSE)
vendor/rosell-dk/dom-util-for-webp/composer.json CHANGED
@@ -11,7 +11,7 @@
11
  "@test",
12
  "@phpcs-all",
13
  "@composer validate --no-check-all --strict",
14
- "@phpstan-global"
15
  ],
16
  "cs-fix-all": [
17
  "php-cs-fixer fix src"
@@ -19,10 +19,11 @@
19
  "cs-fix": "php-cs-fixer fix",
20
  "cs-dry": "php-cs-fixer fix --dry-run --diff",
21
  "test": "phpunit --coverage-text --coverage-clover=coverage.clover",
 
 
22
  "phpcs": "phpcs --standard=PSR2",
23
  "phpcbf": "phpcbf --standard=PSR2",
24
- "phpstan": "vendor/bin/phpstan analyse src --level=4",
25
- "phpstan-global": "~/.composer/vendor/bin/phpstan analyse src --level=4"
26
  },
27
  "extra": {
28
  "scripts-descriptions": {
@@ -47,17 +48,12 @@
47
  "role": "Project Author"
48
  }
49
  ],
50
- "suggest": {
51
- "phpstan/phpstan": "Suggested for dev, in order to analyse code before committing"
52
- },
53
  "require-dev": {
54
  "friendsofphp/php-cs-fixer": "^2.11",
55
- "phpunit/phpunit": "5.7.27",
56
  "squizlabs/php_codesniffer": "3.*"
57
  },
58
  "config": {
59
  "sort-packages": true
60
- },
61
- "require": {
62
  }
63
  }
11
  "@test",
12
  "@phpcs-all",
13
  "@composer validate --no-check-all --strict",
14
+ "@phpstan"
15
  ],
16
  "cs-fix-all": [
17
  "php-cs-fixer fix src"
19
  "cs-fix": "php-cs-fixer fix",
20
  "cs-dry": "php-cs-fixer fix --dry-run --diff",
21
  "test": "phpunit --coverage-text --coverage-clover=coverage.clover",
22
+ "test-41": "phpunit --coverage-text --configuration 'phpunit-41.xml.dist'",
23
+ "phpunit": "phpunit --no-coverage",
24
  "phpcs": "phpcs --standard=PSR2",
25
  "phpcbf": "phpcbf --standard=PSR2",
26
+ "phpstan": "vendor/bin/phpstan analyse src --level=4"
 
27
  },
28
  "extra": {
29
  "scripts-descriptions": {
48
  "role": "Project Author"
49
  }
50
  ],
 
 
 
51
  "require-dev": {
52
  "friendsofphp/php-cs-fixer": "^2.11",
53
+ "phpunit/phpunit": "^9.3",
54
  "squizlabs/php_codesniffer": "3.*"
55
  },
56
  "config": {
57
  "sort-packages": true
 
 
58
  }
59
  }
vendor/rosell-dk/dom-util-for-webp/docs/development.md ADDED
@@ -0,0 +1,43 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Development
2
+
3
+ ## Setting up the environment.
4
+
5
+ First, clone the repository:
6
+ ```
7
+ cd whatever/folder/you/want
8
+ git clone git@github.com:rosell-dk/dom-util-for-webp.git
9
+ ```
10
+
11
+ Then install the dev tools with composer:
12
+
13
+ ```
14
+ composer install
15
+ ```
16
+
17
+ If you don't have composer yet:
18
+ - Get it ([download phar](https://getcomposer.org/composer.phar) and move it to /usr/local/bin/composer)
19
+ - PS: PHPUnit requires php-xml, php-mbstring and php-curl. To install: `sudo apt install php-xml php-mbstring curl php-curl`
20
+
21
+
22
+ Make sure you have [xdebug](https://xdebug.org/docs/install) installed, if you want phpunit tog generate code coverage report
23
+
24
+ ## Unit Testing
25
+
26
+ To run all the unit tests do this:
27
+ ```
28
+ composer test
29
+ ```
30
+ This also runs tests on the builds.
31
+ If you do not the coverage report:
32
+ ```
33
+ composer phpunit
34
+ ```
35
+
36
+ Individual test files can be executed like this:
37
+ ```
38
+ composer phpunit tests/ImageUrlReplacerTest.php
39
+ composer phpunit tests/PictureTagsTest.php
40
+ ```
41
+
42
+ Note:
43
+ The code coverage requires [xdebug](https://xdebug.org/docs/install)
vendor/rosell-dk/dom-util-for-webp/phpunit-41.xml.dist ADDED
@@ -0,0 +1,38 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+
3
+ <phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4
+ xsi:noNamespaceSchemaLocation="http://schema.phpunit.de/4.1/phpunit.xsd"
5
+ backupGlobals="false"
6
+ backupStaticAttributes="false"
7
+ colors="true"
8
+ convertErrorsToExceptions="true"
9
+ convertNoticesToExceptions="true"
10
+ convertWarningsToExceptions="false"
11
+ processIsolation="false"
12
+ stopOnFailure="false"
13
+ bootstrap="vendor/autoload.php"
14
+ >
15
+ <testsuites>
16
+ <testsuite name="Dom util for WebP Test Suite">
17
+ <directory>./tests/</directory>
18
+ </testsuite>
19
+ </testsuites>
20
+
21
+ <filter>
22
+ <whitelist>
23
+ <directory suffix=".php">src/</directory>
24
+ <exclude>
25
+ <directory>./vendor</directory>
26
+ <directory>./tests</directory>
27
+ </exclude>
28
+ </whitelist>
29
+ </filter>
30
+
31
+ <logging>
32
+ <log type="junit" target="build/report.junit.xml"/>
33
+ <log type="coverage-clover" target="build/logs/clover.xml"/>
34
+ <log type="coverage-text" target="build/coverage.txt"/>
35
+ <!--<log type="coverage-html" target="build/coverage"/>-->
36
+ </logging>
37
+
38
+ </phpunit>
vendor/rosell-dk/dom-util-for-webp/phpunit.xml.dist CHANGED
@@ -1,38 +1,25 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
-
3
- <phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4
- xsi:noNamespaceSchemaLocation="http://schema.phpunit.de/4.1/phpunit.xsd"
5
- backupGlobals="false"
6
- backupStaticAttributes="false"
7
- colors="true"
8
- convertErrorsToExceptions="true"
9
- convertNoticesToExceptions="true"
10
- convertWarningsToExceptions="false"
11
- processIsolation="false"
12
- stopOnFailure="false"
13
- bootstrap="vendor/autoload.php"
14
- >
15
- <testsuites>
16
- <testsuite name="Dom util for WebP Test Suite">
17
- <directory>./tests/</directory>
18
- </testsuite>
19
- </testsuites>
20
-
21
- <filter>
22
- <whitelist>
23
- <directory suffix=".php">src/</directory>
24
- <exclude>
25
- <directory>./vendor</directory>
26
- <directory>./tests</directory>
27
- </exclude>
28
- </whitelist>
29
- </filter>
30
-
31
- <logging>
32
- <log type="junit" target="build/report.junit.xml"/>
33
- <log type="coverage-clover" target="build/logs/clover.xml"/>
34
- <log type="coverage-text" target="build/coverage.txt"/>
35
- <!--<log type="coverage-html" target="build/coverage"/>-->
36
- </logging>
37
-
38
- </phpunit>
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/9.3/phpunit.xsd" backupGlobals="false" backupStaticAttributes="false" colors="true" convertErrorsToExceptions="true" convertNoticesToExceptions="true" convertWarningsToExceptions="false" processIsolation="false" stopOnFailure="false" bootstrap="vendor/autoload.php">
3
+ <coverage>
4
+ <include>
5
+ <directory suffix=".php">src/</directory>
6
+ </include>
7
+ <exclude>
8
+ <directory>./vendor</directory>
9
+ <directory>./tests</directory>
10
+ </exclude>
11
+ <report>
12
+ <clover outputFile="build/logs/clover.xml"/>
13
+ <text outputFile="build/coverage.txt"/>
14
+ </report>
15
+ </coverage>
16
+ <testsuites>
17
+ <testsuite name="Dom util for WebP Test Suite">
18
+ <directory>./tests/</directory>
19
+ </testsuite>
20
+ </testsuites>
21
+ <logging>
22
+ <junit outputFile="build/report.junit.xml"/>
23
+ <!--<log type="coverage-html" target="build/coverage"/>-->
24
+ </logging>
25
+ </phpunit>
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/rosell-dk/dom-util-for-webp/src/ImageUrlReplacer.php CHANGED
@@ -7,11 +7,11 @@ namespace DOMUtilForWebP;
7
  /**
8
  * Highly configurable class for replacing image URLs in HTML (both src and srcset syntax)
9
  *
10
- * Based on http://simplehtmldom.sourceforge.net/ - a library for easily manipulating HTML by means of a DOM.
11
  * The great thing about this library is that it supports working on invalid HTML and it only applies the changes you
12
- * make - very gently.
13
- *
14
- * TODO: Check out how ewww does it
15
  *
16
  * Behaviour can be customized by overriding the public methods (replaceUrl, $searchInTags, etc)
17
  *
7
  /**
8
  * Highly configurable class for replacing image URLs in HTML (both src and srcset syntax)
9
  *
10
+ * Uses http://simplehtmldom.sourceforge.net/ - a library for easily manipulating HTML by means of a DOM.
11
  * The great thing about this library is that it supports working on invalid HTML and it only applies the changes you
12
+ * make - very gently (however, not as gently as we do in PictureTags).
13
+ * PS: The library is a bit old, so perhaps we should look for another.
14
+ * ie https://packagist.org/packages/masterminds/html5 ??
15
  *
16
  * Behaviour can be customized by overriding the public methods (replaceUrl, $searchInTags, etc)
17
  *
vendor/rosell-dk/dom-util-for-webp/src/PictureTags.php CHANGED
@@ -5,7 +5,21 @@ namespace DOMUtilForWebP;
5
  //use Sunra\PhpSimple\HtmlDomParser;
6
  /**
7
  * Class PictureTags - convert an <img> tag to a <picture> tag and add the webp versions of the images
8
- * Based this code on code from the ShortPixel plugin, which used code from Responsify WP plugin
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9
  */
10
 
11
  use \WebPExpress\AlterHtmlHelper;
@@ -22,8 +36,11 @@ class PictureTags
22
  */
23
  public final function __construct()
24
  {
 
25
  }
26
 
 
 
27
  public function replaceUrl($url)
28
  {
29
  if (!preg_match('#(png|jpe?g)$#', $url)) {
@@ -118,7 +135,7 @@ class PictureTags
118
  }
119
 
120
  /**
121
- * Replace <image> tag with <picture> tag.
122
  */
123
  private function replaceCallback($match)
124
  {
@@ -195,10 +212,40 @@ class PictureTags
195
  /*
196
  *
197
  */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
198
  public function replaceHtml($content)
199
  {
200
- // TODO: We should not replace <img> tags that are inside <picture> tags already, now should we?
201
- return preg_replace_callback('/<img[^>]*>/i', array($this, 'replaceCallback'), $content);
 
 
 
 
 
 
 
 
 
 
202
  }
203
 
204
  /* Main replacer function */
5
  //use Sunra\PhpSimple\HtmlDomParser;
6
  /**
7
  * Class PictureTags - convert an <img> tag to a <picture> tag and add the webp versions of the images
8
+ * Code is based on code from the ShortPixel plugin, which in turn used code from Responsify WP plugin
9
+ *
10
+ * It works like this:
11
+ *
12
+ * 1. Remove existing <picture> tags and their content - replace with tokens in order to reinsert later
13
+ * 2. Process <img> tags.
14
+ * - The tags are found with regex.
15
+ * - The attributes are parsed with DOMDocument if it exists, otherwise with the Simple Html Dom library,
16
+ * which is included inside this library
17
+ * 3. Re-insert the existing <picture> tags
18
+ *
19
+ * This procedure is very gentle and needle-like. No need for a complete parse - so invalid HTML is no big issue
20
+ *
21
+ * PS:
22
+ * https://packagist.org/packages/masterminds/html5
23
  */
24
 
25
  use \WebPExpress\AlterHtmlHelper;
36
  */
37
  public final function __construct()
38
  {
39
+ $this->existingPictureTags = [];
40
  }
41
 
42
+ private $existingPictureTags;
43
+
44
  public function replaceUrl($url)
45
  {
46
  if (!preg_match('#(png|jpe?g)$#', $url)) {
135
  }
136
 
137
  /**
138
+ * Replace <img> tag with <picture> tag.
139
  */
140
  private function replaceCallback($match)
141
  {
212
  /*
213
  *
214
  */
215
+ public function removePictureTagsTemporarily($content)
216
+ {
217
+ //print_r($content);
218
+ $this->existingPictureTags[] = $content[0];
219
+ return 'PICTURE_TAG_' . (count($this->existingPictureTags) - 1) . '_';
220
+ }
221
+
222
+ /*
223
+ *
224
+ */
225
+ public function insertPictureTagsBack($content)
226
+ {
227
+ $numberString = $content[1];
228
+ $numberInt = intval($numberString);
229
+ return $this->existingPictureTags[$numberInt];
230
+ }
231
+
232
+ /**
233
+ *
234
+ */
235
  public function replaceHtml($content)
236
  {
237
+ $this->existingPictureTags = [];
238
+
239
+ // Tempororily remove existing <picture> tags
240
+ $content = preg_replace_callback('/<picture[^>]*>.*?<\/picture>/i', array($this, 'removePictureTagsTemporarily'), $content);
241
+
242
+ // Replace "<img>" tags
243
+ $content = preg_replace_callback('/<img[^>]*>/i', array($this, 'replaceCallback'), $content);
244
+
245
+ // Re-insert <picture> tags that was removed
246
+ $content = preg_replace_callback('/PICTURE_TAG_(\d+)_/', array($this, 'insertPictureTagsBack'), $content);
247
+
248
+ return $content;
249
  }
250
 
251
  /* Main replacer function */
vendor/rosell-dk/image-mime-type-guesser/.circleci/config.yml ADDED
@@ -0,0 +1,76 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # PHP CircleCI 2.0 configuration file
2
+ #
3
+ # Check https://circleci.com/docs/2.0/language-php/ for more details
4
+ #
5
+ version: 2
6
+ jobs:
7
+ build71:
8
+ docker:
9
+ - image: circleci/php:7.1
10
+
11
+ steps:
12
+ - checkout
13
+
14
+ - run: sudo apt update
15
+ - run: sudo docker-php-ext-install zip
16
+
17
+ - restore_cache:
18
+ keys:
19
+ # "composer.lock" can be used if it is committed to the repo
20
+ - v1-dependencies-{{ checksum "composer.json" }}
21
+ # fallback to using the latest cache if no exact match is found
22
+ - v1-dependencies-
23
+
24
+ - run: composer install -n --prefer-dist
25
+
26
+ - save_cache:
27
+ key: v1-dependencies-{{ checksum "composer.json" }}
28
+ paths:
29
+ - ./vendor
30
+
31
+ - run: ./vendor/bin/phpunit
32
+ - run: wget https://scrutinizer-ci.com/ocular.phar
33
+ - run: php ocular.phar code-coverage:upload --format=php-clover coverage.clover
34
+
35
+
36
+ build70:
37
+ docker:
38
+ - image: circleci/php:7.0
39
+ steps:
40
+ - checkout
41
+ - run: sudo apt update
42
+ - restore_cache:
43
+ keys:
44
+ - v0-dependencies-{{ checksum "composer.json" }}
45
+ - v0-dependencies-
46
+ - run: composer install -n --prefer-dist
47
+ - save_cache:
48
+ key: v0-dependencies-{{ checksum "composer.json" }}
49
+ paths:
50
+ - ./vendor
51
+ - run: composer test
52
+
53
+ build56:
54
+ docker:
55
+ - image: circleci/php:5.6
56
+ steps:
57
+ - checkout
58
+ - run: sudo apt update
59
+ - restore_cache:
60
+ keys:
61
+ - v56-dependencies-{{ checksum "composer.json" }}
62
+ - v56-dependencies-
63
+ - run: composer install -n --prefer-dist
64
+ - save_cache:
65
+ key: v56-dependencies-{{ checksum "composer.json" }}
66
+ paths:
67
+ - ./vendor
68
+ - run: composer test
69
+
70
+ workflows:
71
+ version: 2
72
+ build_and_test_all:
73
+ jobs:
74
+ #- build71
75
+ #- build70
76
+ #- build56
vendor/rosell-dk/image-mime-type-guesser/README.md CHANGED
@@ -2,7 +2,7 @@
2
 
3
  [![Latest Stable Version](https://img.shields.io/packagist/v/rosell-dk/image-mime-type-guesser.svg?style=flat-square)](https://packagist.org/packages/rosell-dk/image-mime-type-guesser)
4
  [![Minimum PHP Version](https://img.shields.io/badge/php-%3E%3D%205.6-8892BF.svg?style=flat-square)](https://php.net)
5
- [![Build Status](https://img.shields.io/travis/rosell-dk/image-mime-type-guesser/master.svg?style=flat-square)](https://travis-ci.org/rosell-dk/image-mime-type-guesser)
6
  [![Coverage Status](https://img.shields.io/scrutinizer/coverage/g/rosell-dk/image-mime-type-guesser.svg?style=flat-square)](https://scrutinizer-ci.com/g/rosell-dk/image-mime-type-guesser/code-structure/master)
7
  [![Quality Score](https://img.shields.io/scrutinizer/g/rosell-dk/image-mime-type-guesser.svg?style=flat-square)](https://scrutinizer-ci.com/g/rosell-dk/image-mime-type-guesser/)
8
  [![Software License](https://img.shields.io/badge/license-MIT-brightgreen.svg?style=flat-square)](https://github.com/rosell-dk/image-mime-type-guesser/blob/master/LICENSE)
@@ -12,18 +12,16 @@
12
 
13
  Do you need to determine if a file is an image?<br>
14
  And perhaps you also want to know the mime type of the image?<br>
15
- Do you basically need [exif_imagetype](https://www.php.net/manual/en/function.exif-imagetype.php), but which also works when PHP is compiled without exif?
16
 
17
  &ndash; You come to the right library.
18
 
19
  Ok, actually the library cannot offer mime type detection for images which works *on all platforms*, but it can try a whole stack of methods and optionally fall back to guess from the file extension.
20
 
21
  The stack of detect methods are currently (and in that order):
22
- - [`exif_imagetype`](https://www.php.net/manual/en/function.exif-imagetype.php) *(PHP 4 >= 4.3.0, PHP 5, PHP 7) - unless PHP is compiled without exif*
23
- - [`finfo`](https://www.php.net/manual/en/class.finfo.php) *(PHP 5 >= 5.3.0, PHP 7, PECL fileinfo >= 0.1.0) - requires fileinfo extension to be enabled*
24
- - Our custom 4 byte sniffer (based on [this code](http://phil.lavin.me.uk/2011/12/php-accurately-detecting-the-type-of-a-file/)) *(PHP 4, PHP 5, PHP 7) - only detects png, gif and jpeg*
25
- - [`getimagesize`](https://www.php.net/getimagesize) *(PHP 4, PHP 5, PHP 7)*
26
- - [`mime_content_type`](https://www.php.net/manual/en/function.mime-content-type.php) *(PHP 4 >= 4.3.0, PHP 5, PHP 7)*
27
 
28
  Note that these methods all uses the mime type mapping on the server. Not all servers for example detects `image/webp`.
29
 
2
 
3
  [![Latest Stable Version](https://img.shields.io/packagist/v/rosell-dk/image-mime-type-guesser.svg?style=flat-square)](https://packagist.org/packages/rosell-dk/image-mime-type-guesser)
4
  [![Minimum PHP Version](https://img.shields.io/badge/php-%3E%3D%205.6-8892BF.svg?style=flat-square)](https://php.net)
5
+ [![Build Status](https://img.shields.io/github/workflow/status/rosell-dk/image-mime-type-guesser/PHP?style=flat-square)](https://github.com/rosell-dk/image-mime-type-guesser/actions/workflows/php.yml)
6
  [![Coverage Status](https://img.shields.io/scrutinizer/coverage/g/rosell-dk/image-mime-type-guesser.svg?style=flat-square)](https://scrutinizer-ci.com/g/rosell-dk/image-mime-type-guesser/code-structure/master)
7
  [![Quality Score](https://img.shields.io/scrutinizer/g/rosell-dk/image-mime-type-guesser.svg?style=flat-square)](https://scrutinizer-ci.com/g/rosell-dk/image-mime-type-guesser/)
8
  [![Software License](https://img.shields.io/badge/license-MIT-brightgreen.svg?style=flat-square)](https://github.com/rosell-dk/image-mime-type-guesser/blob/master/LICENSE)
12
 
13
  Do you need to determine if a file is an image?<br>
14
  And perhaps you also want to know the mime type of the image?<br>
 
15
 
16
  &ndash; You come to the right library.
17
 
18
  Ok, actually the library cannot offer mime type detection for images which works *on all platforms*, but it can try a whole stack of methods and optionally fall back to guess from the file extension.
19
 
20
  The stack of detect methods are currently (and in that order):
21
+ - [`finfo`](https://www.php.net/manual/en/class.finfo.php) *Requires fileinfo extension to be enabled. (PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL fileinfo >= 0.1.0)*
22
+ - Our custom 4 byte sniffer (based on [this code](http://phil.lavin.me.uk/2011/12/php-accurately-detecting-the-type-of-a-file/)) *(PHP 4, PHP 5, PHP 7, PHP 8) - only detects png, gif and jpeg*
23
+ - [`exif_imagetype`](https://www.php.net/manual/en/function.exif-imagetype.php) *Requires that PHP is compiled with exif (PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)*
24
+ - [`mime_content_type`](https://www.php.net/manual/en/function.mime-content-type.php) *Requires fileinfo. (PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)*
 
25
 
26
  Note that these methods all uses the mime type mapping on the server. Not all servers for example detects `image/webp`.
27
 
vendor/rosell-dk/image-mime-type-guesser/composer.json CHANGED
@@ -15,7 +15,8 @@
15
  ],
16
  "cs-fix": "php-cs-fixer fix",
17
  "cs-dry": "php-cs-fixer fix --dry-run --diff",
18
- "test": "phpunit tests --coverage-text --coverage-clover=coverage.clover",
 
19
  "test2": "phpunit tests",
20
  "phpcs": "phpcs --standard=PSR2",
21
  "phpcs-all": "phpcs --standard=PSR2 src",
@@ -46,7 +47,7 @@
46
  ],
47
  "require-dev": {
48
  "friendsofphp/php-cs-fixer": "^2.11",
49
- "phpunit/phpunit": "^5.7.27",
50
  "squizlabs/php_codesniffer": "3.*"
51
  },
52
  "config": {
15
  ],
16
  "cs-fix": "php-cs-fixer fix",
17
  "cs-dry": "php-cs-fixer fix --dry-run --diff",
18
+ "test": "phpunit --coverage-text --coverage-clover=build/logs/coverage.clover",
19
+ "test-no-cov": "phpunit tests",
20
  "test2": "phpunit tests",
21
  "phpcs": "phpcs --standard=PSR2",
22
  "phpcs-all": "phpcs --standard=PSR2 src",
47
  ],
48
  "require-dev": {
49
  "friendsofphp/php-cs-fixer": "^2.11",
50
+ "phpunit/phpunit": "^9.3",
51
  "squizlabs/php_codesniffer": "3.*"
52
  },
53
  "config": {
vendor/rosell-dk/image-mime-type-guesser/src/Detectors/ExifImageType.php CHANGED
@@ -30,9 +30,12 @@ class ExifImageType extends AbstractDetector
30
  return ($imageType ? image_type_to_mime_type($imageType) : false);
31
  } catch (\Exception $e) {
32
  // Might for example get "Read error!"
 
 
 
33
  // well well, don't let this stop us
34
  //echo $e->getMessage();
35
- // throw($e);
36
  }
37
  }
38
  return null;
30
  return ($imageType ? image_type_to_mime_type($imageType) : false);
31
  } catch (\Exception $e) {
32
  // Might for example get "Read error!"
33
+ // (for some reason, this happens on very small files)
34
+ // We handle such errors as indeterminable (null)
35
+ return null;
36
  // well well, don't let this stop us
37
  //echo $e->getMessage();
38
+ //throw($e);
39
  }
40
  }
41
  return null;
vendor/rosell-dk/image-mime-type-guesser/src/Detectors/FInfo.php CHANGED
@@ -24,13 +24,19 @@ class FInfo extends AbstractDetector
24
  if (class_exists('finfo')) {
25
  // phpcs:ignore PHPCompatibility.PHP.NewClasses.finfoFound
26
  $finfo = new \finfo(FILEINFO_MIME);
27
- $mime = explode('; ', $finfo->file($filePath));
28
- $result = $mime[0];
29
-
30
- if (strpos($result, 'image/') === 0) {
31
- return $result;
32
  } else {
33
- return false;
 
 
 
 
 
 
 
34
  }
35
  }
36
  return null;
24
  if (class_exists('finfo')) {
25
  // phpcs:ignore PHPCompatibility.PHP.NewClasses.finfoFound
26
  $finfo = new \finfo(FILEINFO_MIME);
27
+ $result = $finfo->file($filePath);
28
+ if ($result === false) {
29
+ // false means an error occured
30
+ return null;
 
31
  } else {
32
+ $mime = explode('; ', $result);
33
+ $result = $mime[0];
34
+
35
+ if (strpos($result, 'image/') === 0) {
36
+ return $result;
37
+ } else {
38
+ return false;
39
+ }
40
  }
41
  }
42
  return null;
vendor/rosell-dk/image-mime-type-guesser/src/Detectors/MimeContentType.php CHANGED
@@ -34,6 +34,11 @@ class MimeContentType extends AbstractDetector
34
  }
35
  } catch (\Exception $e) {
36
  // we are unstoppable!
 
 
 
 
 
37
  }
38
  }
39
  return null;
34
  }
35
  } catch (\Exception $e) {
36
  // we are unstoppable!
37
+
38
+ // TODO:
39
+ // We should probably throw... - we will do in version 1.0.0
40
+ //throw $e;
41
+
42
  }
43
  }
44
  return null;
vendor/rosell-dk/image-mime-type-guesser/src/Detectors/Stack.php CHANGED
@@ -20,10 +20,10 @@ class Stack extends AbstractDetector
20
  protected function doDetect($filePath)
21
  {
22
  $detectors = [
23
- 'ExifImageType',
24
  'FInfo',
25
  'SniffFirstFourBytes',
26
- 'GetImageSize',
 
27
  'MimeContentType',
28
  ];
29
 
20
  protected function doDetect($filePath)
21
  {
22
  $detectors = [
 
23
  'FInfo',
24
  'SniffFirstFourBytes',
25
+ 'ExifImageType',
26
+ //'GetImageSize', // Disabled, as documentation says it is unreliable
27
  'MimeContentType',
28
  ];
29
 
vendor/rosell-dk/webp-convert/README.md CHANGED
@@ -3,7 +3,7 @@
3
  [![Latest Stable Version](https://img.shields.io/packagist/v/rosell-dk/webp-convert.svg?style=flat-square)](https://packagist.org/packages/rosell-dk/webp-convert)
4
  [![Minimum PHP Version](https://img.shields.io/badge/php-%3E%3D%205.6-8892BF.svg?style=flat-square)](https://php.net)
5
  [![Build Status](https://travis-ci.org/rosell-dk/webp-convert.png?branch=master)](https://travis-ci.org/rosell-dk/webp-convert)
6
- [![Coverage Status](https://img.shields.io/scrutinizer/coverage/g/rosell-dk/webp-convert.svg?style=flat-square)](https://scrutinizer-ci.com/g/rosell-dk/webp-convert/code-structure/master)
7
  [![Quality Score](https://img.shields.io/scrutinizer/g/rosell-dk/webp-convert.svg?style=flat-square)](https://scrutinizer-ci.com/g/rosell-dk/webp-convert/)
8
  [![Software License](https://img.shields.io/badge/license-MIT-brightgreen.svg?style=flat-square)](https://github.com/rosell-dk/webp-convert/blob/master/LICENSE)
9
 
@@ -25,18 +25,6 @@ The library can convert using the following methods:
25
 
26
  In addition to converting, the library also has a method for *serving* converted images, and we have instructions here on how to set up a solution for automatically serving webp images to browsers that supports webp.
27
 
28
- ## News: 2.6.0 has just been released
29
- - Introduced [auto-limit](https://github.com/rosell-dk/webp-convert/blob/master/docs/v2.0/converting/options.md#auto-limit) option which replaces setting "quality" to "auto" [#281](https://github.com/rosell-dk/webp-convert/issues/281)
30
- - Added "sharp-yuv" option and made it default on. [Its great](https://www.ctrl.blog/entry/webp-sharp-yuv.html), use it! Works in most converters (works in cwebp, vips, imagemagick, graphicsmagick, imagick and gmagick) [#267](https://github.com/rosell-dk/webp-convert/issues/267), [#280](https://github.com/rosell-dk/webp-convert/issues/280), [#284](https://github.com/rosell-dk/webp-convert/issues/284)
31
- - Bumped cwebp binaries to 1.2.0 [#273](https://github.com/rosell-dk/webp-convert/issues/273)
32
- - vips now supports "method" option and "preset" option.
33
- - graphicsmagick now supports "auto-filter" potion
34
- - vips, imagick, imagemagick, graphicsmagick and gmagick now supports "preset" option [#275(https://github.com/rosell-dk/webp-convert/issues/275)
35
- - cwebp now only validates hash of supplied precompiled binaries when necessary. This cuts down conversion time. [#287](https://github.com/rosell-dk/webp-convert/issues/287)
36
- - Added [new option](https://github.com/rosell-dk/webp-convert/blob/master/docs/v2.0/converting/options.md#cwebp-skip-these-precompiled-binaries) to cwebp for skipping precompiled binaries that are known not to work on current system. This will cut down on conversion time. [#288](https://github.com/rosell-dk/webp-convert/issues/288)
37
- - And more (view closed issues [here](https://github.com/rosell-dk/webp-convert/milestone/22?closed=1))
38
-
39
-
40
  ## Installation
41
  Require the library with *Composer*, like this:
42
 
@@ -129,7 +117,7 @@ Bread on the table don't come for free, even though this library does, and alway
129
  - [Become a backer or sponsor on Patreon](https://www.patreon.com/rosell).
130
  - [Buy me a Coffee](https://ko-fi.com/rosell)
131
 
132
- ## Supporters ==
133
  *Persons currently backing the project via patreon - Thanks!*
134
 
135
  - Max Kreminsky
@@ -150,3 +138,20 @@ Bread on the table don't come for free, even though this library does, and alway
150
  - Tammy Lee ($90)
151
  - Max Kreminsky ($65)
152
  - Steven Sullivan ($51)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3
  [![Latest Stable Version](https://img.shields.io/packagist/v/rosell-dk/webp-convert.svg?style=flat-square)](https://packagist.org/packages/rosell-dk/webp-convert)
4
  [![Minimum PHP Version](https://img.shields.io/badge/php-%3E%3D%205.6-8892BF.svg?style=flat-square)](https://php.net)
5
  [![Build Status](https://travis-ci.org/rosell-dk/webp-convert.png?branch=master)](https://travis-ci.org/rosell-dk/webp-convert)
6
+ [![Coverage Status](https://img.shields.io/github/workflow/status/rosell-dk/webp-convert/PHP?logo=GitHub&style=flat-square)](https://github.com/rosell-dk/webp-convert/actions/workflows/php.yml)
7
  [![Quality Score](https://img.shields.io/scrutinizer/g/rosell-dk/webp-convert.svg?style=flat-square)](https://scrutinizer-ci.com/g/rosell-dk/webp-convert/)
8
  [![Software License](https://img.shields.io/badge/license-MIT-brightgreen.svg?style=flat-square)](https://github.com/rosell-dk/webp-convert/blob/master/LICENSE)
9
 
25
 
26
  In addition to converting, the library also has a method for *serving* converted images, and we have instructions here on how to set up a solution for automatically serving webp images to browsers that supports webp.
27
 
 
 
 
 
 
 
 
 
 
 
 
 
28
  ## Installation
29
  Require the library with *Composer*, like this:
30
 
117
  - [Become a backer or sponsor on Patreon](https://www.patreon.com/rosell).
118
  - [Buy me a Coffee](https://ko-fi.com/rosell)
119
 
120
+ ## Supporters
121
  *Persons currently backing the project via patreon - Thanks!*
122
 
123
  - Max Kreminsky
138
  - Tammy Lee ($90)
139
  - Max Kreminsky ($65)
140
  - Steven Sullivan ($51)
141
+
142
+ ## New in 2.7.0:
143
+ - ImageMagick now supports the "near-lossless" option (provided Imagick >= 7.0.10-54) [#299](https://github.com/rosell-dk/webp-convert/issues/299)
144
+ - Added "try-common-system-paths" option for ImageMagick (default: true). So ImageMagick will now peek for "convert" in common system paths [#293](https://github.com/rosell-dk/webp-convert/issues/293)
145
+ - Fixed memory leak in Gd on very old versions of PHP [#264](https://github.com/rosell-dk/webp-convert/issues/264)
146
+ - And more (view closed issues [here](https://github.com/rosell-dk/webp-convert/milestone/24?closed=1)
147
+
148
+ ## New in 2.6.0:
149
+ - Introduced [auto-limit](https://github.com/rosell-dk/webp-convert/blob/master/docs/v2.0/converting/options.md#auto-limit) option which replaces setting "quality" to "auto" [#281](https://github.com/rosell-dk/webp-convert/issues/281)
150
+ - Added "sharp-yuv" option and made it default on. [Its great](https://www.ctrl.blog/entry/webp-sharp-yuv.html), use it! Works in most converters (works in cwebp, vips, imagemagick, graphicsmagick, imagick and gmagick) [#267](https://github.com/rosell-dk/webp-convert/issues/267), [#280](https://github.com/rosell-dk/webp-convert/issues/280), [#284](https://github.com/rosell-dk/webp-convert/issues/284)
151
+ - Bumped cwebp binaries to 1.2.0 [#273](https://github.com/rosell-dk/webp-convert/issues/273)
152
+ - vips now supports "method" option and "preset" option.
153
+ - graphicsmagick now supports "auto-filter" potion
154
+ - vips, imagick, imagemagick, graphicsmagick and gmagick now supports "preset" option [#275](https://github.com/rosell-dk/webp-convert/issues/275)
155
+ - cwebp now only validates hash of supplied precompiled binaries when necessary. This cuts down conversion time. [#287](https://github.com/rosell-dk/webp-convert/issues/287)
156
+ - Added [new option](https://github.com/rosell-dk/webp-convert/blob/master/docs/v2.0/converting/options.md#cwebp-skip-these-precompiled-binaries) to cwebp for skipping precompiled binaries that are known not to work on current system. This will cut down on conversion time. [#288](https://github.com/rosell-dk/webp-convert/issues/288)
157
+ - And more (view closed issues [here](https://github.com/rosell-dk/webp-convert/milestone/22?closed=1))
vendor/rosell-dk/webp-convert/src/Convert/Converters/AbstractConverter.php CHANGED
@@ -120,7 +120,7 @@ abstract class AbstractConverter
120
  $this->setProvidedOptions($options);
121
 
122
  if (!isset($this->options['_skip_input_check'])) {
123
- $this->log('WebP Convert 2.6.0', 'italic');
124
  $this->logLn(' ignited.');
125
  $this->logLn('- PHP version: ' . phpversion());
126
  if (isset($_SERVER['SERVER_SOFTWARE'])) {
120
  $this->setProvidedOptions($options);
121
 
122
  if (!isset($this->options['_skip_input_check'])) {
123
+ $this->log('WebP Convert 2.7.0', 'italic');
124
  $this->logLn(' ignited.');
125
  $this->logLn('- PHP version: ' . phpversion());
126
  if (isset($_SERVER['SERVER_SOFTWARE'])) {
vendor/rosell-dk/webp-convert/src/Convert/Converters/BaseTraits/OptionsTrait.php CHANGED
@@ -7,15 +7,9 @@ use WebPConvert\Convert\Exceptions\ConversionFailed\ConversionSkippedException;
7
  use WebPConvert\Options\Exceptions\InvalidOptionValueException;
8
  use WebPConvert\Options\Exceptions\InvalidOptionTypeException;
9
 
10
- use WebPConvert\Options\ArrayOption;
11
- use WebPConvert\Options\BooleanOption;
12
  use WebPConvert\Options\GhostOption;
13
- use WebPConvert\Options\IntegerOption;
14
- use WebPConvert\Options\IntegerOrNullOption;
15
- use WebPConvert\Options\MetadataOption;
16
  use WebPConvert\Options\Options;
17
- use WebPConvert\Options\StringOption;
18
- use WebPConvert\Options\QualityOption;
19
 
20
  /**
21
  * Trait for handling options
@@ -55,33 +49,235 @@ trait OptionsTrait
55
  {
56
  $isPng = ($imageType == 'png');
57
 
58
- $defaultQualityOption = new IntegerOption('default-quality', ($isPng ? 85 : 75), 0, 100);
59
- $defaultQualityOption->markDeprecated();
60
-
61
- $maxQualityOption = new IntegerOption('max-quality', 85, 0, 100);
62
- $maxQualityOption->markDeprecated();
63
-
64
  return [
65
- new IntegerOption('alpha-quality', 85, 0, 100),
66
- new BooleanOption('auto-limit', true),
67
  //new IntegerOption('auto-limit-adjustment', 5, -100, 100),
68
- new BooleanOption('auto-filter', false),
69
- $defaultQualityOption,
70
- new StringOption('encoding', 'auto', ['lossy', 'lossless', 'auto']),
71
- new BooleanOption('low-memory', false),
72
  new BooleanOption('log-call-arguments', false),
73
- $maxQualityOption,
74
- new MetadataOption('metadata', 'none'),
75
- new IntegerOption('method', 6, 0, 6),
76
- new IntegerOption('near-lossless', 60, 0, 100),
77
- new StringOption('preset', 'none', ['none', 'default', 'photo', 'picture', 'drawing', 'icon', 'text']),
78
- new QualityOption('quality', ($isPng ? 85 : 75)),
79
- new IntegerOrNullOption('size-in-percentage', null, 0, 100),
80
- new BooleanOption('sharp-yuv', true),
81
  new BooleanOption('skip', false),
82
  new BooleanOption('use-nice', false),
83
  new ArrayOption('jpeg', []),
84
  new ArrayOption('png', [])
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
85
  ];
86
  }
87
 
@@ -97,7 +293,6 @@ trait OptionsTrait
97
  return [];
98
  }
99
 
100
-
101
  /**
102
  * Create options.
103
  *
@@ -308,6 +503,114 @@ trait OptionsTrait
308
  return [];
309
  }
310
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
311
  /*
312
  public static function getUniqueOptions($imageType = 'png')
313
  {
7
  use WebPConvert\Options\Exceptions\InvalidOptionValueException;
8
  use WebPConvert\Options\Exceptions\InvalidOptionTypeException;
9
 
 
 
10
  use WebPConvert\Options\GhostOption;
 
 
 
11
  use WebPConvert\Options\Options;
12
+ use WebPConvert\Options\OptionFactory;
 
13
 
14
  /**
15
  * Trait for handling options
49
  {
50
  $isPng = ($imageType == 'png');
51
 
52
+ /*
 
 
 
 
 
53
  return [
 
 
54
  //new IntegerOption('auto-limit-adjustment', 5, -100, 100),
 
 
 
 
55
  new BooleanOption('log-call-arguments', false),
 
 
 
 
 
 
 
 
56
  new BooleanOption('skip', false),
57
  new BooleanOption('use-nice', false),
58
  new ArrayOption('jpeg', []),
59
  new ArrayOption('png', [])
60
+ ];*/
61
+
62
+ $introMd = 'https://github.com/rosell-dk/webp-convert/blob/master/docs/v2.0/' .
63
+ 'converting/introduction-for-converting.md';
64
+
65
+ return OptionFactory::createOptions([
66
+ ['encoding', 'string', [
67
+ 'title' => 'Encoding',
68
+ 'description' => 'Set encoding for the webp. ' .
69
+ 'If you choose "auto", webp-convert will ' .
70
+ 'convert to both lossy and lossless and pick the smallest result',
71
+ 'default' => 'auto',
72
+ 'enum' => ['auto', 'lossy', 'lossless'],
73
+ 'ui' => [
74
+ 'component' => 'select',
75
+ 'links' => [['Guide', $introMd . '#auto-selecting-between-losslesslossy-encoding']],
76
+ ]
77
+ ]],
78
+ ['quality', 'int', [
79
+ 'title' => 'Quality (Lossy)',
80
+ 'description' => 'Quality for lossy encoding. ',
81
+ 'default' => ($isPng ? 85 : 75),
82
+ 'default-png' => 85,
83
+ 'default-jpeg' => 75,
84
+ //'minimum' => 0,
85
+ //'maximum' => 100,
86
+ "oneOf" => [
87
+ ["type" => "number", "minimum" => 0, 'maximum' => 100],
88
+ ["type" => "string", "enum" => ["auto"]]
89
+ ],
90
+ 'ui' => [
91
+ 'component' => 'slider',
92
+ 'display' => "option.encoding != 'lossless'"
93
+ ]
94
+ ]],
95
+ ['auto-limit', 'boolean', [
96
+ 'title' => 'Auto-limit',
97
+ 'description' =>
98
+ 'Enable this option to prevent an unnecessarily high quality setting for low ' .
99
+ 'quality jpegs. You really should enable this.',
100
+ 'default' => true,
101
+ 'ui' => [
102
+ 'component' => 'checkbox',
103
+ 'advanced' => true,
104
+ 'links' => [
105
+ [
106
+ 'Guide',
107
+ $introMd . '#preventing-unnecessarily-high-quality-setting-for-low-quality-jpegs'
108
+ ]
109
+ ],
110
+ 'display' => "option.encoding != 'lossless'"
111
+ ]
112
+ ]],
113
+ ['alpha-quality', 'int', [
114
+ 'title' => 'Alpha quality',
115
+ 'description' =>
116
+ 'Quality of alpha channel. ' .
117
+ 'Often, there is no need for high quality transparency layer and in some cases you ' .
118
+ 'can tweak this all the way down to 10 and save a lot in file size. The option only ' .
119
+ 'has effect with lossy encoding, and of course only on images with transparency.',
120
+ 'default' => 85,
121
+ 'minimum' => 0,
122
+ 'maximum' => 100,
123
+ 'ui' => [
124
+ 'component' => 'slider',
125
+ 'links' => [['Guide', $introMd . '#alpha-quality']],
126
+ 'display' => "(option.encoding != 'lossless') && (imageType!='jpeg')"
127
+ ]
128
+ ]],
129
+ ['near-lossless', 'int', [
130
+ 'title' => '"Near lossless" quality',
131
+ 'description' =>
132
+ 'This option allows you to get impressively better compression for lossless encoding, with ' .
133
+ 'minimal impact on visual quality. The range is 0 (maximum preprocessing) to 100 (no ' .
134
+ 'preprocessing). Read the guide for more info.',
135
+ 'default' => 60,
136
+ 'minimum' => 0,
137
+ 'maximum' => 100,
138
+ 'ui' => [
139
+ 'component' => 'slider',
140
+ 'links' => [['Guide', $introMd . '#near-lossless']],
141
+ 'display' => "option.encoding != 'lossy'"
142
+ ]
143
+ ]],
144
+ ['metadata', 'string', [
145
+ 'title' => 'Metadata',
146
+ 'description' =>
147
+ 'Determines which metadata that should be copied over to the webp. ' .
148
+ 'Setting it to "all" preserves all metadata, setting it to "none" strips all metadata. ' .
149
+ '*cwebp* can take a comma-separated list of which kinds of metadata that should be copied ' .
150
+ '(ie "exif,icc"). *gd* will always remove all metadata and *ffmpeg* will always keep all ' .
151
+ 'metadata. The rest can either strip all or keep all (they will keep all, unless the option ' .
152
+ 'is set to *none*)',
153
+ 'default' => 'none',
154
+ 'ui' => [
155
+ 'component' => 'multi-select',
156
+ 'options' => ['all', 'none', 'exif', 'icc', 'xmp'],
157
+ ]
158
+ // TODO: set regex validation
159
+ ]],
160
+ ['method', 'int', [
161
+ 'title' => 'Reduction effort (0-6)',
162
+ 'description' =>
163
+ 'Controls the trade off between encoding speed and the compressed file size and quality. ' .
164
+ 'Possible values range from 0 to 6. 0 is fastest. 6 results in best quality and compression. ' .
165
+ 'PS: The option corresponds to the "method" option in libwebp',
166
+ 'default' => 6,
167
+ 'minimum' => 0,
168
+ 'maximum' => 6,
169
+ 'ui' => [
170
+ 'component' => 'slider',
171
+ 'advanced' => true,
172
+ ]
173
+ ]],
174
+ ['sharp-yuv', 'boolean', [
175
+ 'title' => 'Sharp YUV',
176
+ 'description' =>
177
+ 'Better RGB->YUV color conversion (sharper and more accurate) at the expense of a little extra ' .
178
+ 'conversion time.',
179
+ 'default' => true,
180
+ 'ui' => [
181
+ 'component' => 'checkbox',
182
+ 'advanced' => true,
183
+ 'links' => [
184
+ ['Ctrl.blog', 'https://www.ctrl.blog/entry/webp-sharp-yuv.html'],
185
+ ],
186
+ ]
187
+ ]],
188
+ ['auto-filter', 'boolean', [
189
+ 'title' => 'Auto-filter',
190
+ 'description' =>
191
+ 'Turns auto-filter on. ' .
192
+ 'This algorithm will spend additional time optimizing the filtering strength to reach a well-' .
193
+ 'balanced quality. Unfortunately, it is extremely expensive in terms of computation. It takes ' .
194
+ 'about 5-10 times longer to do a conversion. A 1MB picture which perhaps typically takes about ' .
195
+ '2 seconds to convert, will takes about 15 seconds to convert with auto-filter. ',
196
+ 'default' => false,
197
+ 'ui' => [
198
+ 'component' => 'checkbox',
199
+ 'advanced' => true,
200
+ ]
201
+ ]],
202
+ ['low-memory', 'boolean', [
203
+ 'title' => 'Low memory',
204
+ 'description' =>
205
+ 'Reduce memory usage of lossy encoding at the cost of ~30% longer encoding time and marginally ' .
206
+ 'larger output size. Only effective when the *method* option is 3 or more. Read more in ' .
207
+ '[the docs](https://developers.google.com/speed/webp/docs/cwebp)',
208
+ 'default' => false,
209
+ 'ui' => [
210
+ 'component' => 'checkbox',
211
+ 'advanced' => true,
212
+ 'display' => "(option.encoding != 'lossless') && (option.method>2)"
213
+ ]
214
+ ]],
215
+ ['preset', 'string', [
216
+ 'title' => 'Preset',
217
+ 'description' =>
218
+ 'Using a preset will set many of the other options to suit a particular type of ' .
219
+ 'source material. It even overrides them. It does however not override the quality option. ' .
220
+ '"none" means that no preset will be set',
221
+ 'default' => 'none',
222
+ 'enum' => ['none', 'default', 'photo', 'picture', 'drawing', 'icon', 'text']],
223
+ 'ui' => [
224
+ 'component' => 'select',
225
+ 'advanced' => true,
226
+ ]
227
+ ],
228
+ ['size-in-percentage', 'int', ['default' => null, 'minimum' => 0, 'maximum' => 100, 'allow-null' => true]],
229
+ ['skip', 'boolean', ['default' => false]],
230
+ ['log-call-arguments', 'boolean', ['default' => false]],
231
+ // TODO: use-nice should not be a "general" option
232
+ ['use-nice', 'boolean', ['default' => false]],
233
+ ['jpeg', 'array', ['default' => []]],
234
+ ['png', 'array', ['default' => []]],
235
+
236
+ // Deprecated options
237
+ ['default-quality', 'int', [
238
+ 'default' => ($isPng ? 85 : 75),
239
+ 'minimum' => 0,
240
+ 'maximum' => 100,
241
+ 'deprecated' => true]
242
+ ],
243
+ ['max-quality', 'int', ['default' => 85, 'minimum' => 0, 'maximum' => 100, 'deprecated' => true]],
244
+ ]);
245
+ }
246
+
247
+ /**
248
+ * Get ui definitions for the general options.
249
+ *
250
+ * You can automatically build a gui with these (suggested) components
251
+ *
252
+ * @param string $imageType (png | jpeg) The image type - determines the defaults
253
+ *
254
+ * @return array Hash of ui definitions indexed by option id
255
+ */
256
+ public function getUIForGeneralOptions($imageType)
257
+ {
258
+ return [
259
+ /*
260
+ ['preset', 'string', [
261
+ 'default' => 'none',
262
+ 'enum' => ['none', 'default', 'photo', 'picture', 'drawing', 'icon', 'text']]
263
+ ],
264
+ */
265
+ /* {
266
+ "id": "metadata",
267
+ "type": "string",
268
+ "default": 'exif',
269
+ "ui": {
270
+ "component": "multi-select",
271
+ "label": "Metadata",
272
+ "options": ['all', 'none', 'exif', 'icc', 'xmp'],
273
+ "optionLabels": {
274
+ 'all': 'All',
275
+ 'none': 'None',
276
+ 'exif': 'Exif',
277
+ 'icc': 'ICC',
278
+ 'xmp': 'XMP'
279
+ }
280
+ },*/
281
  ];
282
  }
283
 
293
  return [];
294
  }
295
 
 
296
  /**
297
  * Create options.
298
  *
503
  return [];
504
  }
505
 
506
+ public function getUnsupportedGeneralOptions()
507
+ {
508
+ return $this->getUnsupportedDefaultOptions();
509
+ }
510
+
511
+ /**
512
+ * Get unique option definitions.
513
+ *
514
+ * Gets definitions of the converters "unique" options (that is, those options that
515
+ * are not general). It was added in order to give GUI's a way to automatically adjust
516
+ * their setting screens.
517
+ *
518
+ * @param string $imageType (png | jpeg) The image type - determines the defaults
519
+ *
520
+ * @return array Array of options definitions - ready to be json encoded, or whatever
521
+ */
522
+ public function getUniqueOptionDefinitions($imageType = 'png')
523
+ {
524
+ $uniqueOptions = new Options();
525
+ $uniqueOptions->addOptions(... $this->getUniqueOptions($imageType));
526
+ //$uniqueOptions->setUI($this->getUniqueOptionsUI($imageType));
527
+ return $uniqueOptions->getDefinitions();
528
+ }
529
+
530
+ /**
531
+ * Get general option definitions.
532
+ *
533
+ * Gets definitions of all general options (not just the ones supported by current converter)
534
+ * For UI's, as a way to automatically adjust their setting screens.
535
+ *
536
+ * @param string $imageType (png | jpeg) The image type - determines the defaults
537
+ *
538
+ * @return array Array of options definitions - ready to be json encoded, or whatever
539
+ */
540
+ public function getGeneralOptionDefinitions($imageType = 'png')
541
+ {
542
+ $generalOptions = new Options();
543
+ $generalOptions->addOptions(... $this->getGeneralOptions($imageType));
544
+ //$generalOptions->setUI($this->getUIForGeneralOptions($imageType));
545
+ return $generalOptions->getDefinitions();
546
+ }
547
+
548
+ public function getSupportedGeneralOptions($imageType = 'png')
549
+ {
550
+ $unsupportedGeneral = $this->getUnsupportedDefaultOptions();
551
+ $generalOptionsArr = $this->getGeneralOptions($imageType);
552
+ $supportedIds = [];
553
+ foreach ($generalOptionsArr as $i => $option) {
554
+ if (in_array($option->getId(), $unsupportedGeneral)) {
555
+ unset($generalOptionsArr[$i]);
556
+ }
557
+ }
558
+ return $generalOptionsArr;
559
+ }
560
+
561
+ /**
562
+ * Get general option definitions.
563
+ *
564
+ * Gets definitions of the converters "general" options. (that is, those options that
565
+ * It was added in order to give GUI's a way to automatically adjust their setting screens.
566
+ *
567
+ * @param string $imageType (png | jpeg) The image type - determines the defaults
568
+ *
569
+ * @return array Array of options definitions - ready to be json encoded, or whatever
570
+ */
571
+ public function getSupportedGeneralOptionDefinitions($imageType = 'png')
572
+ {
573
+ $generalOptions = new Options();
574
+ $generalOptions->addOptions(... $this->getSupportedGeneralOptions($imageType));
575
+ return $generalOptions->getDefinitions();
576
+ }
577
+
578
+ public function getSupportedGeneralOptionIds()
579
+ {
580
+ $supportedGeneralOptions = $this->getSupportedGeneralOptions();
581
+ $supportedGeneralIds = [];
582
+ foreach ($supportedGeneralOptions as $option) {
583
+ $supportedGeneralIds[] = $option->getId();
584
+ }
585
+ return $supportedGeneralIds;
586
+ }
587
+
588
+ /**
589
+ * Get option definitions.
590
+ *
591
+ * Added in order to give GUI's a way to automatically adjust their setting screens.
592
+ *
593
+ * @param string $imageType (png | jpeg) The image type - determines the defaults
594
+ * @param bool $returnGeneral Whether the general setting definitions should be returned
595
+ * @param bool $returnGeneralSupport Whether the ids of supported/unsupported general options
596
+ * should be returned
597
+ *
598
+ * @return array Array of options definitions - ready to be json encoded, or whatever
599
+ */
600
+ public function getOptionDefinitions($imageType = 'png', $returnGeneral = true, $returnGeneralSupport = true)
601
+ {
602
+ $result = [
603
+ 'unique' => $this->getUniqueOptionDefinitions($imageType),
604
+ ];
605
+ if ($returnGeneral) {
606
+ $result['general'] = $this->getSupportedGeneralOptionDefinitions($imageType);
607
+ }
608
+ if ($returnGeneralSupport) {
609
+ $result['supported-general'] = $this->getSupportedGeneralOptionIds();
610
+ $result['unsupported-general'] = $this->getUnsupportedDefaultOptions();
611
+ }
612
+ return $result;
613
+ }
614
  /*
615
  public static function getUniqueOptions($imageType = 'png')
616
  {
vendor/rosell-dk/webp-convert/src/Convert/Converters/Cwebp.php CHANGED
@@ -10,9 +10,7 @@ use WebPConvert\Convert\Exceptions\ConversionFailed\ConverterNotOperational\Syst
10
  use WebPConvert\Convert\Exceptions\ConversionFailedException;
11
  use WebPConvert\Convert\Exceptions\ConversionFailed\ConverterNotOperationalException;
12
  use WebPConvert\Helpers\BinaryDiscovery;
13
- use WebPConvert\Options\BooleanOption;
14
- use WebPConvert\Options\SensitiveStringOption;
15
- use WebPConvert\Options\StringOption;
16
 
17
  /**
18
  * Convert images to webp by calling cwebp binary.
@@ -33,24 +31,114 @@ class Cwebp extends AbstractConverter
33
  }
34
 
35
  /**
36
- * Get the options unique for this converter
37
  *
38
- * @return array Array of options
39
  */
40
  public function getUniqueOptions($imageType)
41
  {
42
- return [
43
- new BooleanOption('try-cwebp', true),
44
- new BooleanOption('try-common-system-paths', true),
45
- new BooleanOption('try-discovering-cwebp', true),
46
- new BooleanOption('try-supplied-binary-for-os', true),
47
- new StringOption('command-line-options', ''),
48
- new SensitiveStringOption('rel-path-to-precompiled-binaries', './Binaries'),
49
- new StringOption('skip-these-precompiled-binaries', '')
50
- ];
51
- }
52
-
53
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
54
 
55
 
56
  // OS-specific binaries included in this library, along with hashes
@@ -304,8 +392,10 @@ class Cwebp extends AbstractConverter
304
  if ($versionNum < 0.5) {
305
  $this->logLn('Ignoring near-lossless option (requires cwebp 0.5)', 'italic');
306
  } else {
307
- // We only let near_lossless have effect when encoding is set to "lossless"
308
- // otherwise encoding=auto would not work as expected
 
 
309
  if ($options['encoding'] == 'lossless') {
310
  $cmdOptions[] = '-near_lossless ' . $options['near-lossless'];
311
  } else {
@@ -473,6 +563,9 @@ class Cwebp extends AbstractConverter
473
  }
474
 
475
  /**
 
 
 
476
  *
477
  * @return string|int Version string (ie "1.0.2") OR return code, in case of failure
478
  */
@@ -513,9 +606,11 @@ class Cwebp extends AbstractConverter
513
  }
514
 
515
  /**
516
- * Check versions for an array of binaries.
 
 
517
  *
518
- * @return array the "detected" key holds working binaries and their version numbers, the
519
  * the "failed" key holds failed binaries and their error codes.
520
  */
521
  private function detectVersions($binaries)
10
  use WebPConvert\Convert\Exceptions\ConversionFailedException;
11
  use WebPConvert\Convert\Exceptions\ConversionFailed\ConverterNotOperationalException;
12
  use WebPConvert\Helpers\BinaryDiscovery;
13
+ use WebPConvert\Options\OptionFactory;
 
 
14
 
15
  /**
16
  * Convert images to webp by calling cwebp binary.
31
  }
32
 
33
  /**
34
+ * Get the options unique for this converter
35
  *
36
+ * @return array Array of options
37
  */
38
  public function getUniqueOptions($imageType)
39
  {
40
+ $binariesForOS = [];
41
+ if (isset(self::$suppliedBinariesInfo[PHP_OS])) {
42
+ foreach (self::$suppliedBinariesInfo[PHP_OS] as $i => list($file, $hash, $version)) {
43
+ $binariesForOS[] = $file;
44
+ }
45
+ }
 
 
 
 
 
46
 
47
+ return OptionFactory::createOptions([
48
+ ['try-cwebp', 'boolean', [
49
+ 'title' => 'Try plain cwebp command',
50
+ 'description' =>
51
+ 'If set, the converter will try executing "cwebp -version". In case it succeeds, ' .
52
+ 'and the version is higher than those working cwebps found using other methods, ' .
53
+ 'the conversion will be done by executing this cwebp.',
54
+ 'default' => true,
55
+ 'ui' => [
56
+ 'component' => 'checkbox',
57
+ 'advanced' => true
58
+ ]
59
+ ]],
60
+ ['try-discovering-cwebp', 'boolean', [
61
+ 'title' => 'Try discovering cwebp binary',
62
+ 'description' =>
63
+ 'If set, the converter will try to discover installed cwebp binaries using a "which -a cwebp" ' .
64
+ 'command, or in case that fails, a "whereis -b cwebp" command. These commands will find ' .
65
+ 'cwebp binaries residing in PATH',
66
+ 'default' => true,
67
+ 'ui' => [
68
+ 'component' => 'checkbox',
69
+ 'advanced' => true
70
+ ]
71
+ ]],
72
+ ['try-common-system-paths', 'boolean', [
73
+ 'title' => 'Try locating cwebp in common system paths',
74
+ 'description' =>
75
+ 'If set, the converter will look for a cwebp binaries residing in common system locations ' .
76
+ 'such as "/usr/bin/cwebp". If such exist, it is assumed that they are valid cwebp binaries. ' .
77
+ 'A version check will be run on the binaries found (they are executed with the "-version" flag. ' .
78
+ 'The cwebp with the highest version found using this method and the other enabled methods will ' .
79
+ 'be used for the actual conversion.' .
80
+ 'Note: All methods for discovering cwebp binaries are per default enabled. You can save a few ' .
81
+ 'microseconds by disabling some, but it is probably not worth it, as your ' .
82
+ 'setup will then become less resilient to system changes.',
83
+ 'default' => true,
84
+ 'ui' => [
85
+ 'component' => 'checkbox',
86
+ 'advanced' => true
87
+ ]
88
+ ]],
89
+ ['try-supplied-binary-for-os', 'boolean', [
90
+ 'title' => 'Try precompiled cwebp binaries',
91
+ 'description' =>
92
+ 'If set, the converter will try use a precompiled cwebp binary that comes with webp-convert. ' .
93
+ 'But only if it has a higher version that those found by other methods. As the library knows ' .
94
+ 'the versions of its bundled binaries, no additional time is spent executing them with the ' .
95
+ '"-version" parameter. The binaries are hash-checked before executed. ' .
96
+ 'The library btw. comes with several versions of precompiled cwebps because they have different ' .
97
+ 'dependencies - some works on some systems and others on others.',
98
+ 'default' => true,
99
+ 'ui' => [
100
+ 'component' => 'checkbox',
101
+ 'advanced' => true
102
+ ]
103
+ ]],
104
+ ['skip-these-precompiled-binaries', 'string', [
105
+ 'title' => 'Skip these precompiled binaries',
106
+ 'description' =>
107
+ '',
108
+ 'default' => '',
109
+ 'ui' => [
110
+ 'component' => 'multi-select',
111
+ 'advanced' => true,
112
+ 'options' => $binariesForOS,
113
+ 'display' => "notEquals(state('option', 'try-supplied-binary-for-os'), false)"
114
+ ]
115
+
116
+ ]],
117
+ ['rel-path-to-precompiled-binaries', 'string', [
118
+ 'title' => 'Rel path to precompiled binaries',
119
+ 'description' =>
120
+ '',
121
+ 'default' => './Binaries',
122
+ 'ui' => [
123
+ 'component' => '',
124
+ 'advanced' => true,
125
+ 'display' => "option['try-supplied-binary-for-os'] == true"
126
+ ],
127
+ 'sensitive' => true
128
+ ]],
129
+ ['command-line-options', 'string', [
130
+ 'title' => 'Command line options',
131
+ 'description' =>
132
+ '',
133
+ 'default' => '',
134
+ 'ui' => [
135
+ 'component' => 'input',
136
+ 'advanced' => true,
137
+ ]
138
+
139
+ ]],
140
+ ]);
141
+ }
142
 
143
 
144
  // OS-specific binaries included in this library, along with hashes
392
  if ($versionNum < 0.5) {
393
  $this->logLn('Ignoring near-lossless option (requires cwebp 0.5)', 'italic');
394
  } else {
395
+ // The "-near_lossless" flag triggers lossless encoding. We don't want that to happen,
396
+ // we want the "encoding" option to be respected, and we need it to be in order for
397
+ // encoding=auto to work.
398
+ // So: Only set when "encoding" is set to "lossless"
399
  if ($options['encoding'] == 'lossless') {
400
  $cmdOptions[] = '-near_lossless ' . $options['near-lossless'];
401
  } else {
563
  }
564
 
565
  /**
566
+ * Detect the version of a cwebp binary.
567
+ *
568
+ * @param string $binary The binary to detect version for (path to cwebp or simply "cwebp")
569
  *
570
  * @return string|int Version string (ie "1.0.2") OR return code, in case of failure
571
  */
606
  }
607
 
608
  /**
609
+ * Check versions for an array of binaries.
610
+ *
611
+ * @param array $binaries array of binaries to detect the version of
612
  *
613
+ * @return array the "detected" key holds working binaries and their version numbers, the
614
  * the "failed" key holds failed binaries and their error codes.
615
  */
616
  private function detectVersions($binaries)
vendor/rosell-dk/webp-convert/src/Convert/Converters/Ewww.php CHANGED
@@ -11,6 +11,7 @@ use WebPConvert\Convert\Exceptions\ConversionFailed\ConverterNotOperational\Inva
11
  use WebPConvert\Convert\Exceptions\ConversionFailed\ConverterNotOperational\SystemRequirementsNotMetException;
12
  use WebPConvert\Options\BooleanOption;
13
  use WebPConvert\Options\SensitiveStringOption;
 
14
 
15
  /**
16
  * Convert images to webp using ewww cloud service.
@@ -29,10 +30,32 @@ class Ewww extends AbstractConverter
29
 
30
  public function getUniqueOptions($imageType)
31
  {
32
- return [
33
- new SensitiveStringOption('api-key', ''),
34
- new BooleanOption('check-key-status-before-converting', true)
35
- ];
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
36
  }
37
 
38
  protected function getUnsupportedDefaultOptions()
11
  use WebPConvert\Convert\Exceptions\ConversionFailed\ConverterNotOperational\SystemRequirementsNotMetException;
12
  use WebPConvert\Options\BooleanOption;
13
  use WebPConvert\Options\SensitiveStringOption;
14
+ use WebPConvert\Options\OptionFactory;
15
 
16
  /**
17
  * Convert images to webp using ewww cloud service.
30
 
31
  public function getUniqueOptions($imageType)
32
  {
33
+ return OptionFactory::createOptions([
34
+ ['api-key', 'string', [
35
+ 'title' => 'Ewww API key',
36
+ 'description' => 'ewww API key. ' .
37
+ 'If you choose "auto", webp-convert will ' .
38
+ 'convert to both lossy and lossless and pick the smallest result',
39
+ 'default' => '',
40
+ 'sensitive' => true,
41
+ 'ui' => [
42
+ 'component' => 'input',
43
+ ]
44
+ ]],
45
+ ['check-key-status-before-converting', 'boolean', [
46
+ 'title' => 'Check key status before converting',
47
+ 'description' =>
48
+ 'If enabled, the api key will be validated (relative inexpensive) before trying ' .
49
+ 'to convert. For automatic conversions, you should enable it. Otherwise you run the ' .
50
+ 'risk that the same files will be uploaded to ewww cloud service over and over again, ' .
51
+ 'in case the key has expired. For manually triggered conversions, you can safely disable ' .
52
+ 'the option.',
53
+ 'default' => true,
54
+ 'ui' => [
55
+ 'component' => 'checkbox',
56
+ ]
57
+ ]],
58
+ ]);
59
  }
60
 
61
  protected function getUnsupportedDefaultOptions()
vendor/rosell-dk/webp-convert/src/Convert/Converters/FFMpeg.php CHANGED
@@ -29,6 +29,7 @@ class FFMpeg extends AbstractConverter
29
  'auto-filter',
30
  'encoding',
31
  'low-memory',
 
32
  'near-lossless',
33
  'preset',
34
  'sharp-yuv',
29
  'auto-filter',
30
  'encoding',
31
  'low-memory',
32
+ 'metadata',
33
  'near-lossless',
34
  'preset',
35
  'sharp-yuv',
vendor/rosell-dk/webp-convert/src/Convert/Converters/Gd.php CHANGED
@@ -126,35 +126,32 @@ class Gd extends AbstractConverter
126
  return false;
127
  }
128
 
129
- //prevent blending with default black
130
- if (imagealphablending($dst, false) === false) {
131
- return false;
132
- }
133
-
134
- //change the RGB values if you need, but leave alpha at 127
135
- $transparent = imagecolorallocatealpha($dst, 255, 255, 255, 127);
136
-
137
- if ($transparent === false) {
138
- return false;
139
- }
140
 
141
- //simpler than flood fill
142
- if (imagefilledrectangle($dst, 0, 0, imagesx($image), imagesy($image), $transparent) === false) {
143
- return false;
 
 
 
 
 
 
 
 
 
 
 
 
 
144
  }
145
-
146
- //restore default blending
147
- if (imagealphablending($dst, true) === false) {
148
- return false;
149
- };
150
-
151
- if (imagecopy($dst, $image, 0, 0, 0, 0, imagesx($image), imagesy($image)) === false) {
152
- return false;
153
  }
154
- imagedestroy($image);
155
-
156
- $image = $dst;
157
- return true;
158
  } else {
159
  // The necessary methods for converting color palette are not avalaible
160
  return false;
@@ -176,7 +173,9 @@ class Gd extends AbstractConverter
176
  if (function_exists('imagepalettetotruecolor')) {
177
  return imagepalettetotruecolor($image);
178
  } else {
179
- // imagepalettetotruecolor() is not available on this system. Using custom implementation instead
 
 
180
  return $this->makeTrueColorUsingWorkaround($image);
181
  }
182
  }
@@ -435,8 +434,8 @@ class Gd extends AbstractConverter
435
  // takes care of preparing stuff before calling doConvert, and validating after.
436
  protected function doActualConvert()
437
  {
438
-
439
- $this->logLn('GD Version: ' . gd_info()["GD Version"]);
440
 
441
  // Btw: Check out processWebp here:
442
  // https://github.com/Intervention/image/blob/master/src/Intervention/Image/Gd/Encoder.php
@@ -449,6 +448,23 @@ class Gd extends AbstractConverter
449
 
450
 
451
  if ($this->getMimeTypeOfSource() == 'image/png') {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
452
  // Try to set alpha blending
453
  $this->trySettingAlphaBlending($image);
454
  }
126
  return false;
127
  }
128
 
129
+ $success = false;
 
 
 
 
 
 
 
 
 
 
130
 
131
+ //prevent blending with default black
132
+ if (imagealphablending($dst, false) !== false) {
133
+ //change the RGB values if you need, but leave alpha at 127
134
+ $transparent = imagecolorallocatealpha($dst, 255, 255, 255, 127);
135
+
136
+ if ($transparent !== false) {
137
+ //simpler than flood fill
138
+ if (imagefilledrectangle($dst, 0, 0, imagesx($image), imagesy($image), $transparent) !== false) {
139
+ //restore default blending
140
+ if (imagealphablending($dst, true) !== false) {
141
+ if (imagecopy($dst, $image, 0, 0, 0, 0, imagesx($image), imagesy($image)) !== false) {
142
+ $success = true;
143
+ }
144
+ };
145
+ }
146
+ }
147
  }
148
+ if ($success) {
149
+ imagedestroy($image);
150
+ $image = $dst;
151
+ } else {
152
+ imagedestroy($dst);
 
 
 
153
  }
154
+ return $success;
 
 
 
155
  } else {
156
  // The necessary methods for converting color palette are not avalaible
157
  return false;
173
  if (function_exists('imagepalettetotruecolor')) {
174
  return imagepalettetotruecolor($image);
175
  } else {
176
+ $this->logLn(
177
+ 'imagepalettetotruecolor() is not available on this system - using custom implementation instead'
178
+ );
179
  return $this->makeTrueColorUsingWorkaround($image);
180
  }
181
  }
434
  // takes care of preparing stuff before calling doConvert, and validating after.
435
  protected function doActualConvert()
436
  {
437
+ $versionString = gd_info()["GD Version"];
438
+ $this->logLn('GD Version: ' . $versionString);
439
 
440
  // Btw: Check out processWebp here:
441
  // https://github.com/Intervention/image/blob/master/src/Intervention/Image/Gd/Encoder.php
448
 
449
 
450
  if ($this->getMimeTypeOfSource() == 'image/png') {
451
+ if (function_exists('version_compare')) {
452
+ if (version_compare($versionString, "2.1.1", "<=")) {
453
+ $this->logLn(
454
+ 'BEWARE: Your version of Gd looses the alpha chanel when converting to webp.' .
455
+ 'You should upgrade Gd, use another converter or stop converting PNGs. ' .
456
+ 'See: https://github.com/rosell-dk/webp-convert/issues/238'
457
+ );
458
+ } elseif (version_compare($versionString, "2.2.4", "<=")) {
459
+ $this->logLn(
460
+ 'BEWARE: Older versions of Gd looses the alpha chanel when converting to webp.' .
461
+ 'We have not tested if transparency fails on your (rather old) version of Gd. ' .
462
+ 'Please let us know. ' .
463
+ 'See: https://github.com/rosell-dk/webp-convert/issues/238'
464
+ );
465
+ }
466
+ }
467
+
468
  // Try to set alpha blending
469
  $this->trySettingAlphaBlending($image);
470
  }
vendor/rosell-dk/webp-convert/src/Convert/Converters/Gmagick.php CHANGED
@@ -107,7 +107,7 @@ class Gmagick extends AbstractConverter
107
 
108
  $im->setimageformat('WEBP');
109
 
110
- // Not completely sure if setimageoption() has always been there, so lets check first. #169
111
  if (method_exists($im, 'setimageoption')) {
112
  // Finally cracked setting webp options.
113
  // See #167
107
 
108
  $im->setimageformat('WEBP');
109
 
110
+ // setimageoption() has not always been there, so check first. #169
111
  if (method_exists($im, 'setimageoption')) {
112
  // Finally cracked setting webp options.
113
  // See #167
vendor/rosell-dk/webp-convert/src/Convert/Converters/GraphicsMagick.php CHANGED
@@ -93,9 +93,8 @@ class GraphicsMagick extends AbstractConverter
93
  */
94
  private function createCommandLineOptions()
95
  {
96
- // I cannot find any documentation on available webp options for graphicsmagick :(
97
- // Checking for new supported options is currently done by searching for "webp" in the
98
- // news page: http://www.graphicsmagick.org/NEWS.html
99
 
100
  $commandArguments = [];
101
 
93
  */
94
  private function createCommandLineOptions()
95
  {
96
+ // For available webp options, check out:
97
+ // https://github.com/kstep/graphicsmagick/blob/master/coders/webp.c
 
98
 
99
  $commandArguments = [];
100
 
vendor/rosell-dk/webp-convert/src/Convert/Converters/ImageMagick.php CHANGED
@@ -7,6 +7,8 @@ use WebPConvert\Convert\Converters\ConverterTraits\ExecTrait;
7
  use WebPConvert\Convert\Converters\ConverterTraits\EncodingAutoTrait;
8
  use WebPConvert\Convert\Exceptions\ConversionFailed\ConverterNotOperational\SystemRequirementsNotMetException;
9
  use WebPConvert\Convert\Exceptions\ConversionFailedException;
 
 
10
 
11
  //use WebPConvert\Convert\Exceptions\ConversionFailed\InvalidInput\TargetNotFoundException;
12
 
@@ -25,11 +27,33 @@ class ImageMagick extends AbstractConverter
25
  protected function getUnsupportedDefaultOptions()
26
  {
27
  return [
28
- 'near-lossless',
29
  'size-in-percentage',
30
  ];
31
  }
32
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
33
  // To futher improve this converter, I could check out:
34
  // https://github.com/Orbitale/ImageMagickPHP
35
 
@@ -41,6 +65,14 @@ class ImageMagick extends AbstractConverter
41
  if (!empty(getenv('WEBPCONVERT_IMAGEMAGICK_PATH'))) {
42
  return getenv('WEBPCONVERT_IMAGEMAGICK_PATH');
43
  }
 
 
 
 
 
 
 
 
44
  return 'convert';
45
  }
46
 
@@ -105,12 +137,14 @@ class ImageMagick extends AbstractConverter
105
  /**
106
  * Build command line options
107
  *
 
108
  * @return string
109
  */
110
- private function createCommandLineOptions()
111
  {
112
- // PS: Available webp options for imagemagick are documented here:
113
- // https://imagemagick.org/script/webp.php
 
114
 
115
  // We should perhaps implement low-memory. Its already in cwebp, it
116
  // could perhaps be promoted to a general option
@@ -127,6 +161,7 @@ class ImageMagick extends AbstractConverter
127
  $options = $this->options;
128
 
129
  if (!is_null($options['preset'])) {
 
130
  if ($options['preset'] != 'none') {
131
  $imageHint = $options['preset'];
132
  switch ($imageHint) {
@@ -142,28 +177,56 @@ class ImageMagick extends AbstractConverter
142
  $commandArguments[] = '-define webp:image-hint=' . escapeshellarg($imageHint);
143
  }
144
  }
 
145
  if ($options['encoding'] == 'lossless') {
 
146
  $commandArguments[] = '-define webp:lossless=true';
147
  }
 
148
  if ($options['low-memory']) {
 
149
  $commandArguments[] = '-define webp:low-memory=true';
150
  }
 
151
  if ($options['auto-filter'] === true) {
 
152
  $commandArguments[] = '-define webp:auto-filter=true';
153
  }
 
154
  if ($options['metadata'] == 'none') {
155
  $commandArguments[] = '-strip';
156
  }
 
157
  if ($options['alpha-quality'] !== 100) {
 
158
  $commandArguments[] = '-define webp:alpha-quality=' . strval($options['alpha-quality']);
159
  }
 
160
  if ($options['sharp-yuv'] === true) {
161
- $commandArguments[] = '-define webp:use-sharp-yuv=true';
 
 
 
 
 
 
 
 
162
  }
163
 
164
- // Unfortunately, near-lossless does not seem to be supported.
165
- // it does have a "preprocessing" option, which may be doing something similar
 
 
 
 
 
 
 
 
 
166
 
 
167
  $commandArguments[] = '-define webp:method=' . $options['method'];
168
 
169
  $commandArguments[] = escapeshellarg($this->source);
@@ -174,9 +237,16 @@ class ImageMagick extends AbstractConverter
174
 
175
  protected function doActualConvert()
176
  {
177
- $this->logLn($this->getVersion());
 
 
 
 
 
 
 
178
 
179
- $command = $this->getPath() . ' ' . $this->createCommandLineOptions() . ' 2>&1';
180
 
181
  $useNice = (($this->options['use-nice']) && self::hasNiceSupport()) ? true : false;
182
  if ($useNice) {
7
  use WebPConvert\Convert\Converters\ConverterTraits\EncodingAutoTrait;
8
  use WebPConvert\Convert\Exceptions\ConversionFailed\ConverterNotOperational\SystemRequirementsNotMetException;
9
  use WebPConvert\Convert\Exceptions\ConversionFailedException;
10
+ use WebPConvert\Helpers\BinaryDiscovery;
11
+ use WebPConvert\Options\OptionFactory;
12
 
13
  //use WebPConvert\Convert\Exceptions\ConversionFailed\InvalidInput\TargetNotFoundException;
14
 
27
  protected function getUnsupportedDefaultOptions()
28
  {
29
  return [
 
30
  'size-in-percentage',
31
  ];
32
  }
33
 
34
+ /**
35
+ * Get the options unique for this converter
36
+ *
37
+ * @return array Array of options
38
+ */
39
+ public function getUniqueOptions($imageType)
40
+ {
41
+ return OptionFactory::createOptions([
42
+ ['try-common-system-paths', 'boolean', [
43
+ 'title' => 'Try locating ImageMagick in common system paths',
44
+ 'description' =>
45
+ 'If set, the converter will look for a ImageMagick binaries residing in common system locations ' .
46
+ 'such as "/usr/bin/convert". ' .
47
+ 'If such exist, it is assumed that they are valid ImageMagick binaries. ',
48
+ 'default' => true,
49
+ 'ui' => [
50
+ 'component' => 'checkbox',
51
+ 'advanced' => true
52
+ ]
53
+ ]],
54
+ ]);
55
+ }
56
+
57
  // To futher improve this converter, I could check out:
58
  // https://github.com/Orbitale/ImageMagickPHP
59
 
65
  if (!empty(getenv('WEBPCONVERT_IMAGEMAGICK_PATH'))) {
66
  return getenv('WEBPCONVERT_IMAGEMAGICK_PATH');
67
  }
68
+
69
+ if ($this->options['try-common-system-paths']) {
70
+ $binaries = BinaryDiscovery::discoverInCommonSystemPaths('convert');
71
+ if (!empty($binaries)) {
72
+ return $binaries[0];
73
+ }
74
+ }
75
+
76
  return 'convert';
77
  }
78
 
137
  /**
138
  * Build command line options
139
  *
140
+ * @param string $versionNumber. Ie "6.9.10-23"
141
  * @return string
142
  */
143
+ private function createCommandLineOptions($versionNumber = 'unknown')
144
  {
145
+ // Available webp options for imagemagick are documented here:
146
+ // - https://imagemagick.org/script/webp.php
147
+ // - https://github.com/ImageMagick/ImageMagick/blob/main/coders/webp.c
148
 
149
  // We should perhaps implement low-memory. Its already in cwebp, it
150
  // could perhaps be promoted to a general option
161
  $options = $this->options;
162
 
163
  if (!is_null($options['preset'])) {
164
+ // "image-hint" is at least available from 6.9.4-0 (I can't see further back)
165
  if ($options['preset'] != 'none') {
166
  $imageHint = $options['preset'];
167
  switch ($imageHint) {
177
  $commandArguments[] = '-define webp:image-hint=' . escapeshellarg($imageHint);
178
  }
179
  }
180
+
181
  if ($options['encoding'] == 'lossless') {
182
+ // lossless is at least available from 6.9.4-0 (I can't see further back)
183
  $commandArguments[] = '-define webp:lossless=true';
184
  }
185
+
186
  if ($options['low-memory']) {
187
+ // low-memory is at least available from 6.9.4-0 (I can't see further back)
188
  $commandArguments[] = '-define webp:low-memory=true';
189
  }
190
+
191
  if ($options['auto-filter'] === true) {
192
+ // auto-filter is at least available from 6.9.4-0 (I can't see further back)
193
  $commandArguments[] = '-define webp:auto-filter=true';
194
  }
195
+
196
  if ($options['metadata'] == 'none') {
197
  $commandArguments[] = '-strip';
198
  }
199
+
200
  if ($options['alpha-quality'] !== 100) {
201
+ // alpha-quality is at least available from 6.9.4-0 (I can't see further back)
202
  $commandArguments[] = '-define webp:alpha-quality=' . strval($options['alpha-quality']);
203
  }
204
+
205
  if ($options['sharp-yuv'] === true) {
206
+ if (version_compare($versionNumber, '7.0.8-26', '>=')) {
207
+ $commandArguments[] = '-define webp:use-sharp-yuv=true';
208
+ } else {
209
+ $this->logLn(
210
+ 'Note: "sharp-yuv" option is not supported in your version of ImageMagick. ' .
211
+ 'ImageMagic >= 7.0.8-26 is required',
212
+ 'italic'
213
+ );
214
+ }
215
  }
216
 
217
+ if ($options['near-lossless'] != 100) {
218
+ if (version_compare($versionNumber, '7.0.10-54', '>=')) { // #299
219
+ $commandArguments[] = '-define webp:near-lossless=' . escapeshellarg($options['near-lossless']);
220
+ } else {
221
+ $this->logLn(
222
+ 'Note: "near-lossless" option is not supported in your version of ImageMagick. ' .
223
+ 'ImageMagic >= 7.0.10-54 is required',
224
+ 'italic'
225
+ );
226
+ }
227
+ }
228
 
229
+ // "method" is at least available from 6.9.4-0 (I can't see further back)
230
  $commandArguments[] = '-define webp:method=' . $options['method'];
231
 
232
  $commandArguments[] = escapeshellarg($this->source);
237
 
238
  protected function doActualConvert()
239
  {
240
+ $version = $this->getVersion();
241
+
242
+ $this->logLn($version);
243
+
244
+ preg_match('#\d+\.\d+\.\d+[\d\.\-]+#', $version, $matches);
245
+ $versionNumber = (isset($matches[0]) ? $matches[0] : 'unknown');
246
+
247
+ $this->logLn('Extracted version number: ' . $versionNumber);
248
 
249
+ $command = $this->getPath() . ' ' . $this->createCommandLineOptions($versionNumber) . ' 2>&1';
250
 
251
  $useNice = (($this->options['use-nice']) && self::hasNiceSupport()) ? true : false;
252
  if ($useNice) {
vendor/rosell-dk/webp-convert/src/Convert/Converters/Imagick.php CHANGED
@@ -24,7 +24,6 @@ class Imagick extends AbstractConverter
24
  protected function getUnsupportedDefaultOptions()
25
  {
26
  return [
27
- 'near-lossless',
28
  'size-in-percentage',
29
  'use-nice'
30
  ];
@@ -105,11 +104,21 @@ class Imagick extends AbstractConverter
105
 
106
  // This might throw - we let it!
107
  $im = new \Imagick($this->source);
108
-
109
  //$im = new \Imagick();
110
  //$im->pingImage($this->source);
111
  //$im->readImage($this->source);
112
 
 
 
 
 
 
 
 
 
 
 
 
113
  $im->setImageFormat('WEBP');
114
 
115
  if (!is_null($options['preset'])) {
@@ -134,12 +143,32 @@ class Imagick extends AbstractConverter
134
  $im->setOption('webp:low-memory', $options['low-memory'] ? 'true' : 'false');
135
  $im->setOption('webp:alpha-quality', $options['alpha-quality']);
136
 
 
 
 
 
 
 
 
 
 
 
 
 
137
  if ($options['auto-filter'] === true) {
138
  $im->setOption('webp:auto-filter', 'true');
139
  }
140
 
141
  if ($options['sharp-yuv'] === true) {
142
- $im->setOption('webp:use-sharp-yuv', 'true');
 
 
 
 
 
 
 
 
143
  }
144
 
145
  if ($options['metadata'] == 'none') {
24
  protected function getUnsupportedDefaultOptions()
25
  {
26
  return [
 
27
  'size-in-percentage',
28
  'use-nice'
29
  ];
104
 
105
  // This might throw - we let it!
106
  $im = new \Imagick($this->source);
 
107
  //$im = new \Imagick();
108
  //$im->pingImage($this->source);
109
  //$im->readImage($this->source);
110
 
111
+ $version = \Imagick::getVersion();
112
+ $this->logLn('ImageMagic API version (full): ' . $version['versionString']);
113
+
114
+ preg_match('#\d+\.\d+\.\d+[\d\.\-]+#', $version['versionString'], $matches);
115
+ $versionNumber = (isset($matches[0]) ? $matches[0] : 'unknown');
116
+ $this->logLn('ImageMagic API version (just the number): ' . $versionNumber);
117
+
118
+ // Note: good enough for info, but not entirely reliable - see #304
119
+ $extVersion = (defined('\Imagick::IMAGICK_EXTVER') ? \Imagick::IMAGICK_EXTVER : phpversion('imagick'));
120
+ $this->logLn('Imagic extension version: ' . $extVersion);
121
+
122
  $im->setImageFormat('WEBP');
123
 
124
  if (!is_null($options['preset'])) {
143
  $im->setOption('webp:low-memory', $options['low-memory'] ? 'true' : 'false');
144
  $im->setOption('webp:alpha-quality', $options['alpha-quality']);
145
 
146
+ if ($options['near-lossless'] != 100) {
147
+ if (version_compare($versionNumber, '7.0.10-54', '>=')) {
148
+ $im->setOption('webp:near-lossless', $options['near-lossless']);
149
+ } else {
150
+ $this->logLn(
151
+ 'Note: near-lossless is not supported in your version of ImageMagick. ' .
152
+ 'ImageMagic >= 7.0.10-54 is required',
153
+ 'italic'
154
+ );
155
+ }
156
+ }
157
+
158
  if ($options['auto-filter'] === true) {
159
  $im->setOption('webp:auto-filter', 'true');
160
  }
161
 
162
  if ($options['sharp-yuv'] === true) {
163
+ if (version_compare($versionNumber, '7.0.8-26', '>=')) {
164
+ $im->setOption('webp:use-sharp-yuv', 'true');
165
+ } else {
166
+ $this->logLn(
167
+ 'Note: "sharp-yuv" option is not supported in your version of ImageMagick. ' .
168
+ 'ImageMagic >= 7.0.8-26 is required',
169
+ 'italic'
170
+ );
171
+ }
172
  }
173
 
174
  if ($options['metadata'] == 'none') {
vendor/rosell-dk/webp-convert/src/Options/ArrayOption.php CHANGED
@@ -16,7 +16,7 @@ class ArrayOption extends Option
16
  {
17
 
18
  protected $typeId = 'array';
19
- protected $allowedValueTypes = ['array'];
20
 
21
  public function check()
22
  {
@@ -31,11 +31,11 @@ class ArrayOption extends Option
31
  return parent::getValueForPrint();
32
  }
33
  }
34
- /*
35
  public function getDefinition()
36
  {
37
  $obj = parent::getDefinition();
38
  $obj['sensitive'] = false;
39
  return $obj;
40
- }*/
41
  }
16
  {
17
 
18
  protected $typeId = 'array';
19
+ protected $schemaType = ['array'];
20
 
21
  public function check()
22
  {
31
  return parent::getValueForPrint();
32
  }
33
  }
34
+
35
  public function getDefinition()
36
  {
37
  $obj = parent::getDefinition();
38
  $obj['sensitive'] = false;
39
  return $obj;
40
+ }
41
  }
vendor/rosell-dk/webp-convert/src/Options/BooleanOption.php CHANGED
@@ -16,7 +16,7 @@ class BooleanOption extends Option
16
  {
17
 
18
  protected $typeId = 'boolean';
19
- protected $allowedValueTypes = ['boolean'];
20
 
21
  public function check()
22
  {
16
  {
17
 
18
  protected $typeId = 'boolean';
19
+ protected $schemaType = ['boolean'];
20
 
21
  public function check()
22
  {
vendor/rosell-dk/webp-convert/src/Options/IntegerOption.php CHANGED
@@ -14,8 +14,8 @@ use WebPConvert\Options\Exceptions\InvalidOptionValueException;
14
  */
15
  class IntegerOption extends Option
16
  {
17
- protected $typeId = 'integer';
18
- protected $allowedValueTypes = ['integer'];
19
  protected $minValue;
20
  protected $maxValue;
21
 
@@ -65,4 +65,12 @@ class IntegerOption extends Option
65
  $this->checkType('integer');
66
  $this->checkMinMax();
67
  }
 
 
 
 
 
 
 
 
68
  }
14
  */
15
  class IntegerOption extends Option
16
  {
17
+ protected $typeId = 'int';
18
+ protected $schemaType = ['integer'];
19
  protected $minValue;
20
  protected $maxValue;
21
 
65
  $this->checkType('integer');
66
  $this->checkMinMax();
67
  }
68
+
69
+ public function getSchema()
70
+ {
71
+ $obj = parent::getSchema();
72
+ $obj['minimum'] = $this->minValue;
73
+ $obj['maximum'] = $this->maxValue;
74
+ return $obj;
75
+ }
76
  }
vendor/rosell-dk/webp-convert/src/Options/IntegerOrNullOption.php CHANGED
@@ -14,7 +14,7 @@ use WebPConvert\Options\Exceptions\InvalidOptionValueException;
14
  */
15
  class IntegerOrNullOption extends IntegerOption
16
  {
17
- protected $allowedValueTypes = ['integer', 'null'];
18
 
19
  public function __construct($id, $defaultValue, $minValue = null, $maxValue = null)
20
  {
@@ -41,4 +41,10 @@ class IntegerOrNullOption extends IntegerOption
41
  }
42
  return parent::getValueForPrint();
43
  }
 
 
 
 
 
 
44
  }
14
  */
15
  class IntegerOrNullOption extends IntegerOption
16
  {
17
+ protected $schemaType = ['integer', 'null'];
18
 
19
  public function __construct($id, $defaultValue, $minValue = null, $maxValue = null)
20
  {
41
  }
42
  return parent::getValueForPrint();
43
  }
44
+
45
+ public function getDefinition()
46
+ {
47
+ $obj = parent::getDefinition();
48
+ return $obj;
49
+ }
50
  }
vendor/rosell-dk/webp-convert/src/Options/MetadataOption.php CHANGED
@@ -16,7 +16,7 @@ class MetadataOption extends StringOption
16
  {
17
 
18
  protected $typeId = 'metadata';
19
- protected $allowedValueTypes = ['string'];
20
 
21
  public function __construct($id, $defaultValue)
22
  {
16
  {
17
 
18
  protected $typeId = 'metadata';
19
+ protected $schemaType = ['string'];
20
 
21
  public function __construct($id, $defaultValue)
22
  {
vendor/rosell-dk/webp-convert/src/Options/Option.php CHANGED
@@ -29,8 +29,11 @@ class Option
29
  /** @var string An option must supply a type id */
30
  protected $typeId;
31
 
32
- /** @var array Type constraints for the value */
33
- protected $allowedValueTypes = [];
 
 
 
34
 
35
  /** @var boolean Whether the option has been deprecated */
36
  protected $deprecated = false;
@@ -38,6 +41,12 @@ class Option
38
  /** @var string Help text */
39
  protected $helpText = '';
40
 
 
 
 
 
 
 
41
 
42
  /**
43
  * Constructor.
@@ -156,21 +165,80 @@ class Option
156
  return print_r($this->getValue(), true);
157
  }
158
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
159
 
160
- /* POST-PONED till 2.7.0
161
 
162
  public function getDefinition()
163
  {
164
  $obj = [
165
- 'id' => $this->id,
166
- 'type' => $this->typeId,
167
- 'allowed-value-types' => $this->allowedValueTypes,
168
- 'default' => $this->defaultValue,
169
- 'help-text' => $this->helpText,
170
  ];
171
  if ($this->deprecated) {
172
  $obj['deprecated'] = true;
173
  }
174
  return $obj;
175
- }*/
176
  }
29
  /** @var string An option must supply a type id */
30
  protected $typeId;
31
 
32
+ /** @var array Type constraints for the value (JSON schema syntax) */
33
+ protected $schemaType = [];
34
+
35
+ /** @var array|null Array of allowed values (JSON schema syntax) */
36
+ protected $enum = null; //https://json-schema.org/understanding-json-schema/reference/generic.html#enumerated-values
37
 
38
  /** @var boolean Whether the option has been deprecated */
39
  protected $deprecated = false;
41
  /** @var string Help text */
42
  protected $helpText = '';
43
 
44
+ /** @var array UI Def */
45
+ protected $ui;
46
+
47
+ /** @var array Extra Schema Def (ie holding 'title', 'description' or other)*/
48
+ protected $extraSchemaDefs;
49
+
50
 
51
  /**
52
  * Constructor.
165
  return print_r($this->getValue(), true);
166
  }
167
 
168
+ /**
169
+ * Set help text for the option
170
+ *
171
+ * @param string $helpText The help text
172
+ * @return void
173
+ */
174
+ public function setHelpText($helpText)
175
+ {
176
+ $this->helpText = $helpText;
177
+ }
178
+
179
+ /**
180
+ * Get help text for the option
181
+ *
182
+ * @return string $helpText The help text
183
+ */
184
+ public function getHelpText()
185
+ {
186
+ return $this->helpText;
187
+ }
188
+
189
+ /**
190
+ * Set ui definition for the option
191
+ *
192
+ * @param array $ui The UI def
193
+ * @return void
194
+ */
195
+ public function setUI($ui)
196
+ {
197
+ $this->ui = $ui;
198
+ }
199
+
200
+ public function setExtraSchemaDefs($def)
201
+ {
202
+ $this->extraSchemaDefs = $def;
203
+ }
204
+
205
+
206
+ /**
207
+ * Get ui definition for the option
208
+ *
209
+ * @return array $ui The UI def
210
+ */
211
+ public function getUI()
212
+ {
213
+ return $this->ui;
214
+ }
215
+
216
+ public function getSchema()
217
+ {
218
+ if (isset($this->extraSchemaDefs)) {
219
+ $schema = $this->extraSchemaDefs;
220
+ } else {
221
+ $schema = [];
222
+ }
223
+ $schema['type'] = $this->schemaType;
224
+ $schema['default'] = $this->defaultValue;
225
+ if (!is_null($this->enum)) {
226
+ $schema['enum'] = $this->enum;
227
+ }
228
+ return $schema;
229
+ }
230
 
 
231
 
232
  public function getDefinition()
233
  {
234
  $obj = [
235
+ 'id' => $this->id,
236
+ 'schema' => $this->getSchema(),
237
+ 'ui' => $this->ui,
 
 
238
  ];
239
  if ($this->deprecated) {
240
  $obj['deprecated'] = true;
241
  }
242
  return $obj;
243
+ }
244
  }
vendor/rosell-dk/webp-convert/src/Options/OptionFactory.php ADDED
@@ -0,0 +1,92 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace WebPConvert\Options;
4
+
5
+ use WebPConvert\Options\ArrayOption;
6
+ use WebPConvert\Options\BooleanOption;
7
+ use WebPConvert\Options\IntegerOption;
8
+ use WebPConvert\Options\IntegerOrNullOption;
9
+ use WebPConvert\Options\MetadataOption;
10
+ use WebPConvert\Options\StringOption;
11
+ use WebPConvert\Options\SensitiveStringOption;
12
+ use WebPConvert\Options\QualityOption;
13
+
14
+ /**
15
+ * Abstract option class
16
+ *
17
+ * @package WebPConvert
18
+ * @author Bjørn Rosell <it@rosell.dk>
19
+ * @since Class available since Release 2.7.0
20
+ */
21
+ class OptionFactory
22
+ {
23
+
24
+ public static function createOption($optionName, $optionType, $def)
25
+ {
26
+ $option = null;
27
+ switch ($optionType) {
28
+ case 'int':
29
+ $minValue = (isset($def['minimum']) ? $def['minimum'] : null);
30
+ $maxValue = (isset($def['maximum']) ? $def['maximum'] : null);
31
+ unset($def['minimum']);
32
+ unset($def['maximum']);
33
+ if (isset($def['allow-null']) && $def['allow-null']) {
34
+ $option = new IntegerOrNullOption($optionName, $def['default'], $minValue, $maxValue);
35
+ } else {
36
+ if ($optionName == 'quality') {
37
+ $option = new QualityOption($optionName, $def['default']);
38
+ } else {
39
+ $option = new IntegerOption($optionName, $def['default'], $minValue, $maxValue);
40
+ }
41
+ }
42
+ break;
43
+
44
+ case 'string':
45
+ if ($optionName == 'metadata') {
46
+ $option = new MetadataOption($optionName, $def['default']);
47
+ } else {
48
+ $enum = (isset($def['enum']) ? $def['enum'] : null);
49
+ if (isset($def['sensitive']) && ($def['sensitive'] == true)) {
50
+ unset($def['sensitive']);
51
+ $option = new SensitiveStringOption($optionName, $def['default'], $enum);
52
+ } else {
53
+ $option = new StringOption($optionName, $def['default'], $enum);
54
+ }
55
+ }
56
+ break;
57
+
58
+ case 'boolean':
59
+ $option = new BooleanOption($optionName, $def['default']);
60
+ break;
61
+
62
+ case 'array':
63
+ $option = new ArrayOption($optionName, $def['default']);
64
+ break;
65
+ }
66
+ unset($def['default']);
67
+
68
+ if (!is_null($option)) {
69
+ if (isset($def['deprecated'])) {
70
+ $option->markDeprecated();
71
+ }
72
+ if (isset($def['ui'])) {
73
+ $option->setUI($def['ui']);
74
+ unset($def['ui']);
75
+ }
76
+ }
77
+ $option->setExtraSchemaDefs($def);
78
+ return $option;
79
+ }
80
+
81
+ public static function createOptions($def)
82
+ {
83
+ $result = [];
84
+ foreach ($def as $i => list($optionName, $optionType, $optionDef)) {
85
+ $option = self::createOption($optionName, $optionType, $optionDef);
86
+ if (!is_null($option)) {
87
+ $result[] = $option;
88
+ }
89
+ }
90
+ return $result;
91
+ }
92
+ }
vendor/rosell-dk/webp-convert/src/Options/Options.php CHANGED
@@ -168,9 +168,34 @@ class Options
168
  }
169
  }
170
 
 
 
 
 
 
 
 
 
 
 
 
 
 
171
 
 
 
 
 
 
 
 
 
 
 
 
 
 
172
 
173
- /* POST-PONED till 2.7.0
174
  public function getDefinitions($deprecatedToo = false)
175
  {
176
  $defs = [];
@@ -180,5 +205,5 @@ class Options
180
  }
181
  }
182
  return $defs;
183
- }*/
184
  }
168
  }
169
  }
170
 
171
+ /**
172
+ * Set help texts on multiple options
173
+ *
174
+ * @param array $helpTexts Hash of helptexts indexed by option id
175
+ */
176
+ public function setHelpTexts($helpTexts)
177
+ {
178
+ foreach ($this->options as $option) {
179
+ if (array_key_exists($option->getId(), $helpTexts)) {
180
+ $option->setHelpText($helpTexts[$option->getId()]);
181
+ }
182
+ }
183
+ }
184
 
185
+ /**
186
+ * Set ui definitions on multiple options
187
+ *
188
+ * @param array $uis Hash of ui definitions indexed by option id
189
+ */
190
+ public function setUI($uis)
191
+ {
192
+ foreach ($this->options as $option) {
193
+ if (array_key_exists($option->getId(), $uis)) {
194
+ $option->setUI($uis[$option->getId()]);
195
+ }
196
+ }
197
+ }
198
 
 
199
  public function getDefinitions($deprecatedToo = false)
200
  {
201
  $defs = [];
205
  }
206
  }
207
  return $defs;
208
+ }
209
  }
vendor/rosell-dk/webp-convert/src/Options/QualityOption.php CHANGED
@@ -16,8 +16,8 @@ use WebPConvert\Options\Exceptions\InvalidOptionValueException;
16
  */
17
  class QualityOption extends Option
18
  {
19
- protected $typeId = 'quality';
20
- protected $allowedValueTypes = ['integer', 'string'];
21
 
22
  public function __construct($id, $defaultValue)
23
  {
16
  */
17
  class QualityOption extends Option
18
  {
19
+ protected $typeId = 'int';
20
+ protected $schemaType = ['integer', 'string'];
21
 
22
  public function __construct($id, $defaultValue)
23
  {
vendor/rosell-dk/webp-convert/src/Options/SensitiveArrayOption.php CHANGED
@@ -29,4 +29,11 @@ class SensitiveArrayOption extends ArrayOption
29
  }
30
  //return '*****';
31
  }
 
 
 
 
 
 
 
32
  }
29
  }
30
  //return '*****';
31
  }
32
+
33
+ public function getDefinition()
34
+ {
35
+ $obj = parent::getDefinition();
36
+ $obj['sensitive'] = true;
37
+ return $obj;
38
+ }
39
  }
vendor/rosell-dk/webp-convert/src/Options/SensitiveStringOption.php CHANGED
@@ -15,9 +15,9 @@ use WebPConvert\Options\Exceptions\InvalidOptionValueException;
15
  class SensitiveStringOption extends StringOption
16
  {
17
 
18
- public function __construct($id, $defaultValue, $allowedValues = null)
19
  {
20
- parent::__construct($id, $defaultValue, $allowedValues);
21
  }
22
 
23
  public function check()
@@ -32,4 +32,11 @@ class SensitiveStringOption extends StringOption
32
  }
33
  return '*****';
34
  }
 
 
 
 
 
 
 
35
  }
15
  class SensitiveStringOption extends StringOption
16
  {
17
 
18
+ public function __construct($id, $defaultValue, $enum = null)
19
  {
20
+ parent::__construct($id, $defaultValue, $enum);
21
  }
22
 
23
  public function check()
32
  }
33
  return '*****';
34
  }
35
+
36
+ public function getDefinition()
37
+ {
38
+ $obj = parent::getDefinition();
39
+ $obj['sensitive'] = true;
40
+ return $obj;
41
+ }
42
  }
vendor/rosell-dk/webp-convert/src/Options/StringOption.php CHANGED
@@ -16,12 +16,12 @@ class StringOption extends Option
16
  {
17
 
18
  protected $typeId = 'string';
19
- protected $allowedValues;
20
- protected $allowedValueTypes = ['string'];
21
 
22
- public function __construct($id, $defaultValue, $allowedValues = null)
23
  {
24
- $this->allowedValues = $allowedValues;
25
  parent::__construct($id, $defaultValue);
26
  }
27
 
@@ -29,10 +29,10 @@ class StringOption extends Option
29
  {
30
  $this->checkType('string');
31
 
32
- if (!is_null($this->allowedValues) && (!in_array($this->getValue(), $this->allowedValues))) {
33
  throw new InvalidOptionValueException(
34
  '"' . $this->id . '" option must be on of these values: ' .
35
- '[' . implode(', ', $this->allowedValues) . ']. ' .
36
  'It was however set to: "' . $this->getValue() . '"'
37
  );
38
  }
@@ -42,4 +42,14 @@ class StringOption extends Option
42
  {
43
  return '"' . $this->getValue() . '"';
44
  }
 
 
 
 
 
 
 
 
 
 
45
  }
16
  {
17
 
18
  protected $typeId = 'string';
19
+ protected $enum;
20
+ protected $schemaType = ['string'];
21
 
22
+ public function __construct($id, $defaultValue, $enum = null)
23
  {
24
+ $this->enum = $enum;
25
  parent::__construct($id, $defaultValue);
26
  }
27
 
29
  {
30
  $this->checkType('string');
31
 
32
+ if (!is_null($this->enum) && (!in_array($this->getValue(), $this->enum))) {
33
  throw new InvalidOptionValueException(
34
  '"' . $this->id . '" option must be on of these values: ' .
35
+ '[' . implode(', ', $this->enum) . ']. ' .
36
  'It was however set to: "' . $this->getValue() . '"'
37
  );
38
  }
42
  {
43
  return '"' . $this->getValue() . '"';
44
  }
45
+
46
+ public function getDefinition()
47
+ {
48
+ $obj = parent::getDefinition();
49
+ $obj['sensitive'] = false;
50
+ if (!is_null($this->enum)) {
51
+ $obj['options'] = $this->enum;
52
+ }
53
+ return $obj;
54
+ }
55
  }
vendor/rosell-dk/webp-convert/src/WebPConvert.php CHANGED
@@ -6,6 +6,7 @@ namespace WebPConvert;
6
  use WebPConvert\Convert\Converters\Stack;
7
  //use WebPConvert\Serve\ServeExistingOrHandOver;
8
  use WebPConvert\Convert\ConverterFactory;
 
9
  use WebPConvert\Serve\ServeConvertedWebP;
10
  use WebPConvert\Serve\ServeConvertedWebPWithErrorHandling;
11
 
@@ -100,20 +101,75 @@ class WebPConvert
100
  *
101
  * @return array Array of options definitions - ready to be json encoded, or whatever
102
  */
103
- /* POST-PONED till 2.7.0
 
 
 
104
  public static function getConverterOptionDefinitions(
105
  $imageType = 'png',
106
  $returnGeneral = true,
107
  $returnGeneralSupport = true
108
  ) {
109
 
110
- $ids = self::getConverterIds();
 
 
111
  $result = [];
112
- foreach ($ids as $id) {
113
- $c = ConverterFactory::makeConverter($id, '', '');
114
- $optionDefinitions = $c->getOptionDefinitions($imageType, $returnGeneral, $returnGeneralSupport);
115
 
116
- $result[$id] = $optionDefinitions;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
117
  }
118
  return $result;
119
  }*/
6
  use WebPConvert\Convert\Converters\Stack;
7
  //use WebPConvert\Serve\ServeExistingOrHandOver;
8
  use WebPConvert\Convert\ConverterFactory;
9
+ use WebPConvert\Options\OptionFactory;
10
  use WebPConvert\Serve\ServeConvertedWebP;
11
  use WebPConvert\Serve\ServeConvertedWebPWithErrorHandling;
12
 
101
  *
102
  * @return array Array of options definitions - ready to be json encoded, or whatever
103
  */
104
+ /*
105
+ Commented out, as it is not ready for release yet
106
+
107
+
108
  public static function getConverterOptionDefinitions(
109
  $imageType = 'png',
110
  $returnGeneral = true,
111
  $returnGeneralSupport = true
112
  ) {
113
 
114
+ // TODO: Return converter too - even though it is no a "real" option
115
+
116
+ $converterIds = self::getConverterIds();
117
  $result = [];
 
 
 
118
 
119
+ $ewww = ConverterFactory::makeConverter('ewww', '', '');
120
+
121
+ //$result['general'] = $ewww->getGeneralOptionDefinitions();
122
+ $result['general'] = $ewww->getGeneralOptionDefinitions();
123
+ $generalOptionHash = [];
124
+ $generalOptionIds = [];
125
+ foreach ($result['general'] as &$option) {
126
+ $generalOptionIds[] = $option['id'];
127
+ //$option['supportedBy'] = $converterIds; // we will remove the unsupported below
128
+ $option['unsupportedBy'] = [];
129
+ $generalOptionHash[$option['id']] = &$option;
130
+ }
131
+ //$result['general'] = $generalOptionIds;
132
+ array_unshift($result['general'], OptionFactory::createOption('converter', 'string', [
133
+ 'title' => 'Converter',
134
+ 'description' => 'Conversion method',
135
+ 'description' => "Cwebp and vips are best. " .
136
+ 'the *magick are nearly as good, but only recent versions supports near-lossless. ' .
137
+ 'gd is poor, as it does not support any webp options. ' .
138
+ 'For full discussion, check the guide',
139
+ 'default' => 'cwebp', // TODO: set to best working
140
+ 'enum' => $converterIds,
141
+ 'ui' => [
142
+ 'component' => 'select',
143
+ 'links' => [
144
+ [
145
+ 'Guide',
146
+ 'https://github.com/rosell-dk/webp-convert/blob/master/docs/v1.3/converting/converters.md'
147
+ ]
148
+ ],
149
+ ]
150
+ ])->getDefinition());
151
+
152
+
153
+ //getUIForGeneralOptions
154
+ //$generalOption->addOptions(... $this->getGeneralOptions($imageType));
155
+
156
+ $supportedBy = [];
157
+
158
+ foreach ($converterIds as $converterId) {
159
+ $c = ConverterFactory::makeConverter($converterId, '', '');
160
+
161
+ //$supports = $generalOptionIds;
162
+ foreach ($c->getUnsupportedGeneralOptions() as $optionId) {
163
+ //$result['general']
164
+ //if ()$support[]
165
+ //unsupportedBy
166
+ $generalOptionHash[$optionId]['unsupportedBy'][] = $converterId;
167
+ }
168
+
169
+
170
+ //$optionDefinitions = $c->getOptionDefinitions($imageType, $returnGeneral, $returnGeneralSupport);
171
+ $optionDefinitions = $c->getUniqueOptionDefinitions($imageType);
172
+ $result[$converterId] = $optionDefinitions;
173
  }
174
  return $result;
175
  }*/
webp-express.php CHANGED
@@ -3,7 +3,7 @@
3
  * Plugin Name: WebP Express
4
  * Plugin URI: https://github.com/rosell-dk/webp-express
5
  * Description: Serve autogenerated WebP images instead of jpeg/png to browsers that supports WebP. Works on anything (media library images, galleries, theme images etc).
6
- * Version: 0.20.1
7
  * Author: Bjørn Rosell
8
  * Author URI: https://www.bitwise-it.dk
9
  * License: GPL2
3
  * Plugin Name: WebP Express
4
  * Plugin URI: https://github.com/rosell-dk/webp-express
5
  * Description: Serve autogenerated WebP images instead of jpeg/png to browsers that supports WebP. Works on anything (media library images, galleries, theme images etc).
6
+ * Version: 0.21.0
7
  * Author: Bjørn Rosell
8
  * Author URI: https://www.bitwise-it.dk
9
  * License: GPL2