diff --git a/app/Http/Controllers/PortalsController.php b/app/Http/Controllers/PortalsController.php
index cf8af7f..4a1aa8b 100644
--- a/app/Http/Controllers/PortalsController.php
+++ b/app/Http/Controllers/PortalsController.php
@@ -35,6 +35,8 @@ public function importUsers(Request $request)
], 401);
}
+ // if "deleteUsers" url parameter is set to true, all users that are not in the import anymore will be deleted
+ $deleteUsers = ($request->deleteUsers == 'true');
// call APP_PORTALS_URL
$client = new Client();
@@ -60,14 +62,31 @@ public function importUsers(Request $request)
// get users
$users = json_decode($body, true)['users'];
+ // save all removed and added users
+ $removedUsers = [];
+ $addedUsers = [];
+ $updatedUsers = [];
+ $doNotRemovePersonIds = [];
+
// loop through users
foreach($users as $user) {
// check if Person with id exists if not create new Person
$person = Person::firstOrNew(['id' => $user['id']]);
+
+ array_push($doNotRemovePersonIds, $user['id']);
// set attributes
if($person->id == null) {
+ // this could be a problem if the id is/was used by a another person that was created/imported before
+ // because we handle the complete user management via portals import and do not manage persons manually here, this is not a problem
$person->id = $user['id'];
+ array_push($addedUsers, $user['id'] . " (" . $user['email'] . ")");
+ } else {
+ if ($person->email == $user['email']) {
+ array_push($updatedUsers, $person->id . " (" . $person->email . ")");
+ } else {
+ array_push($updatedUsers, $person->id . " (" . $person->email . " - " . $user['email'] . ")");
+ }
}
$person->firstname = $user['firstname'];
$person->lastname = $user['lastname'];
@@ -93,10 +112,14 @@ public function importUsers(Request $request)
$person->course = $abbreviation;
}
- // import image
- $person->img = (!empty($user['avatarUrl']) ? $user['avatarUrl'] : '');
+ // import image path, if null set empty string
+ if (isset($user['avatar'])) {
+ $person->img = $user['avatar'];
+ } else {
+ $person->img = "";
+ }
- // cheeck roles
+ // check roles
$roles = $user['roles'];
// loop through roles
@@ -116,13 +139,23 @@ public function importUsers(Request $request)
// save Person
$person->save();
+ }
+ if ($deleteUsers) {
+ $deletePersons = Person::whereNotIn('id', $doNotRemovePersonIds)->get();
+ foreach($deletePersons as $person) {
+ $person->delete();
+ array_push($removedUsers, $person->id . " (" . $person->email . ")");
+ }
}
// return response
return response()->json([
'message' => 'User imported',
- 'status' => $statusCode
+ 'status' => $statusCode,
+ 'addedUsers' => $addedUsers,
+ 'removedUsers' => $removedUsers,
+ 'updatedUsers' => $updatedUsers
], 200);
}
}
\ No newline at end of file
diff --git a/app/Models/Person.php b/app/Models/Person.php
index 1d62d23..9ca21a3 100644
--- a/app/Models/Person.php
+++ b/app/Models/Person.php
@@ -6,6 +6,7 @@
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\Crypt;
+use Illuminate\Support\Facades\Storage;
use NotificationChannels\Telegram\TelegramMessage;
class Person extends Model
@@ -47,9 +48,15 @@ class Person extends Model
*/
public function getImageAttribute()
{
- if (!empty($this->img)) {
- return $this->img;
+ // check if image is set and file exists
+ if (!empty($this->img) && Storage::disk('s3')->exists($this->img)) {
+ // generate presigned url for s3 with path stored in "img"
+ return Storage::disk('s3')->temporaryUrl(
+ $this->img,
+ now()->addMinutes(60)
+ );
} else {
+ // no image is set, return default image
return '/images/default.jpg';
}
}
diff --git a/composer.json b/composer.json
index f5fe70e..378c1a9 100644
--- a/composer.json
+++ b/composer.json
@@ -14,6 +14,7 @@
"laravel/octane": "*",
"laravel/sanctum": "^2.11",
"laravel/tinker": "^2.5",
+ "league/flysystem-aws-s3-v3": "^1.0",
"spiral/roadrunner": "^2.0"
},
"require-dev": {
diff --git a/composer.lock b/composer.lock
index df38328..bc95228 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,35 +4,35 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
- "content-hash": "766bcb4f650d940d4f58b316777511fd",
+ "content-hash": "9265a47fa24c980d19c6e680392e8008",
"packages": [
{
"name": "asm89/stack-cors",
- "version": "v2.1.1",
+ "version": "v2.2.0",
"source": {
"type": "git",
"url": "https://github.com/asm89/stack-cors.git",
- "reference": "73e5b88775c64ccc0b84fb60836b30dc9d92ac4a"
+ "reference": "50f57105bad3d97a43ec4a485eb57daf347eafea"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/asm89/stack-cors/zipball/73e5b88775c64ccc0b84fb60836b30dc9d92ac4a",
- "reference": "73e5b88775c64ccc0b84fb60836b30dc9d92ac4a",
+ "url": "https://api.github.com/repos/asm89/stack-cors/zipball/50f57105bad3d97a43ec4a485eb57daf347eafea",
+ "reference": "50f57105bad3d97a43ec4a485eb57daf347eafea",
"shasum": ""
},
"require": {
- "php": "^7.2|^8.0",
- "symfony/http-foundation": "^4|^5|^6",
- "symfony/http-kernel": "^4|^5|^6"
+ "php": "^7.3|^8.0",
+ "symfony/http-foundation": "^5.3|^6|^7",
+ "symfony/http-kernel": "^5.3|^6|^7"
},
"require-dev": {
- "phpunit/phpunit": "^7|^9",
+ "phpunit/phpunit": "^9",
"squizlabs/php_codesniffer": "^3.5"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.1-dev"
+ "dev-master": "2.2-dev"
}
},
"autoload": {
@@ -58,31 +58,183 @@
],
"support": {
"issues": "https://github.com/asm89/stack-cors/issues",
- "source": "https://github.com/asm89/stack-cors/tree/v2.1.1"
+ "source": "https://github.com/asm89/stack-cors/tree/v2.2.0"
+ },
+ "time": "2023-11-14T13:51:46+00:00"
+ },
+ {
+ "name": "aws/aws-crt-php",
+ "version": "v1.2.6",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/awslabs/aws-crt-php.git",
+ "reference": "a63485b65b6b3367039306496d49737cf1995408"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/awslabs/aws-crt-php/zipball/a63485b65b6b3367039306496d49737cf1995408",
+ "reference": "a63485b65b6b3367039306496d49737cf1995408",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.5"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^4.8.35||^5.6.3||^9.5",
+ "yoast/phpunit-polyfills": "^1.0"
+ },
+ "suggest": {
+ "ext-awscrt": "Make sure you install awscrt native extension to use any of the functionality."
+ },
+ "type": "library",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "Apache-2.0"
+ ],
+ "authors": [
+ {
+ "name": "AWS SDK Common Runtime Team",
+ "email": "aws-sdk-common-runtime@amazon.com"
+ }
+ ],
+ "description": "AWS Common Runtime for PHP",
+ "homepage": "https://github.com/awslabs/aws-crt-php",
+ "keywords": [
+ "amazon",
+ "aws",
+ "crt",
+ "sdk"
+ ],
+ "support": {
+ "issues": "https://github.com/awslabs/aws-crt-php/issues",
+ "source": "https://github.com/awslabs/aws-crt-php/tree/v1.2.6"
+ },
+ "time": "2024-06-13T17:21:28+00:00"
+ },
+ {
+ "name": "aws/aws-sdk-php",
+ "version": "3.320.5",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/aws/aws-sdk-php.git",
+ "reference": "afda5aefd59da90208d2f59427ce81e91535b1f2"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/afda5aefd59da90208d2f59427ce81e91535b1f2",
+ "reference": "afda5aefd59da90208d2f59427ce81e91535b1f2",
+ "shasum": ""
+ },
+ "require": {
+ "aws/aws-crt-php": "^1.2.3",
+ "ext-json": "*",
+ "ext-pcre": "*",
+ "ext-simplexml": "*",
+ "guzzlehttp/guzzle": "^6.5.8 || ^7.4.5",
+ "guzzlehttp/promises": "^1.4.0 || ^2.0",
+ "guzzlehttp/psr7": "^1.9.1 || ^2.4.5",
+ "mtdowling/jmespath.php": "^2.6",
+ "php": ">=7.2.5",
+ "psr/http-message": "^1.0 || ^2.0"
+ },
+ "require-dev": {
+ "andrewsville/php-token-reflection": "^1.4",
+ "aws/aws-php-sns-message-validator": "~1.0",
+ "behat/behat": "~3.0",
+ "composer/composer": "^1.10.22",
+ "dms/phpunit-arraysubset-asserts": "^0.4.0",
+ "doctrine/cache": "~1.4",
+ "ext-dom": "*",
+ "ext-openssl": "*",
+ "ext-pcntl": "*",
+ "ext-sockets": "*",
+ "nette/neon": "^2.3",
+ "paragonie/random_compat": ">= 2",
+ "phpunit/phpunit": "^5.6.3 || ^8.5 || ^9.5",
+ "psr/cache": "^1.0",
+ "psr/simple-cache": "^1.0",
+ "sebastian/comparator": "^1.2.3 || ^4.0",
+ "yoast/phpunit-polyfills": "^1.0"
+ },
+ "suggest": {
+ "aws/aws-php-sns-message-validator": "To validate incoming SNS notifications",
+ "doctrine/cache": "To use the DoctrineCacheAdapter",
+ "ext-curl": "To send requests using cURL",
+ "ext-openssl": "Allows working with CloudFront private distributions and verifying received SNS messages",
+ "ext-sockets": "To use client-side monitoring"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.0-dev"
+ }
+ },
+ "autoload": {
+ "files": [
+ "src/functions.php"
+ ],
+ "psr-4": {
+ "Aws\\": "src/"
+ },
+ "exclude-from-classmap": [
+ "src/data/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "Apache-2.0"
+ ],
+ "authors": [
+ {
+ "name": "Amazon Web Services",
+ "homepage": "http://aws.amazon.com"
+ }
+ ],
+ "description": "AWS SDK for PHP - Use Amazon Web Services in your PHP project",
+ "homepage": "http://aws.amazon.com/sdkforphp",
+ "keywords": [
+ "amazon",
+ "aws",
+ "cloud",
+ "dynamodb",
+ "ec2",
+ "glacier",
+ "s3",
+ "sdk"
+ ],
+ "support": {
+ "forum": "https://forums.aws.amazon.com/forum.jspa?forumID=80",
+ "issues": "https://github.com/aws/aws-sdk-php/issues",
+ "source": "https://github.com/aws/aws-sdk-php/tree/3.320.5"
},
- "time": "2022-01-18T09:12:03+00:00"
+ "time": "2024-08-21T18:14:31+00:00"
},
{
"name": "brick/math",
- "version": "0.11.0",
+ "version": "0.12.1",
"source": {
"type": "git",
"url": "https://github.com/brick/math.git",
- "reference": "0ad82ce168c82ba30d1c01ec86116ab52f589478"
+ "reference": "f510c0a40911935b77b86859eb5223d58d660df1"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/brick/math/zipball/0ad82ce168c82ba30d1c01ec86116ab52f589478",
- "reference": "0ad82ce168c82ba30d1c01ec86116ab52f589478",
+ "url": "https://api.github.com/repos/brick/math/zipball/f510c0a40911935b77b86859eb5223d58d660df1",
+ "reference": "f510c0a40911935b77b86859eb5223d58d660df1",
"shasum": ""
},
"require": {
- "php": "^8.0"
+ "php": "^8.1"
},
"require-dev": {
"php-coveralls/php-coveralls": "^2.2",
- "phpunit/phpunit": "^9.0",
- "vimeo/psalm": "5.0.0"
+ "phpunit/phpunit": "^10.1",
+ "vimeo/psalm": "5.16.0"
},
"type": "library",
"autoload": {
@@ -102,12 +254,17 @@
"arithmetic",
"bigdecimal",
"bignum",
+ "bignumber",
"brick",
- "math"
+ "decimal",
+ "integer",
+ "math",
+ "mathematics",
+ "rational"
],
"support": {
"issues": "https://github.com/brick/math/issues",
- "source": "https://github.com/brick/math/tree/0.11.0"
+ "source": "https://github.com/brick/math/tree/0.12.1"
},
"funding": [
{
@@ -115,20 +272,89 @@
"type": "github"
}
],
- "time": "2023-01-15T23:15:59+00:00"
+ "time": "2023-11-29T23:19:16+00:00"
+ },
+ {
+ "name": "carbonphp/carbon-doctrine-types",
+ "version": "2.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/CarbonPHP/carbon-doctrine-types.git",
+ "reference": "99f76ffa36cce3b70a4a6abce41dba15ca2e84cb"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/CarbonPHP/carbon-doctrine-types/zipball/99f76ffa36cce3b70a4a6abce41dba15ca2e84cb",
+ "reference": "99f76ffa36cce3b70a4a6abce41dba15ca2e84cb",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.4 || ^8.0"
+ },
+ "conflict": {
+ "doctrine/dbal": "<3.7.0 || >=4.0.0"
+ },
+ "require-dev": {
+ "doctrine/dbal": "^3.7.0",
+ "nesbot/carbon": "^2.71.0 || ^3.0.0",
+ "phpunit/phpunit": "^10.3"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Carbon\\Doctrine\\": "src/Carbon/Doctrine/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "KyleKatarn",
+ "email": "kylekatarnls@gmail.com"
+ }
+ ],
+ "description": "Types to use Carbon in Doctrine",
+ "keywords": [
+ "carbon",
+ "date",
+ "datetime",
+ "doctrine",
+ "time"
+ ],
+ "support": {
+ "issues": "https://github.com/CarbonPHP/carbon-doctrine-types/issues",
+ "source": "https://github.com/CarbonPHP/carbon-doctrine-types/tree/2.1.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/kylekatarnls",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/Carbon",
+ "type": "open_collective"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/nesbot/carbon",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-12-11T17:09:12+00:00"
},
{
"name": "composer/semver",
- "version": "3.4.0",
+ "version": "3.4.2",
"source": {
"type": "git",
"url": "https://github.com/composer/semver.git",
- "reference": "35e8d0af4486141bc745f23a29cc2091eb624a32"
+ "reference": "c51258e759afdb17f1fd1fe83bc12baaef6309d6"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/composer/semver/zipball/35e8d0af4486141bc745f23a29cc2091eb624a32",
- "reference": "35e8d0af4486141bc745f23a29cc2091eb624a32",
+ "url": "https://api.github.com/repos/composer/semver/zipball/c51258e759afdb17f1fd1fe83bc12baaef6309d6",
+ "reference": "c51258e759afdb17f1fd1fe83bc12baaef6309d6",
"shasum": ""
},
"require": {
@@ -180,7 +406,7 @@
"support": {
"irc": "ircs://irc.libera.chat:6697/composer",
"issues": "https://github.com/composer/semver/issues",
- "source": "https://github.com/composer/semver/tree/3.4.0"
+ "source": "https://github.com/composer/semver/tree/3.4.2"
},
"funding": [
{
@@ -196,20 +422,20 @@
"type": "tidelift"
}
],
- "time": "2023-08-31T09:50:34+00:00"
+ "time": "2024-07-12T11:35:52+00:00"
},
{
"name": "dflydev/dot-access-data",
- "version": "v3.0.2",
+ "version": "v3.0.3",
"source": {
"type": "git",
"url": "https://github.com/dflydev/dflydev-dot-access-data.git",
- "reference": "f41715465d65213d644d3141a6a93081be5d3549"
+ "reference": "a23a2bf4f31d3518f3ecb38660c95715dfead60f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/dflydev/dflydev-dot-access-data/zipball/f41715465d65213d644d3141a6a93081be5d3549",
- "reference": "f41715465d65213d644d3141a6a93081be5d3549",
+ "url": "https://api.github.com/repos/dflydev/dflydev-dot-access-data/zipball/a23a2bf4f31d3518f3ecb38660c95715dfead60f",
+ "reference": "a23a2bf4f31d3518f3ecb38660c95715dfead60f",
"shasum": ""
},
"require": {
@@ -269,9 +495,9 @@
],
"support": {
"issues": "https://github.com/dflydev/dflydev-dot-access-data/issues",
- "source": "https://github.com/dflydev/dflydev-dot-access-data/tree/v3.0.2"
+ "source": "https://github.com/dflydev/dflydev-dot-access-data/tree/v3.0.3"
},
- "time": "2022-10-27T11:44:00+00:00"
+ "time": "2024-07-08T12:26:09+00:00"
},
{
"name": "doctrine/cache",
@@ -368,16 +594,16 @@
},
{
"name": "doctrine/dbal",
- "version": "3.7.1",
+ "version": "3.9.0",
"source": {
"type": "git",
"url": "https://github.com/doctrine/dbal.git",
- "reference": "5b7bd66c9ff58c04c5474ab85edce442f8081cb2"
+ "reference": "d8f68ea6cc00912e5313237130b8c8decf4d28c6"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/dbal/zipball/5b7bd66c9ff58c04c5474ab85edce442f8081cb2",
- "reference": "5b7bd66c9ff58c04c5474ab85edce442f8081cb2",
+ "url": "https://api.github.com/repos/doctrine/dbal/zipball/d8f68ea6cc00912e5313237130b8c8decf4d28c6",
+ "reference": "d8f68ea6cc00912e5313237130b8c8decf4d28c6",
"shasum": ""
},
"require": {
@@ -393,14 +619,14 @@
"doctrine/coding-standard": "12.0.0",
"fig/log-test": "^1",
"jetbrains/phpstorm-stubs": "2023.1",
- "phpstan/phpstan": "1.10.35",
- "phpstan/phpstan-strict-rules": "^1.5",
- "phpunit/phpunit": "9.6.13",
+ "phpstan/phpstan": "1.11.7",
+ "phpstan/phpstan-strict-rules": "^1.6",
+ "phpunit/phpunit": "9.6.20",
"psalm/plugin-phpunit": "0.18.4",
"slevomat/coding-standard": "8.13.1",
- "squizlabs/php_codesniffer": "3.7.2",
- "symfony/cache": "^5.4|^6.0",
- "symfony/console": "^4.4|^5.4|^6.0",
+ "squizlabs/php_codesniffer": "3.10.2",
+ "symfony/cache": "^5.4|^6.0|^7.0",
+ "symfony/console": "^4.4|^5.4|^6.0|^7.0",
"vimeo/psalm": "4.30.0"
},
"suggest": {
@@ -461,7 +687,7 @@
],
"support": {
"issues": "https://github.com/doctrine/dbal/issues",
- "source": "https://github.com/doctrine/dbal/tree/3.7.1"
+ "source": "https://github.com/doctrine/dbal/tree/3.9.0"
},
"funding": [
{
@@ -477,20 +703,20 @@
"type": "tidelift"
}
],
- "time": "2023-10-06T05:06:20+00:00"
+ "time": "2024-08-15T07:34:42+00:00"
},
{
"name": "doctrine/deprecations",
- "version": "1.1.2",
+ "version": "1.1.3",
"source": {
"type": "git",
"url": "https://github.com/doctrine/deprecations.git",
- "reference": "4f2d4f2836e7ec4e7a8625e75c6aa916004db931"
+ "reference": "dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/deprecations/zipball/4f2d4f2836e7ec4e7a8625e75c6aa916004db931",
- "reference": "4f2d4f2836e7ec4e7a8625e75c6aa916004db931",
+ "url": "https://api.github.com/repos/doctrine/deprecations/zipball/dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab",
+ "reference": "dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab",
"shasum": ""
},
"require": {
@@ -522,22 +748,22 @@
"homepage": "https://www.doctrine-project.org/",
"support": {
"issues": "https://github.com/doctrine/deprecations/issues",
- "source": "https://github.com/doctrine/deprecations/tree/1.1.2"
+ "source": "https://github.com/doctrine/deprecations/tree/1.1.3"
},
- "time": "2023-09-27T20:04:15+00:00"
+ "time": "2024-01-30T19:34:25+00:00"
},
{
"name": "doctrine/event-manager",
- "version": "2.0.0",
+ "version": "2.0.1",
"source": {
"type": "git",
"url": "https://github.com/doctrine/event-manager.git",
- "reference": "750671534e0241a7c50ea5b43f67e23eb5c96f32"
+ "reference": "b680156fa328f1dfd874fd48c7026c41570b9c6e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/event-manager/zipball/750671534e0241a7c50ea5b43f67e23eb5c96f32",
- "reference": "750671534e0241a7c50ea5b43f67e23eb5c96f32",
+ "url": "https://api.github.com/repos/doctrine/event-manager/zipball/b680156fa328f1dfd874fd48c7026c41570b9c6e",
+ "reference": "b680156fa328f1dfd874fd48c7026c41570b9c6e",
"shasum": ""
},
"require": {
@@ -547,10 +773,10 @@
"doctrine/common": "<2.9"
},
"require-dev": {
- "doctrine/coding-standard": "^10",
+ "doctrine/coding-standard": "^12",
"phpstan/phpstan": "^1.8.8",
- "phpunit/phpunit": "^9.5",
- "vimeo/psalm": "^4.28"
+ "phpunit/phpunit": "^10.5",
+ "vimeo/psalm": "^5.24"
},
"type": "library",
"autoload": {
@@ -599,7 +825,7 @@
],
"support": {
"issues": "https://github.com/doctrine/event-manager/issues",
- "source": "https://github.com/doctrine/event-manager/tree/2.0.0"
+ "source": "https://github.com/doctrine/event-manager/tree/2.0.1"
},
"funding": [
{
@@ -615,20 +841,20 @@
"type": "tidelift"
}
],
- "time": "2022-10-12T20:59:15+00:00"
+ "time": "2024-05-22T20:47:39+00:00"
},
{
"name": "doctrine/inflector",
- "version": "2.0.8",
+ "version": "2.0.10",
"source": {
"type": "git",
"url": "https://github.com/doctrine/inflector.git",
- "reference": "f9301a5b2fb1216b2b08f02ba04dc45423db6bff"
+ "reference": "5817d0659c5b50c9b950feb9af7b9668e2c436bc"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/inflector/zipball/f9301a5b2fb1216b2b08f02ba04dc45423db6bff",
- "reference": "f9301a5b2fb1216b2b08f02ba04dc45423db6bff",
+ "url": "https://api.github.com/repos/doctrine/inflector/zipball/5817d0659c5b50c9b950feb9af7b9668e2c436bc",
+ "reference": "5817d0659c5b50c9b950feb9af7b9668e2c436bc",
"shasum": ""
},
"require": {
@@ -690,7 +916,7 @@
],
"support": {
"issues": "https://github.com/doctrine/inflector/issues",
- "source": "https://github.com/doctrine/inflector/tree/2.0.8"
+ "source": "https://github.com/doctrine/inflector/tree/2.0.10"
},
"funding": [
{
@@ -706,7 +932,7 @@
"type": "tidelift"
}
],
- "time": "2023-06-16T13:40:37+00:00"
+ "time": "2024-02-18T20:23:39+00:00"
},
{
"name": "doctrine/lexer",
@@ -995,24 +1221,24 @@
},
{
"name": "graham-campbell/result-type",
- "version": "v1.1.1",
+ "version": "v1.1.3",
"source": {
"type": "git",
"url": "https://github.com/GrahamCampbell/Result-Type.git",
- "reference": "672eff8cf1d6fe1ef09ca0f89c4b287d6a3eb831"
+ "reference": "3ba905c11371512af9d9bdd27d99b782216b6945"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/GrahamCampbell/Result-Type/zipball/672eff8cf1d6fe1ef09ca0f89c4b287d6a3eb831",
- "reference": "672eff8cf1d6fe1ef09ca0f89c4b287d6a3eb831",
+ "url": "https://api.github.com/repos/GrahamCampbell/Result-Type/zipball/3ba905c11371512af9d9bdd27d99b782216b6945",
+ "reference": "3ba905c11371512af9d9bdd27d99b782216b6945",
"shasum": ""
},
"require": {
"php": "^7.2.5 || ^8.0",
- "phpoption/phpoption": "^1.9.1"
+ "phpoption/phpoption": "^1.9.3"
},
"require-dev": {
- "phpunit/phpunit": "^8.5.32 || ^9.6.3 || ^10.0.12"
+ "phpunit/phpunit": "^8.5.39 || ^9.6.20 || ^10.5.28"
},
"type": "library",
"autoload": {
@@ -1041,7 +1267,7 @@
],
"support": {
"issues": "https://github.com/GrahamCampbell/Result-Type/issues",
- "source": "https://github.com/GrahamCampbell/Result-Type/tree/v1.1.1"
+ "source": "https://github.com/GrahamCampbell/Result-Type/tree/v1.1.3"
},
"funding": [
{
@@ -1053,26 +1279,26 @@
"type": "tidelift"
}
],
- "time": "2023-02-25T20:23:15+00:00"
+ "time": "2024-07-20T21:45:45+00:00"
},
{
"name": "guzzlehttp/guzzle",
- "version": "7.8.0",
+ "version": "7.9.2",
"source": {
"type": "git",
"url": "https://github.com/guzzle/guzzle.git",
- "reference": "1110f66a6530a40fe7aea0378fe608ee2b2248f9"
+ "reference": "d281ed313b989f213357e3be1a179f02196ac99b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/guzzle/guzzle/zipball/1110f66a6530a40fe7aea0378fe608ee2b2248f9",
- "reference": "1110f66a6530a40fe7aea0378fe608ee2b2248f9",
+ "url": "https://api.github.com/repos/guzzle/guzzle/zipball/d281ed313b989f213357e3be1a179f02196ac99b",
+ "reference": "d281ed313b989f213357e3be1a179f02196ac99b",
"shasum": ""
},
"require": {
"ext-json": "*",
- "guzzlehttp/promises": "^1.5.3 || ^2.0.1",
- "guzzlehttp/psr7": "^1.9.1 || ^2.5.1",
+ "guzzlehttp/promises": "^1.5.3 || ^2.0.3",
+ "guzzlehttp/psr7": "^2.7.0",
"php": "^7.2.5 || ^8.0",
"psr/http-client": "^1.0",
"symfony/deprecation-contracts": "^2.2 || ^3.0"
@@ -1081,11 +1307,11 @@
"psr/http-client-implementation": "1.0"
},
"require-dev": {
- "bamarni/composer-bin-plugin": "^1.8.1",
+ "bamarni/composer-bin-plugin": "^1.8.2",
"ext-curl": "*",
- "php-http/client-integration-tests": "dev-master#2c025848417c1135031fdf9c728ee53d0a7ceaee as 3.0.999",
+ "guzzle/client-integration-tests": "3.0.2",
"php-http/message-factory": "^1.1",
- "phpunit/phpunit": "^8.5.29 || ^9.5.23",
+ "phpunit/phpunit": "^8.5.39 || ^9.6.20",
"psr/log": "^1.1 || ^2.0 || ^3.0"
},
"suggest": {
@@ -1163,7 +1389,7 @@
],
"support": {
"issues": "https://github.com/guzzle/guzzle/issues",
- "source": "https://github.com/guzzle/guzzle/tree/7.8.0"
+ "source": "https://github.com/guzzle/guzzle/tree/7.9.2"
},
"funding": [
{
@@ -1179,28 +1405,28 @@
"type": "tidelift"
}
],
- "time": "2023-08-27T10:20:53+00:00"
+ "time": "2024-07-24T11:22:20+00:00"
},
{
"name": "guzzlehttp/promises",
- "version": "2.0.1",
+ "version": "2.0.3",
"source": {
"type": "git",
"url": "https://github.com/guzzle/promises.git",
- "reference": "111166291a0f8130081195ac4556a5587d7f1b5d"
+ "reference": "6ea8dd08867a2a42619d65c3deb2c0fcbf81c8f8"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/guzzle/promises/zipball/111166291a0f8130081195ac4556a5587d7f1b5d",
- "reference": "111166291a0f8130081195ac4556a5587d7f1b5d",
+ "url": "https://api.github.com/repos/guzzle/promises/zipball/6ea8dd08867a2a42619d65c3deb2c0fcbf81c8f8",
+ "reference": "6ea8dd08867a2a42619d65c3deb2c0fcbf81c8f8",
"shasum": ""
},
"require": {
"php": "^7.2.5 || ^8.0"
},
"require-dev": {
- "bamarni/composer-bin-plugin": "^1.8.1",
- "phpunit/phpunit": "^8.5.29 || ^9.5.23"
+ "bamarni/composer-bin-plugin": "^1.8.2",
+ "phpunit/phpunit": "^8.5.39 || ^9.6.20"
},
"type": "library",
"extra": {
@@ -1246,7 +1472,7 @@
],
"support": {
"issues": "https://github.com/guzzle/promises/issues",
- "source": "https://github.com/guzzle/promises/tree/2.0.1"
+ "source": "https://github.com/guzzle/promises/tree/2.0.3"
},
"funding": [
{
@@ -1262,20 +1488,20 @@
"type": "tidelift"
}
],
- "time": "2023-08-03T15:11:55+00:00"
+ "time": "2024-07-18T10:29:17+00:00"
},
{
"name": "guzzlehttp/psr7",
- "version": "2.6.1",
+ "version": "2.7.0",
"source": {
"type": "git",
"url": "https://github.com/guzzle/psr7.git",
- "reference": "be45764272e8873c72dbe3d2edcfdfcc3bc9f727"
+ "reference": "a70f5c95fb43bc83f07c9c948baa0dc1829bf201"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/guzzle/psr7/zipball/be45764272e8873c72dbe3d2edcfdfcc3bc9f727",
- "reference": "be45764272e8873c72dbe3d2edcfdfcc3bc9f727",
+ "url": "https://api.github.com/repos/guzzle/psr7/zipball/a70f5c95fb43bc83f07c9c948baa0dc1829bf201",
+ "reference": "a70f5c95fb43bc83f07c9c948baa0dc1829bf201",
"shasum": ""
},
"require": {
@@ -1289,9 +1515,9 @@
"psr/http-message-implementation": "1.0"
},
"require-dev": {
- "bamarni/composer-bin-plugin": "^1.8.1",
- "http-interop/http-factory-tests": "^0.9",
- "phpunit/phpunit": "^8.5.29 || ^9.5.23"
+ "bamarni/composer-bin-plugin": "^1.8.2",
+ "http-interop/http-factory-tests": "0.9.0",
+ "phpunit/phpunit": "^8.5.39 || ^9.6.20"
},
"suggest": {
"laminas/laminas-httphandlerrunner": "Emit PSR-7 responses"
@@ -1362,7 +1588,7 @@
],
"support": {
"issues": "https://github.com/guzzle/psr7/issues",
- "source": "https://github.com/guzzle/psr7/tree/2.6.1"
+ "source": "https://github.com/guzzle/psr7/tree/2.7.0"
},
"funding": [
{
@@ -1378,7 +1604,7 @@
"type": "tidelift"
}
],
- "time": "2023-08-27T10:13:57+00:00"
+ "time": "2024-07-18T11:15:46+00:00"
},
{
"name": "inertiajs/inertia-laravel",
@@ -1450,20 +1676,20 @@
},
{
"name": "laminas/laminas-diactoros",
- "version": "2.25.2",
+ "version": "2.26.0",
"source": {
"type": "git",
"url": "https://github.com/laminas/laminas-diactoros.git",
- "reference": "9f3f4bf5b99c9538b6f1dbcc20f6fec357914f9e"
+ "reference": "6584d44eb8e477e89d453313b858daac6183cddc"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/laminas/laminas-diactoros/zipball/9f3f4bf5b99c9538b6f1dbcc20f6fec357914f9e",
- "reference": "9f3f4bf5b99c9538b6f1dbcc20f6fec357914f9e",
+ "url": "https://api.github.com/repos/laminas/laminas-diactoros/zipball/6584d44eb8e477e89d453313b858daac6183cddc",
+ "reference": "6584d44eb8e477e89d453313b858daac6183cddc",
"shasum": ""
},
"require": {
- "php": "~8.0.0 || ~8.1.0 || ~8.2.0",
+ "php": "~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0",
"psr/http-factory": "^1.0",
"psr/http-message": "^1.1"
},
@@ -1543,7 +1769,7 @@
"type": "community_bridge"
}
],
- "time": "2023-04-17T15:44:17+00:00"
+ "time": "2023-10-29T16:17:44+00:00"
},
{
"name": "laravel/framework",
@@ -1866,26 +2092,27 @@
},
{
"name": "laravel/serializable-closure",
- "version": "v1.3.2",
+ "version": "v1.3.4",
"source": {
"type": "git",
"url": "https://github.com/laravel/serializable-closure.git",
- "reference": "076fe2cf128bd54b4341cdc6d49b95b34e101e4c"
+ "reference": "61b87392d986dc49ad5ef64e75b1ff5fee24ef81"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/076fe2cf128bd54b4341cdc6d49b95b34e101e4c",
- "reference": "076fe2cf128bd54b4341cdc6d49b95b34e101e4c",
+ "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/61b87392d986dc49ad5ef64e75b1ff5fee24ef81",
+ "reference": "61b87392d986dc49ad5ef64e75b1ff5fee24ef81",
"shasum": ""
},
"require": {
"php": "^7.3|^8.0"
},
"require-dev": {
- "nesbot/carbon": "^2.61",
+ "illuminate/support": "^8.0|^9.0|^10.0|^11.0",
+ "nesbot/carbon": "^2.61|^3.0",
"pestphp/pest": "^1.21.3",
"phpstan/phpstan": "^1.8.2",
- "symfony/var-dumper": "^5.4.11"
+ "symfony/var-dumper": "^5.4.11|^6.2.0|^7.0.0"
},
"type": "library",
"extra": {
@@ -1922,29 +2149,29 @@
"issues": "https://github.com/laravel/serializable-closure/issues",
"source": "https://github.com/laravel/serializable-closure"
},
- "time": "2023-10-17T13:38:16+00:00"
+ "time": "2024-08-02T07:48:17+00:00"
},
{
"name": "laravel/tinker",
- "version": "v2.8.2",
+ "version": "v2.9.0",
"source": {
"type": "git",
"url": "https://github.com/laravel/tinker.git",
- "reference": "b936d415b252b499e8c3b1f795cd4fc20f57e1f3"
+ "reference": "502e0fe3f0415d06d5db1f83a472f0f3b754bafe"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/laravel/tinker/zipball/b936d415b252b499e8c3b1f795cd4fc20f57e1f3",
- "reference": "b936d415b252b499e8c3b1f795cd4fc20f57e1f3",
+ "url": "https://api.github.com/repos/laravel/tinker/zipball/502e0fe3f0415d06d5db1f83a472f0f3b754bafe",
+ "reference": "502e0fe3f0415d06d5db1f83a472f0f3b754bafe",
"shasum": ""
},
"require": {
- "illuminate/console": "^6.0|^7.0|^8.0|^9.0|^10.0",
- "illuminate/contracts": "^6.0|^7.0|^8.0|^9.0|^10.0",
- "illuminate/support": "^6.0|^7.0|^8.0|^9.0|^10.0",
+ "illuminate/console": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0",
+ "illuminate/contracts": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0",
+ "illuminate/support": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0",
"php": "^7.2.5|^8.0",
- "psy/psysh": "^0.10.4|^0.11.1",
- "symfony/var-dumper": "^4.3.4|^5.0|^6.0"
+ "psy/psysh": "^0.11.1|^0.12.0",
+ "symfony/var-dumper": "^4.3.4|^5.0|^6.0|^7.0"
},
"require-dev": {
"mockery/mockery": "~1.3.3|^1.4.2",
@@ -1952,13 +2179,10 @@
"phpunit/phpunit": "^8.5.8|^9.3.3"
},
"suggest": {
- "illuminate/database": "The Illuminate Database package (^6.0|^7.0|^8.0|^9.0|^10.0)."
+ "illuminate/database": "The Illuminate Database package (^6.0|^7.0|^8.0|^9.0|^10.0|^11.0)."
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-master": "2.x-dev"
- },
"laravel": {
"providers": [
"Laravel\\Tinker\\TinkerServiceProvider"
@@ -1989,22 +2213,22 @@
],
"support": {
"issues": "https://github.com/laravel/tinker/issues",
- "source": "https://github.com/laravel/tinker/tree/v2.8.2"
+ "source": "https://github.com/laravel/tinker/tree/v2.9.0"
},
- "time": "2023-08-15T14:27:00+00:00"
+ "time": "2024-01-04T16:10:04+00:00"
},
{
"name": "league/commonmark",
- "version": "2.4.1",
+ "version": "2.5.3",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/commonmark.git",
- "reference": "3669d6d5f7a47a93c08ddff335e6d945481a1dd5"
+ "reference": "b650144166dfa7703e62a22e493b853b58d874b0"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/3669d6d5f7a47a93c08ddff335e6d945481a1dd5",
- "reference": "3669d6d5f7a47a93c08ddff335e6d945481a1dd5",
+ "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/b650144166dfa7703e62a22e493b853b58d874b0",
+ "reference": "b650144166dfa7703e62a22e493b853b58d874b0",
"shasum": ""
},
"require": {
@@ -2017,8 +2241,8 @@
},
"require-dev": {
"cebe/markdown": "^1.0",
- "commonmark/cmark": "0.30.0",
- "commonmark/commonmark.js": "0.30.0",
+ "commonmark/cmark": "0.31.1",
+ "commonmark/commonmark.js": "0.31.1",
"composer/package-versions-deprecated": "^1.8",
"embed/embed": "^4.4",
"erusev/parsedown": "^1.0",
@@ -2027,10 +2251,10 @@
"michelf/php-markdown": "^1.4 || ^2.0",
"nyholm/psr7": "^1.5",
"phpstan/phpstan": "^1.8.2",
- "phpunit/phpunit": "^9.5.21",
+ "phpunit/phpunit": "^9.5.21 || ^10.5.9 || ^11.0.0",
"scrutinizer/ocular": "^1.8.1",
- "symfony/finder": "^5.3 | ^6.0",
- "symfony/yaml": "^2.3 | ^3.0 | ^4.0 | ^5.0 | ^6.0",
+ "symfony/finder": "^5.3 | ^6.0 || ^7.0",
+ "symfony/yaml": "^2.3 | ^3.0 | ^4.0 | ^5.0 | ^6.0 || ^7.0",
"unleashedtech/php-coding-standard": "^3.1.1",
"vimeo/psalm": "^4.24.0 || ^5.0.0"
},
@@ -2040,7 +2264,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "2.5-dev"
+ "dev-main": "2.6-dev"
}
},
"autoload": {
@@ -2097,7 +2321,7 @@
"type": "tidelift"
}
],
- "time": "2023-08-30T16:55:00+00:00"
+ "time": "2024-08-16T11:46:16+00:00"
},
{
"name": "league/config",
@@ -2275,18 +2499,83 @@
],
"time": "2022-10-04T09:16:37+00:00"
},
+ {
+ "name": "league/flysystem-aws-s3-v3",
+ "version": "1.0.30",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/thephpleague/flysystem-aws-s3-v3.git",
+ "reference": "af286f291ebab6877bac0c359c6c2cb017eb061d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/thephpleague/flysystem-aws-s3-v3/zipball/af286f291ebab6877bac0c359c6c2cb017eb061d",
+ "reference": "af286f291ebab6877bac0c359c6c2cb017eb061d",
+ "shasum": ""
+ },
+ "require": {
+ "aws/aws-sdk-php": "^3.20.0",
+ "league/flysystem": "^1.0.40",
+ "php": ">=5.5.0"
+ },
+ "require-dev": {
+ "henrikbjorn/phpspec-code-coverage": "~1.0.1",
+ "phpspec/phpspec": "^2.0.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "League\\Flysystem\\AwsS3v3\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Frank de Jonge",
+ "email": "info@frenky.net"
+ }
+ ],
+ "description": "Flysystem adapter for the AWS S3 SDK v3.x",
+ "support": {
+ "issues": "https://github.com/thephpleague/flysystem-aws-s3-v3/issues",
+ "source": "https://github.com/thephpleague/flysystem-aws-s3-v3/tree/1.0.30"
+ },
+ "funding": [
+ {
+ "url": "https://offset.earth/frankdejonge",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/frankdejonge",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/league/flysystem",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-07-02T13:51:38+00:00"
+ },
{
"name": "league/mime-type-detection",
- "version": "1.14.0",
+ "version": "1.15.0",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/mime-type-detection.git",
- "reference": "b6a5854368533df0295c5761a0253656a2e52d9e"
+ "reference": "ce0f4d1e8a6f4eb0ddff33f57c69c50fd09f4301"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/thephpleague/mime-type-detection/zipball/b6a5854368533df0295c5761a0253656a2e52d9e",
- "reference": "b6a5854368533df0295c5761a0253656a2e52d9e",
+ "url": "https://api.github.com/repos/thephpleague/mime-type-detection/zipball/ce0f4d1e8a6f4eb0ddff33f57c69c50fd09f4301",
+ "reference": "ce0f4d1e8a6f4eb0ddff33f57c69c50fd09f4301",
"shasum": ""
},
"require": {
@@ -2317,7 +2606,7 @@
"description": "Mime-type detection for Flysystem",
"support": {
"issues": "https://github.com/thephpleague/mime-type-detection/issues",
- "source": "https://github.com/thephpleague/mime-type-detection/tree/1.14.0"
+ "source": "https://github.com/thephpleague/mime-type-detection/tree/1.15.0"
},
"funding": [
{
@@ -2329,20 +2618,20 @@
"type": "tidelift"
}
],
- "time": "2023-10-17T14:13:20+00:00"
+ "time": "2024-01-28T23:22:08+00:00"
},
{
"name": "monolog/monolog",
- "version": "2.9.1",
+ "version": "2.9.3",
"source": {
"type": "git",
"url": "https://github.com/Seldaek/monolog.git",
- "reference": "f259e2b15fb95494c83f52d3caad003bbf5ffaa1"
+ "reference": "a30bfe2e142720dfa990d0a7e573997f5d884215"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/Seldaek/monolog/zipball/f259e2b15fb95494c83f52d3caad003bbf5ffaa1",
- "reference": "f259e2b15fb95494c83f52d3caad003bbf5ffaa1",
+ "url": "https://api.github.com/repos/Seldaek/monolog/zipball/a30bfe2e142720dfa990d0a7e573997f5d884215",
+ "reference": "a30bfe2e142720dfa990d0a7e573997f5d884215",
"shasum": ""
},
"require": {
@@ -2363,8 +2652,8 @@
"mongodb/mongodb": "^1.8",
"php-amqplib/php-amqplib": "~2.4 || ^3",
"phpspec/prophecy": "^1.15",
- "phpstan/phpstan": "^0.12.91",
- "phpunit/phpunit": "^8.5.14",
+ "phpstan/phpstan": "^1.10",
+ "phpunit/phpunit": "^8.5.38 || ^9.6.19",
"predis/predis": "^1.1 || ^2.0",
"rollbar/rollbar": "^1.3 || ^2 || ^3",
"ruflin/elastica": "^7",
@@ -2419,7 +2708,7 @@
],
"support": {
"issues": "https://github.com/Seldaek/monolog/issues",
- "source": "https://github.com/Seldaek/monolog/tree/2.9.1"
+ "source": "https://github.com/Seldaek/monolog/tree/2.9.3"
},
"funding": [
{
@@ -2431,23 +2720,90 @@
"type": "tidelift"
}
],
- "time": "2023-02-06T13:44:46+00:00"
+ "time": "2024-04-12T20:52:51+00:00"
+ },
+ {
+ "name": "mtdowling/jmespath.php",
+ "version": "2.7.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/jmespath/jmespath.php.git",
+ "reference": "bbb69a935c2cbb0c03d7f481a238027430f6440b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/jmespath/jmespath.php/zipball/bbb69a935c2cbb0c03d7f481a238027430f6440b",
+ "reference": "bbb69a935c2cbb0c03d7f481a238027430f6440b",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.2.5 || ^8.0",
+ "symfony/polyfill-mbstring": "^1.17"
+ },
+ "require-dev": {
+ "composer/xdebug-handler": "^3.0.3",
+ "phpunit/phpunit": "^8.5.33"
+ },
+ "bin": [
+ "bin/jp.php"
+ ],
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.7-dev"
+ }
+ },
+ "autoload": {
+ "files": [
+ "src/JmesPath.php"
+ ],
+ "psr-4": {
+ "JmesPath\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Graham Campbell",
+ "email": "hello@gjcampbell.co.uk",
+ "homepage": "https://github.com/GrahamCampbell"
+ },
+ {
+ "name": "Michael Dowling",
+ "email": "mtdowling@gmail.com",
+ "homepage": "https://github.com/mtdowling"
+ }
+ ],
+ "description": "Declaratively specify how to extract elements from a JSON document",
+ "keywords": [
+ "json",
+ "jsonpath"
+ ],
+ "support": {
+ "issues": "https://github.com/jmespath/jmespath.php/issues",
+ "source": "https://github.com/jmespath/jmespath.php/tree/2.7.0"
+ },
+ "time": "2023-08-25T10:54:48+00:00"
},
{
"name": "nesbot/carbon",
- "version": "2.71.0",
+ "version": "2.72.5",
"source": {
"type": "git",
"url": "https://github.com/briannesbitt/Carbon.git",
- "reference": "98276233188583f2ff845a0f992a235472d9466a"
+ "reference": "afd46589c216118ecd48ff2b95d77596af1e57ed"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/98276233188583f2ff845a0f992a235472d9466a",
- "reference": "98276233188583f2ff845a0f992a235472d9466a",
+ "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/afd46589c216118ecd48ff2b95d77596af1e57ed",
+ "reference": "afd46589c216118ecd48ff2b95d77596af1e57ed",
"shasum": ""
},
"require": {
+ "carbonphp/carbon-doctrine-types": "*",
"ext-json": "*",
"php": "^7.1.8 || ^8.0",
"psr/clock": "^1.0",
@@ -2459,8 +2815,8 @@
"psr/clock-implementation": "1.0"
},
"require-dev": {
- "doctrine/dbal": "^2.0 || ^3.1.4",
- "doctrine/orm": "^2.7",
+ "doctrine/dbal": "^2.0 || ^3.1.4 || ^4.0",
+ "doctrine/orm": "^2.7 || ^3.0",
"friendsofphp/php-cs-fixer": "^3.0",
"kylekatarnls/multi-tester": "^2.0",
"ondrejmirtes/better-reflection": "*",
@@ -2477,8 +2833,8 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-3.x": "3.x-dev",
- "dev-master": "2.x-dev"
+ "dev-master": "3.x-dev",
+ "dev-2.x": "2.x-dev"
},
"laravel": {
"providers": [
@@ -2537,35 +2893,35 @@
"type": "tidelift"
}
],
- "time": "2023-09-25T11:31:05+00:00"
+ "time": "2024-06-03T19:18:41+00:00"
},
{
"name": "nette/schema",
- "version": "v1.2.5",
+ "version": "v1.3.0",
"source": {
"type": "git",
"url": "https://github.com/nette/schema.git",
- "reference": "0462f0166e823aad657c9224d0f849ecac1ba10a"
+ "reference": "a6d3a6d1f545f01ef38e60f375d1cf1f4de98188"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/nette/schema/zipball/0462f0166e823aad657c9224d0f849ecac1ba10a",
- "reference": "0462f0166e823aad657c9224d0f849ecac1ba10a",
+ "url": "https://api.github.com/repos/nette/schema/zipball/a6d3a6d1f545f01ef38e60f375d1cf1f4de98188",
+ "reference": "a6d3a6d1f545f01ef38e60f375d1cf1f4de98188",
"shasum": ""
},
"require": {
- "nette/utils": "^2.5.7 || ^3.1.5 || ^4.0",
- "php": "7.1 - 8.3"
+ "nette/utils": "^4.0",
+ "php": "8.1 - 8.3"
},
"require-dev": {
- "nette/tester": "^2.3 || ^2.4",
+ "nette/tester": "^2.4",
"phpstan/phpstan-nette": "^1.0",
- "tracy/tracy": "^2.7"
+ "tracy/tracy": "^2.8"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.2-dev"
+ "dev-master": "1.3-dev"
}
},
"autoload": {
@@ -2597,26 +2953,26 @@
],
"support": {
"issues": "https://github.com/nette/schema/issues",
- "source": "https://github.com/nette/schema/tree/v1.2.5"
+ "source": "https://github.com/nette/schema/tree/v1.3.0"
},
- "time": "2023-10-05T20:37:59+00:00"
+ "time": "2023-12-11T11:54:22+00:00"
},
{
"name": "nette/utils",
- "version": "v4.0.2",
+ "version": "v4.0.5",
"source": {
"type": "git",
"url": "https://github.com/nette/utils.git",
- "reference": "cead6637226456b35e1175cc53797dd585d85545"
+ "reference": "736c567e257dbe0fcf6ce81b4d6dbe05c6899f96"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/nette/utils/zipball/cead6637226456b35e1175cc53797dd585d85545",
- "reference": "cead6637226456b35e1175cc53797dd585d85545",
+ "url": "https://api.github.com/repos/nette/utils/zipball/736c567e257dbe0fcf6ce81b4d6dbe05c6899f96",
+ "reference": "736c567e257dbe0fcf6ce81b4d6dbe05c6899f96",
"shasum": ""
},
"require": {
- "php": ">=8.0 <8.4"
+ "php": "8.0 - 8.4"
},
"conflict": {
"nette/finder": "<3",
@@ -2683,31 +3039,33 @@
],
"support": {
"issues": "https://github.com/nette/utils/issues",
- "source": "https://github.com/nette/utils/tree/v4.0.2"
+ "source": "https://github.com/nette/utils/tree/v4.0.5"
},
- "time": "2023-09-19T11:58:07+00:00"
+ "time": "2024-08-07T15:39:19+00:00"
},
{
"name": "nikic/php-parser",
- "version": "v4.17.1",
+ "version": "v5.1.0",
"source": {
"type": "git",
"url": "https://github.com/nikic/PHP-Parser.git",
- "reference": "a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d"
+ "reference": "683130c2ff8c2739f4822ff7ac5c873ec529abd1"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d",
- "reference": "a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d",
+ "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/683130c2ff8c2739f4822ff7ac5c873ec529abd1",
+ "reference": "683130c2ff8c2739f4822ff7ac5c873ec529abd1",
"shasum": ""
},
"require": {
+ "ext-ctype": "*",
+ "ext-json": "*",
"ext-tokenizer": "*",
- "php": ">=7.0"
+ "php": ">=7.4"
},
"require-dev": {
"ircmaxell/php-yacc": "^0.0.7",
- "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0"
+ "phpunit/phpunit": "^9.0"
},
"bin": [
"bin/php-parse"
@@ -2715,7 +3073,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "4.9-dev"
+ "dev-master": "5.0-dev"
}
},
"autoload": {
@@ -2739,9 +3097,9 @@
],
"support": {
"issues": "https://github.com/nikic/PHP-Parser/issues",
- "source": "https://github.com/nikic/PHP-Parser/tree/v4.17.1"
+ "source": "https://github.com/nikic/PHP-Parser/tree/v5.1.0"
},
- "time": "2023-08-13T19:53:39+00:00"
+ "time": "2024-07-01T20:03:41+00:00"
},
{
"name": "opis/closure",
@@ -2810,16 +3168,16 @@
},
{
"name": "phpoption/phpoption",
- "version": "1.9.1",
+ "version": "1.9.3",
"source": {
"type": "git",
"url": "https://github.com/schmittjoh/php-option.git",
- "reference": "dd3a383e599f49777d8b628dadbb90cae435b87e"
+ "reference": "e3fac8b24f56113f7cb96af14958c0dd16330f54"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/dd3a383e599f49777d8b628dadbb90cae435b87e",
- "reference": "dd3a383e599f49777d8b628dadbb90cae435b87e",
+ "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/e3fac8b24f56113f7cb96af14958c0dd16330f54",
+ "reference": "e3fac8b24f56113f7cb96af14958c0dd16330f54",
"shasum": ""
},
"require": {
@@ -2827,13 +3185,13 @@
},
"require-dev": {
"bamarni/composer-bin-plugin": "^1.8.2",
- "phpunit/phpunit": "^8.5.32 || ^9.6.3 || ^10.0.12"
+ "phpunit/phpunit": "^8.5.39 || ^9.6.20 || ^10.5.28"
},
"type": "library",
"extra": {
"bamarni-bin": {
"bin-links": true,
- "forward-command": true
+ "forward-command": false
},
"branch-alias": {
"dev-master": "1.9-dev"
@@ -2869,7 +3227,7 @@
],
"support": {
"issues": "https://github.com/schmittjoh/php-option/issues",
- "source": "https://github.com/schmittjoh/php-option/tree/1.9.1"
+ "source": "https://github.com/schmittjoh/php-option/tree/1.9.3"
},
"funding": [
{
@@ -2881,7 +3239,7 @@
"type": "tidelift"
}
],
- "time": "2023-02-25T19:38:58+00:00"
+ "time": "2024-07-20T21:41:07+00:00"
},
{
"name": "psr/cache",
@@ -3132,20 +3490,20 @@
},
{
"name": "psr/http-factory",
- "version": "1.0.2",
+ "version": "1.1.0",
"source": {
"type": "git",
"url": "https://github.com/php-fig/http-factory.git",
- "reference": "e616d01114759c4c489f93b099585439f795fe35"
+ "reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/php-fig/http-factory/zipball/e616d01114759c4c489f93b099585439f795fe35",
- "reference": "e616d01114759c4c489f93b099585439f795fe35",
+ "url": "https://api.github.com/repos/php-fig/http-factory/zipball/2b4765fddfe3b508ac62f829e852b1501d3f6e8a",
+ "reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a",
"shasum": ""
},
"require": {
- "php": ">=7.0.0",
+ "php": ">=7.1",
"psr/http-message": "^1.0 || ^2.0"
},
"type": "library",
@@ -3169,7 +3527,7 @@
"homepage": "https://www.php-fig.org/"
}
],
- "description": "Common interfaces for PSR-7 HTTP message factories",
+ "description": "PSR-17: Common interfaces for PSR-7 HTTP message factories",
"keywords": [
"factory",
"http",
@@ -3181,9 +3539,9 @@
"response"
],
"support": {
- "source": "https://github.com/php-fig/http-factory/tree/1.0.2"
+ "source": "https://github.com/php-fig/http-factory"
},
- "time": "2023-04-10T20:10:41+00:00"
+ "time": "2024-04-15T12:06:14+00:00"
},
{
"name": "psr/http-message",
@@ -3341,25 +3699,25 @@
},
{
"name": "psy/psysh",
- "version": "v0.11.22",
+ "version": "v0.12.4",
"source": {
"type": "git",
"url": "https://github.com/bobthecow/psysh.git",
- "reference": "128fa1b608be651999ed9789c95e6e2a31b5802b"
+ "reference": "2fd717afa05341b4f8152547f142cd2f130f6818"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/bobthecow/psysh/zipball/128fa1b608be651999ed9789c95e6e2a31b5802b",
- "reference": "128fa1b608be651999ed9789c95e6e2a31b5802b",
+ "url": "https://api.github.com/repos/bobthecow/psysh/zipball/2fd717afa05341b4f8152547f142cd2f130f6818",
+ "reference": "2fd717afa05341b4f8152547f142cd2f130f6818",
"shasum": ""
},
"require": {
"ext-json": "*",
"ext-tokenizer": "*",
- "nikic/php-parser": "^4.0 || ^3.1",
- "php": "^8.0 || ^7.0.8",
- "symfony/console": "^6.0 || ^5.0 || ^4.0 || ^3.4",
- "symfony/var-dumper": "^6.0 || ^5.0 || ^4.0 || ^3.4"
+ "nikic/php-parser": "^5.0 || ^4.0",
+ "php": "^8.0 || ^7.4",
+ "symfony/console": "^7.0 || ^6.0 || ^5.0 || ^4.0 || ^3.4",
+ "symfony/var-dumper": "^7.0 || ^6.0 || ^5.0 || ^4.0 || ^3.4"
},
"conflict": {
"symfony/console": "4.4.37 || 5.3.14 || 5.3.15 || 5.4.3 || 5.4.4 || 6.0.3 || 6.0.4"
@@ -3370,8 +3728,7 @@
"suggest": {
"ext-pcntl": "Enabling the PCNTL extension makes PsySH a lot happier :)",
"ext-pdo-sqlite": "The doc command requires SQLite to work.",
- "ext-posix": "If you have PCNTL, you'll want the POSIX extension as well.",
- "ext-readline": "Enables support for arrow-key history navigation, and showing and manipulating command history."
+ "ext-posix": "If you have PCNTL, you'll want the POSIX extension as well."
},
"bin": [
"bin/psysh"
@@ -3379,7 +3736,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-0.11": "0.11.x-dev"
+ "dev-main": "0.12.x-dev"
},
"bamarni-bin": {
"bin-links": false,
@@ -3415,9 +3772,9 @@
],
"support": {
"issues": "https://github.com/bobthecow/psysh/issues",
- "source": "https://github.com/bobthecow/psysh/tree/v0.11.22"
+ "source": "https://github.com/bobthecow/psysh/tree/v0.12.4"
},
- "time": "2023-10-14T21:56:36+00:00"
+ "time": "2024-06-10T01:18:23+00:00"
},
{
"name": "ralouphie/getallheaders",
@@ -3554,20 +3911,20 @@
},
{
"name": "ramsey/uuid",
- "version": "4.7.4",
+ "version": "4.7.6",
"source": {
"type": "git",
"url": "https://github.com/ramsey/uuid.git",
- "reference": "60a4c63ab724854332900504274f6150ff26d286"
+ "reference": "91039bc1faa45ba123c4328958e620d382ec7088"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/ramsey/uuid/zipball/60a4c63ab724854332900504274f6150ff26d286",
- "reference": "60a4c63ab724854332900504274f6150ff26d286",
+ "url": "https://api.github.com/repos/ramsey/uuid/zipball/91039bc1faa45ba123c4328958e620d382ec7088",
+ "reference": "91039bc1faa45ba123c4328958e620d382ec7088",
"shasum": ""
},
"require": {
- "brick/math": "^0.8.8 || ^0.9 || ^0.10 || ^0.11",
+ "brick/math": "^0.8.8 || ^0.9 || ^0.10 || ^0.11 || ^0.12",
"ext-json": "*",
"php": "^8.0",
"ramsey/collection": "^1.2 || ^2.0"
@@ -3630,7 +3987,7 @@
],
"support": {
"issues": "https://github.com/ramsey/uuid/issues",
- "source": "https://github.com/ramsey/uuid/tree/4.7.4"
+ "source": "https://github.com/ramsey/uuid/tree/4.7.6"
},
"funding": [
{
@@ -3642,20 +3999,20 @@
"type": "tidelift"
}
],
- "time": "2023-04-15T23:01:58+00:00"
+ "time": "2024-04-27T21:32:50+00:00"
},
{
"name": "spiral/core",
- "version": "3.9.1",
+ "version": "3.13.0",
"source": {
"type": "git",
"url": "https://github.com/spiral/core.git",
- "reference": "9d9c39f76225409c01d3936077841a3ba67254f5"
+ "reference": "af62783e8b9ec8020966599eb42abe53c19d5286"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/spiral/core/zipball/9d9c39f76225409c01d3936077841a3ba67254f5",
- "reference": "9d9c39f76225409c01d3936077841a3ba67254f5",
+ "url": "https://api.github.com/repos/spiral/core/zipball/af62783e8b9ec8020966599eb42abe53c19d5286",
+ "reference": "af62783e8b9ec8020966599eb42abe53c19d5286",
"shasum": ""
},
"require": {
@@ -3673,7 +4030,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "3.10.x-dev"
+ "dev-master": "3.13.x-dev"
}
},
"autoload": {
@@ -3709,20 +4066,20 @@
"issues": "https://github.com/spiral/framework/issues",
"source": "https://github.com/spiral/core"
},
- "time": "2023-10-19T14:19:18+00:00"
+ "time": "2024-05-22T18:42:09+00:00"
},
{
"name": "spiral/goridge",
- "version": "v3.2.0",
+ "version": "v3.2.1",
"source": {
"type": "git",
"url": "https://github.com/roadrunner-php/goridge.git",
- "reference": "3d8e97d7d1cc26b6130d233177b23ecb3c7d4efb"
+ "reference": "af388883ffc08f362d6f99e1eb30a063e3fd7ad7"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/roadrunner-php/goridge/zipball/3d8e97d7d1cc26b6130d233177b23ecb3c7d4efb",
- "reference": "3d8e97d7d1cc26b6130d233177b23ecb3c7d4efb",
+ "url": "https://api.github.com/repos/roadrunner-php/goridge/zipball/af388883ffc08f362d6f99e1eb30a063e3fd7ad7",
+ "reference": "af388883ffc08f362d6f99e1eb30a063e3fd7ad7",
"shasum": ""
},
"require": {
@@ -3746,11 +4103,6 @@
"rybakit/msgpack": "(^0.7) MessagePack codec support"
},
"type": "goridge",
- "extra": {
- "branch-alias": {
- "dev-master": "3.3.x-dev"
- }
- },
"autoload": {
"psr-4": {
"Spiral\\Goridge\\": "src"
@@ -3768,8 +4120,7 @@
],
"description": "High-performance PHP-to-Golang RPC bridge",
"support": {
- "issues": "https://github.com/roadrunner-php/goridge/issues",
- "source": "https://github.com/roadrunner-php/goridge/tree/v3.2.0"
+ "source": "https://github.com/roadrunner-php/goridge/tree/v3.2.1"
},
"funding": [
{
@@ -3777,26 +4128,26 @@
"type": "github"
}
],
- "time": "2022-03-21T20:32:19+00:00"
+ "time": "2024-06-27T08:01:49+00:00"
},
{
"name": "spiral/logger",
- "version": "3.9.1",
+ "version": "3.13.0",
"source": {
"type": "git",
"url": "https://github.com/spiral/logger.git",
- "reference": "87c448e8c38eb346526584c24a1ca285bec1ce58"
+ "reference": "41a62ce66698600dae062bf8421077f3fde23e26"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/spiral/logger/zipball/87c448e8c38eb346526584c24a1ca285bec1ce58",
- "reference": "87c448e8c38eb346526584c24a1ca285bec1ce58",
+ "url": "https://api.github.com/repos/spiral/logger/zipball/41a62ce66698600dae062bf8421077f3fde23e26",
+ "reference": "41a62ce66698600dae062bf8421077f3fde23e26",
"shasum": ""
},
"require": {
"php": ">=8.1",
"psr/log": "1 - 3",
- "spiral/core": "^3.9.1"
+ "spiral/core": "^3.13"
},
"require-dev": {
"mockery/mockery": "^1.5",
@@ -3806,7 +4157,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "3.10.x-dev"
+ "dev-master": "3.13.x-dev"
}
},
"autoload": {
@@ -3842,7 +4193,7 @@
"issues": "https://github.com/spiral/framework/issues",
"source": "https://github.com/spiral/logger"
},
- "time": "2023-10-24T14:07:14+00:00"
+ "time": "2024-05-22T18:44:09+00:00"
},
{
"name": "spiral/roadrunner",
@@ -3901,16 +4252,16 @@
},
{
"name": "spiral/roadrunner-cli",
- "version": "v2.5.0",
+ "version": "v2.6.0",
"source": {
"type": "git",
"url": "https://github.com/roadrunner-php/cli.git",
- "reference": "468c4a646d10a38b1475ec7b71f5880aa354febf"
+ "reference": "a896e1d05a1fc4ebaf14e68b8b901c851c3b38b2"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/roadrunner-php/cli/zipball/468c4a646d10a38b1475ec7b71f5880aa354febf",
- "reference": "468c4a646d10a38b1475ec7b71f5880aa354febf",
+ "url": "https://api.github.com/repos/roadrunner-php/cli/zipball/a896e1d05a1fc4ebaf14e68b8b901c851c3b38b2",
+ "reference": "a896e1d05a1fc4ebaf14e68b8b901c851c3b38b2",
"shasum": ""
},
"require": {
@@ -3919,15 +4270,14 @@
"php": ">=7.4",
"spiral/roadrunner-worker": ">=2.0.2",
"spiral/tokenizer": "^2.13 || ^3.0",
- "symfony/console": "^4.4|^5.0|^6.0",
- "symfony/http-client": "^4.4|^5.0|^6.0",
+ "symfony/console": "^5.3 || ^6.0 || ^7.0",
+ "symfony/http-client": "^4.4.11 || ^5.0 || ^6.0 || ^7.0",
"symfony/polyfill-php80": "^1.22",
- "symfony/yaml": "^5.4 || ^6.0"
+ "symfony/yaml": "^5.4 || ^6.0 || ^7.0"
},
"require-dev": {
"jetbrains/phpstorm-attributes": "^1.0",
- "symfony/var-dumper": "^4.4|^5.0",
- "vimeo/psalm": "^4.4"
+ "vimeo/psalm": "^5.17"
},
"bin": [
"bin/rr"
@@ -3959,10 +4309,9 @@
],
"description": "RoadRunner: Command Line Interface",
"support": {
- "issues": "https://github.com/roadrunner-php/cli/issues",
- "source": "https://github.com/roadrunner-php/cli/tree/v2.5.0"
+ "source": "https://github.com/roadrunner-php/cli/tree/v2.6.0"
},
- "time": "2023-04-18T14:19:26+00:00"
+ "time": "2023-12-05T20:46:56+00:00"
},
{
"name": "spiral/roadrunner-http",
@@ -4093,36 +4442,37 @@
},
{
"name": "spiral/tokenizer",
- "version": "3.9.1",
+ "version": "3.13.0",
"source": {
"type": "git",
"url": "https://github.com/spiral/tokenizer.git",
- "reference": "05aa5ab2b984545b5e383059d0fae32e1a885ac6"
+ "reference": "d87660bcccd0bf4e6647fe3caebc539b8afae090"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/spiral/tokenizer/zipball/05aa5ab2b984545b5e383059d0fae32e1a885ac6",
- "reference": "05aa5ab2b984545b5e383059d0fae32e1a885ac6",
+ "url": "https://api.github.com/repos/spiral/tokenizer/zipball/d87660bcccd0bf4e6647fe3caebc539b8afae090",
+ "reference": "d87660bcccd0bf4e6647fe3caebc539b8afae090",
"shasum": ""
},
"require": {
"ext-tokenizer": "*",
"php": ">=8.1",
- "spiral/core": "^3.9.1",
- "spiral/logger": "^3.9.1",
- "symfony/finder": "^5.3.7|^6.0"
+ "spiral/core": "^3.13",
+ "spiral/logger": "^3.13",
+ "symfony/finder": "^5.3.7 || ^6.0 || ^7.0"
},
"require-dev": {
+ "mockery/mockery": "^1.6",
"phpunit/phpunit": "^10.1",
"spiral/attributes": "^2.8|^3.0",
- "spiral/boot": "^3.9.1",
- "spiral/files": "^3.9.1",
+ "spiral/boot": "^3.13",
+ "spiral/files": "^3.13",
"vimeo/psalm": "^5.9"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "3.10.x-dev"
+ "dev-master": "3.13.x-dev"
}
},
"autoload": {
@@ -4158,7 +4508,7 @@
"issues": "https://github.com/spiral/framework/issues",
"source": "https://github.com/spiral/tokenizer"
},
- "time": "2023-10-24T14:07:58+00:00"
+ "time": "2024-05-22T18:46:49+00:00"
},
{
"name": "swiftmailer/swiftmailer",
@@ -4238,16 +4588,16 @@
},
{
"name": "symfony/console",
- "version": "v5.4.28",
+ "version": "v5.4.42",
"source": {
"type": "git",
"url": "https://github.com/symfony/console.git",
- "reference": "f4f71842f24c2023b91237c72a365306f3c58827"
+ "reference": "cef62396a0477e94fc52e87a17c6e5c32e226b7f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/console/zipball/f4f71842f24c2023b91237c72a365306f3c58827",
- "reference": "f4f71842f24c2023b91237c72a365306f3c58827",
+ "url": "https://api.github.com/repos/symfony/console/zipball/cef62396a0477e94fc52e87a17c6e5c32e226b7f",
+ "reference": "cef62396a0477e94fc52e87a17c6e5c32e226b7f",
"shasum": ""
},
"require": {
@@ -4317,7 +4667,7 @@
"terminal"
],
"support": {
- "source": "https://github.com/symfony/console/tree/v5.4.28"
+ "source": "https://github.com/symfony/console/tree/v5.4.42"
},
"funding": [
{
@@ -4333,24 +4683,24 @@
"type": "tidelift"
}
],
- "time": "2023-08-07T06:12:30+00:00"
+ "time": "2024-07-26T12:21:55+00:00"
},
{
"name": "symfony/css-selector",
- "version": "v6.3.2",
+ "version": "v7.1.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/css-selector.git",
- "reference": "883d961421ab1709877c10ac99451632a3d6fa57"
+ "reference": "1c7cee86c6f812896af54434f8ce29c8d94f9ff4"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/css-selector/zipball/883d961421ab1709877c10ac99451632a3d6fa57",
- "reference": "883d961421ab1709877c10ac99451632a3d6fa57",
+ "url": "https://api.github.com/repos/symfony/css-selector/zipball/1c7cee86c6f812896af54434f8ce29c8d94f9ff4",
+ "reference": "1c7cee86c6f812896af54434f8ce29c8d94f9ff4",
"shasum": ""
},
"require": {
- "php": ">=8.1"
+ "php": ">=8.2"
},
"type": "library",
"autoload": {
@@ -4382,7 +4732,7 @@
"description": "Converts CSS selectors to XPath expressions",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/css-selector/tree/v6.3.2"
+ "source": "https://github.com/symfony/css-selector/tree/v7.1.1"
},
"funding": [
{
@@ -4398,20 +4748,20 @@
"type": "tidelift"
}
],
- "time": "2023-07-12T16:00:22+00:00"
+ "time": "2024-05-31T14:57:53+00:00"
},
{
"name": "symfony/deprecation-contracts",
- "version": "v3.3.0",
+ "version": "v3.5.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/deprecation-contracts.git",
- "reference": "7c3aff79d10325257a001fcf92d991f24fc967cf"
+ "reference": "0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/7c3aff79d10325257a001fcf92d991f24fc967cf",
- "reference": "7c3aff79d10325257a001fcf92d991f24fc967cf",
+ "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1",
+ "reference": "0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1",
"shasum": ""
},
"require": {
@@ -4420,7 +4770,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "3.4-dev"
+ "dev-main": "3.5-dev"
},
"thanks": {
"name": "symfony/contracts",
@@ -4449,7 +4799,7 @@
"description": "A generic function and convention to trigger deprecation notices",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/deprecation-contracts/tree/v3.3.0"
+ "source": "https://github.com/symfony/deprecation-contracts/tree/v3.5.0"
},
"funding": [
{
@@ -4465,20 +4815,20 @@
"type": "tidelift"
}
],
- "time": "2023-05-23T14:45:45+00:00"
+ "time": "2024-04-18T09:32:20+00:00"
},
{
"name": "symfony/error-handler",
- "version": "v5.4.29",
+ "version": "v5.4.42",
"source": {
"type": "git",
"url": "https://github.com/symfony/error-handler.git",
- "reference": "328c6fcfd2f90b64c16efaf0ea67a311d672f078"
+ "reference": "db15ba0fd50890156ed40087ccedc7851a1f5b76"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/error-handler/zipball/328c6fcfd2f90b64c16efaf0ea67a311d672f078",
- "reference": "328c6fcfd2f90b64c16efaf0ea67a311d672f078",
+ "url": "https://api.github.com/repos/symfony/error-handler/zipball/db15ba0fd50890156ed40087ccedc7851a1f5b76",
+ "reference": "db15ba0fd50890156ed40087ccedc7851a1f5b76",
"shasum": ""
},
"require": {
@@ -4520,7 +4870,7 @@
"description": "Provides tools to manage errors and ease debugging PHP code",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/error-handler/tree/v5.4.29"
+ "source": "https://github.com/symfony/error-handler/tree/v5.4.42"
},
"funding": [
{
@@ -4536,20 +4886,20 @@
"type": "tidelift"
}
],
- "time": "2023-09-06T21:54:06+00:00"
+ "time": "2024-07-23T12:34:05+00:00"
},
{
"name": "symfony/event-dispatcher",
- "version": "v6.3.2",
+ "version": "v6.4.8",
"source": {
"type": "git",
"url": "https://github.com/symfony/event-dispatcher.git",
- "reference": "adb01fe097a4ee930db9258a3cc906b5beb5cf2e"
+ "reference": "8d7507f02b06e06815e56bb39aa0128e3806208b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/adb01fe097a4ee930db9258a3cc906b5beb5cf2e",
- "reference": "adb01fe097a4ee930db9258a3cc906b5beb5cf2e",
+ "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/8d7507f02b06e06815e56bb39aa0128e3806208b",
+ "reference": "8d7507f02b06e06815e56bb39aa0128e3806208b",
"shasum": ""
},
"require": {
@@ -4566,13 +4916,13 @@
},
"require-dev": {
"psr/log": "^1|^2|^3",
- "symfony/config": "^5.4|^6.0",
- "symfony/dependency-injection": "^5.4|^6.0",
- "symfony/error-handler": "^5.4|^6.0",
- "symfony/expression-language": "^5.4|^6.0",
- "symfony/http-foundation": "^5.4|^6.0",
+ "symfony/config": "^5.4|^6.0|^7.0",
+ "symfony/dependency-injection": "^5.4|^6.0|^7.0",
+ "symfony/error-handler": "^5.4|^6.0|^7.0",
+ "symfony/expression-language": "^5.4|^6.0|^7.0",
+ "symfony/http-foundation": "^5.4|^6.0|^7.0",
"symfony/service-contracts": "^2.5|^3",
- "symfony/stopwatch": "^5.4|^6.0"
+ "symfony/stopwatch": "^5.4|^6.0|^7.0"
},
"type": "library",
"autoload": {
@@ -4600,7 +4950,7 @@
"description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/event-dispatcher/tree/v6.3.2"
+ "source": "https://github.com/symfony/event-dispatcher/tree/v6.4.8"
},
"funding": [
{
@@ -4616,20 +4966,20 @@
"type": "tidelift"
}
],
- "time": "2023-07-06T06:56:43+00:00"
+ "time": "2024-05-31T14:49:08+00:00"
},
{
"name": "symfony/event-dispatcher-contracts",
- "version": "v3.3.0",
+ "version": "v3.5.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/event-dispatcher-contracts.git",
- "reference": "a76aed96a42d2b521153fb382d418e30d18b59df"
+ "reference": "8f93aec25d41b72493c6ddff14e916177c9efc50"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/a76aed96a42d2b521153fb382d418e30d18b59df",
- "reference": "a76aed96a42d2b521153fb382d418e30d18b59df",
+ "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/8f93aec25d41b72493c6ddff14e916177c9efc50",
+ "reference": "8f93aec25d41b72493c6ddff14e916177c9efc50",
"shasum": ""
},
"require": {
@@ -4639,7 +4989,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "3.4-dev"
+ "dev-main": "3.5-dev"
},
"thanks": {
"name": "symfony/contracts",
@@ -4676,7 +5026,7 @@
"standards"
],
"support": {
- "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.3.0"
+ "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.5.0"
},
"funding": [
{
@@ -4692,20 +5042,20 @@
"type": "tidelift"
}
],
- "time": "2023-05-23T14:45:45+00:00"
+ "time": "2024-04-18T09:32:20+00:00"
},
{
"name": "symfony/finder",
- "version": "v5.4.27",
+ "version": "v5.4.42",
"source": {
"type": "git",
"url": "https://github.com/symfony/finder.git",
- "reference": "ff4bce3c33451e7ec778070e45bd23f74214cd5d"
+ "reference": "0724c51fa067b198e36506d2864e09a52180998a"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/finder/zipball/ff4bce3c33451e7ec778070e45bd23f74214cd5d",
- "reference": "ff4bce3c33451e7ec778070e45bd23f74214cd5d",
+ "url": "https://api.github.com/repos/symfony/finder/zipball/0724c51fa067b198e36506d2864e09a52180998a",
+ "reference": "0724c51fa067b198e36506d2864e09a52180998a",
"shasum": ""
},
"require": {
@@ -4739,7 +5089,7 @@
"description": "Finds files and directories via an intuitive fluent interface",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/finder/tree/v5.4.27"
+ "source": "https://github.com/symfony/finder/tree/v5.4.42"
},
"funding": [
{
@@ -4755,7 +5105,7 @@
"type": "tidelift"
}
],
- "time": "2023-07-31T08:02:31+00:00"
+ "time": "2024-07-22T08:53:29+00:00"
},
{
"name": "symfony/http-client",
@@ -4848,16 +5198,16 @@
},
{
"name": "symfony/http-client-contracts",
- "version": "v3.3.0",
+ "version": "v3.5.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/http-client-contracts.git",
- "reference": "3b66325d0176b4ec826bffab57c9037d759c31fb"
+ "reference": "20414d96f391677bf80078aa55baece78b82647d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/http-client-contracts/zipball/3b66325d0176b4ec826bffab57c9037d759c31fb",
- "reference": "3b66325d0176b4ec826bffab57c9037d759c31fb",
+ "url": "https://api.github.com/repos/symfony/http-client-contracts/zipball/20414d96f391677bf80078aa55baece78b82647d",
+ "reference": "20414d96f391677bf80078aa55baece78b82647d",
"shasum": ""
},
"require": {
@@ -4866,7 +5216,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "3.4-dev"
+ "dev-main": "3.5-dev"
},
"thanks": {
"name": "symfony/contracts",
@@ -4906,7 +5256,7 @@
"standards"
],
"support": {
- "source": "https://github.com/symfony/http-client-contracts/tree/v3.3.0"
+ "source": "https://github.com/symfony/http-client-contracts/tree/v3.5.0"
},
"funding": [
{
@@ -4922,20 +5272,20 @@
"type": "tidelift"
}
],
- "time": "2023-05-23T14:45:45+00:00"
+ "time": "2024-04-18T09:32:20+00:00"
},
{
"name": "symfony/http-foundation",
- "version": "v5.4.28",
+ "version": "v5.4.42",
"source": {
"type": "git",
"url": "https://github.com/symfony/http-foundation.git",
- "reference": "365992c83a836dfe635f1e903ccca43ee03d3dd2"
+ "reference": "9c375b2abef0b657aa0b7612b763df5c12a465ab"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/http-foundation/zipball/365992c83a836dfe635f1e903ccca43ee03d3dd2",
- "reference": "365992c83a836dfe635f1e903ccca43ee03d3dd2",
+ "url": "https://api.github.com/repos/symfony/http-foundation/zipball/9c375b2abef0b657aa0b7612b763df5c12a465ab",
+ "reference": "9c375b2abef0b657aa0b7612b763df5c12a465ab",
"shasum": ""
},
"require": {
@@ -4945,7 +5295,7 @@
"symfony/polyfill-php80": "^1.16"
},
"require-dev": {
- "predis/predis": "~1.0",
+ "predis/predis": "^1.0|^2.0",
"symfony/cache": "^4.4|^5.0|^6.0",
"symfony/dependency-injection": "^5.4|^6.0",
"symfony/expression-language": "^4.4|^5.0|^6.0",
@@ -4982,7 +5332,7 @@
"description": "Defines an object-oriented layer for the HTTP specification",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/http-foundation/tree/v5.4.28"
+ "source": "https://github.com/symfony/http-foundation/tree/v5.4.42"
},
"funding": [
{
@@ -4998,20 +5348,20 @@
"type": "tidelift"
}
],
- "time": "2023-08-21T07:23:18+00:00"
+ "time": "2024-07-26T11:59:59+00:00"
},
{
"name": "symfony/http-kernel",
- "version": "v5.4.29",
+ "version": "v5.4.42",
"source": {
"type": "git",
"url": "https://github.com/symfony/http-kernel.git",
- "reference": "f53265fc6bd2a7f3a4ed4e443b76e750348ac3f7"
+ "reference": "948db7caf761dacc8abb9a59465f0639c30cc6dd"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/http-kernel/zipball/f53265fc6bd2a7f3a4ed4e443b76e750348ac3f7",
- "reference": "f53265fc6bd2a7f3a4ed4e443b76e750348ac3f7",
+ "url": "https://api.github.com/repos/symfony/http-kernel/zipball/948db7caf761dacc8abb9a59465f0639c30cc6dd",
+ "reference": "948db7caf761dacc8abb9a59465f0639c30cc6dd",
"shasum": ""
},
"require": {
@@ -5060,6 +5410,7 @@
"symfony/stopwatch": "^4.4|^5.0|^6.0",
"symfony/translation": "^4.4|^5.0|^6.0",
"symfony/translation-contracts": "^1.1|^2|^3",
+ "symfony/var-dumper": "^4.4.31|^5.4",
"twig/twig": "^2.13|^3.0.4"
},
"suggest": {
@@ -5094,7 +5445,7 @@
"description": "Provides a structured process for converting a Request into a Response",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/http-kernel/tree/v5.4.29"
+ "source": "https://github.com/symfony/http-kernel/tree/v5.4.42"
},
"funding": [
{
@@ -5110,20 +5461,20 @@
"type": "tidelift"
}
],
- "time": "2023-09-30T06:31:17+00:00"
+ "time": "2024-07-26T14:46:22+00:00"
},
{
"name": "symfony/mime",
- "version": "v5.4.26",
+ "version": "v5.4.41",
"source": {
"type": "git",
"url": "https://github.com/symfony/mime.git",
- "reference": "2ea06dfeee20000a319d8407cea1d47533d5a9d2"
+ "reference": "c71c7a1aeed60b22d05e738197e31daf2120bd42"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/mime/zipball/2ea06dfeee20000a319d8407cea1d47533d5a9d2",
- "reference": "2ea06dfeee20000a319d8407cea1d47533d5a9d2",
+ "url": "https://api.github.com/repos/symfony/mime/zipball/c71c7a1aeed60b22d05e738197e31daf2120bd42",
+ "reference": "c71c7a1aeed60b22d05e738197e31daf2120bd42",
"shasum": ""
},
"require": {
@@ -5138,15 +5489,16 @@
"phpdocumentor/reflection-docblock": "<3.2.2",
"phpdocumentor/type-resolver": "<1.4.0",
"symfony/mailer": "<4.4",
- "symfony/serializer": "<5.4.26|>=6,<6.2.13|>=6.3,<6.3.2"
+ "symfony/serializer": "<5.4.35|>=6,<6.3.12|>=6.4,<6.4.3"
},
"require-dev": {
"egulias/email-validator": "^2.1.10|^3.1|^4",
"phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0",
"symfony/dependency-injection": "^4.4|^5.0|^6.0",
+ "symfony/process": "^5.4|^6.4",
"symfony/property-access": "^4.4|^5.1|^6.0",
"symfony/property-info": "^4.4|^5.1|^6.0",
- "symfony/serializer": "^5.4.26|~6.2.13|^6.3.2"
+ "symfony/serializer": "^5.4.35|~6.3.12|^6.4.3"
},
"type": "library",
"autoload": {
@@ -5178,7 +5530,7 @@
"mime-type"
],
"support": {
- "source": "https://github.com/symfony/mime/tree/v5.4.26"
+ "source": "https://github.com/symfony/mime/tree/v5.4.41"
},
"funding": [
{
@@ -5194,20 +5546,20 @@
"type": "tidelift"
}
],
- "time": "2023-07-27T06:29:31+00:00"
+ "time": "2024-06-28T09:36:24+00:00"
},
{
"name": "symfony/polyfill-ctype",
- "version": "v1.28.0",
+ "version": "v1.30.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-ctype.git",
- "reference": "ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb"
+ "reference": "0424dff1c58f028c451efff2045f5d92410bd540"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb",
- "reference": "ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb",
+ "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/0424dff1c58f028c451efff2045f5d92410bd540",
+ "reference": "0424dff1c58f028c451efff2045f5d92410bd540",
"shasum": ""
},
"require": {
@@ -5221,9 +5573,6 @@
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "1.28-dev"
- },
"thanks": {
"name": "symfony/polyfill",
"url": "https://github.com/symfony/polyfill"
@@ -5260,7 +5609,7 @@
"portable"
],
"support": {
- "source": "https://github.com/symfony/polyfill-ctype/tree/v1.28.0"
+ "source": "https://github.com/symfony/polyfill-ctype/tree/v1.30.0"
},
"funding": [
{
@@ -5276,20 +5625,20 @@
"type": "tidelift"
}
],
- "time": "2023-01-26T09:26:14+00:00"
+ "time": "2024-05-31T15:07:36+00:00"
},
{
"name": "symfony/polyfill-iconv",
- "version": "v1.28.0",
+ "version": "v1.30.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-iconv.git",
- "reference": "6de50471469b8c9afc38164452ab2b6170ee71c1"
+ "reference": "c027e6a3c6aee334663ec21f5852e89738abc805"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/6de50471469b8c9afc38164452ab2b6170ee71c1",
- "reference": "6de50471469b8c9afc38164452ab2b6170ee71c1",
+ "url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/c027e6a3c6aee334663ec21f5852e89738abc805",
+ "reference": "c027e6a3c6aee334663ec21f5852e89738abc805",
"shasum": ""
},
"require": {
@@ -5303,9 +5652,6 @@
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "1.28-dev"
- },
"thanks": {
"name": "symfony/polyfill",
"url": "https://github.com/symfony/polyfill"
@@ -5343,7 +5689,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-iconv/tree/v1.28.0"
+ "source": "https://github.com/symfony/polyfill-iconv/tree/v1.30.0"
},
"funding": [
{
@@ -5359,20 +5705,20 @@
"type": "tidelift"
}
],
- "time": "2023-01-26T09:26:14+00:00"
+ "time": "2024-05-31T15:07:36+00:00"
},
{
"name": "symfony/polyfill-intl-grapheme",
- "version": "v1.28.0",
+ "version": "v1.30.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-intl-grapheme.git",
- "reference": "875e90aeea2777b6f135677f618529449334a612"
+ "reference": "64647a7c30b2283f5d49b874d84a18fc22054b7a"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/875e90aeea2777b6f135677f618529449334a612",
- "reference": "875e90aeea2777b6f135677f618529449334a612",
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/64647a7c30b2283f5d49b874d84a18fc22054b7a",
+ "reference": "64647a7c30b2283f5d49b874d84a18fc22054b7a",
"shasum": ""
},
"require": {
@@ -5383,9 +5729,6 @@
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "1.28-dev"
- },
"thanks": {
"name": "symfony/polyfill",
"url": "https://github.com/symfony/polyfill"
@@ -5424,7 +5767,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.28.0"
+ "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.30.0"
},
"funding": [
{
@@ -5440,20 +5783,20 @@
"type": "tidelift"
}
],
- "time": "2023-01-26T09:26:14+00:00"
+ "time": "2024-05-31T15:07:36+00:00"
},
{
"name": "symfony/polyfill-intl-idn",
- "version": "v1.28.0",
+ "version": "v1.30.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-intl-idn.git",
- "reference": "ecaafce9f77234a6a449d29e49267ba10499116d"
+ "reference": "a6e83bdeb3c84391d1dfe16f42e40727ce524a5c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/ecaafce9f77234a6a449d29e49267ba10499116d",
- "reference": "ecaafce9f77234a6a449d29e49267ba10499116d",
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/a6e83bdeb3c84391d1dfe16f42e40727ce524a5c",
+ "reference": "a6e83bdeb3c84391d1dfe16f42e40727ce524a5c",
"shasum": ""
},
"require": {
@@ -5466,9 +5809,6 @@
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "1.28-dev"
- },
"thanks": {
"name": "symfony/polyfill",
"url": "https://github.com/symfony/polyfill"
@@ -5511,7 +5851,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.28.0"
+ "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.30.0"
},
"funding": [
{
@@ -5527,20 +5867,20 @@
"type": "tidelift"
}
],
- "time": "2023-01-26T09:30:37+00:00"
+ "time": "2024-05-31T15:07:36+00:00"
},
{
"name": "symfony/polyfill-intl-normalizer",
- "version": "v1.28.0",
+ "version": "v1.30.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-intl-normalizer.git",
- "reference": "8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92"
+ "reference": "a95281b0be0d9ab48050ebd988b967875cdb9fdb"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92",
- "reference": "8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92",
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/a95281b0be0d9ab48050ebd988b967875cdb9fdb",
+ "reference": "a95281b0be0d9ab48050ebd988b967875cdb9fdb",
"shasum": ""
},
"require": {
@@ -5551,9 +5891,6 @@
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "1.28-dev"
- },
"thanks": {
"name": "symfony/polyfill",
"url": "https://github.com/symfony/polyfill"
@@ -5595,7 +5932,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.28.0"
+ "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.30.0"
},
"funding": [
{
@@ -5611,20 +5948,20 @@
"type": "tidelift"
}
],
- "time": "2023-01-26T09:26:14+00:00"
+ "time": "2024-05-31T15:07:36+00:00"
},
{
"name": "symfony/polyfill-mbstring",
- "version": "v1.28.0",
+ "version": "v1.30.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-mbstring.git",
- "reference": "42292d99c55abe617799667f454222c54c60e229"
+ "reference": "fd22ab50000ef01661e2a31d850ebaa297f8e03c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/42292d99c55abe617799667f454222c54c60e229",
- "reference": "42292d99c55abe617799667f454222c54c60e229",
+ "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/fd22ab50000ef01661e2a31d850ebaa297f8e03c",
+ "reference": "fd22ab50000ef01661e2a31d850ebaa297f8e03c",
"shasum": ""
},
"require": {
@@ -5638,9 +5975,6 @@
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "1.28-dev"
- },
"thanks": {
"name": "symfony/polyfill",
"url": "https://github.com/symfony/polyfill"
@@ -5678,7 +6012,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.28.0"
+ "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.30.0"
},
"funding": [
{
@@ -5694,20 +6028,20 @@
"type": "tidelift"
}
],
- "time": "2023-07-28T09:04:16+00:00"
+ "time": "2024-06-19T12:30:46+00:00"
},
{
"name": "symfony/polyfill-php72",
- "version": "v1.28.0",
+ "version": "v1.30.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-php72.git",
- "reference": "70f4aebd92afca2f865444d30a4d2151c13c3179"
+ "reference": "10112722600777e02d2745716b70c5db4ca70442"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/70f4aebd92afca2f865444d30a4d2151c13c3179",
- "reference": "70f4aebd92afca2f865444d30a4d2151c13c3179",
+ "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/10112722600777e02d2745716b70c5db4ca70442",
+ "reference": "10112722600777e02d2745716b70c5db4ca70442",
"shasum": ""
},
"require": {
@@ -5715,9 +6049,6 @@
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "1.28-dev"
- },
"thanks": {
"name": "symfony/polyfill",
"url": "https://github.com/symfony/polyfill"
@@ -5754,7 +6085,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-php72/tree/v1.28.0"
+ "source": "https://github.com/symfony/polyfill-php72/tree/v1.30.0"
},
"funding": [
{
@@ -5770,20 +6101,20 @@
"type": "tidelift"
}
],
- "time": "2023-01-26T09:26:14+00:00"
+ "time": "2024-06-19T12:30:46+00:00"
},
{
"name": "symfony/polyfill-php73",
- "version": "v1.28.0",
+ "version": "v1.30.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-php73.git",
- "reference": "fe2f306d1d9d346a7fee353d0d5012e401e984b5"
+ "reference": "ec444d3f3f6505bb28d11afa41e75faadebc10a1"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/fe2f306d1d9d346a7fee353d0d5012e401e984b5",
- "reference": "fe2f306d1d9d346a7fee353d0d5012e401e984b5",
+ "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/ec444d3f3f6505bb28d11afa41e75faadebc10a1",
+ "reference": "ec444d3f3f6505bb28d11afa41e75faadebc10a1",
"shasum": ""
},
"require": {
@@ -5791,9 +6122,6 @@
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "1.28-dev"
- },
"thanks": {
"name": "symfony/polyfill",
"url": "https://github.com/symfony/polyfill"
@@ -5833,7 +6161,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-php73/tree/v1.28.0"
+ "source": "https://github.com/symfony/polyfill-php73/tree/v1.30.0"
},
"funding": [
{
@@ -5849,20 +6177,20 @@
"type": "tidelift"
}
],
- "time": "2023-01-26T09:26:14+00:00"
+ "time": "2024-05-31T15:07:36+00:00"
},
{
"name": "symfony/polyfill-php80",
- "version": "v1.28.0",
+ "version": "v1.30.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-php80.git",
- "reference": "6caa57379c4aec19c0a12a38b59b26487dcfe4b5"
+ "reference": "77fa7995ac1b21ab60769b7323d600a991a90433"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/6caa57379c4aec19c0a12a38b59b26487dcfe4b5",
- "reference": "6caa57379c4aec19c0a12a38b59b26487dcfe4b5",
+ "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/77fa7995ac1b21ab60769b7323d600a991a90433",
+ "reference": "77fa7995ac1b21ab60769b7323d600a991a90433",
"shasum": ""
},
"require": {
@@ -5870,9 +6198,6 @@
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "1.28-dev"
- },
"thanks": {
"name": "symfony/polyfill",
"url": "https://github.com/symfony/polyfill"
@@ -5916,7 +6241,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-php80/tree/v1.28.0"
+ "source": "https://github.com/symfony/polyfill-php80/tree/v1.30.0"
},
"funding": [
{
@@ -5932,20 +6257,20 @@
"type": "tidelift"
}
],
- "time": "2023-01-26T09:26:14+00:00"
+ "time": "2024-05-31T15:07:36+00:00"
},
{
"name": "symfony/process",
- "version": "v5.4.28",
+ "version": "v5.4.40",
"source": {
"type": "git",
"url": "https://github.com/symfony/process.git",
- "reference": "45261e1fccad1b5447a8d7a8e67aa7b4a9798b7b"
+ "reference": "deedcb3bb4669cae2148bc920eafd2b16dc7c046"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/process/zipball/45261e1fccad1b5447a8d7a8e67aa7b4a9798b7b",
- "reference": "45261e1fccad1b5447a8d7a8e67aa7b4a9798b7b",
+ "url": "https://api.github.com/repos/symfony/process/zipball/deedcb3bb4669cae2148bc920eafd2b16dc7c046",
+ "reference": "deedcb3bb4669cae2148bc920eafd2b16dc7c046",
"shasum": ""
},
"require": {
@@ -5978,7 +6303,7 @@
"description": "Executes commands in sub-processes",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/process/tree/v5.4.28"
+ "source": "https://github.com/symfony/process/tree/v5.4.40"
},
"funding": [
{
@@ -5994,7 +6319,7 @@
"type": "tidelift"
}
],
- "time": "2023-08-07T10:36:04+00:00"
+ "time": "2024-05-31T14:33:22+00:00"
},
{
"name": "symfony/psr-http-message-bridge",
@@ -6087,16 +6412,16 @@
},
{
"name": "symfony/routing",
- "version": "v5.4.26",
+ "version": "v5.4.42",
"source": {
"type": "git",
"url": "https://github.com/symfony/routing.git",
- "reference": "853fc7df96befc468692de0a48831b38f04d2cb2"
+ "reference": "f8dd6f80c96aeec9b13fc13757842342e05c4878"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/routing/zipball/853fc7df96befc468692de0a48831b38f04d2cb2",
- "reference": "853fc7df96befc468692de0a48831b38f04d2cb2",
+ "url": "https://api.github.com/repos/symfony/routing/zipball/f8dd6f80c96aeec9b13fc13757842342e05c4878",
+ "reference": "f8dd6f80c96aeec9b13fc13757842342e05c4878",
"shasum": ""
},
"require": {
@@ -6157,7 +6482,7 @@
"url"
],
"support": {
- "source": "https://github.com/symfony/routing/tree/v5.4.26"
+ "source": "https://github.com/symfony/routing/tree/v5.4.42"
},
"funding": [
{
@@ -6173,37 +6498,34 @@
"type": "tidelift"
}
],
- "time": "2023-07-24T13:28:37+00:00"
+ "time": "2024-07-09T20:57:15+00:00"
},
{
"name": "symfony/service-contracts",
- "version": "v2.5.2",
+ "version": "v3.5.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/service-contracts.git",
- "reference": "4b426aac47d6427cc1a1d0f7e2ac724627f5966c"
+ "reference": "bd1d9e59a81d8fa4acdcea3f617c581f7475a80f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/service-contracts/zipball/4b426aac47d6427cc1a1d0f7e2ac724627f5966c",
- "reference": "4b426aac47d6427cc1a1d0f7e2ac724627f5966c",
+ "url": "https://api.github.com/repos/symfony/service-contracts/zipball/bd1d9e59a81d8fa4acdcea3f617c581f7475a80f",
+ "reference": "bd1d9e59a81d8fa4acdcea3f617c581f7475a80f",
"shasum": ""
},
"require": {
- "php": ">=7.2.5",
- "psr/container": "^1.1",
- "symfony/deprecation-contracts": "^2.1|^3"
+ "php": ">=8.1",
+ "psr/container": "^1.1|^2.0",
+ "symfony/deprecation-contracts": "^2.5|^3"
},
"conflict": {
"ext-psr": "<1.1|>=2"
},
- "suggest": {
- "symfony/service-implementation": ""
- },
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "2.5-dev"
+ "dev-main": "3.5-dev"
},
"thanks": {
"name": "symfony/contracts",
@@ -6213,7 +6535,10 @@
"autoload": {
"psr-4": {
"Symfony\\Contracts\\Service\\": ""
- }
+ },
+ "exclude-from-classmap": [
+ "/Test/"
+ ]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
@@ -6240,7 +6565,7 @@
"standards"
],
"support": {
- "source": "https://github.com/symfony/service-contracts/tree/v2.5.2"
+ "source": "https://github.com/symfony/service-contracts/tree/v3.5.0"
},
"funding": [
{
@@ -6256,20 +6581,20 @@
"type": "tidelift"
}
],
- "time": "2022-05-30T19:17:29+00:00"
+ "time": "2024-04-18T09:32:20+00:00"
},
{
"name": "symfony/string",
- "version": "v6.3.5",
+ "version": "v6.4.10",
"source": {
"type": "git",
"url": "https://github.com/symfony/string.git",
- "reference": "13d76d0fb049051ed12a04bef4f9de8715bea339"
+ "reference": "ccf9b30251719567bfd46494138327522b9a9446"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/string/zipball/13d76d0fb049051ed12a04bef4f9de8715bea339",
- "reference": "13d76d0fb049051ed12a04bef4f9de8715bea339",
+ "url": "https://api.github.com/repos/symfony/string/zipball/ccf9b30251719567bfd46494138327522b9a9446",
+ "reference": "ccf9b30251719567bfd46494138327522b9a9446",
"shasum": ""
},
"require": {
@@ -6283,11 +6608,11 @@
"symfony/translation-contracts": "<2.5"
},
"require-dev": {
- "symfony/error-handler": "^5.4|^6.0",
- "symfony/http-client": "^5.4|^6.0",
- "symfony/intl": "^6.2",
+ "symfony/error-handler": "^5.4|^6.0|^7.0",
+ "symfony/http-client": "^5.4|^6.0|^7.0",
+ "symfony/intl": "^6.2|^7.0",
"symfony/translation-contracts": "^2.5|^3.0",
- "symfony/var-exporter": "^5.4|^6.0"
+ "symfony/var-exporter": "^5.4|^6.0|^7.0"
},
"type": "library",
"autoload": {
@@ -6326,7 +6651,7 @@
"utf8"
],
"support": {
- "source": "https://github.com/symfony/string/tree/v6.3.5"
+ "source": "https://github.com/symfony/string/tree/v6.4.10"
},
"funding": [
{
@@ -6342,20 +6667,20 @@
"type": "tidelift"
}
],
- "time": "2023-09-18T10:38:32+00:00"
+ "time": "2024-07-22T10:21:14+00:00"
},
{
"name": "symfony/translation",
- "version": "v6.3.6",
+ "version": "v6.4.10",
"source": {
"type": "git",
"url": "https://github.com/symfony/translation.git",
- "reference": "869b26c7a9d4b8a48afdd77ab36031909c87e3a2"
+ "reference": "94041203f8ac200ae9e7c6a18fa6137814ccecc9"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/translation/zipball/869b26c7a9d4b8a48afdd77ab36031909c87e3a2",
- "reference": "869b26c7a9d4b8a48afdd77ab36031909c87e3a2",
+ "url": "https://api.github.com/repos/symfony/translation/zipball/94041203f8ac200ae9e7c6a18fa6137814ccecc9",
+ "reference": "94041203f8ac200ae9e7c6a18fa6137814ccecc9",
"shasum": ""
},
"require": {
@@ -6378,19 +6703,19 @@
"symfony/translation-implementation": "2.3|3.0"
},
"require-dev": {
- "nikic/php-parser": "^4.13",
+ "nikic/php-parser": "^4.18|^5.0",
"psr/log": "^1|^2|^3",
- "symfony/config": "^5.4|^6.0",
- "symfony/console": "^5.4|^6.0",
- "symfony/dependency-injection": "^5.4|^6.0",
- "symfony/finder": "^5.4|^6.0",
+ "symfony/config": "^5.4|^6.0|^7.0",
+ "symfony/console": "^5.4|^6.0|^7.0",
+ "symfony/dependency-injection": "^5.4|^6.0|^7.0",
+ "symfony/finder": "^5.4|^6.0|^7.0",
"symfony/http-client-contracts": "^2.5|^3.0",
- "symfony/http-kernel": "^5.4|^6.0",
- "symfony/intl": "^5.4|^6.0",
+ "symfony/http-kernel": "^5.4|^6.0|^7.0",
+ "symfony/intl": "^5.4|^6.0|^7.0",
"symfony/polyfill-intl-icu": "^1.21",
- "symfony/routing": "^5.4|^6.0",
+ "symfony/routing": "^5.4|^6.0|^7.0",
"symfony/service-contracts": "^2.5|^3",
- "symfony/yaml": "^5.4|^6.0"
+ "symfony/yaml": "^5.4|^6.0|^7.0"
},
"type": "library",
"autoload": {
@@ -6421,7 +6746,7 @@
"description": "Provides tools to internationalize your application",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/translation/tree/v6.3.6"
+ "source": "https://github.com/symfony/translation/tree/v6.4.10"
},
"funding": [
{
@@ -6437,20 +6762,20 @@
"type": "tidelift"
}
],
- "time": "2023-10-17T11:32:53+00:00"
+ "time": "2024-07-26T12:30:32+00:00"
},
{
"name": "symfony/translation-contracts",
- "version": "v3.3.0",
+ "version": "v3.5.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/translation-contracts.git",
- "reference": "02c24deb352fb0d79db5486c0c79905a85e37e86"
+ "reference": "b9d2189887bb6b2e0367a9fc7136c5239ab9b05a"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/02c24deb352fb0d79db5486c0c79905a85e37e86",
- "reference": "02c24deb352fb0d79db5486c0c79905a85e37e86",
+ "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/b9d2189887bb6b2e0367a9fc7136c5239ab9b05a",
+ "reference": "b9d2189887bb6b2e0367a9fc7136c5239ab9b05a",
"shasum": ""
},
"require": {
@@ -6459,7 +6784,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "3.4-dev"
+ "dev-main": "3.5-dev"
},
"thanks": {
"name": "symfony/contracts",
@@ -6499,7 +6824,7 @@
"standards"
],
"support": {
- "source": "https://github.com/symfony/translation-contracts/tree/v3.3.0"
+ "source": "https://github.com/symfony/translation-contracts/tree/v3.5.0"
},
"funding": [
{
@@ -6515,20 +6840,20 @@
"type": "tidelift"
}
],
- "time": "2023-05-30T17:17:10+00:00"
+ "time": "2024-04-18T09:32:20+00:00"
},
{
"name": "symfony/var-dumper",
- "version": "v5.4.29",
+ "version": "v5.4.42",
"source": {
"type": "git",
"url": "https://github.com/symfony/var-dumper.git",
- "reference": "6172e4ae3534d25ee9e07eb487c20be7760fcc65"
+ "reference": "0c17c56d8ea052fc33942251c75d0e28936e043d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/var-dumper/zipball/6172e4ae3534d25ee9e07eb487c20be7760fcc65",
- "reference": "6172e4ae3534d25ee9e07eb487c20be7760fcc65",
+ "url": "https://api.github.com/repos/symfony/var-dumper/zipball/0c17c56d8ea052fc33942251c75d0e28936e043d",
+ "reference": "0c17c56d8ea052fc33942251c75d0e28936e043d",
"shasum": ""
},
"require": {
@@ -6588,7 +6913,7 @@
"dump"
],
"support": {
- "source": "https://github.com/symfony/var-dumper/tree/v5.4.29"
+ "source": "https://github.com/symfony/var-dumper/tree/v5.4.42"
},
"funding": [
{
@@ -6604,20 +6929,20 @@
"type": "tidelift"
}
],
- "time": "2023-09-12T10:09:58+00:00"
+ "time": "2024-07-26T12:23:09+00:00"
},
{
"name": "symfony/yaml",
- "version": "v6.3.3",
+ "version": "v6.4.8",
"source": {
"type": "git",
"url": "https://github.com/symfony/yaml.git",
- "reference": "e23292e8c07c85b971b44c1c4b87af52133e2add"
+ "reference": "52903de178d542850f6f341ba92995d3d63e60c9"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/yaml/zipball/e23292e8c07c85b971b44c1c4b87af52133e2add",
- "reference": "e23292e8c07c85b971b44c1c4b87af52133e2add",
+ "url": "https://api.github.com/repos/symfony/yaml/zipball/52903de178d542850f6f341ba92995d3d63e60c9",
+ "reference": "52903de178d542850f6f341ba92995d3d63e60c9",
"shasum": ""
},
"require": {
@@ -6629,7 +6954,7 @@
"symfony/console": "<5.4"
},
"require-dev": {
- "symfony/console": "^5.4|^6.0"
+ "symfony/console": "^5.4|^6.0|^7.0"
},
"bin": [
"Resources/bin/yaml-lint"
@@ -6660,7 +6985,7 @@
"description": "Loads and dumps YAML files",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/yaml/tree/v6.3.3"
+ "source": "https://github.com/symfony/yaml/tree/v6.4.8"
},
"funding": [
{
@@ -6676,27 +7001,27 @@
"type": "tidelift"
}
],
- "time": "2023-07-31T07:08:24+00:00"
+ "time": "2024-05-31T14:49:08+00:00"
},
{
"name": "tijsverkoyen/css-to-inline-styles",
- "version": "2.2.6",
+ "version": "v2.2.7",
"source": {
"type": "git",
"url": "https://github.com/tijsverkoyen/CssToInlineStyles.git",
- "reference": "c42125b83a4fa63b187fdf29f9c93cb7733da30c"
+ "reference": "83ee6f38df0a63106a9e4536e3060458b74ccedb"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/tijsverkoyen/CssToInlineStyles/zipball/c42125b83a4fa63b187fdf29f9c93cb7733da30c",
- "reference": "c42125b83a4fa63b187fdf29f9c93cb7733da30c",
+ "url": "https://api.github.com/repos/tijsverkoyen/CssToInlineStyles/zipball/83ee6f38df0a63106a9e4536e3060458b74ccedb",
+ "reference": "83ee6f38df0a63106a9e4536e3060458b74ccedb",
"shasum": ""
},
"require": {
"ext-dom": "*",
"ext-libxml": "*",
"php": "^5.5 || ^7.0 || ^8.0",
- "symfony/css-selector": "^2.7 || ^3.0 || ^4.0 || ^5.0 || ^6.0"
+ "symfony/css-selector": "^2.7 || ^3.0 || ^4.0 || ^5.0 || ^6.0 || ^7.0"
},
"require-dev": {
"phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0 || ^7.5 || ^8.5.21 || ^9.5.10"
@@ -6727,37 +7052,37 @@
"homepage": "https://github.com/tijsverkoyen/CssToInlineStyles",
"support": {
"issues": "https://github.com/tijsverkoyen/CssToInlineStyles/issues",
- "source": "https://github.com/tijsverkoyen/CssToInlineStyles/tree/2.2.6"
+ "source": "https://github.com/tijsverkoyen/CssToInlineStyles/tree/v2.2.7"
},
- "time": "2023-01-03T09:29:04+00:00"
+ "time": "2023-12-08T13:03:43+00:00"
},
{
"name": "vlucas/phpdotenv",
- "version": "v5.5.0",
+ "version": "v5.6.1",
"source": {
"type": "git",
"url": "https://github.com/vlucas/phpdotenv.git",
- "reference": "1a7ea2afc49c3ee6d87061f5a233e3a035d0eae7"
+ "reference": "a59a13791077fe3d44f90e7133eb68e7d22eaff2"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/1a7ea2afc49c3ee6d87061f5a233e3a035d0eae7",
- "reference": "1a7ea2afc49c3ee6d87061f5a233e3a035d0eae7",
+ "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/a59a13791077fe3d44f90e7133eb68e7d22eaff2",
+ "reference": "a59a13791077fe3d44f90e7133eb68e7d22eaff2",
"shasum": ""
},
"require": {
"ext-pcre": "*",
- "graham-campbell/result-type": "^1.0.2",
- "php": "^7.1.3 || ^8.0",
- "phpoption/phpoption": "^1.8",
- "symfony/polyfill-ctype": "^1.23",
- "symfony/polyfill-mbstring": "^1.23.1",
- "symfony/polyfill-php80": "^1.23.1"
+ "graham-campbell/result-type": "^1.1.3",
+ "php": "^7.2.5 || ^8.0",
+ "phpoption/phpoption": "^1.9.3",
+ "symfony/polyfill-ctype": "^1.24",
+ "symfony/polyfill-mbstring": "^1.24",
+ "symfony/polyfill-php80": "^1.24"
},
"require-dev": {
- "bamarni/composer-bin-plugin": "^1.4.1",
+ "bamarni/composer-bin-plugin": "^1.8.2",
"ext-filter": "*",
- "phpunit/phpunit": "^7.5.20 || ^8.5.30 || ^9.5.25"
+ "phpunit/phpunit": "^8.5.34 || ^9.6.13 || ^10.4.2"
},
"suggest": {
"ext-filter": "Required to use the boolean validator."
@@ -6766,10 +7091,10 @@
"extra": {
"bamarni-bin": {
"bin-links": true,
- "forward-command": true
+ "forward-command": false
},
"branch-alias": {
- "dev-master": "5.5-dev"
+ "dev-master": "5.6-dev"
}
},
"autoload": {
@@ -6801,7 +7126,7 @@
],
"support": {
"issues": "https://github.com/vlucas/phpdotenv/issues",
- "source": "https://github.com/vlucas/phpdotenv/tree/v5.5.0"
+ "source": "https://github.com/vlucas/phpdotenv/tree/v5.6.1"
},
"funding": [
{
@@ -6813,7 +7138,7 @@
"type": "tidelift"
}
],
- "time": "2022-10-16T01:01:54+00:00"
+ "time": "2024-07-20T21:52:34+00:00"
},
{
"name": "voku/portable-ascii",
@@ -7217,16 +7542,16 @@
},
{
"name": "fakerphp/faker",
- "version": "v1.23.0",
+ "version": "v1.23.1",
"source": {
"type": "git",
"url": "https://github.com/FakerPHP/Faker.git",
- "reference": "e3daa170d00fde61ea7719ef47bb09bb8f1d9b01"
+ "reference": "bfb4fe148adbf78eff521199619b93a52ae3554b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/FakerPHP/Faker/zipball/e3daa170d00fde61ea7719ef47bb09bb8f1d9b01",
- "reference": "e3daa170d00fde61ea7719ef47bb09bb8f1d9b01",
+ "url": "https://api.github.com/repos/FakerPHP/Faker/zipball/bfb4fe148adbf78eff521199619b93a52ae3554b",
+ "reference": "bfb4fe148adbf78eff521199619b93a52ae3554b",
"shasum": ""
},
"require": {
@@ -7252,11 +7577,6 @@
"ext-mbstring": "Required for multibyte Unicode string functionality."
},
"type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "v1.21-dev"
- }
- },
"autoload": {
"psr-4": {
"Faker\\": "src/Faker/"
@@ -7279,22 +7599,22 @@
],
"support": {
"issues": "https://github.com/FakerPHP/Faker/issues",
- "source": "https://github.com/FakerPHP/Faker/tree/v1.23.0"
+ "source": "https://github.com/FakerPHP/Faker/tree/v1.23.1"
},
- "time": "2023-06-12T08:44:38+00:00"
+ "time": "2024-01-02T13:46:09+00:00"
},
{
"name": "filp/whoops",
- "version": "2.15.3",
+ "version": "2.15.4",
"source": {
"type": "git",
"url": "https://github.com/filp/whoops.git",
- "reference": "c83e88a30524f9360b11f585f71e6b17313b7187"
+ "reference": "a139776fa3f5985a50b509f2a02ff0f709d2a546"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/filp/whoops/zipball/c83e88a30524f9360b11f585f71e6b17313b7187",
- "reference": "c83e88a30524f9360b11f585f71e6b17313b7187",
+ "url": "https://api.github.com/repos/filp/whoops/zipball/a139776fa3f5985a50b509f2a02ff0f709d2a546",
+ "reference": "a139776fa3f5985a50b509f2a02ff0f709d2a546",
"shasum": ""
},
"require": {
@@ -7344,7 +7664,7 @@
],
"support": {
"issues": "https://github.com/filp/whoops/issues",
- "source": "https://github.com/filp/whoops/tree/2.15.3"
+ "source": "https://github.com/filp/whoops/tree/2.15.4"
},
"funding": [
{
@@ -7352,7 +7672,7 @@
"type": "github"
}
],
- "time": "2023-07-13T12:00:00+00:00"
+ "time": "2023-11-03T12:00:00+00:00"
},
{
"name": "hamcrest/hamcrest-php",
@@ -7472,16 +7792,16 @@
},
{
"name": "mockery/mockery",
- "version": "1.6.6",
+ "version": "1.6.12",
"source": {
"type": "git",
"url": "https://github.com/mockery/mockery.git",
- "reference": "b8e0bb7d8c604046539c1115994632c74dcb361e"
+ "reference": "1f4efdd7d3beafe9807b08156dfcb176d18f1699"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/mockery/mockery/zipball/b8e0bb7d8c604046539c1115994632c74dcb361e",
- "reference": "b8e0bb7d8c604046539c1115994632c74dcb361e",
+ "url": "https://api.github.com/repos/mockery/mockery/zipball/1f4efdd7d3beafe9807b08156dfcb176d18f1699",
+ "reference": "1f4efdd7d3beafe9807b08156dfcb176d18f1699",
"shasum": ""
},
"require": {
@@ -7493,10 +7813,8 @@
"phpunit/phpunit": "<8.0"
},
"require-dev": {
- "phpunit/phpunit": "^8.5 || ^9.6.10",
- "psalm/plugin-phpunit": "^0.18.4",
- "symplify/easy-coding-standard": "^11.5.0",
- "vimeo/psalm": "^4.30"
+ "phpunit/phpunit": "^8.5 || ^9.6.17",
+ "symplify/easy-coding-standard": "^12.1.14"
},
"type": "library",
"autoload": {
@@ -7553,20 +7871,20 @@
"security": "https://github.com/mockery/mockery/security/advisories",
"source": "https://github.com/mockery/mockery"
},
- "time": "2023-08-09T00:03:52+00:00"
+ "time": "2024-05-16T03:13:13+00:00"
},
{
"name": "myclabs/deep-copy",
- "version": "1.11.1",
+ "version": "1.12.0",
"source": {
"type": "git",
"url": "https://github.com/myclabs/DeepCopy.git",
- "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c"
+ "reference": "3a6b9a42cd8f8771bd4295d13e1423fa7f3d942c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/7284c22080590fb39f2ffa3e9057f10a4ddd0e0c",
- "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c",
+ "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/3a6b9a42cd8f8771bd4295d13e1423fa7f3d942c",
+ "reference": "3a6b9a42cd8f8771bd4295d13e1423fa7f3d942c",
"shasum": ""
},
"require": {
@@ -7574,11 +7892,12 @@
},
"conflict": {
"doctrine/collections": "<1.6.8",
- "doctrine/common": "<2.13.3 || >=3,<3.2.2"
+ "doctrine/common": "<2.13.3 || >=3 <3.2.2"
},
"require-dev": {
"doctrine/collections": "^1.6.8",
"doctrine/common": "^2.13.3 || ^3.2.2",
+ "phpspec/prophecy": "^1.10",
"phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13"
},
"type": "library",
@@ -7604,7 +7923,7 @@
],
"support": {
"issues": "https://github.com/myclabs/DeepCopy/issues",
- "source": "https://github.com/myclabs/DeepCopy/tree/1.11.1"
+ "source": "https://github.com/myclabs/DeepCopy/tree/1.12.0"
},
"funding": [
{
@@ -7612,7 +7931,7 @@
"type": "tidelift"
}
],
- "time": "2023-03-08T13:26:56+00:00"
+ "time": "2024-06-12T14:39:25+00:00"
},
{
"name": "nunomaduro/collision",
@@ -7703,20 +8022,21 @@
},
{
"name": "phar-io/manifest",
- "version": "2.0.3",
+ "version": "2.0.4",
"source": {
"type": "git",
"url": "https://github.com/phar-io/manifest.git",
- "reference": "97803eca37d319dfa7826cc2437fc020857acb53"
+ "reference": "54750ef60c58e43759730615a392c31c80e23176"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phar-io/manifest/zipball/97803eca37d319dfa7826cc2437fc020857acb53",
- "reference": "97803eca37d319dfa7826cc2437fc020857acb53",
+ "url": "https://api.github.com/repos/phar-io/manifest/zipball/54750ef60c58e43759730615a392c31c80e23176",
+ "reference": "54750ef60c58e43759730615a392c31c80e23176",
"shasum": ""
},
"require": {
"ext-dom": "*",
+ "ext-libxml": "*",
"ext-phar": "*",
"ext-xmlwriter": "*",
"phar-io/version": "^3.0.1",
@@ -7757,9 +8077,15 @@
"description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)",
"support": {
"issues": "https://github.com/phar-io/manifest/issues",
- "source": "https://github.com/phar-io/manifest/tree/2.0.3"
+ "source": "https://github.com/phar-io/manifest/tree/2.0.4"
},
- "time": "2021-07-20T11:28:43+00:00"
+ "funding": [
+ {
+ "url": "https://github.com/theseer",
+ "type": "github"
+ }
+ ],
+ "time": "2024-03-03T12:33:53+00:00"
},
{
"name": "phar-io/version",
@@ -7814,35 +8140,35 @@
},
{
"name": "phpunit/php-code-coverage",
- "version": "9.2.29",
+ "version": "9.2.32",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-code-coverage.git",
- "reference": "6a3a87ac2bbe33b25042753df8195ba4aa534c76"
+ "reference": "85402a822d1ecf1db1096959413d35e1c37cf1a5"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/6a3a87ac2bbe33b25042753df8195ba4aa534c76",
- "reference": "6a3a87ac2bbe33b25042753df8195ba4aa534c76",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/85402a822d1ecf1db1096959413d35e1c37cf1a5",
+ "reference": "85402a822d1ecf1db1096959413d35e1c37cf1a5",
"shasum": ""
},
"require": {
"ext-dom": "*",
"ext-libxml": "*",
"ext-xmlwriter": "*",
- "nikic/php-parser": "^4.15",
+ "nikic/php-parser": "^4.19.1 || ^5.1.0",
"php": ">=7.3",
- "phpunit/php-file-iterator": "^3.0.3",
- "phpunit/php-text-template": "^2.0.2",
- "sebastian/code-unit-reverse-lookup": "^2.0.2",
- "sebastian/complexity": "^2.0",
- "sebastian/environment": "^5.1.2",
- "sebastian/lines-of-code": "^1.0.3",
- "sebastian/version": "^3.0.1",
- "theseer/tokenizer": "^1.2.0"
+ "phpunit/php-file-iterator": "^3.0.6",
+ "phpunit/php-text-template": "^2.0.4",
+ "sebastian/code-unit-reverse-lookup": "^2.0.3",
+ "sebastian/complexity": "^2.0.3",
+ "sebastian/environment": "^5.1.5",
+ "sebastian/lines-of-code": "^1.0.4",
+ "sebastian/version": "^3.0.2",
+ "theseer/tokenizer": "^1.2.3"
},
"require-dev": {
- "phpunit/phpunit": "^9.3"
+ "phpunit/phpunit": "^9.6"
},
"suggest": {
"ext-pcov": "PHP extension that provides line coverage",
@@ -7851,7 +8177,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "9.2-dev"
+ "dev-main": "9.2.x-dev"
}
},
"autoload": {
@@ -7880,7 +8206,7 @@
"support": {
"issues": "https://github.com/sebastianbergmann/php-code-coverage/issues",
"security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy",
- "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.29"
+ "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.32"
},
"funding": [
{
@@ -7888,7 +8214,7 @@
"type": "github"
}
],
- "time": "2023-09-19T04:57:46+00:00"
+ "time": "2024-08-22T04:23:01+00:00"
},
{
"name": "phpunit/php-file-iterator",
@@ -8133,45 +8459,45 @@
},
{
"name": "phpunit/phpunit",
- "version": "9.6.13",
+ "version": "9.6.20",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/phpunit.git",
- "reference": "f3d767f7f9e191eab4189abe41ab37797e30b1be"
+ "reference": "49d7820565836236411f5dc002d16dd689cde42f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/f3d767f7f9e191eab4189abe41ab37797e30b1be",
- "reference": "f3d767f7f9e191eab4189abe41ab37797e30b1be",
+ "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/49d7820565836236411f5dc002d16dd689cde42f",
+ "reference": "49d7820565836236411f5dc002d16dd689cde42f",
"shasum": ""
},
"require": {
- "doctrine/instantiator": "^1.3.1 || ^2",
+ "doctrine/instantiator": "^1.5.0 || ^2",
"ext-dom": "*",
"ext-json": "*",
"ext-libxml": "*",
"ext-mbstring": "*",
"ext-xml": "*",
"ext-xmlwriter": "*",
- "myclabs/deep-copy": "^1.10.1",
- "phar-io/manifest": "^2.0.3",
- "phar-io/version": "^3.0.2",
+ "myclabs/deep-copy": "^1.12.0",
+ "phar-io/manifest": "^2.0.4",
+ "phar-io/version": "^3.2.1",
"php": ">=7.3",
- "phpunit/php-code-coverage": "^9.2.28",
- "phpunit/php-file-iterator": "^3.0.5",
+ "phpunit/php-code-coverage": "^9.2.31",
+ "phpunit/php-file-iterator": "^3.0.6",
"phpunit/php-invoker": "^3.1.1",
- "phpunit/php-text-template": "^2.0.3",
- "phpunit/php-timer": "^5.0.2",
- "sebastian/cli-parser": "^1.0.1",
- "sebastian/code-unit": "^1.0.6",
+ "phpunit/php-text-template": "^2.0.4",
+ "phpunit/php-timer": "^5.0.3",
+ "sebastian/cli-parser": "^1.0.2",
+ "sebastian/code-unit": "^1.0.8",
"sebastian/comparator": "^4.0.8",
- "sebastian/diff": "^4.0.3",
- "sebastian/environment": "^5.1.3",
- "sebastian/exporter": "^4.0.5",
- "sebastian/global-state": "^5.0.1",
- "sebastian/object-enumerator": "^4.0.3",
- "sebastian/resource-operations": "^3.0.3",
- "sebastian/type": "^3.2",
+ "sebastian/diff": "^4.0.6",
+ "sebastian/environment": "^5.1.5",
+ "sebastian/exporter": "^4.0.6",
+ "sebastian/global-state": "^5.0.7",
+ "sebastian/object-enumerator": "^4.0.4",
+ "sebastian/resource-operations": "^3.0.4",
+ "sebastian/type": "^3.2.1",
"sebastian/version": "^3.0.2"
},
"suggest": {
@@ -8216,7 +8542,7 @@
"support": {
"issues": "https://github.com/sebastianbergmann/phpunit/issues",
"security": "https://github.com/sebastianbergmann/phpunit/security/policy",
- "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.13"
+ "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.20"
},
"funding": [
{
@@ -8232,20 +8558,20 @@
"type": "tidelift"
}
],
- "time": "2023-09-19T05:39:22+00:00"
+ "time": "2024-07-10T11:45:39+00:00"
},
{
"name": "sebastian/cli-parser",
- "version": "1.0.1",
+ "version": "1.0.2",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/cli-parser.git",
- "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2"
+ "reference": "2b56bea83a09de3ac06bb18b92f068e60cc6f50b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/442e7c7e687e42adc03470c7b668bc4b2402c0b2",
- "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2",
+ "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/2b56bea83a09de3ac06bb18b92f068e60cc6f50b",
+ "reference": "2b56bea83a09de3ac06bb18b92f068e60cc6f50b",
"shasum": ""
},
"require": {
@@ -8280,7 +8606,7 @@
"homepage": "https://github.com/sebastianbergmann/cli-parser",
"support": {
"issues": "https://github.com/sebastianbergmann/cli-parser/issues",
- "source": "https://github.com/sebastianbergmann/cli-parser/tree/1.0.1"
+ "source": "https://github.com/sebastianbergmann/cli-parser/tree/1.0.2"
},
"funding": [
{
@@ -8288,7 +8614,7 @@
"type": "github"
}
],
- "time": "2020-09-28T06:08:49+00:00"
+ "time": "2024-03-02T06:27:43+00:00"
},
{
"name": "sebastian/code-unit",
@@ -8477,20 +8803,20 @@
},
{
"name": "sebastian/complexity",
- "version": "2.0.2",
+ "version": "2.0.3",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/complexity.git",
- "reference": "739b35e53379900cc9ac327b2147867b8b6efd88"
+ "reference": "25f207c40d62b8b7aa32f5ab026c53561964053a"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/739b35e53379900cc9ac327b2147867b8b6efd88",
- "reference": "739b35e53379900cc9ac327b2147867b8b6efd88",
+ "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/25f207c40d62b8b7aa32f5ab026c53561964053a",
+ "reference": "25f207c40d62b8b7aa32f5ab026c53561964053a",
"shasum": ""
},
"require": {
- "nikic/php-parser": "^4.7",
+ "nikic/php-parser": "^4.18 || ^5.0",
"php": ">=7.3"
},
"require-dev": {
@@ -8522,7 +8848,7 @@
"homepage": "https://github.com/sebastianbergmann/complexity",
"support": {
"issues": "https://github.com/sebastianbergmann/complexity/issues",
- "source": "https://github.com/sebastianbergmann/complexity/tree/2.0.2"
+ "source": "https://github.com/sebastianbergmann/complexity/tree/2.0.3"
},
"funding": [
{
@@ -8530,20 +8856,20 @@
"type": "github"
}
],
- "time": "2020-10-26T15:52:27+00:00"
+ "time": "2023-12-22T06:19:30+00:00"
},
{
"name": "sebastian/diff",
- "version": "4.0.5",
+ "version": "4.0.6",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/diff.git",
- "reference": "74be17022044ebaaecfdf0c5cd504fc9cd5a7131"
+ "reference": "ba01945089c3a293b01ba9badc29ad55b106b0bc"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/74be17022044ebaaecfdf0c5cd504fc9cd5a7131",
- "reference": "74be17022044ebaaecfdf0c5cd504fc9cd5a7131",
+ "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/ba01945089c3a293b01ba9badc29ad55b106b0bc",
+ "reference": "ba01945089c3a293b01ba9badc29ad55b106b0bc",
"shasum": ""
},
"require": {
@@ -8588,7 +8914,7 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/diff/issues",
- "source": "https://github.com/sebastianbergmann/diff/tree/4.0.5"
+ "source": "https://github.com/sebastianbergmann/diff/tree/4.0.6"
},
"funding": [
{
@@ -8596,7 +8922,7 @@
"type": "github"
}
],
- "time": "2023-05-07T05:35:17+00:00"
+ "time": "2024-03-02T06:30:58+00:00"
},
{
"name": "sebastian/environment",
@@ -8663,16 +8989,16 @@
},
{
"name": "sebastian/exporter",
- "version": "4.0.5",
+ "version": "4.0.6",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/exporter.git",
- "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d"
+ "reference": "78c00df8f170e02473b682df15bfcdacc3d32d72"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d",
- "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d",
+ "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/78c00df8f170e02473b682df15bfcdacc3d32d72",
+ "reference": "78c00df8f170e02473b682df15bfcdacc3d32d72",
"shasum": ""
},
"require": {
@@ -8728,7 +9054,7 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/exporter/issues",
- "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.5"
+ "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.6"
},
"funding": [
{
@@ -8736,20 +9062,20 @@
"type": "github"
}
],
- "time": "2022-09-14T06:03:37+00:00"
+ "time": "2024-03-02T06:33:00+00:00"
},
{
"name": "sebastian/global-state",
- "version": "5.0.6",
+ "version": "5.0.7",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/global-state.git",
- "reference": "bde739e7565280bda77be70044ac1047bc007e34"
+ "reference": "bca7df1f32ee6fe93b4d4a9abbf69e13a4ada2c9"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bde739e7565280bda77be70044ac1047bc007e34",
- "reference": "bde739e7565280bda77be70044ac1047bc007e34",
+ "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bca7df1f32ee6fe93b4d4a9abbf69e13a4ada2c9",
+ "reference": "bca7df1f32ee6fe93b4d4a9abbf69e13a4ada2c9",
"shasum": ""
},
"require": {
@@ -8792,7 +9118,7 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/global-state/issues",
- "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.6"
+ "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.7"
},
"funding": [
{
@@ -8800,24 +9126,24 @@
"type": "github"
}
],
- "time": "2023-08-02T09:26:13+00:00"
+ "time": "2024-03-02T06:35:11+00:00"
},
{
"name": "sebastian/lines-of-code",
- "version": "1.0.3",
+ "version": "1.0.4",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/lines-of-code.git",
- "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc"
+ "reference": "e1e4a170560925c26d424b6a03aed157e7dcc5c5"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/c1c2e997aa3146983ed888ad08b15470a2e22ecc",
- "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc",
+ "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/e1e4a170560925c26d424b6a03aed157e7dcc5c5",
+ "reference": "e1e4a170560925c26d424b6a03aed157e7dcc5c5",
"shasum": ""
},
"require": {
- "nikic/php-parser": "^4.6",
+ "nikic/php-parser": "^4.18 || ^5.0",
"php": ">=7.3"
},
"require-dev": {
@@ -8849,7 +9175,7 @@
"homepage": "https://github.com/sebastianbergmann/lines-of-code",
"support": {
"issues": "https://github.com/sebastianbergmann/lines-of-code/issues",
- "source": "https://github.com/sebastianbergmann/lines-of-code/tree/1.0.3"
+ "source": "https://github.com/sebastianbergmann/lines-of-code/tree/1.0.4"
},
"funding": [
{
@@ -8857,7 +9183,7 @@
"type": "github"
}
],
- "time": "2020-11-28T06:42:11+00:00"
+ "time": "2023-12-22T06:20:34+00:00"
},
{
"name": "sebastian/object-enumerator",
@@ -9036,16 +9362,16 @@
},
{
"name": "sebastian/resource-operations",
- "version": "3.0.3",
+ "version": "3.0.4",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/resource-operations.git",
- "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8"
+ "reference": "05d5692a7993ecccd56a03e40cd7e5b09b1d404e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8",
- "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8",
+ "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/05d5692a7993ecccd56a03e40cd7e5b09b1d404e",
+ "reference": "05d5692a7993ecccd56a03e40cd7e5b09b1d404e",
"shasum": ""
},
"require": {
@@ -9057,7 +9383,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "3.0-dev"
+ "dev-main": "3.0-dev"
}
},
"autoload": {
@@ -9078,8 +9404,7 @@
"description": "Provides a list of PHP built-in functions that operate on resources",
"homepage": "https://www.github.com/sebastianbergmann/resource-operations",
"support": {
- "issues": "https://github.com/sebastianbergmann/resource-operations/issues",
- "source": "https://github.com/sebastianbergmann/resource-operations/tree/3.0.3"
+ "source": "https://github.com/sebastianbergmann/resource-operations/tree/3.0.4"
},
"funding": [
{
@@ -9087,7 +9412,7 @@
"type": "github"
}
],
- "time": "2020-09-28T06:45:17+00:00"
+ "time": "2024-03-14T16:00:52+00:00"
},
{
"name": "sebastian/type",
@@ -9200,16 +9525,16 @@
},
{
"name": "theseer/tokenizer",
- "version": "1.2.1",
+ "version": "1.2.3",
"source": {
"type": "git",
"url": "https://github.com/theseer/tokenizer.git",
- "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e"
+ "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/theseer/tokenizer/zipball/34a41e998c2183e22995f158c581e7b5e755ab9e",
- "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e",
+ "url": "https://api.github.com/repos/theseer/tokenizer/zipball/737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2",
+ "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2",
"shasum": ""
},
"require": {
@@ -9238,7 +9563,7 @@
"description": "A small library for converting tokenized PHP source code into XML and potentially other formats",
"support": {
"issues": "https://github.com/theseer/tokenizer/issues",
- "source": "https://github.com/theseer/tokenizer/tree/1.2.1"
+ "source": "https://github.com/theseer/tokenizer/tree/1.2.3"
},
"funding": [
{
@@ -9246,7 +9571,7 @@
"type": "github"
}
],
- "time": "2021-07-28T10:34:58+00:00"
+ "time": "2024-03-03T12:36:25+00:00"
}
],
"aliases": [],
diff --git a/package-lock.json b/package-lock.json
index 4f4ff17..cfc2f06 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -16,6 +16,7 @@
"@fortawesome/vue-fontawesome": "^3.0.0-5",
"@inertiajs/inertia": "^0.11.1",
"@inertiajs/inertia-vue3": "^0.6.0",
+ "@vueuse/core": "^11.0.1",
"nprogress": "^0.2.0",
"postcss-import": "^15.0.0",
"vue": "^3.2.41",
@@ -2364,6 +2365,12 @@
"integrity": "sha512-AZU7vQcy/4WFEuwnwsNsJnFwupIpbllH1++LXScN6uxT1Z4zPzdrWG97w4/I7eFKFTvfy/bHFStWjdBAg2Vjug==",
"dev": true
},
+ "node_modules/@types/web-bluetooth": {
+ "version": "0.0.20",
+ "resolved": "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.20.tgz",
+ "integrity": "sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==",
+ "license": "MIT"
+ },
"node_modules/@types/ws": {
"version": "8.5.3",
"resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.3.tgz",
@@ -2475,6 +2482,94 @@
"resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.41.tgz",
"integrity": "sha512-W9mfWLHmJhkfAmV+7gDjcHeAWALQtgGT3JErxULl0oz6R6+3ug91I7IErs93eCFhPCZPHBs4QJS7YWEV7A3sxw=="
},
+ "node_modules/@vueuse/core": {
+ "version": "11.0.1",
+ "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-11.0.1.tgz",
+ "integrity": "sha512-YTrekI18WwEyP3h168Fir94G/HNC27wvXJI21Alm0sPOwvhihfkrvHIe+5PNJq+MpgWdRcsjvE/38JaoKrgZhQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/web-bluetooth": "^0.0.20",
+ "@vueuse/metadata": "11.0.1",
+ "@vueuse/shared": "11.0.1",
+ "vue-demi": ">=0.14.10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/antfu"
+ }
+ },
+ "node_modules/@vueuse/core/node_modules/vue-demi": {
+ "version": "0.14.10",
+ "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.10.tgz",
+ "integrity": "sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==",
+ "hasInstallScript": true,
+ "license": "MIT",
+ "bin": {
+ "vue-demi-fix": "bin/vue-demi-fix.js",
+ "vue-demi-switch": "bin/vue-demi-switch.js"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/antfu"
+ },
+ "peerDependencies": {
+ "@vue/composition-api": "^1.0.0-rc.1",
+ "vue": "^3.0.0-0 || ^2.6.0"
+ },
+ "peerDependenciesMeta": {
+ "@vue/composition-api": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@vueuse/metadata": {
+ "version": "11.0.1",
+ "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-11.0.1.tgz",
+ "integrity": "sha512-dTFvuHFAjLYOiSd+t9Sk7xUiuL6jbfay/eX+g+jaipXXlwKur2VCqBCZX+jfu+2vROUGcUsdn3fJR9KkpadIOg==",
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/antfu"
+ }
+ },
+ "node_modules/@vueuse/shared": {
+ "version": "11.0.1",
+ "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-11.0.1.tgz",
+ "integrity": "sha512-eAPf5CQB3HR0S76HqrhjBqFYstZfiHWZq8xF9EQmobGBkrhPfErJEhr8aMNQMqd6MkENIx2pblIEfJGlHpClug==",
+ "license": "MIT",
+ "dependencies": {
+ "vue-demi": ">=0.14.10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/antfu"
+ }
+ },
+ "node_modules/@vueuse/shared/node_modules/vue-demi": {
+ "version": "0.14.10",
+ "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.10.tgz",
+ "integrity": "sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==",
+ "hasInstallScript": true,
+ "license": "MIT",
+ "bin": {
+ "vue-demi-fix": "bin/vue-demi-fix.js",
+ "vue-demi-switch": "bin/vue-demi-switch.js"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/antfu"
+ },
+ "peerDependencies": {
+ "@vue/composition-api": "^1.0.0-rc.1",
+ "vue": "^3.0.0-0 || ^2.6.0"
+ },
+ "peerDependenciesMeta": {
+ "@vue/composition-api": {
+ "optional": true
+ }
+ }
+ },
"node_modules/@webassemblyjs/ast": {
"version": "1.11.1",
"resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz",
@@ -12408,6 +12503,11 @@
"integrity": "sha512-AZU7vQcy/4WFEuwnwsNsJnFwupIpbllH1++LXScN6uxT1Z4zPzdrWG97w4/I7eFKFTvfy/bHFStWjdBAg2Vjug==",
"dev": true
},
+ "@types/web-bluetooth": {
+ "version": "0.0.20",
+ "resolved": "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.20.tgz",
+ "integrity": "sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow=="
+ },
"@types/ws": {
"version": "8.5.3",
"resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.3.tgz",
@@ -12516,6 +12616,46 @@
"resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.41.tgz",
"integrity": "sha512-W9mfWLHmJhkfAmV+7gDjcHeAWALQtgGT3JErxULl0oz6R6+3ug91I7IErs93eCFhPCZPHBs4QJS7YWEV7A3sxw=="
},
+ "@vueuse/core": {
+ "version": "11.0.1",
+ "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-11.0.1.tgz",
+ "integrity": "sha512-YTrekI18WwEyP3h168Fir94G/HNC27wvXJI21Alm0sPOwvhihfkrvHIe+5PNJq+MpgWdRcsjvE/38JaoKrgZhQ==",
+ "requires": {
+ "@types/web-bluetooth": "^0.0.20",
+ "@vueuse/metadata": "11.0.1",
+ "@vueuse/shared": "11.0.1",
+ "vue-demi": ">=0.14.10"
+ },
+ "dependencies": {
+ "vue-demi": {
+ "version": "0.14.10",
+ "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.10.tgz",
+ "integrity": "sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==",
+ "requires": {}
+ }
+ }
+ },
+ "@vueuse/metadata": {
+ "version": "11.0.1",
+ "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-11.0.1.tgz",
+ "integrity": "sha512-dTFvuHFAjLYOiSd+t9Sk7xUiuL6jbfay/eX+g+jaipXXlwKur2VCqBCZX+jfu+2vROUGcUsdn3fJR9KkpadIOg=="
+ },
+ "@vueuse/shared": {
+ "version": "11.0.1",
+ "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-11.0.1.tgz",
+ "integrity": "sha512-eAPf5CQB3HR0S76HqrhjBqFYstZfiHWZq8xF9EQmobGBkrhPfErJEhr8aMNQMqd6MkENIx2pblIEfJGlHpClug==",
+ "requires": {
+ "vue-demi": ">=0.14.10"
+ },
+ "dependencies": {
+ "vue-demi": {
+ "version": "0.14.10",
+ "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.10.tgz",
+ "integrity": "sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==",
+ "requires": {}
+ }
+ }
+ },
"@webassemblyjs/ast": {
"version": "1.11.1",
"resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz",
diff --git a/package.json b/package.json
index bf82a60..c1173a7 100644
--- a/package.json
+++ b/package.json
@@ -4,8 +4,8 @@
"version": "2.0.0",
"license": "MIT",
"repository": {
- "type": "git",
- "url": "https://github.com/fsr5-fhaachen/strichlistensystem"
+ "type": "git",
+ "url": "https://github.com/fsr5-fhaachen/strichlistensystem"
},
"scripts": {
"dev": "npm run development",
@@ -35,6 +35,7 @@
"@fortawesome/vue-fontawesome": "^3.0.0-5",
"@inertiajs/inertia": "^0.11.1",
"@inertiajs/inertia-vue3": "^0.6.0",
+ "@vueuse/core": "^11.0.1",
"nprogress": "^0.2.0",
"postcss-import": "^15.0.0",
"vue": "^3.2.41",
diff --git a/public/js/app.js b/public/js/app.js
index 3b292dd..7e25894 100644
--- a/public/js/app.js
+++ b/public/js/app.js
@@ -20650,6 +20650,53 @@ __webpack_require__.r(__webpack_exports__);
/***/ }),
+/***/ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/components/PersonAvatar.vue?vue&type=script&lang=js":
+/*!******************************************************************************************************************************************************************************************************!*\
+ !*** ./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/components/PersonAvatar.vue?vue&type=script&lang=js ***!
+ \******************************************************************************************************************************************************************************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
+/* harmony export */ });
+/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.esm-bundler.js");
+/* harmony import */ var _vueuse_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @vueuse/core */ "./node_modules/@vueuse/core/index.mjs");
+
+
+/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,vue__WEBPACK_IMPORTED_MODULE_0__.defineComponent)({
+ name: "PersonAvatar",
+ props: {
+ person: {
+ type: Object,
+ required: true
+ }
+ },
+ setup: function setup(props) {
+ var target = (0,vue__WEBPACK_IMPORTED_MODULE_0__.ref)();
+ var targetIsVisible = (0,_vueuse_core__WEBPACK_IMPORTED_MODULE_1__.useElementVisibility)(target);
+ var targetWasVisibleOnce = (0,vue__WEBPACK_IMPORTED_MODULE_0__.ref)(false);
+ var imageUrl = (0,vue__WEBPACK_IMPORTED_MODULE_0__.ref)();
+ (0,vue__WEBPACK_IMPORTED_MODULE_0__.watch)(targetIsVisible, function () {
+ if (!targetWasVisibleOnce.value && targetIsVisible) {
+ targetWasVisibleOnce.value = true;
+
+ // get image from backend for current person object (can be presigned url or path to default image)
+ imageUrl.value = props.person.image;
+ }
+ });
+ return {
+ target: target,
+ targetIsVisible: targetIsVisible,
+ targetWasVisibleOnce: targetWasVisibleOnce,
+ imageUrl: imageUrl
+ };
+ }
+}));
+
+/***/ }),
+
/***/ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/components/PersonBadge.vue?vue&type=script&lang=js":
/*!*****************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/components/PersonBadge.vue?vue&type=script&lang=js ***!
@@ -20691,12 +20738,15 @@ __webpack_require__.r(__webpack_exports__);
/* harmony export */ });
/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.esm-bundler.js");
/* harmony import */ var _PersonBadge_vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./PersonBadge.vue */ "./resources/js/components/PersonBadge.vue");
+/* harmony import */ var _PersonAvatar_vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./PersonAvatar.vue */ "./resources/js/components/PersonAvatar.vue");
+
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,vue__WEBPACK_IMPORTED_MODULE_0__.defineComponent)({
name: "PersonCard",
components: {
- PersonBadge: _PersonBadge_vue__WEBPACK_IMPORTED_MODULE_1__["default"]
+ PersonBadge: _PersonBadge_vue__WEBPACK_IMPORTED_MODULE_1__["default"],
+ PersonAvatar: _PersonAvatar_vue__WEBPACK_IMPORTED_MODULE_2__["default"]
},
props: {
person: {
@@ -21151,6 +21201,38 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
/***/ }),
+/***/ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/components/PersonAvatar.vue?vue&type=template&id=123a1c0e":
+/*!**********************************************************************************************************************************************************************************************************************************************************************************!*\
+ !*** ./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/components/PersonAvatar.vue?vue&type=template&id=123a1c0e ***!
+ \**********************************************************************************************************************************************************************************************************************************************************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ "render": () => (/* binding */ render)
+/* harmony export */ });
+/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.esm-bundler.js");
+
+var _hoisted_1 = {
+ ref: "target"
+};
+var _hoisted_2 = ["src"];
+var _hoisted_3 = {
+ key: 1,
+ "class": "w-full rounded-lg h-52 bg-gray-900 animate-pulse"
+};
+function render(_ctx, _cache, $props, $setup, $data, $options) {
+ return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)("div", _hoisted_1, [_ctx.targetWasVisibleOnce ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)("img", {
+ key: 0,
+ src: _ctx.imageUrl,
+ "class": "w-full rounded-lg",
+ loading: "lazy"
+ }, null, 8 /* PROPS */, _hoisted_2)) : ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)("div", _hoisted_3))], 512 /* NEED_PATCH */);
+}
+
+/***/ }),
+
/***/ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/components/PersonBadge.vue?vue&type=template&id=7e588133":
/*!*********************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/components/PersonBadge.vue?vue&type=template&id=7e588133 ***!
@@ -21191,25 +21273,23 @@ __webpack_require__.r(__webpack_exports__);
var _hoisted_1 = {
"class": "flex-grow"
};
-var _hoisted_2 = ["src"];
-var _hoisted_3 = {
+var _hoisted_2 = {
"class": "text-lg text-center"
};
-var _hoisted_4 = {
+var _hoisted_3 = {
"class": "text-lg text-center"
};
-var _hoisted_5 = {
+var _hoisted_4 = {
"class": "flex gap-2 justify-center"
};
function render(_ctx, _cache, $props, $setup, $data, $options) {
+ var _component_PersonAvatar = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)("PersonAvatar");
var _component_PersonBadge = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)("PersonBadge");
return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)("div", {
"class": (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)(["bg-gray-100 border-gray-500 dark:bg-gray-800 dark:border-gray-900 border-2 w-full rounded-lg p-3 flex flex-col gap-2", _ctx.borderColor])
- }, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_1, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("img", {
- src: _ctx.person.image,
- "class": "w-full rounded-lg",
- loading: "lazy"
- }, null, 8 /* PROPS */, _hoisted_2)]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", null, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("h1", _hoisted_3, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(_ctx.person.firstname), 1 /* TEXT */), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("h1", _hoisted_4, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(_ctx.person.lastname), 1 /* TEXT */)]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_5, [_ctx.person.course == 'INF' ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(_component_PersonBadge, {
+ }, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_1, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_PersonAvatar, {
+ person: _ctx.person
+ }, null, 8 /* PROPS */, ["person"])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", null, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("h1", _hoisted_2, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(_ctx.person.firstname), 1 /* TEXT */), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("h1", _hoisted_3, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(_ctx.person.lastname), 1 /* TEXT */)]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_4, [_ctx.person.course == 'INF' ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(_component_PersonBadge, {
key: 0,
bgColor: "bg-blue-500",
icon: ['fas', 'code']
@@ -33203,13 +33283,13 @@ __webpack_require__.r(__webpack_exports__);
/* harmony export */ });
/* harmony import */ var _Error_vue_vue_type_template_id_79269821__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Error.vue?vue&type=template&id=79269821 */ "./resources/js/Pages/App/Error.vue?vue&type=template&id=79269821");
/* harmony import */ var _Error_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Error.vue?vue&type=script&lang=js */ "./resources/js/Pages/App/Error.vue?vue&type=script&lang=js");
-/* harmony import */ var _root_projects_comGithub_fsr5_fhaachen_strichlistensystem_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./node_modules/vue-loader/dist/exportHelper.js */ "./node_modules/vue-loader/dist/exportHelper.js");
+/* harmony import */ var _var_www_html_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./node_modules/vue-loader/dist/exportHelper.js */ "./node_modules/vue-loader/dist/exportHelper.js");
;
-const __exports__ = /*#__PURE__*/(0,_root_projects_comGithub_fsr5_fhaachen_strichlistensystem_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__["default"])(_Error_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__["default"], [['render',_Error_vue_vue_type_template_id_79269821__WEBPACK_IMPORTED_MODULE_0__.render],['__file',"resources/js/Pages/App/Error.vue"]])
+const __exports__ = /*#__PURE__*/(0,_var_www_html_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__["default"])(_Error_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__["default"], [['render',_Error_vue_vue_type_template_id_79269821__WEBPACK_IMPORTED_MODULE_0__.render],['__file',"resources/js/Pages/App/Error.vue"]])
/* hot reload */
if (false) {}
@@ -33231,13 +33311,13 @@ __webpack_require__.r(__webpack_exports__);
/* harmony export */ });
/* harmony import */ var _Index_vue_vue_type_template_id_356079eb__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Index.vue?vue&type=template&id=356079eb */ "./resources/js/Pages/App/Index.vue?vue&type=template&id=356079eb");
/* harmony import */ var _Index_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Index.vue?vue&type=script&lang=js */ "./resources/js/Pages/App/Index.vue?vue&type=script&lang=js");
-/* harmony import */ var _root_projects_comGithub_fsr5_fhaachen_strichlistensystem_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./node_modules/vue-loader/dist/exportHelper.js */ "./node_modules/vue-loader/dist/exportHelper.js");
+/* harmony import */ var _var_www_html_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./node_modules/vue-loader/dist/exportHelper.js */ "./node_modules/vue-loader/dist/exportHelper.js");
;
-const __exports__ = /*#__PURE__*/(0,_root_projects_comGithub_fsr5_fhaachen_strichlistensystem_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__["default"])(_Index_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__["default"], [['render',_Index_vue_vue_type_template_id_356079eb__WEBPACK_IMPORTED_MODULE_0__.render],['__file',"resources/js/Pages/App/Index.vue"]])
+const __exports__ = /*#__PURE__*/(0,_var_www_html_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__["default"])(_Index_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__["default"], [['render',_Index_vue_vue_type_template_id_356079eb__WEBPACK_IMPORTED_MODULE_0__.render],['__file',"resources/js/Pages/App/Index.vue"]])
/* hot reload */
if (false) {}
@@ -33259,13 +33339,13 @@ __webpack_require__.r(__webpack_exports__);
/* harmony export */ });
/* harmony import */ var _Logout_vue_vue_type_template_id_2f0c8bc1__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Logout.vue?vue&type=template&id=2f0c8bc1 */ "./resources/js/Pages/App/Logout.vue?vue&type=template&id=2f0c8bc1");
/* harmony import */ var _Logout_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Logout.vue?vue&type=script&lang=js */ "./resources/js/Pages/App/Logout.vue?vue&type=script&lang=js");
-/* harmony import */ var _root_projects_comGithub_fsr5_fhaachen_strichlistensystem_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./node_modules/vue-loader/dist/exportHelper.js */ "./node_modules/vue-loader/dist/exportHelper.js");
+/* harmony import */ var _var_www_html_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./node_modules/vue-loader/dist/exportHelper.js */ "./node_modules/vue-loader/dist/exportHelper.js");
;
-const __exports__ = /*#__PURE__*/(0,_root_projects_comGithub_fsr5_fhaachen_strichlistensystem_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__["default"])(_Logout_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__["default"], [['render',_Logout_vue_vue_type_template_id_2f0c8bc1__WEBPACK_IMPORTED_MODULE_0__.render],['__file',"resources/js/Pages/App/Logout.vue"]])
+const __exports__ = /*#__PURE__*/(0,_var_www_html_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__["default"])(_Logout_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__["default"], [['render',_Logout_vue_vue_type_template_id_2f0c8bc1__WEBPACK_IMPORTED_MODULE_0__.render],['__file',"resources/js/Pages/App/Logout.vue"]])
/* hot reload */
if (false) {}
@@ -33287,13 +33367,13 @@ __webpack_require__.r(__webpack_exports__);
/* harmony export */ });
/* harmony import */ var _Show_vue_vue_type_template_id_111b06fe__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Show.vue?vue&type=template&id=111b06fe */ "./resources/js/Pages/Person/Show.vue?vue&type=template&id=111b06fe");
/* harmony import */ var _Show_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Show.vue?vue&type=script&lang=js */ "./resources/js/Pages/Person/Show.vue?vue&type=script&lang=js");
-/* harmony import */ var _root_projects_comGithub_fsr5_fhaachen_strichlistensystem_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./node_modules/vue-loader/dist/exportHelper.js */ "./node_modules/vue-loader/dist/exportHelper.js");
+/* harmony import */ var _var_www_html_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./node_modules/vue-loader/dist/exportHelper.js */ "./node_modules/vue-loader/dist/exportHelper.js");
;
-const __exports__ = /*#__PURE__*/(0,_root_projects_comGithub_fsr5_fhaachen_strichlistensystem_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__["default"])(_Show_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__["default"], [['render',_Show_vue_vue_type_template_id_111b06fe__WEBPACK_IMPORTED_MODULE_0__.render],['__file',"resources/js/Pages/Person/Show.vue"]])
+const __exports__ = /*#__PURE__*/(0,_var_www_html_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__["default"])(_Show_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__["default"], [['render',_Show_vue_vue_type_template_id_111b06fe__WEBPACK_IMPORTED_MODULE_0__.render],['__file',"resources/js/Pages/Person/Show.vue"]])
/* hot reload */
if (false) {}
@@ -33315,13 +33395,13 @@ __webpack_require__.r(__webpack_exports__);
/* harmony export */ });
/* harmony import */ var _AppButton_vue_vue_type_template_id_c9506d50__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AppButton.vue?vue&type=template&id=c9506d50 */ "./resources/js/components/AppButton.vue?vue&type=template&id=c9506d50");
/* harmony import */ var _AppButton_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AppButton.vue?vue&type=script&lang=js */ "./resources/js/components/AppButton.vue?vue&type=script&lang=js");
-/* harmony import */ var _root_projects_comGithub_fsr5_fhaachen_strichlistensystem_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./node_modules/vue-loader/dist/exportHelper.js */ "./node_modules/vue-loader/dist/exportHelper.js");
+/* harmony import */ var _var_www_html_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./node_modules/vue-loader/dist/exportHelper.js */ "./node_modules/vue-loader/dist/exportHelper.js");
;
-const __exports__ = /*#__PURE__*/(0,_root_projects_comGithub_fsr5_fhaachen_strichlistensystem_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__["default"])(_AppButton_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__["default"], [['render',_AppButton_vue_vue_type_template_id_c9506d50__WEBPACK_IMPORTED_MODULE_0__.render],['__file',"resources/js/components/AppButton.vue"]])
+const __exports__ = /*#__PURE__*/(0,_var_www_html_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__["default"])(_AppButton_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__["default"], [['render',_AppButton_vue_vue_type_template_id_c9506d50__WEBPACK_IMPORTED_MODULE_0__.render],['__file',"resources/js/components/AppButton.vue"]])
/* hot reload */
if (false) {}
@@ -33343,13 +33423,13 @@ __webpack_require__.r(__webpack_exports__);
/* harmony export */ });
/* harmony import */ var _ArticleCard_vue_vue_type_template_id_26f16dea__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ArticleCard.vue?vue&type=template&id=26f16dea */ "./resources/js/components/ArticleCard.vue?vue&type=template&id=26f16dea");
/* harmony import */ var _ArticleCard_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ArticleCard.vue?vue&type=script&lang=js */ "./resources/js/components/ArticleCard.vue?vue&type=script&lang=js");
-/* harmony import */ var _root_projects_comGithub_fsr5_fhaachen_strichlistensystem_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./node_modules/vue-loader/dist/exportHelper.js */ "./node_modules/vue-loader/dist/exportHelper.js");
+/* harmony import */ var _var_www_html_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./node_modules/vue-loader/dist/exportHelper.js */ "./node_modules/vue-loader/dist/exportHelper.js");
;
-const __exports__ = /*#__PURE__*/(0,_root_projects_comGithub_fsr5_fhaachen_strichlistensystem_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__["default"])(_ArticleCard_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__["default"], [['render',_ArticleCard_vue_vue_type_template_id_26f16dea__WEBPACK_IMPORTED_MODULE_0__.render],['__file',"resources/js/components/ArticleCard.vue"]])
+const __exports__ = /*#__PURE__*/(0,_var_www_html_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__["default"])(_ArticleCard_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__["default"], [['render',_ArticleCard_vue_vue_type_template_id_26f16dea__WEBPACK_IMPORTED_MODULE_0__.render],['__file',"resources/js/components/ArticleCard.vue"]])
/* hot reload */
if (false) {}
@@ -33371,13 +33451,41 @@ __webpack_require__.r(__webpack_exports__);
/* harmony export */ });
/* harmony import */ var _LayoutContainer_vue_vue_type_template_id_286f4d48__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./LayoutContainer.vue?vue&type=template&id=286f4d48 */ "./resources/js/components/LayoutContainer.vue?vue&type=template&id=286f4d48");
/* harmony import */ var _LayoutContainer_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./LayoutContainer.vue?vue&type=script&lang=js */ "./resources/js/components/LayoutContainer.vue?vue&type=script&lang=js");
-/* harmony import */ var _root_projects_comGithub_fsr5_fhaachen_strichlistensystem_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./node_modules/vue-loader/dist/exportHelper.js */ "./node_modules/vue-loader/dist/exportHelper.js");
+/* harmony import */ var _var_www_html_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./node_modules/vue-loader/dist/exportHelper.js */ "./node_modules/vue-loader/dist/exportHelper.js");
+
+
+
+
+;
+const __exports__ = /*#__PURE__*/(0,_var_www_html_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__["default"])(_LayoutContainer_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__["default"], [['render',_LayoutContainer_vue_vue_type_template_id_286f4d48__WEBPACK_IMPORTED_MODULE_0__.render],['__file',"resources/js/components/LayoutContainer.vue"]])
+/* hot reload */
+if (false) {}
+
+
+/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (__exports__);
+
+/***/ }),
+
+/***/ "./resources/js/components/PersonAvatar.vue":
+/*!**************************************************!*\
+ !*** ./resources/js/components/PersonAvatar.vue ***!
+ \**************************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
+/* harmony export */ });
+/* harmony import */ var _PersonAvatar_vue_vue_type_template_id_123a1c0e__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./PersonAvatar.vue?vue&type=template&id=123a1c0e */ "./resources/js/components/PersonAvatar.vue?vue&type=template&id=123a1c0e");
+/* harmony import */ var _PersonAvatar_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./PersonAvatar.vue?vue&type=script&lang=js */ "./resources/js/components/PersonAvatar.vue?vue&type=script&lang=js");
+/* harmony import */ var _var_www_html_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./node_modules/vue-loader/dist/exportHelper.js */ "./node_modules/vue-loader/dist/exportHelper.js");
;
-const __exports__ = /*#__PURE__*/(0,_root_projects_comGithub_fsr5_fhaachen_strichlistensystem_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__["default"])(_LayoutContainer_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__["default"], [['render',_LayoutContainer_vue_vue_type_template_id_286f4d48__WEBPACK_IMPORTED_MODULE_0__.render],['__file',"resources/js/components/LayoutContainer.vue"]])
+const __exports__ = /*#__PURE__*/(0,_var_www_html_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__["default"])(_PersonAvatar_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__["default"], [['render',_PersonAvatar_vue_vue_type_template_id_123a1c0e__WEBPACK_IMPORTED_MODULE_0__.render],['__file',"resources/js/components/PersonAvatar.vue"]])
/* hot reload */
if (false) {}
@@ -33399,13 +33507,13 @@ __webpack_require__.r(__webpack_exports__);
/* harmony export */ });
/* harmony import */ var _PersonBadge_vue_vue_type_template_id_7e588133__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./PersonBadge.vue?vue&type=template&id=7e588133 */ "./resources/js/components/PersonBadge.vue?vue&type=template&id=7e588133");
/* harmony import */ var _PersonBadge_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./PersonBadge.vue?vue&type=script&lang=js */ "./resources/js/components/PersonBadge.vue?vue&type=script&lang=js");
-/* harmony import */ var _root_projects_comGithub_fsr5_fhaachen_strichlistensystem_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./node_modules/vue-loader/dist/exportHelper.js */ "./node_modules/vue-loader/dist/exportHelper.js");
+/* harmony import */ var _var_www_html_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./node_modules/vue-loader/dist/exportHelper.js */ "./node_modules/vue-loader/dist/exportHelper.js");
;
-const __exports__ = /*#__PURE__*/(0,_root_projects_comGithub_fsr5_fhaachen_strichlistensystem_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__["default"])(_PersonBadge_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__["default"], [['render',_PersonBadge_vue_vue_type_template_id_7e588133__WEBPACK_IMPORTED_MODULE_0__.render],['__file',"resources/js/components/PersonBadge.vue"]])
+const __exports__ = /*#__PURE__*/(0,_var_www_html_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__["default"])(_PersonBadge_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__["default"], [['render',_PersonBadge_vue_vue_type_template_id_7e588133__WEBPACK_IMPORTED_MODULE_0__.render],['__file',"resources/js/components/PersonBadge.vue"]])
/* hot reload */
if (false) {}
@@ -33427,13 +33535,13 @@ __webpack_require__.r(__webpack_exports__);
/* harmony export */ });
/* harmony import */ var _PersonCard_vue_vue_type_template_id_6acffa30__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./PersonCard.vue?vue&type=template&id=6acffa30 */ "./resources/js/components/PersonCard.vue?vue&type=template&id=6acffa30");
/* harmony import */ var _PersonCard_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./PersonCard.vue?vue&type=script&lang=js */ "./resources/js/components/PersonCard.vue?vue&type=script&lang=js");
-/* harmony import */ var _root_projects_comGithub_fsr5_fhaachen_strichlistensystem_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./node_modules/vue-loader/dist/exportHelper.js */ "./node_modules/vue-loader/dist/exportHelper.js");
+/* harmony import */ var _var_www_html_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./node_modules/vue-loader/dist/exportHelper.js */ "./node_modules/vue-loader/dist/exportHelper.js");
;
-const __exports__ = /*#__PURE__*/(0,_root_projects_comGithub_fsr5_fhaachen_strichlistensystem_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__["default"])(_PersonCard_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__["default"], [['render',_PersonCard_vue_vue_type_template_id_6acffa30__WEBPACK_IMPORTED_MODULE_0__.render],['__file',"resources/js/components/PersonCard.vue"]])
+const __exports__ = /*#__PURE__*/(0,_var_www_html_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__["default"])(_PersonCard_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__["default"], [['render',_PersonCard_vue_vue_type_template_id_6acffa30__WEBPACK_IMPORTED_MODULE_0__.render],['__file',"resources/js/components/PersonCard.vue"]])
/* hot reload */
if (false) {}
@@ -33552,6 +33660,22 @@ __webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_LayoutContainer_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./LayoutContainer.vue?vue&type=script&lang=js */ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/components/LayoutContainer.vue?vue&type=script&lang=js");
+/***/ }),
+
+/***/ "./resources/js/components/PersonAvatar.vue?vue&type=script&lang=js":
+/*!**************************************************************************!*\
+ !*** ./resources/js/components/PersonAvatar.vue?vue&type=script&lang=js ***!
+ \**************************************************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ "default": () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_PersonAvatar_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__["default"])
+/* harmony export */ });
+/* harmony import */ var _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_PersonAvatar_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./PersonAvatar.vue?vue&type=script&lang=js */ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/components/PersonAvatar.vue?vue&type=script&lang=js");
+
+
/***/ }),
/***/ "./resources/js/components/PersonBadge.vue?vue&type=script&lang=js":
@@ -33696,6 +33820,22 @@ __webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_vue_loader_dist_templateLoader_js_ruleSet_1_rules_2_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_LayoutContainer_vue_vue_type_template_id_286f4d48__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[2]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./LayoutContainer.vue?vue&type=template&id=286f4d48 */ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/components/LayoutContainer.vue?vue&type=template&id=286f4d48");
+/***/ }),
+
+/***/ "./resources/js/components/PersonAvatar.vue?vue&type=template&id=123a1c0e":
+/*!********************************************************************************!*\
+ !*** ./resources/js/components/PersonAvatar.vue?vue&type=template&id=123a1c0e ***!
+ \********************************************************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ "render": () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_vue_loader_dist_templateLoader_js_ruleSet_1_rules_2_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_PersonAvatar_vue_vue_type_template_id_123a1c0e__WEBPACK_IMPORTED_MODULE_0__.render)
+/* harmony export */ });
+/* harmony import */ var _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_vue_loader_dist_templateLoader_js_ruleSet_1_rules_2_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_PersonAvatar_vue_vue_type_template_id_123a1c0e__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[2]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./PersonAvatar.vue?vue&type=template&id=123a1c0e */ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/components/PersonAvatar.vue?vue&type=template&id=123a1c0e");
+
+
/***/ }),
/***/ "./resources/js/components/PersonBadge.vue?vue&type=template&id=7e588133":
@@ -48525,6 +48665,9979 @@ var icons = {
+/***/ }),
+
+/***/ "./node_modules/@vueuse/core/index.mjs":
+/*!*********************************************!*\
+ !*** ./node_modules/@vueuse/core/index.mjs ***!
+ \*********************************************/
+/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ "DefaultMagicKeysAliasMap": () => (/* binding */ DefaultMagicKeysAliasMap),
+/* harmony export */ "StorageSerializers": () => (/* binding */ StorageSerializers),
+/* harmony export */ "TransitionPresets": () => (/* binding */ TransitionPresets),
+/* harmony export */ "assert": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.assert),
+/* harmony export */ "asyncComputed": () => (/* binding */ computedAsync),
+/* harmony export */ "autoResetRef": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.autoResetRef),
+/* harmony export */ "breakpointsAntDesign": () => (/* binding */ breakpointsAntDesign),
+/* harmony export */ "breakpointsBootstrapV5": () => (/* binding */ breakpointsBootstrapV5),
+/* harmony export */ "breakpointsMasterCss": () => (/* binding */ breakpointsMasterCss),
+/* harmony export */ "breakpointsPrimeFlex": () => (/* binding */ breakpointsPrimeFlex),
+/* harmony export */ "breakpointsQuasar": () => (/* binding */ breakpointsQuasar),
+/* harmony export */ "breakpointsSematic": () => (/* binding */ breakpointsSematic),
+/* harmony export */ "breakpointsTailwind": () => (/* binding */ breakpointsTailwind),
+/* harmony export */ "breakpointsVuetify": () => (/* binding */ breakpointsVuetify),
+/* harmony export */ "breakpointsVuetifyV2": () => (/* binding */ breakpointsVuetifyV2),
+/* harmony export */ "breakpointsVuetifyV3": () => (/* binding */ breakpointsVuetifyV3),
+/* harmony export */ "bypassFilter": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.bypassFilter),
+/* harmony export */ "camelize": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.camelize),
+/* harmony export */ "clamp": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.clamp),
+/* harmony export */ "cloneFnJSON": () => (/* binding */ cloneFnJSON),
+/* harmony export */ "computedAsync": () => (/* binding */ computedAsync),
+/* harmony export */ "computedEager": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.computedEager),
+/* harmony export */ "computedInject": () => (/* binding */ computedInject),
+/* harmony export */ "computedWithControl": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.computedWithControl),
+/* harmony export */ "containsProp": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.containsProp),
+/* harmony export */ "controlledComputed": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.controlledComputed),
+/* harmony export */ "controlledRef": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.controlledRef),
+/* harmony export */ "createEventHook": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.createEventHook),
+/* harmony export */ "createFetch": () => (/* binding */ createFetch),
+/* harmony export */ "createFilterWrapper": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.createFilterWrapper),
+/* harmony export */ "createGlobalState": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.createGlobalState),
+/* harmony export */ "createInjectionState": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.createInjectionState),
+/* harmony export */ "createReactiveFn": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.createReactiveFn),
+/* harmony export */ "createReusableTemplate": () => (/* binding */ createReusableTemplate),
+/* harmony export */ "createSharedComposable": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.createSharedComposable),
+/* harmony export */ "createSingletonPromise": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.createSingletonPromise),
+/* harmony export */ "createTemplatePromise": () => (/* binding */ createTemplatePromise),
+/* harmony export */ "createUnrefFn": () => (/* binding */ createUnrefFn),
+/* harmony export */ "customStorageEventName": () => (/* binding */ customStorageEventName),
+/* harmony export */ "debounceFilter": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.debounceFilter),
+/* harmony export */ "debouncedRef": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.debouncedRef),
+/* harmony export */ "debouncedWatch": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.debouncedWatch),
+/* harmony export */ "defaultDocument": () => (/* binding */ defaultDocument),
+/* harmony export */ "defaultLocation": () => (/* binding */ defaultLocation),
+/* harmony export */ "defaultNavigator": () => (/* binding */ defaultNavigator),
+/* harmony export */ "defaultWindow": () => (/* binding */ defaultWindow),
+/* harmony export */ "directiveHooks": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.directiveHooks),
+/* harmony export */ "eagerComputed": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.eagerComputed),
+/* harmony export */ "executeTransition": () => (/* binding */ executeTransition),
+/* harmony export */ "extendRef": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.extendRef),
+/* harmony export */ "formatDate": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.formatDate),
+/* harmony export */ "formatTimeAgo": () => (/* binding */ formatTimeAgo),
+/* harmony export */ "get": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.get),
+/* harmony export */ "getLifeCycleTarget": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.getLifeCycleTarget),
+/* harmony export */ "getSSRHandler": () => (/* binding */ getSSRHandler),
+/* harmony export */ "hasOwn": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.hasOwn),
+/* harmony export */ "hyphenate": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.hyphenate),
+/* harmony export */ "identity": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.identity),
+/* harmony export */ "ignorableWatch": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.ignorableWatch),
+/* harmony export */ "increaseWithUnit": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.increaseWithUnit),
+/* harmony export */ "injectLocal": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.injectLocal),
+/* harmony export */ "invoke": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.invoke),
+/* harmony export */ "isClient": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.isClient),
+/* harmony export */ "isDef": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.isDef),
+/* harmony export */ "isDefined": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.isDefined),
+/* harmony export */ "isIOS": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.isIOS),
+/* harmony export */ "isObject": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.isObject),
+/* harmony export */ "isWorker": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.isWorker),
+/* harmony export */ "makeDestructurable": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.makeDestructurable),
+/* harmony export */ "mapGamepadToXbox360Controller": () => (/* binding */ mapGamepadToXbox360Controller),
+/* harmony export */ "noop": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.noop),
+/* harmony export */ "normalizeDate": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.normalizeDate),
+/* harmony export */ "notNullish": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.notNullish),
+/* harmony export */ "now": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.now),
+/* harmony export */ "objectEntries": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.objectEntries),
+/* harmony export */ "objectOmit": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.objectOmit),
+/* harmony export */ "objectPick": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.objectPick),
+/* harmony export */ "onClickOutside": () => (/* binding */ onClickOutside),
+/* harmony export */ "onKeyDown": () => (/* binding */ onKeyDown),
+/* harmony export */ "onKeyPressed": () => (/* binding */ onKeyPressed),
+/* harmony export */ "onKeyStroke": () => (/* binding */ onKeyStroke),
+/* harmony export */ "onKeyUp": () => (/* binding */ onKeyUp),
+/* harmony export */ "onLongPress": () => (/* binding */ onLongPress),
+/* harmony export */ "onStartTyping": () => (/* binding */ onStartTyping),
+/* harmony export */ "pausableFilter": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.pausableFilter),
+/* harmony export */ "pausableWatch": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.pausableWatch),
+/* harmony export */ "promiseTimeout": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.promiseTimeout),
+/* harmony export */ "provideLocal": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.provideLocal),
+/* harmony export */ "rand": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.rand),
+/* harmony export */ "reactify": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.reactify),
+/* harmony export */ "reactifyObject": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.reactifyObject),
+/* harmony export */ "reactiveComputed": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.reactiveComputed),
+/* harmony export */ "reactiveOmit": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.reactiveOmit),
+/* harmony export */ "reactivePick": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.reactivePick),
+/* harmony export */ "refAutoReset": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.refAutoReset),
+/* harmony export */ "refDebounced": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.refDebounced),
+/* harmony export */ "refDefault": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.refDefault),
+/* harmony export */ "refThrottled": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.refThrottled),
+/* harmony export */ "refWithControl": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.refWithControl),
+/* harmony export */ "resolveRef": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.resolveRef),
+/* harmony export */ "resolveUnref": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.resolveUnref),
+/* harmony export */ "set": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.set),
+/* harmony export */ "setSSRHandler": () => (/* binding */ setSSRHandler),
+/* harmony export */ "syncRef": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.syncRef),
+/* harmony export */ "syncRefs": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.syncRefs),
+/* harmony export */ "templateRef": () => (/* binding */ templateRef),
+/* harmony export */ "throttleFilter": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.throttleFilter),
+/* harmony export */ "throttledRef": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.throttledRef),
+/* harmony export */ "throttledWatch": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.throttledWatch),
+/* harmony export */ "timestamp": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.timestamp),
+/* harmony export */ "toReactive": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toReactive),
+/* harmony export */ "toRef": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toRef),
+/* harmony export */ "toRefs": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toRefs),
+/* harmony export */ "toValue": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue),
+/* harmony export */ "tryOnBeforeMount": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.tryOnBeforeMount),
+/* harmony export */ "tryOnBeforeUnmount": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.tryOnBeforeUnmount),
+/* harmony export */ "tryOnMounted": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.tryOnMounted),
+/* harmony export */ "tryOnScopeDispose": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.tryOnScopeDispose),
+/* harmony export */ "tryOnUnmounted": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.tryOnUnmounted),
+/* harmony export */ "unrefElement": () => (/* binding */ unrefElement),
+/* harmony export */ "until": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.until),
+/* harmony export */ "useActiveElement": () => (/* binding */ useActiveElement),
+/* harmony export */ "useAnimate": () => (/* binding */ useAnimate),
+/* harmony export */ "useArrayDifference": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.useArrayDifference),
+/* harmony export */ "useArrayEvery": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.useArrayEvery),
+/* harmony export */ "useArrayFilter": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.useArrayFilter),
+/* harmony export */ "useArrayFind": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.useArrayFind),
+/* harmony export */ "useArrayFindIndex": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.useArrayFindIndex),
+/* harmony export */ "useArrayFindLast": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.useArrayFindLast),
+/* harmony export */ "useArrayIncludes": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.useArrayIncludes),
+/* harmony export */ "useArrayJoin": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.useArrayJoin),
+/* harmony export */ "useArrayMap": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.useArrayMap),
+/* harmony export */ "useArrayReduce": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.useArrayReduce),
+/* harmony export */ "useArraySome": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.useArraySome),
+/* harmony export */ "useArrayUnique": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.useArrayUnique),
+/* harmony export */ "useAsyncQueue": () => (/* binding */ useAsyncQueue),
+/* harmony export */ "useAsyncState": () => (/* binding */ useAsyncState),
+/* harmony export */ "useBase64": () => (/* binding */ useBase64),
+/* harmony export */ "useBattery": () => (/* binding */ useBattery),
+/* harmony export */ "useBluetooth": () => (/* binding */ useBluetooth),
+/* harmony export */ "useBreakpoints": () => (/* binding */ useBreakpoints),
+/* harmony export */ "useBroadcastChannel": () => (/* binding */ useBroadcastChannel),
+/* harmony export */ "useBrowserLocation": () => (/* binding */ useBrowserLocation),
+/* harmony export */ "useCached": () => (/* binding */ useCached),
+/* harmony export */ "useClipboard": () => (/* binding */ useClipboard),
+/* harmony export */ "useClipboardItems": () => (/* binding */ useClipboardItems),
+/* harmony export */ "useCloned": () => (/* binding */ useCloned),
+/* harmony export */ "useColorMode": () => (/* binding */ useColorMode),
+/* harmony export */ "useConfirmDialog": () => (/* binding */ useConfirmDialog),
+/* harmony export */ "useCounter": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.useCounter),
+/* harmony export */ "useCssVar": () => (/* binding */ useCssVar),
+/* harmony export */ "useCurrentElement": () => (/* binding */ useCurrentElement),
+/* harmony export */ "useCycleList": () => (/* binding */ useCycleList),
+/* harmony export */ "useDark": () => (/* binding */ useDark),
+/* harmony export */ "useDateFormat": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.useDateFormat),
+/* harmony export */ "useDebounce": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.useDebounce),
+/* harmony export */ "useDebounceFn": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.useDebounceFn),
+/* harmony export */ "useDebouncedRefHistory": () => (/* binding */ useDebouncedRefHistory),
+/* harmony export */ "useDeviceMotion": () => (/* binding */ useDeviceMotion),
+/* harmony export */ "useDeviceOrientation": () => (/* binding */ useDeviceOrientation),
+/* harmony export */ "useDevicePixelRatio": () => (/* binding */ useDevicePixelRatio),
+/* harmony export */ "useDevicesList": () => (/* binding */ useDevicesList),
+/* harmony export */ "useDisplayMedia": () => (/* binding */ useDisplayMedia),
+/* harmony export */ "useDocumentVisibility": () => (/* binding */ useDocumentVisibility),
+/* harmony export */ "useDraggable": () => (/* binding */ useDraggable),
+/* harmony export */ "useDropZone": () => (/* binding */ useDropZone),
+/* harmony export */ "useElementBounding": () => (/* binding */ useElementBounding),
+/* harmony export */ "useElementByPoint": () => (/* binding */ useElementByPoint),
+/* harmony export */ "useElementHover": () => (/* binding */ useElementHover),
+/* harmony export */ "useElementSize": () => (/* binding */ useElementSize),
+/* harmony export */ "useElementVisibility": () => (/* binding */ useElementVisibility),
+/* harmony export */ "useEventBus": () => (/* binding */ useEventBus),
+/* harmony export */ "useEventListener": () => (/* binding */ useEventListener),
+/* harmony export */ "useEventSource": () => (/* binding */ useEventSource),
+/* harmony export */ "useEyeDropper": () => (/* binding */ useEyeDropper),
+/* harmony export */ "useFavicon": () => (/* binding */ useFavicon),
+/* harmony export */ "useFetch": () => (/* binding */ useFetch),
+/* harmony export */ "useFileDialog": () => (/* binding */ useFileDialog),
+/* harmony export */ "useFileSystemAccess": () => (/* binding */ useFileSystemAccess),
+/* harmony export */ "useFocus": () => (/* binding */ useFocus),
+/* harmony export */ "useFocusWithin": () => (/* binding */ useFocusWithin),
+/* harmony export */ "useFps": () => (/* binding */ useFps),
+/* harmony export */ "useFullscreen": () => (/* binding */ useFullscreen),
+/* harmony export */ "useGamepad": () => (/* binding */ useGamepad),
+/* harmony export */ "useGeolocation": () => (/* binding */ useGeolocation),
+/* harmony export */ "useIdle": () => (/* binding */ useIdle),
+/* harmony export */ "useImage": () => (/* binding */ useImage),
+/* harmony export */ "useInfiniteScroll": () => (/* binding */ useInfiniteScroll),
+/* harmony export */ "useIntersectionObserver": () => (/* binding */ useIntersectionObserver),
+/* harmony export */ "useInterval": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.useInterval),
+/* harmony export */ "useIntervalFn": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.useIntervalFn),
+/* harmony export */ "useKeyModifier": () => (/* binding */ useKeyModifier),
+/* harmony export */ "useLastChanged": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.useLastChanged),
+/* harmony export */ "useLocalStorage": () => (/* binding */ useLocalStorage),
+/* harmony export */ "useMagicKeys": () => (/* binding */ useMagicKeys),
+/* harmony export */ "useManualRefHistory": () => (/* binding */ useManualRefHistory),
+/* harmony export */ "useMediaControls": () => (/* binding */ useMediaControls),
+/* harmony export */ "useMediaQuery": () => (/* binding */ useMediaQuery),
+/* harmony export */ "useMemoize": () => (/* binding */ useMemoize),
+/* harmony export */ "useMemory": () => (/* binding */ useMemory),
+/* harmony export */ "useMounted": () => (/* binding */ useMounted),
+/* harmony export */ "useMouse": () => (/* binding */ useMouse),
+/* harmony export */ "useMouseInElement": () => (/* binding */ useMouseInElement),
+/* harmony export */ "useMousePressed": () => (/* binding */ useMousePressed),
+/* harmony export */ "useMutationObserver": () => (/* binding */ useMutationObserver),
+/* harmony export */ "useNavigatorLanguage": () => (/* binding */ useNavigatorLanguage),
+/* harmony export */ "useNetwork": () => (/* binding */ useNetwork),
+/* harmony export */ "useNow": () => (/* binding */ useNow),
+/* harmony export */ "useObjectUrl": () => (/* binding */ useObjectUrl),
+/* harmony export */ "useOffsetPagination": () => (/* binding */ useOffsetPagination),
+/* harmony export */ "useOnline": () => (/* binding */ useOnline),
+/* harmony export */ "usePageLeave": () => (/* binding */ usePageLeave),
+/* harmony export */ "useParallax": () => (/* binding */ useParallax),
+/* harmony export */ "useParentElement": () => (/* binding */ useParentElement),
+/* harmony export */ "usePerformanceObserver": () => (/* binding */ usePerformanceObserver),
+/* harmony export */ "usePermission": () => (/* binding */ usePermission),
+/* harmony export */ "usePointer": () => (/* binding */ usePointer),
+/* harmony export */ "usePointerLock": () => (/* binding */ usePointerLock),
+/* harmony export */ "usePointerSwipe": () => (/* binding */ usePointerSwipe),
+/* harmony export */ "usePreferredColorScheme": () => (/* binding */ usePreferredColorScheme),
+/* harmony export */ "usePreferredContrast": () => (/* binding */ usePreferredContrast),
+/* harmony export */ "usePreferredDark": () => (/* binding */ usePreferredDark),
+/* harmony export */ "usePreferredLanguages": () => (/* binding */ usePreferredLanguages),
+/* harmony export */ "usePreferredReducedMotion": () => (/* binding */ usePreferredReducedMotion),
+/* harmony export */ "usePrevious": () => (/* binding */ usePrevious),
+/* harmony export */ "useRafFn": () => (/* binding */ useRafFn),
+/* harmony export */ "useRefHistory": () => (/* binding */ useRefHistory),
+/* harmony export */ "useResizeObserver": () => (/* binding */ useResizeObserver),
+/* harmony export */ "useScreenOrientation": () => (/* binding */ useScreenOrientation),
+/* harmony export */ "useScreenSafeArea": () => (/* binding */ useScreenSafeArea),
+/* harmony export */ "useScriptTag": () => (/* binding */ useScriptTag),
+/* harmony export */ "useScroll": () => (/* binding */ useScroll),
+/* harmony export */ "useScrollLock": () => (/* binding */ useScrollLock),
+/* harmony export */ "useSessionStorage": () => (/* binding */ useSessionStorage),
+/* harmony export */ "useShare": () => (/* binding */ useShare),
+/* harmony export */ "useSorted": () => (/* binding */ useSorted),
+/* harmony export */ "useSpeechRecognition": () => (/* binding */ useSpeechRecognition),
+/* harmony export */ "useSpeechSynthesis": () => (/* binding */ useSpeechSynthesis),
+/* harmony export */ "useStepper": () => (/* binding */ useStepper),
+/* harmony export */ "useStorage": () => (/* binding */ useStorage),
+/* harmony export */ "useStorageAsync": () => (/* binding */ useStorageAsync),
+/* harmony export */ "useStyleTag": () => (/* binding */ useStyleTag),
+/* harmony export */ "useSupported": () => (/* binding */ useSupported),
+/* harmony export */ "useSwipe": () => (/* binding */ useSwipe),
+/* harmony export */ "useTemplateRefsList": () => (/* binding */ useTemplateRefsList),
+/* harmony export */ "useTextDirection": () => (/* binding */ useTextDirection),
+/* harmony export */ "useTextSelection": () => (/* binding */ useTextSelection),
+/* harmony export */ "useTextareaAutosize": () => (/* binding */ useTextareaAutosize),
+/* harmony export */ "useThrottle": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.useThrottle),
+/* harmony export */ "useThrottleFn": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.useThrottleFn),
+/* harmony export */ "useThrottledRefHistory": () => (/* binding */ useThrottledRefHistory),
+/* harmony export */ "useTimeAgo": () => (/* binding */ useTimeAgo),
+/* harmony export */ "useTimeout": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.useTimeout),
+/* harmony export */ "useTimeoutFn": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.useTimeoutFn),
+/* harmony export */ "useTimeoutPoll": () => (/* binding */ useTimeoutPoll),
+/* harmony export */ "useTimestamp": () => (/* binding */ useTimestamp),
+/* harmony export */ "useTitle": () => (/* binding */ useTitle),
+/* harmony export */ "useToNumber": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.useToNumber),
+/* harmony export */ "useToString": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.useToString),
+/* harmony export */ "useToggle": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.useToggle),
+/* harmony export */ "useTransition": () => (/* binding */ useTransition),
+/* harmony export */ "useUrlSearchParams": () => (/* binding */ useUrlSearchParams),
+/* harmony export */ "useUserMedia": () => (/* binding */ useUserMedia),
+/* harmony export */ "useVModel": () => (/* binding */ useVModel),
+/* harmony export */ "useVModels": () => (/* binding */ useVModels),
+/* harmony export */ "useVibrate": () => (/* binding */ useVibrate),
+/* harmony export */ "useVirtualList": () => (/* binding */ useVirtualList),
+/* harmony export */ "useWakeLock": () => (/* binding */ useWakeLock),
+/* harmony export */ "useWebNotification": () => (/* binding */ useWebNotification),
+/* harmony export */ "useWebSocket": () => (/* binding */ useWebSocket),
+/* harmony export */ "useWebWorker": () => (/* binding */ useWebWorker),
+/* harmony export */ "useWebWorkerFn": () => (/* binding */ useWebWorkerFn),
+/* harmony export */ "useWindowFocus": () => (/* binding */ useWindowFocus),
+/* harmony export */ "useWindowScroll": () => (/* binding */ useWindowScroll),
+/* harmony export */ "useWindowSize": () => (/* binding */ useWindowSize),
+/* harmony export */ "watchArray": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.watchArray),
+/* harmony export */ "watchAtMost": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.watchAtMost),
+/* harmony export */ "watchDebounced": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.watchDebounced),
+/* harmony export */ "watchDeep": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.watchDeep),
+/* harmony export */ "watchIgnorable": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.watchIgnorable),
+/* harmony export */ "watchImmediate": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.watchImmediate),
+/* harmony export */ "watchOnce": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.watchOnce),
+/* harmony export */ "watchPausable": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.watchPausable),
+/* harmony export */ "watchThrottled": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.watchThrottled),
+/* harmony export */ "watchTriggerable": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.watchTriggerable),
+/* harmony export */ "watchWithFilter": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.watchWithFilter),
+/* harmony export */ "whenever": () => (/* reexport safe */ _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.whenever)
+/* harmony export */ });
+/* harmony import */ var _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @vueuse/shared */ "./node_modules/@vueuse/shared/index.mjs");
+/* harmony import */ var vue_demi__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vue-demi */ "./node_modules/@vueuse/core/node_modules/vue-demi/lib/index.mjs");
+
+
+
+
+function computedAsync(evaluationCallback, initialState, optionsOrRef) {
+ let options;
+ if ((0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.isRef)(optionsOrRef)) {
+ options = {
+ evaluating: optionsOrRef
+ };
+ } else {
+ options = optionsOrRef || {};
+ }
+ const {
+ lazy = false,
+ evaluating = void 0,
+ shallow = true,
+ onError = _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.noop
+ } = options;
+ const started = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(!lazy);
+ const current = shallow ? (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.shallowRef)(initialState) : (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(initialState);
+ let counter = 0;
+ (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.watchEffect)(async (onInvalidate) => {
+ if (!started.value)
+ return;
+ counter++;
+ const counterAtBeginning = counter;
+ let hasFinished = false;
+ if (evaluating) {
+ Promise.resolve().then(() => {
+ evaluating.value = true;
+ });
+ }
+ try {
+ const result = await evaluationCallback((cancelCallback) => {
+ onInvalidate(() => {
+ if (evaluating)
+ evaluating.value = false;
+ if (!hasFinished)
+ cancelCallback();
+ });
+ });
+ if (counterAtBeginning === counter)
+ current.value = result;
+ } catch (e) {
+ onError(e);
+ } finally {
+ if (evaluating && counterAtBeginning === counter)
+ evaluating.value = false;
+ hasFinished = true;
+ }
+ });
+ if (lazy) {
+ return (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.computed)(() => {
+ started.value = true;
+ return current.value;
+ });
+ } else {
+ return current;
+ }
+}
+
+function computedInject(key, options, defaultSource, treatDefaultAsFactory) {
+ let source = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.inject)(key);
+ if (defaultSource)
+ source = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.inject)(key, defaultSource);
+ if (treatDefaultAsFactory)
+ source = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.inject)(key, defaultSource, treatDefaultAsFactory);
+ if (typeof options === "function") {
+ return (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.computed)((ctx) => options(source, ctx));
+ } else {
+ return (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.computed)({
+ get: (ctx) => options.get(source, ctx),
+ set: options.set
+ });
+ }
+}
+
+function createReusableTemplate(options = {}) {
+ if (!vue_demi__WEBPACK_IMPORTED_MODULE_1__.isVue3 && !vue_demi__WEBPACK_IMPORTED_MODULE_1__.version.startsWith("2.7.")) {
+ if (true)
+ throw new Error("[VueUse] createReusableTemplate only works in Vue 2.7 or above.");
+ return;
+ }
+ const {
+ inheritAttrs = true
+ } = options;
+ const render = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.shallowRef)();
+ const define = /* #__PURE__ */ (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.defineComponent)({
+ setup(_, { slots }) {
+ return () => {
+ render.value = slots.default;
+ };
+ }
+ });
+ const reuse = /* #__PURE__ */ (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.defineComponent)({
+ inheritAttrs,
+ setup(_, { attrs, slots }) {
+ return () => {
+ var _a;
+ if (!render.value && "development" !== "production")
+ throw new Error("[VueUse] Failed to find the definition of reusable template");
+ const vnode = (_a = render.value) == null ? void 0 : _a.call(render, { ...keysToCamelKebabCase(attrs), $slots: slots });
+ return inheritAttrs && (vnode == null ? void 0 : vnode.length) === 1 ? vnode[0] : vnode;
+ };
+ }
+ });
+ return (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.makeDestructurable)(
+ { define, reuse },
+ [define, reuse]
+ );
+}
+function keysToCamelKebabCase(obj) {
+ const newObj = {};
+ for (const key in obj)
+ newObj[(0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.camelize)(key)] = obj[key];
+ return newObj;
+}
+
+function createTemplatePromise(options = {}) {
+ if (!vue_demi__WEBPACK_IMPORTED_MODULE_1__.isVue3) {
+ if (true)
+ throw new Error("[VueUse] createTemplatePromise only works in Vue 3 or above.");
+ return;
+ }
+ let index = 0;
+ const instances = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)([]);
+ function create(...args) {
+ const props = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.shallowReactive)({
+ key: index++,
+ args,
+ promise: void 0,
+ resolve: () => {
+ },
+ reject: () => {
+ },
+ isResolving: false,
+ options
+ });
+ instances.value.push(props);
+ props.promise = new Promise((_resolve, _reject) => {
+ props.resolve = (v) => {
+ props.isResolving = true;
+ return _resolve(v);
+ };
+ props.reject = _reject;
+ }).finally(() => {
+ props.promise = void 0;
+ const index2 = instances.value.indexOf(props);
+ if (index2 !== -1)
+ instances.value.splice(index2, 1);
+ });
+ return props.promise;
+ }
+ function start(...args) {
+ if (options.singleton && instances.value.length > 0)
+ return instances.value[0].promise;
+ return create(...args);
+ }
+ const component = /* #__PURE__ */ (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.defineComponent)((_, { slots }) => {
+ const renderList = () => instances.value.map((props) => {
+ var _a;
+ return (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.h)(vue_demi__WEBPACK_IMPORTED_MODULE_1__.Fragment, { key: props.key }, (_a = slots.default) == null ? void 0 : _a.call(slots, props));
+ });
+ if (options.transition)
+ return () => (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.h)(vue_demi__WEBPACK_IMPORTED_MODULE_1__.TransitionGroup, options.transition, renderList);
+ return renderList;
+ });
+ component.start = start;
+ return component;
+}
+
+function createUnrefFn(fn) {
+ return function(...args) {
+ return fn.apply(this, args.map((i) => (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(i)));
+ };
+}
+
+function unrefElement(elRef) {
+ var _a;
+ const plain = (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(elRef);
+ return (_a = plain == null ? void 0 : plain.$el) != null ? _a : plain;
+}
+
+const defaultWindow = _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.isClient ? window : void 0;
+const defaultDocument = _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.isClient ? window.document : void 0;
+const defaultNavigator = _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.isClient ? window.navigator : void 0;
+const defaultLocation = _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.isClient ? window.location : void 0;
+
+function useEventListener(...args) {
+ let target;
+ let events;
+ let listeners;
+ let options;
+ if (typeof args[0] === "string" || Array.isArray(args[0])) {
+ [events, listeners, options] = args;
+ target = defaultWindow;
+ } else {
+ [target, events, listeners, options] = args;
+ }
+ if (!target)
+ return _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.noop;
+ if (!Array.isArray(events))
+ events = [events];
+ if (!Array.isArray(listeners))
+ listeners = [listeners];
+ const cleanups = [];
+ const cleanup = () => {
+ cleanups.forEach((fn) => fn());
+ cleanups.length = 0;
+ };
+ const register = (el, event, listener, options2) => {
+ el.addEventListener(event, listener, options2);
+ return () => el.removeEventListener(event, listener, options2);
+ };
+ const stopWatch = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.watch)(
+ () => [unrefElement(target), (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(options)],
+ ([el, options2]) => {
+ cleanup();
+ if (!el)
+ return;
+ const optionsClone = (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.isObject)(options2) ? { ...options2 } : options2;
+ cleanups.push(
+ ...events.flatMap((event) => {
+ return listeners.map((listener) => register(el, event, listener, optionsClone));
+ })
+ );
+ },
+ { immediate: true, flush: "post" }
+ );
+ const stop = () => {
+ stopWatch();
+ cleanup();
+ };
+ (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.tryOnScopeDispose)(stop);
+ return stop;
+}
+
+let _iOSWorkaround = false;
+function onClickOutside(target, handler, options = {}) {
+ const { window = defaultWindow, ignore = [], capture = true, detectIframe = false } = options;
+ if (!window)
+ return _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.noop;
+ if (_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.isIOS && !_iOSWorkaround) {
+ _iOSWorkaround = true;
+ Array.from(window.document.body.children).forEach((el) => el.addEventListener("click", _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.noop));
+ window.document.documentElement.addEventListener("click", _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.noop);
+ }
+ let shouldListen = true;
+ const shouldIgnore = (event) => {
+ return ignore.some((target2) => {
+ if (typeof target2 === "string") {
+ return Array.from(window.document.querySelectorAll(target2)).some((el) => el === event.target || event.composedPath().includes(el));
+ } else {
+ const el = unrefElement(target2);
+ return el && (event.target === el || event.composedPath().includes(el));
+ }
+ });
+ };
+ const listener = (event) => {
+ const el = unrefElement(target);
+ if (!el || el === event.target || event.composedPath().includes(el))
+ return;
+ if (event.detail === 0)
+ shouldListen = !shouldIgnore(event);
+ if (!shouldListen) {
+ shouldListen = true;
+ return;
+ }
+ handler(event);
+ };
+ const cleanup = [
+ useEventListener(window, "click", listener, { passive: true, capture }),
+ useEventListener(window, "pointerdown", (e) => {
+ const el = unrefElement(target);
+ shouldListen = !shouldIgnore(e) && !!(el && !e.composedPath().includes(el));
+ }, { passive: true }),
+ detectIframe && useEventListener(window, "blur", (event) => {
+ setTimeout(() => {
+ var _a;
+ const el = unrefElement(target);
+ if (((_a = window.document.activeElement) == null ? void 0 : _a.tagName) === "IFRAME" && !(el == null ? void 0 : el.contains(window.document.activeElement))) {
+ handler(event);
+ }
+ }, 0);
+ })
+ ].filter(Boolean);
+ const stop = () => cleanup.forEach((fn) => fn());
+ return stop;
+}
+
+function createKeyPredicate(keyFilter) {
+ if (typeof keyFilter === "function")
+ return keyFilter;
+ else if (typeof keyFilter === "string")
+ return (event) => event.key === keyFilter;
+ else if (Array.isArray(keyFilter))
+ return (event) => keyFilter.includes(event.key);
+ return () => true;
+}
+function onKeyStroke(...args) {
+ let key;
+ let handler;
+ let options = {};
+ if (args.length === 3) {
+ key = args[0];
+ handler = args[1];
+ options = args[2];
+ } else if (args.length === 2) {
+ if (typeof args[1] === "object") {
+ key = true;
+ handler = args[0];
+ options = args[1];
+ } else {
+ key = args[0];
+ handler = args[1];
+ }
+ } else {
+ key = true;
+ handler = args[0];
+ }
+ const {
+ target = defaultWindow,
+ eventName = "keydown",
+ passive = false,
+ dedupe = false
+ } = options;
+ const predicate = createKeyPredicate(key);
+ const listener = (e) => {
+ if (e.repeat && (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(dedupe))
+ return;
+ if (predicate(e))
+ handler(e);
+ };
+ return useEventListener(target, eventName, listener, passive);
+}
+function onKeyDown(key, handler, options = {}) {
+ return onKeyStroke(key, handler, { ...options, eventName: "keydown" });
+}
+function onKeyPressed(key, handler, options = {}) {
+ return onKeyStroke(key, handler, { ...options, eventName: "keypress" });
+}
+function onKeyUp(key, handler, options = {}) {
+ return onKeyStroke(key, handler, { ...options, eventName: "keyup" });
+}
+
+const DEFAULT_DELAY = 500;
+const DEFAULT_THRESHOLD = 10;
+function onLongPress(target, handler, options) {
+ var _a, _b;
+ const elementRef = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.computed)(() => unrefElement(target));
+ let timeout;
+ let posStart;
+ let startTimestamp;
+ let hasLongPressed = false;
+ function clear() {
+ if (timeout) {
+ clearTimeout(timeout);
+ timeout = void 0;
+ }
+ posStart = void 0;
+ startTimestamp = void 0;
+ hasLongPressed = false;
+ }
+ function onRelease(ev) {
+ var _a2, _b2, _c;
+ const [_startTimestamp, _posStart, _hasLongPressed] = [startTimestamp, posStart, hasLongPressed];
+ clear();
+ if (!(options == null ? void 0 : options.onMouseUp) || !_posStart || !_startTimestamp)
+ return;
+ if (((_a2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _a2.self) && ev.target !== elementRef.value)
+ return;
+ if ((_b2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _b2.prevent)
+ ev.preventDefault();
+ if ((_c = options == null ? void 0 : options.modifiers) == null ? void 0 : _c.stop)
+ ev.stopPropagation();
+ const dx = ev.x - _posStart.x;
+ const dy = ev.y - _posStart.y;
+ const distance = Math.sqrt(dx * dx + dy * dy);
+ options.onMouseUp(ev.timeStamp - _startTimestamp, distance, _hasLongPressed);
+ }
+ function onDown(ev) {
+ var _a2, _b2, _c, _d;
+ if (((_a2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _a2.self) && ev.target !== elementRef.value)
+ return;
+ clear();
+ if ((_b2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _b2.prevent)
+ ev.preventDefault();
+ if ((_c = options == null ? void 0 : options.modifiers) == null ? void 0 : _c.stop)
+ ev.stopPropagation();
+ posStart = {
+ x: ev.x,
+ y: ev.y
+ };
+ startTimestamp = ev.timeStamp;
+ timeout = setTimeout(
+ () => {
+ hasLongPressed = true;
+ handler(ev);
+ },
+ (_d = options == null ? void 0 : options.delay) != null ? _d : DEFAULT_DELAY
+ );
+ }
+ function onMove(ev) {
+ var _a2, _b2, _c, _d;
+ if (((_a2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _a2.self) && ev.target !== elementRef.value)
+ return;
+ if (!posStart || (options == null ? void 0 : options.distanceThreshold) === false)
+ return;
+ if ((_b2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _b2.prevent)
+ ev.preventDefault();
+ if ((_c = options == null ? void 0 : options.modifiers) == null ? void 0 : _c.stop)
+ ev.stopPropagation();
+ const dx = ev.x - posStart.x;
+ const dy = ev.y - posStart.y;
+ const distance = Math.sqrt(dx * dx + dy * dy);
+ if (distance >= ((_d = options == null ? void 0 : options.distanceThreshold) != null ? _d : DEFAULT_THRESHOLD))
+ clear();
+ }
+ const listenerOptions = {
+ capture: (_a = options == null ? void 0 : options.modifiers) == null ? void 0 : _a.capture,
+ once: (_b = options == null ? void 0 : options.modifiers) == null ? void 0 : _b.once
+ };
+ const cleanup = [
+ useEventListener(elementRef, "pointerdown", onDown, listenerOptions),
+ useEventListener(elementRef, "pointermove", onMove, listenerOptions),
+ useEventListener(elementRef, ["pointerup", "pointerleave"], onRelease, listenerOptions)
+ ];
+ const stop = () => cleanup.forEach((fn) => fn());
+ return stop;
+}
+
+function isFocusedElementEditable() {
+ const { activeElement, body } = document;
+ if (!activeElement)
+ return false;
+ if (activeElement === body)
+ return false;
+ switch (activeElement.tagName) {
+ case "INPUT":
+ case "TEXTAREA":
+ return true;
+ }
+ return activeElement.hasAttribute("contenteditable");
+}
+function isTypedCharValid({
+ keyCode,
+ metaKey,
+ ctrlKey,
+ altKey
+}) {
+ if (metaKey || ctrlKey || altKey)
+ return false;
+ if (keyCode >= 48 && keyCode <= 57)
+ return true;
+ if (keyCode >= 65 && keyCode <= 90)
+ return true;
+ if (keyCode >= 97 && keyCode <= 122)
+ return true;
+ return false;
+}
+function onStartTyping(callback, options = {}) {
+ const { document: document2 = defaultDocument } = options;
+ const keydown = (event) => {
+ if (!isFocusedElementEditable() && isTypedCharValid(event)) {
+ callback(event);
+ }
+ };
+ if (document2)
+ useEventListener(document2, "keydown", keydown, { passive: true });
+}
+
+function templateRef(key, initialValue = null) {
+ const instance = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.getCurrentInstance)();
+ let _trigger = () => {
+ };
+ const element = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.customRef)((track, trigger) => {
+ _trigger = trigger;
+ return {
+ get() {
+ var _a, _b;
+ track();
+ return (_b = (_a = instance == null ? void 0 : instance.proxy) == null ? void 0 : _a.$refs[key]) != null ? _b : initialValue;
+ },
+ set() {
+ }
+ };
+ });
+ (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.tryOnMounted)(_trigger);
+ (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.onUpdated)(_trigger);
+ return element;
+}
+
+function useMounted() {
+ const isMounted = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(false);
+ const instance = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.getCurrentInstance)();
+ if (instance) {
+ (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.onMounted)(() => {
+ isMounted.value = true;
+ }, vue_demi__WEBPACK_IMPORTED_MODULE_1__.isVue2 ? void 0 : instance);
+ }
+ return isMounted;
+}
+
+function useSupported(callback) {
+ const isMounted = useMounted();
+ return (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.computed)(() => {
+ isMounted.value;
+ return Boolean(callback());
+ });
+}
+
+function useMutationObserver(target, callback, options = {}) {
+ const { window = defaultWindow, ...mutationOptions } = options;
+ let observer;
+ const isSupported = useSupported(() => window && "MutationObserver" in window);
+ const cleanup = () => {
+ if (observer) {
+ observer.disconnect();
+ observer = void 0;
+ }
+ };
+ const targets = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.computed)(() => {
+ const value = (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(target);
+ const items = (Array.isArray(value) ? value : [value]).map(unrefElement).filter(_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.notNullish);
+ return new Set(items);
+ });
+ const stopWatch = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.watch)(
+ () => targets.value,
+ (targets2) => {
+ cleanup();
+ if (isSupported.value && targets2.size) {
+ observer = new MutationObserver(callback);
+ targets2.forEach((el) => observer.observe(el, mutationOptions));
+ }
+ },
+ { immediate: true, flush: "post" }
+ );
+ const takeRecords = () => {
+ return observer == null ? void 0 : observer.takeRecords();
+ };
+ const stop = () => {
+ stopWatch();
+ cleanup();
+ };
+ (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.tryOnScopeDispose)(stop);
+ return {
+ isSupported,
+ stop,
+ takeRecords
+ };
+}
+
+function useActiveElement(options = {}) {
+ var _a;
+ const {
+ window = defaultWindow,
+ deep = true,
+ triggerOnRemoval = false
+ } = options;
+ const document = (_a = options.document) != null ? _a : window == null ? void 0 : window.document;
+ const getDeepActiveElement = () => {
+ var _a2;
+ let element = document == null ? void 0 : document.activeElement;
+ if (deep) {
+ while (element == null ? void 0 : element.shadowRoot)
+ element = (_a2 = element == null ? void 0 : element.shadowRoot) == null ? void 0 : _a2.activeElement;
+ }
+ return element;
+ };
+ const activeElement = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)();
+ const trigger = () => {
+ activeElement.value = getDeepActiveElement();
+ };
+ if (window) {
+ useEventListener(window, "blur", (event) => {
+ if (event.relatedTarget !== null)
+ return;
+ trigger();
+ }, true);
+ useEventListener(window, "focus", trigger, true);
+ }
+ if (triggerOnRemoval) {
+ useMutationObserver(document, (mutations) => {
+ mutations.filter((m) => m.removedNodes.length).map((n) => Array.from(n.removedNodes)).flat().forEach((node) => {
+ if (node === activeElement.value)
+ trigger();
+ });
+ }, {
+ childList: true,
+ subtree: true
+ });
+ }
+ trigger();
+ return activeElement;
+}
+
+function useRafFn(fn, options = {}) {
+ const {
+ immediate = true,
+ fpsLimit = void 0,
+ window = defaultWindow
+ } = options;
+ const isActive = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(false);
+ const intervalLimit = fpsLimit ? 1e3 / fpsLimit : null;
+ let previousFrameTimestamp = 0;
+ let rafId = null;
+ function loop(timestamp) {
+ if (!isActive.value || !window)
+ return;
+ if (!previousFrameTimestamp)
+ previousFrameTimestamp = timestamp;
+ const delta = timestamp - previousFrameTimestamp;
+ if (intervalLimit && delta < intervalLimit) {
+ rafId = window.requestAnimationFrame(loop);
+ return;
+ }
+ previousFrameTimestamp = timestamp;
+ fn({ delta, timestamp });
+ rafId = window.requestAnimationFrame(loop);
+ }
+ function resume() {
+ if (!isActive.value && window) {
+ isActive.value = true;
+ previousFrameTimestamp = 0;
+ rafId = window.requestAnimationFrame(loop);
+ }
+ }
+ function pause() {
+ isActive.value = false;
+ if (rafId != null && window) {
+ window.cancelAnimationFrame(rafId);
+ rafId = null;
+ }
+ }
+ if (immediate)
+ resume();
+ (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.tryOnScopeDispose)(pause);
+ return {
+ isActive: (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.readonly)(isActive),
+ pause,
+ resume
+ };
+}
+
+function useAnimate(target, keyframes, options) {
+ let config;
+ let animateOptions;
+ if ((0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.isObject)(options)) {
+ config = options;
+ animateOptions = (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.objectOmit)(options, ["window", "immediate", "commitStyles", "persist", "onReady", "onError"]);
+ } else {
+ config = { duration: options };
+ animateOptions = options;
+ }
+ const {
+ window = defaultWindow,
+ immediate = true,
+ commitStyles,
+ persist,
+ playbackRate: _playbackRate = 1,
+ onReady,
+ onError = (e) => {
+ console.error(e);
+ }
+ } = config;
+ const isSupported = useSupported(() => window && HTMLElement && "animate" in HTMLElement.prototype);
+ const animate = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.shallowRef)(void 0);
+ const store = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.shallowReactive)({
+ startTime: null,
+ currentTime: null,
+ timeline: null,
+ playbackRate: _playbackRate,
+ pending: false,
+ playState: immediate ? "idle" : "paused",
+ replaceState: "active"
+ });
+ const pending = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.computed)(() => store.pending);
+ const playState = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.computed)(() => store.playState);
+ const replaceState = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.computed)(() => store.replaceState);
+ const startTime = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.computed)({
+ get() {
+ return store.startTime;
+ },
+ set(value) {
+ store.startTime = value;
+ if (animate.value)
+ animate.value.startTime = value;
+ }
+ });
+ const currentTime = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.computed)({
+ get() {
+ return store.currentTime;
+ },
+ set(value) {
+ store.currentTime = value;
+ if (animate.value) {
+ animate.value.currentTime = value;
+ syncResume();
+ }
+ }
+ });
+ const timeline = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.computed)({
+ get() {
+ return store.timeline;
+ },
+ set(value) {
+ store.timeline = value;
+ if (animate.value)
+ animate.value.timeline = value;
+ }
+ });
+ const playbackRate = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.computed)({
+ get() {
+ return store.playbackRate;
+ },
+ set(value) {
+ store.playbackRate = value;
+ if (animate.value)
+ animate.value.playbackRate = value;
+ }
+ });
+ const play = () => {
+ if (animate.value) {
+ try {
+ animate.value.play();
+ syncResume();
+ } catch (e) {
+ syncPause();
+ onError(e);
+ }
+ } else {
+ update();
+ }
+ };
+ const pause = () => {
+ var _a;
+ try {
+ (_a = animate.value) == null ? void 0 : _a.pause();
+ syncPause();
+ } catch (e) {
+ onError(e);
+ }
+ };
+ const reverse = () => {
+ var _a;
+ if (!animate.value)
+ update();
+ try {
+ (_a = animate.value) == null ? void 0 : _a.reverse();
+ syncResume();
+ } catch (e) {
+ syncPause();
+ onError(e);
+ }
+ };
+ const finish = () => {
+ var _a;
+ try {
+ (_a = animate.value) == null ? void 0 : _a.finish();
+ syncPause();
+ } catch (e) {
+ onError(e);
+ }
+ };
+ const cancel = () => {
+ var _a;
+ try {
+ (_a = animate.value) == null ? void 0 : _a.cancel();
+ syncPause();
+ } catch (e) {
+ onError(e);
+ }
+ };
+ (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.watch)(() => unrefElement(target), (el) => {
+ if (el)
+ update();
+ });
+ (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.watch)(() => keyframes, (value) => {
+ if (animate.value)
+ update();
+ if (!unrefElement(target) && animate.value) {
+ animate.value.effect = new KeyframeEffect(
+ unrefElement(target),
+ (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(value),
+ animateOptions
+ );
+ }
+ }, { deep: true });
+ (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.tryOnMounted)(() => update(true), false);
+ (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.tryOnScopeDispose)(cancel);
+ function update(init) {
+ const el = unrefElement(target);
+ if (!isSupported.value || !el)
+ return;
+ if (!animate.value)
+ animate.value = el.animate((0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(keyframes), animateOptions);
+ if (persist)
+ animate.value.persist();
+ if (_playbackRate !== 1)
+ animate.value.playbackRate = _playbackRate;
+ if (init && !immediate)
+ animate.value.pause();
+ else
+ syncResume();
+ onReady == null ? void 0 : onReady(animate.value);
+ }
+ useEventListener(animate, ["cancel", "finish", "remove"], syncPause);
+ useEventListener(animate, "finish", () => {
+ var _a;
+ if (commitStyles)
+ (_a = animate.value) == null ? void 0 : _a.commitStyles();
+ });
+ const { resume: resumeRef, pause: pauseRef } = useRafFn(() => {
+ if (!animate.value)
+ return;
+ store.pending = animate.value.pending;
+ store.playState = animate.value.playState;
+ store.replaceState = animate.value.replaceState;
+ store.startTime = animate.value.startTime;
+ store.currentTime = animate.value.currentTime;
+ store.timeline = animate.value.timeline;
+ store.playbackRate = animate.value.playbackRate;
+ }, { immediate: false });
+ function syncResume() {
+ if (isSupported.value)
+ resumeRef();
+ }
+ function syncPause() {
+ if (isSupported.value && window)
+ window.requestAnimationFrame(pauseRef);
+ }
+ return {
+ isSupported,
+ animate,
+ // actions
+ play,
+ pause,
+ reverse,
+ finish,
+ cancel,
+ // state
+ pending,
+ playState,
+ replaceState,
+ startTime,
+ currentTime,
+ timeline,
+ playbackRate
+ };
+}
+
+function useAsyncQueue(tasks, options) {
+ const {
+ interrupt = true,
+ onError = _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.noop,
+ onFinished = _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.noop,
+ signal
+ } = options || {};
+ const promiseState = {
+ aborted: "aborted",
+ fulfilled: "fulfilled",
+ pending: "pending",
+ rejected: "rejected"
+ };
+ const initialResult = Array.from(Array.from({ length: tasks.length }), () => ({ state: promiseState.pending, data: null }));
+ const result = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.reactive)(initialResult);
+ const activeIndex = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(-1);
+ if (!tasks || tasks.length === 0) {
+ onFinished();
+ return {
+ activeIndex,
+ result
+ };
+ }
+ function updateResult(state, res) {
+ activeIndex.value++;
+ result[activeIndex.value].data = res;
+ result[activeIndex.value].state = state;
+ }
+ tasks.reduce((prev, curr) => {
+ return prev.then((prevRes) => {
+ var _a;
+ if (signal == null ? void 0 : signal.aborted) {
+ updateResult(promiseState.aborted, new Error("aborted"));
+ return;
+ }
+ if (((_a = result[activeIndex.value]) == null ? void 0 : _a.state) === promiseState.rejected && interrupt) {
+ onFinished();
+ return;
+ }
+ const done = curr(prevRes).then((currentRes) => {
+ updateResult(promiseState.fulfilled, currentRes);
+ if (activeIndex.value === tasks.length - 1)
+ onFinished();
+ return currentRes;
+ });
+ if (!signal)
+ return done;
+ return Promise.race([done, whenAborted(signal)]);
+ }).catch((e) => {
+ if (signal == null ? void 0 : signal.aborted) {
+ updateResult(promiseState.aborted, e);
+ return e;
+ }
+ updateResult(promiseState.rejected, e);
+ onError();
+ return e;
+ });
+ }, Promise.resolve());
+ return {
+ activeIndex,
+ result
+ };
+}
+function whenAborted(signal) {
+ return new Promise((resolve, reject) => {
+ const error = new Error("aborted");
+ if (signal.aborted)
+ reject(error);
+ else
+ signal.addEventListener("abort", () => reject(error), { once: true });
+ });
+}
+
+function useAsyncState(promise, initialState, options) {
+ const {
+ immediate = true,
+ delay = 0,
+ onError = _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.noop,
+ onSuccess = _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.noop,
+ resetOnExecute = true,
+ shallow = true,
+ throwError
+ } = options != null ? options : {};
+ const state = shallow ? (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.shallowRef)(initialState) : (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(initialState);
+ const isReady = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(false);
+ const isLoading = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(false);
+ const error = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.shallowRef)(void 0);
+ async function execute(delay2 = 0, ...args) {
+ if (resetOnExecute)
+ state.value = initialState;
+ error.value = void 0;
+ isReady.value = false;
+ isLoading.value = true;
+ if (delay2 > 0)
+ await (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.promiseTimeout)(delay2);
+ const _promise = typeof promise === "function" ? promise(...args) : promise;
+ try {
+ const data = await _promise;
+ state.value = data;
+ isReady.value = true;
+ onSuccess(data);
+ } catch (e) {
+ error.value = e;
+ onError(e);
+ if (throwError)
+ throw e;
+ } finally {
+ isLoading.value = false;
+ }
+ return state.value;
+ }
+ if (immediate)
+ execute(delay);
+ const shell = {
+ state,
+ isReady,
+ isLoading,
+ error,
+ execute
+ };
+ function waitUntilIsLoaded() {
+ return new Promise((resolve, reject) => {
+ (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.until)(isLoading).toBe(false).then(() => resolve(shell)).catch(reject);
+ });
+ }
+ return {
+ ...shell,
+ then(onFulfilled, onRejected) {
+ return waitUntilIsLoaded().then(onFulfilled, onRejected);
+ }
+ };
+}
+
+const defaults = {
+ array: (v) => JSON.stringify(v),
+ object: (v) => JSON.stringify(v),
+ set: (v) => JSON.stringify(Array.from(v)),
+ map: (v) => JSON.stringify(Object.fromEntries(v)),
+ null: () => ""
+};
+function getDefaultSerialization(target) {
+ if (!target)
+ return defaults.null;
+ if (target instanceof Map)
+ return defaults.map;
+ else if (target instanceof Set)
+ return defaults.set;
+ else if (Array.isArray(target))
+ return defaults.array;
+ else
+ return defaults.object;
+}
+
+function useBase64(target, options) {
+ const base64 = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)("");
+ const promise = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)();
+ function execute() {
+ if (!_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.isClient)
+ return;
+ promise.value = new Promise((resolve, reject) => {
+ try {
+ const _target = (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(target);
+ if (_target == null) {
+ resolve("");
+ } else if (typeof _target === "string") {
+ resolve(blobToBase64(new Blob([_target], { type: "text/plain" })));
+ } else if (_target instanceof Blob) {
+ resolve(blobToBase64(_target));
+ } else if (_target instanceof ArrayBuffer) {
+ resolve(window.btoa(String.fromCharCode(...new Uint8Array(_target))));
+ } else if (_target instanceof HTMLCanvasElement) {
+ resolve(_target.toDataURL(options == null ? void 0 : options.type, options == null ? void 0 : options.quality));
+ } else if (_target instanceof HTMLImageElement) {
+ const img = _target.cloneNode(false);
+ img.crossOrigin = "Anonymous";
+ imgLoaded(img).then(() => {
+ const canvas = document.createElement("canvas");
+ const ctx = canvas.getContext("2d");
+ canvas.width = img.width;
+ canvas.height = img.height;
+ ctx.drawImage(img, 0, 0, canvas.width, canvas.height);
+ resolve(canvas.toDataURL(options == null ? void 0 : options.type, options == null ? void 0 : options.quality));
+ }).catch(reject);
+ } else if (typeof _target === "object") {
+ const _serializeFn = (options == null ? void 0 : options.serializer) || getDefaultSerialization(_target);
+ const serialized = _serializeFn(_target);
+ return resolve(blobToBase64(new Blob([serialized], { type: "application/json" })));
+ } else {
+ reject(new Error("target is unsupported types"));
+ }
+ } catch (error) {
+ reject(error);
+ }
+ });
+ promise.value.then((res) => base64.value = res);
+ return promise.value;
+ }
+ if ((0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.isRef)(target) || typeof target === "function")
+ (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.watch)(target, execute, { immediate: true });
+ else
+ execute();
+ return {
+ base64,
+ promise,
+ execute
+ };
+}
+function imgLoaded(img) {
+ return new Promise((resolve, reject) => {
+ if (!img.complete) {
+ img.onload = () => {
+ resolve();
+ };
+ img.onerror = reject;
+ } else {
+ resolve();
+ }
+ });
+}
+function blobToBase64(blob) {
+ return new Promise((resolve, reject) => {
+ const fr = new FileReader();
+ fr.onload = (e) => {
+ resolve(e.target.result);
+ };
+ fr.onerror = reject;
+ fr.readAsDataURL(blob);
+ });
+}
+
+function useBattery(options = {}) {
+ const { navigator = defaultNavigator } = options;
+ const events = ["chargingchange", "chargingtimechange", "dischargingtimechange", "levelchange"];
+ const isSupported = useSupported(() => navigator && "getBattery" in navigator && typeof navigator.getBattery === "function");
+ const charging = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(false);
+ const chargingTime = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(0);
+ const dischargingTime = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(0);
+ const level = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(1);
+ let battery;
+ function updateBatteryInfo() {
+ charging.value = this.charging;
+ chargingTime.value = this.chargingTime || 0;
+ dischargingTime.value = this.dischargingTime || 0;
+ level.value = this.level;
+ }
+ if (isSupported.value) {
+ navigator.getBattery().then((_battery) => {
+ battery = _battery;
+ updateBatteryInfo.call(battery);
+ useEventListener(battery, events, updateBatteryInfo, { passive: true });
+ });
+ }
+ return {
+ isSupported,
+ charging,
+ chargingTime,
+ dischargingTime,
+ level
+ };
+}
+
+function useBluetooth(options) {
+ let {
+ acceptAllDevices = false
+ } = options || {};
+ const {
+ filters = void 0,
+ optionalServices = void 0,
+ navigator = defaultNavigator
+ } = options || {};
+ const isSupported = useSupported(() => navigator && "bluetooth" in navigator);
+ const device = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.shallowRef)(void 0);
+ const error = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.shallowRef)(null);
+ (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.watch)(device, () => {
+ connectToBluetoothGATTServer();
+ });
+ async function requestDevice() {
+ if (!isSupported.value)
+ return;
+ error.value = null;
+ if (filters && filters.length > 0)
+ acceptAllDevices = false;
+ try {
+ device.value = await (navigator == null ? void 0 : navigator.bluetooth.requestDevice({
+ acceptAllDevices,
+ filters,
+ optionalServices
+ }));
+ } catch (err) {
+ error.value = err;
+ }
+ }
+ const server = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)();
+ const isConnected = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.computed)(() => {
+ var _a;
+ return ((_a = server.value) == null ? void 0 : _a.connected) || false;
+ });
+ async function connectToBluetoothGATTServer() {
+ error.value = null;
+ if (device.value && device.value.gatt) {
+ device.value.addEventListener("gattserverdisconnected", () => {
+ });
+ try {
+ server.value = await device.value.gatt.connect();
+ } catch (err) {
+ error.value = err;
+ }
+ }
+ }
+ (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.tryOnMounted)(() => {
+ var _a;
+ if (device.value)
+ (_a = device.value.gatt) == null ? void 0 : _a.connect();
+ });
+ (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.tryOnScopeDispose)(() => {
+ var _a;
+ if (device.value)
+ (_a = device.value.gatt) == null ? void 0 : _a.disconnect();
+ });
+ return {
+ isSupported,
+ isConnected,
+ // Device:
+ device,
+ requestDevice,
+ // Server:
+ server,
+ // Errors:
+ error
+ };
+}
+
+function useMediaQuery(query, options = {}) {
+ const { window = defaultWindow } = options;
+ const isSupported = useSupported(() => window && "matchMedia" in window && typeof window.matchMedia === "function");
+ let mediaQuery;
+ const matches = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(false);
+ const handler = (event) => {
+ matches.value = event.matches;
+ };
+ const cleanup = () => {
+ if (!mediaQuery)
+ return;
+ if ("removeEventListener" in mediaQuery)
+ mediaQuery.removeEventListener("change", handler);
+ else
+ mediaQuery.removeListener(handler);
+ };
+ const stopWatch = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.watchEffect)(() => {
+ if (!isSupported.value)
+ return;
+ cleanup();
+ mediaQuery = window.matchMedia((0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(query));
+ if ("addEventListener" in mediaQuery)
+ mediaQuery.addEventListener("change", handler);
+ else
+ mediaQuery.addListener(handler);
+ matches.value = mediaQuery.matches;
+ });
+ (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.tryOnScopeDispose)(() => {
+ stopWatch();
+ cleanup();
+ mediaQuery = void 0;
+ });
+ return matches;
+}
+
+const breakpointsTailwind = {
+ "sm": 640,
+ "md": 768,
+ "lg": 1024,
+ "xl": 1280,
+ "2xl": 1536
+};
+const breakpointsBootstrapV5 = {
+ xs: 0,
+ sm: 576,
+ md: 768,
+ lg: 992,
+ xl: 1200,
+ xxl: 1400
+};
+const breakpointsVuetifyV2 = {
+ xs: 0,
+ sm: 600,
+ md: 960,
+ lg: 1264,
+ xl: 1904
+};
+const breakpointsVuetifyV3 = {
+ xs: 0,
+ sm: 600,
+ md: 960,
+ lg: 1280,
+ xl: 1920,
+ xxl: 2560
+};
+const breakpointsVuetify = breakpointsVuetifyV2;
+const breakpointsAntDesign = {
+ xs: 480,
+ sm: 576,
+ md: 768,
+ lg: 992,
+ xl: 1200,
+ xxl: 1600
+};
+const breakpointsQuasar = {
+ xs: 0,
+ sm: 600,
+ md: 1024,
+ lg: 1440,
+ xl: 1920
+};
+const breakpointsSematic = {
+ mobileS: 320,
+ mobileM: 375,
+ mobileL: 425,
+ tablet: 768,
+ laptop: 1024,
+ laptopL: 1440,
+ desktop4K: 2560
+};
+const breakpointsMasterCss = {
+ "3xs": 360,
+ "2xs": 480,
+ "xs": 600,
+ "sm": 768,
+ "md": 1024,
+ "lg": 1280,
+ "xl": 1440,
+ "2xl": 1600,
+ "3xl": 1920,
+ "4xl": 2560
+};
+const breakpointsPrimeFlex = {
+ sm: 576,
+ md: 768,
+ lg: 992,
+ xl: 1200
+};
+
+function useBreakpoints(breakpoints, options = {}) {
+ function getValue(k, delta) {
+ let v = (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(breakpoints[(0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(k)]);
+ if (delta != null)
+ v = (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.increaseWithUnit)(v, delta);
+ if (typeof v === "number")
+ v = `${v}px`;
+ return v;
+ }
+ const { window = defaultWindow, strategy = "min-width" } = options;
+ function match(query) {
+ if (!window)
+ return false;
+ return window.matchMedia(query).matches;
+ }
+ const greaterOrEqual = (k) => {
+ return useMediaQuery(() => `(min-width: ${getValue(k)})`, options);
+ };
+ const smallerOrEqual = (k) => {
+ return useMediaQuery(() => `(max-width: ${getValue(k)})`, options);
+ };
+ const shortcutMethods = Object.keys(breakpoints).reduce((shortcuts, k) => {
+ Object.defineProperty(shortcuts, k, {
+ get: () => strategy === "min-width" ? greaterOrEqual(k) : smallerOrEqual(k),
+ enumerable: true,
+ configurable: true
+ });
+ return shortcuts;
+ }, {});
+ function current() {
+ const points = Object.keys(breakpoints).map((i) => [i, greaterOrEqual(i)]);
+ return (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.computed)(() => points.filter(([, v]) => v.value).map(([k]) => k));
+ }
+ return Object.assign(shortcutMethods, {
+ greaterOrEqual,
+ smallerOrEqual,
+ greater(k) {
+ return useMediaQuery(() => `(min-width: ${getValue(k, 0.1)})`, options);
+ },
+ smaller(k) {
+ return useMediaQuery(() => `(max-width: ${getValue(k, -0.1)})`, options);
+ },
+ between(a, b) {
+ return useMediaQuery(() => `(min-width: ${getValue(a)}) and (max-width: ${getValue(b, -0.1)})`, options);
+ },
+ isGreater(k) {
+ return match(`(min-width: ${getValue(k, 0.1)})`);
+ },
+ isGreaterOrEqual(k) {
+ return match(`(min-width: ${getValue(k)})`);
+ },
+ isSmaller(k) {
+ return match(`(max-width: ${getValue(k, -0.1)})`);
+ },
+ isSmallerOrEqual(k) {
+ return match(`(max-width: ${getValue(k)})`);
+ },
+ isInBetween(a, b) {
+ return match(`(min-width: ${getValue(a)}) and (max-width: ${getValue(b, -0.1)})`);
+ },
+ current,
+ active() {
+ const bps = current();
+ return (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.computed)(() => bps.value.length === 0 ? "" : bps.value.at(-1));
+ }
+ });
+}
+
+function useBroadcastChannel(options) {
+ const {
+ name,
+ window = defaultWindow
+ } = options;
+ const isSupported = useSupported(() => window && "BroadcastChannel" in window);
+ const isClosed = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(false);
+ const channel = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)();
+ const data = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)();
+ const error = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.shallowRef)(null);
+ const post = (data2) => {
+ if (channel.value)
+ channel.value.postMessage(data2);
+ };
+ const close = () => {
+ if (channel.value)
+ channel.value.close();
+ isClosed.value = true;
+ };
+ if (isSupported.value) {
+ (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.tryOnMounted)(() => {
+ error.value = null;
+ channel.value = new BroadcastChannel(name);
+ channel.value.addEventListener("message", (e) => {
+ data.value = e.data;
+ }, { passive: true });
+ channel.value.addEventListener("messageerror", (e) => {
+ error.value = e;
+ }, { passive: true });
+ channel.value.addEventListener("close", () => {
+ isClosed.value = true;
+ });
+ });
+ }
+ (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.tryOnScopeDispose)(() => {
+ close();
+ });
+ return {
+ isSupported,
+ channel,
+ data,
+ post,
+ close,
+ error,
+ isClosed
+ };
+}
+
+const WRITABLE_PROPERTIES = [
+ "hash",
+ "host",
+ "hostname",
+ "href",
+ "pathname",
+ "port",
+ "protocol",
+ "search"
+];
+function useBrowserLocation(options = {}) {
+ const { window = defaultWindow } = options;
+ const refs = Object.fromEntries(
+ WRITABLE_PROPERTIES.map((key) => [key, (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)()])
+ );
+ for (const [key, ref2] of (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.objectEntries)(refs)) {
+ (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.watch)(ref2, (value) => {
+ if (!(window == null ? void 0 : window.location) || window.location[key] === value)
+ return;
+ window.location[key] = value;
+ });
+ }
+ const buildState = (trigger) => {
+ var _a;
+ const { state: state2, length } = (window == null ? void 0 : window.history) || {};
+ const { origin } = (window == null ? void 0 : window.location) || {};
+ for (const key of WRITABLE_PROPERTIES)
+ refs[key].value = (_a = window == null ? void 0 : window.location) == null ? void 0 : _a[key];
+ return (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.reactive)({
+ trigger,
+ state: state2,
+ length,
+ origin,
+ ...refs
+ });
+ };
+ const state = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(buildState("load"));
+ if (window) {
+ useEventListener(window, "popstate", () => state.value = buildState("popstate"), { passive: true });
+ useEventListener(window, "hashchange", () => state.value = buildState("hashchange"), { passive: true });
+ }
+ return state;
+}
+
+function useCached(refValue, comparator = (a, b) => a === b, watchOptions) {
+ const cachedValue = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(refValue.value);
+ (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.watch)(() => refValue.value, (value) => {
+ if (!comparator(value, cachedValue.value))
+ cachedValue.value = value;
+ }, watchOptions);
+ return cachedValue;
+}
+
+function usePermission(permissionDesc, options = {}) {
+ const {
+ controls = false,
+ navigator = defaultNavigator
+ } = options;
+ const isSupported = useSupported(() => navigator && "permissions" in navigator);
+ const permissionStatus = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.shallowRef)();
+ const desc = typeof permissionDesc === "string" ? { name: permissionDesc } : permissionDesc;
+ const state = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.shallowRef)();
+ const onChange = () => {
+ if (permissionStatus.value)
+ state.value = permissionStatus.value.state;
+ };
+ useEventListener(permissionStatus, "change", onChange);
+ const query = (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.createSingletonPromise)(async () => {
+ if (!isSupported.value)
+ return;
+ if (!permissionStatus.value) {
+ try {
+ permissionStatus.value = await navigator.permissions.query(desc);
+ onChange();
+ } catch (e) {
+ state.value = "prompt";
+ }
+ }
+ if (controls)
+ return (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.toRaw)(permissionStatus.value);
+ });
+ query();
+ if (controls) {
+ return {
+ state,
+ isSupported,
+ query
+ };
+ } else {
+ return state;
+ }
+}
+
+function useClipboard(options = {}) {
+ const {
+ navigator = defaultNavigator,
+ read = false,
+ source,
+ copiedDuring = 1500,
+ legacy = false
+ } = options;
+ const isClipboardApiSupported = useSupported(() => navigator && "clipboard" in navigator);
+ const permissionRead = usePermission("clipboard-read");
+ const permissionWrite = usePermission("clipboard-write");
+ const isSupported = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.computed)(() => isClipboardApiSupported.value || legacy);
+ const text = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)("");
+ const copied = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(false);
+ const timeout = (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.useTimeoutFn)(() => copied.value = false, copiedDuring);
+ function updateText() {
+ if (isClipboardApiSupported.value && isAllowed(permissionRead.value)) {
+ navigator.clipboard.readText().then((value) => {
+ text.value = value;
+ });
+ } else {
+ text.value = legacyRead();
+ }
+ }
+ if (isSupported.value && read)
+ useEventListener(["copy", "cut"], updateText);
+ async function copy(value = (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(source)) {
+ if (isSupported.value && value != null) {
+ if (isClipboardApiSupported.value && isAllowed(permissionWrite.value))
+ await navigator.clipboard.writeText(value);
+ else
+ legacyCopy(value);
+ text.value = value;
+ copied.value = true;
+ timeout.start();
+ }
+ }
+ function legacyCopy(value) {
+ const ta = document.createElement("textarea");
+ ta.value = value != null ? value : "";
+ ta.style.position = "absolute";
+ ta.style.opacity = "0";
+ document.body.appendChild(ta);
+ ta.select();
+ document.execCommand("copy");
+ ta.remove();
+ }
+ function legacyRead() {
+ var _a, _b, _c;
+ return (_c = (_b = (_a = document == null ? void 0 : document.getSelection) == null ? void 0 : _a.call(document)) == null ? void 0 : _b.toString()) != null ? _c : "";
+ }
+ function isAllowed(status) {
+ return status === "granted" || status === "prompt";
+ }
+ return {
+ isSupported,
+ text,
+ copied,
+ copy
+ };
+}
+
+function useClipboardItems(options = {}) {
+ const {
+ navigator = defaultNavigator,
+ read = false,
+ source,
+ copiedDuring = 1500
+ } = options;
+ const isSupported = useSupported(() => navigator && "clipboard" in navigator);
+ const content = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)([]);
+ const copied = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(false);
+ const timeout = (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.useTimeoutFn)(() => copied.value = false, copiedDuring);
+ function updateContent() {
+ if (isSupported.value) {
+ navigator.clipboard.read().then((items) => {
+ content.value = items;
+ });
+ }
+ }
+ if (isSupported.value && read)
+ useEventListener(["copy", "cut"], updateContent);
+ async function copy(value = (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(source)) {
+ if (isSupported.value && value != null) {
+ await navigator.clipboard.write(value);
+ content.value = value;
+ copied.value = true;
+ timeout.start();
+ }
+ }
+ return {
+ isSupported,
+ content,
+ copied,
+ copy
+ };
+}
+
+function cloneFnJSON(source) {
+ return JSON.parse(JSON.stringify(source));
+}
+function useCloned(source, options = {}) {
+ const cloned = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)({});
+ const {
+ manual,
+ clone = cloneFnJSON,
+ // watch options
+ deep = true,
+ immediate = true
+ } = options;
+ function sync() {
+ cloned.value = clone((0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(source));
+ }
+ if (!manual && ((0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.isRef)(source) || typeof source === "function")) {
+ (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.watch)(source, sync, {
+ ...options,
+ deep,
+ immediate
+ });
+ } else {
+ sync();
+ }
+ return { cloned, sync };
+}
+
+const _global = typeof globalThis !== "undefined" ? globalThis : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : {};
+const globalKey = "__vueuse_ssr_handlers__";
+const handlers = /* @__PURE__ */ getHandlers();
+function getHandlers() {
+ if (!(globalKey in _global))
+ _global[globalKey] = _global[globalKey] || {};
+ return _global[globalKey];
+}
+function getSSRHandler(key, fallback) {
+ return handlers[key] || fallback;
+}
+function setSSRHandler(key, fn) {
+ handlers[key] = fn;
+}
+
+function guessSerializerType(rawInit) {
+ return rawInit == null ? "any" : rawInit instanceof Set ? "set" : rawInit instanceof Map ? "map" : rawInit instanceof Date ? "date" : typeof rawInit === "boolean" ? "boolean" : typeof rawInit === "string" ? "string" : typeof rawInit === "object" ? "object" : !Number.isNaN(rawInit) ? "number" : "any";
+}
+
+const StorageSerializers = {
+ boolean: {
+ read: (v) => v === "true",
+ write: (v) => String(v)
+ },
+ object: {
+ read: (v) => JSON.parse(v),
+ write: (v) => JSON.stringify(v)
+ },
+ number: {
+ read: (v) => Number.parseFloat(v),
+ write: (v) => String(v)
+ },
+ any: {
+ read: (v) => v,
+ write: (v) => String(v)
+ },
+ string: {
+ read: (v) => v,
+ write: (v) => String(v)
+ },
+ map: {
+ read: (v) => new Map(JSON.parse(v)),
+ write: (v) => JSON.stringify(Array.from(v.entries()))
+ },
+ set: {
+ read: (v) => new Set(JSON.parse(v)),
+ write: (v) => JSON.stringify(Array.from(v))
+ },
+ date: {
+ read: (v) => new Date(v),
+ write: (v) => v.toISOString()
+ }
+};
+const customStorageEventName = "vueuse-storage";
+function useStorage(key, defaults, storage, options = {}) {
+ var _a;
+ const {
+ flush = "pre",
+ deep = true,
+ listenToStorageChanges = true,
+ writeDefaults = true,
+ mergeDefaults = false,
+ shallow,
+ window = defaultWindow,
+ eventFilter,
+ onError = (e) => {
+ console.error(e);
+ },
+ initOnMounted
+ } = options;
+ const data = (shallow ? vue_demi__WEBPACK_IMPORTED_MODULE_1__.shallowRef : vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(typeof defaults === "function" ? defaults() : defaults);
+ if (!storage) {
+ try {
+ storage = getSSRHandler("getDefaultStorage", () => {
+ var _a2;
+ return (_a2 = defaultWindow) == null ? void 0 : _a2.localStorage;
+ })();
+ } catch (e) {
+ onError(e);
+ }
+ }
+ if (!storage)
+ return data;
+ const rawInit = (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(defaults);
+ const type = guessSerializerType(rawInit);
+ const serializer = (_a = options.serializer) != null ? _a : StorageSerializers[type];
+ const { pause: pauseWatch, resume: resumeWatch } = (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.pausableWatch)(
+ data,
+ () => write(data.value),
+ { flush, deep, eventFilter }
+ );
+ if (window && listenToStorageChanges) {
+ (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.tryOnMounted)(() => {
+ if (storage instanceof Storage)
+ useEventListener(window, "storage", update);
+ else
+ useEventListener(window, customStorageEventName, updateFromCustomEvent);
+ if (initOnMounted)
+ update();
+ });
+ }
+ if (!initOnMounted)
+ update();
+ function dispatchWriteEvent(oldValue, newValue) {
+ if (window) {
+ const payload = {
+ key,
+ oldValue,
+ newValue,
+ storageArea: storage
+ };
+ window.dispatchEvent(storage instanceof Storage ? new StorageEvent("storage", payload) : new CustomEvent(customStorageEventName, {
+ detail: payload
+ }));
+ }
+ }
+ function write(v) {
+ try {
+ const oldValue = storage.getItem(key);
+ if (v == null) {
+ dispatchWriteEvent(oldValue, null);
+ storage.removeItem(key);
+ } else {
+ const serialized = serializer.write(v);
+ if (oldValue !== serialized) {
+ storage.setItem(key, serialized);
+ dispatchWriteEvent(oldValue, serialized);
+ }
+ }
+ } catch (e) {
+ onError(e);
+ }
+ }
+ function read(event) {
+ const rawValue = event ? event.newValue : storage.getItem(key);
+ if (rawValue == null) {
+ if (writeDefaults && rawInit != null)
+ storage.setItem(key, serializer.write(rawInit));
+ return rawInit;
+ } else if (!event && mergeDefaults) {
+ const value = serializer.read(rawValue);
+ if (typeof mergeDefaults === "function")
+ return mergeDefaults(value, rawInit);
+ else if (type === "object" && !Array.isArray(value))
+ return { ...rawInit, ...value };
+ return value;
+ } else if (typeof rawValue !== "string") {
+ return rawValue;
+ } else {
+ return serializer.read(rawValue);
+ }
+ }
+ function update(event) {
+ if (event && event.storageArea !== storage)
+ return;
+ if (event && event.key == null) {
+ data.value = rawInit;
+ return;
+ }
+ if (event && event.key !== key)
+ return;
+ pauseWatch();
+ try {
+ if ((event == null ? void 0 : event.newValue) !== serializer.write(data.value))
+ data.value = read(event);
+ } catch (e) {
+ onError(e);
+ } finally {
+ if (event)
+ (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.nextTick)(resumeWatch);
+ else
+ resumeWatch();
+ }
+ }
+ function updateFromCustomEvent(event) {
+ update(event.detail);
+ }
+ return data;
+}
+
+function usePreferredDark(options) {
+ return useMediaQuery("(prefers-color-scheme: dark)", options);
+}
+
+const CSS_DISABLE_TRANS = "*,*::before,*::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}";
+function useColorMode(options = {}) {
+ const {
+ selector = "html",
+ attribute = "class",
+ initialValue = "auto",
+ window = defaultWindow,
+ storage,
+ storageKey = "vueuse-color-scheme",
+ listenToStorageChanges = true,
+ storageRef,
+ emitAuto,
+ disableTransition = true
+ } = options;
+ const modes = {
+ auto: "",
+ light: "light",
+ dark: "dark",
+ ...options.modes || {}
+ };
+ const preferredDark = usePreferredDark({ window });
+ const system = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.computed)(() => preferredDark.value ? "dark" : "light");
+ const store = storageRef || (storageKey == null ? (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toRef)(initialValue) : useStorage(storageKey, initialValue, storage, { window, listenToStorageChanges }));
+ const state = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.computed)(() => store.value === "auto" ? system.value : store.value);
+ const updateHTMLAttrs = getSSRHandler(
+ "updateHTMLAttrs",
+ (selector2, attribute2, value) => {
+ const el = typeof selector2 === "string" ? window == null ? void 0 : window.document.querySelector(selector2) : unrefElement(selector2);
+ if (!el)
+ return;
+ const classesToAdd = /* @__PURE__ */ new Set();
+ const classesToRemove = /* @__PURE__ */ new Set();
+ let attributeToChange = null;
+ if (attribute2 === "class") {
+ const current = value.split(/\s/g);
+ Object.values(modes).flatMap((i) => (i || "").split(/\s/g)).filter(Boolean).forEach((v) => {
+ if (current.includes(v))
+ classesToAdd.add(v);
+ else
+ classesToRemove.add(v);
+ });
+ } else {
+ attributeToChange = { key: attribute2, value };
+ }
+ if (classesToAdd.size === 0 && classesToRemove.size === 0 && attributeToChange === null)
+ return;
+ let style;
+ if (disableTransition) {
+ style = window.document.createElement("style");
+ style.appendChild(document.createTextNode(CSS_DISABLE_TRANS));
+ window.document.head.appendChild(style);
+ }
+ for (const c of classesToAdd) {
+ el.classList.add(c);
+ }
+ for (const c of classesToRemove) {
+ el.classList.remove(c);
+ }
+ if (attributeToChange) {
+ el.setAttribute(attributeToChange.key, attributeToChange.value);
+ }
+ if (disableTransition) {
+ window.getComputedStyle(style).opacity;
+ document.head.removeChild(style);
+ }
+ }
+ );
+ function defaultOnChanged(mode) {
+ var _a;
+ updateHTMLAttrs(selector, attribute, (_a = modes[mode]) != null ? _a : mode);
+ }
+ function onChanged(mode) {
+ if (options.onChanged)
+ options.onChanged(mode, defaultOnChanged);
+ else
+ defaultOnChanged(mode);
+ }
+ (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.watch)(state, onChanged, { flush: "post", immediate: true });
+ (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.tryOnMounted)(() => onChanged(state.value));
+ const auto = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.computed)({
+ get() {
+ return emitAuto ? store.value : state.value;
+ },
+ set(v) {
+ store.value = v;
+ }
+ });
+ try {
+ return Object.assign(auto, { store, system, state });
+ } catch (e) {
+ return auto;
+ }
+}
+
+function useConfirmDialog(revealed = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(false)) {
+ const confirmHook = (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.createEventHook)();
+ const cancelHook = (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.createEventHook)();
+ const revealHook = (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.createEventHook)();
+ let _resolve = _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.noop;
+ const reveal = (data) => {
+ revealHook.trigger(data);
+ revealed.value = true;
+ return new Promise((resolve) => {
+ _resolve = resolve;
+ });
+ };
+ const confirm = (data) => {
+ revealed.value = false;
+ confirmHook.trigger(data);
+ _resolve({ data, isCanceled: false });
+ };
+ const cancel = (data) => {
+ revealed.value = false;
+ cancelHook.trigger(data);
+ _resolve({ data, isCanceled: true });
+ };
+ return {
+ isRevealed: (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.computed)(() => revealed.value),
+ reveal,
+ confirm,
+ cancel,
+ onReveal: revealHook.on,
+ onConfirm: confirmHook.on,
+ onCancel: cancelHook.on
+ };
+}
+
+function useCssVar(prop, target, options = {}) {
+ const { window = defaultWindow, initialValue, observe = false } = options;
+ const variable = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(initialValue);
+ const elRef = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.computed)(() => {
+ var _a;
+ return unrefElement(target) || ((_a = window == null ? void 0 : window.document) == null ? void 0 : _a.documentElement);
+ });
+ function updateCssVar() {
+ var _a;
+ const key = (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(prop);
+ const el = (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(elRef);
+ if (el && window && key) {
+ const value = (_a = window.getComputedStyle(el).getPropertyValue(key)) == null ? void 0 : _a.trim();
+ variable.value = value || initialValue;
+ }
+ }
+ if (observe) {
+ useMutationObserver(elRef, updateCssVar, {
+ attributeFilter: ["style", "class"],
+ window
+ });
+ }
+ (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.watch)(
+ [elRef, () => (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(prop)],
+ (_, old) => {
+ if (old[0] && old[1] && window)
+ window.getComputedStyle(old[0]).removeProperty(old[1]);
+ updateCssVar();
+ },
+ { immediate: true }
+ );
+ (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.watch)(
+ variable,
+ (val) => {
+ var _a;
+ const raw_prop = (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(prop);
+ if (((_a = elRef.value) == null ? void 0 : _a.style) && raw_prop) {
+ if (val == null)
+ elRef.value.style.removeProperty(raw_prop);
+ else
+ elRef.value.style.setProperty(raw_prop, val);
+ }
+ }
+ );
+ return variable;
+}
+
+function useCurrentElement(rootComponent) {
+ const vm = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.getCurrentInstance)();
+ const currentElement = (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.computedWithControl)(
+ () => null,
+ () => rootComponent ? unrefElement(rootComponent) : vm.proxy.$el
+ );
+ (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.onUpdated)(currentElement.trigger);
+ (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.onMounted)(currentElement.trigger);
+ return currentElement;
+}
+
+function useCycleList(list, options) {
+ const state = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.shallowRef)(getInitialValue());
+ const listRef = (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toRef)(list);
+ const index = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.computed)({
+ get() {
+ var _a;
+ const targetList = listRef.value;
+ let index2 = (options == null ? void 0 : options.getIndexOf) ? options.getIndexOf(state.value, targetList) : targetList.indexOf(state.value);
+ if (index2 < 0)
+ index2 = (_a = options == null ? void 0 : options.fallbackIndex) != null ? _a : 0;
+ return index2;
+ },
+ set(v) {
+ set(v);
+ }
+ });
+ function set(i) {
+ const targetList = listRef.value;
+ const length = targetList.length;
+ const index2 = (i % length + length) % length;
+ const value = targetList[index2];
+ state.value = value;
+ return value;
+ }
+ function shift(delta = 1) {
+ return set(index.value + delta);
+ }
+ function next(n = 1) {
+ return shift(n);
+ }
+ function prev(n = 1) {
+ return shift(-n);
+ }
+ function getInitialValue() {
+ var _a, _b;
+ return (_b = (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)((_a = options == null ? void 0 : options.initialValue) != null ? _a : (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(list)[0])) != null ? _b : void 0;
+ }
+ (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.watch)(listRef, () => set(index.value));
+ return {
+ state,
+ index,
+ next,
+ prev,
+ go: set
+ };
+}
+
+function useDark(options = {}) {
+ const {
+ valueDark = "dark",
+ valueLight = "",
+ window = defaultWindow
+ } = options;
+ const mode = useColorMode({
+ ...options,
+ onChanged: (mode2, defaultHandler) => {
+ var _a;
+ if (options.onChanged)
+ (_a = options.onChanged) == null ? void 0 : _a.call(options, mode2 === "dark", defaultHandler, mode2);
+ else
+ defaultHandler(mode2);
+ },
+ modes: {
+ dark: valueDark,
+ light: valueLight
+ }
+ });
+ const system = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.computed)(() => {
+ if (mode.system) {
+ return mode.system.value;
+ } else {
+ const preferredDark = usePreferredDark({ window });
+ return preferredDark.value ? "dark" : "light";
+ }
+ });
+ const isDark = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.computed)({
+ get() {
+ return mode.value === "dark";
+ },
+ set(v) {
+ const modeVal = v ? "dark" : "light";
+ if (system.value === modeVal)
+ mode.value = "auto";
+ else
+ mode.value = modeVal;
+ }
+ });
+ return isDark;
+}
+
+function fnBypass(v) {
+ return v;
+}
+function fnSetSource(source, value) {
+ return source.value = value;
+}
+function defaultDump(clone) {
+ return clone ? typeof clone === "function" ? clone : cloneFnJSON : fnBypass;
+}
+function defaultParse(clone) {
+ return clone ? typeof clone === "function" ? clone : cloneFnJSON : fnBypass;
+}
+function useManualRefHistory(source, options = {}) {
+ const {
+ clone = false,
+ dump = defaultDump(clone),
+ parse = defaultParse(clone),
+ setSource = fnSetSource
+ } = options;
+ function _createHistoryRecord() {
+ return (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.markRaw)({
+ snapshot: dump(source.value),
+ timestamp: (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.timestamp)()
+ });
+ }
+ const last = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(_createHistoryRecord());
+ const undoStack = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)([]);
+ const redoStack = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)([]);
+ const _setSource = (record) => {
+ setSource(source, parse(record.snapshot));
+ last.value = record;
+ };
+ const commit = () => {
+ undoStack.value.unshift(last.value);
+ last.value = _createHistoryRecord();
+ if (options.capacity && undoStack.value.length > options.capacity)
+ undoStack.value.splice(options.capacity, Number.POSITIVE_INFINITY);
+ if (redoStack.value.length)
+ redoStack.value.splice(0, redoStack.value.length);
+ };
+ const clear = () => {
+ undoStack.value.splice(0, undoStack.value.length);
+ redoStack.value.splice(0, redoStack.value.length);
+ };
+ const undo = () => {
+ const state = undoStack.value.shift();
+ if (state) {
+ redoStack.value.unshift(last.value);
+ _setSource(state);
+ }
+ };
+ const redo = () => {
+ const state = redoStack.value.shift();
+ if (state) {
+ undoStack.value.unshift(last.value);
+ _setSource(state);
+ }
+ };
+ const reset = () => {
+ _setSource(last.value);
+ };
+ const history = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.computed)(() => [last.value, ...undoStack.value]);
+ const canUndo = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.computed)(() => undoStack.value.length > 0);
+ const canRedo = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.computed)(() => redoStack.value.length > 0);
+ return {
+ source,
+ undoStack,
+ redoStack,
+ last,
+ history,
+ canUndo,
+ canRedo,
+ clear,
+ commit,
+ reset,
+ undo,
+ redo
+ };
+}
+
+function useRefHistory(source, options = {}) {
+ const {
+ deep = false,
+ flush = "pre",
+ eventFilter
+ } = options;
+ const {
+ eventFilter: composedFilter,
+ pause,
+ resume: resumeTracking,
+ isActive: isTracking
+ } = (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.pausableFilter)(eventFilter);
+ const {
+ ignoreUpdates,
+ ignorePrevAsyncUpdates,
+ stop
+ } = (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.watchIgnorable)(
+ source,
+ commit,
+ { deep, flush, eventFilter: composedFilter }
+ );
+ function setSource(source2, value) {
+ ignorePrevAsyncUpdates();
+ ignoreUpdates(() => {
+ source2.value = value;
+ });
+ }
+ const manualHistory = useManualRefHistory(source, { ...options, clone: options.clone || deep, setSource });
+ const { clear, commit: manualCommit } = manualHistory;
+ function commit() {
+ ignorePrevAsyncUpdates();
+ manualCommit();
+ }
+ function resume(commitNow) {
+ resumeTracking();
+ if (commitNow)
+ commit();
+ }
+ function batch(fn) {
+ let canceled = false;
+ const cancel = () => canceled = true;
+ ignoreUpdates(() => {
+ fn(cancel);
+ });
+ if (!canceled)
+ commit();
+ }
+ function dispose() {
+ stop();
+ clear();
+ }
+ return {
+ ...manualHistory,
+ isTracking,
+ pause,
+ resume,
+ commit,
+ batch,
+ dispose
+ };
+}
+
+function useDebouncedRefHistory(source, options = {}) {
+ const filter = options.debounce ? (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.debounceFilter)(options.debounce) : void 0;
+ const history = useRefHistory(source, { ...options, eventFilter: filter });
+ return {
+ ...history
+ };
+}
+
+function useDeviceMotion(options = {}) {
+ const {
+ window = defaultWindow,
+ eventFilter = _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.bypassFilter
+ } = options;
+ const acceleration = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)({ x: null, y: null, z: null });
+ const rotationRate = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)({ alpha: null, beta: null, gamma: null });
+ const interval = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(0);
+ const accelerationIncludingGravity = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)({
+ x: null,
+ y: null,
+ z: null
+ });
+ if (window) {
+ const onDeviceMotion = (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.createFilterWrapper)(
+ eventFilter,
+ (event) => {
+ acceleration.value = event.acceleration;
+ accelerationIncludingGravity.value = event.accelerationIncludingGravity;
+ rotationRate.value = event.rotationRate;
+ interval.value = event.interval;
+ }
+ );
+ useEventListener(window, "devicemotion", onDeviceMotion);
+ }
+ return {
+ acceleration,
+ accelerationIncludingGravity,
+ rotationRate,
+ interval
+ };
+}
+
+function useDeviceOrientation(options = {}) {
+ const { window = defaultWindow } = options;
+ const isSupported = useSupported(() => window && "DeviceOrientationEvent" in window);
+ const isAbsolute = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(false);
+ const alpha = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(null);
+ const beta = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(null);
+ const gamma = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(null);
+ if (window && isSupported.value) {
+ useEventListener(window, "deviceorientation", (event) => {
+ isAbsolute.value = event.absolute;
+ alpha.value = event.alpha;
+ beta.value = event.beta;
+ gamma.value = event.gamma;
+ });
+ }
+ return {
+ isSupported,
+ isAbsolute,
+ alpha,
+ beta,
+ gamma
+ };
+}
+
+function useDevicePixelRatio(options = {}) {
+ const {
+ window = defaultWindow
+ } = options;
+ const pixelRatio = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(1);
+ if (window) {
+ let observe2 = function() {
+ pixelRatio.value = window.devicePixelRatio;
+ cleanup2();
+ media = window.matchMedia(`(resolution: ${pixelRatio.value}dppx)`);
+ media.addEventListener("change", observe2, { once: true });
+ }, cleanup2 = function() {
+ media == null ? void 0 : media.removeEventListener("change", observe2);
+ };
+ let media;
+ observe2();
+ (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.tryOnScopeDispose)(cleanup2);
+ }
+ return { pixelRatio };
+}
+
+function useDevicesList(options = {}) {
+ const {
+ navigator = defaultNavigator,
+ requestPermissions = false,
+ constraints = { audio: true, video: true },
+ onUpdated
+ } = options;
+ const devices = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)([]);
+ const videoInputs = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.computed)(() => devices.value.filter((i) => i.kind === "videoinput"));
+ const audioInputs = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.computed)(() => devices.value.filter((i) => i.kind === "audioinput"));
+ const audioOutputs = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.computed)(() => devices.value.filter((i) => i.kind === "audiooutput"));
+ const isSupported = useSupported(() => navigator && navigator.mediaDevices && navigator.mediaDevices.enumerateDevices);
+ const permissionGranted = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(false);
+ let stream;
+ async function update() {
+ if (!isSupported.value)
+ return;
+ devices.value = await navigator.mediaDevices.enumerateDevices();
+ onUpdated == null ? void 0 : onUpdated(devices.value);
+ if (stream) {
+ stream.getTracks().forEach((t) => t.stop());
+ stream = null;
+ }
+ }
+ async function ensurePermissions() {
+ if (!isSupported.value)
+ return false;
+ if (permissionGranted.value)
+ return true;
+ const { state, query } = usePermission("camera", { controls: true });
+ await query();
+ if (state.value !== "granted") {
+ stream = await navigator.mediaDevices.getUserMedia(constraints);
+ update();
+ permissionGranted.value = true;
+ } else {
+ permissionGranted.value = true;
+ }
+ return permissionGranted.value;
+ }
+ if (isSupported.value) {
+ if (requestPermissions)
+ ensurePermissions();
+ useEventListener(navigator.mediaDevices, "devicechange", update);
+ update();
+ }
+ return {
+ devices,
+ ensurePermissions,
+ permissionGranted,
+ videoInputs,
+ audioInputs,
+ audioOutputs,
+ isSupported
+ };
+}
+
+function useDisplayMedia(options = {}) {
+ var _a;
+ const enabled = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)((_a = options.enabled) != null ? _a : false);
+ const video = options.video;
+ const audio = options.audio;
+ const { navigator = defaultNavigator } = options;
+ const isSupported = useSupported(() => {
+ var _a2;
+ return (_a2 = navigator == null ? void 0 : navigator.mediaDevices) == null ? void 0 : _a2.getDisplayMedia;
+ });
+ const constraint = { audio, video };
+ const stream = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.shallowRef)();
+ async function _start() {
+ var _a2;
+ if (!isSupported.value || stream.value)
+ return;
+ stream.value = await navigator.mediaDevices.getDisplayMedia(constraint);
+ (_a2 = stream.value) == null ? void 0 : _a2.getTracks().forEach((t) => t.addEventListener("ended", stop));
+ return stream.value;
+ }
+ async function _stop() {
+ var _a2;
+ (_a2 = stream.value) == null ? void 0 : _a2.getTracks().forEach((t) => t.stop());
+ stream.value = void 0;
+ }
+ function stop() {
+ _stop();
+ enabled.value = false;
+ }
+ async function start() {
+ await _start();
+ if (stream.value)
+ enabled.value = true;
+ return stream.value;
+ }
+ (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.watch)(
+ enabled,
+ (v) => {
+ if (v)
+ _start();
+ else
+ _stop();
+ },
+ { immediate: true }
+ );
+ return {
+ isSupported,
+ stream,
+ start,
+ stop,
+ enabled
+ };
+}
+
+function useDocumentVisibility(options = {}) {
+ const { document = defaultDocument } = options;
+ if (!document)
+ return (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)("visible");
+ const visibility = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(document.visibilityState);
+ useEventListener(document, "visibilitychange", () => {
+ visibility.value = document.visibilityState;
+ });
+ return visibility;
+}
+
+function useDraggable(target, options = {}) {
+ var _a, _b;
+ const {
+ pointerTypes,
+ preventDefault,
+ stopPropagation,
+ exact,
+ onMove,
+ onEnd,
+ onStart,
+ initialValue,
+ axis = "both",
+ draggingElement = defaultWindow,
+ containerElement,
+ handle: draggingHandle = target,
+ buttons = [0]
+ } = options;
+ const position = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(
+ (_a = (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(initialValue)) != null ? _a : { x: 0, y: 0 }
+ );
+ const pressedDelta = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)();
+ const filterEvent = (e) => {
+ if (pointerTypes)
+ return pointerTypes.includes(e.pointerType);
+ return true;
+ };
+ const handleEvent = (e) => {
+ if ((0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(preventDefault))
+ e.preventDefault();
+ if ((0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(stopPropagation))
+ e.stopPropagation();
+ };
+ const start = (e) => {
+ var _a2;
+ if (!(0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(buttons).includes(e.button))
+ return;
+ if ((0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(options.disabled) || !filterEvent(e))
+ return;
+ if ((0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(exact) && e.target !== (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(target))
+ return;
+ const container = (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(containerElement);
+ const containerRect = (_a2 = container == null ? void 0 : container.getBoundingClientRect) == null ? void 0 : _a2.call(container);
+ const targetRect = (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(target).getBoundingClientRect();
+ const pos = {
+ x: e.clientX - (container ? targetRect.left - containerRect.left + container.scrollLeft : targetRect.left),
+ y: e.clientY - (container ? targetRect.top - containerRect.top + container.scrollTop : targetRect.top)
+ };
+ if ((onStart == null ? void 0 : onStart(pos, e)) === false)
+ return;
+ pressedDelta.value = pos;
+ handleEvent(e);
+ };
+ const move = (e) => {
+ if ((0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(options.disabled) || !filterEvent(e))
+ return;
+ if (!pressedDelta.value)
+ return;
+ const container = (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(containerElement);
+ const targetRect = (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(target).getBoundingClientRect();
+ let { x, y } = position.value;
+ if (axis === "x" || axis === "both") {
+ x = e.clientX - pressedDelta.value.x;
+ if (container)
+ x = Math.min(Math.max(0, x), container.scrollWidth - targetRect.width);
+ }
+ if (axis === "y" || axis === "both") {
+ y = e.clientY - pressedDelta.value.y;
+ if (container)
+ y = Math.min(Math.max(0, y), container.scrollHeight - targetRect.height);
+ }
+ position.value = {
+ x,
+ y
+ };
+ onMove == null ? void 0 : onMove(position.value, e);
+ handleEvent(e);
+ };
+ const end = (e) => {
+ if ((0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(options.disabled) || !filterEvent(e))
+ return;
+ if (!pressedDelta.value)
+ return;
+ pressedDelta.value = void 0;
+ onEnd == null ? void 0 : onEnd(position.value, e);
+ handleEvent(e);
+ };
+ if (_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.isClient) {
+ const config = { capture: (_b = options.capture) != null ? _b : true };
+ useEventListener(draggingHandle, "pointerdown", start, config);
+ useEventListener(draggingElement, "pointermove", move, config);
+ useEventListener(draggingElement, "pointerup", end, config);
+ }
+ return {
+ ...(0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toRefs)(position),
+ position,
+ isDragging: (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.computed)(() => !!pressedDelta.value),
+ style: (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.computed)(
+ () => `left:${position.value.x}px;top:${position.value.y}px;`
+ )
+ };
+}
+
+function useDropZone(target, options = {}) {
+ const isOverDropZone = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(false);
+ const files = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.shallowRef)(null);
+ let counter = 0;
+ let isDataTypeIncluded = true;
+ if (_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.isClient) {
+ const _options = typeof options === "function" ? { onDrop: options } : options;
+ const getFiles = (event) => {
+ var _a, _b;
+ const list = Array.from((_b = (_a = event.dataTransfer) == null ? void 0 : _a.files) != null ? _b : []);
+ return files.value = list.length === 0 ? null : list;
+ };
+ useEventListener(target, "dragenter", (event) => {
+ var _a, _b;
+ const types = Array.from(((_a = event == null ? void 0 : event.dataTransfer) == null ? void 0 : _a.items) || []).map((i) => i.kind === "file" ? i.type : null).filter(_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.notNullish);
+ if (_options.dataTypes && event.dataTransfer) {
+ const dataTypes = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.unref)(_options.dataTypes);
+ isDataTypeIncluded = typeof dataTypes === "function" ? dataTypes(types) : dataTypes ? dataTypes.some((item) => types.includes(item)) : true;
+ if (!isDataTypeIncluded)
+ return;
+ }
+ event.preventDefault();
+ counter += 1;
+ isOverDropZone.value = true;
+ (_b = _options.onEnter) == null ? void 0 : _b.call(_options, getFiles(event), event);
+ });
+ useEventListener(target, "dragover", (event) => {
+ var _a;
+ if (!isDataTypeIncluded)
+ return;
+ event.preventDefault();
+ (_a = _options.onOver) == null ? void 0 : _a.call(_options, getFiles(event), event);
+ });
+ useEventListener(target, "dragleave", (event) => {
+ var _a;
+ if (!isDataTypeIncluded)
+ return;
+ event.preventDefault();
+ counter -= 1;
+ if (counter === 0)
+ isOverDropZone.value = false;
+ (_a = _options.onLeave) == null ? void 0 : _a.call(_options, getFiles(event), event);
+ });
+ useEventListener(target, "drop", (event) => {
+ var _a;
+ event.preventDefault();
+ counter = 0;
+ isOverDropZone.value = false;
+ (_a = _options.onDrop) == null ? void 0 : _a.call(_options, getFiles(event), event);
+ });
+ }
+ return {
+ files,
+ isOverDropZone
+ };
+}
+
+function useResizeObserver(target, callback, options = {}) {
+ const { window = defaultWindow, ...observerOptions } = options;
+ let observer;
+ const isSupported = useSupported(() => window && "ResizeObserver" in window);
+ const cleanup = () => {
+ if (observer) {
+ observer.disconnect();
+ observer = void 0;
+ }
+ };
+ const targets = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.computed)(() => {
+ const _targets = (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(target);
+ return Array.isArray(_targets) ? _targets.map((el) => unrefElement(el)) : [unrefElement(_targets)];
+ });
+ const stopWatch = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.watch)(
+ targets,
+ (els) => {
+ cleanup();
+ if (isSupported.value && window) {
+ observer = new ResizeObserver(callback);
+ for (const _el of els) {
+ if (_el)
+ observer.observe(_el, observerOptions);
+ }
+ }
+ },
+ { immediate: true, flush: "post" }
+ );
+ const stop = () => {
+ cleanup();
+ stopWatch();
+ };
+ (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.tryOnScopeDispose)(stop);
+ return {
+ isSupported,
+ stop
+ };
+}
+
+function useElementBounding(target, options = {}) {
+ const {
+ reset = true,
+ windowResize = true,
+ windowScroll = true,
+ immediate = true,
+ updateTiming = "sync"
+ } = options;
+ const height = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(0);
+ const bottom = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(0);
+ const left = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(0);
+ const right = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(0);
+ const top = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(0);
+ const width = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(0);
+ const x = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(0);
+ const y = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(0);
+ function recalculate() {
+ const el = unrefElement(target);
+ if (!el) {
+ if (reset) {
+ height.value = 0;
+ bottom.value = 0;
+ left.value = 0;
+ right.value = 0;
+ top.value = 0;
+ width.value = 0;
+ x.value = 0;
+ y.value = 0;
+ }
+ return;
+ }
+ const rect = el.getBoundingClientRect();
+ height.value = rect.height;
+ bottom.value = rect.bottom;
+ left.value = rect.left;
+ right.value = rect.right;
+ top.value = rect.top;
+ width.value = rect.width;
+ x.value = rect.x;
+ y.value = rect.y;
+ }
+ function update() {
+ if (updateTiming === "sync")
+ recalculate();
+ else if (updateTiming === "next-frame")
+ requestAnimationFrame(() => recalculate());
+ }
+ useResizeObserver(target, update);
+ (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.watch)(() => unrefElement(target), (ele) => !ele && update());
+ useMutationObserver(target, update, {
+ attributeFilter: ["style", "class"]
+ });
+ if (windowScroll)
+ useEventListener("scroll", update, { capture: true, passive: true });
+ if (windowResize)
+ useEventListener("resize", update, { passive: true });
+ (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.tryOnMounted)(() => {
+ if (immediate)
+ update();
+ });
+ return {
+ height,
+ bottom,
+ left,
+ right,
+ top,
+ width,
+ x,
+ y,
+ update
+ };
+}
+
+function useElementByPoint(options) {
+ const {
+ x,
+ y,
+ document = defaultDocument,
+ multiple,
+ interval = "requestAnimationFrame",
+ immediate = true
+ } = options;
+ const isSupported = useSupported(() => {
+ if ((0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(multiple))
+ return document && "elementsFromPoint" in document;
+ return document && "elementFromPoint" in document;
+ });
+ const element = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(null);
+ const cb = () => {
+ var _a, _b;
+ element.value = (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(multiple) ? (_a = document == null ? void 0 : document.elementsFromPoint((0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(x), (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(y))) != null ? _a : [] : (_b = document == null ? void 0 : document.elementFromPoint((0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(x), (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(y))) != null ? _b : null;
+ };
+ const controls = interval === "requestAnimationFrame" ? useRafFn(cb, { immediate }) : (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.useIntervalFn)(cb, interval, { immediate });
+ return {
+ isSupported,
+ element,
+ ...controls
+ };
+}
+
+function useElementHover(el, options = {}) {
+ const {
+ delayEnter = 0,
+ delayLeave = 0,
+ window = defaultWindow
+ } = options;
+ const isHovered = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(false);
+ let timer;
+ const toggle = (entering) => {
+ const delay = entering ? delayEnter : delayLeave;
+ if (timer) {
+ clearTimeout(timer);
+ timer = void 0;
+ }
+ if (delay)
+ timer = setTimeout(() => isHovered.value = entering, delay);
+ else
+ isHovered.value = entering;
+ };
+ if (!window)
+ return isHovered;
+ useEventListener(el, "mouseenter", () => toggle(true), { passive: true });
+ useEventListener(el, "mouseleave", () => toggle(false), { passive: true });
+ return isHovered;
+}
+
+function useElementSize(target, initialSize = { width: 0, height: 0 }, options = {}) {
+ const { window = defaultWindow, box = "content-box" } = options;
+ const isSVG = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.computed)(() => {
+ var _a, _b;
+ return (_b = (_a = unrefElement(target)) == null ? void 0 : _a.namespaceURI) == null ? void 0 : _b.includes("svg");
+ });
+ const width = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(initialSize.width);
+ const height = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(initialSize.height);
+ const { stop: stop1 } = useResizeObserver(
+ target,
+ ([entry]) => {
+ const boxSize = box === "border-box" ? entry.borderBoxSize : box === "content-box" ? entry.contentBoxSize : entry.devicePixelContentBoxSize;
+ if (window && isSVG.value) {
+ const $elem = unrefElement(target);
+ if ($elem) {
+ const rect = $elem.getBoundingClientRect();
+ width.value = rect.width;
+ height.value = rect.height;
+ }
+ } else {
+ if (boxSize) {
+ const formatBoxSize = Array.isArray(boxSize) ? boxSize : [boxSize];
+ width.value = formatBoxSize.reduce((acc, { inlineSize }) => acc + inlineSize, 0);
+ height.value = formatBoxSize.reduce((acc, { blockSize }) => acc + blockSize, 0);
+ } else {
+ width.value = entry.contentRect.width;
+ height.value = entry.contentRect.height;
+ }
+ }
+ },
+ options
+ );
+ (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.tryOnMounted)(() => {
+ const ele = unrefElement(target);
+ if (ele) {
+ width.value = "offsetWidth" in ele ? ele.offsetWidth : initialSize.width;
+ height.value = "offsetHeight" in ele ? ele.offsetHeight : initialSize.height;
+ }
+ });
+ const stop2 = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.watch)(
+ () => unrefElement(target),
+ (ele) => {
+ width.value = ele ? initialSize.width : 0;
+ height.value = ele ? initialSize.height : 0;
+ }
+ );
+ function stop() {
+ stop1();
+ stop2();
+ }
+ return {
+ width,
+ height,
+ stop
+ };
+}
+
+function useIntersectionObserver(target, callback, options = {}) {
+ const {
+ root,
+ rootMargin = "0px",
+ threshold = 0,
+ window = defaultWindow,
+ immediate = true
+ } = options;
+ const isSupported = useSupported(() => window && "IntersectionObserver" in window);
+ const targets = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.computed)(() => {
+ const _target = (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(target);
+ return (Array.isArray(_target) ? _target : [_target]).map(unrefElement).filter(_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.notNullish);
+ });
+ let cleanup = _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.noop;
+ const isActive = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(immediate);
+ const stopWatch = isSupported.value ? (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.watch)(
+ () => [targets.value, unrefElement(root), isActive.value],
+ ([targets2, root2]) => {
+ cleanup();
+ if (!isActive.value)
+ return;
+ if (!targets2.length)
+ return;
+ const observer = new IntersectionObserver(
+ callback,
+ {
+ root: unrefElement(root2),
+ rootMargin,
+ threshold
+ }
+ );
+ targets2.forEach((el) => el && observer.observe(el));
+ cleanup = () => {
+ observer.disconnect();
+ cleanup = _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.noop;
+ };
+ },
+ { immediate, flush: "post" }
+ ) : _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.noop;
+ const stop = () => {
+ cleanup();
+ stopWatch();
+ isActive.value = false;
+ };
+ (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.tryOnScopeDispose)(stop);
+ return {
+ isSupported,
+ isActive,
+ pause() {
+ cleanup();
+ isActive.value = false;
+ },
+ resume() {
+ isActive.value = true;
+ },
+ stop
+ };
+}
+
+function useElementVisibility(element, options = {}) {
+ const { window = defaultWindow, scrollTarget, threshold = 0 } = options;
+ const elementIsVisible = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(false);
+ useIntersectionObserver(
+ element,
+ (intersectionObserverEntries) => {
+ let isIntersecting = elementIsVisible.value;
+ let latestTime = 0;
+ for (const entry of intersectionObserverEntries) {
+ if (entry.time >= latestTime) {
+ latestTime = entry.time;
+ isIntersecting = entry.isIntersecting;
+ }
+ }
+ elementIsVisible.value = isIntersecting;
+ },
+ {
+ root: scrollTarget,
+ window,
+ threshold
+ }
+ );
+ return elementIsVisible;
+}
+
+const events = /* @__PURE__ */ new Map();
+
+function useEventBus(key) {
+ const scope = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.getCurrentScope)();
+ function on(listener) {
+ var _a;
+ const listeners = events.get(key) || /* @__PURE__ */ new Set();
+ listeners.add(listener);
+ events.set(key, listeners);
+ const _off = () => off(listener);
+ (_a = scope == null ? void 0 : scope.cleanups) == null ? void 0 : _a.push(_off);
+ return _off;
+ }
+ function once(listener) {
+ function _listener(...args) {
+ off(_listener);
+ listener(...args);
+ }
+ return on(_listener);
+ }
+ function off(listener) {
+ const listeners = events.get(key);
+ if (!listeners)
+ return;
+ listeners.delete(listener);
+ if (!listeners.size)
+ reset();
+ }
+ function reset() {
+ events.delete(key);
+ }
+ function emit(event, payload) {
+ var _a;
+ (_a = events.get(key)) == null ? void 0 : _a.forEach((v) => v(event, payload));
+ }
+ return { on, once, off, emit, reset };
+}
+
+function resolveNestedOptions$1(options) {
+ if (options === true)
+ return {};
+ return options;
+}
+function useEventSource(url, events = [], options = {}) {
+ const event = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(null);
+ const data = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(null);
+ const status = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)("CONNECTING");
+ const eventSource = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(null);
+ const error = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.shallowRef)(null);
+ const urlRef = (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toRef)(url);
+ const lastEventId = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.shallowRef)(null);
+ let explicitlyClosed = false;
+ let retried = 0;
+ const {
+ withCredentials = false,
+ immediate = true
+ } = options;
+ const close = () => {
+ if (_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.isClient && eventSource.value) {
+ eventSource.value.close();
+ eventSource.value = null;
+ status.value = "CLOSED";
+ explicitlyClosed = true;
+ }
+ };
+ const _init = () => {
+ if (explicitlyClosed || typeof urlRef.value === "undefined")
+ return;
+ const es = new EventSource(urlRef.value, { withCredentials });
+ status.value = "CONNECTING";
+ eventSource.value = es;
+ es.onopen = () => {
+ status.value = "OPEN";
+ error.value = null;
+ };
+ es.onerror = (e) => {
+ status.value = "CLOSED";
+ error.value = e;
+ if (es.readyState === 2 && !explicitlyClosed && options.autoReconnect) {
+ es.close();
+ const {
+ retries = -1,
+ delay = 1e3,
+ onFailed
+ } = resolveNestedOptions$1(options.autoReconnect);
+ retried += 1;
+ if (typeof retries === "number" && (retries < 0 || retried < retries))
+ setTimeout(_init, delay);
+ else if (typeof retries === "function" && retries())
+ setTimeout(_init, delay);
+ else
+ onFailed == null ? void 0 : onFailed();
+ }
+ };
+ es.onmessage = (e) => {
+ event.value = null;
+ data.value = e.data;
+ lastEventId.value = e.lastEventId;
+ };
+ for (const event_name of events) {
+ useEventListener(es, event_name, (e) => {
+ event.value = event_name;
+ data.value = e.data || null;
+ });
+ }
+ };
+ const open = () => {
+ if (!_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.isClient)
+ return;
+ close();
+ explicitlyClosed = false;
+ retried = 0;
+ _init();
+ };
+ if (immediate)
+ (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.watch)(urlRef, open, { immediate: true });
+ (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.tryOnScopeDispose)(close);
+ return {
+ eventSource,
+ event,
+ data,
+ status,
+ error,
+ open,
+ close,
+ lastEventId
+ };
+}
+
+function useEyeDropper(options = {}) {
+ const { initialValue = "" } = options;
+ const isSupported = useSupported(() => typeof window !== "undefined" && "EyeDropper" in window);
+ const sRGBHex = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(initialValue);
+ async function open(openOptions) {
+ if (!isSupported.value)
+ return;
+ const eyeDropper = new window.EyeDropper();
+ const result = await eyeDropper.open(openOptions);
+ sRGBHex.value = result.sRGBHex;
+ return result;
+ }
+ return { isSupported, sRGBHex, open };
+}
+
+function useFavicon(newIcon = null, options = {}) {
+ const {
+ baseUrl = "",
+ rel = "icon",
+ document = defaultDocument
+ } = options;
+ const favicon = (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toRef)(newIcon);
+ const applyIcon = (icon) => {
+ const elements = document == null ? void 0 : document.head.querySelectorAll(`link[rel*="${rel}"]`);
+ if (!elements || elements.length === 0) {
+ const link = document == null ? void 0 : document.createElement("link");
+ if (link) {
+ link.rel = rel;
+ link.href = `${baseUrl}${icon}`;
+ link.type = `image/${icon.split(".").pop()}`;
+ document == null ? void 0 : document.head.append(link);
+ }
+ return;
+ }
+ elements == null ? void 0 : elements.forEach((el) => el.href = `${baseUrl}${icon}`);
+ };
+ (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.watch)(
+ favicon,
+ (i, o) => {
+ if (typeof i === "string" && i !== o)
+ applyIcon(i);
+ },
+ { immediate: true }
+ );
+ return favicon;
+}
+
+const payloadMapping = {
+ json: "application/json",
+ text: "text/plain"
+};
+function isFetchOptions(obj) {
+ return obj && (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.containsProp)(obj, "immediate", "refetch", "initialData", "timeout", "beforeFetch", "afterFetch", "onFetchError", "fetch", "updateDataOnError");
+}
+const reAbsolute = /^(?:[a-z][a-z\d+\-.]*:)?\/\//i;
+function isAbsoluteURL(url) {
+ return reAbsolute.test(url);
+}
+function headersToObject(headers) {
+ if (typeof Headers !== "undefined" && headers instanceof Headers)
+ return Object.fromEntries(headers.entries());
+ return headers;
+}
+function combineCallbacks(combination, ...callbacks) {
+ if (combination === "overwrite") {
+ return async (ctx) => {
+ const callback = callbacks[callbacks.length - 1];
+ if (callback)
+ return { ...ctx, ...await callback(ctx) };
+ return ctx;
+ };
+ } else {
+ return async (ctx) => {
+ for (const callback of callbacks) {
+ if (callback)
+ ctx = { ...ctx, ...await callback(ctx) };
+ }
+ return ctx;
+ };
+ }
+}
+function createFetch(config = {}) {
+ const _combination = config.combination || "chain";
+ const _options = config.options || {};
+ const _fetchOptions = config.fetchOptions || {};
+ function useFactoryFetch(url, ...args) {
+ const computedUrl = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.computed)(() => {
+ const baseUrl = (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(config.baseUrl);
+ const targetUrl = (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(url);
+ return baseUrl && !isAbsoluteURL(targetUrl) ? joinPaths(baseUrl, targetUrl) : targetUrl;
+ });
+ let options = _options;
+ let fetchOptions = _fetchOptions;
+ if (args.length > 0) {
+ if (isFetchOptions(args[0])) {
+ options = {
+ ...options,
+ ...args[0],
+ beforeFetch: combineCallbacks(_combination, _options.beforeFetch, args[0].beforeFetch),
+ afterFetch: combineCallbacks(_combination, _options.afterFetch, args[0].afterFetch),
+ onFetchError: combineCallbacks(_combination, _options.onFetchError, args[0].onFetchError)
+ };
+ } else {
+ fetchOptions = {
+ ...fetchOptions,
+ ...args[0],
+ headers: {
+ ...headersToObject(fetchOptions.headers) || {},
+ ...headersToObject(args[0].headers) || {}
+ }
+ };
+ }
+ }
+ if (args.length > 1 && isFetchOptions(args[1])) {
+ options = {
+ ...options,
+ ...args[1],
+ beforeFetch: combineCallbacks(_combination, _options.beforeFetch, args[1].beforeFetch),
+ afterFetch: combineCallbacks(_combination, _options.afterFetch, args[1].afterFetch),
+ onFetchError: combineCallbacks(_combination, _options.onFetchError, args[1].onFetchError)
+ };
+ }
+ return useFetch(computedUrl, fetchOptions, options);
+ }
+ return useFactoryFetch;
+}
+function useFetch(url, ...args) {
+ var _a;
+ const supportsAbort = typeof AbortController === "function";
+ let fetchOptions = {};
+ let options = {
+ immediate: true,
+ refetch: false,
+ timeout: 0,
+ updateDataOnError: false
+ };
+ const config = {
+ method: "GET",
+ type: "text",
+ payload: void 0
+ };
+ if (args.length > 0) {
+ if (isFetchOptions(args[0]))
+ options = { ...options, ...args[0] };
+ else
+ fetchOptions = args[0];
+ }
+ if (args.length > 1) {
+ if (isFetchOptions(args[1]))
+ options = { ...options, ...args[1] };
+ }
+ const {
+ fetch = (_a = defaultWindow) == null ? void 0 : _a.fetch,
+ initialData,
+ timeout
+ } = options;
+ const responseEvent = (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.createEventHook)();
+ const errorEvent = (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.createEventHook)();
+ const finallyEvent = (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.createEventHook)();
+ const isFinished = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(false);
+ const isFetching = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(false);
+ const aborted = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(false);
+ const statusCode = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(null);
+ const response = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.shallowRef)(null);
+ const error = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.shallowRef)(null);
+ const data = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.shallowRef)(initialData || null);
+ const canAbort = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.computed)(() => supportsAbort && isFetching.value);
+ let controller;
+ let timer;
+ const abort = () => {
+ if (supportsAbort) {
+ controller == null ? void 0 : controller.abort();
+ controller = new AbortController();
+ controller.signal.onabort = () => aborted.value = true;
+ fetchOptions = {
+ ...fetchOptions,
+ signal: controller.signal
+ };
+ }
+ };
+ const loading = (isLoading) => {
+ isFetching.value = isLoading;
+ isFinished.value = !isLoading;
+ };
+ if (timeout)
+ timer = (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.useTimeoutFn)(abort, timeout, { immediate: false });
+ let executeCounter = 0;
+ const execute = async (throwOnFailed = false) => {
+ var _a2, _b;
+ abort();
+ loading(true);
+ error.value = null;
+ statusCode.value = null;
+ aborted.value = false;
+ executeCounter += 1;
+ const currentExecuteCounter = executeCounter;
+ const defaultFetchOptions = {
+ method: config.method,
+ headers: {}
+ };
+ if (config.payload) {
+ const headers = headersToObject(defaultFetchOptions.headers);
+ const payload = (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(config.payload);
+ if (!config.payloadType && payload && Object.getPrototypeOf(payload) === Object.prototype && !(payload instanceof FormData))
+ config.payloadType = "json";
+ if (config.payloadType)
+ headers["Content-Type"] = (_a2 = payloadMapping[config.payloadType]) != null ? _a2 : config.payloadType;
+ defaultFetchOptions.body = config.payloadType === "json" ? JSON.stringify(payload) : payload;
+ }
+ let isCanceled = false;
+ const context = {
+ url: (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(url),
+ options: {
+ ...defaultFetchOptions,
+ ...fetchOptions
+ },
+ cancel: () => {
+ isCanceled = true;
+ }
+ };
+ if (options.beforeFetch)
+ Object.assign(context, await options.beforeFetch(context));
+ if (isCanceled || !fetch) {
+ loading(false);
+ return Promise.resolve(null);
+ }
+ let responseData = null;
+ if (timer)
+ timer.start();
+ return fetch(
+ context.url,
+ {
+ ...defaultFetchOptions,
+ ...context.options,
+ headers: {
+ ...headersToObject(defaultFetchOptions.headers),
+ ...headersToObject((_b = context.options) == null ? void 0 : _b.headers)
+ }
+ }
+ ).then(async (fetchResponse) => {
+ response.value = fetchResponse;
+ statusCode.value = fetchResponse.status;
+ responseData = await fetchResponse.clone()[config.type]();
+ if (!fetchResponse.ok) {
+ data.value = initialData || null;
+ throw new Error(fetchResponse.statusText);
+ }
+ if (options.afterFetch) {
+ ({ data: responseData } = await options.afterFetch({
+ data: responseData,
+ response: fetchResponse
+ }));
+ }
+ data.value = responseData;
+ responseEvent.trigger(fetchResponse);
+ return fetchResponse;
+ }).catch(async (fetchError) => {
+ let errorData = fetchError.message || fetchError.name;
+ if (options.onFetchError) {
+ ({ error: errorData, data: responseData } = await options.onFetchError({
+ data: responseData,
+ error: fetchError,
+ response: response.value
+ }));
+ }
+ error.value = errorData;
+ if (options.updateDataOnError)
+ data.value = responseData;
+ errorEvent.trigger(fetchError);
+ if (throwOnFailed)
+ throw fetchError;
+ return null;
+ }).finally(() => {
+ if (currentExecuteCounter === executeCounter)
+ loading(false);
+ if (timer)
+ timer.stop();
+ finallyEvent.trigger(null);
+ });
+ };
+ const refetch = (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toRef)(options.refetch);
+ (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.watch)(
+ [
+ refetch,
+ (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toRef)(url)
+ ],
+ ([refetch2]) => refetch2 && execute(),
+ { deep: true }
+ );
+ const shell = {
+ isFinished: (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.readonly)(isFinished),
+ isFetching: (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.readonly)(isFetching),
+ statusCode,
+ response,
+ error,
+ data,
+ canAbort,
+ aborted,
+ abort,
+ execute,
+ onFetchResponse: responseEvent.on,
+ onFetchError: errorEvent.on,
+ onFetchFinally: finallyEvent.on,
+ // method
+ get: setMethod("GET"),
+ put: setMethod("PUT"),
+ post: setMethod("POST"),
+ delete: setMethod("DELETE"),
+ patch: setMethod("PATCH"),
+ head: setMethod("HEAD"),
+ options: setMethod("OPTIONS"),
+ // type
+ json: setType("json"),
+ text: setType("text"),
+ blob: setType("blob"),
+ arrayBuffer: setType("arrayBuffer"),
+ formData: setType("formData")
+ };
+ function setMethod(method) {
+ return (payload, payloadType) => {
+ if (!isFetching.value) {
+ config.method = method;
+ config.payload = payload;
+ config.payloadType = payloadType;
+ if ((0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.isRef)(config.payload)) {
+ (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.watch)(
+ [
+ refetch,
+ (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toRef)(config.payload)
+ ],
+ ([refetch2]) => refetch2 && execute(),
+ { deep: true }
+ );
+ }
+ return {
+ ...shell,
+ then(onFulfilled, onRejected) {
+ return waitUntilFinished().then(onFulfilled, onRejected);
+ }
+ };
+ }
+ return void 0;
+ };
+ }
+ function waitUntilFinished() {
+ return new Promise((resolve, reject) => {
+ (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.until)(isFinished).toBe(true).then(() => resolve(shell)).catch((error2) => reject(error2));
+ });
+ }
+ function setType(type) {
+ return () => {
+ if (!isFetching.value) {
+ config.type = type;
+ return {
+ ...shell,
+ then(onFulfilled, onRejected) {
+ return waitUntilFinished().then(onFulfilled, onRejected);
+ }
+ };
+ }
+ return void 0;
+ };
+ }
+ if (options.immediate)
+ Promise.resolve().then(() => execute());
+ return {
+ ...shell,
+ then(onFulfilled, onRejected) {
+ return waitUntilFinished().then(onFulfilled, onRejected);
+ }
+ };
+}
+function joinPaths(start, end) {
+ if (!start.endsWith("/") && !end.startsWith("/"))
+ return `${start}/${end}`;
+ return `${start}${end}`;
+}
+
+const DEFAULT_OPTIONS = {
+ multiple: true,
+ accept: "*",
+ reset: false,
+ directory: false
+};
+function useFileDialog(options = {}) {
+ const {
+ document = defaultDocument
+ } = options;
+ const files = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(null);
+ const { on: onChange, trigger } = (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.createEventHook)();
+ let input;
+ if (document) {
+ input = document.createElement("input");
+ input.type = "file";
+ input.onchange = (event) => {
+ const result = event.target;
+ files.value = result.files;
+ trigger(files.value);
+ };
+ }
+ const reset = () => {
+ files.value = null;
+ if (input && input.value) {
+ input.value = "";
+ trigger(null);
+ }
+ };
+ const open = (localOptions) => {
+ if (!input)
+ return;
+ const _options = {
+ ...DEFAULT_OPTIONS,
+ ...options,
+ ...localOptions
+ };
+ input.multiple = _options.multiple;
+ input.accept = _options.accept;
+ input.webkitdirectory = _options.directory;
+ if ((0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.hasOwn)(_options, "capture"))
+ input.capture = _options.capture;
+ if (_options.reset)
+ reset();
+ input.click();
+ };
+ return {
+ files: (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.readonly)(files),
+ open,
+ reset,
+ onChange
+ };
+}
+
+function useFileSystemAccess(options = {}) {
+ const {
+ window: _window = defaultWindow,
+ dataType = "Text"
+ } = options;
+ const window = _window;
+ const isSupported = useSupported(() => window && "showSaveFilePicker" in window && "showOpenFilePicker" in window);
+ const fileHandle = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)();
+ const data = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)();
+ const file = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)();
+ const fileName = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.computed)(() => {
+ var _a, _b;
+ return (_b = (_a = file.value) == null ? void 0 : _a.name) != null ? _b : "";
+ });
+ const fileMIME = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.computed)(() => {
+ var _a, _b;
+ return (_b = (_a = file.value) == null ? void 0 : _a.type) != null ? _b : "";
+ });
+ const fileSize = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.computed)(() => {
+ var _a, _b;
+ return (_b = (_a = file.value) == null ? void 0 : _a.size) != null ? _b : 0;
+ });
+ const fileLastModified = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.computed)(() => {
+ var _a, _b;
+ return (_b = (_a = file.value) == null ? void 0 : _a.lastModified) != null ? _b : 0;
+ });
+ async function open(_options = {}) {
+ if (!isSupported.value)
+ return;
+ const [handle] = await window.showOpenFilePicker({ ...(0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(options), ..._options });
+ fileHandle.value = handle;
+ await updateData();
+ }
+ async function create(_options = {}) {
+ if (!isSupported.value)
+ return;
+ fileHandle.value = await window.showSaveFilePicker({ ...options, ..._options });
+ data.value = void 0;
+ await updateData();
+ }
+ async function save(_options = {}) {
+ if (!isSupported.value)
+ return;
+ if (!fileHandle.value)
+ return saveAs(_options);
+ if (data.value) {
+ const writableStream = await fileHandle.value.createWritable();
+ await writableStream.write(data.value);
+ await writableStream.close();
+ }
+ await updateFile();
+ }
+ async function saveAs(_options = {}) {
+ if (!isSupported.value)
+ return;
+ fileHandle.value = await window.showSaveFilePicker({ ...options, ..._options });
+ if (data.value) {
+ const writableStream = await fileHandle.value.createWritable();
+ await writableStream.write(data.value);
+ await writableStream.close();
+ }
+ await updateFile();
+ }
+ async function updateFile() {
+ var _a;
+ file.value = await ((_a = fileHandle.value) == null ? void 0 : _a.getFile());
+ }
+ async function updateData() {
+ var _a, _b;
+ await updateFile();
+ const type = (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(dataType);
+ if (type === "Text")
+ data.value = await ((_a = file.value) == null ? void 0 : _a.text());
+ else if (type === "ArrayBuffer")
+ data.value = await ((_b = file.value) == null ? void 0 : _b.arrayBuffer());
+ else if (type === "Blob")
+ data.value = file.value;
+ }
+ (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.watch)(() => (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(dataType), updateData);
+ return {
+ isSupported,
+ data,
+ file,
+ fileName,
+ fileMIME,
+ fileSize,
+ fileLastModified,
+ open,
+ create,
+ save,
+ saveAs,
+ updateData
+ };
+}
+
+function useFocus(target, options = {}) {
+ const { initialValue = false, focusVisible = false, preventScroll = false } = options;
+ const innerFocused = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(false);
+ const targetElement = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.computed)(() => unrefElement(target));
+ useEventListener(targetElement, "focus", (event) => {
+ var _a, _b;
+ if (!focusVisible || ((_b = (_a = event.target).matches) == null ? void 0 : _b.call(_a, ":focus-visible")))
+ innerFocused.value = true;
+ });
+ useEventListener(targetElement, "blur", () => innerFocused.value = false);
+ const focused = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.computed)({
+ get: () => innerFocused.value,
+ set(value) {
+ var _a, _b;
+ if (!value && innerFocused.value)
+ (_a = targetElement.value) == null ? void 0 : _a.blur();
+ else if (value && !innerFocused.value)
+ (_b = targetElement.value) == null ? void 0 : _b.focus({ preventScroll });
+ }
+ });
+ (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.watch)(
+ targetElement,
+ () => {
+ focused.value = initialValue;
+ },
+ { immediate: true, flush: "post" }
+ );
+ return { focused };
+}
+
+function useFocusWithin(target, options = {}) {
+ const activeElement = useActiveElement(options);
+ const targetElement = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.computed)(() => unrefElement(target));
+ const focused = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.computed)(() => targetElement.value && activeElement.value ? targetElement.value.contains(activeElement.value) : false);
+ return { focused };
+}
+
+function useFps(options) {
+ var _a;
+ const fps = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(0);
+ if (typeof performance === "undefined")
+ return fps;
+ const every = (_a = options == null ? void 0 : options.every) != null ? _a : 10;
+ let last = performance.now();
+ let ticks = 0;
+ useRafFn(() => {
+ ticks += 1;
+ if (ticks >= every) {
+ const now = performance.now();
+ const diff = now - last;
+ fps.value = Math.round(1e3 / (diff / ticks));
+ last = now;
+ ticks = 0;
+ }
+ });
+ return fps;
+}
+
+const eventHandlers = [
+ "fullscreenchange",
+ "webkitfullscreenchange",
+ "webkitendfullscreen",
+ "mozfullscreenchange",
+ "MSFullscreenChange"
+];
+function useFullscreen(target, options = {}) {
+ const {
+ document = defaultDocument,
+ autoExit = false
+ } = options;
+ const targetRef = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.computed)(() => {
+ var _a;
+ return (_a = unrefElement(target)) != null ? _a : document == null ? void 0 : document.querySelector("html");
+ });
+ const isFullscreen = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(false);
+ const requestMethod = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.computed)(() => {
+ return [
+ "requestFullscreen",
+ "webkitRequestFullscreen",
+ "webkitEnterFullscreen",
+ "webkitEnterFullScreen",
+ "webkitRequestFullScreen",
+ "mozRequestFullScreen",
+ "msRequestFullscreen"
+ ].find((m) => document && m in document || targetRef.value && m in targetRef.value);
+ });
+ const exitMethod = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.computed)(() => {
+ return [
+ "exitFullscreen",
+ "webkitExitFullscreen",
+ "webkitExitFullScreen",
+ "webkitCancelFullScreen",
+ "mozCancelFullScreen",
+ "msExitFullscreen"
+ ].find((m) => document && m in document || targetRef.value && m in targetRef.value);
+ });
+ const fullscreenEnabled = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.computed)(() => {
+ return [
+ "fullScreen",
+ "webkitIsFullScreen",
+ "webkitDisplayingFullscreen",
+ "mozFullScreen",
+ "msFullscreenElement"
+ ].find((m) => document && m in document || targetRef.value && m in targetRef.value);
+ });
+ const fullscreenElementMethod = [
+ "fullscreenElement",
+ "webkitFullscreenElement",
+ "mozFullScreenElement",
+ "msFullscreenElement"
+ ].find((m) => document && m in document);
+ const isSupported = useSupported(() => targetRef.value && document && requestMethod.value !== void 0 && exitMethod.value !== void 0 && fullscreenEnabled.value !== void 0);
+ const isCurrentElementFullScreen = () => {
+ if (fullscreenElementMethod)
+ return (document == null ? void 0 : document[fullscreenElementMethod]) === targetRef.value;
+ return false;
+ };
+ const isElementFullScreen = () => {
+ if (fullscreenEnabled.value) {
+ if (document && document[fullscreenEnabled.value] != null) {
+ return document[fullscreenEnabled.value];
+ } else {
+ const target2 = targetRef.value;
+ if ((target2 == null ? void 0 : target2[fullscreenEnabled.value]) != null) {
+ return Boolean(target2[fullscreenEnabled.value]);
+ }
+ }
+ }
+ return false;
+ };
+ async function exit() {
+ if (!isSupported.value || !isFullscreen.value)
+ return;
+ if (exitMethod.value) {
+ if ((document == null ? void 0 : document[exitMethod.value]) != null) {
+ await document[exitMethod.value]();
+ } else {
+ const target2 = targetRef.value;
+ if ((target2 == null ? void 0 : target2[exitMethod.value]) != null)
+ await target2[exitMethod.value]();
+ }
+ }
+ isFullscreen.value = false;
+ }
+ async function enter() {
+ if (!isSupported.value || isFullscreen.value)
+ return;
+ if (isElementFullScreen())
+ await exit();
+ const target2 = targetRef.value;
+ if (requestMethod.value && (target2 == null ? void 0 : target2[requestMethod.value]) != null) {
+ await target2[requestMethod.value]();
+ isFullscreen.value = true;
+ }
+ }
+ async function toggle() {
+ await (isFullscreen.value ? exit() : enter());
+ }
+ const handlerCallback = () => {
+ const isElementFullScreenValue = isElementFullScreen();
+ if (!isElementFullScreenValue || isElementFullScreenValue && isCurrentElementFullScreen())
+ isFullscreen.value = isElementFullScreenValue;
+ };
+ useEventListener(document, eventHandlers, handlerCallback, false);
+ useEventListener(() => unrefElement(targetRef), eventHandlers, handlerCallback, false);
+ if (autoExit)
+ (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.tryOnScopeDispose)(exit);
+ return {
+ isSupported,
+ isFullscreen,
+ enter,
+ exit,
+ toggle
+ };
+}
+
+function mapGamepadToXbox360Controller(gamepad) {
+ return (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.computed)(() => {
+ if (gamepad.value) {
+ return {
+ buttons: {
+ a: gamepad.value.buttons[0],
+ b: gamepad.value.buttons[1],
+ x: gamepad.value.buttons[2],
+ y: gamepad.value.buttons[3]
+ },
+ bumper: {
+ left: gamepad.value.buttons[4],
+ right: gamepad.value.buttons[5]
+ },
+ triggers: {
+ left: gamepad.value.buttons[6],
+ right: gamepad.value.buttons[7]
+ },
+ stick: {
+ left: {
+ horizontal: gamepad.value.axes[0],
+ vertical: gamepad.value.axes[1],
+ button: gamepad.value.buttons[10]
+ },
+ right: {
+ horizontal: gamepad.value.axes[2],
+ vertical: gamepad.value.axes[3],
+ button: gamepad.value.buttons[11]
+ }
+ },
+ dpad: {
+ up: gamepad.value.buttons[12],
+ down: gamepad.value.buttons[13],
+ left: gamepad.value.buttons[14],
+ right: gamepad.value.buttons[15]
+ },
+ back: gamepad.value.buttons[8],
+ start: gamepad.value.buttons[9]
+ };
+ }
+ return null;
+ });
+}
+function useGamepad(options = {}) {
+ const {
+ navigator = defaultNavigator
+ } = options;
+ const isSupported = useSupported(() => navigator && "getGamepads" in navigator);
+ const gamepads = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)([]);
+ const onConnectedHook = (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.createEventHook)();
+ const onDisconnectedHook = (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.createEventHook)();
+ const stateFromGamepad = (gamepad) => {
+ const hapticActuators = [];
+ const vibrationActuator = "vibrationActuator" in gamepad ? gamepad.vibrationActuator : null;
+ if (vibrationActuator)
+ hapticActuators.push(vibrationActuator);
+ if (gamepad.hapticActuators)
+ hapticActuators.push(...gamepad.hapticActuators);
+ return {
+ id: gamepad.id,
+ index: gamepad.index,
+ connected: gamepad.connected,
+ mapping: gamepad.mapping,
+ timestamp: gamepad.timestamp,
+ vibrationActuator: gamepad.vibrationActuator,
+ hapticActuators,
+ axes: gamepad.axes.map((axes) => axes),
+ buttons: gamepad.buttons.map((button) => ({ pressed: button.pressed, touched: button.touched, value: button.value }))
+ };
+ };
+ const updateGamepadState = () => {
+ const _gamepads = (navigator == null ? void 0 : navigator.getGamepads()) || [];
+ for (const gamepad of _gamepads) {
+ if (gamepad && gamepads.value[gamepad.index])
+ gamepads.value[gamepad.index] = stateFromGamepad(gamepad);
+ }
+ };
+ const { isActive, pause, resume } = useRafFn(updateGamepadState);
+ const onGamepadConnected = (gamepad) => {
+ if (!gamepads.value.some(({ index }) => index === gamepad.index)) {
+ gamepads.value.push(stateFromGamepad(gamepad));
+ onConnectedHook.trigger(gamepad.index);
+ }
+ resume();
+ };
+ const onGamepadDisconnected = (gamepad) => {
+ gamepads.value = gamepads.value.filter((x) => x.index !== gamepad.index);
+ onDisconnectedHook.trigger(gamepad.index);
+ };
+ useEventListener("gamepadconnected", (e) => onGamepadConnected(e.gamepad));
+ useEventListener("gamepaddisconnected", (e) => onGamepadDisconnected(e.gamepad));
+ (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.tryOnMounted)(() => {
+ const _gamepads = (navigator == null ? void 0 : navigator.getGamepads()) || [];
+ for (const gamepad of _gamepads) {
+ if (gamepad && gamepads.value[gamepad.index])
+ onGamepadConnected(gamepad);
+ }
+ });
+ pause();
+ return {
+ isSupported,
+ onConnected: onConnectedHook.on,
+ onDisconnected: onDisconnectedHook.on,
+ gamepads,
+ pause,
+ resume,
+ isActive
+ };
+}
+
+function useGeolocation(options = {}) {
+ const {
+ enableHighAccuracy = true,
+ maximumAge = 3e4,
+ timeout = 27e3,
+ navigator = defaultNavigator,
+ immediate = true
+ } = options;
+ const isSupported = useSupported(() => navigator && "geolocation" in navigator);
+ const locatedAt = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(null);
+ const error = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.shallowRef)(null);
+ const coords = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)({
+ accuracy: 0,
+ latitude: Number.POSITIVE_INFINITY,
+ longitude: Number.POSITIVE_INFINITY,
+ altitude: null,
+ altitudeAccuracy: null,
+ heading: null,
+ speed: null
+ });
+ function updatePosition(position) {
+ locatedAt.value = position.timestamp;
+ coords.value = position.coords;
+ error.value = null;
+ }
+ let watcher;
+ function resume() {
+ if (isSupported.value) {
+ watcher = navigator.geolocation.watchPosition(
+ updatePosition,
+ (err) => error.value = err,
+ {
+ enableHighAccuracy,
+ maximumAge,
+ timeout
+ }
+ );
+ }
+ }
+ if (immediate)
+ resume();
+ function pause() {
+ if (watcher && navigator)
+ navigator.geolocation.clearWatch(watcher);
+ }
+ (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.tryOnScopeDispose)(() => {
+ pause();
+ });
+ return {
+ isSupported,
+ coords,
+ locatedAt,
+ error,
+ resume,
+ pause
+ };
+}
+
+const defaultEvents$1 = ["mousemove", "mousedown", "resize", "keydown", "touchstart", "wheel"];
+const oneMinute = 6e4;
+function useIdle(timeout = oneMinute, options = {}) {
+ const {
+ initialState = false,
+ listenForVisibilityChange = true,
+ events = defaultEvents$1,
+ window = defaultWindow,
+ eventFilter = (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.throttleFilter)(50)
+ } = options;
+ const idle = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(initialState);
+ const lastActive = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)((0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.timestamp)());
+ let timer;
+ const reset = () => {
+ idle.value = false;
+ clearTimeout(timer);
+ timer = setTimeout(() => idle.value = true, timeout);
+ };
+ const onEvent = (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.createFilterWrapper)(
+ eventFilter,
+ () => {
+ lastActive.value = (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.timestamp)();
+ reset();
+ }
+ );
+ if (window) {
+ const document = window.document;
+ for (const event of events)
+ useEventListener(window, event, onEvent, { passive: true });
+ if (listenForVisibilityChange) {
+ useEventListener(document, "visibilitychange", () => {
+ if (!document.hidden)
+ onEvent();
+ });
+ }
+ reset();
+ }
+ return {
+ idle,
+ lastActive,
+ reset
+ };
+}
+
+async function loadImage(options) {
+ return new Promise((resolve, reject) => {
+ const img = new Image();
+ const { src, srcset, sizes, class: clazz, loading, crossorigin, referrerPolicy } = options;
+ img.src = src;
+ if (srcset)
+ img.srcset = srcset;
+ if (sizes)
+ img.sizes = sizes;
+ if (clazz)
+ img.className = clazz;
+ if (loading)
+ img.loading = loading;
+ if (crossorigin)
+ img.crossOrigin = crossorigin;
+ if (referrerPolicy)
+ img.referrerPolicy = referrerPolicy;
+ img.onload = () => resolve(img);
+ img.onerror = reject;
+ });
+}
+function useImage(options, asyncStateOptions = {}) {
+ const state = useAsyncState(
+ () => loadImage((0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(options)),
+ void 0,
+ {
+ resetOnExecute: true,
+ ...asyncStateOptions
+ }
+ );
+ (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.watch)(
+ () => (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(options),
+ () => state.execute(asyncStateOptions.delay),
+ { deep: true }
+ );
+ return state;
+}
+
+const ARRIVED_STATE_THRESHOLD_PIXELS = 1;
+function useScroll(element, options = {}) {
+ const {
+ throttle = 0,
+ idle = 200,
+ onStop = _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.noop,
+ onScroll = _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.noop,
+ offset = {
+ left: 0,
+ right: 0,
+ top: 0,
+ bottom: 0
+ },
+ eventListenerOptions = {
+ capture: false,
+ passive: true
+ },
+ behavior = "auto",
+ window = defaultWindow,
+ onError = (e) => {
+ console.error(e);
+ }
+ } = options;
+ const internalX = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(0);
+ const internalY = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(0);
+ const x = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.computed)({
+ get() {
+ return internalX.value;
+ },
+ set(x2) {
+ scrollTo(x2, void 0);
+ }
+ });
+ const y = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.computed)({
+ get() {
+ return internalY.value;
+ },
+ set(y2) {
+ scrollTo(void 0, y2);
+ }
+ });
+ function scrollTo(_x, _y) {
+ var _a, _b, _c, _d;
+ if (!window)
+ return;
+ const _element = (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(element);
+ if (!_element)
+ return;
+ (_c = _element instanceof Document ? window.document.body : _element) == null ? void 0 : _c.scrollTo({
+ top: (_a = (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(_y)) != null ? _a : y.value,
+ left: (_b = (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(_x)) != null ? _b : x.value,
+ behavior: (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(behavior)
+ });
+ const scrollContainer = ((_d = _element == null ? void 0 : _element.document) == null ? void 0 : _d.documentElement) || (_element == null ? void 0 : _element.documentElement) || _element;
+ if (x != null)
+ internalX.value = scrollContainer.scrollLeft;
+ if (y != null)
+ internalY.value = scrollContainer.scrollTop;
+ }
+ const isScrolling = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(false);
+ const arrivedState = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.reactive)({
+ left: true,
+ right: false,
+ top: true,
+ bottom: false
+ });
+ const directions = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.reactive)({
+ left: false,
+ right: false,
+ top: false,
+ bottom: false
+ });
+ const onScrollEnd = (e) => {
+ if (!isScrolling.value)
+ return;
+ isScrolling.value = false;
+ directions.left = false;
+ directions.right = false;
+ directions.top = false;
+ directions.bottom = false;
+ onStop(e);
+ };
+ const onScrollEndDebounced = (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.useDebounceFn)(onScrollEnd, throttle + idle);
+ const setArrivedState = (target) => {
+ var _a;
+ if (!window)
+ return;
+ const el = ((_a = target == null ? void 0 : target.document) == null ? void 0 : _a.documentElement) || (target == null ? void 0 : target.documentElement) || unrefElement(target);
+ const { display, flexDirection } = getComputedStyle(el);
+ const scrollLeft = el.scrollLeft;
+ directions.left = scrollLeft < internalX.value;
+ directions.right = scrollLeft > internalX.value;
+ const left = Math.abs(scrollLeft) <= (offset.left || 0);
+ const right = Math.abs(scrollLeft) + el.clientWidth >= el.scrollWidth - (offset.right || 0) - ARRIVED_STATE_THRESHOLD_PIXELS;
+ if (display === "flex" && flexDirection === "row-reverse") {
+ arrivedState.left = right;
+ arrivedState.right = left;
+ } else {
+ arrivedState.left = left;
+ arrivedState.right = right;
+ }
+ internalX.value = scrollLeft;
+ let scrollTop = el.scrollTop;
+ if (target === window.document && !scrollTop)
+ scrollTop = window.document.body.scrollTop;
+ directions.top = scrollTop < internalY.value;
+ directions.bottom = scrollTop > internalY.value;
+ const top = Math.abs(scrollTop) <= (offset.top || 0);
+ const bottom = Math.abs(scrollTop) + el.clientHeight >= el.scrollHeight - (offset.bottom || 0) - ARRIVED_STATE_THRESHOLD_PIXELS;
+ if (display === "flex" && flexDirection === "column-reverse") {
+ arrivedState.top = bottom;
+ arrivedState.bottom = top;
+ } else {
+ arrivedState.top = top;
+ arrivedState.bottom = bottom;
+ }
+ internalY.value = scrollTop;
+ };
+ const onScrollHandler = (e) => {
+ var _a;
+ if (!window)
+ return;
+ const eventTarget = (_a = e.target.documentElement) != null ? _a : e.target;
+ setArrivedState(eventTarget);
+ isScrolling.value = true;
+ onScrollEndDebounced(e);
+ onScroll(e);
+ };
+ useEventListener(
+ element,
+ "scroll",
+ throttle ? (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.useThrottleFn)(onScrollHandler, throttle, true, false) : onScrollHandler,
+ eventListenerOptions
+ );
+ (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.tryOnMounted)(() => {
+ try {
+ const _element = (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(element);
+ if (!_element)
+ return;
+ setArrivedState(_element);
+ } catch (e) {
+ onError(e);
+ }
+ });
+ useEventListener(
+ element,
+ "scrollend",
+ onScrollEnd,
+ eventListenerOptions
+ );
+ return {
+ x,
+ y,
+ isScrolling,
+ arrivedState,
+ directions,
+ measure() {
+ const _element = (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(element);
+ if (window && _element)
+ setArrivedState(_element);
+ }
+ };
+}
+
+function resolveElement(el) {
+ if (typeof Window !== "undefined" && el instanceof Window)
+ return el.document.documentElement;
+ if (typeof Document !== "undefined" && el instanceof Document)
+ return el.documentElement;
+ return el;
+}
+
+function useInfiniteScroll(element, onLoadMore, options = {}) {
+ var _a;
+ const {
+ direction = "bottom",
+ interval = 100,
+ canLoadMore = () => true
+ } = options;
+ const state = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.reactive)(useScroll(
+ element,
+ {
+ ...options,
+ offset: {
+ [direction]: (_a = options.distance) != null ? _a : 0,
+ ...options.offset
+ }
+ }
+ ));
+ const promise = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)();
+ const isLoading = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.computed)(() => !!promise.value);
+ const observedElement = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.computed)(() => {
+ return resolveElement((0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(element));
+ });
+ const isElementVisible = useElementVisibility(observedElement);
+ function checkAndLoad() {
+ state.measure();
+ if (!observedElement.value || !isElementVisible.value || !canLoadMore(observedElement.value))
+ return;
+ const { scrollHeight, clientHeight, scrollWidth, clientWidth } = observedElement.value;
+ const isNarrower = direction === "bottom" || direction === "top" ? scrollHeight <= clientHeight : scrollWidth <= clientWidth;
+ if (state.arrivedState[direction] || isNarrower) {
+ if (!promise.value) {
+ promise.value = Promise.all([
+ onLoadMore(state),
+ new Promise((resolve) => setTimeout(resolve, interval))
+ ]).finally(() => {
+ promise.value = null;
+ (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.nextTick)(() => checkAndLoad());
+ });
+ }
+ }
+ }
+ (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.watch)(
+ () => [state.arrivedState[direction], isElementVisible.value],
+ checkAndLoad,
+ { immediate: true }
+ );
+ return {
+ isLoading,
+ reset() {
+ (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.nextTick)(() => checkAndLoad());
+ }
+ };
+}
+
+const defaultEvents = ["mousedown", "mouseup", "keydown", "keyup"];
+function useKeyModifier(modifier, options = {}) {
+ const {
+ events = defaultEvents,
+ document = defaultDocument,
+ initial = null
+ } = options;
+ const state = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(initial);
+ if (document) {
+ events.forEach((listenerEvent) => {
+ useEventListener(document, listenerEvent, (evt) => {
+ if (typeof evt.getModifierState === "function")
+ state.value = evt.getModifierState(modifier);
+ });
+ });
+ }
+ return state;
+}
+
+function useLocalStorage(key, initialValue, options = {}) {
+ const { window = defaultWindow } = options;
+ return useStorage(key, initialValue, window == null ? void 0 : window.localStorage, options);
+}
+
+const DefaultMagicKeysAliasMap = {
+ ctrl: "control",
+ command: "meta",
+ cmd: "meta",
+ option: "alt",
+ up: "arrowup",
+ down: "arrowdown",
+ left: "arrowleft",
+ right: "arrowright"
+};
+
+function useMagicKeys(options = {}) {
+ const {
+ reactive: useReactive = false,
+ target = defaultWindow,
+ aliasMap = DefaultMagicKeysAliasMap,
+ passive = true,
+ onEventFired = _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.noop
+ } = options;
+ const current = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.reactive)(/* @__PURE__ */ new Set());
+ const obj = {
+ toJSON() {
+ return {};
+ },
+ current
+ };
+ const refs = useReactive ? (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.reactive)(obj) : obj;
+ const metaDeps = /* @__PURE__ */ new Set();
+ const usedKeys = /* @__PURE__ */ new Set();
+ function setRefs(key, value) {
+ if (key in refs) {
+ if (useReactive)
+ refs[key] = value;
+ else
+ refs[key].value = value;
+ }
+ }
+ function reset() {
+ current.clear();
+ for (const key of usedKeys)
+ setRefs(key, false);
+ }
+ function updateRefs(e, value) {
+ var _a, _b;
+ const key = (_a = e.key) == null ? void 0 : _a.toLowerCase();
+ const code = (_b = e.code) == null ? void 0 : _b.toLowerCase();
+ const values = [code, key].filter(Boolean);
+ if (key) {
+ if (value)
+ current.add(key);
+ else
+ current.delete(key);
+ }
+ for (const key2 of values) {
+ usedKeys.add(key2);
+ setRefs(key2, value);
+ }
+ if (key === "meta" && !value) {
+ metaDeps.forEach((key2) => {
+ current.delete(key2);
+ setRefs(key2, false);
+ });
+ metaDeps.clear();
+ } else if (typeof e.getModifierState === "function" && e.getModifierState("Meta") && value) {
+ [...current, ...values].forEach((key2) => metaDeps.add(key2));
+ }
+ }
+ useEventListener(target, "keydown", (e) => {
+ updateRefs(e, true);
+ return onEventFired(e);
+ }, { passive });
+ useEventListener(target, "keyup", (e) => {
+ updateRefs(e, false);
+ return onEventFired(e);
+ }, { passive });
+ useEventListener("blur", reset, { passive: true });
+ useEventListener("focus", reset, { passive: true });
+ const proxy = new Proxy(
+ refs,
+ {
+ get(target2, prop, rec) {
+ if (typeof prop !== "string")
+ return Reflect.get(target2, prop, rec);
+ prop = prop.toLowerCase();
+ if (prop in aliasMap)
+ prop = aliasMap[prop];
+ if (!(prop in refs)) {
+ if (/[+_-]/.test(prop)) {
+ const keys = prop.split(/[+_-]/g).map((i) => i.trim());
+ refs[prop] = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.computed)(() => keys.every((key) => (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(proxy[key])));
+ } else {
+ refs[prop] = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(false);
+ }
+ }
+ const r = Reflect.get(target2, prop, rec);
+ return useReactive ? (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(r) : r;
+ }
+ }
+ );
+ return proxy;
+}
+
+function usingElRef(source, cb) {
+ if ((0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(source))
+ cb((0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(source));
+}
+function timeRangeToArray(timeRanges) {
+ let ranges = [];
+ for (let i = 0; i < timeRanges.length; ++i)
+ ranges = [...ranges, [timeRanges.start(i), timeRanges.end(i)]];
+ return ranges;
+}
+function tracksToArray(tracks) {
+ return Array.from(tracks).map(({ label, kind, language, mode, activeCues, cues, inBandMetadataTrackDispatchType }, id) => ({ id, label, kind, language, mode, activeCues, cues, inBandMetadataTrackDispatchType }));
+}
+const defaultOptions = {
+ src: "",
+ tracks: []
+};
+function useMediaControls(target, options = {}) {
+ target = (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toRef)(target);
+ options = {
+ ...defaultOptions,
+ ...options
+ };
+ const {
+ document = defaultDocument
+ } = options;
+ const currentTime = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(0);
+ const duration = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(0);
+ const seeking = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(false);
+ const volume = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(1);
+ const waiting = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(false);
+ const ended = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(false);
+ const playing = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(false);
+ const rate = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(1);
+ const stalled = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(false);
+ const buffered = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)([]);
+ const tracks = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)([]);
+ const selectedTrack = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(-1);
+ const isPictureInPicture = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(false);
+ const muted = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(false);
+ const supportsPictureInPicture = document && "pictureInPictureEnabled" in document;
+ const sourceErrorEvent = (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.createEventHook)();
+ const disableTrack = (track) => {
+ usingElRef(target, (el) => {
+ if (track) {
+ const id = typeof track === "number" ? track : track.id;
+ el.textTracks[id].mode = "disabled";
+ } else {
+ for (let i = 0; i < el.textTracks.length; ++i)
+ el.textTracks[i].mode = "disabled";
+ }
+ selectedTrack.value = -1;
+ });
+ };
+ const enableTrack = (track, disableTracks = true) => {
+ usingElRef(target, (el) => {
+ const id = typeof track === "number" ? track : track.id;
+ if (disableTracks)
+ disableTrack();
+ el.textTracks[id].mode = "showing";
+ selectedTrack.value = id;
+ });
+ };
+ const togglePictureInPicture = () => {
+ return new Promise((resolve, reject) => {
+ usingElRef(target, async (el) => {
+ if (supportsPictureInPicture) {
+ if (!isPictureInPicture.value) {
+ el.requestPictureInPicture().then(resolve).catch(reject);
+ } else {
+ document.exitPictureInPicture().then(resolve).catch(reject);
+ }
+ }
+ });
+ });
+ };
+ (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.watchEffect)(() => {
+ if (!document)
+ return;
+ const el = (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(target);
+ if (!el)
+ return;
+ const src = (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(options.src);
+ let sources = [];
+ if (!src)
+ return;
+ if (typeof src === "string")
+ sources = [{ src }];
+ else if (Array.isArray(src))
+ sources = src;
+ else if ((0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.isObject)(src))
+ sources = [src];
+ el.querySelectorAll("source").forEach((e) => {
+ e.removeEventListener("error", sourceErrorEvent.trigger);
+ e.remove();
+ });
+ sources.forEach(({ src: src2, type }) => {
+ const source = document.createElement("source");
+ source.setAttribute("src", src2);
+ source.setAttribute("type", type || "");
+ source.addEventListener("error", sourceErrorEvent.trigger);
+ el.appendChild(source);
+ });
+ el.load();
+ });
+ (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.tryOnScopeDispose)(() => {
+ const el = (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(target);
+ if (!el)
+ return;
+ el.querySelectorAll("source").forEach((e) => e.removeEventListener("error", sourceErrorEvent.trigger));
+ });
+ (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.watch)([target, volume], () => {
+ const el = (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(target);
+ if (!el)
+ return;
+ el.volume = volume.value;
+ });
+ (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.watch)([target, muted], () => {
+ const el = (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(target);
+ if (!el)
+ return;
+ el.muted = muted.value;
+ });
+ (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.watch)([target, rate], () => {
+ const el = (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(target);
+ if (!el)
+ return;
+ el.playbackRate = rate.value;
+ });
+ (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.watchEffect)(() => {
+ if (!document)
+ return;
+ const textTracks = (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(options.tracks);
+ const el = (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(target);
+ if (!textTracks || !textTracks.length || !el)
+ return;
+ el.querySelectorAll("track").forEach((e) => e.remove());
+ textTracks.forEach(({ default: isDefault, kind, label, src, srcLang }, i) => {
+ const track = document.createElement("track");
+ track.default = isDefault || false;
+ track.kind = kind;
+ track.label = label;
+ track.src = src;
+ track.srclang = srcLang;
+ if (track.default)
+ selectedTrack.value = i;
+ el.appendChild(track);
+ });
+ });
+ const { ignoreUpdates: ignoreCurrentTimeUpdates } = (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.watchIgnorable)(currentTime, (time) => {
+ const el = (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(target);
+ if (!el)
+ return;
+ el.currentTime = time;
+ });
+ const { ignoreUpdates: ignorePlayingUpdates } = (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.watchIgnorable)(playing, (isPlaying) => {
+ const el = (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(target);
+ if (!el)
+ return;
+ if (isPlaying)
+ el.play();
+ else
+ el.pause();
+ });
+ useEventListener(target, "timeupdate", () => ignoreCurrentTimeUpdates(() => currentTime.value = (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(target).currentTime));
+ useEventListener(target, "durationchange", () => duration.value = (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(target).duration);
+ useEventListener(target, "progress", () => buffered.value = timeRangeToArray((0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(target).buffered));
+ useEventListener(target, "seeking", () => seeking.value = true);
+ useEventListener(target, "seeked", () => seeking.value = false);
+ useEventListener(target, ["waiting", "loadstart"], () => {
+ waiting.value = true;
+ ignorePlayingUpdates(() => playing.value = false);
+ });
+ useEventListener(target, "loadeddata", () => waiting.value = false);
+ useEventListener(target, "playing", () => {
+ waiting.value = false;
+ ended.value = false;
+ ignorePlayingUpdates(() => playing.value = true);
+ });
+ useEventListener(target, "ratechange", () => rate.value = (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(target).playbackRate);
+ useEventListener(target, "stalled", () => stalled.value = true);
+ useEventListener(target, "ended", () => ended.value = true);
+ useEventListener(target, "pause", () => ignorePlayingUpdates(() => playing.value = false));
+ useEventListener(target, "play", () => ignorePlayingUpdates(() => playing.value = true));
+ useEventListener(target, "enterpictureinpicture", () => isPictureInPicture.value = true);
+ useEventListener(target, "leavepictureinpicture", () => isPictureInPicture.value = false);
+ useEventListener(target, "volumechange", () => {
+ const el = (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(target);
+ if (!el)
+ return;
+ volume.value = el.volume;
+ muted.value = el.muted;
+ });
+ const listeners = [];
+ const stop = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.watch)([target], () => {
+ const el = (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(target);
+ if (!el)
+ return;
+ stop();
+ listeners[0] = useEventListener(el.textTracks, "addtrack", () => tracks.value = tracksToArray(el.textTracks));
+ listeners[1] = useEventListener(el.textTracks, "removetrack", () => tracks.value = tracksToArray(el.textTracks));
+ listeners[2] = useEventListener(el.textTracks, "change", () => tracks.value = tracksToArray(el.textTracks));
+ });
+ (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.tryOnScopeDispose)(() => listeners.forEach((listener) => listener()));
+ return {
+ currentTime,
+ duration,
+ waiting,
+ seeking,
+ ended,
+ stalled,
+ buffered,
+ playing,
+ rate,
+ // Volume
+ volume,
+ muted,
+ // Tracks
+ tracks,
+ selectedTrack,
+ enableTrack,
+ disableTrack,
+ // Picture in Picture
+ supportsPictureInPicture,
+ togglePictureInPicture,
+ isPictureInPicture,
+ // Events
+ onSourceError: sourceErrorEvent.on
+ };
+}
+
+function getMapVue2Compat() {
+ const data = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.shallowReactive)({});
+ return {
+ get: (key) => data[key],
+ set: (key, value) => (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.set)(data, key, value),
+ has: (key) => (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.hasOwn)(data, key),
+ delete: (key) => (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.del)(data, key),
+ clear: () => {
+ Object.keys(data).forEach((key) => {
+ (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.del)(data, key);
+ });
+ }
+ };
+}
+function useMemoize(resolver, options) {
+ const initCache = () => {
+ if (options == null ? void 0 : options.cache)
+ return (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.shallowReactive)(options.cache);
+ if (vue_demi__WEBPACK_IMPORTED_MODULE_1__.isVue2)
+ return getMapVue2Compat();
+ return (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.shallowReactive)(/* @__PURE__ */ new Map());
+ };
+ const cache = initCache();
+ const generateKey = (...args) => (options == null ? void 0 : options.getKey) ? options.getKey(...args) : JSON.stringify(args);
+ const _loadData = (key, ...args) => {
+ cache.set(key, resolver(...args));
+ return cache.get(key);
+ };
+ const loadData = (...args) => _loadData(generateKey(...args), ...args);
+ const deleteData = (...args) => {
+ cache.delete(generateKey(...args));
+ };
+ const clearData = () => {
+ cache.clear();
+ };
+ const memoized = (...args) => {
+ const key = generateKey(...args);
+ if (cache.has(key))
+ return cache.get(key);
+ return _loadData(key, ...args);
+ };
+ memoized.load = loadData;
+ memoized.delete = deleteData;
+ memoized.clear = clearData;
+ memoized.generateKey = generateKey;
+ memoized.cache = cache;
+ return memoized;
+}
+
+function useMemory(options = {}) {
+ const memory = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)();
+ const isSupported = useSupported(() => typeof performance !== "undefined" && "memory" in performance);
+ if (isSupported.value) {
+ const { interval = 1e3 } = options;
+ (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.useIntervalFn)(() => {
+ memory.value = performance.memory;
+ }, interval, { immediate: options.immediate, immediateCallback: options.immediateCallback });
+ }
+ return { isSupported, memory };
+}
+
+const UseMouseBuiltinExtractors = {
+ page: (event) => [event.pageX, event.pageY],
+ client: (event) => [event.clientX, event.clientY],
+ screen: (event) => [event.screenX, event.screenY],
+ movement: (event) => event instanceof Touch ? null : [event.movementX, event.movementY]
+};
+function useMouse(options = {}) {
+ const {
+ type = "page",
+ touch = true,
+ resetOnTouchEnds = false,
+ initialValue = { x: 0, y: 0 },
+ window = defaultWindow,
+ target = window,
+ scroll = true,
+ eventFilter
+ } = options;
+ let _prevMouseEvent = null;
+ const x = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(initialValue.x);
+ const y = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(initialValue.y);
+ const sourceType = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(null);
+ const extractor = typeof type === "function" ? type : UseMouseBuiltinExtractors[type];
+ const mouseHandler = (event) => {
+ const result = extractor(event);
+ _prevMouseEvent = event;
+ if (result) {
+ [x.value, y.value] = result;
+ sourceType.value = "mouse";
+ }
+ };
+ const touchHandler = (event) => {
+ if (event.touches.length > 0) {
+ const result = extractor(event.touches[0]);
+ if (result) {
+ [x.value, y.value] = result;
+ sourceType.value = "touch";
+ }
+ }
+ };
+ const scrollHandler = () => {
+ if (!_prevMouseEvent || !window)
+ return;
+ const pos = extractor(_prevMouseEvent);
+ if (_prevMouseEvent instanceof MouseEvent && pos) {
+ x.value = pos[0] + window.scrollX;
+ y.value = pos[1] + window.scrollY;
+ }
+ };
+ const reset = () => {
+ x.value = initialValue.x;
+ y.value = initialValue.y;
+ };
+ const mouseHandlerWrapper = eventFilter ? (event) => eventFilter(() => mouseHandler(event), {}) : (event) => mouseHandler(event);
+ const touchHandlerWrapper = eventFilter ? (event) => eventFilter(() => touchHandler(event), {}) : (event) => touchHandler(event);
+ const scrollHandlerWrapper = eventFilter ? () => eventFilter(() => scrollHandler(), {}) : () => scrollHandler();
+ if (target) {
+ const listenerOptions = { passive: true };
+ useEventListener(target, ["mousemove", "dragover"], mouseHandlerWrapper, listenerOptions);
+ if (touch && type !== "movement") {
+ useEventListener(target, ["touchstart", "touchmove"], touchHandlerWrapper, listenerOptions);
+ if (resetOnTouchEnds)
+ useEventListener(target, "touchend", reset, listenerOptions);
+ }
+ if (scroll && type === "page")
+ useEventListener(window, "scroll", scrollHandlerWrapper, { passive: true });
+ }
+ return {
+ x,
+ y,
+ sourceType
+ };
+}
+
+function useMouseInElement(target, options = {}) {
+ const {
+ handleOutside = true,
+ window = defaultWindow
+ } = options;
+ const type = options.type || "page";
+ const { x, y, sourceType } = useMouse(options);
+ const targetRef = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(target != null ? target : window == null ? void 0 : window.document.body);
+ const elementX = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(0);
+ const elementY = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(0);
+ const elementPositionX = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(0);
+ const elementPositionY = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(0);
+ const elementHeight = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(0);
+ const elementWidth = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(0);
+ const isOutside = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(true);
+ let stop = () => {
+ };
+ if (window) {
+ stop = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.watch)(
+ [targetRef, x, y],
+ () => {
+ const el = unrefElement(targetRef);
+ if (!el || !(el instanceof HTMLElement))
+ return;
+ const {
+ left,
+ top,
+ width,
+ height
+ } = el.getBoundingClientRect();
+ elementPositionX.value = left + (type === "page" ? window.pageXOffset : 0);
+ elementPositionY.value = top + (type === "page" ? window.pageYOffset : 0);
+ elementHeight.value = height;
+ elementWidth.value = width;
+ const elX = x.value - elementPositionX.value;
+ const elY = y.value - elementPositionY.value;
+ isOutside.value = width === 0 || height === 0 || elX < 0 || elY < 0 || elX > width || elY > height;
+ if (handleOutside || !isOutside.value) {
+ elementX.value = elX;
+ elementY.value = elY;
+ }
+ },
+ { immediate: true }
+ );
+ useEventListener(document, "mouseleave", () => {
+ isOutside.value = true;
+ });
+ }
+ return {
+ x,
+ y,
+ sourceType,
+ elementX,
+ elementY,
+ elementPositionX,
+ elementPositionY,
+ elementHeight,
+ elementWidth,
+ isOutside,
+ stop
+ };
+}
+
+function useMousePressed(options = {}) {
+ const {
+ touch = true,
+ drag = true,
+ capture = false,
+ initialValue = false,
+ window = defaultWindow
+ } = options;
+ const pressed = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(initialValue);
+ const sourceType = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(null);
+ if (!window) {
+ return {
+ pressed,
+ sourceType
+ };
+ }
+ const onPressed = (srcType) => () => {
+ pressed.value = true;
+ sourceType.value = srcType;
+ };
+ const onReleased = () => {
+ pressed.value = false;
+ sourceType.value = null;
+ };
+ const target = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.computed)(() => unrefElement(options.target) || window);
+ useEventListener(target, "mousedown", onPressed("mouse"), { passive: true, capture });
+ useEventListener(window, "mouseleave", onReleased, { passive: true, capture });
+ useEventListener(window, "mouseup", onReleased, { passive: true, capture });
+ if (drag) {
+ useEventListener(target, "dragstart", onPressed("mouse"), { passive: true, capture });
+ useEventListener(window, "drop", onReleased, { passive: true, capture });
+ useEventListener(window, "dragend", onReleased, { passive: true, capture });
+ }
+ if (touch) {
+ useEventListener(target, "touchstart", onPressed("touch"), { passive: true, capture });
+ useEventListener(window, "touchend", onReleased, { passive: true, capture });
+ useEventListener(window, "touchcancel", onReleased, { passive: true, capture });
+ }
+ return {
+ pressed,
+ sourceType
+ };
+}
+
+function useNavigatorLanguage(options = {}) {
+ const { window = defaultWindow } = options;
+ const navigator = window == null ? void 0 : window.navigator;
+ const isSupported = useSupported(() => navigator && "language" in navigator);
+ const language = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(navigator == null ? void 0 : navigator.language);
+ useEventListener(window, "languagechange", () => {
+ if (navigator)
+ language.value = navigator.language;
+ });
+ return {
+ isSupported,
+ language
+ };
+}
+
+function useNetwork(options = {}) {
+ const { window = defaultWindow } = options;
+ const navigator = window == null ? void 0 : window.navigator;
+ const isSupported = useSupported(() => navigator && "connection" in navigator);
+ const isOnline = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(true);
+ const saveData = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(false);
+ const offlineAt = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(void 0);
+ const onlineAt = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(void 0);
+ const downlink = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(void 0);
+ const downlinkMax = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(void 0);
+ const rtt = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(void 0);
+ const effectiveType = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(void 0);
+ const type = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)("unknown");
+ const connection = isSupported.value && navigator.connection;
+ function updateNetworkInformation() {
+ if (!navigator)
+ return;
+ isOnline.value = navigator.onLine;
+ offlineAt.value = isOnline.value ? void 0 : Date.now();
+ onlineAt.value = isOnline.value ? Date.now() : void 0;
+ if (connection) {
+ downlink.value = connection.downlink;
+ downlinkMax.value = connection.downlinkMax;
+ effectiveType.value = connection.effectiveType;
+ rtt.value = connection.rtt;
+ saveData.value = connection.saveData;
+ type.value = connection.type;
+ }
+ }
+ if (window) {
+ useEventListener(window, "offline", () => {
+ isOnline.value = false;
+ offlineAt.value = Date.now();
+ });
+ useEventListener(window, "online", () => {
+ isOnline.value = true;
+ onlineAt.value = Date.now();
+ });
+ }
+ if (connection)
+ useEventListener(connection, "change", updateNetworkInformation, false);
+ updateNetworkInformation();
+ return {
+ isSupported,
+ isOnline,
+ saveData,
+ offlineAt,
+ onlineAt,
+ downlink,
+ downlinkMax,
+ effectiveType,
+ rtt,
+ type
+ };
+}
+
+function useNow(options = {}) {
+ const {
+ controls: exposeControls = false,
+ interval = "requestAnimationFrame"
+ } = options;
+ const now = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(/* @__PURE__ */ new Date());
+ const update = () => now.value = /* @__PURE__ */ new Date();
+ const controls = interval === "requestAnimationFrame" ? useRafFn(update, { immediate: true }) : (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.useIntervalFn)(update, interval, { immediate: true });
+ if (exposeControls) {
+ return {
+ now,
+ ...controls
+ };
+ } else {
+ return now;
+ }
+}
+
+function useObjectUrl(object) {
+ const url = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)();
+ const release = () => {
+ if (url.value)
+ URL.revokeObjectURL(url.value);
+ url.value = void 0;
+ };
+ (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.watch)(
+ () => (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(object),
+ (newObject) => {
+ release();
+ if (newObject)
+ url.value = URL.createObjectURL(newObject);
+ },
+ { immediate: true }
+ );
+ (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.tryOnScopeDispose)(release);
+ return (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.readonly)(url);
+}
+
+function useClamp(value, min, max) {
+ if (typeof value === "function" || (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.isReadonly)(value))
+ return (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.computed)(() => (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.clamp)((0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(value), (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(min), (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(max)));
+ const _value = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(value);
+ return (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.computed)({
+ get() {
+ return _value.value = (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.clamp)(_value.value, (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(min), (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(max));
+ },
+ set(value2) {
+ _value.value = (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.clamp)(value2, (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(min), (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(max));
+ }
+ });
+}
+
+function useOffsetPagination(options) {
+ const {
+ total = Number.POSITIVE_INFINITY,
+ pageSize = 10,
+ page = 1,
+ onPageChange = _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.noop,
+ onPageSizeChange = _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.noop,
+ onPageCountChange = _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.noop
+ } = options;
+ const currentPageSize = useClamp(pageSize, 1, Number.POSITIVE_INFINITY);
+ const pageCount = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.computed)(() => Math.max(
+ 1,
+ Math.ceil((0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(total) / (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(currentPageSize))
+ ));
+ const currentPage = useClamp(page, 1, pageCount);
+ const isFirstPage = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.computed)(() => currentPage.value === 1);
+ const isLastPage = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.computed)(() => currentPage.value === pageCount.value);
+ if ((0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.isRef)(page)) {
+ (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.syncRef)(page, currentPage, {
+ direction: (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.isReadonly)(page) ? "ltr" : "both"
+ });
+ }
+ if ((0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.isRef)(pageSize)) {
+ (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.syncRef)(pageSize, currentPageSize, {
+ direction: (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.isReadonly)(pageSize) ? "ltr" : "both"
+ });
+ }
+ function prev() {
+ currentPage.value--;
+ }
+ function next() {
+ currentPage.value++;
+ }
+ const returnValue = {
+ currentPage,
+ currentPageSize,
+ pageCount,
+ isFirstPage,
+ isLastPage,
+ prev,
+ next
+ };
+ (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.watch)(currentPage, () => {
+ onPageChange((0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.reactive)(returnValue));
+ });
+ (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.watch)(currentPageSize, () => {
+ onPageSizeChange((0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.reactive)(returnValue));
+ });
+ (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.watch)(pageCount, () => {
+ onPageCountChange((0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.reactive)(returnValue));
+ });
+ return returnValue;
+}
+
+function useOnline(options = {}) {
+ const { isOnline } = useNetwork(options);
+ return isOnline;
+}
+
+function usePageLeave(options = {}) {
+ const { window = defaultWindow } = options;
+ const isLeft = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(false);
+ const handler = (event) => {
+ if (!window)
+ return;
+ event = event || window.event;
+ const from = event.relatedTarget || event.toElement;
+ isLeft.value = !from;
+ };
+ if (window) {
+ useEventListener(window, "mouseout", handler, { passive: true });
+ useEventListener(window.document, "mouseleave", handler, { passive: true });
+ useEventListener(window.document, "mouseenter", handler, { passive: true });
+ }
+ return isLeft;
+}
+
+function useScreenOrientation(options = {}) {
+ const {
+ window = defaultWindow
+ } = options;
+ const isSupported = useSupported(() => window && "screen" in window && "orientation" in window.screen);
+ const screenOrientation = isSupported.value ? window.screen.orientation : {};
+ const orientation = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(screenOrientation.type);
+ const angle = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(screenOrientation.angle || 0);
+ if (isSupported.value) {
+ useEventListener(window, "orientationchange", () => {
+ orientation.value = screenOrientation.type;
+ angle.value = screenOrientation.angle;
+ });
+ }
+ const lockOrientation = (type) => {
+ if (isSupported.value && typeof screenOrientation.lock === "function")
+ return screenOrientation.lock(type);
+ return Promise.reject(new Error("Not supported"));
+ };
+ const unlockOrientation = () => {
+ if (isSupported.value && typeof screenOrientation.unlock === "function")
+ screenOrientation.unlock();
+ };
+ return {
+ isSupported,
+ orientation,
+ angle,
+ lockOrientation,
+ unlockOrientation
+ };
+}
+
+function useParallax(target, options = {}) {
+ const {
+ deviceOrientationTiltAdjust = (i) => i,
+ deviceOrientationRollAdjust = (i) => i,
+ mouseTiltAdjust = (i) => i,
+ mouseRollAdjust = (i) => i,
+ window = defaultWindow
+ } = options;
+ const orientation = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.reactive)(useDeviceOrientation({ window }));
+ const screenOrientation = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.reactive)(useScreenOrientation({ window }));
+ const {
+ elementX: x,
+ elementY: y,
+ elementWidth: width,
+ elementHeight: height
+ } = useMouseInElement(target, { handleOutside: false, window });
+ const source = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.computed)(() => {
+ if (orientation.isSupported && (orientation.alpha != null && orientation.alpha !== 0 || orientation.gamma != null && orientation.gamma !== 0)) {
+ return "deviceOrientation";
+ }
+ return "mouse";
+ });
+ const roll = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.computed)(() => {
+ if (source.value === "deviceOrientation") {
+ let value;
+ switch (screenOrientation.orientation) {
+ case "landscape-primary":
+ value = orientation.gamma / 90;
+ break;
+ case "landscape-secondary":
+ value = -orientation.gamma / 90;
+ break;
+ case "portrait-primary":
+ value = -orientation.beta / 90;
+ break;
+ case "portrait-secondary":
+ value = orientation.beta / 90;
+ break;
+ default:
+ value = -orientation.beta / 90;
+ }
+ return deviceOrientationRollAdjust(value);
+ } else {
+ const value = -(y.value - height.value / 2) / height.value;
+ return mouseRollAdjust(value);
+ }
+ });
+ const tilt = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.computed)(() => {
+ if (source.value === "deviceOrientation") {
+ let value;
+ switch (screenOrientation.orientation) {
+ case "landscape-primary":
+ value = orientation.beta / 90;
+ break;
+ case "landscape-secondary":
+ value = -orientation.beta / 90;
+ break;
+ case "portrait-primary":
+ value = orientation.gamma / 90;
+ break;
+ case "portrait-secondary":
+ value = -orientation.gamma / 90;
+ break;
+ default:
+ value = orientation.gamma / 90;
+ }
+ return deviceOrientationTiltAdjust(value);
+ } else {
+ const value = (x.value - width.value / 2) / width.value;
+ return mouseTiltAdjust(value);
+ }
+ });
+ return { roll, tilt, source };
+}
+
+function useParentElement(element = useCurrentElement()) {
+ const parentElement = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.shallowRef)();
+ const update = () => {
+ const el = unrefElement(element);
+ if (el)
+ parentElement.value = el.parentElement;
+ };
+ (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.tryOnMounted)(update);
+ (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.watch)(() => (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(element), update);
+ return parentElement;
+}
+
+function usePerformanceObserver(options, callback) {
+ const {
+ window = defaultWindow,
+ immediate = true,
+ ...performanceOptions
+ } = options;
+ const isSupported = useSupported(() => window && "PerformanceObserver" in window);
+ let observer;
+ const stop = () => {
+ observer == null ? void 0 : observer.disconnect();
+ };
+ const start = () => {
+ if (isSupported.value) {
+ stop();
+ observer = new PerformanceObserver(callback);
+ observer.observe(performanceOptions);
+ }
+ };
+ (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.tryOnScopeDispose)(stop);
+ if (immediate)
+ start();
+ return {
+ isSupported,
+ start,
+ stop
+ };
+}
+
+const defaultState = {
+ x: 0,
+ y: 0,
+ pointerId: 0,
+ pressure: 0,
+ tiltX: 0,
+ tiltY: 0,
+ width: 0,
+ height: 0,
+ twist: 0,
+ pointerType: null
+};
+const keys = /* @__PURE__ */ Object.keys(defaultState);
+function usePointer(options = {}) {
+ const {
+ target = defaultWindow
+ } = options;
+ const isInside = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(false);
+ const state = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(options.initialValue || {});
+ Object.assign(state.value, defaultState, state.value);
+ const handler = (event) => {
+ isInside.value = true;
+ if (options.pointerTypes && !options.pointerTypes.includes(event.pointerType))
+ return;
+ state.value = (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.objectPick)(event, keys, false);
+ };
+ if (target) {
+ const listenerOptions = { passive: true };
+ useEventListener(target, ["pointerdown", "pointermove", "pointerup"], handler, listenerOptions);
+ useEventListener(target, "pointerleave", () => isInside.value = false, listenerOptions);
+ }
+ return {
+ ...(0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toRefs)(state),
+ isInside
+ };
+}
+
+function usePointerLock(target, options = {}) {
+ const { document = defaultDocument } = options;
+ const isSupported = useSupported(() => document && "pointerLockElement" in document);
+ const element = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)();
+ const triggerElement = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)();
+ let targetElement;
+ if (isSupported.value) {
+ useEventListener(document, "pointerlockchange", () => {
+ var _a;
+ const currentElement = (_a = document.pointerLockElement) != null ? _a : element.value;
+ if (targetElement && currentElement === targetElement) {
+ element.value = document.pointerLockElement;
+ if (!element.value)
+ targetElement = triggerElement.value = null;
+ }
+ });
+ useEventListener(document, "pointerlockerror", () => {
+ var _a;
+ const currentElement = (_a = document.pointerLockElement) != null ? _a : element.value;
+ if (targetElement && currentElement === targetElement) {
+ const action = document.pointerLockElement ? "release" : "acquire";
+ throw new Error(`Failed to ${action} pointer lock.`);
+ }
+ });
+ }
+ async function lock(e) {
+ var _a;
+ if (!isSupported.value)
+ throw new Error("Pointer Lock API is not supported by your browser.");
+ triggerElement.value = e instanceof Event ? e.currentTarget : null;
+ targetElement = e instanceof Event ? (_a = unrefElement(target)) != null ? _a : triggerElement.value : unrefElement(e);
+ if (!targetElement)
+ throw new Error("Target element undefined.");
+ targetElement.requestPointerLock();
+ return await (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.until)(element).toBe(targetElement);
+ }
+ async function unlock() {
+ if (!element.value)
+ return false;
+ document.exitPointerLock();
+ await (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.until)(element).toBeNull();
+ return true;
+ }
+ return {
+ isSupported,
+ element,
+ triggerElement,
+ lock,
+ unlock
+ };
+}
+
+function usePointerSwipe(target, options = {}) {
+ const targetRef = (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toRef)(target);
+ const {
+ threshold = 50,
+ onSwipe,
+ onSwipeEnd,
+ onSwipeStart,
+ disableTextSelect = false
+ } = options;
+ const posStart = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.reactive)({ x: 0, y: 0 });
+ const updatePosStart = (x, y) => {
+ posStart.x = x;
+ posStart.y = y;
+ };
+ const posEnd = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.reactive)({ x: 0, y: 0 });
+ const updatePosEnd = (x, y) => {
+ posEnd.x = x;
+ posEnd.y = y;
+ };
+ const distanceX = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.computed)(() => posStart.x - posEnd.x);
+ const distanceY = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.computed)(() => posStart.y - posEnd.y);
+ const { max, abs } = Math;
+ const isThresholdExceeded = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.computed)(() => max(abs(distanceX.value), abs(distanceY.value)) >= threshold);
+ const isSwiping = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(false);
+ const isPointerDown = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(false);
+ const direction = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.computed)(() => {
+ if (!isThresholdExceeded.value)
+ return "none";
+ if (abs(distanceX.value) > abs(distanceY.value)) {
+ return distanceX.value > 0 ? "left" : "right";
+ } else {
+ return distanceY.value > 0 ? "up" : "down";
+ }
+ });
+ const eventIsAllowed = (e) => {
+ var _a, _b, _c;
+ const isReleasingButton = e.buttons === 0;
+ const isPrimaryButton = e.buttons === 1;
+ return (_c = (_b = (_a = options.pointerTypes) == null ? void 0 : _a.includes(e.pointerType)) != null ? _b : isReleasingButton || isPrimaryButton) != null ? _c : true;
+ };
+ const stops = [
+ useEventListener(target, "pointerdown", (e) => {
+ if (!eventIsAllowed(e))
+ return;
+ isPointerDown.value = true;
+ const eventTarget = e.target;
+ eventTarget == null ? void 0 : eventTarget.setPointerCapture(e.pointerId);
+ const { clientX: x, clientY: y } = e;
+ updatePosStart(x, y);
+ updatePosEnd(x, y);
+ onSwipeStart == null ? void 0 : onSwipeStart(e);
+ }),
+ useEventListener(target, "pointermove", (e) => {
+ if (!eventIsAllowed(e))
+ return;
+ if (!isPointerDown.value)
+ return;
+ const { clientX: x, clientY: y } = e;
+ updatePosEnd(x, y);
+ if (!isSwiping.value && isThresholdExceeded.value)
+ isSwiping.value = true;
+ if (isSwiping.value)
+ onSwipe == null ? void 0 : onSwipe(e);
+ }),
+ useEventListener(target, "pointerup", (e) => {
+ if (!eventIsAllowed(e))
+ return;
+ if (isSwiping.value)
+ onSwipeEnd == null ? void 0 : onSwipeEnd(e, direction.value);
+ isPointerDown.value = false;
+ isSwiping.value = false;
+ })
+ ];
+ (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.tryOnMounted)(() => {
+ var _a, _b, _c, _d, _e, _f, _g, _h;
+ (_b = (_a = targetRef.value) == null ? void 0 : _a.style) == null ? void 0 : _b.setProperty("touch-action", "none");
+ if (disableTextSelect) {
+ (_d = (_c = targetRef.value) == null ? void 0 : _c.style) == null ? void 0 : _d.setProperty("-webkit-user-select", "none");
+ (_f = (_e = targetRef.value) == null ? void 0 : _e.style) == null ? void 0 : _f.setProperty("-ms-user-select", "none");
+ (_h = (_g = targetRef.value) == null ? void 0 : _g.style) == null ? void 0 : _h.setProperty("user-select", "none");
+ }
+ });
+ const stop = () => stops.forEach((s) => s());
+ return {
+ isSwiping: (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.readonly)(isSwiping),
+ direction: (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.readonly)(direction),
+ posStart: (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.readonly)(posStart),
+ posEnd: (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.readonly)(posEnd),
+ distanceX,
+ distanceY,
+ stop
+ };
+}
+
+function usePreferredColorScheme(options) {
+ const isLight = useMediaQuery("(prefers-color-scheme: light)", options);
+ const isDark = useMediaQuery("(prefers-color-scheme: dark)", options);
+ return (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.computed)(() => {
+ if (isDark.value)
+ return "dark";
+ if (isLight.value)
+ return "light";
+ return "no-preference";
+ });
+}
+
+function usePreferredContrast(options) {
+ const isMore = useMediaQuery("(prefers-contrast: more)", options);
+ const isLess = useMediaQuery("(prefers-contrast: less)", options);
+ const isCustom = useMediaQuery("(prefers-contrast: custom)", options);
+ return (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.computed)(() => {
+ if (isMore.value)
+ return "more";
+ if (isLess.value)
+ return "less";
+ if (isCustom.value)
+ return "custom";
+ return "no-preference";
+ });
+}
+
+function usePreferredLanguages(options = {}) {
+ const { window = defaultWindow } = options;
+ if (!window)
+ return (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(["en"]);
+ const navigator = window.navigator;
+ const value = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(navigator.languages);
+ useEventListener(window, "languagechange", () => {
+ value.value = navigator.languages;
+ });
+ return value;
+}
+
+function usePreferredReducedMotion(options) {
+ const isReduced = useMediaQuery("(prefers-reduced-motion: reduce)", options);
+ return (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.computed)(() => {
+ if (isReduced.value)
+ return "reduce";
+ return "no-preference";
+ });
+}
+
+function usePrevious(value, initialValue) {
+ const previous = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.shallowRef)(initialValue);
+ (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.watch)(
+ (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toRef)(value),
+ (_, oldValue) => {
+ previous.value = oldValue;
+ },
+ { flush: "sync" }
+ );
+ return (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.readonly)(previous);
+}
+
+const topVarName = "--vueuse-safe-area-top";
+const rightVarName = "--vueuse-safe-area-right";
+const bottomVarName = "--vueuse-safe-area-bottom";
+const leftVarName = "--vueuse-safe-area-left";
+function useScreenSafeArea() {
+ const top = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)("");
+ const right = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)("");
+ const bottom = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)("");
+ const left = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)("");
+ if (_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.isClient) {
+ const topCssVar = useCssVar(topVarName);
+ const rightCssVar = useCssVar(rightVarName);
+ const bottomCssVar = useCssVar(bottomVarName);
+ const leftCssVar = useCssVar(leftVarName);
+ topCssVar.value = "env(safe-area-inset-top, 0px)";
+ rightCssVar.value = "env(safe-area-inset-right, 0px)";
+ bottomCssVar.value = "env(safe-area-inset-bottom, 0px)";
+ leftCssVar.value = "env(safe-area-inset-left, 0px)";
+ update();
+ useEventListener("resize", (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.useDebounceFn)(update));
+ }
+ function update() {
+ top.value = getValue(topVarName);
+ right.value = getValue(rightVarName);
+ bottom.value = getValue(bottomVarName);
+ left.value = getValue(leftVarName);
+ }
+ return {
+ top,
+ right,
+ bottom,
+ left,
+ update
+ };
+}
+function getValue(position) {
+ return getComputedStyle(document.documentElement).getPropertyValue(position);
+}
+
+function useScriptTag(src, onLoaded = _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.noop, options = {}) {
+ const {
+ immediate = true,
+ manual = false,
+ type = "text/javascript",
+ async = true,
+ crossOrigin,
+ referrerPolicy,
+ noModule,
+ defer,
+ document = defaultDocument,
+ attrs = {}
+ } = options;
+ const scriptTag = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(null);
+ let _promise = null;
+ const loadScript = (waitForScriptLoad) => new Promise((resolve, reject) => {
+ const resolveWithElement = (el2) => {
+ scriptTag.value = el2;
+ resolve(el2);
+ return el2;
+ };
+ if (!document) {
+ resolve(false);
+ return;
+ }
+ let shouldAppend = false;
+ let el = document.querySelector(`script[src="${(0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(src)}"]`);
+ if (!el) {
+ el = document.createElement("script");
+ el.type = type;
+ el.async = async;
+ el.src = (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(src);
+ if (defer)
+ el.defer = defer;
+ if (crossOrigin)
+ el.crossOrigin = crossOrigin;
+ if (noModule)
+ el.noModule = noModule;
+ if (referrerPolicy)
+ el.referrerPolicy = referrerPolicy;
+ Object.entries(attrs).forEach(([name, value]) => el == null ? void 0 : el.setAttribute(name, value));
+ shouldAppend = true;
+ } else if (el.hasAttribute("data-loaded")) {
+ resolveWithElement(el);
+ }
+ el.addEventListener("error", (event) => reject(event));
+ el.addEventListener("abort", (event) => reject(event));
+ el.addEventListener("load", () => {
+ el.setAttribute("data-loaded", "true");
+ onLoaded(el);
+ resolveWithElement(el);
+ });
+ if (shouldAppend)
+ el = document.head.appendChild(el);
+ if (!waitForScriptLoad)
+ resolveWithElement(el);
+ });
+ const load = (waitForScriptLoad = true) => {
+ if (!_promise)
+ _promise = loadScript(waitForScriptLoad);
+ return _promise;
+ };
+ const unload = () => {
+ if (!document)
+ return;
+ _promise = null;
+ if (scriptTag.value)
+ scriptTag.value = null;
+ const el = document.querySelector(`script[src="${(0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(src)}"]`);
+ if (el)
+ document.head.removeChild(el);
+ };
+ if (immediate && !manual)
+ (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.tryOnMounted)(load);
+ if (!manual)
+ (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.tryOnUnmounted)(unload);
+ return { scriptTag, load, unload };
+}
+
+function checkOverflowScroll(ele) {
+ const style = window.getComputedStyle(ele);
+ if (style.overflowX === "scroll" || style.overflowY === "scroll" || style.overflowX === "auto" && ele.clientWidth < ele.scrollWidth || style.overflowY === "auto" && ele.clientHeight < ele.scrollHeight) {
+ return true;
+ } else {
+ const parent = ele.parentNode;
+ if (!parent || parent.tagName === "BODY")
+ return false;
+ return checkOverflowScroll(parent);
+ }
+}
+function preventDefault(rawEvent) {
+ const e = rawEvent || window.event;
+ const _target = e.target;
+ if (checkOverflowScroll(_target))
+ return false;
+ if (e.touches.length > 1)
+ return true;
+ if (e.preventDefault)
+ e.preventDefault();
+ return false;
+}
+const elInitialOverflow = /* @__PURE__ */ new WeakMap();
+function useScrollLock(element, initialState = false) {
+ const isLocked = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(initialState);
+ let stopTouchMoveListener = null;
+ let initialOverflow = "";
+ (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.watch)((0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toRef)(element), (el) => {
+ const target = resolveElement((0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(el));
+ if (target) {
+ const ele = target;
+ if (!elInitialOverflow.get(ele))
+ elInitialOverflow.set(ele, ele.style.overflow);
+ if (ele.style.overflow !== "hidden")
+ initialOverflow = ele.style.overflow;
+ if (ele.style.overflow === "hidden")
+ return isLocked.value = true;
+ if (isLocked.value)
+ return ele.style.overflow = "hidden";
+ }
+ }, {
+ immediate: true
+ });
+ const lock = () => {
+ const el = resolveElement((0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(element));
+ if (!el || isLocked.value)
+ return;
+ if (_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.isIOS) {
+ stopTouchMoveListener = useEventListener(
+ el,
+ "touchmove",
+ (e) => {
+ preventDefault(e);
+ },
+ { passive: false }
+ );
+ }
+ el.style.overflow = "hidden";
+ isLocked.value = true;
+ };
+ const unlock = () => {
+ const el = resolveElement((0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(element));
+ if (!el || !isLocked.value)
+ return;
+ if (_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.isIOS)
+ stopTouchMoveListener == null ? void 0 : stopTouchMoveListener();
+ el.style.overflow = initialOverflow;
+ elInitialOverflow.delete(el);
+ isLocked.value = false;
+ };
+ (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.tryOnScopeDispose)(unlock);
+ return (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.computed)({
+ get() {
+ return isLocked.value;
+ },
+ set(v) {
+ if (v)
+ lock();
+ else unlock();
+ }
+ });
+}
+
+function useSessionStorage(key, initialValue, options = {}) {
+ const { window = defaultWindow } = options;
+ return useStorage(key, initialValue, window == null ? void 0 : window.sessionStorage, options);
+}
+
+function useShare(shareOptions = {}, options = {}) {
+ const { navigator = defaultNavigator } = options;
+ const _navigator = navigator;
+ const isSupported = useSupported(() => _navigator && "canShare" in _navigator);
+ const share = async (overrideOptions = {}) => {
+ if (isSupported.value) {
+ const data = {
+ ...(0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(shareOptions),
+ ...(0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(overrideOptions)
+ };
+ let granted = true;
+ if (data.files && _navigator.canShare)
+ granted = _navigator.canShare({ files: data.files });
+ if (granted)
+ return _navigator.share(data);
+ }
+ };
+ return {
+ isSupported,
+ share
+ };
+}
+
+const defaultSortFn = (source, compareFn) => source.sort(compareFn);
+const defaultCompare = (a, b) => a - b;
+function useSorted(...args) {
+ var _a, _b, _c, _d;
+ const [source] = args;
+ let compareFn = defaultCompare;
+ let options = {};
+ if (args.length === 2) {
+ if (typeof args[1] === "object") {
+ options = args[1];
+ compareFn = (_a = options.compareFn) != null ? _a : defaultCompare;
+ } else {
+ compareFn = (_b = args[1]) != null ? _b : defaultCompare;
+ }
+ } else if (args.length > 2) {
+ compareFn = (_c = args[1]) != null ? _c : defaultCompare;
+ options = (_d = args[2]) != null ? _d : {};
+ }
+ const {
+ dirty = false,
+ sortFn = defaultSortFn
+ } = options;
+ if (!dirty)
+ return (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.computed)(() => sortFn([...(0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(source)], compareFn));
+ (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.watchEffect)(() => {
+ const result = sortFn((0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(source), compareFn);
+ if ((0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.isRef)(source))
+ source.value = result;
+ else
+ source.splice(0, source.length, ...result);
+ });
+ return source;
+}
+
+function useSpeechRecognition(options = {}) {
+ const {
+ interimResults = true,
+ continuous = true,
+ maxAlternatives = 1,
+ window = defaultWindow
+ } = options;
+ const lang = (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toRef)(options.lang || "en-US");
+ const isListening = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(false);
+ const isFinal = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(false);
+ const result = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)("");
+ const error = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.shallowRef)(void 0);
+ const toggle = (value = !isListening.value) => {
+ isListening.value = value;
+ };
+ const start = () => {
+ isListening.value = true;
+ };
+ const stop = () => {
+ isListening.value = false;
+ };
+ const SpeechRecognition = window && (window.SpeechRecognition || window.webkitSpeechRecognition);
+ const isSupported = useSupported(() => SpeechRecognition);
+ let recognition;
+ if (isSupported.value) {
+ recognition = new SpeechRecognition();
+ recognition.continuous = continuous;
+ recognition.interimResults = interimResults;
+ recognition.lang = (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(lang);
+ recognition.maxAlternatives = maxAlternatives;
+ recognition.onstart = () => {
+ isFinal.value = false;
+ };
+ (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.watch)(lang, (lang2) => {
+ if (recognition && !isListening.value)
+ recognition.lang = lang2;
+ });
+ recognition.onresult = (event) => {
+ const currentResult = event.results[event.resultIndex];
+ const { transcript } = currentResult[0];
+ isFinal.value = currentResult.isFinal;
+ result.value = transcript;
+ error.value = void 0;
+ };
+ recognition.onerror = (event) => {
+ error.value = event;
+ };
+ recognition.onend = () => {
+ isListening.value = false;
+ recognition.lang = (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(lang);
+ };
+ (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.watch)(isListening, () => {
+ if (isListening.value)
+ recognition.start();
+ else
+ recognition.stop();
+ });
+ }
+ (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.tryOnScopeDispose)(() => {
+ isListening.value = false;
+ });
+ return {
+ isSupported,
+ isListening,
+ isFinal,
+ recognition,
+ result,
+ error,
+ toggle,
+ start,
+ stop
+ };
+}
+
+function useSpeechSynthesis(text, options = {}) {
+ const {
+ pitch = 1,
+ rate = 1,
+ volume = 1,
+ window = defaultWindow
+ } = options;
+ const synth = window && window.speechSynthesis;
+ const isSupported = useSupported(() => synth);
+ const isPlaying = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(false);
+ const status = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)("init");
+ const spokenText = (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toRef)(text || "");
+ const lang = (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toRef)(options.lang || "en-US");
+ const error = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.shallowRef)(void 0);
+ const toggle = (value = !isPlaying.value) => {
+ isPlaying.value = value;
+ };
+ const bindEventsForUtterance = (utterance2) => {
+ utterance2.lang = (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(lang);
+ utterance2.voice = (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(options.voice) || null;
+ utterance2.pitch = (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(pitch);
+ utterance2.rate = (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(rate);
+ utterance2.volume = volume;
+ utterance2.onstart = () => {
+ isPlaying.value = true;
+ status.value = "play";
+ };
+ utterance2.onpause = () => {
+ isPlaying.value = false;
+ status.value = "pause";
+ };
+ utterance2.onresume = () => {
+ isPlaying.value = true;
+ status.value = "play";
+ };
+ utterance2.onend = () => {
+ isPlaying.value = false;
+ status.value = "end";
+ };
+ utterance2.onerror = (event) => {
+ error.value = event;
+ };
+ };
+ const utterance = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.computed)(() => {
+ isPlaying.value = false;
+ status.value = "init";
+ const newUtterance = new SpeechSynthesisUtterance(spokenText.value);
+ bindEventsForUtterance(newUtterance);
+ return newUtterance;
+ });
+ const speak = () => {
+ synth.cancel();
+ if (utterance)
+ synth.speak(utterance.value);
+ };
+ const stop = () => {
+ synth.cancel();
+ isPlaying.value = false;
+ };
+ if (isSupported.value) {
+ bindEventsForUtterance(utterance.value);
+ (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.watch)(lang, (lang2) => {
+ if (utterance.value && !isPlaying.value)
+ utterance.value.lang = lang2;
+ });
+ if (options.voice) {
+ (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.watch)(options.voice, () => {
+ synth.cancel();
+ });
+ }
+ (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.watch)(isPlaying, () => {
+ if (isPlaying.value)
+ synth.resume();
+ else
+ synth.pause();
+ });
+ }
+ (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.tryOnScopeDispose)(() => {
+ isPlaying.value = false;
+ });
+ return {
+ isSupported,
+ isPlaying,
+ status,
+ utterance,
+ error,
+ stop,
+ toggle,
+ speak
+ };
+}
+
+function useStepper(steps, initialStep) {
+ const stepsRef = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(steps);
+ const stepNames = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.computed)(() => Array.isArray(stepsRef.value) ? stepsRef.value : Object.keys(stepsRef.value));
+ const index = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(stepNames.value.indexOf(initialStep != null ? initialStep : stepNames.value[0]));
+ const current = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.computed)(() => at(index.value));
+ const isFirst = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.computed)(() => index.value === 0);
+ const isLast = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.computed)(() => index.value === stepNames.value.length - 1);
+ const next = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.computed)(() => stepNames.value[index.value + 1]);
+ const previous = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.computed)(() => stepNames.value[index.value - 1]);
+ function at(index2) {
+ if (Array.isArray(stepsRef.value))
+ return stepsRef.value[index2];
+ return stepsRef.value[stepNames.value[index2]];
+ }
+ function get(step) {
+ if (!stepNames.value.includes(step))
+ return;
+ return at(stepNames.value.indexOf(step));
+ }
+ function goTo(step) {
+ if (stepNames.value.includes(step))
+ index.value = stepNames.value.indexOf(step);
+ }
+ function goToNext() {
+ if (isLast.value)
+ return;
+ index.value++;
+ }
+ function goToPrevious() {
+ if (isFirst.value)
+ return;
+ index.value--;
+ }
+ function goBackTo(step) {
+ if (isAfter(step))
+ goTo(step);
+ }
+ function isNext(step) {
+ return stepNames.value.indexOf(step) === index.value + 1;
+ }
+ function isPrevious(step) {
+ return stepNames.value.indexOf(step) === index.value - 1;
+ }
+ function isCurrent(step) {
+ return stepNames.value.indexOf(step) === index.value;
+ }
+ function isBefore(step) {
+ return index.value < stepNames.value.indexOf(step);
+ }
+ function isAfter(step) {
+ return index.value > stepNames.value.indexOf(step);
+ }
+ return {
+ steps: stepsRef,
+ stepNames,
+ index,
+ current,
+ next,
+ previous,
+ isFirst,
+ isLast,
+ at,
+ get,
+ goTo,
+ goToNext,
+ goToPrevious,
+ goBackTo,
+ isNext,
+ isPrevious,
+ isCurrent,
+ isBefore,
+ isAfter
+ };
+}
+
+function useStorageAsync(key, initialValue, storage, options = {}) {
+ var _a;
+ const {
+ flush = "pre",
+ deep = true,
+ listenToStorageChanges = true,
+ writeDefaults = true,
+ mergeDefaults = false,
+ shallow,
+ window = defaultWindow,
+ eventFilter,
+ onError = (e) => {
+ console.error(e);
+ }
+ } = options;
+ const rawInit = (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(initialValue);
+ const type = guessSerializerType(rawInit);
+ const data = (shallow ? vue_demi__WEBPACK_IMPORTED_MODULE_1__.shallowRef : vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(initialValue);
+ const serializer = (_a = options.serializer) != null ? _a : StorageSerializers[type];
+ if (!storage) {
+ try {
+ storage = getSSRHandler("getDefaultStorageAsync", () => {
+ var _a2;
+ return (_a2 = defaultWindow) == null ? void 0 : _a2.localStorage;
+ })();
+ } catch (e) {
+ onError(e);
+ }
+ }
+ async function read(event) {
+ if (!storage || event && event.key !== key)
+ return;
+ try {
+ const rawValue = event ? event.newValue : await storage.getItem(key);
+ if (rawValue == null) {
+ data.value = rawInit;
+ if (writeDefaults && rawInit !== null)
+ await storage.setItem(key, await serializer.write(rawInit));
+ } else if (mergeDefaults) {
+ const value = await serializer.read(rawValue);
+ if (typeof mergeDefaults === "function")
+ data.value = mergeDefaults(value, rawInit);
+ else if (type === "object" && !Array.isArray(value))
+ data.value = { ...rawInit, ...value };
+ else data.value = value;
+ } else {
+ data.value = await serializer.read(rawValue);
+ }
+ } catch (e) {
+ onError(e);
+ }
+ }
+ read();
+ if (window && listenToStorageChanges)
+ useEventListener(window, "storage", (e) => Promise.resolve().then(() => read(e)));
+ if (storage) {
+ (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.watchWithFilter)(
+ data,
+ async () => {
+ try {
+ if (data.value == null)
+ await storage.removeItem(key);
+ else
+ await storage.setItem(key, await serializer.write(data.value));
+ } catch (e) {
+ onError(e);
+ }
+ },
+ {
+ flush,
+ deep,
+ eventFilter
+ }
+ );
+ }
+ return data;
+}
+
+let _id = 0;
+function useStyleTag(css, options = {}) {
+ const isLoaded = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(false);
+ const {
+ document = defaultDocument,
+ immediate = true,
+ manual = false,
+ id = `vueuse_styletag_${++_id}`
+ } = options;
+ const cssRef = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(css);
+ let stop = () => {
+ };
+ const load = () => {
+ if (!document)
+ return;
+ const el = document.getElementById(id) || document.createElement("style");
+ if (!el.isConnected) {
+ el.id = id;
+ if (options.media)
+ el.media = options.media;
+ document.head.appendChild(el);
+ }
+ if (isLoaded.value)
+ return;
+ stop = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.watch)(
+ cssRef,
+ (value) => {
+ el.textContent = value;
+ },
+ { immediate: true }
+ );
+ isLoaded.value = true;
+ };
+ const unload = () => {
+ if (!document || !isLoaded.value)
+ return;
+ stop();
+ document.head.removeChild(document.getElementById(id));
+ isLoaded.value = false;
+ };
+ if (immediate && !manual)
+ (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.tryOnMounted)(load);
+ if (!manual)
+ (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.tryOnScopeDispose)(unload);
+ return {
+ id,
+ css: cssRef,
+ unload,
+ load,
+ isLoaded: (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.readonly)(isLoaded)
+ };
+}
+
+function useSwipe(target, options = {}) {
+ const {
+ threshold = 50,
+ onSwipe,
+ onSwipeEnd,
+ onSwipeStart,
+ passive = true,
+ window = defaultWindow
+ } = options;
+ const coordsStart = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.reactive)({ x: 0, y: 0 });
+ const coordsEnd = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.reactive)({ x: 0, y: 0 });
+ const diffX = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.computed)(() => coordsStart.x - coordsEnd.x);
+ const diffY = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.computed)(() => coordsStart.y - coordsEnd.y);
+ const { max, abs } = Math;
+ const isThresholdExceeded = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.computed)(() => max(abs(diffX.value), abs(diffY.value)) >= threshold);
+ const isSwiping = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(false);
+ const direction = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.computed)(() => {
+ if (!isThresholdExceeded.value)
+ return "none";
+ if (abs(diffX.value) > abs(diffY.value)) {
+ return diffX.value > 0 ? "left" : "right";
+ } else {
+ return diffY.value > 0 ? "up" : "down";
+ }
+ });
+ const getTouchEventCoords = (e) => [e.touches[0].clientX, e.touches[0].clientY];
+ const updateCoordsStart = (x, y) => {
+ coordsStart.x = x;
+ coordsStart.y = y;
+ };
+ const updateCoordsEnd = (x, y) => {
+ coordsEnd.x = x;
+ coordsEnd.y = y;
+ };
+ let listenerOptions;
+ const isPassiveEventSupported = checkPassiveEventSupport(window == null ? void 0 : window.document);
+ if (!passive)
+ listenerOptions = isPassiveEventSupported ? { passive: false, capture: true } : { capture: true };
+ else
+ listenerOptions = isPassiveEventSupported ? { passive: true } : { capture: false };
+ const onTouchEnd = (e) => {
+ if (isSwiping.value)
+ onSwipeEnd == null ? void 0 : onSwipeEnd(e, direction.value);
+ isSwiping.value = false;
+ };
+ const stops = [
+ useEventListener(target, "touchstart", (e) => {
+ if (e.touches.length !== 1)
+ return;
+ if (listenerOptions.capture && !listenerOptions.passive)
+ e.preventDefault();
+ const [x, y] = getTouchEventCoords(e);
+ updateCoordsStart(x, y);
+ updateCoordsEnd(x, y);
+ onSwipeStart == null ? void 0 : onSwipeStart(e);
+ }, listenerOptions),
+ useEventListener(target, "touchmove", (e) => {
+ if (e.touches.length !== 1)
+ return;
+ const [x, y] = getTouchEventCoords(e);
+ updateCoordsEnd(x, y);
+ if (!isSwiping.value && isThresholdExceeded.value)
+ isSwiping.value = true;
+ if (isSwiping.value)
+ onSwipe == null ? void 0 : onSwipe(e);
+ }, listenerOptions),
+ useEventListener(target, ["touchend", "touchcancel"], onTouchEnd, listenerOptions)
+ ];
+ const stop = () => stops.forEach((s) => s());
+ return {
+ isPassiveEventSupported,
+ isSwiping,
+ direction,
+ coordsStart,
+ coordsEnd,
+ lengthX: diffX,
+ lengthY: diffY,
+ stop
+ };
+}
+function checkPassiveEventSupport(document) {
+ if (!document)
+ return false;
+ let supportsPassive = false;
+ const optionsBlock = {
+ get passive() {
+ supportsPassive = true;
+ return false;
+ }
+ };
+ document.addEventListener("x", _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.noop, optionsBlock);
+ document.removeEventListener("x", _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.noop);
+ return supportsPassive;
+}
+
+function useTemplateRefsList() {
+ const refs = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)([]);
+ refs.value.set = (el) => {
+ if (el)
+ refs.value.push(el);
+ };
+ (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.onBeforeUpdate)(() => {
+ refs.value.length = 0;
+ });
+ return refs;
+}
+
+function useTextDirection(options = {}) {
+ const {
+ document = defaultDocument,
+ selector = "html",
+ observe = false,
+ initialValue = "ltr"
+ } = options;
+ function getValue() {
+ var _a, _b;
+ return (_b = (_a = document == null ? void 0 : document.querySelector(selector)) == null ? void 0 : _a.getAttribute("dir")) != null ? _b : initialValue;
+ }
+ const dir = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(getValue());
+ (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.tryOnMounted)(() => dir.value = getValue());
+ if (observe && document) {
+ useMutationObserver(
+ document.querySelector(selector),
+ () => dir.value = getValue(),
+ { attributes: true }
+ );
+ }
+ return (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.computed)({
+ get() {
+ return dir.value;
+ },
+ set(v) {
+ var _a, _b;
+ dir.value = v;
+ if (!document)
+ return;
+ if (dir.value)
+ (_a = document.querySelector(selector)) == null ? void 0 : _a.setAttribute("dir", dir.value);
+ else
+ (_b = document.querySelector(selector)) == null ? void 0 : _b.removeAttribute("dir");
+ }
+ });
+}
+
+function getRangesFromSelection(selection) {
+ var _a;
+ const rangeCount = (_a = selection.rangeCount) != null ? _a : 0;
+ return Array.from({ length: rangeCount }, (_, i) => selection.getRangeAt(i));
+}
+function useTextSelection(options = {}) {
+ const {
+ window = defaultWindow
+ } = options;
+ const selection = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(null);
+ const text = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.computed)(() => {
+ var _a, _b;
+ return (_b = (_a = selection.value) == null ? void 0 : _a.toString()) != null ? _b : "";
+ });
+ const ranges = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.computed)(() => selection.value ? getRangesFromSelection(selection.value) : []);
+ const rects = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.computed)(() => ranges.value.map((range) => range.getBoundingClientRect()));
+ function onSelectionChange() {
+ selection.value = null;
+ if (window)
+ selection.value = window.getSelection();
+ }
+ if (window)
+ useEventListener(window.document, "selectionchange", onSelectionChange);
+ return {
+ text,
+ rects,
+ ranges,
+ selection
+ };
+}
+
+function useTextareaAutosize(options) {
+ var _a;
+ const textarea = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(options == null ? void 0 : options.element);
+ const input = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(options == null ? void 0 : options.input);
+ const styleProp = (_a = options == null ? void 0 : options.styleProp) != null ? _a : "height";
+ const textareaScrollHeight = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(1);
+ const textareaOldWidth = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(0);
+ function triggerResize() {
+ var _a2;
+ if (!textarea.value)
+ return;
+ let height = "";
+ textarea.value.style[styleProp] = "1px";
+ textareaScrollHeight.value = (_a2 = textarea.value) == null ? void 0 : _a2.scrollHeight;
+ const _styleTarget = (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(options == null ? void 0 : options.styleTarget);
+ if (_styleTarget)
+ _styleTarget.style[styleProp] = `${textareaScrollHeight.value}px`;
+ else
+ height = `${textareaScrollHeight.value}px`;
+ textarea.value.style[styleProp] = height;
+ }
+ (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.watch)([input, textarea], () => (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.nextTick)(triggerResize), { immediate: true });
+ (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.watch)(textareaScrollHeight, () => {
+ var _a2;
+ return (_a2 = options == null ? void 0 : options.onResize) == null ? void 0 : _a2.call(options);
+ });
+ useResizeObserver(textarea, ([{ contentRect }]) => {
+ if (textareaOldWidth.value === contentRect.width)
+ return;
+ textareaOldWidth.value = contentRect.width;
+ triggerResize();
+ });
+ if (options == null ? void 0 : options.watch)
+ (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.watch)(options.watch, triggerResize, { immediate: true, deep: true });
+ return {
+ textarea,
+ input,
+ triggerResize
+ };
+}
+
+function useThrottledRefHistory(source, options = {}) {
+ const { throttle = 200, trailing = true } = options;
+ const filter = (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.throttleFilter)(throttle, trailing);
+ const history = useRefHistory(source, { ...options, eventFilter: filter });
+ return {
+ ...history
+ };
+}
+
+const DEFAULT_UNITS = [
+ { max: 6e4, value: 1e3, name: "second" },
+ { max: 276e4, value: 6e4, name: "minute" },
+ { max: 72e6, value: 36e5, name: "hour" },
+ { max: 5184e5, value: 864e5, name: "day" },
+ { max: 24192e5, value: 6048e5, name: "week" },
+ { max: 28512e6, value: 2592e6, name: "month" },
+ { max: Number.POSITIVE_INFINITY, value: 31536e6, name: "year" }
+];
+const DEFAULT_MESSAGES = {
+ justNow: "just now",
+ past: (n) => n.match(/\d/) ? `${n} ago` : n,
+ future: (n) => n.match(/\d/) ? `in ${n}` : n,
+ month: (n, past) => n === 1 ? past ? "last month" : "next month" : `${n} month${n > 1 ? "s" : ""}`,
+ year: (n, past) => n === 1 ? past ? "last year" : "next year" : `${n} year${n > 1 ? "s" : ""}`,
+ day: (n, past) => n === 1 ? past ? "yesterday" : "tomorrow" : `${n} day${n > 1 ? "s" : ""}`,
+ week: (n, past) => n === 1 ? past ? "last week" : "next week" : `${n} week${n > 1 ? "s" : ""}`,
+ hour: (n) => `${n} hour${n > 1 ? "s" : ""}`,
+ minute: (n) => `${n} minute${n > 1 ? "s" : ""}`,
+ second: (n) => `${n} second${n > 1 ? "s" : ""}`,
+ invalid: ""
+};
+function DEFAULT_FORMATTER(date) {
+ return date.toISOString().slice(0, 10);
+}
+function useTimeAgo(time, options = {}) {
+ const {
+ controls: exposeControls = false,
+ updateInterval = 3e4
+ } = options;
+ const { now, ...controls } = useNow({ interval: updateInterval, controls: true });
+ const timeAgo = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.computed)(() => formatTimeAgo(new Date((0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(time)), options, (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(now)));
+ if (exposeControls) {
+ return {
+ timeAgo,
+ ...controls
+ };
+ } else {
+ return timeAgo;
+ }
+}
+function formatTimeAgo(from, options = {}, now = Date.now()) {
+ var _a;
+ const {
+ max,
+ messages = DEFAULT_MESSAGES,
+ fullDateFormatter = DEFAULT_FORMATTER,
+ units = DEFAULT_UNITS,
+ showSecond = false,
+ rounding = "round"
+ } = options;
+ const roundFn = typeof rounding === "number" ? (n) => +n.toFixed(rounding) : Math[rounding];
+ const diff = +now - +from;
+ const absDiff = Math.abs(diff);
+ function getValue(diff2, unit) {
+ return roundFn(Math.abs(diff2) / unit.value);
+ }
+ function format(diff2, unit) {
+ const val = getValue(diff2, unit);
+ const past = diff2 > 0;
+ const str = applyFormat(unit.name, val, past);
+ return applyFormat(past ? "past" : "future", str, past);
+ }
+ function applyFormat(name, val, isPast) {
+ const formatter = messages[name];
+ if (typeof formatter === "function")
+ return formatter(val, isPast);
+ return formatter.replace("{0}", val.toString());
+ }
+ if (absDiff < 6e4 && !showSecond)
+ return messages.justNow;
+ if (typeof max === "number" && absDiff > max)
+ return fullDateFormatter(new Date(from));
+ if (typeof max === "string") {
+ const unitMax = (_a = units.find((i) => i.name === max)) == null ? void 0 : _a.max;
+ if (unitMax && absDiff > unitMax)
+ return fullDateFormatter(new Date(from));
+ }
+ for (const [idx, unit] of units.entries()) {
+ const val = getValue(diff, unit);
+ if (val <= 0 && units[idx - 1])
+ return format(diff, units[idx - 1]);
+ if (absDiff < unit.max)
+ return format(diff, unit);
+ }
+ return messages.invalid;
+}
+
+function useTimeoutPoll(fn, interval, timeoutPollOptions) {
+ const { start } = (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.useTimeoutFn)(loop, interval, { immediate: false });
+ const isActive = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(false);
+ async function loop() {
+ if (!isActive.value)
+ return;
+ await fn();
+ start();
+ }
+ function resume() {
+ if (!isActive.value) {
+ isActive.value = true;
+ loop();
+ }
+ }
+ function pause() {
+ isActive.value = false;
+ }
+ if (timeoutPollOptions == null ? void 0 : timeoutPollOptions.immediate)
+ resume();
+ (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.tryOnScopeDispose)(pause);
+ return {
+ isActive,
+ pause,
+ resume
+ };
+}
+
+function useTimestamp(options = {}) {
+ const {
+ controls: exposeControls = false,
+ offset = 0,
+ immediate = true,
+ interval = "requestAnimationFrame",
+ callback
+ } = options;
+ const ts = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)((0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.timestamp)() + offset);
+ const update = () => ts.value = (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.timestamp)() + offset;
+ const cb = callback ? () => {
+ update();
+ callback(ts.value);
+ } : update;
+ const controls = interval === "requestAnimationFrame" ? useRafFn(cb, { immediate }) : (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.useIntervalFn)(cb, interval, { immediate });
+ if (exposeControls) {
+ return {
+ timestamp: ts,
+ ...controls
+ };
+ } else {
+ return ts;
+ }
+}
+
+function useTitle(newTitle = null, options = {}) {
+ var _a, _b, _c;
+ const {
+ document = defaultDocument,
+ restoreOnUnmount = (t) => t
+ } = options;
+ const originalTitle = (_a = document == null ? void 0 : document.title) != null ? _a : "";
+ const title = (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toRef)((_b = newTitle != null ? newTitle : document == null ? void 0 : document.title) != null ? _b : null);
+ const isReadonly = newTitle && typeof newTitle === "function";
+ function format(t) {
+ if (!("titleTemplate" in options))
+ return t;
+ const template = options.titleTemplate || "%s";
+ return typeof template === "function" ? template(t) : (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(template).replace(/%s/g, t);
+ }
+ (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.watch)(
+ title,
+ (t, o) => {
+ if (t !== o && document)
+ document.title = format(typeof t === "string" ? t : "");
+ },
+ { immediate: true }
+ );
+ if (options.observe && !options.titleTemplate && document && !isReadonly) {
+ useMutationObserver(
+ (_c = document.head) == null ? void 0 : _c.querySelector("title"),
+ () => {
+ if (document && document.title !== title.value)
+ title.value = format(document.title);
+ },
+ { childList: true }
+ );
+ }
+ (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.tryOnBeforeUnmount)(() => {
+ if (restoreOnUnmount) {
+ const restoredTitle = restoreOnUnmount(originalTitle, title.value || "");
+ if (restoredTitle != null && document)
+ document.title = restoredTitle;
+ }
+ });
+ return title;
+}
+
+const _TransitionPresets = {
+ easeInSine: [0.12, 0, 0.39, 0],
+ easeOutSine: [0.61, 1, 0.88, 1],
+ easeInOutSine: [0.37, 0, 0.63, 1],
+ easeInQuad: [0.11, 0, 0.5, 0],
+ easeOutQuad: [0.5, 1, 0.89, 1],
+ easeInOutQuad: [0.45, 0, 0.55, 1],
+ easeInCubic: [0.32, 0, 0.67, 0],
+ easeOutCubic: [0.33, 1, 0.68, 1],
+ easeInOutCubic: [0.65, 0, 0.35, 1],
+ easeInQuart: [0.5, 0, 0.75, 0],
+ easeOutQuart: [0.25, 1, 0.5, 1],
+ easeInOutQuart: [0.76, 0, 0.24, 1],
+ easeInQuint: [0.64, 0, 0.78, 0],
+ easeOutQuint: [0.22, 1, 0.36, 1],
+ easeInOutQuint: [0.83, 0, 0.17, 1],
+ easeInExpo: [0.7, 0, 0.84, 0],
+ easeOutExpo: [0.16, 1, 0.3, 1],
+ easeInOutExpo: [0.87, 0, 0.13, 1],
+ easeInCirc: [0.55, 0, 1, 0.45],
+ easeOutCirc: [0, 0.55, 0.45, 1],
+ easeInOutCirc: [0.85, 0, 0.15, 1],
+ easeInBack: [0.36, 0, 0.66, -0.56],
+ easeOutBack: [0.34, 1.56, 0.64, 1],
+ easeInOutBack: [0.68, -0.6, 0.32, 1.6]
+};
+const TransitionPresets = /* @__PURE__ */ Object.assign({}, { linear: _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.identity }, _TransitionPresets);
+function createEasingFunction([p0, p1, p2, p3]) {
+ const a = (a1, a2) => 1 - 3 * a2 + 3 * a1;
+ const b = (a1, a2) => 3 * a2 - 6 * a1;
+ const c = (a1) => 3 * a1;
+ const calcBezier = (t, a1, a2) => ((a(a1, a2) * t + b(a1, a2)) * t + c(a1)) * t;
+ const getSlope = (t, a1, a2) => 3 * a(a1, a2) * t * t + 2 * b(a1, a2) * t + c(a1);
+ const getTforX = (x) => {
+ let aGuessT = x;
+ for (let i = 0; i < 4; ++i) {
+ const currentSlope = getSlope(aGuessT, p0, p2);
+ if (currentSlope === 0)
+ return aGuessT;
+ const currentX = calcBezier(aGuessT, p0, p2) - x;
+ aGuessT -= currentX / currentSlope;
+ }
+ return aGuessT;
+ };
+ return (x) => p0 === p1 && p2 === p3 ? x : calcBezier(getTforX(x), p1, p3);
+}
+function lerp(a, b, alpha) {
+ return a + alpha * (b - a);
+}
+function toVec(t) {
+ return (typeof t === "number" ? [t] : t) || [];
+}
+function executeTransition(source, from, to, options = {}) {
+ var _a, _b;
+ const fromVal = (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(from);
+ const toVal = (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(to);
+ const v1 = toVec(fromVal);
+ const v2 = toVec(toVal);
+ const duration = (_a = (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(options.duration)) != null ? _a : 1e3;
+ const startedAt = Date.now();
+ const endAt = Date.now() + duration;
+ const trans = typeof options.transition === "function" ? options.transition : (_b = (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(options.transition)) != null ? _b : _vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.identity;
+ const ease = typeof trans === "function" ? trans : createEasingFunction(trans);
+ return new Promise((resolve) => {
+ source.value = fromVal;
+ const tick = () => {
+ var _a2;
+ if ((_a2 = options.abort) == null ? void 0 : _a2.call(options)) {
+ resolve();
+ return;
+ }
+ const now = Date.now();
+ const alpha = ease((now - startedAt) / duration);
+ const arr = toVec(source.value).map((n, i) => lerp(v1[i], v2[i], alpha));
+ if (Array.isArray(source.value))
+ source.value = arr.map((n, i) => {
+ var _a3, _b2;
+ return lerp((_a3 = v1[i]) != null ? _a3 : 0, (_b2 = v2[i]) != null ? _b2 : 0, alpha);
+ });
+ else if (typeof source.value === "number")
+ source.value = arr[0];
+ if (now < endAt) {
+ requestAnimationFrame(tick);
+ } else {
+ source.value = toVal;
+ resolve();
+ }
+ };
+ tick();
+ });
+}
+function useTransition(source, options = {}) {
+ let currentId = 0;
+ const sourceVal = () => {
+ const v = (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(source);
+ return typeof v === "number" ? v : v.map(_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue);
+ };
+ const outputRef = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(sourceVal());
+ (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.watch)(sourceVal, async (to) => {
+ var _a, _b;
+ if ((0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(options.disabled))
+ return;
+ const id = ++currentId;
+ if (options.delay)
+ await (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.promiseTimeout)((0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(options.delay));
+ if (id !== currentId)
+ return;
+ const toVal = Array.isArray(to) ? to.map(_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue) : (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(to);
+ (_a = options.onStarted) == null ? void 0 : _a.call(options);
+ await executeTransition(outputRef, outputRef.value, toVal, {
+ ...options,
+ abort: () => {
+ var _a2;
+ return id !== currentId || ((_a2 = options.abort) == null ? void 0 : _a2.call(options));
+ }
+ });
+ (_b = options.onFinished) == null ? void 0 : _b.call(options);
+ }, { deep: true });
+ (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.watch)(() => (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(options.disabled), (disabled) => {
+ if (disabled) {
+ currentId++;
+ outputRef.value = sourceVal();
+ }
+ });
+ (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.tryOnScopeDispose)(() => {
+ currentId++;
+ });
+ return (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.computed)(() => (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toValue)(options.disabled) ? sourceVal() : outputRef.value);
+}
+
+function useUrlSearchParams(mode = "history", options = {}) {
+ const {
+ initialValue = {},
+ removeNullishValues = true,
+ removeFalsyValues = false,
+ write: enableWrite = true,
+ window = defaultWindow
+ } = options;
+ if (!window)
+ return (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.reactive)(initialValue);
+ const state = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.reactive)({});
+ function getRawParams() {
+ if (mode === "history") {
+ return window.location.search || "";
+ } else if (mode === "hash") {
+ const hash = window.location.hash || "";
+ const index = hash.indexOf("?");
+ return index > 0 ? hash.slice(index) : "";
+ } else {
+ return (window.location.hash || "").replace(/^#/, "");
+ }
+ }
+ function constructQuery(params) {
+ const stringified = params.toString();
+ if (mode === "history")
+ return `${stringified ? `?${stringified}` : ""}${window.location.hash || ""}`;
+ if (mode === "hash-params")
+ return `${window.location.search || ""}${stringified ? `#${stringified}` : ""}`;
+ const hash = window.location.hash || "#";
+ const index = hash.indexOf("?");
+ if (index > 0)
+ return `${hash.slice(0, index)}${stringified ? `?${stringified}` : ""}`;
+ return `${hash}${stringified ? `?${stringified}` : ""}`;
+ }
+ function read() {
+ return new URLSearchParams(getRawParams());
+ }
+ function updateState(params) {
+ const unusedKeys = new Set(Object.keys(state));
+ for (const key of params.keys()) {
+ const paramsForKey = params.getAll(key);
+ state[key] = paramsForKey.length > 1 ? paramsForKey : params.get(key) || "";
+ unusedKeys.delete(key);
+ }
+ Array.from(unusedKeys).forEach((key) => delete state[key]);
+ }
+ const { pause, resume } = (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.pausableWatch)(
+ state,
+ () => {
+ const params = new URLSearchParams("");
+ Object.keys(state).forEach((key) => {
+ const mapEntry = state[key];
+ if (Array.isArray(mapEntry))
+ mapEntry.forEach((value) => params.append(key, value));
+ else if (removeNullishValues && mapEntry == null)
+ params.delete(key);
+ else if (removeFalsyValues && !mapEntry)
+ params.delete(key);
+ else
+ params.set(key, mapEntry);
+ });
+ write(params);
+ },
+ { deep: true }
+ );
+ function write(params, shouldUpdate) {
+ pause();
+ if (shouldUpdate)
+ updateState(params);
+ window.history.replaceState(
+ window.history.state,
+ window.document.title,
+ window.location.pathname + constructQuery(params)
+ );
+ resume();
+ }
+ function onChanged() {
+ if (!enableWrite)
+ return;
+ write(read(), true);
+ }
+ useEventListener(window, "popstate", onChanged, false);
+ if (mode !== "history")
+ useEventListener(window, "hashchange", onChanged, false);
+ const initial = read();
+ if (initial.keys().next().value)
+ updateState(initial);
+ else
+ Object.assign(state, initialValue);
+ return state;
+}
+
+function useUserMedia(options = {}) {
+ var _a, _b;
+ const enabled = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)((_a = options.enabled) != null ? _a : false);
+ const autoSwitch = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)((_b = options.autoSwitch) != null ? _b : true);
+ const constraints = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(options.constraints);
+ const { navigator = defaultNavigator } = options;
+ const isSupported = useSupported(() => {
+ var _a2;
+ return (_a2 = navigator == null ? void 0 : navigator.mediaDevices) == null ? void 0 : _a2.getUserMedia;
+ });
+ const stream = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.shallowRef)();
+ function getDeviceOptions(type) {
+ switch (type) {
+ case "video": {
+ if (constraints.value)
+ return constraints.value.video || false;
+ break;
+ }
+ case "audio": {
+ if (constraints.value)
+ return constraints.value.audio || false;
+ break;
+ }
+ }
+ }
+ async function _start() {
+ if (!isSupported.value || stream.value)
+ return;
+ stream.value = await navigator.mediaDevices.getUserMedia({
+ video: getDeviceOptions("video"),
+ audio: getDeviceOptions("audio")
+ });
+ return stream.value;
+ }
+ function _stop() {
+ var _a2;
+ (_a2 = stream.value) == null ? void 0 : _a2.getTracks().forEach((t) => t.stop());
+ stream.value = void 0;
+ }
+ function stop() {
+ _stop();
+ enabled.value = false;
+ }
+ async function start() {
+ await _start();
+ if (stream.value)
+ enabled.value = true;
+ return stream.value;
+ }
+ async function restart() {
+ _stop();
+ return await start();
+ }
+ (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.watch)(
+ enabled,
+ (v) => {
+ if (v)
+ _start();
+ else _stop();
+ },
+ { immediate: true }
+ );
+ (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.watch)(
+ constraints,
+ () => {
+ if (autoSwitch.value && stream.value)
+ restart();
+ },
+ { immediate: true }
+ );
+ (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.tryOnScopeDispose)(() => {
+ stop();
+ });
+ return {
+ isSupported,
+ stream,
+ start,
+ stop,
+ restart,
+ constraints,
+ enabled,
+ autoSwitch
+ };
+}
+
+function useVModel(props, key, emit, options = {}) {
+ var _a, _b, _c, _d, _e;
+ const {
+ clone = false,
+ passive = false,
+ eventName,
+ deep = false,
+ defaultValue,
+ shouldEmit
+ } = options;
+ const vm = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.getCurrentInstance)();
+ const _emit = emit || (vm == null ? void 0 : vm.emit) || ((_a = vm == null ? void 0 : vm.$emit) == null ? void 0 : _a.bind(vm)) || ((_c = (_b = vm == null ? void 0 : vm.proxy) == null ? void 0 : _b.$emit) == null ? void 0 : _c.bind(vm == null ? void 0 : vm.proxy));
+ let event = eventName;
+ if (!key) {
+ if (vue_demi__WEBPACK_IMPORTED_MODULE_1__.isVue2) {
+ const modelOptions = (_e = (_d = vm == null ? void 0 : vm.proxy) == null ? void 0 : _d.$options) == null ? void 0 : _e.model;
+ key = (modelOptions == null ? void 0 : modelOptions.value) || "value";
+ if (!eventName)
+ event = (modelOptions == null ? void 0 : modelOptions.event) || "input";
+ } else {
+ key = "modelValue";
+ }
+ }
+ event = event || `update:${key.toString()}`;
+ const cloneFn = (val) => !clone ? val : typeof clone === "function" ? clone(val) : cloneFnJSON(val);
+ const getValue = () => (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.isDef)(props[key]) ? cloneFn(props[key]) : defaultValue;
+ const triggerEmit = (value) => {
+ if (shouldEmit) {
+ if (shouldEmit(value))
+ _emit(event, value);
+ } else {
+ _emit(event, value);
+ }
+ };
+ if (passive) {
+ const initialValue = getValue();
+ const proxy = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(initialValue);
+ let isUpdating = false;
+ (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.watch)(
+ () => props[key],
+ (v) => {
+ if (!isUpdating) {
+ isUpdating = true;
+ proxy.value = cloneFn(v);
+ (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.nextTick)(() => isUpdating = false);
+ }
+ }
+ );
+ (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.watch)(
+ proxy,
+ (v) => {
+ if (!isUpdating && (v !== props[key] || deep))
+ triggerEmit(v);
+ },
+ { deep }
+ );
+ return proxy;
+ } else {
+ return (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.computed)({
+ get() {
+ return getValue();
+ },
+ set(value) {
+ triggerEmit(value);
+ }
+ });
+ }
+}
+
+function useVModels(props, emit, options = {}) {
+ const ret = {};
+ for (const key in props) {
+ ret[key] = useVModel(
+ props,
+ key,
+ emit,
+ options
+ );
+ }
+ return ret;
+}
+
+function useVibrate(options) {
+ const {
+ pattern = [],
+ interval = 0,
+ navigator = defaultNavigator
+ } = options || {};
+ const isSupported = useSupported(() => typeof navigator !== "undefined" && "vibrate" in navigator);
+ const patternRef = (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toRef)(pattern);
+ let intervalControls;
+ const vibrate = (pattern2 = patternRef.value) => {
+ if (isSupported.value)
+ navigator.vibrate(pattern2);
+ };
+ const stop = () => {
+ if (isSupported.value)
+ navigator.vibrate(0);
+ intervalControls == null ? void 0 : intervalControls.pause();
+ };
+ if (interval > 0) {
+ intervalControls = (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.useIntervalFn)(
+ vibrate,
+ interval,
+ {
+ immediate: false,
+ immediateCallback: false
+ }
+ );
+ }
+ return {
+ isSupported,
+ pattern,
+ intervalControls,
+ vibrate,
+ stop
+ };
+}
+
+function useVirtualList(list, options) {
+ const { containerStyle, wrapperProps, scrollTo, calculateRange, currentList, containerRef } = "itemHeight" in options ? useVerticalVirtualList(options, list) : useHorizontalVirtualList(options, list);
+ return {
+ list: currentList,
+ scrollTo,
+ containerProps: {
+ ref: containerRef,
+ onScroll: () => {
+ calculateRange();
+ },
+ style: containerStyle
+ },
+ wrapperProps
+ };
+}
+function useVirtualListResources(list) {
+ const containerRef = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(null);
+ const size = useElementSize(containerRef);
+ const currentList = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)([]);
+ const source = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.shallowRef)(list);
+ const state = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)({ start: 0, end: 10 });
+ return { state, source, currentList, size, containerRef };
+}
+function createGetViewCapacity(state, source, itemSize) {
+ return (containerSize) => {
+ if (typeof itemSize === "number")
+ return Math.ceil(containerSize / itemSize);
+ const { start = 0 } = state.value;
+ let sum = 0;
+ let capacity = 0;
+ for (let i = start; i < source.value.length; i++) {
+ const size = itemSize(i);
+ sum += size;
+ capacity = i;
+ if (sum > containerSize)
+ break;
+ }
+ return capacity - start;
+ };
+}
+function createGetOffset(source, itemSize) {
+ return (scrollDirection) => {
+ if (typeof itemSize === "number")
+ return Math.floor(scrollDirection / itemSize) + 1;
+ let sum = 0;
+ let offset = 0;
+ for (let i = 0; i < source.value.length; i++) {
+ const size = itemSize(i);
+ sum += size;
+ if (sum >= scrollDirection) {
+ offset = i;
+ break;
+ }
+ }
+ return offset + 1;
+ };
+}
+function createCalculateRange(type, overscan, getOffset, getViewCapacity, { containerRef, state, currentList, source }) {
+ return () => {
+ const element = containerRef.value;
+ if (element) {
+ const offset = getOffset(type === "vertical" ? element.scrollTop : element.scrollLeft);
+ const viewCapacity = getViewCapacity(type === "vertical" ? element.clientHeight : element.clientWidth);
+ const from = offset - overscan;
+ const to = offset + viewCapacity + overscan;
+ state.value = {
+ start: from < 0 ? 0 : from,
+ end: to > source.value.length ? source.value.length : to
+ };
+ currentList.value = source.value.slice(state.value.start, state.value.end).map((ele, index) => ({
+ data: ele,
+ index: index + state.value.start
+ }));
+ }
+ };
+}
+function createGetDistance(itemSize, source) {
+ return (index) => {
+ if (typeof itemSize === "number") {
+ const size2 = index * itemSize;
+ return size2;
+ }
+ const size = source.value.slice(0, index).reduce((sum, _, i) => sum + itemSize(i), 0);
+ return size;
+ };
+}
+function useWatchForSizes(size, list, containerRef, calculateRange) {
+ (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.watch)([size.width, size.height, list, containerRef], () => {
+ calculateRange();
+ });
+}
+function createComputedTotalSize(itemSize, source) {
+ return (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.computed)(() => {
+ if (typeof itemSize === "number")
+ return source.value.length * itemSize;
+ return source.value.reduce((sum, _, index) => sum + itemSize(index), 0);
+ });
+}
+const scrollToDictionaryForElementScrollKey = {
+ horizontal: "scrollLeft",
+ vertical: "scrollTop"
+};
+function createScrollTo(type, calculateRange, getDistance, containerRef) {
+ return (index) => {
+ if (containerRef.value) {
+ containerRef.value[scrollToDictionaryForElementScrollKey[type]] = getDistance(index);
+ calculateRange();
+ }
+ };
+}
+function useHorizontalVirtualList(options, list) {
+ const resources = useVirtualListResources(list);
+ const { state, source, currentList, size, containerRef } = resources;
+ const containerStyle = { overflowX: "auto" };
+ const { itemWidth, overscan = 5 } = options;
+ const getViewCapacity = createGetViewCapacity(state, source, itemWidth);
+ const getOffset = createGetOffset(source, itemWidth);
+ const calculateRange = createCalculateRange("horizontal", overscan, getOffset, getViewCapacity, resources);
+ const getDistanceLeft = createGetDistance(itemWidth, source);
+ const offsetLeft = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.computed)(() => getDistanceLeft(state.value.start));
+ const totalWidth = createComputedTotalSize(itemWidth, source);
+ useWatchForSizes(size, list, containerRef, calculateRange);
+ const scrollTo = createScrollTo("horizontal", calculateRange, getDistanceLeft, containerRef);
+ const wrapperProps = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.computed)(() => {
+ return {
+ style: {
+ height: "100%",
+ width: `${totalWidth.value - offsetLeft.value}px`,
+ marginLeft: `${offsetLeft.value}px`,
+ display: "flex"
+ }
+ };
+ });
+ return {
+ scrollTo,
+ calculateRange,
+ wrapperProps,
+ containerStyle,
+ currentList,
+ containerRef
+ };
+}
+function useVerticalVirtualList(options, list) {
+ const resources = useVirtualListResources(list);
+ const { state, source, currentList, size, containerRef } = resources;
+ const containerStyle = { overflowY: "auto" };
+ const { itemHeight, overscan = 5 } = options;
+ const getViewCapacity = createGetViewCapacity(state, source, itemHeight);
+ const getOffset = createGetOffset(source, itemHeight);
+ const calculateRange = createCalculateRange("vertical", overscan, getOffset, getViewCapacity, resources);
+ const getDistanceTop = createGetDistance(itemHeight, source);
+ const offsetTop = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.computed)(() => getDistanceTop(state.value.start));
+ const totalHeight = createComputedTotalSize(itemHeight, source);
+ useWatchForSizes(size, list, containerRef, calculateRange);
+ const scrollTo = createScrollTo("vertical", calculateRange, getDistanceTop, containerRef);
+ const wrapperProps = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.computed)(() => {
+ return {
+ style: {
+ width: "100%",
+ height: `${totalHeight.value - offsetTop.value}px`,
+ marginTop: `${offsetTop.value}px`
+ }
+ };
+ });
+ return {
+ calculateRange,
+ scrollTo,
+ containerStyle,
+ wrapperProps,
+ currentList,
+ containerRef
+ };
+}
+
+function useWakeLock(options = {}) {
+ const {
+ navigator = defaultNavigator,
+ document = defaultDocument
+ } = options;
+ const requestedType = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(false);
+ const sentinel = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.shallowRef)(null);
+ const documentVisibility = useDocumentVisibility({ document });
+ const isSupported = useSupported(() => navigator && "wakeLock" in navigator);
+ const isActive = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.computed)(() => !!sentinel.value && documentVisibility.value === "visible");
+ if (isSupported.value) {
+ useEventListener(sentinel, "release", () => {
+ var _a, _b;
+ requestedType.value = (_b = (_a = sentinel.value) == null ? void 0 : _a.type) != null ? _b : false;
+ });
+ (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.whenever)(
+ () => documentVisibility.value === "visible" && (document == null ? void 0 : document.visibilityState) === "visible" && requestedType.value,
+ (type) => {
+ requestedType.value = false;
+ forceRequest(type);
+ }
+ );
+ }
+ async function forceRequest(type) {
+ var _a;
+ await ((_a = sentinel.value) == null ? void 0 : _a.release());
+ sentinel.value = isSupported.value ? await navigator.wakeLock.request(type) : null;
+ }
+ async function request(type) {
+ if (documentVisibility.value === "visible")
+ await forceRequest(type);
+ else
+ requestedType.value = type;
+ }
+ async function release() {
+ requestedType.value = false;
+ const s = sentinel.value;
+ sentinel.value = null;
+ await (s == null ? void 0 : s.release());
+ }
+ return {
+ sentinel,
+ isSupported,
+ isActive,
+ request,
+ forceRequest,
+ release
+ };
+}
+
+function useWebNotification(options = {}) {
+ const {
+ window = defaultWindow,
+ requestPermissions: _requestForPermissions = true
+ } = options;
+ const defaultWebNotificationOptions = options;
+ const isSupported = useSupported(() => {
+ if (!window || !("Notification" in window))
+ return false;
+ try {
+ new Notification("");
+ } catch (e) {
+ return false;
+ }
+ return true;
+ });
+ const permissionGranted = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(isSupported.value && "permission" in Notification && Notification.permission === "granted");
+ const notification = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(null);
+ const ensurePermissions = async () => {
+ if (!isSupported.value)
+ return;
+ if (!permissionGranted.value && Notification.permission !== "denied") {
+ const result = await Notification.requestPermission();
+ if (result === "granted")
+ permissionGranted.value = true;
+ }
+ return permissionGranted.value;
+ };
+ const { on: onClick, trigger: clickTrigger } = (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.createEventHook)();
+ const { on: onShow, trigger: showTrigger } = (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.createEventHook)();
+ const { on: onError, trigger: errorTrigger } = (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.createEventHook)();
+ const { on: onClose, trigger: closeTrigger } = (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.createEventHook)();
+ const show = async (overrides) => {
+ if (!isSupported.value || !permissionGranted.value)
+ return;
+ const options2 = Object.assign({}, defaultWebNotificationOptions, overrides);
+ notification.value = new Notification(options2.title || "", options2);
+ notification.value.onclick = clickTrigger;
+ notification.value.onshow = showTrigger;
+ notification.value.onerror = errorTrigger;
+ notification.value.onclose = closeTrigger;
+ return notification.value;
+ };
+ const close = () => {
+ if (notification.value)
+ notification.value.close();
+ notification.value = null;
+ };
+ if (_requestForPermissions)
+ (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.tryOnMounted)(ensurePermissions);
+ (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.tryOnScopeDispose)(close);
+ if (isSupported.value && window) {
+ const document = window.document;
+ useEventListener(document, "visibilitychange", (e) => {
+ e.preventDefault();
+ if (document.visibilityState === "visible") {
+ close();
+ }
+ });
+ }
+ return {
+ isSupported,
+ notification,
+ ensurePermissions,
+ permissionGranted,
+ show,
+ close,
+ onClick,
+ onShow,
+ onError,
+ onClose
+ };
+}
+
+const DEFAULT_PING_MESSAGE = "ping";
+function resolveNestedOptions(options) {
+ if (options === true)
+ return {};
+ return options;
+}
+function useWebSocket(url, options = {}) {
+ const {
+ onConnected,
+ onDisconnected,
+ onError,
+ onMessage,
+ immediate = true,
+ autoClose = true,
+ protocols = []
+ } = options;
+ const data = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(null);
+ const status = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)("CLOSED");
+ const wsRef = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)();
+ const urlRef = (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.toRef)(url);
+ let heartbeatPause;
+ let heartbeatResume;
+ let explicitlyClosed = false;
+ let retried = 0;
+ let bufferedData = [];
+ let pongTimeoutWait;
+ const _sendBuffer = () => {
+ if (bufferedData.length && wsRef.value && status.value === "OPEN") {
+ for (const buffer of bufferedData)
+ wsRef.value.send(buffer);
+ bufferedData = [];
+ }
+ };
+ const resetHeartbeat = () => {
+ clearTimeout(pongTimeoutWait);
+ pongTimeoutWait = void 0;
+ };
+ const close = (code = 1e3, reason) => {
+ if (!_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.isClient || !wsRef.value)
+ return;
+ explicitlyClosed = true;
+ resetHeartbeat();
+ heartbeatPause == null ? void 0 : heartbeatPause();
+ wsRef.value.close(code, reason);
+ wsRef.value = void 0;
+ };
+ const send = (data2, useBuffer = true) => {
+ if (!wsRef.value || status.value !== "OPEN") {
+ if (useBuffer)
+ bufferedData.push(data2);
+ return false;
+ }
+ _sendBuffer();
+ wsRef.value.send(data2);
+ return true;
+ };
+ const _init = () => {
+ if (explicitlyClosed || typeof urlRef.value === "undefined")
+ return;
+ const ws = new WebSocket(urlRef.value, protocols);
+ wsRef.value = ws;
+ status.value = "CONNECTING";
+ ws.onopen = () => {
+ status.value = "OPEN";
+ onConnected == null ? void 0 : onConnected(ws);
+ heartbeatResume == null ? void 0 : heartbeatResume();
+ _sendBuffer();
+ };
+ ws.onclose = (ev) => {
+ status.value = "CLOSED";
+ onDisconnected == null ? void 0 : onDisconnected(ws, ev);
+ if (!explicitlyClosed && options.autoReconnect) {
+ const {
+ retries = -1,
+ delay = 1e3,
+ onFailed
+ } = resolveNestedOptions(options.autoReconnect);
+ retried += 1;
+ if (typeof retries === "number" && (retries < 0 || retried < retries))
+ setTimeout(_init, delay);
+ else if (typeof retries === "function" && retries())
+ setTimeout(_init, delay);
+ else
+ onFailed == null ? void 0 : onFailed();
+ }
+ };
+ ws.onerror = (e) => {
+ onError == null ? void 0 : onError(ws, e);
+ };
+ ws.onmessage = (e) => {
+ if (options.heartbeat) {
+ resetHeartbeat();
+ const {
+ message = DEFAULT_PING_MESSAGE,
+ responseMessage = message
+ } = resolveNestedOptions(options.heartbeat);
+ if (e.data === responseMessage)
+ return;
+ }
+ data.value = e.data;
+ onMessage == null ? void 0 : onMessage(ws, e);
+ };
+ };
+ if (options.heartbeat) {
+ const {
+ message = DEFAULT_PING_MESSAGE,
+ interval = 1e3,
+ pongTimeout = 1e3
+ } = resolveNestedOptions(options.heartbeat);
+ const { pause, resume } = (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.useIntervalFn)(
+ () => {
+ send(message, false);
+ if (pongTimeoutWait != null)
+ return;
+ pongTimeoutWait = setTimeout(() => {
+ close();
+ explicitlyClosed = false;
+ }, pongTimeout);
+ },
+ interval,
+ { immediate: false }
+ );
+ heartbeatPause = pause;
+ heartbeatResume = resume;
+ }
+ if (autoClose) {
+ if (_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.isClient)
+ useEventListener("beforeunload", () => close());
+ (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.tryOnScopeDispose)(close);
+ }
+ const open = () => {
+ if (!_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.isClient && !_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.isWorker)
+ return;
+ close();
+ explicitlyClosed = false;
+ retried = 0;
+ _init();
+ };
+ if (immediate)
+ open();
+ (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.watch)(urlRef, open);
+ return {
+ data,
+ status,
+ close,
+ send,
+ open,
+ ws: wsRef
+ };
+}
+
+function useWebWorker(arg0, workerOptions, options) {
+ const {
+ window = defaultWindow
+ } = options != null ? options : {};
+ const data = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(null);
+ const worker = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.shallowRef)();
+ const post = (...args) => {
+ if (!worker.value)
+ return;
+ worker.value.postMessage(...args);
+ };
+ const terminate = function terminate2() {
+ if (!worker.value)
+ return;
+ worker.value.terminate();
+ };
+ if (window) {
+ if (typeof arg0 === "string")
+ worker.value = new Worker(arg0, workerOptions);
+ else if (typeof arg0 === "function")
+ worker.value = arg0();
+ else
+ worker.value = arg0;
+ worker.value.onmessage = (e) => {
+ data.value = e.data;
+ };
+ (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.tryOnScopeDispose)(() => {
+ if (worker.value)
+ worker.value.terminate();
+ });
+ }
+ return {
+ data,
+ post,
+ terminate,
+ worker
+ };
+}
+
+function jobRunner(userFunc) {
+ return (e) => {
+ const userFuncArgs = e.data[0];
+ return Promise.resolve(userFunc.apply(void 0, userFuncArgs)).then((result) => {
+ postMessage(["SUCCESS", result]);
+ }).catch((error) => {
+ postMessage(["ERROR", error]);
+ });
+ };
+}
+
+function depsParser(deps, localDeps) {
+ if (deps.length === 0 && localDeps.length === 0)
+ return "";
+ const depsString = deps.map((dep) => `'${dep}'`).toString();
+ const depsFunctionString = localDeps.filter((dep) => typeof dep === "function").map((fn) => {
+ const str = fn.toString();
+ if (str.trim().startsWith("function")) {
+ return str;
+ } else {
+ const name = fn.name;
+ return `const ${name} = ${str}`;
+ }
+ }).join(";");
+ const importString = `importScripts(${depsString});`;
+ return `${depsString.trim() === "" ? "" : importString} ${depsFunctionString}`;
+}
+
+function createWorkerBlobUrl(fn, deps, localDeps) {
+ const blobCode = `${depsParser(deps, localDeps)}; onmessage=(${jobRunner})(${fn})`;
+ const blob = new Blob([blobCode], { type: "text/javascript" });
+ const url = URL.createObjectURL(blob);
+ return url;
+}
+
+function useWebWorkerFn(fn, options = {}) {
+ const {
+ dependencies = [],
+ localDependencies = [],
+ timeout,
+ window = defaultWindow
+ } = options;
+ const worker = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)();
+ const workerStatus = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)("PENDING");
+ const promise = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)({});
+ const timeoutId = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)();
+ const workerTerminate = (status = "PENDING") => {
+ if (worker.value && worker.value._url && window) {
+ worker.value.terminate();
+ URL.revokeObjectURL(worker.value._url);
+ promise.value = {};
+ worker.value = void 0;
+ window.clearTimeout(timeoutId.value);
+ workerStatus.value = status;
+ }
+ };
+ workerTerminate();
+ (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.tryOnScopeDispose)(workerTerminate);
+ const generateWorker = () => {
+ const blobUrl = createWorkerBlobUrl(fn, dependencies, localDependencies);
+ const newWorker = new Worker(blobUrl);
+ newWorker._url = blobUrl;
+ newWorker.onmessage = (e) => {
+ const { resolve = () => {
+ }, reject = () => {
+ } } = promise.value;
+ const [status, result] = e.data;
+ switch (status) {
+ case "SUCCESS":
+ resolve(result);
+ workerTerminate(status);
+ break;
+ default:
+ reject(result);
+ workerTerminate("ERROR");
+ break;
+ }
+ };
+ newWorker.onerror = (e) => {
+ const { reject = () => {
+ } } = promise.value;
+ e.preventDefault();
+ reject(e);
+ workerTerminate("ERROR");
+ };
+ if (timeout) {
+ timeoutId.value = setTimeout(
+ () => workerTerminate("TIMEOUT_EXPIRED"),
+ timeout
+ );
+ }
+ return newWorker;
+ };
+ const callWorker = (...fnArgs) => new Promise((resolve, reject) => {
+ var _a;
+ promise.value = {
+ resolve,
+ reject
+ };
+ (_a = worker.value) == null ? void 0 : _a.postMessage([[...fnArgs]]);
+ workerStatus.value = "RUNNING";
+ });
+ const workerFn = (...fnArgs) => {
+ if (workerStatus.value === "RUNNING") {
+ console.error(
+ "[useWebWorkerFn] You can only run one instance of the worker at a time."
+ );
+ return Promise.reject();
+ }
+ worker.value = generateWorker();
+ return callWorker(...fnArgs);
+ };
+ return {
+ workerFn,
+ workerStatus,
+ workerTerminate
+ };
+}
+
+function useWindowFocus(options = {}) {
+ const { window = defaultWindow } = options;
+ if (!window)
+ return (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(false);
+ const focused = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(window.document.hasFocus());
+ useEventListener(window, "blur", () => {
+ focused.value = false;
+ });
+ useEventListener(window, "focus", () => {
+ focused.value = true;
+ });
+ return focused;
+}
+
+function useWindowScroll(options = {}) {
+ const { window = defaultWindow, behavior = "auto" } = options;
+ if (!window) {
+ return {
+ x: (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(0),
+ y: (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(0)
+ };
+ }
+ const internalX = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(window.scrollX);
+ const internalY = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(window.scrollY);
+ const x = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.computed)({
+ get() {
+ return internalX.value;
+ },
+ set(x2) {
+ scrollTo({ left: x2, behavior });
+ }
+ });
+ const y = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.computed)({
+ get() {
+ return internalY.value;
+ },
+ set(y2) {
+ scrollTo({ top: y2, behavior });
+ }
+ });
+ useEventListener(
+ window,
+ "scroll",
+ () => {
+ internalX.value = window.scrollX;
+ internalY.value = window.scrollY;
+ },
+ {
+ capture: false,
+ passive: true
+ }
+ );
+ return { x, y };
+}
+
+function useWindowSize(options = {}) {
+ const {
+ window = defaultWindow,
+ initialWidth = Number.POSITIVE_INFINITY,
+ initialHeight = Number.POSITIVE_INFINITY,
+ listenOrientation = true,
+ includeScrollbar = true,
+ type = "inner"
+ } = options;
+ const width = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(initialWidth);
+ const height = (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.ref)(initialHeight);
+ const update = () => {
+ if (window) {
+ if (type === "outer") {
+ width.value = window.outerWidth;
+ height.value = window.outerHeight;
+ } else if (includeScrollbar) {
+ width.value = window.innerWidth;
+ height.value = window.innerHeight;
+ } else {
+ width.value = window.document.documentElement.clientWidth;
+ height.value = window.document.documentElement.clientHeight;
+ }
+ }
+ };
+ update();
+ (0,_vueuse_shared__WEBPACK_IMPORTED_MODULE_0__.tryOnMounted)(update);
+ useEventListener("resize", update, { passive: true });
+ if (listenOrientation) {
+ const matches = useMediaQuery("(orientation: portrait)");
+ (0,vue_demi__WEBPACK_IMPORTED_MODULE_1__.watch)(matches, () => update());
+ }
+ return { width, height };
+}
+
+
+
+
+/***/ }),
+
+/***/ "./node_modules/@vueuse/core/node_modules/vue-demi/lib/index.mjs":
+/*!***********************************************************************!*\
+ !*** ./node_modules/@vueuse/core/node_modules/vue-demi/lib/index.mjs ***!
+ \***********************************************************************/
+/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ "BaseTransition": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.BaseTransition),
+/* harmony export */ "Comment": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.Comment),
+/* harmony export */ "EffectScope": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.EffectScope),
+/* harmony export */ "Fragment": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.Fragment),
+/* harmony export */ "KeepAlive": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.KeepAlive),
+/* harmony export */ "ReactiveEffect": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.ReactiveEffect),
+/* harmony export */ "Static": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.Static),
+/* harmony export */ "Suspense": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.Suspense),
+/* harmony export */ "Teleport": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.Teleport),
+/* harmony export */ "Text": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.Text),
+/* harmony export */ "Transition": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.Transition),
+/* harmony export */ "TransitionGroup": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.TransitionGroup),
+/* harmony export */ "Vue": () => (/* reexport module object */ vue__WEBPACK_IMPORTED_MODULE_0__),
+/* harmony export */ "Vue2": () => (/* binding */ Vue2),
+/* harmony export */ "VueElement": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.VueElement),
+/* harmony export */ "callWithAsyncErrorHandling": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.callWithAsyncErrorHandling),
+/* harmony export */ "callWithErrorHandling": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.callWithErrorHandling),
+/* harmony export */ "camelize": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.camelize),
+/* harmony export */ "capitalize": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.capitalize),
+/* harmony export */ "cloneVNode": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.cloneVNode),
+/* harmony export */ "compatUtils": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.compatUtils),
+/* harmony export */ "compile": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.compile),
+/* harmony export */ "computed": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.computed),
+/* harmony export */ "createApp": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.createApp),
+/* harmony export */ "createBlock": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.createBlock),
+/* harmony export */ "createCommentVNode": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode),
+/* harmony export */ "createElementBlock": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock),
+/* harmony export */ "createElementVNode": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode),
+/* harmony export */ "createHydrationRenderer": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.createHydrationRenderer),
+/* harmony export */ "createPropsRestProxy": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.createPropsRestProxy),
+/* harmony export */ "createRenderer": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.createRenderer),
+/* harmony export */ "createSSRApp": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.createSSRApp),
+/* harmony export */ "createSlots": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.createSlots),
+/* harmony export */ "createStaticVNode": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.createStaticVNode),
+/* harmony export */ "createTextVNode": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode),
+/* harmony export */ "createVNode": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.createVNode),
+/* harmony export */ "customRef": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.customRef),
+/* harmony export */ "defineAsyncComponent": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.defineAsyncComponent),
+/* harmony export */ "defineComponent": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.defineComponent),
+/* harmony export */ "defineCustomElement": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.defineCustomElement),
+/* harmony export */ "defineEmits": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.defineEmits),
+/* harmony export */ "defineExpose": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.defineExpose),
+/* harmony export */ "defineProps": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.defineProps),
+/* harmony export */ "defineSSRCustomElement": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.defineSSRCustomElement),
+/* harmony export */ "del": () => (/* binding */ del),
+/* harmony export */ "devtools": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.devtools),
+/* harmony export */ "effect": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.effect),
+/* harmony export */ "effectScope": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.effectScope),
+/* harmony export */ "getCurrentInstance": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.getCurrentInstance),
+/* harmony export */ "getCurrentScope": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.getCurrentScope),
+/* harmony export */ "getTransitionRawChildren": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.getTransitionRawChildren),
+/* harmony export */ "guardReactiveProps": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.guardReactiveProps),
+/* harmony export */ "h": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.h),
+/* harmony export */ "handleError": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.handleError),
+/* harmony export */ "hydrate": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.hydrate),
+/* harmony export */ "initCustomFormatter": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.initCustomFormatter),
+/* harmony export */ "initDirectivesForSSR": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.initDirectivesForSSR),
+/* harmony export */ "inject": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.inject),
+/* harmony export */ "install": () => (/* binding */ install),
+/* harmony export */ "isMemoSame": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.isMemoSame),
+/* harmony export */ "isProxy": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.isProxy),
+/* harmony export */ "isReactive": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.isReactive),
+/* harmony export */ "isReadonly": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.isReadonly),
+/* harmony export */ "isRef": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.isRef),
+/* harmony export */ "isRuntimeOnly": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.isRuntimeOnly),
+/* harmony export */ "isShallow": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.isShallow),
+/* harmony export */ "isVNode": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.isVNode),
+/* harmony export */ "isVue2": () => (/* binding */ isVue2),
+/* harmony export */ "isVue3": () => (/* binding */ isVue3),
+/* harmony export */ "markRaw": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.markRaw),
+/* harmony export */ "mergeDefaults": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.mergeDefaults),
+/* harmony export */ "mergeProps": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.mergeProps),
+/* harmony export */ "nextTick": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.nextTick),
+/* harmony export */ "normalizeClass": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass),
+/* harmony export */ "normalizeProps": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.normalizeProps),
+/* harmony export */ "normalizeStyle": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.normalizeStyle),
+/* harmony export */ "onActivated": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.onActivated),
+/* harmony export */ "onBeforeMount": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.onBeforeMount),
+/* harmony export */ "onBeforeUnmount": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.onBeforeUnmount),
+/* harmony export */ "onBeforeUpdate": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.onBeforeUpdate),
+/* harmony export */ "onDeactivated": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.onDeactivated),
+/* harmony export */ "onErrorCaptured": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.onErrorCaptured),
+/* harmony export */ "onMounted": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.onMounted),
+/* harmony export */ "onRenderTracked": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.onRenderTracked),
+/* harmony export */ "onRenderTriggered": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.onRenderTriggered),
+/* harmony export */ "onScopeDispose": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.onScopeDispose),
+/* harmony export */ "onServerPrefetch": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.onServerPrefetch),
+/* harmony export */ "onUnmounted": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.onUnmounted),
+/* harmony export */ "onUpdated": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.onUpdated),
+/* harmony export */ "openBlock": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.openBlock),
+/* harmony export */ "popScopeId": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.popScopeId),
+/* harmony export */ "provide": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.provide),
+/* harmony export */ "proxyRefs": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.proxyRefs),
+/* harmony export */ "pushScopeId": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.pushScopeId),
+/* harmony export */ "queuePostFlushCb": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.queuePostFlushCb),
+/* harmony export */ "reactive": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.reactive),
+/* harmony export */ "readonly": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.readonly),
+/* harmony export */ "ref": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.ref),
+/* harmony export */ "registerRuntimeCompiler": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.registerRuntimeCompiler),
+/* harmony export */ "render": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.render),
+/* harmony export */ "renderList": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.renderList),
+/* harmony export */ "renderSlot": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.renderSlot),
+/* harmony export */ "resolveComponent": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent),
+/* harmony export */ "resolveDirective": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.resolveDirective),
+/* harmony export */ "resolveDynamicComponent": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.resolveDynamicComponent),
+/* harmony export */ "resolveFilter": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.resolveFilter),
+/* harmony export */ "resolveTransitionHooks": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.resolveTransitionHooks),
+/* harmony export */ "set": () => (/* binding */ set),
+/* harmony export */ "setBlockTracking": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.setBlockTracking),
+/* harmony export */ "setDevtoolsHook": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.setDevtoolsHook),
+/* harmony export */ "setTransitionHooks": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.setTransitionHooks),
+/* harmony export */ "shallowReactive": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.shallowReactive),
+/* harmony export */ "shallowReadonly": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.shallowReadonly),
+/* harmony export */ "shallowRef": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.shallowRef),
+/* harmony export */ "ssrContextKey": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.ssrContextKey),
+/* harmony export */ "ssrUtils": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.ssrUtils),
+/* harmony export */ "stop": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.stop),
+/* harmony export */ "toDisplayString": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString),
+/* harmony export */ "toHandlerKey": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.toHandlerKey),
+/* harmony export */ "toHandlers": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.toHandlers),
+/* harmony export */ "toRaw": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.toRaw),
+/* harmony export */ "toRef": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.toRef),
+/* harmony export */ "toRefs": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.toRefs),
+/* harmony export */ "transformVNodeArgs": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.transformVNodeArgs),
+/* harmony export */ "triggerRef": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.triggerRef),
+/* harmony export */ "unref": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.unref),
+/* harmony export */ "useAttrs": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.useAttrs),
+/* harmony export */ "useCssModule": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.useCssModule),
+/* harmony export */ "useCssVars": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.useCssVars),
+/* harmony export */ "useSSRContext": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.useSSRContext),
+/* harmony export */ "useSlots": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.useSlots),
+/* harmony export */ "useTransitionState": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.useTransitionState),
+/* harmony export */ "vModelCheckbox": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.vModelCheckbox),
+/* harmony export */ "vModelDynamic": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.vModelDynamic),
+/* harmony export */ "vModelRadio": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.vModelRadio),
+/* harmony export */ "vModelSelect": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.vModelSelect),
+/* harmony export */ "vModelText": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.vModelText),
+/* harmony export */ "vShow": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.vShow),
+/* harmony export */ "version": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.version),
+/* harmony export */ "warn": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.warn),
+/* harmony export */ "watch": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.watch),
+/* harmony export */ "watchEffect": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.watchEffect),
+/* harmony export */ "watchPostEffect": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.watchPostEffect),
+/* harmony export */ "watchSyncEffect": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.watchSyncEffect),
+/* harmony export */ "withAsyncContext": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.withAsyncContext),
+/* harmony export */ "withCtx": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.withCtx),
+/* harmony export */ "withDefaults": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.withDefaults),
+/* harmony export */ "withDirectives": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives),
+/* harmony export */ "withKeys": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.withKeys),
+/* harmony export */ "withMemo": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.withMemo),
+/* harmony export */ "withModifiers": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.withModifiers),
+/* harmony export */ "withScopeId": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.withScopeId)
+/* harmony export */ });
+/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.esm-bundler.js");
+
+
+var isVue2 = false
+var isVue3 = true
+var Vue2 = undefined
+
+function install() {}
+
+function set(target, key, val) {
+ if (Array.isArray(target)) {
+ target.length = Math.max(target.length, key)
+ target.splice(key, 1, val)
+ return val
+ }
+ target[key] = val
+ return val
+}
+
+function del(target, key) {
+ if (Array.isArray(target)) {
+ target.splice(key, 1)
+ return
+ }
+ delete target[key]
+}
+
+
+
+
+
+/***/ }),
+
+/***/ "./node_modules/@vueuse/shared/index.mjs":
+/*!***********************************************!*\
+ !*** ./node_modules/@vueuse/shared/index.mjs ***!
+ \***********************************************/
+/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ "assert": () => (/* binding */ assert),
+/* harmony export */ "autoResetRef": () => (/* binding */ refAutoReset),
+/* harmony export */ "bypassFilter": () => (/* binding */ bypassFilter),
+/* harmony export */ "camelize": () => (/* binding */ camelize),
+/* harmony export */ "clamp": () => (/* binding */ clamp),
+/* harmony export */ "computedEager": () => (/* binding */ computedEager),
+/* harmony export */ "computedWithControl": () => (/* binding */ computedWithControl),
+/* harmony export */ "containsProp": () => (/* binding */ containsProp),
+/* harmony export */ "controlledComputed": () => (/* binding */ computedWithControl),
+/* harmony export */ "controlledRef": () => (/* binding */ controlledRef),
+/* harmony export */ "createEventHook": () => (/* binding */ createEventHook),
+/* harmony export */ "createFilterWrapper": () => (/* binding */ createFilterWrapper),
+/* harmony export */ "createGlobalState": () => (/* binding */ createGlobalState),
+/* harmony export */ "createInjectionState": () => (/* binding */ createInjectionState),
+/* harmony export */ "createReactiveFn": () => (/* binding */ reactify),
+/* harmony export */ "createSharedComposable": () => (/* binding */ createSharedComposable),
+/* harmony export */ "createSingletonPromise": () => (/* binding */ createSingletonPromise),
+/* harmony export */ "debounceFilter": () => (/* binding */ debounceFilter),
+/* harmony export */ "debouncedRef": () => (/* binding */ refDebounced),
+/* harmony export */ "debouncedWatch": () => (/* binding */ watchDebounced),
+/* harmony export */ "directiveHooks": () => (/* binding */ directiveHooks),
+/* harmony export */ "eagerComputed": () => (/* binding */ computedEager),
+/* harmony export */ "extendRef": () => (/* binding */ extendRef),
+/* harmony export */ "formatDate": () => (/* binding */ formatDate),
+/* harmony export */ "get": () => (/* binding */ get),
+/* harmony export */ "getLifeCycleTarget": () => (/* binding */ getLifeCycleTarget),
+/* harmony export */ "hasOwn": () => (/* binding */ hasOwn),
+/* harmony export */ "hyphenate": () => (/* binding */ hyphenate),
+/* harmony export */ "identity": () => (/* binding */ identity),
+/* harmony export */ "ignorableWatch": () => (/* binding */ watchIgnorable),
+/* harmony export */ "increaseWithUnit": () => (/* binding */ increaseWithUnit),
+/* harmony export */ "injectLocal": () => (/* binding */ injectLocal),
+/* harmony export */ "invoke": () => (/* binding */ invoke),
+/* harmony export */ "isClient": () => (/* binding */ isClient),
+/* harmony export */ "isDef": () => (/* binding */ isDef),
+/* harmony export */ "isDefined": () => (/* binding */ isDefined),
+/* harmony export */ "isIOS": () => (/* binding */ isIOS),
+/* harmony export */ "isObject": () => (/* binding */ isObject),
+/* harmony export */ "isWorker": () => (/* binding */ isWorker),
+/* harmony export */ "makeDestructurable": () => (/* binding */ makeDestructurable),
+/* harmony export */ "noop": () => (/* binding */ noop),
+/* harmony export */ "normalizeDate": () => (/* binding */ normalizeDate),
+/* harmony export */ "notNullish": () => (/* binding */ notNullish),
+/* harmony export */ "now": () => (/* binding */ now),
+/* harmony export */ "objectEntries": () => (/* binding */ objectEntries),
+/* harmony export */ "objectOmit": () => (/* binding */ objectOmit),
+/* harmony export */ "objectPick": () => (/* binding */ objectPick),
+/* harmony export */ "pausableFilter": () => (/* binding */ pausableFilter),
+/* harmony export */ "pausableWatch": () => (/* binding */ watchPausable),
+/* harmony export */ "promiseTimeout": () => (/* binding */ promiseTimeout),
+/* harmony export */ "provideLocal": () => (/* binding */ provideLocal),
+/* harmony export */ "rand": () => (/* binding */ rand),
+/* harmony export */ "reactify": () => (/* binding */ reactify),
+/* harmony export */ "reactifyObject": () => (/* binding */ reactifyObject),
+/* harmony export */ "reactiveComputed": () => (/* binding */ reactiveComputed),
+/* harmony export */ "reactiveOmit": () => (/* binding */ reactiveOmit),
+/* harmony export */ "reactivePick": () => (/* binding */ reactivePick),
+/* harmony export */ "refAutoReset": () => (/* binding */ refAutoReset),
+/* harmony export */ "refDebounced": () => (/* binding */ refDebounced),
+/* harmony export */ "refDefault": () => (/* binding */ refDefault),
+/* harmony export */ "refThrottled": () => (/* binding */ refThrottled),
+/* harmony export */ "refWithControl": () => (/* binding */ refWithControl),
+/* harmony export */ "resolveRef": () => (/* binding */ resolveRef),
+/* harmony export */ "resolveUnref": () => (/* binding */ resolveUnref),
+/* harmony export */ "set": () => (/* binding */ set),
+/* harmony export */ "syncRef": () => (/* binding */ syncRef),
+/* harmony export */ "syncRefs": () => (/* binding */ syncRefs),
+/* harmony export */ "throttleFilter": () => (/* binding */ throttleFilter),
+/* harmony export */ "throttledRef": () => (/* binding */ refThrottled),
+/* harmony export */ "throttledWatch": () => (/* binding */ watchThrottled),
+/* harmony export */ "timestamp": () => (/* binding */ timestamp),
+/* harmony export */ "toReactive": () => (/* binding */ toReactive),
+/* harmony export */ "toRef": () => (/* binding */ toRef),
+/* harmony export */ "toRefs": () => (/* binding */ toRefs),
+/* harmony export */ "toValue": () => (/* binding */ toValue),
+/* harmony export */ "tryOnBeforeMount": () => (/* binding */ tryOnBeforeMount),
+/* harmony export */ "tryOnBeforeUnmount": () => (/* binding */ tryOnBeforeUnmount),
+/* harmony export */ "tryOnMounted": () => (/* binding */ tryOnMounted),
+/* harmony export */ "tryOnScopeDispose": () => (/* binding */ tryOnScopeDispose),
+/* harmony export */ "tryOnUnmounted": () => (/* binding */ tryOnUnmounted),
+/* harmony export */ "until": () => (/* binding */ until),
+/* harmony export */ "useArrayDifference": () => (/* binding */ useArrayDifference),
+/* harmony export */ "useArrayEvery": () => (/* binding */ useArrayEvery),
+/* harmony export */ "useArrayFilter": () => (/* binding */ useArrayFilter),
+/* harmony export */ "useArrayFind": () => (/* binding */ useArrayFind),
+/* harmony export */ "useArrayFindIndex": () => (/* binding */ useArrayFindIndex),
+/* harmony export */ "useArrayFindLast": () => (/* binding */ useArrayFindLast),
+/* harmony export */ "useArrayIncludes": () => (/* binding */ useArrayIncludes),
+/* harmony export */ "useArrayJoin": () => (/* binding */ useArrayJoin),
+/* harmony export */ "useArrayMap": () => (/* binding */ useArrayMap),
+/* harmony export */ "useArrayReduce": () => (/* binding */ useArrayReduce),
+/* harmony export */ "useArraySome": () => (/* binding */ useArraySome),
+/* harmony export */ "useArrayUnique": () => (/* binding */ useArrayUnique),
+/* harmony export */ "useCounter": () => (/* binding */ useCounter),
+/* harmony export */ "useDateFormat": () => (/* binding */ useDateFormat),
+/* harmony export */ "useDebounce": () => (/* binding */ refDebounced),
+/* harmony export */ "useDebounceFn": () => (/* binding */ useDebounceFn),
+/* harmony export */ "useInterval": () => (/* binding */ useInterval),
+/* harmony export */ "useIntervalFn": () => (/* binding */ useIntervalFn),
+/* harmony export */ "useLastChanged": () => (/* binding */ useLastChanged),
+/* harmony export */ "useThrottle": () => (/* binding */ refThrottled),
+/* harmony export */ "useThrottleFn": () => (/* binding */ useThrottleFn),
+/* harmony export */ "useTimeout": () => (/* binding */ useTimeout),
+/* harmony export */ "useTimeoutFn": () => (/* binding */ useTimeoutFn),
+/* harmony export */ "useToNumber": () => (/* binding */ useToNumber),
+/* harmony export */ "useToString": () => (/* binding */ useToString),
+/* harmony export */ "useToggle": () => (/* binding */ useToggle),
+/* harmony export */ "watchArray": () => (/* binding */ watchArray),
+/* harmony export */ "watchAtMost": () => (/* binding */ watchAtMost),
+/* harmony export */ "watchDebounced": () => (/* binding */ watchDebounced),
+/* harmony export */ "watchDeep": () => (/* binding */ watchDeep),
+/* harmony export */ "watchIgnorable": () => (/* binding */ watchIgnorable),
+/* harmony export */ "watchImmediate": () => (/* binding */ watchImmediate),
+/* harmony export */ "watchOnce": () => (/* binding */ watchOnce),
+/* harmony export */ "watchPausable": () => (/* binding */ watchPausable),
+/* harmony export */ "watchThrottled": () => (/* binding */ watchThrottled),
+/* harmony export */ "watchTriggerable": () => (/* binding */ watchTriggerable),
+/* harmony export */ "watchWithFilter": () => (/* binding */ watchWithFilter),
+/* harmony export */ "whenever": () => (/* binding */ whenever)
+/* harmony export */ });
+/* harmony import */ var vue_demi__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue-demi */ "./node_modules/@vueuse/shared/node_modules/vue-demi/lib/index.mjs");
+
+
+function computedEager(fn, options) {
+ var _a;
+ const result = (0,vue_demi__WEBPACK_IMPORTED_MODULE_0__.shallowRef)();
+ (0,vue_demi__WEBPACK_IMPORTED_MODULE_0__.watchEffect)(() => {
+ result.value = fn();
+ }, {
+ ...options,
+ flush: (_a = options == null ? void 0 : options.flush) != null ? _a : "sync"
+ });
+ return (0,vue_demi__WEBPACK_IMPORTED_MODULE_0__.readonly)(result);
+}
+
+function computedWithControl(source, fn) {
+ let v = void 0;
+ let track;
+ let trigger;
+ const dirty = (0,vue_demi__WEBPACK_IMPORTED_MODULE_0__.ref)(true);
+ const update = () => {
+ dirty.value = true;
+ trigger();
+ };
+ (0,vue_demi__WEBPACK_IMPORTED_MODULE_0__.watch)(source, update, { flush: "sync" });
+ const get = typeof fn === "function" ? fn : fn.get;
+ const set = typeof fn === "function" ? void 0 : fn.set;
+ const result = (0,vue_demi__WEBPACK_IMPORTED_MODULE_0__.customRef)((_track, _trigger) => {
+ track = _track;
+ trigger = _trigger;
+ return {
+ get() {
+ if (dirty.value) {
+ v = get(v);
+ dirty.value = false;
+ }
+ track();
+ return v;
+ },
+ set(v2) {
+ set == null ? void 0 : set(v2);
+ }
+ };
+ });
+ if (Object.isExtensible(result))
+ result.trigger = update;
+ return result;
+}
+
+function tryOnScopeDispose(fn) {
+ if ((0,vue_demi__WEBPACK_IMPORTED_MODULE_0__.getCurrentScope)()) {
+ (0,vue_demi__WEBPACK_IMPORTED_MODULE_0__.onScopeDispose)(fn);
+ return true;
+ }
+ return false;
+}
+
+function createEventHook() {
+ const fns = /* @__PURE__ */ new Set();
+ const off = (fn) => {
+ fns.delete(fn);
+ };
+ const on = (fn) => {
+ fns.add(fn);
+ const offFn = () => off(fn);
+ tryOnScopeDispose(offFn);
+ return {
+ off: offFn
+ };
+ };
+ const trigger = (...args) => {
+ return Promise.all(Array.from(fns).map((fn) => fn(...args)));
+ };
+ return {
+ on,
+ off,
+ trigger
+ };
+}
+
+function createGlobalState(stateFactory) {
+ let initialized = false;
+ let state;
+ const scope = (0,vue_demi__WEBPACK_IMPORTED_MODULE_0__.effectScope)(true);
+ return (...args) => {
+ if (!initialized) {
+ state = scope.run(() => stateFactory(...args));
+ initialized = true;
+ }
+ return state;
+ };
+}
+
+const localProvidedStateMap = /* @__PURE__ */ new WeakMap();
+
+const provideLocal = (key, value) => {
+ var _a;
+ const instance = (_a = (0,vue_demi__WEBPACK_IMPORTED_MODULE_0__.getCurrentInstance)()) == null ? void 0 : _a.proxy;
+ if (instance == null)
+ throw new Error("provideLocal must be called in setup");
+ if (!localProvidedStateMap.has(instance))
+ localProvidedStateMap.set(instance, /* @__PURE__ */ Object.create(null));
+ const localProvidedState = localProvidedStateMap.get(instance);
+ localProvidedState[key] = value;
+ (0,vue_demi__WEBPACK_IMPORTED_MODULE_0__.provide)(key, value);
+};
+
+const injectLocal = (...args) => {
+ var _a;
+ const key = args[0];
+ const instance = (_a = (0,vue_demi__WEBPACK_IMPORTED_MODULE_0__.getCurrentInstance)()) == null ? void 0 : _a.proxy;
+ if (instance == null)
+ throw new Error("injectLocal must be called in setup");
+ if (localProvidedStateMap.has(instance) && key in localProvidedStateMap.get(instance))
+ return localProvidedStateMap.get(instance)[key];
+ return (0,vue_demi__WEBPACK_IMPORTED_MODULE_0__.inject)(...args);
+};
+
+function createInjectionState(composable, options) {
+ const key = (options == null ? void 0 : options.injectionKey) || Symbol(composable.name || "InjectionState");
+ const defaultValue = options == null ? void 0 : options.defaultValue;
+ const useProvidingState = (...args) => {
+ const state = composable(...args);
+ provideLocal(key, state);
+ return state;
+ };
+ const useInjectedState = () => injectLocal(key, defaultValue);
+ return [useProvidingState, useInjectedState];
+}
+
+function createSharedComposable(composable) {
+ let subscribers = 0;
+ let state;
+ let scope;
+ const dispose = () => {
+ subscribers -= 1;
+ if (scope && subscribers <= 0) {
+ scope.stop();
+ state = void 0;
+ scope = void 0;
+ }
+ };
+ return (...args) => {
+ subscribers += 1;
+ if (!state) {
+ scope = (0,vue_demi__WEBPACK_IMPORTED_MODULE_0__.effectScope)(true);
+ state = scope.run(() => composable(...args));
+ }
+ tryOnScopeDispose(dispose);
+ return state;
+ };
+}
+
+function extendRef(ref, extend, { enumerable = false, unwrap = true } = {}) {
+ if (!vue_demi__WEBPACK_IMPORTED_MODULE_0__.isVue3 && !vue_demi__WEBPACK_IMPORTED_MODULE_0__.version.startsWith("2.7.")) {
+ if (true)
+ throw new Error("[VueUse] extendRef only works in Vue 2.7 or above.");
+ return;
+ }
+ for (const [key, value] of Object.entries(extend)) {
+ if (key === "value")
+ continue;
+ if ((0,vue_demi__WEBPACK_IMPORTED_MODULE_0__.isRef)(value) && unwrap) {
+ Object.defineProperty(ref, key, {
+ get() {
+ return value.value;
+ },
+ set(v) {
+ value.value = v;
+ },
+ enumerable
+ });
+ } else {
+ Object.defineProperty(ref, key, { value, enumerable });
+ }
+ }
+ return ref;
+}
+
+function get(obj, key) {
+ if (key == null)
+ return (0,vue_demi__WEBPACK_IMPORTED_MODULE_0__.unref)(obj);
+ return (0,vue_demi__WEBPACK_IMPORTED_MODULE_0__.unref)(obj)[key];
+}
+
+function isDefined(v) {
+ return (0,vue_demi__WEBPACK_IMPORTED_MODULE_0__.unref)(v) != null;
+}
+
+function makeDestructurable(obj, arr) {
+ if (typeof Symbol !== "undefined") {
+ const clone = { ...obj };
+ Object.defineProperty(clone, Symbol.iterator, {
+ enumerable: false,
+ value() {
+ let index = 0;
+ return {
+ next: () => ({
+ value: arr[index++],
+ done: index > arr.length
+ })
+ };
+ }
+ });
+ return clone;
+ } else {
+ return Object.assign([...arr], obj);
+ }
+}
+
+function toValue(r) {
+ return typeof r === "function" ? r() : (0,vue_demi__WEBPACK_IMPORTED_MODULE_0__.unref)(r);
+}
+const resolveUnref = toValue;
+
+function reactify(fn, options) {
+ const unrefFn = (options == null ? void 0 : options.computedGetter) === false ? vue_demi__WEBPACK_IMPORTED_MODULE_0__.unref : toValue;
+ return function(...args) {
+ return (0,vue_demi__WEBPACK_IMPORTED_MODULE_0__.computed)(() => fn.apply(this, args.map((i) => unrefFn(i))));
+ };
+}
+
+function reactifyObject(obj, optionsOrKeys = {}) {
+ let keys = [];
+ let options;
+ if (Array.isArray(optionsOrKeys)) {
+ keys = optionsOrKeys;
+ } else {
+ options = optionsOrKeys;
+ const { includeOwnProperties = true } = optionsOrKeys;
+ keys.push(...Object.keys(obj));
+ if (includeOwnProperties)
+ keys.push(...Object.getOwnPropertyNames(obj));
+ }
+ return Object.fromEntries(
+ keys.map((key) => {
+ const value = obj[key];
+ return [
+ key,
+ typeof value === "function" ? reactify(value.bind(obj), options) : value
+ ];
+ })
+ );
+}
+
+function toReactive(objectRef) {
+ if (!(0,vue_demi__WEBPACK_IMPORTED_MODULE_0__.isRef)(objectRef))
+ return (0,vue_demi__WEBPACK_IMPORTED_MODULE_0__.reactive)(objectRef);
+ const proxy = new Proxy({}, {
+ get(_, p, receiver) {
+ return (0,vue_demi__WEBPACK_IMPORTED_MODULE_0__.unref)(Reflect.get(objectRef.value, p, receiver));
+ },
+ set(_, p, value) {
+ if ((0,vue_demi__WEBPACK_IMPORTED_MODULE_0__.isRef)(objectRef.value[p]) && !(0,vue_demi__WEBPACK_IMPORTED_MODULE_0__.isRef)(value))
+ objectRef.value[p].value = value;
+ else
+ objectRef.value[p] = value;
+ return true;
+ },
+ deleteProperty(_, p) {
+ return Reflect.deleteProperty(objectRef.value, p);
+ },
+ has(_, p) {
+ return Reflect.has(objectRef.value, p);
+ },
+ ownKeys() {
+ return Object.keys(objectRef.value);
+ },
+ getOwnPropertyDescriptor() {
+ return {
+ enumerable: true,
+ configurable: true
+ };
+ }
+ });
+ return (0,vue_demi__WEBPACK_IMPORTED_MODULE_0__.reactive)(proxy);
+}
+
+function reactiveComputed(fn) {
+ return toReactive((0,vue_demi__WEBPACK_IMPORTED_MODULE_0__.computed)(fn));
+}
+
+function reactiveOmit(obj, ...keys) {
+ const flatKeys = keys.flat();
+ const predicate = flatKeys[0];
+ return reactiveComputed(() => typeof predicate === "function" ? Object.fromEntries(Object.entries((0,vue_demi__WEBPACK_IMPORTED_MODULE_0__.toRefs)(obj)).filter(([k, v]) => !predicate(toValue(v), k))) : Object.fromEntries(Object.entries((0,vue_demi__WEBPACK_IMPORTED_MODULE_0__.toRefs)(obj)).filter((e) => !flatKeys.includes(e[0]))));
+}
+
+const isClient = typeof window !== "undefined" && typeof document !== "undefined";
+const isWorker = typeof WorkerGlobalScope !== "undefined" && globalThis instanceof WorkerGlobalScope;
+const isDef = (val) => typeof val !== "undefined";
+const notNullish = (val) => val != null;
+const assert = (condition, ...infos) => {
+ if (!condition)
+ console.warn(...infos);
+};
+const toString = Object.prototype.toString;
+const isObject = (val) => toString.call(val) === "[object Object]";
+const now = () => Date.now();
+const timestamp = () => +Date.now();
+const clamp = (n, min, max) => Math.min(max, Math.max(min, n));
+const noop = () => {
+};
+const rand = (min, max) => {
+ min = Math.ceil(min);
+ max = Math.floor(max);
+ return Math.floor(Math.random() * (max - min + 1)) + min;
+};
+const hasOwn = (val, key) => Object.prototype.hasOwnProperty.call(val, key);
+const isIOS = /* @__PURE__ */ getIsIOS();
+function getIsIOS() {
+ var _a, _b;
+ return isClient && ((_a = window == null ? void 0 : window.navigator) == null ? void 0 : _a.userAgent) && (/iP(?:ad|hone|od)/.test(window.navigator.userAgent) || ((_b = window == null ? void 0 : window.navigator) == null ? void 0 : _b.maxTouchPoints) > 2 && /iPad|Macintosh/.test(window == null ? void 0 : window.navigator.userAgent));
+}
+
+function createFilterWrapper(filter, fn) {
+ function wrapper(...args) {
+ return new Promise((resolve, reject) => {
+ Promise.resolve(filter(() => fn.apply(this, args), { fn, thisArg: this, args })).then(resolve).catch(reject);
+ });
+ }
+ return wrapper;
+}
+const bypassFilter = (invoke) => {
+ return invoke();
+};
+function debounceFilter(ms, options = {}) {
+ let timer;
+ let maxTimer;
+ let lastRejector = noop;
+ const _clearTimeout = (timer2) => {
+ clearTimeout(timer2);
+ lastRejector();
+ lastRejector = noop;
+ };
+ const filter = (invoke) => {
+ const duration = toValue(ms);
+ const maxDuration = toValue(options.maxWait);
+ if (timer)
+ _clearTimeout(timer);
+ if (duration <= 0 || maxDuration !== void 0 && maxDuration <= 0) {
+ if (maxTimer) {
+ _clearTimeout(maxTimer);
+ maxTimer = null;
+ }
+ return Promise.resolve(invoke());
+ }
+ return new Promise((resolve, reject) => {
+ lastRejector = options.rejectOnCancel ? reject : resolve;
+ if (maxDuration && !maxTimer) {
+ maxTimer = setTimeout(() => {
+ if (timer)
+ _clearTimeout(timer);
+ maxTimer = null;
+ resolve(invoke());
+ }, maxDuration);
+ }
+ timer = setTimeout(() => {
+ if (maxTimer)
+ _clearTimeout(maxTimer);
+ maxTimer = null;
+ resolve(invoke());
+ }, duration);
+ });
+ };
+ return filter;
+}
+function throttleFilter(...args) {
+ let lastExec = 0;
+ let timer;
+ let isLeading = true;
+ let lastRejector = noop;
+ let lastValue;
+ let ms;
+ let trailing;
+ let leading;
+ let rejectOnCancel;
+ if (!(0,vue_demi__WEBPACK_IMPORTED_MODULE_0__.isRef)(args[0]) && typeof args[0] === "object")
+ ({ delay: ms, trailing = true, leading = true, rejectOnCancel = false } = args[0]);
+ else
+ [ms, trailing = true, leading = true, rejectOnCancel = false] = args;
+ const clear = () => {
+ if (timer) {
+ clearTimeout(timer);
+ timer = void 0;
+ lastRejector();
+ lastRejector = noop;
+ }
+ };
+ const filter = (_invoke) => {
+ const duration = toValue(ms);
+ const elapsed = Date.now() - lastExec;
+ const invoke = () => {
+ return lastValue = _invoke();
+ };
+ clear();
+ if (duration <= 0) {
+ lastExec = Date.now();
+ return invoke();
+ }
+ if (elapsed > duration && (leading || !isLeading)) {
+ lastExec = Date.now();
+ invoke();
+ } else if (trailing) {
+ lastValue = new Promise((resolve, reject) => {
+ lastRejector = rejectOnCancel ? reject : resolve;
+ timer = setTimeout(() => {
+ lastExec = Date.now();
+ isLeading = true;
+ resolve(invoke());
+ clear();
+ }, Math.max(0, duration - elapsed));
+ });
+ }
+ if (!leading && !timer)
+ timer = setTimeout(() => isLeading = true, duration);
+ isLeading = false;
+ return lastValue;
+ };
+ return filter;
+}
+function pausableFilter(extendFilter = bypassFilter) {
+ const isActive = (0,vue_demi__WEBPACK_IMPORTED_MODULE_0__.ref)(true);
+ function pause() {
+ isActive.value = false;
+ }
+ function resume() {
+ isActive.value = true;
+ }
+ const eventFilter = (...args) => {
+ if (isActive.value)
+ extendFilter(...args);
+ };
+ return { isActive: (0,vue_demi__WEBPACK_IMPORTED_MODULE_0__.readonly)(isActive), pause, resume, eventFilter };
+}
+
+const directiveHooks = {
+ mounted: vue_demi__WEBPACK_IMPORTED_MODULE_0__.isVue3 ? "mounted" : "inserted",
+ updated: vue_demi__WEBPACK_IMPORTED_MODULE_0__.isVue3 ? "updated" : "componentUpdated",
+ unmounted: vue_demi__WEBPACK_IMPORTED_MODULE_0__.isVue3 ? "unmounted" : "unbind"
+};
+
+function cacheStringFunction(fn) {
+ const cache = /* @__PURE__ */ Object.create(null);
+ return (str) => {
+ const hit = cache[str];
+ return hit || (cache[str] = fn(str));
+ };
+}
+const hyphenateRE = /\B([A-Z])/g;
+const hyphenate = cacheStringFunction((str) => str.replace(hyphenateRE, "-$1").toLowerCase());
+const camelizeRE = /-(\w)/g;
+const camelize = cacheStringFunction((str) => {
+ return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : "");
+});
+
+function promiseTimeout(ms, throwOnTimeout = false, reason = "Timeout") {
+ return new Promise((resolve, reject) => {
+ if (throwOnTimeout)
+ setTimeout(() => reject(reason), ms);
+ else
+ setTimeout(resolve, ms);
+ });
+}
+function identity(arg) {
+ return arg;
+}
+function createSingletonPromise(fn) {
+ let _promise;
+ function wrapper() {
+ if (!_promise)
+ _promise = fn();
+ return _promise;
+ }
+ wrapper.reset = async () => {
+ const _prev = _promise;
+ _promise = void 0;
+ if (_prev)
+ await _prev;
+ };
+ return wrapper;
+}
+function invoke(fn) {
+ return fn();
+}
+function containsProp(obj, ...props) {
+ return props.some((k) => k in obj);
+}
+function increaseWithUnit(target, delta) {
+ var _a;
+ if (typeof target === "number")
+ return target + delta;
+ const value = ((_a = target.match(/^-?\d+\.?\d*/)) == null ? void 0 : _a[0]) || "";
+ const unit = target.slice(value.length);
+ const result = Number.parseFloat(value) + delta;
+ if (Number.isNaN(result))
+ return target;
+ return result + unit;
+}
+function objectPick(obj, keys, omitUndefined = false) {
+ return keys.reduce((n, k) => {
+ if (k in obj) {
+ if (!omitUndefined || obj[k] !== void 0)
+ n[k] = obj[k];
+ }
+ return n;
+ }, {});
+}
+function objectOmit(obj, keys, omitUndefined = false) {
+ return Object.fromEntries(Object.entries(obj).filter(([key, value]) => {
+ return (!omitUndefined || value !== void 0) && !keys.includes(key);
+ }));
+}
+function objectEntries(obj) {
+ return Object.entries(obj);
+}
+function getLifeCycleTarget(target) {
+ return target || (0,vue_demi__WEBPACK_IMPORTED_MODULE_0__.getCurrentInstance)();
+}
+
+function toRef(...args) {
+ if (args.length !== 1)
+ return (0,vue_demi__WEBPACK_IMPORTED_MODULE_0__.toRef)(...args);
+ const r = args[0];
+ return typeof r === "function" ? (0,vue_demi__WEBPACK_IMPORTED_MODULE_0__.readonly)((0,vue_demi__WEBPACK_IMPORTED_MODULE_0__.customRef)(() => ({ get: r, set: noop }))) : (0,vue_demi__WEBPACK_IMPORTED_MODULE_0__.ref)(r);
+}
+const resolveRef = toRef;
+
+function reactivePick(obj, ...keys) {
+ const flatKeys = keys.flat();
+ const predicate = flatKeys[0];
+ return reactiveComputed(() => typeof predicate === "function" ? Object.fromEntries(Object.entries((0,vue_demi__WEBPACK_IMPORTED_MODULE_0__.toRefs)(obj)).filter(([k, v]) => predicate(toValue(v), k))) : Object.fromEntries(flatKeys.map((k) => [k, toRef(obj, k)])));
+}
+
+function refAutoReset(defaultValue, afterMs = 1e4) {
+ return (0,vue_demi__WEBPACK_IMPORTED_MODULE_0__.customRef)((track, trigger) => {
+ let value = toValue(defaultValue);
+ let timer;
+ const resetAfter = () => setTimeout(() => {
+ value = toValue(defaultValue);
+ trigger();
+ }, toValue(afterMs));
+ tryOnScopeDispose(() => {
+ clearTimeout(timer);
+ });
+ return {
+ get() {
+ track();
+ return value;
+ },
+ set(newValue) {
+ value = newValue;
+ trigger();
+ clearTimeout(timer);
+ timer = resetAfter();
+ }
+ };
+ });
+}
+
+function useDebounceFn(fn, ms = 200, options = {}) {
+ return createFilterWrapper(
+ debounceFilter(ms, options),
+ fn
+ );
+}
+
+function refDebounced(value, ms = 200, options = {}) {
+ const debounced = (0,vue_demi__WEBPACK_IMPORTED_MODULE_0__.ref)(value.value);
+ const updater = useDebounceFn(() => {
+ debounced.value = value.value;
+ }, ms, options);
+ (0,vue_demi__WEBPACK_IMPORTED_MODULE_0__.watch)(value, () => updater());
+ return debounced;
+}
+
+function refDefault(source, defaultValue) {
+ return (0,vue_demi__WEBPACK_IMPORTED_MODULE_0__.computed)({
+ get() {
+ var _a;
+ return (_a = source.value) != null ? _a : defaultValue;
+ },
+ set(value) {
+ source.value = value;
+ }
+ });
+}
+
+function useThrottleFn(fn, ms = 200, trailing = false, leading = true, rejectOnCancel = false) {
+ return createFilterWrapper(
+ throttleFilter(ms, trailing, leading, rejectOnCancel),
+ fn
+ );
+}
+
+function refThrottled(value, delay = 200, trailing = true, leading = true) {
+ if (delay <= 0)
+ return value;
+ const throttled = (0,vue_demi__WEBPACK_IMPORTED_MODULE_0__.ref)(value.value);
+ const updater = useThrottleFn(() => {
+ throttled.value = value.value;
+ }, delay, trailing, leading);
+ (0,vue_demi__WEBPACK_IMPORTED_MODULE_0__.watch)(value, () => updater());
+ return throttled;
+}
+
+function refWithControl(initial, options = {}) {
+ let source = initial;
+ let track;
+ let trigger;
+ const ref = (0,vue_demi__WEBPACK_IMPORTED_MODULE_0__.customRef)((_track, _trigger) => {
+ track = _track;
+ trigger = _trigger;
+ return {
+ get() {
+ return get();
+ },
+ set(v) {
+ set(v);
+ }
+ };
+ });
+ function get(tracking = true) {
+ if (tracking)
+ track();
+ return source;
+ }
+ function set(value, triggering = true) {
+ var _a, _b;
+ if (value === source)
+ return;
+ const old = source;
+ if (((_a = options.onBeforeChange) == null ? void 0 : _a.call(options, value, old)) === false)
+ return;
+ source = value;
+ (_b = options.onChanged) == null ? void 0 : _b.call(options, value, old);
+ if (triggering)
+ trigger();
+ }
+ const untrackedGet = () => get(false);
+ const silentSet = (v) => set(v, false);
+ const peek = () => get(false);
+ const lay = (v) => set(v, false);
+ return extendRef(
+ ref,
+ {
+ get,
+ set,
+ untrackedGet,
+ silentSet,
+ peek,
+ lay
+ },
+ { enumerable: true }
+ );
+}
+const controlledRef = refWithControl;
+
+function set(...args) {
+ if (args.length === 2) {
+ const [ref, value] = args;
+ ref.value = value;
+ }
+ if (args.length === 3) {
+ if (vue_demi__WEBPACK_IMPORTED_MODULE_0__.isVue2) {
+ (0,vue_demi__WEBPACK_IMPORTED_MODULE_0__.set)(...args);
+ } else {
+ const [target, key, value] = args;
+ target[key] = value;
+ }
+ }
+}
+
+function watchWithFilter(source, cb, options = {}) {
+ const {
+ eventFilter = bypassFilter,
+ ...watchOptions
+ } = options;
+ return (0,vue_demi__WEBPACK_IMPORTED_MODULE_0__.watch)(
+ source,
+ createFilterWrapper(
+ eventFilter,
+ cb
+ ),
+ watchOptions
+ );
+}
+
+function watchPausable(source, cb, options = {}) {
+ const {
+ eventFilter: filter,
+ ...watchOptions
+ } = options;
+ const { eventFilter, pause, resume, isActive } = pausableFilter(filter);
+ const stop = watchWithFilter(
+ source,
+ cb,
+ {
+ ...watchOptions,
+ eventFilter
+ }
+ );
+ return { stop, pause, resume, isActive };
+}
+
+function syncRef(left, right, ...[options]) {
+ const {
+ flush = "sync",
+ deep = false,
+ immediate = true,
+ direction = "both",
+ transform = {}
+ } = options || {};
+ const watchers = [];
+ const transformLTR = "ltr" in transform && transform.ltr || ((v) => v);
+ const transformRTL = "rtl" in transform && transform.rtl || ((v) => v);
+ if (direction === "both" || direction === "ltr") {
+ watchers.push(watchPausable(
+ left,
+ (newValue) => {
+ watchers.forEach((w) => w.pause());
+ right.value = transformLTR(newValue);
+ watchers.forEach((w) => w.resume());
+ },
+ { flush, deep, immediate }
+ ));
+ }
+ if (direction === "both" || direction === "rtl") {
+ watchers.push(watchPausable(
+ right,
+ (newValue) => {
+ watchers.forEach((w) => w.pause());
+ left.value = transformRTL(newValue);
+ watchers.forEach((w) => w.resume());
+ },
+ { flush, deep, immediate }
+ ));
+ }
+ const stop = () => {
+ watchers.forEach((w) => w.stop());
+ };
+ return stop;
+}
+
+function syncRefs(source, targets, options = {}) {
+ const {
+ flush = "sync",
+ deep = false,
+ immediate = true
+ } = options;
+ if (!Array.isArray(targets))
+ targets = [targets];
+ return (0,vue_demi__WEBPACK_IMPORTED_MODULE_0__.watch)(
+ source,
+ (newValue) => targets.forEach((target) => target.value = newValue),
+ { flush, deep, immediate }
+ );
+}
+
+function toRefs(objectRef, options = {}) {
+ if (!(0,vue_demi__WEBPACK_IMPORTED_MODULE_0__.isRef)(objectRef))
+ return (0,vue_demi__WEBPACK_IMPORTED_MODULE_0__.toRefs)(objectRef);
+ const result = Array.isArray(objectRef.value) ? Array.from({ length: objectRef.value.length }) : {};
+ for (const key in objectRef.value) {
+ result[key] = (0,vue_demi__WEBPACK_IMPORTED_MODULE_0__.customRef)(() => ({
+ get() {
+ return objectRef.value[key];
+ },
+ set(v) {
+ var _a;
+ const replaceRef = (_a = toValue(options.replaceRef)) != null ? _a : true;
+ if (replaceRef) {
+ if (Array.isArray(objectRef.value)) {
+ const copy = [...objectRef.value];
+ copy[key] = v;
+ objectRef.value = copy;
+ } else {
+ const newObject = { ...objectRef.value, [key]: v };
+ Object.setPrototypeOf(newObject, Object.getPrototypeOf(objectRef.value));
+ objectRef.value = newObject;
+ }
+ } else {
+ objectRef.value[key] = v;
+ }
+ }
+ }));
+ }
+ return result;
+}
+
+function tryOnBeforeMount(fn, sync = true, target) {
+ const instance = getLifeCycleTarget(target);
+ if (instance)
+ (0,vue_demi__WEBPACK_IMPORTED_MODULE_0__.onBeforeMount)(fn, target);
+ else if (sync)
+ fn();
+ else
+ (0,vue_demi__WEBPACK_IMPORTED_MODULE_0__.nextTick)(fn);
+}
+
+function tryOnBeforeUnmount(fn, target) {
+ const instance = getLifeCycleTarget(target);
+ if (instance)
+ (0,vue_demi__WEBPACK_IMPORTED_MODULE_0__.onBeforeUnmount)(fn, target);
+}
+
+function tryOnMounted(fn, sync = true, target) {
+ const instance = getLifeCycleTarget();
+ if (instance)
+ (0,vue_demi__WEBPACK_IMPORTED_MODULE_0__.onMounted)(fn, target);
+ else if (sync)
+ fn();
+ else
+ (0,vue_demi__WEBPACK_IMPORTED_MODULE_0__.nextTick)(fn);
+}
+
+function tryOnUnmounted(fn, target) {
+ const instance = getLifeCycleTarget(target);
+ if (instance)
+ (0,vue_demi__WEBPACK_IMPORTED_MODULE_0__.onUnmounted)(fn, target);
+}
+
+function createUntil(r, isNot = false) {
+ function toMatch(condition, { flush = "sync", deep = false, timeout, throwOnTimeout } = {}) {
+ let stop = null;
+ const watcher = new Promise((resolve) => {
+ stop = (0,vue_demi__WEBPACK_IMPORTED_MODULE_0__.watch)(
+ r,
+ (v) => {
+ if (condition(v) !== isNot) {
+ if (stop)
+ stop();
+ else
+ (0,vue_demi__WEBPACK_IMPORTED_MODULE_0__.nextTick)(() => stop == null ? void 0 : stop());
+ resolve(v);
+ }
+ },
+ {
+ flush,
+ deep,
+ immediate: true
+ }
+ );
+ });
+ const promises = [watcher];
+ if (timeout != null) {
+ promises.push(
+ promiseTimeout(timeout, throwOnTimeout).then(() => toValue(r)).finally(() => stop == null ? void 0 : stop())
+ );
+ }
+ return Promise.race(promises);
+ }
+ function toBe(value, options) {
+ if (!(0,vue_demi__WEBPACK_IMPORTED_MODULE_0__.isRef)(value))
+ return toMatch((v) => v === value, options);
+ const { flush = "sync", deep = false, timeout, throwOnTimeout } = options != null ? options : {};
+ let stop = null;
+ const watcher = new Promise((resolve) => {
+ stop = (0,vue_demi__WEBPACK_IMPORTED_MODULE_0__.watch)(
+ [r, value],
+ ([v1, v2]) => {
+ if (isNot !== (v1 === v2)) {
+ if (stop)
+ stop();
+ else
+ (0,vue_demi__WEBPACK_IMPORTED_MODULE_0__.nextTick)(() => stop == null ? void 0 : stop());
+ resolve(v1);
+ }
+ },
+ {
+ flush,
+ deep,
+ immediate: true
+ }
+ );
+ });
+ const promises = [watcher];
+ if (timeout != null) {
+ promises.push(
+ promiseTimeout(timeout, throwOnTimeout).then(() => toValue(r)).finally(() => {
+ stop == null ? void 0 : stop();
+ return toValue(r);
+ })
+ );
+ }
+ return Promise.race(promises);
+ }
+ function toBeTruthy(options) {
+ return toMatch((v) => Boolean(v), options);
+ }
+ function toBeNull(options) {
+ return toBe(null, options);
+ }
+ function toBeUndefined(options) {
+ return toBe(void 0, options);
+ }
+ function toBeNaN(options) {
+ return toMatch(Number.isNaN, options);
+ }
+ function toContains(value, options) {
+ return toMatch((v) => {
+ const array = Array.from(v);
+ return array.includes(value) || array.includes(toValue(value));
+ }, options);
+ }
+ function changed(options) {
+ return changedTimes(1, options);
+ }
+ function changedTimes(n = 1, options) {
+ let count = -1;
+ return toMatch(() => {
+ count += 1;
+ return count >= n;
+ }, options);
+ }
+ if (Array.isArray(toValue(r))) {
+ const instance = {
+ toMatch,
+ toContains,
+ changed,
+ changedTimes,
+ get not() {
+ return createUntil(r, !isNot);
+ }
+ };
+ return instance;
+ } else {
+ const instance = {
+ toMatch,
+ toBe,
+ toBeTruthy,
+ toBeNull,
+ toBeNaN,
+ toBeUndefined,
+ changed,
+ changedTimes,
+ get not() {
+ return createUntil(r, !isNot);
+ }
+ };
+ return instance;
+ }
+}
+function until(r) {
+ return createUntil(r);
+}
+
+function defaultComparator(value, othVal) {
+ return value === othVal;
+}
+function useArrayDifference(...args) {
+ var _a;
+ const list = args[0];
+ const values = args[1];
+ let compareFn = (_a = args[2]) != null ? _a : defaultComparator;
+ if (typeof compareFn === "string") {
+ const key = compareFn;
+ compareFn = (value, othVal) => value[key] === othVal[key];
+ }
+ return (0,vue_demi__WEBPACK_IMPORTED_MODULE_0__.computed)(() => toValue(list).filter((x) => toValue(values).findIndex((y) => compareFn(x, y)) === -1));
+}
+
+function useArrayEvery(list, fn) {
+ return (0,vue_demi__WEBPACK_IMPORTED_MODULE_0__.computed)(() => toValue(list).every((element, index, array) => fn(toValue(element), index, array)));
+}
+
+function useArrayFilter(list, fn) {
+ return (0,vue_demi__WEBPACK_IMPORTED_MODULE_0__.computed)(() => toValue(list).map((i) => toValue(i)).filter(fn));
+}
+
+function useArrayFind(list, fn) {
+ return (0,vue_demi__WEBPACK_IMPORTED_MODULE_0__.computed)(() => toValue(
+ toValue(list).find((element, index, array) => fn(toValue(element), index, array))
+ ));
+}
+
+function useArrayFindIndex(list, fn) {
+ return (0,vue_demi__WEBPACK_IMPORTED_MODULE_0__.computed)(() => toValue(list).findIndex((element, index, array) => fn(toValue(element), index, array)));
+}
+
+function findLast(arr, cb) {
+ let index = arr.length;
+ while (index-- > 0) {
+ if (cb(arr[index], index, arr))
+ return arr[index];
+ }
+ return void 0;
+}
+function useArrayFindLast(list, fn) {
+ return (0,vue_demi__WEBPACK_IMPORTED_MODULE_0__.computed)(() => toValue(
+ !Array.prototype.findLast ? findLast(toValue(list), (element, index, array) => fn(toValue(element), index, array)) : toValue(list).findLast((element, index, array) => fn(toValue(element), index, array))
+ ));
+}
+
+function isArrayIncludesOptions(obj) {
+ return isObject(obj) && containsProp(obj, "formIndex", "comparator");
+}
+function useArrayIncludes(...args) {
+ var _a;
+ const list = args[0];
+ const value = args[1];
+ let comparator = args[2];
+ let formIndex = 0;
+ if (isArrayIncludesOptions(comparator)) {
+ formIndex = (_a = comparator.fromIndex) != null ? _a : 0;
+ comparator = comparator.comparator;
+ }
+ if (typeof comparator === "string") {
+ const key = comparator;
+ comparator = (element, value2) => element[key] === toValue(value2);
+ }
+ comparator = comparator != null ? comparator : (element, value2) => element === toValue(value2);
+ return (0,vue_demi__WEBPACK_IMPORTED_MODULE_0__.computed)(() => toValue(list).slice(formIndex).some((element, index, array) => comparator(
+ toValue(element),
+ toValue(value),
+ index,
+ toValue(array)
+ )));
+}
+
+function useArrayJoin(list, separator) {
+ return (0,vue_demi__WEBPACK_IMPORTED_MODULE_0__.computed)(() => toValue(list).map((i) => toValue(i)).join(toValue(separator)));
+}
+
+function useArrayMap(list, fn) {
+ return (0,vue_demi__WEBPACK_IMPORTED_MODULE_0__.computed)(() => toValue(list).map((i) => toValue(i)).map(fn));
+}
+
+function useArrayReduce(list, reducer, ...args) {
+ const reduceCallback = (sum, value, index) => reducer(toValue(sum), toValue(value), index);
+ return (0,vue_demi__WEBPACK_IMPORTED_MODULE_0__.computed)(() => {
+ const resolved = toValue(list);
+ return args.length ? resolved.reduce(reduceCallback, toValue(args[0])) : resolved.reduce(reduceCallback);
+ });
+}
+
+function useArraySome(list, fn) {
+ return (0,vue_demi__WEBPACK_IMPORTED_MODULE_0__.computed)(() => toValue(list).some((element, index, array) => fn(toValue(element), index, array)));
+}
+
+function uniq(array) {
+ return Array.from(new Set(array));
+}
+function uniqueElementsBy(array, fn) {
+ return array.reduce((acc, v) => {
+ if (!acc.some((x) => fn(v, x, array)))
+ acc.push(v);
+ return acc;
+ }, []);
+}
+function useArrayUnique(list, compareFn) {
+ return (0,vue_demi__WEBPACK_IMPORTED_MODULE_0__.computed)(() => {
+ const resolvedList = toValue(list).map((element) => toValue(element));
+ return compareFn ? uniqueElementsBy(resolvedList, compareFn) : uniq(resolvedList);
+ });
+}
+
+function useCounter(initialValue = 0, options = {}) {
+ let _initialValue = (0,vue_demi__WEBPACK_IMPORTED_MODULE_0__.unref)(initialValue);
+ const count = (0,vue_demi__WEBPACK_IMPORTED_MODULE_0__.ref)(initialValue);
+ const {
+ max = Number.POSITIVE_INFINITY,
+ min = Number.NEGATIVE_INFINITY
+ } = options;
+ const inc = (delta = 1) => count.value = Math.max(Math.min(max, count.value + delta), min);
+ const dec = (delta = 1) => count.value = Math.min(Math.max(min, count.value - delta), max);
+ const get = () => count.value;
+ const set = (val) => count.value = Math.max(min, Math.min(max, val));
+ const reset = (val = _initialValue) => {
+ _initialValue = val;
+ return set(val);
+ };
+ return { count, inc, dec, get, set, reset };
+}
+
+const REGEX_PARSE = /^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[T\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/i;
+const REGEX_FORMAT = /[YMDHhms]o|\[([^\]]+)\]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a{1,2}|A{1,2}|m{1,2}|s{1,2}|Z{1,2}|SSS/g;
+function defaultMeridiem(hours, minutes, isLowercase, hasPeriod) {
+ let m = hours < 12 ? "AM" : "PM";
+ if (hasPeriod)
+ m = m.split("").reduce((acc, curr) => acc += `${curr}.`, "");
+ return isLowercase ? m.toLowerCase() : m;
+}
+function formatOrdinal(num) {
+ const suffixes = ["th", "st", "nd", "rd"];
+ const v = num % 100;
+ return num + (suffixes[(v - 20) % 10] || suffixes[v] || suffixes[0]);
+}
+function formatDate(date, formatStr, options = {}) {
+ var _a;
+ const years = date.getFullYear();
+ const month = date.getMonth();
+ const days = date.getDate();
+ const hours = date.getHours();
+ const minutes = date.getMinutes();
+ const seconds = date.getSeconds();
+ const milliseconds = date.getMilliseconds();
+ const day = date.getDay();
+ const meridiem = (_a = options.customMeridiem) != null ? _a : defaultMeridiem;
+ const matches = {
+ Yo: () => formatOrdinal(years),
+ YY: () => String(years).slice(-2),
+ YYYY: () => years,
+ M: () => month + 1,
+ Mo: () => formatOrdinal(month + 1),
+ MM: () => `${month + 1}`.padStart(2, "0"),
+ MMM: () => date.toLocaleDateString(toValue(options.locales), { month: "short" }),
+ MMMM: () => date.toLocaleDateString(toValue(options.locales), { month: "long" }),
+ D: () => String(days),
+ Do: () => formatOrdinal(days),
+ DD: () => `${days}`.padStart(2, "0"),
+ H: () => String(hours),
+ Ho: () => formatOrdinal(hours),
+ HH: () => `${hours}`.padStart(2, "0"),
+ h: () => `${hours % 12 || 12}`.padStart(1, "0"),
+ ho: () => formatOrdinal(hours % 12 || 12),
+ hh: () => `${hours % 12 || 12}`.padStart(2, "0"),
+ m: () => String(minutes),
+ mo: () => formatOrdinal(minutes),
+ mm: () => `${minutes}`.padStart(2, "0"),
+ s: () => String(seconds),
+ so: () => formatOrdinal(seconds),
+ ss: () => `${seconds}`.padStart(2, "0"),
+ SSS: () => `${milliseconds}`.padStart(3, "0"),
+ d: () => day,
+ dd: () => date.toLocaleDateString(toValue(options.locales), { weekday: "narrow" }),
+ ddd: () => date.toLocaleDateString(toValue(options.locales), { weekday: "short" }),
+ dddd: () => date.toLocaleDateString(toValue(options.locales), { weekday: "long" }),
+ A: () => meridiem(hours, minutes),
+ AA: () => meridiem(hours, minutes, false, true),
+ a: () => meridiem(hours, minutes, true),
+ aa: () => meridiem(hours, minutes, true, true)
+ };
+ return formatStr.replace(REGEX_FORMAT, (match, $1) => {
+ var _a2, _b;
+ return (_b = $1 != null ? $1 : (_a2 = matches[match]) == null ? void 0 : _a2.call(matches)) != null ? _b : match;
+ });
+}
+function normalizeDate(date) {
+ if (date === null)
+ return new Date(Number.NaN);
+ if (date === void 0)
+ return /* @__PURE__ */ new Date();
+ if (date instanceof Date)
+ return new Date(date);
+ if (typeof date === "string" && !/Z$/i.test(date)) {
+ const d = date.match(REGEX_PARSE);
+ if (d) {
+ const m = d[2] - 1 || 0;
+ const ms = (d[7] || "0").substring(0, 3);
+ return new Date(d[1], m, d[3] || 1, d[4] || 0, d[5] || 0, d[6] || 0, ms);
+ }
+ }
+ return new Date(date);
+}
+function useDateFormat(date, formatStr = "HH:mm:ss", options = {}) {
+ return (0,vue_demi__WEBPACK_IMPORTED_MODULE_0__.computed)(() => formatDate(normalizeDate(toValue(date)), toValue(formatStr), options));
+}
+
+function useIntervalFn(cb, interval = 1e3, options = {}) {
+ const {
+ immediate = true,
+ immediateCallback = false
+ } = options;
+ let timer = null;
+ const isActive = (0,vue_demi__WEBPACK_IMPORTED_MODULE_0__.ref)(false);
+ function clean() {
+ if (timer) {
+ clearInterval(timer);
+ timer = null;
+ }
+ }
+ function pause() {
+ isActive.value = false;
+ clean();
+ }
+ function resume() {
+ const intervalValue = toValue(interval);
+ if (intervalValue <= 0)
+ return;
+ isActive.value = true;
+ if (immediateCallback)
+ cb();
+ clean();
+ timer = setInterval(cb, intervalValue);
+ }
+ if (immediate && isClient)
+ resume();
+ if ((0,vue_demi__WEBPACK_IMPORTED_MODULE_0__.isRef)(interval) || typeof interval === "function") {
+ const stopWatch = (0,vue_demi__WEBPACK_IMPORTED_MODULE_0__.watch)(interval, () => {
+ if (isActive.value && isClient)
+ resume();
+ });
+ tryOnScopeDispose(stopWatch);
+ }
+ tryOnScopeDispose(pause);
+ return {
+ isActive,
+ pause,
+ resume
+ };
+}
+
+function useInterval(interval = 1e3, options = {}) {
+ const {
+ controls: exposeControls = false,
+ immediate = true,
+ callback
+ } = options;
+ const counter = (0,vue_demi__WEBPACK_IMPORTED_MODULE_0__.ref)(0);
+ const update = () => counter.value += 1;
+ const reset = () => {
+ counter.value = 0;
+ };
+ const controls = useIntervalFn(
+ callback ? () => {
+ update();
+ callback(counter.value);
+ } : update,
+ interval,
+ { immediate }
+ );
+ if (exposeControls) {
+ return {
+ counter,
+ reset,
+ ...controls
+ };
+ } else {
+ return counter;
+ }
+}
+
+function useLastChanged(source, options = {}) {
+ var _a;
+ const ms = (0,vue_demi__WEBPACK_IMPORTED_MODULE_0__.ref)((_a = options.initialValue) != null ? _a : null);
+ (0,vue_demi__WEBPACK_IMPORTED_MODULE_0__.watch)(
+ source,
+ () => ms.value = timestamp(),
+ options
+ );
+ return ms;
+}
+
+function useTimeoutFn(cb, interval, options = {}) {
+ const {
+ immediate = true
+ } = options;
+ const isPending = (0,vue_demi__WEBPACK_IMPORTED_MODULE_0__.ref)(false);
+ let timer = null;
+ function clear() {
+ if (timer) {
+ clearTimeout(timer);
+ timer = null;
+ }
+ }
+ function stop() {
+ isPending.value = false;
+ clear();
+ }
+ function start(...args) {
+ clear();
+ isPending.value = true;
+ timer = setTimeout(() => {
+ isPending.value = false;
+ timer = null;
+ cb(...args);
+ }, toValue(interval));
+ }
+ if (immediate) {
+ isPending.value = true;
+ if (isClient)
+ start();
+ }
+ tryOnScopeDispose(stop);
+ return {
+ isPending: (0,vue_demi__WEBPACK_IMPORTED_MODULE_0__.readonly)(isPending),
+ start,
+ stop
+ };
+}
+
+function useTimeout(interval = 1e3, options = {}) {
+ const {
+ controls: exposeControls = false,
+ callback
+ } = options;
+ const controls = useTimeoutFn(
+ callback != null ? callback : noop,
+ interval,
+ options
+ );
+ const ready = (0,vue_demi__WEBPACK_IMPORTED_MODULE_0__.computed)(() => !controls.isPending.value);
+ if (exposeControls) {
+ return {
+ ready,
+ ...controls
+ };
+ } else {
+ return ready;
+ }
+}
+
+function useToNumber(value, options = {}) {
+ const {
+ method = "parseFloat",
+ radix,
+ nanToZero
+ } = options;
+ return (0,vue_demi__WEBPACK_IMPORTED_MODULE_0__.computed)(() => {
+ let resolved = toValue(value);
+ if (typeof resolved === "string")
+ resolved = Number[method](resolved, radix);
+ if (nanToZero && Number.isNaN(resolved))
+ resolved = 0;
+ return resolved;
+ });
+}
+
+function useToString(value) {
+ return (0,vue_demi__WEBPACK_IMPORTED_MODULE_0__.computed)(() => `${toValue(value)}`);
+}
+
+function useToggle(initialValue = false, options = {}) {
+ const {
+ truthyValue = true,
+ falsyValue = false
+ } = options;
+ const valueIsRef = (0,vue_demi__WEBPACK_IMPORTED_MODULE_0__.isRef)(initialValue);
+ const _value = (0,vue_demi__WEBPACK_IMPORTED_MODULE_0__.ref)(initialValue);
+ function toggle(value) {
+ if (arguments.length) {
+ _value.value = value;
+ return _value.value;
+ } else {
+ const truthy = toValue(truthyValue);
+ _value.value = _value.value === truthy ? toValue(falsyValue) : truthy;
+ return _value.value;
+ }
+ }
+ if (valueIsRef)
+ return toggle;
+ else
+ return [_value, toggle];
+}
+
+function watchArray(source, cb, options) {
+ let oldList = (options == null ? void 0 : options.immediate) ? [] : [...source instanceof Function ? source() : Array.isArray(source) ? source : toValue(source)];
+ return (0,vue_demi__WEBPACK_IMPORTED_MODULE_0__.watch)(source, (newList, _, onCleanup) => {
+ const oldListRemains = Array.from({ length: oldList.length });
+ const added = [];
+ for (const obj of newList) {
+ let found = false;
+ for (let i = 0; i < oldList.length; i++) {
+ if (!oldListRemains[i] && obj === oldList[i]) {
+ oldListRemains[i] = true;
+ found = true;
+ break;
+ }
+ }
+ if (!found)
+ added.push(obj);
+ }
+ const removed = oldList.filter((_2, i) => !oldListRemains[i]);
+ cb(newList, oldList, added, removed, onCleanup);
+ oldList = [...newList];
+ }, options);
+}
+
+function watchAtMost(source, cb, options) {
+ const {
+ count,
+ ...watchOptions
+ } = options;
+ const current = (0,vue_demi__WEBPACK_IMPORTED_MODULE_0__.ref)(0);
+ const stop = watchWithFilter(
+ source,
+ (...args) => {
+ current.value += 1;
+ if (current.value >= toValue(count))
+ (0,vue_demi__WEBPACK_IMPORTED_MODULE_0__.nextTick)(() => stop());
+ cb(...args);
+ },
+ watchOptions
+ );
+ return { count: current, stop };
+}
+
+function watchDebounced(source, cb, options = {}) {
+ const {
+ debounce = 0,
+ maxWait = void 0,
+ ...watchOptions
+ } = options;
+ return watchWithFilter(
+ source,
+ cb,
+ {
+ ...watchOptions,
+ eventFilter: debounceFilter(debounce, { maxWait })
+ }
+ );
+}
+
+function watchDeep(source, cb, options) {
+ return (0,vue_demi__WEBPACK_IMPORTED_MODULE_0__.watch)(
+ source,
+ cb,
+ {
+ ...options,
+ deep: true
+ }
+ );
+}
+
+function watchIgnorable(source, cb, options = {}) {
+ const {
+ eventFilter = bypassFilter,
+ ...watchOptions
+ } = options;
+ const filteredCb = createFilterWrapper(
+ eventFilter,
+ cb
+ );
+ let ignoreUpdates;
+ let ignorePrevAsyncUpdates;
+ let stop;
+ if (watchOptions.flush === "sync") {
+ const ignore = (0,vue_demi__WEBPACK_IMPORTED_MODULE_0__.ref)(false);
+ ignorePrevAsyncUpdates = () => {
+ };
+ ignoreUpdates = (updater) => {
+ ignore.value = true;
+ updater();
+ ignore.value = false;
+ };
+ stop = (0,vue_demi__WEBPACK_IMPORTED_MODULE_0__.watch)(
+ source,
+ (...args) => {
+ if (!ignore.value)
+ filteredCb(...args);
+ },
+ watchOptions
+ );
+ } else {
+ const disposables = [];
+ const ignoreCounter = (0,vue_demi__WEBPACK_IMPORTED_MODULE_0__.ref)(0);
+ const syncCounter = (0,vue_demi__WEBPACK_IMPORTED_MODULE_0__.ref)(0);
+ ignorePrevAsyncUpdates = () => {
+ ignoreCounter.value = syncCounter.value;
+ };
+ disposables.push(
+ (0,vue_demi__WEBPACK_IMPORTED_MODULE_0__.watch)(
+ source,
+ () => {
+ syncCounter.value++;
+ },
+ { ...watchOptions, flush: "sync" }
+ )
+ );
+ ignoreUpdates = (updater) => {
+ const syncCounterPrev = syncCounter.value;
+ updater();
+ ignoreCounter.value += syncCounter.value - syncCounterPrev;
+ };
+ disposables.push(
+ (0,vue_demi__WEBPACK_IMPORTED_MODULE_0__.watch)(
+ source,
+ (...args) => {
+ const ignore = ignoreCounter.value > 0 && ignoreCounter.value === syncCounter.value;
+ ignoreCounter.value = 0;
+ syncCounter.value = 0;
+ if (ignore)
+ return;
+ filteredCb(...args);
+ },
+ watchOptions
+ )
+ );
+ stop = () => {
+ disposables.forEach((fn) => fn());
+ };
+ }
+ return { stop, ignoreUpdates, ignorePrevAsyncUpdates };
+}
+
+function watchImmediate(source, cb, options) {
+ return (0,vue_demi__WEBPACK_IMPORTED_MODULE_0__.watch)(
+ source,
+ cb,
+ {
+ ...options,
+ immediate: true
+ }
+ );
+}
+
+function watchOnce(source, cb, options) {
+ const stop = (0,vue_demi__WEBPACK_IMPORTED_MODULE_0__.watch)(source, (...args) => {
+ (0,vue_demi__WEBPACK_IMPORTED_MODULE_0__.nextTick)(() => stop());
+ return cb(...args);
+ }, options);
+ return stop;
+}
+
+function watchThrottled(source, cb, options = {}) {
+ const {
+ throttle = 0,
+ trailing = true,
+ leading = true,
+ ...watchOptions
+ } = options;
+ return watchWithFilter(
+ source,
+ cb,
+ {
+ ...watchOptions,
+ eventFilter: throttleFilter(throttle, trailing, leading)
+ }
+ );
+}
+
+function watchTriggerable(source, cb, options = {}) {
+ let cleanupFn;
+ function onEffect() {
+ if (!cleanupFn)
+ return;
+ const fn = cleanupFn;
+ cleanupFn = void 0;
+ fn();
+ }
+ function onCleanup(callback) {
+ cleanupFn = callback;
+ }
+ const _cb = (value, oldValue) => {
+ onEffect();
+ return cb(value, oldValue, onCleanup);
+ };
+ const res = watchIgnorable(source, _cb, options);
+ const { ignoreUpdates } = res;
+ const trigger = () => {
+ let res2;
+ ignoreUpdates(() => {
+ res2 = _cb(getWatchSources(source), getOldValue(source));
+ });
+ return res2;
+ };
+ return {
+ ...res,
+ trigger
+ };
+}
+function getWatchSources(sources) {
+ if ((0,vue_demi__WEBPACK_IMPORTED_MODULE_0__.isReactive)(sources))
+ return sources;
+ if (Array.isArray(sources))
+ return sources.map((item) => toValue(item));
+ return toValue(sources);
+}
+function getOldValue(source) {
+ return Array.isArray(source) ? source.map(() => void 0) : void 0;
+}
+
+function whenever(source, cb, options) {
+ const stop = (0,vue_demi__WEBPACK_IMPORTED_MODULE_0__.watch)(
+ source,
+ (v, ov, onInvalidate) => {
+ if (v) {
+ if (options == null ? void 0 : options.once)
+ (0,vue_demi__WEBPACK_IMPORTED_MODULE_0__.nextTick)(() => stop());
+ cb(v, ov, onInvalidate);
+ }
+ },
+ {
+ ...options,
+ once: false
+ }
+ );
+ return stop;
+}
+
+
+
+
+/***/ }),
+
+/***/ "./node_modules/@vueuse/shared/node_modules/vue-demi/lib/index.mjs":
+/*!*************************************************************************!*\
+ !*** ./node_modules/@vueuse/shared/node_modules/vue-demi/lib/index.mjs ***!
+ \*************************************************************************/
+/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ "BaseTransition": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.BaseTransition),
+/* harmony export */ "Comment": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.Comment),
+/* harmony export */ "EffectScope": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.EffectScope),
+/* harmony export */ "Fragment": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.Fragment),
+/* harmony export */ "KeepAlive": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.KeepAlive),
+/* harmony export */ "ReactiveEffect": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.ReactiveEffect),
+/* harmony export */ "Static": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.Static),
+/* harmony export */ "Suspense": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.Suspense),
+/* harmony export */ "Teleport": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.Teleport),
+/* harmony export */ "Text": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.Text),
+/* harmony export */ "Transition": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.Transition),
+/* harmony export */ "TransitionGroup": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.TransitionGroup),
+/* harmony export */ "Vue": () => (/* reexport module object */ vue__WEBPACK_IMPORTED_MODULE_0__),
+/* harmony export */ "Vue2": () => (/* binding */ Vue2),
+/* harmony export */ "VueElement": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.VueElement),
+/* harmony export */ "callWithAsyncErrorHandling": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.callWithAsyncErrorHandling),
+/* harmony export */ "callWithErrorHandling": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.callWithErrorHandling),
+/* harmony export */ "camelize": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.camelize),
+/* harmony export */ "capitalize": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.capitalize),
+/* harmony export */ "cloneVNode": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.cloneVNode),
+/* harmony export */ "compatUtils": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.compatUtils),
+/* harmony export */ "compile": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.compile),
+/* harmony export */ "computed": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.computed),
+/* harmony export */ "createApp": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.createApp),
+/* harmony export */ "createBlock": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.createBlock),
+/* harmony export */ "createCommentVNode": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode),
+/* harmony export */ "createElementBlock": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock),
+/* harmony export */ "createElementVNode": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode),
+/* harmony export */ "createHydrationRenderer": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.createHydrationRenderer),
+/* harmony export */ "createPropsRestProxy": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.createPropsRestProxy),
+/* harmony export */ "createRenderer": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.createRenderer),
+/* harmony export */ "createSSRApp": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.createSSRApp),
+/* harmony export */ "createSlots": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.createSlots),
+/* harmony export */ "createStaticVNode": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.createStaticVNode),
+/* harmony export */ "createTextVNode": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode),
+/* harmony export */ "createVNode": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.createVNode),
+/* harmony export */ "customRef": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.customRef),
+/* harmony export */ "defineAsyncComponent": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.defineAsyncComponent),
+/* harmony export */ "defineComponent": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.defineComponent),
+/* harmony export */ "defineCustomElement": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.defineCustomElement),
+/* harmony export */ "defineEmits": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.defineEmits),
+/* harmony export */ "defineExpose": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.defineExpose),
+/* harmony export */ "defineProps": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.defineProps),
+/* harmony export */ "defineSSRCustomElement": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.defineSSRCustomElement),
+/* harmony export */ "del": () => (/* binding */ del),
+/* harmony export */ "devtools": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.devtools),
+/* harmony export */ "effect": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.effect),
+/* harmony export */ "effectScope": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.effectScope),
+/* harmony export */ "getCurrentInstance": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.getCurrentInstance),
+/* harmony export */ "getCurrentScope": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.getCurrentScope),
+/* harmony export */ "getTransitionRawChildren": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.getTransitionRawChildren),
+/* harmony export */ "guardReactiveProps": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.guardReactiveProps),
+/* harmony export */ "h": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.h),
+/* harmony export */ "handleError": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.handleError),
+/* harmony export */ "hydrate": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.hydrate),
+/* harmony export */ "initCustomFormatter": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.initCustomFormatter),
+/* harmony export */ "initDirectivesForSSR": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.initDirectivesForSSR),
+/* harmony export */ "inject": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.inject),
+/* harmony export */ "install": () => (/* binding */ install),
+/* harmony export */ "isMemoSame": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.isMemoSame),
+/* harmony export */ "isProxy": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.isProxy),
+/* harmony export */ "isReactive": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.isReactive),
+/* harmony export */ "isReadonly": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.isReadonly),
+/* harmony export */ "isRef": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.isRef),
+/* harmony export */ "isRuntimeOnly": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.isRuntimeOnly),
+/* harmony export */ "isShallow": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.isShallow),
+/* harmony export */ "isVNode": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.isVNode),
+/* harmony export */ "isVue2": () => (/* binding */ isVue2),
+/* harmony export */ "isVue3": () => (/* binding */ isVue3),
+/* harmony export */ "markRaw": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.markRaw),
+/* harmony export */ "mergeDefaults": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.mergeDefaults),
+/* harmony export */ "mergeProps": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.mergeProps),
+/* harmony export */ "nextTick": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.nextTick),
+/* harmony export */ "normalizeClass": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass),
+/* harmony export */ "normalizeProps": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.normalizeProps),
+/* harmony export */ "normalizeStyle": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.normalizeStyle),
+/* harmony export */ "onActivated": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.onActivated),
+/* harmony export */ "onBeforeMount": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.onBeforeMount),
+/* harmony export */ "onBeforeUnmount": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.onBeforeUnmount),
+/* harmony export */ "onBeforeUpdate": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.onBeforeUpdate),
+/* harmony export */ "onDeactivated": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.onDeactivated),
+/* harmony export */ "onErrorCaptured": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.onErrorCaptured),
+/* harmony export */ "onMounted": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.onMounted),
+/* harmony export */ "onRenderTracked": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.onRenderTracked),
+/* harmony export */ "onRenderTriggered": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.onRenderTriggered),
+/* harmony export */ "onScopeDispose": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.onScopeDispose),
+/* harmony export */ "onServerPrefetch": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.onServerPrefetch),
+/* harmony export */ "onUnmounted": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.onUnmounted),
+/* harmony export */ "onUpdated": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.onUpdated),
+/* harmony export */ "openBlock": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.openBlock),
+/* harmony export */ "popScopeId": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.popScopeId),
+/* harmony export */ "provide": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.provide),
+/* harmony export */ "proxyRefs": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.proxyRefs),
+/* harmony export */ "pushScopeId": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.pushScopeId),
+/* harmony export */ "queuePostFlushCb": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.queuePostFlushCb),
+/* harmony export */ "reactive": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.reactive),
+/* harmony export */ "readonly": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.readonly),
+/* harmony export */ "ref": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.ref),
+/* harmony export */ "registerRuntimeCompiler": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.registerRuntimeCompiler),
+/* harmony export */ "render": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.render),
+/* harmony export */ "renderList": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.renderList),
+/* harmony export */ "renderSlot": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.renderSlot),
+/* harmony export */ "resolveComponent": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent),
+/* harmony export */ "resolveDirective": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.resolveDirective),
+/* harmony export */ "resolveDynamicComponent": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.resolveDynamicComponent),
+/* harmony export */ "resolveFilter": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.resolveFilter),
+/* harmony export */ "resolveTransitionHooks": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.resolveTransitionHooks),
+/* harmony export */ "set": () => (/* binding */ set),
+/* harmony export */ "setBlockTracking": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.setBlockTracking),
+/* harmony export */ "setDevtoolsHook": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.setDevtoolsHook),
+/* harmony export */ "setTransitionHooks": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.setTransitionHooks),
+/* harmony export */ "shallowReactive": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.shallowReactive),
+/* harmony export */ "shallowReadonly": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.shallowReadonly),
+/* harmony export */ "shallowRef": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.shallowRef),
+/* harmony export */ "ssrContextKey": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.ssrContextKey),
+/* harmony export */ "ssrUtils": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.ssrUtils),
+/* harmony export */ "stop": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.stop),
+/* harmony export */ "toDisplayString": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString),
+/* harmony export */ "toHandlerKey": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.toHandlerKey),
+/* harmony export */ "toHandlers": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.toHandlers),
+/* harmony export */ "toRaw": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.toRaw),
+/* harmony export */ "toRef": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.toRef),
+/* harmony export */ "toRefs": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.toRefs),
+/* harmony export */ "transformVNodeArgs": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.transformVNodeArgs),
+/* harmony export */ "triggerRef": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.triggerRef),
+/* harmony export */ "unref": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.unref),
+/* harmony export */ "useAttrs": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.useAttrs),
+/* harmony export */ "useCssModule": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.useCssModule),
+/* harmony export */ "useCssVars": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.useCssVars),
+/* harmony export */ "useSSRContext": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.useSSRContext),
+/* harmony export */ "useSlots": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.useSlots),
+/* harmony export */ "useTransitionState": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.useTransitionState),
+/* harmony export */ "vModelCheckbox": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.vModelCheckbox),
+/* harmony export */ "vModelDynamic": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.vModelDynamic),
+/* harmony export */ "vModelRadio": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.vModelRadio),
+/* harmony export */ "vModelSelect": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.vModelSelect),
+/* harmony export */ "vModelText": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.vModelText),
+/* harmony export */ "vShow": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.vShow),
+/* harmony export */ "version": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.version),
+/* harmony export */ "warn": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.warn),
+/* harmony export */ "watch": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.watch),
+/* harmony export */ "watchEffect": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.watchEffect),
+/* harmony export */ "watchPostEffect": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.watchPostEffect),
+/* harmony export */ "watchSyncEffect": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.watchSyncEffect),
+/* harmony export */ "withAsyncContext": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.withAsyncContext),
+/* harmony export */ "withCtx": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.withCtx),
+/* harmony export */ "withDefaults": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.withDefaults),
+/* harmony export */ "withDirectives": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives),
+/* harmony export */ "withKeys": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.withKeys),
+/* harmony export */ "withMemo": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.withMemo),
+/* harmony export */ "withModifiers": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.withModifiers),
+/* harmony export */ "withScopeId": () => (/* reexport safe */ vue__WEBPACK_IMPORTED_MODULE_0__.withScopeId)
+/* harmony export */ });
+/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.esm-bundler.js");
+
+
+var isVue2 = false
+var isVue3 = true
+var Vue2 = undefined
+
+function install() {}
+
+function set(target, key, val) {
+ if (Array.isArray(target)) {
+ target.length = Math.max(target.length, key)
+ target.splice(key, 1, val)
+ return val
+ }
+ target[key] = val
+ return val
+}
+
+function del(target, key) {
+ if (Array.isArray(target)) {
+ target.splice(key, 1)
+ return
+ }
+ delete target[key]
+}
+
+
+
+
+
/***/ }),
/***/ "./node_modules/axios/index.js":
diff --git a/resources/js/components/PersonAvatar.vue b/resources/js/components/PersonAvatar.vue
new file mode 100644
index 0000000..997d2dd
--- /dev/null
+++ b/resources/js/components/PersonAvatar.vue
@@ -0,0 +1,47 @@
+
+