@vue/compat 3.6.0-rc.1 → 3.6.0-rc.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/vue-compat.d.ts +738 -678
- package/dist/vue.cjs.js +1315 -939
- package/dist/vue.cjs.prod.js +1103 -804
- package/dist/vue.esm-browser.js +1227 -890
- package/dist/vue.esm-browser.prod.js +7 -6
- package/dist/vue.esm-bundler.js +1300 -911
- package/dist/vue.global.js +1227 -890
- package/dist/vue.global.prod.js +7 -6
- package/dist/vue.runtime.esm-browser.js +1227 -890
- package/dist/vue.runtime.esm-browser.prod.js +7 -6
- package/dist/vue.runtime.esm-bundler.js +1300 -911
- package/dist/vue.runtime.global.js +1227 -890
- package/dist/vue.runtime.global.prod.js +7 -6
- package/package.json +3 -3
package/dist/vue.cjs.prod.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @vue/compat v3.6.0-rc.
|
|
2
|
+
* @vue/compat v3.6.0-rc.10
|
|
3
3
|
* (c) 2018-present Yuxi (Evan) You and Vue contributors
|
|
4
4
|
* @license MIT
|
|
5
5
|
**/
|
|
@@ -26,7 +26,7 @@ let source_map_js = require("source-map-js");
|
|
|
26
26
|
* \/\*#\_\_PURE\_\_\*\/
|
|
27
27
|
* So that they can be tree-shaken if necessary.
|
|
28
28
|
*/
|
|
29
|
-
|
|
29
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
30
30
|
function makeMap(str) {
|
|
31
31
|
const map = Object.create(null);
|
|
32
32
|
for (const key of str.split(",")) map[key] = 1;
|
|
@@ -70,8 +70,8 @@ const toRawType = (value) => {
|
|
|
70
70
|
};
|
|
71
71
|
const isPlainObject = (val) => toTypeString(val) === "[object Object]";
|
|
72
72
|
const isIntegerKey = (key) => isString(key) && key !== "NaN" && key[0] !== "-" && "" + parseInt(key, 10) === key;
|
|
73
|
-
const isReservedProp =
|
|
74
|
-
const isBuiltInDirective =
|
|
73
|
+
const isReservedProp = /*@__PURE__*/ makeMap(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted");
|
|
74
|
+
const isBuiltInDirective = /*@__PURE__*/ makeMap("bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo");
|
|
75
75
|
const cacheStringFunction = (fn) => {
|
|
76
76
|
const cache = Object.create(null);
|
|
77
77
|
return ((str) => {
|
|
@@ -152,7 +152,7 @@ function genCacheKey(source, options) {
|
|
|
152
152
|
function canSetValueDirectly(tagName) {
|
|
153
153
|
return tagName !== "PROGRESS" && !tagName.includes("-");
|
|
154
154
|
}
|
|
155
|
-
const isGloballyAllowed =
|
|
155
|
+
const isGloballyAllowed = /*@__PURE__*/ makeMap("Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error,Symbol");
|
|
156
156
|
//#endregion
|
|
157
157
|
//#region packages/shared/src/normalizeProp.ts
|
|
158
158
|
function normalizeStyle(value) {
|
|
@@ -168,10 +168,10 @@ function normalizeStyle(value) {
|
|
|
168
168
|
}
|
|
169
169
|
const listDelimiterRE = /;(?![^(]*\))/g;
|
|
170
170
|
const propertyDelimiterRE = /:([^]+)/;
|
|
171
|
-
const styleCommentRE =
|
|
171
|
+
const styleCommentRE = /"(?:[^"\\]|\\[^])*"|'(?:[^'\\]|\\[^])*'|\\[^]|\/\*[^]*?\*\//g;
|
|
172
172
|
function parseStringStyle(cssText) {
|
|
173
173
|
const ret = {};
|
|
174
|
-
cssText.replace(styleCommentRE, "").split(listDelimiterRE).forEach((item) => {
|
|
174
|
+
cssText.replace(styleCommentRE, (match) => match.startsWith("/*") ? "" : match).split(listDelimiterRE).forEach((item) => {
|
|
175
175
|
if (item) {
|
|
176
176
|
const tmp = item.split(propertyDelimiterRE);
|
|
177
177
|
tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim());
|
|
@@ -221,22 +221,22 @@ const VOID_TAGS = "area,base,br,col,embed,hr,img,input,link,meta,param,source,tr
|
|
|
221
221
|
* Compiler only.
|
|
222
222
|
* Do NOT use in runtime code paths unless behind `__DEV__` flag.
|
|
223
223
|
*/
|
|
224
|
-
const isHTMLTag =
|
|
224
|
+
const isHTMLTag = /*@__PURE__*/ makeMap(HTML_TAGS);
|
|
225
225
|
/**
|
|
226
226
|
* Compiler only.
|
|
227
227
|
* Do NOT use in runtime code paths unless behind `__DEV__` flag.
|
|
228
228
|
*/
|
|
229
|
-
const isSVGTag =
|
|
229
|
+
const isSVGTag = /*@__PURE__*/ makeMap(SVG_TAGS);
|
|
230
230
|
/**
|
|
231
231
|
* Compiler only.
|
|
232
232
|
* Do NOT use in runtime code paths unless behind `__DEV__` flag.
|
|
233
233
|
*/
|
|
234
|
-
const isMathMLTag =
|
|
234
|
+
const isMathMLTag = /*@__PURE__*/ makeMap(MATH_TAGS);
|
|
235
235
|
/**
|
|
236
236
|
* Compiler only.
|
|
237
237
|
* Do NOT use in runtime code paths unless behind `__DEV__` flag.
|
|
238
238
|
*/
|
|
239
|
-
const isVoidTag =
|
|
239
|
+
const isVoidTag = /*@__PURE__*/ makeMap(VOID_TAGS);
|
|
240
240
|
//#endregion
|
|
241
241
|
//#region packages/shared/src/domAttrConfig.ts
|
|
242
242
|
/**
|
|
@@ -251,11 +251,11 @@ const isVoidTag = /* @__PURE__ */ makeMap(VOID_TAGS);
|
|
|
251
251
|
* - readonly -> readOnly
|
|
252
252
|
*/
|
|
253
253
|
const specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;
|
|
254
|
-
const isSpecialBooleanAttr =
|
|
254
|
+
const isSpecialBooleanAttr = /*@__PURE__*/ makeMap(specialBooleanAttrs);
|
|
255
255
|
/**
|
|
256
256
|
* The full list is needed during SSR to produce the correct initial markup.
|
|
257
257
|
*/
|
|
258
|
-
const isBooleanAttr =
|
|
258
|
+
const isBooleanAttr = /*@__PURE__*/ makeMap(specialBooleanAttrs + ",async,autofocus,autoplay,controls,default,defer,disabled,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected");
|
|
259
259
|
/**
|
|
260
260
|
* Boolean attributes should be included if the value is truthy or ''.
|
|
261
261
|
* e.g. `<select multiple>` compiles to `{ multiple: '' }`
|
|
@@ -269,15 +269,15 @@ function includeBooleanAttr(value) {
|
|
|
269
269
|
* Don't also forget to allow `data-*` and `aria-*`!
|
|
270
270
|
* Generated from https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes
|
|
271
271
|
*/
|
|
272
|
-
const isKnownHtmlAttr =
|
|
272
|
+
const isKnownHtmlAttr = /*@__PURE__*/ makeMap("accept,accept-charset,accesskey,action,align,allow,alt,async,autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,border,buffered,capture,challenge,charset,checked,cite,class,code,codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,formaction,formenctype,formmethod,formnovalidate,formtarget,headers,height,hidden,high,href,hreflang,http-equiv,icon,id,importance,inert,integrity,ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,start,step,style,summary,tabindex,target,title,translate,type,usemap,value,width,wrap");
|
|
273
273
|
/**
|
|
274
274
|
* Generated from https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute
|
|
275
275
|
*/
|
|
276
|
-
const isKnownSvgAttr =
|
|
276
|
+
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");
|
|
277
277
|
/**
|
|
278
278
|
* Generated from https://developer.mozilla.org/en-US/docs/Web/MathML/Attribute
|
|
279
279
|
*/
|
|
280
|
-
const isKnownMathMLAttr =
|
|
280
|
+
const isKnownMathMLAttr = /*@__PURE__*/ makeMap("accent,accentunder,actiontype,align,alignmentscope,altimg,altimg-height,altimg-valign,altimg-width,alttext,bevelled,close,columnsalign,columnlines,columnspan,denomalign,depth,dir,display,displaystyle,encoding,equalcolumns,equalrows,fence,fontstyle,fontweight,form,frame,framespacing,groupalign,height,href,id,indentalign,indentalignfirst,indentalignlast,indentshift,indentshiftfirst,indentshiftlast,indextype,justify,largetop,largeop,lquote,lspace,mathbackground,mathcolor,mathsize,mathvariant,maxsize,minlabelspacing,mode,other,overflow,position,rowalign,rowlines,rowspan,rquote,rspace,scriptlevel,scriptminsize,scriptsizemultiplier,selection,separator,separators,shift,side,src,stackalign,stretchy,subscriptshift,superscriptshift,symmetric,voffset,width,widths,xlink:href,xlink:show,xlink:type,xmlns");
|
|
281
281
|
function shouldSetAsAttr(tagName, key) {
|
|
282
282
|
if (key === "spellcheck" || key === "draggable" || key === "translate" || key === "autocorrect") return true;
|
|
283
283
|
if (key === "form") return true;
|
|
@@ -325,13 +325,54 @@ function escapeHtml(string) {
|
|
|
325
325
|
}
|
|
326
326
|
//#endregion
|
|
327
327
|
//#region packages/shared/src/looseEqual.ts
|
|
328
|
-
function looseCompareArrays(a, b) {
|
|
328
|
+
function looseCompareArrays(a, b, seen) {
|
|
329
329
|
if (a.length !== b.length) return false;
|
|
330
330
|
let equal = true;
|
|
331
|
-
for (let i = 0; equal && i < a.length; i++) equal = looseEqual(a[i], b[i]);
|
|
331
|
+
for (let i = 0; equal && i < a.length; i++) equal = looseEqual(a[i], b[i], seen);
|
|
332
332
|
return equal;
|
|
333
333
|
}
|
|
334
|
-
function
|
|
334
|
+
function looseCompareCollections(a, b, seen) {
|
|
335
|
+
if (a.size !== b.size) return false;
|
|
336
|
+
const candidates = Array.from(b);
|
|
337
|
+
const matched = new Uint8Array(candidates.length);
|
|
338
|
+
for (const item of a) {
|
|
339
|
+
let index = -1;
|
|
340
|
+
for (let i = 0; i < candidates.length; i++) if (!matched[i] && looseEqual(item, candidates[i], seen)) {
|
|
341
|
+
index = i;
|
|
342
|
+
break;
|
|
343
|
+
}
|
|
344
|
+
if (index < 0) return false;
|
|
345
|
+
matched[index] = 1;
|
|
346
|
+
}
|
|
347
|
+
return true;
|
|
348
|
+
}
|
|
349
|
+
function looseCompareObjects(a, b, seen) {
|
|
350
|
+
let aValidType = isMap(a);
|
|
351
|
+
let bValidType = isMap(b);
|
|
352
|
+
if (aValidType || bValidType) return aValidType && bValidType ? looseCompareCollections(a, b, seen) : false;
|
|
353
|
+
aValidType = isSet(a);
|
|
354
|
+
bValidType = isSet(b);
|
|
355
|
+
if (aValidType || bValidType) return aValidType && bValidType ? looseCompareCollections(a, b, seen) : false;
|
|
356
|
+
if (Object.keys(a).length !== Object.keys(b).length) return false;
|
|
357
|
+
for (const key in a) {
|
|
358
|
+
const aHasKey = a.hasOwnProperty(key);
|
|
359
|
+
const bHasKey = b.hasOwnProperty(key);
|
|
360
|
+
if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key], seen)) return false;
|
|
361
|
+
}
|
|
362
|
+
return String(a) === String(b);
|
|
363
|
+
}
|
|
364
|
+
function looseCompareNested(a, b, seen, compare) {
|
|
365
|
+
if (!seen) seen = [/* @__PURE__ */ new Map(), /* @__PURE__ */ new Map()];
|
|
366
|
+
const [seenA, seenB] = seen;
|
|
367
|
+
if (seenA.has(a) || seenB.has(b)) return seenA.get(a) === b && seenB.get(b) === a;
|
|
368
|
+
seenA.set(a, b);
|
|
369
|
+
seenB.set(b, a);
|
|
370
|
+
const equal = compare(a, b, seen);
|
|
371
|
+
seenA.delete(a);
|
|
372
|
+
seenB.delete(b);
|
|
373
|
+
return equal;
|
|
374
|
+
}
|
|
375
|
+
function looseEqual(a, b, seen) {
|
|
335
376
|
if (a === b) return true;
|
|
336
377
|
let aValidType = isDate(a);
|
|
337
378
|
let bValidType = isDate(b);
|
|
@@ -341,17 +382,12 @@ function looseEqual(a, b) {
|
|
|
341
382
|
if (aValidType || bValidType) return a === b;
|
|
342
383
|
aValidType = isArray(a);
|
|
343
384
|
bValidType = isArray(b);
|
|
344
|
-
if (aValidType || bValidType) return aValidType && bValidType ?
|
|
385
|
+
if (aValidType || bValidType) return aValidType && bValidType ? looseCompareNested(a, b, seen, looseCompareArrays) : false;
|
|
345
386
|
aValidType = isObject(a);
|
|
346
387
|
bValidType = isObject(b);
|
|
347
388
|
if (aValidType || bValidType) {
|
|
348
389
|
if (!aValidType || !bValidType) return false;
|
|
349
|
-
|
|
350
|
-
for (const key in a) {
|
|
351
|
-
const aHasKey = a.hasOwnProperty(key);
|
|
352
|
-
const bHasKey = b.hasOwnProperty(key);
|
|
353
|
-
if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key])) return false;
|
|
354
|
-
}
|
|
390
|
+
return looseCompareNested(a, b, seen, looseCompareObjects);
|
|
355
391
|
}
|
|
356
392
|
return String(a) === String(b);
|
|
357
393
|
}
|
|
@@ -429,6 +465,8 @@ function getSequence(arr) {
|
|
|
429
465
|
}
|
|
430
466
|
return result;
|
|
431
467
|
}
|
|
468
|
+
//#endregion
|
|
469
|
+
//#region packages/reactivity/src/system.ts
|
|
432
470
|
const notifyBuffer = [];
|
|
433
471
|
let batchDepth = 0;
|
|
434
472
|
let activeSub = void 0;
|
|
@@ -566,13 +604,23 @@ function endTracking(sub, prevSub) {
|
|
|
566
604
|
sub.flags &= -5;
|
|
567
605
|
}
|
|
568
606
|
function flush() {
|
|
607
|
+
let hasError = false;
|
|
608
|
+
let error;
|
|
569
609
|
while (notifyIndex < notifyBufferLength) {
|
|
570
610
|
const effect = notifyBuffer[notifyIndex];
|
|
571
611
|
notifyBuffer[notifyIndex++] = void 0;
|
|
572
|
-
|
|
612
|
+
try {
|
|
613
|
+
effect.notify();
|
|
614
|
+
} catch (err) {
|
|
615
|
+
if (!hasError) {
|
|
616
|
+
hasError = true;
|
|
617
|
+
error = err;
|
|
618
|
+
}
|
|
619
|
+
}
|
|
573
620
|
}
|
|
574
621
|
notifyIndex = 0;
|
|
575
622
|
notifyBufferLength = 0;
|
|
623
|
+
if (hasError) throw error;
|
|
576
624
|
}
|
|
577
625
|
function checkDirty(link, sub) {
|
|
578
626
|
let stack;
|
|
@@ -656,7 +704,7 @@ var Dep = class {
|
|
|
656
704
|
}
|
|
657
705
|
set subs(value) {
|
|
658
706
|
this._subs = value;
|
|
659
|
-
if (value === void 0) this.map.delete(this.key);
|
|
707
|
+
if (value === void 0 && this.map) this.map.delete(this.key);
|
|
660
708
|
}
|
|
661
709
|
};
|
|
662
710
|
const targetMap = /* @__PURE__ */ new WeakMap();
|
|
@@ -725,9 +773,7 @@ function trigger(target, type, key, newValue, oldValue, oldTarget) {
|
|
|
725
773
|
if (isMap(target)) run(depsMap.get(MAP_KEY_ITERATE_KEY));
|
|
726
774
|
}
|
|
727
775
|
break;
|
|
728
|
-
case "set":
|
|
729
|
-
if (isMap(target)) run(depsMap.get(ITERATE_KEY));
|
|
730
|
-
break;
|
|
776
|
+
case "set": if (isMap(target)) run(depsMap.get(ITERATE_KEY));
|
|
731
777
|
}
|
|
732
778
|
}
|
|
733
779
|
}
|
|
@@ -742,13 +788,17 @@ function getDepFromReactive(object, key) {
|
|
|
742
788
|
/**
|
|
743
789
|
* Track array iteration and return:
|
|
744
790
|
* - if input is reactive: a cloned raw array with reactive values
|
|
745
|
-
* - if input is
|
|
791
|
+
* - if input is readonly: a cloned raw array with readonly values, preserving
|
|
792
|
+
* reactivity
|
|
793
|
+
* - if input is raw or shallow: the original raw array
|
|
746
794
|
*/
|
|
747
795
|
function reactiveReadArray(array) {
|
|
748
796
|
const raw = /* @__PURE__ */ toRaw(array);
|
|
749
797
|
if (raw === array) return raw;
|
|
750
798
|
track(raw, "iterate", ARRAY_ITERATE_KEY);
|
|
751
|
-
|
|
799
|
+
if (/* @__PURE__ */ isShallow(array)) return raw;
|
|
800
|
+
if (!/* @__PURE__ */ isReadonly(array)) return raw.map(toReactive);
|
|
801
|
+
return /* @__PURE__ */ isReactive(array) ? raw.map((item) => toReadonly(toReactive(item))) : raw.map(toReadonly);
|
|
752
802
|
}
|
|
753
803
|
/**
|
|
754
804
|
* Track array iteration and return raw array
|
|
@@ -924,8 +974,8 @@ function noTracking(self, method, args = []) {
|
|
|
924
974
|
}
|
|
925
975
|
//#endregion
|
|
926
976
|
//#region packages/reactivity/src/baseHandlers.ts
|
|
927
|
-
const isNonTrackableKeys =
|
|
928
|
-
const builtInSymbols = new Set(
|
|
977
|
+
const isNonTrackableKeys = /*@__PURE__*/ makeMap(`__proto__,__v_isRef,__isVue`);
|
|
978
|
+
const builtInSymbols = new Set(/*@__PURE__*/ Object.getOwnPropertyNames(Symbol).filter((key) => key !== "arguments" && key !== "caller").map((key) => Symbol[key]).filter(isSymbol));
|
|
929
979
|
function hasOwnProperty(key) {
|
|
930
980
|
if (!isSymbol(key)) key = String(key);
|
|
931
981
|
const obj = /* @__PURE__ */ toRaw(this);
|
|
@@ -980,10 +1030,12 @@ var MutableReactiveHandler = class extends BaseReactiveHandler {
|
|
|
980
1030
|
oldValue = /* @__PURE__ */ toRaw(oldValue);
|
|
981
1031
|
value = /* @__PURE__ */ toRaw(value);
|
|
982
1032
|
}
|
|
983
|
-
if (!isArrayWithIntegerKey && /* @__PURE__ */ isRef(oldValue) && !/* @__PURE__ */ isRef(value))
|
|
984
|
-
|
|
985
|
-
|
|
986
|
-
|
|
1033
|
+
if (!isArrayWithIntegerKey && /* @__PURE__ */ isRef(oldValue) && !/* @__PURE__ */ isRef(value)) {
|
|
1034
|
+
if (isOldValueReadonly) return true;
|
|
1035
|
+
else {
|
|
1036
|
+
oldValue.value = value;
|
|
1037
|
+
return true;
|
|
1038
|
+
}
|
|
987
1039
|
}
|
|
988
1040
|
}
|
|
989
1041
|
const hadKey = isArrayWithIntegerKey ? Number(key) < target.length : hasOwn(target, key);
|
|
@@ -1022,10 +1074,10 @@ var ReadonlyReactiveHandler = class extends BaseReactiveHandler {
|
|
|
1022
1074
|
return true;
|
|
1023
1075
|
}
|
|
1024
1076
|
};
|
|
1025
|
-
const mutableHandlers =
|
|
1026
|
-
const readonlyHandlers =
|
|
1027
|
-
const shallowReactiveHandlers =
|
|
1028
|
-
const shallowReadonlyHandlers =
|
|
1077
|
+
const mutableHandlers = /*@__PURE__*/ new MutableReactiveHandler();
|
|
1078
|
+
const readonlyHandlers = /*@__PURE__*/ new ReadonlyReactiveHandler();
|
|
1079
|
+
const shallowReactiveHandlers = /*@__PURE__*/ new MutableReactiveHandler(true);
|
|
1080
|
+
const shallowReadonlyHandlers = /*@__PURE__*/ new ReadonlyReactiveHandler(true);
|
|
1029
1081
|
//#endregion
|
|
1030
1082
|
//#region packages/reactivity/src/collectionHandlers.ts
|
|
1031
1083
|
const toShallow = (value) => value;
|
|
@@ -1172,10 +1224,10 @@ function createInstrumentationGetter(isReadonly, shallow) {
|
|
|
1172
1224
|
return Reflect.get(hasOwn(instrumentations, key) && key in target ? instrumentations : target, key, receiver);
|
|
1173
1225
|
};
|
|
1174
1226
|
}
|
|
1175
|
-
const mutableCollectionHandlers = { get:
|
|
1176
|
-
const shallowCollectionHandlers = { get:
|
|
1177
|
-
const readonlyCollectionHandlers = { get:
|
|
1178
|
-
const shallowReadonlyCollectionHandlers = { get:
|
|
1227
|
+
const mutableCollectionHandlers = { get: /*@__PURE__*/ createInstrumentationGetter(false, false) };
|
|
1228
|
+
const shallowCollectionHandlers = { get: /*@__PURE__*/ createInstrumentationGetter(false, true) };
|
|
1229
|
+
const readonlyCollectionHandlers = { get: /*@__PURE__*/ createInstrumentationGetter(true, false) };
|
|
1230
|
+
const shallowReadonlyCollectionHandlers = { get: /*@__PURE__*/ createInstrumentationGetter(true, true) };
|
|
1179
1231
|
//#endregion
|
|
1180
1232
|
//#region packages/reactivity/src/reactive.ts
|
|
1181
1233
|
const reactiveMap = /* @__PURE__ */ new WeakMap();
|
|
@@ -1193,7 +1245,7 @@ function targetTypeMap(rawType) {
|
|
|
1193
1245
|
default: return 0;
|
|
1194
1246
|
}
|
|
1195
1247
|
}
|
|
1196
|
-
|
|
1248
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
1197
1249
|
function reactive(target) {
|
|
1198
1250
|
if (/* @__PURE__ */ isReadonly(target)) return target;
|
|
1199
1251
|
return createReactiveObject(target, false, mutableHandlers, mutableCollectionHandlers, reactiveMap);
|
|
@@ -1228,7 +1280,7 @@ function reactive(target) {
|
|
|
1228
1280
|
* @param target - The source object.
|
|
1229
1281
|
* @see {@link https://vuejs.org/api/reactivity-advanced.html#shallowreactive}
|
|
1230
1282
|
*/
|
|
1231
|
-
|
|
1283
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
1232
1284
|
function shallowReactive(target) {
|
|
1233
1285
|
return createReactiveObject(target, false, shallowReactiveHandlers, shallowCollectionHandlers, shallowReactiveMap);
|
|
1234
1286
|
}
|
|
@@ -1261,7 +1313,7 @@ function shallowReactive(target) {
|
|
|
1261
1313
|
* @param target - The source object.
|
|
1262
1314
|
* @see {@link https://vuejs.org/api/reactivity-core.html#readonly}
|
|
1263
1315
|
*/
|
|
1264
|
-
|
|
1316
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
1265
1317
|
function readonly(target) {
|
|
1266
1318
|
return createReactiveObject(target, true, readonlyHandlers, readonlyCollectionHandlers, readonlyMap);
|
|
1267
1319
|
}
|
|
@@ -1295,7 +1347,7 @@ function readonly(target) {
|
|
|
1295
1347
|
* @param target - The source object.
|
|
1296
1348
|
* @see {@link https://vuejs.org/api/reactivity-advanced.html#shallowreadonly}
|
|
1297
1349
|
*/
|
|
1298
|
-
|
|
1350
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
1299
1351
|
function shallowReadonly(target) {
|
|
1300
1352
|
return createReactiveObject(target, true, shallowReadonlyHandlers, shallowReadonlyCollectionHandlers, shallowReadonlyMap);
|
|
1301
1353
|
}
|
|
@@ -1329,7 +1381,7 @@ function createReactiveObject(target, isReadonly, baseHandlers, collectionHandle
|
|
|
1329
1381
|
* @param value - The value to check.
|
|
1330
1382
|
* @see {@link https://vuejs.org/api/reactivity-utilities.html#isreactive}
|
|
1331
1383
|
*/
|
|
1332
|
-
|
|
1384
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
1333
1385
|
function isReactive(value) {
|
|
1334
1386
|
if (/* @__PURE__ */ isReadonly(value)) return /* @__PURE__ */ isReactive(value["__v_raw"]);
|
|
1335
1387
|
return !!(value && value["__v_isReactive"]);
|
|
@@ -1345,11 +1397,11 @@ function isReactive(value) {
|
|
|
1345
1397
|
* @param value - The value to check.
|
|
1346
1398
|
* @see {@link https://vuejs.org/api/reactivity-utilities.html#isreadonly}
|
|
1347
1399
|
*/
|
|
1348
|
-
|
|
1400
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
1349
1401
|
function isReadonly(value) {
|
|
1350
1402
|
return !!(value && value["__v_isReadonly"]);
|
|
1351
1403
|
}
|
|
1352
|
-
|
|
1404
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
1353
1405
|
function isShallow(value) {
|
|
1354
1406
|
return !!(value && value["__v_isShallow"]);
|
|
1355
1407
|
}
|
|
@@ -1360,7 +1412,7 @@ function isShallow(value) {
|
|
|
1360
1412
|
* @param value - The value to check.
|
|
1361
1413
|
* @see {@link https://vuejs.org/api/reactivity-utilities.html#isproxy}
|
|
1362
1414
|
*/
|
|
1363
|
-
|
|
1415
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
1364
1416
|
function isProxy(value) {
|
|
1365
1417
|
return value ? !!value["__v_raw"] : false;
|
|
1366
1418
|
}
|
|
@@ -1387,7 +1439,7 @@ function isProxy(value) {
|
|
|
1387
1439
|
* @param observed - The object for which the "raw" value is requested.
|
|
1388
1440
|
* @see {@link https://vuejs.org/api/reactivity-advanced.html#toraw}
|
|
1389
1441
|
*/
|
|
1390
|
-
|
|
1442
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
1391
1443
|
function toRaw(observed) {
|
|
1392
1444
|
const raw = observed && observed["__v_raw"];
|
|
1393
1445
|
return raw ? /* @__PURE__ */ toRaw(raw) : observed;
|
|
@@ -1436,15 +1488,15 @@ const toReactive = (value) => isObject(value) ? /* @__PURE__ */ reactive(value)
|
|
|
1436
1488
|
const toReadonly = (value) => isObject(value) ? /* @__PURE__ */ readonly(value) : value;
|
|
1437
1489
|
//#endregion
|
|
1438
1490
|
//#region packages/reactivity/src/ref.ts
|
|
1439
|
-
|
|
1491
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
1440
1492
|
function isRef(r) {
|
|
1441
1493
|
return r ? r["__v_isRef"] === true : false;
|
|
1442
1494
|
}
|
|
1443
|
-
|
|
1495
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
1444
1496
|
function ref(value) {
|
|
1445
1497
|
return createRef(value, toReactive);
|
|
1446
1498
|
}
|
|
1447
|
-
|
|
1499
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
1448
1500
|
function shallowRef(value) {
|
|
1449
1501
|
return createRef(value);
|
|
1450
1502
|
}
|
|
@@ -1632,7 +1684,7 @@ function customRef(factory) {
|
|
|
1632
1684
|
* @param object - Reactive object to be made into an object of linked refs.
|
|
1633
1685
|
* @see {@link https://vuejs.org/api/reactivity-utilities.html#torefs}
|
|
1634
1686
|
*/
|
|
1635
|
-
|
|
1687
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
1636
1688
|
function toRefs(object) {
|
|
1637
1689
|
const ret = isArray(object) ? new Array(object.length) : {};
|
|
1638
1690
|
for (const key in object) ret[key] = propertyToRef(object, key);
|
|
@@ -1683,7 +1735,7 @@ var GetterRefImpl = class {
|
|
|
1683
1735
|
return this._value = this._getter();
|
|
1684
1736
|
}
|
|
1685
1737
|
};
|
|
1686
|
-
|
|
1738
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
1687
1739
|
function toRef(source, key, defaultValue) {
|
|
1688
1740
|
if (/* @__PURE__ */ isRef(source)) return source;
|
|
1689
1741
|
else if (isFunction(source)) return new GetterRefImpl(source);
|
|
@@ -1749,10 +1801,12 @@ var ReactiveEffect = class {
|
|
|
1749
1801
|
get dirty() {
|
|
1750
1802
|
const flags = this.flags;
|
|
1751
1803
|
if (flags & 16) return true;
|
|
1752
|
-
if (flags & 32)
|
|
1753
|
-
this.
|
|
1754
|
-
|
|
1755
|
-
|
|
1804
|
+
if (flags & 32) {
|
|
1805
|
+
if (checkDirty(this.deps, this)) {
|
|
1806
|
+
this.flags = flags | 16;
|
|
1807
|
+
return true;
|
|
1808
|
+
} else this.flags = flags & -33;
|
|
1809
|
+
}
|
|
1756
1810
|
return false;
|
|
1757
1811
|
}
|
|
1758
1812
|
};
|
|
@@ -1929,10 +1983,12 @@ var ComputedRefImpl = class {
|
|
|
1929
1983
|
get _dirty() {
|
|
1930
1984
|
const flags = this.flags;
|
|
1931
1985
|
if (flags & 16) return true;
|
|
1932
|
-
if (flags & 32)
|
|
1933
|
-
this.
|
|
1934
|
-
|
|
1935
|
-
|
|
1986
|
+
if (flags & 32) {
|
|
1987
|
+
if (checkDirty(this.deps, this)) {
|
|
1988
|
+
this.flags = flags | 16;
|
|
1989
|
+
return true;
|
|
1990
|
+
} else this.flags = flags & -33;
|
|
1991
|
+
}
|
|
1936
1992
|
return false;
|
|
1937
1993
|
}
|
|
1938
1994
|
/**
|
|
@@ -1985,7 +2041,7 @@ var ComputedRefImpl = class {
|
|
|
1985
2041
|
}
|
|
1986
2042
|
}
|
|
1987
2043
|
};
|
|
1988
|
-
|
|
2044
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
1989
2045
|
function computed$1(getterOrOptions, debugOptions, isSSR = false) {
|
|
1990
2046
|
let getter;
|
|
1991
2047
|
let setter;
|
|
@@ -2057,25 +2113,26 @@ var WatcherEffect = class extends ReactiveEffect {
|
|
|
2057
2113
|
else if (/* @__PURE__ */ isReactive(s)) return reactiveGetter(s, deep);
|
|
2058
2114
|
else if (isFunction(s)) return call ? call(s, 2) : s();
|
|
2059
2115
|
});
|
|
2060
|
-
} else if (isFunction(source))
|
|
2061
|
-
|
|
2062
|
-
|
|
2063
|
-
|
|
2116
|
+
} else if (isFunction(source)) {
|
|
2117
|
+
if (cb) getter = call ? () => call(source, 2) : source;
|
|
2118
|
+
else getter = () => {
|
|
2119
|
+
if (this.cleanupsLength) {
|
|
2120
|
+
const prevSub = setActiveSub();
|
|
2121
|
+
try {
|
|
2122
|
+
cleanup(this);
|
|
2123
|
+
} finally {
|
|
2124
|
+
setActiveSub(prevSub);
|
|
2125
|
+
}
|
|
2126
|
+
}
|
|
2127
|
+
const currentEffect = activeWatcher;
|
|
2128
|
+
activeWatcher = this;
|
|
2064
2129
|
try {
|
|
2065
|
-
|
|
2130
|
+
return call ? call(source, 3, [this.boundCleanup]) : source(this.boundCleanup);
|
|
2066
2131
|
} finally {
|
|
2067
|
-
|
|
2132
|
+
activeWatcher = currentEffect;
|
|
2068
2133
|
}
|
|
2069
|
-
}
|
|
2070
|
-
|
|
2071
|
-
activeWatcher = this;
|
|
2072
|
-
try {
|
|
2073
|
-
return call ? call(source, 3, [this.boundCleanup]) : source(this.boundCleanup);
|
|
2074
|
-
} finally {
|
|
2075
|
-
activeWatcher = currentEffect;
|
|
2076
|
-
}
|
|
2077
|
-
};
|
|
2078
|
-
else getter = NOOP;
|
|
2134
|
+
};
|
|
2135
|
+
} else getter = NOOP;
|
|
2079
2136
|
if (cb && deep) {
|
|
2080
2137
|
const baseGetter = getter;
|
|
2081
2138
|
const depth = deep === true ? Infinity : deep;
|
|
@@ -2288,7 +2345,7 @@ let currentFlushPromise = null;
|
|
|
2288
2345
|
let jobsLength = 0;
|
|
2289
2346
|
let flushIndex = 0;
|
|
2290
2347
|
let postFlushIndex = 0;
|
|
2291
|
-
const resolvedPromise =
|
|
2348
|
+
const resolvedPromise = /*@__PURE__*/ Promise.resolve();
|
|
2292
2349
|
function nextTick(fn) {
|
|
2293
2350
|
const p = currentFlushPromise || resolvedPromise;
|
|
2294
2351
|
return fn ? p.then(this ? fn.bind(this) : fn) : p;
|
|
@@ -2326,6 +2383,7 @@ const doFlushJobs = () => {
|
|
|
2326
2383
|
flushJobs();
|
|
2327
2384
|
} catch (e) {
|
|
2328
2385
|
currentFlushPromise = null;
|
|
2386
|
+
if (jobsLength || postJobs.length) queueFlush();
|
|
2329
2387
|
throw e;
|
|
2330
2388
|
}
|
|
2331
2389
|
};
|
|
@@ -2333,9 +2391,10 @@ function queueFlush() {
|
|
|
2333
2391
|
if (!currentFlushPromise) currentFlushPromise = resolvedPromise.then(doFlushJobs);
|
|
2334
2392
|
}
|
|
2335
2393
|
function queuePostFlushCb(jobs, id = Infinity) {
|
|
2336
|
-
if (!isArray(jobs))
|
|
2337
|
-
|
|
2338
|
-
|
|
2394
|
+
if (!isArray(jobs)) {
|
|
2395
|
+
if (activePostJobs && id === -1) activePostJobs.splice(postFlushIndex, 0, jobs);
|
|
2396
|
+
else queueJobWorker(jobs, id, postJobs, postJobs.length, 0);
|
|
2397
|
+
} else for (let i = 0; i < jobs.length; i++) queueJobWorker(jobs[i], id, postJobs, postJobs.length, 0);
|
|
2339
2398
|
queueFlush();
|
|
2340
2399
|
}
|
|
2341
2400
|
function flushPreFlushCbs(instance, seen) {
|
|
@@ -2347,30 +2406,37 @@ function flushPreFlushCbs(instance, seen) {
|
|
|
2347
2406
|
i--;
|
|
2348
2407
|
jobsLength--;
|
|
2349
2408
|
if (cb.flags & 2) cb.flags &= -2;
|
|
2350
|
-
|
|
2351
|
-
|
|
2409
|
+
try {
|
|
2410
|
+
cb();
|
|
2411
|
+
} finally {
|
|
2412
|
+
if (!(cb.flags & 2)) cb.flags &= -2;
|
|
2413
|
+
}
|
|
2352
2414
|
}
|
|
2353
2415
|
}
|
|
2354
2416
|
function flushPostFlushCbs(seen) {
|
|
2355
2417
|
if (postJobs.length) {
|
|
2356
2418
|
if (activePostJobs) {
|
|
2357
|
-
activePostJobs.push(
|
|
2419
|
+
for (let i = 0; i < postJobs.length; i++) activePostJobs.push(postJobs[i]);
|
|
2358
2420
|
postJobs.length = 0;
|
|
2359
2421
|
return;
|
|
2360
2422
|
}
|
|
2361
2423
|
activePostJobs = postJobs;
|
|
2362
2424
|
postJobs = [];
|
|
2363
|
-
|
|
2364
|
-
|
|
2365
|
-
|
|
2366
|
-
|
|
2367
|
-
cb
|
|
2368
|
-
|
|
2369
|
-
|
|
2425
|
+
try {
|
|
2426
|
+
while (postFlushIndex < activePostJobs.length) {
|
|
2427
|
+
const cb = activePostJobs[postFlushIndex++];
|
|
2428
|
+
if (cb.flags & 2) cb.flags &= -2;
|
|
2429
|
+
if (!(cb.flags & 4)) try {
|
|
2430
|
+
cb();
|
|
2431
|
+
} finally {
|
|
2432
|
+
if (!(cb.flags & 2)) cb.flags &= -2;
|
|
2433
|
+
}
|
|
2370
2434
|
}
|
|
2435
|
+
} finally {
|
|
2436
|
+
while (postFlushIndex < activePostJobs.length) activePostJobs[postFlushIndex++].flags &= -2;
|
|
2437
|
+
activePostJobs = null;
|
|
2438
|
+
postFlushIndex = 0;
|
|
2371
2439
|
}
|
|
2372
|
-
activePostJobs = null;
|
|
2373
|
-
postFlushIndex = 0;
|
|
2374
2440
|
}
|
|
2375
2441
|
}
|
|
2376
2442
|
let isFlushing = false;
|
|
@@ -2380,9 +2446,12 @@ let isFlushing = false;
|
|
|
2380
2446
|
function flushOnAppMount(instance) {
|
|
2381
2447
|
if (!isFlushing) {
|
|
2382
2448
|
isFlushing = true;
|
|
2383
|
-
|
|
2384
|
-
|
|
2385
|
-
|
|
2449
|
+
try {
|
|
2450
|
+
flushPreFlushCbs(instance);
|
|
2451
|
+
flushPostFlushCbs();
|
|
2452
|
+
} finally {
|
|
2453
|
+
isFlushing = false;
|
|
2454
|
+
}
|
|
2386
2455
|
}
|
|
2387
2456
|
}
|
|
2388
2457
|
function flushJobs(seen) {
|
|
@@ -2410,8 +2479,8 @@ function flushJobs(seen) {
|
|
|
2410
2479
|
jobsLength = 0;
|
|
2411
2480
|
jobs.length = 0;
|
|
2412
2481
|
flushPostFlushCbs(seen);
|
|
2413
|
-
currentFlushPromise = null;
|
|
2414
2482
|
if (jobsLength || postJobs.length) flushJobs(seen);
|
|
2483
|
+
else currentFlushPromise = null;
|
|
2415
2484
|
}
|
|
2416
2485
|
}
|
|
2417
2486
|
//#endregion
|
|
@@ -2500,7 +2569,7 @@ function checkCompatEnabled$1(key, instance, ...args) {
|
|
|
2500
2569
|
}
|
|
2501
2570
|
//#endregion
|
|
2502
2571
|
//#region packages/runtime-core/src/compat/instanceEventEmitter.ts
|
|
2503
|
-
const eventRegistryMap =
|
|
2572
|
+
const eventRegistryMap = /*@__PURE__*/ new WeakMap();
|
|
2504
2573
|
function getRegistry(instance) {
|
|
2505
2574
|
let events = eventRegistryMap.get(instance);
|
|
2506
2575
|
if (!events) eventRegistryMap.set(instance, events = Object.create(null));
|
|
@@ -2633,19 +2702,21 @@ const legacyDirectiveHookMap = {
|
|
|
2633
2702
|
};
|
|
2634
2703
|
function mapCompatDirectiveHook(name, dir, instance) {
|
|
2635
2704
|
const mappedName = legacyDirectiveHookMap[name];
|
|
2636
|
-
if (mappedName)
|
|
2637
|
-
|
|
2638
|
-
|
|
2639
|
-
|
|
2640
|
-
|
|
2641
|
-
|
|
2642
|
-
|
|
2643
|
-
|
|
2644
|
-
|
|
2645
|
-
|
|
2646
|
-
|
|
2647
|
-
|
|
2648
|
-
|
|
2705
|
+
if (mappedName) {
|
|
2706
|
+
if (isArray(mappedName)) {
|
|
2707
|
+
const hook = [];
|
|
2708
|
+
mappedName.forEach((mapped) => {
|
|
2709
|
+
const mappedHook = dir[mapped];
|
|
2710
|
+
if (mappedHook) {
|
|
2711
|
+
softAssertCompatEnabled("CUSTOM_DIR", instance, mapped, name);
|
|
2712
|
+
hook.push(mappedHook);
|
|
2713
|
+
}
|
|
2714
|
+
});
|
|
2715
|
+
return hook.length ? hook : void 0;
|
|
2716
|
+
} else {
|
|
2717
|
+
if (dir[mappedName]) softAssertCompatEnabled("CUSTOM_DIR", instance, mappedName, name);
|
|
2718
|
+
return dir[mappedName];
|
|
2719
|
+
}
|
|
2649
2720
|
}
|
|
2650
2721
|
}
|
|
2651
2722
|
//#endregion
|
|
@@ -2815,7 +2886,7 @@ function instanceWatch(source, value, options) {
|
|
|
2815
2886
|
}
|
|
2816
2887
|
const prev = setCurrentInstance(this);
|
|
2817
2888
|
const res = doWatch(getter, cb.bind(publicThis), options);
|
|
2818
|
-
|
|
2889
|
+
restoreCurrentInstance(prev);
|
|
2819
2890
|
return res;
|
|
2820
2891
|
}
|
|
2821
2892
|
function createPathGetter(ctx, path) {
|
|
@@ -2837,9 +2908,10 @@ const isTargetSVG = (target) => typeof SVGElement !== "undefined" && target inst
|
|
|
2837
2908
|
const isTargetMathML = (target) => typeof MathMLElement === "function" && target instanceof MathMLElement;
|
|
2838
2909
|
const resolveTarget = (props, select) => {
|
|
2839
2910
|
const targetSelector = props && props.to;
|
|
2840
|
-
if (isString(targetSelector))
|
|
2841
|
-
|
|
2842
|
-
|
|
2911
|
+
if (isString(targetSelector)) {
|
|
2912
|
+
if (!select) return null;
|
|
2913
|
+
else return select(targetSelector);
|
|
2914
|
+
} else return targetSelector;
|
|
2843
2915
|
};
|
|
2844
2916
|
const TeleportImpl = {
|
|
2845
2917
|
name: "Teleport",
|
|
@@ -2870,7 +2942,8 @@ const TeleportImpl = {
|
|
|
2870
2942
|
if (pendingMounts.get(vnode) !== mountJob) return;
|
|
2871
2943
|
pendingMounts.delete(vnode);
|
|
2872
2944
|
if (isTeleportDisabled(vnode.props)) {
|
|
2873
|
-
|
|
2945
|
+
const mountContainer = parentNode(vnode.el) || container;
|
|
2946
|
+
mount(vnode, mountContainer, vnode.anchor);
|
|
2874
2947
|
updateCssVars(vnode, true);
|
|
2875
2948
|
}
|
|
2876
2949
|
mountToTarget(vnode);
|
|
@@ -2979,15 +3052,17 @@ function hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScope
|
|
|
2979
3052
|
const disabled = isTeleportDisabled(vnode.props);
|
|
2980
3053
|
if (target) {
|
|
2981
3054
|
const targetNode = target._lpa || target.firstChild;
|
|
2982
|
-
if (vnode.shapeFlag & 16)
|
|
2983
|
-
|
|
2984
|
-
|
|
2985
|
-
|
|
2986
|
-
|
|
2987
|
-
|
|
2988
|
-
|
|
2989
|
-
|
|
2990
|
-
|
|
3055
|
+
if (vnode.shapeFlag & 16) {
|
|
3056
|
+
if (disabled) {
|
|
3057
|
+
hydrateDisabledTeleport(node, vnode);
|
|
3058
|
+
hydrateAnchor(target, targetNode);
|
|
3059
|
+
if (!vnode.targetAnchor) prepareAnchor(target, vnode, createText, insert, parentNode(node) === target ? node : null);
|
|
3060
|
+
} else {
|
|
3061
|
+
vnode.anchor = nextSibling(node);
|
|
3062
|
+
hydrateAnchor(target, targetNode);
|
|
3063
|
+
if (!vnode.targetAnchor) prepareAnchor(target, vnode, createText, insert);
|
|
3064
|
+
hydrateChildren(targetNode && nextSibling(targetNode), vnode, target, parentComponent, parentSuspense, slotScopeIds, optimized);
|
|
3065
|
+
}
|
|
2991
3066
|
}
|
|
2992
3067
|
updateCssVars(vnode, disabled);
|
|
2993
3068
|
} else if (disabled) {
|
|
@@ -3075,48 +3150,15 @@ const BaseTransitionImpl = {
|
|
|
3075
3150
|
setup(props, { slots }) {
|
|
3076
3151
|
const instance = getCurrentInstance();
|
|
3077
3152
|
const state = useTransitionState();
|
|
3153
|
+
let resumeAfterLeave;
|
|
3078
3154
|
return () => {
|
|
3079
|
-
const
|
|
3080
|
-
const child = children && children.length ? findNonCommentChild(children) : instance.subTree ? createCommentVNode() : void 0;
|
|
3155
|
+
const child = resolveTransitionChild(slots.default && slots.default(), !!instance.subTree);
|
|
3081
3156
|
if (!child) return;
|
|
3082
3157
|
const rawProps = /* @__PURE__ */ toRaw(props);
|
|
3083
3158
|
const { mode } = rawProps;
|
|
3084
|
-
|
|
3085
|
-
|
|
3086
|
-
|
|
3087
|
-
let enterHooks = resolveTransitionHooks(innerChild, rawProps, state, instance, (hooks) => enterHooks = hooks);
|
|
3088
|
-
if (innerChild.type !== Comment) setTransitionHooks(innerChild, enterHooks);
|
|
3089
|
-
let oldInnerChild = instance.subTree && getInnerChild$1(instance.subTree);
|
|
3090
|
-
if (oldInnerChild && oldInnerChild.type !== Comment && !isSameVNodeType(oldInnerChild, innerChild) && recursiveGetSubtree(instance).type !== Comment) {
|
|
3091
|
-
let leavingHooks = resolveTransitionHooks(oldInnerChild, rawProps, state, instance);
|
|
3092
|
-
setTransitionHooks(oldInnerChild, leavingHooks);
|
|
3093
|
-
if (mode === "out-in" && innerChild.type !== Comment) {
|
|
3094
|
-
state.isLeaving = true;
|
|
3095
|
-
leavingHooks.afterLeave = () => {
|
|
3096
|
-
state.isLeaving = false;
|
|
3097
|
-
if (!(instance.job.flags & 4)) instance.update();
|
|
3098
|
-
delete leavingHooks.afterLeave;
|
|
3099
|
-
oldInnerChild = void 0;
|
|
3100
|
-
};
|
|
3101
|
-
return emptyPlaceholder(child);
|
|
3102
|
-
} else if (mode === "in-out" && innerChild.type !== Comment) leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => {
|
|
3103
|
-
const leavingVNodesCache = getLeavingNodesForType(state, oldInnerChild);
|
|
3104
|
-
leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild;
|
|
3105
|
-
el[leaveCbKey] = () => {
|
|
3106
|
-
earlyRemove();
|
|
3107
|
-
el[leaveCbKey] = void 0;
|
|
3108
|
-
delete enterHooks.delayedLeave;
|
|
3109
|
-
oldInnerChild = void 0;
|
|
3110
|
-
};
|
|
3111
|
-
enterHooks.delayedLeave = () => {
|
|
3112
|
-
delayedLeave();
|
|
3113
|
-
delete enterHooks.delayedLeave;
|
|
3114
|
-
oldInnerChild = void 0;
|
|
3115
|
-
};
|
|
3116
|
-
};
|
|
3117
|
-
else oldInnerChild = void 0;
|
|
3118
|
-
} else if (oldInnerChild) oldInnerChild = void 0;
|
|
3119
|
-
return child;
|
|
3159
|
+
return prepareTransitionSwitch(instance.subTree, child, rawProps, state, instance, mode === "out-in" ? resumeAfterLeave || (resumeAfterLeave = () => {
|
|
3160
|
+
if (!(instance.job.flags & 4)) instance.update();
|
|
3161
|
+
}) : NOOP);
|
|
3120
3162
|
};
|
|
3121
3163
|
}
|
|
3122
3164
|
};
|
|
@@ -3181,8 +3223,10 @@ function baseResolveTransitionHooks(context, props, state, instance) {
|
|
|
3181
3223
|
persisted,
|
|
3182
3224
|
beforeEnter(el) {
|
|
3183
3225
|
let hook = onBeforeEnter;
|
|
3184
|
-
if (!state.isMounted)
|
|
3185
|
-
|
|
3226
|
+
if (!state.isMounted) {
|
|
3227
|
+
if (appear) hook = onBeforeAppear || onBeforeEnter;
|
|
3228
|
+
else return;
|
|
3229
|
+
}
|
|
3186
3230
|
if (el[leaveCbKey]) el[leaveCbKey](true);
|
|
3187
3231
|
earlyRemove();
|
|
3188
3232
|
callHook(hook, [el]);
|
|
@@ -3192,11 +3236,13 @@ function baseResolveTransitionHooks(context, props, state, instance) {
|
|
|
3192
3236
|
let hook = onEnter;
|
|
3193
3237
|
let afterHook = onAfterEnter;
|
|
3194
3238
|
let cancelHook = onEnterCancelled;
|
|
3195
|
-
if (!state.isMounted)
|
|
3196
|
-
|
|
3197
|
-
|
|
3198
|
-
|
|
3199
|
-
|
|
3239
|
+
if (!state.isMounted) {
|
|
3240
|
+
if (appear) {
|
|
3241
|
+
hook = onAppear || onEnter;
|
|
3242
|
+
afterHook = onAfterAppear || onAfterEnter;
|
|
3243
|
+
cancelHook = onAppearCancelled || onEnterCancelled;
|
|
3244
|
+
} else return;
|
|
3245
|
+
}
|
|
3200
3246
|
let called = false;
|
|
3201
3247
|
el[enterCbKey$1] = (cancelled) => {
|
|
3202
3248
|
if (called) return;
|
|
@@ -3230,7 +3276,7 @@ function baseResolveTransitionHooks(context, props, state, instance) {
|
|
|
3230
3276
|
else done();
|
|
3231
3277
|
},
|
|
3232
3278
|
clone(node) {
|
|
3233
|
-
return cloneHooks(node);
|
|
3279
|
+
return cloneHooks ? cloneHooks(node) : hooks;
|
|
3234
3280
|
}
|
|
3235
3281
|
};
|
|
3236
3282
|
return hooks;
|
|
@@ -3254,16 +3300,91 @@ function getInnerChild$1(vnode) {
|
|
|
3254
3300
|
if (shapeFlag & 32 && isFunction(children.default)) return children.default();
|
|
3255
3301
|
}
|
|
3256
3302
|
}
|
|
3303
|
+
function resolveTransitionChild(children, renderEmpty = false) {
|
|
3304
|
+
const branches = children && getTransitionRawChildren(children, true);
|
|
3305
|
+
return branches && branches.length ? findNonCommentChild(branches) : renderEmpty ? createCommentVNode() : void 0;
|
|
3306
|
+
}
|
|
3307
|
+
/**
|
|
3308
|
+
* @internal
|
|
3309
|
+
*/
|
|
3310
|
+
function prepareTransitionSwitch(previous, next, props, state, instance, resumeAfterLeave, delayedLeaveSource) {
|
|
3311
|
+
if (state.isLeaving) return emptyPlaceholder(next);
|
|
3312
|
+
const nextInner = getInnerChild$1(next);
|
|
3313
|
+
if (!nextInner) return emptyPlaceholder(next);
|
|
3314
|
+
let enterHooks = resolveTransitionHooks(nextInner, props, state, instance, (hooks) => {
|
|
3315
|
+
if (delayedLeaveSource) forwardDelayedLeave(hooks, delayedLeaveSource);
|
|
3316
|
+
enterHooks = hooks;
|
|
3317
|
+
});
|
|
3318
|
+
if (delayedLeaveSource) forwardDelayedLeave(enterHooks, delayedLeaveSource);
|
|
3319
|
+
if (nextInner.type !== Comment) setTransitionHooks(nextInner, enterHooks);
|
|
3320
|
+
const mode = props.mode;
|
|
3321
|
+
const previousInner = previous && getInnerChild$1(previous);
|
|
3322
|
+
if (previous && previousInner && previousInner.type !== Comment && !isSameVNodeType(previousInner, nextInner) && (!previous.component || recursiveGetSubtree(previous.component).type !== Comment)) {
|
|
3323
|
+
const leavingHooks = prepareLeavingTransitionHooks(previousInner, props, state, instance);
|
|
3324
|
+
if (nextInner.type !== Comment && (mode === "out-in" || mode === "in-out") && applyTransitionModeSwitch(previousInner, leavingHooks, mode === "in-out" ? () => enterHooks : void 0, props, state, resumeAfterLeave)) return emptyPlaceholder(next);
|
|
3325
|
+
}
|
|
3326
|
+
return next;
|
|
3327
|
+
}
|
|
3328
|
+
function forwardDelayedLeave(hooks, source) {
|
|
3329
|
+
const delayedLeave = source && source.delayedLeave;
|
|
3330
|
+
if (!delayedLeave) return;
|
|
3331
|
+
hooks.delayedLeave = () => {
|
|
3332
|
+
if (source.delayedLeave === delayedLeave) delayedLeave();
|
|
3333
|
+
delete hooks.delayedLeave;
|
|
3334
|
+
};
|
|
3335
|
+
}
|
|
3336
|
+
function prepareLeavingTransitionHooks(previousInner, props, state, instance) {
|
|
3337
|
+
return setTransitionHooks(previousInner, resolveTransitionHooks(previousInner, props, state, instance));
|
|
3338
|
+
}
|
|
3339
|
+
function applyTransitionModeSwitch(leavingVNode, leavingHooks, getEnterHooks, props, state, resumeAfterLeave) {
|
|
3340
|
+
if (props.mode === "out-in") {
|
|
3341
|
+
state.isLeaving = true;
|
|
3342
|
+
leavingHooks.afterLeave = () => {
|
|
3343
|
+
state.isLeaving = false;
|
|
3344
|
+
resumeAfterLeave();
|
|
3345
|
+
delete leavingHooks.afterLeave;
|
|
3346
|
+
};
|
|
3347
|
+
return true;
|
|
3348
|
+
} else if (props.mode === "in-out" && getEnterHooks) {
|
|
3349
|
+
let delayedLeavingVNode = leavingVNode;
|
|
3350
|
+
leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => {
|
|
3351
|
+
const enterHooks = getEnterHooks();
|
|
3352
|
+
if (!enterHooks) {
|
|
3353
|
+
delayedLeave();
|
|
3354
|
+
return;
|
|
3355
|
+
}
|
|
3356
|
+
const vnode = delayedLeavingVNode;
|
|
3357
|
+
const leavingVNodesCache = getLeavingNodesForType(state, vnode);
|
|
3358
|
+
leavingVNodesCache[String(vnode.key)] = vnode;
|
|
3359
|
+
el[leaveCbKey] = () => {
|
|
3360
|
+
earlyRemove();
|
|
3361
|
+
el[leaveCbKey] = void 0;
|
|
3362
|
+
delete enterHooks.delayedLeave;
|
|
3363
|
+
delayedLeavingVNode = void 0;
|
|
3364
|
+
};
|
|
3365
|
+
enterHooks.delayedLeave = () => {
|
|
3366
|
+
delayedLeave();
|
|
3367
|
+
delete enterHooks.delayedLeave;
|
|
3368
|
+
delayedLeavingVNode = void 0;
|
|
3369
|
+
};
|
|
3370
|
+
};
|
|
3371
|
+
}
|
|
3372
|
+
return false;
|
|
3373
|
+
}
|
|
3257
3374
|
function setTransitionHooks(vnode, hooks) {
|
|
3258
|
-
if (vnode.shapeFlag & 6 && vnode.component)
|
|
3259
|
-
else {
|
|
3375
|
+
if (vnode.shapeFlag & 6 && vnode.component) {
|
|
3260
3376
|
vnode.transition = hooks;
|
|
3261
|
-
setTransitionHooks(vnode.component
|
|
3262
|
-
|
|
3263
|
-
|
|
3264
|
-
|
|
3265
|
-
|
|
3377
|
+
if (isVaporComponent(vnode.type)) getVaporInterface(vnode.component, vnode).setTransitionHooks(vnode.component, hooks);
|
|
3378
|
+
else {
|
|
3379
|
+
const subTree = vnode.component.subTree;
|
|
3380
|
+
return setTransitionHooks(isTeleport(subTree.type) ? getInnerChild$1(subTree) || subTree : subTree, hooks);
|
|
3381
|
+
}
|
|
3382
|
+
} else if (vnode.shapeFlag & 128) {
|
|
3383
|
+
const contentHooks = vnode.ssContent.transition = hooks.clone(vnode.ssContent);
|
|
3384
|
+
const fallbackHooks = vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);
|
|
3385
|
+
return vnode.suspense && vnode.suspense.activeBranch === vnode.ssFallback ? fallbackHooks : contentHooks;
|
|
3266
3386
|
} else vnode.transition = hooks;
|
|
3387
|
+
return hooks;
|
|
3267
3388
|
}
|
|
3268
3389
|
function getTransitionRawChildren(children, keepComment = false, parentKey) {
|
|
3269
3390
|
let ret = [];
|
|
@@ -3281,9 +3402,9 @@ function getTransitionRawChildren(children, keepComment = false, parentKey) {
|
|
|
3281
3402
|
}
|
|
3282
3403
|
//#endregion
|
|
3283
3404
|
//#region packages/runtime-core/src/apiDefineComponent.ts
|
|
3284
|
-
|
|
3405
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
3285
3406
|
function defineComponent(options, extraOptions) {
|
|
3286
|
-
return isFunction(options) ? extend({ name: options.name }, extraOptions, { setup: options }) : options;
|
|
3407
|
+
return isFunction(options) ? /*@__PURE__*/ (() => extend({ name: options.name }, extraOptions, { setup: options }))() : options;
|
|
3287
3408
|
}
|
|
3288
3409
|
//#endregion
|
|
3289
3410
|
//#region packages/runtime-core/src/helpers/useId.ts
|
|
@@ -3370,15 +3491,16 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
|
|
|
3370
3491
|
if (rawRef.f) {
|
|
3371
3492
|
const existing = _isString ? canSetSetupRef(ref) ? setupState[ref] : refs[ref] : canSetRef(ref) || !rawRef.k ? ref.value : refs[rawRef.k];
|
|
3372
3493
|
if (isUnmount) isArray(existing) && remove(existing, refValue);
|
|
3373
|
-
else if (!isArray(existing))
|
|
3374
|
-
|
|
3375
|
-
|
|
3376
|
-
|
|
3377
|
-
|
|
3378
|
-
|
|
3379
|
-
|
|
3380
|
-
|
|
3381
|
-
|
|
3494
|
+
else if (!isArray(existing)) {
|
|
3495
|
+
if (_isString) {
|
|
3496
|
+
refs[ref] = [refValue];
|
|
3497
|
+
if (canSetSetupRef(ref)) setupState[ref] = refs[ref];
|
|
3498
|
+
} else {
|
|
3499
|
+
const newVal = [refValue];
|
|
3500
|
+
if (canSetRef(ref, rawRef.k)) ref.value = newVal;
|
|
3501
|
+
if (rawRef.k) refs[rawRef.k] = newVal;
|
|
3502
|
+
}
|
|
3503
|
+
} else if (!existing.includes(refValue)) existing.push(refValue);
|
|
3382
3504
|
} else if (_isString) {
|
|
3383
3505
|
refs[ref] = value;
|
|
3384
3506
|
if (canSetSetupRef(ref)) setupState[ref] = value;
|
|
@@ -3428,7 +3550,18 @@ const logMismatchError = () => {
|
|
|
3428
3550
|
hasLoggedMismatchError = true;
|
|
3429
3551
|
};
|
|
3430
3552
|
const isSVGContainer = (container) => container.namespaceURI.includes("svg") && container.tagName !== "foreignObject";
|
|
3431
|
-
const isMathMLContainer = (container) =>
|
|
3553
|
+
const isMathMLContainer = (container) => {
|
|
3554
|
+
if (!container.namespaceURI.includes("MathML")) return false;
|
|
3555
|
+
if (container.tagName !== "annotation-xml") return true;
|
|
3556
|
+
const encoding = container.getAttribute("encoding");
|
|
3557
|
+
return !encoding || !encoding.includes("html");
|
|
3558
|
+
};
|
|
3559
|
+
/**
|
|
3560
|
+
* Resolve the element namespace a container's children should be created in.
|
|
3561
|
+
* The live DOM is the source of truth, so this also covers containers that are
|
|
3562
|
+
* only known at runtime (interop boundaries, teleport targets).
|
|
3563
|
+
* @internal
|
|
3564
|
+
*/
|
|
3432
3565
|
const getContainerType = (container) => {
|
|
3433
3566
|
if (container.nodeType !== 1) return void 0;
|
|
3434
3567
|
if (isSVGContainer(container)) return "svg";
|
|
@@ -3451,7 +3584,7 @@ function createHydrationFunctions(rendererInternals) {
|
|
|
3451
3584
|
};
|
|
3452
3585
|
const hydrateNode = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized = false) => {
|
|
3453
3586
|
optimized = optimized || !!vnode.dynamicChildren;
|
|
3454
|
-
const isFragmentStart = isComment(node) && node.data === "[";
|
|
3587
|
+
const isFragmentStart = isComment(node) && (node.data === "[" || node.data === "(");
|
|
3455
3588
|
const onMismatch = () => handleMismatch(node, vnode, parentComponent, parentSuspense, slotScopeIds, isFragmentStart);
|
|
3456
3589
|
const { type, ref, shapeFlag, patchFlag } = vnode;
|
|
3457
3590
|
let domType = node.nodeType;
|
|
@@ -3463,11 +3596,12 @@ function createHydrationFunctions(rendererInternals) {
|
|
|
3463
3596
|
let nextNode = null;
|
|
3464
3597
|
switch (type) {
|
|
3465
3598
|
case Text:
|
|
3466
|
-
if (domType !== 3)
|
|
3467
|
-
|
|
3468
|
-
|
|
3469
|
-
|
|
3470
|
-
|
|
3599
|
+
if (domType !== 3) {
|
|
3600
|
+
if (vnode.children === "") {
|
|
3601
|
+
insert(vnode.el = createText(""), parentNode(node), node);
|
|
3602
|
+
nextNode = node;
|
|
3603
|
+
} else nextNode = onMismatch();
|
|
3604
|
+
} else {
|
|
3471
3605
|
if (node.data !== vnode.children) {
|
|
3472
3606
|
logMismatchError();
|
|
3473
3607
|
node.data = vnode.children;
|
|
@@ -3503,45 +3637,35 @@ function createHydrationFunctions(rendererInternals) {
|
|
|
3503
3637
|
else nextNode = hydrateFragment(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized);
|
|
3504
3638
|
break;
|
|
3505
3639
|
case VaporSlot:
|
|
3506
|
-
nextNode = getVaporInterface(parentComponent, vnode).hydrateSlot(vnode, node, parentComponent, parentSuspense);
|
|
3640
|
+
nextNode = getVaporInterface(parentComponent, vnode).hydrateSlot(vnode, node, parentComponent, parentSuspense, slotScopeIds);
|
|
3507
3641
|
break;
|
|
3508
|
-
default: if (shapeFlag & 1)
|
|
3509
|
-
|
|
3510
|
-
|
|
3642
|
+
default: if (shapeFlag & 1) {
|
|
3643
|
+
if ((domType !== 1 || vnode.type.toLowerCase() !== node.tagName.toLowerCase()) && !isTemplateNode$1(node)) nextNode = onMismatch();
|
|
3644
|
+
else nextNode = hydrateElement(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized);
|
|
3645
|
+
} else if (shapeFlag & 6) {
|
|
3511
3646
|
vnode.slotScopeIds = slotScopeIds;
|
|
3512
3647
|
const container = parentNode(node);
|
|
3513
3648
|
if (isFragmentStart) nextNode = locateClosingAnchor(node);
|
|
3514
3649
|
else if (isComment(node) && node.data === "teleport start") nextNode = locateClosingAnchor(node, node.data, "teleport end");
|
|
3515
3650
|
else nextNode = nextSibling(node);
|
|
3516
|
-
if (vnode.type.__vapor)
|
|
3517
|
-
|
|
3518
|
-
getVaporInterface(parentComponent, vnode).hydrate(vnode, node, container, nextNode, parentComponent, parentSuspense, () => {
|
|
3519
|
-
if (vnode.dirs) {
|
|
3520
|
-
invokeDirectiveHook(vnode, null, parentComponent, "created");
|
|
3521
|
-
invokeDirectiveHook(vnode, null, parentComponent, "beforeMount");
|
|
3522
|
-
}
|
|
3523
|
-
}, () => {
|
|
3524
|
-
if (vnodeBeforeMountHook) invokeVNodeHook(vnodeBeforeMountHook, parentComponent, vnode);
|
|
3525
|
-
});
|
|
3526
|
-
if (vnode.dirs) queueEffectWithSuspense(() => invokeDirectiveHook(vnode, null, parentComponent, "mounted"), void 0, parentSuspense);
|
|
3527
|
-
const vnodeMountedHook = !isAsyncWrapper(vnode) && vnode.props && vnode.props.onVnodeMounted;
|
|
3528
|
-
if (vnodeMountedHook) queueEffectWithSuspense(() => invokeVNodeHook(vnodeMountedHook, parentComponent, vnode), void 0, parentSuspense);
|
|
3529
|
-
} else {
|
|
3651
|
+
if (vnode.type.__vapor) getVaporInterface(parentComponent, vnode).hydrate(vnode, node, container, nextNode, parentComponent, parentSuspense);
|
|
3652
|
+
else {
|
|
3530
3653
|
mountComponent(vnode, container, null, parentComponent, parentSuspense, getContainerType(container), optimized);
|
|
3531
3654
|
const component = vnode.component;
|
|
3532
|
-
if (isAsyncWrapper(vnode)
|
|
3655
|
+
if (!component.subTree && (isAsyncWrapper(vnode) || component.asyncDep)) {
|
|
3533
3656
|
let subTree;
|
|
3534
3657
|
if (isFragmentStart) {
|
|
3535
|
-
subTree = createVNode(
|
|
3658
|
+
subTree = createVNode(Static);
|
|
3536
3659
|
subTree.anchor = nextNode ? nextNode.previousSibling : container.lastChild;
|
|
3537
|
-
} else subTree = node.nodeType === 3 ? createTextVNode("") : createVNode("div");
|
|
3660
|
+
} else subTree = node.nodeType === 3 ? createTextVNode("") : createVNode(node.nodeType === 8 ? Comment : "div");
|
|
3538
3661
|
subTree.el = node;
|
|
3539
3662
|
component.subTree = subTree;
|
|
3540
3663
|
}
|
|
3541
3664
|
}
|
|
3542
|
-
} else if (shapeFlag & 64)
|
|
3543
|
-
|
|
3544
|
-
|
|
3665
|
+
} else if (shapeFlag & 64) {
|
|
3666
|
+
if (domType !== 8) nextNode = onMismatch();
|
|
3667
|
+
else nextNode = vnode.type.hydrate(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized, rendererInternals, hydrateChildren);
|
|
3668
|
+
} else if (shapeFlag & 128) nextNode = vnode.type.hydrate(node, vnode, parentComponent, parentSuspense, getContainerType(parentNode(node)), slotScopeIds, optimized, rendererInternals, hydrateNode);
|
|
3545
3669
|
}
|
|
3546
3670
|
if (ref != null) setRef(ref, null, parentSuspense, vnode);
|
|
3547
3671
|
return nextNode;
|
|
@@ -3586,7 +3710,10 @@ function createHydrationFunctions(rendererInternals) {
|
|
|
3586
3710
|
if (forcePatch || hasDynamicProps || !optimized || patchFlag & 48) {
|
|
3587
3711
|
const isCustomElement = el.tagName.includes("-");
|
|
3588
3712
|
const namespace = el.namespaceURI.includes("svg") ? "svg" : el.namespaceURI.includes("MathML") ? "mathml" : void 0;
|
|
3589
|
-
for (const key in props) if (forcePatch && (key.endsWith("value") || key === "indeterminate") || isOn(key) && !isReservedProp(key) || key[0] === "." || isCustomElement && !isReservedProp(key) || dynamicProps && dynamicProps.includes(key))
|
|
3713
|
+
for (const key in props) if (forcePatch && (key.endsWith("value") || key === "indeterminate") || isOn(key) && !isReservedProp(key) || key[0] === "." || isCustomElement && !isReservedProp(key) || dynamicProps && dynamicProps.includes(key)) {
|
|
3714
|
+
if (isUnchangedResourceProp(el, key, props[key])) continue;
|
|
3715
|
+
patchProp(el, key, null, props[key], namespace, parentComponent);
|
|
3716
|
+
}
|
|
3590
3717
|
} else if (props.onClick) patchProp(el, "onClick", null, props.onClick, void 0, parentComponent);
|
|
3591
3718
|
else if (patchFlag & 4 && /* @__PURE__ */ isReactive(props.style)) for (const key in props.style) props.style[key];
|
|
3592
3719
|
}
|
|
@@ -3632,8 +3759,9 @@ function createHydrationFunctions(rendererInternals) {
|
|
|
3632
3759
|
const { slotScopeIds: fragmentSlotScopeIds } = vnode;
|
|
3633
3760
|
if (fragmentSlotScopeIds) slotScopeIds = slotScopeIds ? slotScopeIds.concat(fragmentSlotScopeIds) : fragmentSlotScopeIds;
|
|
3634
3761
|
const container = parentNode(node);
|
|
3635
|
-
const
|
|
3636
|
-
|
|
3762
|
+
const first = nextSibling(node);
|
|
3763
|
+
const next = vnode.vo && node.data === "(" ? getVaporInterface(parentComponent, vnode).hydrateSlotOutlet(vnode, node, parentComponent, parentSuspense, slotScopeIds) : hydrateChildren(first, vnode, container, parentComponent, parentSuspense, slotScopeIds, optimized);
|
|
3764
|
+
if (next && isComment(next) && next.data === (node.data === "(" ? ")" : "]")) return nextSibling(vnode.anchor = next);
|
|
3637
3765
|
else {
|
|
3638
3766
|
logMismatchError();
|
|
3639
3767
|
insert(vnode.anchor = createComment(`]`), container, next);
|
|
@@ -3655,20 +3783,22 @@ function createHydrationFunctions(rendererInternals) {
|
|
|
3655
3783
|
const container = parentNode(node);
|
|
3656
3784
|
remove(node);
|
|
3657
3785
|
patch(null, vnode, container, next, parentComponent, parentSuspense, getContainerType(container), slotScopeIds);
|
|
3658
|
-
if (parentComponent) {
|
|
3786
|
+
if (parentComponent && parentComponent.vnode) {
|
|
3659
3787
|
parentComponent.vnode.el = vnode.el;
|
|
3660
3788
|
updateHOCHostEl(parentComponent, vnode.el);
|
|
3661
3789
|
}
|
|
3662
3790
|
return next;
|
|
3663
3791
|
};
|
|
3664
|
-
const locateClosingAnchor = (node, open = "[", close = "]") => {
|
|
3792
|
+
const locateClosingAnchor = (node, open = node && isComment(node) && node.data === "(" ? "(" : "[", close = open === "(" ? ")" : "]") => {
|
|
3665
3793
|
let match = 0;
|
|
3666
3794
|
while (node) {
|
|
3667
3795
|
node = nextSibling(node);
|
|
3668
3796
|
if (node && isComment(node)) {
|
|
3669
3797
|
if (node.data === open) match++;
|
|
3670
|
-
if (node.data === close)
|
|
3671
|
-
|
|
3798
|
+
if (node.data === close) {
|
|
3799
|
+
if (match === 0) return nextSibling(node);
|
|
3800
|
+
else match--;
|
|
3801
|
+
}
|
|
3672
3802
|
}
|
|
3673
3803
|
}
|
|
3674
3804
|
return node;
|
|
@@ -3678,7 +3808,7 @@ function createHydrationFunctions(rendererInternals) {
|
|
|
3678
3808
|
if (parentNode) parentNode.replaceChild(newNode, oldNode);
|
|
3679
3809
|
let parent = parentComponent;
|
|
3680
3810
|
while (parent) {
|
|
3681
|
-
if (parent.vnode.el === oldNode) parent.vnode.el = parent.subTree.el = newNode;
|
|
3811
|
+
if (parent.vnode && parent.vnode.el === oldNode) parent.vnode.el = parent.subTree.el = newNode;
|
|
3682
3812
|
parent = parent.parent;
|
|
3683
3813
|
}
|
|
3684
3814
|
};
|
|
@@ -3687,6 +3817,16 @@ function createHydrationFunctions(rendererInternals) {
|
|
|
3687
3817
|
const isTemplateNode$1 = (node) => {
|
|
3688
3818
|
return node.nodeType === 1 && node.tagName === "TEMPLATE";
|
|
3689
3819
|
};
|
|
3820
|
+
const resourceProps = /*@__PURE__*/ new Set([
|
|
3821
|
+
"src",
|
|
3822
|
+
"srcset",
|
|
3823
|
+
"href",
|
|
3824
|
+
"poster"
|
|
3825
|
+
]);
|
|
3826
|
+
function isUnchangedResourceProp(el, key, clientValue) {
|
|
3827
|
+
if (!resourceProps.has(key)) return false;
|
|
3828
|
+
return el.getAttribute(key) === (clientValue == null ? null : `${clientValue}`);
|
|
3829
|
+
}
|
|
3690
3830
|
const allowMismatchAttr = "data-allow-mismatch";
|
|
3691
3831
|
const MismatchTypeString = {
|
|
3692
3832
|
[0]: "text",
|
|
@@ -3791,16 +3931,18 @@ const hydrateOnInteraction = (interactions = []) => (hydrate, forEach) => {
|
|
|
3791
3931
|
return teardown;
|
|
3792
3932
|
};
|
|
3793
3933
|
function forEachElement(node, cb) {
|
|
3794
|
-
if (isComment(node) && node.data === "[") {
|
|
3934
|
+
if (isComment(node) && (node.data === "[" || node.data === "(")) {
|
|
3935
|
+
const open = node.data;
|
|
3936
|
+
const close = open === "[" ? "]" : ")";
|
|
3795
3937
|
let depth = 1;
|
|
3796
3938
|
let next = node.nextSibling;
|
|
3797
3939
|
while (next) {
|
|
3798
3940
|
if (next.nodeType === 1) {
|
|
3799
3941
|
if (cb(next) === false) break;
|
|
3800
3942
|
} else if (isComment(next)) {
|
|
3801
|
-
if (next.data ===
|
|
3943
|
+
if (next.data === close) {
|
|
3802
3944
|
if (--depth === 0) break;
|
|
3803
|
-
} else if (next.data ===
|
|
3945
|
+
} else if (next.data === open) depth++;
|
|
3804
3946
|
}
|
|
3805
3947
|
next = next.nextSibling;
|
|
3806
3948
|
}
|
|
@@ -3809,14 +3951,14 @@ function forEachElement(node, cb) {
|
|
|
3809
3951
|
//#endregion
|
|
3810
3952
|
//#region packages/runtime-core/src/apiAsyncComponent.ts
|
|
3811
3953
|
const isAsyncWrapper = (i) => !!i.type.__asyncLoader;
|
|
3812
|
-
|
|
3954
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
3813
3955
|
function defineAsyncComponent(source) {
|
|
3814
3956
|
const { load, getResolvedComp, setPendingRequest, source: { loadingComponent, errorComponent, delay, hydrate: hydrateStrategy, timeout, suspensible = true } } = createAsyncComponentContext(source);
|
|
3815
3957
|
return /* @__PURE__ */ defineComponent({
|
|
3816
3958
|
name: "AsyncComponentWrapper",
|
|
3817
3959
|
__asyncLoader: load,
|
|
3818
3960
|
__asyncHydrate(el, instance, hydrate) {
|
|
3819
|
-
performAsyncHydrate(el, instance, hydrate, getResolvedComp, load, hydrateStrategy);
|
|
3961
|
+
performAsyncHydrate(el, instance, hydrate, getResolvedComp, load, hydrateStrategy, true);
|
|
3820
3962
|
},
|
|
3821
3963
|
get __asyncResolved() {
|
|
3822
3964
|
return getResolvedComp();
|
|
@@ -3933,10 +4075,10 @@ const useAsyncComponentState = (delay, timeout, onError, instance = currentInsta
|
|
|
3933
4075
|
* shared between core and vapor
|
|
3934
4076
|
* @internal
|
|
3935
4077
|
*/
|
|
3936
|
-
function performAsyncHydrate(el, instance, hydrate, getResolvedComp, load, hydrateStrategy) {
|
|
4078
|
+
function performAsyncHydrate(el, instance, hydrate, getResolvedComp, load, hydrateStrategy, skipIfUpdated) {
|
|
3937
4079
|
const wasConnected = el.isConnected;
|
|
3938
4080
|
let patched = false;
|
|
3939
|
-
(instance.bu || (instance.bu = [])).push(() => patched = true);
|
|
4081
|
+
if (skipIfUpdated) (instance.bu || (instance.bu = [])).push(() => patched = true);
|
|
3940
4082
|
const performHydrate = () => {
|
|
3941
4083
|
if (patched) return;
|
|
3942
4084
|
if (!el.parentNode || wasConnected && !el.isConnected) return;
|
|
@@ -4019,10 +4161,13 @@ const KeepAliveImpl = {
|
|
|
4019
4161
|
});
|
|
4020
4162
|
let pendingCacheKey = null;
|
|
4021
4163
|
const cacheSubtree = () => {
|
|
4022
|
-
if (pendingCacheKey != null)
|
|
4023
|
-
|
|
4024
|
-
|
|
4025
|
-
|
|
4164
|
+
if (pendingCacheKey != null) {
|
|
4165
|
+
if (isSuspense(keepAliveInstance.subTree.type)) queuePostRenderEffect(() => {
|
|
4166
|
+
const vnode = getInnerChild(keepAliveInstance.subTree);
|
|
4167
|
+
if (vnode.component) cache.set(pendingCacheKey, vnode);
|
|
4168
|
+
}, void 0, keepAliveInstance.subTree.suspense);
|
|
4169
|
+
else cache.set(pendingCacheKey, getInnerChild(keepAliveInstance.subTree));
|
|
4170
|
+
}
|
|
4026
4171
|
};
|
|
4027
4172
|
onMounted(cacheSubtree);
|
|
4028
4173
|
onUpdated(cacheSubtree);
|
|
@@ -4092,7 +4237,7 @@ const decorate$2 = (t) => {
|
|
|
4092
4237
|
t.__isBuiltIn = true;
|
|
4093
4238
|
return t;
|
|
4094
4239
|
};
|
|
4095
|
-
const KeepAlive =
|
|
4240
|
+
const KeepAlive = /*@__PURE__*/ decorate$2(KeepAliveImpl);
|
|
4096
4241
|
function matches(pattern, name) {
|
|
4097
4242
|
if (isArray(pattern)) return pattern.some((p) => matches(p, name));
|
|
4098
4243
|
else if (isString(pattern)) return pattern.split(",").includes(name);
|
|
@@ -4181,7 +4326,7 @@ function injectHook(type, hook, target = currentInstance, prepend = false) {
|
|
|
4181
4326
|
try {
|
|
4182
4327
|
return callWithAsyncErrorHandling(hook, target, type, args);
|
|
4183
4328
|
} finally {
|
|
4184
|
-
|
|
4329
|
+
restoreCurrentInstance(prev);
|
|
4185
4330
|
setActiveSub(prevSub);
|
|
4186
4331
|
}
|
|
4187
4332
|
});
|
|
@@ -4302,16 +4447,17 @@ function compatH(type, propsOrChildren, children) {
|
|
|
4302
4447
|
}
|
|
4303
4448
|
const l = arguments.length;
|
|
4304
4449
|
const is2ndArgArrayChildren = isArray(propsOrChildren);
|
|
4305
|
-
if (l === 2 || is2ndArgArrayChildren)
|
|
4306
|
-
if (
|
|
4307
|
-
|
|
4308
|
-
|
|
4309
|
-
|
|
4450
|
+
if (l === 2 || is2ndArgArrayChildren) {
|
|
4451
|
+
if (isObject(propsOrChildren) && !is2ndArgArrayChildren) {
|
|
4452
|
+
if (isVNode(propsOrChildren)) return convertLegacySlots(createVNode(type, null, [propsOrChildren]));
|
|
4453
|
+
return convertLegacySlots(convertLegacyDirectives(createVNode(type, convertLegacyProps(propsOrChildren, type)), propsOrChildren));
|
|
4454
|
+
} else return convertLegacySlots(createVNode(type, null, propsOrChildren));
|
|
4455
|
+
} else {
|
|
4310
4456
|
if (isVNode(children)) children = [children];
|
|
4311
4457
|
return convertLegacySlots(convertLegacyDirectives(createVNode(type, convertLegacyProps(propsOrChildren, type), children), propsOrChildren));
|
|
4312
4458
|
}
|
|
4313
4459
|
}
|
|
4314
|
-
const skipLegacyRootLevelProps =
|
|
4460
|
+
const skipLegacyRootLevelProps = /*@__PURE__*/ makeMap("staticStyle,staticClass,directives,model,hook");
|
|
4315
4461
|
function convertLegacyProps(legacyProps, type) {
|
|
4316
4462
|
if (!legacyProps) return null;
|
|
4317
4463
|
const converted = {};
|
|
@@ -4323,8 +4469,10 @@ function convertLegacyProps(legacyProps, type) {
|
|
|
4323
4469
|
if (key === "nativeOn") handlerKey += `Native`;
|
|
4324
4470
|
const existing = converted[handlerKey];
|
|
4325
4471
|
const incoming = listeners[event];
|
|
4326
|
-
if (existing !== incoming)
|
|
4327
|
-
|
|
4472
|
+
if (existing !== incoming) {
|
|
4473
|
+
if (existing) converted[handlerKey] = [].concat(existing, incoming);
|
|
4474
|
+
else converted[handlerKey] = incoming;
|
|
4475
|
+
}
|
|
4328
4476
|
}
|
|
4329
4477
|
} else if (!skipLegacyRootLevelProps(key)) converted[key] = legacyProps[key];
|
|
4330
4478
|
if (legacyProps.staticClass) converted.class = normalizeClass([legacyProps.staticClass, converted.class]);
|
|
@@ -4423,7 +4571,7 @@ function convertLegacyFunctionalComponent(comp) {
|
|
|
4423
4571
|
const legacyFn = comp.render;
|
|
4424
4572
|
const Func = (props, ctx) => {
|
|
4425
4573
|
const instance = getCurrentInstance();
|
|
4426
|
-
|
|
4574
|
+
const legacyCtx = {
|
|
4427
4575
|
props,
|
|
4428
4576
|
children: instance.vnode.children || [],
|
|
4429
4577
|
data: instance.vnode.props || {},
|
|
@@ -4443,7 +4591,8 @@ function convertLegacyFunctionalComponent(comp) {
|
|
|
4443
4591
|
}
|
|
4444
4592
|
return {};
|
|
4445
4593
|
}
|
|
4446
|
-
}
|
|
4594
|
+
};
|
|
4595
|
+
return legacyFn(compatH, legacyCtx);
|
|
4447
4596
|
};
|
|
4448
4597
|
Func.props = comp.props;
|
|
4449
4598
|
Func.displayName = comp.name;
|
|
@@ -4475,16 +4624,17 @@ function renderList(source, renderItem, cache, index) {
|
|
|
4475
4624
|
} else if (typeof source === "number") {
|
|
4476
4625
|
ret = new Array(source);
|
|
4477
4626
|
for (let i = 0; i < source; i++) ret[i] = renderItem(i + 1, i, void 0, cached && cached[i]);
|
|
4478
|
-
} else if (isObject(source))
|
|
4479
|
-
|
|
4480
|
-
|
|
4481
|
-
|
|
4482
|
-
|
|
4483
|
-
|
|
4484
|
-
|
|
4627
|
+
} else if (isObject(source)) {
|
|
4628
|
+
if (source[Symbol.iterator]) ret = Array.from(source, (item, i) => renderItem(item, i, void 0, cached && cached[i]));
|
|
4629
|
+
else {
|
|
4630
|
+
const keys = Object.keys(source);
|
|
4631
|
+
ret = new Array(keys.length);
|
|
4632
|
+
for (let i = 0, l = keys.length; i < l; i++) {
|
|
4633
|
+
const key = keys[i];
|
|
4634
|
+
ret[i] = renderItem(source[key], key, i, cached && cached[i]);
|
|
4635
|
+
}
|
|
4485
4636
|
}
|
|
4486
|
-
}
|
|
4487
|
-
else ret = [];
|
|
4637
|
+
} else ret = [];
|
|
4488
4638
|
if (cache) cache[index] = ret;
|
|
4489
4639
|
return ret;
|
|
4490
4640
|
}
|
|
@@ -4509,18 +4659,45 @@ function createSlots(slots, dynamicSlots) {
|
|
|
4509
4659
|
//#endregion
|
|
4510
4660
|
//#region packages/runtime-core/src/helpers/renderSlot.ts
|
|
4511
4661
|
/**
|
|
4662
|
+
* Links a slot function to its raw vapor slot: a raw vapor slot carries
|
|
4663
|
+
* itself, and the wrapper the interop slots proxy hands out carries the raw
|
|
4664
|
+
* slot it wraps — one lookup answers both "is this a vapor slot" and
|
|
4665
|
+
* "which one". Internal to vapor interop.
|
|
4666
|
+
*/
|
|
4667
|
+
const rawVaporSlotKey = Symbol(`rawVaporSlot`);
|
|
4668
|
+
/**
|
|
4669
|
+
* Invokes a VDOM slot fallback under the outlet owner that produced it, the
|
|
4670
|
+
* way `renderSlot` would have rendered it inline. Vapor interop invokes
|
|
4671
|
+
* fallbacks late, outside any render, so it passes the owner recorded on the
|
|
4672
|
+
* vapor slot vnode. Internal to vapor interop.
|
|
4673
|
+
*/
|
|
4674
|
+
function invokeSlotFallback(fallback, owner) {
|
|
4675
|
+
if (!owner) return fallback();
|
|
4676
|
+
const prev = setCurrentRenderingInstance(owner);
|
|
4677
|
+
const prevStackSize = blockStack.length;
|
|
4678
|
+
try {
|
|
4679
|
+
return fallback();
|
|
4680
|
+
} finally {
|
|
4681
|
+
for (let i = blockStack.length; i > prevStackSize; i--) closeBlock();
|
|
4682
|
+
setCurrentRenderingInstance(prev);
|
|
4683
|
+
}
|
|
4684
|
+
}
|
|
4685
|
+
/**
|
|
4512
4686
|
* Compiler runtime helper for rendering `<slot/>`
|
|
4513
4687
|
* @private
|
|
4514
4688
|
*/
|
|
4515
|
-
function renderSlot(slots, name, props
|
|
4689
|
+
function renderSlot(slots, name, props, fallback, noSlotted, branchKey) {
|
|
4690
|
+
if (props == null) props = {};
|
|
4516
4691
|
let slot = slots[name];
|
|
4517
|
-
|
|
4518
|
-
const vaporSlot = slot && (slot.__vs || (slot.__vapor ? slot : null));
|
|
4692
|
+
const vaporSlot = slot && slot[rawVaporSlotKey];
|
|
4519
4693
|
if (vaporSlot) {
|
|
4520
4694
|
const ret = (openBlock(), createBlock(VaporSlot, props));
|
|
4521
4695
|
ret.vs = {
|
|
4522
4696
|
slot: vaporSlot,
|
|
4523
|
-
fallback
|
|
4697
|
+
outlets: fallback ? [{
|
|
4698
|
+
fallback,
|
|
4699
|
+
owner: currentRenderingInstance
|
|
4700
|
+
}] : void 0
|
|
4524
4701
|
};
|
|
4525
4702
|
if (!noSlotted && ret.scopeId) ret.slotScopeIds = [ret.scopeId + "-s"];
|
|
4526
4703
|
return ret;
|
|
@@ -4537,9 +4714,15 @@ function renderSlot(slots, name, props = {}, fallback, noSlotted, branchKey) {
|
|
|
4537
4714
|
let rendered;
|
|
4538
4715
|
try {
|
|
4539
4716
|
const validSlotContent = slot && ensureValidVNode(slot(props));
|
|
4540
|
-
|
|
4717
|
+
let attached = false;
|
|
4718
|
+
if (fallback && validSlotContent && currentRenderingInstance) {
|
|
4719
|
+
const interop = currentRenderingInstance.appContext.vapor;
|
|
4720
|
+
if (interop) attached = interop.attachSlotOutlet(validSlotContent, fallback, currentRenderingInstance);
|
|
4721
|
+
}
|
|
4541
4722
|
const slotKey = props.key || branchKey || validSlotContent && validSlotContent.key;
|
|
4542
4723
|
rendered = createBlock(Fragment, { key: (slotKey && !isSymbol(slotKey) ? slotKey : `_${name}`) + (!validSlotContent && fallback ? "_fb" : "") }, validSlotContent || (fallback ? fallback() : []), validSlotContent && slots._ === 1 ? 64 : -2);
|
|
4724
|
+
if (!validSlotContent && fallback) rendered.shapeFlag |= 1024;
|
|
4725
|
+
if (attached) rendered.vo = true;
|
|
4543
4726
|
} catch (err) {
|
|
4544
4727
|
for (let i = blockStack.length; i > prevStackSize; i--) closeBlock();
|
|
4545
4728
|
throw err;
|
|
@@ -4557,10 +4740,6 @@ function ensureValidVNode(vnodes) {
|
|
|
4557
4740
|
return true;
|
|
4558
4741
|
}) ? vnodes : null;
|
|
4559
4742
|
}
|
|
4560
|
-
function ensureVaporSlotFallback(vnodes, fallback) {
|
|
4561
|
-
let vaporSlot;
|
|
4562
|
-
if (vnodes && vnodes.length === 1 && isVNode(vnodes[0]) && (vaporSlot = vnodes[0].vs)) vaporSlot.outletFallback = fallback;
|
|
4563
|
-
}
|
|
4564
4743
|
//#endregion
|
|
4565
4744
|
//#region packages/runtime-core/src/helpers/toHandlers.ts
|
|
4566
4745
|
/**
|
|
@@ -4615,12 +4794,14 @@ function legacyResolveScopedSlots(fns, raw, hasDynamicKeys) {
|
|
|
4615
4794
|
function mapKeyToName(slots) {
|
|
4616
4795
|
for (let i = 0; i < slots.length; i++) {
|
|
4617
4796
|
const fn = slots[i];
|
|
4618
|
-
if (fn)
|
|
4619
|
-
|
|
4797
|
+
if (fn) {
|
|
4798
|
+
if (isArray(fn)) mapKeyToName(fn);
|
|
4799
|
+
else fn.name = fn.key || "default";
|
|
4800
|
+
}
|
|
4620
4801
|
}
|
|
4621
4802
|
return slots;
|
|
4622
4803
|
}
|
|
4623
|
-
const staticCacheMap =
|
|
4804
|
+
const staticCacheMap = /*@__PURE__*/ new WeakMap();
|
|
4624
4805
|
function legacyRenderStatic(instance, index) {
|
|
4625
4806
|
let cache = staticCacheMap.get(instance);
|
|
4626
4807
|
if (!cache) staticCacheMap.set(instance, cache = []);
|
|
@@ -4843,7 +5024,7 @@ const PublicInstanceProxyHandlers = {
|
|
|
4843
5024
|
return Reflect.defineProperty(target, key, descriptor);
|
|
4844
5025
|
}
|
|
4845
5026
|
};
|
|
4846
|
-
const RuntimeCompiledPublicInstanceProxyHandlers =
|
|
5027
|
+
const RuntimeCompiledPublicInstanceProxyHandlers = /*@__PURE__*/ extend({}, PublicInstanceProxyHandlers, {
|
|
4847
5028
|
get(target, key) {
|
|
4848
5029
|
if (key === Symbol.unscopables) return;
|
|
4849
5030
|
return PublicInstanceProxyHandlers.get(target, key, target);
|
|
@@ -4967,12 +5148,13 @@ function mergeDefaults(raw, defaults) {
|
|
|
4967
5148
|
for (const key in defaults) {
|
|
4968
5149
|
if (key.startsWith("__skip")) continue;
|
|
4969
5150
|
let opt = props[key];
|
|
4970
|
-
if (opt)
|
|
4971
|
-
|
|
4972
|
-
|
|
4973
|
-
|
|
4974
|
-
|
|
4975
|
-
|
|
5151
|
+
if (opt) {
|
|
5152
|
+
if (isArray(opt) || isFunction(opt)) opt = props[key] = {
|
|
5153
|
+
type: opt,
|
|
5154
|
+
default: defaults[key]
|
|
5155
|
+
};
|
|
5156
|
+
else opt.default = defaults[key];
|
|
5157
|
+
} else if (opt === null) opt = props[key] = { default: defaults[key] };
|
|
4976
5158
|
if (opt && defaults[`__skip_${key}`]) opt.skipFactory = true;
|
|
4977
5159
|
}
|
|
4978
5160
|
return props;
|
|
@@ -5021,36 +5203,31 @@ function createPropsRestProxy(props, excludedKeys) {
|
|
|
5021
5203
|
function withAsyncContext(getAwaitable) {
|
|
5022
5204
|
const ctx = getCurrentGenericInstance();
|
|
5023
5205
|
const inSSRSetup = isInSSRComponentSetup;
|
|
5024
|
-
const restoreAsyncContext = ctx && ctx.restoreAsyncContext ? ctx.restoreAsyncContext.bind(ctx) : void 0;
|
|
5025
5206
|
let awaitable = getAwaitable();
|
|
5026
5207
|
setCurrentInstance(null, void 0);
|
|
5027
5208
|
if (inSSRSetup) setInSSRSetupState(false);
|
|
5028
5209
|
const restore = () => {
|
|
5029
|
-
const
|
|
5210
|
+
const stoppedScope = ctx && !ctx.scope.active ? ctx.scope : void 0;
|
|
5030
5211
|
setCurrentInstance(ctx);
|
|
5031
5212
|
if (inSSRSetup) setInSSRSetupState(true);
|
|
5032
|
-
|
|
5033
|
-
return () => {
|
|
5034
|
-
if (reset) reset();
|
|
5035
|
-
if (resetStoppedScope) resetStoppedScope.reset();
|
|
5036
|
-
};
|
|
5213
|
+
return stoppedScope;
|
|
5037
5214
|
};
|
|
5038
5215
|
const cleanup = () => {
|
|
5039
5216
|
setCurrentInstance(null, void 0);
|
|
5040
5217
|
if (inSSRSetup) setInSSRSetupState(false);
|
|
5041
5218
|
};
|
|
5042
5219
|
if (isPromise(awaitable)) awaitable = awaitable.catch((e) => {
|
|
5043
|
-
const
|
|
5220
|
+
const stoppedScope = restore();
|
|
5044
5221
|
Promise.resolve().then(() => Promise.resolve().then(() => {
|
|
5045
|
-
if (
|
|
5222
|
+
if (stoppedScope) stoppedScope.reset();
|
|
5046
5223
|
cleanup();
|
|
5047
5224
|
}));
|
|
5048
5225
|
throw e;
|
|
5049
5226
|
});
|
|
5050
5227
|
return [awaitable, () => {
|
|
5051
|
-
const
|
|
5228
|
+
const stoppedScope = restore();
|
|
5052
5229
|
Promise.resolve().then(() => {
|
|
5053
|
-
if (
|
|
5230
|
+
if (stoppedScope) stoppedScope.reset();
|
|
5054
5231
|
cleanup();
|
|
5055
5232
|
});
|
|
5056
5233
|
}];
|
|
@@ -5078,9 +5255,11 @@ function applyOptions(instance) {
|
|
|
5078
5255
|
shouldCacheAccess = true;
|
|
5079
5256
|
if (computedOptions) for (const key in computedOptions) {
|
|
5080
5257
|
const opt = computedOptions[key];
|
|
5258
|
+
const get = isFunction(opt) ? opt.bind(publicThis, publicThis) : isFunction(opt.get) ? opt.get.bind(publicThis, publicThis) : NOOP;
|
|
5259
|
+
const set = !isFunction(opt) && isFunction(opt.set) ? opt.set.bind(publicThis) : NOOP;
|
|
5081
5260
|
const c = computed({
|
|
5082
|
-
get
|
|
5083
|
-
set
|
|
5261
|
+
get,
|
|
5262
|
+
set
|
|
5084
5263
|
});
|
|
5085
5264
|
Object.defineProperty(ctx, key, {
|
|
5086
5265
|
enumerable: true,
|
|
@@ -5139,9 +5318,10 @@ function resolveInjections(injectOptions, ctx, checkDuplicateProperties = NOOP)
|
|
|
5139
5318
|
for (const key in injectOptions) {
|
|
5140
5319
|
const opt = injectOptions[key];
|
|
5141
5320
|
let injected;
|
|
5142
|
-
if (isObject(opt))
|
|
5143
|
-
|
|
5144
|
-
|
|
5321
|
+
if (isObject(opt)) {
|
|
5322
|
+
if ("default" in opt) injected = inject(opt.from || key, opt.default, true);
|
|
5323
|
+
else injected = inject(opt.from || key);
|
|
5324
|
+
} else injected = inject(opt);
|
|
5145
5325
|
if (/* @__PURE__ */ isRef(injected)) Object.defineProperty(ctx, key, {
|
|
5146
5326
|
enumerable: true,
|
|
5147
5327
|
configurable: true,
|
|
@@ -5160,7 +5340,8 @@ function createWatcher(raw, ctx, publicThis, key) {
|
|
|
5160
5340
|
{
|
|
5161
5341
|
const cur = getCurrentInstance();
|
|
5162
5342
|
const instance = cur && getCurrentScope() === cur.scope ? cur : null;
|
|
5163
|
-
|
|
5343
|
+
const newValue = getter();
|
|
5344
|
+
if (isArray(newValue) && isCompatEnabled$1("WATCH_ARRAY", instance)) options.deep = true;
|
|
5164
5345
|
const baseGetter = getter;
|
|
5165
5346
|
getter = () => {
|
|
5166
5347
|
const val = baseGetter();
|
|
@@ -5172,10 +5353,12 @@ function createWatcher(raw, ctx, publicThis, key) {
|
|
|
5172
5353
|
const handler = ctx[raw];
|
|
5173
5354
|
if (isFunction(handler)) watch(getter, handler, options);
|
|
5174
5355
|
} else if (isFunction(raw)) watch(getter, raw.bind(publicThis), options);
|
|
5175
|
-
else if (isObject(raw))
|
|
5176
|
-
|
|
5177
|
-
|
|
5178
|
-
|
|
5356
|
+
else if (isObject(raw)) {
|
|
5357
|
+
if (isArray(raw)) raw.forEach((r) => createWatcher(r, ctx, publicThis, key));
|
|
5358
|
+
else {
|
|
5359
|
+
const handler = isFunction(raw.handler) ? raw.handler.bind(publicThis) : ctx[raw.handler];
|
|
5360
|
+
if (isFunction(handler)) watch(getter, handler, extend(raw, options));
|
|
5361
|
+
}
|
|
5179
5362
|
}
|
|
5180
5363
|
}
|
|
5181
5364
|
/**
|
|
@@ -5190,12 +5373,13 @@ function resolveMergedOptions(instance) {
|
|
|
5190
5373
|
const cached = cache.get(base);
|
|
5191
5374
|
let resolved;
|
|
5192
5375
|
if (cached) resolved = cached;
|
|
5193
|
-
else if (!globalMixins.length && !mixins && !extendsOptions)
|
|
5194
|
-
|
|
5195
|
-
|
|
5196
|
-
|
|
5197
|
-
|
|
5198
|
-
|
|
5376
|
+
else if (!globalMixins.length && !mixins && !extendsOptions) {
|
|
5377
|
+
if (isCompatEnabled$1("PRIVATE_APIS", instance)) {
|
|
5378
|
+
resolved = extend({}, base);
|
|
5379
|
+
resolved.parent = instance.parent && instance.parent.proxy;
|
|
5380
|
+
resolved.propsData = instance.vnode.props;
|
|
5381
|
+
} else resolved = base;
|
|
5382
|
+
} else {
|
|
5199
5383
|
resolved = {};
|
|
5200
5384
|
if (globalMixins.length) globalMixins.forEach((m) => mergeOptions(resolved, m, optionMergeStrategies, true));
|
|
5201
5385
|
mergeOptions(resolved, base, optionMergeStrategies);
|
|
@@ -5267,7 +5451,7 @@ function mergeObjectOptions(to, from) {
|
|
|
5267
5451
|
}
|
|
5268
5452
|
function mergeEmitsOrPropsOptions(to, from) {
|
|
5269
5453
|
if (to) {
|
|
5270
|
-
if (isArray(to) && isArray(from)) return [
|
|
5454
|
+
if (isArray(to) && isArray(from)) return [.../* @__PURE__ */ new Set([...to, ...from])];
|
|
5271
5455
|
return extend(Object.create(null), normalizePropsOrEmits(to), normalizePropsOrEmits(from !== null && from !== void 0 ? from : {}));
|
|
5272
5456
|
} else return from;
|
|
5273
5457
|
}
|
|
@@ -5303,7 +5487,7 @@ function createCompatVue$1(createApp, createSingletonApp) {
|
|
|
5303
5487
|
if (options.el) return vm.$mount(options.el);
|
|
5304
5488
|
else return vm;
|
|
5305
5489
|
}
|
|
5306
|
-
Vue.version = `2.6.14-compat:3.6.0-rc.
|
|
5490
|
+
Vue.version = `2.6.14-compat:3.6.0-rc.10`;
|
|
5307
5491
|
Vue.config = singletonApp.config;
|
|
5308
5492
|
Vue.use = (plugin, ...options) => {
|
|
5309
5493
|
if (plugin && isFunction(plugin.install)) plugin.install(Vue, ...options);
|
|
@@ -5709,13 +5893,17 @@ function useModel(props, name, options = EMPTY_OBJ) {
|
|
|
5709
5893
|
const modifiers = getModelModifiers(props, camelizedName, defaultPropGetter);
|
|
5710
5894
|
const res = customRef((track, trigger) => {
|
|
5711
5895
|
let localValue;
|
|
5896
|
+
let prevPropValue = EMPTY_OBJ;
|
|
5712
5897
|
let prevSetValue = EMPTY_OBJ;
|
|
5713
5898
|
let prevEmittedValue;
|
|
5714
5899
|
watchSyncEffect(() => {
|
|
5715
5900
|
const propValue = props[camelizedName];
|
|
5716
|
-
if (hasChanged(
|
|
5717
|
-
|
|
5718
|
-
|
|
5901
|
+
if (hasChanged(prevPropValue, propValue)) {
|
|
5902
|
+
prevPropValue = propValue;
|
|
5903
|
+
if (hasChanged(localValue, propValue)) {
|
|
5904
|
+
localValue = propValue;
|
|
5905
|
+
trigger();
|
|
5906
|
+
}
|
|
5719
5907
|
}
|
|
5720
5908
|
});
|
|
5721
5909
|
return {
|
|
@@ -5781,7 +5969,7 @@ function baseEmit(instance, props, getter, event, ...rawArgs) {
|
|
|
5781
5969
|
const modifiers = isCompatModelListener ? props.modelModifiers : isModelListener && getModelModifiers(props, event.slice(7), getter);
|
|
5782
5970
|
if (modifiers) {
|
|
5783
5971
|
if (modifiers.trim) args = rawArgs.map((a) => isString(a) ? a.trim() : a);
|
|
5784
|
-
if (modifiers.number) args =
|
|
5972
|
+
if (modifiers.number) args = args.map(looseToNumber);
|
|
5785
5973
|
}
|
|
5786
5974
|
let handlerName;
|
|
5787
5975
|
let handler = getter(props, handlerName = toHandlerKey(event)) || getter(props, handlerName = toHandlerKey(camelize(event)));
|
|
@@ -5894,7 +6082,7 @@ function renderComponentRoot(instance) {
|
|
|
5894
6082
|
root = cloneVNode(root, null, false, true);
|
|
5895
6083
|
root.dirs = root.dirs ? root.dirs.concat(vnode.dirs) : vnode.dirs;
|
|
5896
6084
|
}
|
|
5897
|
-
if (vnode.transition) setTransitionHooks(root, vnode.transition);
|
|
6085
|
+
if (vnode.transition) setTransitionHooks(isTeleport(root.type) ? getInnerChild$1(root) || root : root, vnode.transition);
|
|
5898
6086
|
result = root;
|
|
5899
6087
|
setCurrentRenderingInstance(prev);
|
|
5900
6088
|
return result;
|
|
@@ -5904,15 +6092,18 @@ function filterSingleRoot(children, recurse = true) {
|
|
|
5904
6092
|
for (let i = 0; i < children.length; i++) {
|
|
5905
6093
|
const child = children[i];
|
|
5906
6094
|
if (isVNode(child)) {
|
|
5907
|
-
if (child.type !== Comment || child.children === "v-if")
|
|
5908
|
-
|
|
6095
|
+
if (child.type !== Comment || child.children === "v-if") {
|
|
6096
|
+
if (singleRoot) return;
|
|
6097
|
+
else singleRoot = child;
|
|
6098
|
+
}
|
|
5909
6099
|
} else return;
|
|
5910
6100
|
}
|
|
5911
6101
|
return singleRoot;
|
|
5912
6102
|
}
|
|
6103
|
+
const isFunctionalFallthroughKey = (key) => key === "class" || key === "style" || isOn(key);
|
|
5913
6104
|
const getFunctionalFallthrough = (attrs) => {
|
|
5914
6105
|
let res;
|
|
5915
|
-
for (const key in attrs) if (
|
|
6106
|
+
for (const key in attrs) if (isFunctionalFallthroughKey(key)) (res || (res = {}))[key] = attrs[key];
|
|
5916
6107
|
return res;
|
|
5917
6108
|
};
|
|
5918
6109
|
const filterModelListeners = (attrs, props) => {
|
|
@@ -6036,16 +6227,17 @@ function updateProps(instance, rawProps, rawPrevProps, optimized) {
|
|
|
6036
6227
|
let key = propsToUpdate[i];
|
|
6037
6228
|
if (isEmitListener(instance.emitsOptions, key)) continue;
|
|
6038
6229
|
const value = rawProps[key];
|
|
6039
|
-
if (options)
|
|
6040
|
-
if (
|
|
6041
|
-
attrs[key]
|
|
6042
|
-
|
|
6230
|
+
if (options) {
|
|
6231
|
+
if (hasOwn(attrs, key)) {
|
|
6232
|
+
if (value !== attrs[key]) {
|
|
6233
|
+
attrs[key] = value;
|
|
6234
|
+
hasAttrsChanged = true;
|
|
6235
|
+
}
|
|
6236
|
+
} else {
|
|
6237
|
+
const camelizedKey = camelize(key);
|
|
6238
|
+
props[camelizedKey] = resolvePropValue(options, camelizedKey, value, instance, baseResolveDefault);
|
|
6043
6239
|
}
|
|
6044
6240
|
} else {
|
|
6045
|
-
const camelizedKey = camelize(key);
|
|
6046
|
-
props[camelizedKey] = resolvePropValue(options, camelizedKey, value, instance, baseResolveDefault);
|
|
6047
|
-
}
|
|
6048
|
-
else {
|
|
6049
6241
|
if (isOn(key) && key.endsWith("Native")) key = key.slice(0, -6);
|
|
6050
6242
|
else if (shouldSkipAttr(key, instance)) continue;
|
|
6051
6243
|
if (value !== attrs[key]) {
|
|
@@ -6058,9 +6250,11 @@ function updateProps(instance, rawProps, rawPrevProps, optimized) {
|
|
|
6058
6250
|
} else {
|
|
6059
6251
|
if (setFullProps(instance, rawProps, props, attrs)) hasAttrsChanged = true;
|
|
6060
6252
|
let kebabKey;
|
|
6061
|
-
for (const key in rawCurrentProps) if (!rawProps || !hasOwn(rawProps, key) && ((kebabKey = hyphenate(key)) === key || !hasOwn(rawProps, kebabKey)))
|
|
6062
|
-
if (
|
|
6063
|
-
|
|
6253
|
+
for (const key in rawCurrentProps) if (!rawProps || !hasOwn(rawProps, key) && ((kebabKey = hyphenate(key)) === key || !hasOwn(rawProps, kebabKey))) {
|
|
6254
|
+
if (options) {
|
|
6255
|
+
if (rawPrevProps && (rawPrevProps[key] !== void 0 || rawPrevProps[kebabKey] !== void 0)) props[key] = resolvePropValue(options, key, void 0, instance, baseResolveDefault, true);
|
|
6256
|
+
} else delete props[key];
|
|
6257
|
+
}
|
|
6064
6258
|
if (attrs !== rawCurrentProps) {
|
|
6065
6259
|
for (const key in attrs) if (!rawProps || !hasOwn(rawProps, key) && !hasOwn(rawProps, key + "Native")) {
|
|
6066
6260
|
delete attrs[key];
|
|
@@ -6080,9 +6274,10 @@ function setFullProps(instance, rawProps, props, attrs) {
|
|
|
6080
6274
|
if (key === "inline-template") continue;
|
|
6081
6275
|
const value = rawProps[key];
|
|
6082
6276
|
let camelKey;
|
|
6083
|
-
if (options && hasOwn(options, camelKey = camelize(key)))
|
|
6084
|
-
|
|
6085
|
-
|
|
6277
|
+
if (options && hasOwn(options, camelKey = camelize(key))) {
|
|
6278
|
+
if (!needCastKeys || !needCastKeys.includes(camelKey)) props[camelKey] = value;
|
|
6279
|
+
else (rawCastValues || (rawCastValues = {}))[camelKey] = value;
|
|
6280
|
+
} else if (!isEmitListener(instance.emitsOptions, key)) {
|
|
6086
6281
|
if (isOn(key) && key.endsWith("Native")) key = key.slice(0, -6);
|
|
6087
6282
|
else if (shouldSkipAttr(key, instance)) continue;
|
|
6088
6283
|
if (!(key in attrs) || value !== attrs[key]) {
|
|
@@ -6131,7 +6326,7 @@ function baseResolveDefault(factory, instance, key) {
|
|
|
6131
6326
|
const prev = setCurrentInstance(instance);
|
|
6132
6327
|
const props = /* @__PURE__ */ toRaw(instance.props);
|
|
6133
6328
|
value = factory.call(isCompatEnabled$1("PROPS_DEFAULT_THIS", instance) ? createPropsDefaultThis(instance, props, key) : null, props);
|
|
6134
|
-
|
|
6329
|
+
restoreCurrentInstance(prev);
|
|
6135
6330
|
return value;
|
|
6136
6331
|
}
|
|
6137
6332
|
const mixinPropsCache = /* @__PURE__ */ new WeakMap();
|
|
@@ -6246,9 +6441,10 @@ const updateSlots = (instance, children, optimized) => {
|
|
|
6246
6441
|
let deletionComparisonTarget = EMPTY_OBJ;
|
|
6247
6442
|
if (vnode.shapeFlag & 32) {
|
|
6248
6443
|
const type = children._;
|
|
6249
|
-
if (type)
|
|
6250
|
-
|
|
6251
|
-
|
|
6444
|
+
if (type) {
|
|
6445
|
+
if (optimized && type === 1) needDeletionCheck = false;
|
|
6446
|
+
else assignSlots(slots, children, optimized);
|
|
6447
|
+
} else {
|
|
6252
6448
|
needDeletionCheck = !children.$stable;
|
|
6253
6449
|
normalizeObjectSlots(children, slots, instance);
|
|
6254
6450
|
}
|
|
@@ -6308,6 +6504,10 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
6308
6504
|
optimized = false;
|
|
6309
6505
|
n2.dynamicChildren = null;
|
|
6310
6506
|
}
|
|
6507
|
+
if (n2.dynamicChildren && n1 && n1.dynamicChildren && n1.dynamicChildren.hasOnce) {
|
|
6508
|
+
if (n2.dynamicChildren === EMPTY_ARR) n2.dynamicChildren = [];
|
|
6509
|
+
n2.dynamicChildren.hasOnce = true;
|
|
6510
|
+
}
|
|
6311
6511
|
const { type, ref, shapeFlag } = n2;
|
|
6312
6512
|
switch (type) {
|
|
6313
6513
|
case Text:
|
|
@@ -6323,7 +6523,7 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
6323
6523
|
processFragment(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
|
|
6324
6524
|
break;
|
|
6325
6525
|
case VaporSlot:
|
|
6326
|
-
getVaporInterface(parentComponent, n2).slot(n1, n2, container, anchor, parentComponent, parentSuspense);
|
|
6526
|
+
getVaporInterface(parentComponent, n2).slot(n1, n2, container, anchor, parentComponent, parentSuspense, slotScopeIds);
|
|
6327
6527
|
break;
|
|
6328
6528
|
default: if (shapeFlag & 1) processElement(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
|
|
6329
6529
|
else if (shapeFlag & 6) processComponent(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
|
|
@@ -6419,7 +6619,10 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
6419
6619
|
for (let i = 0; i < inheritedScopeIds.length; i++) hostSetScopeId(el, inheritedScopeIds[i]);
|
|
6420
6620
|
};
|
|
6421
6621
|
const mountChildren = (children, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, start = 0) => {
|
|
6422
|
-
for (let i = start; i < children.length; i++)
|
|
6622
|
+
for (let i = start; i < children.length; i++) {
|
|
6623
|
+
const child = children[i] = optimized ? cloneIfMounted(children[i]) : normalizeVNode(children[i]);
|
|
6624
|
+
patch(null, child, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
|
|
6625
|
+
}
|
|
6423
6626
|
};
|
|
6424
6627
|
const patchElement = (n1, n2, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {
|
|
6425
6628
|
const el = n2.el = n1.el;
|
|
@@ -6430,6 +6633,7 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
6430
6633
|
let vnodeHook;
|
|
6431
6634
|
parentComponent && toggleRecurse(parentComponent, false);
|
|
6432
6635
|
if (vnodeHook = newProps.onVnodeBeforeUpdate) invokeVNodeHook(vnodeHook, parentComponent, n2, n1);
|
|
6636
|
+
if (n2.ibu) n2.ibu();
|
|
6433
6637
|
if (dirs) invokeDirectiveHook(n2, n1, parentComponent, "beforeUpdate");
|
|
6434
6638
|
parentComponent && toggleRecurse(parentComponent, true);
|
|
6435
6639
|
if (dynamicChildren && (!n1.dynamicChildren || n1.dynamicChildren.length !== dynamicChildren.length)) {
|
|
@@ -6461,8 +6665,9 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
6461
6665
|
if (n1.children !== n2.children) hostSetElementText(el, n2.children);
|
|
6462
6666
|
}
|
|
6463
6667
|
} else if (!optimized && dynamicChildren == null) patchProps(el, oldProps, newProps, parentComponent, namespace);
|
|
6464
|
-
if ((vnodeHook = newProps.onVnodeUpdated) || dirs) queuePostRenderEffect(() => {
|
|
6668
|
+
if ((vnodeHook = newProps.onVnodeUpdated) || dirs || n2.iu) queuePostRenderEffect(() => {
|
|
6465
6669
|
vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, n2, n1);
|
|
6670
|
+
n2.iu && n2.iu();
|
|
6466
6671
|
dirs && invokeDirectiveHook(n2, n1, parentComponent, "updated");
|
|
6467
6672
|
}, void 0, parentSuspense);
|
|
6468
6673
|
};
|
|
@@ -6470,7 +6675,8 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
6470
6675
|
for (let i = 0; i < newChildren.length; i++) {
|
|
6471
6676
|
const oldVNode = oldChildren[i];
|
|
6472
6677
|
const newVNode = newChildren[i];
|
|
6473
|
-
|
|
6678
|
+
const container = oldVNode.el && (oldVNode.type === Fragment || !isSameVNodeType(oldVNode, newVNode) || oldVNode.shapeFlag & 198) ? hostParentNode(oldVNode.el) : fallbackContainer;
|
|
6679
|
+
patch(oldVNode, newVNode, container, null, parentComponent, parentSuspense, namespace, slotScopeIds, true);
|
|
6474
6680
|
}
|
|
6475
6681
|
};
|
|
6476
6682
|
const patchProps = (el, oldProps, newProps, parentComponent, namespace) => {
|
|
@@ -6503,41 +6709,15 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
6503
6709
|
};
|
|
6504
6710
|
const processComponent = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {
|
|
6505
6711
|
n2.slotScopeIds = slotScopeIds;
|
|
6506
|
-
if (n2.type.__vapor)
|
|
6507
|
-
|
|
6508
|
-
|
|
6509
|
-
|
|
6510
|
-
|
|
6511
|
-
|
|
6512
|
-
|
|
6513
|
-
|
|
6514
|
-
|
|
6515
|
-
if (vnodeBeforeMountHook) invokeVNodeHook(vnodeBeforeMountHook, parentComponent, n2);
|
|
6516
|
-
});
|
|
6517
|
-
if (n2.dirs) queuePostRenderEffect(() => invokeDirectiveHook(n2, null, parentComponent, "mounted"), void 0, parentSuspense);
|
|
6518
|
-
const vnodeMountedHook = !isAsyncWrapper(n2) && n2.props && n2.props.onVnodeMounted;
|
|
6519
|
-
if (vnodeMountedHook) {
|
|
6520
|
-
const scopedVNode = n2;
|
|
6521
|
-
queuePostRenderEffect(() => invokeVNodeHook(vnodeMountedHook, parentComponent, scopedVNode), void 0, parentSuspense);
|
|
6522
|
-
}
|
|
6523
|
-
}
|
|
6524
|
-
else {
|
|
6525
|
-
const shouldUpdate = shouldUpdateComponent(n1, n2, optimized);
|
|
6526
|
-
getVaporInterface(parentComponent, n2).update(n1, n2, shouldUpdate, () => {
|
|
6527
|
-
if (n2.dirs) invokeDirectiveHook(n2, n1, parentComponent, "beforeUpdate");
|
|
6528
|
-
}, () => {
|
|
6529
|
-
const vnodeBeforeUpdateHook = n2.props && n2.props.onVnodeBeforeUpdate;
|
|
6530
|
-
if (vnodeBeforeUpdateHook) invokeVNodeHook(vnodeBeforeUpdateHook, parentComponent, n2, n1);
|
|
6531
|
-
});
|
|
6532
|
-
const vnodeUpdatedHook = n2.props && n2.props.onVnodeUpdated;
|
|
6533
|
-
if (shouldUpdate && (vnodeUpdatedHook || n2.dirs)) queuePostRenderEffect(() => {
|
|
6534
|
-
n2.dirs && invokeDirectiveHook(n2, n1, parentComponent, "updated");
|
|
6535
|
-
vnodeUpdatedHook && invokeVNodeHook(vnodeUpdatedHook, parentComponent, n2, n1);
|
|
6536
|
-
}, void 0, parentSuspense);
|
|
6537
|
-
}
|
|
6538
|
-
else if (n1 == null) if (n2.shapeFlag & 512) parentComponent.ctx.activate(n2, container, anchor, namespace, optimized);
|
|
6539
|
-
else mountComponent(n2, container, anchor, parentComponent, parentSuspense, namespace, optimized);
|
|
6540
|
-
else updateComponent(n1, n2, optimized);
|
|
6712
|
+
if (n2.type.__vapor) {
|
|
6713
|
+
if (n1 == null) {
|
|
6714
|
+
if (n2.shapeFlag & 512) getVaporInterface(parentComponent, n2).activate(n2, container, anchor, parentComponent, parentSuspense);
|
|
6715
|
+
else getVaporInterface(parentComponent, n2).mount(n2, container, anchor, parentComponent, parentSuspense);
|
|
6716
|
+
} else getVaporInterface(parentComponent, n2).update(n1, n2, shouldUpdateComponent(n1, n2, optimized));
|
|
6717
|
+
} else if (n1 == null) {
|
|
6718
|
+
if (n2.shapeFlag & 512) parentComponent.ctx.activate(n2, container, anchor, namespace, optimized);
|
|
6719
|
+
else mountComponent(n2, container, anchor, parentComponent, parentSuspense, namespace, optimized);
|
|
6720
|
+
} else updateComponent(n1, n2, optimized);
|
|
6541
6721
|
};
|
|
6542
6722
|
const mountComponent = (initialVNode, container, anchor, parentComponent, parentSuspense, namespace, optimized) => {
|
|
6543
6723
|
const compatMountInstance = initialVNode.isCompatRoot && initialVNode.component;
|
|
@@ -6569,14 +6749,16 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
6569
6749
|
};
|
|
6570
6750
|
const updateComponent = (n1, n2, optimized) => {
|
|
6571
6751
|
const instance = n2.component = n1.component;
|
|
6572
|
-
if (shouldUpdateComponent(n1, n2, optimized))
|
|
6573
|
-
|
|
6574
|
-
|
|
6752
|
+
if (shouldUpdateComponent(n1, n2, optimized)) {
|
|
6753
|
+
if (instance.asyncDep && !instance.asyncResolved) {
|
|
6754
|
+
n2.el = n1.el;
|
|
6755
|
+
updateComponentPreRender(instance, n2, optimized);
|
|
6756
|
+
return;
|
|
6757
|
+
} else {
|
|
6758
|
+
instance.next = n2;
|
|
6759
|
+
instance.effect.run();
|
|
6760
|
+
}
|
|
6575
6761
|
} else {
|
|
6576
|
-
instance.next = n2;
|
|
6577
|
-
instance.effect.run();
|
|
6578
|
-
}
|
|
6579
|
-
else {
|
|
6580
6762
|
n2.el = n1.el;
|
|
6581
6763
|
instance.vnode = n2;
|
|
6582
6764
|
}
|
|
@@ -6667,6 +6849,7 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
6667
6849
|
} else next = vnode;
|
|
6668
6850
|
if (bu) invokeArrayFns(bu);
|
|
6669
6851
|
if (vnodeHook = next.props && next.props.onVnodeBeforeUpdate) invokeVNodeHook(vnodeHook, parent, next, vnode);
|
|
6852
|
+
if (next.ibu) next.ibu();
|
|
6670
6853
|
if (isCompatEnabled$1("INSTANCE_EVENT_HOOKS", instance)) instance.emit("hook:beforeUpdate");
|
|
6671
6854
|
toggleRecurse(instance, true);
|
|
6672
6855
|
const nextTree = renderComponentRoot(instance);
|
|
@@ -6676,7 +6859,10 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
6676
6859
|
next.el = nextTree.el;
|
|
6677
6860
|
if (originNext === null) updateHOCHostEl(instance, nextTree.el);
|
|
6678
6861
|
if (u) queuePostRenderEffect(u, void 0, parentSuspense);
|
|
6679
|
-
if (vnodeHook = next.props && next.props.onVnodeUpdated) queuePostRenderEffect(() =>
|
|
6862
|
+
if ((vnodeHook = next.props && next.props.onVnodeUpdated) || next.iu) queuePostRenderEffect(() => {
|
|
6863
|
+
vnodeHook && invokeVNodeHook(vnodeHook, parent, next, vnode);
|
|
6864
|
+
next.iu && next.iu();
|
|
6865
|
+
}, void 0, parentSuspense);
|
|
6680
6866
|
if (isCompatEnabled$1("INSTANCE_EVENT_HOOKS", instance)) queuePostRenderEffect(() => instance.emit("hook:updated"), void 0, parentSuspense);
|
|
6681
6867
|
}
|
|
6682
6868
|
}
|
|
@@ -6715,9 +6901,10 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
6715
6901
|
if (shapeFlag & 8) {
|
|
6716
6902
|
if (prevShapeFlag & 16) unmountChildren(c1, parentComponent, parentSuspense);
|
|
6717
6903
|
if (c2 !== c1) hostSetElementText(container, c2);
|
|
6718
|
-
} else if (prevShapeFlag & 16)
|
|
6719
|
-
|
|
6720
|
-
|
|
6904
|
+
} else if (prevShapeFlag & 16) {
|
|
6905
|
+
if (shapeFlag & 16) patchKeyedChildren(c1, c2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
|
|
6906
|
+
else unmountChildren(c1, parentComponent, parentSuspense, true);
|
|
6907
|
+
} else {
|
|
6721
6908
|
if (prevShapeFlag & 8) hostSetElementText(container, "");
|
|
6722
6909
|
if (shapeFlag & 16) mountChildren(c2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
|
|
6723
6910
|
}
|
|
@@ -6813,15 +7000,17 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
6813
7000
|
const anchorVNode = c2[nextIndex + 1];
|
|
6814
7001
|
const anchor = nextIndex + 1 < l2 ? anchorVNode.el || resolveAsyncComponentPlaceholder(anchorVNode) : parentAnchor;
|
|
6815
7002
|
if (newIndexToOldIndexMap[i] === 0) patch(null, nextChild, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
|
|
6816
|
-
else if (moved)
|
|
6817
|
-
|
|
7003
|
+
else if (moved) {
|
|
7004
|
+
if (j < 0 || i !== increasingNewIndexSequence[j]) move(nextChild, container, anchor, 2, parentComponent);
|
|
7005
|
+
else j--;
|
|
7006
|
+
}
|
|
6818
7007
|
}
|
|
6819
7008
|
}
|
|
6820
7009
|
};
|
|
6821
7010
|
const move = (vnode, container, anchor, moveType, parentComponent, parentSuspense = null) => {
|
|
6822
7011
|
const { el, type, transition, children, shapeFlag } = vnode;
|
|
6823
7012
|
if (isVaporComponent(type) || type === VaporSlot) {
|
|
6824
|
-
getVaporInterface(parentComponent, vnode).move(vnode, container, anchor, moveType);
|
|
7013
|
+
getVaporInterface(parentComponent, vnode).move(vnode, container, anchor, moveType, parentSuspense);
|
|
6825
7014
|
return;
|
|
6826
7015
|
}
|
|
6827
7016
|
if (shapeFlag & 6) {
|
|
@@ -6846,54 +7035,37 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
6846
7035
|
moveStaticNode(vnode, container, anchor);
|
|
6847
7036
|
return;
|
|
6848
7037
|
}
|
|
6849
|
-
if (moveType !== 2 && shapeFlag & 1 && transition)
|
|
6850
|
-
|
|
6851
|
-
|
|
6852
|
-
const remove = () => {
|
|
7038
|
+
if (moveType !== 2 && shapeFlag & 1 && transition) {
|
|
7039
|
+
if (moveType === 0) performTransitionEnter(el, transition, () => hostInsert(el, container, anchor), parentSuspense, true);
|
|
7040
|
+
else performTransitionLeave(el, transition, () => {
|
|
6853
7041
|
if (vnode.ctx.isUnmounted) hostRemove(el);
|
|
6854
7042
|
else hostInsert(el, container, anchor);
|
|
6855
|
-
};
|
|
6856
|
-
|
|
6857
|
-
const wasLeaving = el._isLeaving || !!el[leaveCbKey];
|
|
6858
|
-
if (el._isLeaving) el[leaveCbKey](true);
|
|
6859
|
-
if (transition.persisted && !wasLeaving) remove();
|
|
6860
|
-
else leave(el, () => {
|
|
6861
|
-
remove();
|
|
6862
|
-
afterLeave && afterLeave();
|
|
6863
|
-
});
|
|
6864
|
-
};
|
|
6865
|
-
if (delayLeave) delayLeave(el, remove, performLeave);
|
|
6866
|
-
else performLeave();
|
|
6867
|
-
}
|
|
6868
|
-
else hostInsert(el, container, anchor);
|
|
7043
|
+
}, true, true);
|
|
7044
|
+
} else hostInsert(el, container, anchor);
|
|
6869
7045
|
};
|
|
6870
7046
|
const unmount = (vnode, parentComponent, parentSuspense, doRemove = false, optimized = false) => {
|
|
6871
7047
|
const { type, props, ref, children, dynamicChildren, shapeFlag, patchFlag, dirs, cacheIndex, memo } = vnode;
|
|
6872
|
-
if (patchFlag === -2) optimized = false;
|
|
7048
|
+
if (patchFlag === -2 || dynamicChildren && dynamicChildren.hasOnce) optimized = false;
|
|
6873
7049
|
if (ref != null) {
|
|
6874
7050
|
const prevSub = setActiveSub();
|
|
6875
7051
|
setRef(ref, null, parentSuspense, vnode, true);
|
|
6876
7052
|
setActiveSub(prevSub);
|
|
6877
7053
|
}
|
|
6878
|
-
if (cacheIndex != null) parentComponent.renderCache[cacheIndex] = void 0;
|
|
7054
|
+
if (cacheIndex != null && (!vnode.ctx || vnode.ctx === parentComponent)) parentComponent.renderCache[cacheIndex] = void 0;
|
|
6879
7055
|
if (shapeFlag & 256) {
|
|
6880
|
-
if (isVaporComponent(vnode.type)) getVaporInterface(parentComponent, vnode).deactivate(vnode, parentComponent.ctx.getStorageContainer());
|
|
7056
|
+
if (isVaporComponent(vnode.type)) getVaporInterface(parentComponent, vnode).deactivate(vnode, parentComponent.ctx.getStorageContainer(), parentSuspense);
|
|
6881
7057
|
else parentComponent.ctx.deactivate(vnode);
|
|
6882
7058
|
return;
|
|
6883
7059
|
}
|
|
7060
|
+
if (shapeFlag & 6 && isVaporComponent(type)) {
|
|
7061
|
+
getVaporInterface(parentComponent, vnode).unmount(vnode, doRemove, parentSuspense);
|
|
7062
|
+
return;
|
|
7063
|
+
}
|
|
6884
7064
|
const shouldInvokeDirs = shapeFlag & 1 && dirs;
|
|
6885
7065
|
const shouldInvokeVnodeHook = !isAsyncWrapper(vnode);
|
|
6886
7066
|
let vnodeHook;
|
|
6887
7067
|
if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeBeforeUnmount)) invokeVNodeHook(vnodeHook, parentComponent, vnode);
|
|
6888
|
-
if (shapeFlag & 6)
|
|
6889
|
-
if (dirs) invokeDirectiveHook(vnode, null, parentComponent, "beforeUnmount");
|
|
6890
|
-
getVaporInterface(parentComponent, vnode).unmount(vnode, doRemove);
|
|
6891
|
-
if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeUnmounted) || dirs) queuePostRenderEffect(() => {
|
|
6892
|
-
dirs && invokeDirectiveHook(vnode, null, parentComponent, "unmounted");
|
|
6893
|
-
vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode);
|
|
6894
|
-
}, void 0, parentSuspense);
|
|
6895
|
-
return;
|
|
6896
|
-
} else unmountComponent(vnode.component, parentSuspense, doRemove);
|
|
7068
|
+
if (shapeFlag & 6) unmountComponent(vnode.component, parentSuspense, doRemove);
|
|
6897
7069
|
else {
|
|
6898
7070
|
if (shapeFlag & 128) {
|
|
6899
7071
|
vnode.suspense.unmount(parentSuspense, doRemove);
|
|
@@ -6904,7 +7076,7 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
6904
7076
|
else if (dynamicChildren && !dynamicChildren.hasOnce && (type !== Fragment || patchFlag > 0 && patchFlag & 64)) unmountChildren(dynamicChildren, parentComponent, parentSuspense, false, true);
|
|
6905
7077
|
else if (type === Fragment && patchFlag & 384 || !optimized && shapeFlag & 16) unmountChildren(children, parentComponent, parentSuspense);
|
|
6906
7078
|
if (type === VaporSlot) {
|
|
6907
|
-
getVaporInterface(parentComponent, vnode).unmount(vnode, doRemove);
|
|
7079
|
+
getVaporInterface(parentComponent, vnode).unmount(vnode, doRemove, parentSuspense);
|
|
6908
7080
|
return;
|
|
6909
7081
|
}
|
|
6910
7082
|
if (doRemove) remove(vnode);
|
|
@@ -6924,6 +7096,7 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
6924
7096
|
}
|
|
6925
7097
|
if (type === Static) {
|
|
6926
7098
|
removeStaticNode(vnode);
|
|
7099
|
+
if (transition && !transition.persisted && transition.afterLeave) transition.afterLeave();
|
|
6927
7100
|
return;
|
|
6928
7101
|
}
|
|
6929
7102
|
if (transition) performTransitionLeave(el, transition, () => hostRemove(el), !!(vnode.shapeFlag & 1));
|
|
@@ -6948,7 +7121,10 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
6948
7121
|
if (effect) {
|
|
6949
7122
|
effect.stop();
|
|
6950
7123
|
unmount(subTree, instance, parentSuspense, doRemove);
|
|
6951
|
-
} else if (
|
|
7124
|
+
} else if (instance.vnode.el && subTree) {
|
|
7125
|
+
subTree.transition = instance.vnode.transition;
|
|
7126
|
+
unmount(subTree, instance, parentSuspense, doRemove);
|
|
7127
|
+
}
|
|
6952
7128
|
if (um) queuePostRenderEffect(um, void 0, parentSuspense);
|
|
6953
7129
|
if (isCompatEnabled$1("INSTANCE_EVENT_HOOKS", instance)) queuePostRenderEffect(() => instance.emit("hook:destroyed"), void 0, parentSuspense);
|
|
6954
7130
|
queuePostRenderEffect(() => instance.isUnmounted = true, void 0, parentSuspense);
|
|
@@ -7017,12 +7193,14 @@ function resolveChildrenNamespace({ type, props }, currentNamespace) {
|
|
|
7017
7193
|
return currentNamespace === "svg" && type === "foreignObject" || currentNamespace === "mathml" && type === "annotation-xml" && props && props.encoding && props.encoding.includes("html") ? void 0 : currentNamespace;
|
|
7018
7194
|
}
|
|
7019
7195
|
function toggleRecurse({ effect, job, vapor }, allowed) {
|
|
7020
|
-
if (!vapor)
|
|
7021
|
-
|
|
7022
|
-
|
|
7023
|
-
|
|
7024
|
-
|
|
7025
|
-
|
|
7196
|
+
if (!vapor) {
|
|
7197
|
+
if (allowed) {
|
|
7198
|
+
effect.flags |= 128;
|
|
7199
|
+
job.flags |= 2;
|
|
7200
|
+
} else {
|
|
7201
|
+
effect.flags &= -129;
|
|
7202
|
+
job.flags &= -3;
|
|
7203
|
+
}
|
|
7026
7204
|
}
|
|
7027
7205
|
}
|
|
7028
7206
|
function needTransition(parentSuspense, transition) {
|
|
@@ -7061,8 +7239,10 @@ function traverseStaticChildren(n1, n2, shallow = false) {
|
|
|
7061
7239
|
}
|
|
7062
7240
|
function locateNonHydratedAsyncRoot(instance) {
|
|
7063
7241
|
const subComponent = instance.subTree && instance.subTree.component;
|
|
7064
|
-
if (subComponent)
|
|
7065
|
-
|
|
7242
|
+
if (subComponent) {
|
|
7243
|
+
if (subComponent.asyncDep && !subComponent.asyncResolved) return subComponent;
|
|
7244
|
+
else return locateNonHydratedAsyncRoot(subComponent);
|
|
7245
|
+
}
|
|
7066
7246
|
}
|
|
7067
7247
|
function invalidateMount(hooks) {
|
|
7068
7248
|
if (hooks) for (let i = 0; i < hooks.length; i++) hooks[i].flags |= 4;
|
|
@@ -7081,13 +7261,15 @@ function performTransitionEnter(el, transition, insert, parentSuspense, force =
|
|
|
7081
7261
|
function performTransitionLeave(el, transition, remove, isElement = true, force = false) {
|
|
7082
7262
|
const performRemove = () => {
|
|
7083
7263
|
remove();
|
|
7084
|
-
if (transition && !transition.persisted && transition.afterLeave) transition.afterLeave();
|
|
7264
|
+
if (transition && (force || !transition.persisted) && transition.afterLeave) transition.afterLeave();
|
|
7085
7265
|
};
|
|
7086
7266
|
if (force || isElement && transition && !transition.persisted) {
|
|
7087
7267
|
const { leave, delayLeave } = transition;
|
|
7088
7268
|
const performLeave = () => {
|
|
7269
|
+
const wasLeaving = el._isLeaving || !!el[leaveCbKey];
|
|
7089
7270
|
if (el._isLeaving && force) el[leaveCbKey](true);
|
|
7090
|
-
|
|
7271
|
+
if (force && transition.persisted && !wasLeaving) remove();
|
|
7272
|
+
else leave(el, performRemove);
|
|
7091
7273
|
};
|
|
7092
7274
|
if (delayLeave) delayLeave(el, performRemove, performLeave);
|
|
7093
7275
|
else performLeave();
|
|
@@ -7103,7 +7285,7 @@ function isVaporComponent(type) {
|
|
|
7103
7285
|
/**
|
|
7104
7286
|
* shared between vdom and vapor
|
|
7105
7287
|
*/
|
|
7106
|
-
function getInheritedScopeIds(vnode, parentComponent) {
|
|
7288
|
+
function getInheritedScopeIds(vnode, parentComponent, includeVaporRootIds = true) {
|
|
7107
7289
|
const inheritedScopeIds = [];
|
|
7108
7290
|
let currentParent = parentComponent;
|
|
7109
7291
|
let currentVNode = vnode;
|
|
@@ -7118,6 +7300,8 @@ function getInheritedScopeIds(vnode, parentComponent) {
|
|
|
7118
7300
|
currentParent = currentParent.parent;
|
|
7119
7301
|
} else break;
|
|
7120
7302
|
}
|
|
7303
|
+
const vaporScopeIds = includeVaporRootIds && currentVNode.vaporScopeIds;
|
|
7304
|
+
if (vaporScopeIds) inheritedScopeIds.push(...vaporScopeIds);
|
|
7121
7305
|
return inheritedScopeIds;
|
|
7122
7306
|
}
|
|
7123
7307
|
function resolveAsyncComponentPlaceholder(anchorVnode) {
|
|
@@ -7136,7 +7320,7 @@ const Suspense = {
|
|
|
7136
7320
|
process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals) {
|
|
7137
7321
|
if (n1 == null) mountSuspense(n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals);
|
|
7138
7322
|
else {
|
|
7139
|
-
if (parentSuspense && parentSuspense.deps > 0 && !n1.suspense.isInFallback) {
|
|
7323
|
+
if (parentSuspense && parentSuspense.deps > 0 && !n1.suspense.isInFallback && !parentSuspense.isHydrating) {
|
|
7140
7324
|
n2.suspense = n1.suspense;
|
|
7141
7325
|
n2.suspense.vnode = n2;
|
|
7142
7326
|
n2.el = n1.el;
|
|
@@ -7174,10 +7358,12 @@ function patchSuspense(n1, n2, container, anchor, parentComponent, namespace, sl
|
|
|
7174
7358
|
if (pendingBranch) {
|
|
7175
7359
|
suspense.pendingBranch = newBranch;
|
|
7176
7360
|
if (isSameVNodeType(pendingBranch, newBranch)) {
|
|
7177
|
-
|
|
7361
|
+
suspense.deps++;
|
|
7362
|
+
patch(pendingBranch, newBranch, isHydrating ? container : suspense.hiddenContainer, null, parentComponent, suspense, namespace, slotScopeIds, optimized);
|
|
7363
|
+
suspense.deps--;
|
|
7178
7364
|
if (suspense.deps <= 0) suspense.resolve();
|
|
7179
7365
|
else if (isInFallback) {
|
|
7180
|
-
if (!isHydrating) {
|
|
7366
|
+
if (!isHydrating && !suspense.isFallbackMountPending) {
|
|
7181
7367
|
patch(activeBranch, newFallback, container, anchor, parentComponent, null, namespace, slotScopeIds, optimized);
|
|
7182
7368
|
setActiveBranch(suspense, newFallback);
|
|
7183
7369
|
}
|
|
@@ -7189,12 +7375,16 @@ function patchSuspense(n1, n2, container, anchor, parentComponent, namespace, sl
|
|
|
7189
7375
|
suspense.activeBranch = pendingBranch;
|
|
7190
7376
|
} else unmount(pendingBranch, parentComponent, suspense);
|
|
7191
7377
|
suspense.deps = 0;
|
|
7378
|
+
for (let i = 0; i < suspense.effects.length; i++) {
|
|
7379
|
+
const effect = suspense.effects[i];
|
|
7380
|
+
if (effect.flags & 8) queuePostFlushCb(effect);
|
|
7381
|
+
}
|
|
7192
7382
|
suspense.effects.length = 0;
|
|
7193
7383
|
suspense.hiddenContainer = createElement("div");
|
|
7194
7384
|
if (isInFallback) {
|
|
7195
7385
|
patch(null, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, namespace, slotScopeIds, optimized);
|
|
7196
7386
|
if (suspense.deps <= 0) suspense.resolve();
|
|
7197
|
-
else {
|
|
7387
|
+
else if (!suspense.isFallbackMountPending) {
|
|
7198
7388
|
patch(activeBranch, newFallback, container, anchor, parentComponent, null, namespace, slotScopeIds, optimized);
|
|
7199
7389
|
setActiveBranch(suspense, newFallback);
|
|
7200
7390
|
}
|
|
@@ -7287,7 +7477,7 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
|
|
|
7287
7477
|
let hasUnresolvedAncestor = false;
|
|
7288
7478
|
while (parent) {
|
|
7289
7479
|
if (parent.pendingBranch) {
|
|
7290
|
-
parent.effects.push(
|
|
7480
|
+
for (let i = 0; i < effects.length; i++) parent.effects.push(effects[i]);
|
|
7291
7481
|
hasUnresolvedAncestor = true;
|
|
7292
7482
|
break;
|
|
7293
7483
|
}
|
|
@@ -7297,6 +7487,7 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
|
|
|
7297
7487
|
suspense.effects = [];
|
|
7298
7488
|
if (isSuspensible) {
|
|
7299
7489
|
if (parentSuspense && parentSuspense.pendingBranch && parentSuspenseId === parentSuspense.pendingId) {
|
|
7490
|
+
parentSuspenseId = void 0;
|
|
7300
7491
|
parentSuspense.deps--;
|
|
7301
7492
|
if (parentSuspense.deps === 0 && !sync) parentSuspense.resolve();
|
|
7302
7493
|
}
|
|
@@ -7311,8 +7502,9 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
|
|
|
7311
7502
|
const mountFallback = () => {
|
|
7312
7503
|
suspense.isFallbackMountPending = false;
|
|
7313
7504
|
if (!suspense.isInFallback) return;
|
|
7314
|
-
|
|
7315
|
-
|
|
7505
|
+
const latestFallback = suspense.vnode.ssFallback;
|
|
7506
|
+
patch(null, latestFallback, container, anchor, parentComponent, null, namespace, slotScopeIds, optimized);
|
|
7507
|
+
setActiveBranch(suspense, latestFallback);
|
|
7316
7508
|
};
|
|
7317
7509
|
const delayEnter = fallbackVNode.transition && fallbackVNode.transition.mode === "out-in";
|
|
7318
7510
|
if (delayEnter) {
|
|
@@ -7333,11 +7525,16 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
|
|
|
7333
7525
|
registerDep(instance, onResolve) {
|
|
7334
7526
|
const isInPendingSuspense = !!suspense.pendingBranch;
|
|
7335
7527
|
if (isInPendingSuspense) suspense.deps++;
|
|
7528
|
+
const hydratedEl = instance.vnode && instance.vnode.el;
|
|
7336
7529
|
instance.asyncDep.catch((err) => {
|
|
7337
7530
|
handleError(err, instance, 0);
|
|
7338
7531
|
}).then((asyncSetupResult) => {
|
|
7339
7532
|
if (instance.isUnmounted || suspense.isUnmounted || suspense.pendingId !== instance.suspenseId) return;
|
|
7340
7533
|
setCurrentInstance(null, void 0);
|
|
7534
|
+
if (hydratedEl && !instance.scope.active) {
|
|
7535
|
+
if (isInPendingSuspense && --suspense.deps === 0) suspense.resolve();
|
|
7536
|
+
return;
|
|
7537
|
+
}
|
|
7341
7538
|
instance.asyncResolved = true;
|
|
7342
7539
|
onResolve(asyncSetupResult);
|
|
7343
7540
|
if (isInPendingSuspense && --suspense.deps === 0) suspense.resolve();
|
|
@@ -7384,9 +7581,10 @@ function normalizeSuspenseSlot(s) {
|
|
|
7384
7581
|
return s;
|
|
7385
7582
|
}
|
|
7386
7583
|
function queueEffectWithSuspense(fn, id, suspense) {
|
|
7387
|
-
if (suspense && suspense.pendingBranch)
|
|
7388
|
-
|
|
7389
|
-
|
|
7584
|
+
if (suspense && suspense.pendingBranch) {
|
|
7585
|
+
if (isArray(fn)) suspense.effects.push(...fn);
|
|
7586
|
+
else suspense.effects.push(fn);
|
|
7587
|
+
} else queuePostFlushCb(fn, id);
|
|
7390
7588
|
}
|
|
7391
7589
|
function setActiveBranch(suspense, branch) {
|
|
7392
7590
|
suspense.activeBranch = branch;
|
|
@@ -7589,8 +7787,10 @@ function _createVNode(type, props = null, children = null, patchFlag = 0, dynami
|
|
|
7589
7787
|
if (isVNode(type)) {
|
|
7590
7788
|
const cloned = cloneVNode(type, props, true);
|
|
7591
7789
|
if (children) normalizeChildren(cloned, children);
|
|
7592
|
-
if (isBlockTreeEnabled > 0 && !isBlockNode && currentBlock)
|
|
7593
|
-
|
|
7790
|
+
if (isBlockTreeEnabled > 0 && !isBlockNode && currentBlock) {
|
|
7791
|
+
if (cloned.shapeFlag & 6) currentBlock[currentBlock.indexOf(type)] = cloned;
|
|
7792
|
+
else currentBlock.push(cloned);
|
|
7793
|
+
}
|
|
7594
7794
|
cloned.patchFlag = -2;
|
|
7595
7795
|
return cloned;
|
|
7596
7796
|
}
|
|
@@ -7647,7 +7847,10 @@ function cloneVNode(vnode, extraProps, mergeRef = false, cloneTransition = false
|
|
|
7647
7847
|
ce: vnode.ce,
|
|
7648
7848
|
vi: vnode.vi,
|
|
7649
7849
|
vs: cloneVaporSlotMeta(vnode),
|
|
7650
|
-
vb: vnode.vb
|
|
7850
|
+
vb: vnode.vb,
|
|
7851
|
+
ibu: vnode.ibu,
|
|
7852
|
+
iu: vnode.iu,
|
|
7853
|
+
cacheIndex: vnode.cacheIndex
|
|
7651
7854
|
};
|
|
7652
7855
|
if (transition && cloneTransition) setTransitionHooks(cloned, transition.clone(cloned));
|
|
7653
7856
|
defineLegacyVNodeProperties(cloned);
|
|
@@ -7658,8 +7861,7 @@ function cloneVaporSlotMeta(vnode) {
|
|
|
7658
7861
|
if (!vaporSlot) return vaporSlot;
|
|
7659
7862
|
const cloned = {
|
|
7660
7863
|
slot: vaporSlot.slot,
|
|
7661
|
-
|
|
7662
|
-
outletFallback: vaporSlot.outletFallback
|
|
7864
|
+
outlets: vaporSlot.outlets
|
|
7663
7865
|
};
|
|
7664
7866
|
if (vnode.el) {
|
|
7665
7867
|
cloned.state = vaporSlot.state;
|
|
@@ -7702,25 +7904,28 @@ function normalizeChildren(vnode, children) {
|
|
|
7702
7904
|
const { shapeFlag } = vnode;
|
|
7703
7905
|
if (children == null) children = null;
|
|
7704
7906
|
else if (isArray(children)) type = 16;
|
|
7705
|
-
else if (typeof children === "object")
|
|
7706
|
-
|
|
7707
|
-
|
|
7708
|
-
|
|
7709
|
-
|
|
7710
|
-
|
|
7711
|
-
|
|
7712
|
-
|
|
7713
|
-
|
|
7714
|
-
|
|
7715
|
-
|
|
7716
|
-
|
|
7717
|
-
|
|
7718
|
-
|
|
7719
|
-
|
|
7720
|
-
|
|
7907
|
+
else if (typeof children === "object") {
|
|
7908
|
+
if (shapeFlag & 65) {
|
|
7909
|
+
const slot = children.default;
|
|
7910
|
+
if (slot) {
|
|
7911
|
+
slot._c && (slot._d = false);
|
|
7912
|
+
normalizeChildren(vnode, slot());
|
|
7913
|
+
slot._c && (slot._d = true);
|
|
7914
|
+
}
|
|
7915
|
+
return;
|
|
7916
|
+
} else {
|
|
7917
|
+
type = 32;
|
|
7918
|
+
const slotFlag = children._;
|
|
7919
|
+
if (!slotFlag && !isInternalObject(children)) children._ctx = currentRenderingInstance;
|
|
7920
|
+
else if (slotFlag === 3 && currentRenderingInstance) {
|
|
7921
|
+
if (currentRenderingInstance.slots._ === 1) children._ = 1;
|
|
7922
|
+
else {
|
|
7923
|
+
children._ = 2;
|
|
7924
|
+
vnode.patchFlag |= 1024;
|
|
7925
|
+
}
|
|
7926
|
+
}
|
|
7721
7927
|
}
|
|
7722
|
-
}
|
|
7723
|
-
else if (isFunction(children)) {
|
|
7928
|
+
} else if (isFunction(children)) {
|
|
7724
7929
|
if (shapeFlag & 65) {
|
|
7725
7930
|
normalizeChildren(vnode, { default: children });
|
|
7726
7931
|
return;
|
|
@@ -7797,6 +8002,16 @@ const setCurrentInstance = (instance, scope = instance !== null ? instance.scope
|
|
|
7797
8002
|
simpleSetCurrentInstance(instance);
|
|
7798
8003
|
}
|
|
7799
8004
|
};
|
|
8005
|
+
/**
|
|
8006
|
+
* Restores a snapshot returned by {@link setCurrentInstance}. Unlike calling
|
|
8007
|
+
* `setCurrentInstance(...prev)`, an `undefined` saved scope is restored
|
|
8008
|
+
* verbatim instead of re-triggering the `instance.scope` default.
|
|
8009
|
+
* @internal
|
|
8010
|
+
*/
|
|
8011
|
+
const restoreCurrentInstance = (prev) => {
|
|
8012
|
+
setCurrentScope(prev[1]);
|
|
8013
|
+
simpleSetCurrentInstance(prev[0]);
|
|
8014
|
+
};
|
|
7800
8015
|
const internalOptions = [
|
|
7801
8016
|
"ce",
|
|
7802
8017
|
"type",
|
|
@@ -7822,7 +8037,7 @@ const useInstanceOption = (key, silent = false) => {
|
|
|
7822
8037
|
};
|
|
7823
8038
|
//#endregion
|
|
7824
8039
|
//#region packages/runtime-core/src/component.ts
|
|
7825
|
-
const emptyAppContext =
|
|
8040
|
+
const emptyAppContext = /*@__PURE__*/ createAppContext();
|
|
7826
8041
|
let uid = 0;
|
|
7827
8042
|
function createComponentInstance(vnode, parent, suspense) {
|
|
7828
8043
|
const type = vnode.type;
|
|
@@ -7925,7 +8140,7 @@ function setupStatefulComponent(instance, isSSR) {
|
|
|
7925
8140
|
const setupResult = callWithErrorHandling(setup, instance, 0, [instance.props, setupContext]);
|
|
7926
8141
|
const isAsyncSetup = isPromise(setupResult);
|
|
7927
8142
|
setActiveSub(prevSub);
|
|
7928
|
-
|
|
8143
|
+
restoreCurrentInstance(prev);
|
|
7929
8144
|
if ((isAsyncSetup || instance.sp) && !isAsyncWrapper(instance)) markAsyncBoundary(instance);
|
|
7930
8145
|
if (isAsyncSetup) {
|
|
7931
8146
|
const unsetCurrentInstance = () => {
|
|
@@ -7933,7 +8148,12 @@ function setupStatefulComponent(instance, isSSR) {
|
|
|
7933
8148
|
};
|
|
7934
8149
|
setupResult.then(unsetCurrentInstance, unsetCurrentInstance);
|
|
7935
8150
|
if (isSSR) return setupResult.then((resolvedResult) => {
|
|
7936
|
-
|
|
8151
|
+
setInSSRSetupState(true);
|
|
8152
|
+
try {
|
|
8153
|
+
handleSetupResult(instance, resolvedResult, isSSR);
|
|
8154
|
+
} finally {
|
|
8155
|
+
setInSSRSetupState(false);
|
|
8156
|
+
}
|
|
7937
8157
|
}).catch((e) => {
|
|
7938
8158
|
handleError(e, instance, 0);
|
|
7939
8159
|
});
|
|
@@ -7942,9 +8162,10 @@ function setupStatefulComponent(instance, isSSR) {
|
|
|
7942
8162
|
} else finishComponentSetup(instance, isSSR);
|
|
7943
8163
|
}
|
|
7944
8164
|
function handleSetupResult(instance, setupResult, isSSR) {
|
|
7945
|
-
if (isFunction(setupResult))
|
|
7946
|
-
|
|
7947
|
-
|
|
8165
|
+
if (isFunction(setupResult)) {
|
|
8166
|
+
if (instance.type.__ssrInlineRender) instance.ssrRender = setupResult;
|
|
8167
|
+
else instance.render = setupResult;
|
|
8168
|
+
} else if (isObject(setupResult)) instance.setupState = proxyRefs(setupResult);
|
|
7948
8169
|
finishComponentSetup(instance, isSSR);
|
|
7949
8170
|
}
|
|
7950
8171
|
let compile$1;
|
|
@@ -7988,7 +8209,7 @@ function finishComponentSetup(instance, isSSR, skipOptions) {
|
|
|
7988
8209
|
applyOptions(instance);
|
|
7989
8210
|
} finally {
|
|
7990
8211
|
setActiveSub(prevSub);
|
|
7991
|
-
|
|
8212
|
+
restoreCurrentInstance(prevInstance);
|
|
7992
8213
|
}
|
|
7993
8214
|
}
|
|
7994
8215
|
}
|
|
@@ -8014,14 +8235,13 @@ function getComponentPublicInstance(instance) {
|
|
|
8014
8235
|
if (instance.exposed) return instance.exposeProxy || (instance.exposeProxy = new Proxy(proxyRefs(markRaw(instance.exposed)), {
|
|
8015
8236
|
get(target, key) {
|
|
8016
8237
|
if (key in target) return target[key];
|
|
8017
|
-
else {
|
|
8238
|
+
else if (!instance.vapor) {
|
|
8018
8239
|
const publicPropertiesMap = getPublicPropertiesMap();
|
|
8019
8240
|
if (key in publicPropertiesMap) return publicPropertiesMap[key](instance);
|
|
8020
8241
|
}
|
|
8021
8242
|
},
|
|
8022
8243
|
has(target, key) {
|
|
8023
|
-
|
|
8024
|
-
return key in target || key in publicPropertiesMap;
|
|
8244
|
+
return key in target || !instance.vapor && key in getPublicPropertiesMap();
|
|
8025
8245
|
}
|
|
8026
8246
|
}));
|
|
8027
8247
|
else return instance.proxy;
|
|
@@ -8043,11 +8263,12 @@ function h(type, propsOrChildren, children) {
|
|
|
8043
8263
|
try {
|
|
8044
8264
|
setBlockTracking(-1);
|
|
8045
8265
|
const l = arguments.length;
|
|
8046
|
-
if (l === 2)
|
|
8047
|
-
if (
|
|
8048
|
-
|
|
8049
|
-
|
|
8050
|
-
|
|
8266
|
+
if (l === 2) {
|
|
8267
|
+
if (isObject(propsOrChildren) && !isArray(propsOrChildren)) {
|
|
8268
|
+
if (isVNode(propsOrChildren)) return createVNode(type, null, [propsOrChildren]);
|
|
8269
|
+
return createVNode(type, propsOrChildren);
|
|
8270
|
+
} else return createVNode(type, null, propsOrChildren);
|
|
8271
|
+
} else {
|
|
8051
8272
|
if (l > 3) children = Array.prototype.slice.call(arguments, 2);
|
|
8052
8273
|
else if (l === 3 && isVNode(children)) children = [children];
|
|
8053
8274
|
return createVNode(type, propsOrChildren, children);
|
|
@@ -8058,15 +8279,7 @@ function h(type, propsOrChildren, children) {
|
|
|
8058
8279
|
}
|
|
8059
8280
|
//#endregion
|
|
8060
8281
|
//#region packages/runtime-core/src/customFormatter.ts
|
|
8061
|
-
function initCustomFormatter() {
|
|
8062
|
-
return;
|
|
8063
|
-
function isKeyOfType(Comp, key, type) {
|
|
8064
|
-
const opts = Comp[type];
|
|
8065
|
-
if (isArray(opts) && opts.includes(key) || isObject(opts) && key in opts) return true;
|
|
8066
|
-
if (Comp.extends && isKeyOfType(Comp.extends, key, type)) return true;
|
|
8067
|
-
if (Comp.mixins && Comp.mixins.some((m) => isKeyOfType(m, key, type))) return true;
|
|
8068
|
-
}
|
|
8069
|
-
}
|
|
8282
|
+
function initCustomFormatter() {}
|
|
8070
8283
|
//#endregion
|
|
8071
8284
|
//#region packages/runtime-core/src/helpers/withMemo.ts
|
|
8072
8285
|
function withMemo(memo, render, cache, index) {
|
|
@@ -8086,7 +8299,7 @@ function isMemoSame(cached, memo) {
|
|
|
8086
8299
|
}
|
|
8087
8300
|
//#endregion
|
|
8088
8301
|
//#region packages/runtime-core/src/index.ts
|
|
8089
|
-
const version = "3.6.0-rc.
|
|
8302
|
+
const version = "3.6.0-rc.10";
|
|
8090
8303
|
const warn = NOOP;
|
|
8091
8304
|
/**
|
|
8092
8305
|
* Runtime error messages. Only exposed in dev or esm builds.
|
|
@@ -8108,7 +8321,10 @@ const ssrUtils = {
|
|
|
8108
8321
|
getComponentPublicInstance,
|
|
8109
8322
|
ensureValidVNode,
|
|
8110
8323
|
pushWarningContext,
|
|
8111
|
-
popWarningContext
|
|
8324
|
+
popWarningContext,
|
|
8325
|
+
VaporSlot,
|
|
8326
|
+
rawVaporSlotKey,
|
|
8327
|
+
invokeSlotFallback
|
|
8112
8328
|
};
|
|
8113
8329
|
/**
|
|
8114
8330
|
* @internal only exposed in compat builds
|
|
@@ -8130,13 +8346,13 @@ const DeprecationTypes = DeprecationTypes$1;
|
|
|
8130
8346
|
let policy = void 0;
|
|
8131
8347
|
const tt = typeof window !== "undefined" && window.trustedTypes;
|
|
8132
8348
|
if (tt) try {
|
|
8133
|
-
policy =
|
|
8349
|
+
policy = /*@__PURE__*/ tt.createPolicy("vue", { createHTML: (val) => val });
|
|
8134
8350
|
} catch (e) {}
|
|
8135
8351
|
const unsafeToTrustedHTML = policy ? (val) => policy.createHTML(val) : (val) => val;
|
|
8136
8352
|
const svgNS = "http://www.w3.org/2000/svg";
|
|
8137
8353
|
const mathmlNS = "http://www.w3.org/1998/Math/MathML";
|
|
8138
8354
|
const doc = typeof document !== "undefined" ? document : null;
|
|
8139
|
-
const templateContainer = doc &&
|
|
8355
|
+
const templateContainer = doc && /*@__PURE__*/ doc.createElement("template");
|
|
8140
8356
|
const nodeOps = {
|
|
8141
8357
|
insert: (child, parent, anchor) => {
|
|
8142
8358
|
parent.insertBefore(child, anchor || null);
|
|
@@ -8210,7 +8426,7 @@ const DOMTransitionPropsValidators = {
|
|
|
8210
8426
|
leaveActiveClass: String,
|
|
8211
8427
|
leaveToClass: String
|
|
8212
8428
|
};
|
|
8213
|
-
const TransitionPropsValidators =
|
|
8429
|
+
const TransitionPropsValidators = /*@__PURE__*/ extend({}, BaseTransitionPropsValidators, DOMTransitionPropsValidators);
|
|
8214
8430
|
/**
|
|
8215
8431
|
* Wrap logic that attaches extra properties to Transition in a function
|
|
8216
8432
|
* so that it can be annotated as pure
|
|
@@ -8225,7 +8441,7 @@ const decorate$1 = (t) => {
|
|
|
8225
8441
|
* DOM Transition is a higher-order-component based on the platform-agnostic
|
|
8226
8442
|
* base Transition component, with DOM-specific logic.
|
|
8227
8443
|
*/
|
|
8228
|
-
const Transition =
|
|
8444
|
+
const Transition = /*@__PURE__*/ decorate$1((props, { slots }) => h(BaseTransition, resolveTransitionProps(props), slots));
|
|
8229
8445
|
/**
|
|
8230
8446
|
* #3227 Incoming hooks may be merged into arrays when wrapping Transition
|
|
8231
8447
|
* with custom HOCs.
|
|
@@ -8463,14 +8679,15 @@ const vShow = {
|
|
|
8463
8679
|
},
|
|
8464
8680
|
updated(el, { value, oldValue }, { transition }) {
|
|
8465
8681
|
if (!value === !oldValue) return;
|
|
8466
|
-
if (transition)
|
|
8467
|
-
|
|
8468
|
-
|
|
8469
|
-
|
|
8470
|
-
|
|
8471
|
-
|
|
8472
|
-
|
|
8473
|
-
|
|
8682
|
+
if (transition) {
|
|
8683
|
+
if (value) {
|
|
8684
|
+
transition.beforeEnter(el);
|
|
8685
|
+
setDisplay(el, true);
|
|
8686
|
+
transition.enter(el);
|
|
8687
|
+
} else transition.leave(el, () => {
|
|
8688
|
+
setDisplay(el, false);
|
|
8689
|
+
});
|
|
8690
|
+
} else setDisplay(el, value);
|
|
8474
8691
|
},
|
|
8475
8692
|
beforeUnmount(el, { value }) {
|
|
8476
8693
|
setDisplay(el, value);
|
|
@@ -8501,11 +8718,13 @@ function patchStyle(el, prev, next) {
|
|
|
8501
8718
|
const isCssString = isString(next);
|
|
8502
8719
|
let hasControlledDisplay = false;
|
|
8503
8720
|
if (next && !isCssString) {
|
|
8504
|
-
if (prev)
|
|
8505
|
-
|
|
8506
|
-
|
|
8507
|
-
|
|
8508
|
-
|
|
8721
|
+
if (prev) {
|
|
8722
|
+
if (!isString(prev)) {
|
|
8723
|
+
for (const key in prev) if (next[key] == null) setStyle(style, key, "");
|
|
8724
|
+
} else for (const prevStyle of prev.split(";")) {
|
|
8725
|
+
const key = prevStyle.slice(0, prevStyle.indexOf(":")).trim();
|
|
8726
|
+
if (next[key] == null) setStyle(style, key, "");
|
|
8727
|
+
}
|
|
8509
8728
|
}
|
|
8510
8729
|
for (const key in next) {
|
|
8511
8730
|
if (key === "display") hasControlledDisplay = true;
|
|
@@ -8521,7 +8740,11 @@ function patchStyle(el, prev, next) {
|
|
|
8521
8740
|
style.cssText = next;
|
|
8522
8741
|
hasControlledDisplay = displayRE.test(next);
|
|
8523
8742
|
}
|
|
8524
|
-
} else if (prev)
|
|
8743
|
+
} else if (prev) {
|
|
8744
|
+
const cssVarText = style[CSS_VAR_TEXT];
|
|
8745
|
+
if (cssVarText) style.cssText = cssVarText;
|
|
8746
|
+
else el.removeAttribute("style");
|
|
8747
|
+
}
|
|
8525
8748
|
if (vShowOriginalDisplay in el) {
|
|
8526
8749
|
el[vShowOriginalDisplay] = hasControlledDisplay ? style.display : "";
|
|
8527
8750
|
if (el[vShowHidden]) style.display = "none";
|
|
@@ -8532,8 +8755,10 @@ function setStyle(style, name, rawVal) {
|
|
|
8532
8755
|
if (isArray(rawVal)) rawVal.forEach((v) => setStyle(style, name, v));
|
|
8533
8756
|
else {
|
|
8534
8757
|
const val = rawVal == null ? "" : String(rawVal);
|
|
8535
|
-
if (name.startsWith("--"))
|
|
8536
|
-
|
|
8758
|
+
if (name.startsWith("--")) {
|
|
8759
|
+
if (importantRE.test(val)) style.setProperty(name, val.replace(importantRE, ""), "important");
|
|
8760
|
+
else style.setProperty(name, val);
|
|
8761
|
+
} else {
|
|
8537
8762
|
const prefixed = autoPrefix(style, name);
|
|
8538
8763
|
if (importantRE.test(val)) style.setProperty(hyphenate(prefixed), val.replace(importantRE, ""), "important");
|
|
8539
8764
|
else style[prefixed] = val;
|
|
@@ -8570,15 +8795,16 @@ function shouldPreserveTextareaResizeStyle(el, key, prev, next) {
|
|
|
8570
8795
|
//#region packages/runtime-dom/src/modules/attrs.ts
|
|
8571
8796
|
const xlinkNS = "http://www.w3.org/1999/xlink";
|
|
8572
8797
|
function patchAttr(el, key, value, isSVG, instance, isBoolean = isSpecialBooleanAttr(key)) {
|
|
8573
|
-
if (isSVG && key.startsWith("xlink:"))
|
|
8574
|
-
|
|
8575
|
-
|
|
8798
|
+
if (isSVG && key.startsWith("xlink:")) {
|
|
8799
|
+
if (value == null) el.removeAttributeNS(xlinkNS, key.slice(6, key.length));
|
|
8800
|
+
else el.setAttributeNS(xlinkNS, key, value);
|
|
8801
|
+
} else {
|
|
8576
8802
|
if (compatCoerceAttr(el, key, value, instance)) return;
|
|
8577
8803
|
if (value == null || isBoolean && !includeBooleanAttr(value)) el.removeAttribute(key);
|
|
8578
8804
|
else el.setAttribute(key, isBoolean ? "" : isSymbol(value) ? String(value) : value);
|
|
8579
8805
|
}
|
|
8580
8806
|
}
|
|
8581
|
-
const isEnumeratedAttr =
|
|
8807
|
+
const isEnumeratedAttr = /*@__PURE__*/ makeMap("contenteditable,draggable,spellcheck");
|
|
8582
8808
|
function compatCoerceAttr(el, key, value, instance = null) {
|
|
8583
8809
|
if (isEnumeratedAttr(key)) {
|
|
8584
8810
|
const v2CoercedValue = value === void 0 ? null : value === null || value === false || value === "false" ? "false" : "true";
|
|
@@ -8667,7 +8893,7 @@ function parseEventName(name) {
|
|
|
8667
8893
|
return [name[2] === ":" ? name.slice(3) : hyphenate(name.slice(2)), options];
|
|
8668
8894
|
}
|
|
8669
8895
|
let cachedNow = 0;
|
|
8670
|
-
const p =
|
|
8896
|
+
const p = /*@__PURE__*/ Promise.resolve();
|
|
8671
8897
|
const getNow = () => cachedNow || (p.then(() => cachedNow = 0), cachedNow = Date.now());
|
|
8672
8898
|
function createInvoker(initialValue, instance) {
|
|
8673
8899
|
const invoker = (e) => {
|
|
@@ -8730,7 +8956,7 @@ function shouldSetAsPropForVueCE(el, key) {
|
|
|
8730
8956
|
//#endregion
|
|
8731
8957
|
//#region packages/runtime-dom/src/apiCustomElement.ts
|
|
8732
8958
|
const REMOVAL = {};
|
|
8733
|
-
|
|
8959
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
8734
8960
|
function defineCustomElement(options, extraOptions, _createApp) {
|
|
8735
8961
|
let Comp = /* @__PURE__ */ defineComponent(options, extraOptions);
|
|
8736
8962
|
if (isPlainObject(Comp)) Comp = extend({}, Comp, extraOptions);
|
|
@@ -8779,12 +9005,14 @@ var VueElementBase = class VueElementBase extends BaseClass {
|
|
|
8779
9005
|
this._parent = parent;
|
|
8780
9006
|
break;
|
|
8781
9007
|
}
|
|
8782
|
-
if (!this._instance)
|
|
8783
|
-
|
|
8784
|
-
this._pendingResolve =
|
|
8785
|
-
|
|
8786
|
-
|
|
8787
|
-
|
|
9008
|
+
if (!this._instance) {
|
|
9009
|
+
if (this._resolved) this._mountComponent(this._def);
|
|
9010
|
+
else if (parent && parent._pendingResolve) this._pendingResolve = parent._pendingResolve.then(() => {
|
|
9011
|
+
this._pendingResolve = void 0;
|
|
9012
|
+
if (this.isConnected) return this._resolveDef();
|
|
9013
|
+
});
|
|
9014
|
+
else this._resolveDef();
|
|
9015
|
+
}
|
|
8788
9016
|
}
|
|
8789
9017
|
disconnectedCallback() {
|
|
8790
9018
|
this._connected = false;
|
|
@@ -8818,7 +9046,7 @@ var VueElementBase = class VueElementBase extends BaseClass {
|
|
|
8818
9046
|
* resolve inner component definition (handle possible async component)
|
|
8819
9047
|
*/
|
|
8820
9048
|
_resolveDef() {
|
|
8821
|
-
if (this._pendingResolve) return;
|
|
9049
|
+
if (this._pendingResolve) return this._pendingResolve;
|
|
8822
9050
|
for (let i = 0; i < this.attributes.length; i++) this._setAttr(this.attributes[i].name);
|
|
8823
9051
|
this._ob = new MutationObserver(this._processMutations.bind(this));
|
|
8824
9052
|
this._ob.observe(this, { attributes: true });
|
|
@@ -8847,6 +9075,7 @@ var VueElementBase = class VueElementBase extends BaseClass {
|
|
|
8847
9075
|
this._def = def;
|
|
8848
9076
|
resolve(def);
|
|
8849
9077
|
});
|
|
9078
|
+
return this._pendingResolve;
|
|
8850
9079
|
} else resolve(this._def);
|
|
8851
9080
|
}
|
|
8852
9081
|
_mountComponent(def) {
|
|
@@ -8976,13 +9205,11 @@ var VueElementBase = class VueElementBase extends BaseClass {
|
|
|
8976
9205
|
_renderSlots() {
|
|
8977
9206
|
const outlets = this._getSlots();
|
|
8978
9207
|
const scopeId = this._instance.type.__scopeId;
|
|
8979
|
-
const slotReplacements = /* @__PURE__ */ new Map();
|
|
8980
9208
|
for (let i = 0; i < outlets.length; i++) {
|
|
8981
9209
|
const o = outlets[i];
|
|
8982
9210
|
const slotName = o.getAttribute("name") || "default";
|
|
8983
9211
|
const content = this._slots[slotName];
|
|
8984
9212
|
const parent = o.parentNode;
|
|
8985
|
-
const replacementNodes = [];
|
|
8986
9213
|
if (content) for (const n of content) {
|
|
8987
9214
|
if (scopeId && n.nodeType === 1) {
|
|
8988
9215
|
const id = scopeId + "-s";
|
|
@@ -8992,20 +9219,10 @@ var VueElementBase = class VueElementBase extends BaseClass {
|
|
|
8992
9219
|
while (child = walker.nextNode()) child.setAttribute(id, "");
|
|
8993
9220
|
}
|
|
8994
9221
|
parent.insertBefore(n, o);
|
|
8995
|
-
replacementNodes.push(n);
|
|
8996
|
-
}
|
|
8997
|
-
else while (o.firstChild) {
|
|
8998
|
-
const child = o.firstChild;
|
|
8999
|
-
parent.insertBefore(child, o);
|
|
9000
|
-
replacementNodes.push(child);
|
|
9001
9222
|
}
|
|
9223
|
+
else while (o.firstChild) parent.insertBefore(o.firstChild, o);
|
|
9002
9224
|
parent.removeChild(o);
|
|
9003
|
-
slotReplacements.set(o, {
|
|
9004
|
-
nodes: replacementNodes,
|
|
9005
|
-
usedFallback: !content
|
|
9006
|
-
});
|
|
9007
9225
|
}
|
|
9008
|
-
this._updateSlotNodes(slotReplacements);
|
|
9009
9226
|
}
|
|
9010
9227
|
/**
|
|
9011
9228
|
* @internal
|
|
@@ -9044,7 +9261,7 @@ var VueElementBase = class VueElementBase extends BaseClass {
|
|
|
9044
9261
|
* @internal
|
|
9045
9262
|
*/
|
|
9046
9263
|
_hasShadowRoot() {
|
|
9047
|
-
return this.
|
|
9264
|
+
return this._root !== this;
|
|
9048
9265
|
}
|
|
9049
9266
|
/**
|
|
9050
9267
|
* @internal
|
|
@@ -9077,10 +9294,6 @@ var VueElement = class extends VueElementBase {
|
|
|
9077
9294
|
if (this._instance && this._instance.ce) this._instance.ce = void 0;
|
|
9078
9295
|
this._app = this._instance = null;
|
|
9079
9296
|
}
|
|
9080
|
-
/**
|
|
9081
|
-
* Only called when shadowRoot is false
|
|
9082
|
-
*/
|
|
9083
|
-
_updateSlotNodes(replacements) {}
|
|
9084
9297
|
_createVNode() {
|
|
9085
9298
|
const baseProps = {};
|
|
9086
9299
|
if (!this.shadowRoot) baseProps.onVnodeMounted = baseProps.onVnodeUpdated = this._renderSlots.bind(this);
|
|
@@ -9136,7 +9349,7 @@ const decorate = (t) => {
|
|
|
9136
9349
|
};
|
|
9137
9350
|
const TransitionGroup = /* @__PURE__ */ decorate({
|
|
9138
9351
|
name: "TransitionGroup",
|
|
9139
|
-
props:
|
|
9352
|
+
props: /*@__PURE__*/ extend({}, TransitionPropsValidators, {
|
|
9140
9353
|
tag: String,
|
|
9141
9354
|
moveClass: String
|
|
9142
9355
|
}),
|
|
@@ -9267,13 +9480,22 @@ function onCompositionEnd(e) {
|
|
|
9267
9480
|
}
|
|
9268
9481
|
}
|
|
9269
9482
|
const assignKey = Symbol("_assign");
|
|
9483
|
+
const initialValueKey = Symbol("_initialValue");
|
|
9270
9484
|
const vModelText = {
|
|
9271
9485
|
created(el, { modifiers: { lazy, trim, number } }, vnode) {
|
|
9486
|
+
if (el.parentNode) {
|
|
9487
|
+
if (el.type === "text") el[initialValueKey] = el.defaultValue.replace(/[\r\n]/g, "");
|
|
9488
|
+
else if (el.type === "textarea") el[initialValueKey] = el.defaultValue.replace(/\r\n?/g, "\n");
|
|
9489
|
+
}
|
|
9272
9490
|
el[assignKey] = getModelAssigner(vnode);
|
|
9273
9491
|
vModelTextInit(el, trim, number || !!(vnode.props && vnode.props.type === "number"), lazy);
|
|
9274
9492
|
},
|
|
9275
|
-
mounted(el, { value }) {
|
|
9276
|
-
|
|
9493
|
+
mounted(el, { value, modifiers: { trim, number } }) {
|
|
9494
|
+
const newValue = value == null ? "" : value;
|
|
9495
|
+
const initialValue = el[initialValueKey];
|
|
9496
|
+
delete el[initialValueKey];
|
|
9497
|
+
if (initialValue !== void 0 && (el.type === "text" || el.type === "textarea") && el.value !== initialValue) el[assignKey](castValue(el.value, trim, number));
|
|
9498
|
+
else el.value = newValue;
|
|
9277
9499
|
},
|
|
9278
9500
|
beforeUpdate(el, { value, oldValue, modifiers: { lazy, trim, number } }, vnode) {
|
|
9279
9501
|
el[assignKey] = getModelAssigner(vnode);
|
|
@@ -9408,37 +9630,58 @@ const vModelSelectInit = (el, value, number, set) => {
|
|
|
9408
9630
|
el._modelValue = value;
|
|
9409
9631
|
addEventListener(el, "change", () => {
|
|
9410
9632
|
const selectedVal = Array.prototype.filter.call(el.options, (o) => o.selected).map((o) => number ? looseToNumber(getValue(o)) : getValue(o));
|
|
9411
|
-
|
|
9412
|
-
el.
|
|
9413
|
-
|
|
9414
|
-
|
|
9415
|
-
|
|
9633
|
+
const multiple = el.multiple;
|
|
9634
|
+
const assignedValue = multiple ? isSet(el._modelValue) ? new Set(selectedVal) : selectedVal : selectedVal[0];
|
|
9635
|
+
const pending = el._pendingValue = [multiple, multiple ? isArray(assignedValue) ? selectedVal.slice() : selectedVal : assignedValue];
|
|
9636
|
+
try {
|
|
9637
|
+
(set || el[assignKey])(assignedValue);
|
|
9638
|
+
} finally {
|
|
9639
|
+
nextTick(() => {
|
|
9640
|
+
if (el._pendingValue === pending) el._pendingValue = void 0;
|
|
9641
|
+
});
|
|
9642
|
+
}
|
|
9416
9643
|
});
|
|
9417
9644
|
};
|
|
9645
|
+
function isSameSelectValue(value, assignedValue, multiple) {
|
|
9646
|
+
if (!multiple) return looseEqual(value, assignedValue);
|
|
9647
|
+
if (isArray(value)) return looseEqual(value, assignedValue);
|
|
9648
|
+
if (isSet(value)) {
|
|
9649
|
+
if (value.size !== assignedValue.length) return false;
|
|
9650
|
+
for (const item of assignedValue) if (!value.has(item)) return false;
|
|
9651
|
+
return true;
|
|
9652
|
+
}
|
|
9653
|
+
return false;
|
|
9654
|
+
}
|
|
9418
9655
|
/**
|
|
9419
9656
|
* @internal
|
|
9420
9657
|
*/
|
|
9421
9658
|
const vModelSetSelected = (el, value) => {
|
|
9422
9659
|
el._modelValue = value;
|
|
9423
|
-
|
|
9660
|
+
const pending = el._pendingValue;
|
|
9661
|
+
el._pendingValue = void 0;
|
|
9662
|
+
if (pending && pending[0] === el.multiple && isSameSelectValue(value, pending[1], pending[0])) return;
|
|
9663
|
+
setSelected(el, value);
|
|
9664
|
+
};
|
|
9665
|
+
function setSelected(el, value) {
|
|
9424
9666
|
const isMultiple = el.multiple;
|
|
9425
9667
|
const isArrayValue = isArray(value);
|
|
9426
9668
|
if (isMultiple && !isArrayValue && !isSet(value)) return;
|
|
9427
9669
|
for (let i = 0, l = el.options.length; i < l; i++) {
|
|
9428
9670
|
const option = el.options[i];
|
|
9429
9671
|
const optionValue = getValue(option);
|
|
9430
|
-
if (isMultiple)
|
|
9431
|
-
|
|
9432
|
-
|
|
9433
|
-
|
|
9434
|
-
|
|
9435
|
-
|
|
9672
|
+
if (isMultiple) {
|
|
9673
|
+
if (isArrayValue) {
|
|
9674
|
+
const optionType = typeof optionValue;
|
|
9675
|
+
if (optionType === "string" || optionType === "number") option.selected = value.some((v) => String(v) === String(optionValue));
|
|
9676
|
+
else option.selected = looseIndexOf(value, optionValue) > -1;
|
|
9677
|
+
} else option.selected = value.has(optionValue);
|
|
9678
|
+
} else if (looseEqual(getValue(option), value)) {
|
|
9436
9679
|
if (el.selectedIndex !== i) el.selectedIndex = i;
|
|
9437
9680
|
return;
|
|
9438
9681
|
}
|
|
9439
9682
|
}
|
|
9440
9683
|
if (!isMultiple && el.selectedIndex !== -1) el.selectedIndex = -1;
|
|
9441
|
-
}
|
|
9684
|
+
}
|
|
9442
9685
|
/**
|
|
9443
9686
|
* @internal retrieve raw value set via :value bindings
|
|
9444
9687
|
*/
|
|
@@ -9751,7 +9994,7 @@ var src_exports = /* @__PURE__ */ __exportAll({
|
|
|
9751
9994
|
withModifiers: () => withModifiers,
|
|
9752
9995
|
withScopeId: () => withScopeId
|
|
9753
9996
|
});
|
|
9754
|
-
const rendererOptions =
|
|
9997
|
+
const rendererOptions = /*@__PURE__*/ extend({ patchProp }, nodeOps);
|
|
9755
9998
|
let renderer;
|
|
9756
9999
|
let enabledHydration = false;
|
|
9757
10000
|
function ensureRenderer() {
|
|
@@ -10084,7 +10327,7 @@ function convertToBlock(node, { helper, removeHelper, inSSR }) {
|
|
|
10084
10327
|
//#endregion
|
|
10085
10328
|
//#region node_modules/.pnpm/entities@7.0.1/node_modules/entities/dist/esm/decode-codepoint.js
|
|
10086
10329
|
var _a;
|
|
10087
|
-
const decodeMap = new Map([
|
|
10330
|
+
const decodeMap = /* @__PURE__ */ new Map([
|
|
10088
10331
|
[0, 65533],
|
|
10089
10332
|
[128, 8364],
|
|
10090
10333
|
[130, 8218],
|
|
@@ -10152,7 +10395,7 @@ function decodeBase64(input) {
|
|
|
10152
10395
|
}
|
|
10153
10396
|
//#endregion
|
|
10154
10397
|
//#region node_modules/.pnpm/entities@7.0.1/node_modules/entities/dist/esm/generated/decode-data-html.js
|
|
10155
|
-
const htmlDecodeTree = /* @__PURE__ */ decodeBase64("QR08ALkAAgH6AYsDNQR2BO0EPgXZBQEGLAbdBxMISQrvCmQLfQurDKQNLw4fD4YPpA+6D/IPAAAAAAAAAAAAAAAAKhBMEY8TmxUWF2EYLBkxGuAa3RsJHDscWR8YIC8jSCSIJcMl6ie3Ku8rEC0CLjoupS7kLgAIRU1hYmNmZ2xtbm9wcnN0dVQAWgBeAGUAaQBzAHcAfgCBAIQAhwCSAJoAoACsALMAbABpAGcAO4DGAMZAUAA7gCYAJkBjAHUAdABlADuAwQDBQHIiZXZlAAJhAAFpeW0AcgByAGMAO4DCAMJAEGRyAADgNdgE3XIAYQB2AGUAO4DAAMBA8CFoYZFj4SFjcgBhZAAAoFMqAAFncIsAjgBvAG4ABGFmAADgNdg43fAlbHlGdW5jdGlvbgCgYSBpAG4AZwA7gMUAxUAAAWNzpACoAHIAAOA12Jzc6SFnbgCgVCJpAGwAZABlADuAwwDDQG0AbAA7gMQAxEAABGFjZWZvcnN1xQDYANoA7QDxAPYA+QD8AAABY3LJAM8AayNzbGFzaAAAoBYidgHTANUAAKDnKmUAZAAAoAYjeQARZIABY3J0AOAA5QDrAGEidXNlAACgNSLuI291bGxpcwCgLCFhAJJjcgAA4DXYBd1wAGYAAOA12Dnd5SF2ZdhiYwDyAOoAbSJwZXEAAKBOIgAHSE9hY2RlZmhpbG9yc3UXARoBHwE6AVIBVQFiAWQBZgGCAakB6QHtAfIBYwB5ACdkUABZADuAqQCpQIABY3B5ACUBKAE1AfUhdGUGYWmg0iJ0KGFsRGlmZmVyZW50aWFsRAAAoEUhbCJleXMAAKAtIQACYWVpb0EBRAFKAU0B8iFvbgxhZABpAGwAO4DHAMdAcgBjAAhhbiJpbnQAAKAwIm8AdAAKYQABZG5ZAV0BaSJsbGEAuGB0I2VyRG90ALdg8gA5AWkAp2NyImNsZQAAAkRNUFRwAXQBeQF9AW8AdAAAoJkiaSJudXMAAKCWIuwhdXMAoJUiaSJtZXMAAKCXIm8AAAFjc4cBlAFrKndpc2VDb250b3VySW50ZWdyYWwAAKAyImUjQ3VybHkAAAFEUZwBpAFvJXVibGVRdW90ZQAAoB0gdSJvdGUAAKAZIAACbG5wdbABtgHNAdgBbwBuAGWgNyIAoHQqgAFnaXQAvAHBAcUB8iJ1ZW50AKBhIm4AdAAAoC8i7yV1ckludGVncmFsAKAuIgABZnLRAdMBAKACIe8iZHVjdACgECJuLnRlckNsb2Nrd2lzZUNvbnRvdXJJbnRlZ3JhbAAAoDMi7yFzcwCgLypjAHIAAOA12J7ccABDoNMiYQBwAACgTSKABURKU1phY2VmaW9zAAsCEgIVAhgCGwIsAjQCOQI9AnMCfwNvoEUh9CJyYWhkAKARKWMAeQACZGMAeQAFZGMAeQAPZIABZ3JzACECJQIoAuchZXIAoCEgcgAAoKEhaAB2AACg5CoAAWF5MAIzAvIhb24OYRRkbAB0oAciYQCUY3IAAOA12AfdAAFhZkECawIAAWNtRQJnAvIjaXRpY2FsAAJBREdUUAJUAl8CYwJjInV0ZQC0YG8AdAFZAloC2WJiJGxlQWN1dGUA3WJyImF2ZQBgYGkibGRlANxi7yFuZACgxCJmJWVyZW50aWFsRAAAoEYhcAR9AgAAAAAAAIECjgIAABoDZgAA4DXYO91EoagAhQKJAm8AdAAAoNwgcSJ1YWwAAKBQIuIhbGUAA0NETFJVVpkCqAK1Au8C/wIRA28AbgB0AG8AdQByAEkAbgB0AGUAZwByAGEA7ADEAW8AdAKvAgAAAACwAqhgbiNBcnJvdwAAoNMhAAFlb7kC0AJmAHQAgAFBUlQAwQLGAs0CciJyb3cAAKDQIekkZ2h0QXJyb3cAoNQhZQDlACsCbgBnAAABTFLWAugC5SFmdAABQVLcAuECciJyb3cAAKD4J+kkZ2h0QXJyb3cAoPon6SRnaHRBcnJvdwCg+SdpImdodAAAAUFU9gL7AnIicm93AACg0iFlAGUAAKCoInAAQQIGAwAAAAALA3Iicm93AACg0SFvJHduQXJyb3cAAKDVIWUlcnRpY2FsQmFyAACgJSJuAAADQUJMUlRhJAM2AzoDWgNxA3oDciJyb3cAAKGTIUJVLAMwA2EAcgAAoBMpcCNBcnJvdwAAoPUhciJldmUAEWPlIWZ00gJDAwAASwMAAFIDaSVnaHRWZWN0b3IAAKBQKWUkZVZlY3RvcgAAoF4p5SJjdG9yQqC9IWEAcgAAoFYpaSJnaHQA1AFiAwAAaQNlJGVWZWN0b3IAAKBfKeUiY3RvckKgwSFhAHIAAKBXKWUAZQBBoKQiciJyb3cAAKCnIXIAcgBvAPcAtAIAAWN0gwOHA3IA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YwAAoN8i4SFycnCgtiEAoD0pgKIqImJjZG9zACsVMBU6FT4VQRVyImNhcAAAoEgqAAFhdTQVNxVwAACgRipwAACgSipvAHQAAKCNInIAAKBFKgDgKiIA/gACYWxydksVURVuFXMVcgByAG2gtyEAoDwpeQCAAWV2dwBYFWUVaRVxAHACXxUAAAAAYxVyAGUA4wAXFXUA4wAZFWUAZQAAoM4iZSJkZ2UAAKDPImUAbgA7gKQApEBlI2Fycm93AAABbHJ7FX8V5SFmdACgtiFpImdodAAAoLchZQDkAG0VAAFjaYsVkRVvAG4AaQBuAPQAkwFuAHQAAKAxImwiY3R5AACgLSOACUFIYWJjZGVmaGlqbG9yc3R1d3oAuBW7Fb8V1RXgFegV+RUKFhUWHxZUFlcWZRbFFtsW7xb7FgUXChdyAPIAtAJhAHIAAKBlKQACZ2xyc8YVyhXOFdAV5yFlcgCgICDlIXRoAKA4IfIA9QxoAHagECAAoKMiawHZFd4VYSJyb3cAAKAPKWEA4wBfAgABYXnkFecV8iFvbg9hNGQAoUYhYW/tFfQVAAFnciEC8RVyAACgyiF0InNlcQAAoHcqgAFnbG0A/xUCFgUWO4CwALBAdABhALRjcCJ0eXYAAKCxKQABaXIOFhIW8yFodACgfykA4DXYId1hAHIAAAFschsWHRYAoMMhAKDCIYACYWVnc3YAKBauAjYWOhY+Fm0AAKHEIm9zLhY0Fm4AZABzoMQi9SFpdACgZiZhIm1tYQDdY2kAbgAAoPIiAKH3AGlvQxZRFmQAZQAAgfcAO29KFksW90BuI3RpbWVzAACgxyJuAPgAUBZjAHkAUmRjAG8CXhYAAAAAYhZyAG4AAKAeI28AcAAAoA0jgAJscHR1dwBuFnEWdRaSFp4W7CFhciRgZgAA4DXYVd0AotkCZW1wc30WhBaJFo0WcQBkoFAibwB0AACgUSJpIm51cwAAoDgi7CF1cwCgFCLxInVhcmUAoKEiYgBsAGUAYgBhAHIAdwBlAGQAZwDlANcAbgCAAWFkaAClFqoWtBZyAHIAbwD3APUMbwB3AG4AYQByAHIAbwB3APMA8xVhI3Jwb29uAAABbHK8FsAWZQBmAPQAHBZpAGcAaAD0AB4WYgHJFs8WawBhAHIAbwD3AJILbwLUFgAAAADYFnIAbgAAoB8jbwBwAACgDCOAAWNvdADhFukW7BYAAXJ55RboFgDgNdi53FVkbAAAoPYp8iFvaxFhAAFkcvMW9xZvAHQAAKDxImkA5qC/JVsSAAFhaP8WAhdyAPIANQNhAPIA1wvhIm5nbGUAoKYpAAFjaQ4XEBd5AF9k5yJyYXJyAKD/JwAJRGFjZGVmZ2xtbm9wcXJzdHV4MRc4F0YXWxcyBF4XaRd5F40XrBe0F78X2RcVGCEYLRg1GEAYAAFEbzUXgRZvAPQA+BUAAWNzPBdCF3UAdABlADuA6QDpQPQhZXIAoG4qAAJhaW95TRdQF1YXWhfyIW9uG2FyAGOgViI7gOoA6kDsIW9uAKBVIk1kbwB0ABdhAAFEcmIXZhdvAHQAAKBSIgDgNdgi3XKhmipuF3QXYQB2AGUAO4DoAOhAZKCWKm8AdAAAoJgqgKGZKmlscwCAF4UXhxfuInRlcnMAoOcjAKATIWSglSpvAHQAAKCXKoABYXBzAJMXlheiF2MAcgATYXQAeQBzogUinxcAAAAAoRdlAHQAAKAFInAAMaADIDMBqRerFwCgBCAAoAUgAAFnc7AXsRdLYXAAAKACIAABZ3C4F7sXbwBuABlhZgAA4DXYVt2AAWFscwDFF8sXzxdyAHOg1SJsAACg4yl1AHMAAKBxKmkAAKG1A2x21RfYF28AbgC1Y/VjAAJjc3V24BfoF/0XEBgAAWlv5BdWF3IAYwAAoFYiaQLuFwAAAADwF+0ADQThIW50AAFnbPUX+Rd0AHIAAKCWKuUhc3MAoJUqgAFhZWkAAxgGGAoYbABzAD1gcwB0AACgXyJ2AESgYSJEAACgeCrwImFyc2wAoOUpAAFEYRkYHRhvAHQAAKBTInIAcgAAoHEpgAFjZGkAJxgqGO0XcgAAoC8hbwD0AIwCAAFhaDEYMhi3YzuA8ADwQAABbXI5GD0YbAA7gOsA60BvAACgrCCAAWNpcABGGEgYSxhsACFgcwD0ACwEAAFlb08YVxhjAHQAYQB0AGkAbwDuABoEbgBlAG4AdABpAGEAbADlADME4Ql1GAAAgRgAAIMYiBgAAAAAoRilGAAAqhgAALsYvhjRGAAA1xgnGWwAbABpAG4AZwBkAG8AdABzAGUA8QBlF3kARGRtImFsZQAAoEAmgAFpbHIAjRiRGJ0Y7CFpZwCgA/tpApcYAAAAAJoYZwAAoAD7aQBnAACgBPsA4DXYI93sIWlnAKAB++whaWcA4GYAagCAAWFsdACvGLIYthh0AACgbSZpAGcAAKAC+24AcwAAoLElbwBmAJJh8AHCGAAAxhhmAADgNdhX3QABYWvJGMwYbADsAGsEdqDUIgCg2SphI3J0aW50AACgDSoAAWFv2hgiGQABY3PeGB8ZsQPnGP0YBRkSGRUZAAAdGbID7xjyGPQY9xj5GAAA+xg7gL0AvUAAoFMhO4C8ALxAAKBVIQCgWSEAoFshswEBGQAAAxkAoFQhAKBWIbQCCxkOGQAAAAAQGTuAvgC+QACgVyEAoFwhNQAAoFghtgEZGQAAGxkAoFohAKBdITgAAKBeIWwAAKBEIHcAbgAAoCIjYwByAADgNdi73IAIRWFiY2RlZmdpamxub3JzdHYARhlKGVoZXhlmGWkZkhmWGZkZnRmgGa0ZxhnLGc8Z4BkjGmygZyIAoIwqgAFjbXAAUBlTGVgZ9SF0ZfVhbQBhAOSgswM6FgCghipyImV2ZQAfYQABaXliGWUZcgBjAB1hM2RvAHQAIWGAoWUibHFzAMYEcBl6GfGhZSLOBAAAdhlsAGEAbgD0AN8EgKF+KmNkbACBGYQZjBljAACgqSpvAHQAb6CAKmyggioAoIQqZeDbIgD+cwAAoJQqcgAA4DXYJN3noGsirATtIWVsAKA3IWMAeQBTZIChdyJFYWoApxmpGasZAKCSKgCgpSoAoKQqAAJFYWVztBm2Gb0ZwhkAoGkicABwoIoq8iFveACgiipxoIgq8aCIKrUZaQBtAACg5yJwAGYAAOA12FjdYQB2AOUAYwIAAWNp0xnWGXIAAKAKIW0AAKFzImVs3BneGQCgjioAoJAqAIM+ADtjZGxxco0E6xn0GfgZ/BkBGgABY2nvGfEZAKCnKnIAAKB6Km8AdAAAoNci0CFhcgCglSl1ImVzdAAAoHwqgAJhZGVscwAKGvQZFhrVBCAa8AEPGgAAFBpwAHIAbwD4AFkZcgAAoHgpcQAAAWxxxAQbGmwAZQBzAPMASRlpAO0A5AQAAWVuJxouGnIjdG5lcXEAAOBpIgD+xQAsGgAFQWFiY2Vma29zeUAaQxpmGmoabRqDGocalhrCGtMacgDyAMwCAAJpbG1yShpOGlAaVBpyAHMA8ABxD2YAvWBpAGwA9AASBQABZHJYGlsaYwB5AEpkAKGUIWN3YBpkGmkAcgAAoEgpAKCtIWEAcgAAoA8h6SFyYyVhgAFhbHIAcxp7Gn8a8iF0c3WgZSZpAHQAAKBlJuwhaXAAoCYg4yFvbgCguSJyAADgNdgl3XMAAAFld4wakRphInJvdwAAoCUpYSJyb3cAAKAmKYACYW1vcHIAnxqjGqcauhq+GnIAcgAAoP8h9CFodACgOyJrAAABbHKsGrMaZSRmdGFycm93AACgqSHpJGdodGFycm93AKCqIWYAAOA12Fnd4iFhcgCgFSCAAWNsdADIGswa0BpyAADgNdi93GEAcwDoAGka8iFvaydhAAFicNca2xr1IWxsAKBDIOghZW4AoBAg4Qr2GgAA/RoAAAgbExsaGwAAIRs7GwAAAAA+G2IbmRuVG6sbAACyG80b0htjAHUAdABlADuA7QDtQAChYyBpeQEbBhtyAGMAO4DuAO5AOGQAAWN4CxsNG3kANWRjAGwAO4ChAKFAAAFmcssCFhsA4DXYJt1yAGEAdgBlADuA7ADsQIChSCFpbm8AJxsyGzYbAAFpbisbLxtuAHQAAKAMKnQAAKAtIuYhaW4AoNwpdABhAACgKSHsIWlnM2GAAWFvcABDG1sbXhuAAWNndABJG0sbWRtyACthgAFlbHAAcQVRG1UbaQBuAOUAyAVhAHIA9AByBWgAMWFmAACgtyJlAGQAtWEAoggiY2ZvdGkbbRt1G3kb4SFyZQCgBSFpAG4AdKAeImkAZQAAoN0pZABvAPQAWxsAoisiY2VscIEbhRuPG5QbYQBsAACguiIAAWdyiRuNG2UAcgDzACMQ4wCCG2EicmhrAACgFyryIW9kAKA8KgACY2dwdJ8boRukG6gbeQBRZG8AbgAvYWYAAOA12FrdYQC5Y3UAZQBzAHQAO4C/AL9AAAFjabUbuRtyAADgNdi+3G4AAKIIIkVkc3bCG8QbyBvQAwCg+SJvAHQAAKD1Inag9CIAoPMiaaBiIOwhZGUpYesB1hsAANkbYwB5AFZkbAA7gO8A70AAA2NmbW9zdeYb7hvyG/Ub+hsFHAABaXnqG+0bcgBjADVhOWRyAADgNdgn3eEhdGg3YnAAZgAA4DXYW93jAf8bAAADHHIAAOA12L/c8iFjeVhk6yFjeVRkAARhY2ZnaGpvcxUcGhwiHCYcKhwtHDAcNRzwIXBhdqC6A/BjAAFleR4cIRzkIWls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ZmdobG1vcHJzdHV3CiwNLBEsHSwnLDEsQCxLLFIsYix6LIQsjyzLLOgs7Sz/LAotcgDyAAkDYQByAACgYykAAWNyFSwbLHUAdABlADuA+gD6QPIACQ1yAOMBIywAACUseQBeZHYAZQBtYQABaXkrLDAscgBjADuA+wD7QENkgAFhYmgANyw6LD0scgDyANEO7CFhY3FhYQDyAOAOAAFpckQsSCzzIWh0AKB+KQDgNdgy3XIAYQB2AGUAO4D5APlAYQFWLF8scgAAAWxyWixcLACgvyEAoL4hbABrAACggCUAAWN0Zix2LG8CbCwAAAAAcyxyAG4AZaAcI3IAAKAcI28AcAAAoA8jcgBpAACg+CUAAWFsfiyBLGMAcgBrYTuAqACoQAABZ3CILIssbwBuAHNhZgAA4DXYZt0AA2FkaGxzdZksniynLLgsuyzFLHIAcgBvAPcACQ1vAHcAbgBhAHIAcgBvAPcA2A5hI3Jwb29uAAABbHKvLLMsZQBmAPQAWyxpAGcAaAD0AF0sdQDzAKYOaQAAocUDaGzBLMIs0mNvAG4AxWPwI2Fycm93cwCgyCGAAWNpdADRLOEs5CxvAtcsAAAAAN4scgBuAGWgHSNyAACgHSNvAHAAAKAOI24AZwBvYXIAaQAAoPklYwByAADgNdjK3IABZGlyAPMs9yz6LG8AdAAAoPAi7CFkZWlhaQBmoLUlAKC0JQABYW0DLQYtcgDyAMosbAA7gPwA/EDhIm5nbGUAoKcpgAdBQkRhY2RlZmxub3Byc3oAJy0qLTAtNC2bLZ0toS2/LcMtxy3TLdgt3C3gLfwtcgDyABADYQByAHag6CoAoOkqYQBzAOgA/gIAAW5yOC08LechcnQAoJwpgANla25wcnN0AJkpSC1NLVQtXi1iLYItYQBwAHAA4QAaHG8AdABoAGkAbgDnAKEXgAFoaXIAoSmzJFotbwBwAPQAdCVooJUh7wD4JgABaXVmLWotZwBtAOEAuygAAWJwbi14LXMjZXRuZXEAceCKIgD+AODLKgD+cyNldG5lcQBx4IsiAP4A4MwqAP4AAWhyhi2KLWUAdADhABIraSNhbmdsZQAAAWxyki2WLeUhZnQAoLIiaSJnaHQAAKCzInkAMmThIXNoAKCiIoABZWxyAKcttC24LWKiKCKuLQAAAACyLWEAcgAAoLsicQAAoFoi7CFpcACg7iIAAWJ0vC1eD2EA8gBfD3IAAOA12DPddAByAOkAlS1zAHUAAAFicM0t0C0A4IIi0iAA4IMi0iBwAGYAAOA12GfdcgBvAPAAWQt0AHIA6QCaLQABY3XkLegtcgAA4DXYy9wAAWJw7C30LW4AAAFFZXUt8S0A4IoiAP5uAAABRWV/LfktAOCLIgD+6SJnemFnAKCaKYADY2Vmb3BycwANLhAuJS4pLiMuLi40LukhcmN1YQABZGkULiEuAAFiZxguHC5hAHIAAKBfKmUAcaAnIgCgWSLlIXJwAKAYIXIAAOA12DTdcABmAADgNdho3WWgQCJhAHQA6ABqD2MAcgAA4DXYzNzjCuQRUC4AAFQuAABYLmIuAAAAAGMubS5wLnQuAAAAAIguki4AAJouJxIqEnQAcgDpAB0ScgAA4DXYNd0AAUFhWy5eLnIA8gDnAnIA8gCTB75jAAFBYWYuaS5yAPIA4AJyAPIAjAdhAPAAeh5pAHMAAKD7IoABZHB0APgReS6DLgABZmx9LoAuAOA12GnddQDzAP8RaQBtAOUABBIAAUFhiy6OLnIA8gDuAnIA8gCaBwABY3GVLgoScgAA4DXYzdwAAXB0nS6hLmwAdQDzACUScgDpACASAARhY2VmaW9zdbEuvC7ELsguzC7PLtQu2S5jAAABdXm2LrsudABlADuA/QD9QE9kAAFpecAuwy5yAGMAd2FLZG4AO4ClAKVAcgAA4DXYNt1jAHkAV2RwAGYAAOA12GrdYwByAADgNdjO3AABY23dLt8ueQBOZGwAO4D/AP9AAAVhY2RlZmhpb3N38y73Lv8uAi8MLxAvEy8YLx0vIi9jInV0ZQB6YQABYXn7Lv4u8iFvbn5hN2RvAHQAfGEAAWV0Bi8KL3QAcgDmAB8QYQC2Y3IAAOA12DfdYwB5ADZk5yJyYXJyAKDdIXAAZgAA4DXYa91jAHIAAOA12M/cAAFqbiYvKC8AoA0gagAAoAwg");
|
|
10398
|
+
const htmlDecodeTree = /* #__PURE__ */ decodeBase64("QR08ALkAAgH6AYsDNQR2BO0EPgXZBQEGLAbdBxMISQrvCmQLfQurDKQNLw4fD4YPpA+6D/IPAAAAAAAAAAAAAAAAKhBMEY8TmxUWF2EYLBkxGuAa3RsJHDscWR8YIC8jSCSIJcMl6ie3Ku8rEC0CLjoupS7kLgAIRU1hYmNmZ2xtbm9wcnN0dVQAWgBeAGUAaQBzAHcAfgCBAIQAhwCSAJoAoACsALMAbABpAGcAO4DGAMZAUAA7gCYAJkBjAHUAdABlADuAwQDBQHIiZXZlAAJhAAFpeW0AcgByAGMAO4DCAMJAEGRyAADgNdgE3XIAYQB2AGUAO4DAAMBA8CFoYZFj4SFjcgBhZAAAoFMqAAFncIsAjgBvAG4ABGFmAADgNdg43fAlbHlGdW5jdGlvbgCgYSBpAG4AZwA7gMUAxUAAAWNzpACoAHIAAOA12Jzc6SFnbgCgVCJpAGwAZABlADuAwwDDQG0AbAA7gMQAxEAABGFjZWZvcnN1xQDYANoA7QDxAPYA+QD8AAABY3LJAM8AayNzbGFzaAAAoBYidgHTANUAAKDnKmUAZAAAoAYjeQARZIABY3J0AOAA5QDrAGEidXNlAACgNSLuI291bGxpcwCgLCFhAJJjcgAA4DXYBd1wAGYAAOA12Dnd5SF2ZdhiYwDyAOoAbSJwZXEAAKBOIgAHSE9hY2RlZmhpbG9yc3UXARoBHwE6AVIBVQFiAWQBZgGCAakB6QHtAfIBYwB5ACdkUABZADuAqQCpQIABY3B5ACUBKAE1AfUhdGUGYWmg0iJ0KGFsRGlmZmVyZW50aWFsRAAAoEUhbCJleXMAAKAtIQACYWVpb0EBRAFKAU0B8iFvbgxhZABpAGwAO4DHAMdAcgBjAAhhbiJpbnQAAKAwIm8AdAAKYQABZG5ZAV0BaSJsbGEAuGB0I2VyRG90ALdg8gA5AWkAp2NyImNsZQAAAkRNUFRwAXQBeQF9AW8AdAAAoJkiaSJudXMAAKCWIuwhdXMAoJUiaSJtZXMAAKCXIm8AAAFjc4cBlAFrKndpc2VDb250b3VySW50ZWdyYWwAAKAyImUjQ3VybHkAAAFEUZwBpAFvJXVibGVRdW90ZQAAoB0gdSJvdGUAAKAZIAACbG5wdbABtgHNAdgBbwBuAGWgNyIAoHQqgAFnaXQAvAHBAcUB8iJ1ZW50AKBhIm4AdAAAoC8i7yV1ckludGVncmFsAKAuIgABZnLRAdMBAKACIe8iZHVjdACgECJuLnRlckNsb2Nrd2lzZUNvbnRvdXJJbnRlZ3JhbAAAoDMi7yFzcwCgLypjAHIAAOA12J7ccABDoNMiYQBwAACgTSKABURKU1phY2VmaW9zAAsCEgIVAhgCGwIsAjQCOQI9AnMCfwNvoEUh9CJyYWhkAKARKWMAeQACZGMAeQAFZGMAeQAPZIABZ3JzACECJQIoAuchZXIAoCEgcgAAoKEhaAB2AACg5CoAAWF5MAIzAvIhb24OYRRkbAB0oAciYQCUY3IAAOA12AfdAAFhZkECawIAAWNtRQJnAvIjaXRpY2FsAAJBREdUUAJUAl8CYwJjInV0ZQC0YG8AdAFZAloC2WJiJGxlQWN1dGUA3WJyImF2ZQBgYGkibGRlANxi7yFuZACgxCJmJWVyZW50aWFsRAAAoEYhcAR9AgAAAAAAAIECjgIAABoDZgAA4DXYO91EoagAhQKJAm8AdAAAoNwgcSJ1YWwAAKBQIuIhbGUAA0NETFJVVpkCqAK1Au8C/wIRA28AbgB0AG8AdQByAEkAbgB0AGUAZwByAGEA7ADEAW8AdAKvAgAAAACwAqhgbiNBcnJvdwAAoNMhAAFlb7kC0AJmAHQAgAFBUlQAwQLGAs0CciJyb3cAAKDQIekkZ2h0QXJyb3cAoNQhZQDlACsCbgBnAAABTFLWAugC5SFmdAABQVLcAuECciJyb3cAAKD4J+kkZ2h0QXJyb3cAoPon6SRnaHRBcnJvdwCg+SdpImdodAAAAUFU9gL7AnIicm93AACg0iFlAGUAAKCoInAAQQIGAwAAAAALA3Iicm93AACg0SFvJHduQXJyb3cAAKDVIWUlcnRpY2FsQmFyAACgJSJuAAADQUJMUlRhJAM2AzoDWgNxA3oDciJyb3cAAKGTIUJVLAMwA2EAcgAAoBMpcCNBcnJvdwAAoPUhciJldmUAEWPlIWZ00gJDAwAASwMAAFIDaSVnaHRWZWN0b3IAAKBQKWUkZVZlY3RvcgAAoF4p5SJjdG9yQqC9IWEAcgAAoFYpaSJnaHQA1AFiAwAAaQNlJGVWZWN0b3IAAKBfKeUiY3RvckKgwSFhAHIAAKBXKWUAZQBBoKQiciJyb3cAAKCnIXIAcgBvAPcAtAIAAWN0gwOHA3IA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YwAAoN8i4SFycnCgtiEAoD0pgKIqImJjZG9zACsVMBU6FT4VQRVyImNhcAAAoEgqAAFhdTQVNxVwAACgRipwAACgSipvAHQAAKCNInIAAKBFKgDgKiIA/gACYWxydksVURVuFXMVcgByAG2gtyEAoDwpeQCAAWV2dwBYFWUVaRVxAHACXxUAAAAAYxVyAGUA4wAXFXUA4wAZFWUAZQAAoM4iZSJkZ2UAAKDPImUAbgA7gKQApEBlI2Fycm93AAABbHJ7FX8V5SFmdACgtiFpImdodAAAoLchZQDkAG0VAAFjaYsVkRVvAG4AaQBuAPQAkwFuAHQAAKAxImwiY3R5AACgLSOACUFIYWJjZGVmaGlqbG9yc3R1d3oAuBW7Fb8V1RXgFegV+RUKFhUWHxZUFlcWZRbFFtsW7xb7FgUXChdyAPIAtAJhAHIAAKBlKQACZ2xyc8YVyhXOFdAV5yFlcgCgICDlIXRoAKA4IfIA9QxoAHagECAAoKMiawHZFd4VYSJyb3cAAKAPKWEA4wBfAgABYXnkFecV8iFvbg9hNGQAoUYhYW/tFfQVAAFnciEC8RVyAACgyiF0InNlcQAAoHcqgAFnbG0A/xUCFgUWO4CwALBAdABhALRjcCJ0eXYAAKCxKQABaXIOFhIW8yFodACgfykA4DXYId1hAHIAAAFschsWHRYAoMMhAKDCIYACYWVnc3YAKBauAjYWOhY+Fm0AAKHEIm9zLhY0Fm4AZABzoMQi9SFpdACgZiZhIm1tYQDdY2kAbgAAoPIiAKH3AGlvQxZRFmQAZQAAgfcAO29KFksW90BuI3RpbWVzAACgxyJuAPgAUBZjAHkAUmRjAG8CXhYAAAAAYhZyAG4AAKAeI28AcAAAoA0jgAJscHR1dwBuFnEWdRaSFp4W7CFhciRgZgAA4DXYVd0AotkCZW1wc30WhBaJFo0WcQBkoFAibwB0AACgUSJpIm51cwAAoDgi7CF1cwCgFCLxInVhcmUAoKEiYgBsAGUAYgBhAHIAdwBlAGQAZwDlANcAbgCAAWFkaAClFqoWtBZyAHIAbwD3APUMbwB3AG4AYQByAHIAbwB3APMA8xVhI3Jwb29uAAABbHK8FsAWZQBmAPQAHBZpAGcAaAD0AB4WYgHJFs8WawBhAHIAbwD3AJILbwLUFgAAAADYFnIAbgAAoB8jbwBwAACgDCOAAWNvdADhFukW7BYAAXJ55RboFgDgNdi53FVkbAAAoPYp8iFvaxFhAAFkcvMW9xZvAHQAAKDxImkA5qC/JVsSAAFhaP8WAhdyAPIANQNhAPIA1wvhIm5nbGUAoKYpAAFjaQ4XEBd5AF9k5yJyYXJyAKD/JwAJRGFjZGVmZ2xtbm9wcXJzdHV4MRc4F0YXWxcyBF4XaRd5F40XrBe0F78X2RcVGCEYLRg1GEAYAAFEbzUXgRZvAPQA+BUAAWNzPBdCF3UAdABlADuA6QDpQPQhZXIAoG4qAAJhaW95TRdQF1YXWhfyIW9uG2FyAGOgViI7gOoA6kDsIW9uAKBVIk1kbwB0ABdhAAFEcmIXZhdvAHQAAKBSIgDgNdgi3XKhmipuF3QXYQB2AGUAO4DoAOhAZKCWKm8AdAAAoJgqgKGZKmlscwCAF4UXhxfuInRlcnMAoOcjAKATIWSglSpvAHQAAKCXKoABYXBzAJMXlheiF2MAcgATYXQAeQBzogUinxcAAAAAoRdlAHQAAKAFInAAMaADIDMBqRerFwCgBCAAoAUgAAFnc7AXsRdLYXAAAKACIAABZ3C4F7sXbwBuABlhZgAA4DXYVt2AAWFscwDFF8sXzxdyAHOg1SJsAACg4yl1AHMAAKBxKmkAAKG1A2x21RfYF28AbgC1Y/VjAAJjc3V24BfoF/0XEBgAAWlv5BdWF3IAYwAAoFYiaQLuFwAAAADwF+0ADQThIW50AAFnbPUX+Rd0AHIAAKCWKuUhc3MAoJUqgAFhZWkAAxgGGAoYbABzAD1gcwB0AACgXyJ2AESgYSJEAACgeCrwImFyc2wAoOUpAAFEYRkYHRhvAHQAAKBTInIAcgAAoHEpgAFjZGkAJxgqGO0XcgAAoC8hbwD0AIwCAAFhaDEYMhi3YzuA8ADwQAABbXI5GD0YbAA7gOsA60BvAACgrCCAAWNpcABGGEgYSxhsACFgcwD0ACwEAAFlb08YVxhjAHQAYQB0AGkAbwDuABoEbgBlAG4AdABpAGEAbADlADME4Ql1GAAAgRgAAIMYiBgAAAAAoRilGAAAqhgAALsYvhjRGAAA1xgnGWwAbABpAG4AZwBkAG8AdABzAGUA8QBlF3kARGRtImFsZQAAoEAmgAFpbHIAjRiRGJ0Y7CFpZwCgA/tpApcYAAAAAJoYZwAAoAD7aQBnAACgBPsA4DXYI93sIWlnAKAB++whaWcA4GYAagCAAWFsdACvGLIYthh0AACgbSZpAGcAAKAC+24AcwAAoLElbwBmAJJh8AHCGAAAxhhmAADgNdhX3QABYWvJGMwYbADsAGsEdqDUIgCg2SphI3J0aW50AACgDSoAAWFv2hgiGQABY3PeGB8ZsQPnGP0YBRkSGRUZAAAdGbID7xjyGPQY9xj5GAAA+xg7gL0AvUAAoFMhO4C8ALxAAKBVIQCgWSEAoFshswEBGQAAAxkAoFQhAKBWIbQCCxkOGQAAAAAQGTuAvgC+QACgVyEAoFwhNQAAoFghtgEZGQAAGxkAoFohAKBdITgAAKBeIWwAAKBEIHcAbgAAoCIjYwByAADgNdi73IAIRWFiY2RlZmdpamxub3JzdHYARhlKGVoZXhlmGWkZkhmWGZkZnRmgGa0ZxhnLGc8Z4BkjGmygZyIAoIwqgAFjbXAAUBlTGVgZ9SF0ZfVhbQBhAOSgswM6FgCghipyImV2ZQAfYQABaXliGWUZcgBjAB1hM2RvAHQAIWGAoWUibHFzAMYEcBl6GfGhZSLOBAAAdhlsAGEAbgD0AN8EgKF+KmNkbACBGYQZjBljAACgqSpvAHQAb6CAKmyggioAoIQqZeDbIgD+cwAAoJQqcgAA4DXYJN3noGsirATtIWVsAKA3IWMAeQBTZIChdyJFYWoApxmpGasZAKCSKgCgpSoAoKQqAAJFYWVztBm2Gb0ZwhkAoGkicABwoIoq8iFveACgiipxoIgq8aCIKrUZaQBtAACg5yJwAGYAAOA12FjdYQB2AOUAYwIAAWNp0xnWGXIAAKAKIW0AAKFzImVs3BneGQCgjioAoJAqAIM+ADtjZGxxco0E6xn0GfgZ/BkBGgABY2nvGfEZAKCnKnIAAKB6Km8AdAAAoNci0CFhcgCglSl1ImVzdAAAoHwqgAJhZGVscwAKGvQZFhrVBCAa8AEPGgAAFBpwAHIAbwD4AFkZcgAAoHgpcQAAAWxxxAQbGmwAZQBzAPMASRlpAO0A5AQAAWVuJxouGnIjdG5lcXEAAOBpIgD+xQAsGgAFQWFiY2Vma29zeUAaQxpmGmoabRqDGocalhrCGtMacgDyAMwCAAJpbG1yShpOGlAaVBpyAHMA8ABxD2YAvWBpAGwA9AASBQABZHJYGlsaYwB5AEpkAKGUIWN3YBpkGmkAcgAAoEgpAKCtIWEAcgAAoA8h6SFyYyVhgAFhbHIAcxp7Gn8a8iF0c3WgZSZpAHQAAKBlJuwhaXAAoCYg4yFvbgCguSJyAADgNdgl3XMAAAFld4wakRphInJvdwAAoCUpYSJyb3cAAKAmKYACYW1vcHIAnxqjGqcauhq+GnIAcgAAoP8h9CFodACgOyJrAAABbHKsGrMaZSRmdGFycm93AACgqSHpJGdodGFycm93AKCqIWYAAOA12Fnd4iFhcgCgFSCAAWNsdADIGswa0BpyAADgNdi93GEAcwDoAGka8iFvaydhAAFicNca2xr1IWxsAKBDIOghZW4AoBAg4Qr2GgAA/RoAAAgbExsaGwAAIRs7GwAAAAA+G2IbmRuVG6sbAACyG80b0htjAHUAdABlADuA7QDtQAChYyBpeQEbBhtyAGMAO4DuAO5AOGQAAWN4CxsNG3kANWRjAGwAO4ChAKFAAAFmcssCFhsA4DXYJt1yAGEAdgBlADuA7ADsQIChSCFpbm8AJxsyGzYbAAFpbisbLxtuAHQAAKAMKnQAAKAtIuYhaW4AoNwpdABhAACgKSHsIWlnM2GAAWFvcABDG1sbXhuAAWNndABJG0sbWRtyACthgAFlbHAAcQVRG1UbaQBuAOUAyAVhAHIA9AByBWgAMWFmAACgtyJlAGQAtWEAoggiY2ZvdGkbbRt1G3kb4SFyZQCgBSFpAG4AdKAeImkAZQAAoN0pZABvAPQAWxsAoisiY2VscIEbhRuPG5QbYQBsAACguiIAAWdyiRuNG2UAcgDzACMQ4wCCG2EicmhrAACgFyryIW9kAKA8KgACY2dwdJ8boRukG6gbeQBRZG8AbgAvYWYAAOA12FrdYQC5Y3UAZQBzAHQAO4C/AL9AAAFjabUbuRtyAADgNdi+3G4AAKIIIkVkc3bCG8QbyBvQAwCg+SJvAHQAAKD1Inag9CIAoPMiaaBiIOwhZGUpYesB1hsAANkbYwB5AFZkbAA7gO8A70AAA2NmbW9zdeYb7hvyG/Ub+hsFHAABaXnqG+0bcgBjADVhOWRyAADgNdgn3eEhdGg3YnAAZgAA4DXYW93jAf8bAAADHHIAAOA12L/c8iFjeVhk6yFjeVRkAARhY2ZnaGpvcxUcGhwiHCYcKhwtHDAcNRzwIXBhdqC6A/BjAAFleR4cIRzkIWls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ZmdobG1vcHJzdHV3CiwNLBEsHSwnLDEsQCxLLFIsYix6LIQsjyzLLOgs7Sz/LAotcgDyAAkDYQByAACgYykAAWNyFSwbLHUAdABlADuA+gD6QPIACQ1yAOMBIywAACUseQBeZHYAZQBtYQABaXkrLDAscgBjADuA+wD7QENkgAFhYmgANyw6LD0scgDyANEO7CFhY3FhYQDyAOAOAAFpckQsSCzzIWh0AKB+KQDgNdgy3XIAYQB2AGUAO4D5APlAYQFWLF8scgAAAWxyWixcLACgvyEAoL4hbABrAACggCUAAWN0Zix2LG8CbCwAAAAAcyxyAG4AZaAcI3IAAKAcI28AcAAAoA8jcgBpAACg+CUAAWFsfiyBLGMAcgBrYTuAqACoQAABZ3CILIssbwBuAHNhZgAA4DXYZt0AA2FkaGxzdZksniynLLgsuyzFLHIAcgBvAPcACQ1vAHcAbgBhAHIAcgBvAPcA2A5hI3Jwb29uAAABbHKvLLMsZQBmAPQAWyxpAGcAaAD0AF0sdQDzAKYOaQAAocUDaGzBLMIs0mNvAG4AxWPwI2Fycm93cwCgyCGAAWNpdADRLOEs5CxvAtcsAAAAAN4scgBuAGWgHSNyAACgHSNvAHAAAKAOI24AZwBvYXIAaQAAoPklYwByAADgNdjK3IABZGlyAPMs9yz6LG8AdAAAoPAi7CFkZWlhaQBmoLUlAKC0JQABYW0DLQYtcgDyAMosbAA7gPwA/EDhIm5nbGUAoKcpgAdBQkRhY2RlZmxub3Byc3oAJy0qLTAtNC2bLZ0toS2/LcMtxy3TLdgt3C3gLfwtcgDyABADYQByAHag6CoAoOkqYQBzAOgA/gIAAW5yOC08LechcnQAoJwpgANla25wcnN0AJkpSC1NLVQtXi1iLYItYQBwAHAA4QAaHG8AdABoAGkAbgDnAKEXgAFoaXIAoSmzJFotbwBwAPQAdCVooJUh7wD4JgABaXVmLWotZwBtAOEAuygAAWJwbi14LXMjZXRuZXEAceCKIgD+AODLKgD+cyNldG5lcQBx4IsiAP4A4MwqAP4AAWhyhi2KLWUAdADhABIraSNhbmdsZQAAAWxyki2WLeUhZnQAoLIiaSJnaHQAAKCzInkAMmThIXNoAKCiIoABZWxyAKcttC24LWKiKCKuLQAAAACyLWEAcgAAoLsicQAAoFoi7CFpcACg7iIAAWJ0vC1eD2EA8gBfD3IAAOA12DPddAByAOkAlS1zAHUAAAFicM0t0C0A4IIi0iAA4IMi0iBwAGYAAOA12GfdcgBvAPAAWQt0AHIA6QCaLQABY3XkLegtcgAA4DXYy9wAAWJw7C30LW4AAAFFZXUt8S0A4IoiAP5uAAABRWV/LfktAOCLIgD+6SJnemFnAKCaKYADY2Vmb3BycwANLhAuJS4pLiMuLi40LukhcmN1YQABZGkULiEuAAFiZxguHC5hAHIAAKBfKmUAcaAnIgCgWSLlIXJwAKAYIXIAAOA12DTdcABmAADgNdho3WWgQCJhAHQA6ABqD2MAcgAA4DXYzNzjCuQRUC4AAFQuAABYLmIuAAAAAGMubS5wLnQuAAAAAIguki4AAJouJxIqEnQAcgDpAB0ScgAA4DXYNd0AAUFhWy5eLnIA8gDnAnIA8gCTB75jAAFBYWYuaS5yAPIA4AJyAPIAjAdhAPAAeh5pAHMAAKD7IoABZHB0APgReS6DLgABZmx9LoAuAOA12GnddQDzAP8RaQBtAOUABBIAAUFhiy6OLnIA8gDuAnIA8gCaBwABY3GVLgoScgAA4DXYzdwAAXB0nS6hLmwAdQDzACUScgDpACASAARhY2VmaW9zdbEuvC7ELsguzC7PLtQu2S5jAAABdXm2LrsudABlADuA/QD9QE9kAAFpecAuwy5yAGMAd2FLZG4AO4ClAKVAcgAA4DXYNt1jAHkAV2RwAGYAAOA12GrdYwByAADgNdjO3AABY23dLt8ueQBOZGwAO4D/AP9AAAVhY2RlZmhpb3N38y73Lv8uAi8MLxAvEy8YLx0vIi9jInV0ZQB6YQABYXn7Lv4u8iFvbn5hN2RvAHQAfGEAAWV0Bi8KL3QAcgDmAB8QYQC2Y3IAAOA12DfdYwB5ADZk5yJyYXJyAKDdIXAAZgAA4DXYa91jAHIAAOA12M/cAAFqbiYvKC8AoA0gagAAoAwg");
|
|
10156
10399
|
//#endregion
|
|
10157
10400
|
//#region node_modules/.pnpm/entities@7.0.1/node_modules/entities/dist/esm/internal/bin-trie-flags.js
|
|
10158
10401
|
/**
|
|
@@ -10546,7 +10789,7 @@ function determineBranch(decodeTree, current, nodeIndex, char) {
|
|
|
10546
10789
|
}
|
|
10547
10790
|
return -1;
|
|
10548
10791
|
}
|
|
10549
|
-
const htmlDecoder = /*
|
|
10792
|
+
const htmlDecoder = /* #__PURE__ */ getDecoder(htmlDecodeTree);
|
|
10550
10793
|
/**
|
|
10551
10794
|
* Decodes an HTML string.
|
|
10552
10795
|
*
|
|
@@ -10738,13 +10981,14 @@ var Tokenizer = class {
|
|
|
10738
10981
|
}
|
|
10739
10982
|
}
|
|
10740
10983
|
stateInterpolationOpen(c) {
|
|
10741
|
-
if (c === this.delimiterOpen[this.delimiterIndex])
|
|
10742
|
-
|
|
10743
|
-
|
|
10744
|
-
|
|
10745
|
-
|
|
10746
|
-
|
|
10747
|
-
|
|
10984
|
+
if (c === this.delimiterOpen[this.delimiterIndex]) {
|
|
10985
|
+
if (this.delimiterIndex === this.delimiterOpen.length - 1) {
|
|
10986
|
+
const start = this.index + 1 - this.delimiterOpen.length;
|
|
10987
|
+
if (start > this.sectionStart) this.cbs.ontext(this.sectionStart, start);
|
|
10988
|
+
this.state = 3;
|
|
10989
|
+
this.sectionStart = start;
|
|
10990
|
+
} else this.delimiterIndex++;
|
|
10991
|
+
} else if (this.inRCDATA) {
|
|
10748
10992
|
this.state = 32;
|
|
10749
10993
|
this.stateInRCDATA(c);
|
|
10750
10994
|
} else {
|
|
@@ -10760,13 +11004,14 @@ var Tokenizer = class {
|
|
|
10760
11004
|
}
|
|
10761
11005
|
}
|
|
10762
11006
|
stateInterpolationClose(c) {
|
|
10763
|
-
if (c === this.delimiterClose[this.delimiterIndex])
|
|
10764
|
-
|
|
10765
|
-
|
|
10766
|
-
|
|
10767
|
-
|
|
10768
|
-
|
|
10769
|
-
|
|
11007
|
+
if (c === this.delimiterClose[this.delimiterIndex]) {
|
|
11008
|
+
if (this.delimiterIndex === this.delimiterClose.length - 1) {
|
|
11009
|
+
this.cbs.oninterpolation(this.sectionStart, this.index + 1);
|
|
11010
|
+
if (this.inRCDATA) this.state = 32;
|
|
11011
|
+
else this.state = 1;
|
|
11012
|
+
this.sectionStart = this.index + 1;
|
|
11013
|
+
} else this.delimiterIndex++;
|
|
11014
|
+
} else {
|
|
10770
11015
|
this.state = 3;
|
|
10771
11016
|
this.stateInterpolation(c);
|
|
10772
11017
|
}
|
|
@@ -10882,9 +11127,10 @@ var Tokenizer = class {
|
|
|
10882
11127
|
this.sectionStart = this.index;
|
|
10883
11128
|
if (this.mode === 0) this.state = 6;
|
|
10884
11129
|
else if (this.inSFCRoot) this.state = 34;
|
|
10885
|
-
else if (!this.inXML)
|
|
10886
|
-
|
|
10887
|
-
|
|
11130
|
+
else if (!this.inXML) {
|
|
11131
|
+
if (c === 116) this.state = 30;
|
|
11132
|
+
else this.state = c === 115 ? 29 : 6;
|
|
11133
|
+
} else this.state = 6;
|
|
10888
11134
|
} else if (c === 47) this.state = 8;
|
|
10889
11135
|
else {
|
|
10890
11136
|
this.state = 1;
|
|
@@ -11251,9 +11497,7 @@ var Tokenizer = class {
|
|
|
11251
11497
|
case 24:
|
|
11252
11498
|
this.stateInProcessingInstruction(c);
|
|
11253
11499
|
break;
|
|
11254
|
-
case 33:
|
|
11255
|
-
this.stateInEntity();
|
|
11256
|
-
break;
|
|
11500
|
+
case 33: this.stateInEntity();
|
|
11257
11501
|
}
|
|
11258
11502
|
this.index++;
|
|
11259
11503
|
}
|
|
@@ -11286,9 +11530,10 @@ var Tokenizer = class {
|
|
|
11286
11530
|
handleTrailingData() {
|
|
11287
11531
|
const endIndex = this.buffer.length;
|
|
11288
11532
|
if (this.sectionStart >= endIndex) return;
|
|
11289
|
-
if (this.state === 28)
|
|
11290
|
-
|
|
11291
|
-
|
|
11533
|
+
if (this.state === 28) {
|
|
11534
|
+
if (this.currentSequence === Sequences.CdataEnd) this.cbs.oncdata(this.sectionStart, endIndex);
|
|
11535
|
+
else this.cbs.oncomment(this.sectionStart, endIndex);
|
|
11536
|
+
} else if (this.state === 6 || this.state === 11 || this.state === 18 || this.state === 17 || this.state === 12 || this.state === 13 || this.state === 14 || this.state === 15 || this.state === 16 || this.state === 20 || this.state === 19 || this.state === 21 || this.state === 9) {} else this.cbs.ontext(this.sectionStart, endIndex);
|
|
11292
11537
|
}
|
|
11293
11538
|
emitCodePoint(cp, consumed) {
|
|
11294
11539
|
if (this.baseState !== 1 && this.baseState !== 32) {
|
|
@@ -11405,16 +11650,22 @@ function walkIdentifiers(root, onIdentifier, includeAll = false, parentStack = [
|
|
|
11405
11650
|
const isRefed = isReferencedIdentifier(node, parent, parentStack);
|
|
11406
11651
|
if (includeAll || isRefed && !isLocal) onIdentifier(node, parent, parentStack, isRefed, isLocal);
|
|
11407
11652
|
} else if (node.type === "ObjectProperty" && (parent === null || parent === void 0 ? void 0 : parent.type) === "ObjectPattern") node.inPattern = true;
|
|
11408
|
-
else if (isFunctionType(node))
|
|
11409
|
-
|
|
11410
|
-
|
|
11411
|
-
else
|
|
11412
|
-
|
|
11413
|
-
|
|
11414
|
-
else if (node.type === "
|
|
11415
|
-
|
|
11416
|
-
|
|
11417
|
-
else
|
|
11653
|
+
else if (isFunctionType(node)) {
|
|
11654
|
+
if (node.scopeIds) node.scopeIds.forEach((id) => markKnownIds(id, knownIds));
|
|
11655
|
+
else walkFunctionParams(node, (id) => markScopeIdentifier(node, id, knownIds));
|
|
11656
|
+
} else if (node.type === "BlockStatement") {
|
|
11657
|
+
if (node.scopeIds) node.scopeIds.forEach((id) => markKnownIds(id, knownIds));
|
|
11658
|
+
else walkBlockDeclarations(node, (id) => markScopeIdentifier(node, id, knownIds));
|
|
11659
|
+
} else if (node.type === "SwitchStatement") {
|
|
11660
|
+
if (node.scopeIds) node.scopeIds.forEach((id) => markKnownIds(id, knownIds));
|
|
11661
|
+
else walkSwitchStatement(node, false, (id) => markScopeIdentifier(node, id, knownIds));
|
|
11662
|
+
} else if (node.type === "CatchClause" && node.param) {
|
|
11663
|
+
if (node.scopeIds) node.scopeIds.forEach((id) => markKnownIds(id, knownIds));
|
|
11664
|
+
else for (const id of extractIdentifiers(node.param)) markScopeIdentifier(node, id, knownIds);
|
|
11665
|
+
} else if (isForStatement(node)) {
|
|
11666
|
+
if (node.scopeIds) node.scopeIds.forEach((id) => markKnownIds(id, knownIds));
|
|
11667
|
+
else walkForStatement(node, false, (id) => markScopeIdentifier(node, id, knownIds));
|
|
11668
|
+
}
|
|
11418
11669
|
},
|
|
11419
11670
|
leave(node, parent) {
|
|
11420
11671
|
parent && parentStack.pop();
|
|
@@ -11506,9 +11757,7 @@ function extractIdentifiers(param, nodes = []) {
|
|
|
11506
11757
|
case "RestElement":
|
|
11507
11758
|
extractIdentifiers(param.argument, nodes);
|
|
11508
11759
|
break;
|
|
11509
|
-
case "AssignmentPattern":
|
|
11510
|
-
extractIdentifiers(param.left, nodes);
|
|
11511
|
-
break;
|
|
11760
|
+
case "AssignmentPattern": extractIdentifiers(param.left, nodes);
|
|
11512
11761
|
}
|
|
11513
11762
|
return nodes;
|
|
11514
11763
|
}
|
|
@@ -11700,7 +11949,7 @@ function isTemplateNode(node) {
|
|
|
11700
11949
|
function isSlotOutlet(node) {
|
|
11701
11950
|
return node.type === 1 && node.tagType === 2;
|
|
11702
11951
|
}
|
|
11703
|
-
const propsHelperSet = new Set([NORMALIZE_PROPS, GUARD_REACTIVE_PROPS]);
|
|
11952
|
+
const propsHelperSet = /* @__PURE__ */ new Set([NORMALIZE_PROPS, GUARD_REACTIVE_PROPS]);
|
|
11704
11953
|
function getUnnormalizedProps(props, callPath = []) {
|
|
11705
11954
|
if (props && !isString(props) && props.type === 14) {
|
|
11706
11955
|
const callee = props.callee;
|
|
@@ -11743,9 +11992,10 @@ function injectProp(node, prop, context) {
|
|
|
11743
11992
|
propsWithInjection = createCallExpression(context.helper(MERGE_PROPS), [createObjectExpression([prop]), props]);
|
|
11744
11993
|
if (parentCall && parentCall.callee === GUARD_REACTIVE_PROPS) parentCall = callPath[callPath.length - 2];
|
|
11745
11994
|
}
|
|
11746
|
-
if (node.type === 13)
|
|
11747
|
-
|
|
11748
|
-
|
|
11995
|
+
if (node.type === 13) {
|
|
11996
|
+
if (parentCall) parentCall.arguments[0] = propsWithInjection;
|
|
11997
|
+
else node.props = propsWithInjection;
|
|
11998
|
+
} else if (parentCall) parentCall.arguments[0] = propsWithInjection;
|
|
11749
11999
|
else node.arguments[2] = propsWithInjection;
|
|
11750
12000
|
}
|
|
11751
12001
|
function injectSlotKey(node, prop) {
|
|
@@ -11985,26 +12235,28 @@ const tokenizer = new Tokenizer(stack, {
|
|
|
11985
12235
|
onattribend(quote, end) {
|
|
11986
12236
|
if (currentOpenTag && currentProp) {
|
|
11987
12237
|
setLocEnd(currentProp.loc, end);
|
|
11988
|
-
if (quote !== 0)
|
|
11989
|
-
if (currentProp.
|
|
11990
|
-
|
|
11991
|
-
|
|
11992
|
-
|
|
11993
|
-
|
|
11994
|
-
|
|
11995
|
-
|
|
11996
|
-
|
|
11997
|
-
|
|
11998
|
-
|
|
11999
|
-
|
|
12000
|
-
|
|
12001
|
-
|
|
12002
|
-
|
|
12003
|
-
|
|
12004
|
-
|
|
12005
|
-
|
|
12006
|
-
currentProp.name = "
|
|
12007
|
-
|
|
12238
|
+
if (quote !== 0) {
|
|
12239
|
+
if (currentProp.type === 6) {
|
|
12240
|
+
if (currentProp.name === "class") currentAttrValue = condense(currentAttrValue).trim();
|
|
12241
|
+
if (quote === 1 && !currentAttrValue) emitError(13, end);
|
|
12242
|
+
currentProp.value = {
|
|
12243
|
+
type: 2,
|
|
12244
|
+
content: currentAttrValue,
|
|
12245
|
+
loc: quote === 1 ? getLoc(currentAttrStartIndex, currentAttrEndIndex) : getLoc(currentAttrStartIndex - 1, currentAttrEndIndex + 1)
|
|
12246
|
+
};
|
|
12247
|
+
if (tokenizer.inSFCRoot && currentOpenTag.tag === "template" && currentProp.name === "lang" && currentAttrValue && currentAttrValue !== "html") tokenizer.enterRCDATA(toCharCodes(`</template`), 0);
|
|
12248
|
+
} else {
|
|
12249
|
+
let expParseMode = 0;
|
|
12250
|
+
if (currentProp.name === "for") expParseMode = 3;
|
|
12251
|
+
else if (currentProp.name === "slot") expParseMode = 1;
|
|
12252
|
+
else if (currentProp.name === "on" && currentAttrValue.includes(";")) expParseMode = 2;
|
|
12253
|
+
currentProp.exp = createExp(currentAttrValue, false, getLoc(currentAttrStartIndex, currentAttrEndIndex), 0, expParseMode);
|
|
12254
|
+
if (currentProp.name === "for") currentProp.forParseResult = parseForExpression(currentProp.exp);
|
|
12255
|
+
let syncIndex = -1;
|
|
12256
|
+
if (currentProp.name === "bind" && (syncIndex = currentProp.modifiers.findIndex((mod) => mod.content === "sync")) > -1 && checkCompatEnabled("COMPILER_V_BIND_SYNC", currentOptions, currentProp.loc, currentProp.arg.loc.source)) {
|
|
12257
|
+
currentProp.name = "model";
|
|
12258
|
+
currentProp.modifiers.splice(syncIndex, 1);
|
|
12259
|
+
}
|
|
12008
12260
|
}
|
|
12009
12261
|
}
|
|
12010
12262
|
if (currentProp.type !== 7 || currentProp.name !== "pre") currentOpenTag.props.push(currentProp);
|
|
@@ -12047,10 +12299,7 @@ const tokenizer = new Tokenizer(stack, {
|
|
|
12047
12299
|
case 18:
|
|
12048
12300
|
case 19:
|
|
12049
12301
|
case 20:
|
|
12050
|
-
case 21:
|
|
12051
|
-
emitError(9, end);
|
|
12052
|
-
break;
|
|
12053
|
-
default: break;
|
|
12302
|
+
case 21: emitError(9, end);
|
|
12054
12303
|
}
|
|
12055
12304
|
for (let index = 0; index < stack.length; index++) {
|
|
12056
12305
|
onCloseTag(stack[index], end - 1);
|
|
@@ -12180,7 +12429,7 @@ function backTrack(index, c) {
|
|
|
12180
12429
|
while (currentInput.charCodeAt(i) !== c && i >= 0) i--;
|
|
12181
12430
|
return i;
|
|
12182
12431
|
}
|
|
12183
|
-
const specialTemplateDir = new Set([
|
|
12432
|
+
const specialTemplateDir = /* @__PURE__ */ new Set([
|
|
12184
12433
|
"if",
|
|
12185
12434
|
"else",
|
|
12186
12435
|
"else-if",
|
|
@@ -12216,16 +12465,18 @@ function condenseWhitespace(nodes) {
|
|
|
12216
12465
|
let removedWhitespace = false;
|
|
12217
12466
|
for (let i = 0; i < nodes.length; i++) {
|
|
12218
12467
|
const node = nodes[i];
|
|
12219
|
-
if (node.type === 2)
|
|
12220
|
-
if (
|
|
12221
|
-
|
|
12222
|
-
|
|
12223
|
-
|
|
12224
|
-
|
|
12225
|
-
|
|
12226
|
-
|
|
12227
|
-
|
|
12228
|
-
|
|
12468
|
+
if (node.type === 2) {
|
|
12469
|
+
if (!inPre) {
|
|
12470
|
+
if (isAllWhitespace(node.content)) {
|
|
12471
|
+
const prev = nodes[i - 1] && nodes[i - 1].type;
|
|
12472
|
+
const next = nodes[i + 1] && nodes[i + 1].type;
|
|
12473
|
+
if (!prev || !next || shouldCondense && (prev === 3 && (next === 3 || next === 1) || prev === 1 && (next === 3 || next === 1 && hasNewlineChar(node.content)))) {
|
|
12474
|
+
removedWhitespace = true;
|
|
12475
|
+
nodes[i] = null;
|
|
12476
|
+
} else node.content = " ";
|
|
12477
|
+
} else if (shouldCondense) node.content = condense(node.content);
|
|
12478
|
+
} else node.content = node.content.replace(windowsNewlineRE, "\n");
|
|
12479
|
+
}
|
|
12229
12480
|
}
|
|
12230
12481
|
return removedWhitespace ? nodes.filter(Boolean) : nodes;
|
|
12231
12482
|
}
|
|
@@ -12502,7 +12753,7 @@ function getConstantType(node, context) {
|
|
|
12502
12753
|
default: return 0;
|
|
12503
12754
|
}
|
|
12504
12755
|
}
|
|
12505
|
-
const allowHoistedHelperSet = new Set([
|
|
12756
|
+
const allowHoistedHelperSet = /* @__PURE__ */ new Set([
|
|
12506
12757
|
NORMALIZE_CLASS,
|
|
12507
12758
|
NORMALIZE_STYLE,
|
|
12508
12759
|
NORMALIZE_PROPS,
|
|
@@ -12546,7 +12797,7 @@ function getSelfName(filename) {
|
|
|
12546
12797
|
const nameMatch = filename.replace(/\?.*$/, "").match(/([^/\\]+)\.\w+$/);
|
|
12547
12798
|
return nameMatch ? capitalize(camelize(nameMatch[1])) : null;
|
|
12548
12799
|
}
|
|
12549
|
-
function createTransformContext(root, { filename = "", prefixIdentifiers = false, hoistStatic = false, hmr = false, cacheHandlers = false, nodeTransforms = [], directiveTransforms = {}, transformHoist = null, isBuiltInComponent = NOOP, isCustomElement = NOOP, expressionPlugins = [], scopeId = null, slotted = true, ssr = false, inSSR = false, ssrCssVars = ``, bindingMetadata = EMPTY_OBJ, inline = false, isTS = false,
|
|
12800
|
+
function createTransformContext(root, { filename = "", prefixIdentifiers = false, hoistStatic = false, hmr = false, cacheHandlers = false, nodeTransforms = [], directiveTransforms = {}, transformHoist = null, isBuiltInComponent = NOOP, isCustomElement = NOOP, expressionPlugins = [], scopeId = null, slotted = true, ssr = false, inSSR = false, ssrCssVars = ``, bindingMetadata = EMPTY_OBJ, inline = false, isTS = false, onError = defaultOnError, onWarn = defaultOnWarn, compatConfig }) {
|
|
12550
12801
|
const context = {
|
|
12551
12802
|
filename,
|
|
12552
12803
|
selfName: getSelfName(filename),
|
|
@@ -12568,7 +12819,6 @@ function createTransformContext(root, { filename = "", prefixIdentifiers = false
|
|
|
12568
12819
|
bindingMetadata,
|
|
12569
12820
|
inline,
|
|
12570
12821
|
isTS,
|
|
12571
|
-
eventDelegation,
|
|
12572
12822
|
onError,
|
|
12573
12823
|
onWarn,
|
|
12574
12824
|
compatConfig,
|
|
@@ -12674,7 +12924,7 @@ function transform(root, options) {
|
|
|
12674
12924
|
traverseNode(root, context);
|
|
12675
12925
|
if (options.hoistStatic) cacheStatic(root, context);
|
|
12676
12926
|
if (!options.ssr) createRootCodegen(root, context);
|
|
12677
|
-
root.helpers = new Set([...context.helpers.keys()]);
|
|
12927
|
+
root.helpers = /* @__PURE__ */ new Set([...context.helpers.keys()]);
|
|
12678
12928
|
root.components = [...context.components];
|
|
12679
12929
|
root.directives = [...context.directives];
|
|
12680
12930
|
root.imports = context.imports;
|
|
@@ -12717,8 +12967,10 @@ function traverseNode(node, context) {
|
|
|
12717
12967
|
const exitFns = [];
|
|
12718
12968
|
for (let i = 0; i < nodeTransforms.length; i++) {
|
|
12719
12969
|
const onExit = nodeTransforms[i](node, context);
|
|
12720
|
-
if (onExit)
|
|
12721
|
-
|
|
12970
|
+
if (onExit) {
|
|
12971
|
+
if (isArray(onExit)) exitFns.push(...onExit);
|
|
12972
|
+
else exitFns.push(onExit);
|
|
12973
|
+
}
|
|
12722
12974
|
if (!context.currentNode) return;
|
|
12723
12975
|
else node = context.currentNode;
|
|
12724
12976
|
}
|
|
@@ -12735,9 +12987,7 @@ function traverseNode(node, context) {
|
|
|
12735
12987
|
case 10:
|
|
12736
12988
|
case 11:
|
|
12737
12989
|
case 1:
|
|
12738
|
-
case 0:
|
|
12739
|
-
traverseChildren(node, context);
|
|
12740
|
-
break;
|
|
12990
|
+
case 0: traverseChildren(node, context);
|
|
12741
12991
|
}
|
|
12742
12992
|
context.currentNode = node;
|
|
12743
12993
|
let i = exitFns.length;
|
|
@@ -12923,16 +13173,18 @@ function genFunctionPreamble(ast, context) {
|
|
|
12923
13173
|
const { ssr, prefixIdentifiers, push, newline, runtimeModuleName, runtimeGlobalName, ssrRuntimeModuleName } = context;
|
|
12924
13174
|
const VueBinding = ssr ? `require(${JSON.stringify(runtimeModuleName)})` : runtimeGlobalName;
|
|
12925
13175
|
const helpers = Array.from(ast.helpers);
|
|
12926
|
-
if (helpers.length > 0)
|
|
12927
|
-
|
|
12928
|
-
|
|
12929
|
-
|
|
12930
|
-
|
|
12931
|
-
|
|
12932
|
-
|
|
12933
|
-
|
|
12934
|
-
|
|
12935
|
-
|
|
13176
|
+
if (helpers.length > 0) {
|
|
13177
|
+
if (prefixIdentifiers) push(`const { ${helpers.map(aliasHelper).join(", ")} } = ${VueBinding}\n`, -1);
|
|
13178
|
+
else {
|
|
13179
|
+
push(`const _Vue = ${VueBinding}\n`, -1);
|
|
13180
|
+
if (ast.hoists.length) push(`const { ${[
|
|
13181
|
+
CREATE_VNODE,
|
|
13182
|
+
CREATE_ELEMENT_VNODE,
|
|
13183
|
+
CREATE_COMMENT,
|
|
13184
|
+
CREATE_TEXT,
|
|
13185
|
+
CREATE_STATIC
|
|
13186
|
+
].filter((helper) => helpers.includes(helper)).map(aliasHelper).join(", ")} } = _Vue\n`, -1);
|
|
13187
|
+
}
|
|
12936
13188
|
}
|
|
12937
13189
|
if (ast.ssrHelpers && ast.ssrHelpers.length) push(`const { ${ast.ssrHelpers.map(aliasHelper).join(", ")} } = require("${ssrRuntimeModuleName}")\n`, -1);
|
|
12938
13190
|
genHoists(ast.hoists, context);
|
|
@@ -13009,10 +13261,12 @@ function genNodeList(nodes, context, multilines = false, comma = true) {
|
|
|
13009
13261
|
if (isString(node)) push(node, -3);
|
|
13010
13262
|
else if (isArray(node)) genNodeListAsArray(node, context);
|
|
13011
13263
|
else genNode(node, context);
|
|
13012
|
-
if (i < nodes.length - 1)
|
|
13013
|
-
|
|
13014
|
-
|
|
13015
|
-
|
|
13264
|
+
if (i < nodes.length - 1) {
|
|
13265
|
+
if (multilines) {
|
|
13266
|
+
comma && push(",");
|
|
13267
|
+
newline();
|
|
13268
|
+
} else comma && push(", ");
|
|
13269
|
+
}
|
|
13016
13270
|
}
|
|
13017
13271
|
}
|
|
13018
13272
|
function genNode(node, context) {
|
|
@@ -13084,12 +13338,7 @@ function genNode(node, context) {
|
|
|
13084
13338
|
case 25:
|
|
13085
13339
|
genSequenceExpression(node, context);
|
|
13086
13340
|
break;
|
|
13087
|
-
case 26:
|
|
13088
|
-
genReturnStatement(node, context);
|
|
13089
|
-
break;
|
|
13090
|
-
/* v8 ignore start */
|
|
13091
|
-
case 10: break;
|
|
13092
|
-
default:
|
|
13341
|
+
case 26: genReturnStatement(node, context);
|
|
13093
13342
|
}
|
|
13094
13343
|
}
|
|
13095
13344
|
function genText(node, context) {
|
|
@@ -13327,7 +13576,7 @@ function genReturnStatement({ returns }, context) {
|
|
|
13327
13576
|
}
|
|
13328
13577
|
//#endregion
|
|
13329
13578
|
//#region packages/compiler-core/src/transforms/transformExpression.ts
|
|
13330
|
-
const isLiteralWhitelisted =
|
|
13579
|
+
const isLiteralWhitelisted = /*@__PURE__*/ makeMap("true,false,null,this");
|
|
13331
13580
|
const transformExpression = (node, context) => {
|
|
13332
13581
|
if (node.type === 5) node.content = processExpression(node.content, context);
|
|
13333
13582
|
else if (node.type === 1) {
|
|
@@ -13360,20 +13609,21 @@ function processExpression(node, context, asParams = false, asRawStatements = fa
|
|
|
13360
13609
|
if (isConst(type) || type === "setup-reactive-const" || localVars[raw]) return raw;
|
|
13361
13610
|
else if (type === "setup-ref") return `${raw}.value`;
|
|
13362
13611
|
else if (type === "setup-maybe-ref") return isAssignmentLVal || isUpdateArg || isDestructureAssignment ? `${raw}.value` : wrapWithUnref(raw);
|
|
13363
|
-
else if (type === "setup-let")
|
|
13364
|
-
|
|
13365
|
-
|
|
13366
|
-
|
|
13367
|
-
|
|
13368
|
-
|
|
13369
|
-
|
|
13370
|
-
|
|
13371
|
-
|
|
13372
|
-
|
|
13373
|
-
|
|
13374
|
-
|
|
13375
|
-
|
|
13376
|
-
|
|
13612
|
+
else if (type === "setup-let") {
|
|
13613
|
+
if (isAssignmentLVal) {
|
|
13614
|
+
const { right: rVal, operator } = parent;
|
|
13615
|
+
const rExpString = stringifyExpression(processExpression(createSimpleExpression(rawExp.slice(rVal.start - 1, rVal.end - 1), false), context, false, false, knownIds));
|
|
13616
|
+
return `${context.helperString(IS_REF)}(${raw})${context.isTS ? ` //@ts-ignore\n` : ``} ? ${raw}.value ${operator} ${rExpString} : ${raw}`;
|
|
13617
|
+
} else if (isUpdateArg) {
|
|
13618
|
+
id.start = parent.start;
|
|
13619
|
+
id.end = parent.end;
|
|
13620
|
+
const { prefix: isPrefix, operator } = parent;
|
|
13621
|
+
const prefix = isPrefix ? operator : ``;
|
|
13622
|
+
const postfix = isPrefix ? `` : operator;
|
|
13623
|
+
return `${context.helperString(IS_REF)}(${raw})${context.isTS ? ` //@ts-ignore\n` : ``} ? ${prefix}${raw}.value${postfix} : ${prefix}${raw}${postfix}`;
|
|
13624
|
+
} else if (isDestructureAssignment) return raw;
|
|
13625
|
+
else return wrapWithUnref(raw);
|
|
13626
|
+
} else if (type === "props") return genPropsAccessExp(raw);
|
|
13377
13627
|
else if (type === "props-aliased") return genPropsAccessExp(bindingMetadata.__propsAliases[raw]);
|
|
13378
13628
|
} else if (type && type.startsWith("setup") || type === "literal-const") return `$setup.${raw}`;
|
|
13379
13629
|
else if (type === "props-aliased") return `$props['${bindingMetadata.__propsAliases[raw]}']`;
|
|
@@ -13390,8 +13640,10 @@ function processExpression(node, context, asParams = false, asRawStatements = fa
|
|
|
13390
13640
|
if (!asParams && !isScopeVarReference && !isLiteral && (!isAllowedGlobal || bindingMetadata[rawExp])) {
|
|
13391
13641
|
if (isConst(bindingMetadata[rawExp])) node.constType = 1;
|
|
13392
13642
|
node.content = rewriteIdentifier(rawExp);
|
|
13393
|
-
} else if (!isScopeVarReference)
|
|
13394
|
-
|
|
13643
|
+
} else if (!isScopeVarReference) {
|
|
13644
|
+
if (isLiteral) node.constType = 3;
|
|
13645
|
+
else node.constType = 2;
|
|
13646
|
+
}
|
|
13395
13647
|
return node;
|
|
13396
13648
|
}
|
|
13397
13649
|
if (!ast) {
|
|
@@ -13547,12 +13799,13 @@ function createChildrenCodegenNode(branch, keyIndex, context) {
|
|
|
13547
13799
|
const keyProperty = createObjectProperty(`key`, createSimpleExpression(`${keyIndex}`, false, locStub, 2));
|
|
13548
13800
|
const { children } = branch;
|
|
13549
13801
|
const firstChild = children[0];
|
|
13550
|
-
if (children.length !== 1 || firstChild.type !== 1)
|
|
13551
|
-
|
|
13552
|
-
|
|
13553
|
-
|
|
13554
|
-
|
|
13555
|
-
|
|
13802
|
+
if (children.length !== 1 || firstChild.type !== 1) {
|
|
13803
|
+
if (children.length === 1 && firstChild.type === 11) {
|
|
13804
|
+
const vnodeCall = firstChild.codegenNode;
|
|
13805
|
+
injectProp(vnodeCall, keyProperty, context);
|
|
13806
|
+
return vnodeCall;
|
|
13807
|
+
} else return createVNodeCall(context, helper(FRAGMENT), createObjectExpression([keyProperty]), children, 64, void 0, void 0, true, false, false, branch.loc);
|
|
13808
|
+
} else {
|
|
13556
13809
|
const ret = firstChild.codegenNode;
|
|
13557
13810
|
const vnodeCall = getMemoedVNodeCall(ret);
|
|
13558
13811
|
if (vnodeCall.type === 13) convertToBlock(vnodeCall, context);
|
|
@@ -13573,9 +13826,10 @@ function isSameKey(a, b) {
|
|
|
13573
13826
|
return true;
|
|
13574
13827
|
}
|
|
13575
13828
|
function getParentCondition(node) {
|
|
13576
|
-
while (true) if (node.type === 19)
|
|
13577
|
-
|
|
13578
|
-
|
|
13829
|
+
while (true) if (node.type === 19) {
|
|
13830
|
+
if (node.alternate.type === 19) node = node.alternate;
|
|
13831
|
+
else return node;
|
|
13832
|
+
} else if (node.type === 20) node = node.value;
|
|
13579
13833
|
}
|
|
13580
13834
|
//#endregion
|
|
13581
13835
|
//#region packages/compiler-core/src/transforms/vFor.ts
|
|
@@ -13618,15 +13872,24 @@ const transformFor = createStructuralDirectiveTransform("for", (node, dir, conte
|
|
|
13618
13872
|
else {
|
|
13619
13873
|
childBlock = children[0].codegenNode;
|
|
13620
13874
|
if (isTemplate && keyProperty) injectProp(childBlock, keyProperty, context);
|
|
13621
|
-
|
|
13622
|
-
|
|
13623
|
-
|
|
13624
|
-
|
|
13625
|
-
|
|
13875
|
+
const shouldUseBlock = !isStableFragment || childBlock.isBlockRequired === true;
|
|
13876
|
+
if (childBlock.isBlock !== shouldUseBlock) {
|
|
13877
|
+
if (childBlock.isBlock) {
|
|
13878
|
+
removeHelper(OPEN_BLOCK);
|
|
13879
|
+
removeHelper(getVNodeBlockHelper(context.inSSR, childBlock.isComponent));
|
|
13880
|
+
} else removeHelper(getVNodeHelper(context.inSSR, childBlock.isComponent));
|
|
13881
|
+
}
|
|
13882
|
+
childBlock.isBlock = shouldUseBlock;
|
|
13626
13883
|
if (childBlock.isBlock) {
|
|
13627
13884
|
helper(OPEN_BLOCK);
|
|
13628
13885
|
helper(getVNodeBlockHelper(context.inSSR, childBlock.isComponent));
|
|
13629
|
-
} else
|
|
13886
|
+
} else {
|
|
13887
|
+
helper(getVNodeHelper(context.inSSR, childBlock.isComponent));
|
|
13888
|
+
if (childBlock.needsPatch) {
|
|
13889
|
+
var _childBlock$patchFlag;
|
|
13890
|
+
childBlock.patchFlag = ((_childBlock$patchFlag = childBlock.patchFlag) !== null && _childBlock$patchFlag !== void 0 ? _childBlock$patchFlag : 0) | 512;
|
|
13891
|
+
}
|
|
13892
|
+
}
|
|
13630
13893
|
}
|
|
13631
13894
|
if (memo) {
|
|
13632
13895
|
const loop = createFunctionExpression(createForLoopParams(forNode.parseResult, [createSimpleExpression(`_cached`)]));
|
|
@@ -13832,8 +14095,10 @@ function buildSlots(node, context, buildSlotFn = buildClientSlotFn) {
|
|
|
13832
14095
|
return createObjectProperty(`default`, fn);
|
|
13833
14096
|
};
|
|
13834
14097
|
if (!hasTemplateSlots) slotsProperties.push(buildDefaultSlotProperty(void 0, children));
|
|
13835
|
-
else if (implicitDefaultChildren.length && !implicitDefaultChildren.every(isWhitespaceText))
|
|
13836
|
-
|
|
14098
|
+
else if (implicitDefaultChildren.length && !implicitDefaultChildren.every(isWhitespaceText)) {
|
|
14099
|
+
if (hasNamedDefaultSlot) context.onError(createCompilerError(39, implicitDefaultChildren[0].loc));
|
|
14100
|
+
else slotsProperties.push(buildDefaultSlotProperty(void 0, implicitDefaultChildren));
|
|
14101
|
+
}
|
|
13837
14102
|
}
|
|
13838
14103
|
const slotFlag = hasDynamicSlots ? 2 : hasForwardedSlots(node.children) ? 3 : 1;
|
|
13839
14104
|
let slots = createObjectExpression(slotsProperties.concat(createObjectProperty(`_`, createSimpleExpression(slotFlag + ``, false))), loc);
|
|
@@ -13859,10 +14124,7 @@ function hasForwardedSlots(children) {
|
|
|
13859
14124
|
if (hasForwardedSlots(child.branches)) return true;
|
|
13860
14125
|
break;
|
|
13861
14126
|
case 10:
|
|
13862
|
-
case 11:
|
|
13863
|
-
if (hasForwardedSlots(child.children)) return true;
|
|
13864
|
-
break;
|
|
13865
|
-
default: break;
|
|
14127
|
+
case 11: if (hasForwardedSlots(child.children)) return true;
|
|
13866
14128
|
}
|
|
13867
14129
|
}
|
|
13868
14130
|
return false;
|
|
@@ -13884,12 +14146,16 @@ const transformElement = (node, context) => {
|
|
|
13884
14146
|
let vnodeDynamicProps;
|
|
13885
14147
|
let dynamicPropNames;
|
|
13886
14148
|
let vnodeDirectives;
|
|
14149
|
+
let needsPatch = false;
|
|
14150
|
+
let isBlockRequired = false;
|
|
13887
14151
|
let shouldUseBlock = isDynamicComponent || vnodeTag === TELEPORT || vnodeTag === SUSPENSE || !isComponent && (tag === "svg" || tag === "foreignObject" || tag === "math");
|
|
13888
14152
|
if (props.length > 0) {
|
|
13889
14153
|
const propsBuildResult = buildProps(node, context, void 0, isComponent, isDynamicComponent);
|
|
13890
14154
|
vnodeProps = propsBuildResult.props;
|
|
13891
14155
|
patchFlag = propsBuildResult.patchFlag;
|
|
13892
14156
|
dynamicPropNames = propsBuildResult.dynamicPropNames;
|
|
14157
|
+
needsPatch = propsBuildResult.needsPatch;
|
|
14158
|
+
isBlockRequired = propsBuildResult.isBlockRequired;
|
|
13893
14159
|
const directives = propsBuildResult.directives;
|
|
13894
14160
|
vnodeDirectives = directives && directives.length ? createArrayExpression(directives.map((dir) => buildDirectiveArgs(dir, context))) : void 0;
|
|
13895
14161
|
if (propsBuildResult.shouldUseBlock) shouldUseBlock = true;
|
|
@@ -13913,7 +14179,10 @@ const transformElement = (node, context) => {
|
|
|
13913
14179
|
} else vnodeChildren = node.children;
|
|
13914
14180
|
}
|
|
13915
14181
|
if (dynamicPropNames && dynamicPropNames.length) vnodeDynamicProps = stringifyDynamicPropNames(dynamicPropNames);
|
|
13916
|
-
node.codegenNode = createVNodeCall(context, vnodeTag, vnodeProps, vnodeChildren, patchFlag === 0 ? void 0 : patchFlag, vnodeDynamicProps, vnodeDirectives, !!shouldUseBlock, false, isComponent, node.loc);
|
|
14182
|
+
const vnodeCall = node.codegenNode = createVNodeCall(context, vnodeTag, vnodeProps, vnodeChildren, patchFlag === 0 ? void 0 : patchFlag, vnodeDynamicProps, vnodeDirectives, !!shouldUseBlock, false, isComponent, node.loc);
|
|
14183
|
+
needsPatch = needsPatch && (patchFlag === 0 || patchFlag === 32);
|
|
14184
|
+
if (needsPatch) vnodeCall.needsPatch = true;
|
|
14185
|
+
if (isBlockRequired) vnodeCall.isBlockRequired = true;
|
|
13917
14186
|
};
|
|
13918
14187
|
};
|
|
13919
14188
|
function resolveComponentType(node, context, ssr = false) {
|
|
@@ -13998,6 +14267,7 @@ function buildProps(node, context, props = node.props, isComponent, isDynamicCom
|
|
|
13998
14267
|
const runtimeDirectives = [];
|
|
13999
14268
|
const hasChildren = children.length > 0;
|
|
14000
14269
|
let shouldUseBlock = false;
|
|
14270
|
+
let isBlockRequired = false;
|
|
14001
14271
|
let patchFlag = 0;
|
|
14002
14272
|
let hasRef = false;
|
|
14003
14273
|
let hasClassBinding = false;
|
|
@@ -14022,12 +14292,12 @@ function buildProps(node, context, props = node.props, isComponent, isDynamicCom
|
|
|
14022
14292
|
const isEventHandler = isOn(name);
|
|
14023
14293
|
if (isEventHandler && (!isComponent || isDynamicComponent) && name.toLowerCase() !== "onclick" && name !== "onUpdate:modelValue" && !isReservedProp(name)) hasHydrationEventBinding = true;
|
|
14024
14294
|
if (isEventHandler && isReservedProp(name)) hasVnodeHook = true;
|
|
14295
|
+
if (name === "ref") hasRef = true;
|
|
14025
14296
|
if (isEventHandler && value.type === 14) value = value.arguments[0];
|
|
14026
14297
|
if (value.type === 20 || (value.type === 4 || value.type === 8) && getConstantType(value, context) > 0) return;
|
|
14027
|
-
if (name === "
|
|
14028
|
-
else if (name === "class") hasClassBinding = true;
|
|
14298
|
+
if (name === "class") hasClassBinding = true;
|
|
14029
14299
|
else if (name === "style") hasStyleBinding = true;
|
|
14030
|
-
else if (name !== "key" && !dynamicPropNames.includes(name)) dynamicPropNames.push(name);
|
|
14300
|
+
else if (name !== "ref" && name !== "key" && !dynamicPropNames.includes(name)) dynamicPropNames.push(name);
|
|
14031
14301
|
if (isComponent && (name === "class" || name === "style") && !dynamicPropNames.includes(name)) dynamicPropNames.push(name);
|
|
14032
14302
|
} else hasDynamicKeys = true;
|
|
14033
14303
|
};
|
|
@@ -14060,26 +14330,31 @@ function buildProps(node, context, props = node.props, isComponent, isDynamicCom
|
|
|
14060
14330
|
if (name === "once" || name === "memo") continue;
|
|
14061
14331
|
if (name === "is" || isVBind && isStaticArgOf(arg, "is") && (isComponentTag(tag) || isCompatEnabled("COMPILER_IS_ON_ELEMENT", context))) continue;
|
|
14062
14332
|
if (isVOn && ssr) continue;
|
|
14063
|
-
if (isVBind && isStaticArgOf(arg, "key")
|
|
14333
|
+
if (isVBind && isStaticArgOf(arg, "key")) shouldUseBlock = true;
|
|
14334
|
+
if (isVOn && hasChildren && arg && isStaticExp(arg) && camelize(arg.content) === "vue:beforeUpdate") {
|
|
14335
|
+
shouldUseBlock = true;
|
|
14336
|
+
isBlockRequired = true;
|
|
14337
|
+
}
|
|
14064
14338
|
if (isVBind && isStaticArgOf(arg, "ref")) pushRefVForMarker();
|
|
14065
14339
|
if (!arg && (isVBind || isVOn)) {
|
|
14066
14340
|
hasDynamicKeys = true;
|
|
14067
|
-
if (exp)
|
|
14068
|
-
|
|
14069
|
-
|
|
14070
|
-
|
|
14071
|
-
|
|
14072
|
-
|
|
14073
|
-
|
|
14074
|
-
|
|
14075
|
-
|
|
14076
|
-
|
|
14077
|
-
|
|
14078
|
-
|
|
14079
|
-
|
|
14080
|
-
|
|
14081
|
-
|
|
14082
|
-
|
|
14341
|
+
if (exp) {
|
|
14342
|
+
if (isVBind) {
|
|
14343
|
+
pushMergeArg();
|
|
14344
|
+
if (isCompatEnabled("COMPILER_V_BIND_OBJECT_ORDER", context)) {
|
|
14345
|
+
mergeArgs.unshift(exp);
|
|
14346
|
+
continue;
|
|
14347
|
+
}
|
|
14348
|
+
pushRefVForMarker();
|
|
14349
|
+
pushMergeArg();
|
|
14350
|
+
mergeArgs.push(exp);
|
|
14351
|
+
} else pushMergeArg({
|
|
14352
|
+
type: 14,
|
|
14353
|
+
loc,
|
|
14354
|
+
callee: context.helper(TO_HANDLERS),
|
|
14355
|
+
arguments: isComponent ? [exp] : [exp, `true`]
|
|
14356
|
+
});
|
|
14357
|
+
} else context.onError(createCompilerError(isVBind ? 34 : 35, loc));
|
|
14083
14358
|
continue;
|
|
14084
14359
|
}
|
|
14085
14360
|
if (isVBind && modifiers.some((mod) => mod.content === "prop")) patchFlag |= 32;
|
|
@@ -14095,7 +14370,10 @@ function buildProps(node, context, props = node.props, isComponent, isDynamicCom
|
|
|
14095
14370
|
}
|
|
14096
14371
|
} else if (!isBuiltInDirective(name)) {
|
|
14097
14372
|
runtimeDirectives.push(prop);
|
|
14098
|
-
if (hasChildren)
|
|
14373
|
+
if (hasChildren) {
|
|
14374
|
+
shouldUseBlock = true;
|
|
14375
|
+
isBlockRequired = true;
|
|
14376
|
+
}
|
|
14099
14377
|
}
|
|
14100
14378
|
}
|
|
14101
14379
|
}
|
|
@@ -14112,7 +14390,8 @@ function buildProps(node, context, props = node.props, isComponent, isDynamicCom
|
|
|
14112
14390
|
if (dynamicPropNames.length) patchFlag |= 8;
|
|
14113
14391
|
if (hasHydrationEventBinding) patchFlag |= 32;
|
|
14114
14392
|
}
|
|
14115
|
-
|
|
14393
|
+
const needsPatch = (patchFlag === 0 || patchFlag === 32) && (hasRef || hasVnodeHook || runtimeDirectives.length > 0);
|
|
14394
|
+
if (!shouldUseBlock && needsPatch) patchFlag |= 512;
|
|
14116
14395
|
if (!context.inSSR && propsExpression) switch (propsExpression.type) {
|
|
14117
14396
|
case 15:
|
|
14118
14397
|
let classKeyIndex = -1;
|
|
@@ -14133,16 +14412,16 @@ function buildProps(node, context, props = node.props, isComponent, isDynamicCom
|
|
|
14133
14412
|
} else propsExpression = createCallExpression(context.helper(NORMALIZE_PROPS), [propsExpression]);
|
|
14134
14413
|
break;
|
|
14135
14414
|
case 14: break;
|
|
14136
|
-
default:
|
|
14137
|
-
propsExpression = createCallExpression(context.helper(NORMALIZE_PROPS), [createCallExpression(context.helper(GUARD_REACTIVE_PROPS), [propsExpression])]);
|
|
14138
|
-
break;
|
|
14415
|
+
default: propsExpression = createCallExpression(context.helper(NORMALIZE_PROPS), [createCallExpression(context.helper(GUARD_REACTIVE_PROPS), [propsExpression])]);
|
|
14139
14416
|
}
|
|
14140
14417
|
return {
|
|
14141
14418
|
props: propsExpression,
|
|
14142
14419
|
directives: runtimeDirectives,
|
|
14143
14420
|
patchFlag,
|
|
14144
14421
|
dynamicPropNames,
|
|
14145
|
-
shouldUseBlock
|
|
14422
|
+
shouldUseBlock,
|
|
14423
|
+
needsPatch,
|
|
14424
|
+
isBlockRequired
|
|
14146
14425
|
};
|
|
14147
14426
|
}
|
|
14148
14427
|
function dedupeProperties(properties) {
|
|
@@ -14243,10 +14522,12 @@ function processSlotOutlet(node, context) {
|
|
|
14243
14522
|
for (let i = 0; i < node.props.length; i++) {
|
|
14244
14523
|
const p = node.props[i];
|
|
14245
14524
|
if (p.type === 6) {
|
|
14246
|
-
if (p.value)
|
|
14247
|
-
|
|
14248
|
-
|
|
14249
|
-
|
|
14525
|
+
if (p.value) {
|
|
14526
|
+
if (p.name === "name") slotName = JSON.stringify(p.value.content);
|
|
14527
|
+
else {
|
|
14528
|
+
p.name = camelize(p.name);
|
|
14529
|
+
nonNameProps.push(p);
|
|
14530
|
+
}
|
|
14250
14531
|
}
|
|
14251
14532
|
} else if (p.name === "bind" && isStaticArgOf(p.arg, "name")) {
|
|
14252
14533
|
if (p.exp) slotName = p.exp;
|
|
@@ -14275,16 +14556,17 @@ const transformOn$1 = (dir, node, context, augmentor) => {
|
|
|
14275
14556
|
const { loc, modifiers, arg } = dir;
|
|
14276
14557
|
if (!dir.exp && !modifiers.length) context.onError(createCompilerError(35, loc));
|
|
14277
14558
|
let eventName;
|
|
14278
|
-
if (arg.type === 4)
|
|
14279
|
-
|
|
14280
|
-
|
|
14281
|
-
|
|
14282
|
-
|
|
14283
|
-
|
|
14284
|
-
|
|
14285
|
-
|
|
14286
|
-
|
|
14287
|
-
|
|
14559
|
+
if (arg.type === 4) {
|
|
14560
|
+
if (arg.isStatic) {
|
|
14561
|
+
let rawName = arg.content;
|
|
14562
|
+
if (rawName.startsWith("vue:")) rawName = `vnode-${rawName.slice(4)}`;
|
|
14563
|
+
eventName = createSimpleExpression(node.tagType !== 0 || rawName.startsWith("vnode") || !/[A-Z]/.test(rawName) ? toHandlerKey(camelize(rawName)) : `on:${rawName}`, true, arg.loc);
|
|
14564
|
+
} else eventName = createCompoundExpression([
|
|
14565
|
+
`${context.helperString(TO_HANDLER_KEY)}(`,
|
|
14566
|
+
arg,
|
|
14567
|
+
`)`
|
|
14568
|
+
]);
|
|
14569
|
+
} else {
|
|
14288
14570
|
eventName = arg;
|
|
14289
14571
|
eventName.children.unshift(`${context.helperString(TO_HANDLER_KEY)}(`);
|
|
14290
14572
|
eventName.children.push(`)`);
|
|
@@ -14301,13 +14583,15 @@ const transformOn$1 = (dir, node, context, augmentor) => {
|
|
|
14301
14583
|
exp = dir.exp = processExpression(exp, context, false, hasMultipleStatements);
|
|
14302
14584
|
isInlineStatement && context.removeIdentifiers(`$event`);
|
|
14303
14585
|
shouldCache = context.cacheHandlers && !context.inVOnce && !(exp.type === 4 && exp.constType > 0) && !(isMemberExp && node.tagType === 1) && !hasScopeRef(exp, context.identifiers);
|
|
14304
|
-
if (shouldCache && isMemberExp)
|
|
14305
|
-
|
|
14306
|
-
|
|
14307
|
-
|
|
14308
|
-
|
|
14309
|
-
|
|
14310
|
-
|
|
14586
|
+
if (shouldCache && isMemberExp) {
|
|
14587
|
+
if (exp.type === 4) exp.content = `${exp.content} && ${exp.content}(...args)`;
|
|
14588
|
+
else exp.children = [
|
|
14589
|
+
...exp.children,
|
|
14590
|
+
` && `,
|
|
14591
|
+
...exp.children,
|
|
14592
|
+
`(...args)`
|
|
14593
|
+
];
|
|
14594
|
+
}
|
|
14311
14595
|
}
|
|
14312
14596
|
if (isInlineStatement || shouldCache && isMemberExp) exp = createCompoundExpression([
|
|
14313
14597
|
`${isInlineStatement ? context.isTS ? `($event: any)` : `$event` : `${context.isTS ? `\n//@ts-ignore\n` : ``}(...args)`} => ${hasMultipleStatements ? `{` : `(`}`,
|
|
@@ -14335,11 +14619,14 @@ const transformBind = (dir, _node, context) => {
|
|
|
14335
14619
|
arg.children.unshift(`(`);
|
|
14336
14620
|
arg.children.push(`) || ""`);
|
|
14337
14621
|
} else if (!arg.isStatic) arg.content = arg.content ? `${arg.content} || ""` : `""`;
|
|
14338
|
-
if (modifiers.some((mod) => mod.content === "camel"))
|
|
14339
|
-
|
|
14340
|
-
|
|
14341
|
-
|
|
14342
|
-
|
|
14622
|
+
if (modifiers.some((mod) => mod.content === "camel")) {
|
|
14623
|
+
if (arg.type === 4) {
|
|
14624
|
+
if (arg.isStatic) arg.content = camelize(arg.content);
|
|
14625
|
+
else arg.content = `${context.helperString(CAMELIZE)}(${arg.content})`;
|
|
14626
|
+
} else {
|
|
14627
|
+
arg.children.unshift(`${context.helperString(CAMELIZE)}(`);
|
|
14628
|
+
arg.children.push(`)`);
|
|
14629
|
+
}
|
|
14343
14630
|
}
|
|
14344
14631
|
if (!context.inSSR) {
|
|
14345
14632
|
if (modifiers.some((mod) => mod.content === "prop")) injectPrefix(arg, ".");
|
|
@@ -14348,9 +14635,10 @@ const transformBind = (dir, _node, context) => {
|
|
|
14348
14635
|
return { props: [createObjectProperty(arg, exp)] };
|
|
14349
14636
|
};
|
|
14350
14637
|
const injectPrefix = (arg, prefix) => {
|
|
14351
|
-
if (arg.type === 4)
|
|
14352
|
-
|
|
14353
|
-
|
|
14638
|
+
if (arg.type === 4) {
|
|
14639
|
+
if (arg.isStatic) arg.content = prefix + arg.content;
|
|
14640
|
+
else arg.content = `\`${prefix}\${${arg.content}}\``;
|
|
14641
|
+
} else {
|
|
14354
14642
|
arg.children.unshift(`'${prefix}' + (`);
|
|
14355
14643
|
arg.children.push(`)`);
|
|
14356
14644
|
}
|
|
@@ -14445,20 +14733,21 @@ const transformModel$1 = (dir, node, context) => {
|
|
|
14445
14733
|
const eventName = arg ? isStaticExp(arg) ? `onUpdate:${camelize(arg.content)}` : createCompoundExpression(["\"onUpdate:\" + ", arg]) : `onUpdate:modelValue`;
|
|
14446
14734
|
let assignmentExp;
|
|
14447
14735
|
const eventArg = context.isTS ? `($event: any)` : `$event`;
|
|
14448
|
-
if (maybeRef)
|
|
14449
|
-
|
|
14450
|
-
|
|
14451
|
-
`).value = $event)`
|
|
14452
|
-
]);
|
|
14453
|
-
else {
|
|
14454
|
-
const altAssignment = bindingType === "setup-let" ? `${rawExp} = $event` : `null`;
|
|
14455
|
-
assignmentExp = createCompoundExpression([
|
|
14456
|
-
`${eventArg} => (${context.helperString(IS_REF)}(${rawExp}) ? (`,
|
|
14736
|
+
if (maybeRef) {
|
|
14737
|
+
if (bindingType === "setup-ref") assignmentExp = createCompoundExpression([
|
|
14738
|
+
`${eventArg} => ((`,
|
|
14457
14739
|
createSimpleExpression(rawExp, false, exp.loc),
|
|
14458
|
-
`).value = $event
|
|
14740
|
+
`).value = $event)`
|
|
14459
14741
|
]);
|
|
14460
|
-
|
|
14461
|
-
|
|
14742
|
+
else {
|
|
14743
|
+
const altAssignment = bindingType === "setup-let" ? `${rawExp} = $event` : `null`;
|
|
14744
|
+
assignmentExp = createCompoundExpression([
|
|
14745
|
+
`${eventArg} => (${context.helperString(IS_REF)}(${rawExp}) ? (`,
|
|
14746
|
+
createSimpleExpression(rawExp, false, exp.loc),
|
|
14747
|
+
`).value = $event : ${altAssignment})`
|
|
14748
|
+
]);
|
|
14749
|
+
}
|
|
14750
|
+
} else assignmentExp = createCompoundExpression([
|
|
14462
14751
|
`${eventArg} => ((`,
|
|
14463
14752
|
exp,
|
|
14464
14753
|
`) = $event)`
|
|
@@ -14517,11 +14806,12 @@ function parseFilter(node, context) {
|
|
|
14517
14806
|
if (c === 96 && prev !== 92) inTemplateString = false;
|
|
14518
14807
|
} else if (inRegex) {
|
|
14519
14808
|
if (c === 47 && prev !== 92) inRegex = false;
|
|
14520
|
-
} else if (c === 124 && exp.charCodeAt(i + 1) !== 124 && exp.charCodeAt(i - 1) !== 124 && !curly && !square && !paren)
|
|
14521
|
-
|
|
14522
|
-
|
|
14523
|
-
|
|
14524
|
-
|
|
14809
|
+
} else if (c === 124 && exp.charCodeAt(i + 1) !== 124 && exp.charCodeAt(i - 1) !== 124 && !curly && !square && !paren) {
|
|
14810
|
+
if (expression === void 0) {
|
|
14811
|
+
lastFilterIndex = i + 1;
|
|
14812
|
+
expression = exp.slice(0, i).trim();
|
|
14813
|
+
} else pushFilter();
|
|
14814
|
+
} else {
|
|
14525
14815
|
switch (c) {
|
|
14526
14816
|
case 34:
|
|
14527
14817
|
inDouble = true;
|
|
@@ -14547,9 +14837,7 @@ function parseFilter(node, context) {
|
|
|
14547
14837
|
case 123:
|
|
14548
14838
|
curly++;
|
|
14549
14839
|
break;
|
|
14550
|
-
case 125:
|
|
14551
|
-
curly--;
|
|
14552
|
-
break;
|
|
14840
|
+
case 125: curly--;
|
|
14553
14841
|
}
|
|
14554
14842
|
if (c === 47) {
|
|
14555
14843
|
let j = i - 1;
|
|
@@ -14808,8 +15096,6 @@ const transformModel = (dir, node, context) => {
|
|
|
14808
15096
|
case "file":
|
|
14809
15097
|
isInvalidType = true;
|
|
14810
15098
|
context.onError(createDOMCompilerError(60, dir.loc));
|
|
14811
|
-
break;
|
|
14812
|
-
default: break;
|
|
14813
15099
|
}
|
|
14814
15100
|
} else if (hasDynamicKeyVBind(node)) directiveToUse = V_MODEL_DYNAMIC;
|
|
14815
15101
|
} else if (tag === "select") directiveToUse = V_MODEL_SELECT;
|
|
@@ -14820,27 +15106,37 @@ const transformModel = (dir, node, context) => {
|
|
|
14820
15106
|
};
|
|
14821
15107
|
//#endregion
|
|
14822
15108
|
//#region packages/compiler-dom/src/transforms/vOn.ts
|
|
14823
|
-
const isEventOptionModifier =
|
|
14824
|
-
const isNonKeyModifier =
|
|
14825
|
-
const maybeKeyModifier =
|
|
14826
|
-
const isKeyboardEvent =
|
|
15109
|
+
const isEventOptionModifier = /*@__PURE__*/ makeMap(`passive,once,capture`);
|
|
15110
|
+
const isNonKeyModifier = /*@__PURE__*/ makeMap("stop,prevent,self,ctrl,shift,alt,meta,exact,middle");
|
|
15111
|
+
const maybeKeyModifier = /*@__PURE__*/ makeMap("left,right");
|
|
15112
|
+
const isKeyboardEvent = /*@__PURE__*/ makeMap(`onkeyup,onkeydown,onkeypress`);
|
|
14827
15113
|
const resolveModifiers = (key, modifiers, context, loc) => {
|
|
14828
15114
|
const keyModifiers = [];
|
|
14829
15115
|
const nonKeyModifiers = [];
|
|
14830
15116
|
const eventOptionModifiers = [];
|
|
14831
15117
|
for (let i = 0; i < modifiers.length; i++) {
|
|
14832
15118
|
const modifier = modifiers[i].content;
|
|
15119
|
+
if (modifier === "delegate") {
|
|
15120
|
+
if (context) {
|
|
15121
|
+
const error = /* @__PURE__ */ new SyntaxError(`.delegate modifier is only supported in Vapor components.`);
|
|
15122
|
+
error.loc = modifiers[i].loc;
|
|
15123
|
+
context.onWarn(error);
|
|
15124
|
+
}
|
|
15125
|
+
continue;
|
|
15126
|
+
}
|
|
14833
15127
|
if (modifier === "native" && context && checkCompatEnabled("COMPILER_V_ON_NATIVE", context, loc)) eventOptionModifiers.push(modifier);
|
|
14834
15128
|
else if (isEventOptionModifier(modifier)) eventOptionModifiers.push(modifier);
|
|
14835
15129
|
else {
|
|
14836
15130
|
const keyString = isString(key) ? key : isStaticExp(key) ? key.content : null;
|
|
14837
|
-
if (maybeKeyModifier(modifier))
|
|
14838
|
-
|
|
14839
|
-
|
|
14840
|
-
|
|
14841
|
-
|
|
14842
|
-
|
|
14843
|
-
|
|
15131
|
+
if (maybeKeyModifier(modifier)) {
|
|
15132
|
+
if (keyString) {
|
|
15133
|
+
if (isKeyboardEvent(keyString.toLowerCase())) keyModifiers.push(modifier);
|
|
15134
|
+
else nonKeyModifiers.push(modifier);
|
|
15135
|
+
} else {
|
|
15136
|
+
keyModifiers.push(modifier);
|
|
15137
|
+
nonKeyModifiers.push(modifier);
|
|
15138
|
+
}
|
|
15139
|
+
} else if (isNonKeyModifier(modifier)) nonKeyModifiers.push(modifier);
|
|
14844
15140
|
else keyModifiers.push(modifier);
|
|
14845
15141
|
}
|
|
14846
15142
|
}
|
|
@@ -14978,7 +15274,7 @@ const dataAriaRE = /^(?:data|aria)-/;
|
|
|
14978
15274
|
const isStringifiableAttr = (name, ns) => {
|
|
14979
15275
|
return (ns === 0 ? isKnownHtmlAttr(name) : ns === 1 ? isKnownSvgAttr(name) : ns === 2 ? isKnownMathMLAttr(name) : false) || dataAriaRE.test(name);
|
|
14980
15276
|
};
|
|
14981
|
-
const isNonStringifiable =
|
|
15277
|
+
const isNonStringifiable = /*@__PURE__*/ makeMap(`caption,thead,tr,th,tbody,td,tfoot,colgroup,col`);
|
|
14982
15278
|
/**
|
|
14983
15279
|
* for a cached node, analyze it and return:
|
|
14984
15280
|
* - false: bailed (contains non-stringifiable props or runtime constant)
|
|
@@ -15049,10 +15345,11 @@ function stringifyElement(node, context) {
|
|
|
15049
15345
|
res += ` ${p.arg.content}="__VUE_EXP_START__${exp.content}__VUE_EXP_END__"`;
|
|
15050
15346
|
continue;
|
|
15051
15347
|
}
|
|
15052
|
-
if (isBooleanAttr(p.arg.content) && exp.content === "false") continue;
|
|
15348
|
+
if ((isBooleanAttr(p.arg.content) || p.arg.content === "hidden") && exp.content === "false") continue;
|
|
15053
15349
|
let evaluated = evaluateConstant(exp);
|
|
15054
15350
|
if (evaluated != null) {
|
|
15055
15351
|
const arg = p.arg && p.arg.content;
|
|
15352
|
+
if (arg === "hidden" && typeof evaluated === "number" && !includeBooleanAttr(evaluated)) continue;
|
|
15056
15353
|
if (arg === "class") evaluated = normalizeClass(evaluated);
|
|
15057
15354
|
else if (arg === "style") evaluated = stringifyStyle(normalizeStyle(evaluated));
|
|
15058
15355
|
res += ` ${p.arg.content}="${escapeHtml(evaluated)}"`;
|
|
@@ -15112,8 +15409,10 @@ function compile(src, options = {}) {
|
|
|
15112
15409
|
//#region packages/vue-compat/src/index.ts
|
|
15113
15410
|
const compileCache = Object.create(null);
|
|
15114
15411
|
function compileToFunction(template, options) {
|
|
15115
|
-
if (!isString(template))
|
|
15116
|
-
|
|
15412
|
+
if (!isString(template)) {
|
|
15413
|
+
if (template.nodeType) template = template.innerHTML;
|
|
15414
|
+
else return NOOP;
|
|
15415
|
+
}
|
|
15117
15416
|
const key = genCacheKey(template, options);
|
|
15118
15417
|
const cached = compileCache[key];
|
|
15119
15418
|
if (cached) return cached;
|