@vue/compat 3.6.0-rc.1 → 3.6.0-rc.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/vue-compat.d.ts +743 -678
- package/dist/vue.cjs.js +1328 -944
- package/dist/vue.cjs.prod.js +1116 -809
- package/dist/vue.esm-browser.js +1240 -895
- package/dist/vue.esm-browser.prod.js +7 -6
- package/dist/vue.esm-bundler.js +1314 -916
- package/dist/vue.global.js +1240 -895
- package/dist/vue.global.prod.js +7 -6
- package/dist/vue.runtime.esm-browser.js +1240 -895
- package/dist/vue.runtime.esm-browser.prod.js +7 -6
- package/dist/vue.runtime.esm-bundler.js +1314 -916
- package/dist/vue.runtime.global.js +1240 -895
- package/dist/vue.runtime.global.prod.js +7 -6
- package/package.json +3 -3
package/dist/vue.cjs.prod.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @vue/compat v3.6.0-rc.
|
|
2
|
+
* @vue/compat v3.6.0-rc.11
|
|
3
3
|
* (c) 2018-present Yuxi (Evan) You and Vue contributors
|
|
4
4
|
* @license MIT
|
|
5
5
|
**/
|
|
@@ -26,7 +26,7 @@ let source_map_js = require("source-map-js");
|
|
|
26
26
|
* \/\*#\_\_PURE\_\_\*\/
|
|
27
27
|
* So that they can be tree-shaken if necessary.
|
|
28
28
|
*/
|
|
29
|
-
|
|
29
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
30
30
|
function makeMap(str) {
|
|
31
31
|
const map = Object.create(null);
|
|
32
32
|
for (const key of str.split(",")) map[key] = 1;
|
|
@@ -70,8 +70,8 @@ const toRawType = (value) => {
|
|
|
70
70
|
};
|
|
71
71
|
const isPlainObject = (val) => toTypeString(val) === "[object Object]";
|
|
72
72
|
const isIntegerKey = (key) => isString(key) && key !== "NaN" && key[0] !== "-" && "" + parseInt(key, 10) === key;
|
|
73
|
-
const isReservedProp =
|
|
74
|
-
const isBuiltInDirective =
|
|
73
|
+
const isReservedProp = /*@__PURE__*/ makeMap(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted");
|
|
74
|
+
const isBuiltInDirective = /*@__PURE__*/ makeMap("bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo");
|
|
75
75
|
const cacheStringFunction = (fn) => {
|
|
76
76
|
const cache = Object.create(null);
|
|
77
77
|
return ((str) => {
|
|
@@ -152,7 +152,7 @@ function genCacheKey(source, options) {
|
|
|
152
152
|
function canSetValueDirectly(tagName) {
|
|
153
153
|
return tagName !== "PROGRESS" && !tagName.includes("-");
|
|
154
154
|
}
|
|
155
|
-
const isGloballyAllowed =
|
|
155
|
+
const isGloballyAllowed = /*@__PURE__*/ makeMap("Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error,Symbol");
|
|
156
156
|
//#endregion
|
|
157
157
|
//#region packages/shared/src/normalizeProp.ts
|
|
158
158
|
function normalizeStyle(value) {
|
|
@@ -168,10 +168,10 @@ function normalizeStyle(value) {
|
|
|
168
168
|
}
|
|
169
169
|
const listDelimiterRE = /;(?![^(]*\))/g;
|
|
170
170
|
const propertyDelimiterRE = /:([^]+)/;
|
|
171
|
-
const styleCommentRE =
|
|
171
|
+
const styleCommentRE = /"(?:[^"\\]|\\[^])*"|'(?:[^'\\]|\\[^])*'|\\[^]|\/\*[^]*?\*\//g;
|
|
172
172
|
function parseStringStyle(cssText) {
|
|
173
173
|
const ret = {};
|
|
174
|
-
cssText.replace(styleCommentRE, "").split(listDelimiterRE).forEach((item) => {
|
|
174
|
+
cssText.replace(styleCommentRE, (match) => match.startsWith("/*") ? "" : match).split(listDelimiterRE).forEach((item) => {
|
|
175
175
|
if (item) {
|
|
176
176
|
const tmp = item.split(propertyDelimiterRE);
|
|
177
177
|
tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim());
|
|
@@ -221,22 +221,22 @@ const VOID_TAGS = "area,base,br,col,embed,hr,img,input,link,meta,param,source,tr
|
|
|
221
221
|
* Compiler only.
|
|
222
222
|
* Do NOT use in runtime code paths unless behind `__DEV__` flag.
|
|
223
223
|
*/
|
|
224
|
-
const isHTMLTag =
|
|
224
|
+
const isHTMLTag = /*@__PURE__*/ makeMap(HTML_TAGS);
|
|
225
225
|
/**
|
|
226
226
|
* Compiler only.
|
|
227
227
|
* Do NOT use in runtime code paths unless behind `__DEV__` flag.
|
|
228
228
|
*/
|
|
229
|
-
const isSVGTag =
|
|
229
|
+
const isSVGTag = /*@__PURE__*/ makeMap(SVG_TAGS);
|
|
230
230
|
/**
|
|
231
231
|
* Compiler only.
|
|
232
232
|
* Do NOT use in runtime code paths unless behind `__DEV__` flag.
|
|
233
233
|
*/
|
|
234
|
-
const isMathMLTag =
|
|
234
|
+
const isMathMLTag = /*@__PURE__*/ makeMap(MATH_TAGS);
|
|
235
235
|
/**
|
|
236
236
|
* Compiler only.
|
|
237
237
|
* Do NOT use in runtime code paths unless behind `__DEV__` flag.
|
|
238
238
|
*/
|
|
239
|
-
const isVoidTag =
|
|
239
|
+
const isVoidTag = /*@__PURE__*/ makeMap(VOID_TAGS);
|
|
240
240
|
//#endregion
|
|
241
241
|
//#region packages/shared/src/domAttrConfig.ts
|
|
242
242
|
/**
|
|
@@ -251,11 +251,11 @@ const isVoidTag = /* @__PURE__ */ makeMap(VOID_TAGS);
|
|
|
251
251
|
* - readonly -> readOnly
|
|
252
252
|
*/
|
|
253
253
|
const specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;
|
|
254
|
-
const isSpecialBooleanAttr =
|
|
254
|
+
const isSpecialBooleanAttr = /*@__PURE__*/ makeMap(specialBooleanAttrs);
|
|
255
255
|
/**
|
|
256
256
|
* The full list is needed during SSR to produce the correct initial markup.
|
|
257
257
|
*/
|
|
258
|
-
const isBooleanAttr =
|
|
258
|
+
const isBooleanAttr = /*@__PURE__*/ makeMap(specialBooleanAttrs + ",async,autofocus,autoplay,controls,default,defer,disabled,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected");
|
|
259
259
|
/**
|
|
260
260
|
* Boolean attributes should be included if the value is truthy or ''.
|
|
261
261
|
* e.g. `<select multiple>` compiles to `{ multiple: '' }`
|
|
@@ -269,15 +269,15 @@ function includeBooleanAttr(value) {
|
|
|
269
269
|
* Don't also forget to allow `data-*` and `aria-*`!
|
|
270
270
|
* Generated from https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes
|
|
271
271
|
*/
|
|
272
|
-
const isKnownHtmlAttr =
|
|
272
|
+
const isKnownHtmlAttr = /*@__PURE__*/ makeMap("accept,accept-charset,accesskey,action,align,allow,alt,async,autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,border,buffered,capture,challenge,charset,checked,cite,class,code,codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,formaction,formenctype,formmethod,formnovalidate,formtarget,headers,height,hidden,high,href,hreflang,http-equiv,icon,id,importance,inert,integrity,ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,start,step,style,summary,tabindex,target,title,translate,type,usemap,value,width,wrap");
|
|
273
273
|
/**
|
|
274
274
|
* Generated from https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute
|
|
275
275
|
*/
|
|
276
|
-
const isKnownSvgAttr =
|
|
276
|
+
const isKnownSvgAttr = /*@__PURE__*/ makeMap("xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,color-interpolation-filters,color-profile,color-rendering,contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,font-family,font-size,font-size-adjust,font-stretch,font-style,font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,overflow,overline-position,overline-thickness,panose-1,paint-order,path,pathLength,patternContentUnits,patternTransform,patternUnits,ping,pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,specularConstant,specularExponent,speed,spreadMethod,startOffset,stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,string,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,text-decoration,text-rendering,textLength,to,transform,transform-origin,type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xmlns:xlink,xml:base,xml:lang,xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan");
|
|
277
277
|
/**
|
|
278
278
|
* Generated from https://developer.mozilla.org/en-US/docs/Web/MathML/Attribute
|
|
279
279
|
*/
|
|
280
|
-
const isKnownMathMLAttr =
|
|
280
|
+
const isKnownMathMLAttr = /*@__PURE__*/ makeMap("accent,accentunder,actiontype,align,alignmentscope,altimg,altimg-height,altimg-valign,altimg-width,alttext,bevelled,close,columnsalign,columnlines,columnspan,denomalign,depth,dir,display,displaystyle,encoding,equalcolumns,equalrows,fence,fontstyle,fontweight,form,frame,framespacing,groupalign,height,href,id,indentalign,indentalignfirst,indentalignlast,indentshift,indentshiftfirst,indentshiftlast,indextype,justify,largetop,largeop,lquote,lspace,mathbackground,mathcolor,mathsize,mathvariant,maxsize,minlabelspacing,mode,other,overflow,position,rowalign,rowlines,rowspan,rquote,rspace,scriptlevel,scriptminsize,scriptsizemultiplier,selection,separator,separators,shift,side,src,stackalign,stretchy,subscriptshift,superscriptshift,symmetric,voffset,width,widths,xlink:href,xlink:show,xlink:type,xmlns");
|
|
281
281
|
function shouldSetAsAttr(tagName, key) {
|
|
282
282
|
if (key === "spellcheck" || key === "draggable" || key === "translate" || key === "autocorrect") return true;
|
|
283
283
|
if (key === "form") return true;
|
|
@@ -325,13 +325,54 @@ function escapeHtml(string) {
|
|
|
325
325
|
}
|
|
326
326
|
//#endregion
|
|
327
327
|
//#region packages/shared/src/looseEqual.ts
|
|
328
|
-
function looseCompareArrays(a, b) {
|
|
328
|
+
function looseCompareArrays(a, b, seen) {
|
|
329
329
|
if (a.length !== b.length) return false;
|
|
330
330
|
let equal = true;
|
|
331
|
-
for (let i = 0; equal && i < a.length; i++) equal = looseEqual(a[i], b[i]);
|
|
331
|
+
for (let i = 0; equal && i < a.length; i++) equal = looseEqual(a[i], b[i], seen);
|
|
332
332
|
return equal;
|
|
333
333
|
}
|
|
334
|
-
function
|
|
334
|
+
function looseCompareCollections(a, b, seen) {
|
|
335
|
+
if (a.size !== b.size) return false;
|
|
336
|
+
const candidates = Array.from(b);
|
|
337
|
+
const matched = new Uint8Array(candidates.length);
|
|
338
|
+
for (const item of a) {
|
|
339
|
+
let index = -1;
|
|
340
|
+
for (let i = 0; i < candidates.length; i++) if (!matched[i] && looseEqual(item, candidates[i], seen)) {
|
|
341
|
+
index = i;
|
|
342
|
+
break;
|
|
343
|
+
}
|
|
344
|
+
if (index < 0) return false;
|
|
345
|
+
matched[index] = 1;
|
|
346
|
+
}
|
|
347
|
+
return true;
|
|
348
|
+
}
|
|
349
|
+
function looseCompareObjects(a, b, seen) {
|
|
350
|
+
let aValidType = isMap(a);
|
|
351
|
+
let bValidType = isMap(b);
|
|
352
|
+
if (aValidType || bValidType) return aValidType && bValidType ? looseCompareCollections(a, b, seen) : false;
|
|
353
|
+
aValidType = isSet(a);
|
|
354
|
+
bValidType = isSet(b);
|
|
355
|
+
if (aValidType || bValidType) return aValidType && bValidType ? looseCompareCollections(a, b, seen) : false;
|
|
356
|
+
if (Object.keys(a).length !== Object.keys(b).length) return false;
|
|
357
|
+
for (const key in a) {
|
|
358
|
+
const aHasKey = a.hasOwnProperty(key);
|
|
359
|
+
const bHasKey = b.hasOwnProperty(key);
|
|
360
|
+
if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key], seen)) return false;
|
|
361
|
+
}
|
|
362
|
+
return String(a) === String(b);
|
|
363
|
+
}
|
|
364
|
+
function looseCompareNested(a, b, seen, compare) {
|
|
365
|
+
if (!seen) seen = [/* @__PURE__ */ new Map(), /* @__PURE__ */ new Map()];
|
|
366
|
+
const [seenA, seenB] = seen;
|
|
367
|
+
if (seenA.has(a) || seenB.has(b)) return seenA.get(a) === b && seenB.get(b) === a;
|
|
368
|
+
seenA.set(a, b);
|
|
369
|
+
seenB.set(b, a);
|
|
370
|
+
const equal = compare(a, b, seen);
|
|
371
|
+
seenA.delete(a);
|
|
372
|
+
seenB.delete(b);
|
|
373
|
+
return equal;
|
|
374
|
+
}
|
|
375
|
+
function looseEqual(a, b, seen) {
|
|
335
376
|
if (a === b) return true;
|
|
336
377
|
let aValidType = isDate(a);
|
|
337
378
|
let bValidType = isDate(b);
|
|
@@ -341,17 +382,12 @@ function looseEqual(a, b) {
|
|
|
341
382
|
if (aValidType || bValidType) return a === b;
|
|
342
383
|
aValidType = isArray(a);
|
|
343
384
|
bValidType = isArray(b);
|
|
344
|
-
if (aValidType || bValidType) return aValidType && bValidType ?
|
|
385
|
+
if (aValidType || bValidType) return aValidType && bValidType ? looseCompareNested(a, b, seen, looseCompareArrays) : false;
|
|
345
386
|
aValidType = isObject(a);
|
|
346
387
|
bValidType = isObject(b);
|
|
347
388
|
if (aValidType || bValidType) {
|
|
348
389
|
if (!aValidType || !bValidType) return false;
|
|
349
|
-
|
|
350
|
-
for (const key in a) {
|
|
351
|
-
const aHasKey = a.hasOwnProperty(key);
|
|
352
|
-
const bHasKey = b.hasOwnProperty(key);
|
|
353
|
-
if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key])) return false;
|
|
354
|
-
}
|
|
390
|
+
return looseCompareNested(a, b, seen, looseCompareObjects);
|
|
355
391
|
}
|
|
356
392
|
return String(a) === String(b);
|
|
357
393
|
}
|
|
@@ -429,6 +465,8 @@ function getSequence(arr) {
|
|
|
429
465
|
}
|
|
430
466
|
return result;
|
|
431
467
|
}
|
|
468
|
+
//#endregion
|
|
469
|
+
//#region packages/reactivity/src/system.ts
|
|
432
470
|
const notifyBuffer = [];
|
|
433
471
|
let batchDepth = 0;
|
|
434
472
|
let activeSub = void 0;
|
|
@@ -566,13 +604,23 @@ function endTracking(sub, prevSub) {
|
|
|
566
604
|
sub.flags &= -5;
|
|
567
605
|
}
|
|
568
606
|
function flush() {
|
|
607
|
+
let hasError = false;
|
|
608
|
+
let error;
|
|
569
609
|
while (notifyIndex < notifyBufferLength) {
|
|
570
610
|
const effect = notifyBuffer[notifyIndex];
|
|
571
611
|
notifyBuffer[notifyIndex++] = void 0;
|
|
572
|
-
|
|
612
|
+
try {
|
|
613
|
+
effect.notify();
|
|
614
|
+
} catch (err) {
|
|
615
|
+
if (!hasError) {
|
|
616
|
+
hasError = true;
|
|
617
|
+
error = err;
|
|
618
|
+
}
|
|
619
|
+
}
|
|
573
620
|
}
|
|
574
621
|
notifyIndex = 0;
|
|
575
622
|
notifyBufferLength = 0;
|
|
623
|
+
if (hasError) throw error;
|
|
576
624
|
}
|
|
577
625
|
function checkDirty(link, sub) {
|
|
578
626
|
let stack;
|
|
@@ -656,7 +704,7 @@ var Dep = class {
|
|
|
656
704
|
}
|
|
657
705
|
set subs(value) {
|
|
658
706
|
this._subs = value;
|
|
659
|
-
if (value === void 0) this.map.delete(this.key);
|
|
707
|
+
if (value === void 0 && this.map) this.map.delete(this.key);
|
|
660
708
|
}
|
|
661
709
|
};
|
|
662
710
|
const targetMap = /* @__PURE__ */ new WeakMap();
|
|
@@ -725,9 +773,7 @@ function trigger(target, type, key, newValue, oldValue, oldTarget) {
|
|
|
725
773
|
if (isMap(target)) run(depsMap.get(MAP_KEY_ITERATE_KEY));
|
|
726
774
|
}
|
|
727
775
|
break;
|
|
728
|
-
case "set":
|
|
729
|
-
if (isMap(target)) run(depsMap.get(ITERATE_KEY));
|
|
730
|
-
break;
|
|
776
|
+
case "set": if (isMap(target)) run(depsMap.get(ITERATE_KEY));
|
|
731
777
|
}
|
|
732
778
|
}
|
|
733
779
|
}
|
|
@@ -742,13 +788,17 @@ function getDepFromReactive(object, key) {
|
|
|
742
788
|
/**
|
|
743
789
|
* Track array iteration and return:
|
|
744
790
|
* - if input is reactive: a cloned raw array with reactive values
|
|
745
|
-
* - if input is
|
|
791
|
+
* - if input is readonly: a cloned raw array with readonly values, preserving
|
|
792
|
+
* reactivity
|
|
793
|
+
* - if input is raw or shallow: the original raw array
|
|
746
794
|
*/
|
|
747
795
|
function reactiveReadArray(array) {
|
|
748
796
|
const raw = /* @__PURE__ */ toRaw(array);
|
|
749
797
|
if (raw === array) return raw;
|
|
750
798
|
track(raw, "iterate", ARRAY_ITERATE_KEY);
|
|
751
|
-
|
|
799
|
+
if (/* @__PURE__ */ isShallow(array)) return raw;
|
|
800
|
+
if (!/* @__PURE__ */ isReadonly(array)) return raw.map(toReactive);
|
|
801
|
+
return /* @__PURE__ */ isReactive(array) ? raw.map((item) => toReadonly(toReactive(item))) : raw.map(toReadonly);
|
|
752
802
|
}
|
|
753
803
|
/**
|
|
754
804
|
* Track array iteration and return raw array
|
|
@@ -924,8 +974,8 @@ function noTracking(self, method, args = []) {
|
|
|
924
974
|
}
|
|
925
975
|
//#endregion
|
|
926
976
|
//#region packages/reactivity/src/baseHandlers.ts
|
|
927
|
-
const isNonTrackableKeys =
|
|
928
|
-
const builtInSymbols = new Set(
|
|
977
|
+
const isNonTrackableKeys = /*@__PURE__*/ makeMap(`__proto__,__v_isRef,__isVue`);
|
|
978
|
+
const builtInSymbols = new Set(/*@__PURE__*/ Object.getOwnPropertyNames(Symbol).filter((key) => key !== "arguments" && key !== "caller").map((key) => Symbol[key]).filter(isSymbol));
|
|
929
979
|
function hasOwnProperty(key) {
|
|
930
980
|
if (!isSymbol(key)) key = String(key);
|
|
931
981
|
const obj = /* @__PURE__ */ toRaw(this);
|
|
@@ -980,10 +1030,12 @@ var MutableReactiveHandler = class extends BaseReactiveHandler {
|
|
|
980
1030
|
oldValue = /* @__PURE__ */ toRaw(oldValue);
|
|
981
1031
|
value = /* @__PURE__ */ toRaw(value);
|
|
982
1032
|
}
|
|
983
|
-
if (!isArrayWithIntegerKey && /* @__PURE__ */ isRef(oldValue) && !/* @__PURE__ */ isRef(value))
|
|
984
|
-
|
|
985
|
-
|
|
986
|
-
|
|
1033
|
+
if (!isArrayWithIntegerKey && /* @__PURE__ */ isRef(oldValue) && !/* @__PURE__ */ isRef(value)) {
|
|
1034
|
+
if (isOldValueReadonly) return true;
|
|
1035
|
+
else {
|
|
1036
|
+
oldValue.value = value;
|
|
1037
|
+
return true;
|
|
1038
|
+
}
|
|
987
1039
|
}
|
|
988
1040
|
}
|
|
989
1041
|
const hadKey = isArrayWithIntegerKey ? Number(key) < target.length : hasOwn(target, key);
|
|
@@ -1022,10 +1074,10 @@ var ReadonlyReactiveHandler = class extends BaseReactiveHandler {
|
|
|
1022
1074
|
return true;
|
|
1023
1075
|
}
|
|
1024
1076
|
};
|
|
1025
|
-
const mutableHandlers =
|
|
1026
|
-
const readonlyHandlers =
|
|
1027
|
-
const shallowReactiveHandlers =
|
|
1028
|
-
const shallowReadonlyHandlers =
|
|
1077
|
+
const mutableHandlers = /*@__PURE__*/ new MutableReactiveHandler();
|
|
1078
|
+
const readonlyHandlers = /*@__PURE__*/ new ReadonlyReactiveHandler();
|
|
1079
|
+
const shallowReactiveHandlers = /*@__PURE__*/ new MutableReactiveHandler(true);
|
|
1080
|
+
const shallowReadonlyHandlers = /*@__PURE__*/ new ReadonlyReactiveHandler(true);
|
|
1029
1081
|
//#endregion
|
|
1030
1082
|
//#region packages/reactivity/src/collectionHandlers.ts
|
|
1031
1083
|
const toShallow = (value) => value;
|
|
@@ -1172,10 +1224,10 @@ function createInstrumentationGetter(isReadonly, shallow) {
|
|
|
1172
1224
|
return Reflect.get(hasOwn(instrumentations, key) && key in target ? instrumentations : target, key, receiver);
|
|
1173
1225
|
};
|
|
1174
1226
|
}
|
|
1175
|
-
const mutableCollectionHandlers = { get:
|
|
1176
|
-
const shallowCollectionHandlers = { get:
|
|
1177
|
-
const readonlyCollectionHandlers = { get:
|
|
1178
|
-
const shallowReadonlyCollectionHandlers = { get:
|
|
1227
|
+
const mutableCollectionHandlers = { get: /*@__PURE__*/ createInstrumentationGetter(false, false) };
|
|
1228
|
+
const shallowCollectionHandlers = { get: /*@__PURE__*/ createInstrumentationGetter(false, true) };
|
|
1229
|
+
const readonlyCollectionHandlers = { get: /*@__PURE__*/ createInstrumentationGetter(true, false) };
|
|
1230
|
+
const shallowReadonlyCollectionHandlers = { get: /*@__PURE__*/ createInstrumentationGetter(true, true) };
|
|
1179
1231
|
//#endregion
|
|
1180
1232
|
//#region packages/reactivity/src/reactive.ts
|
|
1181
1233
|
const reactiveMap = /* @__PURE__ */ new WeakMap();
|
|
@@ -1193,7 +1245,7 @@ function targetTypeMap(rawType) {
|
|
|
1193
1245
|
default: return 0;
|
|
1194
1246
|
}
|
|
1195
1247
|
}
|
|
1196
|
-
|
|
1248
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
1197
1249
|
function reactive(target) {
|
|
1198
1250
|
if (/* @__PURE__ */ isReadonly(target)) return target;
|
|
1199
1251
|
return createReactiveObject(target, false, mutableHandlers, mutableCollectionHandlers, reactiveMap);
|
|
@@ -1228,7 +1280,7 @@ function reactive(target) {
|
|
|
1228
1280
|
* @param target - The source object.
|
|
1229
1281
|
* @see {@link https://vuejs.org/api/reactivity-advanced.html#shallowreactive}
|
|
1230
1282
|
*/
|
|
1231
|
-
|
|
1283
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
1232
1284
|
function shallowReactive(target) {
|
|
1233
1285
|
return createReactiveObject(target, false, shallowReactiveHandlers, shallowCollectionHandlers, shallowReactiveMap);
|
|
1234
1286
|
}
|
|
@@ -1261,7 +1313,7 @@ function shallowReactive(target) {
|
|
|
1261
1313
|
* @param target - The source object.
|
|
1262
1314
|
* @see {@link https://vuejs.org/api/reactivity-core.html#readonly}
|
|
1263
1315
|
*/
|
|
1264
|
-
|
|
1316
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
1265
1317
|
function readonly(target) {
|
|
1266
1318
|
return createReactiveObject(target, true, readonlyHandlers, readonlyCollectionHandlers, readonlyMap);
|
|
1267
1319
|
}
|
|
@@ -1295,7 +1347,7 @@ function readonly(target) {
|
|
|
1295
1347
|
* @param target - The source object.
|
|
1296
1348
|
* @see {@link https://vuejs.org/api/reactivity-advanced.html#shallowreadonly}
|
|
1297
1349
|
*/
|
|
1298
|
-
|
|
1350
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
1299
1351
|
function shallowReadonly(target) {
|
|
1300
1352
|
return createReactiveObject(target, true, shallowReadonlyHandlers, shallowReadonlyCollectionHandlers, shallowReadonlyMap);
|
|
1301
1353
|
}
|
|
@@ -1329,7 +1381,7 @@ function createReactiveObject(target, isReadonly, baseHandlers, collectionHandle
|
|
|
1329
1381
|
* @param value - The value to check.
|
|
1330
1382
|
* @see {@link https://vuejs.org/api/reactivity-utilities.html#isreactive}
|
|
1331
1383
|
*/
|
|
1332
|
-
|
|
1384
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
1333
1385
|
function isReactive(value) {
|
|
1334
1386
|
if (/* @__PURE__ */ isReadonly(value)) return /* @__PURE__ */ isReactive(value["__v_raw"]);
|
|
1335
1387
|
return !!(value && value["__v_isReactive"]);
|
|
@@ -1345,11 +1397,11 @@ function isReactive(value) {
|
|
|
1345
1397
|
* @param value - The value to check.
|
|
1346
1398
|
* @see {@link https://vuejs.org/api/reactivity-utilities.html#isreadonly}
|
|
1347
1399
|
*/
|
|
1348
|
-
|
|
1400
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
1349
1401
|
function isReadonly(value) {
|
|
1350
1402
|
return !!(value && value["__v_isReadonly"]);
|
|
1351
1403
|
}
|
|
1352
|
-
|
|
1404
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
1353
1405
|
function isShallow(value) {
|
|
1354
1406
|
return !!(value && value["__v_isShallow"]);
|
|
1355
1407
|
}
|
|
@@ -1360,7 +1412,7 @@ function isShallow(value) {
|
|
|
1360
1412
|
* @param value - The value to check.
|
|
1361
1413
|
* @see {@link https://vuejs.org/api/reactivity-utilities.html#isproxy}
|
|
1362
1414
|
*/
|
|
1363
|
-
|
|
1415
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
1364
1416
|
function isProxy(value) {
|
|
1365
1417
|
return value ? !!value["__v_raw"] : false;
|
|
1366
1418
|
}
|
|
@@ -1387,7 +1439,7 @@ function isProxy(value) {
|
|
|
1387
1439
|
* @param observed - The object for which the "raw" value is requested.
|
|
1388
1440
|
* @see {@link https://vuejs.org/api/reactivity-advanced.html#toraw}
|
|
1389
1441
|
*/
|
|
1390
|
-
|
|
1442
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
1391
1443
|
function toRaw(observed) {
|
|
1392
1444
|
const raw = observed && observed["__v_raw"];
|
|
1393
1445
|
return raw ? /* @__PURE__ */ toRaw(raw) : observed;
|
|
@@ -1436,15 +1488,15 @@ const toReactive = (value) => isObject(value) ? /* @__PURE__ */ reactive(value)
|
|
|
1436
1488
|
const toReadonly = (value) => isObject(value) ? /* @__PURE__ */ readonly(value) : value;
|
|
1437
1489
|
//#endregion
|
|
1438
1490
|
//#region packages/reactivity/src/ref.ts
|
|
1439
|
-
|
|
1491
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
1440
1492
|
function isRef(r) {
|
|
1441
1493
|
return r ? r["__v_isRef"] === true : false;
|
|
1442
1494
|
}
|
|
1443
|
-
|
|
1495
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
1444
1496
|
function ref(value) {
|
|
1445
1497
|
return createRef(value, toReactive);
|
|
1446
1498
|
}
|
|
1447
|
-
|
|
1499
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
1448
1500
|
function shallowRef(value) {
|
|
1449
1501
|
return createRef(value);
|
|
1450
1502
|
}
|
|
@@ -1632,7 +1684,7 @@ function customRef(factory) {
|
|
|
1632
1684
|
* @param object - Reactive object to be made into an object of linked refs.
|
|
1633
1685
|
* @see {@link https://vuejs.org/api/reactivity-utilities.html#torefs}
|
|
1634
1686
|
*/
|
|
1635
|
-
|
|
1687
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
1636
1688
|
function toRefs(object) {
|
|
1637
1689
|
const ret = isArray(object) ? new Array(object.length) : {};
|
|
1638
1690
|
for (const key in object) ret[key] = propertyToRef(object, key);
|
|
@@ -1683,7 +1735,7 @@ var GetterRefImpl = class {
|
|
|
1683
1735
|
return this._value = this._getter();
|
|
1684
1736
|
}
|
|
1685
1737
|
};
|
|
1686
|
-
|
|
1738
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
1687
1739
|
function toRef(source, key, defaultValue) {
|
|
1688
1740
|
if (/* @__PURE__ */ isRef(source)) return source;
|
|
1689
1741
|
else if (isFunction(source)) return new GetterRefImpl(source);
|
|
@@ -1749,10 +1801,12 @@ var ReactiveEffect = class {
|
|
|
1749
1801
|
get dirty() {
|
|
1750
1802
|
const flags = this.flags;
|
|
1751
1803
|
if (flags & 16) return true;
|
|
1752
|
-
if (flags & 32)
|
|
1753
|
-
this.
|
|
1754
|
-
|
|
1755
|
-
|
|
1804
|
+
if (flags & 32) {
|
|
1805
|
+
if (checkDirty(this.deps, this)) {
|
|
1806
|
+
this.flags = flags | 16;
|
|
1807
|
+
return true;
|
|
1808
|
+
} else this.flags = flags & -33;
|
|
1809
|
+
}
|
|
1756
1810
|
return false;
|
|
1757
1811
|
}
|
|
1758
1812
|
};
|
|
@@ -1929,10 +1983,12 @@ var ComputedRefImpl = class {
|
|
|
1929
1983
|
get _dirty() {
|
|
1930
1984
|
const flags = this.flags;
|
|
1931
1985
|
if (flags & 16) return true;
|
|
1932
|
-
if (flags & 32)
|
|
1933
|
-
this.
|
|
1934
|
-
|
|
1935
|
-
|
|
1986
|
+
if (flags & 32) {
|
|
1987
|
+
if (checkDirty(this.deps, this)) {
|
|
1988
|
+
this.flags = flags | 16;
|
|
1989
|
+
return true;
|
|
1990
|
+
} else this.flags = flags & -33;
|
|
1991
|
+
}
|
|
1936
1992
|
return false;
|
|
1937
1993
|
}
|
|
1938
1994
|
/**
|
|
@@ -1985,7 +2041,7 @@ var ComputedRefImpl = class {
|
|
|
1985
2041
|
}
|
|
1986
2042
|
}
|
|
1987
2043
|
};
|
|
1988
|
-
|
|
2044
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
1989
2045
|
function computed$1(getterOrOptions, debugOptions, isSSR = false) {
|
|
1990
2046
|
let getter;
|
|
1991
2047
|
let setter;
|
|
@@ -2057,25 +2113,26 @@ var WatcherEffect = class extends ReactiveEffect {
|
|
|
2057
2113
|
else if (/* @__PURE__ */ isReactive(s)) return reactiveGetter(s, deep);
|
|
2058
2114
|
else if (isFunction(s)) return call ? call(s, 2) : s();
|
|
2059
2115
|
});
|
|
2060
|
-
} else if (isFunction(source))
|
|
2061
|
-
|
|
2062
|
-
|
|
2063
|
-
|
|
2116
|
+
} else if (isFunction(source)) {
|
|
2117
|
+
if (cb) getter = call ? () => call(source, 2) : source;
|
|
2118
|
+
else getter = () => {
|
|
2119
|
+
if (this.cleanupsLength) {
|
|
2120
|
+
const prevSub = setActiveSub();
|
|
2121
|
+
try {
|
|
2122
|
+
cleanup(this);
|
|
2123
|
+
} finally {
|
|
2124
|
+
setActiveSub(prevSub);
|
|
2125
|
+
}
|
|
2126
|
+
}
|
|
2127
|
+
const currentEffect = activeWatcher;
|
|
2128
|
+
activeWatcher = this;
|
|
2064
2129
|
try {
|
|
2065
|
-
|
|
2130
|
+
return call ? call(source, 3, [this.boundCleanup]) : source(this.boundCleanup);
|
|
2066
2131
|
} finally {
|
|
2067
|
-
|
|
2132
|
+
activeWatcher = currentEffect;
|
|
2068
2133
|
}
|
|
2069
|
-
}
|
|
2070
|
-
|
|
2071
|
-
activeWatcher = this;
|
|
2072
|
-
try {
|
|
2073
|
-
return call ? call(source, 3, [this.boundCleanup]) : source(this.boundCleanup);
|
|
2074
|
-
} finally {
|
|
2075
|
-
activeWatcher = currentEffect;
|
|
2076
|
-
}
|
|
2077
|
-
};
|
|
2078
|
-
else getter = NOOP;
|
|
2134
|
+
};
|
|
2135
|
+
} else getter = NOOP;
|
|
2079
2136
|
if (cb && deep) {
|
|
2080
2137
|
const baseGetter = getter;
|
|
2081
2138
|
const depth = deep === true ? Infinity : deep;
|
|
@@ -2288,7 +2345,7 @@ let currentFlushPromise = null;
|
|
|
2288
2345
|
let jobsLength = 0;
|
|
2289
2346
|
let flushIndex = 0;
|
|
2290
2347
|
let postFlushIndex = 0;
|
|
2291
|
-
const resolvedPromise =
|
|
2348
|
+
const resolvedPromise = /*@__PURE__*/ Promise.resolve();
|
|
2292
2349
|
function nextTick(fn) {
|
|
2293
2350
|
const p = currentFlushPromise || resolvedPromise;
|
|
2294
2351
|
return fn ? p.then(this ? fn.bind(this) : fn) : p;
|
|
@@ -2326,6 +2383,7 @@ const doFlushJobs = () => {
|
|
|
2326
2383
|
flushJobs();
|
|
2327
2384
|
} catch (e) {
|
|
2328
2385
|
currentFlushPromise = null;
|
|
2386
|
+
if (jobsLength || postJobs.length) queueFlush();
|
|
2329
2387
|
throw e;
|
|
2330
2388
|
}
|
|
2331
2389
|
};
|
|
@@ -2333,9 +2391,10 @@ function queueFlush() {
|
|
|
2333
2391
|
if (!currentFlushPromise) currentFlushPromise = resolvedPromise.then(doFlushJobs);
|
|
2334
2392
|
}
|
|
2335
2393
|
function queuePostFlushCb(jobs, id = Infinity) {
|
|
2336
|
-
if (!isArray(jobs))
|
|
2337
|
-
|
|
2338
|
-
|
|
2394
|
+
if (!isArray(jobs)) {
|
|
2395
|
+
if (activePostJobs && id === -1) activePostJobs.splice(postFlushIndex, 0, jobs);
|
|
2396
|
+
else queueJobWorker(jobs, id, postJobs, postJobs.length, 0);
|
|
2397
|
+
} else for (let i = 0; i < jobs.length; i++) queueJobWorker(jobs[i], id, postJobs, postJobs.length, 0);
|
|
2339
2398
|
queueFlush();
|
|
2340
2399
|
}
|
|
2341
2400
|
function flushPreFlushCbs(instance, seen) {
|
|
@@ -2347,30 +2406,37 @@ function flushPreFlushCbs(instance, seen) {
|
|
|
2347
2406
|
i--;
|
|
2348
2407
|
jobsLength--;
|
|
2349
2408
|
if (cb.flags & 2) cb.flags &= -2;
|
|
2350
|
-
|
|
2351
|
-
|
|
2409
|
+
try {
|
|
2410
|
+
cb();
|
|
2411
|
+
} finally {
|
|
2412
|
+
if (!(cb.flags & 2)) cb.flags &= -2;
|
|
2413
|
+
}
|
|
2352
2414
|
}
|
|
2353
2415
|
}
|
|
2354
2416
|
function flushPostFlushCbs(seen) {
|
|
2355
2417
|
if (postJobs.length) {
|
|
2356
2418
|
if (activePostJobs) {
|
|
2357
|
-
activePostJobs.push(
|
|
2419
|
+
for (let i = 0; i < postJobs.length; i++) activePostJobs.push(postJobs[i]);
|
|
2358
2420
|
postJobs.length = 0;
|
|
2359
2421
|
return;
|
|
2360
2422
|
}
|
|
2361
2423
|
activePostJobs = postJobs;
|
|
2362
2424
|
postJobs = [];
|
|
2363
|
-
|
|
2364
|
-
|
|
2365
|
-
|
|
2366
|
-
|
|
2367
|
-
cb
|
|
2368
|
-
|
|
2369
|
-
|
|
2425
|
+
try {
|
|
2426
|
+
while (postFlushIndex < activePostJobs.length) {
|
|
2427
|
+
const cb = activePostJobs[postFlushIndex++];
|
|
2428
|
+
if (cb.flags & 2) cb.flags &= -2;
|
|
2429
|
+
if (!(cb.flags & 4)) try {
|
|
2430
|
+
cb();
|
|
2431
|
+
} finally {
|
|
2432
|
+
if (!(cb.flags & 2)) cb.flags &= -2;
|
|
2433
|
+
}
|
|
2370
2434
|
}
|
|
2435
|
+
} finally {
|
|
2436
|
+
while (postFlushIndex < activePostJobs.length) activePostJobs[postFlushIndex++].flags &= -2;
|
|
2437
|
+
activePostJobs = null;
|
|
2438
|
+
postFlushIndex = 0;
|
|
2371
2439
|
}
|
|
2372
|
-
activePostJobs = null;
|
|
2373
|
-
postFlushIndex = 0;
|
|
2374
2440
|
}
|
|
2375
2441
|
}
|
|
2376
2442
|
let isFlushing = false;
|
|
@@ -2380,9 +2446,12 @@ let isFlushing = false;
|
|
|
2380
2446
|
function flushOnAppMount(instance) {
|
|
2381
2447
|
if (!isFlushing) {
|
|
2382
2448
|
isFlushing = true;
|
|
2383
|
-
|
|
2384
|
-
|
|
2385
|
-
|
|
2449
|
+
try {
|
|
2450
|
+
flushPreFlushCbs(instance);
|
|
2451
|
+
flushPostFlushCbs();
|
|
2452
|
+
} finally {
|
|
2453
|
+
isFlushing = false;
|
|
2454
|
+
}
|
|
2386
2455
|
}
|
|
2387
2456
|
}
|
|
2388
2457
|
function flushJobs(seen) {
|
|
@@ -2410,8 +2479,8 @@ function flushJobs(seen) {
|
|
|
2410
2479
|
jobsLength = 0;
|
|
2411
2480
|
jobs.length = 0;
|
|
2412
2481
|
flushPostFlushCbs(seen);
|
|
2413
|
-
currentFlushPromise = null;
|
|
2414
2482
|
if (jobsLength || postJobs.length) flushJobs(seen);
|
|
2483
|
+
else currentFlushPromise = null;
|
|
2415
2484
|
}
|
|
2416
2485
|
}
|
|
2417
2486
|
//#endregion
|
|
@@ -2500,7 +2569,7 @@ function checkCompatEnabled$1(key, instance, ...args) {
|
|
|
2500
2569
|
}
|
|
2501
2570
|
//#endregion
|
|
2502
2571
|
//#region packages/runtime-core/src/compat/instanceEventEmitter.ts
|
|
2503
|
-
const eventRegistryMap =
|
|
2572
|
+
const eventRegistryMap = /*@__PURE__*/ new WeakMap();
|
|
2504
2573
|
function getRegistry(instance) {
|
|
2505
2574
|
let events = eventRegistryMap.get(instance);
|
|
2506
2575
|
if (!events) eventRegistryMap.set(instance, events = Object.create(null));
|
|
@@ -2633,19 +2702,21 @@ const legacyDirectiveHookMap = {
|
|
|
2633
2702
|
};
|
|
2634
2703
|
function mapCompatDirectiveHook(name, dir, instance) {
|
|
2635
2704
|
const mappedName = legacyDirectiveHookMap[name];
|
|
2636
|
-
if (mappedName)
|
|
2637
|
-
|
|
2638
|
-
|
|
2639
|
-
|
|
2640
|
-
|
|
2641
|
-
|
|
2642
|
-
|
|
2643
|
-
|
|
2644
|
-
|
|
2645
|
-
|
|
2646
|
-
|
|
2647
|
-
|
|
2648
|
-
|
|
2705
|
+
if (mappedName) {
|
|
2706
|
+
if (isArray(mappedName)) {
|
|
2707
|
+
const hook = [];
|
|
2708
|
+
mappedName.forEach((mapped) => {
|
|
2709
|
+
const mappedHook = dir[mapped];
|
|
2710
|
+
if (mappedHook) {
|
|
2711
|
+
softAssertCompatEnabled("CUSTOM_DIR", instance, mapped, name);
|
|
2712
|
+
hook.push(mappedHook);
|
|
2713
|
+
}
|
|
2714
|
+
});
|
|
2715
|
+
return hook.length ? hook : void 0;
|
|
2716
|
+
} else {
|
|
2717
|
+
if (dir[mappedName]) softAssertCompatEnabled("CUSTOM_DIR", instance, mappedName, name);
|
|
2718
|
+
return dir[mappedName];
|
|
2719
|
+
}
|
|
2649
2720
|
}
|
|
2650
2721
|
}
|
|
2651
2722
|
//#endregion
|
|
@@ -2815,7 +2886,7 @@ function instanceWatch(source, value, options) {
|
|
|
2815
2886
|
}
|
|
2816
2887
|
const prev = setCurrentInstance(this);
|
|
2817
2888
|
const res = doWatch(getter, cb.bind(publicThis), options);
|
|
2818
|
-
|
|
2889
|
+
restoreCurrentInstance(prev);
|
|
2819
2890
|
return res;
|
|
2820
2891
|
}
|
|
2821
2892
|
function createPathGetter(ctx, path) {
|
|
@@ -2837,9 +2908,10 @@ const isTargetSVG = (target) => typeof SVGElement !== "undefined" && target inst
|
|
|
2837
2908
|
const isTargetMathML = (target) => typeof MathMLElement === "function" && target instanceof MathMLElement;
|
|
2838
2909
|
const resolveTarget = (props, select) => {
|
|
2839
2910
|
const targetSelector = props && props.to;
|
|
2840
|
-
if (isString(targetSelector))
|
|
2841
|
-
|
|
2842
|
-
|
|
2911
|
+
if (isString(targetSelector)) {
|
|
2912
|
+
if (!select) return null;
|
|
2913
|
+
else return select(targetSelector);
|
|
2914
|
+
} else return targetSelector;
|
|
2843
2915
|
};
|
|
2844
2916
|
const TeleportImpl = {
|
|
2845
2917
|
name: "Teleport",
|
|
@@ -2870,7 +2942,8 @@ const TeleportImpl = {
|
|
|
2870
2942
|
if (pendingMounts.get(vnode) !== mountJob) return;
|
|
2871
2943
|
pendingMounts.delete(vnode);
|
|
2872
2944
|
if (isTeleportDisabled(vnode.props)) {
|
|
2873
|
-
|
|
2945
|
+
const mountContainer = parentNode(vnode.el) || container;
|
|
2946
|
+
mount(vnode, mountContainer, vnode.anchor);
|
|
2874
2947
|
updateCssVars(vnode, true);
|
|
2875
2948
|
}
|
|
2876
2949
|
mountToTarget(vnode);
|
|
@@ -2979,15 +3052,17 @@ function hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScope
|
|
|
2979
3052
|
const disabled = isTeleportDisabled(vnode.props);
|
|
2980
3053
|
if (target) {
|
|
2981
3054
|
const targetNode = target._lpa || target.firstChild;
|
|
2982
|
-
if (vnode.shapeFlag & 16)
|
|
2983
|
-
|
|
2984
|
-
|
|
2985
|
-
|
|
2986
|
-
|
|
2987
|
-
|
|
2988
|
-
|
|
2989
|
-
|
|
2990
|
-
|
|
3055
|
+
if (vnode.shapeFlag & 16) {
|
|
3056
|
+
if (disabled) {
|
|
3057
|
+
hydrateDisabledTeleport(node, vnode);
|
|
3058
|
+
hydrateAnchor(target, targetNode);
|
|
3059
|
+
if (!vnode.targetAnchor) prepareAnchor(target, vnode, createText, insert, parentNode(node) === target ? node : null);
|
|
3060
|
+
} else {
|
|
3061
|
+
vnode.anchor = nextSibling(node);
|
|
3062
|
+
hydrateAnchor(target, targetNode);
|
|
3063
|
+
if (!vnode.targetAnchor) prepareAnchor(target, vnode, createText, insert);
|
|
3064
|
+
hydrateChildren(targetNode && nextSibling(targetNode), vnode, target, parentComponent, parentSuspense, slotScopeIds, optimized);
|
|
3065
|
+
}
|
|
2991
3066
|
}
|
|
2992
3067
|
updateCssVars(vnode, disabled);
|
|
2993
3068
|
} else if (disabled) {
|
|
@@ -3065,58 +3140,26 @@ const BaseTransitionPropsValidators = {
|
|
|
3065
3140
|
onAfterAppear: TransitionHookValidator,
|
|
3066
3141
|
onAppearCancelled: TransitionHookValidator
|
|
3067
3142
|
};
|
|
3068
|
-
|
|
3069
|
-
|
|
3070
|
-
|
|
3071
|
-
|
|
3143
|
+
function isEmptyTransitionChild(vnode, instance) {
|
|
3144
|
+
if (vnode.type === Comment) return true;
|
|
3145
|
+
if (vnode.type === VaporSlot || isVaporComponent(vnode.type)) return !getVaporInterface(instance, vnode).hasTransitionChild(vnode);
|
|
3146
|
+
return !!vnode.component && isEmptyTransitionChild(vnode.component.subTree, instance);
|
|
3147
|
+
}
|
|
3072
3148
|
const BaseTransitionImpl = {
|
|
3073
3149
|
name: `BaseTransition`,
|
|
3074
3150
|
props: BaseTransitionPropsValidators,
|
|
3075
3151
|
setup(props, { slots }) {
|
|
3076
3152
|
const instance = getCurrentInstance();
|
|
3077
3153
|
const state = useTransitionState();
|
|
3154
|
+
let resumeAfterLeave;
|
|
3078
3155
|
return () => {
|
|
3079
|
-
const
|
|
3080
|
-
const child = children && children.length ? findNonCommentChild(children) : instance.subTree ? createCommentVNode() : void 0;
|
|
3156
|
+
const child = resolveTransitionChild(slots.default && slots.default(), !!instance.subTree);
|
|
3081
3157
|
if (!child) return;
|
|
3082
3158
|
const rawProps = /* @__PURE__ */ toRaw(props);
|
|
3083
3159
|
const { mode } = rawProps;
|
|
3084
|
-
|
|
3085
|
-
|
|
3086
|
-
|
|
3087
|
-
let enterHooks = resolveTransitionHooks(innerChild, rawProps, state, instance, (hooks) => enterHooks = hooks);
|
|
3088
|
-
if (innerChild.type !== Comment) setTransitionHooks(innerChild, enterHooks);
|
|
3089
|
-
let oldInnerChild = instance.subTree && getInnerChild$1(instance.subTree);
|
|
3090
|
-
if (oldInnerChild && oldInnerChild.type !== Comment && !isSameVNodeType(oldInnerChild, innerChild) && recursiveGetSubtree(instance).type !== Comment) {
|
|
3091
|
-
let leavingHooks = resolveTransitionHooks(oldInnerChild, rawProps, state, instance);
|
|
3092
|
-
setTransitionHooks(oldInnerChild, leavingHooks);
|
|
3093
|
-
if (mode === "out-in" && innerChild.type !== Comment) {
|
|
3094
|
-
state.isLeaving = true;
|
|
3095
|
-
leavingHooks.afterLeave = () => {
|
|
3096
|
-
state.isLeaving = false;
|
|
3097
|
-
if (!(instance.job.flags & 4)) instance.update();
|
|
3098
|
-
delete leavingHooks.afterLeave;
|
|
3099
|
-
oldInnerChild = void 0;
|
|
3100
|
-
};
|
|
3101
|
-
return emptyPlaceholder(child);
|
|
3102
|
-
} else if (mode === "in-out" && innerChild.type !== Comment) leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => {
|
|
3103
|
-
const leavingVNodesCache = getLeavingNodesForType(state, oldInnerChild);
|
|
3104
|
-
leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild;
|
|
3105
|
-
el[leaveCbKey] = () => {
|
|
3106
|
-
earlyRemove();
|
|
3107
|
-
el[leaveCbKey] = void 0;
|
|
3108
|
-
delete enterHooks.delayedLeave;
|
|
3109
|
-
oldInnerChild = void 0;
|
|
3110
|
-
};
|
|
3111
|
-
enterHooks.delayedLeave = () => {
|
|
3112
|
-
delayedLeave();
|
|
3113
|
-
delete enterHooks.delayedLeave;
|
|
3114
|
-
oldInnerChild = void 0;
|
|
3115
|
-
};
|
|
3116
|
-
};
|
|
3117
|
-
else oldInnerChild = void 0;
|
|
3118
|
-
} else if (oldInnerChild) oldInnerChild = void 0;
|
|
3119
|
-
return child;
|
|
3160
|
+
return prepareTransitionSwitch(instance.subTree, child, rawProps, state, instance, mode === "out-in" ? resumeAfterLeave || (resumeAfterLeave = () => {
|
|
3161
|
+
if (!(instance.job.flags & 4)) instance.update();
|
|
3162
|
+
}) : NOOP);
|
|
3120
3163
|
};
|
|
3121
3164
|
}
|
|
3122
3165
|
};
|
|
@@ -3144,7 +3187,7 @@ function getLeavingNodesForType(state, vnode) {
|
|
|
3144
3187
|
function resolveTransitionHooks(vnode, props, state, instance, postClone) {
|
|
3145
3188
|
const key = String(vnode.key);
|
|
3146
3189
|
const leavingVNodesCache = getLeavingNodesForType(state, vnode);
|
|
3147
|
-
|
|
3190
|
+
const hooks = baseResolveTransitionHooks({
|
|
3148
3191
|
isLeaving: () => leavingVNodesCache[key] === vnode,
|
|
3149
3192
|
setLeavingNodeCache: () => {
|
|
3150
3193
|
leavingVNodesCache[key] = vnode;
|
|
@@ -3162,6 +3205,13 @@ function resolveTransitionHooks(vnode, props, state, instance, postClone) {
|
|
|
3162
3205
|
return hooks;
|
|
3163
3206
|
}
|
|
3164
3207
|
}, props, state, instance);
|
|
3208
|
+
if (vnode.type === VaporSlot) extend(hooks, {
|
|
3209
|
+
__vapor: true,
|
|
3210
|
+
props,
|
|
3211
|
+
state,
|
|
3212
|
+
instance
|
|
3213
|
+
});
|
|
3214
|
+
return hooks;
|
|
3165
3215
|
}
|
|
3166
3216
|
function baseResolveTransitionHooks(context, props, state, instance) {
|
|
3167
3217
|
const { isLeaving, setLeavingNodeCache, unsetLeavingNodeCache, earlyRemove, cloneHooks } = context;
|
|
@@ -3181,8 +3231,10 @@ function baseResolveTransitionHooks(context, props, state, instance) {
|
|
|
3181
3231
|
persisted,
|
|
3182
3232
|
beforeEnter(el) {
|
|
3183
3233
|
let hook = onBeforeEnter;
|
|
3184
|
-
if (!state.isMounted)
|
|
3185
|
-
|
|
3234
|
+
if (!state.isMounted) {
|
|
3235
|
+
if (appear) hook = onBeforeAppear || onBeforeEnter;
|
|
3236
|
+
else return;
|
|
3237
|
+
}
|
|
3186
3238
|
if (el[leaveCbKey]) el[leaveCbKey](true);
|
|
3187
3239
|
earlyRemove();
|
|
3188
3240
|
callHook(hook, [el]);
|
|
@@ -3192,11 +3244,13 @@ function baseResolveTransitionHooks(context, props, state, instance) {
|
|
|
3192
3244
|
let hook = onEnter;
|
|
3193
3245
|
let afterHook = onAfterEnter;
|
|
3194
3246
|
let cancelHook = onEnterCancelled;
|
|
3195
|
-
if (!state.isMounted)
|
|
3196
|
-
|
|
3197
|
-
|
|
3198
|
-
|
|
3199
|
-
|
|
3247
|
+
if (!state.isMounted) {
|
|
3248
|
+
if (appear) {
|
|
3249
|
+
hook = onAppear || onEnter;
|
|
3250
|
+
afterHook = onAfterAppear || onAfterEnter;
|
|
3251
|
+
cancelHook = onAppearCancelled || onEnterCancelled;
|
|
3252
|
+
} else return;
|
|
3253
|
+
}
|
|
3200
3254
|
let called = false;
|
|
3201
3255
|
el[enterCbKey$1] = (cancelled) => {
|
|
3202
3256
|
if (called) return;
|
|
@@ -3230,7 +3284,7 @@ function baseResolveTransitionHooks(context, props, state, instance) {
|
|
|
3230
3284
|
else done();
|
|
3231
3285
|
},
|
|
3232
3286
|
clone(node) {
|
|
3233
|
-
return cloneHooks(node);
|
|
3287
|
+
return cloneHooks ? cloneHooks(node) : hooks;
|
|
3234
3288
|
}
|
|
3235
3289
|
};
|
|
3236
3290
|
return hooks;
|
|
@@ -3254,16 +3308,91 @@ function getInnerChild$1(vnode) {
|
|
|
3254
3308
|
if (shapeFlag & 32 && isFunction(children.default)) return children.default();
|
|
3255
3309
|
}
|
|
3256
3310
|
}
|
|
3311
|
+
function resolveTransitionChild(children, renderEmpty = false) {
|
|
3312
|
+
const branches = children && getTransitionRawChildren(children, true);
|
|
3313
|
+
return branches && branches.length ? findNonCommentChild(branches) : renderEmpty ? createCommentVNode() : void 0;
|
|
3314
|
+
}
|
|
3315
|
+
/**
|
|
3316
|
+
* @internal
|
|
3317
|
+
*/
|
|
3318
|
+
function prepareTransitionSwitch(previous, next, props, state, instance, resumeAfterLeave, delayedLeaveSource) {
|
|
3319
|
+
if (state.isLeaving) return emptyPlaceholder(next);
|
|
3320
|
+
const nextInner = getInnerChild$1(next);
|
|
3321
|
+
if (!nextInner) return emptyPlaceholder(next);
|
|
3322
|
+
let enterHooks = resolveTransitionHooks(nextInner, props, state, instance, (hooks) => {
|
|
3323
|
+
if (delayedLeaveSource) forwardDelayedLeave(hooks, delayedLeaveSource);
|
|
3324
|
+
enterHooks = hooks;
|
|
3325
|
+
});
|
|
3326
|
+
if (delayedLeaveSource) forwardDelayedLeave(enterHooks, delayedLeaveSource);
|
|
3327
|
+
if (nextInner.type !== Comment) setTransitionHooks(nextInner, enterHooks);
|
|
3328
|
+
const mode = props.mode;
|
|
3329
|
+
const previousInner = previous && getInnerChild$1(previous);
|
|
3330
|
+
if (previous && previousInner && !isSameVNodeType(previousInner, nextInner) && !isEmptyTransitionChild(previousInner, instance)) {
|
|
3331
|
+
const leavingHooks = prepareLeavingTransitionHooks(previousInner, props, state, instance);
|
|
3332
|
+
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);
|
|
3333
|
+
}
|
|
3334
|
+
return next;
|
|
3335
|
+
}
|
|
3336
|
+
function forwardDelayedLeave(hooks, source) {
|
|
3337
|
+
const delayedLeave = source && source.delayedLeave;
|
|
3338
|
+
if (!delayedLeave) return;
|
|
3339
|
+
hooks.delayedLeave = () => {
|
|
3340
|
+
if (source.delayedLeave === delayedLeave) delayedLeave();
|
|
3341
|
+
delete hooks.delayedLeave;
|
|
3342
|
+
};
|
|
3343
|
+
}
|
|
3344
|
+
function prepareLeavingTransitionHooks(previousInner, props, state, instance) {
|
|
3345
|
+
return setTransitionHooks(previousInner, resolveTransitionHooks(previousInner, props, state, instance));
|
|
3346
|
+
}
|
|
3347
|
+
function applyTransitionModeSwitch(leavingVNode, leavingHooks, getEnterHooks, props, state, resumeAfterLeave) {
|
|
3348
|
+
if (props.mode === "out-in") {
|
|
3349
|
+
state.isLeaving = true;
|
|
3350
|
+
leavingHooks.afterLeave = () => {
|
|
3351
|
+
state.isLeaving = false;
|
|
3352
|
+
resumeAfterLeave();
|
|
3353
|
+
delete leavingHooks.afterLeave;
|
|
3354
|
+
};
|
|
3355
|
+
return true;
|
|
3356
|
+
} else if (props.mode === "in-out" && getEnterHooks) {
|
|
3357
|
+
let delayedLeavingVNode = leavingVNode;
|
|
3358
|
+
leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => {
|
|
3359
|
+
const enterHooks = getEnterHooks();
|
|
3360
|
+
if (!enterHooks) {
|
|
3361
|
+
delayedLeave();
|
|
3362
|
+
return;
|
|
3363
|
+
}
|
|
3364
|
+
const vnode = delayedLeavingVNode;
|
|
3365
|
+
const leavingVNodesCache = getLeavingNodesForType(state, vnode);
|
|
3366
|
+
leavingVNodesCache[String(vnode.key)] = vnode;
|
|
3367
|
+
el[leaveCbKey] = () => {
|
|
3368
|
+
earlyRemove();
|
|
3369
|
+
el[leaveCbKey] = void 0;
|
|
3370
|
+
delete enterHooks.delayedLeave;
|
|
3371
|
+
delayedLeavingVNode = void 0;
|
|
3372
|
+
};
|
|
3373
|
+
enterHooks.delayedLeave = () => {
|
|
3374
|
+
delayedLeave();
|
|
3375
|
+
delete enterHooks.delayedLeave;
|
|
3376
|
+
delayedLeavingVNode = void 0;
|
|
3377
|
+
};
|
|
3378
|
+
};
|
|
3379
|
+
}
|
|
3380
|
+
return false;
|
|
3381
|
+
}
|
|
3257
3382
|
function setTransitionHooks(vnode, hooks) {
|
|
3258
|
-
if (vnode.shapeFlag & 6 && vnode.component)
|
|
3259
|
-
else {
|
|
3383
|
+
if (vnode.shapeFlag & 6 && vnode.component) {
|
|
3260
3384
|
vnode.transition = hooks;
|
|
3261
|
-
setTransitionHooks(vnode.component
|
|
3262
|
-
|
|
3263
|
-
|
|
3264
|
-
|
|
3265
|
-
|
|
3385
|
+
if (isVaporComponent(vnode.type)) getVaporInterface(vnode.component, vnode).setTransitionHooks(vnode.component, hooks);
|
|
3386
|
+
else {
|
|
3387
|
+
const subTree = vnode.component.subTree;
|
|
3388
|
+
return setTransitionHooks(isTeleport(subTree.type) ? getInnerChild$1(subTree) || subTree : subTree, hooks);
|
|
3389
|
+
}
|
|
3390
|
+
} else if (vnode.shapeFlag & 128) {
|
|
3391
|
+
const contentHooks = vnode.ssContent.transition = hooks.clone(vnode.ssContent);
|
|
3392
|
+
const fallbackHooks = vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);
|
|
3393
|
+
return vnode.suspense && vnode.suspense.activeBranch === vnode.ssFallback ? fallbackHooks : contentHooks;
|
|
3266
3394
|
} else vnode.transition = hooks;
|
|
3395
|
+
return hooks;
|
|
3267
3396
|
}
|
|
3268
3397
|
function getTransitionRawChildren(children, keepComment = false, parentKey) {
|
|
3269
3398
|
let ret = [];
|
|
@@ -3281,9 +3410,9 @@ function getTransitionRawChildren(children, keepComment = false, parentKey) {
|
|
|
3281
3410
|
}
|
|
3282
3411
|
//#endregion
|
|
3283
3412
|
//#region packages/runtime-core/src/apiDefineComponent.ts
|
|
3284
|
-
|
|
3413
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
3285
3414
|
function defineComponent(options, extraOptions) {
|
|
3286
|
-
return isFunction(options) ? extend({ name: options.name }, extraOptions, { setup: options }) : options;
|
|
3415
|
+
return isFunction(options) ? /*@__PURE__*/ (() => extend({ name: options.name }, extraOptions, { setup: options }))() : options;
|
|
3287
3416
|
}
|
|
3288
3417
|
//#endregion
|
|
3289
3418
|
//#region packages/runtime-core/src/helpers/useId.ts
|
|
@@ -3370,15 +3499,16 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
|
|
|
3370
3499
|
if (rawRef.f) {
|
|
3371
3500
|
const existing = _isString ? canSetSetupRef(ref) ? setupState[ref] : refs[ref] : canSetRef(ref) || !rawRef.k ? ref.value : refs[rawRef.k];
|
|
3372
3501
|
if (isUnmount) isArray(existing) && remove(existing, refValue);
|
|
3373
|
-
else if (!isArray(existing))
|
|
3374
|
-
|
|
3375
|
-
|
|
3376
|
-
|
|
3377
|
-
|
|
3378
|
-
|
|
3379
|
-
|
|
3380
|
-
|
|
3381
|
-
|
|
3502
|
+
else if (!isArray(existing)) {
|
|
3503
|
+
if (_isString) {
|
|
3504
|
+
refs[ref] = [refValue];
|
|
3505
|
+
if (canSetSetupRef(ref)) setupState[ref] = refs[ref];
|
|
3506
|
+
} else {
|
|
3507
|
+
const newVal = [refValue];
|
|
3508
|
+
if (canSetRef(ref, rawRef.k)) ref.value = newVal;
|
|
3509
|
+
if (rawRef.k) refs[rawRef.k] = newVal;
|
|
3510
|
+
}
|
|
3511
|
+
} else if (!existing.includes(refValue)) existing.push(refValue);
|
|
3382
3512
|
} else if (_isString) {
|
|
3383
3513
|
refs[ref] = value;
|
|
3384
3514
|
if (canSetSetupRef(ref)) setupState[ref] = value;
|
|
@@ -3428,7 +3558,18 @@ const logMismatchError = () => {
|
|
|
3428
3558
|
hasLoggedMismatchError = true;
|
|
3429
3559
|
};
|
|
3430
3560
|
const isSVGContainer = (container) => container.namespaceURI.includes("svg") && container.tagName !== "foreignObject";
|
|
3431
|
-
const isMathMLContainer = (container) =>
|
|
3561
|
+
const isMathMLContainer = (container) => {
|
|
3562
|
+
if (!container.namespaceURI.includes("MathML")) return false;
|
|
3563
|
+
if (container.tagName !== "annotation-xml") return true;
|
|
3564
|
+
const encoding = container.getAttribute("encoding");
|
|
3565
|
+
return !encoding || !encoding.includes("html");
|
|
3566
|
+
};
|
|
3567
|
+
/**
|
|
3568
|
+
* Resolve the element namespace a container's children should be created in.
|
|
3569
|
+
* The live DOM is the source of truth, so this also covers containers that are
|
|
3570
|
+
* only known at runtime (interop boundaries, teleport targets).
|
|
3571
|
+
* @internal
|
|
3572
|
+
*/
|
|
3432
3573
|
const getContainerType = (container) => {
|
|
3433
3574
|
if (container.nodeType !== 1) return void 0;
|
|
3434
3575
|
if (isSVGContainer(container)) return "svg";
|
|
@@ -3451,7 +3592,7 @@ function createHydrationFunctions(rendererInternals) {
|
|
|
3451
3592
|
};
|
|
3452
3593
|
const hydrateNode = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized = false) => {
|
|
3453
3594
|
optimized = optimized || !!vnode.dynamicChildren;
|
|
3454
|
-
const isFragmentStart = isComment(node) && node.data === "[";
|
|
3595
|
+
const isFragmentStart = isComment(node) && (node.data === "[" || node.data === "(");
|
|
3455
3596
|
const onMismatch = () => handleMismatch(node, vnode, parentComponent, parentSuspense, slotScopeIds, isFragmentStart);
|
|
3456
3597
|
const { type, ref, shapeFlag, patchFlag } = vnode;
|
|
3457
3598
|
let domType = node.nodeType;
|
|
@@ -3463,11 +3604,12 @@ function createHydrationFunctions(rendererInternals) {
|
|
|
3463
3604
|
let nextNode = null;
|
|
3464
3605
|
switch (type) {
|
|
3465
3606
|
case Text:
|
|
3466
|
-
if (domType !== 3)
|
|
3467
|
-
|
|
3468
|
-
|
|
3469
|
-
|
|
3470
|
-
|
|
3607
|
+
if (domType !== 3) {
|
|
3608
|
+
if (vnode.children === "") {
|
|
3609
|
+
insert(vnode.el = createText(""), parentNode(node), node);
|
|
3610
|
+
nextNode = node;
|
|
3611
|
+
} else nextNode = onMismatch();
|
|
3612
|
+
} else {
|
|
3471
3613
|
if (node.data !== vnode.children) {
|
|
3472
3614
|
logMismatchError();
|
|
3473
3615
|
node.data = vnode.children;
|
|
@@ -3503,45 +3645,35 @@ function createHydrationFunctions(rendererInternals) {
|
|
|
3503
3645
|
else nextNode = hydrateFragment(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized);
|
|
3504
3646
|
break;
|
|
3505
3647
|
case VaporSlot:
|
|
3506
|
-
nextNode = getVaporInterface(parentComponent, vnode).hydrateSlot(vnode, node, parentComponent, parentSuspense);
|
|
3648
|
+
nextNode = getVaporInterface(parentComponent, vnode).hydrateSlot(vnode, node, parentComponent, parentSuspense, slotScopeIds);
|
|
3507
3649
|
break;
|
|
3508
|
-
default: if (shapeFlag & 1)
|
|
3509
|
-
|
|
3510
|
-
|
|
3650
|
+
default: if (shapeFlag & 1) {
|
|
3651
|
+
if ((domType !== 1 || vnode.type.toLowerCase() !== node.tagName.toLowerCase()) && !isTemplateNode$1(node)) nextNode = onMismatch();
|
|
3652
|
+
else nextNode = hydrateElement(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized);
|
|
3653
|
+
} else if (shapeFlag & 6) {
|
|
3511
3654
|
vnode.slotScopeIds = slotScopeIds;
|
|
3512
3655
|
const container = parentNode(node);
|
|
3513
3656
|
if (isFragmentStart) nextNode = locateClosingAnchor(node);
|
|
3514
3657
|
else if (isComment(node) && node.data === "teleport start") nextNode = locateClosingAnchor(node, node.data, "teleport end");
|
|
3515
3658
|
else nextNode = nextSibling(node);
|
|
3516
|
-
if (vnode.type.__vapor)
|
|
3517
|
-
|
|
3518
|
-
getVaporInterface(parentComponent, vnode).hydrate(vnode, node, container, nextNode, parentComponent, parentSuspense, () => {
|
|
3519
|
-
if (vnode.dirs) {
|
|
3520
|
-
invokeDirectiveHook(vnode, null, parentComponent, "created");
|
|
3521
|
-
invokeDirectiveHook(vnode, null, parentComponent, "beforeMount");
|
|
3522
|
-
}
|
|
3523
|
-
}, () => {
|
|
3524
|
-
if (vnodeBeforeMountHook) invokeVNodeHook(vnodeBeforeMountHook, parentComponent, vnode);
|
|
3525
|
-
});
|
|
3526
|
-
if (vnode.dirs) queueEffectWithSuspense(() => invokeDirectiveHook(vnode, null, parentComponent, "mounted"), void 0, parentSuspense);
|
|
3527
|
-
const vnodeMountedHook = !isAsyncWrapper(vnode) && vnode.props && vnode.props.onVnodeMounted;
|
|
3528
|
-
if (vnodeMountedHook) queueEffectWithSuspense(() => invokeVNodeHook(vnodeMountedHook, parentComponent, vnode), void 0, parentSuspense);
|
|
3529
|
-
} else {
|
|
3659
|
+
if (vnode.type.__vapor) getVaporInterface(parentComponent, vnode).hydrate(vnode, node, container, nextNode, parentComponent, parentSuspense);
|
|
3660
|
+
else {
|
|
3530
3661
|
mountComponent(vnode, container, null, parentComponent, parentSuspense, getContainerType(container), optimized);
|
|
3531
3662
|
const component = vnode.component;
|
|
3532
|
-
if (isAsyncWrapper(vnode)
|
|
3663
|
+
if (!component.subTree && (isAsyncWrapper(vnode) || component.asyncDep)) {
|
|
3533
3664
|
let subTree;
|
|
3534
3665
|
if (isFragmentStart) {
|
|
3535
|
-
subTree = createVNode(
|
|
3666
|
+
subTree = createVNode(Static);
|
|
3536
3667
|
subTree.anchor = nextNode ? nextNode.previousSibling : container.lastChild;
|
|
3537
|
-
} else subTree = node.nodeType === 3 ? createTextVNode("") : createVNode("div");
|
|
3668
|
+
} else subTree = node.nodeType === 3 ? createTextVNode("") : createVNode(node.nodeType === 8 ? Comment : "div");
|
|
3538
3669
|
subTree.el = node;
|
|
3539
3670
|
component.subTree = subTree;
|
|
3540
3671
|
}
|
|
3541
3672
|
}
|
|
3542
|
-
} else if (shapeFlag & 64)
|
|
3543
|
-
|
|
3544
|
-
|
|
3673
|
+
} else if (shapeFlag & 64) {
|
|
3674
|
+
if (domType !== 8) nextNode = onMismatch();
|
|
3675
|
+
else nextNode = vnode.type.hydrate(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized, rendererInternals, hydrateChildren);
|
|
3676
|
+
} else if (shapeFlag & 128) nextNode = vnode.type.hydrate(node, vnode, parentComponent, parentSuspense, getContainerType(parentNode(node)), slotScopeIds, optimized, rendererInternals, hydrateNode);
|
|
3545
3677
|
}
|
|
3546
3678
|
if (ref != null) setRef(ref, null, parentSuspense, vnode);
|
|
3547
3679
|
return nextNode;
|
|
@@ -3586,7 +3718,10 @@ function createHydrationFunctions(rendererInternals) {
|
|
|
3586
3718
|
if (forcePatch || hasDynamicProps || !optimized || patchFlag & 48) {
|
|
3587
3719
|
const isCustomElement = el.tagName.includes("-");
|
|
3588
3720
|
const namespace = el.namespaceURI.includes("svg") ? "svg" : el.namespaceURI.includes("MathML") ? "mathml" : void 0;
|
|
3589
|
-
for (const key in props) if (forcePatch && (key.endsWith("value") || key === "indeterminate") || isOn(key) && !isReservedProp(key) || key[0] === "." || isCustomElement && !isReservedProp(key) || dynamicProps && dynamicProps.includes(key))
|
|
3721
|
+
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)) {
|
|
3722
|
+
if (isUnchangedResourceProp(el, key, props[key])) continue;
|
|
3723
|
+
patchProp(el, key, null, props[key], namespace, parentComponent);
|
|
3724
|
+
}
|
|
3590
3725
|
} else if (props.onClick) patchProp(el, "onClick", null, props.onClick, void 0, parentComponent);
|
|
3591
3726
|
else if (patchFlag & 4 && /* @__PURE__ */ isReactive(props.style)) for (const key in props.style) props.style[key];
|
|
3592
3727
|
}
|
|
@@ -3632,8 +3767,9 @@ function createHydrationFunctions(rendererInternals) {
|
|
|
3632
3767
|
const { slotScopeIds: fragmentSlotScopeIds } = vnode;
|
|
3633
3768
|
if (fragmentSlotScopeIds) slotScopeIds = slotScopeIds ? slotScopeIds.concat(fragmentSlotScopeIds) : fragmentSlotScopeIds;
|
|
3634
3769
|
const container = parentNode(node);
|
|
3635
|
-
const
|
|
3636
|
-
|
|
3770
|
+
const first = nextSibling(node);
|
|
3771
|
+
const next = vnode.vo && node.data === "(" ? getVaporInterface(parentComponent, vnode).hydrateSlotOutlet(vnode, node, parentComponent, parentSuspense, slotScopeIds) : hydrateChildren(first, vnode, container, parentComponent, parentSuspense, slotScopeIds, optimized);
|
|
3772
|
+
if (next && isComment(next) && next.data === (node.data === "(" ? ")" : "]")) return nextSibling(vnode.anchor = next);
|
|
3637
3773
|
else {
|
|
3638
3774
|
logMismatchError();
|
|
3639
3775
|
insert(vnode.anchor = createComment(`]`), container, next);
|
|
@@ -3655,20 +3791,22 @@ function createHydrationFunctions(rendererInternals) {
|
|
|
3655
3791
|
const container = parentNode(node);
|
|
3656
3792
|
remove(node);
|
|
3657
3793
|
patch(null, vnode, container, next, parentComponent, parentSuspense, getContainerType(container), slotScopeIds);
|
|
3658
|
-
if (parentComponent) {
|
|
3794
|
+
if (parentComponent && parentComponent.vnode) {
|
|
3659
3795
|
parentComponent.vnode.el = vnode.el;
|
|
3660
3796
|
updateHOCHostEl(parentComponent, vnode.el);
|
|
3661
3797
|
}
|
|
3662
3798
|
return next;
|
|
3663
3799
|
};
|
|
3664
|
-
const locateClosingAnchor = (node, open = "[", close = "]") => {
|
|
3800
|
+
const locateClosingAnchor = (node, open = node && isComment(node) && node.data === "(" ? "(" : "[", close = open === "(" ? ")" : "]") => {
|
|
3665
3801
|
let match = 0;
|
|
3666
3802
|
while (node) {
|
|
3667
3803
|
node = nextSibling(node);
|
|
3668
3804
|
if (node && isComment(node)) {
|
|
3669
3805
|
if (node.data === open) match++;
|
|
3670
|
-
if (node.data === close)
|
|
3671
|
-
|
|
3806
|
+
if (node.data === close) {
|
|
3807
|
+
if (match === 0) return nextSibling(node);
|
|
3808
|
+
else match--;
|
|
3809
|
+
}
|
|
3672
3810
|
}
|
|
3673
3811
|
}
|
|
3674
3812
|
return node;
|
|
@@ -3678,7 +3816,7 @@ function createHydrationFunctions(rendererInternals) {
|
|
|
3678
3816
|
if (parentNode) parentNode.replaceChild(newNode, oldNode);
|
|
3679
3817
|
let parent = parentComponent;
|
|
3680
3818
|
while (parent) {
|
|
3681
|
-
if (parent.vnode.el === oldNode) parent.vnode.el = parent.subTree.el = newNode;
|
|
3819
|
+
if (parent.vnode && parent.vnode.el === oldNode) parent.vnode.el = parent.subTree.el = newNode;
|
|
3682
3820
|
parent = parent.parent;
|
|
3683
3821
|
}
|
|
3684
3822
|
};
|
|
@@ -3687,6 +3825,16 @@ function createHydrationFunctions(rendererInternals) {
|
|
|
3687
3825
|
const isTemplateNode$1 = (node) => {
|
|
3688
3826
|
return node.nodeType === 1 && node.tagName === "TEMPLATE";
|
|
3689
3827
|
};
|
|
3828
|
+
const resourceProps = /*@__PURE__*/ new Set([
|
|
3829
|
+
"src",
|
|
3830
|
+
"srcset",
|
|
3831
|
+
"href",
|
|
3832
|
+
"poster"
|
|
3833
|
+
]);
|
|
3834
|
+
function isUnchangedResourceProp(el, key, clientValue) {
|
|
3835
|
+
if (!resourceProps.has(key)) return false;
|
|
3836
|
+
return el.getAttribute(key) === (clientValue == null ? null : `${clientValue}`);
|
|
3837
|
+
}
|
|
3690
3838
|
const allowMismatchAttr = "data-allow-mismatch";
|
|
3691
3839
|
const MismatchTypeString = {
|
|
3692
3840
|
[0]: "text",
|
|
@@ -3791,16 +3939,18 @@ const hydrateOnInteraction = (interactions = []) => (hydrate, forEach) => {
|
|
|
3791
3939
|
return teardown;
|
|
3792
3940
|
};
|
|
3793
3941
|
function forEachElement(node, cb) {
|
|
3794
|
-
if (isComment(node) && node.data === "[") {
|
|
3942
|
+
if (isComment(node) && (node.data === "[" || node.data === "(")) {
|
|
3943
|
+
const open = node.data;
|
|
3944
|
+
const close = open === "[" ? "]" : ")";
|
|
3795
3945
|
let depth = 1;
|
|
3796
3946
|
let next = node.nextSibling;
|
|
3797
3947
|
while (next) {
|
|
3798
3948
|
if (next.nodeType === 1) {
|
|
3799
3949
|
if (cb(next) === false) break;
|
|
3800
3950
|
} else if (isComment(next)) {
|
|
3801
|
-
if (next.data ===
|
|
3951
|
+
if (next.data === close) {
|
|
3802
3952
|
if (--depth === 0) break;
|
|
3803
|
-
} else if (next.data ===
|
|
3953
|
+
} else if (next.data === open) depth++;
|
|
3804
3954
|
}
|
|
3805
3955
|
next = next.nextSibling;
|
|
3806
3956
|
}
|
|
@@ -3809,14 +3959,14 @@ function forEachElement(node, cb) {
|
|
|
3809
3959
|
//#endregion
|
|
3810
3960
|
//#region packages/runtime-core/src/apiAsyncComponent.ts
|
|
3811
3961
|
const isAsyncWrapper = (i) => !!i.type.__asyncLoader;
|
|
3812
|
-
|
|
3962
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
3813
3963
|
function defineAsyncComponent(source) {
|
|
3814
3964
|
const { load, getResolvedComp, setPendingRequest, source: { loadingComponent, errorComponent, delay, hydrate: hydrateStrategy, timeout, suspensible = true } } = createAsyncComponentContext(source);
|
|
3815
3965
|
return /* @__PURE__ */ defineComponent({
|
|
3816
3966
|
name: "AsyncComponentWrapper",
|
|
3817
3967
|
__asyncLoader: load,
|
|
3818
3968
|
__asyncHydrate(el, instance, hydrate) {
|
|
3819
|
-
performAsyncHydrate(el, instance, hydrate, getResolvedComp, load, hydrateStrategy);
|
|
3969
|
+
performAsyncHydrate(el, instance, hydrate, getResolvedComp, load, hydrateStrategy, true);
|
|
3820
3970
|
},
|
|
3821
3971
|
get __asyncResolved() {
|
|
3822
3972
|
return getResolvedComp();
|
|
@@ -3933,10 +4083,10 @@ const useAsyncComponentState = (delay, timeout, onError, instance = currentInsta
|
|
|
3933
4083
|
* shared between core and vapor
|
|
3934
4084
|
* @internal
|
|
3935
4085
|
*/
|
|
3936
|
-
function performAsyncHydrate(el, instance, hydrate, getResolvedComp, load, hydrateStrategy) {
|
|
4086
|
+
function performAsyncHydrate(el, instance, hydrate, getResolvedComp, load, hydrateStrategy, skipIfUpdated) {
|
|
3937
4087
|
const wasConnected = el.isConnected;
|
|
3938
4088
|
let patched = false;
|
|
3939
|
-
(instance.bu || (instance.bu = [])).push(() => patched = true);
|
|
4089
|
+
if (skipIfUpdated) (instance.bu || (instance.bu = [])).push(() => patched = true);
|
|
3940
4090
|
const performHydrate = () => {
|
|
3941
4091
|
if (patched) return;
|
|
3942
4092
|
if (!el.parentNode || wasConnected && !el.isConnected) return;
|
|
@@ -4019,10 +4169,13 @@ const KeepAliveImpl = {
|
|
|
4019
4169
|
});
|
|
4020
4170
|
let pendingCacheKey = null;
|
|
4021
4171
|
const cacheSubtree = () => {
|
|
4022
|
-
if (pendingCacheKey != null)
|
|
4023
|
-
|
|
4024
|
-
|
|
4025
|
-
|
|
4172
|
+
if (pendingCacheKey != null) {
|
|
4173
|
+
if (isSuspense(keepAliveInstance.subTree.type)) queuePostRenderEffect(() => {
|
|
4174
|
+
const vnode = getInnerChild(keepAliveInstance.subTree);
|
|
4175
|
+
if (vnode.component) cache.set(pendingCacheKey, vnode);
|
|
4176
|
+
}, void 0, keepAliveInstance.subTree.suspense);
|
|
4177
|
+
else cache.set(pendingCacheKey, getInnerChild(keepAliveInstance.subTree));
|
|
4178
|
+
}
|
|
4026
4179
|
};
|
|
4027
4180
|
onMounted(cacheSubtree);
|
|
4028
4181
|
onUpdated(cacheSubtree);
|
|
@@ -4092,7 +4245,7 @@ const decorate$2 = (t) => {
|
|
|
4092
4245
|
t.__isBuiltIn = true;
|
|
4093
4246
|
return t;
|
|
4094
4247
|
};
|
|
4095
|
-
const KeepAlive =
|
|
4248
|
+
const KeepAlive = /*@__PURE__*/ decorate$2(KeepAliveImpl);
|
|
4096
4249
|
function matches(pattern, name) {
|
|
4097
4250
|
if (isArray(pattern)) return pattern.some((p) => matches(p, name));
|
|
4098
4251
|
else if (isString(pattern)) return pattern.split(",").includes(name);
|
|
@@ -4181,7 +4334,7 @@ function injectHook(type, hook, target = currentInstance, prepend = false) {
|
|
|
4181
4334
|
try {
|
|
4182
4335
|
return callWithAsyncErrorHandling(hook, target, type, args);
|
|
4183
4336
|
} finally {
|
|
4184
|
-
|
|
4337
|
+
restoreCurrentInstance(prev);
|
|
4185
4338
|
setActiveSub(prevSub);
|
|
4186
4339
|
}
|
|
4187
4340
|
});
|
|
@@ -4302,16 +4455,17 @@ function compatH(type, propsOrChildren, children) {
|
|
|
4302
4455
|
}
|
|
4303
4456
|
const l = arguments.length;
|
|
4304
4457
|
const is2ndArgArrayChildren = isArray(propsOrChildren);
|
|
4305
|
-
if (l === 2 || is2ndArgArrayChildren)
|
|
4306
|
-
if (
|
|
4307
|
-
|
|
4308
|
-
|
|
4309
|
-
|
|
4458
|
+
if (l === 2 || is2ndArgArrayChildren) {
|
|
4459
|
+
if (isObject(propsOrChildren) && !is2ndArgArrayChildren) {
|
|
4460
|
+
if (isVNode(propsOrChildren)) return convertLegacySlots(createVNode(type, null, [propsOrChildren]));
|
|
4461
|
+
return convertLegacySlots(convertLegacyDirectives(createVNode(type, convertLegacyProps(propsOrChildren, type)), propsOrChildren));
|
|
4462
|
+
} else return convertLegacySlots(createVNode(type, null, propsOrChildren));
|
|
4463
|
+
} else {
|
|
4310
4464
|
if (isVNode(children)) children = [children];
|
|
4311
4465
|
return convertLegacySlots(convertLegacyDirectives(createVNode(type, convertLegacyProps(propsOrChildren, type), children), propsOrChildren));
|
|
4312
4466
|
}
|
|
4313
4467
|
}
|
|
4314
|
-
const skipLegacyRootLevelProps =
|
|
4468
|
+
const skipLegacyRootLevelProps = /*@__PURE__*/ makeMap("staticStyle,staticClass,directives,model,hook");
|
|
4315
4469
|
function convertLegacyProps(legacyProps, type) {
|
|
4316
4470
|
if (!legacyProps) return null;
|
|
4317
4471
|
const converted = {};
|
|
@@ -4323,8 +4477,10 @@ function convertLegacyProps(legacyProps, type) {
|
|
|
4323
4477
|
if (key === "nativeOn") handlerKey += `Native`;
|
|
4324
4478
|
const existing = converted[handlerKey];
|
|
4325
4479
|
const incoming = listeners[event];
|
|
4326
|
-
if (existing !== incoming)
|
|
4327
|
-
|
|
4480
|
+
if (existing !== incoming) {
|
|
4481
|
+
if (existing) converted[handlerKey] = [].concat(existing, incoming);
|
|
4482
|
+
else converted[handlerKey] = incoming;
|
|
4483
|
+
}
|
|
4328
4484
|
}
|
|
4329
4485
|
} else if (!skipLegacyRootLevelProps(key)) converted[key] = legacyProps[key];
|
|
4330
4486
|
if (legacyProps.staticClass) converted.class = normalizeClass([legacyProps.staticClass, converted.class]);
|
|
@@ -4423,7 +4579,7 @@ function convertLegacyFunctionalComponent(comp) {
|
|
|
4423
4579
|
const legacyFn = comp.render;
|
|
4424
4580
|
const Func = (props, ctx) => {
|
|
4425
4581
|
const instance = getCurrentInstance();
|
|
4426
|
-
|
|
4582
|
+
const legacyCtx = {
|
|
4427
4583
|
props,
|
|
4428
4584
|
children: instance.vnode.children || [],
|
|
4429
4585
|
data: instance.vnode.props || {},
|
|
@@ -4443,7 +4599,8 @@ function convertLegacyFunctionalComponent(comp) {
|
|
|
4443
4599
|
}
|
|
4444
4600
|
return {};
|
|
4445
4601
|
}
|
|
4446
|
-
}
|
|
4602
|
+
};
|
|
4603
|
+
return legacyFn(compatH, legacyCtx);
|
|
4447
4604
|
};
|
|
4448
4605
|
Func.props = comp.props;
|
|
4449
4606
|
Func.displayName = comp.name;
|
|
@@ -4475,16 +4632,17 @@ function renderList(source, renderItem, cache, index) {
|
|
|
4475
4632
|
} else if (typeof source === "number") {
|
|
4476
4633
|
ret = new Array(source);
|
|
4477
4634
|
for (let i = 0; i < source; i++) ret[i] = renderItem(i + 1, i, void 0, cached && cached[i]);
|
|
4478
|
-
} else if (isObject(source))
|
|
4479
|
-
|
|
4480
|
-
|
|
4481
|
-
|
|
4482
|
-
|
|
4483
|
-
|
|
4484
|
-
|
|
4635
|
+
} else if (isObject(source)) {
|
|
4636
|
+
if (source[Symbol.iterator]) ret = Array.from(source, (item, i) => renderItem(item, i, void 0, cached && cached[i]));
|
|
4637
|
+
else {
|
|
4638
|
+
const keys = Object.keys(source);
|
|
4639
|
+
ret = new Array(keys.length);
|
|
4640
|
+
for (let i = 0, l = keys.length; i < l; i++) {
|
|
4641
|
+
const key = keys[i];
|
|
4642
|
+
ret[i] = renderItem(source[key], key, i, cached && cached[i]);
|
|
4643
|
+
}
|
|
4485
4644
|
}
|
|
4486
|
-
}
|
|
4487
|
-
else ret = [];
|
|
4645
|
+
} else ret = [];
|
|
4488
4646
|
if (cache) cache[index] = ret;
|
|
4489
4647
|
return ret;
|
|
4490
4648
|
}
|
|
@@ -4509,18 +4667,45 @@ function createSlots(slots, dynamicSlots) {
|
|
|
4509
4667
|
//#endregion
|
|
4510
4668
|
//#region packages/runtime-core/src/helpers/renderSlot.ts
|
|
4511
4669
|
/**
|
|
4670
|
+
* Links a slot function to its raw vapor slot: a raw vapor slot carries
|
|
4671
|
+
* itself, and the wrapper the interop slots proxy hands out carries the raw
|
|
4672
|
+
* slot it wraps — one lookup answers both "is this a vapor slot" and
|
|
4673
|
+
* "which one". Internal to vapor interop.
|
|
4674
|
+
*/
|
|
4675
|
+
const rawVaporSlotKey = Symbol(`rawVaporSlot`);
|
|
4676
|
+
/**
|
|
4677
|
+
* Invokes a VDOM slot fallback under the outlet owner that produced it, the
|
|
4678
|
+
* way `renderSlot` would have rendered it inline. Vapor interop invokes
|
|
4679
|
+
* fallbacks late, outside any render, so it passes the owner recorded on the
|
|
4680
|
+
* vapor slot vnode. Internal to vapor interop.
|
|
4681
|
+
*/
|
|
4682
|
+
function invokeSlotFallback(fallback, owner) {
|
|
4683
|
+
if (!owner) return fallback();
|
|
4684
|
+
const prev = setCurrentRenderingInstance(owner);
|
|
4685
|
+
const prevStackSize = blockStack.length;
|
|
4686
|
+
try {
|
|
4687
|
+
return fallback();
|
|
4688
|
+
} finally {
|
|
4689
|
+
for (let i = blockStack.length; i > prevStackSize; i--) closeBlock();
|
|
4690
|
+
setCurrentRenderingInstance(prev);
|
|
4691
|
+
}
|
|
4692
|
+
}
|
|
4693
|
+
/**
|
|
4512
4694
|
* Compiler runtime helper for rendering `<slot/>`
|
|
4513
4695
|
* @private
|
|
4514
4696
|
*/
|
|
4515
|
-
function renderSlot(slots, name, props
|
|
4697
|
+
function renderSlot(slots, name, props, fallback, noSlotted, branchKey) {
|
|
4698
|
+
if (props == null) props = {};
|
|
4516
4699
|
let slot = slots[name];
|
|
4517
|
-
|
|
4518
|
-
const vaporSlot = slot && (slot.__vs || (slot.__vapor ? slot : null));
|
|
4700
|
+
const vaporSlot = slot && slot[rawVaporSlotKey];
|
|
4519
4701
|
if (vaporSlot) {
|
|
4520
4702
|
const ret = (openBlock(), createBlock(VaporSlot, props));
|
|
4521
4703
|
ret.vs = {
|
|
4522
4704
|
slot: vaporSlot,
|
|
4523
|
-
fallback
|
|
4705
|
+
outlets: fallback ? [{
|
|
4706
|
+
fallback,
|
|
4707
|
+
owner: currentRenderingInstance
|
|
4708
|
+
}] : void 0
|
|
4524
4709
|
};
|
|
4525
4710
|
if (!noSlotted && ret.scopeId) ret.slotScopeIds = [ret.scopeId + "-s"];
|
|
4526
4711
|
return ret;
|
|
@@ -4537,9 +4722,15 @@ function renderSlot(slots, name, props = {}, fallback, noSlotted, branchKey) {
|
|
|
4537
4722
|
let rendered;
|
|
4538
4723
|
try {
|
|
4539
4724
|
const validSlotContent = slot && ensureValidVNode(slot(props));
|
|
4540
|
-
|
|
4725
|
+
let attached = false;
|
|
4726
|
+
if (fallback && validSlotContent && currentRenderingInstance) {
|
|
4727
|
+
const interop = currentRenderingInstance.appContext.vapor;
|
|
4728
|
+
if (interop) attached = interop.attachSlotOutlet(validSlotContent, fallback, currentRenderingInstance);
|
|
4729
|
+
}
|
|
4541
4730
|
const slotKey = props.key || branchKey || validSlotContent && validSlotContent.key;
|
|
4542
4731
|
rendered = createBlock(Fragment, { key: (slotKey && !isSymbol(slotKey) ? slotKey : `_${name}`) + (!validSlotContent && fallback ? "_fb" : "") }, validSlotContent || (fallback ? fallback() : []), validSlotContent && slots._ === 1 ? 64 : -2);
|
|
4732
|
+
if (!validSlotContent && fallback) rendered.shapeFlag |= 1024;
|
|
4733
|
+
if (attached) rendered.vo = true;
|
|
4543
4734
|
} catch (err) {
|
|
4544
4735
|
for (let i = blockStack.length; i > prevStackSize; i--) closeBlock();
|
|
4545
4736
|
throw err;
|
|
@@ -4557,10 +4748,6 @@ function ensureValidVNode(vnodes) {
|
|
|
4557
4748
|
return true;
|
|
4558
4749
|
}) ? vnodes : null;
|
|
4559
4750
|
}
|
|
4560
|
-
function ensureVaporSlotFallback(vnodes, fallback) {
|
|
4561
|
-
let vaporSlot;
|
|
4562
|
-
if (vnodes && vnodes.length === 1 && isVNode(vnodes[0]) && (vaporSlot = vnodes[0].vs)) vaporSlot.outletFallback = fallback;
|
|
4563
|
-
}
|
|
4564
4751
|
//#endregion
|
|
4565
4752
|
//#region packages/runtime-core/src/helpers/toHandlers.ts
|
|
4566
4753
|
/**
|
|
@@ -4615,12 +4802,14 @@ function legacyResolveScopedSlots(fns, raw, hasDynamicKeys) {
|
|
|
4615
4802
|
function mapKeyToName(slots) {
|
|
4616
4803
|
for (let i = 0; i < slots.length; i++) {
|
|
4617
4804
|
const fn = slots[i];
|
|
4618
|
-
if (fn)
|
|
4619
|
-
|
|
4805
|
+
if (fn) {
|
|
4806
|
+
if (isArray(fn)) mapKeyToName(fn);
|
|
4807
|
+
else fn.name = fn.key || "default";
|
|
4808
|
+
}
|
|
4620
4809
|
}
|
|
4621
4810
|
return slots;
|
|
4622
4811
|
}
|
|
4623
|
-
const staticCacheMap =
|
|
4812
|
+
const staticCacheMap = /*@__PURE__*/ new WeakMap();
|
|
4624
4813
|
function legacyRenderStatic(instance, index) {
|
|
4625
4814
|
let cache = staticCacheMap.get(instance);
|
|
4626
4815
|
if (!cache) staticCacheMap.set(instance, cache = []);
|
|
@@ -4843,7 +5032,7 @@ const PublicInstanceProxyHandlers = {
|
|
|
4843
5032
|
return Reflect.defineProperty(target, key, descriptor);
|
|
4844
5033
|
}
|
|
4845
5034
|
};
|
|
4846
|
-
const RuntimeCompiledPublicInstanceProxyHandlers =
|
|
5035
|
+
const RuntimeCompiledPublicInstanceProxyHandlers = /*@__PURE__*/ extend({}, PublicInstanceProxyHandlers, {
|
|
4847
5036
|
get(target, key) {
|
|
4848
5037
|
if (key === Symbol.unscopables) return;
|
|
4849
5038
|
return PublicInstanceProxyHandlers.get(target, key, target);
|
|
@@ -4967,12 +5156,13 @@ function mergeDefaults(raw, defaults) {
|
|
|
4967
5156
|
for (const key in defaults) {
|
|
4968
5157
|
if (key.startsWith("__skip")) continue;
|
|
4969
5158
|
let opt = props[key];
|
|
4970
|
-
if (opt)
|
|
4971
|
-
|
|
4972
|
-
|
|
4973
|
-
|
|
4974
|
-
|
|
4975
|
-
|
|
5159
|
+
if (opt) {
|
|
5160
|
+
if (isArray(opt) || isFunction(opt)) opt = props[key] = {
|
|
5161
|
+
type: opt,
|
|
5162
|
+
default: defaults[key]
|
|
5163
|
+
};
|
|
5164
|
+
else opt.default = defaults[key];
|
|
5165
|
+
} else if (opt === null) opt = props[key] = { default: defaults[key] };
|
|
4976
5166
|
if (opt && defaults[`__skip_${key}`]) opt.skipFactory = true;
|
|
4977
5167
|
}
|
|
4978
5168
|
return props;
|
|
@@ -5021,36 +5211,31 @@ function createPropsRestProxy(props, excludedKeys) {
|
|
|
5021
5211
|
function withAsyncContext(getAwaitable) {
|
|
5022
5212
|
const ctx = getCurrentGenericInstance();
|
|
5023
5213
|
const inSSRSetup = isInSSRComponentSetup;
|
|
5024
|
-
const restoreAsyncContext = ctx && ctx.restoreAsyncContext ? ctx.restoreAsyncContext.bind(ctx) : void 0;
|
|
5025
5214
|
let awaitable = getAwaitable();
|
|
5026
5215
|
setCurrentInstance(null, void 0);
|
|
5027
5216
|
if (inSSRSetup) setInSSRSetupState(false);
|
|
5028
5217
|
const restore = () => {
|
|
5029
|
-
const
|
|
5218
|
+
const stoppedScope = ctx && !ctx.scope.active ? ctx.scope : void 0;
|
|
5030
5219
|
setCurrentInstance(ctx);
|
|
5031
5220
|
if (inSSRSetup) setInSSRSetupState(true);
|
|
5032
|
-
|
|
5033
|
-
return () => {
|
|
5034
|
-
if (reset) reset();
|
|
5035
|
-
if (resetStoppedScope) resetStoppedScope.reset();
|
|
5036
|
-
};
|
|
5221
|
+
return stoppedScope;
|
|
5037
5222
|
};
|
|
5038
5223
|
const cleanup = () => {
|
|
5039
5224
|
setCurrentInstance(null, void 0);
|
|
5040
5225
|
if (inSSRSetup) setInSSRSetupState(false);
|
|
5041
5226
|
};
|
|
5042
5227
|
if (isPromise(awaitable)) awaitable = awaitable.catch((e) => {
|
|
5043
|
-
const
|
|
5228
|
+
const stoppedScope = restore();
|
|
5044
5229
|
Promise.resolve().then(() => Promise.resolve().then(() => {
|
|
5045
|
-
if (
|
|
5230
|
+
if (stoppedScope) stoppedScope.reset();
|
|
5046
5231
|
cleanup();
|
|
5047
5232
|
}));
|
|
5048
5233
|
throw e;
|
|
5049
5234
|
});
|
|
5050
5235
|
return [awaitable, () => {
|
|
5051
|
-
const
|
|
5236
|
+
const stoppedScope = restore();
|
|
5052
5237
|
Promise.resolve().then(() => {
|
|
5053
|
-
if (
|
|
5238
|
+
if (stoppedScope) stoppedScope.reset();
|
|
5054
5239
|
cleanup();
|
|
5055
5240
|
});
|
|
5056
5241
|
}];
|
|
@@ -5078,9 +5263,11 @@ function applyOptions(instance) {
|
|
|
5078
5263
|
shouldCacheAccess = true;
|
|
5079
5264
|
if (computedOptions) for (const key in computedOptions) {
|
|
5080
5265
|
const opt = computedOptions[key];
|
|
5266
|
+
const get = isFunction(opt) ? opt.bind(publicThis, publicThis) : isFunction(opt.get) ? opt.get.bind(publicThis, publicThis) : NOOP;
|
|
5267
|
+
const set = !isFunction(opt) && isFunction(opt.set) ? opt.set.bind(publicThis) : NOOP;
|
|
5081
5268
|
const c = computed({
|
|
5082
|
-
get
|
|
5083
|
-
set
|
|
5269
|
+
get,
|
|
5270
|
+
set
|
|
5084
5271
|
});
|
|
5085
5272
|
Object.defineProperty(ctx, key, {
|
|
5086
5273
|
enumerable: true,
|
|
@@ -5139,9 +5326,10 @@ function resolveInjections(injectOptions, ctx, checkDuplicateProperties = NOOP)
|
|
|
5139
5326
|
for (const key in injectOptions) {
|
|
5140
5327
|
const opt = injectOptions[key];
|
|
5141
5328
|
let injected;
|
|
5142
|
-
if (isObject(opt))
|
|
5143
|
-
|
|
5144
|
-
|
|
5329
|
+
if (isObject(opt)) {
|
|
5330
|
+
if ("default" in opt) injected = inject(opt.from || key, opt.default, true);
|
|
5331
|
+
else injected = inject(opt.from || key);
|
|
5332
|
+
} else injected = inject(opt);
|
|
5145
5333
|
if (/* @__PURE__ */ isRef(injected)) Object.defineProperty(ctx, key, {
|
|
5146
5334
|
enumerable: true,
|
|
5147
5335
|
configurable: true,
|
|
@@ -5160,7 +5348,8 @@ function createWatcher(raw, ctx, publicThis, key) {
|
|
|
5160
5348
|
{
|
|
5161
5349
|
const cur = getCurrentInstance();
|
|
5162
5350
|
const instance = cur && getCurrentScope() === cur.scope ? cur : null;
|
|
5163
|
-
|
|
5351
|
+
const newValue = getter();
|
|
5352
|
+
if (isArray(newValue) && isCompatEnabled$1("WATCH_ARRAY", instance)) options.deep = true;
|
|
5164
5353
|
const baseGetter = getter;
|
|
5165
5354
|
getter = () => {
|
|
5166
5355
|
const val = baseGetter();
|
|
@@ -5172,10 +5361,12 @@ function createWatcher(raw, ctx, publicThis, key) {
|
|
|
5172
5361
|
const handler = ctx[raw];
|
|
5173
5362
|
if (isFunction(handler)) watch(getter, handler, options);
|
|
5174
5363
|
} else if (isFunction(raw)) watch(getter, raw.bind(publicThis), options);
|
|
5175
|
-
else if (isObject(raw))
|
|
5176
|
-
|
|
5177
|
-
|
|
5178
|
-
|
|
5364
|
+
else if (isObject(raw)) {
|
|
5365
|
+
if (isArray(raw)) raw.forEach((r) => createWatcher(r, ctx, publicThis, key));
|
|
5366
|
+
else {
|
|
5367
|
+
const handler = isFunction(raw.handler) ? raw.handler.bind(publicThis) : ctx[raw.handler];
|
|
5368
|
+
if (isFunction(handler)) watch(getter, handler, extend(raw, options));
|
|
5369
|
+
}
|
|
5179
5370
|
}
|
|
5180
5371
|
}
|
|
5181
5372
|
/**
|
|
@@ -5190,12 +5381,13 @@ function resolveMergedOptions(instance) {
|
|
|
5190
5381
|
const cached = cache.get(base);
|
|
5191
5382
|
let resolved;
|
|
5192
5383
|
if (cached) resolved = cached;
|
|
5193
|
-
else if (!globalMixins.length && !mixins && !extendsOptions)
|
|
5194
|
-
|
|
5195
|
-
|
|
5196
|
-
|
|
5197
|
-
|
|
5198
|
-
|
|
5384
|
+
else if (!globalMixins.length && !mixins && !extendsOptions) {
|
|
5385
|
+
if (isCompatEnabled$1("PRIVATE_APIS", instance)) {
|
|
5386
|
+
resolved = extend({}, base);
|
|
5387
|
+
resolved.parent = instance.parent && instance.parent.proxy;
|
|
5388
|
+
resolved.propsData = instance.vnode.props;
|
|
5389
|
+
} else resolved = base;
|
|
5390
|
+
} else {
|
|
5199
5391
|
resolved = {};
|
|
5200
5392
|
if (globalMixins.length) globalMixins.forEach((m) => mergeOptions(resolved, m, optionMergeStrategies, true));
|
|
5201
5393
|
mergeOptions(resolved, base, optionMergeStrategies);
|
|
@@ -5267,7 +5459,7 @@ function mergeObjectOptions(to, from) {
|
|
|
5267
5459
|
}
|
|
5268
5460
|
function mergeEmitsOrPropsOptions(to, from) {
|
|
5269
5461
|
if (to) {
|
|
5270
|
-
if (isArray(to) && isArray(from)) return [
|
|
5462
|
+
if (isArray(to) && isArray(from)) return [.../* @__PURE__ */ new Set([...to, ...from])];
|
|
5271
5463
|
return extend(Object.create(null), normalizePropsOrEmits(to), normalizePropsOrEmits(from !== null && from !== void 0 ? from : {}));
|
|
5272
5464
|
} else return from;
|
|
5273
5465
|
}
|
|
@@ -5303,7 +5495,7 @@ function createCompatVue$1(createApp, createSingletonApp) {
|
|
|
5303
5495
|
if (options.el) return vm.$mount(options.el);
|
|
5304
5496
|
else return vm;
|
|
5305
5497
|
}
|
|
5306
|
-
Vue.version = `2.6.14-compat:3.6.0-rc.
|
|
5498
|
+
Vue.version = `2.6.14-compat:3.6.0-rc.11`;
|
|
5307
5499
|
Vue.config = singletonApp.config;
|
|
5308
5500
|
Vue.use = (plugin, ...options) => {
|
|
5309
5501
|
if (plugin && isFunction(plugin.install)) plugin.install(Vue, ...options);
|
|
@@ -5709,13 +5901,17 @@ function useModel(props, name, options = EMPTY_OBJ) {
|
|
|
5709
5901
|
const modifiers = getModelModifiers(props, camelizedName, defaultPropGetter);
|
|
5710
5902
|
const res = customRef((track, trigger) => {
|
|
5711
5903
|
let localValue;
|
|
5904
|
+
let prevPropValue = EMPTY_OBJ;
|
|
5712
5905
|
let prevSetValue = EMPTY_OBJ;
|
|
5713
5906
|
let prevEmittedValue;
|
|
5714
5907
|
watchSyncEffect(() => {
|
|
5715
5908
|
const propValue = props[camelizedName];
|
|
5716
|
-
if (hasChanged(
|
|
5717
|
-
|
|
5718
|
-
|
|
5909
|
+
if (hasChanged(prevPropValue, propValue)) {
|
|
5910
|
+
prevPropValue = propValue;
|
|
5911
|
+
if (hasChanged(localValue, propValue)) {
|
|
5912
|
+
localValue = propValue;
|
|
5913
|
+
trigger();
|
|
5914
|
+
}
|
|
5719
5915
|
}
|
|
5720
5916
|
});
|
|
5721
5917
|
return {
|
|
@@ -5781,7 +5977,7 @@ function baseEmit(instance, props, getter, event, ...rawArgs) {
|
|
|
5781
5977
|
const modifiers = isCompatModelListener ? props.modelModifiers : isModelListener && getModelModifiers(props, event.slice(7), getter);
|
|
5782
5978
|
if (modifiers) {
|
|
5783
5979
|
if (modifiers.trim) args = rawArgs.map((a) => isString(a) ? a.trim() : a);
|
|
5784
|
-
if (modifiers.number) args =
|
|
5980
|
+
if (modifiers.number) args = args.map(looseToNumber);
|
|
5785
5981
|
}
|
|
5786
5982
|
let handlerName;
|
|
5787
5983
|
let handler = getter(props, handlerName = toHandlerKey(event)) || getter(props, handlerName = toHandlerKey(camelize(event)));
|
|
@@ -5894,7 +6090,7 @@ function renderComponentRoot(instance) {
|
|
|
5894
6090
|
root = cloneVNode(root, null, false, true);
|
|
5895
6091
|
root.dirs = root.dirs ? root.dirs.concat(vnode.dirs) : vnode.dirs;
|
|
5896
6092
|
}
|
|
5897
|
-
if (vnode.transition) setTransitionHooks(root, vnode.transition);
|
|
6093
|
+
if (vnode.transition) setTransitionHooks(isTeleport(root.type) ? getInnerChild$1(root) || root : root, vnode.transition);
|
|
5898
6094
|
result = root;
|
|
5899
6095
|
setCurrentRenderingInstance(prev);
|
|
5900
6096
|
return result;
|
|
@@ -5904,15 +6100,18 @@ function filterSingleRoot(children, recurse = true) {
|
|
|
5904
6100
|
for (let i = 0; i < children.length; i++) {
|
|
5905
6101
|
const child = children[i];
|
|
5906
6102
|
if (isVNode(child)) {
|
|
5907
|
-
if (child.type !== Comment || child.children === "v-if")
|
|
5908
|
-
|
|
6103
|
+
if (child.type !== Comment || child.children === "v-if") {
|
|
6104
|
+
if (singleRoot) return;
|
|
6105
|
+
else singleRoot = child;
|
|
6106
|
+
}
|
|
5909
6107
|
} else return;
|
|
5910
6108
|
}
|
|
5911
6109
|
return singleRoot;
|
|
5912
6110
|
}
|
|
6111
|
+
const isFunctionalFallthroughKey = (key) => key === "class" || key === "style" || isOn(key);
|
|
5913
6112
|
const getFunctionalFallthrough = (attrs) => {
|
|
5914
6113
|
let res;
|
|
5915
|
-
for (const key in attrs) if (
|
|
6114
|
+
for (const key in attrs) if (isFunctionalFallthroughKey(key)) (res || (res = {}))[key] = attrs[key];
|
|
5916
6115
|
return res;
|
|
5917
6116
|
};
|
|
5918
6117
|
const filterModelListeners = (attrs, props) => {
|
|
@@ -6036,16 +6235,17 @@ function updateProps(instance, rawProps, rawPrevProps, optimized) {
|
|
|
6036
6235
|
let key = propsToUpdate[i];
|
|
6037
6236
|
if (isEmitListener(instance.emitsOptions, key)) continue;
|
|
6038
6237
|
const value = rawProps[key];
|
|
6039
|
-
if (options)
|
|
6040
|
-
if (
|
|
6041
|
-
attrs[key]
|
|
6042
|
-
|
|
6238
|
+
if (options) {
|
|
6239
|
+
if (hasOwn(attrs, key)) {
|
|
6240
|
+
if (value !== attrs[key]) {
|
|
6241
|
+
attrs[key] = value;
|
|
6242
|
+
hasAttrsChanged = true;
|
|
6243
|
+
}
|
|
6244
|
+
} else {
|
|
6245
|
+
const camelizedKey = camelize(key);
|
|
6246
|
+
props[camelizedKey] = resolvePropValue(options, camelizedKey, value, instance, baseResolveDefault);
|
|
6043
6247
|
}
|
|
6044
6248
|
} else {
|
|
6045
|
-
const camelizedKey = camelize(key);
|
|
6046
|
-
props[camelizedKey] = resolvePropValue(options, camelizedKey, value, instance, baseResolveDefault);
|
|
6047
|
-
}
|
|
6048
|
-
else {
|
|
6049
6249
|
if (isOn(key) && key.endsWith("Native")) key = key.slice(0, -6);
|
|
6050
6250
|
else if (shouldSkipAttr(key, instance)) continue;
|
|
6051
6251
|
if (value !== attrs[key]) {
|
|
@@ -6058,9 +6258,11 @@ function updateProps(instance, rawProps, rawPrevProps, optimized) {
|
|
|
6058
6258
|
} else {
|
|
6059
6259
|
if (setFullProps(instance, rawProps, props, attrs)) hasAttrsChanged = true;
|
|
6060
6260
|
let kebabKey;
|
|
6061
|
-
for (const key in rawCurrentProps) if (!rawProps || !hasOwn(rawProps, key) && ((kebabKey = hyphenate(key)) === key || !hasOwn(rawProps, kebabKey)))
|
|
6062
|
-
if (
|
|
6063
|
-
|
|
6261
|
+
for (const key in rawCurrentProps) if (!rawProps || !hasOwn(rawProps, key) && ((kebabKey = hyphenate(key)) === key || !hasOwn(rawProps, kebabKey))) {
|
|
6262
|
+
if (options) {
|
|
6263
|
+
if (rawPrevProps && (rawPrevProps[key] !== void 0 || rawPrevProps[kebabKey] !== void 0)) props[key] = resolvePropValue(options, key, void 0, instance, baseResolveDefault, true);
|
|
6264
|
+
} else delete props[key];
|
|
6265
|
+
}
|
|
6064
6266
|
if (attrs !== rawCurrentProps) {
|
|
6065
6267
|
for (const key in attrs) if (!rawProps || !hasOwn(rawProps, key) && !hasOwn(rawProps, key + "Native")) {
|
|
6066
6268
|
delete attrs[key];
|
|
@@ -6080,9 +6282,10 @@ function setFullProps(instance, rawProps, props, attrs) {
|
|
|
6080
6282
|
if (key === "inline-template") continue;
|
|
6081
6283
|
const value = rawProps[key];
|
|
6082
6284
|
let camelKey;
|
|
6083
|
-
if (options && hasOwn(options, camelKey = camelize(key)))
|
|
6084
|
-
|
|
6085
|
-
|
|
6285
|
+
if (options && hasOwn(options, camelKey = camelize(key))) {
|
|
6286
|
+
if (!needCastKeys || !needCastKeys.includes(camelKey)) props[camelKey] = value;
|
|
6287
|
+
else (rawCastValues || (rawCastValues = {}))[camelKey] = value;
|
|
6288
|
+
} else if (!isEmitListener(instance.emitsOptions, key)) {
|
|
6086
6289
|
if (isOn(key) && key.endsWith("Native")) key = key.slice(0, -6);
|
|
6087
6290
|
else if (shouldSkipAttr(key, instance)) continue;
|
|
6088
6291
|
if (!(key in attrs) || value !== attrs[key]) {
|
|
@@ -6131,7 +6334,7 @@ function baseResolveDefault(factory, instance, key) {
|
|
|
6131
6334
|
const prev = setCurrentInstance(instance);
|
|
6132
6335
|
const props = /* @__PURE__ */ toRaw(instance.props);
|
|
6133
6336
|
value = factory.call(isCompatEnabled$1("PROPS_DEFAULT_THIS", instance) ? createPropsDefaultThis(instance, props, key) : null, props);
|
|
6134
|
-
|
|
6337
|
+
restoreCurrentInstance(prev);
|
|
6135
6338
|
return value;
|
|
6136
6339
|
}
|
|
6137
6340
|
const mixinPropsCache = /* @__PURE__ */ new WeakMap();
|
|
@@ -6246,9 +6449,10 @@ const updateSlots = (instance, children, optimized) => {
|
|
|
6246
6449
|
let deletionComparisonTarget = EMPTY_OBJ;
|
|
6247
6450
|
if (vnode.shapeFlag & 32) {
|
|
6248
6451
|
const type = children._;
|
|
6249
|
-
if (type)
|
|
6250
|
-
|
|
6251
|
-
|
|
6452
|
+
if (type) {
|
|
6453
|
+
if (optimized && type === 1) needDeletionCheck = false;
|
|
6454
|
+
else assignSlots(slots, children, optimized);
|
|
6455
|
+
} else {
|
|
6252
6456
|
needDeletionCheck = !children.$stable;
|
|
6253
6457
|
normalizeObjectSlots(children, slots, instance);
|
|
6254
6458
|
}
|
|
@@ -6308,6 +6512,10 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
6308
6512
|
optimized = false;
|
|
6309
6513
|
n2.dynamicChildren = null;
|
|
6310
6514
|
}
|
|
6515
|
+
if (n2.dynamicChildren && n1 && n1.dynamicChildren && n1.dynamicChildren.hasOnce) {
|
|
6516
|
+
if (n2.dynamicChildren === EMPTY_ARR) n2.dynamicChildren = [];
|
|
6517
|
+
n2.dynamicChildren.hasOnce = true;
|
|
6518
|
+
}
|
|
6311
6519
|
const { type, ref, shapeFlag } = n2;
|
|
6312
6520
|
switch (type) {
|
|
6313
6521
|
case Text:
|
|
@@ -6323,7 +6531,7 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
6323
6531
|
processFragment(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
|
|
6324
6532
|
break;
|
|
6325
6533
|
case VaporSlot:
|
|
6326
|
-
getVaporInterface(parentComponent, n2).slot(n1, n2, container, anchor, parentComponent, parentSuspense);
|
|
6534
|
+
getVaporInterface(parentComponent, n2).slot(n1, n2, container, anchor, parentComponent, parentSuspense, slotScopeIds);
|
|
6327
6535
|
break;
|
|
6328
6536
|
default: if (shapeFlag & 1) processElement(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
|
|
6329
6537
|
else if (shapeFlag & 6) processComponent(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
|
|
@@ -6419,7 +6627,10 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
6419
6627
|
for (let i = 0; i < inheritedScopeIds.length; i++) hostSetScopeId(el, inheritedScopeIds[i]);
|
|
6420
6628
|
};
|
|
6421
6629
|
const mountChildren = (children, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, start = 0) => {
|
|
6422
|
-
for (let i = start; i < children.length; i++)
|
|
6630
|
+
for (let i = start; i < children.length; i++) {
|
|
6631
|
+
const child = children[i] = optimized ? cloneIfMounted(children[i]) : normalizeVNode(children[i]);
|
|
6632
|
+
patch(null, child, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
|
|
6633
|
+
}
|
|
6423
6634
|
};
|
|
6424
6635
|
const patchElement = (n1, n2, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {
|
|
6425
6636
|
const el = n2.el = n1.el;
|
|
@@ -6430,6 +6641,7 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
6430
6641
|
let vnodeHook;
|
|
6431
6642
|
parentComponent && toggleRecurse(parentComponent, false);
|
|
6432
6643
|
if (vnodeHook = newProps.onVnodeBeforeUpdate) invokeVNodeHook(vnodeHook, parentComponent, n2, n1);
|
|
6644
|
+
if (n2.ibu) n2.ibu();
|
|
6433
6645
|
if (dirs) invokeDirectiveHook(n2, n1, parentComponent, "beforeUpdate");
|
|
6434
6646
|
parentComponent && toggleRecurse(parentComponent, true);
|
|
6435
6647
|
if (dynamicChildren && (!n1.dynamicChildren || n1.dynamicChildren.length !== dynamicChildren.length)) {
|
|
@@ -6461,8 +6673,9 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
6461
6673
|
if (n1.children !== n2.children) hostSetElementText(el, n2.children);
|
|
6462
6674
|
}
|
|
6463
6675
|
} else if (!optimized && dynamicChildren == null) patchProps(el, oldProps, newProps, parentComponent, namespace);
|
|
6464
|
-
if ((vnodeHook = newProps.onVnodeUpdated) || dirs) queuePostRenderEffect(() => {
|
|
6676
|
+
if ((vnodeHook = newProps.onVnodeUpdated) || dirs || n2.iu) queuePostRenderEffect(() => {
|
|
6465
6677
|
vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, n2, n1);
|
|
6678
|
+
n2.iu && n2.iu();
|
|
6466
6679
|
dirs && invokeDirectiveHook(n2, n1, parentComponent, "updated");
|
|
6467
6680
|
}, void 0, parentSuspense);
|
|
6468
6681
|
};
|
|
@@ -6470,7 +6683,8 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
6470
6683
|
for (let i = 0; i < newChildren.length; i++) {
|
|
6471
6684
|
const oldVNode = oldChildren[i];
|
|
6472
6685
|
const newVNode = newChildren[i];
|
|
6473
|
-
|
|
6686
|
+
const container = oldVNode.el && (oldVNode.type === Fragment || !isSameVNodeType(oldVNode, newVNode) || oldVNode.shapeFlag & 198) ? hostParentNode(oldVNode.el) : fallbackContainer;
|
|
6687
|
+
patch(oldVNode, newVNode, container, null, parentComponent, parentSuspense, namespace, slotScopeIds, true);
|
|
6474
6688
|
}
|
|
6475
6689
|
};
|
|
6476
6690
|
const patchProps = (el, oldProps, newProps, parentComponent, namespace) => {
|
|
@@ -6503,41 +6717,15 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
6503
6717
|
};
|
|
6504
6718
|
const processComponent = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {
|
|
6505
6719
|
n2.slotScopeIds = slotScopeIds;
|
|
6506
|
-
if (n2.type.__vapor)
|
|
6507
|
-
|
|
6508
|
-
|
|
6509
|
-
|
|
6510
|
-
|
|
6511
|
-
|
|
6512
|
-
|
|
6513
|
-
|
|
6514
|
-
|
|
6515
|
-
if (vnodeBeforeMountHook) invokeVNodeHook(vnodeBeforeMountHook, parentComponent, n2);
|
|
6516
|
-
});
|
|
6517
|
-
if (n2.dirs) queuePostRenderEffect(() => invokeDirectiveHook(n2, null, parentComponent, "mounted"), void 0, parentSuspense);
|
|
6518
|
-
const vnodeMountedHook = !isAsyncWrapper(n2) && n2.props && n2.props.onVnodeMounted;
|
|
6519
|
-
if (vnodeMountedHook) {
|
|
6520
|
-
const scopedVNode = n2;
|
|
6521
|
-
queuePostRenderEffect(() => invokeVNodeHook(vnodeMountedHook, parentComponent, scopedVNode), void 0, parentSuspense);
|
|
6522
|
-
}
|
|
6523
|
-
}
|
|
6524
|
-
else {
|
|
6525
|
-
const shouldUpdate = shouldUpdateComponent(n1, n2, optimized);
|
|
6526
|
-
getVaporInterface(parentComponent, n2).update(n1, n2, shouldUpdate, () => {
|
|
6527
|
-
if (n2.dirs) invokeDirectiveHook(n2, n1, parentComponent, "beforeUpdate");
|
|
6528
|
-
}, () => {
|
|
6529
|
-
const vnodeBeforeUpdateHook = n2.props && n2.props.onVnodeBeforeUpdate;
|
|
6530
|
-
if (vnodeBeforeUpdateHook) invokeVNodeHook(vnodeBeforeUpdateHook, parentComponent, n2, n1);
|
|
6531
|
-
});
|
|
6532
|
-
const vnodeUpdatedHook = n2.props && n2.props.onVnodeUpdated;
|
|
6533
|
-
if (shouldUpdate && (vnodeUpdatedHook || n2.dirs)) queuePostRenderEffect(() => {
|
|
6534
|
-
n2.dirs && invokeDirectiveHook(n2, n1, parentComponent, "updated");
|
|
6535
|
-
vnodeUpdatedHook && invokeVNodeHook(vnodeUpdatedHook, parentComponent, n2, n1);
|
|
6536
|
-
}, void 0, parentSuspense);
|
|
6537
|
-
}
|
|
6538
|
-
else if (n1 == null) if (n2.shapeFlag & 512) parentComponent.ctx.activate(n2, container, anchor, namespace, optimized);
|
|
6539
|
-
else mountComponent(n2, container, anchor, parentComponent, parentSuspense, namespace, optimized);
|
|
6540
|
-
else updateComponent(n1, n2, optimized);
|
|
6720
|
+
if (n2.type.__vapor) {
|
|
6721
|
+
if (n1 == null) {
|
|
6722
|
+
if (n2.shapeFlag & 512) getVaporInterface(parentComponent, n2).activate(n2, container, anchor, parentComponent, parentSuspense);
|
|
6723
|
+
else getVaporInterface(parentComponent, n2).mount(n2, container, anchor, parentComponent, parentSuspense);
|
|
6724
|
+
} else getVaporInterface(parentComponent, n2).update(n1, n2, shouldUpdateComponent(n1, n2, optimized));
|
|
6725
|
+
} else if (n1 == null) {
|
|
6726
|
+
if (n2.shapeFlag & 512) parentComponent.ctx.activate(n2, container, anchor, namespace, optimized);
|
|
6727
|
+
else mountComponent(n2, container, anchor, parentComponent, parentSuspense, namespace, optimized);
|
|
6728
|
+
} else updateComponent(n1, n2, optimized);
|
|
6541
6729
|
};
|
|
6542
6730
|
const mountComponent = (initialVNode, container, anchor, parentComponent, parentSuspense, namespace, optimized) => {
|
|
6543
6731
|
const compatMountInstance = initialVNode.isCompatRoot && initialVNode.component;
|
|
@@ -6569,14 +6757,16 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
6569
6757
|
};
|
|
6570
6758
|
const updateComponent = (n1, n2, optimized) => {
|
|
6571
6759
|
const instance = n2.component = n1.component;
|
|
6572
|
-
if (shouldUpdateComponent(n1, n2, optimized))
|
|
6573
|
-
|
|
6574
|
-
|
|
6760
|
+
if (shouldUpdateComponent(n1, n2, optimized)) {
|
|
6761
|
+
if (instance.asyncDep && !instance.asyncResolved) {
|
|
6762
|
+
n2.el = n1.el;
|
|
6763
|
+
updateComponentPreRender(instance, n2, optimized);
|
|
6764
|
+
return;
|
|
6765
|
+
} else {
|
|
6766
|
+
instance.next = n2;
|
|
6767
|
+
instance.effect.run();
|
|
6768
|
+
}
|
|
6575
6769
|
} else {
|
|
6576
|
-
instance.next = n2;
|
|
6577
|
-
instance.effect.run();
|
|
6578
|
-
}
|
|
6579
|
-
else {
|
|
6580
6770
|
n2.el = n1.el;
|
|
6581
6771
|
instance.vnode = n2;
|
|
6582
6772
|
}
|
|
@@ -6667,6 +6857,7 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
6667
6857
|
} else next = vnode;
|
|
6668
6858
|
if (bu) invokeArrayFns(bu);
|
|
6669
6859
|
if (vnodeHook = next.props && next.props.onVnodeBeforeUpdate) invokeVNodeHook(vnodeHook, parent, next, vnode);
|
|
6860
|
+
if (next.ibu) next.ibu();
|
|
6670
6861
|
if (isCompatEnabled$1("INSTANCE_EVENT_HOOKS", instance)) instance.emit("hook:beforeUpdate");
|
|
6671
6862
|
toggleRecurse(instance, true);
|
|
6672
6863
|
const nextTree = renderComponentRoot(instance);
|
|
@@ -6676,7 +6867,10 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
6676
6867
|
next.el = nextTree.el;
|
|
6677
6868
|
if (originNext === null) updateHOCHostEl(instance, nextTree.el);
|
|
6678
6869
|
if (u) queuePostRenderEffect(u, void 0, parentSuspense);
|
|
6679
|
-
if (vnodeHook = next.props && next.props.onVnodeUpdated) queuePostRenderEffect(() =>
|
|
6870
|
+
if ((vnodeHook = next.props && next.props.onVnodeUpdated) || next.iu) queuePostRenderEffect(() => {
|
|
6871
|
+
vnodeHook && invokeVNodeHook(vnodeHook, parent, next, vnode);
|
|
6872
|
+
next.iu && next.iu();
|
|
6873
|
+
}, void 0, parentSuspense);
|
|
6680
6874
|
if (isCompatEnabled$1("INSTANCE_EVENT_HOOKS", instance)) queuePostRenderEffect(() => instance.emit("hook:updated"), void 0, parentSuspense);
|
|
6681
6875
|
}
|
|
6682
6876
|
}
|
|
@@ -6715,9 +6909,10 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
6715
6909
|
if (shapeFlag & 8) {
|
|
6716
6910
|
if (prevShapeFlag & 16) unmountChildren(c1, parentComponent, parentSuspense);
|
|
6717
6911
|
if (c2 !== c1) hostSetElementText(container, c2);
|
|
6718
|
-
} else if (prevShapeFlag & 16)
|
|
6719
|
-
|
|
6720
|
-
|
|
6912
|
+
} else if (prevShapeFlag & 16) {
|
|
6913
|
+
if (shapeFlag & 16) patchKeyedChildren(c1, c2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
|
|
6914
|
+
else unmountChildren(c1, parentComponent, parentSuspense, true);
|
|
6915
|
+
} else {
|
|
6721
6916
|
if (prevShapeFlag & 8) hostSetElementText(container, "");
|
|
6722
6917
|
if (shapeFlag & 16) mountChildren(c2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
|
|
6723
6918
|
}
|
|
@@ -6813,15 +7008,17 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
6813
7008
|
const anchorVNode = c2[nextIndex + 1];
|
|
6814
7009
|
const anchor = nextIndex + 1 < l2 ? anchorVNode.el || resolveAsyncComponentPlaceholder(anchorVNode) : parentAnchor;
|
|
6815
7010
|
if (newIndexToOldIndexMap[i] === 0) patch(null, nextChild, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
|
|
6816
|
-
else if (moved)
|
|
6817
|
-
|
|
7011
|
+
else if (moved) {
|
|
7012
|
+
if (j < 0 || i !== increasingNewIndexSequence[j]) move(nextChild, container, anchor, 2, parentComponent);
|
|
7013
|
+
else j--;
|
|
7014
|
+
}
|
|
6818
7015
|
}
|
|
6819
7016
|
}
|
|
6820
7017
|
};
|
|
6821
7018
|
const move = (vnode, container, anchor, moveType, parentComponent, parentSuspense = null) => {
|
|
6822
7019
|
const { el, type, transition, children, shapeFlag } = vnode;
|
|
6823
7020
|
if (isVaporComponent(type) || type === VaporSlot) {
|
|
6824
|
-
getVaporInterface(parentComponent, vnode).move(vnode, container, anchor, moveType);
|
|
7021
|
+
getVaporInterface(parentComponent, vnode).move(vnode, container, anchor, moveType, parentSuspense);
|
|
6825
7022
|
return;
|
|
6826
7023
|
}
|
|
6827
7024
|
if (shapeFlag & 6) {
|
|
@@ -6846,54 +7043,37 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
6846
7043
|
moveStaticNode(vnode, container, anchor);
|
|
6847
7044
|
return;
|
|
6848
7045
|
}
|
|
6849
|
-
if (moveType !== 2 && shapeFlag & 1 && transition)
|
|
6850
|
-
|
|
6851
|
-
|
|
6852
|
-
const remove = () => {
|
|
7046
|
+
if (moveType !== 2 && shapeFlag & 1 && transition) {
|
|
7047
|
+
if (moveType === 0) performTransitionEnter(el, transition, () => hostInsert(el, container, anchor), parentSuspense, true);
|
|
7048
|
+
else performTransitionLeave(el, transition, () => {
|
|
6853
7049
|
if (vnode.ctx.isUnmounted) hostRemove(el);
|
|
6854
7050
|
else hostInsert(el, container, anchor);
|
|
6855
|
-
};
|
|
6856
|
-
|
|
6857
|
-
const wasLeaving = el._isLeaving || !!el[leaveCbKey];
|
|
6858
|
-
if (el._isLeaving) el[leaveCbKey](true);
|
|
6859
|
-
if (transition.persisted && !wasLeaving) remove();
|
|
6860
|
-
else leave(el, () => {
|
|
6861
|
-
remove();
|
|
6862
|
-
afterLeave && afterLeave();
|
|
6863
|
-
});
|
|
6864
|
-
};
|
|
6865
|
-
if (delayLeave) delayLeave(el, remove, performLeave);
|
|
6866
|
-
else performLeave();
|
|
6867
|
-
}
|
|
6868
|
-
else hostInsert(el, container, anchor);
|
|
7051
|
+
}, true, true);
|
|
7052
|
+
} else hostInsert(el, container, anchor);
|
|
6869
7053
|
};
|
|
6870
7054
|
const unmount = (vnode, parentComponent, parentSuspense, doRemove = false, optimized = false) => {
|
|
6871
7055
|
const { type, props, ref, children, dynamicChildren, shapeFlag, patchFlag, dirs, cacheIndex, memo } = vnode;
|
|
6872
|
-
if (patchFlag === -2) optimized = false;
|
|
7056
|
+
if (patchFlag === -2 || dynamicChildren && dynamicChildren.hasOnce) optimized = false;
|
|
6873
7057
|
if (ref != null) {
|
|
6874
7058
|
const prevSub = setActiveSub();
|
|
6875
7059
|
setRef(ref, null, parentSuspense, vnode, true);
|
|
6876
7060
|
setActiveSub(prevSub);
|
|
6877
7061
|
}
|
|
6878
|
-
if (cacheIndex != null) parentComponent.renderCache[cacheIndex] = void 0;
|
|
7062
|
+
if (cacheIndex != null && (!vnode.ctx || vnode.ctx === parentComponent)) parentComponent.renderCache[cacheIndex] = void 0;
|
|
6879
7063
|
if (shapeFlag & 256) {
|
|
6880
|
-
if (isVaporComponent(vnode.type)) getVaporInterface(parentComponent, vnode).deactivate(vnode, parentComponent.ctx.getStorageContainer());
|
|
7064
|
+
if (isVaporComponent(vnode.type)) getVaporInterface(parentComponent, vnode).deactivate(vnode, parentComponent.ctx.getStorageContainer(), parentSuspense);
|
|
6881
7065
|
else parentComponent.ctx.deactivate(vnode);
|
|
6882
7066
|
return;
|
|
6883
7067
|
}
|
|
7068
|
+
if (shapeFlag & 6 && isVaporComponent(type)) {
|
|
7069
|
+
getVaporInterface(parentComponent, vnode).unmount(vnode, doRemove, parentSuspense);
|
|
7070
|
+
return;
|
|
7071
|
+
}
|
|
6884
7072
|
const shouldInvokeDirs = shapeFlag & 1 && dirs;
|
|
6885
7073
|
const shouldInvokeVnodeHook = !isAsyncWrapper(vnode);
|
|
6886
7074
|
let vnodeHook;
|
|
6887
7075
|
if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeBeforeUnmount)) invokeVNodeHook(vnodeHook, parentComponent, vnode);
|
|
6888
|
-
if (shapeFlag & 6)
|
|
6889
|
-
if (dirs) invokeDirectiveHook(vnode, null, parentComponent, "beforeUnmount");
|
|
6890
|
-
getVaporInterface(parentComponent, vnode).unmount(vnode, doRemove);
|
|
6891
|
-
if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeUnmounted) || dirs) queuePostRenderEffect(() => {
|
|
6892
|
-
dirs && invokeDirectiveHook(vnode, null, parentComponent, "unmounted");
|
|
6893
|
-
vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode);
|
|
6894
|
-
}, void 0, parentSuspense);
|
|
6895
|
-
return;
|
|
6896
|
-
} else unmountComponent(vnode.component, parentSuspense, doRemove);
|
|
7076
|
+
if (shapeFlag & 6) unmountComponent(vnode.component, parentSuspense, doRemove);
|
|
6897
7077
|
else {
|
|
6898
7078
|
if (shapeFlag & 128) {
|
|
6899
7079
|
vnode.suspense.unmount(parentSuspense, doRemove);
|
|
@@ -6904,7 +7084,7 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
6904
7084
|
else if (dynamicChildren && !dynamicChildren.hasOnce && (type !== Fragment || patchFlag > 0 && patchFlag & 64)) unmountChildren(dynamicChildren, parentComponent, parentSuspense, false, true);
|
|
6905
7085
|
else if (type === Fragment && patchFlag & 384 || !optimized && shapeFlag & 16) unmountChildren(children, parentComponent, parentSuspense);
|
|
6906
7086
|
if (type === VaporSlot) {
|
|
6907
|
-
getVaporInterface(parentComponent, vnode).unmount(vnode, doRemove);
|
|
7087
|
+
getVaporInterface(parentComponent, vnode).unmount(vnode, doRemove, parentSuspense);
|
|
6908
7088
|
return;
|
|
6909
7089
|
}
|
|
6910
7090
|
if (doRemove) remove(vnode);
|
|
@@ -6924,6 +7104,7 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
6924
7104
|
}
|
|
6925
7105
|
if (type === Static) {
|
|
6926
7106
|
removeStaticNode(vnode);
|
|
7107
|
+
if (transition && !transition.persisted && transition.afterLeave) transition.afterLeave();
|
|
6927
7108
|
return;
|
|
6928
7109
|
}
|
|
6929
7110
|
if (transition) performTransitionLeave(el, transition, () => hostRemove(el), !!(vnode.shapeFlag & 1));
|
|
@@ -6948,7 +7129,10 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
6948
7129
|
if (effect) {
|
|
6949
7130
|
effect.stop();
|
|
6950
7131
|
unmount(subTree, instance, parentSuspense, doRemove);
|
|
6951
|
-
} else if (
|
|
7132
|
+
} else if (instance.vnode.el && subTree) {
|
|
7133
|
+
subTree.transition = instance.vnode.transition;
|
|
7134
|
+
unmount(subTree, instance, parentSuspense, doRemove);
|
|
7135
|
+
}
|
|
6952
7136
|
if (um) queuePostRenderEffect(um, void 0, parentSuspense);
|
|
6953
7137
|
if (isCompatEnabled$1("INSTANCE_EVENT_HOOKS", instance)) queuePostRenderEffect(() => instance.emit("hook:destroyed"), void 0, parentSuspense);
|
|
6954
7138
|
queuePostRenderEffect(() => instance.isUnmounted = true, void 0, parentSuspense);
|
|
@@ -7017,12 +7201,14 @@ function resolveChildrenNamespace({ type, props }, currentNamespace) {
|
|
|
7017
7201
|
return currentNamespace === "svg" && type === "foreignObject" || currentNamespace === "mathml" && type === "annotation-xml" && props && props.encoding && props.encoding.includes("html") ? void 0 : currentNamespace;
|
|
7018
7202
|
}
|
|
7019
7203
|
function toggleRecurse({ effect, job, vapor }, allowed) {
|
|
7020
|
-
if (!vapor)
|
|
7021
|
-
|
|
7022
|
-
|
|
7023
|
-
|
|
7024
|
-
|
|
7025
|
-
|
|
7204
|
+
if (!vapor) {
|
|
7205
|
+
if (allowed) {
|
|
7206
|
+
effect.flags |= 128;
|
|
7207
|
+
job.flags |= 2;
|
|
7208
|
+
} else {
|
|
7209
|
+
effect.flags &= -129;
|
|
7210
|
+
job.flags &= -3;
|
|
7211
|
+
}
|
|
7026
7212
|
}
|
|
7027
7213
|
}
|
|
7028
7214
|
function needTransition(parentSuspense, transition) {
|
|
@@ -7061,8 +7247,10 @@ function traverseStaticChildren(n1, n2, shallow = false) {
|
|
|
7061
7247
|
}
|
|
7062
7248
|
function locateNonHydratedAsyncRoot(instance) {
|
|
7063
7249
|
const subComponent = instance.subTree && instance.subTree.component;
|
|
7064
|
-
if (subComponent)
|
|
7065
|
-
|
|
7250
|
+
if (subComponent) {
|
|
7251
|
+
if (subComponent.asyncDep && !subComponent.asyncResolved) return subComponent;
|
|
7252
|
+
else return locateNonHydratedAsyncRoot(subComponent);
|
|
7253
|
+
}
|
|
7066
7254
|
}
|
|
7067
7255
|
function invalidateMount(hooks) {
|
|
7068
7256
|
if (hooks) for (let i = 0; i < hooks.length; i++) hooks[i].flags |= 4;
|
|
@@ -7081,13 +7269,15 @@ function performTransitionEnter(el, transition, insert, parentSuspense, force =
|
|
|
7081
7269
|
function performTransitionLeave(el, transition, remove, isElement = true, force = false) {
|
|
7082
7270
|
const performRemove = () => {
|
|
7083
7271
|
remove();
|
|
7084
|
-
if (transition && !transition.persisted && transition.afterLeave) transition.afterLeave();
|
|
7272
|
+
if (transition && (force || !transition.persisted) && transition.afterLeave) transition.afterLeave();
|
|
7085
7273
|
};
|
|
7086
7274
|
if (force || isElement && transition && !transition.persisted) {
|
|
7087
7275
|
const { leave, delayLeave } = transition;
|
|
7088
7276
|
const performLeave = () => {
|
|
7277
|
+
const wasLeaving = el._isLeaving || !!el[leaveCbKey];
|
|
7089
7278
|
if (el._isLeaving && force) el[leaveCbKey](true);
|
|
7090
|
-
|
|
7279
|
+
if (force && transition.persisted && !wasLeaving) remove();
|
|
7280
|
+
else leave(el, performRemove);
|
|
7091
7281
|
};
|
|
7092
7282
|
if (delayLeave) delayLeave(el, performRemove, performLeave);
|
|
7093
7283
|
else performLeave();
|
|
@@ -7103,7 +7293,7 @@ function isVaporComponent(type) {
|
|
|
7103
7293
|
/**
|
|
7104
7294
|
* shared between vdom and vapor
|
|
7105
7295
|
*/
|
|
7106
|
-
function getInheritedScopeIds(vnode, parentComponent) {
|
|
7296
|
+
function getInheritedScopeIds(vnode, parentComponent, includeVaporRootIds = true) {
|
|
7107
7297
|
const inheritedScopeIds = [];
|
|
7108
7298
|
let currentParent = parentComponent;
|
|
7109
7299
|
let currentVNode = vnode;
|
|
@@ -7118,6 +7308,8 @@ function getInheritedScopeIds(vnode, parentComponent) {
|
|
|
7118
7308
|
currentParent = currentParent.parent;
|
|
7119
7309
|
} else break;
|
|
7120
7310
|
}
|
|
7311
|
+
const vaporScopeIds = includeVaporRootIds && currentVNode.vaporScopeIds;
|
|
7312
|
+
if (vaporScopeIds) inheritedScopeIds.push(...vaporScopeIds);
|
|
7121
7313
|
return inheritedScopeIds;
|
|
7122
7314
|
}
|
|
7123
7315
|
function resolveAsyncComponentPlaceholder(anchorVnode) {
|
|
@@ -7136,7 +7328,7 @@ const Suspense = {
|
|
|
7136
7328
|
process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals) {
|
|
7137
7329
|
if (n1 == null) mountSuspense(n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals);
|
|
7138
7330
|
else {
|
|
7139
|
-
if (parentSuspense && parentSuspense.deps > 0 && !n1.suspense.isInFallback) {
|
|
7331
|
+
if (parentSuspense && parentSuspense.deps > 0 && !n1.suspense.isInFallback && !parentSuspense.isHydrating) {
|
|
7140
7332
|
n2.suspense = n1.suspense;
|
|
7141
7333
|
n2.suspense.vnode = n2;
|
|
7142
7334
|
n2.el = n1.el;
|
|
@@ -7174,10 +7366,12 @@ function patchSuspense(n1, n2, container, anchor, parentComponent, namespace, sl
|
|
|
7174
7366
|
if (pendingBranch) {
|
|
7175
7367
|
suspense.pendingBranch = newBranch;
|
|
7176
7368
|
if (isSameVNodeType(pendingBranch, newBranch)) {
|
|
7177
|
-
|
|
7369
|
+
suspense.deps++;
|
|
7370
|
+
patch(pendingBranch, newBranch, isHydrating ? container : suspense.hiddenContainer, null, parentComponent, suspense, namespace, slotScopeIds, optimized);
|
|
7371
|
+
suspense.deps--;
|
|
7178
7372
|
if (suspense.deps <= 0) suspense.resolve();
|
|
7179
7373
|
else if (isInFallback) {
|
|
7180
|
-
if (!isHydrating) {
|
|
7374
|
+
if (!isHydrating && !suspense.isFallbackMountPending) {
|
|
7181
7375
|
patch(activeBranch, newFallback, container, anchor, parentComponent, null, namespace, slotScopeIds, optimized);
|
|
7182
7376
|
setActiveBranch(suspense, newFallback);
|
|
7183
7377
|
}
|
|
@@ -7189,12 +7383,16 @@ function patchSuspense(n1, n2, container, anchor, parentComponent, namespace, sl
|
|
|
7189
7383
|
suspense.activeBranch = pendingBranch;
|
|
7190
7384
|
} else unmount(pendingBranch, parentComponent, suspense);
|
|
7191
7385
|
suspense.deps = 0;
|
|
7386
|
+
for (let i = 0; i < suspense.effects.length; i++) {
|
|
7387
|
+
const effect = suspense.effects[i];
|
|
7388
|
+
if (effect.flags & 8) queuePostFlushCb(effect);
|
|
7389
|
+
}
|
|
7192
7390
|
suspense.effects.length = 0;
|
|
7193
7391
|
suspense.hiddenContainer = createElement("div");
|
|
7194
7392
|
if (isInFallback) {
|
|
7195
7393
|
patch(null, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, namespace, slotScopeIds, optimized);
|
|
7196
7394
|
if (suspense.deps <= 0) suspense.resolve();
|
|
7197
|
-
else {
|
|
7395
|
+
else if (!suspense.isFallbackMountPending) {
|
|
7198
7396
|
patch(activeBranch, newFallback, container, anchor, parentComponent, null, namespace, slotScopeIds, optimized);
|
|
7199
7397
|
setActiveBranch(suspense, newFallback);
|
|
7200
7398
|
}
|
|
@@ -7287,7 +7485,7 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
|
|
|
7287
7485
|
let hasUnresolvedAncestor = false;
|
|
7288
7486
|
while (parent) {
|
|
7289
7487
|
if (parent.pendingBranch) {
|
|
7290
|
-
parent.effects.push(
|
|
7488
|
+
for (let i = 0; i < effects.length; i++) parent.effects.push(effects[i]);
|
|
7291
7489
|
hasUnresolvedAncestor = true;
|
|
7292
7490
|
break;
|
|
7293
7491
|
}
|
|
@@ -7297,6 +7495,7 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
|
|
|
7297
7495
|
suspense.effects = [];
|
|
7298
7496
|
if (isSuspensible) {
|
|
7299
7497
|
if (parentSuspense && parentSuspense.pendingBranch && parentSuspenseId === parentSuspense.pendingId) {
|
|
7498
|
+
parentSuspenseId = void 0;
|
|
7300
7499
|
parentSuspense.deps--;
|
|
7301
7500
|
if (parentSuspense.deps === 0 && !sync) parentSuspense.resolve();
|
|
7302
7501
|
}
|
|
@@ -7311,8 +7510,9 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
|
|
|
7311
7510
|
const mountFallback = () => {
|
|
7312
7511
|
suspense.isFallbackMountPending = false;
|
|
7313
7512
|
if (!suspense.isInFallback) return;
|
|
7314
|
-
|
|
7315
|
-
|
|
7513
|
+
const latestFallback = suspense.vnode.ssFallback;
|
|
7514
|
+
patch(null, latestFallback, container, anchor, parentComponent, null, namespace, slotScopeIds, optimized);
|
|
7515
|
+
setActiveBranch(suspense, latestFallback);
|
|
7316
7516
|
};
|
|
7317
7517
|
const delayEnter = fallbackVNode.transition && fallbackVNode.transition.mode === "out-in";
|
|
7318
7518
|
if (delayEnter) {
|
|
@@ -7333,11 +7533,16 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
|
|
|
7333
7533
|
registerDep(instance, onResolve) {
|
|
7334
7534
|
const isInPendingSuspense = !!suspense.pendingBranch;
|
|
7335
7535
|
if (isInPendingSuspense) suspense.deps++;
|
|
7536
|
+
const hydratedEl = instance.vnode && instance.vnode.el;
|
|
7336
7537
|
instance.asyncDep.catch((err) => {
|
|
7337
7538
|
handleError(err, instance, 0);
|
|
7338
7539
|
}).then((asyncSetupResult) => {
|
|
7339
7540
|
if (instance.isUnmounted || suspense.isUnmounted || suspense.pendingId !== instance.suspenseId) return;
|
|
7340
7541
|
setCurrentInstance(null, void 0);
|
|
7542
|
+
if (hydratedEl && !instance.scope.active) {
|
|
7543
|
+
if (isInPendingSuspense && --suspense.deps === 0) suspense.resolve();
|
|
7544
|
+
return;
|
|
7545
|
+
}
|
|
7341
7546
|
instance.asyncResolved = true;
|
|
7342
7547
|
onResolve(asyncSetupResult);
|
|
7343
7548
|
if (isInPendingSuspense && --suspense.deps === 0) suspense.resolve();
|
|
@@ -7384,9 +7589,10 @@ function normalizeSuspenseSlot(s) {
|
|
|
7384
7589
|
return s;
|
|
7385
7590
|
}
|
|
7386
7591
|
function queueEffectWithSuspense(fn, id, suspense) {
|
|
7387
|
-
if (suspense && suspense.pendingBranch)
|
|
7388
|
-
|
|
7389
|
-
|
|
7592
|
+
if (suspense && suspense.pendingBranch) {
|
|
7593
|
+
if (isArray(fn)) suspense.effects.push(...fn);
|
|
7594
|
+
else suspense.effects.push(fn);
|
|
7595
|
+
} else queuePostFlushCb(fn, id);
|
|
7390
7596
|
}
|
|
7391
7597
|
function setActiveBranch(suspense, branch) {
|
|
7392
7598
|
suspense.activeBranch = branch;
|
|
@@ -7589,8 +7795,10 @@ function _createVNode(type, props = null, children = null, patchFlag = 0, dynami
|
|
|
7589
7795
|
if (isVNode(type)) {
|
|
7590
7796
|
const cloned = cloneVNode(type, props, true);
|
|
7591
7797
|
if (children) normalizeChildren(cloned, children);
|
|
7592
|
-
if (isBlockTreeEnabled > 0 && !isBlockNode && currentBlock)
|
|
7593
|
-
|
|
7798
|
+
if (isBlockTreeEnabled > 0 && !isBlockNode && currentBlock) {
|
|
7799
|
+
if (cloned.shapeFlag & 6) currentBlock[currentBlock.indexOf(type)] = cloned;
|
|
7800
|
+
else currentBlock.push(cloned);
|
|
7801
|
+
}
|
|
7594
7802
|
cloned.patchFlag = -2;
|
|
7595
7803
|
return cloned;
|
|
7596
7804
|
}
|
|
@@ -7647,7 +7855,10 @@ function cloneVNode(vnode, extraProps, mergeRef = false, cloneTransition = false
|
|
|
7647
7855
|
ce: vnode.ce,
|
|
7648
7856
|
vi: vnode.vi,
|
|
7649
7857
|
vs: cloneVaporSlotMeta(vnode),
|
|
7650
|
-
vb: vnode.vb
|
|
7858
|
+
vb: vnode.vb,
|
|
7859
|
+
ibu: vnode.ibu,
|
|
7860
|
+
iu: vnode.iu,
|
|
7861
|
+
cacheIndex: vnode.cacheIndex
|
|
7651
7862
|
};
|
|
7652
7863
|
if (transition && cloneTransition) setTransitionHooks(cloned, transition.clone(cloned));
|
|
7653
7864
|
defineLegacyVNodeProperties(cloned);
|
|
@@ -7658,8 +7869,7 @@ function cloneVaporSlotMeta(vnode) {
|
|
|
7658
7869
|
if (!vaporSlot) return vaporSlot;
|
|
7659
7870
|
const cloned = {
|
|
7660
7871
|
slot: vaporSlot.slot,
|
|
7661
|
-
|
|
7662
|
-
outletFallback: vaporSlot.outletFallback
|
|
7872
|
+
outlets: vaporSlot.outlets
|
|
7663
7873
|
};
|
|
7664
7874
|
if (vnode.el) {
|
|
7665
7875
|
cloned.state = vaporSlot.state;
|
|
@@ -7702,25 +7912,28 @@ function normalizeChildren(vnode, children) {
|
|
|
7702
7912
|
const { shapeFlag } = vnode;
|
|
7703
7913
|
if (children == null) children = null;
|
|
7704
7914
|
else if (isArray(children)) type = 16;
|
|
7705
|
-
else if (typeof children === "object")
|
|
7706
|
-
|
|
7707
|
-
|
|
7708
|
-
|
|
7709
|
-
|
|
7710
|
-
|
|
7711
|
-
|
|
7712
|
-
|
|
7713
|
-
|
|
7714
|
-
|
|
7715
|
-
|
|
7716
|
-
|
|
7717
|
-
|
|
7718
|
-
|
|
7719
|
-
|
|
7720
|
-
|
|
7915
|
+
else if (typeof children === "object") {
|
|
7916
|
+
if (shapeFlag & 65) {
|
|
7917
|
+
const slot = children.default;
|
|
7918
|
+
if (slot) {
|
|
7919
|
+
slot._c && (slot._d = false);
|
|
7920
|
+
normalizeChildren(vnode, slot());
|
|
7921
|
+
slot._c && (slot._d = true);
|
|
7922
|
+
}
|
|
7923
|
+
return;
|
|
7924
|
+
} else {
|
|
7925
|
+
type = 32;
|
|
7926
|
+
const slotFlag = children._;
|
|
7927
|
+
if (!slotFlag && !isInternalObject(children)) children._ctx = currentRenderingInstance;
|
|
7928
|
+
else if (slotFlag === 3 && currentRenderingInstance) {
|
|
7929
|
+
if (currentRenderingInstance.slots._ === 1) children._ = 1;
|
|
7930
|
+
else {
|
|
7931
|
+
children._ = 2;
|
|
7932
|
+
vnode.patchFlag |= 1024;
|
|
7933
|
+
}
|
|
7934
|
+
}
|
|
7721
7935
|
}
|
|
7722
|
-
}
|
|
7723
|
-
else if (isFunction(children)) {
|
|
7936
|
+
} else if (isFunction(children)) {
|
|
7724
7937
|
if (shapeFlag & 65) {
|
|
7725
7938
|
normalizeChildren(vnode, { default: children });
|
|
7726
7939
|
return;
|
|
@@ -7797,6 +8010,16 @@ const setCurrentInstance = (instance, scope = instance !== null ? instance.scope
|
|
|
7797
8010
|
simpleSetCurrentInstance(instance);
|
|
7798
8011
|
}
|
|
7799
8012
|
};
|
|
8013
|
+
/**
|
|
8014
|
+
* Restores a snapshot returned by {@link setCurrentInstance}. Unlike calling
|
|
8015
|
+
* `setCurrentInstance(...prev)`, an `undefined` saved scope is restored
|
|
8016
|
+
* verbatim instead of re-triggering the `instance.scope` default.
|
|
8017
|
+
* @internal
|
|
8018
|
+
*/
|
|
8019
|
+
const restoreCurrentInstance = (prev) => {
|
|
8020
|
+
setCurrentScope(prev[1]);
|
|
8021
|
+
simpleSetCurrentInstance(prev[0]);
|
|
8022
|
+
};
|
|
7800
8023
|
const internalOptions = [
|
|
7801
8024
|
"ce",
|
|
7802
8025
|
"type",
|
|
@@ -7822,7 +8045,7 @@ const useInstanceOption = (key, silent = false) => {
|
|
|
7822
8045
|
};
|
|
7823
8046
|
//#endregion
|
|
7824
8047
|
//#region packages/runtime-core/src/component.ts
|
|
7825
|
-
const emptyAppContext =
|
|
8048
|
+
const emptyAppContext = /*@__PURE__*/ createAppContext();
|
|
7826
8049
|
let uid = 0;
|
|
7827
8050
|
function createComponentInstance(vnode, parent, suspense) {
|
|
7828
8051
|
const type = vnode.type;
|
|
@@ -7925,7 +8148,7 @@ function setupStatefulComponent(instance, isSSR) {
|
|
|
7925
8148
|
const setupResult = callWithErrorHandling(setup, instance, 0, [instance.props, setupContext]);
|
|
7926
8149
|
const isAsyncSetup = isPromise(setupResult);
|
|
7927
8150
|
setActiveSub(prevSub);
|
|
7928
|
-
|
|
8151
|
+
restoreCurrentInstance(prev);
|
|
7929
8152
|
if ((isAsyncSetup || instance.sp) && !isAsyncWrapper(instance)) markAsyncBoundary(instance);
|
|
7930
8153
|
if (isAsyncSetup) {
|
|
7931
8154
|
const unsetCurrentInstance = () => {
|
|
@@ -7933,7 +8156,12 @@ function setupStatefulComponent(instance, isSSR) {
|
|
|
7933
8156
|
};
|
|
7934
8157
|
setupResult.then(unsetCurrentInstance, unsetCurrentInstance);
|
|
7935
8158
|
if (isSSR) return setupResult.then((resolvedResult) => {
|
|
7936
|
-
|
|
8159
|
+
setInSSRSetupState(true);
|
|
8160
|
+
try {
|
|
8161
|
+
handleSetupResult(instance, resolvedResult, isSSR);
|
|
8162
|
+
} finally {
|
|
8163
|
+
setInSSRSetupState(false);
|
|
8164
|
+
}
|
|
7937
8165
|
}).catch((e) => {
|
|
7938
8166
|
handleError(e, instance, 0);
|
|
7939
8167
|
});
|
|
@@ -7942,9 +8170,10 @@ function setupStatefulComponent(instance, isSSR) {
|
|
|
7942
8170
|
} else finishComponentSetup(instance, isSSR);
|
|
7943
8171
|
}
|
|
7944
8172
|
function handleSetupResult(instance, setupResult, isSSR) {
|
|
7945
|
-
if (isFunction(setupResult))
|
|
7946
|
-
|
|
7947
|
-
|
|
8173
|
+
if (isFunction(setupResult)) {
|
|
8174
|
+
if (instance.type.__ssrInlineRender) instance.ssrRender = setupResult;
|
|
8175
|
+
else instance.render = setupResult;
|
|
8176
|
+
} else if (isObject(setupResult)) instance.setupState = proxyRefs(setupResult);
|
|
7948
8177
|
finishComponentSetup(instance, isSSR);
|
|
7949
8178
|
}
|
|
7950
8179
|
let compile$1;
|
|
@@ -7988,7 +8217,7 @@ function finishComponentSetup(instance, isSSR, skipOptions) {
|
|
|
7988
8217
|
applyOptions(instance);
|
|
7989
8218
|
} finally {
|
|
7990
8219
|
setActiveSub(prevSub);
|
|
7991
|
-
|
|
8220
|
+
restoreCurrentInstance(prevInstance);
|
|
7992
8221
|
}
|
|
7993
8222
|
}
|
|
7994
8223
|
}
|
|
@@ -8014,14 +8243,13 @@ function getComponentPublicInstance(instance) {
|
|
|
8014
8243
|
if (instance.exposed) return instance.exposeProxy || (instance.exposeProxy = new Proxy(proxyRefs(markRaw(instance.exposed)), {
|
|
8015
8244
|
get(target, key) {
|
|
8016
8245
|
if (key in target) return target[key];
|
|
8017
|
-
else {
|
|
8246
|
+
else if (!instance.vapor) {
|
|
8018
8247
|
const publicPropertiesMap = getPublicPropertiesMap();
|
|
8019
8248
|
if (key in publicPropertiesMap) return publicPropertiesMap[key](instance);
|
|
8020
8249
|
}
|
|
8021
8250
|
},
|
|
8022
8251
|
has(target, key) {
|
|
8023
|
-
|
|
8024
|
-
return key in target || key in publicPropertiesMap;
|
|
8252
|
+
return key in target || !instance.vapor && key in getPublicPropertiesMap();
|
|
8025
8253
|
}
|
|
8026
8254
|
}));
|
|
8027
8255
|
else return instance.proxy;
|
|
@@ -8043,11 +8271,12 @@ function h(type, propsOrChildren, children) {
|
|
|
8043
8271
|
try {
|
|
8044
8272
|
setBlockTracking(-1);
|
|
8045
8273
|
const l = arguments.length;
|
|
8046
|
-
if (l === 2)
|
|
8047
|
-
if (
|
|
8048
|
-
|
|
8049
|
-
|
|
8050
|
-
|
|
8274
|
+
if (l === 2) {
|
|
8275
|
+
if (isObject(propsOrChildren) && !isArray(propsOrChildren)) {
|
|
8276
|
+
if (isVNode(propsOrChildren)) return createVNode(type, null, [propsOrChildren]);
|
|
8277
|
+
return createVNode(type, propsOrChildren);
|
|
8278
|
+
} else return createVNode(type, null, propsOrChildren);
|
|
8279
|
+
} else {
|
|
8051
8280
|
if (l > 3) children = Array.prototype.slice.call(arguments, 2);
|
|
8052
8281
|
else if (l === 3 && isVNode(children)) children = [children];
|
|
8053
8282
|
return createVNode(type, propsOrChildren, children);
|
|
@@ -8058,15 +8287,7 @@ function h(type, propsOrChildren, children) {
|
|
|
8058
8287
|
}
|
|
8059
8288
|
//#endregion
|
|
8060
8289
|
//#region packages/runtime-core/src/customFormatter.ts
|
|
8061
|
-
function initCustomFormatter() {
|
|
8062
|
-
return;
|
|
8063
|
-
function isKeyOfType(Comp, key, type) {
|
|
8064
|
-
const opts = Comp[type];
|
|
8065
|
-
if (isArray(opts) && opts.includes(key) || isObject(opts) && key in opts) return true;
|
|
8066
|
-
if (Comp.extends && isKeyOfType(Comp.extends, key, type)) return true;
|
|
8067
|
-
if (Comp.mixins && Comp.mixins.some((m) => isKeyOfType(m, key, type))) return true;
|
|
8068
|
-
}
|
|
8069
|
-
}
|
|
8290
|
+
function initCustomFormatter() {}
|
|
8070
8291
|
//#endregion
|
|
8071
8292
|
//#region packages/runtime-core/src/helpers/withMemo.ts
|
|
8072
8293
|
function withMemo(memo, render, cache, index) {
|
|
@@ -8086,7 +8307,7 @@ function isMemoSame(cached, memo) {
|
|
|
8086
8307
|
}
|
|
8087
8308
|
//#endregion
|
|
8088
8309
|
//#region packages/runtime-core/src/index.ts
|
|
8089
|
-
const version = "3.6.0-rc.
|
|
8310
|
+
const version = "3.6.0-rc.11";
|
|
8090
8311
|
const warn = NOOP;
|
|
8091
8312
|
/**
|
|
8092
8313
|
* Runtime error messages. Only exposed in dev or esm builds.
|
|
@@ -8108,7 +8329,10 @@ const ssrUtils = {
|
|
|
8108
8329
|
getComponentPublicInstance,
|
|
8109
8330
|
ensureValidVNode,
|
|
8110
8331
|
pushWarningContext,
|
|
8111
|
-
popWarningContext
|
|
8332
|
+
popWarningContext,
|
|
8333
|
+
VaporSlot,
|
|
8334
|
+
rawVaporSlotKey,
|
|
8335
|
+
invokeSlotFallback
|
|
8112
8336
|
};
|
|
8113
8337
|
/**
|
|
8114
8338
|
* @internal only exposed in compat builds
|
|
@@ -8130,13 +8354,13 @@ const DeprecationTypes = DeprecationTypes$1;
|
|
|
8130
8354
|
let policy = void 0;
|
|
8131
8355
|
const tt = typeof window !== "undefined" && window.trustedTypes;
|
|
8132
8356
|
if (tt) try {
|
|
8133
|
-
policy =
|
|
8357
|
+
policy = /*@__PURE__*/ tt.createPolicy("vue", { createHTML: (val) => val });
|
|
8134
8358
|
} catch (e) {}
|
|
8135
8359
|
const unsafeToTrustedHTML = policy ? (val) => policy.createHTML(val) : (val) => val;
|
|
8136
8360
|
const svgNS = "http://www.w3.org/2000/svg";
|
|
8137
8361
|
const mathmlNS = "http://www.w3.org/1998/Math/MathML";
|
|
8138
8362
|
const doc = typeof document !== "undefined" ? document : null;
|
|
8139
|
-
const templateContainer = doc &&
|
|
8363
|
+
const templateContainer = doc && /*@__PURE__*/ doc.createElement("template");
|
|
8140
8364
|
const nodeOps = {
|
|
8141
8365
|
insert: (child, parent, anchor) => {
|
|
8142
8366
|
parent.insertBefore(child, anchor || null);
|
|
@@ -8210,7 +8434,7 @@ const DOMTransitionPropsValidators = {
|
|
|
8210
8434
|
leaveActiveClass: String,
|
|
8211
8435
|
leaveToClass: String
|
|
8212
8436
|
};
|
|
8213
|
-
const TransitionPropsValidators =
|
|
8437
|
+
const TransitionPropsValidators = /*@__PURE__*/ extend({}, BaseTransitionPropsValidators, DOMTransitionPropsValidators);
|
|
8214
8438
|
/**
|
|
8215
8439
|
* Wrap logic that attaches extra properties to Transition in a function
|
|
8216
8440
|
* so that it can be annotated as pure
|
|
@@ -8225,7 +8449,7 @@ const decorate$1 = (t) => {
|
|
|
8225
8449
|
* DOM Transition is a higher-order-component based on the platform-agnostic
|
|
8226
8450
|
* base Transition component, with DOM-specific logic.
|
|
8227
8451
|
*/
|
|
8228
|
-
const Transition =
|
|
8452
|
+
const Transition = /*@__PURE__*/ decorate$1((props, { slots }) => h(BaseTransition, resolveTransitionProps(props), slots));
|
|
8229
8453
|
/**
|
|
8230
8454
|
* #3227 Incoming hooks may be merged into arrays when wrapping Transition
|
|
8231
8455
|
* with custom HOCs.
|
|
@@ -8463,14 +8687,15 @@ const vShow = {
|
|
|
8463
8687
|
},
|
|
8464
8688
|
updated(el, { value, oldValue }, { transition }) {
|
|
8465
8689
|
if (!value === !oldValue) return;
|
|
8466
|
-
if (transition)
|
|
8467
|
-
|
|
8468
|
-
|
|
8469
|
-
|
|
8470
|
-
|
|
8471
|
-
|
|
8472
|
-
|
|
8473
|
-
|
|
8690
|
+
if (transition) {
|
|
8691
|
+
if (value) {
|
|
8692
|
+
transition.beforeEnter(el);
|
|
8693
|
+
setDisplay(el, true);
|
|
8694
|
+
transition.enter(el);
|
|
8695
|
+
} else transition.leave(el, () => {
|
|
8696
|
+
setDisplay(el, false);
|
|
8697
|
+
});
|
|
8698
|
+
} else setDisplay(el, value);
|
|
8474
8699
|
},
|
|
8475
8700
|
beforeUnmount(el, { value }) {
|
|
8476
8701
|
setDisplay(el, value);
|
|
@@ -8501,11 +8726,13 @@ function patchStyle(el, prev, next) {
|
|
|
8501
8726
|
const isCssString = isString(next);
|
|
8502
8727
|
let hasControlledDisplay = false;
|
|
8503
8728
|
if (next && !isCssString) {
|
|
8504
|
-
if (prev)
|
|
8505
|
-
|
|
8506
|
-
|
|
8507
|
-
|
|
8508
|
-
|
|
8729
|
+
if (prev) {
|
|
8730
|
+
if (!isString(prev)) {
|
|
8731
|
+
for (const key in prev) if (next[key] == null) setStyle(style, key, "");
|
|
8732
|
+
} else for (const prevStyle of prev.split(";")) {
|
|
8733
|
+
const key = prevStyle.slice(0, prevStyle.indexOf(":")).trim();
|
|
8734
|
+
if (next[key] == null) setStyle(style, key, "");
|
|
8735
|
+
}
|
|
8509
8736
|
}
|
|
8510
8737
|
for (const key in next) {
|
|
8511
8738
|
if (key === "display") hasControlledDisplay = true;
|
|
@@ -8521,7 +8748,11 @@ function patchStyle(el, prev, next) {
|
|
|
8521
8748
|
style.cssText = next;
|
|
8522
8749
|
hasControlledDisplay = displayRE.test(next);
|
|
8523
8750
|
}
|
|
8524
|
-
} else if (prev)
|
|
8751
|
+
} else if (prev) {
|
|
8752
|
+
const cssVarText = style[CSS_VAR_TEXT];
|
|
8753
|
+
if (cssVarText) style.cssText = cssVarText;
|
|
8754
|
+
else el.removeAttribute("style");
|
|
8755
|
+
}
|
|
8525
8756
|
if (vShowOriginalDisplay in el) {
|
|
8526
8757
|
el[vShowOriginalDisplay] = hasControlledDisplay ? style.display : "";
|
|
8527
8758
|
if (el[vShowHidden]) style.display = "none";
|
|
@@ -8532,8 +8763,10 @@ function setStyle(style, name, rawVal) {
|
|
|
8532
8763
|
if (isArray(rawVal)) rawVal.forEach((v) => setStyle(style, name, v));
|
|
8533
8764
|
else {
|
|
8534
8765
|
const val = rawVal == null ? "" : String(rawVal);
|
|
8535
|
-
if (name.startsWith("--"))
|
|
8536
|
-
|
|
8766
|
+
if (name.startsWith("--")) {
|
|
8767
|
+
if (importantRE.test(val)) style.setProperty(name, val.replace(importantRE, ""), "important");
|
|
8768
|
+
else style.setProperty(name, val);
|
|
8769
|
+
} else {
|
|
8537
8770
|
const prefixed = autoPrefix(style, name);
|
|
8538
8771
|
if (importantRE.test(val)) style.setProperty(hyphenate(prefixed), val.replace(importantRE, ""), "important");
|
|
8539
8772
|
else style[prefixed] = val;
|
|
@@ -8570,15 +8803,16 @@ function shouldPreserveTextareaResizeStyle(el, key, prev, next) {
|
|
|
8570
8803
|
//#region packages/runtime-dom/src/modules/attrs.ts
|
|
8571
8804
|
const xlinkNS = "http://www.w3.org/1999/xlink";
|
|
8572
8805
|
function patchAttr(el, key, value, isSVG, instance, isBoolean = isSpecialBooleanAttr(key)) {
|
|
8573
|
-
if (isSVG && key.startsWith("xlink:"))
|
|
8574
|
-
|
|
8575
|
-
|
|
8806
|
+
if (isSVG && key.startsWith("xlink:")) {
|
|
8807
|
+
if (value == null) el.removeAttributeNS(xlinkNS, key.slice(6, key.length));
|
|
8808
|
+
else el.setAttributeNS(xlinkNS, key, value);
|
|
8809
|
+
} else {
|
|
8576
8810
|
if (compatCoerceAttr(el, key, value, instance)) return;
|
|
8577
8811
|
if (value == null || isBoolean && !includeBooleanAttr(value)) el.removeAttribute(key);
|
|
8578
8812
|
else el.setAttribute(key, isBoolean ? "" : isSymbol(value) ? String(value) : value);
|
|
8579
8813
|
}
|
|
8580
8814
|
}
|
|
8581
|
-
const isEnumeratedAttr =
|
|
8815
|
+
const isEnumeratedAttr = /*@__PURE__*/ makeMap("contenteditable,draggable,spellcheck");
|
|
8582
8816
|
function compatCoerceAttr(el, key, value, instance = null) {
|
|
8583
8817
|
if (isEnumeratedAttr(key)) {
|
|
8584
8818
|
const v2CoercedValue = value === void 0 ? null : value === null || value === false || value === "false" ? "false" : "true";
|
|
@@ -8667,7 +8901,7 @@ function parseEventName(name) {
|
|
|
8667
8901
|
return [name[2] === ":" ? name.slice(3) : hyphenate(name.slice(2)), options];
|
|
8668
8902
|
}
|
|
8669
8903
|
let cachedNow = 0;
|
|
8670
|
-
const p =
|
|
8904
|
+
const p = /*@__PURE__*/ Promise.resolve();
|
|
8671
8905
|
const getNow = () => cachedNow || (p.then(() => cachedNow = 0), cachedNow = Date.now());
|
|
8672
8906
|
function createInvoker(initialValue, instance) {
|
|
8673
8907
|
const invoker = (e) => {
|
|
@@ -8730,7 +8964,7 @@ function shouldSetAsPropForVueCE(el, key) {
|
|
|
8730
8964
|
//#endregion
|
|
8731
8965
|
//#region packages/runtime-dom/src/apiCustomElement.ts
|
|
8732
8966
|
const REMOVAL = {};
|
|
8733
|
-
|
|
8967
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
8734
8968
|
function defineCustomElement(options, extraOptions, _createApp) {
|
|
8735
8969
|
let Comp = /* @__PURE__ */ defineComponent(options, extraOptions);
|
|
8736
8970
|
if (isPlainObject(Comp)) Comp = extend({}, Comp, extraOptions);
|
|
@@ -8779,12 +9013,14 @@ var VueElementBase = class VueElementBase extends BaseClass {
|
|
|
8779
9013
|
this._parent = parent;
|
|
8780
9014
|
break;
|
|
8781
9015
|
}
|
|
8782
|
-
if (!this._instance)
|
|
8783
|
-
|
|
8784
|
-
this._pendingResolve =
|
|
8785
|
-
|
|
8786
|
-
|
|
8787
|
-
|
|
9016
|
+
if (!this._instance) {
|
|
9017
|
+
if (this._resolved) this._mountComponent(this._def);
|
|
9018
|
+
else if (parent && parent._pendingResolve) this._pendingResolve = parent._pendingResolve.then(() => {
|
|
9019
|
+
this._pendingResolve = void 0;
|
|
9020
|
+
if (this.isConnected) return this._resolveDef();
|
|
9021
|
+
});
|
|
9022
|
+
else this._resolveDef();
|
|
9023
|
+
}
|
|
8788
9024
|
}
|
|
8789
9025
|
disconnectedCallback() {
|
|
8790
9026
|
this._connected = false;
|
|
@@ -8818,7 +9054,7 @@ var VueElementBase = class VueElementBase extends BaseClass {
|
|
|
8818
9054
|
* resolve inner component definition (handle possible async component)
|
|
8819
9055
|
*/
|
|
8820
9056
|
_resolveDef() {
|
|
8821
|
-
if (this._pendingResolve) return;
|
|
9057
|
+
if (this._pendingResolve) return this._pendingResolve;
|
|
8822
9058
|
for (let i = 0; i < this.attributes.length; i++) this._setAttr(this.attributes[i].name);
|
|
8823
9059
|
this._ob = new MutationObserver(this._processMutations.bind(this));
|
|
8824
9060
|
this._ob.observe(this, { attributes: true });
|
|
@@ -8847,6 +9083,7 @@ var VueElementBase = class VueElementBase extends BaseClass {
|
|
|
8847
9083
|
this._def = def;
|
|
8848
9084
|
resolve(def);
|
|
8849
9085
|
});
|
|
9086
|
+
return this._pendingResolve;
|
|
8850
9087
|
} else resolve(this._def);
|
|
8851
9088
|
}
|
|
8852
9089
|
_mountComponent(def) {
|
|
@@ -8976,13 +9213,11 @@ var VueElementBase = class VueElementBase extends BaseClass {
|
|
|
8976
9213
|
_renderSlots() {
|
|
8977
9214
|
const outlets = this._getSlots();
|
|
8978
9215
|
const scopeId = this._instance.type.__scopeId;
|
|
8979
|
-
const slotReplacements = /* @__PURE__ */ new Map();
|
|
8980
9216
|
for (let i = 0; i < outlets.length; i++) {
|
|
8981
9217
|
const o = outlets[i];
|
|
8982
9218
|
const slotName = o.getAttribute("name") || "default";
|
|
8983
9219
|
const content = this._slots[slotName];
|
|
8984
9220
|
const parent = o.parentNode;
|
|
8985
|
-
const replacementNodes = [];
|
|
8986
9221
|
if (content) for (const n of content) {
|
|
8987
9222
|
if (scopeId && n.nodeType === 1) {
|
|
8988
9223
|
const id = scopeId + "-s";
|
|
@@ -8992,20 +9227,10 @@ var VueElementBase = class VueElementBase extends BaseClass {
|
|
|
8992
9227
|
while (child = walker.nextNode()) child.setAttribute(id, "");
|
|
8993
9228
|
}
|
|
8994
9229
|
parent.insertBefore(n, o);
|
|
8995
|
-
replacementNodes.push(n);
|
|
8996
|
-
}
|
|
8997
|
-
else while (o.firstChild) {
|
|
8998
|
-
const child = o.firstChild;
|
|
8999
|
-
parent.insertBefore(child, o);
|
|
9000
|
-
replacementNodes.push(child);
|
|
9001
9230
|
}
|
|
9231
|
+
else while (o.firstChild) parent.insertBefore(o.firstChild, o);
|
|
9002
9232
|
parent.removeChild(o);
|
|
9003
|
-
slotReplacements.set(o, {
|
|
9004
|
-
nodes: replacementNodes,
|
|
9005
|
-
usedFallback: !content
|
|
9006
|
-
});
|
|
9007
9233
|
}
|
|
9008
|
-
this._updateSlotNodes(slotReplacements);
|
|
9009
9234
|
}
|
|
9010
9235
|
/**
|
|
9011
9236
|
* @internal
|
|
@@ -9044,7 +9269,7 @@ var VueElementBase = class VueElementBase extends BaseClass {
|
|
|
9044
9269
|
* @internal
|
|
9045
9270
|
*/
|
|
9046
9271
|
_hasShadowRoot() {
|
|
9047
|
-
return this.
|
|
9272
|
+
return this._root !== this;
|
|
9048
9273
|
}
|
|
9049
9274
|
/**
|
|
9050
9275
|
* @internal
|
|
@@ -9077,10 +9302,6 @@ var VueElement = class extends VueElementBase {
|
|
|
9077
9302
|
if (this._instance && this._instance.ce) this._instance.ce = void 0;
|
|
9078
9303
|
this._app = this._instance = null;
|
|
9079
9304
|
}
|
|
9080
|
-
/**
|
|
9081
|
-
* Only called when shadowRoot is false
|
|
9082
|
-
*/
|
|
9083
|
-
_updateSlotNodes(replacements) {}
|
|
9084
9305
|
_createVNode() {
|
|
9085
9306
|
const baseProps = {};
|
|
9086
9307
|
if (!this.shadowRoot) baseProps.onVnodeMounted = baseProps.onVnodeUpdated = this._renderSlots.bind(this);
|
|
@@ -9136,7 +9357,7 @@ const decorate = (t) => {
|
|
|
9136
9357
|
};
|
|
9137
9358
|
const TransitionGroup = /* @__PURE__ */ decorate({
|
|
9138
9359
|
name: "TransitionGroup",
|
|
9139
|
-
props:
|
|
9360
|
+
props: /*@__PURE__*/ extend({}, TransitionPropsValidators, {
|
|
9140
9361
|
tag: String,
|
|
9141
9362
|
moveClass: String
|
|
9142
9363
|
}),
|
|
@@ -9267,13 +9488,22 @@ function onCompositionEnd(e) {
|
|
|
9267
9488
|
}
|
|
9268
9489
|
}
|
|
9269
9490
|
const assignKey = Symbol("_assign");
|
|
9491
|
+
const initialValueKey = Symbol("_initialValue");
|
|
9270
9492
|
const vModelText = {
|
|
9271
9493
|
created(el, { modifiers: { lazy, trim, number } }, vnode) {
|
|
9494
|
+
if (el.parentNode) {
|
|
9495
|
+
if (el.type === "text") el[initialValueKey] = el.defaultValue.replace(/[\r\n]/g, "");
|
|
9496
|
+
else if (el.type === "textarea") el[initialValueKey] = el.defaultValue.replace(/\r\n?/g, "\n");
|
|
9497
|
+
}
|
|
9272
9498
|
el[assignKey] = getModelAssigner(vnode);
|
|
9273
9499
|
vModelTextInit(el, trim, number || !!(vnode.props && vnode.props.type === "number"), lazy);
|
|
9274
9500
|
},
|
|
9275
|
-
mounted(el, { value }) {
|
|
9276
|
-
|
|
9501
|
+
mounted(el, { value, modifiers: { trim, number } }) {
|
|
9502
|
+
const newValue = value == null ? "" : value;
|
|
9503
|
+
const initialValue = el[initialValueKey];
|
|
9504
|
+
delete el[initialValueKey];
|
|
9505
|
+
if (initialValue !== void 0 && (el.type === "text" || el.type === "textarea") && el.value !== initialValue) el[assignKey](castValue(el.value, trim, number));
|
|
9506
|
+
else el.value = newValue;
|
|
9277
9507
|
},
|
|
9278
9508
|
beforeUpdate(el, { value, oldValue, modifiers: { lazy, trim, number } }, vnode) {
|
|
9279
9509
|
el[assignKey] = getModelAssigner(vnode);
|
|
@@ -9408,37 +9638,58 @@ const vModelSelectInit = (el, value, number, set) => {
|
|
|
9408
9638
|
el._modelValue = value;
|
|
9409
9639
|
addEventListener(el, "change", () => {
|
|
9410
9640
|
const selectedVal = Array.prototype.filter.call(el.options, (o) => o.selected).map((o) => number ? looseToNumber(getValue(o)) : getValue(o));
|
|
9411
|
-
|
|
9412
|
-
el.
|
|
9413
|
-
|
|
9414
|
-
|
|
9415
|
-
|
|
9641
|
+
const multiple = el.multiple;
|
|
9642
|
+
const assignedValue = multiple ? isSet(el._modelValue) ? new Set(selectedVal) : selectedVal : selectedVal[0];
|
|
9643
|
+
const pending = el._pendingValue = [multiple, multiple ? isArray(assignedValue) ? selectedVal.slice() : selectedVal : assignedValue];
|
|
9644
|
+
try {
|
|
9645
|
+
(set || el[assignKey])(assignedValue);
|
|
9646
|
+
} finally {
|
|
9647
|
+
nextTick(() => {
|
|
9648
|
+
if (el._pendingValue === pending) el._pendingValue = void 0;
|
|
9649
|
+
});
|
|
9650
|
+
}
|
|
9416
9651
|
});
|
|
9417
9652
|
};
|
|
9653
|
+
function isSameSelectValue(value, assignedValue, multiple) {
|
|
9654
|
+
if (!multiple) return looseEqual(value, assignedValue);
|
|
9655
|
+
if (isArray(value)) return looseEqual(value, assignedValue);
|
|
9656
|
+
if (isSet(value)) {
|
|
9657
|
+
if (value.size !== assignedValue.length) return false;
|
|
9658
|
+
for (const item of assignedValue) if (!value.has(item)) return false;
|
|
9659
|
+
return true;
|
|
9660
|
+
}
|
|
9661
|
+
return false;
|
|
9662
|
+
}
|
|
9418
9663
|
/**
|
|
9419
9664
|
* @internal
|
|
9420
9665
|
*/
|
|
9421
9666
|
const vModelSetSelected = (el, value) => {
|
|
9422
9667
|
el._modelValue = value;
|
|
9423
|
-
|
|
9668
|
+
const pending = el._pendingValue;
|
|
9669
|
+
el._pendingValue = void 0;
|
|
9670
|
+
if (pending && pending[0] === el.multiple && isSameSelectValue(value, pending[1], pending[0])) return;
|
|
9671
|
+
setSelected(el, value);
|
|
9672
|
+
};
|
|
9673
|
+
function setSelected(el, value) {
|
|
9424
9674
|
const isMultiple = el.multiple;
|
|
9425
9675
|
const isArrayValue = isArray(value);
|
|
9426
9676
|
if (isMultiple && !isArrayValue && !isSet(value)) return;
|
|
9427
9677
|
for (let i = 0, l = el.options.length; i < l; i++) {
|
|
9428
9678
|
const option = el.options[i];
|
|
9429
9679
|
const optionValue = getValue(option);
|
|
9430
|
-
if (isMultiple)
|
|
9431
|
-
|
|
9432
|
-
|
|
9433
|
-
|
|
9434
|
-
|
|
9435
|
-
|
|
9680
|
+
if (isMultiple) {
|
|
9681
|
+
if (isArrayValue) {
|
|
9682
|
+
const optionType = typeof optionValue;
|
|
9683
|
+
if (optionType === "string" || optionType === "number") option.selected = value.some((v) => String(v) === String(optionValue));
|
|
9684
|
+
else option.selected = looseIndexOf(value, optionValue) > -1;
|
|
9685
|
+
} else option.selected = value.has(optionValue);
|
|
9686
|
+
} else if (looseEqual(getValue(option), value)) {
|
|
9436
9687
|
if (el.selectedIndex !== i) el.selectedIndex = i;
|
|
9437
9688
|
return;
|
|
9438
9689
|
}
|
|
9439
9690
|
}
|
|
9440
9691
|
if (!isMultiple && el.selectedIndex !== -1) el.selectedIndex = -1;
|
|
9441
|
-
}
|
|
9692
|
+
}
|
|
9442
9693
|
/**
|
|
9443
9694
|
* @internal retrieve raw value set via :value bindings
|
|
9444
9695
|
*/
|
|
@@ -9751,7 +10002,7 @@ var src_exports = /* @__PURE__ */ __exportAll({
|
|
|
9751
10002
|
withModifiers: () => withModifiers,
|
|
9752
10003
|
withScopeId: () => withScopeId
|
|
9753
10004
|
});
|
|
9754
|
-
const rendererOptions =
|
|
10005
|
+
const rendererOptions = /*@__PURE__*/ extend({ patchProp }, nodeOps);
|
|
9755
10006
|
let renderer;
|
|
9756
10007
|
let enabledHydration = false;
|
|
9757
10008
|
function ensureRenderer() {
|
|
@@ -10084,7 +10335,7 @@ function convertToBlock(node, { helper, removeHelper, inSSR }) {
|
|
|
10084
10335
|
//#endregion
|
|
10085
10336
|
//#region node_modules/.pnpm/entities@7.0.1/node_modules/entities/dist/esm/decode-codepoint.js
|
|
10086
10337
|
var _a;
|
|
10087
|
-
const decodeMap = new Map([
|
|
10338
|
+
const decodeMap = /* @__PURE__ */ new Map([
|
|
10088
10339
|
[0, 65533],
|
|
10089
10340
|
[128, 8364],
|
|
10090
10341
|
[130, 8218],
|
|
@@ -10152,7 +10403,7 @@ function decodeBase64(input) {
|
|
|
10152
10403
|
}
|
|
10153
10404
|
//#endregion
|
|
10154
10405
|
//#region node_modules/.pnpm/entities@7.0.1/node_modules/entities/dist/esm/generated/decode-data-html.js
|
|
10155
|
-
const htmlDecodeTree = /* @__PURE__ */ decodeBase64("QR08ALkAAgH6AYsDNQR2BO0EPgXZBQEGLAbdBxMISQrvCmQLfQurDKQNLw4fD4YPpA+6D/IPAAAAAAAAAAAAAAAAKhBMEY8TmxUWF2EYLBkxGuAa3RsJHDscWR8YIC8jSCSIJcMl6ie3Ku8rEC0CLjoupS7kLgAIRU1hYmNmZ2xtbm9wcnN0dVQAWgBeAGUAaQBzAHcAfgCBAIQAhwCSAJoAoACsALMAbABpAGcAO4DGAMZAUAA7gCYAJkBjAHUAdABlADuAwQDBQHIiZXZlAAJhAAFpeW0AcgByAGMAO4DCAMJAEGRyAADgNdgE3XIAYQB2AGUAO4DAAMBA8CFoYZFj4SFjcgBhZAAAoFMqAAFncIsAjgBvAG4ABGFmAADgNdg43fAlbHlGdW5jdGlvbgCgYSBpAG4AZwA7gMUAxUAAAWNzpACoAHIAAOA12Jzc6SFnbgCgVCJpAGwAZABlADuAwwDDQG0AbAA7gMQAxEAABGFjZWZvcnN1xQDYANoA7QDxAPYA+QD8AAABY3LJAM8AayNzbGFzaAAAoBYidgHTANUAAKDnKmUAZAAAoAYjeQARZIABY3J0AOAA5QDrAGEidXNlAACgNSLuI291bGxpcwCgLCFhAJJjcgAA4DXYBd1wAGYAAOA12Dnd5SF2ZdhiYwDyAOoAbSJwZXEAAKBOIgAHSE9hY2RlZmhpbG9yc3UXARoBHwE6AVIBVQFiAWQBZgGCAakB6QHtAfIBYwB5ACdkUABZADuAqQCpQIABY3B5ACUBKAE1AfUhdGUGYWmg0iJ0KGFsRGlmZmVyZW50aWFsRAAAoEUhbCJleXMAAKAtIQACYWVpb0EBRAFKAU0B8iFvbgxhZABpAGwAO4DHAMdAcgBjAAhhbiJpbnQAAKAwIm8AdAAKYQABZG5ZAV0BaSJsbGEAuGB0I2VyRG90ALdg8gA5AWkAp2NyImNsZQAAAkRNUFRwAXQBeQF9AW8AdAAAoJkiaSJudXMAAKCWIuwhdXMAoJUiaSJtZXMAAKCXIm8AAAFjc4cBlAFrKndpc2VDb250b3VySW50ZWdyYWwAAKAyImUjQ3VybHkAAAFEUZwBpAFvJXVibGVRdW90ZQAAoB0gdSJvdGUAAKAZIAACbG5wdbABtgHNAdgBbwBuAGWgNyIAoHQqgAFnaXQAvAHBAcUB8iJ1ZW50AKBhIm4AdAAAoC8i7yV1ckludGVncmFsAKAuIgABZnLRAdMBAKACIe8iZHVjdACgECJuLnRlckNsb2Nrd2lzZUNvbnRvdXJJbnRlZ3JhbAAAoDMi7yFzcwCgLypjAHIAAOA12J7ccABDoNMiYQBwAACgTSKABURKU1phY2VmaW9zAAsCEgIVAhgCGwIsAjQCOQI9AnMCfwNvoEUh9CJyYWhkAKARKWMAeQACZGMAeQAFZGMAeQAPZIABZ3JzACECJQIoAuchZXIAoCEgcgAAoKEhaAB2AACg5CoAAWF5MAIzAvIhb24OYRRkbAB0oAciYQCUY3IAAOA12AfdAAFhZkECawIAAWNtRQJnAvIjaXRpY2FsAAJBREdUUAJUAl8CYwJjInV0ZQC0YG8AdAFZAloC2WJiJGxlQWN1dGUA3WJyImF2ZQBgYGkibGRlANxi7yFuZACgxCJmJWVyZW50aWFsRAAAoEYhcAR9AgAAAAAAAIECjgIAABoDZgAA4DXYO91EoagAhQKJAm8AdAAAoNwgcSJ1YWwAAKBQIuIhbGUAA0NETFJVVpkCqAK1Au8C/wIRA28AbgB0AG8AdQByAEkAbgB0AGUAZwByAGEA7ADEAW8AdAKvAgAAAACwAqhgbiNBcnJvdwAAoNMhAAFlb7kC0AJmAHQAgAFBUlQAwQLGAs0CciJyb3cAAKDQIekkZ2h0QXJyb3cAoNQhZQDlACsCbgBnAAABTFLWAugC5SFmdAABQVLcAuECciJyb3cAAKD4J+kkZ2h0QXJyb3cAoPon6SRnaHRBcnJvdwCg+SdpImdodAAAAUFU9gL7AnIicm93AACg0iFlAGUAAKCoInAAQQIGAwAAAAALA3Iicm93AACg0SFvJHduQXJyb3cAAKDVIWUlcnRpY2FsQmFyAACgJSJuAAADQUJMUlRhJAM2AzoDWgNxA3oDciJyb3cAAKGTIUJVLAMwA2EAcgAAoBMpcCNBcnJvdwAAoPUhciJldmUAEWPlIWZ00gJDAwAASwMAAFIDaSVnaHRWZWN0b3IAAKBQKWUkZVZlY3RvcgAAoF4p5SJjdG9yQqC9IWEAcgAAoFYpaSJnaHQA1AFiAwAAaQNlJGVWZWN0b3IAAKBfKeUiY3RvckKgwSFhAHIAAKBXKWUAZQBBoKQiciJyb3cAAKCnIXIAcgBvAPcAtAIAAWN0gwOHA3IA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YwAAoN8i4SFycnCgtiEAoD0pgKIqImJjZG9zACsVMBU6FT4VQRVyImNhcAAAoEgqAAFhdTQVNxVwAACgRipwAACgSipvAHQAAKCNInIAAKBFKgDgKiIA/gACYWxydksVURVuFXMVcgByAG2gtyEAoDwpeQCAAWV2dwBYFWUVaRVxAHACXxUAAAAAYxVyAGUA4wAXFXUA4wAZFWUAZQAAoM4iZSJkZ2UAAKDPImUAbgA7gKQApEBlI2Fycm93AAABbHJ7FX8V5SFmdACgtiFpImdodAAAoLchZQDkAG0VAAFjaYsVkRVvAG4AaQBuAPQAkwFuAHQAAKAxImwiY3R5AACgLSOACUFIYWJjZGVmaGlqbG9yc3R1d3oAuBW7Fb8V1RXgFegV+RUKFhUWHxZUFlcWZRbFFtsW7xb7FgUXChdyAPIAtAJhAHIAAKBlKQACZ2xyc8YVyhXOFdAV5yFlcgCgICDlIXRoAKA4IfIA9QxoAHagECAAoKMiawHZFd4VYSJyb3cAAKAPKWEA4wBfAgABYXnkFecV8iFvbg9hNGQAoUYhYW/tFfQVAAFnciEC8RVyAACgyiF0InNlcQAAoHcqgAFnbG0A/xUCFgUWO4CwALBAdABhALRjcCJ0eXYAAKCxKQABaXIOFhIW8yFodACgfykA4DXYId1hAHIAAAFschsWHRYAoMMhAKDCIYACYWVnc3YAKBauAjYWOhY+Fm0AAKHEIm9zLhY0Fm4AZABzoMQi9SFpdACgZiZhIm1tYQDdY2kAbgAAoPIiAKH3AGlvQxZRFmQAZQAAgfcAO29KFksW90BuI3RpbWVzAACgxyJuAPgAUBZjAHkAUmRjAG8CXhYAAAAAYhZyAG4AAKAeI28AcAAAoA0jgAJscHR1dwBuFnEWdRaSFp4W7CFhciRgZgAA4DXYVd0AotkCZW1wc30WhBaJFo0WcQBkoFAibwB0AACgUSJpIm51cwAAoDgi7CF1cwCgFCLxInVhcmUAoKEiYgBsAGUAYgBhAHIAdwBlAGQAZwDlANcAbgCAAWFkaAClFqoWtBZyAHIAbwD3APUMbwB3AG4AYQByAHIAbwB3APMA8xVhI3Jwb29uAAABbHK8FsAWZQBmAPQAHBZpAGcAaAD0AB4WYgHJFs8WawBhAHIAbwD3AJILbwLUFgAAAADYFnIAbgAAoB8jbwBwAACgDCOAAWNvdADhFukW7BYAAXJ55RboFgDgNdi53FVkbAAAoPYp8iFvaxFhAAFkcvMW9xZvAHQAAKDxImkA5qC/JVsSAAFhaP8WAhdyAPIANQNhAPIA1wvhIm5nbGUAoKYpAAFjaQ4XEBd5AF9k5yJyYXJyAKD/JwAJRGFjZGVmZ2xtbm9wcXJzdHV4MRc4F0YXWxcyBF4XaRd5F40XrBe0F78X2RcVGCEYLRg1GEAYAAFEbzUXgRZvAPQA+BUAAWNzPBdCF3UAdABlADuA6QDpQPQhZXIAoG4qAAJhaW95TRdQF1YXWhfyIW9uG2FyAGOgViI7gOoA6kDsIW9uAKBVIk1kbwB0ABdhAAFEcmIXZhdvAHQAAKBSIgDgNdgi3XKhmipuF3QXYQB2AGUAO4DoAOhAZKCWKm8AdAAAoJgqgKGZKmlscwCAF4UXhxfuInRlcnMAoOcjAKATIWSglSpvAHQAAKCXKoABYXBzAJMXlheiF2MAcgATYXQAeQBzogUinxcAAAAAoRdlAHQAAKAFInAAMaADIDMBqRerFwCgBCAAoAUgAAFnc7AXsRdLYXAAAKACIAABZ3C4F7sXbwBuABlhZgAA4DXYVt2AAWFscwDFF8sXzxdyAHOg1SJsAACg4yl1AHMAAKBxKmkAAKG1A2x21RfYF28AbgC1Y/VjAAJjc3V24BfoF/0XEBgAAWlv5BdWF3IAYwAAoFYiaQLuFwAAAADwF+0ADQThIW50AAFnbPUX+Rd0AHIAAKCWKuUhc3MAoJUqgAFhZWkAAxgGGAoYbABzAD1gcwB0AACgXyJ2AESgYSJEAACgeCrwImFyc2wAoOUpAAFEYRkYHRhvAHQAAKBTInIAcgAAoHEpgAFjZGkAJxgqGO0XcgAAoC8hbwD0AIwCAAFhaDEYMhi3YzuA8ADwQAABbXI5GD0YbAA7gOsA60BvAACgrCCAAWNpcABGGEgYSxhsACFgcwD0ACwEAAFlb08YVxhjAHQAYQB0AGkAbwDuABoEbgBlAG4AdABpAGEAbADlADME4Ql1GAAAgRgAAIMYiBgAAAAAoRilGAAAqhgAALsYvhjRGAAA1xgnGWwAbABpAG4AZwBkAG8AdABzAGUA8QBlF3kARGRtImFsZQAAoEAmgAFpbHIAjRiRGJ0Y7CFpZwCgA/tpApcYAAAAAJoYZwAAoAD7aQBnAACgBPsA4DXYI93sIWlnAKAB++whaWcA4GYAagCAAWFsdACvGLIYthh0AACgbSZpAGcAAKAC+24AcwAAoLElbwBmAJJh8AHCGAAAxhhmAADgNdhX3QABYWvJGMwYbADsAGsEdqDUIgCg2SphI3J0aW50AACgDSoAAWFv2hgiGQABY3PeGB8ZsQPnGP0YBRkSGRUZAAAdGbID7xjyGPQY9xj5GAAA+xg7gL0AvUAAoFMhO4C8ALxAAKBVIQCgWSEAoFshswEBGQAAAxkAoFQhAKBWIbQCCxkOGQAAAAAQGTuAvgC+QACgVyEAoFwhNQAAoFghtgEZGQAAGxkAoFohAKBdITgAAKBeIWwAAKBEIHcAbgAAoCIjYwByAADgNdi73IAIRWFiY2RlZmdpamxub3JzdHYARhlKGVoZXhlmGWkZkhmWGZkZnRmgGa0ZxhnLGc8Z4BkjGmygZyIAoIwqgAFjbXAAUBlTGVgZ9SF0ZfVhbQBhAOSgswM6FgCghipyImV2ZQAfYQABaXliGWUZcgBjAB1hM2RvAHQAIWGAoWUibHFzAMYEcBl6GfGhZSLOBAAAdhlsAGEAbgD0AN8EgKF+KmNkbACBGYQZjBljAACgqSpvAHQAb6CAKmyggioAoIQqZeDbIgD+cwAAoJQqcgAA4DXYJN3noGsirATtIWVsAKA3IWMAeQBTZIChdyJFYWoApxmpGasZAKCSKgCgpSoAoKQqAAJFYWVztBm2Gb0ZwhkAoGkicABwoIoq8iFveACgiipxoIgq8aCIKrUZaQBtAACg5yJwAGYAAOA12FjdYQB2AOUAYwIAAWNp0xnWGXIAAKAKIW0AAKFzImVs3BneGQCgjioAoJAqAIM+ADtjZGxxco0E6xn0GfgZ/BkBGgABY2nvGfEZAKCnKnIAAKB6Km8AdAAAoNci0CFhcgCglSl1ImVzdAAAoHwqgAJhZGVscwAKGvQZFhrVBCAa8AEPGgAAFBpwAHIAbwD4AFkZcgAAoHgpcQAAAWxxxAQbGmwAZQBzAPMASRlpAO0A5AQAAWVuJxouGnIjdG5lcXEAAOBpIgD+xQAsGgAFQWFiY2Vma29zeUAaQxpmGmoabRqDGocalhrCGtMacgDyAMwCAAJpbG1yShpOGlAaVBpyAHMA8ABxD2YAvWBpAGwA9AASBQABZHJYGlsaYwB5AEpkAKGUIWN3YBpkGmkAcgAAoEgpAKCtIWEAcgAAoA8h6SFyYyVhgAFhbHIAcxp7Gn8a8iF0c3WgZSZpAHQAAKBlJuwhaXAAoCYg4yFvbgCguSJyAADgNdgl3XMAAAFld4wakRphInJvdwAAoCUpYSJyb3cAAKAmKYACYW1vcHIAnxqjGqcauhq+GnIAcgAAoP8h9CFodACgOyJrAAABbHKsGrMaZSRmdGFycm93AACgqSHpJGdodGFycm93AKCqIWYAAOA12Fnd4iFhcgCgFSCAAWNsdADIGswa0BpyAADgNdi93GEAcwDoAGka8iFvaydhAAFicNca2xr1IWxsAKBDIOghZW4AoBAg4Qr2GgAA/RoAAAgbExsaGwAAIRs7GwAAAAA+G2IbmRuVG6sbAACyG80b0htjAHUAdABlADuA7QDtQAChYyBpeQEbBhtyAGMAO4DuAO5AOGQAAWN4CxsNG3kANWRjAGwAO4ChAKFAAAFmcssCFhsA4DXYJt1yAGEAdgBlADuA7ADsQIChSCFpbm8AJxsyGzYbAAFpbisbLxtuAHQAAKAMKnQAAKAtIuYhaW4AoNwpdABhAACgKSHsIWlnM2GAAWFvcABDG1sbXhuAAWNndABJG0sbWRtyACthgAFlbHAAcQVRG1UbaQBuAOUAyAVhAHIA9AByBWgAMWFmAACgtyJlAGQAtWEAoggiY2ZvdGkbbRt1G3kb4SFyZQCgBSFpAG4AdKAeImkAZQAAoN0pZABvAPQAWxsAoisiY2VscIEbhRuPG5QbYQBsAACguiIAAWdyiRuNG2UAcgDzACMQ4wCCG2EicmhrAACgFyryIW9kAKA8KgACY2dwdJ8boRukG6gbeQBRZG8AbgAvYWYAAOA12FrdYQC5Y3UAZQBzAHQAO4C/AL9AAAFjabUbuRtyAADgNdi+3G4AAKIIIkVkc3bCG8QbyBvQAwCg+SJvAHQAAKD1Inag9CIAoPMiaaBiIOwhZGUpYesB1hsAANkbYwB5AFZkbAA7gO8A70AAA2NmbW9zdeYb7hvyG/Ub+hsFHAABaXnqG+0bcgBjADVhOWRyAADgNdgn3eEhdGg3YnAAZgAA4DXYW93jAf8bAAADHHIAAOA12L/c8iFjeVhk6yFjeVRkAARhY2ZnaGpvcxUcGhwiHCYcKhwtHDAcNRzwIXBhdqC6A/BjAAFleR4cIRzkIWls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ZmdobG1vcHJzdHV3CiwNLBEsHSwnLDEsQCxLLFIsYix6LIQsjyzLLOgs7Sz/LAotcgDyAAkDYQByAACgYykAAWNyFSwbLHUAdABlADuA+gD6QPIACQ1yAOMBIywAACUseQBeZHYAZQBtYQABaXkrLDAscgBjADuA+wD7QENkgAFhYmgANyw6LD0scgDyANEO7CFhY3FhYQDyAOAOAAFpckQsSCzzIWh0AKB+KQDgNdgy3XIAYQB2AGUAO4D5APlAYQFWLF8scgAAAWxyWixcLACgvyEAoL4hbABrAACggCUAAWN0Zix2LG8CbCwAAAAAcyxyAG4AZaAcI3IAAKAcI28AcAAAoA8jcgBpAACg+CUAAWFsfiyBLGMAcgBrYTuAqACoQAABZ3CILIssbwBuAHNhZgAA4DXYZt0AA2FkaGxzdZksniynLLgsuyzFLHIAcgBvAPcACQ1vAHcAbgBhAHIAcgBvAPcA2A5hI3Jwb29uAAABbHKvLLMsZQBmAPQAWyxpAGcAaAD0AF0sdQDzAKYOaQAAocUDaGzBLMIs0mNvAG4AxWPwI2Fycm93cwCgyCGAAWNpdADRLOEs5CxvAtcsAAAAAN4scgBuAGWgHSNyAACgHSNvAHAAAKAOI24AZwBvYXIAaQAAoPklYwByAADgNdjK3IABZGlyAPMs9yz6LG8AdAAAoPAi7CFkZWlhaQBmoLUlAKC0JQABYW0DLQYtcgDyAMosbAA7gPwA/EDhIm5nbGUAoKcpgAdBQkRhY2RlZmxub3Byc3oAJy0qLTAtNC2bLZ0toS2/LcMtxy3TLdgt3C3gLfwtcgDyABADYQByAHag6CoAoOkqYQBzAOgA/gIAAW5yOC08LechcnQAoJwpgANla25wcnN0AJkpSC1NLVQtXi1iLYItYQBwAHAA4QAaHG8AdABoAGkAbgDnAKEXgAFoaXIAoSmzJFotbwBwAPQAdCVooJUh7wD4JgABaXVmLWotZwBtAOEAuygAAWJwbi14LXMjZXRuZXEAceCKIgD+AODLKgD+cyNldG5lcQBx4IsiAP4A4MwqAP4AAWhyhi2KLWUAdADhABIraSNhbmdsZQAAAWxyki2WLeUhZnQAoLIiaSJnaHQAAKCzInkAMmThIXNoAKCiIoABZWxyAKcttC24LWKiKCKuLQAAAACyLWEAcgAAoLsicQAAoFoi7CFpcACg7iIAAWJ0vC1eD2EA8gBfD3IAAOA12DPddAByAOkAlS1zAHUAAAFicM0t0C0A4IIi0iAA4IMi0iBwAGYAAOA12GfdcgBvAPAAWQt0AHIA6QCaLQABY3XkLegtcgAA4DXYy9wAAWJw7C30LW4AAAFFZXUt8S0A4IoiAP5uAAABRWV/LfktAOCLIgD+6SJnemFnAKCaKYADY2Vmb3BycwANLhAuJS4pLiMuLi40LukhcmN1YQABZGkULiEuAAFiZxguHC5hAHIAAKBfKmUAcaAnIgCgWSLlIXJwAKAYIXIAAOA12DTdcABmAADgNdho3WWgQCJhAHQA6ABqD2MAcgAA4DXYzNzjCuQRUC4AAFQuAABYLmIuAAAAAGMubS5wLnQuAAAAAIguki4AAJouJxIqEnQAcgDpAB0ScgAA4DXYNd0AAUFhWy5eLnIA8gDnAnIA8gCTB75jAAFBYWYuaS5yAPIA4AJyAPIAjAdhAPAAeh5pAHMAAKD7IoABZHB0APgReS6DLgABZmx9LoAuAOA12GnddQDzAP8RaQBtAOUABBIAAUFhiy6OLnIA8gDuAnIA8gCaBwABY3GVLgoScgAA4DXYzdwAAXB0nS6hLmwAdQDzACUScgDpACASAARhY2VmaW9zdbEuvC7ELsguzC7PLtQu2S5jAAABdXm2LrsudABlADuA/QD9QE9kAAFpecAuwy5yAGMAd2FLZG4AO4ClAKVAcgAA4DXYNt1jAHkAV2RwAGYAAOA12GrdYwByAADgNdjO3AABY23dLt8ueQBOZGwAO4D/AP9AAAVhY2RlZmhpb3N38y73Lv8uAi8MLxAvEy8YLx0vIi9jInV0ZQB6YQABYXn7Lv4u8iFvbn5hN2RvAHQAfGEAAWV0Bi8KL3QAcgDmAB8QYQC2Y3IAAOA12DfdYwB5ADZk5yJyYXJyAKDdIXAAZgAA4DXYa91jAHIAAOA12M/cAAFqbiYvKC8AoA0gagAAoAwg");
|
|
10406
|
+
const htmlDecodeTree = /* #__PURE__ */ decodeBase64("QR08ALkAAgH6AYsDNQR2BO0EPgXZBQEGLAbdBxMISQrvCmQLfQurDKQNLw4fD4YPpA+6D/IPAAAAAAAAAAAAAAAAKhBMEY8TmxUWF2EYLBkxGuAa3RsJHDscWR8YIC8jSCSIJcMl6ie3Ku8rEC0CLjoupS7kLgAIRU1hYmNmZ2xtbm9wcnN0dVQAWgBeAGUAaQBzAHcAfgCBAIQAhwCSAJoAoACsALMAbABpAGcAO4DGAMZAUAA7gCYAJkBjAHUAdABlADuAwQDBQHIiZXZlAAJhAAFpeW0AcgByAGMAO4DCAMJAEGRyAADgNdgE3XIAYQB2AGUAO4DAAMBA8CFoYZFj4SFjcgBhZAAAoFMqAAFncIsAjgBvAG4ABGFmAADgNdg43fAlbHlGdW5jdGlvbgCgYSBpAG4AZwA7gMUAxUAAAWNzpACoAHIAAOA12Jzc6SFnbgCgVCJpAGwAZABlADuAwwDDQG0AbAA7gMQAxEAABGFjZWZvcnN1xQDYANoA7QDxAPYA+QD8AAABY3LJAM8AayNzbGFzaAAAoBYidgHTANUAAKDnKmUAZAAAoAYjeQARZIABY3J0AOAA5QDrAGEidXNlAACgNSLuI291bGxpcwCgLCFhAJJjcgAA4DXYBd1wAGYAAOA12Dnd5SF2ZdhiYwDyAOoAbSJwZXEAAKBOIgAHSE9hY2RlZmhpbG9yc3UXARoBHwE6AVIBVQFiAWQBZgGCAakB6QHtAfIBYwB5ACdkUABZADuAqQCpQIABY3B5ACUBKAE1AfUhdGUGYWmg0iJ0KGFsRGlmZmVyZW50aWFsRAAAoEUhbCJleXMAAKAtIQACYWVpb0EBRAFKAU0B8iFvbgxhZABpAGwAO4DHAMdAcgBjAAhhbiJpbnQAAKAwIm8AdAAKYQABZG5ZAV0BaSJsbGEAuGB0I2VyRG90ALdg8gA5AWkAp2NyImNsZQAAAkRNUFRwAXQBeQF9AW8AdAAAoJkiaSJudXMAAKCWIuwhdXMAoJUiaSJtZXMAAKCXIm8AAAFjc4cBlAFrKndpc2VDb250b3VySW50ZWdyYWwAAKAyImUjQ3VybHkAAAFEUZwBpAFvJXVibGVRdW90ZQAAoB0gdSJvdGUAAKAZIAACbG5wdbABtgHNAdgBbwBuAGWgNyIAoHQqgAFnaXQAvAHBAcUB8iJ1ZW50AKBhIm4AdAAAoC8i7yV1ckludGVncmFsAKAuIgABZnLRAdMBAKACIe8iZHVjdACgECJuLnRlckNsb2Nrd2lzZUNvbnRvdXJJbnRlZ3JhbAAAoDMi7yFzcwCgLypjAHIAAOA12J7ccABDoNMiYQBwAACgTSKABURKU1phY2VmaW9zAAsCEgIVAhgCGwIsAjQCOQI9AnMCfwNvoEUh9CJyYWhkAKARKWMAeQACZGMAeQAFZGMAeQAPZIABZ3JzACECJQIoAuchZXIAoCEgcgAAoKEhaAB2AACg5CoAAWF5MAIzAvIhb24OYRRkbAB0oAciYQCUY3IAAOA12AfdAAFhZkECawIAAWNtRQJnAvIjaXRpY2FsAAJBREdUUAJUAl8CYwJjInV0ZQC0YG8AdAFZAloC2WJiJGxlQWN1dGUA3WJyImF2ZQBgYGkibGRlANxi7yFuZACgxCJmJWVyZW50aWFsRAAAoEYhcAR9AgAAAAAAAIECjgIAABoDZgAA4DXYO91EoagAhQKJAm8AdAAAoNwgcSJ1YWwAAKBQIuIhbGUAA0NETFJVVpkCqAK1Au8C/wIRA28AbgB0AG8AdQByAEkAbgB0AGUAZwByAGEA7ADEAW8AdAKvAgAAAACwAqhgbiNBcnJvdwAAoNMhAAFlb7kC0AJmAHQAgAFBUlQAwQLGAs0CciJyb3cAAKDQIekkZ2h0QXJyb3cAoNQhZQDlACsCbgBnAAABTFLWAugC5SFmdAABQVLcAuECciJyb3cAAKD4J+kkZ2h0QXJyb3cAoPon6SRnaHRBcnJvdwCg+SdpImdodAAAAUFU9gL7AnIicm93AACg0iFlAGUAAKCoInAAQQIGAwAAAAALA3Iicm93AACg0SFvJHduQXJyb3cAAKDVIWUlcnRpY2FsQmFyAACgJSJuAAADQUJMUlRhJAM2AzoDWgNxA3oDciJyb3cAAKGTIUJVLAMwA2EAcgAAoBMpcCNBcnJvdwAAoPUhciJldmUAEWPlIWZ00gJDAwAASwMAAFIDaSVnaHRWZWN0b3IAAKBQKWUkZVZlY3RvcgAAoF4p5SJjdG9yQqC9IWEAcgAAoFYpaSJnaHQA1AFiAwAAaQNlJGVWZWN0b3IAAKBfKeUiY3RvckKgwSFhAHIAAKBXKWUAZQBBoKQiciJyb3cAAKCnIXIAcgBvAPcAtAIAAWN0gwOHA3IA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YwAAoN8i4SFycnCgtiEAoD0pgKIqImJjZG9zACsVMBU6FT4VQRVyImNhcAAAoEgqAAFhdTQVNxVwAACgRipwAACgSipvAHQAAKCNInIAAKBFKgDgKiIA/gACYWxydksVURVuFXMVcgByAG2gtyEAoDwpeQCAAWV2dwBYFWUVaRVxAHACXxUAAAAAYxVyAGUA4wAXFXUA4wAZFWUAZQAAoM4iZSJkZ2UAAKDPImUAbgA7gKQApEBlI2Fycm93AAABbHJ7FX8V5SFmdACgtiFpImdodAAAoLchZQDkAG0VAAFjaYsVkRVvAG4AaQBuAPQAkwFuAHQAAKAxImwiY3R5AACgLSOACUFIYWJjZGVmaGlqbG9yc3R1d3oAuBW7Fb8V1RXgFegV+RUKFhUWHxZUFlcWZRbFFtsW7xb7FgUXChdyAPIAtAJhAHIAAKBlKQACZ2xyc8YVyhXOFdAV5yFlcgCgICDlIXRoAKA4IfIA9QxoAHagECAAoKMiawHZFd4VYSJyb3cAAKAPKWEA4wBfAgABYXnkFecV8iFvbg9hNGQAoUYhYW/tFfQVAAFnciEC8RVyAACgyiF0InNlcQAAoHcqgAFnbG0A/xUCFgUWO4CwALBAdABhALRjcCJ0eXYAAKCxKQABaXIOFhIW8yFodACgfykA4DXYId1hAHIAAAFschsWHRYAoMMhAKDCIYACYWVnc3YAKBauAjYWOhY+Fm0AAKHEIm9zLhY0Fm4AZABzoMQi9SFpdACgZiZhIm1tYQDdY2kAbgAAoPIiAKH3AGlvQxZRFmQAZQAAgfcAO29KFksW90BuI3RpbWVzAACgxyJuAPgAUBZjAHkAUmRjAG8CXhYAAAAAYhZyAG4AAKAeI28AcAAAoA0jgAJscHR1dwBuFnEWdRaSFp4W7CFhciRgZgAA4DXYVd0AotkCZW1wc30WhBaJFo0WcQBkoFAibwB0AACgUSJpIm51cwAAoDgi7CF1cwCgFCLxInVhcmUAoKEiYgBsAGUAYgBhAHIAdwBlAGQAZwDlANcAbgCAAWFkaAClFqoWtBZyAHIAbwD3APUMbwB3AG4AYQByAHIAbwB3APMA8xVhI3Jwb29uAAABbHK8FsAWZQBmAPQAHBZpAGcAaAD0AB4WYgHJFs8WawBhAHIAbwD3AJILbwLUFgAAAADYFnIAbgAAoB8jbwBwAACgDCOAAWNvdADhFukW7BYAAXJ55RboFgDgNdi53FVkbAAAoPYp8iFvaxFhAAFkcvMW9xZvAHQAAKDxImkA5qC/JVsSAAFhaP8WAhdyAPIANQNhAPIA1wvhIm5nbGUAoKYpAAFjaQ4XEBd5AF9k5yJyYXJyAKD/JwAJRGFjZGVmZ2xtbm9wcXJzdHV4MRc4F0YXWxcyBF4XaRd5F40XrBe0F78X2RcVGCEYLRg1GEAYAAFEbzUXgRZvAPQA+BUAAWNzPBdCF3UAdABlADuA6QDpQPQhZXIAoG4qAAJhaW95TRdQF1YXWhfyIW9uG2FyAGOgViI7gOoA6kDsIW9uAKBVIk1kbwB0ABdhAAFEcmIXZhdvAHQAAKBSIgDgNdgi3XKhmipuF3QXYQB2AGUAO4DoAOhAZKCWKm8AdAAAoJgqgKGZKmlscwCAF4UXhxfuInRlcnMAoOcjAKATIWSglSpvAHQAAKCXKoABYXBzAJMXlheiF2MAcgATYXQAeQBzogUinxcAAAAAoRdlAHQAAKAFInAAMaADIDMBqRerFwCgBCAAoAUgAAFnc7AXsRdLYXAAAKACIAABZ3C4F7sXbwBuABlhZgAA4DXYVt2AAWFscwDFF8sXzxdyAHOg1SJsAACg4yl1AHMAAKBxKmkAAKG1A2x21RfYF28AbgC1Y/VjAAJjc3V24BfoF/0XEBgAAWlv5BdWF3IAYwAAoFYiaQLuFwAAAADwF+0ADQThIW50AAFnbPUX+Rd0AHIAAKCWKuUhc3MAoJUqgAFhZWkAAxgGGAoYbABzAD1gcwB0AACgXyJ2AESgYSJEAACgeCrwImFyc2wAoOUpAAFEYRkYHRhvAHQAAKBTInIAcgAAoHEpgAFjZGkAJxgqGO0XcgAAoC8hbwD0AIwCAAFhaDEYMhi3YzuA8ADwQAABbXI5GD0YbAA7gOsA60BvAACgrCCAAWNpcABGGEgYSxhsACFgcwD0ACwEAAFlb08YVxhjAHQAYQB0AGkAbwDuABoEbgBlAG4AdABpAGEAbADlADME4Ql1GAAAgRgAAIMYiBgAAAAAoRilGAAAqhgAALsYvhjRGAAA1xgnGWwAbABpAG4AZwBkAG8AdABzAGUA8QBlF3kARGRtImFsZQAAoEAmgAFpbHIAjRiRGJ0Y7CFpZwCgA/tpApcYAAAAAJoYZwAAoAD7aQBnAACgBPsA4DXYI93sIWlnAKAB++whaWcA4GYAagCAAWFsdACvGLIYthh0AACgbSZpAGcAAKAC+24AcwAAoLElbwBmAJJh8AHCGAAAxhhmAADgNdhX3QABYWvJGMwYbADsAGsEdqDUIgCg2SphI3J0aW50AACgDSoAAWFv2hgiGQABY3PeGB8ZsQPnGP0YBRkSGRUZAAAdGbID7xjyGPQY9xj5GAAA+xg7gL0AvUAAoFMhO4C8ALxAAKBVIQCgWSEAoFshswEBGQAAAxkAoFQhAKBWIbQCCxkOGQAAAAAQGTuAvgC+QACgVyEAoFwhNQAAoFghtgEZGQAAGxkAoFohAKBdITgAAKBeIWwAAKBEIHcAbgAAoCIjYwByAADgNdi73IAIRWFiY2RlZmdpamxub3JzdHYARhlKGVoZXhlmGWkZkhmWGZkZnRmgGa0ZxhnLGc8Z4BkjGmygZyIAoIwqgAFjbXAAUBlTGVgZ9SF0ZfVhbQBhAOSgswM6FgCghipyImV2ZQAfYQABaXliGWUZcgBjAB1hM2RvAHQAIWGAoWUibHFzAMYEcBl6GfGhZSLOBAAAdhlsAGEAbgD0AN8EgKF+KmNkbACBGYQZjBljAACgqSpvAHQAb6CAKmyggioAoIQqZeDbIgD+cwAAoJQqcgAA4DXYJN3noGsirATtIWVsAKA3IWMAeQBTZIChdyJFYWoApxmpGasZAKCSKgCgpSoAoKQqAAJFYWVztBm2Gb0ZwhkAoGkicABwoIoq8iFveACgiipxoIgq8aCIKrUZaQBtAACg5yJwAGYAAOA12FjdYQB2AOUAYwIAAWNp0xnWGXIAAKAKIW0AAKFzImVs3BneGQCgjioAoJAqAIM+ADtjZGxxco0E6xn0GfgZ/BkBGgABY2nvGfEZAKCnKnIAAKB6Km8AdAAAoNci0CFhcgCglSl1ImVzdAAAoHwqgAJhZGVscwAKGvQZFhrVBCAa8AEPGgAAFBpwAHIAbwD4AFkZcgAAoHgpcQAAAWxxxAQbGmwAZQBzAPMASRlpAO0A5AQAAWVuJxouGnIjdG5lcXEAAOBpIgD+xQAsGgAFQWFiY2Vma29zeUAaQxpmGmoabRqDGocalhrCGtMacgDyAMwCAAJpbG1yShpOGlAaVBpyAHMA8ABxD2YAvWBpAGwA9AASBQABZHJYGlsaYwB5AEpkAKGUIWN3YBpkGmkAcgAAoEgpAKCtIWEAcgAAoA8h6SFyYyVhgAFhbHIAcxp7Gn8a8iF0c3WgZSZpAHQAAKBlJuwhaXAAoCYg4yFvbgCguSJyAADgNdgl3XMAAAFld4wakRphInJvdwAAoCUpYSJyb3cAAKAmKYACYW1vcHIAnxqjGqcauhq+GnIAcgAAoP8h9CFodACgOyJrAAABbHKsGrMaZSRmdGFycm93AACgqSHpJGdodGFycm93AKCqIWYAAOA12Fnd4iFhcgCgFSCAAWNsdADIGswa0BpyAADgNdi93GEAcwDoAGka8iFvaydhAAFicNca2xr1IWxsAKBDIOghZW4AoBAg4Qr2GgAA/RoAAAgbExsaGwAAIRs7GwAAAAA+G2IbmRuVG6sbAACyG80b0htjAHUAdABlADuA7QDtQAChYyBpeQEbBhtyAGMAO4DuAO5AOGQAAWN4CxsNG3kANWRjAGwAO4ChAKFAAAFmcssCFhsA4DXYJt1yAGEAdgBlADuA7ADsQIChSCFpbm8AJxsyGzYbAAFpbisbLxtuAHQAAKAMKnQAAKAtIuYhaW4AoNwpdABhAACgKSHsIWlnM2GAAWFvcABDG1sbXhuAAWNndABJG0sbWRtyACthgAFlbHAAcQVRG1UbaQBuAOUAyAVhAHIA9AByBWgAMWFmAACgtyJlAGQAtWEAoggiY2ZvdGkbbRt1G3kb4SFyZQCgBSFpAG4AdKAeImkAZQAAoN0pZABvAPQAWxsAoisiY2VscIEbhRuPG5QbYQBsAACguiIAAWdyiRuNG2UAcgDzACMQ4wCCG2EicmhrAACgFyryIW9kAKA8KgACY2dwdJ8boRukG6gbeQBRZG8AbgAvYWYAAOA12FrdYQC5Y3UAZQBzAHQAO4C/AL9AAAFjabUbuRtyAADgNdi+3G4AAKIIIkVkc3bCG8QbyBvQAwCg+SJvAHQAAKD1Inag9CIAoPMiaaBiIOwhZGUpYesB1hsAANkbYwB5AFZkbAA7gO8A70AAA2NmbW9zdeYb7hvyG/Ub+hsFHAABaXnqG+0bcgBjADVhOWRyAADgNdgn3eEhdGg3YnAAZgAA4DXYW93jAf8bAAADHHIAAOA12L/c8iFjeVhk6yFjeVRkAARhY2ZnaGpvcxUcGhwiHCYcKhwtHDAcNRzwIXBhdqC6A/BjAAFleR4cIRzkIWls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ZmdobG1vcHJzdHV3CiwNLBEsHSwnLDEsQCxLLFIsYix6LIQsjyzLLOgs7Sz/LAotcgDyAAkDYQByAACgYykAAWNyFSwbLHUAdABlADuA+gD6QPIACQ1yAOMBIywAACUseQBeZHYAZQBtYQABaXkrLDAscgBjADuA+wD7QENkgAFhYmgANyw6LD0scgDyANEO7CFhY3FhYQDyAOAOAAFpckQsSCzzIWh0AKB+KQDgNdgy3XIAYQB2AGUAO4D5APlAYQFWLF8scgAAAWxyWixcLACgvyEAoL4hbABrAACggCUAAWN0Zix2LG8CbCwAAAAAcyxyAG4AZaAcI3IAAKAcI28AcAAAoA8jcgBpAACg+CUAAWFsfiyBLGMAcgBrYTuAqACoQAABZ3CILIssbwBuAHNhZgAA4DXYZt0AA2FkaGxzdZksniynLLgsuyzFLHIAcgBvAPcACQ1vAHcAbgBhAHIAcgBvAPcA2A5hI3Jwb29uAAABbHKvLLMsZQBmAPQAWyxpAGcAaAD0AF0sdQDzAKYOaQAAocUDaGzBLMIs0mNvAG4AxWPwI2Fycm93cwCgyCGAAWNpdADRLOEs5CxvAtcsAAAAAN4scgBuAGWgHSNyAACgHSNvAHAAAKAOI24AZwBvYXIAaQAAoPklYwByAADgNdjK3IABZGlyAPMs9yz6LG8AdAAAoPAi7CFkZWlhaQBmoLUlAKC0JQABYW0DLQYtcgDyAMosbAA7gPwA/EDhIm5nbGUAoKcpgAdBQkRhY2RlZmxub3Byc3oAJy0qLTAtNC2bLZ0toS2/LcMtxy3TLdgt3C3gLfwtcgDyABADYQByAHag6CoAoOkqYQBzAOgA/gIAAW5yOC08LechcnQAoJwpgANla25wcnN0AJkpSC1NLVQtXi1iLYItYQBwAHAA4QAaHG8AdABoAGkAbgDnAKEXgAFoaXIAoSmzJFotbwBwAPQAdCVooJUh7wD4JgABaXVmLWotZwBtAOEAuygAAWJwbi14LXMjZXRuZXEAceCKIgD+AODLKgD+cyNldG5lcQBx4IsiAP4A4MwqAP4AAWhyhi2KLWUAdADhABIraSNhbmdsZQAAAWxyki2WLeUhZnQAoLIiaSJnaHQAAKCzInkAMmThIXNoAKCiIoABZWxyAKcttC24LWKiKCKuLQAAAACyLWEAcgAAoLsicQAAoFoi7CFpcACg7iIAAWJ0vC1eD2EA8gBfD3IAAOA12DPddAByAOkAlS1zAHUAAAFicM0t0C0A4IIi0iAA4IMi0iBwAGYAAOA12GfdcgBvAPAAWQt0AHIA6QCaLQABY3XkLegtcgAA4DXYy9wAAWJw7C30LW4AAAFFZXUt8S0A4IoiAP5uAAABRWV/LfktAOCLIgD+6SJnemFnAKCaKYADY2Vmb3BycwANLhAuJS4pLiMuLi40LukhcmN1YQABZGkULiEuAAFiZxguHC5hAHIAAKBfKmUAcaAnIgCgWSLlIXJwAKAYIXIAAOA12DTdcABmAADgNdho3WWgQCJhAHQA6ABqD2MAcgAA4DXYzNzjCuQRUC4AAFQuAABYLmIuAAAAAGMubS5wLnQuAAAAAIguki4AAJouJxIqEnQAcgDpAB0ScgAA4DXYNd0AAUFhWy5eLnIA8gDnAnIA8gCTB75jAAFBYWYuaS5yAPIA4AJyAPIAjAdhAPAAeh5pAHMAAKD7IoABZHB0APgReS6DLgABZmx9LoAuAOA12GnddQDzAP8RaQBtAOUABBIAAUFhiy6OLnIA8gDuAnIA8gCaBwABY3GVLgoScgAA4DXYzdwAAXB0nS6hLmwAdQDzACUScgDpACASAARhY2VmaW9zdbEuvC7ELsguzC7PLtQu2S5jAAABdXm2LrsudABlADuA/QD9QE9kAAFpecAuwy5yAGMAd2FLZG4AO4ClAKVAcgAA4DXYNt1jAHkAV2RwAGYAAOA12GrdYwByAADgNdjO3AABY23dLt8ueQBOZGwAO4D/AP9AAAVhY2RlZmhpb3N38y73Lv8uAi8MLxAvEy8YLx0vIi9jInV0ZQB6YQABYXn7Lv4u8iFvbn5hN2RvAHQAfGEAAWV0Bi8KL3QAcgDmAB8QYQC2Y3IAAOA12DfdYwB5ADZk5yJyYXJyAKDdIXAAZgAA4DXYa91jAHIAAOA12M/cAAFqbiYvKC8AoA0gagAAoAwg");
|
|
10156
10407
|
//#endregion
|
|
10157
10408
|
//#region node_modules/.pnpm/entities@7.0.1/node_modules/entities/dist/esm/internal/bin-trie-flags.js
|
|
10158
10409
|
/**
|
|
@@ -10546,7 +10797,7 @@ function determineBranch(decodeTree, current, nodeIndex, char) {
|
|
|
10546
10797
|
}
|
|
10547
10798
|
return -1;
|
|
10548
10799
|
}
|
|
10549
|
-
const htmlDecoder = /*
|
|
10800
|
+
const htmlDecoder = /* #__PURE__ */ getDecoder(htmlDecodeTree);
|
|
10550
10801
|
/**
|
|
10551
10802
|
* Decodes an HTML string.
|
|
10552
10803
|
*
|
|
@@ -10738,13 +10989,14 @@ var Tokenizer = class {
|
|
|
10738
10989
|
}
|
|
10739
10990
|
}
|
|
10740
10991
|
stateInterpolationOpen(c) {
|
|
10741
|
-
if (c === this.delimiterOpen[this.delimiterIndex])
|
|
10742
|
-
|
|
10743
|
-
|
|
10744
|
-
|
|
10745
|
-
|
|
10746
|
-
|
|
10747
|
-
|
|
10992
|
+
if (c === this.delimiterOpen[this.delimiterIndex]) {
|
|
10993
|
+
if (this.delimiterIndex === this.delimiterOpen.length - 1) {
|
|
10994
|
+
const start = this.index + 1 - this.delimiterOpen.length;
|
|
10995
|
+
if (start > this.sectionStart) this.cbs.ontext(this.sectionStart, start);
|
|
10996
|
+
this.state = 3;
|
|
10997
|
+
this.sectionStart = start;
|
|
10998
|
+
} else this.delimiterIndex++;
|
|
10999
|
+
} else if (this.inRCDATA) {
|
|
10748
11000
|
this.state = 32;
|
|
10749
11001
|
this.stateInRCDATA(c);
|
|
10750
11002
|
} else {
|
|
@@ -10760,13 +11012,14 @@ var Tokenizer = class {
|
|
|
10760
11012
|
}
|
|
10761
11013
|
}
|
|
10762
11014
|
stateInterpolationClose(c) {
|
|
10763
|
-
if (c === this.delimiterClose[this.delimiterIndex])
|
|
10764
|
-
|
|
10765
|
-
|
|
10766
|
-
|
|
10767
|
-
|
|
10768
|
-
|
|
10769
|
-
|
|
11015
|
+
if (c === this.delimiterClose[this.delimiterIndex]) {
|
|
11016
|
+
if (this.delimiterIndex === this.delimiterClose.length - 1) {
|
|
11017
|
+
this.cbs.oninterpolation(this.sectionStart, this.index + 1);
|
|
11018
|
+
if (this.inRCDATA) this.state = 32;
|
|
11019
|
+
else this.state = 1;
|
|
11020
|
+
this.sectionStart = this.index + 1;
|
|
11021
|
+
} else this.delimiterIndex++;
|
|
11022
|
+
} else {
|
|
10770
11023
|
this.state = 3;
|
|
10771
11024
|
this.stateInterpolation(c);
|
|
10772
11025
|
}
|
|
@@ -10882,9 +11135,10 @@ var Tokenizer = class {
|
|
|
10882
11135
|
this.sectionStart = this.index;
|
|
10883
11136
|
if (this.mode === 0) this.state = 6;
|
|
10884
11137
|
else if (this.inSFCRoot) this.state = 34;
|
|
10885
|
-
else if (!this.inXML)
|
|
10886
|
-
|
|
10887
|
-
|
|
11138
|
+
else if (!this.inXML) {
|
|
11139
|
+
if (c === 116) this.state = 30;
|
|
11140
|
+
else this.state = c === 115 ? 29 : 6;
|
|
11141
|
+
} else this.state = 6;
|
|
10888
11142
|
} else if (c === 47) this.state = 8;
|
|
10889
11143
|
else {
|
|
10890
11144
|
this.state = 1;
|
|
@@ -11251,9 +11505,7 @@ var Tokenizer = class {
|
|
|
11251
11505
|
case 24:
|
|
11252
11506
|
this.stateInProcessingInstruction(c);
|
|
11253
11507
|
break;
|
|
11254
|
-
case 33:
|
|
11255
|
-
this.stateInEntity();
|
|
11256
|
-
break;
|
|
11508
|
+
case 33: this.stateInEntity();
|
|
11257
11509
|
}
|
|
11258
11510
|
this.index++;
|
|
11259
11511
|
}
|
|
@@ -11286,9 +11538,10 @@ var Tokenizer = class {
|
|
|
11286
11538
|
handleTrailingData() {
|
|
11287
11539
|
const endIndex = this.buffer.length;
|
|
11288
11540
|
if (this.sectionStart >= endIndex) return;
|
|
11289
|
-
if (this.state === 28)
|
|
11290
|
-
|
|
11291
|
-
|
|
11541
|
+
if (this.state === 28) {
|
|
11542
|
+
if (this.currentSequence === Sequences.CdataEnd) this.cbs.oncdata(this.sectionStart, endIndex);
|
|
11543
|
+
else this.cbs.oncomment(this.sectionStart, endIndex);
|
|
11544
|
+
} else if (this.state === 6 || this.state === 11 || this.state === 18 || this.state === 17 || this.state === 12 || this.state === 13 || this.state === 14 || this.state === 15 || this.state === 16 || this.state === 20 || this.state === 19 || this.state === 21 || this.state === 9) {} else this.cbs.ontext(this.sectionStart, endIndex);
|
|
11292
11545
|
}
|
|
11293
11546
|
emitCodePoint(cp, consumed) {
|
|
11294
11547
|
if (this.baseState !== 1 && this.baseState !== 32) {
|
|
@@ -11405,16 +11658,22 @@ function walkIdentifiers(root, onIdentifier, includeAll = false, parentStack = [
|
|
|
11405
11658
|
const isRefed = isReferencedIdentifier(node, parent, parentStack);
|
|
11406
11659
|
if (includeAll || isRefed && !isLocal) onIdentifier(node, parent, parentStack, isRefed, isLocal);
|
|
11407
11660
|
} else if (node.type === "ObjectProperty" && (parent === null || parent === void 0 ? void 0 : parent.type) === "ObjectPattern") node.inPattern = true;
|
|
11408
|
-
else if (isFunctionType(node))
|
|
11409
|
-
|
|
11410
|
-
|
|
11411
|
-
else
|
|
11412
|
-
|
|
11413
|
-
|
|
11414
|
-
else if (node.type === "
|
|
11415
|
-
|
|
11416
|
-
|
|
11417
|
-
else
|
|
11661
|
+
else if (isFunctionType(node)) {
|
|
11662
|
+
if (node.scopeIds) node.scopeIds.forEach((id) => markKnownIds(id, knownIds));
|
|
11663
|
+
else walkFunctionParams(node, (id) => markScopeIdentifier(node, id, knownIds));
|
|
11664
|
+
} else if (node.type === "BlockStatement") {
|
|
11665
|
+
if (node.scopeIds) node.scopeIds.forEach((id) => markKnownIds(id, knownIds));
|
|
11666
|
+
else walkBlockDeclarations(node, (id) => markScopeIdentifier(node, id, knownIds));
|
|
11667
|
+
} else if (node.type === "SwitchStatement") {
|
|
11668
|
+
if (node.scopeIds) node.scopeIds.forEach((id) => markKnownIds(id, knownIds));
|
|
11669
|
+
else walkSwitchStatement(node, false, (id) => markScopeIdentifier(node, id, knownIds));
|
|
11670
|
+
} else if (node.type === "CatchClause" && node.param) {
|
|
11671
|
+
if (node.scopeIds) node.scopeIds.forEach((id) => markKnownIds(id, knownIds));
|
|
11672
|
+
else for (const id of extractIdentifiers(node.param)) markScopeIdentifier(node, id, knownIds);
|
|
11673
|
+
} else if (isForStatement(node)) {
|
|
11674
|
+
if (node.scopeIds) node.scopeIds.forEach((id) => markKnownIds(id, knownIds));
|
|
11675
|
+
else walkForStatement(node, false, (id) => markScopeIdentifier(node, id, knownIds));
|
|
11676
|
+
}
|
|
11418
11677
|
},
|
|
11419
11678
|
leave(node, parent) {
|
|
11420
11679
|
parent && parentStack.pop();
|
|
@@ -11506,9 +11765,7 @@ function extractIdentifiers(param, nodes = []) {
|
|
|
11506
11765
|
case "RestElement":
|
|
11507
11766
|
extractIdentifiers(param.argument, nodes);
|
|
11508
11767
|
break;
|
|
11509
|
-
case "AssignmentPattern":
|
|
11510
|
-
extractIdentifiers(param.left, nodes);
|
|
11511
|
-
break;
|
|
11768
|
+
case "AssignmentPattern": extractIdentifiers(param.left, nodes);
|
|
11512
11769
|
}
|
|
11513
11770
|
return nodes;
|
|
11514
11771
|
}
|
|
@@ -11700,7 +11957,7 @@ function isTemplateNode(node) {
|
|
|
11700
11957
|
function isSlotOutlet(node) {
|
|
11701
11958
|
return node.type === 1 && node.tagType === 2;
|
|
11702
11959
|
}
|
|
11703
|
-
const propsHelperSet = new Set([NORMALIZE_PROPS, GUARD_REACTIVE_PROPS]);
|
|
11960
|
+
const propsHelperSet = /* @__PURE__ */ new Set([NORMALIZE_PROPS, GUARD_REACTIVE_PROPS]);
|
|
11704
11961
|
function getUnnormalizedProps(props, callPath = []) {
|
|
11705
11962
|
if (props && !isString(props) && props.type === 14) {
|
|
11706
11963
|
const callee = props.callee;
|
|
@@ -11743,9 +12000,10 @@ function injectProp(node, prop, context) {
|
|
|
11743
12000
|
propsWithInjection = createCallExpression(context.helper(MERGE_PROPS), [createObjectExpression([prop]), props]);
|
|
11744
12001
|
if (parentCall && parentCall.callee === GUARD_REACTIVE_PROPS) parentCall = callPath[callPath.length - 2];
|
|
11745
12002
|
}
|
|
11746
|
-
if (node.type === 13)
|
|
11747
|
-
|
|
11748
|
-
|
|
12003
|
+
if (node.type === 13) {
|
|
12004
|
+
if (parentCall) parentCall.arguments[0] = propsWithInjection;
|
|
12005
|
+
else node.props = propsWithInjection;
|
|
12006
|
+
} else if (parentCall) parentCall.arguments[0] = propsWithInjection;
|
|
11749
12007
|
else node.arguments[2] = propsWithInjection;
|
|
11750
12008
|
}
|
|
11751
12009
|
function injectSlotKey(node, prop) {
|
|
@@ -11985,26 +12243,28 @@ const tokenizer = new Tokenizer(stack, {
|
|
|
11985
12243
|
onattribend(quote, end) {
|
|
11986
12244
|
if (currentOpenTag && currentProp) {
|
|
11987
12245
|
setLocEnd(currentProp.loc, end);
|
|
11988
|
-
if (quote !== 0)
|
|
11989
|
-
if (currentProp.
|
|
11990
|
-
|
|
11991
|
-
|
|
11992
|
-
|
|
11993
|
-
|
|
11994
|
-
|
|
11995
|
-
|
|
11996
|
-
|
|
11997
|
-
|
|
11998
|
-
|
|
11999
|
-
|
|
12000
|
-
|
|
12001
|
-
|
|
12002
|
-
|
|
12003
|
-
|
|
12004
|
-
|
|
12005
|
-
|
|
12006
|
-
currentProp.name = "
|
|
12007
|
-
|
|
12246
|
+
if (quote !== 0) {
|
|
12247
|
+
if (currentProp.type === 6) {
|
|
12248
|
+
if (currentProp.name === "class") currentAttrValue = condense(currentAttrValue).trim();
|
|
12249
|
+
if (quote === 1 && !currentAttrValue) emitError(13, end);
|
|
12250
|
+
currentProp.value = {
|
|
12251
|
+
type: 2,
|
|
12252
|
+
content: currentAttrValue,
|
|
12253
|
+
loc: quote === 1 ? getLoc(currentAttrStartIndex, currentAttrEndIndex) : getLoc(currentAttrStartIndex - 1, currentAttrEndIndex + 1)
|
|
12254
|
+
};
|
|
12255
|
+
if (tokenizer.inSFCRoot && currentOpenTag.tag === "template" && currentProp.name === "lang" && currentAttrValue && currentAttrValue !== "html") tokenizer.enterRCDATA(toCharCodes(`</template`), 0);
|
|
12256
|
+
} else {
|
|
12257
|
+
let expParseMode = 0;
|
|
12258
|
+
if (currentProp.name === "for") expParseMode = 3;
|
|
12259
|
+
else if (currentProp.name === "slot") expParseMode = 1;
|
|
12260
|
+
else if (currentProp.name === "on" && currentAttrValue.includes(";")) expParseMode = 2;
|
|
12261
|
+
currentProp.exp = createExp(currentAttrValue, false, getLoc(currentAttrStartIndex, currentAttrEndIndex), 0, expParseMode);
|
|
12262
|
+
if (currentProp.name === "for") currentProp.forParseResult = parseForExpression(currentProp.exp);
|
|
12263
|
+
let syncIndex = -1;
|
|
12264
|
+
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)) {
|
|
12265
|
+
currentProp.name = "model";
|
|
12266
|
+
currentProp.modifiers.splice(syncIndex, 1);
|
|
12267
|
+
}
|
|
12008
12268
|
}
|
|
12009
12269
|
}
|
|
12010
12270
|
if (currentProp.type !== 7 || currentProp.name !== "pre") currentOpenTag.props.push(currentProp);
|
|
@@ -12047,10 +12307,7 @@ const tokenizer = new Tokenizer(stack, {
|
|
|
12047
12307
|
case 18:
|
|
12048
12308
|
case 19:
|
|
12049
12309
|
case 20:
|
|
12050
|
-
case 21:
|
|
12051
|
-
emitError(9, end);
|
|
12052
|
-
break;
|
|
12053
|
-
default: break;
|
|
12310
|
+
case 21: emitError(9, end);
|
|
12054
12311
|
}
|
|
12055
12312
|
for (let index = 0; index < stack.length; index++) {
|
|
12056
12313
|
onCloseTag(stack[index], end - 1);
|
|
@@ -12180,7 +12437,7 @@ function backTrack(index, c) {
|
|
|
12180
12437
|
while (currentInput.charCodeAt(i) !== c && i >= 0) i--;
|
|
12181
12438
|
return i;
|
|
12182
12439
|
}
|
|
12183
|
-
const specialTemplateDir = new Set([
|
|
12440
|
+
const specialTemplateDir = /* @__PURE__ */ new Set([
|
|
12184
12441
|
"if",
|
|
12185
12442
|
"else",
|
|
12186
12443
|
"else-if",
|
|
@@ -12216,16 +12473,18 @@ function condenseWhitespace(nodes) {
|
|
|
12216
12473
|
let removedWhitespace = false;
|
|
12217
12474
|
for (let i = 0; i < nodes.length; i++) {
|
|
12218
12475
|
const node = nodes[i];
|
|
12219
|
-
if (node.type === 2)
|
|
12220
|
-
if (
|
|
12221
|
-
|
|
12222
|
-
|
|
12223
|
-
|
|
12224
|
-
|
|
12225
|
-
|
|
12226
|
-
|
|
12227
|
-
|
|
12228
|
-
|
|
12476
|
+
if (node.type === 2) {
|
|
12477
|
+
if (!inPre) {
|
|
12478
|
+
if (isAllWhitespace(node.content)) {
|
|
12479
|
+
const prev = nodes[i - 1] && nodes[i - 1].type;
|
|
12480
|
+
const next = nodes[i + 1] && nodes[i + 1].type;
|
|
12481
|
+
if (!prev || !next || shouldCondense && (prev === 3 && (next === 3 || next === 1) || prev === 1 && (next === 3 || next === 1 && hasNewlineChar(node.content)))) {
|
|
12482
|
+
removedWhitespace = true;
|
|
12483
|
+
nodes[i] = null;
|
|
12484
|
+
} else node.content = " ";
|
|
12485
|
+
} else if (shouldCondense) node.content = condense(node.content);
|
|
12486
|
+
} else node.content = node.content.replace(windowsNewlineRE, "\n");
|
|
12487
|
+
}
|
|
12229
12488
|
}
|
|
12230
12489
|
return removedWhitespace ? nodes.filter(Boolean) : nodes;
|
|
12231
12490
|
}
|
|
@@ -12502,7 +12761,7 @@ function getConstantType(node, context) {
|
|
|
12502
12761
|
default: return 0;
|
|
12503
12762
|
}
|
|
12504
12763
|
}
|
|
12505
|
-
const allowHoistedHelperSet = new Set([
|
|
12764
|
+
const allowHoistedHelperSet = /* @__PURE__ */ new Set([
|
|
12506
12765
|
NORMALIZE_CLASS,
|
|
12507
12766
|
NORMALIZE_STYLE,
|
|
12508
12767
|
NORMALIZE_PROPS,
|
|
@@ -12546,7 +12805,7 @@ function getSelfName(filename) {
|
|
|
12546
12805
|
const nameMatch = filename.replace(/\?.*$/, "").match(/([^/\\]+)\.\w+$/);
|
|
12547
12806
|
return nameMatch ? capitalize(camelize(nameMatch[1])) : null;
|
|
12548
12807
|
}
|
|
12549
|
-
function createTransformContext(root, { filename = "", prefixIdentifiers = false, hoistStatic = false, hmr = false, cacheHandlers = false, nodeTransforms = [], directiveTransforms = {}, transformHoist = null, isBuiltInComponent = NOOP, isCustomElement = NOOP, expressionPlugins = [], scopeId = null, slotted = true, ssr = false, inSSR = false, ssrCssVars = ``, bindingMetadata = EMPTY_OBJ, inline = false, isTS = false,
|
|
12808
|
+
function createTransformContext(root, { filename = "", prefixIdentifiers = false, hoistStatic = false, hmr = false, cacheHandlers = false, nodeTransforms = [], directiveTransforms = {}, transformHoist = null, isBuiltInComponent = NOOP, isCustomElement = NOOP, expressionPlugins = [], scopeId = null, slotted = true, ssr = false, inSSR = false, ssrCssVars = ``, bindingMetadata = EMPTY_OBJ, inline = false, isTS = false, onError = defaultOnError, onWarn = defaultOnWarn, compatConfig }) {
|
|
12550
12809
|
const context = {
|
|
12551
12810
|
filename,
|
|
12552
12811
|
selfName: getSelfName(filename),
|
|
@@ -12568,7 +12827,6 @@ function createTransformContext(root, { filename = "", prefixIdentifiers = false
|
|
|
12568
12827
|
bindingMetadata,
|
|
12569
12828
|
inline,
|
|
12570
12829
|
isTS,
|
|
12571
|
-
eventDelegation,
|
|
12572
12830
|
onError,
|
|
12573
12831
|
onWarn,
|
|
12574
12832
|
compatConfig,
|
|
@@ -12674,7 +12932,7 @@ function transform(root, options) {
|
|
|
12674
12932
|
traverseNode(root, context);
|
|
12675
12933
|
if (options.hoistStatic) cacheStatic(root, context);
|
|
12676
12934
|
if (!options.ssr) createRootCodegen(root, context);
|
|
12677
|
-
root.helpers = new Set([...context.helpers.keys()]);
|
|
12935
|
+
root.helpers = /* @__PURE__ */ new Set([...context.helpers.keys()]);
|
|
12678
12936
|
root.components = [...context.components];
|
|
12679
12937
|
root.directives = [...context.directives];
|
|
12680
12938
|
root.imports = context.imports;
|
|
@@ -12717,8 +12975,10 @@ function traverseNode(node, context) {
|
|
|
12717
12975
|
const exitFns = [];
|
|
12718
12976
|
for (let i = 0; i < nodeTransforms.length; i++) {
|
|
12719
12977
|
const onExit = nodeTransforms[i](node, context);
|
|
12720
|
-
if (onExit)
|
|
12721
|
-
|
|
12978
|
+
if (onExit) {
|
|
12979
|
+
if (isArray(onExit)) exitFns.push(...onExit);
|
|
12980
|
+
else exitFns.push(onExit);
|
|
12981
|
+
}
|
|
12722
12982
|
if (!context.currentNode) return;
|
|
12723
12983
|
else node = context.currentNode;
|
|
12724
12984
|
}
|
|
@@ -12735,9 +12995,7 @@ function traverseNode(node, context) {
|
|
|
12735
12995
|
case 10:
|
|
12736
12996
|
case 11:
|
|
12737
12997
|
case 1:
|
|
12738
|
-
case 0:
|
|
12739
|
-
traverseChildren(node, context);
|
|
12740
|
-
break;
|
|
12998
|
+
case 0: traverseChildren(node, context);
|
|
12741
12999
|
}
|
|
12742
13000
|
context.currentNode = node;
|
|
12743
13001
|
let i = exitFns.length;
|
|
@@ -12923,16 +13181,18 @@ function genFunctionPreamble(ast, context) {
|
|
|
12923
13181
|
const { ssr, prefixIdentifiers, push, newline, runtimeModuleName, runtimeGlobalName, ssrRuntimeModuleName } = context;
|
|
12924
13182
|
const VueBinding = ssr ? `require(${JSON.stringify(runtimeModuleName)})` : runtimeGlobalName;
|
|
12925
13183
|
const helpers = Array.from(ast.helpers);
|
|
12926
|
-
if (helpers.length > 0)
|
|
12927
|
-
|
|
12928
|
-
|
|
12929
|
-
|
|
12930
|
-
|
|
12931
|
-
|
|
12932
|
-
|
|
12933
|
-
|
|
12934
|
-
|
|
12935
|
-
|
|
13184
|
+
if (helpers.length > 0) {
|
|
13185
|
+
if (prefixIdentifiers) push(`const { ${helpers.map(aliasHelper).join(", ")} } = ${VueBinding}\n`, -1);
|
|
13186
|
+
else {
|
|
13187
|
+
push(`const _Vue = ${VueBinding}\n`, -1);
|
|
13188
|
+
if (ast.hoists.length) push(`const { ${[
|
|
13189
|
+
CREATE_VNODE,
|
|
13190
|
+
CREATE_ELEMENT_VNODE,
|
|
13191
|
+
CREATE_COMMENT,
|
|
13192
|
+
CREATE_TEXT,
|
|
13193
|
+
CREATE_STATIC
|
|
13194
|
+
].filter((helper) => helpers.includes(helper)).map(aliasHelper).join(", ")} } = _Vue\n`, -1);
|
|
13195
|
+
}
|
|
12936
13196
|
}
|
|
12937
13197
|
if (ast.ssrHelpers && ast.ssrHelpers.length) push(`const { ${ast.ssrHelpers.map(aliasHelper).join(", ")} } = require("${ssrRuntimeModuleName}")\n`, -1);
|
|
12938
13198
|
genHoists(ast.hoists, context);
|
|
@@ -13009,10 +13269,12 @@ function genNodeList(nodes, context, multilines = false, comma = true) {
|
|
|
13009
13269
|
if (isString(node)) push(node, -3);
|
|
13010
13270
|
else if (isArray(node)) genNodeListAsArray(node, context);
|
|
13011
13271
|
else genNode(node, context);
|
|
13012
|
-
if (i < nodes.length - 1)
|
|
13013
|
-
|
|
13014
|
-
|
|
13015
|
-
|
|
13272
|
+
if (i < nodes.length - 1) {
|
|
13273
|
+
if (multilines) {
|
|
13274
|
+
comma && push(",");
|
|
13275
|
+
newline();
|
|
13276
|
+
} else comma && push(", ");
|
|
13277
|
+
}
|
|
13016
13278
|
}
|
|
13017
13279
|
}
|
|
13018
13280
|
function genNode(node, context) {
|
|
@@ -13084,12 +13346,7 @@ function genNode(node, context) {
|
|
|
13084
13346
|
case 25:
|
|
13085
13347
|
genSequenceExpression(node, context);
|
|
13086
13348
|
break;
|
|
13087
|
-
case 26:
|
|
13088
|
-
genReturnStatement(node, context);
|
|
13089
|
-
break;
|
|
13090
|
-
/* v8 ignore start */
|
|
13091
|
-
case 10: break;
|
|
13092
|
-
default:
|
|
13349
|
+
case 26: genReturnStatement(node, context);
|
|
13093
13350
|
}
|
|
13094
13351
|
}
|
|
13095
13352
|
function genText(node, context) {
|
|
@@ -13327,7 +13584,7 @@ function genReturnStatement({ returns }, context) {
|
|
|
13327
13584
|
}
|
|
13328
13585
|
//#endregion
|
|
13329
13586
|
//#region packages/compiler-core/src/transforms/transformExpression.ts
|
|
13330
|
-
const isLiteralWhitelisted =
|
|
13587
|
+
const isLiteralWhitelisted = /*@__PURE__*/ makeMap("true,false,null,this");
|
|
13331
13588
|
const transformExpression = (node, context) => {
|
|
13332
13589
|
if (node.type === 5) node.content = processExpression(node.content, context);
|
|
13333
13590
|
else if (node.type === 1) {
|
|
@@ -13360,20 +13617,21 @@ function processExpression(node, context, asParams = false, asRawStatements = fa
|
|
|
13360
13617
|
if (isConst(type) || type === "setup-reactive-const" || localVars[raw]) return raw;
|
|
13361
13618
|
else if (type === "setup-ref") return `${raw}.value`;
|
|
13362
13619
|
else if (type === "setup-maybe-ref") return isAssignmentLVal || isUpdateArg || isDestructureAssignment ? `${raw}.value` : wrapWithUnref(raw);
|
|
13363
|
-
else if (type === "setup-let")
|
|
13364
|
-
|
|
13365
|
-
|
|
13366
|
-
|
|
13367
|
-
|
|
13368
|
-
|
|
13369
|
-
|
|
13370
|
-
|
|
13371
|
-
|
|
13372
|
-
|
|
13373
|
-
|
|
13374
|
-
|
|
13375
|
-
|
|
13376
|
-
|
|
13620
|
+
else if (type === "setup-let") {
|
|
13621
|
+
if (isAssignmentLVal) {
|
|
13622
|
+
const { right: rVal, operator } = parent;
|
|
13623
|
+
const rExpString = stringifyExpression(processExpression(createSimpleExpression(rawExp.slice(rVal.start - 1, rVal.end - 1), false), context, false, false, knownIds));
|
|
13624
|
+
return `${context.helperString(IS_REF)}(${raw})${context.isTS ? ` //@ts-ignore\n` : ``} ? ${raw}.value ${operator} ${rExpString} : ${raw}`;
|
|
13625
|
+
} else if (isUpdateArg) {
|
|
13626
|
+
id.start = parent.start;
|
|
13627
|
+
id.end = parent.end;
|
|
13628
|
+
const { prefix: isPrefix, operator } = parent;
|
|
13629
|
+
const prefix = isPrefix ? operator : ``;
|
|
13630
|
+
const postfix = isPrefix ? `` : operator;
|
|
13631
|
+
return `${context.helperString(IS_REF)}(${raw})${context.isTS ? ` //@ts-ignore\n` : ``} ? ${prefix}${raw}.value${postfix} : ${prefix}${raw}${postfix}`;
|
|
13632
|
+
} else if (isDestructureAssignment) return raw;
|
|
13633
|
+
else return wrapWithUnref(raw);
|
|
13634
|
+
} else if (type === "props") return genPropsAccessExp(raw);
|
|
13377
13635
|
else if (type === "props-aliased") return genPropsAccessExp(bindingMetadata.__propsAliases[raw]);
|
|
13378
13636
|
} else if (type && type.startsWith("setup") || type === "literal-const") return `$setup.${raw}`;
|
|
13379
13637
|
else if (type === "props-aliased") return `$props['${bindingMetadata.__propsAliases[raw]}']`;
|
|
@@ -13390,8 +13648,10 @@ function processExpression(node, context, asParams = false, asRawStatements = fa
|
|
|
13390
13648
|
if (!asParams && !isScopeVarReference && !isLiteral && (!isAllowedGlobal || bindingMetadata[rawExp])) {
|
|
13391
13649
|
if (isConst(bindingMetadata[rawExp])) node.constType = 1;
|
|
13392
13650
|
node.content = rewriteIdentifier(rawExp);
|
|
13393
|
-
} else if (!isScopeVarReference)
|
|
13394
|
-
|
|
13651
|
+
} else if (!isScopeVarReference) {
|
|
13652
|
+
if (isLiteral) node.constType = 3;
|
|
13653
|
+
else node.constType = 2;
|
|
13654
|
+
}
|
|
13395
13655
|
return node;
|
|
13396
13656
|
}
|
|
13397
13657
|
if (!ast) {
|
|
@@ -13547,12 +13807,13 @@ function createChildrenCodegenNode(branch, keyIndex, context) {
|
|
|
13547
13807
|
const keyProperty = createObjectProperty(`key`, createSimpleExpression(`${keyIndex}`, false, locStub, 2));
|
|
13548
13808
|
const { children } = branch;
|
|
13549
13809
|
const firstChild = children[0];
|
|
13550
|
-
if (children.length !== 1 || firstChild.type !== 1)
|
|
13551
|
-
|
|
13552
|
-
|
|
13553
|
-
|
|
13554
|
-
|
|
13555
|
-
|
|
13810
|
+
if (children.length !== 1 || firstChild.type !== 1) {
|
|
13811
|
+
if (children.length === 1 && firstChild.type === 11) {
|
|
13812
|
+
const vnodeCall = firstChild.codegenNode;
|
|
13813
|
+
injectProp(vnodeCall, keyProperty, context);
|
|
13814
|
+
return vnodeCall;
|
|
13815
|
+
} else return createVNodeCall(context, helper(FRAGMENT), createObjectExpression([keyProperty]), children, 64, void 0, void 0, true, false, false, branch.loc);
|
|
13816
|
+
} else {
|
|
13556
13817
|
const ret = firstChild.codegenNode;
|
|
13557
13818
|
const vnodeCall = getMemoedVNodeCall(ret);
|
|
13558
13819
|
if (vnodeCall.type === 13) convertToBlock(vnodeCall, context);
|
|
@@ -13573,9 +13834,10 @@ function isSameKey(a, b) {
|
|
|
13573
13834
|
return true;
|
|
13574
13835
|
}
|
|
13575
13836
|
function getParentCondition(node) {
|
|
13576
|
-
while (true) if (node.type === 19)
|
|
13577
|
-
|
|
13578
|
-
|
|
13837
|
+
while (true) if (node.type === 19) {
|
|
13838
|
+
if (node.alternate.type === 19) node = node.alternate;
|
|
13839
|
+
else return node;
|
|
13840
|
+
} else if (node.type === 20) node = node.value;
|
|
13579
13841
|
}
|
|
13580
13842
|
//#endregion
|
|
13581
13843
|
//#region packages/compiler-core/src/transforms/vFor.ts
|
|
@@ -13618,15 +13880,24 @@ const transformFor = createStructuralDirectiveTransform("for", (node, dir, conte
|
|
|
13618
13880
|
else {
|
|
13619
13881
|
childBlock = children[0].codegenNode;
|
|
13620
13882
|
if (isTemplate && keyProperty) injectProp(childBlock, keyProperty, context);
|
|
13621
|
-
|
|
13622
|
-
|
|
13623
|
-
|
|
13624
|
-
|
|
13625
|
-
|
|
13883
|
+
const shouldUseBlock = !isStableFragment || childBlock.isBlockRequired === true;
|
|
13884
|
+
if (childBlock.isBlock !== shouldUseBlock) {
|
|
13885
|
+
if (childBlock.isBlock) {
|
|
13886
|
+
removeHelper(OPEN_BLOCK);
|
|
13887
|
+
removeHelper(getVNodeBlockHelper(context.inSSR, childBlock.isComponent));
|
|
13888
|
+
} else removeHelper(getVNodeHelper(context.inSSR, childBlock.isComponent));
|
|
13889
|
+
}
|
|
13890
|
+
childBlock.isBlock = shouldUseBlock;
|
|
13626
13891
|
if (childBlock.isBlock) {
|
|
13627
13892
|
helper(OPEN_BLOCK);
|
|
13628
13893
|
helper(getVNodeBlockHelper(context.inSSR, childBlock.isComponent));
|
|
13629
|
-
} else
|
|
13894
|
+
} else {
|
|
13895
|
+
helper(getVNodeHelper(context.inSSR, childBlock.isComponent));
|
|
13896
|
+
if (childBlock.needsPatch) {
|
|
13897
|
+
var _childBlock$patchFlag;
|
|
13898
|
+
childBlock.patchFlag = ((_childBlock$patchFlag = childBlock.patchFlag) !== null && _childBlock$patchFlag !== void 0 ? _childBlock$patchFlag : 0) | 512;
|
|
13899
|
+
}
|
|
13900
|
+
}
|
|
13630
13901
|
}
|
|
13631
13902
|
if (memo) {
|
|
13632
13903
|
const loop = createFunctionExpression(createForLoopParams(forNode.parseResult, [createSimpleExpression(`_cached`)]));
|
|
@@ -13832,8 +14103,10 @@ function buildSlots(node, context, buildSlotFn = buildClientSlotFn) {
|
|
|
13832
14103
|
return createObjectProperty(`default`, fn);
|
|
13833
14104
|
};
|
|
13834
14105
|
if (!hasTemplateSlots) slotsProperties.push(buildDefaultSlotProperty(void 0, children));
|
|
13835
|
-
else if (implicitDefaultChildren.length && !implicitDefaultChildren.every(isWhitespaceText))
|
|
13836
|
-
|
|
14106
|
+
else if (implicitDefaultChildren.length && !implicitDefaultChildren.every(isWhitespaceText)) {
|
|
14107
|
+
if (hasNamedDefaultSlot) context.onError(createCompilerError(39, implicitDefaultChildren[0].loc));
|
|
14108
|
+
else slotsProperties.push(buildDefaultSlotProperty(void 0, implicitDefaultChildren));
|
|
14109
|
+
}
|
|
13837
14110
|
}
|
|
13838
14111
|
const slotFlag = hasDynamicSlots ? 2 : hasForwardedSlots(node.children) ? 3 : 1;
|
|
13839
14112
|
let slots = createObjectExpression(slotsProperties.concat(createObjectProperty(`_`, createSimpleExpression(slotFlag + ``, false))), loc);
|
|
@@ -13859,10 +14132,7 @@ function hasForwardedSlots(children) {
|
|
|
13859
14132
|
if (hasForwardedSlots(child.branches)) return true;
|
|
13860
14133
|
break;
|
|
13861
14134
|
case 10:
|
|
13862
|
-
case 11:
|
|
13863
|
-
if (hasForwardedSlots(child.children)) return true;
|
|
13864
|
-
break;
|
|
13865
|
-
default: break;
|
|
14135
|
+
case 11: if (hasForwardedSlots(child.children)) return true;
|
|
13866
14136
|
}
|
|
13867
14137
|
}
|
|
13868
14138
|
return false;
|
|
@@ -13884,12 +14154,16 @@ const transformElement = (node, context) => {
|
|
|
13884
14154
|
let vnodeDynamicProps;
|
|
13885
14155
|
let dynamicPropNames;
|
|
13886
14156
|
let vnodeDirectives;
|
|
14157
|
+
let needsPatch = false;
|
|
14158
|
+
let isBlockRequired = false;
|
|
13887
14159
|
let shouldUseBlock = isDynamicComponent || vnodeTag === TELEPORT || vnodeTag === SUSPENSE || !isComponent && (tag === "svg" || tag === "foreignObject" || tag === "math");
|
|
13888
14160
|
if (props.length > 0) {
|
|
13889
14161
|
const propsBuildResult = buildProps(node, context, void 0, isComponent, isDynamicComponent);
|
|
13890
14162
|
vnodeProps = propsBuildResult.props;
|
|
13891
14163
|
patchFlag = propsBuildResult.patchFlag;
|
|
13892
14164
|
dynamicPropNames = propsBuildResult.dynamicPropNames;
|
|
14165
|
+
needsPatch = propsBuildResult.needsPatch;
|
|
14166
|
+
isBlockRequired = propsBuildResult.isBlockRequired;
|
|
13893
14167
|
const directives = propsBuildResult.directives;
|
|
13894
14168
|
vnodeDirectives = directives && directives.length ? createArrayExpression(directives.map((dir) => buildDirectiveArgs(dir, context))) : void 0;
|
|
13895
14169
|
if (propsBuildResult.shouldUseBlock) shouldUseBlock = true;
|
|
@@ -13913,7 +14187,10 @@ const transformElement = (node, context) => {
|
|
|
13913
14187
|
} else vnodeChildren = node.children;
|
|
13914
14188
|
}
|
|
13915
14189
|
if (dynamicPropNames && dynamicPropNames.length) vnodeDynamicProps = stringifyDynamicPropNames(dynamicPropNames);
|
|
13916
|
-
node.codegenNode = createVNodeCall(context, vnodeTag, vnodeProps, vnodeChildren, patchFlag === 0 ? void 0 : patchFlag, vnodeDynamicProps, vnodeDirectives, !!shouldUseBlock, false, isComponent, node.loc);
|
|
14190
|
+
const vnodeCall = node.codegenNode = createVNodeCall(context, vnodeTag, vnodeProps, vnodeChildren, patchFlag === 0 ? void 0 : patchFlag, vnodeDynamicProps, vnodeDirectives, !!shouldUseBlock, false, isComponent, node.loc);
|
|
14191
|
+
needsPatch = needsPatch && (patchFlag === 0 || patchFlag === 32);
|
|
14192
|
+
if (needsPatch) vnodeCall.needsPatch = true;
|
|
14193
|
+
if (isBlockRequired) vnodeCall.isBlockRequired = true;
|
|
13917
14194
|
};
|
|
13918
14195
|
};
|
|
13919
14196
|
function resolveComponentType(node, context, ssr = false) {
|
|
@@ -13998,6 +14275,7 @@ function buildProps(node, context, props = node.props, isComponent, isDynamicCom
|
|
|
13998
14275
|
const runtimeDirectives = [];
|
|
13999
14276
|
const hasChildren = children.length > 0;
|
|
14000
14277
|
let shouldUseBlock = false;
|
|
14278
|
+
let isBlockRequired = false;
|
|
14001
14279
|
let patchFlag = 0;
|
|
14002
14280
|
let hasRef = false;
|
|
14003
14281
|
let hasClassBinding = false;
|
|
@@ -14022,12 +14300,12 @@ function buildProps(node, context, props = node.props, isComponent, isDynamicCom
|
|
|
14022
14300
|
const isEventHandler = isOn(name);
|
|
14023
14301
|
if (isEventHandler && (!isComponent || isDynamicComponent) && name.toLowerCase() !== "onclick" && name !== "onUpdate:modelValue" && !isReservedProp(name)) hasHydrationEventBinding = true;
|
|
14024
14302
|
if (isEventHandler && isReservedProp(name)) hasVnodeHook = true;
|
|
14303
|
+
if (name === "ref") hasRef = true;
|
|
14025
14304
|
if (isEventHandler && value.type === 14) value = value.arguments[0];
|
|
14026
14305
|
if (value.type === 20 || (value.type === 4 || value.type === 8) && getConstantType(value, context) > 0) return;
|
|
14027
|
-
if (name === "
|
|
14028
|
-
else if (name === "class") hasClassBinding = true;
|
|
14306
|
+
if (name === "class") hasClassBinding = true;
|
|
14029
14307
|
else if (name === "style") hasStyleBinding = true;
|
|
14030
|
-
else if (name !== "key" && !dynamicPropNames.includes(name)) dynamicPropNames.push(name);
|
|
14308
|
+
else if (name !== "ref" && name !== "key" && !dynamicPropNames.includes(name)) dynamicPropNames.push(name);
|
|
14031
14309
|
if (isComponent && (name === "class" || name === "style") && !dynamicPropNames.includes(name)) dynamicPropNames.push(name);
|
|
14032
14310
|
} else hasDynamicKeys = true;
|
|
14033
14311
|
};
|
|
@@ -14060,26 +14338,31 @@ function buildProps(node, context, props = node.props, isComponent, isDynamicCom
|
|
|
14060
14338
|
if (name === "once" || name === "memo") continue;
|
|
14061
14339
|
if (name === "is" || isVBind && isStaticArgOf(arg, "is") && (isComponentTag(tag) || isCompatEnabled("COMPILER_IS_ON_ELEMENT", context))) continue;
|
|
14062
14340
|
if (isVOn && ssr) continue;
|
|
14063
|
-
if (isVBind && isStaticArgOf(arg, "key")
|
|
14341
|
+
if (isVBind && isStaticArgOf(arg, "key")) shouldUseBlock = true;
|
|
14342
|
+
if (isVOn && hasChildren && arg && isStaticExp(arg) && camelize(arg.content) === "vue:beforeUpdate") {
|
|
14343
|
+
shouldUseBlock = true;
|
|
14344
|
+
isBlockRequired = true;
|
|
14345
|
+
}
|
|
14064
14346
|
if (isVBind && isStaticArgOf(arg, "ref")) pushRefVForMarker();
|
|
14065
14347
|
if (!arg && (isVBind || isVOn)) {
|
|
14066
14348
|
hasDynamicKeys = true;
|
|
14067
|
-
if (exp)
|
|
14068
|
-
|
|
14069
|
-
|
|
14070
|
-
|
|
14071
|
-
|
|
14072
|
-
|
|
14073
|
-
|
|
14074
|
-
|
|
14075
|
-
|
|
14076
|
-
|
|
14077
|
-
|
|
14078
|
-
|
|
14079
|
-
|
|
14080
|
-
|
|
14081
|
-
|
|
14082
|
-
|
|
14349
|
+
if (exp) {
|
|
14350
|
+
if (isVBind) {
|
|
14351
|
+
pushMergeArg();
|
|
14352
|
+
if (isCompatEnabled("COMPILER_V_BIND_OBJECT_ORDER", context)) {
|
|
14353
|
+
mergeArgs.unshift(exp);
|
|
14354
|
+
continue;
|
|
14355
|
+
}
|
|
14356
|
+
pushRefVForMarker();
|
|
14357
|
+
pushMergeArg();
|
|
14358
|
+
mergeArgs.push(exp);
|
|
14359
|
+
} else pushMergeArg({
|
|
14360
|
+
type: 14,
|
|
14361
|
+
loc,
|
|
14362
|
+
callee: context.helper(TO_HANDLERS),
|
|
14363
|
+
arguments: isComponent ? [exp] : [exp, `true`]
|
|
14364
|
+
});
|
|
14365
|
+
} else context.onError(createCompilerError(isVBind ? 34 : 35, loc));
|
|
14083
14366
|
continue;
|
|
14084
14367
|
}
|
|
14085
14368
|
if (isVBind && modifiers.some((mod) => mod.content === "prop")) patchFlag |= 32;
|
|
@@ -14095,7 +14378,10 @@ function buildProps(node, context, props = node.props, isComponent, isDynamicCom
|
|
|
14095
14378
|
}
|
|
14096
14379
|
} else if (!isBuiltInDirective(name)) {
|
|
14097
14380
|
runtimeDirectives.push(prop);
|
|
14098
|
-
if (hasChildren)
|
|
14381
|
+
if (hasChildren) {
|
|
14382
|
+
shouldUseBlock = true;
|
|
14383
|
+
isBlockRequired = true;
|
|
14384
|
+
}
|
|
14099
14385
|
}
|
|
14100
14386
|
}
|
|
14101
14387
|
}
|
|
@@ -14112,7 +14398,8 @@ function buildProps(node, context, props = node.props, isComponent, isDynamicCom
|
|
|
14112
14398
|
if (dynamicPropNames.length) patchFlag |= 8;
|
|
14113
14399
|
if (hasHydrationEventBinding) patchFlag |= 32;
|
|
14114
14400
|
}
|
|
14115
|
-
|
|
14401
|
+
const needsPatch = (patchFlag === 0 || patchFlag === 32) && (hasRef || hasVnodeHook || runtimeDirectives.length > 0);
|
|
14402
|
+
if (!shouldUseBlock && needsPatch) patchFlag |= 512;
|
|
14116
14403
|
if (!context.inSSR && propsExpression) switch (propsExpression.type) {
|
|
14117
14404
|
case 15:
|
|
14118
14405
|
let classKeyIndex = -1;
|
|
@@ -14133,16 +14420,16 @@ function buildProps(node, context, props = node.props, isComponent, isDynamicCom
|
|
|
14133
14420
|
} else propsExpression = createCallExpression(context.helper(NORMALIZE_PROPS), [propsExpression]);
|
|
14134
14421
|
break;
|
|
14135
14422
|
case 14: break;
|
|
14136
|
-
default:
|
|
14137
|
-
propsExpression = createCallExpression(context.helper(NORMALIZE_PROPS), [createCallExpression(context.helper(GUARD_REACTIVE_PROPS), [propsExpression])]);
|
|
14138
|
-
break;
|
|
14423
|
+
default: propsExpression = createCallExpression(context.helper(NORMALIZE_PROPS), [createCallExpression(context.helper(GUARD_REACTIVE_PROPS), [propsExpression])]);
|
|
14139
14424
|
}
|
|
14140
14425
|
return {
|
|
14141
14426
|
props: propsExpression,
|
|
14142
14427
|
directives: runtimeDirectives,
|
|
14143
14428
|
patchFlag,
|
|
14144
14429
|
dynamicPropNames,
|
|
14145
|
-
shouldUseBlock
|
|
14430
|
+
shouldUseBlock,
|
|
14431
|
+
needsPatch,
|
|
14432
|
+
isBlockRequired
|
|
14146
14433
|
};
|
|
14147
14434
|
}
|
|
14148
14435
|
function dedupeProperties(properties) {
|
|
@@ -14243,10 +14530,12 @@ function processSlotOutlet(node, context) {
|
|
|
14243
14530
|
for (let i = 0; i < node.props.length; i++) {
|
|
14244
14531
|
const p = node.props[i];
|
|
14245
14532
|
if (p.type === 6) {
|
|
14246
|
-
if (p.value)
|
|
14247
|
-
|
|
14248
|
-
|
|
14249
|
-
|
|
14533
|
+
if (p.value) {
|
|
14534
|
+
if (p.name === "name") slotName = JSON.stringify(p.value.content);
|
|
14535
|
+
else {
|
|
14536
|
+
p.name = camelize(p.name);
|
|
14537
|
+
nonNameProps.push(p);
|
|
14538
|
+
}
|
|
14250
14539
|
}
|
|
14251
14540
|
} else if (p.name === "bind" && isStaticArgOf(p.arg, "name")) {
|
|
14252
14541
|
if (p.exp) slotName = p.exp;
|
|
@@ -14275,16 +14564,17 @@ const transformOn$1 = (dir, node, context, augmentor) => {
|
|
|
14275
14564
|
const { loc, modifiers, arg } = dir;
|
|
14276
14565
|
if (!dir.exp && !modifiers.length) context.onError(createCompilerError(35, loc));
|
|
14277
14566
|
let eventName;
|
|
14278
|
-
if (arg.type === 4)
|
|
14279
|
-
|
|
14280
|
-
|
|
14281
|
-
|
|
14282
|
-
|
|
14283
|
-
|
|
14284
|
-
|
|
14285
|
-
|
|
14286
|
-
|
|
14287
|
-
|
|
14567
|
+
if (arg.type === 4) {
|
|
14568
|
+
if (arg.isStatic) {
|
|
14569
|
+
let rawName = arg.content;
|
|
14570
|
+
if (rawName.startsWith("vue:")) rawName = `vnode-${rawName.slice(4)}`;
|
|
14571
|
+
eventName = createSimpleExpression(node.tagType !== 0 || rawName.startsWith("vnode") || !/[A-Z]/.test(rawName) ? toHandlerKey(camelize(rawName)) : `on:${rawName}`, true, arg.loc);
|
|
14572
|
+
} else eventName = createCompoundExpression([
|
|
14573
|
+
`${context.helperString(TO_HANDLER_KEY)}(`,
|
|
14574
|
+
arg,
|
|
14575
|
+
`)`
|
|
14576
|
+
]);
|
|
14577
|
+
} else {
|
|
14288
14578
|
eventName = arg;
|
|
14289
14579
|
eventName.children.unshift(`${context.helperString(TO_HANDLER_KEY)}(`);
|
|
14290
14580
|
eventName.children.push(`)`);
|
|
@@ -14301,13 +14591,15 @@ const transformOn$1 = (dir, node, context, augmentor) => {
|
|
|
14301
14591
|
exp = dir.exp = processExpression(exp, context, false, hasMultipleStatements);
|
|
14302
14592
|
isInlineStatement && context.removeIdentifiers(`$event`);
|
|
14303
14593
|
shouldCache = context.cacheHandlers && !context.inVOnce && !(exp.type === 4 && exp.constType > 0) && !(isMemberExp && node.tagType === 1) && !hasScopeRef(exp, context.identifiers);
|
|
14304
|
-
if (shouldCache && isMemberExp)
|
|
14305
|
-
|
|
14306
|
-
|
|
14307
|
-
|
|
14308
|
-
|
|
14309
|
-
|
|
14310
|
-
|
|
14594
|
+
if (shouldCache && isMemberExp) {
|
|
14595
|
+
if (exp.type === 4) exp.content = `${exp.content} && ${exp.content}(...args)`;
|
|
14596
|
+
else exp.children = [
|
|
14597
|
+
...exp.children,
|
|
14598
|
+
` && `,
|
|
14599
|
+
...exp.children,
|
|
14600
|
+
`(...args)`
|
|
14601
|
+
];
|
|
14602
|
+
}
|
|
14311
14603
|
}
|
|
14312
14604
|
if (isInlineStatement || shouldCache && isMemberExp) exp = createCompoundExpression([
|
|
14313
14605
|
`${isInlineStatement ? context.isTS ? `($event: any)` : `$event` : `${context.isTS ? `\n//@ts-ignore\n` : ``}(...args)`} => ${hasMultipleStatements ? `{` : `(`}`,
|
|
@@ -14335,11 +14627,14 @@ const transformBind = (dir, _node, context) => {
|
|
|
14335
14627
|
arg.children.unshift(`(`);
|
|
14336
14628
|
arg.children.push(`) || ""`);
|
|
14337
14629
|
} else if (!arg.isStatic) arg.content = arg.content ? `${arg.content} || ""` : `""`;
|
|
14338
|
-
if (modifiers.some((mod) => mod.content === "camel"))
|
|
14339
|
-
|
|
14340
|
-
|
|
14341
|
-
|
|
14342
|
-
|
|
14630
|
+
if (modifiers.some((mod) => mod.content === "camel")) {
|
|
14631
|
+
if (arg.type === 4) {
|
|
14632
|
+
if (arg.isStatic) arg.content = camelize(arg.content);
|
|
14633
|
+
else arg.content = `${context.helperString(CAMELIZE)}(${arg.content})`;
|
|
14634
|
+
} else {
|
|
14635
|
+
arg.children.unshift(`${context.helperString(CAMELIZE)}(`);
|
|
14636
|
+
arg.children.push(`)`);
|
|
14637
|
+
}
|
|
14343
14638
|
}
|
|
14344
14639
|
if (!context.inSSR) {
|
|
14345
14640
|
if (modifiers.some((mod) => mod.content === "prop")) injectPrefix(arg, ".");
|
|
@@ -14348,9 +14643,10 @@ const transformBind = (dir, _node, context) => {
|
|
|
14348
14643
|
return { props: [createObjectProperty(arg, exp)] };
|
|
14349
14644
|
};
|
|
14350
14645
|
const injectPrefix = (arg, prefix) => {
|
|
14351
|
-
if (arg.type === 4)
|
|
14352
|
-
|
|
14353
|
-
|
|
14646
|
+
if (arg.type === 4) {
|
|
14647
|
+
if (arg.isStatic) arg.content = prefix + arg.content;
|
|
14648
|
+
else arg.content = `\`${prefix}\${${arg.content}}\``;
|
|
14649
|
+
} else {
|
|
14354
14650
|
arg.children.unshift(`'${prefix}' + (`);
|
|
14355
14651
|
arg.children.push(`)`);
|
|
14356
14652
|
}
|
|
@@ -14445,20 +14741,21 @@ const transformModel$1 = (dir, node, context) => {
|
|
|
14445
14741
|
const eventName = arg ? isStaticExp(arg) ? `onUpdate:${camelize(arg.content)}` : createCompoundExpression(["\"onUpdate:\" + ", arg]) : `onUpdate:modelValue`;
|
|
14446
14742
|
let assignmentExp;
|
|
14447
14743
|
const eventArg = context.isTS ? `($event: any)` : `$event`;
|
|
14448
|
-
if (maybeRef)
|
|
14449
|
-
|
|
14450
|
-
|
|
14451
|
-
`).value = $event)`
|
|
14452
|
-
]);
|
|
14453
|
-
else {
|
|
14454
|
-
const altAssignment = bindingType === "setup-let" ? `${rawExp} = $event` : `null`;
|
|
14455
|
-
assignmentExp = createCompoundExpression([
|
|
14456
|
-
`${eventArg} => (${context.helperString(IS_REF)}(${rawExp}) ? (`,
|
|
14744
|
+
if (maybeRef) {
|
|
14745
|
+
if (bindingType === "setup-ref") assignmentExp = createCompoundExpression([
|
|
14746
|
+
`${eventArg} => ((`,
|
|
14457
14747
|
createSimpleExpression(rawExp, false, exp.loc),
|
|
14458
|
-
`).value = $event
|
|
14748
|
+
`).value = $event)`
|
|
14459
14749
|
]);
|
|
14460
|
-
|
|
14461
|
-
|
|
14750
|
+
else {
|
|
14751
|
+
const altAssignment = bindingType === "setup-let" ? `${rawExp} = $event` : `null`;
|
|
14752
|
+
assignmentExp = createCompoundExpression([
|
|
14753
|
+
`${eventArg} => (${context.helperString(IS_REF)}(${rawExp}) ? (`,
|
|
14754
|
+
createSimpleExpression(rawExp, false, exp.loc),
|
|
14755
|
+
`).value = $event : ${altAssignment})`
|
|
14756
|
+
]);
|
|
14757
|
+
}
|
|
14758
|
+
} else assignmentExp = createCompoundExpression([
|
|
14462
14759
|
`${eventArg} => ((`,
|
|
14463
14760
|
exp,
|
|
14464
14761
|
`) = $event)`
|
|
@@ -14517,11 +14814,12 @@ function parseFilter(node, context) {
|
|
|
14517
14814
|
if (c === 96 && prev !== 92) inTemplateString = false;
|
|
14518
14815
|
} else if (inRegex) {
|
|
14519
14816
|
if (c === 47 && prev !== 92) inRegex = false;
|
|
14520
|
-
} else if (c === 124 && exp.charCodeAt(i + 1) !== 124 && exp.charCodeAt(i - 1) !== 124 && !curly && !square && !paren)
|
|
14521
|
-
|
|
14522
|
-
|
|
14523
|
-
|
|
14524
|
-
|
|
14817
|
+
} else if (c === 124 && exp.charCodeAt(i + 1) !== 124 && exp.charCodeAt(i - 1) !== 124 && !curly && !square && !paren) {
|
|
14818
|
+
if (expression === void 0) {
|
|
14819
|
+
lastFilterIndex = i + 1;
|
|
14820
|
+
expression = exp.slice(0, i).trim();
|
|
14821
|
+
} else pushFilter();
|
|
14822
|
+
} else {
|
|
14525
14823
|
switch (c) {
|
|
14526
14824
|
case 34:
|
|
14527
14825
|
inDouble = true;
|
|
@@ -14547,9 +14845,7 @@ function parseFilter(node, context) {
|
|
|
14547
14845
|
case 123:
|
|
14548
14846
|
curly++;
|
|
14549
14847
|
break;
|
|
14550
|
-
case 125:
|
|
14551
|
-
curly--;
|
|
14552
|
-
break;
|
|
14848
|
+
case 125: curly--;
|
|
14553
14849
|
}
|
|
14554
14850
|
if (c === 47) {
|
|
14555
14851
|
let j = i - 1;
|
|
@@ -14808,8 +15104,6 @@ const transformModel = (dir, node, context) => {
|
|
|
14808
15104
|
case "file":
|
|
14809
15105
|
isInvalidType = true;
|
|
14810
15106
|
context.onError(createDOMCompilerError(60, dir.loc));
|
|
14811
|
-
break;
|
|
14812
|
-
default: break;
|
|
14813
15107
|
}
|
|
14814
15108
|
} else if (hasDynamicKeyVBind(node)) directiveToUse = V_MODEL_DYNAMIC;
|
|
14815
15109
|
} else if (tag === "select") directiveToUse = V_MODEL_SELECT;
|
|
@@ -14820,27 +15114,37 @@ const transformModel = (dir, node, context) => {
|
|
|
14820
15114
|
};
|
|
14821
15115
|
//#endregion
|
|
14822
15116
|
//#region packages/compiler-dom/src/transforms/vOn.ts
|
|
14823
|
-
const isEventOptionModifier =
|
|
14824
|
-
const isNonKeyModifier =
|
|
14825
|
-
const maybeKeyModifier =
|
|
14826
|
-
const isKeyboardEvent =
|
|
15117
|
+
const isEventOptionModifier = /*@__PURE__*/ makeMap(`passive,once,capture`);
|
|
15118
|
+
const isNonKeyModifier = /*@__PURE__*/ makeMap("stop,prevent,self,ctrl,shift,alt,meta,exact,middle");
|
|
15119
|
+
const maybeKeyModifier = /*@__PURE__*/ makeMap("left,right");
|
|
15120
|
+
const isKeyboardEvent = /*@__PURE__*/ makeMap(`onkeyup,onkeydown,onkeypress`);
|
|
14827
15121
|
const resolveModifiers = (key, modifiers, context, loc) => {
|
|
14828
15122
|
const keyModifiers = [];
|
|
14829
15123
|
const nonKeyModifiers = [];
|
|
14830
15124
|
const eventOptionModifiers = [];
|
|
14831
15125
|
for (let i = 0; i < modifiers.length; i++) {
|
|
14832
15126
|
const modifier = modifiers[i].content;
|
|
15127
|
+
if (modifier === "delegate") {
|
|
15128
|
+
if (context) {
|
|
15129
|
+
const error = /* @__PURE__ */ new SyntaxError(`.delegate modifier is only supported in Vapor components.`);
|
|
15130
|
+
error.loc = modifiers[i].loc;
|
|
15131
|
+
context.onWarn(error);
|
|
15132
|
+
}
|
|
15133
|
+
continue;
|
|
15134
|
+
}
|
|
14833
15135
|
if (modifier === "native" && context && checkCompatEnabled("COMPILER_V_ON_NATIVE", context, loc)) eventOptionModifiers.push(modifier);
|
|
14834
15136
|
else if (isEventOptionModifier(modifier)) eventOptionModifiers.push(modifier);
|
|
14835
15137
|
else {
|
|
14836
15138
|
const keyString = isString(key) ? key : isStaticExp(key) ? key.content : null;
|
|
14837
|
-
if (maybeKeyModifier(modifier))
|
|
14838
|
-
|
|
14839
|
-
|
|
14840
|
-
|
|
14841
|
-
|
|
14842
|
-
|
|
14843
|
-
|
|
15139
|
+
if (maybeKeyModifier(modifier)) {
|
|
15140
|
+
if (keyString) {
|
|
15141
|
+
if (isKeyboardEvent(keyString.toLowerCase())) keyModifiers.push(modifier);
|
|
15142
|
+
else nonKeyModifiers.push(modifier);
|
|
15143
|
+
} else {
|
|
15144
|
+
keyModifiers.push(modifier);
|
|
15145
|
+
nonKeyModifiers.push(modifier);
|
|
15146
|
+
}
|
|
15147
|
+
} else if (isNonKeyModifier(modifier)) nonKeyModifiers.push(modifier);
|
|
14844
15148
|
else keyModifiers.push(modifier);
|
|
14845
15149
|
}
|
|
14846
15150
|
}
|
|
@@ -14978,7 +15282,7 @@ const dataAriaRE = /^(?:data|aria)-/;
|
|
|
14978
15282
|
const isStringifiableAttr = (name, ns) => {
|
|
14979
15283
|
return (ns === 0 ? isKnownHtmlAttr(name) : ns === 1 ? isKnownSvgAttr(name) : ns === 2 ? isKnownMathMLAttr(name) : false) || dataAriaRE.test(name);
|
|
14980
15284
|
};
|
|
14981
|
-
const isNonStringifiable =
|
|
15285
|
+
const isNonStringifiable = /*@__PURE__*/ makeMap(`caption,thead,tr,th,tbody,td,tfoot,colgroup,col`);
|
|
14982
15286
|
/**
|
|
14983
15287
|
* for a cached node, analyze it and return:
|
|
14984
15288
|
* - false: bailed (contains non-stringifiable props or runtime constant)
|
|
@@ -15049,10 +15353,11 @@ function stringifyElement(node, context) {
|
|
|
15049
15353
|
res += ` ${p.arg.content}="__VUE_EXP_START__${exp.content}__VUE_EXP_END__"`;
|
|
15050
15354
|
continue;
|
|
15051
15355
|
}
|
|
15052
|
-
if (isBooleanAttr(p.arg.content) && exp.content === "false") continue;
|
|
15356
|
+
if ((isBooleanAttr(p.arg.content) || p.arg.content === "hidden") && exp.content === "false") continue;
|
|
15053
15357
|
let evaluated = evaluateConstant(exp);
|
|
15054
15358
|
if (evaluated != null) {
|
|
15055
15359
|
const arg = p.arg && p.arg.content;
|
|
15360
|
+
if (arg === "hidden" && typeof evaluated === "number" && !includeBooleanAttr(evaluated)) continue;
|
|
15056
15361
|
if (arg === "class") evaluated = normalizeClass(evaluated);
|
|
15057
15362
|
else if (arg === "style") evaluated = stringifyStyle(normalizeStyle(evaluated));
|
|
15058
15363
|
res += ` ${p.arg.content}="${escapeHtml(evaluated)}"`;
|
|
@@ -15112,8 +15417,10 @@ function compile(src, options = {}) {
|
|
|
15112
15417
|
//#region packages/vue-compat/src/index.ts
|
|
15113
15418
|
const compileCache = Object.create(null);
|
|
15114
15419
|
function compileToFunction(template, options) {
|
|
15115
|
-
if (!isString(template))
|
|
15116
|
-
|
|
15420
|
+
if (!isString(template)) {
|
|
15421
|
+
if (template.nodeType) template = template.innerHTML;
|
|
15422
|
+
else return NOOP;
|
|
15423
|
+
}
|
|
15117
15424
|
const key = genCacheKey(template, options);
|
|
15118
15425
|
const cached = compileCache[key];
|
|
15119
15426
|
if (cached) return cached;
|