@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(!!(process.env.NODE_ENV !== "production") ? "iterate" : "");
|
|
396
|
-
const MAP_KEY_ITERATE_KEY = Symbol(!!(process.env.NODE_ENV !== "production") ? "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
|
+
if (!!(process.env.NODE_ENV !== "production")) {
|
|
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
|
+
if (!!(process.env.NODE_ENV !== "production")) {
|
|
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(!!(process.env.NODE_ENV !== "production") ? "iterate" : "");
|
|
558
|
+
const MAP_KEY_ITERATE_KEY = Symbol(!!(process.env.NODE_ENV !== "production") ? "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
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
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 (!!(process.env.NODE_ENV !== "production") && activeEffect.onTrack) {
|
|
521
|
-
activeEffect.onTrack(
|
|
522
|
-
extend(
|
|
523
|
-
{
|
|
524
|
-
effect: activeEffect
|
|
525
|
-
},
|
|
526
|
-
debuggerEventExtraInfo
|
|
527
|
-
)
|
|
528
|
-
);
|
|
529
|
-
}
|
|
567
|
+
depsMap.set(key, dep = createDep(() => depsMap.delete(key)));
|
|
568
|
+
}
|
|
569
|
+
trackEffect(
|
|
570
|
+
activeEffect,
|
|
571
|
+
dep,
|
|
572
|
+
!!(process.env.NODE_ENV !== "production") ? {
|
|
573
|
+
target,
|
|
574
|
+
type,
|
|
575
|
+
key
|
|
576
|
+
} : void 0
|
|
577
|
+
);
|
|
530
578
|
}
|
|
531
579
|
}
|
|
532
580
|
function trigger(target, type, key, newValue, oldValue, oldTarget) {
|
|
@@ -574,53 +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
|
-
}
|
|
593
|
-
if (!!(process.env.NODE_ENV !== "production")) {
|
|
594
|
-
triggerEffects(createDep(effects), eventInfo);
|
|
595
|
-
} else {
|
|
596
|
-
triggerEffects(createDep(effects));
|
|
597
|
-
}
|
|
598
|
-
}
|
|
599
|
-
}
|
|
600
|
-
function triggerEffects(dep, debuggerEventExtraInfo) {
|
|
601
|
-
const effects = isArray(dep) ? dep : [...dep];
|
|
602
|
-
for (const effect2 of effects) {
|
|
603
|
-
if (effect2.computed) {
|
|
604
|
-
triggerEffect(effect2, debuggerEventExtraInfo);
|
|
605
|
-
}
|
|
606
|
-
}
|
|
607
|
-
for (const effect2 of effects) {
|
|
608
|
-
if (!effect2.computed) {
|
|
609
|
-
triggerEffect(effect2, debuggerEventExtraInfo);
|
|
610
|
-
}
|
|
611
|
-
}
|
|
612
|
-
}
|
|
613
|
-
function triggerEffect(effect2, debuggerEventExtraInfo) {
|
|
614
|
-
if (effect2 !== activeEffect || effect2.allowRecurse) {
|
|
615
|
-
if (!!(process.env.NODE_ENV !== "production") && effect2.onTrigger) {
|
|
616
|
-
effect2.onTrigger(extend({ effect: effect2 }, debuggerEventExtraInfo));
|
|
617
|
-
}
|
|
618
|
-
if (effect2.scheduler) {
|
|
619
|
-
effect2.scheduler();
|
|
620
|
-
} else {
|
|
621
|
-
effect2.run();
|
|
625
|
+
pauseScheduling();
|
|
626
|
+
for (const dep of deps) {
|
|
627
|
+
if (dep) {
|
|
628
|
+
triggerEffects(
|
|
629
|
+
dep,
|
|
630
|
+
3,
|
|
631
|
+
!!(process.env.NODE_ENV !== "production") ? {
|
|
632
|
+
target,
|
|
633
|
+
type,
|
|
634
|
+
key,
|
|
635
|
+
newValue,
|
|
636
|
+
oldValue,
|
|
637
|
+
oldTarget
|
|
638
|
+
} : void 0
|
|
639
|
+
);
|
|
622
640
|
}
|
|
623
641
|
}
|
|
642
|
+
resetScheduling();
|
|
624
643
|
}
|
|
625
644
|
function getDepFromReactive(object, key) {
|
|
626
645
|
var _a;
|
|
@@ -651,7 +670,9 @@ function createArrayInstrumentations() {
|
|
|
651
670
|
["push", "pop", "shift", "unshift", "splice"].forEach((key) => {
|
|
652
671
|
instrumentations[key] = function(...args) {
|
|
653
672
|
pauseTracking();
|
|
673
|
+
pauseScheduling();
|
|
654
674
|
const res = toRaw(this)[key].apply(this, args);
|
|
675
|
+
resetScheduling();
|
|
655
676
|
resetTracking();
|
|
656
677
|
return res;
|
|
657
678
|
};
|
|
@@ -1190,34 +1211,93 @@ function markRaw(value) {
|
|
|
1190
1211
|
const toReactive = (value) => isObject(value) ? reactive(value) : value;
|
|
1191
1212
|
const toReadonly = (value) => isObject(value) ? readonly(value) : value;
|
|
1192
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 = !!(process.env.NODE_ENV !== "production") ? () => {
|
|
1256
|
+
console.warn("Write operation failed: computed value is readonly");
|
|
1257
|
+
} : NOOP;
|
|
1258
|
+
} else {
|
|
1259
|
+
getter = getterOrOptions.get;
|
|
1260
|
+
setter = getterOrOptions.set;
|
|
1261
|
+
}
|
|
1262
|
+
const cRef = new ComputedRefImpl(getter, setter, onlyGetter || !setter, isSSR);
|
|
1263
|
+
if (!!(process.env.NODE_ENV !== "production") && debugOptions && !isSSR) {
|
|
1264
|
+
cRef.effect.onTrack = debugOptions.onTrack;
|
|
1265
|
+
cRef.effect.onTrigger = debugOptions.onTrigger;
|
|
1266
|
+
}
|
|
1267
|
+
return cRef;
|
|
1268
|
+
}
|
|
1269
|
+
|
|
1193
1270
|
function trackRefValue(ref2) {
|
|
1194
1271
|
if (shouldTrack && activeEffect) {
|
|
1195
1272
|
ref2 = toRaw(ref2);
|
|
1196
|
-
|
|
1197
|
-
|
|
1273
|
+
trackEffect(
|
|
1274
|
+
activeEffect,
|
|
1275
|
+
ref2.dep || (ref2.dep = createDep(
|
|
1276
|
+
() => ref2.dep = void 0,
|
|
1277
|
+
ref2 instanceof ComputedRefImpl ? ref2 : void 0
|
|
1278
|
+
)),
|
|
1279
|
+
!!(process.env.NODE_ENV !== "production") ? {
|
|
1198
1280
|
target: ref2,
|
|
1199
1281
|
type: "get",
|
|
1200
1282
|
key: "value"
|
|
1201
|
-
}
|
|
1202
|
-
|
|
1203
|
-
trackEffects(ref2.dep || (ref2.dep = createDep()));
|
|
1204
|
-
}
|
|
1283
|
+
} : void 0
|
|
1284
|
+
);
|
|
1205
1285
|
}
|
|
1206
1286
|
}
|
|
1207
|
-
function triggerRefValue(ref2, newVal) {
|
|
1287
|
+
function triggerRefValue(ref2, dirtyLevel = 3, newVal) {
|
|
1208
1288
|
ref2 = toRaw(ref2);
|
|
1209
1289
|
const dep = ref2.dep;
|
|
1210
1290
|
if (dep) {
|
|
1211
|
-
|
|
1212
|
-
|
|
1291
|
+
triggerEffects(
|
|
1292
|
+
dep,
|
|
1293
|
+
dirtyLevel,
|
|
1294
|
+
!!(process.env.NODE_ENV !== "production") ? {
|
|
1213
1295
|
target: ref2,
|
|
1214
1296
|
type: "set",
|
|
1215
1297
|
key: "value",
|
|
1216
1298
|
newValue: newVal
|
|
1217
|
-
}
|
|
1218
|
-
|
|
1219
|
-
triggerEffects(dep);
|
|
1220
|
-
}
|
|
1299
|
+
} : void 0
|
|
1300
|
+
);
|
|
1221
1301
|
}
|
|
1222
1302
|
}
|
|
1223
1303
|
function isRef(r) {
|
|
@@ -1253,12 +1333,12 @@ class RefImpl {
|
|
|
1253
1333
|
if (hasChanged(newVal, this._rawValue)) {
|
|
1254
1334
|
this._rawValue = newVal;
|
|
1255
1335
|
this._value = useDirectValue ? newVal : toReactive(newVal);
|
|
1256
|
-
triggerRefValue(this, newVal);
|
|
1336
|
+
triggerRefValue(this, 3, newVal);
|
|
1257
1337
|
}
|
|
1258
1338
|
}
|
|
1259
1339
|
}
|
|
1260
1340
|
function triggerRef(ref2) {
|
|
1261
|
-
triggerRefValue(ref2, !!(process.env.NODE_ENV !== "production") ? ref2.value : void 0);
|
|
1341
|
+
triggerRefValue(ref2, 3, !!(process.env.NODE_ENV !== "production") ? ref2.value : void 0);
|
|
1262
1342
|
}
|
|
1263
1343
|
function unref(ref2) {
|
|
1264
1344
|
return isRef(ref2) ? ref2.value : ref2;
|
|
@@ -1356,57 +1436,6 @@ function propertyToRef(source, key, defaultValue) {
|
|
|
1356
1436
|
return isRef(val) ? val : new ObjectRefImpl(source, key, defaultValue);
|
|
1357
1437
|
}
|
|
1358
1438
|
|
|
1359
|
-
class ComputedRefImpl {
|
|
1360
|
-
constructor(getter, _setter, isReadonly, isSSR) {
|
|
1361
|
-
this._setter = _setter;
|
|
1362
|
-
this.dep = void 0;
|
|
1363
|
-
this.__v_isRef = true;
|
|
1364
|
-
this["__v_isReadonly"] = false;
|
|
1365
|
-
this._dirty = true;
|
|
1366
|
-
this.effect = new ReactiveEffect(getter, () => {
|
|
1367
|
-
if (!this._dirty) {
|
|
1368
|
-
this._dirty = true;
|
|
1369
|
-
triggerRefValue(this);
|
|
1370
|
-
}
|
|
1371
|
-
});
|
|
1372
|
-
this.effect.computed = this;
|
|
1373
|
-
this.effect.active = this._cacheable = !isSSR;
|
|
1374
|
-
this["__v_isReadonly"] = isReadonly;
|
|
1375
|
-
}
|
|
1376
|
-
get value() {
|
|
1377
|
-
const self = toRaw(this);
|
|
1378
|
-
trackRefValue(self);
|
|
1379
|
-
if (self._dirty || !self._cacheable) {
|
|
1380
|
-
self._dirty = false;
|
|
1381
|
-
self._value = self.effect.run();
|
|
1382
|
-
}
|
|
1383
|
-
return self._value;
|
|
1384
|
-
}
|
|
1385
|
-
set value(newValue) {
|
|
1386
|
-
this._setter(newValue);
|
|
1387
|
-
}
|
|
1388
|
-
}
|
|
1389
|
-
function computed$1(getterOrOptions, debugOptions, isSSR = false) {
|
|
1390
|
-
let getter;
|
|
1391
|
-
let setter;
|
|
1392
|
-
const onlyGetter = isFunction(getterOrOptions);
|
|
1393
|
-
if (onlyGetter) {
|
|
1394
|
-
getter = getterOrOptions;
|
|
1395
|
-
setter = !!(process.env.NODE_ENV !== "production") ? () => {
|
|
1396
|
-
console.warn("Write operation failed: computed value is readonly");
|
|
1397
|
-
} : NOOP;
|
|
1398
|
-
} else {
|
|
1399
|
-
getter = getterOrOptions.get;
|
|
1400
|
-
setter = getterOrOptions.set;
|
|
1401
|
-
}
|
|
1402
|
-
const cRef = new ComputedRefImpl(getter, setter, onlyGetter || !setter, isSSR);
|
|
1403
|
-
if (!!(process.env.NODE_ENV !== "production") && debugOptions && !isSSR) {
|
|
1404
|
-
cRef.effect.onTrack = debugOptions.onTrack;
|
|
1405
|
-
cRef.effect.onTrigger = debugOptions.onTrigger;
|
|
1406
|
-
}
|
|
1407
|
-
return cRef;
|
|
1408
|
-
}
|
|
1409
|
-
|
|
1410
1439
|
const stack = [];
|
|
1411
1440
|
function pushWarningContext(vnode) {
|
|
1412
1441
|
stack.push(vnode);
|
|
@@ -1525,7 +1554,7 @@ function assertNumber(val, type) {
|
|
|
1525
1554
|
}
|
|
1526
1555
|
}
|
|
1527
1556
|
|
|
1528
|
-
const ErrorTypeStrings = {
|
|
1557
|
+
const ErrorTypeStrings$1 = {
|
|
1529
1558
|
["sp"]: "serverPrefetch hook",
|
|
1530
1559
|
["bc"]: "beforeCreate hook",
|
|
1531
1560
|
["c"]: "created hook",
|
|
@@ -1586,7 +1615,7 @@ function handleError(err, instance, type, throwInDev = true) {
|
|
|
1586
1615
|
if (instance) {
|
|
1587
1616
|
let cur = instance.parent;
|
|
1588
1617
|
const exposedInstance = instance.proxy;
|
|
1589
|
-
const errorInfo = !!(process.env.NODE_ENV !== "production") ? ErrorTypeStrings[type] : type;
|
|
1618
|
+
const errorInfo = !!(process.env.NODE_ENV !== "production") ? ErrorTypeStrings$1[type] : type;
|
|
1590
1619
|
while (cur) {
|
|
1591
1620
|
const errorCapturedHooks = cur.ec;
|
|
1592
1621
|
if (errorCapturedHooks) {
|
|
@@ -1613,7 +1642,7 @@ function handleError(err, instance, type, throwInDev = true) {
|
|
|
1613
1642
|
}
|
|
1614
1643
|
function logError(err, type, contextVNode, throwInDev = true) {
|
|
1615
1644
|
if (!!(process.env.NODE_ENV !== "production")) {
|
|
1616
|
-
const info = ErrorTypeStrings[type];
|
|
1645
|
+
const info = ErrorTypeStrings$1[type];
|
|
1617
1646
|
if (contextVNode) {
|
|
1618
1647
|
pushWarningContext(contextVNode);
|
|
1619
1648
|
}
|
|
@@ -1843,6 +1872,7 @@ function rerender(id, newRender) {
|
|
|
1843
1872
|
}
|
|
1844
1873
|
instance.renderCache = [];
|
|
1845
1874
|
isHmrUpdating = true;
|
|
1875
|
+
instance.effect.dirty = true;
|
|
1846
1876
|
instance.update();
|
|
1847
1877
|
isHmrUpdating = false;
|
|
1848
1878
|
});
|
|
@@ -1870,6 +1900,7 @@ function reload(id, newComp) {
|
|
|
1870
1900
|
instance.ceReload(newComp.styles);
|
|
1871
1901
|
hmrDirtyComponents.delete(oldComp);
|
|
1872
1902
|
} else if (instance.parent) {
|
|
1903
|
+
instance.parent.effect.dirty = true;
|
|
1873
1904
|
queueJob(instance.parent.update);
|
|
1874
1905
|
} else if (instance.appContext.reload) {
|
|
1875
1906
|
instance.appContext.reload();
|
|
@@ -3568,8 +3599,15 @@ function watch(source, cb, options) {
|
|
|
3568
3599
|
}
|
|
3569
3600
|
return doWatch(source, cb, options);
|
|
3570
3601
|
}
|
|
3571
|
-
function doWatch(source, cb, { immediate, deep, flush, onTrack, onTrigger } = EMPTY_OBJ) {
|
|
3602
|
+
function doWatch(source, cb, { immediate, deep, flush, once, onTrack, onTrigger } = EMPTY_OBJ) {
|
|
3572
3603
|
var _a;
|
|
3604
|
+
if (cb && once) {
|
|
3605
|
+
const _cb = cb;
|
|
3606
|
+
cb = (...args) => {
|
|
3607
|
+
_cb(...args);
|
|
3608
|
+
unwatch();
|
|
3609
|
+
};
|
|
3610
|
+
}
|
|
3573
3611
|
if (!!(process.env.NODE_ENV !== "production") && !cb) {
|
|
3574
3612
|
if (immediate !== void 0) {
|
|
3575
3613
|
warn(
|
|
@@ -3581,6 +3619,11 @@ function doWatch(source, cb, { immediate, deep, flush, onTrack, onTrigger } = EM
|
|
|
3581
3619
|
`watch() "deep" option is only respected when using the watch(source, callback, options?) signature.`
|
|
3582
3620
|
);
|
|
3583
3621
|
}
|
|
3622
|
+
if (once !== void 0) {
|
|
3623
|
+
warn(
|
|
3624
|
+
`watch() "once" option is only respected when using the watch(source, callback, options?) signature.`
|
|
3625
|
+
);
|
|
3626
|
+
}
|
|
3584
3627
|
}
|
|
3585
3628
|
const warnInvalidSource = (s) => {
|
|
3586
3629
|
warn(
|
|
@@ -3677,7 +3720,7 @@ function doWatch(source, cb, { immediate, deep, flush, onTrack, onTrigger } = EM
|
|
|
3677
3720
|
}
|
|
3678
3721
|
let oldValue = isMultiSource ? new Array(source.length).fill(INITIAL_WATCHER_VALUE) : INITIAL_WATCHER_VALUE;
|
|
3679
3722
|
const job = () => {
|
|
3680
|
-
if (!effect.active) {
|
|
3723
|
+
if (!effect.active || !effect.dirty) {
|
|
3681
3724
|
return;
|
|
3682
3725
|
}
|
|
3683
3726
|
if (cb) {
|
|
@@ -3710,7 +3753,13 @@ function doWatch(source, cb, { immediate, deep, flush, onTrack, onTrigger } = EM
|
|
|
3710
3753
|
job.id = instance.uid;
|
|
3711
3754
|
scheduler = () => queueJob(job);
|
|
3712
3755
|
}
|
|
3713
|
-
const effect = new ReactiveEffect(getter, scheduler);
|
|
3756
|
+
const effect = new ReactiveEffect(getter, NOOP, scheduler);
|
|
3757
|
+
const unwatch = () => {
|
|
3758
|
+
effect.stop();
|
|
3759
|
+
if (instance && instance.scope) {
|
|
3760
|
+
remove(instance.scope.effects, effect);
|
|
3761
|
+
}
|
|
3762
|
+
};
|
|
3714
3763
|
if (!!(process.env.NODE_ENV !== "production")) {
|
|
3715
3764
|
effect.onTrack = onTrack;
|
|
3716
3765
|
effect.onTrigger = onTrigger;
|
|
@@ -3729,12 +3778,6 @@ function doWatch(source, cb, { immediate, deep, flush, onTrack, onTrigger } = EM
|
|
|
3729
3778
|
} else {
|
|
3730
3779
|
effect.run();
|
|
3731
3780
|
}
|
|
3732
|
-
const unwatch = () => {
|
|
3733
|
-
effect.stop();
|
|
3734
|
-
if (instance && instance.scope) {
|
|
3735
|
-
remove(instance.scope.effects, effect);
|
|
3736
|
-
}
|
|
3737
|
-
};
|
|
3738
3781
|
if (ssrCleanup)
|
|
3739
3782
|
ssrCleanup.push(unwatch);
|
|
3740
3783
|
return unwatch;
|
|
@@ -3971,6 +4014,7 @@ const BaseTransitionImpl = {
|
|
|
3971
4014
|
leavingHooks.afterLeave = () => {
|
|
3972
4015
|
state.isLeaving = false;
|
|
3973
4016
|
if (instance.update.active !== false) {
|
|
4017
|
+
instance.effect.dirty = true;
|
|
3974
4018
|
instance.update();
|
|
3975
4019
|
}
|
|
3976
4020
|
};
|
|
@@ -4309,6 +4353,7 @@ function defineAsyncComponent(source) {
|
|
|
4309
4353
|
load().then(() => {
|
|
4310
4354
|
loaded.value = true;
|
|
4311
4355
|
if (instance.parent && isKeepAlive(instance.parent.vnode)) {
|
|
4356
|
+
instance.parent.effect.dirty = true;
|
|
4312
4357
|
queueJob(instance.parent.update);
|
|
4313
4358
|
}
|
|
4314
4359
|
}).catch((err) => {
|
|
@@ -4612,7 +4657,7 @@ function injectHook(type, hook, target = currentInstance, prepend = false) {
|
|
|
4612
4657
|
}
|
|
4613
4658
|
return wrappedHook;
|
|
4614
4659
|
} else if (!!(process.env.NODE_ENV !== "production")) {
|
|
4615
|
-
const apiName = toHandlerKey(ErrorTypeStrings[type].replace(/ hook$/, ""));
|
|
4660
|
+
const apiName = toHandlerKey(ErrorTypeStrings$1[type].replace(/ hook$/, ""));
|
|
4616
4661
|
warn(
|
|
4617
4662
|
`${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.` )
|
|
4618
4663
|
);
|
|
@@ -5334,7 +5379,10 @@ const publicPropertiesMap = (
|
|
|
5334
5379
|
$root: (i) => getPublicInstance(i.root),
|
|
5335
5380
|
$emit: (i) => i.emit,
|
|
5336
5381
|
$options: (i) => __VUE_OPTIONS_API__ ? resolveMergedOptions(i) : i.type,
|
|
5337
|
-
$forceUpdate: (i) => i.f || (i.f = () =>
|
|
5382
|
+
$forceUpdate: (i) => i.f || (i.f = () => {
|
|
5383
|
+
i.effect.dirty = true;
|
|
5384
|
+
queueJob(i.update);
|
|
5385
|
+
}),
|
|
5338
5386
|
$nextTick: (i) => i.n || (i.n = nextTick.bind(i.proxy)),
|
|
5339
5387
|
$watch: (i) => __VUE_OPTIONS_API__ ? instanceWatch.bind(i) : NOOP
|
|
5340
5388
|
})
|
|
@@ -6237,7 +6285,7 @@ function createCompatVue$1(createApp, createSingletonApp) {
|
|
|
6237
6285
|
return vm;
|
|
6238
6286
|
}
|
|
6239
6287
|
}
|
|
6240
|
-
Vue.version = `2.6.14-compat:${"3.
|
|
6288
|
+
Vue.version = `2.6.14-compat:${"3.4.0-alpha.1"}`;
|
|
6241
6289
|
Vue.config = singletonApp.config;
|
|
6242
6290
|
Vue.use = (p, ...options) => {
|
|
6243
6291
|
if (p && isFunction(p.install)) {
|
|
@@ -8680,6 +8728,7 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
8680
8728
|
} else {
|
|
8681
8729
|
instance.next = n2;
|
|
8682
8730
|
invalidateJob(instance.update);
|
|
8731
|
+
instance.effect.dirty = true;
|
|
8683
8732
|
instance.update();
|
|
8684
8733
|
}
|
|
8685
8734
|
} else {
|
|
@@ -8873,11 +8922,16 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
8873
8922
|
};
|
|
8874
8923
|
const effect = instance.effect = new ReactiveEffect(
|
|
8875
8924
|
componentUpdateFn,
|
|
8925
|
+
NOOP,
|
|
8876
8926
|
() => queueJob(update),
|
|
8877
8927
|
instance.scope
|
|
8878
8928
|
// track it in component's effect scope
|
|
8879
8929
|
);
|
|
8880
|
-
const update = instance.update = () =>
|
|
8930
|
+
const update = instance.update = () => {
|
|
8931
|
+
if (effect.dirty) {
|
|
8932
|
+
effect.run();
|
|
8933
|
+
}
|
|
8934
|
+
};
|
|
8881
8935
|
update.id = instance.uid;
|
|
8882
8936
|
toggleRecurse(instance, true);
|
|
8883
8937
|
if (!!(process.env.NODE_ENV !== "production")) {
|
|
@@ -10877,7 +10931,8 @@ function isMemoSame(cached, memo) {
|
|
|
10877
10931
|
return true;
|
|
10878
10932
|
}
|
|
10879
10933
|
|
|
10880
|
-
const version = "3.
|
|
10934
|
+
const version = "3.4.0-alpha.1";
|
|
10935
|
+
const ErrorTypeStrings = ErrorTypeStrings$1 ;
|
|
10881
10936
|
const _ssrUtils = {
|
|
10882
10937
|
createComponentInstance,
|
|
10883
10938
|
setupComponent,
|
|
@@ -12569,6 +12624,7 @@ var runtimeDom = /*#__PURE__*/Object.freeze({
|
|
|
12569
12624
|
BaseTransitionPropsValidators: BaseTransitionPropsValidators,
|
|
12570
12625
|
Comment: Comment,
|
|
12571
12626
|
EffectScope: EffectScope,
|
|
12627
|
+
ErrorTypeStrings: ErrorTypeStrings,
|
|
12572
12628
|
Fragment: Fragment,
|
|
12573
12629
|
KeepAlive: KeepAlive,
|
|
12574
12630
|
ReactiveEffect: ReactiveEffect,
|
|
@@ -12759,4 +12815,4 @@ var Vue$1 = Vue;
|
|
|
12759
12815
|
|
|
12760
12816
|
const { configureCompat } = Vue$1;
|
|
12761
12817
|
|
|
12762
|
-
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 };
|
|
12818
|
+
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 };
|