v1.0.5 & docs update

This commit is contained in:
EternityDev 2024-01-31 13:33:19 +07:00
parent 7846882bf5
commit 74db23f017
310 changed files with 28216 additions and 15442 deletions

1
.gitattributes vendored Normal file
View file

@ -0,0 +1 @@
*.luau linguist-language=Lua

45
.gitignore vendored
View file

@ -1,41 +1,4 @@
# Compiled Lua sources node_modules
luac.out docs/.vitepress/dist
docs/.vitepress/cache
# luarocks build files wally.lock
*.src.rock
*.zip
*.tar.gz
# Object files
*.o
*.os
*.ko
*.obj
*.elf
# Precompiled Headers
*.gch
*.pch
# Libraries
*.lib
*.a
*.la
*.lo
*.def
*.exp
# Shared objects (inc. Windows DLLs)
*.dll
*.so
*.so.*
*.dylib
# Executables
*.exe
*.out
*.app
*.i*86
*.x86_64
*.hex

3
.luaurc Normal file
View file

@ -0,0 +1,3 @@
{
"languageMode": "strict"
}

BIN
Warp.rbxm

Binary file not shown.

View file

@ -3,5 +3,5 @@
# To add a new tool, add an entry to this table. # To add a new tool, add an entry to this table.
[tools] [tools]
rojo = "rojo-rbx/rojo@7.3.0" rojo = "rojo-rbx/rojo@7.4.0"
wally = "UpliftGames/wally@0.3.2" wally = "UpliftGames/wally@0.3.2"

View file

@ -1,31 +1,52 @@
{ {
"hash": "2742d842", "hash": "64a640d4",
"configHash": "4a960105", "configHash": "3539395e",
"lockfileHash": "e5af05f2", "lockfileHash": "16b933ee",
"browserHash": "f4abe41e", "browserHash": "761a6f81",
"optimized": { "optimized": {
"vue": { "vue": {
"src": "../../../../node_modules/vue/dist/vue.runtime.esm-bundler.js", "src": "../../../../node_modules/vue/dist/vue.runtime.esm-bundler.js",
"file": "vue.js", "file": "vue.js",
"fileHash": "00d22783", "fileHash": "2232d95d",
"needsInterop": false "needsInterop": false
}, },
"vitepress > @vue/devtools-api": { "vitepress > @vue/devtools-api": {
"src": "../../../../node_modules/@vue/devtools-api/lib/esm/index.js", "src": "../../../../node_modules/@vue/devtools-api/lib/esm/index.js",
"file": "vitepress___@vue_devtools-api.js", "file": "vitepress___@vue_devtools-api.js",
"fileHash": "fbece760", "fileHash": "ea18bfc8",
"needsInterop": false "needsInterop": false
}, },
"vitepress > @vueuse/core": { "vitepress > @vueuse/core": {
"src": "../../../../node_modules/@vueuse/core/index.mjs", "src": "../../../../node_modules/@vueuse/core/index.mjs",
"file": "vitepress___@vueuse_core.js", "file": "vitepress___@vueuse_core.js",
"fileHash": "81778500", "fileHash": "1889f635",
"needsInterop": false
},
"vitepress > @vueuse/integrations/useFocusTrap": {
"src": "../../../../node_modules/@vueuse/integrations/useFocusTrap.mjs",
"file": "vitepress___@vueuse_integrations_useFocusTrap.js",
"fileHash": "84f193d7",
"needsInterop": false
},
"vitepress > mark.js/src/vanilla.js": {
"src": "../../../../node_modules/mark.js/src/vanilla.js",
"file": "vitepress___mark__js_src_vanilla__js.js",
"fileHash": "3dbcfe04",
"needsInterop": false
},
"vitepress > minisearch": {
"src": "../../../../node_modules/minisearch/dist/es/index.js",
"file": "vitepress___minisearch.js",
"fileHash": "5c47da60",
"needsInterop": false "needsInterop": false
} }
}, },
"chunks": { "chunks": {
"chunk-TL4KESHX": { "chunk-WFT6MZEP": {
"file": "chunk-TL4KESHX.js" "file": "chunk-WFT6MZEP.js"
},
"chunk-3YS4HNIT": {
"file": "chunk-3YS4HNIT.js"
} }
} }
} }

View file

@ -193,6 +193,13 @@ var isKnownHtmlAttr = makeMap(
var isKnownSvgAttr = makeMap( var isKnownSvgAttr = makeMap(
`xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,color-interpolation-filters,color-profile,color-rendering,contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,font-family,font-size,font-size-adjust,font-stretch,font-style,font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,overflow,overline-position,overline-thickness,panose-1,paint-order,path,pathLength,patternContentUnits,patternTransform,patternUnits,ping,pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,specularConstant,specularExponent,speed,spreadMethod,startOffset,stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,string,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,text-decoration,text-rendering,textLength,to,transform,transform-origin,type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xmlns:xlink,xml:base,xml:lang,xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan` `xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,color-interpolation-filters,color-profile,color-rendering,contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,font-family,font-size,font-size-adjust,font-stretch,font-style,font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,overflow,overline-position,overline-thickness,panose-1,paint-order,path,pathLength,patternContentUnits,patternTransform,patternUnits,ping,pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,specularConstant,specularExponent,speed,spreadMethod,startOffset,stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,string,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,text-decoration,text-rendering,textLength,to,transform,transform-origin,type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xmlns:xlink,xml:base,xml:lang,xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan`
); );
function isRenderableAttrValue(value) {
if (value == null) {
return false;
}
const type = typeof value;
return type === "string" || type === "number" || type === "boolean";
}
function looseCompareArrays(a, b) { function looseCompareArrays(a, b) {
if (a.length !== b.length) if (a.length !== b.length)
return false; return false;
@ -378,19 +385,18 @@ var ReactiveEffect = class {
this.scheduler = scheduler; this.scheduler = scheduler;
this.active = true; this.active = true;
this.deps = []; this.deps = [];
this._dirtyLevel = 3; this._dirtyLevel = 2;
this._trackId = 0; this._trackId = 0;
this._runnings = 0; this._runnings = 0;
this._queryings = 0; this._shouldSchedule = false;
this._depsLength = 0; this._depsLength = 0;
recordEffectScope(this, scope); recordEffectScope(this, scope);
} }
get dirty() { get dirty() {
if (this._dirtyLevel === 1) { if (this._dirtyLevel === 1) {
this._dirtyLevel = 0;
this._queryings++;
pauseTracking(); pauseTracking();
for (const dep of this.deps) { for (let i = 0; i < this._depsLength; i++) {
const dep = this.deps[i];
if (dep.computed) { if (dep.computed) {
triggerComputed(dep.computed); triggerComputed(dep.computed);
if (this._dirtyLevel >= 2) { if (this._dirtyLevel >= 2) {
@ -398,13 +404,15 @@ var ReactiveEffect = class {
} }
} }
} }
if (this._dirtyLevel < 2) {
this._dirtyLevel = 0;
}
resetTracking(); resetTracking();
this._queryings--;
} }
return this._dirtyLevel >= 2; return this._dirtyLevel >= 2;
} }
set dirty(v) { set dirty(v) {
this._dirtyLevel = v ? 3 : 0; this._dirtyLevel = v ? 2 : 0;
} }
run() { run() {
this._dirtyLevel = 0; this._dirtyLevel = 0;
@ -527,25 +535,29 @@ function triggerEffects(dep, dirtyLevel, debuggerEventExtraInfo) {
var _a; var _a;
pauseScheduling(); pauseScheduling();
for (const effect2 of dep.keys()) { for (const effect2 of dep.keys()) {
if (!effect2.allowRecurse && effect2._runnings) { if (effect2._dirtyLevel < dirtyLevel && dep.get(effect2) === effect2._trackId) {
continue;
}
if (effect2._dirtyLevel < dirtyLevel && (!effect2._runnings || dirtyLevel !== 2)) {
const lastDirtyLevel = effect2._dirtyLevel; const lastDirtyLevel = effect2._dirtyLevel;
effect2._dirtyLevel = dirtyLevel; effect2._dirtyLevel = dirtyLevel;
if (lastDirtyLevel === 0 && (!effect2._queryings || dirtyLevel !== 2)) { if (lastDirtyLevel === 0) {
effect2._shouldSchedule = true;
if (true) { if (true) {
(_a = effect2.onTrigger) == null ? void 0 : _a.call(effect2, extend({ effect: effect2 }, debuggerEventExtraInfo)); (_a = effect2.onTrigger) == null ? void 0 : _a.call(effect2, extend({ effect: effect2 }, debuggerEventExtraInfo));
} }
effect2.trigger(); effect2.trigger();
if (effect2.scheduler) {
queueEffectSchedulers.push(effect2.scheduler);
}
} }
} }
} }
scheduleEffects(dep);
resetScheduling(); resetScheduling();
} }
function scheduleEffects(dep) {
for (const effect2 of dep.keys()) {
if (effect2.scheduler && effect2._shouldSchedule && (!effect2._runnings || effect2.allowRecurse) && dep.get(effect2) === effect2._trackId) {
effect2._shouldSchedule = false;
queueEffectSchedulers.push(effect2.scheduler);
}
}
}
var createDep = (cleanup, computed3) => { var createDep = (cleanup, computed3) => {
const dep = /* @__PURE__ */ new Map(); const dep = /* @__PURE__ */ new Map();
dep.cleanup = cleanup; dep.cleanup = cleanup;
@ -626,7 +638,7 @@ function trigger(target, type, key, newValue, oldValue, oldTarget) {
if (dep) { if (dep) {
triggerEffects( triggerEffects(
dep, dep,
3, 2,
true ? { true ? {
target, target,
type, type,
@ -1221,7 +1233,8 @@ var ComputedRefImpl = class {
this["__v_isReadonly"] = false; this["__v_isReadonly"] = false;
this.effect = new ReactiveEffect( this.effect = new ReactiveEffect(
() => getter(this._value), () => getter(this._value),
() => triggerRefValue(this, 1) () => triggerRefValue(this, 1),
() => this.dep && scheduleEffects(this.dep)
); );
this.effect.computed = this; this.effect.computed = this;
this.effect.active = this._cacheable = !isSSR; this.effect.active = this._cacheable = !isSSR;
@ -1229,12 +1242,15 @@ var ComputedRefImpl = class {
} }
get value() { get value() {
const self2 = toRaw(this); const self2 = toRaw(this);
trackRefValue(self2);
if (!self2._cacheable || self2.effect.dirty) { if (!self2._cacheable || self2.effect.dirty) {
if (hasChanged(self2._value, self2._value = self2.effect.run())) { if (hasChanged(self2._value, self2._value = self2.effect.run())) {
triggerRefValue(self2, 2); triggerRefValue(self2, 2);
} }
} }
trackRefValue(self2);
if (self2.effect._dirtyLevel >= 1) {
triggerRefValue(self2, 1);
}
return self2._value; return self2._value;
} }
set value(newValue) { set value(newValue) {
@ -1286,7 +1302,7 @@ function trackRefValue(ref2) {
); );
} }
} }
function triggerRefValue(ref2, dirtyLevel = 3, newVal) { function triggerRefValue(ref2, dirtyLevel = 2, newVal) {
ref2 = toRaw(ref2); ref2 = toRaw(ref2);
const dep = ref2.dep; const dep = ref2.dep;
if (dep) { if (dep) {
@ -1335,12 +1351,12 @@ var RefImpl = class {
if (hasChanged(newVal, this._rawValue)) { if (hasChanged(newVal, this._rawValue)) {
this._rawValue = newVal; this._rawValue = newVal;
this._value = useDirectValue ? newVal : toReactive(newVal); this._value = useDirectValue ? newVal : toReactive(newVal);
triggerRefValue(this, 3, newVal); triggerRefValue(this, 2, newVal);
} }
} }
}; };
function triggerRef(ref2) { function triggerRef(ref2) {
triggerRefValue(ref2, 3, true ? ref2.value : void 0); triggerRefValue(ref2, 2, true ? ref2.value : void 0);
} }
function unref(ref2) { function unref(ref2) {
return isRef(ref2) ? ref2.value : ref2; return isRef(ref2) ? ref2.value : ref2;
@ -1658,7 +1674,7 @@ function handleError(err, instance, type, throwInDev = true) {
if (instance) { if (instance) {
let cur = instance.parent; let cur = instance.parent;
const exposedInstance = instance.proxy; const exposedInstance = instance.proxy;
const errorInfo = true ? ErrorTypeStrings$1[type] : `https://vuejs.org/errors/#runtime-${type}`; const errorInfo = true ? ErrorTypeStrings$1[type] : `https://vuejs.org/error-reference/#runtime-${type}`;
while (cur) { while (cur) {
const errorCapturedHooks = cur.ec; const errorCapturedHooks = cur.ec;
if (errorCapturedHooks) { if (errorCapturedHooks) {
@ -1790,7 +1806,9 @@ function flushPreFlushCbs(instance, seen, i = isFlushing ? flushIndex + 1 : 0) {
} }
function flushPostFlushCbs(seen) { function flushPostFlushCbs(seen) {
if (pendingPostFlushCbs.length) { if (pendingPostFlushCbs.length) {
const deduped = [...new Set(pendingPostFlushCbs)]; const deduped = [...new Set(pendingPostFlushCbs)].sort(
(a, b) => getId(a) - getId(b)
);
pendingPostFlushCbs.length = 0; pendingPostFlushCbs.length = 0;
if (activePostFlushCbs) { if (activePostFlushCbs) {
activePostFlushCbs.push(...deduped); activePostFlushCbs.push(...deduped);
@ -1800,7 +1818,6 @@ function flushPostFlushCbs(seen) {
if (true) { if (true) {
seen = seen || /* @__PURE__ */ new Map(); seen = seen || /* @__PURE__ */ new Map();
} }
activePostFlushCbs.sort((a, b) => getId(a) - getId(b));
for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) { for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) {
if (checkRecursiveUpdates(seen, activePostFlushCbs[postFlushIndex])) { if (checkRecursiveUpdates(seen, activePostFlushCbs[postFlushIndex])) {
continue; continue;
@ -2426,9 +2443,11 @@ function renderComponentRoot(instance) {
var getChildRoot = (vnode) => { var getChildRoot = (vnode) => {
const rawChildren = vnode.children; const rawChildren = vnode.children;
const dynamicChildren = vnode.dynamicChildren; const dynamicChildren = vnode.dynamicChildren;
const childRoot = filterSingleRoot(rawChildren); const childRoot = filterSingleRoot(rawChildren, false);
if (!childRoot) { if (!childRoot) {
return [vnode, void 0]; return [vnode, void 0];
} else if (childRoot.patchFlag > 0 && childRoot.patchFlag & 2048) {
return getChildRoot(childRoot);
} }
const index = rawChildren.indexOf(childRoot); const index = rawChildren.indexOf(childRoot);
const dynamicIndex = dynamicChildren ? dynamicChildren.indexOf(childRoot) : -1; const dynamicIndex = dynamicChildren ? dynamicChildren.indexOf(childRoot) : -1;
@ -2444,7 +2463,7 @@ var getChildRoot = (vnode) => {
}; };
return [normalizeVNode(childRoot), setRoot]; return [normalizeVNode(childRoot), setRoot];
}; };
function filterSingleRoot(children) { function filterSingleRoot(children, recurse = true) {
let singleRoot; let singleRoot;
for (let i = 0; i < children.length; i++) { for (let i = 0; i < children.length; i++) {
const child = children[i]; const child = children[i];
@ -2454,6 +2473,9 @@ function filterSingleRoot(children) {
return; return;
} else { } else {
singleRoot = child; singleRoot = child;
if (recurse && singleRoot.patchFlag > 0 && singleRoot.patchFlag & 2048) {
return filterSingleRoot(singleRoot.children);
}
} }
} }
} else { } else {
@ -2544,8 +2566,6 @@ function hasPropsChanged(prevProps, nextProps, emitsOptions) {
return false; return false;
} }
function updateHOCHostEl({ vnode, parent }, el) { function updateHOCHostEl({ vnode, parent }, el) {
if (!el)
return;
while (parent) { while (parent) {
const root = parent.subTree; const root = parent.subTree;
if (root.suspense && root.suspense.activeBranch === vnode) { if (root.suspense && root.suspense.activeBranch === vnode) {
@ -2635,6 +2655,10 @@ var SuspenseImpl = {
rendererInternals rendererInternals
); );
} else { } else {
if (parentSuspense && parentSuspense.deps > 0) {
n2.suspense = n1.suspense;
return;
}
patchSuspense( patchSuspense(
n1, n1,
n2, n2,
@ -2893,6 +2917,7 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
if (true) { if (true) {
assertNumber(timeout, `Suspense timeout`); assertNumber(timeout, `Suspense timeout`);
} }
const initialAnchor = anchor;
const suspense = { const suspense = {
vnode, vnode,
parent: parentSuspense, parent: parentSuspense,
@ -2900,7 +2925,6 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
namespace, namespace,
container, container,
hiddenContainer, hiddenContainer,
anchor,
deps: 0, deps: 0,
pendingId: suspenseId++, pendingId: suspenseId++,
timeout: typeof timeout === "number" ? timeout : -1, timeout: typeof timeout === "number" ? timeout : -1,
@ -2943,20 +2967,21 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
move( move(
pendingBranch, pendingBranch,
container2, container2,
next(activeBranch), anchor === initialAnchor ? next(activeBranch) : anchor,
0 0
); );
queuePostFlushCb(effects); queuePostFlushCb(effects);
} }
}; };
} }
let { anchor: anchor2 } = suspense;
if (activeBranch) { if (activeBranch) {
anchor2 = next(activeBranch); if (parentNode(activeBranch.el) !== suspense.hiddenContainer) {
anchor = next(activeBranch);
}
unmount(activeBranch, parentComponent2, suspense, true); unmount(activeBranch, parentComponent2, suspense, true);
} }
if (!delayEnter) { if (!delayEnter) {
move(pendingBranch, container2, anchor2, 0); move(pendingBranch, container2, anchor, 0);
} }
} }
setActiveBranch(suspense, pendingBranch); setActiveBranch(suspense, pendingBranch);
@ -3183,7 +3208,12 @@ function queueEffectWithSuspense(fn, suspense) {
function setActiveBranch(suspense, branch) { function setActiveBranch(suspense, branch) {
suspense.activeBranch = branch; suspense.activeBranch = branch;
const { vnode, parentComponent } = suspense; const { vnode, parentComponent } = suspense;
const el = vnode.el = branch.el; let el = branch.el;
while (!el && branch.component) {
branch = branch.component.subTree;
el = branch.el;
}
vnode.el = el;
if (parentComponent && parentComponent.subTree === vnode) { if (parentComponent && parentComponent.subTree === vnode) {
parentComponent.vnode.el = el; parentComponent.vnode.el = el;
updateHOCHostEl(parentComponent, el); updateHOCHostEl(parentComponent, el);
@ -3428,14 +3458,9 @@ function instanceWatch(source, value, options) {
cb = value.handler; cb = value.handler;
options = value; options = value;
} }
const cur = currentInstance; const reset = setCurrentInstance(this);
setCurrentInstance(this);
const res = doWatch(getter, cb.bind(publicThis), options); const res = doWatch(getter, cb.bind(publicThis), options);
if (cur) { reset();
setCurrentInstance(cur);
} else {
unsetCurrentInstance();
}
return res; return res;
} }
function createPathGetter(ctx, path) { function createPathGetter(ctx, path) {
@ -3486,12 +3511,11 @@ function validateDirectiveName(name) {
} }
} }
function withDirectives(vnode, directives) { function withDirectives(vnode, directives) {
const internalInstance = currentRenderingInstance; if (currentRenderingInstance === null) {
if (internalInstance === null) {
warn$1(`withDirectives can only be used inside render functions.`); warn$1(`withDirectives can only be used inside render functions.`);
return vnode; return vnode;
} }
const instance = getExposeProxy(internalInstance) || internalInstance.proxy; const instance = getExposeProxy(currentRenderingInstance) || currentRenderingInstance.proxy;
const bindings = vnode.dirs || (vnode.dirs = []); const bindings = vnode.dirs || (vnode.dirs = []);
for (let i = 0; i < directives.length; i++) { for (let i = 0; i < directives.length; i++) {
let [dir, value, arg, modifiers = EMPTY_OBJ] = directives[i]; let [dir, value, arg, modifiers = EMPTY_OBJ] = directives[i];
@ -4270,9 +4294,9 @@ function injectHook(type, hook, target = currentInstance, prepend = false) {
return; return;
} }
pauseTracking(); pauseTracking();
setCurrentInstance(target); const reset = setCurrentInstance(target);
const res = callWithAsyncErrorHandling(hook, target, type, args); const res = callWithAsyncErrorHandling(hook, target, type, args);
unsetCurrentInstance(); reset();
resetTracking(); resetTracking();
return res; return res;
}); });
@ -4719,58 +4743,6 @@ function useSlots() {
function useAttrs() { function useAttrs() {
return getContext().attrs; return getContext().attrs;
} }
function useModel(props, name, options = EMPTY_OBJ) {
const i = getCurrentInstance();
if (!i) {
warn$1(`useModel() called without active instance.`);
return ref();
}
if (!i.propsOptions[0][name]) {
warn$1(`useModel() called with prop "${name}" which is not declared.`);
return ref();
}
const camelizedName = camelize(name);
const hyphenatedName = hyphenate(name);
const res = customRef((track2, trigger2) => {
let localValue;
watchSyncEffect(() => {
const propValue = props[name];
if (hasChanged(localValue, propValue)) {
localValue = propValue;
trigger2();
}
});
return {
get() {
track2();
return options.get ? options.get(localValue) : localValue;
},
set(value) {
const rawProps = i.vnode.props;
if (!(rawProps && // check if parent has passed v-model
(name in rawProps || camelizedName in rawProps || hyphenatedName in rawProps) && (`onUpdate:${name}` in rawProps || `onUpdate:${camelizedName}` in rawProps || `onUpdate:${hyphenatedName}` in rawProps)) && hasChanged(value, localValue)) {
localValue = value;
trigger2();
}
i.emit(`update:${name}`, options.set ? options.set(value) : value);
}
};
});
const modifierKey = name === "modelValue" ? "modelModifiers" : `${name}Modifiers`;
res[Symbol.iterator] = () => {
let i2 = 0;
return {
next() {
if (i2 < 2) {
return { value: i2++ ? props[modifierKey] || {} : res, done: false };
} else {
return { done: true };
}
}
};
};
return res;
}
function getContext() { function getContext() {
const i = getCurrentInstance(); const i = getCurrentInstance();
if (!i) { if (!i) {
@ -5651,12 +5623,12 @@ function resolvePropValue(options, props, key, value, instance, isAbsent) {
if (key in propsDefaults) { if (key in propsDefaults) {
value = propsDefaults[key]; value = propsDefaults[key];
} else { } else {
setCurrentInstance(instance); const reset = setCurrentInstance(instance);
value = propsDefaults[key] = defaultValue.call( value = propsDefaults[key] = defaultValue.call(
null, null,
props props
); );
unsetCurrentInstance(); reset();
} }
} else { } else {
value = defaultValue; value = defaultValue;
@ -5888,7 +5860,7 @@ var normalizeSlot = (key, rawSlot, ctx) => {
return rawSlot; return rawSlot;
} }
const normalized = withCtx((...args) => { const normalized = withCtx((...args) => {
if (currentInstance) { if (currentInstance && (!ctx || ctx.root === currentInstance.root)) {
warn$1( 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.` `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.`
); );
@ -6024,9 +5996,10 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
} else { } else {
const _isString = isString(ref2); const _isString = isString(ref2);
const _isRef = isRef(ref2); const _isRef = isRef(ref2);
const isVFor = rawRef.f;
if (_isString || _isRef) { if (_isString || _isRef) {
const doSet = () => { const doSet = () => {
if (rawRef.f) { if (isVFor) {
const existing = _isString ? hasOwn(setupState, ref2) ? setupState[ref2] : refs[ref2] : ref2.value; const existing = _isString ? hasOwn(setupState, ref2) ? setupState[ref2] : refs[ref2] : ref2.value;
if (isUnmount) { if (isUnmount) {
isArray(existing) && remove(existing, refValue); isArray(existing) && remove(existing, refValue);
@ -6059,11 +6032,11 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
warn$1("Invalid template ref type:", ref2, `(${typeof ref2})`); warn$1("Invalid template ref type:", ref2, `(${typeof ref2})`);
} }
}; };
if (value) { if (isUnmount || isVFor) {
doSet();
} else {
doSet.id = -1; doSet.id = -1;
queuePostRenderEffect(doSet, parentSuspense); queuePostRenderEffect(doSet, parentSuspense);
} else {
doSet();
} }
} else if (true) { } else if (true) {
warn$1("Invalid template ref type:", ref2, `(${typeof ref2})`); warn$1("Invalid template ref type:", ref2, `(${typeof ref2})`);
@ -6361,7 +6334,7 @@ Server rendered element contains more child nodes than client vdom.`
if (props) { if (props) {
if (true) { if (true) {
for (const key in props) { for (const key in props) {
if (propHasMismatch(el, key, props[key])) { if (propHasMismatch(el, key, props[key], vnode)) {
hasMismatch = true; hasMismatch = true;
} }
if (forcePatch && (key.endsWith("value") || key === "indeterminate") || isOn(key) && !isReservedProp(key) || // force hydrate v-bind with .prop modifiers if (forcePatch && (key.endsWith("value") || key === "indeterminate") || isOn(key) && !isReservedProp(key) || // force hydrate v-bind with .prop modifiers
@ -6546,26 +6519,49 @@ Server rendered element contains fewer child nodes than client vdom.`
}; };
return [hydrate2, hydrateNode]; return [hydrate2, hydrateNode];
} }
function propHasMismatch(el, key, clientValue) { function propHasMismatch(el, key, clientValue, vnode) {
let mismatchType; let mismatchType;
let mismatchKey; let mismatchKey;
let actual; let actual;
let expected; let expected;
if (key === "class") { if (key === "class") {
actual = toClassSet(el.getAttribute("class") || ""); actual = el.getAttribute("class");
expected = toClassSet(normalizeClass(clientValue)); expected = normalizeClass(clientValue);
if (!isSetEqual(actual, expected)) { if (!isSetEqual(toClassSet(actual || ""), toClassSet(expected))) {
mismatchType = mismatchKey = `class`; mismatchType = mismatchKey = `class`;
} }
} else if (key === "style") { } else if (key === "style") {
actual = el.getAttribute("style"); actual = el.getAttribute("style");
expected = isString(clientValue) ? clientValue : stringifyStyle(normalizeStyle(clientValue)); expected = isString(clientValue) ? clientValue : stringifyStyle(normalizeStyle(clientValue));
if (actual !== expected) { const actualMap = toStyleMap(actual);
const expectedMap = toStyleMap(expected);
if (vnode.dirs) {
for (const { dir, value } of vnode.dirs) {
if (dir.name === "show" && !value) {
expectedMap.set("display", "none");
}
}
}
if (!isMapEqual(actualMap, expectedMap)) {
mismatchType = mismatchKey = "style"; mismatchType = mismatchKey = "style";
} }
} else if (el instanceof SVGElement && isKnownSvgAttr(key) || el instanceof HTMLElement && (isBooleanAttr(key) || isKnownHtmlAttr(key))) { } else if (el instanceof SVGElement && isKnownSvgAttr(key) || el instanceof HTMLElement && (isBooleanAttr(key) || isKnownHtmlAttr(key))) {
actual = el.hasAttribute(key) && el.getAttribute(key); if (isBooleanAttr(key)) {
expected = isBooleanAttr(key) ? includeBooleanAttr(clientValue) ? "" : false : clientValue == null ? false : String(clientValue); actual = el.hasAttribute(key);
expected = includeBooleanAttr(clientValue);
} else if (clientValue == null) {
actual = el.hasAttribute(key);
expected = false;
} else {
if (el.hasAttribute(key)) {
actual = el.getAttribute(key);
} else if (key === "value" && el.tagName === "TEXTAREA") {
actual = el.value;
} else {
actual = false;
}
expected = isRenderableAttrValue(clientValue) ? String(clientValue) : false;
}
if (actual !== expected) { if (actual !== expected) {
mismatchType = `attribute`; mismatchType = `attribute`;
mismatchKey = key; mismatchKey = key;
@ -6573,15 +6569,15 @@ function propHasMismatch(el, key, clientValue) {
} }
if (mismatchType) { if (mismatchType) {
const format = (v) => v === false ? `(not rendered)` : `${mismatchKey}="${v}"`; const format = (v) => v === false ? `(not rendered)` : `${mismatchKey}="${v}"`;
warn$1( const preSegment = `Hydration ${mismatchType} mismatch on`;
`Hydration ${mismatchType} mismatch on`, const postSegment = `
el,
`
- rendered on server: ${format(actual)} - rendered on server: ${format(actual)}
- expected on client: ${format(expected)} - expected on client: ${format(expected)}
Note: this mismatch is check-only. The DOM will not be rectified in production due to performance overhead. Note: this mismatch is check-only. The DOM will not be rectified in production due to performance overhead.
You should fix the source of the mismatch.` You should fix the source of the mismatch.`;
); {
warn$1(preSegment, el, postSegment);
}
return true; return true;
} }
return false; return false;
@ -6600,6 +6596,29 @@ function isSetEqual(a, b) {
} }
return true; return true;
} }
function toStyleMap(str) {
const styleMap = /* @__PURE__ */ new Map();
for (const item of str.split(";")) {
let [key, value] = item.split(":");
key = key == null ? void 0 : key.trim();
value = value == null ? void 0 : value.trim();
if (key && value) {
styleMap.set(key, value);
}
}
return styleMap;
}
function isMapEqual(a, b) {
if (a.size !== b.size) {
return false;
}
for (const [key, value] of a) {
if (value !== b.get(key)) {
return false;
}
}
return true;
}
var supported; var supported;
var perf; var perf;
function startMeasure(instance, type) { function startMeasure(instance, type) {
@ -7212,7 +7231,11 @@ function baseCreateRenderer(options, createHydrationFns) {
hostInsert(fragmentStartAnchor, container, anchor); hostInsert(fragmentStartAnchor, container, anchor);
hostInsert(fragmentEndAnchor, container, anchor); hostInsert(fragmentEndAnchor, container, anchor);
mountChildren( mountChildren(
n2.children, // #10007
// such fragment like `<></>` will be compiled into
// a fragment which doesn't have a children.
// In this case fallback to an empty array
n2.children || [],
container, container,
fragmentEndAnchor, fragmentEndAnchor,
parentComponent, parentComponent,
@ -8059,6 +8082,7 @@ function baseCreateRenderer(options, createHydrationFns) {
} }
return hostNextSibling(vnode.anchor || vnode.el); return hostNextSibling(vnode.anchor || vnode.el);
}; };
let isFlushing2 = false;
const render2 = (vnode, container, namespace) => { const render2 = (vnode, container, namespace) => {
if (vnode == null) { if (vnode == null) {
if (container._vnode) { if (container._vnode) {
@ -8075,8 +8099,12 @@ function baseCreateRenderer(options, createHydrationFns) {
namespace namespace
); );
} }
flushPreFlushCbs(); if (!isFlushing2) {
flushPostFlushCbs(); isFlushing2 = true;
flushPreFlushCbs();
flushPostFlushCbs();
isFlushing2 = false;
}
container._vnode = vnode; container._vnode = vnode;
}; };
const internals = { const internals = {
@ -8945,8 +8973,13 @@ var setInSSRSetupState;
); );
} }
var setCurrentInstance = (instance) => { var setCurrentInstance = (instance) => {
const prev = currentInstance;
internalSetCurrentInstance(instance); internalSetCurrentInstance(instance);
instance.scope.on(); instance.scope.on();
return () => {
instance.scope.off();
internalSetCurrentInstance(prev);
};
}; };
var unsetCurrentInstance = () => { var unsetCurrentInstance = () => {
currentInstance && currentInstance.scope.off(); currentInstance && currentInstance.scope.off();
@ -9008,7 +9041,7 @@ function setupStatefulComponent(instance, isSSR) {
const { setup } = Component; const { setup } = Component;
if (setup) { if (setup) {
const setupContext = instance.setupContext = setup.length > 1 ? createSetupContext(instance) : null; const setupContext = instance.setupContext = setup.length > 1 ? createSetupContext(instance) : null;
setCurrentInstance(instance); const reset = setCurrentInstance(instance);
pauseTracking(); pauseTracking();
const setupResult = callWithErrorHandling( const setupResult = callWithErrorHandling(
setup, setup,
@ -9020,7 +9053,7 @@ function setupStatefulComponent(instance, isSSR) {
] ]
); );
resetTracking(); resetTracking();
unsetCurrentInstance(); reset();
if (isPromise(setupResult)) { if (isPromise(setupResult)) {
setupResult.then(unsetCurrentInstance, unsetCurrentInstance); setupResult.then(unsetCurrentInstance, unsetCurrentInstance);
if (isSSR) { if (isSSR) {
@ -9116,13 +9149,13 @@ function finishComponentSetup(instance, isSSR, skipOptions) {
} }
} }
if (__VUE_OPTIONS_API__ && true) { if (__VUE_OPTIONS_API__ && true) {
setCurrentInstance(instance); const reset = setCurrentInstance(instance);
pauseTracking(); pauseTracking();
try { try {
applyOptions(instance); applyOptions(instance);
} finally { } finally {
resetTracking(); resetTracking();
unsetCurrentInstance(); reset();
} }
} }
if (!Component.render && instance.render === NOOP && !isSSR) { if (!Component.render && instance.render === NOOP && !isSSR) {
@ -9265,6 +9298,58 @@ function isClassComponent(value) {
var computed2 = (getterOrOptions, debugOptions) => { var computed2 = (getterOrOptions, debugOptions) => {
return computed(getterOrOptions, debugOptions, isInSSRComponentSetup); return computed(getterOrOptions, debugOptions, isInSSRComponentSetup);
}; };
function useModel(props, name, options = EMPTY_OBJ) {
const i = getCurrentInstance();
if (!i) {
warn$1(`useModel() called without active instance.`);
return ref();
}
if (!i.propsOptions[0][name]) {
warn$1(`useModel() called with prop "${name}" which is not declared.`);
return ref();
}
const camelizedName = camelize(name);
const hyphenatedName = hyphenate(name);
const res = customRef((track2, trigger2) => {
let localValue;
watchSyncEffect(() => {
const propValue = props[name];
if (hasChanged(localValue, propValue)) {
localValue = propValue;
trigger2();
}
});
return {
get() {
track2();
return options.get ? options.get(localValue) : localValue;
},
set(value) {
const rawProps = i.vnode.props;
if (!(rawProps && // check if parent has passed v-model
(name in rawProps || camelizedName in rawProps || hyphenatedName in rawProps) && (`onUpdate:${name}` in rawProps || `onUpdate:${camelizedName}` in rawProps || `onUpdate:${hyphenatedName}` in rawProps)) && hasChanged(value, localValue)) {
localValue = value;
trigger2();
}
i.emit(`update:${name}`, options.set ? options.set(value) : value);
}
};
});
const modifierKey = name === "modelValue" ? "modelModifiers" : `${name}Modifiers`;
res[Symbol.iterator] = () => {
let i2 = 0;
return {
next() {
if (i2 < 2) {
return { value: i2++ ? props[modifierKey] || {} : res, done: false };
} else {
return { done: true };
}
}
};
};
return res;
}
function h(type, propsOrChildren, children) { function h(type, propsOrChildren, children) {
const l = arguments.length; const l = arguments.length;
if (l === 2) { if (l === 2) {
@ -9487,7 +9572,7 @@ function isMemoSame(cached, memo) {
} }
return true; return true;
} }
var version = "3.4.5"; var version = "3.4.15";
var warn2 = true ? warn$1 : NOOP; var warn2 = true ? warn$1 : NOOP;
var ErrorTypeStrings = ErrorTypeStrings$1; var ErrorTypeStrings = ErrorTypeStrings$1;
var devtools = true ? devtools$1 : void 0; var devtools = true ? devtools$1 : void 0;
@ -9890,6 +9975,9 @@ var vShow = {
setDisplay(el, value); setDisplay(el, value);
} }
}; };
if (true) {
vShow.name = "show";
}
function setDisplay(el, value) { function setDisplay(el, value) {
el.style.display = value ? el[vShowOldKey] : "none"; el.style.display = value ? el[vShowOldKey] : "none";
} }
@ -9964,6 +10052,7 @@ function setVarsOnNode(el, vars) {
} }
function patchStyle(el, prev, next) { function patchStyle(el, prev, next) {
const style = el.style; const style = el.style;
const currentDisplay = style.display;
const isCssString = isString(next); const isCssString = isString(next);
if (next && !isCssString) { if (next && !isCssString) {
if (prev && !isString(prev)) { if (prev && !isString(prev)) {
@ -9977,7 +10066,6 @@ function patchStyle(el, prev, next) {
setStyle(style, key, next[key]); setStyle(style, key, next[key]);
} }
} else { } else {
const currentDisplay = style.display;
if (isCssString) { if (isCssString) {
if (prev !== next) { if (prev !== next) {
const cssVarText = style[CSS_VAR_TEXT]; const cssVarText = style[CSS_VAR_TEXT];
@ -9989,9 +10077,9 @@ function patchStyle(el, prev, next) {
} else if (prev) { } else if (prev) {
el.removeAttribute("style"); el.removeAttribute("style");
} }
if (vShowOldKey in el) { }
style.display = currentDisplay; if (vShowOldKey in el) {
} style.display = currentDisplay;
} }
} }
var semicolonRE = /[^\\];\s*$/; var semicolonRE = /[^\\];\s*$/;
@ -10744,35 +10832,52 @@ var vModelSelect = {
el[assignKey]( el[assignKey](
el.multiple ? isSetModel ? new Set(selectedVal) : selectedVal : selectedVal[0] el.multiple ? isSetModel ? new Set(selectedVal) : selectedVal : selectedVal[0]
); );
el._assigning = true;
nextTick(() => {
el._assigning = false;
});
}); });
el[assignKey] = getModelAssigner(vnode); el[assignKey] = getModelAssigner(vnode);
}, },
// set value in mounted & updated because <select> relies on its children // set value in mounted & updated because <select> relies on its children
// <option>s. // <option>s.
mounted(el, { value }) { mounted(el, { value, oldValue, modifiers: { number } }) {
setSelected(el, value); setSelected(el, value, oldValue, number);
}, },
beforeUpdate(el, _binding, vnode) { beforeUpdate(el, _binding, vnode) {
el[assignKey] = getModelAssigner(vnode); el[assignKey] = getModelAssigner(vnode);
}, },
updated(el, { value }) { updated(el, { value, oldValue, modifiers: { number } }) {
setSelected(el, value); if (!el._assigning) {
setSelected(el, value, oldValue, number);
}
} }
}; };
function setSelected(el, value) { function setSelected(el, value, oldValue, number) {
const isMultiple = el.multiple; const isMultiple = el.multiple;
if (isMultiple && !isArray(value) && !isSet(value)) { const isArrayValue = isArray(value);
if (isMultiple && !isArrayValue && !isSet(value)) {
warn2( warn2(
`<select multiple v-model> expects an Array or Set value for its binding, but got ${Object.prototype.toString.call(value).slice(8, -1)}.` `<select multiple v-model> expects an Array or Set value for its binding, but got ${Object.prototype.toString.call(value).slice(8, -1)}.`
); );
return; return;
} }
if (isArrayValue && looseEqual(value, oldValue)) {
return;
}
for (let i = 0, l = el.options.length; i < l; i++) { for (let i = 0, l = el.options.length; i < l; i++) {
const option = el.options[i]; const option = el.options[i];
const optionValue = getValue(option); const optionValue = getValue(option);
if (isMultiple) { if (isMultiple) {
if (isArray(value)) { if (isArrayValue) {
option.selected = looseIndexOf(value, optionValue) > -1; const optionType = typeof optionValue;
if (optionType === "string" || optionType === "number") {
option.selected = value.includes(
number ? looseToNumber(optionValue) : optionValue
);
} else {
option.selected = looseIndexOf(value, optionValue) > -1;
}
} else { } else {
option.selected = value.has(optionValue); option.selected = value.has(optionValue);
} }
@ -11152,7 +11257,6 @@ export {
withDefaults, withDefaults,
useSlots, useSlots,
useAttrs, useAttrs,
useModel,
mergeDefaults, mergeDefaults,
mergeModels, mergeModels,
createPropsRestProxy, createPropsRestProxy,
@ -11185,6 +11289,7 @@ export {
registerRuntimeCompiler, registerRuntimeCompiler,
isRuntimeOnly, isRuntimeOnly,
computed2 as computed, computed2 as computed,
useModel,
h, h,
initCustomFormatter, initCustomFormatter,
withMemo, withMemo,
@ -11222,10 +11327,41 @@ export {
}; };
/*! Bundled license information: /*! Bundled license information:
@vue/shared/dist/shared.esm-bundler.js:
(**
* @vue/shared v3.4.15
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**)
@vue/reactivity/dist/reactivity.esm-bundler.js:
(**
* @vue/reactivity v3.4.15
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**)
@vue/runtime-core/dist/runtime-core.esm-bundler.js: @vue/runtime-core/dist/runtime-core.esm-bundler.js:
(**
* @vue/runtime-core v3.4.15
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**)
(*! #__NO_SIDE_EFFECTS__ *) (*! #__NO_SIDE_EFFECTS__ *)
@vue/runtime-dom/dist/runtime-dom.esm-bundler.js: @vue/runtime-dom/dist/runtime-dom.esm-bundler.js:
(**
* @vue/runtime-dom v3.4.15
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**)
(*! #__NO_SIDE_EFFECTS__ *) (*! #__NO_SIDE_EFFECTS__ *)
vue/dist/vue.runtime.esm-bundler.js:
(**
* vue v3.4.15
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**)
*/ */
//# sourceMappingURL=chunk-TL4KESHX.js.map //# sourceMappingURL=chunk-3YS4HNIT.js.map

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load diff

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load diff

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load diff

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load diff

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load diff

File diff suppressed because one or more lines are too long

View file

@ -158,7 +158,7 @@ import {
withMemo, withMemo,
withModifiers, withModifiers,
withScopeId withScopeId
} from "./chunk-TL4KESHX.js"; } from "./chunk-3YS4HNIT.js";
export { export {
BaseTransition, BaseTransition,
BaseTransitionPropsValidators, BaseTransitionPropsValidators,

View file

@ -1,4 +1,4 @@
import { defineConfig } from 'vitepress' import { defineConfig } from 'vitepress';
function nav() { function nav() {
return [ return [
@ -22,9 +22,25 @@ function side() {
text: 'API Reference', text: 'API Reference',
items: [ items: [
{ text: 'Warp', link: '/api/1.0/warp' }, { text: 'Warp', link: '/api/1.0/warp' },
{ text: 'Server', link: '/api/1.0/server' }, {
{ text: 'Client', link: '/api/1.0/client' }, text: 'Event',
{ text: 'RateLimit', link: '/api/1.0/ratelimit' }, items: [
{ text: 'Server', link: '/api/1.0/server' },
{ text: 'Client', link: '/api/1.0/client' },
]
},
{
text: 'Feature',
items: [
{ text: 'Rate Limit', link: '/api/1.0/ratelimit' },
]
},
{
text: 'Utilities',
items: [
{ text: 'Signal', link: '/api/1.0/signal' },
]
},
] ]
} }
], ],
@ -59,6 +75,14 @@ export default defineConfig({
socialLinks: [ socialLinks: [
{ icon: 'github', link: 'https://github.com/imezx/Warp' }, { icon: 'github', link: 'https://github.com/imezx/Warp' },
{ icon: 'discord', link: 'https://discord.gg/qnSfEZ6bZK' }, { icon: 'discord', link: 'https://discord.gg/qnSfEZ6bZK' },
] ],
} search: {
provider: 'local',
// options: {
// appId: 'RNOWUVQEKL',
// apiKey: '97e23a3258a6df1080abaf10bd208302',
// indexName: 'warp',
// }
},
},
}) })

View file

@ -1,4 +1,4 @@
# Client # Client <Badge type="tip" text="event" />
For Client-sided For Client-sided

View file

@ -1,4 +1,4 @@
# Rate Limit # Rate Limit <Badge type="tip" text="feature" />
Ratelimit is one of most useful feature. Ratelimit is one of most useful feature.

View file

@ -1,4 +1,4 @@
# Server # Server <Badge type="tip" text="event" />
For Server-sided For Server-sided
@ -11,8 +11,8 @@ Create new Warp event.
( (
Identifier: string, Identifier: string,
rateLimit: { rateLimit: {
maxEntrance: number, maxEntrance: number?,
interval: number, interval: number?,
}? }?
) )
``` ```

201
docs/api/1.0/signal.md Normal file
View file

@ -0,0 +1,201 @@
# Signal <Badge type="tip" text="utilities" />
A alternative of BindableEvent.
## `.Signal`
Create new Signal.
::: code-group
```lua [Variable]
(
Identifier: string
)
```
```lua [Example]
local Signal1 = Warp.Signal("Signal1")
```
:::
## `.fromSignalArray`
Create new Signal.
::: code-group
```lua [Variable]
(
{ string }
)
```
```lua [Example]
local Signals = Warp.fromSignalArray({"Signal1", "Signal2"})
Signals.Signal1:Connect(function(...) end)
Signals.Signal2:Connect(function(...) end)
```
:::
## `:Connect`
::: code-group
```lua [Variable]
(
callback: (...any) -> ()
)
```
```lua [Example]
Signal1:Connect(function(...)
print(...)
end)
```
:::
## `:Once`
This function likely `:Connect` but it disconnect the signal once it fired.
::: code-group
```lua [Variable]
(
callback: (...any) -> ()
)
```
```lua [Example]
Signal1:Once(function(...)
print(...)
end)
```
:::
## `:Disconnect`
Disconnect the signal connection.
::: code-group
```lua [Variable]
(
key: string
)
```
```lua [Example]
local connection = Signal1:Connect(function(...) end) -- store the key
Signal1:Disconnect(connection)
```
:::
::: warning
This requires `key` to disconnect a signal connection.
:::
## `:DisconnectAll`
Disconnect All signal connections.
```lua [Example]
Signal1:DisconnectAll()
```
## `:Fire`
Fire the signal.
::: code-group
```lua [Variable]
(
...: any
)
```
```lua [Example]
Signal1:Fire("Hello World!")
```
:::
::: warning
This uses `pcall`, which means it never error (safe-mode, sacrificed debugging), But gains performance here `(upto 5x faster)`.
:::
## `:FireTo`
Fire to other signal, this also use `:Fire`.
::: code-group
```lua [Variable]
(
signal: string,
...: any
)
```
```lua [Example]
Signals.Signal1:FireTo("Signal2", "Hello World!")
```
:::
::: warning
This requires `key`.
:::
## `:Invoke` <Badge type="warning" text="yield" />
::: code-group
```lua [Variable]
(
key: string,
...: any
) -> (...any)
```
```lua [Example]
local connection = Signal1:Conenct(function(...) return "hey!" end)
local Request = Signal1:Invoke(connection, "Hello World!")
```
:::
## `:InvokeTo` <Badge type="warning" text="yield" />
this use `:Invoke`.
::: code-group
```lua [Variable]
(
signal: string,
key: string,
...: any
) -> (...any)
```
```lua [Example]
local connection2 = Signals.Signal2:Conenct(function(...) return "hey!" end)
local Request = Signals.Signal1:Invoke("Signal2", connection2, "Hello World!")
```
:::
::: warning
This requires `key`.
:::
## `:Wait` <Badge type="warning" text="yield" />
Wait the signal get triggered.
```lua
Signal1:Wait() -- return number (time)
```
::: warning
This function is yielded
:::
## `:Destroy`
Disconnect all connection of signal and remove the signal from Signals
```lua
Signal1:Destroy()
```

View file

@ -8,7 +8,7 @@
::: code-group ::: code-group
```toml [wally.toml] ```toml [wally.toml]
[dependencies] [dependencies]
warp = "imezx/warp@1.0.4" warp = "imezx/warp@1.0.5"
``` ```
3. Run `wally install` in command. 3. Run `wally install` in command.

298
node_modules/.package-lock.json generated vendored
View file

@ -178,9 +178,9 @@
} }
}, },
"node_modules/@babel/parser": { "node_modules/@babel/parser": {
"version": "7.23.6", "version": "7.23.9",
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.6.tgz", "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.9.tgz",
"integrity": "sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==", "integrity": "sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA==",
"dev": true, "dev": true,
"bin": { "bin": {
"parser": "bin/babel-parser.js" "parser": "bin/babel-parser.js"
@ -238,9 +238,9 @@
} }
}, },
"node_modules/@esbuild/win32-x64": { "node_modules/@esbuild/win32-x64": {
"version": "0.19.11", "version": "0.19.12",
"resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.11.tgz", "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.12.tgz",
"integrity": "sha512-vfkhltrjCAb603XaFhqhAF4LGDi2M4OrCRrFusyQ+iTLQ/o60QQXxc9cZC/FFpihBI9N1Grn6SMKVJ4KP7Fuiw==", "integrity": "sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==",
"cpu": [ "cpu": [
"x64" "x64"
], ],
@ -260,9 +260,9 @@
"dev": true "dev": true
}, },
"node_modules/@rollup/rollup-win32-x64-msvc": { "node_modules/@rollup/rollup-win32-x64-msvc": {
"version": "4.9.3", "version": "4.9.6",
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.9.3.tgz", "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.9.6.tgz",
"integrity": "sha512-1Qf/qk/iEtx0aOi+AQQt5PBoW0mFngsm7bPuxHClC/hWh2hHBktR6ktSfUg5b5rC9v8hTwNmHE7lBWXkgqluUQ==", "integrity": "sha512-jqzNLhNDvIZOrt69Ce4UjGRpXJBzhUBzawMwnaDAwyHriki3XollsewxWzOzz+4yOFDkuJHtTsZFwMxhYJWmLQ==",
"cpu": [ "cpu": [
"x64" "x64"
], ],
@ -307,9 +307,9 @@
"dev": true "dev": true
}, },
"node_modules/@vitejs/plugin-vue": { "node_modules/@vitejs/plugin-vue": {
"version": "5.0.2", "version": "5.0.3",
"resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-5.0.2.tgz", "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-5.0.3.tgz",
"integrity": "sha512-kEjJHrLb5ePBvjD0SPZwJlw1QTRcjjCA9sB5VyfonoXVBxTS7TMnqL6EkLt1Eu61RDeiuZ/WN9Hf6PxXhPI2uA==", "integrity": "sha512-b8S5dVS40rgHdDrw+DQi/xOM9ed+kSRZzfm1T74bMmBDCd8XO87NKlFYInzCtwvtWwXZvo1QxE2OSspTATWrbA==",
"dev": true, "dev": true,
"engines": { "engines": {
"node": "^18.0.0 || >=20.0.0" "node": "^18.0.0 || >=20.0.0"
@ -320,53 +320,53 @@
} }
}, },
"node_modules/@vue/compiler-core": { "node_modules/@vue/compiler-core": {
"version": "3.4.5", "version": "3.4.15",
"resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.5.tgz", "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.15.tgz",
"integrity": "sha512-Daka7P1z2AgKjzuueWXhwzIsKu0NkLB6vGbNVEV2iJ8GJTrzraZo/Sk4GWCMRtd/qVi3zwnk+Owbd/xSZbwHtQ==", "integrity": "sha512-XcJQVOaxTKCnth1vCxEChteGuwG6wqnUHxAm1DO3gCz0+uXKaJNx8/digSz4dLALCy8n2lKq24jSUs8segoqIw==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@babel/parser": "^7.23.6", "@babel/parser": "^7.23.6",
"@vue/shared": "3.4.5", "@vue/shared": "3.4.15",
"entities": "^4.5.0", "entities": "^4.5.0",
"estree-walker": "^2.0.2", "estree-walker": "^2.0.2",
"source-map-js": "^1.0.2" "source-map-js": "^1.0.2"
} }
}, },
"node_modules/@vue/compiler-dom": { "node_modules/@vue/compiler-dom": {
"version": "3.4.5", "version": "3.4.15",
"resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.5.tgz", "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.15.tgz",
"integrity": "sha512-J8YlxknJVd90SXFJ4HwGANSAXsx5I0lK30sO/zvYV7s5gXf7gZR7r/1BmZ2ju7RGH1lnc6bpBc6nL61yW+PsAQ==", "integrity": "sha512-wox0aasVV74zoXyblarOM3AZQz/Z+OunYcIHe1OsGclCHt8RsRm04DObjefaI82u6XDzv+qGWZ24tIsRAIi5MQ==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@vue/compiler-core": "3.4.5", "@vue/compiler-core": "3.4.15",
"@vue/shared": "3.4.5" "@vue/shared": "3.4.15"
} }
}, },
"node_modules/@vue/compiler-sfc": { "node_modules/@vue/compiler-sfc": {
"version": "3.4.5", "version": "3.4.15",
"resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.4.5.tgz", "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.4.15.tgz",
"integrity": "sha512-jauvkDuSSUbP0ebhfNqljhShA90YEfX/0wZ+w40oZF43IjGyWYjqYaJbvMJwGOd+9+vODW6eSvnk28f0SGV7OQ==", "integrity": "sha512-LCn5M6QpkpFsh3GQvs2mJUOAlBQcCco8D60Bcqmf3O3w5a+KWS5GvYbrrJBkgvL1BDnTp+e8q0lXCLgHhKguBA==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@babel/parser": "^7.23.6", "@babel/parser": "^7.23.6",
"@vue/compiler-core": "3.4.5", "@vue/compiler-core": "3.4.15",
"@vue/compiler-dom": "3.4.5", "@vue/compiler-dom": "3.4.15",
"@vue/compiler-ssr": "3.4.5", "@vue/compiler-ssr": "3.4.15",
"@vue/shared": "3.4.5", "@vue/shared": "3.4.15",
"estree-walker": "^2.0.2", "estree-walker": "^2.0.2",
"magic-string": "^0.30.5", "magic-string": "^0.30.5",
"postcss": "^8.4.32", "postcss": "^8.4.33",
"source-map-js": "^1.0.2" "source-map-js": "^1.0.2"
} }
}, },
"node_modules/@vue/compiler-ssr": { "node_modules/@vue/compiler-ssr": {
"version": "3.4.5", "version": "3.4.15",
"resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.5.tgz", "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.15.tgz",
"integrity": "sha512-DDdEcDzj2lWTMfUMMtEpLDhURai9LhM0zSZ219jCt7b2Vyl0/jy3keFgCPMitG0V1S1YG4Cmws3lWHWdxHQOpg==", "integrity": "sha512-1jdeQyiGznr8gjFDadVmOJqZiLNSsMa5ZgqavkPZ8O2wjHv0tVuAEsw5hTdUoUW4232vpBbL/wJhzVW/JwY1Uw==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@vue/compiler-dom": "3.4.5", "@vue/compiler-dom": "3.4.15",
"@vue/shared": "3.4.5" "@vue/shared": "3.4.15"
} }
}, },
"node_modules/@vue/devtools-api": { "node_modules/@vue/devtools-api": {
@ -376,63 +376,63 @@
"dev": true "dev": true
}, },
"node_modules/@vue/reactivity": { "node_modules/@vue/reactivity": {
"version": "3.4.5", "version": "3.4.15",
"resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.4.5.tgz", "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.4.15.tgz",
"integrity": "sha512-BcWkKvjdvqJwb7BhhFkXPLDCecX4d4a6GATvCduJQDLv21PkPowAE5GKuIE5p6RC07/Lp9FMkkq4AYCTVF5KlQ==", "integrity": "sha512-55yJh2bsff20K5O84MxSvXKPHHt17I2EomHznvFiJCAZpJTNW8IuLj1xZWMLELRhBK3kkFV/1ErZGHJfah7i7w==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@vue/shared": "3.4.5" "@vue/shared": "3.4.15"
} }
}, },
"node_modules/@vue/runtime-core": { "node_modules/@vue/runtime-core": {
"version": "3.4.5", "version": "3.4.15",
"resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.4.5.tgz", "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.4.15.tgz",
"integrity": "sha512-wh9ELIOQKeWT9SaUPdLrsxRkZv14jp+SJm9aiQGWio+/MWNM3Lib0wE6CoKEqQ9+SCYyGjDBhTOTtO47kCgbkg==", "integrity": "sha512-6E3by5m6v1AkW0McCeAyhHTw+3y17YCOKG0U0HDKDscV4Hs0kgNT5G+GCHak16jKgcCDHpI9xe5NKb8sdLCLdw==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@vue/reactivity": "3.4.5", "@vue/reactivity": "3.4.15",
"@vue/shared": "3.4.5" "@vue/shared": "3.4.15"
} }
}, },
"node_modules/@vue/runtime-dom": { "node_modules/@vue/runtime-dom": {
"version": "3.4.5", "version": "3.4.15",
"resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.4.5.tgz", "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.4.15.tgz",
"integrity": "sha512-n5ewvOjyG3IEpqGBahdPXODFSpVlSz3H4LF76Sx0XAqpIOqyJ5bIb2PrdYuH2ogBMAQPh+o5tnoH4nJpBr8U0Q==", "integrity": "sha512-EVW8D6vfFVq3V/yDKNPBFkZKGMFSvZrUQmx196o/v2tHKdwWdiZjYUBS+0Ez3+ohRyF8Njwy/6FH5gYJ75liUw==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@vue/runtime-core": "3.4.5", "@vue/runtime-core": "3.4.15",
"@vue/shared": "3.4.5", "@vue/shared": "3.4.15",
"csstype": "^3.1.3" "csstype": "^3.1.3"
} }
}, },
"node_modules/@vue/server-renderer": { "node_modules/@vue/server-renderer": {
"version": "3.4.5", "version": "3.4.15",
"resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.4.5.tgz", "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.4.15.tgz",
"integrity": "sha512-jOFc/VE87yvifQpNju12VcqimH8pBLxdcT+t3xMeiED1K6DfH9SORyhFEoZlW5TG2Vwfn3Ul5KE+1aC99xnSBg==", "integrity": "sha512-3HYzaidu9cHjrT+qGUuDhFYvF/j643bHC6uUN9BgM11DVy+pM6ATsG6uPBLnkwOgs7BpJABReLmpL3ZPAsUaqw==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@vue/compiler-ssr": "3.4.5", "@vue/compiler-ssr": "3.4.15",
"@vue/shared": "3.4.5" "@vue/shared": "3.4.15"
}, },
"peerDependencies": { "peerDependencies": {
"vue": "3.4.5" "vue": "3.4.15"
} }
}, },
"node_modules/@vue/shared": { "node_modules/@vue/shared": {
"version": "3.4.5", "version": "3.4.15",
"resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.5.tgz", "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.15.tgz",
"integrity": "sha512-6XptuzlMvN4l4cDnDw36pdGEV+9njYkQ1ZE0Q6iZLwrKefKaOJyiFmcP3/KBDHbt72cJZGtllAc1GaHe6XGAyg==", "integrity": "sha512-KzfPTxVaWfB+eGcGdbSf4CWdaXcGDqckoeXUh7SB3fZdEtzPCK2Vq9B/lRRL3yutax/LWITz+SwvgyOxz5V75g==",
"dev": true "dev": true
}, },
"node_modules/@vueuse/core": { "node_modules/@vueuse/core": {
"version": "10.7.1", "version": "10.7.2",
"resolved": "https://registry.npmjs.org/@vueuse/core/-/core-10.7.1.tgz", "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-10.7.2.tgz",
"integrity": "sha512-74mWHlaesJSWGp1ihg76vAnfVq9NTv1YT0SYhAQ6zwFNdBkkP+CKKJmVOEHcdSnLXCXYiL5e7MaewblfiYLP7g==", "integrity": "sha512-AOyAL2rK0By62Hm+iqQn6Rbu8bfmbgaIMXcE3TSr7BdQ42wnSFlwIdPjInO62onYsEMK/yDMU8C6oGfDAtZ2qQ==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@types/web-bluetooth": "^0.0.20", "@types/web-bluetooth": "^0.0.20",
"@vueuse/metadata": "10.7.1", "@vueuse/metadata": "10.7.2",
"@vueuse/shared": "10.7.1", "@vueuse/shared": "10.7.2",
"vue-demi": ">=0.14.6" "vue-demi": ">=0.14.6"
}, },
"funding": { "funding": {
@ -466,13 +466,13 @@
} }
}, },
"node_modules/@vueuse/integrations": { "node_modules/@vueuse/integrations": {
"version": "10.7.1", "version": "10.7.2",
"resolved": "https://registry.npmjs.org/@vueuse/integrations/-/integrations-10.7.1.tgz", "resolved": "https://registry.npmjs.org/@vueuse/integrations/-/integrations-10.7.2.tgz",
"integrity": "sha512-cKo5LEeKVHdBRBtMTOrDPdR0YNtrmN9IBfdcnY2P3m5LHVrsD0xiHUtAH1WKjHQRIErZG6rJUa6GA4tWZt89Og==", "integrity": "sha512-+u3RLPFedjASs5EKPc69Ge49WNgqeMfSxFn+qrQTzblPXZg6+EFzhjarS5edj2qAf6xQ93f95TUxRwKStXj/sQ==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@vueuse/core": "10.7.1", "@vueuse/core": "10.7.2",
"@vueuse/shared": "10.7.1", "@vueuse/shared": "10.7.2",
"vue-demi": ">=0.14.6" "vue-demi": ">=0.14.6"
}, },
"funding": { "funding": {
@ -558,18 +558,18 @@
} }
}, },
"node_modules/@vueuse/metadata": { "node_modules/@vueuse/metadata": {
"version": "10.7.1", "version": "10.7.2",
"resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-10.7.1.tgz", "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-10.7.2.tgz",
"integrity": "sha512-jX8MbX5UX067DYVsbtrmKn6eG6KMcXxLRLlurGkZku5ZYT3vxgBjui2zajvUZ18QLIjrgBkFRsu7CqTAg18QFw==", "integrity": "sha512-kCWPb4J2KGrwLtn1eJwaJD742u1k5h6v/St5wFe8Quih90+k2a0JP8BS4Zp34XUuJqS2AxFYMb1wjUL8HfhWsQ==",
"dev": true, "dev": true,
"funding": { "funding": {
"url": "https://github.com/sponsors/antfu" "url": "https://github.com/sponsors/antfu"
} }
}, },
"node_modules/@vueuse/shared": { "node_modules/@vueuse/shared": {
"version": "10.7.1", "version": "10.7.2",
"resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-10.7.1.tgz", "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-10.7.2.tgz",
"integrity": "sha512-v0jbRR31LSgRY/C5i5X279A/WQjD6/JsMzGa+eqt658oJ75IvQXAeONmwvEMrvJQKnRElq/frzBR7fhmWY5uLw==", "integrity": "sha512-qFbXoxS44pi2FkgFjPvF4h7c9oMDutpyBdcJdMYIMg9XyXli2meFMuaKn+UMgsClo//Th6+beeCgqweT/79BVA==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"vue-demi": ">=0.14.6" "vue-demi": ">=0.14.6"
@ -645,9 +645,9 @@
} }
}, },
"node_modules/esbuild": { "node_modules/esbuild": {
"version": "0.19.11", "version": "0.19.12",
"resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.11.tgz", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.12.tgz",
"integrity": "sha512-HJ96Hev2hX/6i5cDVwcqiJBBtuo9+FeIJOtZ9W1kA5M6AMJRHUZlpYZ1/SbEwtO0ioNAW8rUooVpC/WehY2SfA==", "integrity": "sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==",
"dev": true, "dev": true,
"hasInstallScript": true, "hasInstallScript": true,
"bin": { "bin": {
@ -657,29 +657,29 @@
"node": ">=12" "node": ">=12"
}, },
"optionalDependencies": { "optionalDependencies": {
"@esbuild/aix-ppc64": "0.19.11", "@esbuild/aix-ppc64": "0.19.12",
"@esbuild/android-arm": "0.19.11", "@esbuild/android-arm": "0.19.12",
"@esbuild/android-arm64": "0.19.11", "@esbuild/android-arm64": "0.19.12",
"@esbuild/android-x64": "0.19.11", "@esbuild/android-x64": "0.19.12",
"@esbuild/darwin-arm64": "0.19.11", "@esbuild/darwin-arm64": "0.19.12",
"@esbuild/darwin-x64": "0.19.11", "@esbuild/darwin-x64": "0.19.12",
"@esbuild/freebsd-arm64": "0.19.11", "@esbuild/freebsd-arm64": "0.19.12",
"@esbuild/freebsd-x64": "0.19.11", "@esbuild/freebsd-x64": "0.19.12",
"@esbuild/linux-arm": "0.19.11", "@esbuild/linux-arm": "0.19.12",
"@esbuild/linux-arm64": "0.19.11", "@esbuild/linux-arm64": "0.19.12",
"@esbuild/linux-ia32": "0.19.11", "@esbuild/linux-ia32": "0.19.12",
"@esbuild/linux-loong64": "0.19.11", "@esbuild/linux-loong64": "0.19.12",
"@esbuild/linux-mips64el": "0.19.11", "@esbuild/linux-mips64el": "0.19.12",
"@esbuild/linux-ppc64": "0.19.11", "@esbuild/linux-ppc64": "0.19.12",
"@esbuild/linux-riscv64": "0.19.11", "@esbuild/linux-riscv64": "0.19.12",
"@esbuild/linux-s390x": "0.19.11", "@esbuild/linux-s390x": "0.19.12",
"@esbuild/linux-x64": "0.19.11", "@esbuild/linux-x64": "0.19.12",
"@esbuild/netbsd-x64": "0.19.11", "@esbuild/netbsd-x64": "0.19.12",
"@esbuild/openbsd-x64": "0.19.11", "@esbuild/openbsd-x64": "0.19.12",
"@esbuild/sunos-x64": "0.19.11", "@esbuild/sunos-x64": "0.19.12",
"@esbuild/win32-arm64": "0.19.11", "@esbuild/win32-arm64": "0.19.12",
"@esbuild/win32-ia32": "0.19.11", "@esbuild/win32-ia32": "0.19.12",
"@esbuild/win32-x64": "0.19.11" "@esbuild/win32-x64": "0.19.12"
} }
}, },
"node_modules/estree-walker": { "node_modules/estree-walker": {
@ -784,9 +784,9 @@
} }
}, },
"node_modules/rollup": { "node_modules/rollup": {
"version": "4.9.3", "version": "4.9.6",
"resolved": "https://registry.npmjs.org/rollup/-/rollup-4.9.3.tgz", "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.9.6.tgz",
"integrity": "sha512-JnchF0ZGFiqGpAPjg3e89j656Ne4tTtCY1VZc1AxtoQcRIxjTu9jyYHBAtkDXE+X681n4un/nX9SU52AroSRzg==", "integrity": "sha512-05lzkCS2uASX0CiLFybYfVkwNbKZG5NFQ6Go0VWyogFTXXbR039UVsegViTntkk4OglHBdF54ccApXRRuXRbsg==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@types/estree": "1.0.5" "@types/estree": "1.0.5"
@ -799,19 +799,19 @@
"npm": ">=8.0.0" "npm": ">=8.0.0"
}, },
"optionalDependencies": { "optionalDependencies": {
"@rollup/rollup-android-arm-eabi": "4.9.3", "@rollup/rollup-android-arm-eabi": "4.9.6",
"@rollup/rollup-android-arm64": "4.9.3", "@rollup/rollup-android-arm64": "4.9.6",
"@rollup/rollup-darwin-arm64": "4.9.3", "@rollup/rollup-darwin-arm64": "4.9.6",
"@rollup/rollup-darwin-x64": "4.9.3", "@rollup/rollup-darwin-x64": "4.9.6",
"@rollup/rollup-linux-arm-gnueabihf": "4.9.3", "@rollup/rollup-linux-arm-gnueabihf": "4.9.6",
"@rollup/rollup-linux-arm64-gnu": "4.9.3", "@rollup/rollup-linux-arm64-gnu": "4.9.6",
"@rollup/rollup-linux-arm64-musl": "4.9.3", "@rollup/rollup-linux-arm64-musl": "4.9.6",
"@rollup/rollup-linux-riscv64-gnu": "4.9.3", "@rollup/rollup-linux-riscv64-gnu": "4.9.6",
"@rollup/rollup-linux-x64-gnu": "4.9.3", "@rollup/rollup-linux-x64-gnu": "4.9.6",
"@rollup/rollup-linux-x64-musl": "4.9.3", "@rollup/rollup-linux-x64-musl": "4.9.6",
"@rollup/rollup-win32-arm64-msvc": "4.9.3", "@rollup/rollup-win32-arm64-msvc": "4.9.6",
"@rollup/rollup-win32-ia32-msvc": "4.9.3", "@rollup/rollup-win32-ia32-msvc": "4.9.6",
"@rollup/rollup-win32-x64-msvc": "4.9.3", "@rollup/rollup-win32-x64-msvc": "4.9.6",
"fsevents": "~2.3.2" "fsevents": "~2.3.2"
} }
}, },
@ -823,27 +823,27 @@
"peer": true "peer": true
}, },
"node_modules/shikiji": { "node_modules/shikiji": {
"version": "0.9.17", "version": "0.10.2",
"resolved": "https://registry.npmjs.org/shikiji/-/shikiji-0.9.17.tgz", "resolved": "https://registry.npmjs.org/shikiji/-/shikiji-0.10.2.tgz",
"integrity": "sha512-0z/1NfkhBkm3ijrfFeHg3G9yDNuHhXdAGbQm7tRxj4WQ5z2y0XDbnagFyKyuV2ebCTS1Mwy1I3n0Fzcc/4xdmw==", "integrity": "sha512-wtZg3T0vtYV2PnqusWQs3mDaJBdCPWxFDrBM/SE5LfrX92gjUvfEMlc+vJnoKY6Z/S44OWaCRzNIsdBRWcTAiw==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"shikiji-core": "0.9.17" "shikiji-core": "0.10.2"
} }
}, },
"node_modules/shikiji-core": { "node_modules/shikiji-core": {
"version": "0.9.17", "version": "0.10.2",
"resolved": "https://registry.npmjs.org/shikiji-core/-/shikiji-core-0.9.17.tgz", "resolved": "https://registry.npmjs.org/shikiji-core/-/shikiji-core-0.10.2.tgz",
"integrity": "sha512-r1FWTXk6SO2aYqfWgcsJ11MuVQ1ymPSdXzJjK7q8EXuyqu8yc2N5qrQy5+BL6gTVOaF4yLjbxFjF+KTRM1Sp8Q==", "integrity": "sha512-9Of8HMlF96usXJHmCL3Gd0Fcf0EcyJUF9m8EoAKKd98mHXi0La2AZl1h6PegSFGtiYcBDK/fLuKbDa1l16r1fA==",
"dev": true "dev": true
}, },
"node_modules/shikiji-transformers": { "node_modules/shikiji-transformers": {
"version": "0.9.17", "version": "0.10.2",
"resolved": "https://registry.npmjs.org/shikiji-transformers/-/shikiji-transformers-0.9.17.tgz", "resolved": "https://registry.npmjs.org/shikiji-transformers/-/shikiji-transformers-0.10.2.tgz",
"integrity": "sha512-2CCG9qSLS6Bn/jbeUTEuvC6YSuP8gm8VyX5VjmCvDKyCPGhlLJbH1k/kg9wfRt7cJqpYjhdMDgT5rkdYrOZnsA==", "integrity": "sha512-7IVTwl1af205ywYEq5bOAYOTOFW4V1dVX1EablP0nWKErqZeD1o93VMytxmtJomqS+YwbB8doY8SE3MFMn0aPQ==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"shikiji": "0.9.17" "shikiji": "0.10.2"
} }
}, },
"node_modules/source-map-js": { "node_modules/source-map-js": {
@ -862,9 +862,9 @@
"dev": true "dev": true
}, },
"node_modules/vite": { "node_modules/vite": {
"version": "5.0.11", "version": "5.0.12",
"resolved": "https://registry.npmjs.org/vite/-/vite-5.0.11.tgz", "resolved": "https://registry.npmjs.org/vite/-/vite-5.0.12.tgz",
"integrity": "sha512-XBMnDjZcNAw/G1gEiskiM1v6yzM4GE5aMGvhWTlHAYYhxb7S3/V1s3m2LDHa8Vh6yIWYYB0iJwsEaS523c4oYA==", "integrity": "sha512-4hsnEkG3q0N4Tzf1+t6NdN9dg/L3BM+q8SWgbSPnJvrgH2kgdyzfVJwbR1ic69/4uMJJ/3dqDZZE5/WwqW8U1w==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"esbuild": "^0.19.3", "esbuild": "^0.19.3",
@ -917,33 +917,33 @@
} }
}, },
"node_modules/vitepress": { "node_modules/vitepress": {
"version": "1.0.0-rc.35", "version": "1.0.0-rc.40",
"resolved": "https://registry.npmjs.org/vitepress/-/vitepress-1.0.0-rc.35.tgz", "resolved": "https://registry.npmjs.org/vitepress/-/vitepress-1.0.0-rc.40.tgz",
"integrity": "sha512-+2VnFwtYIiKWWAnMjWg7ik0PfsUdrNoZIZKeu5dbJtrkzKO/mTvlA3owiT5VBKJsZAgI17B5UV37aYfUvGrN6g==", "integrity": "sha512-1x9PCrcsJwqhpccyTR93uD6jpiPDeRC98CBCAQLLBb44a3VSXYBPzhCahi+2kwAYylu49p0XhseMPVM4IVcWcw==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@docsearch/css": "^3.5.2", "@docsearch/css": "^3.5.2",
"@docsearch/js": "^3.5.2", "@docsearch/js": "^3.5.2",
"@types/markdown-it": "^13.0.7", "@types/markdown-it": "^13.0.7",
"@vitejs/plugin-vue": "^5.0.2", "@vitejs/plugin-vue": "^5.0.3",
"@vue/devtools-api": "^6.5.1", "@vue/devtools-api": "^6.5.1",
"@vueuse/core": "^10.7.1", "@vueuse/core": "^10.7.2",
"@vueuse/integrations": "^10.7.1", "@vueuse/integrations": "^10.7.2",
"focus-trap": "^7.5.4", "focus-trap": "^7.5.4",
"mark.js": "8.11.1", "mark.js": "8.11.1",
"minisearch": "^6.3.0", "minisearch": "^6.3.0",
"shikiji": "^0.9.17", "shikiji": "^0.10.0",
"shikiji-core": "^0.9.17", "shikiji-core": "^0.10.0",
"shikiji-transformers": "^0.9.17", "shikiji-transformers": "^0.10.0",
"vite": "^5.0.10", "vite": "^5.0.12",
"vue": "^3.4.4" "vue": "^3.4.15"
}, },
"bin": { "bin": {
"vitepress": "bin/vitepress.js" "vitepress": "bin/vitepress.js"
}, },
"peerDependencies": { "peerDependencies": {
"markdown-it-mathjax3": "^4.3.2", "markdown-it-mathjax3": "^4.3.2",
"postcss": "^8.4.32" "postcss": "^8.4.33"
}, },
"peerDependenciesMeta": { "peerDependenciesMeta": {
"markdown-it-mathjax3": { "markdown-it-mathjax3": {
@ -955,16 +955,16 @@
} }
}, },
"node_modules/vue": { "node_modules/vue": {
"version": "3.4.5", "version": "3.4.15",
"resolved": "https://registry.npmjs.org/vue/-/vue-3.4.5.tgz", "resolved": "https://registry.npmjs.org/vue/-/vue-3.4.15.tgz",
"integrity": "sha512-VH6nHFhLPjgu2oh5vEBXoNZxsGHuZNr3qf4PHClwJWw6IDqw6B3x+4J+ABdoZ0aJuT8Zi0zf3GpGlLQCrGWHrw==", "integrity": "sha512-jC0GH4KkWLWJOEQjOpkqU1bQsBwf4R1rsFtw5GQJbjHVKWDzO6P0nWWBTmjp1xSemAioDFj1jdaK1qa3DnMQoQ==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@vue/compiler-dom": "3.4.5", "@vue/compiler-dom": "3.4.15",
"@vue/compiler-sfc": "3.4.5", "@vue/compiler-sfc": "3.4.15",
"@vue/runtime-dom": "3.4.5", "@vue/runtime-dom": "3.4.15",
"@vue/server-renderer": "3.4.5", "@vue/server-renderer": "3.4.15",
"@vue/shared": "3.4.5" "@vue/shared": "3.4.15"
}, },
"peerDependencies": { "peerDependencies": {
"typescript": "*" "typescript": "*"

1588
node_modules/@babel/parser/lib/index.js generated vendored

File diff suppressed because it is too large Load diff

File diff suppressed because one or more lines are too long

View file

@ -1,6 +1,6 @@
{ {
"name": "@babel/parser", "name": "@babel/parser",
"version": "7.23.6", "version": "7.23.9",
"description": "A JavaScript parser", "description": "A JavaScript parser",
"author": "The Babel Team (https://babel.dev/team)", "author": "The Babel Team (https://babel.dev/team)",
"homepage": "https://babel.dev/docs/en/next/babel-parser", "homepage": "https://babel.dev/docs/en/next/babel-parser",

View file

@ -1,6 +1,6 @@
{ {
"name": "@esbuild/win32-x64", "name": "@esbuild/win32-x64",
"version": "0.19.11", "version": "0.19.12",
"description": "The Windows 64-bit binary for esbuild, a JavaScript bundler.", "description": "The Windows 64-bit binary for esbuild, a JavaScript bundler.",
"repository": "https://github.com/evanw/esbuild", "repository": "https://github.com/evanw/esbuild",
"license": "MIT", "license": "MIT",

View file

@ -1,6 +1,6 @@
{ {
"name": "@rollup/rollup-win32-x64-msvc", "name": "@rollup/rollup-win32-x64-msvc",
"version": "4.9.3", "version": "4.9.6",
"os": [ "os": [
"win32" "win32"
], ],

View file

@ -19,7 +19,7 @@ const path__default = /*#__PURE__*/_interopDefaultCompat(path);
const require$$0__default = /*#__PURE__*/_interopDefaultCompat(require$$0); const require$$0__default = /*#__PURE__*/_interopDefaultCompat(require$$0);
const require$$1__default = /*#__PURE__*/_interopDefaultCompat(require$$1); const require$$1__default = /*#__PURE__*/_interopDefaultCompat(require$$1);
const version = "5.0.2"; const version = "5.0.3";
function resolveCompiler(root) { function resolveCompiler(root) {
const compiler = tryResolveCompiler(root) || tryResolveCompiler(); const compiler = tryResolveCompiler(root) || tryResolveCompiler();
@ -2154,7 +2154,7 @@ const _debug = /*@__PURE__*/getDefaultExportFromCjs(srcExports);
const debug = _debug("vite:hmr"); const debug = _debug("vite:hmr");
const directRequestRE = /(?:\?|&)direct\b/; const directRequestRE = /(?:\?|&)direct\b/;
async function handleHotUpdate({ file, modules, read }, options) { async function handleHotUpdate({ file, modules, read }, options, customElement) {
const prevDescriptor = getDescriptor(file, options, false, true); const prevDescriptor = getDescriptor(file, options, false, true);
if (!prevDescriptor) { if (!prevDescriptor) {
return; return;
@ -2165,7 +2165,7 @@ async function handleHotUpdate({ file, modules, read }, options) {
const affectedModules = /* @__PURE__ */ new Set(); const affectedModules = /* @__PURE__ */ new Set();
const mainModule = getMainModule(modules); const mainModule = getMainModule(modules);
const templateModule = modules.find((m) => /type=template/.test(m.url)); const templateModule = modules.find((m) => /type=template/.test(m.url));
resolveScript(descriptor, options, false); resolveScript(descriptor, options, false, customElement);
const scriptChanged = hasScriptChanged(prevDescriptor, descriptor); const scriptChanged = hasScriptChanged(prevDescriptor, descriptor);
if (scriptChanged) { if (scriptChanged) {
affectedModules.add(getScriptModule(modules) || mainModule); affectedModules.add(getScriptModule(modules) || mainModule);
@ -2276,11 +2276,11 @@ function isEqualBlock(a, b) {
function isOnlyTemplateChanged(prev, next) { function isOnlyTemplateChanged(prev, next) {
return !hasScriptChanged(prev, next) && prev.styles.length === next.styles.length && prev.styles.every((s, i) => isEqualBlock(s, next.styles[i])) && prev.customBlocks.length === next.customBlocks.length && prev.customBlocks.every((s, i) => isEqualBlock(s, next.customBlocks[i])); return !hasScriptChanged(prev, next) && prev.styles.length === next.styles.length && prev.styles.every((s, i) => isEqualBlock(s, next.styles[i])) && prev.customBlocks.length === next.customBlocks.length && prev.customBlocks.every((s, i) => isEqualBlock(s, next.customBlocks[i]));
} }
function deepEqual(obj1, obj2, excludeProps = []) { function deepEqual(obj1, obj2, excludeProps = [], deepParentsOfObj1 = []) {
if (typeof obj1 !== typeof obj2) { if (typeof obj1 !== typeof obj2) {
return false; return false;
} }
if (obj1 == null || obj2 == null || typeof obj1 !== "object") { if (obj1 == null || obj2 == null || typeof obj1 !== "object" || deepParentsOfObj1.includes(obj1)) {
return obj1 === obj2; return obj1 === obj2;
} }
const keys1 = Object.keys(obj1); const keys1 = Object.keys(obj1);
@ -2292,7 +2292,10 @@ function deepEqual(obj1, obj2, excludeProps = []) {
if (excludeProps.includes(key)) { if (excludeProps.includes(key)) {
continue; continue;
} }
if (!deepEqual(obj1[key], obj2[key], excludeProps)) { if (!deepEqual(obj1[key], obj2[key], excludeProps, [
...deepParentsOfObj1,
obj1
])) {
return false; return false;
} }
} }
@ -2825,7 +2828,11 @@ function vuePlugin(rawOptions = {}) {
return handleTypeDepChange(typeDepToSFCMap.get(ctx.file), ctx); return handleTypeDepChange(typeDepToSFCMap.get(ctx.file), ctx);
} }
if (filter.value(ctx.file)) { if (filter.value(ctx.file)) {
return handleHotUpdate(ctx, options.value); return handleHotUpdate(
ctx,
options.value,
customElementFilter.value(ctx.file)
);
} }
}, },
config(config) { config(config) {

View file

@ -7,7 +7,7 @@ import { createHash } from 'node:crypto';
import require$$0 from 'tty'; import require$$0 from 'tty';
import require$$1 from 'util'; import require$$1 from 'util';
const version = "5.0.2"; const version = "5.0.3";
function resolveCompiler(root) { function resolveCompiler(root) {
const compiler = tryResolveCompiler(root) || tryResolveCompiler(); const compiler = tryResolveCompiler(root) || tryResolveCompiler();
@ -2142,7 +2142,7 @@ const _debug = /*@__PURE__*/getDefaultExportFromCjs(srcExports);
const debug = _debug("vite:hmr"); const debug = _debug("vite:hmr");
const directRequestRE = /(?:\?|&)direct\b/; const directRequestRE = /(?:\?|&)direct\b/;
async function handleHotUpdate({ file, modules, read }, options) { async function handleHotUpdate({ file, modules, read }, options, customElement) {
const prevDescriptor = getDescriptor(file, options, false, true); const prevDescriptor = getDescriptor(file, options, false, true);
if (!prevDescriptor) { if (!prevDescriptor) {
return; return;
@ -2153,7 +2153,7 @@ async function handleHotUpdate({ file, modules, read }, options) {
const affectedModules = /* @__PURE__ */ new Set(); const affectedModules = /* @__PURE__ */ new Set();
const mainModule = getMainModule(modules); const mainModule = getMainModule(modules);
const templateModule = modules.find((m) => /type=template/.test(m.url)); const templateModule = modules.find((m) => /type=template/.test(m.url));
resolveScript(descriptor, options, false); resolveScript(descriptor, options, false, customElement);
const scriptChanged = hasScriptChanged(prevDescriptor, descriptor); const scriptChanged = hasScriptChanged(prevDescriptor, descriptor);
if (scriptChanged) { if (scriptChanged) {
affectedModules.add(getScriptModule(modules) || mainModule); affectedModules.add(getScriptModule(modules) || mainModule);
@ -2264,11 +2264,11 @@ function isEqualBlock(a, b) {
function isOnlyTemplateChanged(prev, next) { function isOnlyTemplateChanged(prev, next) {
return !hasScriptChanged(prev, next) && prev.styles.length === next.styles.length && prev.styles.every((s, i) => isEqualBlock(s, next.styles[i])) && prev.customBlocks.length === next.customBlocks.length && prev.customBlocks.every((s, i) => isEqualBlock(s, next.customBlocks[i])); return !hasScriptChanged(prev, next) && prev.styles.length === next.styles.length && prev.styles.every((s, i) => isEqualBlock(s, next.styles[i])) && prev.customBlocks.length === next.customBlocks.length && prev.customBlocks.every((s, i) => isEqualBlock(s, next.customBlocks[i]));
} }
function deepEqual(obj1, obj2, excludeProps = []) { function deepEqual(obj1, obj2, excludeProps = [], deepParentsOfObj1 = []) {
if (typeof obj1 !== typeof obj2) { if (typeof obj1 !== typeof obj2) {
return false; return false;
} }
if (obj1 == null || obj2 == null || typeof obj1 !== "object") { if (obj1 == null || obj2 == null || typeof obj1 !== "object" || deepParentsOfObj1.includes(obj1)) {
return obj1 === obj2; return obj1 === obj2;
} }
const keys1 = Object.keys(obj1); const keys1 = Object.keys(obj1);
@ -2280,7 +2280,10 @@ function deepEqual(obj1, obj2, excludeProps = []) {
if (excludeProps.includes(key)) { if (excludeProps.includes(key)) {
continue; continue;
} }
if (!deepEqual(obj1[key], obj2[key], excludeProps)) { if (!deepEqual(obj1[key], obj2[key], excludeProps, [
...deepParentsOfObj1,
obj1
])) {
return false; return false;
} }
} }
@ -2813,7 +2816,11 @@ function vuePlugin(rawOptions = {}) {
return handleTypeDepChange(typeDepToSFCMap.get(ctx.file), ctx); return handleTypeDepChange(typeDepToSFCMap.get(ctx.file), ctx);
} }
if (filter.value(ctx.file)) { if (filter.value(ctx.file)) {
return handleHotUpdate(ctx, options.value); return handleHotUpdate(
ctx,
options.value,
customElementFilter.value(ctx.file)
);
} }
}, },
config(config) { config(config) {

View file

@ -1,6 +1,6 @@
{ {
"name": "@vitejs/plugin-vue", "name": "@vitejs/plugin-vue",
"version": "5.0.2", "version": "5.0.3",
"license": "MIT", "license": "MIT",
"author": "Evan You", "author": "Evan You",
"files": [ "files": [
@ -35,11 +35,11 @@
"@jridgewell/gen-mapping": "^0.3.3", "@jridgewell/gen-mapping": "^0.3.3",
"@jridgewell/trace-mapping": "^0.3.20", "@jridgewell/trace-mapping": "^0.3.20",
"debug": "^4.3.4", "debug": "^4.3.4",
"rollup": "^4.6.1", "rollup": "^4.9.2",
"slash": "^5.1.0", "slash": "^5.1.0",
"source-map-js": "^1.0.2", "source-map-js": "^1.0.2",
"vite": "^5.0.6", "vite": "^5.0.10",
"vue": "^3.4.1" "vue": "^3.4.5"
}, },
"scripts": { "scripts": {
"dev": "unbuild --stub", "dev": "unbuild --stub",

View file

@ -1,3 +1,8 @@
/**
* @vue/compiler-core v3.4.15
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/
'use strict'; 'use strict';
Object.defineProperty(exports, '__esModule', { value: true }); Object.defineProperty(exports, '__esModule', { value: true });
@ -1513,7 +1518,7 @@ function walkIdentifiers(root, onIdentifier, includeAll = false, parentStack = [
if (includeAll || isRefed && !isLocal) { if (includeAll || isRefed && !isLocal) {
onIdentifier(node, parent, parentStack, isRefed, isLocal); onIdentifier(node, parent, parentStack, isRefed, isLocal);
} }
} else if (node.type === "ObjectProperty" && parent.type === "ObjectPattern") { } else if (node.type === "ObjectProperty" && (parent == null ? void 0 : parent.type) === "ObjectPattern") {
node.inPattern = true; node.inPattern = true;
} else if (isFunctionType(node)) { } else if (isFunctionType(node)) {
if (node.scopeIds) { if (node.scopeIds) {
@ -2591,7 +2596,7 @@ function onCloseTag(el, end, isImplied = false) {
} }
} }
} }
if (isCompatEnabled( if (!tokenizer.inSFCRoot && isCompatEnabled(
"COMPILER_NATIVE_TEMPLATE", "COMPILER_NATIVE_TEMPLATE",
currentOptions currentOptions
) && el.tag === "template" && !isFragmentTemplate(el)) { ) && el.tag === "template" && !isFragmentTemplate(el)) {
@ -3226,8 +3231,7 @@ function createTransformContext(root, {
} }
context.parent.children.splice(removalIndex, 1); context.parent.children.splice(removalIndex, 1);
}, },
onNodeRemoved: () => { onNodeRemoved: shared.NOOP,
},
addIdentifiers(exp) { addIdentifiers(exp) {
{ {
if (shared.isString(exp)) { if (shared.isString(exp)) {

View file

@ -1,3 +1,8 @@
/**
* @vue/compiler-core v3.4.15
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/
'use strict'; 'use strict';
Object.defineProperty(exports, '__esModule', { value: true }); Object.defineProperty(exports, '__esModule', { value: true });
@ -1509,7 +1514,7 @@ function walkIdentifiers(root, onIdentifier, includeAll = false, parentStack = [
if (includeAll || isRefed && !isLocal) { if (includeAll || isRefed && !isLocal) {
onIdentifier(node, parent, parentStack, isRefed, isLocal); onIdentifier(node, parent, parentStack, isRefed, isLocal);
} }
} else if (node.type === "ObjectProperty" && parent.type === "ObjectPattern") { } else if (node.type === "ObjectProperty" && (parent == null ? void 0 : parent.type) === "ObjectPattern") {
node.inPattern = true; node.inPattern = true;
} else if (isFunctionType(node)) { } else if (isFunctionType(node)) {
if (node.scopeIds) { if (node.scopeIds) {
@ -2562,7 +2567,7 @@ function onCloseTag(el, end, isImplied = false) {
} }
{ {
const props = el.props; const props = el.props;
if (isCompatEnabled( if (!tokenizer.inSFCRoot && isCompatEnabled(
"COMPILER_NATIVE_TEMPLATE", "COMPILER_NATIVE_TEMPLATE",
currentOptions currentOptions
) && el.tag === "template" && !isFragmentTemplate(el)) { ) && el.tag === "template" && !isFragmentTemplate(el)) {
@ -3171,8 +3176,7 @@ function createTransformContext(root, {
} }
context.parent.children.splice(removalIndex, 1); context.parent.children.splice(removalIndex, 1);
}, },
onNodeRemoved: () => { onNodeRemoved: shared.NOOP,
},
addIdentifiers(exp) { addIdentifiers(exp) {
{ {
if (shared.isString(exp)) { if (shared.isString(exp)) {

View file

@ -1,3 +1,8 @@
/**
* @vue/compiler-core v3.4.15
* (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, NO, extend, isSymbol, isArray, capitalize, camelize, EMPTY_OBJ, PatchFlagNames, slotFlagsText, isOn, isBuiltInDirective, isReservedProp, toHandlerKey } from '@vue/shared';
export { generateCodeFrame } from '@vue/shared'; export { generateCodeFrame } from '@vue/shared';
@ -1254,7 +1259,7 @@ function defaultOnWarn(msg) {
!!(process.env.NODE_ENV !== "production") && console.warn(`[Vue warn] ${msg.message}`); !!(process.env.NODE_ENV !== "production") && console.warn(`[Vue warn] ${msg.message}`);
} }
function createCompilerError(code, loc, messages, additionalMessage) { function createCompilerError(code, loc, messages, additionalMessage) {
const msg = !!(process.env.NODE_ENV !== "production") || false ? (messages || errorMessages)[code] + (additionalMessage || ``) : `https://vuejs.org/errors/#compiler-${code}`; const msg = !!(process.env.NODE_ENV !== "production") || false ? (messages || errorMessages)[code] + (additionalMessage || ``) : `https://vuejs.org/error-reference/#compiler-${code}`;
const error = new SyntaxError(String(msg)); const error = new SyntaxError(String(msg));
error.code = code; error.code = code;
error.loc = loc; error.loc = loc;
@ -2356,7 +2361,7 @@ function onCloseTag(el, end, isImplied = false) {
} }
} }
} }
if (isCompatEnabled( if (!tokenizer.inSFCRoot && isCompatEnabled(
"COMPILER_NATIVE_TEMPLATE", "COMPILER_NATIVE_TEMPLATE",
currentOptions currentOptions
) && el.tag === "template" && !isFragmentTemplate(el)) { ) && el.tag === "template" && !isFragmentTemplate(el)) {
@ -2970,8 +2975,7 @@ function createTransformContext(root, {
} }
context.parent.children.splice(removalIndex, 1); context.parent.children.splice(removalIndex, 1);
}, },
onNodeRemoved: () => { onNodeRemoved: NOOP,
},
addIdentifiers(exp) { addIdentifiers(exp) {
}, },
removeIdentifiers(exp) { removeIdentifiers(exp) {

View file

@ -1,6 +1,6 @@
{ {
"name": "@vue/compiler-core", "name": "@vue/compiler-core",
"version": "3.4.5", "version": "3.4.15",
"description": "@vue/compiler-core", "description": "@vue/compiler-core",
"main": "index.js", "main": "index.js",
"module": "dist/compiler-core.esm-bundler.js", "module": "dist/compiler-core.esm-bundler.js",
@ -17,6 +17,7 @@
"development": "./dist/compiler-core.cjs.js", "development": "./dist/compiler-core.cjs.js",
"default": "./index.js" "default": "./index.js"
}, },
"module": "./dist/compiler-core.esm-bundler.js",
"import": "./dist/compiler-core.esm-bundler.js", "import": "./dist/compiler-core.esm-bundler.js",
"require": "./index.js" "require": "./index.js"
}, },
@ -49,7 +50,7 @@
"entities": "^4.5.0", "entities": "^4.5.0",
"estree-walker": "^2.0.2", "estree-walker": "^2.0.2",
"source-map-js": "^1.0.2", "source-map-js": "^1.0.2",
"@vue/shared": "3.4.5" "@vue/shared": "3.4.15"
}, },
"devDependencies": { "devDependencies": {
"@babel/types": "^7.23.6" "@babel/types": "^7.23.6"

View file

@ -1,3 +1,8 @@
/**
* @vue/compiler-dom v3.4.15
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/
'use strict'; 'use strict';
Object.defineProperty(exports, '__esModule', { value: true }); Object.defineProperty(exports, '__esModule', { value: true });

View file

@ -1,3 +1,8 @@
/**
* @vue/compiler-dom v3.4.15
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/
'use strict'; 'use strict';
Object.defineProperty(exports, '__esModule', { value: true }); Object.defineProperty(exports, '__esModule', { value: true });

View file

@ -1,3 +1,8 @@
/**
* @vue/compiler-dom v3.4.15
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/
function makeMap(str, expectsLowerCase) { function makeMap(str, expectsLowerCase) {
const set = new Set(str.split(",")); const set = new Set(str.split(","));
return expectsLowerCase ? (val) => set.has(val.toLowerCase()) : (val) => set.has(val); return expectsLowerCase ? (val) => set.has(val.toLowerCase()) : (val) => set.has(val);
@ -2480,7 +2485,7 @@ function onCloseTag(el, end, isImplied = false) {
} }
} }
} }
if (isCompatEnabled( if (!tokenizer.inSFCRoot && isCompatEnabled(
"COMPILER_NATIVE_TEMPLATE", "COMPILER_NATIVE_TEMPLATE",
currentOptions currentOptions
) && el.tag === "template" && !isFragmentTemplate(el)) { ) && el.tag === "template" && !isFragmentTemplate(el)) {
@ -3093,8 +3098,7 @@ function createTransformContext(root, {
} }
context.parent.children.splice(removalIndex, 1); context.parent.children.splice(removalIndex, 1);
}, },
onNodeRemoved: () => { onNodeRemoved: NOOP,
},
addIdentifiers(exp) { addIdentifiers(exp) {
}, },
removeIdentifiers(exp) { removeIdentifiers(exp) {

File diff suppressed because one or more lines are too long

View file

@ -1,3 +1,8 @@
/**
* @vue/compiler-dom v3.4.15
* (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, 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';
export * from '@vue/compiler-core'; export * from '@vue/compiler-core';
import { isVoidTag, isHTMLTag, isSVGTag, isMathMLTag, parseStringStyle, capitalize, makeMap, extend } from '@vue/shared'; import { isVoidTag, isHTMLTag, isSVGTag, isMathMLTag, parseStringStyle, capitalize, makeMap, extend } from '@vue/shared';

View file

@ -1,3 +1,8 @@
/**
* @vue/compiler-dom v3.4.15
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/
var VueCompilerDOM = (function (exports) { var VueCompilerDOM = (function (exports) {
'use strict'; 'use strict';
@ -2483,7 +2488,7 @@ Use a v-bind binding combined with a v-on listener that emits update:x event ins
} }
} }
} }
if (isCompatEnabled( if (!tokenizer.inSFCRoot && isCompatEnabled(
"COMPILER_NATIVE_TEMPLATE", "COMPILER_NATIVE_TEMPLATE",
currentOptions currentOptions
) && el.tag === "template" && !isFragmentTemplate(el)) { ) && el.tag === "template" && !isFragmentTemplate(el)) {
@ -3096,8 +3101,7 @@ Use a v-bind binding combined with a v-on listener that emits update:x event ins
} }
context.parent.children.splice(removalIndex, 1); context.parent.children.splice(removalIndex, 1);
}, },
onNodeRemoved: () => { onNodeRemoved: NOOP,
},
addIdentifiers(exp) { addIdentifiers(exp) {
}, },
removeIdentifiers(exp) { removeIdentifiers(exp) {

File diff suppressed because one or more lines are too long

View file

@ -1,6 +1,6 @@
{ {
"name": "@vue/compiler-dom", "name": "@vue/compiler-dom",
"version": "3.4.5", "version": "3.4.15",
"description": "@vue/compiler-dom", "description": "@vue/compiler-dom",
"main": "index.js", "main": "index.js",
"module": "dist/compiler-dom.esm-bundler.js", "module": "dist/compiler-dom.esm-bundler.js",
@ -19,6 +19,7 @@
"development": "./dist/compiler-dom.cjs.js", "development": "./dist/compiler-dom.cjs.js",
"default": "./index.js" "default": "./index.js"
}, },
"module": "./dist/compiler-dom.esm-bundler.js",
"import": "./dist/compiler-dom.esm-bundler.js", "import": "./dist/compiler-dom.esm-bundler.js",
"require": "./index.js" "require": "./index.js"
}, },
@ -50,7 +51,7 @@
}, },
"homepage": "https://github.com/vuejs/core/tree/main/packages/compiler-dom#readme", "homepage": "https://github.com/vuejs/core/tree/main/packages/compiler-dom#readme",
"dependencies": { "dependencies": {
"@vue/shared": "3.4.5", "@vue/shared": "3.4.15",
"@vue/compiler-core": "3.4.5" "@vue/compiler-core": "3.4.15"
} }
} }

View file

@ -1,3 +1,8 @@
/**
* @vue/compiler-sfc v3.4.15
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/
'use strict'; 'use strict';
Object.defineProperty(exports, '__esModule', { value: true }); Object.defineProperty(exports, '__esModule', { value: true });
@ -4274,6 +4279,7 @@ function doCompileTemplate({
} }
if (inAST == null ? void 0 : inAST.transformed) { if (inAST == null ? void 0 : inAST.transformed) {
const newAST = (ssr ? CompilerDOM__namespace : compiler).parse(inAST.source, { const newAST = (ssr ? CompilerDOM__namespace : compiler).parse(inAST.source, {
prefixIdentifiers: true,
...compilerOptions, ...compilerOptions,
parseMode: "sfc", parseMode: "sfc",
onError: (e) => errors.push(e) onError: (e) => errors.push(e)
@ -18361,7 +18367,8 @@ function resolveFS(ctx) {
file = file.replace(/\.ts$/, ""); file = file.replace(/\.ts$/, "");
} }
return fs.readFile(file); return fs.readFile(file);
} },
realpath: fs.realpath
}; };
} }
function resolveTypeFromImport(ctx, node, name, scope) { function resolveTypeFromImport(ctx, node, name, scope) {
@ -18489,7 +18496,7 @@ function resolveWithTS(containingFile, source, ts2, fs) {
if (filename.endsWith(".vue.ts")) { if (filename.endsWith(".vue.ts")) {
filename = filename.replace(/\.ts$/, ""); filename = filename.replace(/\.ts$/, "");
} }
return filename; return fs.realpath ? fs.realpath(filename) : filename;
} }
} }
function loadTSConfig(configPath, ts2, fs) { function loadTSConfig(configPath, ts2, fs) {
@ -19111,6 +19118,7 @@ function processDefineModel(ctx, node, declId) {
} }
let optionsString = options && ctx.getString(options); let optionsString = options && ctx.getString(options);
let optionsRemoved = !options; let optionsRemoved = !options;
const runtimeOptionNodes = [];
if (options && options.type === "ObjectExpression" && !options.properties.some((p) => p.type === "SpreadElement" || p.computed)) { if (options && options.type === "ObjectExpression" && !options.properties.some((p) => p.type === "SpreadElement" || p.computed)) {
let removed = 0; let removed = 0;
for (let i = options.properties.length - 1; i >= 0; i--) { for (let i = options.properties.length - 1; i >= 0; i--) {
@ -19123,6 +19131,7 @@ function processDefineModel(ctx, node, declId) {
} else { } else {
removed++; removed++;
ctx.s.remove(ctx.startOffset + start, ctx.startOffset + end); ctx.s.remove(ctx.startOffset + start, ctx.startOffset + end);
runtimeOptionNodes.push(p);
} }
} }
if (removed === options.properties.length) { if (removed === options.properties.length) {
@ -19136,6 +19145,7 @@ function processDefineModel(ctx, node, declId) {
ctx.modelDecls[modelName] = { ctx.modelDecls[modelName] = {
type, type,
options: optionsString, options: optionsString,
runtimeOptionNodes,
identifier: declId && declId.type === "Identifier" ? declId.name : void 0 identifier: declId && declId.type === "Identifier" ? declId.name : void 0
}; };
ctx.bindingMetadata[modelName] = "props"; ctx.bindingMetadata[modelName] = "props";
@ -20177,6 +20187,11 @@ const ${normalScriptDefaultVar} = ${defaultSpecifier.local.name}
checkInvalidScopeReference(ctx.propsDestructureDecl, DEFINE_PROPS); checkInvalidScopeReference(ctx.propsDestructureDecl, DEFINE_PROPS);
checkInvalidScopeReference(ctx.emitsRuntimeDecl, DEFINE_EMITS); checkInvalidScopeReference(ctx.emitsRuntimeDecl, DEFINE_EMITS);
checkInvalidScopeReference(ctx.optionsRuntimeDecl, DEFINE_OPTIONS); checkInvalidScopeReference(ctx.optionsRuntimeDecl, DEFINE_OPTIONS);
for (const { runtimeOptionNodes } of Object.values(ctx.modelDecls)) {
for (const node of runtimeOptionNodes) {
checkInvalidScopeReference(node, DEFINE_MODEL);
}
}
if (script) { if (script) {
if (startOffset < scriptStartOffset) { if (startOffset < scriptStartOffset) {
ctx.s.remove(0, startOffset); ctx.s.remove(0, startOffset);
@ -20594,7 +20609,7 @@ function isStaticNode(node) {
return false; return false;
} }
const version = "3.4.5"; const version = "3.4.15";
const parseCache = parseCache$1; const parseCache = parseCache$1;
const errorMessages = { const errorMessages = {
...CompilerDOM.errorMessages, ...CompilerDOM.errorMessages,

View file

@ -1,5 +1,5 @@
import * as _babel_types from '@babel/types'; import * as _babel_types from '@babel/types';
import { Statement, Expression, TSType, Program, CallExpression, Node, ObjectPattern, TSModuleDeclaration, TSPropertySignature, TSMethodSignature, TSCallSignatureDeclaration, TSFunctionType } 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, SourceLocation, BindingMetadata as BindingMetadata$1 } from '@vue/compiler-core'; import { RootNode, CompilerOptions, CodegenResult, ParserOptions, CompilerError, SourceLocation, BindingMetadata as BindingMetadata$1 } from '@vue/compiler-core';
export { BindingMetadata, CompilerError, CompilerOptions, extractIdentifiers, generateCodeFrame, isInDestructureAssignment, isStaticProperty, walkIdentifiers } from '@vue/compiler-core'; export { BindingMetadata, CompilerError, CompilerOptions, extractIdentifiers, generateCodeFrame, isInDestructureAssignment, isStaticProperty, walkIdentifiers } from '@vue/compiler-core';
import { RawSourceMap } from 'source-map-js'; import { RawSourceMap } from 'source-map-js';
@ -130,6 +130,7 @@ export interface SFCScriptCompileOptions {
fs?: { fs?: {
fileExists(file: string): boolean; fileExists(file: string): boolean;
readFile(file: string): string | undefined; readFile(file: string): string | undefined;
realpath?(file: string): string;
}; };
/** /**
* Transform Vue SFCs into custom elements. * Transform Vue SFCs into custom elements.
@ -294,6 +295,7 @@ interface ModelDecl {
type: TSType | undefined; type: TSType | undefined;
options: string | undefined; options: string | undefined;
identifier: string | undefined; identifier: string | undefined;
runtimeOptionNodes: Node[];
} }
declare enum BindingTypes { declare enum BindingTypes {

View file

@ -1,3 +1,8 @@
/**
* @vue/compiler-sfc v3.4.15
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/
function makeMap(str, expectsLowerCase) { function makeMap(str, expectsLowerCase) {
const set = new Set(str.split(",")); const set = new Set(str.split(","));
return expectsLowerCase ? (val) => set.has(val.toLowerCase()) : (val) => set.has(val); return expectsLowerCase ? (val) => set.has(val.toLowerCase()) : (val) => set.has(val);
@ -17029,7 +17034,7 @@ function walkIdentifiers(root, onIdentifier, includeAll = false, parentStack = [
if (includeAll || isRefed && !isLocal) { if (includeAll || isRefed && !isLocal) {
onIdentifier(node, parent, parentStack, isRefed, isLocal); onIdentifier(node, parent, parentStack, isRefed, isLocal);
} }
} else if (node.type === "ObjectProperty" && parent.type === "ObjectPattern") { } else if (node.type === "ObjectProperty" && (parent == null ? void 0 : parent.type) === "ObjectPattern") {
node.inPattern = true; node.inPattern = true;
} else if (isFunctionType(node)) { } else if (isFunctionType(node)) {
if (node.scopeIds) { if (node.scopeIds) {
@ -18661,8 +18666,7 @@ function createTransformContext(root, {
} }
context.parent.children.splice(removalIndex, 1); context.parent.children.splice(removalIndex, 1);
}, },
onNodeRemoved: () => { onNodeRemoved: NOOP,
},
addIdentifiers(exp) { addIdentifiers(exp) {
{ {
if (isString$2(exp)) { if (isString$2(exp)) {
@ -32649,7 +32653,9 @@ function doCompileTemplate({
inAST = void 0; inAST = void 0;
} }
if (inAST == null ? void 0 : inAST.transformed) { if (inAST == null ? void 0 : inAST.transformed) {
const newAST = (ssr ? CompilerDOM : compiler).parse(inAST.source, __spreadProps$5(__spreadValues$6({}, compilerOptions), { const newAST = (ssr ? CompilerDOM : compiler).parse(inAST.source, __spreadProps$5(__spreadValues$6({
prefixIdentifiers: true
}, compilerOptions), {
parseMode: "sfc", parseMode: "sfc",
onError: (e) => errors.push(e) onError: (e) => errors.push(e)
})); }));
@ -34485,6 +34491,7 @@ let MapGenerator$2 = class MapGenerator {
this.root = root; this.root = root;
this.opts = opts; this.opts = opts;
this.css = cssString; this.css = cssString;
this.originalCSS = cssString;
this.usesFileUrls = !this.mapOpts.from && this.mapOpts.absolute; this.usesFileUrls = !this.mapOpts.from && this.mapOpts.absolute;
this.memoizedFileURLs = new Map(); this.memoizedFileURLs = new Map();
@ -34543,7 +34550,7 @@ let MapGenerator$2 = class MapGenerator {
} }
} }
} else if (this.css) { } else if (this.css) {
this.css = this.css.replace(/(\n)?\/\*#[\S\s]*?\*\/$/gm, ''); this.css = this.css.replace(/\n*?\/\*#[\S\s]*?\*\/$/gm, '');
} }
} }
@ -34745,7 +34752,7 @@ let MapGenerator$2 = class MapGenerator {
} }
}); });
} else { } else {
let input = new Input$3(this.css, this.opts); let input = new Input$3(this.originalCSS, this.opts);
if (input.map) this.previousMaps.push(input.map); if (input.map) this.previousMaps.push(input.map);
} }
} }
@ -36801,6 +36808,9 @@ let NoWorkResult$1 = class NoWorkResult {
if (generatedMap) { if (generatedMap) {
this.result.map = generatedMap; this.result.map = generatedMap;
} }
} else {
map.clearAnnotation();
this.result.css = map.css;
} }
} }
@ -36905,7 +36915,7 @@ let Root$2 = root$2;
let Processor$1 = class Processor { let Processor$1 = class Processor {
constructor(plugins = []) { constructor(plugins = []) {
this.version = '8.4.32'; this.version = '8.4.33';
this.plugins = this.normalize(plugins); this.plugins = this.normalize(plugins);
} }
@ -36941,10 +36951,10 @@ let Processor$1 = class Processor {
process(css, opts = {}) { process(css, opts = {}) {
if ( if (
this.plugins.length === 0 && !this.plugins.length &&
typeof opts.parser === 'undefined' && !opts.parser &&
typeof opts.stringifier === 'undefined' && !opts.stringifier &&
typeof opts.syntax === 'undefined' !opts.syntax
) { ) {
return new NoWorkResult(this, css, opts) return new NoWorkResult(this, css, opts)
} else { } else {
@ -46451,7 +46461,8 @@ function resolveFS(ctx) {
file = file.replace(/\.ts$/, ""); file = file.replace(/\.ts$/, "");
} }
return fs.readFile(file); return fs.readFile(file);
} },
realpath: fs.realpath
}; };
} }
function resolveTypeFromImport(ctx, node, name, scope) { function resolveTypeFromImport(ctx, node, name, scope) {
@ -47117,6 +47128,7 @@ function processDefineModel(ctx, node, declId) {
} }
let optionsString = options && ctx.getString(options); let optionsString = options && ctx.getString(options);
let optionsRemoved = !options; let optionsRemoved = !options;
const runtimeOptionNodes = [];
if (options && options.type === "ObjectExpression" && !options.properties.some((p) => p.type === "SpreadElement" || p.computed)) { if (options && options.type === "ObjectExpression" && !options.properties.some((p) => p.type === "SpreadElement" || p.computed)) {
let removed = 0; let removed = 0;
for (let i = options.properties.length - 1; i >= 0; i--) { for (let i = options.properties.length - 1; i >= 0; i--) {
@ -47129,6 +47141,7 @@ function processDefineModel(ctx, node, declId) {
} else { } else {
removed++; removed++;
ctx.s.remove(ctx.startOffset + start, ctx.startOffset + end); ctx.s.remove(ctx.startOffset + start, ctx.startOffset + end);
runtimeOptionNodes.push(p);
} }
} }
if (removed === options.properties.length) { if (removed === options.properties.length) {
@ -47142,6 +47155,7 @@ function processDefineModel(ctx, node, declId) {
ctx.modelDecls[modelName] = { ctx.modelDecls[modelName] = {
type, type,
options: optionsString, options: optionsString,
runtimeOptionNodes,
identifier: declId && declId.type === "Identifier" ? declId.name : void 0 identifier: declId && declId.type === "Identifier" ? declId.name : void 0
}; };
ctx.bindingMetadata[modelName] = "props"; ctx.bindingMetadata[modelName] = "props";
@ -48202,6 +48216,11 @@ const ${normalScriptDefaultVar} = ${defaultSpecifier.local.name}
checkInvalidScopeReference(ctx.propsDestructureDecl, DEFINE_PROPS); checkInvalidScopeReference(ctx.propsDestructureDecl, DEFINE_PROPS);
checkInvalidScopeReference(ctx.emitsRuntimeDecl, DEFINE_EMITS); checkInvalidScopeReference(ctx.emitsRuntimeDecl, DEFINE_EMITS);
checkInvalidScopeReference(ctx.optionsRuntimeDecl, DEFINE_OPTIONS); checkInvalidScopeReference(ctx.optionsRuntimeDecl, DEFINE_OPTIONS);
for (const { runtimeOptionNodes } of Object.values(ctx.modelDecls)) {
for (const node of runtimeOptionNodes) {
checkInvalidScopeReference(node, DEFINE_MODEL);
}
}
if (script) { if (script) {
if (startOffset < scriptStartOffset) { if (startOffset < scriptStartOffset) {
ctx.s.remove(0, startOffset); ctx.s.remove(0, startOffset);
@ -48630,7 +48649,7 @@ var __spreadValues = (a, b) => {
} }
return a; return a;
}; };
const version = "3.4.5"; const version = "3.4.15";
const parseCache = parseCache$1; const parseCache = parseCache$1;
const errorMessages = __spreadValues(__spreadValues({}, errorMessages$1), DOMErrorMessages); const errorMessages = __spreadValues(__spreadValues({}, errorMessages$1), DOMErrorMessages);
const walk = walk$2; const walk = walk$2;

View file

@ -1,6 +1,6 @@
{ {
"name": "@vue/compiler-sfc", "name": "@vue/compiler-sfc",
"version": "3.4.5", "version": "3.4.15",
"description": "@vue/compiler-sfc", "description": "@vue/compiler-sfc",
"main": "dist/compiler-sfc.cjs.js", "main": "dist/compiler-sfc.cjs.js",
"module": "dist/compiler-sfc.esm-browser.js", "module": "dist/compiler-sfc.esm-browser.js",
@ -12,6 +12,7 @@
".": { ".": {
"types": "./dist/compiler-sfc.d.ts", "types": "./dist/compiler-sfc.d.ts",
"node": "./dist/compiler-sfc.cjs.js", "node": "./dist/compiler-sfc.cjs.js",
"module": "./dist/compiler-sfc.esm-browser.js",
"import": "./dist/compiler-sfc.esm-browser.js", "import": "./dist/compiler-sfc.esm-browser.js",
"require": "./dist/compiler-sfc.cjs.js" "require": "./dist/compiler-sfc.cjs.js"
}, },
@ -44,12 +45,12 @@
"@babel/parser": "^7.23.6", "@babel/parser": "^7.23.6",
"estree-walker": "^2.0.2", "estree-walker": "^2.0.2",
"magic-string": "^0.30.5", "magic-string": "^0.30.5",
"postcss": "^8.4.32", "postcss": "^8.4.33",
"source-map-js": "^1.0.2", "source-map-js": "^1.0.2",
"@vue/compiler-core": "3.4.5", "@vue/compiler-core": "3.4.15",
"@vue/compiler-ssr": "3.4.5", "@vue/shared": "3.4.15",
"@vue/compiler-dom": "3.4.5", "@vue/compiler-dom": "3.4.15",
"@vue/shared": "3.4.5" "@vue/compiler-ssr": "3.4.15"
}, },
"devDependencies": { "devDependencies": {
"@babel/types": "^7.23.6", "@babel/types": "^7.23.6",

View file

@ -1,3 +1,8 @@
/**
* @vue/compiler-ssr v3.4.15
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/
'use strict'; 'use strict';
Object.defineProperty(exports, '__esModule', { value: true }); Object.defineProperty(exports, '__esModule', { value: true });

View file

@ -1,6 +1,6 @@
{ {
"name": "@vue/compiler-ssr", "name": "@vue/compiler-ssr",
"version": "3.4.5", "version": "3.4.15",
"description": "@vue/compiler-ssr", "description": "@vue/compiler-ssr",
"main": "dist/compiler-ssr.cjs.js", "main": "dist/compiler-ssr.cjs.js",
"types": "dist/compiler-ssr.d.ts", "types": "dist/compiler-ssr.d.ts",
@ -28,7 +28,7 @@
}, },
"homepage": "https://github.com/vuejs/core/tree/main/packages/compiler-ssr#readme", "homepage": "https://github.com/vuejs/core/tree/main/packages/compiler-ssr#readme",
"dependencies": { "dependencies": {
"@vue/shared": "3.4.5", "@vue/shared": "3.4.15",
"@vue/compiler-dom": "3.4.5" "@vue/compiler-dom": "3.4.15"
} }
} }

View file

@ -1,3 +1,8 @@
/**
* @vue/reactivity v3.4.15
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/
'use strict'; 'use strict';
Object.defineProperty(exports, '__esModule', { value: true }); Object.defineProperty(exports, '__esModule', { value: true });
@ -119,7 +124,7 @@ class ReactiveEffect {
/** /**
* @internal * @internal
*/ */
this._dirtyLevel = 3; this._dirtyLevel = 2;
/** /**
* @internal * @internal
*/ */
@ -131,7 +136,7 @@ class ReactiveEffect {
/** /**
* @internal * @internal
*/ */
this._queryings = 0; this._shouldSchedule = false;
/** /**
* @internal * @internal
*/ */
@ -140,10 +145,9 @@ class ReactiveEffect {
} }
get dirty() { get dirty() {
if (this._dirtyLevel === 1) { if (this._dirtyLevel === 1) {
this._dirtyLevel = 0;
this._queryings++;
pauseTracking(); pauseTracking();
for (const dep of this.deps) { for (let i = 0; i < this._depsLength; i++) {
const dep = this.deps[i];
if (dep.computed) { if (dep.computed) {
triggerComputed(dep.computed); triggerComputed(dep.computed);
if (this._dirtyLevel >= 2) { if (this._dirtyLevel >= 2) {
@ -151,13 +155,15 @@ class ReactiveEffect {
} }
} }
} }
if (this._dirtyLevel < 2) {
this._dirtyLevel = 0;
}
resetTracking(); resetTracking();
this._queryings--;
} }
return this._dirtyLevel >= 2; return this._dirtyLevel >= 2;
} }
set dirty(v) { set dirty(v) {
this._dirtyLevel = v ? 3 : 0; this._dirtyLevel = v ? 2 : 0;
} }
run() { run() {
this._dirtyLevel = 0; this._dirtyLevel = 0;
@ -284,25 +290,29 @@ function triggerEffects(dep, dirtyLevel, debuggerEventExtraInfo) {
var _a; var _a;
pauseScheduling(); pauseScheduling();
for (const effect2 of dep.keys()) { for (const effect2 of dep.keys()) {
if (!effect2.allowRecurse && effect2._runnings) { if (effect2._dirtyLevel < dirtyLevel && dep.get(effect2) === effect2._trackId) {
continue;
}
if (effect2._dirtyLevel < dirtyLevel && (!effect2._runnings || dirtyLevel !== 2)) {
const lastDirtyLevel = effect2._dirtyLevel; const lastDirtyLevel = effect2._dirtyLevel;
effect2._dirtyLevel = dirtyLevel; effect2._dirtyLevel = dirtyLevel;
if (lastDirtyLevel === 0 && (!effect2._queryings || dirtyLevel !== 2)) { if (lastDirtyLevel === 0) {
effect2._shouldSchedule = true;
{ {
(_a = effect2.onTrigger) == null ? void 0 : _a.call(effect2, shared.extend({ effect: effect2 }, debuggerEventExtraInfo)); (_a = effect2.onTrigger) == null ? void 0 : _a.call(effect2, shared.extend({ effect: effect2 }, debuggerEventExtraInfo));
} }
effect2.trigger(); effect2.trigger();
if (effect2.scheduler) {
queueEffectSchedulers.push(effect2.scheduler);
}
} }
} }
} }
scheduleEffects(dep);
resetScheduling(); resetScheduling();
} }
function scheduleEffects(dep) {
for (const effect2 of dep.keys()) {
if (effect2.scheduler && effect2._shouldSchedule && (!effect2._runnings || effect2.allowRecurse) && dep.get(effect2) === effect2._trackId) {
effect2._shouldSchedule = false;
queueEffectSchedulers.push(effect2.scheduler);
}
}
}
const createDep = (cleanup, computed) => { const createDep = (cleanup, computed) => {
const dep = /* @__PURE__ */ new Map(); const dep = /* @__PURE__ */ new Map();
@ -385,7 +395,7 @@ function trigger(target, type, key, newValue, oldValue, oldTarget) {
if (dep) { if (dep) {
triggerEffects( triggerEffects(
dep, dep,
3, 2,
{ {
target, target,
type, type,
@ -984,7 +994,8 @@ class ComputedRefImpl {
this["__v_isReadonly"] = false; this["__v_isReadonly"] = false;
this.effect = new ReactiveEffect( this.effect = new ReactiveEffect(
() => getter(this._value), () => getter(this._value),
() => triggerRefValue(this, 1) () => triggerRefValue(this, 1),
() => this.dep && scheduleEffects(this.dep)
); );
this.effect.computed = this; this.effect.computed = this;
this.effect.active = this._cacheable = !isSSR; this.effect.active = this._cacheable = !isSSR;
@ -992,12 +1003,15 @@ class ComputedRefImpl {
} }
get value() { get value() {
const self = toRaw(this); const self = toRaw(this);
trackRefValue(self);
if (!self._cacheable || self.effect.dirty) { if (!self._cacheable || self.effect.dirty) {
if (shared.hasChanged(self._value, self._value = self.effect.run())) { if (shared.hasChanged(self._value, self._value = self.effect.run())) {
triggerRefValue(self, 2); triggerRefValue(self, 2);
} }
} }
trackRefValue(self);
if (self.effect._dirtyLevel >= 1) {
triggerRefValue(self, 1);
}
return self._value; return self._value;
} }
set value(newValue) { set value(newValue) {
@ -1050,7 +1064,7 @@ function trackRefValue(ref2) {
); );
} }
} }
function triggerRefValue(ref2, dirtyLevel = 3, newVal) { function triggerRefValue(ref2, dirtyLevel = 2, newVal) {
ref2 = toRaw(ref2); ref2 = toRaw(ref2);
const dep = ref2.dep; const dep = ref2.dep;
if (dep) { if (dep) {
@ -1099,12 +1113,12 @@ class RefImpl {
if (shared.hasChanged(newVal, this._rawValue)) { if (shared.hasChanged(newVal, this._rawValue)) {
this._rawValue = newVal; this._rawValue = newVal;
this._value = useDirectValue ? newVal : toReactive(newVal); this._value = useDirectValue ? newVal : toReactive(newVal);
triggerRefValue(this, 3, newVal); triggerRefValue(this, 2, newVal);
} }
} }
} }
function triggerRef(ref2) { function triggerRef(ref2) {
triggerRefValue(ref2, 3, ref2.value ); triggerRefValue(ref2, 2, ref2.value );
} }
function unref(ref2) { function unref(ref2) {
return isRef(ref2) ? ref2.value : ref2; return isRef(ref2) ? ref2.value : ref2;

View file

@ -1,3 +1,8 @@
/**
* @vue/reactivity v3.4.15
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/
'use strict'; 'use strict';
Object.defineProperty(exports, '__esModule', { value: true }); Object.defineProperty(exports, '__esModule', { value: true });
@ -109,7 +114,7 @@ class ReactiveEffect {
/** /**
* @internal * @internal
*/ */
this._dirtyLevel = 3; this._dirtyLevel = 2;
/** /**
* @internal * @internal
*/ */
@ -121,7 +126,7 @@ class ReactiveEffect {
/** /**
* @internal * @internal
*/ */
this._queryings = 0; this._shouldSchedule = false;
/** /**
* @internal * @internal
*/ */
@ -130,10 +135,9 @@ class ReactiveEffect {
} }
get dirty() { get dirty() {
if (this._dirtyLevel === 1) { if (this._dirtyLevel === 1) {
this._dirtyLevel = 0;
this._queryings++;
pauseTracking(); pauseTracking();
for (const dep of this.deps) { for (let i = 0; i < this._depsLength; i++) {
const dep = this.deps[i];
if (dep.computed) { if (dep.computed) {
triggerComputed(dep.computed); triggerComputed(dep.computed);
if (this._dirtyLevel >= 2) { if (this._dirtyLevel >= 2) {
@ -141,13 +145,15 @@ class ReactiveEffect {
} }
} }
} }
if (this._dirtyLevel < 2) {
this._dirtyLevel = 0;
}
resetTracking(); resetTracking();
this._queryings--;
} }
return this._dirtyLevel >= 2; return this._dirtyLevel >= 2;
} }
set dirty(v) { set dirty(v) {
this._dirtyLevel = v ? 3 : 0; this._dirtyLevel = v ? 2 : 0;
} }
run() { run() {
this._dirtyLevel = 0; this._dirtyLevel = 0;
@ -269,22 +275,26 @@ const queueEffectSchedulers = [];
function triggerEffects(dep, dirtyLevel, debuggerEventExtraInfo) { function triggerEffects(dep, dirtyLevel, debuggerEventExtraInfo) {
pauseScheduling(); pauseScheduling();
for (const effect2 of dep.keys()) { for (const effect2 of dep.keys()) {
if (!effect2.allowRecurse && effect2._runnings) { if (effect2._dirtyLevel < dirtyLevel && dep.get(effect2) === effect2._trackId) {
continue;
}
if (effect2._dirtyLevel < dirtyLevel && (!effect2._runnings || dirtyLevel !== 2)) {
const lastDirtyLevel = effect2._dirtyLevel; const lastDirtyLevel = effect2._dirtyLevel;
effect2._dirtyLevel = dirtyLevel; effect2._dirtyLevel = dirtyLevel;
if (lastDirtyLevel === 0 && (!effect2._queryings || dirtyLevel !== 2)) { if (lastDirtyLevel === 0) {
effect2._shouldSchedule = true;
effect2.trigger(); effect2.trigger();
if (effect2.scheduler) {
queueEffectSchedulers.push(effect2.scheduler);
}
} }
} }
} }
scheduleEffects(dep);
resetScheduling(); resetScheduling();
} }
function scheduleEffects(dep) {
for (const effect2 of dep.keys()) {
if (effect2.scheduler && effect2._shouldSchedule && (!effect2._runnings || effect2.allowRecurse) && dep.get(effect2) === effect2._trackId) {
effect2._shouldSchedule = false;
queueEffectSchedulers.push(effect2.scheduler);
}
}
}
const createDep = (cleanup, computed) => { const createDep = (cleanup, computed) => {
const dep = /* @__PURE__ */ new Map(); const dep = /* @__PURE__ */ new Map();
@ -361,7 +371,7 @@ function trigger(target, type, key, newValue, oldValue, oldTarget) {
if (dep) { if (dep) {
triggerEffects( triggerEffects(
dep, dep,
3); 2);
} }
} }
resetScheduling(); resetScheduling();
@ -915,7 +925,8 @@ class ComputedRefImpl {
this["__v_isReadonly"] = false; this["__v_isReadonly"] = false;
this.effect = new ReactiveEffect( this.effect = new ReactiveEffect(
() => getter(this._value), () => getter(this._value),
() => triggerRefValue(this, 1) () => triggerRefValue(this, 1),
() => this.dep && scheduleEffects(this.dep)
); );
this.effect.computed = this; this.effect.computed = this;
this.effect.active = this._cacheable = !isSSR; this.effect.active = this._cacheable = !isSSR;
@ -923,12 +934,15 @@ class ComputedRefImpl {
} }
get value() { get value() {
const self = toRaw(this); const self = toRaw(this);
trackRefValue(self);
if (!self._cacheable || self.effect.dirty) { if (!self._cacheable || self.effect.dirty) {
if (shared.hasChanged(self._value, self._value = self.effect.run())) { if (shared.hasChanged(self._value, self._value = self.effect.run())) {
triggerRefValue(self, 2); triggerRefValue(self, 2);
} }
} }
trackRefValue(self);
if (self.effect._dirtyLevel >= 1) {
triggerRefValue(self, 1);
}
return self._value; return self._value;
} }
set value(newValue) { set value(newValue) {
@ -969,7 +983,7 @@ function trackRefValue(ref2) {
))); )));
} }
} }
function triggerRefValue(ref2, dirtyLevel = 3, newVal) { function triggerRefValue(ref2, dirtyLevel = 2, newVal) {
ref2 = toRaw(ref2); ref2 = toRaw(ref2);
const dep = ref2.dep; const dep = ref2.dep;
if (dep) { if (dep) {
@ -1011,12 +1025,12 @@ class RefImpl {
if (shared.hasChanged(newVal, this._rawValue)) { if (shared.hasChanged(newVal, this._rawValue)) {
this._rawValue = newVal; this._rawValue = newVal;
this._value = useDirectValue ? newVal : toReactive(newVal); this._value = useDirectValue ? newVal : toReactive(newVal);
triggerRefValue(this, 3); triggerRefValue(this, 2);
} }
} }
} }
function triggerRef(ref2) { function triggerRef(ref2) {
triggerRefValue(ref2, 3); triggerRefValue(ref2, 2);
} }
function unref(ref2) { function unref(ref2) {
return isRef(ref2) ? ref2.value : ref2; return isRef(ref2) ? ref2.value : ref2;

View file

@ -1,3 +1,8 @@
/**
* @vue/reactivity v3.4.15
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/
function makeMap(str, expectsLowerCase) { function makeMap(str, expectsLowerCase) {
const set = new Set(str.split(",")); const set = new Set(str.split(","));
return expectsLowerCase ? (val) => set.has(val.toLowerCase()) : (val) => set.has(val); return expectsLowerCase ? (val) => set.has(val.toLowerCase()) : (val) => set.has(val);
@ -154,7 +159,7 @@ class ReactiveEffect {
/** /**
* @internal * @internal
*/ */
this._dirtyLevel = 3; this._dirtyLevel = 2;
/** /**
* @internal * @internal
*/ */
@ -166,7 +171,7 @@ class ReactiveEffect {
/** /**
* @internal * @internal
*/ */
this._queryings = 0; this._shouldSchedule = false;
/** /**
* @internal * @internal
*/ */
@ -175,10 +180,9 @@ class ReactiveEffect {
} }
get dirty() { get dirty() {
if (this._dirtyLevel === 1) { if (this._dirtyLevel === 1) {
this._dirtyLevel = 0;
this._queryings++;
pauseTracking(); pauseTracking();
for (const dep of this.deps) { for (let i = 0; i < this._depsLength; i++) {
const dep = this.deps[i];
if (dep.computed) { if (dep.computed) {
triggerComputed(dep.computed); triggerComputed(dep.computed);
if (this._dirtyLevel >= 2) { if (this._dirtyLevel >= 2) {
@ -186,13 +190,15 @@ class ReactiveEffect {
} }
} }
} }
if (this._dirtyLevel < 2) {
this._dirtyLevel = 0;
}
resetTracking(); resetTracking();
this._queryings--;
} }
return this._dirtyLevel >= 2; return this._dirtyLevel >= 2;
} }
set dirty(v) { set dirty(v) {
this._dirtyLevel = v ? 3 : 0; this._dirtyLevel = v ? 2 : 0;
} }
run() { run() {
this._dirtyLevel = 0; this._dirtyLevel = 0;
@ -319,25 +325,29 @@ function triggerEffects(dep, dirtyLevel, debuggerEventExtraInfo) {
var _a; var _a;
pauseScheduling(); pauseScheduling();
for (const effect2 of dep.keys()) { for (const effect2 of dep.keys()) {
if (!effect2.allowRecurse && effect2._runnings) { if (effect2._dirtyLevel < dirtyLevel && dep.get(effect2) === effect2._trackId) {
continue;
}
if (effect2._dirtyLevel < dirtyLevel && (!effect2._runnings || dirtyLevel !== 2)) {
const lastDirtyLevel = effect2._dirtyLevel; const lastDirtyLevel = effect2._dirtyLevel;
effect2._dirtyLevel = dirtyLevel; effect2._dirtyLevel = dirtyLevel;
if (lastDirtyLevel === 0 && (!effect2._queryings || dirtyLevel !== 2)) { if (lastDirtyLevel === 0) {
effect2._shouldSchedule = true;
{ {
(_a = effect2.onTrigger) == null ? void 0 : _a.call(effect2, extend({ effect: effect2 }, debuggerEventExtraInfo)); (_a = effect2.onTrigger) == null ? void 0 : _a.call(effect2, extend({ effect: effect2 }, debuggerEventExtraInfo));
} }
effect2.trigger(); effect2.trigger();
if (effect2.scheduler) {
queueEffectSchedulers.push(effect2.scheduler);
}
} }
} }
} }
scheduleEffects(dep);
resetScheduling(); resetScheduling();
} }
function scheduleEffects(dep) {
for (const effect2 of dep.keys()) {
if (effect2.scheduler && effect2._shouldSchedule && (!effect2._runnings || effect2.allowRecurse) && dep.get(effect2) === effect2._trackId) {
effect2._shouldSchedule = false;
queueEffectSchedulers.push(effect2.scheduler);
}
}
}
const createDep = (cleanup, computed) => { const createDep = (cleanup, computed) => {
const dep = /* @__PURE__ */ new Map(); const dep = /* @__PURE__ */ new Map();
@ -420,7 +430,7 @@ function trigger(target, type, key, newValue, oldValue, oldTarget) {
if (dep) { if (dep) {
triggerEffects( triggerEffects(
dep, dep,
3, 2,
{ {
target, target,
type, type,
@ -1019,7 +1029,8 @@ class ComputedRefImpl {
this["__v_isReadonly"] = false; this["__v_isReadonly"] = false;
this.effect = new ReactiveEffect( this.effect = new ReactiveEffect(
() => getter(this._value), () => getter(this._value),
() => triggerRefValue(this, 1) () => triggerRefValue(this, 1),
() => this.dep && scheduleEffects(this.dep)
); );
this.effect.computed = this; this.effect.computed = this;
this.effect.active = this._cacheable = !isSSR; this.effect.active = this._cacheable = !isSSR;
@ -1027,12 +1038,15 @@ class ComputedRefImpl {
} }
get value() { get value() {
const self = toRaw(this); const self = toRaw(this);
trackRefValue(self);
if (!self._cacheable || self.effect.dirty) { if (!self._cacheable || self.effect.dirty) {
if (hasChanged(self._value, self._value = self.effect.run())) { if (hasChanged(self._value, self._value = self.effect.run())) {
triggerRefValue(self, 2); triggerRefValue(self, 2);
} }
} }
trackRefValue(self);
if (self.effect._dirtyLevel >= 1) {
triggerRefValue(self, 1);
}
return self._value; return self._value;
} }
set value(newValue) { set value(newValue) {
@ -1085,7 +1099,7 @@ function trackRefValue(ref2) {
); );
} }
} }
function triggerRefValue(ref2, dirtyLevel = 3, newVal) { function triggerRefValue(ref2, dirtyLevel = 2, newVal) {
ref2 = toRaw(ref2); ref2 = toRaw(ref2);
const dep = ref2.dep; const dep = ref2.dep;
if (dep) { if (dep) {
@ -1134,12 +1148,12 @@ class RefImpl {
if (hasChanged(newVal, this._rawValue)) { if (hasChanged(newVal, this._rawValue)) {
this._rawValue = newVal; this._rawValue = newVal;
this._value = useDirectValue ? newVal : toReactive(newVal); this._value = useDirectValue ? newVal : toReactive(newVal);
triggerRefValue(this, 3, newVal); triggerRefValue(this, 2, newVal);
} }
} }
} }
function triggerRef(ref2) { function triggerRef(ref2) {
triggerRefValue(ref2, 3, ref2.value ); triggerRefValue(ref2, 2, ref2.value );
} }
function unref(ref2) { function unref(ref2) {
return isRef(ref2) ? ref2.value : ref2; return isRef(ref2) ? ref2.value : ref2;

File diff suppressed because one or more lines are too long

View file

@ -1,3 +1,8 @@
/**
* @vue/reactivity v3.4.15
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/
import { NOOP, extend, isArray, isSymbol, isMap, isIntegerKey, hasOwn, hasChanged, isObject, makeMap, capitalize, toRawType, def, isFunction } from '@vue/shared'; import { NOOP, extend, isArray, isSymbol, isMap, isIntegerKey, hasOwn, hasChanged, isObject, makeMap, capitalize, toRawType, def, isFunction } from '@vue/shared';
function warn(msg, ...args) { function warn(msg, ...args) {
@ -115,7 +120,7 @@ class ReactiveEffect {
/** /**
* @internal * @internal
*/ */
this._dirtyLevel = 3; this._dirtyLevel = 2;
/** /**
* @internal * @internal
*/ */
@ -127,7 +132,7 @@ class ReactiveEffect {
/** /**
* @internal * @internal
*/ */
this._queryings = 0; this._shouldSchedule = false;
/** /**
* @internal * @internal
*/ */
@ -136,10 +141,9 @@ class ReactiveEffect {
} }
get dirty() { get dirty() {
if (this._dirtyLevel === 1) { if (this._dirtyLevel === 1) {
this._dirtyLevel = 0;
this._queryings++;
pauseTracking(); pauseTracking();
for (const dep of this.deps) { for (let i = 0; i < this._depsLength; i++) {
const dep = this.deps[i];
if (dep.computed) { if (dep.computed) {
triggerComputed(dep.computed); triggerComputed(dep.computed);
if (this._dirtyLevel >= 2) { if (this._dirtyLevel >= 2) {
@ -147,13 +151,15 @@ class ReactiveEffect {
} }
} }
} }
if (this._dirtyLevel < 2) {
this._dirtyLevel = 0;
}
resetTracking(); resetTracking();
this._queryings--;
} }
return this._dirtyLevel >= 2; return this._dirtyLevel >= 2;
} }
set dirty(v) { set dirty(v) {
this._dirtyLevel = v ? 3 : 0; this._dirtyLevel = v ? 2 : 0;
} }
run() { run() {
this._dirtyLevel = 0; this._dirtyLevel = 0;
@ -280,25 +286,29 @@ function triggerEffects(dep, dirtyLevel, debuggerEventExtraInfo) {
var _a; var _a;
pauseScheduling(); pauseScheduling();
for (const effect2 of dep.keys()) { for (const effect2 of dep.keys()) {
if (!effect2.allowRecurse && effect2._runnings) { if (effect2._dirtyLevel < dirtyLevel && dep.get(effect2) === effect2._trackId) {
continue;
}
if (effect2._dirtyLevel < dirtyLevel && (!effect2._runnings || dirtyLevel !== 2)) {
const lastDirtyLevel = effect2._dirtyLevel; const lastDirtyLevel = effect2._dirtyLevel;
effect2._dirtyLevel = dirtyLevel; effect2._dirtyLevel = dirtyLevel;
if (lastDirtyLevel === 0 && (!effect2._queryings || dirtyLevel !== 2)) { if (lastDirtyLevel === 0) {
effect2._shouldSchedule = true;
if (!!(process.env.NODE_ENV !== "production")) { if (!!(process.env.NODE_ENV !== "production")) {
(_a = effect2.onTrigger) == null ? void 0 : _a.call(effect2, extend({ effect: effect2 }, debuggerEventExtraInfo)); (_a = effect2.onTrigger) == null ? void 0 : _a.call(effect2, extend({ effect: effect2 }, debuggerEventExtraInfo));
} }
effect2.trigger(); effect2.trigger();
if (effect2.scheduler) {
queueEffectSchedulers.push(effect2.scheduler);
}
} }
} }
} }
scheduleEffects(dep);
resetScheduling(); resetScheduling();
} }
function scheduleEffects(dep) {
for (const effect2 of dep.keys()) {
if (effect2.scheduler && effect2._shouldSchedule && (!effect2._runnings || effect2.allowRecurse) && dep.get(effect2) === effect2._trackId) {
effect2._shouldSchedule = false;
queueEffectSchedulers.push(effect2.scheduler);
}
}
}
const createDep = (cleanup, computed) => { const createDep = (cleanup, computed) => {
const dep = /* @__PURE__ */ new Map(); const dep = /* @__PURE__ */ new Map();
@ -381,7 +391,7 @@ function trigger(target, type, key, newValue, oldValue, oldTarget) {
if (dep) { if (dep) {
triggerEffects( triggerEffects(
dep, dep,
3, 2,
!!(process.env.NODE_ENV !== "production") ? { !!(process.env.NODE_ENV !== "production") ? {
target, target,
type, type,
@ -980,7 +990,8 @@ class ComputedRefImpl {
this["__v_isReadonly"] = false; this["__v_isReadonly"] = false;
this.effect = new ReactiveEffect( this.effect = new ReactiveEffect(
() => getter(this._value), () => getter(this._value),
() => triggerRefValue(this, 1) () => triggerRefValue(this, 1),
() => this.dep && scheduleEffects(this.dep)
); );
this.effect.computed = this; this.effect.computed = this;
this.effect.active = this._cacheable = !isSSR; this.effect.active = this._cacheable = !isSSR;
@ -988,12 +999,15 @@ class ComputedRefImpl {
} }
get value() { get value() {
const self = toRaw(this); const self = toRaw(this);
trackRefValue(self);
if (!self._cacheable || self.effect.dirty) { if (!self._cacheable || self.effect.dirty) {
if (hasChanged(self._value, self._value = self.effect.run())) { if (hasChanged(self._value, self._value = self.effect.run())) {
triggerRefValue(self, 2); triggerRefValue(self, 2);
} }
} }
trackRefValue(self);
if (self.effect._dirtyLevel >= 1) {
triggerRefValue(self, 1);
}
return self._value; return self._value;
} }
set value(newValue) { set value(newValue) {
@ -1046,7 +1060,7 @@ function trackRefValue(ref2) {
); );
} }
} }
function triggerRefValue(ref2, dirtyLevel = 3, newVal) { function triggerRefValue(ref2, dirtyLevel = 2, newVal) {
ref2 = toRaw(ref2); ref2 = toRaw(ref2);
const dep = ref2.dep; const dep = ref2.dep;
if (dep) { if (dep) {
@ -1095,12 +1109,12 @@ class RefImpl {
if (hasChanged(newVal, this._rawValue)) { if (hasChanged(newVal, this._rawValue)) {
this._rawValue = newVal; this._rawValue = newVal;
this._value = useDirectValue ? newVal : toReactive(newVal); this._value = useDirectValue ? newVal : toReactive(newVal);
triggerRefValue(this, 3, newVal); triggerRefValue(this, 2, newVal);
} }
} }
} }
function triggerRef(ref2) { function triggerRef(ref2) {
triggerRefValue(ref2, 3, !!(process.env.NODE_ENV !== "production") ? ref2.value : void 0); triggerRefValue(ref2, 2, !!(process.env.NODE_ENV !== "production") ? ref2.value : void 0);
} }
function unref(ref2) { function unref(ref2) {
return isRef(ref2) ? ref2.value : ref2; return isRef(ref2) ? ref2.value : ref2;

View file

@ -1,3 +1,8 @@
/**
* @vue/reactivity v3.4.15
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/
var VueReactivity = (function (exports) { var VueReactivity = (function (exports) {
'use strict'; 'use strict';
@ -157,7 +162,7 @@ var VueReactivity = (function (exports) {
/** /**
* @internal * @internal
*/ */
this._dirtyLevel = 3; this._dirtyLevel = 2;
/** /**
* @internal * @internal
*/ */
@ -169,7 +174,7 @@ var VueReactivity = (function (exports) {
/** /**
* @internal * @internal
*/ */
this._queryings = 0; this._shouldSchedule = false;
/** /**
* @internal * @internal
*/ */
@ -178,10 +183,9 @@ var VueReactivity = (function (exports) {
} }
get dirty() { get dirty() {
if (this._dirtyLevel === 1) { if (this._dirtyLevel === 1) {
this._dirtyLevel = 0;
this._queryings++;
pauseTracking(); pauseTracking();
for (const dep of this.deps) { for (let i = 0; i < this._depsLength; i++) {
const dep = this.deps[i];
if (dep.computed) { if (dep.computed) {
triggerComputed(dep.computed); triggerComputed(dep.computed);
if (this._dirtyLevel >= 2) { if (this._dirtyLevel >= 2) {
@ -189,13 +193,15 @@ var VueReactivity = (function (exports) {
} }
} }
} }
if (this._dirtyLevel < 2) {
this._dirtyLevel = 0;
}
resetTracking(); resetTracking();
this._queryings--;
} }
return this._dirtyLevel >= 2; return this._dirtyLevel >= 2;
} }
set dirty(v) { set dirty(v) {
this._dirtyLevel = v ? 3 : 0; this._dirtyLevel = v ? 2 : 0;
} }
run() { run() {
this._dirtyLevel = 0; this._dirtyLevel = 0;
@ -322,25 +328,29 @@ var VueReactivity = (function (exports) {
var _a; var _a;
pauseScheduling(); pauseScheduling();
for (const effect2 of dep.keys()) { for (const effect2 of dep.keys()) {
if (!effect2.allowRecurse && effect2._runnings) { if (effect2._dirtyLevel < dirtyLevel && dep.get(effect2) === effect2._trackId) {
continue;
}
if (effect2._dirtyLevel < dirtyLevel && (!effect2._runnings || dirtyLevel !== 2)) {
const lastDirtyLevel = effect2._dirtyLevel; const lastDirtyLevel = effect2._dirtyLevel;
effect2._dirtyLevel = dirtyLevel; effect2._dirtyLevel = dirtyLevel;
if (lastDirtyLevel === 0 && (!effect2._queryings || dirtyLevel !== 2)) { if (lastDirtyLevel === 0) {
effect2._shouldSchedule = true;
{ {
(_a = effect2.onTrigger) == null ? void 0 : _a.call(effect2, extend({ effect: effect2 }, debuggerEventExtraInfo)); (_a = effect2.onTrigger) == null ? void 0 : _a.call(effect2, extend({ effect: effect2 }, debuggerEventExtraInfo));
} }
effect2.trigger(); effect2.trigger();
if (effect2.scheduler) {
queueEffectSchedulers.push(effect2.scheduler);
}
} }
} }
} }
scheduleEffects(dep);
resetScheduling(); resetScheduling();
} }
function scheduleEffects(dep) {
for (const effect2 of dep.keys()) {
if (effect2.scheduler && effect2._shouldSchedule && (!effect2._runnings || effect2.allowRecurse) && dep.get(effect2) === effect2._trackId) {
effect2._shouldSchedule = false;
queueEffectSchedulers.push(effect2.scheduler);
}
}
}
const createDep = (cleanup, computed) => { const createDep = (cleanup, computed) => {
const dep = /* @__PURE__ */ new Map(); const dep = /* @__PURE__ */ new Map();
@ -423,7 +433,7 @@ var VueReactivity = (function (exports) {
if (dep) { if (dep) {
triggerEffects( triggerEffects(
dep, dep,
3, 2,
{ {
target, target,
type, type,
@ -1022,7 +1032,8 @@ var VueReactivity = (function (exports) {
this["__v_isReadonly"] = false; this["__v_isReadonly"] = false;
this.effect = new ReactiveEffect( this.effect = new ReactiveEffect(
() => getter(this._value), () => getter(this._value),
() => triggerRefValue(this, 1) () => triggerRefValue(this, 1),
() => this.dep && scheduleEffects(this.dep)
); );
this.effect.computed = this; this.effect.computed = this;
this.effect.active = this._cacheable = !isSSR; this.effect.active = this._cacheable = !isSSR;
@ -1030,12 +1041,15 @@ var VueReactivity = (function (exports) {
} }
get value() { get value() {
const self = toRaw(this); const self = toRaw(this);
trackRefValue(self);
if (!self._cacheable || self.effect.dirty) { if (!self._cacheable || self.effect.dirty) {
if (hasChanged(self._value, self._value = self.effect.run())) { if (hasChanged(self._value, self._value = self.effect.run())) {
triggerRefValue(self, 2); triggerRefValue(self, 2);
} }
} }
trackRefValue(self);
if (self.effect._dirtyLevel >= 1) {
triggerRefValue(self, 1);
}
return self._value; return self._value;
} }
set value(newValue) { set value(newValue) {
@ -1088,7 +1102,7 @@ var VueReactivity = (function (exports) {
); );
} }
} }
function triggerRefValue(ref2, dirtyLevel = 3, newVal) { function triggerRefValue(ref2, dirtyLevel = 2, newVal) {
ref2 = toRaw(ref2); ref2 = toRaw(ref2);
const dep = ref2.dep; const dep = ref2.dep;
if (dep) { if (dep) {
@ -1137,12 +1151,12 @@ var VueReactivity = (function (exports) {
if (hasChanged(newVal, this._rawValue)) { if (hasChanged(newVal, this._rawValue)) {
this._rawValue = newVal; this._rawValue = newVal;
this._value = useDirectValue ? newVal : toReactive(newVal); this._value = useDirectValue ? newVal : toReactive(newVal);
triggerRefValue(this, 3, newVal); triggerRefValue(this, 2, newVal);
} }
} }
} }
function triggerRef(ref2) { function triggerRef(ref2) {
triggerRefValue(ref2, 3, ref2.value ); triggerRefValue(ref2, 2, ref2.value );
} }
function unref(ref2) { function unref(ref2) {
return isRef(ref2) ? ref2.value : ref2; return isRef(ref2) ? ref2.value : ref2;

File diff suppressed because one or more lines are too long

View file

@ -1,6 +1,6 @@
{ {
"name": "@vue/reactivity", "name": "@vue/reactivity",
"version": "3.4.5", "version": "3.4.15",
"description": "@vue/reactivity", "description": "@vue/reactivity",
"main": "index.js", "main": "index.js",
"module": "dist/reactivity.esm-bundler.js", "module": "dist/reactivity.esm-bundler.js",
@ -19,6 +19,7 @@
"development": "./dist/reactivity.cjs.js", "development": "./dist/reactivity.cjs.js",
"default": "./index.js" "default": "./index.js"
}, },
"module": "./dist/reactivity.esm-bundler.js",
"import": "./dist/reactivity.esm-bundler.js", "import": "./dist/reactivity.esm-bundler.js",
"require": "./index.js" "require": "./index.js"
}, },
@ -49,6 +50,6 @@
}, },
"homepage": "https://github.com/vuejs/core/tree/main/packages/reactivity#readme", "homepage": "https://github.com/vuejs/core/tree/main/packages/reactivity#readme",
"dependencies": { "dependencies": {
"@vue/shared": "3.4.5" "@vue/shared": "3.4.15"
} }
} }

View file

@ -1,3 +1,8 @@
/**
* @vue/runtime-core v3.4.15
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/
'use strict'; 'use strict';
Object.defineProperty(exports, '__esModule', { value: true }); Object.defineProperty(exports, '__esModule', { value: true });
@ -343,7 +348,9 @@ function flushPreFlushCbs(instance, seen, i = isFlushing ? flushIndex + 1 : 0) {
} }
function flushPostFlushCbs(seen) { function flushPostFlushCbs(seen) {
if (pendingPostFlushCbs.length) { if (pendingPostFlushCbs.length) {
const deduped = [...new Set(pendingPostFlushCbs)]; const deduped = [...new Set(pendingPostFlushCbs)].sort(
(a, b) => getId(a) - getId(b)
);
pendingPostFlushCbs.length = 0; pendingPostFlushCbs.length = 0;
if (activePostFlushCbs) { if (activePostFlushCbs) {
activePostFlushCbs.push(...deduped); activePostFlushCbs.push(...deduped);
@ -353,7 +360,6 @@ function flushPostFlushCbs(seen) {
{ {
seen = seen || /* @__PURE__ */ new Map(); seen = seen || /* @__PURE__ */ new Map();
} }
activePostFlushCbs.sort((a, b) => getId(a) - getId(b));
for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) { for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) {
if (checkRecursiveUpdates(seen, activePostFlushCbs[postFlushIndex])) { if (checkRecursiveUpdates(seen, activePostFlushCbs[postFlushIndex])) {
continue; continue;
@ -977,9 +983,11 @@ function renderComponentRoot(instance) {
const getChildRoot = (vnode) => { const getChildRoot = (vnode) => {
const rawChildren = vnode.children; const rawChildren = vnode.children;
const dynamicChildren = vnode.dynamicChildren; const dynamicChildren = vnode.dynamicChildren;
const childRoot = filterSingleRoot(rawChildren); const childRoot = filterSingleRoot(rawChildren, false);
if (!childRoot) { if (!childRoot) {
return [vnode, void 0]; return [vnode, void 0];
} else if (childRoot.patchFlag > 0 && childRoot.patchFlag & 2048) {
return getChildRoot(childRoot);
} }
const index = rawChildren.indexOf(childRoot); const index = rawChildren.indexOf(childRoot);
const dynamicIndex = dynamicChildren ? dynamicChildren.indexOf(childRoot) : -1; const dynamicIndex = dynamicChildren ? dynamicChildren.indexOf(childRoot) : -1;
@ -995,7 +1003,7 @@ const getChildRoot = (vnode) => {
}; };
return [normalizeVNode(childRoot), setRoot]; return [normalizeVNode(childRoot), setRoot];
}; };
function filterSingleRoot(children) { function filterSingleRoot(children, recurse = true) {
let singleRoot; let singleRoot;
for (let i = 0; i < children.length; i++) { for (let i = 0; i < children.length; i++) {
const child = children[i]; const child = children[i];
@ -1005,6 +1013,9 @@ function filterSingleRoot(children) {
return; return;
} else { } else {
singleRoot = child; singleRoot = child;
if (recurse && singleRoot.patchFlag > 0 && singleRoot.patchFlag & 2048) {
return filterSingleRoot(singleRoot.children);
}
} }
} }
} else { } else {
@ -1095,8 +1106,6 @@ function hasPropsChanged(prevProps, nextProps, emitsOptions) {
return false; return false;
} }
function updateHOCHostEl({ vnode, parent }, el) { function updateHOCHostEl({ vnode, parent }, el) {
if (!el)
return;
while (parent) { while (parent) {
const root = parent.subTree; const root = parent.subTree;
if (root.suspense && root.suspense.activeBranch === vnode) { if (root.suspense && root.suspense.activeBranch === vnode) {
@ -1188,6 +1197,10 @@ const SuspenseImpl = {
rendererInternals rendererInternals
); );
} else { } else {
if (parentSuspense && parentSuspense.deps > 0) {
n2.suspense = n1.suspense;
return;
}
patchSuspense( patchSuspense(
n1, n1,
n2, n2,
@ -1446,6 +1459,7 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
{ {
assertNumber(timeout, `Suspense timeout`); assertNumber(timeout, `Suspense timeout`);
} }
const initialAnchor = anchor;
const suspense = { const suspense = {
vnode, vnode,
parent: parentSuspense, parent: parentSuspense,
@ -1453,7 +1467,6 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
namespace, namespace,
container, container,
hiddenContainer, hiddenContainer,
anchor,
deps: 0, deps: 0,
pendingId: suspenseId++, pendingId: suspenseId++,
timeout: typeof timeout === "number" ? timeout : -1, timeout: typeof timeout === "number" ? timeout : -1,
@ -1496,20 +1509,21 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
move( move(
pendingBranch, pendingBranch,
container2, container2,
next(activeBranch), anchor === initialAnchor ? next(activeBranch) : anchor,
0 0
); );
queuePostFlushCb(effects); queuePostFlushCb(effects);
} }
}; };
} }
let { anchor: anchor2 } = suspense;
if (activeBranch) { if (activeBranch) {
anchor2 = next(activeBranch); if (parentNode(activeBranch.el) !== suspense.hiddenContainer) {
anchor = next(activeBranch);
}
unmount(activeBranch, parentComponent2, suspense, true); unmount(activeBranch, parentComponent2, suspense, true);
} }
if (!delayEnter) { if (!delayEnter) {
move(pendingBranch, container2, anchor2, 0); move(pendingBranch, container2, anchor, 0);
} }
} }
setActiveBranch(suspense, pendingBranch); setActiveBranch(suspense, pendingBranch);
@ -1736,7 +1750,12 @@ function queueEffectWithSuspense(fn, suspense) {
function setActiveBranch(suspense, branch) { function setActiveBranch(suspense, branch) {
suspense.activeBranch = branch; suspense.activeBranch = branch;
const { vnode, parentComponent } = suspense; const { vnode, parentComponent } = suspense;
const el = vnode.el = branch.el; let el = branch.el;
while (!el && branch.component) {
branch = branch.component.subTree;
el = branch.el;
}
vnode.el = el;
if (parentComponent && parentComponent.subTree === vnode) { if (parentComponent && parentComponent.subTree === vnode) {
parentComponent.vnode.el = el; parentComponent.vnode.el = el;
updateHOCHostEl(parentComponent, el); updateHOCHostEl(parentComponent, el);
@ -1983,14 +2002,9 @@ function instanceWatch(source, value, options) {
cb = value.handler; cb = value.handler;
options = value; options = value;
} }
const cur = currentInstance; const reset = setCurrentInstance(this);
setCurrentInstance(this);
const res = doWatch(getter, cb.bind(publicThis), options); const res = doWatch(getter, cb.bind(publicThis), options);
if (cur) { reset();
setCurrentInstance(cur);
} else {
unsetCurrentInstance();
}
return res; return res;
} }
function createPathGetter(ctx, path) { function createPathGetter(ctx, path) {
@ -2042,12 +2056,11 @@ function validateDirectiveName(name) {
} }
} }
function withDirectives(vnode, directives) { function withDirectives(vnode, directives) {
const internalInstance = currentRenderingInstance; if (currentRenderingInstance === null) {
if (internalInstance === null) {
warn$1(`withDirectives can only be used inside render functions.`); warn$1(`withDirectives can only be used inside render functions.`);
return vnode; return vnode;
} }
const instance = getExposeProxy(internalInstance) || internalInstance.proxy; const instance = getExposeProxy(currentRenderingInstance) || currentRenderingInstance.proxy;
const bindings = vnode.dirs || (vnode.dirs = []); const bindings = vnode.dirs || (vnode.dirs = []);
for (let i = 0; i < directives.length; i++) { for (let i = 0; i < directives.length; i++) {
let [dir, value, arg, modifiers = shared.EMPTY_OBJ] = directives[i]; let [dir, value, arg, modifiers = shared.EMPTY_OBJ] = directives[i];
@ -2833,9 +2846,9 @@ function injectHook(type, hook, target = currentInstance, prepend = false) {
return; return;
} }
reactivity.pauseTracking(); reactivity.pauseTracking();
setCurrentInstance(target); const reset = setCurrentInstance(target);
const res = callWithAsyncErrorHandling(hook, target, type, args); const res = callWithAsyncErrorHandling(hook, target, type, args);
unsetCurrentInstance(); reset();
reactivity.resetTracking(); reactivity.resetTracking();
return res; return res;
}); });
@ -3288,58 +3301,6 @@ function useSlots() {
function useAttrs() { function useAttrs() {
return getContext().attrs; return getContext().attrs;
} }
function useModel(props, name, options = shared.EMPTY_OBJ) {
const i = getCurrentInstance();
if (!i) {
warn$1(`useModel() called without active instance.`);
return reactivity.ref();
}
if (!i.propsOptions[0][name]) {
warn$1(`useModel() called with prop "${name}" which is not declared.`);
return reactivity.ref();
}
const camelizedName = shared.camelize(name);
const hyphenatedName = shared.hyphenate(name);
const res = reactivity.customRef((track, trigger) => {
let localValue;
watchSyncEffect(() => {
const propValue = props[name];
if (shared.hasChanged(localValue, propValue)) {
localValue = propValue;
trigger();
}
});
return {
get() {
track();
return options.get ? options.get(localValue) : localValue;
},
set(value) {
const rawProps = i.vnode.props;
if (!(rawProps && // check if parent has passed v-model
(name in rawProps || camelizedName in rawProps || hyphenatedName in rawProps) && (`onUpdate:${name}` in rawProps || `onUpdate:${camelizedName}` in rawProps || `onUpdate:${hyphenatedName}` in rawProps)) && shared.hasChanged(value, localValue)) {
localValue = value;
trigger();
}
i.emit(`update:${name}`, options.set ? options.set(value) : value);
}
};
});
const modifierKey = name === "modelValue" ? "modelModifiers" : `${name}Modifiers`;
res[Symbol.iterator] = () => {
let i2 = 0;
return {
next() {
if (i2 < 2) {
return { value: i2++ ? props[modifierKey] || {} : res, done: false };
} else {
return { done: true };
}
}
};
};
return res;
}
function getContext() { function getContext() {
const i = getCurrentInstance(); const i = getCurrentInstance();
if (!i) { if (!i) {
@ -4220,12 +4181,12 @@ function resolvePropValue(options, props, key, value, instance, isAbsent) {
if (key in propsDefaults) { if (key in propsDefaults) {
value = propsDefaults[key]; value = propsDefaults[key];
} else { } else {
setCurrentInstance(instance); const reset = setCurrentInstance(instance);
value = propsDefaults[key] = defaultValue.call( value = propsDefaults[key] = defaultValue.call(
null, null,
props props
); );
unsetCurrentInstance(); reset();
} }
} else { } else {
value = defaultValue; value = defaultValue;
@ -4446,7 +4407,7 @@ const normalizeSlot = (key, rawSlot, ctx) => {
return rawSlot; return rawSlot;
} }
const normalized = withCtx((...args) => { const normalized = withCtx((...args) => {
if (currentInstance) { if (currentInstance && (!ctx || ctx.root === currentInstance.root)) {
warn$1( 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.` `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.`
); );
@ -4582,9 +4543,10 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
} else { } else {
const _isString = shared.isString(ref); const _isString = shared.isString(ref);
const _isRef = reactivity.isRef(ref); const _isRef = reactivity.isRef(ref);
const isVFor = rawRef.f;
if (_isString || _isRef) { if (_isString || _isRef) {
const doSet = () => { const doSet = () => {
if (rawRef.f) { if (isVFor) {
const existing = _isString ? shared.hasOwn(setupState, ref) ? setupState[ref] : refs[ref] : ref.value; const existing = _isString ? shared.hasOwn(setupState, ref) ? setupState[ref] : refs[ref] : ref.value;
if (isUnmount) { if (isUnmount) {
shared.isArray(existing) && shared.remove(existing, refValue); shared.isArray(existing) && shared.remove(existing, refValue);
@ -4617,11 +4579,11 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
warn$1("Invalid template ref type:", ref, `(${typeof ref})`); warn$1("Invalid template ref type:", ref, `(${typeof ref})`);
} }
}; };
if (value) { if (isUnmount || isVFor) {
doSet();
} else {
doSet.id = -1; doSet.id = -1;
queuePostRenderEffect(doSet, parentSuspense); queuePostRenderEffect(doSet, parentSuspense);
} else {
doSet();
} }
} else { } else {
warn$1("Invalid template ref type:", ref, `(${typeof ref})`); warn$1("Invalid template ref type:", ref, `(${typeof ref})`);
@ -4920,7 +4882,7 @@ Server rendered element contains more child nodes than client vdom.`
if (props) { if (props) {
{ {
for (const key in props) { for (const key in props) {
if (propHasMismatch(el, key, props[key])) { if (propHasMismatch(el, key, props[key], vnode)) {
hasMismatch = true; hasMismatch = true;
} }
if (forcePatch && (key.endsWith("value") || key === "indeterminate") || shared.isOn(key) && !shared.isReservedProp(key) || // force hydrate v-bind with .prop modifiers if (forcePatch && (key.endsWith("value") || key === "indeterminate") || shared.isOn(key) && !shared.isReservedProp(key) || // force hydrate v-bind with .prop modifiers
@ -5095,26 +5057,49 @@ Server rendered element contains fewer child nodes than client vdom.`
}; };
return [hydrate, hydrateNode]; return [hydrate, hydrateNode];
} }
function propHasMismatch(el, key, clientValue) { function propHasMismatch(el, key, clientValue, vnode) {
let mismatchType; let mismatchType;
let mismatchKey; let mismatchKey;
let actual; let actual;
let expected; let expected;
if (key === "class") { if (key === "class") {
actual = toClassSet(el.getAttribute("class") || ""); actual = el.getAttribute("class");
expected = toClassSet(shared.normalizeClass(clientValue)); expected = shared.normalizeClass(clientValue);
if (!isSetEqual(actual, expected)) { if (!isSetEqual(toClassSet(actual || ""), toClassSet(expected))) {
mismatchType = mismatchKey = `class`; mismatchType = mismatchKey = `class`;
} }
} else if (key === "style") { } else if (key === "style") {
actual = el.getAttribute("style"); actual = el.getAttribute("style");
expected = shared.isString(clientValue) ? clientValue : shared.stringifyStyle(shared.normalizeStyle(clientValue)); expected = shared.isString(clientValue) ? clientValue : shared.stringifyStyle(shared.normalizeStyle(clientValue));
if (actual !== expected) { const actualMap = toStyleMap(actual);
const expectedMap = toStyleMap(expected);
if (vnode.dirs) {
for (const { dir, value } of vnode.dirs) {
if (dir.name === "show" && !value) {
expectedMap.set("display", "none");
}
}
}
if (!isMapEqual(actualMap, expectedMap)) {
mismatchType = mismatchKey = "style"; mismatchType = mismatchKey = "style";
} }
} else if (el instanceof SVGElement && shared.isKnownSvgAttr(key) || el instanceof HTMLElement && (shared.isBooleanAttr(key) || shared.isKnownHtmlAttr(key))) { } else if (el instanceof SVGElement && shared.isKnownSvgAttr(key) || el instanceof HTMLElement && (shared.isBooleanAttr(key) || shared.isKnownHtmlAttr(key))) {
actual = el.hasAttribute(key) && el.getAttribute(key); if (shared.isBooleanAttr(key)) {
expected = shared.isBooleanAttr(key) ? shared.includeBooleanAttr(clientValue) ? "" : false : clientValue == null ? false : String(clientValue); actual = el.hasAttribute(key);
expected = shared.includeBooleanAttr(clientValue);
} else if (clientValue == null) {
actual = el.hasAttribute(key);
expected = false;
} else {
if (el.hasAttribute(key)) {
actual = el.getAttribute(key);
} else if (key === "value" && el.tagName === "TEXTAREA") {
actual = el.value;
} else {
actual = false;
}
expected = shared.isRenderableAttrValue(clientValue) ? String(clientValue) : false;
}
if (actual !== expected) { if (actual !== expected) {
mismatchType = `attribute`; mismatchType = `attribute`;
mismatchKey = key; mismatchKey = key;
@ -5122,15 +5107,15 @@ function propHasMismatch(el, key, clientValue) {
} }
if (mismatchType) { if (mismatchType) {
const format = (v) => v === false ? `(not rendered)` : `${mismatchKey}="${v}"`; const format = (v) => v === false ? `(not rendered)` : `${mismatchKey}="${v}"`;
warn$1( const preSegment = `Hydration ${mismatchType} mismatch on`;
`Hydration ${mismatchType} mismatch on`, const postSegment = `
el,
`
- rendered on server: ${format(actual)} - rendered on server: ${format(actual)}
- expected on client: ${format(expected)} - expected on client: ${format(expected)}
Note: this mismatch is check-only. The DOM will not be rectified in production due to performance overhead. Note: this mismatch is check-only. The DOM will not be rectified in production due to performance overhead.
You should fix the source of the mismatch.` You should fix the source of the mismatch.`;
); {
warn$1(preSegment, el, postSegment);
}
return true; return true;
} }
return false; return false;
@ -5149,6 +5134,29 @@ function isSetEqual(a, b) {
} }
return true; return true;
} }
function toStyleMap(str) {
const styleMap = /* @__PURE__ */ new Map();
for (const item of str.split(";")) {
let [key, value] = item.split(":");
key = key == null ? void 0 : key.trim();
value = value == null ? void 0 : value.trim();
if (key && value) {
styleMap.set(key, value);
}
}
return styleMap;
}
function isMapEqual(a, b) {
if (a.size !== b.size) {
return false;
}
for (const [key, value] of a) {
if (value !== b.get(key)) {
return false;
}
}
return true;
}
let supported; let supported;
let perf; let perf;
@ -5737,7 +5745,11 @@ function baseCreateRenderer(options, createHydrationFns) {
hostInsert(fragmentStartAnchor, container, anchor); hostInsert(fragmentStartAnchor, container, anchor);
hostInsert(fragmentEndAnchor, container, anchor); hostInsert(fragmentEndAnchor, container, anchor);
mountChildren( mountChildren(
n2.children, // #10007
// such fragment like `<></>` will be compiled into
// a fragment which doesn't have a children.
// In this case fallback to an empty array
n2.children || [],
container, container,
fragmentEndAnchor, fragmentEndAnchor,
parentComponent, parentComponent,
@ -6571,6 +6583,7 @@ function baseCreateRenderer(options, createHydrationFns) {
} }
return hostNextSibling(vnode.anchor || vnode.el); return hostNextSibling(vnode.anchor || vnode.el);
}; };
let isFlushing = false;
const render = (vnode, container, namespace) => { const render = (vnode, container, namespace) => {
if (vnode == null) { if (vnode == null) {
if (container._vnode) { if (container._vnode) {
@ -6587,8 +6600,12 @@ function baseCreateRenderer(options, createHydrationFns) {
namespace namespace
); );
} }
flushPreFlushCbs(); if (!isFlushing) {
flushPostFlushCbs(); isFlushing = true;
flushPreFlushCbs();
flushPostFlushCbs();
isFlushing = false;
}
container._vnode = vnode; container._vnode = vnode;
}; };
const internals = { const internals = {
@ -7458,8 +7475,13 @@ let setInSSRSetupState;
); );
} }
const setCurrentInstance = (instance) => { const setCurrentInstance = (instance) => {
const prev = currentInstance;
internalSetCurrentInstance(instance); internalSetCurrentInstance(instance);
instance.scope.on(); instance.scope.on();
return () => {
instance.scope.off();
internalSetCurrentInstance(prev);
};
}; };
const unsetCurrentInstance = () => { const unsetCurrentInstance = () => {
currentInstance && currentInstance.scope.off(); currentInstance && currentInstance.scope.off();
@ -7521,7 +7543,7 @@ function setupStatefulComponent(instance, isSSR) {
const { setup } = Component; const { setup } = Component;
if (setup) { if (setup) {
const setupContext = instance.setupContext = setup.length > 1 ? createSetupContext(instance) : null; const setupContext = instance.setupContext = setup.length > 1 ? createSetupContext(instance) : null;
setCurrentInstance(instance); const reset = setCurrentInstance(instance);
reactivity.pauseTracking(); reactivity.pauseTracking();
const setupResult = callWithErrorHandling( const setupResult = callWithErrorHandling(
setup, setup,
@ -7533,7 +7555,7 @@ function setupStatefulComponent(instance, isSSR) {
] ]
); );
reactivity.resetTracking(); reactivity.resetTracking();
unsetCurrentInstance(); reset();
if (shared.isPromise(setupResult)) { if (shared.isPromise(setupResult)) {
setupResult.then(unsetCurrentInstance, unsetCurrentInstance); setupResult.then(unsetCurrentInstance, unsetCurrentInstance);
if (isSSR) { if (isSSR) {
@ -7629,13 +7651,13 @@ function finishComponentSetup(instance, isSSR, skipOptions) {
} }
} }
{ {
setCurrentInstance(instance); const reset = setCurrentInstance(instance);
reactivity.pauseTracking(); reactivity.pauseTracking();
try { try {
applyOptions(instance); applyOptions(instance);
} finally { } finally {
reactivity.resetTracking(); reactivity.resetTracking();
unsetCurrentInstance(); reset();
} }
} }
if (!Component.render && instance.render === shared.NOOP && !isSSR) { if (!Component.render && instance.render === shared.NOOP && !isSSR) {
@ -7766,6 +7788,59 @@ const computed = (getterOrOptions, debugOptions) => {
return reactivity.computed(getterOrOptions, debugOptions, isInSSRComponentSetup); return reactivity.computed(getterOrOptions, debugOptions, isInSSRComponentSetup);
}; };
function useModel(props, name, options = shared.EMPTY_OBJ) {
const i = getCurrentInstance();
if (!i) {
warn$1(`useModel() called without active instance.`);
return reactivity.ref();
}
if (!i.propsOptions[0][name]) {
warn$1(`useModel() called with prop "${name}" which is not declared.`);
return reactivity.ref();
}
const camelizedName = shared.camelize(name);
const hyphenatedName = shared.hyphenate(name);
const res = reactivity.customRef((track, trigger) => {
let localValue;
watchSyncEffect(() => {
const propValue = props[name];
if (shared.hasChanged(localValue, propValue)) {
localValue = propValue;
trigger();
}
});
return {
get() {
track();
return options.get ? options.get(localValue) : localValue;
},
set(value) {
const rawProps = i.vnode.props;
if (!(rawProps && // check if parent has passed v-model
(name in rawProps || camelizedName in rawProps || hyphenatedName in rawProps) && (`onUpdate:${name}` in rawProps || `onUpdate:${camelizedName}` in rawProps || `onUpdate:${hyphenatedName}` in rawProps)) && shared.hasChanged(value, localValue)) {
localValue = value;
trigger();
}
i.emit(`update:${name}`, options.set ? options.set(value) : value);
}
};
});
const modifierKey = name === "modelValue" ? "modelModifiers" : `${name}Modifiers`;
res[Symbol.iterator] = () => {
let i2 = 0;
return {
next() {
if (i2 < 2) {
return { value: i2++ ? props[modifierKey] || {} : res, done: false };
} else {
return { done: true };
}
}
};
};
return res;
}
function h(type, propsOrChildren, children) { function h(type, propsOrChildren, children) {
const l = arguments.length; const l = arguments.length;
if (l === 2) { if (l === 2) {
@ -7992,7 +8067,7 @@ function isMemoSame(cached, memo) {
return true; return true;
} }
const version = "3.4.5"; const version = "3.4.15";
const warn = warn$1 ; const warn = warn$1 ;
const ErrorTypeStrings = ErrorTypeStrings$1 ; const ErrorTypeStrings = ErrorTypeStrings$1 ;
const devtools = devtools$1 ; const devtools = devtools$1 ;

View file

@ -1,3 +1,8 @@
/**
* @vue/runtime-core v3.4.15
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/
'use strict'; 'use strict';
Object.defineProperty(exports, '__esModule', { value: true }); Object.defineProperty(exports, '__esModule', { value: true });
@ -102,7 +107,7 @@ function handleError(err, instance, type, throwInDev = true) {
if (instance) { if (instance) {
let cur = instance.parent; let cur = instance.parent;
const exposedInstance = instance.proxy; const exposedInstance = instance.proxy;
const errorInfo = `https://vuejs.org/errors/#runtime-${type}`; const errorInfo = `https://vuejs.org/error-reference/#runtime-${type}`;
while (cur) { while (cur) {
const errorCapturedHooks = cur.ec; const errorCapturedHooks = cur.ec;
if (errorCapturedHooks) { if (errorCapturedHooks) {
@ -214,14 +219,15 @@ function flushPreFlushCbs(instance, seen, i = isFlushing ? flushIndex + 1 : 0) {
} }
function flushPostFlushCbs(seen) { function flushPostFlushCbs(seen) {
if (pendingPostFlushCbs.length) { if (pendingPostFlushCbs.length) {
const deduped = [...new Set(pendingPostFlushCbs)]; const deduped = [...new Set(pendingPostFlushCbs)].sort(
(a, b) => getId(a) - getId(b)
);
pendingPostFlushCbs.length = 0; pendingPostFlushCbs.length = 0;
if (activePostFlushCbs) { if (activePostFlushCbs) {
activePostFlushCbs.push(...deduped); activePostFlushCbs.push(...deduped);
return; return;
} }
activePostFlushCbs = deduped; activePostFlushCbs = deduped;
activePostFlushCbs.sort((a, b) => getId(a) - getId(b));
for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) { for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) {
activePostFlushCbs[postFlushIndex](); activePostFlushCbs[postFlushIndex]();
} }
@ -509,7 +515,7 @@ function renderComponentRoot(instance) {
setCurrentRenderingInstance(prev); setCurrentRenderingInstance(prev);
return result; return result;
} }
function filterSingleRoot(children) { function filterSingleRoot(children, recurse = true) {
let singleRoot; let singleRoot;
for (let i = 0; i < children.length; i++) { for (let i = 0; i < children.length; i++) {
const child = children[i]; const child = children[i];
@ -603,8 +609,6 @@ function hasPropsChanged(prevProps, nextProps, emitsOptions) {
return false; return false;
} }
function updateHOCHostEl({ vnode, parent }, el) { function updateHOCHostEl({ vnode, parent }, el) {
if (!el)
return;
while (parent) { while (parent) {
const root = parent.subTree; const root = parent.subTree;
if (root.suspense && root.suspense.activeBranch === vnode) { if (root.suspense && root.suspense.activeBranch === vnode) {
@ -687,6 +691,10 @@ const SuspenseImpl = {
rendererInternals rendererInternals
); );
} else { } else {
if (parentSuspense && parentSuspense.deps > 0) {
n2.suspense = n1.suspense;
return;
}
patchSuspense( patchSuspense(
n1, n1,
n2, n2,
@ -935,6 +943,7 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
} }
} }
const timeout = vnode.props ? shared.toNumber(vnode.props.timeout) : void 0; const timeout = vnode.props ? shared.toNumber(vnode.props.timeout) : void 0;
const initialAnchor = anchor;
const suspense = { const suspense = {
vnode, vnode,
parent: parentSuspense, parent: parentSuspense,
@ -942,7 +951,6 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
namespace, namespace,
container, container,
hiddenContainer, hiddenContainer,
anchor,
deps: 0, deps: 0,
pendingId: suspenseId++, pendingId: suspenseId++,
timeout: typeof timeout === "number" ? timeout : -1, timeout: typeof timeout === "number" ? timeout : -1,
@ -973,20 +981,21 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
move( move(
pendingBranch, pendingBranch,
container2, container2,
next(activeBranch), anchor === initialAnchor ? next(activeBranch) : anchor,
0 0
); );
queuePostFlushCb(effects); queuePostFlushCb(effects);
} }
}; };
} }
let { anchor: anchor2 } = suspense;
if (activeBranch) { if (activeBranch) {
anchor2 = next(activeBranch); if (parentNode(activeBranch.el) !== suspense.hiddenContainer) {
anchor = next(activeBranch);
}
unmount(activeBranch, parentComponent2, suspense, true); unmount(activeBranch, parentComponent2, suspense, true);
} }
if (!delayEnter) { if (!delayEnter) {
move(pendingBranch, container2, anchor2, 0); move(pendingBranch, container2, anchor, 0);
} }
} }
setActiveBranch(suspense, pendingBranch); setActiveBranch(suspense, pendingBranch);
@ -1204,7 +1213,12 @@ function queueEffectWithSuspense(fn, suspense) {
function setActiveBranch(suspense, branch) { function setActiveBranch(suspense, branch) {
suspense.activeBranch = branch; suspense.activeBranch = branch;
const { vnode, parentComponent } = suspense; const { vnode, parentComponent } = suspense;
const el = vnode.el = branch.el; let el = branch.el;
while (!el && branch.component) {
branch = branch.component.subTree;
el = branch.el;
}
vnode.el = el;
if (parentComponent && parentComponent.subTree === vnode) { if (parentComponent && parentComponent.subTree === vnode) {
parentComponent.vnode.el = el; parentComponent.vnode.el = el;
updateHOCHostEl(parentComponent, el); updateHOCHostEl(parentComponent, el);
@ -1405,14 +1419,9 @@ function instanceWatch(source, value, options) {
cb = value.handler; cb = value.handler;
options = value; options = value;
} }
const cur = currentInstance; const reset = setCurrentInstance(this);
setCurrentInstance(this);
const res = doWatch(getter, cb.bind(publicThis), options); const res = doWatch(getter, cb.bind(publicThis), options);
if (cur) { reset();
setCurrentInstance(cur);
} else {
unsetCurrentInstance();
}
return res; return res;
} }
function createPathGetter(ctx, path) { function createPathGetter(ctx, path) {
@ -1459,11 +1468,10 @@ function traverse(value, depth, currentDepth = 0, seen) {
} }
function withDirectives(vnode, directives) { function withDirectives(vnode, directives) {
const internalInstance = currentRenderingInstance; if (currentRenderingInstance === null) {
if (internalInstance === null) {
return vnode; return vnode;
} }
const instance = getExposeProxy(internalInstance) || internalInstance.proxy; const instance = getExposeProxy(currentRenderingInstance) || currentRenderingInstance.proxy;
const bindings = vnode.dirs || (vnode.dirs = []); const bindings = vnode.dirs || (vnode.dirs = []);
for (let i = 0; i < directives.length; i++) { for (let i = 0; i < directives.length; i++) {
let [dir, value, arg, modifiers = shared.EMPTY_OBJ] = directives[i]; let [dir, value, arg, modifiers = shared.EMPTY_OBJ] = directives[i];
@ -2219,9 +2227,9 @@ function injectHook(type, hook, target = currentInstance, prepend = false) {
return; return;
} }
reactivity.pauseTracking(); reactivity.pauseTracking();
setCurrentInstance(target); const reset = setCurrentInstance(target);
const res = callWithAsyncErrorHandling(hook, target, type, args); const res = callWithAsyncErrorHandling(hook, target, type, args);
unsetCurrentInstance(); reset();
reactivity.resetTracking(); reactivity.resetTracking();
return res; return res;
}); });
@ -2527,50 +2535,6 @@ function useSlots() {
function useAttrs() { function useAttrs() {
return getContext().attrs; return getContext().attrs;
} }
function useModel(props, name, options = shared.EMPTY_OBJ) {
const i = getCurrentInstance();
const camelizedName = shared.camelize(name);
const hyphenatedName = shared.hyphenate(name);
const res = reactivity.customRef((track, trigger) => {
let localValue;
watchSyncEffect(() => {
const propValue = props[name];
if (shared.hasChanged(localValue, propValue)) {
localValue = propValue;
trigger();
}
});
return {
get() {
track();
return options.get ? options.get(localValue) : localValue;
},
set(value) {
const rawProps = i.vnode.props;
if (!(rawProps && // check if parent has passed v-model
(name in rawProps || camelizedName in rawProps || hyphenatedName in rawProps) && (`onUpdate:${name}` in rawProps || `onUpdate:${camelizedName}` in rawProps || `onUpdate:${hyphenatedName}` in rawProps)) && shared.hasChanged(value, localValue)) {
localValue = value;
trigger();
}
i.emit(`update:${name}`, options.set ? options.set(value) : value);
}
};
});
const modifierKey = name === "modelValue" ? "modelModifiers" : `${name}Modifiers`;
res[Symbol.iterator] = () => {
let i2 = 0;
return {
next() {
if (i2 < 2) {
return { value: i2++ ? props[modifierKey] || {} : res, done: false };
} else {
return { done: true };
}
}
};
};
return res;
}
function getContext() { function getContext() {
const i = getCurrentInstance(); const i = getCurrentInstance();
return i.setupContext || (i.setupContext = createSetupContext(i)); return i.setupContext || (i.setupContext = createSetupContext(i));
@ -3279,12 +3243,12 @@ function resolvePropValue(options, props, key, value, instance, isAbsent) {
if (key in propsDefaults) { if (key in propsDefaults) {
value = propsDefaults[key]; value = propsDefaults[key];
} else { } else {
setCurrentInstance(instance); const reset = setCurrentInstance(instance);
value = propsDefaults[key] = defaultValue.call( value = propsDefaults[key] = defaultValue.call(
null, null,
props props
); );
unsetCurrentInstance(); reset();
} }
} else { } else {
value = defaultValue; value = defaultValue;
@ -3507,9 +3471,10 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
} else { } else {
const _isString = shared.isString(ref); const _isString = shared.isString(ref);
const _isRef = reactivity.isRef(ref); const _isRef = reactivity.isRef(ref);
const isVFor = rawRef.f;
if (_isString || _isRef) { if (_isString || _isRef) {
const doSet = () => { const doSet = () => {
if (rawRef.f) { if (isVFor) {
const existing = _isString ? shared.hasOwn(setupState, ref) ? setupState[ref] : refs[ref] : ref.value; const existing = _isString ? shared.hasOwn(setupState, ref) ? setupState[ref] : refs[ref] : ref.value;
if (isUnmount) { if (isUnmount) {
shared.isArray(existing) && shared.remove(existing, refValue); shared.isArray(existing) && shared.remove(existing, refValue);
@ -3540,11 +3505,11 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
refs[rawRef.k] = value; refs[rawRef.k] = value;
} else ; } else ;
}; };
if (value) { if (isUnmount || isVFor) {
doSet();
} else {
doSet.id = -1; doSet.id = -1;
queuePostRenderEffect(doSet, parentSuspense); queuePostRenderEffect(doSet, parentSuspense);
} else {
doSet();
} }
} }
} }
@ -4456,7 +4421,11 @@ function baseCreateRenderer(options, createHydrationFns) {
hostInsert(fragmentStartAnchor, container, anchor); hostInsert(fragmentStartAnchor, container, anchor);
hostInsert(fragmentEndAnchor, container, anchor); hostInsert(fragmentEndAnchor, container, anchor);
mountChildren( mountChildren(
n2.children, // #10007
// such fragment like `<></>` will be compiled into
// a fragment which doesn't have a children.
// In this case fallback to an empty array
n2.children || [],
container, container,
fragmentEndAnchor, fragmentEndAnchor,
parentComponent, parentComponent,
@ -5204,6 +5173,7 @@ function baseCreateRenderer(options, createHydrationFns) {
} }
return hostNextSibling(vnode.anchor || vnode.el); return hostNextSibling(vnode.anchor || vnode.el);
}; };
let isFlushing = false;
const render = (vnode, container, namespace) => { const render = (vnode, container, namespace) => {
if (vnode == null) { if (vnode == null) {
if (container._vnode) { if (container._vnode) {
@ -5220,8 +5190,12 @@ function baseCreateRenderer(options, createHydrationFns) {
namespace namespace
); );
} }
flushPreFlushCbs(); if (!isFlushing) {
flushPostFlushCbs(); isFlushing = true;
flushPreFlushCbs();
flushPostFlushCbs();
isFlushing = false;
}
container._vnode = vnode; container._vnode = vnode;
}; };
const internals = { const internals = {
@ -6031,8 +6005,13 @@ let setInSSRSetupState;
); );
} }
const setCurrentInstance = (instance) => { const setCurrentInstance = (instance) => {
const prev = currentInstance;
internalSetCurrentInstance(instance); internalSetCurrentInstance(instance);
instance.scope.on(); instance.scope.on();
return () => {
instance.scope.off();
internalSetCurrentInstance(prev);
};
}; };
const unsetCurrentInstance = () => { const unsetCurrentInstance = () => {
currentInstance && currentInstance.scope.off(); currentInstance && currentInstance.scope.off();
@ -6059,7 +6038,7 @@ function setupStatefulComponent(instance, isSSR) {
const { setup } = Component; const { setup } = Component;
if (setup) { if (setup) {
const setupContext = instance.setupContext = setup.length > 1 ? createSetupContext(instance) : null; const setupContext = instance.setupContext = setup.length > 1 ? createSetupContext(instance) : null;
setCurrentInstance(instance); const reset = setCurrentInstance(instance);
reactivity.pauseTracking(); reactivity.pauseTracking();
const setupResult = callWithErrorHandling( const setupResult = callWithErrorHandling(
setup, setup,
@ -6071,7 +6050,7 @@ function setupStatefulComponent(instance, isSSR) {
] ]
); );
reactivity.resetTracking(); reactivity.resetTracking();
unsetCurrentInstance(); reset();
if (shared.isPromise(setupResult)) { if (shared.isPromise(setupResult)) {
setupResult.then(unsetCurrentInstance, unsetCurrentInstance); setupResult.then(unsetCurrentInstance, unsetCurrentInstance);
if (isSSR) { if (isSSR) {
@ -6140,13 +6119,13 @@ function finishComponentSetup(instance, isSSR, skipOptions) {
} }
} }
{ {
setCurrentInstance(instance); const reset = setCurrentInstance(instance);
reactivity.pauseTracking(); reactivity.pauseTracking();
try { try {
applyOptions(instance); applyOptions(instance);
} finally { } finally {
reactivity.resetTracking(); reactivity.resetTracking();
unsetCurrentInstance(); reset();
} }
} }
} }
@ -6203,6 +6182,51 @@ const computed = (getterOrOptions, debugOptions) => {
return reactivity.computed(getterOrOptions, debugOptions, isInSSRComponentSetup); return reactivity.computed(getterOrOptions, debugOptions, isInSSRComponentSetup);
}; };
function useModel(props, name, options = shared.EMPTY_OBJ) {
const i = getCurrentInstance();
const camelizedName = shared.camelize(name);
const hyphenatedName = shared.hyphenate(name);
const res = reactivity.customRef((track, trigger) => {
let localValue;
watchSyncEffect(() => {
const propValue = props[name];
if (shared.hasChanged(localValue, propValue)) {
localValue = propValue;
trigger();
}
});
return {
get() {
track();
return options.get ? options.get(localValue) : localValue;
},
set(value) {
const rawProps = i.vnode.props;
if (!(rawProps && // check if parent has passed v-model
(name in rawProps || camelizedName in rawProps || hyphenatedName in rawProps) && (`onUpdate:${name}` in rawProps || `onUpdate:${camelizedName}` in rawProps || `onUpdate:${hyphenatedName}` in rawProps)) && shared.hasChanged(value, localValue)) {
localValue = value;
trigger();
}
i.emit(`update:${name}`, options.set ? options.set(value) : value);
}
};
});
const modifierKey = name === "modelValue" ? "modelModifiers" : `${name}Modifiers`;
res[Symbol.iterator] = () => {
let i2 = 0;
return {
next() {
if (i2 < 2) {
return { value: i2++ ? props[modifierKey] || {} : res, done: false };
} else {
return { done: true };
}
}
};
};
return res;
}
function h(type, propsOrChildren, children) { function h(type, propsOrChildren, children) {
const l = arguments.length; const l = arguments.length;
if (l === 2) { if (l === 2) {
@ -6255,7 +6279,7 @@ function isMemoSame(cached, memo) {
return true; return true;
} }
const version = "3.4.5"; const version = "3.4.15";
const warn$1 = shared.NOOP; const warn$1 = shared.NOOP;
const ErrorTypeStrings = ErrorTypeStrings$1 ; const ErrorTypeStrings = ErrorTypeStrings$1 ;
const devtools = void 0; const devtools = void 0;

View file

@ -185,7 +185,6 @@ export interface SuspenseBoundary {
namespace: ElementNamespace; namespace: ElementNamespace;
container: RendererElement; container: RendererElement;
hiddenContainer: RendererElement; hiddenContainer: RendererElement;
anchor: RendererNode | null;
activeBranch: VNode | null; activeBranch: VNode | null;
pendingBranch: VNode | null; pendingBranch: VNode | null;
deps: number; deps: number;
@ -1282,6 +1281,10 @@ export type ModelRef<T, M extends string | number | symbol = string> = Ref<T> &
ModelRef<T, M>, ModelRef<T, M>,
Record<M, true | undefined> Record<M, true | undefined>
]; ];
type DefineModelOptions<T = any> = {
get?: (v: T) => any;
set?: (v: T) => any;
};
/** /**
* Vue `<script setup>` compiler macro for declaring a * Vue `<script setup>` compiler macro for declaring a
* two-way binding prop that can be consumed via `v-model` from the parent * two-way binding prop that can be consumed via `v-model` from the parent
@ -1317,18 +1320,18 @@ export type ModelRef<T, M extends string | number | symbol = string> = Ref<T> &
*/ */
export declare function defineModel<T, M extends string | number | symbol = string>(options: { export declare function defineModel<T, M extends string | number | symbol = string>(options: {
required: true; required: true;
} & PropOptions<T> & UseModelOptions<T>): ModelRef<T, M>; } & PropOptions<T> & DefineModelOptions<T>): ModelRef<T, M>;
export declare function defineModel<T, M extends string | number | symbol = string>(options: { export declare function defineModel<T, M extends string | number | symbol = string>(options: {
default: any; default: any;
} & PropOptions<T> & UseModelOptions<T>): ModelRef<T, M>; } & PropOptions<T> & DefineModelOptions<T>): ModelRef<T, M>;
export declare function defineModel<T, M extends string | number | symbol = string>(options?: PropOptions<T> & UseModelOptions<T>): ModelRef<T | undefined, M>; export declare function defineModel<T, M extends string | number | symbol = string>(options?: PropOptions<T> & DefineModelOptions<T>): ModelRef<T | undefined, M>;
export declare function defineModel<T, M extends string | number | symbol = string>(name: string, options: { export declare function defineModel<T, M extends string | number | symbol = string>(name: string, options: {
required: true; required: true;
} & PropOptions<T> & UseModelOptions<T>): ModelRef<T, M>; } & PropOptions<T> & DefineModelOptions<T>): ModelRef<T, M>;
export declare function defineModel<T, M extends string | number | symbol = string>(name: string, options: { export declare function defineModel<T, M extends string | number | symbol = string>(name: string, options: {
default: any; default: any;
} & PropOptions<T> & UseModelOptions<T>): ModelRef<T, M>; } & PropOptions<T> & DefineModelOptions<T>): ModelRef<T, M>;
export declare function defineModel<T, M extends string | number | symbol = string>(name: string, options?: PropOptions<T> & UseModelOptions<T>): ModelRef<T | undefined, M>; export declare function defineModel<T, M extends string | number | symbol = string>(name: string, options?: PropOptions<T> & DefineModelOptions<T>): ModelRef<T | undefined, M>;
type NotUndefined<T> = T extends undefined ? never : T; type NotUndefined<T> = T extends undefined ? never : T;
type InferDefaults<T> = { type InferDefaults<T> = {
[K in keyof T]?: InferDefault<T, T[K]>; [K in keyof T]?: InferDefault<T, T[K]>;
@ -1363,11 +1366,8 @@ type PropsWithDefaults<T, Defaults extends InferDefaults<T>, BKeys extends keyof
export declare function withDefaults<T, BKeys extends keyof T, Defaults extends InferDefaults<T>>(props: DefineProps<T, BKeys>, defaults: Defaults): PropsWithDefaults<T, Defaults, BKeys>; export declare function withDefaults<T, BKeys extends keyof T, Defaults extends InferDefaults<T>>(props: DefineProps<T, BKeys>, defaults: Defaults): PropsWithDefaults<T, Defaults, BKeys>;
export declare function useSlots(): SetupContext['slots']; export declare function useSlots(): SetupContext['slots'];
export declare function useAttrs(): SetupContext['attrs']; export declare function useAttrs(): SetupContext['attrs'];
type UseModelOptions<T = any> = {
get?: (v: T) => any; export declare function useModel<M extends string | number | symbol, T extends Record<string, any>, K extends keyof T>(props: T, name: K, options?: DefineModelOptions<T[K]>): ModelRef<T[K], M>;
set?: (v: T) => any;
};
export declare function useModel<M extends string | number | symbol, T extends Record<string, any>, K extends keyof T>(props: T, name: K, options?: UseModelOptions<T[K]>): ModelRef<T[K], M>;
type RawProps = VNodeProps & { type RawProps = VNodeProps & {
__v_isVNode?: never; __v_isVNode?: never;
@ -1396,7 +1396,7 @@ export declare function h(type: typeof Fragment, props?: RawProps | null, childr
export declare function h(type: typeof Teleport, props: RawProps & TeleportProps, children: RawChildren | RawSlots): VNode; export declare function h(type: typeof Teleport, props: RawProps & TeleportProps, children: RawChildren | RawSlots): VNode;
export declare function h(type: typeof Suspense, children?: RawChildren): VNode; export declare function h(type: typeof Suspense, children?: RawChildren): VNode;
export declare function h(type: typeof Suspense, props?: (RawProps & SuspenseProps) | null, children?: RawChildren | RawSlots): VNode; export declare function h(type: typeof Suspense, props?: (RawProps & SuspenseProps) | null, children?: RawChildren | RawSlots): VNode;
export declare function h<P, E extends EmitsOptions = {}, S extends Record<string, any> = {}>(type: FunctionalComponent<P, E, S>, props?: (RawProps & P) | ({} extends P ? null : never), children?: RawChildren | RawSlots): VNode; export declare function h<P, E extends EmitsOptions = {}, S extends Record<string, any> = any>(type: FunctionalComponent<P, any, S, any>, props?: (RawProps & P) | ({} extends P ? null : never), children?: RawChildren | IfAny<S, RawSlots, S>): VNode;
export declare function h(type: Component, children?: RawChildren): VNode; export declare function h(type: Component, children?: RawChildren): VNode;
export declare function h<P>(type: ConcreteComponent | string, children?: RawChildren): VNode; export declare function h<P>(type: ConcreteComponent | string, children?: RawChildren): VNode;
export declare function h<P>(type: ConcreteComponent<P> | string, props?: (RawProps & P) | ({} extends P ? null : never), children?: RawChildren): VNode; export declare function h<P>(type: ConcreteComponent<P> | string, props?: (RawProps & P) | ({} extends P ? null : never), children?: RawChildren): VNode;

View file

@ -1,6 +1,11 @@
import { pauseTracking, resetTracking, isRef, toRaw, isShallow as isShallow$1, isReactive, ReactiveEffect, getCurrentScope, ref, shallowReadonly, track, customRef, reactive, shallowReactive, trigger, isProxy, proxyRefs, markRaw, EffectScope, computed as computed$1, isReadonly } from '@vue/reactivity'; /**
* @vue/runtime-core v3.4.15
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/
import { pauseTracking, resetTracking, isRef, toRaw, isShallow as isShallow$1, isReactive, ReactiveEffect, getCurrentScope, ref, shallowReadonly, track, reactive, shallowReactive, trigger, isProxy, proxyRefs, markRaw, EffectScope, computed as computed$1, customRef, isReadonly } from '@vue/reactivity';
export { EffectScope, ReactiveEffect, TrackOpTypes, TriggerOpTypes, customRef, effect, effectScope, getCurrentScope, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onScopeDispose, proxyRefs, reactive, readonly, ref, shallowReactive, shallowReadonly, shallowRef, stop, toRaw, toRef, toRefs, toValue, triggerRef, unref } from '@vue/reactivity'; export { EffectScope, ReactiveEffect, TrackOpTypes, TriggerOpTypes, customRef, effect, effectScope, getCurrentScope, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onScopeDispose, proxyRefs, reactive, readonly, ref, shallowReactive, shallowReadonly, shallowRef, stop, toRaw, toRef, toRefs, toValue, triggerRef, unref } from '@vue/reactivity';
import { isString, isFunction, isPromise, isArray, NOOP, getGlobalThis, extend, EMPTY_OBJ, toHandlerKey, looseToNumber, hyphenate, camelize, isObject, isOn, hasOwn, isModelListener, capitalize, toNumber, hasChanged, remove, isSet, isMap, isPlainObject, isBuiltInDirective, invokeArrayFns, isRegExp, isGloballyAllowed, NO, def, isReservedProp, EMPTY_ARR, toRawType, makeMap, normalizeClass, stringifyStyle, normalizeStyle, isKnownSvgAttr, isBooleanAttr, isKnownHtmlAttr, includeBooleanAttr } from '@vue/shared'; import { isString, isFunction, isPromise, isArray, NOOP, getGlobalThis, extend, EMPTY_OBJ, toHandlerKey, looseToNumber, hyphenate, camelize, isObject, isOn, hasOwn, isModelListener, capitalize, toNumber, hasChanged, remove, isSet, isMap, isPlainObject, isBuiltInDirective, invokeArrayFns, isRegExp, isGloballyAllowed, NO, def, isReservedProp, EMPTY_ARR, toRawType, makeMap, normalizeClass, stringifyStyle, normalizeStyle, isKnownSvgAttr, isBooleanAttr, isKnownHtmlAttr, includeBooleanAttr, isRenderableAttrValue } from '@vue/shared';
export { camelize, capitalize, normalizeClass, normalizeProps, normalizeStyle, toDisplayString, toHandlerKey } from '@vue/shared'; export { camelize, capitalize, normalizeClass, normalizeProps, normalizeStyle, toDisplayString, toHandlerKey } from '@vue/shared';
const stack = []; const stack = [];
@ -212,7 +217,7 @@ function handleError(err, instance, type, throwInDev = true) {
if (instance) { if (instance) {
let cur = instance.parent; let cur = instance.parent;
const exposedInstance = instance.proxy; const exposedInstance = instance.proxy;
const errorInfo = !!(process.env.NODE_ENV !== "production") ? ErrorTypeStrings$1[type] : `https://vuejs.org/errors/#runtime-${type}`; const errorInfo = !!(process.env.NODE_ENV !== "production") ? ErrorTypeStrings$1[type] : `https://vuejs.org/error-reference/#runtime-${type}`;
while (cur) { while (cur) {
const errorCapturedHooks = cur.ec; const errorCapturedHooks = cur.ec;
if (errorCapturedHooks) { if (errorCapturedHooks) {
@ -345,7 +350,9 @@ function flushPreFlushCbs(instance, seen, i = isFlushing ? flushIndex + 1 : 0) {
} }
function flushPostFlushCbs(seen) { function flushPostFlushCbs(seen) {
if (pendingPostFlushCbs.length) { if (pendingPostFlushCbs.length) {
const deduped = [...new Set(pendingPostFlushCbs)]; const deduped = [...new Set(pendingPostFlushCbs)].sort(
(a, b) => getId(a) - getId(b)
);
pendingPostFlushCbs.length = 0; pendingPostFlushCbs.length = 0;
if (activePostFlushCbs) { if (activePostFlushCbs) {
activePostFlushCbs.push(...deduped); activePostFlushCbs.push(...deduped);
@ -355,7 +362,6 @@ function flushPostFlushCbs(seen) {
if (!!(process.env.NODE_ENV !== "production")) { if (!!(process.env.NODE_ENV !== "production")) {
seen = seen || /* @__PURE__ */ new Map(); seen = seen || /* @__PURE__ */ new Map();
} }
activePostFlushCbs.sort((a, b) => getId(a) - getId(b));
for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) { for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) {
if (!!(process.env.NODE_ENV !== "production") && checkRecursiveUpdates(seen, activePostFlushCbs[postFlushIndex])) { if (!!(process.env.NODE_ENV !== "production") && checkRecursiveUpdates(seen, activePostFlushCbs[postFlushIndex])) {
continue; continue;
@ -979,9 +985,11 @@ function renderComponentRoot(instance) {
const getChildRoot = (vnode) => { const getChildRoot = (vnode) => {
const rawChildren = vnode.children; const rawChildren = vnode.children;
const dynamicChildren = vnode.dynamicChildren; const dynamicChildren = vnode.dynamicChildren;
const childRoot = filterSingleRoot(rawChildren); const childRoot = filterSingleRoot(rawChildren, false);
if (!childRoot) { if (!childRoot) {
return [vnode, void 0]; return [vnode, void 0];
} else if (!!(process.env.NODE_ENV !== "production") && childRoot.patchFlag > 0 && childRoot.patchFlag & 2048) {
return getChildRoot(childRoot);
} }
const index = rawChildren.indexOf(childRoot); const index = rawChildren.indexOf(childRoot);
const dynamicIndex = dynamicChildren ? dynamicChildren.indexOf(childRoot) : -1; const dynamicIndex = dynamicChildren ? dynamicChildren.indexOf(childRoot) : -1;
@ -997,7 +1005,7 @@ const getChildRoot = (vnode) => {
}; };
return [normalizeVNode(childRoot), setRoot]; return [normalizeVNode(childRoot), setRoot];
}; };
function filterSingleRoot(children) { function filterSingleRoot(children, recurse = true) {
let singleRoot; let singleRoot;
for (let i = 0; i < children.length; i++) { for (let i = 0; i < children.length; i++) {
const child = children[i]; const child = children[i];
@ -1007,6 +1015,9 @@ function filterSingleRoot(children) {
return; return;
} else { } else {
singleRoot = child; singleRoot = child;
if (!!(process.env.NODE_ENV !== "production") && recurse && singleRoot.patchFlag > 0 && singleRoot.patchFlag & 2048) {
return filterSingleRoot(singleRoot.children);
}
} }
} }
} else { } else {
@ -1097,8 +1108,6 @@ function hasPropsChanged(prevProps, nextProps, emitsOptions) {
return false; return false;
} }
function updateHOCHostEl({ vnode, parent }, el) { function updateHOCHostEl({ vnode, parent }, el) {
if (!el)
return;
while (parent) { while (parent) {
const root = parent.subTree; const root = parent.subTree;
if (root.suspense && root.suspense.activeBranch === vnode) { if (root.suspense && root.suspense.activeBranch === vnode) {
@ -1190,6 +1199,10 @@ const SuspenseImpl = {
rendererInternals rendererInternals
); );
} else { } else {
if (parentSuspense && parentSuspense.deps > 0) {
n2.suspense = n1.suspense;
return;
}
patchSuspense( patchSuspense(
n1, n1,
n2, n2,
@ -1448,6 +1461,7 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
if (!!(process.env.NODE_ENV !== "production")) { if (!!(process.env.NODE_ENV !== "production")) {
assertNumber(timeout, `Suspense timeout`); assertNumber(timeout, `Suspense timeout`);
} }
const initialAnchor = anchor;
const suspense = { const suspense = {
vnode, vnode,
parent: parentSuspense, parent: parentSuspense,
@ -1455,7 +1469,6 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
namespace, namespace,
container, container,
hiddenContainer, hiddenContainer,
anchor,
deps: 0, deps: 0,
pendingId: suspenseId++, pendingId: suspenseId++,
timeout: typeof timeout === "number" ? timeout : -1, timeout: typeof timeout === "number" ? timeout : -1,
@ -1498,20 +1511,21 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
move( move(
pendingBranch, pendingBranch,
container2, container2,
next(activeBranch), anchor === initialAnchor ? next(activeBranch) : anchor,
0 0
); );
queuePostFlushCb(effects); queuePostFlushCb(effects);
} }
}; };
} }
let { anchor: anchor2 } = suspense;
if (activeBranch) { if (activeBranch) {
anchor2 = next(activeBranch); if (parentNode(activeBranch.el) !== suspense.hiddenContainer) {
anchor = next(activeBranch);
}
unmount(activeBranch, parentComponent2, suspense, true); unmount(activeBranch, parentComponent2, suspense, true);
} }
if (!delayEnter) { if (!delayEnter) {
move(pendingBranch, container2, anchor2, 0); move(pendingBranch, container2, anchor, 0);
} }
} }
setActiveBranch(suspense, pendingBranch); setActiveBranch(suspense, pendingBranch);
@ -1738,7 +1752,12 @@ function queueEffectWithSuspense(fn, suspense) {
function setActiveBranch(suspense, branch) { function setActiveBranch(suspense, branch) {
suspense.activeBranch = branch; suspense.activeBranch = branch;
const { vnode, parentComponent } = suspense; const { vnode, parentComponent } = suspense;
const el = vnode.el = branch.el; let el = branch.el;
while (!el && branch.component) {
branch = branch.component.subTree;
el = branch.el;
}
vnode.el = el;
if (parentComponent && parentComponent.subTree === vnode) { if (parentComponent && parentComponent.subTree === vnode) {
parentComponent.vnode.el = el; parentComponent.vnode.el = el;
updateHOCHostEl(parentComponent, el); updateHOCHostEl(parentComponent, el);
@ -1985,14 +2004,9 @@ function instanceWatch(source, value, options) {
cb = value.handler; cb = value.handler;
options = value; options = value;
} }
const cur = currentInstance; const reset = setCurrentInstance(this);
setCurrentInstance(this);
const res = doWatch(getter, cb.bind(publicThis), options); const res = doWatch(getter, cb.bind(publicThis), options);
if (cur) { reset();
setCurrentInstance(cur);
} else {
unsetCurrentInstance();
}
return res; return res;
} }
function createPathGetter(ctx, path) { function createPathGetter(ctx, path) {
@ -2044,12 +2058,11 @@ function validateDirectiveName(name) {
} }
} }
function withDirectives(vnode, directives) { function withDirectives(vnode, directives) {
const internalInstance = currentRenderingInstance; if (currentRenderingInstance === null) {
if (internalInstance === null) {
!!(process.env.NODE_ENV !== "production") && warn$1(`withDirectives can only be used inside render functions.`); !!(process.env.NODE_ENV !== "production") && warn$1(`withDirectives can only be used inside render functions.`);
return vnode; return vnode;
} }
const instance = getExposeProxy(internalInstance) || internalInstance.proxy; const instance = getExposeProxy(currentRenderingInstance) || currentRenderingInstance.proxy;
const bindings = vnode.dirs || (vnode.dirs = []); const bindings = vnode.dirs || (vnode.dirs = []);
for (let i = 0; i < directives.length; i++) { for (let i = 0; i < directives.length; i++) {
let [dir, value, arg, modifiers = EMPTY_OBJ] = directives[i]; let [dir, value, arg, modifiers = EMPTY_OBJ] = directives[i];
@ -2837,9 +2850,9 @@ function injectHook(type, hook, target = currentInstance, prepend = false) {
return; return;
} }
pauseTracking(); pauseTracking();
setCurrentInstance(target); const reset = setCurrentInstance(target);
const res = callWithAsyncErrorHandling(hook, target, type, args); const res = callWithAsyncErrorHandling(hook, target, type, args);
unsetCurrentInstance(); reset();
resetTracking(); resetTracking();
return res; return res;
}); });
@ -3292,58 +3305,6 @@ function useSlots() {
function useAttrs() { function useAttrs() {
return getContext().attrs; return getContext().attrs;
} }
function useModel(props, name, options = EMPTY_OBJ) {
const i = getCurrentInstance();
if (!!(process.env.NODE_ENV !== "production") && !i) {
warn$1(`useModel() called without active instance.`);
return ref();
}
if (!!(process.env.NODE_ENV !== "production") && !i.propsOptions[0][name]) {
warn$1(`useModel() called with prop "${name}" which is not declared.`);
return ref();
}
const camelizedName = camelize(name);
const hyphenatedName = hyphenate(name);
const res = customRef((track, trigger) => {
let localValue;
watchSyncEffect(() => {
const propValue = props[name];
if (hasChanged(localValue, propValue)) {
localValue = propValue;
trigger();
}
});
return {
get() {
track();
return options.get ? options.get(localValue) : localValue;
},
set(value) {
const rawProps = i.vnode.props;
if (!(rawProps && // check if parent has passed v-model
(name in rawProps || camelizedName in rawProps || hyphenatedName in rawProps) && (`onUpdate:${name}` in rawProps || `onUpdate:${camelizedName}` in rawProps || `onUpdate:${hyphenatedName}` in rawProps)) && hasChanged(value, localValue)) {
localValue = value;
trigger();
}
i.emit(`update:${name}`, options.set ? options.set(value) : value);
}
};
});
const modifierKey = name === "modelValue" ? "modelModifiers" : `${name}Modifiers`;
res[Symbol.iterator] = () => {
let i2 = 0;
return {
next() {
if (i2 < 2) {
return { value: i2++ ? props[modifierKey] || {} : res, done: false };
} else {
return { done: true };
}
}
};
};
return res;
}
function getContext() { function getContext() {
const i = getCurrentInstance(); const i = getCurrentInstance();
if (!!(process.env.NODE_ENV !== "production") && !i) { if (!!(process.env.NODE_ENV !== "production") && !i) {
@ -4228,12 +4189,12 @@ function resolvePropValue(options, props, key, value, instance, isAbsent) {
if (key in propsDefaults) { if (key in propsDefaults) {
value = propsDefaults[key]; value = propsDefaults[key];
} else { } else {
setCurrentInstance(instance); const reset = setCurrentInstance(instance);
value = propsDefaults[key] = defaultValue.call( value = propsDefaults[key] = defaultValue.call(
null, null,
props props
); );
unsetCurrentInstance(); reset();
} }
} else { } else {
value = defaultValue; value = defaultValue;
@ -4454,7 +4415,7 @@ const normalizeSlot = (key, rawSlot, ctx) => {
return rawSlot; return rawSlot;
} }
const normalized = withCtx((...args) => { const normalized = withCtx((...args) => {
if (!!(process.env.NODE_ENV !== "production") && currentInstance) { if (!!(process.env.NODE_ENV !== "production") && currentInstance && (!ctx || ctx.root === currentInstance.root)) {
warn$1( 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.` `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.`
); );
@ -4590,9 +4551,10 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
} else { } else {
const _isString = isString(ref); const _isString = isString(ref);
const _isRef = isRef(ref); const _isRef = isRef(ref);
const isVFor = rawRef.f;
if (_isString || _isRef) { if (_isString || _isRef) {
const doSet = () => { const doSet = () => {
if (rawRef.f) { if (isVFor) {
const existing = _isString ? hasOwn(setupState, ref) ? setupState[ref] : refs[ref] : ref.value; const existing = _isString ? hasOwn(setupState, ref) ? setupState[ref] : refs[ref] : ref.value;
if (isUnmount) { if (isUnmount) {
isArray(existing) && remove(existing, refValue); isArray(existing) && remove(existing, refValue);
@ -4625,11 +4587,11 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
warn$1("Invalid template ref type:", ref, `(${typeof ref})`); warn$1("Invalid template ref type:", ref, `(${typeof ref})`);
} }
}; };
if (value) { if (isUnmount || isVFor) {
doSet();
} else {
doSet.id = -1; doSet.id = -1;
queuePostRenderEffect(doSet, parentSuspense); queuePostRenderEffect(doSet, parentSuspense);
} else {
doSet();
} }
} else if (!!(process.env.NODE_ENV !== "production")) { } else if (!!(process.env.NODE_ENV !== "production")) {
warn$1("Invalid template ref type:", ref, `(${typeof ref})`); warn$1("Invalid template ref type:", ref, `(${typeof ref})`);
@ -4928,7 +4890,7 @@ Server rendered element contains more child nodes than client vdom.`
if (props) { if (props) {
if (!!(process.env.NODE_ENV !== "production") || forcePatch || !optimized || patchFlag & (16 | 32)) { if (!!(process.env.NODE_ENV !== "production") || forcePatch || !optimized || patchFlag & (16 | 32)) {
for (const key in props) { for (const key in props) {
if (!!(process.env.NODE_ENV !== "production") && propHasMismatch(el, key, props[key])) { if (!!(process.env.NODE_ENV !== "production") && propHasMismatch(el, key, props[key], vnode)) {
hasMismatch = true; hasMismatch = true;
} }
if (forcePatch && (key.endsWith("value") || key === "indeterminate") || isOn(key) && !isReservedProp(key) || // force hydrate v-bind with .prop modifiers if (forcePatch && (key.endsWith("value") || key === "indeterminate") || isOn(key) && !isReservedProp(key) || // force hydrate v-bind with .prop modifiers
@ -5113,26 +5075,49 @@ Server rendered element contains fewer child nodes than client vdom.`
}; };
return [hydrate, hydrateNode]; return [hydrate, hydrateNode];
} }
function propHasMismatch(el, key, clientValue) { function propHasMismatch(el, key, clientValue, vnode) {
let mismatchType; let mismatchType;
let mismatchKey; let mismatchKey;
let actual; let actual;
let expected; let expected;
if (key === "class") { if (key === "class") {
actual = toClassSet(el.getAttribute("class") || ""); actual = el.getAttribute("class");
expected = toClassSet(normalizeClass(clientValue)); expected = normalizeClass(clientValue);
if (!isSetEqual(actual, expected)) { if (!isSetEqual(toClassSet(actual || ""), toClassSet(expected))) {
mismatchType = mismatchKey = `class`; mismatchType = mismatchKey = `class`;
} }
} else if (key === "style") { } else if (key === "style") {
actual = el.getAttribute("style"); actual = el.getAttribute("style");
expected = isString(clientValue) ? clientValue : stringifyStyle(normalizeStyle(clientValue)); expected = isString(clientValue) ? clientValue : stringifyStyle(normalizeStyle(clientValue));
if (actual !== expected) { const actualMap = toStyleMap(actual);
const expectedMap = toStyleMap(expected);
if (vnode.dirs) {
for (const { dir, value } of vnode.dirs) {
if (dir.name === "show" && !value) {
expectedMap.set("display", "none");
}
}
}
if (!isMapEqual(actualMap, expectedMap)) {
mismatchType = mismatchKey = "style"; mismatchType = mismatchKey = "style";
} }
} else if (el instanceof SVGElement && isKnownSvgAttr(key) || el instanceof HTMLElement && (isBooleanAttr(key) || isKnownHtmlAttr(key))) { } else if (el instanceof SVGElement && isKnownSvgAttr(key) || el instanceof HTMLElement && (isBooleanAttr(key) || isKnownHtmlAttr(key))) {
actual = el.hasAttribute(key) && el.getAttribute(key); if (isBooleanAttr(key)) {
expected = isBooleanAttr(key) ? includeBooleanAttr(clientValue) ? "" : false : clientValue == null ? false : String(clientValue); actual = el.hasAttribute(key);
expected = includeBooleanAttr(clientValue);
} else if (clientValue == null) {
actual = el.hasAttribute(key);
expected = false;
} else {
if (el.hasAttribute(key)) {
actual = el.getAttribute(key);
} else if (key === "value" && el.tagName === "TEXTAREA") {
actual = el.value;
} else {
actual = false;
}
expected = isRenderableAttrValue(clientValue) ? String(clientValue) : false;
}
if (actual !== expected) { if (actual !== expected) {
mismatchType = `attribute`; mismatchType = `attribute`;
mismatchKey = key; mismatchKey = key;
@ -5140,15 +5125,15 @@ function propHasMismatch(el, key, clientValue) {
} }
if (mismatchType) { if (mismatchType) {
const format = (v) => v === false ? `(not rendered)` : `${mismatchKey}="${v}"`; const format = (v) => v === false ? `(not rendered)` : `${mismatchKey}="${v}"`;
warn$1( const preSegment = `Hydration ${mismatchType} mismatch on`;
`Hydration ${mismatchType} mismatch on`, const postSegment = `
el,
`
- rendered on server: ${format(actual)} - rendered on server: ${format(actual)}
- expected on client: ${format(expected)} - expected on client: ${format(expected)}
Note: this mismatch is check-only. The DOM will not be rectified in production due to performance overhead. Note: this mismatch is check-only. The DOM will not be rectified in production due to performance overhead.
You should fix the source of the mismatch.` You should fix the source of the mismatch.`;
); {
warn$1(preSegment, el, postSegment);
}
return true; return true;
} }
return false; return false;
@ -5167,6 +5152,29 @@ function isSetEqual(a, b) {
} }
return true; return true;
} }
function toStyleMap(str) {
const styleMap = /* @__PURE__ */ new Map();
for (const item of str.split(";")) {
let [key, value] = item.split(":");
key = key == null ? void 0 : key.trim();
value = value == null ? void 0 : value.trim();
if (key && value) {
styleMap.set(key, value);
}
}
return styleMap;
}
function isMapEqual(a, b) {
if (a.size !== b.size) {
return false;
}
for (const [key, value] of a) {
if (value !== b.get(key)) {
return false;
}
}
return true;
}
let supported; let supported;
let perf; let perf;
@ -5780,7 +5788,11 @@ function baseCreateRenderer(options, createHydrationFns) {
hostInsert(fragmentStartAnchor, container, anchor); hostInsert(fragmentStartAnchor, container, anchor);
hostInsert(fragmentEndAnchor, container, anchor); hostInsert(fragmentEndAnchor, container, anchor);
mountChildren( mountChildren(
n2.children, // #10007
// such fragment like `<></>` will be compiled into
// a fragment which doesn't have a children.
// In this case fallback to an empty array
n2.children || [],
container, container,
fragmentEndAnchor, fragmentEndAnchor,
parentComponent, parentComponent,
@ -6627,6 +6639,7 @@ function baseCreateRenderer(options, createHydrationFns) {
} }
return hostNextSibling(vnode.anchor || vnode.el); return hostNextSibling(vnode.anchor || vnode.el);
}; };
let isFlushing = false;
const render = (vnode, container, namespace) => { const render = (vnode, container, namespace) => {
if (vnode == null) { if (vnode == null) {
if (container._vnode) { if (container._vnode) {
@ -6643,8 +6656,12 @@ function baseCreateRenderer(options, createHydrationFns) {
namespace namespace
); );
} }
flushPreFlushCbs(); if (!isFlushing) {
flushPostFlushCbs(); isFlushing = true;
flushPreFlushCbs();
flushPostFlushCbs();
isFlushing = false;
}
container._vnode = vnode; container._vnode = vnode;
}; };
const internals = { const internals = {
@ -7516,8 +7533,13 @@ let setInSSRSetupState;
); );
} }
const setCurrentInstance = (instance) => { const setCurrentInstance = (instance) => {
const prev = currentInstance;
internalSetCurrentInstance(instance); internalSetCurrentInstance(instance);
instance.scope.on(); instance.scope.on();
return () => {
instance.scope.off();
internalSetCurrentInstance(prev);
};
}; };
const unsetCurrentInstance = () => { const unsetCurrentInstance = () => {
currentInstance && currentInstance.scope.off(); currentInstance && currentInstance.scope.off();
@ -7579,7 +7601,7 @@ function setupStatefulComponent(instance, isSSR) {
const { setup } = Component; const { setup } = Component;
if (setup) { if (setup) {
const setupContext = instance.setupContext = setup.length > 1 ? createSetupContext(instance) : null; const setupContext = instance.setupContext = setup.length > 1 ? createSetupContext(instance) : null;
setCurrentInstance(instance); const reset = setCurrentInstance(instance);
pauseTracking(); pauseTracking();
const setupResult = callWithErrorHandling( const setupResult = callWithErrorHandling(
setup, setup,
@ -7591,7 +7613,7 @@ function setupStatefulComponent(instance, isSSR) {
] ]
); );
resetTracking(); resetTracking();
unsetCurrentInstance(); reset();
if (isPromise(setupResult)) { if (isPromise(setupResult)) {
setupResult.then(unsetCurrentInstance, unsetCurrentInstance); setupResult.then(unsetCurrentInstance, unsetCurrentInstance);
if (isSSR) { if (isSSR) {
@ -7687,13 +7709,13 @@ function finishComponentSetup(instance, isSSR, skipOptions) {
} }
} }
if (__VUE_OPTIONS_API__ && true) { if (__VUE_OPTIONS_API__ && true) {
setCurrentInstance(instance); const reset = setCurrentInstance(instance);
pauseTracking(); pauseTracking();
try { try {
applyOptions(instance); applyOptions(instance);
} finally { } finally {
resetTracking(); resetTracking();
unsetCurrentInstance(); reset();
} }
} }
if (!!(process.env.NODE_ENV !== "production") && !Component.render && instance.render === NOOP && !isSSR) { if (!!(process.env.NODE_ENV !== "production") && !Component.render && instance.render === NOOP && !isSSR) {
@ -7838,6 +7860,59 @@ const computed = (getterOrOptions, debugOptions) => {
return computed$1(getterOrOptions, debugOptions, isInSSRComponentSetup); return computed$1(getterOrOptions, debugOptions, isInSSRComponentSetup);
}; };
function useModel(props, name, options = EMPTY_OBJ) {
const i = getCurrentInstance();
if (!!(process.env.NODE_ENV !== "production") && !i) {
warn$1(`useModel() called without active instance.`);
return ref();
}
if (!!(process.env.NODE_ENV !== "production") && !i.propsOptions[0][name]) {
warn$1(`useModel() called with prop "${name}" which is not declared.`);
return ref();
}
const camelizedName = camelize(name);
const hyphenatedName = hyphenate(name);
const res = customRef((track, trigger) => {
let localValue;
watchSyncEffect(() => {
const propValue = props[name];
if (hasChanged(localValue, propValue)) {
localValue = propValue;
trigger();
}
});
return {
get() {
track();
return options.get ? options.get(localValue) : localValue;
},
set(value) {
const rawProps = i.vnode.props;
if (!(rawProps && // check if parent has passed v-model
(name in rawProps || camelizedName in rawProps || hyphenatedName in rawProps) && (`onUpdate:${name}` in rawProps || `onUpdate:${camelizedName}` in rawProps || `onUpdate:${hyphenatedName}` in rawProps)) && hasChanged(value, localValue)) {
localValue = value;
trigger();
}
i.emit(`update:${name}`, options.set ? options.set(value) : value);
}
};
});
const modifierKey = name === "modelValue" ? "modelModifiers" : `${name}Modifiers`;
res[Symbol.iterator] = () => {
let i2 = 0;
return {
next() {
if (i2 < 2) {
return { value: i2++ ? props[modifierKey] || {} : res, done: false };
} else {
return { done: true };
}
}
};
};
return res;
}
function h(type, propsOrChildren, children) { function h(type, propsOrChildren, children) {
const l = arguments.length; const l = arguments.length;
if (l === 2) { if (l === 2) {
@ -8064,11 +8139,11 @@ function isMemoSame(cached, memo) {
return true; return true;
} }
const version = "3.4.5"; const version = "3.4.15";
const warn = !!(process.env.NODE_ENV !== "production") ? warn$1 : NOOP; const warn = !!(process.env.NODE_ENV !== "production") ? warn$1 : NOOP;
const ErrorTypeStrings = ErrorTypeStrings$1 ; const ErrorTypeStrings = ErrorTypeStrings$1 ;
const devtools = !!(process.env.NODE_ENV !== "production") || __VUE_PROD_DEVTOOLS__ ? devtools$1 : void 0; const devtools = !!(process.env.NODE_ENV !== "production") || true ? devtools$1 : void 0;
const setDevtoolsHook = !!(process.env.NODE_ENV !== "production") || __VUE_PROD_DEVTOOLS__ ? setDevtoolsHook$1 : NOOP; const setDevtoolsHook = !!(process.env.NODE_ENV !== "production") || true ? setDevtoolsHook$1 : NOOP;
const _ssrUtils = { const _ssrUtils = {
createComponentInstance, createComponentInstance,
setupComponent, setupComponent,

View file

@ -1,6 +1,6 @@
{ {
"name": "@vue/runtime-core", "name": "@vue/runtime-core",
"version": "3.4.5", "version": "3.4.15",
"description": "@vue/runtime-core", "description": "@vue/runtime-core",
"main": "index.js", "main": "index.js",
"module": "dist/runtime-core.esm-bundler.js", "module": "dist/runtime-core.esm-bundler.js",
@ -17,6 +17,7 @@
"development": "./dist/runtime-core.cjs.js", "development": "./dist/runtime-core.cjs.js",
"default": "./index.js" "default": "./index.js"
}, },
"module": "./dist/runtime-core.esm-bundler.js",
"import": "./dist/runtime-core.esm-bundler.js", "import": "./dist/runtime-core.esm-bundler.js",
"require": "./index.js" "require": "./index.js"
}, },
@ -45,7 +46,7 @@
}, },
"homepage": "https://github.com/vuejs/core/tree/main/packages/runtime-core#readme", "homepage": "https://github.com/vuejs/core/tree/main/packages/runtime-core#readme",
"dependencies": { "dependencies": {
"@vue/shared": "3.4.5", "@vue/shared": "3.4.15",
"@vue/reactivity": "3.4.5" "@vue/reactivity": "3.4.15"
} }
} }

View file

@ -1,3 +1,8 @@
/**
* @vue/runtime-dom v3.4.15
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/
'use strict'; 'use strict';
Object.defineProperty(exports, '__esModule', { value: true }); Object.defineProperty(exports, '__esModule', { value: true });
@ -392,6 +397,9 @@ const vShow = {
setDisplay(el, value); setDisplay(el, value);
} }
}; };
{
vShow.name = "show";
}
function setDisplay(el, value) { function setDisplay(el, value) {
el.style.display = value ? el[vShowOldKey] : "none"; el.style.display = value ? el[vShowOldKey] : "none";
} }
@ -410,6 +418,7 @@ function useCssVars(getter) {
function patchStyle(el, prev, next) { function patchStyle(el, prev, next) {
const style = el.style; const style = el.style;
const currentDisplay = style.display;
const isCssString = shared.isString(next); const isCssString = shared.isString(next);
if (next && !isCssString) { if (next && !isCssString) {
if (prev && !shared.isString(prev)) { if (prev && !shared.isString(prev)) {
@ -423,7 +432,6 @@ function patchStyle(el, prev, next) {
setStyle(style, key, next[key]); setStyle(style, key, next[key]);
} }
} else { } else {
const currentDisplay = style.display;
if (isCssString) { if (isCssString) {
if (prev !== next) { if (prev !== next) {
const cssVarText = style[CSS_VAR_TEXT]; const cssVarText = style[CSS_VAR_TEXT];
@ -435,9 +443,9 @@ function patchStyle(el, prev, next) {
} else if (prev) { } else if (prev) {
el.removeAttribute("style"); el.removeAttribute("style");
} }
if (vShowOldKey in el) { }
style.display = currentDisplay; if (vShowOldKey in el) {
} style.display = currentDisplay;
} }
} }
const semicolonRE = /[^\\];\s*$/; const semicolonRE = /[^\\];\s*$/;
@ -1204,35 +1212,52 @@ const vModelSelect = {
el[assignKey]( el[assignKey](
el.multiple ? isSetModel ? new Set(selectedVal) : selectedVal : selectedVal[0] el.multiple ? isSetModel ? new Set(selectedVal) : selectedVal : selectedVal[0]
); );
el._assigning = true;
runtimeCore.nextTick(() => {
el._assigning = false;
});
}); });
el[assignKey] = getModelAssigner(vnode); el[assignKey] = getModelAssigner(vnode);
}, },
// set value in mounted & updated because <select> relies on its children // set value in mounted & updated because <select> relies on its children
// <option>s. // <option>s.
mounted(el, { value }) { mounted(el, { value, oldValue, modifiers: { number } }) {
setSelected(el, value); setSelected(el, value, oldValue, number);
}, },
beforeUpdate(el, _binding, vnode) { beforeUpdate(el, _binding, vnode) {
el[assignKey] = getModelAssigner(vnode); el[assignKey] = getModelAssigner(vnode);
}, },
updated(el, { value }) { updated(el, { value, oldValue, modifiers: { number } }) {
setSelected(el, value); if (!el._assigning) {
setSelected(el, value, oldValue, number);
}
} }
}; };
function setSelected(el, value) { function setSelected(el, value, oldValue, number) {
const isMultiple = el.multiple; const isMultiple = el.multiple;
if (isMultiple && !shared.isArray(value) && !shared.isSet(value)) { const isArrayValue = shared.isArray(value);
if (isMultiple && !isArrayValue && !shared.isSet(value)) {
runtimeCore.warn( runtimeCore.warn(
`<select multiple v-model> expects an Array or Set value for its binding, but got ${Object.prototype.toString.call(value).slice(8, -1)}.` `<select multiple v-model> expects an Array or Set value for its binding, but got ${Object.prototype.toString.call(value).slice(8, -1)}.`
); );
return; return;
} }
if (isArrayValue && shared.looseEqual(value, oldValue)) {
return;
}
for (let i = 0, l = el.options.length; i < l; i++) { for (let i = 0, l = el.options.length; i < l; i++) {
const option = el.options[i]; const option = el.options[i];
const optionValue = getValue(option); const optionValue = getValue(option);
if (isMultiple) { if (isMultiple) {
if (shared.isArray(value)) { if (isArrayValue) {
option.selected = shared.looseIndexOf(value, optionValue) > -1; const optionType = typeof optionValue;
if (optionType === "string" || optionType === "number") {
option.selected = value.includes(
number ? shared.looseToNumber(optionValue) : optionValue
);
} else {
option.selected = shared.looseIndexOf(value, optionValue) > -1;
}
} else { } else {
option.selected = value.has(optionValue); option.selected = value.has(optionValue);
} }

View file

@ -1,3 +1,8 @@
/**
* @vue/runtime-dom v3.4.15
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/
'use strict'; 'use strict';
Object.defineProperty(exports, '__esModule', { value: true }); Object.defineProperty(exports, '__esModule', { value: true });
@ -407,6 +412,7 @@ function useCssVars(getter) {
function patchStyle(el, prev, next) { function patchStyle(el, prev, next) {
const style = el.style; const style = el.style;
const currentDisplay = style.display;
const isCssString = shared.isString(next); const isCssString = shared.isString(next);
if (next && !isCssString) { if (next && !isCssString) {
if (prev && !shared.isString(prev)) { if (prev && !shared.isString(prev)) {
@ -420,7 +426,6 @@ function patchStyle(el, prev, next) {
setStyle(style, key, next[key]); setStyle(style, key, next[key]);
} }
} else { } else {
const currentDisplay = style.display;
if (isCssString) { if (isCssString) {
if (prev !== next) { if (prev !== next) {
const cssVarText = style[CSS_VAR_TEXT]; const cssVarText = style[CSS_VAR_TEXT];
@ -432,9 +437,9 @@ function patchStyle(el, prev, next) {
} else if (prev) { } else if (prev) {
el.removeAttribute("style"); el.removeAttribute("style");
} }
if (vShowOldKey in el) { }
style.display = currentDisplay; if (vShowOldKey in el) {
} style.display = currentDisplay;
} }
} }
const importantRE = /\s*!important$/; const importantRE = /\s*!important$/;
@ -1163,32 +1168,49 @@ const vModelSelect = {
el[assignKey]( el[assignKey](
el.multiple ? isSetModel ? new Set(selectedVal) : selectedVal : selectedVal[0] el.multiple ? isSetModel ? new Set(selectedVal) : selectedVal : selectedVal[0]
); );
el._assigning = true;
runtimeCore.nextTick(() => {
el._assigning = false;
});
}); });
el[assignKey] = getModelAssigner(vnode); el[assignKey] = getModelAssigner(vnode);
}, },
// set value in mounted & updated because <select> relies on its children // set value in mounted & updated because <select> relies on its children
// <option>s. // <option>s.
mounted(el, { value }) { mounted(el, { value, oldValue, modifiers: { number } }) {
setSelected(el, value); setSelected(el, value, oldValue, number);
}, },
beforeUpdate(el, _binding, vnode) { beforeUpdate(el, _binding, vnode) {
el[assignKey] = getModelAssigner(vnode); el[assignKey] = getModelAssigner(vnode);
}, },
updated(el, { value }) { updated(el, { value, oldValue, modifiers: { number } }) {
setSelected(el, value); if (!el._assigning) {
setSelected(el, value, oldValue, number);
}
} }
}; };
function setSelected(el, value) { function setSelected(el, value, oldValue, number) {
const isMultiple = el.multiple; const isMultiple = el.multiple;
if (isMultiple && !shared.isArray(value) && !shared.isSet(value)) { const isArrayValue = shared.isArray(value);
if (isMultiple && !isArrayValue && !shared.isSet(value)) {
return;
}
if (isArrayValue && shared.looseEqual(value, oldValue)) {
return; return;
} }
for (let i = 0, l = el.options.length; i < l; i++) { for (let i = 0, l = el.options.length; i < l; i++) {
const option = el.options[i]; const option = el.options[i];
const optionValue = getValue(option); const optionValue = getValue(option);
if (isMultiple) { if (isMultiple) {
if (shared.isArray(value)) { if (isArrayValue) {
option.selected = shared.looseIndexOf(value, optionValue) > -1; const optionType = typeof optionValue;
if (optionType === "string" || optionType === "number") {
option.selected = value.includes(
number ? shared.looseToNumber(optionValue) : optionValue
);
} else {
option.selected = shared.looseIndexOf(value, optionValue) > -1;
}
} else { } else {
option.selected = value.has(optionValue); option.selected = value.has(optionValue);
} }

View file

@ -92,6 +92,7 @@ type AssignerFn = (value: any) => void;
declare const assignKey: unique symbol; declare const assignKey: unique symbol;
type ModelDirective<T> = ObjectDirective<T & { type ModelDirective<T> = ObjectDirective<T & {
[assignKey]: AssignerFn; [assignKey]: AssignerFn;
_assigning?: boolean;
}>; }>;
export declare const vModelText: ModelDirective<HTMLInputElement | HTMLTextAreaElement>; export declare const vModelText: ModelDirective<HTMLInputElement | HTMLTextAreaElement>;
export declare const vModelCheckbox: ModelDirective<HTMLInputElement>; export declare const vModelCheckbox: ModelDirective<HTMLInputElement>;
@ -120,7 +121,9 @@ declare const vShowOldKey: unique symbol;
interface VShowElement extends HTMLElement { interface VShowElement extends HTMLElement {
[vShowOldKey]: string; [vShowOldKey]: string;
} }
export declare const vShow: ObjectDirective<VShowElement>; export declare const vShow: ObjectDirective<VShowElement> & {
name?: 'show';
};
export interface CSSProperties extends CSS.Properties<string | number>, CSS.PropertiesHyphen<string | number> { export interface CSSProperties extends CSS.Properties<string | number>, CSS.PropertiesHyphen<string | number> {
/** /**
@ -704,7 +707,7 @@ export interface TextareaHTMLAttributes extends HTMLAttributes {
readonly?: Booleanish; readonly?: Booleanish;
required?: Booleanish; required?: Booleanish;
rows?: Numberish; rows?: Numberish;
value?: string | ReadonlyArray<string> | number; value?: string | ReadonlyArray<string> | number | null;
wrap?: string; wrap?: string;
} }
export interface TdHTMLAttributes extends HTMLAttributes { export interface TdHTMLAttributes extends HTMLAttributes {

View file

@ -1,3 +1,8 @@
/**
* @vue/runtime-dom v3.4.15
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/
function makeMap(str, expectsLowerCase) { function makeMap(str, expectsLowerCase) {
const set = new Set(str.split(",")); const set = new Set(str.split(","));
return expectsLowerCase ? (val) => set.has(val.toLowerCase()) : (val) => set.has(val); return expectsLowerCase ? (val) => set.has(val.toLowerCase()) : (val) => set.has(val);
@ -195,6 +200,13 @@ const isKnownHtmlAttr = /* @__PURE__ */ makeMap(
const isKnownSvgAttr = /* @__PURE__ */ makeMap( const isKnownSvgAttr = /* @__PURE__ */ makeMap(
`xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,color-interpolation-filters,color-profile,color-rendering,contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,font-family,font-size,font-size-adjust,font-stretch,font-style,font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,overflow,overline-position,overline-thickness,panose-1,paint-order,path,pathLength,patternContentUnits,patternTransform,patternUnits,ping,pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,specularConstant,specularExponent,speed,spreadMethod,startOffset,stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,string,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,text-decoration,text-rendering,textLength,to,transform,transform-origin,type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xmlns:xlink,xml:base,xml:lang,xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan` `xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,color-interpolation-filters,color-profile,color-rendering,contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,font-family,font-size,font-size-adjust,font-stretch,font-style,font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,overflow,overline-position,overline-thickness,panose-1,paint-order,path,pathLength,patternContentUnits,patternTransform,patternUnits,ping,pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,specularConstant,specularExponent,speed,spreadMethod,startOffset,stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,string,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,text-decoration,text-rendering,textLength,to,transform,transform-origin,type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xmlns:xlink,xml:base,xml:lang,xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan`
); );
function isRenderableAttrValue(value) {
if (value == null) {
return false;
}
const type = typeof value;
return type === "string" || type === "number" || type === "boolean";
}
function looseCompareArrays(a, b) { function looseCompareArrays(a, b) {
if (a.length !== b.length) if (a.length !== b.length)
@ -395,7 +407,7 @@ class ReactiveEffect {
/** /**
* @internal * @internal
*/ */
this._dirtyLevel = 3; this._dirtyLevel = 2;
/** /**
* @internal * @internal
*/ */
@ -407,7 +419,7 @@ class ReactiveEffect {
/** /**
* @internal * @internal
*/ */
this._queryings = 0; this._shouldSchedule = false;
/** /**
* @internal * @internal
*/ */
@ -416,10 +428,9 @@ class ReactiveEffect {
} }
get dirty() { get dirty() {
if (this._dirtyLevel === 1) { if (this._dirtyLevel === 1) {
this._dirtyLevel = 0;
this._queryings++;
pauseTracking(); pauseTracking();
for (const dep of this.deps) { for (let i = 0; i < this._depsLength; i++) {
const dep = this.deps[i];
if (dep.computed) { if (dep.computed) {
triggerComputed(dep.computed); triggerComputed(dep.computed);
if (this._dirtyLevel >= 2) { if (this._dirtyLevel >= 2) {
@ -427,13 +438,15 @@ class ReactiveEffect {
} }
} }
} }
if (this._dirtyLevel < 2) {
this._dirtyLevel = 0;
}
resetTracking(); resetTracking();
this._queryings--;
} }
return this._dirtyLevel >= 2; return this._dirtyLevel >= 2;
} }
set dirty(v) { set dirty(v) {
this._dirtyLevel = v ? 3 : 0; this._dirtyLevel = v ? 2 : 0;
} }
run() { run() {
this._dirtyLevel = 0; this._dirtyLevel = 0;
@ -556,25 +569,29 @@ function triggerEffects(dep, dirtyLevel, debuggerEventExtraInfo) {
var _a; var _a;
pauseScheduling(); pauseScheduling();
for (const effect2 of dep.keys()) { for (const effect2 of dep.keys()) {
if (!effect2.allowRecurse && effect2._runnings) { if (effect2._dirtyLevel < dirtyLevel && dep.get(effect2) === effect2._trackId) {
continue;
}
if (effect2._dirtyLevel < dirtyLevel && (!effect2._runnings || dirtyLevel !== 2)) {
const lastDirtyLevel = effect2._dirtyLevel; const lastDirtyLevel = effect2._dirtyLevel;
effect2._dirtyLevel = dirtyLevel; effect2._dirtyLevel = dirtyLevel;
if (lastDirtyLevel === 0 && (!effect2._queryings || dirtyLevel !== 2)) { if (lastDirtyLevel === 0) {
effect2._shouldSchedule = true;
{ {
(_a = effect2.onTrigger) == null ? void 0 : _a.call(effect2, extend({ effect: effect2 }, debuggerEventExtraInfo)); (_a = effect2.onTrigger) == null ? void 0 : _a.call(effect2, extend({ effect: effect2 }, debuggerEventExtraInfo));
} }
effect2.trigger(); effect2.trigger();
if (effect2.scheduler) {
queueEffectSchedulers.push(effect2.scheduler);
}
} }
} }
} }
scheduleEffects(dep);
resetScheduling(); resetScheduling();
} }
function scheduleEffects(dep) {
for (const effect2 of dep.keys()) {
if (effect2.scheduler && effect2._shouldSchedule && (!effect2._runnings || effect2.allowRecurse) && dep.get(effect2) === effect2._trackId) {
effect2._shouldSchedule = false;
queueEffectSchedulers.push(effect2.scheduler);
}
}
}
const createDep = (cleanup, computed) => { const createDep = (cleanup, computed) => {
const dep = /* @__PURE__ */ new Map(); const dep = /* @__PURE__ */ new Map();
@ -657,7 +674,7 @@ function trigger(target, type, key, newValue, oldValue, oldTarget) {
if (dep) { if (dep) {
triggerEffects( triggerEffects(
dep, dep,
3, 2,
{ {
target, target,
type, type,
@ -1256,7 +1273,8 @@ class ComputedRefImpl {
this["__v_isReadonly"] = false; this["__v_isReadonly"] = false;
this.effect = new ReactiveEffect( this.effect = new ReactiveEffect(
() => getter(this._value), () => getter(this._value),
() => triggerRefValue(this, 1) () => triggerRefValue(this, 1),
() => this.dep && scheduleEffects(this.dep)
); );
this.effect.computed = this; this.effect.computed = this;
this.effect.active = this._cacheable = !isSSR; this.effect.active = this._cacheable = !isSSR;
@ -1264,12 +1282,15 @@ class ComputedRefImpl {
} }
get value() { get value() {
const self = toRaw(this); const self = toRaw(this);
trackRefValue(self);
if (!self._cacheable || self.effect.dirty) { if (!self._cacheable || self.effect.dirty) {
if (hasChanged(self._value, self._value = self.effect.run())) { if (hasChanged(self._value, self._value = self.effect.run())) {
triggerRefValue(self, 2); triggerRefValue(self, 2);
} }
} }
trackRefValue(self);
if (self.effect._dirtyLevel >= 1) {
triggerRefValue(self, 1);
}
return self._value; return self._value;
} }
set value(newValue) { set value(newValue) {
@ -1322,7 +1343,7 @@ function trackRefValue(ref2) {
); );
} }
} }
function triggerRefValue(ref2, dirtyLevel = 3, newVal) { function triggerRefValue(ref2, dirtyLevel = 2, newVal) {
ref2 = toRaw(ref2); ref2 = toRaw(ref2);
const dep = ref2.dep; const dep = ref2.dep;
if (dep) { if (dep) {
@ -1371,12 +1392,12 @@ class RefImpl {
if (hasChanged(newVal, this._rawValue)) { if (hasChanged(newVal, this._rawValue)) {
this._rawValue = newVal; this._rawValue = newVal;
this._value = useDirectValue ? newVal : toReactive(newVal); this._value = useDirectValue ? newVal : toReactive(newVal);
triggerRefValue(this, 3, newVal); triggerRefValue(this, 2, newVal);
} }
} }
} }
function triggerRef(ref2) { function triggerRef(ref2) {
triggerRefValue(ref2, 3, ref2.value ); triggerRefValue(ref2, 2, ref2.value );
} }
function unref(ref2) { function unref(ref2) {
return isRef(ref2) ? ref2.value : ref2; return isRef(ref2) ? ref2.value : ref2;
@ -1824,7 +1845,9 @@ function flushPreFlushCbs(instance, seen, i = isFlushing ? flushIndex + 1 : 0) {
} }
function flushPostFlushCbs(seen) { function flushPostFlushCbs(seen) {
if (pendingPostFlushCbs.length) { if (pendingPostFlushCbs.length) {
const deduped = [...new Set(pendingPostFlushCbs)]; const deduped = [...new Set(pendingPostFlushCbs)].sort(
(a, b) => getId(a) - getId(b)
);
pendingPostFlushCbs.length = 0; pendingPostFlushCbs.length = 0;
if (activePostFlushCbs) { if (activePostFlushCbs) {
activePostFlushCbs.push(...deduped); activePostFlushCbs.push(...deduped);
@ -1834,7 +1857,6 @@ function flushPostFlushCbs(seen) {
{ {
seen = seen || /* @__PURE__ */ new Map(); seen = seen || /* @__PURE__ */ new Map();
} }
activePostFlushCbs.sort((a, b) => getId(a) - getId(b));
for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) { for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) {
if (checkRecursiveUpdates(seen, activePostFlushCbs[postFlushIndex])) { if (checkRecursiveUpdates(seen, activePostFlushCbs[postFlushIndex])) {
continue; continue;
@ -2458,9 +2480,11 @@ function renderComponentRoot(instance) {
const getChildRoot = (vnode) => { const getChildRoot = (vnode) => {
const rawChildren = vnode.children; const rawChildren = vnode.children;
const dynamicChildren = vnode.dynamicChildren; const dynamicChildren = vnode.dynamicChildren;
const childRoot = filterSingleRoot(rawChildren); const childRoot = filterSingleRoot(rawChildren, false);
if (!childRoot) { if (!childRoot) {
return [vnode, void 0]; return [vnode, void 0];
} else if (childRoot.patchFlag > 0 && childRoot.patchFlag & 2048) {
return getChildRoot(childRoot);
} }
const index = rawChildren.indexOf(childRoot); const index = rawChildren.indexOf(childRoot);
const dynamicIndex = dynamicChildren ? dynamicChildren.indexOf(childRoot) : -1; const dynamicIndex = dynamicChildren ? dynamicChildren.indexOf(childRoot) : -1;
@ -2476,7 +2500,7 @@ const getChildRoot = (vnode) => {
}; };
return [normalizeVNode(childRoot), setRoot]; return [normalizeVNode(childRoot), setRoot];
}; };
function filterSingleRoot(children) { function filterSingleRoot(children, recurse = true) {
let singleRoot; let singleRoot;
for (let i = 0; i < children.length; i++) { for (let i = 0; i < children.length; i++) {
const child = children[i]; const child = children[i];
@ -2486,6 +2510,9 @@ function filterSingleRoot(children) {
return; return;
} else { } else {
singleRoot = child; singleRoot = child;
if (recurse && singleRoot.patchFlag > 0 && singleRoot.patchFlag & 2048) {
return filterSingleRoot(singleRoot.children);
}
} }
} }
} else { } else {
@ -2576,8 +2603,6 @@ function hasPropsChanged(prevProps, nextProps, emitsOptions) {
return false; return false;
} }
function updateHOCHostEl({ vnode, parent }, el) { function updateHOCHostEl({ vnode, parent }, el) {
if (!el)
return;
while (parent) { while (parent) {
const root = parent.subTree; const root = parent.subTree;
if (root.suspense && root.suspense.activeBranch === vnode) { if (root.suspense && root.suspense.activeBranch === vnode) {
@ -2669,6 +2694,10 @@ const SuspenseImpl = {
rendererInternals rendererInternals
); );
} else { } else {
if (parentSuspense && parentSuspense.deps > 0) {
n2.suspense = n1.suspense;
return;
}
patchSuspense( patchSuspense(
n1, n1,
n2, n2,
@ -2927,6 +2956,7 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
{ {
assertNumber(timeout, `Suspense timeout`); assertNumber(timeout, `Suspense timeout`);
} }
const initialAnchor = anchor;
const suspense = { const suspense = {
vnode, vnode,
parent: parentSuspense, parent: parentSuspense,
@ -2934,7 +2964,6 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
namespace, namespace,
container, container,
hiddenContainer, hiddenContainer,
anchor,
deps: 0, deps: 0,
pendingId: suspenseId++, pendingId: suspenseId++,
timeout: typeof timeout === "number" ? timeout : -1, timeout: typeof timeout === "number" ? timeout : -1,
@ -2977,20 +3006,21 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
move( move(
pendingBranch, pendingBranch,
container2, container2,
next(activeBranch), anchor === initialAnchor ? next(activeBranch) : anchor,
0 0
); );
queuePostFlushCb(effects); queuePostFlushCb(effects);
} }
}; };
} }
let { anchor: anchor2 } = suspense;
if (activeBranch) { if (activeBranch) {
anchor2 = next(activeBranch); if (parentNode(activeBranch.el) !== suspense.hiddenContainer) {
anchor = next(activeBranch);
}
unmount(activeBranch, parentComponent2, suspense, true); unmount(activeBranch, parentComponent2, suspense, true);
} }
if (!delayEnter) { if (!delayEnter) {
move(pendingBranch, container2, anchor2, 0); move(pendingBranch, container2, anchor, 0);
} }
} }
setActiveBranch(suspense, pendingBranch); setActiveBranch(suspense, pendingBranch);
@ -3217,7 +3247,12 @@ function queueEffectWithSuspense(fn, suspense) {
function setActiveBranch(suspense, branch) { function setActiveBranch(suspense, branch) {
suspense.activeBranch = branch; suspense.activeBranch = branch;
const { vnode, parentComponent } = suspense; const { vnode, parentComponent } = suspense;
const el = vnode.el = branch.el; let el = branch.el;
while (!el && branch.component) {
branch = branch.component.subTree;
el = branch.el;
}
vnode.el = el;
if (parentComponent && parentComponent.subTree === vnode) { if (parentComponent && parentComponent.subTree === vnode) {
parentComponent.vnode.el = el; parentComponent.vnode.el = el;
updateHOCHostEl(parentComponent, el); updateHOCHostEl(parentComponent, el);
@ -3443,14 +3478,9 @@ function instanceWatch(source, value, options) {
cb = value.handler; cb = value.handler;
options = value; options = value;
} }
const cur = currentInstance; const reset = setCurrentInstance(this);
setCurrentInstance(this);
const res = doWatch(getter, cb.bind(publicThis), options); const res = doWatch(getter, cb.bind(publicThis), options);
if (cur) { reset();
setCurrentInstance(cur);
} else {
unsetCurrentInstance();
}
return res; return res;
} }
function createPathGetter(ctx, path) { function createPathGetter(ctx, path) {
@ -3502,12 +3532,11 @@ function validateDirectiveName(name) {
} }
} }
function withDirectives(vnode, directives) { function withDirectives(vnode, directives) {
const internalInstance = currentRenderingInstance; if (currentRenderingInstance === null) {
if (internalInstance === null) {
warn$1(`withDirectives can only be used inside render functions.`); warn$1(`withDirectives can only be used inside render functions.`);
return vnode; return vnode;
} }
const instance = getExposeProxy(internalInstance) || internalInstance.proxy; const instance = getExposeProxy(currentRenderingInstance) || currentRenderingInstance.proxy;
const bindings = vnode.dirs || (vnode.dirs = []); const bindings = vnode.dirs || (vnode.dirs = []);
for (let i = 0; i < directives.length; i++) { for (let i = 0; i < directives.length; i++) {
let [dir, value, arg, modifiers = EMPTY_OBJ] = directives[i]; let [dir, value, arg, modifiers = EMPTY_OBJ] = directives[i];
@ -4287,9 +4316,9 @@ function injectHook(type, hook, target = currentInstance, prepend = false) {
return; return;
} }
pauseTracking(); pauseTracking();
setCurrentInstance(target); const reset = setCurrentInstance(target);
const res = callWithAsyncErrorHandling(hook, target, type, args); const res = callWithAsyncErrorHandling(hook, target, type, args);
unsetCurrentInstance(); reset();
resetTracking(); resetTracking();
return res; return res;
}); });
@ -4742,58 +4771,6 @@ function useSlots() {
function useAttrs() { function useAttrs() {
return getContext().attrs; return getContext().attrs;
} }
function useModel(props, name, options = EMPTY_OBJ) {
const i = getCurrentInstance();
if (!i) {
warn$1(`useModel() called without active instance.`);
return ref();
}
if (!i.propsOptions[0][name]) {
warn$1(`useModel() called with prop "${name}" which is not declared.`);
return ref();
}
const camelizedName = camelize(name);
const hyphenatedName = hyphenate(name);
const res = customRef((track, trigger) => {
let localValue;
watchSyncEffect(() => {
const propValue = props[name];
if (hasChanged(localValue, propValue)) {
localValue = propValue;
trigger();
}
});
return {
get() {
track();
return options.get ? options.get(localValue) : localValue;
},
set(value) {
const rawProps = i.vnode.props;
if (!(rawProps && // check if parent has passed v-model
(name in rawProps || camelizedName in rawProps || hyphenatedName in rawProps) && (`onUpdate:${name}` in rawProps || `onUpdate:${camelizedName}` in rawProps || `onUpdate:${hyphenatedName}` in rawProps)) && hasChanged(value, localValue)) {
localValue = value;
trigger();
}
i.emit(`update:${name}`, options.set ? options.set(value) : value);
}
};
});
const modifierKey = name === "modelValue" ? "modelModifiers" : `${name}Modifiers`;
res[Symbol.iterator] = () => {
let i2 = 0;
return {
next() {
if (i2 < 2) {
return { value: i2++ ? props[modifierKey] || {} : res, done: false };
} else {
return { done: true };
}
}
};
};
return res;
}
function getContext() { function getContext() {
const i = getCurrentInstance(); const i = getCurrentInstance();
if (!i) { if (!i) {
@ -5674,12 +5651,12 @@ function resolvePropValue(options, props, key, value, instance, isAbsent) {
if (key in propsDefaults) { if (key in propsDefaults) {
value = propsDefaults[key]; value = propsDefaults[key];
} else { } else {
setCurrentInstance(instance); const reset = setCurrentInstance(instance);
value = propsDefaults[key] = defaultValue.call( value = propsDefaults[key] = defaultValue.call(
null, null,
props props
); );
unsetCurrentInstance(); reset();
} }
} else { } else {
value = defaultValue; value = defaultValue;
@ -5900,7 +5877,7 @@ const normalizeSlot = (key, rawSlot, ctx) => {
return rawSlot; return rawSlot;
} }
const normalized = withCtx((...args) => { const normalized = withCtx((...args) => {
if (currentInstance) { if (currentInstance && (!ctx || ctx.root === currentInstance.root)) {
warn$1( 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.` `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.`
); );
@ -6036,9 +6013,10 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
} else { } else {
const _isString = isString(ref); const _isString = isString(ref);
const _isRef = isRef(ref); const _isRef = isRef(ref);
const isVFor = rawRef.f;
if (_isString || _isRef) { if (_isString || _isRef) {
const doSet = () => { const doSet = () => {
if (rawRef.f) { if (isVFor) {
const existing = _isString ? hasOwn(setupState, ref) ? setupState[ref] : refs[ref] : ref.value; const existing = _isString ? hasOwn(setupState, ref) ? setupState[ref] : refs[ref] : ref.value;
if (isUnmount) { if (isUnmount) {
isArray(existing) && remove(existing, refValue); isArray(existing) && remove(existing, refValue);
@ -6071,11 +6049,11 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
warn$1("Invalid template ref type:", ref, `(${typeof ref})`); warn$1("Invalid template ref type:", ref, `(${typeof ref})`);
} }
}; };
if (value) { if (isUnmount || isVFor) {
doSet();
} else {
doSet.id = -1; doSet.id = -1;
queuePostRenderEffect(doSet, parentSuspense); queuePostRenderEffect(doSet, parentSuspense);
} else {
doSet();
} }
} else { } else {
warn$1("Invalid template ref type:", ref, `(${typeof ref})`); warn$1("Invalid template ref type:", ref, `(${typeof ref})`);
@ -6374,7 +6352,7 @@ Server rendered element contains more child nodes than client vdom.`
if (props) { if (props) {
{ {
for (const key in props) { for (const key in props) {
if (propHasMismatch(el, key, props[key])) { if (propHasMismatch(el, key, props[key], vnode)) {
hasMismatch = true; hasMismatch = true;
} }
if (forcePatch && (key.endsWith("value") || key === "indeterminate") || isOn(key) && !isReservedProp(key) || // force hydrate v-bind with .prop modifiers if (forcePatch && (key.endsWith("value") || key === "indeterminate") || isOn(key) && !isReservedProp(key) || // force hydrate v-bind with .prop modifiers
@ -6549,26 +6527,49 @@ Server rendered element contains fewer child nodes than client vdom.`
}; };
return [hydrate, hydrateNode]; return [hydrate, hydrateNode];
} }
function propHasMismatch(el, key, clientValue) { function propHasMismatch(el, key, clientValue, vnode) {
let mismatchType; let mismatchType;
let mismatchKey; let mismatchKey;
let actual; let actual;
let expected; let expected;
if (key === "class") { if (key === "class") {
actual = toClassSet(el.getAttribute("class") || ""); actual = el.getAttribute("class");
expected = toClassSet(normalizeClass(clientValue)); expected = normalizeClass(clientValue);
if (!isSetEqual(actual, expected)) { if (!isSetEqual(toClassSet(actual || ""), toClassSet(expected))) {
mismatchType = mismatchKey = `class`; mismatchType = mismatchKey = `class`;
} }
} else if (key === "style") { } else if (key === "style") {
actual = el.getAttribute("style"); actual = el.getAttribute("style");
expected = isString(clientValue) ? clientValue : stringifyStyle(normalizeStyle(clientValue)); expected = isString(clientValue) ? clientValue : stringifyStyle(normalizeStyle(clientValue));
if (actual !== expected) { const actualMap = toStyleMap(actual);
const expectedMap = toStyleMap(expected);
if (vnode.dirs) {
for (const { dir, value } of vnode.dirs) {
if (dir.name === "show" && !value) {
expectedMap.set("display", "none");
}
}
}
if (!isMapEqual(actualMap, expectedMap)) {
mismatchType = mismatchKey = "style"; mismatchType = mismatchKey = "style";
} }
} else if (el instanceof SVGElement && isKnownSvgAttr(key) || el instanceof HTMLElement && (isBooleanAttr(key) || isKnownHtmlAttr(key))) { } else if (el instanceof SVGElement && isKnownSvgAttr(key) || el instanceof HTMLElement && (isBooleanAttr(key) || isKnownHtmlAttr(key))) {
actual = el.hasAttribute(key) && el.getAttribute(key); if (isBooleanAttr(key)) {
expected = isBooleanAttr(key) ? includeBooleanAttr(clientValue) ? "" : false : clientValue == null ? false : String(clientValue); actual = el.hasAttribute(key);
expected = includeBooleanAttr(clientValue);
} else if (clientValue == null) {
actual = el.hasAttribute(key);
expected = false;
} else {
if (el.hasAttribute(key)) {
actual = el.getAttribute(key);
} else if (key === "value" && el.tagName === "TEXTAREA") {
actual = el.value;
} else {
actual = false;
}
expected = isRenderableAttrValue(clientValue) ? String(clientValue) : false;
}
if (actual !== expected) { if (actual !== expected) {
mismatchType = `attribute`; mismatchType = `attribute`;
mismatchKey = key; mismatchKey = key;
@ -6576,15 +6577,15 @@ function propHasMismatch(el, key, clientValue) {
} }
if (mismatchType) { if (mismatchType) {
const format = (v) => v === false ? `(not rendered)` : `${mismatchKey}="${v}"`; const format = (v) => v === false ? `(not rendered)` : `${mismatchKey}="${v}"`;
warn$1( const preSegment = `Hydration ${mismatchType} mismatch on`;
`Hydration ${mismatchType} mismatch on`, const postSegment = `
el,
`
- rendered on server: ${format(actual)} - rendered on server: ${format(actual)}
- expected on client: ${format(expected)} - expected on client: ${format(expected)}
Note: this mismatch is check-only. The DOM will not be rectified in production due to performance overhead. Note: this mismatch is check-only. The DOM will not be rectified in production due to performance overhead.
You should fix the source of the mismatch.` You should fix the source of the mismatch.`;
); {
warn$1(preSegment, el, postSegment);
}
return true; return true;
} }
return false; return false;
@ -6603,6 +6604,29 @@ function isSetEqual(a, b) {
} }
return true; return true;
} }
function toStyleMap(str) {
const styleMap = /* @__PURE__ */ new Map();
for (const item of str.split(";")) {
let [key, value] = item.split(":");
key = key == null ? void 0 : key.trim();
value = value == null ? void 0 : value.trim();
if (key && value) {
styleMap.set(key, value);
}
}
return styleMap;
}
function isMapEqual(a, b) {
if (a.size !== b.size) {
return false;
}
for (const [key, value] of a) {
if (value !== b.get(key)) {
return false;
}
}
return true;
}
let supported; let supported;
let perf; let perf;
@ -7191,7 +7215,11 @@ function baseCreateRenderer(options, createHydrationFns) {
hostInsert(fragmentStartAnchor, container, anchor); hostInsert(fragmentStartAnchor, container, anchor);
hostInsert(fragmentEndAnchor, container, anchor); hostInsert(fragmentEndAnchor, container, anchor);
mountChildren( mountChildren(
n2.children, // #10007
// such fragment like `<></>` will be compiled into
// a fragment which doesn't have a children.
// In this case fallback to an empty array
n2.children || [],
container, container,
fragmentEndAnchor, fragmentEndAnchor,
parentComponent, parentComponent,
@ -8025,6 +8053,7 @@ function baseCreateRenderer(options, createHydrationFns) {
} }
return hostNextSibling(vnode.anchor || vnode.el); return hostNextSibling(vnode.anchor || vnode.el);
}; };
let isFlushing = false;
const render = (vnode, container, namespace) => { const render = (vnode, container, namespace) => {
if (vnode == null) { if (vnode == null) {
if (container._vnode) { if (container._vnode) {
@ -8041,8 +8070,12 @@ function baseCreateRenderer(options, createHydrationFns) {
namespace namespace
); );
} }
flushPreFlushCbs(); if (!isFlushing) {
flushPostFlushCbs(); isFlushing = true;
flushPreFlushCbs();
flushPostFlushCbs();
isFlushing = false;
}
container._vnode = vnode; container._vnode = vnode;
}; };
const internals = { const internals = {
@ -8897,8 +8930,13 @@ let setInSSRSetupState;
}; };
} }
const setCurrentInstance = (instance) => { const setCurrentInstance = (instance) => {
const prev = currentInstance;
internalSetCurrentInstance(instance); internalSetCurrentInstance(instance);
instance.scope.on(); instance.scope.on();
return () => {
instance.scope.off();
internalSetCurrentInstance(prev);
};
}; };
const unsetCurrentInstance = () => { const unsetCurrentInstance = () => {
currentInstance && currentInstance.scope.off(); currentInstance && currentInstance.scope.off();
@ -8960,7 +8998,7 @@ function setupStatefulComponent(instance, isSSR) {
const { setup } = Component; const { setup } = Component;
if (setup) { if (setup) {
const setupContext = instance.setupContext = setup.length > 1 ? createSetupContext(instance) : null; const setupContext = instance.setupContext = setup.length > 1 ? createSetupContext(instance) : null;
setCurrentInstance(instance); const reset = setCurrentInstance(instance);
pauseTracking(); pauseTracking();
const setupResult = callWithErrorHandling( const setupResult = callWithErrorHandling(
setup, setup,
@ -8972,7 +9010,7 @@ function setupStatefulComponent(instance, isSSR) {
] ]
); );
resetTracking(); resetTracking();
unsetCurrentInstance(); reset();
if (isPromise(setupResult)) { if (isPromise(setupResult)) {
setupResult.then(unsetCurrentInstance, unsetCurrentInstance); setupResult.then(unsetCurrentInstance, unsetCurrentInstance);
if (isSSR) { if (isSSR) {
@ -9066,13 +9104,13 @@ function finishComponentSetup(instance, isSSR, skipOptions) {
} }
} }
{ {
setCurrentInstance(instance); const reset = setCurrentInstance(instance);
pauseTracking(); pauseTracking();
try { try {
applyOptions(instance); applyOptions(instance);
} finally { } finally {
resetTracking(); resetTracking();
unsetCurrentInstance(); reset();
} }
} }
if (!Component.render && instance.render === NOOP && !isSSR) { if (!Component.render && instance.render === NOOP && !isSSR) {
@ -9203,6 +9241,59 @@ const computed = (getterOrOptions, debugOptions) => {
return computed$1(getterOrOptions, debugOptions, isInSSRComponentSetup); return computed$1(getterOrOptions, debugOptions, isInSSRComponentSetup);
}; };
function useModel(props, name, options = EMPTY_OBJ) {
const i = getCurrentInstance();
if (!i) {
warn$1(`useModel() called without active instance.`);
return ref();
}
if (!i.propsOptions[0][name]) {
warn$1(`useModel() called with prop "${name}" which is not declared.`);
return ref();
}
const camelizedName = camelize(name);
const hyphenatedName = hyphenate(name);
const res = customRef((track, trigger) => {
let localValue;
watchSyncEffect(() => {
const propValue = props[name];
if (hasChanged(localValue, propValue)) {
localValue = propValue;
trigger();
}
});
return {
get() {
track();
return options.get ? options.get(localValue) : localValue;
},
set(value) {
const rawProps = i.vnode.props;
if (!(rawProps && // check if parent has passed v-model
(name in rawProps || camelizedName in rawProps || hyphenatedName in rawProps) && (`onUpdate:${name}` in rawProps || `onUpdate:${camelizedName}` in rawProps || `onUpdate:${hyphenatedName}` in rawProps)) && hasChanged(value, localValue)) {
localValue = value;
trigger();
}
i.emit(`update:${name}`, options.set ? options.set(value) : value);
}
};
});
const modifierKey = name === "modelValue" ? "modelModifiers" : `${name}Modifiers`;
res[Symbol.iterator] = () => {
let i2 = 0;
return {
next() {
if (i2 < 2) {
return { value: i2++ ? props[modifierKey] || {} : res, done: false };
} else {
return { done: true };
}
}
};
};
return res;
}
function h(type, propsOrChildren, children) { function h(type, propsOrChildren, children) {
const l = arguments.length; const l = arguments.length;
if (l === 2) { if (l === 2) {
@ -9425,7 +9516,7 @@ function isMemoSame(cached, memo) {
return true; return true;
} }
const version = "3.4.5"; const version = "3.4.15";
const warn = warn$1 ; const warn = warn$1 ;
const ErrorTypeStrings = ErrorTypeStrings$1 ; const ErrorTypeStrings = ErrorTypeStrings$1 ;
const devtools = devtools$1 ; const devtools = devtools$1 ;
@ -9822,6 +9913,9 @@ const vShow = {
setDisplay(el, value); setDisplay(el, value);
} }
}; };
{
vShow.name = "show";
}
function setDisplay(el, value) { function setDisplay(el, value) {
el.style.display = value ? el[vShowOldKey] : "none"; el.style.display = value ? el[vShowOldKey] : "none";
} }
@ -9891,6 +9985,7 @@ function setVarsOnNode(el, vars) {
function patchStyle(el, prev, next) { function patchStyle(el, prev, next) {
const style = el.style; const style = el.style;
const currentDisplay = style.display;
const isCssString = isString(next); const isCssString = isString(next);
if (next && !isCssString) { if (next && !isCssString) {
if (prev && !isString(prev)) { if (prev && !isString(prev)) {
@ -9904,7 +9999,6 @@ function patchStyle(el, prev, next) {
setStyle(style, key, next[key]); setStyle(style, key, next[key]);
} }
} else { } else {
const currentDisplay = style.display;
if (isCssString) { if (isCssString) {
if (prev !== next) { if (prev !== next) {
const cssVarText = style[CSS_VAR_TEXT]; const cssVarText = style[CSS_VAR_TEXT];
@ -9916,9 +10010,9 @@ function patchStyle(el, prev, next) {
} else if (prev) { } else if (prev) {
el.removeAttribute("style"); el.removeAttribute("style");
} }
if (vShowOldKey in el) { }
style.display = currentDisplay; if (vShowOldKey in el) {
} style.display = currentDisplay;
} }
} }
const semicolonRE = /[^\\];\s*$/; const semicolonRE = /[^\\];\s*$/;
@ -10685,35 +10779,52 @@ const vModelSelect = {
el[assignKey]( el[assignKey](
el.multiple ? isSetModel ? new Set(selectedVal) : selectedVal : selectedVal[0] el.multiple ? isSetModel ? new Set(selectedVal) : selectedVal : selectedVal[0]
); );
el._assigning = true;
nextTick(() => {
el._assigning = false;
});
}); });
el[assignKey] = getModelAssigner(vnode); el[assignKey] = getModelAssigner(vnode);
}, },
// set value in mounted & updated because <select> relies on its children // set value in mounted & updated because <select> relies on its children
// <option>s. // <option>s.
mounted(el, { value }) { mounted(el, { value, oldValue, modifiers: { number } }) {
setSelected(el, value); setSelected(el, value, oldValue, number);
}, },
beforeUpdate(el, _binding, vnode) { beforeUpdate(el, _binding, vnode) {
el[assignKey] = getModelAssigner(vnode); el[assignKey] = getModelAssigner(vnode);
}, },
updated(el, { value }) { updated(el, { value, oldValue, modifiers: { number } }) {
setSelected(el, value); if (!el._assigning) {
setSelected(el, value, oldValue, number);
}
} }
}; };
function setSelected(el, value) { function setSelected(el, value, oldValue, number) {
const isMultiple = el.multiple; const isMultiple = el.multiple;
if (isMultiple && !isArray(value) && !isSet(value)) { const isArrayValue = isArray(value);
if (isMultiple && !isArrayValue && !isSet(value)) {
warn( warn(
`<select multiple v-model> expects an Array or Set value for its binding, but got ${Object.prototype.toString.call(value).slice(8, -1)}.` `<select multiple v-model> expects an Array or Set value for its binding, but got ${Object.prototype.toString.call(value).slice(8, -1)}.`
); );
return; return;
} }
if (isArrayValue && looseEqual(value, oldValue)) {
return;
}
for (let i = 0, l = el.options.length; i < l; i++) { for (let i = 0, l = el.options.length; i < l; i++) {
const option = el.options[i]; const option = el.options[i];
const optionValue = getValue(option); const optionValue = getValue(option);
if (isMultiple) { if (isMultiple) {
if (isArray(value)) { if (isArrayValue) {
option.selected = looseIndexOf(value, optionValue) > -1; const optionType = typeof optionValue;
if (optionType === "string" || optionType === "number") {
option.selected = value.includes(
number ? looseToNumber(optionValue) : optionValue
);
} else {
option.selected = looseIndexOf(value, optionValue) > -1;
}
} else { } else {
option.selected = value.has(optionValue); option.selected = value.has(optionValue);
} }

File diff suppressed because one or more lines are too long

View file

@ -1,3 +1,8 @@
/**
* @vue/runtime-dom v3.4.15
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/
import { h, BaseTransition, BaseTransitionPropsValidators, assertNumber, getCurrentInstance, warn, watchPostEffect, onMounted, onUnmounted, Fragment, Static, camelize, callWithAsyncErrorHandling, defineComponent, nextTick, createVNode, useTransitionState, onUpdated, toRaw, getTransitionRawChildren, setTransitionHooks, resolveTransitionHooks, isRuntimeOnly, createRenderer, createHydrationRenderer } from '@vue/runtime-core'; import { h, BaseTransition, BaseTransitionPropsValidators, assertNumber, getCurrentInstance, warn, watchPostEffect, onMounted, onUnmounted, Fragment, Static, camelize, callWithAsyncErrorHandling, defineComponent, nextTick, createVNode, useTransitionState, onUpdated, toRaw, getTransitionRawChildren, setTransitionHooks, resolveTransitionHooks, isRuntimeOnly, createRenderer, createHydrationRenderer } from '@vue/runtime-core';
export * from '@vue/runtime-core'; export * from '@vue/runtime-core';
import { extend, isObject, toNumber, isArray, isString, hyphenate, capitalize, isSpecialBooleanAttr, includeBooleanAttr, isOn, isModelListener, isFunction, camelize as camelize$1, EMPTY_OBJ, looseToNumber, looseIndexOf, isSet, looseEqual, invokeArrayFns, isHTMLTag, isSVGTag, isMathMLTag } from '@vue/shared'; import { extend, isObject, toNumber, isArray, isString, hyphenate, capitalize, isSpecialBooleanAttr, includeBooleanAttr, isOn, isModelListener, isFunction, camelize as camelize$1, EMPTY_OBJ, looseToNumber, looseIndexOf, isSet, looseEqual, invokeArrayFns, isHTMLTag, isSVGTag, isMathMLTag } from '@vue/shared';
@ -389,6 +394,9 @@ const vShow = {
setDisplay(el, value); setDisplay(el, value);
} }
}; };
if (!!(process.env.NODE_ENV !== "production")) {
vShow.name = "show";
}
function setDisplay(el, value) { function setDisplay(el, value) {
el.style.display = value ? el[vShowOldKey] : "none"; el.style.display = value ? el[vShowOldKey] : "none";
} }
@ -465,6 +473,7 @@ function setVarsOnNode(el, vars) {
function patchStyle(el, prev, next) { function patchStyle(el, prev, next) {
const style = el.style; const style = el.style;
const currentDisplay = style.display;
const isCssString = isString(next); const isCssString = isString(next);
if (next && !isCssString) { if (next && !isCssString) {
if (prev && !isString(prev)) { if (prev && !isString(prev)) {
@ -478,7 +487,6 @@ function patchStyle(el, prev, next) {
setStyle(style, key, next[key]); setStyle(style, key, next[key]);
} }
} else { } else {
const currentDisplay = style.display;
if (isCssString) { if (isCssString) {
if (prev !== next) { if (prev !== next) {
const cssVarText = style[CSS_VAR_TEXT]; const cssVarText = style[CSS_VAR_TEXT];
@ -490,9 +498,9 @@ function patchStyle(el, prev, next) {
} else if (prev) { } else if (prev) {
el.removeAttribute("style"); el.removeAttribute("style");
} }
if (vShowOldKey in el) { }
style.display = currentDisplay; if (vShowOldKey in el) {
} style.display = currentDisplay;
} }
} }
const semicolonRE = /[^\\];\s*$/; const semicolonRE = /[^\\];\s*$/;
@ -1259,35 +1267,52 @@ const vModelSelect = {
el[assignKey]( el[assignKey](
el.multiple ? isSetModel ? new Set(selectedVal) : selectedVal : selectedVal[0] el.multiple ? isSetModel ? new Set(selectedVal) : selectedVal : selectedVal[0]
); );
el._assigning = true;
nextTick(() => {
el._assigning = false;
});
}); });
el[assignKey] = getModelAssigner(vnode); el[assignKey] = getModelAssigner(vnode);
}, },
// set value in mounted & updated because <select> relies on its children // set value in mounted & updated because <select> relies on its children
// <option>s. // <option>s.
mounted(el, { value }) { mounted(el, { value, oldValue, modifiers: { number } }) {
setSelected(el, value); setSelected(el, value, oldValue, number);
}, },
beforeUpdate(el, _binding, vnode) { beforeUpdate(el, _binding, vnode) {
el[assignKey] = getModelAssigner(vnode); el[assignKey] = getModelAssigner(vnode);
}, },
updated(el, { value }) { updated(el, { value, oldValue, modifiers: { number } }) {
setSelected(el, value); if (!el._assigning) {
setSelected(el, value, oldValue, number);
}
} }
}; };
function setSelected(el, value) { function setSelected(el, value, oldValue, number) {
const isMultiple = el.multiple; const isMultiple = el.multiple;
if (isMultiple && !isArray(value) && !isSet(value)) { const isArrayValue = isArray(value);
if (isMultiple && !isArrayValue && !isSet(value)) {
!!(process.env.NODE_ENV !== "production") && warn( !!(process.env.NODE_ENV !== "production") && warn(
`<select multiple v-model> expects an Array or Set value for its binding, but got ${Object.prototype.toString.call(value).slice(8, -1)}.` `<select multiple v-model> expects an Array or Set value for its binding, but got ${Object.prototype.toString.call(value).slice(8, -1)}.`
); );
return; return;
} }
if (isArrayValue && looseEqual(value, oldValue)) {
return;
}
for (let i = 0, l = el.options.length; i < l; i++) { for (let i = 0, l = el.options.length; i < l; i++) {
const option = el.options[i]; const option = el.options[i];
const optionValue = getValue(option); const optionValue = getValue(option);
if (isMultiple) { if (isMultiple) {
if (isArray(value)) { if (isArrayValue) {
option.selected = looseIndexOf(value, optionValue) > -1; const optionType = typeof optionValue;
if (optionType === "string" || optionType === "number") {
option.selected = value.includes(
number ? looseToNumber(optionValue) : optionValue
);
} else {
option.selected = looseIndexOf(value, optionValue) > -1;
}
} else { } else {
option.selected = value.has(optionValue); option.selected = value.has(optionValue);
} }

View file

@ -1,3 +1,8 @@
/**
* @vue/runtime-dom v3.4.15
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/
var VueRuntimeDOM = (function (exports) { var VueRuntimeDOM = (function (exports) {
'use strict'; 'use strict';
@ -198,6 +203,13 @@ var VueRuntimeDOM = (function (exports) {
const isKnownSvgAttr = /* @__PURE__ */ makeMap( const isKnownSvgAttr = /* @__PURE__ */ makeMap(
`xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,color-interpolation-filters,color-profile,color-rendering,contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,font-family,font-size,font-size-adjust,font-stretch,font-style,font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,overflow,overline-position,overline-thickness,panose-1,paint-order,path,pathLength,patternContentUnits,patternTransform,patternUnits,ping,pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,specularConstant,specularExponent,speed,spreadMethod,startOffset,stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,string,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,text-decoration,text-rendering,textLength,to,transform,transform-origin,type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xmlns:xlink,xml:base,xml:lang,xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan` `xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,color-interpolation-filters,color-profile,color-rendering,contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,font-family,font-size,font-size-adjust,font-stretch,font-style,font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,overflow,overline-position,overline-thickness,panose-1,paint-order,path,pathLength,patternContentUnits,patternTransform,patternUnits,ping,pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,specularConstant,specularExponent,speed,spreadMethod,startOffset,stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,string,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,text-decoration,text-rendering,textLength,to,transform,transform-origin,type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xmlns:xlink,xml:base,xml:lang,xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan`
); );
function isRenderableAttrValue(value) {
if (value == null) {
return false;
}
const type = typeof value;
return type === "string" || type === "number" || type === "boolean";
}
function looseCompareArrays(a, b) { function looseCompareArrays(a, b) {
if (a.length !== b.length) if (a.length !== b.length)
@ -398,7 +410,7 @@ var VueRuntimeDOM = (function (exports) {
/** /**
* @internal * @internal
*/ */
this._dirtyLevel = 3; this._dirtyLevel = 2;
/** /**
* @internal * @internal
*/ */
@ -410,7 +422,7 @@ var VueRuntimeDOM = (function (exports) {
/** /**
* @internal * @internal
*/ */
this._queryings = 0; this._shouldSchedule = false;
/** /**
* @internal * @internal
*/ */
@ -419,10 +431,9 @@ var VueRuntimeDOM = (function (exports) {
} }
get dirty() { get dirty() {
if (this._dirtyLevel === 1) { if (this._dirtyLevel === 1) {
this._dirtyLevel = 0;
this._queryings++;
pauseTracking(); pauseTracking();
for (const dep of this.deps) { for (let i = 0; i < this._depsLength; i++) {
const dep = this.deps[i];
if (dep.computed) { if (dep.computed) {
triggerComputed(dep.computed); triggerComputed(dep.computed);
if (this._dirtyLevel >= 2) { if (this._dirtyLevel >= 2) {
@ -430,13 +441,15 @@ var VueRuntimeDOM = (function (exports) {
} }
} }
} }
if (this._dirtyLevel < 2) {
this._dirtyLevel = 0;
}
resetTracking(); resetTracking();
this._queryings--;
} }
return this._dirtyLevel >= 2; return this._dirtyLevel >= 2;
} }
set dirty(v) { set dirty(v) {
this._dirtyLevel = v ? 3 : 0; this._dirtyLevel = v ? 2 : 0;
} }
run() { run() {
this._dirtyLevel = 0; this._dirtyLevel = 0;
@ -559,25 +572,29 @@ var VueRuntimeDOM = (function (exports) {
var _a; var _a;
pauseScheduling(); pauseScheduling();
for (const effect2 of dep.keys()) { for (const effect2 of dep.keys()) {
if (!effect2.allowRecurse && effect2._runnings) { if (effect2._dirtyLevel < dirtyLevel && dep.get(effect2) === effect2._trackId) {
continue;
}
if (effect2._dirtyLevel < dirtyLevel && (!effect2._runnings || dirtyLevel !== 2)) {
const lastDirtyLevel = effect2._dirtyLevel; const lastDirtyLevel = effect2._dirtyLevel;
effect2._dirtyLevel = dirtyLevel; effect2._dirtyLevel = dirtyLevel;
if (lastDirtyLevel === 0 && (!effect2._queryings || dirtyLevel !== 2)) { if (lastDirtyLevel === 0) {
effect2._shouldSchedule = true;
{ {
(_a = effect2.onTrigger) == null ? void 0 : _a.call(effect2, extend({ effect: effect2 }, debuggerEventExtraInfo)); (_a = effect2.onTrigger) == null ? void 0 : _a.call(effect2, extend({ effect: effect2 }, debuggerEventExtraInfo));
} }
effect2.trigger(); effect2.trigger();
if (effect2.scheduler) {
queueEffectSchedulers.push(effect2.scheduler);
}
} }
} }
} }
scheduleEffects(dep);
resetScheduling(); resetScheduling();
} }
function scheduleEffects(dep) {
for (const effect2 of dep.keys()) {
if (effect2.scheduler && effect2._shouldSchedule && (!effect2._runnings || effect2.allowRecurse) && dep.get(effect2) === effect2._trackId) {
effect2._shouldSchedule = false;
queueEffectSchedulers.push(effect2.scheduler);
}
}
}
const createDep = (cleanup, computed) => { const createDep = (cleanup, computed) => {
const dep = /* @__PURE__ */ new Map(); const dep = /* @__PURE__ */ new Map();
@ -660,7 +677,7 @@ var VueRuntimeDOM = (function (exports) {
if (dep) { if (dep) {
triggerEffects( triggerEffects(
dep, dep,
3, 2,
{ {
target, target,
type, type,
@ -1259,7 +1276,8 @@ var VueRuntimeDOM = (function (exports) {
this["__v_isReadonly"] = false; this["__v_isReadonly"] = false;
this.effect = new ReactiveEffect( this.effect = new ReactiveEffect(
() => getter(this._value), () => getter(this._value),
() => triggerRefValue(this, 1) () => triggerRefValue(this, 1),
() => this.dep && scheduleEffects(this.dep)
); );
this.effect.computed = this; this.effect.computed = this;
this.effect.active = this._cacheable = !isSSR; this.effect.active = this._cacheable = !isSSR;
@ -1267,12 +1285,15 @@ var VueRuntimeDOM = (function (exports) {
} }
get value() { get value() {
const self = toRaw(this); const self = toRaw(this);
trackRefValue(self);
if (!self._cacheable || self.effect.dirty) { if (!self._cacheable || self.effect.dirty) {
if (hasChanged(self._value, self._value = self.effect.run())) { if (hasChanged(self._value, self._value = self.effect.run())) {
triggerRefValue(self, 2); triggerRefValue(self, 2);
} }
} }
trackRefValue(self);
if (self.effect._dirtyLevel >= 1) {
triggerRefValue(self, 1);
}
return self._value; return self._value;
} }
set value(newValue) { set value(newValue) {
@ -1325,7 +1346,7 @@ var VueRuntimeDOM = (function (exports) {
); );
} }
} }
function triggerRefValue(ref2, dirtyLevel = 3, newVal) { function triggerRefValue(ref2, dirtyLevel = 2, newVal) {
ref2 = toRaw(ref2); ref2 = toRaw(ref2);
const dep = ref2.dep; const dep = ref2.dep;
if (dep) { if (dep) {
@ -1374,12 +1395,12 @@ var VueRuntimeDOM = (function (exports) {
if (hasChanged(newVal, this._rawValue)) { if (hasChanged(newVal, this._rawValue)) {
this._rawValue = newVal; this._rawValue = newVal;
this._value = useDirectValue ? newVal : toReactive(newVal); this._value = useDirectValue ? newVal : toReactive(newVal);
triggerRefValue(this, 3, newVal); triggerRefValue(this, 2, newVal);
} }
} }
} }
function triggerRef(ref2) { function triggerRef(ref2) {
triggerRefValue(ref2, 3, ref2.value ); triggerRefValue(ref2, 2, ref2.value );
} }
function unref(ref2) { function unref(ref2) {
return isRef(ref2) ? ref2.value : ref2; return isRef(ref2) ? ref2.value : ref2;
@ -1827,7 +1848,9 @@ var VueRuntimeDOM = (function (exports) {
} }
function flushPostFlushCbs(seen) { function flushPostFlushCbs(seen) {
if (pendingPostFlushCbs.length) { if (pendingPostFlushCbs.length) {
const deduped = [...new Set(pendingPostFlushCbs)]; const deduped = [...new Set(pendingPostFlushCbs)].sort(
(a, b) => getId(a) - getId(b)
);
pendingPostFlushCbs.length = 0; pendingPostFlushCbs.length = 0;
if (activePostFlushCbs) { if (activePostFlushCbs) {
activePostFlushCbs.push(...deduped); activePostFlushCbs.push(...deduped);
@ -1837,7 +1860,6 @@ var VueRuntimeDOM = (function (exports) {
{ {
seen = seen || /* @__PURE__ */ new Map(); seen = seen || /* @__PURE__ */ new Map();
} }
activePostFlushCbs.sort((a, b) => getId(a) - getId(b));
for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) { for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) {
if (checkRecursiveUpdates(seen, activePostFlushCbs[postFlushIndex])) { if (checkRecursiveUpdates(seen, activePostFlushCbs[postFlushIndex])) {
continue; continue;
@ -2461,9 +2483,11 @@ var VueRuntimeDOM = (function (exports) {
const getChildRoot = (vnode) => { const getChildRoot = (vnode) => {
const rawChildren = vnode.children; const rawChildren = vnode.children;
const dynamicChildren = vnode.dynamicChildren; const dynamicChildren = vnode.dynamicChildren;
const childRoot = filterSingleRoot(rawChildren); const childRoot = filterSingleRoot(rawChildren, false);
if (!childRoot) { if (!childRoot) {
return [vnode, void 0]; return [vnode, void 0];
} else if (childRoot.patchFlag > 0 && childRoot.patchFlag & 2048) {
return getChildRoot(childRoot);
} }
const index = rawChildren.indexOf(childRoot); const index = rawChildren.indexOf(childRoot);
const dynamicIndex = dynamicChildren ? dynamicChildren.indexOf(childRoot) : -1; const dynamicIndex = dynamicChildren ? dynamicChildren.indexOf(childRoot) : -1;
@ -2479,7 +2503,7 @@ var VueRuntimeDOM = (function (exports) {
}; };
return [normalizeVNode(childRoot), setRoot]; return [normalizeVNode(childRoot), setRoot];
}; };
function filterSingleRoot(children) { function filterSingleRoot(children, recurse = true) {
let singleRoot; let singleRoot;
for (let i = 0; i < children.length; i++) { for (let i = 0; i < children.length; i++) {
const child = children[i]; const child = children[i];
@ -2489,6 +2513,9 @@ var VueRuntimeDOM = (function (exports) {
return; return;
} else { } else {
singleRoot = child; singleRoot = child;
if (recurse && singleRoot.patchFlag > 0 && singleRoot.patchFlag & 2048) {
return filterSingleRoot(singleRoot.children);
}
} }
} }
} else { } else {
@ -2579,8 +2606,6 @@ var VueRuntimeDOM = (function (exports) {
return false; return false;
} }
function updateHOCHostEl({ vnode, parent }, el) { function updateHOCHostEl({ vnode, parent }, el) {
if (!el)
return;
while (parent) { while (parent) {
const root = parent.subTree; const root = parent.subTree;
if (root.suspense && root.suspense.activeBranch === vnode) { if (root.suspense && root.suspense.activeBranch === vnode) {
@ -2672,6 +2697,10 @@ If this is a native custom element, make sure to exclude it from component resol
rendererInternals rendererInternals
); );
} else { } else {
if (parentSuspense && parentSuspense.deps > 0) {
n2.suspense = n1.suspense;
return;
}
patchSuspense( patchSuspense(
n1, n1,
n2, n2,
@ -2930,6 +2959,7 @@ If this is a native custom element, make sure to exclude it from component resol
{ {
assertNumber(timeout, `Suspense timeout`); assertNumber(timeout, `Suspense timeout`);
} }
const initialAnchor = anchor;
const suspense = { const suspense = {
vnode, vnode,
parent: parentSuspense, parent: parentSuspense,
@ -2937,7 +2967,6 @@ If this is a native custom element, make sure to exclude it from component resol
namespace, namespace,
container, container,
hiddenContainer, hiddenContainer,
anchor,
deps: 0, deps: 0,
pendingId: suspenseId++, pendingId: suspenseId++,
timeout: typeof timeout === "number" ? timeout : -1, timeout: typeof timeout === "number" ? timeout : -1,
@ -2980,20 +3009,21 @@ If this is a native custom element, make sure to exclude it from component resol
move( move(
pendingBranch, pendingBranch,
container2, container2,
next(activeBranch), anchor === initialAnchor ? next(activeBranch) : anchor,
0 0
); );
queuePostFlushCb(effects); queuePostFlushCb(effects);
} }
}; };
} }
let { anchor: anchor2 } = suspense;
if (activeBranch) { if (activeBranch) {
anchor2 = next(activeBranch); if (parentNode(activeBranch.el) !== suspense.hiddenContainer) {
anchor = next(activeBranch);
}
unmount(activeBranch, parentComponent2, suspense, true); unmount(activeBranch, parentComponent2, suspense, true);
} }
if (!delayEnter) { if (!delayEnter) {
move(pendingBranch, container2, anchor2, 0); move(pendingBranch, container2, anchor, 0);
} }
} }
setActiveBranch(suspense, pendingBranch); setActiveBranch(suspense, pendingBranch);
@ -3220,7 +3250,12 @@ If this is a native custom element, make sure to exclude it from component resol
function setActiveBranch(suspense, branch) { function setActiveBranch(suspense, branch) {
suspense.activeBranch = branch; suspense.activeBranch = branch;
const { vnode, parentComponent } = suspense; const { vnode, parentComponent } = suspense;
const el = vnode.el = branch.el; let el = branch.el;
while (!el && branch.component) {
branch = branch.component.subTree;
el = branch.el;
}
vnode.el = el;
if (parentComponent && parentComponent.subTree === vnode) { if (parentComponent && parentComponent.subTree === vnode) {
parentComponent.vnode.el = el; parentComponent.vnode.el = el;
updateHOCHostEl(parentComponent, el); updateHOCHostEl(parentComponent, el);
@ -3440,14 +3475,9 @@ If this is a native custom element, make sure to exclude it from component resol
cb = value.handler; cb = value.handler;
options = value; options = value;
} }
const cur = currentInstance; const reset = setCurrentInstance(this);
setCurrentInstance(this);
const res = doWatch(getter, cb.bind(publicThis), options); const res = doWatch(getter, cb.bind(publicThis), options);
if (cur) { reset();
setCurrentInstance(cur);
} else {
unsetCurrentInstance();
}
return res; return res;
} }
function createPathGetter(ctx, path) { function createPathGetter(ctx, path) {
@ -3499,12 +3529,11 @@ If this is a native custom element, make sure to exclude it from component resol
} }
} }
function withDirectives(vnode, directives) { function withDirectives(vnode, directives) {
const internalInstance = currentRenderingInstance; if (currentRenderingInstance === null) {
if (internalInstance === null) {
warn$1(`withDirectives can only be used inside render functions.`); warn$1(`withDirectives can only be used inside render functions.`);
return vnode; return vnode;
} }
const instance = getExposeProxy(internalInstance) || internalInstance.proxy; const instance = getExposeProxy(currentRenderingInstance) || currentRenderingInstance.proxy;
const bindings = vnode.dirs || (vnode.dirs = []); const bindings = vnode.dirs || (vnode.dirs = []);
for (let i = 0; i < directives.length; i++) { for (let i = 0; i < directives.length; i++) {
let [dir, value, arg, modifiers = EMPTY_OBJ] = directives[i]; let [dir, value, arg, modifiers = EMPTY_OBJ] = directives[i];
@ -4284,9 +4313,9 @@ If this is a native custom element, make sure to exclude it from component resol
return; return;
} }
pauseTracking(); pauseTracking();
setCurrentInstance(target); const reset = setCurrentInstance(target);
const res = callWithAsyncErrorHandling(hook, target, type, args); const res = callWithAsyncErrorHandling(hook, target, type, args);
unsetCurrentInstance(); reset();
resetTracking(); resetTracking();
return res; return res;
}); });
@ -4739,58 +4768,6 @@ If this is a native custom element, make sure to exclude it from component resol
function useAttrs() { function useAttrs() {
return getContext().attrs; return getContext().attrs;
} }
function useModel(props, name, options = EMPTY_OBJ) {
const i = getCurrentInstance();
if (!i) {
warn$1(`useModel() called without active instance.`);
return ref();
}
if (!i.propsOptions[0][name]) {
warn$1(`useModel() called with prop "${name}" which is not declared.`);
return ref();
}
const camelizedName = camelize(name);
const hyphenatedName = hyphenate(name);
const res = customRef((track, trigger) => {
let localValue;
watchSyncEffect(() => {
const propValue = props[name];
if (hasChanged(localValue, propValue)) {
localValue = propValue;
trigger();
}
});
return {
get() {
track();
return options.get ? options.get(localValue) : localValue;
},
set(value) {
const rawProps = i.vnode.props;
if (!(rawProps && // check if parent has passed v-model
(name in rawProps || camelizedName in rawProps || hyphenatedName in rawProps) && (`onUpdate:${name}` in rawProps || `onUpdate:${camelizedName}` in rawProps || `onUpdate:${hyphenatedName}` in rawProps)) && hasChanged(value, localValue)) {
localValue = value;
trigger();
}
i.emit(`update:${name}`, options.set ? options.set(value) : value);
}
};
});
const modifierKey = name === "modelValue" ? "modelModifiers" : `${name}Modifiers`;
res[Symbol.iterator] = () => {
let i2 = 0;
return {
next() {
if (i2 < 2) {
return { value: i2++ ? props[modifierKey] || {} : res, done: false };
} else {
return { done: true };
}
}
};
};
return res;
}
function getContext() { function getContext() {
const i = getCurrentInstance(); const i = getCurrentInstance();
if (!i) { if (!i) {
@ -5671,12 +5648,12 @@ If you want to remount the same app, move your app creation logic into a factory
if (key in propsDefaults) { if (key in propsDefaults) {
value = propsDefaults[key]; value = propsDefaults[key];
} else { } else {
setCurrentInstance(instance); const reset = setCurrentInstance(instance);
value = propsDefaults[key] = defaultValue.call( value = propsDefaults[key] = defaultValue.call(
null, null,
props props
); );
unsetCurrentInstance(); reset();
} }
} else { } else {
value = defaultValue; value = defaultValue;
@ -5897,7 +5874,7 @@ If you want to remount the same app, move your app creation logic into a factory
return rawSlot; return rawSlot;
} }
const normalized = withCtx((...args) => { const normalized = withCtx((...args) => {
if (currentInstance) { if (currentInstance && (!ctx || ctx.root === currentInstance.root)) {
warn$1( 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.` `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.`
); );
@ -6033,9 +6010,10 @@ If you want to remount the same app, move your app creation logic into a factory
} else { } else {
const _isString = isString(ref); const _isString = isString(ref);
const _isRef = isRef(ref); const _isRef = isRef(ref);
const isVFor = rawRef.f;
if (_isString || _isRef) { if (_isString || _isRef) {
const doSet = () => { const doSet = () => {
if (rawRef.f) { if (isVFor) {
const existing = _isString ? hasOwn(setupState, ref) ? setupState[ref] : refs[ref] : ref.value; const existing = _isString ? hasOwn(setupState, ref) ? setupState[ref] : refs[ref] : ref.value;
if (isUnmount) { if (isUnmount) {
isArray(existing) && remove(existing, refValue); isArray(existing) && remove(existing, refValue);
@ -6068,11 +6046,11 @@ If you want to remount the same app, move your app creation logic into a factory
warn$1("Invalid template ref type:", ref, `(${typeof ref})`); warn$1("Invalid template ref type:", ref, `(${typeof ref})`);
} }
}; };
if (value) { if (isUnmount || isVFor) {
doSet();
} else {
doSet.id = -1; doSet.id = -1;
queuePostRenderEffect(doSet, parentSuspense); queuePostRenderEffect(doSet, parentSuspense);
} else {
doSet();
} }
} else { } else {
warn$1("Invalid template ref type:", ref, `(${typeof ref})`); warn$1("Invalid template ref type:", ref, `(${typeof ref})`);
@ -6371,7 +6349,7 @@ Server rendered element contains more child nodes than client vdom.`
if (props) { if (props) {
{ {
for (const key in props) { for (const key in props) {
if (propHasMismatch(el, key, props[key])) { if (propHasMismatch(el, key, props[key], vnode)) {
hasMismatch = true; hasMismatch = true;
} }
if (forcePatch && (key.endsWith("value") || key === "indeterminate") || isOn(key) && !isReservedProp(key) || // force hydrate v-bind with .prop modifiers if (forcePatch && (key.endsWith("value") || key === "indeterminate") || isOn(key) && !isReservedProp(key) || // force hydrate v-bind with .prop modifiers
@ -6546,26 +6524,49 @@ Server rendered element contains fewer child nodes than client vdom.`
}; };
return [hydrate, hydrateNode]; return [hydrate, hydrateNode];
} }
function propHasMismatch(el, key, clientValue) { function propHasMismatch(el, key, clientValue, vnode) {
let mismatchType; let mismatchType;
let mismatchKey; let mismatchKey;
let actual; let actual;
let expected; let expected;
if (key === "class") { if (key === "class") {
actual = toClassSet(el.getAttribute("class") || ""); actual = el.getAttribute("class");
expected = toClassSet(normalizeClass(clientValue)); expected = normalizeClass(clientValue);
if (!isSetEqual(actual, expected)) { if (!isSetEqual(toClassSet(actual || ""), toClassSet(expected))) {
mismatchType = mismatchKey = `class`; mismatchType = mismatchKey = `class`;
} }
} else if (key === "style") { } else if (key === "style") {
actual = el.getAttribute("style"); actual = el.getAttribute("style");
expected = isString(clientValue) ? clientValue : stringifyStyle(normalizeStyle(clientValue)); expected = isString(clientValue) ? clientValue : stringifyStyle(normalizeStyle(clientValue));
if (actual !== expected) { const actualMap = toStyleMap(actual);
const expectedMap = toStyleMap(expected);
if (vnode.dirs) {
for (const { dir, value } of vnode.dirs) {
if (dir.name === "show" && !value) {
expectedMap.set("display", "none");
}
}
}
if (!isMapEqual(actualMap, expectedMap)) {
mismatchType = mismatchKey = "style"; mismatchType = mismatchKey = "style";
} }
} else if (el instanceof SVGElement && isKnownSvgAttr(key) || el instanceof HTMLElement && (isBooleanAttr(key) || isKnownHtmlAttr(key))) { } else if (el instanceof SVGElement && isKnownSvgAttr(key) || el instanceof HTMLElement && (isBooleanAttr(key) || isKnownHtmlAttr(key))) {
actual = el.hasAttribute(key) && el.getAttribute(key); if (isBooleanAttr(key)) {
expected = isBooleanAttr(key) ? includeBooleanAttr(clientValue) ? "" : false : clientValue == null ? false : String(clientValue); actual = el.hasAttribute(key);
expected = includeBooleanAttr(clientValue);
} else if (clientValue == null) {
actual = el.hasAttribute(key);
expected = false;
} else {
if (el.hasAttribute(key)) {
actual = el.getAttribute(key);
} else if (key === "value" && el.tagName === "TEXTAREA") {
actual = el.value;
} else {
actual = false;
}
expected = isRenderableAttrValue(clientValue) ? String(clientValue) : false;
}
if (actual !== expected) { if (actual !== expected) {
mismatchType = `attribute`; mismatchType = `attribute`;
mismatchKey = key; mismatchKey = key;
@ -6573,15 +6574,15 @@ Server rendered element contains fewer child nodes than client vdom.`
} }
if (mismatchType) { if (mismatchType) {
const format = (v) => v === false ? `(not rendered)` : `${mismatchKey}="${v}"`; const format = (v) => v === false ? `(not rendered)` : `${mismatchKey}="${v}"`;
warn$1( const preSegment = `Hydration ${mismatchType} mismatch on`;
`Hydration ${mismatchType} mismatch on`, const postSegment = `
el,
`
- rendered on server: ${format(actual)} - rendered on server: ${format(actual)}
- expected on client: ${format(expected)} - expected on client: ${format(expected)}
Note: this mismatch is check-only. The DOM will not be rectified in production due to performance overhead. Note: this mismatch is check-only. The DOM will not be rectified in production due to performance overhead.
You should fix the source of the mismatch.` You should fix the source of the mismatch.`;
); {
warn$1(preSegment, el, postSegment);
}
return true; return true;
} }
return false; return false;
@ -6600,6 +6601,29 @@ Server rendered element contains fewer child nodes than client vdom.`
} }
return true; return true;
} }
function toStyleMap(str) {
const styleMap = /* @__PURE__ */ new Map();
for (const item of str.split(";")) {
let [key, value] = item.split(":");
key = key == null ? void 0 : key.trim();
value = value == null ? void 0 : value.trim();
if (key && value) {
styleMap.set(key, value);
}
}
return styleMap;
}
function isMapEqual(a, b) {
if (a.size !== b.size) {
return false;
}
for (const [key, value] of a) {
if (value !== b.get(key)) {
return false;
}
}
return true;
}
let supported; let supported;
let perf; let perf;
@ -7188,7 +7212,11 @@ Server rendered element contains fewer child nodes than client vdom.`
hostInsert(fragmentStartAnchor, container, anchor); hostInsert(fragmentStartAnchor, container, anchor);
hostInsert(fragmentEndAnchor, container, anchor); hostInsert(fragmentEndAnchor, container, anchor);
mountChildren( mountChildren(
n2.children, // #10007
// such fragment like `<></>` will be compiled into
// a fragment which doesn't have a children.
// In this case fallback to an empty array
n2.children || [],
container, container,
fragmentEndAnchor, fragmentEndAnchor,
parentComponent, parentComponent,
@ -8022,6 +8050,7 @@ Server rendered element contains fewer child nodes than client vdom.`
} }
return hostNextSibling(vnode.anchor || vnode.el); return hostNextSibling(vnode.anchor || vnode.el);
}; };
let isFlushing = false;
const render = (vnode, container, namespace) => { const render = (vnode, container, namespace) => {
if (vnode == null) { if (vnode == null) {
if (container._vnode) { if (container._vnode) {
@ -8038,8 +8067,12 @@ Server rendered element contains fewer child nodes than client vdom.`
namespace namespace
); );
} }
flushPreFlushCbs(); if (!isFlushing) {
flushPostFlushCbs(); isFlushing = true;
flushPreFlushCbs();
flushPostFlushCbs();
isFlushing = false;
}
container._vnode = vnode; container._vnode = vnode;
}; };
const internals = { const internals = {
@ -8894,8 +8927,13 @@ Component that was made reactive: `,
}; };
} }
const setCurrentInstance = (instance) => { const setCurrentInstance = (instance) => {
const prev = currentInstance;
internalSetCurrentInstance(instance); internalSetCurrentInstance(instance);
instance.scope.on(); instance.scope.on();
return () => {
instance.scope.off();
internalSetCurrentInstance(prev);
};
}; };
const unsetCurrentInstance = () => { const unsetCurrentInstance = () => {
currentInstance && currentInstance.scope.off(); currentInstance && currentInstance.scope.off();
@ -8957,7 +8995,7 @@ Component that was made reactive: `,
const { setup } = Component; const { setup } = Component;
if (setup) { if (setup) {
const setupContext = instance.setupContext = setup.length > 1 ? createSetupContext(instance) : null; const setupContext = instance.setupContext = setup.length > 1 ? createSetupContext(instance) : null;
setCurrentInstance(instance); const reset = setCurrentInstance(instance);
pauseTracking(); pauseTracking();
const setupResult = callWithErrorHandling( const setupResult = callWithErrorHandling(
setup, setup,
@ -8969,7 +9007,7 @@ Component that was made reactive: `,
] ]
); );
resetTracking(); resetTracking();
unsetCurrentInstance(); reset();
if (isPromise(setupResult)) { if (isPromise(setupResult)) {
setupResult.then(unsetCurrentInstance, unsetCurrentInstance); setupResult.then(unsetCurrentInstance, unsetCurrentInstance);
if (isSSR) { if (isSSR) {
@ -9063,13 +9101,13 @@ Component that was made reactive: `,
} }
} }
{ {
setCurrentInstance(instance); const reset = setCurrentInstance(instance);
pauseTracking(); pauseTracking();
try { try {
applyOptions(instance); applyOptions(instance);
} finally { } finally {
resetTracking(); resetTracking();
unsetCurrentInstance(); reset();
} }
} }
if (!Component.render && instance.render === NOOP && !isSSR) { if (!Component.render && instance.render === NOOP && !isSSR) {
@ -9200,6 +9238,59 @@ Component that was made reactive: `,
return computed$1(getterOrOptions, debugOptions, isInSSRComponentSetup); return computed$1(getterOrOptions, debugOptions, isInSSRComponentSetup);
}; };
function useModel(props, name, options = EMPTY_OBJ) {
const i = getCurrentInstance();
if (!i) {
warn$1(`useModel() called without active instance.`);
return ref();
}
if (!i.propsOptions[0][name]) {
warn$1(`useModel() called with prop "${name}" which is not declared.`);
return ref();
}
const camelizedName = camelize(name);
const hyphenatedName = hyphenate(name);
const res = customRef((track, trigger) => {
let localValue;
watchSyncEffect(() => {
const propValue = props[name];
if (hasChanged(localValue, propValue)) {
localValue = propValue;
trigger();
}
});
return {
get() {
track();
return options.get ? options.get(localValue) : localValue;
},
set(value) {
const rawProps = i.vnode.props;
if (!(rawProps && // check if parent has passed v-model
(name in rawProps || camelizedName in rawProps || hyphenatedName in rawProps) && (`onUpdate:${name}` in rawProps || `onUpdate:${camelizedName}` in rawProps || `onUpdate:${hyphenatedName}` in rawProps)) && hasChanged(value, localValue)) {
localValue = value;
trigger();
}
i.emit(`update:${name}`, options.set ? options.set(value) : value);
}
};
});
const modifierKey = name === "modelValue" ? "modelModifiers" : `${name}Modifiers`;
res[Symbol.iterator] = () => {
let i2 = 0;
return {
next() {
if (i2 < 2) {
return { value: i2++ ? props[modifierKey] || {} : res, done: false };
} else {
return { done: true };
}
}
};
};
return res;
}
function h(type, propsOrChildren, children) { function h(type, propsOrChildren, children) {
const l = arguments.length; const l = arguments.length;
if (l === 2) { if (l === 2) {
@ -9422,7 +9513,7 @@ Component that was made reactive: `,
return true; return true;
} }
const version = "3.4.5"; const version = "3.4.15";
const warn = warn$1 ; const warn = warn$1 ;
const ErrorTypeStrings = ErrorTypeStrings$1 ; const ErrorTypeStrings = ErrorTypeStrings$1 ;
const devtools = devtools$1 ; const devtools = devtools$1 ;
@ -9819,6 +9910,9 @@ Component that was made reactive: `,
setDisplay(el, value); setDisplay(el, value);
} }
}; };
{
vShow.name = "show";
}
function setDisplay(el, value) { function setDisplay(el, value) {
el.style.display = value ? el[vShowOldKey] : "none"; el.style.display = value ? el[vShowOldKey] : "none";
} }
@ -9888,6 +9982,7 @@ Component that was made reactive: `,
function patchStyle(el, prev, next) { function patchStyle(el, prev, next) {
const style = el.style; const style = el.style;
const currentDisplay = style.display;
const isCssString = isString(next); const isCssString = isString(next);
if (next && !isCssString) { if (next && !isCssString) {
if (prev && !isString(prev)) { if (prev && !isString(prev)) {
@ -9901,7 +9996,6 @@ Component that was made reactive: `,
setStyle(style, key, next[key]); setStyle(style, key, next[key]);
} }
} else { } else {
const currentDisplay = style.display;
if (isCssString) { if (isCssString) {
if (prev !== next) { if (prev !== next) {
const cssVarText = style[CSS_VAR_TEXT]; const cssVarText = style[CSS_VAR_TEXT];
@ -9913,9 +10007,9 @@ Component that was made reactive: `,
} else if (prev) { } else if (prev) {
el.removeAttribute("style"); el.removeAttribute("style");
} }
if (vShowOldKey in el) { }
style.display = currentDisplay; if (vShowOldKey in el) {
} style.display = currentDisplay;
} }
} }
const semicolonRE = /[^\\];\s*$/; const semicolonRE = /[^\\];\s*$/;
@ -10670,35 +10764,52 @@ Component that was made reactive: `,
el[assignKey]( el[assignKey](
el.multiple ? isSetModel ? new Set(selectedVal) : selectedVal : selectedVal[0] el.multiple ? isSetModel ? new Set(selectedVal) : selectedVal : selectedVal[0]
); );
el._assigning = true;
nextTick(() => {
el._assigning = false;
});
}); });
el[assignKey] = getModelAssigner(vnode); el[assignKey] = getModelAssigner(vnode);
}, },
// set value in mounted & updated because <select> relies on its children // set value in mounted & updated because <select> relies on its children
// <option>s. // <option>s.
mounted(el, { value }) { mounted(el, { value, oldValue, modifiers: { number } }) {
setSelected(el, value); setSelected(el, value, oldValue, number);
}, },
beforeUpdate(el, _binding, vnode) { beforeUpdate(el, _binding, vnode) {
el[assignKey] = getModelAssigner(vnode); el[assignKey] = getModelAssigner(vnode);
}, },
updated(el, { value }) { updated(el, { value, oldValue, modifiers: { number } }) {
setSelected(el, value); if (!el._assigning) {
setSelected(el, value, oldValue, number);
}
} }
}; };
function setSelected(el, value) { function setSelected(el, value, oldValue, number) {
const isMultiple = el.multiple; const isMultiple = el.multiple;
if (isMultiple && !isArray(value) && !isSet(value)) { const isArrayValue = isArray(value);
if (isMultiple && !isArrayValue && !isSet(value)) {
warn( warn(
`<select multiple v-model> expects an Array or Set value for its binding, but got ${Object.prototype.toString.call(value).slice(8, -1)}.` `<select multiple v-model> expects an Array or Set value for its binding, but got ${Object.prototype.toString.call(value).slice(8, -1)}.`
); );
return; return;
} }
if (isArrayValue && looseEqual(value, oldValue)) {
return;
}
for (let i = 0, l = el.options.length; i < l; i++) { for (let i = 0, l = el.options.length; i < l; i++) {
const option = el.options[i]; const option = el.options[i];
const optionValue = getValue(option); const optionValue = getValue(option);
if (isMultiple) { if (isMultiple) {
if (isArray(value)) { if (isArrayValue) {
option.selected = looseIndexOf(value, optionValue) > -1; const optionType = typeof optionValue;
if (optionType === "string" || optionType === "number") {
option.selected = value.includes(
number ? looseToNumber(optionValue) : optionValue
);
} else {
option.selected = looseIndexOf(value, optionValue) > -1;
}
} else { } else {
option.selected = value.has(optionValue); option.selected = value.has(optionValue);
} }

File diff suppressed because one or more lines are too long

View file

@ -1,6 +1,6 @@
{ {
"name": "@vue/runtime-dom", "name": "@vue/runtime-dom",
"version": "3.4.5", "version": "3.4.15",
"description": "@vue/runtime-dom", "description": "@vue/runtime-dom",
"main": "index.js", "main": "index.js",
"module": "dist/runtime-dom.esm-bundler.js", "module": "dist/runtime-dom.esm-bundler.js",
@ -18,6 +18,7 @@
"development": "./dist/runtime-dom.cjs.js", "development": "./dist/runtime-dom.cjs.js",
"default": "./index.js" "default": "./index.js"
}, },
"module": "./dist/runtime-dom.esm-bundler.js",
"import": "./dist/runtime-dom.esm-bundler.js", "import": "./dist/runtime-dom.esm-bundler.js",
"require": "./index.js" "require": "./index.js"
}, },
@ -49,7 +50,7 @@
"homepage": "https://github.com/vuejs/core/tree/main/packages/runtime-dom#readme", "homepage": "https://github.com/vuejs/core/tree/main/packages/runtime-dom#readme",
"dependencies": { "dependencies": {
"csstype": "^3.1.3", "csstype": "^3.1.3",
"@vue/shared": "3.4.5", "@vue/shared": "3.4.15",
"@vue/runtime-core": "3.4.5" "@vue/runtime-core": "3.4.15"
} }
} }

View file

@ -1,3 +1,8 @@
/**
* @vue/server-renderer v3.4.15
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/
'use strict'; 'use strict';
Object.defineProperty(exports, '__esModule', { value: true }); Object.defineProperty(exports, '__esModule', { value: true });
@ -40,7 +45,7 @@ function ssrRenderAttrs(props, tag) {
return ret; return ret;
} }
function ssrRenderDynamicAttr(key, value, tag) { function ssrRenderDynamicAttr(key, value, tag) {
if (!isRenderableValue(value)) { if (!shared.isRenderableAttrValue(value)) {
return ``; return ``;
} }
const attrKey = tag && (tag.indexOf("-") > 0 || shared.isSVGTag(tag)) ? key : shared.propsToAttrMap[key] || key.toLowerCase(); const attrKey = tag && (tag.indexOf("-") > 0 || shared.isSVGTag(tag)) ? key : shared.propsToAttrMap[key] || key.toLowerCase();
@ -56,18 +61,11 @@ function ssrRenderDynamicAttr(key, value, tag) {
} }
} }
function ssrRenderAttr(key, value) { function ssrRenderAttr(key, value) {
if (!isRenderableValue(value)) { if (!shared.isRenderableAttrValue(value)) {
return ``; return ``;
} }
return ` ${key}="${shared.escapeHtml(value)}"`; return ` ${key}="${shared.escapeHtml(value)}"`;
} }
function isRenderableValue(value) {
if (value == null) {
return false;
}
const type = typeof value;
return type === "string" || type === "number" || type === "boolean";
}
function ssrRenderClass(raw) { function ssrRenderClass(raw) {
return shared.escapeHtml(shared.normalizeClass(raw)); return shared.escapeHtml(shared.normalizeClass(raw));
} }
@ -648,8 +646,7 @@ function renderComponentVNode(vnode, parentComponent = null, slotScopeId) {
() => Promise.all( () => Promise.all(
prefetches.map((prefetch) => prefetch.call(instance.proxy)) prefetches.map((prefetch) => prefetch.call(instance.proxy))
) )
).catch(() => { ).catch(shared.NOOP);
});
} }
return p.then(() => renderComponentSubTree(instance, slotScopeId)); return p.then(() => renderComponentSubTree(instance, slotScopeId));
} else { } else {

View file

@ -1,3 +1,8 @@
/**
* @vue/server-renderer v3.4.15
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/
'use strict'; 'use strict';
Object.defineProperty(exports, '__esModule', { value: true }); Object.defineProperty(exports, '__esModule', { value: true });
@ -40,7 +45,7 @@ function ssrRenderAttrs(props, tag) {
return ret; return ret;
} }
function ssrRenderDynamicAttr(key, value, tag) { function ssrRenderDynamicAttr(key, value, tag) {
if (!isRenderableValue(value)) { if (!shared.isRenderableAttrValue(value)) {
return ``; return ``;
} }
const attrKey = tag && (tag.indexOf("-") > 0 || shared.isSVGTag(tag)) ? key : shared.propsToAttrMap[key] || key.toLowerCase(); const attrKey = tag && (tag.indexOf("-") > 0 || shared.isSVGTag(tag)) ? key : shared.propsToAttrMap[key] || key.toLowerCase();
@ -56,18 +61,11 @@ function ssrRenderDynamicAttr(key, value, tag) {
} }
} }
function ssrRenderAttr(key, value) { function ssrRenderAttr(key, value) {
if (!isRenderableValue(value)) { if (!shared.isRenderableAttrValue(value)) {
return ``; return ``;
} }
return ` ${key}="${shared.escapeHtml(value)}"`; return ` ${key}="${shared.escapeHtml(value)}"`;
} }
function isRenderableValue(value) {
if (value == null) {
return false;
}
const type = typeof value;
return type === "string" || type === "number" || type === "boolean";
}
function ssrRenderClass(raw) { function ssrRenderClass(raw) {
return shared.escapeHtml(shared.normalizeClass(raw)); return shared.escapeHtml(shared.normalizeClass(raw));
} }
@ -371,8 +369,7 @@ function renderComponentVNode(vnode, parentComponent = null, slotScopeId) {
() => Promise.all( () => Promise.all(
prefetches.map((prefetch) => prefetch.call(instance.proxy)) prefetches.map((prefetch) => prefetch.call(instance.proxy))
) )
).catch(() => { ).catch(shared.NOOP);
});
} }
return p.then(() => renderComponentSubTree(instance, slotScopeId)); return p.then(() => renderComponentSubTree(instance, slotScopeId));
} else { } else {

View file

@ -1,3 +1,8 @@
/**
* @vue/server-renderer v3.4.15
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/
function makeMap(str, expectsLowerCase) { function makeMap(str, expectsLowerCase) {
const set = new Set(str.split(",")); const set = new Set(str.split(","));
return expectsLowerCase ? (val) => set.has(val.toLowerCase()) : (val) => set.has(val); return expectsLowerCase ? (val) => set.has(val.toLowerCase()) : (val) => set.has(val);
@ -189,6 +194,13 @@ const propsToAttrMap = {
htmlFor: "for", htmlFor: "for",
httpEquiv: "http-equiv" httpEquiv: "http-equiv"
}; };
function isRenderableAttrValue(value) {
if (value == null) {
return false;
}
const type = typeof value;
return type === "string" || type === "number" || type === "boolean";
}
const escapeRE = /["'&<>]/; const escapeRE = /["'&<>]/;
function escapeHtml(string) { function escapeHtml(string) {
@ -421,7 +433,7 @@ class ReactiveEffect {
/** /**
* @internal * @internal
*/ */
this._dirtyLevel = 3; this._dirtyLevel = 2;
/** /**
* @internal * @internal
*/ */
@ -433,7 +445,7 @@ class ReactiveEffect {
/** /**
* @internal * @internal
*/ */
this._queryings = 0; this._shouldSchedule = false;
/** /**
* @internal * @internal
*/ */
@ -442,10 +454,9 @@ class ReactiveEffect {
} }
get dirty() { get dirty() {
if (this._dirtyLevel === 1) { if (this._dirtyLevel === 1) {
this._dirtyLevel = 0;
this._queryings++;
pauseTracking(); pauseTracking();
for (const dep of this.deps) { for (let i = 0; i < this._depsLength; i++) {
const dep = this.deps[i];
if (dep.computed) { if (dep.computed) {
triggerComputed(dep.computed); triggerComputed(dep.computed);
if (this._dirtyLevel >= 2) { if (this._dirtyLevel >= 2) {
@ -453,13 +464,15 @@ class ReactiveEffect {
} }
} }
} }
if (this._dirtyLevel < 2) {
this._dirtyLevel = 0;
}
resetTracking(); resetTracking();
this._queryings--;
} }
return this._dirtyLevel >= 2; return this._dirtyLevel >= 2;
} }
set dirty(v) { set dirty(v) {
this._dirtyLevel = v ? 3 : 0; this._dirtyLevel = v ? 2 : 0;
} }
run() { run() {
this._dirtyLevel = 0; this._dirtyLevel = 0;
@ -558,25 +571,29 @@ function triggerEffects(dep, dirtyLevel, debuggerEventExtraInfo) {
var _a; var _a;
pauseScheduling(); pauseScheduling();
for (const effect2 of dep.keys()) { for (const effect2 of dep.keys()) {
if (!effect2.allowRecurse && effect2._runnings) { if (effect2._dirtyLevel < dirtyLevel && dep.get(effect2) === effect2._trackId) {
continue;
}
if (effect2._dirtyLevel < dirtyLevel && (!effect2._runnings || dirtyLevel !== 2)) {
const lastDirtyLevel = effect2._dirtyLevel; const lastDirtyLevel = effect2._dirtyLevel;
effect2._dirtyLevel = dirtyLevel; effect2._dirtyLevel = dirtyLevel;
if (lastDirtyLevel === 0 && (!effect2._queryings || dirtyLevel !== 2)) { if (lastDirtyLevel === 0) {
effect2._shouldSchedule = true;
{ {
(_a = effect2.onTrigger) == null ? void 0 : _a.call(effect2, extend({ effect: effect2 }, debuggerEventExtraInfo)); (_a = effect2.onTrigger) == null ? void 0 : _a.call(effect2, extend({ effect: effect2 }, debuggerEventExtraInfo));
} }
effect2.trigger(); effect2.trigger();
if (effect2.scheduler) {
queueEffectSchedulers.push(effect2.scheduler);
}
} }
} }
} }
scheduleEffects(dep);
resetScheduling(); resetScheduling();
} }
function scheduleEffects(dep) {
for (const effect2 of dep.keys()) {
if (effect2.scheduler && effect2._shouldSchedule && (!effect2._runnings || effect2.allowRecurse) && dep.get(effect2) === effect2._trackId) {
effect2._shouldSchedule = false;
queueEffectSchedulers.push(effect2.scheduler);
}
}
}
const createDep = (cleanup, computed) => { const createDep = (cleanup, computed) => {
const dep = /* @__PURE__ */ new Map(); const dep = /* @__PURE__ */ new Map();
@ -659,7 +676,7 @@ function trigger(target, type, key, newValue, oldValue, oldTarget) {
if (dep) { if (dep) {
triggerEffects( triggerEffects(
dep, dep,
3, 2,
{ {
target, target,
type, type,
@ -1254,7 +1271,8 @@ class ComputedRefImpl {
this["__v_isReadonly"] = false; this["__v_isReadonly"] = false;
this.effect = new ReactiveEffect( this.effect = new ReactiveEffect(
() => getter(this._value), () => getter(this._value),
() => triggerRefValue(this, 1) () => triggerRefValue(this, 1),
() => this.dep && scheduleEffects(this.dep)
); );
this.effect.computed = this; this.effect.computed = this;
this.effect.active = this._cacheable = !isSSR; this.effect.active = this._cacheable = !isSSR;
@ -1262,12 +1280,15 @@ class ComputedRefImpl {
} }
get value() { get value() {
const self = toRaw(this); const self = toRaw(this);
trackRefValue(self);
if (!self._cacheable || self.effect.dirty) { if (!self._cacheable || self.effect.dirty) {
if (hasChanged(self._value, self._value = self.effect.run())) { if (hasChanged(self._value, self._value = self.effect.run())) {
triggerRefValue(self, 2); triggerRefValue(self, 2);
} }
} }
trackRefValue(self);
if (self.effect._dirtyLevel >= 1) {
triggerRefValue(self, 1);
}
return self._value; return self._value;
} }
set value(newValue) { set value(newValue) {
@ -1320,7 +1341,7 @@ function trackRefValue(ref2) {
); );
} }
} }
function triggerRefValue(ref2, dirtyLevel = 3, newVal) { function triggerRefValue(ref2, dirtyLevel = 2, newVal) {
ref2 = toRaw(ref2); ref2 = toRaw(ref2);
const dep = ref2.dep; const dep = ref2.dep;
if (dep) { if (dep) {
@ -1655,7 +1676,9 @@ function flushPreFlushCbs(instance, seen, i = isFlushing ? flushIndex + 1 : 0) {
} }
function flushPostFlushCbs(seen) { function flushPostFlushCbs(seen) {
if (pendingPostFlushCbs.length) { if (pendingPostFlushCbs.length) {
const deduped = [...new Set(pendingPostFlushCbs)]; const deduped = [...new Set(pendingPostFlushCbs)].sort(
(a, b) => getId(a) - getId(b)
);
pendingPostFlushCbs.length = 0; pendingPostFlushCbs.length = 0;
if (activePostFlushCbs) { if (activePostFlushCbs) {
activePostFlushCbs.push(...deduped); activePostFlushCbs.push(...deduped);
@ -1665,7 +1688,6 @@ function flushPostFlushCbs(seen) {
{ {
seen = seen || /* @__PURE__ */ new Map(); seen = seen || /* @__PURE__ */ new Map();
} }
activePostFlushCbs.sort((a, b) => getId(a) - getId(b));
for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) { for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) {
if (checkRecursiveUpdates(seen, activePostFlushCbs[postFlushIndex])) { if (checkRecursiveUpdates(seen, activePostFlushCbs[postFlushIndex])) {
continue; continue;
@ -2281,9 +2303,11 @@ function renderComponentRoot$1(instance) {
const getChildRoot = (vnode) => { const getChildRoot = (vnode) => {
const rawChildren = vnode.children; const rawChildren = vnode.children;
const dynamicChildren = vnode.dynamicChildren; const dynamicChildren = vnode.dynamicChildren;
const childRoot = filterSingleRoot(rawChildren); const childRoot = filterSingleRoot(rawChildren, false);
if (!childRoot) { if (!childRoot) {
return [vnode, void 0]; return [vnode, void 0];
} else if (childRoot.patchFlag > 0 && childRoot.patchFlag & 2048) {
return getChildRoot(childRoot);
} }
const index = rawChildren.indexOf(childRoot); const index = rawChildren.indexOf(childRoot);
const dynamicIndex = dynamicChildren ? dynamicChildren.indexOf(childRoot) : -1; const dynamicIndex = dynamicChildren ? dynamicChildren.indexOf(childRoot) : -1;
@ -2299,7 +2323,7 @@ const getChildRoot = (vnode) => {
}; };
return [normalizeVNode$1(childRoot), setRoot]; return [normalizeVNode$1(childRoot), setRoot];
}; };
function filterSingleRoot(children) { function filterSingleRoot(children, recurse = true) {
let singleRoot; let singleRoot;
for (let i = 0; i < children.length; i++) { for (let i = 0; i < children.length; i++) {
const child = children[i]; const child = children[i];
@ -2309,6 +2333,9 @@ function filterSingleRoot(children) {
return; return;
} else { } else {
singleRoot = child; singleRoot = child;
if (recurse && singleRoot.patchFlag > 0 && singleRoot.patchFlag & 2048) {
return filterSingleRoot(singleRoot.children);
}
} }
} }
} else { } else {
@ -2399,8 +2426,6 @@ function hasPropsChanged(prevProps, nextProps, emitsOptions) {
return false; return false;
} }
function updateHOCHostEl({ vnode, parent }, el) { function updateHOCHostEl({ vnode, parent }, el) {
if (!el)
return;
while (parent) { while (parent) {
const root = parent.subTree; const root = parent.subTree;
if (root.suspense && root.suspense.activeBranch === vnode) { if (root.suspense && root.suspense.activeBranch === vnode) {
@ -2649,14 +2674,9 @@ function instanceWatch(source, value, options) {
cb = value.handler; cb = value.handler;
options = value; options = value;
} }
const cur = currentInstance; const reset = setCurrentInstance(this);
setCurrentInstance(this);
const res = doWatch(getter, cb.bind(publicThis), options); const res = doWatch(getter, cb.bind(publicThis), options);
if (cur) { reset();
setCurrentInstance(cur);
} else {
unsetCurrentInstance();
}
return res; return res;
} }
function createPathGetter(ctx, path) { function createPathGetter(ctx, path) {
@ -2781,9 +2801,9 @@ function injectHook(type, hook, target = currentInstance, prepend = false) {
return; return;
} }
pauseTracking(); pauseTracking();
setCurrentInstance(target); const reset = setCurrentInstance(target);
const res = callWithAsyncErrorHandling(hook, target, type, args); const res = callWithAsyncErrorHandling(hook, target, type, args);
unsetCurrentInstance(); reset();
resetTracking(); resetTracking();
return res; return res;
}); });
@ -3858,12 +3878,12 @@ function resolvePropValue(options, props, key, value, instance, isAbsent) {
if (key in propsDefaults) { if (key in propsDefaults) {
value = propsDefaults[key]; value = propsDefaults[key];
} else { } else {
setCurrentInstance(instance); const reset = setCurrentInstance(instance);
value = propsDefaults[key] = defaultValue.call( value = propsDefaults[key] = defaultValue.call(
null, null,
props props
); );
unsetCurrentInstance(); reset();
} }
} else { } else {
value = defaultValue; value = defaultValue;
@ -4084,7 +4104,7 @@ const normalizeSlot = (key, rawSlot, ctx) => {
return rawSlot; return rawSlot;
} }
const normalized = withCtx((...args) => { const normalized = withCtx((...args) => {
if (currentInstance) { if (currentInstance && (!ctx || ctx.root === currentInstance.root)) {
warn$1( 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.` `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.`
); );
@ -4220,9 +4240,10 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
} else { } else {
const _isString = isString(ref); const _isString = isString(ref);
const _isRef = isRef(ref); const _isRef = isRef(ref);
const isVFor = rawRef.f;
if (_isString || _isRef) { if (_isString || _isRef) {
const doSet = () => { const doSet = () => {
if (rawRef.f) { if (isVFor) {
const existing = _isString ? hasOwn(setupState, ref) ? setupState[ref] : refs[ref] : ref.value; const existing = _isString ? hasOwn(setupState, ref) ? setupState[ref] : refs[ref] : ref.value;
if (isUnmount) { if (isUnmount) {
isArray(existing) && remove(existing, refValue); isArray(existing) && remove(existing, refValue);
@ -4255,11 +4276,11 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
warn$1("Invalid template ref type:", ref, `(${typeof ref})`); warn$1("Invalid template ref type:", ref, `(${typeof ref})`);
} }
}; };
if (value) { if (isUnmount || isVFor) {
doSet();
} else {
doSet.id = -1; doSet.id = -1;
queuePostRenderEffect(doSet, parentSuspense); queuePostRenderEffect(doSet, parentSuspense);
} else {
doSet();
} }
} else { } else {
warn$1("Invalid template ref type:", ref, `(${typeof ref})`); warn$1("Invalid template ref type:", ref, `(${typeof ref})`);
@ -4851,7 +4872,11 @@ function baseCreateRenderer(options, createHydrationFns) {
hostInsert(fragmentStartAnchor, container, anchor); hostInsert(fragmentStartAnchor, container, anchor);
hostInsert(fragmentEndAnchor, container, anchor); hostInsert(fragmentEndAnchor, container, anchor);
mountChildren( mountChildren(
n2.children, // #10007
// such fragment like `<></>` will be compiled into
// a fragment which doesn't have a children.
// In this case fallback to an empty array
n2.children || [],
container, container,
fragmentEndAnchor, fragmentEndAnchor,
parentComponent, parentComponent,
@ -5685,6 +5710,7 @@ function baseCreateRenderer(options, createHydrationFns) {
} }
return hostNextSibling(vnode.anchor || vnode.el); return hostNextSibling(vnode.anchor || vnode.el);
}; };
let isFlushing = false;
const render = (vnode, container, namespace) => { const render = (vnode, container, namespace) => {
if (vnode == null) { if (vnode == null) {
if (container._vnode) { if (container._vnode) {
@ -5701,8 +5727,12 @@ function baseCreateRenderer(options, createHydrationFns) {
namespace namespace
); );
} }
flushPreFlushCbs(); if (!isFlushing) {
flushPostFlushCbs(); isFlushing = true;
flushPreFlushCbs();
flushPostFlushCbs();
isFlushing = false;
}
container._vnode = vnode; container._vnode = vnode;
}; };
const internals = { const internals = {
@ -6246,8 +6276,13 @@ let setInSSRSetupState;
); );
} }
const setCurrentInstance = (instance) => { const setCurrentInstance = (instance) => {
const prev = currentInstance;
internalSetCurrentInstance(instance); internalSetCurrentInstance(instance);
instance.scope.on(); instance.scope.on();
return () => {
instance.scope.off();
internalSetCurrentInstance(prev);
};
}; };
const unsetCurrentInstance = () => { const unsetCurrentInstance = () => {
currentInstance && currentInstance.scope.off(); currentInstance && currentInstance.scope.off();
@ -6309,7 +6344,7 @@ function setupStatefulComponent(instance, isSSR) {
const { setup } = Component; const { setup } = Component;
if (setup) { if (setup) {
const setupContext = instance.setupContext = setup.length > 1 ? createSetupContext(instance) : null; const setupContext = instance.setupContext = setup.length > 1 ? createSetupContext(instance) : null;
setCurrentInstance(instance); const reset = setCurrentInstance(instance);
pauseTracking(); pauseTracking();
const setupResult = callWithErrorHandling( const setupResult = callWithErrorHandling(
setup, setup,
@ -6321,7 +6356,7 @@ function setupStatefulComponent(instance, isSSR) {
] ]
); );
resetTracking(); resetTracking();
unsetCurrentInstance(); reset();
if (isPromise(setupResult)) { if (isPromise(setupResult)) {
setupResult.then(unsetCurrentInstance, unsetCurrentInstance); setupResult.then(unsetCurrentInstance, unsetCurrentInstance);
if (isSSR) { if (isSSR) {
@ -6405,13 +6440,13 @@ function finishComponentSetup(instance, isSSR, skipOptions) {
instance.render = Component.render || NOOP; instance.render = Component.render || NOOP;
} }
{ {
setCurrentInstance(instance); const reset = setCurrentInstance(instance);
pauseTracking(); pauseTracking();
try { try {
applyOptions(instance); applyOptions(instance);
} finally { } finally {
resetTracking(); resetTracking();
unsetCurrentInstance(); reset();
} }
} }
if (!Component.render && instance.render === NOOP && !isSSR) { if (!Component.render && instance.render === NOOP && !isSSR) {
@ -6542,7 +6577,7 @@ const computed = (getterOrOptions, debugOptions) => {
return computed$1(getterOrOptions, debugOptions, isInSSRComponentSetup); return computed$1(getterOrOptions, debugOptions, isInSSRComponentSetup);
}; };
const version = "3.4.5"; const version = "3.4.15";
const warn = warn$1 ; const warn = warn$1 ;
const _ssrUtils = { const _ssrUtils = {
createComponentInstance: createComponentInstance$1, createComponentInstance: createComponentInstance$1,
@ -6674,6 +6709,9 @@ const vShow = {
setDisplay(el, value); setDisplay(el, value);
} }
}; };
{
vShow.name = "show";
}
function setDisplay(el, value) { function setDisplay(el, value) {
el.style.display = value ? el[vShowOldKey] : "none"; el.style.display = value ? el[vShowOldKey] : "none";
} }
@ -6689,6 +6727,7 @@ const CSS_VAR_TEXT = Symbol("CSS_VAR_TEXT" );
function patchStyle(el, prev, next) { function patchStyle(el, prev, next) {
const style = el.style; const style = el.style;
const currentDisplay = style.display;
const isCssString = isString(next); const isCssString = isString(next);
if (next && !isCssString) { if (next && !isCssString) {
if (prev && !isString(prev)) { if (prev && !isString(prev)) {
@ -6702,7 +6741,6 @@ function patchStyle(el, prev, next) {
setStyle(style, key, next[key]); setStyle(style, key, next[key]);
} }
} else { } else {
const currentDisplay = style.display;
if (isCssString) { if (isCssString) {
if (prev !== next) { if (prev !== next) {
const cssVarText = style[CSS_VAR_TEXT]; const cssVarText = style[CSS_VAR_TEXT];
@ -6714,9 +6752,9 @@ function patchStyle(el, prev, next) {
} else if (prev) { } else if (prev) {
el.removeAttribute("style"); el.removeAttribute("style");
} }
if (vShowOldKey in el) { }
style.display = currentDisplay; if (vShowOldKey in el) {
} style.display = currentDisplay;
} }
} }
const semicolonRE = /[^\\];\s*$/; const semicolonRE = /[^\\];\s*$/;
@ -7163,7 +7201,7 @@ function ssrRenderAttrs(props, tag) {
return ret; return ret;
} }
function ssrRenderDynamicAttr(key, value, tag) { function ssrRenderDynamicAttr(key, value, tag) {
if (!isRenderableValue(value)) { if (!isRenderableAttrValue(value)) {
return ``; return ``;
} }
const attrKey = tag && (tag.indexOf("-") > 0 || isSVGTag(tag)) ? key : propsToAttrMap[key] || key.toLowerCase(); const attrKey = tag && (tag.indexOf("-") > 0 || isSVGTag(tag)) ? key : propsToAttrMap[key] || key.toLowerCase();
@ -7179,18 +7217,11 @@ function ssrRenderDynamicAttr(key, value, tag) {
} }
} }
function ssrRenderAttr(key, value) { function ssrRenderAttr(key, value) {
if (!isRenderableValue(value)) { if (!isRenderableAttrValue(value)) {
return ``; return ``;
} }
return ` ${key}="${escapeHtml(value)}"`; return ` ${key}="${escapeHtml(value)}"`;
} }
function isRenderableValue(value) {
if (value == null) {
return false;
}
const type = typeof value;
return type === "string" || type === "number" || type === "boolean";
}
function ssrRenderClass(raw) { function ssrRenderClass(raw) {
return escapeHtml(normalizeClass(raw)); return escapeHtml(normalizeClass(raw));
} }
@ -7439,8 +7470,7 @@ function renderComponentVNode(vnode, parentComponent = null, slotScopeId) {
() => Promise.all( () => Promise.all(
prefetches.map((prefetch) => prefetch.call(instance.proxy)) prefetches.map((prefetch) => prefetch.call(instance.proxy))
) )
).catch(() => { ).catch(NOOP);
});
} }
return p.then(() => renderComponentSubTree(instance, slotScopeId)); return p.then(() => renderComponentSubTree(instance, slotScopeId));
} else { } else {

File diff suppressed because one or more lines are too long

View file

@ -1,5 +1,10 @@
/**
* @vue/server-renderer v3.4.15
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/
import { createVNode, ssrContextKey, warn as warn$2, Fragment, Static, Comment, Text, mergeProps, ssrUtils, createApp, initDirectivesForSSR } from 'vue'; import { createVNode, ssrContextKey, warn as warn$2, Fragment, Static, Comment, Text, mergeProps, ssrUtils, createApp, initDirectivesForSSR } from 'vue';
import { makeMap, isOn, isSVGTag, propsToAttrMap, isBooleanAttr, includeBooleanAttr, isSSRSafeAttrName, escapeHtml, normalizeClass, isString, normalizeStyle, stringifyStyle, isArray, toDisplayString, isFunction, 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, getGlobalThis, NOOP, isObject, looseEqual, looseIndexOf, isPromise, escapeHtmlComment, isVoidTag } from '@vue/shared';
export { includeBooleanAttr as ssrIncludeBooleanAttr } from '@vue/shared'; export { includeBooleanAttr as ssrIncludeBooleanAttr } from '@vue/shared';
const shouldIgnoreProp = makeMap( const shouldIgnoreProp = makeMap(
@ -23,7 +28,7 @@ function ssrRenderAttrs(props, tag) {
return ret; return ret;
} }
function ssrRenderDynamicAttr(key, value, tag) { function ssrRenderDynamicAttr(key, value, tag) {
if (!isRenderableValue(value)) { if (!isRenderableAttrValue(value)) {
return ``; return ``;
} }
const attrKey = tag && (tag.indexOf("-") > 0 || isSVGTag(tag)) ? key : propsToAttrMap[key] || key.toLowerCase(); const attrKey = tag && (tag.indexOf("-") > 0 || isSVGTag(tag)) ? key : propsToAttrMap[key] || key.toLowerCase();
@ -39,18 +44,11 @@ function ssrRenderDynamicAttr(key, value, tag) {
} }
} }
function ssrRenderAttr(key, value) { function ssrRenderAttr(key, value) {
if (!isRenderableValue(value)) { if (!isRenderableAttrValue(value)) {
return ``; return ``;
} }
return ` ${key}="${escapeHtml(value)}"`; return ` ${key}="${escapeHtml(value)}"`;
} }
function isRenderableValue(value) {
if (value == null) {
return false;
}
const type = typeof value;
return type === "string" || type === "number" || type === "boolean";
}
function ssrRenderClass(raw) { function ssrRenderClass(raw) {
return escapeHtml(normalizeClass(raw)); return escapeHtml(normalizeClass(raw));
} }
@ -337,7 +335,7 @@ function handleError(err, instance, type, throwInDev = true) {
if (instance) { if (instance) {
let cur = instance.parent; let cur = instance.parent;
const exposedInstance = instance.proxy; const exposedInstance = instance.proxy;
const errorInfo = !!(process.env.NODE_ENV !== "production") ? ErrorTypeStrings[type] : `https://vuejs.org/errors/#runtime-${type}`; const errorInfo = !!(process.env.NODE_ENV !== "production") ? ErrorTypeStrings[type] : `https://vuejs.org/error-reference/#runtime-${type}`;
while (cur) { while (cur) {
const errorCapturedHooks = cur.ec; const errorCapturedHooks = cur.ec;
if (errorCapturedHooks) { if (errorCapturedHooks) {
@ -466,8 +464,8 @@ function formatComponentName(instance, Component, isRoot = false) {
} }
const warn = !!(process.env.NODE_ENV !== "production") ? warn$1 : NOOP; const warn = !!(process.env.NODE_ENV !== "production") ? warn$1 : NOOP;
!!(process.env.NODE_ENV !== "production") || __VUE_PROD_DEVTOOLS__ ? devtools : void 0; !!(process.env.NODE_ENV !== "production") || true ? devtools : void 0;
!!(process.env.NODE_ENV !== "production") || __VUE_PROD_DEVTOOLS__ ? setDevtoolsHook : NOOP; !!(process.env.NODE_ENV !== "production") || true ? setDevtoolsHook : NOOP;
function ssrRenderList(source, renderItem) { function ssrRenderList(source, renderItem) {
if (isArray(source) || isString(source)) { if (isArray(source) || isString(source)) {
@ -601,8 +599,7 @@ function renderComponentVNode(vnode, parentComponent = null, slotScopeId) {
() => Promise.all( () => Promise.all(
prefetches.map((prefetch) => prefetch.call(instance.proxy)) prefetches.map((prefetch) => prefetch.call(instance.proxy))
) )
).catch(() => { ).catch(NOOP);
});
} }
return p.then(() => renderComponentSubTree(instance, slotScopeId)); return p.then(() => renderComponentSubTree(instance, slotScopeId));
} else { } else {

View file

@ -1,6 +1,6 @@
{ {
"name": "@vue/server-renderer", "name": "@vue/server-renderer",
"version": "3.4.5", "version": "3.4.15",
"description": "@vue/server-renderer", "description": "@vue/server-renderer",
"main": "index.js", "main": "index.js",
"module": "dist/server-renderer.esm-bundler.js", "module": "dist/server-renderer.esm-bundler.js",
@ -17,6 +17,7 @@
"development": "./dist/server-renderer.cjs.js", "development": "./dist/server-renderer.cjs.js",
"default": "./index.js" "default": "./index.js"
}, },
"module": "./dist/server-renderer.esm-bundler.js",
"import": "./dist/server-renderer.esm-bundler.js", "import": "./dist/server-renderer.esm-bundler.js",
"require": "./index.js" "require": "./index.js"
}, },
@ -45,10 +46,10 @@
}, },
"homepage": "https://github.com/vuejs/core/tree/main/packages/server-renderer#readme", "homepage": "https://github.com/vuejs/core/tree/main/packages/server-renderer#readme",
"peerDependencies": { "peerDependencies": {
"vue": "3.4.5" "vue": "3.4.15"
}, },
"dependencies": { "dependencies": {
"@vue/shared": "3.4.5", "@vue/compiler-ssr": "3.4.15",
"@vue/compiler-ssr": "3.4.5" "@vue/shared": "3.4.15"
} }
} }

View file

@ -1,3 +1,8 @@
/**
* @vue/shared v3.4.15
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/
'use strict'; 'use strict';
Object.defineProperty(exports, '__esModule', { value: true }); Object.defineProperty(exports, '__esModule', { value: true });
@ -350,6 +355,13 @@ const isKnownHtmlAttr = /* @__PURE__ */ makeMap(
const isKnownSvgAttr = /* @__PURE__ */ makeMap( const isKnownSvgAttr = /* @__PURE__ */ makeMap(
`xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,color-interpolation-filters,color-profile,color-rendering,contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,font-family,font-size,font-size-adjust,font-stretch,font-style,font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,overflow,overline-position,overline-thickness,panose-1,paint-order,path,pathLength,patternContentUnits,patternTransform,patternUnits,ping,pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,specularConstant,specularExponent,speed,spreadMethod,startOffset,stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,string,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,text-decoration,text-rendering,textLength,to,transform,transform-origin,type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xmlns:xlink,xml:base,xml:lang,xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan` `xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,color-interpolation-filters,color-profile,color-rendering,contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,font-family,font-size,font-size-adjust,font-stretch,font-style,font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,overflow,overline-position,overline-thickness,panose-1,paint-order,path,pathLength,patternContentUnits,patternTransform,patternUnits,ping,pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,specularConstant,specularExponent,speed,spreadMethod,startOffset,stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,string,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,text-decoration,text-rendering,textLength,to,transform,transform-origin,type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xmlns:xlink,xml:base,xml:lang,xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan`
); );
function isRenderableAttrValue(value) {
if (value == null) {
return false;
}
const type = typeof value;
return type === "string" || type === "number" || type === "boolean";
}
const escapeRE = /["'&<>]/; const escapeRE = /["'&<>]/;
function escapeHtml(string) { function escapeHtml(string) {
@ -520,6 +532,7 @@ exports.isOn = isOn;
exports.isPlainObject = isPlainObject; exports.isPlainObject = isPlainObject;
exports.isPromise = isPromise; exports.isPromise = isPromise;
exports.isRegExp = isRegExp; exports.isRegExp = isRegExp;
exports.isRenderableAttrValue = isRenderableAttrValue;
exports.isReservedProp = isReservedProp; exports.isReservedProp = isReservedProp;
exports.isSSRSafeAttrName = isSSRSafeAttrName; exports.isSSRSafeAttrName = isSSRSafeAttrName;
exports.isSVGTag = isSVGTag; exports.isSVGTag = isSVGTag;

View file

@ -1,3 +1,8 @@
/**
* @vue/shared v3.4.15
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/
'use strict'; 'use strict';
Object.defineProperty(exports, '__esModule', { value: true }); Object.defineProperty(exports, '__esModule', { value: true });
@ -350,6 +355,13 @@ const isKnownHtmlAttr = /* @__PURE__ */ makeMap(
const isKnownSvgAttr = /* @__PURE__ */ makeMap( const isKnownSvgAttr = /* @__PURE__ */ makeMap(
`xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,color-interpolation-filters,color-profile,color-rendering,contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,font-family,font-size,font-size-adjust,font-stretch,font-style,font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,overflow,overline-position,overline-thickness,panose-1,paint-order,path,pathLength,patternContentUnits,patternTransform,patternUnits,ping,pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,specularConstant,specularExponent,speed,spreadMethod,startOffset,stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,string,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,text-decoration,text-rendering,textLength,to,transform,transform-origin,type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xmlns:xlink,xml:base,xml:lang,xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan` `xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,color-interpolation-filters,color-profile,color-rendering,contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,font-family,font-size,font-size-adjust,font-stretch,font-style,font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,overflow,overline-position,overline-thickness,panose-1,paint-order,path,pathLength,patternContentUnits,patternTransform,patternUnits,ping,pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,specularConstant,specularExponent,speed,spreadMethod,startOffset,stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,string,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,text-decoration,text-rendering,textLength,to,transform,transform-origin,type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xmlns:xlink,xml:base,xml:lang,xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan`
); );
function isRenderableAttrValue(value) {
if (value == null) {
return false;
}
const type = typeof value;
return type === "string" || type === "number" || type === "boolean";
}
const escapeRE = /["'&<>]/; const escapeRE = /["'&<>]/;
function escapeHtml(string) { function escapeHtml(string) {
@ -520,6 +532,7 @@ exports.isOn = isOn;
exports.isPlainObject = isPlainObject; exports.isPlainObject = isPlainObject;
exports.isPromise = isPromise; exports.isPromise = isPromise;
exports.isRegExp = isRegExp; exports.isRegExp = isRegExp;
exports.isRenderableAttrValue = isRenderableAttrValue;
exports.isReservedProp = isReservedProp; exports.isReservedProp = isReservedProp;
exports.isSSRSafeAttrName = isSSRSafeAttrName; exports.isSSRSafeAttrName = isSSRSafeAttrName;
exports.isSVGTag = isSVGTag; exports.isSVGTag = isSVGTag;

View file

@ -292,6 +292,10 @@ export declare const isKnownHtmlAttr: (key: string) => boolean;
* Generated from https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute * Generated from https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute
*/ */
export declare const isKnownSvgAttr: (key: string) => boolean; export declare const isKnownSvgAttr: (key: string) => boolean;
/**
* Shared between server-renderer and runtime-core hydration logic
*/
export declare function isRenderableAttrValue(value: unknown): boolean;
export declare function escapeHtml(string: unknown): string; export declare function escapeHtml(string: unknown): string;
export declare function escapeHtmlComment(src: string): string; export declare function escapeHtmlComment(src: string): string;

View file

@ -1,3 +1,8 @@
/**
* @vue/shared v3.4.15
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/
function makeMap(str, expectsLowerCase) { function makeMap(str, expectsLowerCase) {
const set = new Set(str.split(",")); const set = new Set(str.split(","));
return expectsLowerCase ? (val) => set.has(val.toLowerCase()) : (val) => set.has(val); return expectsLowerCase ? (val) => set.has(val.toLowerCase()) : (val) => set.has(val);
@ -346,6 +351,13 @@ const isKnownHtmlAttr = /* @__PURE__ */ makeMap(
const isKnownSvgAttr = /* @__PURE__ */ makeMap( const isKnownSvgAttr = /* @__PURE__ */ makeMap(
`xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,color-interpolation-filters,color-profile,color-rendering,contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,font-family,font-size,font-size-adjust,font-stretch,font-style,font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,overflow,overline-position,overline-thickness,panose-1,paint-order,path,pathLength,patternContentUnits,patternTransform,patternUnits,ping,pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,specularConstant,specularExponent,speed,spreadMethod,startOffset,stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,string,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,text-decoration,text-rendering,textLength,to,transform,transform-origin,type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xmlns:xlink,xml:base,xml:lang,xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan` `xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,color-interpolation-filters,color-profile,color-rendering,contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,font-family,font-size,font-size-adjust,font-stretch,font-style,font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,overflow,overline-position,overline-thickness,panose-1,paint-order,path,pathLength,patternContentUnits,patternTransform,patternUnits,ping,pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,specularConstant,specularExponent,speed,spreadMethod,startOffset,stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,string,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,text-decoration,text-rendering,textLength,to,transform,transform-origin,type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xmlns:xlink,xml:base,xml:lang,xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan`
); );
function isRenderableAttrValue(value) {
if (value == null) {
return false;
}
const type = typeof value;
return type === "string" || type === "number" || type === "boolean";
}
const escapeRE = /["'&<>]/; const escapeRE = /["'&<>]/;
function escapeHtml(string) { function escapeHtml(string) {
@ -475,4 +487,4 @@ const stringifySymbol = (v, i = "") => {
return isSymbol(v) ? `Symbol(${(_a = v.description) != null ? _a : i})` : v; return isSymbol(v) ? `Symbol(${(_a = v.description) != null ? _a : i})` : v;
}; };
export { EMPTY_ARR, EMPTY_OBJ, NO, NOOP, PatchFlagNames, PatchFlags, ShapeFlags, SlotFlags, camelize, capitalize, def, escapeHtml, escapeHtmlComment, extend, genPropsAccessExp, generateCodeFrame, getGlobalThis, hasChanged, hasOwn, hyphenate, includeBooleanAttr, invokeArrayFns, isArray, isBooleanAttr, isBuiltInDirective, isDate, isFunction, isGloballyAllowed, isGloballyWhitelisted, isHTMLTag, isIntegerKey, isKnownHtmlAttr, isKnownSvgAttr, isMap, isMathMLTag, isModelListener, isObject, isOn, isPlainObject, isPromise, isRegExp, isReservedProp, isSSRSafeAttrName, isSVGTag, isSet, isSpecialBooleanAttr, isString, isSymbol, isVoidTag, looseEqual, looseIndexOf, looseToNumber, makeMap, normalizeClass, normalizeProps, normalizeStyle, objectToString, parseStringStyle, propsToAttrMap, remove, slotFlagsText, stringifyStyle, toDisplayString, toHandlerKey, toNumber, toRawType, toTypeString }; export { EMPTY_ARR, EMPTY_OBJ, NO, NOOP, PatchFlagNames, PatchFlags, ShapeFlags, SlotFlags, camelize, capitalize, def, escapeHtml, escapeHtmlComment, extend, genPropsAccessExp, generateCodeFrame, getGlobalThis, hasChanged, hasOwn, hyphenate, includeBooleanAttr, invokeArrayFns, isArray, isBooleanAttr, isBuiltInDirective, isDate, isFunction, isGloballyAllowed, isGloballyWhitelisted, isHTMLTag, isIntegerKey, isKnownHtmlAttr, isKnownSvgAttr, isMap, isMathMLTag, isModelListener, isObject, isOn, isPlainObject, isPromise, isRegExp, isRenderableAttrValue, isReservedProp, isSSRSafeAttrName, isSVGTag, isSet, isSpecialBooleanAttr, isString, isSymbol, isVoidTag, looseEqual, looseIndexOf, looseToNumber, makeMap, normalizeClass, normalizeProps, normalizeStyle, objectToString, parseStringStyle, propsToAttrMap, remove, slotFlagsText, stringifyStyle, toDisplayString, toHandlerKey, toNumber, toRawType, toTypeString };

View file

@ -1,6 +1,6 @@
{ {
"name": "@vue/shared", "name": "@vue/shared",
"version": "3.4.5", "version": "3.4.15",
"description": "internal utils shared across @vue packages", "description": "internal utils shared across @vue packages",
"main": "index.js", "main": "index.js",
"module": "dist/shared.esm-bundler.js", "module": "dist/shared.esm-bundler.js",
@ -17,6 +17,7 @@
"development": "./dist/shared.cjs.js", "development": "./dist/shared.cjs.js",
"default": "./index.js" "default": "./index.js"
}, },
"module": "./dist/shared.esm-bundler.js",
"import": "./dist/shared.esm-bundler.js", "import": "./dist/shared.esm-bundler.js",
"require": "./index.js" "require": "./index.js"
}, },

12
node_modules/@vueuse/core/index.cjs generated vendored
View file

@ -992,7 +992,7 @@ function blobToBase64(blob) {
function useBattery(options = {}) { function useBattery(options = {}) {
const { navigator = defaultNavigator } = options; const { navigator = defaultNavigator } = options;
const events = ["chargingchange", "chargingtimechange", "dischargingtimechange", "levelchange"]; const events = ["chargingchange", "chargingtimechange", "dischargingtimechange", "levelchange"];
const isSupported = useSupported(() => navigator && "getBattery" in navigator); const isSupported = useSupported(() => navigator && "getBattery" in navigator && typeof navigator.getBattery === "function");
const charging = vueDemi.ref(false); const charging = vueDemi.ref(false);
const chargingTime = vueDemi.ref(0); const chargingTime = vueDemi.ref(0);
const dischargingTime = vueDemi.ref(0); const dischargingTime = vueDemi.ref(0);
@ -2366,8 +2366,8 @@ function useDraggable(target, options = {}) {
const containerRect = (_a2 = container == null ? void 0 : container.getBoundingClientRect) == null ? void 0 : _a2.call(container); const containerRect = (_a2 = container == null ? void 0 : container.getBoundingClientRect) == null ? void 0 : _a2.call(container);
const targetRect = shared.toValue(target).getBoundingClientRect(); const targetRect = shared.toValue(target).getBoundingClientRect();
const pos = { const pos = {
x: e.clientX - (container ? targetRect.left - containerRect.left : targetRect.left), x: e.clientX - (container ? targetRect.left - containerRect.left + container.scrollLeft : targetRect.left),
y: e.clientY - (container ? targetRect.top - containerRect.top : targetRect.top) y: e.clientY - (container ? targetRect.top - containerRect.top + container.scrollTop : targetRect.top)
}; };
if ((onStart == null ? void 0 : onStart(pos, e)) === false) if ((onStart == null ? void 0 : onStart(pos, e)) === false)
return; return;
@ -2387,12 +2387,12 @@ function useDraggable(target, options = {}) {
if (axis === "x" || axis === "both") { if (axis === "x" || axis === "both") {
x = e.clientX - pressedDelta.value.x; x = e.clientX - pressedDelta.value.x;
if (container) if (container)
x = Math.min(Math.max(0, x), containerRect.width - targetRect.width); x = Math.min(Math.max(0, x), containerRect.width + container.scrollLeft - targetRect.width);
} }
if (axis === "y" || axis === "both") { if (axis === "y" || axis === "both") {
y = e.clientY - pressedDelta.value.y; y = e.clientY - pressedDelta.value.y;
if (container) if (container)
y = Math.min(Math.max(0, y), containerRect.height - targetRect.height); y = Math.min(Math.max(0, y), containerRect.height + container.scrollTop - targetRect.height);
} }
position.value = { position.value = {
x, x,
@ -5701,7 +5701,7 @@ function useStorageAsync(key, initialValue, storage, options = {}) {
const serializer = (_a = options.serializer) != null ? _a : StorageSerializers[type]; const serializer = (_a = options.serializer) != null ? _a : StorageSerializers[type];
if (!storage) { if (!storage) {
try { try {
storage = getSSRHandler("getDefaultStorage", () => { storage = getSSRHandler("getDefaultStorageAsync", () => {
var _a2; var _a2;
return (_a2 = defaultWindow) == null ? void 0 : _a2.localStorage; return (_a2 = defaultWindow) == null ? void 0 : _a2.localStorage;
})(); })();

View file

@ -4224,7 +4224,7 @@ interface FormatTimeAgoOptions<UnitNames extends string = UseTimeAgoUnitNamesDef
/** /**
* Custom units * Custom units
*/ */
units?: UseTimeAgoUnit<UseTimeAgoUnitNamesDefault>[]; units?: UseTimeAgoUnit<UnitNames>[];
} }
interface UseTimeAgoOptions<Controls extends boolean, UnitNames extends string = UseTimeAgoUnitNamesDefault> extends FormatTimeAgoOptions<UnitNames> { interface UseTimeAgoOptions<Controls extends boolean, UnitNames extends string = UseTimeAgoUnitNamesDefault> extends FormatTimeAgoOptions<UnitNames> {
/** /**

View file

@ -4224,7 +4224,7 @@ interface FormatTimeAgoOptions<UnitNames extends string = UseTimeAgoUnitNamesDef
/** /**
* Custom units * Custom units
*/ */
units?: UseTimeAgoUnit<UseTimeAgoUnitNamesDefault>[]; units?: UseTimeAgoUnit<UnitNames>[];
} }
interface UseTimeAgoOptions<Controls extends boolean, UnitNames extends string = UseTimeAgoUnitNamesDefault> extends FormatTimeAgoOptions<UnitNames> { interface UseTimeAgoOptions<Controls extends boolean, UnitNames extends string = UseTimeAgoUnitNamesDefault> extends FormatTimeAgoOptions<UnitNames> {
/** /**

View file

@ -4224,7 +4224,7 @@ interface FormatTimeAgoOptions<UnitNames extends string = UseTimeAgoUnitNamesDef
/** /**
* Custom units * Custom units
*/ */
units?: UseTimeAgoUnit<UseTimeAgoUnitNamesDefault>[]; units?: UseTimeAgoUnit<UnitNames>[];
} }
interface UseTimeAgoOptions<Controls extends boolean, UnitNames extends string = UseTimeAgoUnitNamesDefault> extends FormatTimeAgoOptions<UnitNames> { interface UseTimeAgoOptions<Controls extends boolean, UnitNames extends string = UseTimeAgoUnitNamesDefault> extends FormatTimeAgoOptions<UnitNames> {
/** /**

View file

@ -1106,7 +1106,7 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
function useBattery(options = {}) { function useBattery(options = {}) {
const { navigator = defaultNavigator } = options; const { navigator = defaultNavigator } = options;
const events = ["chargingchange", "chargingtimechange", "dischargingtimechange", "levelchange"]; const events = ["chargingchange", "chargingtimechange", "dischargingtimechange", "levelchange"];
const isSupported = useSupported(() => navigator && "getBattery" in navigator); const isSupported = useSupported(() => navigator && "getBattery" in navigator && typeof navigator.getBattery === "function");
const charging = vueDemi.ref(false); const charging = vueDemi.ref(false);
const chargingTime = vueDemi.ref(0); const chargingTime = vueDemi.ref(0);
const dischargingTime = vueDemi.ref(0); const dischargingTime = vueDemi.ref(0);
@ -2480,8 +2480,8 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
const containerRect = (_a2 = container == null ? void 0 : container.getBoundingClientRect) == null ? void 0 : _a2.call(container); const containerRect = (_a2 = container == null ? void 0 : container.getBoundingClientRect) == null ? void 0 : _a2.call(container);
const targetRect = shared.toValue(target).getBoundingClientRect(); const targetRect = shared.toValue(target).getBoundingClientRect();
const pos = { const pos = {
x: e.clientX - (container ? targetRect.left - containerRect.left : targetRect.left), x: e.clientX - (container ? targetRect.left - containerRect.left + container.scrollLeft : targetRect.left),
y: e.clientY - (container ? targetRect.top - containerRect.top : targetRect.top) y: e.clientY - (container ? targetRect.top - containerRect.top + container.scrollTop : targetRect.top)
}; };
if ((onStart == null ? void 0 : onStart(pos, e)) === false) if ((onStart == null ? void 0 : onStart(pos, e)) === false)
return; return;
@ -2501,12 +2501,12 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
if (axis === "x" || axis === "both") { if (axis === "x" || axis === "both") {
x = e.clientX - pressedDelta.value.x; x = e.clientX - pressedDelta.value.x;
if (container) if (container)
x = Math.min(Math.max(0, x), containerRect.width - targetRect.width); x = Math.min(Math.max(0, x), containerRect.width + container.scrollLeft - targetRect.width);
} }
if (axis === "y" || axis === "both") { if (axis === "y" || axis === "both") {
y = e.clientY - pressedDelta.value.y; y = e.clientY - pressedDelta.value.y;
if (container) if (container)
y = Math.min(Math.max(0, y), containerRect.height - targetRect.height); y = Math.min(Math.max(0, y), containerRect.height + container.scrollTop - targetRect.height);
} }
position.value = { position.value = {
x, x,
@ -5815,7 +5815,7 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
const serializer = (_a = options.serializer) != null ? _a : StorageSerializers[type]; const serializer = (_a = options.serializer) != null ? _a : StorageSerializers[type];
if (!storage) { if (!storage) {
try { try {
storage = getSSRHandler("getDefaultStorage", () => { storage = getSSRHandler("getDefaultStorageAsync", () => {
var _a2; var _a2;
return (_a2 = defaultWindow) == null ? void 0 : _a2.localStorage; return (_a2 = defaultWindow) == null ? void 0 : _a2.localStorage;
})(); })();

File diff suppressed because one or more lines are too long

12
node_modules/@vueuse/core/index.mjs generated vendored
View file

@ -991,7 +991,7 @@ function blobToBase64(blob) {
function useBattery(options = {}) { function useBattery(options = {}) {
const { navigator = defaultNavigator } = options; const { navigator = defaultNavigator } = options;
const events = ["chargingchange", "chargingtimechange", "dischargingtimechange", "levelchange"]; const events = ["chargingchange", "chargingtimechange", "dischargingtimechange", "levelchange"];
const isSupported = useSupported(() => navigator && "getBattery" in navigator); const isSupported = useSupported(() => navigator && "getBattery" in navigator && typeof navigator.getBattery === "function");
const charging = ref(false); const charging = ref(false);
const chargingTime = ref(0); const chargingTime = ref(0);
const dischargingTime = ref(0); const dischargingTime = ref(0);
@ -2365,8 +2365,8 @@ function useDraggable(target, options = {}) {
const containerRect = (_a2 = container == null ? void 0 : container.getBoundingClientRect) == null ? void 0 : _a2.call(container); const containerRect = (_a2 = container == null ? void 0 : container.getBoundingClientRect) == null ? void 0 : _a2.call(container);
const targetRect = toValue(target).getBoundingClientRect(); const targetRect = toValue(target).getBoundingClientRect();
const pos = { const pos = {
x: e.clientX - (container ? targetRect.left - containerRect.left : targetRect.left), x: e.clientX - (container ? targetRect.left - containerRect.left + container.scrollLeft : targetRect.left),
y: e.clientY - (container ? targetRect.top - containerRect.top : targetRect.top) y: e.clientY - (container ? targetRect.top - containerRect.top + container.scrollTop : targetRect.top)
}; };
if ((onStart == null ? void 0 : onStart(pos, e)) === false) if ((onStart == null ? void 0 : onStart(pos, e)) === false)
return; return;
@ -2386,12 +2386,12 @@ function useDraggable(target, options = {}) {
if (axis === "x" || axis === "both") { if (axis === "x" || axis === "both") {
x = e.clientX - pressedDelta.value.x; x = e.clientX - pressedDelta.value.x;
if (container) if (container)
x = Math.min(Math.max(0, x), containerRect.width - targetRect.width); x = Math.min(Math.max(0, x), containerRect.width + container.scrollLeft - targetRect.width);
} }
if (axis === "y" || axis === "both") { if (axis === "y" || axis === "both") {
y = e.clientY - pressedDelta.value.y; y = e.clientY - pressedDelta.value.y;
if (container) if (container)
y = Math.min(Math.max(0, y), containerRect.height - targetRect.height); y = Math.min(Math.max(0, y), containerRect.height + container.scrollTop - targetRect.height);
} }
position.value = { position.value = {
x, x,
@ -5700,7 +5700,7 @@ function useStorageAsync(key, initialValue, storage, options = {}) {
const serializer = (_a = options.serializer) != null ? _a : StorageSerializers[type]; const serializer = (_a = options.serializer) != null ? _a : StorageSerializers[type];
if (!storage) { if (!storage) {
try { try {
storage = getSSRHandler("getDefaultStorage", () => { storage = getSSRHandler("getDefaultStorageAsync", () => {
var _a2; var _a2;
return (_a2 = defaultWindow) == null ? void 0 : _a2.localStorage; return (_a2 = defaultWindow) == null ? void 0 : _a2.localStorage;
})(); })();

View file

@ -1,6 +1,6 @@
{ {
"name": "@vueuse/core", "name": "@vueuse/core",
"version": "10.7.1", "version": "10.7.2",
"description": "Collection of essential Vue Composition Utilities", "description": "Collection of essential Vue Composition Utilities",
"author": "Anthony Fu <https://github.com/antfu>", "author": "Anthony Fu <https://github.com/antfu>",
"license": "MIT", "license": "MIT",
@ -38,8 +38,8 @@
"types": "./index.d.cts", "types": "./index.d.cts",
"dependencies": { "dependencies": {
"@types/web-bluetooth": "^0.0.20", "@types/web-bluetooth": "^0.0.20",
"@vueuse/metadata": "10.7.1", "@vueuse/metadata": "10.7.2",
"@vueuse/shared": "10.7.1", "@vueuse/shared": "10.7.2",
"vue-demi": ">=0.14.6" "vue-demi": ">=0.14.6"
} }
} }

View file

@ -86,12 +86,13 @@ function useAsyncValidator(value, rules, options = {}) {
function useAxios(...args) { function useAxios(...args) {
const url = typeof args[0] === "string" ? args[0] : void 0; const url = typeof args[0] === "string" ? args[0] : void 0;
const argsPlaceholder = typeof url === "string" ? 1 : 0; const argsPlaceholder = typeof url === "string" ? 1 : 0;
let defaultConfig = {}; const defaultOptions = {
let instance = axios;
let options = {
immediate: !!argsPlaceholder, immediate: !!argsPlaceholder,
shallow: true shallow: true
}; };
let defaultConfig = {};
let instance = axios;
let options = defaultOptions;
const isAxiosInstance = (val) => !!(val == null ? void 0 : val.request); const isAxiosInstance = (val) => !!(val == null ? void 0 : val.request);
if (args.length > 0 + argsPlaceholder) { if (args.length > 0 + argsPlaceholder) {
if (isAxiosInstance(args[0 + argsPlaceholder])) if (isAxiosInstance(args[0 + argsPlaceholder]))
@ -104,7 +105,7 @@ function useAxios(...args) {
instance = args[1 + argsPlaceholder]; instance = args[1 + argsPlaceholder];
} }
if (args.length === 2 + argsPlaceholder && !isAxiosInstance(args[1 + argsPlaceholder]) || args.length === 3 + argsPlaceholder) if (args.length === 2 + argsPlaceholder && !isAxiosInstance(args[1 + argsPlaceholder]) || args.length === 3 + argsPlaceholder)
options = args[args.length - 1]; options = args[args.length - 1] || defaultOptions;
const { const {
initialData, initialData,
shallow, shallow,

View file

@ -187,12 +187,13 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
function useAxios(...args) { function useAxios(...args) {
const url = typeof args[0] === "string" ? args[0] : void 0; const url = typeof args[0] === "string" ? args[0] : void 0;
const argsPlaceholder = typeof url === "string" ? 1 : 0; const argsPlaceholder = typeof url === "string" ? 1 : 0;
let defaultConfig = {}; const defaultOptions = {
let instance = axios;
let options = {
immediate: !!argsPlaceholder, immediate: !!argsPlaceholder,
shallow: true shallow: true
}; };
let defaultConfig = {};
let instance = axios;
let options = defaultOptions;
const isAxiosInstance = (val) => !!(val == null ? void 0 : val.request); const isAxiosInstance = (val) => !!(val == null ? void 0 : val.request);
if (args.length > 0 + argsPlaceholder) { if (args.length > 0 + argsPlaceholder) {
if (isAxiosInstance(args[0 + argsPlaceholder])) if (isAxiosInstance(args[0 + argsPlaceholder]))
@ -205,7 +206,7 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
instance = args[1 + argsPlaceholder]; instance = args[1 + argsPlaceholder];
} }
if (args.length === 2 + argsPlaceholder && !isAxiosInstance(args[1 + argsPlaceholder]) || args.length === 3 + argsPlaceholder) if (args.length === 2 + argsPlaceholder && !isAxiosInstance(args[1 + argsPlaceholder]) || args.length === 3 + argsPlaceholder)
options = args[args.length - 1]; options = args[args.length - 1] || defaultOptions;
const { const {
initialData, initialData,
shallow, shallow,

File diff suppressed because one or more lines are too long

View file

@ -84,12 +84,13 @@ function useAsyncValidator(value, rules, options = {}) {
function useAxios(...args) { function useAxios(...args) {
const url = typeof args[0] === "string" ? args[0] : void 0; const url = typeof args[0] === "string" ? args[0] : void 0;
const argsPlaceholder = typeof url === "string" ? 1 : 0; const argsPlaceholder = typeof url === "string" ? 1 : 0;
let defaultConfig = {}; const defaultOptions = {
let instance = axios;
let options = {
immediate: !!argsPlaceholder, immediate: !!argsPlaceholder,
shallow: true shallow: true
}; };
let defaultConfig = {};
let instance = axios;
let options = defaultOptions;
const isAxiosInstance = (val) => !!(val == null ? void 0 : val.request); const isAxiosInstance = (val) => !!(val == null ? void 0 : val.request);
if (args.length > 0 + argsPlaceholder) { if (args.length > 0 + argsPlaceholder) {
if (isAxiosInstance(args[0 + argsPlaceholder])) if (isAxiosInstance(args[0 + argsPlaceholder]))
@ -102,7 +103,7 @@ function useAxios(...args) {
instance = args[1 + argsPlaceholder]; instance = args[1 + argsPlaceholder];
} }
if (args.length === 2 + argsPlaceholder && !isAxiosInstance(args[1 + argsPlaceholder]) || args.length === 3 + argsPlaceholder) if (args.length === 2 + argsPlaceholder && !isAxiosInstance(args[1 + argsPlaceholder]) || args.length === 3 + argsPlaceholder)
options = args[args.length - 1]; options = args[args.length - 1] || defaultOptions;
const { const {
initialData, initialData,
shallow, shallow,

View file

@ -1,6 +1,6 @@
{ {
"name": "@vueuse/integrations", "name": "@vueuse/integrations",
"version": "10.7.1", "version": "10.7.2",
"description": "Integration wrappers for utility libraries", "description": "Integration wrappers for utility libraries",
"author": "Anthony Fu <https://github.com/antfu>", "author": "Anthony Fu <https://github.com/antfu>",
"license": "MIT", "license": "MIT",
@ -145,8 +145,8 @@
} }
}, },
"dependencies": { "dependencies": {
"@vueuse/core": "10.7.1", "@vueuse/core": "10.7.2",
"@vueuse/shared": "10.7.1", "@vueuse/shared": "10.7.2",
"vue-demi": ">=0.14.6" "vue-demi": ">=0.14.6"
}, },
"devDependencies": { "devDependencies": {
@ -154,7 +154,7 @@
"@types/qrcode": "^1.5.5", "@types/qrcode": "^1.5.5",
"@types/sortablejs": "^1.15.7", "@types/sortablejs": "^1.15.7",
"async-validator": "^4.2.5", "async-validator": "^4.2.5",
"axios": "^1.6.3", "axios": "^1.6.5",
"change-case": "^4.1.2", "change-case": "^4.1.2",
"drauu": "^0.3.7", "drauu": "^0.3.7",
"focus-trap": "^7.5.4", "focus-trap": "^7.5.4",
@ -164,6 +164,6 @@
"nprogress": "^0.2.0", "nprogress": "^0.2.0",
"qrcode": "^1.5.3", "qrcode": "^1.5.3",
"sortablejs": "^1.15.1", "sortablejs": "^1.15.1",
"universal-cookie": "^6.1.1" "universal-cookie": "^6.1.3"
} }
} }

Some files were not shown because too many files have changed in this diff Show more