@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.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,9 +70,9 @@ 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 isBuiltInTag =
|
|
75
|
-
const isBuiltInDirective =
|
|
73
|
+
const isReservedProp = /*@__PURE__*/ makeMap(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted");
|
|
74
|
+
const isBuiltInTag = /*#__PURE__*/ makeMap("slot,component");
|
|
75
|
+
const isBuiltInDirective = /*@__PURE__*/ makeMap("bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo");
|
|
76
76
|
const cacheStringFunction = (fn) => {
|
|
77
77
|
const cache = Object.create(null);
|
|
78
78
|
return ((str) => {
|
|
@@ -184,7 +184,7 @@ const slotFlagsText = {
|
|
|
184
184
|
[2]: "DYNAMIC",
|
|
185
185
|
[3]: "FORWARDED"
|
|
186
186
|
};
|
|
187
|
-
const isGloballyAllowed =
|
|
187
|
+
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");
|
|
188
188
|
//#endregion
|
|
189
189
|
//#region packages/shared/src/codeframe.ts
|
|
190
190
|
const range = 2;
|
|
@@ -238,10 +238,10 @@ function normalizeStyle(value) {
|
|
|
238
238
|
}
|
|
239
239
|
const listDelimiterRE = /;(?![^(]*\))/g;
|
|
240
240
|
const propertyDelimiterRE = /:([^]+)/;
|
|
241
|
-
const styleCommentRE =
|
|
241
|
+
const styleCommentRE = /"(?:[^"\\]|\\[^])*"|'(?:[^'\\]|\\[^])*'|\\[^]|\/\*[^]*?\*\//g;
|
|
242
242
|
function parseStringStyle(cssText) {
|
|
243
243
|
const ret = {};
|
|
244
|
-
cssText.replace(styleCommentRE, "").split(listDelimiterRE).forEach((item) => {
|
|
244
|
+
cssText.replace(styleCommentRE, (match) => match.startsWith("/*") ? "" : match).split(listDelimiterRE).forEach((item) => {
|
|
245
245
|
if (item) {
|
|
246
246
|
const tmp = item.split(propertyDelimiterRE);
|
|
247
247
|
tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim());
|
|
@@ -291,22 +291,22 @@ const VOID_TAGS = "area,base,br,col,embed,hr,img,input,link,meta,param,source,tr
|
|
|
291
291
|
* Compiler only.
|
|
292
292
|
* Do NOT use in runtime code paths unless behind `__DEV__` flag.
|
|
293
293
|
*/
|
|
294
|
-
const isHTMLTag =
|
|
294
|
+
const isHTMLTag = /*@__PURE__*/ makeMap(HTML_TAGS);
|
|
295
295
|
/**
|
|
296
296
|
* Compiler only.
|
|
297
297
|
* Do NOT use in runtime code paths unless behind `__DEV__` flag.
|
|
298
298
|
*/
|
|
299
|
-
const isSVGTag =
|
|
299
|
+
const isSVGTag = /*@__PURE__*/ makeMap(SVG_TAGS);
|
|
300
300
|
/**
|
|
301
301
|
* Compiler only.
|
|
302
302
|
* Do NOT use in runtime code paths unless behind `__DEV__` flag.
|
|
303
303
|
*/
|
|
304
|
-
const isMathMLTag =
|
|
304
|
+
const isMathMLTag = /*@__PURE__*/ makeMap(MATH_TAGS);
|
|
305
305
|
/**
|
|
306
306
|
* Compiler only.
|
|
307
307
|
* Do NOT use in runtime code paths unless behind `__DEV__` flag.
|
|
308
308
|
*/
|
|
309
|
-
const isVoidTag =
|
|
309
|
+
const isVoidTag = /*@__PURE__*/ makeMap(VOID_TAGS);
|
|
310
310
|
//#endregion
|
|
311
311
|
//#region packages/shared/src/domAttrConfig.ts
|
|
312
312
|
/**
|
|
@@ -321,11 +321,11 @@ const isVoidTag = /* @__PURE__ */ makeMap(VOID_TAGS);
|
|
|
321
321
|
* - readonly -> readOnly
|
|
322
322
|
*/
|
|
323
323
|
const specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;
|
|
324
|
-
const isSpecialBooleanAttr =
|
|
324
|
+
const isSpecialBooleanAttr = /*@__PURE__*/ makeMap(specialBooleanAttrs);
|
|
325
325
|
/**
|
|
326
326
|
* The full list is needed during SSR to produce the correct initial markup.
|
|
327
327
|
*/
|
|
328
|
-
const isBooleanAttr =
|
|
328
|
+
const isBooleanAttr = /*@__PURE__*/ makeMap(specialBooleanAttrs + ",async,autofocus,autoplay,controls,default,defer,disabled,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected");
|
|
329
329
|
/**
|
|
330
330
|
* Boolean attributes should be included if the value is truthy or ''.
|
|
331
331
|
* e.g. `<select multiple>` compiles to `{ multiple: '' }`
|
|
@@ -339,15 +339,15 @@ function includeBooleanAttr(value) {
|
|
|
339
339
|
* Don't also forget to allow `data-*` and `aria-*`!
|
|
340
340
|
* Generated from https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes
|
|
341
341
|
*/
|
|
342
|
-
const isKnownHtmlAttr =
|
|
342
|
+
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");
|
|
343
343
|
/**
|
|
344
344
|
* Generated from https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute
|
|
345
345
|
*/
|
|
346
|
-
const isKnownSvgAttr =
|
|
346
|
+
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");
|
|
347
347
|
/**
|
|
348
348
|
* Generated from https://developer.mozilla.org/en-US/docs/Web/MathML/Attribute
|
|
349
349
|
*/
|
|
350
|
-
const isKnownMathMLAttr =
|
|
350
|
+
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");
|
|
351
351
|
/**
|
|
352
352
|
* Shared between server-renderer and runtime-core hydration logic
|
|
353
353
|
*/
|
|
@@ -407,13 +407,54 @@ function getEscapedCssVarName(key, doubleEscape) {
|
|
|
407
407
|
}
|
|
408
408
|
//#endregion
|
|
409
409
|
//#region packages/shared/src/looseEqual.ts
|
|
410
|
-
function looseCompareArrays(a, b) {
|
|
410
|
+
function looseCompareArrays(a, b, seen) {
|
|
411
411
|
if (a.length !== b.length) return false;
|
|
412
412
|
let equal = true;
|
|
413
|
-
for (let i = 0; equal && i < a.length; i++) equal = looseEqual(a[i], b[i]);
|
|
413
|
+
for (let i = 0; equal && i < a.length; i++) equal = looseEqual(a[i], b[i], seen);
|
|
414
414
|
return equal;
|
|
415
415
|
}
|
|
416
|
-
function
|
|
416
|
+
function looseCompareCollections(a, b, seen) {
|
|
417
|
+
if (a.size !== b.size) return false;
|
|
418
|
+
const candidates = Array.from(b);
|
|
419
|
+
const matched = new Uint8Array(candidates.length);
|
|
420
|
+
for (const item of a) {
|
|
421
|
+
let index = -1;
|
|
422
|
+
for (let i = 0; i < candidates.length; i++) if (!matched[i] && looseEqual(item, candidates[i], seen)) {
|
|
423
|
+
index = i;
|
|
424
|
+
break;
|
|
425
|
+
}
|
|
426
|
+
if (index < 0) return false;
|
|
427
|
+
matched[index] = 1;
|
|
428
|
+
}
|
|
429
|
+
return true;
|
|
430
|
+
}
|
|
431
|
+
function looseCompareObjects(a, b, seen) {
|
|
432
|
+
let aValidType = isMap(a);
|
|
433
|
+
let bValidType = isMap(b);
|
|
434
|
+
if (aValidType || bValidType) return aValidType && bValidType ? looseCompareCollections(a, b, seen) : false;
|
|
435
|
+
aValidType = isSet(a);
|
|
436
|
+
bValidType = isSet(b);
|
|
437
|
+
if (aValidType || bValidType) return aValidType && bValidType ? looseCompareCollections(a, b, seen) : false;
|
|
438
|
+
if (Object.keys(a).length !== Object.keys(b).length) return false;
|
|
439
|
+
for (const key in a) {
|
|
440
|
+
const aHasKey = a.hasOwnProperty(key);
|
|
441
|
+
const bHasKey = b.hasOwnProperty(key);
|
|
442
|
+
if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key], seen)) return false;
|
|
443
|
+
}
|
|
444
|
+
return String(a) === String(b);
|
|
445
|
+
}
|
|
446
|
+
function looseCompareNested(a, b, seen, compare) {
|
|
447
|
+
if (!seen) seen = [/* @__PURE__ */ new Map(), /* @__PURE__ */ new Map()];
|
|
448
|
+
const [seenA, seenB] = seen;
|
|
449
|
+
if (seenA.has(a) || seenB.has(b)) return seenA.get(a) === b && seenB.get(b) === a;
|
|
450
|
+
seenA.set(a, b);
|
|
451
|
+
seenB.set(b, a);
|
|
452
|
+
const equal = compare(a, b, seen);
|
|
453
|
+
seenA.delete(a);
|
|
454
|
+
seenB.delete(b);
|
|
455
|
+
return equal;
|
|
456
|
+
}
|
|
457
|
+
function looseEqual(a, b, seen) {
|
|
417
458
|
if (a === b) return true;
|
|
418
459
|
let aValidType = isDate(a);
|
|
419
460
|
let bValidType = isDate(b);
|
|
@@ -423,17 +464,12 @@ function looseEqual(a, b) {
|
|
|
423
464
|
if (aValidType || bValidType) return a === b;
|
|
424
465
|
aValidType = isArray(a);
|
|
425
466
|
bValidType = isArray(b);
|
|
426
|
-
if (aValidType || bValidType) return aValidType && bValidType ?
|
|
467
|
+
if (aValidType || bValidType) return aValidType && bValidType ? looseCompareNested(a, b, seen, looseCompareArrays) : false;
|
|
427
468
|
aValidType = isObject(a);
|
|
428
469
|
bValidType = isObject(b);
|
|
429
470
|
if (aValidType || bValidType) {
|
|
430
471
|
if (!aValidType || !bValidType) return false;
|
|
431
|
-
|
|
432
|
-
for (const key in a) {
|
|
433
|
-
const aHasKey = a.hasOwnProperty(key);
|
|
434
|
-
const bHasKey = b.hasOwnProperty(key);
|
|
435
|
-
if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key])) return false;
|
|
436
|
-
}
|
|
472
|
+
return looseCompareNested(a, b, seen, looseCompareObjects);
|
|
437
473
|
}
|
|
438
474
|
return String(a) === String(b);
|
|
439
475
|
}
|
|
@@ -563,6 +599,8 @@ function setupFlagsHandler(target) {
|
|
|
563
599
|
function warn$2(msg, ...args) {
|
|
564
600
|
console.warn(`[Vue warn] ${msg}`, ...args);
|
|
565
601
|
}
|
|
602
|
+
//#endregion
|
|
603
|
+
//#region packages/reactivity/src/system.ts
|
|
566
604
|
const notifyBuffer = [];
|
|
567
605
|
let batchDepth = 0;
|
|
568
606
|
let activeSub = void 0;
|
|
@@ -701,13 +739,23 @@ function endTracking(sub, prevSub) {
|
|
|
701
739
|
sub.flags &= -5;
|
|
702
740
|
}
|
|
703
741
|
function flush() {
|
|
742
|
+
let hasError = false;
|
|
743
|
+
let error;
|
|
704
744
|
while (notifyIndex < notifyBufferLength) {
|
|
705
745
|
const effect = notifyBuffer[notifyIndex];
|
|
706
746
|
notifyBuffer[notifyIndex++] = void 0;
|
|
707
|
-
|
|
747
|
+
try {
|
|
748
|
+
effect.notify();
|
|
749
|
+
} catch (err) {
|
|
750
|
+
if (!hasError) {
|
|
751
|
+
hasError = true;
|
|
752
|
+
error = err;
|
|
753
|
+
}
|
|
754
|
+
}
|
|
708
755
|
}
|
|
709
756
|
notifyIndex = 0;
|
|
710
757
|
notifyBufferLength = 0;
|
|
758
|
+
if (hasError) throw error;
|
|
711
759
|
}
|
|
712
760
|
function checkDirty(link, sub) {
|
|
713
761
|
let stack;
|
|
@@ -791,7 +839,7 @@ var Dep = class {
|
|
|
791
839
|
}
|
|
792
840
|
set subs(value) {
|
|
793
841
|
this._subs = value;
|
|
794
|
-
if (value === void 0) this.map.delete(this.key);
|
|
842
|
+
if (value === void 0 && this.map) this.map.delete(this.key);
|
|
795
843
|
}
|
|
796
844
|
};
|
|
797
845
|
const targetMap = /* @__PURE__ */ new WeakMap();
|
|
@@ -874,9 +922,7 @@ function trigger(target, type, key, newValue, oldValue, oldTarget) {
|
|
|
874
922
|
if (isMap(target)) run(depsMap.get(MAP_KEY_ITERATE_KEY));
|
|
875
923
|
}
|
|
876
924
|
break;
|
|
877
|
-
case "set":
|
|
878
|
-
if (isMap(target)) run(depsMap.get(ITERATE_KEY));
|
|
879
|
-
break;
|
|
925
|
+
case "set": if (isMap(target)) run(depsMap.get(ITERATE_KEY));
|
|
880
926
|
}
|
|
881
927
|
}
|
|
882
928
|
}
|
|
@@ -891,13 +937,17 @@ function getDepFromReactive(object, key) {
|
|
|
891
937
|
/**
|
|
892
938
|
* Track array iteration and return:
|
|
893
939
|
* - if input is reactive: a cloned raw array with reactive values
|
|
894
|
-
* - if input is
|
|
940
|
+
* - if input is readonly: a cloned raw array with readonly values, preserving
|
|
941
|
+
* reactivity
|
|
942
|
+
* - if input is raw or shallow: the original raw array
|
|
895
943
|
*/
|
|
896
944
|
function reactiveReadArray(array) {
|
|
897
945
|
const raw = /* @__PURE__ */ toRaw(array);
|
|
898
946
|
if (raw === array) return raw;
|
|
899
947
|
track(raw, "iterate", ARRAY_ITERATE_KEY);
|
|
900
|
-
|
|
948
|
+
if (/* @__PURE__ */ isShallow(array)) return raw;
|
|
949
|
+
if (!/* @__PURE__ */ isReadonly(array)) return raw.map(toReactive);
|
|
950
|
+
return /* @__PURE__ */ isReactive(array) ? raw.map((item) => toReadonly(toReactive(item))) : raw.map(toReadonly);
|
|
901
951
|
}
|
|
902
952
|
/**
|
|
903
953
|
* Track array iteration and return raw array
|
|
@@ -1073,8 +1123,8 @@ function noTracking(self, method, args = []) {
|
|
|
1073
1123
|
}
|
|
1074
1124
|
//#endregion
|
|
1075
1125
|
//#region packages/reactivity/src/baseHandlers.ts
|
|
1076
|
-
const isNonTrackableKeys =
|
|
1077
|
-
const builtInSymbols = new Set(
|
|
1126
|
+
const isNonTrackableKeys = /*@__PURE__*/ makeMap(`__proto__,__v_isRef,__isVue`);
|
|
1127
|
+
const builtInSymbols = new Set(/*@__PURE__*/ Object.getOwnPropertyNames(Symbol).filter((key) => key !== "arguments" && key !== "caller").map((key) => Symbol[key]).filter(isSymbol));
|
|
1078
1128
|
function hasOwnProperty(key) {
|
|
1079
1129
|
if (!isSymbol(key)) key = String(key);
|
|
1080
1130
|
const obj = /* @__PURE__ */ toRaw(this);
|
|
@@ -1129,12 +1179,14 @@ var MutableReactiveHandler = class extends BaseReactiveHandler {
|
|
|
1129
1179
|
oldValue = /* @__PURE__ */ toRaw(oldValue);
|
|
1130
1180
|
value = /* @__PURE__ */ toRaw(value);
|
|
1131
1181
|
}
|
|
1132
|
-
if (!isArrayWithIntegerKey && /* @__PURE__ */ isRef(oldValue) && !/* @__PURE__ */ isRef(value))
|
|
1133
|
-
|
|
1134
|
-
|
|
1135
|
-
|
|
1136
|
-
|
|
1137
|
-
|
|
1182
|
+
if (!isArrayWithIntegerKey && /* @__PURE__ */ isRef(oldValue) && !/* @__PURE__ */ isRef(value)) {
|
|
1183
|
+
if (isOldValueReadonly) {
|
|
1184
|
+
warn$2(`Set operation on key "${String(key)}" failed: target is readonly.`, target[key]);
|
|
1185
|
+
return true;
|
|
1186
|
+
} else {
|
|
1187
|
+
oldValue.value = value;
|
|
1188
|
+
return true;
|
|
1189
|
+
}
|
|
1138
1190
|
}
|
|
1139
1191
|
}
|
|
1140
1192
|
const hadKey = isArrayWithIntegerKey ? Number(key) < target.length : hasOwn(target, key);
|
|
@@ -1175,10 +1227,10 @@ var ReadonlyReactiveHandler = class extends BaseReactiveHandler {
|
|
|
1175
1227
|
return true;
|
|
1176
1228
|
}
|
|
1177
1229
|
};
|
|
1178
|
-
const mutableHandlers =
|
|
1179
|
-
const readonlyHandlers =
|
|
1180
|
-
const shallowReactiveHandlers =
|
|
1181
|
-
const shallowReadonlyHandlers =
|
|
1230
|
+
const mutableHandlers = /*@__PURE__*/ new MutableReactiveHandler();
|
|
1231
|
+
const readonlyHandlers = /*@__PURE__*/ new ReadonlyReactiveHandler();
|
|
1232
|
+
const shallowReactiveHandlers = /*@__PURE__*/ new MutableReactiveHandler(true);
|
|
1233
|
+
const shallowReadonlyHandlers = /*@__PURE__*/ new ReadonlyReactiveHandler(true);
|
|
1182
1234
|
//#endregion
|
|
1183
1235
|
//#region packages/reactivity/src/collectionHandlers.ts
|
|
1184
1236
|
const toShallow = (value) => value;
|
|
@@ -1329,10 +1381,10 @@ function createInstrumentationGetter(isReadonly, shallow) {
|
|
|
1329
1381
|
return Reflect.get(hasOwn(instrumentations, key) && key in target ? instrumentations : target, key, receiver);
|
|
1330
1382
|
};
|
|
1331
1383
|
}
|
|
1332
|
-
const mutableCollectionHandlers = { get:
|
|
1333
|
-
const shallowCollectionHandlers = { get:
|
|
1334
|
-
const readonlyCollectionHandlers = { get:
|
|
1335
|
-
const shallowReadonlyCollectionHandlers = { get:
|
|
1384
|
+
const mutableCollectionHandlers = { get: /*@__PURE__*/ createInstrumentationGetter(false, false) };
|
|
1385
|
+
const shallowCollectionHandlers = { get: /*@__PURE__*/ createInstrumentationGetter(false, true) };
|
|
1386
|
+
const readonlyCollectionHandlers = { get: /*@__PURE__*/ createInstrumentationGetter(true, false) };
|
|
1387
|
+
const shallowReadonlyCollectionHandlers = { get: /*@__PURE__*/ createInstrumentationGetter(true, true) };
|
|
1336
1388
|
function checkIdentityKeys(target, has, key) {
|
|
1337
1389
|
const rawKey = /* @__PURE__ */ toRaw(key);
|
|
1338
1390
|
if (rawKey !== key && has.call(target, rawKey)) {
|
|
@@ -1357,7 +1409,7 @@ function targetTypeMap(rawType) {
|
|
|
1357
1409
|
default: return 0;
|
|
1358
1410
|
}
|
|
1359
1411
|
}
|
|
1360
|
-
|
|
1412
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
1361
1413
|
function reactive(target) {
|
|
1362
1414
|
if (/* @__PURE__ */ isReadonly(target)) return target;
|
|
1363
1415
|
return createReactiveObject(target, false, mutableHandlers, mutableCollectionHandlers, reactiveMap);
|
|
@@ -1392,7 +1444,7 @@ function reactive(target) {
|
|
|
1392
1444
|
* @param target - The source object.
|
|
1393
1445
|
* @see {@link https://vuejs.org/api/reactivity-advanced.html#shallowreactive}
|
|
1394
1446
|
*/
|
|
1395
|
-
|
|
1447
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
1396
1448
|
function shallowReactive(target) {
|
|
1397
1449
|
return createReactiveObject(target, false, shallowReactiveHandlers, shallowCollectionHandlers, shallowReactiveMap);
|
|
1398
1450
|
}
|
|
@@ -1425,7 +1477,7 @@ function shallowReactive(target) {
|
|
|
1425
1477
|
* @param target - The source object.
|
|
1426
1478
|
* @see {@link https://vuejs.org/api/reactivity-core.html#readonly}
|
|
1427
1479
|
*/
|
|
1428
|
-
|
|
1480
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
1429
1481
|
function readonly(target) {
|
|
1430
1482
|
return createReactiveObject(target, true, readonlyHandlers, readonlyCollectionHandlers, readonlyMap);
|
|
1431
1483
|
}
|
|
@@ -1459,7 +1511,7 @@ function readonly(target) {
|
|
|
1459
1511
|
* @param target - The source object.
|
|
1460
1512
|
* @see {@link https://vuejs.org/api/reactivity-advanced.html#shallowreadonly}
|
|
1461
1513
|
*/
|
|
1462
|
-
|
|
1514
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
1463
1515
|
function shallowReadonly(target) {
|
|
1464
1516
|
return createReactiveObject(target, true, shallowReadonlyHandlers, shallowReadonlyCollectionHandlers, shallowReadonlyMap);
|
|
1465
1517
|
}
|
|
@@ -1496,7 +1548,7 @@ function createReactiveObject(target, isReadonly, baseHandlers, collectionHandle
|
|
|
1496
1548
|
* @param value - The value to check.
|
|
1497
1549
|
* @see {@link https://vuejs.org/api/reactivity-utilities.html#isreactive}
|
|
1498
1550
|
*/
|
|
1499
|
-
|
|
1551
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
1500
1552
|
function isReactive(value) {
|
|
1501
1553
|
if (/* @__PURE__ */ isReadonly(value)) return /* @__PURE__ */ isReactive(value["__v_raw"]);
|
|
1502
1554
|
return !!(value && value["__v_isReactive"]);
|
|
@@ -1512,11 +1564,11 @@ function isReactive(value) {
|
|
|
1512
1564
|
* @param value - The value to check.
|
|
1513
1565
|
* @see {@link https://vuejs.org/api/reactivity-utilities.html#isreadonly}
|
|
1514
1566
|
*/
|
|
1515
|
-
|
|
1567
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
1516
1568
|
function isReadonly(value) {
|
|
1517
1569
|
return !!(value && value["__v_isReadonly"]);
|
|
1518
1570
|
}
|
|
1519
|
-
|
|
1571
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
1520
1572
|
function isShallow(value) {
|
|
1521
1573
|
return !!(value && value["__v_isShallow"]);
|
|
1522
1574
|
}
|
|
@@ -1527,7 +1579,7 @@ function isShallow(value) {
|
|
|
1527
1579
|
* @param value - The value to check.
|
|
1528
1580
|
* @see {@link https://vuejs.org/api/reactivity-utilities.html#isproxy}
|
|
1529
1581
|
*/
|
|
1530
|
-
|
|
1582
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
1531
1583
|
function isProxy(value) {
|
|
1532
1584
|
return value ? !!value["__v_raw"] : false;
|
|
1533
1585
|
}
|
|
@@ -1554,7 +1606,7 @@ function isProxy(value) {
|
|
|
1554
1606
|
* @param observed - The object for which the "raw" value is requested.
|
|
1555
1607
|
* @see {@link https://vuejs.org/api/reactivity-advanced.html#toraw}
|
|
1556
1608
|
*/
|
|
1557
|
-
|
|
1609
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
1558
1610
|
function toRaw(observed) {
|
|
1559
1611
|
const raw = observed && observed["__v_raw"];
|
|
1560
1612
|
return raw ? /* @__PURE__ */ toRaw(raw) : observed;
|
|
@@ -1603,15 +1655,15 @@ const toReactive = (value) => isObject(value) ? /* @__PURE__ */ reactive(value)
|
|
|
1603
1655
|
const toReadonly = (value) => isObject(value) ? /* @__PURE__ */ readonly(value) : value;
|
|
1604
1656
|
//#endregion
|
|
1605
1657
|
//#region packages/reactivity/src/ref.ts
|
|
1606
|
-
|
|
1658
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
1607
1659
|
function isRef(r) {
|
|
1608
1660
|
return r ? r["__v_isRef"] === true : false;
|
|
1609
1661
|
}
|
|
1610
|
-
|
|
1662
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
1611
1663
|
function ref(value) {
|
|
1612
1664
|
return createRef(value, toReactive);
|
|
1613
1665
|
}
|
|
1614
|
-
|
|
1666
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
1615
1667
|
function shallowRef(value) {
|
|
1616
1668
|
return createRef(value);
|
|
1617
1669
|
}
|
|
@@ -1814,7 +1866,7 @@ function customRef(factory) {
|
|
|
1814
1866
|
* @param object - Reactive object to be made into an object of linked refs.
|
|
1815
1867
|
* @see {@link https://vuejs.org/api/reactivity-utilities.html#torefs}
|
|
1816
1868
|
*/
|
|
1817
|
-
|
|
1869
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
1818
1870
|
function toRefs(object) {
|
|
1819
1871
|
const ret = isArray(object) ? new Array(object.length) : {};
|
|
1820
1872
|
for (const key in object) ret[key] = propertyToRef(object, key);
|
|
@@ -1865,7 +1917,7 @@ var GetterRefImpl = class {
|
|
|
1865
1917
|
return this._value = this._getter();
|
|
1866
1918
|
}
|
|
1867
1919
|
};
|
|
1868
|
-
|
|
1920
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
1869
1921
|
function toRef(source, key, defaultValue) {
|
|
1870
1922
|
if (/* @__PURE__ */ isRef(source)) return source;
|
|
1871
1923
|
else if (isFunction(source)) return new GetterRefImpl(source);
|
|
@@ -1931,10 +1983,12 @@ var ReactiveEffect = class {
|
|
|
1931
1983
|
get dirty() {
|
|
1932
1984
|
const flags = this.flags;
|
|
1933
1985
|
if (flags & 16) return true;
|
|
1934
|
-
if (flags & 32)
|
|
1935
|
-
this.
|
|
1936
|
-
|
|
1937
|
-
|
|
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
|
+
}
|
|
1938
1992
|
return false;
|
|
1939
1993
|
}
|
|
1940
1994
|
};
|
|
@@ -2113,10 +2167,12 @@ var ComputedRefImpl = class {
|
|
|
2113
2167
|
get _dirty() {
|
|
2114
2168
|
const flags = this.flags;
|
|
2115
2169
|
if (flags & 16) return true;
|
|
2116
|
-
if (flags & 32)
|
|
2117
|
-
this.
|
|
2118
|
-
|
|
2119
|
-
|
|
2170
|
+
if (flags & 32) {
|
|
2171
|
+
if (checkDirty(this.deps, this)) {
|
|
2172
|
+
this.flags = flags | 16;
|
|
2173
|
+
return true;
|
|
2174
|
+
} else this.flags = flags & -33;
|
|
2175
|
+
}
|
|
2120
2176
|
return false;
|
|
2121
2177
|
}
|
|
2122
2178
|
/**
|
|
@@ -2177,7 +2233,7 @@ var ComputedRefImpl = class {
|
|
|
2177
2233
|
}
|
|
2178
2234
|
};
|
|
2179
2235
|
setupOnTrigger(ComputedRefImpl);
|
|
2180
|
-
|
|
2236
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
2181
2237
|
function computed$1(getterOrOptions, debugOptions, isSSR = false) {
|
|
2182
2238
|
let getter;
|
|
2183
2239
|
let setter;
|
|
@@ -2255,25 +2311,26 @@ var WatcherEffect = class extends ReactiveEffect {
|
|
|
2255
2311
|
else if (isFunction(s)) return call ? call(s, 2) : s();
|
|
2256
2312
|
else warnInvalidSource(s, onWarn);
|
|
2257
2313
|
});
|
|
2258
|
-
} else if (isFunction(source))
|
|
2259
|
-
|
|
2260
|
-
|
|
2261
|
-
|
|
2314
|
+
} else if (isFunction(source)) {
|
|
2315
|
+
if (cb) getter = call ? () => call(source, 2) : source;
|
|
2316
|
+
else getter = () => {
|
|
2317
|
+
if (this.cleanupsLength) {
|
|
2318
|
+
const prevSub = setActiveSub();
|
|
2319
|
+
try {
|
|
2320
|
+
cleanup(this);
|
|
2321
|
+
} finally {
|
|
2322
|
+
setActiveSub(prevSub);
|
|
2323
|
+
}
|
|
2324
|
+
}
|
|
2325
|
+
const currentEffect = activeWatcher;
|
|
2326
|
+
activeWatcher = this;
|
|
2262
2327
|
try {
|
|
2263
|
-
|
|
2328
|
+
return call ? call(source, 3, [this.boundCleanup]) : source(this.boundCleanup);
|
|
2264
2329
|
} finally {
|
|
2265
|
-
|
|
2330
|
+
activeWatcher = currentEffect;
|
|
2266
2331
|
}
|
|
2267
|
-
}
|
|
2268
|
-
|
|
2269
|
-
activeWatcher = this;
|
|
2270
|
-
try {
|
|
2271
|
-
return call ? call(source, 3, [this.boundCleanup]) : source(this.boundCleanup);
|
|
2272
|
-
} finally {
|
|
2273
|
-
activeWatcher = currentEffect;
|
|
2274
|
-
}
|
|
2275
|
-
};
|
|
2276
|
-
else {
|
|
2332
|
+
};
|
|
2333
|
+
} else {
|
|
2277
2334
|
getter = NOOP;
|
|
2278
2335
|
warnInvalidSource(source, onWarn);
|
|
2279
2336
|
}
|
|
@@ -2597,7 +2654,7 @@ let currentFlushPromise = null;
|
|
|
2597
2654
|
let jobsLength = 0;
|
|
2598
2655
|
let flushIndex = 0;
|
|
2599
2656
|
let postFlushIndex = 0;
|
|
2600
|
-
const resolvedPromise =
|
|
2657
|
+
const resolvedPromise = /*@__PURE__*/ Promise.resolve();
|
|
2601
2658
|
const RECURSION_LIMIT = 100;
|
|
2602
2659
|
function nextTick(fn) {
|
|
2603
2660
|
const p = currentFlushPromise || resolvedPromise;
|
|
@@ -2636,6 +2693,7 @@ const doFlushJobs = () => {
|
|
|
2636
2693
|
flushJobs();
|
|
2637
2694
|
} catch (e) {
|
|
2638
2695
|
currentFlushPromise = null;
|
|
2696
|
+
if (jobsLength || postJobs.length) queueFlush();
|
|
2639
2697
|
throw e;
|
|
2640
2698
|
}
|
|
2641
2699
|
};
|
|
@@ -2643,9 +2701,10 @@ function queueFlush() {
|
|
|
2643
2701
|
if (!currentFlushPromise) currentFlushPromise = resolvedPromise.then(doFlushJobs);
|
|
2644
2702
|
}
|
|
2645
2703
|
function queuePostFlushCb(jobs, id = Infinity) {
|
|
2646
|
-
if (!isArray(jobs))
|
|
2647
|
-
|
|
2648
|
-
|
|
2704
|
+
if (!isArray(jobs)) {
|
|
2705
|
+
if (activePostJobs && id === -1) activePostJobs.splice(postFlushIndex, 0, jobs);
|
|
2706
|
+
else queueJobWorker(jobs, id, postJobs, postJobs.length, 0);
|
|
2707
|
+
} else for (let i = 0; i < jobs.length; i++) queueJobWorker(jobs[i], id, postJobs, postJobs.length, 0);
|
|
2649
2708
|
queueFlush();
|
|
2650
2709
|
}
|
|
2651
2710
|
function flushPreFlushCbs(instance, seen) {
|
|
@@ -2659,32 +2718,39 @@ function flushPreFlushCbs(instance, seen) {
|
|
|
2659
2718
|
i--;
|
|
2660
2719
|
jobsLength--;
|
|
2661
2720
|
if (cb.flags & 2) cb.flags &= -2;
|
|
2662
|
-
|
|
2663
|
-
|
|
2721
|
+
try {
|
|
2722
|
+
cb();
|
|
2723
|
+
} finally {
|
|
2724
|
+
if (!(cb.flags & 2)) cb.flags &= -2;
|
|
2725
|
+
}
|
|
2664
2726
|
}
|
|
2665
2727
|
}
|
|
2666
2728
|
function flushPostFlushCbs(seen) {
|
|
2667
2729
|
if (postJobs.length) {
|
|
2668
2730
|
if (activePostJobs) {
|
|
2669
|
-
activePostJobs.push(
|
|
2731
|
+
for (let i = 0; i < postJobs.length; i++) activePostJobs.push(postJobs[i]);
|
|
2670
2732
|
postJobs.length = 0;
|
|
2671
2733
|
return;
|
|
2672
2734
|
}
|
|
2673
2735
|
activePostJobs = postJobs;
|
|
2674
2736
|
postJobs = [];
|
|
2675
2737
|
seen = seen || /* @__PURE__ */ new Map();
|
|
2676
|
-
|
|
2677
|
-
|
|
2678
|
-
|
|
2679
|
-
|
|
2680
|
-
|
|
2681
|
-
cb
|
|
2682
|
-
|
|
2683
|
-
|
|
2738
|
+
try {
|
|
2739
|
+
while (postFlushIndex < activePostJobs.length) {
|
|
2740
|
+
const cb = activePostJobs[postFlushIndex++];
|
|
2741
|
+
if (checkRecursiveUpdates(seen, cb)) continue;
|
|
2742
|
+
if (cb.flags & 2) cb.flags &= -2;
|
|
2743
|
+
if (!(cb.flags & 4)) try {
|
|
2744
|
+
cb();
|
|
2745
|
+
} finally {
|
|
2746
|
+
if (!(cb.flags & 2)) cb.flags &= -2;
|
|
2747
|
+
}
|
|
2684
2748
|
}
|
|
2749
|
+
} finally {
|
|
2750
|
+
while (postFlushIndex < activePostJobs.length) activePostJobs[postFlushIndex++].flags &= -2;
|
|
2751
|
+
activePostJobs = null;
|
|
2752
|
+
postFlushIndex = 0;
|
|
2685
2753
|
}
|
|
2686
|
-
activePostJobs = null;
|
|
2687
|
-
postFlushIndex = 0;
|
|
2688
2754
|
}
|
|
2689
2755
|
}
|
|
2690
2756
|
let isFlushing = false;
|
|
@@ -2694,9 +2760,12 @@ let isFlushing = false;
|
|
|
2694
2760
|
function flushOnAppMount(instance) {
|
|
2695
2761
|
if (!isFlushing) {
|
|
2696
2762
|
isFlushing = true;
|
|
2697
|
-
|
|
2698
|
-
|
|
2699
|
-
|
|
2763
|
+
try {
|
|
2764
|
+
flushPreFlushCbs(instance);
|
|
2765
|
+
flushPostFlushCbs();
|
|
2766
|
+
} finally {
|
|
2767
|
+
isFlushing = false;
|
|
2768
|
+
}
|
|
2700
2769
|
}
|
|
2701
2770
|
}
|
|
2702
2771
|
function flushJobs(seen) {
|
|
@@ -2726,8 +2795,8 @@ function flushJobs(seen) {
|
|
|
2726
2795
|
jobsLength = 0;
|
|
2727
2796
|
jobs.length = 0;
|
|
2728
2797
|
flushPostFlushCbs(seen);
|
|
2729
|
-
currentFlushPromise = null;
|
|
2730
2798
|
if (jobsLength || postJobs.length) flushJobs(seen);
|
|
2799
|
+
else currentFlushPromise = null;
|
|
2731
2800
|
}
|
|
2732
2801
|
}
|
|
2733
2802
|
function checkRecursiveUpdates(seen, fn) {
|
|
@@ -2758,6 +2827,19 @@ getGlobalThis().__VUE_HMR_RUNTIME__ = {
|
|
|
2758
2827
|
rerender: tryWrap(rerender),
|
|
2759
2828
|
reload: tryWrap(reload)
|
|
2760
2829
|
};
|
|
2830
|
+
function runWithHmrUpdating(fn) {
|
|
2831
|
+
isHmrUpdating = true;
|
|
2832
|
+
let done = false;
|
|
2833
|
+
try {
|
|
2834
|
+
fn();
|
|
2835
|
+
done = true;
|
|
2836
|
+
} finally {
|
|
2837
|
+
if (done) nextTick(() => {
|
|
2838
|
+
isHmrUpdating = false;
|
|
2839
|
+
});
|
|
2840
|
+
else isHmrUpdating = false;
|
|
2841
|
+
}
|
|
2842
|
+
}
|
|
2761
2843
|
const map = /* @__PURE__ */ new Map();
|
|
2762
2844
|
function registerHMR(instance) {
|
|
2763
2845
|
const id = instance.type.__hmrId;
|
|
@@ -2799,18 +2881,16 @@ function rerender(id, newRender) {
|
|
|
2799
2881
|
instance.render = newRender;
|
|
2800
2882
|
normalizeClassComponent(instance.type).render = newRender;
|
|
2801
2883
|
}
|
|
2802
|
-
|
|
2803
|
-
|
|
2804
|
-
|
|
2805
|
-
|
|
2806
|
-
|
|
2807
|
-
|
|
2808
|
-
|
|
2809
|
-
|
|
2884
|
+
runWithHmrUpdating(() => {
|
|
2885
|
+
if (instance.vapor) {
|
|
2886
|
+
if (!instance.isUnmounted) instance.hmrRerender();
|
|
2887
|
+
} else {
|
|
2888
|
+
const i = instance;
|
|
2889
|
+
if (!(i.effect.flags & 1024)) {
|
|
2890
|
+
i.renderCache = [];
|
|
2891
|
+
i.effect.run();
|
|
2892
|
+
}
|
|
2810
2893
|
}
|
|
2811
|
-
}
|
|
2812
|
-
nextTick(() => {
|
|
2813
|
-
isHmrUpdating = false;
|
|
2814
2894
|
});
|
|
2815
2895
|
});
|
|
2816
2896
|
}
|
|
@@ -2825,17 +2905,19 @@ function reload(id, newComp) {
|
|
|
2825
2905
|
for (const instance of instances) if (instance.root && instance.root.ce && instance !== instance.root) instance.root.ce._removeChildStyle(instance.type);
|
|
2826
2906
|
const dirtyInstances = new Set(instances);
|
|
2827
2907
|
const rerenderedParents = /* @__PURE__ */ new Set();
|
|
2828
|
-
|
|
2829
|
-
const
|
|
2830
|
-
|
|
2831
|
-
if (
|
|
2832
|
-
rerenderedParents.
|
|
2833
|
-
|
|
2834
|
-
|
|
2835
|
-
|
|
2836
|
-
|
|
2908
|
+
runWithHmrUpdating(() => {
|
|
2909
|
+
for (const instance of instances) {
|
|
2910
|
+
const parent = instance.parent;
|
|
2911
|
+
if (parent) {
|
|
2912
|
+
if (!hasDirtyAncestor(instance, dirtyInstances) && !rerenderedParents.has(parent)) {
|
|
2913
|
+
rerenderedParents.add(parent);
|
|
2914
|
+
parent.hmrRerender();
|
|
2915
|
+
}
|
|
2916
|
+
} else instance.hmrReload(newComp);
|
|
2917
|
+
}
|
|
2918
|
+
});
|
|
2837
2919
|
} else {
|
|
2838
|
-
const
|
|
2920
|
+
const parents = /* @__PURE__ */ new Set();
|
|
2839
2921
|
const dirtyInstanceSet = new Set(instances);
|
|
2840
2922
|
for (const instance of instances) {
|
|
2841
2923
|
const oldComp = normalizeClassComponent(instance.type);
|
|
@@ -2854,33 +2936,23 @@ function reload(id, newComp) {
|
|
|
2854
2936
|
instance.ceReload(newComp.styles);
|
|
2855
2937
|
dirtyInstances.delete(instance);
|
|
2856
2938
|
} else if (instance.parent) {
|
|
2857
|
-
|
|
2858
|
-
if (!hasDirtyAncestor(instance, dirtyInstanceSet)) {
|
|
2859
|
-
let updates = parentUpdates.get(parent);
|
|
2860
|
-
if (!updates) parentUpdates.set(parent, updates = []);
|
|
2861
|
-
updates.push([instance, dirtyInstances]);
|
|
2862
|
-
}
|
|
2939
|
+
if (!hasDirtyAncestor(instance, dirtyInstanceSet)) parents.add(instance.parent);
|
|
2863
2940
|
} else if (instance.appContext.reload) instance.appContext.reload();
|
|
2864
2941
|
else if (typeof window !== "undefined") window.location.reload();
|
|
2865
2942
|
else console.warn("[HMR] Root or manually mounted instance modified. Full reload required.");
|
|
2866
2943
|
if (instance.root.ce && instance !== instance.root) instance.root.ce._removeChildStyle(oldComp);
|
|
2867
2944
|
}
|
|
2868
|
-
|
|
2945
|
+
parents.forEach((parent) => {
|
|
2869
2946
|
queueJob(() => {
|
|
2870
|
-
|
|
2871
|
-
|
|
2872
|
-
|
|
2873
|
-
|
|
2874
|
-
|
|
2875
|
-
|
|
2876
|
-
|
|
2947
|
+
runWithHmrUpdating(() => {
|
|
2948
|
+
if (parent.vapor) parent.hmrRerender();
|
|
2949
|
+
else {
|
|
2950
|
+
const i = parent;
|
|
2951
|
+
if (!(i.effect.flags & 1024)) {
|
|
2952
|
+
i.renderCache = [];
|
|
2953
|
+
i.effect.run();
|
|
2954
|
+
}
|
|
2877
2955
|
}
|
|
2878
|
-
}
|
|
2879
|
-
nextTick(() => {
|
|
2880
|
-
isHmrUpdating = false;
|
|
2881
|
-
});
|
|
2882
|
-
updates.forEach(([instance, dirtyInstances]) => {
|
|
2883
|
-
dirtyInstances.delete(instance);
|
|
2884
2956
|
});
|
|
2885
2957
|
});
|
|
2886
2958
|
});
|
|
@@ -2950,20 +3022,20 @@ function devtoolsInitApp(app, version) {
|
|
|
2950
3022
|
function devtoolsUnmountApp(app) {
|
|
2951
3023
|
emit$2("app:unmount", app);
|
|
2952
3024
|
}
|
|
2953
|
-
const devtoolsComponentAdded =
|
|
2954
|
-
const devtoolsComponentUpdated =
|
|
2955
|
-
const _devtoolsComponentRemoved =
|
|
3025
|
+
const devtoolsComponentAdded = /*@__PURE__*/ createDevtoolsComponentHook("component:added");
|
|
3026
|
+
const devtoolsComponentUpdated = /*@__PURE__*/ createDevtoolsComponentHook("component:updated");
|
|
3027
|
+
const _devtoolsComponentRemoved = /*@__PURE__*/ createDevtoolsComponentHook("component:removed");
|
|
2956
3028
|
const devtoolsComponentRemoved = (component) => {
|
|
2957
3029
|
if (devtools$1 && typeof devtools$1.cleanupBuffer === "function" && !devtools$1.cleanupBuffer(component)) _devtoolsComponentRemoved(component);
|
|
2958
3030
|
};
|
|
2959
|
-
|
|
3031
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
2960
3032
|
function createDevtoolsComponentHook(hook) {
|
|
2961
3033
|
return (component) => {
|
|
2962
3034
|
emit$2(hook, component.appContext.app, component.uid, component.parent ? component.parent.uid : void 0, component);
|
|
2963
3035
|
};
|
|
2964
3036
|
}
|
|
2965
|
-
const devtoolsPerfStart =
|
|
2966
|
-
const devtoolsPerfEnd =
|
|
3037
|
+
const devtoolsPerfStart = /*@__PURE__*/ createDevtoolsPerformanceHook("perf:start");
|
|
3038
|
+
const devtoolsPerfEnd = /*@__PURE__*/ createDevtoolsPerformanceHook("perf:end");
|
|
2967
3039
|
function createDevtoolsPerformanceHook(hook) {
|
|
2968
3040
|
return (component, type, time) => {
|
|
2969
3041
|
emit$2(hook, component.appContext.app, component.uid, component, type, time);
|
|
@@ -3192,7 +3264,7 @@ function configureCompat(config) {
|
|
|
3192
3264
|
validateCompatConfig(config);
|
|
3193
3265
|
extend(globalCompatConfig, config);
|
|
3194
3266
|
}
|
|
3195
|
-
const seenConfigObjects =
|
|
3267
|
+
const seenConfigObjects = /*@__PURE__*/ new WeakSet();
|
|
3196
3268
|
const warnedInvalidKeys = {};
|
|
3197
3269
|
function validateCompatConfig(config, instance) {
|
|
3198
3270
|
if (seenConfigObjects.has(config)) return;
|
|
@@ -3244,7 +3316,7 @@ function checkCompatEnabled$1(key, instance, ...args) {
|
|
|
3244
3316
|
}
|
|
3245
3317
|
//#endregion
|
|
3246
3318
|
//#region packages/runtime-core/src/compat/instanceEventEmitter.ts
|
|
3247
|
-
const eventRegistryMap =
|
|
3319
|
+
const eventRegistryMap = /*@__PURE__*/ new WeakMap();
|
|
3248
3320
|
function getRegistry(instance) {
|
|
3249
3321
|
let events = eventRegistryMap.get(instance);
|
|
3250
3322
|
if (!events) eventRegistryMap.set(instance, events = Object.create(null));
|
|
@@ -3378,19 +3450,21 @@ const legacyDirectiveHookMap = {
|
|
|
3378
3450
|
};
|
|
3379
3451
|
function mapCompatDirectiveHook(name, dir, instance) {
|
|
3380
3452
|
const mappedName = legacyDirectiveHookMap[name];
|
|
3381
|
-
if (mappedName)
|
|
3382
|
-
|
|
3383
|
-
|
|
3384
|
-
|
|
3385
|
-
|
|
3386
|
-
|
|
3387
|
-
|
|
3388
|
-
|
|
3389
|
-
|
|
3390
|
-
|
|
3391
|
-
|
|
3392
|
-
|
|
3393
|
-
|
|
3453
|
+
if (mappedName) {
|
|
3454
|
+
if (isArray(mappedName)) {
|
|
3455
|
+
const hook = [];
|
|
3456
|
+
mappedName.forEach((mapped) => {
|
|
3457
|
+
const mappedHook = dir[mapped];
|
|
3458
|
+
if (mappedHook) {
|
|
3459
|
+
softAssertCompatEnabled("CUSTOM_DIR", instance, mapped, name);
|
|
3460
|
+
hook.push(mappedHook);
|
|
3461
|
+
}
|
|
3462
|
+
});
|
|
3463
|
+
return hook.length ? hook : void 0;
|
|
3464
|
+
} else {
|
|
3465
|
+
if (dir[mappedName]) softAssertCompatEnabled("CUSTOM_DIR", instance, mappedName, name);
|
|
3466
|
+
return dir[mappedName];
|
|
3467
|
+
}
|
|
3394
3468
|
}
|
|
3395
3469
|
}
|
|
3396
3470
|
//#endregion
|
|
@@ -3575,7 +3649,7 @@ function instanceWatch(source, value, options) {
|
|
|
3575
3649
|
}
|
|
3576
3650
|
const prev = setCurrentInstance(this);
|
|
3577
3651
|
const res = doWatch(getter, cb.bind(publicThis), options);
|
|
3578
|
-
|
|
3652
|
+
restoreCurrentInstance(prev);
|
|
3579
3653
|
return res;
|
|
3580
3654
|
}
|
|
3581
3655
|
function createPathGetter(ctx, path) {
|
|
@@ -3597,15 +3671,16 @@ const isTargetSVG = (target) => typeof SVGElement !== "undefined" && target inst
|
|
|
3597
3671
|
const isTargetMathML = (target) => typeof MathMLElement === "function" && target instanceof MathMLElement;
|
|
3598
3672
|
const resolveTarget = (props, select) => {
|
|
3599
3673
|
const targetSelector = props && props.to;
|
|
3600
|
-
if (isString(targetSelector))
|
|
3601
|
-
|
|
3602
|
-
|
|
3674
|
+
if (isString(targetSelector)) {
|
|
3675
|
+
if (!select) {
|
|
3676
|
+
warn$1("Current renderer does not support string target for Teleports. (missing querySelector renderer option)");
|
|
3677
|
+
return null;
|
|
3678
|
+
} else {
|
|
3679
|
+
const target = select(targetSelector);
|
|
3680
|
+
if (!target && !isTeleportDisabled(props)) warn$1(`Failed to locate Teleport target with selector "${targetSelector}". Note the target element must exist before the component is mounted - i.e. the target cannot be rendered by the component itself, and ideally should be outside of the entire Vue component tree.`);
|
|
3681
|
+
return target;
|
|
3682
|
+
}
|
|
3603
3683
|
} else {
|
|
3604
|
-
const target = select(targetSelector);
|
|
3605
|
-
if (!target && !isTeleportDisabled(props)) warn$1(`Failed to locate Teleport target with selector "${targetSelector}". Note the target element must exist before the component is mounted - i.e. the target cannot be rendered by the component itself, and ideally should be outside of the entire Vue component tree.`);
|
|
3606
|
-
return target;
|
|
3607
|
-
}
|
|
3608
|
-
else {
|
|
3609
3684
|
if (!targetSelector && !isTeleportDisabled(props)) warn$1(`Invalid Teleport target: ${targetSelector}`);
|
|
3610
3685
|
return targetSelector;
|
|
3611
3686
|
}
|
|
@@ -3643,7 +3718,8 @@ const TeleportImpl = {
|
|
|
3643
3718
|
if (pendingMounts.get(vnode) !== mountJob) return;
|
|
3644
3719
|
pendingMounts.delete(vnode);
|
|
3645
3720
|
if (isTeleportDisabled(vnode.props)) {
|
|
3646
|
-
|
|
3721
|
+
const mountContainer = parentNode(vnode.el) || container;
|
|
3722
|
+
mount(vnode, mountContainer, vnode.anchor);
|
|
3647
3723
|
updateCssVars(vnode, true);
|
|
3648
3724
|
}
|
|
3649
3725
|
mountToTarget(vnode);
|
|
@@ -3752,15 +3828,17 @@ function hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScope
|
|
|
3752
3828
|
const disabled = isTeleportDisabled(vnode.props);
|
|
3753
3829
|
if (target) {
|
|
3754
3830
|
const targetNode = target._lpa || target.firstChild;
|
|
3755
|
-
if (vnode.shapeFlag & 16)
|
|
3756
|
-
|
|
3757
|
-
|
|
3758
|
-
|
|
3759
|
-
|
|
3760
|
-
|
|
3761
|
-
|
|
3762
|
-
|
|
3763
|
-
|
|
3831
|
+
if (vnode.shapeFlag & 16) {
|
|
3832
|
+
if (disabled) {
|
|
3833
|
+
hydrateDisabledTeleport(node, vnode);
|
|
3834
|
+
hydrateAnchor(target, targetNode);
|
|
3835
|
+
if (!vnode.targetAnchor) prepareAnchor(target, vnode, createText, insert, parentNode(node) === target ? node : null);
|
|
3836
|
+
} else {
|
|
3837
|
+
vnode.anchor = nextSibling(node);
|
|
3838
|
+
hydrateAnchor(target, targetNode);
|
|
3839
|
+
if (!vnode.targetAnchor) prepareAnchor(target, vnode, createText, insert);
|
|
3840
|
+
hydrateChildren(targetNode && nextSibling(targetNode), vnode, target, parentComponent, parentSuspense, slotScopeIds, optimized);
|
|
3841
|
+
}
|
|
3764
3842
|
}
|
|
3765
3843
|
updateCssVars(vnode, disabled);
|
|
3766
3844
|
} else if (disabled) {
|
|
@@ -3848,49 +3926,16 @@ const BaseTransitionImpl = {
|
|
|
3848
3926
|
setup(props, { slots }) {
|
|
3849
3927
|
const instance = getCurrentInstance();
|
|
3850
3928
|
const state = useTransitionState();
|
|
3929
|
+
let resumeAfterLeave;
|
|
3851
3930
|
return () => {
|
|
3852
|
-
const
|
|
3853
|
-
const child = children && children.length ? findNonCommentChild(children) : instance.subTree ? createCommentVNode() : void 0;
|
|
3931
|
+
const child = resolveTransitionChild(slots.default && slots.default(), !!instance.subTree);
|
|
3854
3932
|
if (!child) return;
|
|
3855
3933
|
const rawProps = /* @__PURE__ */ toRaw(props);
|
|
3856
3934
|
const { mode } = rawProps;
|
|
3857
3935
|
checkTransitionMode(mode);
|
|
3858
|
-
|
|
3859
|
-
|
|
3860
|
-
|
|
3861
|
-
let enterHooks = resolveTransitionHooks(innerChild, rawProps, state, instance, (hooks) => enterHooks = hooks);
|
|
3862
|
-
if (innerChild.type !== Comment) setTransitionHooks(innerChild, enterHooks);
|
|
3863
|
-
let oldInnerChild = instance.subTree && getInnerChild$1(instance.subTree);
|
|
3864
|
-
if (oldInnerChild && oldInnerChild.type !== Comment && !isSameVNodeType(oldInnerChild, innerChild) && recursiveGetSubtree(instance).type !== Comment) {
|
|
3865
|
-
let leavingHooks = resolveTransitionHooks(oldInnerChild, rawProps, state, instance);
|
|
3866
|
-
setTransitionHooks(oldInnerChild, leavingHooks);
|
|
3867
|
-
if (mode === "out-in" && innerChild.type !== Comment) {
|
|
3868
|
-
state.isLeaving = true;
|
|
3869
|
-
leavingHooks.afterLeave = () => {
|
|
3870
|
-
state.isLeaving = false;
|
|
3871
|
-
if (!(instance.job.flags & 4)) instance.update();
|
|
3872
|
-
delete leavingHooks.afterLeave;
|
|
3873
|
-
oldInnerChild = void 0;
|
|
3874
|
-
};
|
|
3875
|
-
return emptyPlaceholder(child);
|
|
3876
|
-
} else if (mode === "in-out" && innerChild.type !== Comment) leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => {
|
|
3877
|
-
const leavingVNodesCache = getLeavingNodesForType(state, oldInnerChild);
|
|
3878
|
-
leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild;
|
|
3879
|
-
el[leaveCbKey] = () => {
|
|
3880
|
-
earlyRemove();
|
|
3881
|
-
el[leaveCbKey] = void 0;
|
|
3882
|
-
delete enterHooks.delayedLeave;
|
|
3883
|
-
oldInnerChild = void 0;
|
|
3884
|
-
};
|
|
3885
|
-
enterHooks.delayedLeave = () => {
|
|
3886
|
-
delayedLeave();
|
|
3887
|
-
delete enterHooks.delayedLeave;
|
|
3888
|
-
oldInnerChild = void 0;
|
|
3889
|
-
};
|
|
3890
|
-
};
|
|
3891
|
-
else oldInnerChild = void 0;
|
|
3892
|
-
} else if (oldInnerChild) oldInnerChild = void 0;
|
|
3893
|
-
return child;
|
|
3936
|
+
return prepareTransitionSwitch(instance.subTree, child, rawProps, state, instance, mode === "out-in" ? resumeAfterLeave || (resumeAfterLeave = () => {
|
|
3937
|
+
if (!(instance.job.flags & 4)) instance.update();
|
|
3938
|
+
}) : NOOP);
|
|
3894
3939
|
};
|
|
3895
3940
|
}
|
|
3896
3941
|
};
|
|
@@ -3960,8 +4005,10 @@ function baseResolveTransitionHooks(context, props, state, instance) {
|
|
|
3960
4005
|
persisted,
|
|
3961
4006
|
beforeEnter(el) {
|
|
3962
4007
|
let hook = onBeforeEnter;
|
|
3963
|
-
if (!state.isMounted)
|
|
3964
|
-
|
|
4008
|
+
if (!state.isMounted) {
|
|
4009
|
+
if (appear) hook = onBeforeAppear || onBeforeEnter;
|
|
4010
|
+
else return;
|
|
4011
|
+
}
|
|
3965
4012
|
if (el[leaveCbKey]) el[leaveCbKey](true);
|
|
3966
4013
|
earlyRemove();
|
|
3967
4014
|
callHook(hook, [el]);
|
|
@@ -3971,11 +4018,13 @@ function baseResolveTransitionHooks(context, props, state, instance) {
|
|
|
3971
4018
|
let hook = onEnter;
|
|
3972
4019
|
let afterHook = onAfterEnter;
|
|
3973
4020
|
let cancelHook = onEnterCancelled;
|
|
3974
|
-
if (!state.isMounted)
|
|
3975
|
-
|
|
3976
|
-
|
|
3977
|
-
|
|
3978
|
-
|
|
4021
|
+
if (!state.isMounted) {
|
|
4022
|
+
if (appear) {
|
|
4023
|
+
hook = onAppear || onEnter;
|
|
4024
|
+
afterHook = onAfterAppear || onAfterEnter;
|
|
4025
|
+
cancelHook = onAppearCancelled || onEnterCancelled;
|
|
4026
|
+
} else return;
|
|
4027
|
+
}
|
|
3979
4028
|
let called = false;
|
|
3980
4029
|
el[enterCbKey$1] = (cancelled) => {
|
|
3981
4030
|
if (called) return;
|
|
@@ -4009,7 +4058,7 @@ function baseResolveTransitionHooks(context, props, state, instance) {
|
|
|
4009
4058
|
else done();
|
|
4010
4059
|
},
|
|
4011
4060
|
clone(node) {
|
|
4012
|
-
return cloneHooks(node);
|
|
4061
|
+
return cloneHooks ? cloneHooks(node) : hooks;
|
|
4013
4062
|
}
|
|
4014
4063
|
};
|
|
4015
4064
|
return hooks;
|
|
@@ -4033,16 +4082,91 @@ function getInnerChild$1(vnode) {
|
|
|
4033
4082
|
if (shapeFlag & 32 && isFunction(children.default)) return children.default();
|
|
4034
4083
|
}
|
|
4035
4084
|
}
|
|
4085
|
+
function resolveTransitionChild(children, renderEmpty = false) {
|
|
4086
|
+
const branches = children && getTransitionRawChildren(children, true);
|
|
4087
|
+
return branches && branches.length ? findNonCommentChild(branches) : renderEmpty ? createCommentVNode() : void 0;
|
|
4088
|
+
}
|
|
4089
|
+
/**
|
|
4090
|
+
* @internal
|
|
4091
|
+
*/
|
|
4092
|
+
function prepareTransitionSwitch(previous, next, props, state, instance, resumeAfterLeave, delayedLeaveSource) {
|
|
4093
|
+
if (state.isLeaving) return emptyPlaceholder(next);
|
|
4094
|
+
const nextInner = getInnerChild$1(next);
|
|
4095
|
+
if (!nextInner) return emptyPlaceholder(next);
|
|
4096
|
+
let enterHooks = resolveTransitionHooks(nextInner, props, state, instance, (hooks) => {
|
|
4097
|
+
if (delayedLeaveSource) forwardDelayedLeave(hooks, delayedLeaveSource);
|
|
4098
|
+
enterHooks = hooks;
|
|
4099
|
+
});
|
|
4100
|
+
if (delayedLeaveSource) forwardDelayedLeave(enterHooks, delayedLeaveSource);
|
|
4101
|
+
if (nextInner.type !== Comment) setTransitionHooks(nextInner, enterHooks);
|
|
4102
|
+
const mode = props.mode;
|
|
4103
|
+
const previousInner = previous && getInnerChild$1(previous);
|
|
4104
|
+
if (previous && previousInner && previousInner.type !== Comment && !isSameVNodeType(previousInner, nextInner) && (!previous.component || recursiveGetSubtree(previous.component).type !== Comment)) {
|
|
4105
|
+
const leavingHooks = prepareLeavingTransitionHooks(previousInner, props, state, instance);
|
|
4106
|
+
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);
|
|
4107
|
+
}
|
|
4108
|
+
return next;
|
|
4109
|
+
}
|
|
4110
|
+
function forwardDelayedLeave(hooks, source) {
|
|
4111
|
+
const delayedLeave = source && source.delayedLeave;
|
|
4112
|
+
if (!delayedLeave) return;
|
|
4113
|
+
hooks.delayedLeave = () => {
|
|
4114
|
+
if (source.delayedLeave === delayedLeave) delayedLeave();
|
|
4115
|
+
delete hooks.delayedLeave;
|
|
4116
|
+
};
|
|
4117
|
+
}
|
|
4118
|
+
function prepareLeavingTransitionHooks(previousInner, props, state, instance) {
|
|
4119
|
+
return setTransitionHooks(previousInner, resolveTransitionHooks(previousInner, props, state, instance));
|
|
4120
|
+
}
|
|
4121
|
+
function applyTransitionModeSwitch(leavingVNode, leavingHooks, getEnterHooks, props, state, resumeAfterLeave) {
|
|
4122
|
+
if (props.mode === "out-in") {
|
|
4123
|
+
state.isLeaving = true;
|
|
4124
|
+
leavingHooks.afterLeave = () => {
|
|
4125
|
+
state.isLeaving = false;
|
|
4126
|
+
resumeAfterLeave();
|
|
4127
|
+
delete leavingHooks.afterLeave;
|
|
4128
|
+
};
|
|
4129
|
+
return true;
|
|
4130
|
+
} else if (props.mode === "in-out" && getEnterHooks) {
|
|
4131
|
+
let delayedLeavingVNode = leavingVNode;
|
|
4132
|
+
leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => {
|
|
4133
|
+
const enterHooks = getEnterHooks();
|
|
4134
|
+
if (!enterHooks) {
|
|
4135
|
+
delayedLeave();
|
|
4136
|
+
return;
|
|
4137
|
+
}
|
|
4138
|
+
const vnode = delayedLeavingVNode;
|
|
4139
|
+
const leavingVNodesCache = getLeavingNodesForType(state, vnode);
|
|
4140
|
+
leavingVNodesCache[String(vnode.key)] = vnode;
|
|
4141
|
+
el[leaveCbKey] = () => {
|
|
4142
|
+
earlyRemove();
|
|
4143
|
+
el[leaveCbKey] = void 0;
|
|
4144
|
+
delete enterHooks.delayedLeave;
|
|
4145
|
+
delayedLeavingVNode = void 0;
|
|
4146
|
+
};
|
|
4147
|
+
enterHooks.delayedLeave = () => {
|
|
4148
|
+
delayedLeave();
|
|
4149
|
+
delete enterHooks.delayedLeave;
|
|
4150
|
+
delayedLeavingVNode = void 0;
|
|
4151
|
+
};
|
|
4152
|
+
};
|
|
4153
|
+
}
|
|
4154
|
+
return false;
|
|
4155
|
+
}
|
|
4036
4156
|
function setTransitionHooks(vnode, hooks) {
|
|
4037
|
-
if (vnode.shapeFlag & 6 && vnode.component)
|
|
4038
|
-
else {
|
|
4157
|
+
if (vnode.shapeFlag & 6 && vnode.component) {
|
|
4039
4158
|
vnode.transition = hooks;
|
|
4040
|
-
setTransitionHooks(vnode.component
|
|
4041
|
-
|
|
4042
|
-
|
|
4043
|
-
|
|
4044
|
-
|
|
4159
|
+
if (isVaporComponent(vnode.type)) getVaporInterface(vnode.component, vnode).setTransitionHooks(vnode.component, hooks);
|
|
4160
|
+
else {
|
|
4161
|
+
const subTree = vnode.component.subTree;
|
|
4162
|
+
return setTransitionHooks(isTeleport(subTree.type) ? getInnerChild$1(subTree) || subTree : subTree, hooks);
|
|
4163
|
+
}
|
|
4164
|
+
} else if (vnode.shapeFlag & 128) {
|
|
4165
|
+
const contentHooks = vnode.ssContent.transition = hooks.clone(vnode.ssContent);
|
|
4166
|
+
const fallbackHooks = vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);
|
|
4167
|
+
return vnode.suspense && vnode.suspense.activeBranch === vnode.ssFallback ? fallbackHooks : contentHooks;
|
|
4045
4168
|
} else vnode.transition = hooks;
|
|
4169
|
+
return hooks;
|
|
4046
4170
|
}
|
|
4047
4171
|
function getTransitionRawChildren(children, keepComment = false, parentKey) {
|
|
4048
4172
|
let ret = [];
|
|
@@ -4066,9 +4190,9 @@ function checkTransitionMode(mode) {
|
|
|
4066
4190
|
}
|
|
4067
4191
|
//#endregion
|
|
4068
4192
|
//#region packages/runtime-core/src/apiDefineComponent.ts
|
|
4069
|
-
|
|
4193
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
4070
4194
|
function defineComponent(options, extraOptions) {
|
|
4071
|
-
return isFunction(options) ? extend({ name: options.name }, extraOptions, { setup: options }) : options;
|
|
4195
|
+
return isFunction(options) ? /*@__PURE__*/ (() => extend({ name: options.name }, extraOptions, { setup: options }))() : options;
|
|
4072
4196
|
}
|
|
4073
4197
|
//#endregion
|
|
4074
4198
|
//#region packages/runtime-core/src/helpers/useId.ts
|
|
@@ -4165,15 +4289,16 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
|
|
|
4165
4289
|
if (rawRef.f) {
|
|
4166
4290
|
const existing = _isString ? canSetSetupRef(ref) ? setupState[ref] : refs[ref] : canSetRef(ref) || !rawRef.k ? ref.value : refs[rawRef.k];
|
|
4167
4291
|
if (isUnmount) isArray(existing) && remove(existing, refValue);
|
|
4168
|
-
else if (!isArray(existing))
|
|
4169
|
-
|
|
4170
|
-
|
|
4171
|
-
|
|
4172
|
-
|
|
4173
|
-
|
|
4174
|
-
|
|
4175
|
-
|
|
4176
|
-
|
|
4292
|
+
else if (!isArray(existing)) {
|
|
4293
|
+
if (_isString) {
|
|
4294
|
+
refs[ref] = [refValue];
|
|
4295
|
+
if (canSetSetupRef(ref)) setupState[ref] = refs[ref];
|
|
4296
|
+
} else {
|
|
4297
|
+
const newVal = [refValue];
|
|
4298
|
+
if (canSetRef(ref, rawRef.k)) ref.value = newVal;
|
|
4299
|
+
if (rawRef.k) refs[rawRef.k] = newVal;
|
|
4300
|
+
}
|
|
4301
|
+
} else if (!existing.includes(refValue)) existing.push(refValue);
|
|
4177
4302
|
} else if (_isString) {
|
|
4178
4303
|
refs[ref] = value;
|
|
4179
4304
|
if (canSetSetupRef(ref)) setupState[ref] = value;
|
|
@@ -4225,7 +4350,18 @@ const logMismatchError = () => {
|
|
|
4225
4350
|
hasLoggedMismatchError = true;
|
|
4226
4351
|
};
|
|
4227
4352
|
const isSVGContainer = (container) => container.namespaceURI.includes("svg") && container.tagName !== "foreignObject";
|
|
4228
|
-
const isMathMLContainer = (container) =>
|
|
4353
|
+
const isMathMLContainer = (container) => {
|
|
4354
|
+
if (!container.namespaceURI.includes("MathML")) return false;
|
|
4355
|
+
if (container.tagName !== "annotation-xml") return true;
|
|
4356
|
+
const encoding = container.getAttribute("encoding");
|
|
4357
|
+
return !encoding || !encoding.includes("html");
|
|
4358
|
+
};
|
|
4359
|
+
/**
|
|
4360
|
+
* Resolve the element namespace a container's children should be created in.
|
|
4361
|
+
* The live DOM is the source of truth, so this also covers containers that are
|
|
4362
|
+
* only known at runtime (interop boundaries, teleport targets).
|
|
4363
|
+
* @internal
|
|
4364
|
+
*/
|
|
4229
4365
|
const getContainerType = (container) => {
|
|
4230
4366
|
if (container.nodeType !== 1) return void 0;
|
|
4231
4367
|
if (isSVGContainer(container)) return "svg";
|
|
@@ -4249,7 +4385,7 @@ function createHydrationFunctions(rendererInternals) {
|
|
|
4249
4385
|
};
|
|
4250
4386
|
const hydrateNode = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized = false) => {
|
|
4251
4387
|
optimized = optimized || !!vnode.dynamicChildren;
|
|
4252
|
-
const isFragmentStart = isComment(node) && node.data === "[";
|
|
4388
|
+
const isFragmentStart = isComment(node) && (node.data === "[" || node.data === "(");
|
|
4253
4389
|
const onMismatch = () => handleMismatch(node, vnode, parentComponent, parentSuspense, slotScopeIds, isFragmentStart);
|
|
4254
4390
|
const { type, ref, shapeFlag, patchFlag } = vnode;
|
|
4255
4391
|
let domType = node.nodeType;
|
|
@@ -4263,11 +4399,12 @@ function createHydrationFunctions(rendererInternals) {
|
|
|
4263
4399
|
let nextNode = null;
|
|
4264
4400
|
switch (type) {
|
|
4265
4401
|
case Text:
|
|
4266
|
-
if (domType !== 3)
|
|
4267
|
-
|
|
4268
|
-
|
|
4269
|
-
|
|
4270
|
-
|
|
4402
|
+
if (domType !== 3) {
|
|
4403
|
+
if (vnode.children === "") {
|
|
4404
|
+
insert(vnode.el = createText(""), parentNode(node), node);
|
|
4405
|
+
nextNode = node;
|
|
4406
|
+
} else nextNode = onMismatch();
|
|
4407
|
+
} else {
|
|
4271
4408
|
if (node.data !== vnode.children) {
|
|
4272
4409
|
warn$1(`Hydration text mismatch in`, node.parentNode, `\n - rendered on server: ${JSON.stringify(node.data)}\n - expected on client: ${JSON.stringify(vnode.children)}`);
|
|
4273
4410
|
logMismatchError();
|
|
@@ -4304,45 +4441,35 @@ function createHydrationFunctions(rendererInternals) {
|
|
|
4304
4441
|
else nextNode = hydrateFragment(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized);
|
|
4305
4442
|
break;
|
|
4306
4443
|
case VaporSlot:
|
|
4307
|
-
nextNode = getVaporInterface(parentComponent, vnode).hydrateSlot(vnode, node, parentComponent, parentSuspense);
|
|
4444
|
+
nextNode = getVaporInterface(parentComponent, vnode).hydrateSlot(vnode, node, parentComponent, parentSuspense, slotScopeIds);
|
|
4308
4445
|
break;
|
|
4309
|
-
default: if (shapeFlag & 1)
|
|
4310
|
-
|
|
4311
|
-
|
|
4446
|
+
default: if (shapeFlag & 1) {
|
|
4447
|
+
if ((domType !== 1 || vnode.type.toLowerCase() !== node.tagName.toLowerCase()) && !isTemplateNode$1(node)) nextNode = onMismatch();
|
|
4448
|
+
else nextNode = hydrateElement(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized);
|
|
4449
|
+
} else if (shapeFlag & 6) {
|
|
4312
4450
|
vnode.slotScopeIds = slotScopeIds;
|
|
4313
4451
|
const container = parentNode(node);
|
|
4314
4452
|
if (isFragmentStart) nextNode = locateClosingAnchor(node);
|
|
4315
4453
|
else if (isComment(node) && node.data === "teleport start") nextNode = locateClosingAnchor(node, node.data, "teleport end");
|
|
4316
4454
|
else nextNode = nextSibling(node);
|
|
4317
|
-
if (vnode.type.__vapor)
|
|
4318
|
-
|
|
4319
|
-
getVaporInterface(parentComponent, vnode).hydrate(vnode, node, container, nextNode, parentComponent, parentSuspense, () => {
|
|
4320
|
-
if (vnode.dirs) {
|
|
4321
|
-
invokeDirectiveHook(vnode, null, parentComponent, "created");
|
|
4322
|
-
invokeDirectiveHook(vnode, null, parentComponent, "beforeMount");
|
|
4323
|
-
}
|
|
4324
|
-
}, () => {
|
|
4325
|
-
if (vnodeBeforeMountHook) invokeVNodeHook(vnodeBeforeMountHook, parentComponent, vnode);
|
|
4326
|
-
});
|
|
4327
|
-
if (vnode.dirs) queueEffectWithSuspense(() => invokeDirectiveHook(vnode, null, parentComponent, "mounted"), void 0, parentSuspense);
|
|
4328
|
-
const vnodeMountedHook = !isAsyncWrapper(vnode) && vnode.props && vnode.props.onVnodeMounted;
|
|
4329
|
-
if (vnodeMountedHook) queueEffectWithSuspense(() => invokeVNodeHook(vnodeMountedHook, parentComponent, vnode), void 0, parentSuspense);
|
|
4330
|
-
} else {
|
|
4455
|
+
if (vnode.type.__vapor) getVaporInterface(parentComponent, vnode).hydrate(vnode, node, container, nextNode, parentComponent, parentSuspense);
|
|
4456
|
+
else {
|
|
4331
4457
|
mountComponent(vnode, container, null, parentComponent, parentSuspense, getContainerType(container), optimized);
|
|
4332
4458
|
const component = vnode.component;
|
|
4333
|
-
if (isAsyncWrapper(vnode)
|
|
4459
|
+
if (!component.subTree && (isAsyncWrapper(vnode) || component.asyncDep)) {
|
|
4334
4460
|
let subTree;
|
|
4335
4461
|
if (isFragmentStart) {
|
|
4336
|
-
subTree = createVNode(
|
|
4462
|
+
subTree = createVNode(Static);
|
|
4337
4463
|
subTree.anchor = nextNode ? nextNode.previousSibling : container.lastChild;
|
|
4338
|
-
} else subTree = node.nodeType === 3 ? createTextVNode("") : createVNode("div");
|
|
4464
|
+
} else subTree = node.nodeType === 3 ? createTextVNode("") : createVNode(node.nodeType === 8 ? Comment : "div");
|
|
4339
4465
|
subTree.el = node;
|
|
4340
4466
|
component.subTree = subTree;
|
|
4341
4467
|
}
|
|
4342
4468
|
}
|
|
4343
|
-
} else if (shapeFlag & 64)
|
|
4344
|
-
|
|
4345
|
-
|
|
4469
|
+
} else if (shapeFlag & 64) {
|
|
4470
|
+
if (domType !== 8) nextNode = onMismatch();
|
|
4471
|
+
else nextNode = vnode.type.hydrate(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized, rendererInternals, hydrateChildren);
|
|
4472
|
+
} else if (shapeFlag & 128) nextNode = vnode.type.hydrate(node, vnode, parentComponent, parentSuspense, getContainerType(parentNode(node)), slotScopeIds, optimized, rendererInternals, hydrateNode);
|
|
4346
4473
|
else warn$1("Invalid HostVNode type:", type, `(${typeof type})`);
|
|
4347
4474
|
}
|
|
4348
4475
|
if (ref != null) setRef(ref, null, parentSuspense, vnode);
|
|
@@ -4394,7 +4521,10 @@ function createHydrationFunctions(rendererInternals) {
|
|
|
4394
4521
|
const namespace = el.namespaceURI.includes("svg") ? "svg" : el.namespaceURI.includes("MathML") ? "mathml" : void 0;
|
|
4395
4522
|
for (const key in props) {
|
|
4396
4523
|
if (!(dirs && dirs.some((d) => d.dir.created)) && propHasMismatch(el, key, props[key], vnode, parentComponent)) logMismatchError();
|
|
4397
|
-
if (forcePatch && (key.endsWith("value") || key === "indeterminate") || isOn(key) && !isReservedProp(key) || key[0] === "." || isCustomElement && !isReservedProp(key) || dynamicProps && dynamicProps.includes(key))
|
|
4524
|
+
if (forcePatch && (key.endsWith("value") || key === "indeterminate") || isOn(key) && !isReservedProp(key) || key[0] === "." || isCustomElement && !isReservedProp(key) || dynamicProps && dynamicProps.includes(key)) {
|
|
4525
|
+
if (isUnchangedResourceProp(el, key, props[key])) continue;
|
|
4526
|
+
patchProp(el, key, null, props[key], namespace, parentComponent);
|
|
4527
|
+
}
|
|
4398
4528
|
}
|
|
4399
4529
|
}
|
|
4400
4530
|
let vnodeHooks;
|
|
@@ -4442,8 +4572,9 @@ function createHydrationFunctions(rendererInternals) {
|
|
|
4442
4572
|
const { slotScopeIds: fragmentSlotScopeIds } = vnode;
|
|
4443
4573
|
if (fragmentSlotScopeIds) slotScopeIds = slotScopeIds ? slotScopeIds.concat(fragmentSlotScopeIds) : fragmentSlotScopeIds;
|
|
4444
4574
|
const container = parentNode(node);
|
|
4445
|
-
const
|
|
4446
|
-
|
|
4575
|
+
const first = nextSibling(node);
|
|
4576
|
+
const next = vnode.vo && node.data === "(" ? getVaporInterface(parentComponent, vnode).hydrateSlotOutlet(vnode, node, parentComponent, parentSuspense, slotScopeIds) : hydrateChildren(first, vnode, container, parentComponent, parentSuspense, slotScopeIds, optimized);
|
|
4577
|
+
if (next && isComment(next) && next.data === (node.data === "(" ? ")" : "]")) return nextSibling(vnode.anchor = next);
|
|
4447
4578
|
else {
|
|
4448
4579
|
logMismatchError();
|
|
4449
4580
|
insert(vnode.anchor = createComment(`]`), container, next);
|
|
@@ -4452,7 +4583,7 @@ function createHydrationFunctions(rendererInternals) {
|
|
|
4452
4583
|
};
|
|
4453
4584
|
const handleMismatch = (node, vnode, parentComponent, parentSuspense, slotScopeIds, isFragment) => {
|
|
4454
4585
|
if (!isNodeMismatchAllowed(node, vnode)) {
|
|
4455
|
-
warn$1(`Hydration node mismatch:\n- rendered on server:`, node, node.nodeType === 3 ? `(text)` : isComment(node) && node.data === "[" ? `(start of fragment)` : ``, `\n- expected on client:`, vnode.type);
|
|
4586
|
+
warn$1(`Hydration node mismatch:\n- rendered on server:`, node, node.nodeType === 3 ? `(text)` : isComment(node) && (node.data === "[" || node.data === "(") ? `(start of fragment)` : ``, `\n- expected on client:`, vnode.type);
|
|
4456
4587
|
logMismatchError();
|
|
4457
4588
|
}
|
|
4458
4589
|
vnode.el = null;
|
|
@@ -4468,20 +4599,22 @@ function createHydrationFunctions(rendererInternals) {
|
|
|
4468
4599
|
const container = parentNode(node);
|
|
4469
4600
|
remove(node);
|
|
4470
4601
|
patch(null, vnode, container, next, parentComponent, parentSuspense, getContainerType(container), slotScopeIds);
|
|
4471
|
-
if (parentComponent) {
|
|
4602
|
+
if (parentComponent && parentComponent.vnode) {
|
|
4472
4603
|
parentComponent.vnode.el = vnode.el;
|
|
4473
4604
|
updateHOCHostEl(parentComponent, vnode.el);
|
|
4474
4605
|
}
|
|
4475
4606
|
return next;
|
|
4476
4607
|
};
|
|
4477
|
-
const locateClosingAnchor = (node, open = "[", close = "]") => {
|
|
4608
|
+
const locateClosingAnchor = (node, open = node && isComment(node) && node.data === "(" ? "(" : "[", close = open === "(" ? ")" : "]") => {
|
|
4478
4609
|
let match = 0;
|
|
4479
4610
|
while (node) {
|
|
4480
4611
|
node = nextSibling(node);
|
|
4481
4612
|
if (node && isComment(node)) {
|
|
4482
4613
|
if (node.data === open) match++;
|
|
4483
|
-
if (node.data === close)
|
|
4484
|
-
|
|
4614
|
+
if (node.data === close) {
|
|
4615
|
+
if (match === 0) return nextSibling(node);
|
|
4616
|
+
else match--;
|
|
4617
|
+
}
|
|
4485
4618
|
}
|
|
4486
4619
|
}
|
|
4487
4620
|
return node;
|
|
@@ -4491,7 +4624,7 @@ function createHydrationFunctions(rendererInternals) {
|
|
|
4491
4624
|
if (parentNode) parentNode.replaceChild(newNode, oldNode);
|
|
4492
4625
|
let parent = parentComponent;
|
|
4493
4626
|
while (parent) {
|
|
4494
|
-
if (parent.vnode.el === oldNode) parent.vnode.el = parent.subTree.el = newNode;
|
|
4627
|
+
if (parent.vnode && parent.vnode.el === oldNode) parent.vnode.el = parent.subTree.el = newNode;
|
|
4495
4628
|
parent = parent.parent;
|
|
4496
4629
|
}
|
|
4497
4630
|
};
|
|
@@ -4500,6 +4633,16 @@ function createHydrationFunctions(rendererInternals) {
|
|
|
4500
4633
|
const isTemplateNode$1 = (node) => {
|
|
4501
4634
|
return node.nodeType === 1 && node.tagName === "TEMPLATE";
|
|
4502
4635
|
};
|
|
4636
|
+
const resourceProps = /*@__PURE__*/ new Set([
|
|
4637
|
+
"src",
|
|
4638
|
+
"srcset",
|
|
4639
|
+
"href",
|
|
4640
|
+
"poster"
|
|
4641
|
+
]);
|
|
4642
|
+
function isUnchangedResourceProp(el, key, clientValue) {
|
|
4643
|
+
if (!resourceProps.has(key)) return false;
|
|
4644
|
+
return el.getAttribute(key) === (clientValue == null ? null : `${clientValue}`);
|
|
4645
|
+
}
|
|
4503
4646
|
/**
|
|
4504
4647
|
* Dev only
|
|
4505
4648
|
*/
|
|
@@ -4543,7 +4686,10 @@ function propHasMismatch(el, key, clientValue, vnode, instance) {
|
|
|
4543
4686
|
function getAttributeMismatch(el, key, clientValue) {
|
|
4544
4687
|
let actual;
|
|
4545
4688
|
let expected;
|
|
4546
|
-
if (
|
|
4689
|
+
if (key === "hidden") {
|
|
4690
|
+
actual = normalizeHiddenValue(el.getAttribute(key));
|
|
4691
|
+
expected = normalizeHiddenValue(clientValue);
|
|
4692
|
+
} else if (isBooleanAttr(key)) {
|
|
4547
4693
|
actual = el.hasAttribute(key);
|
|
4548
4694
|
expected = includeBooleanAttr(clientValue);
|
|
4549
4695
|
} else if (clientValue == null) {
|
|
@@ -4571,6 +4717,11 @@ function warnPropMismatch(el, mismatchKey, mismatchType, actual, expected) {
|
|
|
4571
4717
|
}
|
|
4572
4718
|
return false;
|
|
4573
4719
|
}
|
|
4720
|
+
function normalizeHiddenValue(value) {
|
|
4721
|
+
if (!isRenderableAttrValue(value)) return false;
|
|
4722
|
+
if (isString(value)) return value.toLowerCase() === "until-found" ? "until-found" : "";
|
|
4723
|
+
return includeBooleanAttr(value) ? "" : false;
|
|
4724
|
+
}
|
|
4574
4725
|
function toClassSet(str) {
|
|
4575
4726
|
return new Set(str.trim().split(/\s+/));
|
|
4576
4727
|
}
|
|
@@ -4709,16 +4860,18 @@ const hydrateOnInteraction = (interactions = []) => (hydrate, forEach) => {
|
|
|
4709
4860
|
return teardown;
|
|
4710
4861
|
};
|
|
4711
4862
|
function forEachElement(node, cb) {
|
|
4712
|
-
if (isComment(node) && node.data === "[") {
|
|
4863
|
+
if (isComment(node) && (node.data === "[" || node.data === "(")) {
|
|
4864
|
+
const open = node.data;
|
|
4865
|
+
const close = open === "[" ? "]" : ")";
|
|
4713
4866
|
let depth = 1;
|
|
4714
4867
|
let next = node.nextSibling;
|
|
4715
4868
|
while (next) {
|
|
4716
4869
|
if (next.nodeType === 1) {
|
|
4717
4870
|
if (cb(next) === false) break;
|
|
4718
4871
|
} else if (isComment(next)) {
|
|
4719
|
-
if (next.data ===
|
|
4872
|
+
if (next.data === close) {
|
|
4720
4873
|
if (--depth === 0) break;
|
|
4721
|
-
} else if (next.data ===
|
|
4874
|
+
} else if (next.data === open) depth++;
|
|
4722
4875
|
}
|
|
4723
4876
|
next = next.nextSibling;
|
|
4724
4877
|
}
|
|
@@ -4727,14 +4880,14 @@ function forEachElement(node, cb) {
|
|
|
4727
4880
|
//#endregion
|
|
4728
4881
|
//#region packages/runtime-core/src/apiAsyncComponent.ts
|
|
4729
4882
|
const isAsyncWrapper = (i) => !!i.type.__asyncLoader;
|
|
4730
|
-
|
|
4883
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
4731
4884
|
function defineAsyncComponent(source) {
|
|
4732
4885
|
const { load, getResolvedComp, setPendingRequest, source: { loadingComponent, errorComponent, delay, hydrate: hydrateStrategy, timeout, suspensible = true } } = createAsyncComponentContext(source);
|
|
4733
4886
|
return /* @__PURE__ */ defineComponent({
|
|
4734
4887
|
name: "AsyncComponentWrapper",
|
|
4735
4888
|
__asyncLoader: load,
|
|
4736
4889
|
__asyncHydrate(el, instance, hydrate) {
|
|
4737
|
-
performAsyncHydrate(el, instance, hydrate, getResolvedComp, load, hydrateStrategy);
|
|
4890
|
+
performAsyncHydrate(el, instance, hydrate, getResolvedComp, load, hydrateStrategy, true);
|
|
4738
4891
|
},
|
|
4739
4892
|
get __asyncResolved() {
|
|
4740
4893
|
return getResolvedComp();
|
|
@@ -4853,10 +5006,10 @@ const useAsyncComponentState = (delay, timeout, onError, instance = currentInsta
|
|
|
4853
5006
|
* shared between core and vapor
|
|
4854
5007
|
* @internal
|
|
4855
5008
|
*/
|
|
4856
|
-
function performAsyncHydrate(el, instance, hydrate, getResolvedComp, load, hydrateStrategy) {
|
|
5009
|
+
function performAsyncHydrate(el, instance, hydrate, getResolvedComp, load, hydrateStrategy, skipIfUpdated) {
|
|
4857
5010
|
const wasConnected = el.isConnected;
|
|
4858
5011
|
let patched = false;
|
|
4859
|
-
(instance.bu || (instance.bu = [])).push(() => patched = true);
|
|
5012
|
+
if (skipIfUpdated) (instance.bu || (instance.bu = [])).push(() => patched = true);
|
|
4860
5013
|
const performHydrate = () => {
|
|
4861
5014
|
if (patched) {
|
|
4862
5015
|
{
|
|
@@ -4946,10 +5099,13 @@ const KeepAliveImpl = {
|
|
|
4946
5099
|
});
|
|
4947
5100
|
let pendingCacheKey = null;
|
|
4948
5101
|
const cacheSubtree = () => {
|
|
4949
|
-
if (pendingCacheKey != null)
|
|
4950
|
-
|
|
4951
|
-
|
|
4952
|
-
|
|
5102
|
+
if (pendingCacheKey != null) {
|
|
5103
|
+
if (isSuspense(keepAliveInstance.subTree.type)) queuePostRenderEffect(() => {
|
|
5104
|
+
const vnode = getInnerChild(keepAliveInstance.subTree);
|
|
5105
|
+
if (vnode.component) cache.set(pendingCacheKey, vnode);
|
|
5106
|
+
}, void 0, keepAliveInstance.subTree.suspense);
|
|
5107
|
+
else cache.set(pendingCacheKey, getInnerChild(keepAliveInstance.subTree));
|
|
5108
|
+
}
|
|
4953
5109
|
};
|
|
4954
5110
|
onMounted(cacheSubtree);
|
|
4955
5111
|
onUpdated(cacheSubtree);
|
|
@@ -5020,7 +5176,7 @@ const decorate$2 = (t) => {
|
|
|
5020
5176
|
t.__isBuiltIn = true;
|
|
5021
5177
|
return t;
|
|
5022
5178
|
};
|
|
5023
|
-
const KeepAlive =
|
|
5179
|
+
const KeepAlive = /*@__PURE__*/ decorate$2(KeepAliveImpl);
|
|
5024
5180
|
function matches(pattern, name) {
|
|
5025
5181
|
if (isArray(pattern)) return pattern.some((p) => matches(p, name));
|
|
5026
5182
|
else if (isString(pattern)) return pattern.split(",").includes(name);
|
|
@@ -5111,7 +5267,7 @@ function injectHook(type, hook, target = currentInstance, prepend = false) {
|
|
|
5111
5267
|
try {
|
|
5112
5268
|
return callWithAsyncErrorHandling(hook, target, type, args);
|
|
5113
5269
|
} finally {
|
|
5114
|
-
|
|
5270
|
+
restoreCurrentInstance(prev);
|
|
5115
5271
|
setActiveSub(prevSub);
|
|
5116
5272
|
}
|
|
5117
5273
|
});
|
|
@@ -5236,16 +5392,17 @@ function compatH(type, propsOrChildren, children) {
|
|
|
5236
5392
|
}
|
|
5237
5393
|
const l = arguments.length;
|
|
5238
5394
|
const is2ndArgArrayChildren = isArray(propsOrChildren);
|
|
5239
|
-
if (l === 2 || is2ndArgArrayChildren)
|
|
5240
|
-
if (
|
|
5241
|
-
|
|
5242
|
-
|
|
5243
|
-
|
|
5395
|
+
if (l === 2 || is2ndArgArrayChildren) {
|
|
5396
|
+
if (isObject(propsOrChildren) && !is2ndArgArrayChildren) {
|
|
5397
|
+
if (isVNode(propsOrChildren)) return convertLegacySlots(createVNode(type, null, [propsOrChildren]));
|
|
5398
|
+
return convertLegacySlots(convertLegacyDirectives(createVNode(type, convertLegacyProps(propsOrChildren, type)), propsOrChildren));
|
|
5399
|
+
} else return convertLegacySlots(createVNode(type, null, propsOrChildren));
|
|
5400
|
+
} else {
|
|
5244
5401
|
if (isVNode(children)) children = [children];
|
|
5245
5402
|
return convertLegacySlots(convertLegacyDirectives(createVNode(type, convertLegacyProps(propsOrChildren, type), children), propsOrChildren));
|
|
5246
5403
|
}
|
|
5247
5404
|
}
|
|
5248
|
-
const skipLegacyRootLevelProps =
|
|
5405
|
+
const skipLegacyRootLevelProps = /*@__PURE__*/ makeMap("staticStyle,staticClass,directives,model,hook");
|
|
5249
5406
|
function convertLegacyProps(legacyProps, type) {
|
|
5250
5407
|
if (!legacyProps) return null;
|
|
5251
5408
|
const converted = {};
|
|
@@ -5257,8 +5414,10 @@ function convertLegacyProps(legacyProps, type) {
|
|
|
5257
5414
|
if (key === "nativeOn") handlerKey += `Native`;
|
|
5258
5415
|
const existing = converted[handlerKey];
|
|
5259
5416
|
const incoming = listeners[event];
|
|
5260
|
-
if (existing !== incoming)
|
|
5261
|
-
|
|
5417
|
+
if (existing !== incoming) {
|
|
5418
|
+
if (existing) converted[handlerKey] = [].concat(existing, incoming);
|
|
5419
|
+
else converted[handlerKey] = incoming;
|
|
5420
|
+
}
|
|
5262
5421
|
}
|
|
5263
5422
|
} else if (!skipLegacyRootLevelProps(key)) converted[key] = legacyProps[key];
|
|
5264
5423
|
if (legacyProps.staticClass) converted.class = normalizeClass([legacyProps.staticClass, converted.class]);
|
|
@@ -5357,7 +5516,7 @@ function convertLegacyFunctionalComponent(comp) {
|
|
|
5357
5516
|
const legacyFn = comp.render;
|
|
5358
5517
|
const Func = (props, ctx) => {
|
|
5359
5518
|
const instance = getCurrentInstance();
|
|
5360
|
-
|
|
5519
|
+
const legacyCtx = {
|
|
5361
5520
|
props,
|
|
5362
5521
|
children: instance.vnode.children || [],
|
|
5363
5522
|
data: instance.vnode.props || {},
|
|
@@ -5377,7 +5536,8 @@ function convertLegacyFunctionalComponent(comp) {
|
|
|
5377
5536
|
}
|
|
5378
5537
|
return {};
|
|
5379
5538
|
}
|
|
5380
|
-
}
|
|
5539
|
+
};
|
|
5540
|
+
return legacyFn(compatH, legacyCtx);
|
|
5381
5541
|
};
|
|
5382
5542
|
Func.props = comp.props;
|
|
5383
5543
|
Func.displayName = comp.name;
|
|
@@ -5406,23 +5566,25 @@ function renderList(source, renderItem, cache, index) {
|
|
|
5406
5566
|
}
|
|
5407
5567
|
ret = new Array(source.length);
|
|
5408
5568
|
for (let i = 0, l = source.length; i < l; i++) ret[i] = renderItem(needsWrap ? isReadonlySource ? toReadonly(toReactive(source[i])) : toReactive(source[i]) : source[i], i, void 0, cached && cached[i]);
|
|
5409
|
-
} else if (typeof source === "number")
|
|
5410
|
-
|
|
5411
|
-
|
|
5412
|
-
|
|
5413
|
-
|
|
5414
|
-
|
|
5415
|
-
|
|
5416
|
-
else if (isObject(source)) if (source[Symbol.iterator]) ret = Array.from(source, (item, i) => renderItem(item, i, void 0, cached && cached[i]));
|
|
5417
|
-
else {
|
|
5418
|
-
const keys = Object.keys(source);
|
|
5419
|
-
ret = new Array(keys.length);
|
|
5420
|
-
for (let i = 0, l = keys.length; i < l; i++) {
|
|
5421
|
-
const key = keys[i];
|
|
5422
|
-
ret[i] = renderItem(source[key], key, i, cached && cached[i]);
|
|
5569
|
+
} else if (typeof source === "number") {
|
|
5570
|
+
if (!Number.isInteger(source) || source < 0) {
|
|
5571
|
+
warn$1(`The v-for range expects a positive integer value but got ${source}.`);
|
|
5572
|
+
ret = [];
|
|
5573
|
+
} else {
|
|
5574
|
+
ret = new Array(source);
|
|
5575
|
+
for (let i = 0; i < source; i++) ret[i] = renderItem(i + 1, i, void 0, cached && cached[i]);
|
|
5423
5576
|
}
|
|
5424
|
-
}
|
|
5425
|
-
|
|
5577
|
+
} else if (isObject(source)) {
|
|
5578
|
+
if (source[Symbol.iterator]) ret = Array.from(source, (item, i) => renderItem(item, i, void 0, cached && cached[i]));
|
|
5579
|
+
else {
|
|
5580
|
+
const keys = Object.keys(source);
|
|
5581
|
+
ret = new Array(keys.length);
|
|
5582
|
+
for (let i = 0, l = keys.length; i < l; i++) {
|
|
5583
|
+
const key = keys[i];
|
|
5584
|
+
ret[i] = renderItem(source[key], key, i, cached && cached[i]);
|
|
5585
|
+
}
|
|
5586
|
+
}
|
|
5587
|
+
} else ret = [];
|
|
5426
5588
|
if (cache) cache[index] = ret;
|
|
5427
5589
|
return ret;
|
|
5428
5590
|
}
|
|
@@ -5447,18 +5609,45 @@ function createSlots(slots, dynamicSlots) {
|
|
|
5447
5609
|
//#endregion
|
|
5448
5610
|
//#region packages/runtime-core/src/helpers/renderSlot.ts
|
|
5449
5611
|
/**
|
|
5612
|
+
* Links a slot function to its raw vapor slot: a raw vapor slot carries
|
|
5613
|
+
* itself, and the wrapper the interop slots proxy hands out carries the raw
|
|
5614
|
+
* slot it wraps — one lookup answers both "is this a vapor slot" and
|
|
5615
|
+
* "which one". Internal to vapor interop.
|
|
5616
|
+
*/
|
|
5617
|
+
const rawVaporSlotKey = Symbol(`rawVaporSlot`);
|
|
5618
|
+
/**
|
|
5619
|
+
* Invokes a VDOM slot fallback under the outlet owner that produced it, the
|
|
5620
|
+
* way `renderSlot` would have rendered it inline. Vapor interop invokes
|
|
5621
|
+
* fallbacks late, outside any render, so it passes the owner recorded on the
|
|
5622
|
+
* vapor slot vnode. Internal to vapor interop.
|
|
5623
|
+
*/
|
|
5624
|
+
function invokeSlotFallback(fallback, owner) {
|
|
5625
|
+
if (!owner) return fallback();
|
|
5626
|
+
const prev = setCurrentRenderingInstance(owner);
|
|
5627
|
+
const prevStackSize = blockStack.length;
|
|
5628
|
+
try {
|
|
5629
|
+
return fallback();
|
|
5630
|
+
} finally {
|
|
5631
|
+
for (let i = blockStack.length; i > prevStackSize; i--) closeBlock();
|
|
5632
|
+
setCurrentRenderingInstance(prev);
|
|
5633
|
+
}
|
|
5634
|
+
}
|
|
5635
|
+
/**
|
|
5450
5636
|
* Compiler runtime helper for rendering `<slot/>`
|
|
5451
5637
|
* @private
|
|
5452
5638
|
*/
|
|
5453
|
-
function renderSlot(slots, name, props
|
|
5639
|
+
function renderSlot(slots, name, props, fallback, noSlotted, branchKey) {
|
|
5640
|
+
if (props == null) props = {};
|
|
5454
5641
|
let slot = slots[name];
|
|
5455
|
-
|
|
5456
|
-
const vaporSlot = slot && (slot.__vs || (slot.__vapor ? slot : null));
|
|
5642
|
+
const vaporSlot = slot && slot[rawVaporSlotKey];
|
|
5457
5643
|
if (vaporSlot) {
|
|
5458
5644
|
const ret = (openBlock(), createBlock(VaporSlot, props));
|
|
5459
5645
|
ret.vs = {
|
|
5460
5646
|
slot: vaporSlot,
|
|
5461
|
-
fallback
|
|
5647
|
+
outlets: fallback ? [{
|
|
5648
|
+
fallback,
|
|
5649
|
+
owner: currentRenderingInstance
|
|
5650
|
+
}] : void 0
|
|
5462
5651
|
};
|
|
5463
5652
|
if (!noSlotted && ret.scopeId) ret.slotScopeIds = [ret.scopeId + "-s"];
|
|
5464
5653
|
return ret;
|
|
@@ -5479,9 +5668,15 @@ function renderSlot(slots, name, props = {}, fallback, noSlotted, branchKey) {
|
|
|
5479
5668
|
let rendered;
|
|
5480
5669
|
try {
|
|
5481
5670
|
const validSlotContent = slot && ensureValidVNode(slot(props));
|
|
5482
|
-
|
|
5671
|
+
let attached = false;
|
|
5672
|
+
if (fallback && validSlotContent && currentRenderingInstance) {
|
|
5673
|
+
const interop = currentRenderingInstance.appContext.vapor;
|
|
5674
|
+
if (interop) attached = interop.attachSlotOutlet(validSlotContent, fallback, currentRenderingInstance);
|
|
5675
|
+
}
|
|
5483
5676
|
const slotKey = props.key || branchKey || validSlotContent && validSlotContent.key;
|
|
5484
5677
|
rendered = createBlock(Fragment, { key: (slotKey && !isSymbol(slotKey) ? slotKey : `_${name}`) + (!validSlotContent && fallback ? "_fb" : "") }, validSlotContent || (fallback ? fallback() : []), validSlotContent && slots._ === 1 ? 64 : -2);
|
|
5678
|
+
if (!validSlotContent && fallback) rendered.shapeFlag |= 1024;
|
|
5679
|
+
if (attached) rendered.vo = true;
|
|
5485
5680
|
} catch (err) {
|
|
5486
5681
|
for (let i = blockStack.length; i > prevStackSize; i--) closeBlock();
|
|
5487
5682
|
throw err;
|
|
@@ -5499,10 +5694,6 @@ function ensureValidVNode(vnodes) {
|
|
|
5499
5694
|
return true;
|
|
5500
5695
|
}) ? vnodes : null;
|
|
5501
5696
|
}
|
|
5502
|
-
function ensureVaporSlotFallback(vnodes, fallback) {
|
|
5503
|
-
let vaporSlot;
|
|
5504
|
-
if (vnodes && vnodes.length === 1 && isVNode(vnodes[0]) && (vaporSlot = vnodes[0].vs)) vaporSlot.outletFallback = fallback;
|
|
5505
|
-
}
|
|
5506
5697
|
//#endregion
|
|
5507
5698
|
//#region packages/runtime-core/src/helpers/toHandlers.ts
|
|
5508
5699
|
/**
|
|
@@ -5561,12 +5752,14 @@ function legacyResolveScopedSlots(fns, raw, hasDynamicKeys) {
|
|
|
5561
5752
|
function mapKeyToName(slots) {
|
|
5562
5753
|
for (let i = 0; i < slots.length; i++) {
|
|
5563
5754
|
const fn = slots[i];
|
|
5564
|
-
if (fn)
|
|
5565
|
-
|
|
5755
|
+
if (fn) {
|
|
5756
|
+
if (isArray(fn)) mapKeyToName(fn);
|
|
5757
|
+
else fn.name = fn.key || "default";
|
|
5758
|
+
}
|
|
5566
5759
|
}
|
|
5567
5760
|
return slots;
|
|
5568
5761
|
}
|
|
5569
|
-
const staticCacheMap =
|
|
5762
|
+
const staticCacheMap = /*@__PURE__*/ new WeakMap();
|
|
5570
5763
|
function legacyRenderStatic(instance, index) {
|
|
5571
5764
|
let cache = staticCacheMap.get(instance);
|
|
5572
5765
|
if (!cache) staticCacheMap.set(instance, cache = []);
|
|
@@ -5699,11 +5892,38 @@ const getPublicInstance = (i) => {
|
|
|
5699
5892
|
if (isStatefulComponent(i)) return getComponentPublicInstance(i);
|
|
5700
5893
|
return getPublicInstance(i.parent);
|
|
5701
5894
|
};
|
|
5895
|
+
const resolveDevRootEl = (vnode) => {
|
|
5896
|
+
let found = false;
|
|
5897
|
+
while (true) {
|
|
5898
|
+
if (vnode.patchFlag > 0 && vnode.patchFlag & 2048) {
|
|
5899
|
+
const root = filterSingleRoot(vnode.children);
|
|
5900
|
+
if (!root) return;
|
|
5901
|
+
vnode = root;
|
|
5902
|
+
found = true;
|
|
5903
|
+
continue;
|
|
5904
|
+
}
|
|
5905
|
+
const component = vnode.component;
|
|
5906
|
+
if (component && component.subTree) {
|
|
5907
|
+
vnode = component.subTree;
|
|
5908
|
+
continue;
|
|
5909
|
+
}
|
|
5910
|
+
const suspense = vnode.suspense;
|
|
5911
|
+
if (suspense && suspense.activeBranch) {
|
|
5912
|
+
vnode = suspense.activeBranch;
|
|
5913
|
+
continue;
|
|
5914
|
+
}
|
|
5915
|
+
return found ? vnode.el : void 0;
|
|
5916
|
+
}
|
|
5917
|
+
};
|
|
5918
|
+
const getDevRootFragmentEl = (i) => {
|
|
5919
|
+
const el = i.subTree && resolveDevRootEl(i.subTree);
|
|
5920
|
+
return el === void 0 ? i.vnode.el : el;
|
|
5921
|
+
};
|
|
5702
5922
|
let publicPropertiesMap;
|
|
5703
5923
|
const getPublicPropertiesMap = () => {
|
|
5704
5924
|
if (!publicPropertiesMap) publicPropertiesMap = extend(Object.create(null), {
|
|
5705
5925
|
$: (i) => i,
|
|
5706
|
-
$el: (i) => i
|
|
5926
|
+
$el: (i) => getDevRootFragmentEl(i),
|
|
5707
5927
|
$data: (i) => i.data,
|
|
5708
5928
|
$props: (i) => /* @__PURE__ */ shallowReadonly(i.props),
|
|
5709
5929
|
$attrs: (i) => /* @__PURE__ */ shallowReadonly(i.attrs),
|
|
@@ -5816,7 +6036,7 @@ PublicInstanceProxyHandlers.ownKeys = (target) => {
|
|
|
5816
6036
|
warn$1("Avoid app logic that relies on enumerating keys on a component instance. The keys will be empty in production mode to avoid performance overhead.");
|
|
5817
6037
|
return Reflect.ownKeys(target);
|
|
5818
6038
|
};
|
|
5819
|
-
const RuntimeCompiledPublicInstanceProxyHandlers =
|
|
6039
|
+
const RuntimeCompiledPublicInstanceProxyHandlers = /*@__PURE__*/ extend({}, PublicInstanceProxyHandlers, {
|
|
5820
6040
|
get(target, key) {
|
|
5821
6041
|
if (key === Symbol.unscopables) return;
|
|
5822
6042
|
return PublicInstanceProxyHandlers.get(target, key, target);
|
|
@@ -6001,12 +6221,13 @@ function mergeDefaults(raw, defaults) {
|
|
|
6001
6221
|
for (const key in defaults) {
|
|
6002
6222
|
if (key.startsWith("__skip")) continue;
|
|
6003
6223
|
let opt = props[key];
|
|
6004
|
-
if (opt)
|
|
6005
|
-
|
|
6006
|
-
|
|
6007
|
-
|
|
6008
|
-
|
|
6009
|
-
|
|
6224
|
+
if (opt) {
|
|
6225
|
+
if (isArray(opt) || isFunction(opt)) opt = props[key] = {
|
|
6226
|
+
type: opt,
|
|
6227
|
+
default: defaults[key]
|
|
6228
|
+
};
|
|
6229
|
+
else opt.default = defaults[key];
|
|
6230
|
+
} else if (opt === null) opt = props[key] = { default: defaults[key] };
|
|
6010
6231
|
else warn$1(`props default key "${key}" has no corresponding declaration.`);
|
|
6011
6232
|
if (opt && defaults[`__skip_${key}`]) opt.skipFactory = true;
|
|
6012
6233
|
}
|
|
@@ -6056,37 +6277,32 @@ function createPropsRestProxy(props, excludedKeys) {
|
|
|
6056
6277
|
function withAsyncContext(getAwaitable) {
|
|
6057
6278
|
const ctx = getCurrentGenericInstance();
|
|
6058
6279
|
const inSSRSetup = isInSSRComponentSetup;
|
|
6059
|
-
const restoreAsyncContext = ctx && ctx.restoreAsyncContext ? ctx.restoreAsyncContext.bind(ctx) : void 0;
|
|
6060
6280
|
if (!ctx) warn$1("withAsyncContext called without active current instance. This is likely a bug.");
|
|
6061
6281
|
let awaitable = getAwaitable();
|
|
6062
6282
|
setCurrentInstance(null, void 0);
|
|
6063
6283
|
if (inSSRSetup) setInSSRSetupState(false);
|
|
6064
6284
|
const restore = () => {
|
|
6065
|
-
const
|
|
6285
|
+
const stoppedScope = ctx && !ctx.scope.active ? ctx.scope : void 0;
|
|
6066
6286
|
setCurrentInstance(ctx);
|
|
6067
6287
|
if (inSSRSetup) setInSSRSetupState(true);
|
|
6068
|
-
|
|
6069
|
-
return () => {
|
|
6070
|
-
if (reset) reset();
|
|
6071
|
-
if (resetStoppedScope) resetStoppedScope.reset();
|
|
6072
|
-
};
|
|
6288
|
+
return stoppedScope;
|
|
6073
6289
|
};
|
|
6074
6290
|
const cleanup = () => {
|
|
6075
6291
|
setCurrentInstance(null, void 0);
|
|
6076
6292
|
if (inSSRSetup) setInSSRSetupState(false);
|
|
6077
6293
|
};
|
|
6078
6294
|
if (isPromise(awaitable)) awaitable = awaitable.catch((e) => {
|
|
6079
|
-
const
|
|
6295
|
+
const stoppedScope = restore();
|
|
6080
6296
|
Promise.resolve().then(() => Promise.resolve().then(() => {
|
|
6081
|
-
if (
|
|
6297
|
+
if (stoppedScope) stoppedScope.reset();
|
|
6082
6298
|
cleanup();
|
|
6083
6299
|
}));
|
|
6084
6300
|
throw e;
|
|
6085
6301
|
});
|
|
6086
6302
|
return [awaitable, () => {
|
|
6087
|
-
const
|
|
6303
|
+
const stoppedScope = restore();
|
|
6088
6304
|
Promise.resolve().then(() => {
|
|
6089
|
-
if (
|
|
6305
|
+
if (stoppedScope) stoppedScope.reset();
|
|
6090
6306
|
cleanup();
|
|
6091
6307
|
});
|
|
6092
6308
|
}];
|
|
@@ -6149,11 +6365,12 @@ function applyOptions(instance) {
|
|
|
6149
6365
|
const opt = computedOptions[key];
|
|
6150
6366
|
const get = isFunction(opt) ? opt.bind(publicThis, publicThis) : isFunction(opt.get) ? opt.get.bind(publicThis, publicThis) : NOOP;
|
|
6151
6367
|
if (get === NOOP) warn$1(`Computed property "${key}" has no getter.`);
|
|
6368
|
+
const set = !isFunction(opt) && isFunction(opt.set) ? opt.set.bind(publicThis) : () => {
|
|
6369
|
+
warn$1(`Write operation failed: computed property "${key}" is readonly.`);
|
|
6370
|
+
};
|
|
6152
6371
|
const c = computed({
|
|
6153
6372
|
get,
|
|
6154
|
-
set
|
|
6155
|
-
warn$1(`Write operation failed: computed property "${key}" is readonly.`);
|
|
6156
|
-
}
|
|
6373
|
+
set
|
|
6157
6374
|
});
|
|
6158
6375
|
Object.defineProperty(ctx, key, {
|
|
6159
6376
|
enumerable: true,
|
|
@@ -6213,9 +6430,10 @@ function resolveInjections(injectOptions, ctx, checkDuplicateProperties = NOOP)
|
|
|
6213
6430
|
for (const key in injectOptions) {
|
|
6214
6431
|
const opt = injectOptions[key];
|
|
6215
6432
|
let injected;
|
|
6216
|
-
if (isObject(opt))
|
|
6217
|
-
|
|
6218
|
-
|
|
6433
|
+
if (isObject(opt)) {
|
|
6434
|
+
if ("default" in opt) injected = inject(opt.from || key, opt.default, true);
|
|
6435
|
+
else injected = inject(opt.from || key);
|
|
6436
|
+
} else injected = inject(opt);
|
|
6219
6437
|
if (/* @__PURE__ */ isRef(injected)) Object.defineProperty(ctx, key, {
|
|
6220
6438
|
enumerable: true,
|
|
6221
6439
|
configurable: true,
|
|
@@ -6235,7 +6453,8 @@ function createWatcher(raw, ctx, publicThis, key) {
|
|
|
6235
6453
|
{
|
|
6236
6454
|
const cur = getCurrentInstance();
|
|
6237
6455
|
const instance = cur && getCurrentScope() === cur.scope ? cur : null;
|
|
6238
|
-
|
|
6456
|
+
const newValue = getter();
|
|
6457
|
+
if (isArray(newValue) && isCompatEnabled$1("WATCH_ARRAY", instance)) options.deep = true;
|
|
6239
6458
|
const baseGetter = getter;
|
|
6240
6459
|
getter = () => {
|
|
6241
6460
|
const val = baseGetter();
|
|
@@ -6248,13 +6467,14 @@ function createWatcher(raw, ctx, publicThis, key) {
|
|
|
6248
6467
|
if (isFunction(handler)) watch(getter, handler, options);
|
|
6249
6468
|
else warn$1(`Invalid watch handler specified by key "${raw}"`, handler);
|
|
6250
6469
|
} else if (isFunction(raw)) watch(getter, raw.bind(publicThis), options);
|
|
6251
|
-
else if (isObject(raw))
|
|
6252
|
-
|
|
6253
|
-
|
|
6254
|
-
|
|
6255
|
-
|
|
6256
|
-
|
|
6257
|
-
|
|
6470
|
+
else if (isObject(raw)) {
|
|
6471
|
+
if (isArray(raw)) raw.forEach((r) => createWatcher(r, ctx, publicThis, key));
|
|
6472
|
+
else {
|
|
6473
|
+
const handler = isFunction(raw.handler) ? raw.handler.bind(publicThis) : ctx[raw.handler];
|
|
6474
|
+
if (isFunction(handler)) watch(getter, handler, extend(raw, options));
|
|
6475
|
+
else warn$1(`Invalid watch handler specified by key "${raw.handler}"`, handler);
|
|
6476
|
+
}
|
|
6477
|
+
} else warn$1(`Invalid watch option: "${key}"`, raw);
|
|
6258
6478
|
}
|
|
6259
6479
|
/**
|
|
6260
6480
|
* Resolve merged options and cache it on the component.
|
|
@@ -6268,12 +6488,13 @@ function resolveMergedOptions(instance) {
|
|
|
6268
6488
|
const cached = cache.get(base);
|
|
6269
6489
|
let resolved;
|
|
6270
6490
|
if (cached) resolved = cached;
|
|
6271
|
-
else if (!globalMixins.length && !mixins && !extendsOptions)
|
|
6272
|
-
|
|
6273
|
-
|
|
6274
|
-
|
|
6275
|
-
|
|
6276
|
-
|
|
6491
|
+
else if (!globalMixins.length && !mixins && !extendsOptions) {
|
|
6492
|
+
if (isCompatEnabled$1("PRIVATE_APIS", instance)) {
|
|
6493
|
+
resolved = extend({}, base);
|
|
6494
|
+
resolved.parent = instance.parent && instance.parent.proxy;
|
|
6495
|
+
resolved.propsData = instance.vnode.props;
|
|
6496
|
+
} else resolved = base;
|
|
6497
|
+
} else {
|
|
6277
6498
|
resolved = {};
|
|
6278
6499
|
if (globalMixins.length) globalMixins.forEach((m) => mergeOptions(resolved, m, optionMergeStrategies, true));
|
|
6279
6500
|
mergeOptions(resolved, base, optionMergeStrategies);
|
|
@@ -6346,7 +6567,7 @@ function mergeObjectOptions(to, from) {
|
|
|
6346
6567
|
}
|
|
6347
6568
|
function mergeEmitsOrPropsOptions(to, from) {
|
|
6348
6569
|
if (to) {
|
|
6349
|
-
if (isArray(to) && isArray(from)) return [
|
|
6570
|
+
if (isArray(to) && isArray(from)) return [.../* @__PURE__ */ new Set([...to, ...from])];
|
|
6350
6571
|
return extend(Object.create(null), normalizePropsOrEmits(to), normalizePropsOrEmits(from !== null && from !== void 0 ? from : {}));
|
|
6351
6572
|
} else return from;
|
|
6352
6573
|
}
|
|
@@ -6407,7 +6628,7 @@ function createCompatVue$1(createApp, createSingletonApp) {
|
|
|
6407
6628
|
if (options.el) return vm.$mount(options.el);
|
|
6408
6629
|
else return vm;
|
|
6409
6630
|
}
|
|
6410
|
-
Vue.version = `2.6.14-compat:3.6.0-rc.
|
|
6631
|
+
Vue.version = `2.6.14-compat:3.6.0-rc.10`;
|
|
6411
6632
|
Vue.config = singletonApp.config;
|
|
6412
6633
|
Vue.use = (plugin, ...options) => {
|
|
6413
6634
|
if (plugin && isFunction(plugin.install)) plugin.install(Vue, ...options);
|
|
@@ -6797,8 +7018,10 @@ function createAppAPI(mount, unmount, getPublicInstance, render) {
|
|
|
6797
7018
|
} else warn$1(`Cannot unmount an app that is not mounted.`);
|
|
6798
7019
|
},
|
|
6799
7020
|
provide(key, value) {
|
|
6800
|
-
if (key in context.provides)
|
|
6801
|
-
|
|
7021
|
+
if (key in context.provides) {
|
|
7022
|
+
if (hasOwn(context.provides, key)) warn$1(`App already provides property with key "${String(key)}". It will be overwritten with the new value.`);
|
|
7023
|
+
else warn$1(`App already provides property with key "${String(key)}" inherited from its parent element. It will be overwritten with the new value.`);
|
|
7024
|
+
}
|
|
6802
7025
|
context.provides[key] = value;
|
|
6803
7026
|
return app;
|
|
6804
7027
|
},
|
|
@@ -6880,13 +7103,17 @@ function useModel(props, name, options = EMPTY_OBJ) {
|
|
|
6880
7103
|
const modifiers = getModelModifiers(props, camelizedName, defaultPropGetter);
|
|
6881
7104
|
const res = customRef((track, trigger) => {
|
|
6882
7105
|
let localValue;
|
|
7106
|
+
let prevPropValue = EMPTY_OBJ;
|
|
6883
7107
|
let prevSetValue = EMPTY_OBJ;
|
|
6884
7108
|
let prevEmittedValue;
|
|
6885
7109
|
watchSyncEffect(() => {
|
|
6886
7110
|
const propValue = props[camelizedName];
|
|
6887
|
-
if (hasChanged(
|
|
6888
|
-
|
|
6889
|
-
|
|
7111
|
+
if (hasChanged(prevPropValue, propValue)) {
|
|
7112
|
+
prevPropValue = propValue;
|
|
7113
|
+
if (hasChanged(localValue, propValue)) {
|
|
7114
|
+
localValue = propValue;
|
|
7115
|
+
trigger();
|
|
7116
|
+
}
|
|
6890
7117
|
}
|
|
6891
7118
|
});
|
|
6892
7119
|
return {
|
|
@@ -6948,12 +7175,14 @@ function baseEmit(instance, props, getter, event, ...rawArgs) {
|
|
|
6948
7175
|
if (instance.isUnmounted) return;
|
|
6949
7176
|
{
|
|
6950
7177
|
const { emitsOptions, propsOptions } = instance;
|
|
6951
|
-
if (emitsOptions)
|
|
6952
|
-
if (!
|
|
6953
|
-
|
|
6954
|
-
|
|
6955
|
-
|
|
6956
|
-
if (
|
|
7178
|
+
if (emitsOptions) {
|
|
7179
|
+
if (!(event in emitsOptions) && !(event.startsWith("hook:") || event.startsWith(compatModelEventPrefix))) {
|
|
7180
|
+
if (!propsOptions || !propsOptions[0] || !(toHandlerKey(camelize(event)) in propsOptions[0])) warn$1(`Component emitted event "${event}" but it is neither declared in the emits option nor as an "${toHandlerKey(camelize(event))}" prop.`);
|
|
7181
|
+
} else {
|
|
7182
|
+
const validator = emitsOptions[event];
|
|
7183
|
+
if (isFunction(validator)) {
|
|
7184
|
+
if (!validator(...rawArgs)) warn$1(`Invalid event arguments: event validation failed for event "${event}".`);
|
|
7185
|
+
}
|
|
6957
7186
|
}
|
|
6958
7187
|
}
|
|
6959
7188
|
}
|
|
@@ -6963,7 +7192,7 @@ function baseEmit(instance, props, getter, event, ...rawArgs) {
|
|
|
6963
7192
|
const modifiers = isCompatModelListener ? props.modelModifiers : isModelListener && getModelModifiers(props, event.slice(7), getter);
|
|
6964
7193
|
if (modifiers) {
|
|
6965
7194
|
if (modifiers.trim) args = rawArgs.map((a) => isString(a) ? a.trim() : a);
|
|
6966
|
-
if (modifiers.number) args =
|
|
7195
|
+
if (modifiers.number) args = args.map(looseToNumber);
|
|
6967
7196
|
}
|
|
6968
7197
|
devtoolsComponentEmit(instance, event, args);
|
|
6969
7198
|
{
|
|
@@ -7105,8 +7334,9 @@ function renderComponentRoot(instance) {
|
|
|
7105
7334
|
root.dirs = root.dirs ? root.dirs.concat(vnode.dirs) : vnode.dirs;
|
|
7106
7335
|
}
|
|
7107
7336
|
if (vnode.transition) {
|
|
7108
|
-
|
|
7109
|
-
|
|
7337
|
+
const child = isTeleport(root.type) ? getInnerChild$1(root) || root : root;
|
|
7338
|
+
if (!isElementRoot(child)) warn$1("Component inside <Transition> renders non-element root node that cannot be animated.");
|
|
7339
|
+
setTransitionHooks(child, vnode.transition);
|
|
7110
7340
|
}
|
|
7111
7341
|
if (setRoot) setRoot(root);
|
|
7112
7342
|
else result = root;
|
|
@@ -7157,18 +7387,21 @@ function filterSingleRoot(children, recurse = true) {
|
|
|
7157
7387
|
for (let i = 0; i < children.length; i++) {
|
|
7158
7388
|
const child = children[i];
|
|
7159
7389
|
if (isVNode(child)) {
|
|
7160
|
-
if (child.type !== Comment || child.children === "v-if")
|
|
7161
|
-
|
|
7162
|
-
|
|
7163
|
-
|
|
7390
|
+
if (child.type !== Comment || child.children === "v-if") {
|
|
7391
|
+
if (singleRoot) return;
|
|
7392
|
+
else {
|
|
7393
|
+
singleRoot = child;
|
|
7394
|
+
if (recurse && singleRoot.patchFlag > 0 && singleRoot.patchFlag & 2048) return filterSingleRoot(singleRoot.children);
|
|
7395
|
+
}
|
|
7164
7396
|
}
|
|
7165
7397
|
} else return;
|
|
7166
7398
|
}
|
|
7167
7399
|
return singleRoot;
|
|
7168
7400
|
}
|
|
7401
|
+
const isFunctionalFallthroughKey = (key) => key === "class" || key === "style" || isOn(key);
|
|
7169
7402
|
const getFunctionalFallthrough = (attrs) => {
|
|
7170
7403
|
let res;
|
|
7171
|
-
for (const key in attrs) if (
|
|
7404
|
+
for (const key in attrs) if (isFunctionalFallthroughKey(key)) (res || (res = {}))[key] = attrs[key];
|
|
7172
7405
|
return res;
|
|
7173
7406
|
};
|
|
7174
7407
|
const filterModelListeners = (attrs, props) => {
|
|
@@ -7304,16 +7537,17 @@ function updateProps(instance, rawProps, rawPrevProps, optimized) {
|
|
|
7304
7537
|
let key = propsToUpdate[i];
|
|
7305
7538
|
if (isEmitListener(instance.emitsOptions, key)) continue;
|
|
7306
7539
|
const value = rawProps[key];
|
|
7307
|
-
if (options)
|
|
7308
|
-
if (
|
|
7309
|
-
attrs[key]
|
|
7310
|
-
|
|
7540
|
+
if (options) {
|
|
7541
|
+
if (hasOwn(attrs, key)) {
|
|
7542
|
+
if (value !== attrs[key]) {
|
|
7543
|
+
attrs[key] = value;
|
|
7544
|
+
hasAttrsChanged = true;
|
|
7545
|
+
}
|
|
7546
|
+
} else {
|
|
7547
|
+
const camelizedKey = camelize(key);
|
|
7548
|
+
props[camelizedKey] = resolvePropValue(options, camelizedKey, value, instance, baseResolveDefault);
|
|
7311
7549
|
}
|
|
7312
7550
|
} else {
|
|
7313
|
-
const camelizedKey = camelize(key);
|
|
7314
|
-
props[camelizedKey] = resolvePropValue(options, camelizedKey, value, instance, baseResolveDefault);
|
|
7315
|
-
}
|
|
7316
|
-
else {
|
|
7317
7551
|
if (isOn(key) && key.endsWith("Native")) key = key.slice(0, -6);
|
|
7318
7552
|
else if (shouldSkipAttr(key, instance)) continue;
|
|
7319
7553
|
if (value !== attrs[key]) {
|
|
@@ -7326,9 +7560,11 @@ function updateProps(instance, rawProps, rawPrevProps, optimized) {
|
|
|
7326
7560
|
} else {
|
|
7327
7561
|
if (setFullProps(instance, rawProps, props, attrs)) hasAttrsChanged = true;
|
|
7328
7562
|
let kebabKey;
|
|
7329
|
-
for (const key in rawCurrentProps) if (!rawProps || !hasOwn(rawProps, key) && ((kebabKey = hyphenate(key)) === key || !hasOwn(rawProps, kebabKey)))
|
|
7330
|
-
if (
|
|
7331
|
-
|
|
7563
|
+
for (const key in rawCurrentProps) if (!rawProps || !hasOwn(rawProps, key) && ((kebabKey = hyphenate(key)) === key || !hasOwn(rawProps, kebabKey))) {
|
|
7564
|
+
if (options) {
|
|
7565
|
+
if (rawPrevProps && (rawPrevProps[key] !== void 0 || rawPrevProps[kebabKey] !== void 0)) props[key] = resolvePropValue(options, key, void 0, instance, baseResolveDefault, true);
|
|
7566
|
+
} else delete props[key];
|
|
7567
|
+
}
|
|
7332
7568
|
if (attrs !== rawCurrentProps) {
|
|
7333
7569
|
for (const key in attrs) if (!rawProps || !hasOwn(rawProps, key) && !hasOwn(rawProps, key + "Native")) {
|
|
7334
7570
|
delete attrs[key];
|
|
@@ -7349,9 +7585,10 @@ function setFullProps(instance, rawProps, props, attrs) {
|
|
|
7349
7585
|
if (key === "inline-template") continue;
|
|
7350
7586
|
const value = rawProps[key];
|
|
7351
7587
|
let camelKey;
|
|
7352
|
-
if (options && hasOwn(options, camelKey = camelize(key)))
|
|
7353
|
-
|
|
7354
|
-
|
|
7588
|
+
if (options && hasOwn(options, camelKey = camelize(key))) {
|
|
7589
|
+
if (!needCastKeys || !needCastKeys.includes(camelKey)) props[camelKey] = value;
|
|
7590
|
+
else (rawCastValues || (rawCastValues = {}))[camelKey] = value;
|
|
7591
|
+
} else if (!isEmitListener(instance.emitsOptions, key)) {
|
|
7355
7592
|
if (isOn(key) && key.endsWith("Native")) key = key.slice(0, -6);
|
|
7356
7593
|
else if (shouldSkipAttr(key, instance)) continue;
|
|
7357
7594
|
if (!(key in attrs) || value !== attrs[key]) {
|
|
@@ -7400,7 +7637,7 @@ function baseResolveDefault(factory, instance, key) {
|
|
|
7400
7637
|
const prev = setCurrentInstance(instance);
|
|
7401
7638
|
const props = /* @__PURE__ */ toRaw(instance.props);
|
|
7402
7639
|
value = factory.call(isCompatEnabled$1("PROPS_DEFAULT_THIS", instance) ? createPropsDefaultThis(instance, props, key) : null, props);
|
|
7403
|
-
|
|
7640
|
+
restoreCurrentInstance(prev);
|
|
7404
7641
|
return value;
|
|
7405
7642
|
}
|
|
7406
7643
|
const mixinPropsCache = /* @__PURE__ */ new WeakMap();
|
|
@@ -7517,7 +7754,7 @@ function validateProp(key, value, propOptions, resolvedProps, isAbsent) {
|
|
|
7517
7754
|
}
|
|
7518
7755
|
if (validator && !validator(value, /* @__PURE__ */ shallowReadonly(resolvedProps))) warn$1("Invalid prop: custom validator check failed for prop \"" + key + "\".");
|
|
7519
7756
|
}
|
|
7520
|
-
const isSimpleType =
|
|
7757
|
+
const isSimpleType = /*@__PURE__*/ makeMap("String,Number,Boolean,Function,Symbol,BigInt");
|
|
7521
7758
|
/**
|
|
7522
7759
|
* dev only
|
|
7523
7760
|
*/
|
|
@@ -7630,12 +7867,13 @@ const updateSlots = (instance, children, optimized) => {
|
|
|
7630
7867
|
let deletionComparisonTarget = EMPTY_OBJ;
|
|
7631
7868
|
if (vnode.shapeFlag & 32) {
|
|
7632
7869
|
const type = children._;
|
|
7633
|
-
if (type)
|
|
7634
|
-
|
|
7635
|
-
|
|
7636
|
-
|
|
7637
|
-
|
|
7638
|
-
|
|
7870
|
+
if (type) {
|
|
7871
|
+
if (isHmrUpdating) {
|
|
7872
|
+
assignSlots(slots, children, optimized);
|
|
7873
|
+
trigger(instance, "set", "$slots");
|
|
7874
|
+
} else if (optimized && type === 1) needDeletionCheck = false;
|
|
7875
|
+
else assignSlots(slots, children, optimized);
|
|
7876
|
+
} else {
|
|
7639
7877
|
needDeletionCheck = !children.$stable;
|
|
7640
7878
|
normalizeObjectSlots(children, slots, instance);
|
|
7641
7879
|
}
|
|
@@ -7653,7 +7891,7 @@ const updateSlots = (instance, children, optimized) => {
|
|
|
7653
7891
|
let supported;
|
|
7654
7892
|
let perf;
|
|
7655
7893
|
let cachedNow$1 = 0;
|
|
7656
|
-
const p$1 =
|
|
7894
|
+
const p$1 = /*@__PURE__*/ Promise.resolve();
|
|
7657
7895
|
const getNow$1 = () => cachedNow$1 || (p$1.then(() => cachedNow$1 = 0), cachedNow$1 = isSupported() ? perf.now() : Date.now());
|
|
7658
7896
|
/**
|
|
7659
7897
|
* @internal
|
|
@@ -7734,6 +7972,10 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
7734
7972
|
optimized = false;
|
|
7735
7973
|
n2.dynamicChildren = null;
|
|
7736
7974
|
}
|
|
7975
|
+
if (n2.dynamicChildren && n1 && n1.dynamicChildren && n1.dynamicChildren.hasOnce) {
|
|
7976
|
+
if (n2.dynamicChildren === EMPTY_ARR) n2.dynamicChildren = [];
|
|
7977
|
+
n2.dynamicChildren.hasOnce = true;
|
|
7978
|
+
}
|
|
7737
7979
|
const { type, ref, shapeFlag } = n2;
|
|
7738
7980
|
switch (type) {
|
|
7739
7981
|
case Text:
|
|
@@ -7750,7 +7992,7 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
7750
7992
|
processFragment(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
|
|
7751
7993
|
break;
|
|
7752
7994
|
case VaporSlot:
|
|
7753
|
-
getVaporInterface(parentComponent, n2).slot(n1, n2, container, anchor, parentComponent, parentSuspense);
|
|
7995
|
+
getVaporInterface(parentComponent, n2).slot(n1, n2, container, anchor, parentComponent, parentSuspense, slotScopeIds);
|
|
7754
7996
|
break;
|
|
7755
7997
|
default: if (shapeFlag & 1) processElement(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
|
|
7756
7998
|
else if (shapeFlag & 6) processComponent(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
|
|
@@ -7869,7 +8111,10 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
7869
8111
|
for (let i = 0; i < inheritedScopeIds.length; i++) hostSetScopeId(el, inheritedScopeIds[i]);
|
|
7870
8112
|
};
|
|
7871
8113
|
const mountChildren = (children, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, start = 0) => {
|
|
7872
|
-
for (let i = start; i < children.length; i++)
|
|
8114
|
+
for (let i = start; i < children.length; i++) {
|
|
8115
|
+
const child = children[i] = optimized ? cloneIfMounted(children[i]) : normalizeVNode(children[i]);
|
|
8116
|
+
patch(null, child, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
|
|
8117
|
+
}
|
|
7873
8118
|
};
|
|
7874
8119
|
const patchElement = (n1, n2, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {
|
|
7875
8120
|
const el = n2.el = n1.el;
|
|
@@ -7881,6 +8126,7 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
7881
8126
|
let vnodeHook;
|
|
7882
8127
|
parentComponent && toggleRecurse(parentComponent, false);
|
|
7883
8128
|
if (vnodeHook = newProps.onVnodeBeforeUpdate) invokeVNodeHook(vnodeHook, parentComponent, n2, n1);
|
|
8129
|
+
if (n2.ibu) n2.ibu();
|
|
7884
8130
|
if (dirs) invokeDirectiveHook(n2, n1, parentComponent, "beforeUpdate");
|
|
7885
8131
|
parentComponent && toggleRecurse(parentComponent, true);
|
|
7886
8132
|
if (isHmrUpdating || dynamicChildren && (!n1.dynamicChildren || n1.dynamicChildren.length !== dynamicChildren.length)) {
|
|
@@ -7914,8 +8160,9 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
7914
8160
|
if (n1.children !== n2.children) hostSetElementText(el, n2.children);
|
|
7915
8161
|
}
|
|
7916
8162
|
} else if (!optimized && dynamicChildren == null) patchProps(el, oldProps, newProps, parentComponent, namespace);
|
|
7917
|
-
if ((vnodeHook = newProps.onVnodeUpdated) || dirs) queuePostRenderEffect(() => {
|
|
8163
|
+
if ((vnodeHook = newProps.onVnodeUpdated) || dirs || n2.iu) queuePostRenderEffect(() => {
|
|
7918
8164
|
vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, n2, n1);
|
|
8165
|
+
n2.iu && n2.iu();
|
|
7919
8166
|
dirs && invokeDirectiveHook(n2, n1, parentComponent, "updated");
|
|
7920
8167
|
}, void 0, parentSuspense);
|
|
7921
8168
|
};
|
|
@@ -7923,7 +8170,8 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
7923
8170
|
for (let i = 0; i < newChildren.length; i++) {
|
|
7924
8171
|
const oldVNode = oldChildren[i];
|
|
7925
8172
|
const newVNode = newChildren[i];
|
|
7926
|
-
|
|
8173
|
+
const container = oldVNode.el && (oldVNode.type === Fragment || !isSameVNodeType(oldVNode, newVNode) || oldVNode.shapeFlag & 198) ? hostParentNode(oldVNode.el) : fallbackContainer;
|
|
8174
|
+
patch(oldVNode, newVNode, container, null, parentComponent, parentSuspense, namespace, slotScopeIds, true);
|
|
7927
8175
|
}
|
|
7928
8176
|
};
|
|
7929
8177
|
const patchProps = (el, oldProps, newProps, parentComponent, namespace) => {
|
|
@@ -7961,41 +8209,15 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
7961
8209
|
};
|
|
7962
8210
|
const processComponent = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {
|
|
7963
8211
|
n2.slotScopeIds = slotScopeIds;
|
|
7964
|
-
if (n2.type.__vapor)
|
|
7965
|
-
|
|
7966
|
-
|
|
7967
|
-
|
|
7968
|
-
|
|
7969
|
-
|
|
7970
|
-
|
|
7971
|
-
|
|
7972
|
-
|
|
7973
|
-
if (vnodeBeforeMountHook) invokeVNodeHook(vnodeBeforeMountHook, parentComponent, n2);
|
|
7974
|
-
});
|
|
7975
|
-
if (n2.dirs) queuePostRenderEffect(() => invokeDirectiveHook(n2, null, parentComponent, "mounted"), void 0, parentSuspense);
|
|
7976
|
-
const vnodeMountedHook = !isAsyncWrapper(n2) && n2.props && n2.props.onVnodeMounted;
|
|
7977
|
-
if (vnodeMountedHook) {
|
|
7978
|
-
const scopedVNode = n2;
|
|
7979
|
-
queuePostRenderEffect(() => invokeVNodeHook(vnodeMountedHook, parentComponent, scopedVNode), void 0, parentSuspense);
|
|
7980
|
-
}
|
|
7981
|
-
}
|
|
7982
|
-
else {
|
|
7983
|
-
const shouldUpdate = shouldUpdateComponent(n1, n2, optimized);
|
|
7984
|
-
getVaporInterface(parentComponent, n2).update(n1, n2, shouldUpdate, () => {
|
|
7985
|
-
if (n2.dirs) invokeDirectiveHook(n2, n1, parentComponent, "beforeUpdate");
|
|
7986
|
-
}, () => {
|
|
7987
|
-
const vnodeBeforeUpdateHook = n2.props && n2.props.onVnodeBeforeUpdate;
|
|
7988
|
-
if (vnodeBeforeUpdateHook) invokeVNodeHook(vnodeBeforeUpdateHook, parentComponent, n2, n1);
|
|
7989
|
-
});
|
|
7990
|
-
const vnodeUpdatedHook = n2.props && n2.props.onVnodeUpdated;
|
|
7991
|
-
if (shouldUpdate && (vnodeUpdatedHook || n2.dirs)) queuePostRenderEffect(() => {
|
|
7992
|
-
n2.dirs && invokeDirectiveHook(n2, n1, parentComponent, "updated");
|
|
7993
|
-
vnodeUpdatedHook && invokeVNodeHook(vnodeUpdatedHook, parentComponent, n2, n1);
|
|
7994
|
-
}, void 0, parentSuspense);
|
|
7995
|
-
}
|
|
7996
|
-
else if (n1 == null) if (n2.shapeFlag & 512) parentComponent.ctx.activate(n2, container, anchor, namespace, optimized);
|
|
7997
|
-
else mountComponent(n2, container, anchor, parentComponent, parentSuspense, namespace, optimized);
|
|
7998
|
-
else updateComponent(n1, n2, optimized);
|
|
8212
|
+
if (n2.type.__vapor) {
|
|
8213
|
+
if (n1 == null) {
|
|
8214
|
+
if (n2.shapeFlag & 512) getVaporInterface(parentComponent, n2).activate(n2, container, anchor, parentComponent, parentSuspense);
|
|
8215
|
+
else getVaporInterface(parentComponent, n2).mount(n2, container, anchor, parentComponent, parentSuspense);
|
|
8216
|
+
} else getVaporInterface(parentComponent, n2).update(n1, n2, shouldUpdateComponent(n1, n2, optimized));
|
|
8217
|
+
} else if (n1 == null) {
|
|
8218
|
+
if (n2.shapeFlag & 512) parentComponent.ctx.activate(n2, container, anchor, namespace, optimized);
|
|
8219
|
+
else mountComponent(n2, container, anchor, parentComponent, parentSuspense, namespace, optimized);
|
|
8220
|
+
} else updateComponent(n1, n2, optimized);
|
|
7999
8221
|
};
|
|
8000
8222
|
const mountComponent = (initialVNode, container, anchor, parentComponent, parentSuspense, namespace, optimized) => {
|
|
8001
8223
|
const compatMountInstance = initialVNode.isCompatRoot && initialVNode.component;
|
|
@@ -8039,16 +8261,18 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
8039
8261
|
};
|
|
8040
8262
|
const updateComponent = (n1, n2, optimized) => {
|
|
8041
8263
|
const instance = n2.component = n1.component;
|
|
8042
|
-
if (shouldUpdateComponent(n1, n2, optimized))
|
|
8043
|
-
|
|
8044
|
-
|
|
8045
|
-
|
|
8046
|
-
|
|
8264
|
+
if (shouldUpdateComponent(n1, n2, optimized)) {
|
|
8265
|
+
if (instance.asyncDep && !instance.asyncResolved) {
|
|
8266
|
+
pushWarningContext(n2);
|
|
8267
|
+
n2.el = n1.el;
|
|
8268
|
+
updateComponentPreRender(instance, n2, optimized);
|
|
8269
|
+
popWarningContext();
|
|
8270
|
+
return;
|
|
8271
|
+
} else {
|
|
8272
|
+
instance.next = n2;
|
|
8273
|
+
instance.effect.run();
|
|
8274
|
+
}
|
|
8047
8275
|
} else {
|
|
8048
|
-
instance.next = n2;
|
|
8049
|
-
instance.effect.run();
|
|
8050
|
-
}
|
|
8051
|
-
else {
|
|
8052
8276
|
n2.el = n1.el;
|
|
8053
8277
|
instance.vnode = n2;
|
|
8054
8278
|
}
|
|
@@ -8151,6 +8375,7 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
8151
8375
|
} else next = vnode;
|
|
8152
8376
|
if (bu) invokeArrayFns(bu);
|
|
8153
8377
|
if (vnodeHook = next.props && next.props.onVnodeBeforeUpdate) invokeVNodeHook(vnodeHook, parent, next, vnode);
|
|
8378
|
+
if (next.ibu) next.ibu();
|
|
8154
8379
|
if (isCompatEnabled$1("INSTANCE_EVENT_HOOKS", instance)) instance.emit("hook:beforeUpdate");
|
|
8155
8380
|
toggleRecurse(instance, true);
|
|
8156
8381
|
startMeasure(instance, `render`);
|
|
@@ -8164,7 +8389,10 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
8164
8389
|
next.el = nextTree.el;
|
|
8165
8390
|
if (originNext === null) updateHOCHostEl(instance, nextTree.el);
|
|
8166
8391
|
if (u) queuePostRenderEffect(u, void 0, parentSuspense);
|
|
8167
|
-
if (vnodeHook = next.props && next.props.onVnodeUpdated) queuePostRenderEffect(() =>
|
|
8392
|
+
if ((vnodeHook = next.props && next.props.onVnodeUpdated) || next.iu) queuePostRenderEffect(() => {
|
|
8393
|
+
vnodeHook && invokeVNodeHook(vnodeHook, parent, next, vnode);
|
|
8394
|
+
next.iu && next.iu();
|
|
8395
|
+
}, void 0, parentSuspense);
|
|
8168
8396
|
if (isCompatEnabled$1("INSTANCE_EVENT_HOOKS", instance)) queuePostRenderEffect(() => instance.emit("hook:updated"), void 0, parentSuspense);
|
|
8169
8397
|
devtoolsComponentUpdated(instance);
|
|
8170
8398
|
popWarningContext();
|
|
@@ -8205,9 +8433,10 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
8205
8433
|
if (shapeFlag & 8) {
|
|
8206
8434
|
if (prevShapeFlag & 16) unmountChildren(c1, parentComponent, parentSuspense);
|
|
8207
8435
|
if (c2 !== c1) hostSetElementText(container, c2);
|
|
8208
|
-
} else if (prevShapeFlag & 16)
|
|
8209
|
-
|
|
8210
|
-
|
|
8436
|
+
} else if (prevShapeFlag & 16) {
|
|
8437
|
+
if (shapeFlag & 16) patchKeyedChildren(c1, c2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
|
|
8438
|
+
else unmountChildren(c1, parentComponent, parentSuspense, true);
|
|
8439
|
+
} else {
|
|
8211
8440
|
if (prevShapeFlag & 8) hostSetElementText(container, "");
|
|
8212
8441
|
if (shapeFlag & 16) mountChildren(c2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
|
|
8213
8442
|
}
|
|
@@ -8306,15 +8535,17 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
8306
8535
|
const anchorVNode = c2[nextIndex + 1];
|
|
8307
8536
|
const anchor = nextIndex + 1 < l2 ? anchorVNode.el || resolveAsyncComponentPlaceholder(anchorVNode) : parentAnchor;
|
|
8308
8537
|
if (newIndexToOldIndexMap[i] === 0) patch(null, nextChild, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
|
|
8309
|
-
else if (moved)
|
|
8310
|
-
|
|
8538
|
+
else if (moved) {
|
|
8539
|
+
if (j < 0 || i !== increasingNewIndexSequence[j]) move(nextChild, container, anchor, 2, parentComponent);
|
|
8540
|
+
else j--;
|
|
8541
|
+
}
|
|
8311
8542
|
}
|
|
8312
8543
|
}
|
|
8313
8544
|
};
|
|
8314
8545
|
const move = (vnode, container, anchor, moveType, parentComponent, parentSuspense = null) => {
|
|
8315
8546
|
const { el, type, transition, children, shapeFlag } = vnode;
|
|
8316
8547
|
if (isVaporComponent(type) || type === VaporSlot) {
|
|
8317
|
-
getVaporInterface(parentComponent, vnode).move(vnode, container, anchor, moveType);
|
|
8548
|
+
getVaporInterface(parentComponent, vnode).move(vnode, container, anchor, moveType, parentSuspense);
|
|
8318
8549
|
return;
|
|
8319
8550
|
}
|
|
8320
8551
|
if (shapeFlag & 6) {
|
|
@@ -8339,54 +8570,37 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
8339
8570
|
moveStaticNode(vnode, container, anchor);
|
|
8340
8571
|
return;
|
|
8341
8572
|
}
|
|
8342
|
-
if (moveType !== 2 && shapeFlag & 1 && transition)
|
|
8343
|
-
|
|
8344
|
-
|
|
8345
|
-
const remove = () => {
|
|
8573
|
+
if (moveType !== 2 && shapeFlag & 1 && transition) {
|
|
8574
|
+
if (moveType === 0) performTransitionEnter(el, transition, () => hostInsert(el, container, anchor), parentSuspense, true);
|
|
8575
|
+
else performTransitionLeave(el, transition, () => {
|
|
8346
8576
|
if (vnode.ctx.isUnmounted) hostRemove(el);
|
|
8347
8577
|
else hostInsert(el, container, anchor);
|
|
8348
|
-
};
|
|
8349
|
-
|
|
8350
|
-
const wasLeaving = el._isLeaving || !!el[leaveCbKey];
|
|
8351
|
-
if (el._isLeaving) el[leaveCbKey](true);
|
|
8352
|
-
if (transition.persisted && !wasLeaving) remove();
|
|
8353
|
-
else leave(el, () => {
|
|
8354
|
-
remove();
|
|
8355
|
-
afterLeave && afterLeave();
|
|
8356
|
-
});
|
|
8357
|
-
};
|
|
8358
|
-
if (delayLeave) delayLeave(el, remove, performLeave);
|
|
8359
|
-
else performLeave();
|
|
8360
|
-
}
|
|
8361
|
-
else hostInsert(el, container, anchor);
|
|
8578
|
+
}, true, true);
|
|
8579
|
+
} else hostInsert(el, container, anchor);
|
|
8362
8580
|
};
|
|
8363
8581
|
const unmount = (vnode, parentComponent, parentSuspense, doRemove = false, optimized = false) => {
|
|
8364
8582
|
const { type, props, ref, children, dynamicChildren, shapeFlag, patchFlag, dirs, cacheIndex, memo } = vnode;
|
|
8365
|
-
if (patchFlag === -2) optimized = false;
|
|
8583
|
+
if (patchFlag === -2 || dynamicChildren && dynamicChildren.hasOnce) optimized = false;
|
|
8366
8584
|
if (ref != null) {
|
|
8367
8585
|
const prevSub = setActiveSub();
|
|
8368
8586
|
setRef(ref, null, parentSuspense, vnode, true);
|
|
8369
8587
|
setActiveSub(prevSub);
|
|
8370
8588
|
}
|
|
8371
|
-
if (cacheIndex != null) parentComponent.renderCache[cacheIndex] = void 0;
|
|
8589
|
+
if (cacheIndex != null && (!vnode.ctx || vnode.ctx === parentComponent)) parentComponent.renderCache[cacheIndex] = void 0;
|
|
8372
8590
|
if (shapeFlag & 256) {
|
|
8373
|
-
if (isVaporComponent(vnode.type)) getVaporInterface(parentComponent, vnode).deactivate(vnode, parentComponent.ctx.getStorageContainer());
|
|
8591
|
+
if (isVaporComponent(vnode.type)) getVaporInterface(parentComponent, vnode).deactivate(vnode, parentComponent.ctx.getStorageContainer(), parentSuspense);
|
|
8374
8592
|
else parentComponent.ctx.deactivate(vnode);
|
|
8375
8593
|
return;
|
|
8376
8594
|
}
|
|
8595
|
+
if (shapeFlag & 6 && isVaporComponent(type)) {
|
|
8596
|
+
getVaporInterface(parentComponent, vnode).unmount(vnode, doRemove, parentSuspense);
|
|
8597
|
+
return;
|
|
8598
|
+
}
|
|
8377
8599
|
const shouldInvokeDirs = shapeFlag & 1 && dirs;
|
|
8378
8600
|
const shouldInvokeVnodeHook = !isAsyncWrapper(vnode);
|
|
8379
8601
|
let vnodeHook;
|
|
8380
8602
|
if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeBeforeUnmount)) invokeVNodeHook(vnodeHook, parentComponent, vnode);
|
|
8381
|
-
if (shapeFlag & 6)
|
|
8382
|
-
if (dirs) invokeDirectiveHook(vnode, null, parentComponent, "beforeUnmount");
|
|
8383
|
-
getVaporInterface(parentComponent, vnode).unmount(vnode, doRemove);
|
|
8384
|
-
if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeUnmounted) || dirs) queuePostRenderEffect(() => {
|
|
8385
|
-
dirs && invokeDirectiveHook(vnode, null, parentComponent, "unmounted");
|
|
8386
|
-
vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode);
|
|
8387
|
-
}, void 0, parentSuspense);
|
|
8388
|
-
return;
|
|
8389
|
-
} else unmountComponent(vnode.component, parentSuspense, doRemove);
|
|
8603
|
+
if (shapeFlag & 6) unmountComponent(vnode.component, parentSuspense, doRemove);
|
|
8390
8604
|
else {
|
|
8391
8605
|
if (shapeFlag & 128) {
|
|
8392
8606
|
vnode.suspense.unmount(parentSuspense, doRemove);
|
|
@@ -8397,7 +8611,7 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
8397
8611
|
else if (dynamicChildren && !dynamicChildren.hasOnce && (type !== Fragment || patchFlag > 0 && patchFlag & 64)) unmountChildren(dynamicChildren, parentComponent, parentSuspense, false, true);
|
|
8398
8612
|
else if (type === Fragment && patchFlag & 384 || !optimized && shapeFlag & 16) unmountChildren(children, parentComponent, parentSuspense);
|
|
8399
8613
|
if (type === VaporSlot) {
|
|
8400
|
-
getVaporInterface(parentComponent, vnode).unmount(vnode, doRemove);
|
|
8614
|
+
getVaporInterface(parentComponent, vnode).unmount(vnode, doRemove, parentSuspense);
|
|
8401
8615
|
return;
|
|
8402
8616
|
}
|
|
8403
8617
|
if (doRemove) remove(vnode);
|
|
@@ -8421,6 +8635,7 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
8421
8635
|
}
|
|
8422
8636
|
if (type === Static) {
|
|
8423
8637
|
removeStaticNode(vnode);
|
|
8638
|
+
if (transition && !transition.persisted && transition.afterLeave) transition.afterLeave();
|
|
8424
8639
|
return;
|
|
8425
8640
|
}
|
|
8426
8641
|
if (transition) performTransitionLeave(el, transition, () => hostRemove(el), !!(vnode.shapeFlag & 1));
|
|
@@ -8446,7 +8661,10 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
8446
8661
|
if (effect) {
|
|
8447
8662
|
effect.stop();
|
|
8448
8663
|
unmount(subTree, instance, parentSuspense, doRemove);
|
|
8449
|
-
} else if (
|
|
8664
|
+
} else if (instance.vnode.el && subTree) {
|
|
8665
|
+
subTree.transition = instance.vnode.transition;
|
|
8666
|
+
unmount(subTree, instance, parentSuspense, doRemove);
|
|
8667
|
+
}
|
|
8450
8668
|
if (um) queuePostRenderEffect(um, void 0, parentSuspense);
|
|
8451
8669
|
if (isCompatEnabled$1("INSTANCE_EVENT_HOOKS", instance)) queuePostRenderEffect(() => instance.emit("hook:destroyed"), void 0, parentSuspense);
|
|
8452
8670
|
queuePostRenderEffect(() => instance.isUnmounted = true, void 0, parentSuspense);
|
|
@@ -8521,12 +8739,14 @@ function resolveChildrenNamespace({ type, props }, currentNamespace) {
|
|
|
8521
8739
|
return currentNamespace === "svg" && type === "foreignObject" || currentNamespace === "mathml" && type === "annotation-xml" && props && props.encoding && props.encoding.includes("html") ? void 0 : currentNamespace;
|
|
8522
8740
|
}
|
|
8523
8741
|
function toggleRecurse({ effect, job, vapor }, allowed) {
|
|
8524
|
-
if (!vapor)
|
|
8525
|
-
|
|
8526
|
-
|
|
8527
|
-
|
|
8528
|
-
|
|
8529
|
-
|
|
8742
|
+
if (!vapor) {
|
|
8743
|
+
if (allowed) {
|
|
8744
|
+
effect.flags |= 128;
|
|
8745
|
+
job.flags |= 2;
|
|
8746
|
+
} else {
|
|
8747
|
+
effect.flags &= -129;
|
|
8748
|
+
job.flags &= -3;
|
|
8749
|
+
}
|
|
8530
8750
|
}
|
|
8531
8751
|
}
|
|
8532
8752
|
function needTransition(parentSuspense, transition) {
|
|
@@ -8566,8 +8786,10 @@ function traverseStaticChildren(n1, n2, shallow = false) {
|
|
|
8566
8786
|
}
|
|
8567
8787
|
function locateNonHydratedAsyncRoot(instance) {
|
|
8568
8788
|
const subComponent = instance.subTree && instance.subTree.component;
|
|
8569
|
-
if (subComponent)
|
|
8570
|
-
|
|
8789
|
+
if (subComponent) {
|
|
8790
|
+
if (subComponent.asyncDep && !subComponent.asyncResolved) return subComponent;
|
|
8791
|
+
else return locateNonHydratedAsyncRoot(subComponent);
|
|
8792
|
+
}
|
|
8571
8793
|
}
|
|
8572
8794
|
function invalidateMount(hooks) {
|
|
8573
8795
|
if (hooks) for (let i = 0; i < hooks.length; i++) hooks[i].flags |= 4;
|
|
@@ -8586,13 +8808,15 @@ function performTransitionEnter(el, transition, insert, parentSuspense, force =
|
|
|
8586
8808
|
function performTransitionLeave(el, transition, remove, isElement = true, force = false) {
|
|
8587
8809
|
const performRemove = () => {
|
|
8588
8810
|
remove();
|
|
8589
|
-
if (transition && !transition.persisted && transition.afterLeave) transition.afterLeave();
|
|
8811
|
+
if (transition && (force || !transition.persisted) && transition.afterLeave) transition.afterLeave();
|
|
8590
8812
|
};
|
|
8591
8813
|
if (force || isElement && transition && !transition.persisted) {
|
|
8592
8814
|
const { leave, delayLeave } = transition;
|
|
8593
8815
|
const performLeave = () => {
|
|
8816
|
+
const wasLeaving = el._isLeaving || !!el[leaveCbKey];
|
|
8594
8817
|
if (el._isLeaving && force) el[leaveCbKey](true);
|
|
8595
|
-
|
|
8818
|
+
if (force && transition.persisted && !wasLeaving) remove();
|
|
8819
|
+
else leave(el, performRemove);
|
|
8596
8820
|
};
|
|
8597
8821
|
if (delayLeave) delayLeave(el, performRemove, performLeave);
|
|
8598
8822
|
else performLeave();
|
|
@@ -8611,7 +8835,7 @@ function isVaporComponent(type) {
|
|
|
8611
8835
|
/**
|
|
8612
8836
|
* shared between vdom and vapor
|
|
8613
8837
|
*/
|
|
8614
|
-
function getInheritedScopeIds(vnode, parentComponent) {
|
|
8838
|
+
function getInheritedScopeIds(vnode, parentComponent, includeVaporRootIds = true) {
|
|
8615
8839
|
const inheritedScopeIds = [];
|
|
8616
8840
|
let currentParent = parentComponent;
|
|
8617
8841
|
let currentVNode = vnode;
|
|
@@ -8627,6 +8851,8 @@ function getInheritedScopeIds(vnode, parentComponent) {
|
|
|
8627
8851
|
currentParent = currentParent.parent;
|
|
8628
8852
|
} else break;
|
|
8629
8853
|
}
|
|
8854
|
+
const vaporScopeIds = includeVaporRootIds && currentVNode.vaporScopeIds;
|
|
8855
|
+
if (vaporScopeIds) inheritedScopeIds.push(...vaporScopeIds);
|
|
8630
8856
|
return inheritedScopeIds;
|
|
8631
8857
|
}
|
|
8632
8858
|
function resolveAsyncComponentPlaceholder(anchorVnode) {
|
|
@@ -8645,7 +8871,7 @@ const Suspense = {
|
|
|
8645
8871
|
process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals) {
|
|
8646
8872
|
if (n1 == null) mountSuspense(n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals);
|
|
8647
8873
|
else {
|
|
8648
|
-
if (parentSuspense && parentSuspense.deps > 0 && !n1.suspense.isInFallback) {
|
|
8874
|
+
if (parentSuspense && parentSuspense.deps > 0 && !n1.suspense.isInFallback && !parentSuspense.isHydrating) {
|
|
8649
8875
|
n2.suspense = n1.suspense;
|
|
8650
8876
|
n2.suspense.vnode = n2;
|
|
8651
8877
|
n2.el = n1.el;
|
|
@@ -8683,10 +8909,12 @@ function patchSuspense(n1, n2, container, anchor, parentComponent, namespace, sl
|
|
|
8683
8909
|
if (pendingBranch) {
|
|
8684
8910
|
suspense.pendingBranch = newBranch;
|
|
8685
8911
|
if (isSameVNodeType(pendingBranch, newBranch)) {
|
|
8686
|
-
|
|
8912
|
+
suspense.deps++;
|
|
8913
|
+
patch(pendingBranch, newBranch, isHydrating ? container : suspense.hiddenContainer, null, parentComponent, suspense, namespace, slotScopeIds, optimized);
|
|
8914
|
+
suspense.deps--;
|
|
8687
8915
|
if (suspense.deps <= 0) suspense.resolve();
|
|
8688
8916
|
else if (isInFallback) {
|
|
8689
|
-
if (!isHydrating) {
|
|
8917
|
+
if (!isHydrating && !suspense.isFallbackMountPending) {
|
|
8690
8918
|
patch(activeBranch, newFallback, container, anchor, parentComponent, null, namespace, slotScopeIds, optimized);
|
|
8691
8919
|
setActiveBranch(suspense, newFallback);
|
|
8692
8920
|
}
|
|
@@ -8698,12 +8926,16 @@ function patchSuspense(n1, n2, container, anchor, parentComponent, namespace, sl
|
|
|
8698
8926
|
suspense.activeBranch = pendingBranch;
|
|
8699
8927
|
} else unmount(pendingBranch, parentComponent, suspense);
|
|
8700
8928
|
suspense.deps = 0;
|
|
8929
|
+
for (let i = 0; i < suspense.effects.length; i++) {
|
|
8930
|
+
const effect = suspense.effects[i];
|
|
8931
|
+
if (effect.flags & 8) queuePostFlushCb(effect);
|
|
8932
|
+
}
|
|
8701
8933
|
suspense.effects.length = 0;
|
|
8702
8934
|
suspense.hiddenContainer = createElement("div");
|
|
8703
8935
|
if (isInFallback) {
|
|
8704
8936
|
patch(null, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, namespace, slotScopeIds, optimized);
|
|
8705
8937
|
if (suspense.deps <= 0) suspense.resolve();
|
|
8706
|
-
else {
|
|
8938
|
+
else if (!suspense.isFallbackMountPending) {
|
|
8707
8939
|
patch(activeBranch, newFallback, container, anchor, parentComponent, null, namespace, slotScopeIds, optimized);
|
|
8708
8940
|
setActiveBranch(suspense, newFallback);
|
|
8709
8941
|
}
|
|
@@ -8805,7 +9037,7 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
|
|
|
8805
9037
|
let hasUnresolvedAncestor = false;
|
|
8806
9038
|
while (parent) {
|
|
8807
9039
|
if (parent.pendingBranch) {
|
|
8808
|
-
parent.effects.push(
|
|
9040
|
+
for (let i = 0; i < effects.length; i++) parent.effects.push(effects[i]);
|
|
8809
9041
|
hasUnresolvedAncestor = true;
|
|
8810
9042
|
break;
|
|
8811
9043
|
}
|
|
@@ -8815,6 +9047,7 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
|
|
|
8815
9047
|
suspense.effects = [];
|
|
8816
9048
|
if (isSuspensible) {
|
|
8817
9049
|
if (parentSuspense && parentSuspense.pendingBranch && parentSuspenseId === parentSuspense.pendingId) {
|
|
9050
|
+
parentSuspenseId = void 0;
|
|
8818
9051
|
parentSuspense.deps--;
|
|
8819
9052
|
if (parentSuspense.deps === 0 && !sync) parentSuspense.resolve();
|
|
8820
9053
|
}
|
|
@@ -8829,8 +9062,9 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
|
|
|
8829
9062
|
const mountFallback = () => {
|
|
8830
9063
|
suspense.isFallbackMountPending = false;
|
|
8831
9064
|
if (!suspense.isInFallback) return;
|
|
8832
|
-
|
|
8833
|
-
|
|
9065
|
+
const latestFallback = suspense.vnode.ssFallback;
|
|
9066
|
+
patch(null, latestFallback, container, anchor, parentComponent, null, namespace, slotScopeIds, optimized);
|
|
9067
|
+
setActiveBranch(suspense, latestFallback);
|
|
8834
9068
|
};
|
|
8835
9069
|
const delayEnter = fallbackVNode.transition && fallbackVNode.transition.mode === "out-in";
|
|
8836
9070
|
if (delayEnter) {
|
|
@@ -8851,11 +9085,16 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
|
|
|
8851
9085
|
registerDep(instance, onResolve) {
|
|
8852
9086
|
const isInPendingSuspense = !!suspense.pendingBranch;
|
|
8853
9087
|
if (isInPendingSuspense) suspense.deps++;
|
|
9088
|
+
const hydratedEl = instance.vnode && instance.vnode.el;
|
|
8854
9089
|
instance.asyncDep.catch((err) => {
|
|
8855
9090
|
handleError(err, instance, 0);
|
|
8856
9091
|
}).then((asyncSetupResult) => {
|
|
8857
9092
|
if (instance.isUnmounted || suspense.isUnmounted || suspense.pendingId !== instance.suspenseId) return;
|
|
8858
9093
|
setCurrentInstance(null, void 0);
|
|
9094
|
+
if (hydratedEl && !instance.scope.active) {
|
|
9095
|
+
if (isInPendingSuspense && --suspense.deps === 0) suspense.resolve();
|
|
9096
|
+
return;
|
|
9097
|
+
}
|
|
8859
9098
|
instance.asyncResolved = true;
|
|
8860
9099
|
onResolve(asyncSetupResult);
|
|
8861
9100
|
if (isInPendingSuspense && --suspense.deps === 0) suspense.resolve();
|
|
@@ -8906,9 +9145,10 @@ function normalizeSuspenseSlot(s) {
|
|
|
8906
9145
|
return s;
|
|
8907
9146
|
}
|
|
8908
9147
|
function queueEffectWithSuspense(fn, id, suspense) {
|
|
8909
|
-
if (suspense && suspense.pendingBranch)
|
|
8910
|
-
|
|
8911
|
-
|
|
9148
|
+
if (suspense && suspense.pendingBranch) {
|
|
9149
|
+
if (isArray(fn)) suspense.effects.push(...fn);
|
|
9150
|
+
else suspense.effects.push(fn);
|
|
9151
|
+
} else queuePostFlushCb(fn, id);
|
|
8912
9152
|
}
|
|
8913
9153
|
function setActiveBranch(suspense, branch) {
|
|
8914
9154
|
suspense.activeBranch = branch;
|
|
@@ -9115,11 +9355,26 @@ function createBaseVNode(type, props = null, children = null, patchFlag = 0, dyn
|
|
|
9115
9355
|
if (shapeFlag & 128) type.normalize(vnode);
|
|
9116
9356
|
} else if (children) vnode.shapeFlag |= isString(children) ? 8 : 16;
|
|
9117
9357
|
if (vnode.key !== vnode.key) warn$1(`VNode created with invalid key (NaN). VNode type:`, vnode.type);
|
|
9358
|
+
if (props && vnode.shapeFlag & 1) {
|
|
9359
|
+
const overwritingProp = props.innerHTML != null ? "innerHTML" : props.textContent != null ? "textContent" : null;
|
|
9360
|
+
if (overwritingProp && hasContentChildren(vnode.children)) warn$1(`The \`${overwritingProp}\` prop on <${vnode.type}> will override its children. Remove either the \`${overwritingProp}\` prop or the children.`);
|
|
9361
|
+
}
|
|
9118
9362
|
if (isBlockTreeEnabled > 0 && !isBlockNode && currentBlock && (vnode.patchFlag > 0 || shapeFlag & 6) && vnode.patchFlag !== 32) currentBlock.push(vnode);
|
|
9119
9363
|
convertLegacyVModelProps(vnode);
|
|
9120
9364
|
defineLegacyVNodeProperties(vnode);
|
|
9121
9365
|
return vnode;
|
|
9122
9366
|
}
|
|
9367
|
+
/**
|
|
9368
|
+
* dev only
|
|
9369
|
+
* Whether children would actually render something. Empty text and empty
|
|
9370
|
+
* arrays are ignored, mirroring the compiler's `node.children.length` check
|
|
9371
|
+
* for `v-html` / `v-text`.
|
|
9372
|
+
*/
|
|
9373
|
+
function hasContentChildren(children) {
|
|
9374
|
+
if (isString(children)) return children !== "";
|
|
9375
|
+
if (isArray(children)) return children.length > 0;
|
|
9376
|
+
return false;
|
|
9377
|
+
}
|
|
9123
9378
|
const createVNode = createVNodeWithArgsTransform;
|
|
9124
9379
|
function _createVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, isBlockNode = false) {
|
|
9125
9380
|
if (!type || type === NULL_DYNAMIC_COMPONENT) {
|
|
@@ -9129,8 +9384,10 @@ function _createVNode(type, props = null, children = null, patchFlag = 0, dynami
|
|
|
9129
9384
|
if (isVNode(type)) {
|
|
9130
9385
|
const cloned = cloneVNode(type, props, true);
|
|
9131
9386
|
if (children) normalizeChildren(cloned, children);
|
|
9132
|
-
if (isBlockTreeEnabled > 0 && !isBlockNode && currentBlock)
|
|
9133
|
-
|
|
9387
|
+
if (isBlockTreeEnabled > 0 && !isBlockNode && currentBlock) {
|
|
9388
|
+
if (cloned.shapeFlag & 6) currentBlock[currentBlock.indexOf(type)] = cloned;
|
|
9389
|
+
else currentBlock.push(cloned);
|
|
9390
|
+
}
|
|
9134
9391
|
cloned.patchFlag = -2;
|
|
9135
9392
|
return cloned;
|
|
9136
9393
|
}
|
|
@@ -9191,7 +9448,10 @@ function cloneVNode(vnode, extraProps, mergeRef = false, cloneTransition = false
|
|
|
9191
9448
|
ce: vnode.ce,
|
|
9192
9449
|
vi: vnode.vi,
|
|
9193
9450
|
vs: cloneVaporSlotMeta(vnode),
|
|
9194
|
-
vb: vnode.vb
|
|
9451
|
+
vb: vnode.vb,
|
|
9452
|
+
ibu: vnode.ibu,
|
|
9453
|
+
iu: vnode.iu,
|
|
9454
|
+
cacheIndex: vnode.cacheIndex
|
|
9195
9455
|
};
|
|
9196
9456
|
if (transition && cloneTransition) setTransitionHooks(cloned, transition.clone(cloned));
|
|
9197
9457
|
defineLegacyVNodeProperties(cloned);
|
|
@@ -9202,8 +9462,7 @@ function cloneVaporSlotMeta(vnode) {
|
|
|
9202
9462
|
if (!vaporSlot) return vaporSlot;
|
|
9203
9463
|
const cloned = {
|
|
9204
9464
|
slot: vaporSlot.slot,
|
|
9205
|
-
|
|
9206
|
-
outletFallback: vaporSlot.outletFallback
|
|
9465
|
+
outlets: vaporSlot.outlets
|
|
9207
9466
|
};
|
|
9208
9467
|
if (vnode.el) {
|
|
9209
9468
|
cloned.state = vaporSlot.state;
|
|
@@ -9255,25 +9514,28 @@ function normalizeChildren(vnode, children) {
|
|
|
9255
9514
|
const { shapeFlag } = vnode;
|
|
9256
9515
|
if (children == null) children = null;
|
|
9257
9516
|
else if (isArray(children)) type = 16;
|
|
9258
|
-
else if (typeof children === "object")
|
|
9259
|
-
|
|
9260
|
-
|
|
9261
|
-
|
|
9262
|
-
|
|
9263
|
-
|
|
9264
|
-
|
|
9265
|
-
|
|
9266
|
-
|
|
9267
|
-
|
|
9268
|
-
|
|
9269
|
-
|
|
9270
|
-
|
|
9271
|
-
|
|
9272
|
-
|
|
9273
|
-
|
|
9517
|
+
else if (typeof children === "object") {
|
|
9518
|
+
if (shapeFlag & 65) {
|
|
9519
|
+
const slot = children.default;
|
|
9520
|
+
if (slot) {
|
|
9521
|
+
slot._c && (slot._d = false);
|
|
9522
|
+
normalizeChildren(vnode, slot());
|
|
9523
|
+
slot._c && (slot._d = true);
|
|
9524
|
+
}
|
|
9525
|
+
return;
|
|
9526
|
+
} else {
|
|
9527
|
+
type = 32;
|
|
9528
|
+
const slotFlag = children._;
|
|
9529
|
+
if (!slotFlag && !isInternalObject(children)) children._ctx = currentRenderingInstance;
|
|
9530
|
+
else if (slotFlag === 3 && currentRenderingInstance) {
|
|
9531
|
+
if (currentRenderingInstance.slots._ === 1) children._ = 1;
|
|
9532
|
+
else {
|
|
9533
|
+
children._ = 2;
|
|
9534
|
+
vnode.patchFlag |= 1024;
|
|
9535
|
+
}
|
|
9536
|
+
}
|
|
9274
9537
|
}
|
|
9275
|
-
}
|
|
9276
|
-
else if (isFunction(children)) {
|
|
9538
|
+
} else if (isFunction(children)) {
|
|
9277
9539
|
if (shapeFlag & 65) {
|
|
9278
9540
|
normalizeChildren(vnode, { default: children });
|
|
9279
9541
|
return;
|
|
@@ -9350,6 +9612,16 @@ const setCurrentInstance = (instance, scope = instance !== null ? instance.scope
|
|
|
9350
9612
|
simpleSetCurrentInstance(instance);
|
|
9351
9613
|
}
|
|
9352
9614
|
};
|
|
9615
|
+
/**
|
|
9616
|
+
* Restores a snapshot returned by {@link setCurrentInstance}. Unlike calling
|
|
9617
|
+
* `setCurrentInstance(...prev)`, an `undefined` saved scope is restored
|
|
9618
|
+
* verbatim instead of re-triggering the `instance.scope` default.
|
|
9619
|
+
* @internal
|
|
9620
|
+
*/
|
|
9621
|
+
const restoreCurrentInstance = (prev) => {
|
|
9622
|
+
setCurrentScope(prev[1]);
|
|
9623
|
+
simpleSetCurrentInstance(prev[0]);
|
|
9624
|
+
};
|
|
9353
9625
|
const internalOptions = [
|
|
9354
9626
|
"ce",
|
|
9355
9627
|
"type",
|
|
@@ -9381,7 +9653,7 @@ const useInstanceOption = (key, silent = false) => {
|
|
|
9381
9653
|
};
|
|
9382
9654
|
//#endregion
|
|
9383
9655
|
//#region packages/runtime-core/src/component.ts
|
|
9384
|
-
const emptyAppContext =
|
|
9656
|
+
const emptyAppContext = /*@__PURE__*/ createAppContext();
|
|
9385
9657
|
let uid = 0;
|
|
9386
9658
|
function createComponentInstance(vnode, parent, suspense) {
|
|
9387
9659
|
const type = vnode.type;
|
|
@@ -9501,7 +9773,7 @@ function setupStatefulComponent(instance, isSSR) {
|
|
|
9501
9773
|
const setupResult = callWithErrorHandling(setup, instance, 0, [/* @__PURE__ */ shallowReadonly(instance.props), setupContext]);
|
|
9502
9774
|
const isAsyncSetup = isPromise(setupResult);
|
|
9503
9775
|
setActiveSub(prevSub);
|
|
9504
|
-
|
|
9776
|
+
restoreCurrentInstance(prev);
|
|
9505
9777
|
if ((isAsyncSetup || instance.sp) && !isAsyncWrapper(instance)) markAsyncBoundary(instance);
|
|
9506
9778
|
if (isAsyncSetup) {
|
|
9507
9779
|
const unsetCurrentInstance = () => {
|
|
@@ -9509,7 +9781,12 @@ function setupStatefulComponent(instance, isSSR) {
|
|
|
9509
9781
|
};
|
|
9510
9782
|
setupResult.then(unsetCurrentInstance, unsetCurrentInstance);
|
|
9511
9783
|
if (isSSR) return setupResult.then((resolvedResult) => {
|
|
9512
|
-
|
|
9784
|
+
setInSSRSetupState(true);
|
|
9785
|
+
try {
|
|
9786
|
+
handleSetupResult(instance, resolvedResult, isSSR);
|
|
9787
|
+
} finally {
|
|
9788
|
+
setInSSRSetupState(false);
|
|
9789
|
+
}
|
|
9513
9790
|
}).catch((e) => {
|
|
9514
9791
|
handleError(e, instance, 0);
|
|
9515
9792
|
});
|
|
@@ -9521,9 +9798,10 @@ function setupStatefulComponent(instance, isSSR) {
|
|
|
9521
9798
|
} else finishComponentSetup(instance, isSSR);
|
|
9522
9799
|
}
|
|
9523
9800
|
function handleSetupResult(instance, setupResult, isSSR) {
|
|
9524
|
-
if (isFunction(setupResult))
|
|
9525
|
-
|
|
9526
|
-
|
|
9801
|
+
if (isFunction(setupResult)) {
|
|
9802
|
+
if (instance.type.__ssrInlineRender) instance.ssrRender = setupResult;
|
|
9803
|
+
else instance.render = setupResult;
|
|
9804
|
+
} else if (isObject(setupResult)) {
|
|
9527
9805
|
if (isVNode(setupResult)) warn$1("setup() should not return VNodes directly - return a render function instead.");
|
|
9528
9806
|
instance.devtoolsRawSetupState = setupResult;
|
|
9529
9807
|
instance.setupState = proxyRefs(setupResult);
|
|
@@ -9575,13 +9853,15 @@ function finishComponentSetup(instance, isSSR, skipOptions) {
|
|
|
9575
9853
|
applyOptions(instance);
|
|
9576
9854
|
} finally {
|
|
9577
9855
|
setActiveSub(prevSub);
|
|
9578
|
-
|
|
9856
|
+
restoreCurrentInstance(prevInstance);
|
|
9579
9857
|
}
|
|
9580
9858
|
}
|
|
9581
|
-
if (!Component.render && instance.render === NOOP && !isSSR)
|
|
9859
|
+
if (!Component.render && instance.render === NOOP && !isSSR) {
|
|
9860
|
+
if (!compile$1 && Component.template)
|
|
9582
9861
|
/* v8 ignore start */
|
|
9583
|
-
|
|
9584
|
-
|
|
9862
|
+
warn$1("Component provided template option but runtime compilation is not supported in this build of Vue.");
|
|
9863
|
+
else warn$1(`Component is missing template or render function: `, Component);
|
|
9864
|
+
}
|
|
9585
9865
|
}
|
|
9586
9866
|
const attrsProxyHandlers = {
|
|
9587
9867
|
get(target, key) {
|
|
@@ -9644,14 +9924,13 @@ function getComponentPublicInstance(instance) {
|
|
|
9644
9924
|
if (instance.exposed) return instance.exposeProxy || (instance.exposeProxy = new Proxy(proxyRefs(markRaw(instance.exposed)), {
|
|
9645
9925
|
get(target, key) {
|
|
9646
9926
|
if (key in target) return target[key];
|
|
9647
|
-
else {
|
|
9927
|
+
else if (!instance.vapor) {
|
|
9648
9928
|
const publicPropertiesMap = getPublicPropertiesMap();
|
|
9649
9929
|
if (key in publicPropertiesMap) return publicPropertiesMap[key](instance);
|
|
9650
9930
|
}
|
|
9651
9931
|
},
|
|
9652
9932
|
has(target, key) {
|
|
9653
|
-
|
|
9654
|
-
return key in target || key in publicPropertiesMap;
|
|
9933
|
+
return key in target || !instance.vapor && key in getPublicPropertiesMap();
|
|
9655
9934
|
}
|
|
9656
9935
|
}));
|
|
9657
9936
|
else return instance.proxy;
|
|
@@ -9689,11 +9968,12 @@ function h(type, propsOrChildren, children) {
|
|
|
9689
9968
|
try {
|
|
9690
9969
|
setBlockTracking(-1);
|
|
9691
9970
|
const l = arguments.length;
|
|
9692
|
-
if (l === 2)
|
|
9693
|
-
if (
|
|
9694
|
-
|
|
9695
|
-
|
|
9696
|
-
|
|
9971
|
+
if (l === 2) {
|
|
9972
|
+
if (isObject(propsOrChildren) && !isArray(propsOrChildren)) {
|
|
9973
|
+
if (isVNode(propsOrChildren)) return createVNode(type, null, [propsOrChildren]);
|
|
9974
|
+
return createVNode(type, propsOrChildren);
|
|
9975
|
+
} else return createVNode(type, null, propsOrChildren);
|
|
9976
|
+
} else {
|
|
9697
9977
|
if (l > 3) children = Array.prototype.slice.call(arguments, 2);
|
|
9698
9978
|
else if (l === 3 && isVNode(children)) children = [children];
|
|
9699
9979
|
return createVNode(type, propsOrChildren, children);
|
|
@@ -9885,7 +10165,7 @@ function isMemoSame(cached, memo) {
|
|
|
9885
10165
|
}
|
|
9886
10166
|
//#endregion
|
|
9887
10167
|
//#region packages/runtime-core/src/index.ts
|
|
9888
|
-
const version = "3.6.0-rc.
|
|
10168
|
+
const version = "3.6.0-rc.10";
|
|
9889
10169
|
const warn = warn$1;
|
|
9890
10170
|
/**
|
|
9891
10171
|
* Runtime error messages. Only exposed in dev or esm builds.
|
|
@@ -9908,7 +10188,10 @@ const ssrUtils = {
|
|
|
9908
10188
|
getComponentPublicInstance,
|
|
9909
10189
|
ensureValidVNode,
|
|
9910
10190
|
pushWarningContext,
|
|
9911
|
-
popWarningContext
|
|
10191
|
+
popWarningContext,
|
|
10192
|
+
VaporSlot,
|
|
10193
|
+
rawVaporSlotKey,
|
|
10194
|
+
invokeSlotFallback
|
|
9912
10195
|
};
|
|
9913
10196
|
/**
|
|
9914
10197
|
* @internal only exposed in compat builds
|
|
@@ -9930,7 +10213,7 @@ const DeprecationTypes = DeprecationTypes$1;
|
|
|
9930
10213
|
let policy = void 0;
|
|
9931
10214
|
const tt = typeof window !== "undefined" && window.trustedTypes;
|
|
9932
10215
|
if (tt) try {
|
|
9933
|
-
policy =
|
|
10216
|
+
policy = /*@__PURE__*/ tt.createPolicy("vue", { createHTML: (val) => val });
|
|
9934
10217
|
} catch (e) {
|
|
9935
10218
|
warn(`Error creating trusted types policy: ${e}`);
|
|
9936
10219
|
}
|
|
@@ -9938,7 +10221,7 @@ const unsafeToTrustedHTML = policy ? (val) => policy.createHTML(val) : (val) =>
|
|
|
9938
10221
|
const svgNS = "http://www.w3.org/2000/svg";
|
|
9939
10222
|
const mathmlNS = "http://www.w3.org/1998/Math/MathML";
|
|
9940
10223
|
const doc = typeof document !== "undefined" ? document : null;
|
|
9941
|
-
const templateContainer = doc &&
|
|
10224
|
+
const templateContainer = doc && /*@__PURE__*/ doc.createElement("template");
|
|
9942
10225
|
const nodeOps = {
|
|
9943
10226
|
insert: (child, parent, anchor) => {
|
|
9944
10227
|
parent.insertBefore(child, anchor || null);
|
|
@@ -10012,7 +10295,7 @@ const DOMTransitionPropsValidators = {
|
|
|
10012
10295
|
leaveActiveClass: String,
|
|
10013
10296
|
leaveToClass: String
|
|
10014
10297
|
};
|
|
10015
|
-
const TransitionPropsValidators =
|
|
10298
|
+
const TransitionPropsValidators = /*@__PURE__*/ extend({}, BaseTransitionPropsValidators, DOMTransitionPropsValidators);
|
|
10016
10299
|
/**
|
|
10017
10300
|
* Wrap logic that attaches extra properties to Transition in a function
|
|
10018
10301
|
* so that it can be annotated as pure
|
|
@@ -10027,7 +10310,7 @@ const decorate$1 = (t) => {
|
|
|
10027
10310
|
* DOM Transition is a higher-order-component based on the platform-agnostic
|
|
10028
10311
|
* base Transition component, with DOM-specific logic.
|
|
10029
10312
|
*/
|
|
10030
|
-
const Transition =
|
|
10313
|
+
const Transition = /*@__PURE__*/ decorate$1((props, { slots }) => h(BaseTransition, resolveTransitionProps(props), slots));
|
|
10031
10314
|
/**
|
|
10032
10315
|
* #3227 Incoming hooks may be merged into arrays when wrapping Transition
|
|
10033
10316
|
* with custom HOCs.
|
|
@@ -10267,14 +10550,15 @@ const vShow = {
|
|
|
10267
10550
|
},
|
|
10268
10551
|
updated(el, { value, oldValue }, { transition }) {
|
|
10269
10552
|
if (!value === !oldValue) return;
|
|
10270
|
-
if (transition)
|
|
10271
|
-
|
|
10272
|
-
|
|
10273
|
-
|
|
10274
|
-
|
|
10275
|
-
|
|
10276
|
-
|
|
10277
|
-
|
|
10553
|
+
if (transition) {
|
|
10554
|
+
if (value) {
|
|
10555
|
+
transition.beforeEnter(el);
|
|
10556
|
+
setDisplay(el, true);
|
|
10557
|
+
transition.enter(el);
|
|
10558
|
+
} else transition.leave(el, () => {
|
|
10559
|
+
setDisplay(el, false);
|
|
10560
|
+
});
|
|
10561
|
+
} else setDisplay(el, value);
|
|
10278
10562
|
},
|
|
10279
10563
|
beforeUnmount(el, { value }) {
|
|
10280
10564
|
setDisplay(el, value);
|
|
@@ -10305,11 +10589,13 @@ function patchStyle(el, prev, next) {
|
|
|
10305
10589
|
const isCssString = isString(next);
|
|
10306
10590
|
let hasControlledDisplay = false;
|
|
10307
10591
|
if (next && !isCssString) {
|
|
10308
|
-
if (prev)
|
|
10309
|
-
|
|
10310
|
-
|
|
10311
|
-
|
|
10312
|
-
|
|
10592
|
+
if (prev) {
|
|
10593
|
+
if (!isString(prev)) {
|
|
10594
|
+
for (const key in prev) if (next[key] == null) setStyle(style, key, "");
|
|
10595
|
+
} else for (const prevStyle of prev.split(";")) {
|
|
10596
|
+
const key = prevStyle.slice(0, prevStyle.indexOf(":")).trim();
|
|
10597
|
+
if (next[key] == null) setStyle(style, key, "");
|
|
10598
|
+
}
|
|
10313
10599
|
}
|
|
10314
10600
|
for (const key in next) {
|
|
10315
10601
|
if (key === "display") hasControlledDisplay = true;
|
|
@@ -10325,7 +10611,11 @@ function patchStyle(el, prev, next) {
|
|
|
10325
10611
|
style.cssText = next;
|
|
10326
10612
|
hasControlledDisplay = displayRE.test(next);
|
|
10327
10613
|
}
|
|
10328
|
-
} else if (prev)
|
|
10614
|
+
} else if (prev) {
|
|
10615
|
+
const cssVarText = style[CSS_VAR_TEXT];
|
|
10616
|
+
if (cssVarText) style.cssText = cssVarText;
|
|
10617
|
+
else el.removeAttribute("style");
|
|
10618
|
+
}
|
|
10329
10619
|
if (vShowOriginalDisplay in el) {
|
|
10330
10620
|
el[vShowOriginalDisplay] = hasControlledDisplay ? style.display : "";
|
|
10331
10621
|
if (el[vShowHidden]) style.display = "none";
|
|
@@ -10338,8 +10628,10 @@ function setStyle(style, name, rawVal) {
|
|
|
10338
10628
|
else {
|
|
10339
10629
|
const val = rawVal == null ? "" : String(rawVal);
|
|
10340
10630
|
if (semicolonRE.test(val)) warn(`Unexpected semicolon at the end of '${name}' style value: '${val}'`);
|
|
10341
|
-
if (name.startsWith("--"))
|
|
10342
|
-
|
|
10631
|
+
if (name.startsWith("--")) {
|
|
10632
|
+
if (importantRE.test(val)) style.setProperty(name, val.replace(importantRE, ""), "important");
|
|
10633
|
+
else style.setProperty(name, val);
|
|
10634
|
+
} else {
|
|
10343
10635
|
const prefixed = autoPrefix(style, name);
|
|
10344
10636
|
if (importantRE.test(val)) style.setProperty(hyphenate(prefixed), val.replace(importantRE, ""), "important");
|
|
10345
10637
|
else style[prefixed] = val;
|
|
@@ -10376,15 +10668,16 @@ function shouldPreserveTextareaResizeStyle(el, key, prev, next) {
|
|
|
10376
10668
|
//#region packages/runtime-dom/src/modules/attrs.ts
|
|
10377
10669
|
const xlinkNS = "http://www.w3.org/1999/xlink";
|
|
10378
10670
|
function patchAttr(el, key, value, isSVG, instance, isBoolean = isSpecialBooleanAttr(key)) {
|
|
10379
|
-
if (isSVG && key.startsWith("xlink:"))
|
|
10380
|
-
|
|
10381
|
-
|
|
10671
|
+
if (isSVG && key.startsWith("xlink:")) {
|
|
10672
|
+
if (value == null) el.removeAttributeNS(xlinkNS, key.slice(6, key.length));
|
|
10673
|
+
else el.setAttributeNS(xlinkNS, key, value);
|
|
10674
|
+
} else {
|
|
10382
10675
|
if (compatCoerceAttr(el, key, value, instance)) return;
|
|
10383
10676
|
if (value == null || isBoolean && !includeBooleanAttr(value)) el.removeAttribute(key);
|
|
10384
10677
|
else el.setAttribute(key, isBoolean ? "" : isSymbol(value) ? String(value) : value);
|
|
10385
10678
|
}
|
|
10386
10679
|
}
|
|
10387
|
-
const isEnumeratedAttr =
|
|
10680
|
+
const isEnumeratedAttr = /*@__PURE__*/ makeMap("contenteditable,draggable,spellcheck");
|
|
10388
10681
|
function compatCoerceAttr(el, key, value, instance = null) {
|
|
10389
10682
|
if (isEnumeratedAttr(key)) {
|
|
10390
10683
|
const v2CoercedValue = value === void 0 ? null : value === null || value === false || value === "false" ? "false" : "true";
|
|
@@ -10476,7 +10769,7 @@ function parseEventName(name) {
|
|
|
10476
10769
|
return [name[2] === ":" ? name.slice(3) : hyphenate(name.slice(2)), options];
|
|
10477
10770
|
}
|
|
10478
10771
|
let cachedNow = 0;
|
|
10479
|
-
const p =
|
|
10772
|
+
const p = /*@__PURE__*/ Promise.resolve();
|
|
10480
10773
|
const getNow = () => cachedNow || (p.then(() => cachedNow = 0), cachedNow = Date.now());
|
|
10481
10774
|
function createInvoker(initialValue, instance) {
|
|
10482
10775
|
const invoker = (e) => {
|
|
@@ -10544,7 +10837,7 @@ function shouldSetAsPropForVueCE(el, key) {
|
|
|
10544
10837
|
//#endregion
|
|
10545
10838
|
//#region packages/runtime-dom/src/apiCustomElement.ts
|
|
10546
10839
|
const REMOVAL = {};
|
|
10547
|
-
|
|
10840
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
10548
10841
|
function defineCustomElement(options, extraOptions, _createApp) {
|
|
10549
10842
|
let Comp = /* @__PURE__ */ defineComponent(options, extraOptions);
|
|
10550
10843
|
if (isPlainObject(Comp)) Comp = extend({}, Comp, extraOptions);
|
|
@@ -10593,12 +10886,14 @@ var VueElementBase = class VueElementBase extends BaseClass {
|
|
|
10593
10886
|
this._parent = parent;
|
|
10594
10887
|
break;
|
|
10595
10888
|
}
|
|
10596
|
-
if (!this._instance)
|
|
10597
|
-
|
|
10598
|
-
this._pendingResolve =
|
|
10599
|
-
|
|
10600
|
-
|
|
10601
|
-
|
|
10889
|
+
if (!this._instance) {
|
|
10890
|
+
if (this._resolved) this._mountComponent(this._def);
|
|
10891
|
+
else if (parent && parent._pendingResolve) this._pendingResolve = parent._pendingResolve.then(() => {
|
|
10892
|
+
this._pendingResolve = void 0;
|
|
10893
|
+
if (this.isConnected) return this._resolveDef();
|
|
10894
|
+
});
|
|
10895
|
+
else this._resolveDef();
|
|
10896
|
+
}
|
|
10602
10897
|
}
|
|
10603
10898
|
disconnectedCallback() {
|
|
10604
10899
|
this._connected = false;
|
|
@@ -10632,7 +10927,7 @@ var VueElementBase = class VueElementBase extends BaseClass {
|
|
|
10632
10927
|
* resolve inner component definition (handle possible async component)
|
|
10633
10928
|
*/
|
|
10634
10929
|
_resolveDef() {
|
|
10635
|
-
if (this._pendingResolve) return;
|
|
10930
|
+
if (this._pendingResolve) return this._pendingResolve;
|
|
10636
10931
|
for (let i = 0; i < this.attributes.length; i++) this._setAttr(this.attributes[i].name);
|
|
10637
10932
|
this._ob = new MutationObserver(this._processMutations.bind(this));
|
|
10638
10933
|
this._ob.observe(this, { attributes: true });
|
|
@@ -10662,6 +10957,7 @@ var VueElementBase = class VueElementBase extends BaseClass {
|
|
|
10662
10957
|
this._def = def;
|
|
10663
10958
|
resolve(def);
|
|
10664
10959
|
});
|
|
10960
|
+
return this._pendingResolve;
|
|
10665
10961
|
} else resolve(this._def);
|
|
10666
10962
|
}
|
|
10667
10963
|
_mountComponent(def) {
|
|
@@ -10700,14 +10996,17 @@ var VueElementBase = class VueElementBase extends BaseClass {
|
|
|
10700
10996
|
const { props } = def;
|
|
10701
10997
|
const declaredPropKeys = isArray(props) ? props : Object.keys(props || {});
|
|
10702
10998
|
for (const key of Object.keys(this)) if (key[0] !== "_" && declaredPropKeys.includes(key)) this._setProp(key, this[key]);
|
|
10703
|
-
for (const key of declaredPropKeys.map(camelize))
|
|
10704
|
-
|
|
10705
|
-
|
|
10706
|
-
|
|
10707
|
-
|
|
10708
|
-
|
|
10709
|
-
|
|
10710
|
-
|
|
10999
|
+
for (const key of declaredPropKeys.map(camelize)) {
|
|
11000
|
+
if (key in Object.getPrototypeOf(this)) warn(`Custom element prop "${key}" conflicts with an existing property on the element and will overwrite it.`);
|
|
11001
|
+
Object.defineProperty(this, key, {
|
|
11002
|
+
get() {
|
|
11003
|
+
return this._getProp(key);
|
|
11004
|
+
},
|
|
11005
|
+
set(val) {
|
|
11006
|
+
this._setProp(key, val, true, !this._patching);
|
|
11007
|
+
}
|
|
11008
|
+
});
|
|
11009
|
+
}
|
|
10711
11010
|
}
|
|
10712
11011
|
_setAttr(key) {
|
|
10713
11012
|
if (key.startsWith("data-v-")) return;
|
|
@@ -10810,13 +11109,11 @@ var VueElementBase = class VueElementBase extends BaseClass {
|
|
|
10810
11109
|
_renderSlots() {
|
|
10811
11110
|
const outlets = this._getSlots();
|
|
10812
11111
|
const scopeId = this._instance.type.__scopeId;
|
|
10813
|
-
const slotReplacements = /* @__PURE__ */ new Map();
|
|
10814
11112
|
for (let i = 0; i < outlets.length; i++) {
|
|
10815
11113
|
const o = outlets[i];
|
|
10816
11114
|
const slotName = o.getAttribute("name") || "default";
|
|
10817
11115
|
const content = this._slots[slotName];
|
|
10818
11116
|
const parent = o.parentNode;
|
|
10819
|
-
const replacementNodes = [];
|
|
10820
11117
|
if (content) for (const n of content) {
|
|
10821
11118
|
if (scopeId && n.nodeType === 1) {
|
|
10822
11119
|
const id = scopeId + "-s";
|
|
@@ -10826,20 +11123,10 @@ var VueElementBase = class VueElementBase extends BaseClass {
|
|
|
10826
11123
|
while (child = walker.nextNode()) child.setAttribute(id, "");
|
|
10827
11124
|
}
|
|
10828
11125
|
parent.insertBefore(n, o);
|
|
10829
|
-
replacementNodes.push(n);
|
|
10830
|
-
}
|
|
10831
|
-
else while (o.firstChild) {
|
|
10832
|
-
const child = o.firstChild;
|
|
10833
|
-
parent.insertBefore(child, o);
|
|
10834
|
-
replacementNodes.push(child);
|
|
10835
11126
|
}
|
|
11127
|
+
else while (o.firstChild) parent.insertBefore(o.firstChild, o);
|
|
10836
11128
|
parent.removeChild(o);
|
|
10837
|
-
slotReplacements.set(o, {
|
|
10838
|
-
nodes: replacementNodes,
|
|
10839
|
-
usedFallback: !content
|
|
10840
|
-
});
|
|
10841
11129
|
}
|
|
10842
|
-
this._updateSlotNodes(slotReplacements);
|
|
10843
11130
|
}
|
|
10844
11131
|
/**
|
|
10845
11132
|
* @internal
|
|
@@ -10878,7 +11165,7 @@ var VueElementBase = class VueElementBase extends BaseClass {
|
|
|
10878
11165
|
* @internal
|
|
10879
11166
|
*/
|
|
10880
11167
|
_hasShadowRoot() {
|
|
10881
|
-
return this.
|
|
11168
|
+
return this._root !== this;
|
|
10882
11169
|
}
|
|
10883
11170
|
/**
|
|
10884
11171
|
* @internal
|
|
@@ -10923,10 +11210,6 @@ var VueElement = class extends VueElementBase {
|
|
|
10923
11210
|
if (this._instance && this._instance.ce) this._instance.ce = void 0;
|
|
10924
11211
|
this._app = this._instance = null;
|
|
10925
11212
|
}
|
|
10926
|
-
/**
|
|
10927
|
-
* Only called when shadowRoot is false
|
|
10928
|
-
*/
|
|
10929
|
-
_updateSlotNodes(replacements) {}
|
|
10930
11213
|
_createVNode() {
|
|
10931
11214
|
const baseProps = {};
|
|
10932
11215
|
if (!this.shadowRoot) baseProps.onVnodeMounted = baseProps.onVnodeUpdated = this._renderSlots.bind(this);
|
|
@@ -10993,7 +11276,7 @@ const decorate = (t) => {
|
|
|
10993
11276
|
};
|
|
10994
11277
|
const TransitionGroup = /* @__PURE__ */ decorate({
|
|
10995
11278
|
name: "TransitionGroup",
|
|
10996
|
-
props:
|
|
11279
|
+
props: /*@__PURE__*/ extend({}, TransitionPropsValidators, {
|
|
10997
11280
|
tag: String,
|
|
10998
11281
|
moveClass: String
|
|
10999
11282
|
}),
|
|
@@ -11125,13 +11408,22 @@ function onCompositionEnd(e) {
|
|
|
11125
11408
|
}
|
|
11126
11409
|
}
|
|
11127
11410
|
const assignKey = Symbol("_assign");
|
|
11411
|
+
const initialValueKey = Symbol("_initialValue");
|
|
11128
11412
|
const vModelText = {
|
|
11129
11413
|
created(el, { modifiers: { lazy, trim, number } }, vnode) {
|
|
11414
|
+
if (el.parentNode) {
|
|
11415
|
+
if (el.type === "text") el[initialValueKey] = el.defaultValue.replace(/[\r\n]/g, "");
|
|
11416
|
+
else if (el.type === "textarea") el[initialValueKey] = el.defaultValue.replace(/\r\n?/g, "\n");
|
|
11417
|
+
}
|
|
11130
11418
|
el[assignKey] = getModelAssigner(vnode);
|
|
11131
11419
|
vModelTextInit(el, trim, number || !!(vnode.props && vnode.props.type === "number"), lazy);
|
|
11132
11420
|
},
|
|
11133
|
-
mounted(el, { value }) {
|
|
11134
|
-
|
|
11421
|
+
mounted(el, { value, modifiers: { trim, number } }) {
|
|
11422
|
+
const newValue = value == null ? "" : value;
|
|
11423
|
+
const initialValue = el[initialValueKey];
|
|
11424
|
+
delete el[initialValueKey];
|
|
11425
|
+
if (initialValue !== void 0 && (el.type === "text" || el.type === "textarea") && el.value !== initialValue) el[assignKey](castValue(el.value, trim, number));
|
|
11426
|
+
else el.value = newValue;
|
|
11135
11427
|
},
|
|
11136
11428
|
beforeUpdate(el, { value, oldValue, modifiers: { lazy, trim, number } }, vnode) {
|
|
11137
11429
|
el[assignKey] = getModelAssigner(vnode);
|
|
@@ -11266,19 +11558,39 @@ const vModelSelectInit = (el, value, number, set) => {
|
|
|
11266
11558
|
el._modelValue = value;
|
|
11267
11559
|
addEventListener(el, "change", () => {
|
|
11268
11560
|
const selectedVal = Array.prototype.filter.call(el.options, (o) => o.selected).map((o) => number ? looseToNumber(getValue(o)) : getValue(o));
|
|
11269
|
-
|
|
11270
|
-
el.
|
|
11271
|
-
|
|
11272
|
-
|
|
11273
|
-
|
|
11561
|
+
const multiple = el.multiple;
|
|
11562
|
+
const assignedValue = multiple ? isSet(el._modelValue) ? new Set(selectedVal) : selectedVal : selectedVal[0];
|
|
11563
|
+
const pending = el._pendingValue = [multiple, multiple ? isArray(assignedValue) ? selectedVal.slice() : selectedVal : assignedValue];
|
|
11564
|
+
try {
|
|
11565
|
+
(set || el[assignKey])(assignedValue);
|
|
11566
|
+
} finally {
|
|
11567
|
+
nextTick(() => {
|
|
11568
|
+
if (el._pendingValue === pending) el._pendingValue = void 0;
|
|
11569
|
+
});
|
|
11570
|
+
}
|
|
11274
11571
|
});
|
|
11275
11572
|
};
|
|
11573
|
+
function isSameSelectValue(value, assignedValue, multiple) {
|
|
11574
|
+
if (!multiple) return looseEqual(value, assignedValue);
|
|
11575
|
+
if (isArray(value)) return looseEqual(value, assignedValue);
|
|
11576
|
+
if (isSet(value)) {
|
|
11577
|
+
if (value.size !== assignedValue.length) return false;
|
|
11578
|
+
for (const item of assignedValue) if (!value.has(item)) return false;
|
|
11579
|
+
return true;
|
|
11580
|
+
}
|
|
11581
|
+
return false;
|
|
11582
|
+
}
|
|
11276
11583
|
/**
|
|
11277
11584
|
* @internal
|
|
11278
11585
|
*/
|
|
11279
11586
|
const vModelSetSelected = (el, value) => {
|
|
11280
11587
|
el._modelValue = value;
|
|
11281
|
-
|
|
11588
|
+
const pending = el._pendingValue;
|
|
11589
|
+
el._pendingValue = void 0;
|
|
11590
|
+
if (pending && pending[0] === el.multiple && isSameSelectValue(value, pending[1], pending[0])) return;
|
|
11591
|
+
setSelected(el, value);
|
|
11592
|
+
};
|
|
11593
|
+
function setSelected(el, value) {
|
|
11282
11594
|
const isMultiple = el.multiple;
|
|
11283
11595
|
const isArrayValue = isArray(value);
|
|
11284
11596
|
if (isMultiple && !isArrayValue && !isSet(value)) {
|
|
@@ -11288,18 +11600,19 @@ const vModelSetSelected = (el, value) => {
|
|
|
11288
11600
|
for (let i = 0, l = el.options.length; i < l; i++) {
|
|
11289
11601
|
const option = el.options[i];
|
|
11290
11602
|
const optionValue = getValue(option);
|
|
11291
|
-
if (isMultiple)
|
|
11292
|
-
|
|
11293
|
-
|
|
11294
|
-
|
|
11295
|
-
|
|
11296
|
-
|
|
11603
|
+
if (isMultiple) {
|
|
11604
|
+
if (isArrayValue) {
|
|
11605
|
+
const optionType = typeof optionValue;
|
|
11606
|
+
if (optionType === "string" || optionType === "number") option.selected = value.some((v) => String(v) === String(optionValue));
|
|
11607
|
+
else option.selected = looseIndexOf(value, optionValue) > -1;
|
|
11608
|
+
} else option.selected = value.has(optionValue);
|
|
11609
|
+
} else if (looseEqual(getValue(option), value)) {
|
|
11297
11610
|
if (el.selectedIndex !== i) el.selectedIndex = i;
|
|
11298
11611
|
return;
|
|
11299
11612
|
}
|
|
11300
11613
|
}
|
|
11301
11614
|
if (!isMultiple && el.selectedIndex !== -1) el.selectedIndex = -1;
|
|
11302
|
-
}
|
|
11615
|
+
}
|
|
11303
11616
|
/**
|
|
11304
11617
|
* @internal retrieve raw value set via :value bindings
|
|
11305
11618
|
*/
|
|
@@ -11613,7 +11926,7 @@ var src_exports = /* @__PURE__ */ __exportAll({
|
|
|
11613
11926
|
withModifiers: () => withModifiers,
|
|
11614
11927
|
withScopeId: () => withScopeId
|
|
11615
11928
|
});
|
|
11616
|
-
const rendererOptions =
|
|
11929
|
+
const rendererOptions = /*@__PURE__*/ extend({ patchProp }, nodeOps);
|
|
11617
11930
|
let renderer;
|
|
11618
11931
|
let enabledHydration = false;
|
|
11619
11932
|
function ensureRenderer() {
|
|
@@ -11994,7 +12307,7 @@ function convertToBlock(node, { helper, removeHelper, inSSR }) {
|
|
|
11994
12307
|
//#endregion
|
|
11995
12308
|
//#region node_modules/.pnpm/entities@7.0.1/node_modules/entities/dist/esm/decode-codepoint.js
|
|
11996
12309
|
var _a;
|
|
11997
|
-
const decodeMap = new Map([
|
|
12310
|
+
const decodeMap = /* @__PURE__ */ new Map([
|
|
11998
12311
|
[0, 65533],
|
|
11999
12312
|
[128, 8364],
|
|
12000
12313
|
[130, 8218],
|
|
@@ -12062,7 +12375,7 @@ function decodeBase64(input) {
|
|
|
12062
12375
|
}
|
|
12063
12376
|
//#endregion
|
|
12064
12377
|
//#region node_modules/.pnpm/entities@7.0.1/node_modules/entities/dist/esm/generated/decode-data-html.js
|
|
12065
|
-
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");
|
|
12378
|
+
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");
|
|
12066
12379
|
//#endregion
|
|
12067
12380
|
//#region node_modules/.pnpm/entities@7.0.1/node_modules/entities/dist/esm/internal/bin-trie-flags.js
|
|
12068
12381
|
/**
|
|
@@ -12456,7 +12769,7 @@ function determineBranch(decodeTree, current, nodeIndex, char) {
|
|
|
12456
12769
|
}
|
|
12457
12770
|
return -1;
|
|
12458
12771
|
}
|
|
12459
|
-
const htmlDecoder = /*
|
|
12772
|
+
const htmlDecoder = /* #__PURE__ */ getDecoder(htmlDecodeTree);
|
|
12460
12773
|
/**
|
|
12461
12774
|
* Decodes an HTML string.
|
|
12462
12775
|
*
|
|
@@ -12648,13 +12961,14 @@ var Tokenizer = class {
|
|
|
12648
12961
|
}
|
|
12649
12962
|
}
|
|
12650
12963
|
stateInterpolationOpen(c) {
|
|
12651
|
-
if (c === this.delimiterOpen[this.delimiterIndex])
|
|
12652
|
-
|
|
12653
|
-
|
|
12654
|
-
|
|
12655
|
-
|
|
12656
|
-
|
|
12657
|
-
|
|
12964
|
+
if (c === this.delimiterOpen[this.delimiterIndex]) {
|
|
12965
|
+
if (this.delimiterIndex === this.delimiterOpen.length - 1) {
|
|
12966
|
+
const start = this.index + 1 - this.delimiterOpen.length;
|
|
12967
|
+
if (start > this.sectionStart) this.cbs.ontext(this.sectionStart, start);
|
|
12968
|
+
this.state = 3;
|
|
12969
|
+
this.sectionStart = start;
|
|
12970
|
+
} else this.delimiterIndex++;
|
|
12971
|
+
} else if (this.inRCDATA) {
|
|
12658
12972
|
this.state = 32;
|
|
12659
12973
|
this.stateInRCDATA(c);
|
|
12660
12974
|
} else {
|
|
@@ -12670,13 +12984,14 @@ var Tokenizer = class {
|
|
|
12670
12984
|
}
|
|
12671
12985
|
}
|
|
12672
12986
|
stateInterpolationClose(c) {
|
|
12673
|
-
if (c === this.delimiterClose[this.delimiterIndex])
|
|
12674
|
-
|
|
12675
|
-
|
|
12676
|
-
|
|
12677
|
-
|
|
12678
|
-
|
|
12679
|
-
|
|
12987
|
+
if (c === this.delimiterClose[this.delimiterIndex]) {
|
|
12988
|
+
if (this.delimiterIndex === this.delimiterClose.length - 1) {
|
|
12989
|
+
this.cbs.oninterpolation(this.sectionStart, this.index + 1);
|
|
12990
|
+
if (this.inRCDATA) this.state = 32;
|
|
12991
|
+
else this.state = 1;
|
|
12992
|
+
this.sectionStart = this.index + 1;
|
|
12993
|
+
} else this.delimiterIndex++;
|
|
12994
|
+
} else {
|
|
12680
12995
|
this.state = 3;
|
|
12681
12996
|
this.stateInterpolation(c);
|
|
12682
12997
|
}
|
|
@@ -12792,9 +13107,10 @@ var Tokenizer = class {
|
|
|
12792
13107
|
this.sectionStart = this.index;
|
|
12793
13108
|
if (this.mode === 0) this.state = 6;
|
|
12794
13109
|
else if (this.inSFCRoot) this.state = 34;
|
|
12795
|
-
else if (!this.inXML)
|
|
12796
|
-
|
|
12797
|
-
|
|
13110
|
+
else if (!this.inXML) {
|
|
13111
|
+
if (c === 116) this.state = 30;
|
|
13112
|
+
else this.state = c === 115 ? 29 : 6;
|
|
13113
|
+
} else this.state = 6;
|
|
12798
13114
|
} else if (c === 47) this.state = 8;
|
|
12799
13115
|
else {
|
|
12800
13116
|
this.state = 1;
|
|
@@ -13161,9 +13477,7 @@ var Tokenizer = class {
|
|
|
13161
13477
|
case 24:
|
|
13162
13478
|
this.stateInProcessingInstruction(c);
|
|
13163
13479
|
break;
|
|
13164
|
-
case 33:
|
|
13165
|
-
this.stateInEntity();
|
|
13166
|
-
break;
|
|
13480
|
+
case 33: this.stateInEntity();
|
|
13167
13481
|
}
|
|
13168
13482
|
this.index++;
|
|
13169
13483
|
}
|
|
@@ -13196,9 +13510,10 @@ var Tokenizer = class {
|
|
|
13196
13510
|
handleTrailingData() {
|
|
13197
13511
|
const endIndex = this.buffer.length;
|
|
13198
13512
|
if (this.sectionStart >= endIndex) return;
|
|
13199
|
-
if (this.state === 28)
|
|
13200
|
-
|
|
13201
|
-
|
|
13513
|
+
if (this.state === 28) {
|
|
13514
|
+
if (this.currentSequence === Sequences.CdataEnd) this.cbs.oncdata(this.sectionStart, endIndex);
|
|
13515
|
+
else this.cbs.oncomment(this.sectionStart, endIndex);
|
|
13516
|
+
} 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);
|
|
13202
13517
|
}
|
|
13203
13518
|
emitCodePoint(cp, consumed) {
|
|
13204
13519
|
if (this.baseState !== 1 && this.baseState !== 32) {
|
|
@@ -13359,16 +13674,22 @@ function walkIdentifiers(root, onIdentifier, includeAll = false, parentStack = [
|
|
|
13359
13674
|
const isRefed = isReferencedIdentifier(node, parent, parentStack);
|
|
13360
13675
|
if (includeAll || isRefed && !isLocal) onIdentifier(node, parent, parentStack, isRefed, isLocal);
|
|
13361
13676
|
} else if (node.type === "ObjectProperty" && (parent === null || parent === void 0 ? void 0 : parent.type) === "ObjectPattern") node.inPattern = true;
|
|
13362
|
-
else if (isFunctionType(node))
|
|
13363
|
-
|
|
13364
|
-
|
|
13365
|
-
else
|
|
13366
|
-
|
|
13367
|
-
|
|
13368
|
-
else if (node.type === "
|
|
13369
|
-
|
|
13370
|
-
|
|
13371
|
-
else
|
|
13677
|
+
else if (isFunctionType(node)) {
|
|
13678
|
+
if (node.scopeIds) node.scopeIds.forEach((id) => markKnownIds(id, knownIds));
|
|
13679
|
+
else walkFunctionParams(node, (id) => markScopeIdentifier(node, id, knownIds));
|
|
13680
|
+
} else if (node.type === "BlockStatement") {
|
|
13681
|
+
if (node.scopeIds) node.scopeIds.forEach((id) => markKnownIds(id, knownIds));
|
|
13682
|
+
else walkBlockDeclarations(node, (id) => markScopeIdentifier(node, id, knownIds));
|
|
13683
|
+
} else if (node.type === "SwitchStatement") {
|
|
13684
|
+
if (node.scopeIds) node.scopeIds.forEach((id) => markKnownIds(id, knownIds));
|
|
13685
|
+
else walkSwitchStatement(node, false, (id) => markScopeIdentifier(node, id, knownIds));
|
|
13686
|
+
} else if (node.type === "CatchClause" && node.param) {
|
|
13687
|
+
if (node.scopeIds) node.scopeIds.forEach((id) => markKnownIds(id, knownIds));
|
|
13688
|
+
else for (const id of extractIdentifiers(node.param)) markScopeIdentifier(node, id, knownIds);
|
|
13689
|
+
} else if (isForStatement(node)) {
|
|
13690
|
+
if (node.scopeIds) node.scopeIds.forEach((id) => markKnownIds(id, knownIds));
|
|
13691
|
+
else walkForStatement(node, false, (id) => markScopeIdentifier(node, id, knownIds));
|
|
13692
|
+
}
|
|
13372
13693
|
},
|
|
13373
13694
|
leave(node, parent) {
|
|
13374
13695
|
parent && parentStack.pop();
|
|
@@ -13460,9 +13781,7 @@ function extractIdentifiers(param, nodes = []) {
|
|
|
13460
13781
|
case "RestElement":
|
|
13461
13782
|
extractIdentifiers(param.argument, nodes);
|
|
13462
13783
|
break;
|
|
13463
|
-
case "AssignmentPattern":
|
|
13464
|
-
extractIdentifiers(param.left, nodes);
|
|
13465
|
-
break;
|
|
13784
|
+
case "AssignmentPattern": extractIdentifiers(param.left, nodes);
|
|
13466
13785
|
}
|
|
13467
13786
|
return nodes;
|
|
13468
13787
|
}
|
|
@@ -13658,7 +13977,7 @@ function isTemplateNode(node) {
|
|
|
13658
13977
|
function isSlotOutlet(node) {
|
|
13659
13978
|
return node.type === 1 && node.tagType === 2;
|
|
13660
13979
|
}
|
|
13661
|
-
const propsHelperSet = new Set([NORMALIZE_PROPS, GUARD_REACTIVE_PROPS]);
|
|
13980
|
+
const propsHelperSet = /* @__PURE__ */ new Set([NORMALIZE_PROPS, GUARD_REACTIVE_PROPS]);
|
|
13662
13981
|
function getUnnormalizedProps(props, callPath = []) {
|
|
13663
13982
|
if (props && !isString(props) && props.type === 14) {
|
|
13664
13983
|
const callee = props.callee;
|
|
@@ -13701,9 +14020,10 @@ function injectProp(node, prop, context) {
|
|
|
13701
14020
|
propsWithInjection = createCallExpression(context.helper(MERGE_PROPS), [createObjectExpression([prop]), props]);
|
|
13702
14021
|
if (parentCall && parentCall.callee === GUARD_REACTIVE_PROPS) parentCall = callPath[callPath.length - 2];
|
|
13703
14022
|
}
|
|
13704
|
-
if (node.type === 13)
|
|
13705
|
-
|
|
13706
|
-
|
|
14023
|
+
if (node.type === 13) {
|
|
14024
|
+
if (parentCall) parentCall.arguments[0] = propsWithInjection;
|
|
14025
|
+
else node.props = propsWithInjection;
|
|
14026
|
+
} else if (parentCall) parentCall.arguments[0] = propsWithInjection;
|
|
13707
14027
|
else node.arguments[2] = propsWithInjection;
|
|
13708
14028
|
}
|
|
13709
14029
|
function injectSlotKey(node, prop) {
|
|
@@ -13943,26 +14263,28 @@ const tokenizer = new Tokenizer(stack, {
|
|
|
13943
14263
|
onattribend(quote, end) {
|
|
13944
14264
|
if (currentOpenTag && currentProp) {
|
|
13945
14265
|
setLocEnd(currentProp.loc, end);
|
|
13946
|
-
if (quote !== 0)
|
|
13947
|
-
if (currentProp.
|
|
13948
|
-
|
|
13949
|
-
|
|
13950
|
-
|
|
13951
|
-
|
|
13952
|
-
|
|
13953
|
-
|
|
13954
|
-
|
|
13955
|
-
|
|
13956
|
-
|
|
13957
|
-
|
|
13958
|
-
|
|
13959
|
-
|
|
13960
|
-
|
|
13961
|
-
|
|
13962
|
-
|
|
13963
|
-
|
|
13964
|
-
currentProp.name = "
|
|
13965
|
-
|
|
14266
|
+
if (quote !== 0) {
|
|
14267
|
+
if (currentProp.type === 6) {
|
|
14268
|
+
if (currentProp.name === "class") currentAttrValue = condense(currentAttrValue).trim();
|
|
14269
|
+
if (quote === 1 && !currentAttrValue) emitError(13, end);
|
|
14270
|
+
currentProp.value = {
|
|
14271
|
+
type: 2,
|
|
14272
|
+
content: currentAttrValue,
|
|
14273
|
+
loc: quote === 1 ? getLoc(currentAttrStartIndex, currentAttrEndIndex) : getLoc(currentAttrStartIndex - 1, currentAttrEndIndex + 1)
|
|
14274
|
+
};
|
|
14275
|
+
if (tokenizer.inSFCRoot && currentOpenTag.tag === "template" && currentProp.name === "lang" && currentAttrValue && currentAttrValue !== "html") tokenizer.enterRCDATA(toCharCodes(`</template`), 0);
|
|
14276
|
+
} else {
|
|
14277
|
+
let expParseMode = 0;
|
|
14278
|
+
if (currentProp.name === "for") expParseMode = 3;
|
|
14279
|
+
else if (currentProp.name === "slot") expParseMode = 1;
|
|
14280
|
+
else if (currentProp.name === "on" && currentAttrValue.includes(";")) expParseMode = 2;
|
|
14281
|
+
currentProp.exp = createExp(currentAttrValue, false, getLoc(currentAttrStartIndex, currentAttrEndIndex), 0, expParseMode);
|
|
14282
|
+
if (currentProp.name === "for") currentProp.forParseResult = parseForExpression(currentProp.exp);
|
|
14283
|
+
let syncIndex = -1;
|
|
14284
|
+
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)) {
|
|
14285
|
+
currentProp.name = "model";
|
|
14286
|
+
currentProp.modifiers.splice(syncIndex, 1);
|
|
14287
|
+
}
|
|
13966
14288
|
}
|
|
13967
14289
|
}
|
|
13968
14290
|
if (currentProp.type !== 7 || currentProp.name !== "pre") currentOpenTag.props.push(currentProp);
|
|
@@ -14005,10 +14327,7 @@ const tokenizer = new Tokenizer(stack, {
|
|
|
14005
14327
|
case 18:
|
|
14006
14328
|
case 19:
|
|
14007
14329
|
case 20:
|
|
14008
|
-
case 21:
|
|
14009
|
-
emitError(9, end);
|
|
14010
|
-
break;
|
|
14011
|
-
default: break;
|
|
14330
|
+
case 21: emitError(9, end);
|
|
14012
14331
|
}
|
|
14013
14332
|
for (let index = 0; index < stack.length; index++) {
|
|
14014
14333
|
onCloseTag(stack[index], end - 1);
|
|
@@ -14154,7 +14473,7 @@ function backTrack(index, c) {
|
|
|
14154
14473
|
while (currentInput.charCodeAt(i) !== c && i >= 0) i--;
|
|
14155
14474
|
return i;
|
|
14156
14475
|
}
|
|
14157
|
-
const specialTemplateDir = new Set([
|
|
14476
|
+
const specialTemplateDir = /* @__PURE__ */ new Set([
|
|
14158
14477
|
"if",
|
|
14159
14478
|
"else",
|
|
14160
14479
|
"else-if",
|
|
@@ -14190,16 +14509,18 @@ function condenseWhitespace(nodes) {
|
|
|
14190
14509
|
let removedWhitespace = false;
|
|
14191
14510
|
for (let i = 0; i < nodes.length; i++) {
|
|
14192
14511
|
const node = nodes[i];
|
|
14193
|
-
if (node.type === 2)
|
|
14194
|
-
if (
|
|
14195
|
-
|
|
14196
|
-
|
|
14197
|
-
|
|
14198
|
-
|
|
14199
|
-
|
|
14200
|
-
|
|
14201
|
-
|
|
14202
|
-
|
|
14512
|
+
if (node.type === 2) {
|
|
14513
|
+
if (!inPre) {
|
|
14514
|
+
if (isAllWhitespace(node.content)) {
|
|
14515
|
+
const prev = nodes[i - 1] && nodes[i - 1].type;
|
|
14516
|
+
const next = nodes[i + 1] && nodes[i + 1].type;
|
|
14517
|
+
if (!prev || !next || shouldCondense && (prev === 3 && (next === 3 || next === 1) || prev === 1 && (next === 3 || next === 1 && hasNewlineChar(node.content)))) {
|
|
14518
|
+
removedWhitespace = true;
|
|
14519
|
+
nodes[i] = null;
|
|
14520
|
+
} else node.content = " ";
|
|
14521
|
+
} else if (shouldCondense) node.content = condense(node.content);
|
|
14522
|
+
} else node.content = node.content.replace(windowsNewlineRE, "\n");
|
|
14523
|
+
}
|
|
14203
14524
|
}
|
|
14204
14525
|
return removedWhitespace ? nodes.filter(Boolean) : nodes;
|
|
14205
14526
|
}
|
|
@@ -14477,7 +14798,7 @@ function getConstantType(node, context) {
|
|
|
14477
14798
|
default: return 0;
|
|
14478
14799
|
}
|
|
14479
14800
|
}
|
|
14480
|
-
const allowHoistedHelperSet = new Set([
|
|
14801
|
+
const allowHoistedHelperSet = /* @__PURE__ */ new Set([
|
|
14481
14802
|
NORMALIZE_CLASS,
|
|
14482
14803
|
NORMALIZE_STYLE,
|
|
14483
14804
|
NORMALIZE_PROPS,
|
|
@@ -14521,7 +14842,7 @@ function getSelfName(filename) {
|
|
|
14521
14842
|
const nameMatch = filename.replace(/\?.*$/, "").match(/([^/\\]+)\.\w+$/);
|
|
14522
14843
|
return nameMatch ? capitalize(camelize(nameMatch[1])) : null;
|
|
14523
14844
|
}
|
|
14524
|
-
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,
|
|
14845
|
+
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 }) {
|
|
14525
14846
|
const context = {
|
|
14526
14847
|
filename,
|
|
14527
14848
|
selfName: getSelfName(filename),
|
|
@@ -14543,7 +14864,6 @@ function createTransformContext(root, { filename = "", prefixIdentifiers = false
|
|
|
14543
14864
|
bindingMetadata,
|
|
14544
14865
|
inline,
|
|
14545
14866
|
isTS,
|
|
14546
|
-
eventDelegation,
|
|
14547
14867
|
onError,
|
|
14548
14868
|
onWarn,
|
|
14549
14869
|
compatConfig,
|
|
@@ -14655,7 +14975,7 @@ function transform(root, options) {
|
|
|
14655
14975
|
traverseNode(root, context);
|
|
14656
14976
|
if (options.hoistStatic) cacheStatic(root, context);
|
|
14657
14977
|
if (!options.ssr) createRootCodegen(root, context);
|
|
14658
|
-
root.helpers = new Set([...context.helpers.keys()]);
|
|
14978
|
+
root.helpers = /* @__PURE__ */ new Set([...context.helpers.keys()]);
|
|
14659
14979
|
root.components = [...context.components];
|
|
14660
14980
|
root.directives = [...context.directives];
|
|
14661
14981
|
root.imports = context.imports;
|
|
@@ -14702,8 +15022,10 @@ function traverseNode(node, context) {
|
|
|
14702
15022
|
const exitFns = [];
|
|
14703
15023
|
for (let i = 0; i < nodeTransforms.length; i++) {
|
|
14704
15024
|
const onExit = nodeTransforms[i](node, context);
|
|
14705
|
-
if (onExit)
|
|
14706
|
-
|
|
15025
|
+
if (onExit) {
|
|
15026
|
+
if (isArray(onExit)) exitFns.push(...onExit);
|
|
15027
|
+
else exitFns.push(onExit);
|
|
15028
|
+
}
|
|
14707
15029
|
if (!context.currentNode) return;
|
|
14708
15030
|
else node = context.currentNode;
|
|
14709
15031
|
}
|
|
@@ -14720,9 +15042,7 @@ function traverseNode(node, context) {
|
|
|
14720
15042
|
case 10:
|
|
14721
15043
|
case 11:
|
|
14722
15044
|
case 1:
|
|
14723
|
-
case 0:
|
|
14724
|
-
traverseChildren(node, context);
|
|
14725
|
-
break;
|
|
15045
|
+
case 0: traverseChildren(node, context);
|
|
14726
15046
|
}
|
|
14727
15047
|
context.currentNode = node;
|
|
14728
15048
|
let i = exitFns.length;
|
|
@@ -14908,16 +15228,18 @@ function genFunctionPreamble(ast, context) {
|
|
|
14908
15228
|
const { ssr, prefixIdentifiers, push, newline, runtimeModuleName, runtimeGlobalName, ssrRuntimeModuleName } = context;
|
|
14909
15229
|
const VueBinding = ssr ? `require(${JSON.stringify(runtimeModuleName)})` : runtimeGlobalName;
|
|
14910
15230
|
const helpers = Array.from(ast.helpers);
|
|
14911
|
-
if (helpers.length > 0)
|
|
14912
|
-
|
|
14913
|
-
|
|
14914
|
-
|
|
14915
|
-
|
|
14916
|
-
|
|
14917
|
-
|
|
14918
|
-
|
|
14919
|
-
|
|
14920
|
-
|
|
15231
|
+
if (helpers.length > 0) {
|
|
15232
|
+
if (prefixIdentifiers) push(`const { ${helpers.map(aliasHelper).join(", ")} } = ${VueBinding}\n`, -1);
|
|
15233
|
+
else {
|
|
15234
|
+
push(`const _Vue = ${VueBinding}\n`, -1);
|
|
15235
|
+
if (ast.hoists.length) push(`const { ${[
|
|
15236
|
+
CREATE_VNODE,
|
|
15237
|
+
CREATE_ELEMENT_VNODE,
|
|
15238
|
+
CREATE_COMMENT,
|
|
15239
|
+
CREATE_TEXT,
|
|
15240
|
+
CREATE_STATIC
|
|
15241
|
+
].filter((helper) => helpers.includes(helper)).map(aliasHelper).join(", ")} } = _Vue\n`, -1);
|
|
15242
|
+
}
|
|
14921
15243
|
}
|
|
14922
15244
|
if (ast.ssrHelpers && ast.ssrHelpers.length) push(`const { ${ast.ssrHelpers.map(aliasHelper).join(", ")} } = require("${ssrRuntimeModuleName}")\n`, -1);
|
|
14923
15245
|
genHoists(ast.hoists, context);
|
|
@@ -14994,10 +15316,12 @@ function genNodeList(nodes, context, multilines = false, comma = true) {
|
|
|
14994
15316
|
if (isString(node)) push(node, -3);
|
|
14995
15317
|
else if (isArray(node)) genNodeListAsArray(node, context);
|
|
14996
15318
|
else genNode(node, context);
|
|
14997
|
-
if (i < nodes.length - 1)
|
|
14998
|
-
|
|
14999
|
-
|
|
15000
|
-
|
|
15319
|
+
if (i < nodes.length - 1) {
|
|
15320
|
+
if (multilines) {
|
|
15321
|
+
comma && push(",");
|
|
15322
|
+
newline();
|
|
15323
|
+
} else comma && push(", ");
|
|
15324
|
+
}
|
|
15001
15325
|
}
|
|
15002
15326
|
}
|
|
15003
15327
|
function genNode(node, context) {
|
|
@@ -15119,8 +15443,10 @@ function genVNodeCall(node, context) {
|
|
|
15119
15443
|
const { push, helper, pure } = context;
|
|
15120
15444
|
const { tag, props, children, patchFlag, dynamicProps, directives, isBlock, disableTracking, isComponent } = node;
|
|
15121
15445
|
let patchFlagString;
|
|
15122
|
-
if (patchFlag)
|
|
15123
|
-
|
|
15446
|
+
if (patchFlag) {
|
|
15447
|
+
if (patchFlag < 0) patchFlagString = patchFlag + ` /* ${PatchFlagNames[patchFlag]} */`;
|
|
15448
|
+
else patchFlagString = patchFlag + ` /* ${Object.keys(PatchFlagNames).map(Number).filter((n) => n > 0 && patchFlag & n).map((n) => PatchFlagNames[n]).join(`, `)} */`;
|
|
15449
|
+
}
|
|
15124
15450
|
if (directives) push(helper(WITH_DIRECTIVES) + `(`);
|
|
15125
15451
|
if (isBlock) push(`(${helper(OPEN_BLOCK)}(${disableTracking ? `true` : ``}), `);
|
|
15126
15452
|
if (pure) push(PURE_ANNOTATION);
|
|
@@ -15316,7 +15642,7 @@ function genReturnStatement({ returns }, context) {
|
|
|
15316
15642
|
}
|
|
15317
15643
|
//#endregion
|
|
15318
15644
|
//#region packages/compiler-core/src/transforms/transformExpression.ts
|
|
15319
|
-
const isLiteralWhitelisted =
|
|
15645
|
+
const isLiteralWhitelisted = /*@__PURE__*/ makeMap("true,false,null,this");
|
|
15320
15646
|
const transformExpression = (node, context) => {
|
|
15321
15647
|
if (node.type === 5) node.content = processExpression(node.content, context);
|
|
15322
15648
|
else if (node.type === 1) {
|
|
@@ -15349,20 +15675,21 @@ function processExpression(node, context, asParams = false, asRawStatements = fa
|
|
|
15349
15675
|
if (isConst(type) || type === "setup-reactive-const" || localVars[raw]) return raw;
|
|
15350
15676
|
else if (type === "setup-ref") return `${raw}.value`;
|
|
15351
15677
|
else if (type === "setup-maybe-ref") return isAssignmentLVal || isUpdateArg || isDestructureAssignment ? `${raw}.value` : wrapWithUnref(raw);
|
|
15352
|
-
else if (type === "setup-let")
|
|
15353
|
-
|
|
15354
|
-
|
|
15355
|
-
|
|
15356
|
-
|
|
15357
|
-
|
|
15358
|
-
|
|
15359
|
-
|
|
15360
|
-
|
|
15361
|
-
|
|
15362
|
-
|
|
15363
|
-
|
|
15364
|
-
|
|
15365
|
-
|
|
15678
|
+
else if (type === "setup-let") {
|
|
15679
|
+
if (isAssignmentLVal) {
|
|
15680
|
+
const { right: rVal, operator } = parent;
|
|
15681
|
+
const rExpString = stringifyExpression(processExpression(createSimpleExpression(rawExp.slice(rVal.start - 1, rVal.end - 1), false), context, false, false, knownIds));
|
|
15682
|
+
return `${context.helperString(IS_REF)}(${raw})${context.isTS ? ` //@ts-ignore\n` : ``} ? ${raw}.value ${operator} ${rExpString} : ${raw}`;
|
|
15683
|
+
} else if (isUpdateArg) {
|
|
15684
|
+
id.start = parent.start;
|
|
15685
|
+
id.end = parent.end;
|
|
15686
|
+
const { prefix: isPrefix, operator } = parent;
|
|
15687
|
+
const prefix = isPrefix ? operator : ``;
|
|
15688
|
+
const postfix = isPrefix ? `` : operator;
|
|
15689
|
+
return `${context.helperString(IS_REF)}(${raw})${context.isTS ? ` //@ts-ignore\n` : ``} ? ${prefix}${raw}.value${postfix} : ${prefix}${raw}${postfix}`;
|
|
15690
|
+
} else if (isDestructureAssignment) return raw;
|
|
15691
|
+
else return wrapWithUnref(raw);
|
|
15692
|
+
} else if (type === "props") return genPropsAccessExp(raw);
|
|
15366
15693
|
else if (type === "props-aliased") return genPropsAccessExp(bindingMetadata.__propsAliases[raw]);
|
|
15367
15694
|
} else if (type && type.startsWith("setup") || type === "literal-const") return `$setup.${raw}`;
|
|
15368
15695
|
else if (type === "props-aliased") return `$props['${bindingMetadata.__propsAliases[raw]}']`;
|
|
@@ -15379,8 +15706,10 @@ function processExpression(node, context, asParams = false, asRawStatements = fa
|
|
|
15379
15706
|
if (!asParams && !isScopeVarReference && !isLiteral && (!isAllowedGlobal || bindingMetadata[rawExp])) {
|
|
15380
15707
|
if (isConst(bindingMetadata[rawExp])) node.constType = 1;
|
|
15381
15708
|
node.content = rewriteIdentifier(rawExp);
|
|
15382
|
-
} else if (!isScopeVarReference)
|
|
15383
|
-
|
|
15709
|
+
} else if (!isScopeVarReference) {
|
|
15710
|
+
if (isLiteral) node.constType = 3;
|
|
15711
|
+
else node.constType = 2;
|
|
15712
|
+
}
|
|
15384
15713
|
return node;
|
|
15385
15714
|
}
|
|
15386
15715
|
if (!ast) {
|
|
@@ -15539,16 +15868,17 @@ function createChildrenCodegenNode(branch, keyIndex, context) {
|
|
|
15539
15868
|
const keyProperty = createObjectProperty(`key`, createSimpleExpression(`${keyIndex}`, false, locStub, 2));
|
|
15540
15869
|
const { children } = branch;
|
|
15541
15870
|
const firstChild = children[0];
|
|
15542
|
-
if (children.length !== 1 || firstChild.type !== 1)
|
|
15543
|
-
|
|
15544
|
-
|
|
15545
|
-
|
|
15871
|
+
if (children.length !== 1 || firstChild.type !== 1) {
|
|
15872
|
+
if (children.length === 1 && firstChild.type === 11) {
|
|
15873
|
+
const vnodeCall = firstChild.codegenNode;
|
|
15874
|
+
injectProp(vnodeCall, keyProperty, context);
|
|
15875
|
+
return vnodeCall;
|
|
15876
|
+
} else {
|
|
15877
|
+
let patchFlag = 64;
|
|
15878
|
+
if (!branch.isTemplateIf && children.filter((c) => c.type !== 3).length === 1) patchFlag |= 2048;
|
|
15879
|
+
return createVNodeCall(context, helper(FRAGMENT), createObjectExpression([keyProperty]), children, patchFlag, void 0, void 0, true, false, false, branch.loc);
|
|
15880
|
+
}
|
|
15546
15881
|
} else {
|
|
15547
|
-
let patchFlag = 64;
|
|
15548
|
-
if (!branch.isTemplateIf && children.filter((c) => c.type !== 3).length === 1) patchFlag |= 2048;
|
|
15549
|
-
return createVNodeCall(context, helper(FRAGMENT), createObjectExpression([keyProperty]), children, patchFlag, void 0, void 0, true, false, false, branch.loc);
|
|
15550
|
-
}
|
|
15551
|
-
else {
|
|
15552
15882
|
const ret = firstChild.codegenNode;
|
|
15553
15883
|
const vnodeCall = getMemoedVNodeCall(ret);
|
|
15554
15884
|
if (vnodeCall.type === 13) convertToBlock(vnodeCall, context);
|
|
@@ -15569,9 +15899,10 @@ function isSameKey(a, b) {
|
|
|
15569
15899
|
return true;
|
|
15570
15900
|
}
|
|
15571
15901
|
function getParentCondition(node) {
|
|
15572
|
-
while (true) if (node.type === 19)
|
|
15573
|
-
|
|
15574
|
-
|
|
15902
|
+
while (true) if (node.type === 19) {
|
|
15903
|
+
if (node.alternate.type === 19) node = node.alternate;
|
|
15904
|
+
else return node;
|
|
15905
|
+
} else if (node.type === 20) node = node.value;
|
|
15575
15906
|
}
|
|
15576
15907
|
//#endregion
|
|
15577
15908
|
//#region packages/compiler-core/src/transforms/vFor.ts
|
|
@@ -15614,15 +15945,24 @@ const transformFor = createStructuralDirectiveTransform("for", (node, dir, conte
|
|
|
15614
15945
|
else {
|
|
15615
15946
|
childBlock = children[0].codegenNode;
|
|
15616
15947
|
if (isTemplate && keyProperty) injectProp(childBlock, keyProperty, context);
|
|
15617
|
-
|
|
15618
|
-
|
|
15619
|
-
|
|
15620
|
-
|
|
15621
|
-
|
|
15948
|
+
const shouldUseBlock = !isStableFragment || childBlock.isBlockRequired === true;
|
|
15949
|
+
if (childBlock.isBlock !== shouldUseBlock) {
|
|
15950
|
+
if (childBlock.isBlock) {
|
|
15951
|
+
removeHelper(OPEN_BLOCK);
|
|
15952
|
+
removeHelper(getVNodeBlockHelper(context.inSSR, childBlock.isComponent));
|
|
15953
|
+
} else removeHelper(getVNodeHelper(context.inSSR, childBlock.isComponent));
|
|
15954
|
+
}
|
|
15955
|
+
childBlock.isBlock = shouldUseBlock;
|
|
15622
15956
|
if (childBlock.isBlock) {
|
|
15623
15957
|
helper(OPEN_BLOCK);
|
|
15624
15958
|
helper(getVNodeBlockHelper(context.inSSR, childBlock.isComponent));
|
|
15625
|
-
} else
|
|
15959
|
+
} else {
|
|
15960
|
+
helper(getVNodeHelper(context.inSSR, childBlock.isComponent));
|
|
15961
|
+
if (childBlock.needsPatch) {
|
|
15962
|
+
var _childBlock$patchFlag;
|
|
15963
|
+
childBlock.patchFlag = ((_childBlock$patchFlag = childBlock.patchFlag) !== null && _childBlock$patchFlag !== void 0 ? _childBlock$patchFlag : 0) | 512;
|
|
15964
|
+
}
|
|
15965
|
+
}
|
|
15626
15966
|
}
|
|
15627
15967
|
if (memo) {
|
|
15628
15968
|
const loop = createFunctionExpression(createForLoopParams(forNode.parseResult, [createSimpleExpression(`_cached`)]));
|
|
@@ -15828,8 +16168,10 @@ function buildSlots(node, context, buildSlotFn = buildClientSlotFn) {
|
|
|
15828
16168
|
return createObjectProperty(`default`, fn);
|
|
15829
16169
|
};
|
|
15830
16170
|
if (!hasTemplateSlots) slotsProperties.push(buildDefaultSlotProperty(void 0, children));
|
|
15831
|
-
else if (implicitDefaultChildren.length && !implicitDefaultChildren.every(isWhitespaceText))
|
|
15832
|
-
|
|
16171
|
+
else if (implicitDefaultChildren.length && !implicitDefaultChildren.every(isWhitespaceText)) {
|
|
16172
|
+
if (hasNamedDefaultSlot) context.onError(createCompilerError(39, implicitDefaultChildren[0].loc));
|
|
16173
|
+
else slotsProperties.push(buildDefaultSlotProperty(void 0, implicitDefaultChildren));
|
|
16174
|
+
}
|
|
15833
16175
|
}
|
|
15834
16176
|
const slotFlag = hasDynamicSlots ? 2 : hasForwardedSlots(node.children) ? 3 : 1;
|
|
15835
16177
|
let slots = createObjectExpression(slotsProperties.concat(createObjectProperty(`_`, createSimpleExpression(slotFlag + ` /* ${slotFlagsText[slotFlag]} */`, false))), loc);
|
|
@@ -15855,10 +16197,7 @@ function hasForwardedSlots(children) {
|
|
|
15855
16197
|
if (hasForwardedSlots(child.branches)) return true;
|
|
15856
16198
|
break;
|
|
15857
16199
|
case 10:
|
|
15858
|
-
case 11:
|
|
15859
|
-
if (hasForwardedSlots(child.children)) return true;
|
|
15860
|
-
break;
|
|
15861
|
-
default: break;
|
|
16200
|
+
case 11: if (hasForwardedSlots(child.children)) return true;
|
|
15862
16201
|
}
|
|
15863
16202
|
}
|
|
15864
16203
|
return false;
|
|
@@ -15880,12 +16219,16 @@ const transformElement = (node, context) => {
|
|
|
15880
16219
|
let vnodeDynamicProps;
|
|
15881
16220
|
let dynamicPropNames;
|
|
15882
16221
|
let vnodeDirectives;
|
|
16222
|
+
let needsPatch = false;
|
|
16223
|
+
let isBlockRequired = false;
|
|
15883
16224
|
let shouldUseBlock = isDynamicComponent || vnodeTag === TELEPORT || vnodeTag === SUSPENSE || !isComponent && (tag === "svg" || tag === "foreignObject" || tag === "math");
|
|
15884
16225
|
if (props.length > 0) {
|
|
15885
16226
|
const propsBuildResult = buildProps(node, context, void 0, isComponent, isDynamicComponent);
|
|
15886
16227
|
vnodeProps = propsBuildResult.props;
|
|
15887
16228
|
patchFlag = propsBuildResult.patchFlag;
|
|
15888
16229
|
dynamicPropNames = propsBuildResult.dynamicPropNames;
|
|
16230
|
+
needsPatch = propsBuildResult.needsPatch;
|
|
16231
|
+
isBlockRequired = propsBuildResult.isBlockRequired;
|
|
15889
16232
|
const directives = propsBuildResult.directives;
|
|
15890
16233
|
vnodeDirectives = directives && directives.length ? createArrayExpression(directives.map((dir) => buildDirectiveArgs(dir, context))) : void 0;
|
|
15891
16234
|
if (propsBuildResult.shouldUseBlock) shouldUseBlock = true;
|
|
@@ -15914,7 +16257,10 @@ const transformElement = (node, context) => {
|
|
|
15914
16257
|
} else vnodeChildren = node.children;
|
|
15915
16258
|
}
|
|
15916
16259
|
if (dynamicPropNames && dynamicPropNames.length) vnodeDynamicProps = stringifyDynamicPropNames(dynamicPropNames);
|
|
15917
|
-
node.codegenNode = createVNodeCall(context, vnodeTag, vnodeProps, vnodeChildren, patchFlag === 0 ? void 0 : patchFlag, vnodeDynamicProps, vnodeDirectives, !!shouldUseBlock, false, isComponent, node.loc);
|
|
16260
|
+
const vnodeCall = node.codegenNode = createVNodeCall(context, vnodeTag, vnodeProps, vnodeChildren, patchFlag === 0 ? void 0 : patchFlag, vnodeDynamicProps, vnodeDirectives, !!shouldUseBlock, false, isComponent, node.loc);
|
|
16261
|
+
needsPatch = needsPatch && (patchFlag === 0 || patchFlag === 32);
|
|
16262
|
+
if (needsPatch) vnodeCall.needsPatch = true;
|
|
16263
|
+
if (isBlockRequired) vnodeCall.isBlockRequired = true;
|
|
15918
16264
|
};
|
|
15919
16265
|
};
|
|
15920
16266
|
function resolveComponentType(node, context, ssr = false) {
|
|
@@ -15999,6 +16345,7 @@ function buildProps(node, context, props = node.props, isComponent, isDynamicCom
|
|
|
15999
16345
|
const runtimeDirectives = [];
|
|
16000
16346
|
const hasChildren = children.length > 0;
|
|
16001
16347
|
let shouldUseBlock = false;
|
|
16348
|
+
let isBlockRequired = false;
|
|
16002
16349
|
let patchFlag = 0;
|
|
16003
16350
|
let hasRef = false;
|
|
16004
16351
|
let hasClassBinding = false;
|
|
@@ -16023,12 +16370,12 @@ function buildProps(node, context, props = node.props, isComponent, isDynamicCom
|
|
|
16023
16370
|
const isEventHandler = isOn(name);
|
|
16024
16371
|
if (isEventHandler && (!isComponent || isDynamicComponent) && name.toLowerCase() !== "onclick" && name !== "onUpdate:modelValue" && !isReservedProp(name)) hasHydrationEventBinding = true;
|
|
16025
16372
|
if (isEventHandler && isReservedProp(name)) hasVnodeHook = true;
|
|
16373
|
+
if (name === "ref") hasRef = true;
|
|
16026
16374
|
if (isEventHandler && value.type === 14) value = value.arguments[0];
|
|
16027
16375
|
if (value.type === 20 || (value.type === 4 || value.type === 8) && getConstantType(value, context) > 0) return;
|
|
16028
|
-
if (name === "
|
|
16029
|
-
else if (name === "class") hasClassBinding = true;
|
|
16376
|
+
if (name === "class") hasClassBinding = true;
|
|
16030
16377
|
else if (name === "style") hasStyleBinding = true;
|
|
16031
|
-
else if (name !== "key" && !dynamicPropNames.includes(name)) dynamicPropNames.push(name);
|
|
16378
|
+
else if (name !== "ref" && name !== "key" && !dynamicPropNames.includes(name)) dynamicPropNames.push(name);
|
|
16032
16379
|
if (isComponent && (name === "class" || name === "style") && !dynamicPropNames.includes(name)) dynamicPropNames.push(name);
|
|
16033
16380
|
} else hasDynamicKeys = true;
|
|
16034
16381
|
};
|
|
@@ -16061,33 +16408,38 @@ function buildProps(node, context, props = node.props, isComponent, isDynamicCom
|
|
|
16061
16408
|
if (name === "once" || name === "memo") continue;
|
|
16062
16409
|
if (name === "is" || isVBind && isStaticArgOf(arg, "is") && (isComponentTag(tag) || isCompatEnabled("COMPILER_IS_ON_ELEMENT", context))) continue;
|
|
16063
16410
|
if (isVOn && ssr) continue;
|
|
16064
|
-
if (isVBind && isStaticArgOf(arg, "key")
|
|
16411
|
+
if (isVBind && isStaticArgOf(arg, "key")) shouldUseBlock = true;
|
|
16412
|
+
if (isVOn && hasChildren && arg && isStaticExp(arg) && camelize(arg.content) === "vue:beforeUpdate") {
|
|
16413
|
+
shouldUseBlock = true;
|
|
16414
|
+
isBlockRequired = true;
|
|
16415
|
+
}
|
|
16065
16416
|
if (isVBind && isStaticArgOf(arg, "ref")) pushRefVForMarker();
|
|
16066
16417
|
if (!arg && (isVBind || isVOn)) {
|
|
16067
16418
|
hasDynamicKeys = true;
|
|
16068
|
-
if (exp)
|
|
16069
|
-
|
|
16070
|
-
|
|
16071
|
-
if (
|
|
16072
|
-
if (
|
|
16073
|
-
|
|
16074
|
-
|
|
16075
|
-
|
|
16076
|
-
|
|
16077
|
-
|
|
16078
|
-
|
|
16079
|
-
|
|
16080
|
-
|
|
16081
|
-
|
|
16082
|
-
|
|
16083
|
-
|
|
16084
|
-
|
|
16085
|
-
|
|
16086
|
-
|
|
16087
|
-
|
|
16088
|
-
|
|
16089
|
-
|
|
16090
|
-
|
|
16419
|
+
if (exp) {
|
|
16420
|
+
if (isVBind) {
|
|
16421
|
+
pushMergeArg();
|
|
16422
|
+
if (mergeArgs.some((arg) => {
|
|
16423
|
+
if (arg.type === 15) return arg.properties.some(({ key }) => {
|
|
16424
|
+
if (key.type !== 4 || !key.isStatic) return true;
|
|
16425
|
+
return key.content !== "class" && key.content !== "style" && !isOn(key.content);
|
|
16426
|
+
});
|
|
16427
|
+
else return true;
|
|
16428
|
+
})) checkCompatEnabled("COMPILER_V_BIND_OBJECT_ORDER", context, loc);
|
|
16429
|
+
if (isCompatEnabled("COMPILER_V_BIND_OBJECT_ORDER", context)) {
|
|
16430
|
+
mergeArgs.unshift(exp);
|
|
16431
|
+
continue;
|
|
16432
|
+
}
|
|
16433
|
+
pushRefVForMarker();
|
|
16434
|
+
pushMergeArg();
|
|
16435
|
+
mergeArgs.push(exp);
|
|
16436
|
+
} else pushMergeArg({
|
|
16437
|
+
type: 14,
|
|
16438
|
+
loc,
|
|
16439
|
+
callee: context.helper(TO_HANDLERS),
|
|
16440
|
+
arguments: isComponent ? [exp] : [exp, `true`]
|
|
16441
|
+
});
|
|
16442
|
+
} else context.onError(createCompilerError(isVBind ? 34 : 35, loc));
|
|
16091
16443
|
continue;
|
|
16092
16444
|
}
|
|
16093
16445
|
if (isVBind && modifiers.some((mod) => mod.content === "prop")) patchFlag |= 32;
|
|
@@ -16103,7 +16455,10 @@ function buildProps(node, context, props = node.props, isComponent, isDynamicCom
|
|
|
16103
16455
|
}
|
|
16104
16456
|
} else if (!isBuiltInDirective(name)) {
|
|
16105
16457
|
runtimeDirectives.push(prop);
|
|
16106
|
-
if (hasChildren)
|
|
16458
|
+
if (hasChildren) {
|
|
16459
|
+
shouldUseBlock = true;
|
|
16460
|
+
isBlockRequired = true;
|
|
16461
|
+
}
|
|
16107
16462
|
}
|
|
16108
16463
|
}
|
|
16109
16464
|
}
|
|
@@ -16120,7 +16475,8 @@ function buildProps(node, context, props = node.props, isComponent, isDynamicCom
|
|
|
16120
16475
|
if (dynamicPropNames.length) patchFlag |= 8;
|
|
16121
16476
|
if (hasHydrationEventBinding) patchFlag |= 32;
|
|
16122
16477
|
}
|
|
16123
|
-
|
|
16478
|
+
const needsPatch = (patchFlag === 0 || patchFlag === 32) && (hasRef || hasVnodeHook || runtimeDirectives.length > 0);
|
|
16479
|
+
if (!shouldUseBlock && needsPatch) patchFlag |= 512;
|
|
16124
16480
|
if (!context.inSSR && propsExpression) switch (propsExpression.type) {
|
|
16125
16481
|
case 15:
|
|
16126
16482
|
let classKeyIndex = -1;
|
|
@@ -16141,16 +16497,16 @@ function buildProps(node, context, props = node.props, isComponent, isDynamicCom
|
|
|
16141
16497
|
} else propsExpression = createCallExpression(context.helper(NORMALIZE_PROPS), [propsExpression]);
|
|
16142
16498
|
break;
|
|
16143
16499
|
case 14: break;
|
|
16144
|
-
default:
|
|
16145
|
-
propsExpression = createCallExpression(context.helper(NORMALIZE_PROPS), [createCallExpression(context.helper(GUARD_REACTIVE_PROPS), [propsExpression])]);
|
|
16146
|
-
break;
|
|
16500
|
+
default: propsExpression = createCallExpression(context.helper(NORMALIZE_PROPS), [createCallExpression(context.helper(GUARD_REACTIVE_PROPS), [propsExpression])]);
|
|
16147
16501
|
}
|
|
16148
16502
|
return {
|
|
16149
16503
|
props: propsExpression,
|
|
16150
16504
|
directives: runtimeDirectives,
|
|
16151
16505
|
patchFlag,
|
|
16152
16506
|
dynamicPropNames,
|
|
16153
|
-
shouldUseBlock
|
|
16507
|
+
shouldUseBlock,
|
|
16508
|
+
needsPatch,
|
|
16509
|
+
isBlockRequired
|
|
16154
16510
|
};
|
|
16155
16511
|
}
|
|
16156
16512
|
function dedupeProperties(properties) {
|
|
@@ -16251,10 +16607,12 @@ function processSlotOutlet(node, context) {
|
|
|
16251
16607
|
for (let i = 0; i < node.props.length; i++) {
|
|
16252
16608
|
const p = node.props[i];
|
|
16253
16609
|
if (p.type === 6) {
|
|
16254
|
-
if (p.value)
|
|
16255
|
-
|
|
16256
|
-
|
|
16257
|
-
|
|
16610
|
+
if (p.value) {
|
|
16611
|
+
if (p.name === "name") slotName = JSON.stringify(p.value.content);
|
|
16612
|
+
else {
|
|
16613
|
+
p.name = camelize(p.name);
|
|
16614
|
+
nonNameProps.push(p);
|
|
16615
|
+
}
|
|
16258
16616
|
}
|
|
16259
16617
|
} else if (p.name === "bind" && isStaticArgOf(p.arg, "name")) {
|
|
16260
16618
|
if (p.exp) slotName = p.exp;
|
|
@@ -16283,17 +16641,18 @@ const transformOn$1 = (dir, node, context, augmentor) => {
|
|
|
16283
16641
|
const { loc, modifiers, arg } = dir;
|
|
16284
16642
|
if (!dir.exp && !modifiers.length) context.onError(createCompilerError(35, loc));
|
|
16285
16643
|
let eventName;
|
|
16286
|
-
if (arg.type === 4)
|
|
16287
|
-
|
|
16288
|
-
|
|
16289
|
-
|
|
16290
|
-
|
|
16291
|
-
|
|
16292
|
-
|
|
16293
|
-
|
|
16294
|
-
|
|
16295
|
-
|
|
16296
|
-
|
|
16644
|
+
if (arg.type === 4) {
|
|
16645
|
+
if (arg.isStatic) {
|
|
16646
|
+
let rawName = arg.content;
|
|
16647
|
+
if (rawName.startsWith("vnode")) context.onError(createCompilerError(52, arg.loc));
|
|
16648
|
+
if (rawName.startsWith("vue:")) rawName = `vnode-${rawName.slice(4)}`;
|
|
16649
|
+
eventName = createSimpleExpression(node.tagType !== 0 || rawName.startsWith("vnode") || !/[A-Z]/.test(rawName) ? toHandlerKey(camelize(rawName)) : `on:${rawName}`, true, arg.loc);
|
|
16650
|
+
} else eventName = createCompoundExpression([
|
|
16651
|
+
`${context.helperString(TO_HANDLER_KEY)}(`,
|
|
16652
|
+
arg,
|
|
16653
|
+
`)`
|
|
16654
|
+
]);
|
|
16655
|
+
} else {
|
|
16297
16656
|
eventName = arg;
|
|
16298
16657
|
eventName.children.unshift(`${context.helperString(TO_HANDLER_KEY)}(`);
|
|
16299
16658
|
eventName.children.push(`)`);
|
|
@@ -16310,13 +16669,15 @@ const transformOn$1 = (dir, node, context, augmentor) => {
|
|
|
16310
16669
|
exp = dir.exp = processExpression(exp, context, false, hasMultipleStatements);
|
|
16311
16670
|
isInlineStatement && context.removeIdentifiers(`$event`);
|
|
16312
16671
|
shouldCache = context.cacheHandlers && !context.inVOnce && !(exp.type === 4 && exp.constType > 0) && !(isMemberExp && node.tagType === 1) && !hasScopeRef(exp, context.identifiers);
|
|
16313
|
-
if (shouldCache && isMemberExp)
|
|
16314
|
-
|
|
16315
|
-
|
|
16316
|
-
|
|
16317
|
-
|
|
16318
|
-
|
|
16319
|
-
|
|
16672
|
+
if (shouldCache && isMemberExp) {
|
|
16673
|
+
if (exp.type === 4) exp.content = `${exp.content} && ${exp.content}(...args)`;
|
|
16674
|
+
else exp.children = [
|
|
16675
|
+
...exp.children,
|
|
16676
|
+
` && `,
|
|
16677
|
+
...exp.children,
|
|
16678
|
+
`(...args)`
|
|
16679
|
+
];
|
|
16680
|
+
}
|
|
16320
16681
|
}
|
|
16321
16682
|
if (isInlineStatement || shouldCache && isMemberExp) exp = createCompoundExpression([
|
|
16322
16683
|
`${isInlineStatement ? context.isTS ? `($event: any)` : `$event` : `${context.isTS ? `\n//@ts-ignore\n` : ``}(...args)`} => ${hasMultipleStatements ? `{` : `(`}`,
|
|
@@ -16344,11 +16705,14 @@ const transformBind = (dir, _node, context) => {
|
|
|
16344
16705
|
arg.children.unshift(`(`);
|
|
16345
16706
|
arg.children.push(`) || ""`);
|
|
16346
16707
|
} else if (!arg.isStatic) arg.content = arg.content ? `${arg.content} || ""` : `""`;
|
|
16347
|
-
if (modifiers.some((mod) => mod.content === "camel"))
|
|
16348
|
-
|
|
16349
|
-
|
|
16350
|
-
|
|
16351
|
-
|
|
16708
|
+
if (modifiers.some((mod) => mod.content === "camel")) {
|
|
16709
|
+
if (arg.type === 4) {
|
|
16710
|
+
if (arg.isStatic) arg.content = camelize(arg.content);
|
|
16711
|
+
else arg.content = `${context.helperString(CAMELIZE)}(${arg.content})`;
|
|
16712
|
+
} else {
|
|
16713
|
+
arg.children.unshift(`${context.helperString(CAMELIZE)}(`);
|
|
16714
|
+
arg.children.push(`)`);
|
|
16715
|
+
}
|
|
16352
16716
|
}
|
|
16353
16717
|
if (!context.inSSR) {
|
|
16354
16718
|
if (modifiers.some((mod) => mod.content === "prop")) injectPrefix(arg, ".");
|
|
@@ -16357,9 +16721,10 @@ const transformBind = (dir, _node, context) => {
|
|
|
16357
16721
|
return { props: [createObjectProperty(arg, exp)] };
|
|
16358
16722
|
};
|
|
16359
16723
|
const injectPrefix = (arg, prefix) => {
|
|
16360
|
-
if (arg.type === 4)
|
|
16361
|
-
|
|
16362
|
-
|
|
16724
|
+
if (arg.type === 4) {
|
|
16725
|
+
if (arg.isStatic) arg.content = prefix + arg.content;
|
|
16726
|
+
else arg.content = `\`${prefix}\${${arg.content}}\``;
|
|
16727
|
+
} else {
|
|
16363
16728
|
arg.children.unshift(`'${prefix}' + (`);
|
|
16364
16729
|
arg.children.push(`)`);
|
|
16365
16730
|
}
|
|
@@ -16454,20 +16819,21 @@ const transformModel$1 = (dir, node, context) => {
|
|
|
16454
16819
|
const eventName = arg ? isStaticExp(arg) ? `onUpdate:${camelize(arg.content)}` : createCompoundExpression(["\"onUpdate:\" + ", arg]) : `onUpdate:modelValue`;
|
|
16455
16820
|
let assignmentExp;
|
|
16456
16821
|
const eventArg = context.isTS ? `($event: any)` : `$event`;
|
|
16457
|
-
if (maybeRef)
|
|
16458
|
-
|
|
16459
|
-
|
|
16460
|
-
`).value = $event)`
|
|
16461
|
-
]);
|
|
16462
|
-
else {
|
|
16463
|
-
const altAssignment = bindingType === "setup-let" ? `${rawExp} = $event` : `null`;
|
|
16464
|
-
assignmentExp = createCompoundExpression([
|
|
16465
|
-
`${eventArg} => (${context.helperString(IS_REF)}(${rawExp}) ? (`,
|
|
16822
|
+
if (maybeRef) {
|
|
16823
|
+
if (bindingType === "setup-ref") assignmentExp = createCompoundExpression([
|
|
16824
|
+
`${eventArg} => ((`,
|
|
16466
16825
|
createSimpleExpression(rawExp, false, exp.loc),
|
|
16467
|
-
`).value = $event
|
|
16826
|
+
`).value = $event)`
|
|
16468
16827
|
]);
|
|
16469
|
-
|
|
16470
|
-
|
|
16828
|
+
else {
|
|
16829
|
+
const altAssignment = bindingType === "setup-let" ? `${rawExp} = $event` : `null`;
|
|
16830
|
+
assignmentExp = createCompoundExpression([
|
|
16831
|
+
`${eventArg} => (${context.helperString(IS_REF)}(${rawExp}) ? (`,
|
|
16832
|
+
createSimpleExpression(rawExp, false, exp.loc),
|
|
16833
|
+
`).value = $event : ${altAssignment})`
|
|
16834
|
+
]);
|
|
16835
|
+
}
|
|
16836
|
+
} else assignmentExp = createCompoundExpression([
|
|
16471
16837
|
`${eventArg} => ((`,
|
|
16472
16838
|
exp,
|
|
16473
16839
|
`) = $event)`
|
|
@@ -16526,11 +16892,12 @@ function parseFilter(node, context) {
|
|
|
16526
16892
|
if (c === 96 && prev !== 92) inTemplateString = false;
|
|
16527
16893
|
} else if (inRegex) {
|
|
16528
16894
|
if (c === 47 && prev !== 92) inRegex = false;
|
|
16529
|
-
} else if (c === 124 && exp.charCodeAt(i + 1) !== 124 && exp.charCodeAt(i - 1) !== 124 && !curly && !square && !paren)
|
|
16530
|
-
|
|
16531
|
-
|
|
16532
|
-
|
|
16533
|
-
|
|
16895
|
+
} else if (c === 124 && exp.charCodeAt(i + 1) !== 124 && exp.charCodeAt(i - 1) !== 124 && !curly && !square && !paren) {
|
|
16896
|
+
if (expression === void 0) {
|
|
16897
|
+
lastFilterIndex = i + 1;
|
|
16898
|
+
expression = exp.slice(0, i).trim();
|
|
16899
|
+
} else pushFilter();
|
|
16900
|
+
} else {
|
|
16534
16901
|
switch (c) {
|
|
16535
16902
|
case 34:
|
|
16536
16903
|
inDouble = true;
|
|
@@ -16556,9 +16923,7 @@ function parseFilter(node, context) {
|
|
|
16556
16923
|
case 123:
|
|
16557
16924
|
curly++;
|
|
16558
16925
|
break;
|
|
16559
|
-
case 125:
|
|
16560
|
-
curly--;
|
|
16561
|
-
break;
|
|
16926
|
+
case 125: curly--;
|
|
16562
16927
|
}
|
|
16563
16928
|
if (c === 47) {
|
|
16564
16929
|
let j = i - 1;
|
|
@@ -16823,9 +17188,7 @@ const transformModel = (dir, node, context) => {
|
|
|
16823
17188
|
isInvalidType = true;
|
|
16824
17189
|
context.onError(createDOMCompilerError(60, dir.loc));
|
|
16825
17190
|
break;
|
|
16826
|
-
default:
|
|
16827
|
-
checkDuplicatedValue();
|
|
16828
|
-
break;
|
|
17191
|
+
default: checkDuplicatedValue();
|
|
16829
17192
|
}
|
|
16830
17193
|
} else if (hasDynamicKeyVBind(node)) directiveToUse = V_MODEL_DYNAMIC;
|
|
16831
17194
|
else checkDuplicatedValue();
|
|
@@ -16838,27 +17201,37 @@ const transformModel = (dir, node, context) => {
|
|
|
16838
17201
|
};
|
|
16839
17202
|
//#endregion
|
|
16840
17203
|
//#region packages/compiler-dom/src/transforms/vOn.ts
|
|
16841
|
-
const isEventOptionModifier =
|
|
16842
|
-
const isNonKeyModifier =
|
|
16843
|
-
const maybeKeyModifier =
|
|
16844
|
-
const isKeyboardEvent =
|
|
17204
|
+
const isEventOptionModifier = /*@__PURE__*/ makeMap(`passive,once,capture`);
|
|
17205
|
+
const isNonKeyModifier = /*@__PURE__*/ makeMap("stop,prevent,self,ctrl,shift,alt,meta,exact,middle");
|
|
17206
|
+
const maybeKeyModifier = /*@__PURE__*/ makeMap("left,right");
|
|
17207
|
+
const isKeyboardEvent = /*@__PURE__*/ makeMap(`onkeyup,onkeydown,onkeypress`);
|
|
16845
17208
|
const resolveModifiers = (key, modifiers, context, loc) => {
|
|
16846
17209
|
const keyModifiers = [];
|
|
16847
17210
|
const nonKeyModifiers = [];
|
|
16848
17211
|
const eventOptionModifiers = [];
|
|
16849
17212
|
for (let i = 0; i < modifiers.length; i++) {
|
|
16850
17213
|
const modifier = modifiers[i].content;
|
|
17214
|
+
if (modifier === "delegate") {
|
|
17215
|
+
if (context) {
|
|
17216
|
+
const error = /* @__PURE__ */ new SyntaxError(`.delegate modifier is only supported in Vapor components.`);
|
|
17217
|
+
error.loc = modifiers[i].loc;
|
|
17218
|
+
context.onWarn(error);
|
|
17219
|
+
}
|
|
17220
|
+
continue;
|
|
17221
|
+
}
|
|
16851
17222
|
if (modifier === "native" && context && checkCompatEnabled("COMPILER_V_ON_NATIVE", context, loc)) eventOptionModifiers.push(modifier);
|
|
16852
17223
|
else if (isEventOptionModifier(modifier)) eventOptionModifiers.push(modifier);
|
|
16853
17224
|
else {
|
|
16854
17225
|
const keyString = isString(key) ? key : isStaticExp(key) ? key.content : null;
|
|
16855
|
-
if (maybeKeyModifier(modifier))
|
|
16856
|
-
|
|
16857
|
-
|
|
16858
|
-
|
|
16859
|
-
|
|
16860
|
-
|
|
16861
|
-
|
|
17226
|
+
if (maybeKeyModifier(modifier)) {
|
|
17227
|
+
if (keyString) {
|
|
17228
|
+
if (isKeyboardEvent(keyString.toLowerCase())) keyModifiers.push(modifier);
|
|
17229
|
+
else nonKeyModifiers.push(modifier);
|
|
17230
|
+
} else {
|
|
17231
|
+
keyModifiers.push(modifier);
|
|
17232
|
+
nonKeyModifiers.push(modifier);
|
|
17233
|
+
}
|
|
17234
|
+
} else if (isNonKeyModifier(modifier)) nonKeyModifiers.push(modifier);
|
|
16862
17235
|
else keyModifiers.push(modifier);
|
|
16863
17236
|
}
|
|
16864
17237
|
}
|
|
@@ -17028,7 +17401,7 @@ const dataAriaRE = /^(?:data|aria)-/;
|
|
|
17028
17401
|
const isStringifiableAttr = (name, ns) => {
|
|
17029
17402
|
return (ns === 0 ? isKnownHtmlAttr(name) : ns === 1 ? isKnownSvgAttr(name) : ns === 2 ? isKnownMathMLAttr(name) : false) || dataAriaRE.test(name);
|
|
17030
17403
|
};
|
|
17031
|
-
const isNonStringifiable =
|
|
17404
|
+
const isNonStringifiable = /*@__PURE__*/ makeMap(`caption,thead,tr,th,tbody,td,tfoot,colgroup,col`);
|
|
17032
17405
|
/**
|
|
17033
17406
|
* for a cached node, analyze it and return:
|
|
17034
17407
|
* - false: bailed (contains non-stringifiable props or runtime constant)
|
|
@@ -17099,10 +17472,11 @@ function stringifyElement(node, context) {
|
|
|
17099
17472
|
res += ` ${p.arg.content}="__VUE_EXP_START__${exp.content}__VUE_EXP_END__"`;
|
|
17100
17473
|
continue;
|
|
17101
17474
|
}
|
|
17102
|
-
if (isBooleanAttr(p.arg.content) && exp.content === "false") continue;
|
|
17475
|
+
if ((isBooleanAttr(p.arg.content) || p.arg.content === "hidden") && exp.content === "false") continue;
|
|
17103
17476
|
let evaluated = evaluateConstant(exp);
|
|
17104
17477
|
if (evaluated != null) {
|
|
17105
17478
|
const arg = p.arg && p.arg.content;
|
|
17479
|
+
if (arg === "hidden" && typeof evaluated === "number" && !includeBooleanAttr(evaluated)) continue;
|
|
17106
17480
|
if (arg === "class") evaluated = normalizeClass(evaluated);
|
|
17107
17481
|
else if (arg === "style") evaluated = stringifyStyle(normalizeStyle(evaluated));
|
|
17108
17482
|
res += ` ${p.arg.content}="${escapeHtml(evaluated)}"`;
|
|
@@ -17164,7 +17538,7 @@ function isValidHTMLNesting(parent, child) {
|
|
|
17164
17538
|
}
|
|
17165
17539
|
return true;
|
|
17166
17540
|
}
|
|
17167
|
-
const headings = new Set([
|
|
17541
|
+
const headings = /* @__PURE__ */ new Set([
|
|
17168
17542
|
"h1",
|
|
17169
17543
|
"h2",
|
|
17170
17544
|
"h3",
|
|
@@ -17176,7 +17550,7 @@ const emptySet = /* @__PURE__ */ new Set([]);
|
|
|
17176
17550
|
/**
|
|
17177
17551
|
* maps element to set of elements that can be it's children, no other */
|
|
17178
17552
|
const onlyValidChildren = {
|
|
17179
|
-
head: new Set([
|
|
17553
|
+
head: /* @__PURE__ */ new Set([
|
|
17180
17554
|
"base",
|
|
17181
17555
|
"basefront",
|
|
17182
17556
|
"bgsound",
|
|
@@ -17189,24 +17563,24 @@ const onlyValidChildren = {
|
|
|
17189
17563
|
"script",
|
|
17190
17564
|
"template"
|
|
17191
17565
|
]),
|
|
17192
|
-
optgroup: new Set(["option"]),
|
|
17193
|
-
select: new Set([
|
|
17566
|
+
optgroup: /* @__PURE__ */ new Set(["option"]),
|
|
17567
|
+
select: /* @__PURE__ */ new Set([
|
|
17194
17568
|
"optgroup",
|
|
17195
17569
|
"option",
|
|
17196
17570
|
"hr"
|
|
17197
17571
|
]),
|
|
17198
|
-
table: new Set([
|
|
17572
|
+
table: /* @__PURE__ */ new Set([
|
|
17199
17573
|
"caption",
|
|
17200
17574
|
"colgroup",
|
|
17201
17575
|
"tbody",
|
|
17202
17576
|
"tfoot",
|
|
17203
17577
|
"thead"
|
|
17204
17578
|
]),
|
|
17205
|
-
tr: new Set(["td", "th"]),
|
|
17206
|
-
colgroup: new Set(["col"]),
|
|
17207
|
-
tbody: new Set(["tr"]),
|
|
17208
|
-
thead: new Set(["tr"]),
|
|
17209
|
-
tfoot: new Set(["tr"]),
|
|
17579
|
+
tr: /* @__PURE__ */ new Set(["td", "th"]),
|
|
17580
|
+
colgroup: /* @__PURE__ */ new Set(["col"]),
|
|
17581
|
+
tbody: /* @__PURE__ */ new Set(["tr"]),
|
|
17582
|
+
thead: /* @__PURE__ */ new Set(["tr"]),
|
|
17583
|
+
tfoot: /* @__PURE__ */ new Set(["tr"]),
|
|
17210
17584
|
script: emptySet,
|
|
17211
17585
|
iframe: emptySet,
|
|
17212
17586
|
option: emptySet,
|
|
@@ -17217,30 +17591,30 @@ const onlyValidChildren = {
|
|
|
17217
17591
|
/** maps elements to set of elements which can be it's parent, no other */
|
|
17218
17592
|
const onlyValidParents = {
|
|
17219
17593
|
html: emptySet,
|
|
17220
|
-
body: new Set(["html"]),
|
|
17221
|
-
head: new Set(["html"]),
|
|
17222
|
-
td: new Set(["tr"]),
|
|
17223
|
-
colgroup: new Set(["table"]),
|
|
17224
|
-
caption: new Set(["table"]),
|
|
17225
|
-
tbody: new Set(["table"]),
|
|
17226
|
-
tfoot: new Set(["table"]),
|
|
17227
|
-
col: new Set(["colgroup"]),
|
|
17228
|
-
th: new Set(["tr"]),
|
|
17229
|
-
thead: new Set(["table"]),
|
|
17230
|
-
tr: new Set([
|
|
17594
|
+
body: /* @__PURE__ */ new Set(["html"]),
|
|
17595
|
+
head: /* @__PURE__ */ new Set(["html"]),
|
|
17596
|
+
td: /* @__PURE__ */ new Set(["tr"]),
|
|
17597
|
+
colgroup: /* @__PURE__ */ new Set(["table"]),
|
|
17598
|
+
caption: /* @__PURE__ */ new Set(["table"]),
|
|
17599
|
+
tbody: /* @__PURE__ */ new Set(["table"]),
|
|
17600
|
+
tfoot: /* @__PURE__ */ new Set(["table"]),
|
|
17601
|
+
col: /* @__PURE__ */ new Set(["colgroup"]),
|
|
17602
|
+
th: /* @__PURE__ */ new Set(["tr"]),
|
|
17603
|
+
thead: /* @__PURE__ */ new Set(["table"]),
|
|
17604
|
+
tr: /* @__PURE__ */ new Set([
|
|
17231
17605
|
"tbody",
|
|
17232
17606
|
"thead",
|
|
17233
17607
|
"tfoot"
|
|
17234
17608
|
]),
|
|
17235
|
-
dd: new Set(["dl", "div"]),
|
|
17236
|
-
dt: new Set(["dl", "div"]),
|
|
17237
|
-
figcaption: new Set(["figure"]),
|
|
17238
|
-
summary: new Set(["details"]),
|
|
17239
|
-
area: new Set(["map"])
|
|
17609
|
+
dd: /* @__PURE__ */ new Set(["dl", "div"]),
|
|
17610
|
+
dt: /* @__PURE__ */ new Set(["dl", "div"]),
|
|
17611
|
+
figcaption: /* @__PURE__ */ new Set(["figure"]),
|
|
17612
|
+
summary: /* @__PURE__ */ new Set(["details"]),
|
|
17613
|
+
area: /* @__PURE__ */ new Set(["map"])
|
|
17240
17614
|
};
|
|
17241
17615
|
/** maps element to set of elements that can not be it's children, others can */
|
|
17242
17616
|
const knownInvalidChildren = {
|
|
17243
|
-
p: new Set([
|
|
17617
|
+
p: /* @__PURE__ */ new Set([
|
|
17244
17618
|
"address",
|
|
17245
17619
|
"article",
|
|
17246
17620
|
"aside",
|
|
@@ -17275,7 +17649,7 @@ const knownInvalidChildren = {
|
|
|
17275
17649
|
"table",
|
|
17276
17650
|
"ul"
|
|
17277
17651
|
]),
|
|
17278
|
-
svg: new Set([
|
|
17652
|
+
svg: /* @__PURE__ */ new Set([
|
|
17279
17653
|
"b",
|
|
17280
17654
|
"blockquote",
|
|
17281
17655
|
"br",
|
|
@@ -17316,12 +17690,12 @@ const knownInvalidChildren = {
|
|
|
17316
17690
|
};
|
|
17317
17691
|
/** maps element to set of elements that can not be it's parent, others can */
|
|
17318
17692
|
const knownInvalidParents = {
|
|
17319
|
-
a: new Set(["a"]),
|
|
17320
|
-
button: new Set(["button"]),
|
|
17321
|
-
dd: new Set(["dd", "dt"]),
|
|
17322
|
-
dt: new Set(["dd", "dt"]),
|
|
17323
|
-
form: new Set(["form"]),
|
|
17324
|
-
li: new Set(["li"]),
|
|
17693
|
+
a: /* @__PURE__ */ new Set(["a"]),
|
|
17694
|
+
button: /* @__PURE__ */ new Set(["button"]),
|
|
17695
|
+
dd: /* @__PURE__ */ new Set(["dd", "dt"]),
|
|
17696
|
+
dt: /* @__PURE__ */ new Set(["dd", "dt"]),
|
|
17697
|
+
form: /* @__PURE__ */ new Set(["form"]),
|
|
17698
|
+
li: /* @__PURE__ */ new Set(["li"]),
|
|
17325
17699
|
h1: headings,
|
|
17326
17700
|
h2: headings,
|
|
17327
17701
|
h3: headings,
|
|
@@ -17364,10 +17738,12 @@ function compile(src, options = {}) {
|
|
|
17364
17738
|
//#region packages/vue-compat/src/index.ts
|
|
17365
17739
|
const compileCache = Object.create(null);
|
|
17366
17740
|
function compileToFunction(template, options) {
|
|
17367
|
-
if (!isString(template))
|
|
17368
|
-
|
|
17369
|
-
|
|
17370
|
-
|
|
17741
|
+
if (!isString(template)) {
|
|
17742
|
+
if (template.nodeType) template = template.innerHTML;
|
|
17743
|
+
else {
|
|
17744
|
+
warn(`invalid template option: `, template);
|
|
17745
|
+
return NOOP;
|
|
17746
|
+
}
|
|
17371
17747
|
}
|
|
17372
17748
|
const key = genCacheKey(template, options);
|
|
17373
17749
|
const cached = compileCache[key];
|