@vue/compat 3.3.7 → 3.4.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/vue.cjs.js +291 -227
- package/dist/vue.cjs.prod.js +245 -200
- package/dist/vue.esm-browser.js +292 -228
- package/dist/vue.esm-browser.prod.js +4 -4
- package/dist/vue.esm-bundler.js +293 -237
- package/dist/vue.global.js +291 -227
- package/dist/vue.global.prod.js +5 -5
- package/dist/vue.runtime.esm-browser.js +292 -228
- package/dist/vue.runtime.esm-browser.prod.js +5 -5
- package/dist/vue.runtime.esm-bundler.js +293 -237
- package/dist/vue.runtime.global.js +291 -227
- package/dist/vue.runtime.global.prod.js +5 -5
- package/package.json +2 -2
|
@@ -354,117 +354,120 @@ function onScopeDispose(fn) {
|
|
|
354
354
|
}
|
|
355
355
|
}
|
|
356
356
|
|
|
357
|
-
const createDep = (effects) => {
|
|
358
|
-
const dep = new Set(effects);
|
|
359
|
-
dep.w = 0;
|
|
360
|
-
dep.n = 0;
|
|
361
|
-
return dep;
|
|
362
|
-
};
|
|
363
|
-
const wasTracked = (dep) => (dep.w & trackOpBit) > 0;
|
|
364
|
-
const newTracked = (dep) => (dep.n & trackOpBit) > 0;
|
|
365
|
-
const initDepMarkers = ({ deps }) => {
|
|
366
|
-
if (deps.length) {
|
|
367
|
-
for (let i = 0; i < deps.length; i++) {
|
|
368
|
-
deps[i].w |= trackOpBit;
|
|
369
|
-
}
|
|
370
|
-
}
|
|
371
|
-
};
|
|
372
|
-
const finalizeDepMarkers = (effect) => {
|
|
373
|
-
const { deps } = effect;
|
|
374
|
-
if (deps.length) {
|
|
375
|
-
let ptr = 0;
|
|
376
|
-
for (let i = 0; i < deps.length; i++) {
|
|
377
|
-
const dep = deps[i];
|
|
378
|
-
if (wasTracked(dep) && !newTracked(dep)) {
|
|
379
|
-
dep.delete(effect);
|
|
380
|
-
} else {
|
|
381
|
-
deps[ptr++] = dep;
|
|
382
|
-
}
|
|
383
|
-
dep.w &= ~trackOpBit;
|
|
384
|
-
dep.n &= ~trackOpBit;
|
|
385
|
-
}
|
|
386
|
-
deps.length = ptr;
|
|
387
|
-
}
|
|
388
|
-
};
|
|
389
|
-
|
|
390
|
-
const targetMap = /* @__PURE__ */ new WeakMap();
|
|
391
|
-
let effectTrackDepth = 0;
|
|
392
|
-
let trackOpBit = 1;
|
|
393
|
-
const maxMarkerBits = 30;
|
|
394
357
|
let activeEffect;
|
|
395
|
-
const ITERATE_KEY = Symbol("iterate" );
|
|
396
|
-
const MAP_KEY_ITERATE_KEY = Symbol("Map key iterate" );
|
|
397
358
|
class ReactiveEffect {
|
|
398
|
-
constructor(fn, scheduler
|
|
359
|
+
constructor(fn, trigger, scheduler, scope) {
|
|
399
360
|
this.fn = fn;
|
|
361
|
+
this.trigger = trigger;
|
|
400
362
|
this.scheduler = scheduler;
|
|
401
363
|
this.active = true;
|
|
402
364
|
this.deps = [];
|
|
403
|
-
|
|
365
|
+
/**
|
|
366
|
+
* @internal
|
|
367
|
+
*/
|
|
368
|
+
this._dirtyLevel = 3;
|
|
369
|
+
/**
|
|
370
|
+
* @internal
|
|
371
|
+
*/
|
|
372
|
+
this._trackId = 0;
|
|
373
|
+
/**
|
|
374
|
+
* @internal
|
|
375
|
+
*/
|
|
376
|
+
this._runnings = 0;
|
|
377
|
+
/**
|
|
378
|
+
* @internal
|
|
379
|
+
*/
|
|
380
|
+
this._queryings = 0;
|
|
381
|
+
/**
|
|
382
|
+
* @internal
|
|
383
|
+
*/
|
|
384
|
+
this._depsLength = 0;
|
|
404
385
|
recordEffectScope(this, scope);
|
|
405
386
|
}
|
|
387
|
+
get dirty() {
|
|
388
|
+
if (this._dirtyLevel === 1) {
|
|
389
|
+
this._dirtyLevel = 0;
|
|
390
|
+
this._queryings++;
|
|
391
|
+
pauseTracking();
|
|
392
|
+
for (const dep of this.deps) {
|
|
393
|
+
if (dep.computed) {
|
|
394
|
+
triggerComputed(dep.computed);
|
|
395
|
+
if (this._dirtyLevel >= 2) {
|
|
396
|
+
break;
|
|
397
|
+
}
|
|
398
|
+
}
|
|
399
|
+
}
|
|
400
|
+
resetTracking();
|
|
401
|
+
this._queryings--;
|
|
402
|
+
}
|
|
403
|
+
return this._dirtyLevel >= 2;
|
|
404
|
+
}
|
|
405
|
+
set dirty(v) {
|
|
406
|
+
this._dirtyLevel = v ? 3 : 0;
|
|
407
|
+
}
|
|
406
408
|
run() {
|
|
409
|
+
this._dirtyLevel = 0;
|
|
407
410
|
if (!this.active) {
|
|
408
411
|
return this.fn();
|
|
409
412
|
}
|
|
410
|
-
let parent = activeEffect;
|
|
411
413
|
let lastShouldTrack = shouldTrack;
|
|
412
|
-
|
|
413
|
-
if (parent === this) {
|
|
414
|
-
return;
|
|
415
|
-
}
|
|
416
|
-
parent = parent.parent;
|
|
417
|
-
}
|
|
414
|
+
let lastEffect = activeEffect;
|
|
418
415
|
try {
|
|
419
|
-
this.parent = activeEffect;
|
|
420
|
-
activeEffect = this;
|
|
421
416
|
shouldTrack = true;
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
} else {
|
|
426
|
-
cleanupEffect(this);
|
|
427
|
-
}
|
|
417
|
+
activeEffect = this;
|
|
418
|
+
this._runnings++;
|
|
419
|
+
preCleanupEffect(this);
|
|
428
420
|
return this.fn();
|
|
429
421
|
} finally {
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
trackOpBit = 1 << --effectTrackDepth;
|
|
434
|
-
activeEffect = this.parent;
|
|
422
|
+
postCleanupEffect(this);
|
|
423
|
+
this._runnings--;
|
|
424
|
+
activeEffect = lastEffect;
|
|
435
425
|
shouldTrack = lastShouldTrack;
|
|
436
|
-
this.parent = void 0;
|
|
437
|
-
if (this.deferStop) {
|
|
438
|
-
this.stop();
|
|
439
|
-
}
|
|
440
426
|
}
|
|
441
427
|
}
|
|
442
428
|
stop() {
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
this.onStop();
|
|
449
|
-
}
|
|
429
|
+
var _a;
|
|
430
|
+
if (this.active) {
|
|
431
|
+
preCleanupEffect(this);
|
|
432
|
+
postCleanupEffect(this);
|
|
433
|
+
(_a = this.onStop) == null ? void 0 : _a.call(this);
|
|
450
434
|
this.active = false;
|
|
451
435
|
}
|
|
452
436
|
}
|
|
453
437
|
}
|
|
454
|
-
function
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
438
|
+
function triggerComputed(computed) {
|
|
439
|
+
return computed.value;
|
|
440
|
+
}
|
|
441
|
+
function preCleanupEffect(effect2) {
|
|
442
|
+
effect2._trackId++;
|
|
443
|
+
effect2._depsLength = 0;
|
|
444
|
+
}
|
|
445
|
+
function postCleanupEffect(effect2) {
|
|
446
|
+
if (effect2.deps && effect2.deps.length > effect2._depsLength) {
|
|
447
|
+
for (let i = effect2._depsLength; i < effect2.deps.length; i++) {
|
|
448
|
+
cleanupDepEffect(effect2.deps[i], effect2);
|
|
449
|
+
}
|
|
450
|
+
effect2.deps.length = effect2._depsLength;
|
|
451
|
+
}
|
|
452
|
+
}
|
|
453
|
+
function cleanupDepEffect(dep, effect2) {
|
|
454
|
+
const trackId = dep.get(effect2);
|
|
455
|
+
if (trackId !== void 0 && effect2._trackId !== trackId) {
|
|
456
|
+
dep.delete(effect2);
|
|
457
|
+
if (dep.size === 0) {
|
|
458
|
+
dep.cleanup();
|
|
459
459
|
}
|
|
460
|
-
deps.length = 0;
|
|
461
460
|
}
|
|
462
461
|
}
|
|
463
462
|
function effect(fn, options) {
|
|
464
463
|
if (fn.effect instanceof ReactiveEffect) {
|
|
465
464
|
fn = fn.effect.fn;
|
|
466
465
|
}
|
|
467
|
-
const _effect = new ReactiveEffect(fn)
|
|
466
|
+
const _effect = new ReactiveEffect(fn, NOOP, () => {
|
|
467
|
+
if (_effect.dirty) {
|
|
468
|
+
_effect.run();
|
|
469
|
+
}
|
|
470
|
+
});
|
|
468
471
|
if (options) {
|
|
469
472
|
extend(_effect, options);
|
|
470
473
|
if (options.scope)
|
|
@@ -481,6 +484,7 @@ function stop(runner) {
|
|
|
481
484
|
runner.effect.stop();
|
|
482
485
|
}
|
|
483
486
|
let shouldTrack = true;
|
|
487
|
+
let pauseScheduleStack = 0;
|
|
484
488
|
const trackStack = [];
|
|
485
489
|
function pauseTracking() {
|
|
486
490
|
trackStack.push(shouldTrack);
|
|
@@ -490,6 +494,68 @@ function resetTracking() {
|
|
|
490
494
|
const last = trackStack.pop();
|
|
491
495
|
shouldTrack = last === void 0 ? true : last;
|
|
492
496
|
}
|
|
497
|
+
function pauseScheduling() {
|
|
498
|
+
pauseScheduleStack++;
|
|
499
|
+
}
|
|
500
|
+
function resetScheduling() {
|
|
501
|
+
pauseScheduleStack--;
|
|
502
|
+
while (!pauseScheduleStack && queueEffectSchedulers.length) {
|
|
503
|
+
queueEffectSchedulers.shift()();
|
|
504
|
+
}
|
|
505
|
+
}
|
|
506
|
+
function trackEffect(effect2, dep, debuggerEventExtraInfo) {
|
|
507
|
+
var _a;
|
|
508
|
+
if (dep.get(effect2) !== effect2._trackId) {
|
|
509
|
+
dep.set(effect2, effect2._trackId);
|
|
510
|
+
const oldDep = effect2.deps[effect2._depsLength];
|
|
511
|
+
if (oldDep !== dep) {
|
|
512
|
+
if (oldDep) {
|
|
513
|
+
cleanupDepEffect(oldDep, effect2);
|
|
514
|
+
}
|
|
515
|
+
effect2.deps[effect2._depsLength++] = dep;
|
|
516
|
+
} else {
|
|
517
|
+
effect2._depsLength++;
|
|
518
|
+
}
|
|
519
|
+
{
|
|
520
|
+
(_a = effect2.onTrack) == null ? void 0 : _a.call(effect2, extend({ effect: effect2 }, debuggerEventExtraInfo));
|
|
521
|
+
}
|
|
522
|
+
}
|
|
523
|
+
}
|
|
524
|
+
const queueEffectSchedulers = [];
|
|
525
|
+
function triggerEffects(dep, dirtyLevel, debuggerEventExtraInfo) {
|
|
526
|
+
var _a;
|
|
527
|
+
pauseScheduling();
|
|
528
|
+
for (const effect2 of dep.keys()) {
|
|
529
|
+
if (!effect2.allowRecurse && effect2._runnings) {
|
|
530
|
+
continue;
|
|
531
|
+
}
|
|
532
|
+
if (effect2._dirtyLevel < dirtyLevel && (!effect2._runnings || dirtyLevel !== 2)) {
|
|
533
|
+
const lastDirtyLevel = effect2._dirtyLevel;
|
|
534
|
+
effect2._dirtyLevel = dirtyLevel;
|
|
535
|
+
if (lastDirtyLevel === 0 && (!effect2._queryings || dirtyLevel !== 2)) {
|
|
536
|
+
{
|
|
537
|
+
(_a = effect2.onTrigger) == null ? void 0 : _a.call(effect2, extend({ effect: effect2 }, debuggerEventExtraInfo));
|
|
538
|
+
}
|
|
539
|
+
effect2.trigger();
|
|
540
|
+
if (effect2.scheduler) {
|
|
541
|
+
queueEffectSchedulers.push(effect2.scheduler);
|
|
542
|
+
}
|
|
543
|
+
}
|
|
544
|
+
}
|
|
545
|
+
}
|
|
546
|
+
resetScheduling();
|
|
547
|
+
}
|
|
548
|
+
|
|
549
|
+
const createDep = (cleanup, computed) => {
|
|
550
|
+
const dep = /* @__PURE__ */ new Map();
|
|
551
|
+
dep.cleanup = cleanup;
|
|
552
|
+
dep.computed = computed;
|
|
553
|
+
return dep;
|
|
554
|
+
};
|
|
555
|
+
|
|
556
|
+
const targetMap = /* @__PURE__ */ new WeakMap();
|
|
557
|
+
const ITERATE_KEY = Symbol("iterate" );
|
|
558
|
+
const MAP_KEY_ITERATE_KEY = Symbol("Map key iterate" );
|
|
493
559
|
function track(target, type, key) {
|
|
494
560
|
if (shouldTrack && activeEffect) {
|
|
495
561
|
let depsMap = targetMap.get(target);
|
|
@@ -498,35 +564,17 @@ function track(target, type, key) {
|
|
|
498
564
|
}
|
|
499
565
|
let dep = depsMap.get(key);
|
|
500
566
|
if (!dep) {
|
|
501
|
-
depsMap.set(key, dep = createDep());
|
|
502
|
-
}
|
|
503
|
-
const eventInfo = { effect: activeEffect, target, type, key } ;
|
|
504
|
-
trackEffects(dep, eventInfo);
|
|
505
|
-
}
|
|
506
|
-
}
|
|
507
|
-
function trackEffects(dep, debuggerEventExtraInfo) {
|
|
508
|
-
let shouldTrack2 = false;
|
|
509
|
-
if (effectTrackDepth <= maxMarkerBits) {
|
|
510
|
-
if (!newTracked(dep)) {
|
|
511
|
-
dep.n |= trackOpBit;
|
|
512
|
-
shouldTrack2 = !wasTracked(dep);
|
|
513
|
-
}
|
|
514
|
-
} else {
|
|
515
|
-
shouldTrack2 = !dep.has(activeEffect);
|
|
516
|
-
}
|
|
517
|
-
if (shouldTrack2) {
|
|
518
|
-
dep.add(activeEffect);
|
|
519
|
-
activeEffect.deps.push(dep);
|
|
520
|
-
if (activeEffect.onTrack) {
|
|
521
|
-
activeEffect.onTrack(
|
|
522
|
-
extend(
|
|
523
|
-
{
|
|
524
|
-
effect: activeEffect
|
|
525
|
-
},
|
|
526
|
-
debuggerEventExtraInfo
|
|
527
|
-
)
|
|
528
|
-
);
|
|
567
|
+
depsMap.set(key, dep = createDep(() => depsMap.delete(key)));
|
|
529
568
|
}
|
|
569
|
+
trackEffect(
|
|
570
|
+
activeEffect,
|
|
571
|
+
dep,
|
|
572
|
+
{
|
|
573
|
+
target,
|
|
574
|
+
type,
|
|
575
|
+
key
|
|
576
|
+
}
|
|
577
|
+
);
|
|
530
578
|
}
|
|
531
579
|
}
|
|
532
580
|
function trigger(target, type, key, newValue, oldValue, oldTarget) {
|
|
@@ -574,49 +622,24 @@ function trigger(target, type, key, newValue, oldValue, oldTarget) {
|
|
|
574
622
|
break;
|
|
575
623
|
}
|
|
576
624
|
}
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
if (
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
triggerEffects(createDep(effects), eventInfo);
|
|
593
|
-
}
|
|
594
|
-
}
|
|
595
|
-
}
|
|
596
|
-
function triggerEffects(dep, debuggerEventExtraInfo) {
|
|
597
|
-
const effects = isArray(dep) ? dep : [...dep];
|
|
598
|
-
for (const effect2 of effects) {
|
|
599
|
-
if (effect2.computed) {
|
|
600
|
-
triggerEffect(effect2, debuggerEventExtraInfo);
|
|
601
|
-
}
|
|
602
|
-
}
|
|
603
|
-
for (const effect2 of effects) {
|
|
604
|
-
if (!effect2.computed) {
|
|
605
|
-
triggerEffect(effect2, debuggerEventExtraInfo);
|
|
606
|
-
}
|
|
607
|
-
}
|
|
608
|
-
}
|
|
609
|
-
function triggerEffect(effect2, debuggerEventExtraInfo) {
|
|
610
|
-
if (effect2 !== activeEffect || effect2.allowRecurse) {
|
|
611
|
-
if (effect2.onTrigger) {
|
|
612
|
-
effect2.onTrigger(extend({ effect: effect2 }, debuggerEventExtraInfo));
|
|
613
|
-
}
|
|
614
|
-
if (effect2.scheduler) {
|
|
615
|
-
effect2.scheduler();
|
|
616
|
-
} else {
|
|
617
|
-
effect2.run();
|
|
625
|
+
pauseScheduling();
|
|
626
|
+
for (const dep of deps) {
|
|
627
|
+
if (dep) {
|
|
628
|
+
triggerEffects(
|
|
629
|
+
dep,
|
|
630
|
+
3,
|
|
631
|
+
{
|
|
632
|
+
target,
|
|
633
|
+
type,
|
|
634
|
+
key,
|
|
635
|
+
newValue,
|
|
636
|
+
oldValue,
|
|
637
|
+
oldTarget
|
|
638
|
+
}
|
|
639
|
+
);
|
|
618
640
|
}
|
|
619
641
|
}
|
|
642
|
+
resetScheduling();
|
|
620
643
|
}
|
|
621
644
|
function getDepFromReactive(object, key) {
|
|
622
645
|
var _a;
|
|
@@ -647,7 +670,9 @@ function createArrayInstrumentations() {
|
|
|
647
670
|
["push", "pop", "shift", "unshift", "splice"].forEach((key) => {
|
|
648
671
|
instrumentations[key] = function(...args) {
|
|
649
672
|
pauseTracking();
|
|
673
|
+
pauseScheduling();
|
|
650
674
|
const res = toRaw(this)[key].apply(this, args);
|
|
675
|
+
resetScheduling();
|
|
651
676
|
resetTracking();
|
|
652
677
|
return res;
|
|
653
678
|
};
|
|
@@ -1186,30 +1211,93 @@ function markRaw(value) {
|
|
|
1186
1211
|
const toReactive = (value) => isObject(value) ? reactive(value) : value;
|
|
1187
1212
|
const toReadonly = (value) => isObject(value) ? readonly(value) : value;
|
|
1188
1213
|
|
|
1214
|
+
class ComputedRefImpl {
|
|
1215
|
+
constructor(getter, _setter, isReadonly, isSSR) {
|
|
1216
|
+
this._setter = _setter;
|
|
1217
|
+
this.dep = void 0;
|
|
1218
|
+
this.__v_isRef = true;
|
|
1219
|
+
this["__v_isReadonly"] = false;
|
|
1220
|
+
this.effect = new ReactiveEffect(getter, () => {
|
|
1221
|
+
triggerRefValue(this, 1);
|
|
1222
|
+
});
|
|
1223
|
+
this.effect.computed = this;
|
|
1224
|
+
this.effect.active = this._cacheable = !isSSR;
|
|
1225
|
+
this["__v_isReadonly"] = isReadonly;
|
|
1226
|
+
}
|
|
1227
|
+
get value() {
|
|
1228
|
+
const self = toRaw(this);
|
|
1229
|
+
trackRefValue(self);
|
|
1230
|
+
if (!self._cacheable || self.effect.dirty) {
|
|
1231
|
+
if (hasChanged(self._value, self._value = self.effect.run())) {
|
|
1232
|
+
triggerRefValue(self, 2);
|
|
1233
|
+
}
|
|
1234
|
+
}
|
|
1235
|
+
return self._value;
|
|
1236
|
+
}
|
|
1237
|
+
set value(newValue) {
|
|
1238
|
+
this._setter(newValue);
|
|
1239
|
+
}
|
|
1240
|
+
// #region polyfill _dirty for backward compatibility third party code for Vue <= 3.3.x
|
|
1241
|
+
get _dirty() {
|
|
1242
|
+
return this.effect.dirty;
|
|
1243
|
+
}
|
|
1244
|
+
set _dirty(v) {
|
|
1245
|
+
this.effect.dirty = v;
|
|
1246
|
+
}
|
|
1247
|
+
// #endregion
|
|
1248
|
+
}
|
|
1249
|
+
function computed$1(getterOrOptions, debugOptions, isSSR = false) {
|
|
1250
|
+
let getter;
|
|
1251
|
+
let setter;
|
|
1252
|
+
const onlyGetter = isFunction(getterOrOptions);
|
|
1253
|
+
if (onlyGetter) {
|
|
1254
|
+
getter = getterOrOptions;
|
|
1255
|
+
setter = () => {
|
|
1256
|
+
console.warn("Write operation failed: computed value is readonly");
|
|
1257
|
+
} ;
|
|
1258
|
+
} else {
|
|
1259
|
+
getter = getterOrOptions.get;
|
|
1260
|
+
setter = getterOrOptions.set;
|
|
1261
|
+
}
|
|
1262
|
+
const cRef = new ComputedRefImpl(getter, setter, onlyGetter || !setter, isSSR);
|
|
1263
|
+
if (debugOptions && !isSSR) {
|
|
1264
|
+
cRef.effect.onTrack = debugOptions.onTrack;
|
|
1265
|
+
cRef.effect.onTrigger = debugOptions.onTrigger;
|
|
1266
|
+
}
|
|
1267
|
+
return cRef;
|
|
1268
|
+
}
|
|
1269
|
+
|
|
1189
1270
|
function trackRefValue(ref2) {
|
|
1190
1271
|
if (shouldTrack && activeEffect) {
|
|
1191
1272
|
ref2 = toRaw(ref2);
|
|
1192
|
-
|
|
1193
|
-
|
|
1273
|
+
trackEffect(
|
|
1274
|
+
activeEffect,
|
|
1275
|
+
ref2.dep || (ref2.dep = createDep(
|
|
1276
|
+
() => ref2.dep = void 0,
|
|
1277
|
+
ref2 instanceof ComputedRefImpl ? ref2 : void 0
|
|
1278
|
+
)),
|
|
1279
|
+
{
|
|
1194
1280
|
target: ref2,
|
|
1195
1281
|
type: "get",
|
|
1196
1282
|
key: "value"
|
|
1197
|
-
}
|
|
1198
|
-
|
|
1283
|
+
}
|
|
1284
|
+
);
|
|
1199
1285
|
}
|
|
1200
1286
|
}
|
|
1201
|
-
function triggerRefValue(ref2, newVal) {
|
|
1287
|
+
function triggerRefValue(ref2, dirtyLevel = 3, newVal) {
|
|
1202
1288
|
ref2 = toRaw(ref2);
|
|
1203
1289
|
const dep = ref2.dep;
|
|
1204
1290
|
if (dep) {
|
|
1205
|
-
|
|
1206
|
-
|
|
1291
|
+
triggerEffects(
|
|
1292
|
+
dep,
|
|
1293
|
+
dirtyLevel,
|
|
1294
|
+
{
|
|
1207
1295
|
target: ref2,
|
|
1208
1296
|
type: "set",
|
|
1209
1297
|
key: "value",
|
|
1210
1298
|
newValue: newVal
|
|
1211
|
-
}
|
|
1212
|
-
|
|
1299
|
+
}
|
|
1300
|
+
);
|
|
1213
1301
|
}
|
|
1214
1302
|
}
|
|
1215
1303
|
function isRef(r) {
|
|
@@ -1245,12 +1333,12 @@ class RefImpl {
|
|
|
1245
1333
|
if (hasChanged(newVal, this._rawValue)) {
|
|
1246
1334
|
this._rawValue = newVal;
|
|
1247
1335
|
this._value = useDirectValue ? newVal : toReactive(newVal);
|
|
1248
|
-
triggerRefValue(this, newVal);
|
|
1336
|
+
triggerRefValue(this, 3, newVal);
|
|
1249
1337
|
}
|
|
1250
1338
|
}
|
|
1251
1339
|
}
|
|
1252
1340
|
function triggerRef(ref2) {
|
|
1253
|
-
triggerRefValue(ref2, ref2.value );
|
|
1341
|
+
triggerRefValue(ref2, 3, ref2.value );
|
|
1254
1342
|
}
|
|
1255
1343
|
function unref(ref2) {
|
|
1256
1344
|
return isRef(ref2) ? ref2.value : ref2;
|
|
@@ -1348,57 +1436,6 @@ function propertyToRef(source, key, defaultValue) {
|
|
|
1348
1436
|
return isRef(val) ? val : new ObjectRefImpl(source, key, defaultValue);
|
|
1349
1437
|
}
|
|
1350
1438
|
|
|
1351
|
-
class ComputedRefImpl {
|
|
1352
|
-
constructor(getter, _setter, isReadonly, isSSR) {
|
|
1353
|
-
this._setter = _setter;
|
|
1354
|
-
this.dep = void 0;
|
|
1355
|
-
this.__v_isRef = true;
|
|
1356
|
-
this["__v_isReadonly"] = false;
|
|
1357
|
-
this._dirty = true;
|
|
1358
|
-
this.effect = new ReactiveEffect(getter, () => {
|
|
1359
|
-
if (!this._dirty) {
|
|
1360
|
-
this._dirty = true;
|
|
1361
|
-
triggerRefValue(this);
|
|
1362
|
-
}
|
|
1363
|
-
});
|
|
1364
|
-
this.effect.computed = this;
|
|
1365
|
-
this.effect.active = this._cacheable = !isSSR;
|
|
1366
|
-
this["__v_isReadonly"] = isReadonly;
|
|
1367
|
-
}
|
|
1368
|
-
get value() {
|
|
1369
|
-
const self = toRaw(this);
|
|
1370
|
-
trackRefValue(self);
|
|
1371
|
-
if (self._dirty || !self._cacheable) {
|
|
1372
|
-
self._dirty = false;
|
|
1373
|
-
self._value = self.effect.run();
|
|
1374
|
-
}
|
|
1375
|
-
return self._value;
|
|
1376
|
-
}
|
|
1377
|
-
set value(newValue) {
|
|
1378
|
-
this._setter(newValue);
|
|
1379
|
-
}
|
|
1380
|
-
}
|
|
1381
|
-
function computed$1(getterOrOptions, debugOptions, isSSR = false) {
|
|
1382
|
-
let getter;
|
|
1383
|
-
let setter;
|
|
1384
|
-
const onlyGetter = isFunction(getterOrOptions);
|
|
1385
|
-
if (onlyGetter) {
|
|
1386
|
-
getter = getterOrOptions;
|
|
1387
|
-
setter = () => {
|
|
1388
|
-
console.warn("Write operation failed: computed value is readonly");
|
|
1389
|
-
} ;
|
|
1390
|
-
} else {
|
|
1391
|
-
getter = getterOrOptions.get;
|
|
1392
|
-
setter = getterOrOptions.set;
|
|
1393
|
-
}
|
|
1394
|
-
const cRef = new ComputedRefImpl(getter, setter, onlyGetter || !setter, isSSR);
|
|
1395
|
-
if (debugOptions && !isSSR) {
|
|
1396
|
-
cRef.effect.onTrack = debugOptions.onTrack;
|
|
1397
|
-
cRef.effect.onTrigger = debugOptions.onTrigger;
|
|
1398
|
-
}
|
|
1399
|
-
return cRef;
|
|
1400
|
-
}
|
|
1401
|
-
|
|
1402
1439
|
const stack = [];
|
|
1403
1440
|
function pushWarningContext(vnode) {
|
|
1404
1441
|
stack.push(vnode);
|
|
@@ -1513,7 +1550,7 @@ function assertNumber(val, type) {
|
|
|
1513
1550
|
}
|
|
1514
1551
|
}
|
|
1515
1552
|
|
|
1516
|
-
const ErrorTypeStrings = {
|
|
1553
|
+
const ErrorTypeStrings$1 = {
|
|
1517
1554
|
["sp"]: "serverPrefetch hook",
|
|
1518
1555
|
["bc"]: "beforeCreate hook",
|
|
1519
1556
|
["c"]: "created hook",
|
|
@@ -1574,7 +1611,7 @@ function handleError(err, instance, type, throwInDev = true) {
|
|
|
1574
1611
|
if (instance) {
|
|
1575
1612
|
let cur = instance.parent;
|
|
1576
1613
|
const exposedInstance = instance.proxy;
|
|
1577
|
-
const errorInfo = ErrorTypeStrings[type] ;
|
|
1614
|
+
const errorInfo = ErrorTypeStrings$1[type] ;
|
|
1578
1615
|
while (cur) {
|
|
1579
1616
|
const errorCapturedHooks = cur.ec;
|
|
1580
1617
|
if (errorCapturedHooks) {
|
|
@@ -1601,7 +1638,7 @@ function handleError(err, instance, type, throwInDev = true) {
|
|
|
1601
1638
|
}
|
|
1602
1639
|
function logError(err, type, contextVNode, throwInDev = true) {
|
|
1603
1640
|
{
|
|
1604
|
-
const info = ErrorTypeStrings[type];
|
|
1641
|
+
const info = ErrorTypeStrings$1[type];
|
|
1605
1642
|
if (contextVNode) {
|
|
1606
1643
|
pushWarningContext(contextVNode);
|
|
1607
1644
|
}
|
|
@@ -1829,6 +1866,7 @@ function rerender(id, newRender) {
|
|
|
1829
1866
|
}
|
|
1830
1867
|
instance.renderCache = [];
|
|
1831
1868
|
isHmrUpdating = true;
|
|
1869
|
+
instance.effect.dirty = true;
|
|
1832
1870
|
instance.update();
|
|
1833
1871
|
isHmrUpdating = false;
|
|
1834
1872
|
});
|
|
@@ -1856,6 +1894,7 @@ function reload(id, newComp) {
|
|
|
1856
1894
|
instance.ceReload(newComp.styles);
|
|
1857
1895
|
hmrDirtyComponents.delete(oldComp);
|
|
1858
1896
|
} else if (instance.parent) {
|
|
1897
|
+
instance.parent.effect.dirty = true;
|
|
1859
1898
|
queueJob(instance.parent.update);
|
|
1860
1899
|
} else if (instance.appContext.reload) {
|
|
1861
1900
|
instance.appContext.reload();
|
|
@@ -3551,8 +3590,15 @@ function watch(source, cb, options) {
|
|
|
3551
3590
|
}
|
|
3552
3591
|
return doWatch(source, cb, options);
|
|
3553
3592
|
}
|
|
3554
|
-
function doWatch(source, cb, { immediate, deep, flush, onTrack, onTrigger } = EMPTY_OBJ) {
|
|
3593
|
+
function doWatch(source, cb, { immediate, deep, flush, once, onTrack, onTrigger } = EMPTY_OBJ) {
|
|
3555
3594
|
var _a;
|
|
3595
|
+
if (cb && once) {
|
|
3596
|
+
const _cb = cb;
|
|
3597
|
+
cb = (...args) => {
|
|
3598
|
+
_cb(...args);
|
|
3599
|
+
unwatch();
|
|
3600
|
+
};
|
|
3601
|
+
}
|
|
3556
3602
|
if (!cb) {
|
|
3557
3603
|
if (immediate !== void 0) {
|
|
3558
3604
|
warn(
|
|
@@ -3564,6 +3610,11 @@ function doWatch(source, cb, { immediate, deep, flush, onTrack, onTrigger } = EM
|
|
|
3564
3610
|
`watch() "deep" option is only respected when using the watch(source, callback, options?) signature.`
|
|
3565
3611
|
);
|
|
3566
3612
|
}
|
|
3613
|
+
if (once !== void 0) {
|
|
3614
|
+
warn(
|
|
3615
|
+
`watch() "once" option is only respected when using the watch(source, callback, options?) signature.`
|
|
3616
|
+
);
|
|
3617
|
+
}
|
|
3567
3618
|
}
|
|
3568
3619
|
const warnInvalidSource = (s) => {
|
|
3569
3620
|
warn(
|
|
@@ -3641,7 +3692,7 @@ function doWatch(source, cb, { immediate, deep, flush, onTrack, onTrigger } = EM
|
|
|
3641
3692
|
};
|
|
3642
3693
|
let oldValue = isMultiSource ? new Array(source.length).fill(INITIAL_WATCHER_VALUE) : INITIAL_WATCHER_VALUE;
|
|
3643
3694
|
const job = () => {
|
|
3644
|
-
if (!effect.active) {
|
|
3695
|
+
if (!effect.active || !effect.dirty) {
|
|
3645
3696
|
return;
|
|
3646
3697
|
}
|
|
3647
3698
|
if (cb) {
|
|
@@ -3674,7 +3725,13 @@ function doWatch(source, cb, { immediate, deep, flush, onTrack, onTrigger } = EM
|
|
|
3674
3725
|
job.id = instance.uid;
|
|
3675
3726
|
scheduler = () => queueJob(job);
|
|
3676
3727
|
}
|
|
3677
|
-
const effect = new ReactiveEffect(getter, scheduler);
|
|
3728
|
+
const effect = new ReactiveEffect(getter, NOOP, scheduler);
|
|
3729
|
+
const unwatch = () => {
|
|
3730
|
+
effect.stop();
|
|
3731
|
+
if (instance && instance.scope) {
|
|
3732
|
+
remove(instance.scope.effects, effect);
|
|
3733
|
+
}
|
|
3734
|
+
};
|
|
3678
3735
|
{
|
|
3679
3736
|
effect.onTrack = onTrack;
|
|
3680
3737
|
effect.onTrigger = onTrigger;
|
|
@@ -3693,12 +3750,6 @@ function doWatch(source, cb, { immediate, deep, flush, onTrack, onTrigger } = EM
|
|
|
3693
3750
|
} else {
|
|
3694
3751
|
effect.run();
|
|
3695
3752
|
}
|
|
3696
|
-
const unwatch = () => {
|
|
3697
|
-
effect.stop();
|
|
3698
|
-
if (instance && instance.scope) {
|
|
3699
|
-
remove(instance.scope.effects, effect);
|
|
3700
|
-
}
|
|
3701
|
-
};
|
|
3702
3753
|
return unwatch;
|
|
3703
3754
|
}
|
|
3704
3755
|
function instanceWatch(source, value, options) {
|
|
@@ -3931,6 +3982,7 @@ const BaseTransitionImpl = {
|
|
|
3931
3982
|
leavingHooks.afterLeave = () => {
|
|
3932
3983
|
state.isLeaving = false;
|
|
3933
3984
|
if (instance.update.active !== false) {
|
|
3985
|
+
instance.effect.dirty = true;
|
|
3934
3986
|
instance.update();
|
|
3935
3987
|
}
|
|
3936
3988
|
};
|
|
@@ -4269,6 +4321,7 @@ function defineAsyncComponent(source) {
|
|
|
4269
4321
|
load().then(() => {
|
|
4270
4322
|
loaded.value = true;
|
|
4271
4323
|
if (instance.parent && isKeepAlive(instance.parent.vnode)) {
|
|
4324
|
+
instance.parent.effect.dirty = true;
|
|
4272
4325
|
queueJob(instance.parent.update);
|
|
4273
4326
|
}
|
|
4274
4327
|
}).catch((err) => {
|
|
@@ -4566,7 +4619,7 @@ function injectHook(type, hook, target = currentInstance, prepend = false) {
|
|
|
4566
4619
|
}
|
|
4567
4620
|
return wrappedHook;
|
|
4568
4621
|
} else {
|
|
4569
|
-
const apiName = toHandlerKey(ErrorTypeStrings[type].replace(/ hook$/, ""));
|
|
4622
|
+
const apiName = toHandlerKey(ErrorTypeStrings$1[type].replace(/ hook$/, ""));
|
|
4570
4623
|
warn(
|
|
4571
4624
|
`${apiName} is called when there is no active component instance to be associated with. Lifecycle injection APIs can only be used during execution of setup().` + (` If you are using async setup(), make sure to register lifecycle hooks before the first await statement.` )
|
|
4572
4625
|
);
|
|
@@ -5288,7 +5341,10 @@ const publicPropertiesMap = (
|
|
|
5288
5341
|
$root: (i) => getPublicInstance(i.root),
|
|
5289
5342
|
$emit: (i) => i.emit,
|
|
5290
5343
|
$options: (i) => resolveMergedOptions(i) ,
|
|
5291
|
-
$forceUpdate: (i) => i.f || (i.f = () =>
|
|
5344
|
+
$forceUpdate: (i) => i.f || (i.f = () => {
|
|
5345
|
+
i.effect.dirty = true;
|
|
5346
|
+
queueJob(i.update);
|
|
5347
|
+
}),
|
|
5292
5348
|
$nextTick: (i) => i.n || (i.n = nextTick.bind(i.proxy)),
|
|
5293
5349
|
$watch: (i) => instanceWatch.bind(i)
|
|
5294
5350
|
})
|
|
@@ -6189,7 +6245,7 @@ function createCompatVue$1(createApp, createSingletonApp) {
|
|
|
6189
6245
|
return vm;
|
|
6190
6246
|
}
|
|
6191
6247
|
}
|
|
6192
|
-
Vue.version = `2.6.14-compat:${"3.
|
|
6248
|
+
Vue.version = `2.6.14-compat:${"3.4.0-alpha.1"}`;
|
|
6193
6249
|
Vue.config = singletonApp.config;
|
|
6194
6250
|
Vue.use = (p, ...options) => {
|
|
6195
6251
|
if (p && isFunction(p.install)) {
|
|
@@ -8595,6 +8651,7 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
8595
8651
|
} else {
|
|
8596
8652
|
instance.next = n2;
|
|
8597
8653
|
invalidateJob(instance.update);
|
|
8654
|
+
instance.effect.dirty = true;
|
|
8598
8655
|
instance.update();
|
|
8599
8656
|
}
|
|
8600
8657
|
} else {
|
|
@@ -8788,11 +8845,16 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
8788
8845
|
};
|
|
8789
8846
|
const effect = instance.effect = new ReactiveEffect(
|
|
8790
8847
|
componentUpdateFn,
|
|
8848
|
+
NOOP,
|
|
8791
8849
|
() => queueJob(update),
|
|
8792
8850
|
instance.scope
|
|
8793
8851
|
// track it in component's effect scope
|
|
8794
8852
|
);
|
|
8795
|
-
const update = instance.update = () =>
|
|
8853
|
+
const update = instance.update = () => {
|
|
8854
|
+
if (effect.dirty) {
|
|
8855
|
+
effect.run();
|
|
8856
|
+
}
|
|
8857
|
+
};
|
|
8796
8858
|
update.id = instance.uid;
|
|
8797
8859
|
toggleRecurse(instance, true);
|
|
8798
8860
|
{
|
|
@@ -10764,7 +10826,8 @@ function isMemoSame(cached, memo) {
|
|
|
10764
10826
|
return true;
|
|
10765
10827
|
}
|
|
10766
10828
|
|
|
10767
|
-
const version = "3.
|
|
10829
|
+
const version = "3.4.0-alpha.1";
|
|
10830
|
+
const ErrorTypeStrings = ErrorTypeStrings$1 ;
|
|
10768
10831
|
const ssrUtils = null;
|
|
10769
10832
|
const resolveFilter = resolveFilter$1 ;
|
|
10770
10833
|
const _compatUtils = {
|
|
@@ -12400,6 +12463,7 @@ var runtimeDom = /*#__PURE__*/Object.freeze({
|
|
|
12400
12463
|
BaseTransitionPropsValidators: BaseTransitionPropsValidators,
|
|
12401
12464
|
Comment: Comment,
|
|
12402
12465
|
EffectScope: EffectScope,
|
|
12466
|
+
ErrorTypeStrings: ErrorTypeStrings,
|
|
12403
12467
|
Fragment: Fragment,
|
|
12404
12468
|
KeepAlive: KeepAlive,
|
|
12405
12469
|
ReactiveEffect: ReactiveEffect,
|
|
@@ -12596,4 +12660,4 @@ var Vue$1 = Vue;
|
|
|
12596
12660
|
|
|
12597
12661
|
const { configureCompat } = Vue$1;
|
|
12598
12662
|
|
|
12599
|
-
export { BaseTransition, BaseTransitionPropsValidators, Comment, EffectScope, Fragment, KeepAlive, ReactiveEffect, Static, Suspense, Teleport, Text, Transition, TransitionGroup, VueElement, assertNumber, callWithAsyncErrorHandling, callWithErrorHandling, camelize, capitalize, cloneVNode, compatUtils, computed, configureCompat, createApp, createBlock, createCommentVNode, createElementBlock, createBaseVNode as createElementVNode, createHydrationRenderer, createPropsRestProxy, createRenderer, createSSRApp, createSlots, createStaticVNode, createTextVNode, createVNode, customRef, Vue$1 as default, defineAsyncComponent, defineComponent, defineCustomElement, defineEmits, defineExpose, defineModel, defineOptions, defineProps, defineSSRCustomElement, defineSlots, devtools, effect, effectScope, getCurrentInstance, getCurrentScope, getTransitionRawChildren, guardReactiveProps, h, handleError, hasInjectionContext, hydrate, initCustomFormatter, initDirectivesForSSR, inject, isMemoSame, isProxy, isReactive, isReadonly, isRef, isRuntimeOnly, isShallow, isVNode, markRaw, mergeDefaults, mergeModels, mergeProps, nextTick, normalizeClass, normalizeProps, normalizeStyle, onActivated, onBeforeMount, onBeforeUnmount, onBeforeUpdate, onDeactivated, onErrorCaptured, onMounted, onRenderTracked, onRenderTriggered, onScopeDispose, onServerPrefetch, onUnmounted, onUpdated, openBlock, popScopeId, provide, proxyRefs, pushScopeId, queuePostFlushCb, reactive, readonly, ref, registerRuntimeCompiler, render, renderList, renderSlot, resolveComponent, resolveDirective, resolveDynamicComponent, resolveFilter, resolveTransitionHooks, setBlockTracking, setDevtoolsHook, setTransitionHooks, shallowReactive, shallowReadonly, shallowRef, ssrContextKey, ssrUtils, stop, toDisplayString, toHandlerKey, toHandlers, toRaw, toRef, toRefs, toValue, transformVNodeArgs, triggerRef, unref, useAttrs, useCssModule, useCssVars, useModel, useSSRContext, useSlots, useTransitionState, vModelCheckbox, vModelDynamic, vModelRadio, vModelSelect, vModelText, vShow, version, warn, watch, watchEffect, watchPostEffect, watchSyncEffect, withAsyncContext, withCtx, withDefaults, withDirectives, withKeys, withMemo, withModifiers, withScopeId };
|
|
12663
|
+
export { BaseTransition, BaseTransitionPropsValidators, Comment, EffectScope, ErrorTypeStrings, Fragment, KeepAlive, ReactiveEffect, Static, Suspense, Teleport, Text, Transition, TransitionGroup, VueElement, assertNumber, callWithAsyncErrorHandling, callWithErrorHandling, camelize, capitalize, cloneVNode, compatUtils, computed, configureCompat, createApp, createBlock, createCommentVNode, createElementBlock, createBaseVNode as createElementVNode, createHydrationRenderer, createPropsRestProxy, createRenderer, createSSRApp, createSlots, createStaticVNode, createTextVNode, createVNode, customRef, Vue$1 as default, defineAsyncComponent, defineComponent, defineCustomElement, defineEmits, defineExpose, defineModel, defineOptions, defineProps, defineSSRCustomElement, defineSlots, devtools, effect, effectScope, getCurrentInstance, getCurrentScope, getTransitionRawChildren, guardReactiveProps, h, handleError, hasInjectionContext, hydrate, initCustomFormatter, initDirectivesForSSR, inject, isMemoSame, isProxy, isReactive, isReadonly, isRef, isRuntimeOnly, isShallow, isVNode, markRaw, mergeDefaults, mergeModels, mergeProps, nextTick, normalizeClass, normalizeProps, normalizeStyle, onActivated, onBeforeMount, onBeforeUnmount, onBeforeUpdate, onDeactivated, onErrorCaptured, onMounted, onRenderTracked, onRenderTriggered, onScopeDispose, onServerPrefetch, onUnmounted, onUpdated, openBlock, popScopeId, provide, proxyRefs, pushScopeId, queuePostFlushCb, reactive, readonly, ref, registerRuntimeCompiler, render, renderList, renderSlot, resolveComponent, resolveDirective, resolveDynamicComponent, resolveFilter, resolveTransitionHooks, setBlockTracking, setDevtoolsHook, setTransitionHooks, shallowReactive, shallowReadonly, shallowRef, ssrContextKey, ssrUtils, stop, toDisplayString, toHandlerKey, toHandlers, toRaw, toRef, toRefs, toValue, transformVNodeArgs, triggerRef, unref, useAttrs, useCssModule, useCssVars, useModel, useSSRContext, useSlots, useTransitionState, vModelCheckbox, vModelDynamic, vModelRadio, vModelSelect, vModelText, vShow, version, warn, watch, watchEffect, watchPostEffect, watchSyncEffect, withAsyncContext, withCtx, withDefaults, withDirectives, withKeys, withMemo, withModifiers, withScopeId };
|