diff --git a/app/Http/Controllers/TransactionsController.php b/app/Http/Controllers/TransactionsController.php index c2a04521..88e5f856 100644 --- a/app/Http/Controllers/TransactionsController.php +++ b/app/Http/Controllers/TransactionsController.php @@ -10,32 +10,40 @@ use Inertia\Inertia; class TransactionsController extends Controller { - public $table = 'incomes'; + public $table = "incomes"; public function index(){ - $query = $this->queryBuilder(); + $query = $this->queryBuilder("incomes"); $data['incomes']['columns'] = collect($query->columns)->map(function($item){ return ucfirst(substr($item, strrpos($item, '.')+1)); }); $data['incomes']['data'] = $query->get(); + + $query = $this->queryBuilder("expenses"); + $data['expenses']['columns'] = collect($query->columns)->map(function($item){ + return ucfirst(substr($item, strrpos($item, '.')+1)); + }); + $data['expenses']['data'] = $query->get(); + + return Inertia::render('Transactions/index', $data); } - private function queryBuilder(){ - $query = DB::table($this->table) + private function queryBuilder($type){ + $query = DB::table($type) ->select([ // 'users.account', // 'users.role', // 'users.email', - 'incomes.amount', - 'incomes.description', - 'incomes.date', - 'type_incomes.label' + $type.'.amount', + $type.'.description', + $type.'.date', + 'type_'.$type.'.label' ]) - ->join('users', 'users.id', 'incomes.id_user') - ->join('type_incomes', 'type_incomes.id', 'incomes.id_type_income') + ->join('users', 'users.id', $type.'.id_user') + ->join('type_'.$type, 'type_'.$type.'.id', $type.'.id_type_'.$type) ; return $query; diff --git a/app/Models/Expanse.php b/app/Models/Expense.php similarity index 84% rename from app/Models/Expanse.php rename to app/Models/Expense.php index 04d0eac7..f8bf5ac2 100644 --- a/app/Models/Expanse.php +++ b/app/Models/Expense.php @@ -5,7 +5,7 @@ namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; -class Expanse extends Model +class Expense extends Model { use HasFactory; } diff --git a/app/Models/PrevisionalExpanse.php b/app/Models/PrevisionalExpense.php similarity index 79% rename from app/Models/PrevisionalExpanse.php rename to app/Models/PrevisionalExpense.php index f9085922..72b71e85 100644 --- a/app/Models/PrevisionalExpanse.php +++ b/app/Models/PrevisionalExpense.php @@ -5,7 +5,7 @@ namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; -class PrevisionalExpanse extends Model +class PrevisionalExpense extends Model { use HasFactory; } diff --git a/app/Models/TypeExpanse.php b/app/Models/TypeExpense.php similarity index 85% rename from app/Models/TypeExpanse.php rename to app/Models/TypeExpense.php index 82dad3d1..1423da72 100644 --- a/app/Models/TypeExpanse.php +++ b/app/Models/TypeExpense.php @@ -5,7 +5,7 @@ namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; -class TypeExpanse extends Model +class TypeExpense extends Model { use HasFactory; public $timestamps = false; diff --git a/composer.lock b/composer.lock index 63eb223f..9e5f6b8e 100644 --- a/composer.lock +++ b/composer.lock @@ -5926,16 +5926,16 @@ }, { "name": "laravel/sail", - "version": "v1.42.0", + "version": "v1.43.0", "source": { "type": "git", "url": "https://github.com/laravel/sail.git", - "reference": "2edaaf77f3c07a4099965bb3d7dfee16e801c0f6" + "reference": "71a509b14b2621ce58574274a74290f933c687f7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/sail/zipball/2edaaf77f3c07a4099965bb3d7dfee16e801c0f6", - "reference": "2edaaf77f3c07a4099965bb3d7dfee16e801c0f6", + "url": "https://api.github.com/repos/laravel/sail/zipball/71a509b14b2621ce58574274a74290f933c687f7", + "reference": "71a509b14b2621ce58574274a74290f933c687f7", "shasum": "" }, "require": { @@ -5985,7 +5985,7 @@ "issues": "https://github.com/laravel/sail/issues", "source": "https://github.com/laravel/sail" }, - "time": "2025-04-29T14:26:46+00:00" + "time": "2025-05-13T13:34:34+00:00" }, { "name": "mockery/mockery", diff --git a/database/factories/ExpenseFactory.php b/database/factories/ExpenseFactory.php new file mode 100644 index 00000000..b4a102b5 --- /dev/null +++ b/database/factories/ExpenseFactory.php @@ -0,0 +1,28 @@ + + */ +class ExpenseFactory extends Factory +{ + /** + * Define the model's default state. + * + * @return array + */ + public function definition(): array + { + return [ + 'id_user' => 1, + 'id_type_expenses' => 1, + 'amount' => fake()->randomFloat(), + 'description' => Str::random(90), + 'date' => fake()->date(), + ]; + } +} diff --git a/database/factories/IncomeFactory.php b/database/factories/IncomeFactory.php index 974d5a63..b30e09f9 100644 --- a/database/factories/IncomeFactory.php +++ b/database/factories/IncomeFactory.php @@ -19,7 +19,7 @@ class IncomeFactory extends Factory { return [ 'id_user' => 1, - 'id_type_income' => 1, + 'id_type_incomes' => 1, 'amount' => fake()->randomFloat(), 'description' => Str::random(90), 'date' => fake()->date(), diff --git a/database/migrations/2023_12_29_153303_create_type_expanses_table.php b/database/migrations/2023_12_29_153303_create_type_expenses_table.php similarity index 79% rename from database/migrations/2023_12_29_153303_create_type_expanses_table.php rename to database/migrations/2023_12_29_153303_create_type_expenses_table.php index 79a938c8..a20c09d7 100644 --- a/database/migrations/2023_12_29_153303_create_type_expanses_table.php +++ b/database/migrations/2023_12_29_153303_create_type_expenses_table.php @@ -11,7 +11,7 @@ return new class extends Migration */ public function up(): void { - Schema::create('type_expanses', function (Blueprint $table) { + Schema::create('type_expenses', function (Blueprint $table) { $table->id(); $table->string('label'); }); @@ -22,6 +22,6 @@ return new class extends Migration */ public function down(): void { - Schema::dropIfExists('type_expanses'); + Schema::dropIfExists('type_expenses'); } }; diff --git a/database/migrations/2023_12_29_153818_create_previsional_expanses_table.php b/database/migrations/2023_12_29_153818_create_previsional_expenses_table.php similarity index 71% rename from database/migrations/2023_12_29_153818_create_previsional_expanses_table.php rename to database/migrations/2023_12_29_153818_create_previsional_expenses_table.php index ce911ba9..99fb308c 100644 --- a/database/migrations/2023_12_29_153818_create_previsional_expanses_table.php +++ b/database/migrations/2023_12_29_153818_create_previsional_expenses_table.php @@ -11,18 +11,18 @@ return new class extends Migration */ public function up(): void { - Schema::create('previsional_expanses', function (Blueprint $table) { + Schema::create('previsional_expenses', function (Blueprint $table) { $table->id(); $table->unsignedBigInteger('id_user'); - $table->unsignedBigInteger('id_type_expanse'); + $table->unsignedBigInteger('id_type_expenses'); $table->double('amount')->default(0); $table->string('description', 200)->default(''); $table->date('date'); $table->foreign('id_user') ->references('id')->on('users'); - $table->foreign('id_type_expanse') - ->references('id')->on('type_expanses'); + $table->foreign('id_type_expenses') + ->references('id')->on('type_expenses'); $table->timestamps(); }); } @@ -32,6 +32,6 @@ return new class extends Migration */ public function down(): void { - Schema::dropIfExists('previsional_expanses'); + Schema::dropIfExists('previsional_expenses'); } }; diff --git a/database/migrations/2023_12_29_154340_create_expanses_table.php b/database/migrations/2023_12_29_154340_create_expenses_table.php similarity index 72% rename from database/migrations/2023_12_29_154340_create_expanses_table.php rename to database/migrations/2023_12_29_154340_create_expenses_table.php index 16582476..059e5d1a 100644 --- a/database/migrations/2023_12_29_154340_create_expanses_table.php +++ b/database/migrations/2023_12_29_154340_create_expenses_table.php @@ -11,18 +11,18 @@ return new class extends Migration */ public function up(): void { - Schema::create('expanses', function (Blueprint $table) { + Schema::create('expenses', function (Blueprint $table) { $table->id(); $table->unsignedBigInteger('id_user'); - $table->unsignedBigInteger('id_type_expanse'); + $table->unsignedBigInteger('id_type_expenses'); $table->double('amount')->default(0); $table->string('description', 200)->default(''); $table->date('date'); $table->foreign('id_user') ->references('id')->on('users'); - $table->foreign('id_type_expanse') - ->references('id')->on('type_expanses'); + $table->foreign('id_type_expenses') + ->references('id')->on('type_expenses'); $table->timestamps(); }); } @@ -32,6 +32,6 @@ return new class extends Migration */ public function down(): void { - Schema::dropIfExists('expanses'); + Schema::dropIfExists('expenses'); } }; diff --git a/database/migrations/2023_12_29_154521_create_recurring_expenses_table.php b/database/migrations/2023_12_29_154521_create_recurring_expenses_table.php index cc5ee509..53055c9c 100644 --- a/database/migrations/2023_12_29_154521_create_recurring_expenses_table.php +++ b/database/migrations/2023_12_29_154521_create_recurring_expenses_table.php @@ -13,7 +13,7 @@ return new class extends Migration { Schema::create('recurring_expenses', function (Blueprint $table) { $table->id(); - $table->unsignedBigInteger('id_type_expanse'); + $table->unsignedBigInteger('id_type_expenses'); $table->unsignedBigInteger('id_recurring'); $table->unsignedBigInteger('id_user'); $table->double('amount')->default(0); @@ -21,8 +21,8 @@ return new class extends Migration $table->date('date'); $table->date('end_date')->nullable(); - $table->foreign('id_type_expanse') - ->references('id')->on('type_expanses'); + $table->foreign('id_type_expenses') + ->references('id')->on('type_expenses'); $table->foreign('id_recurring') ->references('id')->on('recurrings'); $table->foreign('id_user') diff --git a/database/migrations/2023_12_29_160137_create_recurring_incomes_table.php b/database/migrations/2023_12_29_160137_create_recurring_incomes_table.php index 71986681..c21028be 100644 --- a/database/migrations/2023_12_29_160137_create_recurring_incomes_table.php +++ b/database/migrations/2023_12_29_160137_create_recurring_incomes_table.php @@ -13,7 +13,7 @@ return new class extends Migration { Schema::create('recurring_incomes', function (Blueprint $table) { $table->id(); - $table->unsignedBigInteger('id_type_expanse'); + $table->unsignedBigInteger('id_type_expenses'); $table->unsignedBigInteger('id_recurring'); $table->unsignedBigInteger('id_user'); $table->double('amount')->default(0); @@ -21,8 +21,8 @@ return new class extends Migration $table->date('date'); $table->date('end_date')->nullable(); - $table->foreign('id_type_expanse') - ->references('id')->on('type_expanses'); + $table->foreign('id_type_expenses') + ->references('id')->on('type_expenses'); $table->foreign('id_recurring') ->references('id')->on('recurrings'); $table->foreign('id_user') diff --git a/database/migrations/2023_12_29_160431_create_incomes_table.php b/database/migrations/2023_12_29_160431_create_incomes_table.php index de657c88..7b79c02d 100644 --- a/database/migrations/2023_12_29_160431_create_incomes_table.php +++ b/database/migrations/2023_12_29_160431_create_incomes_table.php @@ -14,14 +14,14 @@ return new class extends Migration Schema::create('incomes', function (Blueprint $table) { $table->id(); $table->unsignedBigInteger('id_user'); - $table->unsignedBigInteger('id_type_income'); + $table->unsignedBigInteger('id_type_incomes'); $table->double('amount'); $table->string('description', 200)->default(''); $table->date('date'); $table->foreign('id_user') ->references('id')->on('users'); - $table->foreign('id_type_income') + $table->foreign('id_type_incomes') ->references('id')->on('type_incomes'); $table->timestamps(); }); diff --git a/database/migrations/2023_12_29_160709_create_previsional_incomes_table.php b/database/migrations/2023_12_29_160709_create_previsional_incomes_table.php index 05b92749..b9da7f2b 100644 --- a/database/migrations/2023_12_29_160709_create_previsional_incomes_table.php +++ b/database/migrations/2023_12_29_160709_create_previsional_incomes_table.php @@ -14,14 +14,14 @@ return new class extends Migration Schema::create('previsional_incomes', function (Blueprint $table) { $table->id(); $table->unsignedBigInteger('id_user'); - $table->unsignedBigInteger('id_type_income'); + $table->unsignedBigInteger('id_type_incomes'); $table->double('amount'); $table->string('description', 200)->default(''); $table->date('date'); $table->foreign('id_user') ->references('id')->on('users'); - $table->foreign('id_type_income') + $table->foreign('id_type_incomes') ->references('id')->on('type_incomes'); $table->timestamps(); }); diff --git a/database/seeders/DatabaseSeeder.php b/database/seeders/DatabaseSeeder.php index 1a4e5187..7e9a4018 100644 --- a/database/seeders/DatabaseSeeder.php +++ b/database/seeders/DatabaseSeeder.php @@ -17,7 +17,9 @@ class DatabaseSeeder extends Seeder $this->call([ UserSeeder::class, TypeIncomeSeeder::class, + TypeExpenseSeeder::class, IncomeSeeder::class, + ExpenseSeeder::class, ]); } } diff --git a/database/seeders/ExpenseSeeder.php b/database/seeders/ExpenseSeeder.php new file mode 100644 index 00000000..77c03962 --- /dev/null +++ b/database/seeders/ExpenseSeeder.php @@ -0,0 +1,20 @@ +count(50) + ->create(); + } +} diff --git a/database/seeders/TypeExpenseSeeder.php b/database/seeders/TypeExpenseSeeder.php new file mode 100644 index 00000000..109ab85e --- /dev/null +++ b/database/seeders/TypeExpenseSeeder.php @@ -0,0 +1,20 @@ + 'test', + ]); + } +} diff --git a/node_modules/.package-lock.json b/node_modules/.package-lock.json index 491fc4ec..0e9a3720 100644 --- a/node_modules/.package-lock.json +++ b/node_modules/.package-lock.json @@ -838,103 +838,103 @@ } }, "node_modules/@vue/compiler-core": { - "version": "3.5.13", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.13.tgz", - "integrity": "sha512-oOdAkwqUfW1WqpwSYJce06wvt6HljgY3fGeM9NcVA1HaYOij3mZG9Rkysn0OHuyUAGMbEbARIpsG+LPVlBJ5/Q==", + "version": "3.5.14", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.14.tgz", + "integrity": "sha512-k7qMHMbKvoCXIxPhquKQVw3Twid3Kg4s7+oYURxLGRd56LiuHJVrvFKI4fm2AM3c8apqODPfVJGoh8nePbXMRA==", "license": "MIT", "dependencies": { - "@babel/parser": "^7.25.3", - "@vue/shared": "3.5.13", + "@babel/parser": "^7.27.2", + "@vue/shared": "3.5.14", "entities": "^4.5.0", "estree-walker": "^2.0.2", - "source-map-js": "^1.2.0" + "source-map-js": "^1.2.1" } }, "node_modules/@vue/compiler-dom": { - "version": "3.5.13", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.13.tgz", - "integrity": "sha512-ZOJ46sMOKUjO3e94wPdCzQ6P1Lx/vhp2RSvfaab88Ajexs0AHeV0uasYhi99WPaogmBlRHNRuly8xV75cNTMDA==", + "version": "3.5.14", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.14.tgz", + "integrity": "sha512-1aOCSqxGOea5I80U2hQJvXYpPm/aXo95xL/m/mMhgyPUsKe9jhjwWpziNAw7tYRnbz1I61rd9Mld4W9KmmRoug==", "license": "MIT", "dependencies": { - "@vue/compiler-core": "3.5.13", - "@vue/shared": "3.5.13" + "@vue/compiler-core": "3.5.14", + "@vue/shared": "3.5.14" } }, "node_modules/@vue/compiler-sfc": { - "version": "3.5.13", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.13.tgz", - "integrity": "sha512-6VdaljMpD82w6c2749Zhf5T9u5uLBWKnVue6XWxprDobftnletJ8+oel7sexFfM3qIxNmVE7LSFGTpv6obNyaQ==", + "version": "3.5.14", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.14.tgz", + "integrity": "sha512-9T6m/9mMr81Lj58JpzsiSIjBgv2LiVoWjIVa7kuXHICUi8LiDSIotMpPRXYJsXKqyARrzjT24NAwttrMnMaCXA==", "license": "MIT", "dependencies": { - "@babel/parser": "^7.25.3", - "@vue/compiler-core": "3.5.13", - "@vue/compiler-dom": "3.5.13", - "@vue/compiler-ssr": "3.5.13", - "@vue/shared": "3.5.13", + "@babel/parser": "^7.27.2", + "@vue/compiler-core": "3.5.14", + "@vue/compiler-dom": "3.5.14", + "@vue/compiler-ssr": "3.5.14", + "@vue/shared": "3.5.14", "estree-walker": "^2.0.2", - "magic-string": "^0.30.11", - "postcss": "^8.4.48", - "source-map-js": "^1.2.0" + "magic-string": "^0.30.17", + "postcss": "^8.5.3", + "source-map-js": "^1.2.1" } }, "node_modules/@vue/compiler-ssr": { - "version": "3.5.13", - "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.13.tgz", - "integrity": "sha512-wMH6vrYHxQl/IybKJagqbquvxpWCuVYpoUJfCqFZwa/JY1GdATAQ+TgVtgrwwMZ0D07QhA99rs/EAAWfvG6KpA==", + "version": "3.5.14", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.14.tgz", + "integrity": "sha512-Y0G7PcBxr1yllnHuS/NxNCSPWnRGH4Ogrp0tsLA5QemDZuJLs99YjAKQ7KqkHE0vCg4QTKlQzXLKCMF7WPSl7Q==", "license": "MIT", "dependencies": { - "@vue/compiler-dom": "3.5.13", - "@vue/shared": "3.5.13" + "@vue/compiler-dom": "3.5.14", + "@vue/shared": "3.5.14" } }, "node_modules/@vue/reactivity": { - "version": "3.5.13", - "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.13.tgz", - "integrity": "sha512-NaCwtw8o48B9I6L1zl2p41OHo/2Z4wqYGGIK1Khu5T7yxrn+ATOixn/Udn2m+6kZKB/J7cuT9DbWWhRxqixACg==", + "version": "3.5.14", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.14.tgz", + "integrity": "sha512-7cK1Hp343Fu/SUCCO52vCabjvsYu7ZkOqyYu7bXV9P2yyfjUMUXHZafEbq244sP7gf+EZEz+77QixBTuEqkQQw==", "license": "MIT", "dependencies": { - "@vue/shared": "3.5.13" + "@vue/shared": "3.5.14" } }, "node_modules/@vue/runtime-core": { - "version": "3.5.13", - "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.13.tgz", - "integrity": "sha512-Fj4YRQ3Az0WTZw1sFe+QDb0aXCerigEpw418pw1HBUKFtnQHWzwojaukAs2X/c9DQz4MQ4bsXTGlcpGxU/RCIw==", + "version": "3.5.14", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.14.tgz", + "integrity": "sha512-w9JWEANwHXNgieAhxPpEpJa+0V5G0hz3NmjAZwlOebtfKyp2hKxKF0+qSh0Xs6/PhfGihuSdqMprMVcQU/E6ag==", "license": "MIT", "dependencies": { - "@vue/reactivity": "3.5.13", - "@vue/shared": "3.5.13" + "@vue/reactivity": "3.5.14", + "@vue/shared": "3.5.14" } }, "node_modules/@vue/runtime-dom": { - "version": "3.5.13", - "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.13.tgz", - "integrity": "sha512-dLaj94s93NYLqjLiyFzVs9X6dWhTdAlEAciC3Moq7gzAc13VJUdCnjjRurNM6uTLFATRHexHCTu/Xp3eW6yoog==", + "version": "3.5.14", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.14.tgz", + "integrity": "sha512-lCfR++IakeI35TVR80QgOelsUIdcKjd65rWAMfdSlCYnaEY5t3hYwru7vvcWaqmrK+LpI7ZDDYiGU5V3xjMacw==", "license": "MIT", "dependencies": { - "@vue/reactivity": "3.5.13", - "@vue/runtime-core": "3.5.13", - "@vue/shared": "3.5.13", + "@vue/reactivity": "3.5.14", + "@vue/runtime-core": "3.5.14", + "@vue/shared": "3.5.14", "csstype": "^3.1.3" } }, "node_modules/@vue/server-renderer": { - "version": "3.5.13", - "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.13.tgz", - "integrity": "sha512-wAi4IRJV/2SAW3htkTlB+dHeRmpTiVIK1OGLWV1yeStVSebSQQOwGwIq0D3ZIoBj2C2qpgz5+vX9iEBkTdk5YA==", + "version": "3.5.14", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.14.tgz", + "integrity": "sha512-Rf/ISLqokIvcySIYnv3tNWq40PLpNLDLSJwwVWzG6MNtyIhfbcrAxo5ZL9nARJhqjZyWWa40oRb2IDuejeuv6w==", "license": "MIT", "dependencies": { - "@vue/compiler-ssr": "3.5.13", - "@vue/shared": "3.5.13" + "@vue/compiler-ssr": "3.5.14", + "@vue/shared": "3.5.14" }, "peerDependencies": { - "vue": "3.5.13" + "vue": "3.5.14" } }, "node_modules/@vue/shared": { - "version": "3.5.13", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.13.tgz", - "integrity": "sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==", + "version": "3.5.14", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.14.tgz", + "integrity": "sha512-oXTwNxVfc9EtP1zzXAlSlgARLXNC84frFYkS0HHz0h3E4WZSP9sywqjqzGCP9Y34M8ipNmd380pVgmMuwELDyQ==", "license": "MIT" }, "node_modules/asynckit": { @@ -1707,16 +1707,16 @@ } }, "node_modules/vue": { - "version": "3.5.13", - "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.13.tgz", - "integrity": "sha512-wmeiSMxkZCSc+PM2w2VRsOYAZC8GdipNFRTsLSfodVqI9mbejKeXEGr8SckuLnrQPGe3oJN5c3K0vpoU9q/wCQ==", + "version": "3.5.14", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.14.tgz", + "integrity": "sha512-LbOm50/vZFG6Mhy6KscQYXZMQ0LMCC/y40HDJPPvGFQ+i/lUH+PJHR6C3assgOQiXdl6tAfsXHbXYVBZZu65ew==", "license": "MIT", "dependencies": { - "@vue/compiler-dom": "3.5.13", - "@vue/compiler-sfc": "3.5.13", - "@vue/runtime-dom": "3.5.13", - "@vue/server-renderer": "3.5.13", - "@vue/shared": "3.5.13" + "@vue/compiler-dom": "3.5.14", + "@vue/compiler-sfc": "3.5.14", + "@vue/runtime-dom": "3.5.14", + "@vue/server-renderer": "3.5.14", + "@vue/shared": "3.5.14" }, "peerDependencies": { "typescript": "*" diff --git a/node_modules/@vue/compiler-core/dist/compiler-core.cjs.js b/node_modules/@vue/compiler-core/dist/compiler-core.cjs.js index cf62cb19..bb92fda1 100644 --- a/node_modules/@vue/compiler-core/dist/compiler-core.cjs.js +++ b/node_modules/@vue/compiler-core/dist/compiler-core.cjs.js @@ -1,5 +1,5 @@ /** -* @vue/compiler-core v3.5.13 +* @vue/compiler-core v3.5.14 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT **/ @@ -1782,7 +1782,7 @@ function isReferenced(node, parent, grandparent) { if (parent.key === node) { return !!parent.computed; } - return !grandparent; + return true; // no: class { NODE = value; } // yes: class { [NODE] = value; } // yes: class { key = NODE; } @@ -2473,7 +2473,7 @@ const tokenizer = new Tokenizer(stack, { "COMPILER_V_BIND_SYNC", currentOptions, currentProp.loc, - currentProp.rawName + currentProp.arg.loc.source )) { currentProp.name = "model"; currentProp.modifiers.splice(syncIndex, 1); @@ -3065,6 +3065,7 @@ function walk(node, parent, context, doNotHoistNode = false, inFor = false) { } } let cachedAsArray = false; + const slotCacheKeys = []; if (toCache.length === children.length && node.type === 1) { if (node.tagType === 0 && node.codegenNode && node.codegenNode.type === 13 && shared.isArray(node.codegenNode.children)) { node.codegenNode.children = getCacheExpression( @@ -3074,6 +3075,7 @@ function walk(node, parent, context, doNotHoistNode = false, inFor = false) { } else if (node.tagType === 1 && node.codegenNode && node.codegenNode.type === 13 && node.codegenNode.children && !shared.isArray(node.codegenNode.children) && node.codegenNode.children.type === 15) { const slot = getSlotNode(node.codegenNode, "default"); if (slot) { + slotCacheKeys.push(context.cached.length); slot.returns = getCacheExpression( createArrayExpression(slot.returns) ); @@ -3083,6 +3085,7 @@ function walk(node, parent, context, doNotHoistNode = false, inFor = false) { const slotName = findDir(node, "slot", true); const slot = slotName && slotName.arg && getSlotNode(parent.codegenNode, slotName.arg); if (slot) { + slotCacheKeys.push(context.cached.length); slot.returns = getCacheExpression( createArrayExpression(slot.returns) ); @@ -3092,9 +3095,18 @@ function walk(node, parent, context, doNotHoistNode = false, inFor = false) { } if (!cachedAsArray) { for (const child of toCache) { + slotCacheKeys.push(context.cached.length); child.codegenNode = context.cache(child.codegenNode); } } + if (slotCacheKeys.length && node.type === 1 && node.tagType === 1 && node.codegenNode && node.codegenNode.type === 13 && node.codegenNode.children && !shared.isArray(node.codegenNode.children) && node.codegenNode.children.type === 15) { + node.codegenNode.children.properties.push( + createObjectProperty( + `__`, + createSimpleExpression(JSON.stringify(slotCacheKeys), false) + ) + ); + } function getCacheExpression(value) { const exp = context.cache(value); if (inFor && context.hmr) { diff --git a/node_modules/@vue/compiler-core/dist/compiler-core.cjs.prod.js b/node_modules/@vue/compiler-core/dist/compiler-core.cjs.prod.js index 7792261b..25ea7249 100644 --- a/node_modules/@vue/compiler-core/dist/compiler-core.cjs.prod.js +++ b/node_modules/@vue/compiler-core/dist/compiler-core.cjs.prod.js @@ -1,5 +1,5 @@ /** -* @vue/compiler-core v3.5.13 +* @vue/compiler-core v3.5.14 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT **/ @@ -1778,7 +1778,7 @@ function isReferenced(node, parent, grandparent) { if (parent.key === node) { return !!parent.computed; } - return !grandparent; + return true; // no: class { NODE = value; } // yes: class { [NODE] = value; } // yes: class { key = NODE; } @@ -2469,7 +2469,7 @@ const tokenizer = new Tokenizer(stack, { "COMPILER_V_BIND_SYNC", currentOptions, currentProp.loc, - currentProp.rawName + currentProp.arg.loc.source )) { currentProp.name = "model"; currentProp.modifiers.splice(syncIndex, 1); @@ -3024,6 +3024,7 @@ function walk(node, parent, context, doNotHoistNode = false, inFor = false) { } } let cachedAsArray = false; + const slotCacheKeys = []; if (toCache.length === children.length && node.type === 1) { if (node.tagType === 0 && node.codegenNode && node.codegenNode.type === 13 && shared.isArray(node.codegenNode.children)) { node.codegenNode.children = getCacheExpression( @@ -3033,6 +3034,7 @@ function walk(node, parent, context, doNotHoistNode = false, inFor = false) { } else if (node.tagType === 1 && node.codegenNode && node.codegenNode.type === 13 && node.codegenNode.children && !shared.isArray(node.codegenNode.children) && node.codegenNode.children.type === 15) { const slot = getSlotNode(node.codegenNode, "default"); if (slot) { + slotCacheKeys.push(context.cached.length); slot.returns = getCacheExpression( createArrayExpression(slot.returns) ); @@ -3042,6 +3044,7 @@ function walk(node, parent, context, doNotHoistNode = false, inFor = false) { const slotName = findDir(node, "slot", true); const slot = slotName && slotName.arg && getSlotNode(parent.codegenNode, slotName.arg); if (slot) { + slotCacheKeys.push(context.cached.length); slot.returns = getCacheExpression( createArrayExpression(slot.returns) ); @@ -3051,9 +3054,18 @@ function walk(node, parent, context, doNotHoistNode = false, inFor = false) { } if (!cachedAsArray) { for (const child of toCache) { + slotCacheKeys.push(context.cached.length); child.codegenNode = context.cache(child.codegenNode); } } + if (slotCacheKeys.length && node.type === 1 && node.tagType === 1 && node.codegenNode && node.codegenNode.type === 13 && node.codegenNode.children && !shared.isArray(node.codegenNode.children) && node.codegenNode.children.type === 15) { + node.codegenNode.children.properties.push( + createObjectProperty( + `__`, + createSimpleExpression(JSON.stringify(slotCacheKeys), false) + ) + ); + } function getCacheExpression(value) { const exp = context.cache(value); if (inFor && context.hmr) { diff --git a/node_modules/@vue/compiler-core/dist/compiler-core.d.ts b/node_modules/@vue/compiler-core/dist/compiler-core.d.ts index 9795cad6..d83735cc 100644 --- a/node_modules/@vue/compiler-core/dist/compiler-core.d.ts +++ b/node_modules/@vue/compiler-core/dist/compiler-core.d.ts @@ -1089,3 +1089,4 @@ export declare function processSlotOutlet(node: SlotOutletNode, context: Transfo export declare function getConstantType(node: TemplateChildNode | SimpleExpressionNode | CacheExpression, context: TransformContext): ConstantTypes; + diff --git a/node_modules/@vue/compiler-core/dist/compiler-core.esm-bundler.js b/node_modules/@vue/compiler-core/dist/compiler-core.esm-bundler.js index 8da200ea..90f0c964 100644 --- a/node_modules/@vue/compiler-core/dist/compiler-core.esm-bundler.js +++ b/node_modules/@vue/compiler-core/dist/compiler-core.esm-bundler.js @@ -1,9 +1,9 @@ /** -* @vue/compiler-core v3.5.13 +* @vue/compiler-core v3.5.14 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT **/ -import { isString, NOOP, isObject, NO, extend, isSymbol, isArray, capitalize, camelize, EMPTY_OBJ, PatchFlagNames, slotFlagsText, isOn, isBuiltInDirective, isReservedProp, toHandlerKey } from '@vue/shared'; +import { isString, NOOP, isObject, extend, NO, isSymbol, isArray, capitalize, camelize, EMPTY_OBJ, PatchFlagNames, slotFlagsText, isOn, isBuiltInDirective, isReservedProp, toHandlerKey } from '@vue/shared'; export { generateCodeFrame } from '@vue/shared'; const FRAGMENT = Symbol(!!(process.env.NODE_ENV !== "production") ? `Fragment` : ``); @@ -1535,7 +1535,7 @@ function isForStatement(stmt) { } function walkForStatement(stmt, isVar, onIdent) { const variable = stmt.type === "ForStatement" ? stmt.init : stmt.left; - if (variable && variable.type === "VariableDeclaration" && (variable.kind === "var" ? isVar : !isVar)) { + if (variable && variable.type === "VariableDeclaration" && (variable.kind === "var" ? isVar : false)) { for (const decl of variable.declarations) { for (const id of extractIdentifiers(decl.id)) { onIdent(id); @@ -2153,7 +2153,7 @@ const tokenizer = new Tokenizer(stack, { "COMPILER_V_BIND_SYNC", currentOptions, currentProp.loc, - currentProp.rawName + currentProp.arg.loc.source )) { currentProp.name = "model"; currentProp.modifiers.splice(syncIndex, 1); @@ -2729,6 +2729,7 @@ function walk(node, parent, context, doNotHoistNode = false, inFor = false) { } } let cachedAsArray = false; + const slotCacheKeys = []; if (toCache.length === children.length && node.type === 1) { if (node.tagType === 0 && node.codegenNode && node.codegenNode.type === 13 && isArray(node.codegenNode.children)) { node.codegenNode.children = getCacheExpression( @@ -2738,6 +2739,7 @@ function walk(node, parent, context, doNotHoistNode = false, inFor = false) { } else if (node.tagType === 1 && node.codegenNode && node.codegenNode.type === 13 && node.codegenNode.children && !isArray(node.codegenNode.children) && node.codegenNode.children.type === 15) { const slot = getSlotNode(node.codegenNode, "default"); if (slot) { + slotCacheKeys.push(context.cached.length); slot.returns = getCacheExpression( createArrayExpression(slot.returns) ); @@ -2747,6 +2749,7 @@ function walk(node, parent, context, doNotHoistNode = false, inFor = false) { const slotName = findDir(node, "slot", true); const slot = slotName && slotName.arg && getSlotNode(parent.codegenNode, slotName.arg); if (slot) { + slotCacheKeys.push(context.cached.length); slot.returns = getCacheExpression( createArrayExpression(slot.returns) ); @@ -2756,9 +2759,18 @@ function walk(node, parent, context, doNotHoistNode = false, inFor = false) { } if (!cachedAsArray) { for (const child of toCache) { + slotCacheKeys.push(context.cached.length); child.codegenNode = context.cache(child.codegenNode); } } + if (slotCacheKeys.length && node.type === 1 && node.tagType === 1 && node.codegenNode && node.codegenNode.type === 13 && node.codegenNode.children && !isArray(node.codegenNode.children) && node.codegenNode.children.type === 15) { + node.codegenNode.children.properties.push( + createObjectProperty( + `__`, + createSimpleExpression(JSON.stringify(slotCacheKeys), false) + ) + ); + } function getCacheExpression(value) { const exp = context.cache(value); if (inFor && context.hmr) { @@ -5490,8 +5502,7 @@ const transformModel = (dir, node, context) => { context.onError(createCompilerError(44, exp.loc)); return createTransformProps(); } - const maybeRef = false; - if (!expString.trim() || !isMemberExpression(exp) && !maybeRef) { + if (!expString.trim() || !isMemberExpression(exp) && true) { context.onError( createCompilerError(42, exp.loc) ); diff --git a/node_modules/@vue/compiler-core/package.json b/node_modules/@vue/compiler-core/package.json index fb27b070..de1fa68a 100644 --- a/node_modules/@vue/compiler-core/package.json +++ b/node_modules/@vue/compiler-core/package.json @@ -1,6 +1,6 @@ { "name": "@vue/compiler-core", - "version": "3.5.13", + "version": "3.5.14", "description": "@vue/compiler-core", "main": "index.js", "module": "dist/compiler-core.esm-bundler.js", @@ -46,13 +46,13 @@ }, "homepage": "https://github.com/vuejs/core/tree/main/packages/compiler-core#readme", "dependencies": { - "@babel/parser": "^7.25.3", + "@babel/parser": "^7.27.2", "entities": "^4.5.0", "estree-walker": "^2.0.2", - "source-map-js": "^1.2.0", - "@vue/shared": "3.5.13" + "source-map-js": "^1.2.1", + "@vue/shared": "3.5.14" }, "devDependencies": { - "@babel/types": "^7.25.2" + "@babel/types": "^7.27.1" } } \ No newline at end of file diff --git a/node_modules/@vue/compiler-dom/dist/compiler-dom.cjs.js b/node_modules/@vue/compiler-dom/dist/compiler-dom.cjs.js index dc802dda..4d160292 100644 --- a/node_modules/@vue/compiler-dom/dist/compiler-dom.cjs.js +++ b/node_modules/@vue/compiler-dom/dist/compiler-dom.cjs.js @@ -1,5 +1,5 @@ /** -* @vue/compiler-dom v3.5.13 +* @vue/compiler-dom v3.5.14 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT **/ diff --git a/node_modules/@vue/compiler-dom/dist/compiler-dom.cjs.prod.js b/node_modules/@vue/compiler-dom/dist/compiler-dom.cjs.prod.js index 94b29b70..4a60c9fb 100644 --- a/node_modules/@vue/compiler-dom/dist/compiler-dom.cjs.prod.js +++ b/node_modules/@vue/compiler-dom/dist/compiler-dom.cjs.prod.js @@ -1,5 +1,5 @@ /** -* @vue/compiler-dom v3.5.13 +* @vue/compiler-dom v3.5.14 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT **/ diff --git a/node_modules/@vue/compiler-dom/dist/compiler-dom.esm-browser.js b/node_modules/@vue/compiler-dom/dist/compiler-dom.esm-browser.js index bd01668d..8375db91 100644 --- a/node_modules/@vue/compiler-dom/dist/compiler-dom.esm-browser.js +++ b/node_modules/@vue/compiler-dom/dist/compiler-dom.esm-browser.js @@ -1,5 +1,5 @@ /** -* @vue/compiler-dom v3.5.13 +* @vue/compiler-dom v3.5.14 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT **/ @@ -1669,7 +1669,7 @@ function isForStatement(stmt) { } function walkForStatement(stmt, isVar, onIdent) { const variable = stmt.type === "ForStatement" ? stmt.init : stmt.left; - if (variable && variable.type === "VariableDeclaration" && (variable.kind === "var" ? isVar : !isVar)) { + if (variable && variable.type === "VariableDeclaration" && (variable.kind === "var" ? isVar : false)) { for (const decl of variable.declarations) { for (const id of extractIdentifiers(decl.id)) { onIdent(id); @@ -2286,7 +2286,7 @@ const tokenizer = new Tokenizer(stack, { "COMPILER_V_BIND_SYNC", currentOptions, currentProp.loc, - currentProp.rawName + currentProp.arg.loc.source )) { currentProp.name = "model"; currentProp.modifiers.splice(syncIndex, 1); @@ -2862,6 +2862,7 @@ function walk(node, parent, context, doNotHoistNode = false, inFor = false) { } } let cachedAsArray = false; + const slotCacheKeys = []; if (toCache.length === children.length && node.type === 1) { if (node.tagType === 0 && node.codegenNode && node.codegenNode.type === 13 && isArray(node.codegenNode.children)) { node.codegenNode.children = getCacheExpression( @@ -2871,6 +2872,7 @@ function walk(node, parent, context, doNotHoistNode = false, inFor = false) { } else if (node.tagType === 1 && node.codegenNode && node.codegenNode.type === 13 && node.codegenNode.children && !isArray(node.codegenNode.children) && node.codegenNode.children.type === 15) { const slot = getSlotNode(node.codegenNode, "default"); if (slot) { + slotCacheKeys.push(context.cached.length); slot.returns = getCacheExpression( createArrayExpression(slot.returns) ); @@ -2880,6 +2882,7 @@ function walk(node, parent, context, doNotHoistNode = false, inFor = false) { const slotName = findDir(node, "slot", true); const slot = slotName && slotName.arg && getSlotNode(parent.codegenNode, slotName.arg); if (slot) { + slotCacheKeys.push(context.cached.length); slot.returns = getCacheExpression( createArrayExpression(slot.returns) ); @@ -2889,9 +2892,18 @@ function walk(node, parent, context, doNotHoistNode = false, inFor = false) { } if (!cachedAsArray) { for (const child of toCache) { + slotCacheKeys.push(context.cached.length); child.codegenNode = context.cache(child.codegenNode); } } + if (slotCacheKeys.length && node.type === 1 && node.tagType === 1 && node.codegenNode && node.codegenNode.type === 13 && node.codegenNode.children && !isArray(node.codegenNode.children) && node.codegenNode.children.type === 15) { + node.codegenNode.children.properties.push( + createObjectProperty( + `__`, + createSimpleExpression(JSON.stringify(slotCacheKeys), false) + ) + ); + } function getCacheExpression(value) { const exp = context.cache(value); if (inFor && context.hmr) { @@ -5620,8 +5632,7 @@ const transformModel$1 = (dir, node, context) => { context.onError(createCompilerError(44, exp.loc)); return createTransformProps(); } - const maybeRef = false; - if (!expString.trim() || !isMemberExpression(exp) && !maybeRef) { + if (!expString.trim() || !isMemberExpression(exp) && true) { context.onError( createCompilerError(42, exp.loc) ); diff --git a/node_modules/@vue/compiler-dom/dist/compiler-dom.esm-browser.prod.js b/node_modules/@vue/compiler-dom/dist/compiler-dom.esm-browser.prod.js index f473ca68..3daf5e35 100644 --- a/node_modules/@vue/compiler-dom/dist/compiler-dom.esm-browser.prod.js +++ b/node_modules/@vue/compiler-dom/dist/compiler-dom.esm-browser.prod.js @@ -1,11 +1,14 @@ /** -* @vue/compiler-dom v3.5.13 +* @vue/compiler-dom v3.5.14 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT -**/let e;function t(e){let t=Object.create(null);for(let n of e.split(","))t[n]=1;return e=>e in t}let n={},i=()=>{},s=()=>!1,r=e=>111===e.charCodeAt(0)&&110===e.charCodeAt(1)&&(e.charCodeAt(2)>122||97>e.charCodeAt(2)),o=Object.assign,a=Array.isArray,l=e=>"string"==typeof e,c=e=>"symbol"==typeof e,h=e=>null!==e&&"object"==typeof e,p=t(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),d=t("bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo"),u=e=>{let t=Object.create(null);return n=>t[n]||(t[n]=e(n))},f=/-(\w)/g,E=u(e=>e.replace(f,(e,t)=>t?t.toUpperCase():"")),_=u(e=>e.charAt(0).toUpperCase()+e.slice(1)),m=u(e=>e?`on${_(e)}`:"");function S(e,t=0,n=e.length){if((t=Math.max(0,Math.min(t,e.length)))>(n=Math.max(0,Math.min(n,e.length))))return"";let i=e.split(/(\r?\n)/),s=i.filter((e,t)=>t%2==1);i=i.filter((e,t)=>t%2==0);let r=0,o=[];for(let e=0;e=t){for(let a=e-2;a<=e+2||n>r;a++){if(a<0||a>=i.length)continue;let l=a+1;o.push(`${l}${" ".repeat(Math.max(3-String(l).length,0))}| ${i[a]}`);let c=i[a].length,h=s[a]&&s[a].length||0;if(a===e){let e=t-(r-(c+h)),i=Math.max(1,n>r?c-e:n-t);o.push(" | "+" ".repeat(e)+"^".repeat(i))}else if(a>e){if(n>r){let e=Math.max(Math.min(n-r,c),1);o.push(" | "+"^".repeat(e))}r+=c+h}}break}return o.join("\n")}let g=/;(?![^(]*\))/g,T=/:([^]+)/,N=/\/\*[^]*?\*\//g,I=t("html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot"),y=t("svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,feDistantLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,text,textPath,title,tspan,unknown,use,view"),O=t("annotation,annotation-xml,maction,maligngroup,malignmark,math,menclose,merror,mfenced,mfrac,mfraction,mglyph,mi,mlabeledtr,mlongdiv,mmultiscripts,mn,mo,mover,mpadded,mphantom,mprescripts,mroot,mrow,ms,mscarries,mscarry,msgroup,msline,mspace,msqrt,msrow,mstack,mstyle,msub,msubsup,msup,mtable,mtd,mtext,mtr,munder,munderover,none,semantics"),A=t("area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr"),C=Symbol(""),b=Symbol(""),R=Symbol(""),v=Symbol(""),x=Symbol(""),L=Symbol(""),M=Symbol(""),P=Symbol(""),D=Symbol(""),V=Symbol(""),k=Symbol(""),X=Symbol(""),w=Symbol(""),U=Symbol(""),F=Symbol(""),B=Symbol(""),$=Symbol(""),H=Symbol(""),G=Symbol(""),q=Symbol(""),J=Symbol(""),j=Symbol(""),W=Symbol(""),K=Symbol(""),Y=Symbol(""),Q=Symbol(""),z=Symbol(""),Z=Symbol(""),ee=Symbol(""),et=Symbol(""),en=Symbol(""),ei=Symbol(""),es=Symbol(""),er=Symbol(""),eo=Symbol(""),ea=Symbol(""),el=Symbol(""),ec=Symbol(""),eh=Symbol(""),ep={[C]:"Fragment",[b]:"Teleport",[R]:"Suspense",[v]:"KeepAlive",[x]:"BaseTransition",[L]:"openBlock",[M]:"createBlock",[P]:"createElementBlock",[D]:"createVNode",[V]:"createElementVNode",[k]:"createCommentVNode",[X]:"createTextVNode",[w]:"createStaticVNode",[U]:"resolveComponent",[F]:"resolveDynamicComponent",[B]:"resolveDirective",[$]:"resolveFilter",[H]:"withDirectives",[G]:"renderList",[q]:"renderSlot",[J]:"createSlots",[j]:"toDisplayString",[W]:"mergeProps",[K]:"normalizeClass",[Y]:"normalizeStyle",[Q]:"normalizeProps",[z]:"guardReactiveProps",[Z]:"toHandlers",[ee]:"camelize",[et]:"capitalize",[en]:"toHandlerKey",[ei]:"setBlockTracking",[es]:"pushScopeId",[er]:"popScopeId",[eo]:"withCtx",[ea]:"unref",[el]:"isRef",[ec]:"withMemo",[eh]:"isMemoSame"};function ed(e){Object.getOwnPropertySymbols(e).forEach(t=>{ep[t]=e[t]})}let eu={HTML:0,0:"HTML",SVG:1,1:"SVG",MATH_ML:2,2:"MATH_ML"},ef={ROOT:0,0:"ROOT",ELEMENT:1,1:"ELEMENT",TEXT:2,2:"TEXT",COMMENT:3,3:"COMMENT",SIMPLE_EXPRESSION:4,4:"SIMPLE_EXPRESSION",INTERPOLATION:5,5:"INTERPOLATION",ATTRIBUTE:6,6:"ATTRIBUTE",DIRECTIVE:7,7:"DIRECTIVE",COMPOUND_EXPRESSION:8,8:"COMPOUND_EXPRESSION",IF:9,9:"IF",IF_BRANCH:10,10:"IF_BRANCH",FOR:11,11:"FOR",TEXT_CALL:12,12:"TEXT_CALL",VNODE_CALL:13,13:"VNODE_CALL",JS_CALL_EXPRESSION:14,14:"JS_CALL_EXPRESSION",JS_OBJECT_EXPRESSION:15,15:"JS_OBJECT_EXPRESSION",JS_PROPERTY:16,16:"JS_PROPERTY",JS_ARRAY_EXPRESSION:17,17:"JS_ARRAY_EXPRESSION",JS_FUNCTION_EXPRESSION:18,18:"JS_FUNCTION_EXPRESSION",JS_CONDITIONAL_EXPRESSION:19,19:"JS_CONDITIONAL_EXPRESSION",JS_CACHE_EXPRESSION:20,20:"JS_CACHE_EXPRESSION",JS_BLOCK_STATEMENT:21,21:"JS_BLOCK_STATEMENT",JS_TEMPLATE_LITERAL:22,22:"JS_TEMPLATE_LITERAL",JS_IF_STATEMENT:23,23:"JS_IF_STATEMENT",JS_ASSIGNMENT_EXPRESSION:24,24:"JS_ASSIGNMENT_EXPRESSION",JS_SEQUENCE_EXPRESSION:25,25:"JS_SEQUENCE_EXPRESSION",JS_RETURN_STATEMENT:26,26:"JS_RETURN_STATEMENT"},eE={ELEMENT:0,0:"ELEMENT",COMPONENT:1,1:"COMPONENT",SLOT:2,2:"SLOT",TEMPLATE:3,3:"TEMPLATE"},e_={NOT_CONSTANT:0,0:"NOT_CONSTANT",CAN_SKIP_PATCH:1,1:"CAN_SKIP_PATCH",CAN_CACHE:2,2:"CAN_CACHE",CAN_STRINGIFY:3,3:"CAN_STRINGIFY"},em={start:{line:1,column:1,offset:0},end:{line:1,column:1,offset:0},source:""};function eS(e,t=""){return{type:0,source:t,children:e,helpers:new Set,components:[],directives:[],hoists:[],imports:[],cached:[],temps:0,codegenNode:void 0,loc:em}}function eg(e,t,n,i,s,r,o,a=!1,l=!1,c=!1,h=em){return e&&(a?(e.helper(L),e.helper(eX(e.inSSR,c))):e.helper(ek(e.inSSR,c)),o&&e.helper(H)),{type:13,tag:t,props:n,children:i,patchFlag:s,dynamicProps:r,directives:o,isBlock:a,disableTracking:l,isComponent:c,loc:h}}function eT(e,t=em){return{type:17,loc:t,elements:e}}function eN(e,t=em){return{type:15,loc:t,properties:e}}function eI(e,t){return{type:16,loc:em,key:l(e)?ey(e,!0):e,value:t}}function ey(e,t=!1,n=em,i=0){return{type:4,loc:n,content:e,isStatic:t,constType:t?3:i}}function eO(e,t){return{type:5,loc:t,content:l(e)?ey(e,!1,t):e}}function eA(e,t=em){return{type:8,loc:t,children:e}}function eC(e,t=[],n=em){return{type:14,loc:n,callee:e,arguments:t}}function eb(e,t,n=!1,i=!1,s=em){return{type:18,params:e,returns:t,newline:n,isSlot:i,loc:s}}function eR(e,t,n,i=!0){return{type:19,test:e,consequent:t,alternate:n,newline:i,loc:em}}function ev(e,t,n=!1,i=!1){return{type:20,index:e,value:t,needPauseTracking:n,inVOnce:i,needArraySpread:!1,loc:em}}function ex(e){return{type:21,body:e,loc:em}}function eL(e){return{type:22,elements:e,loc:em}}function eM(e,t,n){return{type:23,test:e,consequent:t,alternate:n,loc:em}}function eP(e,t){return{type:24,left:e,right:t,loc:em}}function eD(e){return{type:25,expressions:e,loc:em}}function eV(e){return{type:26,returns:e,loc:em}}function ek(e,t){return e||t?D:V}function eX(e,t){return e||t?M:P}function ew(e,{helper:t,removeHelper:n,inSSR:i}){e.isBlock||(e.isBlock=!0,n(ek(i,e.isComponent)),t(L),t(eX(i,e.isComponent)))}let eU=new Uint8Array([123,123]),eF=new Uint8Array([125,125]);function eB(e){return e>=97&&e<=122||e>=65&&e<=90}function e$(e){return 32===e||10===e||9===e||12===e||13===e}function eH(e){return 47===e||62===e||e$(e)}function eG(e){let t=new Uint8Array(e.length);for(let n=0;n`.sync modifier for v-bind has been removed. Use v-model with argument instead. \`v-bind:${e}.sync\` should be changed to \`v-model:${e}\`.`,link:"https://v3-migration.vuejs.org/breaking-changes/v-model.html"},COMPILER_V_BIND_OBJECT_ORDER:{message:'v-bind="obj" usage is now order sensitive and behaves like JavaScript object spread: it will now overwrite an existing non-mergeable attribute that appears before v-bind in the case of conflict. To retain 2.x behavior, move v-bind to make it the first attribute. You can also suppress this warning if the usage is intended.',link:"https://v3-migration.vuejs.org/breaking-changes/v-bind.html"},COMPILER_V_ON_NATIVE:{message:".native modifier for v-on has been removed as is no longer necessary.",link:"https://v3-migration.vuejs.org/breaking-changes/v-on-native-modifier-removed.html"},COMPILER_V_IF_V_FOR_PRECEDENCE:{message:"v-if / v-for precedence when used on the same element has changed in Vue 3: v-if now takes higher precedence and will no longer have access to v-for scope variables. It is best to avoid the ambiguity with