🌱 🏗️ ⬆️ ✨add expense table 🎨 🔧

This commit is contained in:
2025-05-15 17:45:22 +02:00
parent d17fded423
commit be5225c85d
100 changed files with 6250 additions and 8757 deletions
+18 -10
View File
@@ -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;
@@ -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;
}
@@ -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;
}
@@ -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;
Generated
+5 -5
View File
@@ -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",
+28
View File
@@ -0,0 +1,28 @@
<?php
namespace Database\Factories;
use Illuminate\Database\Eloquent\Factories\Factory;
use Illuminate\Support\Str;
/**
* @extends \Illuminate\Database\Eloquent\Factories\Factory<\App\Models\Model>
*/
class ExpenseFactory extends Factory
{
/**
* Define the model's default state.
*
* @return array<string, mixed>
*/
public function definition(): array
{
return [
'id_user' => 1,
'id_type_expenses' => 1,
'amount' => fake()->randomFloat(),
'description' => Str::random(90),
'date' => fake()->date(),
];
}
}
+1 -1
View File
@@ -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(),
@@ -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');
}
};
@@ -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');
}
};
@@ -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');
}
};
@@ -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')
@@ -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')
@@ -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();
});
@@ -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();
});
+2
View File
@@ -17,7 +17,9 @@ class DatabaseSeeder extends Seeder
$this->call([
UserSeeder::class,
TypeIncomeSeeder::class,
TypeExpenseSeeder::class,
IncomeSeeder::class,
ExpenseSeeder::class,
]);
}
}
+20
View File
@@ -0,0 +1,20 @@
<?php
namespace Database\Seeders;
use App\Models\Expense;
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
use Illuminate\Database\Seeder;
class ExpenseSeeder extends Seeder
{
/**
* Run the database seeds.
*/
public function run(): void
{
Expense::factory()
->count(50)
->create();
}
}
+20
View File
@@ -0,0 +1,20 @@
<?php
namespace Database\Seeders;
use App\Models\TypeExpense;
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
use Illuminate\Database\Seeder;
class TypeExpenseSeeder extends Seeder
{
/**
* Run the database seeds.
*/
public function run(): void
{
TypeExpense::create([
'label' => 'test',
]);
}
}
+59 -59
View File
@@ -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": "*"
+15 -3
View File
@@ -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) {
+15 -3
View File
@@ -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) {
+1
View File
@@ -1089,3 +1089,4 @@ export declare function processSlotOutlet(node: SlotOutletNode, context: Transfo
export declare function getConstantType(node: TemplateChildNode | SimpleExpressionNode | CacheExpression, context: TransformContext): ConstantTypes;
+17 -6
View File
@@ -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)
);
+5 -5
View File
@@ -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"
}
}
+1 -1
View File
@@ -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
**/
+1 -1
View File
@@ -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
**/
+16 -5
View File
@@ -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)
);
File diff suppressed because one or more lines are too long
+3 -3
View File
@@ -1,11 +1,11 @@
/**
* @vue/compiler-dom v3.5.13
* @vue/compiler-dom v3.5.14
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/
import { registerRuntimeHelpers, createSimpleExpression, createCompilerError, createObjectProperty, getConstantType, createCallExpression, TO_DISPLAY_STRING, transformModel as transformModel$1, findProp, hasDynamicKeyVBind, findDir, isStaticArgOf, transformOn as transformOn$1, isStaticExp, createCompoundExpression, checkCompatEnabled, noopDirectiveTransform, baseCompile, baseParse } from '@vue/compiler-core';
import { registerRuntimeHelpers, createSimpleExpression, createCompilerError, createObjectProperty, createCallExpression, getConstantType, TO_DISPLAY_STRING, transformModel as transformModel$1, findProp, hasDynamicKeyVBind, findDir, isStaticArgOf, transformOn as transformOn$1, isStaticExp, createCompoundExpression, checkCompatEnabled, noopDirectiveTransform, baseCompile, baseParse } from '@vue/compiler-core';
export * from '@vue/compiler-core';
import { isVoidTag, isHTMLTag, isSVGTag, isMathMLTag, parseStringStyle, capitalize, makeMap, extend } from '@vue/shared';
import { isHTMLTag, isSVGTag, isMathMLTag, isVoidTag, parseStringStyle, makeMap, capitalize, extend } from '@vue/shared';
const V_MODEL_RADIO = Symbol(!!(process.env.NODE_ENV !== "production") ? `vModelRadio` : ``);
const V_MODEL_CHECKBOX = Symbol(
+16 -5
View File
@@ -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
**/
@@ -1672,7 +1672,7 @@ Use a v-bind binding combined with a v-on listener that emits update:x event ins
}
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);
@@ -2289,7 +2289,7 @@ Use a v-bind binding combined with a v-on listener that emits update:x event ins
"COMPILER_V_BIND_SYNC",
currentOptions,
currentProp.loc,
currentProp.rawName
currentProp.arg.loc.source
)) {
currentProp.name = "model";
currentProp.modifiers.splice(syncIndex, 1);
@@ -2865,6 +2865,7 @@ Use a v-bind binding combined with a v-on listener that emits update:x event ins
}
}
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(
@@ -2874,6 +2875,7 @@ Use a v-bind binding combined with a v-on listener that emits update:x event ins
} 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)
);
@@ -2883,6 +2885,7 @@ Use a v-bind binding combined with a v-on listener that emits update:x event ins
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)
);
@@ -2892,9 +2895,18 @@ Use a v-bind binding combined with a v-on listener that emits update:x event ins
}
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) {
@@ -5623,8 +5635,7 @@ Use a v-bind binding combined with a v-on listener that emits update:x event ins
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)
);
File diff suppressed because one or more lines are too long
+3 -3
View File
@@ -1,6 +1,6 @@
{
"name": "@vue/compiler-dom",
"version": "3.5.13",
"version": "3.5.14",
"description": "@vue/compiler-dom",
"main": "index.js",
"module": "dist/compiler-dom.esm-bundler.js",
@@ -51,7 +51,7 @@
},
"homepage": "https://github.com/vuejs/core/tree/main/packages/compiler-dom#readme",
"dependencies": {
"@vue/shared": "3.5.13",
"@vue/compiler-core": "3.5.13"
"@vue/shared": "3.5.14",
"@vue/compiler-core": "3.5.14"
}
}
+24 -16
View File
@@ -1,5 +1,5 @@
/**
* @vue/compiler-sfc v3.5.13
* @vue/compiler-sfc v3.5.14
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/
@@ -4882,29 +4882,39 @@ function requireContainer$1 () {
return this.removeAll();
};
_proto.insertAfter = function insertAfter(oldNode, newNode) {
var _this$nodes;
newNode.parent = this;
var oldIndex = this.index(oldNode);
this.nodes.splice(oldIndex + 1, 0, newNode);
var resetNode = [];
for (var i = 2; i < arguments.length; i++) {
resetNode.push(arguments[i]);
}
(_this$nodes = this.nodes).splice.apply(_this$nodes, [oldIndex + 1, 0, newNode].concat(resetNode));
newNode.parent = this;
var index;
for (var id in this.indexes) {
index = this.indexes[id];
if (oldIndex < index) {
this.indexes[id] = index + 1;
this.indexes[id] = index + arguments.length - 1;
}
}
return this;
};
_proto.insertBefore = function insertBefore(oldNode, newNode) {
var _this$nodes2;
newNode.parent = this;
var oldIndex = this.index(oldNode);
this.nodes.splice(oldIndex, 0, newNode);
var resetNode = [];
for (var i = 2; i < arguments.length; i++) {
resetNode.push(arguments[i]);
}
(_this$nodes2 = this.nodes).splice.apply(_this$nodes2, [oldIndex, 0, newNode].concat(resetNode));
newNode.parent = this;
var index;
for (var id in this.indexes) {
index = this.indexes[id];
if (index >= oldIndex) {
this.indexes[id] = index + 1;
this.indexes[id] = index + arguments.length - 1;
}
}
return this;
@@ -4930,7 +4940,7 @@ function requireContainer$1 () {
* Return the most specific node at the line and column number given.
* The source location is based on the original parsed location, locations aren't
* updated as selector nodes are mutated.
*
*
* Note that this location is relative to the location of the first character
* of the selector, and not the location of the selector in the overall document
* when used in conjunction with postcss.
@@ -12056,8 +12066,6 @@ var hasRequiredLodash_camelcase;
function requireLodash_camelcase () {
if (hasRequiredLodash_camelcase) return lodash_camelcase;
hasRequiredLodash_camelcase = 1;
/** Used as references for various `Number` constants. */
var INFINITY = 1 / 0;
/** `Object#toString` result references. */
var symbolTag = '[object Symbol]';
@@ -12393,7 +12401,7 @@ function requireLodash_camelcase () {
return symbolToString ? symbolToString.call(value) : '';
}
var result = (value + '');
return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;
return (result == '0' && (1 / value) == -Infinity) ? '-0' : result;
}
/**
@@ -12408,7 +12416,7 @@ function requireLodash_camelcase () {
function castSlice(array, start, end) {
var length = array.length;
end = end === undefined ? length : end;
return (!start && end >= length) ? array : baseSlice(array, start, end);
return (false && end >= length) ? array : baseSlice(array, start, end);
}
/**
@@ -13161,7 +13169,7 @@ function requireWasmHash () {
// 64 is the maximum chunk size for every possible wasm hash implementation
// 4 is the maximum number of bytes per char for string encoding (max is utf-8)
// ~3 makes sure that it's always a block of 4 chars, so avoid partially encoded bytes for base64
const MAX_SHORT_STRING = Math.floor((65536 - 64) / 4) & ~3;
const MAX_SHORT_STRING = Math.floor((65536 - 64) / 4) & -4;
class WasmHash {
/**
@@ -19796,7 +19804,7 @@ const ${as} = {}`);
ast.forEach((node) => {
if (node.type === "ExportDefaultDeclaration") {
if (node.declaration.type === "ClassDeclaration" && node.declaration.id) {
let start = node.declaration.decorators && node.declaration.decorators.length > 0 ? node.declaration.decorators[node.declaration.decorators.length - 1].end : node.start;
const start = node.declaration.decorators && node.declaration.decorators.length > 0 ? node.declaration.decorators[node.declaration.decorators.length - 1].end : node.start;
s.overwrite(start, node.declaration.id.start, ` class `);
s.append(`
const ${as} = ${node.declaration.id.name}`);
@@ -20858,7 +20866,7 @@ class AST {
return [s, unescape(this.toString()), false, false];
}
// XXX abstract out this map method
let bodyDotAllowed = !repeated || allowDot || dot || !startNoDot
let bodyDotAllowed = !repeated || allowDot || dot || false
? ''
: this.#partsToRegExp(true);
if (bodyDotAllowed === body) {
@@ -23926,7 +23934,7 @@ function transformDestructuredProps(ctx, vueImportAliases) {
},
leave(node, parent) {
parent && parentStack.pop();
if (node.type === "BlockStatement" && !CompilerDOM.isFunctionType(parent) || CompilerDOM.isFunctionType(node)) {
if (node.type === "BlockStatement" && !CompilerDOM.isFunctionType(parent) || CompilerDOM.isFunctionType(node) || node.type === "CatchClause") {
popScope();
}
}
@@ -24808,7 +24816,7 @@ function walkDeclaration(from, node, bindings, userImportAliases, hoistStatic, i
} else if (isConst) {
if (isCallOf(
init,
(m) => m === userImportAliases["ref"] || m === userImportAliases["computed"] || m === userImportAliases["shallowRef"] || m === userImportAliases["customRef"] || m === userImportAliases["toRef"] || m === DEFINE_MODEL
(m) => m === userImportAliases["ref"] || m === userImportAliases["computed"] || m === userImportAliases["shallowRef"] || m === userImportAliases["customRef"] || m === userImportAliases["toRef"] || m === userImportAliases["useTemplateRef"] || m === DEFINE_MODEL
)) {
bindingType = "setup-ref";
} else {
@@ -24934,7 +24942,7 @@ function isStaticNode(node) {
return false;
}
const version = "3.5.13";
const version = "3.5.14";
const parseCache = parseCache$1;
const errorMessages = {
...CompilerDOM.errorMessages,
+2 -1
View File
@@ -1,6 +1,6 @@
import * as _babel_types from '@babel/types';
import { Statement, Expression, TSType, Node, Program, CallExpression, ObjectPattern, TSModuleDeclaration, TSPropertySignature, TSMethodSignature, TSCallSignatureDeclaration, TSFunctionType } from '@babel/types';
import { RootNode, CompilerOptions, CodegenResult, ParserOptions, CompilerError, RawSourceMap, SourceLocation, BindingMetadata as BindingMetadata$1 } from '@vue/compiler-core';
import { RootNode, CompilerOptions, CodegenResult, ParserOptions, RawSourceMap, CompilerError, SourceLocation, BindingMetadata as BindingMetadata$1 } from '@vue/compiler-core';
export { BindingMetadata, CompilerError, CompilerOptions, extractIdentifiers, generateCodeFrame, isInDestructureAssignment, isStaticProperty, walkIdentifiers } from '@vue/compiler-core';
import { ParserPlugin } from '@babel/parser';
export { parse as babelParse } from '@babel/parser';
@@ -482,3 +482,4 @@ export declare const walk: any;
*/
export declare const shouldTransformRef: () => boolean;
File diff suppressed because it is too large Load Diff
+14 -14
View File
@@ -1,6 +1,6 @@
{
"name": "@vue/compiler-sfc",
"version": "3.5.13",
"version": "3.5.14",
"description": "@vue/compiler-sfc",
"main": "dist/compiler-sfc.cjs.js",
"module": "dist/compiler-sfc.esm-browser.js",
@@ -42,26 +42,26 @@
},
"homepage": "https://github.com/vuejs/core/tree/main/packages/compiler-sfc#readme",
"dependencies": {
"@babel/parser": "^7.25.3",
"@babel/parser": "^7.27.2",
"estree-walker": "^2.0.2",
"magic-string": "^0.30.11",
"postcss": "^8.4.48",
"source-map-js": "^1.2.0",
"@vue/compiler-core": "3.5.13",
"@vue/shared": "3.5.13",
"@vue/compiler-dom": "3.5.13",
"@vue/compiler-ssr": "3.5.13"
"magic-string": "^0.30.17",
"postcss": "^8.5.3",
"source-map-js": "^1.2.1",
"@vue/compiler-core": "3.5.14",
"@vue/compiler-dom": "3.5.14",
"@vue/compiler-ssr": "3.5.14",
"@vue/shared": "3.5.14"
},
"devDependencies": {
"@babel/types": "^7.25.2",
"@babel/types": "^7.27.1",
"@vue/consolidate": "^1.0.0",
"hash-sum": "^2.0.0",
"lru-cache": "10.1.0",
"merge-source-map": "^1.1.0",
"minimatch": "~9.0.5",
"postcss-modules": "^6.0.0",
"postcss-selector-parser": "^7.0.0",
"minimatch": "~10.0.1",
"postcss-modules": "^6.0.1",
"postcss-selector-parser": "^7.1.0",
"pug": "^3.0.3",
"sass": "^1.80.6"
"sass": "^1.86.3"
}
}
+1 -1
View File
@@ -1,5 +1,5 @@
/**
* @vue/compiler-ssr v3.5.13
* @vue/compiler-ssr v3.5.14
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/
+3 -3
View File
@@ -1,6 +1,6 @@
{
"name": "@vue/compiler-ssr",
"version": "3.5.13",
"version": "3.5.14",
"description": "@vue/compiler-ssr",
"main": "dist/compiler-ssr.cjs.js",
"types": "dist/compiler-ssr.d.ts",
@@ -28,7 +28,7 @@
},
"homepage": "https://github.com/vuejs/core/tree/main/packages/compiler-ssr#readme",
"dependencies": {
"@vue/shared": "3.5.13",
"@vue/compiler-dom": "3.5.13"
"@vue/shared": "3.5.14",
"@vue/compiler-dom": "3.5.14"
}
}
+32 -20
View File
@@ -1,5 +1,5 @@
/**
* @vue/reactivity v3.5.13
* @vue/reactivity v3.5.14
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/
@@ -21,6 +21,10 @@ class EffectScope {
* @internal
*/
this._active = true;
/**
* @internal track `on` calls, allow `on` call multiple times
*/
this._on = 0;
/**
* @internal
*/
@@ -91,14 +95,20 @@ class EffectScope {
* @internal
*/
on() {
activeEffectScope = this;
if (++this._on === 1) {
this.prevScope = activeEffectScope;
activeEffectScope = this;
}
}
/**
* This should only be called on non-detached scopes
* @internal
*/
off() {
activeEffectScope = this.parent;
if (this._on > 0 && --this._on === 0) {
activeEffectScope = this.prevScope;
this.prevScope = void 0;
}
}
stop(fromParent) {
if (this._active) {
@@ -160,7 +170,9 @@ const EffectFlags = {
"ALLOW_RECURSE": 32,
"32": "ALLOW_RECURSE",
"PAUSED": 64,
"64": "PAUSED"
"64": "PAUSED",
"EVALUATED": 128,
"128": "EVALUATED"
};
const pausedQueueEffects = /* @__PURE__ */ new WeakSet();
class ReactiveEffect {
@@ -196,7 +208,7 @@ class ReactiveEffect {
}
resume() {
if (this.flags & 64) {
this.flags &= ~64;
this.flags &= -65;
if (pausedQueueEffects.has(this)) {
pausedQueueEffects.delete(this);
this.trigger();
@@ -236,7 +248,7 @@ class ReactiveEffect {
cleanupDeps(this);
activeSub = prevEffect;
shouldTrack = prevShouldTrack;
this.flags &= ~2;
this.flags &= -3;
}
}
stop() {
@@ -247,7 +259,7 @@ class ReactiveEffect {
this.deps = this.depsTail = void 0;
cleanupEffect(this);
this.onStop && this.onStop();
this.flags &= ~1;
this.flags &= -2;
}
}
trigger() {
@@ -297,7 +309,7 @@ function endBatch() {
while (e) {
const next = e.next;
e.next = void 0;
e.flags &= ~8;
e.flags &= -9;
e = next;
}
}
@@ -308,7 +320,7 @@ function endBatch() {
while (e) {
const next = e.next;
e.next = void 0;
e.flags &= ~8;
e.flags &= -9;
if (e.flags & 1) {
try {
;
@@ -364,17 +376,16 @@ function refreshComputed(computed) {
if (computed.flags & 4 && !(computed.flags & 16)) {
return;
}
computed.flags &= ~16;
computed.flags &= -17;
if (computed.globalVersion === globalVersion) {
return;
}
computed.globalVersion = globalVersion;
const dep = computed.dep;
computed.flags |= 2;
if (dep.version > 0 && !computed.isSSR && computed.deps && !isDirty(computed)) {
computed.flags &= ~2;
if (!computed.isSSR && computed.flags & 128 && (!computed.deps && !computed._dirty || !isDirty(computed))) {
return;
}
computed.flags |= 2;
const dep = computed.dep;
const prevSub = activeSub;
const prevShouldTrack = shouldTrack;
activeSub = computed;
@@ -383,6 +394,7 @@ function refreshComputed(computed) {
prepareDeps(computed);
const value = computed.fn(computed._value);
if (dep.version === 0 || shared.hasChanged(value, computed._value)) {
computed.flags |= 128;
computed._value = value;
dep.version++;
}
@@ -393,7 +405,7 @@ function refreshComputed(computed) {
activeSub = prevSub;
shouldTrack = prevShouldTrack;
cleanupDeps(computed);
computed.flags &= ~2;
computed.flags &= -3;
}
}
function removeSub(link, soft = false) {
@@ -412,7 +424,7 @@ function removeSub(link, soft = false) {
if (dep.subs === link) {
dep.subs = prevSub;
if (!prevSub && dep.computed) {
dep.computed.flags &= ~4;
dep.computed.flags &= -5;
for (let l = dep.computed.deps; l; l = l.nextDep) {
removeSub(l, true);
}
@@ -1358,14 +1370,14 @@ function createReactiveObject(target, isReadonly2, baseHandlers, collectionHandl
if (target["__v_raw"] && !(isReadonly2 && target["__v_isReactive"])) {
return target;
}
const existingProxy = proxyMap.get(target);
if (existingProxy) {
return existingProxy;
}
const targetType = getTargetType(target);
if (targetType === 0 /* INVALID */) {
return target;
}
const existingProxy = proxyMap.get(target);
if (existingProxy) {
return existingProxy;
}
const proxy = new Proxy(
target,
targetType === 2 /* COLLECTION */ ? collectionHandlers : baseHandlers
+32 -20
View File
@@ -1,5 +1,5 @@
/**
* @vue/reactivity v3.5.13
* @vue/reactivity v3.5.14
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/
@@ -17,6 +17,10 @@ class EffectScope {
* @internal
*/
this._active = true;
/**
* @internal track `on` calls, allow `on` call multiple times
*/
this._on = 0;
/**
* @internal
*/
@@ -85,14 +89,20 @@ class EffectScope {
* @internal
*/
on() {
activeEffectScope = this;
if (++this._on === 1) {
this.prevScope = activeEffectScope;
activeEffectScope = this;
}
}
/**
* This should only be called on non-detached scopes
* @internal
*/
off() {
activeEffectScope = this.parent;
if (this._on > 0 && --this._on === 0) {
activeEffectScope = this.prevScope;
this.prevScope = void 0;
}
}
stop(fromParent) {
if (this._active) {
@@ -150,7 +160,9 @@ const EffectFlags = {
"ALLOW_RECURSE": 32,
"32": "ALLOW_RECURSE",
"PAUSED": 64,
"64": "PAUSED"
"64": "PAUSED",
"EVALUATED": 128,
"128": "EVALUATED"
};
const pausedQueueEffects = /* @__PURE__ */ new WeakSet();
class ReactiveEffect {
@@ -186,7 +198,7 @@ class ReactiveEffect {
}
resume() {
if (this.flags & 64) {
this.flags &= ~64;
this.flags &= -65;
if (pausedQueueEffects.has(this)) {
pausedQueueEffects.delete(this);
this.trigger();
@@ -221,7 +233,7 @@ class ReactiveEffect {
cleanupDeps(this);
activeSub = prevEffect;
shouldTrack = prevShouldTrack;
this.flags &= ~2;
this.flags &= -3;
}
}
stop() {
@@ -232,7 +244,7 @@ class ReactiveEffect {
this.deps = this.depsTail = void 0;
cleanupEffect(this);
this.onStop && this.onStop();
this.flags &= ~1;
this.flags &= -2;
}
}
trigger() {
@@ -282,7 +294,7 @@ function endBatch() {
while (e) {
const next = e.next;
e.next = void 0;
e.flags &= ~8;
e.flags &= -9;
e = next;
}
}
@@ -293,7 +305,7 @@ function endBatch() {
while (e) {
const next = e.next;
e.next = void 0;
e.flags &= ~8;
e.flags &= -9;
if (e.flags & 1) {
try {
;
@@ -349,17 +361,16 @@ function refreshComputed(computed) {
if (computed.flags & 4 && !(computed.flags & 16)) {
return;
}
computed.flags &= ~16;
computed.flags &= -17;
if (computed.globalVersion === globalVersion) {
return;
}
computed.globalVersion = globalVersion;
const dep = computed.dep;
computed.flags |= 2;
if (dep.version > 0 && !computed.isSSR && computed.deps && !isDirty(computed)) {
computed.flags &= ~2;
if (!computed.isSSR && computed.flags & 128 && (!computed.deps && !computed._dirty || !isDirty(computed))) {
return;
}
computed.flags |= 2;
const dep = computed.dep;
const prevSub = activeSub;
const prevShouldTrack = shouldTrack;
activeSub = computed;
@@ -368,6 +379,7 @@ function refreshComputed(computed) {
prepareDeps(computed);
const value = computed.fn(computed._value);
if (dep.version === 0 || shared.hasChanged(value, computed._value)) {
computed.flags |= 128;
computed._value = value;
dep.version++;
}
@@ -378,7 +390,7 @@ function refreshComputed(computed) {
activeSub = prevSub;
shouldTrack = prevShouldTrack;
cleanupDeps(computed);
computed.flags &= ~2;
computed.flags &= -3;
}
}
function removeSub(link, soft = false) {
@@ -394,7 +406,7 @@ function removeSub(link, soft = false) {
if (dep.subs === link) {
dep.subs = prevSub;
if (!prevSub && dep.computed) {
dep.computed.flags &= ~4;
dep.computed.flags &= -5;
for (let l = dep.computed.deps; l; l = l.nextDep) {
removeSub(l, true);
}
@@ -1254,14 +1266,14 @@ function createReactiveObject(target, isReadonly2, baseHandlers, collectionHandl
if (target["__v_raw"] && !(isReadonly2 && target["__v_isReactive"])) {
return target;
}
const existingProxy = proxyMap.get(target);
if (existingProxy) {
return existingProxy;
}
const targetType = getTargetType(target);
if (targetType === 0 /* INVALID */) {
return target;
}
const existingProxy = proxyMap.get(target);
if (existingProxy) {
return existingProxy;
}
const proxy = new Proxy(
target,
targetType === 2 /* COLLECTION */ ? collectionHandlers : baseHandlers
+19 -16
View File
@@ -47,9 +47,9 @@ export type ShallowReactive<T> = T & {
[ShallowReactiveMarker]?: true;
};
/**
* Shallow version of {@link reactive()}.
* Shallow version of {@link reactive}.
*
* Unlike {@link reactive()}, there is no deep conversion: only root-level
* Unlike {@link reactive}, there is no deep conversion: only root-level
* properties are reactive for a shallow reactive object. Property values are
* stored and exposed as-is - this also means properties with ref values will
* not be automatically unwrapped.
@@ -87,7 +87,7 @@ export type DeepReadonly<T> = T extends Builtin ? T : T extends Map<infer K, inf
* the original.
*
* A readonly proxy is deep: any nested property accessed will be readonly as
* well. It also has the same ref-unwrapping behavior as {@link reactive()},
* well. It also has the same ref-unwrapping behavior as {@link reactive},
* except the unwrapped values will also be made readonly.
*
* @example
@@ -113,9 +113,9 @@ export type DeepReadonly<T> = T extends Builtin ? T : T extends Map<infer K, inf
*/
export declare function readonly<T extends object>(target: T): DeepReadonly<UnwrapNestedRefs<T>>;
/**
* Shallow version of {@link readonly()}.
* Shallow version of {@link readonly}.
*
* Unlike {@link readonly()}, there is no deep conversion: only root-level
* Unlike {@link readonly}, there is no deep conversion: only root-level
* properties are made readonly. Property values are stored and exposed as-is -
* this also means properties with ref values will not be automatically
* unwrapped.
@@ -144,8 +144,8 @@ export declare function readonly<T extends object>(target: T): DeepReadonly<Unwr
*/
export declare function shallowReadonly<T extends object>(target: T): Readonly<T>;
/**
* Checks if an object is a proxy created by {@link reactive()} or
* {@link shallowReactive()} (or {@link ref()} in some cases).
* Checks if an object is a proxy created by {@link reactive} or
* {@link shallowReactive} (or {@link ref} in some cases).
*
* @example
* ```js
@@ -167,7 +167,7 @@ export declare function isReactive(value: unknown): boolean;
* readonly object can change, but they can't be assigned directly via the
* passed object.
*
* The proxies created by {@link readonly()} and {@link shallowReadonly()} are
* The proxies created by {@link readonly} and {@link shallowReadonly} are
* both considered readonly, as is a computed ref without a set function.
*
* @param value - The value to check.
@@ -177,7 +177,7 @@ export declare function isReadonly(value: unknown): boolean;
export declare function isShallow(value: unknown): boolean;
/**
* Checks if an object is a proxy created by {@link reactive},
* {@link readonly}, {@link shallowReactive} or {@link shallowReadonly()}.
* {@link readonly}, {@link shallowReactive} or {@link shallowReadonly}.
*
* @param value - The value to check.
* @see {@link https://vuejs.org/api/reactivity-utilities.html#isproxy}
@@ -187,8 +187,8 @@ export declare function isProxy(value: any): boolean;
* Returns the raw, original object of a Vue-created proxy.
*
* `toRaw()` can return the original object from proxies created by
* {@link reactive()}, {@link readonly()}, {@link shallowReactive()} or
* {@link shallowReadonly()}.
* {@link reactive}, {@link readonly}, {@link shallowReactive} or
* {@link shallowReadonly}.
*
* This is an escape hatch that can be used to temporarily read without
* incurring proxy access / tracking overhead or write without triggering
@@ -225,7 +225,7 @@ export type Raw<T> = T & {
* ```
*
* **Warning:** `markRaw()` together with the shallow APIs such as
* {@link shallowReactive()} allow you to selectively opt-out of the default
* {@link shallowReactive} allow you to selectively opt-out of the default
* deep reactive/readonly conversion and embed raw, non-proxied objects in your
* state graph.
*
@@ -281,7 +281,8 @@ export declare enum EffectFlags {
NOTIFIED = 8,
DIRTY = 16,
ALLOW_RECURSE = 32,
PAUSED = 64
PAUSED = 64,
EVALUATED = 128
}
/**
* Subscriber is a type that tracks (or subscribes to) a list of deps.
@@ -447,7 +448,7 @@ export type ShallowRef<T = any, S = T> = Ref<T, S> & {
[ShallowRefMarker]?: true;
};
/**
* Shallow version of {@link ref()}.
* Shallow version of {@link ref}.
*
* @example
* ```js
@@ -512,7 +513,7 @@ export type MaybeRefOrGetter<T = any> = MaybeRef<T> | ComputedRef<T> | (() => T)
export declare function unref<T>(ref: MaybeRef<T> | ComputedRef<T>): T;
/**
* Normalizes values / refs / getters to values.
* This is similar to {@link unref()}, except that it also normalizes getters.
* This is similar to {@link unref}, except that it also normalizes getters.
* If the argument is a getter, it will be invoked and its return value will
* be returned.
*
@@ -554,7 +555,7 @@ export type ToRefs<T = any> = {
/**
* Converts a reactive object to a plain object where each property of the
* resulting object is a ref pointing to the corresponding property of the
* original object. Each individual ref is created using {@link toRef()}.
* original object. Each individual ref is created using {@link toRef}.
*
* @param object - Reactive object to be made into an object of linked refs.
* @see {@link https://vuejs.org/api/reactivity-utilities.html#torefs}
@@ -672,6 +673,7 @@ export declare class EffectScope {
*/
resume(): void;
run<T>(fn: () => T): T | undefined;
prevScope: EffectScope | undefined;
stop(fromParent?: boolean): void;
}
/**
@@ -752,3 +754,4 @@ export declare function onWatcherCleanup(cleanupFn: () => void, failSilently?: b
export declare function watch(source: WatchSource | WatchSource[] | WatchEffect | object, cb?: WatchCallback | null, options?: WatchOptions): WatchHandle;
export declare function traverse(value: unknown, depth?: number, seen?: Set<unknown>): unknown;
+32 -20
View File
@@ -1,5 +1,5 @@
/**
* @vue/reactivity v3.5.13
* @vue/reactivity v3.5.14
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/
@@ -69,6 +69,10 @@ class EffectScope {
* @internal
*/
this._active = true;
/**
* @internal track `on` calls, allow `on` call multiple times
*/
this._on = 0;
/**
* @internal
*/
@@ -139,14 +143,20 @@ class EffectScope {
* @internal
*/
on() {
activeEffectScope = this;
if (++this._on === 1) {
this.prevScope = activeEffectScope;
activeEffectScope = this;
}
}
/**
* This should only be called on non-detached scopes
* @internal
*/
off() {
activeEffectScope = this.parent;
if (this._on > 0 && --this._on === 0) {
activeEffectScope = this.prevScope;
this.prevScope = void 0;
}
}
stop(fromParent) {
if (this._active) {
@@ -208,7 +218,9 @@ const EffectFlags = {
"ALLOW_RECURSE": 32,
"32": "ALLOW_RECURSE",
"PAUSED": 64,
"64": "PAUSED"
"64": "PAUSED",
"EVALUATED": 128,
"128": "EVALUATED"
};
const pausedQueueEffects = /* @__PURE__ */ new WeakSet();
class ReactiveEffect {
@@ -244,7 +256,7 @@ class ReactiveEffect {
}
resume() {
if (this.flags & 64) {
this.flags &= ~64;
this.flags &= -65;
if (pausedQueueEffects.has(this)) {
pausedQueueEffects.delete(this);
this.trigger();
@@ -284,7 +296,7 @@ class ReactiveEffect {
cleanupDeps(this);
activeSub = prevEffect;
shouldTrack = prevShouldTrack;
this.flags &= ~2;
this.flags &= -3;
}
}
stop() {
@@ -295,7 +307,7 @@ class ReactiveEffect {
this.deps = this.depsTail = void 0;
cleanupEffect(this);
this.onStop && this.onStop();
this.flags &= ~1;
this.flags &= -2;
}
}
trigger() {
@@ -345,7 +357,7 @@ function endBatch() {
while (e) {
const next = e.next;
e.next = void 0;
e.flags &= ~8;
e.flags &= -9;
e = next;
}
}
@@ -356,7 +368,7 @@ function endBatch() {
while (e) {
const next = e.next;
e.next = void 0;
e.flags &= ~8;
e.flags &= -9;
if (e.flags & 1) {
try {
;
@@ -412,17 +424,16 @@ function refreshComputed(computed) {
if (computed.flags & 4 && !(computed.flags & 16)) {
return;
}
computed.flags &= ~16;
computed.flags &= -17;
if (computed.globalVersion === globalVersion) {
return;
}
computed.globalVersion = globalVersion;
const dep = computed.dep;
computed.flags |= 2;
if (dep.version > 0 && !computed.isSSR && computed.deps && !isDirty(computed)) {
computed.flags &= ~2;
if (!computed.isSSR && computed.flags & 128 && (!computed.deps && !computed._dirty || !isDirty(computed))) {
return;
}
computed.flags |= 2;
const dep = computed.dep;
const prevSub = activeSub;
const prevShouldTrack = shouldTrack;
activeSub = computed;
@@ -431,6 +442,7 @@ function refreshComputed(computed) {
prepareDeps(computed);
const value = computed.fn(computed._value);
if (dep.version === 0 || hasChanged(value, computed._value)) {
computed.flags |= 128;
computed._value = value;
dep.version++;
}
@@ -441,7 +453,7 @@ function refreshComputed(computed) {
activeSub = prevSub;
shouldTrack = prevShouldTrack;
cleanupDeps(computed);
computed.flags &= ~2;
computed.flags &= -3;
}
}
function removeSub(link, soft = false) {
@@ -460,7 +472,7 @@ function removeSub(link, soft = false) {
if (dep.subs === link) {
dep.subs = prevSub;
if (!prevSub && dep.computed) {
dep.computed.flags &= ~4;
dep.computed.flags &= -5;
for (let l = dep.computed.deps; l; l = l.nextDep) {
removeSub(l, true);
}
@@ -1406,14 +1418,14 @@ function createReactiveObject(target, isReadonly2, baseHandlers, collectionHandl
if (target["__v_raw"] && !(isReadonly2 && target["__v_isReactive"])) {
return target;
}
const existingProxy = proxyMap.get(target);
if (existingProxy) {
return existingProxy;
}
const targetType = getTargetType(target);
if (targetType === 0 /* INVALID */) {
return target;
}
const existingProxy = proxyMap.get(target);
if (existingProxy) {
return existingProxy;
}
const proxy = new Proxy(
target,
targetType === 2 /* COLLECTION */ ? collectionHandlers : baseHandlers
File diff suppressed because one or more lines are too long
+33 -21
View File
@@ -1,9 +1,9 @@
/**
* @vue/reactivity v3.5.13
* @vue/reactivity v3.5.14
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/
import { hasChanged, extend, isArray, isIntegerKey, isSymbol, isMap, hasOwn, isObject, makeMap, toRawType, capitalize, def, isFunction, EMPTY_OBJ, isSet, isPlainObject, NOOP, remove } from '@vue/shared';
import { extend, hasChanged, isArray, isIntegerKey, isSymbol, isMap, hasOwn, makeMap, isObject, capitalize, toRawType, def, isFunction, EMPTY_OBJ, isSet, isPlainObject, remove, NOOP } from '@vue/shared';
function warn(msg, ...args) {
console.warn(`[Vue warn] ${msg}`, ...args);
@@ -17,6 +17,10 @@ class EffectScope {
* @internal
*/
this._active = true;
/**
* @internal track `on` calls, allow `on` call multiple times
*/
this._on = 0;
/**
* @internal
*/
@@ -87,14 +91,20 @@ class EffectScope {
* @internal
*/
on() {
activeEffectScope = this;
if (++this._on === 1) {
this.prevScope = activeEffectScope;
activeEffectScope = this;
}
}
/**
* This should only be called on non-detached scopes
* @internal
*/
off() {
activeEffectScope = this.parent;
if (this._on > 0 && --this._on === 0) {
activeEffectScope = this.prevScope;
this.prevScope = void 0;
}
}
stop(fromParent) {
if (this._active) {
@@ -156,7 +166,9 @@ const EffectFlags = {
"ALLOW_RECURSE": 32,
"32": "ALLOW_RECURSE",
"PAUSED": 64,
"64": "PAUSED"
"64": "PAUSED",
"EVALUATED": 128,
"128": "EVALUATED"
};
const pausedQueueEffects = /* @__PURE__ */ new WeakSet();
class ReactiveEffect {
@@ -192,7 +204,7 @@ class ReactiveEffect {
}
resume() {
if (this.flags & 64) {
this.flags &= ~64;
this.flags &= -65;
if (pausedQueueEffects.has(this)) {
pausedQueueEffects.delete(this);
this.trigger();
@@ -232,7 +244,7 @@ class ReactiveEffect {
cleanupDeps(this);
activeSub = prevEffect;
shouldTrack = prevShouldTrack;
this.flags &= ~2;
this.flags &= -3;
}
}
stop() {
@@ -243,7 +255,7 @@ class ReactiveEffect {
this.deps = this.depsTail = void 0;
cleanupEffect(this);
this.onStop && this.onStop();
this.flags &= ~1;
this.flags &= -2;
}
}
trigger() {
@@ -293,7 +305,7 @@ function endBatch() {
while (e) {
const next = e.next;
e.next = void 0;
e.flags &= ~8;
e.flags &= -9;
e = next;
}
}
@@ -304,7 +316,7 @@ function endBatch() {
while (e) {
const next = e.next;
e.next = void 0;
e.flags &= ~8;
e.flags &= -9;
if (e.flags & 1) {
try {
;
@@ -360,17 +372,16 @@ function refreshComputed(computed) {
if (computed.flags & 4 && !(computed.flags & 16)) {
return;
}
computed.flags &= ~16;
computed.flags &= -17;
if (computed.globalVersion === globalVersion) {
return;
}
computed.globalVersion = globalVersion;
const dep = computed.dep;
computed.flags |= 2;
if (dep.version > 0 && !computed.isSSR && computed.deps && !isDirty(computed)) {
computed.flags &= ~2;
if (!computed.isSSR && computed.flags & 128 && (!computed.deps && !computed._dirty || !isDirty(computed))) {
return;
}
computed.flags |= 2;
const dep = computed.dep;
const prevSub = activeSub;
const prevShouldTrack = shouldTrack;
activeSub = computed;
@@ -379,6 +390,7 @@ function refreshComputed(computed) {
prepareDeps(computed);
const value = computed.fn(computed._value);
if (dep.version === 0 || hasChanged(value, computed._value)) {
computed.flags |= 128;
computed._value = value;
dep.version++;
}
@@ -389,7 +401,7 @@ function refreshComputed(computed) {
activeSub = prevSub;
shouldTrack = prevShouldTrack;
cleanupDeps(computed);
computed.flags &= ~2;
computed.flags &= -3;
}
}
function removeSub(link, soft = false) {
@@ -408,7 +420,7 @@ function removeSub(link, soft = false) {
if (dep.subs === link) {
dep.subs = prevSub;
if (!prevSub && dep.computed) {
dep.computed.flags &= ~4;
dep.computed.flags &= -5;
for (let l = dep.computed.deps; l; l = l.nextDep) {
removeSub(l, true);
}
@@ -1358,14 +1370,14 @@ function createReactiveObject(target, isReadonly2, baseHandlers, collectionHandl
if (target["__v_raw"] && !(isReadonly2 && target["__v_isReactive"])) {
return target;
}
const existingProxy = proxyMap.get(target);
if (existingProxy) {
return existingProxy;
}
const targetType = getTargetType(target);
if (targetType === 0 /* INVALID */) {
return target;
}
const existingProxy = proxyMap.get(target);
if (existingProxy) {
return existingProxy;
}
const proxy = new Proxy(
target,
targetType === 2 /* COLLECTION */ ? collectionHandlers : baseHandlers
+32 -20
View File
@@ -1,5 +1,5 @@
/**
* @vue/reactivity v3.5.13
* @vue/reactivity v3.5.14
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/
@@ -72,6 +72,10 @@ var VueReactivity = (function (exports) {
* @internal
*/
this._active = true;
/**
* @internal track `on` calls, allow `on` call multiple times
*/
this._on = 0;
/**
* @internal
*/
@@ -142,14 +146,20 @@ var VueReactivity = (function (exports) {
* @internal
*/
on() {
activeEffectScope = this;
if (++this._on === 1) {
this.prevScope = activeEffectScope;
activeEffectScope = this;
}
}
/**
* This should only be called on non-detached scopes
* @internal
*/
off() {
activeEffectScope = this.parent;
if (this._on > 0 && --this._on === 0) {
activeEffectScope = this.prevScope;
this.prevScope = void 0;
}
}
stop(fromParent) {
if (this._active) {
@@ -211,7 +221,9 @@ var VueReactivity = (function (exports) {
"ALLOW_RECURSE": 32,
"32": "ALLOW_RECURSE",
"PAUSED": 64,
"64": "PAUSED"
"64": "PAUSED",
"EVALUATED": 128,
"128": "EVALUATED"
};
const pausedQueueEffects = /* @__PURE__ */ new WeakSet();
class ReactiveEffect {
@@ -247,7 +259,7 @@ var VueReactivity = (function (exports) {
}
resume() {
if (this.flags & 64) {
this.flags &= ~64;
this.flags &= -65;
if (pausedQueueEffects.has(this)) {
pausedQueueEffects.delete(this);
this.trigger();
@@ -287,7 +299,7 @@ var VueReactivity = (function (exports) {
cleanupDeps(this);
activeSub = prevEffect;
shouldTrack = prevShouldTrack;
this.flags &= ~2;
this.flags &= -3;
}
}
stop() {
@@ -298,7 +310,7 @@ var VueReactivity = (function (exports) {
this.deps = this.depsTail = void 0;
cleanupEffect(this);
this.onStop && this.onStop();
this.flags &= ~1;
this.flags &= -2;
}
}
trigger() {
@@ -348,7 +360,7 @@ var VueReactivity = (function (exports) {
while (e) {
const next = e.next;
e.next = void 0;
e.flags &= ~8;
e.flags &= -9;
e = next;
}
}
@@ -359,7 +371,7 @@ var VueReactivity = (function (exports) {
while (e) {
const next = e.next;
e.next = void 0;
e.flags &= ~8;
e.flags &= -9;
if (e.flags & 1) {
try {
;
@@ -415,17 +427,16 @@ var VueReactivity = (function (exports) {
if (computed.flags & 4 && !(computed.flags & 16)) {
return;
}
computed.flags &= ~16;
computed.flags &= -17;
if (computed.globalVersion === globalVersion) {
return;
}
computed.globalVersion = globalVersion;
const dep = computed.dep;
computed.flags |= 2;
if (dep.version > 0 && !computed.isSSR && computed.deps && !isDirty(computed)) {
computed.flags &= ~2;
if (!computed.isSSR && computed.flags & 128 && (!computed.deps && !computed._dirty || !isDirty(computed))) {
return;
}
computed.flags |= 2;
const dep = computed.dep;
const prevSub = activeSub;
const prevShouldTrack = shouldTrack;
activeSub = computed;
@@ -434,6 +445,7 @@ var VueReactivity = (function (exports) {
prepareDeps(computed);
const value = computed.fn(computed._value);
if (dep.version === 0 || hasChanged(value, computed._value)) {
computed.flags |= 128;
computed._value = value;
dep.version++;
}
@@ -444,7 +456,7 @@ var VueReactivity = (function (exports) {
activeSub = prevSub;
shouldTrack = prevShouldTrack;
cleanupDeps(computed);
computed.flags &= ~2;
computed.flags &= -3;
}
}
function removeSub(link, soft = false) {
@@ -463,7 +475,7 @@ var VueReactivity = (function (exports) {
if (dep.subs === link) {
dep.subs = prevSub;
if (!prevSub && dep.computed) {
dep.computed.flags &= ~4;
dep.computed.flags &= -5;
for (let l = dep.computed.deps; l; l = l.nextDep) {
removeSub(l, true);
}
@@ -1409,14 +1421,14 @@ var VueReactivity = (function (exports) {
if (target["__v_raw"] && !(isReadonly2 && target["__v_isReactive"])) {
return target;
}
const existingProxy = proxyMap.get(target);
if (existingProxy) {
return existingProxy;
}
const targetType = getTargetType(target);
if (targetType === 0 /* INVALID */) {
return target;
}
const existingProxy = proxyMap.get(target);
if (existingProxy) {
return existingProxy;
}
const proxy = new Proxy(
target,
targetType === 2 /* COLLECTION */ ? collectionHandlers : baseHandlers
File diff suppressed because one or more lines are too long
+2 -2
View File
@@ -1,6 +1,6 @@
{
"name": "@vue/reactivity",
"version": "3.5.13",
"version": "3.5.14",
"description": "@vue/reactivity",
"main": "index.js",
"module": "dist/reactivity.esm-bundler.js",
@@ -50,6 +50,6 @@
},
"homepage": "https://github.com/vuejs/core/tree/main/packages/reactivity#readme",
"dependencies": {
"@vue/shared": "3.5.13"
"@vue/shared": "3.5.14"
}
}
+57 -29
View File
@@ -1,5 +1,5 @@
/**
* @vue/runtime-core v3.5.13
* @vue/runtime-core v3.5.14
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/
@@ -348,11 +348,11 @@ function flushPreFlushCbs(instance, seen, i = flushIndex + 1) {
queue.splice(i, 1);
i--;
if (cb.flags & 4) {
cb.flags &= ~1;
cb.flags &= -2;
}
cb();
if (!(cb.flags & 4)) {
cb.flags &= ~1;
cb.flags &= -2;
}
}
}
@@ -377,10 +377,10 @@ function flushPostFlushCbs(seen) {
continue;
}
if (cb.flags & 4) {
cb.flags &= ~1;
cb.flags &= -2;
}
if (!(cb.flags & 8)) cb();
cb.flags &= ~1;
cb.flags &= -2;
}
activePostFlushCbs = null;
postFlushIndex = 0;
@@ -416,7 +416,7 @@ function flushJobs(seen) {
for (; flushIndex < queue.length; flushIndex++) {
const job = queue[flushIndex];
if (job) {
job.flags &= ~1;
job.flags &= -2;
}
}
flushIndex = -1;
@@ -905,7 +905,7 @@ const TeleportImpl = {
namespace,
slotScopeIds
);
traverseStaticChildren(n1, n2, true);
traverseStaticChildren(n1, n2, false);
} else if (!optimized) {
patchChildren(
n1,
@@ -2677,7 +2677,7 @@ const KeepAliveImpl = {
);
const { include, exclude, max } = props;
if (include && (!name || !matches(include, name)) || exclude && name && matches(exclude, name)) {
vnode.shapeFlag &= ~256;
vnode.shapeFlag &= -257;
current = vnode;
return rawVNode;
}
@@ -2764,8 +2764,8 @@ function injectToKeepAliveRoot(hook, type, target, keepAliveRoot) {
}, target);
}
function resetShapeFlag(vnode) {
vnode.shapeFlag &= ~256;
vnode.shapeFlag &= ~512;
vnode.shapeFlag &= -257;
vnode.shapeFlag &= -513;
}
function getInnerChild(vnode) {
return vnode.shapeFlag & 128 ? vnode.ssContent : vnode;
@@ -2880,14 +2880,16 @@ function renderList(source, renderItem, cache, index) {
if (sourceIsArray || shared.isString(source)) {
const sourceIsReactiveArray = sourceIsArray && reactivity.isReactive(source);
let needsWrap = false;
let isReadonlySource = false;
if (sourceIsReactiveArray) {
needsWrap = !reactivity.isShallow(source);
isReadonlySource = reactivity.isReadonly(source);
source = reactivity.shallowReadArray(source);
}
ret = new Array(source.length);
for (let i = 0, l = source.length; i < l; i++) {
ret[i] = renderItem(
needsWrap ? reactivity.toReactive(source[i]) : source[i],
needsWrap ? isReadonlySource ? reactivity.toReadonly(reactivity.toReactive(source[i])) : reactivity.toReactive(source[i]) : source[i],
i,
void 0,
cached && cached[i]
@@ -3909,11 +3911,9 @@ function createAppAPI(render, hydrate) {
}
{
context.reload = () => {
render(
cloneVNode(vnode),
rootContainer,
namespace
);
const cloned = cloneVNode(vnode);
cloned.el = null;
render(cloned, rootContainer, namespace);
};
}
if (isHydrate && hydrate) {
@@ -4436,7 +4436,7 @@ const normalizeSlot = (key, rawSlot, ctx) => {
return rawSlot;
}
const normalized = withCtx((...args) => {
if (currentInstance && (!ctx || ctx.root === currentInstance.root)) {
if (currentInstance && !(ctx === null && currentRenderingInstance) && !(ctx && ctx.root !== currentInstance.root)) {
warn$1(
`Slot "${key}" invoked outside of the render function: this will not track dependencies used in the slot. Invoke the slot function inside the render function instead.`
);
@@ -4475,7 +4475,7 @@ const normalizeVNodeSlots = (instance, children) => {
};
const assignSlots = (slots, children, optimized) => {
for (const key in children) {
if (optimized || key !== "_") {
if (optimized || !isInternalKey(key)) {
slots[key] = children[key];
}
}
@@ -5161,8 +5161,8 @@ function baseCreateRenderer(options, createHydrationFns) {
endMeasure(instance, `init`);
}
}
if (isHmrUpdating) initialVNode.el = null;
if (instance.asyncDep) {
if (isHmrUpdating) initialVNode.el = null;
parentSuspense && parentSuspense.registerDep(instance, setupRenderEffect, optimized);
if (!initialVNode.el) {
const placeholder = instance.subTree = createVNode(Comment);
@@ -5724,7 +5724,13 @@ function baseCreateRenderer(options, createHydrationFns) {
queuePostRenderEffect(() => transition.enter(el), parentSuspense);
} else {
const { leave, delayLeave, afterLeave } = transition;
const remove2 = () => hostInsert(el, container, anchor);
const remove2 = () => {
if (vnode.ctx.isUnmounted) {
hostRemove(el);
} else {
hostInsert(el, container, anchor);
}
};
const performLeave = () => {
leave(el, () => {
remove2();
@@ -5757,7 +5763,9 @@ function baseCreateRenderer(options, createHydrationFns) {
optimized = false;
}
if (ref != null) {
reactivity.pauseTracking();
setRef(ref, null, parentSuspense, vnode, true);
reactivity.resetTracking();
}
if (cacheIndex != null) {
parentComponent.renderCache[cacheIndex] = void 0;
@@ -5869,12 +5877,27 @@ function baseCreateRenderer(options, createHydrationFns) {
if (instance.type.__hmrId) {
unregisterHMR(instance);
}
const { bum, scope, job, subTree, um, m, a } = instance;
const {
bum,
scope,
job,
subTree,
um,
m,
a,
parent,
slots: { __: slotCacheKeys }
} = instance;
invalidateMount(m);
invalidateMount(a);
if (bum) {
shared.invokeArrayFns(bum);
}
if (parent && shared.isArray(slotCacheKeys)) {
slotCacheKeys.forEach((v) => {
parent.renderCache[v] = void 0;
});
}
scope.stop();
if (job) {
job.flags |= 8;
@@ -5970,8 +5993,8 @@ function toggleRecurse({ effect, job }, allowed) {
effect.flags |= 32;
job.flags |= 4;
} else {
effect.flags &= ~32;
job.flags &= ~4;
effect.flags &= -33;
job.flags &= -5;
}
}
function needTransition(parentSuspense, transition) {
@@ -5998,6 +6021,9 @@ function traverseStaticChildren(n1, n2, shallow = false) {
if (c2.type === Comment && !c2.el) {
c2.el = c1.el;
}
{
c2.el && (c2.el.__vnode = c2);
}
}
}
}
@@ -7343,8 +7369,8 @@ function isSameVNodeType(n1, n2) {
if (n2.shapeFlag & 6 && n1.component) {
const dirtyInstances = hmrDirtyComponents.get(n2.type);
if (dirtyInstances && dirtyInstances.has(n1.component)) {
n1.shapeFlag &= ~256;
n2.shapeFlag &= ~512;
n1.shapeFlag &= -257;
n2.shapeFlag &= -513;
return false;
}
}
@@ -7805,7 +7831,7 @@ function setupComponent(instance, isSSR = false, optimized = false) {
const { props, children } = instance.vnode;
const isStateful = isStatefulComponent(instance);
initProps(instance, props, isStateful, isSSR);
initSlots(instance, children, optimized);
initSlots(instance, children, optimized || isSSR);
const setupResult = isStateful ? setupStatefulComponent(instance, isSSR) : void 0;
isSSR && setInSSRSetupState(false);
return setupResult;
@@ -8136,13 +8162,15 @@ function initCustomFormatter() {
if (obj.__isVue) {
return ["div", vueStyle, `VueInstance`];
} else if (reactivity.isRef(obj)) {
reactivity.pauseTracking();
const value = obj.value;
reactivity.resetTracking();
return [
"div",
{},
["span", vueStyle, genRefFlag(obj)],
"<",
// avoid debugger accessing value affecting behavior
formatValue("_value" in obj ? obj._value : obj),
formatValue(value),
`>`
];
} else if (reactivity.isReactive(obj)) {
@@ -8323,7 +8351,7 @@ function isMemoSame(cached, memo) {
return true;
}
const version = "3.5.13";
const version = "3.5.14";
const warn = warn$1 ;
const ErrorTypeStrings = ErrorTypeStrings$1 ;
const devtools = devtools$1 ;
+48 -17
View File
@@ -1,5 +1,5 @@
/**
* @vue/runtime-core v3.5.13
* @vue/runtime-core v3.5.14
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/
@@ -213,11 +213,11 @@ function flushPreFlushCbs(instance, seen, i = flushIndex + 1) {
queue.splice(i, 1);
i--;
if (cb.flags & 4) {
cb.flags &= ~1;
cb.flags &= -2;
}
cb();
if (!(cb.flags & 4)) {
cb.flags &= ~1;
cb.flags &= -2;
}
}
}
@@ -236,10 +236,10 @@ function flushPostFlushCbs(seen) {
for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) {
const cb = activePostFlushCbs[postFlushIndex];
if (cb.flags & 4) {
cb.flags &= ~1;
cb.flags &= -2;
}
if (!(cb.flags & 8)) cb();
cb.flags &= ~1;
cb.flags &= -2;
}
activePostFlushCbs = null;
postFlushIndex = 0;
@@ -269,7 +269,7 @@ function flushJobs(seen) {
for (; flushIndex < queue.length; flushIndex++) {
const job = queue[flushIndex];
if (job) {
job.flags &= ~1;
job.flags &= -2;
}
}
flushIndex = -1;
@@ -998,6 +998,9 @@ function getInnerChild$1(vnode) {
}
return vnode;
}
if (vnode.component) {
return vnode.component.subTree;
}
const { shapeFlag, children } = vnode;
if (children) {
if (shapeFlag & 16) {
@@ -2028,7 +2031,7 @@ const KeepAliveImpl = {
);
const { include, exclude, max } = props;
if (include && (!name || !matches(include, name)) || exclude && name && matches(exclude, name)) {
vnode.shapeFlag &= ~256;
vnode.shapeFlag &= -257;
current = vnode;
return rawVNode;
}
@@ -2115,8 +2118,8 @@ function injectToKeepAliveRoot(hook, type, target, keepAliveRoot) {
}, target);
}
function resetShapeFlag(vnode) {
vnode.shapeFlag &= ~256;
vnode.shapeFlag &= ~512;
vnode.shapeFlag &= -257;
vnode.shapeFlag &= -513;
}
function getInnerChild(vnode) {
return vnode.shapeFlag & 128 ? vnode.ssContent : vnode;
@@ -2217,14 +2220,16 @@ function renderList(source, renderItem, cache, index) {
if (sourceIsArray || shared.isString(source)) {
const sourceIsReactiveArray = sourceIsArray && reactivity.isReactive(source);
let needsWrap = false;
let isReadonlySource = false;
if (sourceIsReactiveArray) {
needsWrap = !reactivity.isShallow(source);
isReadonlySource = reactivity.isReadonly(source);
source = reactivity.shallowReadArray(source);
}
ret = new Array(source.length);
for (let i = 0, l = source.length; i < l; i++) {
ret[i] = renderItem(
needsWrap ? reactivity.toReactive(source[i]) : source[i],
needsWrap ? isReadonlySource ? reactivity.toReadonly(reactivity.toReactive(source[i])) : reactivity.toReactive(source[i]) : source[i],
i,
void 0,
cached && cached[i]
@@ -3357,7 +3362,7 @@ const normalizeVNodeSlots = (instance, children) => {
};
const assignSlots = (slots, children, optimized) => {
for (const key in children) {
if (optimized || key !== "_") {
if (optimized || !isInternalKey(key)) {
slots[key] = children[key];
}
}
@@ -4443,7 +4448,13 @@ function baseCreateRenderer(options, createHydrationFns) {
queuePostRenderEffect(() => transition.enter(el), parentSuspense);
} else {
const { leave, delayLeave, afterLeave } = transition;
const remove2 = () => hostInsert(el, container, anchor);
const remove2 = () => {
if (vnode.ctx.isUnmounted) {
hostRemove(el);
} else {
hostInsert(el, container, anchor);
}
};
const performLeave = () => {
leave(el, () => {
remove2();
@@ -4476,7 +4487,9 @@ function baseCreateRenderer(options, createHydrationFns) {
optimized = false;
}
if (ref != null) {
reactivity.pauseTracking();
setRef(ref, null, parentSuspense, vnode, true);
reactivity.resetTracking();
}
if (cacheIndex != null) {
parentComponent.renderCache[cacheIndex] = void 0;
@@ -4577,12 +4590,27 @@ function baseCreateRenderer(options, createHydrationFns) {
hostRemove(end);
};
const unmountComponent = (instance, parentSuspense, doRemove) => {
const { bum, scope, job, subTree, um, m, a } = instance;
const {
bum,
scope,
job,
subTree,
um,
m,
a,
parent,
slots: { __: slotCacheKeys }
} = instance;
invalidateMount(m);
invalidateMount(a);
if (bum) {
shared.invokeArrayFns(bum);
}
if (parent && shared.isArray(slotCacheKeys)) {
slotCacheKeys.forEach((v) => {
parent.renderCache[v] = void 0;
});
}
scope.stop();
if (job) {
job.flags |= 8;
@@ -4675,8 +4703,8 @@ function toggleRecurse({ effect, job }, allowed) {
effect.flags |= 32;
job.flags |= 4;
} else {
effect.flags &= ~32;
job.flags &= ~4;
effect.flags &= -33;
job.flags &= -5;
}
}
function needTransition(parentSuspense, transition) {
@@ -4700,6 +4728,9 @@ function traverseStaticChildren(n1, n2, shallow = false) {
if (c2.type === Text) {
c2.el = c1.el;
}
if (c2.type === Comment && !c2.el) {
c2.el = c1.el;
}
}
}
}
@@ -6275,7 +6306,7 @@ function setupComponent(instance, isSSR = false, optimized = false) {
const { props, children } = instance.vnode;
const isStateful = isStatefulComponent(instance);
initProps(instance, props, isStateful, isSSR);
initSlots(instance, children, optimized);
initSlots(instance, children, optimized || isSSR);
const setupResult = isStateful ? setupStatefulComponent(instance, isSSR) : void 0;
isSSR && setInSSRSetupState(false);
return setupResult;
@@ -6484,7 +6515,7 @@ function isMemoSame(cached, memo) {
return true;
}
const version = "3.5.13";
const version = "3.5.14";
const warn$1 = shared.NOOP;
const ErrorTypeStrings = ErrorTypeStrings$1 ;
const devtools = void 0;
+21 -19
View File
@@ -1,4 +1,4 @@
import { computed as computed$1, Ref, OnCleanup, WatchStopHandle, ShallowUnwrapRef, UnwrapNestedRefs, DebuggerEvent, ComputedGetter, WritableComputedOptions, WatchCallback, ReactiveEffect, DebuggerOptions, WatchEffect, WatchHandle, WatchSource, ReactiveMarker, ShallowRef, WatchErrorCodes, reactive } from '@vue/reactivity';
import { computed as computed$1, Ref, OnCleanup, WatchStopHandle, ShallowUnwrapRef, UnwrapNestedRefs, DebuggerEvent, ComputedGetter, WritableComputedOptions, WatchCallback, ReactiveEffect, DebuggerOptions, WatchSource, WatchHandle, ReactiveMarker, WatchEffect, ShallowRef, WatchErrorCodes, reactive } from '@vue/reactivity';
export { ComputedGetter, ComputedRef, ComputedSetter, CustomRefFactory, DebuggerEvent, DebuggerEventExtraInfo, DebuggerOptions, DeepReadonly, EffectScheduler, EffectScope, MaybeRef, MaybeRefOrGetter, Raw, Reactive, ReactiveEffect, ReactiveEffectOptions, ReactiveEffectRunner, ReactiveFlags, Ref, ShallowReactive, ShallowRef, ShallowUnwrapRef, ToRef, ToRefs, TrackOpTypes, TriggerOpTypes, UnwrapNestedRefs, UnwrapRef, WatchCallback, WatchEffect, WatchHandle, WatchSource, WatchStopHandle, WritableComputedOptions, WritableComputedRef, customRef, effect, effectScope, getCurrentScope, getCurrentWatcher, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onScopeDispose, onWatcherCleanup, proxyRefs, reactive, readonly, ref, shallowReactive, shallowReadonly, shallowRef, stop, toRaw, toRef, toRefs, toValue, triggerRef, unref } from '@vue/reactivity';
import { IfAny, Prettify, LooseRequired, UnionToIntersection, OverloadParameters, IsKeyValues } from '@vue/shared';
export { camelize, capitalize, normalizeClass, normalizeProps, normalizeStyle, toDisplayString, toHandlerKey } from '@vue/shared';
@@ -417,7 +417,7 @@ export interface ObjectDirective<HostElement = any, Value = any, Modifiers exten
}
export type FunctionDirective<HostElement = any, V = any, Modifiers extends string = string, Arg extends string = string> = DirectiveHook<HostElement, any, V, Modifiers, Arg>;
export type Directive<HostElement = any, Value = any, Modifiers extends string = string, Arg extends string = string> = ObjectDirective<HostElement, Value, Modifiers, Arg> | FunctionDirective<HostElement, Value, Modifiers, Arg>;
type DirectiveModifiers<K extends string = string> = Record<K, boolean>;
type DirectiveModifiers<K extends string = string> = Partial<Record<K, boolean>>;
export type DirectiveArguments = Array<[Directive | undefined] | [Directive | undefined, any] | [Directive | undefined, any, string] | [Directive | undefined, any, string | undefined, DirectiveModifiers]>;
/**
* Adds directives to a VNode.
@@ -872,20 +872,20 @@ interface LegacyOptions<Props, D, C extends ComputedOptions, M extends MethodOpt
filters?: Record<string, Function>;
mixins?: Mixin[];
extends?: Extends;
beforeCreate?(): void;
created?(): void;
beforeMount?(): void;
mounted?(): void;
beforeUpdate?(): void;
updated?(): void;
activated?(): void;
deactivated?(): void;
beforeCreate?(): any;
created?(): any;
beforeMount?(): any;
mounted?(): any;
beforeUpdate?(): any;
updated?(): any;
activated?(): any;
deactivated?(): any;
/** @deprecated use `beforeUnmount` instead */
beforeDestroy?(): void;
beforeUnmount?(): void;
beforeDestroy?(): any;
beforeUnmount?(): any;
/** @deprecated use `unmounted` instead */
destroyed?(): void;
unmounted?(): void;
destroyed?(): any;
unmounted?(): any;
renderTracked?: DebuggerHook;
renderTriggered?: DebuggerHook;
errorCaptured?: ErrorCapturedHook;
@@ -1017,8 +1017,8 @@ InjectOptions, InjectKeys, Slots, LocalComponents, Directives, Exposed, Provide>
export interface App<HostElement = any> {
version: string;
config: AppConfig;
use<Options extends unknown[]>(plugin: Plugin<Options>, ...options: Options): this;
use<Options>(plugin: Plugin<Options>, options: Options): this;
use<Options extends unknown[]>(plugin: Plugin<Options>, ...options: NoInfer<Options>): this;
use<Options>(plugin: Plugin<Options>, options: NoInfer<Options>): this;
mixin(mixin: ComponentOptions): this;
component(name: string): Component | undefined;
component<T extends Component | DefineComponent>(name: string, component: T): this;
@@ -1105,7 +1105,7 @@ export type ObjectPlugin<Options = any[]> = {
install: PluginInstallFunction<Options>;
};
export type FunctionPlugin<Options = any[]> = PluginInstallFunction<Options> & Partial<ObjectPlugin<Options>>;
export type Plugin<Options = any[]> = FunctionPlugin<Options> | ObjectPlugin<Options>;
export type Plugin<Options = any[], P extends unknown[] = Options extends unknown[] ? Options : [Options]> = FunctionPlugin<P> | ObjectPlugin<P>;
export type CreateAppFunction<HostElement> = (rootComponent: Component, rootProps?: Data | null) => App<HostElement>;
type TeleportVNode = VNode<RendererNode, RendererElement, TeleportProps>;
@@ -1525,7 +1525,8 @@ export declare function defineAsyncComponent<T extends Component = {
export declare function useModel<M extends PropertyKey, T extends Record<string, any>, K extends keyof T, G = T[K], S = T[K]>(props: T, name: K, options?: DefineModelOptions<T[K], G, S>): ModelRef<T[K], M, G, S>;
export declare function useTemplateRef<T = unknown, Keys extends string = string>(key: Keys): Readonly<ShallowRef<T | null>>;
export type TemplateRef<T = unknown> = Readonly<ShallowRef<T | null>>;
export declare function useTemplateRef<T = unknown, Keys extends string = string>(key: Keys): TemplateRef<T>;
export declare function useId(): string;
@@ -1798,7 +1799,8 @@ declare module '@vue/reactivity' {
export declare const DeprecationTypes: typeof DeprecationTypes$1;
export { type WatchEffectOptions as WatchOptionsBase, createBaseVNode as createElementVNode, };
export { createBaseVNode as createElementVNode, };
export type { WatchEffectOptions as WatchOptionsBase };
// Note: this file is auto concatenated to the end of the bundled d.ts during
// build.
+64 -33
View File
@@ -1,11 +1,11 @@
/**
* @vue/runtime-core v3.5.13
* @vue/runtime-core v3.5.14
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/
import { pauseTracking, resetTracking, isRef, toRaw, traverse, shallowRef, readonly, isReactive, ref, isShallow, shallowReadArray, toReactive, shallowReadonly, track, reactive, shallowReactive, trigger, ReactiveEffect, watch as watch$1, customRef, isProxy, proxyRefs, markRaw, EffectScope, computed as computed$1, isReadonly } from '@vue/reactivity';
import { pauseTracking, resetTracking, isRef, toRaw, traverse, shallowRef, readonly, isReactive, ref, isShallow, isReadonly, shallowReadArray, toReadonly, toReactive, shallowReadonly, track, reactive, shallowReactive, trigger, ReactiveEffect, watch as watch$1, customRef, isProxy, proxyRefs, markRaw, EffectScope, computed as computed$1 } from '@vue/reactivity';
export { EffectScope, ReactiveEffect, TrackOpTypes, TriggerOpTypes, customRef, effect, effectScope, getCurrentScope, getCurrentWatcher, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onScopeDispose, onWatcherCleanup, proxyRefs, reactive, readonly, ref, shallowReactive, shallowReadonly, shallowRef, stop, toRaw, toRef, toRefs, toValue, triggerRef, unref } from '@vue/reactivity';
import { isString, isFunction, isPromise, isArray, EMPTY_OBJ, NOOP, getGlobalThis, extend, isBuiltInDirective, hasOwn, remove, def, isOn, isReservedProp, normalizeClass, stringifyStyle, normalizeStyle, isKnownSvgAttr, isBooleanAttr, isKnownHtmlAttr, includeBooleanAttr, isRenderableAttrValue, getEscapedCssVarName, isObject, isRegExp, invokeArrayFns, toHandlerKey, capitalize, camelize, isSymbol, isGloballyAllowed, NO, hyphenate, EMPTY_ARR, toRawType, makeMap, hasChanged, looseToNumber, isModelListener, toNumber } from '@vue/shared';
import { isString, isFunction, EMPTY_OBJ, isPromise, isArray, NOOP, getGlobalThis, extend, isBuiltInDirective, hasOwn, remove, def, isOn, isReservedProp, normalizeClass, stringifyStyle, normalizeStyle, isKnownSvgAttr, isBooleanAttr, isKnownHtmlAttr, includeBooleanAttr, isRenderableAttrValue, getEscapedCssVarName, isObject, isRegExp, invokeArrayFns, toHandlerKey, camelize, capitalize, isSymbol, isGloballyAllowed, NO, EMPTY_ARR, hyphenate, makeMap, toRawType, hasChanged, looseToNumber, isModelListener, toNumber } from '@vue/shared';
export { camelize, capitalize, normalizeClass, normalizeProps, normalizeStyle, toDisplayString, toHandlerKey } from '@vue/shared';
const stack = [];
@@ -351,11 +351,11 @@ function flushPreFlushCbs(instance, seen, i = flushIndex + 1) {
queue.splice(i, 1);
i--;
if (cb.flags & 4) {
cb.flags &= ~1;
cb.flags &= -2;
}
cb();
if (!(cb.flags & 4)) {
cb.flags &= ~1;
cb.flags &= -2;
}
}
}
@@ -380,10 +380,10 @@ function flushPostFlushCbs(seen) {
continue;
}
if (cb.flags & 4) {
cb.flags &= ~1;
cb.flags &= -2;
}
if (!(cb.flags & 8)) cb();
cb.flags &= ~1;
cb.flags &= -2;
}
activePostFlushCbs = null;
postFlushIndex = 0;
@@ -419,7 +419,7 @@ function flushJobs(seen) {
for (; flushIndex < queue.length; flushIndex++) {
const job = queue[flushIndex];
if (job) {
job.flags &= ~1;
job.flags &= -2;
}
}
flushIndex = -1;
@@ -908,7 +908,7 @@ const TeleportImpl = {
namespace,
slotScopeIds
);
traverseStaticChildren(n1, n2, true);
traverseStaticChildren(n1, n2, !!!(process.env.NODE_ENV !== "production"));
} else if (!optimized) {
patchChildren(
n1,
@@ -1425,7 +1425,7 @@ function getInnerChild$1(vnode) {
}
return vnode;
}
if (!!(process.env.NODE_ENV !== "production") && vnode.component) {
if (vnode.component) {
return vnode.component.subTree;
}
const { shapeFlag, children } = vnode;
@@ -2605,6 +2605,9 @@ const KeepAliveImpl = {
if (!!(process.env.NODE_ENV !== "production") || __VUE_PROD_DEVTOOLS__) {
devtoolsComponentAdded(instance2);
}
if (!!(process.env.NODE_ENV !== "production") && true) {
instance2.__keepAliveStorageContainer = storageContainer;
}
};
function unmount(vnode) {
resetShapeFlag(vnode);
@@ -2692,7 +2695,7 @@ const KeepAliveImpl = {
);
const { include, exclude, max } = props;
if (include && (!name || !matches(include, name)) || exclude && name && matches(exclude, name)) {
vnode.shapeFlag &= ~256;
vnode.shapeFlag &= -257;
current = vnode;
return rawVNode;
}
@@ -2779,8 +2782,8 @@ function injectToKeepAliveRoot(hook, type, target, keepAliveRoot) {
}, target);
}
function resetShapeFlag(vnode) {
vnode.shapeFlag &= ~256;
vnode.shapeFlag &= ~512;
vnode.shapeFlag &= -257;
vnode.shapeFlag &= -513;
}
function getInnerChild(vnode) {
return vnode.shapeFlag & 128 ? vnode.ssContent : vnode;
@@ -2895,14 +2898,16 @@ function renderList(source, renderItem, cache, index) {
if (sourceIsArray || isString(source)) {
const sourceIsReactiveArray = sourceIsArray && isReactive(source);
let needsWrap = false;
let isReadonlySource = false;
if (sourceIsReactiveArray) {
needsWrap = !isShallow(source);
isReadonlySource = isReadonly(source);
source = shallowReadArray(source);
}
ret = new Array(source.length);
for (let i = 0, l = source.length; i < l; i++) {
ret[i] = renderItem(
needsWrap ? toReactive(source[i]) : source[i],
needsWrap ? isReadonlySource ? toReadonly(toReactive(source[i])) : toReactive(source[i]) : source[i],
i,
void 0,
cached && cached[i]
@@ -3928,11 +3933,9 @@ function createAppAPI(render, hydrate) {
}
if (!!(process.env.NODE_ENV !== "production")) {
context.reload = () => {
render(
cloneVNode(vnode),
rootContainer,
namespace
);
const cloned = cloneVNode(vnode);
cloned.el = null;
render(cloned, rootContainer, namespace);
};
}
if (isHydrate && hydrate) {
@@ -4455,7 +4458,7 @@ const normalizeSlot = (key, rawSlot, ctx) => {
return rawSlot;
}
const normalized = withCtx((...args) => {
if (!!(process.env.NODE_ENV !== "production") && currentInstance && (!ctx || ctx.root === currentInstance.root)) {
if (!!(process.env.NODE_ENV !== "production") && currentInstance && !(ctx === null && currentRenderingInstance) && !(ctx && ctx.root !== currentInstance.root)) {
warn$1(
`Slot "${key}" invoked outside of the render function: this will not track dependencies used in the slot. Invoke the slot function inside the render function instead.`
);
@@ -4494,7 +4497,7 @@ const normalizeVNodeSlots = (instance, children) => {
};
const assignSlots = (slots, children, optimized) => {
for (const key in children) {
if (optimized || key !== "_") {
if (optimized || !isInternalKey(key)) {
slots[key] = children[key];
}
}
@@ -5218,8 +5221,8 @@ function baseCreateRenderer(options, createHydrationFns) {
endMeasure(instance, `init`);
}
}
if (!!(process.env.NODE_ENV !== "production") && isHmrUpdating) initialVNode.el = null;
if (instance.asyncDep) {
if (!!(process.env.NODE_ENV !== "production") && isHmrUpdating) initialVNode.el = null;
parentSuspense && parentSuspense.registerDep(instance, setupRenderEffect, optimized);
if (!initialVNode.el) {
const placeholder = instance.subTree = createVNode(Comment);
@@ -5781,7 +5784,13 @@ function baseCreateRenderer(options, createHydrationFns) {
queuePostRenderEffect(() => transition.enter(el), parentSuspense);
} else {
const { leave, delayLeave, afterLeave } = transition;
const remove2 = () => hostInsert(el, container, anchor);
const remove2 = () => {
if (vnode.ctx.isUnmounted) {
hostRemove(el);
} else {
hostInsert(el, container, anchor);
}
};
const performLeave = () => {
leave(el, () => {
remove2();
@@ -5814,7 +5823,9 @@ function baseCreateRenderer(options, createHydrationFns) {
optimized = false;
}
if (ref != null) {
pauseTracking();
setRef(ref, null, parentSuspense, vnode, true);
resetTracking();
}
if (cacheIndex != null) {
parentComponent.renderCache[cacheIndex] = void 0;
@@ -5926,12 +5937,27 @@ function baseCreateRenderer(options, createHydrationFns) {
if (!!(process.env.NODE_ENV !== "production") && instance.type.__hmrId) {
unregisterHMR(instance);
}
const { bum, scope, job, subTree, um, m, a } = instance;
const {
bum,
scope,
job,
subTree,
um,
m,
a,
parent,
slots: { __: slotCacheKeys }
} = instance;
invalidateMount(m);
invalidateMount(a);
if (bum) {
invokeArrayFns(bum);
}
if (parent && isArray(slotCacheKeys)) {
slotCacheKeys.forEach((v) => {
parent.renderCache[v] = void 0;
});
}
scope.stop();
if (job) {
job.flags |= 8;
@@ -6027,8 +6053,8 @@ function toggleRecurse({ effect, job }, allowed) {
effect.flags |= 32;
job.flags |= 4;
} else {
effect.flags &= ~32;
job.flags &= ~4;
effect.flags &= -33;
job.flags &= -5;
}
}
function needTransition(parentSuspense, transition) {
@@ -6052,9 +6078,12 @@ function traverseStaticChildren(n1, n2, shallow = false) {
if (c2.type === Text) {
c2.el = c1.el;
}
if (!!(process.env.NODE_ENV !== "production") && c2.type === Comment && !c2.el) {
if (c2.type === Comment && !c2.el) {
c2.el = c1.el;
}
if (!!(process.env.NODE_ENV !== "production")) {
c2.el && (c2.el.__vnode = c2);
}
}
}
}
@@ -7400,8 +7429,8 @@ function isSameVNodeType(n1, n2) {
if (!!(process.env.NODE_ENV !== "production") && n2.shapeFlag & 6 && n1.component) {
const dirtyInstances = hmrDirtyComponents.get(n2.type);
if (dirtyInstances && dirtyInstances.has(n1.component)) {
n1.shapeFlag &= ~256;
n2.shapeFlag &= ~512;
n1.shapeFlag &= -257;
n2.shapeFlag &= -513;
return false;
}
}
@@ -7864,7 +7893,7 @@ function setupComponent(instance, isSSR = false, optimized = false) {
const { props, children } = instance.vnode;
const isStateful = isStatefulComponent(instance);
initProps(instance, props, isStateful, isSSR);
initSlots(instance, children, optimized);
initSlots(instance, children, optimized || isSSR);
const setupResult = isStateful ? setupStatefulComponent(instance, isSSR) : void 0;
isSSR && setInSSRSetupState(false);
return setupResult;
@@ -8207,13 +8236,15 @@ function initCustomFormatter() {
if (obj.__isVue) {
return ["div", vueStyle, `VueInstance`];
} else if (isRef(obj)) {
pauseTracking();
const value = obj.value;
resetTracking();
return [
"div",
{},
["span", vueStyle, genRefFlag(obj)],
"<",
// avoid debugger accessing value affecting behavior
formatValue("_value" in obj ? obj._value : obj),
formatValue(value),
`>`
];
} else if (isReactive(obj)) {
@@ -8394,7 +8425,7 @@ function isMemoSame(cached, memo) {
return true;
}
const version = "3.5.13";
const version = "3.5.14";
const warn = !!(process.env.NODE_ENV !== "production") ? warn$1 : NOOP;
const ErrorTypeStrings = ErrorTypeStrings$1 ;
const devtools = !!(process.env.NODE_ENV !== "production") || true ? devtools$1 : void 0;
+3 -3
View File
@@ -1,6 +1,6 @@
{
"name": "@vue/runtime-core",
"version": "3.5.13",
"version": "3.5.14",
"description": "@vue/runtime-core",
"main": "index.js",
"module": "dist/runtime-core.esm-bundler.js",
@@ -46,7 +46,7 @@
},
"homepage": "https://github.com/vuejs/core/tree/main/packages/runtime-core#readme",
"dependencies": {
"@vue/shared": "3.5.13",
"@vue/reactivity": "3.5.13"
"@vue/shared": "3.5.14",
"@vue/reactivity": "3.5.14"
}
}
+4 -2
View File
@@ -1,5 +1,5 @@
/**
* @vue/runtime-dom v3.5.13
* @vue/runtime-dom v3.5.14
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/
@@ -739,7 +739,7 @@ function shouldSetAsProp(el, key, value, isSVG) {
}
return false;
}
if (key === "spellcheck" || key === "draggable" || key === "translate") {
if (key === "spellcheck" || key === "draggable" || key === "translate" || key === "autocorrect") {
return false;
}
if (key === "form") {
@@ -1228,6 +1228,7 @@ const TransitionGroupImpl = /* @__PURE__ */ decorate({
instance.vnode.el,
moveClass
)) {
prevChildren = [];
return;
}
prevChildren.forEach(callPendingCbs);
@@ -1251,6 +1252,7 @@ const TransitionGroupImpl = /* @__PURE__ */ decorate({
};
el.addEventListener("transitionend", cb);
});
prevChildren = [];
});
return () => {
const rawProps = runtimeCore.toRaw(props);
+4 -2
View File
@@ -1,5 +1,5 @@
/**
* @vue/runtime-dom v3.5.13
* @vue/runtime-dom v3.5.14
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/
@@ -708,7 +708,7 @@ function shouldSetAsProp(el, key, value, isSVG) {
}
return false;
}
if (key === "spellcheck" || key === "draggable" || key === "translate") {
if (key === "spellcheck" || key === "draggable" || key === "translate" || key === "autocorrect") {
return false;
}
if (key === "form") {
@@ -1135,6 +1135,7 @@ const TransitionGroupImpl = /* @__PURE__ */ decorate({
instance.vnode.el,
moveClass
)) {
prevChildren = [];
return;
}
prevChildren.forEach(callPendingCbs);
@@ -1158,6 +1159,7 @@ const TransitionGroupImpl = /* @__PURE__ */ decorate({
};
el.addEventListener("transitionend", cb);
});
prevChildren = [];
});
return () => {
const rawProps = runtimeCore.toRaw(props);
+2 -1
View File
@@ -1,4 +1,4 @@
import { BaseTransitionProps, FunctionalComponent, ObjectDirective, Directive, App, SetupContext, RenderFunction, ComponentOptions, ComponentObjectPropsOptions, EmitsOptions, ComputedOptions, MethodOptions, ComponentOptionsMixin, ComponentInjectOptions, SlotsType, Component, ComponentProvideOptions, ExtractPropTypes, EmitsToProps, ComponentOptionsBase, CreateComponentPublicInstanceWithMixins, ComponentPublicInstance, DefineComponent, ComponentCustomElementInterface, CreateAppFunction, ConcreteComponent, VNodeRef, RootRenderFunction, RootHydrateFunction } from '@vue/runtime-core';
import { BaseTransitionProps, FunctionalComponent, ObjectDirective, Directive, SetupContext, RenderFunction, ComponentOptions, App, ComponentCustomElementInterface, ConcreteComponent, CreateAppFunction, ComponentObjectPropsOptions, EmitsOptions, ComputedOptions, MethodOptions, ComponentOptionsMixin, ComponentInjectOptions, SlotsType, Component, ComponentProvideOptions, ExtractPropTypes, EmitsToProps, ComponentOptionsBase, CreateComponentPublicInstanceWithMixins, ComponentPublicInstance, DefineComponent, VNodeRef, RootRenderFunction, RootHydrateFunction } from '@vue/runtime-core';
export * from '@vue/runtime-core';
import * as CSS from 'csstype';
@@ -1393,3 +1393,4 @@ export declare const hydrate: RootHydrateFunction;
export declare const createApp: CreateAppFunction<Element>;
export declare const createSSRApp: CreateAppFunction<Element>;
+91 -48
View File
@@ -1,5 +1,5 @@
/**
* @vue/runtime-dom v3.5.13
* @vue/runtime-dom v3.5.14
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/
@@ -323,6 +323,10 @@ class EffectScope {
* @internal
*/
this._active = true;
/**
* @internal track `on` calls, allow `on` call multiple times
*/
this._on = 0;
/**
* @internal
*/
@@ -393,14 +397,20 @@ class EffectScope {
* @internal
*/
on() {
activeEffectScope = this;
if (++this._on === 1) {
this.prevScope = activeEffectScope;
activeEffectScope = this;
}
}
/**
* This should only be called on non-detached scopes
* @internal
*/
off() {
activeEffectScope = this.parent;
if (this._on > 0 && --this._on === 0) {
activeEffectScope = this.prevScope;
this.prevScope = void 0;
}
}
stop(fromParent) {
if (this._active) {
@@ -482,7 +492,7 @@ class ReactiveEffect {
}
resume() {
if (this.flags & 64) {
this.flags &= ~64;
this.flags &= -65;
if (pausedQueueEffects.has(this)) {
pausedQueueEffects.delete(this);
this.trigger();
@@ -522,7 +532,7 @@ class ReactiveEffect {
cleanupDeps(this);
activeSub = prevEffect;
shouldTrack = prevShouldTrack;
this.flags &= ~2;
this.flags &= -3;
}
}
stop() {
@@ -533,7 +543,7 @@ class ReactiveEffect {
this.deps = this.depsTail = void 0;
cleanupEffect(this);
this.onStop && this.onStop();
this.flags &= ~1;
this.flags &= -2;
}
}
trigger() {
@@ -583,7 +593,7 @@ function endBatch() {
while (e) {
const next = e.next;
e.next = void 0;
e.flags &= ~8;
e.flags &= -9;
e = next;
}
}
@@ -594,7 +604,7 @@ function endBatch() {
while (e) {
const next = e.next;
e.next = void 0;
e.flags &= ~8;
e.flags &= -9;
if (e.flags & 1) {
try {
;
@@ -650,17 +660,16 @@ function refreshComputed(computed) {
if (computed.flags & 4 && !(computed.flags & 16)) {
return;
}
computed.flags &= ~16;
computed.flags &= -17;
if (computed.globalVersion === globalVersion) {
return;
}
computed.globalVersion = globalVersion;
const dep = computed.dep;
computed.flags |= 2;
if (dep.version > 0 && !computed.isSSR && computed.deps && !isDirty(computed)) {
computed.flags &= ~2;
if (!computed.isSSR && computed.flags & 128 && (!computed.deps && !computed._dirty || !isDirty(computed))) {
return;
}
computed.flags |= 2;
const dep = computed.dep;
const prevSub = activeSub;
const prevShouldTrack = shouldTrack;
activeSub = computed;
@@ -669,6 +678,7 @@ function refreshComputed(computed) {
prepareDeps(computed);
const value = computed.fn(computed._value);
if (dep.version === 0 || hasChanged(value, computed._value)) {
computed.flags |= 128;
computed._value = value;
dep.version++;
}
@@ -679,7 +689,7 @@ function refreshComputed(computed) {
activeSub = prevSub;
shouldTrack = prevShouldTrack;
cleanupDeps(computed);
computed.flags &= ~2;
computed.flags &= -3;
}
}
function removeSub(link, soft = false) {
@@ -698,7 +708,7 @@ function removeSub(link, soft = false) {
if (dep.subs === link) {
dep.subs = prevSub;
if (!prevSub && dep.computed) {
dep.computed.flags &= ~4;
dep.computed.flags &= -5;
for (let l = dep.computed.deps; l; l = l.nextDep) {
removeSub(l, true);
}
@@ -1631,14 +1641,14 @@ function createReactiveObject(target, isReadonly2, baseHandlers, collectionHandl
if (target["__v_raw"] && !(isReadonly2 && target["__v_isReactive"])) {
return target;
}
const existingProxy = proxyMap.get(target);
if (existingProxy) {
return existingProxy;
}
const targetType = getTargetType(target);
if (targetType === 0 /* INVALID */) {
return target;
}
const existingProxy = proxyMap.get(target);
if (existingProxy) {
return existingProxy;
}
const proxy = new Proxy(
target,
targetType === 2 /* COLLECTION */ ? collectionHandlers : baseHandlers
@@ -2482,11 +2492,11 @@ function flushPreFlushCbs(instance, seen, i = flushIndex + 1) {
queue.splice(i, 1);
i--;
if (cb.flags & 4) {
cb.flags &= ~1;
cb.flags &= -2;
}
cb();
if (!(cb.flags & 4)) {
cb.flags &= ~1;
cb.flags &= -2;
}
}
}
@@ -2511,10 +2521,10 @@ function flushPostFlushCbs(seen) {
continue;
}
if (cb.flags & 4) {
cb.flags &= ~1;
cb.flags &= -2;
}
if (!(cb.flags & 8)) cb();
cb.flags &= ~1;
cb.flags &= -2;
}
activePostFlushCbs = null;
postFlushIndex = 0;
@@ -2550,7 +2560,7 @@ function flushJobs(seen) {
for (; flushIndex < queue.length; flushIndex++) {
const job = queue[flushIndex];
if (job) {
job.flags &= ~1;
job.flags &= -2;
}
}
flushIndex = -1;
@@ -3039,7 +3049,7 @@ const TeleportImpl = {
namespace,
slotScopeIds
);
traverseStaticChildren(n1, n2, true);
traverseStaticChildren(n1, n2, false);
} else if (!optimized) {
patchChildren(
n1,
@@ -4724,6 +4734,9 @@ const KeepAliveImpl = {
{
devtoolsComponentAdded(instance2);
}
{
instance2.__keepAliveStorageContainer = storageContainer;
}
};
function unmount(vnode) {
resetShapeFlag(vnode);
@@ -4811,7 +4824,7 @@ const KeepAliveImpl = {
);
const { include, exclude, max } = props;
if (include && (!name || !matches(include, name)) || exclude && name && matches(exclude, name)) {
vnode.shapeFlag &= ~256;
vnode.shapeFlag &= -257;
current = vnode;
return rawVNode;
}
@@ -4898,8 +4911,8 @@ function injectToKeepAliveRoot(hook, type, target, keepAliveRoot) {
}, target);
}
function resetShapeFlag(vnode) {
vnode.shapeFlag &= ~256;
vnode.shapeFlag &= ~512;
vnode.shapeFlag &= -257;
vnode.shapeFlag &= -513;
}
function getInnerChild(vnode) {
return vnode.shapeFlag & 128 ? vnode.ssContent : vnode;
@@ -5014,14 +5027,16 @@ function renderList(source, renderItem, cache, index) {
if (sourceIsArray || isString(source)) {
const sourceIsReactiveArray = sourceIsArray && isReactive(source);
let needsWrap = false;
let isReadonlySource = false;
if (sourceIsReactiveArray) {
needsWrap = !isShallow(source);
isReadonlySource = isReadonly(source);
source = shallowReadArray(source);
}
ret = new Array(source.length);
for (let i = 0, l = source.length; i < l; i++) {
ret[i] = renderItem(
needsWrap ? toReactive(source[i]) : source[i],
needsWrap ? isReadonlySource ? toReadonly(toReactive(source[i])) : toReactive(source[i]) : source[i],
i,
void 0,
cached && cached[i]
@@ -6043,11 +6058,9 @@ function createAppAPI(render, hydrate) {
}
{
context.reload = () => {
render(
cloneVNode(vnode),
rootContainer,
namespace
);
const cloned = cloneVNode(vnode);
cloned.el = null;
render(cloned, rootContainer, namespace);
};
}
if (isHydrate && hydrate) {
@@ -6570,7 +6583,7 @@ const normalizeSlot = (key, rawSlot, ctx) => {
return rawSlot;
}
const normalized = withCtx((...args) => {
if (currentInstance && (!ctx || ctx.root === currentInstance.root)) {
if (currentInstance && !(ctx === null && currentRenderingInstance) && !(ctx && ctx.root !== currentInstance.root)) {
warn$1(
`Slot "${key}" invoked outside of the render function: this will not track dependencies used in the slot. Invoke the slot function inside the render function instead.`
);
@@ -6609,7 +6622,7 @@ const normalizeVNodeSlots = (instance, children) => {
};
const assignSlots = (slots, children, optimized) => {
for (const key in children) {
if (optimized || key !== "_") {
if (optimized || !isInternalKey(key)) {
slots[key] = children[key];
}
}
@@ -7295,8 +7308,8 @@ function baseCreateRenderer(options, createHydrationFns) {
endMeasure(instance, `init`);
}
}
if (isHmrUpdating) initialVNode.el = null;
if (instance.asyncDep) {
if (isHmrUpdating) initialVNode.el = null;
parentSuspense && parentSuspense.registerDep(instance, setupRenderEffect, optimized);
if (!initialVNode.el) {
const placeholder = instance.subTree = createVNode(Comment);
@@ -7858,7 +7871,13 @@ function baseCreateRenderer(options, createHydrationFns) {
queuePostRenderEffect(() => transition.enter(el), parentSuspense);
} else {
const { leave, delayLeave, afterLeave } = transition;
const remove2 = () => hostInsert(el, container, anchor);
const remove2 = () => {
if (vnode.ctx.isUnmounted) {
hostRemove(el);
} else {
hostInsert(el, container, anchor);
}
};
const performLeave = () => {
leave(el, () => {
remove2();
@@ -7891,7 +7910,9 @@ function baseCreateRenderer(options, createHydrationFns) {
optimized = false;
}
if (ref != null) {
pauseTracking();
setRef(ref, null, parentSuspense, vnode, true);
resetTracking();
}
if (cacheIndex != null) {
parentComponent.renderCache[cacheIndex] = void 0;
@@ -8003,12 +8024,27 @@ function baseCreateRenderer(options, createHydrationFns) {
if (instance.type.__hmrId) {
unregisterHMR(instance);
}
const { bum, scope, job, subTree, um, m, a } = instance;
const {
bum,
scope,
job,
subTree,
um,
m,
a,
parent,
slots: { __: slotCacheKeys }
} = instance;
invalidateMount(m);
invalidateMount(a);
if (bum) {
invokeArrayFns(bum);
}
if (parent && isArray(slotCacheKeys)) {
slotCacheKeys.forEach((v) => {
parent.renderCache[v] = void 0;
});
}
scope.stop();
if (job) {
job.flags |= 8;
@@ -8104,8 +8140,8 @@ function toggleRecurse({ effect, job }, allowed) {
effect.flags |= 32;
job.flags |= 4;
} else {
effect.flags &= ~32;
job.flags &= ~4;
effect.flags &= -33;
job.flags &= -5;
}
}
function needTransition(parentSuspense, transition) {
@@ -8132,6 +8168,9 @@ function traverseStaticChildren(n1, n2, shallow = false) {
if (c2.type === Comment && !c2.el) {
c2.el = c1.el;
}
{
c2.el && (c2.el.__vnode = c2);
}
}
}
}
@@ -9477,8 +9516,8 @@ function isSameVNodeType(n1, n2) {
if (n2.shapeFlag & 6 && n1.component) {
const dirtyInstances = hmrDirtyComponents.get(n2.type);
if (dirtyInstances && dirtyInstances.has(n1.component)) {
n1.shapeFlag &= ~256;
n2.shapeFlag &= ~512;
n1.shapeFlag &= -257;
n2.shapeFlag &= -513;
return false;
}
}
@@ -9939,7 +9978,7 @@ function setupComponent(instance, isSSR = false, optimized = false) {
const { props, children } = instance.vnode;
const isStateful = isStatefulComponent(instance);
initProps(instance, props, isStateful, isSSR);
initSlots(instance, children, optimized);
initSlots(instance, children, optimized || isSSR);
const setupResult = isStateful ? setupStatefulComponent(instance, isSSR) : void 0;
isSSR && setInSSRSetupState(false);
return setupResult;
@@ -10270,13 +10309,15 @@ function initCustomFormatter() {
if (obj.__isVue) {
return ["div", vueStyle, `VueInstance`];
} else if (isRef(obj)) {
pauseTracking();
const value = obj.value;
resetTracking();
return [
"div",
{},
["span", vueStyle, genRefFlag(obj)],
"<",
// avoid debugger accessing value affecting behavior
formatValue("_value" in obj ? obj._value : obj),
formatValue(value),
`>`
];
} else if (isReactive(obj)) {
@@ -10457,7 +10498,7 @@ function isMemoSame(cached, memo) {
return true;
}
const version = "3.5.13";
const version = "3.5.14";
const warn = warn$1 ;
const ErrorTypeStrings = ErrorTypeStrings$1 ;
const devtools = devtools$1 ;
@@ -11275,7 +11316,7 @@ function shouldSetAsProp(el, key, value, isSVG) {
}
return false;
}
if (key === "spellcheck" || key === "draggable" || key === "translate") {
if (key === "spellcheck" || key === "draggable" || key === "translate" || key === "autocorrect") {
return false;
}
if (key === "form") {
@@ -11764,6 +11805,7 @@ const TransitionGroupImpl = /* @__PURE__ */ decorate({
instance.vnode.el,
moveClass
)) {
prevChildren = [];
return;
}
prevChildren.forEach(callPendingCbs);
@@ -11787,6 +11829,7 @@ const TransitionGroupImpl = /* @__PURE__ */ decorate({
};
el.addEventListener("transitionend", cb);
});
prevChildren = [];
});
return () => {
const rawProps = toRaw(props);
File diff suppressed because one or more lines are too long
+6 -4
View File
@@ -1,11 +1,11 @@
/**
* @vue/runtime-dom v3.5.13
* @vue/runtime-dom v3.5.14
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/
import { warn, h, BaseTransition, assertNumber, BaseTransitionPropsValidators, getCurrentInstance, onBeforeUpdate, queuePostFlushCb, onMounted, watch, onUnmounted, Fragment, Static, camelize, callWithAsyncErrorHandling, defineComponent, nextTick, unref, createVNode, useTransitionState, onUpdated, toRaw, getTransitionRawChildren, setTransitionHooks, resolveTransitionHooks, Text, isRuntimeOnly, createRenderer, createHydrationRenderer } from '@vue/runtime-core';
import { warn, BaseTransitionPropsValidators, h, BaseTransition, assertNumber, getCurrentInstance, onBeforeUpdate, queuePostFlushCb, onMounted, watch, onUnmounted, Fragment, Static, camelize, callWithAsyncErrorHandling, defineComponent, nextTick, unref, createVNode, useTransitionState, onUpdated, toRaw, getTransitionRawChildren, setTransitionHooks, resolveTransitionHooks, Text, createRenderer, createHydrationRenderer, isRuntimeOnly } from '@vue/runtime-core';
export * from '@vue/runtime-core';
import { extend, isObject, toNumber, isArray, NOOP, isString, hyphenate, capitalize, includeBooleanAttr, isSymbol, isSpecialBooleanAttr, isFunction, isOn, isModelListener, camelize as camelize$1, isPlainObject, hasOwn, EMPTY_OBJ, looseToNumber, looseIndexOf, isSet, looseEqual, invokeArrayFns, isHTMLTag, isSVGTag, isMathMLTag } from '@vue/shared';
import { extend, isObject, toNumber, isArray, NOOP, isString, hyphenate, capitalize, isSpecialBooleanAttr, includeBooleanAttr, isSymbol, isFunction, isOn, isModelListener, camelize as camelize$1, isPlainObject, hasOwn, EMPTY_OBJ, looseToNumber, looseIndexOf, isSet, looseEqual, invokeArrayFns, isHTMLTag, isSVGTag, isMathMLTag } from '@vue/shared';
let policy = void 0;
const tt = typeof window !== "undefined" && window.trustedTypes;
@@ -803,7 +803,7 @@ function shouldSetAsProp(el, key, value, isSVG) {
}
return false;
}
if (key === "spellcheck" || key === "draggable" || key === "translate") {
if (key === "spellcheck" || key === "draggable" || key === "translate" || key === "autocorrect") {
return false;
}
if (key === "form") {
@@ -1292,6 +1292,7 @@ const TransitionGroupImpl = /* @__PURE__ */ decorate({
instance.vnode.el,
moveClass
)) {
prevChildren = [];
return;
}
prevChildren.forEach(callPendingCbs);
@@ -1315,6 +1316,7 @@ const TransitionGroupImpl = /* @__PURE__ */ decorate({
};
el.addEventListener("transitionend", cb);
});
prevChildren = [];
});
return () => {
const rawProps = toRaw(props);
+91 -48
View File
@@ -1,5 +1,5 @@
/**
* @vue/runtime-dom v3.5.13
* @vue/runtime-dom v3.5.14
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/
@@ -326,6 +326,10 @@ var VueRuntimeDOM = (function (exports) {
* @internal
*/
this._active = true;
/**
* @internal track `on` calls, allow `on` call multiple times
*/
this._on = 0;
/**
* @internal
*/
@@ -396,14 +400,20 @@ var VueRuntimeDOM = (function (exports) {
* @internal
*/
on() {
activeEffectScope = this;
if (++this._on === 1) {
this.prevScope = activeEffectScope;
activeEffectScope = this;
}
}
/**
* This should only be called on non-detached scopes
* @internal
*/
off() {
activeEffectScope = this.parent;
if (this._on > 0 && --this._on === 0) {
activeEffectScope = this.prevScope;
this.prevScope = void 0;
}
}
stop(fromParent) {
if (this._active) {
@@ -485,7 +495,7 @@ var VueRuntimeDOM = (function (exports) {
}
resume() {
if (this.flags & 64) {
this.flags &= ~64;
this.flags &= -65;
if (pausedQueueEffects.has(this)) {
pausedQueueEffects.delete(this);
this.trigger();
@@ -525,7 +535,7 @@ var VueRuntimeDOM = (function (exports) {
cleanupDeps(this);
activeSub = prevEffect;
shouldTrack = prevShouldTrack;
this.flags &= ~2;
this.flags &= -3;
}
}
stop() {
@@ -536,7 +546,7 @@ var VueRuntimeDOM = (function (exports) {
this.deps = this.depsTail = void 0;
cleanupEffect(this);
this.onStop && this.onStop();
this.flags &= ~1;
this.flags &= -2;
}
}
trigger() {
@@ -586,7 +596,7 @@ var VueRuntimeDOM = (function (exports) {
while (e) {
const next = e.next;
e.next = void 0;
e.flags &= ~8;
e.flags &= -9;
e = next;
}
}
@@ -597,7 +607,7 @@ var VueRuntimeDOM = (function (exports) {
while (e) {
const next = e.next;
e.next = void 0;
e.flags &= ~8;
e.flags &= -9;
if (e.flags & 1) {
try {
;
@@ -653,17 +663,16 @@ var VueRuntimeDOM = (function (exports) {
if (computed.flags & 4 && !(computed.flags & 16)) {
return;
}
computed.flags &= ~16;
computed.flags &= -17;
if (computed.globalVersion === globalVersion) {
return;
}
computed.globalVersion = globalVersion;
const dep = computed.dep;
computed.flags |= 2;
if (dep.version > 0 && !computed.isSSR && computed.deps && !isDirty(computed)) {
computed.flags &= ~2;
if (!computed.isSSR && computed.flags & 128 && (!computed.deps && !computed._dirty || !isDirty(computed))) {
return;
}
computed.flags |= 2;
const dep = computed.dep;
const prevSub = activeSub;
const prevShouldTrack = shouldTrack;
activeSub = computed;
@@ -672,6 +681,7 @@ var VueRuntimeDOM = (function (exports) {
prepareDeps(computed);
const value = computed.fn(computed._value);
if (dep.version === 0 || hasChanged(value, computed._value)) {
computed.flags |= 128;
computed._value = value;
dep.version++;
}
@@ -682,7 +692,7 @@ var VueRuntimeDOM = (function (exports) {
activeSub = prevSub;
shouldTrack = prevShouldTrack;
cleanupDeps(computed);
computed.flags &= ~2;
computed.flags &= -3;
}
}
function removeSub(link, soft = false) {
@@ -701,7 +711,7 @@ var VueRuntimeDOM = (function (exports) {
if (dep.subs === link) {
dep.subs = prevSub;
if (!prevSub && dep.computed) {
dep.computed.flags &= ~4;
dep.computed.flags &= -5;
for (let l = dep.computed.deps; l; l = l.nextDep) {
removeSub(l, true);
}
@@ -1634,14 +1644,14 @@ var VueRuntimeDOM = (function (exports) {
if (target["__v_raw"] && !(isReadonly2 && target["__v_isReactive"])) {
return target;
}
const existingProxy = proxyMap.get(target);
if (existingProxy) {
return existingProxy;
}
const targetType = getTargetType(target);
if (targetType === 0 /* INVALID */) {
return target;
}
const existingProxy = proxyMap.get(target);
if (existingProxy) {
return existingProxy;
}
const proxy = new Proxy(
target,
targetType === 2 /* COLLECTION */ ? collectionHandlers : baseHandlers
@@ -2485,11 +2495,11 @@ var VueRuntimeDOM = (function (exports) {
queue.splice(i, 1);
i--;
if (cb.flags & 4) {
cb.flags &= ~1;
cb.flags &= -2;
}
cb();
if (!(cb.flags & 4)) {
cb.flags &= ~1;
cb.flags &= -2;
}
}
}
@@ -2514,10 +2524,10 @@ var VueRuntimeDOM = (function (exports) {
continue;
}
if (cb.flags & 4) {
cb.flags &= ~1;
cb.flags &= -2;
}
if (!(cb.flags & 8)) cb();
cb.flags &= ~1;
cb.flags &= -2;
}
activePostFlushCbs = null;
postFlushIndex = 0;
@@ -2553,7 +2563,7 @@ var VueRuntimeDOM = (function (exports) {
for (; flushIndex < queue.length; flushIndex++) {
const job = queue[flushIndex];
if (job) {
job.flags &= ~1;
job.flags &= -2;
}
}
flushIndex = -1;
@@ -3042,7 +3052,7 @@ var VueRuntimeDOM = (function (exports) {
namespace,
slotScopeIds
);
traverseStaticChildren(n1, n2, true);
traverseStaticChildren(n1, n2, false);
} else if (!optimized) {
patchChildren(
n1,
@@ -4721,6 +4731,9 @@ Server rendered element contains fewer child nodes than client vdom.`
{
devtoolsComponentAdded(instance2);
}
{
instance2.__keepAliveStorageContainer = storageContainer;
}
};
function unmount(vnode) {
resetShapeFlag(vnode);
@@ -4808,7 +4821,7 @@ Server rendered element contains fewer child nodes than client vdom.`
);
const { include, exclude, max } = props;
if (include && (!name || !matches(include, name)) || exclude && name && matches(exclude, name)) {
vnode.shapeFlag &= ~256;
vnode.shapeFlag &= -257;
current = vnode;
return rawVNode;
}
@@ -4895,8 +4908,8 @@ Server rendered element contains fewer child nodes than client vdom.`
}, target);
}
function resetShapeFlag(vnode) {
vnode.shapeFlag &= ~256;
vnode.shapeFlag &= ~512;
vnode.shapeFlag &= -257;
vnode.shapeFlag &= -513;
}
function getInnerChild(vnode) {
return vnode.shapeFlag & 128 ? vnode.ssContent : vnode;
@@ -5011,14 +5024,16 @@ If this is a native custom element, make sure to exclude it from component resol
if (sourceIsArray || isString(source)) {
const sourceIsReactiveArray = sourceIsArray && isReactive(source);
let needsWrap = false;
let isReadonlySource = false;
if (sourceIsReactiveArray) {
needsWrap = !isShallow(source);
isReadonlySource = isReadonly(source);
source = shallowReadArray(source);
}
ret = new Array(source.length);
for (let i = 0, l = source.length; i < l; i++) {
ret[i] = renderItem(
needsWrap ? toReactive(source[i]) : source[i],
needsWrap ? isReadonlySource ? toReadonly(toReactive(source[i])) : toReactive(source[i]) : source[i],
i,
void 0,
cached && cached[i]
@@ -6037,11 +6052,9 @@ If this is a native custom element, make sure to exclude it from component resol
}
{
context.reload = () => {
render(
cloneVNode(vnode),
rootContainer,
namespace
);
const cloned = cloneVNode(vnode);
cloned.el = null;
render(cloned, rootContainer, namespace);
};
}
if (isHydrate && hydrate) {
@@ -6564,7 +6577,7 @@ If you want to remount the same app, move your app creation logic into a factory
return rawSlot;
}
const normalized = withCtx((...args) => {
if (currentInstance && (!ctx || ctx.root === currentInstance.root)) {
if (currentInstance && !(ctx === null && currentRenderingInstance) && !(ctx && ctx.root !== currentInstance.root)) {
warn$1(
`Slot "${key}" invoked outside of the render function: this will not track dependencies used in the slot. Invoke the slot function inside the render function instead.`
);
@@ -6603,7 +6616,7 @@ If you want to remount the same app, move your app creation logic into a factory
};
const assignSlots = (slots, children, optimized) => {
for (const key in children) {
if (optimized || key !== "_") {
if (optimized || !isInternalKey(key)) {
slots[key] = children[key];
}
}
@@ -7289,8 +7302,8 @@ If you want to remount the same app, move your app creation logic into a factory
endMeasure(instance, `init`);
}
}
if (isHmrUpdating) initialVNode.el = null;
if (instance.asyncDep) {
if (isHmrUpdating) initialVNode.el = null;
parentSuspense && parentSuspense.registerDep(instance, setupRenderEffect, optimized);
if (!initialVNode.el) {
const placeholder = instance.subTree = createVNode(Comment);
@@ -7852,7 +7865,13 @@ If you want to remount the same app, move your app creation logic into a factory
queuePostRenderEffect(() => transition.enter(el), parentSuspense);
} else {
const { leave, delayLeave, afterLeave } = transition;
const remove2 = () => hostInsert(el, container, anchor);
const remove2 = () => {
if (vnode.ctx.isUnmounted) {
hostRemove(el);
} else {
hostInsert(el, container, anchor);
}
};
const performLeave = () => {
leave(el, () => {
remove2();
@@ -7885,7 +7904,9 @@ If you want to remount the same app, move your app creation logic into a factory
optimized = false;
}
if (ref != null) {
pauseTracking();
setRef(ref, null, parentSuspense, vnode, true);
resetTracking();
}
if (cacheIndex != null) {
parentComponent.renderCache[cacheIndex] = void 0;
@@ -7997,12 +8018,27 @@ If you want to remount the same app, move your app creation logic into a factory
if (instance.type.__hmrId) {
unregisterHMR(instance);
}
const { bum, scope, job, subTree, um, m, a } = instance;
const {
bum,
scope,
job,
subTree,
um,
m,
a,
parent,
slots: { __: slotCacheKeys }
} = instance;
invalidateMount(m);
invalidateMount(a);
if (bum) {
invokeArrayFns(bum);
}
if (parent && isArray(slotCacheKeys)) {
slotCacheKeys.forEach((v) => {
parent.renderCache[v] = void 0;
});
}
scope.stop();
if (job) {
job.flags |= 8;
@@ -8098,8 +8134,8 @@ If you want to remount the same app, move your app creation logic into a factory
effect.flags |= 32;
job.flags |= 4;
} else {
effect.flags &= ~32;
job.flags &= ~4;
effect.flags &= -33;
job.flags &= -5;
}
}
function needTransition(parentSuspense, transition) {
@@ -8126,6 +8162,9 @@ If you want to remount the same app, move your app creation logic into a factory
if (c2.type === Comment && !c2.el) {
c2.el = c1.el;
}
{
c2.el && (c2.el.__vnode = c2);
}
}
}
}
@@ -9443,8 +9482,8 @@ If you want to remount the same app, move your app creation logic into a factory
if (n2.shapeFlag & 6 && n1.component) {
const dirtyInstances = hmrDirtyComponents.get(n2.type);
if (dirtyInstances && dirtyInstances.has(n1.component)) {
n1.shapeFlag &= ~256;
n2.shapeFlag &= ~512;
n1.shapeFlag &= -257;
n2.shapeFlag &= -513;
return false;
}
}
@@ -9893,7 +9932,7 @@ Component that was made reactive: `,
const { props, children } = instance.vnode;
const isStateful = isStatefulComponent(instance);
initProps(instance, props, isStateful, isSSR);
initSlots(instance, children, optimized);
initSlots(instance, children, optimized || isSSR);
const setupResult = isStateful ? setupStatefulComponent(instance, isSSR) : void 0;
isSSR && setInSSRSetupState(false);
return setupResult;
@@ -10222,13 +10261,15 @@ Component that was made reactive: `,
if (obj.__isVue) {
return ["div", vueStyle, `VueInstance`];
} else if (isRef(obj)) {
pauseTracking();
const value = obj.value;
resetTracking();
return [
"div",
{},
["span", vueStyle, genRefFlag(obj)],
"<",
// avoid debugger accessing value affecting behavior
formatValue("_value" in obj ? obj._value : obj),
formatValue(value),
`>`
];
} else if (isReactive(obj)) {
@@ -10409,7 +10450,7 @@ Component that was made reactive: `,
return true;
}
const version = "3.5.13";
const version = "3.5.14";
const warn = warn$1 ;
const ErrorTypeStrings = ErrorTypeStrings$1 ;
const devtools = devtools$1 ;
@@ -11208,7 +11249,7 @@ Expected function or array of functions, received type ${typeof value}.`
}
return false;
}
if (key === "spellcheck" || key === "draggable" || key === "translate") {
if (key === "spellcheck" || key === "draggable" || key === "translate" || key === "autocorrect") {
return false;
}
if (key === "form") {
@@ -11685,6 +11726,7 @@ Expected function or array of functions, received type ${typeof value}.`
instance.vnode.el,
moveClass
)) {
prevChildren = [];
return;
}
prevChildren.forEach(callPendingCbs);
@@ -11708,6 +11750,7 @@ Expected function or array of functions, received type ${typeof value}.`
};
el.addEventListener("transitionend", cb);
});
prevChildren = [];
});
return () => {
const rawProps = toRaw(props);
File diff suppressed because one or more lines are too long
+4 -4
View File
@@ -1,6 +1,6 @@
{
"name": "@vue/runtime-dom",
"version": "3.5.13",
"version": "3.5.14",
"description": "@vue/runtime-dom",
"main": "index.js",
"module": "dist/runtime-dom.esm-bundler.js",
@@ -50,9 +50,9 @@
"homepage": "https://github.com/vuejs/core/tree/main/packages/runtime-dom#readme",
"dependencies": {
"csstype": "^3.1.3",
"@vue/shared": "3.5.13",
"@vue/runtime-core": "3.5.13",
"@vue/reactivity": "3.5.13"
"@vue/runtime-core": "3.5.14",
"@vue/shared": "3.5.14",
"@vue/reactivity": "3.5.14"
},
"devDependencies": {
"@types/trusted-types": "^2.0.7"
+1 -1
View File
@@ -1,5 +1,5 @@
/**
* @vue/server-renderer v3.5.13
* @vue/server-renderer v3.5.14
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/
+1 -1
View File
@@ -1,5 +1,5 @@
/**
* @vue/server-renderer v3.5.13
* @vue/server-renderer v3.5.14
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/
+82 -243
View File
@@ -1,5 +1,5 @@
/**
* @vue/server-renderer v3.5.13
* @vue/server-renderer v3.5.14
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/
@@ -354,6 +354,10 @@ class EffectScope {
* @internal
*/
this._active = true;
/**
* @internal track `on` calls, allow `on` call multiple times
*/
this._on = 0;
/**
* @internal
*/
@@ -424,14 +428,20 @@ class EffectScope {
* @internal
*/
on() {
activeEffectScope = this;
if (++this._on === 1) {
this.prevScope = activeEffectScope;
activeEffectScope = this;
}
}
/**
* This should only be called on non-detached scopes
* @internal
*/
off() {
activeEffectScope = this.parent;
if (this._on > 0 && --this._on === 0) {
activeEffectScope = this.prevScope;
this.prevScope = void 0;
}
}
stop(fromParent) {
if (this._active) {
@@ -501,7 +511,7 @@ class ReactiveEffect {
}
resume() {
if (this.flags & 64) {
this.flags &= ~64;
this.flags &= -65;
if (pausedQueueEffects.has(this)) {
pausedQueueEffects.delete(this);
this.trigger();
@@ -541,7 +551,7 @@ class ReactiveEffect {
cleanupDeps(this);
activeSub = prevEffect;
shouldTrack = prevShouldTrack;
this.flags &= ~2;
this.flags &= -3;
}
}
stop() {
@@ -552,7 +562,7 @@ class ReactiveEffect {
this.deps = this.depsTail = void 0;
cleanupEffect(this);
this.onStop && this.onStop();
this.flags &= ~1;
this.flags &= -2;
}
}
trigger() {
@@ -602,7 +612,7 @@ function endBatch() {
while (e) {
const next = e.next;
e.next = void 0;
e.flags &= ~8;
e.flags &= -9;
e = next;
}
}
@@ -613,7 +623,7 @@ function endBatch() {
while (e) {
const next = e.next;
e.next = void 0;
e.flags &= ~8;
e.flags &= -9;
if (e.flags & 1) {
try {
;
@@ -669,17 +679,16 @@ function refreshComputed(computed) {
if (computed.flags & 4 && !(computed.flags & 16)) {
return;
}
computed.flags &= ~16;
computed.flags &= -17;
if (computed.globalVersion === globalVersion) {
return;
}
computed.globalVersion = globalVersion;
const dep = computed.dep;
computed.flags |= 2;
if (dep.version > 0 && !computed.isSSR && computed.deps && !isDirty(computed)) {
computed.flags &= ~2;
if (!computed.isSSR && computed.flags & 128 && (!computed.deps && !computed._dirty || !isDirty(computed))) {
return;
}
computed.flags |= 2;
const dep = computed.dep;
const prevSub = activeSub;
const prevShouldTrack = shouldTrack;
activeSub = computed;
@@ -688,6 +697,7 @@ function refreshComputed(computed) {
prepareDeps(computed);
const value = computed.fn(computed._value);
if (dep.version === 0 || hasChanged(value, computed._value)) {
computed.flags |= 128;
computed._value = value;
dep.version++;
}
@@ -698,7 +708,7 @@ function refreshComputed(computed) {
activeSub = prevSub;
shouldTrack = prevShouldTrack;
cleanupDeps(computed);
computed.flags &= ~2;
computed.flags &= -3;
}
}
function removeSub(link, soft = false) {
@@ -717,7 +727,7 @@ function removeSub(link, soft = false) {
if (dep.subs === link) {
dep.subs = prevSub;
if (!prevSub && dep.computed) {
dep.computed.flags &= ~4;
dep.computed.flags &= -5;
for (let l = dep.computed.deps; l; l = l.nextDep) {
removeSub(l, true);
}
@@ -1625,14 +1635,14 @@ function createReactiveObject(target, isReadonly2, baseHandlers, collectionHandl
if (target["__v_raw"] && !(isReadonly2 && target["__v_isReactive"])) {
return target;
}
const existingProxy = proxyMap.get(target);
if (existingProxy) {
return existingProxy;
}
const targetType = getTargetType(target);
if (targetType === 0 /* INVALID */) {
return target;
}
const existingProxy = proxyMap.get(target);
if (existingProxy) {
return existingProxy;
}
const proxy = new Proxy(
target,
targetType === 2 /* COLLECTION */ ? collectionHandlers : baseHandlers
@@ -2279,11 +2289,11 @@ function flushPreFlushCbs(instance, seen, i = flushIndex + 1) {
queue.splice(i, 1);
i--;
if (cb.flags & 4) {
cb.flags &= ~1;
cb.flags &= -2;
}
cb();
if (!(cb.flags & 4)) {
cb.flags &= ~1;
cb.flags &= -2;
}
}
}
@@ -2308,10 +2318,10 @@ function flushPostFlushCbs(seen) {
continue;
}
if (cb.flags & 4) {
cb.flags &= ~1;
cb.flags &= -2;
}
if (!(cb.flags & 8)) cb();
cb.flags &= ~1;
cb.flags &= -2;
}
activePostFlushCbs = null;
postFlushIndex = 0;
@@ -2347,7 +2357,7 @@ function flushJobs(seen) {
for (; flushIndex < queue.length; flushIndex++) {
const job = queue[flushIndex];
if (job) {
job.flags &= ~1;
job.flags &= -2;
}
}
flushIndex = -1;
@@ -3658,16 +3668,12 @@ function createAppAPI(render, hydrate) {
}
{
context.reload = () => {
render(
cloneVNode(vnode),
rootContainer,
namespace
);
const cloned = cloneVNode(vnode);
cloned.el = null;
render(cloned, rootContainer, namespace);
};
}
if (isHydrate && hydrate) {
hydrate(vnode, rootContainer);
} else {
{
render(vnode, rootContainer, namespace);
}
isMounted = true;
@@ -4182,7 +4188,7 @@ const normalizeSlot = (key, rawSlot, ctx) => {
return rawSlot;
}
const normalized = withCtx((...args) => {
if (currentInstance && (!ctx || ctx.root === currentInstance.root)) {
if (currentInstance && !(ctx === null && currentRenderingInstance) && !(ctx && ctx.root !== currentInstance.root)) {
warn$1(
`Slot "${key}" invoked outside of the render function: this will not track dependencies used in the slot. Invoke the slot function inside the render function instead.`
);
@@ -4221,7 +4227,7 @@ const normalizeVNodeSlots = (instance, children) => {
};
const assignSlots = (slots, children, optimized) => {
for (const key in children) {
if (optimized || key !== "_") {
if (optimized || !isInternalKey(key)) {
slots[key] = children[key];
}
}
@@ -4904,8 +4910,8 @@ function baseCreateRenderer(options, createHydrationFns) {
endMeasure(instance, `init`);
}
}
if (isHmrUpdating) initialVNode.el = null;
if (instance.asyncDep) {
if (isHmrUpdating) initialVNode.el = null;
parentSuspense && parentSuspense.registerDep(instance, setupRenderEffect, optimized);
if (!initialVNode.el) {
const placeholder = instance.subTree = createVNode(Comment);
@@ -4963,39 +4969,7 @@ function baseCreateRenderer(options, createHydrationFns) {
invokeVNodeHook(vnodeHook, parent, initialVNode);
}
toggleRecurse(instance, true);
if (el && hydrateNode) {
const hydrateSubTree = () => {
{
startMeasure(instance, `render`);
}
instance.subTree = renderComponentRoot$1(instance);
{
endMeasure(instance, `render`);
}
{
startMeasure(instance, `hydrate`);
}
hydrateNode(
el,
instance.subTree,
instance,
parentSuspense,
null
);
{
endMeasure(instance, `hydrate`);
}
};
if (isAsyncWrapperVNode && type.__asyncHydrate) {
type.__asyncHydrate(
el,
instance,
hydrateSubTree
);
} else {
hydrateSubTree();
}
} else {
{
if (root.ce) {
root.ce._injectChildStyle(type);
}
@@ -5467,7 +5441,13 @@ function baseCreateRenderer(options, createHydrationFns) {
queuePostRenderEffect(() => transition.enter(el), parentSuspense);
} else {
const { leave, delayLeave, afterLeave } = transition;
const remove2 = () => hostInsert(el, container, anchor);
const remove2 = () => {
if (vnode.ctx.isUnmounted) {
hostRemove(el);
} else {
hostInsert(el, container, anchor);
}
};
const performLeave = () => {
leave(el, () => {
remove2();
@@ -5500,7 +5480,9 @@ function baseCreateRenderer(options, createHydrationFns) {
optimized = false;
}
if (ref != null) {
pauseTracking();
setRef(ref, null, parentSuspense, vnode, true);
resetTracking();
}
if (cacheIndex != null) {
parentComponent.renderCache[cacheIndex] = void 0;
@@ -5612,12 +5594,27 @@ function baseCreateRenderer(options, createHydrationFns) {
if (instance.type.__hmrId) {
unregisterHMR(instance);
}
const { bum, scope, job, subTree, um, m, a } = instance;
const {
bum,
scope,
job,
subTree,
um,
m,
a,
parent,
slots: { __: slotCacheKeys }
} = instance;
invalidateMount(m);
invalidateMount(a);
if (bum) {
invokeArrayFns(bum);
}
if (parent && isArray(slotCacheKeys)) {
slotCacheKeys.forEach((v) => {
parent.renderCache[v] = void 0;
});
}
scope.stop();
if (job) {
job.flags |= 8;
@@ -5693,11 +5690,10 @@ function baseCreateRenderer(options, createHydrationFns) {
o: options
};
let hydrate;
let hydrateNode;
return {
render,
hydrate,
createApp: createAppAPI(render, hydrate)
createApp: createAppAPI(render)
};
}
function resolveChildrenNamespace({ type, props }, currentNamespace) {
@@ -5708,8 +5704,8 @@ function toggleRecurse({ effect, job }, allowed) {
effect.flags |= 32;
job.flags |= 4;
} else {
effect.flags &= ~32;
job.flags &= ~4;
effect.flags &= -33;
job.flags &= -5;
}
}
function needTransition(parentSuspense, transition) {
@@ -5736,6 +5732,9 @@ function traverseStaticChildren(n1, n2, shallow = false) {
if (c2.type === Comment && !c2.el) {
c2.el = c1.el;
}
{
c2.el && (c2.el.__vnode = c2);
}
}
}
}
@@ -6379,8 +6378,8 @@ function isSameVNodeType(n1, n2) {
if (n2.shapeFlag & 6 && n1.component) {
const dirtyInstances = hmrDirtyComponents.get(n2.type);
if (dirtyInstances && dirtyInstances.has(n1.component)) {
n1.shapeFlag &= ~256;
n2.shapeFlag &= ~512;
n1.shapeFlag &= -257;
n2.shapeFlag &= -513;
return false;
}
}
@@ -6829,7 +6828,7 @@ function setupComponent$1(instance, isSSR = false, optimized = false) {
const { props, children } = instance.vnode;
const isStateful = isStatefulComponent(instance);
initProps(instance, props, isStateful, isSSR);
initSlots(instance, children, optimized);
initSlots(instance, children, optimized || isSSR);
const setupResult = isStateful ? setupStatefulComponent(instance, isSSR) : void 0;
isSSR && setInSSRSetupState(false);
return setupResult;
@@ -6935,35 +6934,10 @@ function handleSetupResult(instance, setupResult, isSSR) {
}
finishComponentSetup(instance, isSSR);
}
let compile;
const isRuntimeOnly = () => !compile;
const isRuntimeOnly = () => true;
function finishComponentSetup(instance, isSSR, skipOptions) {
const Component = instance.type;
if (!instance.render) {
if (!isSSR && compile && !Component.render) {
const template = Component.template || resolveMergedOptions(instance).template;
if (template) {
{
startMeasure(instance, `compile`);
}
const { isCustomElement, compilerOptions } = instance.appContext.config;
const { delimiters, compilerOptions: componentCompilerOptions } = Component;
const finalCompilerOptions = extend(
extend(
{
isCustomElement,
delimiters
},
compilerOptions
),
componentCompilerOptions
);
Component.render = compile(template, finalCompilerOptions);
{
endMeasure(instance, `compile`);
}
}
}
instance.render = Component.render || NOOP;
}
{
@@ -7110,7 +7084,7 @@ const computed = (getterOrOptions, debugOptions) => {
return c;
};
const version = "3.5.13";
const version = "3.5.14";
const warn = warn$1 ;
const _ssrUtils = {
createComponentInstance: createComponentInstance$1,
@@ -7526,7 +7500,7 @@ function shouldSetAsProp(el, key, value, isSVG) {
}
return false;
}
if (key === "spellcheck" || key === "draggable" || key === "translate") {
if (key === "spellcheck" || key === "draggable" || key === "translate" || key === "autocorrect") {
return false;
}
if (key === "form") {
@@ -7550,147 +7524,12 @@ function shouldSetAsProp(el, key, value, isSVG) {
return key in el;
}
const getModelAssigner = (vnode) => {
const fn = vnode.props["onUpdate:modelValue"] || false;
return isArray(fn) ? (value) => invokeArrayFns(fn, value) : fn;
};
function onCompositionStart(e) {
e.target.composing = true;
}
function onCompositionEnd(e) {
const target = e.target;
if (target.composing) {
target.composing = false;
target.dispatchEvent(new Event("input"));
}
}
const assignKey = Symbol("_assign");
const vModelText = {
created(el, { modifiers: { lazy, trim, number } }, vnode) {
el[assignKey] = getModelAssigner(vnode);
const castToNumber = number || vnode.props && vnode.props.type === "number";
addEventListener(el, lazy ? "change" : "input", (e) => {
if (e.target.composing) return;
let domValue = el.value;
if (trim) {
domValue = domValue.trim();
}
if (castToNumber) {
domValue = looseToNumber(domValue);
}
el[assignKey](domValue);
});
if (trim) {
addEventListener(el, "change", () => {
el.value = el.value.trim();
});
}
if (!lazy) {
addEventListener(el, "compositionstart", onCompositionStart);
addEventListener(el, "compositionend", onCompositionEnd);
addEventListener(el, "change", onCompositionEnd);
}
},
// set value on mounted so it's after min/max for type="range"
mounted(el, { value }) {
el.value = value == null ? "" : value;
},
beforeUpdate(el, { value, oldValue, modifiers: { lazy, trim, number } }, vnode) {
el[assignKey] = getModelAssigner(vnode);
if (el.composing) return;
const elValue = (number || el.type === "number") && !/^0\d/.test(el.value) ? looseToNumber(el.value) : el.value;
const newValue = value == null ? "" : value;
if (elValue === newValue) {
return;
}
if (document.activeElement === el && el.type !== "range") {
if (lazy && value === oldValue) {
return;
}
if (trim && el.value.trim() === newValue) {
return;
}
}
el.value = newValue;
}
};
};
const vModelCheckbox = {
// #4096 array checkboxes need to be deep traversed
deep: true,
created(el, _, vnode) {
el[assignKey] = getModelAssigner(vnode);
addEventListener(el, "change", () => {
const modelValue = el._modelValue;
const elementValue = getValue(el);
const checked = el.checked;
const assign = el[assignKey];
if (isArray(modelValue)) {
const index = looseIndexOf(modelValue, elementValue);
const found = index !== -1;
if (checked && !found) {
assign(modelValue.concat(elementValue));
} else if (!checked && found) {
const filtered = [...modelValue];
filtered.splice(index, 1);
assign(filtered);
}
} else if (isSet(modelValue)) {
const cloned = new Set(modelValue);
if (checked) {
cloned.add(elementValue);
} else {
cloned.delete(elementValue);
}
assign(cloned);
} else {
assign(getCheckboxValue(el, checked));
}
});
},
// set initial checked on mount to wait for true-value/false-value
mounted: setChecked,
beforeUpdate(el, binding, vnode) {
el[assignKey] = getModelAssigner(vnode);
setChecked(el, binding, vnode);
}
};
function setChecked(el, { value, oldValue }, vnode) {
el._modelValue = value;
let checked;
if (isArray(value)) {
checked = looseIndexOf(value, vnode.props.value) > -1;
} else if (isSet(value)) {
checked = value.has(vnode.props.value);
} else {
if (value === oldValue) return;
checked = looseEqual(value, getCheckboxValue(el, true));
}
if (el.checked !== checked) {
el.checked = checked;
}
}
};
const vModelRadio = {
created(el, { value }, vnode) {
el.checked = looseEqual(value, vnode.props.value);
el[assignKey] = getModelAssigner(vnode);
addEventListener(el, "change", () => {
el[assignKey](getValue(el));
});
},
beforeUpdate(el, { value, oldValue }, vnode) {
el[assignKey] = getModelAssigner(vnode);
if (value !== oldValue) {
el.checked = looseEqual(value, vnode.props.value);
}
}
};
function getValue(el) {
return "_value" in el ? el._value : el.value;
}
function getCheckboxValue(el, checked) {
const key = checked ? "_trueValue" : "_falseValue";
return key in el ? el[key] : checked;
}
};
function initVModelForSSR() {
vModelText.getSSRProps = ({ value }) => ({ value });
vModelRadio.getSSRProps = ({ value }, vnode) => {
File diff suppressed because one or more lines are too long
+4 -162
View File
@@ -1,10 +1,10 @@
/**
* @vue/server-renderer v3.5.13
* @vue/server-renderer v3.5.14
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/
import { createVNode, ssrUtils, ssrContextKey, warn as warn$2, Fragment, Static, Comment, Text, mergeProps, createApp, initDirectivesForSSR } from 'vue';
import { isOn, isRenderableAttrValue, isSVGTag, propsToAttrMap, isBooleanAttr, includeBooleanAttr, isSSRSafeAttrName, escapeHtml, normalizeClass, isString, normalizeStyle, stringifyStyle, makeMap, isArray, toDisplayString, extend, isFunction, EMPTY_OBJ, getGlobalThis, NOOP, isObject, looseEqual, looseIndexOf, isPromise, escapeHtmlComment, isVoidTag } from '@vue/shared';
import { makeMap, isOn, isRenderableAttrValue, isSVGTag, propsToAttrMap, isBooleanAttr, includeBooleanAttr, isSSRSafeAttrName, escapeHtml, normalizeClass, isString, normalizeStyle, stringifyStyle, isArray, toDisplayString, isFunction, EMPTY_OBJ, getGlobalThis, NOOP, isObject, looseEqual, looseIndexOf, escapeHtmlComment, isPromise, isVoidTag } from '@vue/shared';
export { includeBooleanAttr as ssrIncludeBooleanAttr } from '@vue/shared';
const shouldIgnoreProp = /* @__PURE__ */ makeMap(
@@ -177,144 +177,6 @@ function ssrInterpolate(value) {
return escapeHtml(toDisplayString(value));
}
let activeSub;
let batchDepth = 0;
let batchedSub;
function startBatch() {
batchDepth++;
}
function endBatch() {
if (--batchDepth > 0) {
return;
}
let error;
while (batchedSub) {
let e = batchedSub;
batchedSub = void 0;
while (e) {
const next = e.next;
e.next = void 0;
e.flags &= ~8;
if (e.flags & 1) {
try {
;
e.trigger();
} catch (err) {
if (!error) error = err;
}
}
e = next;
}
}
if (error) throw error;
}
let shouldTrack = true;
const trackStack = [];
function pauseTracking() {
trackStack.push(shouldTrack);
shouldTrack = false;
}
function resetTracking() {
const last = trackStack.pop();
shouldTrack = last === void 0 ? true : last;
}
class Dep {
constructor(computed) {
this.computed = computed;
this.version = 0;
/**
* Link between this dep and the current active effect
*/
this.activeLink = void 0;
/**
* Doubly linked list representing the subscribing effects (tail)
*/
this.subs = void 0;
/**
* For object property deps cleanup
*/
this.map = void 0;
this.key = void 0;
/**
* Subscriber counter
*/
this.sc = 0;
if (!!(process.env.NODE_ENV !== "production")) {
this.subsHead = void 0;
}
}
track(debugInfo) {
{
return;
}
}
trigger(debugInfo) {
this.version++;
this.notify(debugInfo);
}
notify(debugInfo) {
startBatch();
try {
if (!!(process.env.NODE_ENV !== "production")) {
for (let head = this.subsHead; head; head = head.nextSub) {
if (head.sub.onTrigger && !(head.sub.flags & 8)) {
head.sub.onTrigger(
extend(
{
effect: head.sub
},
debugInfo
)
);
}
}
}
for (let link = this.subs; link; link = link.prevSub) {
if (link.sub.notify()) {
;
link.sub.dep.notify();
}
}
} finally {
endBatch();
}
}
}
const targetMap = /* @__PURE__ */ new WeakMap();
Symbol(
!!(process.env.NODE_ENV !== "production") ? "Object iterate" : ""
);
Symbol(
!!(process.env.NODE_ENV !== "production") ? "Map keys iterate" : ""
);
Symbol(
!!(process.env.NODE_ENV !== "production") ? "Array iterate" : ""
);
function track(target, type, key) {
if (shouldTrack && activeSub) {
let depsMap = targetMap.get(target);
if (!depsMap) {
targetMap.set(target, depsMap = /* @__PURE__ */ new Map());
}
let dep = depsMap.get(key);
if (!dep) {
depsMap.set(key, dep = new Dep());
dep.map = depsMap;
dep.key = key;
}
if (!!(process.env.NODE_ENV !== "production")) {
dep.track({
target,
type,
key
});
} else {
dep.track();
}
}
}
function isProxy(value) {
return value ? !!value["__v_raw"] : false;
}
@@ -338,7 +200,6 @@ let isWarning = false;
function warn$1(msg, ...args) {
if (isWarning) return;
isWarning = true;
pauseTracking();
const instance = stack.length ? stack[stack.length - 1].component : null;
const appWarnHandler = instance && instance.appContext.config.warnHandler;
const trace = getComponentTrace();
@@ -369,7 +230,6 @@ function warn$1(msg, ...args) {
}
console.warn(...warnArgs);
}
resetTracking();
isWarning = false;
}
function getComponentTrace() {
@@ -499,13 +359,11 @@ function handleError(err, instance, type, throwInDev = true) {
cur = cur.parent;
}
if (errorHandler) {
pauseTracking();
callWithErrorHandling(errorHandler, null, 10, [
err,
exposedInstance,
errorInfo
]);
resetTracking();
return;
}
}
@@ -587,24 +445,8 @@ function setDevtoolsHook(hook, target) {
);
}
!!(process.env.NODE_ENV !== "production") ? {
get(target, key) {
track(target, "get", "");
return target[key];
},
set() {
warn$1(`setupContext.attrs is readonly.`);
return false;
},
deleteProperty() {
warn$1(`setupContext.attrs is readonly.`);
return false;
}
} : {
get(target, key) {
track(target, "get", "");
return target[key];
}
};
} : {
};
const classifyRE = /(?:^|[-_])(\w)/g;
const classify = (str) => str.replace(classifyRE, (c) => c.toUpperCase()).replace(/[-_]/g, "");
function getComponentName(Component, includeInferred = true) {
+4 -4
View File
@@ -1,6 +1,6 @@
{
"name": "@vue/server-renderer",
"version": "3.5.13",
"version": "3.5.14",
"description": "@vue/server-renderer",
"main": "index.js",
"module": "dist/server-renderer.esm-bundler.js",
@@ -46,10 +46,10 @@
},
"homepage": "https://github.com/vuejs/core/tree/main/packages/server-renderer#readme",
"peerDependencies": {
"vue": "3.5.13"
"vue": "3.5.14"
},
"dependencies": {
"@vue/shared": "3.5.13",
"@vue/compiler-ssr": "3.5.13"
"@vue/shared": "3.5.14",
"@vue/compiler-ssr": "3.5.14"
}
}
+1 -1
View File
@@ -1,5 +1,5 @@
/**
* @vue/shared v3.5.13
* @vue/shared v3.5.14
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/
+1 -1
View File
@@ -1,5 +1,5 @@
/**
* @vue/shared v3.5.13
* @vue/shared v3.5.14
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/
+1
View File
@@ -326,3 +326,4 @@ type OverloadProps<TOverload> = Pick<TOverload, keyof TOverload>;
type OverloadUnionRecursive<TOverload, TPartialOverload = unknown> = TOverload extends (...args: infer TArgs) => infer TReturn ? TPartialOverload extends TOverload ? never : OverloadUnionRecursive<TPartialOverload & TOverload, TPartialOverload & ((...args: TArgs) => TReturn) & OverloadProps<TOverload>> | ((...args: TArgs) => TReturn) : never;
type OverloadUnion<TOverload extends (...args: any[]) => any> = Exclude<OverloadUnionRecursive<(() => never) & TOverload>, TOverload extends () => never ? never : () => never>;
+1 -1
View File
@@ -1,5 +1,5 @@
/**
* @vue/shared v3.5.13
* @vue/shared v3.5.14
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@vue/shared",
"version": "3.5.13",
"version": "3.5.14",
"description": "internal utils shared across @vue packages",
"main": "index.js",
"module": "dist/shared.esm-bundler.js",
+1 -1
View File
@@ -1,5 +1,5 @@
/**
* vue v3.5.13
* vue v3.5.14
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/
+1 -1
View File
@@ -1,5 +1,5 @@
/**
* vue v3.5.13
* vue v3.5.14
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/
+104 -50
View File
@@ -1,5 +1,5 @@
/**
* vue v3.5.13
* vue v3.5.14
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/
@@ -396,6 +396,10 @@ class EffectScope {
* @internal
*/
this._active = true;
/**
* @internal track `on` calls, allow `on` call multiple times
*/
this._on = 0;
/**
* @internal
*/
@@ -466,14 +470,20 @@ class EffectScope {
* @internal
*/
on() {
activeEffectScope = this;
if (++this._on === 1) {
this.prevScope = activeEffectScope;
activeEffectScope = this;
}
}
/**
* This should only be called on non-detached scopes
* @internal
*/
off() {
activeEffectScope = this.parent;
if (this._on > 0 && --this._on === 0) {
activeEffectScope = this.prevScope;
this.prevScope = void 0;
}
}
stop(fromParent) {
if (this._active) {
@@ -555,7 +565,7 @@ class ReactiveEffect {
}
resume() {
if (this.flags & 64) {
this.flags &= ~64;
this.flags &= -65;
if (pausedQueueEffects.has(this)) {
pausedQueueEffects.delete(this);
this.trigger();
@@ -595,7 +605,7 @@ class ReactiveEffect {
cleanupDeps(this);
activeSub = prevEffect;
shouldTrack = prevShouldTrack;
this.flags &= ~2;
this.flags &= -3;
}
}
stop() {
@@ -606,7 +616,7 @@ class ReactiveEffect {
this.deps = this.depsTail = void 0;
cleanupEffect(this);
this.onStop && this.onStop();
this.flags &= ~1;
this.flags &= -2;
}
}
trigger() {
@@ -656,7 +666,7 @@ function endBatch() {
while (e) {
const next = e.next;
e.next = void 0;
e.flags &= ~8;
e.flags &= -9;
e = next;
}
}
@@ -667,7 +677,7 @@ function endBatch() {
while (e) {
const next = e.next;
e.next = void 0;
e.flags &= ~8;
e.flags &= -9;
if (e.flags & 1) {
try {
;
@@ -723,17 +733,16 @@ function refreshComputed(computed) {
if (computed.flags & 4 && !(computed.flags & 16)) {
return;
}
computed.flags &= ~16;
computed.flags &= -17;
if (computed.globalVersion === globalVersion) {
return;
}
computed.globalVersion = globalVersion;
const dep = computed.dep;
computed.flags |= 2;
if (dep.version > 0 && !computed.isSSR && computed.deps && !isDirty(computed)) {
computed.flags &= ~2;
if (!computed.isSSR && computed.flags & 128 && (!computed.deps && !computed._dirty || !isDirty(computed))) {
return;
}
computed.flags |= 2;
const dep = computed.dep;
const prevSub = activeSub;
const prevShouldTrack = shouldTrack;
activeSub = computed;
@@ -742,6 +751,7 @@ function refreshComputed(computed) {
prepareDeps(computed);
const value = computed.fn(computed._value);
if (dep.version === 0 || hasChanged(value, computed._value)) {
computed.flags |= 128;
computed._value = value;
dep.version++;
}
@@ -752,7 +762,7 @@ function refreshComputed(computed) {
activeSub = prevSub;
shouldTrack = prevShouldTrack;
cleanupDeps(computed);
computed.flags &= ~2;
computed.flags &= -3;
}
}
function removeSub(link, soft = false) {
@@ -771,7 +781,7 @@ function removeSub(link, soft = false) {
if (dep.subs === link) {
dep.subs = prevSub;
if (!prevSub && dep.computed) {
dep.computed.flags &= ~4;
dep.computed.flags &= -5;
for (let l = dep.computed.deps; l; l = l.nextDep) {
removeSub(l, true);
}
@@ -1704,14 +1714,14 @@ function createReactiveObject(target, isReadonly2, baseHandlers, collectionHandl
if (target["__v_raw"] && !(isReadonly2 && target["__v_isReactive"])) {
return target;
}
const existingProxy = proxyMap.get(target);
if (existingProxy) {
return existingProxy;
}
const targetType = getTargetType(target);
if (targetType === 0 /* INVALID */) {
return target;
}
const existingProxy = proxyMap.get(target);
if (existingProxy) {
return existingProxy;
}
const proxy = new Proxy(
target,
targetType === 2 /* COLLECTION */ ? collectionHandlers : baseHandlers
@@ -2555,11 +2565,11 @@ function flushPreFlushCbs(instance, seen, i = flushIndex + 1) {
queue.splice(i, 1);
i--;
if (cb.flags & 4) {
cb.flags &= ~1;
cb.flags &= -2;
}
cb();
if (!(cb.flags & 4)) {
cb.flags &= ~1;
cb.flags &= -2;
}
}
}
@@ -2584,10 +2594,10 @@ function flushPostFlushCbs(seen) {
continue;
}
if (cb.flags & 4) {
cb.flags &= ~1;
cb.flags &= -2;
}
if (!(cb.flags & 8)) cb();
cb.flags &= ~1;
cb.flags &= -2;
}
activePostFlushCbs = null;
postFlushIndex = 0;
@@ -2623,7 +2633,7 @@ function flushJobs(seen) {
for (; flushIndex < queue.length; flushIndex++) {
const job = queue[flushIndex];
if (job) {
job.flags &= ~1;
job.flags &= -2;
}
}
flushIndex = -1;
@@ -3112,7 +3122,7 @@ const TeleportImpl = {
namespace,
slotScopeIds
);
traverseStaticChildren(n1, n2, true);
traverseStaticChildren(n1, n2, false);
} else if (!optimized) {
patchChildren(
n1,
@@ -4797,6 +4807,9 @@ const KeepAliveImpl = {
{
devtoolsComponentAdded(instance2);
}
{
instance2.__keepAliveStorageContainer = storageContainer;
}
};
function unmount(vnode) {
resetShapeFlag(vnode);
@@ -4884,7 +4897,7 @@ const KeepAliveImpl = {
);
const { include, exclude, max } = props;
if (include && (!name || !matches(include, name)) || exclude && name && matches(exclude, name)) {
vnode.shapeFlag &= ~256;
vnode.shapeFlag &= -257;
current = vnode;
return rawVNode;
}
@@ -4971,8 +4984,8 @@ function injectToKeepAliveRoot(hook, type, target, keepAliveRoot) {
}, target);
}
function resetShapeFlag(vnode) {
vnode.shapeFlag &= ~256;
vnode.shapeFlag &= ~512;
vnode.shapeFlag &= -257;
vnode.shapeFlag &= -513;
}
function getInnerChild(vnode) {
return vnode.shapeFlag & 128 ? vnode.ssContent : vnode;
@@ -5087,14 +5100,16 @@ function renderList(source, renderItem, cache, index) {
if (sourceIsArray || isString(source)) {
const sourceIsReactiveArray = sourceIsArray && isReactive(source);
let needsWrap = false;
let isReadonlySource = false;
if (sourceIsReactiveArray) {
needsWrap = !isShallow(source);
isReadonlySource = isReadonly(source);
source = shallowReadArray(source);
}
ret = new Array(source.length);
for (let i = 0, l = source.length; i < l; i++) {
ret[i] = renderItem(
needsWrap ? toReactive(source[i]) : source[i],
needsWrap ? isReadonlySource ? toReadonly(toReactive(source[i])) : toReactive(source[i]) : source[i],
i,
void 0,
cached && cached[i]
@@ -6116,11 +6131,9 @@ function createAppAPI(render, hydrate) {
}
{
context.reload = () => {
render(
cloneVNode(vnode),
rootContainer,
namespace
);
const cloned = cloneVNode(vnode);
cloned.el = null;
render(cloned, rootContainer, namespace);
};
}
if (isHydrate && hydrate) {
@@ -6643,7 +6656,7 @@ const normalizeSlot = (key, rawSlot, ctx) => {
return rawSlot;
}
const normalized = withCtx((...args) => {
if (currentInstance && (!ctx || ctx.root === currentInstance.root)) {
if (currentInstance && !(ctx === null && currentRenderingInstance) && !(ctx && ctx.root !== currentInstance.root)) {
warn$1(
`Slot "${key}" invoked outside of the render function: this will not track dependencies used in the slot. Invoke the slot function inside the render function instead.`
);
@@ -6682,7 +6695,7 @@ const normalizeVNodeSlots = (instance, children) => {
};
const assignSlots = (slots, children, optimized) => {
for (const key in children) {
if (optimized || key !== "_") {
if (optimized || !isInternalKey(key)) {
slots[key] = children[key];
}
}
@@ -7368,8 +7381,8 @@ function baseCreateRenderer(options, createHydrationFns) {
endMeasure(instance, `init`);
}
}
if (isHmrUpdating) initialVNode.el = null;
if (instance.asyncDep) {
if (isHmrUpdating) initialVNode.el = null;
parentSuspense && parentSuspense.registerDep(instance, setupRenderEffect, optimized);
if (!initialVNode.el) {
const placeholder = instance.subTree = createVNode(Comment);
@@ -7931,7 +7944,13 @@ function baseCreateRenderer(options, createHydrationFns) {
queuePostRenderEffect(() => transition.enter(el), parentSuspense);
} else {
const { leave, delayLeave, afterLeave } = transition;
const remove2 = () => hostInsert(el, container, anchor);
const remove2 = () => {
if (vnode.ctx.isUnmounted) {
hostRemove(el);
} else {
hostInsert(el, container, anchor);
}
};
const performLeave = () => {
leave(el, () => {
remove2();
@@ -7964,7 +7983,9 @@ function baseCreateRenderer(options, createHydrationFns) {
optimized = false;
}
if (ref != null) {
pauseTracking();
setRef(ref, null, parentSuspense, vnode, true);
resetTracking();
}
if (cacheIndex != null) {
parentComponent.renderCache[cacheIndex] = void 0;
@@ -8076,12 +8097,27 @@ function baseCreateRenderer(options, createHydrationFns) {
if (instance.type.__hmrId) {
unregisterHMR(instance);
}
const { bum, scope, job, subTree, um, m, a } = instance;
const {
bum,
scope,
job,
subTree,
um,
m,
a,
parent,
slots: { __: slotCacheKeys }
} = instance;
invalidateMount(m);
invalidateMount(a);
if (bum) {
invokeArrayFns(bum);
}
if (parent && isArray(slotCacheKeys)) {
slotCacheKeys.forEach((v) => {
parent.renderCache[v] = void 0;
});
}
scope.stop();
if (job) {
job.flags |= 8;
@@ -8177,8 +8213,8 @@ function toggleRecurse({ effect, job }, allowed) {
effect.flags |= 32;
job.flags |= 4;
} else {
effect.flags &= ~32;
job.flags &= ~4;
effect.flags &= -33;
job.flags &= -5;
}
}
function needTransition(parentSuspense, transition) {
@@ -8205,6 +8241,9 @@ function traverseStaticChildren(n1, n2, shallow = false) {
if (c2.type === Comment && !c2.el) {
c2.el = c1.el;
}
{
c2.el && (c2.el.__vnode = c2);
}
}
}
}
@@ -9550,8 +9589,8 @@ function isSameVNodeType(n1, n2) {
if (n2.shapeFlag & 6 && n1.component) {
const dirtyInstances = hmrDirtyComponents.get(n2.type);
if (dirtyInstances && dirtyInstances.has(n1.component)) {
n1.shapeFlag &= ~256;
n2.shapeFlag &= ~512;
n1.shapeFlag &= -257;
n2.shapeFlag &= -513;
return false;
}
}
@@ -10012,7 +10051,7 @@ function setupComponent(instance, isSSR = false, optimized = false) {
const { props, children } = instance.vnode;
const isStateful = isStatefulComponent(instance);
initProps(instance, props, isStateful, isSSR);
initSlots(instance, children, optimized);
initSlots(instance, children, optimized || isSSR);
const setupResult = isStateful ? setupStatefulComponent(instance, isSSR) : void 0;
isSSR && setInSSRSetupState(false);
return setupResult;
@@ -10343,13 +10382,15 @@ function initCustomFormatter() {
if (obj.__isVue) {
return ["div", vueStyle, `VueInstance`];
} else if (isRef(obj)) {
pauseTracking();
const value = obj.value;
resetTracking();
return [
"div",
{},
["span", vueStyle, genRefFlag(obj)],
"<",
// avoid debugger accessing value affecting behavior
formatValue("_value" in obj ? obj._value : obj),
formatValue(value),
`>`
];
} else if (isReactive(obj)) {
@@ -10530,7 +10571,7 @@ function isMemoSame(cached, memo) {
return true;
}
const version = "3.5.13";
const version = "3.5.14";
const warn = warn$1 ;
const ErrorTypeStrings = ErrorTypeStrings$1 ;
const devtools = devtools$1 ;
@@ -11348,7 +11389,7 @@ function shouldSetAsProp(el, key, value, isSVG) {
}
return false;
}
if (key === "spellcheck" || key === "draggable" || key === "translate") {
if (key === "spellcheck" || key === "draggable" || key === "translate" || key === "autocorrect") {
return false;
}
if (key === "form") {
@@ -11837,6 +11878,7 @@ const TransitionGroupImpl = /* @__PURE__ */ decorate({
instance.vnode.el,
moveClass
)) {
prevChildren = [];
return;
}
prevChildren.forEach(callPendingCbs);
@@ -11860,6 +11902,7 @@ const TransitionGroupImpl = /* @__PURE__ */ decorate({
};
el.addEventListener("transitionend", cb);
});
prevChildren = [];
});
return () => {
const rawProps = toRaw(props);
@@ -14709,6 +14752,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(
@@ -14718,6 +14762,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)
);
@@ -14727,6 +14772,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)
);
@@ -14736,9 +14782,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) {
@@ -17383,8 +17438,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)
);
+9 -6
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1,5 +1,5 @@
/**
* vue v3.5.13
* vue v3.5.14
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/
+104 -50
View File
@@ -1,5 +1,5 @@
/**
* vue v3.5.13
* vue v3.5.14
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/
@@ -399,6 +399,10 @@ var Vue = (function (exports) {
* @internal
*/
this._active = true;
/**
* @internal track `on` calls, allow `on` call multiple times
*/
this._on = 0;
/**
* @internal
*/
@@ -469,14 +473,20 @@ var Vue = (function (exports) {
* @internal
*/
on() {
activeEffectScope = this;
if (++this._on === 1) {
this.prevScope = activeEffectScope;
activeEffectScope = this;
}
}
/**
* This should only be called on non-detached scopes
* @internal
*/
off() {
activeEffectScope = this.parent;
if (this._on > 0 && --this._on === 0) {
activeEffectScope = this.prevScope;
this.prevScope = void 0;
}
}
stop(fromParent) {
if (this._active) {
@@ -558,7 +568,7 @@ var Vue = (function (exports) {
}
resume() {
if (this.flags & 64) {
this.flags &= ~64;
this.flags &= -65;
if (pausedQueueEffects.has(this)) {
pausedQueueEffects.delete(this);
this.trigger();
@@ -598,7 +608,7 @@ var Vue = (function (exports) {
cleanupDeps(this);
activeSub = prevEffect;
shouldTrack = prevShouldTrack;
this.flags &= ~2;
this.flags &= -3;
}
}
stop() {
@@ -609,7 +619,7 @@ var Vue = (function (exports) {
this.deps = this.depsTail = void 0;
cleanupEffect(this);
this.onStop && this.onStop();
this.flags &= ~1;
this.flags &= -2;
}
}
trigger() {
@@ -659,7 +669,7 @@ var Vue = (function (exports) {
while (e) {
const next = e.next;
e.next = void 0;
e.flags &= ~8;
e.flags &= -9;
e = next;
}
}
@@ -670,7 +680,7 @@ var Vue = (function (exports) {
while (e) {
const next = e.next;
e.next = void 0;
e.flags &= ~8;
e.flags &= -9;
if (e.flags & 1) {
try {
;
@@ -726,17 +736,16 @@ var Vue = (function (exports) {
if (computed.flags & 4 && !(computed.flags & 16)) {
return;
}
computed.flags &= ~16;
computed.flags &= -17;
if (computed.globalVersion === globalVersion) {
return;
}
computed.globalVersion = globalVersion;
const dep = computed.dep;
computed.flags |= 2;
if (dep.version > 0 && !computed.isSSR && computed.deps && !isDirty(computed)) {
computed.flags &= ~2;
if (!computed.isSSR && computed.flags & 128 && (!computed.deps && !computed._dirty || !isDirty(computed))) {
return;
}
computed.flags |= 2;
const dep = computed.dep;
const prevSub = activeSub;
const prevShouldTrack = shouldTrack;
activeSub = computed;
@@ -745,6 +754,7 @@ var Vue = (function (exports) {
prepareDeps(computed);
const value = computed.fn(computed._value);
if (dep.version === 0 || hasChanged(value, computed._value)) {
computed.flags |= 128;
computed._value = value;
dep.version++;
}
@@ -755,7 +765,7 @@ var Vue = (function (exports) {
activeSub = prevSub;
shouldTrack = prevShouldTrack;
cleanupDeps(computed);
computed.flags &= ~2;
computed.flags &= -3;
}
}
function removeSub(link, soft = false) {
@@ -774,7 +784,7 @@ var Vue = (function (exports) {
if (dep.subs === link) {
dep.subs = prevSub;
if (!prevSub && dep.computed) {
dep.computed.flags &= ~4;
dep.computed.flags &= -5;
for (let l = dep.computed.deps; l; l = l.nextDep) {
removeSub(l, true);
}
@@ -1707,14 +1717,14 @@ var Vue = (function (exports) {
if (target["__v_raw"] && !(isReadonly2 && target["__v_isReactive"])) {
return target;
}
const existingProxy = proxyMap.get(target);
if (existingProxy) {
return existingProxy;
}
const targetType = getTargetType(target);
if (targetType === 0 /* INVALID */) {
return target;
}
const existingProxy = proxyMap.get(target);
if (existingProxy) {
return existingProxy;
}
const proxy = new Proxy(
target,
targetType === 2 /* COLLECTION */ ? collectionHandlers : baseHandlers
@@ -2558,11 +2568,11 @@ var Vue = (function (exports) {
queue.splice(i, 1);
i--;
if (cb.flags & 4) {
cb.flags &= ~1;
cb.flags &= -2;
}
cb();
if (!(cb.flags & 4)) {
cb.flags &= ~1;
cb.flags &= -2;
}
}
}
@@ -2587,10 +2597,10 @@ var Vue = (function (exports) {
continue;
}
if (cb.flags & 4) {
cb.flags &= ~1;
cb.flags &= -2;
}
if (!(cb.flags & 8)) cb();
cb.flags &= ~1;
cb.flags &= -2;
}
activePostFlushCbs = null;
postFlushIndex = 0;
@@ -2626,7 +2636,7 @@ var Vue = (function (exports) {
for (; flushIndex < queue.length; flushIndex++) {
const job = queue[flushIndex];
if (job) {
job.flags &= ~1;
job.flags &= -2;
}
}
flushIndex = -1;
@@ -3115,7 +3125,7 @@ var Vue = (function (exports) {
namespace,
slotScopeIds
);
traverseStaticChildren(n1, n2, true);
traverseStaticChildren(n1, n2, false);
} else if (!optimized) {
patchChildren(
n1,
@@ -4794,6 +4804,9 @@ Server rendered element contains fewer child nodes than client vdom.`
{
devtoolsComponentAdded(instance2);
}
{
instance2.__keepAliveStorageContainer = storageContainer;
}
};
function unmount(vnode) {
resetShapeFlag(vnode);
@@ -4881,7 +4894,7 @@ Server rendered element contains fewer child nodes than client vdom.`
);
const { include, exclude, max } = props;
if (include && (!name || !matches(include, name)) || exclude && name && matches(exclude, name)) {
vnode.shapeFlag &= ~256;
vnode.shapeFlag &= -257;
current = vnode;
return rawVNode;
}
@@ -4968,8 +4981,8 @@ Server rendered element contains fewer child nodes than client vdom.`
}, target);
}
function resetShapeFlag(vnode) {
vnode.shapeFlag &= ~256;
vnode.shapeFlag &= ~512;
vnode.shapeFlag &= -257;
vnode.shapeFlag &= -513;
}
function getInnerChild(vnode) {
return vnode.shapeFlag & 128 ? vnode.ssContent : vnode;
@@ -5084,14 +5097,16 @@ If this is a native custom element, make sure to exclude it from component resol
if (sourceIsArray || isString(source)) {
const sourceIsReactiveArray = sourceIsArray && isReactive(source);
let needsWrap = false;
let isReadonlySource = false;
if (sourceIsReactiveArray) {
needsWrap = !isShallow(source);
isReadonlySource = isReadonly(source);
source = shallowReadArray(source);
}
ret = new Array(source.length);
for (let i = 0, l = source.length; i < l; i++) {
ret[i] = renderItem(
needsWrap ? toReactive(source[i]) : source[i],
needsWrap ? isReadonlySource ? toReadonly(toReactive(source[i])) : toReactive(source[i]) : source[i],
i,
void 0,
cached && cached[i]
@@ -6110,11 +6125,9 @@ If this is a native custom element, make sure to exclude it from component resol
}
{
context.reload = () => {
render(
cloneVNode(vnode),
rootContainer,
namespace
);
const cloned = cloneVNode(vnode);
cloned.el = null;
render(cloned, rootContainer, namespace);
};
}
if (isHydrate && hydrate) {
@@ -6637,7 +6650,7 @@ If you want to remount the same app, move your app creation logic into a factory
return rawSlot;
}
const normalized = withCtx((...args) => {
if (currentInstance && (!ctx || ctx.root === currentInstance.root)) {
if (currentInstance && !(ctx === null && currentRenderingInstance) && !(ctx && ctx.root !== currentInstance.root)) {
warn$1(
`Slot "${key}" invoked outside of the render function: this will not track dependencies used in the slot. Invoke the slot function inside the render function instead.`
);
@@ -6676,7 +6689,7 @@ If you want to remount the same app, move your app creation logic into a factory
};
const assignSlots = (slots, children, optimized) => {
for (const key in children) {
if (optimized || key !== "_") {
if (optimized || !isInternalKey(key)) {
slots[key] = children[key];
}
}
@@ -7362,8 +7375,8 @@ If you want to remount the same app, move your app creation logic into a factory
endMeasure(instance, `init`);
}
}
if (isHmrUpdating) initialVNode.el = null;
if (instance.asyncDep) {
if (isHmrUpdating) initialVNode.el = null;
parentSuspense && parentSuspense.registerDep(instance, setupRenderEffect, optimized);
if (!initialVNode.el) {
const placeholder = instance.subTree = createVNode(Comment);
@@ -7925,7 +7938,13 @@ If you want to remount the same app, move your app creation logic into a factory
queuePostRenderEffect(() => transition.enter(el), parentSuspense);
} else {
const { leave, delayLeave, afterLeave } = transition;
const remove2 = () => hostInsert(el, container, anchor);
const remove2 = () => {
if (vnode.ctx.isUnmounted) {
hostRemove(el);
} else {
hostInsert(el, container, anchor);
}
};
const performLeave = () => {
leave(el, () => {
remove2();
@@ -7958,7 +7977,9 @@ If you want to remount the same app, move your app creation logic into a factory
optimized = false;
}
if (ref != null) {
pauseTracking();
setRef(ref, null, parentSuspense, vnode, true);
resetTracking();
}
if (cacheIndex != null) {
parentComponent.renderCache[cacheIndex] = void 0;
@@ -8070,12 +8091,27 @@ If you want to remount the same app, move your app creation logic into a factory
if (instance.type.__hmrId) {
unregisterHMR(instance);
}
const { bum, scope, job, subTree, um, m, a } = instance;
const {
bum,
scope,
job,
subTree,
um,
m,
a,
parent,
slots: { __: slotCacheKeys }
} = instance;
invalidateMount(m);
invalidateMount(a);
if (bum) {
invokeArrayFns(bum);
}
if (parent && isArray(slotCacheKeys)) {
slotCacheKeys.forEach((v) => {
parent.renderCache[v] = void 0;
});
}
scope.stop();
if (job) {
job.flags |= 8;
@@ -8171,8 +8207,8 @@ If you want to remount the same app, move your app creation logic into a factory
effect.flags |= 32;
job.flags |= 4;
} else {
effect.flags &= ~32;
job.flags &= ~4;
effect.flags &= -33;
job.flags &= -5;
}
}
function needTransition(parentSuspense, transition) {
@@ -8199,6 +8235,9 @@ If you want to remount the same app, move your app creation logic into a factory
if (c2.type === Comment && !c2.el) {
c2.el = c1.el;
}
{
c2.el && (c2.el.__vnode = c2);
}
}
}
}
@@ -9516,8 +9555,8 @@ If you want to remount the same app, move your app creation logic into a factory
if (n2.shapeFlag & 6 && n1.component) {
const dirtyInstances = hmrDirtyComponents.get(n2.type);
if (dirtyInstances && dirtyInstances.has(n1.component)) {
n1.shapeFlag &= ~256;
n2.shapeFlag &= ~512;
n1.shapeFlag &= -257;
n2.shapeFlag &= -513;
return false;
}
}
@@ -9966,7 +10005,7 @@ Component that was made reactive: `,
const { props, children } = instance.vnode;
const isStateful = isStatefulComponent(instance);
initProps(instance, props, isStateful, isSSR);
initSlots(instance, children, optimized);
initSlots(instance, children, optimized || isSSR);
const setupResult = isStateful ? setupStatefulComponent(instance, isSSR) : void 0;
isSSR && setInSSRSetupState(false);
return setupResult;
@@ -10295,13 +10334,15 @@ Component that was made reactive: `,
if (obj.__isVue) {
return ["div", vueStyle, `VueInstance`];
} else if (isRef(obj)) {
pauseTracking();
const value = obj.value;
resetTracking();
return [
"div",
{},
["span", vueStyle, genRefFlag(obj)],
"<",
// avoid debugger accessing value affecting behavior
formatValue("_value" in obj ? obj._value : obj),
formatValue(value),
`>`
];
} else if (isReactive(obj)) {
@@ -10482,7 +10523,7 @@ Component that was made reactive: `,
return true;
}
const version = "3.5.13";
const version = "3.5.14";
const warn = warn$1 ;
const ErrorTypeStrings = ErrorTypeStrings$1 ;
const devtools = devtools$1 ;
@@ -11281,7 +11322,7 @@ Expected function or array of functions, received type ${typeof value}.`
}
return false;
}
if (key === "spellcheck" || key === "draggable" || key === "translate") {
if (key === "spellcheck" || key === "draggable" || key === "translate" || key === "autocorrect") {
return false;
}
if (key === "form") {
@@ -11758,6 +11799,7 @@ Expected function or array of functions, received type ${typeof value}.`
instance.vnode.el,
moveClass
)) {
prevChildren = [];
return;
}
prevChildren.forEach(callPendingCbs);
@@ -11781,6 +11823,7 @@ Expected function or array of functions, received type ${typeof value}.`
};
el.addEventListener("transitionend", cb);
});
prevChildren = [];
});
return () => {
const rawProps = toRaw(props);
@@ -14417,6 +14460,7 @@ Use a v-bind binding combined with a v-on listener that emits update:x event ins
}
}
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(
@@ -14426,6 +14470,7 @@ Use a v-bind binding combined with a v-on listener that emits update:x event ins
} 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)
);
@@ -14435,6 +14480,7 @@ Use a v-bind binding combined with a v-on listener that emits update:x event ins
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)
);
@@ -14444,9 +14490,18 @@ Use a v-bind binding combined with a v-on listener that emits update:x event ins
}
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) {
@@ -17091,8 +17146,7 @@ Use a v-bind binding combined with a v-on listener that emits update:x event ins
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)
);
+9 -6
View File
File diff suppressed because one or more lines are too long
+91 -48
View File
@@ -1,5 +1,5 @@
/**
* vue v3.5.13
* vue v3.5.14
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/
@@ -323,6 +323,10 @@ class EffectScope {
* @internal
*/
this._active = true;
/**
* @internal track `on` calls, allow `on` call multiple times
*/
this._on = 0;
/**
* @internal
*/
@@ -393,14 +397,20 @@ class EffectScope {
* @internal
*/
on() {
activeEffectScope = this;
if (++this._on === 1) {
this.prevScope = activeEffectScope;
activeEffectScope = this;
}
}
/**
* This should only be called on non-detached scopes
* @internal
*/
off() {
activeEffectScope = this.parent;
if (this._on > 0 && --this._on === 0) {
activeEffectScope = this.prevScope;
this.prevScope = void 0;
}
}
stop(fromParent) {
if (this._active) {
@@ -482,7 +492,7 @@ class ReactiveEffect {
}
resume() {
if (this.flags & 64) {
this.flags &= ~64;
this.flags &= -65;
if (pausedQueueEffects.has(this)) {
pausedQueueEffects.delete(this);
this.trigger();
@@ -522,7 +532,7 @@ class ReactiveEffect {
cleanupDeps(this);
activeSub = prevEffect;
shouldTrack = prevShouldTrack;
this.flags &= ~2;
this.flags &= -3;
}
}
stop() {
@@ -533,7 +543,7 @@ class ReactiveEffect {
this.deps = this.depsTail = void 0;
cleanupEffect(this);
this.onStop && this.onStop();
this.flags &= ~1;
this.flags &= -2;
}
}
trigger() {
@@ -583,7 +593,7 @@ function endBatch() {
while (e) {
const next = e.next;
e.next = void 0;
e.flags &= ~8;
e.flags &= -9;
e = next;
}
}
@@ -594,7 +604,7 @@ function endBatch() {
while (e) {
const next = e.next;
e.next = void 0;
e.flags &= ~8;
e.flags &= -9;
if (e.flags & 1) {
try {
;
@@ -650,17 +660,16 @@ function refreshComputed(computed) {
if (computed.flags & 4 && !(computed.flags & 16)) {
return;
}
computed.flags &= ~16;
computed.flags &= -17;
if (computed.globalVersion === globalVersion) {
return;
}
computed.globalVersion = globalVersion;
const dep = computed.dep;
computed.flags |= 2;
if (dep.version > 0 && !computed.isSSR && computed.deps && !isDirty(computed)) {
computed.flags &= ~2;
if (!computed.isSSR && computed.flags & 128 && (!computed.deps && !computed._dirty || !isDirty(computed))) {
return;
}
computed.flags |= 2;
const dep = computed.dep;
const prevSub = activeSub;
const prevShouldTrack = shouldTrack;
activeSub = computed;
@@ -669,6 +678,7 @@ function refreshComputed(computed) {
prepareDeps(computed);
const value = computed.fn(computed._value);
if (dep.version === 0 || hasChanged(value, computed._value)) {
computed.flags |= 128;
computed._value = value;
dep.version++;
}
@@ -679,7 +689,7 @@ function refreshComputed(computed) {
activeSub = prevSub;
shouldTrack = prevShouldTrack;
cleanupDeps(computed);
computed.flags &= ~2;
computed.flags &= -3;
}
}
function removeSub(link, soft = false) {
@@ -698,7 +708,7 @@ function removeSub(link, soft = false) {
if (dep.subs === link) {
dep.subs = prevSub;
if (!prevSub && dep.computed) {
dep.computed.flags &= ~4;
dep.computed.flags &= -5;
for (let l = dep.computed.deps; l; l = l.nextDep) {
removeSub(l, true);
}
@@ -1631,14 +1641,14 @@ function createReactiveObject(target, isReadonly2, baseHandlers, collectionHandl
if (target["__v_raw"] && !(isReadonly2 && target["__v_isReactive"])) {
return target;
}
const existingProxy = proxyMap.get(target);
if (existingProxy) {
return existingProxy;
}
const targetType = getTargetType(target);
if (targetType === 0 /* INVALID */) {
return target;
}
const existingProxy = proxyMap.get(target);
if (existingProxy) {
return existingProxy;
}
const proxy = new Proxy(
target,
targetType === 2 /* COLLECTION */ ? collectionHandlers : baseHandlers
@@ -2482,11 +2492,11 @@ function flushPreFlushCbs(instance, seen, i = flushIndex + 1) {
queue.splice(i, 1);
i--;
if (cb.flags & 4) {
cb.flags &= ~1;
cb.flags &= -2;
}
cb();
if (!(cb.flags & 4)) {
cb.flags &= ~1;
cb.flags &= -2;
}
}
}
@@ -2511,10 +2521,10 @@ function flushPostFlushCbs(seen) {
continue;
}
if (cb.flags & 4) {
cb.flags &= ~1;
cb.flags &= -2;
}
if (!(cb.flags & 8)) cb();
cb.flags &= ~1;
cb.flags &= -2;
}
activePostFlushCbs = null;
postFlushIndex = 0;
@@ -2550,7 +2560,7 @@ function flushJobs(seen) {
for (; flushIndex < queue.length; flushIndex++) {
const job = queue[flushIndex];
if (job) {
job.flags &= ~1;
job.flags &= -2;
}
}
flushIndex = -1;
@@ -3039,7 +3049,7 @@ const TeleportImpl = {
namespace,
slotScopeIds
);
traverseStaticChildren(n1, n2, true);
traverseStaticChildren(n1, n2, false);
} else if (!optimized) {
patchChildren(
n1,
@@ -4724,6 +4734,9 @@ const KeepAliveImpl = {
{
devtoolsComponentAdded(instance2);
}
{
instance2.__keepAliveStorageContainer = storageContainer;
}
};
function unmount(vnode) {
resetShapeFlag(vnode);
@@ -4811,7 +4824,7 @@ const KeepAliveImpl = {
);
const { include, exclude, max } = props;
if (include && (!name || !matches(include, name)) || exclude && name && matches(exclude, name)) {
vnode.shapeFlag &= ~256;
vnode.shapeFlag &= -257;
current = vnode;
return rawVNode;
}
@@ -4898,8 +4911,8 @@ function injectToKeepAliveRoot(hook, type, target, keepAliveRoot) {
}, target);
}
function resetShapeFlag(vnode) {
vnode.shapeFlag &= ~256;
vnode.shapeFlag &= ~512;
vnode.shapeFlag &= -257;
vnode.shapeFlag &= -513;
}
function getInnerChild(vnode) {
return vnode.shapeFlag & 128 ? vnode.ssContent : vnode;
@@ -5014,14 +5027,16 @@ function renderList(source, renderItem, cache, index) {
if (sourceIsArray || isString(source)) {
const sourceIsReactiveArray = sourceIsArray && isReactive(source);
let needsWrap = false;
let isReadonlySource = false;
if (sourceIsReactiveArray) {
needsWrap = !isShallow(source);
isReadonlySource = isReadonly(source);
source = shallowReadArray(source);
}
ret = new Array(source.length);
for (let i = 0, l = source.length; i < l; i++) {
ret[i] = renderItem(
needsWrap ? toReactive(source[i]) : source[i],
needsWrap ? isReadonlySource ? toReadonly(toReactive(source[i])) : toReactive(source[i]) : source[i],
i,
void 0,
cached && cached[i]
@@ -6043,11 +6058,9 @@ function createAppAPI(render, hydrate) {
}
{
context.reload = () => {
render(
cloneVNode(vnode),
rootContainer,
namespace
);
const cloned = cloneVNode(vnode);
cloned.el = null;
render(cloned, rootContainer, namespace);
};
}
if (isHydrate && hydrate) {
@@ -6570,7 +6583,7 @@ const normalizeSlot = (key, rawSlot, ctx) => {
return rawSlot;
}
const normalized = withCtx((...args) => {
if (currentInstance && (!ctx || ctx.root === currentInstance.root)) {
if (currentInstance && !(ctx === null && currentRenderingInstance) && !(ctx && ctx.root !== currentInstance.root)) {
warn$1(
`Slot "${key}" invoked outside of the render function: this will not track dependencies used in the slot. Invoke the slot function inside the render function instead.`
);
@@ -6609,7 +6622,7 @@ const normalizeVNodeSlots = (instance, children) => {
};
const assignSlots = (slots, children, optimized) => {
for (const key in children) {
if (optimized || key !== "_") {
if (optimized || !isInternalKey(key)) {
slots[key] = children[key];
}
}
@@ -7295,8 +7308,8 @@ function baseCreateRenderer(options, createHydrationFns) {
endMeasure(instance, `init`);
}
}
if (isHmrUpdating) initialVNode.el = null;
if (instance.asyncDep) {
if (isHmrUpdating) initialVNode.el = null;
parentSuspense && parentSuspense.registerDep(instance, setupRenderEffect, optimized);
if (!initialVNode.el) {
const placeholder = instance.subTree = createVNode(Comment);
@@ -7858,7 +7871,13 @@ function baseCreateRenderer(options, createHydrationFns) {
queuePostRenderEffect(() => transition.enter(el), parentSuspense);
} else {
const { leave, delayLeave, afterLeave } = transition;
const remove2 = () => hostInsert(el, container, anchor);
const remove2 = () => {
if (vnode.ctx.isUnmounted) {
hostRemove(el);
} else {
hostInsert(el, container, anchor);
}
};
const performLeave = () => {
leave(el, () => {
remove2();
@@ -7891,7 +7910,9 @@ function baseCreateRenderer(options, createHydrationFns) {
optimized = false;
}
if (ref != null) {
pauseTracking();
setRef(ref, null, parentSuspense, vnode, true);
resetTracking();
}
if (cacheIndex != null) {
parentComponent.renderCache[cacheIndex] = void 0;
@@ -8003,12 +8024,27 @@ function baseCreateRenderer(options, createHydrationFns) {
if (instance.type.__hmrId) {
unregisterHMR(instance);
}
const { bum, scope, job, subTree, um, m, a } = instance;
const {
bum,
scope,
job,
subTree,
um,
m,
a,
parent,
slots: { __: slotCacheKeys }
} = instance;
invalidateMount(m);
invalidateMount(a);
if (bum) {
invokeArrayFns(bum);
}
if (parent && isArray(slotCacheKeys)) {
slotCacheKeys.forEach((v) => {
parent.renderCache[v] = void 0;
});
}
scope.stop();
if (job) {
job.flags |= 8;
@@ -8104,8 +8140,8 @@ function toggleRecurse({ effect, job }, allowed) {
effect.flags |= 32;
job.flags |= 4;
} else {
effect.flags &= ~32;
job.flags &= ~4;
effect.flags &= -33;
job.flags &= -5;
}
}
function needTransition(parentSuspense, transition) {
@@ -8132,6 +8168,9 @@ function traverseStaticChildren(n1, n2, shallow = false) {
if (c2.type === Comment && !c2.el) {
c2.el = c1.el;
}
{
c2.el && (c2.el.__vnode = c2);
}
}
}
}
@@ -9477,8 +9516,8 @@ function isSameVNodeType(n1, n2) {
if (n2.shapeFlag & 6 && n1.component) {
const dirtyInstances = hmrDirtyComponents.get(n2.type);
if (dirtyInstances && dirtyInstances.has(n1.component)) {
n1.shapeFlag &= ~256;
n2.shapeFlag &= ~512;
n1.shapeFlag &= -257;
n2.shapeFlag &= -513;
return false;
}
}
@@ -9939,7 +9978,7 @@ function setupComponent(instance, isSSR = false, optimized = false) {
const { props, children } = instance.vnode;
const isStateful = isStatefulComponent(instance);
initProps(instance, props, isStateful, isSSR);
initSlots(instance, children, optimized);
initSlots(instance, children, optimized || isSSR);
const setupResult = isStateful ? setupStatefulComponent(instance, isSSR) : void 0;
isSSR && setInSSRSetupState(false);
return setupResult;
@@ -10270,13 +10309,15 @@ function initCustomFormatter() {
if (obj.__isVue) {
return ["div", vueStyle, `VueInstance`];
} else if (isRef(obj)) {
pauseTracking();
const value = obj.value;
resetTracking();
return [
"div",
{},
["span", vueStyle, genRefFlag(obj)],
"<",
// avoid debugger accessing value affecting behavior
formatValue("_value" in obj ? obj._value : obj),
formatValue(value),
`>`
];
} else if (isReactive(obj)) {
@@ -10457,7 +10498,7 @@ function isMemoSame(cached, memo) {
return true;
}
const version = "3.5.13";
const version = "3.5.14";
const warn = warn$1 ;
const ErrorTypeStrings = ErrorTypeStrings$1 ;
const devtools = devtools$1 ;
@@ -11275,7 +11316,7 @@ function shouldSetAsProp(el, key, value, isSVG) {
}
return false;
}
if (key === "spellcheck" || key === "draggable" || key === "translate") {
if (key === "spellcheck" || key === "draggable" || key === "translate" || key === "autocorrect") {
return false;
}
if (key === "form") {
@@ -11764,6 +11805,7 @@ const TransitionGroupImpl = /* @__PURE__ */ decorate({
instance.vnode.el,
moveClass
)) {
prevChildren = [];
return;
}
prevChildren.forEach(callPendingCbs);
@@ -11787,6 +11829,7 @@ const TransitionGroupImpl = /* @__PURE__ */ decorate({
};
el.addEventListener("transitionend", cb);
});
prevChildren = [];
});
return () => {
const rawProps = toRaw(props);
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1,5 +1,5 @@
/**
* vue v3.5.13
* vue v3.5.14
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/
+91 -48
View File
@@ -1,5 +1,5 @@
/**
* vue v3.5.13
* vue v3.5.14
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/
@@ -326,6 +326,10 @@ var Vue = (function (exports) {
* @internal
*/
this._active = true;
/**
* @internal track `on` calls, allow `on` call multiple times
*/
this._on = 0;
/**
* @internal
*/
@@ -396,14 +400,20 @@ var Vue = (function (exports) {
* @internal
*/
on() {
activeEffectScope = this;
if (++this._on === 1) {
this.prevScope = activeEffectScope;
activeEffectScope = this;
}
}
/**
* This should only be called on non-detached scopes
* @internal
*/
off() {
activeEffectScope = this.parent;
if (this._on > 0 && --this._on === 0) {
activeEffectScope = this.prevScope;
this.prevScope = void 0;
}
}
stop(fromParent) {
if (this._active) {
@@ -485,7 +495,7 @@ var Vue = (function (exports) {
}
resume() {
if (this.flags & 64) {
this.flags &= ~64;
this.flags &= -65;
if (pausedQueueEffects.has(this)) {
pausedQueueEffects.delete(this);
this.trigger();
@@ -525,7 +535,7 @@ var Vue = (function (exports) {
cleanupDeps(this);
activeSub = prevEffect;
shouldTrack = prevShouldTrack;
this.flags &= ~2;
this.flags &= -3;
}
}
stop() {
@@ -536,7 +546,7 @@ var Vue = (function (exports) {
this.deps = this.depsTail = void 0;
cleanupEffect(this);
this.onStop && this.onStop();
this.flags &= ~1;
this.flags &= -2;
}
}
trigger() {
@@ -586,7 +596,7 @@ var Vue = (function (exports) {
while (e) {
const next = e.next;
e.next = void 0;
e.flags &= ~8;
e.flags &= -9;
e = next;
}
}
@@ -597,7 +607,7 @@ var Vue = (function (exports) {
while (e) {
const next = e.next;
e.next = void 0;
e.flags &= ~8;
e.flags &= -9;
if (e.flags & 1) {
try {
;
@@ -653,17 +663,16 @@ var Vue = (function (exports) {
if (computed.flags & 4 && !(computed.flags & 16)) {
return;
}
computed.flags &= ~16;
computed.flags &= -17;
if (computed.globalVersion === globalVersion) {
return;
}
computed.globalVersion = globalVersion;
const dep = computed.dep;
computed.flags |= 2;
if (dep.version > 0 && !computed.isSSR && computed.deps && !isDirty(computed)) {
computed.flags &= ~2;
if (!computed.isSSR && computed.flags & 128 && (!computed.deps && !computed._dirty || !isDirty(computed))) {
return;
}
computed.flags |= 2;
const dep = computed.dep;
const prevSub = activeSub;
const prevShouldTrack = shouldTrack;
activeSub = computed;
@@ -672,6 +681,7 @@ var Vue = (function (exports) {
prepareDeps(computed);
const value = computed.fn(computed._value);
if (dep.version === 0 || hasChanged(value, computed._value)) {
computed.flags |= 128;
computed._value = value;
dep.version++;
}
@@ -682,7 +692,7 @@ var Vue = (function (exports) {
activeSub = prevSub;
shouldTrack = prevShouldTrack;
cleanupDeps(computed);
computed.flags &= ~2;
computed.flags &= -3;
}
}
function removeSub(link, soft = false) {
@@ -701,7 +711,7 @@ var Vue = (function (exports) {
if (dep.subs === link) {
dep.subs = prevSub;
if (!prevSub && dep.computed) {
dep.computed.flags &= ~4;
dep.computed.flags &= -5;
for (let l = dep.computed.deps; l; l = l.nextDep) {
removeSub(l, true);
}
@@ -1634,14 +1644,14 @@ var Vue = (function (exports) {
if (target["__v_raw"] && !(isReadonly2 && target["__v_isReactive"])) {
return target;
}
const existingProxy = proxyMap.get(target);
if (existingProxy) {
return existingProxy;
}
const targetType = getTargetType(target);
if (targetType === 0 /* INVALID */) {
return target;
}
const existingProxy = proxyMap.get(target);
if (existingProxy) {
return existingProxy;
}
const proxy = new Proxy(
target,
targetType === 2 /* COLLECTION */ ? collectionHandlers : baseHandlers
@@ -2485,11 +2495,11 @@ var Vue = (function (exports) {
queue.splice(i, 1);
i--;
if (cb.flags & 4) {
cb.flags &= ~1;
cb.flags &= -2;
}
cb();
if (!(cb.flags & 4)) {
cb.flags &= ~1;
cb.flags &= -2;
}
}
}
@@ -2514,10 +2524,10 @@ var Vue = (function (exports) {
continue;
}
if (cb.flags & 4) {
cb.flags &= ~1;
cb.flags &= -2;
}
if (!(cb.flags & 8)) cb();
cb.flags &= ~1;
cb.flags &= -2;
}
activePostFlushCbs = null;
postFlushIndex = 0;
@@ -2553,7 +2563,7 @@ var Vue = (function (exports) {
for (; flushIndex < queue.length; flushIndex++) {
const job = queue[flushIndex];
if (job) {
job.flags &= ~1;
job.flags &= -2;
}
}
flushIndex = -1;
@@ -3042,7 +3052,7 @@ var Vue = (function (exports) {
namespace,
slotScopeIds
);
traverseStaticChildren(n1, n2, true);
traverseStaticChildren(n1, n2, false);
} else if (!optimized) {
patchChildren(
n1,
@@ -4721,6 +4731,9 @@ Server rendered element contains fewer child nodes than client vdom.`
{
devtoolsComponentAdded(instance2);
}
{
instance2.__keepAliveStorageContainer = storageContainer;
}
};
function unmount(vnode) {
resetShapeFlag(vnode);
@@ -4808,7 +4821,7 @@ Server rendered element contains fewer child nodes than client vdom.`
);
const { include, exclude, max } = props;
if (include && (!name || !matches(include, name)) || exclude && name && matches(exclude, name)) {
vnode.shapeFlag &= ~256;
vnode.shapeFlag &= -257;
current = vnode;
return rawVNode;
}
@@ -4895,8 +4908,8 @@ Server rendered element contains fewer child nodes than client vdom.`
}, target);
}
function resetShapeFlag(vnode) {
vnode.shapeFlag &= ~256;
vnode.shapeFlag &= ~512;
vnode.shapeFlag &= -257;
vnode.shapeFlag &= -513;
}
function getInnerChild(vnode) {
return vnode.shapeFlag & 128 ? vnode.ssContent : vnode;
@@ -5011,14 +5024,16 @@ If this is a native custom element, make sure to exclude it from component resol
if (sourceIsArray || isString(source)) {
const sourceIsReactiveArray = sourceIsArray && isReactive(source);
let needsWrap = false;
let isReadonlySource = false;
if (sourceIsReactiveArray) {
needsWrap = !isShallow(source);
isReadonlySource = isReadonly(source);
source = shallowReadArray(source);
}
ret = new Array(source.length);
for (let i = 0, l = source.length; i < l; i++) {
ret[i] = renderItem(
needsWrap ? toReactive(source[i]) : source[i],
needsWrap ? isReadonlySource ? toReadonly(toReactive(source[i])) : toReactive(source[i]) : source[i],
i,
void 0,
cached && cached[i]
@@ -6037,11 +6052,9 @@ If this is a native custom element, make sure to exclude it from component resol
}
{
context.reload = () => {
render(
cloneVNode(vnode),
rootContainer,
namespace
);
const cloned = cloneVNode(vnode);
cloned.el = null;
render(cloned, rootContainer, namespace);
};
}
if (isHydrate && hydrate) {
@@ -6564,7 +6577,7 @@ If you want to remount the same app, move your app creation logic into a factory
return rawSlot;
}
const normalized = withCtx((...args) => {
if (currentInstance && (!ctx || ctx.root === currentInstance.root)) {
if (currentInstance && !(ctx === null && currentRenderingInstance) && !(ctx && ctx.root !== currentInstance.root)) {
warn$1(
`Slot "${key}" invoked outside of the render function: this will not track dependencies used in the slot. Invoke the slot function inside the render function instead.`
);
@@ -6603,7 +6616,7 @@ If you want to remount the same app, move your app creation logic into a factory
};
const assignSlots = (slots, children, optimized) => {
for (const key in children) {
if (optimized || key !== "_") {
if (optimized || !isInternalKey(key)) {
slots[key] = children[key];
}
}
@@ -7289,8 +7302,8 @@ If you want to remount the same app, move your app creation logic into a factory
endMeasure(instance, `init`);
}
}
if (isHmrUpdating) initialVNode.el = null;
if (instance.asyncDep) {
if (isHmrUpdating) initialVNode.el = null;
parentSuspense && parentSuspense.registerDep(instance, setupRenderEffect, optimized);
if (!initialVNode.el) {
const placeholder = instance.subTree = createVNode(Comment);
@@ -7852,7 +7865,13 @@ If you want to remount the same app, move your app creation logic into a factory
queuePostRenderEffect(() => transition.enter(el), parentSuspense);
} else {
const { leave, delayLeave, afterLeave } = transition;
const remove2 = () => hostInsert(el, container, anchor);
const remove2 = () => {
if (vnode.ctx.isUnmounted) {
hostRemove(el);
} else {
hostInsert(el, container, anchor);
}
};
const performLeave = () => {
leave(el, () => {
remove2();
@@ -7885,7 +7904,9 @@ If you want to remount the same app, move your app creation logic into a factory
optimized = false;
}
if (ref != null) {
pauseTracking();
setRef(ref, null, parentSuspense, vnode, true);
resetTracking();
}
if (cacheIndex != null) {
parentComponent.renderCache[cacheIndex] = void 0;
@@ -7997,12 +8018,27 @@ If you want to remount the same app, move your app creation logic into a factory
if (instance.type.__hmrId) {
unregisterHMR(instance);
}
const { bum, scope, job, subTree, um, m, a } = instance;
const {
bum,
scope,
job,
subTree,
um,
m,
a,
parent,
slots: { __: slotCacheKeys }
} = instance;
invalidateMount(m);
invalidateMount(a);
if (bum) {
invokeArrayFns(bum);
}
if (parent && isArray(slotCacheKeys)) {
slotCacheKeys.forEach((v) => {
parent.renderCache[v] = void 0;
});
}
scope.stop();
if (job) {
job.flags |= 8;
@@ -8098,8 +8134,8 @@ If you want to remount the same app, move your app creation logic into a factory
effect.flags |= 32;
job.flags |= 4;
} else {
effect.flags &= ~32;
job.flags &= ~4;
effect.flags &= -33;
job.flags &= -5;
}
}
function needTransition(parentSuspense, transition) {
@@ -8126,6 +8162,9 @@ If you want to remount the same app, move your app creation logic into a factory
if (c2.type === Comment && !c2.el) {
c2.el = c1.el;
}
{
c2.el && (c2.el.__vnode = c2);
}
}
}
}
@@ -9443,8 +9482,8 @@ If you want to remount the same app, move your app creation logic into a factory
if (n2.shapeFlag & 6 && n1.component) {
const dirtyInstances = hmrDirtyComponents.get(n2.type);
if (dirtyInstances && dirtyInstances.has(n1.component)) {
n1.shapeFlag &= ~256;
n2.shapeFlag &= ~512;
n1.shapeFlag &= -257;
n2.shapeFlag &= -513;
return false;
}
}
@@ -9893,7 +9932,7 @@ Component that was made reactive: `,
const { props, children } = instance.vnode;
const isStateful = isStatefulComponent(instance);
initProps(instance, props, isStateful, isSSR);
initSlots(instance, children, optimized);
initSlots(instance, children, optimized || isSSR);
const setupResult = isStateful ? setupStatefulComponent(instance, isSSR) : void 0;
isSSR && setInSSRSetupState(false);
return setupResult;
@@ -10222,13 +10261,15 @@ Component that was made reactive: `,
if (obj.__isVue) {
return ["div", vueStyle, `VueInstance`];
} else if (isRef(obj)) {
pauseTracking();
const value = obj.value;
resetTracking();
return [
"div",
{},
["span", vueStyle, genRefFlag(obj)],
"<",
// avoid debugger accessing value affecting behavior
formatValue("_value" in obj ? obj._value : obj),
formatValue(value),
`>`
];
} else if (isReactive(obj)) {
@@ -10409,7 +10450,7 @@ Component that was made reactive: `,
return true;
}
const version = "3.5.13";
const version = "3.5.14";
const warn = warn$1 ;
const ErrorTypeStrings = ErrorTypeStrings$1 ;
const devtools = devtools$1 ;
@@ -11208,7 +11249,7 @@ Expected function or array of functions, received type ${typeof value}.`
}
return false;
}
if (key === "spellcheck" || key === "draggable" || key === "translate") {
if (key === "spellcheck" || key === "draggable" || key === "translate" || key === "autocorrect") {
return false;
}
if (key === "form") {
@@ -11685,6 +11726,7 @@ Expected function or array of functions, received type ${typeof value}.`
instance.vnode.el,
moveClass
)) {
prevChildren = [];
return;
}
prevChildren.forEach(callPendingCbs);
@@ -11708,6 +11750,7 @@ Expected function or array of functions, received type ${typeof value}.`
};
el.addEventListener("transitionend", cb);
});
prevChildren = [];
});
return () => {
const rawProps = toRaw(props);
+3 -2
View File
File diff suppressed because one or more lines are too long
+6 -6
View File
@@ -1,6 +1,6 @@
{
"name": "vue",
"version": "3.5.13",
"version": "3.5.14",
"description": "The progressive JavaScript framework for building modern web UI.",
"main": "index.js",
"module": "dist/vue.runtime.esm-bundler.js",
@@ -95,11 +95,11 @@
},
"homepage": "https://github.com/vuejs/core/tree/main/packages/vue#readme",
"dependencies": {
"@vue/shared": "3.5.13",
"@vue/compiler-dom": "3.5.13",
"@vue/runtime-dom": "3.5.13",
"@vue/server-renderer": "3.5.13",
"@vue/compiler-sfc": "3.5.13"
"@vue/shared": "3.5.14",
"@vue/runtime-dom": "3.5.14",
"@vue/compiler-sfc": "3.5.14",
"@vue/compiler-dom": "3.5.14",
"@vue/server-renderer": "3.5.14"
},
"peerDependencies": {
"typescript": "*"
+59 -59
View File
@@ -809,103 +809,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": {
@@ -1677,16 +1677,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": "*"
+14 -1
View File
@@ -1,3 +1,16 @@
h3 {
h3.incomes {
background-color: green;
}
h3.expense {
background-color: red;
}
.table-overflow {
max-height: 500px;
overflow-y: scroll;
}
.separator {
margin: 1rem;
}/*# sourceMappingURL=index.css.map */
@@ -1 +1 @@
{"version":3,"sources":["index.scss","index.css"],"names":[],"mappings":"AAAA;EACI,uBAAA;ACCJ","file":"index.css"}
{"version":3,"sources":["index.scss","index.css"],"names":[],"mappings":"AAAA;EACI,uBAAA;ACCJ;;ADCA;EACI,qBAAA;ACEJ;;ADAA;EACI,iBAAA;EACA,kBAAA;ACGJ;;ADDA;EACI,YAAA;ACIJ","file":"index.css"}
+11 -1
View File
@@ -1,3 +1,13 @@
h3 {
h3.incomes {
background-color: green;
}
h3.expense {
background-color: red;
}
.table-overflow{
max-height: 500px;
overflow-y: scroll;
}
.separator{
margin: 1rem;
}
+41 -25
View File
@@ -12,31 +12,47 @@ import { Head } from "@inertiajs/vue3";
<Head>
<title>Transactions</title>
</Head>
<div class="container">
<div class="row">
<div class="col">
<h3 class="text-center">Incomes</h3>
<table
class="table table-striped table-hover table-responsive"
>
<tbody>
<tr>
<td
v-for="column in $page.props.incomes
.columns"
>
{{ column }}
</td>
</tr>
<tr v-for="item in $page.props.incomes.data">
<td>{{ item.amount }}</td>
<td>{{ item.description }}</td>
<td>{{ item.date }}</td>
<td>{{ item.label }}</td>
</tr>
</tbody>
</table>
</div>
<div class="grid">
<h3 class="text-center incomes">Incomes</h3>
<div class="table-overflow g-col-4">
<table class="table table-striped table-hover table-responsive">
<thead class="table-dark">
<tr>
<td v-for="column in $page.props.incomes.columns">
{{ column }}
</td>
</tr>
</thead>
<tbody>
<tr v-for="item in $page.props.incomes.data">
<td>{{ item.amount }}</td>
<td>{{ item.description }}</td>
<td>{{ item.date }}</td>
<td>{{ item.label }}</td>
</tr>
</tbody>
</table>
</div>
<div class="separator"></div>
<h3 class="text-center expense">Expenses</h3>
<div class="table-overflow g-col-4">
<table class="table table-striped table-hover table-responsive">
<thead class="table-dark">
<tr>
<td v-for="column in $page.props.expenses.columns">
{{ column }}
</td>
</tr>
</thead>
<tbody>
<tr v-for="item in $page.props.expenses.data">
<td>{{ item.amount }}</td>
<td>{{ item.description }}</td>
<td>{{ item.date }}</td>
<td>{{ item.label }}</td>
</tr>
</tbody>
</table>
</div>
</div>
</homeLayout>
+2
View File
@@ -4,6 +4,8 @@ header {
padding: 10px;
border-radius: 0 0 20px 20px;
box-shadow: 0 5px 5px gray;
position: sticky;
top: 0;
}
header a {
color: white;
+1 -1
View File
@@ -1 +1 @@
{"version":3,"sources":["home.scss","home.css"],"names":[],"mappings":"AAAA;EACI,kBAAA;EACA,8BAAA;EACA,aAAA;EACA,4BAAA;EACA,0BAAA;ACCJ;ADAI;EACI,YAAA;EACA,qBAAA;EACA,WAAA;ACER;ADDQ;EACI,WAAA;EACA,cAAA;EACA,WAAA;EACA,WAAA;EACA,SAAA;EACA,OAAA;EACA,yBAAA;EACA,oBAAA;EACA,+BAAA;ACGZ;ADDQ;EACI,cAAA;EACA,yBAAA;ACGZ;ADFY;EACI,oBAAA;ACIhB","file":"home.css"}
{"version":3,"sources":["home.scss","home.css"],"names":[],"mappings":"AAAA;EACI,kBAAA;EACA,8BAAA;EACA,aAAA;EACA,4BAAA;EACA,0BAAA;EACA,gBAAA;EACA,MAAA;ACCJ;ADAI;EACI,YAAA;EACA,qBAAA;EACA,WAAA;ACER;ADDQ;EACI,WAAA;EACA,cAAA;EACA,WAAA;EACA,WAAA;EACA,SAAA;EACA,OAAA;EACA,yBAAA;EACA,oBAAA;EACA,+BAAA;ACGZ;ADDQ;EACI,cAAA;EACA,yBAAA;ACGZ;ADFY;EACI,oBAAA;ACIhB","file":"home.css"}
+2 -2
View File
@@ -8,13 +8,13 @@ import { Link } from "@inertiajs/vue3";
<template>
<header>
<div class="container text-center">
<div class="container text-center position-sticky">
<div class="row">
<div class="col">
<Link href="/">Home</Link>
</div>
<div class="col">
<Link href="/transactions">Manage Expanses & Incomes</Link>
<Link href="/transactions">Manage Expenses & Incomes</Link>
</div>
<div class="col">
<Link href="">Lorem</Link>
+2
View File
@@ -4,6 +4,8 @@ header {
padding: 10px;
border-radius: 0 0 20px 20px;
box-shadow: 0 5px 5px gray;
position: sticky;
top: 0;
a {
color: white;
text-decoration: none;
+6 -3
View File
@@ -23,15 +23,15 @@ return array(
'App\\Http\\Middleware\\TrustProxies' => $baseDir . '/app/Http/Middleware/TrustProxies.php',
'App\\Http\\Middleware\\ValidateSignature' => $baseDir . '/app/Http/Middleware/ValidateSignature.php',
'App\\Http\\Middleware\\VerifyCsrfToken' => $baseDir . '/app/Http/Middleware/VerifyCsrfToken.php',
'App\\Models\\Expanse' => $baseDir . '/app/Models/Expanse.php',
'App\\Models\\Expense' => $baseDir . '/app/Models/Expense.php',
'App\\Models\\History' => $baseDir . '/app/Models/History.php',
'App\\Models\\Income' => $baseDir . '/app/Models/Income.php',
'App\\Models\\PrevisionalExpanse' => $baseDir . '/app/Models/PrevisionalExpanse.php',
'App\\Models\\PrevisionalExpense' => $baseDir . '/app/Models/PrevisionalExpense.php',
'App\\Models\\PrevisionalIncome' => $baseDir . '/app/Models/PrevisionalIncome.php',
'App\\Models\\Recurring' => $baseDir . '/app/Models/Recurring.php',
'App\\Models\\RecurringExpense' => $baseDir . '/app/Models/RecurringExpense.php',
'App\\Models\\RecurringIncomes' => $baseDir . '/app/Models/RecurringIncomes.php',
'App\\Models\\TypeExpanse' => $baseDir . '/app/Models/TypeExpanse.php',
'App\\Models\\TypeExpense' => $baseDir . '/app/Models/TypeExpense.php',
'App\\Models\\TypeIncome' => $baseDir . '/app/Models/TypeIncome.php',
'App\\Models\\User' => $baseDir . '/app/Models/User.php',
'App\\Providers\\AppServiceProvider' => $baseDir . '/app/Providers/AppServiceProvider.php',
@@ -149,10 +149,13 @@ return array(
'Cron\\HoursField' => $vendorDir . '/dragonmantank/cron-expression/src/Cron/HoursField.php',
'Cron\\MinutesField' => $vendorDir . '/dragonmantank/cron-expression/src/Cron/MinutesField.php',
'Cron\\MonthField' => $vendorDir . '/dragonmantank/cron-expression/src/Cron/MonthField.php',
'Database\\Factories\\ExpenseFactory' => $baseDir . '/database/factories/ExpenseFactory.php',
'Database\\Factories\\IncomeFactory' => $baseDir . '/database/factories/IncomeFactory.php',
'Database\\Factories\\UserFactory' => $baseDir . '/database/factories/UserFactory.php',
'Database\\Seeders\\DatabaseSeeder' => $baseDir . '/database/seeders/DatabaseSeeder.php',
'Database\\Seeders\\ExpenseSeeder' => $baseDir . '/database/seeders/ExpenseSeeder.php',
'Database\\Seeders\\IncomeSeeder' => $baseDir . '/database/seeders/IncomeSeeder.php',
'Database\\Seeders\\TypeExpenseSeeder' => $baseDir . '/database/seeders/TypeExpenseSeeder.php',
'Database\\Seeders\\TypeIncomeSeeder' => $baseDir . '/database/seeders/TypeIncomeSeeder.php',
'Database\\Seeders\\UserSeeder' => $baseDir . '/database/seeders/UserSeeder.php',
'DateError' => $vendorDir . '/symfony/polyfill-php83/Resources/stubs/DateError.php',
+6 -3
View File
@@ -553,15 +553,15 @@ class ComposerStaticInitc055060de071b17f9341a87ba18bf477
'App\\Http\\Middleware\\TrustProxies' => __DIR__ . '/../..' . '/app/Http/Middleware/TrustProxies.php',
'App\\Http\\Middleware\\ValidateSignature' => __DIR__ . '/../..' . '/app/Http/Middleware/ValidateSignature.php',
'App\\Http\\Middleware\\VerifyCsrfToken' => __DIR__ . '/../..' . '/app/Http/Middleware/VerifyCsrfToken.php',
'App\\Models\\Expanse' => __DIR__ . '/../..' . '/app/Models/Expanse.php',
'App\\Models\\Expense' => __DIR__ . '/../..' . '/app/Models/Expense.php',
'App\\Models\\History' => __DIR__ . '/../..' . '/app/Models/History.php',
'App\\Models\\Income' => __DIR__ . '/../..' . '/app/Models/Income.php',
'App\\Models\\PrevisionalExpanse' => __DIR__ . '/../..' . '/app/Models/PrevisionalExpanse.php',
'App\\Models\\PrevisionalExpense' => __DIR__ . '/../..' . '/app/Models/PrevisionalExpense.php',
'App\\Models\\PrevisionalIncome' => __DIR__ . '/../..' . '/app/Models/PrevisionalIncome.php',
'App\\Models\\Recurring' => __DIR__ . '/../..' . '/app/Models/Recurring.php',
'App\\Models\\RecurringExpense' => __DIR__ . '/../..' . '/app/Models/RecurringExpense.php',
'App\\Models\\RecurringIncomes' => __DIR__ . '/../..' . '/app/Models/RecurringIncomes.php',
'App\\Models\\TypeExpanse' => __DIR__ . '/../..' . '/app/Models/TypeExpanse.php',
'App\\Models\\TypeExpense' => __DIR__ . '/../..' . '/app/Models/TypeExpense.php',
'App\\Models\\TypeIncome' => __DIR__ . '/../..' . '/app/Models/TypeIncome.php',
'App\\Models\\User' => __DIR__ . '/../..' . '/app/Models/User.php',
'App\\Providers\\AppServiceProvider' => __DIR__ . '/../..' . '/app/Providers/AppServiceProvider.php',
@@ -679,10 +679,13 @@ class ComposerStaticInitc055060de071b17f9341a87ba18bf477
'Cron\\HoursField' => __DIR__ . '/..' . '/dragonmantank/cron-expression/src/Cron/HoursField.php',
'Cron\\MinutesField' => __DIR__ . '/..' . '/dragonmantank/cron-expression/src/Cron/MinutesField.php',
'Cron\\MonthField' => __DIR__ . '/..' . '/dragonmantank/cron-expression/src/Cron/MonthField.php',
'Database\\Factories\\ExpenseFactory' => __DIR__ . '/../..' . '/database/factories/ExpenseFactory.php',
'Database\\Factories\\IncomeFactory' => __DIR__ . '/../..' . '/database/factories/IncomeFactory.php',
'Database\\Factories\\UserFactory' => __DIR__ . '/../..' . '/database/factories/UserFactory.php',
'Database\\Seeders\\DatabaseSeeder' => __DIR__ . '/../..' . '/database/seeders/DatabaseSeeder.php',
'Database\\Seeders\\ExpenseSeeder' => __DIR__ . '/../..' . '/database/seeders/ExpenseSeeder.php',
'Database\\Seeders\\IncomeSeeder' => __DIR__ . '/../..' . '/database/seeders/IncomeSeeder.php',
'Database\\Seeders\\TypeExpenseSeeder' => __DIR__ . '/../..' . '/database/seeders/TypeExpenseSeeder.php',
'Database\\Seeders\\TypeIncomeSeeder' => __DIR__ . '/../..' . '/database/seeders/TypeIncomeSeeder.php',
'Database\\Seeders\\UserSeeder' => __DIR__ . '/../..' . '/database/seeders/UserSeeder.php',
'DateError' => __DIR__ . '/..' . '/symfony/polyfill-php83/Resources/stubs/DateError.php',
+6 -6
View File
@@ -1698,17 +1698,17 @@
},
{
"name": "laravel/sail",
"version": "v1.42.0",
"version_normalized": "1.42.0.0",
"version": "v1.43.0",
"version_normalized": "1.43.0.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": {
@@ -1723,7 +1723,7 @@
"orchestra/testbench": "^7.0|^8.0|^9.0|^10.0",
"phpstan/phpstan": "^1.10"
},
"time": "2025-04-29T14:26:46+00:00",
"time": "2025-05-13T13:34:34+00:00",
"bin": [
"bin/sail"
],
+5 -5
View File
@@ -3,7 +3,7 @@
'name' => 'laravel/laravel',
'pretty_version' => 'dev-main',
'version' => 'dev-main',
'reference' => '4a2c1d206e60d007733c2661ffd2c250fa345e2f',
'reference' => 'd17fded423338ef29cda7fd973dd483e07b3cc74',
'type' => 'project',
'install_path' => __DIR__ . '/../../',
'aliases' => array(),
@@ -391,7 +391,7 @@
'laravel/laravel' => array(
'pretty_version' => 'dev-main',
'version' => 'dev-main',
'reference' => '4a2c1d206e60d007733c2661ffd2c250fa345e2f',
'reference' => 'd17fded423338ef29cda7fd973dd483e07b3cc74',
'type' => 'project',
'install_path' => __DIR__ . '/../../',
'aliases' => array(),
@@ -416,9 +416,9 @@
'dev_requirement' => false,
),
'laravel/sail' => array(
'pretty_version' => 'v1.42.0',
'version' => '1.42.0.0',
'reference' => '2edaaf77f3c07a4099965bb3d7dfee16e801c0f6',
'pretty_version' => 'v1.43.0',
'version' => '1.43.0.0',
'reference' => '71a509b14b2621ce58574274a74290f933c687f7',
'type' => 'library',
'install_path' => __DIR__ . '/../laravel/sail',
'aliases' => array(),
+1 -2
View File
@@ -58,8 +58,7 @@ RUN apt-get update && apt-get upgrade -y \
RUN setcap "cap_net_bind_service=+ep" /usr/bin/php8.3
RUN userdel -r ubuntu
#RUN groupadd --force -g $WWWGROUP sail
RUN groupadd --force -g sail
RUN groupadd --force -g $WWWGROUP sail
RUN useradd -ms /bin/bash --no-user-group -g $WWWGROUP -u 1337 sail
COPY start-container /usr/local/bin/start-container
+1
View File
@@ -9,6 +9,7 @@
"customizations": {
"vscode": {
"extensions": [
// "laravel.vscode-laravel",
// "mikestead.dotenv",
// "amiralizadeh9480.laravel-extra-intellisense",
// "ryannaddy.laravel-artisan",
+2 -1
View File
@@ -1,5 +1,6 @@
rabbitmq:
image: 'rabbitmq:4-management'
hostname: 'rabbitmq'
ports:
- '${FORWARD_RABBITMQ_PORT:-5672}:5672'
- '${FORWARD_RABBITMQ_DASHBOARD_PORT:-15672}:15672'
@@ -10,7 +11,7 @@ rabbitmq:
RABBITMQ_VHOST: '${RABBITMQ_VHOST}'
RABBITMQ_QUEUE: '${RABBITMQ_QUEUE}'
volumes:
- 'sail-rabbitmq:/rabbitmq_data'
- 'sail-rabbitmq:/var/lib/rabbitmq'
networks:
- sail
healthcheck: