@vue/compat 3.6.0-beta.9 → 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/README.md +2 -2
- package/dist/vue-compat.d.ts +748 -679
- package/dist/vue.cjs.js +1667 -1044
- package/dist/vue.cjs.prod.js +1409 -889
- package/dist/vue.esm-browser.js +1550 -987
- package/dist/vue.esm-browser.prod.js +7 -6
- package/dist/vue.esm-bundler.js +1632 -1011
- package/dist/vue.global.js +1550 -987
- package/dist/vue.global.prod.js +7 -6
- package/dist/vue.runtime.esm-browser.js +1550 -987
- package/dist/vue.runtime.esm-browser.prod.js +7 -6
- package/dist/vue.runtime.esm-bundler.js +1632 -1011
- package/dist/vue.runtime.global.js +1550 -987
- package/dist/vue.runtime.global.prod.js +7 -6
- package/package.json +3 -3
package/dist/vue.cjs.prod.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @vue/compat v3.6.0-
|
|
2
|
+
* @vue/compat v3.6.0-rc.10
|
|
3
3
|
* (c) 2018-present Yuxi (Evan) You and Vue contributors
|
|
4
4
|
* @license MIT
|
|
5
5
|
**/
|
|
@@ -26,7 +26,7 @@ let source_map_js = require("source-map-js");
|
|
|
26
26
|
* \/\*#\_\_PURE\_\_\*\/
|
|
27
27
|
* So that they can be tree-shaken if necessary.
|
|
28
28
|
*/
|
|
29
|
-
|
|
29
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
30
30
|
function makeMap(str) {
|
|
31
31
|
const map = Object.create(null);
|
|
32
32
|
for (const key of str.split(",")) map[key] = 1;
|
|
@@ -70,8 +70,8 @@ const toRawType = (value) => {
|
|
|
70
70
|
};
|
|
71
71
|
const isPlainObject = (val) => toTypeString(val) === "[object Object]";
|
|
72
72
|
const isIntegerKey = (key) => isString(key) && key !== "NaN" && key[0] !== "-" && "" + parseInt(key, 10) === key;
|
|
73
|
-
const isReservedProp =
|
|
74
|
-
const isBuiltInDirective =
|
|
73
|
+
const isReservedProp = /*@__PURE__*/ makeMap(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted");
|
|
74
|
+
const isBuiltInDirective = /*@__PURE__*/ makeMap("bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo");
|
|
75
75
|
const cacheStringFunction = (fn) => {
|
|
76
76
|
const cache = Object.create(null);
|
|
77
77
|
return ((str) => {
|
|
@@ -152,7 +152,7 @@ function genCacheKey(source, options) {
|
|
|
152
152
|
function canSetValueDirectly(tagName) {
|
|
153
153
|
return tagName !== "PROGRESS" && !tagName.includes("-");
|
|
154
154
|
}
|
|
155
|
-
const isGloballyAllowed =
|
|
155
|
+
const isGloballyAllowed = /*@__PURE__*/ makeMap("Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error,Symbol");
|
|
156
156
|
//#endregion
|
|
157
157
|
//#region packages/shared/src/normalizeProp.ts
|
|
158
158
|
function normalizeStyle(value) {
|
|
@@ -168,10 +168,10 @@ function normalizeStyle(value) {
|
|
|
168
168
|
}
|
|
169
169
|
const listDelimiterRE = /;(?![^(]*\))/g;
|
|
170
170
|
const propertyDelimiterRE = /:([^]+)/;
|
|
171
|
-
const styleCommentRE =
|
|
171
|
+
const styleCommentRE = /"(?:[^"\\]|\\[^])*"|'(?:[^'\\]|\\[^])*'|\\[^]|\/\*[^]*?\*\//g;
|
|
172
172
|
function parseStringStyle(cssText) {
|
|
173
173
|
const ret = {};
|
|
174
|
-
cssText.replace(styleCommentRE, "").split(listDelimiterRE).forEach((item) => {
|
|
174
|
+
cssText.replace(styleCommentRE, (match) => match.startsWith("/*") ? "" : match).split(listDelimiterRE).forEach((item) => {
|
|
175
175
|
if (item) {
|
|
176
176
|
const tmp = item.split(propertyDelimiterRE);
|
|
177
177
|
tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim());
|
|
@@ -221,22 +221,22 @@ const VOID_TAGS = "area,base,br,col,embed,hr,img,input,link,meta,param,source,tr
|
|
|
221
221
|
* Compiler only.
|
|
222
222
|
* Do NOT use in runtime code paths unless behind `__DEV__` flag.
|
|
223
223
|
*/
|
|
224
|
-
const isHTMLTag =
|
|
224
|
+
const isHTMLTag = /*@__PURE__*/ makeMap(HTML_TAGS);
|
|
225
225
|
/**
|
|
226
226
|
* Compiler only.
|
|
227
227
|
* Do NOT use in runtime code paths unless behind `__DEV__` flag.
|
|
228
228
|
*/
|
|
229
|
-
const isSVGTag =
|
|
229
|
+
const isSVGTag = /*@__PURE__*/ makeMap(SVG_TAGS);
|
|
230
230
|
/**
|
|
231
231
|
* Compiler only.
|
|
232
232
|
* Do NOT use in runtime code paths unless behind `__DEV__` flag.
|
|
233
233
|
*/
|
|
234
|
-
const isMathMLTag =
|
|
234
|
+
const isMathMLTag = /*@__PURE__*/ makeMap(MATH_TAGS);
|
|
235
235
|
/**
|
|
236
236
|
* Compiler only.
|
|
237
237
|
* Do NOT use in runtime code paths unless behind `__DEV__` flag.
|
|
238
238
|
*/
|
|
239
|
-
const isVoidTag =
|
|
239
|
+
const isVoidTag = /*@__PURE__*/ makeMap(VOID_TAGS);
|
|
240
240
|
//#endregion
|
|
241
241
|
//#region packages/shared/src/domAttrConfig.ts
|
|
242
242
|
/**
|
|
@@ -251,11 +251,11 @@ const isVoidTag = /* @__PURE__ */ makeMap(VOID_TAGS);
|
|
|
251
251
|
* - readonly -> readOnly
|
|
252
252
|
*/
|
|
253
253
|
const specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;
|
|
254
|
-
const isSpecialBooleanAttr =
|
|
254
|
+
const isSpecialBooleanAttr = /*@__PURE__*/ makeMap(specialBooleanAttrs);
|
|
255
255
|
/**
|
|
256
256
|
* The full list is needed during SSR to produce the correct initial markup.
|
|
257
257
|
*/
|
|
258
|
-
const isBooleanAttr =
|
|
258
|
+
const isBooleanAttr = /*@__PURE__*/ makeMap(specialBooleanAttrs + ",async,autofocus,autoplay,controls,default,defer,disabled,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected");
|
|
259
259
|
/**
|
|
260
260
|
* Boolean attributes should be included if the value is truthy or ''.
|
|
261
261
|
* e.g. `<select multiple>` compiles to `{ multiple: '' }`
|
|
@@ -269,15 +269,15 @@ function includeBooleanAttr(value) {
|
|
|
269
269
|
* Don't also forget to allow `data-*` and `aria-*`!
|
|
270
270
|
* Generated from https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes
|
|
271
271
|
*/
|
|
272
|
-
const isKnownHtmlAttr =
|
|
272
|
+
const isKnownHtmlAttr = /*@__PURE__*/ makeMap("accept,accept-charset,accesskey,action,align,allow,alt,async,autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,border,buffered,capture,challenge,charset,checked,cite,class,code,codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,formaction,formenctype,formmethod,formnovalidate,formtarget,headers,height,hidden,high,href,hreflang,http-equiv,icon,id,importance,inert,integrity,ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,start,step,style,summary,tabindex,target,title,translate,type,usemap,value,width,wrap");
|
|
273
273
|
/**
|
|
274
274
|
* Generated from https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute
|
|
275
275
|
*/
|
|
276
|
-
const isKnownSvgAttr =
|
|
276
|
+
const isKnownSvgAttr = /*@__PURE__*/ makeMap("xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,color-interpolation-filters,color-profile,color-rendering,contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,font-family,font-size,font-size-adjust,font-stretch,font-style,font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,overflow,overline-position,overline-thickness,panose-1,paint-order,path,pathLength,patternContentUnits,patternTransform,patternUnits,ping,pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,specularConstant,specularExponent,speed,spreadMethod,startOffset,stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,string,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,text-decoration,text-rendering,textLength,to,transform,transform-origin,type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xmlns:xlink,xml:base,xml:lang,xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan");
|
|
277
277
|
/**
|
|
278
278
|
* Generated from https://developer.mozilla.org/en-US/docs/Web/MathML/Attribute
|
|
279
279
|
*/
|
|
280
|
-
const isKnownMathMLAttr =
|
|
280
|
+
const isKnownMathMLAttr = /*@__PURE__*/ makeMap("accent,accentunder,actiontype,align,alignmentscope,altimg,altimg-height,altimg-valign,altimg-width,alttext,bevelled,close,columnsalign,columnlines,columnspan,denomalign,depth,dir,display,displaystyle,encoding,equalcolumns,equalrows,fence,fontstyle,fontweight,form,frame,framespacing,groupalign,height,href,id,indentalign,indentalignfirst,indentalignlast,indentshift,indentshiftfirst,indentshiftlast,indextype,justify,largetop,largeop,lquote,lspace,mathbackground,mathcolor,mathsize,mathvariant,maxsize,minlabelspacing,mode,other,overflow,position,rowalign,rowlines,rowspan,rquote,rspace,scriptlevel,scriptminsize,scriptsizemultiplier,selection,separator,separators,shift,side,src,stackalign,stretchy,subscriptshift,superscriptshift,symmetric,voffset,width,widths,xlink:href,xlink:show,xlink:type,xmlns");
|
|
281
281
|
function shouldSetAsAttr(tagName, key) {
|
|
282
282
|
if (key === "spellcheck" || key === "draggable" || key === "translate" || key === "autocorrect") return true;
|
|
283
283
|
if (key === "form") return true;
|
|
@@ -325,13 +325,54 @@ function escapeHtml(string) {
|
|
|
325
325
|
}
|
|
326
326
|
//#endregion
|
|
327
327
|
//#region packages/shared/src/looseEqual.ts
|
|
328
|
-
function looseCompareArrays(a, b) {
|
|
328
|
+
function looseCompareArrays(a, b, seen) {
|
|
329
329
|
if (a.length !== b.length) return false;
|
|
330
330
|
let equal = true;
|
|
331
|
-
for (let i = 0; equal && i < a.length; i++) equal = looseEqual(a[i], b[i]);
|
|
331
|
+
for (let i = 0; equal && i < a.length; i++) equal = looseEqual(a[i], b[i], seen);
|
|
332
332
|
return equal;
|
|
333
333
|
}
|
|
334
|
-
function
|
|
334
|
+
function looseCompareCollections(a, b, seen) {
|
|
335
|
+
if (a.size !== b.size) return false;
|
|
336
|
+
const candidates = Array.from(b);
|
|
337
|
+
const matched = new Uint8Array(candidates.length);
|
|
338
|
+
for (const item of a) {
|
|
339
|
+
let index = -1;
|
|
340
|
+
for (let i = 0; i < candidates.length; i++) if (!matched[i] && looseEqual(item, candidates[i], seen)) {
|
|
341
|
+
index = i;
|
|
342
|
+
break;
|
|
343
|
+
}
|
|
344
|
+
if (index < 0) return false;
|
|
345
|
+
matched[index] = 1;
|
|
346
|
+
}
|
|
347
|
+
return true;
|
|
348
|
+
}
|
|
349
|
+
function looseCompareObjects(a, b, seen) {
|
|
350
|
+
let aValidType = isMap(a);
|
|
351
|
+
let bValidType = isMap(b);
|
|
352
|
+
if (aValidType || bValidType) return aValidType && bValidType ? looseCompareCollections(a, b, seen) : false;
|
|
353
|
+
aValidType = isSet(a);
|
|
354
|
+
bValidType = isSet(b);
|
|
355
|
+
if (aValidType || bValidType) return aValidType && bValidType ? looseCompareCollections(a, b, seen) : false;
|
|
356
|
+
if (Object.keys(a).length !== Object.keys(b).length) return false;
|
|
357
|
+
for (const key in a) {
|
|
358
|
+
const aHasKey = a.hasOwnProperty(key);
|
|
359
|
+
const bHasKey = b.hasOwnProperty(key);
|
|
360
|
+
if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key], seen)) return false;
|
|
361
|
+
}
|
|
362
|
+
return String(a) === String(b);
|
|
363
|
+
}
|
|
364
|
+
function looseCompareNested(a, b, seen, compare) {
|
|
365
|
+
if (!seen) seen = [/* @__PURE__ */ new Map(), /* @__PURE__ */ new Map()];
|
|
366
|
+
const [seenA, seenB] = seen;
|
|
367
|
+
if (seenA.has(a) || seenB.has(b)) return seenA.get(a) === b && seenB.get(b) === a;
|
|
368
|
+
seenA.set(a, b);
|
|
369
|
+
seenB.set(b, a);
|
|
370
|
+
const equal = compare(a, b, seen);
|
|
371
|
+
seenA.delete(a);
|
|
372
|
+
seenB.delete(b);
|
|
373
|
+
return equal;
|
|
374
|
+
}
|
|
375
|
+
function looseEqual(a, b, seen) {
|
|
335
376
|
if (a === b) return true;
|
|
336
377
|
let aValidType = isDate(a);
|
|
337
378
|
let bValidType = isDate(b);
|
|
@@ -341,17 +382,12 @@ function looseEqual(a, b) {
|
|
|
341
382
|
if (aValidType || bValidType) return a === b;
|
|
342
383
|
aValidType = isArray(a);
|
|
343
384
|
bValidType = isArray(b);
|
|
344
|
-
if (aValidType || bValidType) return aValidType && bValidType ?
|
|
385
|
+
if (aValidType || bValidType) return aValidType && bValidType ? looseCompareNested(a, b, seen, looseCompareArrays) : false;
|
|
345
386
|
aValidType = isObject(a);
|
|
346
387
|
bValidType = isObject(b);
|
|
347
388
|
if (aValidType || bValidType) {
|
|
348
389
|
if (!aValidType || !bValidType) return false;
|
|
349
|
-
|
|
350
|
-
for (const key in a) {
|
|
351
|
-
const aHasKey = a.hasOwnProperty(key);
|
|
352
|
-
const bHasKey = b.hasOwnProperty(key);
|
|
353
|
-
if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key])) return false;
|
|
354
|
-
}
|
|
390
|
+
return looseCompareNested(a, b, seen, looseCompareObjects);
|
|
355
391
|
}
|
|
356
392
|
return String(a) === String(b);
|
|
357
393
|
}
|
|
@@ -429,9 +465,18 @@ function getSequence(arr) {
|
|
|
429
465
|
}
|
|
430
466
|
return result;
|
|
431
467
|
}
|
|
468
|
+
//#endregion
|
|
469
|
+
//#region packages/reactivity/src/system.ts
|
|
432
470
|
const notifyBuffer = [];
|
|
433
471
|
let batchDepth = 0;
|
|
434
472
|
let activeSub = void 0;
|
|
473
|
+
let runDepth = 0;
|
|
474
|
+
function incRunDepth() {
|
|
475
|
+
++runDepth;
|
|
476
|
+
}
|
|
477
|
+
function decRunDepth() {
|
|
478
|
+
--runDepth;
|
|
479
|
+
}
|
|
435
480
|
let globalVersion = 0;
|
|
436
481
|
let notifyIndex = 0;
|
|
437
482
|
let notifyBufferLength = 0;
|
|
@@ -505,8 +550,10 @@ function propagate(link) {
|
|
|
505
550
|
const sub = link.sub;
|
|
506
551
|
let flags = sub.flags;
|
|
507
552
|
if (flags & 3) {
|
|
508
|
-
if (!(flags & 60))
|
|
509
|
-
|
|
553
|
+
if (!(flags & 60)) {
|
|
554
|
+
sub.flags = flags | 32;
|
|
555
|
+
if (runDepth) sub.flags |= 8;
|
|
556
|
+
} else if (!(flags & 12)) flags = 0;
|
|
510
557
|
else if (!(flags & 4)) sub.flags = flags & -9 | 32;
|
|
511
558
|
else if (!(flags & 48) && isValidLink(link, sub)) {
|
|
512
559
|
sub.flags = flags | 40;
|
|
@@ -557,13 +604,23 @@ function endTracking(sub, prevSub) {
|
|
|
557
604
|
sub.flags &= -5;
|
|
558
605
|
}
|
|
559
606
|
function flush() {
|
|
607
|
+
let hasError = false;
|
|
608
|
+
let error;
|
|
560
609
|
while (notifyIndex < notifyBufferLength) {
|
|
561
610
|
const effect = notifyBuffer[notifyIndex];
|
|
562
611
|
notifyBuffer[notifyIndex++] = void 0;
|
|
563
|
-
|
|
612
|
+
try {
|
|
613
|
+
effect.notify();
|
|
614
|
+
} catch (err) {
|
|
615
|
+
if (!hasError) {
|
|
616
|
+
hasError = true;
|
|
617
|
+
error = err;
|
|
618
|
+
}
|
|
619
|
+
}
|
|
564
620
|
}
|
|
565
621
|
notifyIndex = 0;
|
|
566
622
|
notifyBufferLength = 0;
|
|
623
|
+
if (hasError) throw error;
|
|
567
624
|
}
|
|
568
625
|
function checkDirty(link, sub) {
|
|
569
626
|
let stack;
|
|
@@ -574,13 +631,13 @@ function checkDirty(link, sub) {
|
|
|
574
631
|
let dirty = false;
|
|
575
632
|
if (sub.flags & 16) dirty = true;
|
|
576
633
|
else if ((depFlags & 17) === 17) {
|
|
634
|
+
const subs = dep.subs;
|
|
577
635
|
if (dep.update()) {
|
|
578
|
-
const subs = dep.subs;
|
|
579
636
|
if (subs.nextSub !== void 0) shallowPropagate(subs);
|
|
580
637
|
dirty = true;
|
|
581
638
|
}
|
|
582
639
|
} else if ((depFlags & 33) === 33) {
|
|
583
|
-
|
|
640
|
+
stack = {
|
|
584
641
|
value: link,
|
|
585
642
|
prev: stack
|
|
586
643
|
};
|
|
@@ -595,15 +652,12 @@ function checkDirty(link, sub) {
|
|
|
595
652
|
}
|
|
596
653
|
while (checkDepth) {
|
|
597
654
|
--checkDepth;
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
if (hasMultipleSubs) {
|
|
601
|
-
link = stack.value;
|
|
602
|
-
stack = stack.prev;
|
|
603
|
-
} else link = firstSub;
|
|
655
|
+
link = stack.value;
|
|
656
|
+
stack = stack.prev;
|
|
604
657
|
if (dirty) {
|
|
658
|
+
const subs = sub.subs;
|
|
605
659
|
if (sub.update()) {
|
|
606
|
-
if (
|
|
660
|
+
if (subs.nextSub !== void 0) shallowPropagate(subs);
|
|
607
661
|
sub = link.sub;
|
|
608
662
|
continue;
|
|
609
663
|
}
|
|
@@ -615,7 +669,7 @@ function checkDirty(link, sub) {
|
|
|
615
669
|
}
|
|
616
670
|
dirty = false;
|
|
617
671
|
}
|
|
618
|
-
return dirty;
|
|
672
|
+
return dirty && !!sub.flags;
|
|
619
673
|
} while (true);
|
|
620
674
|
}
|
|
621
675
|
function shallowPropagate(link) {
|
|
@@ -650,7 +704,7 @@ var Dep = class {
|
|
|
650
704
|
}
|
|
651
705
|
set subs(value) {
|
|
652
706
|
this._subs = value;
|
|
653
|
-
if (value === void 0) this.map.delete(this.key);
|
|
707
|
+
if (value === void 0 && this.map) this.map.delete(this.key);
|
|
654
708
|
}
|
|
655
709
|
};
|
|
656
710
|
const targetMap = /* @__PURE__ */ new WeakMap();
|
|
@@ -719,9 +773,7 @@ function trigger(target, type, key, newValue, oldValue, oldTarget) {
|
|
|
719
773
|
if (isMap(target)) run(depsMap.get(MAP_KEY_ITERATE_KEY));
|
|
720
774
|
}
|
|
721
775
|
break;
|
|
722
|
-
case "set":
|
|
723
|
-
if (isMap(target)) run(depsMap.get(ITERATE_KEY));
|
|
724
|
-
break;
|
|
776
|
+
case "set": if (isMap(target)) run(depsMap.get(ITERATE_KEY));
|
|
725
777
|
}
|
|
726
778
|
}
|
|
727
779
|
}
|
|
@@ -736,13 +788,17 @@ function getDepFromReactive(object, key) {
|
|
|
736
788
|
/**
|
|
737
789
|
* Track array iteration and return:
|
|
738
790
|
* - if input is reactive: a cloned raw array with reactive values
|
|
739
|
-
* - if input is
|
|
791
|
+
* - if input is readonly: a cloned raw array with readonly values, preserving
|
|
792
|
+
* reactivity
|
|
793
|
+
* - if input is raw or shallow: the original raw array
|
|
740
794
|
*/
|
|
741
795
|
function reactiveReadArray(array) {
|
|
742
796
|
const raw = /* @__PURE__ */ toRaw(array);
|
|
743
797
|
if (raw === array) return raw;
|
|
744
798
|
track(raw, "iterate", ARRAY_ITERATE_KEY);
|
|
745
|
-
|
|
799
|
+
if (/* @__PURE__ */ isShallow(array)) return raw;
|
|
800
|
+
if (!/* @__PURE__ */ isReadonly(array)) return raw.map(toReactive);
|
|
801
|
+
return /* @__PURE__ */ isReactive(array) ? raw.map((item) => toReadonly(toReactive(item))) : raw.map(toReadonly);
|
|
746
802
|
}
|
|
747
803
|
/**
|
|
748
804
|
* Track array iteration and return raw array
|
|
@@ -918,8 +974,8 @@ function noTracking(self, method, args = []) {
|
|
|
918
974
|
}
|
|
919
975
|
//#endregion
|
|
920
976
|
//#region packages/reactivity/src/baseHandlers.ts
|
|
921
|
-
const isNonTrackableKeys =
|
|
922
|
-
const builtInSymbols = new Set(
|
|
977
|
+
const isNonTrackableKeys = /*@__PURE__*/ makeMap(`__proto__,__v_isRef,__isVue`);
|
|
978
|
+
const builtInSymbols = new Set(/*@__PURE__*/ Object.getOwnPropertyNames(Symbol).filter((key) => key !== "arguments" && key !== "caller").map((key) => Symbol[key]).filter(isSymbol));
|
|
923
979
|
function hasOwnProperty(key) {
|
|
924
980
|
if (!isSymbol(key)) key = String(key);
|
|
925
981
|
const obj = /* @__PURE__ */ toRaw(this);
|
|
@@ -974,15 +1030,17 @@ var MutableReactiveHandler = class extends BaseReactiveHandler {
|
|
|
974
1030
|
oldValue = /* @__PURE__ */ toRaw(oldValue);
|
|
975
1031
|
value = /* @__PURE__ */ toRaw(value);
|
|
976
1032
|
}
|
|
977
|
-
if (!isArrayWithIntegerKey && /* @__PURE__ */ isRef(oldValue) && !/* @__PURE__ */ isRef(value))
|
|
978
|
-
|
|
979
|
-
|
|
980
|
-
|
|
1033
|
+
if (!isArrayWithIntegerKey && /* @__PURE__ */ isRef(oldValue) && !/* @__PURE__ */ isRef(value)) {
|
|
1034
|
+
if (isOldValueReadonly) return true;
|
|
1035
|
+
else {
|
|
1036
|
+
oldValue.value = value;
|
|
1037
|
+
return true;
|
|
1038
|
+
}
|
|
981
1039
|
}
|
|
982
1040
|
}
|
|
983
1041
|
const hadKey = isArrayWithIntegerKey ? Number(key) < target.length : hasOwn(target, key);
|
|
984
1042
|
const result = Reflect.set(target, key, value, /* @__PURE__ */ isRef(target) ? target : receiver);
|
|
985
|
-
if (target === /* @__PURE__ */ toRaw(receiver)) {
|
|
1043
|
+
if (target === /* @__PURE__ */ toRaw(receiver) && result) {
|
|
986
1044
|
if (!hadKey) trigger(target, "add", key, value);
|
|
987
1045
|
else if (hasChanged(value, oldValue)) trigger(target, "set", key, value, oldValue);
|
|
988
1046
|
}
|
|
@@ -1016,10 +1074,10 @@ var ReadonlyReactiveHandler = class extends BaseReactiveHandler {
|
|
|
1016
1074
|
return true;
|
|
1017
1075
|
}
|
|
1018
1076
|
};
|
|
1019
|
-
const mutableHandlers =
|
|
1020
|
-
const readonlyHandlers =
|
|
1021
|
-
const shallowReactiveHandlers =
|
|
1022
|
-
const shallowReadonlyHandlers =
|
|
1077
|
+
const mutableHandlers = /*@__PURE__*/ new MutableReactiveHandler();
|
|
1078
|
+
const readonlyHandlers = /*@__PURE__*/ new ReadonlyReactiveHandler();
|
|
1079
|
+
const shallowReactiveHandlers = /*@__PURE__*/ new MutableReactiveHandler(true);
|
|
1080
|
+
const shallowReadonlyHandlers = /*@__PURE__*/ new ReadonlyReactiveHandler(true);
|
|
1023
1081
|
//#endregion
|
|
1024
1082
|
//#region packages/reactivity/src/collectionHandlers.ts
|
|
1025
1083
|
const toShallow = (value) => value;
|
|
@@ -1166,10 +1224,10 @@ function createInstrumentationGetter(isReadonly, shallow) {
|
|
|
1166
1224
|
return Reflect.get(hasOwn(instrumentations, key) && key in target ? instrumentations : target, key, receiver);
|
|
1167
1225
|
};
|
|
1168
1226
|
}
|
|
1169
|
-
const mutableCollectionHandlers = { get:
|
|
1170
|
-
const shallowCollectionHandlers = { get:
|
|
1171
|
-
const readonlyCollectionHandlers = { get:
|
|
1172
|
-
const shallowReadonlyCollectionHandlers = { get:
|
|
1227
|
+
const mutableCollectionHandlers = { get: /*@__PURE__*/ createInstrumentationGetter(false, false) };
|
|
1228
|
+
const shallowCollectionHandlers = { get: /*@__PURE__*/ createInstrumentationGetter(false, true) };
|
|
1229
|
+
const readonlyCollectionHandlers = { get: /*@__PURE__*/ createInstrumentationGetter(true, false) };
|
|
1230
|
+
const shallowReadonlyCollectionHandlers = { get: /*@__PURE__*/ createInstrumentationGetter(true, true) };
|
|
1173
1231
|
//#endregion
|
|
1174
1232
|
//#region packages/reactivity/src/reactive.ts
|
|
1175
1233
|
const reactiveMap = /* @__PURE__ */ new WeakMap();
|
|
@@ -1187,10 +1245,7 @@ function targetTypeMap(rawType) {
|
|
|
1187
1245
|
default: return 0;
|
|
1188
1246
|
}
|
|
1189
1247
|
}
|
|
1190
|
-
|
|
1191
|
-
return value["__v_skip"] || !Object.isExtensible(value) ? 0 : targetTypeMap(toRawType(value));
|
|
1192
|
-
}
|
|
1193
|
-
/* @__NO_SIDE_EFFECTS__ */
|
|
1248
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
1194
1249
|
function reactive(target) {
|
|
1195
1250
|
if (/* @__PURE__ */ isReadonly(target)) return target;
|
|
1196
1251
|
return createReactiveObject(target, false, mutableHandlers, mutableCollectionHandlers, reactiveMap);
|
|
@@ -1225,7 +1280,7 @@ function reactive(target) {
|
|
|
1225
1280
|
* @param target - The source object.
|
|
1226
1281
|
* @see {@link https://vuejs.org/api/reactivity-advanced.html#shallowreactive}
|
|
1227
1282
|
*/
|
|
1228
|
-
|
|
1283
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
1229
1284
|
function shallowReactive(target) {
|
|
1230
1285
|
return createReactiveObject(target, false, shallowReactiveHandlers, shallowCollectionHandlers, shallowReactiveMap);
|
|
1231
1286
|
}
|
|
@@ -1258,7 +1313,7 @@ function shallowReactive(target) {
|
|
|
1258
1313
|
* @param target - The source object.
|
|
1259
1314
|
* @see {@link https://vuejs.org/api/reactivity-core.html#readonly}
|
|
1260
1315
|
*/
|
|
1261
|
-
|
|
1316
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
1262
1317
|
function readonly(target) {
|
|
1263
1318
|
return createReactiveObject(target, true, readonlyHandlers, readonlyCollectionHandlers, readonlyMap);
|
|
1264
1319
|
}
|
|
@@ -1292,17 +1347,18 @@ function readonly(target) {
|
|
|
1292
1347
|
* @param target - The source object.
|
|
1293
1348
|
* @see {@link https://vuejs.org/api/reactivity-advanced.html#shallowreadonly}
|
|
1294
1349
|
*/
|
|
1295
|
-
|
|
1350
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
1296
1351
|
function shallowReadonly(target) {
|
|
1297
1352
|
return createReactiveObject(target, true, shallowReadonlyHandlers, shallowReadonlyCollectionHandlers, shallowReadonlyMap);
|
|
1298
1353
|
}
|
|
1299
1354
|
function createReactiveObject(target, isReadonly, baseHandlers, collectionHandlers, proxyMap) {
|
|
1300
1355
|
if (!isObject(target)) return target;
|
|
1301
1356
|
if (target["__v_raw"] && !(isReadonly && target["__v_isReactive"])) return target;
|
|
1302
|
-
|
|
1303
|
-
if (targetType === 0) return target;
|
|
1357
|
+
if (target["__v_skip"] || !Object.isExtensible(target)) return target;
|
|
1304
1358
|
const existingProxy = proxyMap.get(target);
|
|
1305
1359
|
if (existingProxy) return existingProxy;
|
|
1360
|
+
const targetType = targetTypeMap(toRawType(target));
|
|
1361
|
+
if (targetType === 0) return target;
|
|
1306
1362
|
const proxy = new Proxy(target, targetType === 2 ? collectionHandlers : baseHandlers);
|
|
1307
1363
|
proxyMap.set(target, proxy);
|
|
1308
1364
|
return proxy;
|
|
@@ -1325,7 +1381,7 @@ function createReactiveObject(target, isReadonly, baseHandlers, collectionHandle
|
|
|
1325
1381
|
* @param value - The value to check.
|
|
1326
1382
|
* @see {@link https://vuejs.org/api/reactivity-utilities.html#isreactive}
|
|
1327
1383
|
*/
|
|
1328
|
-
|
|
1384
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
1329
1385
|
function isReactive(value) {
|
|
1330
1386
|
if (/* @__PURE__ */ isReadonly(value)) return /* @__PURE__ */ isReactive(value["__v_raw"]);
|
|
1331
1387
|
return !!(value && value["__v_isReactive"]);
|
|
@@ -1341,11 +1397,11 @@ function isReactive(value) {
|
|
|
1341
1397
|
* @param value - The value to check.
|
|
1342
1398
|
* @see {@link https://vuejs.org/api/reactivity-utilities.html#isreadonly}
|
|
1343
1399
|
*/
|
|
1344
|
-
|
|
1400
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
1345
1401
|
function isReadonly(value) {
|
|
1346
1402
|
return !!(value && value["__v_isReadonly"]);
|
|
1347
1403
|
}
|
|
1348
|
-
|
|
1404
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
1349
1405
|
function isShallow(value) {
|
|
1350
1406
|
return !!(value && value["__v_isShallow"]);
|
|
1351
1407
|
}
|
|
@@ -1356,7 +1412,7 @@ function isShallow(value) {
|
|
|
1356
1412
|
* @param value - The value to check.
|
|
1357
1413
|
* @see {@link https://vuejs.org/api/reactivity-utilities.html#isproxy}
|
|
1358
1414
|
*/
|
|
1359
|
-
|
|
1415
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
1360
1416
|
function isProxy(value) {
|
|
1361
1417
|
return value ? !!value["__v_raw"] : false;
|
|
1362
1418
|
}
|
|
@@ -1383,7 +1439,7 @@ function isProxy(value) {
|
|
|
1383
1439
|
* @param observed - The object for which the "raw" value is requested.
|
|
1384
1440
|
* @see {@link https://vuejs.org/api/reactivity-advanced.html#toraw}
|
|
1385
1441
|
*/
|
|
1386
|
-
|
|
1442
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
1387
1443
|
function toRaw(observed) {
|
|
1388
1444
|
const raw = observed && observed["__v_raw"];
|
|
1389
1445
|
return raw ? /* @__PURE__ */ toRaw(raw) : observed;
|
|
@@ -1432,15 +1488,15 @@ const toReactive = (value) => isObject(value) ? /* @__PURE__ */ reactive(value)
|
|
|
1432
1488
|
const toReadonly = (value) => isObject(value) ? /* @__PURE__ */ readonly(value) : value;
|
|
1433
1489
|
//#endregion
|
|
1434
1490
|
//#region packages/reactivity/src/ref.ts
|
|
1435
|
-
|
|
1491
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
1436
1492
|
function isRef(r) {
|
|
1437
1493
|
return r ? r["__v_isRef"] === true : false;
|
|
1438
1494
|
}
|
|
1439
|
-
|
|
1495
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
1440
1496
|
function ref(value) {
|
|
1441
1497
|
return createRef(value, toReactive);
|
|
1442
1498
|
}
|
|
1443
|
-
|
|
1499
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
1444
1500
|
function shallowRef(value) {
|
|
1445
1501
|
return createRef(value);
|
|
1446
1502
|
}
|
|
@@ -1628,7 +1684,7 @@ function customRef(factory) {
|
|
|
1628
1684
|
* @param object - Reactive object to be made into an object of linked refs.
|
|
1629
1685
|
* @see {@link https://vuejs.org/api/reactivity-utilities.html#torefs}
|
|
1630
1686
|
*/
|
|
1631
|
-
|
|
1687
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
1632
1688
|
function toRefs(object) {
|
|
1633
1689
|
const ret = isArray(object) ? new Array(object.length) : {};
|
|
1634
1690
|
for (const key in object) ret[key] = propertyToRef(object, key);
|
|
@@ -1679,7 +1735,7 @@ var GetterRefImpl = class {
|
|
|
1679
1735
|
return this._value = this._getter();
|
|
1680
1736
|
}
|
|
1681
1737
|
};
|
|
1682
|
-
|
|
1738
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
1683
1739
|
function toRef(source, key, defaultValue) {
|
|
1684
1740
|
if (/* @__PURE__ */ isRef(source)) return source;
|
|
1685
1741
|
else if (isFunction(source)) return new GetterRefImpl(source);
|
|
@@ -1720,9 +1776,11 @@ var ReactiveEffect = class {
|
|
|
1720
1776
|
if (!this.active) return this.fn();
|
|
1721
1777
|
cleanup(this);
|
|
1722
1778
|
const prevSub = startTracking(this);
|
|
1779
|
+
incRunDepth();
|
|
1723
1780
|
try {
|
|
1724
1781
|
return this.fn();
|
|
1725
1782
|
} finally {
|
|
1783
|
+
decRunDepth();
|
|
1726
1784
|
endTracking(this, prevSub);
|
|
1727
1785
|
const flags = this.flags;
|
|
1728
1786
|
if ((flags & 136) === 136) {
|
|
@@ -1743,10 +1801,12 @@ var ReactiveEffect = class {
|
|
|
1743
1801
|
get dirty() {
|
|
1744
1802
|
const flags = this.flags;
|
|
1745
1803
|
if (flags & 16) return true;
|
|
1746
|
-
if (flags & 32)
|
|
1747
|
-
this.
|
|
1748
|
-
|
|
1749
|
-
|
|
1804
|
+
if (flags & 32) {
|
|
1805
|
+
if (checkDirty(this.deps, this)) {
|
|
1806
|
+
this.flags = flags | 16;
|
|
1807
|
+
return true;
|
|
1808
|
+
} else this.flags = flags & -33;
|
|
1809
|
+
}
|
|
1750
1810
|
return false;
|
|
1751
1811
|
}
|
|
1752
1812
|
};
|
|
@@ -1923,10 +1983,12 @@ var ComputedRefImpl = class {
|
|
|
1923
1983
|
get _dirty() {
|
|
1924
1984
|
const flags = this.flags;
|
|
1925
1985
|
if (flags & 16) return true;
|
|
1926
|
-
if (flags & 32)
|
|
1927
|
-
this.
|
|
1928
|
-
|
|
1929
|
-
|
|
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
|
+
}
|
|
1930
1992
|
return false;
|
|
1931
1993
|
}
|
|
1932
1994
|
/**
|
|
@@ -1979,7 +2041,7 @@ var ComputedRefImpl = class {
|
|
|
1979
2041
|
}
|
|
1980
2042
|
}
|
|
1981
2043
|
};
|
|
1982
|
-
|
|
2044
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
1983
2045
|
function computed$1(getterOrOptions, debugOptions, isSSR = false) {
|
|
1984
2046
|
let getter;
|
|
1985
2047
|
let setter;
|
|
@@ -2051,25 +2113,26 @@ var WatcherEffect = class extends ReactiveEffect {
|
|
|
2051
2113
|
else if (/* @__PURE__ */ isReactive(s)) return reactiveGetter(s, deep);
|
|
2052
2114
|
else if (isFunction(s)) return call ? call(s, 2) : s();
|
|
2053
2115
|
});
|
|
2054
|
-
} else if (isFunction(source))
|
|
2055
|
-
|
|
2056
|
-
|
|
2057
|
-
|
|
2116
|
+
} else if (isFunction(source)) {
|
|
2117
|
+
if (cb) getter = call ? () => call(source, 2) : source;
|
|
2118
|
+
else getter = () => {
|
|
2119
|
+
if (this.cleanupsLength) {
|
|
2120
|
+
const prevSub = setActiveSub();
|
|
2121
|
+
try {
|
|
2122
|
+
cleanup(this);
|
|
2123
|
+
} finally {
|
|
2124
|
+
setActiveSub(prevSub);
|
|
2125
|
+
}
|
|
2126
|
+
}
|
|
2127
|
+
const currentEffect = activeWatcher;
|
|
2128
|
+
activeWatcher = this;
|
|
2058
2129
|
try {
|
|
2059
|
-
|
|
2130
|
+
return call ? call(source, 3, [this.boundCleanup]) : source(this.boundCleanup);
|
|
2060
2131
|
} finally {
|
|
2061
|
-
|
|
2132
|
+
activeWatcher = currentEffect;
|
|
2062
2133
|
}
|
|
2063
|
-
}
|
|
2064
|
-
|
|
2065
|
-
activeWatcher = this;
|
|
2066
|
-
try {
|
|
2067
|
-
return call ? call(source, 3, [this.boundCleanup]) : source(this.boundCleanup);
|
|
2068
|
-
} finally {
|
|
2069
|
-
activeWatcher = currentEffect;
|
|
2070
|
-
}
|
|
2071
|
-
};
|
|
2072
|
-
else getter = NOOP;
|
|
2134
|
+
};
|
|
2135
|
+
} else getter = NOOP;
|
|
2073
2136
|
if (cb && deep) {
|
|
2074
2137
|
const baseGetter = getter;
|
|
2075
2138
|
const depth = deep === true ? Infinity : deep;
|
|
@@ -2084,8 +2147,9 @@ var WatcherEffect = class extends ReactiveEffect {
|
|
|
2084
2147
|
if (once && cb) {
|
|
2085
2148
|
const _cb = cb;
|
|
2086
2149
|
cb = (...args) => {
|
|
2087
|
-
_cb(...args);
|
|
2150
|
+
const res = _cb(...args);
|
|
2088
2151
|
this.stop();
|
|
2152
|
+
return res;
|
|
2089
2153
|
};
|
|
2090
2154
|
}
|
|
2091
2155
|
this.cb = cb;
|
|
@@ -2097,7 +2161,7 @@ var WatcherEffect = class extends ReactiveEffect {
|
|
|
2097
2161
|
if (!this.cb) return;
|
|
2098
2162
|
const { immediate, deep, call } = this.options;
|
|
2099
2163
|
if (initialRun && !immediate) return;
|
|
2100
|
-
if (deep || this.forceTrigger || (this.isMultiSource ? newValue.some((v, i) => hasChanged(v, oldValue[i])) : hasChanged(newValue, oldValue))) {
|
|
2164
|
+
if (initialRun || deep || this.forceTrigger || (this.isMultiSource ? newValue.some((v, i) => hasChanged(v, oldValue[i])) : hasChanged(newValue, oldValue))) {
|
|
2101
2165
|
cleanup(this);
|
|
2102
2166
|
const currentWatcher = activeWatcher;
|
|
2103
2167
|
activeWatcher = this;
|
|
@@ -2281,7 +2345,7 @@ let currentFlushPromise = null;
|
|
|
2281
2345
|
let jobsLength = 0;
|
|
2282
2346
|
let flushIndex = 0;
|
|
2283
2347
|
let postFlushIndex = 0;
|
|
2284
|
-
const resolvedPromise =
|
|
2348
|
+
const resolvedPromise = /*@__PURE__*/ Promise.resolve();
|
|
2285
2349
|
function nextTick(fn) {
|
|
2286
2350
|
const p = currentFlushPromise || resolvedPromise;
|
|
2287
2351
|
return fn ? p.then(this ? fn.bind(this) : fn) : p;
|
|
@@ -2297,8 +2361,8 @@ function findInsertionIndex(order, queue, start, end) {
|
|
|
2297
2361
|
/**
|
|
2298
2362
|
* @internal for runtime-vapor only
|
|
2299
2363
|
*/
|
|
2300
|
-
function queueJob(job, id, isPre = false) {
|
|
2301
|
-
if (queueJobWorker(job, id === void 0 ? isPre ? -2 : Infinity : isPre ? id * 2 : id * 2 + 1, jobs, jobsLength, flushIndex)) {
|
|
2364
|
+
function queueJob(job, id, isPre = false, order = 0) {
|
|
2365
|
+
if (queueJobWorker(job, id === void 0 ? isPre ? -2 : Infinity : isPre ? id * 2 : order ? id * 2 + 1 + order / (order + 1) : id * 2 + 1, jobs, jobsLength, flushIndex)) {
|
|
2302
2366
|
jobsLength++;
|
|
2303
2367
|
queueFlush();
|
|
2304
2368
|
}
|
|
@@ -2319,6 +2383,7 @@ const doFlushJobs = () => {
|
|
|
2319
2383
|
flushJobs();
|
|
2320
2384
|
} catch (e) {
|
|
2321
2385
|
currentFlushPromise = null;
|
|
2386
|
+
if (jobsLength || postJobs.length) queueFlush();
|
|
2322
2387
|
throw e;
|
|
2323
2388
|
}
|
|
2324
2389
|
};
|
|
@@ -2326,9 +2391,10 @@ function queueFlush() {
|
|
|
2326
2391
|
if (!currentFlushPromise) currentFlushPromise = resolvedPromise.then(doFlushJobs);
|
|
2327
2392
|
}
|
|
2328
2393
|
function queuePostFlushCb(jobs, id = Infinity) {
|
|
2329
|
-
if (!isArray(jobs))
|
|
2330
|
-
|
|
2331
|
-
|
|
2394
|
+
if (!isArray(jobs)) {
|
|
2395
|
+
if (activePostJobs && id === -1) activePostJobs.splice(postFlushIndex, 0, jobs);
|
|
2396
|
+
else queueJobWorker(jobs, id, postJobs, postJobs.length, 0);
|
|
2397
|
+
} else for (let i = 0; i < jobs.length; i++) queueJobWorker(jobs[i], id, postJobs, postJobs.length, 0);
|
|
2332
2398
|
queueFlush();
|
|
2333
2399
|
}
|
|
2334
2400
|
function flushPreFlushCbs(instance, seen) {
|
|
@@ -2340,30 +2406,37 @@ function flushPreFlushCbs(instance, seen) {
|
|
|
2340
2406
|
i--;
|
|
2341
2407
|
jobsLength--;
|
|
2342
2408
|
if (cb.flags & 2) cb.flags &= -2;
|
|
2343
|
-
|
|
2344
|
-
|
|
2409
|
+
try {
|
|
2410
|
+
cb();
|
|
2411
|
+
} finally {
|
|
2412
|
+
if (!(cb.flags & 2)) cb.flags &= -2;
|
|
2413
|
+
}
|
|
2345
2414
|
}
|
|
2346
2415
|
}
|
|
2347
2416
|
function flushPostFlushCbs(seen) {
|
|
2348
2417
|
if (postJobs.length) {
|
|
2349
2418
|
if (activePostJobs) {
|
|
2350
|
-
activePostJobs.push(
|
|
2419
|
+
for (let i = 0; i < postJobs.length; i++) activePostJobs.push(postJobs[i]);
|
|
2351
2420
|
postJobs.length = 0;
|
|
2352
2421
|
return;
|
|
2353
2422
|
}
|
|
2354
2423
|
activePostJobs = postJobs;
|
|
2355
2424
|
postJobs = [];
|
|
2356
|
-
|
|
2357
|
-
|
|
2358
|
-
|
|
2359
|
-
|
|
2360
|
-
cb
|
|
2361
|
-
|
|
2362
|
-
|
|
2425
|
+
try {
|
|
2426
|
+
while (postFlushIndex < activePostJobs.length) {
|
|
2427
|
+
const cb = activePostJobs[postFlushIndex++];
|
|
2428
|
+
if (cb.flags & 2) cb.flags &= -2;
|
|
2429
|
+
if (!(cb.flags & 4)) try {
|
|
2430
|
+
cb();
|
|
2431
|
+
} finally {
|
|
2432
|
+
if (!(cb.flags & 2)) cb.flags &= -2;
|
|
2433
|
+
}
|
|
2363
2434
|
}
|
|
2435
|
+
} finally {
|
|
2436
|
+
while (postFlushIndex < activePostJobs.length) activePostJobs[postFlushIndex++].flags &= -2;
|
|
2437
|
+
activePostJobs = null;
|
|
2438
|
+
postFlushIndex = 0;
|
|
2364
2439
|
}
|
|
2365
|
-
activePostJobs = null;
|
|
2366
|
-
postFlushIndex = 0;
|
|
2367
2440
|
}
|
|
2368
2441
|
}
|
|
2369
2442
|
let isFlushing = false;
|
|
@@ -2373,9 +2446,12 @@ let isFlushing = false;
|
|
|
2373
2446
|
function flushOnAppMount(instance) {
|
|
2374
2447
|
if (!isFlushing) {
|
|
2375
2448
|
isFlushing = true;
|
|
2376
|
-
|
|
2377
|
-
|
|
2378
|
-
|
|
2449
|
+
try {
|
|
2450
|
+
flushPreFlushCbs(instance);
|
|
2451
|
+
flushPostFlushCbs();
|
|
2452
|
+
} finally {
|
|
2453
|
+
isFlushing = false;
|
|
2454
|
+
}
|
|
2379
2455
|
}
|
|
2380
2456
|
}
|
|
2381
2457
|
function flushJobs(seen) {
|
|
@@ -2401,9 +2477,10 @@ function flushJobs(seen) {
|
|
|
2401
2477
|
}
|
|
2402
2478
|
flushIndex = 0;
|
|
2403
2479
|
jobsLength = 0;
|
|
2480
|
+
jobs.length = 0;
|
|
2404
2481
|
flushPostFlushCbs(seen);
|
|
2405
|
-
currentFlushPromise = null;
|
|
2406
2482
|
if (jobsLength || postJobs.length) flushJobs(seen);
|
|
2483
|
+
else currentFlushPromise = null;
|
|
2407
2484
|
}
|
|
2408
2485
|
}
|
|
2409
2486
|
//#endregion
|
|
@@ -2492,7 +2569,7 @@ function checkCompatEnabled$1(key, instance, ...args) {
|
|
|
2492
2569
|
}
|
|
2493
2570
|
//#endregion
|
|
2494
2571
|
//#region packages/runtime-core/src/compat/instanceEventEmitter.ts
|
|
2495
|
-
const eventRegistryMap =
|
|
2572
|
+
const eventRegistryMap = /*@__PURE__*/ new WeakMap();
|
|
2496
2573
|
function getRegistry(instance) {
|
|
2497
2574
|
let events = eventRegistryMap.get(instance);
|
|
2498
2575
|
if (!events) eventRegistryMap.set(instance, events = Object.create(null));
|
|
@@ -2598,10 +2675,12 @@ function withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot) {
|
|
|
2598
2675
|
const renderFnWithContext = (...args) => {
|
|
2599
2676
|
if (renderFnWithContext._d) setBlockTracking(-1);
|
|
2600
2677
|
const prevInstance = setCurrentRenderingInstance(ctx);
|
|
2678
|
+
const prevStackSize = blockStack.length;
|
|
2601
2679
|
let res;
|
|
2602
2680
|
try {
|
|
2603
2681
|
res = fn(...args);
|
|
2604
2682
|
} finally {
|
|
2683
|
+
for (let i = blockStack.length; i > prevStackSize; i--) closeBlock();
|
|
2605
2684
|
setCurrentRenderingInstance(prevInstance);
|
|
2606
2685
|
if (renderFnWithContext._d) setBlockTracking(1);
|
|
2607
2686
|
}
|
|
@@ -2623,19 +2702,21 @@ const legacyDirectiveHookMap = {
|
|
|
2623
2702
|
};
|
|
2624
2703
|
function mapCompatDirectiveHook(name, dir, instance) {
|
|
2625
2704
|
const mappedName = legacyDirectiveHookMap[name];
|
|
2626
|
-
if (mappedName)
|
|
2627
|
-
|
|
2628
|
-
|
|
2629
|
-
|
|
2630
|
-
|
|
2631
|
-
|
|
2632
|
-
|
|
2633
|
-
|
|
2634
|
-
|
|
2635
|
-
|
|
2636
|
-
|
|
2637
|
-
|
|
2638
|
-
|
|
2705
|
+
if (mappedName) {
|
|
2706
|
+
if (isArray(mappedName)) {
|
|
2707
|
+
const hook = [];
|
|
2708
|
+
mappedName.forEach((mapped) => {
|
|
2709
|
+
const mappedHook = dir[mapped];
|
|
2710
|
+
if (mappedHook) {
|
|
2711
|
+
softAssertCompatEnabled("CUSTOM_DIR", instance, mapped, name);
|
|
2712
|
+
hook.push(mappedHook);
|
|
2713
|
+
}
|
|
2714
|
+
});
|
|
2715
|
+
return hook.length ? hook : void 0;
|
|
2716
|
+
} else {
|
|
2717
|
+
if (dir[mappedName]) softAssertCompatEnabled("CUSTOM_DIR", instance, mappedName, name);
|
|
2718
|
+
return dir[mappedName];
|
|
2719
|
+
}
|
|
2639
2720
|
}
|
|
2640
2721
|
}
|
|
2641
2722
|
//#endregion
|
|
@@ -2805,7 +2886,7 @@ function instanceWatch(source, value, options) {
|
|
|
2805
2886
|
}
|
|
2806
2887
|
const prev = setCurrentInstance(this);
|
|
2807
2888
|
const res = doWatch(getter, cb.bind(publicThis), options);
|
|
2808
|
-
|
|
2889
|
+
restoreCurrentInstance(prev);
|
|
2809
2890
|
return res;
|
|
2810
2891
|
}
|
|
2811
2892
|
function createPathGetter(ctx, path) {
|
|
@@ -2818,6 +2899,7 @@ function createPathGetter(ctx, path) {
|
|
|
2818
2899
|
}
|
|
2819
2900
|
//#endregion
|
|
2820
2901
|
//#region packages/runtime-core/src/components/Teleport.ts
|
|
2902
|
+
const pendingMounts = /* @__PURE__ */ new WeakMap();
|
|
2821
2903
|
const TeleportEndKey = Symbol("_vte");
|
|
2822
2904
|
const isTeleport = (type) => type.__isTeleport;
|
|
2823
2905
|
const isTeleportDisabled = (props) => props && (props.disabled || props.disabled === "");
|
|
@@ -2826,62 +2908,76 @@ const isTargetSVG = (target) => typeof SVGElement !== "undefined" && target inst
|
|
|
2826
2908
|
const isTargetMathML = (target) => typeof MathMLElement === "function" && target instanceof MathMLElement;
|
|
2827
2909
|
const resolveTarget = (props, select) => {
|
|
2828
2910
|
const targetSelector = props && props.to;
|
|
2829
|
-
if (isString(targetSelector))
|
|
2830
|
-
|
|
2831
|
-
|
|
2911
|
+
if (isString(targetSelector)) {
|
|
2912
|
+
if (!select) return null;
|
|
2913
|
+
else return select(targetSelector);
|
|
2914
|
+
} else return targetSelector;
|
|
2832
2915
|
};
|
|
2833
2916
|
const TeleportImpl = {
|
|
2834
2917
|
name: "Teleport",
|
|
2835
2918
|
__isTeleport: true,
|
|
2836
2919
|
process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, internals) {
|
|
2837
|
-
const { mc: mountChildren, pc: patchChildren, pbc: patchBlockChildren, o: { insert, querySelector, createText, createComment } } = internals;
|
|
2920
|
+
const { mc: mountChildren, pc: patchChildren, pbc: patchBlockChildren, o: { insert, querySelector, createText, createComment, parentNode } } = internals;
|
|
2838
2921
|
const disabled = isTeleportDisabled(n2.props);
|
|
2839
|
-
let {
|
|
2922
|
+
let { dynamicChildren } = n2;
|
|
2923
|
+
const mount = (vnode, container, anchor) => {
|
|
2924
|
+
if (vnode.shapeFlag & 16) mountChildren(vnode.children, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
|
|
2925
|
+
};
|
|
2926
|
+
const mountToTarget = (vnode = n2) => {
|
|
2927
|
+
const disabled = isTeleportDisabled(vnode.props);
|
|
2928
|
+
const target = vnode.target = resolveTarget(vnode.props, querySelector);
|
|
2929
|
+
const targetAnchor = prepareAnchor(target, vnode, createText, insert);
|
|
2930
|
+
if (target) {
|
|
2931
|
+
if (namespace !== "svg" && isTargetSVG(target)) namespace = "svg";
|
|
2932
|
+
else if (namespace !== "mathml" && isTargetMathML(target)) namespace = "mathml";
|
|
2933
|
+
if (parentComponent && parentComponent.isCE) (parentComponent.ce._teleportTargets || (parentComponent.ce._teleportTargets = /* @__PURE__ */ new Set())).add(target);
|
|
2934
|
+
if (!disabled) {
|
|
2935
|
+
mount(vnode, target, targetAnchor);
|
|
2936
|
+
updateCssVars(vnode, false);
|
|
2937
|
+
}
|
|
2938
|
+
}
|
|
2939
|
+
};
|
|
2940
|
+
const queuePendingMount = (vnode) => {
|
|
2941
|
+
const mountJob = () => {
|
|
2942
|
+
if (pendingMounts.get(vnode) !== mountJob) return;
|
|
2943
|
+
pendingMounts.delete(vnode);
|
|
2944
|
+
if (isTeleportDisabled(vnode.props)) {
|
|
2945
|
+
const mountContainer = parentNode(vnode.el) || container;
|
|
2946
|
+
mount(vnode, mountContainer, vnode.anchor);
|
|
2947
|
+
updateCssVars(vnode, true);
|
|
2948
|
+
}
|
|
2949
|
+
mountToTarget(vnode);
|
|
2950
|
+
};
|
|
2951
|
+
pendingMounts.set(vnode, mountJob);
|
|
2952
|
+
queuePostRenderEffect(mountJob, void 0, parentSuspense);
|
|
2953
|
+
};
|
|
2840
2954
|
if (n1 == null) {
|
|
2841
2955
|
const placeholder = n2.el = createText("");
|
|
2842
2956
|
const mainAnchor = n2.anchor = createText("");
|
|
2843
2957
|
insert(placeholder, container, anchor);
|
|
2844
2958
|
insert(mainAnchor, container, anchor);
|
|
2845
|
-
|
|
2846
|
-
|
|
2847
|
-
|
|
2848
|
-
|
|
2849
|
-
const target = n2.target = resolveTarget(n2.props, querySelector);
|
|
2850
|
-
const targetAnchor = prepareAnchor(target, n2, createText, insert);
|
|
2851
|
-
if (target) {
|
|
2852
|
-
if (namespace !== "svg" && isTargetSVG(target)) namespace = "svg";
|
|
2853
|
-
else if (namespace !== "mathml" && isTargetMathML(target)) namespace = "mathml";
|
|
2854
|
-
if (parentComponent && parentComponent.isCE) (parentComponent.ce._teleportTargets || (parentComponent.ce._teleportTargets = /* @__PURE__ */ new Set())).add(target);
|
|
2855
|
-
if (!disabled) {
|
|
2856
|
-
mount(target, targetAnchor);
|
|
2857
|
-
updateCssVars(n2, false);
|
|
2858
|
-
}
|
|
2859
|
-
}
|
|
2860
|
-
};
|
|
2959
|
+
if (isTeleportDeferred(n2.props) || parentSuspense && parentSuspense.pendingBranch) {
|
|
2960
|
+
queuePendingMount(n2);
|
|
2961
|
+
return;
|
|
2962
|
+
}
|
|
2861
2963
|
if (disabled) {
|
|
2862
|
-
mount(container, mainAnchor);
|
|
2964
|
+
mount(n2, container, mainAnchor);
|
|
2863
2965
|
updateCssVars(n2, true);
|
|
2864
2966
|
}
|
|
2865
|
-
|
|
2866
|
-
n2.el.__isMounted = false;
|
|
2867
|
-
queuePostRenderEffect(() => {
|
|
2868
|
-
if (n2.el.__isMounted !== false) return;
|
|
2869
|
-
mountToTarget();
|
|
2870
|
-
delete n2.el.__isMounted;
|
|
2871
|
-
}, void 0, parentSuspense);
|
|
2872
|
-
} else mountToTarget();
|
|
2967
|
+
mountToTarget();
|
|
2873
2968
|
} else {
|
|
2874
2969
|
n2.el = n1.el;
|
|
2875
|
-
n2.targetStart = n1.targetStart;
|
|
2876
2970
|
const mainAnchor = n2.anchor = n1.anchor;
|
|
2877
|
-
const
|
|
2878
|
-
|
|
2879
|
-
|
|
2880
|
-
|
|
2881
|
-
|
|
2882
|
-
}, void 0, parentSuspense);
|
|
2971
|
+
const pendingMount = pendingMounts.get(n1);
|
|
2972
|
+
if (pendingMount) {
|
|
2973
|
+
pendingMount.flags |= 4;
|
|
2974
|
+
pendingMounts.delete(n1);
|
|
2975
|
+
queuePendingMount(n2);
|
|
2883
2976
|
return;
|
|
2884
2977
|
}
|
|
2978
|
+
n2.targetStart = n1.targetStart;
|
|
2979
|
+
const target = n2.target = n1.target;
|
|
2980
|
+
const targetAnchor = n2.targetAnchor = n1.targetAnchor;
|
|
2885
2981
|
const wasDisabled = isTeleportDisabled(n1.props);
|
|
2886
2982
|
const currentContainer = wasDisabled ? container : target;
|
|
2887
2983
|
const currentAnchor = wasDisabled ? mainAnchor : targetAnchor;
|
|
@@ -2895,23 +2991,30 @@ const TeleportImpl = {
|
|
|
2895
2991
|
if (!wasDisabled) moveTeleport(n2, container, mainAnchor, internals, parentComponent, 1);
|
|
2896
2992
|
else if (n2.props && n1.props && n2.props.to !== n1.props.to) n2.props.to = n1.props.to;
|
|
2897
2993
|
} else if ((n2.props && n2.props.to) !== (n1.props && n1.props.to)) {
|
|
2898
|
-
const nextTarget =
|
|
2899
|
-
if (nextTarget)
|
|
2994
|
+
const nextTarget = resolveTarget(n2.props, querySelector);
|
|
2995
|
+
if (nextTarget) {
|
|
2996
|
+
n2.target = nextTarget;
|
|
2997
|
+
moveTeleport(n2, nextTarget, null, internals, parentComponent, 0);
|
|
2998
|
+
}
|
|
2900
2999
|
} else if (wasDisabled) moveTeleport(n2, target, targetAnchor, internals, parentComponent, 1);
|
|
2901
3000
|
updateCssVars(n2, disabled);
|
|
2902
3001
|
}
|
|
2903
3002
|
},
|
|
2904
3003
|
remove(vnode, parentComponent, parentSuspense, { um: unmount, o: { remove: hostRemove } }, doRemove) {
|
|
2905
|
-
const { shapeFlag, children, anchor, targetStart, targetAnchor, props } = vnode;
|
|
3004
|
+
const { shapeFlag, children, anchor, targetStart, targetAnchor, target, props } = vnode;
|
|
3005
|
+
const disabled = isTeleportDisabled(props);
|
|
3006
|
+
const shouldRemove = doRemove || !disabled;
|
|
3007
|
+
const pendingMount = pendingMounts.get(vnode);
|
|
3008
|
+
if (pendingMount) {
|
|
3009
|
+
pendingMount.flags |= 4;
|
|
3010
|
+
pendingMounts.delete(vnode);
|
|
3011
|
+
}
|
|
2906
3012
|
if (targetStart) hostRemove(targetStart);
|
|
2907
3013
|
if (targetAnchor) hostRemove(targetAnchor);
|
|
2908
3014
|
doRemove && hostRemove(anchor);
|
|
2909
|
-
if (shapeFlag & 16) {
|
|
2910
|
-
const
|
|
2911
|
-
|
|
2912
|
-
const child = children[i];
|
|
2913
|
-
unmount(child, parentComponent, parentSuspense, shouldRemove, !!child.dynamicChildren);
|
|
2914
|
-
}
|
|
3015
|
+
if (!pendingMount && (disabled || target) && shapeFlag & 16) for (let i = 0; i < children.length; i++) {
|
|
3016
|
+
const child = children[i];
|
|
3017
|
+
unmount(child, parentComponent, parentSuspense, shouldRemove, !!child.dynamicChildren);
|
|
2915
3018
|
}
|
|
2916
3019
|
},
|
|
2917
3020
|
move: moveTeleport,
|
|
@@ -2922,7 +3025,7 @@ function moveTeleport(vnode, container, parentAnchor, { o: { insert }, m: move }
|
|
|
2922
3025
|
const { el, anchor, shapeFlag, children, props } = vnode;
|
|
2923
3026
|
const isReorder = moveType === 2;
|
|
2924
3027
|
if (isReorder) insert(el, container, parentAnchor);
|
|
2925
|
-
if (!isReorder || isTeleportDisabled(props)) {
|
|
3028
|
+
if (!pendingMounts.has(vnode) && (!isReorder || isTeleportDisabled(props))) {
|
|
2926
3029
|
if (shapeFlag & 16) for (let i = 0; i < children.length; i++) move(children[i], container, parentAnchor, 2, parentComponent);
|
|
2927
3030
|
}
|
|
2928
3031
|
if (isReorder) insert(anchor, container, parentAnchor);
|
|
@@ -2949,15 +3052,17 @@ function hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScope
|
|
|
2949
3052
|
const disabled = isTeleportDisabled(vnode.props);
|
|
2950
3053
|
if (target) {
|
|
2951
3054
|
const targetNode = target._lpa || target.firstChild;
|
|
2952
|
-
if (vnode.shapeFlag & 16)
|
|
2953
|
-
|
|
2954
|
-
|
|
2955
|
-
|
|
2956
|
-
|
|
2957
|
-
|
|
2958
|
-
|
|
2959
|
-
|
|
2960
|
-
|
|
3055
|
+
if (vnode.shapeFlag & 16) {
|
|
3056
|
+
if (disabled) {
|
|
3057
|
+
hydrateDisabledTeleport(node, vnode);
|
|
3058
|
+
hydrateAnchor(target, targetNode);
|
|
3059
|
+
if (!vnode.targetAnchor) prepareAnchor(target, vnode, createText, insert, parentNode(node) === target ? node : null);
|
|
3060
|
+
} else {
|
|
3061
|
+
vnode.anchor = nextSibling(node);
|
|
3062
|
+
hydrateAnchor(target, targetNode);
|
|
3063
|
+
if (!vnode.targetAnchor) prepareAnchor(target, vnode, createText, insert);
|
|
3064
|
+
hydrateChildren(targetNode && nextSibling(targetNode), vnode, target, parentComponent, parentSuspense, slotScopeIds, optimized);
|
|
3065
|
+
}
|
|
2961
3066
|
}
|
|
2962
3067
|
updateCssVars(vnode, disabled);
|
|
2963
3068
|
} else if (disabled) {
|
|
@@ -3045,48 +3150,15 @@ const BaseTransitionImpl = {
|
|
|
3045
3150
|
setup(props, { slots }) {
|
|
3046
3151
|
const instance = getCurrentInstance();
|
|
3047
3152
|
const state = useTransitionState();
|
|
3153
|
+
let resumeAfterLeave;
|
|
3048
3154
|
return () => {
|
|
3049
|
-
const
|
|
3050
|
-
if (!
|
|
3051
|
-
const child = findNonCommentChild(children);
|
|
3155
|
+
const child = resolveTransitionChild(slots.default && slots.default(), !!instance.subTree);
|
|
3156
|
+
if (!child) return;
|
|
3052
3157
|
const rawProps = /* @__PURE__ */ toRaw(props);
|
|
3053
3158
|
const { mode } = rawProps;
|
|
3054
|
-
|
|
3055
|
-
|
|
3056
|
-
|
|
3057
|
-
let enterHooks = resolveTransitionHooks(innerChild, rawProps, state, instance, (hooks) => enterHooks = hooks);
|
|
3058
|
-
if (innerChild.type !== Comment) setTransitionHooks(innerChild, enterHooks);
|
|
3059
|
-
let oldInnerChild = instance.subTree && getInnerChild$1(instance.subTree);
|
|
3060
|
-
if (oldInnerChild && oldInnerChild.type !== Comment && !isSameVNodeType(oldInnerChild, innerChild) && recursiveGetSubtree(instance).type !== Comment) {
|
|
3061
|
-
let leavingHooks = resolveTransitionHooks(oldInnerChild, rawProps, state, instance);
|
|
3062
|
-
setTransitionHooks(oldInnerChild, leavingHooks);
|
|
3063
|
-
if (mode === "out-in" && innerChild.type !== Comment) {
|
|
3064
|
-
state.isLeaving = true;
|
|
3065
|
-
leavingHooks.afterLeave = () => {
|
|
3066
|
-
state.isLeaving = false;
|
|
3067
|
-
if (!(instance.job.flags & 4)) instance.update();
|
|
3068
|
-
delete leavingHooks.afterLeave;
|
|
3069
|
-
oldInnerChild = void 0;
|
|
3070
|
-
};
|
|
3071
|
-
return emptyPlaceholder(child);
|
|
3072
|
-
} else if (mode === "in-out" && innerChild.type !== Comment) leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => {
|
|
3073
|
-
const leavingVNodesCache = getLeavingNodesForType(state, oldInnerChild);
|
|
3074
|
-
leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild;
|
|
3075
|
-
el[leaveCbKey] = () => {
|
|
3076
|
-
earlyRemove();
|
|
3077
|
-
el[leaveCbKey] = void 0;
|
|
3078
|
-
delete enterHooks.delayedLeave;
|
|
3079
|
-
oldInnerChild = void 0;
|
|
3080
|
-
};
|
|
3081
|
-
enterHooks.delayedLeave = () => {
|
|
3082
|
-
delayedLeave();
|
|
3083
|
-
delete enterHooks.delayedLeave;
|
|
3084
|
-
oldInnerChild = void 0;
|
|
3085
|
-
};
|
|
3086
|
-
};
|
|
3087
|
-
else oldInnerChild = void 0;
|
|
3088
|
-
} else if (oldInnerChild) oldInnerChild = void 0;
|
|
3089
|
-
return child;
|
|
3159
|
+
return prepareTransitionSwitch(instance.subTree, child, rawProps, state, instance, mode === "out-in" ? resumeAfterLeave || (resumeAfterLeave = () => {
|
|
3160
|
+
if (!(instance.job.flags & 4)) instance.update();
|
|
3161
|
+
}) : NOOP);
|
|
3090
3162
|
};
|
|
3091
3163
|
}
|
|
3092
3164
|
};
|
|
@@ -3151,8 +3223,10 @@ function baseResolveTransitionHooks(context, props, state, instance) {
|
|
|
3151
3223
|
persisted,
|
|
3152
3224
|
beforeEnter(el) {
|
|
3153
3225
|
let hook = onBeforeEnter;
|
|
3154
|
-
if (!state.isMounted)
|
|
3155
|
-
|
|
3226
|
+
if (!state.isMounted) {
|
|
3227
|
+
if (appear) hook = onBeforeAppear || onBeforeEnter;
|
|
3228
|
+
else return;
|
|
3229
|
+
}
|
|
3156
3230
|
if (el[leaveCbKey]) el[leaveCbKey](true);
|
|
3157
3231
|
earlyRemove();
|
|
3158
3232
|
callHook(hook, [el]);
|
|
@@ -3162,11 +3236,13 @@ function baseResolveTransitionHooks(context, props, state, instance) {
|
|
|
3162
3236
|
let hook = onEnter;
|
|
3163
3237
|
let afterHook = onAfterEnter;
|
|
3164
3238
|
let cancelHook = onEnterCancelled;
|
|
3165
|
-
if (!state.isMounted)
|
|
3166
|
-
|
|
3167
|
-
|
|
3168
|
-
|
|
3169
|
-
|
|
3239
|
+
if (!state.isMounted) {
|
|
3240
|
+
if (appear) {
|
|
3241
|
+
hook = onAppear || onEnter;
|
|
3242
|
+
afterHook = onAfterAppear || onAfterEnter;
|
|
3243
|
+
cancelHook = onAppearCancelled || onEnterCancelled;
|
|
3244
|
+
} else return;
|
|
3245
|
+
}
|
|
3170
3246
|
let called = false;
|
|
3171
3247
|
el[enterCbKey$1] = (cancelled) => {
|
|
3172
3248
|
if (called) return;
|
|
@@ -3200,7 +3276,7 @@ function baseResolveTransitionHooks(context, props, state, instance) {
|
|
|
3200
3276
|
else done();
|
|
3201
3277
|
},
|
|
3202
3278
|
clone(node) {
|
|
3203
|
-
return cloneHooks(node);
|
|
3279
|
+
return cloneHooks ? cloneHooks(node) : hooks;
|
|
3204
3280
|
}
|
|
3205
3281
|
};
|
|
3206
3282
|
return hooks;
|
|
@@ -3224,16 +3300,91 @@ function getInnerChild$1(vnode) {
|
|
|
3224
3300
|
if (shapeFlag & 32 && isFunction(children.default)) return children.default();
|
|
3225
3301
|
}
|
|
3226
3302
|
}
|
|
3303
|
+
function resolveTransitionChild(children, renderEmpty = false) {
|
|
3304
|
+
const branches = children && getTransitionRawChildren(children, true);
|
|
3305
|
+
return branches && branches.length ? findNonCommentChild(branches) : renderEmpty ? createCommentVNode() : void 0;
|
|
3306
|
+
}
|
|
3307
|
+
/**
|
|
3308
|
+
* @internal
|
|
3309
|
+
*/
|
|
3310
|
+
function prepareTransitionSwitch(previous, next, props, state, instance, resumeAfterLeave, delayedLeaveSource) {
|
|
3311
|
+
if (state.isLeaving) return emptyPlaceholder(next);
|
|
3312
|
+
const nextInner = getInnerChild$1(next);
|
|
3313
|
+
if (!nextInner) return emptyPlaceholder(next);
|
|
3314
|
+
let enterHooks = resolveTransitionHooks(nextInner, props, state, instance, (hooks) => {
|
|
3315
|
+
if (delayedLeaveSource) forwardDelayedLeave(hooks, delayedLeaveSource);
|
|
3316
|
+
enterHooks = hooks;
|
|
3317
|
+
});
|
|
3318
|
+
if (delayedLeaveSource) forwardDelayedLeave(enterHooks, delayedLeaveSource);
|
|
3319
|
+
if (nextInner.type !== Comment) setTransitionHooks(nextInner, enterHooks);
|
|
3320
|
+
const mode = props.mode;
|
|
3321
|
+
const previousInner = previous && getInnerChild$1(previous);
|
|
3322
|
+
if (previous && previousInner && previousInner.type !== Comment && !isSameVNodeType(previousInner, nextInner) && (!previous.component || recursiveGetSubtree(previous.component).type !== Comment)) {
|
|
3323
|
+
const leavingHooks = prepareLeavingTransitionHooks(previousInner, props, state, instance);
|
|
3324
|
+
if (nextInner.type !== Comment && (mode === "out-in" || mode === "in-out") && applyTransitionModeSwitch(previousInner, leavingHooks, mode === "in-out" ? () => enterHooks : void 0, props, state, resumeAfterLeave)) return emptyPlaceholder(next);
|
|
3325
|
+
}
|
|
3326
|
+
return next;
|
|
3327
|
+
}
|
|
3328
|
+
function forwardDelayedLeave(hooks, source) {
|
|
3329
|
+
const delayedLeave = source && source.delayedLeave;
|
|
3330
|
+
if (!delayedLeave) return;
|
|
3331
|
+
hooks.delayedLeave = () => {
|
|
3332
|
+
if (source.delayedLeave === delayedLeave) delayedLeave();
|
|
3333
|
+
delete hooks.delayedLeave;
|
|
3334
|
+
};
|
|
3335
|
+
}
|
|
3336
|
+
function prepareLeavingTransitionHooks(previousInner, props, state, instance) {
|
|
3337
|
+
return setTransitionHooks(previousInner, resolveTransitionHooks(previousInner, props, state, instance));
|
|
3338
|
+
}
|
|
3339
|
+
function applyTransitionModeSwitch(leavingVNode, leavingHooks, getEnterHooks, props, state, resumeAfterLeave) {
|
|
3340
|
+
if (props.mode === "out-in") {
|
|
3341
|
+
state.isLeaving = true;
|
|
3342
|
+
leavingHooks.afterLeave = () => {
|
|
3343
|
+
state.isLeaving = false;
|
|
3344
|
+
resumeAfterLeave();
|
|
3345
|
+
delete leavingHooks.afterLeave;
|
|
3346
|
+
};
|
|
3347
|
+
return true;
|
|
3348
|
+
} else if (props.mode === "in-out" && getEnterHooks) {
|
|
3349
|
+
let delayedLeavingVNode = leavingVNode;
|
|
3350
|
+
leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => {
|
|
3351
|
+
const enterHooks = getEnterHooks();
|
|
3352
|
+
if (!enterHooks) {
|
|
3353
|
+
delayedLeave();
|
|
3354
|
+
return;
|
|
3355
|
+
}
|
|
3356
|
+
const vnode = delayedLeavingVNode;
|
|
3357
|
+
const leavingVNodesCache = getLeavingNodesForType(state, vnode);
|
|
3358
|
+
leavingVNodesCache[String(vnode.key)] = vnode;
|
|
3359
|
+
el[leaveCbKey] = () => {
|
|
3360
|
+
earlyRemove();
|
|
3361
|
+
el[leaveCbKey] = void 0;
|
|
3362
|
+
delete enterHooks.delayedLeave;
|
|
3363
|
+
delayedLeavingVNode = void 0;
|
|
3364
|
+
};
|
|
3365
|
+
enterHooks.delayedLeave = () => {
|
|
3366
|
+
delayedLeave();
|
|
3367
|
+
delete enterHooks.delayedLeave;
|
|
3368
|
+
delayedLeavingVNode = void 0;
|
|
3369
|
+
};
|
|
3370
|
+
};
|
|
3371
|
+
}
|
|
3372
|
+
return false;
|
|
3373
|
+
}
|
|
3227
3374
|
function setTransitionHooks(vnode, hooks) {
|
|
3228
|
-
if (vnode.shapeFlag & 6 && vnode.component)
|
|
3229
|
-
else {
|
|
3375
|
+
if (vnode.shapeFlag & 6 && vnode.component) {
|
|
3230
3376
|
vnode.transition = hooks;
|
|
3231
|
-
setTransitionHooks(vnode.component
|
|
3232
|
-
|
|
3233
|
-
|
|
3234
|
-
|
|
3235
|
-
|
|
3377
|
+
if (isVaporComponent(vnode.type)) getVaporInterface(vnode.component, vnode).setTransitionHooks(vnode.component, hooks);
|
|
3378
|
+
else {
|
|
3379
|
+
const subTree = vnode.component.subTree;
|
|
3380
|
+
return setTransitionHooks(isTeleport(subTree.type) ? getInnerChild$1(subTree) || subTree : subTree, hooks);
|
|
3381
|
+
}
|
|
3382
|
+
} else if (vnode.shapeFlag & 128) {
|
|
3383
|
+
const contentHooks = vnode.ssContent.transition = hooks.clone(vnode.ssContent);
|
|
3384
|
+
const fallbackHooks = vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);
|
|
3385
|
+
return vnode.suspense && vnode.suspense.activeBranch === vnode.ssFallback ? fallbackHooks : contentHooks;
|
|
3236
3386
|
} else vnode.transition = hooks;
|
|
3387
|
+
return hooks;
|
|
3237
3388
|
}
|
|
3238
3389
|
function getTransitionRawChildren(children, keepComment = false, parentKey) {
|
|
3239
3390
|
let ret = [];
|
|
@@ -3251,9 +3402,9 @@ function getTransitionRawChildren(children, keepComment = false, parentKey) {
|
|
|
3251
3402
|
}
|
|
3252
3403
|
//#endregion
|
|
3253
3404
|
//#region packages/runtime-core/src/apiDefineComponent.ts
|
|
3254
|
-
|
|
3405
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
3255
3406
|
function defineComponent(options, extraOptions) {
|
|
3256
|
-
return isFunction(options) ? extend({ name: options.name }, extraOptions, { setup: options }) : options;
|
|
3407
|
+
return isFunction(options) ? /*@__PURE__*/ (() => extend({ name: options.name }, extraOptions, { setup: options }))() : options;
|
|
3257
3408
|
}
|
|
3258
3409
|
//#endregion
|
|
3259
3410
|
//#region packages/runtime-core/src/helpers/useId.ts
|
|
@@ -3340,15 +3491,16 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
|
|
|
3340
3491
|
if (rawRef.f) {
|
|
3341
3492
|
const existing = _isString ? canSetSetupRef(ref) ? setupState[ref] : refs[ref] : canSetRef(ref) || !rawRef.k ? ref.value : refs[rawRef.k];
|
|
3342
3493
|
if (isUnmount) isArray(existing) && remove(existing, refValue);
|
|
3343
|
-
else if (!isArray(existing))
|
|
3344
|
-
|
|
3345
|
-
|
|
3346
|
-
|
|
3347
|
-
|
|
3348
|
-
|
|
3349
|
-
|
|
3350
|
-
|
|
3351
|
-
|
|
3494
|
+
else if (!isArray(existing)) {
|
|
3495
|
+
if (_isString) {
|
|
3496
|
+
refs[ref] = [refValue];
|
|
3497
|
+
if (canSetSetupRef(ref)) setupState[ref] = refs[ref];
|
|
3498
|
+
} else {
|
|
3499
|
+
const newVal = [refValue];
|
|
3500
|
+
if (canSetRef(ref, rawRef.k)) ref.value = newVal;
|
|
3501
|
+
if (rawRef.k) refs[rawRef.k] = newVal;
|
|
3502
|
+
}
|
|
3503
|
+
} else if (!existing.includes(refValue)) existing.push(refValue);
|
|
3352
3504
|
} else if (_isString) {
|
|
3353
3505
|
refs[ref] = value;
|
|
3354
3506
|
if (canSetSetupRef(ref)) setupState[ref] = value;
|
|
@@ -3398,7 +3550,18 @@ const logMismatchError = () => {
|
|
|
3398
3550
|
hasLoggedMismatchError = true;
|
|
3399
3551
|
};
|
|
3400
3552
|
const isSVGContainer = (container) => container.namespaceURI.includes("svg") && container.tagName !== "foreignObject";
|
|
3401
|
-
const isMathMLContainer = (container) =>
|
|
3553
|
+
const isMathMLContainer = (container) => {
|
|
3554
|
+
if (!container.namespaceURI.includes("MathML")) return false;
|
|
3555
|
+
if (container.tagName !== "annotation-xml") return true;
|
|
3556
|
+
const encoding = container.getAttribute("encoding");
|
|
3557
|
+
return !encoding || !encoding.includes("html");
|
|
3558
|
+
};
|
|
3559
|
+
/**
|
|
3560
|
+
* Resolve the element namespace a container's children should be created in.
|
|
3561
|
+
* The live DOM is the source of truth, so this also covers containers that are
|
|
3562
|
+
* only known at runtime (interop boundaries, teleport targets).
|
|
3563
|
+
* @internal
|
|
3564
|
+
*/
|
|
3402
3565
|
const getContainerType = (container) => {
|
|
3403
3566
|
if (container.nodeType !== 1) return void 0;
|
|
3404
3567
|
if (isSVGContainer(container)) return "svg";
|
|
@@ -3421,7 +3584,7 @@ function createHydrationFunctions(rendererInternals) {
|
|
|
3421
3584
|
};
|
|
3422
3585
|
const hydrateNode = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized = false) => {
|
|
3423
3586
|
optimized = optimized || !!vnode.dynamicChildren;
|
|
3424
|
-
const isFragmentStart = isComment(node) && node.data === "[";
|
|
3587
|
+
const isFragmentStart = isComment(node) && (node.data === "[" || node.data === "(");
|
|
3425
3588
|
const onMismatch = () => handleMismatch(node, vnode, parentComponent, parentSuspense, slotScopeIds, isFragmentStart);
|
|
3426
3589
|
const { type, ref, shapeFlag, patchFlag } = vnode;
|
|
3427
3590
|
let domType = node.nodeType;
|
|
@@ -3433,11 +3596,12 @@ function createHydrationFunctions(rendererInternals) {
|
|
|
3433
3596
|
let nextNode = null;
|
|
3434
3597
|
switch (type) {
|
|
3435
3598
|
case Text:
|
|
3436
|
-
if (domType !== 3)
|
|
3437
|
-
|
|
3438
|
-
|
|
3439
|
-
|
|
3440
|
-
|
|
3599
|
+
if (domType !== 3) {
|
|
3600
|
+
if (vnode.children === "") {
|
|
3601
|
+
insert(vnode.el = createText(""), parentNode(node), node);
|
|
3602
|
+
nextNode = node;
|
|
3603
|
+
} else nextNode = onMismatch();
|
|
3604
|
+
} else {
|
|
3441
3605
|
if (node.data !== vnode.children) {
|
|
3442
3606
|
logMismatchError();
|
|
3443
3607
|
node.data = vnode.children;
|
|
@@ -3473,39 +3637,45 @@ function createHydrationFunctions(rendererInternals) {
|
|
|
3473
3637
|
else nextNode = hydrateFragment(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized);
|
|
3474
3638
|
break;
|
|
3475
3639
|
case VaporSlot:
|
|
3476
|
-
nextNode = getVaporInterface(parentComponent, vnode).hydrateSlot(vnode, node);
|
|
3640
|
+
nextNode = getVaporInterface(parentComponent, vnode).hydrateSlot(vnode, node, parentComponent, parentSuspense, slotScopeIds);
|
|
3477
3641
|
break;
|
|
3478
|
-
default: if (shapeFlag & 1)
|
|
3479
|
-
|
|
3480
|
-
|
|
3642
|
+
default: if (shapeFlag & 1) {
|
|
3643
|
+
if ((domType !== 1 || vnode.type.toLowerCase() !== node.tagName.toLowerCase()) && !isTemplateNode$1(node)) nextNode = onMismatch();
|
|
3644
|
+
else nextNode = hydrateElement(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized);
|
|
3645
|
+
} else if (shapeFlag & 6) {
|
|
3481
3646
|
vnode.slotScopeIds = slotScopeIds;
|
|
3482
3647
|
const container = parentNode(node);
|
|
3483
3648
|
if (isFragmentStart) nextNode = locateClosingAnchor(node);
|
|
3484
3649
|
else if (isComment(node) && node.data === "teleport start") nextNode = locateClosingAnchor(node, node.data, "teleport end");
|
|
3485
3650
|
else nextNode = nextSibling(node);
|
|
3486
|
-
if (vnode.type.__vapor) getVaporInterface(parentComponent, vnode).hydrate(vnode, node, container,
|
|
3487
|
-
else
|
|
3488
|
-
|
|
3489
|
-
|
|
3490
|
-
if (
|
|
3491
|
-
subTree
|
|
3492
|
-
|
|
3493
|
-
|
|
3494
|
-
|
|
3495
|
-
|
|
3651
|
+
if (vnode.type.__vapor) getVaporInterface(parentComponent, vnode).hydrate(vnode, node, container, nextNode, parentComponent, parentSuspense);
|
|
3652
|
+
else {
|
|
3653
|
+
mountComponent(vnode, container, null, parentComponent, parentSuspense, getContainerType(container), optimized);
|
|
3654
|
+
const component = vnode.component;
|
|
3655
|
+
if (!component.subTree && (isAsyncWrapper(vnode) || component.asyncDep)) {
|
|
3656
|
+
let subTree;
|
|
3657
|
+
if (isFragmentStart) {
|
|
3658
|
+
subTree = createVNode(Static);
|
|
3659
|
+
subTree.anchor = nextNode ? nextNode.previousSibling : container.lastChild;
|
|
3660
|
+
} else subTree = node.nodeType === 3 ? createTextVNode("") : createVNode(node.nodeType === 8 ? Comment : "div");
|
|
3661
|
+
subTree.el = node;
|
|
3662
|
+
component.subTree = subTree;
|
|
3663
|
+
}
|
|
3496
3664
|
}
|
|
3497
|
-
} else if (shapeFlag & 64)
|
|
3498
|
-
|
|
3499
|
-
|
|
3665
|
+
} else if (shapeFlag & 64) {
|
|
3666
|
+
if (domType !== 8) nextNode = onMismatch();
|
|
3667
|
+
else nextNode = vnode.type.hydrate(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized, rendererInternals, hydrateChildren);
|
|
3668
|
+
} else if (shapeFlag & 128) nextNode = vnode.type.hydrate(node, vnode, parentComponent, parentSuspense, getContainerType(parentNode(node)), slotScopeIds, optimized, rendererInternals, hydrateNode);
|
|
3500
3669
|
}
|
|
3501
3670
|
if (ref != null) setRef(ref, null, parentSuspense, vnode);
|
|
3502
3671
|
return nextNode;
|
|
3503
3672
|
};
|
|
3504
3673
|
const hydrateElement = (el, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => {
|
|
3505
3674
|
optimized = optimized || !!vnode.dynamicChildren;
|
|
3506
|
-
const { type, props, patchFlag, shapeFlag, dirs, transition } = vnode;
|
|
3675
|
+
const { type, dynamicProps, props, patchFlag, shapeFlag, dirs, transition } = vnode;
|
|
3507
3676
|
const forcePatch = type === "input" || type === "option";
|
|
3508
|
-
|
|
3677
|
+
const hasDynamicProps = !!dynamicProps;
|
|
3678
|
+
if (forcePatch || hasDynamicProps || patchFlag !== -1) {
|
|
3509
3679
|
if (dirs) invokeDirectiveHook(vnode, null, parentComponent, "created");
|
|
3510
3680
|
let needCallTransitionHooks = false;
|
|
3511
3681
|
if (isTemplateNode$1(el)) {
|
|
@@ -3521,8 +3691,8 @@ function createHydrationFunctions(rendererInternals) {
|
|
|
3521
3691
|
}
|
|
3522
3692
|
if (shapeFlag & 16 && !(props && (props.innerHTML || props.textContent))) {
|
|
3523
3693
|
let next = hydrateChildren(el.firstChild, vnode, el, parentComponent, parentSuspense, slotScopeIds, optimized);
|
|
3694
|
+
if (next && !isMismatchAllowed(el, 1)) logMismatchError();
|
|
3524
3695
|
while (next) {
|
|
3525
|
-
if (!isMismatchAllowed(el, 1)) logMismatchError();
|
|
3526
3696
|
const cur = next;
|
|
3527
3697
|
next = next.nextSibling;
|
|
3528
3698
|
remove(cur);
|
|
@@ -3537,9 +3707,13 @@ function createHydrationFunctions(rendererInternals) {
|
|
|
3537
3707
|
}
|
|
3538
3708
|
}
|
|
3539
3709
|
if (props) {
|
|
3540
|
-
if (forcePatch || !optimized || patchFlag & 48) {
|
|
3710
|
+
if (forcePatch || hasDynamicProps || !optimized || patchFlag & 48) {
|
|
3541
3711
|
const isCustomElement = el.tagName.includes("-");
|
|
3542
|
-
|
|
3712
|
+
const namespace = el.namespaceURI.includes("svg") ? "svg" : el.namespaceURI.includes("MathML") ? "mathml" : void 0;
|
|
3713
|
+
for (const key in props) if (forcePatch && (key.endsWith("value") || key === "indeterminate") || isOn(key) && !isReservedProp(key) || key[0] === "." || isCustomElement && !isReservedProp(key) || dynamicProps && dynamicProps.includes(key)) {
|
|
3714
|
+
if (isUnchangedResourceProp(el, key, props[key])) continue;
|
|
3715
|
+
patchProp(el, key, null, props[key], namespace, parentComponent);
|
|
3716
|
+
}
|
|
3543
3717
|
} else if (props.onClick) patchProp(el, "onClick", null, props.onClick, void 0, parentComponent);
|
|
3544
3718
|
else if (patchFlag & 4 && /* @__PURE__ */ isReactive(props.style)) for (const key in props.style) props.style[key];
|
|
3545
3719
|
}
|
|
@@ -3558,6 +3732,7 @@ function createHydrationFunctions(rendererInternals) {
|
|
|
3558
3732
|
optimized = optimized || !!parentVNode.dynamicChildren;
|
|
3559
3733
|
const children = parentVNode.children;
|
|
3560
3734
|
const l = children.length;
|
|
3735
|
+
let hasCheckedMismatch = false;
|
|
3561
3736
|
for (let i = 0; i < l; i++) {
|
|
3562
3737
|
const vnode = optimized ? children[i] : children[i] = normalizeVNode(children[i]);
|
|
3563
3738
|
const isText = vnode.type === Text;
|
|
@@ -3571,7 +3746,10 @@ function createHydrationFunctions(rendererInternals) {
|
|
|
3571
3746
|
node = hydrateNode(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized);
|
|
3572
3747
|
} else if (isText && !vnode.children) insert(vnode.el = createText(""), container);
|
|
3573
3748
|
else {
|
|
3574
|
-
if (!
|
|
3749
|
+
if (!hasCheckedMismatch) {
|
|
3750
|
+
hasCheckedMismatch = true;
|
|
3751
|
+
if (!isMismatchAllowed(container, 1)) logMismatchError();
|
|
3752
|
+
}
|
|
3575
3753
|
patch(null, vnode, container, null, parentComponent, parentSuspense, getContainerType(container), slotScopeIds);
|
|
3576
3754
|
}
|
|
3577
3755
|
}
|
|
@@ -3581,8 +3759,9 @@ function createHydrationFunctions(rendererInternals) {
|
|
|
3581
3759
|
const { slotScopeIds: fragmentSlotScopeIds } = vnode;
|
|
3582
3760
|
if (fragmentSlotScopeIds) slotScopeIds = slotScopeIds ? slotScopeIds.concat(fragmentSlotScopeIds) : fragmentSlotScopeIds;
|
|
3583
3761
|
const container = parentNode(node);
|
|
3584
|
-
const
|
|
3585
|
-
|
|
3762
|
+
const first = nextSibling(node);
|
|
3763
|
+
const next = vnode.vo && node.data === "(" ? getVaporInterface(parentComponent, vnode).hydrateSlotOutlet(vnode, node, parentComponent, parentSuspense, slotScopeIds) : hydrateChildren(first, vnode, container, parentComponent, parentSuspense, slotScopeIds, optimized);
|
|
3764
|
+
if (next && isComment(next) && next.data === (node.data === "(" ? ")" : "]")) return nextSibling(vnode.anchor = next);
|
|
3586
3765
|
else {
|
|
3587
3766
|
logMismatchError();
|
|
3588
3767
|
insert(vnode.anchor = createComment(`]`), container, next);
|
|
@@ -3590,7 +3769,7 @@ function createHydrationFunctions(rendererInternals) {
|
|
|
3590
3769
|
}
|
|
3591
3770
|
};
|
|
3592
3771
|
const handleMismatch = (node, vnode, parentComponent, parentSuspense, slotScopeIds, isFragment) => {
|
|
3593
|
-
if (!
|
|
3772
|
+
if (!isNodeMismatchAllowed(node, vnode)) logMismatchError();
|
|
3594
3773
|
vnode.el = null;
|
|
3595
3774
|
if (isFragment) {
|
|
3596
3775
|
const end = locateClosingAnchor(node);
|
|
@@ -3604,20 +3783,22 @@ function createHydrationFunctions(rendererInternals) {
|
|
|
3604
3783
|
const container = parentNode(node);
|
|
3605
3784
|
remove(node);
|
|
3606
3785
|
patch(null, vnode, container, next, parentComponent, parentSuspense, getContainerType(container), slotScopeIds);
|
|
3607
|
-
if (parentComponent) {
|
|
3786
|
+
if (parentComponent && parentComponent.vnode) {
|
|
3608
3787
|
parentComponent.vnode.el = vnode.el;
|
|
3609
3788
|
updateHOCHostEl(parentComponent, vnode.el);
|
|
3610
3789
|
}
|
|
3611
3790
|
return next;
|
|
3612
3791
|
};
|
|
3613
|
-
const locateClosingAnchor = (node, open = "[", close = "]") => {
|
|
3792
|
+
const locateClosingAnchor = (node, open = node && isComment(node) && node.data === "(" ? "(" : "[", close = open === "(" ? ")" : "]") => {
|
|
3614
3793
|
let match = 0;
|
|
3615
3794
|
while (node) {
|
|
3616
3795
|
node = nextSibling(node);
|
|
3617
3796
|
if (node && isComment(node)) {
|
|
3618
3797
|
if (node.data === open) match++;
|
|
3619
|
-
if (node.data === close)
|
|
3620
|
-
|
|
3798
|
+
if (node.data === close) {
|
|
3799
|
+
if (match === 0) return nextSibling(node);
|
|
3800
|
+
else match--;
|
|
3801
|
+
}
|
|
3621
3802
|
}
|
|
3622
3803
|
}
|
|
3623
3804
|
return node;
|
|
@@ -3627,7 +3808,7 @@ function createHydrationFunctions(rendererInternals) {
|
|
|
3627
3808
|
if (parentNode) parentNode.replaceChild(newNode, oldNode);
|
|
3628
3809
|
let parent = parentComponent;
|
|
3629
3810
|
while (parent) {
|
|
3630
|
-
if (parent.vnode.el === oldNode) parent.vnode.el = parent.subTree.el = newNode;
|
|
3811
|
+
if (parent.vnode && parent.vnode.el === oldNode) parent.vnode.el = parent.subTree.el = newNode;
|
|
3631
3812
|
parent = parent.parent;
|
|
3632
3813
|
}
|
|
3633
3814
|
};
|
|
@@ -3636,6 +3817,16 @@ function createHydrationFunctions(rendererInternals) {
|
|
|
3636
3817
|
const isTemplateNode$1 = (node) => {
|
|
3637
3818
|
return node.nodeType === 1 && node.tagName === "TEMPLATE";
|
|
3638
3819
|
};
|
|
3820
|
+
const resourceProps = /*@__PURE__*/ new Set([
|
|
3821
|
+
"src",
|
|
3822
|
+
"srcset",
|
|
3823
|
+
"href",
|
|
3824
|
+
"poster"
|
|
3825
|
+
]);
|
|
3826
|
+
function isUnchangedResourceProp(el, key, clientValue) {
|
|
3827
|
+
if (!resourceProps.has(key)) return false;
|
|
3828
|
+
return el.getAttribute(key) === (clientValue == null ? null : `${clientValue}`);
|
|
3829
|
+
}
|
|
3639
3830
|
const allowMismatchAttr = "data-allow-mismatch";
|
|
3640
3831
|
const MismatchTypeString = {
|
|
3641
3832
|
[0]: "text",
|
|
@@ -3646,7 +3837,9 @@ const MismatchTypeString = {
|
|
|
3646
3837
|
};
|
|
3647
3838
|
function isMismatchAllowed(el, allowedType) {
|
|
3648
3839
|
if (allowedType === 0 || allowedType === 1) while (el && !el.hasAttribute(allowMismatchAttr)) el = el.parentElement;
|
|
3649
|
-
|
|
3840
|
+
return isMismatchAllowedByAttr(el && el.getAttribute(allowMismatchAttr), allowedType);
|
|
3841
|
+
}
|
|
3842
|
+
function isMismatchAllowedByAttr(allowedAttr, allowedType) {
|
|
3650
3843
|
if (allowedAttr == null) return false;
|
|
3651
3844
|
else if (allowedAttr === "") return true;
|
|
3652
3845
|
else {
|
|
@@ -3655,6 +3848,16 @@ function isMismatchAllowed(el, allowedType) {
|
|
|
3655
3848
|
return list.includes(MismatchTypeString[allowedType]);
|
|
3656
3849
|
}
|
|
3657
3850
|
}
|
|
3851
|
+
function isNodeMismatchAllowed(node, vnode) {
|
|
3852
|
+
return isMismatchAllowed(node.parentElement, 1) || isMismatchAllowedByNode(node) || isMismatchAllowedByVNode(vnode);
|
|
3853
|
+
}
|
|
3854
|
+
function isMismatchAllowedByNode(node) {
|
|
3855
|
+
return node.nodeType === 1 && isMismatchAllowedByAttr(node.getAttribute(allowMismatchAttr), 1);
|
|
3856
|
+
}
|
|
3857
|
+
function isMismatchAllowedByVNode({ props }) {
|
|
3858
|
+
const allowedAttr = props && props[allowMismatchAttr];
|
|
3859
|
+
return typeof allowedAttr === "string" && isMismatchAllowedByAttr(allowedAttr, 1);
|
|
3860
|
+
}
|
|
3658
3861
|
//#endregion
|
|
3659
3862
|
//#region packages/runtime-core/src/hydrationStrategies.ts
|
|
3660
3863
|
let requestIdleCallback;
|
|
@@ -3728,16 +3931,18 @@ const hydrateOnInteraction = (interactions = []) => (hydrate, forEach) => {
|
|
|
3728
3931
|
return teardown;
|
|
3729
3932
|
};
|
|
3730
3933
|
function forEachElement(node, cb) {
|
|
3731
|
-
if (isComment(node) && node.data === "[") {
|
|
3934
|
+
if (isComment(node) && (node.data === "[" || node.data === "(")) {
|
|
3935
|
+
const open = node.data;
|
|
3936
|
+
const close = open === "[" ? "]" : ")";
|
|
3732
3937
|
let depth = 1;
|
|
3733
3938
|
let next = node.nextSibling;
|
|
3734
3939
|
while (next) {
|
|
3735
3940
|
if (next.nodeType === 1) {
|
|
3736
3941
|
if (cb(next) === false) break;
|
|
3737
3942
|
} else if (isComment(next)) {
|
|
3738
|
-
if (next.data ===
|
|
3943
|
+
if (next.data === close) {
|
|
3739
3944
|
if (--depth === 0) break;
|
|
3740
|
-
} else if (next.data ===
|
|
3945
|
+
} else if (next.data === open) depth++;
|
|
3741
3946
|
}
|
|
3742
3947
|
next = next.nextSibling;
|
|
3743
3948
|
}
|
|
@@ -3746,14 +3951,14 @@ function forEachElement(node, cb) {
|
|
|
3746
3951
|
//#endregion
|
|
3747
3952
|
//#region packages/runtime-core/src/apiAsyncComponent.ts
|
|
3748
3953
|
const isAsyncWrapper = (i) => !!i.type.__asyncLoader;
|
|
3749
|
-
|
|
3954
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
3750
3955
|
function defineAsyncComponent(source) {
|
|
3751
3956
|
const { load, getResolvedComp, setPendingRequest, source: { loadingComponent, errorComponent, delay, hydrate: hydrateStrategy, timeout, suspensible = true } } = createAsyncComponentContext(source);
|
|
3752
3957
|
return /* @__PURE__ */ defineComponent({
|
|
3753
3958
|
name: "AsyncComponentWrapper",
|
|
3754
3959
|
__asyncLoader: load,
|
|
3755
3960
|
__asyncHydrate(el, instance, hydrate) {
|
|
3756
|
-
performAsyncHydrate(el, instance, hydrate, getResolvedComp, load, hydrateStrategy);
|
|
3961
|
+
performAsyncHydrate(el, instance, hydrate, getResolvedComp, load, hydrateStrategy, true);
|
|
3757
3962
|
},
|
|
3758
3963
|
get __asyncResolved() {
|
|
3759
3964
|
return getResolvedComp();
|
|
@@ -3773,11 +3978,16 @@ function defineAsyncComponent(source) {
|
|
|
3773
3978
|
onError(err);
|
|
3774
3979
|
return () => errorComponent ? createVNode(errorComponent, { error: err }) : null;
|
|
3775
3980
|
});
|
|
3776
|
-
const { loaded, error, delayed } = useAsyncComponentState(delay, timeout, onError);
|
|
3981
|
+
const { loaded, error, delayed } = useAsyncComponentState(delay, timeout, onError, instance);
|
|
3777
3982
|
load().then(() => {
|
|
3983
|
+
if (instance.isUnmounted) return;
|
|
3778
3984
|
loaded.value = true;
|
|
3779
3985
|
if (instance.parent && instance.parent.vnode && isKeepAlive(instance.parent.vnode)) instance.parent.update();
|
|
3780
3986
|
}).catch((err) => {
|
|
3987
|
+
if (instance.isUnmounted) {
|
|
3988
|
+
setPendingRequest(null);
|
|
3989
|
+
return;
|
|
3990
|
+
}
|
|
3781
3991
|
onError(err);
|
|
3782
3992
|
error.value = err;
|
|
3783
3993
|
});
|
|
@@ -3833,14 +4043,22 @@ function createAsyncComponentContext(source) {
|
|
|
3833
4043
|
setPendingRequest: (request) => pendingRequest = request
|
|
3834
4044
|
};
|
|
3835
4045
|
}
|
|
3836
|
-
const useAsyncComponentState = (delay, timeout, onError) => {
|
|
4046
|
+
const useAsyncComponentState = (delay, timeout, onError, instance = currentInstance) => {
|
|
3837
4047
|
const loaded = /* @__PURE__ */ ref(false);
|
|
3838
4048
|
const error = /* @__PURE__ */ ref();
|
|
3839
4049
|
const delayed = /* @__PURE__ */ ref(!!delay);
|
|
3840
|
-
|
|
4050
|
+
let timeoutTimer;
|
|
4051
|
+
let delayTimer;
|
|
4052
|
+
if (instance) onUnmounted(() => {
|
|
4053
|
+
if (timeoutTimer != null) clearTimeout(timeoutTimer);
|
|
4054
|
+
if (delayTimer != null) clearTimeout(delayTimer);
|
|
4055
|
+
}, instance);
|
|
4056
|
+
if (delay) delayTimer = setTimeout(() => {
|
|
4057
|
+
if (instance && instance.isUnmounted) return;
|
|
3841
4058
|
delayed.value = false;
|
|
3842
4059
|
}, delay);
|
|
3843
|
-
if (timeout != null) setTimeout(() => {
|
|
4060
|
+
if (timeout != null) timeoutTimer = setTimeout(() => {
|
|
4061
|
+
if (instance && instance.isUnmounted) return;
|
|
3844
4062
|
if (!loaded.value && !error.value) {
|
|
3845
4063
|
const err = /* @__PURE__ */ new Error(`Async component timed out after ${timeout}ms.`);
|
|
3846
4064
|
onError(err);
|
|
@@ -3857,11 +4075,13 @@ const useAsyncComponentState = (delay, timeout, onError) => {
|
|
|
3857
4075
|
* shared between core and vapor
|
|
3858
4076
|
* @internal
|
|
3859
4077
|
*/
|
|
3860
|
-
function performAsyncHydrate(el, instance, hydrate, getResolvedComp, load, hydrateStrategy) {
|
|
4078
|
+
function performAsyncHydrate(el, instance, hydrate, getResolvedComp, load, hydrateStrategy, skipIfUpdated) {
|
|
4079
|
+
const wasConnected = el.isConnected;
|
|
3861
4080
|
let patched = false;
|
|
3862
|
-
(instance.bu || (instance.bu = [])).push(() => patched = true);
|
|
4081
|
+
if (skipIfUpdated) (instance.bu || (instance.bu = [])).push(() => patched = true);
|
|
3863
4082
|
const performHydrate = () => {
|
|
3864
4083
|
if (patched) return;
|
|
4084
|
+
if (!el.parentNode || wasConnected && !el.isConnected) return;
|
|
3865
4085
|
hydrate();
|
|
3866
4086
|
};
|
|
3867
4087
|
const doHydrate = hydrateStrategy ? () => {
|
|
@@ -3941,10 +4161,13 @@ const KeepAliveImpl = {
|
|
|
3941
4161
|
});
|
|
3942
4162
|
let pendingCacheKey = null;
|
|
3943
4163
|
const cacheSubtree = () => {
|
|
3944
|
-
if (pendingCacheKey != null)
|
|
3945
|
-
|
|
3946
|
-
|
|
3947
|
-
|
|
4164
|
+
if (pendingCacheKey != null) {
|
|
4165
|
+
if (isSuspense(keepAliveInstance.subTree.type)) queuePostRenderEffect(() => {
|
|
4166
|
+
const vnode = getInnerChild(keepAliveInstance.subTree);
|
|
4167
|
+
if (vnode.component) cache.set(pendingCacheKey, vnode);
|
|
4168
|
+
}, void 0, keepAliveInstance.subTree.suspense);
|
|
4169
|
+
else cache.set(pendingCacheKey, getInnerChild(keepAliveInstance.subTree));
|
|
4170
|
+
}
|
|
3948
4171
|
};
|
|
3949
4172
|
onMounted(cacheSubtree);
|
|
3950
4173
|
onUpdated(cacheSubtree);
|
|
@@ -4014,7 +4237,7 @@ const decorate$2 = (t) => {
|
|
|
4014
4237
|
t.__isBuiltIn = true;
|
|
4015
4238
|
return t;
|
|
4016
4239
|
};
|
|
4017
|
-
const KeepAlive =
|
|
4240
|
+
const KeepAlive = /*@__PURE__*/ decorate$2(KeepAliveImpl);
|
|
4018
4241
|
function matches(pattern, name) {
|
|
4019
4242
|
if (isArray(pattern)) return pattern.some((p) => matches(p, name));
|
|
4020
4243
|
else if (isString(pattern)) return pattern.split(",").includes(name);
|
|
@@ -4103,7 +4326,7 @@ function injectHook(type, hook, target = currentInstance, prepend = false) {
|
|
|
4103
4326
|
try {
|
|
4104
4327
|
return callWithAsyncErrorHandling(hook, target, type, args);
|
|
4105
4328
|
} finally {
|
|
4106
|
-
|
|
4329
|
+
restoreCurrentInstance(prev);
|
|
4107
4330
|
setActiveSub(prevSub);
|
|
4108
4331
|
}
|
|
4109
4332
|
});
|
|
@@ -4224,16 +4447,17 @@ function compatH(type, propsOrChildren, children) {
|
|
|
4224
4447
|
}
|
|
4225
4448
|
const l = arguments.length;
|
|
4226
4449
|
const is2ndArgArrayChildren = isArray(propsOrChildren);
|
|
4227
|
-
if (l === 2 || is2ndArgArrayChildren)
|
|
4228
|
-
if (
|
|
4229
|
-
|
|
4230
|
-
|
|
4231
|
-
|
|
4450
|
+
if (l === 2 || is2ndArgArrayChildren) {
|
|
4451
|
+
if (isObject(propsOrChildren) && !is2ndArgArrayChildren) {
|
|
4452
|
+
if (isVNode(propsOrChildren)) return convertLegacySlots(createVNode(type, null, [propsOrChildren]));
|
|
4453
|
+
return convertLegacySlots(convertLegacyDirectives(createVNode(type, convertLegacyProps(propsOrChildren, type)), propsOrChildren));
|
|
4454
|
+
} else return convertLegacySlots(createVNode(type, null, propsOrChildren));
|
|
4455
|
+
} else {
|
|
4232
4456
|
if (isVNode(children)) children = [children];
|
|
4233
4457
|
return convertLegacySlots(convertLegacyDirectives(createVNode(type, convertLegacyProps(propsOrChildren, type), children), propsOrChildren));
|
|
4234
4458
|
}
|
|
4235
4459
|
}
|
|
4236
|
-
const skipLegacyRootLevelProps =
|
|
4460
|
+
const skipLegacyRootLevelProps = /*@__PURE__*/ makeMap("staticStyle,staticClass,directives,model,hook");
|
|
4237
4461
|
function convertLegacyProps(legacyProps, type) {
|
|
4238
4462
|
if (!legacyProps) return null;
|
|
4239
4463
|
const converted = {};
|
|
@@ -4245,8 +4469,10 @@ function convertLegacyProps(legacyProps, type) {
|
|
|
4245
4469
|
if (key === "nativeOn") handlerKey += `Native`;
|
|
4246
4470
|
const existing = converted[handlerKey];
|
|
4247
4471
|
const incoming = listeners[event];
|
|
4248
|
-
if (existing !== incoming)
|
|
4249
|
-
|
|
4472
|
+
if (existing !== incoming) {
|
|
4473
|
+
if (existing) converted[handlerKey] = [].concat(existing, incoming);
|
|
4474
|
+
else converted[handlerKey] = incoming;
|
|
4475
|
+
}
|
|
4250
4476
|
}
|
|
4251
4477
|
} else if (!skipLegacyRootLevelProps(key)) converted[key] = legacyProps[key];
|
|
4252
4478
|
if (legacyProps.staticClass) converted.class = normalizeClass([legacyProps.staticClass, converted.class]);
|
|
@@ -4345,7 +4571,7 @@ function convertLegacyFunctionalComponent(comp) {
|
|
|
4345
4571
|
const legacyFn = comp.render;
|
|
4346
4572
|
const Func = (props, ctx) => {
|
|
4347
4573
|
const instance = getCurrentInstance();
|
|
4348
|
-
|
|
4574
|
+
const legacyCtx = {
|
|
4349
4575
|
props,
|
|
4350
4576
|
children: instance.vnode.children || [],
|
|
4351
4577
|
data: instance.vnode.props || {},
|
|
@@ -4365,7 +4591,8 @@ function convertLegacyFunctionalComponent(comp) {
|
|
|
4365
4591
|
}
|
|
4366
4592
|
return {};
|
|
4367
4593
|
}
|
|
4368
|
-
}
|
|
4594
|
+
};
|
|
4595
|
+
return legacyFn(compatH, legacyCtx);
|
|
4369
4596
|
};
|
|
4370
4597
|
Func.props = comp.props;
|
|
4371
4598
|
Func.displayName = comp.name;
|
|
@@ -4397,16 +4624,17 @@ function renderList(source, renderItem, cache, index) {
|
|
|
4397
4624
|
} else if (typeof source === "number") {
|
|
4398
4625
|
ret = new Array(source);
|
|
4399
4626
|
for (let i = 0; i < source; i++) ret[i] = renderItem(i + 1, i, void 0, cached && cached[i]);
|
|
4400
|
-
} else if (isObject(source))
|
|
4401
|
-
|
|
4402
|
-
|
|
4403
|
-
|
|
4404
|
-
|
|
4405
|
-
|
|
4406
|
-
|
|
4627
|
+
} else if (isObject(source)) {
|
|
4628
|
+
if (source[Symbol.iterator]) ret = Array.from(source, (item, i) => renderItem(item, i, void 0, cached && cached[i]));
|
|
4629
|
+
else {
|
|
4630
|
+
const keys = Object.keys(source);
|
|
4631
|
+
ret = new Array(keys.length);
|
|
4632
|
+
for (let i = 0, l = keys.length; i < l; i++) {
|
|
4633
|
+
const key = keys[i];
|
|
4634
|
+
ret[i] = renderItem(source[key], key, i, cached && cached[i]);
|
|
4635
|
+
}
|
|
4407
4636
|
}
|
|
4408
|
-
}
|
|
4409
|
-
else ret = [];
|
|
4637
|
+
} else ret = [];
|
|
4410
4638
|
if (cache) cache[index] = ret;
|
|
4411
4639
|
return ret;
|
|
4412
4640
|
}
|
|
@@ -4431,33 +4659,77 @@ function createSlots(slots, dynamicSlots) {
|
|
|
4431
4659
|
//#endregion
|
|
4432
4660
|
//#region packages/runtime-core/src/helpers/renderSlot.ts
|
|
4433
4661
|
/**
|
|
4662
|
+
* Links a slot function to its raw vapor slot: a raw vapor slot carries
|
|
4663
|
+
* itself, and the wrapper the interop slots proxy hands out carries the raw
|
|
4664
|
+
* slot it wraps — one lookup answers both "is this a vapor slot" and
|
|
4665
|
+
* "which one". Internal to vapor interop.
|
|
4666
|
+
*/
|
|
4667
|
+
const rawVaporSlotKey = Symbol(`rawVaporSlot`);
|
|
4668
|
+
/**
|
|
4669
|
+
* Invokes a VDOM slot fallback under the outlet owner that produced it, the
|
|
4670
|
+
* way `renderSlot` would have rendered it inline. Vapor interop invokes
|
|
4671
|
+
* fallbacks late, outside any render, so it passes the owner recorded on the
|
|
4672
|
+
* vapor slot vnode. Internal to vapor interop.
|
|
4673
|
+
*/
|
|
4674
|
+
function invokeSlotFallback(fallback, owner) {
|
|
4675
|
+
if (!owner) return fallback();
|
|
4676
|
+
const prev = setCurrentRenderingInstance(owner);
|
|
4677
|
+
const prevStackSize = blockStack.length;
|
|
4678
|
+
try {
|
|
4679
|
+
return fallback();
|
|
4680
|
+
} finally {
|
|
4681
|
+
for (let i = blockStack.length; i > prevStackSize; i--) closeBlock();
|
|
4682
|
+
setCurrentRenderingInstance(prev);
|
|
4683
|
+
}
|
|
4684
|
+
}
|
|
4685
|
+
/**
|
|
4434
4686
|
* Compiler runtime helper for rendering `<slot/>`
|
|
4435
4687
|
* @private
|
|
4436
4688
|
*/
|
|
4437
|
-
function renderSlot(slots, name, props
|
|
4689
|
+
function renderSlot(slots, name, props, fallback, noSlotted, branchKey) {
|
|
4690
|
+
if (props == null) props = {};
|
|
4438
4691
|
let slot = slots[name];
|
|
4439
|
-
const vaporSlot = slot &&
|
|
4692
|
+
const vaporSlot = slot && slot[rawVaporSlotKey];
|
|
4440
4693
|
if (vaporSlot) {
|
|
4441
4694
|
const ret = (openBlock(), createBlock(VaporSlot, props));
|
|
4442
4695
|
ret.vs = {
|
|
4443
4696
|
slot: vaporSlot,
|
|
4444
|
-
fallback
|
|
4697
|
+
outlets: fallback ? [{
|
|
4698
|
+
fallback,
|
|
4699
|
+
owner: currentRenderingInstance
|
|
4700
|
+
}] : void 0
|
|
4445
4701
|
};
|
|
4702
|
+
if (!noSlotted && ret.scopeId) ret.slotScopeIds = [ret.scopeId + "-s"];
|
|
4446
4703
|
return ret;
|
|
4447
4704
|
}
|
|
4448
4705
|
if (currentRenderingInstance && (currentRenderingInstance.ce || currentRenderingInstance.parent && isAsyncWrapper(currentRenderingInstance.parent) && currentRenderingInstance.parent.ce)) {
|
|
4449
|
-
const
|
|
4450
|
-
|
|
4451
|
-
|
|
4706
|
+
const slotProps = branchKey != null && props.key == null ? extend({}, props, { key: branchKey }) : props;
|
|
4707
|
+
const hasProps = Object.keys(slotProps).length > 0;
|
|
4708
|
+
if (name !== "default") slotProps.name = name;
|
|
4709
|
+
return openBlock(), createBlock(Fragment, null, [createVNode("slot", slotProps, fallback && fallback())], hasProps ? -2 : 64);
|
|
4452
4710
|
}
|
|
4453
4711
|
if (slot && slot._c) slot._d = false;
|
|
4712
|
+
const prevStackSize = blockStack.length;
|
|
4454
4713
|
openBlock();
|
|
4455
|
-
|
|
4456
|
-
|
|
4457
|
-
|
|
4458
|
-
|
|
4714
|
+
let rendered;
|
|
4715
|
+
try {
|
|
4716
|
+
const validSlotContent = slot && ensureValidVNode(slot(props));
|
|
4717
|
+
let attached = false;
|
|
4718
|
+
if (fallback && validSlotContent && currentRenderingInstance) {
|
|
4719
|
+
const interop = currentRenderingInstance.appContext.vapor;
|
|
4720
|
+
if (interop) attached = interop.attachSlotOutlet(validSlotContent, fallback, currentRenderingInstance);
|
|
4721
|
+
}
|
|
4722
|
+
const slotKey = props.key || branchKey || validSlotContent && validSlotContent.key;
|
|
4723
|
+
rendered = createBlock(Fragment, { key: (slotKey && !isSymbol(slotKey) ? slotKey : `_${name}`) + (!validSlotContent && fallback ? "_fb" : "") }, validSlotContent || (fallback ? fallback() : []), validSlotContent && slots._ === 1 ? 64 : -2);
|
|
4724
|
+
if (!validSlotContent && fallback) rendered.shapeFlag |= 1024;
|
|
4725
|
+
if (attached) rendered.vo = true;
|
|
4726
|
+
} catch (err) {
|
|
4727
|
+
for (let i = blockStack.length; i > prevStackSize; i--) closeBlock();
|
|
4728
|
+
throw err;
|
|
4729
|
+
} finally {
|
|
4730
|
+
if (slot && slot._c) slot._d = true;
|
|
4731
|
+
}
|
|
4459
4732
|
if (!noSlotted && rendered.scopeId) rendered.slotScopeIds = [rendered.scopeId + "-s"];
|
|
4460
|
-
if (slot && slot._c) slot._d = true;
|
|
4461
4733
|
return rendered;
|
|
4462
4734
|
}
|
|
4463
4735
|
function ensureValidVNode(vnodes) {
|
|
@@ -4468,12 +4740,6 @@ function ensureValidVNode(vnodes) {
|
|
|
4468
4740
|
return true;
|
|
4469
4741
|
}) ? vnodes : null;
|
|
4470
4742
|
}
|
|
4471
|
-
function ensureVaporSlotFallback(vnodes, fallback) {
|
|
4472
|
-
let vaporSlot;
|
|
4473
|
-
if (vnodes && vnodes.length === 1 && isVNode(vnodes[0]) && (vaporSlot = vnodes[0].vs)) {
|
|
4474
|
-
if (!vaporSlot.fallback && fallback) vaporSlot.fallback = fallback;
|
|
4475
|
-
}
|
|
4476
|
-
}
|
|
4477
4743
|
//#endregion
|
|
4478
4744
|
//#region packages/runtime-core/src/helpers/toHandlers.ts
|
|
4479
4745
|
/**
|
|
@@ -4528,12 +4794,14 @@ function legacyResolveScopedSlots(fns, raw, hasDynamicKeys) {
|
|
|
4528
4794
|
function mapKeyToName(slots) {
|
|
4529
4795
|
for (let i = 0; i < slots.length; i++) {
|
|
4530
4796
|
const fn = slots[i];
|
|
4531
|
-
if (fn)
|
|
4532
|
-
|
|
4797
|
+
if (fn) {
|
|
4798
|
+
if (isArray(fn)) mapKeyToName(fn);
|
|
4799
|
+
else fn.name = fn.key || "default";
|
|
4800
|
+
}
|
|
4533
4801
|
}
|
|
4534
4802
|
return slots;
|
|
4535
4803
|
}
|
|
4536
|
-
const staticCacheMap =
|
|
4804
|
+
const staticCacheMap = /*@__PURE__*/ new WeakMap();
|
|
4537
4805
|
function legacyRenderStatic(instance, index) {
|
|
4538
4806
|
let cache = staticCacheMap.get(instance);
|
|
4539
4807
|
if (!cache) staticCacheMap.set(instance, cache = []);
|
|
@@ -4756,7 +5024,7 @@ const PublicInstanceProxyHandlers = {
|
|
|
4756
5024
|
return Reflect.defineProperty(target, key, descriptor);
|
|
4757
5025
|
}
|
|
4758
5026
|
};
|
|
4759
|
-
const RuntimeCompiledPublicInstanceProxyHandlers =
|
|
5027
|
+
const RuntimeCompiledPublicInstanceProxyHandlers = /*@__PURE__*/ extend({}, PublicInstanceProxyHandlers, {
|
|
4760
5028
|
get(target, key) {
|
|
4761
5029
|
if (key === Symbol.unscopables) return;
|
|
4762
5030
|
return PublicInstanceProxyHandlers.get(target, key, target);
|
|
@@ -4880,12 +5148,13 @@ function mergeDefaults(raw, defaults) {
|
|
|
4880
5148
|
for (const key in defaults) {
|
|
4881
5149
|
if (key.startsWith("__skip")) continue;
|
|
4882
5150
|
let opt = props[key];
|
|
4883
|
-
if (opt)
|
|
4884
|
-
|
|
4885
|
-
|
|
4886
|
-
|
|
4887
|
-
|
|
4888
|
-
|
|
5151
|
+
if (opt) {
|
|
5152
|
+
if (isArray(opt) || isFunction(opt)) opt = props[key] = {
|
|
5153
|
+
type: opt,
|
|
5154
|
+
default: defaults[key]
|
|
5155
|
+
};
|
|
5156
|
+
else opt.default = defaults[key];
|
|
5157
|
+
} else if (opt === null) opt = props[key] = { default: defaults[key] };
|
|
4889
5158
|
if (opt && defaults[`__skip_${key}`]) opt.skipFactory = true;
|
|
4890
5159
|
}
|
|
4891
5160
|
return props;
|
|
@@ -4938,21 +5207,29 @@ function withAsyncContext(getAwaitable) {
|
|
|
4938
5207
|
setCurrentInstance(null, void 0);
|
|
4939
5208
|
if (inSSRSetup) setInSSRSetupState(false);
|
|
4940
5209
|
const restore = () => {
|
|
5210
|
+
const stoppedScope = ctx && !ctx.scope.active ? ctx.scope : void 0;
|
|
4941
5211
|
setCurrentInstance(ctx);
|
|
4942
5212
|
if (inSSRSetup) setInSSRSetupState(true);
|
|
5213
|
+
return stoppedScope;
|
|
4943
5214
|
};
|
|
4944
5215
|
const cleanup = () => {
|
|
4945
5216
|
setCurrentInstance(null, void 0);
|
|
4946
5217
|
if (inSSRSetup) setInSSRSetupState(false);
|
|
4947
5218
|
};
|
|
4948
5219
|
if (isPromise(awaitable)) awaitable = awaitable.catch((e) => {
|
|
4949
|
-
restore();
|
|
4950
|
-
Promise.resolve().then(() => Promise.resolve().then(
|
|
5220
|
+
const stoppedScope = restore();
|
|
5221
|
+
Promise.resolve().then(() => Promise.resolve().then(() => {
|
|
5222
|
+
if (stoppedScope) stoppedScope.reset();
|
|
5223
|
+
cleanup();
|
|
5224
|
+
}));
|
|
4951
5225
|
throw e;
|
|
4952
5226
|
});
|
|
4953
5227
|
return [awaitable, () => {
|
|
4954
|
-
restore();
|
|
4955
|
-
Promise.resolve().then(
|
|
5228
|
+
const stoppedScope = restore();
|
|
5229
|
+
Promise.resolve().then(() => {
|
|
5230
|
+
if (stoppedScope) stoppedScope.reset();
|
|
5231
|
+
cleanup();
|
|
5232
|
+
});
|
|
4956
5233
|
}];
|
|
4957
5234
|
}
|
|
4958
5235
|
//#endregion
|
|
@@ -4978,9 +5255,11 @@ function applyOptions(instance) {
|
|
|
4978
5255
|
shouldCacheAccess = true;
|
|
4979
5256
|
if (computedOptions) for (const key in computedOptions) {
|
|
4980
5257
|
const opt = computedOptions[key];
|
|
5258
|
+
const get = isFunction(opt) ? opt.bind(publicThis, publicThis) : isFunction(opt.get) ? opt.get.bind(publicThis, publicThis) : NOOP;
|
|
5259
|
+
const set = !isFunction(opt) && isFunction(opt.set) ? opt.set.bind(publicThis) : NOOP;
|
|
4981
5260
|
const c = computed({
|
|
4982
|
-
get
|
|
4983
|
-
set
|
|
5261
|
+
get,
|
|
5262
|
+
set
|
|
4984
5263
|
});
|
|
4985
5264
|
Object.defineProperty(ctx, key, {
|
|
4986
5265
|
enumerable: true,
|
|
@@ -5039,9 +5318,10 @@ function resolveInjections(injectOptions, ctx, checkDuplicateProperties = NOOP)
|
|
|
5039
5318
|
for (const key in injectOptions) {
|
|
5040
5319
|
const opt = injectOptions[key];
|
|
5041
5320
|
let injected;
|
|
5042
|
-
if (isObject(opt))
|
|
5043
|
-
|
|
5044
|
-
|
|
5321
|
+
if (isObject(opt)) {
|
|
5322
|
+
if ("default" in opt) injected = inject(opt.from || key, opt.default, true);
|
|
5323
|
+
else injected = inject(opt.from || key);
|
|
5324
|
+
} else injected = inject(opt);
|
|
5045
5325
|
if (/* @__PURE__ */ isRef(injected)) Object.defineProperty(ctx, key, {
|
|
5046
5326
|
enumerable: true,
|
|
5047
5327
|
configurable: true,
|
|
@@ -5060,7 +5340,8 @@ function createWatcher(raw, ctx, publicThis, key) {
|
|
|
5060
5340
|
{
|
|
5061
5341
|
const cur = getCurrentInstance();
|
|
5062
5342
|
const instance = cur && getCurrentScope() === cur.scope ? cur : null;
|
|
5063
|
-
|
|
5343
|
+
const newValue = getter();
|
|
5344
|
+
if (isArray(newValue) && isCompatEnabled$1("WATCH_ARRAY", instance)) options.deep = true;
|
|
5064
5345
|
const baseGetter = getter;
|
|
5065
5346
|
getter = () => {
|
|
5066
5347
|
const val = baseGetter();
|
|
@@ -5072,10 +5353,12 @@ function createWatcher(raw, ctx, publicThis, key) {
|
|
|
5072
5353
|
const handler = ctx[raw];
|
|
5073
5354
|
if (isFunction(handler)) watch(getter, handler, options);
|
|
5074
5355
|
} else if (isFunction(raw)) watch(getter, raw.bind(publicThis), options);
|
|
5075
|
-
else if (isObject(raw))
|
|
5076
|
-
|
|
5077
|
-
|
|
5078
|
-
|
|
5356
|
+
else if (isObject(raw)) {
|
|
5357
|
+
if (isArray(raw)) raw.forEach((r) => createWatcher(r, ctx, publicThis, key));
|
|
5358
|
+
else {
|
|
5359
|
+
const handler = isFunction(raw.handler) ? raw.handler.bind(publicThis) : ctx[raw.handler];
|
|
5360
|
+
if (isFunction(handler)) watch(getter, handler, extend(raw, options));
|
|
5361
|
+
}
|
|
5079
5362
|
}
|
|
5080
5363
|
}
|
|
5081
5364
|
/**
|
|
@@ -5090,12 +5373,13 @@ function resolveMergedOptions(instance) {
|
|
|
5090
5373
|
const cached = cache.get(base);
|
|
5091
5374
|
let resolved;
|
|
5092
5375
|
if (cached) resolved = cached;
|
|
5093
|
-
else if (!globalMixins.length && !mixins && !extendsOptions)
|
|
5094
|
-
|
|
5095
|
-
|
|
5096
|
-
|
|
5097
|
-
|
|
5098
|
-
|
|
5376
|
+
else if (!globalMixins.length && !mixins && !extendsOptions) {
|
|
5377
|
+
if (isCompatEnabled$1("PRIVATE_APIS", instance)) {
|
|
5378
|
+
resolved = extend({}, base);
|
|
5379
|
+
resolved.parent = instance.parent && instance.parent.proxy;
|
|
5380
|
+
resolved.propsData = instance.vnode.props;
|
|
5381
|
+
} else resolved = base;
|
|
5382
|
+
} else {
|
|
5099
5383
|
resolved = {};
|
|
5100
5384
|
if (globalMixins.length) globalMixins.forEach((m) => mergeOptions(resolved, m, optionMergeStrategies, true));
|
|
5101
5385
|
mergeOptions(resolved, base, optionMergeStrategies);
|
|
@@ -5167,7 +5451,7 @@ function mergeObjectOptions(to, from) {
|
|
|
5167
5451
|
}
|
|
5168
5452
|
function mergeEmitsOrPropsOptions(to, from) {
|
|
5169
5453
|
if (to) {
|
|
5170
|
-
if (isArray(to) && isArray(from)) return [
|
|
5454
|
+
if (isArray(to) && isArray(from)) return [.../* @__PURE__ */ new Set([...to, ...from])];
|
|
5171
5455
|
return extend(Object.create(null), normalizePropsOrEmits(to), normalizePropsOrEmits(from !== null && from !== void 0 ? from : {}));
|
|
5172
5456
|
} else return from;
|
|
5173
5457
|
}
|
|
@@ -5203,7 +5487,7 @@ function createCompatVue$1(createApp, createSingletonApp) {
|
|
|
5203
5487
|
if (options.el) return vm.$mount(options.el);
|
|
5204
5488
|
else return vm;
|
|
5205
5489
|
}
|
|
5206
|
-
Vue.version = `2.6.14-compat:3.6.0-
|
|
5490
|
+
Vue.version = `2.6.14-compat:3.6.0-rc.10`;
|
|
5207
5491
|
Vue.config = singletonApp.config;
|
|
5208
5492
|
Vue.use = (plugin, ...options) => {
|
|
5209
5493
|
if (plugin && isFunction(plugin.install)) plugin.install(Vue, ...options);
|
|
@@ -5609,13 +5893,17 @@ function useModel(props, name, options = EMPTY_OBJ) {
|
|
|
5609
5893
|
const modifiers = getModelModifiers(props, camelizedName, defaultPropGetter);
|
|
5610
5894
|
const res = customRef((track, trigger) => {
|
|
5611
5895
|
let localValue;
|
|
5896
|
+
let prevPropValue = EMPTY_OBJ;
|
|
5612
5897
|
let prevSetValue = EMPTY_OBJ;
|
|
5613
5898
|
let prevEmittedValue;
|
|
5614
5899
|
watchSyncEffect(() => {
|
|
5615
5900
|
const propValue = props[camelizedName];
|
|
5616
|
-
if (hasChanged(
|
|
5617
|
-
|
|
5618
|
-
|
|
5901
|
+
if (hasChanged(prevPropValue, propValue)) {
|
|
5902
|
+
prevPropValue = propValue;
|
|
5903
|
+
if (hasChanged(localValue, propValue)) {
|
|
5904
|
+
localValue = propValue;
|
|
5905
|
+
trigger();
|
|
5906
|
+
}
|
|
5619
5907
|
}
|
|
5620
5908
|
});
|
|
5621
5909
|
return {
|
|
@@ -5638,12 +5926,13 @@ function useModel(props, name, options = EMPTY_OBJ) {
|
|
|
5638
5926
|
for (const key of rawPropKeys) if (key === name || key === camelizedName || key === hyphenatedName) parentPassedModelValue = true;
|
|
5639
5927
|
else if (key === `onUpdate:${name}` || key === `onUpdate:${camelizedName}` || key === `onUpdate:${hyphenatedName}`) parentPassedModelUpdater = true;
|
|
5640
5928
|
}
|
|
5641
|
-
|
|
5929
|
+
const hasVModel = parentPassedModelValue && parentPassedModelUpdater;
|
|
5930
|
+
if (!hasVModel) {
|
|
5642
5931
|
localValue = value;
|
|
5643
5932
|
trigger();
|
|
5644
5933
|
}
|
|
5645
5934
|
i.emit(`update:${name}`, emittedValue);
|
|
5646
|
-
if (hasChanged(value,
|
|
5935
|
+
if (hasChanged(value, prevSetValue) && (hasChanged(value, emittedValue) && !hasChanged(emittedValue, prevEmittedValue) || hasVModel && prevSetValue !== EMPTY_OBJ && !hasChanged(emittedValue, localValue))) trigger();
|
|
5647
5936
|
prevSetValue = value;
|
|
5648
5937
|
prevEmittedValue = emittedValue;
|
|
5649
5938
|
}
|
|
@@ -5680,7 +5969,7 @@ function baseEmit(instance, props, getter, event, ...rawArgs) {
|
|
|
5680
5969
|
const modifiers = isCompatModelListener ? props.modelModifiers : isModelListener && getModelModifiers(props, event.slice(7), getter);
|
|
5681
5970
|
if (modifiers) {
|
|
5682
5971
|
if (modifiers.trim) args = rawArgs.map((a) => isString(a) ? a.trim() : a);
|
|
5683
|
-
if (modifiers.number) args =
|
|
5972
|
+
if (modifiers.number) args = args.map(looseToNumber);
|
|
5684
5973
|
}
|
|
5685
5974
|
let handlerName;
|
|
5686
5975
|
let handler = getter(props, handlerName = toHandlerKey(event)) || getter(props, handlerName = toHandlerKey(camelize(event)));
|
|
@@ -5740,7 +6029,8 @@ function normalizeEmitsOptions(comp, appContext, asMixin = false) {
|
|
|
5740
6029
|
function isEmitListener(options, key) {
|
|
5741
6030
|
if (!options || !isOn(key)) return false;
|
|
5742
6031
|
if (key.startsWith(compatModelEventPrefix)) return true;
|
|
5743
|
-
key = key.slice(2)
|
|
6032
|
+
key = key.slice(2);
|
|
6033
|
+
key = key === "Once" ? key : key.replace(/Once$/, "");
|
|
5744
6034
|
return hasOwn(options, key[0].toLowerCase() + key.slice(1)) || hasOwn(options, hyphenate(key)) || hasOwn(options, key);
|
|
5745
6035
|
}
|
|
5746
6036
|
//#endregion
|
|
@@ -5792,7 +6082,7 @@ function renderComponentRoot(instance) {
|
|
|
5792
6082
|
root = cloneVNode(root, null, false, true);
|
|
5793
6083
|
root.dirs = root.dirs ? root.dirs.concat(vnode.dirs) : vnode.dirs;
|
|
5794
6084
|
}
|
|
5795
|
-
if (vnode.transition) setTransitionHooks(root, vnode.transition);
|
|
6085
|
+
if (vnode.transition) setTransitionHooks(isTeleport(root.type) ? getInnerChild$1(root) || root : root, vnode.transition);
|
|
5796
6086
|
result = root;
|
|
5797
6087
|
setCurrentRenderingInstance(prev);
|
|
5798
6088
|
return result;
|
|
@@ -5802,15 +6092,18 @@ function filterSingleRoot(children, recurse = true) {
|
|
|
5802
6092
|
for (let i = 0; i < children.length; i++) {
|
|
5803
6093
|
const child = children[i];
|
|
5804
6094
|
if (isVNode(child)) {
|
|
5805
|
-
if (child.type !== Comment || child.children === "v-if")
|
|
5806
|
-
|
|
6095
|
+
if (child.type !== Comment || child.children === "v-if") {
|
|
6096
|
+
if (singleRoot) return;
|
|
6097
|
+
else singleRoot = child;
|
|
6098
|
+
}
|
|
5807
6099
|
} else return;
|
|
5808
6100
|
}
|
|
5809
6101
|
return singleRoot;
|
|
5810
6102
|
}
|
|
6103
|
+
const isFunctionalFallthroughKey = (key) => key === "class" || key === "style" || isOn(key);
|
|
5811
6104
|
const getFunctionalFallthrough = (attrs) => {
|
|
5812
6105
|
let res;
|
|
5813
|
-
for (const key in attrs) if (
|
|
6106
|
+
for (const key in attrs) if (isFunctionalFallthroughKey(key)) (res || (res = {}))[key] = attrs[key];
|
|
5814
6107
|
return res;
|
|
5815
6108
|
};
|
|
5816
6109
|
const filterModelListeners = (attrs, props) => {
|
|
@@ -5934,16 +6227,17 @@ function updateProps(instance, rawProps, rawPrevProps, optimized) {
|
|
|
5934
6227
|
let key = propsToUpdate[i];
|
|
5935
6228
|
if (isEmitListener(instance.emitsOptions, key)) continue;
|
|
5936
6229
|
const value = rawProps[key];
|
|
5937
|
-
if (options)
|
|
5938
|
-
if (
|
|
5939
|
-
attrs[key]
|
|
5940
|
-
|
|
6230
|
+
if (options) {
|
|
6231
|
+
if (hasOwn(attrs, key)) {
|
|
6232
|
+
if (value !== attrs[key]) {
|
|
6233
|
+
attrs[key] = value;
|
|
6234
|
+
hasAttrsChanged = true;
|
|
6235
|
+
}
|
|
6236
|
+
} else {
|
|
6237
|
+
const camelizedKey = camelize(key);
|
|
6238
|
+
props[camelizedKey] = resolvePropValue(options, camelizedKey, value, instance, baseResolveDefault);
|
|
5941
6239
|
}
|
|
5942
6240
|
} else {
|
|
5943
|
-
const camelizedKey = camelize(key);
|
|
5944
|
-
props[camelizedKey] = resolvePropValue(options, camelizedKey, value, instance, baseResolveDefault);
|
|
5945
|
-
}
|
|
5946
|
-
else {
|
|
5947
6241
|
if (isOn(key) && key.endsWith("Native")) key = key.slice(0, -6);
|
|
5948
6242
|
else if (shouldSkipAttr(key, instance)) continue;
|
|
5949
6243
|
if (value !== attrs[key]) {
|
|
@@ -5956,9 +6250,11 @@ function updateProps(instance, rawProps, rawPrevProps, optimized) {
|
|
|
5956
6250
|
} else {
|
|
5957
6251
|
if (setFullProps(instance, rawProps, props, attrs)) hasAttrsChanged = true;
|
|
5958
6252
|
let kebabKey;
|
|
5959
|
-
for (const key in rawCurrentProps) if (!rawProps || !hasOwn(rawProps, key) && ((kebabKey = hyphenate(key)) === key || !hasOwn(rawProps, kebabKey)))
|
|
5960
|
-
if (
|
|
5961
|
-
|
|
6253
|
+
for (const key in rawCurrentProps) if (!rawProps || !hasOwn(rawProps, key) && ((kebabKey = hyphenate(key)) === key || !hasOwn(rawProps, kebabKey))) {
|
|
6254
|
+
if (options) {
|
|
6255
|
+
if (rawPrevProps && (rawPrevProps[key] !== void 0 || rawPrevProps[kebabKey] !== void 0)) props[key] = resolvePropValue(options, key, void 0, instance, baseResolveDefault, true);
|
|
6256
|
+
} else delete props[key];
|
|
6257
|
+
}
|
|
5962
6258
|
if (attrs !== rawCurrentProps) {
|
|
5963
6259
|
for (const key in attrs) if (!rawProps || !hasOwn(rawProps, key) && !hasOwn(rawProps, key + "Native")) {
|
|
5964
6260
|
delete attrs[key];
|
|
@@ -5978,9 +6274,10 @@ function setFullProps(instance, rawProps, props, attrs) {
|
|
|
5978
6274
|
if (key === "inline-template") continue;
|
|
5979
6275
|
const value = rawProps[key];
|
|
5980
6276
|
let camelKey;
|
|
5981
|
-
if (options && hasOwn(options, camelKey = camelize(key)))
|
|
5982
|
-
|
|
5983
|
-
|
|
6277
|
+
if (options && hasOwn(options, camelKey = camelize(key))) {
|
|
6278
|
+
if (!needCastKeys || !needCastKeys.includes(camelKey)) props[camelKey] = value;
|
|
6279
|
+
else (rawCastValues || (rawCastValues = {}))[camelKey] = value;
|
|
6280
|
+
} else if (!isEmitListener(instance.emitsOptions, key)) {
|
|
5984
6281
|
if (isOn(key) && key.endsWith("Native")) key = key.slice(0, -6);
|
|
5985
6282
|
else if (shouldSkipAttr(key, instance)) continue;
|
|
5986
6283
|
if (!(key in attrs) || value !== attrs[key]) {
|
|
@@ -6029,7 +6326,7 @@ function baseResolveDefault(factory, instance, key) {
|
|
|
6029
6326
|
const prev = setCurrentInstance(instance);
|
|
6030
6327
|
const props = /* @__PURE__ */ toRaw(instance.props);
|
|
6031
6328
|
value = factory.call(isCompatEnabled$1("PROPS_DEFAULT_THIS", instance) ? createPropsDefaultThis(instance, props, key) : null, props);
|
|
6032
|
-
|
|
6329
|
+
restoreCurrentInstance(prev);
|
|
6033
6330
|
return value;
|
|
6034
6331
|
}
|
|
6035
6332
|
const mixinPropsCache = /* @__PURE__ */ new WeakMap();
|
|
@@ -6144,9 +6441,10 @@ const updateSlots = (instance, children, optimized) => {
|
|
|
6144
6441
|
let deletionComparisonTarget = EMPTY_OBJ;
|
|
6145
6442
|
if (vnode.shapeFlag & 32) {
|
|
6146
6443
|
const type = children._;
|
|
6147
|
-
if (type)
|
|
6148
|
-
|
|
6149
|
-
|
|
6444
|
+
if (type) {
|
|
6445
|
+
if (optimized && type === 1) needDeletionCheck = false;
|
|
6446
|
+
else assignSlots(slots, children, optimized);
|
|
6447
|
+
} else {
|
|
6150
6448
|
needDeletionCheck = !children.$stable;
|
|
6151
6449
|
normalizeObjectSlots(children, slots, instance);
|
|
6152
6450
|
}
|
|
@@ -6206,6 +6504,10 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
6206
6504
|
optimized = false;
|
|
6207
6505
|
n2.dynamicChildren = null;
|
|
6208
6506
|
}
|
|
6507
|
+
if (n2.dynamicChildren && n1 && n1.dynamicChildren && n1.dynamicChildren.hasOnce) {
|
|
6508
|
+
if (n2.dynamicChildren === EMPTY_ARR) n2.dynamicChildren = [];
|
|
6509
|
+
n2.dynamicChildren.hasOnce = true;
|
|
6510
|
+
}
|
|
6209
6511
|
const { type, ref, shapeFlag } = n2;
|
|
6210
6512
|
switch (type) {
|
|
6211
6513
|
case Text:
|
|
@@ -6221,7 +6523,7 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
6221
6523
|
processFragment(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
|
|
6222
6524
|
break;
|
|
6223
6525
|
case VaporSlot:
|
|
6224
|
-
getVaporInterface(parentComponent, n2).slot(n1, n2, container, anchor, parentComponent, parentSuspense);
|
|
6526
|
+
getVaporInterface(parentComponent, n2).slot(n1, n2, container, anchor, parentComponent, parentSuspense, slotScopeIds);
|
|
6225
6527
|
break;
|
|
6226
6528
|
default: if (shapeFlag & 1) processElement(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
|
|
6227
6529
|
else if (shapeFlag & 6) processComponent(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
|
|
@@ -6317,7 +6619,10 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
6317
6619
|
for (let i = 0; i < inheritedScopeIds.length; i++) hostSetScopeId(el, inheritedScopeIds[i]);
|
|
6318
6620
|
};
|
|
6319
6621
|
const mountChildren = (children, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, start = 0) => {
|
|
6320
|
-
for (let i = start; i < children.length; i++)
|
|
6622
|
+
for (let i = start; i < children.length; i++) {
|
|
6623
|
+
const child = children[i] = optimized ? cloneIfMounted(children[i]) : normalizeVNode(children[i]);
|
|
6624
|
+
patch(null, child, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
|
|
6625
|
+
}
|
|
6321
6626
|
};
|
|
6322
6627
|
const patchElement = (n1, n2, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {
|
|
6323
6628
|
const el = n2.el = n1.el;
|
|
@@ -6328,8 +6633,14 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
6328
6633
|
let vnodeHook;
|
|
6329
6634
|
parentComponent && toggleRecurse(parentComponent, false);
|
|
6330
6635
|
if (vnodeHook = newProps.onVnodeBeforeUpdate) invokeVNodeHook(vnodeHook, parentComponent, n2, n1);
|
|
6636
|
+
if (n2.ibu) n2.ibu();
|
|
6331
6637
|
if (dirs) invokeDirectiveHook(n2, n1, parentComponent, "beforeUpdate");
|
|
6332
6638
|
parentComponent && toggleRecurse(parentComponent, true);
|
|
6639
|
+
if (dynamicChildren && (!n1.dynamicChildren || n1.dynamicChildren.length !== dynamicChildren.length)) {
|
|
6640
|
+
patchFlag = 0;
|
|
6641
|
+
optimized = false;
|
|
6642
|
+
dynamicChildren = null;
|
|
6643
|
+
}
|
|
6333
6644
|
if (oldProps.innerHTML && newProps.innerHTML == null || oldProps.textContent && newProps.textContent == null) hostSetElementText(el, "");
|
|
6334
6645
|
if (dynamicChildren) patchBlockChildren(n1.dynamicChildren, dynamicChildren, el, parentComponent, parentSuspense, resolveChildrenNamespace(n2, namespace), slotScopeIds);
|
|
6335
6646
|
else if (!optimized) patchChildren(n1, n2, el, null, parentComponent, parentSuspense, resolveChildrenNamespace(n2, namespace), slotScopeIds, false);
|
|
@@ -6354,8 +6665,9 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
6354
6665
|
if (n1.children !== n2.children) hostSetElementText(el, n2.children);
|
|
6355
6666
|
}
|
|
6356
6667
|
} else if (!optimized && dynamicChildren == null) patchProps(el, oldProps, newProps, parentComponent, namespace);
|
|
6357
|
-
if ((vnodeHook = newProps.onVnodeUpdated) || dirs) queuePostRenderEffect(() => {
|
|
6668
|
+
if ((vnodeHook = newProps.onVnodeUpdated) || dirs || n2.iu) queuePostRenderEffect(() => {
|
|
6358
6669
|
vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, n2, n1);
|
|
6670
|
+
n2.iu && n2.iu();
|
|
6359
6671
|
dirs && invokeDirectiveHook(n2, n1, parentComponent, "updated");
|
|
6360
6672
|
}, void 0, parentSuspense);
|
|
6361
6673
|
};
|
|
@@ -6363,7 +6675,8 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
6363
6675
|
for (let i = 0; i < newChildren.length; i++) {
|
|
6364
6676
|
const oldVNode = oldChildren[i];
|
|
6365
6677
|
const newVNode = newChildren[i];
|
|
6366
|
-
|
|
6678
|
+
const container = oldVNode.el && (oldVNode.type === Fragment || !isSameVNodeType(oldVNode, newVNode) || oldVNode.shapeFlag & 198) ? hostParentNode(oldVNode.el) : fallbackContainer;
|
|
6679
|
+
patch(oldVNode, newVNode, container, null, parentComponent, parentSuspense, namespace, slotScopeIds, true);
|
|
6367
6680
|
}
|
|
6368
6681
|
};
|
|
6369
6682
|
const patchProps = (el, oldProps, newProps, parentComponent, namespace) => {
|
|
@@ -6396,25 +6709,15 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
6396
6709
|
};
|
|
6397
6710
|
const processComponent = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {
|
|
6398
6711
|
n2.slotScopeIds = slotScopeIds;
|
|
6399
|
-
if (n2.type.__vapor)
|
|
6400
|
-
|
|
6401
|
-
|
|
6402
|
-
|
|
6403
|
-
|
|
6404
|
-
|
|
6405
|
-
|
|
6406
|
-
|
|
6407
|
-
|
|
6408
|
-
}
|
|
6409
|
-
else {
|
|
6410
|
-
getVaporInterface(parentComponent, n2).update(n1, n2, shouldUpdateComponent(n1, n2, optimized), () => {
|
|
6411
|
-
if (n2.dirs) invokeDirectiveHook(n2, n1, parentComponent, "beforeUpdate");
|
|
6412
|
-
});
|
|
6413
|
-
if (n2.dirs) queuePostRenderEffect(() => invokeDirectiveHook(n2, n1, parentComponent, "updated"), void 0, parentSuspense);
|
|
6414
|
-
}
|
|
6415
|
-
else if (n1 == null) if (n2.shapeFlag & 512) parentComponent.ctx.activate(n2, container, anchor, namespace, optimized);
|
|
6416
|
-
else mountComponent(n2, container, anchor, parentComponent, parentSuspense, namespace, optimized);
|
|
6417
|
-
else updateComponent(n1, n2, optimized);
|
|
6712
|
+
if (n2.type.__vapor) {
|
|
6713
|
+
if (n1 == null) {
|
|
6714
|
+
if (n2.shapeFlag & 512) getVaporInterface(parentComponent, n2).activate(n2, container, anchor, parentComponent, parentSuspense);
|
|
6715
|
+
else getVaporInterface(parentComponent, n2).mount(n2, container, anchor, parentComponent, parentSuspense);
|
|
6716
|
+
} else getVaporInterface(parentComponent, n2).update(n1, n2, shouldUpdateComponent(n1, n2, optimized));
|
|
6717
|
+
} else if (n1 == null) {
|
|
6718
|
+
if (n2.shapeFlag & 512) parentComponent.ctx.activate(n2, container, anchor, namespace, optimized);
|
|
6719
|
+
else mountComponent(n2, container, anchor, parentComponent, parentSuspense, namespace, optimized);
|
|
6720
|
+
} else updateComponent(n1, n2, optimized);
|
|
6418
6721
|
};
|
|
6419
6722
|
const mountComponent = (initialVNode, container, anchor, parentComponent, parentSuspense, namespace, optimized) => {
|
|
6420
6723
|
const compatMountInstance = initialVNode.isCompatRoot && initialVNode.component;
|
|
@@ -6446,14 +6749,16 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
6446
6749
|
};
|
|
6447
6750
|
const updateComponent = (n1, n2, optimized) => {
|
|
6448
6751
|
const instance = n2.component = n1.component;
|
|
6449
|
-
if (shouldUpdateComponent(n1, n2, optimized))
|
|
6450
|
-
|
|
6451
|
-
|
|
6752
|
+
if (shouldUpdateComponent(n1, n2, optimized)) {
|
|
6753
|
+
if (instance.asyncDep && !instance.asyncResolved) {
|
|
6754
|
+
n2.el = n1.el;
|
|
6755
|
+
updateComponentPreRender(instance, n2, optimized);
|
|
6756
|
+
return;
|
|
6757
|
+
} else {
|
|
6758
|
+
instance.next = n2;
|
|
6759
|
+
instance.effect.run();
|
|
6760
|
+
}
|
|
6452
6761
|
} else {
|
|
6453
|
-
instance.next = n2;
|
|
6454
|
-
instance.effect.run();
|
|
6455
|
-
}
|
|
6456
|
-
else {
|
|
6457
6762
|
n2.el = n1.el;
|
|
6458
6763
|
instance.vnode = n2;
|
|
6459
6764
|
}
|
|
@@ -6544,6 +6849,7 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
6544
6849
|
} else next = vnode;
|
|
6545
6850
|
if (bu) invokeArrayFns(bu);
|
|
6546
6851
|
if (vnodeHook = next.props && next.props.onVnodeBeforeUpdate) invokeVNodeHook(vnodeHook, parent, next, vnode);
|
|
6852
|
+
if (next.ibu) next.ibu();
|
|
6547
6853
|
if (isCompatEnabled$1("INSTANCE_EVENT_HOOKS", instance)) instance.emit("hook:beforeUpdate");
|
|
6548
6854
|
toggleRecurse(instance, true);
|
|
6549
6855
|
const nextTree = renderComponentRoot(instance);
|
|
@@ -6553,7 +6859,10 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
6553
6859
|
next.el = nextTree.el;
|
|
6554
6860
|
if (originNext === null) updateHOCHostEl(instance, nextTree.el);
|
|
6555
6861
|
if (u) queuePostRenderEffect(u, void 0, parentSuspense);
|
|
6556
|
-
if (vnodeHook = next.props && next.props.onVnodeUpdated) queuePostRenderEffect(() =>
|
|
6862
|
+
if ((vnodeHook = next.props && next.props.onVnodeUpdated) || next.iu) queuePostRenderEffect(() => {
|
|
6863
|
+
vnodeHook && invokeVNodeHook(vnodeHook, parent, next, vnode);
|
|
6864
|
+
next.iu && next.iu();
|
|
6865
|
+
}, void 0, parentSuspense);
|
|
6557
6866
|
if (isCompatEnabled$1("INSTANCE_EVENT_HOOKS", instance)) queuePostRenderEffect(() => instance.emit("hook:updated"), void 0, parentSuspense);
|
|
6558
6867
|
}
|
|
6559
6868
|
}
|
|
@@ -6592,9 +6901,10 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
6592
6901
|
if (shapeFlag & 8) {
|
|
6593
6902
|
if (prevShapeFlag & 16) unmountChildren(c1, parentComponent, parentSuspense);
|
|
6594
6903
|
if (c2 !== c1) hostSetElementText(container, c2);
|
|
6595
|
-
} else if (prevShapeFlag & 16)
|
|
6596
|
-
|
|
6597
|
-
|
|
6904
|
+
} else if (prevShapeFlag & 16) {
|
|
6905
|
+
if (shapeFlag & 16) patchKeyedChildren(c1, c2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
|
|
6906
|
+
else unmountChildren(c1, parentComponent, parentSuspense, true);
|
|
6907
|
+
} else {
|
|
6598
6908
|
if (prevShapeFlag & 8) hostSetElementText(container, "");
|
|
6599
6909
|
if (shapeFlag & 16) mountChildren(c2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
|
|
6600
6910
|
}
|
|
@@ -6690,15 +7000,17 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
6690
7000
|
const anchorVNode = c2[nextIndex + 1];
|
|
6691
7001
|
const anchor = nextIndex + 1 < l2 ? anchorVNode.el || resolveAsyncComponentPlaceholder(anchorVNode) : parentAnchor;
|
|
6692
7002
|
if (newIndexToOldIndexMap[i] === 0) patch(null, nextChild, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
|
|
6693
|
-
else if (moved)
|
|
6694
|
-
|
|
7003
|
+
else if (moved) {
|
|
7004
|
+
if (j < 0 || i !== increasingNewIndexSequence[j]) move(nextChild, container, anchor, 2, parentComponent);
|
|
7005
|
+
else j--;
|
|
7006
|
+
}
|
|
6695
7007
|
}
|
|
6696
7008
|
}
|
|
6697
7009
|
};
|
|
6698
7010
|
const move = (vnode, container, anchor, moveType, parentComponent, parentSuspense = null) => {
|
|
6699
7011
|
const { el, type, transition, children, shapeFlag } = vnode;
|
|
6700
7012
|
if (isVaporComponent(type) || type === VaporSlot) {
|
|
6701
|
-
getVaporInterface(parentComponent, vnode).move(vnode, container, anchor, moveType);
|
|
7013
|
+
getVaporInterface(parentComponent, vnode).move(vnode, container, anchor, moveType, parentSuspense);
|
|
6702
7014
|
return;
|
|
6703
7015
|
}
|
|
6704
7016
|
if (shapeFlag & 6) {
|
|
@@ -6723,49 +7035,37 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
6723
7035
|
moveStaticNode(vnode, container, anchor);
|
|
6724
7036
|
return;
|
|
6725
7037
|
}
|
|
6726
|
-
if (moveType !== 2 && shapeFlag & 1 && transition)
|
|
6727
|
-
|
|
6728
|
-
|
|
6729
|
-
const remove = () => {
|
|
7038
|
+
if (moveType !== 2 && shapeFlag & 1 && transition) {
|
|
7039
|
+
if (moveType === 0) performTransitionEnter(el, transition, () => hostInsert(el, container, anchor), parentSuspense, true);
|
|
7040
|
+
else performTransitionLeave(el, transition, () => {
|
|
6730
7041
|
if (vnode.ctx.isUnmounted) hostRemove(el);
|
|
6731
7042
|
else hostInsert(el, container, anchor);
|
|
6732
|
-
};
|
|
6733
|
-
|
|
6734
|
-
if (el._isLeaving) el[leaveCbKey](true);
|
|
6735
|
-
leave(el, () => {
|
|
6736
|
-
remove();
|
|
6737
|
-
afterLeave && afterLeave();
|
|
6738
|
-
});
|
|
6739
|
-
};
|
|
6740
|
-
if (delayLeave) delayLeave(el, remove, performLeave);
|
|
6741
|
-
else performLeave();
|
|
6742
|
-
}
|
|
6743
|
-
else hostInsert(el, container, anchor);
|
|
7043
|
+
}, true, true);
|
|
7044
|
+
} else hostInsert(el, container, anchor);
|
|
6744
7045
|
};
|
|
6745
7046
|
const unmount = (vnode, parentComponent, parentSuspense, doRemove = false, optimized = false) => {
|
|
6746
7047
|
const { type, props, ref, children, dynamicChildren, shapeFlag, patchFlag, dirs, cacheIndex, memo } = vnode;
|
|
6747
|
-
if (patchFlag === -2) optimized = false;
|
|
7048
|
+
if (patchFlag === -2 || dynamicChildren && dynamicChildren.hasOnce) optimized = false;
|
|
6748
7049
|
if (ref != null) {
|
|
6749
7050
|
const prevSub = setActiveSub();
|
|
6750
7051
|
setRef(ref, null, parentSuspense, vnode, true);
|
|
6751
7052
|
setActiveSub(prevSub);
|
|
6752
7053
|
}
|
|
6753
|
-
if (cacheIndex != null) parentComponent.renderCache[cacheIndex] = void 0;
|
|
7054
|
+
if (cacheIndex != null && (!vnode.ctx || vnode.ctx === parentComponent)) parentComponent.renderCache[cacheIndex] = void 0;
|
|
6754
7055
|
if (shapeFlag & 256) {
|
|
6755
|
-
if (isVaporComponent(vnode.type)) getVaporInterface(parentComponent, vnode).deactivate(vnode, parentComponent.ctx.getStorageContainer());
|
|
7056
|
+
if (isVaporComponent(vnode.type)) getVaporInterface(parentComponent, vnode).deactivate(vnode, parentComponent.ctx.getStorageContainer(), parentSuspense);
|
|
6756
7057
|
else parentComponent.ctx.deactivate(vnode);
|
|
6757
7058
|
return;
|
|
6758
7059
|
}
|
|
7060
|
+
if (shapeFlag & 6 && isVaporComponent(type)) {
|
|
7061
|
+
getVaporInterface(parentComponent, vnode).unmount(vnode, doRemove, parentSuspense);
|
|
7062
|
+
return;
|
|
7063
|
+
}
|
|
6759
7064
|
const shouldInvokeDirs = shapeFlag & 1 && dirs;
|
|
6760
7065
|
const shouldInvokeVnodeHook = !isAsyncWrapper(vnode);
|
|
6761
7066
|
let vnodeHook;
|
|
6762
7067
|
if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeBeforeUnmount)) invokeVNodeHook(vnodeHook, parentComponent, vnode);
|
|
6763
|
-
if (shapeFlag & 6)
|
|
6764
|
-
if (dirs) invokeDirectiveHook(vnode, null, parentComponent, "beforeUnmount");
|
|
6765
|
-
getVaporInterface(parentComponent, vnode).unmount(vnode, doRemove);
|
|
6766
|
-
if (dirs) queuePostRenderEffect(() => invokeDirectiveHook(vnode, null, parentComponent, "unmounted"), void 0, parentSuspense);
|
|
6767
|
-
return;
|
|
6768
|
-
} else unmountComponent(vnode.component, parentSuspense, doRemove);
|
|
7068
|
+
if (shapeFlag & 6) unmountComponent(vnode.component, parentSuspense, doRemove);
|
|
6769
7069
|
else {
|
|
6770
7070
|
if (shapeFlag & 128) {
|
|
6771
7071
|
vnode.suspense.unmount(parentSuspense, doRemove);
|
|
@@ -6776,7 +7076,7 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
6776
7076
|
else if (dynamicChildren && !dynamicChildren.hasOnce && (type !== Fragment || patchFlag > 0 && patchFlag & 64)) unmountChildren(dynamicChildren, parentComponent, parentSuspense, false, true);
|
|
6777
7077
|
else if (type === Fragment && patchFlag & 384 || !optimized && shapeFlag & 16) unmountChildren(children, parentComponent, parentSuspense);
|
|
6778
7078
|
if (type === VaporSlot) {
|
|
6779
|
-
getVaporInterface(parentComponent, vnode).unmount(vnode, doRemove);
|
|
7079
|
+
getVaporInterface(parentComponent, vnode).unmount(vnode, doRemove, parentSuspense);
|
|
6780
7080
|
return;
|
|
6781
7081
|
}
|
|
6782
7082
|
if (doRemove) remove(vnode);
|
|
@@ -6796,6 +7096,7 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
6796
7096
|
}
|
|
6797
7097
|
if (type === Static) {
|
|
6798
7098
|
removeStaticNode(vnode);
|
|
7099
|
+
if (transition && !transition.persisted && transition.afterLeave) transition.afterLeave();
|
|
6799
7100
|
return;
|
|
6800
7101
|
}
|
|
6801
7102
|
if (transition) performTransitionLeave(el, transition, () => hostRemove(el), !!(vnode.shapeFlag & 1));
|
|
@@ -6820,6 +7121,9 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
6820
7121
|
if (effect) {
|
|
6821
7122
|
effect.stop();
|
|
6822
7123
|
unmount(subTree, instance, parentSuspense, doRemove);
|
|
7124
|
+
} else if (instance.vnode.el && subTree) {
|
|
7125
|
+
subTree.transition = instance.vnode.transition;
|
|
7126
|
+
unmount(subTree, instance, parentSuspense, doRemove);
|
|
6823
7127
|
}
|
|
6824
7128
|
if (um) queuePostRenderEffect(um, void 0, parentSuspense);
|
|
6825
7129
|
if (isCompatEnabled$1("INSTANCE_EVENT_HOOKS", instance)) queuePostRenderEffect(() => instance.emit("hook:destroyed"), void 0, parentSuspense);
|
|
@@ -6889,12 +7193,14 @@ function resolveChildrenNamespace({ type, props }, currentNamespace) {
|
|
|
6889
7193
|
return currentNamespace === "svg" && type === "foreignObject" || currentNamespace === "mathml" && type === "annotation-xml" && props && props.encoding && props.encoding.includes("html") ? void 0 : currentNamespace;
|
|
6890
7194
|
}
|
|
6891
7195
|
function toggleRecurse({ effect, job, vapor }, allowed) {
|
|
6892
|
-
if (!vapor)
|
|
6893
|
-
|
|
6894
|
-
|
|
6895
|
-
|
|
6896
|
-
|
|
6897
|
-
|
|
7196
|
+
if (!vapor) {
|
|
7197
|
+
if (allowed) {
|
|
7198
|
+
effect.flags |= 128;
|
|
7199
|
+
job.flags |= 2;
|
|
7200
|
+
} else {
|
|
7201
|
+
effect.flags &= -129;
|
|
7202
|
+
job.flags &= -3;
|
|
7203
|
+
}
|
|
6898
7204
|
}
|
|
6899
7205
|
}
|
|
6900
7206
|
function needTransition(parentSuspense, transition) {
|
|
@@ -6933,13 +7239,19 @@ function traverseStaticChildren(n1, n2, shallow = false) {
|
|
|
6933
7239
|
}
|
|
6934
7240
|
function locateNonHydratedAsyncRoot(instance) {
|
|
6935
7241
|
const subComponent = instance.subTree && instance.subTree.component;
|
|
6936
|
-
if (subComponent)
|
|
6937
|
-
|
|
7242
|
+
if (subComponent) {
|
|
7243
|
+
if (subComponent.asyncDep && !subComponent.asyncResolved) return subComponent;
|
|
7244
|
+
else return locateNonHydratedAsyncRoot(subComponent);
|
|
7245
|
+
}
|
|
6938
7246
|
}
|
|
6939
7247
|
function invalidateMount(hooks) {
|
|
6940
7248
|
if (hooks) for (let i = 0; i < hooks.length; i++) hooks[i].flags |= 4;
|
|
6941
7249
|
}
|
|
6942
7250
|
function performTransitionEnter(el, transition, insert, parentSuspense, force = false) {
|
|
7251
|
+
if (force && transition.persisted && !el[leaveCbKey]) {
|
|
7252
|
+
insert();
|
|
7253
|
+
return;
|
|
7254
|
+
}
|
|
6943
7255
|
if (force || needTransition(parentSuspense, transition)) {
|
|
6944
7256
|
transition.beforeEnter(el);
|
|
6945
7257
|
insert();
|
|
@@ -6949,13 +7261,15 @@ function performTransitionEnter(el, transition, insert, parentSuspense, force =
|
|
|
6949
7261
|
function performTransitionLeave(el, transition, remove, isElement = true, force = false) {
|
|
6950
7262
|
const performRemove = () => {
|
|
6951
7263
|
remove();
|
|
6952
|
-
if (transition && !transition.persisted && transition.afterLeave) transition.afterLeave();
|
|
7264
|
+
if (transition && (force || !transition.persisted) && transition.afterLeave) transition.afterLeave();
|
|
6953
7265
|
};
|
|
6954
7266
|
if (force || isElement && transition && !transition.persisted) {
|
|
6955
7267
|
const { leave, delayLeave } = transition;
|
|
6956
7268
|
const performLeave = () => {
|
|
7269
|
+
const wasLeaving = el._isLeaving || !!el[leaveCbKey];
|
|
6957
7270
|
if (el._isLeaving && force) el[leaveCbKey](true);
|
|
6958
|
-
|
|
7271
|
+
if (force && transition.persisted && !wasLeaving) remove();
|
|
7272
|
+
else leave(el, performRemove);
|
|
6959
7273
|
};
|
|
6960
7274
|
if (delayLeave) delayLeave(el, performRemove, performLeave);
|
|
6961
7275
|
else performLeave();
|
|
@@ -6971,7 +7285,7 @@ function isVaporComponent(type) {
|
|
|
6971
7285
|
/**
|
|
6972
7286
|
* shared between vdom and vapor
|
|
6973
7287
|
*/
|
|
6974
|
-
function getInheritedScopeIds(vnode, parentComponent) {
|
|
7288
|
+
function getInheritedScopeIds(vnode, parentComponent, includeVaporRootIds = true) {
|
|
6975
7289
|
const inheritedScopeIds = [];
|
|
6976
7290
|
let currentParent = parentComponent;
|
|
6977
7291
|
let currentVNode = vnode;
|
|
@@ -6986,6 +7300,8 @@ function getInheritedScopeIds(vnode, parentComponent) {
|
|
|
6986
7300
|
currentParent = currentParent.parent;
|
|
6987
7301
|
} else break;
|
|
6988
7302
|
}
|
|
7303
|
+
const vaporScopeIds = includeVaporRootIds && currentVNode.vaporScopeIds;
|
|
7304
|
+
if (vaporScopeIds) inheritedScopeIds.push(...vaporScopeIds);
|
|
6989
7305
|
return inheritedScopeIds;
|
|
6990
7306
|
}
|
|
6991
7307
|
function resolveAsyncComponentPlaceholder(anchorVnode) {
|
|
@@ -7004,7 +7320,7 @@ const Suspense = {
|
|
|
7004
7320
|
process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals) {
|
|
7005
7321
|
if (n1 == null) mountSuspense(n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals);
|
|
7006
7322
|
else {
|
|
7007
|
-
if (parentSuspense && parentSuspense.deps > 0 && !n1.suspense.isInFallback) {
|
|
7323
|
+
if (parentSuspense && parentSuspense.deps > 0 && !n1.suspense.isInFallback && !parentSuspense.isHydrating) {
|
|
7008
7324
|
n2.suspense = n1.suspense;
|
|
7009
7325
|
n2.suspense.vnode = n2;
|
|
7010
7326
|
n2.el = n1.el;
|
|
@@ -7042,10 +7358,12 @@ function patchSuspense(n1, n2, container, anchor, parentComponent, namespace, sl
|
|
|
7042
7358
|
if (pendingBranch) {
|
|
7043
7359
|
suspense.pendingBranch = newBranch;
|
|
7044
7360
|
if (isSameVNodeType(pendingBranch, newBranch)) {
|
|
7045
|
-
|
|
7361
|
+
suspense.deps++;
|
|
7362
|
+
patch(pendingBranch, newBranch, isHydrating ? container : suspense.hiddenContainer, null, parentComponent, suspense, namespace, slotScopeIds, optimized);
|
|
7363
|
+
suspense.deps--;
|
|
7046
7364
|
if (suspense.deps <= 0) suspense.resolve();
|
|
7047
7365
|
else if (isInFallback) {
|
|
7048
|
-
if (!isHydrating) {
|
|
7366
|
+
if (!isHydrating && !suspense.isFallbackMountPending) {
|
|
7049
7367
|
patch(activeBranch, newFallback, container, anchor, parentComponent, null, namespace, slotScopeIds, optimized);
|
|
7050
7368
|
setActiveBranch(suspense, newFallback);
|
|
7051
7369
|
}
|
|
@@ -7057,12 +7375,16 @@ function patchSuspense(n1, n2, container, anchor, parentComponent, namespace, sl
|
|
|
7057
7375
|
suspense.activeBranch = pendingBranch;
|
|
7058
7376
|
} else unmount(pendingBranch, parentComponent, suspense);
|
|
7059
7377
|
suspense.deps = 0;
|
|
7378
|
+
for (let i = 0; i < suspense.effects.length; i++) {
|
|
7379
|
+
const effect = suspense.effects[i];
|
|
7380
|
+
if (effect.flags & 8) queuePostFlushCb(effect);
|
|
7381
|
+
}
|
|
7060
7382
|
suspense.effects.length = 0;
|
|
7061
7383
|
suspense.hiddenContainer = createElement("div");
|
|
7062
7384
|
if (isInFallback) {
|
|
7063
7385
|
patch(null, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, namespace, slotScopeIds, optimized);
|
|
7064
7386
|
if (suspense.deps <= 0) suspense.resolve();
|
|
7065
|
-
else {
|
|
7387
|
+
else if (!suspense.isFallbackMountPending) {
|
|
7066
7388
|
patch(activeBranch, newFallback, container, anchor, parentComponent, null, namespace, slotScopeIds, optimized);
|
|
7067
7389
|
setActiveBranch(suspense, newFallback);
|
|
7068
7390
|
}
|
|
@@ -7129,15 +7451,19 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
|
|
|
7129
7451
|
if (suspense.isHydrating) suspense.isHydrating = false;
|
|
7130
7452
|
else if (!resume) {
|
|
7131
7453
|
delayEnter = activeBranch && pendingBranch.transition && pendingBranch.transition.mode === "out-in";
|
|
7454
|
+
let hasUpdatedAnchor = false;
|
|
7132
7455
|
if (delayEnter) activeBranch.transition.afterLeave = () => {
|
|
7133
7456
|
if (pendingId === suspense.pendingId) {
|
|
7134
|
-
move(pendingBranch, container, anchor === initialAnchor ? next(activeBranch) : anchor, 0, parentComponent);
|
|
7457
|
+
move(pendingBranch, container, anchor === initialAnchor && !hasUpdatedAnchor ? next(activeBranch) : anchor, 0, parentComponent);
|
|
7135
7458
|
queuePostFlushCb(effects);
|
|
7136
7459
|
if (isInFallback && vnode.ssFallback) vnode.ssFallback.el = null;
|
|
7137
7460
|
}
|
|
7138
7461
|
};
|
|
7139
7462
|
if (activeBranch && !suspense.isFallbackMountPending) {
|
|
7140
|
-
if (parentNode(activeBranch.el) === container)
|
|
7463
|
+
if (parentNode(activeBranch.el) === container) {
|
|
7464
|
+
anchor = next(activeBranch);
|
|
7465
|
+
hasUpdatedAnchor = true;
|
|
7466
|
+
}
|
|
7141
7467
|
unmount(activeBranch, parentComponent, suspense, true);
|
|
7142
7468
|
if (!delayEnter && isInFallback && vnode.ssFallback) queuePostRenderEffect(() => vnode.ssFallback.el = null, void 0, suspense);
|
|
7143
7469
|
}
|
|
@@ -7151,7 +7477,7 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
|
|
|
7151
7477
|
let hasUnresolvedAncestor = false;
|
|
7152
7478
|
while (parent) {
|
|
7153
7479
|
if (parent.pendingBranch) {
|
|
7154
|
-
parent.effects.push(
|
|
7480
|
+
for (let i = 0; i < effects.length; i++) parent.effects.push(effects[i]);
|
|
7155
7481
|
hasUnresolvedAncestor = true;
|
|
7156
7482
|
break;
|
|
7157
7483
|
}
|
|
@@ -7161,6 +7487,7 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
|
|
|
7161
7487
|
suspense.effects = [];
|
|
7162
7488
|
if (isSuspensible) {
|
|
7163
7489
|
if (parentSuspense && parentSuspense.pendingBranch && parentSuspenseId === parentSuspense.pendingId) {
|
|
7490
|
+
parentSuspenseId = void 0;
|
|
7164
7491
|
parentSuspense.deps--;
|
|
7165
7492
|
if (parentSuspense.deps === 0 && !sync) parentSuspense.resolve();
|
|
7166
7493
|
}
|
|
@@ -7175,8 +7502,9 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
|
|
|
7175
7502
|
const mountFallback = () => {
|
|
7176
7503
|
suspense.isFallbackMountPending = false;
|
|
7177
7504
|
if (!suspense.isInFallback) return;
|
|
7178
|
-
|
|
7179
|
-
|
|
7505
|
+
const latestFallback = suspense.vnode.ssFallback;
|
|
7506
|
+
patch(null, latestFallback, container, anchor, parentComponent, null, namespace, slotScopeIds, optimized);
|
|
7507
|
+
setActiveBranch(suspense, latestFallback);
|
|
7180
7508
|
};
|
|
7181
7509
|
const delayEnter = fallbackVNode.transition && fallbackVNode.transition.mode === "out-in";
|
|
7182
7510
|
if (delayEnter) {
|
|
@@ -7197,10 +7525,16 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
|
|
|
7197
7525
|
registerDep(instance, onResolve) {
|
|
7198
7526
|
const isInPendingSuspense = !!suspense.pendingBranch;
|
|
7199
7527
|
if (isInPendingSuspense) suspense.deps++;
|
|
7528
|
+
const hydratedEl = instance.vnode && instance.vnode.el;
|
|
7200
7529
|
instance.asyncDep.catch((err) => {
|
|
7201
7530
|
handleError(err, instance, 0);
|
|
7202
7531
|
}).then((asyncSetupResult) => {
|
|
7203
7532
|
if (instance.isUnmounted || suspense.isUnmounted || suspense.pendingId !== instance.suspenseId) return;
|
|
7533
|
+
setCurrentInstance(null, void 0);
|
|
7534
|
+
if (hydratedEl && !instance.scope.active) {
|
|
7535
|
+
if (isInPendingSuspense && --suspense.deps === 0) suspense.resolve();
|
|
7536
|
+
return;
|
|
7537
|
+
}
|
|
7204
7538
|
instance.asyncResolved = true;
|
|
7205
7539
|
onResolve(asyncSetupResult);
|
|
7206
7540
|
if (isInPendingSuspense && --suspense.deps === 0) suspense.resolve();
|
|
@@ -7247,9 +7581,10 @@ function normalizeSuspenseSlot(s) {
|
|
|
7247
7581
|
return s;
|
|
7248
7582
|
}
|
|
7249
7583
|
function queueEffectWithSuspense(fn, id, suspense) {
|
|
7250
|
-
if (suspense && suspense.pendingBranch)
|
|
7251
|
-
|
|
7252
|
-
|
|
7584
|
+
if (suspense && suspense.pendingBranch) {
|
|
7585
|
+
if (isArray(fn)) suspense.effects.push(...fn);
|
|
7586
|
+
else suspense.effects.push(fn);
|
|
7587
|
+
} else queuePostFlushCb(fn, id);
|
|
7253
7588
|
}
|
|
7254
7589
|
function setActiveBranch(suspense, branch) {
|
|
7255
7590
|
suspense.activeBranch = branch;
|
|
@@ -7452,8 +7787,10 @@ function _createVNode(type, props = null, children = null, patchFlag = 0, dynami
|
|
|
7452
7787
|
if (isVNode(type)) {
|
|
7453
7788
|
const cloned = cloneVNode(type, props, true);
|
|
7454
7789
|
if (children) normalizeChildren(cloned, children);
|
|
7455
|
-
if (isBlockTreeEnabled > 0 && !isBlockNode && currentBlock)
|
|
7456
|
-
|
|
7790
|
+
if (isBlockTreeEnabled > 0 && !isBlockNode && currentBlock) {
|
|
7791
|
+
if (cloned.shapeFlag & 6) currentBlock[currentBlock.indexOf(type)] = cloned;
|
|
7792
|
+
else currentBlock.push(cloned);
|
|
7793
|
+
}
|
|
7457
7794
|
cloned.patchFlag = -2;
|
|
7458
7795
|
return cloned;
|
|
7459
7796
|
}
|
|
@@ -7507,12 +7844,32 @@ function cloneVNode(vnode, extraProps, mergeRef = false, cloneTransition = false
|
|
|
7507
7844
|
el: vnode.el,
|
|
7508
7845
|
anchor: vnode.anchor,
|
|
7509
7846
|
ctx: vnode.ctx,
|
|
7510
|
-
ce: vnode.ce
|
|
7847
|
+
ce: vnode.ce,
|
|
7848
|
+
vi: vnode.vi,
|
|
7849
|
+
vs: cloneVaporSlotMeta(vnode),
|
|
7850
|
+
vb: vnode.vb,
|
|
7851
|
+
ibu: vnode.ibu,
|
|
7852
|
+
iu: vnode.iu,
|
|
7853
|
+
cacheIndex: vnode.cacheIndex
|
|
7511
7854
|
};
|
|
7512
7855
|
if (transition && cloneTransition) setTransitionHooks(cloned, transition.clone(cloned));
|
|
7513
7856
|
defineLegacyVNodeProperties(cloned);
|
|
7514
7857
|
return cloned;
|
|
7515
7858
|
}
|
|
7859
|
+
function cloneVaporSlotMeta(vnode) {
|
|
7860
|
+
const vaporSlot = vnode.vs;
|
|
7861
|
+
if (!vaporSlot) return vaporSlot;
|
|
7862
|
+
const cloned = {
|
|
7863
|
+
slot: vaporSlot.slot,
|
|
7864
|
+
outlets: vaporSlot.outlets
|
|
7865
|
+
};
|
|
7866
|
+
if (vnode.el) {
|
|
7867
|
+
cloned.state = vaporSlot.state;
|
|
7868
|
+
cloned.ref = vaporSlot.ref;
|
|
7869
|
+
cloned.scope = vaporSlot.scope;
|
|
7870
|
+
}
|
|
7871
|
+
return cloned;
|
|
7872
|
+
}
|
|
7516
7873
|
/**
|
|
7517
7874
|
* @private
|
|
7518
7875
|
*/
|
|
@@ -7547,25 +7904,32 @@ function normalizeChildren(vnode, children) {
|
|
|
7547
7904
|
const { shapeFlag } = vnode;
|
|
7548
7905
|
if (children == null) children = null;
|
|
7549
7906
|
else if (isArray(children)) type = 16;
|
|
7550
|
-
else if (typeof children === "object")
|
|
7551
|
-
|
|
7552
|
-
|
|
7553
|
-
|
|
7554
|
-
|
|
7555
|
-
|
|
7907
|
+
else if (typeof children === "object") {
|
|
7908
|
+
if (shapeFlag & 65) {
|
|
7909
|
+
const slot = children.default;
|
|
7910
|
+
if (slot) {
|
|
7911
|
+
slot._c && (slot._d = false);
|
|
7912
|
+
normalizeChildren(vnode, slot());
|
|
7913
|
+
slot._c && (slot._d = true);
|
|
7914
|
+
}
|
|
7915
|
+
return;
|
|
7916
|
+
} else {
|
|
7917
|
+
type = 32;
|
|
7918
|
+
const slotFlag = children._;
|
|
7919
|
+
if (!slotFlag && !isInternalObject(children)) children._ctx = currentRenderingInstance;
|
|
7920
|
+
else if (slotFlag === 3 && currentRenderingInstance) {
|
|
7921
|
+
if (currentRenderingInstance.slots._ === 1) children._ = 1;
|
|
7922
|
+
else {
|
|
7923
|
+
children._ = 2;
|
|
7924
|
+
vnode.patchFlag |= 1024;
|
|
7925
|
+
}
|
|
7926
|
+
}
|
|
7556
7927
|
}
|
|
7557
|
-
|
|
7558
|
-
|
|
7559
|
-
|
|
7560
|
-
|
|
7561
|
-
if (!slotFlag && !isInternalObject(children)) children._ctx = currentRenderingInstance;
|
|
7562
|
-
else if (slotFlag === 3 && currentRenderingInstance) if (currentRenderingInstance.slots._ === 1) children._ = 1;
|
|
7563
|
-
else {
|
|
7564
|
-
children._ = 2;
|
|
7565
|
-
vnode.patchFlag |= 1024;
|
|
7928
|
+
} else if (isFunction(children)) {
|
|
7929
|
+
if (shapeFlag & 65) {
|
|
7930
|
+
normalizeChildren(vnode, { default: children });
|
|
7931
|
+
return;
|
|
7566
7932
|
}
|
|
7567
|
-
}
|
|
7568
|
-
else if (isFunction(children)) {
|
|
7569
7933
|
children = {
|
|
7570
7934
|
default: children,
|
|
7571
7935
|
_ctx: currentRenderingInstance
|
|
@@ -7638,6 +8002,16 @@ const setCurrentInstance = (instance, scope = instance !== null ? instance.scope
|
|
|
7638
8002
|
simpleSetCurrentInstance(instance);
|
|
7639
8003
|
}
|
|
7640
8004
|
};
|
|
8005
|
+
/**
|
|
8006
|
+
* Restores a snapshot returned by {@link setCurrentInstance}. Unlike calling
|
|
8007
|
+
* `setCurrentInstance(...prev)`, an `undefined` saved scope is restored
|
|
8008
|
+
* verbatim instead of re-triggering the `instance.scope` default.
|
|
8009
|
+
* @internal
|
|
8010
|
+
*/
|
|
8011
|
+
const restoreCurrentInstance = (prev) => {
|
|
8012
|
+
setCurrentScope(prev[1]);
|
|
8013
|
+
simpleSetCurrentInstance(prev[0]);
|
|
8014
|
+
};
|
|
7641
8015
|
const internalOptions = [
|
|
7642
8016
|
"ce",
|
|
7643
8017
|
"type",
|
|
@@ -7663,7 +8037,7 @@ const useInstanceOption = (key, silent = false) => {
|
|
|
7663
8037
|
};
|
|
7664
8038
|
//#endregion
|
|
7665
8039
|
//#region packages/runtime-core/src/component.ts
|
|
7666
|
-
const emptyAppContext =
|
|
8040
|
+
const emptyAppContext = /*@__PURE__*/ createAppContext();
|
|
7667
8041
|
let uid = 0;
|
|
7668
8042
|
function createComponentInstance(vnode, parent, suspense) {
|
|
7669
8043
|
const type = vnode.type;
|
|
@@ -7766,7 +8140,7 @@ function setupStatefulComponent(instance, isSSR) {
|
|
|
7766
8140
|
const setupResult = callWithErrorHandling(setup, instance, 0, [instance.props, setupContext]);
|
|
7767
8141
|
const isAsyncSetup = isPromise(setupResult);
|
|
7768
8142
|
setActiveSub(prevSub);
|
|
7769
|
-
|
|
8143
|
+
restoreCurrentInstance(prev);
|
|
7770
8144
|
if ((isAsyncSetup || instance.sp) && !isAsyncWrapper(instance)) markAsyncBoundary(instance);
|
|
7771
8145
|
if (isAsyncSetup) {
|
|
7772
8146
|
const unsetCurrentInstance = () => {
|
|
@@ -7774,7 +8148,12 @@ function setupStatefulComponent(instance, isSSR) {
|
|
|
7774
8148
|
};
|
|
7775
8149
|
setupResult.then(unsetCurrentInstance, unsetCurrentInstance);
|
|
7776
8150
|
if (isSSR) return setupResult.then((resolvedResult) => {
|
|
7777
|
-
|
|
8151
|
+
setInSSRSetupState(true);
|
|
8152
|
+
try {
|
|
8153
|
+
handleSetupResult(instance, resolvedResult, isSSR);
|
|
8154
|
+
} finally {
|
|
8155
|
+
setInSSRSetupState(false);
|
|
8156
|
+
}
|
|
7778
8157
|
}).catch((e) => {
|
|
7779
8158
|
handleError(e, instance, 0);
|
|
7780
8159
|
});
|
|
@@ -7783,9 +8162,10 @@ function setupStatefulComponent(instance, isSSR) {
|
|
|
7783
8162
|
} else finishComponentSetup(instance, isSSR);
|
|
7784
8163
|
}
|
|
7785
8164
|
function handleSetupResult(instance, setupResult, isSSR) {
|
|
7786
|
-
if (isFunction(setupResult))
|
|
7787
|
-
|
|
7788
|
-
|
|
8165
|
+
if (isFunction(setupResult)) {
|
|
8166
|
+
if (instance.type.__ssrInlineRender) instance.ssrRender = setupResult;
|
|
8167
|
+
else instance.render = setupResult;
|
|
8168
|
+
} else if (isObject(setupResult)) instance.setupState = proxyRefs(setupResult);
|
|
7789
8169
|
finishComponentSetup(instance, isSSR);
|
|
7790
8170
|
}
|
|
7791
8171
|
let compile$1;
|
|
@@ -7829,7 +8209,7 @@ function finishComponentSetup(instance, isSSR, skipOptions) {
|
|
|
7829
8209
|
applyOptions(instance);
|
|
7830
8210
|
} finally {
|
|
7831
8211
|
setActiveSub(prevSub);
|
|
7832
|
-
|
|
8212
|
+
restoreCurrentInstance(prevInstance);
|
|
7833
8213
|
}
|
|
7834
8214
|
}
|
|
7835
8215
|
}
|
|
@@ -7855,14 +8235,13 @@ function getComponentPublicInstance(instance) {
|
|
|
7855
8235
|
if (instance.exposed) return instance.exposeProxy || (instance.exposeProxy = new Proxy(proxyRefs(markRaw(instance.exposed)), {
|
|
7856
8236
|
get(target, key) {
|
|
7857
8237
|
if (key in target) return target[key];
|
|
7858
|
-
else {
|
|
8238
|
+
else if (!instance.vapor) {
|
|
7859
8239
|
const publicPropertiesMap = getPublicPropertiesMap();
|
|
7860
8240
|
if (key in publicPropertiesMap) return publicPropertiesMap[key](instance);
|
|
7861
8241
|
}
|
|
7862
8242
|
},
|
|
7863
8243
|
has(target, key) {
|
|
7864
|
-
|
|
7865
|
-
return key in target || key in publicPropertiesMap;
|
|
8244
|
+
return key in target || !instance.vapor && key in getPublicPropertiesMap();
|
|
7866
8245
|
}
|
|
7867
8246
|
}));
|
|
7868
8247
|
else return instance.proxy;
|
|
@@ -7884,11 +8263,12 @@ function h(type, propsOrChildren, children) {
|
|
|
7884
8263
|
try {
|
|
7885
8264
|
setBlockTracking(-1);
|
|
7886
8265
|
const l = arguments.length;
|
|
7887
|
-
if (l === 2)
|
|
7888
|
-
if (
|
|
7889
|
-
|
|
7890
|
-
|
|
7891
|
-
|
|
8266
|
+
if (l === 2) {
|
|
8267
|
+
if (isObject(propsOrChildren) && !isArray(propsOrChildren)) {
|
|
8268
|
+
if (isVNode(propsOrChildren)) return createVNode(type, null, [propsOrChildren]);
|
|
8269
|
+
return createVNode(type, propsOrChildren);
|
|
8270
|
+
} else return createVNode(type, null, propsOrChildren);
|
|
8271
|
+
} else {
|
|
7892
8272
|
if (l > 3) children = Array.prototype.slice.call(arguments, 2);
|
|
7893
8273
|
else if (l === 3 && isVNode(children)) children = [children];
|
|
7894
8274
|
return createVNode(type, propsOrChildren, children);
|
|
@@ -7899,15 +8279,7 @@ function h(type, propsOrChildren, children) {
|
|
|
7899
8279
|
}
|
|
7900
8280
|
//#endregion
|
|
7901
8281
|
//#region packages/runtime-core/src/customFormatter.ts
|
|
7902
|
-
function initCustomFormatter() {
|
|
7903
|
-
return;
|
|
7904
|
-
function isKeyOfType(Comp, key, type) {
|
|
7905
|
-
const opts = Comp[type];
|
|
7906
|
-
if (isArray(opts) && opts.includes(key) || isObject(opts) && key in opts) return true;
|
|
7907
|
-
if (Comp.extends && isKeyOfType(Comp.extends, key, type)) return true;
|
|
7908
|
-
if (Comp.mixins && Comp.mixins.some((m) => isKeyOfType(m, key, type))) return true;
|
|
7909
|
-
}
|
|
7910
|
-
}
|
|
8282
|
+
function initCustomFormatter() {}
|
|
7911
8283
|
//#endregion
|
|
7912
8284
|
//#region packages/runtime-core/src/helpers/withMemo.ts
|
|
7913
8285
|
function withMemo(memo, render, cache, index) {
|
|
@@ -7927,7 +8299,7 @@ function isMemoSame(cached, memo) {
|
|
|
7927
8299
|
}
|
|
7928
8300
|
//#endregion
|
|
7929
8301
|
//#region packages/runtime-core/src/index.ts
|
|
7930
|
-
const version = "3.6.0-
|
|
8302
|
+
const version = "3.6.0-rc.10";
|
|
7931
8303
|
const warn = NOOP;
|
|
7932
8304
|
/**
|
|
7933
8305
|
* Runtime error messages. Only exposed in dev or esm builds.
|
|
@@ -7949,7 +8321,10 @@ const ssrUtils = {
|
|
|
7949
8321
|
getComponentPublicInstance,
|
|
7950
8322
|
ensureValidVNode,
|
|
7951
8323
|
pushWarningContext,
|
|
7952
|
-
popWarningContext
|
|
8324
|
+
popWarningContext,
|
|
8325
|
+
VaporSlot,
|
|
8326
|
+
rawVaporSlotKey,
|
|
8327
|
+
invokeSlotFallback
|
|
7953
8328
|
};
|
|
7954
8329
|
/**
|
|
7955
8330
|
* @internal only exposed in compat builds
|
|
@@ -7971,13 +8346,13 @@ const DeprecationTypes = DeprecationTypes$1;
|
|
|
7971
8346
|
let policy = void 0;
|
|
7972
8347
|
const tt = typeof window !== "undefined" && window.trustedTypes;
|
|
7973
8348
|
if (tt) try {
|
|
7974
|
-
policy =
|
|
8349
|
+
policy = /*@__PURE__*/ tt.createPolicy("vue", { createHTML: (val) => val });
|
|
7975
8350
|
} catch (e) {}
|
|
7976
8351
|
const unsafeToTrustedHTML = policy ? (val) => policy.createHTML(val) : (val) => val;
|
|
7977
8352
|
const svgNS = "http://www.w3.org/2000/svg";
|
|
7978
8353
|
const mathmlNS = "http://www.w3.org/1998/Math/MathML";
|
|
7979
8354
|
const doc = typeof document !== "undefined" ? document : null;
|
|
7980
|
-
const templateContainer = doc &&
|
|
8355
|
+
const templateContainer = doc && /*@__PURE__*/ doc.createElement("template");
|
|
7981
8356
|
const nodeOps = {
|
|
7982
8357
|
insert: (child, parent, anchor) => {
|
|
7983
8358
|
parent.insertBefore(child, anchor || null);
|
|
@@ -8051,7 +8426,7 @@ const DOMTransitionPropsValidators = {
|
|
|
8051
8426
|
leaveActiveClass: String,
|
|
8052
8427
|
leaveToClass: String
|
|
8053
8428
|
};
|
|
8054
|
-
const TransitionPropsValidators =
|
|
8429
|
+
const TransitionPropsValidators = /*@__PURE__*/ extend({}, BaseTransitionPropsValidators, DOMTransitionPropsValidators);
|
|
8055
8430
|
/**
|
|
8056
8431
|
* Wrap logic that attaches extra properties to Transition in a function
|
|
8057
8432
|
* so that it can be annotated as pure
|
|
@@ -8066,7 +8441,7 @@ const decorate$1 = (t) => {
|
|
|
8066
8441
|
* DOM Transition is a higher-order-component based on the platform-agnostic
|
|
8067
8442
|
* base Transition component, with DOM-specific logic.
|
|
8068
8443
|
*/
|
|
8069
|
-
const Transition =
|
|
8444
|
+
const Transition = /*@__PURE__*/ decorate$1((props, { slots }) => h(BaseTransition, resolveTransitionProps(props), slots));
|
|
8070
8445
|
/**
|
|
8071
8446
|
* #3227 Incoming hooks may be merged into arrays when wrapping Transition
|
|
8072
8447
|
* with custom HOCs.
|
|
@@ -8304,14 +8679,15 @@ const vShow = {
|
|
|
8304
8679
|
},
|
|
8305
8680
|
updated(el, { value, oldValue }, { transition }) {
|
|
8306
8681
|
if (!value === !oldValue) return;
|
|
8307
|
-
if (transition)
|
|
8308
|
-
|
|
8309
|
-
|
|
8310
|
-
|
|
8311
|
-
|
|
8312
|
-
|
|
8313
|
-
|
|
8314
|
-
|
|
8682
|
+
if (transition) {
|
|
8683
|
+
if (value) {
|
|
8684
|
+
transition.beforeEnter(el);
|
|
8685
|
+
setDisplay(el, true);
|
|
8686
|
+
transition.enter(el);
|
|
8687
|
+
} else transition.leave(el, () => {
|
|
8688
|
+
setDisplay(el, false);
|
|
8689
|
+
});
|
|
8690
|
+
} else setDisplay(el, value);
|
|
8315
8691
|
},
|
|
8316
8692
|
beforeUnmount(el, { value }) {
|
|
8317
8693
|
setDisplay(el, value);
|
|
@@ -8342,15 +8718,20 @@ function patchStyle(el, prev, next) {
|
|
|
8342
8718
|
const isCssString = isString(next);
|
|
8343
8719
|
let hasControlledDisplay = false;
|
|
8344
8720
|
if (next && !isCssString) {
|
|
8345
|
-
if (prev)
|
|
8346
|
-
|
|
8347
|
-
|
|
8348
|
-
|
|
8349
|
-
|
|
8721
|
+
if (prev) {
|
|
8722
|
+
if (!isString(prev)) {
|
|
8723
|
+
for (const key in prev) if (next[key] == null) setStyle(style, key, "");
|
|
8724
|
+
} else for (const prevStyle of prev.split(";")) {
|
|
8725
|
+
const key = prevStyle.slice(0, prevStyle.indexOf(":")).trim();
|
|
8726
|
+
if (next[key] == null) setStyle(style, key, "");
|
|
8727
|
+
}
|
|
8350
8728
|
}
|
|
8351
8729
|
for (const key in next) {
|
|
8352
8730
|
if (key === "display") hasControlledDisplay = true;
|
|
8353
|
-
|
|
8731
|
+
const value = next[key];
|
|
8732
|
+
if (value != null) {
|
|
8733
|
+
if (!shouldPreserveTextareaResizeStyle(el, key, !isString(prev) && prev ? prev[key] : void 0, value)) setStyle(style, key, value);
|
|
8734
|
+
} else setStyle(style, key, "");
|
|
8354
8735
|
}
|
|
8355
8736
|
} else if (isCssString) {
|
|
8356
8737
|
if (prev !== next) {
|
|
@@ -8359,7 +8740,11 @@ function patchStyle(el, prev, next) {
|
|
|
8359
8740
|
style.cssText = next;
|
|
8360
8741
|
hasControlledDisplay = displayRE.test(next);
|
|
8361
8742
|
}
|
|
8362
|
-
} else if (prev)
|
|
8743
|
+
} else if (prev) {
|
|
8744
|
+
const cssVarText = style[CSS_VAR_TEXT];
|
|
8745
|
+
if (cssVarText) style.cssText = cssVarText;
|
|
8746
|
+
else el.removeAttribute("style");
|
|
8747
|
+
}
|
|
8363
8748
|
if (vShowOriginalDisplay in el) {
|
|
8364
8749
|
el[vShowOriginalDisplay] = hasControlledDisplay ? style.display : "";
|
|
8365
8750
|
if (el[vShowHidden]) style.display = "none";
|
|
@@ -8370,8 +8755,10 @@ function setStyle(style, name, rawVal) {
|
|
|
8370
8755
|
if (isArray(rawVal)) rawVal.forEach((v) => setStyle(style, name, v));
|
|
8371
8756
|
else {
|
|
8372
8757
|
const val = rawVal == null ? "" : String(rawVal);
|
|
8373
|
-
if (name.startsWith("--"))
|
|
8374
|
-
|
|
8758
|
+
if (name.startsWith("--")) {
|
|
8759
|
+
if (importantRE.test(val)) style.setProperty(name, val.replace(importantRE, ""), "important");
|
|
8760
|
+
else style.setProperty(name, val);
|
|
8761
|
+
} else {
|
|
8375
8762
|
const prefixed = autoPrefix(style, name);
|
|
8376
8763
|
if (importantRE.test(val)) style.setProperty(hyphenate(prefixed), val.replace(importantRE, ""), "important");
|
|
8377
8764
|
else style[prefixed] = val;
|
|
@@ -8396,19 +8783,28 @@ function autoPrefix(style, rawName) {
|
|
|
8396
8783
|
}
|
|
8397
8784
|
return rawName;
|
|
8398
8785
|
}
|
|
8786
|
+
/**
|
|
8787
|
+
* Browsers update textarea width/height directly during native resize.
|
|
8788
|
+
* Only special-case this common textarea path for now; other resize scenarios
|
|
8789
|
+
* still follow normal vnode style patching.
|
|
8790
|
+
*/
|
|
8791
|
+
function shouldPreserveTextareaResizeStyle(el, key, prev, next) {
|
|
8792
|
+
return el.tagName === "TEXTAREA" && (key === "width" || key === "height") && isString(next) && prev === next;
|
|
8793
|
+
}
|
|
8399
8794
|
//#endregion
|
|
8400
8795
|
//#region packages/runtime-dom/src/modules/attrs.ts
|
|
8401
8796
|
const xlinkNS = "http://www.w3.org/1999/xlink";
|
|
8402
8797
|
function patchAttr(el, key, value, isSVG, instance, isBoolean = isSpecialBooleanAttr(key)) {
|
|
8403
|
-
if (isSVG && key.startsWith("xlink:"))
|
|
8404
|
-
|
|
8405
|
-
|
|
8798
|
+
if (isSVG && key.startsWith("xlink:")) {
|
|
8799
|
+
if (value == null) el.removeAttributeNS(xlinkNS, key.slice(6, key.length));
|
|
8800
|
+
else el.setAttributeNS(xlinkNS, key, value);
|
|
8801
|
+
} else {
|
|
8406
8802
|
if (compatCoerceAttr(el, key, value, instance)) return;
|
|
8407
8803
|
if (value == null || isBoolean && !includeBooleanAttr(value)) el.removeAttribute(key);
|
|
8408
8804
|
else el.setAttribute(key, isBoolean ? "" : isSymbol(value) ? String(value) : value);
|
|
8409
8805
|
}
|
|
8410
8806
|
}
|
|
8411
|
-
const isEnumeratedAttr =
|
|
8807
|
+
const isEnumeratedAttr = /*@__PURE__*/ makeMap("contenteditable,draggable,spellcheck");
|
|
8412
8808
|
function compatCoerceAttr(el, key, value, instance = null) {
|
|
8413
8809
|
if (isEnumeratedAttr(key)) {
|
|
8414
8810
|
const v2CoercedValue = value === void 0 ? null : value === null || value === false || value === "false" ? "false" : "true";
|
|
@@ -8476,7 +8872,7 @@ function patchEvent(el, rawName, prevValue, nextValue, instance = null) {
|
|
|
8476
8872
|
const existingInvoker = invokers[rawName];
|
|
8477
8873
|
if (nextValue && existingInvoker) existingInvoker.value = nextValue;
|
|
8478
8874
|
else {
|
|
8479
|
-
const [name, options] =
|
|
8875
|
+
const [name, options] = parseEventName(rawName);
|
|
8480
8876
|
if (nextValue) addEventListener(el, name, invokers[rawName] = createInvoker(nextValue, instance), options);
|
|
8481
8877
|
else if (existingInvoker) {
|
|
8482
8878
|
removeEventListener(el, name, existingInvoker, options);
|
|
@@ -8484,42 +8880,45 @@ function patchEvent(el, rawName, prevValue, nextValue, instance = null) {
|
|
|
8484
8880
|
}
|
|
8485
8881
|
}
|
|
8486
8882
|
}
|
|
8487
|
-
const optionsModifierRE = /(
|
|
8488
|
-
|
|
8883
|
+
const optionsModifierRE = /(Once|Passive|Capture)$/;
|
|
8884
|
+
const optionsModifierEventRE = /^on:?(?:Once|Passive|Capture)$/;
|
|
8885
|
+
function parseEventName(name) {
|
|
8489
8886
|
let options;
|
|
8490
|
-
|
|
8491
|
-
|
|
8492
|
-
|
|
8493
|
-
|
|
8494
|
-
|
|
8495
|
-
options[m[0].toLowerCase()] = true;
|
|
8496
|
-
}
|
|
8887
|
+
let m;
|
|
8888
|
+
while ((m = name.match(optionsModifierRE)) && !optionsModifierEventRE.test(name)) {
|
|
8889
|
+
if (!options) options = {};
|
|
8890
|
+
name = name.slice(0, name.length - m[1].length);
|
|
8891
|
+
options[m[1].toLowerCase()] = true;
|
|
8497
8892
|
}
|
|
8498
8893
|
return [name[2] === ":" ? name.slice(3) : hyphenate(name.slice(2)), options];
|
|
8499
8894
|
}
|
|
8500
8895
|
let cachedNow = 0;
|
|
8501
|
-
const p =
|
|
8896
|
+
const p = /*@__PURE__*/ Promise.resolve();
|
|
8502
8897
|
const getNow = () => cachedNow || (p.then(() => cachedNow = 0), cachedNow = Date.now());
|
|
8503
8898
|
function createInvoker(initialValue, instance) {
|
|
8504
8899
|
const invoker = (e) => {
|
|
8505
8900
|
if (!e._vts) e._vts = Date.now();
|
|
8506
8901
|
else if (e._vts <= invoker.attached) return;
|
|
8507
|
-
|
|
8902
|
+
const value = invoker.value;
|
|
8903
|
+
if (isArray(value)) {
|
|
8904
|
+
const originalStop = e.stopImmediatePropagation;
|
|
8905
|
+
e.stopImmediatePropagation = () => {
|
|
8906
|
+
originalStop.call(e);
|
|
8907
|
+
e._stopped = true;
|
|
8908
|
+
};
|
|
8909
|
+
const handlers = value.slice();
|
|
8910
|
+
const args = [e];
|
|
8911
|
+
for (let i = 0; i < handlers.length; i++) {
|
|
8912
|
+
if (e._stopped) break;
|
|
8913
|
+
const handler = handlers[i];
|
|
8914
|
+
if (handler) callWithAsyncErrorHandling(handler, instance, 5, args);
|
|
8915
|
+
}
|
|
8916
|
+
} else callWithAsyncErrorHandling(value, instance, 5, [e]);
|
|
8508
8917
|
};
|
|
8509
8918
|
invoker.value = initialValue;
|
|
8510
8919
|
invoker.attached = getNow();
|
|
8511
8920
|
return invoker;
|
|
8512
8921
|
}
|
|
8513
|
-
function patchStopImmediatePropagation(e, value) {
|
|
8514
|
-
if (isArray(value)) {
|
|
8515
|
-
const originalStop = e.stopImmediatePropagation;
|
|
8516
|
-
e.stopImmediatePropagation = () => {
|
|
8517
|
-
originalStop.call(e);
|
|
8518
|
-
e._stopped = true;
|
|
8519
|
-
};
|
|
8520
|
-
return value.map((fn) => (e) => !e._stopped && fn && fn(e));
|
|
8521
|
-
} else return value;
|
|
8522
|
-
}
|
|
8523
8922
|
//#endregion
|
|
8524
8923
|
//#region packages/runtime-dom/src/patchProp.ts
|
|
8525
8924
|
const patchProp = (el, key, prevValue, nextValue, namespace, parentComponent) => {
|
|
@@ -8557,7 +8956,7 @@ function shouldSetAsPropForVueCE(el, key) {
|
|
|
8557
8956
|
//#endregion
|
|
8558
8957
|
//#region packages/runtime-dom/src/apiCustomElement.ts
|
|
8559
8958
|
const REMOVAL = {};
|
|
8560
|
-
|
|
8959
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
8561
8960
|
function defineCustomElement(options, extraOptions, _createApp) {
|
|
8562
8961
|
let Comp = /* @__PURE__ */ defineComponent(options, extraOptions);
|
|
8563
8962
|
if (isPlainObject(Comp)) Comp = extend({}, Comp, extraOptions);
|
|
@@ -8606,12 +9005,14 @@ var VueElementBase = class VueElementBase extends BaseClass {
|
|
|
8606
9005
|
this._parent = parent;
|
|
8607
9006
|
break;
|
|
8608
9007
|
}
|
|
8609
|
-
if (!this._instance)
|
|
8610
|
-
|
|
8611
|
-
this._pendingResolve =
|
|
8612
|
-
|
|
8613
|
-
|
|
8614
|
-
|
|
9008
|
+
if (!this._instance) {
|
|
9009
|
+
if (this._resolved) this._mountComponent(this._def);
|
|
9010
|
+
else if (parent && parent._pendingResolve) this._pendingResolve = parent._pendingResolve.then(() => {
|
|
9011
|
+
this._pendingResolve = void 0;
|
|
9012
|
+
if (this.isConnected) return this._resolveDef();
|
|
9013
|
+
});
|
|
9014
|
+
else this._resolveDef();
|
|
9015
|
+
}
|
|
8615
9016
|
}
|
|
8616
9017
|
disconnectedCallback() {
|
|
8617
9018
|
this._connected = false;
|
|
@@ -8645,7 +9046,7 @@ var VueElementBase = class VueElementBase extends BaseClass {
|
|
|
8645
9046
|
* resolve inner component definition (handle possible async component)
|
|
8646
9047
|
*/
|
|
8647
9048
|
_resolveDef() {
|
|
8648
|
-
if (this._pendingResolve) return;
|
|
9049
|
+
if (this._pendingResolve) return this._pendingResolve;
|
|
8649
9050
|
for (let i = 0; i < this.attributes.length; i++) this._setAttr(this.attributes[i].name);
|
|
8650
9051
|
this._ob = new MutationObserver(this._processMutations.bind(this));
|
|
8651
9052
|
this._ob.observe(this, { attributes: true });
|
|
@@ -8674,6 +9075,7 @@ var VueElementBase = class VueElementBase extends BaseClass {
|
|
|
8674
9075
|
this._def = def;
|
|
8675
9076
|
resolve(def);
|
|
8676
9077
|
});
|
|
9078
|
+
return this._pendingResolve;
|
|
8677
9079
|
} else resolve(this._def);
|
|
8678
9080
|
}
|
|
8679
9081
|
_mountComponent(def) {
|
|
@@ -8803,13 +9205,11 @@ var VueElementBase = class VueElementBase extends BaseClass {
|
|
|
8803
9205
|
_renderSlots() {
|
|
8804
9206
|
const outlets = this._getSlots();
|
|
8805
9207
|
const scopeId = this._instance.type.__scopeId;
|
|
8806
|
-
const slotReplacements = /* @__PURE__ */ new Map();
|
|
8807
9208
|
for (let i = 0; i < outlets.length; i++) {
|
|
8808
9209
|
const o = outlets[i];
|
|
8809
9210
|
const slotName = o.getAttribute("name") || "default";
|
|
8810
9211
|
const content = this._slots[slotName];
|
|
8811
9212
|
const parent = o.parentNode;
|
|
8812
|
-
const replacementNodes = [];
|
|
8813
9213
|
if (content) for (const n of content) {
|
|
8814
9214
|
if (scopeId && n.nodeType === 1) {
|
|
8815
9215
|
const id = scopeId + "-s";
|
|
@@ -8819,17 +9219,10 @@ var VueElementBase = class VueElementBase extends BaseClass {
|
|
|
8819
9219
|
while (child = walker.nextNode()) child.setAttribute(id, "");
|
|
8820
9220
|
}
|
|
8821
9221
|
parent.insertBefore(n, o);
|
|
8822
|
-
replacementNodes.push(n);
|
|
8823
|
-
}
|
|
8824
|
-
else while (o.firstChild) {
|
|
8825
|
-
const child = o.firstChild;
|
|
8826
|
-
parent.insertBefore(child, o);
|
|
8827
|
-
replacementNodes.push(child);
|
|
8828
9222
|
}
|
|
9223
|
+
else while (o.firstChild) parent.insertBefore(o.firstChild, o);
|
|
8829
9224
|
parent.removeChild(o);
|
|
8830
|
-
slotReplacements.set(o, replacementNodes);
|
|
8831
9225
|
}
|
|
8832
|
-
this._updateSlotNodes(slotReplacements);
|
|
8833
9226
|
}
|
|
8834
9227
|
/**
|
|
8835
9228
|
* @internal
|
|
@@ -8868,7 +9261,7 @@ var VueElementBase = class VueElementBase extends BaseClass {
|
|
|
8868
9261
|
* @internal
|
|
8869
9262
|
*/
|
|
8870
9263
|
_hasShadowRoot() {
|
|
8871
|
-
return this.
|
|
9264
|
+
return this._root !== this;
|
|
8872
9265
|
}
|
|
8873
9266
|
/**
|
|
8874
9267
|
* @internal
|
|
@@ -8901,10 +9294,6 @@ var VueElement = class extends VueElementBase {
|
|
|
8901
9294
|
if (this._instance && this._instance.ce) this._instance.ce = void 0;
|
|
8902
9295
|
this._app = this._instance = null;
|
|
8903
9296
|
}
|
|
8904
|
-
/**
|
|
8905
|
-
* Only called when shadowRoot is false
|
|
8906
|
-
*/
|
|
8907
|
-
_updateSlotNodes(replacements) {}
|
|
8908
9297
|
_createVNode() {
|
|
8909
9298
|
const baseProps = {};
|
|
8910
9299
|
if (!this.shadowRoot) baseProps.onVnodeMounted = baseProps.onVnodeUpdated = this._renderSlots.bind(this);
|
|
@@ -8960,7 +9349,7 @@ const decorate = (t) => {
|
|
|
8960
9349
|
};
|
|
8961
9350
|
const TransitionGroup = /* @__PURE__ */ decorate({
|
|
8962
9351
|
name: "TransitionGroup",
|
|
8963
|
-
props:
|
|
9352
|
+
props: /*@__PURE__*/ extend({}, TransitionPropsValidators, {
|
|
8964
9353
|
tag: String,
|
|
8965
9354
|
moveClass: String
|
|
8966
9355
|
}),
|
|
@@ -8994,7 +9383,7 @@ const TransitionGroup = /* @__PURE__ */ decorate({
|
|
|
8994
9383
|
prevChildren = [];
|
|
8995
9384
|
if (children) for (let i = 0; i < children.length; i++) {
|
|
8996
9385
|
const child = children[i];
|
|
8997
|
-
if (child.el && child.el instanceof Element) {
|
|
9386
|
+
if (child.el && child.el instanceof Element && !child.el[vShowHidden]) {
|
|
8998
9387
|
prevChildren.push(child);
|
|
8999
9388
|
setTransitionHooks(child, resolveTransitionHooks(child, cssTransitionProps, state, instance));
|
|
9000
9389
|
positionMap.set(child, getPosition(child.el));
|
|
@@ -9091,13 +9480,22 @@ function onCompositionEnd(e) {
|
|
|
9091
9480
|
}
|
|
9092
9481
|
}
|
|
9093
9482
|
const assignKey = Symbol("_assign");
|
|
9483
|
+
const initialValueKey = Symbol("_initialValue");
|
|
9094
9484
|
const vModelText = {
|
|
9095
9485
|
created(el, { modifiers: { lazy, trim, number } }, vnode) {
|
|
9486
|
+
if (el.parentNode) {
|
|
9487
|
+
if (el.type === "text") el[initialValueKey] = el.defaultValue.replace(/[\r\n]/g, "");
|
|
9488
|
+
else if (el.type === "textarea") el[initialValueKey] = el.defaultValue.replace(/\r\n?/g, "\n");
|
|
9489
|
+
}
|
|
9096
9490
|
el[assignKey] = getModelAssigner(vnode);
|
|
9097
9491
|
vModelTextInit(el, trim, number || !!(vnode.props && vnode.props.type === "number"), lazy);
|
|
9098
9492
|
},
|
|
9099
|
-
mounted(el, { value }) {
|
|
9100
|
-
|
|
9493
|
+
mounted(el, { value, modifiers: { trim, number } }) {
|
|
9494
|
+
const newValue = value == null ? "" : value;
|
|
9495
|
+
const initialValue = el[initialValueKey];
|
|
9496
|
+
delete el[initialValueKey];
|
|
9497
|
+
if (initialValue !== void 0 && (el.type === "text" || el.type === "textarea") && el.value !== initialValue) el[assignKey](castValue(el.value, trim, number));
|
|
9498
|
+
else el.value = newValue;
|
|
9101
9499
|
},
|
|
9102
9500
|
beforeUpdate(el, { value, oldValue, modifiers: { lazy, trim, number } }, vnode) {
|
|
9103
9501
|
el[assignKey] = getModelAssigner(vnode);
|
|
@@ -9217,7 +9615,8 @@ const vModelSelect = {
|
|
|
9217
9615
|
mounted(el, { value }) {
|
|
9218
9616
|
vModelSetSelected(el, value);
|
|
9219
9617
|
},
|
|
9220
|
-
beforeUpdate(el,
|
|
9618
|
+
beforeUpdate(el, { value }, vnode) {
|
|
9619
|
+
el._modelValue = value;
|
|
9221
9620
|
el[assignKey] = getModelAssigner(vnode);
|
|
9222
9621
|
},
|
|
9223
9622
|
updated(el, { value }) {
|
|
@@ -9228,39 +9627,61 @@ const vModelSelect = {
|
|
|
9228
9627
|
* @internal
|
|
9229
9628
|
*/
|
|
9230
9629
|
const vModelSelectInit = (el, value, number, set) => {
|
|
9231
|
-
|
|
9630
|
+
el._modelValue = value;
|
|
9232
9631
|
addEventListener(el, "change", () => {
|
|
9233
9632
|
const selectedVal = Array.prototype.filter.call(el.options, (o) => o.selected).map((o) => number ? looseToNumber(getValue(o)) : getValue(o));
|
|
9234
|
-
|
|
9235
|
-
el.
|
|
9236
|
-
|
|
9237
|
-
|
|
9238
|
-
|
|
9633
|
+
const multiple = el.multiple;
|
|
9634
|
+
const assignedValue = multiple ? isSet(el._modelValue) ? new Set(selectedVal) : selectedVal : selectedVal[0];
|
|
9635
|
+
const pending = el._pendingValue = [multiple, multiple ? isArray(assignedValue) ? selectedVal.slice() : selectedVal : assignedValue];
|
|
9636
|
+
try {
|
|
9637
|
+
(set || el[assignKey])(assignedValue);
|
|
9638
|
+
} finally {
|
|
9639
|
+
nextTick(() => {
|
|
9640
|
+
if (el._pendingValue === pending) el._pendingValue = void 0;
|
|
9641
|
+
});
|
|
9642
|
+
}
|
|
9239
9643
|
});
|
|
9240
9644
|
};
|
|
9645
|
+
function isSameSelectValue(value, assignedValue, multiple) {
|
|
9646
|
+
if (!multiple) return looseEqual(value, assignedValue);
|
|
9647
|
+
if (isArray(value)) return looseEqual(value, assignedValue);
|
|
9648
|
+
if (isSet(value)) {
|
|
9649
|
+
if (value.size !== assignedValue.length) return false;
|
|
9650
|
+
for (const item of assignedValue) if (!value.has(item)) return false;
|
|
9651
|
+
return true;
|
|
9652
|
+
}
|
|
9653
|
+
return false;
|
|
9654
|
+
}
|
|
9241
9655
|
/**
|
|
9242
9656
|
* @internal
|
|
9243
9657
|
*/
|
|
9244
9658
|
const vModelSetSelected = (el, value) => {
|
|
9245
|
-
|
|
9659
|
+
el._modelValue = value;
|
|
9660
|
+
const pending = el._pendingValue;
|
|
9661
|
+
el._pendingValue = void 0;
|
|
9662
|
+
if (pending && pending[0] === el.multiple && isSameSelectValue(value, pending[1], pending[0])) return;
|
|
9663
|
+
setSelected(el, value);
|
|
9664
|
+
};
|
|
9665
|
+
function setSelected(el, value) {
|
|
9246
9666
|
const isMultiple = el.multiple;
|
|
9247
9667
|
const isArrayValue = isArray(value);
|
|
9248
9668
|
if (isMultiple && !isArrayValue && !isSet(value)) return;
|
|
9249
9669
|
for (let i = 0, l = el.options.length; i < l; i++) {
|
|
9250
9670
|
const option = el.options[i];
|
|
9251
9671
|
const optionValue = getValue(option);
|
|
9252
|
-
if (isMultiple)
|
|
9253
|
-
|
|
9254
|
-
|
|
9255
|
-
|
|
9256
|
-
|
|
9257
|
-
|
|
9672
|
+
if (isMultiple) {
|
|
9673
|
+
if (isArrayValue) {
|
|
9674
|
+
const optionType = typeof optionValue;
|
|
9675
|
+
if (optionType === "string" || optionType === "number") option.selected = value.some((v) => String(v) === String(optionValue));
|
|
9676
|
+
else option.selected = looseIndexOf(value, optionValue) > -1;
|
|
9677
|
+
} else option.selected = value.has(optionValue);
|
|
9678
|
+
} else if (looseEqual(getValue(option), value)) {
|
|
9258
9679
|
if (el.selectedIndex !== i) el.selectedIndex = i;
|
|
9259
9680
|
return;
|
|
9260
9681
|
}
|
|
9261
9682
|
}
|
|
9262
9683
|
if (!isMultiple && el.selectedIndex !== -1) el.selectedIndex = -1;
|
|
9263
|
-
}
|
|
9684
|
+
}
|
|
9264
9685
|
/**
|
|
9265
9686
|
* @internal retrieve raw value set via :value bindings
|
|
9266
9687
|
*/
|
|
@@ -9573,7 +9994,7 @@ var src_exports = /* @__PURE__ */ __exportAll({
|
|
|
9573
9994
|
withModifiers: () => withModifiers,
|
|
9574
9995
|
withScopeId: () => withScopeId
|
|
9575
9996
|
});
|
|
9576
|
-
const rendererOptions =
|
|
9997
|
+
const rendererOptions = /*@__PURE__*/ extend({ patchProp }, nodeOps);
|
|
9577
9998
|
let renderer;
|
|
9578
9999
|
let enabledHydration = false;
|
|
9579
10000
|
function ensureRenderer() {
|
|
@@ -9906,7 +10327,7 @@ function convertToBlock(node, { helper, removeHelper, inSSR }) {
|
|
|
9906
10327
|
//#endregion
|
|
9907
10328
|
//#region node_modules/.pnpm/entities@7.0.1/node_modules/entities/dist/esm/decode-codepoint.js
|
|
9908
10329
|
var _a;
|
|
9909
|
-
const decodeMap = new Map([
|
|
10330
|
+
const decodeMap = /* @__PURE__ */ new Map([
|
|
9910
10331
|
[0, 65533],
|
|
9911
10332
|
[128, 8364],
|
|
9912
10333
|
[130, 8218],
|
|
@@ -9974,7 +10395,7 @@ function decodeBase64(input) {
|
|
|
9974
10395
|
}
|
|
9975
10396
|
//#endregion
|
|
9976
10397
|
//#region node_modules/.pnpm/entities@7.0.1/node_modules/entities/dist/esm/generated/decode-data-html.js
|
|
9977
|
-
const htmlDecodeTree = /* @__PURE__ */ decodeBase64("QR08ALkAAgH6AYsDNQR2BO0EPgXZBQEGLAbdBxMISQrvCmQLfQurDKQNLw4fD4YPpA+6D/IPAAAAAAAAAAAAAAAAKhBMEY8TmxUWF2EYLBkxGuAa3RsJHDscWR8YIC8jSCSIJcMl6ie3Ku8rEC0CLjoupS7kLgAIRU1hYmNmZ2xtbm9wcnN0dVQAWgBeAGUAaQBzAHcAfgCBAIQAhwCSAJoAoACsALMAbABpAGcAO4DGAMZAUAA7gCYAJkBjAHUAdABlADuAwQDBQHIiZXZlAAJhAAFpeW0AcgByAGMAO4DCAMJAEGRyAADgNdgE3XIAYQB2AGUAO4DAAMBA8CFoYZFj4SFjcgBhZAAAoFMqAAFncIsAjgBvAG4ABGFmAADgNdg43fAlbHlGdW5jdGlvbgCgYSBpAG4AZwA7gMUAxUAAAWNzpACoAHIAAOA12Jzc6SFnbgCgVCJpAGwAZABlADuAwwDDQG0AbAA7gMQAxEAABGFjZWZvcnN1xQDYANoA7QDxAPYA+QD8AAABY3LJAM8AayNzbGFzaAAAoBYidgHTANUAAKDnKmUAZAAAoAYjeQARZIABY3J0AOAA5QDrAGEidXNlAACgNSLuI291bGxpcwCgLCFhAJJjcgAA4DXYBd1wAGYAAOA12Dnd5SF2ZdhiYwDyAOoAbSJwZXEAAKBOIgAHSE9hY2RlZmhpbG9yc3UXARoBHwE6AVIBVQFiAWQBZgGCAakB6QHtAfIBYwB5ACdkUABZADuAqQCpQIABY3B5ACUBKAE1AfUhdGUGYWmg0iJ0KGFsRGlmZmVyZW50aWFsRAAAoEUhbCJleXMAAKAtIQACYWVpb0EBRAFKAU0B8iFvbgxhZABpAGwAO4DHAMdAcgBjAAhhbiJpbnQAAKAwIm8AdAAKYQABZG5ZAV0BaSJsbGEAuGB0I2VyRG90ALdg8gA5AWkAp2NyImNsZQAAAkRNUFRwAXQBeQF9AW8AdAAAoJkiaSJudXMAAKCWIuwhdXMAoJUiaSJtZXMAAKCXIm8AAAFjc4cBlAFrKndpc2VDb250b3VySW50ZWdyYWwAAKAyImUjQ3VybHkAAAFEUZwBpAFvJXVibGVRdW90ZQAAoB0gdSJvdGUAAKAZIAACbG5wdbABtgHNAdgBbwBuAGWgNyIAoHQqgAFnaXQAvAHBAcUB8iJ1ZW50AKBhIm4AdAAAoC8i7yV1ckludGVncmFsAKAuIgABZnLRAdMBAKACIe8iZHVjdACgECJuLnRlckNsb2Nrd2lzZUNvbnRvdXJJbnRlZ3JhbAAAoDMi7yFzcwCgLypjAHIAAOA12J7ccABDoNMiYQBwAACgTSKABURKU1phY2VmaW9zAAsCEgIVAhgCGwIsAjQCOQI9AnMCfwNvoEUh9CJyYWhkAKARKWMAeQACZGMAeQAFZGMAeQAPZIABZ3JzACECJQIoAuchZXIAoCEgcgAAoKEhaAB2AACg5CoAAWF5MAIzAvIhb24OYRRkbAB0oAciYQCUY3IAAOA12AfdAAFhZkECawIAAWNtRQJnAvIjaXRpY2FsAAJBREdUUAJUAl8CYwJjInV0ZQC0YG8AdAFZAloC2WJiJGxlQWN1dGUA3WJyImF2ZQBgYGkibGRlANxi7yFuZACgxCJmJWVyZW50aWFsRAAAoEYhcAR9AgAAAAAAAIECjgIAABoDZgAA4DXYO91EoagAhQKJAm8AdAAAoNwgcSJ1YWwAAKBQIuIhbGUAA0NETFJVVpkCqAK1Au8C/wIRA28AbgB0AG8AdQByAEkAbgB0AGUAZwByAGEA7ADEAW8AdAKvAgAAAACwAqhgbiNBcnJvdwAAoNMhAAFlb7kC0AJmAHQAgAFBUlQAwQLGAs0CciJyb3cAAKDQIekkZ2h0QXJyb3cAoNQhZQDlACsCbgBnAAABTFLWAugC5SFmdAABQVLcAuECciJyb3cAAKD4J+kkZ2h0QXJyb3cAoPon6SRnaHRBcnJvdwCg+SdpImdodAAAAUFU9gL7AnIicm93AACg0iFlAGUAAKCoInAAQQIGAwAAAAALA3Iicm93AACg0SFvJHduQXJyb3cAAKDVIWUlcnRpY2FsQmFyAACgJSJuAAADQUJMUlRhJAM2AzoDWgNxA3oDciJyb3cAAKGTIUJVLAMwA2EAcgAAoBMpcCNBcnJvdwAAoPUhciJldmUAEWPlIWZ00gJDAwAASwMAAFIDaSVnaHRWZWN0b3IAAKBQKWUkZVZlY3RvcgAAoF4p5SJjdG9yQqC9IWEAcgAAoFYpaSJnaHQA1AFiAwAAaQNlJGVWZWN0b3IAAKBfKeUiY3RvckKgwSFhAHIAAKBXKWUAZQBBoKQiciJyb3cAAKCnIXIAcgBvAPcAtAIAAWN0gwOHA3IA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YwAAoN8i4SFycnCgtiEAoD0pgKIqImJjZG9zACsVMBU6FT4VQRVyImNhcAAAoEgqAAFhdTQVNxVwAACgRipwAACgSipvAHQAAKCNInIAAKBFKgDgKiIA/gACYWxydksVURVuFXMVcgByAG2gtyEAoDwpeQCAAWV2dwBYFWUVaRVxAHACXxUAAAAAYxVyAGUA4wAXFXUA4wAZFWUAZQAAoM4iZSJkZ2UAAKDPImUAbgA7gKQApEBlI2Fycm93AAABbHJ7FX8V5SFmdACgtiFpImdodAAAoLchZQDkAG0VAAFjaYsVkRVvAG4AaQBuAPQAkwFuAHQAAKAxImwiY3R5AACgLSOACUFIYWJjZGVmaGlqbG9yc3R1d3oAuBW7Fb8V1RXgFegV+RUKFhUWHxZUFlcWZRbFFtsW7xb7FgUXChdyAPIAtAJhAHIAAKBlKQACZ2xyc8YVyhXOFdAV5yFlcgCgICDlIXRoAKA4IfIA9QxoAHagECAAoKMiawHZFd4VYSJyb3cAAKAPKWEA4wBfAgABYXnkFecV8iFvbg9hNGQAoUYhYW/tFfQVAAFnciEC8RVyAACgyiF0InNlcQAAoHcqgAFnbG0A/xUCFgUWO4CwALBAdABhALRjcCJ0eXYAAKCxKQABaXIOFhIW8yFodACgfykA4DXYId1hAHIAAAFschsWHRYAoMMhAKDCIYACYWVnc3YAKBauAjYWOhY+Fm0AAKHEIm9zLhY0Fm4AZABzoMQi9SFpdACgZiZhIm1tYQDdY2kAbgAAoPIiAKH3AGlvQxZRFmQAZQAAgfcAO29KFksW90BuI3RpbWVzAACgxyJuAPgAUBZjAHkAUmRjAG8CXhYAAAAAYhZyAG4AAKAeI28AcAAAoA0jgAJscHR1dwBuFnEWdRaSFp4W7CFhciRgZgAA4DXYVd0AotkCZW1wc30WhBaJFo0WcQBkoFAibwB0AACgUSJpIm51cwAAoDgi7CF1cwCgFCLxInVhcmUAoKEiYgBsAGUAYgBhAHIAdwBlAGQAZwDlANcAbgCAAWFkaAClFqoWtBZyAHIAbwD3APUMbwB3AG4AYQByAHIAbwB3APMA8xVhI3Jwb29uAAABbHK8FsAWZQBmAPQAHBZpAGcAaAD0AB4WYgHJFs8WawBhAHIAbwD3AJILbwLUFgAAAADYFnIAbgAAoB8jbwBwAACgDCOAAWNvdADhFukW7BYAAXJ55RboFgDgNdi53FVkbAAAoPYp8iFvaxFhAAFkcvMW9xZvAHQAAKDxImkA5qC/JVsSAAFhaP8WAhdyAPIANQNhAPIA1wvhIm5nbGUAoKYpAAFjaQ4XEBd5AF9k5yJyYXJyAKD/JwAJRGFjZGVmZ2xtbm9wcXJzdHV4MRc4F0YXWxcyBF4XaRd5F40XrBe0F78X2RcVGCEYLRg1GEAYAAFEbzUXgRZvAPQA+BUAAWNzPBdCF3UAdABlADuA6QDpQPQhZXIAoG4qAAJhaW95TRdQF1YXWhfyIW9uG2FyAGOgViI7gOoA6kDsIW9uAKBVIk1kbwB0ABdhAAFEcmIXZhdvAHQAAKBSIgDgNdgi3XKhmipuF3QXYQB2AGUAO4DoAOhAZKCWKm8AdAAAoJgqgKGZKmlscwCAF4UXhxfuInRlcnMAoOcjAKATIWSglSpvAHQAAKCXKoABYXBzAJMXlheiF2MAcgATYXQAeQBzogUinxcAAAAAoRdlAHQAAKAFInAAMaADIDMBqRerFwCgBCAAoAUgAAFnc7AXsRdLYXAAAKACIAABZ3C4F7sXbwBuABlhZgAA4DXYVt2AAWFscwDFF8sXzxdyAHOg1SJsAACg4yl1AHMAAKBxKmkAAKG1A2x21RfYF28AbgC1Y/VjAAJjc3V24BfoF/0XEBgAAWlv5BdWF3IAYwAAoFYiaQLuFwAAAADwF+0ADQThIW50AAFnbPUX+Rd0AHIAAKCWKuUhc3MAoJUqgAFhZWkAAxgGGAoYbABzAD1gcwB0AACgXyJ2AESgYSJEAACgeCrwImFyc2wAoOUpAAFEYRkYHRhvAHQAAKBTInIAcgAAoHEpgAFjZGkAJxgqGO0XcgAAoC8hbwD0AIwCAAFhaDEYMhi3YzuA8ADwQAABbXI5GD0YbAA7gOsA60BvAACgrCCAAWNpcABGGEgYSxhsACFgcwD0ACwEAAFlb08YVxhjAHQAYQB0AGkAbwDuABoEbgBlAG4AdABpAGEAbADlADME4Ql1GAAAgRgAAIMYiBgAAAAAoRilGAAAqhgAALsYvhjRGAAA1xgnGWwAbABpAG4AZwBkAG8AdABzAGUA8QBlF3kARGRtImFsZQAAoEAmgAFpbHIAjRiRGJ0Y7CFpZwCgA/tpApcYAAAAAJoYZwAAoAD7aQBnAACgBPsA4DXYI93sIWlnAKAB++whaWcA4GYAagCAAWFsdACvGLIYthh0AACgbSZpAGcAAKAC+24AcwAAoLElbwBmAJJh8AHCGAAAxhhmAADgNdhX3QABYWvJGMwYbADsAGsEdqDUIgCg2SphI3J0aW50AACgDSoAAWFv2hgiGQABY3PeGB8ZsQPnGP0YBRkSGRUZAAAdGbID7xjyGPQY9xj5GAAA+xg7gL0AvUAAoFMhO4C8ALxAAKBVIQCgWSEAoFshswEBGQAAAxkAoFQhAKBWIbQCCxkOGQAAAAAQGTuAvgC+QACgVyEAoFwhNQAAoFghtgEZGQAAGxkAoFohAKBdITgAAKBeIWwAAKBEIHcAbgAAoCIjYwByAADgNdi73IAIRWFiY2RlZmdpamxub3JzdHYARhlKGVoZXhlmGWkZkhmWGZkZnRmgGa0ZxhnLGc8Z4BkjGmygZyIAoIwqgAFjbXAAUBlTGVgZ9SF0ZfVhbQBhAOSgswM6FgCghipyImV2ZQAfYQABaXliGWUZcgBjAB1hM2RvAHQAIWGAoWUibHFzAMYEcBl6GfGhZSLOBAAAdhlsAGEAbgD0AN8EgKF+KmNkbACBGYQZjBljAACgqSpvAHQAb6CAKmyggioAoIQqZeDbIgD+cwAAoJQqcgAA4DXYJN3noGsirATtIWVsAKA3IWMAeQBTZIChdyJFYWoApxmpGasZAKCSKgCgpSoAoKQqAAJFYWVztBm2Gb0ZwhkAoGkicABwoIoq8iFveACgiipxoIgq8aCIKrUZaQBtAACg5yJwAGYAAOA12FjdYQB2AOUAYwIAAWNp0xnWGXIAAKAKIW0AAKFzImVs3BneGQCgjioAoJAqAIM+ADtjZGxxco0E6xn0GfgZ/BkBGgABY2nvGfEZAKCnKnIAAKB6Km8AdAAAoNci0CFhcgCglSl1ImVzdAAAoHwqgAJhZGVscwAKGvQZFhrVBCAa8AEPGgAAFBpwAHIAbwD4AFkZcgAAoHgpcQAAAWxxxAQbGmwAZQBzAPMASRlpAO0A5AQAAWVuJxouGnIjdG5lcXEAAOBpIgD+xQAsGgAFQWFiY2Vma29zeUAaQxpmGmoabRqDGocalhrCGtMacgDyAMwCAAJpbG1yShpOGlAaVBpyAHMA8ABxD2YAvWBpAGwA9AASBQABZHJYGlsaYwB5AEpkAKGUIWN3YBpkGmkAcgAAoEgpAKCtIWEAcgAAoA8h6SFyYyVhgAFhbHIAcxp7Gn8a8iF0c3WgZSZpAHQAAKBlJuwhaXAAoCYg4yFvbgCguSJyAADgNdgl3XMAAAFld4wakRphInJvdwAAoCUpYSJyb3cAAKAmKYACYW1vcHIAnxqjGqcauhq+GnIAcgAAoP8h9CFodACgOyJrAAABbHKsGrMaZSRmdGFycm93AACgqSHpJGdodGFycm93AKCqIWYAAOA12Fnd4iFhcgCgFSCAAWNsdADIGswa0BpyAADgNdi93GEAcwDoAGka8iFvaydhAAFicNca2xr1IWxsAKBDIOghZW4AoBAg4Qr2GgAA/RoAAAgbExsaGwAAIRs7GwAAAAA+G2IbmRuVG6sbAACyG80b0htjAHUAdABlADuA7QDtQAChYyBpeQEbBhtyAGMAO4DuAO5AOGQAAWN4CxsNG3kANWRjAGwAO4ChAKFAAAFmcssCFhsA4DXYJt1yAGEAdgBlADuA7ADsQIChSCFpbm8AJxsyGzYbAAFpbisbLxtuAHQAAKAMKnQAAKAtIuYhaW4AoNwpdABhAACgKSHsIWlnM2GAAWFvcABDG1sbXhuAAWNndABJG0sbWRtyACthgAFlbHAAcQVRG1UbaQBuAOUAyAVhAHIA9AByBWgAMWFmAACgtyJlAGQAtWEAoggiY2ZvdGkbbRt1G3kb4SFyZQCgBSFpAG4AdKAeImkAZQAAoN0pZABvAPQAWxsAoisiY2VscIEbhRuPG5QbYQBsAACguiIAAWdyiRuNG2UAcgDzACMQ4wCCG2EicmhrAACgFyryIW9kAKA8KgACY2dwdJ8boRukG6gbeQBRZG8AbgAvYWYAAOA12FrdYQC5Y3UAZQBzAHQAO4C/AL9AAAFjabUbuRtyAADgNdi+3G4AAKIIIkVkc3bCG8QbyBvQAwCg+SJvAHQAAKD1Inag9CIAoPMiaaBiIOwhZGUpYesB1hsAANkbYwB5AFZkbAA7gO8A70AAA2NmbW9zdeYb7hvyG/Ub+hsFHAABaXnqG+0bcgBjADVhOWRyAADgNdgn3eEhdGg3YnAAZgAA4DXYW93jAf8bAAADHHIAAOA12L/c8iFjeVhk6yFjeVRkAARhY2ZnaGpvcxUcGhwiHCYcKhwtHDAcNRzwIXBhdqC6A/BjAAFleR4cIRzkIWls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ZmdobG1vcHJzdHV3CiwNLBEsHSwnLDEsQCxLLFIsYix6LIQsjyzLLOgs7Sz/LAotcgDyAAkDYQByAACgYykAAWNyFSwbLHUAdABlADuA+gD6QPIACQ1yAOMBIywAACUseQBeZHYAZQBtYQABaXkrLDAscgBjADuA+wD7QENkgAFhYmgANyw6LD0scgDyANEO7CFhY3FhYQDyAOAOAAFpckQsSCzzIWh0AKB+KQDgNdgy3XIAYQB2AGUAO4D5APlAYQFWLF8scgAAAWxyWixcLACgvyEAoL4hbABrAACggCUAAWN0Zix2LG8CbCwAAAAAcyxyAG4AZaAcI3IAAKAcI28AcAAAoA8jcgBpAACg+CUAAWFsfiyBLGMAcgBrYTuAqACoQAABZ3CILIssbwBuAHNhZgAA4DXYZt0AA2FkaGxzdZksniynLLgsuyzFLHIAcgBvAPcACQ1vAHcAbgBhAHIAcgBvAPcA2A5hI3Jwb29uAAABbHKvLLMsZQBmAPQAWyxpAGcAaAD0AF0sdQDzAKYOaQAAocUDaGzBLMIs0mNvAG4AxWPwI2Fycm93cwCgyCGAAWNpdADRLOEs5CxvAtcsAAAAAN4scgBuAGWgHSNyAACgHSNvAHAAAKAOI24AZwBvYXIAaQAAoPklYwByAADgNdjK3IABZGlyAPMs9yz6LG8AdAAAoPAi7CFkZWlhaQBmoLUlAKC0JQABYW0DLQYtcgDyAMosbAA7gPwA/EDhIm5nbGUAoKcpgAdBQkRhY2RlZmxub3Byc3oAJy0qLTAtNC2bLZ0toS2/LcMtxy3TLdgt3C3gLfwtcgDyABADYQByAHag6CoAoOkqYQBzAOgA/gIAAW5yOC08LechcnQAoJwpgANla25wcnN0AJkpSC1NLVQtXi1iLYItYQBwAHAA4QAaHG8AdABoAGkAbgDnAKEXgAFoaXIAoSmzJFotbwBwAPQAdCVooJUh7wD4JgABaXVmLWotZwBtAOEAuygAAWJwbi14LXMjZXRuZXEAceCKIgD+AODLKgD+cyNldG5lcQBx4IsiAP4A4MwqAP4AAWhyhi2KLWUAdADhABIraSNhbmdsZQAAAWxyki2WLeUhZnQAoLIiaSJnaHQAAKCzInkAMmThIXNoAKCiIoABZWxyAKcttC24LWKiKCKuLQAAAACyLWEAcgAAoLsicQAAoFoi7CFpcACg7iIAAWJ0vC1eD2EA8gBfD3IAAOA12DPddAByAOkAlS1zAHUAAAFicM0t0C0A4IIi0iAA4IMi0iBwAGYAAOA12GfdcgBvAPAAWQt0AHIA6QCaLQABY3XkLegtcgAA4DXYy9wAAWJw7C30LW4AAAFFZXUt8S0A4IoiAP5uAAABRWV/LfktAOCLIgD+6SJnemFnAKCaKYADY2Vmb3BycwANLhAuJS4pLiMuLi40LukhcmN1YQABZGkULiEuAAFiZxguHC5hAHIAAKBfKmUAcaAnIgCgWSLlIXJwAKAYIXIAAOA12DTdcABmAADgNdho3WWgQCJhAHQA6ABqD2MAcgAA4DXYzNzjCuQRUC4AAFQuAABYLmIuAAAAAGMubS5wLnQuAAAAAIguki4AAJouJxIqEnQAcgDpAB0ScgAA4DXYNd0AAUFhWy5eLnIA8gDnAnIA8gCTB75jAAFBYWYuaS5yAPIA4AJyAPIAjAdhAPAAeh5pAHMAAKD7IoABZHB0APgReS6DLgABZmx9LoAuAOA12GnddQDzAP8RaQBtAOUABBIAAUFhiy6OLnIA8gDuAnIA8gCaBwABY3GVLgoScgAA4DXYzdwAAXB0nS6hLmwAdQDzACUScgDpACASAARhY2VmaW9zdbEuvC7ELsguzC7PLtQu2S5jAAABdXm2LrsudABlADuA/QD9QE9kAAFpecAuwy5yAGMAd2FLZG4AO4ClAKVAcgAA4DXYNt1jAHkAV2RwAGYAAOA12GrdYwByAADgNdjO3AABY23dLt8ueQBOZGwAO4D/AP9AAAVhY2RlZmhpb3N38y73Lv8uAi8MLxAvEy8YLx0vIi9jInV0ZQB6YQABYXn7Lv4u8iFvbn5hN2RvAHQAfGEAAWV0Bi8KL3QAcgDmAB8QYQC2Y3IAAOA12DfdYwB5ADZk5yJyYXJyAKDdIXAAZgAA4DXYa91jAHIAAOA12M/cAAFqbiYvKC8AoA0gagAAoAwg");
|
|
10398
|
+
const htmlDecodeTree = /* #__PURE__ */ decodeBase64("QR08ALkAAgH6AYsDNQR2BO0EPgXZBQEGLAbdBxMISQrvCmQLfQurDKQNLw4fD4YPpA+6D/IPAAAAAAAAAAAAAAAAKhBMEY8TmxUWF2EYLBkxGuAa3RsJHDscWR8YIC8jSCSIJcMl6ie3Ku8rEC0CLjoupS7kLgAIRU1hYmNmZ2xtbm9wcnN0dVQAWgBeAGUAaQBzAHcAfgCBAIQAhwCSAJoAoACsALMAbABpAGcAO4DGAMZAUAA7gCYAJkBjAHUAdABlADuAwQDBQHIiZXZlAAJhAAFpeW0AcgByAGMAO4DCAMJAEGRyAADgNdgE3XIAYQB2AGUAO4DAAMBA8CFoYZFj4SFjcgBhZAAAoFMqAAFncIsAjgBvAG4ABGFmAADgNdg43fAlbHlGdW5jdGlvbgCgYSBpAG4AZwA7gMUAxUAAAWNzpACoAHIAAOA12Jzc6SFnbgCgVCJpAGwAZABlADuAwwDDQG0AbAA7gMQAxEAABGFjZWZvcnN1xQDYANoA7QDxAPYA+QD8AAABY3LJAM8AayNzbGFzaAAAoBYidgHTANUAAKDnKmUAZAAAoAYjeQARZIABY3J0AOAA5QDrAGEidXNlAACgNSLuI291bGxpcwCgLCFhAJJjcgAA4DXYBd1wAGYAAOA12Dnd5SF2ZdhiYwDyAOoAbSJwZXEAAKBOIgAHSE9hY2RlZmhpbG9yc3UXARoBHwE6AVIBVQFiAWQBZgGCAakB6QHtAfIBYwB5ACdkUABZADuAqQCpQIABY3B5ACUBKAE1AfUhdGUGYWmg0iJ0KGFsRGlmZmVyZW50aWFsRAAAoEUhbCJleXMAAKAtIQACYWVpb0EBRAFKAU0B8iFvbgxhZABpAGwAO4DHAMdAcgBjAAhhbiJpbnQAAKAwIm8AdAAKYQABZG5ZAV0BaSJsbGEAuGB0I2VyRG90ALdg8gA5AWkAp2NyImNsZQAAAkRNUFRwAXQBeQF9AW8AdAAAoJkiaSJudXMAAKCWIuwhdXMAoJUiaSJtZXMAAKCXIm8AAAFjc4cBlAFrKndpc2VDb250b3VySW50ZWdyYWwAAKAyImUjQ3VybHkAAAFEUZwBpAFvJXVibGVRdW90ZQAAoB0gdSJvdGUAAKAZIAACbG5wdbABtgHNAdgBbwBuAGWgNyIAoHQqgAFnaXQAvAHBAcUB8iJ1ZW50AKBhIm4AdAAAoC8i7yV1ckludGVncmFsAKAuIgABZnLRAdMBAKACIe8iZHVjdACgECJuLnRlckNsb2Nrd2lzZUNvbnRvdXJJbnRlZ3JhbAAAoDMi7yFzcwCgLypjAHIAAOA12J7ccABDoNMiYQBwAACgTSKABURKU1phY2VmaW9zAAsCEgIVAhgCGwIsAjQCOQI9AnMCfwNvoEUh9CJyYWhkAKARKWMAeQACZGMAeQAFZGMAeQAPZIABZ3JzACECJQIoAuchZXIAoCEgcgAAoKEhaAB2AACg5CoAAWF5MAIzAvIhb24OYRRkbAB0oAciYQCUY3IAAOA12AfdAAFhZkECawIAAWNtRQJnAvIjaXRpY2FsAAJBREdUUAJUAl8CYwJjInV0ZQC0YG8AdAFZAloC2WJiJGxlQWN1dGUA3WJyImF2ZQBgYGkibGRlANxi7yFuZACgxCJmJWVyZW50aWFsRAAAoEYhcAR9AgAAAAAAAIECjgIAABoDZgAA4DXYO91EoagAhQKJAm8AdAAAoNwgcSJ1YWwAAKBQIuIhbGUAA0NETFJVVpkCqAK1Au8C/wIRA28AbgB0AG8AdQByAEkAbgB0AGUAZwByAGEA7ADEAW8AdAKvAgAAAACwAqhgbiNBcnJvdwAAoNMhAAFlb7kC0AJmAHQAgAFBUlQAwQLGAs0CciJyb3cAAKDQIekkZ2h0QXJyb3cAoNQhZQDlACsCbgBnAAABTFLWAugC5SFmdAABQVLcAuECciJyb3cAAKD4J+kkZ2h0QXJyb3cAoPon6SRnaHRBcnJvdwCg+SdpImdodAAAAUFU9gL7AnIicm93AACg0iFlAGUAAKCoInAAQQIGAwAAAAALA3Iicm93AACg0SFvJHduQXJyb3cAAKDVIWUlcnRpY2FsQmFyAACgJSJuAAADQUJMUlRhJAM2AzoDWgNxA3oDciJyb3cAAKGTIUJVLAMwA2EAcgAAoBMpcCNBcnJvdwAAoPUhciJldmUAEWPlIWZ00gJDAwAASwMAAFIDaSVnaHRWZWN0b3IAAKBQKWUkZVZlY3RvcgAAoF4p5SJjdG9yQqC9IWEAcgAAoFYpaSJnaHQA1AFiAwAAaQNlJGVWZWN0b3IAAKBfKeUiY3RvckKgwSFhAHIAAKBXKWUAZQBBoKQiciJyb3cAAKCnIXIAcgBvAPcAtAIAAWN0gwOHA3IA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YwAAoN8i4SFycnCgtiEAoD0pgKIqImJjZG9zACsVMBU6FT4VQRVyImNhcAAAoEgqAAFhdTQVNxVwAACgRipwAACgSipvAHQAAKCNInIAAKBFKgDgKiIA/gACYWxydksVURVuFXMVcgByAG2gtyEAoDwpeQCAAWV2dwBYFWUVaRVxAHACXxUAAAAAYxVyAGUA4wAXFXUA4wAZFWUAZQAAoM4iZSJkZ2UAAKDPImUAbgA7gKQApEBlI2Fycm93AAABbHJ7FX8V5SFmdACgtiFpImdodAAAoLchZQDkAG0VAAFjaYsVkRVvAG4AaQBuAPQAkwFuAHQAAKAxImwiY3R5AACgLSOACUFIYWJjZGVmaGlqbG9yc3R1d3oAuBW7Fb8V1RXgFegV+RUKFhUWHxZUFlcWZRbFFtsW7xb7FgUXChdyAPIAtAJhAHIAAKBlKQACZ2xyc8YVyhXOFdAV5yFlcgCgICDlIXRoAKA4IfIA9QxoAHagECAAoKMiawHZFd4VYSJyb3cAAKAPKWEA4wBfAgABYXnkFecV8iFvbg9hNGQAoUYhYW/tFfQVAAFnciEC8RVyAACgyiF0InNlcQAAoHcqgAFnbG0A/xUCFgUWO4CwALBAdABhALRjcCJ0eXYAAKCxKQABaXIOFhIW8yFodACgfykA4DXYId1hAHIAAAFschsWHRYAoMMhAKDCIYACYWVnc3YAKBauAjYWOhY+Fm0AAKHEIm9zLhY0Fm4AZABzoMQi9SFpdACgZiZhIm1tYQDdY2kAbgAAoPIiAKH3AGlvQxZRFmQAZQAAgfcAO29KFksW90BuI3RpbWVzAACgxyJuAPgAUBZjAHkAUmRjAG8CXhYAAAAAYhZyAG4AAKAeI28AcAAAoA0jgAJscHR1dwBuFnEWdRaSFp4W7CFhciRgZgAA4DXYVd0AotkCZW1wc30WhBaJFo0WcQBkoFAibwB0AACgUSJpIm51cwAAoDgi7CF1cwCgFCLxInVhcmUAoKEiYgBsAGUAYgBhAHIAdwBlAGQAZwDlANcAbgCAAWFkaAClFqoWtBZyAHIAbwD3APUMbwB3AG4AYQByAHIAbwB3APMA8xVhI3Jwb29uAAABbHK8FsAWZQBmAPQAHBZpAGcAaAD0AB4WYgHJFs8WawBhAHIAbwD3AJILbwLUFgAAAADYFnIAbgAAoB8jbwBwAACgDCOAAWNvdADhFukW7BYAAXJ55RboFgDgNdi53FVkbAAAoPYp8iFvaxFhAAFkcvMW9xZvAHQAAKDxImkA5qC/JVsSAAFhaP8WAhdyAPIANQNhAPIA1wvhIm5nbGUAoKYpAAFjaQ4XEBd5AF9k5yJyYXJyAKD/JwAJRGFjZGVmZ2xtbm9wcXJzdHV4MRc4F0YXWxcyBF4XaRd5F40XrBe0F78X2RcVGCEYLRg1GEAYAAFEbzUXgRZvAPQA+BUAAWNzPBdCF3UAdABlADuA6QDpQPQhZXIAoG4qAAJhaW95TRdQF1YXWhfyIW9uG2FyAGOgViI7gOoA6kDsIW9uAKBVIk1kbwB0ABdhAAFEcmIXZhdvAHQAAKBSIgDgNdgi3XKhmipuF3QXYQB2AGUAO4DoAOhAZKCWKm8AdAAAoJgqgKGZKmlscwCAF4UXhxfuInRlcnMAoOcjAKATIWSglSpvAHQAAKCXKoABYXBzAJMXlheiF2MAcgATYXQAeQBzogUinxcAAAAAoRdlAHQAAKAFInAAMaADIDMBqRerFwCgBCAAoAUgAAFnc7AXsRdLYXAAAKACIAABZ3C4F7sXbwBuABlhZgAA4DXYVt2AAWFscwDFF8sXzxdyAHOg1SJsAACg4yl1AHMAAKBxKmkAAKG1A2x21RfYF28AbgC1Y/VjAAJjc3V24BfoF/0XEBgAAWlv5BdWF3IAYwAAoFYiaQLuFwAAAADwF+0ADQThIW50AAFnbPUX+Rd0AHIAAKCWKuUhc3MAoJUqgAFhZWkAAxgGGAoYbABzAD1gcwB0AACgXyJ2AESgYSJEAACgeCrwImFyc2wAoOUpAAFEYRkYHRhvAHQAAKBTInIAcgAAoHEpgAFjZGkAJxgqGO0XcgAAoC8hbwD0AIwCAAFhaDEYMhi3YzuA8ADwQAABbXI5GD0YbAA7gOsA60BvAACgrCCAAWNpcABGGEgYSxhsACFgcwD0ACwEAAFlb08YVxhjAHQAYQB0AGkAbwDuABoEbgBlAG4AdABpAGEAbADlADME4Ql1GAAAgRgAAIMYiBgAAAAAoRilGAAAqhgAALsYvhjRGAAA1xgnGWwAbABpAG4AZwBkAG8AdABzAGUA8QBlF3kARGRtImFsZQAAoEAmgAFpbHIAjRiRGJ0Y7CFpZwCgA/tpApcYAAAAAJoYZwAAoAD7aQBnAACgBPsA4DXYI93sIWlnAKAB++whaWcA4GYAagCAAWFsdACvGLIYthh0AACgbSZpAGcAAKAC+24AcwAAoLElbwBmAJJh8AHCGAAAxhhmAADgNdhX3QABYWvJGMwYbADsAGsEdqDUIgCg2SphI3J0aW50AACgDSoAAWFv2hgiGQABY3PeGB8ZsQPnGP0YBRkSGRUZAAAdGbID7xjyGPQY9xj5GAAA+xg7gL0AvUAAoFMhO4C8ALxAAKBVIQCgWSEAoFshswEBGQAAAxkAoFQhAKBWIbQCCxkOGQAAAAAQGTuAvgC+QACgVyEAoFwhNQAAoFghtgEZGQAAGxkAoFohAKBdITgAAKBeIWwAAKBEIHcAbgAAoCIjYwByAADgNdi73IAIRWFiY2RlZmdpamxub3JzdHYARhlKGVoZXhlmGWkZkhmWGZkZnRmgGa0ZxhnLGc8Z4BkjGmygZyIAoIwqgAFjbXAAUBlTGVgZ9SF0ZfVhbQBhAOSgswM6FgCghipyImV2ZQAfYQABaXliGWUZcgBjAB1hM2RvAHQAIWGAoWUibHFzAMYEcBl6GfGhZSLOBAAAdhlsAGEAbgD0AN8EgKF+KmNkbACBGYQZjBljAACgqSpvAHQAb6CAKmyggioAoIQqZeDbIgD+cwAAoJQqcgAA4DXYJN3noGsirATtIWVsAKA3IWMAeQBTZIChdyJFYWoApxmpGasZAKCSKgCgpSoAoKQqAAJFYWVztBm2Gb0ZwhkAoGkicABwoIoq8iFveACgiipxoIgq8aCIKrUZaQBtAACg5yJwAGYAAOA12FjdYQB2AOUAYwIAAWNp0xnWGXIAAKAKIW0AAKFzImVs3BneGQCgjioAoJAqAIM+ADtjZGxxco0E6xn0GfgZ/BkBGgABY2nvGfEZAKCnKnIAAKB6Km8AdAAAoNci0CFhcgCglSl1ImVzdAAAoHwqgAJhZGVscwAKGvQZFhrVBCAa8AEPGgAAFBpwAHIAbwD4AFkZcgAAoHgpcQAAAWxxxAQbGmwAZQBzAPMASRlpAO0A5AQAAWVuJxouGnIjdG5lcXEAAOBpIgD+xQAsGgAFQWFiY2Vma29zeUAaQxpmGmoabRqDGocalhrCGtMacgDyAMwCAAJpbG1yShpOGlAaVBpyAHMA8ABxD2YAvWBpAGwA9AASBQABZHJYGlsaYwB5AEpkAKGUIWN3YBpkGmkAcgAAoEgpAKCtIWEAcgAAoA8h6SFyYyVhgAFhbHIAcxp7Gn8a8iF0c3WgZSZpAHQAAKBlJuwhaXAAoCYg4yFvbgCguSJyAADgNdgl3XMAAAFld4wakRphInJvdwAAoCUpYSJyb3cAAKAmKYACYW1vcHIAnxqjGqcauhq+GnIAcgAAoP8h9CFodACgOyJrAAABbHKsGrMaZSRmdGFycm93AACgqSHpJGdodGFycm93AKCqIWYAAOA12Fnd4iFhcgCgFSCAAWNsdADIGswa0BpyAADgNdi93GEAcwDoAGka8iFvaydhAAFicNca2xr1IWxsAKBDIOghZW4AoBAg4Qr2GgAA/RoAAAgbExsaGwAAIRs7GwAAAAA+G2IbmRuVG6sbAACyG80b0htjAHUAdABlADuA7QDtQAChYyBpeQEbBhtyAGMAO4DuAO5AOGQAAWN4CxsNG3kANWRjAGwAO4ChAKFAAAFmcssCFhsA4DXYJt1yAGEAdgBlADuA7ADsQIChSCFpbm8AJxsyGzYbAAFpbisbLxtuAHQAAKAMKnQAAKAtIuYhaW4AoNwpdABhAACgKSHsIWlnM2GAAWFvcABDG1sbXhuAAWNndABJG0sbWRtyACthgAFlbHAAcQVRG1UbaQBuAOUAyAVhAHIA9AByBWgAMWFmAACgtyJlAGQAtWEAoggiY2ZvdGkbbRt1G3kb4SFyZQCgBSFpAG4AdKAeImkAZQAAoN0pZABvAPQAWxsAoisiY2VscIEbhRuPG5QbYQBsAACguiIAAWdyiRuNG2UAcgDzACMQ4wCCG2EicmhrAACgFyryIW9kAKA8KgACY2dwdJ8boRukG6gbeQBRZG8AbgAvYWYAAOA12FrdYQC5Y3UAZQBzAHQAO4C/AL9AAAFjabUbuRtyAADgNdi+3G4AAKIIIkVkc3bCG8QbyBvQAwCg+SJvAHQAAKD1Inag9CIAoPMiaaBiIOwhZGUpYesB1hsAANkbYwB5AFZkbAA7gO8A70AAA2NmbW9zdeYb7hvyG/Ub+hsFHAABaXnqG+0bcgBjADVhOWRyAADgNdgn3eEhdGg3YnAAZgAA4DXYW93jAf8bAAADHHIAAOA12L/c8iFjeVhk6yFjeVRkAARhY2ZnaGpvcxUcGhwiHCYcKhwtHDAcNRzwIXBhdqC6A/BjAAFleR4cIRzkIWlsN2E6ZHIAAOA12CjdciJlZW4AOGFjAHkARWRjAHkAXGRwAGYAAOA12FzdYwByAADgNdjA3IALQUJFSGFiY2RlZmdoamxtbm9wcnN0dXYAXhxtHHEcdRx5HN8cBx0dHTwd3B3tHfEdAR4EHh0eLB5FHrwewx7hHgkfPR9LH4ABYXJ0AGQcZxxpHHIA8gBvB/IAxQLhIWlsAKAbKeEhcnIAoA4pZ6BmIgCgiyphAHIAAKBiKWMJjRwAAJAcAACVHAAAAAAAAAAAAACZHJwcAACmHKgcrRwAANIc9SF0ZTph7SJwdHl2AKC0KXIAYQDuAFoG4iFkYbtjZwAAoegnZGyhHKMcAKCRKeUAiwYAoIUqdQBvADuAqwCrQHIAgKOQIWJmaGxwc3QAuhy/HMIcxBzHHMoczhxmoOQhcwAAoB8pcwAAoB0p6wCyGnAAAKCrIWwAAKA5KWkAbQAAoHMpbAAAoKIhAKGrKmFl1hzaHGkAbAAAoBkpc6CtKgDgrSoA/oABYWJyAOUc6RztHHIAcgAAoAwpcgBrAACgcicAAWFr8Rz4HGMAAAFla/Yc9xx7YFtgAAFlc/wc/hwAoIspbAAAAWR1Ax0FHQCgjykAoI0pAAJhZXV5Dh0RHRodHB3yIW9uPmEAAWRpFR0YHWkAbAA8YewAowbiAPccO2QAAmNxcnMkHScdLB05HWEAAKA2KXUAbwDyoBwgqhEAAWR1MB00HeghYXIAoGcpcyJoYXIAAKBLKWgAAKCyIQCiZCJmZ3FzRB1FB5Qdnh10AIACYWhscnQATh1WHWUdbB2NHXIicm93AHSgkCFhAOkAzxxhI3Jwb29uAAABZHVeHWId7yF3bgCgvSFwAACgvCHlJGZ0YXJyb3dzAKDHIWkiZ2h0AIABYWhzAHUdex2DHXIicm93APOglCGdBmEAcgBwAG8AbwBuAPMAzgtxAHUAaQBnAGEAcgByAG8A9wBlGugkcmVldGltZXMAoMsi8aFkIk0HAACaHWwAYQBuAPQAXgcAon0qY2Rnc6YdqR2xHbcdYwAAoKgqbwB0AG+gfypyoIEqAKCDKmXg2iIA/nMAAKCTKoACYWRlZ3MAwB3GHcod1h3ZHXAAcAByAG8A+ACmHG8AdAAAoNYicQAAAWdxzx3SHXQA8gBGB2cAdADyAHQcdADyAFMHaQDtAGMHgAFpbHIA4h3mHeod8yFodACgfClvAG8A8gDKBgDgNdgp3UWgdiIAoJEqYQH1Hf4dcgAAAWR1YB35HWygvCEAoGopbABrAACghCVjAHkAWWQAomoiYWNodAweDx4VHhkecgDyAGsdbwByAG4AZQDyAGAW4SFyZACgaylyAGkAAKD6JQABaW8hHiQe5CFvdEBh9SFzdGGgsCPjIWhlAKCwIwACRWFlczMeNR48HkEeAKBoInAAcKCJKvIhb3gAoIkqcaCHKvGghyo0HmkAbQAAoOYiAARhYm5vcHR3elIeXB5fHoUelh6mHqsetB4AAW5yVh5ZHmcAAKDsJ3IAAKD9IXIA6wCwBmcAgAFsbXIAZh52Hnse5SFmdAABYXKIB2weaQBnAGgAdABhAHIAcgBvAPcAkwfhInBzdG8AoPwnaQBnAGgAdABhAHIAcgBvAPcAmgdwI2Fycm93AAABbHKNHpEeZQBmAPQAxhxpImdodAAAoKwhgAFhZmwAnB6fHqIecgAAoIUpAOA12F3ddQBzAACgLSppIm1lcwAAoDQqYQGvHrMecwB0AACgFyLhAIoOZaHKJbkeRhLuIWdlAKDKJWEAcgBsoCgAdAAAoJMpgAJhY2htdADMHs8e1R7bHt0ecgDyAJ0GbwByAG4AZQDyANYWYQByAGSgyyEAoG0pAKAOIHIAaQAAoL8iAANhY2hpcXTrHu8e1QfzHv0eBh/xIXVvAKA5IHIAAOA12MHcbQDloXIi+h4AAPweAKCNKgCgjyoAAWJ19xwBH28AcqAYIACgGiDyIW9rQmEAhDwAO2NkaGlscXJCBhcfxh0gHyQfKB8sHzEfAAFjaRsfHR8AoKYqcgAAoHkqcgBlAOUAkx3tIWVzAKDJIuEhcnIAoHYpdSJlc3QAAKB7KgABUGk1HzkfYQByAACglillocMlAgdfEnIAAAFkdUIfRx9zImhhcgAAoEop6CFhcgCgZikAAWVuTx9WH3IjdG5lcXEAAOBoIgD+xQBUHwAHRGFjZGVmaGlsbm9wc3VuH3Ifoh+rH68ftx+7H74f5h/uH/MfBwj/HwsgxCFvdACgOiIAAmNscHJ5H30fiR+eH3IAO4CvAK9AAAFldIEfgx8AoEImZaAgJ3MAZQAAoCAnc6CmIXQAbwCAoaYhZGx1AJQfmB+cH28AdwDuAHkDZQBmAPQA6gbwAOkO6yFlcgCgriUAAW95ph+qH+0hbWEAoCkqPGThIXNoAKAUIOElc3VyZWRhbmdsZQCgISJyAADgNdgq3W8AAKAnIYABY2RuAMQfyR/bH3IAbwA7gLUAtUBhoiMi0B8AANMf1x9zAPQAKxFpAHIAAKDwKm8AdAA7gLcAt0B1AHMA4qESIh4TAADjH3WgOCIAoCoqYwHqH+0fcAAAoNsq8gB+GnAAbAB1APMACAgAAWRw9x/7H+UhbHMAoKciZgAA4DXYXt0AAWN0AyAHIHIAAOA12MLc8CFvcwCgPiJsobwDECAVIPQiaW1hcACguCJhAPAAEyAADEdMUlZhYmNkZWZnaGlqbG1vcHJzdHV2dzwgRyBmIG0geSCqILgg2iDeIBEhFSEyIUMhTSFQIZwhnyHSIQAiIyKLIrEivyIUIwABZ3RAIEMgAODZIjgD9uBrItIgBwmAAWVsdABNIF8gYiBmAHQAAAFhclMgWCByInJvdwAAoM0h6SRnaHRhcnJvdwCgziEA4NgiOAP24Goi0iBfCekkZ2h0YXJyb3cAoM8hAAFEZHEgdSDhIXNoAKCvIuEhc2gAoK4igAJiY25wdACCIIYgiSCNIKIgbABhAACgByL1IXRlRGFnAADgICLSIACiSSJFaW9wlSCYIJwgniAA4HAqOANkAADgSyI4A3MASWFyAG8A+AAyCnUAcgBhoG4mbADzoG4mmwjzAa8gAACzIHAAO4CgAKBAbQBwAOXgTiI4AyoJgAJhZW91eQDBIMogzSDWINkg8AHGIAAAyCAAoEMqbwBuAEhh5CFpbEZhbgBnAGSgRyJvAHQAAOBtKjgDcAAAoEIqPWThIXNoAKATIACjYCJBYWRxc3jpIO0g+SD+IAIhDCFyAHIAAKDXIXIAAAFocvIg9SBrAACgJClvoJch9wAGD28AdAAA4FAiOAN1AGkA9gC7CAABZWkGIQohYQByAACgKCntAN8I6SFzdPOgBCLlCHIAAOA12CvdAAJFZXN0/wgcISshLiHxoXEiIiEAABMJ8aFxIgAJAAAnIWwAYQBuAPQAEwlpAO0AGQlyoG8iAKBvIoABQWFwADghOyE/IXIA8gBeIHIAcgAAoK4hYQByAACg8ipzogsiSiEAAAAAxwtkoPwiAKD6ImMAeQBaZIADQUVhZGVzdABcIV8hYiFmIWkhkyGWIXIA8gBXIADgZiI4A3IAcgAAoJohcgAAoCUggKFwImZxcwBwIYQhjiF0AAABYXJ1IXohcgByAG8A9wBlIWkAZwBoAHQAYQByAHIAbwD3AD4h8aFwImAhAACKIWwAYQBuAPQAZwlz4H0qOAMAoG4iaQDtAG0JcqBuImkA5aDqIkUJaQDkADoKAAFwdKMhpyFmAADgNdhf3YCBrAA7aW4AriGvIcchrEBuAIChCSJFZHYAtyG6Ib8hAOD5IjgDbwB0AADg9SI4A+EB1gjEIcYhAKD3IgCg9iJpAHagDCLhAagJzyHRIQCg/iIAoP0igAFhb3IA2CHsIfEhcgCAoSYiYXN0AOAh5SHpIWwAbABlAOwAywhsAADg/SrlIADgAiI4A2wiaW50AACgFCrjoYAi9yEAAPohdQDlAJsJY+CvKjgDZaCAIvEAkwkAAkFhaXQHIgoiFyIeInIA8gBsIHIAcgAAoZshY3cRIhQiAOAzKTgDAOCdITgDZyRodGFycm93AACgmyFyAGkA5aDrIr4JgANjaGltcHF1AC8iPCJHIpwhTSJQIloigKGBImNlcgA2Iv0JOSJ1AOUABgoA4DXYw9zvIXJ0bQKdIQAAAABEImEAcgDhAOEhbQBloEEi8aBEIiYKYQDyAMsIcwB1AAABYnBWIlgi5QDUCeUA3wmAAWJjcABgInMieCKAoYQiRWVzAGci7glqIgDgxSo4A2UAdABl4IIi0iBxAPGgiCJoImMAZaCBIvEA/gmAoYUiRWVzAH8iFgqCIgDgxio4A2UAdABl4IMi0iBxAPGgiSKAIgACZ2lscpIilCKaIpwi7AAMCWwAZABlADuA8QDxQOcAWwlpI2FuZ2xlAAABbHKkIqoi5SFmdGWg6iLxAEUJaSJnaHQAZaDrIvEAvgltoL0DAKEjAGVzuCK8InIAbwAAoBYhcAAAoAcggARESGFkZ2lscnMAziLSItYi2iLeIugi7SICIw8j4SFzaACgrSLhIXJyAKAEKXAAAOBNItIg4SFzaACgrCIAAWV04iLlIgDgZSLSIADgPgDSIG4iZmluAACg3imAAUFldADzIvci+iJyAHIAAKACKQDgZCLSIHLgPADSIGkAZQAA4LQi0iAAAUF0BiMKI3IAcgAAoAMp8iFpZQDgtSLSIGkAbQAA4Dwi0iCAAUFhbgAaIx4jKiNyAHIAAKDWIXIAAAFociMjJiNrAACgIylvoJYh9wD/DuUhYXIAoCcpUxJqFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVCMAAF4jaSN/I4IjjSOeI8AUAAAAAKYjwCMAANoj3yMAAO8jHiQvJD8kRCQAAWNzVyNsFHUAdABlADuA8wDzQAABaXlhI2cjcgBjoJoiO4D0APRAPmSAAmFiaW9zAHEjdCN3I3EBeiNzAOgAdhTsIWFjUWF2AACgOCrvIWxkAKC8KewhaWdTYQABY3KFI4kjaQByAACgvykA4DXYLN1vA5QjAAAAAJYjAACcI24A22JhAHYAZQA7gPIA8kAAoMEpAAFibaEjjAphAHIAAKC1KQACYWNpdKwjryO6I70jcgDyAFkUAAFpcrMjtiNyAACgvinvIXNzAKC7KW4A5QDZCgCgwCmAAWFlaQDFI8gjyyNjAHIATWFnAGEAyWOAAWNkbgDRI9Qj1iPyIW9uv2MAoLYpdQDzAHgBcABmAADgNdhg3YABYWVsAOQj5yPrI3IAAKC3KXIAcAAAoLkpdQDzAHwBAKMoImFkaW9zdvkj/CMPJBMkFiQbJHIA8gBeFIChXSplZm0AAyQJJAwkcgBvoDQhZgAAoDQhO4CqAKpAO4C6ALpA5yFvZgCgtiJyAACgVipsIm9wZQAAoFcqAKBbKoABY2xvACMkJSQrJPIACCRhAHMAaAA7gPgA+EBsAACgmCJpAGwBMyQ4JGQAZQA7gPUA9UBlAHMAYaCXInMAAKA2Km0AbAA7gPYA9kDiIWFyAKA9I+EKXiQAAHokAAB8JJQkAACYJKkkAAAAALUkEQsAAPAkAAAAAAQleiUAAIMlcgCAoSUiYXN0AGUkbyQBCwCBtgA7bGokayS2QGwAZQDsABgDaQJ1JAAAAAB4JG0AAKDzKgCg/Sp5AD9kcgCAAmNpbXB0AIUkiCSLJJkSjyRuAHQAJWBvAGQALmBpAGwAAKAwIOUhbmsAoDEgcgAA4DXYLd2AAWltbwCdJKAkpCR2oMYD1WNtAGEA9AD+B24AZQAAoA4m9KHAA64kAAC0JGMjaGZvcmsAAKDUItZjAAFhdbgkxCRuAAABY2u9JMIkawBooA8hAKAOIfYAaRpzAACkKwBhYmNkZW1zdNMkIRPXJNsk4STjJOck6yTjIWlyAKAjKmkAcgAAoCIqAAFvdYsW3yQAoCUqAKByKm4AO4CxALFAaQBtAACgJip3AG8AAKAnKoABaXB1APUk+iT+JO4idGludACgFSpmAADgNdhh3W4AZAA7gKMAo0CApHoiRWFjZWlub3N1ABMlFSUYJRslTCVRJVklSSV1JQCgsypwAACgtyp1AOUAPwtjoK8qgKJ6ImFjZW5zACclLSU0JTYlSSVwAHAAcgBvAPgAFyV1AHIAbAB5AGUA8QA/C/EAOAuAAWFlcwA8JUElRSXwInByb3gAoLkqcQBxAACgtSppAG0AAKDoImkA7QBEC20AZQDzoDIgIguAAUVhcwBDJVclRSXwAEAlgAFkZnAATwtfJXElgAFhbHMAZSVpJW0l7CFhcgCgLiPpIW5lAKASI/UhcmYAoBMjdKAdIu8AWQvyIWVsAKCwIgABY2l9JYElcgAA4DXYxdzIY24iY3NwAACgCCAAA2Zpb3BzdZElKxuVJZolnyWkJXIAAOA12C7dcABmAADgNdhi3XIiaW1lAACgVyBjAHIAAOA12MbcgAFhZW8AqiW6JcAldAAAAWVpryW2JXIAbgBpAG8AbgDzABkFbgB0AACgFipzAHQAZaA/APEACRj0AG0LgApBQkhhYmNkZWZoaWxtbm9wcnN0dXgA4yXyJfYl+iVpJpAmpia9JtUm5ib4JlonaCdxJ3UnnietJ7EnyCfiJ+cngAFhcnQA6SXsJe4lcgDyAJkM8gD6AuEhaWwAoBwpYQByAPIA3BVhAHIAAKBkKYADY2RlbnFydAAGJhAmEyYYJiYmKyZaJgABZXUKJg0mAOA9IjEDdABlAFVhaQDjACAN7SJwdHl2AKCzKWcAgKHpJ2RlbAAgJiImJCYAoJIpAKClKeUA9wt1AG8AO4C7ALtAcgAApZIhYWJjZmhscHN0dz0mQCZFJkcmSiZMJk4mUSZVJlgmcAAAoHUpZqDlIXMAAKAgKQCgMylzAACgHinrALka8ACVHmwAAKBFKWkAbQAAoHQpbAAAoKMhAKCdIQABYWleJmImaQBsAACgGilvAG6gNiJhAGwA8wB2C4ABYWJyAG8mciZ2JnIA8gAvEnIAawAAoHMnAAFha3omgSZjAAABZWt/JoAmfWBdYAABZXOFJocmAKCMKWwAAAFkdYwmjiYAoI4pAKCQKQACYWV1eZcmmiajJqUm8iFvbllhAAFkaZ4moSZpAGwAV2HsAA8M4gCAJkBkAAJjbHFzrSawJrUmuiZhAACgNylkImhhcgAAoGkpdQBvAPKgHSCjAWgAAKCzIYABYWNnAMMm0iaUC2wAgKEcIWlwcwDLJs4migxuAOUAoAxhAHIA9ADaC3QAAKCtJYABaWxyANsm3ybjJvMhaHQAoH0pbwBvAPIANgwA4DXYL90AAWFv6ib1JnIAAAFkde8m8SYAoMEhbKDAIQCgbCl2oMED8WOAAWducwD+Jk4nUCdoAHQAAANhaGxyc3QKJxInISc1Jz0nRydyInJvdwB0oJIhYQDpAFYmYSNycG9vbgAAAWR1GiceJ28AdwDuAPAmcAAAoMAh5SFmdAABYWgnJy0ncgByAG8AdwDzAAkMYQByAHAAbwBvAG4A8wATBGklZ2h0YXJyb3dzAACgySFxAHUAaQBnAGEAcgByAG8A9wBZJugkcmVldGltZXMAoMwiZwDaYmkAbgBnAGQAbwB0AHMAZQDxABwYgAFhaG0AYCdjJ2YncgDyAAkMYQDyABMEAKAPIG8idXN0AGGgsSPjIWhlAKCxI+0haWQAoO4qAAJhYnB0fCeGJ4knmScAAW5ygCeDJ2cAAKDtJ3IAAKD+IXIA6wAcDIABYWZsAI8nkieVJ3IAAKCGKQDgNdhj3XUAcwAAoC4qaSJtZXMAAKA1KgABYXCiJ6gncgBnoCkAdAAAoJQp7yJsaW50AKASKmEAcgDyADwnAAJhY2hxuCe8J6EMwCfxIXVvAKA6IHIAAOA12MfcAAFidYAmxCdvAPKgGSCoAYABaGlyAM4n0ifWJ3IAZQDlAE0n7SFlcwCgyiJpAIChuSVlZmwAXAxjEt4n9CFyaQCgzinsInVoYXIAoGgpAKAeIWENBSgJKA0oSyhVKIYoAACLKLAoAAAAAOMo5ygAABApJCkxKW0pcSmHKaYpAACYKgAAAACxKmMidXRlAFthcQB1AO8ABR+ApHsiRWFjZWlucHN5ABwoHignKCooLygyKEEoRihJKACgtCrwASMoAAAlKACguCpvAG4AYWF1AOUAgw1koLAqaQBsAF9hcgBjAF1hgAFFYXMAOCg6KD0oAKC2KnAAAKC6KmkAbQAAoOki7yJsaW50AKATKmkA7QCIDUFkbwB0AGKixSKRFgAAAABTKACgZiqAA0FhY21zdHgAYChkKG8ocyh1KHkogihyAHIAAKDYIXIAAAFocmkoayjrAJAab6CYIfcAzAd0ADuApwCnQGkAO2D3IWFyAKApKW0AAAFpbn4ozQBuAHUA8wDOAHQAAKA2J3IA7+A12DDdIxkAAmFjb3mRKJUonSisKHIAcAAAoG8mAAFoeZkonChjAHkASWRIZHIAdABtAqUoAAAAAKgoaQDkAFsPYQByAGEA7ABsJDuArQCtQAABZ22zKLsobQBhAAChwwNmdroouijCY4CjPCJkZWdsbnByAMgozCjPKNMo1yjaKN4obwB0AACgairxoEMiCw5FoJ4qAKCgKkWgnSoAoJ8qZQAAoEYi7CF1cwCgJCrhIXJyAKByKWEAcgDyAPwMAAJhZWl07Sj8KAEpCCkAAWxz8Sj4KGwAcwBlAHQAbQDpAH8oaABwAACgMyrwImFyc2wAoOQpAAFkbFoPBSllAACgIyNloKoqc6CsKgDgrCoA/oABZmxwABUpGCkfKfQhY3lMZGKgLwBhoMQpcgAAoD8jZgAA4DXYZN1hAAABZHIoKRcDZQBzAHWgYCZpAHQAAKBgJoABY3N1ADYpRilhKQABYXU6KUApcABzoJMiAOCTIgD+cABzoJQiAOCUIgD+dQAAAWJwSylWKQChjyJlcz4NUCllAHQAZaCPIvEAPw0AoZAiZXNIDVspZQB0AGWgkCLxAEkNAKGhJWFmZilbBHIAZQFrKVwEAKChJWEAcgDyAAMNAAJjZW10dyl7KX8pgilyAADgNdjI3HQAbQDuAM4AaQDsAAYpYQByAOYAVw0AAWFyiimOKXIA5qAGJhESAAFhbpIpoylpImdodAAAAWVwmSmgKXAAcwBpAGwAbwDuANkXaADpAKAkcwCvYIACYmNtbnAArin8KY4NJSooKgCkgiJFZGVtbnByc7wpvinCKcgpzCnUKdgp3CkAoMUqbwB0AACgvSpkoIYibwB0AACgwyr1IWx0AKDBKgABRWXQKdIpAKDLKgCgiiLsIXVzAKC/KuEhcnIAoHkpgAFlaXUA4inxKfQpdAAAoYIiZW7oKewpcQDxoIYivSllAHEA8aCKItEpbQAAoMcqAAFicPgp+ikAoNUqAKDTKmMAgKJ7ImFjZW5zAAcqDSoUKhYqRihwAHAAcgBvAPgAIyh1AHIAbAB5AGUA8QCDDfEAfA2AAWFlcwAcKiIqPShwAHAAcgBvAPgAPChxAPEAOShnAACgaiYApoMiMTIzRWRlaGxtbnBzPCo/KkIqRSpHKlIqWCpjKmcqaypzKncqO4C5ALlAO4CyALJAO4CzALNAAKDGKgABb3NLKk4qdAAAoL4qdQBiAACg2CpkoIcibwB0AACgxCpzAAABb3VdKmAqbAAAoMknYgAAoNcq4SFycgCgeyn1IWx0AKDCKgABRWVvKnEqAKDMKgCgiyLsIXVzAKDAKoABZWl1AH0qjCqPKnQAAKGDImVugyqHKnEA8aCHIkYqZQBxAPGgiyJwKm0AAKDIKgABYnCTKpUqAKDUKgCg1iqAAUFhbgCdKqEqrCpyAHIAAKDZIXIAAAFocqYqqCrrAJUab6CZIfcAxQf3IWFyAKAqKWwAaQBnADuA3wDfQOELzyrZKtwq6SrsKvEqAAD1KjQrAAAAAAAAAAAAAEwrbCsAAHErvSsAAAAAAADRK3IC1CoAAAAA2CrnIWV0AKAWI8RjcgDrAOUKgAFhZXkA4SrkKucq8iFvbmVh5CFpbGNhQmRvAPQAIg5sInJlYwAAoBUjcgAA4DXYMd0AAmVpa2/7KhIrKCsuK/IBACsAAAkrZQAAATRm6g0EK28AcgDlAOsNYQBzorgDECsAAAAAEit5AG0A0WMAAWNuFislK2sAAAFhcxsrIStwAHAAcgBvAPgAFw5pAG0AAKA8InMA8AD9DQABYXMsKyEr8AAXDnIAbgA7gP4A/kDsATgrOyswG2QA5QBnAmUAcwCAgdcAO2JkAEMrRCtJK9dAYaCgInIAAKAxKgCgMCqAAWVwcwBRK1MraSvhAAkh4qKkIlsrXysAAAAAYytvAHQAAKA2I2kAcgAAoPEqb+A12GXdcgBrAACg2irhAHgociJpbWUAAKA0IIABYWlwAHYreSu3K2QA5QC+DYADYWRlbXBzdACFK6MrmiunK6wrsCuzK24iZ2xlAACitSVkbHFykCuUK5ornCvvIXduAKC/JeUhZnRloMMl8QACBwCgXCJpImdodABloLkl8QBdDG8AdAAAoOwlaSJudXMAAKA6KuwhdXMAoDkqYgAAoM0p6SFtZQCgOyrlInppdW0AoOIjgAFjaHQAwivKK80rAAFyecYrySsA4DXYydxGZGMAeQBbZPIhb2tnYQABaW/UK9creAD0ANERaCJlYWQAAAFsct4r5ytlAGYAdABhAHIAcgBvAPcAXQbpJGdodGFycm93AKCgIQAJQUhhYmNkZmdobG1vcHJzdHV3CiwNLBEsHSwnLDEsQCxLLFIsYix6LIQsjyzLLOgs7Sz/LAotcgDyAAkDYQByAACgYykAAWNyFSwbLHUAdABlADuA+gD6QPIACQ1yAOMBIywAACUseQBeZHYAZQBtYQABaXkrLDAscgBjADuA+wD7QENkgAFhYmgANyw6LD0scgDyANEO7CFhY3FhYQDyAOAOAAFpckQsSCzzIWh0AKB+KQDgNdgy3XIAYQB2AGUAO4D5APlAYQFWLF8scgAAAWxyWixcLACgvyEAoL4hbABrAACggCUAAWN0Zix2LG8CbCwAAAAAcyxyAG4AZaAcI3IAAKAcI28AcAAAoA8jcgBpAACg+CUAAWFsfiyBLGMAcgBrYTuAqACoQAABZ3CILIssbwBuAHNhZgAA4DXYZt0AA2FkaGxzdZksniynLLgsuyzFLHIAcgBvAPcACQ1vAHcAbgBhAHIAcgBvAPcA2A5hI3Jwb29uAAABbHKvLLMsZQBmAPQAWyxpAGcAaAD0AF0sdQDzAKYOaQAAocUDaGzBLMIs0mNvAG4AxWPwI2Fycm93cwCgyCGAAWNpdADRLOEs5CxvAtcsAAAAAN4scgBuAGWgHSNyAACgHSNvAHAAAKAOI24AZwBvYXIAaQAAoPklYwByAADgNdjK3IABZGlyAPMs9yz6LG8AdAAAoPAi7CFkZWlhaQBmoLUlAKC0JQABYW0DLQYtcgDyAMosbAA7gPwA/EDhIm5nbGUAoKcpgAdBQkRhY2RlZmxub3Byc3oAJy0qLTAtNC2bLZ0toS2/LcMtxy3TLdgt3C3gLfwtcgDyABADYQByAHag6CoAoOkqYQBzAOgA/gIAAW5yOC08LechcnQAoJwpgANla25wcnN0AJkpSC1NLVQtXi1iLYItYQBwAHAA4QAaHG8AdABoAGkAbgDnAKEXgAFoaXIAoSmzJFotbwBwAPQAdCVooJUh7wD4JgABaXVmLWotZwBtAOEAuygAAWJwbi14LXMjZXRuZXEAceCKIgD+AODLKgD+cyNldG5lcQBx4IsiAP4A4MwqAP4AAWhyhi2KLWUAdADhABIraSNhbmdsZQAAAWxyki2WLeUhZnQAoLIiaSJnaHQAAKCzInkAMmThIXNoAKCiIoABZWxyAKcttC24LWKiKCKuLQAAAACyLWEAcgAAoLsicQAAoFoi7CFpcACg7iIAAWJ0vC1eD2EA8gBfD3IAAOA12DPddAByAOkAlS1zAHUAAAFicM0t0C0A4IIi0iAA4IMi0iBwAGYAAOA12GfdcgBvAPAAWQt0AHIA6QCaLQABY3XkLegtcgAA4DXYy9wAAWJw7C30LW4AAAFFZXUt8S0A4IoiAP5uAAABRWV/LfktAOCLIgD+6SJnemFnAKCaKYADY2Vmb3BycwANLhAuJS4pLiMuLi40LukhcmN1YQABZGkULiEuAAFiZxguHC5hAHIAAKBfKmUAcaAnIgCgWSLlIXJwAKAYIXIAAOA12DTdcABmAADgNdho3WWgQCJhAHQA6ABqD2MAcgAA4DXYzNzjCuQRUC4AAFQuAABYLmIuAAAAAGMubS5wLnQuAAAAAIguki4AAJouJxIqEnQAcgDpAB0ScgAA4DXYNd0AAUFhWy5eLnIA8gDnAnIA8gCTB75jAAFBYWYuaS5yAPIA4AJyAPIAjAdhAPAAeh5pAHMAAKD7IoABZHB0APgReS6DLgABZmx9LoAuAOA12GnddQDzAP8RaQBtAOUABBIAAUFhiy6OLnIA8gDuAnIA8gCaBwABY3GVLgoScgAA4DXYzdwAAXB0nS6hLmwAdQDzACUScgDpACASAARhY2VmaW9zdbEuvC7ELsguzC7PLtQu2S5jAAABdXm2LrsudABlADuA/QD9QE9kAAFpecAuwy5yAGMAd2FLZG4AO4ClAKVAcgAA4DXYNt1jAHkAV2RwAGYAAOA12GrdYwByAADgNdjO3AABY23dLt8ueQBOZGwAO4D/AP9AAAVhY2RlZmhpb3N38y73Lv8uAi8MLxAvEy8YLx0vIi9jInV0ZQB6YQABYXn7Lv4u8iFvbn5hN2RvAHQAfGEAAWV0Bi8KL3QAcgDmAB8QYQC2Y3IAAOA12DfdYwB5ADZk5yJyYXJyAKDdIXAAZgAA4DXYa91jAHIAAOA12M/cAAFqbiYvKC8AoA0gagAAoAwg");
|
|
9978
10399
|
//#endregion
|
|
9979
10400
|
//#region node_modules/.pnpm/entities@7.0.1/node_modules/entities/dist/esm/internal/bin-trie-flags.js
|
|
9980
10401
|
/**
|
|
@@ -10368,7 +10789,7 @@ function determineBranch(decodeTree, current, nodeIndex, char) {
|
|
|
10368
10789
|
}
|
|
10369
10790
|
return -1;
|
|
10370
10791
|
}
|
|
10371
|
-
const htmlDecoder = /*
|
|
10792
|
+
const htmlDecoder = /* #__PURE__ */ getDecoder(htmlDecodeTree);
|
|
10372
10793
|
/**
|
|
10373
10794
|
* Decodes an HTML string.
|
|
10374
10795
|
*
|
|
@@ -10560,13 +10981,14 @@ var Tokenizer = class {
|
|
|
10560
10981
|
}
|
|
10561
10982
|
}
|
|
10562
10983
|
stateInterpolationOpen(c) {
|
|
10563
|
-
if (c === this.delimiterOpen[this.delimiterIndex])
|
|
10564
|
-
|
|
10565
|
-
|
|
10566
|
-
|
|
10567
|
-
|
|
10568
|
-
|
|
10569
|
-
|
|
10984
|
+
if (c === this.delimiterOpen[this.delimiterIndex]) {
|
|
10985
|
+
if (this.delimiterIndex === this.delimiterOpen.length - 1) {
|
|
10986
|
+
const start = this.index + 1 - this.delimiterOpen.length;
|
|
10987
|
+
if (start > this.sectionStart) this.cbs.ontext(this.sectionStart, start);
|
|
10988
|
+
this.state = 3;
|
|
10989
|
+
this.sectionStart = start;
|
|
10990
|
+
} else this.delimiterIndex++;
|
|
10991
|
+
} else if (this.inRCDATA) {
|
|
10570
10992
|
this.state = 32;
|
|
10571
10993
|
this.stateInRCDATA(c);
|
|
10572
10994
|
} else {
|
|
@@ -10582,13 +11004,14 @@ var Tokenizer = class {
|
|
|
10582
11004
|
}
|
|
10583
11005
|
}
|
|
10584
11006
|
stateInterpolationClose(c) {
|
|
10585
|
-
if (c === this.delimiterClose[this.delimiterIndex])
|
|
10586
|
-
|
|
10587
|
-
|
|
10588
|
-
|
|
10589
|
-
|
|
10590
|
-
|
|
10591
|
-
|
|
11007
|
+
if (c === this.delimiterClose[this.delimiterIndex]) {
|
|
11008
|
+
if (this.delimiterIndex === this.delimiterClose.length - 1) {
|
|
11009
|
+
this.cbs.oninterpolation(this.sectionStart, this.index + 1);
|
|
11010
|
+
if (this.inRCDATA) this.state = 32;
|
|
11011
|
+
else this.state = 1;
|
|
11012
|
+
this.sectionStart = this.index + 1;
|
|
11013
|
+
} else this.delimiterIndex++;
|
|
11014
|
+
} else {
|
|
10592
11015
|
this.state = 3;
|
|
10593
11016
|
this.stateInterpolation(c);
|
|
10594
11017
|
}
|
|
@@ -10704,9 +11127,10 @@ var Tokenizer = class {
|
|
|
10704
11127
|
this.sectionStart = this.index;
|
|
10705
11128
|
if (this.mode === 0) this.state = 6;
|
|
10706
11129
|
else if (this.inSFCRoot) this.state = 34;
|
|
10707
|
-
else if (!this.inXML)
|
|
10708
|
-
|
|
10709
|
-
|
|
11130
|
+
else if (!this.inXML) {
|
|
11131
|
+
if (c === 116) this.state = 30;
|
|
11132
|
+
else this.state = c === 115 ? 29 : 6;
|
|
11133
|
+
} else this.state = 6;
|
|
10710
11134
|
} else if (c === 47) this.state = 8;
|
|
10711
11135
|
else {
|
|
10712
11136
|
this.state = 1;
|
|
@@ -11073,9 +11497,7 @@ var Tokenizer = class {
|
|
|
11073
11497
|
case 24:
|
|
11074
11498
|
this.stateInProcessingInstruction(c);
|
|
11075
11499
|
break;
|
|
11076
|
-
case 33:
|
|
11077
|
-
this.stateInEntity();
|
|
11078
|
-
break;
|
|
11500
|
+
case 33: this.stateInEntity();
|
|
11079
11501
|
}
|
|
11080
11502
|
this.index++;
|
|
11081
11503
|
}
|
|
@@ -11108,9 +11530,10 @@ var Tokenizer = class {
|
|
|
11108
11530
|
handleTrailingData() {
|
|
11109
11531
|
const endIndex = this.buffer.length;
|
|
11110
11532
|
if (this.sectionStart >= endIndex) return;
|
|
11111
|
-
if (this.state === 28)
|
|
11112
|
-
|
|
11113
|
-
|
|
11533
|
+
if (this.state === 28) {
|
|
11534
|
+
if (this.currentSequence === Sequences.CdataEnd) this.cbs.oncdata(this.sectionStart, endIndex);
|
|
11535
|
+
else this.cbs.oncomment(this.sectionStart, endIndex);
|
|
11536
|
+
} else if (this.state === 6 || this.state === 11 || this.state === 18 || this.state === 17 || this.state === 12 || this.state === 13 || this.state === 14 || this.state === 15 || this.state === 16 || this.state === 20 || this.state === 19 || this.state === 21 || this.state === 9) {} else this.cbs.ontext(this.sectionStart, endIndex);
|
|
11114
11537
|
}
|
|
11115
11538
|
emitCodePoint(cp, consumed) {
|
|
11116
11539
|
if (this.baseState !== 1 && this.baseState !== 32) {
|
|
@@ -11227,16 +11650,22 @@ function walkIdentifiers(root, onIdentifier, includeAll = false, parentStack = [
|
|
|
11227
11650
|
const isRefed = isReferencedIdentifier(node, parent, parentStack);
|
|
11228
11651
|
if (includeAll || isRefed && !isLocal) onIdentifier(node, parent, parentStack, isRefed, isLocal);
|
|
11229
11652
|
} else if (node.type === "ObjectProperty" && (parent === null || parent === void 0 ? void 0 : parent.type) === "ObjectPattern") node.inPattern = true;
|
|
11230
|
-
else if (isFunctionType(node))
|
|
11231
|
-
|
|
11232
|
-
|
|
11233
|
-
else
|
|
11234
|
-
|
|
11235
|
-
|
|
11236
|
-
else if (node.type === "
|
|
11237
|
-
|
|
11238
|
-
|
|
11239
|
-
else
|
|
11653
|
+
else if (isFunctionType(node)) {
|
|
11654
|
+
if (node.scopeIds) node.scopeIds.forEach((id) => markKnownIds(id, knownIds));
|
|
11655
|
+
else walkFunctionParams(node, (id) => markScopeIdentifier(node, id, knownIds));
|
|
11656
|
+
} else if (node.type === "BlockStatement") {
|
|
11657
|
+
if (node.scopeIds) node.scopeIds.forEach((id) => markKnownIds(id, knownIds));
|
|
11658
|
+
else walkBlockDeclarations(node, (id) => markScopeIdentifier(node, id, knownIds));
|
|
11659
|
+
} else if (node.type === "SwitchStatement") {
|
|
11660
|
+
if (node.scopeIds) node.scopeIds.forEach((id) => markKnownIds(id, knownIds));
|
|
11661
|
+
else walkSwitchStatement(node, false, (id) => markScopeIdentifier(node, id, knownIds));
|
|
11662
|
+
} else if (node.type === "CatchClause" && node.param) {
|
|
11663
|
+
if (node.scopeIds) node.scopeIds.forEach((id) => markKnownIds(id, knownIds));
|
|
11664
|
+
else for (const id of extractIdentifiers(node.param)) markScopeIdentifier(node, id, knownIds);
|
|
11665
|
+
} else if (isForStatement(node)) {
|
|
11666
|
+
if (node.scopeIds) node.scopeIds.forEach((id) => markKnownIds(id, knownIds));
|
|
11667
|
+
else walkForStatement(node, false, (id) => markScopeIdentifier(node, id, knownIds));
|
|
11668
|
+
}
|
|
11240
11669
|
},
|
|
11241
11670
|
leave(node, parent) {
|
|
11242
11671
|
parent && parentStack.pop();
|
|
@@ -11328,9 +11757,7 @@ function extractIdentifiers(param, nodes = []) {
|
|
|
11328
11757
|
case "RestElement":
|
|
11329
11758
|
extractIdentifiers(param.argument, nodes);
|
|
11330
11759
|
break;
|
|
11331
|
-
case "AssignmentPattern":
|
|
11332
|
-
extractIdentifiers(param.left, nodes);
|
|
11333
|
-
break;
|
|
11760
|
+
case "AssignmentPattern": extractIdentifiers(param.left, nodes);
|
|
11334
11761
|
}
|
|
11335
11762
|
return nodes;
|
|
11336
11763
|
}
|
|
@@ -11522,7 +11949,7 @@ function isTemplateNode(node) {
|
|
|
11522
11949
|
function isSlotOutlet(node) {
|
|
11523
11950
|
return node.type === 1 && node.tagType === 2;
|
|
11524
11951
|
}
|
|
11525
|
-
const propsHelperSet = new Set([NORMALIZE_PROPS, GUARD_REACTIVE_PROPS]);
|
|
11952
|
+
const propsHelperSet = /* @__PURE__ */ new Set([NORMALIZE_PROPS, GUARD_REACTIVE_PROPS]);
|
|
11526
11953
|
function getUnnormalizedProps(props, callPath = []) {
|
|
11527
11954
|
if (props && !isString(props) && props.type === 14) {
|
|
11528
11955
|
const callee = props.callee;
|
|
@@ -11531,6 +11958,7 @@ function getUnnormalizedProps(props, callPath = []) {
|
|
|
11531
11958
|
return [props, callPath];
|
|
11532
11959
|
}
|
|
11533
11960
|
function injectProp(node, prop, context) {
|
|
11961
|
+
if (node.type !== 13 && injectSlotKey(node, prop)) return;
|
|
11534
11962
|
let propsWithInjection;
|
|
11535
11963
|
/**
|
|
11536
11964
|
* 1. mergeProps(...)
|
|
@@ -11564,11 +11992,26 @@ function injectProp(node, prop, context) {
|
|
|
11564
11992
|
propsWithInjection = createCallExpression(context.helper(MERGE_PROPS), [createObjectExpression([prop]), props]);
|
|
11565
11993
|
if (parentCall && parentCall.callee === GUARD_REACTIVE_PROPS) parentCall = callPath[callPath.length - 2];
|
|
11566
11994
|
}
|
|
11567
|
-
if (node.type === 13)
|
|
11568
|
-
|
|
11569
|
-
|
|
11995
|
+
if (node.type === 13) {
|
|
11996
|
+
if (parentCall) parentCall.arguments[0] = propsWithInjection;
|
|
11997
|
+
else node.props = propsWithInjection;
|
|
11998
|
+
} else if (parentCall) parentCall.arguments[0] = propsWithInjection;
|
|
11570
11999
|
else node.arguments[2] = propsWithInjection;
|
|
11571
12000
|
}
|
|
12001
|
+
function injectSlotKey(node, prop) {
|
|
12002
|
+
var _node$arguments, _node$arguments2, _node$arguments3;
|
|
12003
|
+
if (prop.key.type !== 4 || prop.key.content !== "key") return false;
|
|
12004
|
+
const props = node.arguments[2];
|
|
12005
|
+
if (props && !isString(props)) {
|
|
12006
|
+
const [unnormalizedProps] = getUnnormalizedProps(props);
|
|
12007
|
+
if (unnormalizedProps && !isString(unnormalizedProps) && unnormalizedProps.type === 15 && hasProp(prop, unnormalizedProps)) return true;
|
|
12008
|
+
}
|
|
12009
|
+
(_node$arguments = node.arguments)[2] || (_node$arguments[2] = "{}");
|
|
12010
|
+
(_node$arguments2 = node.arguments)[3] || (_node$arguments2[3] = "undefined");
|
|
12011
|
+
(_node$arguments3 = node.arguments)[4] || (_node$arguments3[4] = "undefined");
|
|
12012
|
+
node.arguments[5] = prop.value;
|
|
12013
|
+
return true;
|
|
12014
|
+
}
|
|
11572
12015
|
function hasProp(prop, props) {
|
|
11573
12016
|
let result = false;
|
|
11574
12017
|
if (prop.key.type === 4) {
|
|
@@ -11792,26 +12235,28 @@ const tokenizer = new Tokenizer(stack, {
|
|
|
11792
12235
|
onattribend(quote, end) {
|
|
11793
12236
|
if (currentOpenTag && currentProp) {
|
|
11794
12237
|
setLocEnd(currentProp.loc, end);
|
|
11795
|
-
if (quote !== 0)
|
|
11796
|
-
if (currentProp.
|
|
11797
|
-
|
|
11798
|
-
|
|
11799
|
-
|
|
11800
|
-
|
|
11801
|
-
|
|
11802
|
-
|
|
11803
|
-
|
|
11804
|
-
|
|
11805
|
-
|
|
11806
|
-
|
|
11807
|
-
|
|
11808
|
-
|
|
11809
|
-
|
|
11810
|
-
|
|
11811
|
-
|
|
11812
|
-
|
|
11813
|
-
currentProp.name = "
|
|
11814
|
-
|
|
12238
|
+
if (quote !== 0) {
|
|
12239
|
+
if (currentProp.type === 6) {
|
|
12240
|
+
if (currentProp.name === "class") currentAttrValue = condense(currentAttrValue).trim();
|
|
12241
|
+
if (quote === 1 && !currentAttrValue) emitError(13, end);
|
|
12242
|
+
currentProp.value = {
|
|
12243
|
+
type: 2,
|
|
12244
|
+
content: currentAttrValue,
|
|
12245
|
+
loc: quote === 1 ? getLoc(currentAttrStartIndex, currentAttrEndIndex) : getLoc(currentAttrStartIndex - 1, currentAttrEndIndex + 1)
|
|
12246
|
+
};
|
|
12247
|
+
if (tokenizer.inSFCRoot && currentOpenTag.tag === "template" && currentProp.name === "lang" && currentAttrValue && currentAttrValue !== "html") tokenizer.enterRCDATA(toCharCodes(`</template`), 0);
|
|
12248
|
+
} else {
|
|
12249
|
+
let expParseMode = 0;
|
|
12250
|
+
if (currentProp.name === "for") expParseMode = 3;
|
|
12251
|
+
else if (currentProp.name === "slot") expParseMode = 1;
|
|
12252
|
+
else if (currentProp.name === "on" && currentAttrValue.includes(";")) expParseMode = 2;
|
|
12253
|
+
currentProp.exp = createExp(currentAttrValue, false, getLoc(currentAttrStartIndex, currentAttrEndIndex), 0, expParseMode);
|
|
12254
|
+
if (currentProp.name === "for") currentProp.forParseResult = parseForExpression(currentProp.exp);
|
|
12255
|
+
let syncIndex = -1;
|
|
12256
|
+
if (currentProp.name === "bind" && (syncIndex = currentProp.modifiers.findIndex((mod) => mod.content === "sync")) > -1 && checkCompatEnabled("COMPILER_V_BIND_SYNC", currentOptions, currentProp.loc, currentProp.arg.loc.source)) {
|
|
12257
|
+
currentProp.name = "model";
|
|
12258
|
+
currentProp.modifiers.splice(syncIndex, 1);
|
|
12259
|
+
}
|
|
11815
12260
|
}
|
|
11816
12261
|
}
|
|
11817
12262
|
if (currentProp.type !== 7 || currentProp.name !== "pre") currentOpenTag.props.push(currentProp);
|
|
@@ -11854,10 +12299,7 @@ const tokenizer = new Tokenizer(stack, {
|
|
|
11854
12299
|
case 18:
|
|
11855
12300
|
case 19:
|
|
11856
12301
|
case 20:
|
|
11857
|
-
case 21:
|
|
11858
|
-
emitError(9, end);
|
|
11859
|
-
break;
|
|
11860
|
-
default: break;
|
|
12302
|
+
case 21: emitError(9, end);
|
|
11861
12303
|
}
|
|
11862
12304
|
for (let index = 0; index < stack.length; index++) {
|
|
11863
12305
|
onCloseTag(stack[index], end - 1);
|
|
@@ -11865,7 +12307,7 @@ const tokenizer = new Tokenizer(stack, {
|
|
|
11865
12307
|
}
|
|
11866
12308
|
},
|
|
11867
12309
|
oncdata(start, end) {
|
|
11868
|
-
if (stack[0].ns !== 0) onText(getSlice(start, end), start, end);
|
|
12310
|
+
if ((stack[0] ? stack[0].ns : currentOptions.ns) !== 0) onText(getSlice(start, end), start, end);
|
|
11869
12311
|
else emitError(1, start - 9);
|
|
11870
12312
|
},
|
|
11871
12313
|
onprocessinginstruction(start) {
|
|
@@ -11987,7 +12429,7 @@ function backTrack(index, c) {
|
|
|
11987
12429
|
while (currentInput.charCodeAt(i) !== c && i >= 0) i--;
|
|
11988
12430
|
return i;
|
|
11989
12431
|
}
|
|
11990
|
-
const specialTemplateDir = new Set([
|
|
12432
|
+
const specialTemplateDir = /* @__PURE__ */ new Set([
|
|
11991
12433
|
"if",
|
|
11992
12434
|
"else",
|
|
11993
12435
|
"else-if",
|
|
@@ -12023,16 +12465,18 @@ function condenseWhitespace(nodes) {
|
|
|
12023
12465
|
let removedWhitespace = false;
|
|
12024
12466
|
for (let i = 0; i < nodes.length; i++) {
|
|
12025
12467
|
const node = nodes[i];
|
|
12026
|
-
if (node.type === 2)
|
|
12027
|
-
if (
|
|
12028
|
-
|
|
12029
|
-
|
|
12030
|
-
|
|
12031
|
-
|
|
12032
|
-
|
|
12033
|
-
|
|
12034
|
-
|
|
12035
|
-
|
|
12468
|
+
if (node.type === 2) {
|
|
12469
|
+
if (!inPre) {
|
|
12470
|
+
if (isAllWhitespace(node.content)) {
|
|
12471
|
+
const prev = nodes[i - 1] && nodes[i - 1].type;
|
|
12472
|
+
const next = nodes[i + 1] && nodes[i + 1].type;
|
|
12473
|
+
if (!prev || !next || shouldCondense && (prev === 3 && (next === 3 || next === 1) || prev === 1 && (next === 3 || next === 1 && hasNewlineChar(node.content)))) {
|
|
12474
|
+
removedWhitespace = true;
|
|
12475
|
+
nodes[i] = null;
|
|
12476
|
+
} else node.content = " ";
|
|
12477
|
+
} else if (shouldCondense) node.content = condense(node.content);
|
|
12478
|
+
} else node.content = node.content.replace(windowsNewlineRE, "\n");
|
|
12479
|
+
}
|
|
12036
12480
|
}
|
|
12037
12481
|
return removedWhitespace ? nodes.filter(Boolean) : nodes;
|
|
12038
12482
|
}
|
|
@@ -12309,7 +12753,7 @@ function getConstantType(node, context) {
|
|
|
12309
12753
|
default: return 0;
|
|
12310
12754
|
}
|
|
12311
12755
|
}
|
|
12312
|
-
const allowHoistedHelperSet = new Set([
|
|
12756
|
+
const allowHoistedHelperSet = /* @__PURE__ */ new Set([
|
|
12313
12757
|
NORMALIZE_CLASS,
|
|
12314
12758
|
NORMALIZE_STYLE,
|
|
12315
12759
|
NORMALIZE_PROPS,
|
|
@@ -12386,8 +12830,10 @@ function createTransformContext(root, { filename = "", prefixIdentifiers = false
|
|
|
12386
12830
|
imports: [],
|
|
12387
12831
|
cached: [],
|
|
12388
12832
|
constantCache: /* @__PURE__ */ new WeakMap(),
|
|
12833
|
+
vForMemoKeyedNodes: /* @__PURE__ */ new WeakSet(),
|
|
12389
12834
|
temps: 0,
|
|
12390
12835
|
identifiers: Object.create(null),
|
|
12836
|
+
identifierScopes: Object.create(null),
|
|
12391
12837
|
scopes: {
|
|
12392
12838
|
vFor: 0,
|
|
12393
12839
|
vSlot: 0,
|
|
@@ -12432,16 +12878,20 @@ function createTransformContext(root, { filename = "", prefixIdentifiers = false
|
|
|
12432
12878
|
context.parent.children.splice(removalIndex, 1);
|
|
12433
12879
|
},
|
|
12434
12880
|
onNodeRemoved: NOOP,
|
|
12435
|
-
addIdentifiers(exp) {
|
|
12436
|
-
if (isString(exp)) addId(exp);
|
|
12437
|
-
else if (exp.identifiers) exp.identifiers.forEach(addId);
|
|
12438
|
-
else if (exp.type === 4) addId(exp.content);
|
|
12881
|
+
addIdentifiers(exp, type = "local") {
|
|
12882
|
+
if (isString(exp)) addId(exp, type);
|
|
12883
|
+
else if (exp.identifiers) exp.identifiers.forEach((id) => addId(id, type));
|
|
12884
|
+
else if (exp.type === 4) addId(exp.content, type);
|
|
12439
12885
|
},
|
|
12440
12886
|
removeIdentifiers(exp) {
|
|
12441
12887
|
if (isString(exp)) removeId(exp);
|
|
12442
12888
|
else if (exp.identifiers) exp.identifiers.forEach(removeId);
|
|
12443
12889
|
else if (exp.type === 4) removeId(exp.content);
|
|
12444
12890
|
},
|
|
12891
|
+
isSlotScopeIdentifier(name) {
|
|
12892
|
+
const scopes = context.identifierScopes[name];
|
|
12893
|
+
return scopes ? scopes[scopes.length - 1] === "slot" : false;
|
|
12894
|
+
},
|
|
12445
12895
|
hoist(exp) {
|
|
12446
12896
|
if (isString(exp)) exp = createSimpleExpression(exp);
|
|
12447
12897
|
context.hoists.push(exp);
|
|
@@ -12456,13 +12906,16 @@ function createTransformContext(root, { filename = "", prefixIdentifiers = false
|
|
|
12456
12906
|
}
|
|
12457
12907
|
};
|
|
12458
12908
|
context.filters = /* @__PURE__ */ new Set();
|
|
12459
|
-
function addId(id) {
|
|
12460
|
-
const { identifiers } = context;
|
|
12909
|
+
function addId(id, type) {
|
|
12910
|
+
const { identifiers, identifierScopes } = context;
|
|
12461
12911
|
if (identifiers[id] === void 0) identifiers[id] = 0;
|
|
12462
12912
|
identifiers[id]++;
|
|
12913
|
+
(identifierScopes[id] || (identifierScopes[id] = [])).push(type);
|
|
12463
12914
|
}
|
|
12464
12915
|
function removeId(id) {
|
|
12465
12916
|
context.identifiers[id]--;
|
|
12917
|
+
const scopes = context.identifierScopes[id];
|
|
12918
|
+
if (scopes) scopes.pop();
|
|
12466
12919
|
}
|
|
12467
12920
|
return context;
|
|
12468
12921
|
}
|
|
@@ -12471,7 +12924,7 @@ function transform(root, options) {
|
|
|
12471
12924
|
traverseNode(root, context);
|
|
12472
12925
|
if (options.hoistStatic) cacheStatic(root, context);
|
|
12473
12926
|
if (!options.ssr) createRootCodegen(root, context);
|
|
12474
|
-
root.helpers = new Set([...context.helpers.keys()]);
|
|
12927
|
+
root.helpers = /* @__PURE__ */ new Set([...context.helpers.keys()]);
|
|
12475
12928
|
root.components = [...context.components];
|
|
12476
12929
|
root.directives = [...context.directives];
|
|
12477
12930
|
root.imports = context.imports;
|
|
@@ -12514,8 +12967,10 @@ function traverseNode(node, context) {
|
|
|
12514
12967
|
const exitFns = [];
|
|
12515
12968
|
for (let i = 0; i < nodeTransforms.length; i++) {
|
|
12516
12969
|
const onExit = nodeTransforms[i](node, context);
|
|
12517
|
-
if (onExit)
|
|
12518
|
-
|
|
12970
|
+
if (onExit) {
|
|
12971
|
+
if (isArray(onExit)) exitFns.push(...onExit);
|
|
12972
|
+
else exitFns.push(onExit);
|
|
12973
|
+
}
|
|
12519
12974
|
if (!context.currentNode) return;
|
|
12520
12975
|
else node = context.currentNode;
|
|
12521
12976
|
}
|
|
@@ -12532,9 +12987,7 @@ function traverseNode(node, context) {
|
|
|
12532
12987
|
case 10:
|
|
12533
12988
|
case 11:
|
|
12534
12989
|
case 1:
|
|
12535
|
-
case 0:
|
|
12536
|
-
traverseChildren(node, context);
|
|
12537
|
-
break;
|
|
12990
|
+
case 0: traverseChildren(node, context);
|
|
12538
12991
|
}
|
|
12539
12992
|
context.currentNode = node;
|
|
12540
12993
|
let i = exitFns.length;
|
|
@@ -12720,16 +13173,18 @@ function genFunctionPreamble(ast, context) {
|
|
|
12720
13173
|
const { ssr, prefixIdentifiers, push, newline, runtimeModuleName, runtimeGlobalName, ssrRuntimeModuleName } = context;
|
|
12721
13174
|
const VueBinding = ssr ? `require(${JSON.stringify(runtimeModuleName)})` : runtimeGlobalName;
|
|
12722
13175
|
const helpers = Array.from(ast.helpers);
|
|
12723
|
-
if (helpers.length > 0)
|
|
12724
|
-
|
|
12725
|
-
|
|
12726
|
-
|
|
12727
|
-
|
|
12728
|
-
|
|
12729
|
-
|
|
12730
|
-
|
|
12731
|
-
|
|
12732
|
-
|
|
13176
|
+
if (helpers.length > 0) {
|
|
13177
|
+
if (prefixIdentifiers) push(`const { ${helpers.map(aliasHelper).join(", ")} } = ${VueBinding}\n`, -1);
|
|
13178
|
+
else {
|
|
13179
|
+
push(`const _Vue = ${VueBinding}\n`, -1);
|
|
13180
|
+
if (ast.hoists.length) push(`const { ${[
|
|
13181
|
+
CREATE_VNODE,
|
|
13182
|
+
CREATE_ELEMENT_VNODE,
|
|
13183
|
+
CREATE_COMMENT,
|
|
13184
|
+
CREATE_TEXT,
|
|
13185
|
+
CREATE_STATIC
|
|
13186
|
+
].filter((helper) => helpers.includes(helper)).map(aliasHelper).join(", ")} } = _Vue\n`, -1);
|
|
13187
|
+
}
|
|
12733
13188
|
}
|
|
12734
13189
|
if (ast.ssrHelpers && ast.ssrHelpers.length) push(`const { ${ast.ssrHelpers.map(aliasHelper).join(", ")} } = require("${ssrRuntimeModuleName}")\n`, -1);
|
|
12735
13190
|
genHoists(ast.hoists, context);
|
|
@@ -12806,10 +13261,12 @@ function genNodeList(nodes, context, multilines = false, comma = true) {
|
|
|
12806
13261
|
if (isString(node)) push(node, -3);
|
|
12807
13262
|
else if (isArray(node)) genNodeListAsArray(node, context);
|
|
12808
13263
|
else genNode(node, context);
|
|
12809
|
-
if (i < nodes.length - 1)
|
|
12810
|
-
|
|
12811
|
-
|
|
12812
|
-
|
|
13264
|
+
if (i < nodes.length - 1) {
|
|
13265
|
+
if (multilines) {
|
|
13266
|
+
comma && push(",");
|
|
13267
|
+
newline();
|
|
13268
|
+
} else comma && push(", ");
|
|
13269
|
+
}
|
|
12813
13270
|
}
|
|
12814
13271
|
}
|
|
12815
13272
|
function genNode(node, context) {
|
|
@@ -12881,11 +13338,7 @@ function genNode(node, context) {
|
|
|
12881
13338
|
case 25:
|
|
12882
13339
|
genSequenceExpression(node, context);
|
|
12883
13340
|
break;
|
|
12884
|
-
case 26:
|
|
12885
|
-
genReturnStatement(node, context);
|
|
12886
|
-
break;
|
|
12887
|
-
case 10: break;
|
|
12888
|
-
default:
|
|
13341
|
+
case 26: genReturnStatement(node, context);
|
|
12889
13342
|
}
|
|
12890
13343
|
}
|
|
12891
13344
|
function genText(node, context) {
|
|
@@ -13123,7 +13576,7 @@ function genReturnStatement({ returns }, context) {
|
|
|
13123
13576
|
}
|
|
13124
13577
|
//#endregion
|
|
13125
13578
|
//#region packages/compiler-core/src/transforms/transformExpression.ts
|
|
13126
|
-
const isLiteralWhitelisted =
|
|
13579
|
+
const isLiteralWhitelisted = /*@__PURE__*/ makeMap("true,false,null,this");
|
|
13127
13580
|
const transformExpression = (node, context) => {
|
|
13128
13581
|
if (node.type === 5) node.content = processExpression(node.content, context);
|
|
13129
13582
|
else if (node.type === 1) {
|
|
@@ -13133,7 +13586,7 @@ const transformExpression = (node, context) => {
|
|
|
13133
13586
|
if (dir.type === 7 && dir.name !== "for") {
|
|
13134
13587
|
const exp = dir.exp;
|
|
13135
13588
|
const arg = dir.arg;
|
|
13136
|
-
if (exp && exp.type === 4 && !(dir.name === "on" && arg) && !(memo && arg && arg.type === 4 && arg.content === "key")) dir.exp = processExpression(exp, context, dir.name === "slot");
|
|
13589
|
+
if (exp && exp.type === 4 && !(dir.name === "on" && arg) && !(memo && context.vForMemoKeyedNodes.has(node) && arg && arg.type === 4 && arg.content === "key")) dir.exp = processExpression(exp, context, dir.name === "slot");
|
|
13137
13590
|
if (arg && arg.type === 4 && !arg.isStatic) dir.arg = processExpression(arg, context);
|
|
13138
13591
|
}
|
|
13139
13592
|
}
|
|
@@ -13156,20 +13609,21 @@ function processExpression(node, context, asParams = false, asRawStatements = fa
|
|
|
13156
13609
|
if (isConst(type) || type === "setup-reactive-const" || localVars[raw]) return raw;
|
|
13157
13610
|
else if (type === "setup-ref") return `${raw}.value`;
|
|
13158
13611
|
else if (type === "setup-maybe-ref") return isAssignmentLVal || isUpdateArg || isDestructureAssignment ? `${raw}.value` : wrapWithUnref(raw);
|
|
13159
|
-
else if (type === "setup-let")
|
|
13160
|
-
|
|
13161
|
-
|
|
13162
|
-
|
|
13163
|
-
|
|
13164
|
-
|
|
13165
|
-
|
|
13166
|
-
|
|
13167
|
-
|
|
13168
|
-
|
|
13169
|
-
|
|
13170
|
-
|
|
13171
|
-
|
|
13172
|
-
|
|
13612
|
+
else if (type === "setup-let") {
|
|
13613
|
+
if (isAssignmentLVal) {
|
|
13614
|
+
const { right: rVal, operator } = parent;
|
|
13615
|
+
const rExpString = stringifyExpression(processExpression(createSimpleExpression(rawExp.slice(rVal.start - 1, rVal.end - 1), false), context, false, false, knownIds));
|
|
13616
|
+
return `${context.helperString(IS_REF)}(${raw})${context.isTS ? ` //@ts-ignore\n` : ``} ? ${raw}.value ${operator} ${rExpString} : ${raw}`;
|
|
13617
|
+
} else if (isUpdateArg) {
|
|
13618
|
+
id.start = parent.start;
|
|
13619
|
+
id.end = parent.end;
|
|
13620
|
+
const { prefix: isPrefix, operator } = parent;
|
|
13621
|
+
const prefix = isPrefix ? operator : ``;
|
|
13622
|
+
const postfix = isPrefix ? `` : operator;
|
|
13623
|
+
return `${context.helperString(IS_REF)}(${raw})${context.isTS ? ` //@ts-ignore\n` : ``} ? ${prefix}${raw}.value${postfix} : ${prefix}${raw}${postfix}`;
|
|
13624
|
+
} else if (isDestructureAssignment) return raw;
|
|
13625
|
+
else return wrapWithUnref(raw);
|
|
13626
|
+
} else if (type === "props") return genPropsAccessExp(raw);
|
|
13173
13627
|
else if (type === "props-aliased") return genPropsAccessExp(bindingMetadata.__propsAliases[raw]);
|
|
13174
13628
|
} else if (type && type.startsWith("setup") || type === "literal-const") return `$setup.${raw}`;
|
|
13175
13629
|
else if (type === "props-aliased") return `$props['${bindingMetadata.__propsAliases[raw]}']`;
|
|
@@ -13186,8 +13640,10 @@ function processExpression(node, context, asParams = false, asRawStatements = fa
|
|
|
13186
13640
|
if (!asParams && !isScopeVarReference && !isLiteral && (!isAllowedGlobal || bindingMetadata[rawExp])) {
|
|
13187
13641
|
if (isConst(bindingMetadata[rawExp])) node.constType = 1;
|
|
13188
13642
|
node.content = rewriteIdentifier(rawExp);
|
|
13189
|
-
} else if (!isScopeVarReference)
|
|
13190
|
-
|
|
13643
|
+
} else if (!isScopeVarReference) {
|
|
13644
|
+
if (isLiteral) node.constType = 3;
|
|
13645
|
+
else node.constType = 2;
|
|
13646
|
+
}
|
|
13191
13647
|
return node;
|
|
13192
13648
|
}
|
|
13193
13649
|
if (!ast) {
|
|
@@ -13343,12 +13799,13 @@ function createChildrenCodegenNode(branch, keyIndex, context) {
|
|
|
13343
13799
|
const keyProperty = createObjectProperty(`key`, createSimpleExpression(`${keyIndex}`, false, locStub, 2));
|
|
13344
13800
|
const { children } = branch;
|
|
13345
13801
|
const firstChild = children[0];
|
|
13346
|
-
if (children.length !== 1 || firstChild.type !== 1)
|
|
13347
|
-
|
|
13348
|
-
|
|
13349
|
-
|
|
13350
|
-
|
|
13351
|
-
|
|
13802
|
+
if (children.length !== 1 || firstChild.type !== 1) {
|
|
13803
|
+
if (children.length === 1 && firstChild.type === 11) {
|
|
13804
|
+
const vnodeCall = firstChild.codegenNode;
|
|
13805
|
+
injectProp(vnodeCall, keyProperty, context);
|
|
13806
|
+
return vnodeCall;
|
|
13807
|
+
} else return createVNodeCall(context, helper(FRAGMENT), createObjectExpression([keyProperty]), children, 64, void 0, void 0, true, false, false, branch.loc);
|
|
13808
|
+
} else {
|
|
13352
13809
|
const ret = firstChild.codegenNode;
|
|
13353
13810
|
const vnodeCall = getMemoedVNodeCall(ret);
|
|
13354
13811
|
if (vnodeCall.type === 13) convertToBlock(vnodeCall, context);
|
|
@@ -13369,9 +13826,10 @@ function isSameKey(a, b) {
|
|
|
13369
13826
|
return true;
|
|
13370
13827
|
}
|
|
13371
13828
|
function getParentCondition(node) {
|
|
13372
|
-
while (true) if (node.type === 19)
|
|
13373
|
-
|
|
13374
|
-
|
|
13829
|
+
while (true) if (node.type === 19) {
|
|
13830
|
+
if (node.alternate.type === 19) node = node.alternate;
|
|
13831
|
+
else return node;
|
|
13832
|
+
} else if (node.type === 20) node = node.value;
|
|
13375
13833
|
}
|
|
13376
13834
|
//#endregion
|
|
13377
13835
|
//#region packages/compiler-core/src/transforms/vFor.ts
|
|
@@ -13384,11 +13842,11 @@ const transformFor = createStructuralDirectiveTransform("for", (node, dir, conte
|
|
|
13384
13842
|
const keyProp = findProp(node, `key`, false, true);
|
|
13385
13843
|
const isDirKey = keyProp && keyProp.type === 7;
|
|
13386
13844
|
let keyExp = keyProp && (keyProp.type === 6 ? keyProp.value ? createSimpleExpression(keyProp.value.content, true) : void 0 : keyProp.exp);
|
|
13387
|
-
|
|
13388
|
-
|
|
13389
|
-
if (isTemplate) {
|
|
13390
|
-
|
|
13391
|
-
if (
|
|
13845
|
+
const keyProperty = keyExp ? createObjectProperty(`key`, keyExp) : null;
|
|
13846
|
+
if (isTemplate && memo) memo.exp = processExpression(memo.exp, context);
|
|
13847
|
+
if ((isTemplate || memo) && keyProperty && isDirKey) {
|
|
13848
|
+
keyExp = keyProp.exp = keyProperty.value = processExpression(keyProperty.value, context);
|
|
13849
|
+
if (memo) context.vForMemoKeyedNodes.add(node);
|
|
13392
13850
|
}
|
|
13393
13851
|
const isStableFragment = forNode.source.type === 4 && forNode.source.constType > 0;
|
|
13394
13852
|
const fragmentFlag = isStableFragment ? 64 : keyProp ? 128 : 256;
|
|
@@ -13414,15 +13872,24 @@ const transformFor = createStructuralDirectiveTransform("for", (node, dir, conte
|
|
|
13414
13872
|
else {
|
|
13415
13873
|
childBlock = children[0].codegenNode;
|
|
13416
13874
|
if (isTemplate && keyProperty) injectProp(childBlock, keyProperty, context);
|
|
13417
|
-
|
|
13418
|
-
|
|
13419
|
-
|
|
13420
|
-
|
|
13421
|
-
|
|
13875
|
+
const shouldUseBlock = !isStableFragment || childBlock.isBlockRequired === true;
|
|
13876
|
+
if (childBlock.isBlock !== shouldUseBlock) {
|
|
13877
|
+
if (childBlock.isBlock) {
|
|
13878
|
+
removeHelper(OPEN_BLOCK);
|
|
13879
|
+
removeHelper(getVNodeBlockHelper(context.inSSR, childBlock.isComponent));
|
|
13880
|
+
} else removeHelper(getVNodeHelper(context.inSSR, childBlock.isComponent));
|
|
13881
|
+
}
|
|
13882
|
+
childBlock.isBlock = shouldUseBlock;
|
|
13422
13883
|
if (childBlock.isBlock) {
|
|
13423
13884
|
helper(OPEN_BLOCK);
|
|
13424
13885
|
helper(getVNodeBlockHelper(context.inSSR, childBlock.isComponent));
|
|
13425
|
-
} else
|
|
13886
|
+
} else {
|
|
13887
|
+
helper(getVNodeHelper(context.inSSR, childBlock.isComponent));
|
|
13888
|
+
if (childBlock.needsPatch) {
|
|
13889
|
+
var _childBlock$patchFlag;
|
|
13890
|
+
childBlock.patchFlag = ((_childBlock$patchFlag = childBlock.patchFlag) !== null && _childBlock$patchFlag !== void 0 ? _childBlock$patchFlag : 0) | 512;
|
|
13891
|
+
}
|
|
13892
|
+
}
|
|
13426
13893
|
}
|
|
13427
13894
|
if (memo) {
|
|
13428
13895
|
const loop = createFunctionExpression(createForLoopParams(forNode.parseResult, [createSimpleExpression(`_cached`)]));
|
|
@@ -13519,7 +13986,7 @@ const trackSlotScopes = (node, context) => {
|
|
|
13519
13986
|
const vSlot = findDir(node, "slot");
|
|
13520
13987
|
if (vSlot) {
|
|
13521
13988
|
const slotProps = vSlot.exp;
|
|
13522
|
-
if (context.prefixIdentifiers) slotProps && context.addIdentifiers(slotProps);
|
|
13989
|
+
if (context.prefixIdentifiers) slotProps && context.addIdentifiers(slotProps, "slot");
|
|
13523
13990
|
context.scopes.vSlot++;
|
|
13524
13991
|
return () => {
|
|
13525
13992
|
if (context.prefixIdentifiers) slotProps && context.removeIdentifiers(slotProps);
|
|
@@ -13628,8 +14095,10 @@ function buildSlots(node, context, buildSlotFn = buildClientSlotFn) {
|
|
|
13628
14095
|
return createObjectProperty(`default`, fn);
|
|
13629
14096
|
};
|
|
13630
14097
|
if (!hasTemplateSlots) slotsProperties.push(buildDefaultSlotProperty(void 0, children));
|
|
13631
|
-
else if (implicitDefaultChildren.length && !implicitDefaultChildren.every(isWhitespaceText))
|
|
13632
|
-
|
|
14098
|
+
else if (implicitDefaultChildren.length && !implicitDefaultChildren.every(isWhitespaceText)) {
|
|
14099
|
+
if (hasNamedDefaultSlot) context.onError(createCompilerError(39, implicitDefaultChildren[0].loc));
|
|
14100
|
+
else slotsProperties.push(buildDefaultSlotProperty(void 0, implicitDefaultChildren));
|
|
14101
|
+
}
|
|
13633
14102
|
}
|
|
13634
14103
|
const slotFlag = hasDynamicSlots ? 2 : hasForwardedSlots(node.children) ? 3 : 1;
|
|
13635
14104
|
let slots = createObjectExpression(slotsProperties.concat(createObjectProperty(`_`, createSimpleExpression(slotFlag + ``, false))), loc);
|
|
@@ -13655,10 +14124,7 @@ function hasForwardedSlots(children) {
|
|
|
13655
14124
|
if (hasForwardedSlots(child.branches)) return true;
|
|
13656
14125
|
break;
|
|
13657
14126
|
case 10:
|
|
13658
|
-
case 11:
|
|
13659
|
-
if (hasForwardedSlots(child.children)) return true;
|
|
13660
|
-
break;
|
|
13661
|
-
default: break;
|
|
14127
|
+
case 11: if (hasForwardedSlots(child.children)) return true;
|
|
13662
14128
|
}
|
|
13663
14129
|
}
|
|
13664
14130
|
return false;
|
|
@@ -13680,12 +14146,16 @@ const transformElement = (node, context) => {
|
|
|
13680
14146
|
let vnodeDynamicProps;
|
|
13681
14147
|
let dynamicPropNames;
|
|
13682
14148
|
let vnodeDirectives;
|
|
14149
|
+
let needsPatch = false;
|
|
14150
|
+
let isBlockRequired = false;
|
|
13683
14151
|
let shouldUseBlock = isDynamicComponent || vnodeTag === TELEPORT || vnodeTag === SUSPENSE || !isComponent && (tag === "svg" || tag === "foreignObject" || tag === "math");
|
|
13684
14152
|
if (props.length > 0) {
|
|
13685
14153
|
const propsBuildResult = buildProps(node, context, void 0, isComponent, isDynamicComponent);
|
|
13686
14154
|
vnodeProps = propsBuildResult.props;
|
|
13687
14155
|
patchFlag = propsBuildResult.patchFlag;
|
|
13688
14156
|
dynamicPropNames = propsBuildResult.dynamicPropNames;
|
|
14157
|
+
needsPatch = propsBuildResult.needsPatch;
|
|
14158
|
+
isBlockRequired = propsBuildResult.isBlockRequired;
|
|
13689
14159
|
const directives = propsBuildResult.directives;
|
|
13690
14160
|
vnodeDirectives = directives && directives.length ? createArrayExpression(directives.map((dir) => buildDirectiveArgs(dir, context))) : void 0;
|
|
13691
14161
|
if (propsBuildResult.shouldUseBlock) shouldUseBlock = true;
|
|
@@ -13709,7 +14179,10 @@ const transformElement = (node, context) => {
|
|
|
13709
14179
|
} else vnodeChildren = node.children;
|
|
13710
14180
|
}
|
|
13711
14181
|
if (dynamicPropNames && dynamicPropNames.length) vnodeDynamicProps = stringifyDynamicPropNames(dynamicPropNames);
|
|
13712
|
-
node.codegenNode = createVNodeCall(context, vnodeTag, vnodeProps, vnodeChildren, patchFlag === 0 ? void 0 : patchFlag, vnodeDynamicProps, vnodeDirectives, !!shouldUseBlock, false, isComponent, node.loc);
|
|
14182
|
+
const vnodeCall = node.codegenNode = createVNodeCall(context, vnodeTag, vnodeProps, vnodeChildren, patchFlag === 0 ? void 0 : patchFlag, vnodeDynamicProps, vnodeDirectives, !!shouldUseBlock, false, isComponent, node.loc);
|
|
14183
|
+
needsPatch = needsPatch && (patchFlag === 0 || patchFlag === 32);
|
|
14184
|
+
if (needsPatch) vnodeCall.needsPatch = true;
|
|
14185
|
+
if (isBlockRequired) vnodeCall.isBlockRequired = true;
|
|
13713
14186
|
};
|
|
13714
14187
|
};
|
|
13715
14188
|
function resolveComponentType(node, context, ssr = false) {
|
|
@@ -13735,6 +14208,15 @@ function resolveComponentType(node, context, ssr = false) {
|
|
|
13735
14208
|
if (!ssr) context.helper(builtIn);
|
|
13736
14209
|
return builtIn;
|
|
13737
14210
|
}
|
|
14211
|
+
{
|
|
14212
|
+
const fromScope = resolveSlotScopeReference(tag, context);
|
|
14213
|
+
if (fromScope) return fromScope;
|
|
14214
|
+
const dotIndex = tag.indexOf(".");
|
|
14215
|
+
if (dotIndex > 0) {
|
|
14216
|
+
const ns = resolveSlotScopeReference(tag.slice(0, dotIndex), context);
|
|
14217
|
+
if (ns) return ns + tag.slice(dotIndex);
|
|
14218
|
+
}
|
|
14219
|
+
}
|
|
13738
14220
|
{
|
|
13739
14221
|
const fromSetup = resolveSetupReference(tag, context);
|
|
13740
14222
|
if (fromSetup) return fromSetup;
|
|
@@ -13753,6 +14235,14 @@ function resolveComponentType(node, context, ssr = false) {
|
|
|
13753
14235
|
context.components.add(tag);
|
|
13754
14236
|
return toValidAssetId(tag, `component`);
|
|
13755
14237
|
}
|
|
14238
|
+
function resolveSlotScopeReference(name, context) {
|
|
14239
|
+
const camelName = camelize(name);
|
|
14240
|
+
const PascalName = capitalize(camelName);
|
|
14241
|
+
const isInSlotScope = (reference) => context.isSlotScopeIdentifier(reference);
|
|
14242
|
+
if (isInSlotScope(name)) return name;
|
|
14243
|
+
if (isInSlotScope(camelName)) return camelName;
|
|
14244
|
+
if (isInSlotScope(PascalName)) return PascalName;
|
|
14245
|
+
}
|
|
13756
14246
|
function resolveSetupReference(name, context) {
|
|
13757
14247
|
const bindings = context.bindingMetadata;
|
|
13758
14248
|
if (!bindings || bindings.__isScriptSetup === false) return;
|
|
@@ -13777,6 +14267,7 @@ function buildProps(node, context, props = node.props, isComponent, isDynamicCom
|
|
|
13777
14267
|
const runtimeDirectives = [];
|
|
13778
14268
|
const hasChildren = children.length > 0;
|
|
13779
14269
|
let shouldUseBlock = false;
|
|
14270
|
+
let isBlockRequired = false;
|
|
13780
14271
|
let patchFlag = 0;
|
|
13781
14272
|
let hasRef = false;
|
|
13782
14273
|
let hasClassBinding = false;
|
|
@@ -13801,12 +14292,12 @@ function buildProps(node, context, props = node.props, isComponent, isDynamicCom
|
|
|
13801
14292
|
const isEventHandler = isOn(name);
|
|
13802
14293
|
if (isEventHandler && (!isComponent || isDynamicComponent) && name.toLowerCase() !== "onclick" && name !== "onUpdate:modelValue" && !isReservedProp(name)) hasHydrationEventBinding = true;
|
|
13803
14294
|
if (isEventHandler && isReservedProp(name)) hasVnodeHook = true;
|
|
14295
|
+
if (name === "ref") hasRef = true;
|
|
13804
14296
|
if (isEventHandler && value.type === 14) value = value.arguments[0];
|
|
13805
14297
|
if (value.type === 20 || (value.type === 4 || value.type === 8) && getConstantType(value, context) > 0) return;
|
|
13806
|
-
if (name === "
|
|
13807
|
-
else if (name === "class") hasClassBinding = true;
|
|
14298
|
+
if (name === "class") hasClassBinding = true;
|
|
13808
14299
|
else if (name === "style") hasStyleBinding = true;
|
|
13809
|
-
else if (name !== "key" && !dynamicPropNames.includes(name)) dynamicPropNames.push(name);
|
|
14300
|
+
else if (name !== "ref" && name !== "key" && !dynamicPropNames.includes(name)) dynamicPropNames.push(name);
|
|
13810
14301
|
if (isComponent && (name === "class" || name === "style") && !dynamicPropNames.includes(name)) dynamicPropNames.push(name);
|
|
13811
14302
|
} else hasDynamicKeys = true;
|
|
13812
14303
|
};
|
|
@@ -13839,26 +14330,31 @@ function buildProps(node, context, props = node.props, isComponent, isDynamicCom
|
|
|
13839
14330
|
if (name === "once" || name === "memo") continue;
|
|
13840
14331
|
if (name === "is" || isVBind && isStaticArgOf(arg, "is") && (isComponentTag(tag) || isCompatEnabled("COMPILER_IS_ON_ELEMENT", context))) continue;
|
|
13841
14332
|
if (isVOn && ssr) continue;
|
|
13842
|
-
if (isVBind && isStaticArgOf(arg, "key")
|
|
14333
|
+
if (isVBind && isStaticArgOf(arg, "key")) shouldUseBlock = true;
|
|
14334
|
+
if (isVOn && hasChildren && arg && isStaticExp(arg) && camelize(arg.content) === "vue:beforeUpdate") {
|
|
14335
|
+
shouldUseBlock = true;
|
|
14336
|
+
isBlockRequired = true;
|
|
14337
|
+
}
|
|
13843
14338
|
if (isVBind && isStaticArgOf(arg, "ref")) pushRefVForMarker();
|
|
13844
14339
|
if (!arg && (isVBind || isVOn)) {
|
|
13845
14340
|
hasDynamicKeys = true;
|
|
13846
|
-
if (exp)
|
|
13847
|
-
|
|
13848
|
-
|
|
13849
|
-
|
|
13850
|
-
|
|
13851
|
-
|
|
13852
|
-
|
|
13853
|
-
|
|
13854
|
-
|
|
13855
|
-
|
|
13856
|
-
|
|
13857
|
-
|
|
13858
|
-
|
|
13859
|
-
|
|
13860
|
-
|
|
13861
|
-
|
|
14341
|
+
if (exp) {
|
|
14342
|
+
if (isVBind) {
|
|
14343
|
+
pushMergeArg();
|
|
14344
|
+
if (isCompatEnabled("COMPILER_V_BIND_OBJECT_ORDER", context)) {
|
|
14345
|
+
mergeArgs.unshift(exp);
|
|
14346
|
+
continue;
|
|
14347
|
+
}
|
|
14348
|
+
pushRefVForMarker();
|
|
14349
|
+
pushMergeArg();
|
|
14350
|
+
mergeArgs.push(exp);
|
|
14351
|
+
} else pushMergeArg({
|
|
14352
|
+
type: 14,
|
|
14353
|
+
loc,
|
|
14354
|
+
callee: context.helper(TO_HANDLERS),
|
|
14355
|
+
arguments: isComponent ? [exp] : [exp, `true`]
|
|
14356
|
+
});
|
|
14357
|
+
} else context.onError(createCompilerError(isVBind ? 34 : 35, loc));
|
|
13862
14358
|
continue;
|
|
13863
14359
|
}
|
|
13864
14360
|
if (isVBind && modifiers.some((mod) => mod.content === "prop")) patchFlag |= 32;
|
|
@@ -13874,7 +14370,10 @@ function buildProps(node, context, props = node.props, isComponent, isDynamicCom
|
|
|
13874
14370
|
}
|
|
13875
14371
|
} else if (!isBuiltInDirective(name)) {
|
|
13876
14372
|
runtimeDirectives.push(prop);
|
|
13877
|
-
if (hasChildren)
|
|
14373
|
+
if (hasChildren) {
|
|
14374
|
+
shouldUseBlock = true;
|
|
14375
|
+
isBlockRequired = true;
|
|
14376
|
+
}
|
|
13878
14377
|
}
|
|
13879
14378
|
}
|
|
13880
14379
|
}
|
|
@@ -13891,7 +14390,8 @@ function buildProps(node, context, props = node.props, isComponent, isDynamicCom
|
|
|
13891
14390
|
if (dynamicPropNames.length) patchFlag |= 8;
|
|
13892
14391
|
if (hasHydrationEventBinding) patchFlag |= 32;
|
|
13893
14392
|
}
|
|
13894
|
-
|
|
14393
|
+
const needsPatch = (patchFlag === 0 || patchFlag === 32) && (hasRef || hasVnodeHook || runtimeDirectives.length > 0);
|
|
14394
|
+
if (!shouldUseBlock && needsPatch) patchFlag |= 512;
|
|
13895
14395
|
if (!context.inSSR && propsExpression) switch (propsExpression.type) {
|
|
13896
14396
|
case 15:
|
|
13897
14397
|
let classKeyIndex = -1;
|
|
@@ -13912,16 +14412,16 @@ function buildProps(node, context, props = node.props, isComponent, isDynamicCom
|
|
|
13912
14412
|
} else propsExpression = createCallExpression(context.helper(NORMALIZE_PROPS), [propsExpression]);
|
|
13913
14413
|
break;
|
|
13914
14414
|
case 14: break;
|
|
13915
|
-
default:
|
|
13916
|
-
propsExpression = createCallExpression(context.helper(NORMALIZE_PROPS), [createCallExpression(context.helper(GUARD_REACTIVE_PROPS), [propsExpression])]);
|
|
13917
|
-
break;
|
|
14415
|
+
default: propsExpression = createCallExpression(context.helper(NORMALIZE_PROPS), [createCallExpression(context.helper(GUARD_REACTIVE_PROPS), [propsExpression])]);
|
|
13918
14416
|
}
|
|
13919
14417
|
return {
|
|
13920
14418
|
props: propsExpression,
|
|
13921
14419
|
directives: runtimeDirectives,
|
|
13922
14420
|
patchFlag,
|
|
13923
14421
|
dynamicPropNames,
|
|
13924
|
-
shouldUseBlock
|
|
14422
|
+
shouldUseBlock,
|
|
14423
|
+
needsPatch,
|
|
14424
|
+
isBlockRequired
|
|
13925
14425
|
};
|
|
13926
14426
|
}
|
|
13927
14427
|
function dedupeProperties(properties) {
|
|
@@ -14022,10 +14522,12 @@ function processSlotOutlet(node, context) {
|
|
|
14022
14522
|
for (let i = 0; i < node.props.length; i++) {
|
|
14023
14523
|
const p = node.props[i];
|
|
14024
14524
|
if (p.type === 6) {
|
|
14025
|
-
if (p.value)
|
|
14026
|
-
|
|
14027
|
-
|
|
14028
|
-
|
|
14525
|
+
if (p.value) {
|
|
14526
|
+
if (p.name === "name") slotName = JSON.stringify(p.value.content);
|
|
14527
|
+
else {
|
|
14528
|
+
p.name = camelize(p.name);
|
|
14529
|
+
nonNameProps.push(p);
|
|
14530
|
+
}
|
|
14029
14531
|
}
|
|
14030
14532
|
} else if (p.name === "bind" && isStaticArgOf(p.arg, "name")) {
|
|
14031
14533
|
if (p.exp) slotName = p.exp;
|
|
@@ -14054,16 +14556,17 @@ const transformOn$1 = (dir, node, context, augmentor) => {
|
|
|
14054
14556
|
const { loc, modifiers, arg } = dir;
|
|
14055
14557
|
if (!dir.exp && !modifiers.length) context.onError(createCompilerError(35, loc));
|
|
14056
14558
|
let eventName;
|
|
14057
|
-
if (arg.type === 4)
|
|
14058
|
-
|
|
14059
|
-
|
|
14060
|
-
|
|
14061
|
-
|
|
14062
|
-
|
|
14063
|
-
|
|
14064
|
-
|
|
14065
|
-
|
|
14066
|
-
|
|
14559
|
+
if (arg.type === 4) {
|
|
14560
|
+
if (arg.isStatic) {
|
|
14561
|
+
let rawName = arg.content;
|
|
14562
|
+
if (rawName.startsWith("vue:")) rawName = `vnode-${rawName.slice(4)}`;
|
|
14563
|
+
eventName = createSimpleExpression(node.tagType !== 0 || rawName.startsWith("vnode") || !/[A-Z]/.test(rawName) ? toHandlerKey(camelize(rawName)) : `on:${rawName}`, true, arg.loc);
|
|
14564
|
+
} else eventName = createCompoundExpression([
|
|
14565
|
+
`${context.helperString(TO_HANDLER_KEY)}(`,
|
|
14566
|
+
arg,
|
|
14567
|
+
`)`
|
|
14568
|
+
]);
|
|
14569
|
+
} else {
|
|
14067
14570
|
eventName = arg;
|
|
14068
14571
|
eventName.children.unshift(`${context.helperString(TO_HANDLER_KEY)}(`);
|
|
14069
14572
|
eventName.children.push(`)`);
|
|
@@ -14080,13 +14583,15 @@ const transformOn$1 = (dir, node, context, augmentor) => {
|
|
|
14080
14583
|
exp = dir.exp = processExpression(exp, context, false, hasMultipleStatements);
|
|
14081
14584
|
isInlineStatement && context.removeIdentifiers(`$event`);
|
|
14082
14585
|
shouldCache = context.cacheHandlers && !context.inVOnce && !(exp.type === 4 && exp.constType > 0) && !(isMemberExp && node.tagType === 1) && !hasScopeRef(exp, context.identifiers);
|
|
14083
|
-
if (shouldCache && isMemberExp)
|
|
14084
|
-
|
|
14085
|
-
|
|
14086
|
-
|
|
14087
|
-
|
|
14088
|
-
|
|
14089
|
-
|
|
14586
|
+
if (shouldCache && isMemberExp) {
|
|
14587
|
+
if (exp.type === 4) exp.content = `${exp.content} && ${exp.content}(...args)`;
|
|
14588
|
+
else exp.children = [
|
|
14589
|
+
...exp.children,
|
|
14590
|
+
` && `,
|
|
14591
|
+
...exp.children,
|
|
14592
|
+
`(...args)`
|
|
14593
|
+
];
|
|
14594
|
+
}
|
|
14090
14595
|
}
|
|
14091
14596
|
if (isInlineStatement || shouldCache && isMemberExp) exp = createCompoundExpression([
|
|
14092
14597
|
`${isInlineStatement ? context.isTS ? `($event: any)` : `$event` : `${context.isTS ? `\n//@ts-ignore\n` : ``}(...args)`} => ${hasMultipleStatements ? `{` : `(`}`,
|
|
@@ -14114,11 +14619,14 @@ const transformBind = (dir, _node, context) => {
|
|
|
14114
14619
|
arg.children.unshift(`(`);
|
|
14115
14620
|
arg.children.push(`) || ""`);
|
|
14116
14621
|
} else if (!arg.isStatic) arg.content = arg.content ? `${arg.content} || ""` : `""`;
|
|
14117
|
-
if (modifiers.some((mod) => mod.content === "camel"))
|
|
14118
|
-
|
|
14119
|
-
|
|
14120
|
-
|
|
14121
|
-
|
|
14622
|
+
if (modifiers.some((mod) => mod.content === "camel")) {
|
|
14623
|
+
if (arg.type === 4) {
|
|
14624
|
+
if (arg.isStatic) arg.content = camelize(arg.content);
|
|
14625
|
+
else arg.content = `${context.helperString(CAMELIZE)}(${arg.content})`;
|
|
14626
|
+
} else {
|
|
14627
|
+
arg.children.unshift(`${context.helperString(CAMELIZE)}(`);
|
|
14628
|
+
arg.children.push(`)`);
|
|
14629
|
+
}
|
|
14122
14630
|
}
|
|
14123
14631
|
if (!context.inSSR) {
|
|
14124
14632
|
if (modifiers.some((mod) => mod.content === "prop")) injectPrefix(arg, ".");
|
|
@@ -14127,9 +14635,10 @@ const transformBind = (dir, _node, context) => {
|
|
|
14127
14635
|
return { props: [createObjectProperty(arg, exp)] };
|
|
14128
14636
|
};
|
|
14129
14637
|
const injectPrefix = (arg, prefix) => {
|
|
14130
|
-
if (arg.type === 4)
|
|
14131
|
-
|
|
14132
|
-
|
|
14638
|
+
if (arg.type === 4) {
|
|
14639
|
+
if (arg.isStatic) arg.content = prefix + arg.content;
|
|
14640
|
+
else arg.content = `\`${prefix}\${${arg.content}}\``;
|
|
14641
|
+
} else {
|
|
14133
14642
|
arg.children.unshift(`'${prefix}' + (`);
|
|
14134
14643
|
arg.children.push(`)`);
|
|
14135
14644
|
}
|
|
@@ -14224,20 +14733,21 @@ const transformModel$1 = (dir, node, context) => {
|
|
|
14224
14733
|
const eventName = arg ? isStaticExp(arg) ? `onUpdate:${camelize(arg.content)}` : createCompoundExpression(["\"onUpdate:\" + ", arg]) : `onUpdate:modelValue`;
|
|
14225
14734
|
let assignmentExp;
|
|
14226
14735
|
const eventArg = context.isTS ? `($event: any)` : `$event`;
|
|
14227
|
-
if (maybeRef)
|
|
14228
|
-
|
|
14229
|
-
|
|
14230
|
-
`).value = $event)`
|
|
14231
|
-
]);
|
|
14232
|
-
else {
|
|
14233
|
-
const altAssignment = bindingType === "setup-let" ? `${rawExp} = $event` : `null`;
|
|
14234
|
-
assignmentExp = createCompoundExpression([
|
|
14235
|
-
`${eventArg} => (${context.helperString(IS_REF)}(${rawExp}) ? (`,
|
|
14736
|
+
if (maybeRef) {
|
|
14737
|
+
if (bindingType === "setup-ref") assignmentExp = createCompoundExpression([
|
|
14738
|
+
`${eventArg} => ((`,
|
|
14236
14739
|
createSimpleExpression(rawExp, false, exp.loc),
|
|
14237
|
-
`).value = $event
|
|
14740
|
+
`).value = $event)`
|
|
14238
14741
|
]);
|
|
14239
|
-
|
|
14240
|
-
|
|
14742
|
+
else {
|
|
14743
|
+
const altAssignment = bindingType === "setup-let" ? `${rawExp} = $event` : `null`;
|
|
14744
|
+
assignmentExp = createCompoundExpression([
|
|
14745
|
+
`${eventArg} => (${context.helperString(IS_REF)}(${rawExp}) ? (`,
|
|
14746
|
+
createSimpleExpression(rawExp, false, exp.loc),
|
|
14747
|
+
`).value = $event : ${altAssignment})`
|
|
14748
|
+
]);
|
|
14749
|
+
}
|
|
14750
|
+
} else assignmentExp = createCompoundExpression([
|
|
14241
14751
|
`${eventArg} => ((`,
|
|
14242
14752
|
exp,
|
|
14243
14753
|
`) = $event)`
|
|
@@ -14270,7 +14780,7 @@ function rewriteFilter(node, context) {
|
|
|
14270
14780
|
const child = node.children[i];
|
|
14271
14781
|
if (typeof child !== "object") continue;
|
|
14272
14782
|
if (child.type === 4) parseFilter(child, context);
|
|
14273
|
-
else if (child.type === 8) rewriteFilter(
|
|
14783
|
+
else if (child.type === 8) rewriteFilter(child, context);
|
|
14274
14784
|
else if (child.type === 5) rewriteFilter(child.content, context);
|
|
14275
14785
|
}
|
|
14276
14786
|
}
|
|
@@ -14296,11 +14806,12 @@ function parseFilter(node, context) {
|
|
|
14296
14806
|
if (c === 96 && prev !== 92) inTemplateString = false;
|
|
14297
14807
|
} else if (inRegex) {
|
|
14298
14808
|
if (c === 47 && prev !== 92) inRegex = false;
|
|
14299
|
-
} else if (c === 124 && exp.charCodeAt(i + 1) !== 124 && exp.charCodeAt(i - 1) !== 124 && !curly && !square && !paren)
|
|
14300
|
-
|
|
14301
|
-
|
|
14302
|
-
|
|
14303
|
-
|
|
14809
|
+
} else if (c === 124 && exp.charCodeAt(i + 1) !== 124 && exp.charCodeAt(i - 1) !== 124 && !curly && !square && !paren) {
|
|
14810
|
+
if (expression === void 0) {
|
|
14811
|
+
lastFilterIndex = i + 1;
|
|
14812
|
+
expression = exp.slice(0, i).trim();
|
|
14813
|
+
} else pushFilter();
|
|
14814
|
+
} else {
|
|
14304
14815
|
switch (c) {
|
|
14305
14816
|
case 34:
|
|
14306
14817
|
inDouble = true;
|
|
@@ -14326,9 +14837,7 @@ function parseFilter(node, context) {
|
|
|
14326
14837
|
case 123:
|
|
14327
14838
|
curly++;
|
|
14328
14839
|
break;
|
|
14329
|
-
case 125:
|
|
14330
|
-
curly--;
|
|
14331
|
-
break;
|
|
14840
|
+
case 125: curly--;
|
|
14332
14841
|
}
|
|
14333
14842
|
if (c === 47) {
|
|
14334
14843
|
let j = i - 1;
|
|
@@ -14587,8 +15096,6 @@ const transformModel = (dir, node, context) => {
|
|
|
14587
15096
|
case "file":
|
|
14588
15097
|
isInvalidType = true;
|
|
14589
15098
|
context.onError(createDOMCompilerError(60, dir.loc));
|
|
14590
|
-
break;
|
|
14591
|
-
default: break;
|
|
14592
15099
|
}
|
|
14593
15100
|
} else if (hasDynamicKeyVBind(node)) directiveToUse = V_MODEL_DYNAMIC;
|
|
14594
15101
|
} else if (tag === "select") directiveToUse = V_MODEL_SELECT;
|
|
@@ -14599,27 +15106,37 @@ const transformModel = (dir, node, context) => {
|
|
|
14599
15106
|
};
|
|
14600
15107
|
//#endregion
|
|
14601
15108
|
//#region packages/compiler-dom/src/transforms/vOn.ts
|
|
14602
|
-
const isEventOptionModifier =
|
|
14603
|
-
const isNonKeyModifier =
|
|
14604
|
-
const maybeKeyModifier =
|
|
14605
|
-
const isKeyboardEvent =
|
|
15109
|
+
const isEventOptionModifier = /*@__PURE__*/ makeMap(`passive,once,capture`);
|
|
15110
|
+
const isNonKeyModifier = /*@__PURE__*/ makeMap("stop,prevent,self,ctrl,shift,alt,meta,exact,middle");
|
|
15111
|
+
const maybeKeyModifier = /*@__PURE__*/ makeMap("left,right");
|
|
15112
|
+
const isKeyboardEvent = /*@__PURE__*/ makeMap(`onkeyup,onkeydown,onkeypress`);
|
|
14606
15113
|
const resolveModifiers = (key, modifiers, context, loc) => {
|
|
14607
15114
|
const keyModifiers = [];
|
|
14608
15115
|
const nonKeyModifiers = [];
|
|
14609
15116
|
const eventOptionModifiers = [];
|
|
14610
15117
|
for (let i = 0; i < modifiers.length; i++) {
|
|
14611
15118
|
const modifier = modifiers[i].content;
|
|
15119
|
+
if (modifier === "delegate") {
|
|
15120
|
+
if (context) {
|
|
15121
|
+
const error = /* @__PURE__ */ new SyntaxError(`.delegate modifier is only supported in Vapor components.`);
|
|
15122
|
+
error.loc = modifiers[i].loc;
|
|
15123
|
+
context.onWarn(error);
|
|
15124
|
+
}
|
|
15125
|
+
continue;
|
|
15126
|
+
}
|
|
14612
15127
|
if (modifier === "native" && context && checkCompatEnabled("COMPILER_V_ON_NATIVE", context, loc)) eventOptionModifiers.push(modifier);
|
|
14613
15128
|
else if (isEventOptionModifier(modifier)) eventOptionModifiers.push(modifier);
|
|
14614
15129
|
else {
|
|
14615
15130
|
const keyString = isString(key) ? key : isStaticExp(key) ? key.content : null;
|
|
14616
|
-
if (maybeKeyModifier(modifier))
|
|
14617
|
-
|
|
14618
|
-
|
|
14619
|
-
|
|
14620
|
-
|
|
14621
|
-
|
|
14622
|
-
|
|
15131
|
+
if (maybeKeyModifier(modifier)) {
|
|
15132
|
+
if (keyString) {
|
|
15133
|
+
if (isKeyboardEvent(keyString.toLowerCase())) keyModifiers.push(modifier);
|
|
15134
|
+
else nonKeyModifiers.push(modifier);
|
|
15135
|
+
} else {
|
|
15136
|
+
keyModifiers.push(modifier);
|
|
15137
|
+
nonKeyModifiers.push(modifier);
|
|
15138
|
+
}
|
|
15139
|
+
} else if (isNonKeyModifier(modifier)) nonKeyModifiers.push(modifier);
|
|
14623
15140
|
else keyModifiers.push(modifier);
|
|
14624
15141
|
}
|
|
14625
15142
|
}
|
|
@@ -14757,7 +15274,7 @@ const dataAriaRE = /^(?:data|aria)-/;
|
|
|
14757
15274
|
const isStringifiableAttr = (name, ns) => {
|
|
14758
15275
|
return (ns === 0 ? isKnownHtmlAttr(name) : ns === 1 ? isKnownSvgAttr(name) : ns === 2 ? isKnownMathMLAttr(name) : false) || dataAriaRE.test(name);
|
|
14759
15276
|
};
|
|
14760
|
-
const isNonStringifiable =
|
|
15277
|
+
const isNonStringifiable = /*@__PURE__*/ makeMap(`caption,thead,tr,th,tbody,td,tfoot,colgroup,col`);
|
|
14761
15278
|
/**
|
|
14762
15279
|
* for a cached node, analyze it and return:
|
|
14763
15280
|
* - false: bailed (contains non-stringifiable props or runtime constant)
|
|
@@ -14828,10 +15345,11 @@ function stringifyElement(node, context) {
|
|
|
14828
15345
|
res += ` ${p.arg.content}="__VUE_EXP_START__${exp.content}__VUE_EXP_END__"`;
|
|
14829
15346
|
continue;
|
|
14830
15347
|
}
|
|
14831
|
-
if (isBooleanAttr(p.arg.content) && exp.content === "false") continue;
|
|
15348
|
+
if ((isBooleanAttr(p.arg.content) || p.arg.content === "hidden") && exp.content === "false") continue;
|
|
14832
15349
|
let evaluated = evaluateConstant(exp);
|
|
14833
15350
|
if (evaluated != null) {
|
|
14834
15351
|
const arg = p.arg && p.arg.content;
|
|
15352
|
+
if (arg === "hidden" && typeof evaluated === "number" && !includeBooleanAttr(evaluated)) continue;
|
|
14835
15353
|
if (arg === "class") evaluated = normalizeClass(evaluated);
|
|
14836
15354
|
else if (arg === "style") evaluated = stringifyStyle(normalizeStyle(evaluated));
|
|
14837
15355
|
res += ` ${p.arg.content}="${escapeHtml(evaluated)}"`;
|
|
@@ -14891,8 +15409,10 @@ function compile(src, options = {}) {
|
|
|
14891
15409
|
//#region packages/vue-compat/src/index.ts
|
|
14892
15410
|
const compileCache = Object.create(null);
|
|
14893
15411
|
function compileToFunction(template, options) {
|
|
14894
|
-
if (!isString(template))
|
|
14895
|
-
|
|
15412
|
+
if (!isString(template)) {
|
|
15413
|
+
if (template.nodeType) template = template.innerHTML;
|
|
15414
|
+
else return NOOP;
|
|
15415
|
+
}
|
|
14896
15416
|
const key = genCacheKey(template, options);
|
|
14897
15417
|
const cached = compileCache[key];
|
|
14898
15418
|
if (cached) return cached;
|